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,56 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function isPresent(value) {
|
|
4
|
+
return value != null && value !== '';
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Unescapes a c-escaped string
|
|
8
|
+
* @param str The string to unescape
|
|
9
|
+
* @returns The unescaped string
|
|
10
|
+
*/
|
|
11
|
+
const unescapeString = (string) => string.replace(/\\(.)/g, (_, char) => {
|
|
12
|
+
switch (char) {
|
|
13
|
+
case 'n':
|
|
14
|
+
return '\n';
|
|
15
|
+
case 't':
|
|
16
|
+
return '\t';
|
|
17
|
+
case 'r':
|
|
18
|
+
return '\r';
|
|
19
|
+
case '"':
|
|
20
|
+
return '"';
|
|
21
|
+
case '\'':
|
|
22
|
+
return '\'';
|
|
23
|
+
case '\\':
|
|
24
|
+
return '\\';
|
|
25
|
+
default:
|
|
26
|
+
return char;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* Recursively unescapes all string values in an object
|
|
31
|
+
* @param obj The object to unescape
|
|
32
|
+
* @returns The unescaped object
|
|
33
|
+
*/
|
|
34
|
+
function unescapeObject(obj, key) {
|
|
35
|
+
if (typeof obj === 'string') {
|
|
36
|
+
let unescaped = unescapeString(obj);
|
|
37
|
+
if (key === 'filePath' && unescaped.match(/^"(.+)"$/)) {
|
|
38
|
+
unescaped = unescaped.substring(1, unescaped.length - 1);
|
|
39
|
+
}
|
|
40
|
+
return unescaped;
|
|
41
|
+
}
|
|
42
|
+
if (Array.isArray(obj)) {
|
|
43
|
+
return obj.map((value) => unescapeObject(value, key === 'contextPaths' ? 'filePath' : ''));
|
|
44
|
+
}
|
|
45
|
+
if (typeof obj === 'object' && obj !== null) {
|
|
46
|
+
return Object.fromEntries(Object.entries(obj).map(([key, value]) => [
|
|
47
|
+
key,
|
|
48
|
+
unescapeObject(value, key),
|
|
49
|
+
]));
|
|
50
|
+
}
|
|
51
|
+
return obj;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
exports.isPresent = isPresent;
|
|
55
|
+
exports.unescapeObject = unescapeObject;
|
|
56
|
+
//# sourceMappingURL=misc.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.cjs","sources":["../../../src/utils/misc.ts"],"sourcesContent":["export function isPresent(value: string | null | undefined): value is string {\r\n return value != null && value !== '';\r\n}\r\n\r\n/**\r\n * Unescapes a c-escaped string\r\n * @param str The string to unescape\r\n * @returns The unescaped string\r\n */\r\nconst unescapeString = (string: string): string =>\r\n string.replace(/\\\\(.)/g, (_, char) => {\r\n switch (char) {\r\n case 'n':\r\n return '\\n';\r\n case 't':\r\n return '\\t';\r\n case 'r':\r\n return '\\r';\r\n case '\"':\r\n return '\"';\r\n case '\\'':\r\n return '\\'';\r\n case '\\\\':\r\n return '\\\\';\r\n default:\r\n return char;\r\n }\r\n });\r\n\r\n/**\r\n * Recursively unescapes all string values in an object\r\n * @param obj The object to unescape\r\n * @returns The unescaped object\r\n */\r\nexport function unescapeObject(obj: unknown, key?: string): unknown {\r\n if (typeof obj === 'string') {\r\n let unescaped = unescapeString(obj);\r\n if (key === 'filePath' && unescaped.match(/^\"(.+)\"$/)) {\r\n unescaped = unescaped.substring(1, unescaped.length - 1);\r\n }\r\n return unescaped;\r\n }\r\n if (Array.isArray(obj)) {\r\n return obj.map((value) =>\r\n unescapeObject(value, key === 'contextPaths' ? 'filePath' : '')\r\n );\r\n }\r\n if (typeof obj === 'object' && obj !== null) {\r\n return Object.fromEntries(\r\n Object.entries(obj).map(([key, value]) => [\r\n key,\r\n unescapeObject(value, key),\r\n ])\r\n );\r\n }\r\n return obj;\r\n}\r\n"],"names":[],"mappings":";;AAAM,SAAU,SAAS,CAAC,KAAgC,EAAA;AACxD,IAAA,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;AACtC;AAEA;;;;AAIG;AACH,MAAM,cAAc,GAAG,CAAC,MAAc,KACpC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,KAAI;IACnC,QAAQ,IAAI;AACZ,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,IAAI;AACb,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,IAAI;AACb,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,IAAI;AACb,QAAA,KAAK,GAAG;AACN,YAAA,OAAO,GAAG;AACZ,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,IAAI;AACb,QAAA,KAAK,IAAI;AACP,YAAA,OAAO,IAAI;AACb,QAAA;AACE,YAAA,OAAO,IAAI;;AAEf,CAAC,CAAC;AAEJ;;;;AAIG;AACa,SAAA,cAAc,CAAC,GAAY,EAAE,GAAY,EAAA;AACvD,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,QAAA,IAAI,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC;QACnC,IAAI,GAAG,KAAK,UAAU,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AACrD,YAAA,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;;AAE1D,QAAA,OAAO,SAAS;;AAElB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,KACnB,cAAc,CAAC,KAAK,EAAE,GAAG,KAAK,cAAc,GAAG,UAAU,GAAG,EAAE,CAAC,CAChE;;IAEH,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;QAC3C,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;YACxC,GAAG;AACH,YAAA,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC;AAC3B,SAAA,CAAC,CACH;;AAEH,IAAA,OAAO,GAAG;AACZ;;;;;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var runnables = require('@langchain/core/runnables');
|
|
4
|
+
var singletons = require('@langchain/core/singletons');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Delays the execution for a specified number of milliseconds.
|
|
8
|
+
*
|
|
9
|
+
* @param {number} ms - The number of milliseconds to delay.
|
|
10
|
+
* @return {Promise<void>} A promise that resolves after the specified delay.
|
|
11
|
+
*/
|
|
12
|
+
function sleep(ms) {
|
|
13
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
14
|
+
}
|
|
15
|
+
class RunnableCallable extends runnables.Runnable {
|
|
16
|
+
lc_namespace = ['langgraph'];
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
func;
|
|
19
|
+
tags;
|
|
20
|
+
config;
|
|
21
|
+
trace = true;
|
|
22
|
+
recurse = true;
|
|
23
|
+
constructor(fields) {
|
|
24
|
+
super();
|
|
25
|
+
this.name = fields.name ?? fields.func.name;
|
|
26
|
+
this.func = fields.func;
|
|
27
|
+
this.config = fields.tags ? { tags: fields.tags } : undefined;
|
|
28
|
+
this.trace = fields.trace ?? this.trace;
|
|
29
|
+
this.recurse = fields.recurse ?? this.recurse;
|
|
30
|
+
}
|
|
31
|
+
async _tracedInvoke(input, config, runManager) {
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
const childConfig = runnables.patchConfig(config, {
|
|
34
|
+
callbacks: runManager?.getChild(),
|
|
35
|
+
});
|
|
36
|
+
void singletons.AsyncLocalStorageProviderSingleton.runWithConfig(childConfig, async () => {
|
|
37
|
+
try {
|
|
38
|
+
const output = await this.func(input, childConfig);
|
|
39
|
+
resolve(output);
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
async invoke(
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
input, options
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
+
) {
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
|
+
let returnValue;
|
|
54
|
+
if (this.trace) {
|
|
55
|
+
returnValue = await this._callWithConfig(this._tracedInvoke, input, runnables.mergeConfigs(this.config, options));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
returnValue = await this.func(input, runnables.mergeConfigs(this.config, options));
|
|
59
|
+
}
|
|
60
|
+
if (runnables.Runnable.isRunnable(returnValue) && this.recurse) {
|
|
61
|
+
return await returnValue.invoke(input, options);
|
|
62
|
+
}
|
|
63
|
+
return returnValue;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
exports.RunnableCallable = RunnableCallable;
|
|
68
|
+
exports.sleep = sleep;
|
|
69
|
+
//# sourceMappingURL=run.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.cjs","sources":["../../../src/utils/run.ts"],"sourcesContent":["import { CallbackManagerForChainRun } from '@langchain/core/callbacks/manager';\r\nimport {\r\n mergeConfigs,\r\n patchConfig,\r\n Runnable,\r\n RunnableConfig,\r\n} from '@langchain/core/runnables';\r\nimport { AsyncLocalStorageProviderSingleton } from '@langchain/core/singletons';\r\n\r\n/**\r\n * Delays the execution for a specified number of milliseconds.\r\n *\r\n * @param {number} ms - The number of milliseconds to delay.\r\n * @return {Promise<void>} A promise that resolves after the specified delay.\r\n */\r\nexport function sleep(ms: number): Promise<void> {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport interface RunnableCallableArgs extends Partial<any> {\r\n name?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n func: (...args: any[]) => any;\r\n tags?: string[];\r\n trace?: boolean;\r\n recurse?: boolean;\r\n}\r\n\r\nexport class RunnableCallable<I = unknown, O = unknown> extends Runnable<I, O> {\r\n lc_namespace: string[] = ['langgraph'];\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n func: (...args: any[]) => any;\r\n\r\n tags?: string[];\r\n\r\n config?: RunnableConfig;\r\n\r\n trace: boolean = true;\r\n\r\n recurse: boolean = true;\r\n\r\n constructor(fields: RunnableCallableArgs) {\r\n super();\r\n this.name = fields.name ?? fields.func.name;\r\n this.func = fields.func;\r\n this.config = fields.tags ? { tags: fields.tags } : undefined;\r\n this.trace = fields.trace ?? this.trace;\r\n this.recurse = fields.recurse ?? this.recurse;\r\n }\r\n\r\n protected async _tracedInvoke(\r\n input: I,\r\n config?: Partial<RunnableConfig>,\r\n runManager?: CallbackManagerForChainRun\r\n ): Promise<O> {\r\n return new Promise<O>((resolve, reject) => {\r\n const childConfig = patchConfig(config, {\r\n callbacks: runManager?.getChild(),\r\n });\r\n void AsyncLocalStorageProviderSingleton.runWithConfig(\r\n childConfig,\r\n async () => {\r\n try {\r\n const output = await this.func(input, childConfig);\r\n resolve(output);\r\n } catch (e) {\r\n reject(e);\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n async invoke(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n input: any,\r\n options?: Partial<RunnableConfig> | undefined\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n ): Promise<any> {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let returnValue: any;\r\n\r\n if (this.trace) {\r\n returnValue = await this._callWithConfig(\r\n this._tracedInvoke,\r\n input,\r\n mergeConfigs(this.config, options)\r\n );\r\n } else {\r\n returnValue = await this.func(input, mergeConfigs(this.config, options));\r\n }\r\n\r\n if (Runnable.isRunnable(returnValue) && this.recurse) {\r\n return await returnValue.invoke(input, options);\r\n }\r\n\r\n return returnValue;\r\n }\r\n}"],"names":["Runnable","patchConfig","AsyncLocalStorageProviderSingleton","mergeConfigs"],"mappings":";;;;;AASA;;;;;AAKG;AACG,SAAU,KAAK,CAAC,EAAU,EAAA;AAC9B,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1D;AAYM,MAAO,gBAA2C,SAAQA,kBAAc,CAAA;AAC5E,IAAA,YAAY,GAAa,CAAC,WAAW,CAAC;;AAGtC,IAAA,IAAI;AAEJ,IAAA,IAAI;AAEJ,IAAA,MAAM;IAEN,KAAK,GAAY,IAAI;IAErB,OAAO,GAAY,IAAI;AAEvB,IAAA,WAAA,CAAY,MAA4B,EAAA;AACtC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI;AAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,SAAS;QAC7D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;;AAGrC,IAAA,MAAM,aAAa,CAC3B,KAAQ,EACR,MAAgC,EAChC,UAAuC,EAAA;QAEvC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,KAAI;AACxC,YAAA,MAAM,WAAW,GAAGC,qBAAW,CAAC,MAAM,EAAE;AACtC,gBAAA,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;AAClC,aAAA,CAAC;YACF,KAAKC,6CAAkC,CAAC,aAAa,CACnD,WAAW,EACX,YAAW;AACT,gBAAA,IAAI;oBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;oBAClD,OAAO,CAAC,MAAM,CAAC;;gBACf,OAAO,CAAC,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC;;AAEb,aAAC,CACF;AACH,SAAC,CAAC;;AAGJ,IAAA,MAAM,MAAM;;AAEV,IAAA,KAAU,EACV;;;;AAIA,QAAA,IAAI,WAAgB;AAEpB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CACtC,IAAI,CAAC,aAAa,EAClB,KAAK,EACLC,sBAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CACnC;;aACI;AACL,YAAA,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAEA,sBAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;QAG1E,IAAIH,kBAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YACpD,OAAO,MAAM,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;;AAGjD,QAAA,OAAO,WAAW;;AAErB;;;;;"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var zod = require('zod');
|
|
4
|
+
var prompts = require('@langchain/core/prompts');
|
|
5
|
+
var runnables = require('@langchain/core/runnables');
|
|
6
|
+
var _enum = require('../common/enum.cjs');
|
|
7
|
+
|
|
8
|
+
const defaultTitlePrompt = `Analyze this conversation and provide:
|
|
9
|
+
1. The detected language of the conversation
|
|
10
|
+
2. A concise title in the detected language (5 words or less, no punctuation or quotation)
|
|
11
|
+
|
|
12
|
+
{convo}`;
|
|
13
|
+
const titleSchema = zod.z.object({
|
|
14
|
+
title: zod.z
|
|
15
|
+
.string()
|
|
16
|
+
.describe('A concise title for the conversation in 5 words or less, without punctuation or quotation'),
|
|
17
|
+
});
|
|
18
|
+
const combinedSchema = zod.z.object({
|
|
19
|
+
language: zod.z.string().describe('The detected language of the conversation'),
|
|
20
|
+
title: zod.z
|
|
21
|
+
.string()
|
|
22
|
+
.describe('A concise title for the conversation in 5 words or less, without punctuation or quotation'),
|
|
23
|
+
});
|
|
24
|
+
const createTitleRunnable = async (model, _titlePrompt) => {
|
|
25
|
+
// Disabled since this works fine
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
27
|
+
/* @ts-ignore */
|
|
28
|
+
const titleLLM = model.withStructuredOutput(titleSchema);
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
30
|
+
/* @ts-ignore */
|
|
31
|
+
const combinedLLM = model.withStructuredOutput(combinedSchema);
|
|
32
|
+
const titlePrompt = prompts.ChatPromptTemplate.fromTemplate(_titlePrompt ?? defaultTitlePrompt).withConfig({ runName: 'TitlePrompt' });
|
|
33
|
+
const titleOnlyInnerChain = runnables.RunnableSequence.from([titlePrompt, titleLLM]);
|
|
34
|
+
const combinedInnerChain = runnables.RunnableSequence.from([titlePrompt, combinedLLM]);
|
|
35
|
+
/** Wrap titleOnlyChain in RunnableLambda to create parent span */
|
|
36
|
+
const titleOnlyChain = new runnables.RunnableLambda({
|
|
37
|
+
func: async (input, config) => {
|
|
38
|
+
return await titleOnlyInnerChain.invoke(input, config);
|
|
39
|
+
},
|
|
40
|
+
}).withConfig({ runName: 'TitleOnlyChain' });
|
|
41
|
+
/** Wrap combinedChain in RunnableLambda to create parent span */
|
|
42
|
+
const combinedChain = new runnables.RunnableLambda({
|
|
43
|
+
func: async (input, config) => {
|
|
44
|
+
return await combinedInnerChain.invoke(input, config);
|
|
45
|
+
},
|
|
46
|
+
}).withConfig({ runName: 'TitleLanguageChain' });
|
|
47
|
+
/** Runnable to add default values if needed */
|
|
48
|
+
const addDefaults = new runnables.RunnableLambda({
|
|
49
|
+
func: (result) => ({
|
|
50
|
+
language: result?.language ?? 'English',
|
|
51
|
+
title: result?.title ?? '',
|
|
52
|
+
}),
|
|
53
|
+
}).withConfig({ runName: 'AddDefaults' });
|
|
54
|
+
const combinedChainInner = runnables.RunnableSequence.from([
|
|
55
|
+
combinedChain,
|
|
56
|
+
addDefaults,
|
|
57
|
+
]);
|
|
58
|
+
/** Wrap combinedChainWithDefaults in RunnableLambda to create parent span */
|
|
59
|
+
const combinedChainWithDefaults = new runnables.RunnableLambda({
|
|
60
|
+
func: async (input, config) => {
|
|
61
|
+
return await combinedChainInner.invoke(input, config);
|
|
62
|
+
},
|
|
63
|
+
}).withConfig({ runName: 'CombinedChainWithDefaults' });
|
|
64
|
+
return new runnables.RunnableLambda({
|
|
65
|
+
func: async (input, config) => {
|
|
66
|
+
const invokeInput = { convo: input.convo };
|
|
67
|
+
if (input.skipLanguage) {
|
|
68
|
+
return (await titleOnlyChain.invoke(invokeInput, config));
|
|
69
|
+
}
|
|
70
|
+
return await combinedChainWithDefaults.invoke(invokeInput, config);
|
|
71
|
+
},
|
|
72
|
+
}).withConfig({ runName: 'TitleGenerator' });
|
|
73
|
+
};
|
|
74
|
+
const defaultCompletionPrompt = `Provide a concise, 5-word-or-less title for the conversation, using title case conventions. Only return the title itself.
|
|
75
|
+
|
|
76
|
+
Conversation:
|
|
77
|
+
{convo}`;
|
|
78
|
+
const createCompletionTitleRunnable = async (model, titlePrompt) => {
|
|
79
|
+
const completionPrompt = prompts.ChatPromptTemplate.fromTemplate(titlePrompt ?? defaultCompletionPrompt).withConfig({ runName: 'CompletionTitlePrompt' });
|
|
80
|
+
/** Runnable to extract content from model response */
|
|
81
|
+
const extractContent = new runnables.RunnableLambda({
|
|
82
|
+
func: (response) => {
|
|
83
|
+
let content = '';
|
|
84
|
+
if (typeof response.content === 'string') {
|
|
85
|
+
content = response.content;
|
|
86
|
+
}
|
|
87
|
+
else if (Array.isArray(response.content)) {
|
|
88
|
+
content = response.content
|
|
89
|
+
.filter((part) => part.type === _enum.ContentTypes.TEXT)
|
|
90
|
+
.map((part) => part.text)
|
|
91
|
+
.join('');
|
|
92
|
+
}
|
|
93
|
+
return { title: content.trim() };
|
|
94
|
+
},
|
|
95
|
+
}).withConfig({ runName: 'ExtractTitle' });
|
|
96
|
+
const innerChain = runnables.RunnableSequence.from([
|
|
97
|
+
completionPrompt,
|
|
98
|
+
model,
|
|
99
|
+
extractContent,
|
|
100
|
+
]);
|
|
101
|
+
/** Wrap in RunnableLambda to create a parent span for LangFuse */
|
|
102
|
+
return new runnables.RunnableLambda({
|
|
103
|
+
func: async (input, config) => {
|
|
104
|
+
return await innerChain.invoke(input, config);
|
|
105
|
+
},
|
|
106
|
+
}).withConfig({ runName: 'CompletionTitleChain' });
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
exports.createCompletionTitleRunnable = createCompletionTitleRunnable;
|
|
110
|
+
exports.createTitleRunnable = createTitleRunnable;
|
|
111
|
+
//# sourceMappingURL=title.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title.cjs","sources":["../../../src/utils/title.ts"],"sourcesContent":["import { z } from 'zod';\r\nimport { ChatPromptTemplate } from '@langchain/core/prompts';\r\nimport { RunnableLambda, RunnableSequence } from '@langchain/core/runnables';\r\nimport type { Runnable, RunnableConfig } from '@langchain/core/runnables';\r\nimport type { AIMessage } from '@langchain/core/messages';\r\nimport type * as t from '@/types';\r\nimport { ContentTypes } from '@/common';\r\n\r\nconst defaultTitlePrompt = `Analyze this conversation and provide:\r\n1. The detected language of the conversation\r\n2. A concise title in the detected language (5 words or less, no punctuation or quotation)\r\n\r\n{convo}`;\r\n\r\nconst titleSchema = z.object({\r\n title: z\r\n .string()\r\n .describe(\r\n 'A concise title for the conversation in 5 words or less, without punctuation or quotation'\r\n ),\r\n});\r\n\r\nconst combinedSchema = z.object({\r\n language: z.string().describe('The detected language of the conversation'),\r\n title: z\r\n .string()\r\n .describe(\r\n 'A concise title for the conversation in 5 words or less, without punctuation or quotation'\r\n ),\r\n});\r\n\r\nexport const createTitleRunnable = async (\r\n model: t.ChatModelInstance,\r\n _titlePrompt?: string\r\n): Promise<Runnable> => {\r\n // Disabled since this works fine\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n /* @ts-ignore */\r\n const titleLLM = model.withStructuredOutput(titleSchema);\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n /* @ts-ignore */\r\n const combinedLLM = model.withStructuredOutput(combinedSchema);\r\n\r\n const titlePrompt = ChatPromptTemplate.fromTemplate(\r\n _titlePrompt ?? defaultTitlePrompt\r\n ).withConfig({ runName: 'TitlePrompt' });\r\n\r\n const titleOnlyInnerChain = RunnableSequence.from([titlePrompt, titleLLM]);\r\n const combinedInnerChain = RunnableSequence.from([titlePrompt, combinedLLM]);\r\n\r\n /** Wrap titleOnlyChain in RunnableLambda to create parent span */\r\n const titleOnlyChain = new RunnableLambda({\r\n func: async (\r\n input: { convo: string },\r\n config?: Partial<RunnableConfig>\r\n ): Promise<{ title: string }> => {\r\n return await titleOnlyInnerChain.invoke(input, config);\r\n },\r\n }).withConfig({ runName: 'TitleOnlyChain' });\r\n\r\n /** Wrap combinedChain in RunnableLambda to create parent span */\r\n const combinedChain = new RunnableLambda({\r\n func: async (\r\n input: { convo: string },\r\n config?: Partial<RunnableConfig>\r\n ): Promise<{ language: string; title: string }> => {\r\n return await combinedInnerChain.invoke(input, config);\r\n },\r\n }).withConfig({ runName: 'TitleLanguageChain' });\r\n\r\n /** Runnable to add default values if needed */\r\n const addDefaults = new RunnableLambda({\r\n func: (\r\n result: { language: string; title: string } | undefined\r\n ): { language: string; title: string } => ({\r\n language: result?.language ?? 'English',\r\n title: result?.title ?? '',\r\n }),\r\n }).withConfig({ runName: 'AddDefaults' });\r\n\r\n const combinedChainInner = RunnableSequence.from([\r\n combinedChain,\r\n addDefaults,\r\n ]);\r\n\r\n /** Wrap combinedChainWithDefaults in RunnableLambda to create parent span */\r\n const combinedChainWithDefaults = new RunnableLambda({\r\n func: async (\r\n input: { convo: string },\r\n config?: Partial<RunnableConfig>\r\n ): Promise<{ language: string; title: string }> => {\r\n return await combinedChainInner.invoke(input, config);\r\n },\r\n }).withConfig({ runName: 'CombinedChainWithDefaults' });\r\n\r\n return new RunnableLambda({\r\n func: async (\r\n input: {\r\n convo: string;\r\n inputText: string;\r\n skipLanguage: boolean;\r\n },\r\n config?: Partial<RunnableConfig>\r\n ): Promise<{ language: string; title: string } | { title: string }> => {\r\n const invokeInput = { convo: input.convo };\r\n\r\n if (input.skipLanguage) {\r\n return (await titleOnlyChain.invoke(invokeInput, config)) as {\r\n title: string;\r\n };\r\n }\r\n\r\n return await combinedChainWithDefaults.invoke(invokeInput, config);\r\n },\r\n }).withConfig({ runName: 'TitleGenerator' });\r\n};\r\n\r\nconst defaultCompletionPrompt = `Provide a concise, 5-word-or-less title for the conversation, using title case conventions. Only return the title itself.\r\n\r\nConversation:\r\n{convo}`;\r\n\r\nexport const createCompletionTitleRunnable = async (\r\n model: t.ChatModelInstance,\r\n titlePrompt?: string\r\n): Promise<Runnable> => {\r\n const completionPrompt = ChatPromptTemplate.fromTemplate(\r\n titlePrompt ?? defaultCompletionPrompt\r\n ).withConfig({ runName: 'CompletionTitlePrompt' });\r\n\r\n /** Runnable to extract content from model response */\r\n const extractContent = new RunnableLambda({\r\n func: (response: AIMessage): { title: string } => {\r\n let content = '';\r\n if (typeof response.content === 'string') {\r\n content = response.content;\r\n } else if (Array.isArray(response.content)) {\r\n content = response.content\r\n .filter(\r\n (part): part is { type: ContentTypes.TEXT; text: string } =>\r\n part.type === ContentTypes.TEXT\r\n )\r\n .map((part) => part.text)\r\n .join('');\r\n }\r\n return { title: content.trim() };\r\n },\r\n }).withConfig({ runName: 'ExtractTitle' });\r\n\r\n const innerChain = RunnableSequence.from([\r\n completionPrompt,\r\n model,\r\n extractContent,\r\n ]);\r\n\r\n /** Wrap in RunnableLambda to create a parent span for LangFuse */\r\n return new RunnableLambda({\r\n func: async (\r\n input: { convo: string },\r\n config?: Partial<RunnableConfig>\r\n ): Promise<{ title: string }> => {\r\n return await innerChain.invoke(input, config);\r\n },\r\n }).withConfig({ runName: 'CompletionTitleChain' });\r\n};\r\n"],"names":["z","ChatPromptTemplate","RunnableSequence","RunnableLambda","ContentTypes"],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var lite = require('js-tiktoken/lite');
|
|
4
|
+
var _enum = require('../common/enum.cjs');
|
|
5
|
+
|
|
6
|
+
function getTokenCountForMessage(message, getTokenCount) {
|
|
7
|
+
const tokensPerMessage = 3;
|
|
8
|
+
const processValue = (value) => {
|
|
9
|
+
if (Array.isArray(value)) {
|
|
10
|
+
for (const item of value) {
|
|
11
|
+
if (!item ||
|
|
12
|
+
!item.type ||
|
|
13
|
+
item.type === _enum.ContentTypes.ERROR ||
|
|
14
|
+
item.type === _enum.ContentTypes.IMAGE_URL) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
if (item.type === _enum.ContentTypes.TOOL_CALL && item.tool_call != null) {
|
|
18
|
+
const toolName = item.tool_call?.name || '';
|
|
19
|
+
if (toolName != null && toolName && typeof toolName === 'string') {
|
|
20
|
+
numTokens += getTokenCount(toolName);
|
|
21
|
+
}
|
|
22
|
+
const args = item.tool_call?.args || '';
|
|
23
|
+
if (args != null && args && typeof args === 'string') {
|
|
24
|
+
numTokens += getTokenCount(args);
|
|
25
|
+
}
|
|
26
|
+
const output = item.tool_call?.output || '';
|
|
27
|
+
if (output != null && output && typeof output === 'string') {
|
|
28
|
+
numTokens += getTokenCount(output);
|
|
29
|
+
}
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
const nestedValue = item[item.type];
|
|
33
|
+
if (!nestedValue) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
processValue(nestedValue);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else if (typeof value === 'string') {
|
|
40
|
+
numTokens += getTokenCount(value);
|
|
41
|
+
}
|
|
42
|
+
else if (typeof value === 'number') {
|
|
43
|
+
numTokens += getTokenCount(value.toString());
|
|
44
|
+
}
|
|
45
|
+
else if (typeof value === 'boolean') {
|
|
46
|
+
numTokens += getTokenCount(value.toString());
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
let numTokens = tokensPerMessage;
|
|
50
|
+
processValue(message.content);
|
|
51
|
+
return numTokens;
|
|
52
|
+
}
|
|
53
|
+
const createTokenCounter = async () => {
|
|
54
|
+
const res = await fetch('https://tiktoken.pages.dev/js/o200k_base.json');
|
|
55
|
+
const o200k_base = await res.json();
|
|
56
|
+
const countTokens = (text) => {
|
|
57
|
+
const enc = new lite.Tiktoken(o200k_base);
|
|
58
|
+
return enc.encode(text).length;
|
|
59
|
+
};
|
|
60
|
+
return (message) => getTokenCountForMessage(message, countTokens);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
exports.createTokenCounter = createTokenCounter;
|
|
64
|
+
exports.getTokenCountForMessage = getTokenCountForMessage;
|
|
65
|
+
//# sourceMappingURL=tokens.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.cjs","sources":["../../../src/utils/tokens.ts"],"sourcesContent":["import { Tiktoken } from 'js-tiktoken/lite';\r\nimport type { BaseMessage } from '@langchain/core/messages';\r\nimport { ContentTypes } from '@/common/enum';\r\n\r\nexport function getTokenCountForMessage(message: BaseMessage, getTokenCount: (text: string) => number): number {\r\n const tokensPerMessage = 3;\r\n\r\n const processValue = (value: unknown): void => {\r\n if (Array.isArray(value)) {\r\n for (const item of value) {\r\n if (\r\n !item ||\r\n !item.type ||\r\n item.type === ContentTypes.ERROR ||\r\n item.type === ContentTypes.IMAGE_URL\r\n ) {\r\n continue;\r\n }\r\n\r\n if (item.type === ContentTypes.TOOL_CALL && item.tool_call != null) {\r\n const toolName = item.tool_call?.name || '';\r\n if (toolName != null && toolName && typeof toolName === 'string') {\r\n numTokens += getTokenCount(toolName);\r\n }\r\n\r\n const args = item.tool_call?.args || '';\r\n if (args != null && args && typeof args === 'string') {\r\n numTokens += getTokenCount(args);\r\n }\r\n\r\n const output = item.tool_call?.output || '';\r\n if (output != null && output && typeof output === 'string') {\r\n numTokens += getTokenCount(output);\r\n }\r\n continue;\r\n }\r\n\r\n const nestedValue = item[item.type];\r\n\r\n if (!nestedValue) {\r\n continue;\r\n }\r\n\r\n processValue(nestedValue);\r\n }\r\n } else if (typeof value === 'string') {\r\n numTokens += getTokenCount(value);\r\n } else if (typeof value === 'number') {\r\n numTokens += getTokenCount(value.toString());\r\n } else if (typeof value === 'boolean') {\r\n numTokens += getTokenCount(value.toString());\r\n }\r\n };\r\n\r\n let numTokens = tokensPerMessage;\r\n processValue(message.content);\r\n return numTokens;\r\n}\r\n\r\nexport const createTokenCounter = async () => {\r\n const res = await fetch('https://tiktoken.pages.dev/js/o200k_base.json');\r\n const o200k_base = await res.json();\r\n\r\n const countTokens = (text: string): number => {\r\n const enc = new Tiktoken(o200k_base);\r\n return enc.encode(text).length;\r\n };\r\n\r\n return (message: BaseMessage): number => getTokenCountForMessage(message, countTokens);\r\n};"],"names":["ContentTypes","Tiktoken"],"mappings":";;;;;AAIgB,SAAA,uBAAuB,CAAC,OAAoB,EAAE,aAAuC,EAAA;IACnG,MAAM,gBAAgB,GAAG,CAAC;AAE1B,IAAA,MAAM,YAAY,GAAG,CAAC,KAAc,KAAU;AAC5C,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACxB,gBAAA,IACE,CAAC,IAAI;oBACL,CAAC,IAAI,CAAC,IAAI;AACV,oBAAA,IAAI,CAAC,IAAI,KAAKA,kBAAY,CAAC,KAAK;AAChC,oBAAA,IAAI,CAAC,IAAI,KAAKA,kBAAY,CAAC,SAAS,EACpC;oBACA;;AAGF,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAKA,kBAAY,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;oBAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE;oBAC3C,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChE,wBAAA,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC;;oBAGtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE;oBACvC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACpD,wBAAA,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;;oBAGlC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE;oBAC3C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC1D,wBAAA,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC;;oBAEpC;;gBAGF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEnC,IAAI,CAAC,WAAW,EAAE;oBAChB;;gBAGF,YAAY,CAAC,WAAW,CAAC;;;AAEtB,aAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,YAAA,SAAS,IAAI,aAAa,CAAC,KAAK,CAAC;;AAC5B,aAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,SAAS,IAAI,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;;AACvC,aAAA,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;YACrC,SAAS,IAAI,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;;AAEhD,KAAC;IAED,IAAI,SAAS,GAAG,gBAAgB;AAChC,IAAA,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7B,IAAA,OAAO,SAAS;AAClB;AAEa,MAAA,kBAAkB,GAAG,YAAW;AAC3C,IAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,+CAA+C,CAAC;AACxE,IAAA,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AAEnC,IAAA,MAAM,WAAW,GAAG,CAAC,IAAY,KAAY;AAC3C,QAAA,MAAM,GAAG,GAAG,IAAIC,aAAQ,CAAC,UAAU,CAAC;QACpC,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;AAChC,KAAC;IAED,OAAO,CAAC,OAAoB,KAAa,uBAAuB,CAAC,OAAO,EAAE,WAAW,CAAC;AACxF;;;;;"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enum representing the various event types emitted during the execution of runnables.
|
|
3
|
+
* These events provide real-time information about the progress and state of different components.
|
|
4
|
+
*
|
|
5
|
+
* @enum {string}
|
|
6
|
+
*/
|
|
7
|
+
var GraphEvents;
|
|
8
|
+
(function (GraphEvents) {
|
|
9
|
+
/* Custom Events */
|
|
10
|
+
/** [Custom] Agent update event in multi-agent graph/workflow */
|
|
11
|
+
GraphEvents["ON_AGENT_UPDATE"] = "on_agent_update";
|
|
12
|
+
/** [Custom] Delta event for run steps (message creation and tool calls) */
|
|
13
|
+
GraphEvents["ON_RUN_STEP"] = "on_run_step";
|
|
14
|
+
/** [Custom] Delta event for run steps (tool calls) */
|
|
15
|
+
GraphEvents["ON_RUN_STEP_DELTA"] = "on_run_step_delta";
|
|
16
|
+
/** [Custom] Completed event for run steps (tool calls) */
|
|
17
|
+
GraphEvents["ON_RUN_STEP_COMPLETED"] = "on_run_step_completed";
|
|
18
|
+
/** [Custom] Delta events for messages */
|
|
19
|
+
GraphEvents["ON_MESSAGE_DELTA"] = "on_message_delta";
|
|
20
|
+
/** [Custom] Reasoning Delta events for messages */
|
|
21
|
+
GraphEvents["ON_REASONING_DELTA"] = "on_reasoning_delta";
|
|
22
|
+
/* Official Events */
|
|
23
|
+
/** Custom event, emitted by system */
|
|
24
|
+
GraphEvents["ON_CUSTOM_EVENT"] = "on_custom_event";
|
|
25
|
+
/** Emitted when a chat model starts processing. */
|
|
26
|
+
GraphEvents["CHAT_MODEL_START"] = "on_chat_model_start";
|
|
27
|
+
/** Emitted when a chat model streams a chunk of its response. */
|
|
28
|
+
GraphEvents["CHAT_MODEL_STREAM"] = "on_chat_model_stream";
|
|
29
|
+
/** Emitted when a chat model completes its processing. */
|
|
30
|
+
GraphEvents["CHAT_MODEL_END"] = "on_chat_model_end";
|
|
31
|
+
/** Emitted when a language model starts processing. */
|
|
32
|
+
GraphEvents["LLM_START"] = "on_llm_start";
|
|
33
|
+
/** Emitted when a language model streams a chunk of its response. */
|
|
34
|
+
GraphEvents["LLM_STREAM"] = "on_llm_stream";
|
|
35
|
+
/** Emitted when a language model completes its processing. */
|
|
36
|
+
GraphEvents["LLM_END"] = "on_llm_end";
|
|
37
|
+
/** Emitted when a chain starts processing. */
|
|
38
|
+
GraphEvents["CHAIN_START"] = "on_chain_start";
|
|
39
|
+
/** Emitted when a chain streams a chunk of its output. */
|
|
40
|
+
GraphEvents["CHAIN_STREAM"] = "on_chain_stream";
|
|
41
|
+
/** Emitted when a chain completes its processing. */
|
|
42
|
+
GraphEvents["CHAIN_END"] = "on_chain_end";
|
|
43
|
+
/** Emitted when a tool starts its operation. */
|
|
44
|
+
GraphEvents["TOOL_START"] = "on_tool_start";
|
|
45
|
+
/** Emitted when a tool completes its operation. */
|
|
46
|
+
GraphEvents["TOOL_END"] = "on_tool_end";
|
|
47
|
+
/** Emitted when a retriever starts its operation. */
|
|
48
|
+
GraphEvents["RETRIEVER_START"] = "on_retriever_start";
|
|
49
|
+
/** Emitted when a retriever completes its operation. */
|
|
50
|
+
GraphEvents["RETRIEVER_END"] = "on_retriever_end";
|
|
51
|
+
/** Emitted when a prompt starts processing. */
|
|
52
|
+
GraphEvents["PROMPT_START"] = "on_prompt_start";
|
|
53
|
+
/** Emitted when a prompt completes its processing. */
|
|
54
|
+
GraphEvents["PROMPT_END"] = "on_prompt_end";
|
|
55
|
+
})(GraphEvents || (GraphEvents = {}));
|
|
56
|
+
var Providers;
|
|
57
|
+
(function (Providers) {
|
|
58
|
+
Providers["OPENAI"] = "openAI";
|
|
59
|
+
Providers["BEDROCK_LEGACY"] = "bedrock_legacy";
|
|
60
|
+
Providers["VERTEXAI"] = "vertexai";
|
|
61
|
+
Providers["BEDROCK"] = "bedrock";
|
|
62
|
+
Providers["ANTHROPIC"] = "anthropic";
|
|
63
|
+
Providers["MISTRALAI"] = "mistralai";
|
|
64
|
+
Providers["MISTRAL"] = "mistral";
|
|
65
|
+
Providers["OLLAMA"] = "ollama";
|
|
66
|
+
Providers["GOOGLE"] = "google";
|
|
67
|
+
Providers["AZURE"] = "azureOpenAI";
|
|
68
|
+
Providers["DEEPSEEK"] = "deepseek";
|
|
69
|
+
Providers["OPENROUTER"] = "openrouter";
|
|
70
|
+
Providers["XAI"] = "xai";
|
|
71
|
+
})(Providers || (Providers = {}));
|
|
72
|
+
var GraphNodeKeys;
|
|
73
|
+
(function (GraphNodeKeys) {
|
|
74
|
+
GraphNodeKeys["TOOLS"] = "tools";
|
|
75
|
+
GraphNodeKeys["AGENT"] = "agent";
|
|
76
|
+
GraphNodeKeys["PRE_TOOLS"] = "pre_tools";
|
|
77
|
+
GraphNodeKeys["POST_TOOLS"] = "post_tools";
|
|
78
|
+
})(GraphNodeKeys || (GraphNodeKeys = {}));
|
|
79
|
+
var GraphNodeActions;
|
|
80
|
+
(function (GraphNodeActions) {
|
|
81
|
+
GraphNodeActions["TOOL_NODE"] = "tool_node";
|
|
82
|
+
GraphNodeActions["CALL_MODEL"] = "call_model";
|
|
83
|
+
GraphNodeActions["ROUTE_MESSAGE"] = "route_message";
|
|
84
|
+
})(GraphNodeActions || (GraphNodeActions = {}));
|
|
85
|
+
var CommonEvents;
|
|
86
|
+
(function (CommonEvents) {
|
|
87
|
+
CommonEvents["LANGGRAPH"] = "LangGraph";
|
|
88
|
+
})(CommonEvents || (CommonEvents = {}));
|
|
89
|
+
var StepTypes;
|
|
90
|
+
(function (StepTypes) {
|
|
91
|
+
StepTypes["TOOL_CALLS"] = "tool_calls";
|
|
92
|
+
StepTypes["MESSAGE_CREATION"] = "message_creation";
|
|
93
|
+
})(StepTypes || (StepTypes = {}));
|
|
94
|
+
var ContentTypes;
|
|
95
|
+
(function (ContentTypes) {
|
|
96
|
+
ContentTypes["TEXT"] = "text";
|
|
97
|
+
ContentTypes["ERROR"] = "error";
|
|
98
|
+
ContentTypes["THINK"] = "think";
|
|
99
|
+
ContentTypes["TOOL_CALL"] = "tool_call";
|
|
100
|
+
ContentTypes["IMAGE_URL"] = "image_url";
|
|
101
|
+
ContentTypes["IMAGE_FILE"] = "image_file";
|
|
102
|
+
/** Anthropic */
|
|
103
|
+
ContentTypes["THINKING"] = "thinking";
|
|
104
|
+
/** Vertex AI / Google Common */
|
|
105
|
+
ContentTypes["REASONING"] = "reasoning";
|
|
106
|
+
/** Multi-Agent Switch */
|
|
107
|
+
ContentTypes["AGENT_UPDATE"] = "agent_update";
|
|
108
|
+
/** Bedrock */
|
|
109
|
+
ContentTypes["REASONING_CONTENT"] = "reasoning_content";
|
|
110
|
+
})(ContentTypes || (ContentTypes = {}));
|
|
111
|
+
var ToolCallTypes;
|
|
112
|
+
(function (ToolCallTypes) {
|
|
113
|
+
ToolCallTypes["FUNCTION"] = "function";
|
|
114
|
+
ToolCallTypes["RETRIEVAL"] = "retrieval";
|
|
115
|
+
ToolCallTypes["FILE_SEARCH"] = "file_search";
|
|
116
|
+
ToolCallTypes["CODE_INTERPRETER"] = "code_interpreter";
|
|
117
|
+
/* Agents Tool Call */
|
|
118
|
+
ToolCallTypes["TOOL_CALL"] = "tool_call";
|
|
119
|
+
})(ToolCallTypes || (ToolCallTypes = {}));
|
|
120
|
+
var Callback;
|
|
121
|
+
(function (Callback) {
|
|
122
|
+
Callback["TOOL_ERROR"] = "handleToolError";
|
|
123
|
+
Callback["TOOL_START"] = "handleToolStart";
|
|
124
|
+
Callback["TOOL_END"] = "handleToolEnd";
|
|
125
|
+
/*
|
|
126
|
+
LLM_START = 'handleLLMStart',
|
|
127
|
+
LLM_NEW_TOKEN = 'handleLLMNewToken',
|
|
128
|
+
LLM_ERROR = 'handleLLMError',
|
|
129
|
+
LLM_END = 'handleLLMEnd',
|
|
130
|
+
CHAT_MODEL_START = 'handleChatModelStart',
|
|
131
|
+
CHAIN_START = 'handleChainStart',
|
|
132
|
+
CHAIN_ERROR = 'handleChainError',
|
|
133
|
+
CHAIN_END = 'handleChainEnd',
|
|
134
|
+
TEXT = 'handleText',
|
|
135
|
+
AGENT_ACTION = 'handleAgentAction',
|
|
136
|
+
AGENT_END = 'handleAgentEnd',
|
|
137
|
+
RETRIEVER_START = 'handleRetrieverStart',
|
|
138
|
+
RETRIEVER_END = 'handleRetrieverEnd',
|
|
139
|
+
RETRIEVER_ERROR = 'handleRetrieverError',
|
|
140
|
+
CUSTOM_EVENT = 'handleCustomEvent'
|
|
141
|
+
*/
|
|
142
|
+
})(Callback || (Callback = {}));
|
|
143
|
+
var Constants;
|
|
144
|
+
(function (Constants) {
|
|
145
|
+
Constants["OFFICIAL_CODE_BASEURL"] = "https://api.illuma.ai/v1";
|
|
146
|
+
Constants["EXECUTE_CODE"] = "execute_code";
|
|
147
|
+
Constants["WEB_SEARCH"] = "web_search";
|
|
148
|
+
Constants["CONTENT_AND_ARTIFACT"] = "content_and_artifact";
|
|
149
|
+
})(Constants || (Constants = {}));
|
|
150
|
+
var TitleMethod;
|
|
151
|
+
(function (TitleMethod) {
|
|
152
|
+
TitleMethod["STRUCTURED"] = "structured";
|
|
153
|
+
TitleMethod["FUNCTIONS"] = "functions";
|
|
154
|
+
TitleMethod["COMPLETION"] = "completion";
|
|
155
|
+
})(TitleMethod || (TitleMethod = {}));
|
|
156
|
+
var EnvVar;
|
|
157
|
+
(function (EnvVar) {
|
|
158
|
+
EnvVar["CODE_API_KEY"] = "CODE_EXECUTOR_API_KEY";
|
|
159
|
+
EnvVar["CODE_BASEURL"] = "CODE_EXECUTOR_API_BASEURL";
|
|
160
|
+
})(EnvVar || (EnvVar = {}));
|
|
161
|
+
|
|
162
|
+
export { Callback, CommonEvents, Constants, ContentTypes, EnvVar, GraphEvents, GraphNodeActions, GraphNodeKeys, Providers, StepTypes, TitleMethod, ToolCallTypes };
|
|
163
|
+
//# sourceMappingURL=enum.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum.mjs","sources":["../../../src/common/enum.ts"],"sourcesContent":["/**\r\n * Enum representing the various event types emitted during the execution of runnables.\r\n * These events provide real-time information about the progress and state of different components.\r\n *\r\n * @enum {string}\r\n */\r\nexport enum GraphEvents {\r\n /* Custom Events */\r\n\r\n /** [Custom] Agent update event in multi-agent graph/workflow */\r\n ON_AGENT_UPDATE = 'on_agent_update',\r\n /** [Custom] Delta event for run steps (message creation and tool calls) */\r\n ON_RUN_STEP = 'on_run_step',\r\n /** [Custom] Delta event for run steps (tool calls) */\r\n ON_RUN_STEP_DELTA = 'on_run_step_delta',\r\n /** [Custom] Completed event for run steps (tool calls) */\r\n ON_RUN_STEP_COMPLETED = 'on_run_step_completed',\r\n /** [Custom] Delta events for messages */\r\n ON_MESSAGE_DELTA = 'on_message_delta',\r\n /** [Custom] Reasoning Delta events for messages */\r\n ON_REASONING_DELTA = 'on_reasoning_delta',\r\n\r\n /* Official Events */\r\n\r\n /** Custom event, emitted by system */\r\n ON_CUSTOM_EVENT = 'on_custom_event',\r\n /** Emitted when a chat model starts processing. */\r\n CHAT_MODEL_START = 'on_chat_model_start',\r\n\r\n /** Emitted when a chat model streams a chunk of its response. */\r\n CHAT_MODEL_STREAM = 'on_chat_model_stream',\r\n\r\n /** Emitted when a chat model completes its processing. */\r\n CHAT_MODEL_END = 'on_chat_model_end',\r\n\r\n /** Emitted when a language model starts processing. */\r\n LLM_START = 'on_llm_start',\r\n\r\n /** Emitted when a language model streams a chunk of its response. */\r\n LLM_STREAM = 'on_llm_stream',\r\n\r\n /** Emitted when a language model completes its processing. */\r\n LLM_END = 'on_llm_end',\r\n\r\n /** Emitted when a chain starts processing. */\r\n CHAIN_START = 'on_chain_start',\r\n\r\n /** Emitted when a chain streams a chunk of its output. */\r\n CHAIN_STREAM = 'on_chain_stream',\r\n\r\n /** Emitted when a chain completes its processing. */\r\n CHAIN_END = 'on_chain_end',\r\n\r\n /** Emitted when a tool starts its operation. */\r\n TOOL_START = 'on_tool_start',\r\n\r\n /** Emitted when a tool completes its operation. */\r\n TOOL_END = 'on_tool_end',\r\n\r\n /** Emitted when a retriever starts its operation. */\r\n RETRIEVER_START = 'on_retriever_start',\r\n\r\n /** Emitted when a retriever completes its operation. */\r\n RETRIEVER_END = 'on_retriever_end',\r\n\r\n /** Emitted when a prompt starts processing. */\r\n PROMPT_START = 'on_prompt_start',\r\n\r\n /** Emitted when a prompt completes its processing. */\r\n PROMPT_END = 'on_prompt_end',\r\n}\r\n\r\nexport enum Providers {\r\n OPENAI = 'openAI',\r\n BEDROCK_LEGACY = 'bedrock_legacy',\r\n VERTEXAI = 'vertexai',\r\n BEDROCK = 'bedrock',\r\n ANTHROPIC = 'anthropic',\r\n MISTRALAI = 'mistralai',\r\n MISTRAL = 'mistral',\r\n OLLAMA = 'ollama',\r\n GOOGLE = 'google',\r\n AZURE = 'azureOpenAI',\r\n DEEPSEEK = 'deepseek',\r\n OPENROUTER = 'openrouter',\r\n XAI = 'xai',\r\n}\r\n\r\nexport enum GraphNodeKeys {\r\n TOOLS = 'tools',\r\n AGENT = 'agent',\r\n PRE_TOOLS = 'pre_tools',\r\n POST_TOOLS = 'post_tools',\r\n}\r\n\r\nexport enum GraphNodeActions {\r\n TOOL_NODE = 'tool_node',\r\n CALL_MODEL = 'call_model',\r\n ROUTE_MESSAGE = 'route_message',\r\n}\r\n\r\nexport enum CommonEvents {\r\n LANGGRAPH = 'LangGraph',\r\n}\r\n\r\nexport enum StepTypes {\r\n TOOL_CALLS = 'tool_calls',\r\n MESSAGE_CREATION = 'message_creation',\r\n}\r\n\r\nexport enum ContentTypes {\r\n TEXT = 'text',\r\n ERROR = 'error',\r\n THINK = 'think',\r\n TOOL_CALL = 'tool_call',\r\n IMAGE_URL = 'image_url',\r\n IMAGE_FILE = 'image_file',\r\n /** Anthropic */\r\n THINKING = 'thinking',\r\n /** Vertex AI / Google Common */\r\n REASONING = 'reasoning',\r\n /** Multi-Agent Switch */\r\n AGENT_UPDATE = 'agent_update',\r\n /** Bedrock */\r\n REASONING_CONTENT = 'reasoning_content',\r\n}\r\n\r\nexport enum ToolCallTypes {\r\n FUNCTION = 'function',\r\n RETRIEVAL = 'retrieval',\r\n FILE_SEARCH = 'file_search',\r\n CODE_INTERPRETER = 'code_interpreter',\r\n /* Agents Tool Call */\r\n TOOL_CALL = 'tool_call',\r\n}\r\n\r\nexport enum Callback {\r\n TOOL_ERROR = 'handleToolError',\r\n TOOL_START = 'handleToolStart',\r\n TOOL_END = 'handleToolEnd',\r\n /*\r\n LLM_START = 'handleLLMStart',\r\n LLM_NEW_TOKEN = 'handleLLMNewToken',\r\n LLM_ERROR = 'handleLLMError',\r\n LLM_END = 'handleLLMEnd',\r\n CHAT_MODEL_START = 'handleChatModelStart',\r\n CHAIN_START = 'handleChainStart',\r\n CHAIN_ERROR = 'handleChainError',\r\n CHAIN_END = 'handleChainEnd',\r\n TEXT = 'handleText',\r\n AGENT_ACTION = 'handleAgentAction',\r\n AGENT_END = 'handleAgentEnd',\r\n RETRIEVER_START = 'handleRetrieverStart',\r\n RETRIEVER_END = 'handleRetrieverEnd',\r\n RETRIEVER_ERROR = 'handleRetrieverError',\r\n CUSTOM_EVENT = 'handleCustomEvent'\r\n */\r\n}\r\n\r\nexport enum Constants {\r\n OFFICIAL_CODE_BASEURL = 'https://api.illuma.ai/v1',\r\n EXECUTE_CODE = 'execute_code',\r\n WEB_SEARCH = 'web_search',\r\n CONTENT_AND_ARTIFACT = 'content_and_artifact',\r\n}\r\n\r\nexport enum TitleMethod {\r\n STRUCTURED = 'structured',\r\n FUNCTIONS = 'functions',\r\n COMPLETION = 'completion',\r\n}\r\n\r\nexport enum EnvVar {\r\n CODE_API_KEY = 'CODE_EXECUTOR_API_KEY',\r\n CODE_BASEURL = 'CODE_EXECUTOR_API_BASEURL',\r\n}\r\n"],"names":[],"mappings":"AAAA;;;;;AAKG;IACS;AAAZ,CAAA,UAAY,WAAW,EAAA;;;AAIrB,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;;AAEnC,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;;AAE3B,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC;;AAEvC,IAAA,WAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C;;AAE/C,IAAA,WAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;;AAErC,IAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;;;AAKzC,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;;AAEnC,IAAA,WAAA,CAAA,kBAAA,CAAA,GAAA,qBAAwC;;AAGxC,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,sBAA0C;;AAG1C,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,mBAAoC;;AAGpC,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,cAA0B;;AAG1B,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,eAA4B;;AAG5B,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,YAAsB;;AAGtB,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,gBAA8B;;AAG9B,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,iBAAgC;;AAGhC,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,cAA0B;;AAG1B,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,eAA4B;;AAG5B,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,aAAwB;;AAGxB,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,oBAAsC;;AAGtC,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,kBAAkC;;AAGlC,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,iBAAgC;;AAGhC,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,eAA4B;AAC9B,CAAC,EAhEW,WAAW,KAAX,WAAW,GAgEtB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,aAAqB;AACrB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACb,CAAC,EAdW,SAAS,KAAT,SAAS,GAcpB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AAC3B,CAAC,EALW,aAAa,KAAb,aAAa,GAKxB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AACjC,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACzB,CAAC,EAFW,YAAY,KAAZ,YAAY,GAEvB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACvC,CAAC,EAHW,SAAS,KAAT,SAAS,GAGpB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;;AAEzB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;;AAErB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;;AAEvB,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;;AAE7B,IAAA,YAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC;AACzC,CAAC,EAfW,YAAY,KAAZ,YAAY,GAevB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,aAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;;AAErC,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACzB,CAAC,EAPW,aAAa,KAAb,aAAa,GAOxB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,iBAA8B;AAC9B,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,iBAA8B;AAC9B,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,eAA0B;AAC1B;;;;;;;;;;;;;;;;AAgBE;AACJ,CAAC,EArBW,QAAQ,KAAR,QAAQ,GAqBnB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,uBAAA,CAAA,GAAA,0BAAkD;AAClD,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,SAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC/C,CAAC,EALW,SAAS,KAAT,SAAS,GAKpB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AAC3B,CAAC,EAJW,WAAW,KAAX,WAAW,GAItB,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,cAAA,CAAA,GAAA,uBAAsC;AACtC,IAAA,MAAA,CAAA,cAAA,CAAA,GAAA,2BAA0C;AAC5C,CAAC,EAHW,MAAM,KAAN,MAAM,GAGjB,EAAA,CAAA,CAAA;;;;"}
|