illuma-agents 1.0.16 → 1.0.18
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/agents/AgentContext.cjs +3 -1
- package/dist/cjs/agents/AgentContext.cjs.map +1 -1
- package/dist/cjs/common/enum.cjs +18 -0
- package/dist/cjs/common/enum.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +79 -32
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/index.cjs +5 -3
- package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
- package/dist/cjs/llm/openai/index.cjs +1 -0
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/llm/openrouter/index.cjs +10 -1
- package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
- package/dist/cjs/llm/vertexai/index.cjs +7 -8
- package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
- package/dist/cjs/main.cjs +15 -0
- package/dist/cjs/main.cjs.map +1 -1
- package/dist/cjs/messages/cache.cjs +11 -6
- package/dist/cjs/messages/cache.cjs.map +1 -1
- package/dist/cjs/messages/core.cjs +16 -8
- package/dist/cjs/messages/core.cjs.map +1 -1
- package/dist/cjs/messages/format.cjs +9 -2
- package/dist/cjs/messages/format.cjs.map +1 -1
- package/dist/cjs/messages/tools.cjs +17 -10
- package/dist/cjs/messages/tools.cjs.map +1 -1
- package/dist/cjs/stream.cjs +30 -16
- package/dist/cjs/stream.cjs.map +1 -1
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs +209 -47
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/ToolNode.cjs +73 -3
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/handlers.cjs +1 -0
- package/dist/cjs/tools/handlers.cjs.map +1 -1
- package/dist/cjs/tools/search/search.cjs.map +1 -1
- package/dist/cjs/tools/search/tool.cjs +3 -1
- package/dist/cjs/tools/search/tool.cjs.map +1 -1
- package/dist/cjs/utils/contextAnalytics.cjs +66 -0
- package/dist/cjs/utils/contextAnalytics.cjs.map +1 -0
- package/dist/cjs/utils/run.cjs.map +1 -1
- package/dist/cjs/utils/toonFormat.cjs +388 -0
- package/dist/cjs/utils/toonFormat.cjs.map +1 -0
- package/dist/esm/agents/AgentContext.mjs +3 -1
- package/dist/esm/agents/AgentContext.mjs.map +1 -1
- package/dist/esm/common/enum.mjs +19 -1
- package/dist/esm/common/enum.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +81 -34
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/llm/bedrock/index.mjs +5 -3
- package/dist/esm/llm/bedrock/index.mjs.map +1 -1
- package/dist/esm/llm/openai/index.mjs +1 -0
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/llm/openrouter/index.mjs +10 -1
- package/dist/esm/llm/openrouter/index.mjs.map +1 -1
- package/dist/esm/llm/vertexai/index.mjs +7 -8
- package/dist/esm/llm/vertexai/index.mjs.map +1 -1
- package/dist/esm/main.mjs +4 -2
- package/dist/esm/main.mjs.map +1 -1
- package/dist/esm/messages/cache.mjs +11 -6
- package/dist/esm/messages/cache.mjs.map +1 -1
- package/dist/esm/messages/core.mjs +18 -10
- package/dist/esm/messages/core.mjs.map +1 -1
- package/dist/esm/messages/format.mjs +10 -3
- package/dist/esm/messages/format.mjs.map +1 -1
- package/dist/esm/messages/tools.mjs +19 -12
- package/dist/esm/messages/tools.mjs.map +1 -1
- package/dist/esm/stream.mjs +30 -16
- package/dist/esm/stream.mjs.map +1 -1
- package/dist/esm/tools/ProgrammaticToolCalling.mjs +208 -48
- package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/ToolNode.mjs +73 -3
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/handlers.mjs +1 -0
- package/dist/esm/tools/handlers.mjs.map +1 -1
- package/dist/esm/tools/search/search.mjs.map +1 -1
- package/dist/esm/tools/search/tool.mjs +3 -1
- package/dist/esm/tools/search/tool.mjs.map +1 -1
- package/dist/esm/utils/contextAnalytics.mjs +64 -0
- package/dist/esm/utils/contextAnalytics.mjs.map +1 -0
- package/dist/esm/utils/run.mjs.map +1 -1
- package/dist/esm/utils/toonFormat.mjs +381 -0
- package/dist/esm/utils/toonFormat.mjs.map +1 -0
- package/dist/types/common/enum.d.ts +17 -0
- package/dist/types/graphs/Graph.d.ts +8 -0
- package/dist/types/tools/ProgrammaticToolCalling.d.ts +19 -0
- package/dist/types/types/tools.d.ts +3 -1
- package/dist/types/utils/contextAnalytics.d.ts +37 -0
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/toonFormat.d.ts +111 -0
- package/package.json +3 -2
- package/src/agents/AgentContext.ts +28 -20
- package/src/common/enum.ts +18 -0
- package/src/graphs/Graph.ts +152 -62
- package/src/llm/bedrock/__tests__/bedrock-caching.test.ts +495 -473
- package/src/llm/bedrock/index.ts +47 -35
- package/src/llm/openrouter/index.ts +11 -1
- package/src/llm/vertexai/index.ts +9 -10
- package/src/messages/cache.ts +104 -55
- package/src/messages/core.ts +29 -19
- package/src/messages/format.ts +14 -3
- package/src/messages/tools.ts +20 -13
- package/src/scripts/simple.ts +1 -1
- package/src/specs/emergency-prune.test.ts +407 -355
- package/src/stream.ts +28 -20
- package/src/tools/ProgrammaticToolCalling.ts +246 -52
- package/src/tools/ToolNode.ts +78 -5
- package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +155 -0
- package/src/tools/search/jina-reranker.test.ts +32 -28
- package/src/tools/search/search.ts +3 -1
- package/src/tools/search/tool.ts +16 -7
- package/src/types/tools.ts +3 -1
- package/src/utils/contextAnalytics.ts +103 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/llmConfig.ts +8 -1
- package/src/utils/run.ts +5 -4
- package/src/utils/toonFormat.ts +475 -0
package/src/messages/tools.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/messages/toolDiscovery.ts
|
|
2
2
|
import { AIMessageChunk, ToolMessage } from '@langchain/core/messages';
|
|
3
3
|
import type { BaseMessage } from '@langchain/core/messages';
|
|
4
|
-
import { Constants } from '@/common';
|
|
4
|
+
import { Constants, MessageTypes } from '@/common';
|
|
5
5
|
import { findLastIndex } from './core';
|
|
6
6
|
|
|
7
7
|
type ToolSearchArtifact = {
|
|
@@ -20,7 +20,9 @@ type ToolSearchArtifact = {
|
|
|
20
20
|
*/
|
|
21
21
|
export function extractToolDiscoveries(messages: BaseMessage[]): string[] {
|
|
22
22
|
const lastMessage = messages[messages.length - 1];
|
|
23
|
-
|
|
23
|
+
// Use getType() instead of instanceof to avoid module mismatch issues
|
|
24
|
+
if (lastMessage.getType() !== MessageTypes.TOOL) return [];
|
|
25
|
+
const lastToolMessage = lastMessage as ToolMessage;
|
|
24
26
|
|
|
25
27
|
// Find the latest AIMessage with tool_calls that this tool message belongs to
|
|
26
28
|
const latestAIParentIndex = findLastIndex(
|
|
@@ -28,7 +30,7 @@ export function extractToolDiscoveries(messages: BaseMessage[]): string[] {
|
|
|
28
30
|
(msg) =>
|
|
29
31
|
(msg instanceof AIMessageChunk &&
|
|
30
32
|
(msg.tool_calls?.length ?? 0) > 0 &&
|
|
31
|
-
msg.tool_calls?.some((tc) => tc.id ===
|
|
33
|
+
msg.tool_calls?.some((tc) => tc.id === lastToolMessage.tool_call_id)) ??
|
|
32
34
|
false
|
|
33
35
|
);
|
|
34
36
|
|
|
@@ -42,13 +44,15 @@ export function extractToolDiscoveries(messages: BaseMessage[]): string[] {
|
|
|
42
44
|
const discoveredNames: string[] = [];
|
|
43
45
|
for (let i = latestAIParentIndex + 1; i < messages.length; i++) {
|
|
44
46
|
const msg = messages[i];
|
|
45
|
-
|
|
46
|
-
if (msg.
|
|
47
|
-
|
|
47
|
+
// Use getType() instead of instanceof to avoid module mismatch issues
|
|
48
|
+
if (msg.getType() !== MessageTypes.TOOL) continue;
|
|
49
|
+
const toolMsg = msg as ToolMessage;
|
|
50
|
+
if (toolMsg.name !== Constants.TOOL_SEARCH_REGEX) continue;
|
|
51
|
+
if (!toolCallIds.has(toolMsg.tool_call_id)) continue;
|
|
48
52
|
|
|
49
53
|
// This is a tool search result from the current turn
|
|
50
|
-
if (typeof
|
|
51
|
-
const artifact =
|
|
54
|
+
if (typeof toolMsg.artifact === 'object' && toolMsg.artifact != null) {
|
|
55
|
+
const artifact = toolMsg.artifact as ToolSearchArtifact;
|
|
52
56
|
if (artifact.tool_references && artifact.tool_references.length > 0) {
|
|
53
57
|
for (const ref of artifact.tool_references) {
|
|
54
58
|
discoveredNames.push(ref.tool_name);
|
|
@@ -66,7 +70,9 @@ export function extractToolDiscoveries(messages: BaseMessage[]): string[] {
|
|
|
66
70
|
*/
|
|
67
71
|
export function hasToolSearchInCurrentTurn(messages: BaseMessage[]): boolean {
|
|
68
72
|
const lastMessage = messages[messages.length - 1];
|
|
69
|
-
|
|
73
|
+
// Use getType() instead of instanceof to avoid module mismatch issues
|
|
74
|
+
if (lastMessage.getType() !== MessageTypes.TOOL) return false;
|
|
75
|
+
const lastToolMessage = lastMessage as ToolMessage;
|
|
70
76
|
|
|
71
77
|
// Find the latest AIMessage with tool_calls
|
|
72
78
|
const latestAIParentIndex = findLastIndex(
|
|
@@ -74,7 +80,7 @@ export function hasToolSearchInCurrentTurn(messages: BaseMessage[]): boolean {
|
|
|
74
80
|
(msg) =>
|
|
75
81
|
(msg instanceof AIMessageChunk &&
|
|
76
82
|
(msg.tool_calls?.length ?? 0) > 0 &&
|
|
77
|
-
msg.tool_calls?.some((tc) => tc.id ===
|
|
83
|
+
msg.tool_calls?.some((tc) => tc.id === lastToolMessage.tool_call_id)) ??
|
|
78
84
|
false
|
|
79
85
|
);
|
|
80
86
|
|
|
@@ -84,12 +90,13 @@ export function hasToolSearchInCurrentTurn(messages: BaseMessage[]): boolean {
|
|
|
84
90
|
const toolCallIds = new Set(aiMessage.tool_calls?.map((tc) => tc.id) ?? []);
|
|
85
91
|
|
|
86
92
|
// Check if any tool search results exist after the AI message
|
|
93
|
+
// Use getType() instead of instanceof to avoid module mismatch issues
|
|
87
94
|
for (let i = latestAIParentIndex + 1; i < messages.length; i++) {
|
|
88
95
|
const msg = messages[i];
|
|
89
96
|
if (
|
|
90
|
-
msg
|
|
91
|
-
msg.name === Constants.TOOL_SEARCH_REGEX &&
|
|
92
|
-
toolCallIds.has(msg.tool_call_id)
|
|
97
|
+
msg.getType() === MessageTypes.TOOL &&
|
|
98
|
+
(msg as ToolMessage).name === Constants.TOOL_SEARCH_REGEX &&
|
|
99
|
+
toolCallIds.has((msg as ToolMessage).tool_call_id)
|
|
93
100
|
) {
|
|
94
101
|
return true;
|
|
95
102
|
}
|
package/src/scripts/simple.ts
CHANGED