@theia/ai-ide 1.67.0-next.59 → 1.67.0

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 (119) hide show
  1. package/lib/browser/address-pr-review-command-contribution.d.ts +9 -0
  2. package/lib/browser/address-pr-review-command-contribution.d.ts.map +1 -0
  3. package/lib/browser/address-pr-review-command-contribution.js +176 -0
  4. package/lib/browser/address-pr-review-command-contribution.js.map +1 -0
  5. package/lib/browser/ai-configuration/agent-configuration-widget.d.ts +12 -6
  6. package/lib/browser/ai-configuration/agent-configuration-widget.d.ts.map +1 -1
  7. package/lib/browser/ai-configuration/agent-configuration-widget.js +158 -106
  8. package/lib/browser/ai-configuration/agent-configuration-widget.js.map +1 -1
  9. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.d.ts +32 -0
  10. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.d.ts.map +1 -0
  11. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.js +55 -0
  12. package/lib/browser/ai-configuration/base/ai-card-grid-configuration-widget.js.map +1 -0
  13. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.d.ts +14 -0
  14. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.d.ts.map +1 -0
  15. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.js +35 -0
  16. package/lib/browser/ai-configuration/base/ai-configuration-base-widget.js.map +1 -0
  17. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.d.ts +23 -0
  18. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.d.ts.map +1 -0
  19. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.js +60 -0
  20. package/lib/browser/ai-configuration/base/ai-hierarchical-configuration-widget.js.map +1 -0
  21. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.d.ts +56 -0
  22. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.d.ts.map +1 -0
  23. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.js +96 -0
  24. package/lib/browser/ai-configuration/base/ai-list-detail-configuration-widget.js.map +1 -0
  25. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.d.ts +45 -0
  26. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.d.ts.map +1 -0
  27. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.js +66 -0
  28. package/lib/browser/ai-configuration/base/ai-table-configuration-widget.js.map +1 -0
  29. package/lib/browser/ai-configuration/components/configuration-section.d.ts +13 -0
  30. package/lib/browser/ai-configuration/components/configuration-section.d.ts.map +1 -0
  31. package/lib/browser/ai-configuration/components/configuration-section.js +28 -0
  32. package/lib/browser/ai-configuration/components/configuration-section.js.map +1 -0
  33. package/lib/browser/ai-configuration/components/empty-state.d.ts +11 -0
  34. package/lib/browser/ai-configuration/components/empty-state.d.ts.map +1 -0
  35. package/lib/browser/ai-configuration/components/empty-state.js +26 -0
  36. package/lib/browser/ai-configuration/components/empty-state.js.map +1 -0
  37. package/lib/browser/ai-configuration/components/expandable-section.d.ts +14 -0
  38. package/lib/browser/ai-configuration/components/expandable-section.d.ts.map +1 -0
  39. package/lib/browser/ai-configuration/components/expandable-section.js +31 -0
  40. package/lib/browser/ai-configuration/components/expandable-section.js.map +1 -0
  41. package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -1
  42. package/lib/browser/ai-configuration/language-model-renderer.js +23 -22
  43. package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -1
  44. package/lib/browser/ai-configuration/mcp-configuration-widget.d.ts +0 -1
  45. package/lib/browser/ai-configuration/mcp-configuration-widget.d.ts.map +1 -1
  46. package/lib/browser/ai-configuration/mcp-configuration-widget.js +88 -82
  47. package/lib/browser/ai-configuration/mcp-configuration-widget.js.map +1 -1
  48. package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts +8 -22
  49. package/lib/browser/ai-configuration/model-aliases-configuration-widget.d.ts.map +1 -1
  50. package/lib/browser/ai-configuration/model-aliases-configuration-widget.js +49 -78
  51. package/lib/browser/ai-configuration/model-aliases-configuration-widget.js.map +1 -1
  52. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js +10 -10
  53. package/lib/browser/ai-configuration/prompt-fragments-configuration-widget.js.map +1 -1
  54. package/lib/browser/ai-configuration/template-settings-renderer.d.ts.map +1 -1
  55. package/lib/browser/ai-configuration/template-settings-renderer.js +11 -11
  56. package/lib/browser/ai-configuration/template-settings-renderer.js.map +1 -1
  57. package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts +7 -8
  58. package/lib/browser/ai-configuration/token-usage-configuration-widget.d.ts.map +1 -1
  59. package/lib/browser/ai-configuration/token-usage-configuration-widget.js +93 -79
  60. package/lib/browser/ai-configuration/token-usage-configuration-widget.js.map +1 -1
  61. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts +12 -7
  62. package/lib/browser/ai-configuration/tools-configuration-widget.d.ts.map +1 -1
  63. package/lib/browser/ai-configuration/tools-configuration-widget.js +45 -37
  64. package/lib/browser/ai-configuration/tools-configuration-widget.js.map +1 -1
  65. package/lib/browser/ai-configuration/variable-configuration-widget.d.ts +8 -4
  66. package/lib/browser/ai-configuration/variable-configuration-widget.d.ts.map +1 -1
  67. package/lib/browser/ai-configuration/variable-configuration-widget.js +61 -28
  68. package/lib/browser/ai-configuration/variable-configuration-widget.js.map +1 -1
  69. package/lib/browser/analyze-gh-ticket-command-contribution.d.ts +9 -0
  70. package/lib/browser/analyze-gh-ticket-command-contribution.d.ts.map +1 -0
  71. package/lib/browser/analyze-gh-ticket-command-contribution.js +172 -0
  72. package/lib/browser/analyze-gh-ticket-command-contribution.js.map +1 -0
  73. package/lib/browser/default-chat-agent-recommendation-service.d.ts +5 -0
  74. package/lib/browser/default-chat-agent-recommendation-service.d.ts.map +1 -0
  75. package/lib/browser/default-chat-agent-recommendation-service.js +47 -0
  76. package/lib/browser/default-chat-agent-recommendation-service.js.map +1 -0
  77. package/lib/browser/frontend-module.d.ts.map +1 -1
  78. package/lib/browser/frontend-module.js +9 -3
  79. package/lib/browser/frontend-module.js.map +1 -1
  80. package/lib/browser/ide-chat-welcome-message-provider.d.ts +36 -0
  81. package/lib/browser/ide-chat-welcome-message-provider.d.ts.map +1 -1
  82. package/lib/browser/ide-chat-welcome-message-provider.js +204 -1
  83. package/lib/browser/ide-chat-welcome-message-provider.js.map +1 -1
  84. package/lib/browser/implement-gh-ticket-command-contribution.d.ts +9 -0
  85. package/lib/browser/implement-gh-ticket-command-contribution.d.ts.map +1 -0
  86. package/lib/browser/implement-gh-ticket-command-contribution.js +156 -0
  87. package/lib/browser/implement-gh-ticket-command-contribution.js.map +1 -0
  88. package/package.json +21 -21
  89. package/src/browser/address-pr-review-command-contribution.ts +180 -0
  90. package/src/browser/ai-configuration/agent-configuration-widget.tsx +258 -137
  91. package/src/browser/ai-configuration/base/ai-card-grid-configuration-widget.tsx +72 -0
  92. package/src/browser/ai-configuration/base/ai-configuration-base-widget.tsx +37 -0
  93. package/src/browser/ai-configuration/base/ai-hierarchical-configuration-widget.tsx +51 -0
  94. package/src/browser/ai-configuration/base/ai-list-detail-configuration-widget.tsx +140 -0
  95. package/src/browser/ai-configuration/base/ai-table-configuration-widget.tsx +107 -0
  96. package/src/browser/ai-configuration/components/configuration-section.tsx +37 -0
  97. package/src/browser/ai-configuration/components/empty-state.tsx +30 -0
  98. package/src/browser/ai-configuration/components/expandable-section.tsx +51 -0
  99. package/src/browser/ai-configuration/language-model-renderer.tsx +68 -63
  100. package/src/browser/ai-configuration/mcp-configuration-widget.tsx +82 -87
  101. package/src/browser/ai-configuration/model-aliases-configuration-widget.tsx +93 -107
  102. package/src/browser/ai-configuration/prompt-fragments-configuration-widget.tsx +10 -10
  103. package/src/browser/ai-configuration/template-settings-renderer.tsx +25 -29
  104. package/src/browser/ai-configuration/token-usage-configuration-widget.tsx +131 -131
  105. package/src/browser/ai-configuration/tools-configuration-widget.tsx +70 -61
  106. package/src/browser/ai-configuration/variable-configuration-widget.tsx +95 -45
  107. package/src/browser/analyze-gh-ticket-command-contribution.ts +176 -0
  108. package/src/browser/default-chat-agent-recommendation-service.ts +43 -0
  109. package/src/browser/frontend-module.ts +12 -7
  110. package/src/browser/ide-chat-welcome-message-provider.tsx +300 -2
  111. package/src/browser/implement-gh-ticket-command-contribution.ts +160 -0
  112. package/src/browser/style/ai-configuration-base.css +90 -0
  113. package/src/browser/style/ai-configuration-cards.css +60 -0
  114. package/src/browser/style/ai-configuration-hierarchical.css +61 -0
  115. package/src/browser/style/ai-configuration-list-detail.css +88 -0
  116. package/src/browser/style/ai-configuration-table.css +73 -0
  117. package/src/browser/style/index.css +596 -261
  118. package/src/browser/style/widgets/mcp-configuration.css +253 -0
  119. package/src/browser/style/widgets/model-aliases-configuration.css +74 -0
