@librechat/agents 3.2.21 → 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 +2 -2
- 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 +41 -20
- 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 +2 -2
- 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 +41 -20
- 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/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 +4 -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 +11 -11
- 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/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 +68 -41
- 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/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 +12 -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
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { HumanMessage } from '@langchain/core/messages';
|
|
2
2
|
import type { TPayload } from '@/types';
|
|
3
|
-
import { formatAgentMessages } from './format';
|
|
4
3
|
import { ContentTypes, Constants } from '@/common';
|
|
4
|
+
import { formatAgentMessages } from './format';
|
|
5
5
|
|
|
6
6
|
/** Helper to build a skill tool_call content part */
|
|
7
7
|
function skillToolCall(
|
|
8
8
|
id: string,
|
|
9
9
|
skillName: string,
|
|
10
|
-
output = 'Skill loaded.'
|
|
10
|
+
output = 'Skill loaded.'
|
|
11
11
|
): Record<string, unknown> {
|
|
12
12
|
return {
|
|
13
13
|
type: ContentTypes.TOOL_CALL,
|
|
@@ -45,15 +45,24 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
45
45
|
},
|
|
46
46
|
];
|
|
47
47
|
|
|
48
|
-
const { messages } = formatAgentMessages(
|
|
48
|
+
const { messages } = formatAgentMessages(
|
|
49
|
+
payload,
|
|
50
|
+
undefined,
|
|
51
|
+
tools,
|
|
52
|
+
skillBodies
|
|
53
|
+
);
|
|
49
54
|
|
|
50
55
|
// user, AI, ToolMessage, injected HumanMessage
|
|
51
56
|
expect(messages.length).toBeGreaterThanOrEqual(4);
|
|
52
57
|
const last = messages[messages.length - 1];
|
|
53
58
|
expect(last).toBeInstanceOf(HumanMessage);
|
|
54
|
-
expect(last.content).toBe(
|
|
59
|
+
expect(last.content).toBe(
|
|
60
|
+
'# PDF Analyzer\nAnalyze PDF files step by step.'
|
|
61
|
+
);
|
|
55
62
|
expect((last as HumanMessage).additional_kwargs.source).toBe('skill');
|
|
56
|
-
expect((last as HumanMessage).additional_kwargs.skillName).toBe(
|
|
63
|
+
expect((last as HumanMessage).additional_kwargs.skillName).toBe(
|
|
64
|
+
'pdf-analyzer'
|
|
65
|
+
);
|
|
57
66
|
expect((last as HumanMessage).additional_kwargs.isMeta).toBe(true);
|
|
58
67
|
});
|
|
59
68
|
|
|
@@ -67,7 +76,12 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
67
76
|
},
|
|
68
77
|
];
|
|
69
78
|
|
|
70
|
-
const { messages } = formatAgentMessages(
|
|
79
|
+
const { messages } = formatAgentMessages(
|
|
80
|
+
payload,
|
|
81
|
+
undefined,
|
|
82
|
+
restrictedTools,
|
|
83
|
+
skillBodies
|
|
84
|
+
);
|
|
71
85
|
|
|
72
86
|
const humanMessages = messages.filter((m) => m instanceof HumanMessage);
|
|
73
87
|
// Only the user message, no injected skill body
|
|
@@ -83,7 +97,12 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
83
97
|
},
|
|
84
98
|
];
|
|
85
99
|
|
|
86
|
-
const { messages } = formatAgentMessages(
|
|
100
|
+
const { messages } = formatAgentMessages(
|
|
101
|
+
payload,
|
|
102
|
+
undefined,
|
|
103
|
+
tools,
|
|
104
|
+
skillBodies
|
|
105
|
+
);
|
|
87
106
|
|
|
88
107
|
const humanMessages = messages.filter((m) => m instanceof HumanMessage);
|
|
89
108
|
expect(humanMessages).toHaveLength(1); // only the user message
|
|
@@ -100,13 +119,22 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
100
119
|
},
|
|
101
120
|
];
|
|
102
121
|
|
|
103
|
-
const { messages } = formatAgentMessages(
|
|
122
|
+
const { messages } = formatAgentMessages(
|
|
123
|
+
payload,
|
|
124
|
+
undefined,
|
|
125
|
+
undefined,
|
|
126
|
+
skillBodies
|
|
127
|
+
);
|
|
104
128
|
|
|
105
129
|
const injected = messages.filter(
|
|
106
|
-
(m) =>
|
|
130
|
+
(m) =>
|
|
131
|
+
m instanceof HumanMessage &&
|
|
132
|
+
(m as HumanMessage).additional_kwargs.source === 'skill'
|
|
107
133
|
);
|
|
108
134
|
expect(injected).toHaveLength(1);
|
|
109
|
-
expect(injected[0].content).toBe(
|
|
135
|
+
expect(injected[0].content).toBe(
|
|
136
|
+
'# Code Review\nReview the code for issues.'
|
|
137
|
+
);
|
|
110
138
|
});
|
|
111
139
|
|
|
112
140
|
it('no injection when skills Map is undefined', () => {
|
|
@@ -118,10 +146,17 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
118
146
|
},
|
|
119
147
|
];
|
|
120
148
|
|
|
121
|
-
const { messages } = formatAgentMessages(
|
|
149
|
+
const { messages } = formatAgentMessages(
|
|
150
|
+
payload,
|
|
151
|
+
undefined,
|
|
152
|
+
undefined,
|
|
153
|
+
undefined
|
|
154
|
+
);
|
|
122
155
|
|
|
123
156
|
const injected = messages.filter(
|
|
124
|
-
(m) =>
|
|
157
|
+
(m) =>
|
|
158
|
+
m instanceof HumanMessage &&
|
|
159
|
+
(m as HumanMessage).additional_kwargs.source === 'skill'
|
|
125
160
|
);
|
|
126
161
|
expect(injected).toHaveLength(0);
|
|
127
162
|
});
|
|
@@ -135,10 +170,17 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
135
170
|
},
|
|
136
171
|
];
|
|
137
172
|
|
|
138
|
-
const { messages } = formatAgentMessages(
|
|
173
|
+
const { messages } = formatAgentMessages(
|
|
174
|
+
payload,
|
|
175
|
+
undefined,
|
|
176
|
+
undefined,
|
|
177
|
+
new Map()
|
|
178
|
+
);
|
|
139
179
|
|
|
140
180
|
const injected = messages.filter(
|
|
141
|
-
(m) =>
|
|
181
|
+
(m) =>
|
|
182
|
+
m instanceof HumanMessage &&
|
|
183
|
+
(m as HumanMessage).additional_kwargs.source === 'skill'
|
|
142
184
|
);
|
|
143
185
|
expect(injected).toHaveLength(0);
|
|
144
186
|
});
|
|
@@ -166,10 +208,17 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
166
208
|
},
|
|
167
209
|
];
|
|
168
210
|
|
|
169
|
-
const { messages } = formatAgentMessages(
|
|
211
|
+
const { messages } = formatAgentMessages(
|
|
212
|
+
payload,
|
|
213
|
+
undefined,
|
|
214
|
+
tools,
|
|
215
|
+
skillBodies
|
|
216
|
+
);
|
|
170
217
|
|
|
171
218
|
const injected = messages.filter(
|
|
172
|
-
(m) =>
|
|
219
|
+
(m) =>
|
|
220
|
+
m instanceof HumanMessage &&
|
|
221
|
+
(m as HumanMessage).additional_kwargs.source === 'skill'
|
|
173
222
|
);
|
|
174
223
|
expect(injected).toHaveLength(1);
|
|
175
224
|
});
|
|
@@ -193,10 +242,17 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
193
242
|
},
|
|
194
243
|
];
|
|
195
244
|
|
|
196
|
-
const { messages } = formatAgentMessages(
|
|
245
|
+
const { messages } = formatAgentMessages(
|
|
246
|
+
payload,
|
|
247
|
+
undefined,
|
|
248
|
+
tools,
|
|
249
|
+
skillBodies
|
|
250
|
+
);
|
|
197
251
|
|
|
198
252
|
const injected = messages.filter(
|
|
199
|
-
(m) =>
|
|
253
|
+
(m) =>
|
|
254
|
+
m instanceof HumanMessage &&
|
|
255
|
+
(m as HumanMessage).additional_kwargs.source === 'skill'
|
|
200
256
|
);
|
|
201
257
|
expect(injected).toHaveLength(0); // gracefully skipped
|
|
202
258
|
});
|
|
@@ -220,10 +276,17 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
220
276
|
},
|
|
221
277
|
];
|
|
222
278
|
|
|
223
|
-
const { messages } = formatAgentMessages(
|
|
279
|
+
const { messages } = formatAgentMessages(
|
|
280
|
+
payload,
|
|
281
|
+
undefined,
|
|
282
|
+
tools,
|
|
283
|
+
skillBodies
|
|
284
|
+
);
|
|
224
285
|
|
|
225
286
|
const injected = messages.filter(
|
|
226
|
-
(m) =>
|
|
287
|
+
(m) =>
|
|
288
|
+
m instanceof HumanMessage &&
|
|
289
|
+
(m as HumanMessage).additional_kwargs.source === 'skill'
|
|
227
290
|
);
|
|
228
291
|
expect(injected).toHaveLength(0);
|
|
229
292
|
});
|
|
@@ -244,10 +307,17 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
244
307
|
},
|
|
245
308
|
];
|
|
246
309
|
|
|
247
|
-
const { messages } = formatAgentMessages(
|
|
310
|
+
const { messages } = formatAgentMessages(
|
|
311
|
+
payload,
|
|
312
|
+
undefined,
|
|
313
|
+
tools,
|
|
314
|
+
skillBodies
|
|
315
|
+
);
|
|
248
316
|
|
|
249
317
|
const injected = messages.filter(
|
|
250
|
-
(m) =>
|
|
318
|
+
(m) =>
|
|
319
|
+
m instanceof HumanMessage &&
|
|
320
|
+
(m as HumanMessage).additional_kwargs.source === 'skill'
|
|
251
321
|
);
|
|
252
322
|
expect(injected).toHaveLength(1);
|
|
253
323
|
});
|
|
@@ -264,13 +334,22 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
264
334
|
},
|
|
265
335
|
];
|
|
266
336
|
|
|
267
|
-
const { messages } = formatAgentMessages(
|
|
337
|
+
const { messages } = formatAgentMessages(
|
|
338
|
+
payload,
|
|
339
|
+
undefined,
|
|
340
|
+
tools,
|
|
341
|
+
skillBodies
|
|
342
|
+
);
|
|
268
343
|
|
|
269
344
|
const injected = messages.filter(
|
|
270
|
-
(m) =>
|
|
345
|
+
(m) =>
|
|
346
|
+
m instanceof HumanMessage &&
|
|
347
|
+
(m as HumanMessage).additional_kwargs.source === 'skill'
|
|
271
348
|
);
|
|
272
349
|
expect(injected).toHaveLength(2);
|
|
273
|
-
const names = injected.map(
|
|
350
|
+
const names = injected.map(
|
|
351
|
+
(m) => (m as HumanMessage).additional_kwargs.skillName
|
|
352
|
+
);
|
|
274
353
|
expect(names).toContain('pdf-analyzer');
|
|
275
354
|
expect(names).toContain('code-review');
|
|
276
355
|
});
|
|
@@ -304,7 +383,7 @@ describe('formatAgentMessages skill body reconstruction', () => {
|
|
|
304
383
|
payload,
|
|
305
384
|
inputTokenMap,
|
|
306
385
|
tools,
|
|
307
|
-
skillBodies
|
|
386
|
+
skillBodies
|
|
308
387
|
);
|
|
309
388
|
|
|
310
389
|
// There should be messages: user, AI, ToolMessage, injected HumanMessage
|