@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
package/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
export { SDKHooks } from '@openrouter/sdk/hooks/hooks';
|
|
2
|
+
export type { AfterErrorContext, AfterErrorHook, AfterSuccessContext, AfterSuccessHook, BeforeCreateRequestContext, BeforeCreateRequestHook, BeforeRequestContext, BeforeRequestHook, HookContext, SDKInitHook, } from '@openrouter/sdk/hooks/types';
|
|
1
3
|
export type { RequestOptions } from '@openrouter/sdk/lib/sdks';
|
|
2
|
-
export type { BaseInputsUnion, ChatAssistantMessage, ChatMessages, EasyInputMessage, EasyInputMessageContentInputImage, EasyInputMessageContentUnion1, EasyInputMessageRoleUnion, ErrorEvent, FunctionCallItem, FunctionCallOutputItem, InputAudio, InputFile, InputImage, InputMessageItem, InputsUnion, InputText, InputVideo, OpenAIResponsesToolChoiceUnion, OpenResponsesResult, OutputFileSearchCallItem, OutputFunctionCallItem, OutputImageGenerationCallItem, OutputInputImage, OutputMessage, OutputReasoningItem, OutputWebSearchCallItem, ResponseOutputText, ResponsesRequest, StreamEvents, Usage, } from '@openrouter/sdk/models';
|
|
4
|
+
export type { BaseInputsUnion, ChatAssistantMessage, ChatMessages, EasyInputMessage, EasyInputMessageContentInputImage, EasyInputMessageContentUnion1, EasyInputMessageRoleUnion, ErrorEvent, FunctionCallItem, FunctionCallOutputItem, InputAudio, InputFile, InputImage, InputMessageItem, InputsUnion, InputText, InputVideo, OpenAIResponsesToolChoiceUnion, OpenResponsesResult, OutputFileSearchCallItem, OutputFunctionCallItem, OutputImageGenerationCallItem, OutputInputImage, OutputItems, OutputMessage, OutputReasoningItem, OutputWebSearchCallItem, ResponseOutputText, ResponsesRequest, ResponsesRequestToolUnion, StreamEvents, Usage, } from '@openrouter/sdk/models';
|
|
3
5
|
export type { AssistantMessageItem, CallFileSearchItem, CallFunctionToolItem, CallImageGenerationItem, CallWebSearchItem, DeveloperMessageItem, ErrorItem, FunctionProgressItem, FunctionResultItem, Item, NewUserMessageItem, ReasoningItem, SystemMessageItem, UserMessageItem, } from './lib/item-types.js';
|
|
4
6
|
export { callModel } from './inner-loop/call-model.js';
|
|
5
7
|
export { fromClaudeMessages, toClaudeMessage } from './lib/anthropic-compat.js';
|
|
@@ -15,13 +17,13 @@ export { applyNextTurnParamsToRequest, buildNextTurnParamsContext, executeNextTu
|
|
|
15
17
|
export { finishReasonIs, hasToolCall, isStopConditionMet, maxCost, maxTokensUsed, stepCountIs, } from './lib/stop-conditions.js';
|
|
16
18
|
export type { StreamableOutputItem } from './lib/stream-transformers.js';
|
|
17
19
|
export { extractUnsupportedContent, getUnsupportedContentSummary, hasUnsupportedContent, } from './lib/stream-transformers.js';
|
|
18
|
-
export { tool } from './lib/tool.js';
|
|
20
|
+
export { serverTool, tool } from './lib/tool.js';
|
|
19
21
|
export type { ContextInput } from './lib/tool-context.js';
|
|
20
22
|
export { buildToolExecuteContext, ToolContextStore } from './lib/tool-context.js';
|
|
21
23
|
export { ToolEventBroadcaster } from './lib/tool-event-broadcaster.js';
|
|
22
|
-
export type { ChatStreamEvent, ConversationState, ConversationStatus, HasApprovalTools, InferToolEvent, InferToolEventsUnion, InferToolInput, InferToolOutput, InferToolOutputsUnion, ManualTool, NextTurnParamsContext, NextTurnParamsFunctions, ParsedToolCall, PartialResponse, ResponseStreamEvent, ResponseStreamEvent as EnhancedResponseStreamEvent, StateAccessor, StepResult, StopCondition, StopWhen, ToModelOutputFunction, ToModelOutputResult, Tool, ToolApprovalCheck, ToolCallOutputEvent, ToolExecutionResult, ToolExecutionResultUnion, ToolHasApproval, ToolOutputContentItem, ToolPreliminaryResultEvent, ToolResultEvent, ToolStreamEvent, ToolWithExecute, ToolWithGenerator, TurnContext, TurnEndEvent, TurnStartEvent, TypedToolCall, TypedToolCallUnion, UnsentToolResult, Warning, } from './lib/tool-types.js';
|
|
23
|
-
export { hasApprovalRequiredTools, hasExecuteFunction, isGeneratorTool, isRegularExecuteTool, isToolCallOutputEvent, isToolPreliminaryResultEvent, isToolResultEvent, isTurnEndEvent, isTurnStartEvent, ToolType, toolHasApprovalConfigured, } from './lib/tool-types.js';
|
|
24
|
+
export type { ChatStreamEvent, ClientTool, ConversationState, ConversationStatus, HasApprovalTools, HITLTool, HITLToolFunction, InferToolEvent, InferToolEventsUnion, InferToolInput, InferToolOutput, InferToolOutputsUnion, ManualTool, NextTurnParamsContext, NextTurnParamsFunctions, ParsedToolCall, PartialResponse, ResponseStreamEvent, ResponseStreamEvent as EnhancedResponseStreamEvent, ServerTool, ServerToolConfig, ServerToolResultItem, ServerToolType, StateAccessor, StepResult, StopCondition, StopWhen, ToModelOutputFunction, ToModelOutputResult, Tool, ToolApprovalCheck, ToolCallOutputEvent, ToolExecutionResult, ToolExecutionResultUnion, ToolHasApproval, ToolOutputContentItem, ToolPreliminaryResultEvent, ToolResultEvent, ToolResultItem, ToolStreamEvent, ToolWithExecute, ToolWithGenerator, TurnContext, TurnEndEvent, TurnStartEvent, TypedToolCall, TypedToolCallUnion, UnsentToolResult, Warning, } from './lib/tool-types.js';
|
|
25
|
+
export { hasApprovalRequiredTools, hasExecuteFunction, isAutoResolvableTool, isClientTool, isGeneratorTool, isHITLTool, isManualTool, isRegularExecuteTool, isServerTool, isToolCallOutputEvent, isToolPreliminaryResultEvent, isToolResultEvent, isTurnEndEvent, isTurnStartEvent, ToolType, toolHasApprovalConfigured, } from './lib/tool-types.js';
|
|
24
26
|
export { buildTurnContext, normalizeInputToArray } from './lib/turn-context.js';
|
|
25
|
-
export type { SDKOptions } from './openrouter.js';
|
|
27
|
+
export type { Hook, OpenRouterOptions, SDKOptions } from './openrouter.js';
|
|
26
28
|
export { OpenRouter } from './openrouter.js';
|
|
27
29
|
//# sourceMappingURL=index.d.ts.map
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// SDK type re-exports — every SDK type used in this package's public API
|
|
2
2
|
// so consumers don't need to depend on @openrouter/sdk directly.
|
|
3
|
+
// Hooks — interception points for requests and responses
|
|
4
|
+
export { SDKHooks } from '@openrouter/sdk/hooks/hooks';
|
|
3
5
|
// Message format compatibility helpers
|
|
4
6
|
// High-level model calling
|
|
5
7
|
export { callModel } from './inner-loop/call-model.js';
|
|
@@ -18,12 +20,12 @@ export { applyNextTurnParamsToRequest, buildNextTurnParamsContext, executeNextTu
|
|
|
18
20
|
export { finishReasonIs, hasToolCall, isStopConditionMet, maxCost, maxTokensUsed, stepCountIs, } from './lib/stop-conditions.js';
|
|
19
21
|
export { extractUnsupportedContent, getUnsupportedContentSummary, hasUnsupportedContent, } from './lib/stream-transformers.js';
|
|
20
22
|
// Tool creation helpers
|
|
21
|
-
export { tool } from './lib/tool.js';
|
|
23
|
+
export { serverTool, tool } from './lib/tool.js';
|
|
22
24
|
// Tool context helpers
|
|
23
25
|
export { buildToolExecuteContext, ToolContextStore } from './lib/tool-context.js';
|
|
24
26
|
// Real-time tool event broadcasting
|
|
25
27
|
export { ToolEventBroadcaster } from './lib/tool-event-broadcaster.js';
|
|
26
|
-
export { hasApprovalRequiredTools, hasExecuteFunction, isGeneratorTool, isRegularExecuteTool, isToolCallOutputEvent, isToolPreliminaryResultEvent, isToolResultEvent, isTurnEndEvent, isTurnStartEvent, ToolType, toolHasApprovalConfigured, } from './lib/tool-types.js';
|
|
28
|
+
export { hasApprovalRequiredTools, hasExecuteFunction, isAutoResolvableTool, isClientTool, isGeneratorTool, isHITLTool, isManualTool, isRegularExecuteTool, isServerTool, isToolCallOutputEvent, isToolPreliminaryResultEvent, isToolResultEvent, isTurnEndEvent, isTurnStartEvent, ToolType, toolHasApprovalConfigured, } from './lib/tool-types.js';
|
|
27
29
|
// Turn context helpers
|
|
28
30
|
export { buildTurnContext, normalizeInputToArray } from './lib/turn-context.js';
|
|
29
31
|
export { OpenRouter } from './openrouter.js';
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,iEAAiE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,iEAAiE;AAEjE,yDAAyD;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AA0EvD,uCAAuC;AAEvC,2BAA2B;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAMhF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,mCAAmC;AACnC,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,6BAA6B;AAC7B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,GACZ,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,2BAA2B;AAC3B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,yBAAyB;AACzB,OAAO,EACL,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,aAAa,EACb,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,wBAAwB;AACxB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEjD,uBAAuB;AACvB,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAClF,oCAAoC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAoDvE,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,4BAA4B,EAC5B,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,uBAAuB;AACvB,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -46,6 +46,11 @@ export declare function createUnsentResult<TTools extends readonly Tool[] = read
|
|
|
46
46
|
* Create an unsent tool result from a rejection
|
|
47
47
|
*/
|
|
48
48
|
export declare function createRejectedResult<TTools extends readonly Tool[] = readonly Tool[]>(callId: string, name: string, reason?: string): UnsentToolResult<TTools>;
|
|
49
|
+
/**
|
|
50
|
+
* Check if a value is a valid content array (array of input_text, input_image, or input_file blocks).
|
|
51
|
+
* These can be passed directly as tool output without JSON.stringify.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isContentArray(value: unknown): value is models.FunctionCallOutputItemOutputUnion1[];
|
|
49
54
|
/**
|
|
50
55
|
* Convert unsent tool results to API format for sending to the model.
|
|
51
56
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-state.d.ts","sourceRoot":"","sources":["../../src/lib/conversation-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,IAAI,EACJ,WAAW,EACX,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-state.d.ts","sourceRoot":"","sources":["../../src/lib/conversation-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isClientTool } from './tool-types.js';
|
|
1
2
|
import { normalizeInputToArray } from './turn-context.js';
|
|
2
3
|
/**
|
|
3
4
|
* Type guard to verify an object is a valid UnsentToolResult
|
|
@@ -83,19 +84,30 @@ export async function toolRequiresApproval(toolCall, tools, context, callLevelCh
|
|
|
83
84
|
if (callLevelCheck) {
|
|
84
85
|
return callLevelCheck(toolCall, context);
|
|
85
86
|
}
|
|
86
|
-
// Fall back to tool-level setting
|
|
87
|
-
const tool = tools.find((t) => t.function.name === toolCall.name);
|
|
87
|
+
// Fall back to tool-level setting (server tools never require approval)
|
|
88
|
+
const tool = tools.find((t) => isClientTool(t) && t.function.name === toolCall.name);
|
|
88
89
|
if (!tool) {
|
|
89
90
|
return false;
|
|
90
91
|
}
|
|
91
92
|
const requireApproval = tool.function.requireApproval;
|
|
92
|
-
// If it's a function, call it with the tool's arguments and context
|
|
93
|
+
// If it's a function, call it with the tool's arguments and context.
|
|
94
|
+
// Arguments have already been parsed and validated against the tool's
|
|
95
|
+
// Zod inputSchema (a ZodObject), so the runtime shape is always a
|
|
96
|
+
// record here. A non-record value signals a real upstream bug — surface
|
|
97
|
+
// it rather than substituting an empty object.
|
|
93
98
|
if (typeof requireApproval === 'function') {
|
|
94
|
-
|
|
99
|
+
const rawArgs = toolCall.arguments;
|
|
100
|
+
if (!isRecord(rawArgs)) {
|
|
101
|
+
throw new Error(`toolCall.arguments for "${toolCall.name}" must be an object after Zod validation, got ${rawArgs === null ? 'null' : Array.isArray(rawArgs) ? 'array' : typeof rawArgs}`);
|
|
102
|
+
}
|
|
103
|
+
return requireApproval(rawArgs, context);
|
|
95
104
|
}
|
|
96
105
|
// Otherwise treat as boolean
|
|
97
106
|
return requireApproval ?? false;
|
|
98
107
|
}
|
|
108
|
+
function isRecord(value) {
|
|
109
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
110
|
+
}
|
|
99
111
|
/**
|
|
100
112
|
* Partition tool calls into those requiring approval and those that can auto-execute
|
|
101
113
|
* @param toolCalls - Tool calls to partition
|
|
@@ -152,7 +164,7 @@ export function createRejectedResult(callId, name, reason) {
|
|
|
152
164
|
* Check if a value is a valid content array (array of input_text, input_image, or input_file blocks).
|
|
153
165
|
* These can be passed directly as tool output without JSON.stringify.
|
|
154
166
|
*/
|
|
155
|
-
function isContentArray(value) {
|
|
167
|
+
export function isContentArray(value) {
|
|
156
168
|
if (!Array.isArray(value)) {
|
|
157
169
|
return false;
|
|
158
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-state.js","sourceRoot":"","sources":["../../src/lib/conversation-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conversation-state.js","sourceRoot":"","sources":["../../src/lib/conversation-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -103,7 +103,7 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
|
|
|
103
103
|
private startTurnBroadcasterExecution;
|
|
104
104
|
/**
|
|
105
105
|
* Type guard to check if a value is a non-streaming response
|
|
106
|
-
* Only requires 'output' field and absence of
|
|
106
|
+
* Only requires 'output' field and absence of readable stream behavior
|
|
107
107
|
*/
|
|
108
108
|
private isNonStreamingResponse;
|
|
109
109
|
/**
|
|
@@ -151,13 +151,24 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
|
|
|
151
151
|
*/
|
|
152
152
|
private shouldStopExecution;
|
|
153
153
|
/**
|
|
154
|
-
* Check if any tool calls
|
|
154
|
+
* Check if any tool calls can be auto-resolved in the current turn.
|
|
155
155
|
* Used to determine if automatic tool execution should be attempted.
|
|
156
156
|
*
|
|
157
|
+
* A tool call is auto-resolvable if its tool has either an `execute` function
|
|
158
|
+
* (regular or generator) or an `onToolCalled` hook (HITL). HITL tools are
|
|
159
|
+
* included here because their hook fires before the model's follow-up request,
|
|
160
|
+
* even when the hook ultimately decides to pause by returning `null`.
|
|
161
|
+
*
|
|
157
162
|
* @param toolCalls - The tool calls to check
|
|
158
|
-
* @returns True if at least one tool call
|
|
163
|
+
* @returns True if at least one tool call is auto-resolvable
|
|
159
164
|
*/
|
|
160
165
|
private hasExecutableToolCalls;
|
|
166
|
+
/**
|
|
167
|
+
* A manual tool call is one whose tool has neither an `execute` function nor
|
|
168
|
+
* an `onToolCalled` hook — i.e. the caller is expected to produce the output
|
|
169
|
+
* externally. HITL tools are auto-resolvable even when they pause, so they
|
|
170
|
+
* are not classified as manual here.
|
|
171
|
+
*/
|
|
161
172
|
private isManualToolCall;
|
|
162
173
|
/**
|
|
163
174
|
* Execute tools that can auto-execute (don't require approval) in parallel.
|
|
@@ -178,13 +189,41 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
|
|
|
178
189
|
* @throws Error if approval is required but no state accessor is configured
|
|
179
190
|
*/
|
|
180
191
|
private handleApprovalCheck;
|
|
192
|
+
/**
|
|
193
|
+
* Persist state when one or more HITL tools paused during a round.
|
|
194
|
+
*
|
|
195
|
+
* Mirrors `handleApprovalCheck` so paused HITL calls are surfaced through
|
|
196
|
+
* `pendingToolCalls` (visible via `getPendingToolCalls()` / `getState()`).
|
|
197
|
+
* Sets the status to `awaiting_hitl` so the caller can discriminate HITL
|
|
198
|
+
* pauses from approval pauses.
|
|
199
|
+
*
|
|
200
|
+
* Already-executed results from the same round are persisted on the turn's
|
|
201
|
+
* message history via `saveToolResultsToState` (called by the outer loop
|
|
202
|
+
* before this helper) — no need to duplicate them in `unsentToolResults`.
|
|
203
|
+
*
|
|
204
|
+
* @param currentResponse - The response that produced the paused tool calls
|
|
205
|
+
* @param pausedCalls - HITL tool calls whose `onToolCalled` returned `null`
|
|
206
|
+
*/
|
|
207
|
+
private persistHitlPause;
|
|
208
|
+
/**
|
|
209
|
+
* Compute the `output` payload sent to the model for a successfully
|
|
210
|
+
* settled tool execution. Routes through `toModelOutput` when the tool
|
|
211
|
+
* defines one (which may itself throw to surface an error), falls back to
|
|
212
|
+
* `JSON.stringify(result)` otherwise, and emits an error envelope when the
|
|
213
|
+
* executor itself reported an error.
|
|
214
|
+
*/
|
|
215
|
+
private computeToolOutputForModel;
|
|
181
216
|
/**
|
|
182
217
|
* Execute all tools in a single round in parallel.
|
|
183
218
|
* Emits tool.result events after tool execution completes.
|
|
184
219
|
*
|
|
185
220
|
* @param toolCalls - The tool calls to execute
|
|
186
221
|
* @param turnContext - The current turn context
|
|
187
|
-
* @returns
|
|
222
|
+
* @returns Object with the function call outputs formatted for the API and
|
|
223
|
+
* the list of HITL tool calls that paused (returned `null` from
|
|
224
|
+
* `onToolCalled`). Callers should break out of the execution loop when
|
|
225
|
+
* `pausedCalls` is non-empty rather than sending an incomplete set of
|
|
226
|
+
* outputs back to the model.
|
|
188
227
|
*/
|
|
189
228
|
private executeToolRound;
|
|
190
229
|
/**
|
|
@@ -221,6 +260,30 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
|
|
|
221
260
|
* @returns The resolved request without async functions
|
|
222
261
|
*/
|
|
223
262
|
private resolveRequestForContext;
|
|
263
|
+
/**
|
|
264
|
+
* Apply `onResponseReceived` hooks to the freshly-supplied input items
|
|
265
|
+
* only, without re-hooking historical items that live in
|
|
266
|
+
* `currentState.messages`. Historical `function_call` items are passed to
|
|
267
|
+
* `applyOnResponseReceivedHooks` purely as callId → toolName
|
|
268
|
+
* name-resolution context and are dropped from the returned array.
|
|
269
|
+
*
|
|
270
|
+
* This keeps hooks idempotent across `callModel` invocations on the same
|
|
271
|
+
* conversation: the first call hooks the caller-supplied output, and
|
|
272
|
+
* subsequent calls (which rehydrate state) do not re-fire it.
|
|
273
|
+
*
|
|
274
|
+
* @param freshItems - Items newly supplied this turn (not yet hooked).
|
|
275
|
+
* May contain any mix of InputsUnion array members — only
|
|
276
|
+
* `function_call_output` items are affected by hooks; everything else
|
|
277
|
+
* is returned unchanged.
|
|
278
|
+
* @param historicalItems - Existing messages from loaded state. Only
|
|
279
|
+
* `function_call` entries are consulted for name resolution; no other
|
|
280
|
+
* items are inspected and none are mutated.
|
|
281
|
+
* @param turnContext - Turn context for hook invocation
|
|
282
|
+
* @returns The fresh items in original order, with `output` rewritten on
|
|
283
|
+
* any `function_call_output` whose matching HITL tool defines
|
|
284
|
+
* `onResponseReceived`.
|
|
285
|
+
*/
|
|
286
|
+
private applyHooksToFreshItems;
|
|
224
287
|
/**
|
|
225
288
|
* Safely persist state with error handling.
|
|
226
289
|
* Wraps state save operations to ensure failures are properly reported.
|
|
@@ -295,7 +358,25 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
|
|
|
295
358
|
* - image_generation_call: Image generation operations
|
|
296
359
|
* - function_call_output: Results from executed tools
|
|
297
360
|
*/
|
|
298
|
-
getItemsStream(): AsyncIterableIterator<StreamableOutputItem
|
|
361
|
+
getItemsStream(): AsyncIterableIterator<StreamableOutputItem<TTools>>;
|
|
362
|
+
/**
|
|
363
|
+
* Compute the runtime allow-list of item types that `getItemsStream()`
|
|
364
|
+
* may yield, derived from the tools actually passed to callModel. The
|
|
365
|
+
* three return modes correspond to the compile-time narrowing:
|
|
366
|
+
*
|
|
367
|
+
* - `acceptAll: true` — no tools or fully-unconstrained TTools; the
|
|
368
|
+
* yielded union is the widest `StreamableOutputItem`.
|
|
369
|
+
* - Specific `allowed` set — client tools contribute
|
|
370
|
+
* `function_call` / `function_call_output`; mapped server tools
|
|
371
|
+
* contribute their SDK output item type literal
|
|
372
|
+
* (`web_search_call`, `file_search_call`, `image_generation_call`).
|
|
373
|
+
* - `acceptGenericServerItem: true` — at least one server tool has a
|
|
374
|
+
* type the agent SDK does not have a dedicated output mapping for
|
|
375
|
+
* (e.g. `openrouter:datetime`, `mcp`, new SDK additions). Any
|
|
376
|
+
* non-client item type is accepted because these items pass through
|
|
377
|
+
* as `OutputServerToolItem`, whose `type` field is an open `string`.
|
|
378
|
+
*/
|
|
379
|
+
private computeItemStreamScope;
|
|
299
380
|
/**
|
|
300
381
|
* @deprecated Use `getItemsStream()` instead. This method only streams messages,
|
|
301
382
|
* while `getItemsStream()` streams all output item types (messages, function_calls,
|
|
@@ -351,8 +432,11 @@ export declare class ModelResult<TTools extends readonly Tool[], TShared extends
|
|
|
351
432
|
*/
|
|
352
433
|
cancel(): Promise<void>;
|
|
353
434
|
/**
|
|
354
|
-
* Check if the conversation requires human
|
|
355
|
-
* Returns true
|
|
435
|
+
* Check if the conversation requires human input to continue.
|
|
436
|
+
* Returns true when the conversation is paused waiting for caller-supplied
|
|
437
|
+
* decisions — either approval/rejection (`awaiting_approval`) or HITL tool
|
|
438
|
+
* resume (`awaiting_hitl`). Also returns true whenever `pendingToolCalls`
|
|
439
|
+
* is populated regardless of status.
|
|
356
440
|
*/
|
|
357
441
|
requiresApproval(): Promise<boolean>;
|
|
358
442
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-result.d.ts","sourceRoot":"","sources":["../../src/lib/model-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAA0B,MAAM,mBAAmB,CAAC;AAkBhF,OAAO,KAAK,EAAkB,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"model-result.d.ts","sourceRoot":"","sources":["../../src/lib/model-result.ts"],"names":[],"mappings":"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"}
|