@openrouter/agent 0.3.2 → 0.5.0

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 (42) hide show
  1. package/esm/index.d.ts +7 -5
  2. package/esm/index.d.ts.map +1 -1
  3. package/esm/index.js +4 -2
  4. package/esm/index.js.map +1 -1
  5. package/esm/lib/conversation-state.d.ts +5 -0
  6. package/esm/lib/conversation-state.d.ts.map +1 -1
  7. package/esm/lib/conversation-state.js +17 -5
  8. package/esm/lib/conversation-state.js.map +1 -1
  9. package/esm/lib/model-result.d.ts +91 -7
  10. package/esm/lib/model-result.d.ts.map +1 -1
  11. package/esm/lib/model-result.js +483 -92
  12. package/esm/lib/model-result.js.map +1 -1
  13. package/esm/lib/next-turn-params.d.ts.map +1 -1
  14. package/esm/lib/next-turn-params.js +3 -1
  15. package/esm/lib/next-turn-params.js.map +1 -1
  16. package/esm/lib/stream-transformers.d.ts +84 -5
  17. package/esm/lib/stream-transformers.d.ts.map +1 -1
  18. package/esm/lib/stream-transformers.js +8 -15
  19. package/esm/lib/stream-transformers.js.map +1 -1
  20. package/esm/lib/stream-type-guards.d.ts +29 -0
  21. package/esm/lib/stream-type-guards.d.ts.map +1 -1
  22. package/esm/lib/stream-type-guards.js +37 -0
  23. package/esm/lib/stream-type-guards.js.map +1 -1
  24. package/esm/lib/tool-executor.d.ts +48 -9
  25. package/esm/lib/tool-executor.d.ts.map +1 -1
  26. package/esm/lib/tool-executor.js +257 -14
  27. package/esm/lib/tool-executor.js.map +1 -1
  28. package/esm/lib/tool-orchestrator.js +6 -6
  29. package/esm/lib/tool-orchestrator.js.map +1 -1
  30. package/esm/lib/tool-types.d.ts +173 -8
  31. package/esm/lib/tool-types.d.ts.map +1 -1
  32. package/esm/lib/tool-types.js +53 -2
  33. package/esm/lib/tool-types.js.map +1 -1
  34. package/esm/lib/tool.d.ts +58 -1
  35. package/esm/lib/tool.d.ts.map +1 -1
  36. package/esm/lib/tool.js +65 -0
  37. package/esm/lib/tool.js.map +1 -1
  38. package/esm/openrouter.d.ts +10 -4
  39. package/esm/openrouter.d.ts.map +1 -1
  40. package/esm/openrouter.js +41 -2
  41. package/esm/openrouter.js.map +1 -1
  42. package/package.json +9 -15
@@ -52,6 +52,43 @@ export function isImageGenerationCallOutputItem(item) {
52
52
  'type' in item &&
53
53
  item.type === 'image_generation_call');
54
54
  }
55
+ /**
56
+ * Type guard for client function-call output items — the input-side items
57
+ * we construct and send back to the API after executing a client tool.
58
+ */
59
+ export function isFunctionCallOutputItem(item) {
60
+ if (typeof item !== 'object' || item === null || !('type' in item)) {
61
+ return false;
62
+ }
63
+ return item.type === 'function_call_output';
64
+ }
65
+ const _assertClientTypesInSDK = true;
66
+ void _assertClientTypesInSDK;
67
+ /**
68
+ * Type guard: narrows a response output item to server-tool result
69
+ * variants — everything in `OutputItems` that is not `message`,
70
+ * `reasoning`, or `function_call`. Covers the SDK's per-tool output
71
+ * shapes (`OutputDatetimeItem`, `OutputWebSearchServerToolItem`,
72
+ * `OutputMcpServerToolItem`, etc.) and its forward-compat
73
+ * `Unknown<"type">` catch-all for unrecognized discriminators.
74
+ *
75
+ * The module-level `_AssertClientTypesInSDK` check fails if the SDK
76
+ * renames or drops one of the three client discriminators — blocking
77
+ * silent misclassification.
78
+ */
79
+ export function isServerToolResultItem(item) {
80
+ switch (item.type) {
81
+ case 'message':
82
+ case 'reasoning':
83
+ case 'function_call':
84
+ return false;
85
+ default:
86
+ // Every remaining variant — per-tool server output (web_search_call,
87
+ // openrouter:datetime, openrouter:mcp, etc.) and the SDK's Unknown
88
+ // catch-all — is treated as a server-tool result.
89
+ return true;
90
+ }
91
+ }
55
92
  // Content part type guards
