@librechat/agents 3.1.67 → 3.1.68-dev.1
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/agents/AgentContext.cjs +23 -3
- package/dist/cjs/agents/AgentContext.cjs.map +1 -1
- package/dist/cjs/common/enum.cjs +16 -1
- package/dist/cjs/common/enum.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +91 -0
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/graphs/MultiAgentGraph.cjs +36 -0
- package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
- package/dist/cjs/hooks/HookRegistry.cjs +162 -0
- package/dist/cjs/hooks/HookRegistry.cjs.map +1 -0
- package/dist/cjs/hooks/executeHooks.cjs +276 -0
- package/dist/cjs/hooks/executeHooks.cjs.map +1 -0
- package/dist/cjs/hooks/matchers.cjs +256 -0
- package/dist/cjs/hooks/matchers.cjs.map +1 -0
- package/dist/cjs/hooks/types.cjs +27 -0
- package/dist/cjs/hooks/types.cjs.map +1 -0
- package/dist/cjs/main.cjs +54 -0
- package/dist/cjs/main.cjs.map +1 -1
- package/dist/cjs/messages/format.cjs +74 -12
- package/dist/cjs/messages/format.cjs.map +1 -1
- package/dist/cjs/run.cjs +111 -0
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/cjs/summarization/index.cjs +41 -0
- package/dist/cjs/summarization/index.cjs.map +1 -1
- package/dist/cjs/summarization/node.cjs +165 -19
- package/dist/cjs/summarization/node.cjs.map +1 -1
- package/dist/cjs/tools/BashExecutor.cjs +165 -0
- package/dist/cjs/tools/BashExecutor.cjs.map +1 -0
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +287 -0
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -0
- package/dist/cjs/tools/CodeExecutor.cjs +0 -9
- package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs +7 -23
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/ReadFile.cjs +43 -0
- package/dist/cjs/tools/ReadFile.cjs.map +1 -0
- package/dist/cjs/tools/SkillTool.cjs +50 -0
- package/dist/cjs/tools/SkillTool.cjs.map +1 -0
- package/dist/cjs/tools/SubagentTool.cjs +92 -0
- package/dist/cjs/tools/SubagentTool.cjs.map +1 -0
- package/dist/cjs/tools/ToolNode.cjs +304 -140
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/ToolSearch.cjs +2 -13
- package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
- package/dist/cjs/tools/skillCatalog.cjs +84 -0
- package/dist/cjs/tools/skillCatalog.cjs.map +1 -0
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs +511 -0
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -0
- package/dist/esm/agents/AgentContext.mjs +23 -3
- package/dist/esm/agents/AgentContext.mjs.map +1 -1
- package/dist/esm/common/enum.mjs +15 -2
- package/dist/esm/common/enum.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +91 -0
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/graphs/MultiAgentGraph.mjs +36 -0
- package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
- package/dist/esm/hooks/HookRegistry.mjs +160 -0
- package/dist/esm/hooks/HookRegistry.mjs.map +1 -0
- package/dist/esm/hooks/executeHooks.mjs +273 -0
- package/dist/esm/hooks/executeHooks.mjs.map +1 -0
- package/dist/esm/hooks/matchers.mjs +251 -0
- package/dist/esm/hooks/matchers.mjs.map +1 -0
- package/dist/esm/hooks/types.mjs +25 -0
- package/dist/esm/hooks/types.mjs.map +1 -0
- package/dist/esm/main.mjs +13 -2
- package/dist/esm/main.mjs.map +1 -1
- package/dist/esm/messages/format.mjs +66 -4
- package/dist/esm/messages/format.mjs.map +1 -1
- package/dist/esm/run.mjs +111 -0
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/summarization/index.mjs +41 -1
- package/dist/esm/summarization/index.mjs.map +1 -1
- package/dist/esm/summarization/node.mjs +165 -19
- package/dist/esm/summarization/node.mjs.map +1 -1
- package/dist/esm/tools/BashExecutor.mjs +159 -0
- package/dist/esm/tools/BashExecutor.mjs.map +1 -0
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs +278 -0
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -0
- package/dist/esm/tools/CodeExecutor.mjs +0 -9
- package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
- package/dist/esm/tools/ProgrammaticToolCalling.mjs +8 -24
- package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/ReadFile.mjs +38 -0
- package/dist/esm/tools/ReadFile.mjs.map +1 -0
- package/dist/esm/tools/SkillTool.mjs +45 -0
- package/dist/esm/tools/SkillTool.mjs.map +1 -0
- package/dist/esm/tools/SubagentTool.mjs +85 -0
- package/dist/esm/tools/SubagentTool.mjs.map +1 -0
- package/dist/esm/tools/ToolNode.mjs +306 -142
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/ToolSearch.mjs +3 -14
- package/dist/esm/tools/ToolSearch.mjs.map +1 -1
- package/dist/esm/tools/skillCatalog.mjs +82 -0
- package/dist/esm/tools/skillCatalog.mjs.map +1 -0
- package/dist/esm/tools/subagent/SubagentExecutor.mjs +505 -0
- package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -0
- package/dist/types/agents/AgentContext.d.ts +6 -0
- package/dist/types/common/enum.d.ts +10 -2
- package/dist/types/graphs/Graph.d.ts +2 -0
- package/dist/types/graphs/MultiAgentGraph.d.ts +12 -0
- package/dist/types/hooks/HookRegistry.d.ts +56 -0
- package/dist/types/hooks/executeHooks.d.ts +79 -0
- package/dist/types/hooks/index.d.ts +6 -0
- package/dist/types/hooks/matchers.d.ts +95 -0
- package/dist/types/hooks/types.d.ts +320 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/messages/format.d.ts +2 -1
- package/dist/types/run.d.ts +1 -0
- package/dist/types/summarization/index.d.ts +2 -0
- package/dist/types/summarization/node.d.ts +2 -0
- package/dist/types/tools/BashExecutor.d.ts +45 -0
- package/dist/types/tools/BashProgrammaticToolCalling.d.ts +72 -0
- package/dist/types/tools/ProgrammaticToolCalling.d.ts +4 -9
- package/dist/types/tools/ReadFile.d.ts +28 -0
- package/dist/types/tools/SkillTool.d.ts +40 -0
- package/dist/types/tools/SubagentTool.d.ts +36 -0
- package/dist/types/tools/ToolNode.d.ts +24 -2
- package/dist/types/tools/ToolSearch.d.ts +2 -2
- package/dist/types/tools/skillCatalog.d.ts +19 -0
- package/dist/types/tools/subagent/SubagentExecutor.d.ts +137 -0
- package/dist/types/tools/subagent/index.d.ts +2 -0
- package/dist/types/types/graph.d.ts +61 -2
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/run.d.ts +20 -0
- package/dist/types/types/skill.d.ts +9 -0
- package/dist/types/types/tools.d.ts +38 -10
- package/package.json +5 -1
- package/src/agents/AgentContext.ts +26 -2
- package/src/common/enum.ts +15 -1
- package/src/graphs/Graph.ts +113 -0
- package/src/graphs/MultiAgentGraph.ts +39 -0
- package/src/graphs/__tests__/MultiAgentGraph.test.ts +91 -0
- package/src/hooks/HookRegistry.ts +208 -0
- package/src/hooks/__tests__/HookRegistry.test.ts +190 -0
- package/src/hooks/__tests__/compactHooks.test.ts +214 -0
- package/src/hooks/__tests__/executeHooks.test.ts +1013 -0
- package/src/hooks/__tests__/integration.test.ts +337 -0
- package/src/hooks/__tests__/matchers.test.ts +238 -0
- package/src/hooks/__tests__/toolHooks.test.ts +669 -0
- package/src/hooks/executeHooks.ts +375 -0
- package/src/hooks/index.ts +57 -0
- package/src/hooks/matchers.ts +280 -0
- package/src/hooks/types.ts +404 -0
- package/src/index.ts +10 -0
- package/src/messages/format.ts +74 -4
- package/src/messages/formatAgentMessages.skills.test.ts +334 -0
- package/src/run.ts +126 -0
- package/src/scripts/multi-agent-subagent.ts +246 -0
- package/src/scripts/programmatic_exec.ts +1 -10
- package/src/scripts/subagent-event-driven-debug.ts +190 -0
- package/src/scripts/subagent-tools-debug.ts +160 -0
- package/src/scripts/test_code_api.ts +0 -7
- package/src/scripts/tool_search.ts +1 -10
- package/src/specs/subagent.test.ts +305 -0
- package/src/summarization/__tests__/node.test.ts +42 -0
- package/src/summarization/__tests__/trigger.test.ts +100 -1
- package/src/summarization/index.ts +47 -0
- package/src/summarization/node.ts +202 -24
- package/src/tools/BashExecutor.ts +193 -0
- package/src/tools/BashProgrammaticToolCalling.ts +381 -0
- package/src/tools/CodeExecutor.ts +0 -11
- package/src/tools/ProgrammaticToolCalling.ts +4 -29
- package/src/tools/ReadFile.ts +39 -0
- package/src/tools/SkillTool.ts +46 -0
- package/src/tools/SubagentTool.ts +100 -0
- package/src/tools/ToolNode.ts +391 -169
- package/src/tools/ToolSearch.ts +3 -19
- package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.ts +7 -8
- package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +0 -1
- package/src/tools/__tests__/ReadFile.test.ts +44 -0
- package/src/tools/__tests__/SkillTool.test.ts +442 -0
- package/src/tools/__tests__/SubagentExecutor.test.ts +1148 -0
- package/src/tools/__tests__/SubagentTool.test.ts +149 -0
- package/src/tools/__tests__/ToolNode.session.test.ts +12 -12
- package/src/tools/__tests__/ToolSearch.integration.test.ts +7 -8
- package/src/tools/__tests__/skillCatalog.test.ts +161 -0
- package/src/tools/__tests__/subagentHooks.test.ts +215 -0
- package/src/tools/skillCatalog.ts +126 -0
- package/src/tools/subagent/SubagentExecutor.ts +676 -0
- package/src/tools/subagent/index.ts +13 -0
- package/src/types/graph.ts +80 -1
- package/src/types/index.ts +1 -0
- package/src/types/run.ts +20 -0
- package/src/types/skill.ts +11 -0
- package/src/types/tools.ts +41 -10
package/dist/cjs/main.cjs
CHANGED
|
@@ -19,7 +19,14 @@ var MultiAgentGraph = require('./graphs/MultiAgentGraph.cjs');
|
|
|
19
19
|
var index$2 = require('./summarization/index.cjs');
|
|
20
20
|
var Calculator = require('./tools/Calculator.cjs');
|
|
21
21
|
var CodeExecutor = require('./tools/CodeExecutor.cjs');
|
|
22
|
+
var BashExecutor = require('./tools/BashExecutor.cjs');
|
|
22
23
|
var ProgrammaticToolCalling = require('./tools/ProgrammaticToolCalling.cjs');
|
|
24
|
+
var BashProgrammaticToolCalling = require('./tools/BashProgrammaticToolCalling.cjs');
|
|
25
|
+
var SkillTool = require('./tools/SkillTool.cjs');
|
|
26
|
+
var SubagentTool = require('./tools/SubagentTool.cjs');
|
|
27
|
+
var SubagentExecutor = require('./tools/subagent/SubagentExecutor.cjs');
|
|
28
|
+
var ReadFile = require('./tools/ReadFile.cjs');
|
|
29
|
+
var skillCatalog = require('./tools/skillCatalog.cjs');
|
|
23
30
|
var ToolSearch = require('./tools/ToolSearch.cjs');
|
|
24
31
|
var ToolNode = require('./tools/ToolNode.cjs');
|
|
25
32
|
var schema$1 = require('./tools/schema.cjs');
|
|
@@ -37,6 +44,10 @@ var tokens = require('./utils/tokens.cjs');
|
|
|
37
44
|
var schema$2 = require('./utils/schema.cjs');
|
|
38
45
|
var truncation = require('./utils/truncation.cjs');
|
|
39
46
|
var errors = require('./utils/errors.cjs');
|
|
47
|
+
var HookRegistry = require('./hooks/HookRegistry.cjs');
|
|
48
|
+
var executeHooks = require('./hooks/executeHooks.cjs');
|
|
49
|
+
var matchers = require('./hooks/matchers.cjs');
|
|
50
|
+
var types = require('./hooks/types.cjs');
|
|
40
51
|
var index$1 = require('./llm/openai/index.cjs');
|
|
41
52
|
var index = require('./llm/openrouter/index.cjs');
|
|
42
53
|
var providers = require('./llm/providers.cjs');
|
|
@@ -102,6 +113,7 @@ exports.messagesStateReducer = reducer.messagesStateReducer;
|
|
|
102
113
|
exports.Graph = Graph.Graph;
|
|
103
114
|
exports.StandardGraph = Graph.StandardGraph;
|
|
104
115
|
exports.MultiAgentGraph = MultiAgentGraph.MultiAgentGraph;
|
|
116
|
+
exports._resetUnrecognizedTriggerWarnings = index$2._resetUnrecognizedTriggerWarnings;
|
|
105
117
|
exports.shouldTriggerSummarization = index$2.shouldTriggerSummarization;
|
|
106
118
|
exports.Calculator = Calculator.Calculator;
|
|
107
119
|
exports.CalculatorSchema = Calculator.CalculatorSchema;
|
|
@@ -115,6 +127,11 @@ exports.CodeExecutionToolSchema = CodeExecutor.CodeExecutionToolSchema;
|
|
|
115
127
|
exports.createCodeExecutionTool = CodeExecutor.createCodeExecutionTool;
|
|
116
128
|
exports.getCodeBaseURL = CodeExecutor.getCodeBaseURL;
|
|
117
129
|
exports.imageExtRegex = CodeExecutor.imageExtRegex;
|
|
130
|
+
exports.BashExecutionToolDefinition = BashExecutor.BashExecutionToolDefinition;
|
|
131
|
+
exports.BashExecutionToolDescription = BashExecutor.BashExecutionToolDescription;
|
|
132
|
+
exports.BashExecutionToolName = BashExecutor.BashExecutionToolName;
|
|
133
|
+
exports.BashExecutionToolSchema = BashExecutor.BashExecutionToolSchema;
|
|
134
|
+
exports.createBashExecutionTool = BashExecutor.createBashExecutionTool;
|
|
118
135
|
exports.ProgrammaticToolCallingDefinition = ProgrammaticToolCalling.ProgrammaticToolCallingDefinition;
|
|
119
136
|
exports.ProgrammaticToolCallingDescription = ProgrammaticToolCalling.ProgrammaticToolCallingDescription;
|
|
120
137
|
exports.ProgrammaticToolCallingName = ProgrammaticToolCalling.ProgrammaticToolCallingName;
|
|
@@ -128,6 +145,34 @@ exports.formatCompletedResponse = ProgrammaticToolCalling.formatCompletedRespons
|
|
|
128
145
|
exports.makeRequest = ProgrammaticToolCalling.makeRequest;
|
|
129
146
|
exports.normalizeToPythonIdentifier = ProgrammaticToolCalling.normalizeToPythonIdentifier;
|
|
130
147
|
exports.unwrapToolResponse = ProgrammaticToolCalling.unwrapToolResponse;
|
|
148
|
+
exports.BashProgrammaticToolCallingDefinition = BashProgrammaticToolCalling.BashProgrammaticToolCallingDefinition;
|
|
149
|
+
exports.BashProgrammaticToolCallingDescription = BashProgrammaticToolCalling.BashProgrammaticToolCallingDescription;
|
|
150
|
+
exports.BashProgrammaticToolCallingName = BashProgrammaticToolCalling.BashProgrammaticToolCallingName;
|
|
151
|
+
exports.BashProgrammaticToolCallingSchema = BashProgrammaticToolCalling.BashProgrammaticToolCallingSchema;
|
|
152
|
+
exports.createBashProgrammaticToolCallingTool = BashProgrammaticToolCalling.createBashProgrammaticToolCallingTool;
|
|
153
|
+
exports.extractUsedBashToolNames = BashProgrammaticToolCalling.extractUsedBashToolNames;
|
|
154
|
+
exports.filterBashToolsByUsage = BashProgrammaticToolCalling.filterBashToolsByUsage;
|
|
155
|
+
exports.normalizeToBashIdentifier = BashProgrammaticToolCalling.normalizeToBashIdentifier;
|
|
156
|
+
exports.SkillToolDefinition = SkillTool.SkillToolDefinition;
|
|
157
|
+
exports.SkillToolDescription = SkillTool.SkillToolDescription;
|
|
158
|
+
exports.SkillToolName = SkillTool.SkillToolName;
|
|
159
|
+
exports.SkillToolSchema = SkillTool.SkillToolSchema;
|
|
160
|
+
exports.SubagentToolDefinition = SubagentTool.SubagentToolDefinition;
|
|
161
|
+
exports.SubagentToolDescription = SubagentTool.SubagentToolDescription;
|
|
162
|
+
exports.SubagentToolName = SubagentTool.SubagentToolName;
|
|
163
|
+
exports.SubagentToolSchema = SubagentTool.SubagentToolSchema;
|
|
164
|
+
exports.buildSubagentToolParams = SubagentTool.buildSubagentToolParams;
|
|
165
|
+
exports.createSubagentToolDefinition = SubagentTool.createSubagentToolDefinition;
|
|
166
|
+
exports.SubagentExecutor = SubagentExecutor.SubagentExecutor;
|
|
167
|
+
exports.buildChildInputs = SubagentExecutor.buildChildInputs;
|
|
168
|
+
exports.filterSubagentResult = SubagentExecutor.filterSubagentResult;
|
|
169
|
+
exports.resolveSubagentConfigs = SubagentExecutor.resolveSubagentConfigs;
|
|
170
|
+
exports.summarizeEvent = SubagentExecutor.summarizeEvent;
|
|
171
|
+
exports.ReadFileToolDefinition = ReadFile.ReadFileToolDefinition;
|
|
172
|
+
exports.ReadFileToolDescription = ReadFile.ReadFileToolDescription;
|
|
173
|
+
exports.ReadFileToolName = ReadFile.ReadFileToolName;
|
|
174
|
+
exports.ReadFileToolSchema = ReadFile.ReadFileToolSchema;
|
|
175
|
+
exports.formatSkillCatalog = skillCatalog.formatSkillCatalog;
|
|
131
176
|
exports.ToolSearchToolDefinition = ToolSearch.ToolSearchToolDefinition;
|
|
132
177
|
exports.ToolSearchToolDescription = ToolSearch.ToolSearchToolDescription;
|
|
133
178
|
exports.ToolSearchToolName = ToolSearch.ToolSearchToolName;
|
|
@@ -174,6 +219,7 @@ exports.querySchema = schema.querySchema;
|
|
|
174
219
|
exports.videosSchema = schema.videosSchema;
|
|
175
220
|
exports.ANTHROPIC_TOOL_TOKEN_MULTIPLIER = constants.ANTHROPIC_TOOL_TOKEN_MULTIPLIER;
|
|
176
221
|
exports.DEFAULT_TOOL_TOKEN_MULTIPLIER = constants.DEFAULT_TOOL_TOKEN_MULTIPLIER;
|
|
222
|
+
exports.CODE_EXECUTION_TOOLS = _enum.CODE_EXECUTION_TOOLS;
|
|
177
223
|
Object.defineProperty(exports, "Callback", {
|
|
178
224
|
enumerable: true,
|
|
179
225
|
get: function () { return _enum.Callback; }
|
|
@@ -248,6 +294,14 @@ exports.truncateToolResultContent = truncation.truncateToolResultContent;
|
|
|
248
294
|
exports.extractErrorMessage = errors.extractErrorMessage;
|
|
249
295
|
exports.isContextOverflowError = errors.isContextOverflowError;
|
|
250
296
|
exports.isLikelyContextOverflowError = errors.isLikelyContextOverflowError;
|
|
297
|
+
exports.HookRegistry = HookRegistry.HookRegistry;
|
|
298
|
+
exports.DEFAULT_HOOK_TIMEOUT_MS = executeHooks.DEFAULT_HOOK_TIMEOUT_MS;
|
|
299
|
+
exports.executeHooks = executeHooks.executeHooks;
|
|
300
|
+
exports.MAX_CACHE_SIZE = matchers.MAX_CACHE_SIZE;
|
|
301
|
+
exports.MAX_PATTERN_LENGTH = matchers.MAX_PATTERN_LENGTH;
|
|
302
|
+
exports.hasNestedQuantifier = matchers.hasNestedQuantifier;
|
|
303
|
+
exports.matchesQuery = matchers.matchesQuery;
|
|
304
|
+
exports.HOOK_EVENTS = types.HOOK_EVENTS;
|
|
251
305
|
exports.CustomOpenAIClient = index$1.CustomOpenAIClient;
|
|
252
306
|
exports.ChatOpenRouter = index.ChatOpenRouter;
|
|
253
307
|
exports.getChatModelClass = providers.getChatModelClass;
|
package/dist/cjs/main.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -555,16 +555,38 @@ function contentPartCharLength(part) {
|
|
|
555
555
|
}
|
|
556
556
|
return len;
|
|
557
557
|
}
|
|
558
|
+
/** Extracts the skillName from a skill tool_call's args (string or object). */
|
|
559
|
+
function extractSkillName(args) {
|
|
560
|
+
let parsed;
|
|
561
|
+
if (typeof args === 'string') {
|
|
562
|
+
try {
|
|
563
|
+
parsed = JSON.parse(args);
|
|
564
|
+
}
|
|
565
|
+
catch {
|
|
566
|
+
/* malformed args — skip */
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
else {
|
|
570
|
+
parsed = args;
|
|
571
|
+
}
|
|
572
|
+
const name = parsed?.skillName;
|
|
573
|
+
return typeof name === 'string' && name !== '' ? name : undefined;
|
|
574
|
+
}
|
|
558
575
|
/**
|
|
559
576
|
* Formats an array of messages for LangChain, handling tool calls and creating ToolMessage instances.
|
|
560
577
|
*
|
|
561
578
|
* @param payload - The array of messages to format.
|
|
562
579
|
* @param indexTokenCountMap - Optional map of message indices to token counts.
|
|
563
580
|
* @param tools - Optional set of tool names that are allowed in the request.
|
|
581
|
+
* @param skills - Optional map of skill name to body for reconstructing skill HumanMessages.
|
|
564
582
|
* @returns - Object containing formatted messages and updated indexTokenCountMap if provided.
|
|
565
583
|
*/
|
|
566
|
-
const formatAgentMessages = (payload, indexTokenCountMap, tools
|
|
567
|
-
|
|
584
|
+
const formatAgentMessages = (payload, indexTokenCountMap, tools,
|
|
585
|
+
/** Pre-resolved skill bodies keyed by skill name. When present, HumanMessages
|
|
586
|
+
* are reconstructed after skill ToolMessages to restore skill instructions
|
|
587
|
+
* that were only in LangGraph state during the original run. */
|
|
588
|
+
skills) => {
|
|
589
|
+
const messages$1 = [];
|
|
568
590
|
// If indexTokenCountMap is provided, create a new map to track the updated indices
|
|
569
591
|
const updatedIndexTokenCountMap = {};
|
|
570
592
|
let boundaryTokenAdjustment;
|
|
@@ -612,13 +634,13 @@ const formatAgentMessages = (payload, indexTokenCountMap, tools) => {
|
|
|
612
634
|
if (sourceMessageId != null && sourceMessageId !== '') {
|
|
613
635
|
formattedMessage.id = sourceMessageId;
|
|
614
636
|
}
|
|
615
|
-
messages.push(formattedMessage);
|
|
637
|
+
messages$1.push(formattedMessage);
|
|
616
638
|
// Update the index mapping for this message
|
|
617
|
-
indexMapping[i] = [messages.length - 1];
|
|
639
|
+
indexMapping[i] = [messages$1.length - 1];
|
|
618
640
|
continue;
|
|
619
641
|
}
|
|
620
642
|
// For assistant messages, track the starting index before processing
|
|
621
|
-
const startMessageIndex = messages.length;
|
|
643
|
+
const startMessageIndex = messages$1.length;
|
|
622
644
|
/**
|
|
623
645
|
* If tools set is provided, process tool_calls:
|
|
624
646
|
* - Keep valid tool_calls (tools in the set or dynamically discovered)
|
|
@@ -626,6 +648,7 @@ const formatAgentMessages = (payload, indexTokenCountMap, tools) => {
|
|
|
626
648
|
* - Dynamically expand the set when tool_search results are encountered
|
|
627
649
|
*/
|
|
628
650
|
let processedMessage = message;
|
|
651
|
+
let pendingSkillNames;
|
|
629
652
|
if (discoveredTools) {
|
|
630
653
|
const content = message.content;
|
|
631
654
|
if (content != null && Array.isArray(content)) {
|
|
@@ -661,8 +684,15 @@ const formatAgentMessages = (payload, indexTokenCountMap, tools) => {
|
|
|
661
684
|
}
|
|
662
685
|
}
|
|
663
686
|
if (discoveredTools.has(toolName)) {
|
|
664
|
-
/** Valid tool - keep it */
|
|
665
687
|
filteredContent.push(part);
|
|
688
|
+
if (toolName === _enum.Constants.SKILL_TOOL &&
|
|
689
|
+
skills?.size != null &&
|
|
690
|
+
skills.size > 0) {
|
|
691
|
+
const skillName = extractSkillName(part.tool_call.args) ?? '';
|
|
692
|
+
if (skillName) {
|
|
693
|
+
(pendingSkillNames ??= new Set()).add(skillName);
|
|
694
|
+
}
|
|
695
|
+
}
|
|
666
696
|
}
|
|
667
697
|
else {
|
|
668
698
|
/** Invalid tool - convert to string for context preservation */
|
|
@@ -722,16 +752,48 @@ const formatAgentMessages = (payload, indexTokenCountMap, tools) => {
|
|
|
722
752
|
}
|
|
723
753
|
}
|
|
724
754
|
}
|
|
755
|
+
/** When tools filtering is off, still detect skill tool_calls for body reconstruction */
|
|
756
|
+
if (!discoveredTools && skills?.size != null && skills.size > 0) {
|
|
757
|
+
const content = processedMessage.content;
|
|
758
|
+
if (Array.isArray(content)) {
|
|
759
|
+
for (const part of content) {
|
|
760
|
+
if (part.type !== _enum.ContentTypes.TOOL_CALL ||
|
|
761
|
+
part.tool_call?.name !== _enum.Constants.SKILL_TOOL) {
|
|
762
|
+
continue;
|
|
763
|
+
}
|
|
764
|
+
const skillName = extractSkillName(part.tool_call.args) ?? '';
|
|
765
|
+
if (skillName) {
|
|
766
|
+
(pendingSkillNames ??= new Set()).add(skillName);
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
}
|
|
725
771
|
const formattedMessages = formatAssistantMessage(processedMessage);
|
|
726
772
|
if (sourceMessageId != null && sourceMessageId !== '') {
|
|
727
773
|
for (const formattedMessage of formattedMessages) {
|
|
728
774
|
formattedMessage.id = sourceMessageId;
|
|
729
775
|
}
|
|
730
776
|
}
|
|
731
|
-
messages.push(...formattedMessages);
|
|
732
|
-
//
|
|
733
|
-
//
|
|
734
|
-
const endMessageIndex = messages.length;
|
|
777
|
+
messages$1.push(...formattedMessages);
|
|
778
|
+
// Capture index range BEFORE skill body injection so injected
|
|
779
|
+
// HumanMessages are excluded from the assistant's token distribution.
|
|
780
|
+
const endMessageIndex = messages$1.length;
|
|
781
|
+
if (pendingSkillNames?.size != null && pendingSkillNames.size > 0) {
|
|
782
|
+
for (const skillName of pendingSkillNames) {
|
|
783
|
+
const body = skills?.get(skillName) ?? '';
|
|
784
|
+
if (body) {
|
|
785
|
+
messages$1.push(new messages.HumanMessage({
|
|
786
|
+
content: body,
|
|
787
|
+
additional_kwargs: {
|
|
788
|
+
role: 'user',
|
|
789
|
+
isMeta: true,
|
|
790
|
+
source: 'skill',
|
|
791
|
+
skillName,
|
|
792
|
+
},
|
|
793
|
+
}));
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
}
|
|
735
797
|
const resultIndices = [];
|
|
736
798
|
for (let j = startMessageIndex; j < endMessageIndex; j++) {
|
|
737
799
|
resultIndices.push(j);
|
|
@@ -785,7 +847,7 @@ const formatAgentMessages = (payload, indexTokenCountMap, tools) => {
|
|
|
785
847
|
const lastIdx = msgCount - 1;
|
|
786
848
|
const lengths = new Array(msgCount);
|
|
787
849
|
for (let k = 0; k < msgCount; k++) {
|
|
788
|
-
const msg = messages[resultIndices[k]];
|
|
850
|
+
const msg = messages$1[resultIndices[k]];
|
|
789
851
|
const { content } = msg;
|
|
790
852
|
let len = 0;
|
|
791
853
|
if (typeof content === 'string') {
|
|
@@ -843,7 +905,7 @@ const formatAgentMessages = (payload, indexTokenCountMap, tools) => {
|
|
|
843
905
|
}
|
|
844
906
|
}
|
|
845
907
|
return {
|
|
846
|
-
messages,
|
|
908
|
+
messages: messages$1,
|
|
847
909
|
indexTokenCountMap: indexTokenCountMap
|
|
848
910
|
? updatedIndexTokenCountMap
|
|
849
911
|
: undefined,
|