@illuma-ai/agents 1.1.21 → 1.1.22
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/dist/cjs/graphs/Graph.cjs +12 -1
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/graphs/MultiAgentGraph.cjs +85 -1
- package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
- package/dist/cjs/run.cjs +20 -9
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +12 -1
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/graphs/MultiAgentGraph.mjs +85 -1
- package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
- package/dist/esm/run.mjs +20 -9
- package/dist/esm/run.mjs.map +1 -1
- package/dist/types/graphs/MultiAgentGraph.d.ts +17 -0
- package/package.json +1 -1
- package/src/graphs/Graph.ts +12 -1
- package/src/graphs/MultiAgentGraph.ts +105 -1
- package/src/graphs/__tests__/multi-agent-delegate.test.ts +191 -0
- package/src/run.ts +20 -11
- package/src/scripts/test-bedrock-handoff-autonomous.ts +231 -0
- package/src/agents/AgentContext.js +0 -782
- package/src/agents/AgentContext.test.js +0 -421
- package/src/agents/__tests__/AgentContext.test.js +0 -678
- package/src/agents/__tests__/resolveStructuredOutputMode.test.js +0 -117
- package/src/common/enum.js +0 -192
- package/src/common/index.js +0 -3
- package/src/events.js +0 -166
- package/src/graphs/Graph.js +0 -1857
- package/src/graphs/MultiAgentGraph.js +0 -1092
- package/src/graphs/__tests__/structured-output.integration.test.js +0 -624
- package/src/graphs/__tests__/structured-output.test.js +0 -144
- package/src/graphs/contextManagement.e2e.test.js +0 -718
- package/src/graphs/contextManagement.test.js +0 -485
- package/src/graphs/handoffValidation.test.js +0 -276
- package/src/graphs/index.js +0 -3
- package/src/index.js +0 -28
- package/src/instrumentation.js +0 -21
- package/src/llm/anthropic/index.js +0 -319
- package/src/llm/anthropic/types.js +0 -46
- package/src/llm/anthropic/utils/message_inputs.js +0 -627
- package/src/llm/anthropic/utils/message_outputs.js +0 -290
- package/src/llm/anthropic/utils/output_parsers.js +0 -89
- package/src/llm/anthropic/utils/tools.js +0 -25
- package/src/llm/bedrock/__tests__/bedrock-caching.test.js +0 -392
- package/src/llm/bedrock/index.js +0 -303
- package/src/llm/bedrock/types.js +0 -2
- package/src/llm/bedrock/utils/index.js +0 -6
- package/src/llm/bedrock/utils/message_inputs.js +0 -463
- package/src/llm/bedrock/utils/message_outputs.js +0 -269
- package/src/llm/fake.js +0 -92
- package/src/llm/google/index.js +0 -215
- package/src/llm/google/types.js +0 -12
- package/src/llm/google/utils/common.js +0 -670
- package/src/llm/google/utils/tools.js +0 -111
- package/src/llm/google/utils/zod_to_genai_parameters.js +0 -47
- package/src/llm/openai/index.js +0 -1033
- package/src/llm/openai/types.js +0 -2
- package/src/llm/openai/utils/index.js +0 -756
- package/src/llm/openai/utils/isReasoningModel.test.js +0 -79
- package/src/llm/openrouter/index.js +0 -261
- package/src/llm/openrouter/reasoning.test.js +0 -181
- package/src/llm/providers.js +0 -36
- package/src/llm/text.js +0 -65
- package/src/llm/vertexai/index.js +0 -402
- package/src/messages/__tests__/tools.test.js +0 -392
- package/src/messages/cache.js +0 -404
- package/src/messages/cache.test.js +0 -1167
- package/src/messages/content.js +0 -48
- package/src/messages/content.test.js +0 -314
- package/src/messages/core.js +0 -359
- package/src/messages/ensureThinkingBlock.test.js +0 -997
- package/src/messages/format.js +0 -973
- package/src/messages/formatAgentMessages.test.js +0 -2278
- package/src/messages/formatAgentMessages.tools.test.js +0 -362
- package/src/messages/formatMessage.test.js +0 -608
- package/src/messages/ids.js +0 -18
- package/src/messages/index.js +0 -9
- package/src/messages/labelContentByAgent.test.js +0 -725
- package/src/messages/prune.js +0 -438
- package/src/messages/reducer.js +0 -60
- package/src/messages/shiftIndexTokenCountMap.test.js +0 -63
- package/src/messages/summarize.js +0 -146
- package/src/messages/summarize.test.js +0 -332
- package/src/messages/tools.js +0 -90
- package/src/mockStream.js +0 -81
- package/src/prompts/collab.js +0 -7
- package/src/prompts/index.js +0 -3
- package/src/prompts/taskmanager.js +0 -58
- package/src/run.js +0 -427
- package/src/schemas/index.js +0 -3
- package/src/schemas/schema-preparation.test.js +0 -370
- package/src/schemas/validate.js +0 -314
- package/src/schemas/validate.test.js +0 -264
- package/src/scripts/abort.js +0 -127
- package/src/scripts/ant_web_search.js +0 -130
- package/src/scripts/ant_web_search_edge_case.js +0 -133
- package/src/scripts/ant_web_search_error_edge_case.js +0 -119
- package/src/scripts/args.js +0 -41
- package/src/scripts/bedrock-cache-debug.js +0 -186
- package/src/scripts/bedrock-content-aggregation-test.js +0 -195
- package/src/scripts/bedrock-merge-test.js +0 -80
- package/src/scripts/bedrock-parallel-tools-test.js +0 -150
- package/src/scripts/caching.js +0 -106
- package/src/scripts/cli.js +0 -152
- package/src/scripts/cli2.js +0 -119
- package/src/scripts/cli3.js +0 -163
- package/src/scripts/cli4.js +0 -165
- package/src/scripts/cli5.js +0 -165
- package/src/scripts/code_exec.js +0 -171
- package/src/scripts/code_exec_files.js +0 -180
- package/src/scripts/code_exec_multi_session.js +0 -185
- package/src/scripts/code_exec_ptc.js +0 -265
- package/src/scripts/code_exec_session.js +0 -217
- package/src/scripts/code_exec_simple.js +0 -120
- package/src/scripts/content.js +0 -111
- package/src/scripts/empty_input.js +0 -125
- package/src/scripts/handoff-test.js +0 -96
- package/src/scripts/image.js +0 -138
- package/src/scripts/memory.js +0 -83
- package/src/scripts/multi-agent-chain.js +0 -271
- package/src/scripts/multi-agent-conditional.js +0 -185
- package/src/scripts/multi-agent-document-review-chain.js +0 -171
- package/src/scripts/multi-agent-hybrid-flow.js +0 -264
- package/src/scripts/multi-agent-parallel-start.js +0 -214
- package/src/scripts/multi-agent-parallel.js +0 -346
- package/src/scripts/multi-agent-sequence.js +0 -184
- package/src/scripts/multi-agent-supervisor.js +0 -324
- package/src/scripts/multi-agent-test.js +0 -147
- package/src/scripts/parallel-asymmetric-tools-test.js +0 -202
- package/src/scripts/parallel-full-metadata-test.js +0 -176
- package/src/scripts/parallel-tools-test.js +0 -256
- package/src/scripts/programmatic_exec.js +0 -277
- package/src/scripts/programmatic_exec_agent.js +0 -168
- package/src/scripts/search.js +0 -118
- package/src/scripts/sequential-full-metadata-test.js +0 -143
- package/src/scripts/simple.js +0 -174
- package/src/scripts/single-agent-metadata-test.js +0 -152
- package/src/scripts/stream.js +0 -113
- package/src/scripts/test-custom-prompt-key.js +0 -132
- package/src/scripts/test-handoff-input.js +0 -143
- package/src/scripts/test-handoff-preamble.js +0 -227
- package/src/scripts/test-handoff-steering.js +0 -353
- package/src/scripts/test-multi-agent-list-handoff.js +0 -318
- package/src/scripts/test-parallel-agent-labeling.js +0 -253
- package/src/scripts/test-parallel-handoffs.js +0 -229
- package/src/scripts/test-thinking-handoff-bedrock.js +0 -132
- package/src/scripts/test-thinking-handoff.js +0 -132
- package/src/scripts/test-thinking-to-thinking-handoff-bedrock.js +0 -140
- package/src/scripts/test-tool-before-handoff-role-order.js +0 -223
- package/src/scripts/test-tools-before-handoff.js +0 -187
- package/src/scripts/test_code_api.js +0 -263
- package/src/scripts/thinking-bedrock.js +0 -128
- package/src/scripts/thinking-vertexai.js +0 -130
- package/src/scripts/thinking.js +0 -134
- package/src/scripts/tool_search.js +0 -114
- package/src/scripts/tools.js +0 -125
- package/src/specs/agent-handoffs-bedrock.integration.test.js +0 -280
- package/src/specs/agent-handoffs.test.js +0 -924
- package/src/specs/anthropic.simple.test.js +0 -287
- package/src/specs/azure.simple.test.js +0 -381
- package/src/specs/cache.simple.test.js +0 -282
- package/src/specs/custom-event-await.test.js +0 -148
- package/src/specs/deepseek.simple.test.js +0 -189
- package/src/specs/emergency-prune.test.js +0 -308
- package/src/specs/moonshot.simple.test.js +0 -237
- package/src/specs/observability.integration.test.js +0 -1337
- package/src/specs/openai.simple.test.js +0 -233
- package/src/specs/openrouter.simple.test.js +0 -202
- package/src/specs/prune.test.js +0 -733
- package/src/specs/reasoning.test.js +0 -144
- package/src/specs/spec.utils.js +0 -4
- package/src/specs/thinking-handoff.test.js +0 -486
- package/src/specs/thinking-prune.test.js +0 -600
- package/src/specs/token-distribution-edge-case.test.js +0 -246
- package/src/specs/token-memoization.test.js +0 -32
- package/src/specs/tokens.test.js +0 -49
- package/src/specs/tool-error.test.js +0 -139
- package/src/splitStream.js +0 -204
- package/src/splitStream.test.js +0 -504
- package/src/stream.js +0 -650
- package/src/stream.test.js +0 -225
- package/src/test/mockTools.js +0 -340
- package/src/tools/BrowserTools.js +0 -245
- package/src/tools/Calculator.js +0 -38
- package/src/tools/Calculator.test.js +0 -225
- package/src/tools/CodeExecutor.js +0 -233
- package/src/tools/ProgrammaticToolCalling.js +0 -602
- package/src/tools/StreamingToolCallBuffer.js +0 -179
- package/src/tools/ToolNode.js +0 -930
- package/src/tools/ToolSearch.js +0 -904
- package/src/tools/__tests__/BrowserTools.test.js +0 -306
- package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.js +0 -276
- package/src/tools/__tests__/ProgrammaticToolCalling.test.js +0 -807
- package/src/tools/__tests__/StreamingToolCallBuffer.test.js +0 -175
- package/src/tools/__tests__/ToolApproval.test.js +0 -675
- package/src/tools/__tests__/ToolNode.recovery.test.js +0 -200
- package/src/tools/__tests__/ToolNode.session.test.js +0 -319
- package/src/tools/__tests__/ToolSearch.integration.test.js +0 -125
- package/src/tools/__tests__/ToolSearch.test.js +0 -812
- package/src/tools/__tests__/handlers.test.js +0 -799
- package/src/tools/__tests__/truncation-recovery.integration.test.js +0 -362
- package/src/tools/handlers.js +0 -306
- package/src/tools/schema.js +0 -25
- package/src/tools/search/anthropic.js +0 -34
- package/src/tools/search/content.js +0 -116
- package/src/tools/search/content.test.js +0 -133
- package/src/tools/search/firecrawl.js +0 -173
- package/src/tools/search/format.js +0 -198
- package/src/tools/search/highlights.js +0 -241
- package/src/tools/search/index.js +0 -3
- package/src/tools/search/jina-reranker.test.js +0 -106
- package/src/tools/search/rerankers.js +0 -165
- package/src/tools/search/schema.js +0 -102
- package/src/tools/search/search.js +0 -561
- package/src/tools/search/serper-scraper.js +0 -126
- package/src/tools/search/test.js +0 -129
- package/src/tools/search/tool.js +0 -453
- package/src/tools/search/types.js +0 -2
- package/src/tools/search/utils.js +0 -59
- package/src/types/graph.js +0 -24
- package/src/types/graph.test.js +0 -192
- package/src/types/index.js +0 -7
- package/src/types/llm.js +0 -2
- package/src/types/messages.js +0 -2
- package/src/types/run.js +0 -2
- package/src/types/stream.js +0 -2
- package/src/types/tools.js +0 -2
- package/src/utils/contextAnalytics.js +0 -79
- package/src/utils/contextAnalytics.test.js +0 -166
- package/src/utils/events.js +0 -26
- package/src/utils/graph.js +0 -11
- package/src/utils/handlers.js +0 -65
- package/src/utils/index.js +0 -10
- package/src/utils/llm.js +0 -21
- package/src/utils/llmConfig.js +0 -205
- package/src/utils/logging.js +0 -37
- package/src/utils/misc.js +0 -51
- package/src/utils/run.js +0 -69
- package/src/utils/schema.js +0 -21
- package/src/utils/title.js +0 -119
- package/src/utils/tokens.js +0 -92
- package/src/utils/toonFormat.js +0 -379
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* StreamingToolCallBuffer — Accumulates raw tool call argument strings
|
|
3
|
-
* during streaming, providing a fallback when LangChain's parsePartialJson
|
|
4
|
-
* loses data (e.g., when max_tokens truncates a tool call mid-JSON).
|
|
5
|
-
*
|
|
6
|
-
* Architecture:
|
|
7
|
-
* - handleToolCallChunks feeds raw arg fragments into this buffer
|
|
8
|
-
* - When a tool call is finalized (or truncated), the ToolNode can access
|
|
9
|
-
* the accumulated raw string and extract field values that parsePartialJson
|
|
10
|
-
* may have dropped
|
|
11
|
-
* - This enables "streaming write" semantics: content that streamed to the UI
|
|
12
|
-
* is never lost, even if the JSON wrapper was incomplete
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```ts
|
|
16
|
-
* const buffer = new StreamingToolCallBuffer();
|
|
17
|
-
*
|
|
18
|
-
* // During streaming (called by handleToolCallChunks):
|
|
19
|
-
* buffer.append(toolCallId, '{"action":"write","content":"func');
|
|
20
|
-
* buffer.append(toolCallId, 'tion App() {');
|
|
21
|
-
* buffer.setToolName(toolCallId, 'content_tool');
|
|
22
|
-
*
|
|
23
|
-
* // When ToolNode needs the content:
|
|
24
|
-
* const content = buffer.extractFieldValue(toolCallId, 'content');
|
|
25
|
-
* // => 'function App() {'
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export class StreamingToolCallBuffer {
|
|
29
|
-
/** Raw accumulated arg strings keyed by tool call ID */
|
|
30
|
-
argBuffers = new Map();
|
|
31
|
-
/** Tool names keyed by tool call ID */
|
|
32
|
-
toolNames = new Map();
|
|
33
|
-
/**
|
|
34
|
-
* Maps chunk index → tool call ID for providers (e.g., Bedrock) that send
|
|
35
|
-
* START chunks with {id, name, index} and DELTA chunks with {args, index} (no id).
|
|
36
|
-
* Without this mapping, DELTA chunks cannot be associated with the correct buffer entry.
|
|
37
|
-
*/
|
|
38
|
-
indexToIdMap = new Map();
|
|
39
|
-
/**
|
|
40
|
-
* Append a raw argument string chunk for a tool call.
|
|
41
|
-
* Called during streaming as each ToolCallChunk arrives.
|
|
42
|
-
*/
|
|
43
|
-
append(toolCallId, argsChunk) {
|
|
44
|
-
const existing = this.argBuffers.get(toolCallId) ?? '';
|
|
45
|
-
this.argBuffers.set(toolCallId, existing + argsChunk);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Record the tool name for a tool call ID.
|
|
49
|
-
* Usually available from the first chunk.
|
|
50
|
-
*/
|
|
51
|
-
setToolName(toolCallId, name) {
|
|
52
|
-
if (name && !this.toolNames.has(toolCallId)) {
|
|
53
|
-
this.toolNames.set(toolCallId, name);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Get the tool name for a tool call ID.
|
|
58
|
-
*/
|
|
59
|
-
getToolName(toolCallId) {
|
|
60
|
-
return this.toolNames.get(toolCallId);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Get the raw accumulated argument string for a tool call.
|
|
64
|
-
*/
|
|
65
|
-
getRawArgs(toolCallId) {
|
|
66
|
-
return this.argBuffers.get(toolCallId);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Extract a string field value from the raw accumulated JSON args.
|
|
70
|
-
*
|
|
71
|
-
* Uses simple string parsing (not JSON.parse) to handle truncated JSON.
|
|
72
|
-
* Finds `"fieldName":"` and extracts everything after it until the next
|
|
73
|
-
* unescaped quote or end of buffer.
|
|
74
|
-
*
|
|
75
|
-
* @param toolCallId - The tool call ID
|
|
76
|
-
* @param fieldName - The JSON field name to extract (e.g., 'content')
|
|
77
|
-
* @returns The extracted value, or undefined if the field wasn't found
|
|
78
|
-
*/
|
|
79
|
-
extractFieldValue(toolCallId, fieldName) {
|
|
80
|
-
const raw = this.argBuffers.get(toolCallId);
|
|
81
|
-
if (!raw)
|
|
82
|
-
return undefined;
|
|
83
|
-
// Find the field key in the JSON string: "fieldName":"
|
|
84
|
-
// Handle both `"fieldName":"value"` and `"fieldName": "value"` (with space)
|
|
85
|
-
const patterns = [
|
|
86
|
-
`"${fieldName}":"`,
|
|
87
|
-
`"${fieldName}": "`,
|
|
88
|
-
`"${fieldName}" : "`,
|
|
89
|
-
];
|
|
90
|
-
let startIdx = -1;
|
|
91
|
-
for (const pattern of patterns) {
|
|
92
|
-
const idx = raw.indexOf(pattern);
|
|
93
|
-
if (idx !== -1) {
|
|
94
|
-
startIdx = idx + pattern.length;
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
if (startIdx === -1)
|
|
99
|
-
return undefined;
|
|
100
|
-
// Extract the value — handle escaped characters
|
|
101
|
-
let value = '';
|
|
102
|
-
let escaped = false;
|
|
103
|
-
for (let i = startIdx; i < raw.length; i++) {
|
|
104
|
-
const ch = raw[i];
|
|
105
|
-
if (escaped) {
|
|
106
|
-
// Handle common escape sequences
|
|
107
|
-
switch (ch) {
|
|
108
|
-
case 'n':
|
|
109
|
-
value += '\n';
|
|
110
|
-
break;
|
|
111
|
-
case 't':
|
|
112
|
-
value += '\t';
|
|
113
|
-
break;
|
|
114
|
-
case 'r':
|
|
115
|
-
value += '\r';
|
|
116
|
-
break;
|
|
117
|
-
case '"':
|
|
118
|
-
value += '"';
|
|
119
|
-
break;
|
|
120
|
-
case '\\':
|
|
121
|
-
value += '\\';
|
|
122
|
-
break;
|
|
123
|
-
default:
|
|
124
|
-
value += ch;
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
127
|
-
escaped = false;
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
if (ch === '\\') {
|
|
131
|
-
escaped = true;
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
if (ch === '"') {
|
|
135
|
-
// End of the string value
|
|
136
|
-
break;
|
|
137
|
-
}
|
|
138
|
-
value += ch;
|
|
139
|
-
}
|
|
140
|
-
return value || undefined;
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Store an index → tool call ID mapping.
|
|
144
|
-
* Called when a START chunk arrives with both `id` and `index` (e.g., Bedrock).
|
|
145
|
-
* Subsequent DELTA chunks that only have `index` can resolve the ID via getIdByIndex.
|
|
146
|
-
*/
|
|
147
|
-
setIndexMapping(index, toolCallId) {
|
|
148
|
-
this.indexToIdMap.set(index, toolCallId);
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Resolve a tool call ID from a chunk index.
|
|
152
|
-
* Returns undefined if no mapping exists (e.g., provider sends id on every chunk).
|
|
153
|
-
*/
|
|
154
|
-
getIdByIndex(index) {
|
|
155
|
-
return this.indexToIdMap.get(index);
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Check if a tool call has accumulated content.
|
|
159
|
-
*/
|
|
160
|
-
has(toolCallId) {
|
|
161
|
-
return this.argBuffers.has(toolCallId);
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Clear the buffer for a specific tool call (after processing).
|
|
165
|
-
*/
|
|
166
|
-
clear(toolCallId) {
|
|
167
|
-
this.argBuffers.delete(toolCallId);
|
|
168
|
-
this.toolNames.delete(toolCallId);
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Clear all buffers (at the start of a new callModel cycle).
|
|
172
|
-
*/
|
|
173
|
-
clearAll() {
|
|
174
|
-
this.argBuffers.clear();
|
|
175
|
-
this.toolNames.clear();
|
|
176
|
-
this.indexToIdMap.clear();
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
//# sourceMappingURL=StreamingToolCallBuffer.js.map
|