56
93
  export function isOutputTextPart(part) {
57
94
  return typeof part === 'object' && part !== null && 'type' in part && part.type === 'output_text';
@@ -1 +1 @@
1
- {"version":3,"file":"stream-type-guards.js","sourceRoot":"","sources":["../../src/lib/stream-type-guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-type-guards.js","sourceRoot":"","sources":["../../src/lib/stream-type-guards.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import type * as models from '@openrouter/sdk/models';
1
2
  import * as z4 from 'zod/v4';
2
3
  import type { $ZodObject, $ZodShape, $ZodType } from 'zod/v4/core';
3
4
  import type { ToolContextStore } from './tool-context.js';
4
- import type { APITool, ParsedToolCall, Tool, ToolExecutionResult, TurnContext } from './tool-types.js';
5
+ import type { ClientTool, ParsedToolCall, Tool, ToolExecutionResult, TurnContext } from './tool-types.js';
5
6
  export declare const ZodError: z4.z.core.$constructor<z4.ZodError<unknown>, z4.z.core.$ZodIssue[]>;
6
7
  /**
7
8
  * Recursively remove keys prefixed with ~ from an object.
@@ -22,10 +23,12 @@ export declare function sanitizeJsonSchema(obj: unknown): unknown;
22
23
  */
23
24
  export declare function convertZodToJsonSchema(zodSchema: $ZodType): Record<string, unknown>;
24
25
  /**
25
- * Convert tools to OpenRouter API format
26
- * Accepts readonly arrays for better type compatibility
26
+ * Convert tools to OpenRouter API format. Server tools pass their SDK-shaped
27
+ * config through untouched; client tools are packaged into the function-call
28
+ * shape. Return type widens to the SDK's full request-tool union so any new
29
+ * server-tool variant added upstream flows through automatically.
27
30
  */
28
- export declare function convertToolsToAPIFormat(tools: readonly Tool[]): APITool[];
31
+ export declare function convertToolsToAPIFormat(tools: readonly Tool[]): Array<models.ResponsesRequestToolUnion>;
29
32
  /**
30
33
  * Validate tool input against Zod schema
31
34
  * @throws ZodError if validation fails
@@ -54,14 +57,28 @@ export declare function executeRegularTool(tool: Tool, toolCall: ParsedToolCall<
54
57
  */
55
58
  export declare function executeGeneratorTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>): Promise<ToolExecutionResult<Tool>>;
56
59
  /**
57
- * Execute a tool call
58
- * Automatically detects if it's a regular or generator tool
60
+ * Execute a HITL tool's `onToolCalled` hook.
61
+ *
62
+ * Returns:
63
+ * - `ToolExecutionResult` if the hook produced a value (short-circuit, send to model)
64
+ * - `null` if the hook returned `null` (pause — treat as manual tool)
65
+ * - `ToolExecutionResult` with `error` set if the hook threw
59
66
  */
60
- export declare function executeTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>): Promise<ToolExecutionResult<Tool>>;
67
+ export declare function executeHITLTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>): Promise<ToolExecutionResult<Tool> | null>;
61
68
  /**
62
- * Find a tool by name in the tools array
69
+ * Execute a tool call.
70
+ * Automatically detects if it's a regular, generator, or HITL tool.
71
+ *
72
+ * Returns `null` only for HITL tools whose `onToolCalled` returned `null`
73
+ * (signaling a manual-style pause). All other tools always return a
74
+ * `ToolExecutionResult` (with `error` set on failure).
63
75
  */
64
- export declare function findToolByName(tools: Tool[], name: string): Tool | undefined;
76
+ export declare function executeTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>): Promise<ToolExecutionResult<Tool> | null>;
77
+ /**
78
+ * Find a client tool by name in the tools array. Server tools have no
79
+ * client-side name to match against and are skipped.
80
+ */
81
+ export declare function findToolByName(tools: Tool[], name: string): ClientTool | undefined;
65
82
  /**
66
83
  * Format tool execution result as a string for sending to the model
67
84
  */
