@librechat/agents 3.7.21 → 3.8.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 (70) hide show
  1. package/dist/cjs/graphs/Graph.cjs +21 -4
  2. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  3. package/dist/cjs/langfuse.cjs +6 -2
  4. package/dist/cjs/langfuse.cjs.map +1 -1
  5. package/dist/cjs/llm/invoke.cjs +21 -6
  6. package/dist/cjs/llm/invoke.cjs.map +1 -1
  7. package/dist/cjs/main.cjs +2 -0
  8. package/dist/cjs/stream.cjs +38 -1
  9. package/dist/cjs/stream.cjs.map +1 -1
  10. package/dist/cjs/tools/ArtifactDelivery.cjs +27 -0
  11. package/dist/cjs/tools/ArtifactDelivery.cjs.map +1 -0
  12. package/dist/cjs/tools/BashExecutor.cjs +6 -1
  13. package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
  14. package/dist/cjs/tools/CodeExecutor.cjs +6 -1
  15. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  16. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +5 -1
  17. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  18. package/dist/cjs/tools/ToolNode.cjs +95 -18
  19. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  20. package/dist/cjs/tools/ToolSearch.cjs +130 -24
  21. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  22. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs +1 -1
  23. package/dist/cjs/tools/preparedSubagents.cjs +129 -0
  24. package/dist/cjs/tools/preparedSubagents.cjs.map +1 -0
  25. package/dist/esm/graphs/Graph.mjs +21 -4
  26. package/dist/esm/graphs/Graph.mjs.map +1 -1
  27. package/dist/esm/langfuse.mjs +6 -2
  28. package/dist/esm/langfuse.mjs.map +1 -1
  29. package/dist/esm/llm/invoke.mjs +21 -6
  30. package/dist/esm/llm/invoke.mjs.map +1 -1
  31. package/dist/esm/main.mjs +2 -2
  32. package/dist/esm/stream.mjs +39 -2
  33. package/dist/esm/stream.mjs.map +1 -1
  34. package/dist/esm/tools/ArtifactDelivery.mjs +26 -0
  35. package/dist/esm/tools/ArtifactDelivery.mjs.map +1 -0
  36. package/dist/esm/tools/BashExecutor.mjs +6 -1
  37. package/dist/esm/tools/BashExecutor.mjs.map +1 -1
  38. package/dist/esm/tools/CodeExecutor.mjs +6 -1
  39. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  40. package/dist/esm/tools/ProgrammaticToolCalling.mjs +5 -1
  41. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  42. package/dist/esm/tools/ToolNode.mjs +95 -18
  43. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  44. package/dist/esm/tools/ToolSearch.mjs +129 -25
  45. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  46. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs +1 -1
  47. package/dist/esm/tools/preparedSubagents.mjs +128 -0
  48. package/dist/esm/tools/preparedSubagents.mjs.map +1 -0
  49. package/dist/types/graphs/Graph.d.ts +6 -1
  50. package/dist/types/langfuse.d.ts +5 -0
  51. package/dist/types/tools/ArtifactDelivery.d.ts +4 -0
  52. package/dist/types/tools/ToolNode.d.ts +13 -1
  53. package/dist/types/tools/ToolSearch.d.ts +46 -2
  54. package/dist/types/tools/preparedSubagents.d.ts +26 -0
  55. package/dist/types/types/graph.d.ts +8 -0
  56. package/dist/types/types/tools.d.ts +28 -0
  57. package/package.json +1 -1
  58. package/src/graphs/Graph.ts +63 -5
  59. package/src/langfuse.ts +17 -2
  60. package/src/llm/invoke.ts +35 -8
  61. package/src/stream.ts +70 -1
  62. package/src/tools/ArtifactDelivery.ts +50 -0
  63. package/src/tools/BashExecutor.ts +18 -1
  64. package/src/tools/CodeExecutor.ts +18 -1
  65. package/src/tools/ProgrammaticToolCalling.ts +15 -1
  66. package/src/tools/ToolNode.ts +189 -43
  67. package/src/tools/ToolSearch.ts +278 -28
  68. package/src/tools/preparedSubagents.ts +228 -0
  69. package/src/types/graph.ts +8 -0
  70. package/src/types/tools.ts +29 -0
