@illuma-ai/agents 1.5.1 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -62
- package/dist/cjs/agents/AgentContext.cjs +160 -259
- package/dist/cjs/agents/AgentContext.cjs.map +1 -1
- package/dist/cjs/common/enum.cjs +12 -12
- package/dist/cjs/common/enum.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +30 -13
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/graphs/MultiAgentGraph.cjs +1 -1
- package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
- package/dist/cjs/graphs/phases/memoryFlushPhase.cjs +1 -1
- package/dist/cjs/graphs/phases/memoryFlushPhase.cjs.map +1 -1
- package/dist/cjs/hooks/HookRegistry.cjs +1 -1
- package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
- package/dist/cjs/hooks/matchers.cjs +2 -2
- package/dist/cjs/hooks/matchers.cjs.map +1 -1
- package/dist/cjs/hooks/types.cjs +1 -1
- package/dist/cjs/hooks/types.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +1 -5
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/index.cjs +33 -61
- package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
- package/dist/cjs/llm/openai/index.cjs +1 -1
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/llm/openai/utils/index.cjs +10 -27
- package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
- package/dist/cjs/main.cjs +3 -84
- package/dist/cjs/main.cjs.map +1 -1
- package/dist/cjs/memory/citations.cjs +4 -4
- package/dist/cjs/memory/citations.cjs.map +1 -1
- package/dist/cjs/memory/constants.cjs +17 -17
- package/dist/cjs/memory/constants.cjs.map +1 -1
- package/dist/cjs/memory/mmr.cjs +1 -1
- package/dist/cjs/memory/mmr.cjs.map +1 -1
- package/dist/cjs/memory/paths.cjs +1 -1
- package/dist/cjs/memory/paths.cjs.map +1 -1
- package/dist/cjs/memory/recallTracking.cjs +3 -3
- package/dist/cjs/memory/recallTracking.cjs.map +1 -1
- package/dist/cjs/memory/temporalDecay.cjs +2 -2
- package/dist/cjs/memory/temporalDecay.cjs.map +1 -1
- package/dist/cjs/messages/cache.cjs +0 -89
- package/dist/cjs/messages/cache.cjs.map +1 -1
- package/dist/cjs/messages/format.cjs +13 -71
- package/dist/cjs/messages/format.cjs.map +1 -1
- package/dist/cjs/tools/BashExecutor.cjs +11 -21
- package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
- package/dist/cjs/tools/CodeExecutor.cjs +13 -41
- package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs +11 -16
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/ToolNode.cjs +78 -13
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/memory/memoryAppendTool.cjs +1 -1
- package/dist/cjs/tools/memory/memoryAppendTool.cjs.map +1 -1
- package/dist/cjs/tools/memory/memoryGetTool.cjs +2 -2
- package/dist/cjs/tools/memory/memoryGetTool.cjs.map +1 -1
- package/dist/cjs/tools/memory/memorySearchTool.cjs +3 -3
- package/dist/cjs/tools/memory/memorySearchTool.cjs.map +1 -1
- package/dist/cjs/tools/memory/shared.cjs +1 -1
- package/dist/cjs/tools/memory/shared.cjs.map +1 -1
- package/dist/cjs/tools/search/search.cjs +3 -11
- package/dist/cjs/tools/search/search.cjs.map +1 -1
- package/dist/cjs/tools/search/tool.cjs +4 -28
- package/dist/cjs/tools/search/tool.cjs.map +1 -1
- package/dist/cjs/tools/search/utils.cjs +3 -10
- package/dist/cjs/tools/search/utils.cjs.map +1 -1
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs +48 -0
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
- package/dist/cjs/types/graph.cjs.map +1 -1
- package/dist/esm/agents/AgentContext.mjs +160 -259
- package/dist/esm/agents/AgentContext.mjs.map +1 -1
- package/dist/esm/common/enum.mjs +12 -12
- package/dist/esm/common/enum.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +30 -13
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/graphs/MultiAgentGraph.mjs +1 -1
- package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
- package/dist/esm/graphs/phases/memoryFlushPhase.mjs +1 -1
- package/dist/esm/graphs/phases/memoryFlushPhase.mjs.map +1 -1
- package/dist/esm/hooks/HookRegistry.mjs +1 -1
- package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
- package/dist/esm/hooks/matchers.mjs +2 -2
- package/dist/esm/hooks/matchers.mjs.map +1 -1
- package/dist/esm/hooks/types.mjs +1 -1
- package/dist/esm/hooks/types.mjs.map +1 -1
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs +1 -5
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
- package/dist/esm/llm/bedrock/index.mjs +34 -61
- package/dist/esm/llm/bedrock/index.mjs.map +1 -1
- package/dist/esm/llm/openai/index.mjs +1 -1
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/llm/openai/utils/index.mjs +10 -27
- package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
- package/dist/esm/main.mjs +1 -5
- package/dist/esm/main.mjs.map +1 -1
- package/dist/esm/memory/citations.mjs +4 -4
- package/dist/esm/memory/citations.mjs.map +1 -1
- package/dist/esm/memory/constants.mjs +17 -17
- package/dist/esm/memory/constants.mjs.map +1 -1
- package/dist/esm/memory/mmr.mjs +1 -1
- package/dist/esm/memory/mmr.mjs.map +1 -1
- package/dist/esm/memory/paths.mjs +1 -1
- package/dist/esm/memory/paths.mjs.map +1 -1
- package/dist/esm/memory/recallTracking.mjs +3 -3
- package/dist/esm/memory/recallTracking.mjs.map +1 -1
- package/dist/esm/memory/temporalDecay.mjs +2 -2
- package/dist/esm/memory/temporalDecay.mjs.map +1 -1
- package/dist/esm/messages/cache.mjs +0 -89
- package/dist/esm/messages/cache.mjs.map +1 -1
- package/dist/esm/messages/format.mjs +13 -71
- package/dist/esm/messages/format.mjs.map +1 -1
- package/dist/esm/tools/BashExecutor.mjs +12 -22
- package/dist/esm/tools/BashExecutor.mjs.map +1 -1
- package/dist/esm/tools/CodeExecutor.mjs +14 -41
- package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
- package/dist/esm/tools/ProgrammaticToolCalling.mjs +12 -17
- package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/ToolNode.mjs +78 -13
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/memory/memoryAppendTool.mjs +1 -1
- package/dist/esm/tools/memory/memoryAppendTool.mjs.map +1 -1
- package/dist/esm/tools/memory/memoryGetTool.mjs +2 -2
- package/dist/esm/tools/memory/memoryGetTool.mjs.map +1 -1
- package/dist/esm/tools/memory/memorySearchTool.mjs +3 -3
- package/dist/esm/tools/memory/memorySearchTool.mjs.map +1 -1
- package/dist/esm/tools/memory/shared.mjs +1 -1
- package/dist/esm/tools/memory/shared.mjs.map +1 -1
- package/dist/esm/tools/search/search.mjs +3 -11
- package/dist/esm/tools/search/search.mjs.map +1 -1
- package/dist/esm/tools/search/tool.mjs +4 -28
- package/dist/esm/tools/search/tool.mjs.map +1 -1
- package/dist/esm/tools/search/utils.mjs +3 -10
- package/dist/esm/tools/search/utils.mjs.map +1 -1
- package/dist/esm/tools/subagent/SubagentExecutor.mjs +48 -0
- package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
- package/dist/esm/types/graph.mjs.map +1 -1
- package/dist/types/agents/AgentContext.d.ts +25 -95
- package/dist/types/common/enum.d.ts +12 -12
- package/dist/types/graphs/Graph.d.ts +2 -2
- package/dist/types/graphs/phases/memoryFlushPhase.d.ts +2 -2
- package/dist/types/hooks/HookRegistry.d.ts +1 -1
- package/dist/types/hooks/matchers.d.ts +2 -2
- package/dist/types/hooks/types.d.ts +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/llm/bedrock/index.d.ts +1 -54
- package/dist/types/llm/openai/index.d.ts +1 -1
- package/dist/types/memory/citations.d.ts +4 -4
- package/dist/types/memory/constants.d.ts +17 -17
- package/dist/types/memory/mmr.d.ts +3 -3
- package/dist/types/memory/paths.d.ts +1 -1
- package/dist/types/memory/temporalDecay.d.ts +2 -2
- package/dist/types/memory/types.d.ts +3 -3
- package/dist/types/messages/format.d.ts +2 -5
- package/dist/types/tools/CodeExecutor.d.ts +0 -6
- package/dist/types/tools/ToolNode.d.ts +3 -3
- package/dist/types/tools/memory/shared.d.ts +1 -1
- package/dist/types/tools/search/test.d.ts +1 -0
- package/dist/types/tools/search/types.d.ts +5 -99
- package/dist/types/tools/search/utils.d.ts +2 -2
- package/dist/types/tools/subagent/SubagentExecutor.d.ts +29 -0
- package/dist/types/types/graph.d.ts +30 -34
- package/dist/types/types/index.d.ts +0 -1
- package/dist/types/types/messages.d.ts +1 -1
- package/dist/types/types/run.d.ts +1 -3
- package/dist/types/types/tools.d.ts +5 -14
- package/package.json +1 -61
- package/src/agents/AgentContext.test.ts +176 -0
- package/src/agents/AgentContext.ts +179 -305
- package/src/agents/__tests__/AgentContext.test.ts +0 -632
- package/src/common/__tests__/enum.test.ts +1 -1
- package/src/common/enum.ts +12 -12
- package/src/graphs/Graph.ts +32 -13
- package/src/graphs/MultiAgentGraph.ts +1 -1
- package/src/graphs/gapFeatures.test.ts +1 -1
- package/src/graphs/phases/__tests__/memoryFlushPhase.test.ts +1 -1
- package/src/graphs/phases/memoryFlushPhase.ts +2 -2
- package/src/hooks/HookRegistry.ts +1 -1
- package/src/hooks/index.ts +1 -1
- package/src/hooks/matchers.ts +2 -2
- package/src/hooks/types.ts +1 -1
- package/src/index.ts +0 -6
- package/src/llm/anthropic/utils/message_inputs.ts +1 -10
- package/src/llm/bedrock/__tests__/bedrock-caching.test.ts +18 -166
- package/src/llm/bedrock/index.ts +41 -116
- package/src/llm/openai/index.ts +2 -2
- package/src/llm/openai/utils/index.ts +14 -31
- package/src/memory/citations.ts +4 -4
- package/src/memory/constants.ts +17 -17
- package/src/memory/mmr.ts +3 -3
- package/src/memory/paths.ts +1 -1
- package/src/memory/recallTracking.ts +3 -3
- package/src/memory/temporalDecay.ts +2 -2
- package/src/memory/types.ts +3 -3
- package/src/messages/cache.test.ts +24 -62
- package/src/messages/cache.ts +0 -112
- package/src/messages/ensureThinkingBlock.test.ts +1 -1
- package/src/messages/format.ts +13 -92
- package/src/messages/formatAgentMessages.test.ts +1 -1
- package/src/scripts/subagent-configurable-inheritance.ts +263 -0
- package/src/scripts/subagent-event-driven-debug.ts +2 -2
- package/src/specs/anthropic.simple.test.ts +0 -61
- package/src/specs/prune.orphans.test.ts +1 -1
- package/src/tools/BashExecutor.ts +13 -37
- package/src/tools/CodeExecutor.ts +14 -59
- package/src/tools/ProgrammaticToolCalling.ts +14 -29
- package/src/tools/ToolNode.ts +75 -14
- package/src/tools/__tests__/CodeExecutor.test.ts +3 -3
- package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +0 -60
- package/src/tools/__tests__/SubagentExecutor.test.ts +157 -0
- package/src/tools/memory/memoryAppendTool.ts +1 -1
- package/src/tools/memory/memoryGetTool.ts +2 -2
- package/src/tools/memory/memorySearchTool.ts +3 -3
- package/src/tools/memory/shared.ts +1 -1
- package/src/tools/search/output.md +2775 -0
- package/src/tools/search/search.ts +2 -12
- 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 +2 -36
- package/src/tools/search/types.ts +8 -133
- package/src/tools/search/utils.ts +5 -13
- package/src/tools/subagent/SubagentExecutor.ts +78 -0
- package/src/types/graph.ts +27 -34
- package/src/types/index.ts +0 -1
- package/src/types/messages.ts +1 -1
- package/src/types/run.ts +1 -3
- package/src/types/tools.ts +5 -14
- package/dist/cjs/langchain/google-common.cjs +0 -3
- package/dist/cjs/langchain/google-common.cjs.map +0 -1
- package/dist/cjs/langchain/index.cjs +0 -86
- package/dist/cjs/langchain/index.cjs.map +0 -1
- package/dist/cjs/langchain/language_models/chat_models.cjs +0 -3
- package/dist/cjs/langchain/language_models/chat_models.cjs.map +0 -1
- package/dist/cjs/langchain/messages/tool.cjs +0 -3
- package/dist/cjs/langchain/messages/tool.cjs.map +0 -1
- package/dist/cjs/langchain/messages.cjs +0 -51
- package/dist/cjs/langchain/messages.cjs.map +0 -1
- package/dist/cjs/langchain/openai.cjs +0 -3
- package/dist/cjs/langchain/openai.cjs.map +0 -1
- package/dist/cjs/langchain/prompts.cjs +0 -11
- package/dist/cjs/langchain/prompts.cjs.map +0 -1
- package/dist/cjs/langchain/runnables.cjs +0 -19
- package/dist/cjs/langchain/runnables.cjs.map +0 -1
- package/dist/cjs/langchain/tools.cjs +0 -23
- package/dist/cjs/langchain/tools.cjs.map +0 -1
- package/dist/cjs/langchain/utils/env.cjs +0 -11
- package/dist/cjs/langchain/utils/env.cjs.map +0 -1
- package/dist/cjs/llm/bedrock/cacheSupport.cjs +0 -55
- package/dist/cjs/llm/bedrock/cacheSupport.cjs.map +0 -1
- package/dist/cjs/tools/search/tavily-scraper.cjs +0 -189
- package/dist/cjs/tools/search/tavily-scraper.cjs.map +0 -1
- package/dist/cjs/tools/search/tavily-search.cjs +0 -372
- package/dist/cjs/tools/search/tavily-search.cjs.map +0 -1
- package/dist/cjs/types/agent-cache.cjs +0 -54
- package/dist/cjs/types/agent-cache.cjs.map +0 -1
- package/dist/esm/langchain/google-common.mjs +0 -2
- package/dist/esm/langchain/google-common.mjs.map +0 -1
- package/dist/esm/langchain/index.mjs +0 -5
- package/dist/esm/langchain/index.mjs.map +0 -1
- package/dist/esm/langchain/language_models/chat_models.mjs +0 -2
- package/dist/esm/langchain/language_models/chat_models.mjs.map +0 -1
- package/dist/esm/langchain/messages/tool.mjs +0 -2
- package/dist/esm/langchain/messages/tool.mjs.map +0 -1
- package/dist/esm/langchain/messages.mjs +0 -2
- package/dist/esm/langchain/messages.mjs.map +0 -1
- package/dist/esm/langchain/openai.mjs +0 -2
- package/dist/esm/langchain/openai.mjs.map +0 -1
- package/dist/esm/langchain/prompts.mjs +0 -2
- package/dist/esm/langchain/prompts.mjs.map +0 -1
- package/dist/esm/langchain/runnables.mjs +0 -2
- package/dist/esm/langchain/runnables.mjs.map +0 -1
- package/dist/esm/langchain/tools.mjs +0 -2
- package/dist/esm/langchain/tools.mjs.map +0 -1
- package/dist/esm/langchain/utils/env.mjs +0 -2
- package/dist/esm/langchain/utils/env.mjs.map +0 -1
- package/dist/esm/llm/bedrock/cacheSupport.mjs +0 -52
- package/dist/esm/llm/bedrock/cacheSupport.mjs.map +0 -1
- package/dist/esm/tools/search/tavily-scraper.mjs +0 -186
- package/dist/esm/tools/search/tavily-scraper.mjs.map +0 -1
- package/dist/esm/tools/search/tavily-search.mjs +0 -370
- package/dist/esm/tools/search/tavily-search.mjs.map +0 -1
- package/dist/esm/types/agent-cache.mjs +0 -52
- package/dist/esm/types/agent-cache.mjs.map +0 -1
- package/dist/types/langchain/google-common.d.ts +0 -1
- package/dist/types/langchain/index.d.ts +0 -8
- package/dist/types/langchain/language_models/chat_models.d.ts +0 -1
- package/dist/types/langchain/messages/tool.d.ts +0 -1
- package/dist/types/langchain/messages.d.ts +0 -2
- package/dist/types/langchain/openai.d.ts +0 -1
- package/dist/types/langchain/prompts.d.ts +0 -1
- package/dist/types/langchain/runnables.d.ts +0 -2
- package/dist/types/langchain/tools.d.ts +0 -2
- package/dist/types/langchain/utils/env.d.ts +0 -1
- package/dist/types/llm/bedrock/cacheSupport.d.ts +0 -35
- package/dist/types/tools/search/tavily-scraper.d.ts +0 -19
- package/dist/types/tools/search/tavily-search.d.ts +0 -4
- package/dist/types/tools/subagent/types.d.ts +0 -84
- package/dist/types/types/agent-cache.d.ts +0 -71
- package/src/agents/__tests__/AgentContext.cacheTtl.live.test.ts +0 -259
- package/src/agents/__tests__/AgentContext.crossAgentTier1.live.test.ts +0 -266
- package/src/agents/__tests__/AgentContext.crossUserCache.live.test.ts +0 -342
- package/src/langchain/google-common.ts +0 -1
- package/src/langchain/index.ts +0 -8
- package/src/langchain/language_models/chat_models.ts +0 -1
- package/src/langchain/messages/tool.ts +0 -5
- package/src/langchain/messages.ts +0 -21
- package/src/langchain/openai.ts +0 -1
- package/src/langchain/prompts.ts +0 -1
- package/src/langchain/runnables.ts +0 -7
- package/src/langchain/tools.ts +0 -8
- package/src/langchain/utils/env.ts +0 -1
- package/src/llm/anthropic/utils/server-tool-inputs.test.ts +0 -436
- package/src/llm/bedrock/cacheSupport.test.ts +0 -99
- package/src/llm/bedrock/cacheSupport.ts +0 -53
- package/src/tools/search/tavily-scraper.ts +0 -235
- package/src/tools/search/tavily-search.ts +0 -424
- package/src/tools/search/tavily.test.ts +0 -965
- package/src/tools/subagent/types.test.ts +0 -70
- package/src/tools/subagent/types.ts +0 -115
- package/src/types/agent-cache.ts +0 -74
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Agent system-message prompt-cache types.
|
|
5
|
-
* ==========================================
|
|
6
|
-
*
|
|
7
|
-
* `@illuma-ai/agents` exposes a generic primitive — `system_cache_blocks` —
|
|
8
|
-
* for composing a system message that gets explicit cache markers
|
|
9
|
-
* (cachePoint on Bedrock, cache_control on Anthropic) at consumer-defined
|
|
10
|
-
* boundaries. The library encodes each entry into the right wire format
|
|
11
|
-
* for the active provider; consumers decide what content to put in each
|
|
12
|
-
* block.
|
|
13
|
-
*
|
|
14
|
-
* Why this is generic rather than tier-named
|
|
15
|
-
* ------------------------------------------------
|
|
16
|
-
* Earlier iterations exposed `platform_instructions` and `cache_ttl:
|
|
17
|
-
* { platform, agent }` — vocabulary borrowed from a specific consumer's
|
|
18
|
-
* multi-tenant chat-platform mental model. That leaked one consumer's
|
|
19
|
-
* domain into the library and made it confusing for other consumers
|
|
20
|
-
* (CLI tools, desktop apps, gateways) which have no notion of
|
|
21
|
-
* "platforms" or "agents".
|
|
22
|
-
*
|
|
23
|
-
* The current shape lets every consumer define their own cache-tier
|
|
24
|
-
* organization without the library knowing or caring.
|
|
25
|
-
*
|
|
26
|
-
* Cache key composition
|
|
27
|
-
* ---------------------
|
|
28
|
-
* Both Anthropic and Bedrock hash the message bytes leading up to each
|
|
29
|
-
* cache marker. So entry N's cache key is the concatenation of bytes
|
|
30
|
-
* 0..N. Stable content (universal rules, framework docs) goes earlier;
|
|
31
|
-
* volatile content (per-agent identity, per-tool docs) goes later. The
|
|
32
|
-
* earlier entries get cross-tenant cache hits; the later entries get
|
|
33
|
-
* narrower hits.
|
|
34
|
-
*
|
|
35
|
-
* Provider budget
|
|
36
|
-
* ---------------
|
|
37
|
-
* Bedrock's Converse API supports up to 4 cachePoint blocks per request.
|
|
38
|
-
* The default tools-array cache strategy (see `IllumaBedrockConverse`)
|
|
39
|
-
* uses up to 2 of those. So at most 2 entries should appear in
|
|
40
|
-
* `system_cache_blocks` to leave budget for the trailing
|
|
41
|
-
* `instructions` block. The library throws on more than 2.
|
|
42
|
-
*
|
|
43
|
-
* Anthropic supports up to 4 cache breakpoints per request workspace-wide;
|
|
44
|
-
* the same constraint applies to keep tools + system within budget.
|
|
45
|
-
*/
|
|
46
|
-
/**
|
|
47
|
-
* Maximum number of `system_cache_blocks` entries the library accepts.
|
|
48
|
-
* Higher than this would exceed Bedrock's 4-cachePoint budget once the
|
|
49
|
-
* tools array and trailing `instructions` block are counted.
|
|
50
|
-
*/
|
|
51
|
-
const MAX_SYSTEM_CACHE_BLOCKS = 2;
|
|
52
|
-
|
|
53
|
-
exports.MAX_SYSTEM_CACHE_BLOCKS = MAX_SYSTEM_CACHE_BLOCKS;
|
|
54
|
-
//# sourceMappingURL=agent-cache.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-cache.cjs","sources":["../../../src/types/agent-cache.ts"],"sourcesContent":["/**\n * Agent system-message prompt-cache types.\n * ==========================================\n *\n * `@illuma-ai/agents` exposes a generic primitive — `system_cache_blocks` —\n * for composing a system message that gets explicit cache markers\n * (cachePoint on Bedrock, cache_control on Anthropic) at consumer-defined\n * boundaries. The library encodes each entry into the right wire format\n * for the active provider; consumers decide what content to put in each\n * block.\n *\n * Why this is generic rather than tier-named\n * ------------------------------------------------\n * Earlier iterations exposed `platform_instructions` and `cache_ttl:\n * { platform, agent }` — vocabulary borrowed from a specific consumer's\n * multi-tenant chat-platform mental model. That leaked one consumer's\n * domain into the library and made it confusing for other consumers\n * (CLI tools, desktop apps, gateways) which have no notion of\n * \"platforms\" or \"agents\".\n *\n * The current shape lets every consumer define their own cache-tier\n * organization without the library knowing or caring.\n *\n * Cache key composition\n * ---------------------\n * Both Anthropic and Bedrock hash the message bytes leading up to each\n * cache marker. So entry N's cache key is the concatenation of bytes\n * 0..N. Stable content (universal rules, framework docs) goes earlier;\n * volatile content (per-agent identity, per-tool docs) goes later. The\n * earlier entries get cross-tenant cache hits; the later entries get\n * narrower hits.\n *\n * Provider budget\n * ---------------\n * Bedrock's Converse API supports up to 4 cachePoint blocks per request.\n * The default tools-array cache strategy (see `IllumaBedrockConverse`)\n * uses up to 2 of those. So at most 2 entries should appear in\n * `system_cache_blocks` to leave budget for the trailing\n * `instructions` block. The library throws on more than 2.\n *\n * Anthropic supports up to 4 cache breakpoints per request workspace-wide;\n * the same constraint applies to keep tools + system within budget.\n */\n\n/** Provider TTL hint applied to a cachePoint / cache_control marker. */\nexport type AgentCacheTTL = '5m' | '1h';\n\n/**\n * One cacheable system content block. Each entry produces a text block\n * followed by a provider-specific cache marker in the assembled system\n * message. Entries are emitted in array order — earlier = more stable\n * = wider cache key.\n */\nexport interface SystemCacheBlock {\n /**\n * Text payload. Caller is responsible for keeping this byte-stable\n * across requests that should share a cache entry. ANY change to\n * these bytes invalidates every cache key that includes this entry.\n */\n text: string;\n /**\n * Optional TTL hint for the cache marker. Defaults to '5m' when\n * omitted. '1h' costs more to write (2× base vs 1.25×) but survives\n * longer idle, which is the right tradeoff for low-traffic blocks.\n */\n ttl?: AgentCacheTTL;\n}\n\n/**\n * Maximum number of `system_cache_blocks` entries the library accepts.\n * Higher than this would exceed Bedrock's 4-cachePoint budget once the\n * tools array and trailing `instructions` block are counted.\n */\nexport const MAX_SYSTEM_CACHE_BLOCKS = 2;\n"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CG;AA0BH;;;;AAIG;AACI,MAAM,uBAAuB,GAAG;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"google-common.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { AIMessage, AIMessageChunk, BaseMessage, BaseMessageChunk, HumanMessage, SystemMessage, ToolMessage, getBufferString, isAIMessage, isBaseMessage, isToolMessage } from '@langchain/core/messages';
|
|
2
|
-
export { PromptTemplate } from '@langchain/core/prompts';
|
|
3
|
-
export { Runnable, RunnableLambda, RunnableSequence } from '@langchain/core/runnables';
|
|
4
|
-
export { DynamicStructuredTool, StructuredTool, Tool, tool } from '@langchain/core/tools';
|
|
5
|
-
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat_models.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messages.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runnables.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bedrock prompt-cache model support detection.
|
|
3
|
-
* ===============================================
|
|
4
|
-
*
|
|
5
|
-
* Bedrock prompt caching (via `cachePoint` blocks) is only supported on
|
|
6
|
-
* specific model families. Other families silently reject or ignore the
|
|
7
|
-
* markers. We maintain an allowlist instead of a substring heuristic so
|
|
8
|
-
* a future model with an unfortunate name (e.g. `llama-claude-killer`)
|
|
9
|
-
* doesn't accidentally match.
|
|
10
|
-
*
|
|
11
|
-
* Consumers can extend the allowlist with `bedrockCacheModelPatterns` in
|
|
12
|
-
* `clientOptions` for proprietary or pre-release model IDs not yet in
|
|
13
|
-
* the reference library.
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Default allowlist of Bedrock model ID patterns that support cachePoint.
|
|
17
|
-
* Sourced from AWS Bedrock documentation (verified against us-east-1
|
|
18
|
-
* 2026-05).
|
|
19
|
-
*
|
|
20
|
-
* Adding a new model: append a RegExp here AND add a regression test in
|
|
21
|
-
* `cacheSupport.test.ts` covering at least one full model ID for that
|
|
22
|
-
* family. Removing a model: do not remove without operator confirmation
|
|
23
|
-
* — silent removal would suddenly stop emitting cachePoint markers and
|
|
24
|
-
* regress cost savings.
|
|
25
|
-
*/
|
|
26
|
-
const DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS = [
|
|
27
|
-
// Anthropic Claude family (anthropic.claude-* and us.anthropic.claude-*)
|
|
28
|
-
/(?:^|[/.])anthropic\.claude-/i,
|
|
29
|
-
/(?:^|\.)us\.anthropic\.claude-/i,
|
|
30
|
-
// Amazon Nova family (nova-pro, nova-lite, nova-canvas, etc.)
|
|
31
|
-
/(?:^|[/.])amazon\.nova-/i,
|
|
32
|
-
/(?:^|\.)us\.amazon\.nova-/i,
|
|
33
|
-
];
|
|
34
|
-
/**
|
|
35
|
-
* Returns true when the given Bedrock model ID belongs to a family that
|
|
36
|
-
* supports cachePoint blocks. `additionalPatterns` lets consumers extend
|
|
37
|
-
* the allowlist for models the library doesn't know about yet.
|
|
38
|
-
*
|
|
39
|
-
* @param modelId Bedrock model ID (e.g. `us.anthropic.claude-sonnet-4-5-20250929-v1:0`)
|
|
40
|
-
* @param additionalPatterns Extra patterns from consumer config
|
|
41
|
-
*/
|
|
42
|
-
function isBedrockCacheSupported(modelId, additionalPatterns) {
|
|
43
|
-
if (!modelId)
|
|
44
|
-
return false;
|
|
45
|
-
const allPatterns = additionalPatterns
|
|
46
|
-
? [...DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS, ...additionalPatterns]
|
|
47
|
-
: DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS;
|
|
48
|
-
return allPatterns.some((p) => p.test(modelId));
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export { DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS, isBedrockCacheSupported };
|
|
52
|
-
//# sourceMappingURL=cacheSupport.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cacheSupport.mjs","sources":["../../../../src/llm/bedrock/cacheSupport.ts"],"sourcesContent":["/**\n * Bedrock prompt-cache model support detection.\n * ===============================================\n *\n * Bedrock prompt caching (via `cachePoint` blocks) is only supported on\n * specific model families. Other families silently reject or ignore the\n * markers. We maintain an allowlist instead of a substring heuristic so\n * a future model with an unfortunate name (e.g. `llama-claude-killer`)\n * doesn't accidentally match.\n *\n * Consumers can extend the allowlist with `bedrockCacheModelPatterns` in\n * `clientOptions` for proprietary or pre-release model IDs not yet in\n * the reference library.\n */\n\n/**\n * Default allowlist of Bedrock model ID patterns that support cachePoint.\n * Sourced from AWS Bedrock documentation (verified against us-east-1\n * 2026-05).\n *\n * Adding a new model: append a RegExp here AND add a regression test in\n * `cacheSupport.test.ts` covering at least one full model ID for that\n * family. Removing a model: do not remove without operator confirmation\n * — silent removal would suddenly stop emitting cachePoint markers and\n * regress cost savings.\n */\nexport const DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS: readonly RegExp[] = [\n // Anthropic Claude family (anthropic.claude-* and us.anthropic.claude-*)\n /(?:^|[/.])anthropic\\.claude-/i,\n /(?:^|\\.)us\\.anthropic\\.claude-/i,\n // Amazon Nova family (nova-pro, nova-lite, nova-canvas, etc.)\n /(?:^|[/.])amazon\\.nova-/i,\n /(?:^|\\.)us\\.amazon\\.nova-/i,\n];\n\n/**\n * Returns true when the given Bedrock model ID belongs to a family that\n * supports cachePoint blocks. `additionalPatterns` lets consumers extend\n * the allowlist for models the library doesn't know about yet.\n *\n * @param modelId Bedrock model ID (e.g. `us.anthropic.claude-sonnet-4-5-20250929-v1:0`)\n * @param additionalPatterns Extra patterns from consumer config\n */\nexport function isBedrockCacheSupported(\n modelId: string | undefined,\n additionalPatterns?: readonly RegExp[],\n): boolean {\n if (!modelId) return false;\n const allPatterns = additionalPatterns\n ? [...DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS, ...additionalPatterns]\n : DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS;\n return allPatterns.some((p) => p.test(modelId));\n}\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;AAaG;AAEH;;;;;;;;;;AAUG;AACI,MAAM,oCAAoC,GAAsB;;IAErE,+BAA+B;IAC/B,iCAAiC;;IAEjC,0BAA0B;IAC1B,4BAA4B;;AAG9B;;;;;;;AAOG;AACG,SAAU,uBAAuB,CACrC,OAA2B,EAC3B,kBAAsC,EAAA;AAEtC,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,KAAK;IAC1B,MAAM,WAAW,GAAG;AAClB,UAAE,CAAC,GAAG,oCAAoC,EAAE,GAAG,kBAAkB;UAC/D,oCAAoC;AACxC,IAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjD;;;;"}
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import { createDefaultLogger } from './utils.mjs';
|
|
3
|
-
|
|
4
|
-
const DEFAULT_BASIC_TIMEOUT = 15000;
|
|
5
|
-
const DEFAULT_ADVANCED_TIMEOUT = 30000;
|
|
6
|
-
const MAX_BATCH_SIZE = 20;
|
|
7
|
-
const getDefaultTimeout = (extractDepth) => extractDepth === 'advanced'
|
|
8
|
-
? DEFAULT_ADVANCED_TIMEOUT
|
|
9
|
-
: DEFAULT_BASIC_TIMEOUT;
|
|
10
|
-
const normalizeUrlKey = (url) => {
|
|
11
|
-
try {
|
|
12
|
-
const parsedUrl = new URL(url);
|
|
13
|
-
parsedUrl.hash = '';
|
|
14
|
-
if (parsedUrl.pathname.length > 1) {
|
|
15
|
-
parsedUrl.pathname = parsedUrl.pathname.replace(/\/+$/, '');
|
|
16
|
-
}
|
|
17
|
-
return parsedUrl.toString();
|
|
18
|
-
}
|
|
19
|
-
catch {
|
|
20
|
-
return url;
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
const setUrlResult = (map, result) => {
|
|
24
|
-
map.set(result.url, result);
|
|
25
|
-
const normalizedUrl = normalizeUrlKey(result.url);
|
|
26
|
-
if (!map.has(normalizedUrl)) {
|
|
27
|
-
map.set(normalizedUrl, result);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
class TavilyScraper {
|
|
31
|
-
apiKey;
|
|
32
|
-
apiUrl;
|
|
33
|
-
timeout;
|
|
34
|
-
payloadTimeout;
|
|
35
|
-
logger;
|
|
36
|
-
extractDepth;
|
|
37
|
-
includeImages;
|
|
38
|
-
includeFavicon;
|
|
39
|
-
format;
|
|
40
|
-
constructor(config = {}) {
|
|
41
|
-
this.apiKey = config.apiKey ?? process.env.TAVILY_API_KEY ?? '';
|
|
42
|
-
this.apiUrl =
|
|
43
|
-
config.apiUrl ??
|
|
44
|
-
process.env.TAVILY_EXTRACT_URL ??
|
|
45
|
-
'https://api.tavily.com/extract';
|
|
46
|
-
this.payloadTimeout = config.timeout;
|
|
47
|
-
this.extractDepth = config.extractDepth ?? 'basic';
|
|
48
|
-
this.timeout = config.timeout ?? getDefaultTimeout(this.extractDepth);
|
|
49
|
-
this.includeImages = config.includeImages ?? false;
|
|
50
|
-
this.includeFavicon = config.includeFavicon ?? false;
|
|
51
|
-
this.format = config.format;
|
|
52
|
-
this.logger = config.logger || createDefaultLogger();
|
|
53
|
-
if (!this.apiKey) {
|
|
54
|
-
this.logger.warn('TAVILY_API_KEY is not set. Scraping will not work.');
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
async scrapeUrl(url, options = {}) {
|
|
58
|
-
const results = await this.scrapeUrls([url], options);
|
|
59
|
-
return results[0];
|
|
60
|
-
}
|
|
61
|
-
async scrapeUrls(urls, options = {}) {
|
|
62
|
-
if (!this.apiKey) {
|
|
63
|
-
return urls.map((url) => [
|
|
64
|
-
url,
|
|
65
|
-
{ success: false, error: 'TAVILY_API_KEY is not set' },
|
|
66
|
-
]);
|
|
67
|
-
}
|
|
68
|
-
const batches = [];
|
|
69
|
-
for (let i = 0; i < urls.length; i += MAX_BATCH_SIZE) {
|
|
70
|
-
batches.push(urls.slice(i, i + MAX_BATCH_SIZE));
|
|
71
|
-
}
|
|
72
|
-
const allResults = [];
|
|
73
|
-
for (const batch of batches) {
|
|
74
|
-
const batchResults = await this.extractBatch(batch, options);
|
|
75
|
-
allResults.push(...batchResults);
|
|
76
|
-
}
|
|
77
|
-
return allResults;
|
|
78
|
-
}
|
|
79
|
-
async extractBatch(urls, options = {}) {
|
|
80
|
-
try {
|
|
81
|
-
const includeFavicon = options.includeFavicon ?? this.includeFavicon;
|
|
82
|
-
const format = options.format ?? this.format;
|
|
83
|
-
const extractDepth = options.extractDepth ?? this.extractDepth;
|
|
84
|
-
const payload = {
|
|
85
|
-
urls,
|
|
86
|
-
extract_depth: extractDepth,
|
|
87
|
-
include_images: options.includeImages ?? this.includeImages,
|
|
88
|
-
};
|
|
89
|
-
if (includeFavicon) {
|
|
90
|
-
payload.include_favicon = true;
|
|
91
|
-
}
|
|
92
|
-
if (format != null) {
|
|
93
|
-
payload.format = format;
|
|
94
|
-
}
|
|
95
|
-
const effectiveTimeout = options.timeout ??
|
|
96
|
-
this.payloadTimeout ??
|
|
97
|
-
(options.extractDepth != null
|
|
98
|
-
? getDefaultTimeout(extractDepth)
|
|
99
|
-
: this.timeout);
|
|
100
|
-
const payloadTimeout = options.timeout ?? this.payloadTimeout;
|
|
101
|
-
if (payloadTimeout != null) {
|
|
102
|
-
payload.timeout = Math.min(Math.max(payloadTimeout / 1000, 1), 60);
|
|
103
|
-
}
|
|
104
|
-
const response = await axios.post(this.apiUrl, payload, {
|
|
105
|
-
headers: {
|
|
106
|
-
Authorization: `Bearer ${this.apiKey}`,
|
|
107
|
-
'Content-Type': 'application/json',
|
|
108
|
-
},
|
|
109
|
-
timeout: effectiveTimeout,
|
|
110
|
-
});
|
|
111
|
-
const data = response.data;
|
|
112
|
-
const successMap = new Map();
|
|
113
|
-
const failedMap = new Map();
|
|
114
|
-
for (const result of data.results ?? []) {
|
|
115
|
-
setUrlResult(successMap, result);
|
|
116
|
-
}
|
|
117
|
-
for (const result of data.failed_results ?? []) {
|
|
118
|
-
setUrlResult(failedMap, result);
|
|
119
|
-
}
|
|
120
|
-
return urls.map((url) => {
|
|
121
|
-
const success = successMap.get(url) ?? successMap.get(normalizeUrlKey(url));
|
|
122
|
-
if (success && success.error == null) {
|
|
123
|
-
return [
|
|
124
|
-
url,
|
|
125
|
-
{
|
|
126
|
-
success: true,
|
|
127
|
-
data: {
|
|
128
|
-
rawContent: success.raw_content ?? '',
|
|
129
|
-
images: success.images ?? [],
|
|
130
|
-
favicon: success.favicon,
|
|
131
|
-
},
|
|
132
|
-
},
|
|
133
|
-
];
|
|
134
|
-
}
|
|
135
|
-
const failed = failedMap.get(url) ?? failedMap.get(normalizeUrlKey(url));
|
|
136
|
-
const error = success?.error ??
|
|
137
|
-
failed?.error ??
|
|
138
|
-
'URL not found in Tavily Extract response';
|
|
139
|
-
return [url, { success: false, error }];
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
144
|
-
return urls.map((url) => [
|
|
145
|
-
url,
|
|
146
|
-
{
|
|
147
|
-
success: false,
|
|
148
|
-
error: `Tavily Extract API request failed: ${errorMessage}`,
|
|
149
|
-
},
|
|
150
|
-
]);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
extractContent(response) {
|
|
154
|
-
if (!response.success || !response.data) {
|
|
155
|
-
return ['', undefined];
|
|
156
|
-
}
|
|
157
|
-
const content = response.data.rawContent ?? '';
|
|
158
|
-
const images = response.data.images ?? [];
|
|
159
|
-
const references = images.length > 0
|
|
160
|
-
? {
|
|
161
|
-
links: [],
|
|
162
|
-
images: images.map((imageUrl) => ({ originalUrl: imageUrl })),
|
|
163
|
-
videos: [],
|
|
164
|
-
}
|
|
165
|
-
: undefined;
|
|
166
|
-
return [content, references];
|
|
167
|
-
}
|
|
168
|
-
extractMetadata(response) {
|
|
169
|
-
if (!response.success || !response.data) {
|
|
170
|
-
return {};
|
|
171
|
-
}
|
|
172
|
-
const metadata = {
|
|
173
|
-
images_count: response.data.images?.length ?? 0,
|
|
174
|
-
};
|
|
175
|
-
if (response.data.favicon != null) {
|
|
176
|
-
metadata.favicon = response.data.favicon;
|
|
177
|
-
}
|
|
178
|
-
return metadata;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
const createTavilyScraper = (config = {}) => {
|
|
182
|
-
return new TavilyScraper(config);
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
export { TavilyScraper, createTavilyScraper };
|
|
186
|
-
//# sourceMappingURL=tavily-scraper.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tavily-scraper.mjs","sources":["../../../../src/tools/search/tavily-scraper.ts"],"sourcesContent":["import axios from 'axios';\nimport type * as t from './types';\nimport { createDefaultLogger } from './utils';\n\nconst DEFAULT_BASIC_TIMEOUT = 15000;\nconst DEFAULT_ADVANCED_TIMEOUT = 30000;\nconst MAX_BATCH_SIZE = 20;\n\nconst getDefaultTimeout = (extractDepth: 'basic' | 'advanced'): number =>\n extractDepth === 'advanced'\n ? DEFAULT_ADVANCED_TIMEOUT\n : DEFAULT_BASIC_TIMEOUT;\n\nconst normalizeUrlKey = (url: string): string => {\n try {\n const parsedUrl = new URL(url);\n parsedUrl.hash = '';\n if (parsedUrl.pathname.length > 1) {\n parsedUrl.pathname = parsedUrl.pathname.replace(/\\/+$/, '');\n }\n return parsedUrl.toString();\n } catch {\n return url;\n }\n};\n\nconst setUrlResult = (\n map: Map<string, t.TavilyExtractResult>,\n result: t.TavilyExtractResult\n): void => {\n map.set(result.url, result);\n const normalizedUrl = normalizeUrlKey(result.url);\n if (!map.has(normalizedUrl)) {\n map.set(normalizedUrl, result);\n }\n};\n\nexport class TavilyScraper implements t.BaseScraper {\n private apiKey: string;\n private apiUrl: string;\n private timeout: number;\n private payloadTimeout: number | undefined;\n private logger: t.Logger;\n private extractDepth: 'basic' | 'advanced';\n private includeImages: boolean;\n private includeFavicon: boolean;\n private format: 'markdown' | 'text' | undefined;\n\n constructor(config: t.TavilyScraperConfig = {}) {\n this.apiKey = config.apiKey ?? process.env.TAVILY_API_KEY ?? '';\n this.apiUrl =\n config.apiUrl ??\n process.env.TAVILY_EXTRACT_URL ??\n 'https://api.tavily.com/extract';\n this.payloadTimeout = config.timeout;\n this.extractDepth = config.extractDepth ?? 'basic';\n this.timeout = config.timeout ?? getDefaultTimeout(this.extractDepth);\n this.includeImages = config.includeImages ?? false;\n this.includeFavicon = config.includeFavicon ?? false;\n this.format = config.format;\n this.logger = config.logger || createDefaultLogger();\n\n if (!this.apiKey) {\n this.logger.warn('TAVILY_API_KEY is not set. Scraping will not work.');\n }\n }\n\n async scrapeUrl(\n url: string,\n options: t.TavilyScrapeOptions = {}\n ): Promise<[string, t.TavilyScrapeResponse]> {\n const results = await this.scrapeUrls([url], options);\n return results[0];\n }\n\n async scrapeUrls(\n urls: string[],\n options: t.TavilyScrapeOptions = {}\n ): Promise<Array<[string, t.TavilyScrapeResponse]>> {\n if (!this.apiKey) {\n return urls.map((url) => [\n url,\n { success: false, error: 'TAVILY_API_KEY is not set' },\n ]);\n }\n\n const batches: string[][] = [];\n for (let i = 0; i < urls.length; i += MAX_BATCH_SIZE) {\n batches.push(urls.slice(i, i + MAX_BATCH_SIZE));\n }\n\n const allResults: Array<[string, t.TavilyScrapeResponse]> = [];\n\n for (const batch of batches) {\n const batchResults = await this.extractBatch(batch, options);\n allResults.push(...batchResults);\n }\n\n return allResults;\n }\n\n private async extractBatch(\n urls: string[],\n options: t.TavilyScrapeOptions = {}\n ): Promise<Array<[string, t.TavilyScrapeResponse]>> {\n try {\n const includeFavicon = options.includeFavicon ?? this.includeFavicon;\n const format = options.format ?? this.format;\n const extractDepth = options.extractDepth ?? this.extractDepth;\n const payload: t.TavilyExtractPayload = {\n urls,\n extract_depth: extractDepth,\n include_images: options.includeImages ?? this.includeImages,\n };\n\n if (includeFavicon) {\n payload.include_favicon = true;\n }\n if (format != null) {\n payload.format = format;\n }\n\n const effectiveTimeout =\n options.timeout ??\n this.payloadTimeout ??\n (options.extractDepth != null\n ? getDefaultTimeout(extractDepth)\n : this.timeout);\n const payloadTimeout = options.timeout ?? this.payloadTimeout;\n if (payloadTimeout != null) {\n payload.timeout = Math.min(Math.max(payloadTimeout / 1000, 1), 60);\n }\n\n const response = await axios.post<{\n results?: t.TavilyExtractResult[];\n failed_results?: t.TavilyExtractResult[];\n }>(this.apiUrl, payload, {\n headers: {\n Authorization: `Bearer ${this.apiKey}`,\n 'Content-Type': 'application/json',\n },\n timeout: effectiveTimeout,\n });\n\n const data = response.data;\n const successMap = new Map<string, t.TavilyExtractResult>();\n const failedMap = new Map<string, t.TavilyExtractResult>();\n\n for (const result of data.results ?? []) {\n setUrlResult(successMap, result);\n }\n for (const result of data.failed_results ?? []) {\n setUrlResult(failedMap, result);\n }\n\n return urls.map((url): [string, t.TavilyScrapeResponse] => {\n const success =\n successMap.get(url) ?? successMap.get(normalizeUrlKey(url));\n if (success && success.error == null) {\n return [\n url,\n {\n success: true,\n data: {\n rawContent: success.raw_content ?? '',\n images: success.images ?? [],\n favicon: success.favicon,\n },\n },\n ];\n }\n\n const failed =\n failedMap.get(url) ?? failedMap.get(normalizeUrlKey(url));\n const error =\n success?.error ??\n failed?.error ??\n 'URL not found in Tavily Extract response';\n return [url, { success: false, error }];\n });\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n return urls.map((url) => [\n url,\n {\n success: false,\n error: `Tavily Extract API request failed: ${errorMessage}`,\n },\n ]);\n }\n }\n\n extractContent(\n response: t.TavilyScrapeResponse\n ): [string, undefined | t.References] {\n if (!response.success || !response.data) {\n return ['', undefined];\n }\n\n const content = response.data.rawContent ?? '';\n const images = response.data.images ?? [];\n\n const references: t.References | undefined =\n images.length > 0\n ? {\n links: [],\n images: images.map((imageUrl) => ({ originalUrl: imageUrl })),\n videos: [],\n }\n : undefined;\n\n return [content, references];\n }\n\n extractMetadata(response: t.TavilyScrapeResponse): t.GenericScrapeMetadata {\n if (!response.success || !response.data) {\n return {};\n }\n\n const metadata: t.GenericScrapeMetadata = {\n images_count: response.data.images?.length ?? 0,\n };\n if (response.data.favicon != null) {\n metadata.favicon = response.data.favicon;\n }\n return metadata;\n }\n}\n\nexport const createTavilyScraper = (\n config: t.TavilyScraperConfig = {}\n): TavilyScraper => {\n return new TavilyScraper(config);\n};\n"],"names":[],"mappings":";;;AAIA,MAAM,qBAAqB,GAAG,KAAK;AACnC,MAAM,wBAAwB,GAAG,KAAK;AACtC,MAAM,cAAc,GAAG,EAAE;AAEzB,MAAM,iBAAiB,GAAG,CAAC,YAAkC,KAC3D,YAAY,KAAK;AACf,MAAE;MACA,qBAAqB;AAE3B,MAAM,eAAe,GAAG,CAAC,GAAW,KAAY;AAC9C,IAAA,IAAI;AACF,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AAC9B,QAAA,SAAS,CAAC,IAAI,GAAG,EAAE;QACnB,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAA,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7D;AACA,QAAA,OAAO,SAAS,CAAC,QAAQ,EAAE;IAC7B;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,GAAG;IACZ;AACF,CAAC;AAED,MAAM,YAAY,GAAG,CACnB,GAAuC,EACvC,MAA6B,KACrB;IACR,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;IAC3B,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC;IACjD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;AAC3B,QAAA,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC;AACF,CAAC;MAEY,aAAa,CAAA;AAChB,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,OAAO;AACP,IAAA,cAAc;AACd,IAAA,MAAM;AACN,IAAA,YAAY;AACZ,IAAA,aAAa;AACb,IAAA,cAAc;AACd,IAAA,MAAM;AAEd,IAAA,WAAA,CAAY,SAAgC,EAAE,EAAA;AAC5C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;AAC/D,QAAA,IAAI,CAAC,MAAM;AACT,YAAA,MAAM,CAAC,MAAM;gBACb,OAAO,CAAC,GAAG,CAAC,kBAAkB;AAC9B,gBAAA,gCAAgC;AAClC,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO;QACpC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,OAAO;AAClD,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;QACrE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK;QAClD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK;AACpD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,mBAAmB,EAAE;AAEpD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC;QACxE;IACF;AAEA,IAAA,MAAM,SAAS,CACb,GAAW,EACX,UAAiC,EAAE,EAAA;AAEnC,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;AACrD,QAAA,OAAO,OAAO,CAAC,CAAC,CAAC;IACnB;AAEA,IAAA,MAAM,UAAU,CACd,IAAc,EACd,UAAiC,EAAE,EAAA;AAEnC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;gBACvB,GAAG;AACH,gBAAA,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE;AACvD,aAAA,CAAC;QACJ;QAEA,MAAM,OAAO,GAAe,EAAE;AAC9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,cAAc,EAAE;AACpD,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC;QACjD;QAEA,MAAM,UAAU,GAA4C,EAAE;AAE9D,QAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YAC3B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;AAC5D,YAAA,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QAClC;AAEA,QAAA,OAAO,UAAU;IACnB;AAEQ,IAAA,MAAM,YAAY,CACxB,IAAc,EACd,UAAiC,EAAE,EAAA;AAEnC,QAAA,IAAI;YACF,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc;YACpE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;YAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY;AAC9D,YAAA,MAAM,OAAO,GAA2B;gBACtC,IAAI;AACJ,gBAAA,aAAa,EAAE,YAAY;AAC3B,gBAAA,cAAc,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;aAC5D;YAED,IAAI,cAAc,EAAE;AAClB,gBAAA,OAAO,CAAC,eAAe,GAAG,IAAI;YAChC;AACA,YAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAClB,gBAAA,OAAO,CAAC,MAAM,GAAG,MAAM;YACzB;AAEA,YAAA,MAAM,gBAAgB,GACpB,OAAO,CAAC,OAAO;AACf,gBAAA,IAAI,CAAC,cAAc;AACnB,iBAAC,OAAO,CAAC,YAAY,IAAI;AACvB,sBAAE,iBAAiB,CAAC,YAAY;AAChC,sBAAE,IAAI,CAAC,OAAO,CAAC;YACnB,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc;AAC7D,YAAA,IAAI,cAAc,IAAI,IAAI,EAAE;gBAC1B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACpE;AAEA,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAG9B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;AACvB,gBAAA,OAAO,EAAE;AACP,oBAAA,aAAa,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,MAAM,CAAA,CAAE;AACtC,oBAAA,cAAc,EAAE,kBAAkB;AACnC,iBAAA;AACD,gBAAA,OAAO,EAAE,gBAAgB;AAC1B,aAAA,CAAC;AAEF,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;AAC1B,YAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiC;AAC3D,YAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC;YAE1D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE;AACvC,gBAAA,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC;YAClC;YACA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE;AAC9C,gBAAA,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;YACjC;AAEA,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAsC;AACxD,gBAAA,MAAM,OAAO,GACX,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;oBACpC,OAAO;wBACL,GAAG;AACH,wBAAA;AACE,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,IAAI,EAAE;AACJ,gCAAA,UAAU,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;AACrC,gCAAA,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;gCAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;AACzB,6BAAA;AACF,yBAAA;qBACF;gBACH;AAEA,gBAAA,MAAM,MAAM,GACV,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3D,gBAAA,MAAM,KAAK,GACT,OAAO,EAAE,KAAK;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,0CAA0C;gBAC5C,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACzC,YAAA,CAAC,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;YACxD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;gBACvB,GAAG;AACH,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,CAAA,mCAAA,EAAsC,YAAY,CAAA,CAAE;AAC5D,iBAAA;AACF,aAAA,CAAC;QACJ;IACF;AAEA,IAAA,cAAc,CACZ,QAAgC,EAAA;QAEhC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACvC,YAAA,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC;QACxB;QAEA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE;AAEzC,QAAA,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,GAAG;AACd,cAAE;AACE,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC7D,gBAAA,MAAM,EAAE,EAAE;AACX;cACD,SAAS;AAEf,QAAA,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9B;AAEA,IAAA,eAAe,CAAC,QAAgC,EAAA;QAC9C,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACvC,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,MAAM,QAAQ,GAA4B;YACxC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;SAChD;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACjC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO;QAC1C;AACA,QAAA,OAAO,QAAQ;IACjB;AACD;MAEY,mBAAmB,GAAG,CACjC,MAAA,GAAgC,EAAE,KACjB;AACjB,IAAA,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC;AAClC;;;;"}
|