@@ -70,4 +87,26 @@ export declare function formatToolResultForModel(result: ToolExecutionResult<Too
70
87
  * Create a user-friendly error message for tool execution errors
71
88
  */
72
89
  export declare function formatToolExecutionError(error: Error, toolCall: ParsedToolCall<Tool>): string;
90
+ /**
91
+ * Walk the input items and apply HITL per-tool validation plus any
92
+ * `onResponseReceived` hooks.
93
+ *
94
+ * For each `function_call_output` item in `input`, locate the matching
95
+ * `function_call` (by `callId`) to identify the tool name. If that tool is a
96
+ * HITL tool, validate the value the model will see against the tool's
97
+ * `outputSchema`:
98
+ *
99
+ * - With `onResponseReceived`: invoke it with the parsed raw output, validate
100
+ * the hook's return against `outputSchema`, then serialize (preserving
101
+ * content-array shapes). Hook throws or validation failures are replaced
102
+ * with `{error, originalOutput}` so the model sees a tool error.
103
+ * - Without `onResponseReceived`: validate the parsed raw output against
104
+ * `outputSchema`. If it matches, leave the item untouched. Otherwise
105
+ * replace with `{error, originalOutput}` using the same shape.
106
+ *
107
+ * Items that don't match a HITL tool are left untouched.
108
+ *
109
+ * @returns a new input array when any item was rewritten, otherwise the original input.
110
+ */
111
+ export declare function applyOnResponseReceivedHooks(input: models.InputsUnion, tools: readonly Tool[] | undefined, context: TurnContext, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>): Promise<models.InputsUnion>;
73
112
  //# sourceMappingURL=tool-executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../src/lib/tool-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../src/lib/tool-executor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import * as z4 from 'zod/v4';
2
+ import { isContentArray } from './conversation-state.js';
3
+ import { isFunctionCallItem, isFunctionCallOutputItem } from './stream-type-guards.js';
2
4
  import { buildToolExecuteContext } from './tool-context.js';
3
- import { hasExecuteFunction, isGeneratorTool, isRegularExecuteTool } from './tool-types.js';
5
+ import { hasExecuteFunction, isGeneratorTool, isHITLTool, isRegularExecuteTool, isServerTool, } from './tool-types.js';
4
6
  // Re-export ZodError for convenience
5
7
  export const ZodError = z4.ZodError;
6
8
  /**
@@ -62,17 +64,25 @@ export function convertZodToJsonSchema(zodSchema) {
62
64
  return sanitizeJsonSchema(jsonSchema);
63
65
  }
64
66
  /**
65
- * Convert tools to OpenRouter API format
66
- * Accepts readonly arrays for better type compatibility
67
+ * Convert tools to OpenRouter API format. Server tools pass their SDK-shaped
68
+ * config through untouched; client tools are packaged into the function-call
69
+ * shape. Return type widens to the SDK's full request-tool union so any new
70
+ * server-tool variant added upstream flows through automatically.
67
71
  */
68
72
  export function convertToolsToAPIFormat(tools) {
69
- return tools.map((tool) => ({
70
- type: 'function',
71
- name: tool.function.name,
72
- description: tool.function.description || null,
73
- strict: null,
74
- parameters: convertZodToJsonSchema(tool.function.inputSchema),
75
- }));
73
+ return tools.map((tool) => {
74
+ if (isServerTool(tool)) {
75
+ return tool.config;
76
+ }
77
+ const apiTool = {
78
+ type: 'function',
79
+ name: tool.function.name,
80
+ description: tool.function.description || null,
81
+ strict: null,
82
+ parameters: convertZodToJsonSchema(tool.function.inputSchema),
83
+ };
84
+ return apiTool;
85
+ });
76
86
  }
77
87
  /**
78
88
  * Validate tool input against Zod schema
@@ -224,11 +234,56 @@ export async function executeGeneratorTool(tool, toolCall, context, onPreliminar
224
234
  }
225
235
  }
226
236
  /**
227
- * Execute a tool call
228
- * Automatically detects if it's a regular or generator tool
237
+ * Execute a HITL tool's `onToolCalled` hook.
238
+ *
239
+ * Returns:
240
+ * - `ToolExecutionResult` if the hook produced a value (short-circuit, send to model)
241
+ * - `null` if the hook returned `null` (pause — treat as manual tool)
242
+ * - `ToolExecutionResult` with `error` set if the hook threw
243
+ */
244
+ // biome-ignore lint: parameters match the internal API shape
245
+ export async function executeHITLTool(tool, toolCall, context, contextStore, sharedSchema) {
246
+ if (!isHITLTool(tool)) {
247
+ throw new Error(`Tool "${toolCall.name}" is not a HITL tool`);
248
+ }
249
+ try {
250
+ const validatedInput = validateToolInput(tool.function.inputSchema, toolCall.arguments);
251
+ const executeContext = buildExecuteCtx(tool, context, contextStore, sharedSchema);
252
+ const result = await Promise.resolve(tool.function.onToolCalled(validatedInput, executeContext));
253
+ if (result === null) {
254
+ // Pause — treat as manual tool
255
+ return null;
256
+ }
257
+ // outputSchema is required on HITL tools — validate unconditionally.
258
+ const validatedOutput = validateToolOutput(tool.function.outputSchema, result);
259
+ return {
260
+ toolCallId: toolCall.id,
261
+ toolName: toolCall.name,
262
+ result: validatedOutput,
263
+ };
264
+ }
265
+ catch (error) {
266
+ return {
267
+ toolCallId: toolCall.id,
268
+ toolName: toolCall.name,
269
+ result: null,
270
+ error: error instanceof Error ? error : new Error(String(error)),
271
+ };
272
+ }
273
+ }
274
+ /**
275
+ * Execute a tool call.
276
+ * Automatically detects if it's a regular, generator, or HITL tool.
277
+ *
278
+ * Returns `null` only for HITL tools whose `onToolCalled` returned `null`
279
+ * (signaling a manual-style pause). All other tools always return a
280
+ * `ToolExecutionResult` (with `error` set on failure).
229
281
  */
230
282
  // biome-ignore lint: parameters match the internal API shape
231
283
  export async function executeTool(tool, toolCall, context, onPreliminaryResult, contextStore, sharedSchema) {
284
+ if (isHITLTool(tool)) {
285
+ return executeHITLTool(tool, toolCall, context, contextStore, sharedSchema);
286
+ }
232
287
  if (!hasExecuteFunction(tool)) {
233
288
  throw new Error(`Tool "${toolCall.name}" has no execute function. Use manual tool execution.`);
234
289
  }
@@ -238,10 +293,11 @@ export async function executeTool(tool, toolCall, context, onPreliminaryResult,
238
293
  return executeRegularTool(tool, toolCall, context, contextStore, sharedSchema);
239
294
  }
240
295
  /**
241
- * Find a tool by name in the tools array
296
+ * Find a client tool by name in the tools array. Server tools have no
297
+ * client-side name to match against and are skipped.
242
298
  */
243
299
  export function findToolByName(tools, name) {
244
- return tools.find((tool) => tool.function.name === name);
300
+ return tools.find((tool) => !isServerTool(tool) && tool.function.name === name);
245
301
  }
246
302
  /**
247
303
  * Format tool execution result as a string for sending to the model
@@ -268,4 +324,191 @@ export function formatToolExecutionError(error, toolCall) {
268
324
  }
269
325
  return `Tool "${toolCall.name}" execution error: ${error.message}`;
270
326
  }
327
+ /**
328
+ * Typeguard: input is a plain array of items. Narrows the InputsUnion's
329
+ * "string | Array<...>" shape so we can walk the array.
330
+ */
331
+ function isItemArray(input) {
332
+ return Array.isArray(input);
333
+ }
334
+ /**
335
+ * Serialize a value for `FunctionCallOutputItem.output`, preserving the
336
+ * content-array shape (input_text/input_image/input_file blocks) verbatim so
337
+ * multimodal outputs are not corrupted by JSON.stringify. All other values
338
+ * are stringified. Matches the detection used elsewhere in the SDK
339
+ * (`unsentResultsToAPIFormat`).
340
+ */
341
+ function toFunctionCallOutputValue(value) {
342
+ if (isContentArray(value)) {
343
+ return value;
344
+ }
345
+ return JSON.stringify(value);
346
+ }
347
+ /**
348
+ * Format a validation/hook-error payload alongside the caller's original output.
349
+ * The wrapper itself is a synthetic object and is always JSON. The
350
+ * `originalOutput` slot preserves a content-array shape verbatim if the
351
+ * caller supplied one, so the model can still see the rich payload that
352
+ * triggered the error.
353
+ */
354
+ function formatHookError(message, originalOutput) {
355
+ if (isContentArray(originalOutput)) {
356
+ // When the caller supplied a content array, we cannot cram both the
357
+ // error wrapper and the content blocks into a single content array —
358
+ // the `FunctionCallOutputItemOutputUnion1` members are visible-to-model
359
+ // blocks, not arbitrary JSON. Emit a text block carrying the error plus
360
+ // the original content blocks so the model sees both.
361
+ return [
362
+ {
363
+ type: 'input_text',
364
+ text: JSON.stringify({
365
+ error: message,
366
+ }),
367
+ },
368
+ ...originalOutput,
369
+ ];
370
+ }
371
+ return JSON.stringify({
372
+ error: message,
373
+ originalOutput,
374
+ });
375
+ }
376
+ /**
377
+ * Parse a raw `FunctionCallOutputItem.output` value for HITL processing.
378
+ * JSON-parses string payloads when possible; leaves content arrays and
379
+ * non-string inputs untouched.
380
+ */
381
+ function parseRawFunctionCallOutput(raw) {
382
+ if (typeof raw !== 'string') {
383
+ return raw;
384
+ }
385
+ try {
386
+ return JSON.parse(raw);
387
+ }
388
+ catch {
389
+ return raw;
390
+ }
391
+ }
392
+ /** Build a name → HITL tool map from the registered tools. */
393
+ function buildHitlToolMap(tools) {
394
+ const map = new Map();
395
+ for (const t of tools) {
396
+ if (isHITLTool(t)) {
397
+ map.set(t.function.name, t);
398
+ }
399
+ }
400
+ return map;
401
+ }
402
+ /**
403
+ * Build a callId → tool-name map from `function_call` items in an input
404
+ * array, so `function_call_output` items can be associated with their tool.
405
+ */
406
+ function buildCallIdToNameMap(input) {
407
+ const map = new Map();
408
+ for (const item of input) {
409
+ if (isFunctionCallItem(item)) {
410
+ map.set(item.callId, item.name);
411
+ }
412
+ }
413
+ return map;
414
+ }
415
+ /**
416
+ * Invoke `onResponseReceived`, validate the return against the tool's
417
+ * `outputSchema`, and convert the result (or any error) to a
418
+ * `FunctionCallOutputItem.output` payload.
419
+ */
420
+ // biome-ignore lint: parameters match the internal API shape
421
+ async function invokeOnResponseReceived(tool, parsed, context, contextStore, sharedSchema) {
422
+ const hook = tool.function.onResponseReceived;
423
+ if (!hook) {
424
+ throw new Error('invokeOnResponseReceived called without onResponseReceived hook');
425
+ }
426
+ const executeContext = buildExecuteCtx(tool, context, contextStore, sharedSchema);
427
+ try {
428
+ const hookResult = await Promise.resolve(hook(parsed, executeContext));
429
+ const validation = z4.safeParse(tool.function.outputSchema, hookResult);
430
+ if (!validation.success) {
431
+ return formatHookError(validation.error.message, parsed);
432
+ }
433
+ return toFunctionCallOutputValue(hookResult);
434
+ }
435
+ catch (err) {
436
+ // Preserve the caller's original output alongside the hook error so
437
+ // the model can distinguish a hook failure from a tool-reported error.
438
+ return formatHookError(err instanceof Error ? err.message : String(err), parsed);
439
+ }
440
+ }
441
+ /**
442
+ * Compute the (optional) replacement output for a single HITL
443
+ * `function_call_output` item. Returns `null` when the caller-supplied output
444
+ * is schema-conformant and should be left untouched.
445
+ */
446
+ // biome-ignore lint: parameters match the internal API shape
447
+ async function computeHitlItemOutput(tool, item, context, contextStore, sharedSchema) {
448
+ const parsed = parseRawFunctionCallOutput(item.output);
449
+ if (tool.function.onResponseReceived) {
450
+ return invokeOnResponseReceived(tool, parsed, context, contextStore, sharedSchema);
451
+ }
452
+ // No hook — validate the parsed raw output against outputSchema. On
453
+ // success, leave the item untouched; on failure, surface an error wrapper.
454
+ const validation = z4.safeParse(tool.function.outputSchema, parsed);
455
+ if (validation.success) {
456
+ return null;
457
+ }
458
+ return formatHookError(validation.error.message, parsed);
459
+ }
460
+ /**
461
+ * Walk the input items and apply HITL per-tool validation plus any
462
+ * `onResponseReceived` hooks.
463
+ *
464
+ * For each `function_call_output` item in `input`, locate the matching
465
+ * `function_call` (by `callId`) to identify the tool name. If that tool is a
466
+ * HITL tool, validate the value the model will see against the tool's
467
+ * `outputSchema`:
468
+ *
469
+ * - With `onResponseReceived`: invoke it with the parsed raw output, validate
470
+ * the hook's return against `outputSchema`, then serialize (preserving
471
+ * content-array shapes). Hook throws or validation failures are replaced
472
+ * with `{error, originalOutput}` so the model sees a tool error.
473
+ * - Without `onResponseReceived`: validate the parsed raw output against
474
+ * `outputSchema`. If it matches, leave the item untouched. Otherwise
475
+ * replace with `{error, originalOutput}` using the same shape.
476
+ *
477
+ * Items that don't match a HITL tool are left untouched.
478
+ *
479
+ * @returns a new input array when any item was rewritten, otherwise the original input.
480
+ */
481
+ // biome-ignore lint: parameters match the internal API shape
482
+ export async function applyOnResponseReceivedHooks(input, tools, context, contextStore, sharedSchema) {
483
+ if (!tools || tools.length === 0 || !isItemArray(input)) {
484
+ return input;
485
+ }
486
+ const hitlByName = buildHitlToolMap(tools);
487
+ if (hitlByName.size === 0) {
488
+ return input;
489
+ }
490
+ const callIdToName = buildCallIdToNameMap(input);
491
+ let changed = false;
492
+ const rewritten = [];
493
+ for (const item of input) {
494
+ const tool = isFunctionCallOutputItem(item)
495
+ ? hitlByName.get(callIdToName.get(item.callId) ?? '')
496
+ : undefined;
497
+ if (!tool || !isFunctionCallOutputItem(item)) {
498
+ rewritten.push(item);
499
+ continue;
500
+ }
501
+ const newOutput = await computeHitlItemOutput(tool, item, context, contextStore, sharedSchema);
502
+ if (newOutput === null) {
503
+ rewritten.push(item);
504
+ continue;
505
+ }
506
+ rewritten.push({
507
+ ...item,
508
+ output: newOutput,
509
+ });
510
+ changed = true;
511
+ }
512
+ return changed ? rewritten : input;
513
+ }
271
514
  //# sourceMappingURL=tool-executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../src/lib/tool-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../src/lib/tool-executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAW5D,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,qCAAqC;AACrC,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;AAEpC;;GAEG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAaD,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACrC,CAAC;IAED,qDAAqD;IACrD,iEAAiE;IACjE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,iEAAiE;IACjE,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAmB;IACxD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,mEAAmE;IACnE,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE;QAC5C,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IACH,mEAAmE;IACnE,wDAAwD;IACxD,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAsB;IAEtB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QACD,MAAM,OAAO,GAAY;YACvB,IAAI,EAAE,UAAmB;YACzB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YACxB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI;YAC9C,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC9D,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAI,MAAmB,EAAE,IAAa;IACrE,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAI,MAAmB,EAAE,MAAe;IACxE,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,MAAgB,EAAE,KAAc;IACnD,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,eAAuB;IAC5D,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,wCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,6DAA6D;AAC7D,SAAS,eAAe,CACtB,IAAgB,EAChB,WAAwB,EACxB,YAA+B,EAC/B,YAAoC;IAEpC,OAAO,uBAAuB,CAC5B,WAAW,EACX,YAAY,EACZ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAClB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,YAAY,CACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAU,EACV,QAA8B,EAC9B,OAAoB,EACpB,YAA+B,EAC/B,YAAoC;IAEpC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,SAAS,QAAQ,CAAC,IAAI,4DAA4D,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxF,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAElF,4BAA4B;QAC5B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;QAE5F,wCAAwC;QACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAE/E,OAAO;gBACL,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,MAAM,EAAE,eAAe;aACxB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM;SACP,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAU,EACV,QAA8B,EAC9B,OAAoB,EACpB,mBAAmE,EACnE,YAA+B,EAC/B,YAAoC;IAEpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,CAAC,IAAI,2BAA2B,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxF,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAElF,MAAM,kBAAkB,GAAc,EAAE,CAAC;QACzC,IAAI,WAAoB,CAAC;QACzB,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,gBAAyB,CAAC;QAC9B,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACvE,IAAI,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEvC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YAC/B,gBAAgB,GAAG,KAAK,CAAC;YACzB,eAAe,GAAG,IAAI,CAAC;YAEvB,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAC3E,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAEzE,IAAI,mBAAmB,IAAI,CAAC,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClE,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACpE,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAClF,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAC9C,IAAI,mBAAmB,EAAE,CAAC;oBACxB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACnC,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/E,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,mBAAmB,QAAQ,CAAC,IAAI,+DAA+D,CAChG,CAAC;YACJ,CAAC;YACD,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QACjF,CAAC;QAED,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM,EAAE,WAAW;YACnB,kBAAkB;SACnB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAU,EACV,QAA8B,EAC9B,OAAoB,EACpB,YAA+B,EAC/B,YAAoC;IAEpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,CAAC,IAAI,sBAAsB,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxF,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAElF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAClC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,cAAc,CAAC,CAC3D,CAAC;QAEF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,+BAA+B;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qEAAqE;QACrE,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM,EAAE,eAAe;SACxB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAU,EACV,QAA8B,EAC9B,OAAoB,EACpB,mBAAmE,EACnE,YAA+B,EAC/B,YAAoC;IAEpC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,CAAC,IAAI,uDAAuD,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,oBAAoB,CACzB,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,mBAAmB,EACnB,YAAY,EACZ,YAAY,CACb,CAAC;IACJ,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,IAAY;IACxD,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,IAAI,EAAsB,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CACjF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAiC;IACxE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAY,EAAE,QAA8B;IACnF,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC,CAAC;QAEJ,OAAO,SAAS,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACzF,CAAC;IAED,OAAO,SAAS,QAAQ,CAAC,IAAI,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAClB,KAAyB;IAEzB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,yBAAyB,CAChC,KAAc;IAEd,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,OAAe,EACf,cAAuB;IAEvB,IAAI,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,oEAAoE;QACpE,qEAAqE;QACrE,wEAAwE;QACxE,wEAAwE;QACxE,sDAAsD;QACtD,OAAO;YACL;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK,EAAE,OAAO;iBACf,CAAC;aACH;YACD,GAAG,cAAc;SAClB,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,EAAE,OAAO;QACd,cAAc;KACf,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,0BAA0B,CAAC,GAAY;IAC9C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,SAAS,gBAAgB,CAAC,KAAsB;IAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAC3B,KAAsD;IAEtD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAID;;;;GAIG;AACH,6DAA6D;AAC7D,KAAK,UAAU,wBAAwB,CACrC,IAAc,EACd,MAAe,EACf,OAAoB,EACpB,YAA+B,EAC/B,YAAoC;IAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAClF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,oEAAoE;QACpE,uEAAuE;QACvE,OAAO,eAAe,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,6DAA6D;AAC7D,KAAK,UAAU,qBAAqB,CAClC,IAAc,EACd,IAAmC,EACnC,OAAoB,EACpB,YAA+B,EAC/B,YAAoC;IAEpC,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvD,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QACrC,OAAO,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACrF,CAAC;IAED,oEAAoE;IACpE,2EAA2E;IAC3E,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,KAAyB,EACzB,KAAkC,EAClC,OAAoB,EACpB,YAA+B,EAC/B,YAAoC;IAEpC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAMjD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC;YACzC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAC/F,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QAED,SAAS,CAAC,IAAI,CAAC;YACb,GAAG,IAAI;YACP,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACrC,CAAC"}
@@ -2,7 +2,7 @@ import { applyNextTurnParamsToRequest, executeNextTurnParamsFunctions, } from '.
2
2
  import { extractToolCallsFromResponse, responseHasToolCalls } from './stream-transformers.js';
3
3
  import { isFunctionCallItem } from './stream-type-guards.js';
4
4
  import { executeTool, findToolByName } from './tool-executor.js';
5
- import { hasExecuteFunction } from './tool-types.js';
5
+ import { isAutoResolvableTool } from './tool-types.js';
6
6
  import { buildTurnContext } from './turn-context.js';
7
7
  /**
8
8
  * Execute tool calls and manage multi-turn conversations
@@ -38,12 +38,12 @@ export async function executeToolLoop(sendRequest, initialInput, initialRequest,
38
38
  if (toolCalls.length === 0) {
39
39
  break;
40
40
  }
41
- // Check if any tools have execute functions
41
+ // Check if any tools can be auto-resolved (execute or HITL onToolCalled)
42
42
  const hasExecutableTools = toolCalls.some((toolCall) => {
43
43
  const tool = findToolByName(tools, toolCall.name);
44
- return tool && hasExecuteFunction(tool);
44
+ return tool && isAutoResolvableTool(tool);
45
45
  });
46
- // If no executable tools, return (manual execution mode)
46
+ // If no auto-resolvable tools, return (manual execution mode)
47
47
  if (!hasExecutableTools) {
48
48
  break;
49
49
  }
@@ -59,8 +59,8 @@ export async function executeToolLoop(sendRequest, initialInput, initialRequest,
59
59
  error: new Error(`Tool "${toolCall.name}" not found in tool definitions`),
60
60
  };
61
61
  }
62
- if (!hasExecuteFunction(tool)) {
63
- // Tool has no execute function - return null to filter out
62
+ if (!isAutoResolvableTool(tool)) {
63
+ // Tool has no execute/onToolCalled - return null to filter out
64
64
  return null;
65
65
  }
66
66
  // Find the raw tool call from the response output
@@ -1 +1 @@
1
- {"version":3,"file":"tool-orchestrator.js","sourceRoot":"","sources":["../../src/lib/tool-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-orchestrator.js","sourceRoot":"","sources":["../../src/lib/tool-orchestrator.ts"],"names":[],"mappings":"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"}