@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.
Files changed (232) hide show
  1. package/README.md +1 -1
  2. package/dist/src/config/config.alwaysAllow.test.d.ts +6 -0
  3. package/dist/src/config/config.alwaysAllow.test.js +84 -0
  4. package/dist/src/config/config.alwaysAllow.test.js.map +1 -0
  5. package/dist/src/config/config.d.ts +13 -0
  6. package/dist/src/config/config.js +30 -2
  7. package/dist/src/config/config.js.map +1 -1
  8. package/dist/src/core/client.d.ts +9 -4
  9. package/dist/src/core/client.js +44 -88
  10. package/dist/src/core/client.js.map +1 -1
  11. package/dist/src/core/client.test.js +1 -1
  12. package/dist/src/core/client.test.js.map +1 -1
  13. package/dist/src/core/contentGenerator.js +1 -1
  14. package/dist/src/core/contentGenerator.js.map +1 -1
  15. package/dist/src/core/coreToolScheduler.d.ts +19 -7
  16. package/dist/src/core/coreToolScheduler.js +124 -19
  17. package/dist/src/core/coreToolScheduler.js.map +1 -1
  18. package/dist/src/core/coreToolScheduler.test.js +31 -37
  19. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  20. package/dist/src/core/geminiChat.d.ts +4 -0
  21. package/dist/src/core/geminiChat.js +41 -4
  22. package/dist/src/core/geminiChat.js.map +1 -1
  23. package/dist/src/core/nonInteractiveToolExecutor.js +4 -1
  24. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  25. package/dist/src/core/nonInteractiveToolExecutor.test.js +8 -31
  26. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  27. package/dist/src/core/subagent.d.ts +230 -0
  28. package/dist/src/core/subagent.js +453 -0
  29. package/dist/src/core/subagent.js.map +1 -0
  30. package/dist/src/core/subagent.test.d.ts +6 -0
  31. package/dist/src/core/subagent.test.js +519 -0
  32. package/dist/src/core/subagent.test.js.map +1 -0
  33. package/dist/src/hooks/tool-render-suppression-hook.d.ts +16 -0
  34. package/dist/src/hooks/tool-render-suppression-hook.js +26 -0
  35. package/dist/src/hooks/tool-render-suppression-hook.js.map +1 -0
  36. package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +6 -0
  37. package/dist/src/hooks/tool-render-suppression-hook.test.js +59 -0
  38. package/dist/src/hooks/tool-render-suppression-hook.test.js.map +1 -0
  39. package/dist/src/ide/ide-client.d.ts +21 -0
  40. package/dist/src/ide/ide-client.js +107 -1
  41. package/dist/src/ide/ide-client.js.map +1 -1
  42. package/dist/src/ide/ideContext.d.ts +127 -32
  43. package/dist/src/ide/ideContext.js +45 -0
  44. package/dist/src/ide/ideContext.js.map +1 -1
  45. package/dist/src/index.d.ts +4 -0
  46. package/dist/src/index.js +4 -0
  47. package/dist/src/index.js.map +1 -1
  48. package/dist/src/integration-tests/todo-system.test.js +38 -602
  49. package/dist/src/integration-tests/todo-system.test.js.map +1 -1
  50. package/dist/src/mcp/oauth-provider.d.ts +1 -0
  51. package/dist/src/mcp/oauth-provider.js +14 -1
  52. package/dist/src/mcp/oauth-provider.js.map +1 -1
  53. package/dist/src/mcp/oauth-provider.test.js +87 -6
  54. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  55. package/dist/src/prompts/prompt-registry.d.ts +8 -0
  56. package/dist/src/prompts/prompt-registry.js +16 -0
  57. package/dist/src/prompts/prompt-registry.js.map +1 -1
  58. package/dist/src/providers/gemini/GeminiProvider.js +5 -5
  59. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  60. package/dist/src/providers/openai/OpenAIProvider.integration.test.js +1 -1
  61. package/dist/src/providers/openai/OpenAIProvider.integration.test.js.map +1 -1
  62. package/dist/src/providers/openai/OpenAIProvider.js +8 -1
  63. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  64. package/dist/src/providers/openai/OpenAIProvider.test.js +106 -0
  65. package/dist/src/providers/openai/OpenAIProvider.test.js.map +1 -1
  66. package/dist/src/providers/types/IProviderConfig.d.ts +5 -0
  67. package/dist/src/services/loopDetectionService.js +2 -4
  68. package/dist/src/services/loopDetectionService.js.map +1 -1
  69. package/dist/src/services/shellExecutionService.js +29 -5
  70. package/dist/src/services/shellExecutionService.js.map +1 -1
  71. package/dist/src/services/shellExecutionService.test.js +8 -0
  72. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  73. package/dist/src/services/todo-context-tracker.d.ts +31 -0
  74. package/dist/src/services/todo-context-tracker.js +45 -0
  75. package/dist/src/services/todo-context-tracker.js.map +1 -0
  76. package/dist/src/services/tool-call-tracker-service.d.ts +52 -0
  77. package/dist/src/services/tool-call-tracker-service.js +170 -0
  78. package/dist/src/services/tool-call-tracker-service.js.map +1 -0
  79. package/dist/src/services/tool-call-tracker-service.test.d.ts +6 -0
  80. package/dist/src/services/tool-call-tracker-service.test.js +99 -0
  81. package/dist/src/services/tool-call-tracker-service.test.js.map +1 -0
  82. package/dist/src/telemetry/loggers.test.circular.js +7 -2
  83. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  84. package/dist/src/telemetry/loggers.test.js +5 -1
  85. package/dist/src/telemetry/loggers.test.js.map +1 -1
  86. package/dist/src/telemetry/metrics.d.ts +1 -1
  87. package/dist/src/telemetry/metrics.js.map +1 -1
  88. package/dist/src/telemetry/types.d.ts +2 -1
  89. package/dist/src/telemetry/types.js +3 -1
  90. package/dist/src/telemetry/types.js.map +1 -1
  91. package/dist/src/telemetry/uiTelemetry.d.ts +2 -0
  92. package/dist/src/telemetry/uiTelemetry.js +2 -0
  93. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  94. package/dist/src/telemetry/uiTelemetry.test.js +11 -1
  95. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  96. package/dist/src/test-utils/tools.d.ts +23 -0
  97. package/dist/src/test-utils/tools.js +41 -0
  98. package/dist/src/test-utils/tools.js.map +1 -0
  99. package/dist/src/tools/edit.d.ts +2 -2
  100. package/dist/src/tools/edit.js +18 -0
  101. package/dist/src/tools/edit.js.map +1 -1
  102. package/dist/src/tools/edit.test.js +48 -0
  103. package/dist/src/tools/edit.test.js.map +1 -1
  104. package/dist/src/tools/glob.d.ts +4 -0
  105. package/dist/src/tools/glob.js +31 -5
  106. package/dist/src/tools/glob.js.map +1 -1
  107. package/dist/src/tools/grep.d.ts +4 -0
  108. package/dist/src/tools/grep.js +22 -5
  109. package/dist/src/tools/grep.js.map +1 -1
  110. package/dist/src/tools/ls.d.ts +4 -0
  111. package/dist/src/tools/ls.js +30 -5
  112. package/dist/src/tools/ls.js.map +1 -1
  113. package/dist/src/tools/mcp-client.d.ts +10 -0
  114. package/dist/src/tools/mcp-client.js +59 -0
  115. package/dist/src/tools/mcp-client.js.map +1 -1
  116. package/dist/src/tools/mcp-client.test.js +294 -1
  117. package/dist/src/tools/mcp-client.test.js.map +1 -1
  118. package/dist/src/tools/mcp-tool.js +104 -45
  119. package/dist/src/tools/mcp-tool.js.map +1 -1
  120. package/dist/src/tools/mcp-tool.test.js +280 -2
  121. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  122. package/dist/src/tools/memoryTool.d.ts +2 -2
  123. package/dist/src/tools/memoryTool.js +1 -0
  124. package/dist/src/tools/memoryTool.js.map +1 -1
  125. package/dist/src/tools/modifiable-tool.d.ts +9 -6
  126. package/dist/src/tools/modifiable-tool.js +6 -3
  127. package/dist/src/tools/modifiable-tool.js.map +1 -1
  128. package/dist/src/tools/modifiable-tool.test.js +12 -12
  129. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  130. package/dist/src/tools/read-file.d.ts +4 -6
  131. package/dist/src/tools/read-file.js +59 -46
  132. package/dist/src/tools/read-file.js.map +1 -1
  133. package/dist/src/tools/read-file.test.js +201 -126
  134. package/dist/src/tools/read-file.test.js.map +1 -1
  135. package/dist/src/tools/read-many-files.js +8 -2
  136. package/dist/src/tools/read-many-files.js.map +1 -1
  137. package/dist/src/tools/read-many-files.test.js +16 -0
  138. package/dist/src/tools/read-many-files.test.js.map +1 -1
  139. package/dist/src/tools/shell.js +14 -2
  140. package/dist/src/tools/shell.js.map +1 -1
  141. package/dist/src/tools/todo-events.d.ts +22 -0
  142. package/dist/src/tools/todo-events.js +24 -0
  143. package/dist/src/tools/todo-events.js.map +1 -0
  144. package/dist/src/tools/todo-read.js.map +1 -1
  145. package/dist/src/tools/todo-schemas.d.ts +232 -4
  146. package/dist/src/tools/todo-schemas.js +13 -0
  147. package/dist/src/tools/todo-schemas.js.map +1 -1
  148. package/dist/src/tools/todo-schemas.test.js +190 -1
  149. package/dist/src/tools/todo-schemas.test.js.map +1 -1
  150. package/dist/src/tools/todo-store.d.ts +1 -4
  151. package/dist/src/tools/todo-store.js +41 -40
  152. package/dist/src/tools/todo-store.js.map +1 -1
  153. package/dist/src/tools/todo-store.test.js +34 -40
  154. package/dist/src/tools/todo-store.test.js.map +1 -1
  155. package/dist/src/tools/todo-write.d.ts +1 -1
  156. package/dist/src/tools/todo-write.js +84 -47
  157. package/dist/src/tools/todo-write.js.map +1 -1
  158. package/dist/src/tools/todo-write.test.js +23 -9
  159. package/dist/src/tools/todo-write.test.js.map +1 -1
  160. package/dist/src/tools/tool-context.d.ts +2 -0
  161. package/dist/src/tools/tool-registry.d.ts +13 -6
  162. package/dist/src/tools/tool-registry.js +28 -11
  163. package/dist/src/tools/tool-registry.js.map +1 -1
  164. package/dist/src/tools/tool-registry.test.js +7 -20
  165. package/dist/src/tools/tool-registry.test.js.map +1 -1
  166. package/dist/src/tools/tools.d.ts +122 -39
  167. package/dist/src/tools/tools.js +165 -10
  168. package/dist/src/tools/tools.js.map +1 -1
  169. package/dist/src/tools/tools.test.d.ts +6 -0
  170. package/dist/src/tools/tools.test.js +117 -0
  171. package/dist/src/tools/tools.test.js.map +1 -0
  172. package/dist/src/tools/write-file.d.ts +2 -2
  173. package/dist/src/tools/write-file.js +16 -0
  174. package/dist/src/tools/write-file.js.map +1 -1
  175. package/dist/src/tools/write-file.test.js +20 -3
  176. package/dist/src/tools/write-file.test.js.map +1 -1
  177. package/dist/src/types/modelParams.d.ts +2 -0
  178. package/dist/src/utils/editor.d.ts +1 -1
  179. package/dist/src/utils/editor.js +13 -5
  180. package/dist/src/utils/editor.js.map +1 -1
  181. package/dist/src/utils/editor.test.js +38 -6
  182. package/dist/src/utils/editor.test.js.map +1 -1
  183. package/dist/src/utils/environmentContext.d.ts +21 -0
  184. package/dist/src/utils/environmentContext.js +90 -0
  185. package/dist/src/utils/environmentContext.js.map +1 -0
  186. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  187. package/dist/src/utils/environmentContext.test.js +139 -0
  188. package/dist/src/utils/environmentContext.test.js.map +1 -0
  189. package/dist/src/utils/fileUtils.js +7 -14
  190. package/dist/src/utils/fileUtils.js.map +1 -1
  191. package/dist/src/utils/fileUtils.test.js +18 -4
  192. package/dist/src/utils/fileUtils.test.js.map +1 -1
  193. package/dist/src/utils/filesearch/crawlCache.d.ts +25 -0
  194. package/dist/src/utils/filesearch/crawlCache.js +57 -0
  195. package/dist/src/utils/filesearch/crawlCache.js.map +1 -0
  196. package/dist/src/utils/filesearch/crawlCache.test.d.ts +6 -0
  197. package/dist/src/utils/filesearch/crawlCache.test.js +103 -0
  198. package/dist/src/utils/filesearch/crawlCache.test.js.map +1 -0
  199. package/dist/src/utils/filesearch/fileSearch.d.ts +80 -0
  200. package/dist/src/utils/filesearch/fileSearch.js +233 -0
  201. package/dist/src/utils/filesearch/fileSearch.js.map +1 -0
  202. package/dist/src/utils/filesearch/fileSearch.test.d.ts +6 -0
  203. package/dist/src/utils/filesearch/fileSearch.test.js +654 -0
  204. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -0
  205. package/dist/src/utils/filesearch/ignore.d.ts +35 -0
  206. package/dist/src/utils/filesearch/ignore.js +81 -0
  207. package/dist/src/utils/filesearch/ignore.js.map +1 -0
  208. package/dist/src/utils/filesearch/ignore.test.d.ts +6 -0
  209. package/dist/src/utils/filesearch/ignore.test.js +57 -0
  210. package/dist/src/utils/filesearch/ignore.test.js.map +1 -0
  211. package/dist/src/utils/filesearch/result-cache.d.ts +34 -0
  212. package/dist/src/utils/filesearch/result-cache.js +61 -0
  213. package/dist/src/utils/filesearch/result-cache.js.map +1 -0
  214. package/dist/src/utils/filesearch/result-cache.test.d.ts +6 -0
  215. package/dist/src/utils/filesearch/result-cache.test.js +47 -0
  216. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -0
  217. package/dist/src/utils/memoryDiscovery.d.ts +1 -1
  218. package/dist/src/utils/memoryDiscovery.js +22 -7
  219. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  220. package/dist/src/utils/memoryDiscovery.test.js +30 -71
  221. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  222. package/dist/src/utils/shell-utils.js +14 -2
  223. package/dist/src/utils/shell-utils.js.map +1 -1
  224. package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +6 -0
  225. package/dist/src/utils/shell-utils.shellReplacement.test.js +149 -0
  226. package/dist/src/utils/shell-utils.shellReplacement.test.js.map +1 -0
  227. package/dist/src/utils/toolOutputLimiter.js +5 -1
  228. package/dist/src/utils/toolOutputLimiter.js.map +1 -1
  229. package/dist/src/utils/workspaceContext.d.ts +4 -0
  230. package/dist/src/utils/workspaceContext.js +33 -0
  231. package/dist/src/utils/workspaceContext.js.map +1 -1
  232. 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 { isModifiableTool, modifyWithEditor, } from '../tools/modifiable-tool.js';
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
- if (call.request.callId !== targetCallId)
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, tool: toolInstance } = toolCall;
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 toolInstance.shouldConfirmExecute(reqInfo.args, signal);
296
- if (confirmationDetails) {
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
- this.setStatusInternal(reqInfo.callId, 'error', createErrorResponse(reqInfo, error instanceof Error ? error : new Error(String(error)), ToolErrorType.UNHANDLED_EXCEPTION));
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.toolCalls = this.toolCalls.map((call) => {
322
- if (call.request.callId !== callId)
323
- return call;
324
- return {
325
- ...call,
326
- outcome,
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 (isModifiableTool(waitingToolCall.tool)) {
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
- !isModifiableTool(toolCall.tool)) {
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
- scheduledCall.tool
414
- .execute(scheduledCall.request.args, signal, liveOutputCallback)
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
- class MockTool extends BaseTool {
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(_params, _abortSignal) {
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: () => mockTool,
46
+ getTool: () => declarativeTool,
67
47
  getFunctionDeclarations: () => [],
68
48
  tools: new Map(),
69
49
  discovery: {},
70
50
  registerTool: () => { },
71
- getToolByName: () => mockTool,
72
- getToolByDisplayName: () => mockTool,
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: () => mockTool,
102
+ getTool: () => declarativeTool,
121
103
  getFunctionDeclarations: () => [],
122
104
  tools: new Map(),
123
105
  discovery: {},
124
106
  registerTool: () => { },
125
- getToolByName: () => mockTool,
126
- getToolByDisplayName: () => mockTool,
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({}, abortController.signal);
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: () => mockEditTool,
361
+ getTool: () => declarativeTool,
377
362
  getFunctionDeclarations: () => [],
378
363
  tools: new Map(),
379
364
  discovery: {},
380
365
  registerTool: () => { },
381
- getToolByName: () => mockEditTool,
382
- getToolByDisplayName: () => mockEditTool,
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: () => mockTool,
578
- getToolByName: () => mockTool,
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: () => mockTool,
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 = {