@@ -124,6 +124,55 @@ function extractMcpServerName(toolName) {
124
124
  function isFromMcpServer(toolName, serverName) {
125
125
  return extractMcpServerName(toolName) === serverName;
126
126
  }
127
+ function canonicalizeServerName(serverName) {
128
+ return serverName.trim().toLowerCase().normalize("NFC").replace(/[-_. ]+/g, "-");
129
+ }
130
+ function canonicalizeWithoutMcpPrefix(requested) {
131
+ const match = /^mcp[-_. ]+(.+)$/i.exec(requested.trim());
132
+ if (match === null) return;
133
+ const key = canonicalizeServerName(match[1]);
134
+ return key === "" ? void 0 : key;
135
+ }
136
+ function resolveServerFilters(requested, available) {
137
+ const exact = new Set(available);
138
+ const canonical = /* @__PURE__ */ new Map();
139
+ for (const name of available) {
140
+ const key = canonicalizeServerName(name);
141
+ if (key === "") continue;
142
+ const bucket = canonical.get(key);
143
+ if (bucket === void 0) canonical.set(key, [name]);
144
+ else bucket.push(name);
145
+ }
146
+ const resolved = [];
147
+ const unresolved = [];
148
+ for (const want of requested) {
149
+ if (exact.has(want)) {
150
+ resolved.push(want);
151
+ continue;
152
+ }
153
+ const key = canonicalizeServerName(want);
154
+ if (key === "") {
155
+ unresolved.push(want);
156
+ continue;
157
+ }
158
+ const direct = canonical.get(key);
159
+ if (direct !== void 0) {
160
+ resolved.push(...direct);
161
+ continue;
162
+ }
163
+ const strippedKey = canonicalizeWithoutMcpPrefix(want);
164
+ const stripped = strippedKey === void 0 ? void 0 : canonical.get(strippedKey);
165
+ if (stripped !== void 0) {
166
+ resolved.push(...stripped);
167
+ continue;
168
+ }
169
+ unresolved.push(want);
170
+ }
171
+ return {
172
+ resolved: Array.from(new Set(resolved)),
173
+ unresolved
174
+ };
175
+ }
127
176
  function isFromAnyMcpServer(toolName, serverNames) {
128
177
  const toolServer = extractMcpServerName(toolName);
129
178
  if (toolServer === void 0) return false;
@@ -414,7 +463,7 @@ function parseSearchResults(stdout) {
414
463
  const jsonMatch = stdout.trim();
415
464
  return JSON.parse(jsonMatch);
416
465
  }
417
- function formatSearchResults(searchResponse, nameFormat = "full") {
466
+ function formatSearchResults(searchResponse, nameFormat = "full", notes = []) {
418
467
  const { tool_references, total_tools_searched, pattern_used } = searchResponse;
419
468
  const useFullName = nameFormat === "full";
420
469
  const output = {
@@ -426,7 +475,8 @@ function formatSearchResults(searchResponse, nameFormat = "full") {
426
475
  snippet: ref.snippet
427
476
  })),
428
477
  total_searched: total_tools_searched,
429
- query: pattern_used
478
+ query: pattern_used,
479
+ ...notes.length > 0 ? { notes } : {}
430
480
  };
431
481
  return JSON.stringify(output, null, 2);
432
482
  }
@@ -458,7 +508,7 @@ function getDeferredToolsListing(toolRegistry, onlyDeferred) {
458
508
  if (serverNames.length === 0) return "";
459
509
  return serverNames.map((server) => `${server}: ${toolsByServer[server].join(", ")}`).join("\n");
460
510
  }
461
- function formatServerListing(tools, serverNames, nameFormat = "full") {
511
+ function formatServerListing(tools, serverNames, nameFormat = "full", notes = []) {
462
512
  const servers = Array.isArray(serverNames) ? serverNames : [serverNames];
463
513
  const useFullName = nameFormat === "full";
464
514
  if (tools.length === 0) return JSON.stringify({
@@ -466,6 +516,7 @@ function formatServerListing(tools, serverNames, nameFormat = "full") {
466
516
  servers,
467
517
  total_tools: 0,
468
518
  tools_by_server: {},
519
+ ...notes.length > 0 ? { notes } : {},
469
520
  hint: "No tools found from the specified MCP server(s)."
470
521
  }, null, 2);
471
522
  const toolsByServer = {};
@@ -483,6 +534,7 @@ function formatServerListing(tools, serverNames, nameFormat = "full") {
483
534
  servers,
484
535
  total_tools: tools.length,
485
536
  tools_by_server: toolsByServer,
537
+ ...notes.length > 0 ? { notes } : {},
486
538
  hint: `To use a tool, search for it by name (e.g., query: "${exampleToolName}") to load it.`
487
539
  };
488
540
  return JSON.stringify(output, null, 2);
@@ -516,39 +568,89 @@ ${deferredToolsListing}` : "";
516
568
  error: "No tool registry provided"
517
569
  }
518
570
  }];
519
- const deferredTools = Array.from(toolRegistry.values()).filter((lcTool) => {
520
- if (onlyDeferred === true && lcTool.defer_loading !== true) return false;
521
- if (hasServerFilter && !isFromAnyMcpServer(lcTool.name, serverFilters)) return false;
522
- return true;
523
- }).map((lcTool) => ({
571
+ const registeredServers = hasServerFilter ? /* @__PURE__ */ new Set() : void 0;
572
+ const searchableServers = hasServerFilter ? /* @__PURE__ */ new Set() : void 0;
573
+ const staged = hasServerFilter ? [] : void 0;
574
+ const deferredTools = [];
575
+ let searchableCount = 0;
576
+ const describeTool = (lcTool) => ({
524
577
  name: lcTool.name,
525
578
  description: lcTool.description ?? "",
526
579
  parameters: simplifyParametersForSearch(lcTool.parameters)
527
- }));
528
- if (deferredTools.length === 0) return [`No tools available to search${hasServerFilter ? ` from MCP server(s): ${serverFilters.join(", ")}` : ""}. The tool registry is empty or no matching deferred tools are registered.`, {
529
- tool_references: [],
530
- metadata: {
531
- total_searched: 0,
532
- pattern: query,
533
- mcp_server: serverFilters
580
+ });
581
+ for (const lcTool of toolRegistry.values()) {
582
+ let server;
583
+ if (hasServerFilter) {
584
+ server = extractMcpServerName(lcTool.name);
585
+ if (server !== void 0 && server !== "") registeredServers?.add(server);
586
+ else server = void 0;
534
587
  }
535
- }];
536
- if (hasServerFilter && query === "") return [formatServerListing(deferredTools, serverFilters, mcpNameFormat), {
588
+ if (onlyDeferred === true && lcTool.defer_loading !== true) continue;
589
+ searchableCount += 1;
590
+ if (staged === void 0) {
591
+ deferredTools.push(describeTool(lcTool));
592
+ continue;
593
+ }
594
+ staged.push(lcTool);
595
+ if (server !== void 0) searchableServers?.add(server);
596
+ }
597
+ const availableServers = searchableServers === void 0 ? [] : Array.from(searchableServers).sort();
598
+ const { resolved: matchedServers, unresolved: unknownServers } = hasServerFilter ? resolveServerFilters(serverFilters, registeredServers === void 0 ? [] : Array.from(registeredServers)) : {
599
+ resolved: [],
600
+ unresolved: []
601
+ };
602
+ const activeServers = matchedServers.filter((name) => searchableServers?.has(name) === true);
603
+ const idleServers = matchedServers.filter((name) => searchableServers?.has(name) !== true);
604
+ const filterNotes = [];
605
+ if (unknownServers.length > 0) filterNotes.push(`No MCP server matched: ${unknownServers.join(", ")}.`);
606
+ if (idleServers.length > 0) filterNotes.push(`Registered with no tools left to search: ${idleServers.join(", ")}.`);
607
+ const filterNotice = filterNotes.length > 0 ? `Note: ${filterNotes.join(" ")}\n\n` : "";
608
+ const filterMetadata = {
609
+ ...unknownServers.length > 0 ? { unmatched_mcp_servers: unknownServers } : {},
610
+ ...idleServers.length > 0 ? { idle_mcp_servers: idleServers } : {}
611
+ };
612
+ if (staged !== void 0) {
613
+ for (const lcTool of staged) if (isFromAnyMcpServer(lcTool.name, activeServers)) deferredTools.push(describeTool(lcTool));
614
+ }
615
+ if (deferredTools.length === 0) {
616
+ let message;
617
+ if (hasServerFilter && (unknownServers.length > 0 || idleServers.length > 0)) {
618
+ const parts = [];
619
+ if (unknownServers.length > 0) parts.push(`No MCP server matched: ${unknownServers.join(", ")}.`);
620
+ if (idleServers.length > 0) parts.push(`Registered with no tools left to search: ${idleServers.join(", ")}.`);
621
+ parts.push(`Server(s) with searchable tools: ${availableServers.length > 0 ? availableServers.join(", ") : "(none)"}.`);
622
+ message = parts.join(" ");
623
+ } else if (searchableCount === 0) message = "No tools available to search. The tool registry is empty or no deferred tools are registered.";
624
+ else message = `No tools available to search${hasServerFilter ? ` from MCP server(s): ${serverFilters.join(", ")}` : ""}. The tool registry is empty or no matching deferred tools are registered.`;
625
+ return [message, {
626
+ tool_references: [],
627
+ metadata: {
628
+ total_searched: 0,
629
+ pattern: query,
630
+ mcp_server: serverFilters,
631
+ ...hasServerFilter ? { available_mcp_servers: availableServers } : {},
632
+ ...filterMetadata
633
+ }
634
+ }];
635
+ }
636
+ if (hasServerFilter && query === "") return [formatServerListing(deferredTools, activeServers, mcpNameFormat, filterNotes), {
537
637
  tool_references: [],
538
638
  metadata: {
539
639
  total_available: deferredTools.length,
540
640
  mcp_server: serverFilters,
541
- listing_mode: true
641
+ listing_mode: true,
642
+ ...filterMetadata
542
643
  }
543
644
  }];
544
645
  if (mode === "local") {
545
646
  const searchResponse = performLocalSearch(deferredTools, query, fields, max_results);
546
- return [formatSearchResults(searchResponse, mcpNameFormat), {
647
+ return [formatSearchResults(searchResponse, mcpNameFormat, filterNotes), {
547
648
  tool_references: searchResponse.tool_references,
548
649
  metadata: {
549
650
  total_searched: searchResponse.total_tools_searched,
550
651
  pattern: searchResponse.pattern_used,
551
- mcp_server: serverFilters.length > 0 ? serverFilters : void 0
652
+ mcp_server: serverFilters.length > 0 ? serverFilters : void 0,
653
+ ...filterMetadata
552
654
  }
553
655
  }];
554
656
  }
@@ -575,19 +677,21 @@ ${deferredToolsListing}` : "";
575
677
  if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
576
678
  const result = await response.json();
577
679
  if (result.stderr && result.stderr.trim()) console.warn("[ToolSearch] stderr:", result.stderr);
578
- if (!result.stdout || !result.stdout.trim()) return [`${warningMessage}No tools matched the pattern "${sanitizedPattern}".\nTotal tools searched: ${deferredTools.length}`, {
680
+ if (!result.stdout || !result.stdout.trim()) return [`${filterNotice}${warningMessage}No tools matched the pattern "${sanitizedPattern}".\nTotal tools searched: ${deferredTools.length}`, {
579
681
  tool_references: [],
580
682
  metadata: {
581
683
  total_searched: deferredTools.length,
582
- pattern: sanitizedPattern
684
+ pattern: sanitizedPattern,
685
+ ...filterMetadata
583
686
  }
584
687
  }];
585
688
  const searchResponse = parseSearchResults(result.stdout);
586
- return [`${warningMessage}${formatSearchResults(searchResponse, mcpNameFormat)}`, {
689
+ return [`${warningMessage}${formatSearchResults(searchResponse, mcpNameFormat, filterNotes)}`, {
587
690
  tool_references: searchResponse.tool_references,
588
691
  metadata: {
589
692
  total_searched: searchResponse.total_tools_searched,
590
- pattern: searchResponse.pattern_used
693
+ pattern: searchResponse.pattern_used,
694
+ ...filterMetadata
591
695
  }
592
696
  }];
593
697
  } catch (error) {
@@ -616,6 +720,6 @@ ${mcpNote}${toolsListSection}
616
720
  });
617
721
  }
618
722
  //#endregion
619
- export { ToolSearchToolDefinition, ToolSearchToolDescription, ToolSearchToolName, ToolSearchToolSchema, countNestedGroups, createToolSearch, escapeRegexSpecialChars, extractMcpServerName, formatServerListing, getAvailableMcpServers, getBaseToolName, getDeferredToolsListing, hasNestedQuantifiers, isDangerousPattern, isFromAnyMcpServer, isFromMcpServer, normalizeServerFilter, performLocalSearch, sanitizeRegex };
723
+ export { ToolSearchToolDefinition, ToolSearchToolDescription, ToolSearchToolName, ToolSearchToolSchema, canonicalizeServerName, countNestedGroups, createToolSearch, escapeRegexSpecialChars, extractMcpServerName, formatServerListing, getAvailableMcpServers, getBaseToolName, getDeferredToolsListing, hasNestedQuantifiers, isDangerousPattern, isFromAnyMcpServer, isFromMcpServer, normalizeServerFilter, performLocalSearch, resolveServerFilters, sanitizeRegex };
620
724
 
621
725
  //# sourceMappingURL=ToolSearch.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolSearch.mjs","names":["params"],"sources":["../../../src/tools/ToolSearch.ts"],"mappings":"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"}
1
+ {"version":3,"file":"ToolSearch.mjs","names":["params"],"sources":["../../../src/tools/ToolSearch.ts"],"mappings":"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BAAkB;GACpB,OAAO,IACL,mBAAmB,mBACnB,mBAAmB,iBACnB;IACA,qBAAqB;IACrB,kBAAkB;GACpB,OAAO,IAAI,eAAe,WAAW,eAAe,GAAG;IACrD,qBAAqB;IACrB,kBAAkB,KAAK,IAAI,iBAAiB,GAAI;GAClD;EACF;EAEA,IAAI,CAAC,kBAAkB,uBAAuB,GAAG;EAEjD,MAAM,EAAE,OAAO,YAAY,iBAAiB,MAAM,IAAI,aAAa,MAAM;EACzE,QAAQ,KAAK;GACX,QAAQ;IACN,WAAW,MAAM,EAAE,CAAC;IACpB,aAAa;IACb,eAAe;IACf;GACF;GACA;EACF,CAAC;CACH;CAEA,QAAQ,MACL,GAAG,MACF,EAAE,qBAAqB,EAAE,sBACzB,EAAE,OAAO,cAAc,EAAE,OAAO,WACpC;CAGA,OAAO;EACL,iBAHiB,QAAQ,MAAM,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,aAAa,MAGxC;EAC1B,sBAAsB,MAAM;EAC5B,cAAc;CAChB;AACF;AAWA,SAAS,qBACP,eACA,QACA,YACA,kBACQ;CAiFR,OAAO;EA/EL;EACA,iBAAiB,KAAK,UAAU,aAAa,IAAI;EACjD,wBAAwB,KAAK,UAAU,MAAM,IAAI;EACjD,sBAAsB,aAAa;EACnC,mBAAmB,KAAK,UAAU,gBAAgB,IAAI;EACtD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAES,CAAC,CAAC,KAAK,IAAI;AACxB;AAOA,SAAS,mBAAmB,QAAsC;CAChE,MAAM,YAAY,OAAO,KAAK;CAE9B,OADe,KAAK,MAAM,SACd;AACd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"}
@@ -1,11 +1,11 @@
1
1
  import { CODE_EXECUTION_TOOLS, LOCAL_CODING_BUNDLE_NAMES } from "../../common/enum.mjs";
2
2
  import "../../common/index.mjs";
3
+ import { allowsToolCaller, isToolDefinitionActive } from "../CallerCapabilities.mjs";
3
4
  import { createLocalBashProgrammaticToolCallingTool, createLocalProgrammaticToolCallingTool } from "./LocalProgrammaticToolCalling.mjs";
4
5
  import { createLocalBashExecutionTool, createLocalCodeExecutionTool } from "./LocalExecutionTools.mjs";
5
6
  import { createLocalCodingToolBundle, createLocalCodingToolDefinitions, createLocalCodingTools } from "./LocalCodingTools.mjs";
6
7
  import { CLOUDFLARE_CODING_TOOL_NAMES, createCloudflareCodingToolBundle, createCloudflareCodingTools, createCloudflareExecutionTool } from "../cloudflare/CloudflareSandboxTools.mjs";
7
8
  import "../cloudflare/index.mjs";
8
- import { allowsToolCaller, isToolDefinitionActive } from "../CallerCapabilities.mjs";
9
9
  //#region src/tools/local/resolveLocalExecutionTools.ts
10
10
  function shouldUseLocalExecution(config) {
11
11
  return config?.engine === "local";
@@ -0,0 +1,128 @@
1
+ import { normalizeError, stableStringify } from "./eagerEventExecution.mjs";
2
+ //#region src/tools/preparedSubagents.ts
3
+ var PreparedSubagentError = class extends Error {
4
+ constructor(message, options) {
5
+ super(message, options);
6
+ this.name = "PreparedSubagentError";
7
+ }
8
+ };
9
+ const PREPARED_INVOCATION = Symbol("prepared-subagent-invocation");
10
+ var PreparedSubagents = class {
11
+ attempts = /* @__PURE__ */ new Map();
12
+ reservations = /* @__PURE__ */ new Map();
13
+ running = /* @__PURE__ */ new Set();
14
+ epoch = 0;
15
+ begin(attempt, config = {}) {
16
+ this.attempts.set(attempt, {
17
+ keys: /* @__PURE__ */ new Set(),
18
+ cancelled: false,
19
+ config: {
20
+ ...config,
21
+ configurable: { ...config.configurable },
22
+ metadata: { ...config.metadata }
23
+ }
24
+ });
25
+ }
26
+ getConfig(attempt) {
27
+ const entry = this.attempts.get(attempt);
28
+ return entry?.cancelled === false ? entry.config : void 0;
29
+ }
30
+ isOpen(attempt) {
31
+ return this.attempts.get(attempt)?.cancelled === false;
32
+ }
33
+ start(attempt, owner, call, capacity, invoke) {
34
+ const entries = this.attempts.get(attempt);
35
+ if (entries == null || entries.cancelled || call.id == null || call.id === "") return false;
36
+ const key = JSON.stringify([owner, call.id]);
37
+ const canonical = fingerprint(call);
38
+ const previous = this.reservations.get(key);
39
+ if (previous != null) {
40
+ if (previous.attempt !== attempt || previous.fingerprint !== canonical) throw new PreparedSubagentError("Conflicting eager subagent call identity.");
41
+ return false;
42
+ }
43
+ if (!Number.isSafeInteger(capacity) || capacity <= 0 || this.reservations.size >= capacity || this.running.size >= capacity) return false;
44
+ const controller = new AbortController();
45
+ this.running.add(controller);
46
+ const reservation = {
47
+ token: Symbol(),
48
+ attempt,
49
+ callId: call.id,
50
+ fingerprint: canonical,
51
+ controller,
52
+ committed: false,
53
+ outcome: Promise.resolve().then(() => {
54
+ controller.signal.throwIfAborted();
55
+ return invoke(controller.signal);
56
+ }).then((output) => ({ output }), (error) => ({ error: normalizeError(error) })).finally(() => {
57
+ this.running.delete(controller);
58
+ })
59
+ };
60
+ entries.keys.add(key);
61
+ this.reservations.set(key, reservation);
62
+ return true;
63
+ }
64
+ finish(attempt, calls, cause) {
65
+ const entries = this.attempts.get(attempt);
66
+ this.attempts.delete(attempt);
67
+ if (entries == null || entries.keys.size === 0) return;
68
+ const finalCalls = new Map(calls?.map((call) => [call.id, call]));
69
+ for (const key of entries.keys) {
70
+ const record = this.reservations.get(key);
71
+ const finalCall = record == null ? void 0 : finalCalls.get(record.callId);
72
+ if (entries.cancelled || record == null || record.attempt !== attempt || finalCall == null || fingerprint(finalCall) !== record.fingerprint) {
73
+ const error = new PreparedSubagentError("The model attempt ended or changed after a subagent started; refusing automatic retry.", { cause });
74
+ for (const pendingKey of entries.keys) {
75
+ const pending = this.reservations.get(pendingKey);
76
+ if (pending?.attempt === attempt) {
77
+ pending.controller.abort(error);
78
+ this.reservations.delete(pendingKey);
79
+ }
80
+ }
81
+ throw error;
82
+ }
83
+ record.committed = true;
84
+ finalCall[PREPARED_INVOCATION] = record.token;
85
+ }
86
+ }
87
+ owns(owner, call) {
88
+ const record = this.reservations.get(JSON.stringify([owner, call.id]));
89
+ return record != null && call[PREPARED_INVOCATION] === record.token;
90
+ }
91
+ take(owner, call) {
92
+ const key = JSON.stringify([owner, call.id]);
93
+ const record = this.reservations.get(key);
94
+ const token = call[PREPARED_INVOCATION];
95
+ if (record == null && token == null) return;
96
+ if (record == null || token !== record.token) return Promise.reject(new PreparedSubagentError("Eager subagent invocation is no longer owned by this call."));
97
+ this.reservations.delete(key);
98
+ if (!record.committed || record.fingerprint !== fingerprint(call)) {
99
+ const error = new PreparedSubagentError("Subagent arguments changed after eager invocation.");
100
+ record.controller.abort(error);
101
+ return Promise.reject(error);
102
+ }
103
+ const epoch = this.epoch;
104
+ return record.outcome.then((result) => {
105
+ if (this.epoch !== epoch) throw new PreparedSubagentError("Eager subagent result belongs to a retired run.");
106
+ record.controller.signal.throwIfAborted();
107
+ if ("error" in result) throw result.error;
108
+ return result.output;
109
+ });
110
+ }
111
+ clear() {
112
+ this.epoch++;
113
+ const reason = new PreparedSubagentError("Eager subagent execution was cancelled.");
114
+ for (const controller of this.running) controller.abort(reason);
115
+ this.reservations.clear();
116
+ for (const attempt of this.attempts.values()) attempt.cancelled = true;
117
+ }
118
+ };
119
+ function fingerprint(call) {
120
+ return stableStringify({
121
+ name: call.name,
122
+ args: call.args
123
+ });
124
+ }
125
+ //#endregion
126
+ export { PreparedSubagentError, PreparedSubagents };
127
+
128
+ //# sourceMappingURL=preparedSubagents.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preparedSubagents.mjs","names":[],"sources":["../../../src/tools/preparedSubagents.ts"],"mappings":"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"}
@@ -11,6 +11,7 @@ import type * as t from '@/types';
11
11
  import { StreamLimitExceededError } from '@/llm/streamLimits';
12
12
  import { SubagentExecutor } from '@/tools/subagent';
13
13
  import { ToolOutputReferenceRegistry } from '@/tools/toolOutputReferences';
14
+ import { PreparedSubagents, PreparedSubagentError } from '@/tools/preparedSubagents';
14
15
  import { ToolNode as CustomToolNode } from '@/tools/ToolNode';
15
16
  import { AgentContext } from '@/agents/AgentContext';
16
17
  import { HandlerRegistry } from '@/events';
@@ -235,6 +236,8 @@ export declare abstract class Graph<T extends t.BaseGraphState = t.BaseGraphStat
235
236
  */
236
237
  private _compiledToolNodes;
237
238
  private _subagentExecutors;
239
+ readonly preparedSubagents: PreparedSubagents;
240
+ protected readonly subagentToolNodes: Map<string, CustomToolNode<t.BaseGraphState>>;
238
241
  getOrCreateFileCheckpointer(): t.LocalFileCheckpointer | undefined;
239
242
  }
240
243
  export declare class StandardGraph extends Graph<t.BaseGraphState, t.GraphNode> {
@@ -348,7 +351,7 @@ export declare class StandardGraph extends Graph<t.BaseGraphState, t.GraphNode>
348
351
  * the composed constructor signal (child graphs own separate controllers).
349
352
  * Providers can translate either abort into a generic error, and recovery
350
353
  * paths must not run in that state. */
351
- protected resolveTrippedBreakerReason(breakerSignal?: AbortSignal): StreamLimitExceededError | undefined;
354
+ protected resolveTrippedBreakerReason(breakerSignal?: AbortSignal): StreamLimitExceededError | PreparedSubagentError | undefined;
352
355
  /**
353
356
  * Seals charged against `preemption.maxSeals`. Per-turn: cleared by both
354
357
  * reset paths so a fresh turn gets a fresh budget, while a HITL resume —
@@ -647,6 +650,8 @@ export declare class StandardGraph extends Graph<t.BaseGraphState, t.GraphNode>
647
650
  * Returns a map where key is the contentPart index and value is the agentId
648
651
  */
649
652
  getContentPartAgentMap(): Map<number, string>;
653
+ canPrestartSubagents(agentContext?: AgentContext): boolean;
654
+ prestartSubagent(call: ToolCall, attempt: string, agentContext?: AgentContext): void;
650
655
  initializeTools({ currentTools, currentToolMap, agentContext, }: {
651
656
  currentTools?: t.GraphTools;
652
657
  currentToolMap?: t.ToolMap;
@@ -58,6 +58,11 @@ export declare function createLangfuseTraceMetadata({ messageId, parentMessageId
58
58
  provider?: unknown;
59
59
  resolvedProvider?: unknown;
60
60
  }): LangfuseTraceMetadata;
61
+ /**
62
+ * The trace's user identity: the host-configured `langfuse.userId` when
63
+ * present, else the caller's (normally `configurable.user_id`).
64
+ */
65
+ export declare function resolveLangfuseTraceUserId(langfuse: t.LangfuseConfig | undefined, userId: string | undefined): string | undefined;
61
66
  export declare function getLangfuseTraceName(traceMetadata?: LangfuseTraceMetadata, fallback?: string): string;
62
67
  export declare function shouldCreateLangfuseHandler(langfuse?: t.LangfuseConfig): boolean;
63
68
  export declare function createLegacyLangfuseHandler(params: LangfuseHandlerParams): CallbackHandler;
@@ -0,0 +1,4 @@
1
+ import type { ArtifactDeliveryFailure } from '@/types';
2
+ export declare const ARTIFACT_DELIVERY_WARNING_PREFIX = "Artifact delivery warning:";
3
+ export declare function normalizeArtifactDeliveryFailure(value: unknown): ArtifactDeliveryFailure | undefined;
4
+ export declare function appendArtifactDeliveryWarning(output: string, delivery: ArtifactDeliveryFailure | undefined): string;
@@ -212,6 +212,7 @@ export declare class ToolNode<T = any> extends RunnableCallable<T, T> {
212
212
  private getBreakerSignal?;
213
213
  /** Owning graph's immutable run scope; captured once per batch. */
214
214
  private getRunScope?;
215
+ private preparedSubagents?;
215
216
  /**
216
217
  * Monotonic counter used to mint a unique scope id for anonymous
217
218
  * batches (ones invoked without a `run_id` in
@@ -220,8 +221,9 @@ export declare class ToolNode<T = any> extends RunnableCallable<T, T> {
220
221
  * other's in-flight state.
221
222
  */
222
223
  private anonBatchCounter;
223
- constructor({ tools, toolMap, name, tags, trace, runLangfuse, agentLangfuse, errorHandler, toolCallStepIds, handleToolErrors, loadRuntimeTools, toolRegistry, toolDefinitions, getDiscoveredToolNames, sessions, codeSessionKey, eventDrivenMode, eagerEventToolExecution, eagerEventToolExecutions, eagerEventToolUsageCount, eagerEventToolSuppressions, agentId, executingAgentId, executingAgentName, rootAgentId, rootAgentName, directToolNames, interruptingToolNames, codeSessionToolNames, maxContextTokens, maxToolResultChars, hookRegistry, humanInTheLoop, toolOutputReferences, toolOutputRegistry, toolExecution, fileCheckpointer, getBreakerSignal, getRunScope, restoreRunStepResumeState, createRunStepResumeState, }: t.ToolNodeConstructorParams);
224
+ constructor({ tools, toolMap, name, tags, trace, runLangfuse, agentLangfuse, errorHandler, toolCallStepIds, handleToolErrors, loadRuntimeTools, toolRegistry, toolDefinitions, getDiscoveredToolNames, sessions, codeSessionKey, eventDrivenMode, eagerEventToolExecution, eagerEventToolExecutions, eagerEventToolUsageCount, eagerEventToolSuppressions, agentId, executingAgentId, executingAgentName, rootAgentId, rootAgentName, directToolNames, interruptingToolNames, codeSessionToolNames, maxContextTokens, maxToolResultChars, hookRegistry, humanInTheLoop, toolOutputReferences, toolOutputRegistry, toolExecution, fileCheckpointer, getBreakerSignal, getRunScope, preparedSubagents, restoreRunStepResumeState, createRunStepResumeState, }: t.ToolNodeConstructorParams);
224
225
  invoke(input: any, options?: Partial<RunnableConfig>): Promise<any>;
226
+ private withToolScope;
225
227
  /**
226
228
  * Returns the run-scoped tool output registry, or `undefined` when
227
229
  * the feature is disabled.
@@ -281,6 +283,16 @@ export declare class ToolNode<T = any> extends RunnableCallable<T, T> {
281
283
  restoreSubagentResumeState(state: SubagentToolNodeResumeState): void;
282
284
  private recordToolUsageTurn;
283
285
  private recordEventToolPlanningTurn;
286
+ /**
287
+ * Forward the graph state as langgraph 1.4's `runtime.state` so
288
+ * tools can read it off their second argument instead of the
289
+ * deprecated `getCurrentTaskInput()` (which relies on
290
+ * `node:async_hooks` and is browser-incompatible). Shape mirrors
291
+ * langgraph's prebuilt ToolNode runtime exactly.
292
+ */
293
+ private invokeWithRuntime;
294
+ /** Only Graph's built-in subagent binding is allowed to call this seam. */
295
+ prestartSubagent(call: ToolCall, attempt: string, config: RunnableConfig, capacity: number): void;
284
296
  /**
285
297
  * Runs a single tool call with error handling.
286
298
  *
@@ -117,6 +117,48 @@ declare function extractMcpServerName(toolName: string): string | undefined;
117
117
  * @returns True if the tool belongs to the specified server
118
118
  */
119
119
  declare function isFromMcpServer(toolName: string, serverName: string): boolean;
120
+ /**
121
+ * Canonical form used for lenient matching. It folds case and treats the
122
+ * separators a host may rewrite as equivalent — LibreChat turns
123
+ * `ClickHouse Cloud` into `ClickHouse_Cloud`, so a model asking for
124
+ * `clickhouse-cloud` is naming the same server.
125
+ *
126
+ * **No character is ever discarded.** Every incorrect match this resolver has
127
+ * produced came from deleting characters, because deleting merges two distinct
128
+ * names onto one key: dropping non-ASCII made `éfoo` equal `foo`, dropping
129
+ * combining marks made `İfoo` equal `ifoo`, and dropping symbols made `❤️`
130
+ * equal `☀️`. Collapsing separators is the only equivalence intended here, so
131
+ * it is the only one performed.
132
+ *
133
+ * Case is folded with `toLowerCase` alone. A round trip through uppercase
134
+ * would additionally equate a Greek final sigma with its medial form, but it
135
+ * also equates dotless `ı` with ASCII `i`, which Unicode case folding keeps
136
+ * apart — and a false match hands over another server's tools while a missed
137
+ * one only produces the message naming the servers that do exist. The safe
138
+ * direction is the one taken here.
139
+ */
140
+ declare function canonicalizeServerName(serverName: string): string;
141
+ /**
142
+ * Maps requested server names onto the servers that actually have tools
143
+ * registered, so a near-miss filters instead of silently returning nothing.
144
+ *
145
+ * Exact names win, then case/separator-insensitive matches, then the
146
+ * mcp-prefix-stripped form. Trying them in that order keeps a deployment that
147
+ * runs both `github` and `mcp-github` unambiguous: each resolves to itself.
148
+ *
149
+ * Several registered names can still share one canonical form (`foo-bar` and
150
+ * `foobar`). An inexact request cannot choose between them, so every candidate
151
+ * is returned rather than whichever was seen first: a superset is recoverable
152
+ * by reading the tool names, an arbitrary pick is not.
153
+ *
154
+ * @param requested - Server names as supplied by the caller
155
+ * @param available - Server names present in the tool registry
156
+ * @returns The registry names to filter by, and any request that matched none
157
+ */
158
+ declare function resolveServerFilters(requested: string[], available: string[]): {
159
+ resolved: string[];
160
+ unresolved: string[];
161
+ };
120
162
  /**
121
163
  * Checks if a tool belongs to any of the specified MCP servers.
122
164
  * @param toolName - The full tool name
@@ -206,9 +248,11 @@ declare function getDeferredToolsListing(toolRegistry: t.LCToolRegistry | undefi
206
248
  * @param tools - Array of tool metadata from the server(s)
207
249
  * @param serverNames - The MCP server name(s)
208
250
  * @param nameFormat - Whether to show 'full' names (tool_mcp_server) or 'base' names (tool only)
251
+ * @param notes - Diagnostics about requested servers that were not searched;
252
+ * carried inside the JSON so the output stays parseable
209
253
  * @returns JSON string showing all tools grouped by server
210
254
  */
211
- declare function formatServerListing(tools: t.ToolMetadata[], serverNames: string | string[], nameFormat?: t.McpNameFormat): string;
255
+ declare function formatServerListing(tools: t.ToolMetadata[], serverNames: string | string[], nameFormat?: t.McpNameFormat, notes?: string[]): string;
212
256
  /**
213
257
  * Creates a Tool Search tool for discovering tools from a large registry.
214
258
  *
@@ -238,4 +282,4 @@ declare function formatServerListing(tools: t.ToolMetadata[], serverNames: strin
238
282
  * await tool.invoke({ query: 'expense' });
239
283
  */
240
284
  declare function createToolSearch(initParams?: t.ToolSearchParams): DynamicStructuredTool;
241
- export { createToolSearch, performLocalSearch, extractMcpServerName, isFromMcpServer, isFromAnyMcpServer, normalizeServerFilter, getAvailableMcpServers, getDeferredToolsListing, getBaseToolName, formatServerListing, sanitizeRegex, escapeRegexSpecialChars, isDangerousPattern, countNestedGroups, hasNestedQuantifiers, };
285
+ export { createToolSearch, performLocalSearch, extractMcpServerName, isFromMcpServer, isFromAnyMcpServer, resolveServerFilters, canonicalizeServerName, normalizeServerFilter, getAvailableMcpServers, getDeferredToolsListing, getBaseToolName, formatServerListing, sanitizeRegex, escapeRegexSpecialChars, isDangerousPattern, countNestedGroups, hasNestedQuantifiers, };
@@ -0,0 +1,26 @@
1
+ import type { RunnableConfig } from '@langchain/core/runnables';
2
+ import type { ToolCall } from '@langchain/core/messages/tool';
3
+ /** A model attempt cannot safely retry after delegated work has started. */
4
+ export declare class PreparedSubagentError extends Error {
5
+ constructor(message: string, options?: ErrorOptions);
6
+ }
7
+ /**
8
+ * Owns speculative invocation work, never tool results or graph state. Only
9
+ * explicitly open model attempts admit work; closing an attempt fences late
10
+ * callbacks without retaining tombstones. Normal ToolNode execution adopts the
11
+ * raw output and performs its existing lifecycle/output processing once.
12
+ */
13
+ export declare class PreparedSubagents {
14
+ private readonly attempts;
15
+ private readonly reservations;
16
+ private readonly running;
17
+ private epoch;
18
+ begin(attempt: string, config?: RunnableConfig): void;
19
+ getConfig(attempt: string): RunnableConfig | undefined;
20
+ isOpen(attempt: string): boolean;
21
+ start(attempt: string, owner: string, call: ToolCall, capacity: number, invoke: (signal: AbortSignal) => Promise<unknown>): boolean;
22
+ finish(attempt: string, calls?: ToolCall[], cause?: unknown): void;
23
+ owns(owner: string, call: ToolCall): boolean;
24
+ take(owner: string, call: ToolCall): Promise<unknown> | undefined;
25
+ clear(): void;
26
+ }