@@ -1,9 +1,66 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2025 EclipseSource GmbH.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ /* Import base configuration styles */
18
+ @import url("./ai-configuration-base.css");
19
+ @import url("./ai-configuration-list-detail.css");
20
+ @import url("./ai-configuration-cards.css");
21
+ @import url("./ai-configuration-table.css");
22
+ @import url("./ai-configuration-hierarchical.css");
23
+
24
+ /* Import widget-specific styles */
25
+ @import url("./widgets/model-aliases-configuration.css");
26
+ @import url("./widgets/mcp-configuration.css");
27
+
28
+ /* Override preferences grid layout for AI Configuration widgets */
29
+ .ai-configuration-widget.theia-settings-container {
30
+ display: block;
31
+ grid-template-columns: none;
32
+ grid-template-rows: none;
33
+ grid-template-areas: none;
34
+ max-width: none;
35
+ padding: 0;
36
+ }
37
+
38
+ /* Override max-width constraint from preferences CSS */
39
+ .theia-settings-container:has(.ai-configuration-widget),
40
+ .ai-configuration-widget.theia-settings-container {
41
+ max-width: none;
42
+ width: 100%;
43
+ }
44
+
45
+ /* Override grid-area assignments from preferences CSS */
46
+ .ai-configuration-widget .preferences-tree-widget,
47
+ .ai-configuration-widget .preferences-editor-widget {
48
+ grid-area: auto;
49
+ overflow: auto;
50
+ }
51
+
1
52
  .ai-configuration-widget {
2
- padding: var(--theia-ui-padding);
53
+ max-width: 1000px;
54
+ padding: 0;
55
+ height: 100%;
56
+ display: flex;
57
+ flex-direction: column;
3
58
  }
4
59
 
5
60
  .ai-configuration-widget [role="tablist"] {
6
61
  overflow: scroll;
62
+ background-color: var(--theia-editor-background);
63
+ border-bottom: var(--theia-border-width) solid var(--theia-widget-border);
7
64
  }
8
65
 
9
66
  .ai-configuration-widget [role="tablist"]::-webkit-scrollbar {
@@ -14,43 +71,91 @@
14
71
  padding: var(--theia-ui-padding);
15
72
  }
16
73
 
