@openai/agents-core 0.5.3 → 0.6.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 (112) hide show
  1. package/dist/computer.d.ts +10 -2
  2. package/dist/events.d.ts +1 -1
  3. package/dist/events.js.map +1 -1
  4. package/dist/events.mjs.map +1 -1
  5. package/dist/extensions/handoffFilters.d.ts +4 -3
  6. package/dist/extensions/handoffFilters.js +8 -3
  7. package/dist/extensions/handoffFilters.js.map +1 -1
  8. package/dist/extensions/handoffFilters.mjs +9 -4
  9. package/dist/extensions/handoffFilters.mjs.map +1 -1
  10. package/dist/index.d.ts +4 -4
  11. package/dist/index.js +8 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +2 -2
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/items.d.ts +1158 -32
  16. package/dist/items.js +56 -2
  17. package/dist/items.js.map +1 -1
  18. package/dist/items.mjs +53 -1
  19. package/dist/items.mjs.map +1 -1
  20. package/dist/metadata.js +3 -3
  21. package/dist/metadata.mjs +3 -3
  22. package/dist/model.d.ts +14 -2
  23. package/dist/run.js +2 -2
  24. package/dist/run.js.map +1 -1
  25. package/dist/run.mjs +3 -3
  26. package/dist/run.mjs.map +1 -1
  27. package/dist/runContext.d.ts +12 -1
  28. package/dist/runContext.js +145 -41
  29. package/dist/runContext.js.map +1 -1
  30. package/dist/runContext.mjs +145 -41
  31. package/dist/runContext.mjs.map +1 -1
  32. package/dist/runState.d.ts +506 -18
  33. package/dist/runState.js +321 -15
  34. package/dist/runState.js.map +1 -1
  35. package/dist/runState.mjs +322 -16
  36. package/dist/runState.mjs.map +1 -1
  37. package/dist/runner/approvalRejection.d.ts +13 -0
  38. package/dist/runner/approvalRejection.js +44 -0
  39. package/dist/runner/approvalRejection.js.map +1 -0
  40. package/dist/runner/approvalRejection.mjs +37 -0
  41. package/dist/runner/approvalRejection.mjs.map +1 -0
  42. package/dist/runner/mcpApprovals.js +4 -1
  43. package/dist/runner/mcpApprovals.js.map +1 -1
  44. package/dist/runner/mcpApprovals.mjs +4 -1
  45. package/dist/runner/mcpApprovals.mjs.map +1 -1
  46. package/dist/runner/modelOutputs.d.ts +5 -1
  47. package/dist/runner/modelOutputs.js +552 -12
  48. package/dist/runner/modelOutputs.js.map +1 -1
  49. package/dist/runner/modelOutputs.mjs +552 -13
  50. package/dist/runner/modelOutputs.mjs.map +1 -1
  51. package/dist/runner/modelPreparation.js +5 -2
  52. package/dist/runner/modelPreparation.js.map +1 -1
  53. package/dist/runner/modelPreparation.mjs +5 -2
  54. package/dist/runner/modelPreparation.mjs.map +1 -1
  55. package/dist/runner/sessionPersistence.js +17 -3
  56. package/dist/runner/sessionPersistence.js.map +1 -1
  57. package/dist/runner/sessionPersistence.mjs +17 -3
  58. package/dist/runner/sessionPersistence.mjs.map +1 -1
  59. package/dist/runner/streaming.js +8 -0
  60. package/dist/runner/streaming.js.map +1 -1
  61. package/dist/runner/streaming.mjs +9 -1
  62. package/dist/runner/streaming.mjs.map +1 -1
  63. package/dist/runner/toolExecution.js +105 -95
  64. package/dist/runner/toolExecution.js.map +1 -1
  65. package/dist/runner/toolExecution.mjs +100 -90
  66. package/dist/runner/toolExecution.mjs.map +1 -1
  67. package/dist/runner/toolSearch.d.ts +23 -0
  68. package/dist/runner/toolSearch.js +426 -0
  69. package/dist/runner/toolSearch.js.map +1 -0
  70. package/dist/runner/toolSearch.mjs +416 -0
  71. package/dist/runner/toolSearch.mjs.map +1 -0
  72. package/dist/runner/turnResolution.js +2 -1
  73. package/dist/runner/turnResolution.js.map +1 -1
  74. package/dist/runner/turnResolution.mjs +2 -1
  75. package/dist/runner/turnResolution.mjs.map +1 -1
  76. package/dist/tool.d.ts +50 -0
  77. package/dist/tool.js +79 -0
  78. package/dist/tool.js.map +1 -1
  79. package/dist/tool.mjs +74 -0
  80. package/dist/tool.mjs.map +1 -1
  81. package/dist/toolIdentity.d.ts +23 -0
  82. package/dist/toolIdentity.js +105 -0
  83. package/dist/toolIdentity.js.map +1 -0
  84. package/dist/toolIdentity.mjs +89 -0
  85. package/dist/toolIdentity.mjs.map +1 -0
  86. package/dist/tooling.d.ts +24 -0
  87. package/dist/tooling.js +110 -0
  88. package/dist/tooling.js.map +1 -0
  89. package/dist/tooling.mjs +97 -0
  90. package/dist/tooling.mjs.map +1 -0
  91. package/dist/types/aliases.d.ts +3 -3
  92. package/dist/types/protocol.d.ts +417 -12
  93. package/dist/types/protocol.js +59 -4
  94. package/dist/types/protocol.js.map +1 -1
  95. package/dist/types/protocol.mjs +57 -2
  96. package/dist/types/protocol.mjs.map +1 -1
  97. package/dist/types/providerData.d.ts +2 -0
  98. package/dist/utils/index.d.ts +2 -0
  99. package/dist/utils/index.js +15 -1
  100. package/dist/utils/index.js.map +1 -1
  101. package/dist/utils/index.mjs +2 -0
  102. package/dist/utils/index.mjs.map +1 -1
  103. package/dist/utils/serialize.js +37 -6
  104. package/dist/utils/serialize.js.map +1 -1
  105. package/dist/utils/serialize.mjs +37 -6
  106. package/dist/utils/serialize.mjs.map +1 -1
  107. package/dist/utils/toolSearch.d.ts +1 -0
  108. package/dist/utils/toolSearch.js +13 -0
  109. package/dist/utils/toolSearch.js.map +1 -0
  110. package/dist/utils/toolSearch.mjs +2 -0
  111. package/dist/utils/toolSearch.mjs.map +1 -0
  112. package/package.json +2 -2
