@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.
- package/esm/index.d.ts +7 -5
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -2
- package/esm/index.js.map +1 -1
- package/esm/lib/conversation-state.d.ts +5 -0
- package/esm/lib/conversation-state.d.ts.map +1 -1
- package/esm/lib/conversation-state.js +17 -5
- package/esm/lib/conversation-state.js.map +1 -1
- package/esm/lib/model-result.d.ts +91 -7
- package/esm/lib/model-result.d.ts.map +1 -1
- package/esm/lib/model-result.js +483 -92
- package/esm/lib/model-result.js.map +1 -1
- package/esm/lib/next-turn-params.d.ts.map +1 -1
- package/esm/lib/next-turn-params.js +3 -1
- package/esm/lib/next-turn-params.js.map +1 -1
- package/esm/lib/stream-transformers.d.ts +84 -5
- package/esm/lib/stream-transformers.d.ts.map +1 -1
- package/esm/lib/stream-transformers.js +8 -15
- package/esm/lib/stream-transformers.js.map +1 -1
- package/esm/lib/stream-type-guards.d.ts +29 -0
- package/esm/lib/stream-type-guards.d.ts.map +1 -1
- package/esm/lib/stream-type-guards.js +37 -0
- package/esm/lib/stream-type-guards.js.map +1 -1
- package/esm/lib/tool-executor.d.ts +48 -9
- package/esm/lib/tool-executor.d.ts.map +1 -1
- package/esm/lib/tool-executor.js +257 -14
- package/esm/lib/tool-executor.js.map +1 -1
- package/esm/lib/tool-orchestrator.js +6 -6
- package/esm/lib/tool-orchestrator.js.map +1 -1
- package/esm/lib/tool-types.d.ts +173 -8
- package/esm/lib/tool-types.d.ts.map +1 -1
- package/esm/lib/tool-types.js +53 -2
- package/esm/lib/tool-types.js.map +1 -1
- package/esm/lib/tool.d.ts +58 -1
- package/esm/lib/tool.d.ts.map +1 -1
- package/esm/lib/tool.js +65 -0
- package/esm/lib/tool.js.map +1 -1
- package/esm/openrouter.d.ts +10 -4
- package/esm/openrouter.d.ts.map +1 -1
- package/esm/openrouter.js +41 -2
- package/esm/openrouter.js.map +1 -1
- 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 {
|
|
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
|
-
*
|
|
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[]):
|
|
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
|
|
58
|
-
*
|
|
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
|
|
67
|
+
export declare function executeHITLTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>): Promise<ToolExecutionResult<Tool> | null>;
|
|
61
68
|
/**
|
|
62
|
-
*
|
|
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
|
|
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":"AAAA,OAAO,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../src/lib/tool-executor.ts"],"names":[],"mappings":"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"}
|
package/esm/lib/tool-executor.js
CHANGED
|
@@ -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
|
-
*
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
|
228
|
-
*
|
|
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":"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"}
|
|
@@ -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 {
|
|
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
|
|
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 &&
|
|
44
|
+
return tool && isAutoResolvableTool(tool);
|
|
45
45
|
});
|
|
46
|
-
// If no
|
|
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 (!
|
|
63
|
-
// Tool has no execute
|
|
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":"AACA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-orchestrator.js","sourceRoot":"","sources":["../../src/lib/tool-orchestrator.ts"],"names":[],"mappings":"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"}
|