@theia/ai-chat 1.71.0 → 1.72.0-next.11

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.
@@ -26,9 +26,11 @@ describe('ToolConfirmationManager', () => {
26
26
  let manager;
27
27
  let preferenceServiceMock;
28
28
  let trustAwareReaderMock;
29
- let storedPreferences;
29
+ let storedPerToolPreferences;
30
+ let storedDefaultMode;
30
31
  let trusted;
31
- let inspectResult;
32
+ let perToolInspectResult;
33
+ let defaultInspectResult;
32
34
  const createToolRequest = (id, confirmAlwaysAllow) => ({
33
35
  id,
34
36
  name: id,
@@ -37,24 +39,48 @@ describe('ToolConfirmationManager', () => {
37
39
  confirmAlwaysAllow
38
40
  });
39
41
  beforeEach(() => {
40
- storedPreferences = {};
42
+ storedPerToolPreferences = {};
43
+ storedDefaultMode = undefined;
41
44
  trusted = true;
42
- inspectResult = undefined;
45
+ perToolInspectResult = undefined;
46
+ defaultInspectResult = undefined;
43
47
  preferenceServiceMock = {
44
- updateValue: sinon.stub().callsFake((_key, value) => {
45
- storedPreferences = value;
48
+ updateValue: sinon.stub().callsFake((key, value) => {
49
+ if (key === chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE) {
50
+ storedPerToolPreferences = value;
51
+ }
52
+ else if (key === chat_tool_preferences_1.DEFAULT_TOOL_CONFIRMATION_PREFERENCE) {
53
+ storedDefaultMode = value;
54
+ }
46
55
  return Promise.resolve();
47
56
  }),
48
- inspect: sinon.stub().callsFake(() => inspectResult)
57
+ inspect: sinon.stub().callsFake((name) => {
58
+ if (name === chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE) {
59
+ return perToolInspectResult;
60
+ }
61
+ if (name === chat_tool_preferences_1.DEFAULT_TOOL_CONFIRMATION_PREFERENCE) {
62
+ return defaultInspectResult;
63
+ }
64
+ return undefined;
65
+ })
49
66
  };
50
67
  trustAwareReaderMock = {
51
- get: sinon.stub().callsFake((_name, fallback) => {
52
- if (trusted) {
53
- return storedPreferences ?? fallback;
68
+ get: sinon.stub().callsFake((name, fallback) => {
69
+ if (name === chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE) {
70
+ if (trusted) {
71
+ return storedPerToolPreferences ?? fallback;
72
+ }
73
+ const value = perToolInspectResult?.globalValue ?? perToolInspectResult?.defaultValue;
74
+ return (value ?? fallback);
75
+ }
76
+ if (name === chat_tool_preferences_1.DEFAULT_TOOL_CONFIRMATION_PREFERENCE) {
77
+ if (trusted) {
78
+ return storedDefaultMode ?? fallback;
79
+ }
80
+ const value = defaultInspectResult?.globalValue ?? defaultInspectResult?.defaultValue;
81
+ return (value ?? fallback);
54
82
  }
55
- const insp = inspectResult;
56
- const value = insp?.globalValue ?? insp?.defaultValue;
57
- return (value ?? fallback);
83
+ return fallback;
58
84
  })
59
85
  };
60
86
  const container = new inversify_1.Container();
@@ -63,203 +89,247 @@ describe('ToolConfirmationManager', () => {
63
89
  container.bind(trust_aware_preference_reader_1.TrustAwarePreferenceReader).toConstantValue(trustAwareReaderMock);
64
90
  manager = container.get(chat_tool_preference_bindings_1.ToolConfirmationManager);
65
91
  });
92
+ describe('getDefaultConfirmationMode', () => {
93
+ it('returns CONFIRM when nothing is set', () => {
94
+ (0, chai_1.expect)(manager.getDefaultConfirmationMode()).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
95
+ });
96
+ it('returns the value stored in the user preference', () => {
97
+ storedDefaultMode = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
98
+ (0, chai_1.expect)(manager.getDefaultConfirmationMode()).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
99
+ });
100
+ it('falls back to the schema-level default when no user value is set', () => {
101
+ defaultInspectResult = { defaultValue: chat_tool_preferences_1.ToolConfirmationMode.DISABLED };
102
+ (0, chai_1.expect)(manager.getDefaultConfirmationMode()).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
103
+ });
104
+ });
105
+ describe('setDefaultConfirmationMode', () => {
106
+ it('persists the new default through the preference service', () => {
107
+ manager.setDefaultConfirmationMode(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
108
+ (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
109
+ (0, chai_1.expect)(preferenceServiceMock.updateValue.firstCall.args[0]).to.equal(chat_tool_preferences_1.DEFAULT_TOOL_CONFIRMATION_PREFERENCE);
110
+ (0, chai_1.expect)(preferenceServiceMock.updateValue.firstCall.args[1]).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
111
+ (0, chai_1.expect)(storedDefaultMode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
112
+ });
113
+ });
66
114
  describe('getConfirmationMode', () => {
67
- it('should return ALWAYS_ALLOW for regular tools by default', () => {
115
+ it('returns CONFIRM for regular tools by default', () => {
68
116
  const mode = manager.getConfirmationMode('regularTool', 'chat-1');
69
- (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
117
+ (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
70
118
  });
71
- it('should return CONFIRM for confirmAlwaysAllow tools by default', () => {
119
+ it('returns CONFIRM for confirmAlwaysAllow tools by default', () => {
72
120
  const toolRequest = createToolRequest('dangerousTool', true);
73
121
  const mode = manager.getConfirmationMode('dangerousTool', 'chat-1', toolRequest);
74
122
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
75
123
  });
76
- it('should return tool-specific preference when set', () => {
77
- storedPreferences['myTool'] = chat_tool_preferences_1.ToolConfirmationMode.DISABLED;
124
+ it('returns the global default for regular tools when set', () => {
125
+ storedDefaultMode = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
126
+ const mode = manager.getConfirmationMode('regularTool', 'chat-1');
127
+ (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
128
+ });
129
+ it('returns tool-specific preference when set', () => {
130
+ storedPerToolPreferences['myTool'] = chat_tool_preferences_1.ToolConfirmationMode.DISABLED;
78
131
  const mode = manager.getConfirmationMode('myTool', 'chat-1');
79
132
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
80
133
  });
81
- it('should return session override when set', () => {
134
+ it('returns session override when set', () => {
82
135
  manager.setSessionConfirmationMode('myTool', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW, 'chat-1');
83
136
  const mode = manager.getConfirmationMode('myTool', 'chat-1');
84
137
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
85
138
  });
86
- it('should not inherit global ALWAYS_ALLOW for confirmAlwaysAllow tools', () => {
87
- storedPreferences['*'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
139
+ it('does not inherit global ALWAYS_ALLOW for confirmAlwaysAllow tools', () => {
140
+ storedDefaultMode = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
88
141
  const toolRequest = createToolRequest('dangerousTool', true);
89
142
  const mode = manager.getConfirmationMode('dangerousTool', 'chat-1', toolRequest);
90
143
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
91
144
  });
92
- it('should inherit global DISABLED for confirmAlwaysAllow tools', () => {
93
- storedPreferences['*'] = chat_tool_preferences_1.ToolConfirmationMode.DISABLED;
145
+ it('inherits global DISABLED for confirmAlwaysAllow tools', () => {
146
+ storedDefaultMode = chat_tool_preferences_1.ToolConfirmationMode.DISABLED;
94
147
  const toolRequest = createToolRequest('dangerousTool', true);
95
148
  const mode = manager.getConfirmationMode('dangerousTool', 'chat-1', toolRequest);
96
149
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
97
150
  });
151
+ it('respects an explicit per-tool ALWAYS_ALLOW for confirmAlwaysAllow tools', () => {
152
+ storedPerToolPreferences['dangerousTool'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
153
+ const toolRequest = createToolRequest('dangerousTool', true);
154
+ const mode = manager.getConfirmationMode('dangerousTool', 'chat-1', toolRequest);
155
+ (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
156
+ });
98
157
  });
99
158
  describe('workspace trust', () => {
100
- it('ignores workspace {"*": "always_allow"} when workspace is untrusted', () => {
159
+ it('ignores a workspace-scoped default of ALWAYS_ALLOW when workspace is untrusted', () => {
101
160
  trusted = false;
102
- // Simulate the effective (workspace-merged) preference containing always_allow,
103
- // while the user/global scope is not set and the schema default prescribes
104
- // CONFIRM. If the workspace override were honoured the mode would be
105
- // ALWAYS_ALLOW; because trust filters the workspace scope out, the default
106
- // (CONFIRM) wins, which demonstrably proves the override was dropped.
107
- storedPreferences['*'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
108
- inspectResult = {
109
- defaultValue: { '*': chat_tool_preferences_1.ToolConfirmationMode.CONFIRM },
110
- workspaceValue: { '*': chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW }
161
+ // Simulate the effective (workspace-merged) default being ALWAYS_ALLOW while
162
+ // the user/global scope is unset and the schema default is CONFIRM. With trust
163
+ // disabled the workspace value must be dropped, so CONFIRM wins.
164
+ storedDefaultMode = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
165
+ defaultInspectResult = {
166
+ defaultValue: chat_tool_preferences_1.ToolConfirmationMode.CONFIRM,
167
+ workspaceValue: chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW
111
168
  };
112
169
  const mode = manager.getConfirmationMode('someTool', 'chat-1');
113
170
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
114
171
  });
115
- it('blocks confirmAlwaysAllow bypass via workspace {"*": "always_allow"} when untrusted', () => {
172
+ it('blocks confirmAlwaysAllow bypass via workspace ALWAYS_ALLOW default when untrusted', () => {
116
173
  trusted = false;
117
- storedPreferences['*'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
118
- inspectResult = {
119
- defaultValue: {},
120
- workspaceValue: { '*': chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW }
174
+ storedDefaultMode = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
175
+ defaultInspectResult = {
176
+ workspaceValue: chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW
121
177
  };
122
178
  const toolRequest = createToolRequest('dangerousTool', true);
123
179
  const mode = manager.getConfirmationMode('dangerousTool', 'chat-1', toolRequest);
124
- // Without the workspace value the map is empty, so the default for a
125
- // confirmAlwaysAllow tool (CONFIRM) is used.
126
180
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
127
181
  });
128
- it('honours workspace {"*": "always_allow"} when workspace is trusted', () => {
182
+ it('honours a workspace-scoped ALWAYS_ALLOW default when workspace is trusted', () => {
129
183
  trusted = true;
130
- storedPreferences['*'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
184
+ storedDefaultMode = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
131
185
  const mode = manager.getConfirmationMode('regularTool', 'chat-1');
132
186
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
133
187
  });
134
188
  });
135
189
  describe('setConfirmationMode', () => {
136
- it('should persist ALWAYS_ALLOW for regular tools when different from default', () => {
137
- storedPreferences['*'] = chat_tool_preferences_1.ToolConfirmationMode.CONFIRM;
190
+ it('persists ALWAYS_ALLOW for a regular tool when default is CONFIRM', () => {
138
191
  manager.setConfirmationMode('regularTool', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
139
192
  (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
140
- (0, chai_1.expect)(storedPreferences['regularTool']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
193
+ (0, chai_1.expect)(storedPerToolPreferences['regularTool']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
141
194
  });
142
- it('should persist ALWAYS_ALLOW for confirmAlwaysAllow tools', () => {
195
+ it('persists ALWAYS_ALLOW for confirmAlwaysAllow tools', () => {
143
196
  const toolRequest = createToolRequest('dangerousTool', true);
144
197
  manager.setConfirmationMode('dangerousTool', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW, toolRequest);
145
198
  (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
146
- (0, chai_1.expect)(storedPreferences['dangerousTool']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
199
+ (0, chai_1.expect)(storedPerToolPreferences['dangerousTool']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
147
200
  });
148
- it('should not persist ALWAYS_ALLOW for regular tools when it matches default', () => {
201
+ it('does not persist when mode matches the global default', () => {
202
+ storedDefaultMode = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
149
203
  manager.setConfirmationMode('regularTool', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
150
204
  (0, chai_1.expect)(preferenceServiceMock.updateValue.called).to.be.false;
151
205
  });
152
- it('should not persist when mode matches the global preference default', () => {
153
- inspectResult = {
154
- defaultValue: { '*': chat_tool_preferences_1.ToolConfirmationMode.CONFIRM }
155
- };
206
+ it('does not persist CONFIRM for a regular tool when default is CONFIRM', () => {
156
207
  manager.setConfirmationMode('regularTool', chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
157
208
  (0, chai_1.expect)(preferenceServiceMock.updateValue.called).to.be.false;
158
209
  });
159
- it('should persist when mode differs from the global preference default', () => {
160
- inspectResult = {
161
- defaultValue: { '*': chat_tool_preferences_1.ToolConfirmationMode.CONFIRM }
162
- };
210
+ it('persists DISABLED when default is CONFIRM', () => {
163
211
  manager.setConfirmationMode('regularTool', chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
164
212
  (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
165
- (0, chai_1.expect)(storedPreferences['regularTool']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
213
+ (0, chai_1.expect)(storedPerToolPreferences['regularTool']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
166
214
  });
167
- it('should not persist when mode matches the tool-specific preference default', () => {
168
- inspectResult = {
215
+ it('does not persist when mode matches a tool-specific schema default', () => {
216
+ perToolInspectResult = {
169
217
  defaultValue: { 'myTool': chat_tool_preferences_1.ToolConfirmationMode.DISABLED }
170
218
  };
171
219
  manager.setConfirmationMode('myTool', chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
172
220
  (0, chai_1.expect)(preferenceServiceMock.updateValue.called).to.be.false;
173
221
  });
174
- it('should remove entry when mode matches the tool-specific preference default and entry exists', () => {
175
- inspectResult = {
222
+ it('removes an existing entry when mode matches the tool-specific schema default', () => {
223
+ perToolInspectResult = {
176
224
  defaultValue: { 'myTool': chat_tool_preferences_1.ToolConfirmationMode.DISABLED }
177
225
  };
178
- storedPreferences['myTool'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
226
+ storedPerToolPreferences['myTool'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
179
227
  manager.setConfirmationMode('myTool', chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
180
228
  (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
181
- (0, chai_1.expect)(storedPreferences['myTool']).to.be.undefined;
229
+ (0, chai_1.expect)(storedPerToolPreferences['myTool']).to.be.undefined;
182
230
  });
183
- it('should not persist CONFIRM for confirmAlwaysAllow tool when global preference default is CONFIRM', () => {
184
- inspectResult = {
185
- defaultValue: { '*': chat_tool_preferences_1.ToolConfirmationMode.CONFIRM }
186
- };
231
+ it('does not persist CONFIRM for confirmAlwaysAllow tools (matches effective default)', () => {
187
232
  const toolRequest = createToolRequest('dangerousTool', true);
188
233
  manager.setConfirmationMode('dangerousTool', chat_tool_preferences_1.ToolConfirmationMode.CONFIRM, toolRequest);
189
234
  (0, chai_1.expect)(preferenceServiceMock.updateValue.called).to.be.false;
190
235
  });
191
- it('should persist ALWAYS_ALLOW for confirmAlwaysAllow tool when global preference default is CONFIRM', () => {
192
- inspectResult = {
193
- defaultValue: { '*': chat_tool_preferences_1.ToolConfirmationMode.CONFIRM }
194
- };
236
+ it('persists ALWAYS_ALLOW for a confirmAlwaysAllow tool when global default is ALWAYS_ALLOW', () => {
237
+ // The effective default for confirmAlwaysAllow tools is CONFIRM even when
238
+ // the global default is ALWAYS_ALLOW, so ALWAYS_ALLOW must still be persisted.
239
+ storedDefaultMode = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
195
240
  const toolRequest = createToolRequest('dangerousTool', true);
196
241
  manager.setConfirmationMode('dangerousTool', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW, toolRequest);
197
242
  (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
198
- (0, chai_1.expect)(storedPreferences['dangerousTool']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
243
+ (0, chai_1.expect)(storedPerToolPreferences['dangerousTool']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
199
244
  });
200
- it('should remove entry when setting mode that matches effective default', () => {
201
- storedPreferences['regularTool'] = chat_tool_preferences_1.ToolConfirmationMode.CONFIRM;
202
- manager.setConfirmationMode('regularTool', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
245
+ it('removes an existing entry when setting CONFIRM for a confirmAlwaysAllow tool', () => {
246
+ const toolRequest = createToolRequest('dangerousTool', true);
247
+ storedPerToolPreferences['dangerousTool'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
248
+ manager.setConfirmationMode('dangerousTool', chat_tool_preferences_1.ToolConfirmationMode.CONFIRM, toolRequest);
203
249
  (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
204
- (0, chai_1.expect)(storedPreferences['regularTool']).to.be.undefined;
250
+ (0, chai_1.expect)(storedPerToolPreferences['dangerousTool']).to.be.undefined;
205
251
  });
206
- it('should persist DISABLED for any tool', () => {
252
+ it('persists DISABLED for any tool when default is CONFIRM', () => {
207
253
  manager.setConfirmationMode('anyTool', chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
208
254
  (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
209
- (0, chai_1.expect)(storedPreferences['anyTool']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
210
- });
211
- it('should remove entry when setting CONFIRM for confirmAlwaysAllow tools (matches effective default)', () => {
212
- const toolRequest = createToolRequest('dangerousTool', true);
213
- storedPreferences['dangerousTool'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
214
- manager.setConfirmationMode('dangerousTool', chat_tool_preferences_1.ToolConfirmationMode.CONFIRM, toolRequest);
215
- (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
216
- (0, chai_1.expect)(storedPreferences['dangerousTool']).to.be.undefined;
255
+ (0, chai_1.expect)(storedPerToolPreferences['anyTool']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
217
256
  });
218
257
  });
219
258
  describe('setSessionConfirmationMode', () => {
220
- it('should set session override for specific chat', () => {
259
+ it('sets a session override for a specific chat', () => {
221
260
  manager.setSessionConfirmationMode('myTool', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW, 'chat-1');
222
261
  (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-1')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
223
- (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-2')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
262
+ (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-2')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
224
263
  });
225
- it('should prioritize session override over persisted preference', () => {
226
- storedPreferences['myTool'] = chat_tool_preferences_1.ToolConfirmationMode.DISABLED;
264
+ it('prioritizes session override over persisted preference', () => {
265
+ storedPerToolPreferences['myTool'] = chat_tool_preferences_1.ToolConfirmationMode.DISABLED;
227
266
  manager.setSessionConfirmationMode('myTool', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW, 'chat-1');
228
267
  (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-1')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
229
268
  });
230
269
  });
231
270
  describe('clearSessionOverrides', () => {
232
- it('should clear overrides for specific chat', () => {
271
+ it('clears overrides for a specific chat', () => {
233
272
  manager.setSessionConfirmationMode('myTool', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW, 'chat-1');
234
273
  manager.setSessionConfirmationMode('myTool', chat_tool_preferences_1.ToolConfirmationMode.DISABLED, 'chat-2');
235
274
  manager.clearSessionOverrides('chat-1');
236
- (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-1')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
275
+ (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-1')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
237
276
  (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-2')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
238
277
  });
239
- it('should clear all overrides when no chatId provided', () => {
278
+ it('clears all overrides when no chatId is given', () => {
240
279
  manager.setSessionConfirmationMode('myTool', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW, 'chat-1');
241
280
  manager.setSessionConfirmationMode('myTool', chat_tool_preferences_1.ToolConfirmationMode.DISABLED, 'chat-2');
242
281
  manager.clearSessionOverrides();
243
- (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-1')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
244
- (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-2')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
282
+ (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-1')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
283
+ (0, chai_1.expect)(manager.getConfirmationMode('myTool', 'chat-2')).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
284
+ });
285
+ });
286
+ describe('getAllConfirmationSettings', () => {
287
+ it('returns the per-tool record from the trust-aware reader', () => {
288
+ storedPerToolPreferences['toolA'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
289
+ storedPerToolPreferences['toolB'] = chat_tool_preferences_1.ToolConfirmationMode.DISABLED;
290
+ const settings = manager.getAllConfirmationSettings();
291
+ (0, chai_1.expect)(settings).to.deep.equal({
292
+ toolA: chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW,
293
+ toolB: chat_tool_preferences_1.ToolConfirmationMode.DISABLED
294
+ });
295
+ });
296
+ it('returns an empty record when no tool-specific entries are configured', () => {
297
+ const settings = manager.getAllConfirmationSettings();
298
+ (0, chai_1.expect)(settings).to.deep.equal({});
299
+ });
300
+ });
301
+ describe('resetAllConfirmationModeSettings', () => {
302
+ it('clears all per-tool entries', () => {
303
+ storedPerToolPreferences['toolA'] = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
304
+ storedPerToolPreferences['toolB'] = chat_tool_preferences_1.ToolConfirmationMode.DISABLED;
305
+ manager.resetAllConfirmationModeSettings();
306
+ (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
307
+ (0, chai_1.expect)(preferenceServiceMock.updateValue.firstCall.args[0]).to.equal(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE);
308
+ (0, chai_1.expect)(preferenceServiceMock.updateValue.firstCall.args[1]).to.deep.equal({});
309
+ });
310
+ it('does not modify the default-confirmation preference', () => {
311
+ storedDefaultMode = chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
312
+ storedPerToolPreferences['toolA'] = chat_tool_preferences_1.ToolConfirmationMode.DISABLED;
313
+ manager.resetAllConfirmationModeSettings();
314
+ (0, chai_1.expect)(storedDefaultMode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
245
315
  });
246
316
  });
247
317
  describe('confirmAlwaysAllow tools - "Always Approve" workflow', () => {
248
- it('should persist "Always Allow" for confirmAlwaysAllow tools', () => {
318
+ it('persists "Always Allow" for confirmAlwaysAllow tools', () => {
249
319
  const toolRequest = createToolRequest('shellExecute', 'This tool has full system access.');
250
320
  let mode = manager.getConfirmationMode('shellExecute', 'chat-1', toolRequest);
251
321
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.CONFIRM);
252
322
  manager.setConfirmationMode('shellExecute', chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW, toolRequest);
253
323
  (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
254
- (0, chai_1.expect)(storedPreferences['shellExecute']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
324
+ (0, chai_1.expect)(storedPerToolPreferences['shellExecute']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
255
325
  mode = manager.getConfirmationMode('shellExecute', 'chat-1', toolRequest);
256
326
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW);
257
327
  });
258
- it('should persist "Disabled" for confirmAlwaysAllow tools', () => {
328
+ it('persists "Disabled" for confirmAlwaysAllow tools', () => {
259
329
  const toolRequest = createToolRequest('shellExecute', true);
260
330
  manager.setConfirmationMode('shellExecute', chat_tool_preferences_1.ToolConfirmationMode.DISABLED, toolRequest);
261
331
  (0, chai_1.expect)(preferenceServiceMock.updateValue.calledOnce).to.be.true;
262
- (0, chai_1.expect)(storedPreferences['shellExecute']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
332
+ (0, chai_1.expect)(storedPerToolPreferences['shellExecute']).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
263
333
  const mode = manager.getConfirmationMode('shellExecute', 'chat-1', toolRequest);
264
334
  (0, chai_1.expect)(mode).to.equal(chat_tool_preferences_1.ToolConfirmationMode.DISABLED);
265
335
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chat-tool-preference-bindings.spec.js","sourceRoot":"","sources":["../../src/browser/chat-tool-preference-bindings.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-tool-preference-bindings.spec.js","sourceRoot":"","sources":["../../src/browser/chat-tool-preference-bindings.spec.ts"],"names":[],"mappings":"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"}
@@ -14,12 +14,14 @@ export declare enum ToolConfirmationMode {
14
14
  DISABLED = "disabled"
15
15
  }
16
16
  export declare const TOOL_CONFIRMATION_PREFERENCE = "ai-features.chat.toolConfirmation";
17
+ export declare const DEFAULT_TOOL_CONFIRMATION_PREFERENCE = "ai-features.chat.defaultToolConfirmation";
17
18
  export declare const TOOL_CONFIRMATION_TIMEOUT_PREFERENCE = "ai-features.chat.toolConfirmationTimeout";
18
19
  export declare const chatToolPreferences: PreferenceSchema;
19
20
  export interface ChatToolConfiguration {
20
21
  [TOOL_CONFIRMATION_PREFERENCE]: {
21
22
  [toolId: string]: ToolConfirmationMode;
22
23
  };
24
+ [DEFAULT_TOOL_CONFIRMATION_PREFERENCE]: ToolConfirmationMode;
23
25
  [TOOL_CONFIRMATION_TIMEOUT_PREFERENCE]: number;
24
26
  }
25
27
  //# sourceMappingURL=chat-tool-preferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-tool-preferences.d.ts","sourceRoot":"","sources":["../../src/common/chat-tool-preferences.ts"],"names":[],"mappings":"AAkBA,OAAO,EAGH,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,qBAAqB,CAAC,CAAC;AAEzE,eAAO,MAAM,8BAA8B,eAA2C,CAAC;AACvF,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AAEjE,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,GAAE,gBAAsC,GAAG,mBAAmB,CAE7I;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAQnE;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC5B,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACxB;AAED,eAAO,MAAM,4BAA4B,sCAAsC,CAAC;AAChF,eAAO,MAAM,oCAAoC,6CAA6C,CAAC;AAE/F,eAAO,MAAM,mBAAmB,EAAE,gBA6BjC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IAClC,CAAC,4BAA4B,CAAC,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE,CAAC;IAC3E,CAAC,oCAAoC,CAAC,EAAE,MAAM,CAAC;CAClD"}
1
+ {"version":3,"file":"chat-tool-preferences.d.ts","sourceRoot":"","sources":["../../src/common/chat-tool-preferences.ts"],"names":[],"mappings":"AAkBA,OAAO,EAGH,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,MAAM,MAAM,mBAAmB,GAAG,eAAe,CAAC,qBAAqB,CAAC,CAAC;AAEzE,eAAO,MAAM,8BAA8B,eAA2C,CAAC;AACvF,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AAEjE,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,GAAE,gBAAsC,GAAG,mBAAmB,CAE7I;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAQnE;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC5B,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACxB;AAED,eAAO,MAAM,4BAA4B,sCAAsC,CAAC;AAChF,eAAO,MAAM,oCAAoC,6CAA6C,CAAC;AAC/F,eAAO,MAAM,oCAAoC,6CAA6C,CAAC;AAc/F,eAAO,MAAM,mBAAmB,EAAE,gBAoCjC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IAClC,CAAC,4BAA4B,CAAC,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE,CAAC;IAC3E,CAAC,oCAAoC,CAAC,EAAE,oBAAoB,CAAC;IAC7D,CAAC,oCAAoC,CAAC,EAAE,MAAM,CAAC;CAClD"}
@@ -15,7 +15,7 @@
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
- exports.chatToolPreferences = exports.TOOL_CONFIRMATION_TIMEOUT_PREFERENCE = exports.TOOL_CONFIRMATION_PREFERENCE = exports.ToolConfirmationMode = exports.ChatToolPreferences = exports.ChatToolPreferenceContribution = void 0;
18
+ exports.chatToolPreferences = exports.TOOL_CONFIRMATION_TIMEOUT_PREFERENCE = exports.DEFAULT_TOOL_CONFIRMATION_PREFERENCE = exports.TOOL_CONFIRMATION_PREFERENCE = exports.ToolConfirmationMode = exports.ChatToolPreferences = exports.ChatToolPreferenceContribution = void 0;
19
19
  exports.createChatToolPreferences = createChatToolPreferences;
20
20
  exports.bindChatToolPreferences = bindChatToolPreferences;
21
21
  const ai_core_preferences_1 = require("@theia/ai-core/lib/common/ai-core-preferences");
@@ -45,23 +45,40 @@ var ToolConfirmationMode;
45
45
  ToolConfirmationMode["DISABLED"] = "disabled";
46
46
  })(ToolConfirmationMode || (exports.ToolConfirmationMode = ToolConfirmationMode = {}));
47
47
  exports.TOOL_CONFIRMATION_PREFERENCE = 'ai-features.chat.toolConfirmation';
48
+ exports.DEFAULT_TOOL_CONFIRMATION_PREFERENCE = 'ai-features.chat.defaultToolConfirmation';
48
49
  exports.TOOL_CONFIRMATION_TIMEOUT_PREFERENCE = 'ai-features.chat.toolConfirmationTimeout';
50
+ const TOOL_CONFIRMATION_MODE_VALUES = [
51
+ ToolConfirmationMode.ALWAYS_ALLOW,
52
+ ToolConfirmationMode.CONFIRM,
53
+ ToolConfirmationMode.DISABLED
54
+ ];
55
+ const TOOL_CONFIRMATION_MODE_DESCRIPTIONS = [
56
+ core_1.nls.localize('theia/ai/chat/toolConfirmation/alwaysAllow/description', 'Execute tools automatically without confirmation'),
57
+ core_1.nls.localize('theia/ai/chat/toolConfirmation/confirm/description', 'Ask for confirmation before executing tools'),
58
+ core_1.nls.localize('theia/ai/chat/toolConfirmation/disabled/description', 'Disable tool execution')
59
+ ];
49
60
  exports.chatToolPreferences = {
50
61
  properties: {
62
+ [exports.DEFAULT_TOOL_CONFIRMATION_PREFERENCE]: {
63
+ type: 'string',
64
+ enum: TOOL_CONFIRMATION_MODE_VALUES,
65
+ enumDescriptions: TOOL_CONFIRMATION_MODE_DESCRIPTIONS,
66
+ default: ToolConfirmationMode.CONFIRM,
67
+ description: core_1.nls.localize('theia/ai/chat/defaultToolConfirmation/description', 'Default confirmation behavior used for tools that do not have a tool-specific entry under ' +
68
+ '"ai-features.chat.toolConfirmation". Tools that explicitly require confirmation before being auto-approved ' +
69
+ 'always default to "confirm" regardless of this setting.'),
70
+ title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
71
+ },
51
72
  [exports.TOOL_CONFIRMATION_PREFERENCE]: {
52
73
  type: 'object',
53
74
  additionalProperties: {
54
75
  type: 'string',
55
- enum: [ToolConfirmationMode.ALWAYS_ALLOW, ToolConfirmationMode.CONFIRM, ToolConfirmationMode.DISABLED],
56
- enumDescriptions: [
57
- core_1.nls.localize('theia/ai/chat/toolConfirmation/yolo/description', 'Execute tools automatically without confirmation'),
58
- core_1.nls.localize('theia/ai/chat/toolConfirmation/confirm/description', 'Ask for confirmation before executing tools'),
59
- core_1.nls.localize('theia/ai/chat/toolConfirmation/disabled/description', 'Disable tool execution')
60
- ]
76
+ enum: TOOL_CONFIRMATION_MODE_VALUES,
77
+ enumDescriptions: TOOL_CONFIRMATION_MODE_DESCRIPTIONS
61
78
  },
62
79
  default: {},
63
- description: core_1.nls.localize('theia/ai/chat/toolConfirmation/description', 'Configure confirmation behavior for different tools. Key is the tool ID, value is the confirmation mode. ' +
64
- 'Use "*" as the key to set a global default for all tools.'),
80
+ description: core_1.nls.localize('theia/ai/chat/toolConfirmation/description', 'Configure confirmation behavior for individual tools. Key is the tool ID, value is the confirmation mode. ' +
81
+ 'To change the default for all tools, use "ai-features.chat.defaultToolConfirmation".'),
65
82
  title: ai_core_preferences_1.AI_CORE_PREFERENCES_TITLE,
66
83
  },
67
84
  [exports.TOOL_CONFIRMATION_TIMEOUT_PREFERENCE]: {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-tool-preferences.js","sourceRoot":"","sources":["../../src/common/chat-tool-preferences.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAkBhF,8DAEC;AAED,0DAQC;AA5BD,uFAA0F;AAC1F,sCAAkC;AAClC,oEAM4C;AAK/B,QAAA,8BAA8B,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;AAC1E,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEjE,SAAgB,yBAAyB,CAAC,WAA8B,EAAE,SAA2B,2BAAmB;IACpH,OAAO,IAAA,mCAAqB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,uBAAuB,CAAC,IAAqB;IACzD,IAAI,CAAC,2BAAmB,CAAC,CAAC,cAAc,CAAC,CAAC,GAAuB,EAAE,EAAE;QACjE,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAoB,+BAAiB,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAyB,sCAA8B,CAAC,CAAC;QAC/F,OAAO,yBAAyB,CAAC,WAAW,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,sCAA8B,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,2BAAmB,EAAE,CAAC,CAAC;IACtF,IAAI,CAAC,oCAAsB,CAAC,CAAC,SAAS,CAAC,sCAA8B,CAAC,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,qDAA6B,CAAA;IAC7B,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;AACzB,CAAC,EAJW,oBAAoB,oCAApB,oBAAoB,QAI/B;AAEY,QAAA,4BAA4B,GAAG,mCAAmC,CAAC;AACnE,QAAA,oCAAoC,GAAG,0CAA0C,CAAC;AAElF,QAAA,mBAAmB,GAAqB;IACjD,UAAU,EAAE;QACR,CAAC,oCAA4B,CAAC,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE;gBAClB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,oBAAoB,CAAC,YAAY,EAAE,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC;gBACtG,gBAAgB,EAAE;oBACd,UAAG,CAAC,QAAQ,CAAC,iDAAiD,EAAE,kDAAkD,CAAC;oBACnH,UAAG,CAAC,QAAQ,CAAC,oDAAoD,EAAE,6CAA6C,CAAC;oBACjH,UAAG,CAAC,QAAQ,CAAC,qDAAqD,EAAE,wBAAwB,CAAC;iBAChG;aACJ;YACD,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,4CAA4C,EAClE,2GAA2G;gBAC3G,2DAA2D,CAAC;YAChE,KAAK,EAAE,+CAAyB;SACnC;QACD,CAAC,4CAAoC,CAAC,EAAE;YACpC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,UAAG,CAAC,QAAQ,CAAC,mDAAmD,EACzE,kIAAkI;gBAClI,8DAA8D,CAAC;YACnE,KAAK,EAAE,+CAAyB;SACnC;KACJ;CACJ,CAAC"}
1
+ {"version":3,"file":"chat-tool-preferences.js","sourceRoot":"","sources":["../../src/common/chat-tool-preferences.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@theia/ai-chat",
3
- "version": "1.71.0",
3
+ "version": "1.72.0-next.11+b1c4bde4705",
4
4
  "description": "Theia - AI Chat Extension",
5
5
  "dependencies": {
6
- "@theia/ai-core": "1.71.0",
7
- "@theia/core": "1.71.0",
8
- "@theia/editor": "1.71.0",
9
- "@theia/file-search": "1.71.0",
10
- "@theia/filesystem": "1.71.0",
11
- "@theia/monaco": "1.71.0",
6
+ "@theia/ai-core": "1.72.0-next.11+b1c4bde4705",
7
+ "@theia/core": "1.72.0-next.11+b1c4bde4705",
8
+ "@theia/editor": "1.72.0-next.11+b1c4bde4705",
9
+ "@theia/file-search": "1.72.0-next.11+b1c4bde4705",
10
+ "@theia/filesystem": "1.72.0-next.11+b1c4bde4705",
11
+ "@theia/monaco": "1.72.0-next.11+b1c4bde4705",
12
12
  "@theia/monaco-editor-core": "1.108.201",
13
- "@theia/workspace": "1.71.0",
13
+ "@theia/workspace": "1.72.0-next.11+b1c4bde4705",
14
14
  "js-yaml": "^4.1.1",
15
15
  "tslib": "^2.6.2"
16
16
  },
@@ -54,5 +54,5 @@
54
54
  "nyc": {
55
55
  "extends": "../../configs/nyc.json"
56
56
  },
57
- "gitHead": "d8a596fc99f0a8e68b466828ed162569d79e3a71"
57
+ "gitHead": "b1c4bde470503b1cc20454841cf2c84ed7deb63f"
58
58
  }