@theia/ai-ide 1.77.0-next.6 → 1.77.0-next.63

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 (190) hide show
  1. package/lib/browser/{project-info-agent.d.ts → agents-md-agent.d.ts} +2 -2
  2. package/lib/browser/agents-md-agent.d.ts.map +1 -0
  3. package/lib/browser/{project-info-agent.js → agents-md-agent.js} +16 -15
  4. package/lib/browser/agents-md-agent.js.map +1 -0
  5. package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.js +1 -1
  6. package/lib/browser/ai-configuration/ai-configuration-label-provider-contribution.js.map +1 -1
  7. package/lib/browser/ai-configuration/ai-configuration-resource.js +2 -1
  8. package/lib/browser/ai-configuration/ai-configuration-resource.js.map +1 -1
  9. package/lib/browser/ai-configuration/ai-configuration-search-widget.js +1 -1
  10. package/lib/browser/ai-configuration/ai-configuration-search-widget.js.map +1 -1
  11. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.d.ts +11 -3
  12. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.d.ts.map +1 -1
  13. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js +64 -29
  14. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.js.map +1 -1
  15. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.js +480 -1
  16. package/lib/browser/ai-configuration/categories/agent-capabilities-settings.spec.js.map +1 -1
  17. package/lib/browser/ai-configuration/categories/agent-detail-model.d.ts +10 -0
  18. package/lib/browser/ai-configuration/categories/agent-detail-model.d.ts.map +1 -1
  19. package/lib/browser/ai-configuration/categories/agent-detail-model.js +8 -0
  20. package/lib/browser/ai-configuration/categories/agent-detail-model.js.map +1 -1
  21. package/lib/browser/ai-configuration/categories/agent-detail-model.spec.d.ts +2 -0
  22. package/lib/browser/ai-configuration/categories/agent-detail-model.spec.d.ts.map +1 -0
  23. package/lib/browser/ai-configuration/categories/agent-detail-model.spec.js +74 -0
  24. package/lib/browser/ai-configuration/categories/agent-detail-model.spec.js.map +1 -0
  25. package/lib/browser/ai-configuration/categories/agent-detail-view.d.ts.map +1 -1
  26. package/lib/browser/ai-configuration/categories/agent-detail-view.js +3 -2
  27. package/lib/browser/ai-configuration/categories/agent-detail-view.js.map +1 -1
  28. package/lib/browser/ai-configuration/categories/agents-configuration-category.d.ts +6 -1
  29. package/lib/browser/ai-configuration/categories/agents-configuration-category.d.ts.map +1 -1
  30. package/lib/browser/ai-configuration/categories/agents-configuration-category.js +20 -2
  31. package/lib/browser/ai-configuration/categories/agents-configuration-category.js.map +1 -1
  32. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.js +5 -4
  33. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.js.map +1 -1
  34. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.js +2 -1
  35. package/lib/browser/ai-configuration/categories/provider-model-discovery-section.spec.js.map +1 -1
  36. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.js +2 -2
  37. package/lib/browser/ai-configuration/categories/token-usage-configuration-category.js.map +1 -1
  38. package/lib/browser/ai-configuration/categories/tools-configuration-category.js +1 -1
  39. package/lib/browser/ai-configuration/categories/tools-configuration-category.js.map +1 -1
  40. package/lib/browser/ai-configuration/categories/variables-configuration-category.js +1 -1
  41. package/lib/browser/ai-configuration/categories/variables-configuration-category.js.map +1 -1
  42. package/lib/browser/ai-configuration/language-model-renderer.d.ts.map +1 -1
  43. package/lib/browser/ai-configuration/language-model-renderer.js +8 -15
  44. package/lib/browser/ai-configuration/language-model-renderer.js.map +1 -1
  45. package/lib/browser/ai-configuration/language-model-renderer.spec.js +40 -1
  46. package/lib/browser/ai-configuration/language-model-renderer.spec.js.map +1 -1
  47. package/lib/browser/ai-sessions-widget.js +1 -1
  48. package/lib/browser/ai-sessions-widget.js.map +1 -1
  49. package/lib/browser/app-tester-prompt-template.d.ts.map +1 -1
  50. package/lib/browser/app-tester-prompt-template.js +4 -6
  51. package/lib/browser/app-tester-prompt-template.js.map +1 -1
  52. package/lib/browser/architect-prompt-template.d.ts.map +1 -1
  53. package/lib/browser/architect-prompt-template.js +20 -3
  54. package/lib/browser/architect-prompt-template.js.map +1 -1
  55. package/lib/browser/chat-session-item.js +2 -1
  56. package/lib/browser/chat-session-item.js.map +1 -1
  57. package/lib/browser/chat-sessions-welcome-message-provider.js +1 -1
  58. package/lib/browser/chat-sessions-welcome-message-provider.js.map +1 -1
  59. package/lib/browser/code-reviewer-prompt-template.d.ts.map +1 -1
  60. package/lib/browser/code-reviewer-prompt-template.js +2 -1
  61. package/lib/browser/code-reviewer-prompt-template.js.map +1 -1
  62. package/lib/browser/commit-message-agent.spec.js +2 -1
  63. package/lib/browser/commit-message-agent.spec.js.map +1 -1
  64. package/lib/browser/commit-message-runner.spec.js +2 -1
  65. package/lib/browser/commit-message-runner.spec.js.map +1 -1
  66. package/lib/browser/context-file-validation-service-impl.spec.js +2 -1
  67. package/lib/browser/context-file-validation-service-impl.spec.js.map +1 -1
  68. package/lib/browser/explore-prompt-template.d.ts.map +1 -1
  69. package/lib/browser/explore-prompt-template.js +2 -1
  70. package/lib/browser/explore-prompt-template.js.map +1 -1
  71. package/lib/browser/file-changeset-functions.d.ts +3 -1
  72. package/lib/browser/file-changeset-functions.d.ts.map +1 -1
  73. package/lib/browser/file-changeset-functions.js +60 -6
  74. package/lib/browser/file-changeset-functions.js.map +1 -1
  75. package/lib/browser/file-changeset-functions.spec.js +73 -9
  76. package/lib/browser/file-changeset-functions.spec.js.map +1 -1
  77. package/lib/browser/frontend-module.js +4 -4
  78. package/lib/browser/frontend-module.js.map +1 -1
  79. package/lib/browser/git-changes-tool.d.ts +3 -3
  80. package/lib/browser/git-changes-tool.d.ts.map +1 -1
  81. package/lib/browser/git-changes-tool.js +7 -11
  82. package/lib/browser/git-changes-tool.js.map +1 -1
  83. package/lib/browser/git-changes-tool.spec.js +16 -3
  84. package/lib/browser/git-changes-tool.spec.js.map +1 -1
  85. package/lib/browser/multi-root-paths.spec.d.ts +2 -0
  86. package/lib/browser/multi-root-paths.spec.d.ts.map +1 -0
  87. package/lib/browser/multi-root-paths.spec.js +293 -0
  88. package/lib/browser/multi-root-paths.spec.js.map +1 -0
  89. package/lib/browser/remember-command-contribution.d.ts +2 -2
  90. package/lib/browser/remember-command-contribution.js +6 -6
  91. package/lib/browser/remember-command-contribution.js.map +1 -1
  92. package/lib/browser/review/pr-review-prompt-template.d.ts.map +1 -1
  93. package/lib/browser/review/pr-review-prompt-template.js +3 -2
  94. package/lib/browser/review/pr-review-prompt-template.js.map +1 -1
  95. package/lib/browser/task-context-file-storage-service.d.ts.map +1 -1
  96. package/lib/browser/task-context-file-storage-service.js +1 -2
  97. package/lib/browser/task-context-file-storage-service.js.map +1 -1
  98. package/lib/browser/task-context-file-storage-service.spec.d.ts +2 -0
  99. package/lib/browser/task-context-file-storage-service.spec.d.ts.map +1 -0
  100. package/lib/browser/task-context-file-storage-service.spec.js +111 -0
  101. package/lib/browser/task-context-file-storage-service.spec.js.map +1 -0
  102. package/lib/browser/user-interaction-tool-renderer.js +1 -1
  103. package/lib/browser/user-interaction-tool-renderer.js.map +1 -1
  104. package/lib/browser/user-interaction-tool.d.ts +12 -1
  105. package/lib/browser/user-interaction-tool.d.ts.map +1 -1
  106. package/lib/browser/user-interaction-tool.js +35 -9
  107. package/lib/browser/user-interaction-tool.js.map +1 -1
  108. package/lib/browser/user-interaction-tool.spec.js +15 -2
  109. package/lib/browser/user-interaction-tool.spec.js.map +1 -1
  110. package/lib/browser/workspace-functions.d.ts +20 -17
  111. package/lib/browser/workspace-functions.d.ts.map +1 -1
  112. package/lib/browser/workspace-functions.js +77 -115
  113. package/lib/browser/workspace-functions.js.map +1 -1
  114. package/lib/browser/workspace-functions.spec.js +54 -60
  115. package/lib/browser/workspace-functions.spec.js.map +1 -1
  116. package/lib/browser/workspace-launch-provider.js +1 -1
  117. package/lib/browser/workspace-launch-provider.js.map +1 -1
  118. package/lib/browser/workspace-launch-provider.spec.js +5 -3
  119. package/lib/browser/workspace-launch-provider.spec.js.map +1 -1
  120. package/lib/browser/workspace-search-provider.spec.js +2 -1
  121. package/lib/browser/workspace-search-provider.spec.js.map +1 -1
  122. package/lib/browser/workspace-task-provider.js +1 -1
  123. package/lib/browser/workspace-task-provider.js.map +1 -1
  124. package/lib/browser/workspace-task-provider.spec.js +6 -4
  125. package/lib/browser/workspace-task-provider.spec.js.map +1 -1
  126. package/lib/common/agents-md-prompt-template.d.ts +6 -0
  127. package/lib/common/agents-md-prompt-template.d.ts.map +1 -0
  128. package/lib/common/agents-md-prompt-template.js +165 -0
  129. package/lib/common/agents-md-prompt-template.js.map +1 -0
  130. package/lib/common/coder-replace-prompt-template.d.ts.map +1 -1
  131. package/lib/common/coder-replace-prompt-template.js +4 -6
  132. package/lib/common/coder-replace-prompt-template.js.map +1 -1
  133. package/lib/common/command-prompt-template.js +1 -1
  134. package/lib/common/command-prompt-template.js.map +1 -1
  135. package/lib/common/orchestrator-prompt-template.js +1 -1
  136. package/lib/common/orchestrator-prompt-template.js.map +1 -1
  137. package/lib/common/universal-prompt-template.js +1 -1
  138. package/lib/common/universal-prompt-template.js.map +1 -1
  139. package/lib/common/workspace-preferences.d.ts +1 -0
  140. package/lib/common/workspace-preferences.d.ts.map +1 -1
  141. package/lib/common/workspace-preferences.js +10 -1
  142. package/lib/common/workspace-preferences.js.map +1 -1
  143. package/lib/package.spec.js +1 -0
  144. package/lib/package.spec.js.map +1 -1
  145. package/package.json +27 -28
  146. package/src/browser/{project-info-agent.ts → agents-md-agent.ts} +11 -10
  147. package/src/browser/ai-configuration/categories/agent-capabilities-settings.spec.ts +508 -2
  148. package/src/browser/ai-configuration/categories/agent-capabilities-settings.tsx +92 -33
  149. package/src/browser/ai-configuration/categories/agent-detail-model.spec.ts +78 -0
  150. package/src/browser/ai-configuration/categories/agent-detail-model.ts +18 -0
  151. package/src/browser/ai-configuration/categories/agent-detail-view.tsx +15 -12
  152. package/src/browser/ai-configuration/categories/agents-configuration-category.tsx +18 -3
  153. package/src/browser/ai-configuration/categories/provider-model-discovery-section.tsx +3 -3
  154. package/src/browser/ai-configuration/categories/token-usage-configuration-category.tsx +2 -2
  155. package/src/browser/ai-configuration/language-model-renderer.spec.ts +38 -0
  156. package/src/browser/ai-configuration/language-model-renderer.tsx +6 -15
  157. package/src/browser/app-tester-prompt-template.ts +4 -7
  158. package/src/browser/architect-prompt-template.ts +4 -4
  159. package/src/browser/code-reviewer-prompt-template.ts +2 -2
  160. package/src/browser/context-file-validation-service-impl.spec.ts +2 -1
  161. package/src/browser/explore-prompt-template.ts +2 -2
  162. package/src/browser/file-changeset-functions.spec.ts +91 -9
  163. package/src/browser/file-changeset-functions.ts +62 -7
  164. package/src/browser/frontend-module.ts +4 -4
  165. package/src/browser/git-changes-tool.spec.ts +16 -1
  166. package/src/browser/git-changes-tool.ts +6 -10
  167. package/src/browser/multi-root-paths.spec.ts +340 -0
  168. package/src/browser/remember-command-contribution.ts +7 -7
  169. package/src/browser/review/pr-review-prompt-template.ts +3 -3
  170. package/src/browser/style/index.css +15 -0
  171. package/src/browser/task-context-file-storage-service.spec.ts +125 -0
  172. package/src/browser/task-context-file-storage-service.ts +3 -4
  173. package/src/browser/user-interaction-tool.spec.ts +18 -1
  174. package/src/browser/user-interaction-tool.ts +34 -9
  175. package/src/browser/workspace-functions.spec.ts +54 -60
  176. package/src/browser/workspace-functions.ts +80 -125
  177. package/src/browser/workspace-launch-provider.spec.ts +3 -2
  178. package/src/browser/workspace-task-provider.spec.ts +4 -3
  179. package/src/common/{project-info-prompt-template.ts → agents-md-prompt-template.ts} +54 -46
  180. package/src/common/coder-replace-prompt-template.ts +5 -7
  181. package/src/common/command-prompt-template.ts +1 -1
  182. package/src/common/orchestrator-prompt-template.ts +1 -1
  183. package/src/common/universal-prompt-template.ts +1 -1
  184. package/src/common/workspace-preferences.ts +10 -0
  185. package/lib/browser/project-info-agent.d.ts.map +0 -1
  186. package/lib/browser/project-info-agent.js.map +0 -1
  187. package/lib/common/project-info-prompt-template.d.ts +0 -6
  188. package/lib/common/project-info-prompt-template.d.ts.map +0 -1
  189. package/lib/common/project-info-prompt-template.js +0 -146
  190. package/lib/common/project-info-prompt-template.js.map +0 -1
