dvc890 commited on
Commit
50fd8b2
·
verified ·
1 Parent(s): 671594c

Upload 47 files

Browse files
Files changed (2) hide show
  1. index.css +90 -41
  2. server.js +6 -1
index.css CHANGED
@@ -42,97 +42,146 @@ body {
42
  grid-auto-rows: 1fr;
43
  }
44
 
45
- /* AI Chat Markdown Styles */
46
  .markdown-body {
47
  font-size: 0.95rem;
48
- line-height: 1.6;
 
49
  }
 
 
50
  .markdown-body p {
51
- margin-bottom: 0.75em;
52
  }
53
  .markdown-body p:last-child {
54
  margin-bottom: 0;
55
  }
56
- .markdown-body ul, .markdown-body ol {
57
- margin-left: 1.2em;
58
- margin-bottom: 0.75em;
59
- list-style-type: disc;
 
 
60
  }
61
  .markdown-body ol {
62
- list-style-type: decimal;
 
 
63
  }
64
  .markdown-body li {
65
- margin-bottom: 0.25em;
 
 
 
 
 
 
 
 
 
 
 
 
66
  }
 
 
 
 
 
 
67
  .markdown-body pre {
68
- background-color: rgba(0, 0, 0, 0.06);
69
- padding: 0.75em;
70
  border-radius: 0.5em;
71
  overflow-x: auto;
72
- margin-bottom: 0.75em;
73
- font-family: monospace;
 
 
74
  }
75
  .markdown-body code {
76
- background-color: rgba(0, 0, 0, 0.06);
77
- padding: 0.1em 0.3em;
78
- border-radius: 0.2em;
79
- font-family: monospace;
80
- font-size: 0.9em;
81
  }
82
  .markdown-body pre code {
83
  background-color: transparent;
84
  padding: 0;
 
 
85
  }
 
 
86
  .markdown-body blockquote {
87
- border-left: 3px solid rgba(0, 0, 0, 0.2);
88
- padding-left: 0.75em;
89
  margin-left: 0;
90
- margin-bottom: 0.75em;
 
91
  font-style: italic;
92
  opacity: 0.8;
 
 
 
 
93
  }
94
- .markdown-body h1, .markdown-body h2, .markdown-body h3 {
95
- font-weight: bold;
96
- margin-top: 1em;
97
- margin-bottom: 0.5em;
98
- line-height: 1.3;
99
- }
100
- .markdown-body h1 { font-size: 1.25em; }
101
- .markdown-body h2 { font-size: 1.1em; }
102
- .markdown-body h3 { font-size: 1em; }
103
  .markdown-body table {
104
  border-collapse: collapse;
105
  width: 100%;
106
- margin-bottom: 0.75em;
107
  font-size: 0.9em;
 
 
108
  }
109
  .markdown-body th, .markdown-body td {
110
- border: 1px solid rgba(0, 0, 0, 0.1);
111
- padding: 0.4em 0.6em;
112
  text-align: left;
113
  }
114
  .markdown-body th {
115
- background-color: rgba(0, 0, 0, 0.03);
116
  font-weight: 600;
117
  }
 
 
118
  .markdown-body a {
119
  text-decoration: underline;
120
- opacity: 0.9;
 
121
  }
122
 
123
- /* Specific overrides for Blue bubbles (User) vs White bubbles (AI) */
124
  .bg-blue-600 .markdown-body code {
125
  background-color: rgba(255, 255, 255, 0.2);
 
126
  }
127
  .bg-blue-600 .markdown-body pre {
128
  background-color: rgba(0, 0, 0, 0.2);
 
 
129
  }
130
  .bg-blue-600 .markdown-body blockquote {
131
- border-left-color: rgba(255, 255, 255, 0.4);
132
- }
133
- .bg-blue-600 .markdown-body th, .bg-blue-600 .markdown-body td {
134
- border-color: rgba(255, 255, 255, 0.2);
135
  }
136
  .bg-blue-600 .markdown-body th {
137
- background-color: rgba(255, 255, 255, 0.1);
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  }
 
42
  grid-auto-rows: 1fr;
43
  }
44
 
45
+ /* --- Enhanced Markdown Styles --- */
46
  .markdown-body {
47
  font-size: 0.95rem;
48
+ line-height: 1.7;
49
+ color: inherit;
50
  }
51
+
52
+ /* Paragraphs */
53
  .markdown-body p {
54
+ margin-bottom: 0.8em;
55
  }
56
  .markdown-body p:last-child {
57
  margin-bottom: 0;
58
  }
59
+
60
+ /* Lists - Critical Fix for "Messy" look */
61
+ .markdown-body ul {
62
+ list-style-type: disc !important;
63
+ padding-left: 1.5em !important;
64
+ margin-bottom: 0.8em;
65
  }
66
  .markdown-body ol {
67
+ list-style-type: decimal !important;
68
+ padding-left: 1.5em !important;
69
+ margin-bottom: 0.8em;
70
  }
71
  .markdown-body li {
72
+ margin-bottom: 0.2em;
73
+ padding-left: 0.2em;
74
+ }
75
+ .markdown-body li > p {
76
+ margin-bottom: 0.4em; /* Tighter spacing inside lists */
77
+ }
78
+
79
+ /* Headings */
80
+ .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4 {
81
+ font-weight: 700;
82
+ margin-top: 1.2em;
83
+ margin-bottom: 0.6em;
84
+ line-height: 1.3;
85
  }
