@vybestack/llxprt-code-core 0.1.17 → 0.1.18-nightly.250808.f9b79d74
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/README.md +1 -1
- package/dist/src/config/config.alwaysAllow.test.d.ts +6 -0
- package/dist/src/config/config.alwaysAllow.test.js +84 -0
- package/dist/src/config/config.alwaysAllow.test.js.map +1 -0
- package/dist/src/config/config.d.ts +13 -0
- package/dist/src/config/config.js +30 -2
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/core/client.d.ts +9 -4
- package/dist/src/core/client.js +44 -88
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +1 -1
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.js +1 -1
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +19 -7
- package/dist/src/core/coreToolScheduler.js +124 -19
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +31 -37
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +4 -0
- package/dist/src/core/geminiChat.js +41 -4
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.js +4 -1
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/nonInteractiveToolExecutor.test.js +8 -31
- package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
- package/dist/src/core/subagent.d.ts +230 -0
- package/dist/src/core/subagent.js +453 -0
- package/dist/src/core/subagent.js.map +1 -0
- package/dist/src/core/subagent.test.d.ts +6 -0
- package/dist/src/core/subagent.test.js +519 -0
- package/dist/src/core/subagent.test.js.map +1 -0
- package/dist/src/hooks/tool-render-suppression-hook.d.ts +16 -0
- package/dist/src/hooks/tool-render-suppression-hook.js +26 -0
- package/dist/src/hooks/tool-render-suppression-hook.js.map +1 -0
- package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +6 -0
- package/dist/src/hooks/tool-render-suppression-hook.test.js +59 -0
- package/dist/src/hooks/tool-render-suppression-hook.test.js.map +1 -0
- package/dist/src/ide/ide-client.d.ts +21 -0
- package/dist/src/ide/ide-client.js +107 -1
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ideContext.d.ts +127 -32
- package/dist/src/ide/ideContext.js +45 -0
- package/dist/src/ide/ideContext.js.map +1 -1
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/integration-tests/todo-system.test.js +38 -602
- package/dist/src/integration-tests/todo-system.test.js.map +1 -1
- package/dist/src/mcp/oauth-provider.d.ts +1 -0
- package/dist/src/mcp/oauth-provider.js +14 -1
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +87 -6
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/prompts/prompt-registry.d.ts +8 -0
- package/dist/src/prompts/prompt-registry.js +16 -0
- package/dist/src/prompts/prompt-registry.js.map +1 -1
- package/dist/src/providers/gemini/GeminiProvider.js +5 -5
- package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.integration.test.js +1 -1
- package/dist/src/providers/openai/OpenAIProvider.integration.test.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.js +8 -1
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.test.js +106 -0
- package/dist/src/providers/openai/OpenAIProvider.test.js.map +1 -1
- package/dist/src/providers/types/IProviderConfig.d.ts +5 -0
- package/dist/src/services/loopDetectionService.js +2 -4
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +29 -5
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/services/shellExecutionService.test.js +8 -0
- package/dist/src/services/shellExecutionService.test.js.map +1 -1
- package/dist/src/services/todo-context-tracker.d.ts +31 -0
- package/dist/src/services/todo-context-tracker.js +45 -0
- package/dist/src/services/todo-context-tracker.js.map +1 -0
- package/dist/src/services/tool-call-tracker-service.d.ts +52 -0
- package/dist/src/services/tool-call-tracker-service.js +170 -0
- package/dist/src/services/tool-call-tracker-service.js.map +1 -0
- package/dist/src/services/tool-call-tracker-service.test.d.ts +6 -0
- package/dist/src/services/tool-call-tracker-service.test.js +99 -0
- package/dist/src/services/tool-call-tracker-service.test.js.map +1 -0
- package/dist/src/telemetry/loggers.test.circular.js +7 -2
- package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +5 -1
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +1 -1
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +2 -1
- package/dist/src/telemetry/types.js +3 -1
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +2 -0
- package/dist/src/telemetry/uiTelemetry.js +2 -0
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.test.js +11 -1
- package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
- package/dist/src/test-utils/tools.d.ts +23 -0
- package/dist/src/test-utils/tools.js +41 -0
- package/dist/src/test-utils/tools.js.map +1 -0
- package/dist/src/tools/edit.d.ts +2 -2
- package/dist/src/tools/edit.js +18 -0
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +48 -0
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.d.ts +4 -0
- package/dist/src/tools/glob.js +31 -5
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.d.ts +4 -0
- package/dist/src/tools/grep.js +22 -5
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/ls.d.ts +4 -0
- package/dist/src/tools/ls.js +30 -5
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +10 -0
- package/dist/src/tools/mcp-client.js +59 -0
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +294 -1
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.js +104 -45
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/mcp-tool.test.js +280 -2
- package/dist/src/tools/mcp-tool.test.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +2 -2
- package/dist/src/tools/memoryTool.js +1 -0
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/modifiable-tool.d.ts +9 -6
- package/dist/src/tools/modifiable-tool.js +6 -3
- package/dist/src/tools/modifiable-tool.js.map +1 -1
- package/dist/src/tools/modifiable-tool.test.js +12 -12
- package/dist/src/tools/modifiable-tool.test.js.map +1 -1
- package/dist/src/tools/read-file.d.ts +4 -6
- package/dist/src/tools/read-file.js +59 -46
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +201 -126
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/read-many-files.js +8 -2
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/read-many-files.test.js +16 -0
- package/dist/src/tools/read-many-files.test.js.map +1 -1
- package/dist/src/tools/shell.js +14 -2
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/todo-events.d.ts +22 -0
- package/dist/src/tools/todo-events.js +24 -0
- package/dist/src/tools/todo-events.js.map +1 -0
- package/dist/src/tools/todo-read.js.map +1 -1
- package/dist/src/tools/todo-schemas.d.ts +232 -4
- package/dist/src/tools/todo-schemas.js +13 -0
- package/dist/src/tools/todo-schemas.js.map +1 -1
- package/dist/src/tools/todo-schemas.test.js +190 -1
- package/dist/src/tools/todo-schemas.test.js.map +1 -1
- package/dist/src/tools/todo-store.d.ts +1 -4
- package/dist/src/tools/todo-store.js +41 -40
- package/dist/src/tools/todo-store.js.map +1 -1
- package/dist/src/tools/todo-store.test.js +34 -40
- package/dist/src/tools/todo-store.test.js.map +1 -1
- package/dist/src/tools/todo-write.d.ts +1 -1
- package/dist/src/tools/todo-write.js +84 -47
- package/dist/src/tools/todo-write.js.map +1 -1
- package/dist/src/tools/todo-write.test.js +23 -9
- package/dist/src/tools/todo-write.test.js.map +1 -1
- package/dist/src/tools/tool-context.d.ts +2 -0
- package/dist/src/tools/tool-registry.d.ts +13 -6
- package/dist/src/tools/tool-registry.js +28 -11
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tool-registry.test.js +7 -20
- package/dist/src/tools/tool-registry.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +122 -39
- package/dist/src/tools/tools.js +165 -10
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/tools.test.d.ts +6 -0
- package/dist/src/tools/tools.test.js +117 -0
- package/dist/src/tools/tools.test.js.map +1 -0
- package/dist/src/tools/write-file.d.ts +2 -2
- package/dist/src/tools/write-file.js +16 -0
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-file.test.js +20 -3
- package/dist/src/tools/write-file.test.js.map +1 -1
- package/dist/src/types/modelParams.d.ts +2 -0
- package/dist/src/utils/editor.d.ts +1 -1
- package/dist/src/utils/editor.js +13 -5
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/editor.test.js +38 -6
- package/dist/src/utils/editor.test.js.map +1 -1
- package/dist/src/utils/environmentContext.d.ts +21 -0
- package/dist/src/utils/environmentContext.js +90 -0
- package/dist/src/utils/environmentContext.js.map +1 -0
- package/dist/src/utils/environmentContext.test.d.ts +6 -0
- package/dist/src/utils/environmentContext.test.js +139 -0
- package/dist/src/utils/environmentContext.test.js.map +1 -0
- package/dist/src/utils/fileUtils.js +7 -14
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +18 -4
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/filesearch/crawlCache.d.ts +25 -0
- package/dist/src/utils/filesearch/crawlCache.js +57 -0
- package/dist/src/utils/filesearch/crawlCache.js.map +1 -0
- package/dist/src/utils/filesearch/crawlCache.test.d.ts +6 -0
- package/dist/src/utils/filesearch/crawlCache.test.js +103 -0
- package/dist/src/utils/filesearch/crawlCache.test.js.map +1 -0
- package/dist/src/utils/filesearch/fileSearch.d.ts +80 -0
- package/dist/src/utils/filesearch/fileSearch.js +233 -0
- package/dist/src/utils/filesearch/fileSearch.js.map +1 -0
- package/dist/src/utils/filesearch/fileSearch.test.d.ts +6 -0
- package/dist/src/utils/filesearch/fileSearch.test.js +654 -0
- package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -0
- package/dist/src/utils/filesearch/ignore.d.ts +35 -0
- package/dist/src/utils/filesearch/ignore.js +81 -0
- package/dist/src/utils/filesearch/ignore.js.map +1 -0
- package/dist/src/utils/filesearch/ignore.test.d.ts +6 -0
- package/dist/src/utils/filesearch/ignore.test.js +57 -0
- package/dist/src/utils/filesearch/ignore.test.js.map +1 -0
- package/dist/src/utils/filesearch/result-cache.d.ts +34 -0
- package/dist/src/utils/filesearch/result-cache.js +61 -0
- package/dist/src/utils/filesearch/result-cache.js.map +1 -0
- package/dist/src/utils/filesearch/result-cache.test.d.ts +6 -0
- package/dist/src/utils/filesearch/result-cache.test.js +47 -0
- package/dist/src/utils/filesearch/result-cache.test.js.map +1 -0
- package/dist/src/utils/memoryDiscovery.d.ts +1 -1
- package/dist/src/utils/memoryDiscovery.js +22 -7
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.test.js +30 -71
- package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
- package/dist/src/utils/shell-utils.js +14 -2
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +6 -0
- package/dist/src/utils/shell-utils.shellReplacement.test.js +149 -0
- package/dist/src/utils/shell-utils.shellReplacement.test.js.map +1 -0
- package/dist/src/utils/toolOutputLimiter.js +5 -1
- package/dist/src/utils/toolOutputLimiter.js.map +1 -1
- package/dist/src/utils/workspaceContext.d.ts +4 -0
- package/dist/src/utils/workspaceContext.js +33 -0
- package/dist/src/utils/workspaceContext.js.map +1 -1
- package/package.json +6 -1
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { ToolConfirmationOutcome, ApprovalMode, logToolCall, ToolCallEvent, ToolErrorType, } from '../index.js';
|
|
7
|
+
import { ToolCallTrackerService } from '../services/tool-call-tracker-service.js';
|
|
7
8
|
import { getResponseTextFromParts } from '../utils/generateContentResponseUtilities.js';
|
|
8
|
-
import {
|
|
9
|
+
import { isModifiableDeclarativeTool, modifyWithEditor, } from '../tools/modifiable-tool.js';
|
|
9
10
|
import * as Diff from 'diff';
|
|
10
11
|
/**
|
|
11
12
|
* Formats tool output for a Gemini FunctionResponse.
|
|
@@ -104,6 +105,7 @@ export class CoreToolScheduler {
|
|
|
104
105
|
config;
|
|
105
106
|
pendingQueue = [];
|
|
106
107
|
isProcessingBatch = false;
|
|
108
|
+
onEditorClose;
|
|
107
109
|
constructor(options) {
|
|
108
110
|
this.config = options.config;
|
|
109
111
|
this.toolRegistry = options.toolRegistry;
|
|
@@ -111,6 +113,7 @@ export class CoreToolScheduler {
|
|
|
111
113
|
this.onAllToolCallsComplete = options.onAllToolCallsComplete;
|
|
112
114
|
this.onToolCallsUpdate = options.onToolCallsUpdate;
|
|
113
115
|
this.getPreferredEditor = options.getPreferredEditor;
|
|
116
|
+
this.onEditorClose = options.onEditorClose;
|
|
114
117
|
}
|
|
115
118
|
setStatusInternal(targetCallId, newStatus, auxiliaryData) {
|
|
116
119
|
this.toolCalls = this.toolCalls.map((currentCall) => {
|
|
@@ -123,6 +126,7 @@ export class CoreToolScheduler {
|
|
|
123
126
|
// currentCall is a non-terminal state here and should have startTime and tool.
|
|
124
127
|
const existingStartTime = currentCall.startTime;
|
|
125
128
|
const toolInstance = currentCall.tool;
|
|
129
|
+
const invocation = currentCall.invocation;
|
|
126
130
|
const existingSignal = currentCall.signal;
|
|
127
131
|
const outcome = currentCall.outcome;
|
|
128
132
|
switch (newStatus) {
|
|
@@ -133,6 +137,7 @@ export class CoreToolScheduler {
|
|
|
133
137
|
return {
|
|
134
138
|
request: currentCall.request,
|
|
135
139
|
tool: toolInstance,
|
|
140
|
+
invocation,
|
|
136
141
|
status: 'success',
|
|
137
142
|
response: auxiliaryData,
|
|
138
143
|
durationMs,
|
|
@@ -146,6 +151,7 @@ export class CoreToolScheduler {
|
|
|
146
151
|
return {
|
|
147
152
|
request: currentCall.request,
|
|
148
153
|
status: 'error',
|
|
154
|
+
tool: toolInstance,
|
|
149
155
|
response: auxiliaryData,
|
|
150
156
|
durationMs,
|
|
151
157
|
outcome,
|
|
@@ -159,6 +165,7 @@ export class CoreToolScheduler {
|
|
|
159
165
|
confirmationDetails: auxiliaryData,
|
|
160
166
|
startTime: existingStartTime,
|
|
161
167
|
outcome,
|
|
168
|
+
invocation,
|
|
162
169
|
};
|
|
163
170
|
case 'scheduled':
|
|
164
171
|
return {
|
|
@@ -167,6 +174,7 @@ export class CoreToolScheduler {
|
|
|
167
174
|
status: 'scheduled',
|
|
168
175
|
startTime: existingStartTime,
|
|
169
176
|
outcome,
|
|
177
|
+
invocation,
|
|
170
178
|
signal: existingSignal,
|
|
171
179
|
};
|
|
172
180
|
case 'cancelled': {
|
|
@@ -189,6 +197,7 @@ export class CoreToolScheduler {
|
|
|
189
197
|
return {
|
|
190
198
|
request: currentCall.request,
|
|
191
199
|
tool: toolInstance,
|
|
200
|
+
invocation,
|
|
192
201
|
status: 'cancelled',
|
|
193
202
|
response: {
|
|
194
203
|
callId: currentCall.request.callId,
|
|
@@ -216,6 +225,7 @@ export class CoreToolScheduler {
|
|
|
216
225
|
status: 'validating',
|
|
217
226
|
startTime: existingStartTime,
|
|
218
227
|
outcome,
|
|
228
|
+
invocation,
|
|
219
229
|
};
|
|
220
230
|
case 'executing':
|
|
221
231
|
return {
|
|
@@ -224,6 +234,7 @@ export class CoreToolScheduler {
|
|
|
224
234
|
status: 'executing',
|
|
225
235
|
startTime: existingStartTime,
|
|
226
236
|
outcome,
|
|
237
|
+
invocation,
|
|
227
238
|
};
|
|
228
239
|
default: {
|
|
229
240
|
const exhaustiveCheck = newStatus;
|
|
@@ -236,14 +247,42 @@ export class CoreToolScheduler {
|
|
|
236
247
|
}
|
|
237
248
|
setArgsInternal(targetCallId, args) {
|
|
238
249
|
this.toolCalls = this.toolCalls.map((call) => {
|
|
239
|
-
|
|
250
|
+
// We should never be asked to set args on an ErroredToolCall, but
|
|
251
|
+
// we guard for the case anyways.
|
|
252
|
+
if (call.request.callId !== targetCallId || call.status === 'error') {
|
|
240
253
|
return call;
|
|
254
|
+
}
|
|
255
|
+
const invocationOrError = this.buildInvocation(call.tool, args);
|
|
256
|
+
if (invocationOrError instanceof Error) {
|
|
257
|
+
const response = createErrorResponse(call.request, invocationOrError, ToolErrorType.INVALID_TOOL_PARAMS);
|
|
258
|
+
return {
|
|
259
|
+
request: { ...call.request, args: args },
|
|
260
|
+
status: 'error',
|
|
261
|
+
tool: call.tool,
|
|
262
|
+
response,
|
|
263
|
+
};
|
|
264
|
+
}
|
|
241
265
|
return {
|
|
242
266
|
...call,
|
|
243
267
|
request: { ...call.request, args: args },
|
|
268
|
+
invocation: invocationOrError,
|
|
244
269
|
};
|
|
245
270
|
});
|
|
246
271
|
}
|
|
272
|
+
isRunning() {
|
|
273
|
+
return this.toolCalls.some((call) => call.status === 'executing' || call.status === 'awaiting_approval');
|
|
274
|
+
}
|
|
275
|
+
buildInvocation(tool, args) {
|
|
276
|
+
try {
|
|
277
|
+
return tool.build(args);
|
|
278
|
+
}
|
|
279
|
+
catch (e) {
|
|
280
|
+
if (e instanceof Error) {
|
|
281
|
+
return e;
|
|
282
|
+
}
|
|
283
|
+
return new Error(String(e));
|
|
284
|
+
}
|
|
285
|
+
}
|
|
247
286
|
async schedule(request, signal) {
|
|
248
287
|
// Queue requests if we're currently processing a batch
|
|
249
288
|
const requestsToProcess = Array.isArray(request) ? request : [request];
|
|
@@ -261,6 +300,7 @@ export class CoreToolScheduler {
|
|
|
261
300
|
sessionId: typeof this.config.getSessionId === 'function'
|
|
262
301
|
? this.config.getSessionId()
|
|
263
302
|
: 'default-session',
|
|
303
|
+
interactiveMode: true, // Enable interactive mode for UI updates
|
|
264
304
|
// TODO: Add agentId when available in the request
|
|
265
305
|
};
|
|
266
306
|
const toolInstance = toolRegistry.getTool(reqInfo.name, context);
|
|
@@ -272,10 +312,21 @@ export class CoreToolScheduler {
|
|
|
272
312
|
durationMs: 0,
|
|
273
313
|
};
|
|
274
314
|
}
|
|
315
|
+
const invocationOrError = this.buildInvocation(toolInstance, reqInfo.args);
|
|
316
|
+
if (invocationOrError instanceof Error) {
|
|
317
|
+
return {
|
|
318
|
+
status: 'error',
|
|
319
|
+
request: reqInfo,
|
|
320
|
+
tool: toolInstance,
|
|
321
|
+
response: createErrorResponse(reqInfo, invocationOrError, ToolErrorType.INVALID_TOOL_PARAMS),
|
|
322
|
+
durationMs: 0,
|
|
323
|
+
};
|
|
324
|
+
}
|
|
275
325
|
return {
|
|
276
326
|
status: 'validating',
|
|
277
327
|
request: reqInfo,
|
|
278
328
|
tool: toolInstance,
|
|
329
|
+
invocation: invocationOrError,
|
|
279
330
|
startTime: Date.now(),
|
|
280
331
|
signal,
|
|
281
332
|
};
|
|
@@ -286,14 +337,31 @@ export class CoreToolScheduler {
|
|
|
286
337
|
if (toolCall.status !== 'validating') {
|
|
287
338
|
continue;
|
|
288
339
|
}
|
|
289
|
-
const { request: reqInfo,
|
|
340
|
+
const { request: reqInfo, invocation } = toolCall;
|
|
290
341
|
try {
|
|
291
342
|
if (this.config.getApprovalMode() === ApprovalMode.YOLO) {
|
|
343
|
+
this.setToolCallOutcome(reqInfo.callId, ToolConfirmationOutcome.ProceedAlways);
|
|
292
344
|
this.setStatusInternal(reqInfo.callId, 'scheduled');
|
|
293
345
|
}
|
|
294
346
|
else {
|
|
295
|
-
const confirmationDetails = await
|
|
296
|
-
if
|
|
347
|
+
const confirmationDetails = await invocation.shouldConfirmExecute(signal);
|
|
348
|
+
// Check if this command is already allowed
|
|
349
|
+
const isAlwaysAllowed = confirmationDetails &&
|
|
350
|
+
confirmationDetails.type === 'exec' &&
|
|
351
|
+
this.config.isCommandAlwaysAllowed(confirmationDetails.rootCommand);
|
|
352
|
+
if (confirmationDetails && !isAlwaysAllowed) {
|
|
353
|
+
// Allow IDE to resolve confirmation
|
|
354
|
+
if (confirmationDetails.type === 'edit' &&
|
|
355
|
+
confirmationDetails.ideConfirmation) {
|
|
356
|
+
confirmationDetails.ideConfirmation.then((resolution) => {
|
|
357
|
+
if (resolution.status === 'accepted') {
|
|
358
|
+
this.handleConfirmationResponse(reqInfo.callId, confirmationDetails.onConfirm, ToolConfirmationOutcome.ProceedOnce, signal);
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
this.handleConfirmationResponse(reqInfo.callId, confirmationDetails.onConfirm, ToolConfirmationOutcome.Cancel, signal);
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
}
|
|
297
365
|
const originalOnConfirm = confirmationDetails.onConfirm;
|
|
298
366
|
const wrappedConfirmationDetails = {
|
|
299
367
|
...confirmationDetails,
|
|
@@ -302,12 +370,21 @@ export class CoreToolScheduler {
|
|
|
302
370
|
this.setStatusInternal(reqInfo.callId, 'awaiting_approval', wrappedConfirmationDetails);
|
|
303
371
|
}
|
|
304
372
|
else {
|
|
373
|
+
// Either no confirmation needed or command is always allowed
|
|
374
|
+
this.setToolCallOutcome(reqInfo.callId, ToolConfirmationOutcome.ProceedAlways);
|
|
305
375
|
this.setStatusInternal(reqInfo.callId, 'scheduled');
|
|
306
376
|
}
|
|
307
377
|
}
|
|
308
378
|
}
|
|
309
379
|
catch (error) {
|
|
310
|
-
|
|
380
|
+
// Check if the error is due to an aborted signal
|
|
381
|
+
if (signal.aborted ||
|
|
382
|
+
(error instanceof Error && error.name === 'AbortError')) {
|
|
383
|
+
this.setStatusInternal(reqInfo.callId, 'cancelled', 'Tool call was cancelled');
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
this.setStatusInternal(reqInfo.callId, 'error', createErrorResponse(reqInfo, error instanceof Error ? error : new Error(String(error)), ToolErrorType.UNHANDLED_EXCEPTION));
|
|
387
|
+
}
|
|
311
388
|
}
|
|
312
389
|
}
|
|
313
390
|
this.attemptExecutionOfScheduledCalls(signal);
|
|
@@ -318,20 +395,20 @@ export class CoreToolScheduler {
|
|
|
318
395
|
if (toolCall && toolCall.status === 'awaiting_approval') {
|
|
319
396
|
await originalOnConfirm(outcome);
|
|
320
397
|
}
|
|
321
|
-
this.
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
}
|
|
398
|
+
this.setToolCallOutcome(callId, outcome);
|
|
399
|
+
// Store the command if user selected "always allow"
|
|
400
|
+
if (outcome === ToolConfirmationOutcome.ProceedAlways &&
|
|
401
|
+
toolCall &&
|
|
402
|
+
toolCall.status === 'awaiting_approval' &&
|
|
403
|
+
toolCall.confirmationDetails.type === 'exec') {
|
|
404
|
+
this.config.addAlwaysAllowedCommand(toolCall.confirmationDetails.rootCommand);
|
|
405
|
+
}
|
|
329
406
|
if (outcome === ToolConfirmationOutcome.Cancel || signal.aborted) {
|
|
330
407
|
this.setStatusInternal(callId, 'cancelled', 'User did not allow tool call');
|
|
331
408
|
}
|
|
332
409
|
else if (outcome === ToolConfirmationOutcome.ModifyWithEditor) {
|
|
333
410
|
const waitingToolCall = toolCall;
|
|
334
|
-
if (
|
|
411
|
+
if (isModifiableDeclarativeTool(waitingToolCall.tool)) {
|
|
335
412
|
const modifyContext = waitingToolCall.tool.getModifyContext(signal);
|
|
336
413
|
const editorType = this.getPreferredEditor();
|
|
337
414
|
if (!editorType) {
|
|
@@ -341,7 +418,7 @@ export class CoreToolScheduler {
|
|
|
341
418
|
...waitingToolCall.confirmationDetails,
|
|
342
419
|
isModifying: true,
|
|
343
420
|
});
|
|
344
|
-
const { updatedParams, updatedDiff } = await modifyWithEditor(waitingToolCall.request.args, modifyContext, editorType, signal);
|
|
421
|
+
const { updatedParams, updatedDiff } = await modifyWithEditor(waitingToolCall.request.args, modifyContext, editorType, signal, this.onEditorClose);
|
|
345
422
|
this.setArgsInternal(callId, updatedParams);
|
|
346
423
|
this.setStatusInternal(callId, 'awaiting_approval', {
|
|
347
424
|
...waitingToolCall.confirmationDetails,
|
|
@@ -367,7 +444,7 @@ export class CoreToolScheduler {
|
|
|
367
444
|
*/
|
|
368
445
|
async _applyInlineModify(toolCall, payload, signal) {
|
|
369
446
|
if (toolCall.confirmationDetails.type !== 'edit' ||
|
|
370
|
-
!
|
|
447
|
+
!isModifiableDeclarativeTool(toolCall.tool)) {
|
|
371
448
|
return;
|
|
372
449
|
}
|
|
373
450
|
const modifyContext = toolCall.tool.getModifyContext(signal);
|
|
@@ -398,7 +475,13 @@ export class CoreToolScheduler {
|
|
|
398
475
|
return;
|
|
399
476
|
const scheduledCall = toolCall;
|
|
400
477
|
const { callId, name: toolName } = scheduledCall.request;
|
|
478
|
+
const invocation = scheduledCall.invocation;
|
|
401
479
|
this.setStatusInternal(callId, 'executing');
|
|
480
|
+
// Start tracking the tool call execution
|
|
481
|
+
const sessionId = typeof this.config.getSessionId === 'function'
|
|
482
|
+
? this.config.getSessionId()
|
|
483
|
+
: 'default-session';
|
|
484
|
+
const toolCallId = ToolCallTrackerService.startTrackingToolCall(sessionId, toolName, scheduledCall.request.args);
|
|
402
485
|
const liveOutputCallback = scheduledCall.tool.canUpdateOutput && this.outputUpdateHandler
|
|
403
486
|
? (outputChunk) => {
|
|
404
487
|
if (this.outputUpdateHandler) {
|
|
@@ -410,13 +493,21 @@ export class CoreToolScheduler {
|
|
|
410
493
|
this.notifyToolCallsUpdate();
|
|
411
494
|
}
|
|
412
495
|
: undefined;
|
|
413
|
-
|
|
414
|
-
.execute(
|
|
496
|
+
invocation
|
|
497
|
+
.execute(signal, liveOutputCallback)
|
|
415
498
|
.then(async (toolResult) => {
|
|
416
499
|
if (signal.aborted) {
|
|
500
|
+
// Mark tool call as failed if aborted
|
|
501
|
+
if (toolCallId) {
|
|
502
|
+
ToolCallTrackerService.failToolCallTracking(sessionId, toolCallId);
|
|
503
|
+
}
|
|
417
504
|
this.setStatusInternal(callId, 'cancelled', 'User cancelled tool execution.');
|
|
418
505
|
return;
|
|
419
506
|
}
|
|
507
|
+
// Mark tool call as completed
|
|
508
|
+
if (toolCallId) {
|
|
509
|
+
await ToolCallTrackerService.completeToolCallTracking(sessionId, toolCallId);
|
|
510
|
+
}
|
|
420
511
|
if (toolResult.error === undefined) {
|
|
421
512
|
const response = convertToFunctionResponse(toolName, callId, toolResult.llmContent);
|
|
422
513
|
const successResponse = {
|
|
@@ -436,6 +527,10 @@ export class CoreToolScheduler {
|
|
|
436
527
|
}
|
|
437
528
|
})
|
|
438
529
|
.catch((executionError) => {
|
|
530
|
+
// Mark tool call as failed on error
|
|
531
|
+
if (toolCallId) {
|
|
532
|
+
ToolCallTrackerService.failToolCallTracking(sessionId, toolCallId);
|
|
533
|
+
}
|
|
439
534
|
this.setStatusInternal(callId, 'error', createErrorResponse(scheduledCall.request, executionError instanceof Error
|
|
440
535
|
? executionError
|
|
441
536
|
: new Error(String(executionError)), ToolErrorType.UNHANDLED_EXCEPTION));
|
|
@@ -486,5 +581,15 @@ export class CoreToolScheduler {
|
|
|
486
581
|
this.onToolCallsUpdate([...this.toolCalls]);
|
|
487
582
|
}
|
|
488
583
|
}
|
|
584
|
+
setToolCallOutcome(callId, outcome) {
|
|
585
|
+
this.toolCalls = this.toolCalls.map((call) => {
|
|
586
|
+
if (call.request.callId !== callId)
|
|
587
|
+
return call;
|
|
588
|
+
return {
|
|
589
|
+
...call,
|
|
590
|
+
outcome,
|
|
591
|
+
};
|
|
592
|
+
});
|
|
593
|
+
}
|
|
489
594
|
}
|
|
490
595
|
//# sourceMappingURL=coreToolScheduler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coreToolScheduler.js","sourceRoot":"","sources":["../../../src/core/coreToolScheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coreToolScheduler.js","sourceRoot":"","sources":["../../../src/core/coreToolScheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,29 +7,7 @@
|
|
|
7
7
|
import { describe, it, expect, vi } from 'vitest';
|
|
8
8
|
import { CoreToolScheduler, convertToFunctionResponse, } from './coreToolScheduler.js';
|
|
9
9
|
import { BaseTool, ToolConfirmationOutcome, Icon, ApprovalMode, } from '../index.js';
|
|
10
|
-
|
|
11
|
-
shouldConfirm = false;
|
|
12
|
-
executeFn = vi.fn();
|
|
13
|
-
constructor(name = 'mockTool') {
|
|
14
|
-
super(name, name, 'A mock tool', Icon.Hammer, {});
|
|
15
|
-
}
|
|
16
|
-
async shouldConfirmExecute(_params, _abortSignal) {
|
|
17
|
-
if (this.shouldConfirm) {
|
|
18
|
-
return {
|
|
19
|
-
type: 'exec',
|
|
20
|
-
title: 'Confirm Mock Tool',
|
|
21
|
-
command: 'do_thing',
|
|
22
|
-
rootCommand: 'do_thing',
|
|
23
|
-
onConfirm: async () => { },
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
async execute(params, _abortSignal) {
|
|
29
|
-
this.executeFn(params);
|
|
30
|
-
return { llmContent: 'Tool executed', returnDisplay: 'Tool executed' };
|
|
31
|
-
}
|
|
32
|
-
}
|
|
10
|
+
import { MockTool } from '../test-utils/tools.js';
|
|
33
11
|
class MockModifiableTool extends MockTool {
|
|
34
12
|
constructor(name = 'mockModifiableTool') {
|
|
35
13
|
super(name);
|
|
@@ -43,12 +21,13 @@ class MockModifiableTool extends MockTool {
|
|
|
43
21
|
createUpdatedParams: (_oldContent, modifiedProposedContent, _originalParams) => ({ newContent: modifiedProposedContent }),
|
|
44
22
|
};
|
|
45
23
|
}
|
|
46
|
-
async shouldConfirmExecute(
|
|
24
|
+
async shouldConfirmExecute() {
|
|
47
25
|
if (this.shouldConfirm) {
|
|
48
26
|
return {
|
|
49
27
|
type: 'edit',
|
|
50
28
|
title: 'Confirm Mock Tool',
|
|
51
29
|
fileName: 'test.txt',
|
|
30
|
+
filePath: 'test.txt',
|
|
52
31
|
fileDiff: 'diff',
|
|
53
32
|
originalContent: 'originalContent',
|
|
54
33
|
newContent: 'newContent',
|
|
@@ -62,14 +41,15 @@ describe('CoreToolScheduler', () => {
|
|
|
62
41
|
it('should cancel a tool call if the signal is aborted before confirmation', async () => {
|
|
63
42
|
const mockTool = new MockTool();
|
|
64
43
|
mockTool.shouldConfirm = true;
|
|
44
|
+
const declarativeTool = mockTool;
|
|
65
45
|
const toolRegistry = {
|
|
66
|
-
getTool: () =>
|
|
46
|
+
getTool: () => declarativeTool,
|
|
67
47
|
getFunctionDeclarations: () => [],
|
|
68
48
|
tools: new Map(),
|
|
69
49
|
discovery: {},
|
|
70
50
|
registerTool: () => { },
|
|
71
|
-
getToolByName: () =>
|
|
72
|
-
getToolByDisplayName: () =>
|
|
51
|
+
getToolByName: () => declarativeTool,
|
|
52
|
+
getToolByDisplayName: () => declarativeTool,
|
|
73
53
|
getTools: () => [],
|
|
74
54
|
discoverTools: async () => { },
|
|
75
55
|
getAllTools: () => [],
|
|
@@ -90,6 +70,7 @@ describe('CoreToolScheduler', () => {
|
|
|
90
70
|
onAllToolCallsComplete,
|
|
91
71
|
onToolCallsUpdate,
|
|
92
72
|
getPreferredEditor: () => 'vscode',
|
|
73
|
+
onEditorClose: vi.fn(),
|
|
93
74
|
});
|
|
94
75
|
const abortController = new AbortController();
|
|
95
76
|
const request = {
|
|
@@ -116,14 +97,15 @@ describe('CoreToolScheduler', () => {
|
|
|
116
97
|
describe('CoreToolScheduler with payload', () => {
|
|
117
98
|
it('should update args and diff and execute tool when payload is provided', async () => {
|
|
118
99
|
const mockTool = new MockModifiableTool();
|
|
100
|
+
const declarativeTool = mockTool;
|
|
119
101
|
const toolRegistry = {
|
|
120
|
-
getTool: () =>
|
|
102
|
+
getTool: () => declarativeTool,
|
|
121
103
|
getFunctionDeclarations: () => [],
|
|
122
104
|
tools: new Map(),
|
|
123
105
|
discovery: {},
|
|
124
106
|
registerTool: () => { },
|
|
125
|
-
getToolByName: () =>
|
|
126
|
-
getToolByDisplayName: () =>
|
|
107
|
+
getToolByName: () => declarativeTool,
|
|
108
|
+
getToolByDisplayName: () => declarativeTool,
|
|
127
109
|
getTools: () => [],
|
|
128
110
|
discoverTools: async () => { },
|
|
129
111
|
getAllTools: () => [],
|
|
@@ -144,6 +126,7 @@ describe('CoreToolScheduler with payload', () => {
|
|
|
144
126
|
onAllToolCallsComplete,
|
|
145
127
|
onToolCallsUpdate,
|
|
146
128
|
getPreferredEditor: () => 'vscode',
|
|
129
|
+
onEditorClose: vi.fn(),
|
|
147
130
|
});
|
|
148
131
|
const abortController = new AbortController();
|
|
149
132
|
const request = {
|
|
@@ -154,7 +137,7 @@ describe('CoreToolScheduler with payload', () => {
|
|
|
154
137
|
prompt_id: 'prompt-id-2',
|
|
155
138
|
};
|
|
156
139
|
await scheduler.schedule([request], abortController.signal);
|
|
157
|
-
const confirmationDetails = await mockTool.shouldConfirmExecute(
|
|
140
|
+
const confirmationDetails = await mockTool.shouldConfirmExecute();
|
|
158
141
|
if (confirmationDetails) {
|
|
159
142
|
const payload = { newContent: 'final version' };
|
|
160
143
|
await scheduler.handleConfirmationResponse('1', confirmationDetails.onConfirm, ToolConfirmationOutcome.ProceedOnce, abortController.signal, payload);
|
|
@@ -358,6 +341,7 @@ describe('CoreToolScheduler edit cancellation', () => {
|
|
|
358
341
|
type: 'edit',
|
|
359
342
|
title: 'Confirm Edit',
|
|
360
343
|
fileName: 'test.txt',
|
|
344
|
+
filePath: 'test.txt',
|
|
361
345
|
fileDiff: '--- test.txt\n+++ test.txt\n@@ -1,1 +1,1 @@\n-old content\n+new content',
|
|
362
346
|
originalContent: 'old content',
|
|
363
347
|
newContent: 'new content',
|
|
@@ -372,14 +356,15 @@ describe('CoreToolScheduler edit cancellation', () => {
|
|
|
372
356
|
}
|
|
373
357
|
}
|
|
374
358
|
const mockEditTool = new MockEditTool();
|
|
359
|
+
const declarativeTool = mockEditTool;
|
|
375
360
|
const toolRegistry = {
|
|
376
|
-
getTool: () =>
|
|
361
|
+
getTool: () => declarativeTool,
|
|
377
362
|
getFunctionDeclarations: () => [],
|
|
378
363
|
tools: new Map(),
|
|
379
364
|
discovery: {},
|
|
380
365
|
registerTool: () => { },
|
|
381
|
-
getToolByName: () =>
|
|
382
|
-
getToolByDisplayName: () =>
|
|
366
|
+
getToolByName: () => declarativeTool,
|
|
367
|
+
getToolByDisplayName: () => declarativeTool,
|
|
383
368
|
getTools: () => [],
|
|
384
369
|
discoverTools: async () => { },
|
|
385
370
|
getAllTools: () => [],
|
|
@@ -400,6 +385,7 @@ describe('CoreToolScheduler edit cancellation', () => {
|
|
|
400
385
|
onAllToolCallsComplete,
|
|
401
386
|
onToolCallsUpdate,
|
|
402
387
|
getPreferredEditor: () => 'vscode',
|
|
388
|
+
onEditorClose: vi.fn(),
|
|
403
389
|
});
|
|
404
390
|
const abortController = new AbortController();
|
|
405
391
|
const request = {
|
|
@@ -465,6 +451,7 @@ describe('CoreToolScheduler queue handling', () => {
|
|
|
465
451
|
config: {
|
|
466
452
|
getApprovalMode: () => ApprovalMode.YOLO,
|
|
467
453
|
},
|
|
454
|
+
onEditorClose: vi.fn(),
|
|
468
455
|
});
|
|
469
456
|
// Act
|
|
470
457
|
const signal1 = new AbortController().signal;
|
|
@@ -533,6 +520,7 @@ describe('CoreToolScheduler queue handling', () => {
|
|
|
533
520
|
config: {
|
|
534
521
|
getApprovalMode: () => ApprovalMode.YOLO,
|
|
535
522
|
},
|
|
523
|
+
onEditorClose: vi.fn(),
|
|
536
524
|
});
|
|
537
525
|
// Act
|
|
538
526
|
const signal = new AbortController().signal;
|
|
@@ -571,17 +559,22 @@ describe('CoreToolScheduler YOLO mode', () => {
|
|
|
571
559
|
it('should execute tool requiring confirmation directly without waiting', async () => {
|
|
572
560
|
// Arrange
|
|
573
561
|
const mockTool = new MockTool();
|
|
562
|
+
mockTool.executeFn.mockReturnValue({
|
|
563
|
+
llmContent: 'Tool executed',
|
|
564
|
+
returnDisplay: 'Tool executed',
|
|
565
|
+
});
|
|
574
566
|
// This tool would normally require confirmation.
|
|
575
567
|
mockTool.shouldConfirm = true;
|
|
568
|
+
const declarativeTool = mockTool;
|
|
576
569
|
const toolRegistry = {
|
|
577
|
-
getTool: () =>
|
|
578
|
-
getToolByName: () =>
|
|
570
|
+
getTool: () => declarativeTool,
|
|
571
|
+
getToolByName: () => declarativeTool,
|
|
579
572
|
// Other properties are not needed for this test but are included for type consistency.
|
|
580
573
|
getFunctionDeclarations: () => [],
|
|
581
574
|
tools: new Map(),
|
|
582
575
|
discovery: {},
|
|
583
576
|
registerTool: () => { },
|
|
584
|
-
getToolByDisplayName: () =>
|
|
577
|
+
getToolByDisplayName: () => declarativeTool,
|
|
585
578
|
getTools: () => [],
|
|
586
579
|
discoverTools: async () => { },
|
|
587
580
|
getAllTools: () => [],
|
|
@@ -603,6 +596,7 @@ describe('CoreToolScheduler YOLO mode', () => {
|
|
|
603
596
|
onAllToolCallsComplete,
|
|
604
597
|
onToolCallsUpdate,
|
|
605
598
|
getPreferredEditor: () => 'vscode',
|
|
599
|
+
onEditorClose: vi.fn(),
|
|
606
600
|
});
|
|
607
601
|
const abortController = new AbortController();
|
|
608
602
|
const request = {
|