@openrouter/agent 0.8.0 → 0.10.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 (193) hide show
  1. package/README.md +732 -7
  2. package/THIRD_PARTY_NOTICES.md +25 -0
  3. package/esm/index.d.ts +20 -5
  4. package/esm/index.d.ts.map +1 -1
  5. package/esm/index.js +10 -3
  6. package/esm/index.js.map +1 -1
  7. package/esm/inner-loop/call-model.d.ts.map +1 -1
  8. package/esm/inner-loop/call-model.js +63 -46
  9. package/esm/inner-loop/call-model.js.map +1 -1
  10. package/esm/inner-loop/resume-tool-results.d.ts +128 -0
  11. package/esm/inner-loop/resume-tool-results.d.ts.map +1 -0
  12. package/esm/inner-loop/resume-tool-results.js +244 -0
  13. package/esm/inner-loop/resume-tool-results.js.map +1 -0
  14. package/esm/lib/agent-tool.d.ts +92 -0
  15. package/esm/lib/agent-tool.d.ts.map +1 -0
  16. package/esm/lib/agent-tool.js +211 -0
  17. package/esm/lib/agent-tool.js.map +1 -0
  18. package/esm/lib/async-params.d.ts +96 -0
  19. package/esm/lib/async-params.d.ts.map +1 -1
  20. package/esm/lib/async-params.js +30 -1
  21. package/esm/lib/async-params.js.map +1 -1
  22. package/esm/lib/async-tool-registry.d.ts +134 -0
  23. package/esm/lib/async-tool-registry.d.ts.map +1 -0
  24. package/esm/lib/async-tool-registry.js +352 -0
  25. package/esm/lib/async-tool-registry.js.map +1 -0
  26. package/esm/lib/async-tools.d.ts +23 -0
  27. package/esm/lib/async-tools.d.ts.map +1 -0
  28. package/esm/lib/async-tools.js +19 -0
  29. package/esm/lib/async-tools.js.map +1 -0
  30. package/esm/lib/conversation-state.d.ts +1 -0
  31. package/esm/lib/conversation-state.d.ts.map +1 -1
  32. package/esm/lib/conversation-state.js +8 -0
  33. package/esm/lib/conversation-state.js.map +1 -1
  34. package/esm/lib/doom-loop.d.ts +533 -0
  35. package/esm/lib/doom-loop.d.ts.map +1 -0
  36. package/esm/lib/doom-loop.js +1221 -0
  37. package/esm/lib/doom-loop.js.map +1 -0
  38. package/esm/lib/hooks-schemas.d.ts +33 -0
  39. package/esm/lib/hooks-schemas.d.ts.map +1 -1
  40. package/esm/lib/hooks-schemas.js +54 -0
  41. package/esm/lib/hooks-schemas.js.map +1 -1
  42. package/esm/lib/hooks-types.d.ts +6 -2
  43. package/esm/lib/hooks-types.d.ts.map +1 -1
  44. package/esm/lib/hooks-types.js.map +1 -1
  45. package/esm/lib/model-result.d.ts +648 -12
  46. package/esm/lib/model-result.d.ts.map +1 -1
  47. package/esm/lib/model-result.js +2784 -164
  48. package/esm/lib/model-result.js.map +1 -1
  49. package/esm/lib/next-turn-params.d.ts.map +1 -1
  50. package/esm/lib/next-turn-params.js +3 -1
  51. package/esm/lib/next-turn-params.js.map +1 -1
  52. package/esm/lib/next-turn-params.test.js +72 -0
  53. package/esm/lib/next-turn-params.test.js.map +1 -1
  54. package/esm/lib/reusable-stream.d.ts +9 -0
  55. package/esm/lib/reusable-stream.d.ts.map +1 -1
  56. package/esm/lib/reusable-stream.js +17 -0
  57. package/esm/lib/reusable-stream.js.map +1 -1
  58. package/esm/lib/stream-transformers.d.ts +21 -1
  59. package/esm/lib/stream-transformers.d.ts.map +1 -1
  60. package/esm/lib/stream-transformers.js +45 -0
  61. package/esm/lib/stream-transformers.js.map +1 -1
  62. package/esm/lib/tool-check.d.ts +76 -0
  63. package/esm/lib/tool-check.d.ts.map +1 -0
  64. package/esm/lib/tool-check.js +241 -0
  65. package/esm/lib/tool-check.js.map +1 -0
  66. package/esm/lib/tool-concurrency.d.ts +42 -0
  67. package/esm/lib/tool-concurrency.d.ts.map +1 -0
  68. package/esm/lib/tool-concurrency.js +80 -0
  69. package/esm/lib/tool-concurrency.js.map +1 -0
  70. package/esm/lib/tool-context.d.ts +45 -1
  71. package/esm/lib/tool-context.d.ts.map +1 -1
  72. package/esm/lib/tool-context.js +60 -1
  73. package/esm/lib/tool-context.js.map +1 -1
  74. package/esm/lib/tool-executor.d.ts +52 -9
  75. package/esm/lib/tool-executor.d.ts.map +1 -1
  76. package/esm/lib/tool-executor.js +253 -21
  77. package/esm/lib/tool-executor.js.map +1 -1
  78. package/esm/lib/tool-orchestrator.d.ts.map +1 -1
  79. package/esm/lib/tool-orchestrator.js +87 -50
  80. package/esm/lib/tool-orchestrator.js.map +1 -1
  81. package/esm/lib/tool-set-types.d.ts +298 -0
  82. package/esm/lib/tool-set-types.d.ts.map +1 -0
  83. package/esm/lib/tool-set-types.js +2 -0
  84. package/esm/lib/tool-set-types.js.map +1 -0
  85. package/esm/lib/tool-set.d.ts +157 -0
  86. package/esm/lib/tool-set.d.ts.map +1 -0
  87. package/esm/lib/tool-set.js +473 -0
  88. package/esm/lib/tool-set.js.map +1 -0
  89. package/esm/lib/tool-task.d.ts +157 -0
  90. package/esm/lib/tool-task.d.ts.map +1 -0
  91. package/esm/lib/tool-task.js +206 -0
  92. package/esm/lib/tool-task.js.map +1 -0
  93. package/esm/lib/tool-types.d.ts +667 -38
  94. package/esm/lib/tool-types.d.ts.map +1 -1
  95. package/esm/lib/tool-types.js +59 -10
  96. package/esm/lib/tool-types.js.map +1 -1
  97. package/esm/lib/tool.d.ts +227 -19
  98. package/esm/lib/tool.d.ts.map +1 -1
  99. package/esm/lib/tool.js +206 -6
  100. package/esm/lib/tool.js.map +1 -1
  101. package/esm/mcp/auth/auth-resolver.d.ts +14 -0
  102. package/esm/mcp/auth/auth-resolver.d.ts.map +1 -0
  103. package/esm/mcp/auth/auth-resolver.js +27 -0
  104. package/esm/mcp/auth/auth-resolver.js.map +1 -0
  105. package/esm/mcp/auth/auth-types.d.ts +33 -0
  106. package/esm/mcp/auth/auth-types.d.ts.map +1 -0
  107. package/esm/mcp/auth/auth-types.js +4 -0
  108. package/esm/mcp/auth/auth-types.js.map +1 -0
  109. package/esm/mcp/build-tools.d.ts +29 -0
  110. package/esm/mcp/build-tools.d.ts.map +1 -0
  111. package/esm/mcp/build-tools.js +80 -0
  112. package/esm/mcp/build-tools.js.map +1 -0
  113. package/esm/mcp/cache/cache-store.d.ts +24 -0
  114. package/esm/mcp/cache/cache-store.d.ts.map +1 -0
  115. package/esm/mcp/cache/cache-store.js +20 -0
  116. package/esm/mcp/cache/cache-store.js.map +1 -0
  117. package/esm/mcp/cache/cache-types.d.ts +71 -0
  118. package/esm/mcp/cache/cache-types.d.ts.map +1 -0
  119. package/esm/mcp/cache/cache-types.js +49 -0
  120. package/esm/mcp/cache/cache-types.js.map +1 -0
  121. package/esm/mcp/cache/serialize.d.ts +25 -0
  122. package/esm/mcp/cache/serialize.d.ts.map +1 -0
  123. package/esm/mcp/cache/serialize.js +96 -0
  124. package/esm/mcp/cache/serialize.js.map +1 -0
  125. package/esm/mcp/close-quietly.d.ts +24 -0
  126. package/esm/mcp/close-quietly.d.ts.map +1 -0
  127. package/esm/mcp/close-quietly.js +30 -0
  128. package/esm/mcp/close-quietly.js.map +1 -0
  129. package/esm/mcp/create-mcp-tools.d.ts +13 -0
  130. package/esm/mcp/create-mcp-tools.d.ts.map +1 -0
  131. package/esm/mcp/create-mcp-tools.js +87 -0
  132. package/esm/mcp/create-mcp-tools.js.map +1 -0
  133. package/esm/mcp/elicitation.d.ts +11 -0
  134. package/esm/mcp/elicitation.d.ts.map +1 -0
  135. package/esm/mcp/elicitation.js +51 -0
  136. package/esm/mcp/elicitation.js.map +1 -0
  137. package/esm/mcp/errors.d.ts +91 -0
  138. package/esm/mcp/errors.d.ts.map +1 -0
  139. package/esm/mcp/errors.js +91 -0
  140. package/esm/mcp/errors.js.map +1 -0
  141. package/esm/mcp/handle.d.ts +66 -0
  142. package/esm/mcp/handle.d.ts.map +1 -0
  143. package/esm/mcp/handle.js +323 -0
  144. package/esm/mcp/handle.js.map +1 -0
  145. package/esm/mcp/index.d.ts +13 -0
  146. package/esm/mcp/index.d.ts.map +1 -0
  147. package/esm/mcp/index.js +11 -0
  148. package/esm/mcp/index.js.map +1 -0
  149. package/esm/mcp/mcp-connection.d.ts +150 -0
  150. package/esm/mcp/mcp-connection.d.ts.map +1 -0
  151. package/esm/mcp/mcp-connection.js +478 -0
  152. package/esm/mcp/mcp-connection.js.map +1 -0
  153. package/esm/mcp/mcp-sdk.d.ts +10 -0
  154. package/esm/mcp/mcp-sdk.d.ts.map +1 -0
  155. package/esm/mcp/mcp-sdk.js +37 -0
  156. package/esm/mcp/mcp-sdk.js.map +1 -0
  157. package/esm/mcp/rehydrate.d.ts +76 -0
  158. package/esm/mcp/rehydrate.d.ts.map +1 -0
  159. package/esm/mcp/rehydrate.js +505 -0
  160. package/esm/mcp/rehydrate.js.map +1 -0
  161. package/esm/mcp/resource-tools.d.ts +17 -0
  162. package/esm/mcp/resource-tools.d.ts.map +1 -0
  163. package/esm/mcp/resource-tools.js +155 -0
  164. package/esm/mcp/resource-tools.js.map +1 -0
  165. package/esm/mcp/result-mapper.d.ts +19 -0
  166. package/esm/mcp/result-mapper.d.ts.map +1 -0
  167. package/esm/mcp/result-mapper.js +40 -0
  168. package/esm/mcp/result-mapper.js.map +1 -0
  169. package/esm/mcp/schema/json-schema-guards.d.ts +14 -0
  170. package/esm/mcp/schema/json-schema-guards.d.ts.map +1 -0
  171. package/esm/mcp/schema/json-schema-guards.js +19 -0
  172. package/esm/mcp/schema/json-schema-guards.js.map +1 -0
  173. package/esm/mcp/schema/json-schema-to-zod.d.ts +20 -0
  174. package/esm/mcp/schema/json-schema-to-zod.d.ts.map +1 -0
  175. package/esm/mcp/schema/json-schema-to-zod.js +72 -0
  176. package/esm/mcp/schema/json-schema-to-zod.js.map +1 -0
  177. package/esm/mcp/tool-wrapper.d.ts +41 -0
  178. package/esm/mcp/tool-wrapper.d.ts.map +1 -0
  179. package/esm/mcp/tool-wrapper.js +131 -0
  180. package/esm/mcp/tool-wrapper.js.map +1 -0
  181. package/esm/mcp/transport-types.d.ts +45 -0
  182. package/esm/mcp/transport-types.d.ts.map +1 -0
  183. package/esm/mcp/transport-types.js +2 -0
  184. package/esm/mcp/transport-types.js.map +1 -0
  185. package/esm/mcp/types.d.ts +119 -0
  186. package/esm/mcp/types.d.ts.map +1 -0
  187. package/esm/mcp/types.js +2 -0
  188. package/esm/mcp/types.js.map +1 -0
  189. package/esm/mcp/version.d.ts +3 -0
  190. package/esm/mcp/version.d.ts.map +1 -0
  191. package/esm/mcp/version.js +5 -0
  192. package/esm/mcp/version.js.map +1 -0
  193. package/package.json +70 -5
