@theia/ai-chat-ui 1.46.0-next.241

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 (123) hide show
  1. package/README.md +33 -0
  2. package/lib/browser/ai-chat-ui-contribution.d.ts +24 -0
  3. package/lib/browser/ai-chat-ui-contribution.d.ts.map +1 -0
  4. package/lib/browser/ai-chat-ui-contribution.js +161 -0
  5. package/lib/browser/ai-chat-ui-contribution.js.map +1 -0
  6. package/lib/browser/ai-chat-ui-frontend-module.d.ts +5 -0
  7. package/lib/browser/ai-chat-ui-frontend-module.d.ts.map +1 -0
  8. package/lib/browser/ai-chat-ui-frontend-module.js +87 -0
  9. package/lib/browser/ai-chat-ui-frontend-module.js.map +1 -0
  10. package/lib/browser/chat-input-widget.d.ts +32 -0
  11. package/lib/browser/chat-input-widget.d.ts.map +1 -0
  12. package/lib/browser/chat-input-widget.js +217 -0
  13. package/lib/browser/chat-input-widget.js.map +1 -0
  14. package/lib/browser/chat-node-toolbar-action-contribution.d.ts +47 -0
  15. package/lib/browser/chat-node-toolbar-action-contribution.d.ts.map +1 -0
  16. package/lib/browser/chat-node-toolbar-action-contribution.js +25 -0
  17. package/lib/browser/chat-node-toolbar-action-contribution.js.map +1 -0
  18. package/lib/browser/chat-response-part-renderer.d.ts +10 -0
  19. package/lib/browser/chat-response-part-renderer.d.ts.map +1 -0
  20. package/lib/browser/chat-response-part-renderer.js +20 -0
  21. package/lib/browser/chat-response-part-renderer.js.map +1 -0
  22. package/lib/browser/chat-response-renderer/ai-editor-manager.d.ts +36 -0
  23. package/lib/browser/chat-response-renderer/ai-editor-manager.d.ts.map +1 -0
  24. package/lib/browser/chat-response-renderer/ai-editor-manager.js +184 -0
  25. package/lib/browser/chat-response-renderer/ai-editor-manager.js.map +1 -0
  26. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts +45 -0
  27. package/lib/browser/chat-response-renderer/code-part-renderer.d.ts.map +1 -0
  28. package/lib/browser/chat-response-renderer/code-part-renderer.js +190 -0
  29. package/lib/browser/chat-response-renderer/code-part-renderer.js.map +1 -0
  30. package/lib/browser/chat-response-renderer/command-part-renderer.d.ts +12 -0
  31. package/lib/browser/chat-response-renderer/command-part-renderer.d.ts.map +1 -0
  32. package/lib/browser/chat-response-renderer/command-part-renderer.js +70 -0
  33. package/lib/browser/chat-response-renderer/command-part-renderer.js.map +1 -0
  34. package/lib/browser/chat-response-renderer/error-part-renderer.d.ts +9 -0
  35. package/lib/browser/chat-response-renderer/error-part-renderer.d.ts.map +1 -0
  36. package/lib/browser/chat-response-renderer/error-part-renderer.js +40 -0
  37. package/lib/browser/chat-response-renderer/error-part-renderer.js.map +1 -0
  38. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.d.ts +12 -0
  39. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.d.ts.map +1 -0
  40. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.js +54 -0
  41. package/lib/browser/chat-response-renderer/horizontal-layout-part-renderer.js.map +1 -0
  42. package/lib/browser/chat-response-renderer/index.d.ts +9 -0
  43. package/lib/browser/chat-response-renderer/index.d.ts.map +1 -0
  44. package/lib/browser/chat-response-renderer/index.js +27 -0
  45. package/lib/browser/chat-response-renderer/index.js.map +1 -0
  46. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts +25 -0
  47. package/lib/browser/chat-response-renderer/markdown-part-renderer.d.ts.map +1 -0
  48. package/lib/browser/chat-response-renderer/markdown-part-renderer.js +89 -0
  49. package/lib/browser/chat-response-renderer/markdown-part-renderer.js.map +1 -0
  50. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts +10 -0
  51. package/lib/browser/chat-response-renderer/question-part-renderer.d.ts.map +1 -0
  52. package/lib/browser/chat-response-renderer/question-part-renderer.js +43 -0
  53. package/lib/browser/chat-response-renderer/question-part-renderer.js.map +1 -0
  54. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts +9 -0
  55. package/lib/browser/chat-response-renderer/text-part-renderer.d.ts.map +1 -0
  56. package/lib/browser/chat-response-renderer/text-part-renderer.js +41 -0
  57. package/lib/browser/chat-response-renderer/text-part-renderer.js.map +1 -0
  58. package/lib/browser/chat-response-renderer/text-part-renderer.spec.d.ts +2 -0
  59. package/lib/browser/chat-response-renderer/text-part-renderer.spec.d.ts.map +1 -0
  60. package/lib/browser/chat-response-renderer/text-part-renderer.spec.js +46 -0
  61. package/lib/browser/chat-response-renderer/text-part-renderer.spec.js.map +1 -0
  62. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts +12 -0
  63. package/lib/browser/chat-response-renderer/toolcall-part-renderer.d.ts.map +1 -0
  64. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js +81 -0
  65. package/lib/browser/chat-response-renderer/toolcall-part-renderer.js.map +1 -0
  66. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts +4 -0
  67. package/lib/browser/chat-tree-view/chat-view-tree-container.d.ts.map +1 -0
  68. package/lib/browser/chat-tree-view/chat-view-tree-container.js +33 -0
  69. package/lib/browser/chat-tree-view/chat-view-tree-container.js.map +1 -0
  70. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts +56 -0
  71. package/lib/browser/chat-tree-view/chat-view-tree-widget.d.ts.map +1 -0
  72. package/lib/browser/chat-tree-view/chat-view-tree-widget.js +388 -0
  73. package/lib/browser/chat-tree-view/chat-view-tree-widget.js.map +1 -0
  74. package/lib/browser/chat-tree-view/index.d.ts +3 -0
  75. package/lib/browser/chat-tree-view/index.d.ts.map +1 -0
  76. package/lib/browser/chat-tree-view/index.js +21 -0
  77. package/lib/browser/chat-tree-view/index.js.map +1 -0
  78. package/lib/browser/chat-view-commands.d.ts +8 -0
  79. package/lib/browser/chat-view-commands.d.ts.map +1 -0
  80. package/lib/browser/chat-view-commands.js +44 -0
  81. package/lib/browser/chat-view-commands.js.map +1 -0
  82. package/lib/browser/chat-view-contribution.d.ts +18 -0
  83. package/lib/browser/chat-view-contribution.d.ts.map +1 -0
  84. package/lib/browser/chat-view-contribution.js +153 -0
  85. package/lib/browser/chat-view-contribution.js.map +1 -0
  86. package/lib/browser/chat-view-language-contribution.d.ts +20 -0
  87. package/lib/browser/chat-view-language-contribution.d.ts.map +1 -0
  88. package/lib/browser/chat-view-language-contribution.js +98 -0
  89. package/lib/browser/chat-view-language-contribution.js.map +1 -0
  90. package/lib/browser/chat-view-widget-toolbar-contribution.d.ts +11 -0
  91. package/lib/browser/chat-view-widget-toolbar-contribution.d.ts.map +1 -0
  92. package/lib/browser/chat-view-widget-toolbar-contribution.js +65 -0
  93. package/lib/browser/chat-view-widget-toolbar-contribution.js.map +1 -0
  94. package/lib/browser/chat-view-widget.d.ts +41 -0
  95. package/lib/browser/chat-view-widget.d.ts.map +1 -0
  96. package/lib/browser/chat-view-widget.js +182 -0
  97. package/lib/browser/chat-view-widget.js.map +1 -0
  98. package/package.json +59 -0
  99. package/src/browser/ai-chat-ui-contribution.ts +171 -0
  100. package/src/browser/ai-chat-ui-frontend-module.ts +105 -0
  101. package/src/browser/chat-input-widget.tsx +262 -0
  102. package/src/browser/chat-node-toolbar-action-contribution.ts +63 -0
  103. package/src/browser/chat-response-part-renderer.ts +25 -0
  104. package/src/browser/chat-response-renderer/ai-editor-manager.ts +183 -0
  105. package/src/browser/chat-response-renderer/code-part-renderer.tsx +211 -0
  106. package/src/browser/chat-response-renderer/command-part-renderer.tsx +60 -0
  107. package/src/browser/chat-response-renderer/error-part-renderer.tsx +35 -0
  108. package/src/browser/chat-response-renderer/horizontal-layout-part-renderer.tsx +59 -0
  109. package/src/browser/chat-response-renderer/index.ts +23 -0
  110. package/src/browser/chat-response-renderer/markdown-part-renderer.tsx +92 -0
  111. package/src/browser/chat-response-renderer/question-part-renderer.tsx +59 -0
  112. package/src/browser/chat-response-renderer/text-part-renderer.spec.ts +50 -0
  113. package/src/browser/chat-response-renderer/text-part-renderer.tsx +35 -0
  114. package/src/browser/chat-response-renderer/toolcall-part-renderer.tsx +89 -0
  115. package/src/browser/chat-tree-view/chat-view-tree-container.ts +32 -0
  116. package/src/browser/chat-tree-view/chat-view-tree-widget.tsx +526 -0
  117. package/src/browser/chat-tree-view/index.ts +18 -0
  118. package/src/browser/chat-view-commands.ts +45 -0
  119. package/src/browser/chat-view-contribution.ts +154 -0
  120. package/src/browser/chat-view-language-contribution.ts +141 -0
  121. package/src/browser/chat-view-widget-toolbar-contribution.tsx +54 -0
  122. package/src/browser/chat-view-widget.tsx +194 -0
  123. package/src/browser/style/index.css +415 -0