@@ -0,0 +1,426 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addLoadedToolNamesFromToolSearchOutput = addLoadedToolNamesFromToolSearchOutput;
4
+ exports.addHostedMcpToolsFromToolSearchOutput = addHostedMcpToolsFromToolSearchOutput;
5
+ exports.validateClientToolSearchSupport = validateClientToolSearchSupport;
6
+ exports.resolveBuiltInClientToolSearchTools = resolveBuiltInClientToolSearchTools;
7
+ exports.createClientToolSearchOutputFromTools = createClientToolSearchOutputFromTools;
8
+ exports.createBuiltInClientToolSearchOutput = createBuiltInClientToolSearchOutput;
9
+ exports.executeCustomClientToolSearch = executeCustomClientToolSearch;
10
+ exports.getClientToolSearchHelper = getClientToolSearchHelper;
11
+ const errors_1 = require("../errors.js");
12
+ const tool_1 = require("../tool.js");
13
+ const toolIdentity_1 = require("../toolIdentity.js");
14
+ const serialize_1 = require("../utils/serialize.js");
15
+ const toolSearch_1 = require("../utils/toolSearch.js");
16
+ function isDeferredFunctionTool(tool) {
17
+ return tool.type === 'function' && tool.deferLoading === true;
18
+ }
19
+ function isTopLevelDeferredFunctionTool(tool) {
20
+ return (isDeferredFunctionTool(tool) && !(0, toolIdentity_1.getExplicitFunctionToolNamespace)(tool));
21
+ }
22
+ function isDeferredHostedMcpTool(tool) {
23
+ return (tool.type === 'hosted_tool' &&
24
+ tool.providerData?.type === 'mcp' &&
25
+ tool.providerData.defer_loading === true);
26
+ }
27
+ function getBuiltInClientToolSearchArguments(value) {
28
+ if (!value || typeof value !== 'object') {
29
+ return undefined;
30
+ }
31
+ const paths = value.paths;
32
+ if (!Array.isArray(paths)) {
33
+ return undefined;
34
+ }
35
+ return {
36
+ paths: paths.filter((path) => typeof path === 'string' && path.length > 0),
37
+ };
38
+ }
39
+ function getDeferredFunctionToolsByName(tools) {
40
+ return new Map(tools
41
+ .filter(isTopLevelDeferredFunctionTool)
42
+ .map((tool) => [tool.name, tool]));
43
+ }
44
+ function getDeferredNamespaceToolsByName(tools) {
45
+ const namespaces = new Map();
46
+ for (const tool of tools) {
47
+ if (!isDeferredFunctionTool(tool)) {
48
+ continue;
49
+ }
50
+ const namespace = (0, toolIdentity_1.getExplicitFunctionToolNamespace)(tool);
51
+ if (!namespace) {
52
+ continue;
53
+ }
54
+ const description = (0, toolIdentity_1.getFunctionToolNamespaceDescription)(tool);
55
+ if (!description) {
56
+ throw new errors_1.UserError(`Deferred namespace "${namespace}" must provide a description for built-in client tool_search.`);
57
+ }
58
+ const existing = namespaces.get(namespace);
59
+ if (!existing) {
60
+ namespaces.set(namespace, { description, tools: [tool] });
61
+ continue;
62
+ }
63
+ existing.tools.push(tool);
64
+ }
65
+ return namespaces;
66
+ }
67
+ function getDeferredHostedMcpToolsByServerLabel(tools) {
68
+ return new Map(tools
69
+ .filter(isDeferredHostedMcpTool)
70
+ .map((tool) => [tool.providerData.server_label, tool]));
71
+ }
72
+ function getDeferredNamespacedFunctionToolsByQualifiedName(tools) {
73
+ const qualifiedTools = new Map();
74
+ for (const tool of tools) {
75
+ if (!isDeferredFunctionTool(tool)) {
76
+ continue;
77
+ }
78
+ const namespace = (0, toolIdentity_1.getExplicitFunctionToolNamespace)(tool);
79
+ if (!namespace) {
80
+ continue;
81
+ }
82
+ const description = (0, toolIdentity_1.getFunctionToolNamespaceDescription)(tool);
83
+ const qualifiedName = (0, toolIdentity_1.getFunctionToolQualifiedName)(tool);
84
+ if (!description || !qualifiedName) {
85
+ continue;
86
+ }
87
+ qualifiedTools.set(qualifiedName, { namespace, description, tool });
88
+ }
89
+ return qualifiedTools;
90
+ }
91
+ function serializeFunctionToolForToolSearchOutput(tool) {
92
+ const serialized = (0, serialize_1.serializeTool)(tool);
93
+ const namespace = (0, toolIdentity_1.getExplicitFunctionToolNamespace)(tool);
94
+ if (!namespace) {
95
+ return serialized;
96
+ }
97
+ const { namespace: _namespace, namespaceDescription, ...toolPayload } = serialized;
98
+ void namespaceDescription;
99
+ return toolPayload;
100
+ }
101
+ function serializeHostedMcpToolForToolSearchOutput(tool) {
102
+ const { on_approval: _onApproval, ...providerData } = tool.providerData;
103
+ void _onApproval;
104
+ return providerData;
105
+ }
106
+ function appendNamespaceMemberToolSearchOutput(args) {
107
+ const { namespace, description, tool, namespaceOutputIndexByName, resolvedTools, } = args;
108
+ const existingIndex = namespaceOutputIndexByName.get(namespace);
109
+ const serializedTool = serializeFunctionToolForToolSearchOutput(tool);
110
+ if (typeof existingIndex === 'number') {
111
+ const existingNamespace = resolvedTools[existingIndex];
112
+ if (existingNamespace?.type === 'namespace' &&
113
+ Array.isArray(existingNamespace.tools)) {
114
+ existingNamespace.tools.push(serializedTool);
115
+ return;
116
+ }
117
+ }
118
+ namespaceOutputIndexByName.set(namespace, resolvedTools.length);
119
+ resolvedTools.push({
120
+ type: 'namespace',
121
+ name: namespace,
122
+ description,
123
+ tools: [serializedTool],
124
+ });
125
+ }
126
+ function isClientToolSearchToolWithCustomParameters(tool) {
127
+ return (tool.type === 'hosted_tool' &&
128
+ tool.providerData?.type === 'tool_search' &&
129
+ tool.providerData.execution === 'client' &&
130
+ tool.providerData.parameters != null);
131
+ }
132
+ function isClientToolSearchTool(tool) {
133
+ return (tool.type === 'hosted_tool' &&
134
+ tool.providerData?.type === 'tool_search' &&
135
+ tool.providerData.execution === 'client');
136
+ }
137
+ function normalizeClientToolSearchExecutorResult(result) {
138
+ if (typeof result === 'undefined' || result === null) {
139
+ return [];
140
+ }
141
+ return Array.isArray(result) ? result : [result];
142
+ }
143
+ function addLoadedToolName(loadedToolNames, name, namespace) {
144
+ if (typeof name !== 'string' || name.length === 0) {
145
+ return;
146
+ }
147
+ const explicitNamespace = typeof namespace === 'string' && namespace.length > 0
148
+ ? namespace
149
+ : undefined;
150
+ const qualifiedName = (0, toolIdentity_1.toolQualifiedName)(name, explicitNamespace);
151
+ if (qualifiedName) {
152
+ loadedToolNames.add(qualifiedName);
153
+ }
154
+ if (!explicitNamespace || explicitNamespace === name) {
155
+ loadedToolNames.add(name);
156
+ }
157
+ }
158
+ function collectLoadedToolNamesFromSearchResult(searchResult, loadedToolNames, namespace) {
159
+ if (!searchResult || typeof searchResult !== 'object') {
160
+ return;
161
+ }
162
+ const candidate = searchResult;
163
+ if (candidate.type === 'tool_reference') {
164
+ addLoadedToolName(loadedToolNames, candidate.functionName, candidate.namespace ?? namespace);
165
+ return;
166
+ }
167
+ if (candidate.type === 'function') {
168
+ addLoadedToolName(loadedToolNames, candidate.name, candidate.namespace ?? namespace);
169
+ return;
170
+ }
171
+ const mcpProviderData = getHostedMcpProviderDataFromSearchResult(candidate);
172
+ if (mcpProviderData) {
173
+ addLoadedToolName(loadedToolNames, mcpProviderData.server_label);
174
+ return;
175
+ }
176
+ if (candidate.type === 'namespace' && Array.isArray(candidate.tools)) {
177
+ const nestedNamespace = typeof candidate.name === 'string' && candidate.name.length > 0
178
+ ? candidate.name
179
+ : namespace;
180
+ for (const nestedTool of candidate.tools) {
181
+ collectLoadedToolNamesFromSearchResult(nestedTool, loadedToolNames, nestedNamespace);
182
+ }
183
+ }
184
+ }
185
+ function normalizeStringRecord(value) {
186
+ if (!value || typeof value !== 'object') {
187
+ return undefined;
188
+ }
189
+ const entries = Object.entries(value).filter(([key, entryValue]) => typeof key === 'string' && typeof entryValue === 'string');
190
+ if (entries.length === 0) {
191
+ return undefined;
192
+ }
193
+ return Object.fromEntries(entries);
194
+ }
195
+ function normalizeHostedMcpProviderData(value) {
196
+ if (!value || typeof value !== 'object') {
197
+ return undefined;
198
+ }
199
+ const candidate = value;
200
+ if (candidate.type !== 'mcp' ||
201
+ typeof candidate.server_label !== 'string' ||
202
+ candidate.server_label.length === 0) {
203
+ return undefined;
204
+ }
205
+ const normalized = {
206
+ type: 'mcp',
207
+ server_label: candidate.server_label,
208
+ require_approval: candidate.require_approval === undefined
209
+ ? 'never'
210
+ : candidate.require_approval,
211
+ };
212
+ if (typeof candidate.server_url === 'string') {
213
+ normalized.server_url = candidate.server_url;
214
+ }
215
+ if (typeof candidate.connector_id === 'string') {
216
+ normalized.connector_id = candidate.connector_id;
217
+ }
218
+ if (typeof candidate.authorization === 'string') {
219
+ normalized.authorization = candidate.authorization;
220
+ }
221
+ if (candidate.allowed_tools !== undefined) {
222
+ normalized.allowed_tools =
223
+ candidate.allowed_tools;
224
+ }
225
+ if (candidate.defer_loading === true) {
226
+ normalized.defer_loading = true;
227
+ }
228
+ const headers = normalizeStringRecord(candidate.headers);
229
+ if (headers) {
230
+ normalized.headers = headers;
231
+ }
232
+ if (typeof candidate.server_description === 'string') {
233
+ normalized.server_description = candidate.server_description;
234
+ }
235
+ return normalized;
236
+ }
237
+ function getHostedMcpProviderDataFromSearchResult(searchResult) {
238
+ const directProviderData = normalizeHostedMcpProviderData(searchResult);
239
+ if (directProviderData) {
240
+ return directProviderData;
241
+ }
242
+ if (!searchResult || typeof searchResult !== 'object') {
243
+ return undefined;
244
+ }
245
+ const hostedCandidate = searchResult;
246
+ if (hostedCandidate.type !== 'hosted_tool') {
247
+ return undefined;
248
+ }
249
+ return normalizeHostedMcpProviderData(hostedCandidate.providerData);
250
+ }
251
+ function addLoadedToolNamesFromToolSearchOutput(toolSearchOutput, loadedToolNames) {
252
+ for (const tool of toolSearchOutput.tools) {
253
+ collectLoadedToolNamesFromSearchResult(tool, loadedToolNames);
254
+ }
255
+ }
256
+ function addHostedMcpToolsFromToolSearchOutput(toolSearchOutput, hostedMcpToolsByServerLabel, options) {
257
+ const preserveExistingServerLabels = options?.preserveExistingServerLabels;
258
+ for (const tool of toolSearchOutput.tools) {
259
+ const providerData = getHostedMcpProviderDataFromSearchResult(tool);
260
+ if (!providerData) {
261
+ continue;
262
+ }
263
+ if (preserveExistingServerLabels?.has(providerData.server_label) &&
264
+ hostedMcpToolsByServerLabel.has(providerData.server_label)) {
265
+ continue;
266
+ }
267
+ hostedMcpToolsByServerLabel.set(providerData.server_label, {
268
+ type: 'hosted_tool',
269
+ name: 'hosted_mcp',
270
+ providerData,
271
+ });
272
+ }
273
+ }
274
+ function validateClientToolSearchSupport(tools) {
275
+ if (!tools.some((tool) => isClientToolSearchToolWithCustomParameters(tool) &&
276
+ !(0, tool_1.getClientToolSearchExecutor)(tool))) {
277
+ return;
278
+ }
279
+ throw new errors_1.UserError('Runner.run() and Runner.runStreamed() require toolSearchTool({ execution: "client", execute }) when custom client tool_search parameters are provided. Leave parameters unset to use the default built-in { paths: string[] } loader, or use server execution / a custom model loop instead.');
280
+ }
281
+ function resolveBuiltInClientToolSearchTools(paths, tools) {
282
+ const deferredToolsByName = getDeferredFunctionToolsByName(tools);
283
+ const deferredNamespaceToolsByName = getDeferredNamespaceToolsByName(tools);
284
+ const deferredNamespacedToolsByQualifiedName = getDeferredNamespacedFunctionToolsByQualifiedName(tools);
285
+ const deferredHostedMcpToolsByServerLabel = getDeferredHostedMcpToolsByServerLabel(tools);
286
+ const ambiguousPath = paths.find((path) => Number(deferredToolsByName.has(path)) +
287
+ Number(deferredNamespaceToolsByName.has(path)) +
288
+ Number(deferredNamespacedToolsByQualifiedName.has(path)) +
289
+ Number(deferredHostedMcpToolsByServerLabel.has(path)) >
290
+ 1);
291
+ if (ambiguousPath) {
292
+ throw new errors_1.UserError(`Runner.run() and Runner.runStreamed() cannot disambiguate built-in client tool_search path "${ambiguousPath}" because it matches multiple deferred tool_search surfaces. Rename one of them or use server tool_search execution.`);
293
+ }
294
+ const requestedNamespacePaths = new Set(paths.filter((path) => deferredNamespaceToolsByName.has(path)));
295
+ const resolvedTools = [];
296
+ const seenPaths = new Set();
297
+ const resolvedQualifiedNames = new Set();
298
+ for (const path of paths) {
299
+ if (seenPaths.has(path)) {
300
+ continue;
301
+ }
302
+ seenPaths.add(path);
303
+ const tool = deferredToolsByName.get(path);
304
+ if (!tool) {
305
+ const namespaceTools = deferredNamespaceToolsByName.get(path);
306
+ if (namespaceTools) {
307
+ const unresolvedTools = namespaceTools.tools.filter((tool) => {
308
+ const qualifiedName = (0, toolIdentity_1.getFunctionToolQualifiedName)(tool);
309
+ return !qualifiedName || !resolvedQualifiedNames.has(qualifiedName);
310
+ });
311
+ if (unresolvedTools.length === 0) {
312
+ continue;
313
+ }
314
+ for (const namespaceTool of unresolvedTools) {
315
+ const qualifiedName = (0, toolIdentity_1.getFunctionToolQualifiedName)(namespaceTool);
316
+ if (qualifiedName) {
317
+ resolvedQualifiedNames.add(qualifiedName);
318
+ }
319
+ }
320
+ resolvedTools.push(...unresolvedTools);
321
+ continue;
322
+ }
323
+ const namespacedTool = deferredNamespacedToolsByQualifiedName.get(path);
324
+ if (namespacedTool) {
325
+ if (requestedNamespacePaths.has(namespacedTool.namespace)) {
326
+ continue;
327
+ }
328
+ if (resolvedQualifiedNames.has(path)) {
329
+ continue;
330
+ }
331
+ resolvedQualifiedNames.add(path);
332
+ resolvedTools.push(namespacedTool.tool);
333
+ continue;
334
+ }
335
+ }
336
+ if (tool) {
337
+ resolvedTools.push(tool);
338
+ continue;
339
+ }
340
+ const hostedMcpTool = deferredHostedMcpToolsByServerLabel.get(path);
341
+ if (hostedMcpTool) {
342
+ resolvedTools.push(hostedMcpTool);
343
+ }
344
+ }
345
+ return resolvedTools;
346
+ }
347
+ function createClientToolSearchOutputFromTools(toolSearchCall, tools) {
348
+ const callId = (0, toolSearch_1.resolveToolSearchCallId)(toolSearchCall);
349
+ const resolvedTools = [];
350
+ const namespaceOutputIndexByName = new Map();
351
+ const seenToolKeys = new Set();
352
+ for (const tool of tools) {
353
+ const runtimeToolKey = (0, tool_1.getToolSearchRuntimeToolKey)(tool);
354
+ if (runtimeToolKey && seenToolKeys.has(runtimeToolKey)) {
355
+ continue;
356
+ }
357
+ if (runtimeToolKey) {
358
+ seenToolKeys.add(runtimeToolKey);
359
+ }
360
+ if (tool.type === 'function') {
361
+ const namespace = (0, toolIdentity_1.getExplicitFunctionToolNamespace)(tool);
362
+ if (namespace) {
363
+ const description = (0, toolIdentity_1.getFunctionToolNamespaceDescription)(tool);
364
+ if (!description) {
365
+ throw new errors_1.UserError(`Client tool_search execute() returned namespace member "${namespace}.${tool.name}" without a namespace description.`);
366
+ }
367
+ appendNamespaceMemberToolSearchOutput({
368
+ namespace,
369
+ description,
370
+ tool,
371
+ namespaceOutputIndexByName,
372
+ resolvedTools,
373
+ });
374
+ continue;
375
+ }
376
+ resolvedTools.push(serializeFunctionToolForToolSearchOutput(tool));
377
+ continue;
378
+ }
379
+ if (isDeferredHostedMcpTool(tool) || tool.type === 'hosted_tool') {
380
+ if (tool.type === 'hosted_tool' && tool.providerData?.type === 'mcp') {
381
+ resolvedTools.push(serializeHostedMcpToolForToolSearchOutput(tool));
382
+ continue;
383
+ }
384
+ }
385
+ throw new errors_1.UserError('Client tool_search execute() may only return function tools or hosted MCP tools.');
386
+ }
387
+ return {
388
+ type: 'tool_search_output',
389
+ status: 'completed',
390
+ tools: resolvedTools,
391
+ providerData: {
392
+ call_id: callId,
393
+ execution: 'client',
394
+ },
395
+ };
396
+ }
397
+ function createBuiltInClientToolSearchOutput(toolSearchCall, tools) {
398
+ const callId = (0, toolSearch_1.resolveToolSearchCallId)(toolSearchCall);
399
+ const builtInArgs = getBuiltInClientToolSearchArguments(toolSearchCall.arguments);
400
+ if (!builtInArgs) {
401
+ throw new errors_1.UserError(`Runner.run() and Runner.runStreamed() only auto-execute built-in client tool_search calls with { paths: string[] }. Custom client tool_search schemas require toolSearchTool({ execution: "client", execute }) or a custom model loop before re-processing call ${callId}.`);
402
+ }
403
+ return createClientToolSearchOutputFromTools(toolSearchCall, resolveBuiltInClientToolSearchTools(builtInArgs.paths, tools));
404
+ }
405
+ async function executeCustomClientToolSearch(args) {
406
+ const { agent, runContext, toolSearchCall, toolSearchTool, tools } = args;
407
+ const executor = (0, tool_1.getClientToolSearchExecutor)(toolSearchTool);
408
+ if (!executor) {
409
+ throw new errors_1.UserError('Client tool_search execution requires a registered execute callback.');
410
+ }
411
+ const runtimeTools = normalizeClientToolSearchExecutorResult(await executor({
412
+ agent,
413
+ availableTools: [...tools],
414
+ loadDefault: (paths) => resolveBuiltInClientToolSearchTools(paths, tools),
415
+ runContext,
416
+ toolCall: toolSearchCall,
417
+ }));
418
+ return {
419
+ output: createClientToolSearchOutputFromTools(toolSearchCall, runtimeTools),
420
+ runtimeTools,
421
+ };
422
+ }
423
+ function getClientToolSearchHelper(tools) {
424
+ return tools.find(isClientToolSearchTool);
425
+ }
426
+ //# sourceMappingURL=toolSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolSearch.js","sourceRoot":"","sources":["../../src/runner/toolSearch.ts"],"names":[],"mappings":"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"}