@illuma-ai/agents 1.0.81
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 +485 -0
- package/dist/cjs/agents/AgentContext.cjs +734 -0
- package/dist/cjs/agents/AgentContext.cjs.map +1 -0
- package/dist/cjs/common/enum.cjs +190 -0
- package/dist/cjs/common/enum.cjs.map +1 -0
- package/dist/cjs/events.cjs +172 -0
- package/dist/cjs/events.cjs.map +1 -0
- package/dist/cjs/graphs/Graph.cjs +1615 -0
- package/dist/cjs/graphs/Graph.cjs.map +1 -0
- package/dist/cjs/graphs/MultiAgentGraph.cjs +890 -0
- package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -0
- package/dist/cjs/instrumentation.cjs +21 -0
- package/dist/cjs/instrumentation.cjs.map +1 -0
- package/dist/cjs/llm/anthropic/index.cjs +292 -0
- package/dist/cjs/llm/anthropic/index.cjs.map +1 -0
- package/dist/cjs/llm/anthropic/types.cjs +50 -0
- package/dist/cjs/llm/anthropic/types.cjs.map +1 -0
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +630 -0
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -0
- package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +218 -0
- package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -0
- package/dist/cjs/llm/anthropic/utils/tools.cjs +29 -0
- package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -0
- package/dist/cjs/llm/bedrock/index.cjs +282 -0
- package/dist/cjs/llm/bedrock/index.cjs.map +1 -0
- package/dist/cjs/llm/fake.cjs +97 -0
- package/dist/cjs/llm/fake.cjs.map +1 -0
- package/dist/cjs/llm/google/index.cjs +216 -0
- package/dist/cjs/llm/google/index.cjs.map +1 -0
- package/dist/cjs/llm/google/utils/common.cjs +647 -0
- package/dist/cjs/llm/google/utils/common.cjs.map +1 -0
- package/dist/cjs/llm/openai/index.cjs +1028 -0
- package/dist/cjs/llm/openai/index.cjs.map +1 -0
- package/dist/cjs/llm/openai/utils/index.cjs +765 -0
- package/dist/cjs/llm/openai/utils/index.cjs.map +1 -0
- package/dist/cjs/llm/openrouter/index.cjs +212 -0
- package/dist/cjs/llm/openrouter/index.cjs.map +1 -0
- package/dist/cjs/llm/providers.cjs +43 -0
- package/dist/cjs/llm/providers.cjs.map +1 -0
- package/dist/cjs/llm/text.cjs +69 -0
- package/dist/cjs/llm/text.cjs.map +1 -0
- package/dist/cjs/llm/vertexai/index.cjs +329 -0
- package/dist/cjs/llm/vertexai/index.cjs.map +1 -0
- package/dist/cjs/main.cjs +240 -0
- package/dist/cjs/main.cjs.map +1 -0
- package/dist/cjs/messages/cache.cjs +387 -0
- package/dist/cjs/messages/cache.cjs.map +1 -0
- package/dist/cjs/messages/content.cjs +53 -0
- package/dist/cjs/messages/content.cjs.map +1 -0
- package/dist/cjs/messages/core.cjs +367 -0
- package/dist/cjs/messages/core.cjs.map +1 -0
- package/dist/cjs/messages/format.cjs +761 -0
- package/dist/cjs/messages/format.cjs.map +1 -0
- package/dist/cjs/messages/ids.cjs +23 -0
- package/dist/cjs/messages/ids.cjs.map +1 -0
- package/dist/cjs/messages/prune.cjs +398 -0
- package/dist/cjs/messages/prune.cjs.map +1 -0
- package/dist/cjs/messages/tools.cjs +96 -0
- package/dist/cjs/messages/tools.cjs.map +1 -0
- package/dist/cjs/run.cjs +328 -0
- package/dist/cjs/run.cjs.map +1 -0
- package/dist/cjs/schemas/validate.cjs +324 -0
- package/dist/cjs/schemas/validate.cjs.map +1 -0
- package/dist/cjs/splitStream.cjs +210 -0
- package/dist/cjs/splitStream.cjs.map +1 -0
- package/dist/cjs/stream.cjs +620 -0
- package/dist/cjs/stream.cjs.map +1 -0
- package/dist/cjs/tools/BrowserTools.cjs +248 -0
- package/dist/cjs/tools/BrowserTools.cjs.map +1 -0
- package/dist/cjs/tools/Calculator.cjs +66 -0
- package/dist/cjs/tools/Calculator.cjs.map +1 -0
- package/dist/cjs/tools/CodeExecutor.cjs +234 -0
- package/dist/cjs/tools/CodeExecutor.cjs.map +1 -0
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs +636 -0
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -0
- package/dist/cjs/tools/ToolNode.cjs +548 -0
- package/dist/cjs/tools/ToolNode.cjs.map +1 -0
- package/dist/cjs/tools/ToolSearch.cjs +909 -0
- package/dist/cjs/tools/ToolSearch.cjs.map +1 -0
- package/dist/cjs/tools/handlers.cjs +255 -0
- package/dist/cjs/tools/handlers.cjs.map +1 -0
- package/dist/cjs/tools/schema.cjs +31 -0
- package/dist/cjs/tools/schema.cjs.map +1 -0
- package/dist/cjs/tools/search/anthropic.cjs +40 -0
- package/dist/cjs/tools/search/anthropic.cjs.map +1 -0
- package/dist/cjs/tools/search/content.cjs +140 -0
- package/dist/cjs/tools/search/content.cjs.map +1 -0
- package/dist/cjs/tools/search/firecrawl.cjs +179 -0
- package/dist/cjs/tools/search/firecrawl.cjs.map +1 -0
- package/dist/cjs/tools/search/format.cjs +203 -0
- package/dist/cjs/tools/search/format.cjs.map +1 -0
- package/dist/cjs/tools/search/highlights.cjs +245 -0
- package/dist/cjs/tools/search/highlights.cjs.map +1 -0
- package/dist/cjs/tools/search/rerankers.cjs +174 -0
- package/dist/cjs/tools/search/rerankers.cjs.map +1 -0
- package/dist/cjs/tools/search/schema.cjs +117 -0
- package/dist/cjs/tools/search/schema.cjs.map +1 -0
- package/dist/cjs/tools/search/search.cjs +566 -0
- package/dist/cjs/tools/search/search.cjs.map +1 -0
- package/dist/cjs/tools/search/serper-scraper.cjs +132 -0
- package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -0
- package/dist/cjs/tools/search/tool.cjs +456 -0
- package/dist/cjs/tools/search/tool.cjs.map +1 -0
- package/dist/cjs/tools/search/utils.cjs +66 -0
- package/dist/cjs/tools/search/utils.cjs.map +1 -0
- package/dist/cjs/types/graph.cjs +29 -0
- package/dist/cjs/types/graph.cjs.map +1 -0
- package/dist/cjs/utils/contextAnalytics.cjs +66 -0
- package/dist/cjs/utils/contextAnalytics.cjs.map +1 -0
- package/dist/cjs/utils/events.cjs +31 -0
- package/dist/cjs/utils/events.cjs.map +1 -0
- package/dist/cjs/utils/graph.cjs +16 -0
- package/dist/cjs/utils/graph.cjs.map +1 -0
- package/dist/cjs/utils/handlers.cjs +70 -0
- package/dist/cjs/utils/handlers.cjs.map +1 -0
- package/dist/cjs/utils/llm.cjs +27 -0
- package/dist/cjs/utils/llm.cjs.map +1 -0
- package/dist/cjs/utils/misc.cjs +56 -0
- package/dist/cjs/utils/misc.cjs.map +1 -0
- package/dist/cjs/utils/run.cjs +73 -0
- package/dist/cjs/utils/run.cjs.map +1 -0
- package/dist/cjs/utils/schema.cjs +27 -0
- package/dist/cjs/utils/schema.cjs.map +1 -0
- package/dist/cjs/utils/title.cjs +125 -0
- package/dist/cjs/utils/title.cjs.map +1 -0
- package/dist/cjs/utils/tokens.cjs +125 -0
- package/dist/cjs/utils/tokens.cjs.map +1 -0
- package/dist/cjs/utils/toonFormat.cjs +388 -0
- package/dist/cjs/utils/toonFormat.cjs.map +1 -0
- package/dist/esm/agents/AgentContext.mjs +732 -0
- package/dist/esm/agents/AgentContext.mjs.map +1 -0
- package/dist/esm/common/enum.mjs +190 -0
- package/dist/esm/common/enum.mjs.map +1 -0
- package/dist/esm/events.mjs +164 -0
- package/dist/esm/events.mjs.map +1 -0
- package/dist/esm/graphs/Graph.mjs +1612 -0
- package/dist/esm/graphs/Graph.mjs.map +1 -0
- package/dist/esm/graphs/MultiAgentGraph.mjs +888 -0
- package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -0
- package/dist/esm/instrumentation.mjs +19 -0
- package/dist/esm/instrumentation.mjs.map +1 -0
- package/dist/esm/llm/anthropic/index.mjs +290 -0
- package/dist/esm/llm/anthropic/index.mjs.map +1 -0
- package/dist/esm/llm/anthropic/types.mjs +48 -0
- package/dist/esm/llm/anthropic/types.mjs.map +1 -0
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs +627 -0
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -0
- package/dist/esm/llm/anthropic/utils/message_outputs.mjs +216 -0
- package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -0
- package/dist/esm/llm/anthropic/utils/tools.mjs +27 -0
- package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -0
- package/dist/esm/llm/bedrock/index.mjs +280 -0
- package/dist/esm/llm/bedrock/index.mjs.map +1 -0
- package/dist/esm/llm/fake.mjs +94 -0
- package/dist/esm/llm/fake.mjs.map +1 -0
- package/dist/esm/llm/google/index.mjs +214 -0
- package/dist/esm/llm/google/index.mjs.map +1 -0
- package/dist/esm/llm/google/utils/common.mjs +638 -0
- package/dist/esm/llm/google/utils/common.mjs.map +1 -0
- package/dist/esm/llm/openai/index.mjs +1018 -0
- package/dist/esm/llm/openai/index.mjs.map +1 -0
- package/dist/esm/llm/openai/utils/index.mjs +759 -0
- package/dist/esm/llm/openai/utils/index.mjs.map +1 -0
- package/dist/esm/llm/openrouter/index.mjs +210 -0
- package/dist/esm/llm/openrouter/index.mjs.map +1 -0
- package/dist/esm/llm/providers.mjs +39 -0
- package/dist/esm/llm/providers.mjs.map +1 -0
- package/dist/esm/llm/text.mjs +67 -0
- package/dist/esm/llm/text.mjs.map +1 -0
- package/dist/esm/llm/vertexai/index.mjs +327 -0
- package/dist/esm/llm/vertexai/index.mjs.map +1 -0
- package/dist/esm/main.mjs +37 -0
- package/dist/esm/main.mjs.map +1 -0
- package/dist/esm/messages/cache.mjs +382 -0
- package/dist/esm/messages/cache.mjs.map +1 -0
- package/dist/esm/messages/content.mjs +51 -0
- package/dist/esm/messages/content.mjs.map +1 -0
- package/dist/esm/messages/core.mjs +359 -0
- package/dist/esm/messages/core.mjs.map +1 -0
- package/dist/esm/messages/format.mjs +752 -0
- package/dist/esm/messages/format.mjs.map +1 -0
- package/dist/esm/messages/ids.mjs +21 -0
- package/dist/esm/messages/ids.mjs.map +1 -0
- package/dist/esm/messages/prune.mjs +393 -0
- package/dist/esm/messages/prune.mjs.map +1 -0
- package/dist/esm/messages/tools.mjs +93 -0
- package/dist/esm/messages/tools.mjs.map +1 -0
- package/dist/esm/run.mjs +325 -0
- package/dist/esm/run.mjs.map +1 -0
- package/dist/esm/schemas/validate.mjs +317 -0
- package/dist/esm/schemas/validate.mjs.map +1 -0
- package/dist/esm/splitStream.mjs +207 -0
- package/dist/esm/splitStream.mjs.map +1 -0
- package/dist/esm/stream.mjs +616 -0
- package/dist/esm/stream.mjs.map +1 -0
- package/dist/esm/tools/BrowserTools.mjs +244 -0
- package/dist/esm/tools/BrowserTools.mjs.map +1 -0
- package/dist/esm/tools/Calculator.mjs +41 -0
- package/dist/esm/tools/Calculator.mjs.map +1 -0
- package/dist/esm/tools/CodeExecutor.mjs +226 -0
- package/dist/esm/tools/CodeExecutor.mjs.map +1 -0
- package/dist/esm/tools/ProgrammaticToolCalling.mjs +622 -0
- package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -0
- package/dist/esm/tools/ToolNode.mjs +545 -0
- package/dist/esm/tools/ToolNode.mjs.map +1 -0
- package/dist/esm/tools/ToolSearch.mjs +870 -0
- package/dist/esm/tools/ToolSearch.mjs.map +1 -0
- package/dist/esm/tools/handlers.mjs +250 -0
- package/dist/esm/tools/handlers.mjs.map +1 -0
- package/dist/esm/tools/schema.mjs +28 -0
- package/dist/esm/tools/schema.mjs.map +1 -0
- package/dist/esm/tools/search/anthropic.mjs +37 -0
- package/dist/esm/tools/search/anthropic.mjs.map +1 -0
- package/dist/esm/tools/search/content.mjs +119 -0
- package/dist/esm/tools/search/content.mjs.map +1 -0
- package/dist/esm/tools/search/firecrawl.mjs +176 -0
- package/dist/esm/tools/search/firecrawl.mjs.map +1 -0
- package/dist/esm/tools/search/format.mjs +201 -0
- package/dist/esm/tools/search/format.mjs.map +1 -0
- package/dist/esm/tools/search/highlights.mjs +243 -0
- package/dist/esm/tools/search/highlights.mjs.map +1 -0
- package/dist/esm/tools/search/rerankers.mjs +168 -0
- package/dist/esm/tools/search/rerankers.mjs.map +1 -0
- package/dist/esm/tools/search/schema.mjs +104 -0
- package/dist/esm/tools/search/schema.mjs.map +1 -0
- package/dist/esm/tools/search/search.mjs +563 -0
- package/dist/esm/tools/search/search.mjs.map +1 -0
- package/dist/esm/tools/search/serper-scraper.mjs +129 -0
- package/dist/esm/tools/search/serper-scraper.mjs.map +1 -0
- package/dist/esm/tools/search/tool.mjs +454 -0
- package/dist/esm/tools/search/tool.mjs.map +1 -0
- package/dist/esm/tools/search/utils.mjs +61 -0
- package/dist/esm/tools/search/utils.mjs.map +1 -0
- package/dist/esm/types/graph.mjs +26 -0
- package/dist/esm/types/graph.mjs.map +1 -0
- package/dist/esm/utils/contextAnalytics.mjs +64 -0
- package/dist/esm/utils/contextAnalytics.mjs.map +1 -0
- package/dist/esm/utils/events.mjs +29 -0
- package/dist/esm/utils/events.mjs.map +1 -0
- package/dist/esm/utils/graph.mjs +13 -0
- package/dist/esm/utils/graph.mjs.map +1 -0
- package/dist/esm/utils/handlers.mjs +68 -0
- package/dist/esm/utils/handlers.mjs.map +1 -0
- package/dist/esm/utils/llm.mjs +24 -0
- package/dist/esm/utils/llm.mjs.map +1 -0
- package/dist/esm/utils/misc.mjs +53 -0
- package/dist/esm/utils/misc.mjs.map +1 -0
- package/dist/esm/utils/run.mjs +70 -0
- package/dist/esm/utils/run.mjs.map +1 -0
- package/dist/esm/utils/schema.mjs +24 -0
- package/dist/esm/utils/schema.mjs.map +1 -0
- package/dist/esm/utils/title.mjs +122 -0
- package/dist/esm/utils/title.mjs.map +1 -0
- package/dist/esm/utils/tokens.mjs +121 -0
- package/dist/esm/utils/tokens.mjs.map +1 -0
- package/dist/esm/utils/toonFormat.mjs +381 -0
- package/dist/esm/utils/toonFormat.mjs.map +1 -0
- package/dist/types/agents/AgentContext.d.ts +293 -0
- package/dist/types/common/enum.d.ts +155 -0
- package/dist/types/common/index.d.ts +1 -0
- package/dist/types/events.d.ts +31 -0
- package/dist/types/graphs/Graph.d.ts +216 -0
- package/dist/types/graphs/MultiAgentGraph.d.ts +104 -0
- package/dist/types/graphs/index.d.ts +2 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/instrumentation.d.ts +1 -0
- package/dist/types/llm/anthropic/index.d.ts +39 -0
- package/dist/types/llm/anthropic/types.d.ts +37 -0
- package/dist/types/llm/anthropic/utils/message_inputs.d.ts +14 -0
- package/dist/types/llm/anthropic/utils/message_outputs.d.ts +14 -0
- package/dist/types/llm/anthropic/utils/output_parsers.d.ts +22 -0
- package/dist/types/llm/anthropic/utils/tools.d.ts +3 -0
- package/dist/types/llm/bedrock/index.d.ts +141 -0
- package/dist/types/llm/bedrock/types.d.ts +27 -0
- package/dist/types/llm/bedrock/utils/index.d.ts +5 -0
- package/dist/types/llm/bedrock/utils/message_inputs.d.ts +31 -0
- package/dist/types/llm/bedrock/utils/message_outputs.d.ts +33 -0
- package/dist/types/llm/fake.d.ts +31 -0
- package/dist/types/llm/google/index.d.ts +24 -0
- package/dist/types/llm/google/types.d.ts +42 -0
- package/dist/types/llm/google/utils/common.d.ts +34 -0
- package/dist/types/llm/google/utils/tools.d.ts +10 -0
- package/dist/types/llm/google/utils/zod_to_genai_parameters.d.ts +14 -0
- package/dist/types/llm/openai/index.d.ts +127 -0
- package/dist/types/llm/openai/types.d.ts +10 -0
- package/dist/types/llm/openai/utils/index.d.ts +29 -0
- package/dist/types/llm/openrouter/index.d.ts +15 -0
- package/dist/types/llm/providers.d.ts +5 -0
- package/dist/types/llm/text.d.ts +21 -0
- package/dist/types/llm/vertexai/index.d.ts +293 -0
- package/dist/types/messages/cache.d.ts +54 -0
- package/dist/types/messages/content.d.ts +7 -0
- package/dist/types/messages/core.d.ts +14 -0
- package/dist/types/messages/format.d.ts +137 -0
- package/dist/types/messages/ids.d.ts +3 -0
- package/dist/types/messages/index.d.ts +7 -0
- package/dist/types/messages/prune.d.ts +52 -0
- package/dist/types/messages/reducer.d.ts +9 -0
- package/dist/types/messages/tools.d.ts +17 -0
- package/dist/types/mockStream.d.ts +32 -0
- package/dist/types/prompts/collab.d.ts +1 -0
- package/dist/types/prompts/index.d.ts +2 -0
- package/dist/types/prompts/taskmanager.d.ts +41 -0
- package/dist/types/run.d.ts +41 -0
- package/dist/types/schemas/index.d.ts +1 -0
- package/dist/types/schemas/validate.d.ts +59 -0
- package/dist/types/splitStream.d.ts +37 -0
- package/dist/types/stream.d.ts +15 -0
- package/dist/types/test/mockTools.d.ts +28 -0
- package/dist/types/tools/BrowserTools.d.ts +87 -0
- package/dist/types/tools/Calculator.d.ts +34 -0
- package/dist/types/tools/CodeExecutor.d.ts +57 -0
- package/dist/types/tools/ProgrammaticToolCalling.d.ts +138 -0
- package/dist/types/tools/ToolNode.d.ts +51 -0
- package/dist/types/tools/ToolSearch.d.ts +219 -0
- package/dist/types/tools/handlers.d.ts +22 -0
- package/dist/types/tools/schema.d.ts +12 -0
- package/dist/types/tools/search/anthropic.d.ts +16 -0
- package/dist/types/tools/search/content.d.ts +4 -0
- package/dist/types/tools/search/firecrawl.d.ts +54 -0
- package/dist/types/tools/search/format.d.ts +5 -0
- package/dist/types/tools/search/highlights.d.ts +13 -0
- package/dist/types/tools/search/index.d.ts +3 -0
- package/dist/types/tools/search/rerankers.d.ts +38 -0
- package/dist/types/tools/search/schema.d.ts +103 -0
- package/dist/types/tools/search/search.d.ts +8 -0
- package/dist/types/tools/search/serper-scraper.d.ts +59 -0
- package/dist/types/tools/search/test.d.ts +1 -0
- package/dist/types/tools/search/tool.d.ts +3 -0
- package/dist/types/tools/search/types.d.ts +575 -0
- package/dist/types/tools/search/utils.d.ts +10 -0
- package/dist/types/types/graph.d.ts +399 -0
- package/dist/types/types/index.d.ts +5 -0
- package/dist/types/types/llm.d.ts +105 -0
- package/dist/types/types/messages.d.ts +4 -0
- package/dist/types/types/run.d.ts +112 -0
- package/dist/types/types/stream.d.ts +308 -0
- package/dist/types/types/tools.d.ts +296 -0
- package/dist/types/utils/contextAnalytics.d.ts +37 -0
- package/dist/types/utils/events.d.ts +6 -0
- package/dist/types/utils/graph.d.ts +2 -0
- package/dist/types/utils/handlers.d.ts +34 -0
- package/dist/types/utils/index.d.ts +9 -0
- package/dist/types/utils/llm.d.ts +3 -0
- package/dist/types/utils/llmConfig.d.ts +3 -0
- package/dist/types/utils/logging.d.ts +1 -0
- package/dist/types/utils/misc.d.ts +7 -0
- package/dist/types/utils/run.d.ts +27 -0
- package/dist/types/utils/schema.d.ts +8 -0
- package/dist/types/utils/title.d.ts +4 -0
- package/dist/types/utils/tokens.d.ts +28 -0
- package/dist/types/utils/toonFormat.d.ts +111 -0
- package/package.json +190 -0
- package/src/agents/AgentContext.test.ts +458 -0
- package/src/agents/AgentContext.ts +972 -0
- package/src/agents/__tests__/AgentContext.test.ts +805 -0
- package/src/agents/__tests__/resolveStructuredOutputMode.test.ts +137 -0
- package/src/common/enum.ts +203 -0
- package/src/common/index.ts +2 -0
- package/src/events.ts +223 -0
- package/src/graphs/Graph.ts +2228 -0
- package/src/graphs/MultiAgentGraph.ts +1063 -0
- package/src/graphs/__tests__/structured-output.integration.test.ts +809 -0
- package/src/graphs/__tests__/structured-output.test.ts +183 -0
- package/src/graphs/index.ts +2 -0
- package/src/index.ts +34 -0
- package/src/instrumentation.ts +22 -0
- package/src/llm/anthropic/Jacob_Lee_Resume_2023.pdf +0 -0
- package/src/llm/anthropic/index.ts +413 -0
- package/src/llm/anthropic/llm.spec.ts +1442 -0
- package/src/llm/anthropic/types.ts +140 -0
- package/src/llm/anthropic/utils/message_inputs.ts +757 -0
- package/src/llm/anthropic/utils/message_outputs.ts +289 -0
- package/src/llm/anthropic/utils/output_parsers.ts +133 -0
- package/src/llm/anthropic/utils/tools.ts +29 -0
- package/src/llm/bedrock/__tests__/bedrock-caching.test.ts +495 -0
- package/src/llm/bedrock/index.ts +411 -0
- package/src/llm/bedrock/llm.spec.ts +616 -0
- package/src/llm/bedrock/types.ts +51 -0
- package/src/llm/bedrock/utils/index.ts +18 -0
- package/src/llm/bedrock/utils/message_inputs.ts +563 -0
- package/src/llm/bedrock/utils/message_outputs.ts +310 -0
- package/src/llm/fake.ts +133 -0
- package/src/llm/google/data/gettysburg10.wav +0 -0
- package/src/llm/google/data/hotdog.jpg +0 -0
- package/src/llm/google/index.ts +337 -0
- package/src/llm/google/llm.spec.ts +934 -0
- package/src/llm/google/types.ts +56 -0
- package/src/llm/google/utils/common.ts +873 -0
- package/src/llm/google/utils/tools.ts +160 -0
- package/src/llm/google/utils/zod_to_genai_parameters.ts +86 -0
- package/src/llm/openai/index.ts +1366 -0
- package/src/llm/openai/types.ts +24 -0
- package/src/llm/openai/utils/index.ts +1035 -0
- package/src/llm/openai/utils/isReasoningModel.test.ts +90 -0
- package/src/llm/openrouter/index.ts +291 -0
- package/src/llm/providers.ts +52 -0
- package/src/llm/text.ts +94 -0
- package/src/llm/vertexai/index.ts +359 -0
- package/src/messages/__tests__/tools.test.ts +473 -0
- package/src/messages/cache.test.ts +1261 -0
- package/src/messages/cache.ts +518 -0
- package/src/messages/content.test.ts +362 -0
- package/src/messages/content.ts +63 -0
- package/src/messages/core.ts +473 -0
- package/src/messages/ensureThinkingBlock.test.ts +468 -0
- package/src/messages/format.ts +1029 -0
- package/src/messages/formatAgentMessages.test.ts +1513 -0
- package/src/messages/formatAgentMessages.tools.test.ts +419 -0
- package/src/messages/formatMessage.test.ts +693 -0
- package/src/messages/ids.ts +26 -0
- package/src/messages/index.ts +7 -0
- package/src/messages/labelContentByAgent.test.ts +887 -0
- package/src/messages/prune.ts +568 -0
- package/src/messages/reducer.ts +80 -0
- package/src/messages/shiftIndexTokenCountMap.test.ts +81 -0
- package/src/messages/tools.ts +108 -0
- package/src/mockStream.ts +99 -0
- package/src/prompts/collab.ts +6 -0
- package/src/prompts/index.ts +2 -0
- package/src/prompts/taskmanager.ts +61 -0
- package/src/run.ts +467 -0
- package/src/schemas/index.ts +2 -0
- package/src/schemas/schema-preparation.test.ts +500 -0
- package/src/schemas/validate.test.ts +358 -0
- package/src/schemas/validate.ts +454 -0
- package/src/scripts/abort.ts +157 -0
- package/src/scripts/ant_web_search.ts +158 -0
- package/src/scripts/ant_web_search_edge_case.ts +162 -0
- package/src/scripts/ant_web_search_error_edge_case.ts +148 -0
- package/src/scripts/args.ts +48 -0
- package/src/scripts/caching.ts +132 -0
- package/src/scripts/cli.ts +172 -0
- package/src/scripts/cli2.ts +133 -0
- package/src/scripts/cli3.ts +184 -0
- package/src/scripts/cli4.ts +191 -0
- package/src/scripts/cli5.ts +191 -0
- package/src/scripts/code_exec.ts +213 -0
- package/src/scripts/code_exec_files.ts +236 -0
- package/src/scripts/code_exec_multi_session.ts +241 -0
- package/src/scripts/code_exec_ptc.ts +334 -0
- package/src/scripts/code_exec_session.ts +282 -0
- package/src/scripts/code_exec_simple.ts +147 -0
- package/src/scripts/content.ts +138 -0
- package/src/scripts/empty_input.ts +137 -0
- package/src/scripts/handoff-test.ts +135 -0
- package/src/scripts/image.ts +178 -0
- package/src/scripts/memory.ts +97 -0
- package/src/scripts/multi-agent-chain.ts +331 -0
- package/src/scripts/multi-agent-conditional.ts +221 -0
- package/src/scripts/multi-agent-document-review-chain.ts +197 -0
- package/src/scripts/multi-agent-hybrid-flow.ts +310 -0
- package/src/scripts/multi-agent-parallel-start.ts +265 -0
- package/src/scripts/multi-agent-parallel.ts +394 -0
- package/src/scripts/multi-agent-sequence.ts +217 -0
- package/src/scripts/multi-agent-supervisor.ts +365 -0
- package/src/scripts/multi-agent-test.ts +186 -0
- package/src/scripts/parallel-asymmetric-tools-test.ts +274 -0
- package/src/scripts/parallel-full-metadata-test.ts +240 -0
- package/src/scripts/parallel-tools-test.ts +340 -0
- package/src/scripts/programmatic_exec.ts +396 -0
- package/src/scripts/programmatic_exec_agent.ts +231 -0
- package/src/scripts/search.ts +146 -0
- package/src/scripts/sequential-full-metadata-test.ts +197 -0
- package/src/scripts/simple.ts +225 -0
- package/src/scripts/single-agent-metadata-test.ts +198 -0
- package/src/scripts/stream.ts +140 -0
- package/src/scripts/test-custom-prompt-key.ts +145 -0
- package/src/scripts/test-handoff-input.ts +170 -0
- package/src/scripts/test-handoff-preamble.ts +277 -0
- package/src/scripts/test-multi-agent-list-handoff.ts +417 -0
- package/src/scripts/test-parallel-agent-labeling.ts +325 -0
- package/src/scripts/test-parallel-handoffs.ts +291 -0
- package/src/scripts/test-thinking-handoff-bedrock.ts +153 -0
- package/src/scripts/test-thinking-handoff.ts +155 -0
- package/src/scripts/test-tools-before-handoff.ts +226 -0
- package/src/scripts/test_code_api.ts +361 -0
- package/src/scripts/thinking-bedrock.ts +159 -0
- package/src/scripts/thinking.ts +171 -0
- package/src/scripts/tool_search.ts +162 -0
- package/src/scripts/tools.ts +177 -0
- package/src/specs/agent-handoffs.test.ts +888 -0
- package/src/specs/anthropic.simple.test.ts +387 -0
- package/src/specs/azure.simple.test.ts +364 -0
- package/src/specs/cache.simple.test.ts +396 -0
- package/src/specs/deepseek.simple.test.ts +283 -0
- package/src/specs/emergency-prune.test.ts +407 -0
- package/src/specs/moonshot.simple.test.ts +358 -0
- package/src/specs/openai.simple.test.ts +311 -0
- package/src/specs/openrouter.simple.test.ts +107 -0
- package/src/specs/prune.test.ts +901 -0
- package/src/specs/reasoning.test.ts +201 -0
- package/src/specs/spec.utils.ts +3 -0
- package/src/specs/thinking-handoff.test.ts +620 -0
- package/src/specs/thinking-prune.test.ts +703 -0
- package/src/specs/token-distribution-edge-case.test.ts +316 -0
- package/src/specs/token-memoization.test.ts +32 -0
- package/src/specs/tool-error.test.ts +198 -0
- package/src/splitStream.test.ts +691 -0
- package/src/splitStream.ts +234 -0
- package/src/stream.test.ts +94 -0
- package/src/stream.ts +801 -0
- package/src/test/mockTools.ts +386 -0
- package/src/tools/BrowserTools.ts +393 -0
- package/src/tools/Calculator.test.ts +278 -0
- package/src/tools/Calculator.ts +46 -0
- package/src/tools/CodeExecutor.ts +270 -0
- package/src/tools/ProgrammaticToolCalling.ts +785 -0
- package/src/tools/ToolNode.ts +674 -0
- package/src/tools/ToolSearch.ts +1095 -0
- package/src/tools/__tests__/BrowserTools.test.ts +265 -0
- package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.ts +319 -0
- package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +1006 -0
- package/src/tools/__tests__/ToolSearch.integration.test.ts +162 -0
- package/src/tools/__tests__/ToolSearch.test.ts +1003 -0
- package/src/tools/handlers.ts +363 -0
- package/src/tools/schema.ts +37 -0
- package/src/tools/search/anthropic.ts +51 -0
- package/src/tools/search/content.test.ts +173 -0
- package/src/tools/search/content.ts +147 -0
- package/src/tools/search/firecrawl.ts +210 -0
- package/src/tools/search/format.ts +250 -0
- package/src/tools/search/highlights.ts +320 -0
- package/src/tools/search/index.ts +3 -0
- package/src/tools/search/jina-reranker.test.ts +130 -0
- package/src/tools/search/output.md +2775 -0
- package/src/tools/search/rerankers.ts +242 -0
- package/src/tools/search/schema.ts +113 -0
- package/src/tools/search/search.ts +768 -0
- package/src/tools/search/serper-scraper.ts +155 -0
- package/src/tools/search/test.html +884 -0
- package/src/tools/search/test.md +643 -0
- package/src/tools/search/test.ts +159 -0
- package/src/tools/search/tool.ts +657 -0
- package/src/tools/search/types.ts +665 -0
- package/src/tools/search/utils.ts +79 -0
- package/src/types/graph.test.ts +218 -0
- package/src/types/graph.ts +533 -0
- package/src/types/index.ts +6 -0
- package/src/types/llm.ts +140 -0
- package/src/types/messages.ts +4 -0
- package/src/types/run.ts +128 -0
- package/src/types/stream.ts +417 -0
- package/src/types/tools.ts +355 -0
- package/src/utils/contextAnalytics.ts +103 -0
- package/src/utils/events.ts +32 -0
- package/src/utils/graph.ts +11 -0
- package/src/utils/handlers.ts +107 -0
- package/src/utils/index.ts +9 -0
- package/src/utils/llm.ts +26 -0
- package/src/utils/llmConfig.ts +208 -0
- package/src/utils/logging.ts +48 -0
- package/src/utils/misc.ts +57 -0
- package/src/utils/run.ts +106 -0
- package/src/utils/schema.ts +35 -0
- package/src/utils/title.ts +177 -0
- package/src/utils/tokens.ts +142 -0
- package/src/utils/toonFormat.ts +475 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import type OpenAITypes from 'openai';
|
|
2
|
+
import type { MessageContentImageUrl, MessageContentText, ToolMessage, BaseMessage } from '@langchain/core/messages';
|
|
3
|
+
import type { ToolCall, ToolCallChunk } from '@langchain/core/messages/tool';
|
|
4
|
+
import type { LLMResult, Generation } from '@langchain/core/outputs';
|
|
5
|
+
import type { AnthropicContentBlock } from '@/llm/anthropic/types';
|
|
6
|
+
import type { Command } from '@langchain/langgraph';
|
|
7
|
+
import type { ToolEndEvent } from '@/types/tools';
|
|
8
|
+
import { StepTypes, ContentTypes, GraphEvents } from '@/common/enum';
|
|
9
|
+
export type HandleLLMEnd = (output: LLMResult, runId: string, parentRunId?: string, tags?: string[]) => void;
|
|
10
|
+
export type MetadataAggregatorResult = {
|
|
11
|
+
handleLLMEnd: HandleLLMEnd;
|
|
12
|
+
collected: Record<string, unknown>[];
|
|
13
|
+
};
|
|
14
|
+
export type StreamGeneration = Generation & {
|
|
15
|
+
text?: string;
|
|
16
|
+
message?: BaseMessage;
|
|
17
|
+
};
|
|
18
|
+
/** Event names are of the format: on_[runnable_type]_(start|stream|end).
|
|
19
|
+
|
|
20
|
+
Runnable types are one of:
|
|
21
|
+
|
|
22
|
+
llm - used by non chat models
|
|
23
|
+
chat_model - used by chat models
|
|
24
|
+
prompt -- e.g., ChatPromptTemplate
|
|
25
|
+
tool -- LangChain tools
|
|
26
|
+
chain - most Runnables are of this type
|
|
27
|
+
Further, the events are categorized as one of:
|
|
28
|
+
|
|
29
|
+
start - when the runnable starts
|
|
30
|
+
stream - when the runnable is streaming
|
|
31
|
+
end - when the runnable ends
|
|
32
|
+
start, stream and end are associated with slightly different data payload.
|
|
33
|
+
|
|
34
|
+
Please see the documentation for EventData for more details. */
|
|
35
|
+
export type EventName = string;
|
|
36
|
+
export type RunStep = {
|
|
37
|
+
type: StepTypes;
|
|
38
|
+
id: string;
|
|
39
|
+
runId?: string;
|
|
40
|
+
agentId?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Group ID - incrementing number (1, 2, 3...) reflecting execution order.
|
|
43
|
+
* Agents with the same groupId run in parallel and should be rendered together.
|
|
44
|
+
* undefined means the agent runs sequentially (not part of any parallel group).
|
|
45
|
+
*
|
|
46
|
+
* Example for: researcher -> [analyst1, analyst2, analyst3] -> summarizer
|
|
47
|
+
* - researcher: undefined (sequential)
|
|
48
|
+
* - analyst1, analyst2, analyst3: 1 (first parallel group)
|
|
49
|
+
* - summarizer: undefined (sequential)
|
|
50
|
+
*/
|
|
51
|
+
groupId?: number;
|
|
52
|
+
index: number;
|
|
53
|
+
stepIndex?: number;
|
|
54
|
+
stepDetails: StepDetails;
|
|
55
|
+
usage?: null | object;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Represents a run step delta i.e. any changed fields on a run step during
|
|
59
|
+
* streaming.
|
|
60
|
+
*/
|
|
61
|
+
export interface RunStepDeltaEvent {
|
|
62
|
+
/**
|
|
63
|
+
* The identifier of the run step, which can be referenced in API endpoints.
|
|
64
|
+
*/
|
|
65
|
+
id: string;
|
|
66
|
+
/**
|
|
67
|
+
* The delta containing the fields that have changed on the run step.
|
|
68
|
+
*/
|
|
69
|
+
delta: ToolCallDelta;
|
|
70
|
+
}
|
|
71
|
+
export type StepDetails = MessageCreationDetails | ToolCallsDetails;
|
|
72
|
+
export type StepCompleted = ToolCallCompleted;
|
|
73
|
+
export type MessageCreationDetails = {
|
|
74
|
+
type: StepTypes.MESSAGE_CREATION;
|
|
75
|
+
message_creation: {
|
|
76
|
+
message_id: string;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
export type ToolEndData = {
|
|
80
|
+
input: string | Record<string, unknown>;
|
|
81
|
+
output?: ToolMessage | Command;
|
|
82
|
+
};
|
|
83
|
+
export type ToolErrorData = {
|
|
84
|
+
id: string;
|
|
85
|
+
name: string;
|
|
86
|
+
error?: Error;
|
|
87
|
+
} & Pick<ToolEndData, 'input'>;
|
|
88
|
+
export type ToolEndCallback = (data: ToolEndData, metadata?: Record<string, unknown>) => Promise<void>;
|
|
89
|
+
export type ProcessedToolCall = {
|
|
90
|
+
name: string;
|
|
91
|
+
args: string | Record<string, unknown>;
|
|
92
|
+
id: string;
|
|
93
|
+
output: string;
|
|
94
|
+
progress: number;
|
|
95
|
+
};
|
|
96
|
+
export type ProcessedContent = {
|
|
97
|
+
type: ContentType;
|
|
98
|
+
text?: string;
|
|
99
|
+
tool_call?: ProcessedToolCall;
|
|
100
|
+
};
|
|
101
|
+
export type ToolCallCompleted = {
|
|
102
|
+
type: 'tool_call';
|
|
103
|
+
tool_call: ProcessedToolCall;
|
|
104
|
+
};
|
|
105
|
+
export type ToolCompleteEvent = ToolCallCompleted & {
|
|
106
|
+
/** The Step Id of the Tool Call */
|
|
107
|
+
id: string;
|
|
108
|
+
/** The content index of the tool call */
|
|
109
|
+
index: number;
|
|
110
|
+
type: 'tool_call';
|
|
111
|
+
};
|
|
112
|
+
export type ToolCallsDetails = {
|
|
113
|
+
type: StepTypes.TOOL_CALLS;
|
|
114
|
+
tool_calls?: AgentToolCall[];
|
|
115
|
+
};
|
|
116
|
+
export type ToolCallDelta = {
|
|
117
|
+
type: StepTypes;
|
|
118
|
+
tool_calls?: ToolCallChunk[];
|
|
119
|
+
};
|
|
120
|
+
export type AgentToolCall = {
|
|
121
|
+
id: string;
|
|
122
|
+
type: 'function';
|
|
123
|
+
function: {
|
|
124
|
+
name: string;
|
|
125
|
+
arguments: string | object;
|
|
126
|
+
};
|
|
127
|
+
} | ToolCall;
|
|
128
|
+
export interface ExtendedMessageContent {
|
|
129
|
+
type?: string;
|
|
130
|
+
text?: string;
|
|
131
|
+
input?: string;
|
|
132
|
+
index?: number;
|
|
133
|
+
id?: string;
|
|
134
|
+
name?: string;
|
|
135
|
+
}
|
|
136
|
+
export type AgentUpdate = {
|
|
137
|
+
type: ContentTypes.AGENT_UPDATE;
|
|
138
|
+
agent_update: {
|
|
139
|
+
index: number;
|
|
140
|
+
runId: string;
|
|
141
|
+
agentId: string;
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Represents a message delta i.e. any changed fields on a message during
|
|
146
|
+
* streaming.
|
|
147
|
+
*/
|
|
148
|
+
export interface MessageDeltaEvent {
|
|
149
|
+
/**
|
|
150
|
+
* The identifier of the message, which can be referenced in API endpoints.
|
|
151
|
+
*/
|
|
152
|
+
id: string;
|
|
153
|
+
/**
|
|
154
|
+
* The delta containing the fields that have changed on the Message.
|
|
155
|
+
*/
|
|
156
|
+
delta: MessageDelta;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* The delta containing the fields that have changed on the Message.
|
|
160
|
+
*/
|
|
161
|
+
export interface MessageDelta {
|
|
162
|
+
/**
|
|
163
|
+
* The content of the message in array of text and/or images.
|
|
164
|
+
*/
|
|
165
|
+
content?: MessageContentComplex[];
|
|
166
|
+
/**
|
|
167
|
+
* The tool call ids associated with the message.
|
|
168
|
+
*/
|
|
169
|
+
tool_call_ids?: string[];
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Represents a reasoning delta i.e. any changed fields on a message during
|
|
173
|
+
* streaming.
|
|
174
|
+
*/
|
|
175
|
+
export interface ReasoningDeltaEvent {
|
|
176
|
+
/**
|
|
177
|
+
* The identifier of the message, which can be referenced in API endpoints.
|
|
178
|
+
*/
|
|
179
|
+
id: string;
|
|
180
|
+
/**
|
|
181
|
+
* The delta containing the fields that have changed.
|
|
182
|
+
*/
|
|
183
|
+
delta: ReasoningDelta;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* The reasoning delta containing the fields that have changed on the Message.
|
|
187
|
+
*/
|
|
188
|
+
export interface ReasoningDelta {
|
|
189
|
+
/**
|
|
190
|
+
* The content of the message in array of text and/or images.
|
|
191
|
+
*/
|
|
192
|
+
content?: MessageContentComplex[];
|
|
193
|
+
}
|
|
194
|
+
export type MessageDeltaUpdate = {
|
|
195
|
+
type: ContentTypes.TEXT;
|
|
196
|
+
text: string;
|
|
197
|
+
tool_call_ids?: string[];
|
|
198
|
+
};
|
|
199
|
+
export type ReasoningDeltaUpdate = {
|
|
200
|
+
type: ContentTypes.THINK;
|
|
201
|
+
think: string;
|
|
202
|
+
};
|
|
203
|
+
export type ContentType = 'text' | 'image_url' | 'tool_call' | 'think' | string;
|
|
204
|
+
export type ReasoningContentText = {
|
|
205
|
+
type: ContentTypes.THINK;
|
|
206
|
+
think: string;
|
|
207
|
+
};
|
|
208
|
+
/** Vertex AI / Google Common - Reasoning Content Block Format */
|
|
209
|
+
export type GoogleReasoningContentText = {
|
|
210
|
+
type: ContentTypes.REASONING;
|
|
211
|
+
reasoning: string;
|
|
212
|
+
};
|
|
213
|
+
/** Anthropic's Reasoning Content Block Format */
|
|
214
|
+
export type ThinkingContentText = {
|
|
215
|
+
type: ContentTypes.THINKING;
|
|
216
|
+
index?: number;
|
|
217
|
+
signature?: string;
|
|
218
|
+
thinking?: string;
|
|
219
|
+
};
|
|
220
|
+
/** Bedrock's Reasoning Content Block Format */
|
|
221
|
+
export type BedrockReasoningContentText = {
|
|
222
|
+
type: ContentTypes.REASONING_CONTENT;
|
|
223
|
+
index?: number;
|
|
224
|
+
reasoningText: {
|
|
225
|
+
text?: string;
|
|
226
|
+
signature?: string;
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* A call to a tool.
|
|
231
|
+
*/
|
|
232
|
+
export type ToolCallPart = {
|
|
233
|
+
/** Type ("tool_call") according to Assistants Tool Call Structure */
|
|
234
|
+
type: ContentTypes.TOOL_CALL;
|
|
235
|
+
/** The name of the tool to be called */
|
|
236
|
+
name?: string;
|
|
237
|
+
/** The arguments to the tool call */
|
|
238
|
+
args?: string | Record<string, any>;
|
|
239
|
+
/** If provided, an identifier associated with the tool call */
|
|
240
|
+
id?: string;
|
|
241
|
+
/** If provided, the output of the tool call */
|
|
242
|
+
output?: string;
|
|
243
|
+
/** Auth URL */
|
|
244
|
+
auth?: string;
|
|
245
|
+
/** Expiration time */
|
|
246
|
+
expires_at?: number;
|
|
247
|
+
};
|
|
248
|
+
export type ToolCallContent = {
|
|
249
|
+
type: ContentTypes.TOOL_CALL;
|
|
250
|
+
tool_call?: ToolCallPart;
|
|
251
|
+
};
|
|
252
|
+
export type ToolResultContent = {
|
|
253
|
+
content: string | Record<string, unknown> | Array<string | Record<string, unknown>> | AnthropicContentBlock[];
|
|
254
|
+
type: 'tool_result' | 'web_search_result' | 'web_search_tool_result';
|
|
255
|
+
tool_use_id?: string;
|
|
256
|
+
input?: string | Record<string, unknown>;
|
|
257
|
+
index?: number;
|
|
258
|
+
};
|
|
259
|
+
export type MessageContentComplex = (ToolResultContent | ThinkingContentText | AgentUpdate | ToolCallContent | ReasoningContentText | MessageContentText | MessageContentImageUrl | (Record<string, any> & {
|
|
260
|
+
type?: 'text' | 'image_url' | 'think' | 'thinking' | string;
|
|
261
|
+
}) | (Record<string, any> & {
|
|
262
|
+
type?: never;
|
|
263
|
+
})) & {
|
|
264
|
+
tool_call_ids?: string[];
|
|
265
|
+
agentId?: string;
|
|
266
|
+
groupId?: number;
|
|
267
|
+
};
|
|
268
|
+
export interface TMessage {
|
|
269
|
+
role?: string;
|
|
270
|
+
content?: MessageContentComplex[] | string;
|
|
271
|
+
[key: string]: unknown;
|
|
272
|
+
}
|
|
273
|
+
export type TPayload = Array<Partial<TMessage>>;
|
|
274
|
+
export type CustomChunkDelta = null | undefined | (Partial<OpenAITypes.Chat.Completions.ChatCompletionChunk.Choice.Delta> & {
|
|
275
|
+
reasoning?: string | null;
|
|
276
|
+
reasoning_content?: string | null;
|
|
277
|
+
});
|
|
278
|
+
export type CustomChunkChoice = Partial<Omit<OpenAITypes.Chat.Completions.ChatCompletionChunk.Choice, 'delta'> & {
|
|
279
|
+
delta?: CustomChunkDelta;
|
|
280
|
+
}>;
|
|
281
|
+
export type CustomChunk = Partial<OpenAITypes.ChatCompletionChunk> & {
|
|
282
|
+
choices?: Partial<Array<CustomChunkChoice>>;
|
|
283
|
+
};
|
|
284
|
+
export type SplitStreamHandlers = Partial<{
|
|
285
|
+
[GraphEvents.ON_RUN_STEP]: ({ event, data, }: {
|
|
286
|
+
event: GraphEvents;
|
|
287
|
+
data: RunStep;
|
|
288
|
+
}) => void;
|
|
289
|
+
[GraphEvents.ON_MESSAGE_DELTA]: ({ event, data, }: {
|
|
290
|
+
event: GraphEvents;
|
|
291
|
+
data: MessageDeltaEvent;
|
|
292
|
+
}) => void;
|
|
293
|
+
[GraphEvents.ON_REASONING_DELTA]: ({ event, data, }: {
|
|
294
|
+
event: GraphEvents;
|
|
295
|
+
data: ReasoningDeltaEvent;
|
|
296
|
+
}) => void;
|
|
297
|
+
}>;
|
|
298
|
+
export type ContentAggregator = ({ event, data, }: {
|
|
299
|
+
event: GraphEvents;
|
|
300
|
+
data: RunStep | MessageDeltaEvent | RunStepDeltaEvent | {
|
|
301
|
+
result: ToolEndEvent;
|
|
302
|
+
};
|
|
303
|
+
}) => void;
|
|
304
|
+
export type ContentAggregatorResult = {
|
|
305
|
+
stepMap: Map<string, RunStep | undefined>;
|
|
306
|
+
contentParts: Array<MessageContentComplex | undefined>;
|
|
307
|
+
aggregateContent: ContentAggregator;
|
|
308
|
+
};
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
import type { StructuredToolInterface } from '@langchain/core/tools';
|
|
2
|
+
import type { RunnableToolLike } from '@langchain/core/runnables';
|
|
3
|
+
import type { ToolCall } from '@langchain/core/messages/tool';
|
|
4
|
+
import type { ToolErrorData } from './stream';
|
|
5
|
+
import { EnvVar } from '@/common';
|
|
6
|
+
/** Replacement type for `import type { ToolCall } from '@langchain/core/messages/tool'` in order to have stringified args typed */
|
|
7
|
+
export type CustomToolCall = {
|
|
8
|
+
name: string;
|
|
9
|
+
args: string | Record<string, any>;
|
|
10
|
+
id?: string;
|
|
11
|
+
type?: 'tool_call';
|
|
12
|
+
output?: string;
|
|
13
|
+
};
|
|
14
|
+
export type GenericTool = (StructuredToolInterface | RunnableToolLike) & {
|
|
15
|
+
mcp?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export type ToolMap = Map<string, GenericTool>;
|
|
18
|
+
export type ToolRefs = {
|
|
19
|
+
tools: GenericTool[];
|
|
20
|
+
toolMap?: ToolMap;
|
|
21
|
+
};
|
|
22
|
+
export type ToolRefGenerator = (tool_calls: ToolCall[]) => ToolRefs;
|
|
23
|
+
export type ToolNodeOptions = {
|
|
24
|
+
name?: string;
|
|
25
|
+
tags?: string[];
|
|
26
|
+
handleToolErrors?: boolean;
|
|
27
|
+
loadRuntimeTools?: ToolRefGenerator;
|
|
28
|
+
toolCallStepIds?: Map<string, string>;
|
|
29
|
+
errorHandler?: (data: ToolErrorData, metadata?: Record<string, unknown>) => Promise<void>;
|
|
30
|
+
/** Tool registry for lazy computation of programmatic tools and tool search */
|
|
31
|
+
toolRegistry?: LCToolRegistry;
|
|
32
|
+
/** Reference to Graph's sessions map for automatic session injection */
|
|
33
|
+
sessions?: ToolSessionMap;
|
|
34
|
+
/** When true, dispatches ON_TOOL_EXECUTE events instead of invoking tools directly */
|
|
35
|
+
eventDrivenMode?: boolean;
|
|
36
|
+
/** Tool definitions for event-driven mode (used for context, not invocation) */
|
|
37
|
+
toolDefinitions?: Map<string, LCTool>;
|
|
38
|
+
/** Agent ID for event-driven mode (used to identify which agent's context to use) */
|
|
39
|
+
agentId?: string;
|
|
40
|
+
};
|
|
41
|
+
export type ToolNodeConstructorParams = ToolRefs & ToolNodeOptions;
|
|
42
|
+
export type ToolEndEvent = {
|
|
43
|
+
/** The Step Id of the Tool Call */
|
|
44
|
+
id: string;
|
|
45
|
+
/** The Completed Tool Call */
|
|
46
|
+
tool_call: ToolCall;
|
|
47
|
+
/** The content index of the tool call */
|
|
48
|
+
index: number;
|
|
49
|
+
};
|
|
50
|
+
export type CodeEnvFile = {
|
|
51
|
+
id: string;
|
|
52
|
+
name: string;
|
|
53
|
+
session_id: string;
|
|
54
|
+
};
|
|
55
|
+
export type CodeExecutionToolParams = undefined | {
|
|
56
|
+
session_id?: string;
|
|
57
|
+
user_id?: string;
|
|
58
|
+
apiKey?: string;
|
|
59
|
+
files?: CodeEnvFile[];
|
|
60
|
+
[EnvVar.CODE_API_KEY]?: string;
|
|
61
|
+
};
|
|
62
|
+
export type FileRef = {
|
|
63
|
+
id: string;
|
|
64
|
+
name: string;
|
|
65
|
+
path?: string;
|
|
66
|
+
/** Session ID this file belongs to (for multi-session file tracking) */
|
|
67
|
+
session_id?: string;
|
|
68
|
+
};
|
|
69
|
+
export type FileRefs = FileRef[];
|
|
70
|
+
export type ExecuteResult = {
|
|
71
|
+
session_id: string;
|
|
72
|
+
stdout: string;
|
|
73
|
+
stderr: string;
|
|
74
|
+
files?: FileRefs;
|
|
75
|
+
};
|
|
76
|
+
/** JSON Schema type definition for tool parameters */
|
|
77
|
+
export type JsonSchemaType = {
|
|
78
|
+
type: 'string' | 'number' | 'integer' | 'float' | 'boolean' | 'array' | 'object';
|
|
79
|
+
enum?: string[];
|
|
80
|
+
items?: JsonSchemaType;
|
|
81
|
+
properties?: Record<string, JsonSchemaType>;
|
|
82
|
+
required?: string[];
|
|
83
|
+
description?: string;
|
|
84
|
+
additionalProperties?: boolean | JsonSchemaType;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Specifies which contexts can invoke a tool (inspired by Anthropic's allowed_callers)
|
|
88
|
+
* - 'direct': Only callable directly by the LLM (default if omitted)
|
|
89
|
+
* - 'code_execution': Only callable from within programmatic code execution
|
|
90
|
+
*/
|
|
91
|
+
export type AllowedCaller = 'direct' | 'code_execution';
|
|
92
|
+
/** Tool definition with optional deferred loading and caller restrictions */
|
|
93
|
+
export type LCTool = {
|
|
94
|
+
name: string;
|
|
95
|
+
description?: string;
|
|
96
|
+
parameters?: JsonSchemaType;
|
|
97
|
+
/** When true, tool is not loaded into context initially (for tool search) */
|
|
98
|
+
defer_loading?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Which contexts can invoke this tool.
|
|
101
|
+
* Default: ['direct'] (only callable directly by LLM)
|
|
102
|
+
* Options: 'direct', 'code_execution'
|
|
103
|
+
*/
|
|
104
|
+
allowed_callers?: AllowedCaller[];
|
|
105
|
+
/** Response format for the tool output */
|
|
106
|
+
responseFormat?: 'content' | 'content_and_artifact';
|
|
107
|
+
/** Server name for MCP tools */
|
|
108
|
+
serverName?: string;
|
|
109
|
+
/** Tool type classification */
|
|
110
|
+
toolType?: 'builtin' | 'mcp' | 'action';
|
|
111
|
+
};
|
|
112
|
+
/** Single tool call within a batch request for event-driven execution */
|
|
113
|
+
export type ToolCallRequest = {
|
|
114
|
+
/** Tool call ID from the LLM */
|
|
115
|
+
id: string;
|
|
116
|
+
/** Tool name */
|
|
117
|
+
name: string;
|
|
118
|
+
/** Tool arguments */
|
|
119
|
+
args: Record<string, unknown>;
|
|
120
|
+
/** Step ID for tracking */
|
|
121
|
+
stepId?: string;
|
|
122
|
+
/** Usage turn count for this tool */
|
|
123
|
+
turn?: number;
|
|
124
|
+
};
|
|
125
|
+
/** Batch request containing ALL tool calls for a graph step */
|
|
126
|
+
export type ToolExecuteBatchRequest = {
|
|
127
|
+
/** All tool calls from the AIMessage */
|
|
128
|
+
toolCalls: ToolCallRequest[];
|
|
129
|
+
/** User ID for context */
|
|
130
|
+
userId?: string;
|
|
131
|
+
/** Agent ID for context */
|
|
132
|
+
agentId?: string;
|
|
133
|
+
/** Runtime configurable from RunnableConfig (includes user, userMCPAuthMap, etc.) */
|
|
134
|
+
configurable?: Record<string, unknown>;
|
|
135
|
+
/** Runtime metadata from RunnableConfig (includes thread_id, run_id, provider, etc.) */
|
|
136
|
+
metadata?: Record<string, unknown>;
|
|
137
|
+
/** Promise resolver - handler calls this with ALL results */
|
|
138
|
+
resolve: (results: ToolExecuteResult[]) => void;
|
|
139
|
+
/** Promise rejector - handler calls this on fatal error */
|
|
140
|
+
reject: (error: Error) => void;
|
|
141
|
+
};
|
|
142
|
+
/** Result for a single tool call in event-driven execution */
|
|
143
|
+
export type ToolExecuteResult = {
|
|
144
|
+
/** Matches ToolCallRequest.id */
|
|
145
|
+
toolCallId: string;
|
|
146
|
+
/** Tool output content */
|
|
147
|
+
content: string | unknown[];
|
|
148
|
+
/** Optional artifact (for content_and_artifact format) */
|
|
149
|
+
artifact?: unknown;
|
|
150
|
+
/** Execution status */
|
|
151
|
+
status: 'success' | 'error';
|
|
152
|
+
/** Error message if status is 'error' */
|
|
153
|
+
errorMessage?: string;
|
|
154
|
+
};
|
|
155
|
+
/** Map of tool names to tool definitions */
|
|
156
|
+
export type LCToolRegistry = Map<string, LCTool>;
|
|
157
|
+
export type ProgrammaticCache = {
|
|
158
|
+
toolMap: ToolMap;
|
|
159
|
+
toolDefs: LCTool[];
|
|
160
|
+
};
|
|
161
|
+
/** Search mode: code_interpreter uses external sandbox, local uses safe substring matching */
|
|
162
|
+
export type ToolSearchMode = 'code_interpreter' | 'local';
|
|
163
|
+
/** Parameters for creating a Tool Search tool */
|
|
164
|
+
export type ToolSearchParams = {
|
|
165
|
+
apiKey?: string;
|
|
166
|
+
toolRegistry?: LCToolRegistry;
|
|
167
|
+
onlyDeferred?: boolean;
|
|
168
|
+
baseUrl?: string;
|
|
169
|
+
/** Search mode: 'code_interpreter' (default) uses sandbox for regex, 'local' uses safe substring matching */
|
|
170
|
+
mode?: ToolSearchMode;
|
|
171
|
+
/** Filter tools to only those from specific MCP server(s). Can be a single name or array of names. */
|
|
172
|
+
mcpServer?: string | string[];
|
|
173
|
+
[key: string]: unknown;
|
|
174
|
+
};
|
|
175
|
+
/** Simplified tool metadata for search purposes */
|
|
176
|
+
export type ToolMetadata = {
|
|
177
|
+
name: string;
|
|
178
|
+
description: string;
|
|
179
|
+
parameters?: JsonSchemaType;
|
|
180
|
+
};
|
|
181
|
+
/** Individual search result for a matching tool */
|
|
182
|
+
export type ToolSearchResult = {
|
|
183
|
+
tool_name: string;
|
|
184
|
+
match_score: number;
|
|
185
|
+
matched_field: string;
|
|
186
|
+
snippet: string;
|
|
187
|
+
};
|
|
188
|
+
/** Response from the tool search operation */
|
|
189
|
+
export type ToolSearchResponse = {
|
|
190
|
+
tool_references: ToolSearchResult[];
|
|
191
|
+
total_tools_searched: number;
|
|
192
|
+
pattern_used: string;
|
|
193
|
+
};
|
|
194
|
+
/** Artifact returned alongside the formatted search results */
|
|
195
|
+
export type ToolSearchArtifact = {
|
|
196
|
+
tool_references: ToolSearchResult[];
|
|
197
|
+
metadata: {
|
|
198
|
+
total_searched: number;
|
|
199
|
+
pattern: string;
|
|
200
|
+
error?: string;
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Tool call requested by the Code API during programmatic execution
|
|
205
|
+
*/
|
|
206
|
+
export type PTCToolCall = {
|
|
207
|
+
/** Unique ID like "call_001" */
|
|
208
|
+
id: string;
|
|
209
|
+
/** Tool name */
|
|
210
|
+
name: string;
|
|
211
|
+
/** Input parameters */
|
|
212
|
+
input: Record<string, any>;
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* Tool result sent back to the Code API
|
|
216
|
+
*/
|
|
217
|
+
export type PTCToolResult = {
|
|
218
|
+
/** Matches PTCToolCall.id */
|
|
219
|
+
call_id: string;
|
|
220
|
+
/** Tool execution result (any JSON-serializable value) */
|
|
221
|
+
result: any;
|
|
222
|
+
/** Whether tool execution failed */
|
|
223
|
+
is_error: boolean;
|
|
224
|
+
/** Error details if is_error=true */
|
|
225
|
+
error_message?: string;
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* Response from the Code API for programmatic execution
|
|
229
|
+
*/
|
|
230
|
+
export type ProgrammaticExecutionResponse = {
|
|
231
|
+
status: 'tool_call_required' | 'completed' | 'error' | unknown;
|
|
232
|
+
session_id?: string;
|
|
233
|
+
/** Present when status='tool_call_required' */
|
|
234
|
+
continuation_token?: string;
|
|
235
|
+
tool_calls?: PTCToolCall[];
|
|
236
|
+
/** Present when status='completed' */
|
|
237
|
+
stdout?: string;
|
|
238
|
+
stderr?: string;
|
|
239
|
+
files?: FileRefs;
|
|
240
|
+
/** Present when status='error' */
|
|
241
|
+
error?: string;
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* Artifact returned by the PTC tool
|
|
245
|
+
*/
|
|
246
|
+
export type ProgrammaticExecutionArtifact = {
|
|
247
|
+
session_id?: string;
|
|
248
|
+
files?: FileRefs;
|
|
249
|
+
};
|
|
250
|
+
/**
|
|
251
|
+
* Initialization parameters for the PTC tool
|
|
252
|
+
*/
|
|
253
|
+
export type ProgrammaticToolCallingParams = {
|
|
254
|
+
/** Code API key (or use CODE_API_KEY env var) */
|
|
255
|
+
apiKey?: string;
|
|
256
|
+
/** Code API base URL (or use CODE_BASEURL env var) */
|
|
257
|
+
baseUrl?: string;
|
|
258
|
+
/** Safety limit for round-trips (default: 20) */
|
|
259
|
+
maxRoundTrips?: number;
|
|
260
|
+
/** HTTP proxy URL */
|
|
261
|
+
proxy?: string;
|
|
262
|
+
/** Enable debug logging (or set PTC_DEBUG=true env var) */
|
|
263
|
+
debug?: boolean;
|
|
264
|
+
/** Environment variable key for API key */
|
|
265
|
+
[key: string]: unknown;
|
|
266
|
+
};
|
|
267
|
+
/**
|
|
268
|
+
* Tracks code execution session state for automatic file persistence.
|
|
269
|
+
* Stored in Graph.sessions and injected into subsequent tool invocations.
|
|
270
|
+
*/
|
|
271
|
+
export type CodeSessionContext = {
|
|
272
|
+
/** Session ID from the code execution environment */
|
|
273
|
+
session_id: string;
|
|
274
|
+
/** Files generated in this session (for context/tracking) */
|
|
275
|
+
files: FileRefs;
|
|
276
|
+
/** Timestamp of last update */
|
|
277
|
+
lastUpdated: number;
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* Artifact structure returned by code execution tools (CodeExecutor, PTC).
|
|
281
|
+
* Used to extract session context after tool completion.
|
|
282
|
+
*/
|
|
283
|
+
export type CodeExecutionArtifact = {
|
|
284
|
+
session_id?: string;
|
|
285
|
+
files?: FileRefs;
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Generic session context union type for different tool types.
|
|
289
|
+
* Extend this as new tool session types are added.
|
|
290
|
+
*/
|
|
291
|
+
export type ToolSessionContext = CodeSessionContext;
|
|
292
|
+
/**
|
|
293
|
+
* Map of tool names to their session contexts.
|
|
294
|
+
* Keys are tool constants (e.g., Constants.EXECUTE_CODE, Constants.PROGRAMMATIC_TOOL_CALLING).
|
|
295
|
+
*/
|
|
296
|
+
export type ToolSessionMap = Map<string, ToolSessionContext>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Analytics Utility
|
|
3
|
+
*
|
|
4
|
+
* Provides context analytics data for observability/traces.
|
|
5
|
+
* No console logging - just data structures for event emission.
|
|
6
|
+
*/
|
|
7
|
+
import type { BaseMessage } from '@langchain/core/messages';
|
|
8
|
+
import type { TokenCounter } from '@/types/run';
|
|
9
|
+
/**
|
|
10
|
+
* Context analytics data for traces
|
|
11
|
+
*/
|
|
12
|
+
export interface ContextAnalytics {
|
|
13
|
+
/** Total messages in context */
|
|
14
|
+
messageCount: number;
|
|
15
|
+
/** Total tokens in context */
|
|
16
|
+
totalTokens: number;
|
|
17
|
+
/** Maximum allowed context tokens */
|
|
18
|
+
maxContextTokens?: number;
|
|
19
|
+
/** Instruction/system tokens */
|
|
20
|
+
instructionTokens?: number;
|
|
21
|
+
/** Context utilization percentage (0-100) */
|
|
22
|
+
utilizationPercent?: number;
|
|
23
|
+
/** Breakdown by message type */
|
|
24
|
+
breakdown?: Record<string, {
|
|
25
|
+
tokens: number;
|
|
26
|
+
percent: number;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Build context analytics for traces (no logging)
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildContextAnalytics(messages: BaseMessage[], options: {
|
|
33
|
+
tokenCounter?: TokenCounter;
|
|
34
|
+
maxContextTokens?: number;
|
|
35
|
+
instructionTokens?: number;
|
|
36
|
+
indexTokenCountMap?: Record<string, number | undefined>;
|
|
37
|
+
}): ContextAnalytics;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
2
|
+
/**
|
|
3
|
+
* Safely dispatches a custom event and properly awaits it to avoid
|
|
4
|
+
* race conditions where events are dispatched after run cleanup.
|
|
5
|
+
*/
|
|
6
|
+
export declare function safeDispatchCustomEvent(event: string, payload: unknown, config?: RunnableConfig): Promise<void>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Agent Handler Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides a simple helper to create handlers with content aggregation for multi-agent scripts.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const { contentParts, aggregateContent, handlers } = createHandlers();
|
|
9
|
+
*
|
|
10
|
+
* // With callbacks
|
|
11
|
+
* const { contentParts, aggregateContent, handlers } = createHandlers({
|
|
12
|
+
* onRunStep: (event, data) => console.log('Step:', data),
|
|
13
|
+
* onRunStepCompleted: (event, data) => console.log('Completed:', data)
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
import { GraphEvents } from '@/common';
|
|
18
|
+
import { createContentAggregator } from '@/stream';
|
|
19
|
+
import type * as t from '@/types';
|
|
20
|
+
interface HandlerCallbacks {
|
|
21
|
+
onRunStep?: (event: GraphEvents.ON_RUN_STEP, data: t.StreamEventData) => void;
|
|
22
|
+
onRunStepCompleted?: (event: GraphEvents.ON_RUN_STEP_COMPLETED, data: t.StreamEventData) => void;
|
|
23
|
+
onRunStepDelta?: (event: GraphEvents.ON_RUN_STEP_DELTA, data: t.StreamEventData) => void;
|
|
24
|
+
onMessageDelta?: (event: GraphEvents.ON_MESSAGE_DELTA, data: t.StreamEventData) => void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Creates handlers with content aggregation for multi-agent scripts
|
|
28
|
+
*/
|
|
29
|
+
export declare function createHandlers(callbacks?: HandlerCallbacks): {
|
|
30
|
+
contentParts: Array<t.MessageContentComplex | undefined>;
|
|
31
|
+
aggregateContent: ReturnType<typeof createContentAggregator>['aggregateContent'];
|
|
32
|
+
handlers: Record<string, t.EventHandler>;
|
|
33
|
+
};
|
|
34
|
+
export {};
|