17
- .language-model-container {
18
- padding-top: calc(2 * var(--theia-ui-padding));
19
- }
20
-
21
- .language-model-container .theia-select {
22
- margin-left: var(--theia-ui-padding);
23
- }
24
-
25
- .theia-settings-container
26
- .settings-section-subcategory-title.ai-settings-section-subcategory-title {
74
+ .theia-settings-container .settings-section-subcategory-title.ai-settings-section-subcategory-title {
27
75
  padding-left: 0;
28
76
  }
29
77
 
30
78
  .ai-templates {
31
79
  display: flex;
32
80
  flex-direction: column;
33
- gap: 5px;
81
+ gap: calc(var(--theia-ui-padding) / 2);
82
+ margin-bottom: calc(var(--theia-ui-padding) * 2);
83
+ }
84
+
85
+ .ai-templates-table {
86
+ width: 100%;
87
+ border-collapse: collapse;
88
+ border: var(--theia-border-width) solid var(--theia-widget-border);
89
+ border-radius: 3px;
90
+ }
91
+
92
+ .ai-templates-table thead th {
93
+ text-align: left;
94
+ padding: var(--theia-ui-padding);
95
+ background-color: var(--theia-editorWidget-background);
96
+ color: var(--theia-descriptionForeground);
97
+ font-weight: 600;
98
+ border-bottom: var(--theia-border-width) solid var(--theia-widget-border);
99
+ }
100
+
101
+ .ai-templates-table tbody td {
102
+ padding: var(--theia-ui-padding);
103
+ border-bottom: var(--theia-border-width) solid var(--theia-widget-border);
104
+ }
105
+
106
+ .ai-templates-table tbody tr:last-child td {
107
+ border-bottom: none;
108
+ }
109
+
110
+ .template-name-cell {
111
+ font-weight: 500;
112
+ }
113
+
114
+ .template-variant-cell {
115
+ width: 200px;
116
+ }
117
+
118
+ .template-actions-cell,
119
+ .ai-templates-table thead th.template-actions-header {
120
+ width: 100px;
121
+ text-align: right;
122
+ }
123
+
124
+ .template-action-icon-button {
125
+ background: transparent;
126
+ border: none;
127
+ cursor: pointer;
128
+ padding: calc(var(--theia-ui-padding) / 2);
129
+ color: var(--theia-icon-foreground);
130
+ display: inline-flex;
131
+ align-items: center;
132
+ justify-content: center;
133
+ border-radius: 3px;
134
+ transition: background-color 0.2s;
135
+ }
136
+
137
+ .template-action-icon-button:hover {
138
+ background-color: var(--theia-list-hoverBackground);
34
139
  }
35
140
 
36
141
  .template-renderer {
37
142
  display: flex;
38
143
  flex-direction: column;
39
- padding: 10px;
144
+ padding: var(--theia-ui-padding);
40
145
  }
41
146
 
42
147
  .template-header {
43
- margin-bottom: 8px;
148
+ margin-bottom: calc(var(--theia-ui-padding) / 2);
44
149
  }
45
150
 
46
151
  .template-controls {
47
152
  display: flex;
48
153
  align-items: center;
49
- gap: 10px;
154
+ gap: var(--theia-ui-padding);
50
155
  }
51
156
 
52
157
  .template-select-label {
53
- margin-right: 5px;
158
+ margin-right: calc(var(--theia-ui-padding) / 2);
54
159
  }
55
160
 
56
161
  .template-variant-selector {
@@ -66,76 +171,240 @@
66
171
  #ai-variable-configuration-container-widget,
67
172
  #ai-agent-configuration-container-widget,
68
173
  #ai-model-aliases-configuration-widget {
69
- margin-top: 5px;
174
+ flex: 1;
175
+ overflow: hidden;
70
176
  }
71
177
 
72
- /* Variable Settings */
73
- #ai-variable-configuration-container-widget ul {
74
- list-style: none;
75
- padding: 0;
76
- margin: 0;
178
+ /* Section headers and spacing */
179
+ .settings-section-title {
180
+ font-size: var(--theia-ui-font-size3);
181
+ font-weight: 600;
182
+ margin: 0 0 calc(var(--theia-ui-padding) * 1.5) 0;
183
+ padding: 0 0 calc(var(--theia-ui-padding) / 2) 0;
184
+ border-bottom: var(--theia-border-width) solid var(--theia-widget-border);
185
+ }
186
+
187
+ .settings-section-title pre {
188
+ font-size: calc(var(--theia-ui-font-size0) * 0.9);
189
+ color: var(--theia-descriptionForeground);
190
+ margin-top: calc(var(--theia-ui-padding) / 2);
77
191
  }
78
192
 
79
- #ai-variable-configuration-container-widget .variable-item {
193
+ /* Agent title with toggle */
194
+ .agent-title-with-toggle {
195
+ display: block;
196
+ }
197
+
198
+ .agent-title-content {
80
199
  display: flex;
81
- flex-direction: column;
82
- margin-bottom: 1rem;
200
+ justify-content: space-between;
201
+ align-items: flex-start;
202
+ gap: calc(var(--theia-ui-padding) * 2);
203
+ }
204
+
205
+ .ai-id-label {
206
+ display: inline-block;
207
+ margin-left: var(--theia-ui-padding);
208
+ }
209
+
210
+ .agent-enable-toggle {
211
+ display: flex;
212
+ align-items: center;
213
+ gap: calc(var(--theia-ui-padding));
214
+ cursor: pointer;
215
+ user-select: none;
216
+ flex-shrink: 0;
217
+ }
218
+
219
+ /* Toggle switch */
220
+ .toggle-switch {
221
+ position: relative;
222
+ display: inline-block;
223
+ width: 36px;
224
+ height: 20px;
225
+ }
226
+
227
+ .toggle-switch input[type="checkbox"] {
228
+ opacity: 0;
229
+ width: 0;
230
+ height: 0;
231
+ }
232
+
233
+ .toggle-slider {
234
+ position: absolute;
235
+ cursor: pointer;
236
+ top: 0;
237
+ left: 0;
238
+ right: 0;
239
+ bottom: 0;
240
+ background-color: var(--theia-radio-inactiveHoverBackground);
241
+ transition: 0.2s;
242
+ border-radius: 20px;
243
+ }
244
+
245
+ .toggle-slider:before {
246
+ position: absolute;
247
+ content: "";
248
+ height: 14px;
249
+ width: 14px;
250
+ left: calc(var(--theia-ui-padding) / 2);
251
+ bottom: calc(var(--theia-ui-padding) / 2);
252
+ background-color: var(--theia-icon-foreground);
253
+ transition: 0.2s;
254
+ border-radius: 50%;
255
+ }
256
+
257
+ .toggle-switch input:checked+.toggle-slider {
258
+ background-color: var(--theia-button-background);
259
+ }
260
+
261
+ .toggle-switch input:checked+.toggle-slider:before {
262
+ transform: translateX(16px);
263
+ background-color: var(--theia-button-foreground);
264
+ }
265
+
266
+ .toggle-switch:hover .toggle-slider {
267
+ opacity: 0.9;
268
+ }
269
+
270
+ /* Agent status indicator in tree */
271
+ .agent-status-indicator {
272
+ font-size: var(--theia-ui-font-size3);
273
+ margin-right: var(--theia-ui-padding);
274
+ display: inline-block;
275
+ line-height: var(--theia-content-line-height);
276
+ align-content: center;
277
+ }
278
+
279
+ .agent-status-indicator.agent-enabled {
280
+ color: var(--theia-charts-green);
281
+ }
282
+
283
+ .agent-status-indicator.agent-disabled {
284
+ color: var(--theia-descriptionForeground);
285
+ opacity: 0.5;
286
+ }
287
+
288
+ /* LLM Requirements and Agent-Specific Variables - Table-like layout */
289
+ .ai-llm-requirement-item,
290
+ .ai-agent-specific-variable-item {
291
+ border-top: var(--theia-border-width) solid var(--theia-widget-border);
292
+ border-bottom: var(--theia-border-width) solid var(--theia-widget-border);
293
+ padding: calc(var(--theia-ui-padding) * 1.5) 0;
294
+ margin-bottom: calc(var(--theia-ui-padding) * 2);
83
295
  }
84
296
 
85
- #ai-variable-configuration-container-widget .variable-args {
297
+ .ai-llm-requirement-item:first-of-type,
298
+ .ai-agent-specific-variable-item:first-of-type {
299
+ margin-top: calc(var(--theia-ui-padding));
300
+ }
301
+
302
+ .ai-configuration-value-row {
86
303
  display: grid;
87
- grid-template-columns: 1fr 2fr;
304
+ grid-template-columns: 10em 1fr;
305
+ gap: calc(var(--theia-ui-padding) * 2);
306
+ align-items: start;
307
+ padding: calc(var(--theia-ui-padding) / 2) 0;
308
+ }
309
+
310
+ .ai-configuration-value-row-label {
311
+ font-weight: 500;
312
+ color: var(--theia-foreground);
313
+ text-align: left;
314
+ padding-right: var(--theia-ui-padding);
315
+ }
316
+
317
+ .ai-configuration-value-row-value {
318
+ color: var(--theia-foreground);
319
+ word-break: break-word;
320
+ }
321
+
322
+ .ai-configuration-value-row-value.ai-alias-evaluates-to-unresolved {
323
+ color: var(--theia-descriptionForeground);
324
+ }
325
+
326
+ .settings-section-subcategory-title {
327
+ font-size: var(--theia-ui-font-size2);
328
+ font-weight: 600;
329
+ margin: calc(var(--theia-ui-padding) * 3) 0 calc(var(--theia-ui-padding) * 1.5) 0;
330
+ padding: 0;
331
+ color: var(--theia-foreground);
88
332
  }
89
333
 
90
- /* Agent and Model Alias Settings */
91
- #ai-agent-configuration-container-widget ul,
92
- #ai-model-aliases-configuration-widget .model-alias-configuration-list ul {
334
+ /* Detail pane content sections */
335
+ .ai-configuration-detail>div {
336
+ margin-bottom: calc(var(--theia-ui-padding) * 2);
337
+ }
338
+
339
+ .ai-configuration-detail>div:last-child {
340
+ margin-bottom: 0;
341
+ }
342
+
343
+ /* Agent description and enable checkbox */
344
+ .ai-configuration-detail label {
345
+ display: inline-flex;
346
+ align-items: center;
347
+ gap: calc(var(--theia-ui-padding) / 2);
348
+ cursor: pointer;
349
+ user-select: none;
350
+ }
351
+
352
+ .ai-configuration-detail label input[type="checkbox"] {
353
+ margin: 0;
354
+ }
355
+
356
+ /* Variable and Agent reference lists */
357
+ .variable-references,
358
+ .function-references {
93
359
  list-style: none;
94
360
  padding: 0;
95
361
  margin: 0;
96
362
  }
97
363
 
98
- .ai-agent-configuration-main,
99
- .model-alias-configuration-main {
364
+ .variable-reference,
365
+ .function-reference {
100
366
  display: flex;
101
- flex-direction: row;
367
+ align-items: center;
368
+ gap: var(--theia-ui-padding);
369
+ padding: calc(var(--theia-ui-padding) / 2);
102
370
  }
103
371
 
104
- #ai-agent-configuration-container-widget
105
- .ai-agent-configuration-main
106
- .configuration-agents-list,
107
- #ai-model-aliases-configuration-widget .model-alias-configuration-list {
108
- min-width: 160px;
372
+ /* Variable agent list */
373
+ .variable-agent-list {
374
+ list-style: none;
375
+ padding: 0;
376
+ margin: 0;
377
+ display: flex;
378
+ flex-direction: column;
379
+ gap: 1px;
380
+ background-color: var(--theia-widget-border);
381
+ border: var(--theia-border-width) solid var(--theia-widget-border);
382
+ border-radius: 3px;
109
383
  overflow: hidden;
110
- white-space: nowrap;
111
- text-overflow: ellipsis;
112
- padding-left: 0;
113
- padding: var(--theia-ui-padding);
114
384
  }
115
385
 
116
- .configuration-agent-panel,
117
- .model-alias-configuration-panel {
118
- flex: 1;
386
+ .variable-agent-item {
387
+ display: flex;
388
+ align-items: center;
389
+ justify-content: space-between;
390
+ padding: calc(var(--theia-ui-padding) / 1.5) var(--theia-ui-padding);
391
+ background-color: var(--theia-editor-background);
392
+ cursor: pointer;
393
+ transition: background-color 0.1s;
119
394
  }
120
395
 
121
- #ai-variable-configuration-container-widget .variable-references,
122
- #ai-agent-configuration-container-widget .variable-references,
123
- #ai-agent-configuration-container-widget .function-references {
124
- margin-left: 0.5rem;
125
- padding: 0.5rem;
126
- border-left: solid 1px var(--theia-tree-indentGuidesStroke);
396
+ .variable-agent-item:hover {
397
+ background-color: var(--theia-list-hoverBackground);
127
398
  }
128
399
 
129
- #ai-variable-configuration-container-widget .variable-reference,
130
- #ai-agent-configuration-container-widget .variable-reference,
131
- #ai-agent-configuration-container-widget .function-reference {
132
- display: flex;
133
- flex-direction: row;
134
- align-items: center;
400
+ .variable-agent-item i {
401
+ color: var(--theia-descriptionForeground);
402
+ opacity: 0.7;
135
403
  }
136
404
 
137
405
  .agent-tag {
138
406
  padding: calc(var(--theia-ui-padding) * 2 / 3);
407
+ margin-left: var(--theia-ui-padding);
139
408
  padding-top: 0px;
140
409
  padding-bottom: 0px;
141
410
  border-radius: calc(var(--theia-ui-padding) * 2 / 3);
@@ -143,7 +412,11 @@
143
412
  }
144
413
 
145
414
  .configuration-agents-add {
146
- margin-top: 3em;
415
+ margin: calc(var(--theia-ui-padding) * 2) var(--theia-ui-padding);
416
+ }
417
+
418
+ .configuration-agents-add button {
419
+ width: 100%;
147
420
  margin-left: 0;
148
421
  }
149
422
 
@@ -153,8 +426,7 @@
153
426
  .ai-tools-configuration-container,
154
427
  .ai-prompt-fragments-configuration {
155
428
  padding: var(--theia-ui-padding);
156
- max-width: 600px;
157
- margin: 0 auto;
429
+ max-width: 1200px;
158
430
  }
159
431
 
160
432
  .prompt-fragments-header {
@@ -378,7 +650,6 @@
378
650
  display: flex;
379
651
  align-items: center;
380
652
  cursor: pointer;
381
- padding: 5px;
382
653
  border-radius: 4px;
383
654
  transition: background-color 0.2s;
384
655
  }
@@ -451,7 +722,7 @@
451
722
  display: flex;
452
723
  justify-content: space-between;
453
724
  align-items: center;
454
- padding: 10px 15px;
725
+ padding: var(--theia-ui-padding) var(--theia-ui-padding);
455
726
  cursor: pointer;
456
727
  background-color: var(--theia-editor-background);
457
728
  transition: background-color 0.2s;
@@ -468,274 +739,271 @@
468
739
  .prompt-fragment-title {
469
740
  display: flex;
470
741
  align-items: center;
471
- gap: 8px;
742
+ gap: var(--theia-ui-padding);
472
743
  }
473
744
 
474
745
  .prompt-fragment-title h2,
475
- h4 {
476
- margin-right: 8px;
746
+ .prompt-fragment-title h4 {
747
+ margin-right: var(--theia-ui-padding);
477
748
  margin: 0;
478
749
  }
479
750
 
751
+ .prompt-fragment-title h2 {
752
+ font-size: var(--theia-ui-font-size2);
753
+ }
754
+
755
+ .prompt-fragment-title h4 {
756
+ font-size: var(--theia-ui-font-size1);
757
+ }
758
+
480
759
  .prompt-fragment-title .active-indicator {
481
- margin-right: 4px;
760
+ margin-right: calc(var(--theia-ui-padding) / 2);
482
761
  }
483
762
 
484
763
  .prompt-fragment-body {
485
- padding: 15px;
764
+ padding: var(--theia-ui-padding) var(--theia-ui-padding) 0 var(--theia-ui-padding);
486
765
  }
487
766
 
488
- .prompt-fragment-description {
767
+ .prompt-fragment-description p {
489
768
  margin-top: 0;
490
- margin-bottom: 10px;
769
+ margin-bottom: var(--theia-ui-padding);
491
770
  color: var(--theia-descriptionForeground);
492
771
  }
493
772
 
494
773
  .section-header {
495
- margin: 10px 0;
774
+ margin: var(--theia-ui-padding) 0;
496
775
  color: var(--theia-foreground);
497
- font-size: 14px;
498
- }
499
-
500
- /* MCP Configuration Styles */
501
- .mcp-configuration-title {
502
- margin: 0 0 16px 0;
503
- border-bottom: 1px solid var(--theia-panelTitle-activeBorder);
504
- padding-bottom: 8px;
776
+ font-size: var(--theia-ui-font-size2);
505
777
  }
506
778
 
507
- .mcp-server-card {
508
- border: 1px solid var(--theia-panelTitle-activeBorder);
509
- border-radius: 6px;
510
- padding: 12px;
511
- margin-bottom: 16px;
512
- background-color: var(--theia-editorWidget-background);
779
+ /* AI Chat View Styles */
780
+ .theia-ResponseNode-Content .disable-message {
781
+ font-size: var(--theia-ui-font-size1);
782
+ line-height: 1.6;
783
+ padding: calc(var(--theia-ui-padding) * 2);
513
784
  }
514
785
 
515
- .mcp-server-header {
786
+ .theia-WelcomeMessage {
516
787
  display: flex;
517
- justify-content: space-between;
788
+ flex-direction: column;
789
+ justify-content: center;
518
790
  align-items: center;
519
- margin-bottom: 12px;
791
+ height: 100%;
520
792
  }
521
793
 
522
- .mcp-server-name {
523
- font-weight: bold;
524
- font-size: var(--theia-ui-font-size3);
794
+ .theia-WelcomeMessage-Content {
795
+ text-align: center;
796
+ padding: 0 calc(var(--theia-ui-padding) * 2);
797
+ max-width: 350px;
525
798
  }
526
799
 
527
- .mcp-status-badge {
528
- padding: 3px 8px;
529
- border-radius: 12px;
530
- font-size: 12px;
531
- font-weight: bold;
532
- display: inline-block;
800
+ .theia-WelcomeMessage-Content h1 {
801
+ margin-top: 0;
533
802
  }
534
803
 
535
- .mcp-error-indicator {
536
- display: inline-flex;
537
- align-items: center;
538
- justify-content: center;
539
- width: 18px;
540
- height: 18px;
541
- border-radius: 50%;
542
- background-color: var(--theia-errorBackground);
543
- color: var(--theia-errorForeground);
544
- font-size: 12px;
545
- font-weight: bold;
546
- cursor: pointer;
547
- margin-left: 8px;
804
+ .theia-WelcomeMessage-Content h2 {
805
+ margin-top: 0;
806
+ margin-bottom: calc(var(--theia-ui-padding) * 2);
807
+ font-size: var(--theia-ui-font-size3);
548
808
  }
549
809
 
550
- .mcp-server-section {
551
- margin-bottom: 6px;
810
+ .theia-WelcomeMessage-Content p {
811
+ font-size: var(--theia-ui-font-size1);
812
+ line-height: var(--theia-content-line-height);
552
813
  }
553
814
 
554
- .mcp-section-label {
555
- font-weight: bold;
556
- color: var(--theia-descriptionForeground);
815
+ .theia-WelcomeMessage-Content p .codicon {
816
+ vertical-align: sub;
557
817
  }
558
818
 
559
- .mcp-code-block {
560
- background-color: var(--theia-editor-background);
561
- padding: 2px 4px;
562
- border-radius: 3px;
563
- font-family: monospace;
819
+ .theia-WelcomeMessage-Content em {
820
+ font-weight: bolder;
821
+ font-style: normal;
564
822
  }
565
823
 
566
- .mcp-env-block {
567
- margin-left: 10px;
568
- background-color: var(--theia-editor-background);
569
- padding: 4px 8px;
570
- border-radius: 3px;
571
- font-family: monospace;
572
- font-size: 12px;
824
+ .theia-WelcomeMessage-Content ul {
825
+ text-align: left;
826
+ padding-left: 20px;
827
+ list-style-position: outside;
573
828
  }
574
829
 
575
- .mcp-toggle-indicator {
576
- width: 16px;
577
- height: 16px;
578
- display: flex;
579
- align-items: center;
580
- justify-content: center;
581
- margin-right: 6px;
582
- transition: transform 0.2s ease;
830
+ .theia-WelcomeMessage-Error .theia-WelcomeMessage-ErrorIcon {
831
+ font-size: calc(var(--theia-ui-font-size1) * 3.7);
832
+ margin-bottom: calc(var(--theia-ui-padding) * 2.5);
583
833
  }
584
834
 
585
- .mcp-tools-section {
586
- margin-top: 12px;
587
- cursor: pointer;
588
- user-select: none;
835
+ .theia-WelcomeMessage-Actions {
836
+ display: flex;
837
+ flex-direction: column;
838
+ gap: var(--theia-ui-padding);
839
+ margin: calc(var(--theia-ui-padding) * 3) 0;
589
840
  }
590
841
 
591
- .mcp-tools-list {
592
- margin-left: 24px;
593
- margin-top: 4px;
594
- background-color: var(--theia-editor-background);
595
- border-radius: 3px;
596
- font-family: monospace;
597
- font-size: 12px;
842
+ .theia-WelcomeMessage-Actions .theia-button {
843
+ padding: 6px 9px;
844
+ border-radius: 2px;
845
+ cursor: pointer;
846
+ font-size: var(--theia-ui-font-size1);
847
+ border: 1px solid var(--theia-button-border);
848
+ transition: background-color 0.2s;
849
+ margin-left: 0;
598
850
  }
599
851
 
600
- .mcp-autostart-badge {
601
- padding: 2px 6px;
602
- border-radius: 3px;
603
- font-size: 12px;
604
- font-weight: bold;
852
+ .theia-WelcomeMessage-Actions .theia-button.main {
853
+ background-color: var(--theia-button-background);
854
+ color: var(--theia-button-foreground);
605
855
  }
606
856
 
607
- .mcp-no-servers {
608
- padding: 20px;
609
- text-align: center;
610
- color: var(--theia-descriptionForeground);
857
+ .theia-WelcomeMessage-Actions .theia-button.main:hover {
858
+ background-color: var(--theia-button-hoverBackground);
611
859
  }
612
860
 
613
- .mcp-status-container {
614
- display: flex;
615
- align-items: center;
861
+ .theia-WelcomeMessage-Actions .theia-button.secondary {
862
+ background-color: var(--theia-button-secondaryBackground);
863
+ color: var(--theia-button-secondaryForeground);
616
864
  }
617
865
 
618
- .mcp-server-controls {
619
- display: flex;
620
- align-items: center;
621
- margin-top: 12px;
622
- border-top: 1px solid var(--theia-panelTitle-inactiveForeground);
623
- padding-top: 12px;
866
+ .theia-WelcomeMessage-Actions .theia-button.secondary:hover {
867
+ background-color: var(--theia-button-secondaryHoverBackground);
624
868
  }
625
869
 
626
- .mcp-server-button {
627
- display: inline-flex;
628
- align-items: center;
629
- justify-content: center;
630
- background-color: var(--theia-button-background);
631
- color: var(--theia-button-foreground);
632
- border: none;
633
- border-radius: 4px;
634
- padding: 6px 8px;
635
- font-size: 12px;
636
- cursor: pointer;
637
- transition: background-color 0.2s;
638
- margin-right: 10px;
870
+ .theia-WelcomeMessage-Hint {
871
+ display: block;
872
+ margin-top: calc(var(--theia-ui-padding) * 2);
873
+ color: var(--theia-descriptionForeground);
874
+ font-style: italic;
639
875
  }
640
876
 
641
- .mcp-server-button:hover {
642
- background-color: var(--theia-button-hoverBackground);
877
+ .theia-WelcomeMessage-Options {
878
+ margin: calc(var(--theia-ui-padding) * 3) 0;
879
+ text-align: left;
643
880
  }
644
881
 
645
- .mcp-server-button.play-button {
646
- background-color: var(--theia-successBackground);
647
- color: var(--theia-successForeground);
882
+ .theia-WelcomeMessage-GuidanceList {
883
+ text-align: left;
884
+ margin: calc(var(--theia-ui-padding) * 2) 0;
885
+ padding-left: 20px;
886
+ line-height: 1.6;
648
887
  }
649
888
 
650
- .mcp-server-button.play-button:hover {
651
- background-color: var(--theia-successBackground);
652
- filter: brightness(1.1);
889
+ .theia-WelcomeMessage-GuidanceList li {
890
+ margin-bottom: calc(var(--theia-ui-padding) * 1.3);
653
891
  }
654
892
 
655
- .mcp-server-button.stop-button {
656
- background-color: var(--theia-errorBackground);
893
+ .theia-WelcomeMessage-IssuesList {
894
+ text-align: left;
895
+ margin: calc(var(--theia-ui-padding) * 1.3) 0;
896
+ padding-left: 20px;
657
897
  color: var(--theia-errorForeground);
898
+ font-size: 0.9em;
899
+ line-height: 1.5;
658
900
  }
659
901
 
660
- .mcp-server-button.stop-button:hover {
661
- background-color: var(--theia-errorBackground);
662
- filter: brightness(1.1);
902
+ .theia-WelcomeMessage-IssuesList li {
903
+ margin-bottom: calc(var(--theia-ui-padding) * 0.7);
663
904
  }
664
905
 
665
- .mcp-server-button-icon {
666
- margin-right: 6px;
667
- font-size: 14px;
906
+ .theia-WelcomeMessage-AgentButtons {
907
+ display: flex;
908
+ flex-direction: column;
909
+ gap: var(--theia-ui-padding);
910
+ margin: calc(var(--theia-ui-padding) * 3) 0;
668
911
  }
669
912
 
670
- .mcp-copy-tool-button {
671
- background: transparent;
672
- border: none;
673
- padding: 0;
913
+ .theia-WelcomeMessage-AgentButton {
914
+ display: flex;
915
+ align-items: center;
916
+ padding: 6px 9px;
917
+ background-color: var(--theia-button-background);
918
+ color: var(--theia-button-foreground);
919
+ border: 1px solid var(--theia-button-border);
920
+ border-radius: 2px;
674
921
  cursor: pointer;
675
- font-size: 12px;
676
- color: var(--theia-descriptionForeground);
677
- white-space: nowrap;
678
- }
679
-
680
- .theia-ResponseNode-Content .disable-message {
681
- font-size: 12px;
682
- line-height: 1.6;
683
- padding: 15px;
922
+ font-size: var(--theia-ui-font-size1);
923
+ transition: background-color 0.2s;
924
+ text-align: left;
925
+ width: 100%;
926
+ min-height: 28px;
684
927
  }
685
928
 
686
- .theia-WelcomeMessage {
687
- display: flex;
688
- flex-direction: column;
689
- justify-content: center;
690
- align-items: center;
691
- height: 100%;
929
+ .theia-WelcomeMessage-AgentButton:hover {
930
+ background-color: var(--theia-button-hoverBackground);
692
931
  }
693
932
 
694
- .theia-WelcomeMessage-Content {
695
- text-align: center;
696
- padding: 0 18px;
697
- max-width: 350px;
933
+ .theia-WelcomeMessage-AgentButton-Icon {
934
+ font-size: var(--theia-ui-font-size2);
935
+ font-weight: bold;
936
+ margin-right: var(--theia-ui-padding);
937
+ color: var(--theia-button-foreground);
698
938
  }
699
939
 
700
- .theia-WelcomeMessage-Content h1 {
701
- margin-top: 0;
940
+ .theia-WelcomeMessage-AgentButton-Label {
941
+ font-weight: 500;
702
942
  }
703
943
 
704
- .theia-WelcomeMessage-Content p {
705
- font-size: var(--theia-ui-font-size2);
706
- line-height: 18px;
944
+ .theia-WelcomeMessage-AlternativeOptions {
945
+ margin-top: calc(var(--theia-ui-padding) * 4);
946
+ padding-top: calc(var(--theia-ui-padding) * 3);
947
+ border-top: 1px solid var(--theia-panelTitle-activeBorder);
707
948
  }
708
949
 
709
- .theia-WelcomeMessage-Content p .codicon {
710
- vertical-align: sub;
950
+ .theia-WelcomeMessage-OrDivider {
951
+ text-align: center;
952
+ color: var(--theia-descriptionForeground);
953
+ font-size: 0.9em;
954
+ margin: 0 0 calc(var(--theia-ui-padding) * 2.5) 0;
955
+ text-transform: uppercase;
956
+ letter-spacing: 0.5px;
711
957
  }
712
958
 
713
- .theia-WelcomeMessage-Content em {
714
- font-weight: bolder;
715
- font-style: normal;
959
+ .theia-WelcomeMessage-RecommendedNote {
960
+ font-size: 0.9em;
961
+ color: var(--theia-descriptionForeground);
962
+ margin: calc(var(--theia-ui-padding) * 1.3) 0 calc(var(--theia-ui-padding) * 2) 0;
963
+ font-weight: 500;
716
964
  }
717
965
 
718
966
  /*
719
967
  * AI Tools Configuration Widget Styles
720
968
  * Only touch styles in this section for the tools configuration widget
721
969
  */
970
+ .ai-tools-configuration-header {
971
+ display: flex;
972
+ align-items: center;
973
+ gap: var(--theia-ui-padding);
974
+ margin-bottom: calc(var(--theia-ui-padding) * 2);
975
+ padding: var(--theia-ui-padding);
976
+ background-color: var(--theia-editor-background);
977
+ border: var(--theia-border-width) solid var(--theia-widget-border);
978
+ border-radius: 3px;
979
+ }
980
+
981
+ .theia-button.secondary.ai-tools-reset-button {
982
+ background-color: var(--theia-radio-inactiveHoverBackground);
983
+ }
984
+
985
+ .theia-button.secondary.ai-tools-reset-button:hover {
986
+ background-color: var(--theia-button-background);
987
+ color: var(--theia-button-foreground);
988
+ }
989
+
722
990
  .ai-tools-configuration-default-section {
723
- margin-bottom: 24px;
991
+ margin-bottom: calc(var(--theia-ui-padding) * 2);
724
992
  }
725
993
 
726
994
  .ai-tools-configuration-default-label {
727
995
  font-weight: bold;
728
- margin-bottom: 4px;
996
+ margin-bottom: var(--theia-ui-padding);
729
997
  }
730
998
 
731
999
  .ai-tools-configuration-default-select {
732
1000
  font-size: 14px;
733
- padding: 4px;
1001
+ padding: var(--theia-ui-padding);
734
1002
  }
735
1003
 
736
1004
  .ai-tools-configuration-tools-label {
737
1005
  font-weight: bold;
738
- margin-bottom: 8px;
1006
+ margin-bottom: var(--theia-ui-padding);
739
1007
  }
740
1008
 
741
1009
  .ai-tools-configuration-tools-list {
@@ -747,9 +1015,9 @@ h4 {
747
1015
  .ai-tools-configuration-tool-item {
748
1016
  display: flex;
749
1017
  align-items: center;
750
- margin-bottom: 12px;
1018
+ margin-bottom: calc(var(--theia-ui-padding) * 2);
751
1019
  border-radius: 4px;
752
- padding: 4px;
1020
+ padding: var(--theia-ui-padding);
753
1021
  transition: background 0.2s, opacity 0.2s;
754
1022
  }
755
1023
 
@@ -768,7 +1036,7 @@ h4 {
768
1036
  }
769
1037
 
770
1038
  .ai-tools-configuration-tool-select {
771
- margin-right: 8px;
1039
+ margin-right: var(--theia-ui-padding);
772
1040
  }
773
1041
 
774
1042
  .ai-tools-configuration-tool-icon {
@@ -781,87 +1049,104 @@ h4 {
781
1049
  .ai-model-alias-list {
782
1050
  width: 25%;
783
1051
  }
1052
+
784
1053
  .ai-alias-detail-title {
785
1054
  padding-left: 0;
786
- padding-bottom: 10px;
1055
+ padding-bottom: var(--theia-ui-padding);
787
1056
  }
1057
+
788
1058
  .ai-alias-detail-description {
789
- padding-bottom: 10px;
1059
+ padding-bottom: var(--theia-ui-padding);
790
1060
  }
1061
+
791
1062
  .ai-alias-detail-selected-model {
792
- margin-bottom: 20px;
1063
+ margin-bottom: calc(var(--theia-ui-padding) * 2);
793
1064
  }
1065
+
794
1066
  .ai-language-model-item-ready {
795
1067
  font-style: normal;
796
1068
  }
1069
+
797
1070
  .ai-language-model-item-not-ready {
798
1071
  font-style: italic;
799
1072
  }
1073
+
800
1074
  .ai-alias-priority-item-resolved {
801
1075
  font-weight: bold;
802
1076
  }
1077
+
803
1078
  .ai-alias-priority-item-ready {
804
1079
  font-style: inherit;
805
1080
  }
1081
+
806
1082
  .ai-alias-priority-item-not-ready {
807
1083
  font-style: italic;
808
1084
  }
1085
+
809
1086
  .ai-alias-detail-defaults {
810
- margin-bottom: 10px;
1087
+ margin-bottom: var(--theia-ui-padding);
811
1088
  }
1089
+
812
1090
  .ai-model-default-not-ready {
813
1091
  font-style: italic;
814
1092
  color: var(--theia-descriptionForeground);
815
1093
  }
1094
+
816
1095
  .ai-alias-defaults-hint {
817
1096
  color: var(--theia-descriptionForeground);
818
- margin-top: 8px;
1097
+ margin-top: var(--theia-ui-padding);
819
1098
  }
1099
+
820
1100
  .ai-alias-evaluates-to-container {
821
- margin-top: 8px;
822
- margin-bottom: 8px;
1101
+ margin-top: var(--theia-ui-padding);
1102
+ margin-bottom: var(--theia-ui-padding);
823
1103
  }
1104
+
824
1105
  .ai-alias-evaluates-to-label {
825
1106
  font-weight: 600;
826
1107
  }
827
- .ai-alias-evaluates-to-value {
828
- margin-left: 8px;
829
- }
1108
+
830
1109
  .ai-model-status-ready {
831
- color: green;
832
- margin-left: 6px;
1110
+ color: var(--theia-ansi-green-color);
1111
+ margin-left: var(--theia-ui-padding);
833
1112
  }
1113
+
834
1114
  .ai-model-status-not-ready {
835
- color: red;
836
- margin-left: 6px;
1115
+ color: var(--theia-ansi-red-color);
1116
+ margin-left: var(--theia-ui-padding);
837
1117
  }
1118
+
838
1119
  .ai-alias-evaluates-to-unresolved {
839
- margin-left: 8px;
1120
+ margin-left: var(--theia-ui-padding);
840
1121
  color: var(--theia-descriptionForeground);
841
1122
  }
1123
+
842
1124
  .ai-alias-detail-agents {
843
- margin-bottom: 10px;
1125
+ margin-bottom: var(--theia-ui-padding);
844
1126
  }
1127
+
845
1128
  .ai-alias-agent-id {
846
1129
  color: var(--theia-descriptionForeground);
847
- margin-left: 8px;
1130
+ margin-left: var(--theia-ui-padding);
848
1131
  }
1132
+
849
1133
  .ai-alias-no-agents {
850
1134
  color: var(--theia-descriptionForeground);
851
1135
  }
1136
+
852
1137
  /* End AI Model Aliases and Language Model Renderer extracted styles */
853
1138
 
854
1139
  /* Token Usage Configuration Styles */
855
1140
  .token-usage-configuration-title {
856
- margin: 0 0 16px 0;
1141
+ margin: 0 0 calc(var(--theia-ui-padding) * 2) 0;
857
1142
  border-bottom: 1px solid var(--theia-widget-border);
858
- padding-bottom: 8px;
1143
+ padding-bottom: var(--theia-ui-padding);
859
1144
  }
860
1145
 
861
1146
  .token-usage-controls {
862
1147
  display: flex;
863
1148
  justify-content: flex-end;
864
- margin-bottom: 16px;
1149
+ margin-bottom: calc(var(--theia-ui-padding) * 2);
865
1150
  }
866
1151
 
867
1152
  .token-usage-refresh-button {
@@ -871,8 +1156,8 @@ h4 {
871
1156
  color: var(--theia-button-foreground);
872
1157
  border: none;
873
1158
  border-radius: 4px;
874
- padding: 6px 12px;
875
- font-size: 12px;
1159
+ padding: var(--theia-ui-padding) calc(var(--theia-ui-padding) * 2);
1160
+ font-size: var(--theia-ui-font-size1);
876
1161
  cursor: pointer;
877
1162
  transition: background-color 0.2s;
878
1163
  }
@@ -882,12 +1167,12 @@ h4 {
882
1167
  }
883
1168
 
884
1169
  .token-usage-refresh-button i {
885
- margin-right: 6px;
1170
+ margin-right: var(--theia-ui-padding);
886
1171
  }
887
1172
 
888
1173
  .token-usage-table-container {
889
1174
  overflow-x: auto;
890
- border-radius: 6px;
1175
+ border-radius: var(--theia-ui-padding);
891
1176
  background-color: var(--theia-editorWidget-background);
892
1177
  }
893
1178
 
@@ -913,7 +1198,7 @@ h4 {
913
1198
  }
914
1199
 
915
1200
  .token-usage-row td {
916
- padding: 10px;
1201
+ padding: var(--theia-ui-padding);
917
1202
  }
918
1203
 
919
1204
  .token-usage-row:hover {
@@ -921,7 +1206,7 @@ h4 {
921
1206
  }
922
1207
 
923
1208
  .token-usage-summary-row td {
924
- padding: 10px;
1209
+ padding: var(--theia-ui-padding);
925
1210
  background-color: var(--theia-editor-background);
926
1211
  color: var(--theia-foreground);
927
1212
  }
@@ -931,16 +1216,66 @@ h4 {
931
1216
  }
932
1217
 
933
1218
  .token-usage-notes {
934
- margin-top: 16px;
1219
+ margin-top: calc(var(--theia-ui-padding) * 2);
935
1220
  color: var(--theia-descriptionForeground);
936
1221
  }
937
1222
 
938
1223
  .token-usage-note {
939
1224
  display: flex;
940
1225
  align-items: center;
941
- font-size: 12px;
1226
+ font-size: var(--theia-ui-font-size1);
942
1227
  }
943
1228
 
944
1229
  .token-usage-note i {
945
- margin-right: 8px;
1230
+ margin-right: var(--theia-ui-padding);
1231
+ }
1232
+
1233
+ /* Common utility classes for configuration widgets */
1234
+ .ai-empty-state-content {
1235
+ padding: var(--theia-ui-padding);
1236
+ text-align: center;
1237
+ color: var(--theia-descriptionForeground);
1238
+ }
1239
+
1240
+ .ai-configuration-footer-total {
1241
+ margin-top: var(--theia-ui-padding);
1242
+ }
1243
+
1244
+ .ai-configuration-footer-total-row {
1245
+ font-weight: 600;
1246
+ border-top: 2px solid var(--theia-widget-border);
1247
+ }
1248
+
1249
+ .ai-configuration-info-box {
1250
+ margin-top: var(--theia-ui-padding);
1251
+ padding: var(--theia-ui-padding);
1252
+ background-color: var(--theia-editor-background);
1253
+ border-radius: 3px;
1254
+ }
1255
+
1256
+ .ai-configuration-info-text {
1257
+ margin: 0;
1258
+ color: var(--theia-descriptionForeground);
1259
+ }
1260
+
1261
+ .ai-configuration-info-icon {
1262
+ margin-right: calc(var(--theia-ui-padding) / 2);
1263
+ }
1264
+
1265
+ .ai-variable-name-cell {
1266
+ font-weight: 500;
1267
+ }
1268
+
1269
+ .ai-variable-description-cell {
1270
+ color: var(--theia-descriptionForeground);
1271
+ }
1272
+
1273
+ .ai-configuration-warning-text {
1274
+ color: var(--theia-warningForeground);
1275
+ }
1276
+
1277
+ .ai-agent-description {
1278
+ margin-bottom: calc(var(--theia-ui-padding) * 2);
1279
+ color: var(--theia-descriptionForeground);
1280
+ line-height: 1.5;
946
1281
  }