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.
Files changed (114) hide show
  1. package/dist/cjs/agents/AgentContext.cjs +3 -1
  2. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  3. package/dist/cjs/common/enum.cjs +18 -0
  4. package/dist/cjs/common/enum.cjs.map +1 -1
  5. package/dist/cjs/graphs/Graph.cjs +79 -32
  6. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  7. package/dist/cjs/llm/bedrock/index.cjs +5 -3
  8. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  9. package/dist/cjs/llm/openai/index.cjs +1 -0
  10. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  11. package/dist/cjs/llm/openrouter/index.cjs +10 -1
  12. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  13. package/dist/cjs/llm/vertexai/index.cjs +7 -8
  14. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  15. package/dist/cjs/main.cjs +15 -0
  16. package/dist/cjs/main.cjs.map +1 -1
  17. package/dist/cjs/messages/cache.cjs +11 -6
  18. package/dist/cjs/messages/cache.cjs.map +1 -1
  19. package/dist/cjs/messages/core.cjs +16 -8
  20. package/dist/cjs/messages/core.cjs.map +1 -1
  21. package/dist/cjs/messages/format.cjs +9 -2
  22. package/dist/cjs/messages/format.cjs.map +1 -1
  23. package/dist/cjs/messages/tools.cjs +17 -10
  24. package/dist/cjs/messages/tools.cjs.map +1 -1
  25. package/dist/cjs/stream.cjs +30 -16
  26. package/dist/cjs/stream.cjs.map +1 -1
  27. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +209 -47
  28. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  29. package/dist/cjs/tools/ToolNode.cjs +73 -3
  30. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  31. package/dist/cjs/tools/handlers.cjs +1 -0
  32. package/dist/cjs/tools/handlers.cjs.map +1 -1
  33. package/dist/cjs/tools/search/search.cjs.map +1 -1
  34. package/dist/cjs/tools/search/tool.cjs +3 -1
  35. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  36. package/dist/cjs/utils/contextAnalytics.cjs +66 -0
  37. package/dist/cjs/utils/contextAnalytics.cjs.map +1 -0
  38. package/dist/cjs/utils/run.cjs.map +1 -1
  39. package/dist/cjs/utils/toonFormat.cjs +388 -0
  40. package/dist/cjs/utils/toonFormat.cjs.map +1 -0
  41. package/dist/esm/agents/AgentContext.mjs +3 -1
  42. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  43. package/dist/esm/common/enum.mjs +19 -1
  44. package/dist/esm/common/enum.mjs.map +1 -1
  45. package/dist/esm/graphs/Graph.mjs +81 -34
  46. package/dist/esm/graphs/Graph.mjs.map +1 -1
  47. package/dist/esm/llm/bedrock/index.mjs +5 -3
  48. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  49. package/dist/esm/llm/openai/index.mjs +1 -0
  50. package/dist/esm/llm/openai/index.mjs.map +1 -1
  51. package/dist/esm/llm/openrouter/index.mjs +10 -1
  52. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  53. package/dist/esm/llm/vertexai/index.mjs +7 -8
  54. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  55. package/dist/esm/main.mjs +4 -2
  56. package/dist/esm/main.mjs.map +1 -1
  57. package/dist/esm/messages/cache.mjs +11 -6
  58. package/dist/esm/messages/cache.mjs.map +1 -1
  59. package/dist/esm/messages/core.mjs +18 -10
  60. package/dist/esm/messages/core.mjs.map +1 -1
  61. package/dist/esm/messages/format.mjs +10 -3
  62. package/dist/esm/messages/format.mjs.map +1 -1
  63. package/dist/esm/messages/tools.mjs +19 -12
  64. package/dist/esm/messages/tools.mjs.map +1 -1
  65. package/dist/esm/stream.mjs +30 -16
  66. package/dist/esm/stream.mjs.map +1 -1
  67. package/dist/esm/tools/ProgrammaticToolCalling.mjs +208 -48
  68. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  69. package/dist/esm/tools/ToolNode.mjs +73 -3
  70. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  71. package/dist/esm/tools/handlers.mjs +1 -0
  72. package/dist/esm/tools/handlers.mjs.map +1 -1
  73. package/dist/esm/tools/search/search.mjs.map +1 -1
  74. package/dist/esm/tools/search/tool.mjs +3 -1
  75. package/dist/esm/tools/search/tool.mjs.map +1 -1
  76. package/dist/esm/utils/contextAnalytics.mjs +64 -0
  77. package/dist/esm/utils/contextAnalytics.mjs.map +1 -0
  78. package/dist/esm/utils/run.mjs.map +1 -1
  79. package/dist/esm/utils/toonFormat.mjs +381 -0
  80. package/dist/esm/utils/toonFormat.mjs.map +1 -0
  81. package/dist/types/common/enum.d.ts +17 -0
  82. package/dist/types/graphs/Graph.d.ts +8 -0
  83. package/dist/types/tools/ProgrammaticToolCalling.d.ts +19 -0
  84. package/dist/types/types/tools.d.ts +3 -1
  85. package/dist/types/utils/contextAnalytics.d.ts +37 -0
  86. package/dist/types/utils/index.d.ts +2 -0
  87. package/dist/types/utils/toonFormat.d.ts +111 -0
  88. package/package.json +3 -2
  89. package/src/agents/AgentContext.ts +28 -20
  90. package/src/common/enum.ts +18 -0
  91. package/src/graphs/Graph.ts +152 -62
  92. package/src/llm/bedrock/__tests__/bedrock-caching.test.ts +495 -473
  93. package/src/llm/bedrock/index.ts +47 -35
  94. package/src/llm/openrouter/index.ts +11 -1
  95. package/src/llm/vertexai/index.ts +9 -10
  96. package/src/messages/cache.ts +104 -55
  97. package/src/messages/core.ts +29 -19
  98. package/src/messages/format.ts +14 -3
  99. package/src/messages/tools.ts +20 -13
  100. package/src/scripts/simple.ts +1 -1
  101. package/src/specs/emergency-prune.test.ts +407 -355
  102. package/src/stream.ts +28 -20
  103. package/src/tools/ProgrammaticToolCalling.ts +246 -52
  104. package/src/tools/ToolNode.ts +78 -5
  105. package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +155 -0
  106. package/src/tools/search/jina-reranker.test.ts +32 -28
  107. package/src/tools/search/search.ts +3 -1
  108. package/src/tools/search/tool.ts +16 -7
  109. package/src/types/tools.ts +3 -1
  110. package/src/utils/contextAnalytics.ts +103 -0
  111. package/src/utils/index.ts +2 -0
  112. package/src/utils/llmConfig.ts +8 -1
  113. package/src/utils/run.ts +5 -4
  114. package/src/utils/toonFormat.ts +475 -0
@@ -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
- if (!(lastMessage instanceof ToolMessage)) return [];
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 === lastMessage.tool_call_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
- if (!(msg instanceof ToolMessage)) continue;
46
- if (msg.name !== Constants.TOOL_SEARCH_REGEX) continue;
47
- if (!toolCallIds.has(msg.tool_call_id)) continue;
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 msg.artifact === 'object' && msg.artifact != null) {
51
- const artifact = msg.artifact as ToolSearchArtifact;
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
- if (!(lastMessage instanceof ToolMessage)) return false;
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 === lastMessage.tool_call_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 instanceof ToolMessage &&
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
  }
@@ -145,7 +145,7 @@ async function testStandardStreaming(): Promise<void> {
145
145
  });
146
146
 
147
147
  const config = {
148
- runId: 'test-simple-script',
148
+ runId: uuidv4(),
149
149
  configurable: {
150
150
  user_id: 'user-123',
151
151
  thread_id: 'conversation-num-1',