@@ -1,8 +1,8 @@
1
1
  import { applyNextTurnParamsToRequest, executeNextTurnParamsFunctions, } from './next-turn-params.js';
2
2
  import { extractToolCallsFromResponse, responseHasToolCalls } from './stream-transformers.js';
3
3
  import { isFunctionCallItem } from './stream-type-guards.js';
4
- import { executeTool, findToolByName } from './tool-executor.js';
5
- import { isAutoResolvableTool, isMcpTool } from './tool-types.js';
4
+ import { executeTool, findToolByName, isAsyncToolInvocation } from './tool-executor.js';
5
+ import { isAutoResolvableTool, isMcpTool, isUnifiedTool } from './tool-types.js';
6
6
  import { buildTurnContext } from './turn-context.js';
7
7
  /**
8
8
  * Execute tool calls and manage multi-turn conversations
@@ -48,45 +48,13 @@ export async function executeToolLoop(sendRequest, initialInput, initialRequest,
48
48
  break;
49
49
  }
50
50
  // Execute all tool calls in parallel (parallel tool calling)
51
- const toolCallPromises = toolCalls.map(async (toolCall) => {
52
- const tool = findToolByName(tools, toolCall.name);
53
- if (!tool) {
54
- // Tool not found in definitions
55
- return {
56
- toolCallId: toolCall.id,
57
- toolName: toolCall.name,
58
- source: 'client',
59
- result: null,
60
- error: new Error(`Tool "${toolCall.name}" not found in tool definitions`),
61
- };
62
- }
63
- if (!isAutoResolvableTool(tool)) {
64
- // Tool has no execute/onToolCalled - return null to filter out
65
- return null;
66
- }
67
- // Find the raw tool call from the response output
68
- const rawToolCall = currentResponse.output.find((item) => isFunctionCallItem(item) && item.callId === toolCall.id);
69
- if (!rawToolCall) {
70
- throw new Error(`Could not find raw tool call for ${toolCall.id}`);
71
- }
72
- // Convert to FunctionCallItem format
73
- const openResponsesToolCall = {
74
- type: 'function_call',
75
- callId: rawToolCall.callId,
76
- name: rawToolCall.name,
77
- arguments: rawToolCall.arguments,
78
- id: rawToolCall.callId,
79
- status: rawToolCall.status,
80
- };
81
- // Build turn context with full information
82
- const turnContext = buildTurnContext({
83
- numberOfTurns: currentRound,
84
- toolCall: openResponsesToolCall,
85
- turnRequest: currentRequest,
86
- });
87
- // Execute the tool
88
- return executeTool(tool, toolCall, turnContext, onPreliminaryResult);
89
- });
51
+ const toolCallPromises = toolCalls.map((toolCall) => executeOrchestratedCall(toolCall, {
52
+ tools,
53
+ response: currentResponse,
54
+ request: currentRequest,
55
+ round: currentRound,
56
+ onPreliminaryResult,
57
+ }));
90
58
  // Wait for all tool executions to complete in parallel
91
59
  const settledResults = await Promise.allSettled(toolCallPromises);
92
60
  // Process settled results, handling both fulfilled and rejected promises
@@ -96,21 +64,32 @@ export async function executeToolLoop(sendRequest, initialInput, initialRequest,
96
64
  if (!toolCall) {
97
65
  return;
98
66
  }
67
+ const errorResult = (error) => {
68
+ const failedTool = findToolByName(tools, toolCall.name);
69
+ return {
70
+ toolCallId: toolCall.id,
71
+ toolName: toolCall.name,
72
+ source: failedTool !== undefined && isMcpTool(failedTool) ? 'mcp' : 'client',
73
+ result: null,
74
+ error,
75
+ };
76
+ };
99
77
  if (settled.status === 'fulfilled') {
100
- if (settled.value !== null) {
78
+ // This legacy loop predates async tools and only understands
79
+ // synchronous execution results (background/deferred invocations
80
+ // are handled by ModelResult's live loop). Surface an explicit
81
+ // error rather than silently dropping the call — an unpaired
82
+ // function_call would poison any history built from these results.
83
+ if (settled.value !== null && isAsyncToolInvocation(settled.value)) {
84
+ roundResults.push(errorResult(new Error(`Tool "${toolCall.name}" uses an async lifecycle (background/deferred), which executeToolLoop does not support — run it through callModel instead.`)));
85
+ }
86
+ else if (settled.value !== null) {
101
87
  roundResults.push(settled.value);
102
88
  }
103
89
  }
104
90
  else {
105
91
  // Promise rejected - create error result
106
- const rejectedTool = findToolByName(tools, toolCall.name);
107
- roundResults.push({
108
- toolCallId: toolCall.id,
109
- toolName: toolCall.name,
110
- source: rejectedTool !== undefined && isMcpTool(rejectedTool) ? 'mcp' : 'client',
111
- result: null,
112
- error: settled.reason instanceof Error ? settled.reason : new Error(String(settled.reason)),
113
- });
92
+ roundResults.push(errorResult(settled.reason instanceof Error ? settled.reason : new Error(String(settled.reason))));
114
93
  }
115
94
  });
116
95
  toolExecutionResults.push(...roundResults);
@@ -182,4 +161,62 @@ export function getToolExecutionErrors(results) {
182
161
  .filter((result) => result.error !== undefined)
183
162
  .map((result) => result.error);
184
163
  }
164
+ /**
165
+ * Execute one orchestrated tool call: resolve the tool, rebuild the raw
166
+ * `function_call` item, build the turn context, and run the tool. Returns
167
+ * `null` for calls with nothing to execute (manual tools), an error-shaped
168
+ * result for unknown tools.
169
+ */
170
+ async function executeOrchestratedCall(toolCall, round) {
171
+ const tool = findToolByName(round.tools, toolCall.name);
172
+ if (!tool) {
173
+ // Tool not found in definitions
174
+ return {
175
+ toolCallId: toolCall.id,
176
+ toolName: toolCall.name,
177
+ source: 'client',
178
+ result: null,
179
+ error: new Error(`Tool "${toolCall.name}" not found in tool definitions`),
180
+ };
181
+ }
182
+ if (!isAutoResolvableTool(tool)) {
183
+ // Tool has no execute/onToolCalled - return null to filter out
184
+ return null;
185
+ }
186
+ // Async lifecycles are unsupported here — short-circuit BEFORE running
187
+ // the body. This matters for deferred tools especially: their run()
188
+ // executes in-round and would open an external ticket that this loop can
189
+ // never resolve (an orphan external task).
190
+ if (isUnifiedTool(tool) && tool.function.lifecycle && tool.function.lifecycle !== 'sync') {
191
+ return {
192
+ toolCallId: toolCall.id,
193
+ toolName: toolCall.name,
194
+ source: isMcpTool(tool) ? 'mcp' : 'client',
195
+ result: null,
196
+ error: new Error(`Tool "${toolCall.name}" uses an async lifecycle ('${tool.function.lifecycle}'), which executeToolLoop does not support — run it through callModel instead.`),
197
+ };
198
+ }
199
+ // Find the raw tool call from the response output
200
+ const rawToolCall = round.response.output.find((item) => isFunctionCallItem(item) && item.callId === toolCall.id);
201
+ if (!rawToolCall) {
202
+ throw new Error(`Could not find raw tool call for ${toolCall.id}`);
203
+ }
204
+ // Convert to FunctionCallItem format
205
+ const openResponsesToolCall = {
206
+ type: 'function_call',
207
+ callId: rawToolCall.callId,
208
+ name: rawToolCall.name,
209
+ arguments: rawToolCall.arguments,
210
+ id: rawToolCall.callId,
211
+ status: rawToolCall.status,
212
+ };
213
+ // Build turn context with full information
214
+ const turnContext = buildTurnContext({
215
+ numberOfTurns: round.round,
216
+ toolCall: openResponsesToolCall,
217
+ turnRequest: round.request,
218
+ });
219
+ // Execute the tool
220
+ return executeTool(tool, toolCall, turnContext, round.onPreliminaryResult);
221
+ }
185
222
  //# sourceMappingURL=tool-orchestrator.js.map
