@armoriq/sdk-dev 0.8.3 → 0.8.5

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 (62) hide show
  1. package/README.md +30 -2
  2. package/dist/_version.d.ts +1 -1
  3. package/dist/_version.js +1 -1
  4. package/dist/cli/commands/auth.d.ts +5 -0
  5. package/dist/cli/commands/auth.d.ts.map +1 -1
  6. package/dist/cli/commands/auth.js +24 -8
  7. package/dist/cli/commands/auth.js.map +1 -1
  8. package/dist/client.d.ts +1 -0
  9. package/dist/client.d.ts.map +1 -1
  10. package/dist/client.js +44 -16
  11. package/dist/client.js.map +1 -1
  12. package/dist/client_context.d.ts +9 -0
  13. package/dist/client_context.d.ts.map +1 -0
  14. package/dist/client_context.js +58 -0
  15. package/dist/client_context.js.map +1 -0
  16. package/dist/debug.d.ts +3 -0
  17. package/dist/debug.d.ts.map +1 -0
  18. package/dist/debug.js +11 -0
  19. package/dist/debug.js.map +1 -0
  20. package/dist/index.d.ts +3 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +7 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/integrations/google_adk.d.ts +5 -1
  25. package/dist/integrations/google_adk.d.ts.map +1 -1
  26. package/dist/integrations/google_adk.js +16 -10
  27. package/dist/integrations/google_adk.js.map +1 -1
  28. package/dist/integrations/langchain.d.ts.map +1 -1
  29. package/dist/integrations/langchain.js +3 -2
  30. package/dist/integrations/langchain.js.map +1 -1
  31. package/dist/integrations/openai.d.ts +9 -0
  32. package/dist/integrations/openai.d.ts.map +1 -0
  33. package/dist/integrations/openai.js +60 -0
  34. package/dist/integrations/openai.js.map +1 -0
  35. package/dist/integrations/strands.d.ts.map +1 -1
  36. package/dist/integrations/strands.js +5 -19
  37. package/dist/integrations/strands.js.map +1 -1
  38. package/dist/optional_module.d.ts +3 -0
  39. package/dist/optional_module.d.ts.map +1 -0
  40. package/dist/optional_module.js +34 -0
  41. package/dist/optional_module.js.map +1 -0
  42. package/dist/session.d.ts +2 -0
  43. package/dist/session.d.ts.map +1 -1
  44. package/dist/session.js +8 -0
  45. package/dist/session.js.map +1 -1
  46. package/dist/session_transcripts.d.ts +8 -0
  47. package/dist/session_transcripts.d.ts.map +1 -0
  48. package/dist/session_transcripts.js +72 -0
  49. package/dist/session_transcripts.js.map +1 -0
  50. package/dist/token_usage.d.ts +33 -10
  51. package/dist/token_usage.d.ts.map +1 -1
  52. package/dist/token_usage.js +85 -38
  53. package/dist/token_usage.js.map +1 -1
  54. package/dist/tool_push.d.ts +1 -1
  55. package/dist/tool_push.d.ts.map +1 -1
  56. package/dist/tool_push.js +14 -10
  57. package/dist/tool_push.js.map +1 -1
  58. package/dist/tool_registry.d.ts +36 -13
  59. package/dist/tool_registry.d.ts.map +1 -1
  60. package/dist/tool_registry.js +304 -114
  61. package/dist/tool_registry.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ToolRegistry = exports.SNAPSHOT_HASH_PREFIX = void 0;
4
+ exports.serverKey = serverKey;
4
5
  exports.snapshotHash = snapshotHash;
5
6
  exports.defaultToolRegistry = defaultToolRegistry;
6
7
  exports.agentKeyFor = agentKeyFor;
@@ -13,6 +14,8 @@ exports.mcpBackedByName = mcpBackedByName;
13
14
  exports.observeForClient = observeForClient;
14
15
  exports.geminiSchemaToJsonSchema = geminiSchemaToJsonSchema;
