@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":"toolContent.mjs","names":[],"sources":["../../../src/utils/toolContent.ts"],"sourcesContent":["import { isProxy } from 'node:util/types';\nimport { ToolMessage, type BaseMessage } from '@langchain/core/messages';\nimport {\n HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE,\n truncateToolResultContent,\n} from './truncation';\n\ntype ToolContent = BaseMessage['content'];\ntype ToolContentBlock = Exclude<ToolContent, string>[number];\ntype TextToolContentBlock = ToolContentBlock & { type: 'text'; text: string };\n\nconst ATOMIC_CONTENT_TYPES = new Set([\n 'audio',\n 'computer_screenshot',\n 'document',\n 'file',\n 'image',\n 'image_file',\n 'image_url',\n 'input_audio',\n 'input_image',\n 'media',\n 'resource',\n 'resource_link',\n 'video',\n 'video_url',\n]);\nconst MAX_TOOL_CONTENT_TYPE_CHARS = 256;\nconst MAX_PROVIDER_IMAGE_URL_CHARS = 16_384;\nconst MAX_PROVIDER_FILE_ID_CHARS = 4_096;\n\nconst PROVIDER_NATIVE_TOOL_RESULT_TYPES = new Set([\n 'search_result',\n 'server_tool_call_result',\n 'tool_result',\n 'toolResponse',\n 'web_search_result',\n 'web_search_tool_result',\n]);\n\n/**\n * Serializes values that providers render as JSON without throwing on values\n * such as bigint or circular diagnostic metadata.\n */\nexport function serializeStructuredValue(value: unknown): string {\n return serializeStructuredValueBounded(value, Number.MAX_SAFE_INTEGER)\n .content;\n}\n\nconst SERIALIZATION_CHUNK_SIZE = 4_096;\nconst MAX_STRUCTURED_SERIALIZATION_DEPTH = 200;\nconst MAX_STRUCTURED_SERIALIZATION_WORK = 1_000_000;\nconst MAX_STRUCTURED_CHARACTER_WORK = 1_000_000;\nconst MAX_STRUCTURED_PROPERTY_CACHE_ENTRIES = 10_000;\nconst PROXY_VALUE_PLACEHOLDER = '[Proxy value omitted]';\nconst CHARACTER_WORK_PLACEHOLDER =\n '[truncated: character traversal limit exceeded]';\n\ntype StructuredWorkState = {\n remaining: number;\n characterRemaining: number;\n exceeded: boolean;\n failurePlaceholder?: string;\n propertyCache: WeakMap<object, Map<string, unknown>>;\n propertyCacheEntries: number;\n};\n\nfunction createStructuredWorkState(): StructuredWorkState {\n return {\n remaining: MAX_STRUCTURED_SERIALIZATION_WORK,\n characterRemaining: MAX_STRUCTURED_CHARACTER_WORK,\n exceeded: false,\n propertyCache: new WeakMap<object, Map<string, unknown>>(),\n propertyCacheEntries: 0,\n };\n}\n\nfunction consumeStructuredWork(state: StructuredWorkState): boolean {\n if (state.remaining <= 0) {\n state.exceeded = true;\n state.failurePlaceholder ??= '[Traversal limit exceeded]';\n return false;\n }\n state.remaining--;\n return true;\n}\n\nfunction consumeStructuredCharacterWork(state: StructuredWorkState): boolean {\n if (state.characterRemaining <= 0) {\n state.exceeded = true;\n state.failurePlaceholder ??= CHARACTER_WORK_PLACEHOLDER;\n return false;\n }\n state.characterRemaining--;\n return true;\n}\n\nfunction hasExceededStructuredWork(state: StructuredWorkState): boolean {\n return state.exceeded;\n}\n\nfunction conservativeStructuredLength(limit: number): number {\n return limit >= Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : limit + 1;\n}\n\nfunction jsonStringLength(\n value: string,\n limit: number,\n work: StructuredWorkState\n): number {\n let length = 2;\n for (let i = 0; i < value.length; i++) {\n if (!consumeStructuredCharacterWork(work)) {\n return conservativeStructuredLength(limit);\n }\n const code = value.charCodeAt(i);\n if (\n code === 0x08 ||\n code === 0x09 ||\n code === 0x0a ||\n code === 0x0c ||\n code === 0x0d ||\n code === 0x22 ||\n code === 0x5c\n ) {\n length += 2;\n } else if (code < 0x20) {\n length += 6;\n } else if (code >= 0xd800 && code <= 0xdbff) {\n if (!consumeStructuredCharacterWork(work)) {\n return conservativeStructuredLength(limit);\n }\n const next = value.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n length += 2;\n i++;\n } else {\n length += 6;\n }\n } else if (code >= 0xdc00 && code <= 0xdfff) {\n length += 6;\n } else {\n length++;\n }\n if (length > limit) {\n return conservativeStructuredLength(limit);\n }\n }\n return length;\n}\n\ntype NativeDateRead = { matched: true; time: number } | { matched: false };\n\nfunction readNativeArrayBufferByteLength(value: unknown): number | undefined {\n if (\n value == null ||\n typeof value !== 'object' ||\n NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER == null\n ) {\n return undefined;\n }\n try {\n return NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER.call(value) as number;\n } catch {\n return undefined;\n }\n}\n\nfunction readNativeDate(value: unknown): NativeDateRead {\n if (value == null || typeof value !== 'object') {\n return { matched: false };\n }\n try {\n return { matched: true, time: NATIVE_DATE_GET_TIME.call(value) };\n } catch {\n return { matched: false };\n }\n}\n\nfunction readNativeBoxedString(value: object): string | undefined {\n try {\n return String.prototype.valueOf.call(value);\n } catch {\n return undefined;\n }\n}\n\nfunction readNativeBoxedNumber(value: object): number | undefined {\n try {\n return Number.prototype.valueOf.call(value);\n } catch {\n return undefined;\n }\n}\n\nfunction readNativeBoxedBoolean(value: object): boolean | undefined {\n try {\n return Boolean.prototype.valueOf.call(value);\n } catch {\n return undefined;\n }\n}\n\nfunction estimateStructuredChars(\n value: unknown,\n limit = Number.MAX_SAFE_INTEGER,\n ancestors: object[] = [],\n work = createStructuredWorkState(),\n depth = 0\n): number {\n if (hasExceededStructuredWork(work)) {\n return conservativeStructuredLength(limit);\n }\n if (typeof value === 'string') {\n return jsonStringLength(value, limit, work);\n }\n if (typeof value === 'bigint') {\n return jsonStringLength(value.toString(), limit, work);\n }\n if (typeof value === 'number') {\n return Number.isFinite(value) ? String(value === 0 ? 0 : value).length : 4;\n }\n if (typeof value === 'boolean' || value == null) {\n return String(value).length;\n }\n if (isProxy(value)) {\n work.exceeded = true;\n work.failurePlaceholder = PROXY_VALUE_PLACEHOLDER;\n return conservativeStructuredLength(limit);\n }\n if (typeof value === 'undefined' || typeof value === 'function') {\n return 4;\n }\n if (typeof value !== 'object') {\n return jsonStringLength(String(value), limit, work);\n }\n\n const valueIsArray = isArray(value);\n if (!valueIsArray) {\n const arrayBufferByteLength = readNativeArrayBufferByteLength(value);\n if (arrayBufferByteLength != null) {\n if (!isSafeNativeArrayBuffer(value as ArrayBuffer)) {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n return Math.min(\n limit + 1,\n Math.ceil((arrayBufferByteLength * 4) / 3) + 32\n );\n }\n if (ArrayBuffer.isView(value)) {\n const view = readSafeNativeArrayBufferView(\n value,\n undefined,\n undefined,\n false\n );\n if (view == null) {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n return Math.min(limit + 1, Math.ceil((view.byteLength * 4) / 3) + 32);\n }\n const date = readNativeDate(value);\n if (date.matched) {\n if (!isSafeNativeDate(value as Date)) {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n return Number.isFinite(date.time)\n ? jsonStringLength(Date.prototype.toISOString.call(value), limit, work)\n : 4;\n }\n const boxedString = readNativeBoxedString(value);\n if (boxedString != null) {\n return jsonStringLength(boxedString, limit, work);\n }\n const boxedNumber = readNativeBoxedNumber(value);\n if (boxedNumber != null) {\n return Number.isFinite(boxedNumber)\n ? String(boxedNumber === 0 ? 0 : boxedNumber).length\n : 4;\n }\n const boxedBoolean = readNativeBoxedBoolean(value);\n if (boxedBoolean != null) {\n return String(boxedBoolean).length;\n }\n let prototype: object | null;\n try {\n prototype = Object.getPrototypeOf(value) as object | null;\n } catch {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n if (\n isProxy(prototype) ||\n (prototype !== Object.prototype && prototype !== null)\n ) {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n } else {\n let prototype: object | null;\n try {\n prototype = Object.getPrototypeOf(value) as object | null;\n } catch {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n if (\n isProxy(prototype) ||\n (prototype !== Array.prototype && prototype !== null)\n ) {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n }\n if (depth >= MAX_STRUCTURED_SERIALIZATION_DEPTH) {\n return jsonStringLength('[Max serialization depth]', limit, work);\n }\n if (ancestors.includes(value)) {\n return 12;\n }\n\n ancestors.push(value);\n let length = 2;\n try {\n if (valueIsArray) {\n const arrayLength = readStructuredArrayLength(value, work);\n if (arrayLength == null) {\n return conservativeStructuredLength(limit);\n }\n for (let i = 0; i < arrayLength && length <= limit; i++) {\n if (!consumeStructuredWork(work)) {\n return conservativeStructuredLength(limit);\n }\n if (i > 0) {\n length++;\n }\n length += estimateStructuredChars(\n readStructuredProperty(value, i, work),\n Math.max(0, limit - length),\n ancestors,\n work,\n depth + 1\n );\n }\n } else {\n let emitted = 0;\n for (const key in value) {\n if (!consumeStructuredWork(work)) {\n return conservativeStructuredLength(limit);\n }\n if (!Object.prototype.propertyIsEnumerable.call(value, key)) {\n continue;\n }\n if (length > limit) {\n break;\n }\n const nested = readStructuredProperty(\n value as Record<string, unknown>,\n key,\n work\n );\n if (\n typeof nested === 'undefined' ||\n typeof nested === 'function' ||\n typeof nested === 'symbol'\n ) {\n continue;\n }\n if (emitted > 0) {\n length++;\n }\n length += jsonStringLength(key, Math.max(0, limit - length), work) + 1;\n length += estimateStructuredChars(\n nested,\n Math.max(0, limit - length),\n ancestors,\n work,\n depth + 1\n );\n emitted++;\n }\n }\n } catch {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n } finally {\n ancestors.pop();\n }\n if (hasExceededStructuredWork(work)) {\n return conservativeStructuredLength(limit);\n }\n return Math.min(limit + 1, length);\n}\n\ntype StructuredSerializationCollector = {\n totalChars: number;\n prefix: SegmentedStringBuffer;\n suffix: SegmentedStringBuffer;\n prefixLimit: number;\n suffixLimit: number;\n work: StructuredWorkState;\n};\n\ntype SegmentedStringBuffer = {\n segments: string[];\n head: number;\n pending: string[];\n pendingChars: number;\n length: number;\n};\n\nexport type BoundedStructuredSerialization = {\n /** Provider-facing head/tail preview, bounded by `maxChars`. */\n content: string;\n /** Exact serialized prefix up to the defensive traversal-work ceiling. */\n prefix: string;\n /** Exact length, or `Number.MAX_SAFE_INTEGER` when traversal was capped. */\n originalChars: number;\n truncated: boolean;\n};\n\nfunction normalizeCharLimit(limit: number): number {\n return Number.isFinite(limit)\n ? Math.max(0, Math.floor(limit))\n : Number.MAX_SAFE_INTEGER;\n}\n\nfunction createSegmentedStringBuffer(): SegmentedStringBuffer {\n return {\n segments: [],\n head: 0,\n pending: [],\n pendingChars: 0,\n length: 0,\n };\n}\n\nfunction flushSegmentedStringBuffer(buffer: SegmentedStringBuffer): void {\n if (buffer.pendingChars === 0) {\n return;\n }\n buffer.segments.push(buffer.pending.join(''));\n buffer.pending = [];\n buffer.pendingChars = 0;\n}\n\nfunction appendToSegmentedStringBuffer(\n buffer: SegmentedStringBuffer,\n chunk: string\n): void {\n if (chunk.length === 0) {\n return;\n }\n buffer.pending.push(chunk);\n buffer.pendingChars += chunk.length;\n buffer.length += chunk.length;\n if (buffer.pendingChars >= SERIALIZATION_CHUNK_SIZE) {\n flushSegmentedStringBuffer(buffer);\n }\n}\n\nfunction trimSegmentedStringBufferStart(\n buffer: SegmentedStringBuffer,\n chars: number\n): void {\n let remaining = Math.min(chars, buffer.length);\n if (remaining <= 0) {\n return;\n }\n flushSegmentedStringBuffer(buffer);\n while (remaining > 0 && buffer.head < buffer.segments.length) {\n const segment = buffer.segments[buffer.head];\n if (segment.length <= remaining) {\n remaining -= segment.length;\n buffer.length -= segment.length;\n buffer.head++;\n } else {\n buffer.segments[buffer.head] = segment.slice(remaining);\n buffer.length -= remaining;\n remaining = 0;\n }\n }\n if (buffer.head >= 1_024 && buffer.head * 2 >= buffer.segments.length) {\n buffer.segments = buffer.segments.slice(buffer.head);\n buffer.head = 0;\n }\n}\n\nfunction materializeSegmentedStringBuffer(\n buffer: SegmentedStringBuffer\n): string {\n const segments = buffer.segments.slice(buffer.head);\n if (buffer.pendingChars > 0) {\n segments.push(buffer.pending.join(''));\n }\n return segments.join('');\n}\n\nfunction appendSerializedChunk(\n collector: StructuredSerializationCollector,\n chunk: string\n): void {\n if (chunk.length === 0) {\n return;\n }\n\n collector.totalChars += chunk.length;\n\n const prefixRemaining = collector.prefixLimit - collector.prefix.length;\n if (prefixRemaining > 0) {\n appendToSegmentedStringBuffer(\n collector.prefix,\n chunk.slice(0, prefixRemaining)\n );\n }\n\n if (collector.suffixLimit <= 0) {\n return;\n }\n appendToSegmentedStringBuffer(collector.suffix, chunk);\n if (\n collector.suffix.length >=\n collector.suffixLimit + SERIALIZATION_CHUNK_SIZE\n ) {\n trimSegmentedStringBufferStart(\n collector.suffix,\n collector.suffix.length - collector.suffixLimit\n );\n }\n}\n\nfunction appendJsonSafeRange(\n collector: StructuredSerializationCollector,\n value: string,\n start: number,\n end: number\n): void {\n let offset = start;\n while (offset < end) {\n let chunkEnd = Math.min(end, offset + SERIALIZATION_CHUNK_SIZE);\n if (\n chunkEnd < end &&\n chunkEnd > offset &&\n value.charCodeAt(chunkEnd - 1) >= 0xd800 &&\n value.charCodeAt(chunkEnd - 1) <= 0xdbff &&\n value.charCodeAt(chunkEnd) >= 0xdc00 &&\n value.charCodeAt(chunkEnd) <= 0xdfff\n ) {\n chunkEnd--;\n }\n appendSerializedChunk(collector, value.slice(offset, chunkEnd));\n offset = chunkEnd;\n }\n}\n\n/**\n * Emits one JSON string incrementally. Calling JSON.stringify on the complete\n * string would allocate an escaped copy before the output cap could apply.\n */\nfunction appendJsonString(\n collector: StructuredSerializationCollector,\n value: string\n): void {\n if (collector.work.exceeded) {\n appendSerializedChunk(\n collector,\n `\"${collector.work.failurePlaceholder ?? CHARACTER_WORK_PLACEHOLDER}\"`\n );\n return;\n }\n appendSerializedChunk(collector, '\"');\n let safeStart = 0;\n\n for (let i = 0; i < value.length; i++) {\n if (!consumeStructuredCharacterWork(collector.work)) {\n appendJsonSafeRange(collector, value, safeStart, i);\n appendSerializedChunk(collector, `${CHARACTER_WORK_PLACEHOLDER}\"`);\n return;\n }\n const code = value.charCodeAt(i);\n let escaped: string | undefined;\n switch (code) {\n case 0x08:\n escaped = '\\\\b';\n break;\n case 0x09:\n escaped = '\\\\t';\n break;\n case 0x0a:\n escaped = '\\\\n';\n break;\n case 0x0c:\n escaped = '\\\\f';\n break;\n case 0x0d:\n escaped = '\\\\r';\n break;\n case 0x22:\n escaped = '\\\\\"';\n break;\n case 0x5c:\n escaped = '\\\\\\\\';\n break;\n default:\n if (code < 0x20) {\n escaped = `\\\\u${code.toString(16).padStart(4, '0')}`;\n } else if (code >= 0xd800 && code <= 0xdbff) {\n if (!consumeStructuredCharacterWork(collector.work)) {\n appendJsonSafeRange(collector, value, safeStart, i);\n appendSerializedChunk(collector, `${CHARACTER_WORK_PLACEHOLDER}\"`);\n return;\n }\n const next = value.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n i++;\n } else {\n escaped = `\\\\u${code.toString(16).padStart(4, '0')}`;\n }\n } else if (code >= 0xdc00 && code <= 0xdfff) {\n escaped = `\\\\u${code.toString(16).padStart(4, '0')}`;\n }\n }\n\n if (escaped != null) {\n appendJsonSafeRange(collector, value, safeStart, i);\n appendSerializedChunk(collector, escaped);\n safeStart = i + 1;\n }\n }\n appendJsonSafeRange(collector, value, safeStart, value.length);\n appendSerializedChunk(collector, '\"');\n}\n\nfunction readStructuredProperty(\n value: Record<string, unknown> | unknown[],\n key: string | number,\n work: StructuredWorkState\n): unknown {\n const normalizedKey = String(key);\n // Callers still consume traversal work for every occurrence. This bounded\n // cache only avoids re-reading the same descriptor through shared references.\n const cachedProperties = work.propertyCache.get(value);\n if (cachedProperties != null && cachedProperties.has(normalizedKey)) {\n return cachedProperties.get(normalizedKey);\n }\n\n try {\n const descriptor = Object.getOwnPropertyDescriptor(value, normalizedKey);\n let propertyValue: unknown;\n if (descriptor == null) {\n propertyValue = undefined;\n } else if ('value' in descriptor) {\n propertyValue = descriptor.value;\n } else {\n propertyValue = '[Property accessor omitted]';\n }\n if (work.propertyCacheEntries < MAX_STRUCTURED_PROPERTY_CACHE_ENTRIES) {\n const properties = cachedProperties ?? new Map<string, unknown>();\n if (cachedProperties == null) {\n work.propertyCache.set(value, properties);\n }\n properties.set(normalizedKey, propertyValue);\n work.propertyCacheEntries++;\n }\n return propertyValue;\n } catch {\n work.exceeded = true;\n work.remaining = 0;\n return '[Unreadable property omitted]';\n }\n}\n\nfunction readStructuredArrayLength(\n value: unknown[],\n work: StructuredWorkState\n): number | undefined {\n const length = readStructuredProperty(value, 'length', work);\n if (\n typeof length === 'number' &&\n Number.isSafeInteger(length) &&\n length >= 0\n ) {\n return length;\n }\n work.exceeded = true;\n work.remaining = 0;\n return undefined;\n}\n\n/**\n * Provider-neutral JSON writer which deliberately does not invoke `toJSON` or\n * property accessors. Native `JSON.stringify` can invoke both before a replacer\n * can bound their output.\n */\nfunction appendStructuredValue(\n collector: StructuredSerializationCollector,\n value: unknown,\n ancestors: Set<object>,\n depth: number,\n position: 'top' | 'array' | 'object'\n): boolean {\n if (collector.work.exceeded) {\n appendSerializedChunk(\n collector,\n `\"${collector.work.failurePlaceholder ?? CHARACTER_WORK_PLACEHOLDER}\"`\n );\n return true;\n }\n if (typeof value === 'string') {\n appendJsonString(collector, value);\n return true;\n }\n if (typeof value === 'bigint') {\n appendJsonString(collector, value.toString());\n return true;\n }\n if (typeof value === 'number') {\n appendSerializedChunk(\n collector,\n Number.isFinite(value) ? String(value === 0 ? 0 : value) : 'null'\n );\n return true;\n }\n if (typeof value === 'boolean' || value === null) {\n appendSerializedChunk(collector, String(value));\n return true;\n }\n if (isProxy(value)) {\n appendSerializedChunk(collector, `\"${PROXY_VALUE_PLACEHOLDER}\"`);\n collector.work.exceeded = true;\n collector.work.failurePlaceholder = PROXY_VALUE_PLACEHOLDER;\n return true;\n }\n if (\n typeof value === 'undefined' ||\n typeof value === 'function' ||\n typeof value === 'symbol'\n ) {\n if (position === 'object') {\n return false;\n }\n if (position === 'array') {\n appendSerializedChunk(collector, 'null');\n } else if (typeof value === 'undefined') {\n appendSerializedChunk(collector, 'undefined');\n } else {\n appendJsonString(\n collector,\n typeof value === 'function' ? '[Function]' : String(value)\n );\n }\n return true;\n }\n const valueIsArray = isArray(value);\n if (!valueIsArray) {\n const arrayBufferByteLength = readNativeArrayBufferByteLength(value);\n if (arrayBufferByteLength != null) {\n if (!isSafeNativeArrayBuffer(value as ArrayBuffer)) {\n appendSerializedChunk(collector, '\"[Unsafe ArrayBuffer omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n appendJsonString(\n collector,\n `[ArrayBuffer: ${arrayBufferByteLength} bytes]`\n );\n return true;\n }\n if (ArrayBuffer.isView(value)) {\n const view = readSafeNativeArrayBufferView(\n value,\n undefined,\n undefined,\n false\n );\n if (view == null) {\n appendSerializedChunk(collector, '\"[Unsafe ArrayBufferView omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n appendJsonString(collector, `[${view.name}: ${view.byteLength} bytes]`);\n return true;\n }\n const date = readNativeDate(value);\n if (date.matched) {\n if (!isSafeNativeDate(value as Date)) {\n appendSerializedChunk(collector, '\"[Unsafe Date omitted]\"');\n collector.work.exceeded = true;\n } else if (!Number.isFinite(date.time)) {\n appendSerializedChunk(collector, 'null');\n } else {\n appendJsonString(collector, Date.prototype.toISOString.call(value));\n }\n return true;\n }\n const boxedString = readNativeBoxedString(value);\n if (boxedString != null) {\n appendJsonString(collector, boxedString);\n return true;\n }\n const boxedNumber = readNativeBoxedNumber(value);\n if (boxedNumber != null) {\n appendSerializedChunk(\n collector,\n Number.isFinite(boxedNumber)\n ? String(boxedNumber === 0 ? 0 : boxedNumber)\n : 'null'\n );\n return true;\n }\n const boxedBoolean = readNativeBoxedBoolean(value);\n if (boxedBoolean != null) {\n appendSerializedChunk(collector, String(boxedBoolean));\n return true;\n }\n let prototype: object | null;\n try {\n prototype = Object.getPrototypeOf(value) as object | null;\n } catch {\n appendSerializedChunk(collector, '\"[Unreadable object omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n if (\n isProxy(prototype) ||\n (prototype !== Object.prototype && prototype !== null)\n ) {\n appendSerializedChunk(collector, '\"[Unsupported object omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n } else {\n let prototype: object | null;\n try {\n prototype = Object.getPrototypeOf(value) as object | null;\n } catch {\n appendSerializedChunk(collector, '\"[Unreadable array omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n if (\n isProxy(prototype) ||\n (prototype !== Array.prototype && prototype !== null)\n ) {\n appendSerializedChunk(collector, '\"[Unsafe array omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n }\n if (depth >= MAX_STRUCTURED_SERIALIZATION_DEPTH) {\n appendJsonString(collector, '[Max serialization depth]');\n return true;\n }\n if (ancestors.has(value)) {\n appendJsonString(collector, '[Circular]');\n return true;\n }\n\n ancestors.add(value);\n try {\n if (valueIsArray) {\n const arrayLength = readStructuredArrayLength(value, collector.work);\n if (arrayLength == null) {\n appendJsonString(collector, '[Unreadable array omitted]');\n return true;\n }\n appendSerializedChunk(collector, '[');\n for (let i = 0; i < arrayLength; i++) {\n if (!consumeStructuredWork(collector.work)) {\n if (i > 0) {\n appendSerializedChunk(collector, ',');\n }\n appendJsonString(\n collector,\n `[Traversal limit exceeded: ${arrayLength - i} array entries omitted]`\n );\n break;\n }\n if (i > 0) {\n appendSerializedChunk(collector, ',');\n }\n appendStructuredValue(\n collector,\n readStructuredProperty(value, i, collector.work),\n ancestors,\n depth + 1,\n 'array'\n );\n }\n appendSerializedChunk(collector, ']');\n return true;\n }\n\n appendSerializedChunk(collector, '{');\n let emitted = 0;\n // `Object.keys()` allocates an array proportional to the complete object\n // before either output limit applies. Filter a streaming `for…in` walk to\n // retain JSON's own-enumerable-key semantics without that extra array.\n for (const key in value) {\n if (!consumeStructuredWork(collector.work)) {\n if (emitted > 0) {\n appendSerializedChunk(collector, ',');\n }\n appendSerializedChunk(\n collector,\n '\"_truncated\":\"[Traversal limit exceeded]\"'\n );\n break;\n }\n if (!Object.prototype.propertyIsEnumerable.call(value, key)) {\n continue;\n }\n const nested = readStructuredProperty(\n value as Record<string, unknown>,\n key,\n collector.work\n );\n if (\n typeof nested === 'undefined' ||\n typeof nested === 'function' ||\n typeof nested === 'symbol'\n ) {\n continue;\n }\n if (emitted > 0) {\n appendSerializedChunk(collector, ',');\n }\n appendJsonString(collector, key);\n appendSerializedChunk(collector, ':');\n appendStructuredValue(collector, nested, ancestors, depth + 1, 'object');\n emitted++;\n }\n appendSerializedChunk(collector, '}');\n return true;\n } finally {\n ancestors.delete(value);\n }\n}\n\nfunction formatBoundedStructuredContent(\n collector: StructuredSerializationCollector,\n maxChars: number,\n prefix: string,\n suffix: string\n): string {\n if (collector.totalChars <= maxChars) {\n return prefix.slice(0, collector.totalChars);\n }\n\n const indicator = collector.work.exceeded\n ? '\\n\\n… [truncated: safe traversal limit exceeded] …\\n\\n'\n : `\\n\\n… [truncated: ${collector.totalChars} chars exceeded ` +\n `${maxChars} limit] …\\n\\n`;\n const available = maxChars - indicator.length;\n if (available <= 0) {\n return prefix.slice(0, maxChars);\n }\n if (available < 200) {\n return prefix.slice(0, available) + indicator.trimEnd();\n }\n\n const headSize = Math.ceil(available * 0.7);\n const tailSize = available - headSize;\n let headEnd = headSize;\n const headNewline = prefix.lastIndexOf('\\n', headSize);\n if (headNewline > headSize - 200 && headNewline > 0) {\n headEnd = headNewline;\n }\n\n let tailStart = Math.max(0, suffix.length - tailSize);\n const tailNewline = suffix.indexOf('\\n', tailStart);\n if (tailNewline > 0 && tailNewline < tailStart + 200) {\n tailStart = tailNewline + 1;\n }\n\n return prefix.slice(0, headEnd) + indicator + suffix.slice(tailStart);\n}\n\n/**\n * Serializes structured output while retaining at most the requested provider\n * preview and registry prefix. The traversal never calls `toJSON` and never\n * materializes the complete serialized string when it exceeds those limits.\n *\n * `prefixChars` is useful for the tool-output registry: it receives the exact\n * serialized prefix up to `registry.perOutputLimit`, while `content` retains\n * the provider-facing head/tail truncation behavior at `maxChars`. Property\n * accessors are represented by a fixed placeholder instead of being invoked.\n */\nexport function serializeStructuredValueBounded(\n value: unknown,\n maxChars: number,\n prefixChars = 0,\n work = createStructuredWorkState()\n): BoundedStructuredSerialization {\n const normalizedMaxChars = normalizeCharLimit(maxChars);\n const normalizedPrefixChars = normalizeCharLimit(prefixChars);\n const prefixLimit = Math.max(normalizedMaxChars, normalizedPrefixChars);\n const collector: StructuredSerializationCollector = {\n totalChars: 0,\n prefix: createSegmentedStringBuffer(),\n suffix: createSegmentedStringBuffer(),\n prefixLimit,\n suffixLimit:\n normalizedMaxChars === Number.MAX_SAFE_INTEGER ? 0 : normalizedMaxChars,\n work,\n };\n\n try {\n appendStructuredValue(collector, value, new Set<object>(), 0, 'top');\n } catch {\n collector.totalChars = 0;\n collector.prefix = createSegmentedStringBuffer();\n collector.suffix = createSegmentedStringBuffer();\n collector.work.exceeded = true;\n appendSerializedChunk(collector, '\"[Unserializable structured value]\"');\n }\n\n const prefix = materializeSegmentedStringBuffer(collector.prefix);\n const suffix = materializeSegmentedStringBuffer(collector.suffix);\n const originalChars = collector.work.exceeded\n ? Number.MAX_SAFE_INTEGER\n : collector.totalChars;\n return {\n content: formatBoundedStructuredContent(\n collector,\n normalizedMaxChars,\n prefix,\n suffix\n ),\n prefix: prefix.slice(0, normalizedPrefixChars),\n originalChars,\n truncated:\n collector.work.exceeded || collector.totalChars > normalizedMaxChars,\n };\n}\n\nfunction serializeStructuredValueWithinLimit(\n value: unknown,\n maxChars: number,\n work = createStructuredWorkState()\n): string {\n return serializeStructuredValueBounded(value, maxChars, 0, work).content;\n}\n\nfunction isTextBlockUnchecked(value: unknown): value is TextToolContentBlock {\n if (!isRecord(value) || isProxy(value)) {\n return false;\n }\n try {\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n return false;\n }\n const keys = Object.keys(value);\n if (keys.length !== 2 || !keys.includes('type') || !keys.includes('text')) {\n return false;\n }\n const type = readOwnEnumerableDataProperty(value, 'type');\n const text = readOwnEnumerableDataProperty(value, 'text');\n return (\n type.found &&\n type.value === 'text' &&\n text.found &&\n typeof text.value === 'string'\n );\n } catch {\n return false;\n }\n}\n\nfunction isArray(value: unknown): value is unknown[] {\n try {\n return Array.isArray(value);\n } catch {\n return false;\n }\n}\n\nfunction getDenseTextBlockArrayLength(content: unknown[]): number | undefined {\n if (isProxy(content)) {\n return undefined;\n }\n const validation = createToolBlockClassificationContext();\n const containerWork = { value: MAX_ATOMIC_VALIDATION_WORK };\n let contentLength: number;\n try {\n const prototype = Object.getPrototypeOf(content);\n if (\n (prototype !== Array.prototype && prototype !== null) ||\n hasPotentiallyCallableToJSON(\n content,\n containerWork,\n validation.totalRemaining\n )\n ) {\n return undefined;\n }\n contentLength = content.length;\n } catch {\n return undefined;\n }\n if (\n contentLength === 0 ||\n contentLength > MAX_STRUCTURED_SERIALIZATION_WORK\n ) {\n return undefined;\n }\n\n let length = contentLength - 1;\n try {\n for (let i = 0; i < contentLength; i++) {\n const descriptor = Object.getOwnPropertyDescriptor(content, String(i));\n if (descriptor == null || !('value' in descriptor)) {\n return undefined;\n }\n const block = descriptor.value;\n if (\n classifyToolContentBlock(block, validation) !== TOOL_BLOCK_TEXT ||\n validation.totalRemaining.value <= 0\n ) {\n return undefined;\n }\n const text = readOwnEnumerableDataProperty(block, 'text');\n length += typeof text.value === 'string' ? text.value.length : 0;\n if (length >= Number.MAX_SAFE_INTEGER) {\n return Number.MAX_SAFE_INTEGER;\n }\n }\n } catch {\n return undefined;\n }\n return length;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value != null;\n}\n\ntype OwnDataProperty =\n | { found: true; value: unknown }\n | { found: false; value?: never };\n\nfunction readOwnEnumerableDataProperty(\n record: Record<string, unknown>,\n key: string\n): OwnDataProperty {\n try {\n const descriptor = Object.getOwnPropertyDescriptor(record, key);\n if (\n descriptor == null ||\n descriptor.enumerable !== true ||\n !('value' in descriptor)\n ) {\n return { found: false };\n }\n return { found: true, value: descriptor.value };\n } catch {\n return { found: false };\n }\n}\n\nfunction hasString(record: Record<string, unknown>, key: string): boolean {\n const property = readOwnEnumerableDataProperty(record, key);\n return (\n property.found &&\n typeof property.value === 'string' &&\n property.value !== ''\n );\n}\n\nfunction hasValue(record: Record<string, unknown>, key: string): boolean {\n const property = readOwnEnumerableDataProperty(record, key);\n return property.found && property.value !== undefined;\n}\n\nfunction isStringPayload(value: unknown): boolean {\n return typeof value === 'string' && value.length > 0;\n}\n\nfunction isBinaryPayload(value: unknown): boolean {\n if (typeof value === 'string') {\n return value.length > 0;\n }\n if (isArray(value)) {\n return false;\n }\n const arrayBufferByteLength = readNativeArrayBufferByteLength(value);\n if (arrayBufferByteLength != null) {\n return (\n isSafeNativeArrayBuffer(value as ArrayBuffer) && arrayBufferByteLength > 0\n );\n }\n if (ArrayBuffer.isView(value)) {\n const view = readSafeNativeArrayBufferView(value);\n return view != null && view.byteLength > 0;\n }\n return false;\n}\n\nfunction isContentPayload(value: unknown): boolean {\n return isArray(value) && value.length > 0;\n}\n\nfunction hasPayloadPath(\n record: Record<string, unknown>,\n path: string[],\n validator: (value: unknown) => boolean = isBinaryPayload\n): boolean {\n let value: unknown = record;\n for (const key of path) {\n if (!isRecord(value)) {\n return false;\n }\n const property = readOwnEnumerableDataProperty(value, key);\n if (!property.found) {\n return false;\n }\n value = property.value;\n }\n return validator(value);\n}\n\nfunction hasAnyPayloadPath(\n record: Record<string, unknown>,\n paths: string[][],\n validator: (value: unknown) => boolean = isBinaryPayload\n): boolean {\n return paths.some((path) => hasPayloadPath(record, path, validator));\n}\n\nfunction isProviderNativeToolResultBlock(\n record: Record<string, unknown>,\n type: string\n): boolean {\n if (type === 'search_result') {\n return (\n hasString(record, 'title') &&\n hasString(record, 'source') &&\n hasPayloadPath(record, ['content'], isArray)\n );\n }\n if (type === 'web_search_result') {\n return hasString(record, 'url');\n }\n if (type === 'web_search_tool_result') {\n const content = readOwnEnumerableDataProperty(record, 'content');\n return (\n hasString(record, 'tool_use_id') &&\n content.found &&\n (isArray(content.value) || isRecord(content.value))\n );\n }\n if (type === 'tool_result') {\n return hasString(record, 'tool_use_id');\n }\n if (type === 'server_tool_call_result') {\n const status = readOwnEnumerableDataProperty(record, 'status');\n return (\n hasString(record, 'toolCallId') &&\n status.found &&\n (status.value === 'success' || status.value === 'error') &&\n hasValue(record, 'output')\n );\n }\n if (type === 'toolResponse') {\n const response = readOwnEnumerableDataProperty(record, 'toolResponse');\n return response.found && isRecord(response.value);\n }\n return false;\n}\n\nconst MAX_ATOMIC_VALIDATION_WORK = 10_000;\nconst MAX_ATOMIC_VALIDATION_DEPTH = 50;\ntype AtomicValidationWork = { value: number };\nconst NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER = Object.getOwnPropertyDescriptor(\n ArrayBuffer.prototype,\n 'byteLength'\n)?.get;\nconst NATIVE_TYPED_ARRAY_PROTOTYPE = Object.getPrototypeOf(\n Uint8Array.prototype\n) as object;\nconst NATIVE_TYPED_ARRAY_BYTE_LENGTH_GETTER = Object.getOwnPropertyDescriptor(\n NATIVE_TYPED_ARRAY_PROTOTYPE,\n 'byteLength'\n)?.get;\nconst NATIVE_DATA_VIEW_BYTE_LENGTH_GETTER = Object.getOwnPropertyDescriptor(\n DataView.prototype,\n 'byteLength'\n)?.get;\nconst NATIVE_ARRAY_BUFFER_VIEW_NAMES = new Map<object, string>([\n [Buffer.prototype, 'Buffer'],\n [DataView.prototype, 'DataView'],\n [Int8Array.prototype, 'Int8Array'],\n [Uint8Array.prototype, 'Uint8Array'],\n [Uint8ClampedArray.prototype, 'Uint8ClampedArray'],\n [Int16Array.prototype, 'Int16Array'],\n [Uint16Array.prototype, 'Uint16Array'],\n [Int32Array.prototype, 'Int32Array'],\n [Uint32Array.prototype, 'Uint32Array'],\n [Float32Array.prototype, 'Float32Array'],\n [Float64Array.prototype, 'Float64Array'],\n [BigInt64Array.prototype, 'BigInt64Array'],\n [BigUint64Array.prototype, 'BigUint64Array'],\n]);\nconst NATIVE_DATE_GET_TIME = Date.prototype.getTime;\nconst NATIVE_DATE_TO_JSON = Date.prototype.toJSON;\nconst NATIVE_DATE_TO_ISO_STRING = Date.prototype.toISOString;\nconst NATIVE_DATE_VALUE_OF = Date.prototype.valueOf;\nconst NATIVE_DATE_TO_STRING = Date.prototype.toString;\nconst NATIVE_DATE_TO_PRIMITIVE = Date.prototype[Symbol.toPrimitive];\nconst NATIVE_DATE_PROTOTYPE_METHODS: ReadonlyArray<\n readonly [PropertyKey, unknown]\n> = [\n ['getTime', NATIVE_DATE_GET_TIME],\n ['toJSON', NATIVE_DATE_TO_JSON],\n ['toISOString', NATIVE_DATE_TO_ISO_STRING],\n ['valueOf', NATIVE_DATE_VALUE_OF],\n ['toString', NATIVE_DATE_TO_STRING],\n [Symbol.toPrimitive, NATIVE_DATE_TO_PRIMITIVE],\n];\n\nfunction consumeAtomicValidationWork(\n remaining: AtomicValidationWork,\n totalRemaining: AtomicValidationWork | undefined,\n amount = 1\n): boolean {\n if (\n amount > remaining.value ||\n (totalRemaining != null && amount > totalRemaining.value)\n ) {\n remaining.value = 0;\n if (totalRemaining != null) {\n totalRemaining.value = 0;\n }\n return false;\n }\n remaining.value -= amount;\n if (totalRemaining != null) {\n totalRemaining.value -= amount;\n }\n return true;\n}\n\nfunction hasPotentiallyCallableToJSON(\n value: object,\n remaining?: AtomicValidationWork,\n totalRemaining?: AtomicValidationWork\n): boolean {\n let current: object | null = value;\n const seen = new Set<object>();\n for (let depth = 0; current != null && depth < 100; depth++) {\n if (isProxy(current)) {\n return true;\n }\n if (\n remaining != null &&\n !consumeAtomicValidationWork(remaining, totalRemaining)\n ) {\n return true;\n }\n if (seen.has(current)) {\n return true;\n }\n seen.add(current);\n const descriptor = Object.getOwnPropertyDescriptor(current, 'toJSON');\n if (descriptor != null) {\n return (\n typeof descriptor.value === 'function' ||\n typeof descriptor.get === 'function'\n );\n }\n current = Object.getPrototypeOf(current) as object | null;\n }\n return current != null;\n}\n\ntype NativeArrayBufferViewRead = {\n byteLength: number;\n name: string;\n};\n\nfunction readSafeNativeArrayBufferView(\n value: ArrayBufferView,\n remaining?: AtomicValidationWork,\n totalRemaining?: AtomicValidationWork,\n rejectCallableToJSON = true\n): NativeArrayBufferViewRead | undefined {\n try {\n const prototype = Object.getPrototypeOf(value) as object | null;\n if (prototype == null || isProxy(prototype)) {\n return undefined;\n }\n const name = NATIVE_ARRAY_BUFFER_VIEW_NAMES.get(prototype);\n if (\n name == null ||\n Object.getOwnPropertyDescriptor(value, 'byteLength') != null ||\n Object.getOwnPropertyDescriptor(value, 'constructor') != null ||\n Object.getOwnPropertyDescriptor(value, 'toJSON') != null ||\n (rejectCallableToJSON &&\n hasPotentiallyCallableToJSON(value, remaining, totalRemaining))\n ) {\n return undefined;\n }\n const getter =\n prototype === DataView.prototype\n ? NATIVE_DATA_VIEW_BYTE_LENGTH_GETTER\n : NATIVE_TYPED_ARRAY_BYTE_LENGTH_GETTER;\n if (getter == null) {\n return undefined;\n }\n const byteLength = getter.call(value) as number;\n return Number.isSafeInteger(byteLength) && byteLength >= 0\n ? { byteLength, name }\n : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction isSafeNativeArrayBuffer(\n value: ArrayBuffer,\n remaining?: AtomicValidationWork,\n totalRemaining?: AtomicValidationWork\n): boolean {\n try {\n if (\n Object.getPrototypeOf(value) !== ArrayBuffer.prototype ||\n NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER == null ||\n Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength')\n ?.get !== NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER ||\n hasPotentiallyCallableToJSON(value, remaining, totalRemaining)\n ) {\n return false;\n }\n NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER.call(value);\n for (const key in value) {\n if (\n remaining != null &&\n !consumeAtomicValidationWork(remaining, totalRemaining)\n ) {\n return false;\n }\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n return false;\n }\n }\n return Object.getOwnPropertyDescriptor(value, 'byteLength') == null;\n } catch {\n return false;\n }\n}\n\nfunction isSafeNativeDate(value: Date): boolean {\n try {\n if (Object.getPrototypeOf(value) !== Date.prototype) {\n return false;\n }\n NATIVE_DATE_GET_TIME.call(value);\n for (const [key, nativeMethod] of NATIVE_DATE_PROTOTYPE_METHODS) {\n if (\n Object.getOwnPropertyDescriptor(value, key) != null ||\n Object.getOwnPropertyDescriptor(Date.prototype, key)?.value !==\n nativeMethod\n ) {\n return false;\n }\n }\n return true;\n } catch {\n return false;\n }\n}\n\nfunction hasUnsafeCallableToJSON(\n value: unknown,\n seen = new Set<object>(),\n remaining = { value: MAX_ATOMIC_VALIDATION_WORK },\n depth = 0,\n totalRemaining?: AtomicValidationWork\n): boolean {\n if (isProxy(value)) {\n return true;\n }\n if (!isRecord(value)) {\n return false;\n }\n if (\n seen.has(value) ||\n depth >= MAX_ATOMIC_VALIDATION_DEPTH ||\n !consumeAtomicValidationWork(remaining, totalRemaining)\n ) {\n return true;\n }\n const valueIsArray = isArray(value);\n if (!valueIsArray) {\n const arrayBufferByteLength = readNativeArrayBufferByteLength(value);\n if (arrayBufferByteLength != null) {\n return !isSafeNativeArrayBuffer(\n value as unknown as ArrayBuffer,\n remaining,\n totalRemaining\n );\n }\n const date = readNativeDate(value);\n if (date.matched) {\n return !isSafeNativeDate(value as unknown as Date);\n }\n if (ArrayBuffer.isView(value)) {\n return (\n readSafeNativeArrayBufferView(value, remaining, totalRemaining) == null\n );\n }\n }\n\n seen.add(value);\n try {\n if (hasPotentiallyCallableToJSON(value, remaining, totalRemaining)) {\n return true;\n }\n if (valueIsArray) {\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Array.prototype && prototype !== null) {\n return true;\n }\n const lengthDescriptor = Object.getOwnPropertyDescriptor(value, 'length');\n const length = lengthDescriptor?.value;\n if (\n typeof length !== 'number' ||\n !Number.isSafeInteger(length) ||\n length < 0 ||\n !consumeAtomicValidationWork(remaining, totalRemaining, length)\n ) {\n return true;\n }\n for (let i = 0; i < length; i++) {\n const descriptor = Object.getOwnPropertyDescriptor(value, String(i));\n if (\n descriptor == null ||\n typeof descriptor.get === 'function' ||\n typeof descriptor.set === 'function'\n ) {\n return true;\n }\n if (\n hasUnsafeCallableToJSON(\n descriptor.value,\n seen,\n remaining,\n depth + 1,\n totalRemaining\n )\n ) {\n return true;\n }\n }\n return false;\n }\n\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n return true;\n }\n for (const key in value) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor == null) {\n return true;\n }\n if (descriptor.enumerable !== true) {\n continue;\n }\n if (\n typeof descriptor.get === 'function' ||\n typeof descriptor.set === 'function' ||\n !consumeAtomicValidationWork(remaining, totalRemaining)\n ) {\n return true;\n }\n if (\n hasUnsafeCallableToJSON(\n descriptor.value,\n seen,\n remaining,\n depth + 1,\n totalRemaining\n )\n ) {\n return true;\n }\n }\n return false;\n } catch {\n return true;\n } finally {\n seen.delete(value);\n }\n}\n\nexport function isAtomicToolContentBlock(value: unknown): boolean {\n try {\n return (\n !hasUnsafeCallableToJSON(value) &&\n isAtomicToolContentBlockUnchecked(value)\n );\n } catch {\n return false;\n }\n}\n\nfunction isAtomicToolContentBlockUnchecked(value: unknown): boolean {\n if (!isRecord(value)) {\n return false;\n }\n const record = value;\n const typeProperty = readOwnEnumerableDataProperty(record, 'type');\n if (!typeProperty.found) {\n const cachePointProperty = readOwnEnumerableDataProperty(\n record,\n 'cachePoint'\n );\n if (!cachePointProperty.found || !isRecord(cachePointProperty.value)) {\n return false;\n }\n const cachePointType = readOwnEnumerableDataProperty(\n cachePointProperty.value,\n 'type'\n );\n return cachePointType.found && cachePointType.value === 'default';\n }\n const type = typeof typeProperty.value === 'string' ? typeProperty.value : '';\n if (type.length > MAX_TOOL_CONTENT_TYPE_CHARS) {\n return false;\n }\n const slashIndex = type.indexOf('/');\n const isMimeType =\n slashIndex > 0 &&\n slashIndex < type.length - 1 &&\n slashIndex === type.lastIndexOf('/');\n if (\n !ATOMIC_CONTENT_TYPES.has(type) &&\n !PROVIDER_NATIVE_TOOL_RESULT_TYPES.has(type) &&\n !isMimeType\n ) {\n return false;\n }\n\n if (PROVIDER_NATIVE_TOOL_RESULT_TYPES.has(type)) {\n return isProviderNativeToolResultBlock(record, type);\n }\n\n if (type === 'computer_screenshot') {\n return hasAnyPayloadPath(\n record,\n [['image_url'], ['file_id']],\n isStringPayload\n );\n }\n if (type === 'input_image') {\n return hasAnyPayloadPath(\n record,\n [['image_url'], ['file_id']],\n isStringPayload\n );\n }\n if (type === 'image_url') {\n return hasAnyPayloadPath(\n record,\n [['image_url'], ['image_url', 'url']],\n isStringPayload\n );\n }\n if (type === 'image_file') {\n return hasAnyPayloadPath(\n record,\n [\n ['image_file', 'file_id'],\n ['image_file', 'fileId'],\n ],\n isStringPayload\n );\n }\n if (type === 'input_audio') {\n return hasAnyPayloadPath(record, [\n ['input_audio', 'data'],\n ['input_audio', 'bytes'],\n ]);\n }\n if (type === 'resource_link') {\n return hasString(record, 'uri');\n }\n if (type === 'video_url') {\n return hasAnyPayloadPath(\n record,\n [['video_url'], ['video_url', 'url']],\n isStringPayload\n );\n }\n if (type === 'resource') {\n return (\n hasAnyPayloadPath(record, [\n ['resource', 'blob'],\n ['resource', 'bytes'],\n ['resource', 'data'],\n ['resource', 'text'],\n ]) || hasPayloadPath(record, ['resource', 'content'], isContentPayload)\n );\n }\n\n if (isMimeType) {\n return hasPayloadPath(record, ['data'], isStringPayload);\n }\n\n if (type === 'image' || type === 'audio' || type === 'video') {\n return hasAnyPayloadPath(record, [\n ['data'],\n ['bytes'],\n ['url'],\n ['source', 'data'],\n ['source', 'bytes'],\n ['source', 'url'],\n [type, 'data'],\n [type, 'bytes'],\n [type, 'url'],\n [type, 'source', 'data'],\n [type, 'source', 'bytes'],\n [type, 'source', 'url'],\n ]);\n }\n\n if (type === 'media') {\n const hasMimeType =\n hasString(record, 'mimeType') || hasString(record, 'mime_type');\n return (\n hasMimeType &&\n hasAnyPayloadPath(record, [\n ['data'],\n ['bytes'],\n ['fileUri'],\n ['media', 'data'],\n ['media', 'bytes'],\n ['media', 'fileUri'],\n ['media', 'source', 'bytes'],\n ])\n );\n }\n\n if (type === 'document' || type === 'file') {\n const nestedType = type;\n return (\n hasAnyPayloadPath(record, [\n ['data'],\n ['bytes'],\n ['url'],\n ['file_data'],\n ['file_id'],\n ['fileId'],\n ['fileUri'],\n ['source', 'data'],\n ['source', 'bytes'],\n ['source', 'url'],\n ['source', 'file_data'],\n ['source', 'file_id'],\n ['source', 'fileId'],\n ['source', 'fileUri'],\n [nestedType, 'data'],\n [nestedType, 'bytes'],\n [nestedType, 'url'],\n [nestedType, 'file_data'],\n [nestedType, 'file_id'],\n [nestedType, 'fileId'],\n [nestedType, 'fileUri'],\n [nestedType, 'source', 'data'],\n [nestedType, 'source', 'bytes'],\n [nestedType, 'source', 'url'],\n ]) ||\n hasPayloadPath(record, ['source', 'content'], isContentPayload) ||\n hasPayloadPath(\n record,\n [nestedType, 'source', 'content'],\n isContentPayload\n ) ||\n (readOwnEnumerableDataProperty(record, 'source_type').value === 'text' &&\n hasString(record, 'text')) ||\n (readOwnEnumerableDataProperty(record, 'source_type').value === 'id' &&\n hasString(record, 'id'))\n );\n }\n\n return false;\n}\n\nconst TOOL_BLOCK_OPAQUE = 0;\nconst TOOL_BLOCK_TEXT = 1;\nconst TOOL_BLOCK_ATOMIC = 2;\n\ntype ToolBlockClassificationContext = {\n totalRemaining: AtomicValidationWork;\n cache: WeakMap<object, number>;\n};\n\nfunction createToolBlockClassificationContext(): ToolBlockClassificationContext {\n return {\n totalRemaining: { value: MAX_STRUCTURED_SERIALIZATION_WORK },\n cache: new WeakMap<object, number>(),\n };\n}\n\nfunction classifyToolContentBlock(\n value: unknown,\n context: ToolBlockClassificationContext\n): number {\n if (isRecord(value)) {\n const cached = context.cache.get(value);\n if (cached != null) {\n return cached;\n }\n }\n const remaining = { value: MAX_ATOMIC_VALIDATION_WORK };\n let kind = TOOL_BLOCK_OPAQUE;\n try {\n if (\n hasUnsafeCallableToJSON(\n value,\n new Set<object>(),\n remaining,\n 0,\n context.totalRemaining\n )\n ) {\n kind = TOOL_BLOCK_OPAQUE;\n } else if (isAtomicToolContentBlockUnchecked(value)) {\n kind = TOOL_BLOCK_ATOMIC;\n } else {\n kind = isTextBlockUnchecked(value) ? TOOL_BLOCK_TEXT : TOOL_BLOCK_OPAQUE;\n }\n } catch {\n kind = TOOL_BLOCK_OPAQUE;\n }\n if (isRecord(value) && context.totalRemaining.value > 0) {\n context.cache.set(value, kind);\n }\n return kind;\n}\n\n/**\n * Produces the text representation providers use for structured tool results.\n * Text-only block arrays stay readable; opaque blocks use canonical JSON.\n */\nexport function serializeToolContent(content: unknown): string {\n if (typeof content === 'string') {\n return content;\n }\n if (!isArray(content)) {\n return serializeStructuredValue(content);\n }\n if (getDenseTextBlockArrayLength(content) != null) {\n return (content as TextToolContentBlock[])\n .map((block) => block.text)\n .join('\\n');\n }\n return serializeStructuredValue(content);\n}\n\nexport function getToolContentCharLength(content: unknown): number {\n if (typeof content === 'string') {\n return content.length;\n }\n if (isArray(content)) {\n const denseTextLength = getDenseTextBlockArrayLength(content);\n if (denseTextLength != null) {\n return denseTextLength;\n }\n }\n try {\n return estimateStructuredChars(content);\n } catch {\n return Number.MAX_SAFE_INTEGER;\n }\n}\n\n/**\n * Produces provider-facing tool-result text without ever exceeding `maxChars`.\n */\nexport function serializeToolContentBounded(\n content: unknown,\n maxChars: number\n): string {\n const normalizedMaxChars = normalizeCharLimit(maxChars);\n if (typeof content === 'string') {\n return truncateToolResultContent(content, normalizedMaxChars);\n }\n if (!isArray(content)) {\n return serializeStructuredValueWithinLimit(content, normalizedMaxChars);\n }\n\n const originalChars = getDenseTextBlockArrayLength(content);\n if (originalChars == null) {\n return serializeStructuredValueWithinLimit(content, normalizedMaxChars);\n }\n return serializeDenseTextBlocksWithinLimit(\n content as TextToolContentBlock[],\n originalChars,\n normalizedMaxChars\n );\n}\n\nfunction serializeDenseTextBlocksWithinLimit(\n textBlocks: readonly TextToolContentBlock[],\n originalChars: number,\n normalizedMaxChars: number\n): string {\n if (originalChars <= normalizedMaxChars) {\n return textBlocks.map((block) => block.text).join('\\n');\n }\n const indicator =\n `\\n\\n… [truncated: ${originalChars} chars exceeded ` +\n `${normalizedMaxChars} limit] …`;\n const available = Math.max(0, normalizedMaxChars - indicator.length);\n let preview = '';\n for (let i = 0; i < textBlocks.length && preview.length < available; i++) {\n if (i > 0) {\n preview += '\\n';\n }\n preview += textBlocks[i].text.slice(0, available - preview.length);\n }\n return (preview + indicator).slice(0, normalizedMaxChars);\n}\n\nexport type CompactToolContentResult = {\n content: ToolContent;\n changed: boolean;\n originalChars: number;\n};\n\nfunction isProviderImageUrl(value: unknown): value is string {\n if (typeof value !== 'string' || value === '') {\n return false;\n }\n const isDataImage = value.startsWith('data:image/');\n if (\n value.length >\n (isDataImage\n ? HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE\n : MAX_PROVIDER_IMAGE_URL_CHARS)\n ) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n if (code <= 0x20 || code === 0x7f) {\n return false;\n }\n }\n if (isDataImage) {\n const separator = value.indexOf(',');\n if (\n separator < 0 ||\n !value.slice(0, separator).toLowerCase().endsWith(';base64')\n ) {\n return false;\n }\n const payload = value.slice(separator + 1);\n return (\n payload.length > 0 &&\n payload.length % 4 === 0 &&\n /^[a-z0-9+/]+={0,2}$/i.test(payload)\n );\n }\n try {\n const url = new URL(value);\n return url.protocol === 'http:' || url.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\nfunction isProviderFileId(value: unknown): value is string {\n return (\n typeof value === 'string' &&\n value.length <= MAX_PROVIDER_FILE_ID_CHARS &&\n /^file[-_][a-z0-9_-]+$/i.test(value)\n );\n}\n\nfunction hasOnlyEnumerableKeys(\n record: Record<string, unknown>,\n allowed: ReadonlySet<string>\n): boolean {\n try {\n const keys = Object.keys(record);\n return keys.every((key) => allowed.has(key));\n } catch {\n return false;\n }\n}\n\nexport type CacheControlledTextToolContent = [\n {\n type: 'text';\n text: string;\n cache_control: { type: 'ephemeral'; ttl?: '1h' };\n },\n];\n\nconst SINGLE_TEXT_TOOL_CONTENT_KEYS = new Set(['type', 'text']);\nconst CACHE_CONTROLLED_TEXT_TOOL_CONTENT_KEYS = new Set([\n 'type',\n 'text',\n 'cache_control',\n]);\nconst CACHE_CONTROL_KEYS = new Set(['type', 'ttl']);\n\nfunction hasSafePlainPrototype(value: object): boolean {\n try {\n const prototype = Object.getPrototypeOf(value) as object | null;\n return (\n (prototype === Object.prototype || prototype === null) &&\n !hasPotentiallyCallableToJSON(value)\n );\n } catch {\n return false;\n }\n}\n\nfunction readSafeArrayItem(\n content: unknown,\n expectedLength: number,\n index: number\n): OwnDataProperty {\n if (!isArray(content) || isProxy(content)) {\n return { found: false };\n }\n try {\n const length = Object.getOwnPropertyDescriptor(content, 'length');\n if (length?.value !== expectedLength) {\n return { found: false };\n }\n const prototype = Object.getPrototypeOf(content) as object | null;\n if (\n (prototype !== Array.prototype && prototype !== null) ||\n hasPotentiallyCallableToJSON(content)\n ) {\n return { found: false };\n }\n const item = Object.getOwnPropertyDescriptor(content, String(index));\n if (item?.enumerable !== true || !('value' in item)) {\n return { found: false };\n }\n return { found: true, value: item.value };\n } catch {\n return { found: false };\n }\n}\n\n/** Reads one safe text block and returns its bounded text payload. */\nexport function getBoundedSingleTextToolContent(\n content: unknown,\n maxChars: number\n): string | undefined {\n const block = readSafeArrayItem(content, 1, 0);\n if (\n !block.found ||\n !isRecord(block.value) ||\n isProxy(block.value) ||\n !hasSafePlainPrototype(block.value) ||\n !hasOnlyEnumerableKeys(block.value, SINGLE_TEXT_TOOL_CONTENT_KEYS)\n ) {\n return undefined;\n }\n const type = readOwnEnumerableDataProperty(block.value, 'type');\n const text = readOwnEnumerableDataProperty(block.value, 'text');\n if (\n !type.found ||\n type.value !== 'text' ||\n !text.found ||\n typeof text.value !== 'string'\n ) {\n return undefined;\n }\n const normalizedMaxChars = Number.isFinite(maxChars)\n ? Math.max(0, Math.floor(maxChars))\n : Number.MAX_SAFE_INTEGER;\n return truncateToolResultContent(text.value, normalizedMaxChars);\n}\n\n/**\n * Canonicalizes the single cache-decorated text block produced by tail prompt\n * caching without invoking accessors or custom serialization hooks.\n */\nexport function getBoundedCacheControlledTextToolContent(\n content: unknown,\n maxChars: number\n): CacheControlledTextToolContent | undefined {\n const block = readSafeArrayItem(content, 1, 0);\n if (\n !block.found ||\n !isRecord(block.value) ||\n isProxy(block.value) ||\n !hasSafePlainPrototype(block.value) ||\n !hasOnlyEnumerableKeys(block.value, CACHE_CONTROLLED_TEXT_TOOL_CONTENT_KEYS)\n ) {\n return undefined;\n }\n const type = readOwnEnumerableDataProperty(block.value, 'type');\n const text = readOwnEnumerableDataProperty(block.value, 'text');\n const cacheControl = readOwnEnumerableDataProperty(\n block.value,\n 'cache_control'\n );\n if (\n !type.found ||\n type.value !== 'text' ||\n !text.found ||\n typeof text.value !== 'string' ||\n !cacheControl.found ||\n !isRecord(cacheControl.value) ||\n isProxy(cacheControl.value) ||\n !hasSafePlainPrototype(cacheControl.value) ||\n !hasOnlyEnumerableKeys(cacheControl.value, CACHE_CONTROL_KEYS)\n ) {\n return undefined;\n }\n\n const cacheType = readOwnEnumerableDataProperty(cacheControl.value, 'type');\n const ttl = readOwnEnumerableDataProperty(cacheControl.value, 'ttl');\n let hasOwnTtl: boolean;\n try {\n hasOwnTtl =\n Object.getOwnPropertyDescriptor(cacheControl.value, 'ttl') != null;\n } catch {\n return undefined;\n }\n if (\n !cacheType.found ||\n cacheType.value !== 'ephemeral' ||\n (hasOwnTtl && (!ttl.found || ttl.value !== '1h'))\n ) {\n return undefined;\n }\n\n const normalizedMaxChars = Number.isFinite(maxChars)\n ? Math.max(0, Math.floor(maxChars))\n : Number.MAX_SAFE_INTEGER;\n return [\n {\n type: 'text',\n text: truncateToolResultContent(text.value, normalizedMaxChars),\n cache_control: {\n type: 'ephemeral',\n ...(ttl.found ? { ttl: '1h' as const } : {}),\n },\n },\n ];\n}\n\nexport type ComputerCallOutputScreenshot =\n | { type: 'input_image'; image_url: string; detail?: InputImageDetail }\n | { type: 'input_image'; file_id: string; detail?: InputImageDetail }\n | { type: 'computer_screenshot'; image_url: string }\n | { type: 'computer_screenshot'; file_id: string };\n\ntype InputImageDetail = 'low' | 'high' | 'auto' | 'original';\n\nconst INPUT_IMAGE_KEYS = new Set(['type', 'image_url', 'file_id', 'detail']);\nconst COMPUTER_SCREENSHOT_KEYS = new Set(['type', 'image_url', 'file_id']);\nconst IMAGE_URL_KEYS = new Set(['type', 'image_url', 'detail']);\nconst NESTED_IMAGE_URL_KEYS = new Set(['url', 'detail']);\nconst INPUT_IMAGE_DETAILS = new Set(['low', 'high', 'auto', 'original']);\n\n/**\n * Selects the exact screenshot shape accepted by LangChain's Responses\n * converter without invoking accessors or user-defined serialization hooks.\n */\nexport function getComputerCallOutputScreenshot(\n content: unknown\n): ComputerCallOutputScreenshot | undefined {\n if (isProviderImageUrl(content)) {\n return { type: 'input_image', image_url: content };\n }\n if (\n !isArray(content) ||\n hasUnsafeCallableToJSON(content) ||\n content.length !== 1\n ) {\n return undefined;\n }\n\n const descriptor = Object.getOwnPropertyDescriptor(content, '0');\n if (descriptor == null || !('value' in descriptor)) {\n return undefined;\n }\n const block = descriptor.value;\n if (!isRecord(block)) {\n return undefined;\n }\n const type = readOwnEnumerableDataProperty(block, 'type');\n if (!type.found) {\n return undefined;\n }\n const imageUrl = readOwnEnumerableDataProperty(block, 'image_url');\n const fileId = readOwnEnumerableDataProperty(block, 'file_id');\n const validImageUrl =\n imageUrl.found && isProviderImageUrl(imageUrl.value)\n ? imageUrl.value\n : undefined;\n const validFileId =\n fileId.found && isProviderFileId(fileId.value) ? fileId.value : undefined;\n const hasImageUrl = validImageUrl != null;\n const hasFileId = validFileId != null;\n\n if (\n type.value === 'input_image' &&\n hasOnlyEnumerableKeys(block, INPUT_IMAGE_KEYS)\n ) {\n if (\n (imageUrl.found && !hasImageUrl) ||\n (fileId.found && !hasFileId) ||\n hasImageUrl === hasFileId\n ) {\n return undefined;\n }\n const detail = readOwnEnumerableDataProperty(block, 'detail');\n if (\n detail.found &&\n (typeof detail.value !== 'string' ||\n !INPUT_IMAGE_DETAILS.has(detail.value))\n ) {\n return undefined;\n }\n return hasImageUrl\n ? {\n type: 'input_image',\n image_url: validImageUrl,\n ...(detail.found ? { detail: detail.value as InputImageDetail } : {}),\n }\n : {\n type: 'input_image',\n file_id: validFileId as string,\n ...(detail.found ? { detail: detail.value as InputImageDetail } : {}),\n };\n }\n if (\n type.value === 'computer_screenshot' &&\n hasOnlyEnumerableKeys(block, COMPUTER_SCREENSHOT_KEYS)\n ) {\n if (\n (imageUrl.found && !hasImageUrl) ||\n (fileId.found && !hasFileId) ||\n hasImageUrl === hasFileId\n ) {\n return undefined;\n }\n return hasImageUrl\n ? { type: 'computer_screenshot', image_url: validImageUrl }\n : {\n type: 'computer_screenshot',\n file_id: validFileId as string,\n };\n }\n if (\n type.value === 'image_url' &&\n !fileId.found &&\n hasOnlyEnumerableKeys(block, IMAGE_URL_KEYS)\n ) {\n if (hasImageUrl) {\n return { type: 'input_image', image_url: validImageUrl };\n }\n if (\n imageUrl.found &&\n isRecord(imageUrl.value) &&\n hasOnlyEnumerableKeys(imageUrl.value, NESTED_IMAGE_URL_KEYS)\n ) {\n const url = readOwnEnumerableDataProperty(imageUrl.value, 'url');\n if (url.found && isProviderImageUrl(url.value)) {\n return { type: 'input_image', image_url: url.value };\n }\n }\n }\n return undefined;\n}\n\n/** Returns the provider image URL when a screenshot is URL-backed. */\nexport function getComputerCallOutputImageUrl(\n content: unknown\n): string | undefined {\n const screenshot = getComputerCallOutputScreenshot(content);\n return screenshot != null && 'image_url' in screenshot\n ? screenshot.image_url\n : undefined;\n}\n\n/** Returns whether content can be sent as a native computer screenshot. */\nexport function isComputerCallOutputContent(\n content: unknown\n): content is ToolContent {\n return getComputerCallOutputScreenshot(content) != null;\n}\n\n/** Returns whether a ToolMessage carries the native computer-output marker. */\nexport function hasComputerCallOutputMarker(message: BaseMessage): boolean {\n try {\n if (message.getType() !== 'tool') {\n return false;\n }\n const metadata = message.additional_kwargs as unknown;\n if (!isRecord(metadata)) {\n return false;\n }\n const type = readOwnEnumerableDataProperty(metadata, 'type');\n return type.found && type.value === 'computer_call_output';\n } catch {\n return false;\n }\n}\n\n/** Native Responses computer screenshots are indivisible provider payloads. */\nexport function isComputerCallOutputMessage(message: BaseMessage): boolean {\n return (\n hasComputerCallOutputMarker(message) &&\n isComputerCallOutputContent(message.content)\n );\n}\n\n/**\n * Bounds structured tool output without slicing binary/media payloads.\n * Purely textual/structured arrays become a universally valid string tool\n * result. For mixed-media arrays, compactable blocks become one text preview\n * while atomic blocks remain intact.\n */\nexport function compactToolContent(\n content: unknown,\n maxChars: number\n): CompactToolContentResult {\n const normalizedMaxChars = Number.isFinite(maxChars)\n ? Math.max(0, Math.floor(maxChars))\n : Number.MAX_SAFE_INTEGER;\n if (typeof content === 'string') {\n return {\n content: truncateToolResultContent(content, normalizedMaxChars),\n changed: content.length > normalizedMaxChars,\n originalChars: content.length,\n };\n }\n if (!isArray(content)) {\n const serialized = serializeStructuredValueBounded(\n content,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n if (isProxy(content)) {\n const serialized = serializeStructuredValueBounded(\n content,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n const contentBlocks = content as ToolContentBlock[];\n\n let contentLength: number;\n try {\n contentLength = contentBlocks.length;\n } catch {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: Number.MAX_SAFE_INTEGER,\n };\n }\n if (contentLength > MAX_STRUCTURED_SERIALIZATION_WORK) {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n\n try {\n const blockKinds = new Uint8Array(contentLength);\n const validation = createToolBlockClassificationContext();\n const structuredWork = createStructuredWorkState();\n const containerValidationWork = {\n value: MAX_ATOMIC_VALIDATION_WORK,\n };\n const containerPrototype = Object.getPrototypeOf(contentBlocks);\n if (\n (containerPrototype !== Array.prototype && containerPrototype !== null) ||\n hasPotentiallyCallableToJSON(\n contentBlocks,\n containerValidationWork,\n validation.totalRemaining\n )\n ) {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n let atomicBlockCount = 0;\n let denseTextLength = contentLength > 0 ? contentLength - 1 : undefined;\n for (let i = 0; i < contentLength; i++) {\n const descriptor = Object.getOwnPropertyDescriptor(\n contentBlocks,\n String(i)\n );\n if (\n descriptor == null ||\n typeof descriptor.get === 'function' ||\n typeof descriptor.set === 'function'\n ) {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n const block = descriptor.value as ToolContentBlock;\n const kind = classifyToolContentBlock(block, validation);\n if (validation.totalRemaining.value <= 0) {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n blockKinds[i] = kind;\n if (kind === TOOL_BLOCK_ATOMIC) {\n atomicBlockCount++;\n }\n if (denseTextLength == null) {\n continue;\n }\n if (kind !== TOOL_BLOCK_TEXT) {\n denseTextLength = undefined;\n continue;\n }\n const text = readOwnEnumerableDataProperty(block, 'text').value;\n denseTextLength += typeof text === 'string' ? text.length : 0;\n if (denseTextLength >= Number.MAX_SAFE_INTEGER) {\n denseTextLength = Number.MAX_SAFE_INTEGER;\n }\n }\n const originalChars =\n denseTextLength ??\n estimateStructuredChars(\n contentBlocks,\n Number.MAX_SAFE_INTEGER,\n [],\n structuredWork\n );\n if (atomicBlockCount === 0) {\n if (denseTextLength != null && originalChars <= normalizedMaxChars) {\n return {\n content: contentBlocks,\n changed: false,\n originalChars,\n };\n }\n const serialized =\n denseTextLength != null\n ? serializeDenseTextBlocksWithinLimit(\n contentBlocks as TextToolContentBlock[],\n denseTextLength,\n normalizedMaxChars\n )\n : serializeStructuredValueWithinLimit(\n contentBlocks,\n normalizedMaxChars,\n structuredWork\n );\n return {\n content: truncateToolResultContent(serialized, normalizedMaxChars),\n // Opaque arrays are normalized even when they are small so every\n // provider receives a universally valid tool-result string.\n changed: true,\n originalChars,\n };\n }\n\n let hasOpaqueBlocks = false;\n const normalizedBlocks: ToolContentBlock[] = [];\n const normalizedKinds: number[] = [];\n let opaqueRun: unknown[] = [];\n const flushOpaqueRun = (): void => {\n if (opaqueRun.length === 0) {\n return;\n }\n normalizedBlocks.push({\n type: 'text',\n text: serializeStructuredValueWithinLimit(\n opaqueRun,\n normalizedMaxChars,\n structuredWork\n ),\n });\n normalizedKinds.push(TOOL_BLOCK_TEXT);\n opaqueRun = [];\n };\n for (let i = 0; i < contentLength; i++) {\n const block = contentBlocks[i];\n const kind = blockKinds[i];\n if (kind !== TOOL_BLOCK_OPAQUE) {\n flushOpaqueRun();\n normalizedBlocks.push(block);\n normalizedKinds.push(kind);\n } else {\n hasOpaqueBlocks = true;\n opaqueRun.push(block);\n }\n }\n flushOpaqueRun();\n\n const normalizedLength = estimateStructuredChars(\n normalizedBlocks,\n Number.MAX_SAFE_INTEGER,\n [],\n structuredWork\n );\n if (normalizedLength <= normalizedMaxChars) {\n return {\n content: hasOpaqueBlocks ? normalizedBlocks : contentBlocks,\n changed: hasOpaqueBlocks,\n originalChars,\n };\n }\n\n // Keep small media/resource blocks intact, but never let a single inline\n // base64/blob block defeat the cap. Half of the budget is reserved for\n // compactable text so the model still receives an explanation.\n const atomicBudget = Math.floor(normalizedMaxChars / 2);\n let atomicChars = 0;\n let preservedAtomicCount = 0;\n const preservedAtomicFlags = new Uint8Array(normalizedBlocks.length);\n let omittedAtomicCount = 0;\n const omittedAtomicTypes: string[] = [];\n const compactableBlocks: ToolContentBlock[] = [];\n let compactableChars = 0;\n for (let i = 0; i < normalizedBlocks.length; i++) {\n const block = normalizedBlocks[i];\n if (normalizedKinds[i] !== TOOL_BLOCK_ATOMIC) {\n if (compactableBlocks.length > 0) {\n compactableChars++;\n }\n compactableBlocks.push(block);\n compactableChars += (block as TextToolContentBlock).text.length;\n continue;\n }\n const blockChars = estimateStructuredChars(\n block,\n atomicBudget - atomicChars,\n [],\n structuredWork\n );\n if (atomicChars + blockChars <= atomicBudget) {\n preservedAtomicFlags[i] = 1;\n preservedAtomicCount++;\n atomicChars += blockChars;\n } else {\n omittedAtomicCount++;\n const typeProperty = isRecord(block)\n ? readOwnEnumerableDataProperty(block, 'type')\n : { found: false as const };\n if (omittedAtomicTypes.length < 8) {\n const rawType =\n typeProperty.found && typeof typeProperty.value === 'string'\n ? typeProperty.value\n : 'media';\n omittedAtomicTypes.push(truncateToolResultContent(rawType, 80));\n }\n }\n }\n\n let previewSource = serializeDenseTextBlocksWithinLimit(\n compactableBlocks as TextToolContentBlock[],\n compactableChars,\n normalizedMaxChars\n );\n if (omittedAtomicCount > 0) {\n const undisplayedCount = omittedAtomicCount - omittedAtomicTypes.length;\n const omittedNotice =\n `[omitted ${omittedAtomicCount} oversized atomic tool-content ` +\n `block${omittedAtomicCount === 1 ? '' : 's'}: ` +\n `${omittedAtomicTypes.join(', ')}` +\n `${undisplayedCount > 0 ? `, +${undisplayedCount} more` : ''}]`;\n previewSource =\n previewSource.length > 0\n ? `${previewSource}\\n${omittedNotice}`\n : omittedNotice;\n }\n\n const structuralAllowance =\n preservedAtomicCount * 4 + (previewSource.length > 0 ? 32 : 2);\n const previewBudget = Math.max(\n 0,\n normalizedMaxChars - atomicChars - structuralAllowance\n );\n const preview = truncateToolResultContent(previewSource, previewBudget);\n const compacted: ToolContentBlock[] = [];\n let previewInserted = false;\n for (let i = 0; i < normalizedBlocks.length; i++) {\n const block = normalizedBlocks[i];\n if (normalizedKinds[i] === TOOL_BLOCK_ATOMIC) {\n if (preservedAtomicFlags[i] === 1) {\n compacted.push(block);\n }\n } else if (!previewInserted) {\n if (preview.length > 0) {\n compacted.push({ type: 'text', text: preview });\n }\n previewInserted = true;\n }\n }\n if (!previewInserted && preview.length > 0) {\n compacted.push({ type: 'text', text: preview });\n }\n\n // JSON framing can make the block array a few bytes larger than the\n // character budget. Fall back to bounded provider-neutral text rather than\n // leaking an oversized media payload.\n const compactedChars =\n preservedAtomicCount > 0 || compacted.length === 0\n ? estimateStructuredChars(\n compacted,\n Number.MAX_SAFE_INTEGER,\n [],\n structuredWork\n )\n : preview.length;\n if (compactedChars > normalizedMaxChars) {\n return {\n content: serializeStructuredValueWithinLimit(\n normalizedBlocks,\n normalizedMaxChars,\n structuredWork\n ),\n changed: true,\n originalChars,\n };\n }\n\n return {\n content: compacted,\n changed: true,\n originalChars,\n };\n } catch {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n}\n\n/** Clones a ToolMessage while retaining fields omitted by ad-hoc clones. */\nexport function cloneToolMessageWithContent(\n message: ToolMessage,\n content: ToolContent,\n artifact: unknown = message.artifact\n): ToolMessage {\n return new ToolMessage({\n content,\n tool_call_id: message.tool_call_id,\n name: message.name,\n id: message.id,\n status: message.status,\n artifact,\n metadata: message.metadata,\n additional_kwargs: message.additional_kwargs,\n response_metadata: message.response_metadata,\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toolContent.mjs","names":[],"sources":["../../../src/utils/toolContent.ts"],"mappings":"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"}
|
|
@@ -1,62 +1,14 @@
|
|
|
1
1
|
//#region src/utils/truncation.ts
|
|
2
|
-
/**
|
|
3
|
-
* Ingestion-time and pre-flight truncation utilities for tool results.
|
|
4
|
-
*
|
|
5
|
-
* Prevents oversized tool outputs from entering the message array and
|
|
6
|
-
* consuming the entire context window.
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Absolute hard cap on tool result length (characters).
|
|
10
|
-
* Even if the model has a 1M-token context, a single tool result
|
|
11
|
-
* larger than this is almost certainly a bug (e.g., dumping a binary file).
|
|
12
|
-
*/
|
|
13
2
|
const HARD_MAX_TOOL_RESULT_CHARS = 4e5;
|
|
14
|
-
/**
|
|
15
|
-
* Absolute hard cap on the aggregate size (characters) of all registered
|
|
16
|
-
* tool outputs kept for `{{tool<i>turn<n>}}` substitution. Set at 5 MB
|
|
17
|
-
* because the registry stores *raw, untruncated* tool output — full
|
|
18
|
-
* fidelity for piping into downstream bash/jq — so the budget needs
|
|
19
|
-
* enough headroom to keep a handful of large responses without
|
|
20
|
-
* ballooning unbounded.
|
|
21
|
-
*/
|
|
22
3
|
const HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE = 5e6;
|
|
23
|
-
/**
|
|
24
|
-
* Computes the dynamic max tool result size based on the model's context window.
|
|
25
|
-
* Uses 30% of the context window (in estimated characters, ~4 chars/token)
|
|
26
|
-
* capped at HARD_MAX_TOOL_RESULT_CHARS.
|
|
27
|
-
*
|
|
28
|
-
* @param contextWindowTokens - The model's max context tokens (optional).
|
|
29
|
-
* @returns Maximum allowed characters for a single tool result.
|
|
30
|
-
*/
|
|
31
4
|
function calculateMaxToolResultChars(contextWindowTokens) {
|
|
32
5
|
if (contextWindowTokens == null || contextWindowTokens <= 0) return HARD_MAX_TOOL_RESULT_CHARS;
|
|
33
6
|
return Math.min(Math.floor(contextWindowTokens * .3) * 4, HARD_MAX_TOOL_RESULT_CHARS);
|
|
34
7
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Computes the default aggregate size (characters) for the tool output
|
|
37
|
-
* reference registry based on the per-output budget. Mirrors
|
|
38
|
-
* `calculateMaxToolResultChars`'s shape: a multiple of the per-output
|
|
39
|
-
* cap, clamped to `HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE`.
|
|
40
|
-
*
|
|
41
|
-
* @param maxOutputSize - Per-output maximum characters (e.g., the
|
|
42
|
-
* ToolNode's `maxToolResultChars`). When omitted or non-positive,
|
|
43
|
-
* falls back to the absolute total cap.
|
|
44
|
-
* @returns Maximum total characters retained across the registry.
|
|
45
|
-
*/
|
|
46
8
|
function calculateMaxTotalToolOutputSize(maxOutputSize) {
|
|
47
9
|
if (maxOutputSize == null || maxOutputSize <= 0) return HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE;
|
|
48
10
|
return Math.min(maxOutputSize * 2, HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE);
|
|
49
11
|
}
|
|
50
|
-
/**
|
|
51
|
-
* Truncates a tool-call input (the arguments/payload of a tool_use block)
|
|
52
|
-
* using head+tail strategy. Returns an object with `_truncated` (the
|
|
53
|
-
* truncated string) and `_originalChars` (for diagnostics).
|
|
54
|
-
*
|
|
55
|
-
* Accepts any type — objects are JSON-serialized before truncation.
|
|
56
|
-
*
|
|
57
|
-
* @param input - The tool input (string, object, etc.).
|
|
58
|
-
* @param maxChars - Maximum allowed characters.
|
|
59
|
-
*/
|
|
60
12
|
function truncateToolInput(input, maxChars) {
|
|
61
13
|
const serialized = typeof input === "string" ? input : JSON.stringify(input);
|
|
62
14
|
if (serialized.length <= maxChars) return {
|
|
@@ -76,19 +28,6 @@ function truncateToolInput(input, maxChars) {
|
|
|
76
28
|
_originalChars: serialized.length
|
|
77
29
|
};
|
|
78
30
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Truncates tool result content that exceeds `maxChars` using a head+tail
|
|
81
|
-
* strategy. Keeps the beginning (structure/headers) and end (return value /
|
|
82
|
-
* conclusion) of the content so the model retains both the opening context
|
|
83
|
-
* and the final outcome.
|
|
84
|
-
*
|
|
85
|
-
* Head gets ~70% of the budget, tail gets ~30%. Falls back to head-only
|
|
86
|
-
* when the budget is too small for a meaningful tail.
|
|
87
|
-
*
|
|
88
|
-
* @param content - The tool result string content.
|
|
89
|
-
* @param maxChars - Maximum allowed characters.
|
|
90
|
-
* @returns The (possibly truncated) content string.
|
|
91
|
-
*/
|
|
92
31
|
function truncateToolResultContent(content, maxChars) {
|
|
93
32
|
if (content.length <= maxChars) return content;
|
|
94
33
|
const indicator = `\n\n… [truncated: ${content.length} chars exceeded ${maxChars} limit] …\n\n`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncation.mjs","names":[],"sources":["../../../src/utils/truncation.ts"],"
|
|
1
|
+
{"version":3,"file":"truncation.mjs","names":[],"sources":["../../../src/utils/truncation.ts"],"mappings":";AAYA,MAAa,6BAA6B;AAU1C,MAAa,kCAAkC;AAU/C,SAAgB,4BACd,qBACQ;CACR,IAAI,uBAAuB,QAAQ,uBAAuB,GACxD,OAAO;CAET,OAAO,KAAK,IACV,KAAK,MAAM,sBAAsB,EAAG,IAAI,GACxC,0BACF;AACF;AAaA,SAAgB,gCACd,eACQ;CACR,IAAI,iBAAiB,QAAQ,iBAAiB,GAC5C,OAAO;CAET,OAAO,KAAK,IAAI,gBAAgB,GAAG,+BAA+B;AACpE;AAYA,SAAgB,kBACd,OACA,UACgD;CAChD,MAAM,aAAa,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,KAAK;CAC3E,IAAI,WAAW,UAAU,UACvB,OAAO;EAAE,YAAY;EAAY,gBAAgB,WAAW;CAAO;CAErE,MAAM,YAAY,mBAAmB,WAAW,OAAO,kBAAkB,SAAS;CAClF,MAAM,YAAY,WAAW,UAAU;CAEvC,IAAI,YAAY,KACd,OAAO;EACL,YAAY,WAAW,MAAM,GAAG,QAAQ,IAAI,UAAU,QAAQ;EAC9D,gBAAgB,WAAW;CAC7B;CAGF,MAAM,WAAW,KAAK,KAAK,YAAY,EAAG;CAC1C,MAAM,WAAW,YAAY;CAE7B,OAAO;EACL,YACE,WAAW,MAAM,GAAG,QAAQ,IAC5B,YACA,WAAW,MAAM,WAAW,SAAS,QAAQ;EAC/C,gBAAgB,WAAW;CAC7B;AACF;AAeA,SAAgB,0BACd,SACA,UACQ;CACR,IAAI,QAAQ,UAAU,UACpB,OAAO;CAGT,MAAM,YAAY,qBAAqB,QAAQ,OAAO,kBAAkB,SAAS;CACjF,MAAM,YAAY,WAAW,UAAU;CACvC,IAAI,aAAa,GACf,OAAO,QAAQ,MAAM,GAAG,QAAQ;CAIlC,IAAI,YAAY,KACd,OAAO,QAAQ,MAAM,GAAG,SAAS,IAAI,UAAU,QAAQ;CAGzD,MAAM,WAAW,KAAK,KAAK,YAAY,EAAG;CAC1C,MAAM,WAAW,YAAY;CAG7B,IAAI,UAAU;CACd,MAAM,cAAc,QAAQ,YAAY,MAAM,QAAQ;CACtD,IAAI,cAAc,WAAW,OAAO,cAAc,GAChD,UAAU;CAGZ,IAAI,YAAY,QAAQ,SAAS;CACjC,MAAM,cAAc,QAAQ,QAAQ,MAAM,SAAS;CACnD,IAAI,cAAc,KAAK,cAAc,YAAY,KAC/C,YAAY,cAAc;CAG5B,OAAO,QAAQ,MAAM,GAAG,OAAO,IAAI,YAAY,QAAQ,MAAM,SAAS;AACxE"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SystemMessage } from '@langchain/core/messages';
|
|
2
2
|
import type { UsageMetadata, BaseMessage } from '@langchain/core/messages';
|
|
3
3
|
import type { RunnableConfig, Runnable } from '@langchain/core/runnables';
|
|
4
|
-
import type * as t from '
|
|
5
|
-
import { createPruneMessages } from '
|
|
6
|
-
import { ContentTypes, Providers } from '
|
|
4
|
+
import type * as t from '../types';
|
|
5
|
+
import { createPruneMessages } from '../messages';
|
|
6
|
+
import { ContentTypes, Providers } from '../common';
|
|
7
7
|
/**
|
|
8
8
|
* Encapsulates agent-specific state that can vary between agents in a multi-agent system
|
|
9
9
|
*/
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { UsageMetadata } from '@langchain/core/messages';
|
|
2
2
|
import type { ClientOptions } from '@langchain/openai';
|
|
3
|
-
import type { ChatOpenRouterInput } from '
|
|
4
|
-
import type * as t from '
|
|
5
|
-
import { Providers } from '
|
|
3
|
+
import type { ChatOpenRouterInput } from '../../llm/openrouter';
|
|
4
|
+
import type * as t from '../../types';
|
|
5
|
+
import { Providers } from '../../common';
|
|
6
6
|
type LivePromptCacheProvider = Providers.ANTHROPIC | Providers.BEDROCK | Providers.OPENROUTER;
|
|
7
7
|
type PromptCacheExpectedSystemBlock = {
|
|
8
8
|
type: 'text';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BaseMessage } from '@langchain/core/messages';
|
|
2
|
-
import type * as t from '
|
|
2
|
+
import type * as t from '../types';
|
|
3
3
|
export interface ProjectAgentContextUsageParams {
|
|
4
4
|
/** Same `AgentInputs` a run is built from (instructions, tools, model, window). */
|
|
5
5
|
agent: t.AgentInputs;
|
package/dist/types/events.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BaseMessageFields, UsageMetadata } from '@langchain/core/messages';
|
|
2
2
|
import type { Logger } from 'winston';
|
|
3
|
-
import type { MultiAgentGraph, StandardGraph } from '
|
|
4
|
-
import type * as t from '
|
|
3
|
+
import type { MultiAgentGraph, StandardGraph } from './graphs';
|
|
4
|
+
import type * as t from './types';
|
|
5
5
|
export declare class HandlerRegistry {
|
|
6
6
|
private handlers;
|
|
7
7
|
register(eventType: string, handler: t.EventHandler): void;
|
|
@@ -2,17 +2,17 @@ import { ToolNode } from '@langchain/langgraph/prebuilt';
|
|
|
2
2
|
import { RunnableConfig } from '@langchain/core/runnables';
|
|
3
3
|
import type { UsageMetadata, BaseMessage } from '@langchain/core/messages';
|
|
4
4
|
import type { ToolCall } from '@langchain/core/messages/tool';
|
|
5
|
-
import type { SubagentGraphResumeState, SubagentToolNodeResumeState } from '
|
|
6
|
-
import type { ResolvedStreamLimits, RunBreakerScope, StreamedToolCallArgTally, StreamDeltaEventTally } from '
|
|
7
|
-
import type { GraphFactoryDependencies } from '
|
|
8
|
-
import type { HookRegistry } from '
|
|
9
|
-
import type * as t from '
|
|
10
|
-
import { StreamLimitExceededError } from '
|
|
11
|
-
import { SubagentExecutor } from '
|
|
12
|
-
import { ToolOutputReferenceRegistry } from '
|
|
13
|
-
import { ToolNode as CustomToolNode } from '
|
|
14
|
-
import { AgentContext } from '
|
|
15
|
-
import { HandlerRegistry } from '
|
|
5
|
+
import type { SubagentGraphResumeState, SubagentToolNodeResumeState } from '../tools/subagent/SubagentReplay';
|
|
6
|
+
import type { ResolvedStreamLimits, RunBreakerScope, StreamedToolCallArgTally, StreamDeltaEventTally } from '../llm/streamLimits';
|
|
7
|
+
import type { GraphFactoryDependencies } from '../graphs/graphFactory';
|
|
8
|
+
import type { HookRegistry } from '../hooks';
|
|
9
|
+
import type * as t from '../types';
|
|
10
|
+
import { StreamLimitExceededError } from '../llm/streamLimits';
|
|
11
|
+
import { SubagentExecutor } from '../tools/subagent';
|
|
12
|
+
import { ToolOutputReferenceRegistry } from '../tools/toolOutputReferences';
|
|
13
|
+
import { ToolNode as CustomToolNode } from '../tools/ToolNode';
|
|
14
|
+
import { AgentContext } from '../agents/AgentContext';
|
|
15
|
+
import { HandlerRegistry } from '../events';
|
|
16
16
|
export declare abstract class Graph<T extends t.BaseGraphState = t.BaseGraphState, _TNodeName extends string = string> {
|
|
17
17
|
abstract resetValues(keepContent?: boolean, checkpointScope?: string): void;
|
|
18
18
|
restoreCheckpointMessages(_messages: BaseMessage[], _pendingMessages?: BaseMessage[]): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { GraphFactoryDependencies } from '
|
|
2
|
-
import type * as t from '
|
|
1
|
+
import type { GraphFactoryDependencies } from '../graphs/graphFactory';
|
|
2
|
+
import type * as t from '../types';
|
|
3
3
|
import { StandardGraph } from './Graph';
|
|
4
4
|
/**
|
|
5
5
|
* MultiAgentGraph extends StandardGraph to support dynamic multi-agent workflows
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { GraphFactoryRequest } from '
|
|
2
|
-
import type { MultiAgentGraphInput, StandardGraphInput } from '
|
|
3
|
-
import { MultiAgentGraph } from '
|
|
4
|
-
import { StandardGraph } from '
|
|
1
|
+
import type { GraphFactoryRequest } from '../graphs/graphFactory';
|
|
2
|
+
import type { MultiAgentGraphInput, StandardGraphInput } from '../types';
|
|
3
|
+
import { MultiAgentGraph } from '../graphs/MultiAgentGraph';
|
|
4
|
+
import { StandardGraph } from '../graphs/Graph';
|
|
5
5
|
export declare function createGraph(request: {
|
|
6
6
|
kind: 'standard';
|
|
7
7
|
input: StandardGraphInput;
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* nodes (RunnableLambda, addNode callbacks) do not have that
|
|
17
17
|
* constraint.
|
|
18
18
|
*/
|
|
19
|
-
import type { AskUserQuestionRequest, AskUserQuestionResolution } from '
|
|
19
|
+
import type { AskUserQuestionRequest, AskUserQuestionResolution } from '../types/hitl';
|
|
20
20
|
/**
|
|
21
21
|
* Suspend the current graph node to ask the human a question. Returns
|
|
22
22
|
* the host-supplied resolution after `Run.resume(resolution)` is
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AskUserQuestionsRequest, AskUserQuestionsResolution } from '
|
|
1
|
+
import type { AskUserQuestionsRequest, AskUserQuestionsResolution } from '../types/hitl';
|
|
2
2
|
/**
|
|
3
3
|
* Suspend once to collect answers to several related questions. The first
|
|
4
4
|
* question is also included in the legacy `question` field so existing hosts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AskUserQuestionRequest, AskUserQuestionsInterruptPayload } from '
|
|
1
|
+
import type { AskUserQuestionRequest, AskUserQuestionsInterruptPayload } from '../types/hitl';
|
|
2
2
|
/** Maximum questions supported by one batched clarification interaction. */
|
|
3
3
|
export declare const MAX_ASK_USER_QUESTIONS = 4;
|
|
4
4
|
/** Safe identifier format for answer-map keys in a batched question. */
|