@@ -0,0 +1,415 @@
1
+ .chat-view-widget {
2
+ display: flex;
3
+ flex-direction: column;
4
+ }
5
+
6
+ .chat-tree-view-widget {
7
+ flex: 1;
8
+ }
9
+
10
+ .chat-input-widget > .ps__rail-x,
11
+ .chat-input-widget > .ps__rail-y {
12
+ display: none !important;
13
+ }
14
+
15
+ .theia-ChatNode {
16
+ cursor: default;
17
+ display: flex;
18
+ flex-direction: column;
19
+ padding: 16px 20px 6px 20px;
20
+ user-select: text;
21
+ -webkit-user-select: text;
22
+ border-bottom: 1px solid var(--theia-sideBarSectionHeader-border);
23
+ overflow-wrap: break-word;
24
+ }
25
+
26
+ div:last-child > .theia-ChatNode {
27
+ border: none;
28
+ }
29
+
30
+ .theia-ChatNodeHeader {
31
+ align-items: center;
32
+ display: flex;
33
+ justify-content: space-between;
34
+ height: 24px;
35
+ gap: 8px;
36
+ width: 100%;
37
+ }
38
+
39
+ .theia-ChatNodeHeader .theia-AgentAvatar {
40
+ pointer-events: none;
41
+ user-select: none;
42
+ font-size: 20px;
43
+ }
44
+
45
+ .theia-ChatNodeHeader .theia-AgentLabel {
46
+ font-size: 13px;
47
+ font-weight: 600;
48
+ margin: 0;
49
+ }
50
+
51
+ .theia-ChatNodeHeader .theia-ChatContentInProgress {
52
+ color: var(--theia-disabledForeground);
53
+ }
54
+
55
+ .theia-ChatNodeHeader .theia-ChatContentInProgress-Cancel {
56
+ position: absolute;
57
+ z-index: 999;
58
+ right: 20px;
59
+ }
60
+
61
+ @keyframes dots {
62
+ 0%,
63
+ 20% {
64
+ content: "";
65
+ }
66
+
67
+ 40% {
68
+ content: ".";
69
+ }
70
+
71
+ 60% {
72
+ content: "..";
73
+ }
74
+
75
+ 80%,
76
+ 100% {
77
+ content: "...";
78
+ }
79
+ }
80
+
81
+ .theia-ChatNodeHeader .theia-ChatContentInProgress::after {
82
+ content: "";
83
+ animation: dots 1s steps(1, end) infinite;
84
+ }
85
+
86
+ .theia-ChatNode .codicon {
87
+ text-align: left;
88
+ }
89
+
90
+ .theia-AgentLabel {
91
+ font-weight: 600;
92
+ }
93
+
94
+ .theia-ChatNode .theia-ChatNodeToolbar {
95
+ margin-left: auto;
96
+ line-height: 18px;
97
+ }
98
+ .theia-ChatNodeToolbar .theia-ChatNodeToolbarAction {
99
+ display: none;
100
+ align-items: center;
101
+ padding: 4px;
102
+ border-radius: 5px;
103
+ }
104
+ .theia-ChatNode:hover .theia-ChatNodeToolbar .theia-ChatNodeToolbarAction {
105
+ display: inline-block;
106
+ }
107
+ .theia-ChatNodeToolbar .theia-ChatNodeToolbarAction:hover {
108
+ cursor: pointer;
109
+ background-color: var(--theia-toolbar-hoverBackground);
110
+ }
111
+
112
+ .theia-ChatNode {
113
+ line-height: 1.3rem;
114
+ }
115
+
116
+ .theia-ChatNode ul,
117
+ .theia-ChatNode ol {
118
+ padding-inline-start: 1rem;
119
+ }
120
+
121
+ .theia-ChatNode li > p {
122
+ margin-top: 0;
123
+ margin-bottom: 0;
124
+ }
125
+
126
+ .theia-ChatNode .theia-CodeWrapper {
127
+ padding: 0.5em;
128
+ padding-bottom: 0;
129
+ background-color: var(--theia-editor-background);
130
+ border-radius: 6px;
131
+ border: var(--theia-border-width) solid var(--theia-checkbox-border);
132
+ font-size: var(--theia-code-font-size);
133
+ }
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
+
149
+ .chat-input-widget {
150
+ align-items: flex-end;
151
+ display: flex;
152
+ flex-direction: column;
153
+ }
154
+
155
+ .theia-ChatInput {
156
+ position: relative;
157
+ width: 100%;
158
+ box-sizing: border-box;
159
+ gap: 4px;
160
+ }
161
+
162
+ .theia-ChatInput-Editor-Box {
163
+ margin-bottom: 2px;
164
+ padding: 10px;
165
+ height: auto;
166
+ display: flex;
167
+ flex-direction: column;
168
+ justify-content: flex-end;
169
+ overflow: hidden;
170
+ }
171
+
172
+ .theia-ChatInput-Editor {
173
+ width: 100%;
174
+ height: auto;
175
+ border: var(--theia-border-width) solid var(--theia-dropdown-border);
176
+ border-radius: 4px;
177
+ display: flex;
178
+ flex-direction: column-reverse;
179
+ overflow: hidden;
180
+ transition: height 0.05s ease-in-out;
181
+ }
182
+
183
+ .theia-ChatInput-Editor:has(.monaco-editor.focused) {
184
+ border-color: var(--theia-focusBorder);
185
+ }
186
+
187
+ .theia-ChatInput-Editor .monaco-editor {
188
+ display: flex;
189
+ width: 100%;
190
+ height: 100%;
191
+ overflow: hidden;
192
+ position: relative;
193
+ }
194
+
195
+ .theia-ChatInput-Editor-Placeholder {
196
+ position: absolute;
197
+ top: -3px;
198
+ left: 19px;
199
+ right: 0;
200
+ bottom: 0;
201
+ display: flex;
202
+ align-items: center;
203
+ color: var(--theia-descriptionForeground);
204
+ pointer-events: none;
205
+ z-index: 10;
206
+ text-align: left;
207
+ }
208
+ .theia-ChatInput-Editor-Placeholder.hidden {
209
+ display: none;
210
+ }
211
+
212
+ .theia-ChatInput-Editor .monaco-editor .margin,
213
+ .theia-ChatInput-Editor .monaco-editor .monaco-editor-background,
214
+ .theia-ChatInput-Editor .monaco-editor .inputarea.ime-input {
215
+ padding-left: 8px !important;
216
+ }
217
+
218
+ .theia-ChatInputOptions {
219
+ position: absolute;
220
+ bottom: 31px;
221
+ right: 26px;
222
+ width: 10px;
223
+ height: 10px;
224
+ }
225
+
226
+ .theia-ChatInputOptions .option {
227
+ width: 21px;
228
+ height: 21px;
229
+ margin-top: 2px;
230
+ display: inline-block;
231
+ box-sizing: border-box;
232
+ user-select: none;
233
+ background-repeat: no-repeat;
234
+ background-position: center;
235
+ border: var(--theia-border-width) solid transparent;
236
+ opacity: 0.7;
237
+ cursor: pointer;
238
+ }
239
+
240
+ .theia-ChatInputOptions .option:hover {
241
+ opacity: 1;
242
+ }
243
+
244
+ .theia-CodePartRenderer-root {
245
+ display: flex;
246
+ flex-direction: column;
247
+ gap: 2px;
248
+ border: var(--theia-border-width) solid var(--theia-input-border);
249
+ border-radius: 4px;
250
+ }
251
+
252
+ .theia-CodePartRenderer-left {
253
+ flex-grow: 1;
254
+ }
255
+
256
+ .theia-CodePartRenderer-top {
257
+ display: flex;
258
+ justify-content: space-between;
259
+ align-items: center;
260
+ padding-left: 2px;
261
+ padding-right: 2px;
262
+ }
263
+
264
+ .theia-CodePartRenderer-right .button {
265
+ margin-left: 2px;
266
+ width: 18px;
267
+ height: 18px;
268
+ padding: 2px;
269
+ border-radius: 5px;
270
+ cursor: pointer;
271
+ }
272
+ .theia-CodePartRenderer-right .button:hover {
273
+ background-color: var(--theia-toolbar-hoverBackground);
274
+ }
275
+
276
+ .theia-CodePartRenderer-separator {
277
+ width: 100%;
278
+ height: 1px;
279
+ background-color: var(--theia-input-border);
280
+ }
281
+
282
+ .theia-QuestionPartRenderer-root {
283
+ display: flex;
284
+ flex-direction: column;
285
+ gap: 8px;
286
+ border: var(--theia-border-width) solid
287
+ var(--theia-sideBarSectionHeader-border);
288
+ padding: 8px 12px 12px;
289
+ border-radius: 5px;
290
+ margin: 0 0 8px 0;
291
+ }
292
+ .theia-QuestionPartRenderer-options {
293
+ display: flex;
294
+ flex-wrap: wrap;
295
+ gap: 12px;
296
+ }
297
+ .theia-QuestionPartRenderer-option {
298
+ min-width: 100px;
299
+ flex: 1 1 auto;
300
+ margin: 0;
301
+ }
302
+ .theia-QuestionPartRenderer-option.selected:disabled:hover {
303
+ background-color: var(--theia-button-disabledBackground);
304
+ }
305
+ .theia-QuestionPartRenderer-option:disabled:not(.selected) {
306
+ background-color: var(--theia-button-secondaryBackground);
307
+ }
308
+
309
+ .theia-toolCall {
310
+ font-weight: normal;
311
+ color: var(--theia-descriptionForeground);
312
+ line-height: 20px;
313
+ margin-top: 13px;
314
+ margin-bottom: 13px;
315
+ cursor: pointer;
316
+ }
317
+
318
+ .theia-toolCall .fa,
319
+ .theia-toolCall details summary::marker {
320
+ color: var(--theia-button-background);
321
+ }
322
+
323
+ .theia-toolCall details pre {
324
+ cursor: text;
325
+ line-height: 1rem;
326
+ margin-top: 0;
327
+ margin-bottom: 0;
328
+ padding: 6px;
329
+ background-color: var(--theia-editor-background);
330
+ overflow: auto;
331
+ }
332
+
333
+ .collapsible-arguments {
334
+ display: inline-block;
335
+ }
336
+
337
+ .collapsible-arguments .collapsible-arguments-summary {
338
+ display: inline-block;
339
+ white-space: nowrap;
340
+ text-decoration: underline;
341
+ }
342
+
343
+ details[open].collapsible-arguments,
344
+ details[open].collapsible-arguments .collapsible-arguments-summary {
345
+ display: unset;
346
+ }
347
+
348
+ .theia-ResponseNode-ProgressMessage {
349
+ font-weight: normal;
350
+ color: var(--theia-descriptionForeground);
351
+ line-height: 20px;
352
+ margin-bottom: 6px;
353
+ }
354
+
355
+ .theia-ResponseNode-ProgressMessage .inProgress {
356
+ color: var(--theia-progressBar-background);
357
+ }
358
+ .theia-ResponseNode-ProgressMessage .completed {
359
+ color: var(--theia-successBackground);
360
+ }
361
+ .theia-ResponseNode-ProgressMessage .failed {
362
+ color: var(--theia-errorForeground);
363
+ }
364
+
365
+ .spinner {
366
+ display: inline-block;
367
+ animation: spin 2s linear infinite;
368
+ }
369
+
370
+ @keyframes spin {
371
+ 0% {
372
+ transform: rotate(0deg);
373
+ }
374
+
375
+ 100% {
376
+ transform: rotate(360deg);
377
+ }
378
+ }
379
+
380
+ .theia-ChatPart-Error {
381
+ display: flex;
382
+ flex-direction: row;
383
+ gap: 0.5em;
384
+ color: var(--theia-errorForeground);
385
+ }
386
+
387
+ .section-header {
388
+ font-weight: bold;
389
+ font-size: 16px;
390
+ margin-bottom: 10px;
391
+ }
392
+
393
+ .section-title {
394
+ font-weight: bold;
395
+ font-size: 14px;
396
+ margin: 20px 0px;
397
+ }
398
+
399
+ .disable-message {
400
+ font-size: 12px;
401
+ line-height: 1.6;
402
+ padding: 15px;
403
+ }
404
+
405
+ .section-content p {
406
+ margin: 10px 0;
407
+ }
408
+
409
+ .section-content a {
410
+ cursor: pointer;
411
+ }
412
+
413
+ .section-content strong {
414
+ font-weight: bold;
415
+ }