@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,219 @@
|
|
|
1
|
+
import { DynamicStructuredTool } from '@langchain/core/tools';
|
|
2
|
+
import type * as t from '@/types';
|
|
3
|
+
import { Constants } from '@/common';
|
|
4
|
+
export declare const ToolSearchToolName = Constants.TOOL_SEARCH;
|
|
5
|
+
export declare const ToolSearchToolDescription = "Searches deferred tools using BM25 ranking. Multi-word queries supported. Use mcp_server param to filter by server.";
|
|
6
|
+
export declare const ToolSearchToolSchema: {
|
|
7
|
+
readonly type: "object";
|
|
8
|
+
readonly properties: {
|
|
9
|
+
readonly query: {
|
|
10
|
+
readonly type: "string";
|
|
11
|
+
readonly maxLength: 200;
|
|
12
|
+
readonly default: "";
|
|
13
|
+
readonly description: "Search term to find in tool names and descriptions. Case-insensitive substring matching. Optional if mcp_server is provided.";
|
|
14
|
+
};
|
|
15
|
+
readonly fields: {
|
|
16
|
+
readonly type: "array";
|
|
17
|
+
readonly items: {
|
|
18
|
+
readonly type: "string";
|
|
19
|
+
readonly enum: readonly ["name", "description", "parameters"];
|
|
20
|
+
};
|
|
21
|
+
readonly default: readonly ["name", "description"];
|
|
22
|
+
readonly description: "Which fields to search. Default: name and description";
|
|
23
|
+
};
|
|
24
|
+
readonly max_results: {
|
|
25
|
+
readonly type: "integer";
|
|
26
|
+
readonly minimum: 1;
|
|
27
|
+
readonly maximum: 50;
|
|
28
|
+
readonly default: 10;
|
|
29
|
+
readonly description: "Maximum number of matching tools to return";
|
|
30
|
+
};
|
|
31
|
+
readonly mcp_server: {
|
|
32
|
+
readonly oneOf: readonly [{
|
|
33
|
+
readonly type: "string";
|
|
34
|
+
}, {
|
|
35
|
+
readonly type: "array";
|
|
36
|
+
readonly items: {
|
|
37
|
+
readonly type: "string";
|
|
38
|
+
};
|
|
39
|
+
}];
|
|
40
|
+
readonly description: "Filter to tools from specific MCP server(s). Can be a single server name or array of names. If provided without a query, lists all tools from those servers.";
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
readonly required: readonly [];
|
|
44
|
+
};
|
|
45
|
+
export declare const ToolSearchToolDefinition: {
|
|
46
|
+
readonly name: Constants.TOOL_SEARCH;
|
|
47
|
+
readonly description: "Searches deferred tools using BM25 ranking. Multi-word queries supported. Use mcp_server param to filter by server.";
|
|
48
|
+
readonly schema: {
|
|
49
|
+
readonly type: "object";
|
|
50
|
+
readonly properties: {
|
|
51
|
+
readonly query: {
|
|
52
|
+
readonly type: "string";
|
|
53
|
+
readonly maxLength: 200;
|
|
54
|
+
readonly default: "";
|
|
55
|
+
readonly description: "Search term to find in tool names and descriptions. Case-insensitive substring matching. Optional if mcp_server is provided.";
|
|
56
|
+
};
|
|
57
|
+
readonly fields: {
|
|
58
|
+
readonly type: "array";
|
|
59
|
+
readonly items: {
|
|
60
|
+
readonly type: "string";
|
|
61
|
+
readonly enum: readonly ["name", "description", "parameters"];
|
|
62
|
+
};
|
|
63
|
+
readonly default: readonly ["name", "description"];
|
|
64
|
+
readonly description: "Which fields to search. Default: name and description";
|
|
65
|
+
};
|
|
66
|
+
readonly max_results: {
|
|
67
|
+
readonly type: "integer";
|
|
68
|
+
readonly minimum: 1;
|
|
69
|
+
readonly maximum: 50;
|
|
70
|
+
readonly default: 10;
|
|
71
|
+
readonly description: "Maximum number of matching tools to return";
|
|
72
|
+
};
|
|
73
|
+
readonly mcp_server: {
|
|
74
|
+
readonly oneOf: readonly [{
|
|
75
|
+
readonly type: "string";
|
|
76
|
+
}, {
|
|
77
|
+
readonly type: "array";
|
|
78
|
+
readonly items: {
|
|
79
|
+
readonly type: "string";
|
|
80
|
+
};
|
|
81
|
+
}];
|
|
82
|
+
readonly description: "Filter to tools from specific MCP server(s). Can be a single server name or array of names. If provided without a query, lists all tools from those servers.";
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
readonly required: readonly [];
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Extracts the MCP server name from a tool name.
|
|
90
|
+
* MCP tools follow the pattern: toolName_mcp_serverName
|
|
91
|
+
* @param toolName - The full tool name
|
|
92
|
+
* @returns The server name if it's an MCP tool, undefined otherwise
|
|
93
|
+
*/
|
|
94
|
+
declare function extractMcpServerName(toolName: string): string | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* Checks if a tool belongs to a specific MCP server.
|
|
97
|
+
* @param toolName - The full tool name
|
|
98
|
+
* @param serverName - The server name to match
|
|
99
|
+
* @returns True if the tool belongs to the specified server
|
|
100
|
+
*/
|
|
101
|
+
declare function isFromMcpServer(toolName: string, serverName: string): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Checks if a tool belongs to any of the specified MCP servers.
|
|
104
|
+
* @param toolName - The full tool name
|
|
105
|
+
* @param serverNames - Array of server names to match
|
|
106
|
+
* @returns True if the tool belongs to any of the specified servers
|
|
107
|
+
*/
|
|
108
|
+
declare function isFromAnyMcpServer(toolName: string, serverNames: string[]): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Normalizes server filter input to always be an array.
|
|
111
|
+
* @param serverFilter - String, array of strings, or undefined
|
|
112
|
+
* @returns Array of server names (empty if none specified)
|
|
113
|
+
*/
|
|
114
|
+
declare function normalizeServerFilter(serverFilter: string | string[] | undefined): string[];
|
|
115
|
+
/**
|
|
116
|
+
* Extracts all unique MCP server names from a tool registry.
|
|
117
|
+
* @param toolRegistry - The tool registry to scan
|
|
118
|
+
* @param onlyDeferred - If true, only considers deferred tools
|
|
119
|
+
* @returns Array of unique server names, sorted alphabetically
|
|
120
|
+
*/
|
|
121
|
+
declare function getAvailableMcpServers(toolRegistry: t.LCToolRegistry | undefined, onlyDeferred?: boolean): string[];
|
|
122
|
+
/**
|
|
123
|
+
* Escapes special regex characters in a string to use as a literal pattern.
|
|
124
|
+
* @param pattern - The string to escape
|
|
125
|
+
* @returns The escaped string safe for use in a RegExp
|
|
126
|
+
*/
|
|
127
|
+
declare function escapeRegexSpecialChars(pattern: string): string;
|
|
128
|
+
/**
|
|
129
|
+
* Counts the maximum nesting depth of groups in a regex pattern.
|
|
130
|
+
* @param pattern - The regex pattern to analyze
|
|
131
|
+
* @returns The maximum nesting depth
|
|
132
|
+
*/
|
|
133
|
+
declare function countNestedGroups(pattern: string): number;
|
|
134
|
+
/**
|
|
135
|
+
* Detects nested quantifiers that can cause catastrophic backtracking.
|
|
136
|
+
* Patterns like (a+)+, (a*)*, (a+)*, etc.
|
|
137
|
+
* @param pattern - The regex pattern to check
|
|
138
|
+
* @returns True if nested quantifiers are detected
|
|
139
|
+
*/
|
|
140
|
+
declare function hasNestedQuantifiers(pattern: string): boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Checks if a regex pattern contains potentially dangerous constructs.
|
|
143
|
+
* @param pattern - The regex pattern to validate
|
|
144
|
+
* @returns True if the pattern is dangerous
|
|
145
|
+
*/
|
|
146
|
+
declare function isDangerousPattern(pattern: string): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Sanitizes a regex pattern for safe execution.
|
|
149
|
+
* If the pattern is dangerous, it will be escaped to a literal string search.
|
|
150
|
+
* @param pattern - The regex pattern to sanitize
|
|
151
|
+
* @returns Object containing the safe pattern and whether it was escaped
|
|
152
|
+
*/
|
|
153
|
+
declare function sanitizeRegex(pattern: string): {
|
|
154
|
+
safe: string;
|
|
155
|
+
wasEscaped: boolean;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Performs BM25-based search for better relevance ranking.
|
|
159
|
+
* Uses Okapi BM25 algorithm for term frequency and document length normalization.
|
|
160
|
+
* @param tools - Array of tool metadata to search
|
|
161
|
+
* @param query - The search query
|
|
162
|
+
* @param fields - Which fields to search
|
|
163
|
+
* @param maxResults - Maximum results to return
|
|
164
|
+
* @returns Search response with matching tools ranked by BM25 score
|
|
165
|
+
*/
|
|
166
|
+
declare function performLocalSearch(tools: t.ToolMetadata[], query: string, fields: string[], maxResults: number): t.ToolSearchResponse;
|
|
167
|
+
/**
|
|
168
|
+
* Extracts the base tool name (without MCP server suffix) from a full tool name.
|
|
169
|
+
* @param toolName - The full tool name
|
|
170
|
+
* @returns The base tool name without server suffix
|
|
171
|
+
*/
|
|
172
|
+
declare function getBaseToolName(toolName: string): string;
|
|
173
|
+
/**
|
|
174
|
+
* Generates a compact listing of deferred tools grouped by server.
|
|
175
|
+
* Format: "server: tool1, tool2, tool3"
|
|
176
|
+
* Non-MCP tools are grouped under "other".
|
|
177
|
+
* @param toolRegistry - The tool registry
|
|
178
|
+
* @param onlyDeferred - Whether to only include deferred tools
|
|
179
|
+
* @returns Formatted string with tools grouped by server
|
|
180
|
+
*/
|
|
181
|
+
declare function getDeferredToolsListing(toolRegistry: t.LCToolRegistry | undefined, onlyDeferred: boolean): string;
|
|
182
|
+
/**
|
|
183
|
+
* Formats a server listing response as structured JSON.
|
|
184
|
+
* NOTE: This is a PREVIEW only - tools are NOT discovered/loaded.
|
|
185
|
+
* @param tools - Array of tool metadata from the server(s)
|
|
186
|
+
* @param serverNames - The MCP server name(s)
|
|
187
|
+
* @returns JSON string showing all tools grouped by server
|
|
188
|
+
*/
|
|
189
|
+
declare function formatServerListing(tools: t.ToolMetadata[], serverNames: string | string[]): string;
|
|
190
|
+
/**
|
|
191
|
+
* Creates a Tool Search tool for discovering tools from a large registry.
|
|
192
|
+
*
|
|
193
|
+
* This tool enables AI agents to dynamically discover tools from a large library
|
|
194
|
+
* without loading all tool definitions into the LLM context window. The agent
|
|
195
|
+
* can search for relevant tools on-demand.
|
|
196
|
+
*
|
|
197
|
+
* **Modes:**
|
|
198
|
+
* - `code_interpreter` (default): Uses external sandbox for regex search. Safer for complex patterns.
|
|
199
|
+
* - `local`: Uses safe substring matching locally. No network call, faster, completely safe from ReDoS.
|
|
200
|
+
*
|
|
201
|
+
* The tool registry can be provided either:
|
|
202
|
+
* 1. At initialization time via params.toolRegistry
|
|
203
|
+
* 2. At runtime via config.configurable.toolRegistry when invoking
|
|
204
|
+
*
|
|
205
|
+
* @param params - Configuration parameters for the tool (toolRegistry is optional)
|
|
206
|
+
* @returns A LangChain DynamicStructuredTool for tool searching
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* // Option 1: Code interpreter mode (regex via sandbox)
|
|
210
|
+
* const tool = createToolSearch({ apiKey, toolRegistry });
|
|
211
|
+
* await tool.invoke({ query: 'expense.*report' });
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* // Option 2: Local mode (safe substring search, no API key needed)
|
|
215
|
+
* const tool = createToolSearch({ mode: 'local', toolRegistry });
|
|
216
|
+
* await tool.invoke({ query: 'expense' });
|
|
217
|
+
*/
|
|
218
|
+
declare function createToolSearch(initParams?: t.ToolSearchParams): DynamicStructuredTool;
|
|
219
|
+
export { createToolSearch, performLocalSearch, extractMcpServerName, isFromMcpServer, isFromAnyMcpServer, normalizeServerFilter, getAvailableMcpServers, getDeferredToolsListing, getBaseToolName, formatServerListing, sanitizeRegex, escapeRegexSpecialChars, isDangerousPattern, countNestedGroups, hasNestedQuantifiers, };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ToolCall, ToolCallChunk } from '@langchain/core/messages/tool';
|
|
2
|
+
import type { MultiAgentGraph, StandardGraph } from '@/graphs';
|
|
3
|
+
import type { AgentContext } from '@/agents/AgentContext';
|
|
4
|
+
import type * as t from '@/types';
|
|
5
|
+
export declare function handleToolCallChunks({ graph, stepKey, toolCallChunks, metadata, }: {
|
|
6
|
+
graph: StandardGraph | MultiAgentGraph;
|
|
7
|
+
stepKey: string;
|
|
8
|
+
toolCallChunks: ToolCallChunk[];
|
|
9
|
+
metadata?: Record<string, unknown>;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
export declare const handleToolCalls: (toolCalls?: ToolCall[], metadata?: Record<string, unknown>, graph?: StandardGraph | MultiAgentGraph) => Promise<void>;
|
|
12
|
+
export declare const toolResultTypes: Set<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Handles the result of a server tool call; in other words, a provider's built-in tool.
|
|
15
|
+
* As of 2025-07-06, only Anthropic handles server tool calls with this pattern.
|
|
16
|
+
*/
|
|
17
|
+
export declare function handleServerToolResult({ graph, content, metadata, agentContext, }: {
|
|
18
|
+
graph: StandardGraph | MultiAgentGraph;
|
|
19
|
+
content?: string | t.MessageContentComplex[];
|
|
20
|
+
metadata?: Record<string, unknown>;
|
|
21
|
+
agentContext?: AgentContext;
|
|
22
|
+
}): Promise<boolean>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type StructuredToolInterface } from '@langchain/core/tools';
|
|
2
|
+
import type { LCTool } from '@/types';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a schema-only tool for LLM binding in event-driven mode.
|
|
5
|
+
* These tools have valid schemas for the LLM to understand but should
|
|
6
|
+
* never be invoked directly - ToolNode handles execution via events.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createSchemaOnlyTool(definition: LCTool): StructuredToolInterface;
|
|
9
|
+
/**
|
|
10
|
+
* Creates schema-only tools for all definitions in an array.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createSchemaOnlyTools(definitions: LCTool[]): StructuredToolInterface[];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AnthropicTextBlockParam, AnthropicWebSearchResultBlockParam } from '@/llm/anthropic/types';
|
|
2
|
+
import type { SearchResultData } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Coerces Anthropic web search results to the SearchResultData format
|
|
5
|
+
* @param results - Array of Anthropic web search results
|
|
6
|
+
* @param turn - The turn number to associate with these results
|
|
7
|
+
* @returns SearchResultData with minimal ProcessedOrganic items
|
|
8
|
+
*/
|
|
9
|
+
export declare function coerceAnthropicSearchResults({ results, turn, }: {
|
|
10
|
+
results: (AnthropicTextBlockParam | AnthropicWebSearchResultBlockParam)[];
|
|
11
|
+
turn?: number;
|
|
12
|
+
}): SearchResultData;
|
|
13
|
+
/**
|
|
14
|
+
* Helper function to check if an object is an Anthropic web search result
|
|
15
|
+
*/
|
|
16
|
+
export declare function isAnthropicWebSearchResult(obj: unknown): obj is AnthropicWebSearchResultBlockParam;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type * as t from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Firecrawl scraper implementation
|
|
4
|
+
* Uses the Firecrawl API to scrape web pages
|
|
5
|
+
*/
|
|
6
|
+
export declare class FirecrawlScraper implements t.BaseScraper {
|
|
7
|
+
private apiKey;
|
|
8
|
+
private apiUrl;
|
|
9
|
+
private version;
|
|
10
|
+
private defaultFormats;
|
|
11
|
+
private timeout;
|
|
12
|
+
private logger;
|
|
13
|
+
private includeTags?;
|
|
14
|
+
private excludeTags?;
|
|
15
|
+
private waitFor?;
|
|
16
|
+
private maxAge?;
|
|
17
|
+
private mobile?;
|
|
18
|
+
private skipTlsVerification?;
|
|
19
|
+
private blockAds?;
|
|
20
|
+
private removeBase64Images?;
|
|
21
|
+
private parsePDF?;
|
|
22
|
+
private storeInCache?;
|
|
23
|
+
private zeroDataRetention?;
|
|
24
|
+
private headers?;
|
|
25
|
+
private location?;
|
|
26
|
+
private onlyMainContent?;
|
|
27
|
+
private changeTrackingOptions?;
|
|
28
|
+
constructor(config?: t.FirecrawlScraperConfig);
|
|
29
|
+
/**
|
|
30
|
+
* Scrape a single URL
|
|
31
|
+
* @param url URL to scrape
|
|
32
|
+
* @param options Scrape options
|
|
33
|
+
* @returns Scrape response
|
|
34
|
+
*/
|
|
35
|
+
scrapeUrl(url: string, options?: t.FirecrawlScrapeOptions): Promise<[string, t.FirecrawlScrapeResponse]>;
|
|
36
|
+
/**
|
|
37
|
+
* Extract content from scrape response
|
|
38
|
+
* @param response Scrape response
|
|
39
|
+
* @returns Extracted content or empty string if not available
|
|
40
|
+
*/
|
|
41
|
+
extractContent(response: t.FirecrawlScrapeResponse): [string, undefined | t.References];
|
|
42
|
+
/**
|
|
43
|
+
* Extract metadata from scrape response
|
|
44
|
+
* @param response Scrape response
|
|
45
|
+
* @returns Metadata object
|
|
46
|
+
*/
|
|
47
|
+
extractMetadata(response: t.FirecrawlScrapeResponse): t.ScrapeMetadata;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a Firecrawl scraper instance
|
|
51
|
+
* @param config Scraper configuration
|
|
52
|
+
* @returns Firecrawl scraper instance
|
|
53
|
+
*/
|
|
54
|
+
export declare const createFirecrawlScraper: (config?: t.FirecrawlScraperConfig) => FirecrawlScraper;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type * as t from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Expand highlights in search results using smart boundary detection.
|
|
4
|
+
*
|
|
5
|
+
* This implementation finds natural text boundaries like paragraphs, sentences,
|
|
6
|
+
* and phrases to provide context while maintaining readability.
|
|
7
|
+
*
|
|
8
|
+
* @param searchResults - Search results object
|
|
9
|
+
* @param mainExpandBy - Primary expansion size on each side (default: 300)
|
|
10
|
+
* @param separatorExpandBy - Additional range to look for separators (default: 150)
|
|
11
|
+
* @returns Copy of search results with expanded highlights and tracked references
|
|
12
|
+
*/
|
|
13
|
+
export declare function expandHighlights(searchResults: t.SearchResultData, mainExpandBy?: number, separatorExpandBy?: number): t.SearchResultData;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type * as t from './types';
|
|
2
|
+
export declare abstract class BaseReranker {
|
|
3
|
+
protected apiKey: string | undefined;
|
|
4
|
+
protected logger: t.Logger;
|
|
5
|
+
constructor(logger?: t.Logger);
|
|
6
|
+
abstract rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
|
|
7
|
+
protected getDefaultRanking(documents: string[], topK: number): t.Highlight[];
|
|
8
|
+
}
|
|
9
|
+
export declare class JinaReranker extends BaseReranker {
|
|
10
|
+
private apiUrl;
|
|
11
|
+
constructor({ apiKey, apiUrl, logger, }: {
|
|
12
|
+
apiKey?: string;
|
|
13
|
+
apiUrl?: string;
|
|
14
|
+
logger?: t.Logger;
|
|
15
|
+
});
|
|
16
|
+
rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
|
|
17
|
+
}
|
|
18
|
+
export declare class CohereReranker extends BaseReranker {
|
|
19
|
+
constructor({ apiKey, logger, }: {
|
|
20
|
+
apiKey?: string;
|
|
21
|
+
logger?: t.Logger;
|
|
22
|
+
});
|
|
23
|
+
rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
|
|
24
|
+
}
|
|
25
|
+
export declare class InfinityReranker extends BaseReranker {
|
|
26
|
+
constructor(logger?: t.Logger);
|
|
27
|
+
rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates the appropriate reranker based on type and configuration
|
|
31
|
+
*/
|
|
32
|
+
export declare const createReranker: (config: {
|
|
33
|
+
rerankerType: t.RerankerType;
|
|
34
|
+
jinaApiKey?: string;
|
|
35
|
+
jinaApiUrl?: string;
|
|
36
|
+
cohereApiKey?: string;
|
|
37
|
+
logger?: t.Logger;
|
|
38
|
+
}) => BaseReranker | undefined;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export declare enum DATE_RANGE {
|
|
2
|
+
PAST_HOUR = "h",
|
|
3
|
+
PAST_24_HOURS = "d",
|
|
4
|
+
PAST_WEEK = "w",
|
|
5
|
+
PAST_MONTH = "m",
|
|
6
|
+
PAST_YEAR = "y"
|
|
7
|
+
}
|
|
8
|
+
export declare const DEFAULT_QUERY_DESCRIPTION: string;
|
|
9
|
+
export declare const DEFAULT_COUNTRY_DESCRIPTION: string;
|
|
10
|
+
export declare const querySchema: {
|
|
11
|
+
readonly type: "string";
|
|
12
|
+
readonly description: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const dateSchema: {
|
|
15
|
+
readonly type: "string";
|
|
16
|
+
readonly enum: DATE_RANGE[];
|
|
17
|
+
readonly description: "Date range for search results.";
|
|
18
|
+
};
|
|
19
|
+
export declare const countrySchema: {
|
|
20
|
+
readonly type: "string";
|
|
21
|
+
readonly description: string;
|
|
22
|
+
};
|
|
23
|
+
export declare const imagesSchema: {
|
|
24
|
+
readonly type: "boolean";
|
|
25
|
+
readonly description: "Whether to also run an image search.";
|
|
26
|
+
};
|
|
27
|
+
export declare const videosSchema: {
|
|
28
|
+
readonly type: "boolean";
|
|
29
|
+
readonly description: "Whether to also run a video search.";
|
|
30
|
+
};
|
|
31
|
+
export declare const newsSchema: {
|
|
32
|
+
readonly type: "boolean";
|
|
33
|
+
readonly description: "Whether to also run a news search.";
|
|
34
|
+
};
|
|
35
|
+
/** Combined web search tool schema with all properties */
|
|
36
|
+
export declare const WebSearchToolSchema: {
|
|
37
|
+
readonly type: "object";
|
|
38
|
+
readonly properties: {
|
|
39
|
+
readonly query: {
|
|
40
|
+
readonly type: "string";
|
|
41
|
+
readonly description: string;
|
|
42
|
+
};
|
|
43
|
+
readonly date: {
|
|
44
|
+
readonly type: "string";
|
|
45
|
+
readonly enum: DATE_RANGE[];
|
|
46
|
+
readonly description: "Date range for search results.";
|
|
47
|
+
};
|
|
48
|
+
readonly country: {
|
|
49
|
+
readonly type: "string";
|
|
50
|
+
readonly description: string;
|
|
51
|
+
};
|
|
52
|
+
readonly images: {
|
|
53
|
+
readonly type: "boolean";
|
|
54
|
+
readonly description: "Whether to also run an image search.";
|
|
55
|
+
};
|
|
56
|
+
readonly videos: {
|
|
57
|
+
readonly type: "boolean";
|
|
58
|
+
readonly description: "Whether to also run a video search.";
|
|
59
|
+
};
|
|
60
|
+
readonly news: {
|
|
61
|
+
readonly type: "boolean";
|
|
62
|
+
readonly description: "Whether to also run a news search.";
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
readonly required: readonly ["query"];
|
|
66
|
+
};
|
|
67
|
+
export declare const WebSearchToolName = "web_search";
|
|
68
|
+
export declare const WebSearchToolDescription = "Real-time search. Results have required citation anchors.\n\nNote: Use ONCE per reply unless instructed otherwise.\n\nAnchors:\n- \\ue202turnXtypeY\n- X = turn idx, type = 'search' | 'news' | 'image' | 'ref', Y = item idx\n\nSpecial Markers:\n- \\ue203...\\ue204 \u2014 highlight start/end of cited text (for Standalone or Group citations)\n- \\ue200...\\ue201 \u2014 group block (e.g. \\ue200\\ue202turn0search1\\ue202turn0news2\\ue201)\n\n**CITE EVERY NON-OBVIOUS FACT/QUOTE:**\nUse anchor marker(s) immediately after the statement:\n- Standalone: \"Pure functions produce same output. \\ue202turn0search0\"\n- Standalone (multiple): \"Today's News \\ue202turn0search0\\ue202turn0news0\"\n- Highlight: \"\\ue203Highlight text.\\ue204\\ue202turn0news1\"\n- Group: \"Sources. \\ue200\\ue202turn0search0\\ue202turn0news1\\ue201\"\n- Group Highlight: \"\\ue203Highlight for group.\\ue204 \\ue200\\ue202turn0search0\\ue202turn0news1\\ue201\"\n- Image: \"See photo \\ue202turn0image0.\"\n\n**NEVER use markdown links, [1], or footnotes. CITE ONLY with anchors provided.**";
|
|
69
|
+
export declare const WebSearchToolDefinition: {
|
|
70
|
+
readonly name: "web_search";
|
|
71
|
+
readonly description: "Real-time search. Results have required citation anchors.\n\nNote: Use ONCE per reply unless instructed otherwise.\n\nAnchors:\n- \\ue202turnXtypeY\n- X = turn idx, type = 'search' | 'news' | 'image' | 'ref', Y = item idx\n\nSpecial Markers:\n- \\ue203...\\ue204 — highlight start/end of cited text (for Standalone or Group citations)\n- \\ue200...\\ue201 — group block (e.g. \\ue200\\ue202turn0search1\\ue202turn0news2\\ue201)\n\n**CITE EVERY NON-OBVIOUS FACT/QUOTE:**\nUse anchor marker(s) immediately after the statement:\n- Standalone: \"Pure functions produce same output. \\ue202turn0search0\"\n- Standalone (multiple): \"Today's News \\ue202turn0search0\\ue202turn0news0\"\n- Highlight: \"\\ue203Highlight text.\\ue204\\ue202turn0news1\"\n- Group: \"Sources. \\ue200\\ue202turn0search0\\ue202turn0news1\\ue201\"\n- Group Highlight: \"\\ue203Highlight for group.\\ue204 \\ue200\\ue202turn0search0\\ue202turn0news1\\ue201\"\n- Image: \"See photo \\ue202turn0image0.\"\n\n**NEVER use markdown links, [1], or footnotes. CITE ONLY with anchors provided.**";
|
|
72
|
+
readonly schema: {
|
|
73
|
+
readonly type: "object";
|
|
74
|
+
readonly properties: {
|
|
75
|
+
readonly query: {
|
|
76
|
+
readonly type: "string";
|
|
77
|
+
readonly description: string;
|
|
78
|
+
};
|
|
79
|
+
readonly date: {
|
|
80
|
+
readonly type: "string";
|
|
81
|
+
readonly enum: DATE_RANGE[];
|
|
82
|
+
readonly description: "Date range for search results.";
|
|
83
|
+
};
|
|
84
|
+
readonly country: {
|
|
85
|
+
readonly type: "string";
|
|
86
|
+
readonly description: string;
|
|
87
|
+
};
|
|
88
|
+
readonly images: {
|
|
89
|
+
readonly type: "boolean";
|
|
90
|
+
readonly description: "Whether to also run an image search.";
|
|
91
|
+
};
|
|
92
|
+
readonly videos: {
|
|
93
|
+
readonly type: "boolean";
|
|
94
|
+
readonly description: "Whether to also run a video search.";
|
|
95
|
+
};
|
|
96
|
+
readonly news: {
|
|
97
|
+
readonly type: "boolean";
|
|
98
|
+
readonly description: "Whether to also run a news search.";
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
readonly required: readonly ["query"];
|
|
102
|
+
};
|
|
103
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as t from './types';
|
|
2
|
+
export declare const createSearchAPI: (config: t.SearchConfig) => {
|
|
3
|
+
getSources: (params: t.GetSourcesParams) => Promise<t.SearchResult>;
|
|
4
|
+
};
|
|
5
|
+
export declare const createSourceProcessor: (config?: t.ProcessSourcesConfig, scraperInstance?: t.BaseScraper) => {
|
|
6
|
+
processSources: (fields: t.ProcessSourcesFields) => Promise<t.SearchResultData>;
|
|
7
|
+
topResults: number;
|
|
8
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type * as t from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Serper scraper implementation
|
|
4
|
+
* Uses the Serper Scrape API (https://scrape.serper.dev) to scrape web pages
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Simple API with single endpoint
|
|
8
|
+
* - Returns both text and markdown content
|
|
9
|
+
* - Includes metadata from scraped pages
|
|
10
|
+
* - Credits-based pricing model
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const scraper = createSerperScraper({
|
|
15
|
+
* apiKey: 'your-serper-api-key',
|
|
16
|
+
* includeMarkdown: true,
|
|
17
|
+
* timeout: 10000
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* const [url, response] = await scraper.scrapeUrl('https://example.com');
|
|
21
|
+
* if (response.success) {
|
|
22
|
+
* const [content] = scraper.extractContent(response);
|
|
23
|
+
* console.log(content);
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class SerperScraper implements t.BaseScraper {
|
|
28
|
+
private apiKey;
|
|
29
|
+
private apiUrl;
|
|
30
|
+
private timeout;
|
|
31
|
+
private logger;
|
|
32
|
+
private includeMarkdown;
|
|
33
|
+
constructor(config?: t.SerperScraperConfig);
|
|
34
|
+
/**
|
|
35
|
+
* Scrape a single URL
|
|
36
|
+
* @param url URL to scrape
|
|
37
|
+
* @param options Scrape options
|
|
38
|
+
* @returns Scrape response
|
|
39
|
+
*/
|
|
40
|
+
scrapeUrl(url: string, options?: t.SerperScrapeOptions): Promise<[string, t.SerperScrapeResponse]>;
|
|
41
|
+
/**
|
|
42
|
+
* Extract content from scrape response
|
|
43
|
+
* @param response Scrape response
|
|
44
|
+
* @returns Extracted content or empty string if not available
|
|
45
|
+
*/
|
|
46
|
+
extractContent(response: t.SerperScrapeResponse): [string, undefined | t.References];
|
|
47
|
+
/**
|
|
48
|
+
* Extract metadata from scrape response
|
|
49
|
+
* @param response Scrape response
|
|
50
|
+
* @returns Metadata object
|
|
51
|
+
*/
|
|
52
|
+
extractMetadata(response: t.SerperScrapeResponse): Record<string, string | number | boolean | null | undefined>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create a Serper scraper instance
|
|
56
|
+
* @param config Scraper configuration
|
|
57
|
+
* @returns Serper scraper instance
|
|
58
|
+
*/
|
|
59
|
+
export declare const createSerperScraper: (config?: t.SerperScraperConfig) => SerperScraper;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|