@theia/ai-chat-ui 1.55.1 → 1.57.0-next.112

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +2 -1
  2. package/lib/browser/ai-chat-ui-contribution.js +1 -1
  3. package/lib/browser/ai-chat-ui-contribution.js.map +1 -1
  4. package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -1
  5. package/lib/browser/ai-chat-ui-frontend-module.js +11 -1
  6. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -1
  7. package/lib/browser/chat-input-widget.d.ts +18 -5
  8. package/lib/browser/chat-input-widget.d.ts.map +1 -1
  9. package/lib/browser/chat-input-widget.js +239 -79
  10. package/lib/browser/chat-input-widget.js.map +1 -1
  11. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts +30 -2
  12. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -1
  13. package/lib/browser/chat-response-renderer/code-part-renderer.js +45 -10
  14. package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -1
  15. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts +10 -4
  16. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts.map +1 -1
  17. package/lib/browser/chat-response-renderer/markdown-part-renderer.js +41 -11
  18. package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -1
  19. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts +10 -0
  20. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts.map +1 -0
  21. package/lib/browser/chat-response-renderer/question-part-renderer.js +43 -0
  22. package/lib/browser/chat-response-renderer/question-part-renderer.js.map +1 -0
  23. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts +2 -0
  24. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -1
  25. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +38 -12
  26. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -1
  27. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +6 -1
  28. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -1
  29. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +85 -14
  30. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -1
  31. package/lib/browser/chat-view-language-contribution.d.ts.map +1 -1
  32. package/lib/browser/chat-view-language-contribution.js +0 -1
  33. package/lib/browser/chat-view-language-contribution.js.map +1 -1
  34. package/lib/browser/chat-view-widget.d.ts +4 -1
  35. package/lib/browser/chat-view-widget.d.ts.map +1 -1
  36. package/lib/browser/chat-view-widget.js +14 -4
  37. package/lib/browser/chat-view-widget.js.map +1 -1
  38. package/package.json +12 -12
  39. package/src/browser/ai-chat-ui-contribution.ts +1 -1
  40. package/src/browser/ai-chat-ui-frontend-module.ts +29 -5
  41. package/src/browser/chat-input-widget.tsx +351 -99
  42. package/src/browser/chat-response-renderer/code-part-renderer.tsx +48 -9
  43. package/src/browser/chat-response-renderer/markdown-part-renderer.tsx +42 -13
  44. package/src/browser/chat-response-renderer/question-part-renderer.tsx +59 -0
  45. package/src/browser/chat-response-renderer/toolcall-part-renderer.tsx +46 -11
  46. package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +141 -12
  47. package/src/browser/chat-view-language-contribution.ts +0 -1
  48. package/src/browser/chat-view-widget.tsx +19 -6
  49. package/src/browser/style/index.css +243 -22
@@ -132,6 +132,20 @@ div:last-child > .theia-ChatNode {
132
132
  font-size: var(--theia-code-font-size);
133
133
  }
134
134
 