@@ -15,14 +15,19 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
+ const tslib_1 = require("tslib");
18
19
  const jsdom_1 = require("@theia/core/lib/browser/test/jsdom");
19
20
  let disableJSDOM = (0, jsdom_1.enableJSDOM)();
20
21
  const frontend_application_config_provider_1 = require("@theia/core/lib/browser/frontend-application-config-provider");
21
22
  frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
22
23
  const chai_1 = require("chai");
23
- const React = require("@theia/core/shared/react");
24
+ const sinon = tslib_1.__importStar(require("sinon"));
25
+ const preference_provider_1 = require("@theia/core/lib/common/preferences/preference-provider");
26
+ const promise_util_1 = require("@theia/core/lib/common/promise-util");
27
+ const React = tslib_1.__importStar(require("@theia/core/shared/react"));
24
28
  const react_dom_1 = require("@theia/core/shared/react-dom");
25
29
  const client_1 = require("@theia/core/shared/react-dom/client");
30
+ const GenericCapabilitiesTreeModule = tslib_1.__importStar(require("@theia/ai-chat-ui/lib/browser/generic-capabilities-tree"));
26
31
  const agent_capabilities_settings_1 = require("./agent-capabilities-settings");
27
32
  disableJSDOM();
28
33
  describe('AgentServerToolsSettings', () => {
@@ -137,4 +142,478 @@ describe('AgentServerToolsSettings', () => {
137
142
  }
138
143
  });
139
144
  });
