@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,70 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from '@jest/globals';
|
|
2
|
-
import {
|
|
3
|
-
MANIFEST_PREFIX,
|
|
4
|
-
formatFileManifest,
|
|
5
|
-
formatManifestEntry,
|
|
6
|
-
} from './types';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Unit tests for the shared subagent file-passing types module.
|
|
10
|
-
*
|
|
11
|
-
* The manifest format is contractual: the supervisor's LLM is taught to look
|
|
12
|
-
* for `MANIFEST_PREFIX` in its context and pass `file_id` strings into the
|
|
13
|
-
* `subagent` tool's `file_ids` arg. Regressions here silently break selective
|
|
14
|
-
* file passing — assert format strictly.
|
|
15
|
-
*/
|
|
16
|
-
describe('formatManifestEntry', () => {
|
|
17
|
-
it('formats minimal entry (file_id + name only)', () => {
|
|
18
|
-
expect(
|
|
19
|
-
formatManifestEntry({ file_id: 'f_1', name: 'data.csv' })
|
|
20
|
-
).toBe('- file_id: f_1, name: data.csv');
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
it('includes type when present', () => {
|
|
24
|
-
expect(
|
|
25
|
-
formatManifestEntry({
|
|
26
|
-
file_id: 'f_2',
|
|
27
|
-
name: 'chart.png',
|
|
28
|
-
type: 'image/png',
|
|
29
|
-
})
|
|
30
|
-
).toBe('- file_id: f_2, name: chart.png, type: image/png');
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it('formats bytes as B / KB / MB', () => {
|
|
34
|
-
expect(
|
|
35
|
-
formatManifestEntry({ file_id: 'f_3', name: 'a', size: 512 })
|
|
36
|
-
).toContain('size: 512B');
|
|
37
|
-
expect(
|
|
38
|
-
formatManifestEntry({ file_id: 'f_4', name: 'a', size: 12_000 })
|
|
39
|
-
).toContain('size: 12KB');
|
|
40
|
-
expect(
|
|
41
|
-
formatManifestEntry({
|
|
42
|
-
file_id: 'f_5',
|
|
43
|
-
name: 'a',
|
|
44
|
-
size: 5 * 1024 * 1024,
|
|
45
|
-
})
|
|
46
|
-
).toContain('size: 5.0MB');
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
describe('formatFileManifest', () => {
|
|
51
|
-
it('returns null for empty input', () => {
|
|
52
|
-
expect(formatFileManifest([])).toBeNull();
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it('begins with MANIFEST_PREFIX header', () => {
|
|
56
|
-
const out = formatFileManifest([
|
|
57
|
-
{ file_id: 'f_1', name: 'data.csv' },
|
|
58
|
-
]);
|
|
59
|
-
expect(out).not.toBeNull();
|
|
60
|
-
expect(out!.startsWith(MANIFEST_PREFIX)).toBe(true);
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
it('joins entries on newlines below header', () => {
|
|
64
|
-
const out = formatFileManifest([
|
|
65
|
-
{ file_id: 'f_1', name: 'a' },
|
|
66
|
-
{ file_id: 'f_2', name: 'b' },
|
|
67
|
-
]);
|
|
68
|
-
expect(out).toBe(`${MANIFEST_PREFIX}\n- file_id: f_1, name: a\n- file_id: f_2, name: b`);
|
|
69
|
-
});
|
|
70
|
-
});
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared types for the subagent file-passing pipeline.
|
|
3
|
-
*
|
|
4
|
-
* Single source of truth for:
|
|
5
|
-
* - the `file_ids` shape carried on the `subagent` tool's input schema
|
|
6
|
-
* - the manifest line format the host renders into the supervisor's
|
|
7
|
-
* trailing user-message channel (cache-stable, never the system block)
|
|
8
|
-
* - the resolver hook signature host applications implement to map
|
|
9
|
-
* parent-side `file_id`s into the child's `tool_resources` + first
|
|
10
|
-
* HumanMessage context blocks
|
|
11
|
-
*
|
|
12
|
-
* Keeping these in one place lets the lib, the host, and tests all
|
|
13
|
-
* reference the SAME constants — drift would silently break selective
|
|
14
|
-
* file passing (parent claims a file is available, child gets `null`).
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* One entry in the parent's file manifest. The host serializes an array of
|
|
19
|
-
* these into a short newline-delimited block that lives in the supervisor's
|
|
20
|
-
* trailing user-message channel — see `MANIFEST_PREFIX` /
|
|
21
|
-
* `formatFileManifest` for the canonical line format.
|
|
22
|
-
*/
|
|
23
|
-
export interface SubagentFileManifestEntry {
|
|
24
|
-
/** Stable file ID. Parent's LLM passes this back via `subagent({ file_ids })`. */
|
|
25
|
-
file_id: string;
|
|
26
|
-
/** Display name, used in the manifest line. */
|
|
27
|
-
name: string;
|
|
28
|
-
/** MIME type. Optional — only included in the manifest when present. */
|
|
29
|
-
type?: string;
|
|
30
|
-
/** Size in bytes. Optional — formatted for human readability when present. */
|
|
31
|
-
size?: number;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/** Header line that begins every parent file manifest block. */
|
|
35
|
-
export const MANIFEST_PREFIX = 'Files available for delegation:';
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Format a single manifest entry as a `- key: value, key: value, ...` line.
|
|
39
|
-
* Pure function — keeps the format consistent across host injection paths
|
|
40
|
-
* and test assertions.
|
|
41
|
-
*/
|
|
42
|
-
export function formatManifestEntry(entry: SubagentFileManifestEntry): string {
|
|
43
|
-
const parts: string[] = [`file_id: ${entry.file_id}`, `name: ${entry.name}`];
|
|
44
|
-
if (entry.type) {
|
|
45
|
-
parts.push(`type: ${entry.type}`);
|
|
46
|
-
}
|
|
47
|
-
if (typeof entry.size === 'number' && Number.isFinite(entry.size)) {
|
|
48
|
-
parts.push(`size: ${formatBytes(entry.size)}`);
|
|
49
|
-
}
|
|
50
|
-
return `- ${parts.join(', ')}`;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Format a full manifest block for injection below the cache breakpoint.
|
|
55
|
-
* Returns `null` for empty input so callers can `if (block) push(block)`.
|
|
56
|
-
*/
|
|
57
|
-
export function formatFileManifest(
|
|
58
|
-
entries: readonly SubagentFileManifestEntry[]
|
|
59
|
-
): string | null {
|
|
60
|
-
if (!entries || entries.length === 0) return null;
|
|
61
|
-
const lines = entries.map(formatManifestEntry);
|
|
62
|
-
return [MANIFEST_PREFIX, ...lines].join('\n');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/** Human-readable byte formatter used by the manifest. */
|
|
66
|
-
function formatBytes(bytes: number): string {
|
|
67
|
-
if (bytes < 1024) return `${bytes}B`;
|
|
68
|
-
if (bytes < 1024 * 1024) return `${Math.round(bytes / 1024)}KB`;
|
|
69
|
-
return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Result of resolving parent-side `file_ids` for a child subagent invocation.
|
|
74
|
-
* Each field is shaped to slot directly into the child's runtime:
|
|
75
|
-
* - `toolResources` is merged into the child's `agentInputs.tool_resources`
|
|
76
|
-
* so file_search / execute_code tools see the file
|
|
77
|
-
* - `messageContextBlocks` is prepended to the child's first HumanMessage
|
|
78
|
-
* (alongside the supervisor's task description) so the child sees image
|
|
79
|
-
* blocks for vision models and a short text reference for everything else
|
|
80
|
-
*/
|
|
81
|
-
export interface ResolvedSubagentFiles {
|
|
82
|
-
/**
|
|
83
|
-
* Augmented tool_resources object merged into the child's `agentInputs`.
|
|
84
|
-
* Shape matches `AgentToolResources` from the host (kept untyped here to
|
|
85
|
-
* avoid pulling host types into the lib).
|
|
86
|
-
*/
|
|
87
|
-
toolResources?: Record<string, unknown>;
|
|
88
|
-
/**
|
|
89
|
-
* Files the resolver successfully looked up. Forwarded verbatim into the
|
|
90
|
-
* child's first message metadata for downstream attachment rendering.
|
|
91
|
-
*/
|
|
92
|
-
attachments?: Array<Record<string, unknown>>;
|
|
93
|
-
/**
|
|
94
|
-
* LangChain `HumanMessage.content` blocks (text or image_url) that should
|
|
95
|
-
* be prepended to the child's first message. Empty array for the common
|
|
96
|
-
* case where files are referenced only via tool_resources.
|
|
97
|
-
*/
|
|
98
|
-
messageContextBlocks?: Array<Record<string, unknown>>;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Hook the host injects to resolve parent-side `file_id`s into child runtime
|
|
103
|
-
* context. Called once per `subagent` tool invocation that includes
|
|
104
|
-
* `file_ids`. Must be cheap on the empty-array path — the lib calls it for
|
|
105
|
-
* every subagent dispatch.
|
|
106
|
-
*
|
|
107
|
-
* @param fileIds - ID strings the supervisor's LLM picked from the manifest.
|
|
108
|
-
* @param childAgentId - ID assigned to the child for this invocation.
|
|
109
|
-
* @returns Resolved file context for the child, or `undefined` when nothing
|
|
110
|
-
* could be resolved (treated as a soft no-op — the child still runs).
|
|
111
|
-
*/
|
|
112
|
-
export type ResolveSubagentFiles = (
|
|
113
|
-
fileIds: string[],
|
|
114
|
-
childAgentId: string
|
|
115
|
-
) => Promise<ResolvedSubagentFiles | undefined>;
|
package/src/types/agent-cache.ts
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent system-message prompt-cache types.
|
|
3
|
-
* ==========================================
|
|
4
|
-
*
|
|
5
|
-
* `@illuma-ai/agents` exposes a generic primitive — `system_cache_blocks` —
|
|
6
|
-
* for composing a system message that gets explicit cache markers
|
|
7
|
-
* (cachePoint on Bedrock, cache_control on Anthropic) at consumer-defined
|
|
8
|
-
* boundaries. The library encodes each entry into the right wire format
|
|
9
|
-
* for the active provider; consumers decide what content to put in each
|
|
10
|
-
* block.
|
|
11
|
-
*
|
|
12
|
-
* Why this is generic rather than tier-named
|
|
13
|
-
* ------------------------------------------------
|
|
14
|
-
* Earlier iterations exposed `platform_instructions` and `cache_ttl:
|
|
15
|
-
* { platform, agent }` — vocabulary borrowed from a specific consumer's
|
|
16
|
-
* multi-tenant chat-platform mental model. That leaked one consumer's
|
|
17
|
-
* domain into the library and made it confusing for other consumers
|
|
18
|
-
* (CLI tools, desktop apps, gateways) which have no notion of
|
|
19
|
-
* "platforms" or "agents".
|
|
20
|
-
*
|
|
21
|
-
* The current shape lets every consumer define their own cache-tier
|
|
22
|
-
* organization without the library knowing or caring.
|
|
23
|
-
*
|
|
24
|
-
* Cache key composition
|
|
25
|
-
* ---------------------
|
|
26
|
-
* Both Anthropic and Bedrock hash the message bytes leading up to each
|
|
27
|
-
* cache marker. So entry N's cache key is the concatenation of bytes
|
|
28
|
-
* 0..N. Stable content (universal rules, framework docs) goes earlier;
|
|
29
|
-
* volatile content (per-agent identity, per-tool docs) goes later. The
|
|
30
|
-
* earlier entries get cross-tenant cache hits; the later entries get
|
|
31
|
-
* narrower hits.
|
|
32
|
-
*
|
|
33
|
-
* Provider budget
|
|
34
|
-
* ---------------
|
|
35
|
-
* Bedrock's Converse API supports up to 4 cachePoint blocks per request.
|
|
36
|
-
* The default tools-array cache strategy (see `IllumaBedrockConverse`)
|
|
37
|
-
* uses up to 2 of those. So at most 2 entries should appear in
|
|
38
|
-
* `system_cache_blocks` to leave budget for the trailing
|
|
39
|
-
* `instructions` block. The library throws on more than 2.
|
|
40
|
-
*
|
|
41
|
-
* Anthropic supports up to 4 cache breakpoints per request workspace-wide;
|
|
42
|
-
* the same constraint applies to keep tools + system within budget.
|
|
43
|
-
*/
|
|
44
|
-
|
|
45
|
-
/** Provider TTL hint applied to a cachePoint / cache_control marker. */
|
|
46
|
-
export type AgentCacheTTL = '5m' | '1h';
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* One cacheable system content block. Each entry produces a text block
|
|
50
|
-
* followed by a provider-specific cache marker in the assembled system
|
|
51
|
-
* message. Entries are emitted in array order — earlier = more stable
|
|
52
|
-
* = wider cache key.
|
|
53
|
-
*/
|
|
54
|
-
export interface SystemCacheBlock {
|
|
55
|
-
/**
|
|
56
|
-
* Text payload. Caller is responsible for keeping this byte-stable
|
|
57
|
-
* across requests that should share a cache entry. ANY change to
|
|
58
|
-
* these bytes invalidates every cache key that includes this entry.
|
|
59
|
-
*/
|
|
60
|
-
text: string;
|
|
61
|
-
/**
|
|
62
|
-
* Optional TTL hint for the cache marker. Defaults to '5m' when
|
|
63
|
-
* omitted. '1h' costs more to write (2× base vs 1.25×) but survives
|
|
64
|
-
* longer idle, which is the right tradeoff for low-traffic blocks.
|
|
65
|
-
*/
|
|
66
|
-
ttl?: AgentCacheTTL;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Maximum number of `system_cache_blocks` entries the library accepts.
|
|
71
|
-
* Higher than this would exceed Bedrock's 4-cachePoint budget once the
|
|
72
|
-
* tools array and trailing `instructions` block are counted.
|
|
73
|
-
*/
|
|
74
|
-
export const MAX_SYSTEM_CACHE_BLOCKS = 2;
|