@librechat/agents 3.2.2 → 3.2.31
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 +3 -2
- package/dist/cjs/agents/AgentContext.cjs.map +1 -1
- package/dist/cjs/events.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +200 -54
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
- package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +13 -7
- package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -1
- package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
- package/dist/cjs/hooks/types.cjs.map +1 -1
- package/dist/cjs/instrumentation.cjs +33 -0
- package/dist/cjs/instrumentation.cjs.map +1 -1
- package/dist/cjs/langfuse.cjs +17 -1
- package/dist/cjs/langfuse.cjs.map +1 -1
- package/dist/cjs/langfuseToolOutputTracing.cjs +2 -2
- package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/index.cjs +1 -1
- package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +1 -1
- package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/index.cjs +2 -2
- package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/toolCache.cjs +8 -5
- package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
- package/dist/cjs/llm/fake.cjs +16 -14
- package/dist/cjs/llm/fake.cjs.map +1 -1
- package/dist/cjs/llm/google/index.cjs +22 -0
- package/dist/cjs/llm/google/index.cjs.map +1 -1
- package/dist/cjs/llm/google/utils/common.cjs +88 -27
- package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
- package/dist/cjs/llm/init.cjs +2 -2
- package/dist/cjs/llm/invoke.cjs +108 -11
- package/dist/cjs/llm/invoke.cjs.map +1 -1
- package/dist/cjs/llm/openai/index.cjs +1 -1
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/llm/openai/utils/index.cjs +1 -1
- package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
- package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
- package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
- package/dist/cjs/main.cjs +1 -0
- package/dist/cjs/main.cjs.map +1 -1
- package/dist/cjs/messages/cache.cjs +8 -7
- package/dist/cjs/messages/cache.cjs.map +1 -1
- package/dist/cjs/messages/content.cjs.map +1 -1
- package/dist/cjs/messages/contextPruning.cjs.map +1 -1
- package/dist/cjs/messages/format.cjs +124 -17
- package/dist/cjs/messages/format.cjs.map +1 -1
- package/dist/cjs/messages/prune.cjs.map +1 -1
- package/dist/cjs/messages/reducer.cjs +1 -1
- package/dist/cjs/messages/reducer.cjs.map +1 -1
- package/dist/cjs/messages/tools.cjs +1 -1
- package/dist/cjs/messages/tools.cjs.map +1 -1
- package/dist/cjs/openai/index.cjs.map +1 -1
- package/dist/cjs/responses/index.cjs.map +1 -1
- package/dist/cjs/run.cjs +47 -21
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/cjs/session/AgentSession.cjs +4 -4
- package/dist/cjs/session/AgentSession.cjs.map +1 -1
- package/dist/cjs/session/JsonlSessionStore.cjs +2 -2
- package/dist/cjs/session/JsonlSessionStore.cjs.map +1 -1
- package/dist/cjs/session/handlers.cjs +2 -2
- package/dist/cjs/session/handlers.cjs.map +1 -1
- package/dist/cjs/stream.cjs +248 -25
- package/dist/cjs/stream.cjs.map +1 -1
- package/dist/cjs/summarization/node.cjs.map +1 -1
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +1 -1
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/Calculator.cjs +1 -1
- package/dist/cjs/tools/Calculator.cjs.map +1 -1
- package/dist/cjs/tools/CodeExecutor.cjs +1 -1
- package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
- package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
- package/dist/cjs/tools/ToolNode.cjs +37 -18
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/ToolSearch.cjs +1 -1
- package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
- package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs +7 -4
- package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs.map +1 -1
- package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs +4 -4
- package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs.map +1 -1
- package/dist/cjs/tools/handlers.cjs +2 -1
- package/dist/cjs/tools/handlers.cjs.map +1 -1
- package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -1
- package/dist/cjs/tools/local/FileCheckpointer.cjs +2 -1
- package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -1
- package/dist/cjs/tools/local/LocalCodingTools.cjs +45 -19
- package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -1
- package/dist/cjs/tools/local/LocalExecutionEngine.cjs +3 -3
- package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -1
- package/dist/cjs/tools/local/LocalExecutionTools.cjs +2 -2
- package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -1
- package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +4 -3
- package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/local/attachments.cjs +0 -5
- package/dist/cjs/tools/local/attachments.cjs.map +1 -1
- package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs +4 -4
- package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
- package/dist/cjs/tools/search/firecrawl.cjs +1 -1
- package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
- package/dist/cjs/tools/search/rerankers.cjs +7 -3
- package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
- package/dist/cjs/tools/search/tavily-search.cjs +1 -1
- package/dist/cjs/tools/search/tavily-search.cjs.map +1 -1
- package/dist/cjs/tools/search/utils.cjs +76 -8
- package/dist/cjs/tools/search/utils.cjs.map +1 -1
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs +1 -1
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
- package/dist/cjs/utils/handlers.cjs +1 -1
- package/dist/cjs/utils/handlers.cjs.map +1 -1
- package/dist/cjs/utils/run.cjs +1 -1
- package/dist/cjs/utils/run.cjs.map +1 -1
- package/dist/esm/agents/AgentContext.mjs +3 -2
- package/dist/esm/agents/AgentContext.mjs.map +1 -1
- package/dist/esm/events.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +200 -54
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
- package/dist/esm/hooks/createWorkspacePolicyHook.mjs +13 -7
- package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -1
- package/dist/esm/hooks/executeHooks.mjs.map +1 -1
- package/dist/esm/hooks/types.mjs.map +1 -1
- package/dist/esm/instrumentation.mjs +33 -1
- package/dist/esm/instrumentation.mjs.map +1 -1
- package/dist/esm/langfuse.mjs +17 -2
- package/dist/esm/langfuse.mjs.map +1 -1
- package/dist/esm/langfuseToolOutputTracing.mjs +2 -2
- package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
- package/dist/esm/llm/anthropic/index.mjs +1 -1
- package/dist/esm/llm/anthropic/index.mjs.map +1 -1
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
- package/dist/esm/llm/anthropic/utils/message_outputs.mjs +1 -1
- package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
- package/dist/esm/llm/bedrock/index.mjs +2 -2
- package/dist/esm/llm/bedrock/index.mjs.map +1 -1
- package/dist/esm/llm/bedrock/toolCache.mjs +8 -5
- package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
- package/dist/esm/llm/fake.mjs +16 -14
- package/dist/esm/llm/fake.mjs.map +1 -1
- package/dist/esm/llm/google/index.mjs +23 -1
- package/dist/esm/llm/google/index.mjs.map +1 -1
- package/dist/esm/llm/google/utils/common.mjs +88 -27
- package/dist/esm/llm/google/utils/common.mjs.map +1 -1
- package/dist/esm/llm/init.mjs +2 -2
- package/dist/esm/llm/invoke.mjs +104 -7
- package/dist/esm/llm/invoke.mjs.map +1 -1
- package/dist/esm/llm/openai/index.mjs +1 -1
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/llm/openai/utils/index.mjs +1 -1
- package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
- package/dist/esm/llm/openrouter/index.mjs.map +1 -1
- package/dist/esm/llm/vertexai/index.mjs.map +1 -1
- package/dist/esm/main.mjs +1 -1
- package/dist/esm/messages/cache.mjs +8 -7
- package/dist/esm/messages/cache.mjs.map +1 -1
- package/dist/esm/messages/content.mjs.map +1 -1
- package/dist/esm/messages/contextPruning.mjs.map +1 -1
- package/dist/esm/messages/format.mjs +124 -18
- package/dist/esm/messages/format.mjs.map +1 -1
- package/dist/esm/messages/prune.mjs.map +1 -1
- package/dist/esm/messages/reducer.mjs +1 -1
- package/dist/esm/messages/reducer.mjs.map +1 -1
- package/dist/esm/messages/tools.mjs +1 -1
- package/dist/esm/messages/tools.mjs.map +1 -1
- package/dist/esm/openai/index.mjs.map +1 -1
- package/dist/esm/responses/index.mjs.map +1 -1
- package/dist/esm/run.mjs +47 -21
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/session/AgentSession.mjs +4 -4
- package/dist/esm/session/AgentSession.mjs.map +1 -1
- package/dist/esm/session/JsonlSessionStore.mjs +2 -2
- package/dist/esm/session/JsonlSessionStore.mjs.map +1 -1
- package/dist/esm/session/handlers.mjs +2 -2
- package/dist/esm/session/handlers.mjs.map +1 -1
- package/dist/esm/stream.mjs +248 -25
- package/dist/esm/stream.mjs.map +1 -1
- package/dist/esm/summarization/node.mjs.map +1 -1
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs +1 -1
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/Calculator.mjs +1 -1
- package/dist/esm/tools/Calculator.mjs.map +1 -1
- package/dist/esm/tools/CodeExecutor.mjs +1 -1
- package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
- package/dist/esm/tools/SubagentTool.mjs.map +1 -1
- package/dist/esm/tools/ToolNode.mjs +37 -18
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/ToolSearch.mjs +1 -1
- package/dist/esm/tools/ToolSearch.mjs.map +1 -1
- package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs +7 -4
- package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs.map +1 -1
- package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs +4 -4
- package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs.map +1 -1
- package/dist/esm/tools/handlers.mjs +2 -1
- package/dist/esm/tools/handlers.mjs.map +1 -1
- package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -1
- package/dist/esm/tools/local/FileCheckpointer.mjs +2 -1
- package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -1
- package/dist/esm/tools/local/LocalCodingTools.mjs +45 -19
- package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -1
- package/dist/esm/tools/local/LocalExecutionEngine.mjs +3 -3
- package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -1
- package/dist/esm/tools/local/LocalExecutionTools.mjs +2 -2
- package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -1
- package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +4 -3
- package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/local/attachments.mjs +0 -5
- package/dist/esm/tools/local/attachments.mjs.map +1 -1
- package/dist/esm/tools/local/resolveLocalExecutionTools.mjs +4 -4
- package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
- package/dist/esm/tools/search/firecrawl.mjs +1 -1
- package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
- package/dist/esm/tools/search/rerankers.mjs +8 -4
- package/dist/esm/tools/search/rerankers.mjs.map +1 -1
- package/dist/esm/tools/search/tavily-search.mjs +1 -1
- package/dist/esm/tools/search/tavily-search.mjs.map +1 -1
- package/dist/esm/tools/search/utils.mjs +76 -9
- package/dist/esm/tools/search/utils.mjs.map +1 -1
- package/dist/esm/tools/subagent/SubagentExecutor.mjs +1 -1
- package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
- package/dist/esm/utils/handlers.mjs +1 -1
- package/dist/esm/utils/handlers.mjs.map +1 -1
- package/dist/esm/utils/run.mjs +1 -1
- package/dist/esm/utils/run.mjs.map +1 -1
- package/dist/types/agents/__tests__/promptCacheLiveHelpers.d.ts +1 -1
- package/dist/types/events.d.ts +1 -1
- package/dist/types/graphs/Graph.d.ts +7 -1
- package/dist/types/hooks/executeHooks.d.ts +1 -1
- package/dist/types/hooks/types.d.ts +5 -0
- package/dist/types/instrumentation.d.ts +1 -0
- package/dist/types/langfuse.d.ts +4 -0
- package/dist/types/llm/anthropic/utils/message_inputs.d.ts +1 -1
- package/dist/types/llm/anthropic/utils/message_outputs.d.ts +1 -1
- package/dist/types/llm/anthropic/utils/output_parsers.d.ts +2 -2
- package/dist/types/llm/bedrock/index.d.ts +2 -2
- package/dist/types/llm/fake.d.ts +3 -3
- package/dist/types/llm/google/index.d.ts +1 -0
- package/dist/types/llm/google/types.d.ts +1 -1
- package/dist/types/llm/google/utils/common.d.ts +2 -2
- package/dist/types/llm/google/utils/tools.d.ts +1 -1
- package/dist/types/llm/google/utils/zod_to_genai_parameters.d.ts +1 -1
- package/dist/types/llm/openai/index.d.ts +2 -2
- package/dist/types/llm/openai/utils/index.d.ts +1 -1
- package/dist/types/llm/openrouter/index.d.ts +4 -4
- package/dist/types/messages/contextPruning.d.ts +1 -1
- package/dist/types/messages/format.d.ts +9 -4
- package/dist/types/messages/prune.d.ts +1 -1
- package/dist/types/session/JsonlSessionStore.d.ts +1 -1
- package/dist/types/session/handlers.d.ts +1 -1
- package/dist/types/session/types.d.ts +1 -1
- package/dist/types/summarization/node.d.ts +1 -1
- package/dist/types/tools/SubagentTool.d.ts +2 -2
- package/dist/types/tools/ToolNode.d.ts +9 -2
- package/dist/types/tools/cloudflare/CloudflareSandboxExecutionEngine.d.ts +1 -1
- package/dist/types/tools/search/types.d.ts +1 -1
- package/dist/types/tools/search/utils.d.ts +11 -0
- package/dist/types/types/graph.d.ts +12 -4
- package/dist/types/types/llm.d.ts +4 -3
- package/dist/types/types/messages.d.ts +1 -1
- package/dist/types/types/run.d.ts +6 -6
- package/dist/types/types/stream.d.ts +2 -2
- package/dist/types/types/tools.d.ts +5 -1
- package/dist/types/utils/handlers.d.ts +2 -2
- package/dist/types/utils/run.d.ts +1 -1
- package/package.json +6 -3
- package/src/__tests__/stream.eagerEventExecution.test.ts +543 -6
- package/src/agents/AgentContext.ts +2 -2
- package/src/agents/__tests__/AgentContext.test.ts +3 -3
- package/src/agents/__tests__/promptCacheLiveHelpers.ts +1 -1
- package/src/events.ts +1 -1
- package/src/graphs/Graph.ts +329 -72
- package/src/graphs/MultiAgentGraph.ts +1 -1
- package/src/graphs/__tests__/Graph.reasoning.test.ts +919 -6
- package/src/graphs/__tests__/MultiAgentGraph.test.ts +1 -1
- package/src/graphs/__tests__/composition.smoke.test.ts +1 -1
- package/src/hooks/__tests__/HookRegistry.test.ts +1 -1
- package/src/hooks/__tests__/compactHooks.test.ts +8 -8
- package/src/hooks/__tests__/createWorkspacePolicyHook.test.ts +34 -22
- package/src/hooks/__tests__/executeHooks.test.ts +3 -3
- package/src/hooks/__tests__/integration.test.ts +3 -3
- package/src/hooks/__tests__/toolHooks.test.ts +10 -10
- package/src/hooks/createWorkspacePolicyHook.ts +17 -14
- package/src/hooks/executeHooks.ts +1 -1
- package/src/hooks/types.ts +5 -0
- package/src/instrumentation.ts +49 -8
- package/src/langfuse.ts +35 -1
- package/src/langfuseToolOutputTracing.ts +2 -2
- package/src/llm/anthropic/index.ts +1 -1
- package/src/llm/anthropic/utils/message_inputs.ts +1 -1
- package/src/llm/anthropic/utils/message_outputs.ts +3 -5
- package/src/llm/anthropic/utils/output_parsers.ts +5 -5
- package/src/llm/bedrock/index.ts +4 -4
- package/src/llm/bedrock/toolCache.test.ts +48 -9
- package/src/llm/bedrock/toolCache.ts +11 -6
- package/src/llm/custom-chat-models.smoke.test.ts +114 -0
- package/src/llm/fake.ts +30 -25
- package/src/llm/google/index.ts +43 -1
- package/src/llm/google/llm.spec.ts +173 -1
- package/src/llm/google/types.ts +1 -1
- package/src/llm/google/utils/common.ts +154 -45
- package/src/llm/google/utils/tools.ts +8 -8
- package/src/llm/google/utils/zod_to_genai_parameters.ts +4 -4
- package/src/llm/invoke.test.ts +3 -3
- package/src/llm/invoke.ts +170 -10
- package/src/llm/openai/index.ts +4 -4
- package/src/llm/openai/utils/index.ts +14 -14
- package/src/llm/openrouter/index.ts +4 -4
- package/src/llm/openrouter/reasoning.test.ts +2 -2
- package/src/llm/vertexai/fixThoughtSignatures.test.ts +1 -1
- package/src/llm/vertexai/index.ts +1 -1
- package/src/messages/cache.test.ts +22 -0
- package/src/messages/cache.ts +25 -12
- package/src/messages/content.ts +1 -1
- package/src/messages/contextPruning.ts +1 -1
- package/src/messages/format.ts +227 -43
- package/src/messages/formatAgentMessages.skills.test.ts +105 -26
- package/src/messages/formatAgentMessages.test.ts +841 -10
- package/src/messages/labelContentByAgent.test.ts +2 -2
- package/src/messages/prune.ts +1 -1
- package/src/messages/reducer.ts +1 -1
- package/src/messages/tools.ts +1 -1
- package/src/openai/__tests__/openai.test.ts +2 -2
- package/src/openai/index.ts +1 -1
- package/src/responses/__tests__/responses.test.ts +2 -2
- package/src/responses/index.ts +1 -1
- package/src/run.ts +82 -47
- package/src/session/AgentSession.ts +6 -6
- package/src/session/JsonlSessionStore.ts +3 -3
- package/src/session/__tests__/JsonlSessionStore.test.ts +5 -5
- package/src/session/__tests__/handlers.test.ts +2 -2
- package/src/session/handlers.ts +5 -5
- package/src/session/types.ts +1 -1
- package/src/specs/agent-handoffs.test.ts +1 -1
- package/src/specs/deterministic-trace-id.test.ts +50 -0
- package/src/specs/langfuse-callbacks.test.ts +2 -2
- package/src/specs/langfuse-metadata.test.ts +39 -0
- package/src/specs/langfuse-tool-output-tracing.test.ts +1 -1
- package/src/specs/multi-agent-summarization.test.ts +4 -4
- package/src/specs/subagent.test.ts +3 -3
- package/src/specs/summarization-unit.test.ts +1 -1
- package/src/specs/thinking-handoff.test.ts +1 -1
- package/src/splitStream.test.ts +48 -0
- package/src/stream.test.ts +53 -3
- package/src/stream.ts +450 -39
- package/src/summarization/__tests__/aggregator.test.ts +2 -2
- package/src/summarization/__tests__/node.test.ts +2 -2
- package/src/summarization/node.ts +1 -1
- package/src/tools/BashProgrammaticToolCalling.ts +5 -5
- package/src/tools/Calculator.ts +1 -1
- package/src/tools/CodeExecutor.ts +2 -4
- package/src/tools/SubagentTool.ts +2 -2
- package/src/tools/ToolNode.ts +37 -16
- package/src/tools/ToolSearch.ts +1 -1
- package/src/tools/__tests__/CloudflareSandboxExecution.test.ts +4 -4
- package/src/tools/__tests__/CodeApiAuthHeaders.test.ts +12 -12
- package/src/tools/__tests__/LocalExecutionTools.test.ts +125 -93
- package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +29 -5
- package/src/tools/__tests__/ReadFile.test.ts +1 -1
- package/src/tools/__tests__/SkillTool.test.ts +4 -4
- package/src/tools/__tests__/SubagentExecutor.test.ts +17 -13
- package/src/tools/__tests__/SubagentTool.test.ts +2 -2
- package/src/tools/__tests__/ToolNode.eagerEventExecution.test.ts +1 -1
- package/src/tools/__tests__/ToolNode.outputReferences.test.ts +2 -5
- package/src/tools/__tests__/ToolNode.session.test.ts +1 -1
- package/src/tools/__tests__/ToolSearch.test.ts +1 -1
- package/src/tools/__tests__/annotateMessagesForLLM.test.ts +1 -1
- package/src/tools/__tests__/directToolHITLResumeScope.test.ts +35 -32
- package/src/tools/__tests__/directToolHooks.test.ts +41 -0
- package/src/tools/__tests__/handlers.test.ts +2 -2
- package/src/tools/__tests__/hitl.test.ts +11 -11
- package/src/tools/__tests__/localToolNames.test.ts +8 -6
- package/src/tools/__tests__/skillCatalog.test.ts +1 -1
- package/src/tools/__tests__/subagentHooks.test.ts +20 -10
- package/src/tools/__tests__/workspaceSeam.test.ts +20 -7
- package/src/tools/cloudflare/CloudflareSandboxExecutionEngine.ts +9 -6
- package/src/tools/cloudflare/CloudflareSandboxTools.ts +19 -19
- package/src/tools/handlers.ts +5 -5
- package/src/tools/local/CompileCheckTool.ts +4 -7
- package/src/tools/local/FileCheckpointer.ts +6 -5
- package/src/tools/local/LocalCodingTools.ts +100 -45
- package/src/tools/local/LocalExecutionEngine.ts +5 -5
- package/src/tools/local/LocalExecutionTools.ts +9 -9
- package/src/tools/local/LocalProgrammaticToolCalling.ts +5 -4
- package/src/tools/local/attachments.ts +0 -6
- package/src/tools/local/resolveLocalExecutionTools.ts +15 -15
- package/src/tools/search/firecrawl.ts +1 -1
- package/src/tools/search/jina-reranker.test.ts +148 -37
- package/src/tools/search/rerankers.ts +14 -4
- package/src/tools/search/tavily-search.ts +2 -2
- package/src/tools/search/types.ts +1 -1
- package/src/tools/search/utils.ts +99 -9
- package/src/tools/subagent/SubagentExecutor.ts +12 -6
- package/src/types/graph.ts +20 -12
- package/src/types/llm.ts +7 -6
- package/src/types/messages.ts +1 -1
- package/src/types/run.ts +7 -7
- package/src/types/stream.ts +2 -2
- package/src/types/tools.ts +5 -1
- package/src/utils/handlers.ts +2 -2
- package/src/utils/llmConfig.ts +1 -1
- package/src/utils/logging.ts +20 -10
- package/src/utils/run.ts +2 -2
package/src/tools/ToolNode.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ToolCall } from '@langchain/core/messages/tool';
|
|
2
|
+
import { AsyncLocalStorageProviderSingleton } from '@langchain/core/singletons';
|
|
2
3
|
import {
|
|
3
4
|
ToolMessage,
|
|
4
5
|
HumanMessage,
|
|
@@ -14,7 +15,6 @@ import {
|
|
|
14
15
|
isGraphInterrupt,
|
|
15
16
|
MessagesAnnotation,
|
|
16
17
|
} from '@langchain/langgraph';
|
|
17
|
-
import { AsyncLocalStorageProviderSingleton } from '@langchain/core/singletons';
|
|
18
18
|
import type {
|
|
19
19
|
RunnableConfig,
|
|
20
20
|
RunnableToolLike,
|
|
@@ -33,29 +33,29 @@ import type {
|
|
|
33
33
|
PostToolBatchEntry,
|
|
34
34
|
} from '@/hooks';
|
|
35
35
|
import type * as t from '@/types';
|
|
36
|
-
import { RunnableCallable } from '@/utils';
|
|
37
|
-
import {
|
|
38
|
-
calculateMaxToolResultChars,
|
|
39
|
-
truncateToolResultContent,
|
|
40
|
-
} from '@/utils/truncation';
|
|
41
|
-
import { safeDispatchCustomEvent } from '@/utils/events';
|
|
42
|
-
import { executeHooks } from '@/hooks';
|
|
43
|
-
import { toLangChainContent } from '@/messages/langchain';
|
|
44
|
-
import { withLangfuseToolOutputTracingConfig } from '@/langfuseToolOutputTracing';
|
|
45
|
-
import { Constants, GraphEvents, CODE_EXECUTION_TOOLS } from '@/common';
|
|
46
36
|
import {
|
|
47
37
|
buildReferenceKey,
|
|
48
38
|
ToolOutputReferenceRegistry,
|
|
49
39
|
} from '@/tools/toolOutputReferences';
|
|
50
|
-
import { stripCodeSessionFileSummary } from '@/tools/CodeSessionFileSummary';
|
|
51
|
-
import {
|
|
52
|
-
resolveLocalToolRegistry,
|
|
53
|
-
resolveLocalExecutionTools,
|
|
54
|
-
} from '@/tools/local';
|
|
55
40
|
import {
|
|
56
41
|
buildToolExecutionRequestPlan,
|
|
57
42
|
recordArgsEqual,
|
|
58
43
|
} from '@/tools/eagerEventExecution';
|
|
44
|
+
import {
|
|
45
|
+
calculateMaxToolResultChars,
|
|
46
|
+
truncateToolResultContent,
|
|
47
|
+
} from '@/utils/truncation';
|
|
48
|
+
import {
|
|
49
|
+
resolveLocalToolRegistry,
|
|
50
|
+
resolveLocalExecutionTools,
|
|
51
|
+
} from '@/tools/local';
|
|
52
|
+
import { withLangfuseToolOutputTracingConfig } from '@/langfuseToolOutputTracing';
|
|
53
|
+
import { stripCodeSessionFileSummary } from '@/tools/CodeSessionFileSummary';
|
|
54
|
+
import { Constants, GraphEvents, CODE_EXECUTION_TOOLS } from '@/common';
|
|
55
|
+
import { toLangChainContent } from '@/messages/langchain';
|
|
56
|
+
import { safeDispatchCustomEvent } from '@/utils/events';
|
|
57
|
+
import { RunnableCallable } from '@/utils';
|
|
58
|
+
import { executeHooks } from '@/hooks';
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* Per-call batch context for `runTool`. Bundles every optional
|
|
@@ -431,6 +431,13 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
431
431
|
private eagerEventToolUsageCount?: Map<string, number>;
|
|
432
432
|
/** Agent ID for event-driven mode */
|
|
433
433
|
private agentId?: string;
|
|
434
|
+
/**
|
|
435
|
+
* ID of the agent that owns this tool node, whenever the graph knows it
|
|
436
|
+
* (including top-level agents in a multi-agent graph). Surfaced to hooks as
|
|
437
|
+
* `executingAgentId` so they can attribute a tool batch to a specific agent
|
|
438
|
+
* even where `agentId` (the subagent-scope marker) is undefined.
|
|
439
|
+
*/
|
|
440
|
+
private executingAgentId?: string;
|
|
434
441
|
/** Tool names that bypass event dispatch and execute directly (e.g., graph-managed handoff tools) */
|
|
435
442
|
private directToolNames?: Set<string>;
|
|
436
443
|
/**
|
|
@@ -492,6 +499,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
492
499
|
eagerEventToolExecutions,
|
|
493
500
|
eagerEventToolUsageCount,
|
|
494
501
|
agentId,
|
|
502
|
+
executingAgentId,
|
|
495
503
|
directToolNames,
|
|
496
504
|
maxContextTokens,
|
|
497
505
|
maxToolResultChars,
|
|
@@ -526,6 +534,9 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
526
534
|
this.eagerEventToolExecutions = eagerEventToolExecutions;
|
|
527
535
|
this.eagerEventToolUsageCount = eagerEventToolUsageCount;
|
|
528
536
|
this.agentId = agentId;
|
|
537
|
+
// Default to agentId so callers constructing ToolNode directly (who pass the
|
|
538
|
+
// existing agentId option) still get attribution without knowing the new option.
|
|
539
|
+
this.executingAgentId = executingAgentId ?? agentId;
|
|
529
540
|
this.directToolNames = directToolNames;
|
|
530
541
|
this.maxToolResultChars =
|
|
531
542
|
maxToolResultChars ?? calculateMaxToolResultChars(maxContextTokens);
|
|
@@ -925,6 +936,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
925
936
|
runId: (config.configurable?.run_id as string | undefined) ?? '',
|
|
926
937
|
threadId: config.configurable?.thread_id as string | undefined,
|
|
927
938
|
agentId: this.agentId,
|
|
939
|
+
executingAgentId: this.executingAgentId,
|
|
928
940
|
},
|
|
929
941
|
};
|
|
930
942
|
} else if (call.name === Constants.TOOL_SEARCH) {
|
|
@@ -1260,6 +1272,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
1260
1272
|
runId,
|
|
1261
1273
|
threadId,
|
|
1262
1274
|
agentId: this.agentId,
|
|
1275
|
+
executingAgentId: this.executingAgentId,
|
|
1263
1276
|
toolName: call.name,
|
|
1264
1277
|
toolInput: resolvedArgs,
|
|
1265
1278
|
toolUseId: call.id ?? '',
|
|
@@ -1467,6 +1480,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
1467
1480
|
runId,
|
|
1468
1481
|
threadId,
|
|
1469
1482
|
agentId: this.agentId,
|
|
1483
|
+
executingAgentId: this.executingAgentId,
|
|
1470
1484
|
toolName: call.name,
|
|
1471
1485
|
toolInput: effectiveCall.args as Record<string, unknown>,
|
|
1472
1486
|
toolUseId: call.id ?? '',
|
|
@@ -1500,6 +1514,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
1500
1514
|
runId,
|
|
1501
1515
|
threadId,
|
|
1502
1516
|
agentId: this.agentId,
|
|
1517
|
+
executingAgentId: this.executingAgentId,
|
|
1503
1518
|
toolName: call.name,
|
|
1504
1519
|
toolInput: effectiveCall.args as Record<string, unknown>,
|
|
1505
1520
|
toolOutput: output.content,
|
|
@@ -1606,6 +1621,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
1606
1621
|
runId,
|
|
1607
1622
|
threadId,
|
|
1608
1623
|
agentId: this.agentId,
|
|
1624
|
+
executingAgentId: this.executingAgentId,
|
|
1609
1625
|
toolName: call.name,
|
|
1610
1626
|
toolInput: resolvedArgs,
|
|
1611
1627
|
toolUseId: call.id ?? '',
|
|
@@ -1950,6 +1966,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
1950
1966
|
runId,
|
|
1951
1967
|
threadId,
|
|
1952
1968
|
agentId: this.agentId,
|
|
1969
|
+
executingAgentId: this.executingAgentId,
|
|
1953
1970
|
toolName: entry.call.name,
|
|
1954
1971
|
toolInput: entry.args,
|
|
1955
1972
|
toolUseId: entry.call.id!,
|
|
@@ -2041,6 +2058,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
2041
2058
|
runId,
|
|
2042
2059
|
threadId,
|
|
2043
2060
|
agentId: this.agentId,
|
|
2061
|
+
executingAgentId: this.executingAgentId,
|
|
2044
2062
|
toolName: item.toolName,
|
|
2045
2063
|
toolInput: item.args,
|
|
2046
2064
|
toolUseId: item.callId,
|
|
@@ -2609,6 +2627,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
2609
2627
|
runId,
|
|
2610
2628
|
threadId,
|
|
2611
2629
|
agentId: this.agentId,
|
|
2630
|
+
executingAgentId: this.executingAgentId,
|
|
2612
2631
|
toolName,
|
|
2613
2632
|
toolInput: request?.args ?? {},
|
|
2614
2633
|
toolUseId: result.toolCallId,
|
|
@@ -2652,6 +2671,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
2652
2671
|
runId,
|
|
2653
2672
|
threadId,
|
|
2654
2673
|
agentId: this.agentId,
|
|
2674
|
+
executingAgentId: this.executingAgentId,
|
|
2655
2675
|
toolName,
|
|
2656
2676
|
toolInput: request?.args ?? {},
|
|
2657
2677
|
toolOutput: result.content,
|
|
@@ -2889,6 +2909,7 @@ export class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
|
2889
2909
|
runId,
|
|
2890
2910
|
threadId,
|
|
2891
2911
|
agentId: this.agentId,
|
|
2912
|
+
executingAgentId: this.executingAgentId,
|
|
2892
2913
|
entries: orderedBatchEntries,
|
|
2893
2914
|
},
|
|
2894
2915
|
sessionId: runId,
|
package/src/tools/ToolSearch.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type * as t from '@/types';
|
|
2
|
-
import { Constants } from '@/common';
|
|
3
|
-
import { spawnLocalProcess } from '../local/LocalExecutionEngine';
|
|
4
|
-
import { resolveLocalToolsForBinding } from '../local/resolveLocalExecutionTools';
|
|
5
2
|
import {
|
|
6
3
|
createCloudflareWorkspaceFS,
|
|
7
4
|
createCloudflareLocalExecutionConfig,
|
|
8
5
|
executeCloudflareBash,
|
|
9
6
|
executeCloudflareCode,
|
|
10
7
|
} from '../cloudflare/CloudflareSandboxExecutionEngine';
|
|
11
|
-
import { createCloudflareBridgeRuntime } from '../cloudflare/CloudflareBridgeRuntime';
|
|
12
8
|
import {
|
|
13
9
|
createCloudflareBashProgrammaticToolCallingTool,
|
|
14
10
|
createCloudflareProgrammaticToolCallingTool,
|
|
15
11
|
} from '../cloudflare/CloudflareProgrammaticToolCalling';
|
|
12
|
+
import { createCloudflareBridgeRuntime } from '../cloudflare/CloudflareBridgeRuntime';
|
|
13
|
+
import { resolveLocalToolsForBinding } from '../local/resolveLocalExecutionTools';
|
|
14
|
+
import { spawnLocalProcess } from '../local/LocalExecutionEngine';
|
|
15
|
+
import { Constants } from '@/common';
|
|
16
16
|
|
|
17
17
|
function sseResponse(events: string): Response {
|
|
18
18
|
return new Response(events, {
|
|
@@ -3,10 +3,14 @@ import { beforeEach, describe, expect, it, jest } from '@jest/globals';
|
|
|
3
3
|
import type { RequestInit } from 'node-fetch';
|
|
4
4
|
import type * as t from '@/types';
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
} from '../
|
|
9
|
-
import {
|
|
6
|
+
createLocalProgrammaticToolCallingTool,
|
|
7
|
+
createLocalBashProgrammaticToolCallingTool,
|
|
8
|
+
} from '../local/LocalProgrammaticToolCalling';
|
|
9
|
+
import {
|
|
10
|
+
clampCodeApiRunTimeoutMs,
|
|
11
|
+
createCodeApiRunTimeoutSchema,
|
|
12
|
+
MAX_CODE_API_RUN_TIMEOUT_SCHEMA_MS,
|
|
13
|
+
} from '../ptcTimeout';
|
|
10
14
|
import {
|
|
11
15
|
createProgrammaticToolCallingTool,
|
|
12
16
|
fetchSessionFiles,
|
|
@@ -14,14 +18,10 @@ import {
|
|
|
14
18
|
} from '../ProgrammaticToolCalling';
|
|
15
19
|
import { createBashProgrammaticToolCallingTool } from '../BashProgrammaticToolCalling';
|
|
16
20
|
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
} from '../
|
|
21
|
-
import {
|
|
22
|
-
createLocalProgrammaticToolCallingTool,
|
|
23
|
-
createLocalBashProgrammaticToolCallingTool,
|
|
24
|
-
} from '../local/LocalProgrammaticToolCalling';
|
|
21
|
+
createCodeExecutionTool,
|
|
22
|
+
resolveCodeApiAuthHeaders,
|
|
23
|
+
} from '../CodeExecutor';
|
|
24
|
+
import { createBashExecutionTool } from '../BashExecutor';
|
|
25
25
|
|
|
26
26
|
jest.mock('node-fetch', () => ({
|
|
27
27
|
__esModule: true,
|