@illuma-ai/agents 1.4.0-alpha.6 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -0
- package/dist/cjs/agents/AgentContext.cjs +274 -67
- package/dist/cjs/agents/AgentContext.cjs.map +1 -1
- package/dist/cjs/common/enum.cjs +44 -13
- package/dist/cjs/common/enum.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +182 -5
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/graphs/MultiAgentGraph.cjs +152 -1167
- package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
- package/dist/cjs/graphs/phases/memoryFlushPhase.cjs +1 -1
- package/dist/cjs/graphs/phases/memoryFlushPhase.cjs.map +1 -1
- package/dist/cjs/hooks/HookRegistry.cjs +162 -0
- package/dist/cjs/hooks/HookRegistry.cjs.map +1 -0
- package/dist/cjs/hooks/executeHooks.cjs +276 -0
- package/dist/cjs/hooks/executeHooks.cjs.map +1 -0
- package/dist/cjs/hooks/matchers.cjs +256 -0
- package/dist/cjs/hooks/matchers.cjs.map +1 -0
- package/dist/cjs/hooks/types.cjs +27 -0
- package/dist/cjs/hooks/types.cjs.map +1 -0
- package/dist/cjs/langchain/google-common.cjs +3 -0
- package/dist/cjs/langchain/google-common.cjs.map +1 -0
- package/dist/cjs/langchain/index.cjs +86 -0
- package/dist/cjs/langchain/index.cjs.map +1 -0
- package/dist/cjs/langchain/language_models/chat_models.cjs +3 -0
- package/dist/cjs/langchain/language_models/chat_models.cjs.map +1 -0
- package/dist/cjs/langchain/messages/tool.cjs +3 -0
- package/dist/cjs/langchain/messages/tool.cjs.map +1 -0
- package/dist/cjs/langchain/messages.cjs +51 -0
- package/dist/cjs/langchain/messages.cjs.map +1 -0
- package/dist/cjs/langchain/openai.cjs +3 -0
- package/dist/cjs/langchain/openai.cjs.map +1 -0
- package/dist/cjs/langchain/prompts.cjs +11 -0
- package/dist/cjs/langchain/prompts.cjs.map +1 -0
- package/dist/cjs/langchain/runnables.cjs +19 -0
- package/dist/cjs/langchain/runnables.cjs.map +1 -0
- package/dist/cjs/langchain/tools.cjs +23 -0
- package/dist/cjs/langchain/tools.cjs.map +1 -0
- package/dist/cjs/langchain/utils/env.cjs +11 -0
- package/dist/cjs/langchain/utils/env.cjs.map +1 -0
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +5 -1
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/cacheSupport.cjs +55 -0
- package/dist/cjs/llm/bedrock/cacheSupport.cjs.map +1 -0
- package/dist/cjs/llm/bedrock/index.cjs +61 -33
- package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
- package/dist/cjs/llm/openai/index.cjs +1 -4
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/llm/openai/utils/index.cjs +27 -10
- package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
- package/dist/cjs/main.cjs +178 -127
- package/dist/cjs/main.cjs.map +1 -1
- package/dist/cjs/memory/citations.cjs +4 -4
- package/dist/cjs/memory/citations.cjs.map +1 -1
- package/dist/cjs/memory/constants.cjs +17 -17
- package/dist/cjs/memory/constants.cjs.map +1 -1
- package/dist/cjs/memory/mmr.cjs +1 -1
- package/dist/cjs/memory/mmr.cjs.map +1 -1
- package/dist/cjs/memory/paths.cjs +1 -1
- package/dist/cjs/memory/paths.cjs.map +1 -1
- package/dist/cjs/memory/recallTracking.cjs +3 -3
- package/dist/cjs/memory/recallTracking.cjs.map +1 -1
- package/dist/cjs/memory/temporalDecay.cjs +2 -2
- package/dist/cjs/memory/temporalDecay.cjs.map +1 -1
- package/dist/cjs/messages/cache.cjs +89 -0
- package/dist/cjs/messages/cache.cjs.map +1 -1
- package/dist/cjs/messages/contextPruning.cjs +156 -0
- package/dist/cjs/messages/contextPruning.cjs.map +1 -0
- package/dist/cjs/messages/contextPruningSettings.cjs +53 -0
- package/dist/cjs/messages/contextPruningSettings.cjs.map +1 -0
- package/dist/cjs/messages/format.cjs +144 -20
- package/dist/cjs/messages/format.cjs.map +1 -1
- package/dist/cjs/messages/prune.cjs +505 -4
- package/dist/cjs/messages/prune.cjs.map +1 -1
- package/dist/cjs/run.cjs +141 -1
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/cjs/tools/BashExecutor.cjs +235 -0
- package/dist/cjs/tools/BashExecutor.cjs.map +1 -0
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +297 -0
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -0
- package/dist/cjs/tools/CodeExecutor.cjs +45 -47
- package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs +16 -11
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/ReadFile.cjs +44 -0
- package/dist/cjs/tools/ReadFile.cjs.map +1 -0
- package/dist/cjs/tools/SkillTool.cjs +51 -0
- package/dist/cjs/tools/SkillTool.cjs.map +1 -0
- package/dist/cjs/tools/SubagentTool.cjs +93 -0
- package/dist/cjs/tools/SubagentTool.cjs.map +1 -0
- package/dist/cjs/tools/ToolNode.cjs +450 -24
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/memory/memoryAppendTool.cjs +1 -1
- package/dist/cjs/tools/memory/memoryAppendTool.cjs.map +1 -1
- package/dist/cjs/tools/memory/memoryGetTool.cjs +2 -2
- package/dist/cjs/tools/memory/memoryGetTool.cjs.map +1 -1
- package/dist/cjs/tools/memory/memorySearchTool.cjs +3 -3
- package/dist/cjs/tools/memory/memorySearchTool.cjs.map +1 -1
- package/dist/cjs/tools/memory/shared.cjs +1 -1
- package/dist/cjs/tools/memory/shared.cjs.map +1 -1
- package/dist/cjs/tools/search/search.cjs +11 -3
- package/dist/cjs/tools/search/search.cjs.map +1 -1
- package/dist/cjs/tools/search/tavily-scraper.cjs +189 -0
- package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -0
- package/dist/cjs/tools/search/tavily-search.cjs +372 -0
- package/dist/cjs/tools/search/tavily-search.cjs.map +1 -0
- package/dist/cjs/tools/search/tool.cjs +28 -4
- package/dist/cjs/tools/search/tool.cjs.map +1 -1
- package/dist/cjs/tools/search/utils.cjs +10 -3
- package/dist/cjs/tools/search/utils.cjs.map +1 -1
- package/dist/cjs/tools/skillCatalog.cjs +84 -0
- package/dist/cjs/tools/skillCatalog.cjs.map +1 -0
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs +512 -0
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -0
- package/dist/cjs/tools/toolOutputReferences.cjs +670 -0
- package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -0
- package/dist/cjs/types/agent-cache.cjs +54 -0
- package/dist/cjs/types/agent-cache.cjs.map +1 -0
- package/dist/cjs/types/graph.cjs.map +1 -1
- package/dist/cjs/utils/truncation.cjs +135 -0
- package/dist/cjs/utils/truncation.cjs.map +1 -0
- package/dist/esm/agents/AgentContext.mjs +274 -67
- package/dist/esm/agents/AgentContext.mjs.map +1 -1
- package/dist/esm/common/enum.mjs +44 -12
- package/dist/esm/common/enum.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +182 -5
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/graphs/MultiAgentGraph.mjs +155 -1170
- package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
- package/dist/esm/graphs/phases/memoryFlushPhase.mjs +1 -1
- package/dist/esm/graphs/phases/memoryFlushPhase.mjs.map +1 -1
- package/dist/esm/hooks/HookRegistry.mjs +160 -0
- package/dist/esm/hooks/HookRegistry.mjs.map +1 -0
- package/dist/esm/hooks/executeHooks.mjs +273 -0
- package/dist/esm/hooks/executeHooks.mjs.map +1 -0
- package/dist/esm/hooks/matchers.mjs +251 -0
- package/dist/esm/hooks/matchers.mjs.map +1 -0
- package/dist/esm/hooks/types.mjs +25 -0
- package/dist/esm/hooks/types.mjs.map +1 -0
- package/dist/esm/langchain/google-common.mjs +2 -0
- package/dist/esm/langchain/google-common.mjs.map +1 -0
- package/dist/esm/langchain/index.mjs +5 -0
- package/dist/esm/langchain/language_models/chat_models.mjs +2 -0
- package/dist/esm/langchain/language_models/chat_models.mjs.map +1 -0
- package/dist/esm/langchain/messages/tool.mjs +2 -0
- package/dist/esm/langchain/messages/tool.mjs.map +1 -0
- package/dist/esm/langchain/messages.mjs +2 -0
- package/dist/esm/langchain/messages.mjs.map +1 -0
- package/dist/esm/langchain/openai.mjs +2 -0
- package/dist/esm/langchain/openai.mjs.map +1 -0
- package/dist/esm/langchain/prompts.mjs +2 -0
- package/dist/esm/langchain/prompts.mjs.map +1 -0
- package/dist/esm/langchain/runnables.mjs +2 -0
- package/dist/esm/langchain/runnables.mjs.map +1 -0
- package/dist/esm/langchain/tools.mjs +2 -0
- package/dist/esm/langchain/tools.mjs.map +1 -0
- package/dist/esm/langchain/utils/env.mjs +2 -0
- package/dist/esm/langchain/utils/env.mjs.map +1 -0
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs +5 -1
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
- package/dist/esm/llm/bedrock/cacheSupport.mjs +52 -0
- package/dist/esm/llm/bedrock/cacheSupport.mjs.map +1 -0
- package/dist/esm/llm/bedrock/index.mjs +61 -34
- package/dist/esm/llm/bedrock/index.mjs.map +1 -1
- package/dist/esm/llm/openai/index.mjs +1 -4
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/llm/openai/utils/index.mjs +27 -10
- package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
- package/dist/esm/main.mjs +21 -27
- package/dist/esm/main.mjs.map +1 -1
- package/dist/esm/memory/citations.mjs +4 -4
- package/dist/esm/memory/citations.mjs.map +1 -1
- package/dist/esm/memory/constants.mjs +17 -17
- package/dist/esm/memory/constants.mjs.map +1 -1
- package/dist/esm/memory/mmr.mjs +1 -1
- package/dist/esm/memory/mmr.mjs.map +1 -1
- package/dist/esm/memory/paths.mjs +1 -1
- package/dist/esm/memory/paths.mjs.map +1 -1
- package/dist/esm/memory/recallTracking.mjs +3 -3
- package/dist/esm/memory/recallTracking.mjs.map +1 -1
- package/dist/esm/memory/temporalDecay.mjs +2 -2
- package/dist/esm/memory/temporalDecay.mjs.map +1 -1
- package/dist/esm/messages/cache.mjs +89 -0
- package/dist/esm/messages/cache.mjs.map +1 -1
- package/dist/esm/messages/contextPruning.mjs +154 -0
- package/dist/esm/messages/contextPruning.mjs.map +1 -0
- package/dist/esm/messages/contextPruningSettings.mjs +50 -0
- package/dist/esm/messages/contextPruningSettings.mjs.map +1 -0
- package/dist/esm/messages/format.mjs +136 -12
- package/dist/esm/messages/format.mjs.map +1 -1
- package/dist/esm/messages/prune.mjs +504 -7
- package/dist/esm/messages/prune.mjs.map +1 -1
- package/dist/esm/run.mjs +141 -1
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/tools/BashExecutor.mjs +227 -0
- package/dist/esm/tools/BashExecutor.mjs.map +1 -0
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs +288 -0
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -0
- package/dist/esm/tools/CodeExecutor.mjs +45 -48
- package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
- package/dist/esm/tools/ProgrammaticToolCalling.mjs +17 -12
- package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/ReadFile.mjs +39 -0
- package/dist/esm/tools/ReadFile.mjs.map +1 -0
- package/dist/esm/tools/SkillTool.mjs +46 -0
- package/dist/esm/tools/SkillTool.mjs.map +1 -0
- package/dist/esm/tools/SubagentTool.mjs +86 -0
- package/dist/esm/tools/SubagentTool.mjs.map +1 -0
- package/dist/esm/tools/ToolNode.mjs +452 -26
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/memory/memoryAppendTool.mjs +1 -1
- package/dist/esm/tools/memory/memoryAppendTool.mjs.map +1 -1
- package/dist/esm/tools/memory/memoryGetTool.mjs +2 -2
- package/dist/esm/tools/memory/memoryGetTool.mjs.map +1 -1
- package/dist/esm/tools/memory/memorySearchTool.mjs +3 -3
- package/dist/esm/tools/memory/memorySearchTool.mjs.map +1 -1
- package/dist/esm/tools/memory/shared.mjs +1 -1
- package/dist/esm/tools/memory/shared.mjs.map +1 -1
- package/dist/esm/tools/search/search.mjs +11 -3
- package/dist/esm/tools/search/search.mjs.map +1 -1
- package/dist/esm/tools/search/tavily-scraper.mjs +186 -0
- package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -0
- package/dist/esm/tools/search/tavily-search.mjs +370 -0
- package/dist/esm/tools/search/tavily-search.mjs.map +1 -0
- package/dist/esm/tools/search/tool.mjs +28 -4
- package/dist/esm/tools/search/tool.mjs.map +1 -1
- package/dist/esm/tools/search/utils.mjs +10 -3
- package/dist/esm/tools/search/utils.mjs.map +1 -1
- package/dist/esm/tools/skillCatalog.mjs +82 -0
- package/dist/esm/tools/skillCatalog.mjs.map +1 -0
- package/dist/esm/tools/subagent/SubagentExecutor.mjs +506 -0
- package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -0
- package/dist/esm/tools/toolOutputReferences.mjs +662 -0
- package/dist/esm/tools/toolOutputReferences.mjs.map +1 -0
- package/dist/esm/types/agent-cache.mjs +52 -0
- package/dist/esm/types/agent-cache.mjs.map +1 -0
- package/dist/esm/types/graph.mjs.map +1 -1
- package/dist/esm/utils/truncation.mjs +128 -0
- package/dist/esm/utils/truncation.mjs.map +1 -0
- package/dist/types/agents/AgentContext.d.ts +101 -8
- package/dist/types/common/enum.d.ts +39 -12
- package/dist/types/common/index.d.ts +0 -1
- package/dist/types/graphs/Graph.d.ts +43 -0
- package/dist/types/graphs/MultiAgentGraph.d.ts +26 -150
- package/dist/types/graphs/index.d.ts +0 -1
- package/dist/types/graphs/phases/memoryFlushPhase.d.ts +2 -2
- package/dist/types/hooks/HookRegistry.d.ts +56 -0
- package/dist/types/hooks/executeHooks.d.ts +79 -0
- package/dist/types/hooks/index.d.ts +6 -0
- package/dist/types/hooks/matchers.d.ts +95 -0
- package/dist/types/hooks/types.d.ts +320 -0
- package/dist/types/index.d.ts +9 -9
- package/dist/types/langchain/google-common.d.ts +1 -0
- package/dist/types/langchain/index.d.ts +8 -0
- package/dist/types/langchain/language_models/chat_models.d.ts +1 -0
- package/dist/types/langchain/messages/tool.d.ts +1 -0
- package/dist/types/langchain/messages.d.ts +2 -0
- package/dist/types/langchain/openai.d.ts +1 -0
- package/dist/types/langchain/prompts.d.ts +1 -0
- package/dist/types/langchain/runnables.d.ts +2 -0
- package/dist/types/langchain/tools.d.ts +2 -0
- package/dist/types/langchain/utils/env.d.ts +1 -0
- package/dist/types/llm/bedrock/cacheSupport.d.ts +35 -0
- package/dist/types/llm/bedrock/index.d.ts +54 -1
- package/dist/types/llm/openai/index.d.ts +1 -1
- package/dist/types/memory/citations.d.ts +4 -4
- package/dist/types/memory/constants.d.ts +17 -17
- package/dist/types/memory/mmr.d.ts +3 -3
- package/dist/types/memory/paths.d.ts +1 -1
- package/dist/types/memory/temporalDecay.d.ts +2 -2
- package/dist/types/memory/types.d.ts +3 -3
- package/dist/types/messages/contextPruning.d.ts +42 -0
- package/dist/types/messages/contextPruningSettings.d.ts +44 -0
- package/dist/types/messages/format.d.ts +9 -1
- package/dist/types/messages/index.d.ts +2 -0
- package/dist/types/messages/prune.d.ts +91 -1
- package/dist/types/run.d.ts +2 -0
- package/dist/types/tools/BashExecutor.d.ts +76 -0
- package/dist/types/tools/BashProgrammaticToolCalling.d.ts +72 -0
- package/dist/types/tools/CodeExecutor.d.ts +8 -26
- package/dist/types/tools/ReadFile.d.ts +28 -0
- package/dist/types/tools/SkillTool.d.ts +40 -0
- package/dist/types/tools/SubagentTool.d.ts +36 -0
- package/dist/types/tools/ToolNode.d.ts +77 -5
- package/dist/types/tools/memory/shared.d.ts +1 -1
- package/dist/types/tools/search/tavily-scraper.d.ts +19 -0
- package/dist/types/tools/search/tavily-search.d.ts +4 -0
- package/dist/types/tools/search/types.d.ts +99 -5
- package/dist/types/tools/search/utils.d.ts +2 -2
- package/dist/types/tools/skillCatalog.d.ts +19 -0
- package/dist/types/tools/subagent/SubagentExecutor.d.ts +137 -0
- package/dist/types/tools/subagent/index.d.ts +2 -0
- package/dist/types/tools/subagent/types.d.ts +84 -0
- package/dist/types/tools/toolOutputReferences.d.ts +236 -0
- package/dist/types/types/agent-cache.d.ts +71 -0
- package/dist/types/types/graph.d.ts +163 -22
- package/dist/types/types/index.d.ts +3 -0
- package/dist/types/types/messages.d.ts +26 -0
- package/dist/types/types/run.d.ts +22 -0
- package/dist/types/types/skill.d.ts +9 -0
- package/dist/types/types/tools.d.ts +111 -0
- package/dist/types/utils/index.d.ts +1 -3
- package/dist/types/utils/truncation.d.ts +70 -0
- package/package.json +57 -17
- package/src/agents/AgentContext.ts +321 -78
- package/src/agents/__tests__/AgentContext.cacheTtl.live.test.ts +259 -0
- package/src/agents/__tests__/AgentContext.crossAgentTier1.live.test.ts +266 -0
- package/src/agents/__tests__/AgentContext.crossUserCache.live.test.ts +342 -0
- package/src/agents/__tests__/AgentContext.test.ts +632 -0
- package/src/common/__tests__/enum.test.ts +7 -17
- package/src/common/enum.ts +43 -12
- package/src/common/index.ts +0 -1
- package/src/graphs/Graph.ts +222 -2
- package/src/graphs/MultiAgentGraph.ts +154 -1466
- package/src/graphs/__tests__/MultiAgentGraph.test.ts +91 -0
- package/src/graphs/gapFeatures.test.ts +1 -1
- package/src/graphs/index.ts +0 -1
- package/src/graphs/phases/__tests__/memoryFlushPhase.test.ts +1 -1
- package/src/graphs/phases/memoryFlushPhase.ts +2 -2
- package/src/hooks/HookRegistry.ts +208 -0
- package/src/hooks/__tests__/HookRegistry.test.ts +190 -0
- package/src/hooks/__tests__/compactHooks.test.ts +214 -0
- package/src/hooks/__tests__/executeHooks.test.ts +1013 -0
- package/src/hooks/__tests__/integration.test.ts +337 -0
- package/src/hooks/__tests__/matchers.test.ts +238 -0
- package/src/hooks/__tests__/toolHooks.test.ts +665 -0
- package/src/hooks/executeHooks.ts +375 -0
- package/src/hooks/index.ts +57 -0
- package/src/hooks/matchers.ts +280 -0
- package/src/hooks/types.ts +404 -0
- package/src/index.ts +15 -24
- package/src/langchain/google-common.ts +1 -0
- package/src/langchain/index.ts +8 -0
- package/src/langchain/language_models/chat_models.ts +1 -0
- package/src/langchain/messages/tool.ts +5 -0
- package/src/langchain/messages.ts +21 -0
- package/src/langchain/openai.ts +1 -0
- package/src/langchain/prompts.ts +1 -0
- package/src/langchain/runnables.ts +7 -0
- package/src/langchain/tools.ts +8 -0
- package/src/langchain/utils/env.ts +1 -0
- package/src/llm/anthropic/utils/message_inputs.ts +10 -1
- package/src/llm/anthropic/utils/server-tool-inputs.test.ts +436 -0
- package/src/llm/bedrock/__tests__/bedrock-caching.test.ts +166 -18
- package/src/llm/bedrock/cacheSupport.test.ts +99 -0
- package/src/llm/bedrock/cacheSupport.ts +53 -0
- package/src/llm/bedrock/index.ts +116 -41
- package/src/llm/openai/index.ts +2 -2
- package/src/llm/openai/utils/index.ts +31 -14
- package/src/memory/citations.ts +4 -4
- package/src/memory/constants.ts +17 -17
- package/src/memory/mmr.ts +3 -3
- package/src/memory/paths.ts +1 -1
- package/src/memory/recallTracking.ts +3 -3
- package/src/memory/temporalDecay.ts +2 -2
- package/src/memory/types.ts +3 -3
- package/src/messages/__tests__/contextPruning.test.ts +228 -0
- package/src/messages/cache.test.ts +62 -24
- package/src/messages/cache.ts +112 -0
- package/src/messages/contextPruning.ts +191 -0
- package/src/messages/contextPruningSettings.ts +90 -0
- package/src/messages/ensureThinkingBlock.test.ts +1 -1
- package/src/messages/format.ts +164 -12
- package/src/messages/formatAgentMessages.skills.test.ts +413 -0
- package/src/messages/formatAgentMessages.test.ts +1 -1
- package/src/messages/index.ts +2 -0
- package/src/messages/prune.ts +661 -4
- package/src/run.ts +155 -1
- package/src/scripts/multi-agent-chain.ts +2 -2
- package/src/scripts/multi-agent-document-review-chain.ts +2 -2
- package/src/scripts/multi-agent-hybrid-flow.ts +4 -4
- package/src/scripts/multi-agent-parallel.ts +3 -3
- package/src/scripts/multi-agent-sequence.ts +3 -3
- package/src/scripts/multi-agent-subagent.ts +246 -0
- package/src/scripts/multi-agent-supervisor.ts +5 -5
- package/src/scripts/poc-multi-agent-comprehensive.ts +8 -8
- package/src/scripts/sequential-full-metadata-test.ts +2 -2
- package/src/scripts/subagent-event-driven-debug.ts +190 -0
- package/src/scripts/subagent-tools-debug.ts +160 -0
- package/src/scripts/test-custom-prompt-key.ts +3 -3
- package/src/scripts/test-handoff-input.ts +1 -1
- package/src/scripts/test-handoff-steering.ts +3 -3
- package/src/scripts/test-multi-agent-list-handoff.ts +1 -1
- package/src/scripts/test-parallel-agent-labeling.ts +3 -3
- package/src/scripts/test-parallel-handoffs.ts +2 -2
- package/src/scripts/test-thinking-handoff-bedrock.ts +1 -1
- package/src/scripts/test-thinking-handoff.ts +1 -1
- package/src/scripts/test-thinking-to-thinking-handoff-bedrock.ts +1 -1
- package/src/scripts/test-tool-before-handoff-role-order.ts +1 -1
- package/src/scripts/test-tools-before-handoff.ts +1 -1
- package/src/specs/agent-handoffs.test.ts +26 -483
- package/src/specs/anthropic.simple.test.ts +61 -0
- package/src/specs/multi-agent-summarization.test.ts +396 -0
- package/src/specs/prune.orphans.test.ts +248 -0
- package/src/specs/prune.test.ts +104 -16
- package/src/specs/thinking-handoff.test.ts +19 -19
- package/src/tools/BashExecutor.ts +281 -0
- package/src/tools/BashProgrammaticToolCalling.ts +397 -0
- package/src/tools/CodeExecutor.ts +63 -54
- package/src/tools/ProgrammaticToolCalling.ts +29 -14
- package/src/tools/ReadFile.ts +39 -0
- package/src/tools/SkillTool.ts +46 -0
- package/src/tools/SubagentTool.ts +100 -0
- package/src/tools/ToolNode.ts +548 -26
- package/src/tools/__tests__/BashExecutor.test.ts +49 -0
- package/src/tools/__tests__/CodeExecutor.test.ts +37 -36
- package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +60 -0
- package/src/tools/__tests__/ReadFile.test.ts +44 -0
- package/src/tools/__tests__/SkillTool.test.ts +442 -0
- package/src/tools/__tests__/SubagentExecutor.test.ts +1148 -0
- package/src/tools/__tests__/SubagentTool.test.ts +149 -0
- package/src/tools/__tests__/ToolNode.outputReferences.test.ts +1438 -0
- package/src/tools/__tests__/annotateMessagesForLLM.test.ts +479 -0
- package/src/tools/__tests__/skillCatalog.test.ts +161 -0
- package/src/tools/__tests__/subagentHooks.test.ts +210 -0
- package/src/tools/__tests__/toolOutputReferences.test.ts +415 -0
- package/src/tools/memory/memoryAppendTool.ts +1 -1
- package/src/tools/memory/memoryGetTool.ts +2 -2
- package/src/tools/memory/memorySearchTool.ts +3 -3
- package/src/tools/memory/shared.ts +1 -1
- package/src/tools/search/search.ts +12 -2
- package/src/tools/search/tavily-scraper.ts +235 -0
- package/src/tools/search/tavily-search.ts +424 -0
- package/src/tools/search/tavily.test.ts +965 -0
- package/src/tools/search/tool.ts +36 -2
- package/src/tools/search/types.ts +133 -8
- package/src/tools/search/utils.ts +13 -5
- package/src/tools/skillCatalog.ts +126 -0
- package/src/tools/subagent/SubagentExecutor.ts +676 -0
- package/src/tools/subagent/index.ts +13 -0
- package/src/tools/subagent/types.test.ts +70 -0
- package/src/tools/subagent/types.ts +115 -0
- package/src/tools/toolOutputReferences.ts +825 -0
- package/src/types/agent-cache.ts +74 -0
- package/src/types/graph.ts +172 -20
- package/src/types/index.ts +3 -0
- package/src/types/messages.ts +27 -0
- package/src/types/run.ts +22 -0
- package/src/types/skill.ts +11 -0
- package/src/types/tools.ts +118 -0
- package/src/utils/__tests__/truncation.test.ts +66 -0
- package/src/utils/index.ts +1 -3
- package/src/utils/truncation.ts +154 -0
- package/dist/cjs/common/spawnPath.cjs +0 -104
- package/dist/cjs/common/spawnPath.cjs.map +0 -1
- package/dist/cjs/content/ArtifactStore.cjs +0 -579
- package/dist/cjs/content/ArtifactStore.cjs.map +0 -1
- package/dist/cjs/content/ContentStore.cjs +0 -638
- package/dist/cjs/content/ContentStore.cjs.map +0 -1
- package/dist/cjs/content/contentAnalyzer.cjs +0 -91
- package/dist/cjs/content/contentAnalyzer.cjs.map +0 -1
- package/dist/cjs/content/index.cjs +0 -20
- package/dist/cjs/content/index.cjs.map +0 -1
- package/dist/cjs/content/mcpAutoCache.cjs +0 -115
- package/dist/cjs/content/mcpAutoCache.cjs.map +0 -1
- package/dist/cjs/graphs/HandoffRegistry.cjs +0 -143
- package/dist/cjs/graphs/HandoffRegistry.cjs.map +0 -1
- package/dist/cjs/providers/a2a/A2ACapabilityProvider.cjs +0 -288
- package/dist/cjs/providers/a2a/A2ACapabilityProvider.cjs.map +0 -1
- package/dist/cjs/providers/a2a/client.cjs +0 -92
- package/dist/cjs/providers/a2a/client.cjs.map +0 -1
- package/dist/cjs/providers/a2a/config.cjs +0 -38
- package/dist/cjs/providers/a2a/config.cjs.map +0 -1
- package/dist/cjs/providers/capabilityNaming.cjs +0 -43
- package/dist/cjs/providers/capabilityNaming.cjs.map +0 -1
- package/dist/cjs/providers/mcp/MCPCapabilityProvider.cjs +0 -244
- package/dist/cjs/providers/mcp/MCPCapabilityProvider.cjs.map +0 -1
- package/dist/cjs/providers/mcp/config.cjs +0 -42
- package/dist/cjs/providers/mcp/config.cjs.map +0 -1
- package/dist/cjs/providers/mcp/transport.cjs +0 -65
- package/dist/cjs/providers/mcp/transport.cjs.map +0 -1
- package/dist/cjs/providers/tools-server/ToolsServerCapabilityProvider.cjs +0 -128
- package/dist/cjs/providers/tools-server/ToolsServerCapabilityProvider.cjs.map +0 -1
- package/dist/cjs/providers/types.cjs +0 -51
- package/dist/cjs/providers/types.cjs.map +0 -1
- package/dist/cjs/tools/artifacts/schema.cjs +0 -86
- package/dist/cjs/tools/artifacts/schema.cjs.map +0 -1
- package/dist/cjs/tools/artifacts/tool.cjs +0 -219
- package/dist/cjs/tools/artifacts/tool.cjs.map +0 -1
- package/dist/cjs/tools/fileSearch/formatter.cjs +0 -93
- package/dist/cjs/tools/fileSearch/formatter.cjs.map +0 -1
- package/dist/cjs/tools/fileSearch/ragClient.cjs +0 -102
- package/dist/cjs/tools/fileSearch/ragClient.cjs.map +0 -1
- package/dist/cjs/tools/fileSearch/schema.cjs +0 -18
- package/dist/cjs/tools/fileSearch/schema.cjs.map +0 -1
- package/dist/cjs/tools/fileSearch/tool.cjs +0 -155
- package/dist/cjs/tools/fileSearch/tool.cjs.map +0 -1
- package/dist/cjs/tools/proxyTool.cjs +0 -102
- package/dist/cjs/tools/proxyTool.cjs.map +0 -1
- package/dist/cjs/utils/childAgentContext.cjs +0 -242
- package/dist/cjs/utils/childAgentContext.cjs.map +0 -1
- package/dist/cjs/utils/credentials.cjs +0 -142
- package/dist/cjs/utils/credentials.cjs.map +0 -1
- package/dist/cjs/utils/httpClient.cjs +0 -74
- package/dist/cjs/utils/httpClient.cjs.map +0 -1
- package/dist/cjs/utils/toolManifest.cjs +0 -100
- package/dist/cjs/utils/toolManifest.cjs.map +0 -1
- package/dist/esm/common/spawnPath.mjs +0 -95
- package/dist/esm/common/spawnPath.mjs.map +0 -1
- package/dist/esm/content/ArtifactStore.mjs +0 -576
- package/dist/esm/content/ArtifactStore.mjs.map +0 -1
- package/dist/esm/content/ContentStore.mjs +0 -635
- package/dist/esm/content/ContentStore.mjs.map +0 -1
- package/dist/esm/content/contentAnalyzer.mjs +0 -87
- package/dist/esm/content/contentAnalyzer.mjs.map +0 -1
- package/dist/esm/content/index.mjs +0 -5
- package/dist/esm/content/mcpAutoCache.mjs +0 -111
- package/dist/esm/content/mcpAutoCache.mjs.map +0 -1
- package/dist/esm/graphs/HandoffRegistry.mjs +0 -141
- package/dist/esm/graphs/HandoffRegistry.mjs.map +0 -1
- package/dist/esm/providers/a2a/A2ACapabilityProvider.mjs +0 -281
- package/dist/esm/providers/a2a/A2ACapabilityProvider.mjs.map +0 -1
- package/dist/esm/providers/a2a/client.mjs +0 -88
- package/dist/esm/providers/a2a/client.mjs.map +0 -1
- package/dist/esm/providers/a2a/config.mjs +0 -35
- package/dist/esm/providers/a2a/config.mjs.map +0 -1
- package/dist/esm/providers/capabilityNaming.mjs +0 -39
- package/dist/esm/providers/capabilityNaming.mjs.map +0 -1
- package/dist/esm/providers/mcp/MCPCapabilityProvider.mjs +0 -240
- package/dist/esm/providers/mcp/MCPCapabilityProvider.mjs.map +0 -1
- package/dist/esm/providers/mcp/config.mjs +0 -39
- package/dist/esm/providers/mcp/config.mjs.map +0 -1
- package/dist/esm/providers/mcp/transport.mjs +0 -63
- package/dist/esm/providers/mcp/transport.mjs.map +0 -1
- package/dist/esm/providers/tools-server/ToolsServerCapabilityProvider.mjs +0 -126
- package/dist/esm/providers/tools-server/ToolsServerCapabilityProvider.mjs.map +0 -1
- package/dist/esm/providers/types.mjs +0 -51
- package/dist/esm/providers/types.mjs.map +0 -1
- package/dist/esm/tools/artifacts/schema.mjs +0 -79
- package/dist/esm/tools/artifacts/schema.mjs.map +0 -1
- package/dist/esm/tools/artifacts/tool.mjs +0 -213
- package/dist/esm/tools/artifacts/tool.mjs.map +0 -1
- package/dist/esm/tools/fileSearch/formatter.mjs +0 -90
- package/dist/esm/tools/fileSearch/formatter.mjs.map +0 -1
- package/dist/esm/tools/fileSearch/ragClient.mjs +0 -98
- package/dist/esm/tools/fileSearch/ragClient.mjs.map +0 -1
- package/dist/esm/tools/fileSearch/schema.mjs +0 -15
- package/dist/esm/tools/fileSearch/schema.mjs.map +0 -1
- package/dist/esm/tools/fileSearch/tool.mjs +0 -152
- package/dist/esm/tools/fileSearch/tool.mjs.map +0 -1
- package/dist/esm/tools/proxyTool.mjs +0 -100
- package/dist/esm/tools/proxyTool.mjs.map +0 -1
- package/dist/esm/utils/childAgentContext.mjs +0 -237
- package/dist/esm/utils/childAgentContext.mjs.map +0 -1
- package/dist/esm/utils/credentials.mjs +0 -135
- package/dist/esm/utils/credentials.mjs.map +0 -1
- package/dist/esm/utils/httpClient.mjs +0 -70
- package/dist/esm/utils/httpClient.mjs.map +0 -1
- package/dist/esm/utils/toolManifest.mjs +0 -96
- package/dist/esm/utils/toolManifest.mjs.map +0 -1
- package/dist/types/common/spawnPath.d.ts +0 -59
- package/dist/types/content/ArtifactStore.d.ts +0 -223
- package/dist/types/content/ContentStore.d.ts +0 -140
- package/dist/types/content/contentAnalyzer.d.ts +0 -38
- package/dist/types/content/index.d.ts +0 -24
- package/dist/types/content/mcpAutoCache.d.ts +0 -89
- package/dist/types/content/types.d.ts +0 -75
- package/dist/types/graphs/HandoffRegistry.d.ts +0 -97
- package/dist/types/providers/a2a/A2ACapabilityProvider.d.ts +0 -89
- package/dist/types/providers/a2a/client.d.ts +0 -47
- package/dist/types/providers/a2a/config.d.ts +0 -18
- package/dist/types/providers/a2a/index.d.ts +0 -6
- package/dist/types/providers/a2a/types.d.ts +0 -173
- package/dist/types/providers/capabilityNaming.d.ts +0 -25
- package/dist/types/providers/index.d.ts +0 -12
- package/dist/types/providers/mcp/MCPCapabilityProvider.d.ts +0 -54
- package/dist/types/providers/mcp/config.d.ts +0 -20
- package/dist/types/providers/mcp/index.d.ts +0 -5
- package/dist/types/providers/mcp/transport.d.ts +0 -18
- package/dist/types/providers/mcp/types.d.ts +0 -112
- package/dist/types/providers/tools-server/ToolsServerCapabilityProvider.d.ts +0 -59
- package/dist/types/providers/tools-server/index.d.ts +0 -1
- package/dist/types/providers/types.d.ts +0 -184
- package/dist/types/tools/artifacts/index.d.ts +0 -3
- package/dist/types/tools/artifacts/schema.d.ts +0 -63
- package/dist/types/tools/artifacts/tool.d.ts +0 -16
- package/dist/types/tools/artifacts/types.d.ts +0 -127
- package/dist/types/tools/fileSearch/formatter.d.ts +0 -25
- package/dist/types/tools/fileSearch/index.d.ts +0 -5
- package/dist/types/tools/fileSearch/ragClient.d.ts +0 -32
- package/dist/types/tools/fileSearch/schema.d.ts +0 -13
- package/dist/types/tools/fileSearch/tool.d.ts +0 -18
- package/dist/types/tools/fileSearch/types.d.ts +0 -139
- package/dist/types/tools/proxyTool.d.ts +0 -62
- package/dist/types/tools/search/test.d.ts +0 -1
- package/dist/types/utils/childAgentContext.d.ts +0 -99
- package/dist/types/utils/credentials.d.ts +0 -77
- package/dist/types/utils/httpClient.d.ts +0 -46
- package/dist/types/utils/toolManifest.d.ts +0 -49
- package/src/common/__tests__/spawnPath.test.ts +0 -110
- package/src/common/spawnPath.ts +0 -101
- package/src/content/ArtifactStore.ts +0 -782
- package/src/content/ContentStore.ts +0 -753
- package/src/content/contentAnalyzer.ts +0 -105
- package/src/content/index.ts +0 -51
- package/src/content/mcpAutoCache.ts +0 -185
- package/src/content/types.ts +0 -82
- package/src/graphs/HandoffRegistry.ts +0 -199
- package/src/graphs/__tests__/HandoffRegistry.test.ts +0 -410
- package/src/graphs/__tests__/multi-agent-delegate.test.ts +0 -458
- package/src/graphs/__tests__/multi-agent-edges.test.ts +0 -276
- package/src/graphs/__tests__/multi-agent-nested-subgraph.test.ts +0 -221
- package/src/graphs/handoffValidation.test.ts +0 -353
- package/src/providers/__tests__/ToolsServerCapabilityProvider.integration.spec.ts +0 -79
- package/src/providers/__tests__/ToolsServerCapabilityProvider.test.ts +0 -271
- package/src/providers/__tests__/types.test.ts +0 -64
- package/src/providers/a2a/A2ACapabilityProvider.ts +0 -384
- package/src/providers/a2a/__tests__/A2ACapabilityProvider.integration.spec.ts +0 -345
- package/src/providers/a2a/__tests__/A2ACapabilityProvider.test.ts +0 -460
- package/src/providers/a2a/client.ts +0 -115
- package/src/providers/a2a/config.ts +0 -40
- package/src/providers/a2a/index.ts +0 -29
- package/src/providers/a2a/types.ts +0 -191
- package/src/providers/capabilityNaming.ts +0 -42
- package/src/providers/index.ts +0 -68
- package/src/providers/mcp/MCPCapabilityProvider.ts +0 -345
- package/src/providers/mcp/__tests__/MCPCapabilityProvider.integration.spec.ts +0 -386
- package/src/providers/mcp/__tests__/MCPCapabilityProvider.test.ts +0 -371
- package/src/providers/mcp/config.ts +0 -45
- package/src/providers/mcp/index.ts +0 -21
- package/src/providers/mcp/transport.ts +0 -76
- package/src/providers/mcp/types.ts +0 -139
- package/src/providers/tools-server/ToolsServerCapabilityProvider.ts +0 -249
- package/src/providers/tools-server/index.ts +0 -1
- package/src/providers/types.ts +0 -204
- package/src/scripts/test-bedrock-handoff-autonomous.ts +0 -267
- package/src/scripts/test-handoff-preamble.ts +0 -278
- package/src/specs/agent-handoffs-bedrock.integration.test.ts +0 -415
- package/src/tools/artifacts/__tests__/tool.test.ts +0 -259
- package/src/tools/artifacts/index.ts +0 -33
- package/src/tools/artifacts/schema.ts +0 -99
- package/src/tools/artifacts/tool.ts +0 -289
- package/src/tools/artifacts/types.ts +0 -162
- package/src/tools/fileSearch/__tests__/tool.test.ts +0 -261
- package/src/tools/fileSearch/formatter.ts +0 -129
- package/src/tools/fileSearch/index.ts +0 -23
- package/src/tools/fileSearch/ragClient.ts +0 -137
- package/src/tools/fileSearch/schema.ts +0 -19
- package/src/tools/fileSearch/tool.ts +0 -207
- package/src/tools/fileSearch/types.ts +0 -149
- package/src/tools/proxyTool.ts +0 -166
- package/src/tools/search/output.md +0 -2775
- package/src/tools/search/test.html +0 -884
- package/src/tools/search/test.md +0 -643
- package/src/tools/search/test.ts +0 -159
- package/src/utils/__tests__/childAgentContext.test.ts +0 -217
- package/src/utils/__tests__/credentials.test.ts +0 -130
- package/src/utils/__tests__/httpClient.test.ts +0 -75
- package/src/utils/__tests__/toolManifest.test.ts +0 -116
- package/src/utils/childAgentContext.ts +0 -259
- package/src/utils/credentials.ts +0 -157
- package/src/utils/httpClient.ts +0 -92
- package/src/utils/toolManifest.ts +0 -109
- /package/dist/esm/{content → langchain}/index.mjs.map +0 -0
package/src/common/enum.ts
CHANGED
|
@@ -9,6 +9,8 @@ export enum GraphEvents {
|
|
|
9
9
|
|
|
10
10
|
/** [Custom] Agent update event in multi-agent graph/workflow */
|
|
11
11
|
ON_AGENT_UPDATE = 'on_agent_update',
|
|
12
|
+
/** [Custom] Subagent lifecycle event (start, run_step, message_delta, stop, error) */
|
|
13
|
+
ON_SUBAGENT_UPDATE = 'on_subagent_update',
|
|
12
14
|
/** [Custom] Delta event for run steps (message creation and tool calls) */
|
|
13
15
|
ON_RUN_STEP = 'on_run_step',
|
|
14
16
|
/** [Custom] Delta event for run steps (tool calls) */
|
|
@@ -100,12 +102,22 @@ export enum Providers {
|
|
|
100
102
|
}
|
|
101
103
|
|
|
102
104
|
export enum EdgeType {
|
|
103
|
-
/**
|
|
105
|
+
/**
|
|
106
|
+
* handoff: one-way routing where the parent agent exits
|
|
107
|
+
* via a `lc_transfer_to_<destination>` tool call, the child takes over,
|
|
108
|
+
* and the child responds directly to the user. Replaces what used to be
|
|
109
|
+
* called "TRANSFER" in older versions; the parent-calls-child
|
|
110
|
+
* supervisor pattern (formerly `EdgeType.HANDOFF`) is gone — use the
|
|
111
|
+
* Subagent primitive (Tier 5) for deep delegation instead.
|
|
112
|
+
*/
|
|
104
113
|
HANDOFF = 'handoff',
|
|
105
|
-
/**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
114
|
+
/**
|
|
115
|
+
* Fixed graph edges for automatic transitions. Standard naming.
|
|
116
|
+
* Downstream consumers may layer additional wiring on top of this edge
|
|
117
|
+
* type: fan-in with prompt + {results}, parallel groups, approval-gate
|
|
118
|
+
* node insertion, and the `excludeResults` agentMessages channel.
|
|
119
|
+
*/
|
|
120
|
+
DIRECT = 'direct',
|
|
109
121
|
}
|
|
110
122
|
|
|
111
123
|
export enum GraphNodeKeys {
|
|
@@ -183,17 +195,30 @@ export enum Callback {
|
|
|
183
195
|
export enum Constants {
|
|
184
196
|
OFFICIAL_CODE_BASEURL = 'https://api.illuma.ai/v1',
|
|
185
197
|
EXECUTE_CODE = 'execute_code',
|
|
198
|
+
/** Tool name for the bash execution primitive (Tier 3). */
|
|
199
|
+
BASH_TOOL = 'execute_bash',
|
|
200
|
+
/** Tool name for the bash programmatic-tool-calling variant (Tier 3). */
|
|
201
|
+
BASH_PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_bash',
|
|
202
|
+
/** Tool name for the read-file primitive (Tier 3). */
|
|
203
|
+
READ_FILE = 'read_file',
|
|
204
|
+
/** Tool name for the SkillTool primitive (Tier 2). */
|
|
205
|
+
SKILL_TOOL = 'skill',
|
|
206
|
+
/** Tool name for the Subagent primitive (Tier 5). */
|
|
207
|
+
SUBAGENT = 'subagent',
|
|
186
208
|
TOOL_SEARCH = 'tool_search',
|
|
187
209
|
PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_code',
|
|
188
210
|
WEB_SEARCH = 'web_search',
|
|
189
211
|
CONTENT_AND_ARTIFACT = 'content_and_artifact',
|
|
212
|
+
/** Prefix for handoff tool names (parent-exits routing): lc_transfer_to_{agentId}. */
|
|
190
213
|
LC_TRANSFER_TO_ = 'lc_transfer_to_',
|
|
191
|
-
/** Prefix for handoff tool names: lc_handoff_to_{agentId} */
|
|
192
|
-
LC_HANDOFF_TO_ = 'lc_handoff_to_',
|
|
193
214
|
/** Tool name for the AskUser structured question tool */
|
|
194
215
|
ASK_USER = 'ask_user',
|
|
195
216
|
/** Delimiter for MCP tools: toolName_mcp_serverName */
|
|
196
217
|
MCP_DELIMITER = '_mcp_',
|
|
218
|
+
/** Prefix for Anthropic-hosted server tool ids (web_search, code_execution).
|
|
219
|
+
* These are issued by Anthropic, not by us, and should be ignored by
|
|
220
|
+
* orphan-repair sweeps that don't have ground truth for them. */
|
|
221
|
+
ANTHROPIC_SERVER_TOOL_PREFIX = 'srvtoolu_',
|
|
197
222
|
}
|
|
198
223
|
|
|
199
224
|
export enum TitleMethod {
|
|
@@ -242,8 +267,14 @@ export enum MessageTypes {
|
|
|
242
267
|
REMOVE = 'remove',
|
|
243
268
|
}
|
|
244
269
|
|
|
245
|
-
/**
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
270
|
+
/**
|
|
271
|
+
* Tool names that use the code execution environment (shared session, file
|
|
272
|
+
* tracking). Used by ToolNode to inject session context + file refs into
|
|
273
|
+
* `invokeParams` before tool execution. constant.
|
|
274
|
+
*/
|
|
275
|
+
export const CODE_EXECUTION_TOOLS: ReadonlySet<string> = new Set([
|
|
276
|
+
Constants.EXECUTE_CODE,
|
|
277
|
+
Constants.BASH_TOOL,
|
|
278
|
+
Constants.PROGRAMMATIC_TOOL_CALLING,
|
|
279
|
+
Constants.BASH_PROGRAMMATIC_TOOL_CALLING,
|
|
280
|
+
]);
|
package/src/common/index.ts
CHANGED
package/src/graphs/Graph.ts
CHANGED
|
@@ -77,6 +77,14 @@ import {
|
|
|
77
77
|
} from '@/utils/contextAnalytics';
|
|
78
78
|
import { getChatModelClass, manualToolStreamProviders } from '@/llm/providers';
|
|
79
79
|
import { ToolNode as CustomToolNode, toolsCondition } from '@/tools/ToolNode';
|
|
80
|
+
import { tool as makeStructuredTool } from '@langchain/core/tools';
|
|
81
|
+
import { SubagentExecutor, resolveSubagentConfigs } from '@/tools/subagent';
|
|
82
|
+
import { buildSubagentToolParams } from '@/tools/SubagentTool';
|
|
83
|
+
import {
|
|
84
|
+
annotateMessagesForLLM,
|
|
85
|
+
ToolOutputReferenceRegistry as ToolOutputReferenceRegistryClass,
|
|
86
|
+
} from '@/tools/toolOutputReferences';
|
|
87
|
+
import { executeHooks } from '@/hooks';
|
|
80
88
|
import { ChatOpenAI, AzureChatOpenAI } from '@/llm/openai';
|
|
81
89
|
import { safeDispatchCustomEvent } from '@/utils/events';
|
|
82
90
|
import { mlog, mwarn } from '@/utils/logging';
|
|
@@ -175,6 +183,68 @@ export abstract class Graph<
|
|
|
175
183
|
/** Set of invoked tool call IDs from non-message run steps completed mid-run, if any */
|
|
176
184
|
invokedToolIds?: Set<string>;
|
|
177
185
|
handlerRegistry: HandlerRegistry | undefined;
|
|
186
|
+
/** Optional hook registry threaded down from Run; consumed by ToolNode for tool-lifecycle hooks. */
|
|
187
|
+
hookRegistry?: import('@/hooks').HookRegistry;
|
|
188
|
+
/**
|
|
189
|
+
* Optional tool-output reference registry threaded down from Run
|
|
190
|
+
* (PR #114). When set, every ToolNode built by this graph
|
|
191
|
+
* stores successful outputs here and resolves `{{tool<i>turn<n>}}`
|
|
192
|
+
* placeholders in args before invoking the tool.
|
|
193
|
+
*
|
|
194
|
+
* @deprecated Prefer `toolOutputReferences` config + the lazy
|
|
195
|
+
* `getOrCreateToolOutputRegistry()` accessor — keeps the registry
|
|
196
|
+
* lifecycle explicit (cleared in `clearHeavyState()`). Existing
|
|
197
|
+
* direct-set callers still work for backwards compat.
|
|
198
|
+
*/
|
|
199
|
+
toolOutputRegistry?: import('@/tools/toolOutputReferences').ToolOutputReferenceRegistry;
|
|
200
|
+
/**
|
|
201
|
+
* Run-scoped tool output reference configuration (PR #117).
|
|
202
|
+
* When `enabled` is true, the graph lazily allocates a single
|
|
203
|
+
* `ToolOutputReferenceRegistry` on first `getOrCreateToolOutputRegistry()`
|
|
204
|
+
* call and shares it with every ToolNode the graph compiles, so
|
|
205
|
+
* cross-agent `{{tool<i>turn<n>}}` substitutions resolve.
|
|
206
|
+
*/
|
|
207
|
+
toolOutputReferences?: import('@/types/tools').ToolOutputReferencesConfig;
|
|
208
|
+
/**
|
|
209
|
+
* Lazy single-instance registry for the run. Constructed on first
|
|
210
|
+
* `getOrCreateToolOutputRegistry()` call when
|
|
211
|
+
* `toolOutputReferences.enabled` is true. Cleared (and recreated on
|
|
212
|
+
* next access) by `clearHeavyState()`.
|
|
213
|
+
*/
|
|
214
|
+
private _toolOutputRegistry?: import('@/tools/toolOutputReferences').ToolOutputReferenceRegistry;
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Returns the shared `ToolOutputReferenceRegistry` for this run,
|
|
218
|
+
* constructing it on first access. Returns `undefined` when the
|
|
219
|
+
* feature is disabled. All ToolNodes compiled from this graph share
|
|
220
|
+
* this single instance so cross-agent `{{...}}` references resolve.
|
|
221
|
+
*
|
|
222
|
+
* @internal Public so `attemptInvoke` can read it through the typed
|
|
223
|
+
* `InvokeContext` and project ToolMessages into LLM-facing annotated
|
|
224
|
+
* copies right before each provider call (see `annotateMessagesForLLM`).
|
|
225
|
+
* Host code should not call this directly — registry mutations outside
|
|
226
|
+
* the ToolNode lifecycle break the partitioning, eviction, and
|
|
227
|
+
* turn-counter invariants.
|
|
228
|
+
*/
|
|
229
|
+
public getOrCreateToolOutputRegistry():
|
|
230
|
+
| import('@/tools/toolOutputReferences').ToolOutputReferenceRegistry
|
|
231
|
+
| undefined {
|
|
232
|
+
// Direct-set instance (legacy path) takes precedence so existing
|
|
233
|
+
// Run plumbing keeps working.
|
|
234
|
+
if (this.toolOutputRegistry != null) {
|
|
235
|
+
return this.toolOutputRegistry;
|
|
236
|
+
}
|
|
237
|
+
if (this.toolOutputReferences?.enabled !== true) {
|
|
238
|
+
return undefined;
|
|
239
|
+
}
|
|
240
|
+
if (this._toolOutputRegistry == null) {
|
|
241
|
+
this._toolOutputRegistry = new ToolOutputReferenceRegistryClass({
|
|
242
|
+
maxOutputSize: this.toolOutputReferences.maxOutputSize,
|
|
243
|
+
maxTotalSize: this.toolOutputReferences.maxTotalSize,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
return this._toolOutputRegistry;
|
|
247
|
+
}
|
|
178
248
|
/**
|
|
179
249
|
* Tool session contexts for automatic state persistence across tool invocations.
|
|
180
250
|
* Keyed by tool name (e.g., Constants.EXECUTE_CODE).
|
|
@@ -875,6 +945,8 @@ export class StandardGraph extends Graph<t.BaseGraphState, t.GraphNode> {
|
|
|
875
945
|
errorHandler: (data, metadata) =>
|
|
876
946
|
StandardGraph.handleToolCallErrorStatic(this, data, metadata),
|
|
877
947
|
toolApprovalConfig,
|
|
948
|
+
hookRegistry: this.hookRegistry,
|
|
949
|
+
toolOutputRegistry: this.toolOutputRegistry,
|
|
878
950
|
});
|
|
879
951
|
}
|
|
880
952
|
|
|
@@ -927,6 +999,8 @@ export class StandardGraph extends Graph<t.BaseGraphState, t.GraphNode> {
|
|
|
927
999
|
sessions: this.sessions,
|
|
928
1000
|
directToolNames,
|
|
929
1001
|
toolApprovalConfig,
|
|
1002
|
+
hookRegistry: this.hookRegistry,
|
|
1003
|
+
toolOutputRegistry: this.toolOutputRegistry,
|
|
930
1004
|
});
|
|
931
1005
|
}
|
|
932
1006
|
|
|
@@ -1034,6 +1108,24 @@ export class StandardGraph extends Graph<t.BaseGraphState, t.GraphNode> {
|
|
|
1034
1108
|
throw new Error('No model found');
|
|
1035
1109
|
}
|
|
1036
1110
|
|
|
1111
|
+
/**
|
|
1112
|
+
* Lazy tool-output reference annotation (PR #117). Right
|
|
1113
|
+
* before the message array hits the provider, walk it and apply
|
|
1114
|
+
* `[ref: tool<i>turn<n>]` prefixes / `_ref` JSON fields to a
|
|
1115
|
+
* transient copy. The persisted ToolMessages stay clean — only what
|
|
1116
|
+
* the LLM sees gets the annotation, and only when the registry
|
|
1117
|
+
* actually has the referenced output. No-op when the registry is
|
|
1118
|
+
* absent (the common case until a host opts in).
|
|
1119
|
+
*/
|
|
1120
|
+
const annotatedRunId = (
|
|
1121
|
+
config?.configurable as { run_id?: string } | undefined
|
|
1122
|
+
)?.run_id;
|
|
1123
|
+
finalMessages = annotateMessagesForLLM(
|
|
1124
|
+
finalMessages,
|
|
1125
|
+
this.toolOutputRegistry,
|
|
1126
|
+
annotatedRunId
|
|
1127
|
+
);
|
|
1128
|
+
|
|
1037
1129
|
if (model.stream) {
|
|
1038
1130
|
/**
|
|
1039
1131
|
* Process all model output through a local ChatModelStreamHandler in the
|
|
@@ -1624,14 +1716,60 @@ export class StandardGraph extends Graph<t.BaseGraphState, t.GraphNode> {
|
|
|
1624
1716
|
`[Graph:ProactiveSummary] Context at ${utilization.toFixed(1)}% (threshold ${threshold}%) — summarizing ${oldMessages.length} older msgs in background`
|
|
1625
1717
|
);
|
|
1626
1718
|
|
|
1627
|
-
|
|
1628
|
-
|
|
1719
|
+
/**
|
|
1720
|
+
* Fire PreCompact (#103) before the LLM call. Observational —
|
|
1721
|
+
* hosts may use the input to schedule auxiliary work, but a
|
|
1722
|
+
* deny/ask decision does NOT block compaction here because
|
|
1723
|
+
* the summarizer runs in the background and a refusal
|
|
1724
|
+
* has nowhere to go: pruning still needs to happen at 100%
|
|
1725
|
+
* regardless. Errors are swallowed so a hook bug cannot
|
|
1726
|
+
* masquerade as a context-overflow failure.
|
|
1727
|
+
*/
|
|
1728
|
+
const sessionId = this.runId ?? '';
|
|
1729
|
+
const preCompactPromise =
|
|
1730
|
+
this.hookRegistry?.hasHookFor('PreCompact', sessionId) === true
|
|
1731
|
+
? executeHooks({
|
|
1732
|
+
registry: this.hookRegistry,
|
|
1733
|
+
input: {
|
|
1734
|
+
hook_event_name: 'PreCompact',
|
|
1735
|
+
runId: sessionId,
|
|
1736
|
+
agentId: agentContext.agentId,
|
|
1737
|
+
messagesBeforeCount: oldMessages.length,
|
|
1738
|
+
trigger:
|
|
1739
|
+
agentContext.summarizationConfig?.trigger?.type ??
|
|
1740
|
+
agentContext.summarizationConfig?.triggerType ??
|
|
1741
|
+
'default',
|
|
1742
|
+
},
|
|
1743
|
+
sessionId,
|
|
1744
|
+
}).catch(() => undefined)
|
|
1745
|
+
: Promise.resolve(undefined);
|
|
1746
|
+
|
|
1747
|
+
preCompactPromise
|
|
1748
|
+
.then(() => agentContext.summarizeCallback!(oldMessages))
|
|
1629
1749
|
.then((updated) => {
|
|
1630
1750
|
if (updated != null && updated !== '') {
|
|
1631
1751
|
this._cachedRunSummary = updated;
|
|
1632
1752
|
mlog(
|
|
1633
1753
|
`[Graph:ProactiveSummary] Background summary ready (len=${updated.length})`
|
|
1634
1754
|
);
|
|
1755
|
+
if (
|
|
1756
|
+
this.hookRegistry?.hasHookFor('PostCompact', sessionId) ===
|
|
1757
|
+
true
|
|
1758
|
+
) {
|
|
1759
|
+
void executeHooks({
|
|
1760
|
+
registry: this.hookRegistry,
|
|
1761
|
+
input: {
|
|
1762
|
+
hook_event_name: 'PostCompact',
|
|
1763
|
+
runId: sessionId,
|
|
1764
|
+
agentId: agentContext.agentId,
|
|
1765
|
+
summary: updated,
|
|
1766
|
+
messagesAfterCount: 0,
|
|
1767
|
+
},
|
|
1768
|
+
sessionId,
|
|
1769
|
+
}).catch(() => {
|
|
1770
|
+
/* PostCompact is observational — swallow errors */
|
|
1771
|
+
});
|
|
1772
|
+
}
|
|
1635
1773
|
}
|
|
1636
1774
|
})
|
|
1637
1775
|
.catch((err) => {
|
|
@@ -2577,6 +2715,88 @@ If I seem to be missing something we discussed earlier, just give me a quick rem
|
|
|
2577
2715
|
throw new Error(`Agent context not found for agentId: ${agentId}`);
|
|
2578
2716
|
}
|
|
2579
2717
|
|
|
2718
|
+
/**
|
|
2719
|
+
* Subagent injection (Tier 5): when the agent has SubagentConfig
|
|
2720
|
+
* entries and depth budget remaining, inject a `subagent` DynamicStructuredTool
|
|
2721
|
+
* into graphTools. The tool's executor receives this graph's hookRegistry and
|
|
2722
|
+
* a lazy handler-registry getter (Run wires handlerRegistry AFTER createWorkflow,
|
|
2723
|
+
* so direct capture would be undefined at construction time).
|
|
2724
|
+
*/
|
|
2725
|
+
const effectiveSubagentDepth = agentContext.maxSubagentDepth ?? 1;
|
|
2726
|
+
if (
|
|
2727
|
+
agentContext.subagentConfigs != null &&
|
|
2728
|
+
agentContext.subagentConfigs.length > 0 &&
|
|
2729
|
+
effectiveSubagentDepth > 0
|
|
2730
|
+
) {
|
|
2731
|
+
const resolvedConfigs = resolveSubagentConfigs(
|
|
2732
|
+
agentContext.subagentConfigs,
|
|
2733
|
+
agentContext
|
|
2734
|
+
);
|
|
2735
|
+
if (resolvedConfigs.length > 0) {
|
|
2736
|
+
const getParentHandlerRegistry = (): HandlerRegistry | undefined =>
|
|
2737
|
+
this.handlerRegistry;
|
|
2738
|
+
const executor = new SubagentExecutor({
|
|
2739
|
+
configs: new Map(resolvedConfigs.map((c) => [c.type, c])),
|
|
2740
|
+
parentSignal: this.signal,
|
|
2741
|
+
hookRegistry: this.hookRegistry,
|
|
2742
|
+
parentHandlerRegistry: getParentHandlerRegistry,
|
|
2743
|
+
parentRunId: this.runId ?? '',
|
|
2744
|
+
parentAgentId: agentContext.agentId,
|
|
2745
|
+
tokenCounter: agentContext.tokenCounter,
|
|
2746
|
+
maxDepth: effectiveSubagentDepth,
|
|
2747
|
+
createChildGraph: (input): StandardGraph =>
|
|
2748
|
+
new StandardGraph(input as t.StandardGraphInput),
|
|
2749
|
+
});
|
|
2750
|
+
|
|
2751
|
+
const subagentTool = makeStructuredTool(async (rawInput, config) => {
|
|
2752
|
+
const input = rawInput as {
|
|
2753
|
+
description?: string;
|
|
2754
|
+
subagent_type?: string;
|
|
2755
|
+
};
|
|
2756
|
+
const description =
|
|
2757
|
+
typeof input.description === 'string' &&
|
|
2758
|
+
input.description.trim().length > 0
|
|
2759
|
+
? input.description
|
|
2760
|
+
: 'No task description provided';
|
|
2761
|
+
const subagentType =
|
|
2762
|
+
typeof input.subagent_type === 'string' ? input.subagent_type : '';
|
|
2763
|
+
const threadId = config.configurable?.thread_id as string | undefined;
|
|
2764
|
+
const toolCall = (config as { toolCall?: { id?: string } }).toolCall;
|
|
2765
|
+
const parentToolCallId =
|
|
2766
|
+
typeof toolCall?.id === 'string' ? toolCall.id : undefined;
|
|
2767
|
+
const result = await executor.execute({
|
|
2768
|
+
description,
|
|
2769
|
+
subagentType,
|
|
2770
|
+
threadId,
|
|
2771
|
+
parentToolCallId,
|
|
2772
|
+
});
|
|
2773
|
+
return result.content;
|
|
2774
|
+
}, buildSubagentToolParams(resolvedConfigs));
|
|
2775
|
+
|
|
2776
|
+
if (!agentContext.graphTools) {
|
|
2777
|
+
agentContext.graphTools = [];
|
|
2778
|
+
}
|
|
2779
|
+
(agentContext.graphTools as t.GenericTool[]).push(subagentTool);
|
|
2780
|
+
|
|
2781
|
+
if (agentContext.tokenCounter) {
|
|
2782
|
+
const { tokenCounter, baseIndexTokenCountMap } = agentContext;
|
|
2783
|
+
agentContext.tokenCalculationPromise = agentContext
|
|
2784
|
+
.calculateInstructionTokens(tokenCounter)
|
|
2785
|
+
.then(() => {
|
|
2786
|
+
agentContext.updateTokenMapWithInstructions(
|
|
2787
|
+
baseIndexTokenCountMap
|
|
2788
|
+
);
|
|
2789
|
+
})
|
|
2790
|
+
.catch((err) => {
|
|
2791
|
+
console.error(
|
|
2792
|
+
'Error recalculating instruction tokens after subagent tool injection:',
|
|
2793
|
+
err
|
|
2794
|
+
);
|
|
2795
|
+
});
|
|
2796
|
+
}
|
|
2797
|
+
}
|
|
2798
|
+
}
|
|
2799
|
+
|
|
2580
2800
|
const agentNode = `${AGENT}${agentId}` as const;
|
|
2581
2801
|
const toolNode = `${TOOLS}${agentId}` as const;
|
|
2582
2802
|
|