@@ -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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"}
@@ -0,0 +1,298 @@
1
+ import { TOOL_SET_SNAPSHOT } from './async-params.js';
2
+ import type { ClientTool, ConversationState, CorrelatedToolEventUnion, ServerToolBase, Tool } from './tool-types.js';
3
+ /** Client tool: `function.name` literal. */
4
+ export type ClientToolName<T> = T extends {
5
+ function: {
6
+ name: infer N extends string;
7
+ };
8
+ } ? N : never;
9
+ /**
10
+ * Server-tool stable ID.
11
+ * Prefixed so it can never collide with a client function name.
12
+ * Prefers an explicit `id` on the tool; falls back to `server:${config.type}`.
13
+ *
14
+ * When `T`'s `id` has been widened to plain `string` (e.g. a custom-ID
15
+ * `ServerTool<T, TId>` value erased to the exported `ServerToolBase`
16
+ * interface), the concrete literal is no longer visible at the type level.
17
+ * Synthesizing `` `server:${config.type}` `` in that case would be unsound:
18
+ * the runtime `id` could be anything, and the synthesized literal would
19
+ * both reject the real id and falsely claim a default that may not hold.
20
+ * Widening to `string` here is the sound choice — it accepts any runtime id.
21
+ * Only tools with no structural `id` at all fall back to the synthesized
22
+ * default, and concrete `ServerTool<T, TId>` values keep their literal `TId`.
23
+ */
24
+ export type ServerToolIdOf<T> = 'id' extends keyof T ? T extends {
25
+ readonly id?: infer Id;
26
+ } ? Extract<Id, string> extends infer StringId extends string ? string extends StringId ? string : StringId : never : never : T extends {
27
+ readonly config: {
28
+ type: infer K extends string;
29
+ };
30
+ } ? `server:${K}` : never;
31
+ /** Union of every addressable id for one tool. */
32
+ export type ToolIdOf<T extends Tool> = T extends ServerToolBase ? ServerToolIdOf<T> : ClientToolName<T>;
33
+ export type ToolIdsOfTuple<T extends readonly Tool[]> = ToolIdOf<T[number]>;
34
+ export type ClientToolNamesOfTuple<T extends readonly Tool[]> = ClientToolName<Extract<T[number], ClientTool>>;
35
+ export type ServerToolIdsOfTuple<T extends readonly Tool[]> = ServerToolIdOf<Extract<T[number], ServerToolBase>>;
36
+ /** Lookup tool by id inside a tuple (preserves concrete member type). */
37
+ export type ToolById<T extends readonly Tool[], Id extends string> = Extract<{
38
+ [I in keyof T]: T[I] extends Tool ? (ToolIdOf<T[I]> extends Id ? T[I] : never) : never;
39
+ }[number], Tool>;
40
+ /**
41
+ * Distributive per-element filter used for the wide (non-tuple) case below.
42
+ * A "naked" type parameter (`El`) is required for the conditional to
43
+ * distribute over the `T[number]` union; wrapping it in an indexed access
44
+ * (e.g. checking `T[number]` directly inside the conditional) would collapse
45
+ * to a single non-distributive check instead.
46
+ */
47
+ type KeepIfActive<El, Active extends string> = El extends Tool ? string extends ToolIdOf<El> ? El : ToolIdOf<El> extends Active ? El : never : never;
48
+ /**
49
+ * Keep tuple order; drop members whose id is not in Active.
50
+ *
51
+ * A genuine fixed-length tuple (`T['length']` is a literal number) is
52
+ * filtered by exact head/tail recursion, preserving order and concrete
53
+ * per-element types. A dynamic `readonly Tool[]` (e.g. an `@openrouter/agent/mcp`
54
+ * tool array not typed as a literal tuple) has `number extends T['length']`,
55
+ * so it falls back to a distributive per-element filter instead of
56
+ * recursing — the tuple pattern never matches a general array, and without
57
+ * this branch the recursion always bottoms out at `readonly []`.
58
+ */
59
+ export type FilterToolsByIds<T extends readonly Tool[], Active extends string> = number extends T['length'] ? readonly KeepIfActive<T[number], Active>[] : T extends readonly [
60
+ infer H extends Tool,
61
+ ...infer R extends readonly Tool[]
62
+ ] ? ToolIdOf<H> extends Active ? readonly [
63
+ H,
64
+ ...FilterToolsByIds<R, Active>
65
+ ] : FilterToolsByIds<R, Active> : readonly [];
66
+ /** IDs that are statically enabled or selected from the conditional partition. */
67
+ type ResolvedActiveIds<P extends Partition, TActive extends string> = P['enabled'] | Extract<TActive, P['conditional']>;
68
+ /**
69
+ * Exact tuple for static partitions; possible active members for partitions
70
+ * whose runtime predicates can change tuple membership.
71
+ */
72
+ export type ResolvedTools<TTools extends readonly Tool[], P extends Partition, TActive extends P['conditional'] = P['conditional']> = [
73
+ P['conditional']
74
+ ] extends [
75
+ never
76
+ ] ? FilterToolsByIds<TTools, P['enabled'] & ToolIdsOfTuple<TTools>> : readonly FilterToolsByIds<TTools, ResolvedActiveIds<P, TActive> & ToolIdsOfTuple<TTools>>[number][];
77
+ /**
78
+ * Enabled = statically on (default, or .activate / situation.enabled)
79
+ * Disabled = statically off (.deactivate / situation.disabled)
80
+ * Conditional = runtime predicate (.activateWhen / .deactivateWhen / situation rules)
81
+ *
82
+ * Invariants (enforced by mutators via Exclude):
83
+ * Enabled ∩ Disabled = ∅
84
+ * Enabled ∩ Conditional = ∅
85
+ * Disabled ∩ Conditional = ∅
86
+ * Enabled ∪ Disabled ∪ Conditional = all known IDs
87
+ */
88
+ export type Partition = {
89
+ enabled: string;
90
+ disabled: string;
91
+ conditional: string;
92
+ };
93
+ export type EmptyPartition = {
94
+ enabled: never;
95
+ disabled: never;
96
+ conditional: never;
97
+ };
98
+ /** Default construction: every tool ID enabled. */
99
+ export type InitialPartition<T extends readonly Tool[]> = {
100
+ enabled: ToolIdsOfTuple<T>;
101
+ disabled: never;
102
+ conditional: never;
103
+ };
104
+ /**
105
+ * Deliberately imprecise partition for mutable `ToolSet` instances.
106
+ *
107
+ * A mutable `ToolSet` mutates one shared runtime object in place, and any
108
+ * number of aliases can reference that same object. If mutators refined the
109
+ * partition type the way the immutable path does, two aliases of the same
110
+ * live object could statically claim different, contradictory exact
111
+ * partitions the instant one of them mutated — an unsound state (e.g. one
112
+ * alias's type promising `disabled: never` while the object it points to
113
+ * has, in fact, just been deactivated through another alias).
114
+ *
115
+ * Mutable instances therefore use this single widened partition,
116
+ * unconditionally and unchanging, for their entire lifetime: nothing is
117
+ * ever statically guaranteed enabled or disabled, and every id is treated
118
+ * as `conditional` (only knowable by calling `resolve()`). Every alias of a
119
+ * mutable instance carries the exact same (already maximally conservative)
120
+ * type, so no alias can ever make a compile-time claim the runtime object
121
+ * could contradict.
122
+ */
123
+ export type WidenedPartition<T extends readonly Tool[]> = {
124
+ enabled: never;
125
+ disabled: never;
126
+ conditional: ToolIdsOfTuple<T>;
127
+ };
128
+ export type ActivatePartition<P extends Partition, Name extends string> = {
129
+ enabled: P['enabled'] | Name;
130
+ disabled: Exclude<P['disabled'], Name>;
131
+ conditional: Exclude<P['conditional'], Name>;
132
+ };
133
+ export type DeactivatePartition<P extends Partition, Name extends string> = {
134
+ enabled: Exclude<P['enabled'], Name>;
135
+ disabled: P['disabled'] | Name;
136
+ conditional: Exclude<P['conditional'], Name>;
137
+ };
138
+ export type ConditionalPartition<P extends Partition, Name extends string> = {
139
+ enabled: Exclude<P['enabled'], Name>;
140
+ disabled: Exclude<P['disabled'], Name>;
141
+ conditional: P['conditional'] | Name;
142
+ };
143
+ export type ActivationInput<TShared extends Record<string, unknown> = Record<string, unknown>> = {
144
+ state?: ConversationState;
145
+ context?: TShared;
146
+ };
147
+ export type ActivationPredicate<TShared extends Record<string, unknown> = Record<string, unknown>> = (input: ActivationInput<TShared>) => boolean;
148
+ export type SituationConditionalRule<TShared extends Record<string, unknown> = Record<string, unknown>> = ActivationPredicate<TShared> | {
149
+ mode?: 'activateWhen' | 'deactivateWhen';
150
+ predicate: ActivationPredicate<TShared>;
151
+ };
152
+ /**
153
+ * Declarative fixed partition overlay for one named situation.
154
+ * Keys not listed keep the base ToolSet partition after the overlay.
155
+ */
156
+ export type SituationConfig<TIds extends string = string, TShared extends Record<string, unknown> = Record<string, unknown>> = {
157
+ /** Statically on in this situation. */
158
+ enabled?: readonly TIds[];
159
+ /** Statically off in this situation. */
160
+ disabled?: readonly TIds[];
161
+ /**
162
+ * Conditional tools for this situation.
163
+ * Default mode is activateWhen (inactive until predicate is true).
164
+ * Use `{ mode: 'deactivateWhen', predicate }` for the reverse default.
165
+ */
166
+ conditional?: {
167
+ readonly [K in TIds]?: SituationConditionalRule<TShared>;
168
+ };
169
+ };
170
+ /** Situations registry accumulated on the ToolSet type. */
171
+ export type SituationMap = Record<string, {
172
+ enabled: string;
173
+ disabled: string;
174
+ conditional: string;
175
+ }>;
176
+ export type EmptySituations = Record<never, never>;
177
+ /**
178
+ * Deliberately imprecise situation registry for mutable `ToolSet` instances.
179
+ *
180
+ * Mirrors {@link WidenedPartition}: since `defineSituations` on a mutable
181
+ * instance mutates the shared runtime situation registry in place, its type
182
+ * cannot statically promise a specific set of situation names without
183
+ * risking the same cross-alias contradiction. `string` keeps every
184
+ * situation name assignable while still requiring a real string key.
185
+ */
186
+ export type WidenedSituationMap = Record<string, Partition>;
187
+ export type SituationNames<S extends SituationMap> = keyof S & string;
188
+ /**
189
+ * Infer the static partition contribution of a situation config object.
190
+ * Missing fields contribute `never`.
191
+ */
192
+ export type InferSituationEntry<C> = {
193
+ enabled: C extends {
194
+ enabled: readonly (infer E extends string)[];
195
+ } ? E : never;
196
+ disabled: C extends {
197
+ disabled: readonly (infer D extends string)[];
198
+ } ? D : never;
199
+ conditional: C extends {
200
+ conditional: infer Cond;
201
+ } ? keyof Cond & string : never;
202
+ };
203
+ export type InferSituationMap<M> = {
204
+ [K in keyof M]: InferSituationEntry<M[K]>;
205
+ };
206
+ /**
207
+ * Apply a situation overlay onto a base partition.
208
+ * Situation wins for every id it mentions; others stay from base.
209
+ */
210
+ export type ApplySituationPartition<Base extends Partition, Sit extends {
211
+ enabled: string;
212
+ disabled: string;
213
+ conditional: string;
214
+ }> = {
215
+ enabled: Exclude<Base['enabled'], Sit['enabled'] | Sit['disabled'] | Sit['conditional']> | Sit['enabled'];
216
+ disabled: Exclude<Base['disabled'], Sit['enabled'] | Sit['disabled'] | Sit['conditional']> | Sit['disabled'];
217
+ conditional: Exclude<Base['conditional'], Sit['enabled'] | Sit['disabled'] | Sit['conditional']> | Sit['conditional'];
218
+ };
219
+ export type StatusReason = 'default' | 'activate' | 'deactivate' | 'activateWhen' | 'deactivateWhen' | 'situation';
220
+ export type ToolStatusEntry = {
221
+ readonly enabled: boolean;
222
+ readonly reason: StatusReason;
223
+ /**
224
+ * The last applicable directive for this tool before predicates ran, if any.
225
+ * Absent when the tool is still at its construction default.
226
+ */
227
+ readonly directive?: 'activate' | 'deactivate' | 'activateWhen' | 'deactivateWhen';
228
+ /** True when the final state depended on evaluating a runtime predicate. */
229
+ readonly predicate?: boolean;
230
+ };
231
+ export type StatusByToolMap<TIds extends string> = {
232
+ readonly [K in TIds]: ToolStatusEntry;
233
+ };
234
+ /**
235
+ * What resolve() / resolveSituation() returns.
236
+ *
237
+ * For static-only partitions (`conditional = never`), the snapshot is fully
238
+ * known at compile time. When conditional ≠ never, TActive selects possible
239
+ * members from `P['conditional']`; `P['enabled']` is always included. Tools
240
+ * become a readonly array of that possible member union because predicates
241
+ * can change length and positions at runtime. Runtime arrays/status are exact.
242
+ *
243
+ * `disabled` is declared as the complement of the *definitely-enabled* set
244
+ * (`P['enabled']`), not of `TActive`. A conditional id's predicate can
245
+ * resolve to either outcome at runtime — `#resolveWithActivation` pushes it
246
+ * into `disabled` whenever the predicate says off — so conditional ids must
247
+ * remain in both the `enabled` and `disabled` upper bounds for the declared
248
+ * types to stay sound. (Subtracting `TActive`, which already includes
249
+ * `P['conditional']`, would wrongly exclude conditional ids from `disabled`.)
250
+ */
251
+ export type ResolvedToolSnapshot<TTools extends readonly Tool[], P extends Partition, TActive extends P['conditional'] = P['conditional']> = {
252
+ /** Active tools only, construction order preserved, concrete member types kept. */
253
+ readonly tools: ResolvedTools<TTools, P, TActive>;
254
+ /** Active client names only (`callModel.activeTools` wire format). Server ids omitted. */
255
+ readonly activeTools: readonly Extract<ResolvedActiveIds<P, TActive>, ClientToolNamesOfTuple<TTools>>[];
256
+ /** Spread-safe input for `callModel`; snapshot metadata is intentionally excluded. */
257
+ readonly callModel: {
258
+ readonly tools: ResolvedTools<TTools, P, TActive>;
259
+ readonly activeTools: readonly Extract<ResolvedActiveIds<P, TActive>, ClientToolNamesOfTuple<TTools>>[];
260
+ };
261
+ /** IDs that resolved active (client + server). */
262
+ readonly enabled: readonly (ResolvedActiveIds<P, TActive> & ToolIdsOfTuple<TTools>)[];
263
+ /**
264
+ * IDs that resolved inactive (client + server). Sound upper bound: the
265
+ * complement of the definitely-enabled set, so conditional ids whose
266
+ * predicate resolves `false` are included here too.
267
+ */
268
+ readonly disabled: readonly Exclude<ToolIdsOfTuple<TTools>, P['enabled']>[];
269
+ /** Exhaustive id → status entry. Every ToolIdsOfTuple key present. */
270
+ readonly statusByTool: StatusByToolMap<ToolIdsOfTuple<TTools>>;
271
+ /** Internal marker allowing `callModel` to recognize a snapshot spread. */
272
+ readonly [TOOL_SET_SNAPSHOT]: true;
273
+ };
274
+ /**
275
+ * Structural shape for extracting partition/situation generics from either
276
+ * mutable or immutable `ToolSet` instances.
277
+ */
278
+ export type ToolSetLike<TTools extends readonly Tool[] = readonly Tool[], TShared extends Record<string, unknown> = Record<string, unknown>, P extends Partition = Partition, Sit extends SituationMap = SituationMap> = {
279
+ readonly tools: TTools;
280
+ readonly _partition?: P;
281
+ readonly _situations?: Sit;
282
+ readonly _shared?: TShared;
283
+ };
284
+ /** Every known tool-set ID. */
285
+ export type InferAllIds<TS> = TS extends ToolSetLike<infer T, any, any, any> ? ToolIdsOfTuple<T> : never;
286
+ /** Definitely-enabled IDs (static). */
287
+ export type InferEnabledIds<TS> = TS extends ToolSetLike<any, any, infer P, any> ? P['enabled'] : never;
288
+ /** Definitely-disabled IDs (static). */
289
+ export type InferDisabledIds<TS> = TS extends ToolSetLike<any, any, infer P, any> ? P['disabled'] : never;
290
+ /** Conditionally-activated IDs (runtime predicate). */
291
+ export type InferConditionalIds<TS> = TS extends ToolSetLike<any, any, infer P, any> ? P['conditional'] : never;
292
+ /**
293
+ * Name-correlated streaming events for a tools tuple.
294
+ * Delegates to the agent's core {@link CorrelatedToolEventUnion}.
295
+ */
296
+ export type InferToolSet<T extends readonly Tool[]> = CorrelatedToolEventUnion<T>;
297
+ export {};
298
+ //# sourceMappingURL=tool-set-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-set-types.d.ts","sourceRoot":"","sources":["../../src/lib/tool-set-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { TOOL_SET_SNAPSHOT } from './async-params.js';
2
+ //# sourceMappingURL=tool-set-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-set-types.js","sourceRoot":"","sources":["../../src/lib/tool-set-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}