illuma-agents 1.0.2
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/LICENSE +21 -0
- package/dist/cjs/common/enum.cjs +163 -0
- package/dist/cjs/common/enum.cjs.map +1 -0
- package/dist/cjs/events.cjs +143 -0
- package/dist/cjs/events.cjs.map +1 -0
- package/dist/cjs/graphs/Graph.cjs +581 -0
- package/dist/cjs/graphs/Graph.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 +553 -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/fake.cjs +97 -0
- package/dist/cjs/llm/fake.cjs.map +1 -0
- package/dist/cjs/llm/google/index.cjs +147 -0
- package/dist/cjs/llm/google/index.cjs.map +1 -0
- package/dist/cjs/llm/google/utils/common.cjs +490 -0
- package/dist/cjs/llm/google/utils/common.cjs.map +1 -0
- package/dist/cjs/llm/ollama/index.cjs +70 -0
- package/dist/cjs/llm/ollama/index.cjs.map +1 -0
- package/dist/cjs/llm/ollama/utils.cjs +158 -0
- package/dist/cjs/llm/ollama/utils.cjs.map +1 -0
- package/dist/cjs/llm/openai/index.cjs +613 -0
- package/dist/cjs/llm/openai/index.cjs.map +1 -0
- package/dist/cjs/llm/openai/utils/index.cjs +677 -0
- package/dist/cjs/llm/openai/utils/index.cjs.map +1 -0
- package/dist/cjs/llm/openrouter/index.cjs +29 -0
- package/dist/cjs/llm/openrouter/index.cjs.map +1 -0
- package/dist/cjs/llm/providers.cjs +47 -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 +330 -0
- package/dist/cjs/llm/vertexai/index.cjs.map +1 -0
- package/dist/cjs/main.cjs +127 -0
- package/dist/cjs/main.cjs.map +1 -0
- package/dist/cjs/messages/core.cjs +359 -0
- package/dist/cjs/messages/core.cjs.map +1 -0
- package/dist/cjs/messages/format.cjs +455 -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/run.cjs +264 -0
- package/dist/cjs/run.cjs.map +1 -0
- package/dist/cjs/splitStream.cjs +210 -0
- package/dist/cjs/splitStream.cjs.map +1 -0
- package/dist/cjs/stream.cjs +504 -0
- package/dist/cjs/stream.cjs.map +1 -0
- package/dist/cjs/tools/CodeExecutor.cjs +192 -0
- package/dist/cjs/tools/CodeExecutor.cjs.map +1 -0
- package/dist/cjs/tools/ToolNode.cjs +125 -0
- package/dist/cjs/tools/ToolNode.cjs.map +1 -0
- package/dist/cjs/tools/handlers.cjs +250 -0
- package/dist/cjs/tools/handlers.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 +70 -0
- package/dist/cjs/tools/search/schema.cjs.map +1 -0
- package/dist/cjs/tools/search/search.cjs +561 -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 +331 -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/utils/graph.cjs +16 -0
- package/dist/cjs/utils/graph.cjs.map +1 -0
- package/dist/cjs/utils/llm.cjs +28 -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 +69 -0
- package/dist/cjs/utils/run.cjs.map +1 -0
- package/dist/cjs/utils/title.cjs +111 -0
- package/dist/cjs/utils/title.cjs.map +1 -0
- package/dist/cjs/utils/tokens.cjs +65 -0
- package/dist/cjs/utils/tokens.cjs.map +1 -0
- package/dist/esm/common/enum.mjs +163 -0
- package/dist/esm/common/enum.mjs.map +1 -0
- package/dist/esm/events.mjs +135 -0
- package/dist/esm/events.mjs.map +1 -0
- package/dist/esm/graphs/Graph.mjs +578 -0
- package/dist/esm/graphs/Graph.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 +550 -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/fake.mjs +94 -0
- package/dist/esm/llm/fake.mjs.map +1 -0
- package/dist/esm/llm/google/index.mjs +145 -0
- package/dist/esm/llm/google/index.mjs.map +1 -0
- package/dist/esm/llm/google/utils/common.mjs +484 -0
- package/dist/esm/llm/google/utils/common.mjs.map +1 -0
- package/dist/esm/llm/ollama/index.mjs +68 -0
- package/dist/esm/llm/ollama/index.mjs.map +1 -0
- package/dist/esm/llm/ollama/utils.mjs +155 -0
- package/dist/esm/llm/ollama/utils.mjs.map +1 -0
- package/dist/esm/llm/openai/index.mjs +604 -0
- package/dist/esm/llm/openai/index.mjs.map +1 -0
- package/dist/esm/llm/openai/utils/index.mjs +671 -0
- package/dist/esm/llm/openai/utils/index.mjs.map +1 -0
- package/dist/esm/llm/openrouter/index.mjs +27 -0
- package/dist/esm/llm/openrouter/index.mjs.map +1 -0
- package/dist/esm/llm/providers.mjs +43 -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 +328 -0
- package/dist/esm/llm/vertexai/index.mjs.map +1 -0
- package/dist/esm/main.mjs +20 -0
- package/dist/esm/main.mjs.map +1 -0
- package/dist/esm/messages/core.mjs +351 -0
- package/dist/esm/messages/core.mjs.map +1 -0
- package/dist/esm/messages/format.mjs +447 -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/run.mjs +261 -0
- package/dist/esm/run.mjs.map +1 -0
- package/dist/esm/splitStream.mjs +207 -0
- package/dist/esm/splitStream.mjs.map +1 -0
- package/dist/esm/stream.mjs +500 -0
- package/dist/esm/stream.mjs.map +1 -0
- package/dist/esm/tools/CodeExecutor.mjs +188 -0
- package/dist/esm/tools/CodeExecutor.mjs.map +1 -0
- package/dist/esm/tools/ToolNode.mjs +122 -0
- package/dist/esm/tools/ToolNode.mjs.map +1 -0
- package/dist/esm/tools/handlers.mjs +245 -0
- package/dist/esm/tools/handlers.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 +61 -0
- package/dist/esm/tools/search/schema.mjs.map +1 -0
- package/dist/esm/tools/search/search.mjs +558 -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 +329 -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/utils/graph.mjs +13 -0
- package/dist/esm/utils/graph.mjs.map +1 -0
- package/dist/esm/utils/llm.mjs +25 -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 +66 -0
- package/dist/esm/utils/run.mjs.map +1 -0
- package/dist/esm/utils/title.mjs +108 -0
- package/dist/esm/utils/title.mjs.map +1 -0
- package/dist/esm/utils/tokens.mjs +62 -0
- package/dist/esm/utils/tokens.mjs.map +1 -0
- package/dist/types/common/enum.d.ts +128 -0
- package/dist/types/common/index.d.ts +1 -0
- package/dist/types/events.d.ts +29 -0
- package/dist/types/graphs/Graph.d.ts +122 -0
- package/dist/types/graphs/index.d.ts +1 -0
- package/dist/types/index.d.ts +13 -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/fake.d.ts +31 -0
- package/dist/types/llm/google/index.d.ts +14 -0
- package/dist/types/llm/google/types.d.ts +32 -0
- package/dist/types/llm/google/utils/common.d.ts +19 -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/ollama/index.d.ts +8 -0
- package/dist/types/llm/ollama/utils.d.ts +7 -0
- package/dist/types/llm/openai/index.d.ts +103 -0
- package/dist/types/llm/openai/types.d.ts +10 -0
- package/dist/types/llm/openai/utils/index.d.ts +20 -0
- package/dist/types/llm/openrouter/index.d.ts +12 -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/core.d.ts +14 -0
- package/dist/types/messages/format.d.ts +113 -0
- package/dist/types/messages/ids.d.ts +3 -0
- package/dist/types/messages/index.d.ts +4 -0
- package/dist/types/messages/prune.d.ts +51 -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 +30 -0
- package/dist/types/scripts/abort.d.ts +1 -0
- package/dist/types/scripts/ant_web_search.d.ts +1 -0
- package/dist/types/scripts/args.d.ts +7 -0
- package/dist/types/scripts/caching.d.ts +1 -0
- package/dist/types/scripts/cli.d.ts +1 -0
- package/dist/types/scripts/cli2.d.ts +1 -0
- package/dist/types/scripts/cli3.d.ts +1 -0
- package/dist/types/scripts/cli4.d.ts +1 -0
- package/dist/types/scripts/cli5.d.ts +1 -0
- package/dist/types/scripts/code_exec.d.ts +1 -0
- package/dist/types/scripts/code_exec_files.d.ts +1 -0
- package/dist/types/scripts/code_exec_simple.d.ts +1 -0
- package/dist/types/scripts/content.d.ts +1 -0
- package/dist/types/scripts/empty_input.d.ts +1 -0
- package/dist/types/scripts/image.d.ts +1 -0
- package/dist/types/scripts/memory.d.ts +1 -0
- package/dist/types/scripts/search.d.ts +1 -0
- package/dist/types/scripts/simple.d.ts +1 -0
- package/dist/types/scripts/stream.d.ts +1 -0
- package/dist/types/scripts/thinking.d.ts +1 -0
- package/dist/types/scripts/tools.d.ts +1 -0
- package/dist/types/specs/spec.utils.d.ts +1 -0
- package/dist/types/splitStream.d.ts +37 -0
- package/dist/types/stream.d.ts +14 -0
- package/dist/types/tools/CodeExecutor.d.ts +23 -0
- package/dist/types/tools/ToolNode.d.ts +22 -0
- package/dist/types/tools/example.d.ts +78 -0
- package/dist/types/tools/handlers.d.ts +19 -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 +2 -0
- package/dist/types/tools/search/rerankers.d.ts +38 -0
- package/dist/types/tools/search/schema.d.ts +16 -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 +54 -0
- package/dist/types/tools/search/types.d.ts +591 -0
- package/dist/types/tools/search/utils.d.ts +10 -0
- package/dist/types/types/graph.d.ts +138 -0
- package/dist/types/types/index.d.ts +5 -0
- package/dist/types/types/llm.d.ts +102 -0
- package/dist/types/types/run.d.ts +74 -0
- package/dist/types/types/stream.d.ts +293 -0
- package/dist/types/types/tools.d.ts +61 -0
- package/dist/types/utils/graph.d.ts +2 -0
- package/dist/types/utils/index.d.ts +5 -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/title.d.ts +4 -0
- package/dist/types/utils/tokens.d.ts +3 -0
- package/package.json +145 -0
- package/src/common/enum.ts +176 -0
- package/src/common/index.ts +2 -0
- package/src/events.ts +191 -0
- package/src/graphs/Graph.ts +846 -0
- package/src/graphs/index.ts +1 -0
- package/src/index.ts +24 -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 +660 -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/fake.ts +133 -0
- package/src/llm/google/index.ts +222 -0
- package/src/llm/google/types.ts +43 -0
- package/src/llm/google/utils/common.ts +660 -0
- package/src/llm/google/utils/tools.ts +160 -0
- package/src/llm/google/utils/zod_to_genai_parameters.ts +88 -0
- package/src/llm/ollama/index.ts +92 -0
- package/src/llm/ollama/utils.ts +193 -0
- package/src/llm/openai/index.ts +853 -0
- package/src/llm/openai/types.ts +24 -0
- package/src/llm/openai/utils/index.ts +918 -0
- package/src/llm/openai/utils/isReasoningModel.test.ts +90 -0
- package/src/llm/openrouter/index.ts +60 -0
- package/src/llm/providers.ts +57 -0
- package/src/llm/text.ts +94 -0
- package/src/llm/vertexai/index.ts +360 -0
- package/src/messages/core.ts +463 -0
- package/src/messages/format.ts +625 -0
- package/src/messages/formatAgentMessages.test.ts +917 -0
- package/src/messages/formatAgentMessages.tools.test.ts +400 -0
- package/src/messages/formatMessage.test.ts +693 -0
- package/src/messages/ids.ts +26 -0
- package/src/messages/index.ts +4 -0
- package/src/messages/prune.ts +567 -0
- package/src/messages/shiftIndexTokenCountMap.test.ts +81 -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/proto/CollabGraph.ts +269 -0
- package/src/proto/TaskManager.ts +243 -0
- package/src/proto/collab.ts +200 -0
- package/src/proto/collab_design.ts +184 -0
- package/src/proto/collab_design_v2.ts +224 -0
- package/src/proto/collab_design_v3.ts +255 -0
- package/src/proto/collab_design_v4.ts +220 -0
- package/src/proto/collab_design_v5.ts +251 -0
- package/src/proto/collab_graph.ts +181 -0
- package/src/proto/collab_original.ts +123 -0
- package/src/proto/example.ts +93 -0
- package/src/proto/example_new.ts +68 -0
- package/src/proto/example_old.ts +201 -0
- package/src/proto/example_test.ts +152 -0
- package/src/proto/example_test_anthropic.ts +100 -0
- package/src/proto/log_stream.ts +202 -0
- package/src/proto/main_collab_community_event.ts +133 -0
- package/src/proto/main_collab_design_v2.ts +96 -0
- package/src/proto/main_collab_design_v4.ts +100 -0
- package/src/proto/main_collab_design_v5.ts +135 -0
- package/src/proto/main_collab_global_analysis.ts +122 -0
- package/src/proto/main_collab_hackathon_event.ts +153 -0
- package/src/proto/main_collab_space_mission.ts +153 -0
- package/src/proto/main_philosophy.ts +210 -0
- package/src/proto/original_script.ts +126 -0
- package/src/proto/standard.ts +100 -0
- package/src/proto/stream.ts +56 -0
- package/src/proto/tasks.ts +118 -0
- package/src/proto/tools/global_analysis_tools.ts +86 -0
- package/src/proto/tools/space_mission_tools.ts +60 -0
- package/src/proto/vertexai.ts +54 -0
- package/src/run.ts +381 -0
- package/src/scripts/abort.ts +138 -0
- package/src/scripts/ant_web_search.ts +158 -0
- package/src/scripts/args.ts +48 -0
- package/src/scripts/caching.ts +124 -0
- package/src/scripts/cli.ts +167 -0
- package/src/scripts/cli2.ts +125 -0
- package/src/scripts/cli3.ts +178 -0
- package/src/scripts/cli4.ts +184 -0
- package/src/scripts/cli5.ts +184 -0
- package/src/scripts/code_exec.ts +214 -0
- package/src/scripts/code_exec_files.ts +193 -0
- package/src/scripts/code_exec_simple.ts +129 -0
- package/src/scripts/content.ts +120 -0
- package/src/scripts/empty_input.ts +137 -0
- package/src/scripts/image.ts +178 -0
- package/src/scripts/memory.ts +97 -0
- package/src/scripts/search.ts +150 -0
- package/src/scripts/simple.ts +225 -0
- package/src/scripts/stream.ts +122 -0
- package/src/scripts/thinking.ts +150 -0
- package/src/scripts/tools.ts +155 -0
- package/src/specs/anthropic.simple.test.ts +317 -0
- package/src/specs/azure.simple.test.ts +316 -0
- package/src/specs/openai.simple.test.ts +316 -0
- package/src/specs/prune.test.ts +763 -0
- package/src/specs/reasoning.test.ts +165 -0
- package/src/specs/spec.utils.ts +3 -0
- package/src/specs/thinking-prune.test.ts +703 -0
- package/src/specs/token-distribution-edge-case.test.ts +316 -0
- package/src/specs/tool-error.test.ts +193 -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 +651 -0
- package/src/tools/CodeExecutor.ts +220 -0
- package/src/tools/ToolNode.ts +170 -0
- package/src/tools/example.ts +129 -0
- package/src/tools/handlers.ts +336 -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 +2 -0
- package/src/tools/search/jina-reranker.test.ts +126 -0
- package/src/tools/search/output.md +2775 -0
- package/src/tools/search/rerankers.ts +242 -0
- package/src/tools/search/schema.ts +63 -0
- package/src/tools/search/search.ts +759 -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 +471 -0
- package/src/tools/search/types.ts +687 -0
- package/src/tools/search/utils.ts +79 -0
- package/src/types/graph.ts +185 -0
- package/src/types/index.ts +6 -0
- package/src/types/llm.ts +140 -0
- package/src/types/run.ts +89 -0
- package/src/types/stream.ts +400 -0
- package/src/types/tools.ts +80 -0
- package/src/utils/graph.ts +11 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/llm.ts +27 -0
- package/src/utils/llmConfig.ts +183 -0
- package/src/utils/logging.ts +48 -0
- package/src/utils/misc.ts +57 -0
- package/src/utils/run.ts +101 -0
- package/src/utils/title.ts +165 -0
- package/src/utils/tokens.ts +70 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function capitalizeFirstLetter(string: string): string;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type * as t from '@/types';
|
|
2
|
+
import { ContentTypes } from '@/common';
|
|
3
|
+
export declare const SEPARATORS: string[];
|
|
4
|
+
export declare class SplitStreamHandler {
|
|
5
|
+
private inCodeBlock;
|
|
6
|
+
private inThinkBlock;
|
|
7
|
+
private accumulate;
|
|
8
|
+
tokens: string[];
|
|
9
|
+
lastToken: string;
|
|
10
|
+
reasoningTokens: string[];
|
|
11
|
+
currentStepId?: string;
|
|
12
|
+
currentMessageId?: string;
|
|
13
|
+
currentType?: ContentTypes.TEXT | ContentTypes.THINK;
|
|
14
|
+
currentLength: number;
|
|
15
|
+
reasoningKey: 'reasoning_content' | 'reasoning';
|
|
16
|
+
currentIndex: number;
|
|
17
|
+
blockThreshold: number;
|
|
18
|
+
/** The run ID AKA the Message ID associated with the complete generation */
|
|
19
|
+
runId: string;
|
|
20
|
+
handlers?: t.SplitStreamHandlers;
|
|
21
|
+
constructor({ runId, handlers, accumulate, reasoningKey, blockThreshold, }: {
|
|
22
|
+
runId: string;
|
|
23
|
+
accumulate?: boolean;
|
|
24
|
+
handlers: t.SplitStreamHandlers;
|
|
25
|
+
blockThreshold?: number;
|
|
26
|
+
reasoningKey?: 'reasoning_content' | 'reasoning';
|
|
27
|
+
});
|
|
28
|
+
getMessageId: () => string | undefined;
|
|
29
|
+
createMessageStep: (type?: ContentTypes.TEXT | ContentTypes.THINK) => [string, string];
|
|
30
|
+
dispatchRunStep: (stepId: string, stepDetails: t.StepDetails) => void;
|
|
31
|
+
dispatchMessageDelta: (stepId: string, delta: t.MessageDelta) => void;
|
|
32
|
+
dispatchReasoningDelta: (stepId: string, delta: t.ReasoningDelta) => void;
|
|
33
|
+
handleContent: (content: string, _type: ContentTypes.TEXT | ContentTypes.THINK) => void;
|
|
34
|
+
getDeltaContent(chunk?: t.CustomChunk): string;
|
|
35
|
+
getReasoningDelta(chunk?: t.CustomChunk): string;
|
|
36
|
+
handle(chunk?: t.CustomChunk): void;
|
|
37
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AIMessageChunk } from '@langchain/core/messages';
|
|
2
|
+
import type { Graph } from '@/graphs';
|
|
3
|
+
import type * as t from '@/types';
|
|
4
|
+
import { Providers } from '@/common';
|
|
5
|
+
export declare function getChunkContent({ chunk, provider, reasoningKey, }: {
|
|
6
|
+
chunk?: Partial<AIMessageChunk>;
|
|
7
|
+
provider?: Providers;
|
|
8
|
+
reasoningKey: 'reasoning_content' | 'reasoning';
|
|
9
|
+
}): string | t.MessageContentComplex[] | undefined;
|
|
10
|
+
export declare class ChatModelStreamHandler implements t.EventHandler {
|
|
11
|
+
handle(event: string, data: t.StreamEventData, metadata?: Record<string, unknown>, graph?: Graph): void;
|
|
12
|
+
handleReasoning(chunk: Partial<AIMessageChunk>, graph: Graph, provider?: Providers): void;
|
|
13
|
+
}
|
|
14
|
+
export declare function createContentAggregator(): t.ContentAggregatorResult;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { DynamicStructuredTool } from '@langchain/core/tools';
|
|
3
|
+
import type * as t from '@/types';
|
|
4
|
+
export declare const imageExtRegex: RegExp;
|
|
5
|
+
export declare const getCodeBaseURL: () => string;
|
|
6
|
+
declare const CodeExecutionToolSchema: z.ZodObject<{
|
|
7
|
+
lang: z.ZodEnum<["py", "js", "ts", "c", "cpp", "java", "php", "rs", "go", "d", "f90", "r"]>;
|
|
8
|
+
code: z.ZodString;
|
|
9
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
10
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
code: string;
|
|
13
|
+
lang: "r" | "d" | "py" | "js" | "ts" | "c" | "cpp" | "java" | "php" | "rs" | "go" | "f90";
|
|
14
|
+
args?: string[] | undefined;
|
|
15
|
+
session_id?: string | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
code: string;
|
|
18
|
+
lang: "r" | "d" | "py" | "js" | "ts" | "c" | "cpp" | "java" | "php" | "rs" | "go" | "f90";
|
|
19
|
+
args?: string[] | undefined;
|
|
20
|
+
session_id?: string | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
declare function createCodeExecutionTool(params?: t.CodeExecutionToolParams): DynamicStructuredTool<typeof CodeExecutionToolSchema>;
|
|
23
|
+
export { createCodeExecutionTool };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { END, MessagesAnnotation } from '@langchain/langgraph';
|
|
2
|
+
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
3
|
+
import type { BaseMessage } from '@langchain/core/messages';
|
|
4
|
+
import type * as t from '@/types';
|
|
5
|
+
import { RunnableCallable } from '@/utils';
|
|
6
|
+
export declare class ToolNode<T = any> extends RunnableCallable<T, T> {
|
|
7
|
+
tools: t.GenericTool[];
|
|
8
|
+
private toolMap;
|
|
9
|
+
private loadRuntimeTools?;
|
|
10
|
+
handleToolErrors: boolean;
|
|
11
|
+
toolCallStepIds?: Map<string, string>;
|
|
12
|
+
errorHandler?: t.ToolNodeConstructorParams['errorHandler'];
|
|
13
|
+
private toolUsageCount;
|
|
14
|
+
constructor({ tools, toolMap, name, tags, errorHandler, toolCallStepIds, handleToolErrors, loadRuntimeTools, }: t.ToolNodeConstructorParams);
|
|
15
|
+
/**
|
|
16
|
+
* Returns a snapshot of the current tool usage counts.
|
|
17
|
+
* @returns A ReadonlyMap where keys are tool names and values are their usage counts.
|
|
18
|
+
*/
|
|
19
|
+
getToolUsageCounts(): ReadonlyMap<string, number>;
|
|
20
|
+
protected run(input: any, config: RunnableConfig): Promise<T>;
|
|
21
|
+
}
|
|
22
|
+
export declare function toolsCondition(state: BaseMessage[] | typeof MessagesAnnotation.State, invokedToolIds?: Set<string>): 'tools' | typeof END;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { TavilySearchResults } from '@langchain/community/tools/tavily_search';
|
|
2
|
+
import { DynamicStructuredTool } from '@langchain/core/tools';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export declare const fetchRandomImageTool: DynamicStructuredTool<z.ZodObject<{
|
|
5
|
+
input: z.ZodOptional<z.ZodString>;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
input?: string | undefined;
|
|
8
|
+
}, {
|
|
9
|
+
input?: string | undefined;
|
|
10
|
+
}>, {
|
|
11
|
+
input?: string | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
input?: string | undefined;
|
|
14
|
+
}, (string | undefined)[] | ({
|
|
15
|
+
type: string;
|
|
16
|
+
text: string;
|
|
17
|
+
}[] | {
|
|
18
|
+
content: {
|
|
19
|
+
type: string;
|
|
20
|
+
image_url: {
|
|
21
|
+
url: string;
|
|
22
|
+
};
|
|
23
|
+
}[];
|
|
24
|
+
})[]>;
|
|
25
|
+
export declare const fetchRandomImageURL: DynamicStructuredTool<z.ZodObject<{
|
|
26
|
+
input: z.ZodOptional<z.ZodString>;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
input?: string | undefined;
|
|
29
|
+
}, {
|
|
30
|
+
input?: string | undefined;
|
|
31
|
+
}>, {
|
|
32
|
+
input?: string | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
input?: string | undefined;
|
|
35
|
+
}, (string | undefined)[] | ({
|
|
36
|
+
type: string;
|
|
37
|
+
text: string;
|
|
38
|
+
}[] | {
|
|
39
|
+
content: {
|
|
40
|
+
type: string;
|
|
41
|
+
image_url: {
|
|
42
|
+
url: string;
|
|
43
|
+
};
|
|
44
|
+
}[];
|
|
45
|
+
})[]>;
|
|
46
|
+
export declare const chartTool: DynamicStructuredTool<z.ZodObject<{
|
|
47
|
+
data: z.ZodArray<z.ZodObject<{
|
|
48
|
+
label: z.ZodString;
|
|
49
|
+
value: z.ZodNumber;
|
|
50
|
+
}, "strip", z.ZodTypeAny, {
|
|
51
|
+
value: number;
|
|
52
|
+
label: string;
|
|
53
|
+
}, {
|
|
54
|
+
value: number;
|
|
55
|
+
label: string;
|
|
56
|
+
}>, "many">;
|
|
57
|
+
}, "strip", z.ZodTypeAny, {
|
|
58
|
+
data: {
|
|
59
|
+
value: number;
|
|
60
|
+
label: string;
|
|
61
|
+
}[];
|
|
62
|
+
}, {
|
|
63
|
+
data: {
|
|
64
|
+
value: number;
|
|
65
|
+
label: string;
|
|
66
|
+
}[];
|
|
67
|
+
}>, {
|
|
68
|
+
data: {
|
|
69
|
+
value: number;
|
|
70
|
+
label: string;
|
|
71
|
+
}[];
|
|
72
|
+
}, {
|
|
73
|
+
data: {
|
|
74
|
+
value: number;
|
|
75
|
+
label: string;
|
|
76
|
+
}[];
|
|
77
|
+
}, string>;
|
|
78
|
+
export declare const tavilyTool: TavilySearchResults;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ToolCall, ToolCallChunk } from '@langchain/core/messages/tool';
|
|
2
|
+
import type { Graph } from '@/graphs';
|
|
3
|
+
import type * as t from '@/types';
|
|
4
|
+
export declare function handleToolCallChunks({ graph, stepKey, toolCallChunks, }: {
|
|
5
|
+
graph: Graph;
|
|
6
|
+
stepKey: string;
|
|
7
|
+
toolCallChunks: ToolCallChunk[];
|
|
8
|
+
}): void;
|
|
9
|
+
export declare const handleToolCalls: (toolCalls?: ToolCall[], metadata?: Record<string, unknown>, graph?: Graph) => void;
|
|
10
|
+
export declare const toolResultTypes: Set<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Handles the result of a server tool call; in other words, a provider's built-in tool.
|
|
13
|
+
* As of 2025-07-06, only Anthropic handles server tool calls with this pattern.
|
|
14
|
+
*/
|
|
15
|
+
export declare function handleServerToolResult({ content, metadata, graph, }: {
|
|
16
|
+
content?: string | t.MessageContentComplex[];
|
|
17
|
+
metadata?: Record<string, unknown>;
|
|
18
|
+
graph: Graph;
|
|
19
|
+
}): boolean;
|
|
@@ -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,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare enum DATE_RANGE {
|
|
3
|
+
PAST_HOUR = "h",
|
|
4
|
+
PAST_24_HOURS = "d",
|
|
5
|
+
PAST_WEEK = "w",
|
|
6
|
+
PAST_MONTH = "m",
|
|
7
|
+
PAST_YEAR = "y"
|
|
8
|
+
}
|
|
9
|
+
export declare const DEFAULT_QUERY_DESCRIPTION: string;
|
|
10
|
+
export declare const DEFAULT_COUNTRY_DESCRIPTION: string;
|
|
11
|
+
export declare const querySchema: z.ZodString;
|
|
12
|
+
export declare const dateSchema: z.ZodOptional<z.ZodNativeEnum<typeof DATE_RANGE>>;
|
|
13
|
+
export declare const countrySchema: z.ZodOptional<z.ZodString>;
|
|
14
|
+
export declare const imagesSchema: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
export declare const videosSchema: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
export declare const newsSchema: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -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 {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { DynamicStructuredTool } from '@langchain/core/tools';
|
|
3
|
+
import type * as t from './types';
|
|
4
|
+
import { DATE_RANGE } from './schema';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a search tool with a schema that dynamically includes the country field
|
|
7
|
+
* only when the searchProvider is 'serper'.
|
|
8
|
+
*
|
|
9
|
+
* Supports multiple scraper providers:
|
|
10
|
+
* - Firecrawl (default): Full-featured web scraping with multiple formats
|
|
11
|
+
* - Serper: Lightweight scraping using Serper's scrape API
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Using Firecrawl scraper (default)
|
|
16
|
+
* const searchTool = createSearchTool({
|
|
17
|
+
* searchProvider: 'serper',
|
|
18
|
+
* scraperProvider: 'firecrawl',
|
|
19
|
+
* firecrawlApiKey: 'your-firecrawl-key'
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // Using Serper scraper
|
|
23
|
+
* const searchTool = createSearchTool({
|
|
24
|
+
* searchProvider: 'serper',
|
|
25
|
+
* scraperProvider: 'serper',
|
|
26
|
+
* serperApiKey: 'your-serper-key'
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @param config - The search tool configuration
|
|
31
|
+
* @returns A DynamicStructuredTool with a schema that depends on the searchProvider
|
|
32
|
+
*/
|
|
33
|
+
export declare const createSearchTool: (config?: t.SearchToolConfig) => DynamicStructuredTool<z.ZodObject<{
|
|
34
|
+
query: z.ZodString;
|
|
35
|
+
date: z.ZodOptional<z.ZodNativeEnum<typeof DATE_RANGE>>;
|
|
36
|
+
country?: z.ZodOptional<z.ZodString>;
|
|
37
|
+
images: z.ZodOptional<z.ZodBoolean>;
|
|
38
|
+
videos: z.ZodOptional<z.ZodBoolean>;
|
|
39
|
+
news: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
}, "strip", z.ZodTypeAny, {
|
|
41
|
+
query: string;
|
|
42
|
+
date?: DATE_RANGE | undefined;
|
|
43
|
+
images?: boolean | undefined;
|
|
44
|
+
videos?: boolean | undefined;
|
|
45
|
+
news?: boolean | undefined;
|
|
46
|
+
country?: unknown;
|
|
47
|
+
}, {
|
|
48
|
+
query: string;
|
|
49
|
+
date?: DATE_RANGE | undefined;
|
|
50
|
+
images?: boolean | undefined;
|
|
51
|
+
videos?: boolean | undefined;
|
|
52
|
+
news?: boolean | undefined;
|
|
53
|
+
country?: unknown;
|
|
54
|
+
}>>;
|