145
+ describe('AgentGenericCapabilitiesSettings', () => {
146
+ before(() => {
147
+ disableJSDOM = (0, jsdom_1.enableJSDOM)();
148
+ // The tree's root tooltips read the application name; the config lives on the fresh window.
149
+ frontend_application_config_provider_1.FrontendApplicationConfigProvider.set({});
150
+ });
151
+ after(() => disableJSDOM());
152
+ const available = {
153
+ skills: [{ id: 'skill-a', name: 'skill-a' }, { id: 'skill-b', name: 'skill-b' }],
154
+ mcpFunctions: [],
155
+ functions: [{ id: 'fn-used', name: 'fn-used' }, { id: 'fn-a', name: 'fn-a' }],
156
+ promptFragments: [],
157
+ agentDelegation: [],
158
+ variables: []
159
+ };
160
+ function render(savedSelections, availableCapabilities, deferWrites = false) {
161
+ const updates = [];
162
+ let stored = savedSelections;
163
+ const writes = [];
164
+ const reads = [];
165
+ const aiSettingsService = {
166
+ getAgentSettings: async (agentId) => {
167
+ (0, chai_1.expect)(agentId).to.equal('coder');
168
+ const deferred = reads.shift();
169
+ return { genericCapabilitySelections: deferred ? await deferred.promise : stored };
170
+ },
171
+ updateAgentSettings: async (_agent, settings) => {
172
+ updates.push(settings);
173
+ const next = settings.genericCapabilitySelections;
174
+ // PreferenceServiceImpl skips a write if it equals the value currently stored, not a pending value.
175
+ if (preference_provider_1.PreferenceUtils.deepEqual(stored, next)) {
176
+ return;
177
+ }
178
+ if (deferWrites) {
179
+ await new Promise((resolve, reject) => writes.push(result => {
180
+ if (result instanceof Error) {
181
+ reject(result);
182
+ return;
183
+ }
184
+ if (result) {
185
+ stored = next;
186
+ }
187
+ // Like the production service, emit a reload even when a write fails, then resolve.
188
+ reload(stored ? { ...stored } : undefined);
189
+ resolve();
190
+ }));
191
+ }
192
+ else {
193
+ stored = next;
194
+ }
195
+ }
196
+ };
197
+ const container = document.createElement('div');
198
+ document.body.appendChild(container);
199
+ const root = (0, client_1.createRoot)(container);
200
+ const reload = (saved) => (0, react_dom_1.flushSync)(() => root.render(React.createElement(agent_capabilities_settings_1.AgentGenericCapabilitiesSettings, {
201
+ agentId: 'coder',
202
+ savedSelections: saved,
203
+ availableCapabilities,
204
+ usedCapabilities: { functions: ['fn-used'] },
205
+ aiSettingsService,
206
+ settingsRowService: { openResetMenu: () => { } },
207
+ hoverService: { requestHover: () => { } },
208
+ onOpenPromptSnippet: () => { }
209
+ })));
210
+ reload(savedSelections);
211
+ return {
212
+ container, updates, reload,
213
+ setStored: selections => { stored = selections; },
214
+ getStored: () => stored,
215
+ finishWrite: async (index, success = true) => {
216
+ await Promise.resolve();
217
+ writes[index](success);
218
+ },
219
+ rejectWrite: async (index, error) => {
220
+ await Promise.resolve();
221
+ writes[index](error);
222
+ },
223
+ deferRead: () => {
224
+ const deferred = new promise_util_1.Deferred();
225
+ reads.push(deferred);
226
+ return deferred;
227
+ },
228
+ dispose: () => { (0, react_dom_1.flushSync)(() => root.unmount()); container.remove(); }
229
+ };
230
+ }
231
+ function openEditorAndExpand(container, rootName) {
232
+ (0, react_dom_1.flushSync)(() => container.querySelector('button[aria-label="Edit generic capabilities"]').click());
233
+ const header = Array.from(container.querySelectorAll('.theia-GenericCapabilities-TreeNodeHeader'))
234
+ .find(candidate => candidate.textContent === rootName);
235
+ (0, react_dom_1.flushSync)(() => header.click());
236
+ }
237
+ function item(container, name) {
238
+ return Array.from(container.querySelectorAll('.theia-GenericCapabilities-TreeItem')).find(candidate => candidate.textContent === name);
239
+ }
240
+ function isChecked(container, name) {
241
+ return item(container, name).querySelector('input').checked;
242
+ }
243
+ /**
244
+ * Waits until `condition` holds. Rereading the stored selections updates the state outside `flushSync`,
245
+ * so React commits it in a task of its own and a single `setTimeout(0)` does not reliably wait for it.
246
+ */
247
+ async function waitUntil(condition, timeout = 2000) {
248
+ const deadline = Date.now() + timeout;
249
+ while (!condition() && Date.now() < deadline) {
250
+ await new Promise(resolve => setTimeout(resolve, 0));
251
+ }
252
+ }
253
+ it('offers no editor when there is nothing to choose from', () => {
254
+ const { container, dispose } = render({ skills: ['skill-a'] }, undefined);
255
+ try {
256
+ (0, chai_1.expect)(Boolean(container.querySelector('button[aria-label="Edit generic capabilities"]'))).to.equal(false);
257
+ (0, chai_1.expect)(container.textContent).to.include('skill-a');
258
+ }
259
+ finally {
260
+ dispose();
261
+ }
262
+ });
263
+ it('saves a selection made in the editor right away, keeping earlier edits', async () => {
264
+ const { container, updates, dispose } = render(undefined, available);
265
+ try {
266
+ openEditorAndExpand(container, 'Skills');
267
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
268
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
269
+ await new Promise(resolve => setTimeout(resolve, 0));
270
+ (0, chai_1.expect)(updates).to.deep.equal([
271
+ { genericCapabilitySelections: { skills: ['skill-a'] } },
272
+ { genericCapabilitySelections: { skills: ['skill-a', 'skill-b'] } }
273
+ ]);
274
+ // The summary row reflects the edit without waiting for the saved value to be reloaded.
275
+ (0, chai_1.expect)(container.querySelector('.ai-configuration-item-list').textContent).to.include('skill-a, skill-b');
276
+ }
277
+ finally {
278
+ dispose();
279
+ }
280
+ });
281
+ it('preserves newer edits when an intermediate save is reloaded', async () => {
282
+ const { container, updates, reload, dispose } = render(undefined, available);
283
+ try {
284
+ openEditorAndExpand(container, 'Skills');
285
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
286
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
287
+ await new Promise(resolve => setTimeout(resolve, 0));
288
+ reload({ skills: ['skill-a'] });
289
+ await new Promise(resolve => setTimeout(resolve, 0));
290
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
291
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
292
+ await new Promise(resolve => setTimeout(resolve, 0));
293
+ (0, chai_1.expect)(updates[2]).to.deep.equal({ genericCapabilitySelections: { skills: ['skill-b'] } });
294
+ }
295
+ finally {
296
+ dispose();
297
+ }
298
+ });
299
+ it('ignores reversed stale props after all writes settle', async () => {
300
+ const { container, updates, reload, dispose } = render(undefined, available);
301
+ try {
302
+ openEditorAndExpand(container, 'Skills');
303
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
304
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
305
+ await new Promise(resolve => setTimeout(resolve, 0));
306
+ reload({ skills: ['skill-a', 'skill-b'] });
307
+ await new Promise(resolve => setTimeout(resolve, 0));
308
+ reload({ skills: ['skill-a'] });
309
+ await new Promise(resolve => setTimeout(resolve, 0));
310
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
311
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
312
+ await new Promise(resolve => setTimeout(resolve, 0));
313
+ (0, chai_1.expect)(updates[2]).to.deep.equal({ genericCapabilitySelections: { skills: ['skill-b'] } });
314
+ }
315
+ finally {
316
+ dispose();
317
+ }
318
+ });
319
+ it('preserves a local reset when an earlier selection is reloaded', async () => {
320
+ const { container, updates, reload, dispose } = render(undefined, available);
321
+ try {
322
+ openEditorAndExpand(container, 'Skills');
323
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
324
+ (0, react_dom_1.flushSync)(() => container.querySelector('button[aria-label="Reset all generic capability selections"]').click());
325
+ await new Promise(resolve => setTimeout(resolve, 0));
326
+ reload({ skills: ['skill-a'] });
327
+ await new Promise(resolve => setTimeout(resolve, 0));
328
+ (0, chai_1.expect)(item(container, 'skill-a').querySelector('input').checked).to.equal(false);
329
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
330
+ await new Promise(resolve => setTimeout(resolve, 0));
331
+ (0, chai_1.expect)(updates[2]).to.deep.equal({ genericCapabilitySelections: { skills: ['skill-b'] } });
332
+ }
333
+ finally {
334
+ dispose();
335
+ }
336
+ });
337
+ it('starts queued writes in order and keeps optimistic edits until the queue drains', async () => {
338
+ const { container, updates, finishWrite, getStored, dispose } = render(undefined, available, true);
339
+ try {
340
+ openEditorAndExpand(container, 'Skills');
341
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
342
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
343
+ await new Promise(resolve => setTimeout(resolve, 0));
344
+ (0, chai_1.expect)(updates).to.have.lengthOf(1);
345
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
346
+ await finishWrite(0);
347
+ await new Promise(resolve => setTimeout(resolve, 0));
348
+ (0, chai_1.expect)(updates).to.have.lengthOf(2);
349
+ (0, chai_1.expect)(getStored()).to.deep.equal({ skills: ['skill-a'] });
350
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
351
+ await finishWrite(1);
352
+ await new Promise(resolve => setTimeout(resolve, 0));
353
+ (0, chai_1.expect)(getStored()).to.deep.equal({ skills: ['skill-a', 'skill-b'] });
354
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
355
+ }
356
+ finally {
357
+ dispose();
358
+ }
359
+ });
360
+ it('persists A after rapid A to AB to A edits despite equal-value write suppression', async () => {
361
+ const { container, updates, finishWrite, getStored, dispose } = render({ skills: ['skill-a'] }, available, true);
362
+ try {
363
+ openEditorAndExpand(container, 'Skills');
364
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
365
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
366
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(false);
367
+ await new Promise(resolve => setTimeout(resolve, 0));
368
+ (0, chai_1.expect)(updates).to.have.lengthOf(1);
369
+ await finishWrite(0);
370
+ await new Promise(resolve => setTimeout(resolve, 0));
371
+ (0, chai_1.expect)(getStored()).to.deep.equal({ skills: ['skill-a', 'skill-b'] });
372
+ (0, chai_1.expect)(updates).to.have.lengthOf(2);
373
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(false);
374
+ await finishWrite(1);
375
+ await new Promise(resolve => setTimeout(resolve, 0));
376
+ (0, chai_1.expect)(getStored()).to.deep.equal({ skills: ['skill-a'] });
377
+ (0, chai_1.expect)(item(container, 'skill-a').querySelector('input').checked).to.equal(true);
378
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(false);
379
+ }
380
+ finally {
381
+ dispose();
382
+ }
383
+ });
384
+ it('preserves a rejected save promise without poisoning later queued writes', async () => {
385
+ let change;
386
+ const tree = sinon.stub(GenericCapabilitiesTreeModule, 'GenericCapabilitiesTree').callsFake(props => {
387
+ change = props.onGenericCapabilityChange;
388
+ return React.createElement('div');
389
+ });
390
+ const { container, updates, rejectWrite, finishWrite, getStored, dispose } = render(undefined, available, true);
391
+ try {
392
+ (0, react_dom_1.flushSync)(() => container.querySelector('button[aria-label="Edit generic capabilities"]').click());
393
+ let failed;
394
+ let queued;
395
+ (0, react_dom_1.flushSync)(() => {
396
+ failed = change('skills', ['skill-a']);
397
+ queued = change('skills', ['skill-a', 'skill-b']);
398
+ });
399
+ const failure = new Error('Write failed');
400
+ const rejection = failed.then(() => chai_1.expect.fail('Expected the save to reject'), error => (0, chai_1.expect)(error).to.equal(failure));
401
+ const queuedResult = queued.then(() => undefined, error => error);
402
+ await rejectWrite(0, failure);
403
+ await rejection;
404
+ await new Promise(resolve => setTimeout(resolve, 0));
405
+ (0, chai_1.expect)(updates).to.have.lengthOf(2);
406
+ await finishWrite(1);
407
+ (0, chai_1.expect)(await queuedResult).to.equal(undefined);
408
+ (0, chai_1.expect)(getStored()).to.deep.equal({ skills: ['skill-a', 'skill-b'] });
409
+ await new Promise(resolve => setTimeout(resolve, 0));
410
+ (0, chai_1.expect)(container.querySelector('.ai-configuration-item-list').textContent).to.include('skill-a, skill-b');
411
+ }
412
+ finally {
413
+ dispose();
414
+ tree.restore();
415
+ }
416
+ });
417
+ it('rolls back a swallowed write failure after its change event and resolving promise', async () => {
418
+ const { container, finishWrite, dispose } = render({ skills: ['skill-a'] }, available, true);
419
+ try {
420
+ openEditorAndExpand(container, 'Skills');
421
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
422
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
423
+ await finishWrite(0, false);
424
+ await waitUntil(() => !isChecked(container, 'skill-b'));
425
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(false);
426
+ (0, chai_1.expect)(item(container, 'skill-a').querySelector('input').checked).to.equal(true);
427
+ }
428
+ finally {
429
+ dispose();
430
+ }
431
+ });
432
+ it('retains a successful first edit when the second write fails without rejecting', async () => {
433
+ const { container, finishWrite, updates, dispose } = render(undefined, available, true);
434
+ try {
435
+ openEditorAndExpand(container, 'Skills');
436
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
437
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
438
+ await finishWrite(0);
439
+ await new Promise(resolve => setTimeout(resolve, 0));
440
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
441
+ await finishWrite(1, false);
442
+ await waitUntil(() => !isChecked(container, 'skill-b'));
443
+ (0, chai_1.expect)(item(container, 'skill-a').querySelector('input').checked).to.equal(true);
444
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(false);
445
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
446
+ await new Promise(resolve => setTimeout(resolve, 0));
447
+ (0, chai_1.expect)(updates[2]).to.deep.equal({ genericCapabilitySelections: undefined });
448
+ await finishWrite(2);
449
+ }
450
+ finally {
451
+ dispose();
452
+ }
453
+ });
454
+ it('adopts external changes and a reset equal to the original baseline', async () => {
455
+ const { container, reload, setStored, dispose } = render({ skills: ['skill-a'] }, available);
456
+ try {
457
+ openEditorAndExpand(container, 'Skills');
458
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
459
+ await new Promise(resolve => setTimeout(resolve, 0));
460
+ setStored({ skills: ['skill-b'] });
461
+ reload({ skills: ['skill-b'] });
462
+ await waitUntil(() => !isChecked(container, 'skill-a'));
463
+ (0, chai_1.expect)(item(container, 'skill-a').querySelector('input').checked).to.equal(false);
464
+ setStored({ skills: ['skill-a'] });
465
+ reload({ skills: ['skill-a'] });
466
+ await waitUntil(() => isChecked(container, 'skill-a') && !isChecked(container, 'skill-b'));
467
+ (0, chai_1.expect)(item(container, 'skill-a').querySelector('input').checked).to.equal(true);
468
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(false);
469
+ setStored(undefined);
470
+ reload(undefined);
471
+ await waitUntil(() => !isChecked(container, 'skill-a'));
472
+ (0, chai_1.expect)(item(container, 'skill-a').querySelector('input').checked).to.equal(false);
473
+ }
474
+ finally {
475
+ dispose();
476
+ }
477
+ });
478
+ it('rereads an external reset even when the saved prop is still undefined', async () => {
479
+ const { container, reload, setStored, dispose } = render(undefined, available);
480
+ try {
481
+ openEditorAndExpand(container, 'Skills');
482
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
483
+ await new Promise(resolve => setTimeout(resolve, 0));
484
+ setStored(undefined);
485
+ reload(undefined);
486
+ await waitUntil(() => !isChecked(container, 'skill-a'));
487
+ (0, chai_1.expect)(item(container, 'skill-a').querySelector('input').checked).to.equal(false);
488
+ }
489
+ finally {
490
+ dispose();
491
+ }
492
+ });
493
+ it('adopts an external baseline-equivalent reset after a pending write fails', async () => {
494
+ const { container, reload, setStored, finishWrite, dispose } = render(undefined, available, true);
495
+ try {
496
+ openEditorAndExpand(container, 'Skills');
497
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
498
+ await finishWrite(0);
499
+ await new Promise(resolve => setTimeout(resolve, 0));
500
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
501
+ setStored(undefined);
502
+ reload({});
503
+ await new Promise(resolve => setTimeout(resolve, 0));
504
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
505
+ await finishWrite(1, false);
506
+ await waitUntil(() => !isChecked(container, 'skill-a') && !isChecked(container, 'skill-b'));
507
+ (0, chai_1.expect)(item(container, 'skill-a').querySelector('input').checked).to.equal(false);
508
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(false);
509
+ }
510
+ finally {
511
+ dispose();
512
+ }
513
+ });
514
+ it('discards a stale asynchronous read after a newer local edit', async () => {
515
+ const { container, updates, reload, deferRead, dispose } = render({ skills: ['skill-a'] }, available);
516
+ try {
517
+ openEditorAndExpand(container, 'Skills');
518
+ await new Promise(resolve => setTimeout(resolve, 0));
519
+ const staleRead = deferRead();
520
+ reload({ skills: ['skill-a'] });
521
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
522
+ await new Promise(resolve => setTimeout(resolve, 0));
523
+ staleRead.resolve({ skills: ['skill-a'] });
524
+ await new Promise(resolve => setTimeout(resolve, 0));
525
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
526
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
527
+ await new Promise(resolve => setTimeout(resolve, 0));
528
+ (0, chai_1.expect)(updates[1]).to.deep.equal({ genericCapabilitySelections: { skills: ['skill-b'] } });
529
+ }
530
+ finally {
531
+ dispose();
532
+ }
533
+ });
534
+ it('discards a write-completion read if another edit starts before it resolves', async () => {
535
+ const { container, finishWrite, deferRead, dispose } = render(undefined, available, true);
536
+ try {
537
+ openEditorAndExpand(container, 'Skills');
538
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
539
+ const staleRead = deferRead();
540
+ await finishWrite(0);
541
+ await new Promise(resolve => setTimeout(resolve, 0));
542
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-b').click());
543
+ staleRead.resolve({ skills: ['skill-a'] });
544
+ await new Promise(resolve => setTimeout(resolve, 0));
545
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
546
+ await finishWrite(1);
547
+ await new Promise(resolve => setTimeout(resolve, 0));
548
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
549
+ }
550
+ finally {
551
+ dispose();
552
+ }
553
+ });
554
+ it('discards an older read when a newer invalidation has already reconciled', async () => {
555
+ const { container, reload, setStored, deferRead, dispose } = render(undefined, available);
556
+ try {
557
+ openEditorAndExpand(container, 'Skills');
558
+ await new Promise(resolve => setTimeout(resolve, 0));
559
+ const staleRead = deferRead();
560
+ reload({ skills: ['skill-a'] });
561
+ setStored({ skills: ['skill-b'] });
562
+ reload({ skills: ['skill-b'] });
563
+ await new Promise(resolve => setTimeout(resolve, 0));
564
+ staleRead.resolve({ skills: ['skill-a'] });
565
+ await waitUntil(() => isChecked(container, 'skill-b'));
566
+ (0, chai_1.expect)(item(container, 'skill-a').querySelector('input').checked).to.equal(false);
567
+ (0, chai_1.expect)(item(container, 'skill-b').querySelector('input').checked).to.equal(true);
568
+ }
569
+ finally {
570
+ dispose();
571
+ }
572
+ });
573
+ it('preserves edits to different types made in the same tick', async () => {
574
+ const { container, updates, dispose } = render(undefined, available);
575
+ try {
576
+ openEditorAndExpand(container, 'Skills');
577
+ const functions = Array.from(container.querySelectorAll('.theia-GenericCapabilities-TreeNodeHeader'))
578
+ .find(candidate => candidate.textContent === 'Functions');
579
+ (0, react_dom_1.flushSync)(() => functions.click());
580
+ (0, react_dom_1.flushSync)(() => {
581
+ item(container, 'skill-a').click();
582
+ item(container, 'fn-a').click();
583
+ });
584
+ await new Promise(resolve => setTimeout(resolve, 0));
585
+ (0, chai_1.expect)(updates[1]).to.deep.equal({ genericCapabilitySelections: { skills: ['skill-a'], functions: ['fn-a'] } });
586
+ }
587
+ finally {
588
+ dispose();
589
+ }
590
+ });
591
+ it('drops the setting instead of storing empty lists when the last selection is removed', async () => {
592
+ const { container, updates, dispose } = render({ skills: ['skill-a'] }, available);
593
+ try {
594
+ openEditorAndExpand(container, 'Skills');
595
+ (0, react_dom_1.flushSync)(() => item(container, 'skill-a').click());
596
+ await new Promise(resolve => setTimeout(resolve, 0));
597
+ (0, chai_1.expect)(updates).to.deep.equal([{ genericCapabilitySelections: undefined }]);
598
+ }
599
+ finally {
600
+ dispose();
601
+ }
602
+ });
603
+ it('shows what the prompt already uses as checked and locked', () => {
604
+ const { container, updates, dispose } = render(undefined, available);
605
+ try {
606
+ openEditorAndExpand(container, 'Functions');
607
+ const used = item(container, 'fn-used');
608
+ const checkbox = used.querySelector('input[type=checkbox]');
609
+ (0, chai_1.expect)(checkbox.checked).to.equal(true);
610
+ (0, chai_1.expect)(checkbox.disabled).to.equal(true);
611
+ (0, react_dom_1.flushSync)(() => used.click());
612
+ (0, chai_1.expect)(updates).to.deep.equal([]);
613
+ }
614
+ finally {
615
+ dispose();
616
+ }
617
+ });
618
+ });
140
619
  //# sourceMappingURL=agent-capabilities-settings.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-capabilities-settings.spec.js","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/agent-capabilities-settings.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-capabilities-settings.spec.js","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/agent-capabilities-settings.spec.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import { Agent, AgentService, AISettingsService, AIVariableService, FrontendLanguageModelRegistry, ParsedCapability, PromptService, NotificationType, GenericCapabilitySelections, ServerToolDescriptor, ToolInvocationRegistry } from '@theia/ai-core/lib/common';