86
+ .markdown-body h1 { font-size: 1.4em; border-bottom: 1px solid rgba(0,0,0,0.1); padding-bottom: 0.3em; }
87
+ .markdown-body h2 { font-size: 1.25em; }
88
+ .markdown-body h3 { font-size: 1.1em; }
89
+ .markdown-body h4 { font-size: 1em; }
90
+
91
+ /* Code Blocks & Inline Code */
92
  .markdown-body pre {
93
+ background-color: rgba(0, 0, 0, 0.05); /* Light gray background */
94
+ padding: 1em;
95
  border-radius: 0.5em;
96
  overflow-x: auto;
97
+ margin-bottom: 1em;
98
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
99
+ font-size: 0.9em;
100
+ border: 1px solid rgba(0,0,0,0.05);
101
  }
102
  .markdown-body code {
103
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
104
+ background-color: rgba(0, 0, 0, 0.05);
105
+ padding: 0.2em 0.4em;
106
+ border-radius: 0.3em;
107
+ font-size: 0.85em;
108
  }
109
  .markdown-body pre code {
110
  background-color: transparent;
111
  padding: 0;
112
+ font-size: 1em;
113
+ color: inherit;
114
  }
115
+
116
+ /* Quotes */
117
  .markdown-body blockquote {
118
+ border-left: 4px solid rgba(0, 0, 0, 0.15);
119
+ padding-left: 1em;
120
  margin-left: 0;
121
+ margin-right: 0;
122
+ margin-bottom: 1em;
123
  font-style: italic;
124
  opacity: 0.8;
125
+ background-color: rgba(0,0,0,0.02);
126
+ padding-top: 0.5em;
127
+ padding-bottom: 0.5em;
128
+ border-radius: 0 0.3em 0.3em 0;
129
  }
130
+
131
+ /* Tables */
 
 
 
 
 
 
 
132
  .markdown-body table {
133
  border-collapse: collapse;
134
  width: 100%;
135
+ margin-bottom: 1em;
136
  font-size: 0.9em;
137
+ overflow-x: auto;
138
+ display: block; /* Make tables scrollable on small screens */
139
  }
140
  .markdown-body th, .markdown-body td {
141
+ border: 1px solid rgba(0, 0, 0, 0.15);
142
+ padding: 0.5em 0.8em;
143
  text-align: left;
144
  }
145
  .markdown-body th {
146
+ background-color: rgba(0, 0, 0, 0.05);
147
  font-weight: 600;
148
  }
149
+
150
+ /* Links */
151
  .markdown-body a {
152
  text-decoration: underline;
153
+ text-underline-offset: 2px;
154
+ font-weight: 500;
155
  }
156
 
157
+ /* --- Color Overrides for User Bubbles (Blue Background) --- */
158
  .bg-blue-600 .markdown-body code {
159
  background-color: rgba(255, 255, 255, 0.2);
160
+ color: white;
161
  }
162
  .bg-blue-600 .markdown-body pre {
163
  background-color: rgba(0, 0, 0, 0.2);
164
+ border-color: rgba(255,255,255,0.1);
165
+ color: #e5e7eb;
166
  }
167
  .bg-blue-600 .markdown-body blockquote {
168
+ border-left-color: rgba(255, 255, 255, 0.5);
169
+ background-color: rgba(255,255,255,0.1);
170
+ color: #e5e7eb;
 
171
  }
172
  .bg-blue-600 .markdown-body th {
173
+ background-color: rgba(255, 255, 255, 0.2);
174
+ border-color: rgba(255,255,255,0.2);
175
+ color: white;
176
+ }
177
+ .bg-blue-600 .markdown-body td {
178
+ border-color: rgba(255,255,255,0.2);
179
+ }
180
+ .bg-blue-600 .markdown-body a {
181
+ color: white;
182
+ }
183
+ .bg-blue-600 .markdown-body h1,
184
+ .bg-blue-600 .markdown-body h2,
185
+ .bg-blue-600 .markdown-body h3 {
186
+ border-bottom-color: rgba(255,255,255,0.3);
187
  }
server.js CHANGED
@@ -242,8 +242,13 @@ async function generateContentWithSmartFallback(aiModelObj, baseParams) {
242
  // ...extraBody
243
  });
244
 
 
 
 
 
 
245
  // Normalize response to look like Gemini's { text: "..." }
246
- const content = completion.choices[0]?.message?.content || "";
247
  return { text: content };
248
 
249
  } catch (e) {
 
242
  // ...extraBody
243
  });
244
 
245
+ // DEFENSIVE CODING: Check if choices exists and is an array with content
246
+ if (!completion || !completion.choices || !completion.choices[0] || !completion.choices[0].message) {
247
+ throw new Error(`Invalid response structure from ${modelName}`);
248
+ }
249
+
250
  // Normalize response to look like Gemini's { text: "..." }
251
+ const content = completion.choices[0].message.content || "";
252
  return { text: content };
253
 
254
  } catch (e) {