@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.
Files changed (261) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/agents/codebase-investigator.d.ts +46 -0
  5. package/dist/src/agents/codebase-investigator.js +136 -0
  6. package/dist/src/agents/codebase-investigator.js.map +1 -0
  7. package/dist/src/agents/executor.d.ts +92 -0
  8. package/dist/src/agents/executor.js +624 -0
  9. package/dist/src/agents/executor.js.map +1 -0
  10. package/dist/src/agents/invocation.d.ts +45 -0
  11. package/dist/src/agents/invocation.js +114 -0
  12. package/dist/src/agents/invocation.js.map +1 -0
  13. package/dist/src/agents/registry.d.ts +38 -0
  14. package/dist/src/agents/registry.js +64 -0
  15. package/dist/src/agents/registry.js.map +1 -0
  16. package/dist/src/agents/types.d.ts +145 -0
  17. package/dist/src/agents/types.js +17 -0
  18. package/dist/src/agents/types.js.map +1 -0
  19. package/dist/src/agents/utils.d.ts +15 -0
  20. package/dist/src/agents/utils.js +27 -0
  21. package/dist/src/agents/utils.js.map +1 -0
  22. package/dist/src/auth/types.d.ts +4 -4
  23. package/dist/src/code_assist/oauth-credential-storage.d.ts +27 -0
  24. package/dist/src/code_assist/oauth-credential-storage.js +115 -0
  25. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -0
  26. package/dist/src/code_assist/oauth2.js +36 -9
  27. package/dist/src/code_assist/oauth2.js.map +1 -1
  28. package/dist/src/config/config.d.ts +72 -8
  29. package/dist/src/config/config.js +130 -23
  30. package/dist/src/config/config.js.map +1 -1
  31. package/dist/src/config/constants.d.ts +11 -0
  32. package/dist/src/config/constants.js +16 -0
  33. package/dist/src/config/constants.js.map +1 -0
  34. package/dist/src/config/storage.d.ts +1 -0
  35. package/dist/src/config/storage.js +2 -1
  36. package/dist/src/config/storage.js.map +1 -1
  37. package/dist/src/confirmation-bus/index.d.ts +2 -0
  38. package/dist/src/confirmation-bus/index.js +3 -0
  39. package/dist/src/confirmation-bus/index.js.map +1 -0
  40. package/dist/src/confirmation-bus/message-bus.d.ts +60 -0
  41. package/dist/src/confirmation-bus/message-bus.js +141 -0
  42. package/dist/src/confirmation-bus/message-bus.js.map +1 -0
  43. package/dist/src/confirmation-bus/types.d.ts +59 -0
  44. package/dist/src/confirmation-bus/types.js +10 -0
  45. package/dist/src/confirmation-bus/types.js.map +1 -0
  46. package/dist/src/core/baseLlmClient.d.ts +77 -0
  47. package/dist/src/core/baseLlmClient.js +175 -0
  48. package/dist/src/core/baseLlmClient.js.map +1 -0
  49. package/dist/src/core/client.d.ts +13 -1
  50. package/dist/src/core/client.js +98 -119
  51. package/dist/src/core/client.js.map +1 -1
  52. package/dist/src/core/coreToolScheduler.d.ts +20 -1
  53. package/dist/src/core/coreToolScheduler.js +160 -16
  54. package/dist/src/core/coreToolScheduler.js.map +1 -1
  55. package/dist/src/core/geminiChat.d.ts +8 -1
  56. package/dist/src/core/geminiChat.js +30 -21
  57. package/dist/src/core/geminiChat.js.map +1 -1
  58. package/dist/src/core/subagent.d.ts +16 -1
  59. package/dist/src/core/subagent.js +59 -3
  60. package/dist/src/core/subagent.js.map +1 -1
  61. package/dist/src/core/subagentOrchestrator.d.ts +2 -1
  62. package/dist/src/core/subagentOrchestrator.js +36 -6
  63. package/dist/src/core/subagentOrchestrator.js.map +1 -1
  64. package/dist/src/core/turn.d.ts +1 -4
  65. package/dist/src/core/turn.js +2 -12
  66. package/dist/src/core/turn.js.map +1 -1
  67. package/dist/src/ide/detect-ide.d.ts +44 -14
  68. package/dist/src/ide/detect-ide.js +35 -75
  69. package/dist/src/ide/detect-ide.js.map +1 -1
  70. package/dist/src/ide/ide-client.d.ts +5 -4
  71. package/dist/src/ide/ide-client.js +34 -25
  72. package/dist/src/ide/ide-client.js.map +1 -1
  73. package/dist/src/ide/ide-installer.d.ts +2 -2
  74. package/dist/src/ide/ide-installer.js +7 -9
  75. package/dist/src/ide/ide-installer.js.map +1 -1
  76. package/dist/src/index.d.ts +10 -2
  77. package/dist/src/index.js +12 -3
  78. package/dist/src/index.js.map +1 -1
  79. package/dist/src/mcp/oauth-provider.d.ts +5 -1
  80. package/dist/src/mcp/oauth-provider.js +56 -44
  81. package/dist/src/mcp/oauth-provider.js.map +1 -1
  82. package/dist/src/mcp/oauth-token-storage.d.ts +43 -40
  83. package/dist/src/mcp/oauth-token-storage.js +114 -44
  84. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  85. package/dist/src/mcp/oauth-utils.js +1 -0
  86. package/dist/src/mcp/oauth-utils.js.map +1 -1
  87. package/dist/src/mcp/sa-impersonation-provider.d.ts +33 -0
  88. package/dist/src/mcp/sa-impersonation-provider.js +130 -0
  89. package/dist/src/mcp/sa-impersonation-provider.js.map +1 -0
  90. package/dist/src/mcp/token-storage/hybrid-token-storage.js +1 -1
  91. package/dist/src/policy/config.d.ts +51 -0
  92. package/dist/src/policy/config.js +102 -0
  93. package/dist/src/policy/config.js.map +1 -0
  94. package/dist/src/policy/index.d.ts +5 -0
  95. package/dist/src/policy/index.js +6 -0
  96. package/dist/src/policy/index.js.map +1 -0
  97. package/dist/src/policy/policies/discovered.toml +9 -0
  98. package/dist/src/policy/policies/read-only.toml +68 -0
  99. package/dist/src/policy/policies/write.toml +69 -0
  100. package/dist/src/policy/policies/yolo.toml +8 -0
  101. package/dist/src/policy/policy-engine.d.ts +55 -0
  102. package/dist/src/policy/policy-engine.js +126 -0
  103. package/dist/src/policy/policy-engine.js.map +1 -0
  104. package/dist/src/policy/stable-stringify.d.ts +29 -0
  105. package/dist/src/policy/stable-stringify.js +111 -0
  106. package/dist/src/policy/stable-stringify.js.map +1 -0
  107. package/dist/src/policy/toml-loader.d.ts +37 -0
  108. package/dist/src/policy/toml-loader.js +183 -0
  109. package/dist/src/policy/toml-loader.js.map +1 -0
  110. package/dist/src/policy/types.d.ts +16 -0
  111. package/dist/src/policy/types.js +7 -0
  112. package/dist/src/policy/types.js.map +1 -0
  113. package/dist/src/providers/LoggingProviderWrapper.d.ts +2 -0
  114. package/dist/src/providers/LoggingProviderWrapper.js +27 -6
  115. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  116. package/dist/src/providers/ProviderManager.d.ts +18 -0
  117. package/dist/src/providers/ProviderManager.js +54 -3
  118. package/dist/src/providers/ProviderManager.js.map +1 -1
  119. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +49 -0
  120. package/dist/src/providers/anthropic/AnthropicProvider.js +468 -30
  121. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  122. package/dist/src/providers/openai/OpenAIProvider.d.ts +3 -0
  123. package/dist/src/providers/openai/OpenAIProvider.js +12 -6
  124. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  125. package/dist/src/providers/utils/localEndpoint.d.ts +39 -0
  126. package/dist/src/providers/utils/localEndpoint.js +117 -0
  127. package/dist/src/providers/utils/localEndpoint.js.map +1 -0
  128. package/dist/src/runtime/AgentRuntimeLoader.d.ts +1 -0
  129. package/dist/src/runtime/AgentRuntimeLoader.js +6 -1
  130. package/dist/src/runtime/AgentRuntimeLoader.js.map +1 -1
  131. package/dist/src/runtime/createAgentRuntimeContext.js +8 -7
  132. package/dist/src/runtime/createAgentRuntimeContext.js.map +1 -1
  133. package/dist/src/services/fileSystemService.d.ts +9 -0
  134. package/dist/src/services/fileSystemService.js +12 -1
  135. package/dist/src/services/fileSystemService.js.map +1 -1
  136. package/dist/src/services/history/HistoryService.d.ts +4 -0
  137. package/dist/src/services/history/HistoryService.js +18 -0
  138. package/dist/src/services/history/HistoryService.js.map +1 -1
  139. package/dist/src/services/history/IContent.d.ts +6 -0
  140. package/dist/src/services/history/IContent.js.map +1 -1
  141. package/dist/src/services/shellExecutionService.js +0 -6
  142. package/dist/src/services/shellExecutionService.js.map +1 -1
  143. package/dist/src/settings/types.d.ts +7 -0
  144. package/dist/src/storage/sessionTypes.d.ts +27 -0
  145. package/dist/src/storage/sessionTypes.js +10 -0
  146. package/dist/src/storage/sessionTypes.js.map +1 -0
  147. package/dist/src/telemetry/constants.d.ts +8 -0
  148. package/dist/src/telemetry/constants.js +8 -0
  149. package/dist/src/telemetry/constants.js.map +1 -1
  150. package/dist/src/telemetry/loggers.d.ts +9 -1
  151. package/dist/src/telemetry/loggers.js +154 -2
  152. package/dist/src/telemetry/loggers.js.map +1 -1
  153. package/dist/src/telemetry/metrics.d.ts +5 -0
  154. package/dist/src/telemetry/metrics.js +4 -0
  155. package/dist/src/telemetry/metrics.js.map +1 -1
  156. package/dist/src/telemetry/types.d.ts +62 -1
  157. package/dist/src/telemetry/types.js +92 -0
  158. package/dist/src/telemetry/types.js.map +1 -1
  159. package/dist/src/telemetry/uiTelemetry.d.ts +1 -1
  160. package/dist/src/telemetry/uiTelemetry.js +2 -3
  161. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  162. package/dist/src/test-utils/config.js +14 -0
  163. package/dist/src/test-utils/config.js.map +1 -1
  164. package/dist/src/test-utils/mock-tool.d.ts +8 -4
  165. package/dist/src/test-utils/mock-tool.js +35 -18
  166. package/dist/src/test-utils/mock-tool.js.map +1 -1
  167. package/dist/src/test-utils/tools.d.ts +1 -1
  168. package/dist/src/test-utils/tools.js +4 -4
  169. package/dist/src/test-utils/tools.js.map +1 -1
  170. package/dist/src/tools/edit.d.ts +3 -2
  171. package/dist/src/tools/edit.js +29 -10
  172. package/dist/src/tools/edit.js.map +1 -1
  173. package/dist/src/tools/glob.d.ts +6 -4
  174. package/dist/src/tools/glob.js +3 -3
  175. package/dist/src/tools/glob.js.map +1 -1
  176. package/dist/src/tools/grep.d.ts +3 -2
  177. package/dist/src/tools/grep.js +2 -2
  178. package/dist/src/tools/grep.js.map +1 -1
  179. package/dist/src/tools/ls.d.ts +4 -3
  180. package/dist/src/tools/ls.js +3 -3
  181. package/dist/src/tools/ls.js.map +1 -1
  182. package/dist/src/tools/mcp-client.d.ts +9 -18
  183. package/dist/src/tools/mcp-client.js +60 -102
  184. package/dist/src/tools/mcp-client.js.map +1 -1
  185. package/dist/src/tools/mcp-tool.js +7 -1
  186. package/dist/src/tools/mcp-tool.js.map +1 -1
  187. package/dist/src/tools/memoryTool.d.ts +6 -2
  188. package/dist/src/tools/memoryTool.js +14 -4
  189. package/dist/src/tools/memoryTool.js.map +1 -1
  190. package/dist/src/tools/modifiable-tool.d.ts +1 -1
  191. package/dist/src/tools/modifiable-tool.js +9 -1
  192. package/dist/src/tools/modifiable-tool.js.map +1 -1
  193. package/dist/src/tools/read-file.d.ts +3 -2
  194. package/dist/src/tools/read-file.js +2 -2
  195. package/dist/src/tools/read-file.js.map +1 -1
  196. package/dist/src/tools/read-many-files.d.ts +3 -2
  197. package/dist/src/tools/read-many-files.js +2 -2
  198. package/dist/src/tools/read-many-files.js.map +1 -1
  199. package/dist/src/tools/ripGrep.d.ts +3 -2
  200. package/dist/src/tools/ripGrep.js +2 -2
  201. package/dist/src/tools/ripGrep.js.map +1 -1
  202. package/dist/src/tools/shell.d.ts +3 -2
  203. package/dist/src/tools/shell.js +69 -9
  204. package/dist/src/tools/shell.js.map +1 -1
  205. package/dist/src/tools/smart-edit.d.ts +22 -2
  206. package/dist/src/tools/smart-edit.js +124 -12
  207. package/dist/src/tools/smart-edit.js.map +1 -1
  208. package/dist/src/tools/task.d.ts +1 -0
  209. package/dist/src/tools/task.js +33 -16
  210. package/dist/src/tools/task.js.map +1 -1
  211. package/dist/src/tools/tool-confirmation-types.d.ts +20 -0
  212. package/dist/src/tools/tool-confirmation-types.js +15 -0
  213. package/dist/src/tools/tool-confirmation-types.js.map +1 -0
  214. package/dist/src/tools/tool-error.d.ts +2 -0
  215. package/dist/src/tools/tool-error.js +2 -0
  216. package/dist/src/tools/tool-error.js.map +1 -1
  217. package/dist/src/tools/tool-registry.d.ts +8 -1
  218. package/dist/src/tools/tool-registry.js +18 -4
  219. package/dist/src/tools/tool-registry.js.map +1 -1
  220. package/dist/src/tools/tools.d.ts +52 -14
  221. package/dist/src/tools/tools.js +71 -15
  222. package/dist/src/tools/tools.js.map +1 -1
  223. package/dist/src/tools/web-fetch.d.ts +3 -2
  224. package/dist/src/tools/web-fetch.js +11 -6
  225. package/dist/src/tools/web-fetch.js.map +1 -1
  226. package/dist/src/tools/web-search-invocation.d.ts +3 -1
  227. package/dist/src/tools/web-search-invocation.js +5 -2
  228. package/dist/src/tools/web-search-invocation.js.map +1 -1
  229. package/dist/src/tools/web-search.d.ts +3 -2
  230. package/dist/src/tools/web-search.js +6 -4
  231. package/dist/src/tools/web-search.js.map +1 -1
  232. package/dist/src/tools/write-file.d.ts +3 -2
  233. package/dist/src/tools/write-file.js +11 -6
  234. package/dist/src/tools/write-file.js.map +1 -1
  235. package/dist/src/utils/bfsFileSearch.d.ts +2 -2
  236. package/dist/src/utils/editor.js +5 -3
  237. package/dist/src/utils/editor.js.map +1 -1
  238. package/dist/src/utils/getFolderStructure.d.ts +2 -2
  239. package/dist/src/utils/getFolderStructure.js +1 -1
  240. package/dist/src/utils/getFolderStructure.js.map +1 -1
  241. package/dist/src/utils/llm-edit-fixer.js +10 -1
  242. package/dist/src/utils/llm-edit-fixer.js.map +1 -1
  243. package/dist/src/utils/memoryDiscovery.d.ts +2 -1
  244. package/dist/src/utils/memoryDiscovery.js +3 -2
  245. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  246. package/dist/src/utils/memoryImportProcessor.js +13 -20
  247. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  248. package/dist/src/utils/retry.d.ts +5 -1
  249. package/dist/src/utils/retry.js +31 -16
  250. package/dist/src/utils/retry.js.map +1 -1
  251. package/dist/src/utils/schemaValidator.js +11 -1
  252. package/dist/src/utils/schemaValidator.js.map +1 -1
  253. package/dist/src/utils/shell-utils.d.ts +1 -0
  254. package/dist/src/utils/shell-utils.js +6 -2
  255. package/dist/src/utils/shell-utils.js.map +1 -1
  256. package/dist/src/utils/thoughtUtils.d.ts +21 -0
  257. package/dist/src/utils/thoughtUtils.js +39 -0
  258. package/dist/src/utils/thoughtUtils.js.map +1 -0
  259. package/dist/src/utils/tool-utils.js +2 -2
  260. package/dist/src/utils/tool-utils.js.map +1 -1
  261. 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.setToolCallOutcome(reqInfo.callId, ToolConfirmationOutcome.ProceedAlways);
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.setToolCallOutcome(reqInfo.callId, ToolConfirmationOutcome.ProceedAlways);
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
- await originalOnConfirm(outcome);
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
- const waitingToolCall = toolCall;
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
- this.setStatusInternal(callId, 'awaiting_approval', {
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
- // If the client provided new content, apply it before scheduling.
584
- if (payload?.newContent && toolCall) {
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.