@librechat/agents 3.3.13 → 3.4.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/graphs/Graph.cjs +121 -27
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/hooks/HookRegistry.cjs +83 -0
- package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
- package/dist/cjs/hooks/executeHooks.cjs +60 -14
- package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
- package/dist/cjs/hooks/index.cjs.map +1 -1
- package/dist/cjs/hooks/types.cjs +2 -0
- package/dist/cjs/hooks/types.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/index.cjs +35 -206
- package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/index.cjs +121 -241
- package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
- package/dist/cjs/llm/google/index.cjs +19 -12
- package/dist/cjs/llm/google/index.cjs.map +1 -1
- package/dist/cjs/llm/init.cjs +3 -3
- package/dist/cjs/llm/invoke.cjs +2 -2
- package/dist/cjs/llm/mistral/index.cjs +26 -0
- package/dist/cjs/llm/mistral/index.cjs.map +1 -0
- package/dist/cjs/llm/openai/index.cjs +82 -80
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
- package/dist/cjs/llm/providers.cjs +19 -19
- package/dist/cjs/llm/providers.cjs.map +1 -1
- package/dist/cjs/llm/stream/chunkAdapters.cjs +198 -0
- package/dist/cjs/llm/stream/chunkAdapters.cjs.map +1 -0
- package/dist/cjs/llm/stream/smoother.cjs +369 -0
- package/dist/cjs/llm/stream/smoother.cjs.map +1 -0
- package/dist/cjs/llm/vertexai/index.cjs +13 -1
- package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
- package/dist/cjs/main.cjs +25 -16
- package/dist/cjs/messages/format.cjs +40 -23
- package/dist/cjs/messages/format.cjs.map +1 -1
- package/dist/cjs/run.cjs +82 -15
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/cjs/session/AgentSession.cjs +37 -2
- package/dist/cjs/session/AgentSession.cjs.map +1 -1
- package/dist/cjs/stream.cjs +1 -1
- package/dist/cjs/summarization/node.cjs +6 -3
- package/dist/cjs/summarization/node.cjs.map +1 -1
- package/dist/cjs/tools/BashExecutor.cjs +1 -1
- package/dist/cjs/tools/CodeExecutor.cjs +1 -1
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs +1 -1
- package/dist/cjs/tools/ToolNode.cjs +316 -94
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/ToolSearch.cjs +1 -1
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs +664 -80
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
- package/dist/cjs/tools/subagent/SubagentReplay.cjs +175 -0
- package/dist/cjs/tools/subagent/SubagentReplay.cjs.map +1 -0
- package/dist/cjs/tools/toolOutputReferences.cjs +20 -0
- package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -1
- package/dist/cjs/utils/index.cjs +2 -2
- package/dist/cjs/utils/tokens.cjs +76 -29
- package/dist/cjs/utils/tokens.cjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +121 -27
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/hooks/HookRegistry.mjs +83 -0
- package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
- package/dist/esm/hooks/executeHooks.mjs +60 -14
- package/dist/esm/hooks/executeHooks.mjs.map +1 -1
- package/dist/esm/hooks/index.mjs.map +1 -1
- package/dist/esm/hooks/types.mjs +2 -1
- package/dist/esm/hooks/types.mjs.map +1 -1
- package/dist/esm/llm/anthropic/index.mjs +34 -205
- package/dist/esm/llm/anthropic/index.mjs.map +1 -1
- package/dist/esm/llm/bedrock/index.mjs +120 -240
- package/dist/esm/llm/bedrock/index.mjs.map +1 -1
- package/dist/esm/llm/google/index.mjs +19 -12
- package/dist/esm/llm/google/index.mjs.map +1 -1
- package/dist/esm/llm/init.mjs +1 -1
- package/dist/esm/llm/invoke.mjs +2 -2
- package/dist/esm/llm/mistral/index.mjs +26 -0
- package/dist/esm/llm/mistral/index.mjs.map +1 -0
- package/dist/esm/llm/openai/index.mjs +82 -80
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/llm/openrouter/index.mjs.map +1 -1
- package/dist/esm/llm/providers.mjs +3 -3
- package/dist/esm/llm/providers.mjs.map +1 -1
- package/dist/esm/llm/stream/chunkAdapters.mjs +195 -0
- package/dist/esm/llm/stream/chunkAdapters.mjs.map +1 -0
- package/dist/esm/llm/stream/smoother.mjs +365 -0
- package/dist/esm/llm/stream/smoother.mjs.map +1 -0
- package/dist/esm/llm/vertexai/index.mjs +13 -1
- package/dist/esm/llm/vertexai/index.mjs.map +1 -1
- package/dist/esm/main.mjs +13 -11
- package/dist/esm/messages/format.mjs +40 -23
- package/dist/esm/messages/format.mjs.map +1 -1
- package/dist/esm/run.mjs +83 -16
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/session/AgentSession.mjs +37 -2
- package/dist/esm/session/AgentSession.mjs.map +1 -1
- package/dist/esm/stream.mjs +1 -1
- package/dist/esm/summarization/node.mjs +6 -3
- package/dist/esm/summarization/node.mjs.map +1 -1
- package/dist/esm/tools/BashExecutor.mjs +1 -1
- package/dist/esm/tools/CodeExecutor.mjs +1 -1
- package/dist/esm/tools/ProgrammaticToolCalling.mjs +1 -1
- package/dist/esm/tools/ToolNode.mjs +317 -95
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/ToolSearch.mjs +1 -1
- package/dist/esm/tools/subagent/SubagentExecutor.mjs +665 -81
- package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
- package/dist/esm/tools/subagent/SubagentReplay.mjs +168 -0
- package/dist/esm/tools/subagent/SubagentReplay.mjs.map +1 -0
- package/dist/esm/tools/toolOutputReferences.mjs +20 -0
- package/dist/esm/tools/toolOutputReferences.mjs.map +1 -1
- package/dist/esm/utils/index.mjs +2 -2
- package/dist/esm/utils/tokens.mjs +76 -30
- package/dist/esm/utils/tokens.mjs.map +1 -1
- package/dist/types/graphs/Graph.d.ts +19 -1
- package/dist/types/hooks/HookRegistry.d.ts +10 -1
- package/dist/types/hooks/executeHooks.d.ts +5 -1
- package/dist/types/hooks/index.d.ts +2 -2
- package/dist/types/hooks/types.d.ts +12 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/llm/google/index.d.ts +2 -0
- package/dist/types/llm/mistral/index.d.ts +11 -0
- package/dist/types/llm/openai/index.d.ts +20 -4
- package/dist/types/llm/openrouter/index.d.ts +4 -1
- package/dist/types/llm/stream/chunkAdapters.d.ts +48 -0
- package/dist/types/llm/stream/smoother.d.ts +95 -0
- package/dist/types/llm/vertexai/index.d.ts +2 -0
- package/dist/types/run.d.ts +4 -1
- package/dist/types/session/AgentSession.d.ts +1 -0
- package/dist/types/tools/ToolNode.d.ts +23 -15
- package/dist/types/tools/subagent/SubagentExecutor.d.ts +49 -7
- package/dist/types/tools/subagent/SubagentReplay.d.ts +81 -0
- package/dist/types/tools/toolOutputReferences.d.ts +12 -0
- package/dist/types/types/graph.d.ts +5 -5
- package/dist/types/types/hitl.d.ts +15 -0
- package/dist/types/types/llm.d.ts +21 -14
- package/dist/types/utils/tokens.d.ts +10 -0
- package/package.json +6 -2
- package/src/graphs/Graph.ts +257 -52
- package/src/graphs/__tests__/Graph.breakerLifecycle.test.ts +48 -9
- package/src/graphs/__tests__/Graph.contextOverflow.test.ts +1 -1
- package/src/graphs/__tests__/Graph.subagentResumeState.test.ts +80 -0
- package/src/hooks/HookRegistry.ts +151 -1
- package/src/hooks/__tests__/HookRegistry.test.ts +96 -0
- package/src/hooks/__tests__/executeHooks.test.ts +160 -0
- package/src/hooks/executeHooks.ts +133 -15
- package/src/hooks/index.ts +3 -1
- package/src/hooks/types.ts +16 -0
- package/src/index.ts +8 -0
- package/src/llm/anthropic/index.ts +85 -354
- package/src/llm/bedrock/index.ts +174 -390
- package/src/llm/bedrock/llm.spec.ts +2 -0
- package/src/llm/bedrock/streamSealDispatch.test.ts +76 -0
- package/src/llm/custom-chat-models.smoke.test.ts +16 -1
- package/src/llm/google/index.ts +17 -18
- package/src/llm/google/streamSmoothing.test.ts +121 -0
- package/src/llm/mistral/index.ts +33 -0
- package/src/llm/mistral/streamSmoothing.test.ts +97 -0
- package/src/llm/openai/deepseek.test.ts +56 -0
- package/src/llm/openai/index.ts +119 -126
- package/src/llm/openrouter/index.ts +4 -1
- package/src/llm/providers.ts +3 -3
- package/src/llm/stream/chunkAdapters.test.ts +202 -0
- package/src/llm/stream/chunkAdapters.ts +317 -0
- package/src/llm/stream/reassembly.test.ts +241 -0
- package/src/llm/stream/smoother.bench.test.ts +155 -0
- package/src/llm/stream/smoother.test.ts +519 -0
- package/src/llm/stream/smoother.ts +574 -0
- package/src/llm/vertexai/index.ts +17 -1
- package/src/llm/vertexai/streamSmoothing.test.ts +109 -0
- package/src/messages/format.ts +54 -26
- package/src/messages/formatAgentMessages.reducer.test.ts +162 -0
- package/src/messages/formatAgentMessages.steer.test.ts +16 -11
- package/src/messages/formatAgentMessages.test.ts +7 -2
- package/src/run.ts +164 -18
- package/src/session/AgentSession.ts +52 -2
- package/src/session/__tests__/JsonlSessionStore.test.ts +53 -0
- package/src/specs/subagent.test.ts +44 -0
- package/src/specs/tokens.test.ts +159 -14
- package/src/summarization/__tests__/node.test.ts +32 -14
- package/src/summarization/node.ts +15 -11
- package/src/tools/ToolNode.ts +631 -157
- package/src/tools/__tests__/SubagentExecutor.test.ts +590 -7
- package/src/tools/__tests__/SubagentReplay.test.ts +300 -0
- package/src/tools/__tests__/ToolNode.breakerSignal.test.ts +208 -2
- package/src/tools/__tests__/directToolHITLResumeScope.test.ts +486 -2
- package/src/tools/__tests__/hitl.test.ts +234 -5
- package/src/tools/__tests__/subagentHooks.test.ts +1040 -62
- package/src/tools/__tests__/toolOutputReferences.test.ts +19 -2
- package/src/tools/subagent/SubagentExecutor.ts +1438 -136
- package/src/tools/subagent/SubagentReplay.ts +575 -0
- package/src/tools/toolOutputReferences.ts +40 -1
- package/src/types/graph.ts +5 -5
- package/src/types/hitl.ts +16 -0
- package/src/types/llm.ts +53 -36
- package/src/utils/tokens.ts +115 -30
package/dist/cjs/main.cjs
CHANGED
|
@@ -22,23 +22,25 @@ const require_handoffCue = require("./messages/handoffCue.cjs");
|
|
|
22
22
|
const require_reducer = require("./messages/reducer.cjs");
|
|
23
23
|
const require_recency = require("./messages/recency.cjs");
|
|
24
24
|
require("./messages/index.cjs");
|
|
25
|
+
const require_graph = require("./utils/graph.cjs");
|
|
26
|
+
const require_llm = require("./utils/llm.cjs");
|
|
27
|
+
const require_proxy = require("./utils/proxy.cjs");
|
|
25
28
|
const require_handlers = require("./tools/handlers.cjs");
|
|
26
29
|
const require_streamLimits = require("./llm/streamLimits.cjs");
|
|
27
30
|
const require_intentArg = require("./tools/intentArg.cjs");
|
|
28
|
-
const require_llm = require("./utils/llm.cjs");
|
|
29
31
|
const require_stream = require("./stream.cjs");
|
|
30
|
-
const require_index$2 = require("./llm/openai/index.cjs");
|
|
31
|
-
const require_index$3 = require("./llm/openrouter/index.cjs");
|
|
32
|
-
const require_providers = require("./llm/providers.cjs");
|
|
33
|
-
const require_errors = require("./utils/errors.cjs");
|
|
34
|
-
const require_preempt = require("./llm/preempt.cjs");
|
|
35
|
-
const require_graph = require("./utils/graph.cjs");
|
|
36
|
-
const require_proxy = require("./utils/proxy.cjs");
|
|
37
32
|
const require_events = require("./events.cjs");
|
|
38
33
|
const require_handlers$1 = require("./utils/handlers.cjs");
|
|
39
34
|
const require_run = require("./utils/run.cjs");
|
|
40
35
|
const require_schema = require("./utils/schema.cjs");
|
|
36
|
+
const require_errors = require("./utils/errors.cjs");
|
|
41
37
|
require("./utils/index.cjs");
|
|
38
|
+
const require_smoother = require("./llm/stream/smoother.cjs");
|
|
39
|
+
const require_index$3 = require("./llm/mistral/index.cjs");
|
|
40
|
+
const require_index$4 = require("./llm/openai/index.cjs");
|
|
41
|
+
const require_index$5 = require("./llm/openrouter/index.cjs");
|
|
42
|
+
const require_providers = require("./llm/providers.cjs");
|
|
43
|
+
const require_preempt = require("./llm/preempt.cjs");
|
|
42
44
|
const require_init = require("./llm/init.cjs");
|
|
43
45
|
const require_invoke = require("./llm/invoke.cjs");
|
|
44
46
|
const require_bashAst = require("./tools/local/bashAst.cjs");
|
|
@@ -55,7 +57,7 @@ const require_executeHooks = require("./hooks/executeHooks.cjs");
|
|
|
55
57
|
const require_createToolPolicyHook = require("./hooks/createToolPolicyHook.cjs");
|
|
56
58
|
const require_createWorkspacePolicyHook = require("./hooks/createWorkspacePolicyHook.cjs");
|
|
57
59
|
const require_types = require("./hooks/types.cjs");
|
|
58
|
-
const require_index$
|
|
60
|
+
const require_index$6 = require("./hooks/index.cjs");
|
|
59
61
|
const require_LocalProgrammaticToolCalling = require("./tools/local/LocalProgrammaticToolCalling.cjs");
|
|
60
62
|
const require_BashExecutor = require("./tools/BashExecutor.cjs");
|
|
61
63
|
const require_LocalExecutionTools = require("./tools/local/LocalExecutionTools.cjs");
|
|
@@ -75,7 +77,7 @@ const require_ToolNode = require("./tools/ToolNode.cjs");
|
|
|
75
77
|
const require_SubagentExecutor = require("./tools/subagent/SubagentExecutor.cjs");
|
|
76
78
|
require("./tools/subagent/index.cjs");
|
|
77
79
|
const require_SubagentTool = require("./tools/SubagentTool.cjs");
|
|
78
|
-
const require_index$
|
|
80
|
+
const require_index$10 = require("./summarization/index.cjs");
|
|
79
81
|
const require_request = require("./llm/request.cjs");
|
|
80
82
|
const require_schema$1 = require("./tools/schema.cjs");
|
|
81
83
|
const require_fake = require("./llm/fake.cjs");
|
|
@@ -165,7 +167,7 @@ exports.CalculatorToolDescription = require_Calculator.CalculatorToolDescription
|
|
|
165
167
|
exports.CalculatorToolName = require_Calculator.CalculatorToolName;
|
|
166
168
|
exports.Callback = require_enum.Callback;
|
|
167
169
|
exports.ChatModelStreamHandler = require_stream.ChatModelStreamHandler;
|
|
168
|
-
exports.ChatOpenRouter = require_index$
|
|
170
|
+
exports.ChatOpenRouter = require_index$5.ChatOpenRouter;
|
|
169
171
|
exports.CloudflareBashExecutionToolDescription = require_CloudflareSandboxTools.CloudflareBashExecutionToolDescription;
|
|
170
172
|
exports.CloudflareCodeExecutionToolDescription = require_CloudflareSandboxTools.CloudflareCodeExecutionToolDescription;
|
|
171
173
|
exports.CodeApiRequestError = require_CodeExecutor.CodeApiRequestError;
|
|
@@ -183,7 +185,8 @@ exports.CommonEvents = require_enum.CommonEvents;
|
|
|
183
185
|
exports.CompileCheckToolName = require_CompileCheckTool.CompileCheckToolName;
|
|
184
186
|
exports.Constants = require_enum.Constants;
|
|
185
187
|
exports.ContentTypes = require_enum.ContentTypes;
|
|
186
|
-
exports.
|
|
188
|
+
exports.CustomChatMistralAI = require_index$3.CustomChatMistralAI;
|
|
189
|
+
exports.CustomOpenAIClient = require_index$4.CustomOpenAIClient;
|
|
187
190
|
exports.DATE_RANGE = require_schema$2.DATE_RANGE;
|
|
188
191
|
exports.DEFAULT_CONTEXT_PRUNING_SETTINGS = require_contextPruningSettings.DEFAULT_CONTEXT_PRUNING_SETTINGS;
|
|
189
192
|
exports.DEFAULT_COUNTRY_DESCRIPTION = require_schema$2.DEFAULT_COUNTRY_DESCRIPTION;
|
|
@@ -195,6 +198,7 @@ exports.DEFAULT_QUERY_DESCRIPTION = require_schema$2.DEFAULT_QUERY_DESCRIPTION;
|
|
|
195
198
|
exports.DEFAULT_RECURSION_LIMIT = require_constants.DEFAULT_RECURSION_LIMIT;
|
|
196
199
|
exports.DEFAULT_RESERVE_RATIO = require_prune.DEFAULT_RESERVE_RATIO;
|
|
197
200
|
exports.DEFAULT_RETAIN_RECENT_TURNS = require_recency.DEFAULT_RETAIN_RECENT_TURNS;
|
|
201
|
+
exports.DEFAULT_STREAM_DELAY = require_smoother.DEFAULT_STREAM_DELAY;
|
|
198
202
|
exports.DEFAULT_TOOL_TOKEN_MULTIPLIER = require_constants.DEFAULT_TOOL_TOKEN_MULTIPLIER;
|
|
199
203
|
Object.defineProperty(exports, "DynamicStructuredTool", {
|
|
200
204
|
enumerable: true,
|
|
@@ -212,8 +216,8 @@ exports.GraphNodeKeys = require_enum.GraphNodeKeys;
|
|
|
212
216
|
exports.HARD_MAX_TOOL_RESULT_CHARS = require_truncation.HARD_MAX_TOOL_RESULT_CHARS;
|
|
213
217
|
exports.HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE = require_truncation.HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE;
|
|
214
218
|
exports.HOOK_EVENTS = require_types.HOOK_EVENTS;
|
|
215
|
-
exports.HOOK_INJECTED_MESSAGES_CAPABLE = require_index$
|
|
216
|
-
exports.HOOK_PREEMPT_BOUNDARY_CAPABLE = require_index$
|
|
219
|
+
exports.HOOK_INJECTED_MESSAGES_CAPABLE = require_index$6.HOOK_INJECTED_MESSAGES_CAPABLE;
|
|
220
|
+
exports.HOOK_PREEMPT_BOUNDARY_CAPABLE = require_index$6.HOOK_PREEMPT_BOUNDARY_CAPABLE;
|
|
217
221
|
exports.HandlerRegistry = require_events.HandlerRegistry;
|
|
218
222
|
exports.HookRegistry = require_HookRegistry.HookRegistry;
|
|
219
223
|
Object.defineProperty(exports, "HumanMessage", {
|
|
@@ -334,6 +338,7 @@ Object.defineProperty(exports, "SystemMessage", {
|
|
|
334
338
|
}
|
|
335
339
|
});
|
|
336
340
|
exports.TMP_SCRATCH_OUTPUT_REMINDER = require_CodeExecutor.TMP_SCRATCH_OUTPUT_REMINDER;
|
|
341
|
+
exports.TOOL_APPROVAL_EXECUTION_SCOPE_CONFIG_KEY = require_types.TOOL_APPROVAL_EXECUTION_SCOPE_CONFIG_KEY;
|
|
337
342
|
exports.TestChatStreamHandler = require_events.TestChatStreamHandler;
|
|
338
343
|
exports.TestLLMStreamHandler = require_events.TestLLMStreamHandler;
|
|
339
344
|
exports.TitleMethod = require_enum.TitleMethod;
|
|
@@ -357,6 +362,7 @@ exports.ToolSearchToolDefinition = require_ToolSearch.ToolSearchToolDefinition;
|
|
|
357
362
|
exports.ToolSearchToolDescription = require_ToolSearch.ToolSearchToolDescription;
|
|
358
363
|
exports.ToolSearchToolName = require_ToolSearch.ToolSearchToolName;
|
|
359
364
|
exports.ToolSearchToolSchema = require_ToolSearch.ToolSearchToolSchema;
|
|
365
|
+
exports.UnsafeTokenMeasurementError = require_tokens.UnsafeTokenMeasurementError;
|
|
360
366
|
exports.WebSearchToolDefinition = require_schema$2.WebSearchToolDefinition;
|
|
361
367
|
exports.WebSearchToolDescription = require_schema$2.WebSearchToolDescription;
|
|
362
368
|
exports.WebSearchToolName = require_schema$2.WebSearchToolName;
|
|
@@ -365,7 +371,7 @@ exports._createBashProgramForTests = require_LocalProgrammaticToolCalling._creat
|
|
|
365
371
|
exports._resetLocalEngineWarningsForTests = require_LocalExecutionEngine._resetLocalEngineWarningsForTests;
|
|
366
372
|
exports._resetRipgrepCacheForTests = require_LocalCodingTools._resetRipgrepCacheForTests;
|
|
367
373
|
exports._resetSyntaxCheckProbeCacheForTests = require_syntaxCheck._resetSyntaxCheckProbeCacheForTests;
|
|
368
|
-
exports._resetUnrecognizedTriggerWarnings = require_index$
|
|
374
|
+
exports._resetUnrecognizedTriggerWarnings = require_index$10._resetUnrecognizedTriggerWarnings;
|
|
369
375
|
exports.addBedrockCacheControl = require_cache.addBedrockCacheControl;
|
|
370
376
|
exports.addBedrockTailCacheControl = require_cache.addBedrockTailCacheControl;
|
|
371
377
|
exports.addCacheControl = require_cache.addCacheControl;
|
|
@@ -408,6 +414,7 @@ exports.cloneMessage = require_cache.cloneMessage;
|
|
|
408
414
|
exports.coalesceAdjacentUserTurns = require_alternation.coalesceAdjacentUserTurns;
|
|
409
415
|
exports.composeAbortSignals = require_misc.composeAbortSignals;
|
|
410
416
|
exports.composeEventHandlers = require_events.composeEventHandlers;
|
|
417
|
+
exports.computeAdaptivePieceSize = require_smoother.computeAdaptivePieceSize;
|
|
411
418
|
exports.convertInjectedMessages = require_injected.convertInjectedMessages;
|
|
412
419
|
exports.convertMessagesToContent = require_core.convertMessagesToContent;
|
|
413
420
|
exports.countNestedGroups = require_ToolSearch.countNestedGroups;
|
|
@@ -644,6 +651,7 @@ exports.resolveLocalToolRegistry = require_resolveLocalExecutionTools.resolveLoc
|
|
|
644
651
|
exports.resolveLocalToolsForBinding = require_resolveLocalExecutionTools.resolveLocalToolsForBinding;
|
|
645
652
|
exports.resolvePromptCacheTtl = require_cache.resolvePromptCacheTtl;
|
|
646
653
|
exports.resolveSearchOutcome = require_tool.resolveSearchOutcome;
|
|
654
|
+
exports.resolveStreamDelay = require_smoother.resolveStreamDelay;
|
|
647
655
|
exports.resolveStreamLimits = require_streamLimits.resolveStreamLimits;
|
|
648
656
|
exports.resolveSubagentConfigs = require_SubagentExecutor.resolveSubagentConfigs;
|
|
649
657
|
exports.resolveToolOutcome = require_intentArg.resolveToolOutcome;
|
|
@@ -658,8 +666,9 @@ exports.serializeToolCallInput = require_prune.serializeToolCallInput;
|
|
|
658
666
|
exports.shellQuote = require_LocalExecutionEngine.shellQuote;
|
|
659
667
|
exports.shiftIndexTokenCountMap = require_format.shiftIndexTokenCountMap;
|
|
660
668
|
exports.shouldBypassProxy = require_proxy.shouldBypassProxy;
|
|
661
|
-
exports.shouldTriggerSummarization = require_index$
|
|
669
|
+
exports.shouldTriggerSummarization = require_index$10.shouldTriggerSummarization;
|
|
662
670
|
exports.sleep = require_run.sleep;
|
|
671
|
+
exports.smoothStream = require_smoother.smoothStream;
|
|
663
672
|
exports.spawnLocalProcess = require_LocalExecutionEngine.spawnLocalProcess;
|
|
664
673
|
exports.splitAtRecencyBoundary = require_recency.splitAtRecencyBoundary;
|
|
665
674
|
exports.strictAlternationProviders = require_alternation.strictAlternationProviders;
|
|
@@ -202,6 +202,10 @@ function endsWithSteerMessage(formatted) {
|
|
|
202
202
|
*/
|
|
203
203
|
function formatAssistantMessage(message, options) {
|
|
204
204
|
const formattedMessages = [];
|
|
205
|
+
const appendFormattedMessage = (formattedMessage) => {
|
|
206
|
+
stampSourceMessageIdentity(formattedMessage, options?.sourceMessageId, formattedMessages.length);
|
|
207
|
+
formattedMessages.push(formattedMessage);
|
|
208
|
+
};
|
|
205
209
|
let currentContent = [];
|
|
206
210
|
let lastAIMessage = null;
|
|
207
211
|
let hasReasoning = false;
|
|
@@ -270,7 +274,7 @@ function formatAssistantMessage(message, options) {
|
|
|
270
274
|
if (currentContent.some((content) => content.type !== "text")) {
|
|
271
275
|
currentContent.push(part);
|
|
272
276
|
lastAIMessage = createAIMessage(require_langchain.toLangChainContent(currentContent));
|
|
273
|
-
|
|
277
|
+
appendFormattedMessage(lastAIMessage);
|
|
274
278
|
currentContent = [];
|
|
275
279
|
continue;
|
|
276
280
|
}
|
|
@@ -280,12 +284,12 @@ function formatAssistantMessage(message, options) {
|
|
|
280
284
|
}, "");
|
|
281
285
|
content = `${content}\n${getTextContent(part)}`.trim();
|
|
282
286
|
lastAIMessage = createAIMessage(content);
|
|
283
|
-
|
|
287
|
+
appendFormattedMessage(lastAIMessage);
|
|
284
288
|
currentContent = [];
|
|
285
289
|
continue;
|
|
286
290
|
}
|
|
287
291
|
lastAIMessage = createAIMessage(getTextContent(part));
|
|
288
|
-
|
|
292
|
+
appendFormattedMessage(lastAIMessage);
|
|
289
293
|
} else if (part.type === "tool_call") {
|
|
290
294
|
if (part.tool_call == null) continue;
|
|
291
295
|
const toolCallId = getToolCallId(part);
|
|
@@ -305,7 +309,7 @@ function formatAssistantMessage(message, options) {
|
|
|
305
309
|
}
|
|
306
310
|
if (!lastAIMessage) {
|
|
307
311
|
lastAIMessage = createAIMessage("");
|
|
308
|
-
|
|
312
|
+
appendFormattedMessage(lastAIMessage);
|
|
309
313
|
} else attachPendingReasoningContent(lastAIMessage);
|
|
310
314
|
const tool_call = _tool_call;
|
|
311
315
|
let args = _args;
|
|
@@ -328,7 +332,7 @@ function formatAssistantMessage(message, options) {
|
|
|
328
332
|
if (!lastAIMessage.tool_calls) lastAIMessage.tool_calls = [];
|
|
329
333
|
lastAIMessage.tool_calls.push(tool_call);
|
|
330
334
|
}
|
|
331
|
-
|
|
335
|
+
appendFormattedMessage(withMessageRole(new _langchain_core_messages.ToolMessage({
|
|
332
336
|
tool_call_id: tool_call.id ?? "",
|
|
333
337
|
name: tool_call.name,
|
|
334
338
|
content: formatToolCallOutput(output)
|
|
@@ -341,12 +345,12 @@ function formatAssistantMessage(message, options) {
|
|
|
341
345
|
if (currentContent.length > 0) {
|
|
342
346
|
if (currentContent.some((content) => content.type !== "text")) {
|
|
343
347
|
lastAIMessage = createAIMessage(require_langchain.toLangChainContent(currentContent));
|
|
344
|
-
|
|
348
|
+
appendFormattedMessage(lastAIMessage);
|
|
345
349
|
} else {
|
|
346
350
|
const flushed = currentContent.reduce((acc, curr) => `${acc}${getTextContent(curr)}\n`, "").trim();
|
|
347
351
|
if (flushed.length > 0) {
|
|
348
352
|
lastAIMessage = createAIMessage(flushed);
|
|
349
|
-
|
|
353
|
+
appendFormattedMessage(lastAIMessage);
|
|
350
354
|
}
|
|
351
355
|
}
|
|
352
356
|
currentContent = [];
|
|
@@ -359,12 +363,11 @@ function formatAssistantMessage(message, options) {
|
|
|
359
363
|
* assistant reasoning silently vanishes on replay.
|
|
360
364
|
*/
|
|
361
365
|
lastAIMessage = createAIMessage("");
|
|
362
|
-
|
|
366
|
+
appendFormattedMessage(lastAIMessage);
|
|
363
367
|
}
|
|
364
368
|
const steerPart = part;
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
content: steerContent,
|
|
369
|
+
appendFormattedMessage(withMessageRole(new _langchain_core_messages.HumanMessage({
|
|
370
|
+
content: Array.isArray(steerPart.media) && steerPart.media.length > 0 ? require_langchain.toLangChainContent(steerPart.media) : steerPart.steer ?? "",
|
|
368
371
|
additional_kwargs: {
|
|
369
372
|
role: "user",
|
|
370
373
|
source: "steer"
|
|
@@ -388,14 +391,14 @@ function formatAssistantMessage(message, options) {
|
|
|
388
391
|
let content = "";
|
|
389
392
|
for (const part of currentContent) {
|
|
390
393
|
if (part.type !== "text") {
|
|
391
|
-
|
|
394
|
+
appendFormattedMessage(createAIMessage(require_langchain.toLangChainContent(currentContent)));
|
|
392
395
|
return formattedMessages;
|
|
393
396
|
}
|
|
394
397
|
content += `${getTextContent(part)}\n`;
|
|
395
398
|
}
|
|
396
399
|
content = content.trim();
|
|
397
|
-
if (content)
|
|
398
|
-
} else if (currentContent.length > 0)
|
|
400
|
+
if (content) appendFormattedMessage(createAIMessage(content));
|
|
401
|
+
} else if (currentContent.length > 0) appendFormattedMessage(createAIMessage(require_langchain.toLangChainContent(currentContent)));
|
|
399
402
|
return formattedMessages;
|
|
400
403
|
}
|
|
401
404
|
function getSourceMessageId(message) {
|
|
@@ -405,6 +408,20 @@ function getSourceMessageId(message) {
|
|
|
405
408
|
return normalized.length > 0 ? normalized : void 0;
|
|
406
409
|
}
|
|
407
410
|
/**
|
|
411
|
+
* Keeps the first formatted message backward-compatible with its persisted
|
|
412
|
+
* source id and preserves source correlation on every derived message.
|
|
413
|
+
* Derived ids remain unset so the reducer can assign collision-free identities
|
|
414
|
+
* during its existing pass. This also prevents invented provider-shaped ids
|
|
415
|
+
* from leaking into provider request payloads.
|
|
416
|
+
*/
|
|
417
|
+
function stampSourceMessageIdentity(message, sourceMessageId, derivedIndex = 0) {
|
|
418
|
+
if (sourceMessageId == null) return;
|
|
419
|
+
message.additional_kwargs.sourceMessageId = sourceMessageId;
|
|
420
|
+
if (derivedIndex !== 0) return;
|
|
421
|
+
message.id = sourceMessageId;
|
|
422
|
+
message.lc_kwargs.id = sourceMessageId;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
408
425
|
* Labels all agent content for parallel patterns (fan-out/fan-in)
|
|
409
426
|
* Groups consecutive content by agent and wraps with clear labels
|
|
410
427
|
*/
|
|
@@ -748,7 +765,7 @@ const formatAgentMessages = (payload, indexTokenCountMap, tools, skills, options
|
|
|
748
765
|
message,
|
|
749
766
|
langChain: true
|
|
750
767
|
});
|
|
751
|
-
|
|
768
|
+
stampSourceMessageIdentity(formattedMessage, sourceMessageId);
|
|
752
769
|
flushSteerAnchor(formattedMessage);
|
|
753
770
|
messages.push(formattedMessage);
|
|
754
771
|
indexMapping[i] = [messages.length - 1];
|
|
@@ -850,9 +867,9 @@ const formatAgentMessages = (payload, indexTokenCountMap, tools, skills, options
|
|
|
850
867
|
const formattedMessages = formatAssistantMessage(processedMessage, {
|
|
851
868
|
preserveUnpairedServerToolUses: i === payload.length - 1,
|
|
852
869
|
preserveReasoningContent: options?.preserveReasoningContent ?? options?.provider === "deepseek",
|
|
853
|
-
provider: options?.provider
|
|
870
|
+
provider: options?.provider,
|
|
871
|
+
sourceMessageId
|
|
854
872
|
});
|
|
855
|
-
if (sourceMessageId != null && sourceMessageId !== "") for (const formattedMessage of formattedMessages) formattedMessage.id = sourceMessageId;
|
|
856
873
|
/**
|
|
857
874
|
* A steer that ends an assistant message leaves the replay on a
|
|
858
875
|
* `HumanMessage`. The next payload message is itself a user turn, so the
|
|
@@ -876,12 +893,12 @@ const formatAgentMessages = (payload, indexTokenCountMap, tools, skills, options
|
|
|
876
893
|
* the model may simply never answer. So the intent is recorded and flushed
|
|
877
894
|
* only when a message actually follows.
|
|
878
895
|
*
|
|
879
|
-
* Pushed AFTER
|
|
880
|
-
*
|
|
881
|
-
*
|
|
882
|
-
*
|
|
883
|
-
*
|
|
884
|
-
*
|
|
896
|
+
* Pushed AFTER source identity stamping above, deliberately. The anchor is
|
|
897
|
+
* synthetic rather than derived from the persisted assistant entry, so it
|
|
898
|
+
* must not claim that entry's source metadata. Left unstamped, it reaches
|
|
899
|
+
* the reducer with a null id and is assigned a fresh one.
|
|
900
|
+
* `endsWithSteerMessage` reads only `additional_kwargs.source`, so the
|
|
901
|
+
* deferral cannot change which messages get anchored.
|
|
885
902
|
*/
|
|
886
903
|
/**
|
|
887
904
|
* Guarded on emission: an assistant entry whose blocks all filtered away
|