@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.
- package/lib/browser/chat-tool-preference-bindings.d.ts +28 -4
- package/lib/browser/chat-tool-preference-bindings.d.ts.map +1 -1
- package/lib/browser/chat-tool-preference-bindings.js +55 -32
- package/lib/browser/chat-tool-preference-bindings.js.map +1 -1
- package/lib/browser/chat-tool-preference-bindings.spec.js +168 -98
- package/lib/browser/chat-tool-preference-bindings.spec.js.map +1 -1
- package/lib/common/chat-tool-preferences.d.ts +2 -0
- package/lib/common/chat-tool-preferences.d.ts.map +1 -1
- package/lib/common/chat-tool-preferences.js +26 -9
- package/lib/common/chat-tool-preferences.js.map +1 -1
- package/package.json +9 -9
- package/src/browser/chat-tool-preference-bindings.spec.ts +194 -104
- package/src/browser/chat-tool-preference-bindings.ts +71 -39
- package/src/common/chat-tool-preferences.ts +29 -8
|
@@ -9,12 +9,26 @@ export declare class ToolConfirmationManager {
|
|
|
9
9
|
protected readonly preferenceService: PreferenceService;
|
|
10
10
|
protected readonly trustAwareReader: TrustAwarePreferenceReader;
|
|
11
11
|
protected sessionOverrides: Map<string, Map<string, ToolConfirmationMode>>;
|
|
12
|
+
/**
|
|
13
|
+
* Get the global default confirmation mode (used when no tool-specific entry exists).
|
|
14
|
+
*
|
|
15
|
+
* Read through the trust-aware reader so that an untrusted workspace cannot override
|
|
16
|
+
* the default to a more permissive value.
|
|
17
|
+
*/
|
|
18
|
+
getDefaultConfirmationMode(): ToolConfirmationMode;
|
|
19
|
+
/**
|
|
20
|
+
* Set the global default confirmation mode.
|
|
21
|
+
*
|
|
22
|
+
* Returns the promise produced by the underlying preference update so callers can
|
|
23
|
+
* `await` completion and react to errors (e.g. show a notification on failure).
|
|
24
|
+
*/
|
|
25
|
+
setDefaultConfirmationMode(mode: ToolConfirmationMode): Promise<void>;
|
|
12
26
|
/**
|
|
13
27
|
* Get the confirmation mode for a specific tool, considering session overrides first (per chat).
|
|
14
28
|
*
|
|
15
29
|
* For tools with `confirmAlwaysAllow` flag:
|
|
16
|
-
* - They default to CONFIRM mode instead of ALWAYS_ALLOW
|
|
17
|
-
* -
|
|
30
|
+
* - They default to CONFIRM mode instead of inheriting ALWAYS_ALLOW from the global default.
|
|
31
|
+
* - Tool-specific preference entries are still respected (informed user consent).
|
|
18
32
|
*
|
|
19
33
|
* @param toolId - The tool identifier
|
|
20
34
|
* @param chatId - The chat session identifier
|
|
@@ -28,7 +42,7 @@ export declare class ToolConfirmationManager {
|
|
|
28
42
|
* @param mode - The confirmation mode to set
|
|
29
43
|
* @param toolRequest - Optional ToolRequest to check for confirmAlwaysAllow flag
|
|
30
44
|
*/
|
|
31
|
-
setConfirmationMode(toolId: string, mode: ToolConfirmationMode, toolRequest?: ToolRequest): void
|
|
45
|
+
setConfirmationMode(toolId: string, mode: ToolConfirmationMode, toolRequest?: ToolRequest): Promise<void>;
|
|
32
46
|
/**
|
|
33
47
|
* Set the confirmation mode for a specific tool for this session only (not persisted, per chat)
|
|
34
48
|
*/
|
|
@@ -43,6 +57,16 @@ export declare class ToolConfirmationManager {
|
|
|
43
57
|
getAllConfirmationSettings(): {
|
|
44
58
|
[toolId: string]: ToolConfirmationMode;
|
|
45
59
|
};
|
|
46
|
-
resetAllConfirmationModeSettings(): void
|
|
60
|
+
resetAllConfirmationModeSettings(): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Compute the effective default for a given tool, taking the schema-level default,
|
|
63
|
+
* any product-shipped per-tool default, and the confirmAlwaysAllow flag into account.
|
|
64
|
+
*/
|
|
65
|
+
protected computeEffectiveDefaultForTool(toolId: string, toolRequest?: ToolRequest): ToolConfirmationMode;
|
|
66
|
+
/**
|
|
67
|
+
* Read the schema-level default for the default-confirmation preference.
|
|
68
|
+
* Falls back to CONFIRM if the preference service has not registered the schema yet.
|
|
69
|
+
*/
|
|
70
|
+
protected getDefaultPreferenceSchemaDefault(): ToolConfirmationMode;
|
|
47
71
|
}
|
|
48
72
|
//# sourceMappingURL=chat-tool-preference-bindings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-tool-preference-bindings.d.ts","sourceRoot":"","sources":["../../src/browser/chat-tool-preference-bindings.ts"],"names":[],"mappings":"AAiBA,OAAO,EACH,iBAAiB,EACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"chat-tool-preference-bindings.d.ts","sourceRoot":"","sources":["../../src/browser/chat-tool-preference-bindings.ts"],"names":[],"mappings":"AAiBA,OAAO,EACH,iBAAiB,EACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACH,oBAAoB,EAGvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AAEtG;;GAEG;AACH,qBACa,uBAAuB;IAEhC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;IAGhE,SAAS,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAa;IAEvF;;;;;OAKG;IACH,0BAA0B,IAAI,oBAAoB;IAKlD;;;;;OAKG;IACH,0BAA0B,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,oBAAoB;IAmBpG;;;;;;OAMG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzG;;OAEG;IACH,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS5F;;OAEG;IACH,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ5C;;OAEG;IACH,0BAA0B,IAAI;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE;IAMxE,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjD;;;OAGG;IACH,SAAS,CAAC,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,oBAAoB;IAezG;;;OAGG;IACH,SAAS,CAAC,iCAAiC,IAAI,oBAAoB;CAMtE"}
|
|
@@ -29,12 +29,31 @@ let ToolConfirmationManager = class ToolConfirmationManager {
|
|
|
29
29
|
// In-memory session overrides (not persisted), per chat
|
|
30
30
|
this.sessionOverrides = new Map();
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Get the global default confirmation mode (used when no tool-specific entry exists).
|
|
34
|
+
*
|
|
35
|
+
* Read through the trust-aware reader so that an untrusted workspace cannot override
|
|
36
|
+
* the default to a more permissive value.
|
|
37
|
+
*/
|
|
38
|
+
getDefaultConfirmationMode() {
|
|
39
|
+
const value = this.trustAwareReader.get(chat_tool_preferences_1.DEFAULT_TOOL_CONFIRMATION_PREFERENCE);
|
|
40
|
+
return value ?? this.getDefaultPreferenceSchemaDefault();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Set the global default confirmation mode.
|
|
44
|
+
*
|
|
45
|
+
* Returns the promise produced by the underlying preference update so callers can
|
|
46
|
+
* `await` completion and react to errors (e.g. show a notification on failure).
|
|
47
|
+
*/
|
|
48
|
+
setDefaultConfirmationMode(mode) {
|
|
49
|
+
return this.preferenceService.updateValue(chat_tool_preferences_1.DEFAULT_TOOL_CONFIRMATION_PREFERENCE, mode);
|
|
50
|
+
}
|
|
32
51
|
/**
|
|
33
52
|
* Get the confirmation mode for a specific tool, considering session overrides first (per chat).
|
|
34
53
|
*
|
|
35
54
|
* For tools with `confirmAlwaysAllow` flag:
|
|
36
|
-
* - They default to CONFIRM mode instead of ALWAYS_ALLOW
|
|
37
|
-
* -
|
|
55
|
+
* - They default to CONFIRM mode instead of inheriting ALWAYS_ALLOW from the global default.
|
|
56
|
+
* - Tool-specific preference entries are still respected (informed user consent).
|
|
38
57
|
*
|
|
39
58
|
* @param toolId - The tool identifier
|
|
40
59
|
* @param chatId - The chat session identifier
|
|
@@ -46,20 +65,15 @@ let ToolConfirmationManager = class ToolConfirmationManager {
|
|
|
46
65
|
return chatMap.get(toolId);
|
|
47
66
|
}
|
|
48
67
|
const toolConfirmation = this.trustAwareReader.get(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE, {}) ?? {};
|
|
49
|
-
if (toolConfirmation
|
|
68
|
+
if (toolId in toolConfirmation) {
|
|
50
69
|
return toolConfirmation[toolId];
|
|
51
70
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
return toolConfirmation['*'];
|
|
71
|
+
const defaultMode = this.getDefaultConfirmationMode();
|
|
72
|
+
// For confirmAlwaysAllow tools, don't inherit a global ALWAYS_ALLOW default
|
|
73
|
+
if (toolRequest?.confirmAlwaysAllow && defaultMode === chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW) {
|
|
74
|
+
return chat_tool_preferences_1.ToolConfirmationMode.CONFIRM;
|
|
58
75
|
}
|
|
59
|
-
|
|
60
|
-
return toolRequest?.confirmAlwaysAllow
|
|
61
|
-
? chat_tool_preferences_1.ToolConfirmationMode.CONFIRM
|
|
62
|
-
: chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
|
|
76
|
+
return defaultMode;
|
|
63
77
|
}
|
|
64
78
|
/**
|
|
65
79
|
* Set the confirmation mode for a specific tool (persisted)
|
|
@@ -69,26 +83,17 @@ let ToolConfirmationManager = class ToolConfirmationManager {
|
|
|
69
83
|
* @param toolRequest - Optional ToolRequest to check for confirmAlwaysAllow flag
|
|
70
84
|
*/
|
|
71
85
|
setConfirmationMode(toolId, mode, toolRequest) {
|
|
72
|
-
const defaultPref = this.preferenceService.inspect(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE)?.defaultValue || {};
|
|
73
86
|
const current = this.trustAwareReader.get(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE, {}) ?? {};
|
|
74
|
-
|
|
75
|
-
if (starMode === undefined) {
|
|
76
|
-
starMode = defaultPref['*'] ?? chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW;
|
|
77
|
-
}
|
|
78
|
-
// For confirmAlwaysAllow tools, the effective default is CONFIRM, not ALWAYS_ALLOW
|
|
79
|
-
const effectiveDefault = (toolRequest?.confirmAlwaysAllow && starMode === chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW)
|
|
80
|
-
? chat_tool_preferences_1.ToolConfirmationMode.CONFIRM
|
|
81
|
-
: defaultPref[toolId] ?? starMode;
|
|
87
|
+
const effectiveDefault = this.computeEffectiveDefaultForTool(toolId, toolRequest);
|
|
82
88
|
if (mode === effectiveDefault) {
|
|
83
89
|
if (toolId in current) {
|
|
84
90
|
const { [toolId]: _, ...rest } = current;
|
|
85
|
-
this.preferenceService.updateValue(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE, rest);
|
|
91
|
+
return this.preferenceService.updateValue(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE, rest);
|
|
86
92
|
}
|
|
93
|
+
return Promise.resolve();
|
|
87
94
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
this.preferenceService.updateValue(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE, updated);
|
|
91
|
-
}
|
|
95
|
+
const updated = { ...current, [toolId]: mode };
|
|
96
|
+
return this.preferenceService.updateValue(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE, updated);
|
|
92
97
|
}
|
|
93
98
|
/**
|
|
94
99
|
* Set the confirmation mode for a specific tool for this session only (not persisted, per chat)
|
|
@@ -119,13 +124,31 @@ let ToolConfirmationManager = class ToolConfirmationManager {
|
|
|
119
124
|
return this.trustAwareReader.get(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE, {}) ?? {};
|
|
120
125
|
}
|
|
121
126
|
resetAllConfirmationModeSettings() {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
127
|
+
return this.preferenceService.updateValue(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE, {});
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Compute the effective default for a given tool, taking the schema-level default,
|
|
131
|
+
* any product-shipped per-tool default, and the confirmAlwaysAllow flag into account.
|
|
132
|
+
*/
|
|
133
|
+
computeEffectiveDefaultForTool(toolId, toolRequest) {
|
|
134
|
+
const perToolDefaults = this.preferenceService.inspect(chat_tool_preferences_1.TOOL_CONFIRMATION_PREFERENCE)?.defaultValue;
|
|
135
|
+
const perToolDefault = perToolDefaults?.[toolId];
|
|
136
|
+
if (perToolDefault) {
|
|
137
|
+
return perToolDefault;
|
|
125
138
|
}
|
|
126
|
-
|
|
127
|
-
|
|
139
|
+
const globalDefault = this.getDefaultConfirmationMode();
|
|
140
|
+
if (toolRequest?.confirmAlwaysAllow && globalDefault === chat_tool_preferences_1.ToolConfirmationMode.ALWAYS_ALLOW) {
|
|
141
|
+
return chat_tool_preferences_1.ToolConfirmationMode.CONFIRM;
|
|
128
142
|
}
|
|
143
|
+
return globalDefault;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Read the schema-level default for the default-confirmation preference.
|
|
147
|
+
* Falls back to CONFIRM if the preference service has not registered the schema yet.
|
|
148
|
+
*/
|
|
149
|
+
getDefaultPreferenceSchemaDefault() {
|
|
150
|
+
const schemaDefault = this.preferenceService.inspect(chat_tool_preferences_1.DEFAULT_TOOL_CONFIRMATION_PREFERENCE)?.defaultValue;
|
|
151
|
+
return schemaDefault ?? chat_tool_preferences_1.ToolConfirmationMode.CONFIRM;
|
|
129
152
|
}
|
|
130
153
|
};
|
|
131
154
|
exports.ToolConfirmationManager = ToolConfirmationManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-tool-preference-bindings.js","sourceRoot":"","sources":["../../src/browser/chat-tool-preference-bindings.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;;;;AAEhF,4DAAkE;AAClE,oEAE4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"chat-tool-preference-bindings.js","sourceRoot":"","sources":["../../src/browser/chat-tool-preference-bindings.ts"],"names":[],"mappings":"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"}
|