@vybestack/llxprt-code-core 0.7.0-nightly.251219.3619c584b → 0.7.0-nightly.251221.60dcdf714

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 (84) hide show
  1. package/dist/src/agents/executor.js +2 -1
  2. package/dist/src/agents/executor.js.map +1 -1
  3. package/dist/src/code_assist/setup.js +4 -2
  4. package/dist/src/code_assist/setup.js.map +1 -1
  5. package/dist/src/config/config.d.ts +25 -9
  6. package/dist/src/config/config.js +29 -23
  7. package/dist/src/config/config.js.map +1 -1
  8. package/dist/src/core/client.d.ts +2 -1
  9. package/dist/src/core/client.js +58 -8
  10. package/dist/src/core/client.js.map +1 -1
  11. package/dist/src/core/contentGenerator.js +3 -1
  12. package/dist/src/core/contentGenerator.js.map +1 -1
  13. package/dist/src/core/coreToolScheduler.d.ts +8 -0
  14. package/dist/src/core/coreToolScheduler.js +116 -74
  15. package/dist/src/core/coreToolScheduler.js.map +1 -1
  16. package/dist/src/core/geminiChat.d.ts +5 -0
  17. package/dist/src/core/geminiChat.js +31 -13
  18. package/dist/src/core/geminiChat.js.map +1 -1
  19. package/dist/src/core/nonInteractiveToolExecutor.d.ts +5 -4
  20. package/dist/src/core/nonInteractiveToolExecutor.js +202 -309
  21. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  22. package/dist/src/core/subagent.js +16 -3
  23. package/dist/src/core/subagent.js.map +1 -1
  24. package/dist/src/core/toolGovernance.d.ts +17 -0
  25. package/dist/src/core/toolGovernance.js +66 -0
  26. package/dist/src/core/toolGovernance.js.map +1 -0
  27. package/dist/src/core/turn.d.ts +10 -2
  28. package/dist/src/core/turn.js +1 -0
  29. package/dist/src/core/turn.js.map +1 -1
  30. package/dist/src/ide/ide-installer.js +8 -2
  31. package/dist/src/ide/ide-installer.js.map +1 -1
  32. package/dist/src/ide/process-utils.js +78 -100
  33. package/dist/src/ide/process-utils.js.map +1 -1
  34. package/dist/src/index.d.ts +2 -0
  35. package/dist/src/index.js +2 -0
  36. package/dist/src/index.js.map +1 -1
  37. package/dist/src/policy/config.js +32 -5
  38. package/dist/src/policy/config.js.map +1 -1
  39. package/dist/src/policy/policies/read-only.toml +10 -10
  40. package/dist/src/policy/policies/write.toml +10 -5
  41. package/dist/src/services/history/ContentConverters.js +33 -5
  42. package/dist/src/services/history/ContentConverters.js.map +1 -1
  43. package/dist/src/services/history/HistoryService.d.ts +30 -1
  44. package/dist/src/services/history/HistoryService.js +335 -10
  45. package/dist/src/services/history/HistoryService.js.map +1 -1
  46. package/dist/src/services/shellExecutionService.d.ts +1 -0
  47. package/dist/src/services/shellExecutionService.js +101 -22
  48. package/dist/src/services/shellExecutionService.js.map +1 -1
  49. package/dist/src/telemetry/loggers.js +2 -2
  50. package/dist/src/telemetry/loggers.js.map +1 -1
  51. package/dist/src/telemetry/sdk.js +2 -2
  52. package/dist/src/telemetry/sdk.js.map +1 -1
  53. package/dist/src/tools/edit.js +22 -3
  54. package/dist/src/tools/edit.js.map +1 -1
  55. package/dist/src/tools/fuzzy-replacer.js +1 -1
  56. package/dist/src/tools/fuzzy-replacer.js.map +1 -1
  57. package/dist/src/tools/google-web-fetch.d.ts +8 -0
  58. package/dist/src/tools/google-web-fetch.js +65 -12
  59. package/dist/src/tools/google-web-fetch.js.map +1 -1
  60. package/dist/src/tools/google-web-search-invocation.js +2 -1
  61. package/dist/src/tools/google-web-search-invocation.js.map +1 -1
  62. package/dist/src/tools/tool-error.d.ts +21 -0
  63. package/dist/src/tools/tool-error.js +27 -0
  64. package/dist/src/tools/tool-error.js.map +1 -1
  65. package/dist/src/tools/tool-names.d.ts +40 -0
  66. package/dist/src/tools/tool-names.js +44 -0
  67. package/dist/src/tools/tool-names.js.map +1 -0
  68. package/dist/src/tools/write-file.js +9 -0
  69. package/dist/src/tools/write-file.js.map +1 -1
  70. package/dist/src/utils/editor.js +2 -1
  71. package/dist/src/utils/editor.js.map +1 -1
  72. package/dist/src/utils/errors.d.ts +6 -0
  73. package/dist/src/utils/errors.js +10 -0
  74. package/dist/src/utils/errors.js.map +1 -1
  75. package/dist/src/utils/llm-edit-fixer.js +3 -3
  76. package/dist/src/utils/output-format.d.ts +24 -0
  77. package/dist/src/utils/output-format.js +34 -0
  78. package/dist/src/utils/output-format.js.map +1 -0
  79. package/dist/src/utils/systemEncoding.js +5 -1
  80. package/dist/src/utils/systemEncoding.js.map +1 -1
  81. package/package.json +1 -1
  82. package/dist/src/tools/smart-edit.d.ts +0 -93
  83. package/dist/src/tools/smart-edit.js +0 -718
  84. package/dist/src/tools/smart-edit.js.map +0 -1
