@librechat/agents 3.4.7 → 3.5.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.
- package/dist/cjs/agents/AgentContext.cjs +0 -356
- package/dist/cjs/agents/AgentContext.cjs.map +1 -1
- package/dist/cjs/agents/projection.cjs +0 -9
- package/dist/cjs/agents/projection.cjs.map +1 -1
- package/dist/cjs/common/constants.cjs +0 -26
- package/dist/cjs/common/constants.cjs.map +1 -1
- package/dist/cjs/common/enum.cjs +0 -85
- package/dist/cjs/common/enum.cjs.map +1 -1
- package/dist/cjs/events.cjs +0 -14
- package/dist/cjs/events.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +1 -909
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/graphs/MultiAgentGraph.cjs +7 -272
- package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
- package/dist/cjs/graphs/applyGraphRuntimeConfig.cjs.map +1 -1
- package/dist/cjs/graphs/createGraph.cjs.map +1 -1
- package/dist/cjs/hitl/askUserQuestion.cjs +0 -53
- package/dist/cjs/hitl/askUserQuestion.cjs.map +1 -1
- package/dist/cjs/hitl/askUserQuestions.cjs +0 -20
- package/dist/cjs/hitl/askUserQuestions.cjs.map +1 -1
- package/dist/cjs/hitl/askUserQuestionsInterrupt.cjs +0 -6
- package/dist/cjs/hitl/askUserQuestionsInterrupt.cjs.map +1 -1
- package/dist/cjs/hooks/HookRegistry.cjs +0 -127
- package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
- package/dist/cjs/hooks/createToolPolicyHook.cjs +0 -38
- package/dist/cjs/hooks/createToolPolicyHook.cjs.map +1 -1
- package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +0 -77
- package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -1
- package/dist/cjs/hooks/executeHooks.cjs +0 -79
- package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
- package/dist/cjs/hooks/index.cjs +0 -16
- package/dist/cjs/hooks/index.cjs.map +1 -1
- package/dist/cjs/hooks/matchers.cjs +0 -104
- package/dist/cjs/hooks/matchers.cjs.map +1 -1
- package/dist/cjs/hooks/types.cjs +0 -8
- package/dist/cjs/hooks/types.cjs.map +1 -1
- package/dist/cjs/instrumentation.cjs +0 -14
- package/dist/cjs/instrumentation.cjs.map +1 -1
- package/dist/cjs/langfuse.cjs +0 -75
- package/dist/cjs/langfuse.cjs.map +1 -1
- package/dist/cjs/langfuseConfig.cjs.map +1 -1
- package/dist/cjs/langfuseRuntimeContext.cjs +0 -13
- package/dist/cjs/langfuseRuntimeContext.cjs.map +1 -1
- package/dist/cjs/langfuseRuntimeScope.cjs +0 -4
- package/dist/cjs/langfuseRuntimeScope.cjs.map +1 -1
- package/dist/cjs/langfuseSpanRegistry.cjs +0 -28
- package/dist/cjs/langfuseSpanRegistry.cjs.map +1 -1
- package/dist/cjs/langfuseToolOutputTracing.cjs +0 -3
- package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
- package/dist/cjs/langfuseTraceShaping.cjs +0 -74
- package/dist/cjs/langfuseTraceShaping.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/index.cjs +0 -3
- package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/types.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +1 -111
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +0 -1
- package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/utils/stream_events.cjs +0 -8
- package/dist/cjs/llm/anthropic/utils/stream_events.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/cachePoints.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/index.cjs +1 -95
- package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +0 -78
- package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/utils/message_outputs.cjs +0 -24
- package/dist/cjs/llm/bedrock/utils/message_outputs.cjs.map +1 -1
- package/dist/cjs/llm/contextOverflowRecovery.cjs +0 -62
- package/dist/cjs/llm/contextOverflowRecovery.cjs.map +1 -1
- package/dist/cjs/llm/fake.cjs.map +1 -1
- package/dist/cjs/llm/google/index.cjs +2 -21
- package/dist/cjs/llm/google/index.cjs.map +1 -1
- package/dist/cjs/llm/google/utils/common.cjs +0 -35
- package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
- package/dist/cjs/llm/init.cjs +0 -9
- package/dist/cjs/llm/init.cjs.map +1 -1
- package/dist/cjs/llm/invoke.cjs +1 -270
- package/dist/cjs/llm/invoke.cjs.map +1 -1
- package/dist/cjs/llm/mistral/index.cjs.map +1 -1
- package/dist/cjs/llm/openai/index.cjs +0 -99
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/llm/openai/streamMetadata.cjs +0 -21
- package/dist/cjs/llm/openai/streamMetadata.cjs.map +1 -1
- package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
- package/dist/cjs/llm/openrouter/index.cjs +0 -1
- package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
- package/dist/cjs/llm/openrouter/toolCache.cjs +0 -6
- package/dist/cjs/llm/openrouter/toolCache.cjs.map +1 -1
- package/dist/cjs/llm/preempt.cjs +0 -75
- package/dist/cjs/llm/preempt.cjs.map +1 -1
- package/dist/cjs/llm/providers.cjs.map +1 -1
- package/dist/cjs/llm/request.cjs +0 -10
- package/dist/cjs/llm/request.cjs.map +1 -1
- package/dist/cjs/llm/stream/chunkAdapters.cjs +0 -62
- package/dist/cjs/llm/stream/chunkAdapters.cjs.map +1 -1
- package/dist/cjs/llm/stream/smoother.cjs +0 -58
- package/dist/cjs/llm/stream/smoother.cjs.map +1 -1
- package/dist/cjs/llm/streamLimits.cjs +4 -293
- package/dist/cjs/llm/streamLimits.cjs.map +1 -1
- package/dist/cjs/llm/truncation.cjs +0 -36
- package/dist/cjs/llm/truncation.cjs.map +1 -1
- package/dist/cjs/llm/vertexai/index.cjs +0 -330
- package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
- package/dist/cjs/messages/alternation.cjs +0 -43
- package/dist/cjs/messages/alternation.cjs.map +1 -1
- package/dist/cjs/messages/anthropicToolCache.cjs +0 -45
- package/dist/cjs/messages/anthropicToolCache.cjs.map +1 -1
- package/dist/cjs/messages/assistantPhase.cjs +0 -12
- package/dist/cjs/messages/assistantPhase.cjs.map +1 -1
- package/dist/cjs/messages/budget.cjs +0 -9
- package/dist/cjs/messages/budget.cjs.map +1 -1
- package/dist/cjs/messages/cache.cjs +0 -172
- package/dist/cjs/messages/cache.cjs.map +1 -1
- package/dist/cjs/messages/content.cjs +0 -9
- package/dist/cjs/messages/content.cjs.map +1 -1
- package/dist/cjs/messages/contextPruning.cjs +0 -15
- package/dist/cjs/messages/contextPruning.cjs.map +1 -1
- package/dist/cjs/messages/contextPruningSettings.cjs +0 -3
- package/dist/cjs/messages/contextPruningSettings.cjs.map +1 -1
- package/dist/cjs/messages/core.cjs +0 -48
- package/dist/cjs/messages/core.cjs.map +1 -1
- package/dist/cjs/messages/format.cjs +1 -345
- package/dist/cjs/messages/format.cjs.map +1 -1
- package/dist/cjs/messages/handoffCue.cjs +0 -36
- package/dist/cjs/messages/handoffCue.cjs.map +1 -1
- package/dist/cjs/messages/ids.cjs.map +1 -1
- package/dist/cjs/messages/injected.cjs +0 -33
- package/dist/cjs/messages/injected.cjs.map +1 -1
- package/dist/cjs/messages/langchain.cjs +0 -14
- package/dist/cjs/messages/langchain.cjs.map +1 -1
- package/dist/cjs/messages/prune.cjs +1 -184
- package/dist/cjs/messages/prune.cjs.map +1 -1
- package/dist/cjs/messages/recency.cjs +0 -32
- package/dist/cjs/messages/recency.cjs.map +1 -1
- package/dist/cjs/messages/reducer.cjs +0 -30
- package/dist/cjs/messages/reducer.cjs.map +1 -1
- package/dist/cjs/messages/tools.cjs +0 -14
- package/dist/cjs/messages/tools.cjs.map +1 -1
- package/dist/cjs/openai/index.cjs.map +1 -1
- package/dist/cjs/prompts/activityLabel.cjs +9 -79
- package/dist/cjs/prompts/activityLabel.cjs.map +1 -1
- package/dist/cjs/responses/index.cjs.map +1 -1
- package/dist/cjs/run.cjs +2 -538
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/cjs/session/AgentSession.cjs +1 -17
- package/dist/cjs/session/AgentSession.cjs.map +1 -1
- package/dist/cjs/session/JsonlSessionStore.cjs.map +1 -1
- package/dist/cjs/session/handlers.cjs +0 -7
- package/dist/cjs/session/handlers.cjs.map +1 -1
- package/dist/cjs/session/ids.cjs.map +1 -1
- package/dist/cjs/session/messageSerialization.cjs +0 -4
- package/dist/cjs/session/messageSerialization.cjs.map +1 -1
- package/dist/cjs/stream.cjs +1 -93
- package/dist/cjs/stream.cjs.map +1 -1
- package/dist/cjs/summarization/index.cjs +0 -27
- package/dist/cjs/summarization/index.cjs.map +1 -1
- package/dist/cjs/summarization/node.cjs +0 -273
- package/dist/cjs/summarization/node.cjs.map +1 -1
- package/dist/cjs/tools/BashExecutor.cjs +0 -35
- package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +0 -24
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/Calculator.cjs.map +1 -1
- package/dist/cjs/tools/CodeExecutor.cjs +0 -13
- package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
- package/dist/cjs/tools/CodeSessionFileSummary.cjs.map +1 -1
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs +0 -101
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/ReadFile.cjs.map +1 -1
- package/dist/cjs/tools/SkillTool.cjs +0 -5
- package/dist/cjs/tools/SkillTool.cjs.map +1 -1
- package/dist/cjs/tools/SubagentTool.cjs +0 -10
- package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
- package/dist/cjs/tools/ToolNode.cjs +6 -1038
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/ToolSearch.cjs +0 -179
- package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
- package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs.map +1 -1
- package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs +0 -39
- package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs.map +1 -1
- package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs.map +1 -1
- package/dist/cjs/tools/eagerEventExecution.cjs +0 -6
- package/dist/cjs/tools/eagerEventExecution.cjs.map +1 -1
- package/dist/cjs/tools/handlers.cjs +1 -41
- package/dist/cjs/tools/handlers.cjs.map +1 -1
- package/dist/cjs/tools/intentArg.cjs +1 -132
- package/dist/cjs/tools/intentArg.cjs.map +1 -1
- package/dist/cjs/tools/local/CompileCheckTool.cjs +0 -25
- package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -1
- package/dist/cjs/tools/local/FileCheckpointer.cjs +0 -23
- package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -1
- package/dist/cjs/tools/local/LocalCodingTools.cjs +0 -80
- package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -1
- package/dist/cjs/tools/local/LocalExecutionEngine.cjs +0 -126
- package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -1
- package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -1
- package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +0 -12
- package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/local/attachments.cjs +0 -44
- package/dist/cjs/tools/local/attachments.cjs.map +1 -1
- package/dist/cjs/tools/local/bashAst.cjs +0 -16
- package/dist/cjs/tools/local/bashAst.cjs.map +1 -1
- package/dist/cjs/tools/local/editStrategies.cjs +0 -14
- package/dist/cjs/tools/local/editStrategies.cjs.map +1 -1
- package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
- package/dist/cjs/tools/local/syntaxCheck.cjs +0 -31
- package/dist/cjs/tools/local/syntaxCheck.cjs.map +1 -1
- package/dist/cjs/tools/local/textEncoding.cjs +0 -11
- package/dist/cjs/tools/local/textEncoding.cjs.map +1 -1
- package/dist/cjs/tools/local/workspaceFS.cjs +0 -33
- package/dist/cjs/tools/local/workspaceFS.cjs.map +1 -1
- package/dist/cjs/tools/ptcTimeout.cjs.map +1 -1
- package/dist/cjs/tools/schema.cjs +0 -8
- package/dist/cjs/tools/schema.cjs.map +1 -1
- package/dist/cjs/tools/search/anthropic.cjs +0 -9
- package/dist/cjs/tools/search/anthropic.cjs.map +1 -1
- package/dist/cjs/tools/search/content.cjs.map +1 -1
- package/dist/cjs/tools/search/crw-scraper.cjs +0 -33
- package/dist/cjs/tools/search/crw-scraper.cjs.map +1 -1
- package/dist/cjs/tools/search/crw-search.cjs +0 -2
- package/dist/cjs/tools/search/crw-search.cjs.map +1 -1
- package/dist/cjs/tools/search/firecrawl.cjs +0 -25
- package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
- package/dist/cjs/tools/search/format.cjs +0 -30
- package/dist/cjs/tools/search/format.cjs.map +1 -1
- package/dist/cjs/tools/search/highlights.cjs +0 -16
- package/dist/cjs/tools/search/highlights.cjs.map +1 -1
- package/dist/cjs/tools/search/keenable-scraper.cjs +0 -8
- package/dist/cjs/tools/search/keenable-scraper.cjs.map +1 -1
- package/dist/cjs/tools/search/keenable-search.cjs +0 -7
- package/dist/cjs/tools/search/keenable-search.cjs.map +1 -1
- package/dist/cjs/tools/search/rerankers.cjs +0 -35
- package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
- package/dist/cjs/tools/search/schema.cjs +0 -1
- package/dist/cjs/tools/search/schema.cjs.map +1 -1
- package/dist/cjs/tools/search/search.cjs +1 -14
- package/dist/cjs/tools/search/search.cjs.map +1 -1
- package/dist/cjs/tools/search/serper-scraper.cjs +0 -46
- package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -1
- package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -1
- package/dist/cjs/tools/search/tavily-search.cjs.map +1 -1
- package/dist/cjs/tools/search/tool.cjs +0 -25
- package/dist/cjs/tools/search/tool.cjs.map +1 -1
- package/dist/cjs/tools/search/utils.cjs +0 -8
- package/dist/cjs/tools/search/utils.cjs.map +1 -1
- package/dist/cjs/tools/skillCatalog.cjs +0 -6
- package/dist/cjs/tools/skillCatalog.cjs.map +1 -1
- package/dist/cjs/tools/streamedToolCallSeals.cjs +0 -6
- package/dist/cjs/tools/streamedToolCallSeals.cjs.map +1 -1
- package/dist/cjs/tools/subagent/SubagentExecutionRegistry.cjs +0 -2
- package/dist/cjs/tools/subagent/SubagentExecutionRegistry.cjs.map +1 -1
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs +3 -213
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
- package/dist/cjs/tools/subagent/SubagentReplay.cjs.map +1 -1
- package/dist/cjs/tools/subagent/childGraphConfig.cjs +0 -4
- package/dist/cjs/tools/subagent/childGraphConfig.cjs.map +1 -1
- package/dist/cjs/tools/subagent/runtimeLimits.cjs.map +1 -1
- package/dist/cjs/tools/toolOutputReferences.cjs +1 -322
- package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -1
- package/dist/cjs/types/hitl.cjs +0 -5
- package/dist/cjs/types/hitl.cjs.map +1 -1
- package/dist/cjs/utils/callbacks.cjs.map +1 -1
- package/dist/cjs/utils/errors.cjs +14 -165
- package/dist/cjs/utils/errors.cjs.map +1 -1
- package/dist/cjs/utils/events.cjs +0 -10
- package/dist/cjs/utils/events.cjs.map +1 -1
- package/dist/cjs/utils/graph.cjs.map +1 -1
- package/dist/cjs/utils/handlers.cjs +0 -3
- package/dist/cjs/utils/handlers.cjs.map +1 -1
- package/dist/cjs/utils/llm.cjs +0 -1
- package/dist/cjs/utils/llm.cjs.map +1 -1
- package/dist/cjs/utils/misc.cjs +0 -16
- package/dist/cjs/utils/misc.cjs.map +1 -1
- package/dist/cjs/utils/proxy.cjs +0 -26
- package/dist/cjs/utils/proxy.cjs.map +1 -1
- package/dist/cjs/utils/run.cjs +0 -6
- package/dist/cjs/utils/run.cjs.map +1 -1
- package/dist/cjs/utils/schema.cjs +0 -5
- package/dist/cjs/utils/schema.cjs.map +1 -1
- package/dist/cjs/utils/title.cjs +0 -6
- package/dist/cjs/utils/title.cjs.map +1 -1
- package/dist/cjs/utils/tokens.cjs +0 -113
- package/dist/cjs/utils/tokens.cjs.map +1 -1
- package/dist/cjs/utils/toolContent.cjs +0 -41
- package/dist/cjs/utils/toolContent.cjs.map +1 -1
- package/dist/cjs/utils/truncation.cjs +0 -61
- package/dist/cjs/utils/truncation.cjs.map +1 -1
- package/dist/esm/agents/AgentContext.mjs +0 -356
- package/dist/esm/agents/AgentContext.mjs.map +1 -1
- package/dist/esm/agents/projection.mjs +0 -9
- package/dist/esm/agents/projection.mjs.map +1 -1
- package/dist/esm/common/constants.mjs +0 -26
- package/dist/esm/common/constants.mjs.map +1 -1
- package/dist/esm/common/enum.mjs +0 -85
- package/dist/esm/common/enum.mjs.map +1 -1
- package/dist/esm/events.mjs +0 -14
- package/dist/esm/events.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +1 -909
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/graphs/MultiAgentGraph.mjs +7 -272
- package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
- package/dist/esm/graphs/applyGraphRuntimeConfig.mjs.map +1 -1
- package/dist/esm/graphs/createGraph.mjs.map +1 -1
- package/dist/esm/hitl/askUserQuestion.mjs +0 -53
- package/dist/esm/hitl/askUserQuestion.mjs.map +1 -1
- package/dist/esm/hitl/askUserQuestions.mjs +0 -20
- package/dist/esm/hitl/askUserQuestions.mjs.map +1 -1
- package/dist/esm/hitl/askUserQuestionsInterrupt.mjs +0 -6
- package/dist/esm/hitl/askUserQuestionsInterrupt.mjs.map +1 -1
- package/dist/esm/hooks/HookRegistry.mjs +0 -127
- package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
- package/dist/esm/hooks/createToolPolicyHook.mjs +0 -38
- package/dist/esm/hooks/createToolPolicyHook.mjs.map +1 -1
- package/dist/esm/hooks/createWorkspacePolicyHook.mjs +0 -77
- package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -1
- package/dist/esm/hooks/executeHooks.mjs +0 -79
- package/dist/esm/hooks/executeHooks.mjs.map +1 -1
- package/dist/esm/hooks/index.mjs +0 -16
- package/dist/esm/hooks/index.mjs.map +1 -1
- package/dist/esm/hooks/matchers.mjs +0 -104
- package/dist/esm/hooks/matchers.mjs.map +1 -1
- package/dist/esm/hooks/types.mjs +0 -8
- package/dist/esm/hooks/types.mjs.map +1 -1
- package/dist/esm/instrumentation.mjs +0 -14
- package/dist/esm/instrumentation.mjs.map +1 -1
- package/dist/esm/langfuse.mjs +0 -75
- package/dist/esm/langfuse.mjs.map +1 -1
- package/dist/esm/langfuseConfig.mjs.map +1 -1
- package/dist/esm/langfuseRuntimeContext.mjs +0 -13
- package/dist/esm/langfuseRuntimeContext.mjs.map +1 -1
- package/dist/esm/langfuseRuntimeScope.mjs +0 -4
- package/dist/esm/langfuseRuntimeScope.mjs.map +1 -1
- package/dist/esm/langfuseSpanRegistry.mjs +0 -28
- package/dist/esm/langfuseSpanRegistry.mjs.map +1 -1
- package/dist/esm/langfuseToolOutputTracing.mjs +0 -3
- package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
- package/dist/esm/langfuseTraceShaping.mjs +0 -74
- package/dist/esm/langfuseTraceShaping.mjs.map +1 -1
- package/dist/esm/llm/anthropic/index.mjs +0 -3
- package/dist/esm/llm/anthropic/index.mjs.map +1 -1
- package/dist/esm/llm/anthropic/types.mjs.map +1 -1
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs +1 -111
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
- package/dist/esm/llm/anthropic/utils/message_outputs.mjs +0 -1
- package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
- package/dist/esm/llm/anthropic/utils/stream_events.mjs +0 -8
- package/dist/esm/llm/anthropic/utils/stream_events.mjs.map +1 -1
- package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -1
- package/dist/esm/llm/bedrock/cachePoints.mjs.map +1 -1
- package/dist/esm/llm/bedrock/index.mjs +1 -95
- package/dist/esm/llm/bedrock/index.mjs.map +1 -1
- package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
- package/dist/esm/llm/bedrock/utils/message_inputs.mjs +0 -78
- package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -1
- package/dist/esm/llm/bedrock/utils/message_outputs.mjs +0 -24
- package/dist/esm/llm/bedrock/utils/message_outputs.mjs.map +1 -1
- package/dist/esm/llm/contextOverflowRecovery.mjs +0 -62
- package/dist/esm/llm/contextOverflowRecovery.mjs.map +1 -1
- package/dist/esm/llm/fake.mjs.map +1 -1
- package/dist/esm/llm/google/index.mjs +2 -21
- package/dist/esm/llm/google/index.mjs.map +1 -1
- package/dist/esm/llm/google/utils/common.mjs +0 -35
- package/dist/esm/llm/google/utils/common.mjs.map +1 -1
- package/dist/esm/llm/init.mjs +0 -9
- package/dist/esm/llm/init.mjs.map +1 -1
- package/dist/esm/llm/invoke.mjs +1 -270
- package/dist/esm/llm/invoke.mjs.map +1 -1
- package/dist/esm/llm/mistral/index.mjs.map +1 -1
- package/dist/esm/llm/openai/index.mjs +0 -99
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/llm/openai/streamMetadata.mjs +0 -21
- package/dist/esm/llm/openai/streamMetadata.mjs.map +1 -1
- package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
- package/dist/esm/llm/openrouter/index.mjs +0 -1
- package/dist/esm/llm/openrouter/index.mjs.map +1 -1
- package/dist/esm/llm/openrouter/toolCache.mjs +0 -6
- package/dist/esm/llm/openrouter/toolCache.mjs.map +1 -1
- package/dist/esm/llm/preempt.mjs +0 -75
- package/dist/esm/llm/preempt.mjs.map +1 -1
- package/dist/esm/llm/providers.mjs.map +1 -1
- package/dist/esm/llm/request.mjs +0 -10
- package/dist/esm/llm/request.mjs.map +1 -1
- package/dist/esm/llm/stream/chunkAdapters.mjs +0 -62
- package/dist/esm/llm/stream/chunkAdapters.mjs.map +1 -1
- package/dist/esm/llm/stream/smoother.mjs +0 -58
- package/dist/esm/llm/stream/smoother.mjs.map +1 -1
- package/dist/esm/llm/streamLimits.mjs +4 -293
- package/dist/esm/llm/streamLimits.mjs.map +1 -1
- package/dist/esm/llm/truncation.mjs +0 -36
- package/dist/esm/llm/truncation.mjs.map +1 -1
- package/dist/esm/llm/vertexai/index.mjs +0 -330
- package/dist/esm/llm/vertexai/index.mjs.map +1 -1
- package/dist/esm/messages/alternation.mjs +0 -43
- package/dist/esm/messages/alternation.mjs.map +1 -1
- package/dist/esm/messages/anthropicToolCache.mjs +0 -45
- package/dist/esm/messages/anthropicToolCache.mjs.map +1 -1
- package/dist/esm/messages/assistantPhase.mjs +0 -12
- package/dist/esm/messages/assistantPhase.mjs.map +1 -1
- package/dist/esm/messages/budget.mjs +0 -9
- package/dist/esm/messages/budget.mjs.map +1 -1
- package/dist/esm/messages/cache.mjs +0 -172
- package/dist/esm/messages/cache.mjs.map +1 -1
- package/dist/esm/messages/content.mjs +0 -9
- package/dist/esm/messages/content.mjs.map +1 -1
- package/dist/esm/messages/contextPruning.mjs +0 -15
- package/dist/esm/messages/contextPruning.mjs.map +1 -1
- package/dist/esm/messages/contextPruningSettings.mjs +0 -3
- package/dist/esm/messages/contextPruningSettings.mjs.map +1 -1
- package/dist/esm/messages/core.mjs +0 -48
- package/dist/esm/messages/core.mjs.map +1 -1
- package/dist/esm/messages/format.mjs +1 -345
- package/dist/esm/messages/format.mjs.map +1 -1
- package/dist/esm/messages/handoffCue.mjs +0 -36
- package/dist/esm/messages/handoffCue.mjs.map +1 -1
- package/dist/esm/messages/ids.mjs.map +1 -1
- package/dist/esm/messages/injected.mjs +0 -33
- package/dist/esm/messages/injected.mjs.map +1 -1
- package/dist/esm/messages/langchain.mjs +0 -14
- package/dist/esm/messages/langchain.mjs.map +1 -1
- package/dist/esm/messages/prune.mjs +1 -184
- package/dist/esm/messages/prune.mjs.map +1 -1
- package/dist/esm/messages/recency.mjs +0 -32
- package/dist/esm/messages/recency.mjs.map +1 -1
- package/dist/esm/messages/reducer.mjs +0 -30
- package/dist/esm/messages/reducer.mjs.map +1 -1
- package/dist/esm/messages/tools.mjs +0 -14
- package/dist/esm/messages/tools.mjs.map +1 -1
- package/dist/esm/openai/index.mjs.map +1 -1
- package/dist/esm/prompts/activityLabel.mjs +9 -79
- package/dist/esm/prompts/activityLabel.mjs.map +1 -1
- package/dist/esm/responses/index.mjs.map +1 -1
- package/dist/esm/run.mjs +2 -538
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/session/AgentSession.mjs +1 -17
- package/dist/esm/session/AgentSession.mjs.map +1 -1
- package/dist/esm/session/JsonlSessionStore.mjs.map +1 -1
- package/dist/esm/session/handlers.mjs +0 -7
- package/dist/esm/session/handlers.mjs.map +1 -1
- package/dist/esm/session/ids.mjs.map +1 -1
- package/dist/esm/session/messageSerialization.mjs +0 -4
- package/dist/esm/session/messageSerialization.mjs.map +1 -1
- package/dist/esm/stream.mjs +1 -93
- package/dist/esm/stream.mjs.map +1 -1
- package/dist/esm/summarization/index.mjs +0 -27
- package/dist/esm/summarization/index.mjs.map +1 -1
- package/dist/esm/summarization/node.mjs +0 -273
- package/dist/esm/summarization/node.mjs.map +1 -1
- package/dist/esm/tools/BashExecutor.mjs +0 -35
- package/dist/esm/tools/BashExecutor.mjs.map +1 -1
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs +0 -24
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/Calculator.mjs.map +1 -1
- package/dist/esm/tools/CodeExecutor.mjs +0 -13
- package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
- package/dist/esm/tools/CodeSessionFileSummary.mjs.map +1 -1
- package/dist/esm/tools/ProgrammaticToolCalling.mjs +0 -101
- package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/ReadFile.mjs.map +1 -1
- package/dist/esm/tools/SkillTool.mjs +0 -5
- package/dist/esm/tools/SkillTool.mjs.map +1 -1
- package/dist/esm/tools/SubagentTool.mjs +0 -10
- package/dist/esm/tools/SubagentTool.mjs.map +1 -1
- package/dist/esm/tools/ToolNode.mjs +6 -1038
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/ToolSearch.mjs +0 -179
- package/dist/esm/tools/ToolSearch.mjs.map +1 -1
- package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs.map +1 -1
- package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs +0 -39
- package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs.map +1 -1
- package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs.map +1 -1
- package/dist/esm/tools/eagerEventExecution.mjs +0 -6
- package/dist/esm/tools/eagerEventExecution.mjs.map +1 -1
- package/dist/esm/tools/handlers.mjs +1 -41
- package/dist/esm/tools/handlers.mjs.map +1 -1
- package/dist/esm/tools/intentArg.mjs +1 -132
- package/dist/esm/tools/intentArg.mjs.map +1 -1
- package/dist/esm/tools/local/CompileCheckTool.mjs +0 -25
- package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -1
- package/dist/esm/tools/local/FileCheckpointer.mjs +0 -23
- package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -1
- package/dist/esm/tools/local/LocalCodingTools.mjs +0 -80
- package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -1
- package/dist/esm/tools/local/LocalExecutionEngine.mjs +0 -126
- package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -1
- package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -1
- package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +0 -12
- package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/local/attachments.mjs +0 -44
- package/dist/esm/tools/local/attachments.mjs.map +1 -1
- package/dist/esm/tools/local/bashAst.mjs +0 -16
- package/dist/esm/tools/local/bashAst.mjs.map +1 -1
- package/dist/esm/tools/local/editStrategies.mjs +0 -14
- package/dist/esm/tools/local/editStrategies.mjs.map +1 -1
- package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
- package/dist/esm/tools/local/syntaxCheck.mjs +0 -31
- package/dist/esm/tools/local/syntaxCheck.mjs.map +1 -1
- package/dist/esm/tools/local/textEncoding.mjs +0 -11
- package/dist/esm/tools/local/textEncoding.mjs.map +1 -1
- package/dist/esm/tools/local/workspaceFS.mjs +0 -33
- package/dist/esm/tools/local/workspaceFS.mjs.map +1 -1
- package/dist/esm/tools/ptcTimeout.mjs.map +1 -1
- package/dist/esm/tools/schema.mjs +0 -8
- package/dist/esm/tools/schema.mjs.map +1 -1
- package/dist/esm/tools/search/anthropic.mjs +0 -9
- package/dist/esm/tools/search/anthropic.mjs.map +1 -1
- package/dist/esm/tools/search/content.mjs.map +1 -1
- package/dist/esm/tools/search/crw-scraper.mjs +0 -33
- package/dist/esm/tools/search/crw-scraper.mjs.map +1 -1
- package/dist/esm/tools/search/crw-search.mjs +0 -2
- package/dist/esm/tools/search/crw-search.mjs.map +1 -1
- package/dist/esm/tools/search/firecrawl.mjs +0 -25
- package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
- package/dist/esm/tools/search/format.mjs +0 -30
- package/dist/esm/tools/search/format.mjs.map +1 -1
- package/dist/esm/tools/search/highlights.mjs +0 -16
- package/dist/esm/tools/search/highlights.mjs.map +1 -1
- package/dist/esm/tools/search/keenable-scraper.mjs +0 -8
- package/dist/esm/tools/search/keenable-scraper.mjs.map +1 -1
- package/dist/esm/tools/search/keenable-search.mjs +0 -7
- package/dist/esm/tools/search/keenable-search.mjs.map +1 -1
- package/dist/esm/tools/search/rerankers.mjs +0 -35
- package/dist/esm/tools/search/rerankers.mjs.map +1 -1
- package/dist/esm/tools/search/schema.mjs +0 -1
- package/dist/esm/tools/search/schema.mjs.map +1 -1
- package/dist/esm/tools/search/search.mjs +1 -14
- package/dist/esm/tools/search/search.mjs.map +1 -1
- package/dist/esm/tools/search/serper-scraper.mjs +0 -46
- package/dist/esm/tools/search/serper-scraper.mjs.map +1 -1
- package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -1
- package/dist/esm/tools/search/tavily-search.mjs.map +1 -1
- package/dist/esm/tools/search/tool.mjs +0 -25
- package/dist/esm/tools/search/tool.mjs.map +1 -1
- package/dist/esm/tools/search/utils.mjs +0 -8
- package/dist/esm/tools/search/utils.mjs.map +1 -1
- package/dist/esm/tools/skillCatalog.mjs +0 -6
- package/dist/esm/tools/skillCatalog.mjs.map +1 -1
- package/dist/esm/tools/streamedToolCallSeals.mjs +0 -6
- package/dist/esm/tools/streamedToolCallSeals.mjs.map +1 -1
- package/dist/esm/tools/subagent/SubagentExecutionRegistry.mjs +0 -2
- package/dist/esm/tools/subagent/SubagentExecutionRegistry.mjs.map +1 -1
- package/dist/esm/tools/subagent/SubagentExecutor.mjs +3 -213
- package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
- package/dist/esm/tools/subagent/SubagentReplay.mjs.map +1 -1
- package/dist/esm/tools/subagent/childGraphConfig.mjs +0 -4
- package/dist/esm/tools/subagent/childGraphConfig.mjs.map +1 -1
- package/dist/esm/tools/subagent/runtimeLimits.mjs.map +1 -1
- package/dist/esm/tools/toolOutputReferences.mjs +1 -322
- package/dist/esm/tools/toolOutputReferences.mjs.map +1 -1
- package/dist/esm/types/hitl.mjs +0 -5
- package/dist/esm/types/hitl.mjs.map +1 -1
- package/dist/esm/utils/callbacks.mjs.map +1 -1
- package/dist/esm/utils/errors.mjs +14 -165
- package/dist/esm/utils/errors.mjs.map +1 -1
- package/dist/esm/utils/events.mjs +0 -10
- package/dist/esm/utils/events.mjs.map +1 -1
- package/dist/esm/utils/graph.mjs.map +1 -1
- package/dist/esm/utils/handlers.mjs +0 -3
- package/dist/esm/utils/handlers.mjs.map +1 -1
- package/dist/esm/utils/llm.mjs +0 -1
- package/dist/esm/utils/llm.mjs.map +1 -1
- package/dist/esm/utils/misc.mjs +0 -16
- package/dist/esm/utils/misc.mjs.map +1 -1
- package/dist/esm/utils/proxy.mjs +0 -26
- package/dist/esm/utils/proxy.mjs.map +1 -1
- package/dist/esm/utils/run.mjs +0 -6
- package/dist/esm/utils/run.mjs.map +1 -1
- package/dist/esm/utils/schema.mjs +0 -5
- package/dist/esm/utils/schema.mjs.map +1 -1
- package/dist/esm/utils/title.mjs +0 -6
- package/dist/esm/utils/title.mjs.map +1 -1
- package/dist/esm/utils/tokens.mjs +0 -113
- package/dist/esm/utils/tokens.mjs.map +1 -1
- package/dist/esm/utils/toolContent.mjs +0 -41
- package/dist/esm/utils/toolContent.mjs.map +1 -1
- package/dist/esm/utils/truncation.mjs +0 -61
- package/dist/esm/utils/truncation.mjs.map +1 -1
- package/dist/types/agents/AgentContext.d.ts +3 -3
- package/dist/types/agents/__tests__/promptCacheLiveHelpers.d.ts +3 -3
- package/dist/types/agents/projection.d.ts +1 -1
- package/dist/types/events.d.ts +2 -2
- package/dist/types/graphs/Graph.d.ts +11 -11
- package/dist/types/graphs/MultiAgentGraph.d.ts +2 -2
- package/dist/types/graphs/createGraph.d.ts +4 -4
- package/dist/types/graphs/graphFactory.d.ts +1 -1
- package/dist/types/hitl/askUserQuestion.d.ts +1 -1
- package/dist/types/hitl/askUserQuestions.d.ts +1 -1
- package/dist/types/hitl/askUserQuestionsInterrupt.d.ts +1 -1
- package/dist/types/hooks/types.d.ts +1 -1
- package/dist/types/instrumentation.d.ts +1 -1
- package/dist/types/langfuse.d.ts +3 -3
- package/dist/types/langfuseConfig.d.ts +2 -2
- package/dist/types/langfuseRuntimeContext.d.ts +1 -1
- package/dist/types/langfuseRuntimeScope.d.ts +2 -2
- package/dist/types/langfuseSpanRegistry.d.ts +1 -1
- package/dist/types/langfuseToolOutputTracing.d.ts +3 -3
- package/dist/types/llm/anthropic/index.d.ts +1 -1
- package/dist/types/llm/bedrock/index.d.ts +1 -1
- package/dist/types/llm/bedrock/toolCache.d.ts +2 -2
- package/dist/types/llm/contextOverflowRecovery.d.ts +2 -2
- package/dist/types/llm/google/index.d.ts +1 -1
- package/dist/types/llm/init.d.ts +2 -2
- package/dist/types/llm/invoke.d.ts +6 -6
- package/dist/types/llm/mistral/index.d.ts +1 -1
- package/dist/types/llm/openai/index.d.ts +2 -2
- package/dist/types/llm/openrouter/index.d.ts +2 -2
- package/dist/types/llm/openrouter/toolCache.d.ts +2 -2
- package/dist/types/llm/providers.d.ts +2 -2
- package/dist/types/llm/request.d.ts +2 -2
- package/dist/types/llm/stream/chunkAdapters.d.ts +1 -1
- package/dist/types/llm/streamLimits.d.ts +1 -1
- package/dist/types/llm/truncation.d.ts +1 -1
- package/dist/types/llm/vertexai/index.d.ts +1 -1
- package/dist/types/messages/alternation.d.ts +1 -1
- package/dist/types/messages/anthropicToolCache.d.ts +2 -2
- package/dist/types/messages/assistantPhase.d.ts +3 -3
- package/dist/types/messages/budget.d.ts +1 -1
- package/dist/types/messages/cache.d.ts +1 -1
- package/dist/types/messages/contextPruning.d.ts +2 -2
- package/dist/types/messages/core.d.ts +2 -2
- package/dist/types/messages/format.d.ts +2 -2
- package/dist/types/messages/ids.d.ts +2 -2
- package/dist/types/messages/injected.d.ts +1 -1
- package/dist/types/messages/langchain.d.ts +1 -1
- package/dist/types/messages/prune.d.ts +3 -3
- package/dist/types/openai/index.d.ts +1 -1
- package/dist/types/prompts/activityLabel.d.ts +2 -2
- package/dist/types/responses/index.d.ts +1 -1
- package/dist/types/run.d.ts +3 -3
- package/dist/types/session/handlers.d.ts +1 -1
- package/dist/types/session/types.d.ts +1 -1
- package/dist/types/stream.d.ts +4 -4
- package/dist/types/summarization/index.d.ts +1 -1
- package/dist/types/summarization/node.d.ts +6 -6
- package/dist/types/test/mockTools.d.ts +1 -1
- package/dist/types/tools/BashExecutor.d.ts +2 -2
- package/dist/types/tools/BashProgrammaticToolCalling.d.ts +2 -2
- package/dist/types/tools/CodeExecutor.d.ts +3 -3
- package/dist/types/tools/CodeSessionFileSummary.d.ts +1 -1
- package/dist/types/tools/ProgrammaticToolCalling.d.ts +2 -2
- package/dist/types/tools/ReadFile.d.ts +1 -1
- package/dist/types/tools/SkillTool.d.ts +1 -1
- package/dist/types/tools/SubagentTool.d.ts +3 -3
- package/dist/types/tools/ToolNode.d.ts +5 -5
- package/dist/types/tools/ToolSearch.d.ts +2 -2
- package/dist/types/tools/cloudflare/CloudflareBridgeRuntime.d.ts +1 -1
- package/dist/types/tools/cloudflare/CloudflareProgrammaticToolCalling.d.ts +1 -1
- package/dist/types/tools/cloudflare/CloudflareSandboxExecutionEngine.d.ts +2 -2
- package/dist/types/tools/cloudflare/CloudflareSandboxTools.d.ts +1 -1
- package/dist/types/tools/eagerEventExecution.d.ts +1 -1
- package/dist/types/tools/handlers.d.ts +3 -3
- package/dist/types/tools/intentArg.d.ts +1 -1
- package/dist/types/tools/local/CompileCheckTool.d.ts +2 -2
- package/dist/types/tools/local/FileCheckpointer.d.ts +1 -1
- package/dist/types/tools/local/LocalCodingTools.d.ts +2 -2
- package/dist/types/tools/local/LocalExecutionEngine.d.ts +1 -1
- package/dist/types/tools/local/LocalExecutionTools.d.ts +1 -1
- package/dist/types/tools/local/LocalProgrammaticToolCalling.d.ts +1 -1
- package/dist/types/tools/local/bashAst.d.ts +1 -1
- package/dist/types/tools/local/resolveLocalExecutionTools.d.ts +1 -1
- package/dist/types/tools/local/syntaxCheck.d.ts +1 -1
- package/dist/types/tools/ptcTimeout.d.ts +1 -1
- package/dist/types/tools/schema.d.ts +1 -1
- package/dist/types/tools/search/anthropic.d.ts +1 -1
- package/dist/types/tools/skillCatalog.d.ts +1 -1
- package/dist/types/tools/subagent/SubagentExecutor.d.ts +5 -5
- package/dist/types/tools/subagent/SubagentReplay.d.ts +3 -3
- package/dist/types/tools/subagent/childGraphConfig.d.ts +2 -2
- package/dist/types/types/activityLabel.d.ts +3 -3
- package/dist/types/types/graph.d.ts +7 -7
- package/dist/types/types/llm.d.ts +9 -9
- package/dist/types/types/run.d.ts +7 -7
- package/dist/types/types/stream.d.ts +5 -5
- package/dist/types/types/summarize.d.ts +2 -2
- package/dist/types/types/tools.d.ts +5 -5
- package/dist/types/utils/__tests__/fixtures/contextOverflowSignatures.d.ts +1 -1
- package/dist/types/utils/errors.d.ts +1 -1
- package/dist/types/utils/events.d.ts +1 -1
- package/dist/types/utils/handlers.d.ts +3 -3
- package/dist/types/utils/llm.d.ts +1 -1
- package/dist/types/utils/llmConfig.d.ts +1 -1
- package/dist/types/utils/title.d.ts +1 -1
- package/package.json +10 -3
- package/src/__tests__/stream.eagerArgsDivergence.test.ts +0 -911
- package/src/__tests__/stream.eagerEventExecution.test.ts +0 -5046
- package/src/__tests__/stream.streamLimits.test.ts +0 -1982
- package/src/agents/__tests__/AgentContext.anthropic.live.test.ts +0 -448
- package/src/agents/__tests__/AgentContext.bedrock.live.test.ts +0 -655
- package/src/agents/__tests__/AgentContext.openrouter.live.test.ts +0 -128
- package/src/agents/__tests__/AgentContext.overflow.test.ts +0 -205
- package/src/agents/__tests__/AgentContext.test.ts +0 -2425
- package/src/agents/__tests__/projection.test.ts +0 -73
- package/src/agents/__tests__/promptCacheLiveHelpers.ts +0 -175
- package/src/aggregator.test.ts +0 -1214
- package/src/graphs/__tests__/Graph.breakerLifecycle.test.ts +0 -273
- package/src/graphs/__tests__/Graph.closeRunStep.test.ts +0 -385
- package/src/graphs/__tests__/Graph.contextOverflow.test.ts +0 -1766
- package/src/graphs/__tests__/Graph.preemptSignal.test.ts +0 -126
- package/src/graphs/__tests__/Graph.reasoning.test.ts +0 -1717
- package/src/graphs/__tests__/Graph.subagentResumeState.test.ts +0 -80
- package/src/graphs/__tests__/MultiAgentGraph.test.ts +0 -177
- package/src/graphs/__tests__/composition.smoke.test.ts +0 -509
- package/src/graphs/__tests__/createGraph.test.ts +0 -206
- package/src/hooks/__tests__/HookRegistry.test.ts +0 -334
- package/src/hooks/__tests__/compactHooks.test.ts +0 -250
- package/src/hooks/__tests__/createToolPolicyHook.test.ts +0 -268
- package/src/hooks/__tests__/createWorkspacePolicyHook.test.ts +0 -405
- package/src/hooks/__tests__/executeHooks.test.ts +0 -1294
- package/src/hooks/__tests__/integration.test.ts +0 -337
- package/src/hooks/__tests__/matchers.test.ts +0 -238
- package/src/hooks/__tests__/preemptBoundary.test.ts +0 -152
- package/src/hooks/__tests__/toolHooks.test.ts +0 -669
- package/src/llm/__tests__/contextOverflowRecovery.test.ts +0 -401
- package/src/llm/__tests__/fallbackOverflow.test.ts +0 -287
- package/src/llm/anthropic/Jacob_Lee_Resume_2023.pdf +0 -0
- package/src/llm/anthropic/inherited-content-utils.spec.ts +0 -249
- package/src/llm/anthropic/inherited-stream-events.spec.ts +0 -1259
- package/src/llm/anthropic/inherited-strict.spec.ts +0 -302
- package/src/llm/anthropic/llm.spec.ts +0 -3394
- package/src/llm/anthropic/utils/cross-provider-reasoning.test.ts +0 -383
- package/src/llm/anthropic/utils/cross-provider-server-tools.test.ts +0 -110
- package/src/llm/anthropic/utils/server-tool-inputs.test.ts +0 -508
- package/src/llm/anthropic/utils/streaming-tool-input.test.ts +0 -361
- package/src/llm/anthropic/utils/stripPrefillCache.test.ts +0 -111
- package/src/llm/anthropic/utils/tool-id-normalization.test.ts +0 -287
- package/src/llm/bedrock/inherited-cache.spec.ts +0 -144
- package/src/llm/bedrock/inherited.spec.ts +0 -724
- package/src/llm/bedrock/llm.spec.ts +0 -1533
- package/src/llm/bedrock/streamSealDispatch.test.ts +0 -331
- package/src/llm/bedrock/toolCache.test.ts +0 -194
- package/src/llm/bedrock/utils/cross-provider-reasoning.test.ts +0 -131
- package/src/llm/bedrock/utils/cross-provider-server-tools.test.ts +0 -122
- package/src/llm/bedrock/utils/message_inputs.test.ts +0 -650
- package/src/llm/bedrock/utils/message_outputs.test.ts +0 -85
- package/src/llm/bedrock/utils/toolResultCachePoint.test.ts +0 -118
- package/src/llm/custom-chat-models.smoke.test.ts +0 -1966
- package/src/llm/google/data/gettysburg10.wav +0 -0
- package/src/llm/google/data/hotdog.jpg +0 -0
- package/src/llm/google/inherited-stream-events.spec.ts +0 -350
- package/src/llm/google/llm.spec.ts +0 -1388
- package/src/llm/google/streamSmoothing.test.ts +0 -121
- package/src/llm/google/utils/common.test.ts +0 -196
- package/src/llm/invoke.alternation.test.ts +0 -87
- package/src/llm/invoke.handoffCue.test.ts +0 -112
- package/src/llm/invoke.streamLimits.test.ts +0 -142
- package/src/llm/invoke.test.ts +0 -1198
- package/src/llm/mistral/streamSmoothing.test.ts +0 -97
- package/src/llm/openai/cacheWriteTokens.test.ts +0 -112
- package/src/llm/openai/contentBlocks.test.ts +0 -381
- package/src/llm/openai/deepseek.test.ts +0 -747
- package/src/llm/openai/inherited-deepseek.spec.ts +0 -347
- package/src/llm/openai/inherited-xai.spec.ts +0 -416
- package/src/llm/openai/llm.spec.ts +0 -1774
- package/src/llm/openai/managedRequests.test.ts +0 -182
- package/src/llm/openai/sequentialToolCallSeals.test.ts +0 -199
- package/src/llm/openai/streamMetadata.spec.ts +0 -86
- package/src/llm/openai/streamMetadataDedup.spec.ts +0 -166
- package/src/llm/openai/utils/isReasoningModel.test.ts +0 -90
- package/src/llm/openai/utils/messages.test.ts +0 -488
- package/src/llm/openrouter/reasoning.test.ts +0 -561
- package/src/llm/openrouter/toolCache.test.ts +0 -134
- package/src/llm/preempt.test.ts +0 -323
- package/src/llm/stream/chunkAdapters.test.ts +0 -202
- package/src/llm/stream/reassembly.test.ts +0 -241
- package/src/llm/stream/smoother.bench.test.ts +0 -155
- package/src/llm/stream/smoother.test.ts +0 -519
- package/src/llm/streamLimits.test.ts +0 -450
- package/src/llm/truncation.test.ts +0 -242
- package/src/llm/vertexai/fixThoughtSignatures.test.ts +0 -154
- package/src/llm/vertexai/inherited-stream-events.spec.ts +0 -271
- package/src/llm/vertexai/llm.spec.ts +0 -159
- package/src/llm/vertexai/repairUsageMetadata.test.ts +0 -54
- package/src/llm/vertexai/sealStreamedToolCalls.test.ts +0 -88
- package/src/llm/vertexai/streamSealDispatch.test.ts +0 -148
- package/src/llm/vertexai/streamSmoothing.test.ts +0 -109
- package/src/messages/__tests__/anthropicToolCache.test.ts +0 -339
- package/src/messages/__tests__/observationMasking.test.ts +0 -312
- package/src/messages/__tests__/recency.test.ts +0 -267
- package/src/messages/__tests__/tools.test.ts +0 -473
- package/src/messages/alternation.test.ts +0 -212
- package/src/messages/assistantPhase.test.ts +0 -75
- package/src/messages/cache.tail.test.ts +0 -533
- package/src/messages/cache.test.ts +0 -2166
- package/src/messages/content.test.ts +0 -362
- package/src/messages/contextPruning.test.ts +0 -184
- package/src/messages/ensureThinkingBlock.test.ts +0 -1427
- package/src/messages/foldToollessToolBlocks.test.ts +0 -596
- package/src/messages/formatAgentMessages.reducer.test.ts +0 -162
- package/src/messages/formatAgentMessages.skills.test.ts +0 -513
- package/src/messages/formatAgentMessages.steer.test.ts +0 -598
- package/src/messages/formatAgentMessages.test.ts +0 -8111
- package/src/messages/formatAgentMessages.tools.test.ts +0 -522
- package/src/messages/formatMessage.test.ts +0 -693
- package/src/messages/handoffCue.test.ts +0 -96
- package/src/messages/injected.test.ts +0 -107
- package/src/messages/labelContentByAgent.test.ts +0 -962
- package/src/messages/reducer.spec.ts +0 -32
- package/src/messages/shiftIndexTokenCountMap.test.ts +0 -81
- package/src/messages/tailCacheConversion.test.ts +0 -161
- package/src/openai/__tests__/openai.test.ts +0 -337
- package/src/responses/__tests__/responses.test.ts +0 -652
- package/src/scripts/abort.ts +0 -157
- package/src/scripts/activity-labels/captured.json +0 -56
- package/src/scripts/activity-labels/checks.cjs +0 -205
- package/src/scripts/activity-labels/corpus.cjs +0 -473
- package/src/scripts/activity-labels/report.cjs +0 -203
- package/src/scripts/activity-labels/rescore.cjs +0 -102
- package/src/scripts/activity-labels/run.ts +0 -705
- package/src/scripts/activity-labels/variants.ts +0 -71
- package/src/scripts/ant_web_search.ts +0 -159
- package/src/scripts/ant_web_search_edge_case.ts +0 -163
- package/src/scripts/ant_web_search_error_edge_case.ts +0 -149
- package/src/scripts/args.ts +0 -48
- package/src/scripts/bedrock-cache-debug.ts +0 -250
- package/src/scripts/bedrock-content-aggregation-test.ts +0 -266
- package/src/scripts/bedrock-merge-test.ts +0 -107
- package/src/scripts/bedrock-parallel-tools-test.ts +0 -204
- package/src/scripts/bench-prompt-cache.ts +0 -479
- package/src/scripts/caching.ts +0 -132
- package/src/scripts/cli.ts +0 -172
- package/src/scripts/cli2.ts +0 -133
- package/src/scripts/cli3.ts +0 -184
- package/src/scripts/cli4.ts +0 -191
- package/src/scripts/cli5.ts +0 -191
- package/src/scripts/code_exec.ts +0 -214
- package/src/scripts/code_exec_files.ts +0 -237
- package/src/scripts/code_exec_multi_session.ts +0 -237
- package/src/scripts/code_exec_ptc.ts +0 -335
- package/src/scripts/code_exec_session.ts +0 -283
- package/src/scripts/code_exec_simple.ts +0 -148
- package/src/scripts/compare_pi_vs_ours.ts +0 -1259
- package/src/scripts/content.ts +0 -139
- package/src/scripts/context-overflow-probe.ts +0 -997
- package/src/scripts/empty_input.ts +0 -137
- package/src/scripts/handoff-test.ts +0 -134
- package/src/scripts/local_engine.ts +0 -166
- package/src/scripts/local_engine_checkpointer.ts +0 -205
- package/src/scripts/local_engine_compile.ts +0 -263
- package/src/scripts/local_engine_hooks.ts +0 -226
- package/src/scripts/local_engine_image.ts +0 -201
- package/src/scripts/local_engine_ptc.ts +0 -151
- package/src/scripts/local_engine_workspace.ts +0 -258
- package/src/scripts/memory.ts +0 -107
- package/src/scripts/multi-agent-chain.ts +0 -332
- package/src/scripts/multi-agent-conditional.ts +0 -222
- package/src/scripts/multi-agent-document-review-chain.ts +0 -198
- package/src/scripts/multi-agent-hybrid-flow.ts +0 -311
- package/src/scripts/multi-agent-parallel-start.ts +0 -265
- package/src/scripts/multi-agent-parallel.ts +0 -395
- package/src/scripts/multi-agent-sequence.ts +0 -217
- package/src/scripts/multi-agent-subagent.ts +0 -246
- package/src/scripts/multi-agent-supervisor.ts +0 -366
- package/src/scripts/multi-agent-test.ts +0 -187
- package/src/scripts/openrouter_prompt_cache_live.ts +0 -310
- package/src/scripts/parallel-asymmetric-tools-test.ts +0 -275
- package/src/scripts/parallel-full-metadata-test.ts +0 -241
- package/src/scripts/parallel-tools-test.ts +0 -341
- package/src/scripts/preempt-probe.ts +0 -330
- package/src/scripts/preempt-scenarios.ts +0 -388
- package/src/scripts/programmatic_exec.ts +0 -387
- package/src/scripts/programmatic_exec_agent.ts +0 -232
- package/src/scripts/search.ts +0 -147
- package/src/scripts/sequential-full-metadata-test.ts +0 -198
- package/src/scripts/session_live.ts +0 -548
- package/src/scripts/simple.ts +0 -226
- package/src/scripts/single-agent-metadata-test.ts +0 -196
- package/src/scripts/stream.ts +0 -141
- package/src/scripts/subagent-configurable-inheritance.ts +0 -252
- package/src/scripts/subagent-event-driven-debug.ts +0 -190
- package/src/scripts/subagent-tools-debug.ts +0 -160
- package/src/scripts/subagent-usage-sink.ts +0 -176
- package/src/scripts/summarization-recency.ts +0 -462
- package/src/scripts/test-custom-prompt-key.ts +0 -145
- package/src/scripts/test-handoff-input.ts +0 -170
- package/src/scripts/test-handoff-preamble.ts +0 -278
- package/src/scripts/test-handoff-steering.ts +0 -430
- package/src/scripts/test-multi-agent-list-handoff.ts +0 -418
- package/src/scripts/test-parallel-agent-labeling.ts +0 -327
- package/src/scripts/test-parallel-handoffs.ts +0 -292
- package/src/scripts/test-thinking-handoff-bedrock.ts +0 -154
- package/src/scripts/test-thinking-handoff.ts +0 -156
- package/src/scripts/test-thinking-to-thinking-handoff-bedrock.ts +0 -166
- package/src/scripts/test-tool-before-handoff-role-order.ts +0 -276
- package/src/scripts/test-tools-before-handoff.ts +0 -222
- package/src/scripts/test_code_api.ts +0 -354
- package/src/scripts/thinking-bedrock.ts +0 -160
- package/src/scripts/thinking-vertexai.ts +0 -168
- package/src/scripts/thinking.ts +0 -172
- package/src/scripts/tool_search.ts +0 -153
- package/src/scripts/tools.ts +0 -163
- package/src/session/__tests__/JsonlSessionStore.test.ts +0 -1463
- package/src/session/__tests__/handlers.test.ts +0 -161
- package/src/specs/activity-label-observability.live.test.ts +0 -262
- package/src/specs/activity-label-observability.test.ts +0 -167
- package/src/specs/activity-label-prompt.test.ts +0 -359
- package/src/specs/activity-label-trace-seed.test.ts +0 -47
- package/src/specs/activity-phase-label.test.ts +0 -306
- package/src/specs/agent-handoffs.live.test.ts +0 -140
- package/src/specs/agent-handoffs.test.ts +0 -2465
- package/src/specs/anthropic.simple.test.ts +0 -453
- package/src/specs/ask-user-question-batch.test.ts +0 -289
- package/src/specs/ask-user-questions.live.test.ts +0 -185
- package/src/specs/ask-user-questions.test.ts +0 -293
- package/src/specs/azure.simple.test.ts +0 -502
- package/src/specs/bedrock-toolless.live.test.ts +0 -123
- package/src/specs/bedrock-truncation.live.test.ts +0 -191
- package/src/specs/cache.simple.test.ts +0 -416
- package/src/specs/context-accuracy.live.test.ts +0 -409
- package/src/specs/context-overflow-recovery.live.test.ts +0 -213
- package/src/specs/context-usage-event.test.ts +0 -117
- package/src/specs/context-usage.live.test.ts +0 -297
- package/src/specs/custom-event-await.test.ts +0 -304
- package/src/specs/deepseek.simple.test.ts +0 -290
- package/src/specs/deterministic-trace-id.test.ts +0 -43
- package/src/specs/discovered-tools.test.ts +0 -217
- package/src/specs/durability-checkpoint.integration.test.ts +0 -243
- package/src/specs/graph-subagent.live.test.ts +0 -242
- package/src/specs/graph-subagent.test.ts +0 -322
- package/src/specs/handoffCue.test.ts +0 -165
- package/src/specs/langfuse-callbacks.test.ts +0 -1578
- package/src/specs/langfuse-config.test.ts +0 -247
- package/src/specs/langfuse-instrumentation.test.ts +0 -393
- package/src/specs/langfuse-metadata.test.ts +0 -245
- package/src/specs/langfuse-routing.integration.test.ts +0 -844
- package/src/specs/langfuse-runtime-context.test.ts +0 -92
- package/src/specs/langfuse-span-registry.test.ts +0 -87
- package/src/specs/langfuse-tool-output-tracing.test.ts +0 -1858
- package/src/specs/langfuse-trace-shaping.test.ts +0 -591
- package/src/specs/moonshot.simple.test.ts +0 -367
- package/src/specs/multi-agent-summarization.test.ts +0 -396
- package/src/specs/openai.simple.test.ts +0 -315
- package/src/specs/openrouter.simple.test.ts +0 -275
- package/src/specs/preemptSeal.test.ts +0 -678
- package/src/specs/prune.test.ts +0 -3741
- package/src/specs/reasoning.test.ts +0 -201
- package/src/specs/run-step-timestamps.test.ts +0 -414
- package/src/specs/spec.utils.ts +0 -15
- package/src/specs/subagent.test.ts +0 -864
- package/src/specs/summarization-unit.test.ts +0 -973
- package/src/specs/summarization.test.ts +0 -3823
- package/src/specs/summarize-prune.test.ts +0 -376
- package/src/specs/thinking-handoff.test.ts +0 -621
- package/src/specs/thinking-prune.test.ts +0 -827
- package/src/specs/token-accounting-e2e.test.ts +0 -1034
- package/src/specs/token-accounting-pipeline.test.ts +0 -1008
- package/src/specs/token-distribution-edge-case.test.ts +0 -315
- package/src/specs/token-memoization.test.ts +0 -40
- package/src/specs/tokens.test.ts +0 -1000
- package/src/specs/tool-error-resume.test.ts +0 -194
- package/src/specs/tool-error.test.ts +0 -198
- package/src/specs/vllm-reasoning-toolcalls.test.ts +0 -340
- package/src/stream.dispatch.test.ts +0 -63
- package/src/stream.test.ts +0 -144
- package/src/summarization/__tests__/aggregator.test.ts +0 -236
- package/src/summarization/__tests__/node.test.ts +0 -1996
- package/src/summarization/__tests__/trigger.test.ts +0 -149
- package/src/summarization/chunkHandler.test.ts +0 -196
- package/src/test/mockTools.ts +0 -386
- package/src/tools/Calculator.test.ts +0 -278
- package/src/tools/__tests__/BashExecutor.test.ts +0 -108
- package/src/tools/__tests__/CloudflareSandboxExecution.test.ts +0 -939
- package/src/tools/__tests__/CodeApiAuthHeaders.test.ts +0 -858
- package/src/tools/__tests__/CodeExecutor.stateful.test.ts +0 -124
- package/src/tools/__tests__/LocalExecutionRoots.test.ts +0 -8
- package/src/tools/__tests__/LocalExecutionTools.test.ts +0 -2733
- package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.ts +0 -318
- package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +0 -1557
- package/src/tools/__tests__/ReadFile.test.ts +0 -44
- package/src/tools/__tests__/SkillTool.test.ts +0 -442
- package/src/tools/__tests__/SubagentExecutor.test.ts +0 -3728
- package/src/tools/__tests__/SubagentReplay.test.ts +0 -329
- package/src/tools/__tests__/SubagentTool.test.ts +0 -149
- package/src/tools/__tests__/ToolNode.breakerSignal.test.ts +0 -595
- package/src/tools/__tests__/ToolNode.eagerEventExecution.test.ts +0 -1191
- package/src/tools/__tests__/ToolNode.invalidToolCalls.test.ts +0 -757
- package/src/tools/__tests__/ToolNode.langfuse.test.ts +0 -57
- package/src/tools/__tests__/ToolNode.onResultCompletion.test.ts +0 -736
- package/src/tools/__tests__/ToolNode.outputReferences.test.ts +0 -1710
- package/src/tools/__tests__/ToolNode.runtimeState.test.ts +0 -120
- package/src/tools/__tests__/ToolNode.session.test.ts +0 -1352
- package/src/tools/__tests__/ToolNode.streamLimits.test.ts +0 -69
- package/src/tools/__tests__/ToolSearch.integration.test.ts +0 -161
- package/src/tools/__tests__/ToolSearch.test.ts +0 -1227
- package/src/tools/__tests__/annotateMessagesForLLM.test.ts +0 -561
- package/src/tools/__tests__/directToolHITLResumeScope.test.ts +0 -980
- package/src/tools/__tests__/directToolHooks.test.ts +0 -700
- package/src/tools/__tests__/eagerEventExecution.session.test.ts +0 -92
- package/src/tools/__tests__/handlers.test.ts +0 -997
- package/src/tools/__tests__/hitl.test.ts +0 -4663
- package/src/tools/__tests__/intentArg.test.ts +0 -357
- package/src/tools/__tests__/intentCoverage.test.ts +0 -139
- package/src/tools/__tests__/localToolNames.test.ts +0 -75
- package/src/tools/__tests__/skillCatalog.test.ts +0 -161
- package/src/tools/__tests__/subagentHooks.test.ts +0 -1651
- package/src/tools/__tests__/toolOutputReferences.test.ts +0 -515
- package/src/tools/__tests__/workspaceSeam.test.ts +0 -147
- package/src/tools/local/__tests__/FileCheckpointer.test.ts +0 -162
- package/src/tools/local/__tests__/editStrategies.test.ts +0 -134
- package/src/tools/search/content.test.ts +0 -173
- package/src/tools/search/crw.test.ts +0 -836
- package/src/tools/search/format.test.ts +0 -242
- package/src/tools/search/http-agent.test.ts +0 -133
- package/src/tools/search/jina-reranker.test.ts +0 -306
- package/src/tools/search/keenable-scraper.test.ts +0 -153
- package/src/tools/search/keenable.test.ts +0 -183
- package/src/tools/search/outcome.test.ts +0 -90
- package/src/tools/search/output.md +0 -2775
- package/src/tools/search/rag-api-reranker.test.ts +0 -891
- package/src/tools/search/source-processing.test.ts +0 -516
- package/src/tools/search/tavily.test.ts +0 -965
- package/src/tools/search/test.html +0 -884
- package/src/tools/search/test.md +0 -643
- package/src/tools/subagent/__tests__/SubagentExecutionRegistry.test.ts +0 -637
- package/src/tools/subagent/__tests__/SubagentExecutor.lazy.test.ts +0 -3054
- package/src/tools/subagent/__tests__/childGraphConfig.test.ts +0 -521
- package/src/utils/__tests__/apportion.test.ts +0 -32
- package/src/utils/__tests__/errors.test.ts +0 -270
- package/src/utils/__tests__/fixtures/contextOverflowSignatures.ts +0 -336
- package/src/utils/__tests__/redactSecrets.test.ts +0 -56
- package/src/utils/__tests__/truncation.test.ts +0 -66
- package/src/utils/llm.test.ts +0 -18
- package/src/utils/proxy.test.ts +0 -176
- package/src/utils/toolContent.test.ts +0 -1432
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.cjs","names":["isOpenAILike","projectToolStreamContentForProvider","projectOpenAIResponsesToolMessageContent","stripAnthropicCacheControl","stripBedrockCacheControl","projectComputerCallOutputsToText","projectOpenRouterToolMessageContent","projectOpenAIChatToolMessageContent","projectSingleTextToolOutputsToText","projectCacheControlledToolOutputsToText","projectStructuredToolOutputsToText","dispatchesChatModelStream","AIMessageChunk","CallbackManager","CallbackManagerForLLMRun","safeDispatchCustomEvent","STREAM_LIMIT_ATTEMPT_KEY","streamLimitAccountingEnabled","resolveGenerationKey","annotateMessagesForLLM","isAnthropicLike","appendPredecessorHandoffCue","removePredecessorHandoffCue","strictAlternationProviders","coalesceAdjacentUserTurns","appendCallbacks","StreamLimitExceededError","ChatModelStreamHandler","canSealPreempt","STREAM_LIMIT_REDISPATCH_KEY","manualToolStreamProviders","modifyDeltaProperties","getContextOverflowInfo","initializeModel"],"sources":["../../../src/llm/invoke.ts"],"sourcesContent":["import { concat } from '@langchain/core/utils/stream';\nimport { AIMessageChunk } from '@langchain/core/messages';\nimport { getCallbackManagerForConfig } from '@langchain/core/runnables';\nimport {\n CallbackManager,\n CallbackManagerForLLMRun,\n type Callbacks,\n} from '@langchain/core/callbacks/manager';\nimport type { Serialized } from '@langchain/core/load/serializable';\nimport type { RunnableConfig } from '@langchain/core/runnables';\nimport type { ChatGeneration } from '@langchain/core/outputs';\nimport type { ToolCall } from '@langchain/core/messages/tool';\nimport type { BaseMessage } from '@langchain/core/messages';\nimport type { ToolOutputReferenceRegistry } from '@/tools/toolOutputReferences';\nimport type { StreamLimitState } from '@/llm/streamLimits';\nimport type { ContextOverflowContext } from '@/utils/errors';\nimport type * as t from '@/types';\nimport {\n projectCacheControlledToolOutputsToText,\n projectComputerCallOutputsToText,\n projectOpenAIChatToolMessageContent,\n projectOpenAIResponsesToolMessageContent,\n projectOpenRouterToolMessageContent,\n projectSingleTextToolOutputsToText,\n projectStructuredToolOutputsToText,\n projectToolStreamContentForProvider,\n} from '@/messages/core';\nimport {\n modifyDeltaProperties,\n coalesceAdjacentUserTurns,\n strictAlternationProviders,\n appendPredecessorHandoffCue,\n removePredecessorHandoffCue,\n} from '@/messages';\nimport {\n stripAnthropicCacheControl,\n stripBedrockCacheControl,\n} from '@/messages/cache';\nimport { ChatModelStreamHandler, dispatchesChatModelStream } from '@/stream';\nimport { Constants, ContentTypes, GraphEvents, Providers } from '@/common';\nimport {\n enforceStreamLimitsForWireChunk,\n registerActiveStreamLimitGeneration,\n releaseStreamLimitGeneration,\n resolveGenerationKey,\n streamLimitAccountingEnabled,\n StreamLimitExceededError,\n STREAM_LIMIT_REDISPATCH_KEY,\n STREAM_LIMIT_ATTEMPT_KEY,\n} from '@/llm/streamLimits';\nimport { annotateMessagesForLLM } from '@/tools/toolOutputReferences';\nimport { assertNotTruncatedToolCall } from '@/llm/truncation';\nimport { manualToolStreamProviders } from '@/llm/providers';\nimport { isAnthropicLike, isOpenAILike } from '@/utils/llm';\nimport { safeDispatchCustomEvent } from '@/utils/events';\nimport { getContextOverflowInfo } from '@/utils/errors';\nimport { appendCallbacks } from '@/utils/callbacks';\nimport { canSealPreempt } from '@/llm/preempt';\nimport { initializeModel } from '@/llm/init';\n\n/**\n * Context passed to `attemptInvoke`. Matches the subset of Graph that\n * `ChatModelStreamHandler.handle` needs *plus* the explicit\n * `getOrCreateToolOutputRegistry()` accessor that `attemptInvoke`\n * itself calls to pull the run-scoped tool-output registry off the\n * graph and project each relevant ToolMessage into a transient\n * annotated copy before the provider call.\n *\n * The intersection is intentional: `Parameters<...>[3]` resolves\n * indirectly through the stream handler's signature (which returns\n * `StandardGraph` and already exposes the accessor since #117), but\n * stating it explicitly here surfaces the contract at the call site —\n * a developer reading `attemptInvoke` doesn't have to chase the\n * upstream handler's parameter list to discover that\n * `context?.getOrCreateToolOutputRegistry()` is a real thing. Single\n * optional chain only — the method itself is required on the\n * `StandardGraph` branch of the intersection, so the second `?.` is\n * unnecessary at the call site.\n *\n * `NonNullable<...>` strips `undefined` from the upstream parameter\n * type so the intersection doesn't collapse to `never` on the\n * undefined branch; callers express optionality via `context?:\n * InvokeContext` on the function signature instead.\n *\n * Callers without a registry (e.g. summarization) simply pass no\n * `context` and the transform safely no-ops.\n */\nexport type InvokeContext = NonNullable<\n Parameters<ChatModelStreamHandler['handle']>[3]\n> & {\n getOrCreateToolOutputRegistry?(): ToolOutputReferenceRegistry | undefined;\n};\n\n/**\n * Per-chunk callback for custom stream processing.\n * When provided, replaces the default `ChatModelStreamHandler`.\n *\n * `metadata` is the attempt's callback metadata (carrying the provider and\n * stream-limit attempt stamps), so consumers that count against the stream\n * limits key each model attempt separately.\n */\nexport type OnChunk = (\n chunk: AIMessageChunk,\n metadata?: Record<string, unknown>\n) => void | Promise<void>;\n\n/** Unique per-model-attempt sequence; see the stamp in `attemptInvoke`. */\nlet streamLimitAttemptSeq = 0;\n\nexport function usesNativeOpenAIResponses(\n model: t.ChatModel,\n provider: Providers,\n callOptions?: unknown\n): boolean {\n if (!isOpenAILike(provider)) {\n return false;\n }\n let candidate: unknown = model;\n let effectiveCallOptions = callOptions;\n const seen = new Set<object>();\n for (let depth = 0; depth < 20; depth++) {\n if (candidate == null || typeof candidate !== 'object') {\n return false;\n }\n if (seen.has(candidate)) {\n return false;\n }\n seen.add(candidate);\n const runnable = candidate as {\n _useResponsesApi?: (options?: unknown) => boolean;\n bound?: unknown;\n defaultOptions?: unknown;\n last?: unknown;\n constructor?: { name?: unknown };\n };\n try {\n if (\n runnable.defaultOptions != null &&\n typeof runnable.defaultOptions === 'object' &&\n !Array.isArray(runnable.defaultOptions) &&\n effectiveCallOptions != null &&\n typeof effectiveCallOptions === 'object' &&\n !Array.isArray(effectiveCallOptions)\n ) {\n effectiveCallOptions = {\n ...(runnable.defaultOptions as Record<string, unknown>),\n ...(effectiveCallOptions as Record<string, unknown>),\n };\n } else if (effectiveCallOptions == null) {\n effectiveCallOptions = runnable.defaultOptions;\n }\n if (\n runnable._useResponsesApi?.(effectiveCallOptions) === true ||\n runnable._useResponsesApi?.(undefined) === true\n ) {\n return true;\n }\n } catch {\n // Continue through RunnableSequence/RunnableBinding wrappers.\n }\n if (\n typeof runnable.constructor?.name === 'string' &&\n runnable.constructor.name.includes('Responses')\n ) {\n return true;\n }\n if (runnable.last != null && typeof runnable.last === 'object') {\n candidate = runnable.last;\n continue;\n }\n if (runnable.bound != null && typeof runnable.bound === 'object') {\n candidate = runnable.bound;\n continue;\n }\n return false;\n }\n return false;\n}\n\n/**\n * Produces the exact provider-facing message representation before a model\n * adapter serializes it. This is shared by invocation and Graph's final budget\n * guard so structured tool output cannot grow after the payload was measured.\n */\nexport function projectMessagesForProvider({\n model,\n messages,\n provider,\n maxToolResultChars,\n callOptions,\n}: {\n model: t.ChatModel;\n messages: BaseMessage[];\n provider: Providers;\n maxToolResultChars?: number;\n callOptions?: unknown;\n}): BaseMessage[] {\n const nativeOpenAIResponses = usesNativeOpenAIResponses(\n model,\n provider,\n callOptions\n );\n const providerInputMessages = projectToolStreamContentForProvider(\n messages,\n nativeOpenAIResponses ? 'native' : 'fallback',\n maxToolResultChars\n );\n if (nativeOpenAIResponses) {\n return projectOpenAIResponsesToolMessageContent(\n stripAnthropicCacheControl(\n stripBedrockCacheControl(providerInputMessages)\n ),\n maxToolResultChars\n );\n }\n if (provider === Providers.OPENROUTER) {\n return projectComputerCallOutputsToText(\n projectOpenRouterToolMessageContent(\n stripBedrockCacheControl(providerInputMessages),\n maxToolResultChars\n )\n );\n }\n if (isOpenAILike(provider)) {\n return projectComputerCallOutputsToText(\n projectOpenAIChatToolMessageContent(\n stripAnthropicCacheControl(\n stripBedrockCacheControl(providerInputMessages)\n ),\n maxToolResultChars\n )\n );\n }\n if (provider === Providers.ANTHROPIC) {\n return projectComputerCallOutputsToText(\n projectSingleTextToolOutputsToText(\n stripBedrockCacheControl(providerInputMessages),\n maxToolResultChars\n )\n );\n }\n if (provider === Providers.BEDROCK) {\n return stripAnthropicCacheControl(\n projectComputerCallOutputsToText(\n projectCacheControlledToolOutputsToText(\n providerInputMessages,\n maxToolResultChars\n )\n )\n );\n }\n return projectComputerCallOutputsToText(\n projectStructuredToolOutputsToText(\n projectSingleTextToolOutputsToText(\n stripAnthropicCacheControl(\n stripBedrockCacheControl(providerInputMessages)\n ),\n maxToolResultChars\n ),\n maxToolResultChars\n )\n );\n}\n\n/**\n * The registered handler that owns content-part dispatch, if any.\n *\n * Detected by brand rather than by `instanceof`: a host that registers\n * `new ChatModelStreamHandler()` to opt out of sealing gets wrapped by\n * `createRunHandlers` on every `AgentSession` run, and by\n * `composeEventHandlers` on a key collision. Both wrappers forward to the same\n * dispatcher while failing an identity check, so an identity test would\n * silently revoke the opt-out documented on `StreamPreemption`.\n */\nfunction getRegisteredDefaultChatStreamHandler(\n context?: InvokeContext\n): t.EventHandler | undefined {\n const handler = context?.handlerRegistry?.getHandler(\n GraphEvents.CHAT_MODEL_STREAM\n );\n return dispatchesChatModelStream(handler) ? handler : undefined;\n}\n\nfunction hasReasoningDetails(chunk: AIMessageChunk): boolean {\n const reasoningDetails = chunk.additional_kwargs.reasoning_details;\n return Array.isArray(reasoningDetails) && reasoningDetails.length > 0;\n}\n\nfunction removeOpenRouterFinalReasoningReplayContent({\n current,\n next,\n provider,\n}: {\n current?: AIMessageChunk;\n next: AIMessageChunk;\n provider: Providers;\n}): AIMessageChunk {\n const content = getOpenRouterFinalReasoningContent({\n current,\n next,\n provider,\n });\n if (content == null || content === next.content) {\n return next;\n }\n\n return new AIMessageChunk(\n Object.assign({}, next, {\n content,\n })\n );\n}\n\nfunction getOpenRouterFinalReasoningContent({\n current,\n next,\n provider,\n}: {\n current?: AIMessageChunk;\n next: AIMessageChunk;\n provider: Providers;\n}): string | undefined {\n if (\n provider !== Providers.OPENROUTER ||\n current == null ||\n !hasReasoningDetails(next) ||\n typeof current.content !== 'string' ||\n current.content === '' ||\n typeof next.content !== 'string' ||\n next.content === ''\n ) {\n return undefined;\n }\n if (!next.content.startsWith(current.content)) {\n return next.content;\n }\n return next.content.slice(current.content.length);\n}\n\nfunction removeReasoningDetails(\n additionalKwargs: AIMessageChunk['additional_kwargs']\n): AIMessageChunk['additional_kwargs'] {\n return Object.fromEntries(\n Object.entries(additionalKwargs).filter(\n ([key]) => key !== 'reasoning_details'\n )\n );\n}\n\nfunction getStreamHandlingChunk({\n current,\n next,\n provider,\n}: {\n current?: AIMessageChunk;\n next: AIMessageChunk;\n provider: Providers;\n}): AIMessageChunk | undefined {\n const content = getOpenRouterFinalReasoningContent({\n current,\n next,\n provider,\n });\n if (content == null) {\n return next;\n }\n if (content === '') {\n return undefined;\n }\n return new AIMessageChunk(\n Object.assign({}, next, {\n content,\n additional_kwargs: removeReasoningDetails(next.additional_kwargs),\n })\n );\n}\n\n/**\n * Best-effort output-token count for a sealed turn, used only when the\n * provider never got to send its usage chunk.\n */\nfunction countSealedTokens(\n context: InvokeContext | undefined,\n metadata: Record<string, unknown> | undefined,\n messages: BaseMessage[]\n): number | undefined {\n try {\n const counter = context?.getAgentContext(metadata).tokenCounter;\n if (counter == null) {\n return undefined;\n }\n let total = 0;\n for (const message of messages) {\n total += counter(message);\n }\n return total;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Instruction overhead the provider processed but that never appears in the\n * message array: `createCallModel` pipes the model through\n * `agentContext.systemRunnable` and binds tool schemas AFTER `messages` is\n * formed, so the system prompt, dynamic instructions, summary and tool\n * schemas are all billed yet invisible here.\n *\n * Read per-node via `getAgentContext(metadata)` rather than the graph-level\n * accessor, which is hardcoded to `defaultAgentId` and would report the wrong\n * agent's overhead in a `MultiAgentGraph`.\n */\nfunction sealedInstructionOverhead(\n context: InvokeContext | undefined,\n metadata: Record<string, unknown> | undefined\n): number {\n try {\n const agentContext = context?.getAgentContext(metadata);\n return (\n agentContext?.resolvedInstructionOverhead ??\n agentContext?.instructionTokens ??\n 0\n );\n } catch {\n return 0;\n }\n}\n\n/**\n * Best-effort usage for a turn the provider never got to bill us for.\n *\n * The prompt matters as much as the completion: the provider processed the\n * ENTIRE prompt — messages plus instruction overhead — before we sealed, and\n * every resume re-sends it, so under-counting input hides the expensive half\n * of a preempted run.\n *\n * ESTIMATE, NOT MEASUREMENT. Messages are counted with the host's tokenizer\n * rather than the provider's, and `toolSchemaTokens` applies a heuristic\n * multiplier. It is also an over-count on the fallback path, where\n * `tryFallbackProviders` builds a bare model with no `systemRunnable` pipe so\n * the system prompt genuinely is not sent. Accepted rather than threaded\n * through a flag: only the fallback-plus-seal combination is affected, and an\n * over-count is safer than the previous fabricated `input_tokens: 0`.\n *\n * Marked `estimated_usage` so calibration can refuse to learn from it — a\n * ratio derived from the same counter that produced the estimate is\n * self-consistent by construction and would drag a provider's real\n * calibration toward 1.0.\n */\nfunction synthesizeSealedUsage(\n context: InvokeContext | undefined,\n chunk: AIMessageChunk,\n prompt: BaseMessage[],\n metadata: Record<string, unknown> | undefined\n): void {\n if (chunk.usage_metadata != null) {\n return;\n }\n const outputTokens = countSealedTokens(context, metadata, [chunk]);\n if (outputTokens == null) {\n return;\n }\n const inputTokens =\n (countSealedTokens(context, metadata, prompt) ?? 0) +\n sealedInstructionOverhead(context, metadata);\n const usageMetadata = {\n input_tokens: inputTokens,\n output_tokens: outputTokens,\n total_tokens: inputTokens + outputTokens,\n };\n chunk.usage_metadata = usageMetadata;\n chunk.lc_kwargs.usage_metadata = usageMetadata;\n const responseMetadata = {\n ...chunk.response_metadata,\n estimated_usage: true,\n };\n chunk.response_metadata = responseMetadata;\n chunk.lc_kwargs.response_metadata = responseMetadata;\n}\n\nfunction getMessageText(chunk: AIMessageChunk): string {\n if (typeof chunk.content === 'string') {\n return chunk.content;\n }\n let text = '';\n for (const block of chunk.content) {\n if (block.type === ContentTypes.TEXT) {\n const value = block[ContentTypes.TEXT];\n if (typeof value === 'string') {\n text += value;\n }\n }\n }\n return text;\n}\n\n/**\n * Ends the real model run for a turn that was sealed mid-stream.\n *\n * Mandatory, not cosmetic. `@langchain/core`'s `_streamIterator` calls\n * `handleLLMEnd` after its try/catch with no `finally`, so breaking out of the\n * consumer's `for await` produces a *return* completion that fires neither\n * `handleLLMError` nor `handleLLMEnd`. The run would stay open in every\n * callback handler: the host records no usage — and since each seal re-sends\n * the whole prompt, N preemptions cost N unrecorded prompts — while LangSmith\n * and Langfuse hold a span that never closes.\n *\n * `runId` cannot be dictated from here (the bound runnable consumes\n * `config.runId` for its own run and hands the chat model a fresh one), but it\n * can be OBSERVED: the capture handler installed at the `model.stream` call\n * records it from `handleChatModelStart`, which fires before the first chunk.\n * Rebuilding the manager against that id closes the real run, and the host's\n * `on_chat_model_end` then arrives through the ordinary `streamEvents` path.\n *\n * Falls back to a custom-event dispatch if the id was never observed, so the\n * host still records usage even when the native close is unavailable.\n */\n/**\n * Every callbacks source the real model run would compose beyond the per-call\n * config. `model` here is whatever `createCallModel` produced — with tools\n * that is `bindTools(...)`'s `RunnableBinding`, and a system runnable pipes a\n * `RunnableSequence` on top — while `clientOptions.callbacks` lives on the\n * chat model at the BOTTOM of that stack. Walks `bound` (bindings) and\n * `last`/`steps` (sequences), collecting each wrapper's own `callbacks` and\n * any binding-config callbacks along the way, since the binding merges its\n * config into the call before the chat model composes.\n */\nfunction collectModelCallbackSources(model: unknown): Callbacks[] {\n const sources: Callbacks[] = [];\n const seen = new Set<unknown>();\n let current: unknown = model;\n while (current != null && typeof current === 'object' && !seen.has(current)) {\n seen.add(current);\n const wrapper = current as {\n callbacks?: Callbacks;\n config?: { callbacks?: Callbacks };\n bound?: unknown;\n last?: unknown;\n steps?: unknown[];\n };\n if (wrapper.callbacks != null) {\n sources.push(wrapper.callbacks);\n }\n if (wrapper.config?.callbacks != null) {\n sources.push(wrapper.config.callbacks);\n }\n current =\n wrapper.bound ??\n wrapper.last ??\n (Array.isArray(wrapper.steps)\n ? wrapper.steps[wrapper.steps.length - 1]\n : undefined);\n }\n return sources;\n}\n\n/**\n * The serving model's id, read through the same wrapper stack\n * `collectModelCallbackSources` walks — `bindTools` returns a\n * `RunnableBinding` and a system runnable pipes a `RunnableSequence`, and\n * neither exposes the chat model's `model` at the top level.\n */\nexport function resolveServingModelId(model: unknown): string | undefined {\n const seen = new Set<unknown>();\n let current: unknown = model;\n while (current != null && typeof current === 'object' && !seen.has(current)) {\n seen.add(current);\n const wrapper = current as {\n model?: unknown;\n bound?: unknown;\n last?: unknown;\n steps?: unknown[];\n };\n if (typeof wrapper.model === 'string' && wrapper.model !== '') {\n return wrapper.model;\n }\n current =\n wrapper.bound ??\n wrapper.last ??\n (Array.isArray(wrapper.steps)\n ? wrapper.steps[wrapper.steps.length - 1]\n : undefined);\n }\n return undefined;\n}\n\nasync function endSealedModelRun(\n context: InvokeContext | undefined,\n chunk: AIMessageChunk,\n prompt: BaseMessage[],\n llmRunId: string | undefined,\n config?: RunnableConfig,\n model?: t.ChatModel\n): Promise<void> {\n const metadata = config?.metadata as Record<string, unknown> | undefined;\n synthesizeSealedUsage(context, chunk, prompt, metadata);\n if (llmRunId != null) {\n try {\n let callbackManager = await getCallbackManagerForConfig(config);\n /**\n * The real model run composes the per-call config's callbacks WITH the\n * model's own (`CallbackManager.configure(config.callbacks,\n * this.callbacks, …)` in `@langchain/core`'s base chat model), so a\n * handler supplied via `clientOptions.callbacks` received\n * `handleChatModelStart` for this run. Rebuilding from the config alone\n * would close the run for every handler EXCEPT those — leaving their\n * span open forever. Composed the same way the real run composes:\n * model callbacks appended non-inheritable, parent run id preserved by\n * `copy`, tracers deduped by `configure`.\n */\n for (const source of collectModelCallbackSources(model)) {\n callbackManager =\n CallbackManager.configure(callbackManager ?? undefined, source) ??\n callbackManager;\n }\n if (callbackManager != null) {\n const runManager = new CallbackManagerForLLMRun(\n llmRunId,\n callbackManager.handlers,\n callbackManager.inheritableHandlers,\n callbackManager.tags,\n callbackManager.inheritableTags,\n callbackManager.metadata,\n callbackManager.inheritableMetadata,\n callbackManager.getParentRunId()\n );\n const generation: ChatGeneration = {\n text: getMessageText(chunk),\n message: chunk,\n };\n await runManager.handleLLMEnd({\n generations: [[generation]],\n llmOutput: {},\n });\n return;\n }\n } catch (e) {\n /**\n * A sealed answer that reaches the user is worth more than a tidy\n * trace. Fall through to the custom event rather than failing the run.\n */\n // eslint-disable-next-line no-console\n console.warn(\n '[attemptInvoke] Native close of the sealed model run failed; falling back to a custom event:',\n e instanceof Error ? e.message : e\n );\n }\n }\n await safeDispatchCustomEvent(\n GraphEvents.CHAT_MODEL_END,\n { output: chunk },\n config\n );\n}\n\nfunction appendStreamChunk({\n current,\n next,\n provider,\n}: {\n current?: AIMessageChunk;\n next: AIMessageChunk;\n provider: Providers;\n}): AIMessageChunk {\n if (current == null) {\n return next;\n }\n return concat(\n current,\n removeOpenRouterFinalReasoningReplayContent({ current, next, provider })\n );\n}\n\n/**\n * Invokes a chat model with the given messages, handling both streaming and\n * non-streaming paths.\n *\n * By default, stream chunks are processed through a `ChatModelStreamHandler`\n * that dispatches run steps (MESSAGE_CREATION, TOOL_CALLS) for the graph.\n * Pass an `onChunk` callback to override this with custom chunk processing\n * (e.g. summarization delta events).\n */\ninterface AttemptInvokeParams {\n model: t.ChatModel;\n messages: BaseMessage[];\n provider: Providers;\n context?: InvokeContext;\n onChunk?: OnChunk;\n /** Accounting owner for callers that deliberately pass no `context`\n * (summarization) — used ONLY for the attempt's accounting lease, never\n * for charge claims. */\n streamLimitState?: StreamLimitState;\n}\n\n/**\n * One model attempt. Stamps the attempt identity into callback metadata\n * (see the generation-key notes in `streamLimits.ts`), leases the attempt's\n * accounting for its LIFETIME, and releases both from `finally`: retention\n * must follow the attempt — a cancellation-ignoring straggler keeps its\n * original budget no matter how many runs start and reset while it drains.\n */\nexport async function attemptInvoke(\n params: AttemptInvokeParams,\n config?: RunnableConfig\n): Promise<Partial<t.BaseGraphState>> {\n const stampedConfig: RunnableConfig = {\n ...config,\n metadata: {\n ...(config?.metadata ?? {}),\n [Constants.INVOKED_PROVIDER]: params.provider,\n /**\n * One `attemptInvoke` call is one model attempt; primary, fallback,\n * and retry attempts within a node otherwise share the same langgraph\n * metadata, so without a unique attempt stamp a fallback re-streaming\n * a tool call from scratch would be charged the failed primary's\n * partial bytes (or a same-named sibling fallback's) and could\n * falsely trip the stream limits. The stamp rides the same metadata\n * rebuild that already attributes the serving provider.\n */\n [STREAM_LIMIT_ATTEMPT_KEY]: ++streamLimitAttemptSeq,\n },\n };\n const rawLeaseTarget = params.context ?? params.streamLimitState;\n /** No lease when no guard can fire: the lease only protects accounting\n * entries, and fully disabled guards must allocate no bookkeeping at\n * all — per-attempt included. */\n const leaseTarget =\n rawLeaseTarget != null && streamLimitAccountingEnabled(rawLeaseTarget)\n ? rawLeaseTarget\n : undefined;\n const generationKey =\n leaseTarget != null\n ? resolveGenerationKey(\n stampedConfig.metadata as Record<string, unknown>\n )\n : undefined;\n if (leaseTarget != null && generationKey != null) {\n registerActiveStreamLimitGeneration(leaseTarget, generationKey);\n }\n try {\n return await attemptInvokeBody(params, stampedConfig);\n } finally {\n if (leaseTarget != null && generationKey != null) {\n releaseStreamLimitGeneration(leaseTarget, generationKey);\n }\n }\n}\n\nasync function attemptInvokeBody(\n {\n model,\n messages,\n provider,\n context,\n onChunk,\n }: AttemptInvokeParams,\n config: RunnableConfig\n): Promise<Partial<t.BaseGraphState>> {\n /**\n * Pull the run-scoped tool output registry off the graph (when one\n * exists) and project ToolMessages carrying ref metadata into a\n * transient annotated copy. The original `messages` array stays\n * untouched so the graph state never sees `[ref: …]` / `_ref`\n * payload.\n */\n const invocationMessages = projectMessagesForProvider({\n model,\n messages,\n provider,\n callOptions: config,\n });\n const registry = context?.getOrCreateToolOutputRegistry();\n const runId = config.configurable?.run_id as string | undefined;\n const annotated = annotateMessagesForLLM(invocationMessages, registry, runId);\n /**\n * Keyed on the provider ACTUALLY serving this call, not the agent's primary.\n * `createCallModel` normalizes for the primary, but `tryFallbackProviders`\n * re-sends the same array — so an OpenAI primary that fails after a boundary\n * injected two human turns would hand a Bedrock or Mistral fallback the\n * consecutive user turns those APIs reject, and the recovery request would\n * fail for a reason unrelated to the original failure.\n *\n * `attemptInvoke` is the single funnel for primary, fallback and\n * summarization calls, so applying it here covers all three. Idempotent, so\n * the primary simply re-runs a no-op over already-coalesced messages.\n */\n /**\n * Serving-provider re-keying for the predecessor handoff cue (#345). The\n * PRIMARY's cue is baked in createCallModel's measured transform stage —\n * appending after measurement could push a just-fits prompt over budget —\n * so this funnel only corrects for fallbacks crossing provider families:\n * a tolerant primary falling back to a Claude surface gains the cue here,\n * and an Anthropic primary falling back to OpenAI/Mistral/Nova has the\n * Claude-only synthetic turn stripped. Both helpers are identity on their\n * no-op paths, so the primary's own pass re-runs for free.\n *\n * The serving model id is read through the wrapper stack (`bindTools`'\n * binding, a system runnable's sequence) — a wrapper's top-level `.model`\n * is undefined, and `isAnthropicLike` would otherwise default a wrapped\n * Bedrock-Nova model to Claude. The context cast is widened deliberately:\n * the type says every context is a full Graph, but summarization passes\n * none and long-standing tests pass partial stubs.\n */\n const isRunProduced = (\n context as\n | { isRunProducedMessage?: (message: BaseMessage) => boolean }\n | undefined\n )?.isRunProducedMessage;\n const cued = isAnthropicLike(provider, {\n model: resolveServingModelId(model),\n })\n ? appendPredecessorHandoffCue(\n annotated,\n isRunProduced == null\n ? undefined\n : (message): boolean => isRunProduced.call(context, message)\n )\n : removePredecessorHandoffCue(annotated);\n const messagesForProvider = strictAlternationProviders.has(provider)\n ? coalesceAdjacentUserTurns(cued)\n : cued;\n\n /**\n * Stamp the provider that is ACTUALLY serving this invocation onto the\n * callback metadata. `attemptInvoke` is the single funnel for primary,\n * fallback, and summarization model calls, so consumers that need\n * provider attribution per call (the subagent usage-capture handler)\n * read this key instead of trusting static agent config — which is\n * wrong for fallback-served calls — or `ls_provider` — which derived\n * providers inherit from their base class.\n */\n if (model.stream) {\n /**\n * Observed, not dictated. `handleChatModelStart` fires with the chat\n * model's real run id before the first chunk, which is the only way to\n * name the run a seal has to close — pinning `config.runId` does not\n * survive the bound runnable. Installed only when preemption is\n * configured, so a run that cannot seal carries no extra handler.\n */\n let sealedRunId: string | undefined;\n const streamConfig =\n context?.preemption == null\n ? config\n : {\n ...config,\n callbacks: appendCallbacks(config.callbacks, [\n {\n handleChatModelStart: (\n _llm: Serialized,\n _messages: BaseMessage[][],\n runId: string\n ): void => {\n sealedRunId ??= runId;\n },\n },\n ]),\n };\n const stream = await model.stream(messagesForProvider, streamConfig);\n let finalChunk: AIMessageChunk | undefined;\n let preempted = false;\n const registeredStreamHandler =\n getRegisteredDefaultChatStreamHandler(context);\n /** A sibling's trip aborts the composed signal, but an adapter that\n * ignores cancellation keeps yielding — and text-only chunks with the\n * event cap off never throw in enforcement, so nothing else would stop\n * the drain. Checked on every yielded chunk in all three loops;\n * throwing closes the iterator and tears down the provider stream. */\n const throwIfBreakerTripped = (): void => {\n const signal = config.signal;\n if (\n signal?.aborted === true &&\n signal.reason instanceof StreamLimitExceededError\n ) {\n throw signal.reason;\n }\n };\n\n if (onChunk) {\n const attemptMetadata = config.metadata as\n | Record<string, unknown>\n | undefined;\n for await (const chunk of stream) {\n throwIfBreakerTripped();\n /** An onChunk consumer replaces the stream handler entirely, so\n * stream limits are enforced here for every such caller — public\n * package consumers get no other accounting. The internal\n * summarization onChunk charges producer-side itself and passes no\n * context, precisely so this claim and its own never stack. */\n if (context != null) {\n enforceStreamLimitsForWireChunk({\n graph: context,\n metadata: attemptMetadata,\n chunk,\n });\n }\n await onChunk(chunk, attemptMetadata);\n finalChunk = appendStreamChunk({\n current: finalChunk,\n next: chunk,\n provider,\n });\n }\n } else if (registeredStreamHandler == null) {\n const metadata = config.metadata as Record<string, unknown> | undefined;\n const streamHandler = new ChatModelStreamHandler();\n for await (const chunk of stream) {\n throwIfBreakerTripped();\n const handlingChunk = getStreamHandlingChunk({\n current: finalChunk,\n next: chunk,\n provider,\n });\n if (handlingChunk != null) {\n await streamHandler.handle(\n GraphEvents.CHAT_MODEL_STREAM,\n { chunk: handlingChunk },\n metadata,\n context\n );\n } else if (context != null) {\n /**\n * A replay-skipped chunk yields no handling chunk, and in this\n * local branch no `streamEvents` consumer judges the wire event\n * either — yet a cumulative OpenRouter replay can still carry\n * `tool_call_chunks` or complete `tool_calls` that are appended\n * below. Charge the full limits (event budget and argument bytes)\n * directly so neither cap can be bypassed. Consumer side: the\n * local handler.handle call above claims as consumer, and one\n * reused chunk object can alternate between these two arms.\n */\n enforceStreamLimitsForWireChunk({\n graph: context,\n metadata,\n chunk,\n side: 'consumer',\n });\n }\n finalChunk = appendStreamChunk({\n current: finalChunk,\n next: chunk,\n provider,\n });\n /**\n * Only this loop may seal. The registered-handler branch below\n * dispatches through `run.ts`'s decoupled `streamEvents` consumer,\n * which can lag the accumulated chunk — sealing there would let the\n * host index a content part the user has not been shown yet.\n */\n /**\n * Cheap poll first, shape check second, budget claim last. The claim\n * is what makes this safe under a parallel `MultiAgentGraph`: several\n * agents share one graph and can each see the poll as true, but only\n * one can take the slot, and a chunk that cannot seal never spends it.\n */\n if (\n context?.shouldPreemptStream() === true &&\n canSealPreempt(finalChunk) &&\n context.claimPreemptSeal()\n ) {\n preempted = true;\n break;\n }\n }\n } else {\n const metadata = config.metadata as Record<string, unknown> | undefined;\n /**\n * The original wire chunk still reaches the registered handler through\n * `streamEvents` (where the late-reasoning skip discards it AFTER the\n * event guard counts it), so this inline re-dispatch of the transformed\n * chunk is marked to not consume a second event-budget slot. Allocated\n * once per attempt, only when a transformation occurs.\n */\n let redispatchMetadata: Record<string, unknown> | undefined;\n for await (const chunk of stream) {\n throwIfBreakerTripped();\n /**\n * Charged synchronously, ahead of the decoupled `streamEvents`\n * reader that will echo this same chunk to the registered handler:\n * a lagging reader would otherwise let an oversized complete call\n * return to LangGraph and reach ToolNode before the queued handler\n * throws. The chunk is marked so the echo skips accounting.\n */\n if (context != null) {\n enforceStreamLimitsForWireChunk({ graph: context, metadata, chunk });\n }\n const handlingChunk = getStreamHandlingChunk({\n current: finalChunk,\n next: chunk,\n provider,\n });\n if (handlingChunk != null && handlingChunk !== chunk) {\n redispatchMetadata ??= {\n ...(metadata ?? {}),\n [STREAM_LIMIT_REDISPATCH_KEY]: true,\n };\n await registeredStreamHandler.handle(\n GraphEvents.CHAT_MODEL_STREAM,\n { chunk: handlingChunk },\n redispatchMetadata,\n context\n );\n }\n finalChunk = appendStreamChunk({\n current: finalChunk,\n next: chunk,\n provider,\n });\n }\n }\n\n if (manualToolStreamProviders.has(provider)) {\n finalChunk = modifyDeltaProperties(provider, finalChunk);\n }\n\n if (preempted && finalChunk != null) {\n const responseMetadata = {\n ...finalChunk.response_metadata,\n preempted: true,\n };\n finalChunk.response_metadata = responseMetadata;\n finalChunk.lc_kwargs.response_metadata = responseMetadata;\n await endSealedModelRun(\n context,\n finalChunk,\n messagesForProvider,\n sealedRunId,\n config,\n model\n );\n }\n\n if ((finalChunk?.tool_calls?.length ?? 0) > 0) {\n finalChunk!.tool_calls = finalChunk!.tool_calls?.filter(\n (tool_call: ToolCall) => !!tool_call.name\n );\n }\n\n assertNotTruncatedToolCall(finalChunk, provider);\n return { messages: [finalChunk as AIMessageChunk] };\n }\n\n const finalMessage = await model.invoke(messagesForProvider, config);\n if ((finalMessage.tool_calls?.length ?? 0) > 0) {\n finalMessage.tool_calls = finalMessage.tool_calls?.filter(\n (tool_call: ToolCall) => !!tool_call.name\n );\n }\n assertNotTruncatedToolCall(finalMessage, provider);\n return { messages: [finalMessage] };\n}\n\n/**\n * Identifies which fallback produced an error, so a caller planning a\n * recovery can reason about the client that actually failed rather than the\n * primary's configuration — their context windows and output allowances\n * differ, which is the whole reason a fallback exists.\n */\nexport interface FallbackErrorContext {\n provider: Providers;\n clientOptions?: t.ClientOptions;\n maxContextTokens?: number;\n}\n\nexport interface FallbackOverflowCandidate {\n error: unknown;\n context: FallbackErrorContext;\n}\n\nconst fallbackErrorContexts = new WeakMap<object, FallbackErrorContext>();\nconst fallbackOverflowCandidates = new WeakMap<\n object,\n FallbackOverflowCandidate[]\n>();\n\nfunction attachFallbackErrorContext(\n error: unknown,\n fallbackContext: FallbackErrorContext\n): void {\n if (typeof error !== 'object' || error === null) {\n return;\n }\n fallbackErrorContexts.set(error, fallbackContext);\n}\n\n/** Reads back the fallback attribution attached by `tryFallbackProviders`. */\nexport function getFallbackErrorContext(\n error: unknown\n): FallbackErrorContext | undefined {\n if (typeof error !== 'object' || error === null) {\n return undefined;\n }\n return fallbackErrorContexts.get(error);\n}\n\n/** Returns every fallback overflow retained from an exhausted provider chain. */\nexport function getFallbackOverflowCandidates(\n error: unknown\n): FallbackOverflowCandidate[] {\n if (typeof error !== 'object' || error === null) {\n return [];\n }\n return [...(fallbackOverflowCandidates.get(error) ?? [])];\n}\n\n/**\n * Best-effort read of the configured model name from client options.\n * Providers disagree on the key (`model` vs `modelName`).\n */\nfunction extractClientOptionsModel(\n clientOptions: t.ClientOptions | undefined\n): string | undefined {\n const options = clientOptions as\n | { model?: unknown; modelName?: unknown }\n | undefined;\n if (typeof options?.model === 'string' && options.model !== '') {\n return options.model;\n }\n if (typeof options?.modelName === 'string' && options.modelName !== '') {\n return options.modelName;\n }\n return undefined;\n}\n\n/**\n * Attempts each fallback provider in order until one succeeds.\n *\n * When every fallback fails, a context overflow among them is thrown in\n * preference to whichever failure happened to come last. An overflow is the\n * one failure the caller can act on — it compacts and retries — and losing it\n * behind a later unrelated error would surface a dead end instead. Ordinary\n * failures still throw last-error-wins.\n */\nexport async function tryFallbackProviders({\n fallbacks,\n tools,\n messages,\n config,\n primaryError,\n context,\n onChunk,\n streamLimitState,\n overflowContext,\n prepareProviderMessages,\n}: {\n fallbacks: t.FallbackConfig[];\n tools?: t.GraphTools;\n messages: BaseMessage[];\n config?: RunnableConfig;\n primaryError: unknown;\n context?: InvokeContext;\n onChunk?: OnChunk;\n /** Accounting-lease owner forwarded to each fallback attempt (see\n * `AttemptInvokeParams.streamLimitState`). */\n streamLimitState?: StreamLimitState;\n /**\n * Prompt-size corroboration for signatures that are not self-describing.\n * Vertex AI's overflow is a bare `400` with no reason, so without this a\n * fallback that overflows is indistinguishable from any other 400 and would\n * be dropped in favour of whichever failure came last.\n */\n overflowContext?: ContextOverflowContext;\n /**\n * Optional final payload guard used by Graph. It receives the initialized,\n * tool-bound fallback model so Responses-vs-Chat projection is exact before\n * the fallback request is measured and sent.\n */\n prepareProviderMessages?: (input: {\n model: t.ChatModel;\n messages: BaseMessage[];\n provider: Providers;\n clientOptions?: t.ClientOptions;\n maxContextTokens?: number;\n config?: RunnableConfig;\n }) => BaseMessage[] | Promise<BaseMessage[]>;\n}): Promise<Partial<t.BaseGraphState> | undefined> {\n const isOverflow = (\n error: unknown,\n contextOverride = overflowContext\n ): boolean => getContextOverflowInfo(error, contextOverride) != null;\n let lastError: unknown = primaryError;\n /**\n * Tracked apart from the primary's overflow. A caller reaching this\n * function with an overflowing primary has already failed to recover from\n * it, so a fallback overflow — which may sit against a different window and\n * output allowance — is the more useful of the two to surface.\n */\n const overflowCandidates: FallbackOverflowCandidate[] = [];\n const primaryOverflowError: unknown = isOverflow(primaryError)\n ? primaryError\n : undefined;\n for (const fb of fallbacks) {\n try {\n const fbModel = initializeModel({\n provider: fb.provider,\n clientOptions: fb.clientOptions,\n tools,\n });\n /**\n * Stamp the fallback's configured model onto callback metadata so\n * per-call attribution (subagent usage capture) doesn't fall back to\n * the PRIMARY config's model when the provider reports no\n * `ls_model_name`. The serving provider is stamped uniformly by\n * `attemptInvoke` (`INVOKED_PROVIDER`).\n */\n const fbModelName = extractClientOptionsModel(fb.clientOptions);\n const fbConfig: RunnableConfig | undefined =\n fbModelName == null\n ? config\n : {\n ...config,\n metadata: {\n ...(config?.metadata ?? {}),\n [Constants.INVOKED_MODEL]: fbModelName,\n },\n };\n const fallbackMessages =\n (await prepareProviderMessages?.({\n model: fbModel as t.ChatModel,\n messages,\n provider: fb.provider,\n clientOptions: fb.clientOptions,\n maxContextTokens: fb.maxContextTokens,\n config: fbConfig,\n })) ?? messages;\n /** A sibling can trip the breaker while the preparation above is\n * awaited — and the catch below only sees attempts that THROW, so a\n * provider that ignores an aborted signal and succeeds would resolve\n * a run that must reject. Check before every fallback invocation. */\n if (\n config?.signal?.aborted === true &&\n config.signal.reason instanceof StreamLimitExceededError\n ) {\n throw config.signal.reason;\n }\n const result = await attemptInvoke(\n {\n model: fbModel as t.ChatModel,\n messages: fallbackMessages,\n provider: fb.provider,\n context,\n onChunk,\n streamLimitState,\n },\n fbConfig\n );\n return result;\n } catch (e) {\n /**\n * A tripped stream circuit breaker is a deliberate abort, not a\n * provider failure. Continuing would try the remaining fallbacks and a\n * succeeding one would resolve a run that must reject.\n */\n if (e instanceof StreamLimitExceededError) {\n throw e;\n }\n /** A parallel sibling's trip aborts this branch's composed signal, and\n * a provider can surface that as a generic abort error; advancing to\n * the next fallback would start new provider work after the safety\n * abort. Rethrow the breaker's own reason instead. */\n if (\n config?.signal?.aborted === true &&\n config.signal.reason instanceof StreamLimitExceededError\n ) {\n throw config.signal.reason;\n }\n lastError = e;\n const fallbackOverflowContext: ContextOverflowContext = {\n provider: fb.provider,\n maxContextTokens: fb.maxContextTokens,\n ...(overflowContext?.provider === fb.provider\n ? {\n estimatedPromptTokens: overflowContext.estimatedPromptTokens,\n }\n : {}),\n };\n if (isOverflow(e, fallbackOverflowContext)) {\n const errorContext: FallbackErrorContext = {\n provider: fb.provider,\n clientOptions: fb.clientOptions,\n maxContextTokens: fb.maxContextTokens,\n };\n attachFallbackErrorContext(e, errorContext);\n overflowCandidates.push({ error: e, context: errorContext });\n }\n continue;\n }\n }\n /**\n * Preference order: a fallback overflow, then the primary's overflow, then\n * whichever failure came last. An overflow is the only one of the three a\n * caller can act on, and the fallback's carries the client attribution that\n * makes a correct retry budget possible.\n */\n const preferred =\n overflowCandidates[0]?.error ?? primaryOverflowError ?? lastError;\n if (\n overflowCandidates.length > 0 &&\n typeof preferred === 'object' &&\n preferred !== null\n ) {\n fallbackOverflowCandidates.set(preferred, overflowCandidates);\n }\n if (preferred !== undefined) {\n throw preferred;\n }\n return undefined;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"invoke.cjs","names":["isOpenAILike","projectToolStreamContentForProvider","projectOpenAIResponsesToolMessageContent","stripAnthropicCacheControl","stripBedrockCacheControl","projectComputerCallOutputsToText","projectOpenRouterToolMessageContent","projectOpenAIChatToolMessageContent","projectSingleTextToolOutputsToText","projectCacheControlledToolOutputsToText","projectStructuredToolOutputsToText","dispatchesChatModelStream","AIMessageChunk","CallbackManager","CallbackManagerForLLMRun","safeDispatchCustomEvent","STREAM_LIMIT_ATTEMPT_KEY","streamLimitAccountingEnabled","resolveGenerationKey","annotateMessagesForLLM","isAnthropicLike","appendPredecessorHandoffCue","removePredecessorHandoffCue","strictAlternationProviders","coalesceAdjacentUserTurns","appendCallbacks","StreamLimitExceededError","ChatModelStreamHandler","canSealPreempt","STREAM_LIMIT_REDISPATCH_KEY","manualToolStreamProviders","modifyDeltaProperties","getContextOverflowInfo","initializeModel"],"sources":["../../../src/llm/invoke.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["ChatMistralAI","resolveStreamDelay","smoothGenerationChunks"],"sources":["../../../../src/llm/mistral/index.ts"],"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["ChatMistralAI","resolveStreamDelay","smoothGenerationChunks"],"sources":["../../../../src/llm/mistral/index.ts"],"mappings":";;;;AAQA,IAAa,sBAAb,cAAyCA,qBAAAA,cAAc;CACrD;CAEA,OAAO,UAAgC;EACrC,OAAO;CACT;CAEA,YAAY,QAAiC;EAC3C,MAAM,MAAM;EACZ,KAAK,mBAAmBC,iBAAAA,mBAAmB,QAAQ,gBAAgB;CACrE;CAEA,OAAO,sBACL,UACA,SACA,YACqC;EACrC,OAAOC,sBAAAA,uBAAuB;GAC5B,QAAQ,MAAM,sBAAsB,UAAU,SAAS,KAAA,CAAS;GAChE,SAAS,KAAK;GACd,QAAQ,QAAQ;GAChB;EACF,CAAC;CACH;AACF"}
|
|
@@ -107,7 +107,6 @@ function selectCacheBreakpointIndexes(roles, cacheable) {
|
|
|
107
107
|
}
|
|
108
108
|
return [...indexes];
|
|
109
109
|
}
|
|
110
|
-
/** @internal */
|
|
111
110
|
function addChatCacheBreakpoints(messages) {
|
|
112
111
|
const indexes = new Set(selectCacheBreakpointIndexes(messages.map((message) => message.role), messages.map((message) => canAddChatBreakpoint(message))));
|
|
113
112
|
return messages.map((message, index) => indexes.has(index) ? addChatBreakpoint(message) : message);
|
|
@@ -118,8 +117,6 @@ function isResponseMessage(item) {
|
|
|
118
117
|
function isResponseInputRole(role) {
|
|
119
118
|
return role === "system" || role === "developer" || role === "user";
|
|
120
119
|
}
|
|
121
|
-
/** Only `input_text`/`input_image`/`input_file` accept a Responses breakpoint;
|
|
122
|
-
* `output_text`/`refusal` (replayed assistant blocks) are rejected with a 400. */
|
|
123
120
|
function isCacheableResponsePart(part) {
|
|
124
121
|
if (typeof part !== "object" || part == null || !("type" in part)) return false;
|
|
125
122
|
return part.type === "input_text" || part.type === "input_image" || part.type === "input_file";
|
|
@@ -152,21 +149,16 @@ function addResponseBreakpoint(item) {
|
|
|
152
149
|
content
|
|
153
150
|
};
|
|
154
151
|
}
|
|
155
|
-
/** @internal */
|
|
156
152
|
function addResponseCacheBreakpoints(input) {
|
|
157
153
|
if (!Array.isArray(input)) return input;
|
|
158
154
|
const indexes = new Set(selectCacheBreakpointIndexes(input.map((item) => isResponseMessage(item) ? item.role : void 0), input.map((item) => {
|
|
159
155
|
if (!isResponseMessage(item)) return false;
|
|
160
|
-
/** Only input roles take a Responses breakpoint. Assistant/tool turns
|
|
161
|
-
* carry output content (string or output_text) that the API rejects
|
|
162
|
-
* under an input marker, so they're never eligible. */
|
|
163
156
|
if (!isResponseInputRole(item.role)) return false;
|
|
164
157
|
const content = item.content;
|
|
165
158
|
return typeof content === "string" ? content.length > 0 : Array.isArray(content) && content.some((part) => isCacheableResponsePart(part));
|
|
166
159
|
})));
|
|
167
160
|
return input.map((item, index) => indexes.has(index) ? addResponseBreakpoint(item) : item);
|
|
168
161
|
}
|
|
169
|
-
/** @internal */
|
|
170
162
|
function shouldIncludeEncryptedReasoning(model, params) {
|
|
171
163
|
const reasoningContext = params.reasoning?.context;
|
|
172
164
|
return /^gpt-5\.6(?:-|$)/i.test(model) && (params.store === false || reasoningContext !== "current_turn");
|
|
@@ -219,13 +211,6 @@ const RESPONSES_REPLAY_OUTPUT_ITEM_TYPES = new Set([
|
|
|
219
211
|
function isResponsesReplayOutputItem(item) {
|
|
220
212
|
return typeof item === "object" && item != null && "type" in item && typeof item.type === "string" && RESPONSES_REPLAY_OUTPUT_ITEM_TYPES.has(item.type);
|
|
221
213
|
}
|
|
222
|
-
/**
|
|
223
|
-
* LangChain's Responses converter places the authoritative terminal output in
|
|
224
|
-
* response_metadata.output. Its chunk merge has no way to delete provisional
|
|
225
|
-
* tool_outputs or replay-position sidecars, so remove those preemption-only
|
|
226
|
-
* captures once that terminal output arrives. An interrupted stream has no
|
|
227
|
-
* terminal chunk and keeps the captures for replay.
|
|
228
|
-
*/
|
|
229
214
|
var ResponsesReplayAIMessageChunk = class extends _langchain_core_messages.AIMessageChunk {
|
|
230
215
|
get lc_id() {
|
|
231
216
|
return [...this.lc_namespace, _langchain_core_messages.AIMessageChunk.lc_name()];
|
|
@@ -496,20 +481,6 @@ function getCustomOpenAIClientOptions(owner, options) {
|
|
|
496
481
|
...options
|
|
497
482
|
};
|
|
498
483
|
}
|
|
499
|
-
/**
|
|
500
|
-
* Classifies a generation chunk for the smoothing engine:
|
|
501
|
-
* - splittable: plain visible text (string content equal to `chunk.text`, no
|
|
502
|
-
* logprobs / finish_reason) — sliced adaptively at the pacing cadence.
|
|
503
|
-
* ANY logprobs value blocks splitting here (this family only attaches
|
|
504
|
-
* logprobs on request; the DeepSeek suite pins chunks with them staying
|
|
505
|
-
* intact) — deliberately stricter than `stream/chunkAdapters.ts`, where
|
|
506
|
-
* google-common's always-present empty logprobs must not block.
|
|
507
|
-
* - atomic: text- or reasoning-bearing chunks whose metadata cannot survive
|
|
508
|
-
* slicing — paced as one piece, never split (legacy parity: these were
|
|
509
|
-
* emitted whole but still paced).
|
|
510
|
-
* - passthrough: tool-call deltas, usage-only, finish_reason and other
|
|
511
|
-
* metadata chunks — strict FIFO, zero delay.
|
|
512
|
-
*/
|
|
513
484
|
function toSmoothItem(chunk) {
|
|
514
485
|
const { message } = chunk;
|
|
515
486
|
const isMessageChunk = message instanceof _langchain_core_messages.AIMessageChunk;
|
|
@@ -531,13 +502,6 @@ function toSmoothItem(chunk) {
|
|
|
531
502
|
emit: () => chunk
|
|
532
503
|
};
|
|
533
504
|
}
|
|
534
|
-
/**
|
|
535
|
-
* Usage metadata, additional kwargs and response metadata survive only on
|
|
536
|
-
* the first piece: the aggregator's dict merge concatenates string fields
|
|
537
|
-
* and sums usage, so replication across pieces corrupts them. Unlike the
|
|
538
|
-
* generic adapter, `generationInfo` stays on every piece — per-piece token
|
|
539
|
-
* indices ride in it and `dropRepeatedScalarMetadata` owns repetition there.
|
|
540
|
-
*/
|
|
541
505
|
function cloneGenerationChunkPiece(chunk, piece) {
|
|
542
506
|
if (piece.isFirst && piece.isLast) return chunk;
|
|
543
507
|
const message = chunk.message;
|
|
@@ -563,17 +527,6 @@ function getStreamChunkTokenIndices(chunk) {
|
|
|
563
527
|
completion
|
|
564
528
|
};
|
|
565
529
|
}
|
|
566
|
-
/**
|
|
567
|
-
* Adaptive smoothing adapter for the OpenAI chat-model family, layered over
|
|
568
|
-
* the shared `smoothStream` engine. Keeps the historical signature so every
|
|
569
|
-
* `_streamResponseChunks` call site is unchanged.
|
|
570
|
-
*
|
|
571
|
-
* `seenScalarMetadata`: when provided, de-duplicates repeated scalar metadata
|
|
572
|
-
* just before emitting, so token callbacks and the yielded chunk observe the
|
|
573
|
-
* same cleaned data. Omitted by callers that wrap this stream and finalize
|
|
574
|
-
* downstream (e.g. `ChatOpenRouter`, which needs the raw `finish_reason` as
|
|
575
|
-
* its flush signal and de-duplicates after its own processing).
|
|
576
|
-
*/
|
|
577
530
|
async function* delayStreamChunks(chunks, delay, signal, runManager, seenScalarMetadata) {
|
|
578
531
|
const smoothed = require_smoother.smoothStream({
|
|
579
532
|
source: (async function* () {
|
|
@@ -593,32 +546,11 @@ function createAbortHandler(controller) {
|
|
|
593
546
|
controller.abort();
|
|
594
547
|
};
|
|
595
548
|
}
|
|
596
|
-
/**
|
|
597
|
-
* Formats a tool in either OpenAI format, or LangChain structured tool format
|
|
598
|
-
* into an OpenAI tool format. If the tool is already in OpenAI format, return without
|
|
599
|
-
* any changes. If it is in LangChain structured tool format, convert it to OpenAI tool format
|
|
600
|
-
* using OpenAI's `zodFunction` util, falling back to `convertToOpenAIFunction` if the parameters
|
|
601
|
-
* returned from the `zodFunction` util are not defined.
|
|
602
|
-
*
|
|
603
|
-
* @param {BindToolsInput} tool The tool to convert to an OpenAI tool.
|
|
604
|
-
* @param {Object} [fields] Additional fields to add to the OpenAI tool.
|
|
605
|
-
* @returns {ToolDefinition} The inputted tool in OpenAI tool format.
|
|
606
|
-
*/
|
|
607
|
-
/**
|
|
608
|
-
* OpenAI strict function schemas require every property to appear in
|
|
609
|
-
* `required`. The optional `intent` label (see `tools/intentArg.ts`) is
|
|
610
|
-
* deliberately NOT required — the same schema is callable from programmatic
|
|
611
|
-
* tool calling — so a tool auto-marked `strict: true` (the non-streaming
|
|
612
|
-
* `json_schema` structured-output path) would be rejected as invalid before
|
|
613
|
-
* execution. That path never streams a live label anyway, so the
|
|
614
|
-
* marker-identified property is dropped there; every other path keeps it.
|
|
615
|
-
*/
|
|
616
549
|
function stripIntentFromStrictTools(params) {
|
|
617
550
|
const tools = params.tools;
|
|
618
551
|
if (!Array.isArray(tools) || tools.length === 0) return params;
|
|
619
552
|
const nextTools = tools.map((tool) => {
|
|
620
553
|
const candidate = tool;
|
|
621
|
-
/** Chat-completions tools nest under `function`; responses-API tools are flat. */
|
|
622
554
|
const holder = candidate.function ?? candidate;
|
|
623
555
|
if (holder.strict !== true) return tool;
|
|
624
556
|
const parameters = holder.parameters;
|
|
@@ -692,15 +624,6 @@ var CustomAzureOpenAIClient = class extends openai.AzureOpenAI {
|
|
|
692
624
|
}
|
|
693
625
|
};
|
|
694
626
|
const OFFICIAL_OPENAI_BASE_URL_PATTERN = /^https:\/\/api\.openai\.com(\/|$)/;
|
|
695
|
-
/**
|
|
696
|
-
* Official OpenAI (api.openai.com) and Azure OpenAI Chat Completions streams
|
|
697
|
-
* emit tool-call deltas strictly sequentially by index: once a delta for a
|
|
698
|
-
* later index appears, a prior index's arguments never change. Stamping this
|
|
699
|
-
* adapter lets the stream handler seal a prior call for eager execution the
|
|
700
|
-
* moment the next call begins. OpenAI-compatible endpoints (custom baseURL)
|
|
701
|
-
* must NOT be stamped — e.g. live Kimi/Moonshot streams revise prior-index
|
|
702
|
-
* args after advancing — so callers gate on the wire endpoint, not the class.
|
|
703
|
-
*/
|
|
704
627
|
function stampSequentialStreamedToolCallAdapter(message) {
|
|
705
628
|
if (message instanceof _langchain_core_messages.AIMessageChunk && (message.tool_call_chunks?.length ?? 0) > 0) message.response_metadata = {
|
|
706
629
|
...message.response_metadata,
|
|
@@ -714,14 +637,6 @@ function isOfficialOpenAIBaseURL(baseURL) {
|
|
|
714
637
|
return OFFICIAL_OPENAI_BASE_URL_PATTERN.test(effectiveBaseURL);
|
|
715
638
|
}
|
|
716
639
|
const AZURE_FIRST_PARTY_BASE_PATH_PATTERN = /^https:\/\/[^/]+\.(openai\.azure\.com|cognitiveservices\.azure\.com|api\.cognitive\.microsoft\.com)(:\d+)?(\/|$)/;
|
|
717
|
-
/**
|
|
718
|
-
* Azure OpenAI is first-party when requests resolve to an instance-name
|
|
719
|
-
* endpoint or an *.openai.azure.com / *.cognitiveservices.azure.com /
|
|
720
|
-
* regional *.api.cognitive.microsoft.com base path. A custom
|
|
721
|
-
* `clientConfig.baseURL` or a non-Azure `azureOpenAIBasePath` routes through
|
|
722
|
-
* a proxy or Azure-compatible endpoint whose stream contract is unknown, so
|
|
723
|
-
* those are not stamped.
|
|
724
|
-
*/
|
|
725
640
|
function isFirstPartyAzureEndpoint(args) {
|
|
726
641
|
if (args.baseURL != null && args.baseURL !== "") return false;
|
|
727
642
|
if (args.azureOpenAIBasePath == null || args.azureOpenAIBasePath === "") return true;
|
|
@@ -1211,10 +1126,6 @@ var ChatOpenAI = class extends _langchain_openai.ChatOpenAI {
|
|
|
1211
1126
|
...options
|
|
1212
1127
|
};
|
|
1213
1128
|
}
|
|
1214
|
-
/**
|
|
1215
|
-
* Returns backwards compatible reasoning parameters from constructor params and call options
|
|
1216
|
-
* @internal
|
|
1217
|
-
*/
|
|
1218
1129
|
getReasoningParams(options) {
|
|
1219
1130
|
return getReasoningParams(this.reasoning, options);
|
|
1220
1131
|
}
|
|
@@ -1224,11 +1135,6 @@ var ChatOpenAI = class extends _langchain_openai.ChatOpenAI {
|
|
|
1224
1135
|
async *_streamResponseChunks(messages, options, runManager) {
|
|
1225
1136
|
yield* delayStreamChunks(super._streamResponseChunks(messages, options, void 0), this._lc_stream_delay, options.signal, runManager, /* @__PURE__ */ new Map());
|
|
1226
1137
|
}
|
|
1227
|
-
/**
|
|
1228
|
-
* Raw variant that skips scalar-metadata de-duplication. Used by subclasses
|
|
1229
|
-
* (e.g. `ChatOpenRouter`) that read `finish_reason` as a control signal and
|
|
1230
|
-
* must de-duplicate only after their own finalization.
|
|
1231
|
-
*/
|
|
1232
1138
|
_streamRawResponseChunks(messages, options, runManager) {
|
|
1233
1139
|
return delayStreamChunks(super._streamResponseChunks(messages, options, void 0), this._lc_stream_delay, options.signal, runManager);
|
|
1234
1140
|
}
|
|
@@ -1247,10 +1153,6 @@ var AzureChatOpenAI = class extends _langchain_openai.AzureChatOpenAI {
|
|
|
1247
1153
|
static lc_name() {
|
|
1248
1154
|
return "LibreChatAzureOpenAI";
|
|
1249
1155
|
}
|
|
1250
|
-
/**
|
|
1251
|
-
* Returns backwards compatible reasoning parameters from constructor params and call options
|
|
1252
|
-
* @internal
|
|
1253
|
-
*/
|
|
1254
1156
|
getReasoningParams(options) {
|
|
1255
1157
|
return getGatedReasoningParams(this.model, this.reasoning, options);
|
|
1256
1158
|
}
|
|
@@ -1377,7 +1279,6 @@ var ChatDeepSeek = class extends _langchain_deepseek.ChatDeepSeek {
|
|
|
1377
1279
|
async *_streamResponseChunks(messages, options, runManager) {
|
|
1378
1280
|
yield* delayStreamChunks(this._streamResponseChunksWithReasoning(messages, options, void 0), this._lc_stream_delay, options.signal, runManager, /* @__PURE__ */ new Map());
|
|
1379
1281
|
}
|
|
1380
|
-
/** Parses raw `<think>` fallback tags across chunks and emits sanitized DeepSeek stream chunks. */
|
|
1381
1282
|
async *_streamResponseChunksWithReasoning(messages, options, runManager) {
|
|
1382
1283
|
const stream = this._streamResponseChunksFromReasoningMessages(messages, options);
|
|
1383
1284
|
const thinkStartTag = "<think>";
|