2
+ import { AvailableGenericCapabilities, GenericCapabilitiesService } from '@theia/ai-chat-ui/lib/browser/generic-capabilities-service';
3
+ import { ChatCapabilitiesService } from '@theia/ai-chat-ui/lib/browser/chat-capabilities-service';
2
4
  import { CommandService } from '@theia/core/lib/common/command';
3
5
  import { ILogger } from '@theia/core';
6
+ import { HoverService } from '@theia/core/lib/browser';
4
7
  import { AiSettingsRowService } from '@theia/ai-core-ui/lib/browser/ai-configuration/components/ai-settings-row-service';
5
8
  /** The services the agent detail page needs; injected into the owning category and passed down. */
6
9
  export interface AgentDetailServices {
@@ -13,6 +16,9 @@ export interface AgentDetailServices {
13
16
  readonly commandService: CommandService;
14
17
  readonly settingsRowService: AiSettingsRowService;
15
18
  readonly logger: ILogger;
19
+ readonly genericCapabilitiesService: GenericCapabilitiesService;
20
+ readonly chatCapabilitiesService: ChatCapabilitiesService;
21
+ readonly hoverService: HoverService;
16
22
  }
17
23
  export interface ParsedPrompt {
18
24
  functions: string[];
@@ -26,6 +32,10 @@ export interface AgentDetailState {
26
32
  completionNotification?: NotificationType;
27
33
  capabilityOverrides?: Record<string, boolean>;
28
34
  genericCapabilitySelections?: GenericCapabilitySelections;
35
+ /** What the generic capabilities editor offers; only loaded for chat agents, the only ones that apply selections. */
36
+ availableGenericCapabilities?: AvailableGenericCapabilities;
37
+ /** Functions and variables the agent's prompt already references, shown checked and locked in the editor. */
38
+ usedGenericCapabilities?: GenericCapabilitySelections;
29
39
  /** Server tools the agent's model offers, if it declares any; empty/absent hides that section. */
30
40
  serverTools?: ServerToolDescriptor[];
31
41
  /** Vendor the server tool selections are keyed by, i.e. the vendor of the model offering them. */
@@ -1 +1 @@
1
- {"version":3,"file":"agent-detail-model.d.ts","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/agent-detail-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAG7B,gBAAgB,EAEhB,aAAa,EACb,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mFAAmF,CAAC;AAEzH,mGAAmG;AACnG,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;IAC9D,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,gBAAgB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,gBAAgB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,kGAAkG;IAClG,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,kGAAkG;IAClG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnD;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAc5G"}
1
+ {"version":3,"file":"agent-detail-model.d.ts","sourceRoot":"","sources":["../../../../src/browser/ai-configuration/categories/agent-detail-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EACH,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,6BAA6B,EAG7B,gBAAgB,EAEhB,aAAa,EACb,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,4DAA4D,CAAC;AACtI,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mFAAmF,CAAC;AAEzH,mGAAmG;AACnG,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;IAC9D,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;IAChE,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,gBAAgB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,gBAAgB,CAAC;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,qHAAqH;IACrH,4BAA4B,CAAC,EAAE,4BAA4B,CAAC;IAC5D,6GAA6G;IAC7G,uBAAuB,CAAC,EAAE,2BAA2B,CAAC;IACtD,kGAAkG;IAClG,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC,kGAAkG;IAClG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnD;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqB5G"}