@@ -3,50 +3,17 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { logToolCall, ToolErrorType, DEFAULT_AGENT_ID, } from '../index.js';
7
- import { DiscoveredMCPTool } from '../tools/mcp-tool.js';
8
- import { convertToFunctionResponse } from './coreToolScheduler.js';
9
- import { ToolCallDecision } from '../telemetry/types.js';
6
+ import { ToolErrorType, DEFAULT_AGENT_ID, } from '../index.js';
7
+ import { ApprovalMode } from '../config/config.js';
8
+ import { MessageBus } from '../confirmation-bus/message-bus.js';
9
+ import { PolicyEngine } from '../policy/policy-engine.js';
10
+ import { PolicyDecision } from '../policy/types.js';
11
+ import { CoreToolScheduler, } from './coreToolScheduler.js';
10
12
  import { EmojiFilter } from '../filters/EmojiFilter.js';
11
- import { DebugLogger } from '../debug/index.js';
12
13
  /**
13
14
  * Global emoji filter instance for reuse across tool calls
14
15
  */
15
16
  let emojiFilter = null;
16
- const logger = new DebugLogger('llxprt:tool-executor');
17
- function buildToolGovernance(config) {
18
- const ephemerals = typeof config.getEphemeralSettings === 'function'
19
- ? config.getEphemeralSettings() || {}
20
- : {};
21
- const allowedRaw = Array.isArray(ephemerals['tools.allowed'])
22
- ? ephemerals['tools.allowed']
23
- : [];
24
- const disabledRaw = Array.isArray(ephemerals['tools.disabled'])
25
- ? ephemerals['tools.disabled']
26
- : Array.isArray(ephemerals['disabled-tools'])
27
- ? ephemerals['disabled-tools']
28
- : [];
29
- const excludedRaw = config.getExcludeTools?.() ?? [];
30
- const normalize = (name) => name.trim().toLowerCase();
31
- return {
32
- allowed: new Set(allowedRaw.map(normalize)),
33
- disabled: new Set(disabledRaw.map(normalize)),
34
- excluded: new Set(excludedRaw.map(normalize)),
35
- };
36
- }
37
- function isToolBlocked(toolName, governance) {
38
- const canonical = toolName.trim().toLowerCase();
39
- if (governance.excluded.has(canonical)) {
40
- return true;
41
- }
42
- if (governance.disabled.has(canonical)) {
43
- return true;
44
- }
45
- if (governance.allowed.size > 0 && !governance.allowed.has(canonical)) {
46
- return true;
47
- }
48
- return false;
49
- }
50
17
  /**
51
18
  * Gets or creates the emoji filter instance based on current configuration
52
19
  * Always checks current configuration to ensure filter is up-to-date
@@ -73,7 +40,8 @@ function filterFileModificationArgs(filter, toolName, args) {
73
40
  // Only filter the content being written to files
74
41
  if (toolName === 'edit_file' ||
75
42
  toolName === 'edit' ||
76
- toolName === 'replace') {
43
+ toolName === 'replace' ||
44
+ toolName === 'replace_all') {
77
45
  const oldString = args?.old_string;
78
46
  const newString = args?.new_string;
79
47
  // CRITICAL: Never filter old_string - it must match exactly what's in the file
@@ -124,299 +92,224 @@ function filterFileModificationArgs(filter, toolName, args) {
124
92
  return filter.filterToolArgs(args);
125
93
  }
126
94
  export async function executeToolCall(config, toolCallRequest, abortSignal) {
95
+ const startTime = Date.now();
127
96
  const agentId = toolCallRequest.agentId ?? DEFAULT_AGENT_ID;
128
97
  toolCallRequest.agentId = agentId;
129
- const toolRegistry = config.getToolRegistry();
130
- const governance = buildToolGovernance(config);
131
- const startTime = Date.now();
132
- const telemetryConfig = {
133
- getSessionId: () => config.getSessionId(),
134
- getTelemetryLogPromptsEnabled: () => config.getTelemetryLogPromptsEnabled(),
135
- };
136
- if (isToolBlocked(toolCallRequest.name, governance)) {
137
- const error = new Error(`Tool "${toolCallRequest.name}" is disabled in the current profile.`);
138
- const durationMs = Date.now() - startTime;
139
- logToolCall(telemetryConfig, {
140
- 'event.name': 'tool_call',
141
- 'event.timestamp': new Date().toISOString(),
142
- function_name: toolCallRequest.name,
143
- function_args: toolCallRequest.args,
144
- duration_ms: durationMs,
145
- success: false,
146
- error: error.message,
147
- prompt_id: toolCallRequest.prompt_id,
148
- tool_type: 'native',
149
- agent_id: agentId,
150
- });
151
- return {
152
- callId: toolCallRequest.callId,
153
- error,
154
- errorType: ToolErrorType.TOOL_DISABLED,
155
- resultDisplay: error.message,
156
- responseParts: [
157
- {
158
- functionCall: {
159
- id: toolCallRequest.callId,
160
- name: toolCallRequest.name,
161
- args: toolCallRequest.args,
162
- },
163
- },
164
- {
165
- functionResponse: {
166
- id: toolCallRequest.callId,
167
- name: toolCallRequest.name,
168
- response: { error: error.message },
169
- },
170
- },
171
- ],
172
- agentId,
173
- };
174
- }
175
- const tool = toolRegistry.getTool(toolCallRequest.name);
176
- if (!tool) {
177
- const error = new Error(`Tool "${toolCallRequest.name}" not found in registry.`);
178
- const durationMs = Date.now() - startTime;
179
- logToolCall(telemetryConfig, {
180
- 'event.name': 'tool_call',
181
- 'event.timestamp': new Date().toISOString(),
182
- function_name: toolCallRequest.name,
183
- function_args: toolCallRequest.args,
184
- duration_ms: durationMs,
185
- success: false,
186
- error: error.message,
187
- prompt_id: toolCallRequest.prompt_id,
188
- tool_type: 'native',
189
- agent_id: agentId,
190
- });
191
- // Ensure the response structure matches what the API expects for an error
192
- // Include both tool call and error response
193
- return {
194
- callId: toolCallRequest.callId,
195
- responseParts: [
196
- // Tool call
197
- {
198
- functionCall: {
199
- id: toolCallRequest.callId,
200
- name: toolCallRequest.name,
201
- args: toolCallRequest.args,
202
- },
203
- },
204
- // Error response
205
- {
206
- functionResponse: {
207
- id: toolCallRequest.callId,
208
- name: toolCallRequest.name,
209
- response: { error: error.message },
210
- },
211
- },
212
- ],
213
- resultDisplay: error.message,
214
- error,
215
- errorType: ToolErrorType.TOOL_NOT_REGISTERED,
216
- agentId,
217
- };
98
+ const internalAbortController = new AbortController();
99
+ if (abortSignal) {
100
+ if (abortSignal.aborted) {
101
+ internalAbortController.abort();
102
+ }
103
+ else {
104
+ abortSignal.addEventListener('abort', () => internalAbortController.abort(), { once: true });
105
+ }
218
106
  }
107
+ const filter = getOrCreateFilter(config);
108
+ let filteredRequest = toolCallRequest;
109
+ let systemFeedback;
219
110
  try {
220
- // Get emoji filter instance
221
- const filter = getOrCreateFilter(config);
222
- // Check if this is a search tool that should bypass filtering
223
- const isSearchTool = [
224
- 'shell',
225
- 'bash',
226
- 'exec',
227
- 'run_shell_command',
228
- 'grep',
229
- 'search_file_content',
230
- 'glob',
231
- 'find',
232
- 'ls',
233
- 'list_directory',
234
- 'read_file',
235
- 'read_many_files',
236
- ].includes(toolCallRequest.name);
237
- let filteredArgs = toolCallRequest.args;
238
- let systemFeedback;
239
- // Search tools need unfiltered access for finding emojis
240
- if (!isSearchTool) {
241
- // Check if this is a file modification tool
242
- const isFileModTool = [
243
- 'edit_file',
244
- 'edit',
245
- 'write_file',
246
- 'create_file',
247
- 'replace',
248
- 'replace_all',
249
- ].includes(toolCallRequest.name);
250
- // Filter tool arguments
251
- let filterResult;
252
- if (isFileModTool) {
253
- filterResult = filterFileModificationArgs(filter, toolCallRequest.name, toolCallRequest.args);
254
- }
255
- else {
256
- filterResult = filter.filterToolArgs(toolCallRequest.args);
111
+ const filtered = applyEmojiFiltering(filter, toolCallRequest);
112
+ filteredRequest = filtered.filteredRequest;
113
+ systemFeedback = filtered.systemFeedback;
114
+ }
115
+ catch (e) {
116
+ return createErrorCompletedToolCall(toolCallRequest, e instanceof Error ? e : new Error(String(e)), ToolErrorType.INVALID_TOOL_PARAMS, Date.now() - startTime);
117
+ }
118
+ const schedulerConfig = createSchedulerConfigForNonInteractive(config);
119
+ let completionResolver = null;
120
+ const completionPromise = new Promise((resolve) => {
121
+ completionResolver = resolve;
122
+ });
123
+ let awaitingApprovalResolver = null;
124
+ const awaitingApprovalPromise = new Promise((resolve) => {
125
+ awaitingApprovalResolver = resolve;
126
+ });
127
+ const scheduler = new CoreToolScheduler({
128
+ config: schedulerConfig,
129
+ toolContextInteractiveMode: false,
130
+ getPreferredEditor: () => undefined,
131
+ onEditorClose: () => { },
132
+ onAllToolCallsComplete: async (completedToolCalls) => {
133
+ completionResolver?.(completedToolCalls);
134
+ },
135
+ onToolCallsUpdate: (toolCalls) => {
136
+ try {
137
+ const awaiting = toolCalls.find((call) => call.status === 'awaiting_approval');
138
+ if (awaiting && awaitingApprovalResolver) {
139
+ awaitingApprovalResolver(awaiting);
140
+ awaitingApprovalResolver = null;
141
+ }
257
142
  }
258
- // Handle blocking in error mode
259
- if (filterResult.blocked) {
260
- const durationMs = Date.now() - startTime;
261
- logToolCall(telemetryConfig, {
262
- 'event.name': 'tool_call',
263
- 'event.timestamp': new Date().toISOString(),
264
- function_name: toolCallRequest.name,
265
- function_args: toolCallRequest.args,
266
- duration_ms: durationMs,
267
- success: false,
268
- error: filterResult.error,
269
- prompt_id: toolCallRequest.prompt_id,
270
- tool_type: typeof tool !== 'undefined' && tool instanceof DiscoveredMCPTool
271
- ? 'mcp'
272
- : 'native',
273
- agent_id: agentId,
274
- });
275
- return {
276
- callId: toolCallRequest.callId,
277
- responseParts: [
278
- // Tool call
279
- {
280
- functionCall: {
281
- id: toolCallRequest.callId,
282
- name: toolCallRequest.name,
283
- args: toolCallRequest.args,
284
- },
285
- },
286
- // Error response
287
- {
288
- functionResponse: {
289
- id: toolCallRequest.callId,
290
- name: toolCallRequest.name,
291
- response: { error: filterResult.error },
292
- },
293
- },
294
- ],
295
- resultDisplay: filterResult.error || 'Tool execution blocked',
296
- error: new Error(filterResult.error || 'Tool execution blocked'),
297
- errorType: ToolErrorType.INVALID_TOOL_PARAMS,
298
- agentId,
299
- };
143
+ catch {
144
+ // Callback must be non-throwing.
300
145
  }
301
- // Use filtered arguments
302
- filteredArgs = filterResult.filtered;
303
- systemFeedback = filterResult.systemFeedback;
146
+ },
147
+ });
148
+ try {
149
+ const effectiveSignal = internalAbortController.signal;
150
+ await scheduler.schedule([filteredRequest], effectiveSignal);
151
+ const raceResult = await Promise.race([
152
+ completionPromise.then((calls) => ({ kind: 'complete', calls })),
153
+ awaitingApprovalPromise.then((call) => ({
154
+ kind: 'awaiting',
155
+ call,
156
+ })),
157
+ ]);
158
+ if (raceResult.kind === 'awaiting') {
159
+ internalAbortController.abort();
160
+ scheduler.cancelAll();
161
+ return createErrorCompletedToolCall(toolCallRequest, new Error('Non-interactive tool execution reached awaiting_approval; treat as policy denial (no user interaction is possible).'), ToolErrorType.POLICY_VIOLATION, Date.now() - startTime);
304
162
  }
305
- // Directly execute without confirmation or live output handling
306
- const effectiveAbortSignal = abortSignal ?? new AbortController().signal;
307
- const toolResult = await tool.buildAndExecute(filteredArgs, effectiveAbortSignal);
308
- const tool_output = toolResult.llmContent;
309
- const tool_display = toolResult.returnDisplay;
310
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
311
- let metadata = {};
312
- if (toolResult.error === undefined &&
313
- typeof tool_display === 'object' &&
314
- tool_display !== null &&
315
- 'diffStat' in tool_display) {
316
- const diffStat = tool_display.diffStat;
317
- if (diffStat) {
318
- metadata = {
319
- ai_added_lines: diffStat.ai_added_lines,
320
- ai_removed_lines: diffStat.ai_removed_lines,
321
- user_added_lines: diffStat.user_added_lines,
322
- user_removed_lines: diffStat.user_removed_lines,
323
- };
324
- }
163
+ const completedCalls = raceResult.calls;
164
+ if (completedCalls.length !== 1) {
165
+ throw new Error('Non-interactive executor expects exactly one tool call');
325
166
  }
326
- const durationMs = Date.now() - startTime;
327
- logToolCall(telemetryConfig, {
328
- 'event.name': 'tool_call',
329
- 'event.timestamp': new Date().toISOString(),
330
- function_name: toolCallRequest.name,
331
- function_args: toolCallRequest.args,
332
- duration_ms: durationMs,
333
- success: toolResult.error === undefined,
334
- error: toolResult.error === undefined ? undefined : toolResult.error.message,
335
- error_type: toolResult.error === undefined ? undefined : toolResult.error.type,
336
- prompt_id: toolCallRequest.prompt_id,
337
- metadata,
338
- decision: ToolCallDecision.AUTO_ACCEPT,
339
- tool_type: typeof tool !== 'undefined' && tool instanceof DiscoveredMCPTool
340
- ? 'mcp'
341
- : 'native',
342
- agent_id: agentId,
343
- });
344
- // Add system feedback for warn mode if emojis were detected and filtered
345
- let finalLlmContent = tool_output;
167
+ const completed = completedCalls[0];
346
168
  if (systemFeedback) {
347
- finalLlmContent = `${tool_output}\n\n<system-reminder>\n${systemFeedback}\n</system-reminder>`;
169
+ appendSystemFeedbackToResponse(completed.response, systemFeedback);
348
170
  }
349
- const finalResponse = convertToFunctionResponse(toolCallRequest.name, toolCallRequest.callId, finalLlmContent, config);
350
- // Return BOTH the tool call and response as an array
351
- // This ensures they're always paired and added to history atomically
352
- const responseParts = [
353
- // First, the tool call from the model
354
- {
355
- functionCall: {
356
- id: toolCallRequest.callId,
357
- name: toolCallRequest.name,
358
- args: toolCallRequest.args,
359
- },
360
- },
361
- // Then, spread the tool response(s) since convertToFunctionResponse returns Part[]
362
- ...finalResponse,
363
- ];
364
- logger.debug(() => `Returning paired tool call and response for ${toolCallRequest.name} (${toolCallRequest.callId})`);
365
- return {
366
- callId: toolCallRequest.callId,
367
- responseParts,
368
- resultDisplay: tool_display,
369
- error: toolResult.error === undefined
370
- ? undefined
371
- : new Error(toolResult.error.message),
372
- errorType: toolResult.error === undefined ? undefined : toolResult.error.type,
373
- agentId,
374
- };
171
+ if (!completed.response.agentId) {
172
+ completed.response.agentId = agentId;
173
+ }
174
+ return completed;
375
175
  }
376
176
  catch (e) {
377
- const error = e instanceof Error ? e : new Error(String(e));
378
- const durationMs = Date.now() - startTime;
379
- logToolCall(telemetryConfig, {
380
- 'event.name': 'tool_call',
381
- 'event.timestamp': new Date().toISOString(),
382
- function_name: toolCallRequest.name,
383
- function_args: toolCallRequest.args,
384
- duration_ms: durationMs,
385
- success: false,
386
- error: error.message,
387
- error_type: ToolErrorType.UNHANDLED_EXCEPTION,
388
- prompt_id: toolCallRequest.prompt_id,
389
- decision: ToolCallDecision.AUTO_ACCEPT,
390
- tool_type: typeof tool !== 'undefined' && tool instanceof DiscoveredMCPTool
391
- ? 'mcp'
392
- : 'native',
393
- agent_id: agentId,
177
+ return createErrorCompletedToolCall(toolCallRequest, e instanceof Error ? e : new Error(String(e)), ToolErrorType.UNHANDLED_EXCEPTION, Date.now() - startTime);
178
+ }
179
+ finally {
180
+ if (internalAbortController.signal.aborted) {
181
+ scheduler.cancelAll();
182
+ }
183
+ scheduler.dispose();
184
+ }
185
+ }
186
+ function applyEmojiFiltering(filter, request) {
187
+ const isSearchTool = [
188
+ 'shell',
189
+ 'bash',
190
+ 'exec',
191
+ 'run_shell_command',
192
+ 'grep',
193
+ 'search_file_content',
194
+ 'glob',
195
+ 'find',
196
+ 'ls',
197
+ 'list_directory',
198
+ 'read_file',
199
+ 'read_many_files',
200
+ ].includes(request.name);
201
+ if (isSearchTool) {
202
+ return { filteredRequest: request };
203
+ }
204
+ const isFileModTool = [
205
+ 'edit_file',
206
+ 'edit',
207
+ 'write_file',
208
+ 'create_file',
209
+ 'replace',
210
+ 'replace_all',
211
+ ].includes(request.name);
212
+ const filterResult = isFileModTool
213
+ ? filterFileModificationArgs(filter, request.name, request.args)
214
+ : filter.filterToolArgs(request.args);
215
+ if (filterResult.blocked) {
216
+ throw new Error(filterResult.error || 'Tool execution blocked');
217
+ }
218
+ const filteredArgs = filterResult.filtered !== null && typeof filterResult.filtered === 'object'
219
+ ? filterResult.filtered
220
+ : request.args;
221
+ if (filteredArgs === request.args && !filterResult.systemFeedback) {
222
+ return { filteredRequest: request };
223
+ }
224
+ return {
225
+ filteredRequest: {
226
+ ...request,
227
+ args: filteredArgs,
228
+ },
229
+ systemFeedback: filterResult.systemFeedback,
230
+ };
231
+ }
232
+ function createNonInteractivePolicyEngine(policyEngine) {
233
+ if (!policyEngine) {
234
+ return new PolicyEngine({
235
+ rules: [],
236
+ defaultDecision: PolicyDecision.DENY,
237
+ nonInteractive: true,
394
238
  });
395
- return {
396
- callId: toolCallRequest.callId,
239
+ }
240
+ if (policyEngine.isNonInteractive()) {
241
+ return policyEngine;
242
+ }
243
+ return new PolicyEngine({
244
+ rules: [...policyEngine.getRules()],
245
+ defaultDecision: policyEngine.getDefaultDecision(),
246
+ nonInteractive: true,
247
+ });
248
+ }
249
+ function createSchedulerConfigForNonInteractive(config) {
250
+ const policyEngine = createNonInteractivePolicyEngine(config.getPolicyEngine?.());
251
+ const messageBus = config.getMessageBus?.() ?? new MessageBus(policyEngine);
252
+ return {
253
+ getToolRegistry: () => config.getToolRegistry(),
254
+ getEphemeralSettings: () => config.getEphemeralSettings(),
255
+ getEphemeralSetting: (key) => config.getEphemeralSetting(key),
256
+ getExcludeTools: () => config.getExcludeTools(),
257
+ getSessionId: () => config.getSessionId(),
258
+ getTelemetryLogPromptsEnabled: () => config.getTelemetryLogPromptsEnabled(),
259
+ getAllowedTools: () => config.getAllowedTools?.(),
260
+ getApprovalMode: () => config.getApprovalMode?.() ?? ApprovalMode.DEFAULT,
261
+ getMessageBus: () => messageBus,
262
+ getPolicyEngine: () => policyEngine,
263
+ };
264
+ }
265
+ function createErrorCompletedToolCall(request, error, errorType, durationMs) {
266
+ return {
267
+ status: 'error',
268
+ request,
269
+ response: {
270
+ callId: request.callId,
271
+ agentId: request.agentId ?? DEFAULT_AGENT_ID,
272
+ error,
273
+ errorType,
274
+ resultDisplay: error.message,
397
275
  responseParts: [
398
- // Tool call
399
276
  {
400
277
  functionCall: {
401
- id: toolCallRequest.callId,
402
- name: toolCallRequest.name,
403
- args: toolCallRequest.args,
278
+ id: request.callId,
279
+ name: request.name,
280
+ args: request.args,
404
281
  },
405
282
  },
406
- // Error response
407
283
  {
408
284
  functionResponse: {
409
- id: toolCallRequest.callId,
410
- name: toolCallRequest.name,
285
+ id: request.callId,
286
+ name: request.name,
411
287
  response: { error: error.message },
412
288
  },
413
289
  },
414
290
  ],
415
- resultDisplay: error.message,
416
- error,
417
- errorType: ToolErrorType.UNHANDLED_EXCEPTION,
418
- agentId,
419
- };
291
+ },
292
+ durationMs,
293
+ };
294
+ }
295
+ function appendSystemFeedbackToResponse(response, systemFeedback) {
296
+ const reminder = `\n\n<system-reminder>\n${systemFeedback}\n</system-reminder>`;
297
+ if (response.error) {
298
+ response.error = new Error(`${response.error.message}${reminder}`);
299
+ if (response.resultDisplay) {
300
+ response.resultDisplay = `${response.resultDisplay}${reminder}`;
301
+ }
302
+ const functionResponsePart = response.responseParts.find((part) => part.functionResponse?.response);
303
+ const responseObj = functionResponsePart?.functionResponse?.response;
304
+ if (responseObj && typeof responseObj.error === 'string') {
305
+ responseObj.error = `${responseObj.error}${reminder}`;
306
+ }
307
+ return;
308
+ }
309
+ const functionResponsePart = response.responseParts.find((part) => part.functionResponse?.response);
310
+ const responseObj = functionResponsePart?.functionResponse?.response;
311
+ if (responseObj && typeof responseObj.output === 'string') {
312
+ responseObj.output = `${responseObj.output}${reminder}`;
420
313
  }
421
314
  }
422
315
  //# sourceMappingURL=nonInteractiveToolExecutor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nonInteractiveToolExecutor.js","sourceRoot":"","sources":["../../../src/core/nonInteractiveToolExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nonInteractiveToolExecutor.js","sourceRoot":"","sources":["../../../src/core/nonInteractiveToolExecutor.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  import { reportError } from '../utils/errorReporting.js';
12
12
  import { DebugLogger } from '../debug/DebugLogger.js';
13
13
  import { ApprovalMode } from '../config/config.js';
14
- import { GeminiEventType, Turn } from './turn.js';
14
+ import { GeminiEventType, Turn, } from './turn.js';
15
15
  import { executeToolCall, } from './nonInteractiveToolExecutor.js';
16
16
  import { Type, } from '@google/genai';
17
17
  import { GeminiChat, StreamEventType } from './geminiChat.js';
@@ -797,7 +797,8 @@ export class SubAgentScope {
797
797
  else {
798
798
  // @plan PLAN-20251028-STATELESS6.P08
799
799
  // @requirement REQ-STAT6-001.1
800
- toolResponse = await executeToolCall(this.toolExecutorContext, requestInfo, abortController.signal);
800
+ const completed = await executeToolCall(this.createSchedulerConfig({ interactive: false }), requestInfo, abortController.signal);
801
+ toolResponse = completed.response;
801
802
  }
802
803
  if (toolResponse.error) {
803
804
  console.error(`Error executing tool ${functionCall.name}: ${toolResponse.resultDisplay || toolResponse.error.message}`);
@@ -837,6 +838,10 @@ export class SubAgentScope {
837
838
  ...this.toolExecutorContext.getEphemeralSettings(),
838
839
  })
839
840
  : () => this.config.getEphemeralSettings();
841
+ const getEphemeralSetting = (key) => {
842
+ const settings = getEphemeralSettings();
843
+ return settings[key];
844
+ };
840
845
  const getExcludeTools = typeof this.toolExecutorContext.getExcludeTools === 'function'
841
846
  ? () => this.toolExecutorContext.getExcludeTools()
842
847
  : () => this.config.getExcludeTools?.() ?? [];
@@ -857,6 +862,7 @@ export class SubAgentScope {
857
862
  getToolRegistry: () => this.toolExecutorContext.getToolRegistry(),
858
863
  getSessionId: () => this.toolExecutorContext.getSessionId(),
859
864
  getEphemeralSettings,
865
+ getEphemeralSetting,
860
866
  getExcludeTools,
861
867
  getTelemetryLogPromptsEnabled,
862
868
  getAllowedTools: () => allowedTools,
@@ -1004,8 +1010,15 @@ export class SubAgentScope {
1004
1010
  else if (call.status === 'cancelled') {
1005
1011
  this.logger.warn(() => `Subagent ${this.subagentId} tool '${call.request.name}' was cancelled.`);
1006
1012
  }
1013
+ // Only display resultDisplay for tools that don't stream live output.
1014
+ // Tools with canUpdateOutput=true already streamed their output via outputUpdateHandler,
1015
+ // so displaying resultDisplay here would cause duplicate output (fixes #898).
1016
+ const toolCanUpdateOutput = call.status === 'success' && call.tool?.canUpdateOutput === true;
1007
1017
  const display = call.response?.resultDisplay;
1008
- if (typeof display === 'string' && this.onMessage && display.trim()) {
1018
+ if (typeof display === 'string' &&
1019
+ this.onMessage &&
1020
+ display.trim() &&
1021
+ !toolCanUpdateOutput) {
1009
1022
  this.onMessage(display);
1010
1023
  }
1011
1024
  }