@librechat/agents 3.7.21 → 3.7.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/graphs/Graph.cjs +21 -4
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/llm/invoke.cjs +21 -6
- package/dist/cjs/llm/invoke.cjs.map +1 -1
- package/dist/cjs/main.cjs +2 -0
- package/dist/cjs/stream.cjs +38 -1
- package/dist/cjs/stream.cjs.map +1 -1
- package/dist/cjs/tools/ToolNode.cjs +95 -18
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/ToolSearch.cjs +130 -24
- package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
- package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs +1 -1
- package/dist/cjs/tools/preparedSubagents.cjs +129 -0
- package/dist/cjs/tools/preparedSubagents.cjs.map +1 -0
- package/dist/esm/graphs/Graph.mjs +21 -4
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/llm/invoke.mjs +21 -6
- package/dist/esm/llm/invoke.mjs.map +1 -1
- package/dist/esm/main.mjs +2 -2
- package/dist/esm/stream.mjs +39 -2
- package/dist/esm/stream.mjs.map +1 -1
- package/dist/esm/tools/ToolNode.mjs +95 -18
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/ToolSearch.mjs +129 -25
- package/dist/esm/tools/ToolSearch.mjs.map +1 -1
- package/dist/esm/tools/local/resolveLocalExecutionTools.mjs +1 -1
- package/dist/esm/tools/preparedSubagents.mjs +128 -0
- package/dist/esm/tools/preparedSubagents.mjs.map +1 -0
- package/dist/types/graphs/Graph.d.ts +6 -1
- package/dist/types/tools/ToolNode.d.ts +13 -1
- package/dist/types/tools/ToolSearch.d.ts +46 -2
- package/dist/types/tools/preparedSubagents.d.ts +26 -0
- package/dist/types/types/tools.d.ts +17 -0
- package/package.json +1 -1
- package/src/graphs/Graph.ts +63 -5
- package/src/llm/invoke.ts +35 -8
- package/src/stream.ts +70 -1
- package/src/tools/ToolNode.ts +189 -43
- package/src/tools/ToolSearch.ts +278 -28
- package/src/tools/preparedSubagents.ts +228 -0
- package/src/types/tools.ts +17 -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
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
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
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
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
|
-
|
|
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;
|
|
@@ -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
|
+
}
|