15
16
  exports.declarationsFromAdkAgent = declarationsFromAdkAgent;
17
+ exports.declarationsFromAdkResolvedTools = declarationsFromAdkResolvedTools;
18
+ exports.declarationsFromAdkAgentAsync = declarationsFromAdkAgentAsync;
16
19
  exports.declarationsFromStrandsAgent = declarationsFromStrandsAgent;
17
20
  exports.declarationsFromOpenAiTools = declarationsFromOpenAiTools;
18
21
  exports.declarationsFromLangChainTools = declarationsFromLangChainTools;
@@ -23,6 +26,7 @@ exports.declarationsFromLangChainTools = declarationsFromLangChainTools;
23
26
  */
24
27
  const crypto_1 = require("crypto");
25
28
  const _version_1 = require("./_version");
29
+ const debug_1 = require("./debug");
26
30
  const tool_name_1 = require("./tool_name");
27
31
  const tool_schema_1 = require("./tool_schema");
28
32
  function toWire(d) {
@@ -38,6 +42,32 @@ function toWire(d) {
38
42
  entry.annotations = d.annotations;
39
43
  return entry;
40
44
  }
45
+ function stripPrefix(name, prefix) {
46
+ const p = typeof prefix === 'string' ? prefix : '';
47
+ return p && name.startsWith(p) && name.length > p.length ? name.slice(p.length) : name;
48
+ }
49
+ /** One server is one name inside the org; sightings differing in case or trailing underscores are the same server. */
50
+ function serverKey(s) {
51
+ const trimmed = (s.name || s.url).trim();
52
+ let end = trimmed.length;
53
+ while (end > 0 && trimmed[end - 1] === '_')
54
+ end--;
55
+ return trimmed.slice(0, end).toLowerCase();
56
+ }
57
+ /** Two sightings of one server: the union of their tools, first schema wins, a URL fills a missing one. */
58
+ function mergeServer(current, next) {
59
+ if (!current)
60
+ return { ...next, tools: [...(next.tools ?? [])] };
61
+ const byName = new Map((current.tools ?? []).map((t) => [t.name, t]));
62
+ for (const t of next.tools ?? [])
63
+ if (!byName.has(t.name))
64
+ byName.set(t.name, t);
65
+ return { name: current.name || next.name, url: current.url || next.url, tools: [...byName.values()] };
66
+ }
67
+ function serverEntry(s) {
68
+ const tools = [...(s.tools ?? [])].sort((a, b) => a.name.localeCompare(b.name)).map(toWire);
69
+ return { name: s.name, url: s.url, snapshotHash: snapshotHash(tools), tools };
70
+ }
41
71
  exports.SNAPSHOT_HASH_PREFIX = 'v1:sha256:';
42
72
  /** `v1:sha256` over sorted `name:schemaHash` lines. Descriptions are not part of it. */
43
73
  function snapshotHash(tools) {
@@ -61,9 +91,12 @@ class ToolRegistry {
61
91
  }
62
92
  this.tools.set(agentKey, bucket);
63
93
  const servers = this.servers.get(agentKey) ?? new Map();
64
- for (const s of mcpServers)
65
- if (!servers.has(s.url || s.name))
66
- servers.set(s.url || s.name, s);
94
+ for (const s of mcpServers) {
95
+ if (!s.name && !s.url)
96
+ continue;
97
+ const id = serverKey(s);
98
+ servers.set(id, mergeServer(servers.get(id), s));
99
+ }
67
100
  this.servers.set(agentKey, servers);
68
101
  }
69
102
  /** A tool ran that nothing declared: record the name with no schema. Server-prefixed names belong to the server. */
@@ -88,9 +121,9 @@ class ToolRegistry {
88
121
  this.hashes.delete(agentKey);
89
122
  }
90
123
  }
