@openrouter/agent 0.7.2 → 0.9.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/README.md +728 -19
- package/esm/index.d.ts +24 -6
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +20 -5
- package/esm/index.js.map +1 -1
- package/esm/inner-loop/call-model.d.ts +8 -5
- package/esm/inner-loop/call-model.d.ts.map +1 -1
- package/esm/inner-loop/call-model.js +49 -40
- package/esm/inner-loop/call-model.js.map +1 -1
- package/esm/inner-loop/resume-tool-results.d.ts +128 -0
- package/esm/inner-loop/resume-tool-results.d.ts.map +1 -0
- package/esm/inner-loop/resume-tool-results.js +244 -0
- package/esm/inner-loop/resume-tool-results.js.map +1 -0
- package/esm/lib/agent-tool.d.ts +92 -0
- package/esm/lib/agent-tool.d.ts.map +1 -0
- package/esm/lib/agent-tool.js +211 -0
- package/esm/lib/agent-tool.js.map +1 -0
- package/esm/lib/async-params.d.ts +107 -6
- package/esm/lib/async-params.d.ts.map +1 -1
- package/esm/lib/async-params.js +8 -1
- package/esm/lib/async-params.js.map +1 -1
- package/esm/lib/async-tool-registry.d.ts +134 -0
- package/esm/lib/async-tool-registry.d.ts.map +1 -0
- package/esm/lib/async-tool-registry.js +352 -0
- package/esm/lib/async-tool-registry.js.map +1 -0
- package/esm/lib/async-tools.d.ts +23 -0
- package/esm/lib/async-tools.d.ts.map +1 -0
- package/esm/lib/async-tools.js +19 -0
- package/esm/lib/async-tools.js.map +1 -0
- package/esm/lib/conversation-state.d.ts +45 -1
- package/esm/lib/conversation-state.d.ts.map +1 -1
- package/esm/lib/conversation-state.js +119 -0
- package/esm/lib/conversation-state.js.map +1 -1
- package/esm/lib/doom-loop.d.ts +533 -0
- package/esm/lib/doom-loop.d.ts.map +1 -0
- package/esm/lib/doom-loop.js +1221 -0
- package/esm/lib/doom-loop.js.map +1 -0
- package/esm/lib/hooks-emit.d.ts +50 -0
- package/esm/lib/hooks-emit.d.ts.map +1 -0
- package/esm/lib/hooks-emit.js +307 -0
- package/esm/lib/hooks-emit.js.map +1 -0
- package/esm/lib/hooks-manager.d.ts +141 -0
- package/esm/lib/hooks-manager.d.ts.map +1 -0
- package/esm/lib/hooks-manager.js +282 -0
- package/esm/lib/hooks-manager.js.map +1 -0
- package/esm/lib/hooks-matchers.d.ts +12 -0
- package/esm/lib/hooks-matchers.d.ts.map +1 -0
- package/esm/lib/hooks-matchers.js +26 -0
- package/esm/lib/hooks-matchers.js.map +1 -0
- package/esm/lib/hooks-resolve.d.ts +17 -0
- package/esm/lib/hooks-resolve.d.ts.map +1 -0
- package/esm/lib/hooks-resolve.js +42 -0
- package/esm/lib/hooks-resolve.js.map +1 -0
- package/esm/lib/hooks-schemas.d.ts +221 -0
- package/esm/lib/hooks-schemas.d.ts.map +1 -0
- package/esm/lib/hooks-schemas.js +238 -0
- package/esm/lib/hooks-schemas.js.map +1 -0
- package/esm/lib/hooks-types.d.ts +178 -0
- package/esm/lib/hooks-types.d.ts.map +1 -0
- package/esm/lib/hooks-types.js +45 -0
- package/esm/lib/hooks-types.js.map +1 -0
- package/esm/lib/model-result.d.ts +848 -12
- package/esm/lib/model-result.d.ts.map +1 -1
- package/esm/lib/model-result.js +4055 -410
- package/esm/lib/model-result.js.map +1 -1
- package/esm/lib/reusable-stream.d.ts +15 -0
- package/esm/lib/reusable-stream.d.ts.map +1 -1
- package/esm/lib/reusable-stream.js +25 -0
- package/esm/lib/reusable-stream.js.map +1 -1
- package/esm/lib/stream-transformers.d.ts +20 -0
- package/esm/lib/stream-transformers.d.ts.map +1 -1
- package/esm/lib/stream-transformers.js +45 -0
- package/esm/lib/stream-transformers.js.map +1 -1
- package/esm/lib/tool-check.d.ts +76 -0
- package/esm/lib/tool-check.d.ts.map +1 -0
- package/esm/lib/tool-check.js +241 -0
- package/esm/lib/tool-check.js.map +1 -0
- package/esm/lib/tool-concurrency.d.ts +42 -0
- package/esm/lib/tool-concurrency.d.ts.map +1 -0
- package/esm/lib/tool-concurrency.js +80 -0
- package/esm/lib/tool-concurrency.js.map +1 -0
- package/esm/lib/tool-context.d.ts +45 -1
- package/esm/lib/tool-context.d.ts.map +1 -1
- package/esm/lib/tool-context.js +60 -1
- package/esm/lib/tool-context.js.map +1 -1
- package/esm/lib/tool-executor.d.ts +52 -9
- package/esm/lib/tool-executor.d.ts.map +1 -1
- package/esm/lib/tool-executor.js +263 -21
- package/esm/lib/tool-executor.js.map +1 -1
- package/esm/lib/tool-orchestrator.d.ts.map +1 -1
- package/esm/lib/tool-orchestrator.js +87 -47
- package/esm/lib/tool-orchestrator.js.map +1 -1
- package/esm/lib/tool-task.d.ts +157 -0
- package/esm/lib/tool-task.d.ts.map +1 -0
- package/esm/lib/tool-task.js +206 -0
- package/esm/lib/tool-task.js.map +1 -0
- package/esm/lib/tool-types.d.ts +609 -58
- package/esm/lib/tool-types.d.ts.map +1 -1
- package/esm/lib/tool-types.js +72 -10
- package/esm/lib/tool-types.js.map +1 -1
- package/esm/lib/tool.d.ts +217 -25
- package/esm/lib/tool.d.ts.map +1 -1
- package/esm/lib/tool.js +210 -1
- package/esm/lib/tool.js.map +1 -1
- package/package.json +35 -3
|
@@ -30,6 +30,38 @@ export declare class ToolContextStore {
|
|
|
30
30
|
mergeToolContext(toolName: string, partial: Record<string, unknown>): void;
|
|
31
31
|
private notifyListeners;
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Per-execution extras threaded into the ToolExecuteContext: the composed
|
|
35
|
+
* abort signal for this call, the call id, the conversation id, and (for
|
|
36
|
+
* unified `run` tools) the async-task affordances.
|
|
37
|
+
*/
|
|
38
|
+
export interface ToolExecutionExtras {
|
|
39
|
+
signal?: AbortSignal;
|
|
40
|
+
callId?: string;
|
|
41
|
+
conversationId?: string;
|
|
42
|
+
/** The parent run's client — agent tools use it to start child runs. */
|
|
43
|
+
client?: unknown;
|
|
44
|
+
/**
|
|
45
|
+
* Unified-run affordances, wired by the engine per call:
|
|
46
|
+
* - `defer` — create a DeferredHandle (deferred lifecycle only)
|
|
47
|
+
* - `log` — append a task log entry (same pipeline as a yield)
|
|
48
|
+
* - `onMessage` — register the steering-inbox handler
|
|
49
|
+
* - `taskId` — the task id once assigned
|
|
50
|
+
*/
|
|
51
|
+
runExtras?: {
|
|
52
|
+
defer?: (taskId: string, options?: Record<string, unknown>) => unknown;
|
|
53
|
+
log?: (entry: unknown) => void;
|
|
54
|
+
onMessage?: (handler: (message: unknown) => void) => void;
|
|
55
|
+
taskId?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Transcript-source slot (agent tools attach their live transcript
|
|
58
|
+
* here). Deliberately NOT named `task`: `TurnContext.task` is typed
|
|
59
|
+
* `ToolTaskHandle` (check calls only) and must not be shadowed by a
|
|
60
|
+
* transcript-only object in run bodies.
|
|
61
|
+
*/
|
|
62
|
+
taskTranscript?: unknown;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
33
65
|
/**
|
|
34
66
|
* Build a flat ToolExecuteContext for a specific tool.
|
|
35
67
|
* Returns a merged object with TurnContext fields, a `local` getter
|
|
@@ -43,9 +75,21 @@ export declare class ToolContextStore {
|
|
|
43
75
|
* @param toolName - The tool's name
|
|
44
76
|
* @param schema - The tool's contextSchema (for validation)
|
|
45
77
|
* @param sharedSchema - The shared contextSchema (for validation)
|
|
78
|
+
* @param extras - Per-execution extras (abort signal, call id, conversation id)
|
|
46
79
|
* @returns A flat ToolExecuteContext
|
|
47
80
|
*/
|
|
48
|
-
export declare function buildToolExecuteContext<TName extends string, TContext extends Record<string, unknown>, TShared extends Record<string, unknown> = Record<string, unknown>>(turnContext: TurnContext, store: ToolContextStore | undefined, toolName: TName, schema: $ZodObject<$ZodShape> | undefined, sharedSchema?: $ZodObject<$ZodShape> | undefined): ToolExecuteContext<TName, TContext, TShared>;
|
|
81
|
+
export declare function buildToolExecuteContext<TName extends string, TContext extends Record<string, unknown>, TShared extends Record<string, unknown> = Record<string, unknown>>(turnContext: TurnContext, store: ToolContextStore | undefined, toolName: TName, schema: $ZodObject<$ZodShape> | undefined, sharedSchema?: $ZodObject<$ZodShape> | undefined, extras?: ToolExecutionExtras): ToolExecuteContext<TName, TContext, TShared>;
|
|
82
|
+
/**
|
|
83
|
+
* Build a ToolRunContext for a unified `run` tool: the base execute context
|
|
84
|
+
* plus the async-task affordances (`defer`, `log`, `onMessage`, `taskId`,
|
|
85
|
+
* `client`). Attached onto the built object (not via spread) because
|
|
86
|
+
* `local`/`shared` are live getters a spread would flatten.
|
|
87
|
+
*/
|
|
88
|
+
export declare function buildToolRunContext<TName extends string, TContext extends Record<string, unknown>, TShared extends Record<string, unknown> = Record<string, unknown>>(turnContext: TurnContext, store: ToolContextStore | undefined, toolName: TName, schema: $ZodObject<$ZodShape> | undefined, sharedSchema?: $ZodObject<$ZodShape> | undefined, extras?: ToolExecutionExtras): ToolExecuteContext<TName, TContext, TShared> & {
|
|
89
|
+
defer: (taskId: string, options?: Record<string, unknown>) => unknown;
|
|
90
|
+
log: (entry: unknown) => void;
|
|
91
|
+
onMessage: (handler: (message: unknown) => void) => void;
|
|
92
|
+
};
|
|
49
93
|
/**
|
|
50
94
|
* Resolve a context input (static value, sync function, or async function) to a plain object.
|
|
51
95
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-context.d.ts","sourceRoot":"","sources":["../../src/lib/tool-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKvE;;;GAGG;AACH,KAAK,qBAAqB,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;AAEzF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IACtE,CAAC,GACD,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,CAAC,CAAC,GAC1B,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAMxC;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,SAAS,CAAyC;gBAE9C,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IASvE,qEAAqE;IACrE,SAAS,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI;IAOtD,8DAA8D;IAC9D,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAUtD,wDAAwD;IACxD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUzD,2DAA2D;IAC3D,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAOvE,+EAA+E;IAC/E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAS1E,OAAO,CAAC,eAAe;CAWxB;AAiCD
|
|
1
|
+
{"version":3,"file":"tool-context.d.ts","sourceRoot":"","sources":["../../src/lib/tool-context.ts"],"names":[],"mappings":"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"}
|
package/esm/lib/tool-context.js
CHANGED
|
@@ -95,6 +95,21 @@ function validatePartialAgainstSchema(partial, schema) {
|
|
|
95
95
|
}
|
|
96
96
|
return filteredPartial;
|
|
97
97
|
}
|
|
98
|
+
/*
|
|
99
|
+
* A never-aborting signal for contexts built without cancellation sources —
|
|
100
|
+
* keeps `ctx.signal` always present so tool bodies can pass it to fetch/etc.
|
|
101
|
+
* unconditionally.
|
|
102
|
+
*
|
|
103
|
+
* Deliberately a FACTORY, not one shared module-level signal. A tool body may
|
|
104
|
+
* `signal.addEventListener('abort', …)` and, since this signal never fires,
|
|
105
|
+
* nothing ever removes that listener. Sharing one object across every such call
|
|
106
|
+
* accumulated listeners on it for the lifetime of the process — unbounded in a
|
|
107
|
+
* long-lived server, and eventually a MaxListenersExceededWarning. A fresh
|
|
108
|
+
* signal per context is garbage-collected with the context that owns it.
|
|
109
|
+
*/
|
|
110
|
+
function neverAbortSignal() {
|
|
111
|
+
return new AbortController().signal;
|
|
112
|
+
}
|
|
98
113
|
/**
|
|
99
114
|
* Build a flat ToolExecuteContext for a specific tool.
|
|
100
115
|
* Returns a merged object with TurnContext fields, a `local` getter
|
|
@@ -108,9 +123,10 @@ function validatePartialAgainstSchema(partial, schema) {
|
|
|
108
123
|
* @param toolName - The tool's name
|
|
109
124
|
* @param schema - The tool's contextSchema (for validation)
|
|
110
125
|
* @param sharedSchema - The shared contextSchema (for validation)
|
|
126
|
+
* @param extras - Per-execution extras (abort signal, call id, conversation id)
|
|
111
127
|
* @returns A flat ToolExecuteContext
|
|
112
128
|
*/
|
|
113
|
-
export function buildToolExecuteContext(turnContext, store, toolName, schema, sharedSchema) {
|
|
129
|
+
export function buildToolExecuteContext(turnContext, store, toolName, schema, sharedSchema, extras) {
|
|
114
130
|
// Validate initial context eagerly (throws on bad data)
|
|
115
131
|
if (store && schema) {
|
|
116
132
|
extractToolContext(store, toolName, schema);
|
|
@@ -120,6 +136,13 @@ export function buildToolExecuteContext(turnContext, store, toolName, schema, sh
|
|
|
120
136
|
}
|
|
121
137
|
const ctx = {
|
|
122
138
|
...turnContext,
|
|
139
|
+
signal: extras?.signal ?? neverAbortSignal(),
|
|
140
|
+
...(extras?.callId !== undefined && {
|
|
141
|
+
callId: extras.callId,
|
|
142
|
+
}),
|
|
143
|
+
...(extras?.conversationId !== undefined && {
|
|
144
|
+
conversationId: extras.conversationId,
|
|
145
|
+
}),
|
|
123
146
|
get local() {
|
|
124
147
|
const data = store ? store.getToolContext(toolName) : {};
|
|
125
148
|
return Object.freeze(data);
|
|
@@ -145,6 +168,42 @@ export function buildToolExecuteContext(turnContext, store, toolName, schema, sh
|
|
|
145
168
|
};
|
|
146
169
|
return ctx;
|
|
147
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Build a ToolRunContext for a unified `run` tool: the base execute context
|
|
173
|
+
* plus the async-task affordances (`defer`, `log`, `onMessage`, `taskId`,
|
|
174
|
+
* `client`). Attached onto the built object (not via spread) because
|
|
175
|
+
* `local`/`shared` are live getters a spread would flatten.
|
|
176
|
+
*/
|
|
177
|
+
export function buildToolRunContext(turnContext, store, toolName, schema, sharedSchema, extras) {
|
|
178
|
+
const base = buildToolExecuteContext(turnContext, store, toolName, schema, sharedSchema, extras);
|
|
179
|
+
const runExtras = extras?.runExtras;
|
|
180
|
+
const ctx = Object.assign(base, {
|
|
181
|
+
defer: runExtras?.defer ??
|
|
182
|
+
(() => {
|
|
183
|
+
throw new Error(`Tool "${toolName}": ctx.defer() is only available on lifecycle: 'deferred' tools`);
|
|
184
|
+
}),
|
|
185
|
+
log: runExtras?.log ?? (() => undefined),
|
|
186
|
+
onMessage: runExtras?.onMessage ?? (() => undefined),
|
|
187
|
+
...(runExtras?.taskTranscript !== undefined && {
|
|
188
|
+
taskTranscript: runExtras.taskTranscript,
|
|
189
|
+
}),
|
|
190
|
+
...(extras?.client !== undefined && {
|
|
191
|
+
client: extras.client,
|
|
192
|
+
}),
|
|
193
|
+
});
|
|
194
|
+
// Live delegation: the engine's runExtras exposes taskId as a getter
|
|
195
|
+
// backed by the run binding, because the ToolTask (and its id) is only
|
|
196
|
+
// created after the call escapes the round — a static copy taken here
|
|
197
|
+
// would always be undefined.
|
|
198
|
+
if (runExtras && 'taskId' in runExtras) {
|
|
199
|
+
Object.defineProperty(ctx, 'taskId', {
|
|
200
|
+
get: () => runExtras.taskId,
|
|
201
|
+
enumerable: true,
|
|
202
|
+
configurable: true,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
return ctx;
|
|
206
|
+
}
|
|
148
207
|
//#endregion
|
|
149
208
|
//#region resolveContext
|
|
150
209
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../src/lib/tool-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../src/lib/tool-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type * as models from '@openrouter/sdk/models';
|
|
2
2
|
import * as z4 from 'zod/v4';
|
|
3
3
|
import type { $ZodObject, $ZodShape, $ZodType } from 'zod/v4/core';
|
|
4
|
-
import type { ToolContextStore } from './tool-context.js';
|
|
4
|
+
import type { ToolContextStore, ToolExecutionExtras } from './tool-context.js';
|
|
5
5
|
import type { ClientTool, ParsedToolCall, Tool, ToolExecutionResult, TurnContext } from './tool-types.js';
|
|
6
6
|
export declare const ZodError: z4.z.core.$constructor<z4.ZodError<unknown>, z4.z.core.$ZodIssue[]>;
|
|
7
7
|
/**
|
|
@@ -25,8 +25,12 @@ export declare function convertZodToJsonSchema(zodSchema: $ZodType): Record<stri
|
|
|
25
25
|
/**
|
|
26
26
|
* Convert tools to OpenRouter API format. Server tools pass their SDK-shaped
|
|
27
27
|
* config through untouched; client tools are packaged into the function-call
|
|
28
|
-
* shape
|
|
29
|
-
*
|
|
28
|
+
* shape — their wire definitions are NEVER augmented per tool (interacting
|
|
29
|
+
* with long-running tasks goes through the single universal `task` tool,
|
|
30
|
+
* appended by callModel when warranted, so the per-tool context cost stays
|
|
31
|
+
* constant no matter how many async tools are registered). Return type
|
|
32
|
+
* widens to the SDK's full request-tool union so any new server-tool
|
|
33
|
+
* variant added upstream flows through automatically.
|
|
30
34
|
*/
|
|
31
35
|
export declare function convertToolsToAPIFormat(tools: readonly Tool[]): Array<models.ResponsesRequestToolUnion>;
|
|
32
36
|
/**
|
|
@@ -48,14 +52,14 @@ export declare function parseToolCallArguments(argumentsString: string): unknown
|
|
|
48
52
|
/**
|
|
49
53
|
* Execute a regular (non-generator) tool
|
|
50
54
|
*/
|
|
51
|
-
export declare function executeRegularTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape
|
|
55
|
+
export declare function executeRegularTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>, extras?: ToolExecutionExtras): Promise<ToolExecutionResult<Tool>>;
|
|
52
56
|
/**
|
|
53
57
|
* Execute a generator tool and collect preliminary and final results
|
|
54
58
|
* - Intermediate yields are validated against eventSchema (preliminary events)
|
|
55
59
|
* - Last yield is validated against outputSchema (final result sent to model)
|
|
56
60
|
* - Generator must emit at least one value
|
|
57
61
|
*/
|
|
58
|
-
export declare function executeGeneratorTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape
|
|
62
|
+
export declare function executeGeneratorTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>, extras?: ToolExecutionExtras): Promise<ToolExecutionResult<Tool>>;
|
|
59
63
|
/**
|
|
60
64
|
* Execute a HITL tool's `onToolCalled` hook.
|
|
61
65
|
*
|
|
@@ -64,16 +68,55 @@ export declare function executeGeneratorTool(tool: Tool, toolCall: ParsedToolCal
|
|
|
64
68
|
* - `null` if the hook returned `null` (pause — treat as manual tool)
|
|
65
69
|
* - `ToolExecutionResult` with `error` set if the hook threw
|
|
66
70
|
*/
|
|
67
|
-
export declare function executeHITLTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape
|
|
71
|
+
export declare function executeHITLTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>, extras?: ToolExecutionExtras): Promise<ToolExecutionResult<Tool> | null>;
|
|
72
|
+
/**
|
|
73
|
+
* Tagged result for tools whose work escapes the synchronous round.
|
|
74
|
+
*
|
|
75
|
+
* - `'background'`: `run()` starts the tool's `execute` (input already
|
|
76
|
+
* validated, context built) and resolves with the OUTPUT-VALIDATED final
|
|
77
|
+
* value. The engine decides when to invoke it (under the background pool)
|
|
78
|
+
* and whether its settlement lands in-round (grace window) or later.
|
|
79
|
+
* - `'defer'`: the tool's `start` returned a durable task handle; the run
|
|
80
|
+
* should pause until the task is resolved externally.
|
|
81
|
+
*/
|
|
82
|
+
export type AsyncToolInvocation = {
|
|
83
|
+
asyncMode: 'background';
|
|
84
|
+
run: () => Promise<unknown>;
|
|
85
|
+
ack?: string | Record<string, unknown> | undefined;
|
|
86
|
+
graceMs: number;
|
|
87
|
+
} | {
|
|
88
|
+
asyncMode: 'defer';
|
|
89
|
+
taskId: string;
|
|
90
|
+
ack?: string | Record<string, unknown> | undefined;
|
|
91
|
+
pollAfterMs?: number | undefined;
|
|
92
|
+
expiresAt?: number | undefined;
|
|
93
|
+
};
|
|
94
|
+
/** Type guard for {@link AsyncToolInvocation} in executeTool results. */
|
|
95
|
+
export declare function isAsyncToolInvocation(value: unknown): value is AsyncToolInvocation;
|
|
96
|
+
/**
|
|
97
|
+
* Prepare a unified tool invocation. Validates input eagerly; builds the
|
|
98
|
+
* ToolRunContext (defer/log/onMessage/client wired by the engine through
|
|
99
|
+
* `extras.runExtras`); then per lifecycle:
|
|
100
|
+
*
|
|
101
|
+
* - `'sync'`: runs to completion inline — a plain `ToolExecutionResult`,
|
|
102
|
+
* zero async overhead, behaviorally identical to `execute`.
|
|
103
|
+
* - `'background'` (and agent tools): returns a `'background'`
|
|
104
|
+
* {@link AsyncToolInvocation} thunk for the engine's grace-window race.
|
|
105
|
+
* - `'deferred'`: awaits the run — a plain value is the typed fast path; a
|
|
106
|
+
* `DeferredHandle` becomes a `'defer'` invocation.
|
|
107
|
+
*/
|
|
108
|
+
export declare function prepareUnifiedInvocation(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>, extras?: ToolExecutionExtras): Promise<ToolExecutionResult<Tool> | AsyncToolInvocation>;
|
|
68
109
|
/**
|
|
69
110
|
* Execute a tool call.
|
|
70
|
-
* Automatically detects if it's a regular, generator, or
|
|
111
|
+
* Automatically detects if it's a regular, generator, HITL, or unified
|
|
112
|
+
* `run` tool.
|
|
71
113
|
*
|
|
72
114
|
* Returns `null` only for HITL tools whose `onToolCalled` returned `null`
|
|
73
|
-
* (signaling a manual-style pause).
|
|
115
|
+
* (signaling a manual-style pause). Unified background/deferred tools may
|
|
116
|
+
* return an {@link AsyncToolInvocation}. All other tools always return a
|
|
74
117
|
* `ToolExecutionResult` (with `error` set on failure).
|
|
75
118
|
*/
|
|
76
|
-
export declare function executeTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape
|
|
119
|
+
export declare function executeTool(tool: Tool, toolCall: ParsedToolCall<Tool>, context: TurnContext, onPreliminaryResult?: (toolCallId: string, result: unknown) => void, contextStore?: ToolContextStore, sharedSchema?: $ZodObject<$ZodShape>, extras?: ToolExecutionExtras): Promise<ToolExecutionResult<Tool> | AsyncToolInvocation | null>;
|
|
77
120
|
/**
|
|
78
121
|
* Find a client tool by name in the tools array. Server tools have no
|
|
79
122
|
* client-side name to match against and are skipped.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../src/lib/tool-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-executor.d.ts","sourceRoot":"","sources":["../../src/lib/tool-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,KAAK,EAEV,UAAU,EAGV,cAAc,EACd,IAAI,EAEJ,mBAAmB,EACnB,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AAazB,eAAO,MAAM,QAAQ,qEAAc,CAAC;AASpC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1F,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;AAwC1D;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,IAAI,EAAE,GACrB,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAczC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAE1E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,CAE7E;AAWD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAcvE;AA8DD;;GAEG;AAEH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,EAC9B,OAAO,EAAE,WAAW,EACpB,YAAY,CAAC,EAAE,gBAAgB,EAC/B,YAAY,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EACpC,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAkDpC;AAED;;;;;GAKG;AAEH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,EAC9B,OAAO,EAAE,WAAW,EACpB,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,EACnE,YAAY,CAAC,EAAE,gBAAgB,EAC/B,YAAY,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EACpC,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CA+EpC;AAED;;;;;;;GAOG;AAEH,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,EAC9B,OAAO,EAAE,WAAW,EACpB,YAAY,CAAC,EAAE,gBAAgB,EAC/B,YAAY,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EACpC,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CA4C3C;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IACE,SAAS,EAAE,YAAY,CAAC;IACxB,GAAG,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAEN,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAQlF;AAoED;;;;;;;;;;;GAWG;AAEH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,EAC9B,OAAO,EAAE,WAAW,EACpB,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,EACnE,YAAY,CAAC,EAAE,gBAAgB,EAC/B,YAAY,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EACpC,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAmI1D;AAED;;;;;;;;;GASG;AAEH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,EAC9B,OAAO,EAAE,WAAW,EACpB,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,EACnE,YAAY,CAAC,EAAE,gBAAgB,EAC/B,YAAY,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,EACpC,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,mBAAmB,GAAG,IAAI,CAAC,CAkCjE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAIlF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,MAAM,CASlF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAW7F;AA2KD;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,MAAM,CAAC,WAAW,EACzB,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,SAAS,EAClC,OAAO,EAAE,WAAW,EACpB,YAAY,CAAC,EAAE,gBAAgB,EAC/B,YAAY,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAyC7B"}
|