@vybestack/llxprt-code-core 0.5.0 → 0.6.0-nightly.251128.1049d5f2b
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/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/agents/codebase-investigator.d.ts +46 -0
- package/dist/src/agents/codebase-investigator.js +136 -0
- package/dist/src/agents/codebase-investigator.js.map +1 -0
- package/dist/src/agents/executor.d.ts +92 -0
- package/dist/src/agents/executor.js +624 -0
- package/dist/src/agents/executor.js.map +1 -0
- package/dist/src/agents/invocation.d.ts +45 -0
- package/dist/src/agents/invocation.js +114 -0
- package/dist/src/agents/invocation.js.map +1 -0
- package/dist/src/agents/registry.d.ts +38 -0
- package/dist/src/agents/registry.js +64 -0
- package/dist/src/agents/registry.js.map +1 -0
- package/dist/src/agents/types.d.ts +145 -0
- package/dist/src/agents/types.js +17 -0
- package/dist/src/agents/types.js.map +1 -0
- package/dist/src/agents/utils.d.ts +15 -0
- package/dist/src/agents/utils.js +27 -0
- package/dist/src/agents/utils.js.map +1 -0
- package/dist/src/auth/types.d.ts +4 -4
- package/dist/src/code_assist/oauth-credential-storage.d.ts +27 -0
- package/dist/src/code_assist/oauth-credential-storage.js +115 -0
- package/dist/src/code_assist/oauth-credential-storage.js.map +1 -0
- package/dist/src/code_assist/oauth2.js +36 -9
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/config/config.d.ts +72 -8
- package/dist/src/config/config.js +130 -23
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/constants.d.ts +11 -0
- package/dist/src/config/constants.js +16 -0
- package/dist/src/config/constants.js.map +1 -0
- package/dist/src/config/storage.d.ts +1 -0
- package/dist/src/config/storage.js +2 -1
- package/dist/src/config/storage.js.map +1 -1
- package/dist/src/confirmation-bus/index.d.ts +2 -0
- package/dist/src/confirmation-bus/index.js +3 -0
- package/dist/src/confirmation-bus/index.js.map +1 -0
- package/dist/src/confirmation-bus/message-bus.d.ts +60 -0
- package/dist/src/confirmation-bus/message-bus.js +141 -0
- package/dist/src/confirmation-bus/message-bus.js.map +1 -0
- package/dist/src/confirmation-bus/types.d.ts +59 -0
- package/dist/src/confirmation-bus/types.js +10 -0
- package/dist/src/confirmation-bus/types.js.map +1 -0
- package/dist/src/core/baseLlmClient.d.ts +77 -0
- package/dist/src/core/baseLlmClient.js +175 -0
- package/dist/src/core/baseLlmClient.js.map +1 -0
- package/dist/src/core/client.d.ts +13 -1
- package/dist/src/core/client.js +98 -119
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +20 -1
- package/dist/src/core/coreToolScheduler.js +160 -16
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +8 -1
- package/dist/src/core/geminiChat.js +30 -21
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/subagent.d.ts +16 -1
- package/dist/src/core/subagent.js +59 -3
- package/dist/src/core/subagent.js.map +1 -1
- package/dist/src/core/subagentOrchestrator.d.ts +2 -1
- package/dist/src/core/subagentOrchestrator.js +36 -6
- package/dist/src/core/subagentOrchestrator.js.map +1 -1
- package/dist/src/core/turn.d.ts +1 -4
- package/dist/src/core/turn.js +2 -12
- package/dist/src/core/turn.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +44 -14
- package/dist/src/ide/detect-ide.js +35 -75
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +5 -4
- package/dist/src/ide/ide-client.js +34 -25
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-installer.d.ts +2 -2
- package/dist/src/ide/ide-installer.js +7 -9
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/index.d.ts +10 -2
- package/dist/src/index.js +12 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/oauth-provider.d.ts +5 -1
- package/dist/src/mcp/oauth-provider.js +56 -44
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.d.ts +43 -40
- package/dist/src/mcp/oauth-token-storage.js +114 -44
- package/dist/src/mcp/oauth-token-storage.js.map +1 -1
- package/dist/src/mcp/oauth-utils.js +1 -0
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/sa-impersonation-provider.d.ts +33 -0
- package/dist/src/mcp/sa-impersonation-provider.js +130 -0
- package/dist/src/mcp/sa-impersonation-provider.js.map +1 -0
- package/dist/src/mcp/token-storage/hybrid-token-storage.js +1 -1
- package/dist/src/policy/config.d.ts +51 -0
- package/dist/src/policy/config.js +102 -0
- package/dist/src/policy/config.js.map +1 -0
- package/dist/src/policy/index.d.ts +5 -0
- package/dist/src/policy/index.js +6 -0
- package/dist/src/policy/index.js.map +1 -0
- package/dist/src/policy/policies/discovered.toml +9 -0
- package/dist/src/policy/policies/read-only.toml +68 -0
- package/dist/src/policy/policies/write.toml +69 -0
- package/dist/src/policy/policies/yolo.toml +8 -0
- package/dist/src/policy/policy-engine.d.ts +55 -0
- package/dist/src/policy/policy-engine.js +126 -0
- package/dist/src/policy/policy-engine.js.map +1 -0
- package/dist/src/policy/stable-stringify.d.ts +29 -0
- package/dist/src/policy/stable-stringify.js +111 -0
- package/dist/src/policy/stable-stringify.js.map +1 -0
- package/dist/src/policy/toml-loader.d.ts +37 -0
- package/dist/src/policy/toml-loader.js +183 -0
- package/dist/src/policy/toml-loader.js.map +1 -0
- package/dist/src/policy/types.d.ts +16 -0
- package/dist/src/policy/types.js +7 -0
- package/dist/src/policy/types.js.map +1 -0
- package/dist/src/providers/LoggingProviderWrapper.d.ts +2 -0
- package/dist/src/providers/LoggingProviderWrapper.js +27 -6
- package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
- package/dist/src/providers/ProviderManager.d.ts +18 -0
- package/dist/src/providers/ProviderManager.js +54 -3
- package/dist/src/providers/ProviderManager.js.map +1 -1
- package/dist/src/providers/anthropic/AnthropicProvider.d.ts +49 -0
- package/dist/src/providers/anthropic/AnthropicProvider.js +468 -30
- package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
- package/dist/src/providers/openai/OpenAIProvider.d.ts +3 -0
- package/dist/src/providers/openai/OpenAIProvider.js +12 -6
- package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
- package/dist/src/providers/utils/localEndpoint.d.ts +39 -0
- package/dist/src/providers/utils/localEndpoint.js +117 -0
- package/dist/src/providers/utils/localEndpoint.js.map +1 -0
- package/dist/src/runtime/AgentRuntimeLoader.d.ts +1 -0
- package/dist/src/runtime/AgentRuntimeLoader.js +6 -1
- package/dist/src/runtime/AgentRuntimeLoader.js.map +1 -1
- package/dist/src/runtime/createAgentRuntimeContext.js +8 -7
- package/dist/src/runtime/createAgentRuntimeContext.js.map +1 -1
- package/dist/src/services/fileSystemService.d.ts +9 -0
- package/dist/src/services/fileSystemService.js +12 -1
- package/dist/src/services/fileSystemService.js.map +1 -1
- package/dist/src/services/history/HistoryService.d.ts +4 -0
- package/dist/src/services/history/HistoryService.js +18 -0
- package/dist/src/services/history/HistoryService.js.map +1 -1
- package/dist/src/services/history/IContent.d.ts +6 -0
- package/dist/src/services/history/IContent.js.map +1 -1
- package/dist/src/services/shellExecutionService.js +0 -6
- package/dist/src/services/shellExecutionService.js.map +1 -1
- package/dist/src/settings/types.d.ts +7 -0
- package/dist/src/storage/sessionTypes.d.ts +27 -0
- package/dist/src/storage/sessionTypes.js +10 -0
- package/dist/src/storage/sessionTypes.js.map +1 -0
- package/dist/src/telemetry/constants.d.ts +8 -0
- package/dist/src/telemetry/constants.js +8 -0
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +9 -1
- package/dist/src/telemetry/loggers.js +154 -2
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +5 -0
- package/dist/src/telemetry/metrics.js +4 -0
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +62 -1
- package/dist/src/telemetry/types.js +92 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/telemetry/uiTelemetry.d.ts +1 -1
- package/dist/src/telemetry/uiTelemetry.js +2 -3
- package/dist/src/telemetry/uiTelemetry.js.map +1 -1
- package/dist/src/test-utils/config.js +14 -0
- package/dist/src/test-utils/config.js.map +1 -1
- package/dist/src/test-utils/mock-tool.d.ts +8 -4
- package/dist/src/test-utils/mock-tool.js +35 -18
- package/dist/src/test-utils/mock-tool.js.map +1 -1
- package/dist/src/test-utils/tools.d.ts +1 -1
- package/dist/src/test-utils/tools.js +4 -4
- package/dist/src/test-utils/tools.js.map +1 -1
- package/dist/src/tools/edit.d.ts +3 -2
- package/dist/src/tools/edit.js +29 -10
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.d.ts +6 -4
- package/dist/src/tools/glob.js +3 -3
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.d.ts +3 -2
- package/dist/src/tools/grep.js +2 -2
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/ls.d.ts +4 -3
- package/dist/src/tools/ls.js +3 -3
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/mcp-client.d.ts +9 -18
- package/dist/src/tools/mcp-client.js +60 -102
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-tool.js +7 -1
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +6 -2
- package/dist/src/tools/memoryTool.js +14 -4
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/modifiable-tool.d.ts +1 -1
- package/dist/src/tools/modifiable-tool.js +9 -1
- package/dist/src/tools/modifiable-tool.js.map +1 -1
- package/dist/src/tools/read-file.d.ts +3 -2
- package/dist/src/tools/read-file.js +2 -2
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-many-files.d.ts +3 -2
- package/dist/src/tools/read-many-files.js +2 -2
- package/dist/src/tools/read-many-files.js.map +1 -1
- package/dist/src/tools/ripGrep.d.ts +3 -2
- package/dist/src/tools/ripGrep.js +2 -2
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/shell.d.ts +3 -2
- package/dist/src/tools/shell.js +69 -9
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/smart-edit.d.ts +22 -2
- package/dist/src/tools/smart-edit.js +124 -12
- package/dist/src/tools/smart-edit.js.map +1 -1
- package/dist/src/tools/task.d.ts +1 -0
- package/dist/src/tools/task.js +33 -16
- package/dist/src/tools/task.js.map +1 -1
- package/dist/src/tools/tool-confirmation-types.d.ts +20 -0
- package/dist/src/tools/tool-confirmation-types.js +15 -0
- package/dist/src/tools/tool-confirmation-types.js.map +1 -0
- package/dist/src/tools/tool-error.d.ts +2 -0
- package/dist/src/tools/tool-error.js +2 -0
- package/dist/src/tools/tool-error.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +8 -1
- package/dist/src/tools/tool-registry.js +18 -4
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +52 -14
- package/dist/src/tools/tools.js +71 -15
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +3 -2
- package/dist/src/tools/web-fetch.js +11 -6
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-search-invocation.d.ts +3 -1
- package/dist/src/tools/web-search-invocation.js +5 -2
- package/dist/src/tools/web-search-invocation.js.map +1 -1
- package/dist/src/tools/web-search.d.ts +3 -2
- package/dist/src/tools/web-search.js +6 -4
- package/dist/src/tools/web-search.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +3 -2
- package/dist/src/tools/write-file.js +11 -6
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/utils/bfsFileSearch.d.ts +2 -2
- package/dist/src/utils/editor.js +5 -3
- package/dist/src/utils/editor.js.map +1 -1
- package/dist/src/utils/getFolderStructure.d.ts +2 -2
- package/dist/src/utils/getFolderStructure.js +1 -1
- package/dist/src/utils/getFolderStructure.js.map +1 -1
- package/dist/src/utils/llm-edit-fixer.js +10 -1
- package/dist/src/utils/llm-edit-fixer.js.map +1 -1
- package/dist/src/utils/memoryDiscovery.d.ts +2 -1
- package/dist/src/utils/memoryDiscovery.js +3 -2
- package/dist/src/utils/memoryDiscovery.js.map +1 -1
- package/dist/src/utils/memoryImportProcessor.js +13 -20
- package/dist/src/utils/memoryImportProcessor.js.map +1 -1
- package/dist/src/utils/retry.d.ts +5 -1
- package/dist/src/utils/retry.js +31 -16
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/schemaValidator.js +11 -1
- package/dist/src/utils/schemaValidator.js.map +1 -1
- package/dist/src/utils/shell-utils.d.ts +1 -0
- package/dist/src/utils/shell-utils.js +6 -2
- package/dist/src/utils/shell-utils.js.map +1 -1
- package/dist/src/utils/thoughtUtils.d.ts +21 -0
- package/dist/src/utils/thoughtUtils.js +39 -0
- package/dist/src/utils/thoughtUtils.js.map +1 -0
- package/dist/src/utils/tool-utils.js +2 -2
- package/dist/src/utils/tool-utils.js.map +1 -1
- package/package.json +6 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,6 +81,7 @@ interface CoreToolSchedulerOptions {
|
|
|
81
81
|
onToolCallsUpdate?: ToolCallsUpdateHandler;
|
|
82
82
|
getPreferredEditor: () => EditorType | undefined;
|
|
83
83
|
onEditorClose: () => void;
|
|
84
|
+
onEditorOpen?: () => void;
|
|
84
85
|
}
|
|
85
86
|
export declare class CoreToolScheduler {
|
|
86
87
|
private toolRegistry;
|
|
@@ -91,10 +92,23 @@ export declare class CoreToolScheduler {
|
|
|
91
92
|
private getPreferredEditor;
|
|
92
93
|
private config;
|
|
93
94
|
private onEditorClose;
|
|
95
|
+
private onEditorOpen?;
|
|
94
96
|
private isFinalizingToolCalls;
|
|
95
97
|
private isScheduling;
|
|
96
98
|
private requestQueue;
|
|
99
|
+
private messageBusUnsubscribe?;
|
|
100
|
+
private pendingConfirmations;
|
|
97
101
|
constructor(options: CoreToolSchedulerOptions);
|
|
102
|
+
/**
|
|
103
|
+
* Handles message bus confirmation responses.
|
|
104
|
+
* Called when PolicyEngine or other components respond via message bus.
|
|
105
|
+
*/
|
|
106
|
+
private handleMessageBusResponse;
|
|
107
|
+
/**
|
|
108
|
+
* Cleanup method to unsubscribe from message bus.
|
|
109
|
+
* Should be called when scheduler is no longer needed.
|
|
110
|
+
*/
|
|
111
|
+
dispose(): void;
|
|
98
112
|
private setStatusInternal;
|
|
99
113
|
private setArgsInternal;
|
|
100
114
|
private isRunning;
|
|
@@ -105,7 +119,12 @@ export declare class CoreToolScheduler {
|
|
|
105
119
|
private getToolSuggestion;
|
|
106
120
|
schedule(request: ToolCallRequestInfo | ToolCallRequestInfo[], signal: AbortSignal): Promise<void>;
|
|
107
121
|
private _schedule;
|
|
108
|
-
handleConfirmationResponse(callId: string, originalOnConfirm: (outcome: ToolConfirmationOutcome) => Promise<void>, outcome: ToolConfirmationOutcome, signal: AbortSignal, payload?: ToolConfirmationPayload): Promise<void>;
|
|
122
|
+
handleConfirmationResponse(callId: string, originalOnConfirm: (outcome: ToolConfirmationOutcome) => Promise<void>, outcome: ToolConfirmationOutcome, signal: AbortSignal, payload?: ToolConfirmationPayload, skipBusPublish?: boolean): Promise<void>;
|
|
123
|
+
private approveToolCall;
|
|
124
|
+
private getPolicyContextFromInvocation;
|
|
125
|
+
private evaluatePolicyDecision;
|
|
126
|
+
private handlePolicyDenial;
|
|
127
|
+
private publishConfirmationRequest;
|
|
109
128
|
/**
|
|
110
129
|
* Applies user-provided content changes to a tool call that is awaiting confirmation.
|
|
111
130
|
* This method updates the tool's arguments and refreshes the confirmation prompt with a new diff
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { ToolConfirmationOutcome, ApprovalMode, logToolCall, ToolCallEvent, ToolErrorType, } from '../index.js';
|
|
6
|
+
import { ToolConfirmationOutcome, ApprovalMode, logToolCall, ToolCallEvent, ToolErrorType, BaseToolInvocation, } from '../index.js';
|
|
7
|
+
import { randomUUID } from 'node:crypto';
|
|
8
|
+
import { MessageBusType, } from '../confirmation-bus/types.js';
|
|
9
|
+
import { PolicyDecision } from '../policy/types.js';
|
|
7
10
|
import { DEFAULT_AGENT_ID } from './turn.js';
|
|
8
11
|
import { getResponseTextFromParts } from '../utils/generateContentResponseUtilities.js';
|
|
9
12
|
import { isModifiableDeclarativeTool, modifyWithEditor, } from '../tools/modifiable-tool.js';
|
|
@@ -11,6 +14,8 @@ import * as Diff from 'diff';
|
|
|
11
14
|
import levenshtein from 'fast-levenshtein';
|
|
12
15
|
import { doesToolInvocationMatch } from '../utils/tool-utils.js';
|
|
13
16
|
import { limitOutputTokens, } from '../utils/toolOutputLimiter.js';
|
|
17
|
+
import { DebugLogger } from '../debug/index.js';
|
|
18
|
+
const toolSchedulerLogger = new DebugLogger('llxprt:core:tool-scheduler');
|
|
14
19
|
/**
|
|
15
20
|
* Formats tool output for a Gemini FunctionResponse.
|
|
16
21
|
*/
|
|
@@ -166,9 +171,12 @@ export class CoreToolScheduler {
|
|
|
166
171
|
getPreferredEditor;
|
|
167
172
|
config;
|
|
168
173
|
onEditorClose;
|
|
174
|
+
onEditorOpen;
|
|
169
175
|
isFinalizingToolCalls = false;
|
|
170
176
|
isScheduling = false;
|
|
171
177
|
requestQueue = [];
|
|
178
|
+
messageBusUnsubscribe;
|
|
179
|
+
pendingConfirmations = new Map();
|
|
172
180
|
constructor(options) {
|
|
173
181
|
this.config = options.config;
|
|
174
182
|
this.toolRegistry = options.config.getToolRegistry();
|
|
@@ -177,6 +185,52 @@ export class CoreToolScheduler {
|
|
|
177
185
|
this.onToolCallsUpdate = options.onToolCallsUpdate;
|
|
178
186
|
this.getPreferredEditor = options.getPreferredEditor;
|
|
179
187
|
this.onEditorClose = options.onEditorClose;
|
|
188
|
+
this.onEditorOpen = options.onEditorOpen;
|
|
189
|
+
const messageBus = this.config.getMessageBus();
|
|
190
|
+
this.messageBusUnsubscribe = messageBus.subscribe(MessageBusType.TOOL_CONFIRMATION_RESPONSE, this.handleMessageBusResponse.bind(this));
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Handles message bus confirmation responses.
|
|
194
|
+
* Called when PolicyEngine or other components respond via message bus.
|
|
195
|
+
*/
|
|
196
|
+
handleMessageBusResponse(response) {
|
|
197
|
+
const callId = this.pendingConfirmations.get(response.correlationId);
|
|
198
|
+
if (!callId) {
|
|
199
|
+
if (toolSchedulerLogger.enabled) {
|
|
200
|
+
toolSchedulerLogger.debug(() => `Received TOOL_CONFIRMATION_RESPONSE for unknown correlationId=${response.correlationId}`);
|
|
201
|
+
}
|
|
202
|
+
return; // Not our confirmation request
|
|
203
|
+
}
|
|
204
|
+
const waitingToolCall = this.toolCalls.find((call) => call.request.callId === callId && call.status === 'awaiting_approval');
|
|
205
|
+
if (!waitingToolCall) {
|
|
206
|
+
if (toolSchedulerLogger.enabled) {
|
|
207
|
+
toolSchedulerLogger.debug(() => `No waiting tool call found for correlationId=${response.correlationId}, callId=${callId}`);
|
|
208
|
+
}
|
|
209
|
+
this.pendingConfirmations.delete(response.correlationId);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (toolSchedulerLogger.enabled) {
|
|
213
|
+
toolSchedulerLogger.debug(() => `Processing TOOL_CONFIRMATION_RESPONSE correlationId=${response.correlationId} callId=${callId} outcome=${response.outcome ?? response.confirmed}`);
|
|
214
|
+
}
|
|
215
|
+
const derivedOutcome = response.outcome ??
|
|
216
|
+
(response.confirmed !== undefined
|
|
217
|
+
? response.confirmed
|
|
218
|
+
? ToolConfirmationOutcome.ProceedOnce
|
|
219
|
+
: ToolConfirmationOutcome.Cancel
|
|
220
|
+
: ToolConfirmationOutcome.Cancel);
|
|
221
|
+
const abortController = new AbortController();
|
|
222
|
+
void this.handleConfirmationResponse(callId, waitingToolCall.confirmationDetails.onConfirm, derivedOutcome, abortController.signal, response.payload, true);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Cleanup method to unsubscribe from message bus.
|
|
226
|
+
* Should be called when scheduler is no longer needed.
|
|
227
|
+
*/
|
|
228
|
+
dispose() {
|
|
229
|
+
if (this.messageBusUnsubscribe) {
|
|
230
|
+
this.messageBusUnsubscribe();
|
|
231
|
+
this.messageBusUnsubscribe = undefined;
|
|
232
|
+
}
|
|
233
|
+
this.pendingConfirmations.clear();
|
|
180
234
|
}
|
|
181
235
|
setStatusInternal(targetCallId, newStatus, auxiliaryData) {
|
|
182
236
|
this.toolCalls = this.toolCalls.map((currentCall) => {
|
|
@@ -502,17 +556,25 @@ export class CoreToolScheduler {
|
|
|
502
556
|
this.setStatusInternal(reqInfo.callId, 'cancelled', 'Tool call cancelled by user.');
|
|
503
557
|
continue;
|
|
504
558
|
}
|
|
559
|
+
const evaluation = this.evaluatePolicyDecision(invocation, reqInfo);
|
|
560
|
+
const policyContext = evaluation.context;
|
|
561
|
+
if (evaluation.decision === PolicyDecision.ALLOW) {
|
|
562
|
+
this.approveToolCall(reqInfo.callId);
|
|
563
|
+
continue;
|
|
564
|
+
}
|
|
565
|
+
if (evaluation.decision === PolicyDecision.DENY) {
|
|
566
|
+
this.handlePolicyDenial(reqInfo, evaluation.context);
|
|
567
|
+
continue;
|
|
568
|
+
}
|
|
505
569
|
const confirmationDetails = await invocation.shouldConfirmExecute(signal);
|
|
506
570
|
if (!confirmationDetails) {
|
|
507
|
-
this.
|
|
508
|
-
this.setStatusInternal(reqInfo.callId, 'scheduled');
|
|
571
|
+
this.approveToolCall(reqInfo.callId);
|
|
509
572
|
continue;
|
|
510
573
|
}
|
|
511
574
|
const allowedTools = this.config.getAllowedTools() || [];
|
|
512
575
|
if (this.config.getApprovalMode() === ApprovalMode.YOLO ||
|
|
513
576
|
doesToolInvocationMatch(toolCall.tool, invocation, allowedTools)) {
|
|
514
|
-
this.
|
|
515
|
-
this.setStatusInternal(reqInfo.callId, 'scheduled');
|
|
577
|
+
this.approveToolCall(reqInfo.callId);
|
|
516
578
|
}
|
|
517
579
|
else {
|
|
518
580
|
// Allow IDE to resolve confirmation
|
|
@@ -530,12 +592,22 @@ export class CoreToolScheduler {
|
|
|
530
592
|
const originalOnConfirm = confirmationDetails.onConfirm;
|
|
531
593
|
const wrappedConfirmationDetails = {
|
|
532
594
|
...confirmationDetails,
|
|
533
|
-
onConfirm: (outcome, payload) => this.handleConfirmationResponse(reqInfo.callId, originalOnConfirm, outcome, signal, payload),
|
|
595
|
+
onConfirm: (outcome, payload) => this.handleConfirmationResponse(reqInfo.callId, originalOnConfirm, outcome, signal, payload, false),
|
|
534
596
|
};
|
|
597
|
+
const correlationId = randomUUID();
|
|
598
|
+
wrappedConfirmationDetails.correlationId = correlationId;
|
|
599
|
+
this.pendingConfirmations.set(correlationId, reqInfo.callId);
|
|
600
|
+
const context = policyContext ??
|
|
601
|
+
this.getPolicyContextFromInvocation(invocation, reqInfo);
|
|
602
|
+
this.publishConfirmationRequest(correlationId, context);
|
|
535
603
|
this.setStatusInternal(reqInfo.callId, 'awaiting_approval', wrappedConfirmationDetails);
|
|
536
604
|
}
|
|
537
605
|
}
|
|
538
606
|
catch (error) {
|
|
607
|
+
if (signal.aborted) {
|
|
608
|
+
this.setStatusInternal(reqInfo.callId, 'cancelled', 'Tool call cancelled by user.');
|
|
609
|
+
continue;
|
|
610
|
+
}
|
|
539
611
|
this.setStatusInternal(reqInfo.callId, 'error', createErrorResponse(reqInfo, error instanceof Error ? error : new Error(String(error)), ToolErrorType.UNHANDLED_EXCEPTION));
|
|
540
612
|
}
|
|
541
613
|
}
|
|
@@ -546,11 +618,14 @@ export class CoreToolScheduler {
|
|
|
546
618
|
this.isScheduling = false;
|
|
547
619
|
}
|
|
548
620
|
}
|
|
549
|
-
async handleConfirmationResponse(callId, originalOnConfirm, outcome, signal, payload) {
|
|
621
|
+
async handleConfirmationResponse(callId, originalOnConfirm, outcome, signal, payload, skipBusPublish = false) {
|
|
550
622
|
const toolCall = this.toolCalls.find((c) => c.request.callId === callId && c.status === 'awaiting_approval');
|
|
623
|
+
let waitingToolCall;
|
|
551
624
|
if (toolCall && toolCall.status === 'awaiting_approval') {
|
|
552
|
-
|
|
625
|
+
waitingToolCall = toolCall;
|
|
553
626
|
}
|
|
627
|
+
const previousCorrelationId = waitingToolCall?.confirmationDetails?.correlationId;
|
|
628
|
+
await originalOnConfirm(outcome);
|
|
554
629
|
if (outcome === ToolConfirmationOutcome.ProceedAlways) {
|
|
555
630
|
await this.autoApproveCompatiblePendingTools(signal, callId);
|
|
556
631
|
}
|
|
@@ -558,8 +633,8 @@ export class CoreToolScheduler {
|
|
|
558
633
|
if (outcome === ToolConfirmationOutcome.Cancel || signal.aborted) {
|
|
559
634
|
this.setStatusInternal(callId, 'cancelled', 'User did not allow tool call');
|
|
560
635
|
}
|
|
561
|
-
else if (outcome === ToolConfirmationOutcome.ModifyWithEditor
|
|
562
|
-
|
|
636
|
+
else if (outcome === ToolConfirmationOutcome.ModifyWithEditor &&
|
|
637
|
+
waitingToolCall) {
|
|
563
638
|
if (isModifiableDeclarativeTool(waitingToolCall.tool)) {
|
|
564
639
|
const modifyContext = waitingToolCall.tool.getModifyContext(signal);
|
|
565
640
|
const editorType = this.getPreferredEditor();
|
|
@@ -570,23 +645,92 @@ export class CoreToolScheduler {
|
|
|
570
645
|
...waitingToolCall.confirmationDetails,
|
|
571
646
|
isModifying: true,
|
|
572
647
|
});
|
|
573
|
-
const { updatedParams, updatedDiff } = await modifyWithEditor(waitingToolCall.request.args, modifyContext, editorType, signal, this.onEditorClose);
|
|
648
|
+
const { updatedParams, updatedDiff } = await modifyWithEditor(waitingToolCall.request.args, modifyContext, editorType, signal, this.onEditorClose, this.onEditorOpen);
|
|
574
649
|
this.setArgsInternal(callId, updatedParams);
|
|
575
|
-
|
|
650
|
+
const newCorrelationId = randomUUID();
|
|
651
|
+
const updatedDetails = {
|
|
576
652
|
...waitingToolCall.confirmationDetails,
|
|
577
653
|
fileDiff: updatedDiff,
|
|
578
654
|
isModifying: false,
|
|
579
|
-
|
|
655
|
+
correlationId: newCorrelationId,
|
|
656
|
+
};
|
|
657
|
+
this.pendingConfirmations.set(newCorrelationId, callId);
|
|
658
|
+
const context = this.getPolicyContextFromInvocation(waitingToolCall.invocation, waitingToolCall.request);
|
|
659
|
+
this.publishConfirmationRequest(newCorrelationId, context);
|
|
660
|
+
this.setStatusInternal(callId, 'awaiting_approval', updatedDetails);
|
|
580
661
|
}
|
|
581
662
|
}
|
|
582
663
|
else {
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
await this._applyInlineModify(toolCall, payload, signal);
|
|
664
|
+
if (payload?.newContent && waitingToolCall) {
|
|
665
|
+
await this._applyInlineModify(waitingToolCall, payload, signal);
|
|
586
666
|
}
|
|
587
667
|
this.setStatusInternal(callId, 'scheduled');
|
|
588
668
|
}
|
|
589
669
|
this.attemptExecutionOfScheduledCalls(signal);
|
|
670
|
+
const correlationId = previousCorrelationId;
|
|
671
|
+
if (correlationId) {
|
|
672
|
+
this.pendingConfirmations.delete(correlationId);
|
|
673
|
+
if (!skipBusPublish) {
|
|
674
|
+
const confirmed = outcome !== ToolConfirmationOutcome.Cancel &&
|
|
675
|
+
outcome !== ToolConfirmationOutcome.ModifyWithEditor;
|
|
676
|
+
this.config.getMessageBus().publish({
|
|
677
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
678
|
+
correlationId,
|
|
679
|
+
outcome,
|
|
680
|
+
payload,
|
|
681
|
+
confirmed,
|
|
682
|
+
requiresUserConfirmation: false,
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
approveToolCall(callId) {
|
|
688
|
+
this.setToolCallOutcome(callId, ToolConfirmationOutcome.ProceedAlways);
|
|
689
|
+
this.setStatusInternal(callId, 'scheduled');
|
|
690
|
+
}
|
|
691
|
+
getPolicyContextFromInvocation(invocation, request) {
|
|
692
|
+
if (invocation instanceof BaseToolInvocation) {
|
|
693
|
+
return invocation.getPolicyContext();
|
|
694
|
+
}
|
|
695
|
+
return {
|
|
696
|
+
toolName: request.name,
|
|
697
|
+
args: request.args,
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
evaluatePolicyDecision(invocation, request) {
|
|
701
|
+
const context = this.getPolicyContextFromInvocation(invocation, request);
|
|
702
|
+
const policyEngine = this.config.getPolicyEngine();
|
|
703
|
+
const decision = policyEngine.evaluate(context.toolName, context.args, context.serverName);
|
|
704
|
+
return { decision, context };
|
|
705
|
+
}
|
|
706
|
+
handlePolicyDenial(request, context) {
|
|
707
|
+
const message = `Policy denied execution of tool "${context.toolName}".`;
|
|
708
|
+
const error = new Error(message);
|
|
709
|
+
const response = createErrorResponse(request, error, ToolErrorType.POLICY_VIOLATION);
|
|
710
|
+
this.setStatusInternal(request.callId, 'error', response);
|
|
711
|
+
const toolCall = {
|
|
712
|
+
name: context.toolName,
|
|
713
|
+
args: context.args,
|
|
714
|
+
};
|
|
715
|
+
this.config.getMessageBus().publish({
|
|
716
|
+
type: MessageBusType.TOOL_POLICY_REJECTION,
|
|
717
|
+
toolCall,
|
|
718
|
+
correlationId: randomUUID(),
|
|
719
|
+
reason: message,
|
|
720
|
+
serverName: context.serverName,
|
|
721
|
+
});
|
|
722
|
+
}
|
|
723
|
+
publishConfirmationRequest(correlationId, context) {
|
|
724
|
+
const toolCall = {
|
|
725
|
+
name: context.toolName,
|
|
726
|
+
args: context.args,
|
|
727
|
+
};
|
|
728
|
+
this.config.getMessageBus().publish({
|
|
729
|
+
type: MessageBusType.TOOL_CONFIRMATION_REQUEST,
|
|
730
|
+
toolCall,
|
|
731
|
+
correlationId,
|
|
732
|
+
serverName: context.serverName,
|
|
733
|
+
});
|
|
590
734
|
}
|
|
591
735
|
/**
|
|
592
736
|
* Applies user-provided content changes to a tool call that is awaiting confirmation.
|