91
- /** An empty set is never pushed; an empty snapshot would stale every declared row. */
92
- hasTools(agentKey) {
93
- return (this.tools.get(agentKey)?.size ?? 0) > 0;
124
+ /** Nothing declared is never pushed; an empty snapshot would stale every declared row. */
125
+ hasDeclarations(agentKey) {
126
+ return (this.tools.get(agentKey)?.size ?? 0) > 0 || (this.servers.get(agentKey)?.size ?? 0) > 0;
94
127
  }
95
128
  /** Contract §4 fingerprint of one agent's tools; cached until the set changes. */
96
129
  snapshotHash(agentKey) {
@@ -104,11 +137,18 @@ class ToolRegistry {
104
137
  this.hashes.set(agentKey, value);
105
138
  return value;
106
139
  }
140
+ /** What a push would send, as one string: the agent's tool hash and each server's. A server change moves it; the agent hash alone does not. */
141
+ pushFingerprint(agentKey) {
142
+ const servers = [...(this.servers.get(agentKey)?.values() ?? [])]
143
+ .map((s) => `${serverKey(s)}=${serverEntry(s).snapshotHash}`)
144
+ .sort();
145
+ return [this.snapshotHash(agentKey), ...servers].join('|');
146
+ }
107
147
  /** The `POST /iap/sdk/tools` body for one agent (contract §2). */
108
148
  pushBody(agentKey) {
109
149
  const snap = this.snapshot(agentKey);
110
150
  return {
111
- contract: 1,
151
+ contract: 2,
112
152
  agent: agentKey,
113
153
  sdk: snap.sdk,
114
154
  snapshotHash: snapshotHash(snap.tools),
@@ -132,13 +172,13 @@ class ToolRegistry {
132
172
  tools.push(entry);
133
173
  }
134
174
  for (const [id, s] of this.servers.get(k) ?? [])
135
- servers.set(id, s);
175
+ servers.set(id, mergeServer(servers.get(id), s));
136
176
  }
137
177
  return {
138
178
  agent: agentKey ?? (keys.length === 1 ? keys[0] : null),
139
179
  sdk: `typescript@${_version_1.VERSION}`,
140
180
  tools,
141
- mcpServers: [...servers.values()],
181
+ mcpServers: [...servers.values()].map(serverEntry),
142
182
  };
143
183
  }
144
184
  }
@@ -161,8 +201,8 @@ function registerForClient(client, tools, mcpServers = []) {
161
201
  if (key)
162
202
  DEFAULT.register(key, tools, mcpServers);
163
203
  }
164
- catch {
165
- /* registry problems never stop an agent */
204
+ catch (err) {
205
+ (0, debug_1.debugLog)('registerForClient', err);
166
206
  }
167
207
  }
168
208
  function serverNamesOf(boot) {
@@ -184,7 +224,8 @@ async function knownServerNames(client) {
184
224
  try {
185
225
  return serverNamesOf(await c.bootstrap());
186
226
  }
187
- catch {
227
+ catch (err) {
228
+ (0, debug_1.debugLog)('knownServerNames bootstrap', err);
188
229
  return [];
189
230
  }
190
231
  }
@@ -210,7 +251,8 @@ async function knownToolMap(client) {
210
251
  try {
211
252
  return toolMapOf(await c.bootstrap());
212
253
  }
213
- catch {
254
+ catch (err) {
255
+ (0, debug_1.debugLog)('knownToolMap bootstrap', err);
214
256
  return {};
215
257
  }
216
258
  }
@@ -226,30 +268,40 @@ function observeForClient(client, name) {
226
268
  if (key)
227
269
  DEFAULT.observe(key, name, cachedServerNames(client), cachedToolMap(client));
228
270
  }
229
- catch {
230
- /* registry problems never stop an agent */
271
+ catch (err) {
272
+ (0, debug_1.debugLog)('observeForClient', err);
231
273
  }
232
274
  }
233
275
  const isRecord = (v) => !!v && typeof v === 'object' && !Array.isArray(v);
234
276
  /** Gemini `Schema` (uppercase `type`, `nullable`) to JSON Schema. */
277
+ const GEMINI_KEY = {
278
+ type: (out, v) => {
279
+ out.type = typeof v === 'string' ? v.toLowerCase() : v;
280
+ },
281
+ properties: (out, v) => {
282
+ out.properties = isRecord(v)
283
+ ? Object.fromEntries(Object.entries(v).map(([k, x]) => [k, geminiSchemaToJsonSchema(x)]))
284
+ : v;
285
+ },
286
+ items: (out, v) => {
287
+ out.items = geminiSchemaToJsonSchema(v);
288
+ },
289
+ anyOf: (out, v) => {
290
+ out.anyOf = Array.isArray(v) ? v.map(geminiSchemaToJsonSchema) : v;
291
+ },
292
+ any_of: (out, v) => {
293
+ out.anyOf = Array.isArray(v) ? v.map(geminiSchemaToJsonSchema) : v;
294
+ },
295
+ nullable: () => undefined,
296
+ };
235
297
  function geminiSchemaToJsonSchema(schema) {
236
- if (schema === null || schema === undefined)
237
- return schema;
238
298
  if (!isRecord(schema))
239
299
  return schema;
240
300
  const out = {};
241
301
  for (const [key, value] of Object.entries(schema)) {
242
- if (key === 'type' && typeof value === 'string')
243
- out.type = value.toLowerCase();
244
- else if (key === 'properties' && isRecord(value)) {
245
- out.properties = Object.fromEntries(Object.entries(value).map(([k, v]) => [k, geminiSchemaToJsonSchema(v)]));
246
- }
247
- else if (key === 'items')
248
- out.items = geminiSchemaToJsonSchema(value);
249
- else if ((key === 'anyOf' || key === 'any_of') && Array.isArray(value))
250
- out.anyOf = value.map(geminiSchemaToJsonSchema);
251
- else if (key === 'nullable')
252
- continue;
302
+ const handle = GEMINI_KEY[key];
303
+ if (handle)
304
+ handle(out, value);
253
305
  else
254
306
  out[key] = value;
255
307
  }
@@ -286,121 +338,266 @@ function schemaFromArgs(args) {
286
338
  }
287
339
  return undefined;
288
340
  }
341
+ function isAdkToolset(rec) {
342
+ return typeof rec.getTools === 'function' && typeof rec._getDeclaration !== 'function';
343
+ }
344
+ function adkFunctionDeclaration(rec) {
345
+ let decl;
346
+ if (typeof rec._getDeclaration === 'function') {
347
+ try {
348
+ decl = rec._getDeclaration();
349
+ }
350
+ catch (err) {
351
+ (0, debug_1.debugLog)('adk _getDeclaration', err);
352
+ }
353
+ }
354
+ const name = (decl?.name ?? rec.name);
355
+ if (!name)
356
+ return null;
357
+ const schema = decl?.parametersJsonSchema ?? geminiSchemaToJsonSchema(decl?.parameters);
358
+ return {
359
+ name,
360
+ description: String(decl?.description ?? rec.description ?? ''),
361
+ inputSchema: schema,
362
+ schemaSource: schema !== undefined && schema !== null ? 'framework' : 'none',
363
+ };
364
+ }
289
365
  function declarationsFromAdkAgent(agent) {
290
366
  const tools = [];
291
367
  const servers = [];
292
- const list = agent?.tools ?? [];
293
- for (const t of list) {
368
+ for (const t of agent?.tools ?? []) {
294
369
  const rec = t;
295
- if (typeof rec.getTools === 'function' && typeof rec._getDeclaration !== 'function') {
296
- const params = (rec._connectionParams ?? rec.connectionParams);
297
- const url = String(params?.url ?? rec.url ?? '');
298
- servers.push({ name: String(rec.name ?? url ?? 'mcp'), url });
370
+ if (isAdkToolset(rec)) {
371
+ const { name, url } = adkToolsetIdentity(rec);
372
+ if (name)
373
+ servers.push({ name, url });
299
374
  continue;
300
375
  }
301
- let decl;
302
- if (typeof rec._getDeclaration === 'function') {
303
- try {
304
- decl = rec._getDeclaration();
305
- }
306
- catch {
307
- decl = undefined;
308
- }
309
- }
310
- const name = (decl?.name ?? rec.name);
311
- if (!name)
312
- continue;
313
- const schema = decl?.parametersJsonSchema ?? geminiSchemaToJsonSchema(decl?.parameters);
314
- tools.push({
315
- name,
316
- description: String(decl?.description ?? rec.description ?? ''),
317
- inputSchema: schema,
318
- schemaSource: schema !== undefined && schema !== null ? 'framework' : 'none',
319
- });
376
+ const decl = adkFunctionDeclaration(rec);
377
+ if (decl)
378
+ tools.push(decl);
320
379
  }
321
380
  return { tools, servers };
322
381
  }
323
- function declarationsFromStrandsAgent(agent) {
382
+ /**
383
+ * The tools ADK resolved for one model request (`LlmRequest.toolsDict`): toolsets are
384
+ * already expanded, and each MCP tool carries its raw definition and its session.
385
+ * No extra I/O.
386
+ */
387
+ function declarationsFromAdkResolvedTools(toolsDict) {
324
388
  const tools = [];
325
389
  const servers = new Map();
326
- const a = agent;
327
- const registry = (a?.toolRegistry?.registry ?? a?.tools ?? {});
328
- const entries = Array.isArray(registry)
329
- ? registry.map((t) => [String(t.name ?? ''), t])
330
- : Object.entries(registry).map(([k, v]) => [k, v]);
331
- for (const [key, tool] of entries) {
332
- if (tool?.mcpClient || tool?.constructor?.name === 'MCPAgentTool') {
333
- const client = tool.mcpClient;
334
- const url = String(client?.url ?? '');
335
- const prefix = client?.prefix ?? client?._prefix;
336
- const split = (0, tool_name_1.splitPrefixedToolName)(String(tool.toolSpec?.name ?? key));
337
- const label = prefix
338
- ? String(prefix).replace(/_+$/, '')
339
- : split
340
- ? split.mcp
341
- : String(client?.name ?? url);
342
- if (!label)
343
- continue;
344
- if (!servers.has(url || label))
345
- servers.set(url || label, { name: label, url });
390
+ for (const rec of adkResolvedList(toolsDict)) {
391
+ const url = adkToolSessionUrl(rec);
392
+ if (url) {
393
+ const mcp = mcpToolDeclaration(rec);
394
+ if (mcp)
395
+ addServerTool(servers, url, mcp, url);
346
396
  continue;
347
397
  }
348
- const spec = (tool?.toolSpec ?? tool?.tool_spec);
349
- const input = spec?.inputSchema;
350
- const schema = input ? (input.json ?? input) : undefined;
351
- tools.push({
352
- name: String(spec?.name ?? key),
353
- description: String(spec?.description ?? ''),
354
- inputSchema: schema,
355
- schemaSource: schema !== undefined ? 'framework' : 'none',
356
- });
398
+ const decl = adkFunctionDeclaration(rec);
399
+ if (decl)
400
+ tools.push(decl);
401
+ }
402
+ return { tools, servers: [...servers.values()] };
403
+ }
404
+ function adkResolvedList(toolsDict) {
405
+ if (isRecord(toolsDict))
406
+ return Object.values(toolsDict);
407
+ return Array.isArray(toolsDict) ? toolsDict : [];
408
+ }
409
+ /** A resolved MCP tool knows its session, not its toolset; the session URL is the server's identity. */
410
+ function adkToolSessionUrl(rec) {
411
+ if (!(rec.mcpTool ?? rec.mcp_tool ?? rec._mcp_tool))
412
+ return '';
413
+ const params = rec.mcpSessionManager?.connectionParams;
414
+ return String(params?.url ?? '');
415
+ }
416
+ /** ADK toolsets list their tools asynchronously; each tool wraps the raw MCP definition as `mcpTool`. */
417
+ async function declarationsFromAdkAgentAsync(agent) {
418
+ const sync = declarationsFromAdkAgent(agent);
419
+ const list = (agent?.tools ?? []);
420
+ const toolsets = list.filter(isAdkToolset);
421
+ const servers = await Promise.all(toolsets.map(adkToolsetServer));
422
+ return { tools: sync.tools, servers };
423
+ }
424
+ /** Which server an ADK toolset reaches: its prefix, else its name, else the connection URL. */
425
+ function adkToolsetIdentity(rec) {
426
+ const params = (rec.mcpSessionManager?.connectionParams ??
427
+ rec._connectionParams ??
428
+ rec.connectionParams);
429
+ const url = String(params?.url ?? rec.url ?? '');
430
+ const name = String(rec.prefix ?? rec.name ?? url).replace(/_+$/, '');
431
+ return { name, url };
432
+ }
433
+ async function adkToolsetServer(rec) {
434
+ const { name, url } = adkToolsetIdentity(rec);
435
+ let tools = [];
436
+ try {
437
+ const listed = (await rec.getTools()) ?? [];
438
+ tools = listed.map(mcpToolDeclaration).filter((d) => d !== null);
439
+ }
440
+ catch (err) {
441
+ (0, debug_1.debugLog)('adk getTools', err);
442
+ }
443
+ return { name, url, tools };
444
+ }
445
+ function mcpToolDeclaration(tool) {
446
+ const rec = tool;
447
+ const raw = (rec.mcpTool ?? rec.mcp_tool ?? rec._mcp_tool);
448
+ const name = String(raw?.name ?? rec.name ?? '');
449
+ if (!name)
450
+ return null;
451
+ return {
452
+ name,
453
+ description: String(raw?.description ?? rec.description ?? ''),
454
+ inputSchema: raw?.inputSchema,
455
+ schemaSource: raw?.inputSchema !== undefined ? 'mcp' : 'none',
456
+ };
457
+ }
458
+ /** Which server a Strands `MCPAgentTool` reaches: the client's prefix, else the prefixed name, else the client's name or URL. */
459
+ function strandsClientIdentity(client) {
460
+ return {
461
+ tagged: String(client?.armoriqServerName ?? client?._armoriq_server_name ?? ''),
462
+ url: String(client?.armoriqServerUrl ?? client?._armoriq_server_url ?? client?.url ?? ''),
463
+ prefix: client?.prefix ?? client?._prefix,
464
+ };
465
+ }
466
+ function strandsServerOf(tool, key) {
467
+ const client = tool.mcpClient;
468
+ const { tagged, url, prefix } = strandsClientIdentity(client);
469
+ const spec = (tool.toolSpec ?? tool.tool_spec);
470
+ const split = (0, tool_name_1.splitPrefixedToolName)(String(spec?.name ?? key));
471
+ const fromPrefix = prefix ? String(prefix).replace(/_+$/, '') : '';
472
+ const label = tagged || fromPrefix || split?.mcp || String(client?.name ?? url);
473
+ return label ? { url, label, prefix, action: split?.action } : null;
474
+ }
475
+ /** The tool under its raw MCP name and schema when the client exposes them, else from the Strands spec. */
476
+ function strandsServerTool(tool, key, ref) {
477
+ const rawMcp = (tool.mcpTool ?? tool.mcp_tool);
478
+ const spec = (tool.toolSpec ?? tool.tool_spec);
479
+ const rawSchema = (rawMcp?.inputSchema ?? spec?.inputSchema);
480
+ return {
481
+ name: String(rawMcp?.name ?? ref.action ?? stripPrefix(key, ref.prefix)),
482
+ description: String(rawMcp?.description ?? spec?.description ?? ''),
483
+ inputSchema: rawSchema?.json ?? rawSchema,
484
+ schemaSource: rawMcp ? 'mcp' : 'framework',
485
+ };
486
+ }
487
+ function addStrandsServerTool(servers, key, tool) {
488
+ const ref = strandsServerOf(tool, key);
489
+ if (!ref)
490
+ return;
491
+ const id = serverKey({ name: ref.label, url: ref.url });
492
+ const server = servers.get(id) ?? { name: ref.label, url: ref.url, tools: [] };
493
+ server.tools.push(strandsServerTool(tool, key, ref));
494
+ servers.set(id, server);
495
+ }
496
+ /** The agent's tool registry as `[key, tool]` pairs, whether Strands exposes it as a map or a list. */
497
+ function strandsToolEntries(agent) {
498
+ const a = agent;
499
+ const registry = (a?.toolRegistry?.registry ?? a?.tools ?? {});
500
+ if (Array.isArray(registry))
501
+ return registry.map((t) => [String(t?.name ?? ''), t]);
502
+ return Object.entries(registry).map(([k, v]) => [k, v]);
503
+ }
504
+ function isStrandsMcpTool(tool) {
505
+ return !!tool?.mcpClient || tool?.constructor?.name === 'MCPAgentTool';
506
+ }
507
+ function strandsFunctionTool(key, tool) {
508
+ const spec = (tool?.toolSpec ?? tool?.tool_spec);
509
+ const input = spec?.inputSchema;
510
+ const schema = input ? (input.json ?? input) : undefined;
511
+ return {
512
+ name: String(spec?.name ?? key),
513
+ description: String(spec?.description ?? ''),
514
+ inputSchema: schema,
515
+ schemaSource: schema !== undefined ? 'framework' : 'none',
516
+ };
517
+ }
518
+ function declarationsFromStrandsAgent(agent) {
519
+ const tools = [];
520
+ const servers = new Map();
521
+ for (const [key, tool] of strandsToolEntries(agent)) {
522
+ if (isStrandsMcpTool(tool))
523
+ addStrandsServerTool(servers, key, tool);
524
+ else
525
+ tools.push(strandsFunctionTool(key, tool));
357
526
  }
358
527
  return { tools, servers: [...servers.values()] };
359
528
  }
360
- /** LangChain tools handed to the factory. A name in `<server>__<tool>` form is MCP-backed. */
361
529
  /**
362
530
  * Tool definitions as a model request carries them: `{type:'function', function:{name,
363
531
  * description, parameters}}` or flat `{name, description, parameters | input_schema}`.
364
532
  * LangChain hands these to `handleChatModelStart` in `invocation_params.tools`, so the
365
533
  * registry fills from the model call with nothing for the developer to wire.
366
534
  */
535
+ /** A remote MCP server declared inline in a model request: OpenAI `{type: 'mcp', server_label, server_url}` or Anthropic `{type: 'mcp_toolset', mcp_server_name}`. */
536
+ function serverFromModelToolEntry(raw) {
537
+ if (raw.type === 'mcp') {
538
+ const url = String(raw.server_url ?? '');
539
+ const name = String(raw.server_label ?? url);
540
+ return name ? { name, url, tools: [] } : null;
541
+ }
542
+ if (raw.type === 'mcp_toolset' && typeof raw.mcp_server_name === 'string' && raw.mcp_server_name) {
543
+ return { name: raw.mcp_server_name, url: '', tools: [] };
544
+ }
545
+ return null;
546
+ }
547
+ function modelToolSchema(fn) {
548
+ if (isRecord(fn.parameters))
549
+ return fn.parameters;
550
+ if (isRecord(fn.input_schema))
551
+ return fn.input_schema;
552
+ return undefined;
553
+ }
554
+ /** The server a prefixed tool name belongs to: `<server>__<tool>`, `<server>_<tool>` for a registered server, or the org's tool map. */
555
+ function serverOwnerOf(name, serverNames, toolMap) {
556
+ const split = (0, tool_name_1.splitPrefixedToolName)(name);
557
+ if (split)
558
+ return { owner: split.mcp, action: split.action };
559
+ const registered = serverNames.find((sv) => name.startsWith(`${sv}_`) && name.length > sv.length + 1);
560
+ const owner = registered ?? toolMap[name];
561
+ return owner ? { owner, action: name } : null;
562
+ }
563
+ function addServerTool(servers, owner, tool, url = '') {
564
+ const id = serverKey({ name: owner, url });
565
+ const server = servers.get(id) ?? { name: owner, url, tools: [] };
566
+ server.tools.push(tool);
567
+ servers.set(id, server);
568
+ }
569
+ /** The schemas here are the model-side copies, not what the server sent; only a raw MCP definition is `mcp`. */
367
570
  function declarationsFromOpenAiTools(list, serverNames = [], toolMap = {}) {
368
571
  const tools = [];
369
572
  const servers = new Map();
370
573
  for (const raw of list) {
371
574
  if (!isRecord(raw))
372
575
  continue;
373
- const fn = isRecord(raw.function) ? raw.function : raw;
374
- const name = fn.name;
375
- if (typeof name !== 'string' || !name)
376
- continue;
377
- const split = (0, tool_name_1.splitPrefixedToolName)(name);
378
- if (split) {
379
- if (!servers.has(split.mcp))
380
- servers.set(split.mcp, { name: split.mcp, url: '' });
576
+ const declaredServer = serverFromModelToolEntry(raw);
577
+ if (declaredServer) {
578
+ const id = serverKey(declaredServer);
579
+ servers.set(id, mergeServer(servers.get(id), declaredServer));
381
580
  continue;
382
581
  }
383
- const owner = serverNames.find((sv) => name.startsWith(`${sv}_`) && name.length > sv.length + 1) ??
384
- toolMap[name];
385
- if (owner) {
386
- if (!servers.has(owner))
387
- servers.set(owner, { name: owner, url: '' });
582
+ const fn = isRecord(raw.function) ? raw.function : raw;
583
+ if (typeof fn.name !== 'string' || !fn.name)
388
584
  continue;
389
- }
390
- const schema = isRecord(fn.parameters)
391
- ? fn.parameters
392
- : isRecord(fn.input_schema)
393
- ? fn.input_schema
394
- : undefined;
395
- tools.push({
396
- name,
585
+ const schema = modelToolSchema(fn);
586
+ const decl = {
587
+ name: fn.name,
397
588
  description: String(fn.description ?? ''),
398
589
  inputSchema: schema,
399
590
  schemaSource: schema !== undefined ? 'framework' : 'none',
400
- });
591
+ };
592
+ const owned = serverOwnerOf(fn.name, serverNames, toolMap);
593
+ if (owned)
594
+ addServerTool(servers, owned.owner, { ...decl, name: owned.action });
595
+ else
596
+ tools.push(decl);
401
597
  }
402
598
  return { tools, servers: [...servers.values()] };
403
599
  }
600
+ /** LangChain tools handed to the factory. A name in `<server>__<tool>` form is MCP-backed. */
404
601
  function declarationsFromLangChainTools(list, serverNames = []) {
405
602
  const tools = [];
406
603
  const servers = new Map();
@@ -409,14 +606,7 @@ function declarationsFromLangChainTools(list, serverNames = []) {
409
606
  const name = rec?.name;
410
607
  if (!name)
411
608
  continue;
412
- const split = (0, tool_name_1.splitPrefixedToolName)(name);
413
- if (split) {
414
- if (!servers.has(split.mcp))
415
- servers.set(split.mcp, { name: split.mcp, url: '' });
416
- continue;
417
- }
418
- // `<server>_<tool>` for a server the org registered: MCP-backed, listed as its server.
419
- const owner = serverNames.find((sv) => name.startsWith(`${sv}_`) && name.length > sv.length + 1);
609
+ const owner = serverOwnerOf(name, serverNames, {})?.owner;
420
610
  if (owner) {
421
611
  if (!servers.has(owner))
422
612
  servers.set(owner, { name: owner, url: '' });
@@ -1 +1 @@
1
- {"version":3,"file":"tool_registry.js","sourceRoot":"","sources":["../src/tool_registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool_registry.js","sourceRoot":"","sources":["../src/tool_registry.ts"],"names":[],"mappings":"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"}