135
+ .theia-RequestNode > p div {
136
+ display: inline;
137
+ }
138
+
139
+ .theia-RequestNode .theia-RequestNode-AgentLabel,
140
+ .theia-RequestNode .theia-RequestNode-VariableLabel {
141
+ padding: calc(var(--theia-ui-padding) * 2 / 3);
142
+ padding-top: 0px;
143
+ padding-bottom: 0px;
144
+ border-radius: calc(var(--theia-ui-padding) * 2 / 3);
145
+ background: var(--theia-badge-background);
146
+ color: var(--theia-badge-foreground);
147
+ }
148
+
135
149
  .chat-input-widget {
136
150
  align-items: flex-end;
137
151
  display: flex;
@@ -139,50 +153,191 @@ div:last-child > .theia-ChatNode {
139
153
  }
140
154
 
141
155
  .theia-ChatInput {
156
+ margin-top: 16px;
142
157
  position: relative;
143
158
  width: 100%;
144
159
  box-sizing: border-box;
145
160
  gap: 4px;
146
161
  }
147
162
 
148
- .theia-ChatInput-Editor-Box {
149
- margin-bottom: 2px;
150
- padding: 10px;
163
+ .theia-ChatInput-ChangeSet-Box {
164
+ margin: 0 16px -5px 16px;
165
+ padding: 2px;
166
+ padding-bottom: 12px;
151
167
  height: auto;
168
+ border: var(--theia-border-width) solid var(--theia-dropdown-border);
169
+ border-radius: 4px 4px 0 0;
170
+ background-color: var(--theia-activityBar-background);
152
171
  display: flex;
153
172
  flex-direction: column;
154
- justify-content: flex-end;
173
+ }
174
+
175
+ .theia-ChatInput-ChangeSet-Header {
176
+ display: flex;
177
+ justify-content: space-between;
178
+ align-items: center;
179
+ margin: 4px;
180
+ }
181
+
182
+ .theia-ChatInput-ChangeSet-Box h3 {
183
+ font-size: 12px;
184
+ color: var(--theia-disabledForeground);
185
+ padding-top: 0;
186
+ margin: 0;
187
+ display: flex;
188
+ }
189
+
190
+ .theia-ChatInput-ChangeSet-Header-Actions button {
191
+ font-size: 12px;
192
+ padding: 2px 4px;
193
+ min-width: 40px;
194
+ margin-left: 6px;
195
+ }
196
+
197
+ .theia-ChatInput-ChangeSet-List ul {
198
+ list-style-type: none;
199
+ padding: 0;
200
+ margin: 4px;
201
+ }
202
+
203
+ .theia-ChatInput-ChangeSet-List ul li {
204
+ display: flex;
205
+ flex-direction: row;
206
+ line-height: 18px;
207
+ padding: 0;
208
+ padding-top: 2px;
209
+ margin: 0 2px 2px 0px;
210
+ border-radius: 4px;
211
+ position: relative;
212
+ }
213
+
214
+ .theia-ChatInput-ChangeSet-List ul li:hover {
215
+ background-color: var(--theia-toolbar-hoverBackground);
216
+ }
217
+
218
+ .theia-ChatInput-ChangeSet-Actions {
219
+ display: none;
220
+ position: absolute;
221
+ right: 8px;
222
+ top: 2px;
223
+ gap: 4px;
224
+ }
225
+
226
+ .theia-ChatInput-ChangeSet-List ul {
227
+ max-height: 150px;
228
+ overflow-y: auto;
229
+ }
230
+
231
+ .theia-ChatInput-ChangeSet-List ul li {
232
+ cursor: pointer;
233
+ }
234
+
235
+ .theia-ChatInput-ChangeSet-List ul li:hover .theia-ChatInput-ChangeSet-Actions {
236
+ display: flex;
237
+ }
238
+
239
+ .theia-ChatInput-ChangeSet-List .theia-ChatInput-ChangeSet-Icon {
240
+ padding-left: 2px;
241
+ padding-right: 4px;
242
+ min-width: var(--theia-icon-size);
243
+ display: flex;
244
+ justify-content: center;
245
+ align-items: center;
246
+ }
247
+
248
+ .theia-ChatInput-ChangeSet-List .theia-ChatInput-ChangeSet-Icon::before {
249
+ text-align: center;
250
+ margin-right: 4px;
251
+ font-size: calc(var(--theia-content-font-size) * 0.8);
252
+ }
253
+
254
+ .theia-ChatInput-ChangeSet-List
255
+ .theia-ChatInput-ChangeSet-Icon.codicon::before {
256
+ font-size: var(--theia-ui-font-size1);
257
+ }
258
+
259
+ .theia-ChatInput-ChangeSet-Actions .action {
260
+ width: 16px;
261
+ height: 16px;
262
+ cursor: pointer;
263
+ }
264
+
265
+ .theia-ChatInput-ChangeSet-additionalInfo {
266
+ margin-left: 8px;
267
+ color: var(--theia-disabledForeground);
268
+ }
269
+
270
+ .theia-ChatInput-ChangeSet-title {
271
+ white-space: nowrap;
272
+ overflow: visible;
273
+ }
274
+
275
+ .theia-ChatInput-ChangeSet-Header-Actions,
276
+ .theia-ChatInput-ChangeSet-Box h3,
277
+ .theia-ChatInput-ChangeSet-additionalInfo {
278
+ white-space: nowrap;
155
279
  overflow: hidden;
280
+ text-overflow: ellipsis;
156
281
  }
157
282
 
158
- .theia-ChatInput-Editor {
159
- width: 100%;
283
+ .theia-ChatInput-ChangeSet-Header-Actions .codicon.action {
284
+ font-size: 18px;
285
+ height: 20px;
286
+ vertical-align: middle;
287
+ margin-left: 4px;
288
+ border-radius: 4px;
289
+ cursor: pointer;
290
+ }
291
+ .theia-ChatInput-ChangeSet-Header-Actions .codicon.action:hover {
292
+ background-color: var(--theia-toolbar-hoverBackground);
293
+ }
294
+
295
+ .theia-ChatInput-ChangeSet-title.rejected {
296
+ text-decoration: line-through;
297
+ }
298
+
299
+ .theia-ChatInput-ChangeSet-title.add.pending {
300
+ color: var(--theia-charts-green);
301
+ }
302
+ .theia-ChatInput-ChangeSet-title.modify.pending {
303
+ color: var(--theia-charts-orange);
304
+ }
305
+ .theia-ChatInput-ChangeSet-title.delete.pending {
306
+ color: var(--theia-charts-red);
307
+ }
308
+
309
+ .theia-ChatInput-Editor-Box {
310
+ margin: 0 16px 16px 16px;
311
+ padding: 2px;
160
312
  height: auto;
161
313
  border: var(--theia-border-width) solid var(--theia-dropdown-border);
162
314
  border-radius: 4px;
315
+ background-color: var(--theia-editor-background);
163
316
  display: flex;
164
- flex-direction: column-reverse;
317
+ flex-direction: column;
318
+ justify-content: flex-end;
165
319
  overflow: hidden;
166
320
  }
167
321
 
168
- .theia-ChatInput-Editor:has(.monaco-editor.focused) {
322
+ .theia-ChatInput-Editor-Box:has(.monaco-editor.focused) {
169
323
  border-color: var(--theia-focusBorder);
170
324
  }
171
325
 
172
- .theia-ChatInput-Editor .monaco-editor {
173
- display: flex;
326
+ .theia-ChatInput-Editor {
174
327
  width: 100%;
175
- height: 100%;
328
+ height: auto;
329
+ display: flex;
330
+ flex-direction: column-reverse;
176
331
  overflow: hidden;
332
+ transition: height 0.05s ease-in-out;
177
333
  position: relative;
178
334
  }
179
335
 
180
336
  .theia-ChatInput-Editor-Placeholder {
181
337
  position: absolute;
182
- top: -3px;
183
- left: 19px;
338
+ top: 9px;
339
+ left: 8px;
184
340
  right: 0;
185
- bottom: 0;
186
341
  display: flex;
187
342
  align-items: center;
188
343
  color: var(--theia-descriptionForeground);
@@ -194,6 +349,14 @@ div:last-child > .theia-ChatNode {
194
349
  display: none;
195
350
  }
196
351
 
352
+ .theia-ChatInput-Editor .monaco-editor {
353
+ display: flex;
354
+ width: 100%;
355
+ height: 100%;
356
+ overflow: hidden;
357
+ position: relative;
358
+ }
359
+
197
360
  .theia-ChatInput-Editor .monaco-editor .margin,
198
361
  .theia-ChatInput-Editor .monaco-editor .monaco-editor-background,
199
362
  .theia-ChatInput-Editor .monaco-editor .inputarea.ime-input {
@@ -201,36 +364,52 @@ div:last-child > .theia-ChatNode {
201
364
  }
202
365
 
203
366
  .theia-ChatInputOptions {
204
- position: absolute;
205
- bottom: 31px;
206
- right: 26px;
207
- width: 10px;
208
- height: 10px;
367
+ width: 100%;
368
+ height: 25px;
369
+ padding-left: 6px;
370
+ padding-right: 6px;
371
+ display: flex;
372
+ justify-content: space-between;
373
+ }
374
+
375
+ .theia-ChatInputOptions .theia-ChatInputOptions-left,
376
+ .theia-ChatInputOptions .theia-ChatInputOptions-right {
377
+ display: flex;
378
+ }
379
+ .theia-ChatInputOptions .theia-ChatInputOptions-right {
380
+ margin-right: 12px;
209
381
  }
210
382
 
211
383
  .theia-ChatInputOptions .option {
212
384
  width: 21px;
213
385
  height: 21px;
214
- margin-top: 2px;
386
+ padding: 2px;
215
387
  display: inline-block;
216
388
  box-sizing: border-box;
217
389
  user-select: none;
218
390
  background-repeat: no-repeat;
219
391
  background-position: center;
392
+ border-radius: 5px;
220
393
  border: var(--theia-border-width) solid transparent;
221
- opacity: 0.7;
222
394
  cursor: pointer;
223
395
  }
224
396
 
397
+ .theia-ChatInputOptions .option.disabled {
398
+ cursor: default;
399
+ opacity: var(--theia-mod-disabled-opacity);
400
+ pointer-events: none;
401
+ }
402
+
225
403
  .theia-ChatInputOptions .option:hover {
226
404
  opacity: 1;
405
+ background-color: var(--theia-toolbar-hoverBackground);
227
406
  }
228
407
 
229
408
  .theia-CodePartRenderer-root {
230
409
  display: flex;
231
410
  flex-direction: column;
232
411
  gap: 2px;
233
- border: 1px solid var(--theia-input-border);
412
+ border: var(--theia-border-width) solid var(--theia-input-border);
234
413
  border-radius: 4px;
235
414
  }
236
415
 
@@ -264,6 +443,33 @@ div:last-child > .theia-ChatNode {
264
443
  background-color: var(--theia-input-border);
265
444
  }
266
445
 
446
+ .theia-QuestionPartRenderer-root {
447
+ display: flex;
448
+ flex-direction: column;
449
+ gap: 8px;
450
+ border: var(--theia-border-width) solid
451
+ var(--theia-sideBarSectionHeader-border);
452
+ padding: 8px 12px 12px;
453
+ border-radius: 5px;
454
+ margin: 0 0 8px 0;
455
+ }
456
+ .theia-QuestionPartRenderer-options {
457
+ display: flex;
458
+ flex-wrap: wrap;
459
+ gap: 12px;
460
+ }
461
+ .theia-QuestionPartRenderer-option {
462
+ min-width: 100px;
463
+ flex: 1 1 auto;
464
+ margin: 0;
465
+ }
466
+ .theia-QuestionPartRenderer-option.selected:disabled:hover {
467
+ background-color: var(--theia-button-disabledBackground);
468
+ }
469
+ .theia-QuestionPartRenderer-option:disabled:not(.selected) {
470
+ background-color: var(--theia-button-secondaryBackground);
471
+ }
472
+
267
473
  .theia-toolCall {
268
474
  font-weight: normal;
269
475
  color: var(--theia-descriptionForeground);
@@ -288,6 +494,21 @@ div:last-child > .theia-ChatNode {
288
494
  overflow: auto;
289
495
  }
290
496
 
497
+ .collapsible-arguments {
498
+ display: inline-block;
499
+ }
500
+
501
+ .collapsible-arguments .collapsible-arguments-summary {
502
+ display: inline-block;
503
+ white-space: nowrap;
504
+ text-decoration: underline;
505
+ }
506
+
507
+ details[open].collapsible-arguments,
508
+ details[open].collapsible-arguments .collapsible-arguments-summary {
509
+ display: unset;
510
+ }
511
+
291
512
  .theia-ResponseNode-ProgressMessage {
292
513
  font-weight: normal;
293
514
  color: var(--theia-descriptionForeground);