@illuma-ai/agents 1.0.90 → 1.0.93

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 (838) hide show
  1. package/dist/cjs/agents/AgentContext.cjs +98 -49
  2. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  3. package/dist/cjs/common/constants.cjs +25 -0
  4. package/dist/cjs/common/constants.cjs.map +1 -0
  5. package/dist/cjs/common/enum.cjs +30 -0
  6. package/dist/cjs/common/enum.cjs.map +1 -1
  7. package/dist/cjs/events.cjs +9 -4
  8. package/dist/cjs/events.cjs.map +1 -1
  9. package/dist/cjs/graphs/Graph.cjs +397 -92
  10. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  11. package/dist/cjs/graphs/MultiAgentGraph.cjs +223 -92
  12. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  13. package/dist/cjs/instrumentation.cjs +30 -14
  14. package/dist/cjs/instrumentation.cjs.map +1 -1
  15. package/dist/cjs/llm/anthropic/index.cjs +43 -11
  16. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  17. package/dist/cjs/llm/anthropic/types.cjs.map +1 -1
  18. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +10 -7
  19. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  20. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +32 -0
  21. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
  22. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -1
  23. package/dist/cjs/llm/bedrock/index.cjs +129 -101
  24. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  25. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +489 -0
  26. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -0
  27. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs +176 -0
  28. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs.map +1 -0
  29. package/dist/cjs/llm/fake.cjs.map +1 -1
  30. package/dist/cjs/llm/google/index.cjs.map +1 -1
  31. package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
  32. package/dist/cjs/llm/openai/index.cjs +1 -1
  33. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  34. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  35. package/dist/cjs/llm/openrouter/index.cjs +59 -5
  36. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  37. package/dist/cjs/llm/providers.cjs.map +1 -1
  38. package/dist/cjs/llm/text.cjs.map +1 -1
  39. package/dist/cjs/llm/vertexai/index.cjs +80 -2
  40. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  41. package/dist/cjs/main.cjs +60 -27
  42. package/dist/cjs/main.cjs.map +1 -1
  43. package/dist/cjs/messages/cache.cjs +131 -108
  44. package/dist/cjs/messages/cache.cjs.map +1 -1
  45. package/dist/cjs/messages/content.cjs.map +1 -1
  46. package/dist/cjs/messages/core.cjs +3 -0
  47. package/dist/cjs/messages/core.cjs.map +1 -1
  48. package/dist/cjs/messages/format.cjs +265 -47
  49. package/dist/cjs/messages/format.cjs.map +1 -1
  50. package/dist/cjs/messages/ids.cjs.map +1 -1
  51. package/dist/cjs/messages/prune.cjs +55 -2
  52. package/dist/cjs/messages/prune.cjs.map +1 -1
  53. package/dist/cjs/messages/summarize.cjs +170 -0
  54. package/dist/cjs/messages/summarize.cjs.map +1 -0
  55. package/dist/cjs/messages/tools.cjs.map +1 -1
  56. package/dist/cjs/run.cjs +87 -30
  57. package/dist/cjs/run.cjs.map +1 -1
  58. package/dist/cjs/schemas/validate.cjs.map +1 -1
  59. package/dist/cjs/splitStream.cjs.map +1 -1
  60. package/dist/cjs/stream.cjs +59 -25
  61. package/dist/cjs/stream.cjs.map +1 -1
  62. package/dist/cjs/tools/AskUser.cjs +131 -0
  63. package/dist/cjs/tools/AskUser.cjs.map +1 -0
  64. package/dist/cjs/tools/BrowserTools.cjs +11 -7
  65. package/dist/cjs/tools/BrowserTools.cjs.map +1 -1
  66. package/dist/cjs/tools/Calculator.cjs.map +1 -1
  67. package/dist/cjs/tools/CodeExecutor.cjs +46 -4
  68. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  69. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +36 -53
  70. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  71. package/dist/cjs/tools/StreamingToolCallBuffer.cjs +208 -0
  72. package/dist/cjs/tools/StreamingToolCallBuffer.cjs.map +1 -0
  73. package/dist/cjs/tools/ToolNode.cjs +333 -30
  74. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  75. package/dist/cjs/tools/ToolSearch.cjs +66 -30
  76. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  77. package/dist/cjs/tools/handlers.cjs +94 -8
  78. package/dist/cjs/tools/handlers.cjs.map +1 -1
  79. package/dist/cjs/tools/schema.cjs.map +1 -1
  80. package/dist/cjs/tools/search/content.cjs.map +1 -1
  81. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
  82. package/dist/cjs/tools/search/format.cjs.map +1 -1
  83. package/dist/cjs/tools/search/highlights.cjs.map +1 -1
  84. package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
  85. package/dist/cjs/tools/search/schema.cjs.map +1 -1
  86. package/dist/cjs/tools/search/search.cjs +1 -0
  87. package/dist/cjs/tools/search/search.cjs.map +1 -1
  88. package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -1
  89. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  90. package/dist/cjs/tools/search/utils.cjs.map +1 -1
  91. package/dist/cjs/types/graph.cjs +1 -1
  92. package/dist/cjs/types/graph.cjs.map +1 -1
  93. package/dist/cjs/utils/contextAnalytics.cjs +23 -6
  94. package/dist/cjs/utils/contextAnalytics.cjs.map +1 -1
  95. package/dist/cjs/utils/events.cjs.map +1 -1
  96. package/dist/cjs/utils/graph.cjs.map +1 -1
  97. package/dist/cjs/utils/handlers.cjs.map +1 -1
  98. package/dist/cjs/utils/llm.cjs.map +1 -1
  99. package/dist/cjs/utils/misc.cjs.map +1 -1
  100. package/dist/cjs/utils/run.cjs +3 -1
  101. package/dist/cjs/utils/run.cjs.map +1 -1
  102. package/dist/cjs/utils/schema.cjs.map +1 -1
  103. package/dist/cjs/utils/title.cjs.map +1 -1
  104. package/dist/cjs/utils/tokens.cjs +33 -58
  105. package/dist/cjs/utils/tokens.cjs.map +1 -1
  106. package/dist/cjs/utils/toolCallContinuation.cjs +55 -0
  107. package/dist/cjs/utils/toolCallContinuation.cjs.map +1 -0
  108. package/dist/cjs/utils/toonFormat.cjs.map +1 -1
  109. package/dist/esm/agents/AgentContext.mjs +98 -49
  110. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  111. package/dist/esm/common/constants.mjs +22 -0
  112. package/dist/esm/common/constants.mjs.map +1 -0
  113. package/dist/esm/common/enum.mjs +31 -1
  114. package/dist/esm/common/enum.mjs.map +1 -1
  115. package/dist/esm/events.mjs +9 -4
  116. package/dist/esm/events.mjs.map +1 -1
  117. package/dist/esm/graphs/Graph.mjs +393 -88
  118. package/dist/esm/graphs/Graph.mjs.map +1 -1
  119. package/dist/esm/graphs/MultiAgentGraph.mjs +224 -93
  120. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  121. package/dist/esm/instrumentation.mjs +30 -14
  122. package/dist/esm/instrumentation.mjs.map +1 -1
  123. package/dist/esm/llm/anthropic/index.mjs +43 -11
  124. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  125. package/dist/esm/llm/anthropic/types.mjs.map +1 -1
  126. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +10 -7
  127. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  128. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +32 -0
  129. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
  130. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -1
  131. package/dist/esm/llm/bedrock/index.mjs +128 -101
  132. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  133. package/dist/esm/llm/bedrock/utils/message_inputs.mjs +484 -0
  134. package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -0
  135. package/dist/esm/llm/bedrock/utils/message_outputs.mjs +171 -0
  136. package/dist/esm/llm/bedrock/utils/message_outputs.mjs.map +1 -0
  137. package/dist/esm/llm/fake.mjs.map +1 -1
  138. package/dist/esm/llm/google/index.mjs.map +1 -1
  139. package/dist/esm/llm/google/utils/common.mjs.map +1 -1
  140. package/dist/esm/llm/openai/index.mjs +1 -1
  141. package/dist/esm/llm/openai/index.mjs.map +1 -1
  142. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  143. package/dist/esm/llm/openrouter/index.mjs +59 -5
  144. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  145. package/dist/esm/llm/providers.mjs.map +1 -1
  146. package/dist/esm/llm/text.mjs.map +1 -1
  147. package/dist/esm/llm/vertexai/index.mjs +80 -2
  148. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  149. package/dist/esm/main.mjs +8 -3
  150. package/dist/esm/main.mjs.map +1 -1
  151. package/dist/esm/messages/cache.mjs +131 -108
  152. package/dist/esm/messages/cache.mjs.map +1 -1
  153. package/dist/esm/messages/content.mjs.map +1 -1
  154. package/dist/esm/messages/core.mjs +4 -1
  155. package/dist/esm/messages/core.mjs.map +1 -1
  156. package/dist/esm/messages/format.mjs +267 -49
  157. package/dist/esm/messages/format.mjs.map +1 -1
  158. package/dist/esm/messages/ids.mjs.map +1 -1
  159. package/dist/esm/messages/prune.mjs +56 -4
  160. package/dist/esm/messages/prune.mjs.map +1 -1
  161. package/dist/esm/messages/summarize.mjs +161 -0
  162. package/dist/esm/messages/summarize.mjs.map +1 -0
  163. package/dist/esm/messages/tools.mjs.map +1 -1
  164. package/dist/esm/run.mjs +88 -31
  165. package/dist/esm/run.mjs.map +1 -1
  166. package/dist/esm/schemas/validate.mjs.map +1 -1
  167. package/dist/esm/splitStream.mjs.map +1 -1
  168. package/dist/esm/stream.mjs +60 -26
  169. package/dist/esm/stream.mjs.map +1 -1
  170. package/dist/esm/tools/AskUser.mjs +125 -0
  171. package/dist/esm/tools/AskUser.mjs.map +1 -0
  172. package/dist/esm/tools/BrowserTools.mjs +11 -7
  173. package/dist/esm/tools/BrowserTools.mjs.map +1 -1
  174. package/dist/esm/tools/Calculator.mjs.map +1 -1
  175. package/dist/esm/tools/CodeExecutor.mjs +46 -4
  176. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  177. package/dist/esm/tools/ProgrammaticToolCalling.mjs +37 -54
  178. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  179. package/dist/esm/tools/StreamingToolCallBuffer.mjs +206 -0
  180. package/dist/esm/tools/StreamingToolCallBuffer.mjs.map +1 -0
  181. package/dist/esm/tools/ToolNode.mjs +333 -30
  182. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  183. package/dist/esm/tools/ToolSearch.mjs +66 -30
  184. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  185. package/dist/esm/tools/handlers.mjs +95 -9
  186. package/dist/esm/tools/handlers.mjs.map +1 -1
  187. package/dist/esm/tools/schema.mjs.map +1 -1
  188. package/dist/esm/tools/search/content.mjs.map +1 -1
  189. package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
  190. package/dist/esm/tools/search/format.mjs.map +1 -1
  191. package/dist/esm/tools/search/highlights.mjs.map +1 -1
  192. package/dist/esm/tools/search/rerankers.mjs.map +1 -1
  193. package/dist/esm/tools/search/schema.mjs.map +1 -1
  194. package/dist/esm/tools/search/search.mjs +1 -0
  195. package/dist/esm/tools/search/search.mjs.map +1 -1
  196. package/dist/esm/tools/search/serper-scraper.mjs.map +1 -1
  197. package/dist/esm/tools/search/tool.mjs.map +1 -1
  198. package/dist/esm/tools/search/utils.mjs.map +1 -1
  199. package/dist/esm/types/graph.mjs +1 -1
  200. package/dist/esm/types/graph.mjs.map +1 -1
  201. package/dist/esm/utils/contextAnalytics.mjs +23 -6
  202. package/dist/esm/utils/contextAnalytics.mjs.map +1 -1
  203. package/dist/esm/utils/events.mjs.map +1 -1
  204. package/dist/esm/utils/graph.mjs.map +1 -1
  205. package/dist/esm/utils/handlers.mjs.map +1 -1
  206. package/dist/esm/utils/llm.mjs.map +1 -1
  207. package/dist/esm/utils/misc.mjs.map +1 -1
  208. package/dist/esm/utils/run.mjs +3 -1
  209. package/dist/esm/utils/run.mjs.map +1 -1
  210. package/dist/esm/utils/schema.mjs.map +1 -1
  211. package/dist/esm/utils/title.mjs.map +1 -1
  212. package/dist/esm/utils/tokens.mjs +33 -59
  213. package/dist/esm/utils/tokens.mjs.map +1 -1
  214. package/dist/esm/utils/toolCallContinuation.mjs +52 -0
  215. package/dist/esm/utils/toolCallContinuation.mjs.map +1 -0
  216. package/dist/esm/utils/toonFormat.mjs.map +1 -1
  217. package/dist/types/agents/AgentContext.d.ts +14 -7
  218. package/dist/types/common/constants.d.ts +18 -0
  219. package/dist/types/common/enum.d.ts +28 -0
  220. package/dist/types/common/index.d.ts +1 -0
  221. package/dist/types/events.d.ts +10 -3
  222. package/dist/types/graphs/Graph.d.ts +37 -0
  223. package/dist/types/index.d.ts +4 -0
  224. package/dist/types/llm/anthropic/index.d.ts +7 -1
  225. package/dist/types/llm/anthropic/types.d.ts +5 -2
  226. package/dist/types/llm/anthropic/utils/message_outputs.d.ts +1 -1
  227. package/dist/types/llm/bedrock/index.d.ts +40 -33
  228. package/dist/types/llm/bedrock/utils/message_outputs.d.ts +1 -1
  229. package/dist/types/llm/google/index.d.ts +2 -3
  230. package/dist/types/llm/openrouter/index.d.ts +21 -1
  231. package/dist/types/llm/vertexai/index.d.ts +3 -2
  232. package/dist/types/messages/cache.d.ts +1 -1
  233. package/dist/types/messages/index.d.ts +1 -0
  234. package/dist/types/messages/prune.d.ts +2 -7
  235. package/dist/types/messages/summarize.d.ts +33 -0
  236. package/dist/types/run.d.ts +6 -0
  237. package/dist/types/tools/AskUser.d.ts +408 -0
  238. package/dist/types/tools/BrowserTools.d.ts +2 -2
  239. package/dist/types/tools/CodeExecutor.d.ts +2 -2
  240. package/dist/types/tools/StreamingToolCallBuffer.d.ts +106 -0
  241. package/dist/types/tools/ToolNode.d.ts +55 -3
  242. package/dist/types/tools/ToolSearch.d.ts +9 -5
  243. package/dist/types/tools/handlers.d.ts +2 -2
  244. package/dist/types/types/graph.d.ts +9 -2
  245. package/dist/types/types/llm.d.ts +8 -3
  246. package/dist/types/types/run.d.ts +2 -0
  247. package/dist/types/types/tools.d.ts +20 -2
  248. package/dist/types/utils/contextAnalytics.d.ts +5 -4
  249. package/dist/types/utils/index.d.ts +1 -0
  250. package/dist/types/utils/tokens.d.ts +6 -19
  251. package/dist/types/utils/toolCallContinuation.d.ts +30 -0
  252. package/package.json +15 -8
  253. package/src/agents/AgentContext.js +782 -0
  254. package/src/agents/AgentContext.js.map +1 -0
  255. package/src/agents/AgentContext.test.js +421 -0
  256. package/src/agents/AgentContext.test.js.map +1 -0
  257. package/src/agents/AgentContext.ts +132 -64
  258. package/src/agents/__tests__/AgentContext.test.js +678 -0
  259. package/src/agents/__tests__/AgentContext.test.js.map +1 -0
  260. package/src/agents/__tests__/AgentContext.test.ts +25 -4
  261. package/src/agents/__tests__/resolveStructuredOutputMode.test.js +117 -0
  262. package/src/agents/__tests__/resolveStructuredOutputMode.test.js.map +1 -0
  263. package/src/common/__tests__/enum.test.ts +135 -0
  264. package/src/common/constants.ts +21 -0
  265. package/src/common/enum.js +192 -0
  266. package/src/common/enum.js.map +1 -0
  267. package/src/common/enum.ts +30 -0
  268. package/src/common/index.js +3 -0
  269. package/src/common/index.js.map +1 -0
  270. package/src/common/index.ts +2 -1
  271. package/src/events.js +166 -0
  272. package/src/events.js.map +1 -0
  273. package/src/events.ts +11 -14
  274. package/src/graphs/Graph.js +1857 -0
  275. package/src/graphs/Graph.js.map +1 -0
  276. package/src/graphs/Graph.ts +580 -162
  277. package/src/graphs/MultiAgentGraph.js +1092 -0
  278. package/src/graphs/MultiAgentGraph.js.map +1 -0
  279. package/src/graphs/MultiAgentGraph.ts +331 -112
  280. package/src/graphs/__tests__/adaptive-thinking.test.ts +369 -0
  281. package/src/graphs/__tests__/graph-direct-tool-names.test.ts +210 -0
  282. package/src/graphs/__tests__/multi-agent-edges.test.ts +237 -0
  283. package/src/graphs/__tests__/structured-output.integration.test.js +624 -0
  284. package/src/graphs/__tests__/structured-output.integration.test.js.map +1 -0
  285. package/src/graphs/__tests__/structured-output.test.js +144 -0
  286. package/src/graphs/__tests__/structured-output.test.js.map +1 -0
  287. package/src/graphs/contextManagement.e2e.test.js +718 -0
  288. package/src/graphs/contextManagement.e2e.test.js.map +1 -0
  289. package/src/graphs/contextManagement.e2e.test.ts +990 -0
  290. package/src/graphs/contextManagement.test.js +485 -0
  291. package/src/graphs/contextManagement.test.js.map +1 -0
  292. package/src/graphs/contextManagement.test.ts +625 -0
  293. package/src/graphs/handoffValidation.test.js +276 -0
  294. package/src/graphs/handoffValidation.test.js.map +1 -0
  295. package/src/graphs/handoffValidation.test.ts +353 -0
  296. package/src/graphs/index.js +3 -0
  297. package/src/graphs/index.js.map +1 -0
  298. package/src/index.js +28 -0
  299. package/src/index.js.map +1 -0
  300. package/src/index.ts +13 -0
  301. package/src/instrumentation.js +21 -0
  302. package/src/instrumentation.js.map +1 -0
  303. package/src/instrumentation.ts +38 -17
  304. package/src/llm/anthropic/index.js +319 -0
  305. package/src/llm/anthropic/index.js.map +1 -0
  306. package/src/llm/anthropic/index.ts +68 -15
  307. package/src/llm/anthropic/llm.spec.ts +402 -0
  308. package/src/llm/anthropic/types.js +46 -0
  309. package/src/llm/anthropic/types.js.map +1 -0
  310. package/src/llm/anthropic/types.ts +8 -2
  311. package/src/llm/anthropic/utils/message_inputs.js +627 -0
  312. package/src/llm/anthropic/utils/message_inputs.js.map +1 -0
  313. package/src/llm/anthropic/utils/message_inputs.ts +16 -33
  314. package/src/llm/anthropic/utils/message_outputs.js +290 -0
  315. package/src/llm/anthropic/utils/message_outputs.js.map +1 -0
  316. package/src/llm/anthropic/utils/message_outputs.ts +40 -1
  317. package/src/llm/anthropic/utils/output_parsers.js +89 -0
  318. package/src/llm/anthropic/utils/output_parsers.js.map +1 -0
  319. package/src/llm/anthropic/utils/tools.js +25 -0
  320. package/src/llm/anthropic/utils/tools.js.map +1 -0
  321. package/src/llm/bedrock/__tests__/bedrock-caching.test.js +392 -0
  322. package/src/llm/bedrock/__tests__/bedrock-caching.test.js.map +1 -0
  323. package/src/llm/bedrock/__tests__/bedrock-caching.test.ts +24 -40
  324. package/src/llm/bedrock/index.js +303 -0
  325. package/src/llm/bedrock/index.js.map +1 -0
  326. package/src/llm/bedrock/index.ts +171 -134
  327. package/src/llm/bedrock/llm.spec.ts +395 -52
  328. package/src/llm/bedrock/types.js +2 -0
  329. package/src/llm/bedrock/types.js.map +1 -0
  330. package/src/llm/bedrock/utils/index.js +6 -0
  331. package/src/llm/bedrock/utils/index.js.map +1 -0
  332. package/src/llm/bedrock/utils/message_inputs.js +463 -0
  333. package/src/llm/bedrock/utils/message_inputs.js.map +1 -0
  334. package/src/llm/bedrock/utils/message_inputs.ts +30 -5
  335. package/src/llm/bedrock/utils/message_outputs.js +269 -0
  336. package/src/llm/bedrock/utils/message_outputs.js.map +1 -0
  337. package/src/llm/bedrock/utils/message_outputs.ts +70 -22
  338. package/src/llm/fake.js +92 -0
  339. package/src/llm/fake.js.map +1 -0
  340. package/src/llm/google/index.js +215 -0
  341. package/src/llm/google/index.js.map +1 -0
  342. package/src/llm/google/index.ts +2 -3
  343. package/src/llm/google/types.js +12 -0
  344. package/src/llm/google/types.js.map +1 -0
  345. package/src/llm/google/utils/common.js +670 -0
  346. package/src/llm/google/utils/common.js.map +1 -0
  347. package/src/llm/google/utils/tools.js +111 -0
  348. package/src/llm/google/utils/tools.js.map +1 -0
  349. package/src/llm/google/utils/zod_to_genai_parameters.js +47 -0
  350. package/src/llm/google/utils/zod_to_genai_parameters.js.map +1 -0
  351. package/src/llm/openai/index.js +1033 -0
  352. package/src/llm/openai/index.js.map +1 -0
  353. package/src/llm/openai/types.js +2 -0
  354. package/src/llm/openai/types.js.map +1 -0
  355. package/src/llm/openai/utils/index.js +756 -0
  356. package/src/llm/openai/utils/index.js.map +1 -0
  357. package/src/llm/openai/utils/isReasoningModel.test.js +79 -0
  358. package/src/llm/openai/utils/isReasoningModel.test.js.map +1 -0
  359. package/src/llm/openrouter/index.js +261 -0
  360. package/src/llm/openrouter/index.js.map +1 -0
  361. package/src/llm/openrouter/index.ts +117 -6
  362. package/src/llm/openrouter/reasoning.test.js +181 -0
  363. package/src/llm/openrouter/reasoning.test.js.map +1 -0
  364. package/src/llm/openrouter/reasoning.test.ts +207 -0
  365. package/src/llm/providers.js +36 -0
  366. package/src/llm/providers.js.map +1 -0
  367. package/src/llm/text.js +65 -0
  368. package/src/llm/text.js.map +1 -0
  369. package/src/llm/vertexai/index.js +402 -0
  370. package/src/llm/vertexai/index.js.map +1 -0
  371. package/src/llm/vertexai/index.ts +115 -5
  372. package/src/llm/vertexai/llm.spec.ts +114 -0
  373. package/src/messages/__tests__/tools.test.js +392 -0
  374. package/src/messages/__tests__/tools.test.js.map +1 -0
  375. package/src/messages/cache.js +404 -0
  376. package/src/messages/cache.js.map +1 -0
  377. package/src/messages/cache.test.js +1167 -0
  378. package/src/messages/cache.test.js.map +1 -0
  379. package/src/messages/cache.test.ts +178 -16
  380. package/src/messages/cache.ts +152 -147
  381. package/src/messages/content.js +48 -0
  382. package/src/messages/content.js.map +1 -0
  383. package/src/messages/content.test.js +314 -0
  384. package/src/messages/content.test.js.map +1 -0
  385. package/src/messages/core.js +359 -0
  386. package/src/messages/core.js.map +1 -0
  387. package/src/messages/core.ts +5 -0
  388. package/src/messages/ensureThinkingBlock.test.js +997 -0
  389. package/src/messages/ensureThinkingBlock.test.js.map +1 -0
  390. package/src/messages/ensureThinkingBlock.test.ts +751 -10
  391. package/src/messages/format.js +973 -0
  392. package/src/messages/format.js.map +1 -0
  393. package/src/messages/format.ts +334 -57
  394. package/src/messages/formatAgentMessages.test.js +2278 -0
  395. package/src/messages/formatAgentMessages.test.js.map +1 -0
  396. package/src/messages/formatAgentMessages.test.ts +1175 -1
  397. package/src/messages/formatAgentMessages.tools.test.js +362 -0
  398. package/src/messages/formatAgentMessages.tools.test.js.map +1 -0
  399. package/src/messages/formatMessage.test.js +608 -0
  400. package/src/messages/formatMessage.test.js.map +1 -0
  401. package/src/messages/ids.js +18 -0
  402. package/src/messages/ids.js.map +1 -0
  403. package/src/messages/index.js +9 -0
  404. package/src/messages/index.js.map +1 -0
  405. package/src/messages/index.ts +1 -0
  406. package/src/messages/labelContentByAgent.test.js +725 -0
  407. package/src/messages/labelContentByAgent.test.js.map +1 -0
  408. package/src/messages/prune.js +438 -0
  409. package/src/messages/prune.js.map +1 -0
  410. package/src/messages/prune.ts +87 -25
  411. package/src/messages/reducer.js +60 -0
  412. package/src/messages/reducer.js.map +1 -0
  413. package/src/messages/shiftIndexTokenCountMap.test.js +63 -0
  414. package/src/messages/shiftIndexTokenCountMap.test.js.map +1 -0
  415. package/src/messages/summarize.js +146 -0
  416. package/src/messages/summarize.js.map +1 -0
  417. package/src/messages/summarize.test.js +332 -0
  418. package/src/messages/summarize.test.js.map +1 -0
  419. package/src/messages/summarize.test.ts +466 -0
  420. package/src/messages/summarize.ts +222 -0
  421. package/src/messages/tools.js +90 -0
  422. package/src/messages/tools.js.map +1 -0
  423. package/src/mockStream.js +81 -0
  424. package/src/mockStream.js.map +1 -0
  425. package/src/prompts/collab.js +7 -0
  426. package/src/prompts/collab.js.map +1 -0
  427. package/src/prompts/index.js +3 -0
  428. package/src/prompts/index.js.map +1 -0
  429. package/src/prompts/taskmanager.js +58 -0
  430. package/src/prompts/taskmanager.js.map +1 -0
  431. package/src/run.js +427 -0
  432. package/src/run.js.map +1 -0
  433. package/src/run.ts +101 -33
  434. package/src/schemas/index.js +3 -0
  435. package/src/schemas/index.js.map +1 -0
  436. package/src/schemas/schema-preparation.test.js +370 -0
  437. package/src/schemas/schema-preparation.test.js.map +1 -0
  438. package/src/schemas/validate.js +314 -0
  439. package/src/schemas/validate.js.map +1 -0
  440. package/src/schemas/validate.test.js +264 -0
  441. package/src/schemas/validate.test.js.map +1 -0
  442. package/src/scripts/abort.js +127 -0
  443. package/src/scripts/abort.js.map +1 -0
  444. package/src/scripts/ant_web_search.js +130 -0
  445. package/src/scripts/ant_web_search.js.map +1 -0
  446. package/src/scripts/ant_web_search.ts +1 -0
  447. package/src/scripts/ant_web_search_edge_case.js +133 -0
  448. package/src/scripts/ant_web_search_edge_case.js.map +1 -0
  449. package/src/scripts/ant_web_search_edge_case.ts +1 -0
  450. package/src/scripts/ant_web_search_error_edge_case.js +119 -0
  451. package/src/scripts/ant_web_search_error_edge_case.js.map +1 -0
  452. package/src/scripts/ant_web_search_error_edge_case.ts +1 -0
  453. package/src/scripts/args.js +41 -0
  454. package/src/scripts/args.js.map +1 -0
  455. package/src/scripts/bedrock-cache-debug.js +186 -0
  456. package/src/scripts/bedrock-cache-debug.js.map +1 -0
  457. package/src/scripts/bedrock-cache-debug.ts +250 -0
  458. package/src/scripts/bedrock-content-aggregation-test.js +195 -0
  459. package/src/scripts/bedrock-content-aggregation-test.js.map +1 -0
  460. package/src/scripts/bedrock-content-aggregation-test.ts +266 -0
  461. package/src/scripts/bedrock-merge-test.js +80 -0
  462. package/src/scripts/bedrock-merge-test.js.map +1 -0
  463. package/src/scripts/bedrock-merge-test.ts +107 -0
  464. package/src/scripts/bedrock-parallel-tools-test.js +150 -0
  465. package/src/scripts/bedrock-parallel-tools-test.js.map +1 -0
  466. package/src/scripts/bedrock-parallel-tools-test.ts +204 -0
  467. package/src/scripts/caching.js +106 -0
  468. package/src/scripts/caching.js.map +1 -0
  469. package/src/scripts/caching.ts +1 -0
  470. package/src/scripts/cli.js +152 -0
  471. package/src/scripts/cli.js.map +1 -0
  472. package/src/scripts/cli2.js +119 -0
  473. package/src/scripts/cli2.js.map +1 -0
  474. package/src/scripts/cli3.js +163 -0
  475. package/src/scripts/cli3.js.map +1 -0
  476. package/src/scripts/cli4.js +165 -0
  477. package/src/scripts/cli4.js.map +1 -0
  478. package/src/scripts/cli5.js +165 -0
  479. package/src/scripts/cli5.js.map +1 -0
  480. package/src/scripts/code_exec.js +171 -0
  481. package/src/scripts/code_exec.js.map +1 -0
  482. package/src/scripts/code_exec.ts +1 -0
  483. package/src/scripts/code_exec_files.js +180 -0
  484. package/src/scripts/code_exec_files.js.map +1 -0
  485. package/src/scripts/code_exec_files.ts +1 -0
  486. package/src/scripts/code_exec_multi_session.js +185 -0
  487. package/src/scripts/code_exec_multi_session.js.map +1 -0
  488. package/src/scripts/code_exec_multi_session.ts +9 -13
  489. package/src/scripts/code_exec_ptc.js +265 -0
  490. package/src/scripts/code_exec_ptc.js.map +1 -0
  491. package/src/scripts/code_exec_ptc.ts +1 -0
  492. package/src/scripts/code_exec_session.js +217 -0
  493. package/src/scripts/code_exec_session.js.map +1 -0
  494. package/src/scripts/code_exec_session.ts +1 -0
  495. package/src/scripts/code_exec_simple.js +120 -0
  496. package/src/scripts/code_exec_simple.js.map +1 -0
  497. package/src/scripts/code_exec_simple.ts +1 -0
  498. package/src/scripts/content.js +111 -0
  499. package/src/scripts/content.js.map +1 -0
  500. package/src/scripts/content.ts +1 -0
  501. package/src/scripts/empty_input.js +125 -0
  502. package/src/scripts/empty_input.js.map +1 -0
  503. package/src/scripts/handoff-test.js +96 -0
  504. package/src/scripts/handoff-test.js.map +1 -0
  505. package/src/scripts/image.js +138 -0
  506. package/src/scripts/image.js.map +1 -0
  507. package/src/scripts/image.ts +3 -1
  508. package/src/scripts/memory.js +83 -0
  509. package/src/scripts/memory.js.map +1 -0
  510. package/src/scripts/memory.ts +16 -6
  511. package/src/scripts/multi-agent-chain.js +271 -0
  512. package/src/scripts/multi-agent-chain.js.map +1 -0
  513. package/src/scripts/multi-agent-chain.ts +1 -0
  514. package/src/scripts/multi-agent-conditional.js +185 -0
  515. package/src/scripts/multi-agent-conditional.js.map +1 -0
  516. package/src/scripts/multi-agent-conditional.ts +1 -0
  517. package/src/scripts/multi-agent-document-review-chain.js +171 -0
  518. package/src/scripts/multi-agent-document-review-chain.js.map +1 -0
  519. package/src/scripts/multi-agent-document-review-chain.ts +1 -0
  520. package/src/scripts/multi-agent-hybrid-flow.js +264 -0
  521. package/src/scripts/multi-agent-hybrid-flow.js.map +1 -0
  522. package/src/scripts/multi-agent-hybrid-flow.ts +1 -0
  523. package/src/scripts/multi-agent-parallel-start.js +214 -0
  524. package/src/scripts/multi-agent-parallel-start.js.map +1 -0
  525. package/src/scripts/multi-agent-parallel-start.ts +4 -4
  526. package/src/scripts/multi-agent-parallel.js +346 -0
  527. package/src/scripts/multi-agent-parallel.js.map +1 -0
  528. package/src/scripts/multi-agent-parallel.ts +1 -0
  529. package/src/scripts/multi-agent-sequence.js +184 -0
  530. package/src/scripts/multi-agent-sequence.js.map +1 -0
  531. package/src/scripts/multi-agent-sequence.ts +4 -4
  532. package/src/scripts/multi-agent-supervisor.js +324 -0
  533. package/src/scripts/multi-agent-supervisor.js.map +1 -0
  534. package/src/scripts/multi-agent-supervisor.ts +1 -0
  535. package/src/scripts/multi-agent-test.js +147 -0
  536. package/src/scripts/multi-agent-test.js.map +1 -0
  537. package/src/scripts/multi-agent-test.ts +1 -0
  538. package/src/scripts/parallel-asymmetric-tools-test.js +202 -0
  539. package/src/scripts/parallel-asymmetric-tools-test.js.map +1 -0
  540. package/src/scripts/parallel-asymmetric-tools-test.ts +1 -0
  541. package/src/scripts/parallel-full-metadata-test.js +176 -0
  542. package/src/scripts/parallel-full-metadata-test.js.map +1 -0
  543. package/src/scripts/parallel-full-metadata-test.ts +1 -0
  544. package/src/scripts/parallel-tools-test.js +256 -0
  545. package/src/scripts/parallel-tools-test.js.map +1 -0
  546. package/src/scripts/parallel-tools-test.ts +1 -0
  547. package/src/scripts/poc-multi-agent-comprehensive.ts +1222 -0
  548. package/src/scripts/programmatic_exec.js +277 -0
  549. package/src/scripts/programmatic_exec.js.map +1 -0
  550. package/src/scripts/programmatic_exec_agent.js +168 -0
  551. package/src/scripts/programmatic_exec_agent.js.map +1 -0
  552. package/src/scripts/programmatic_exec_agent.ts +1 -0
  553. package/src/scripts/search.js +118 -0
  554. package/src/scripts/search.js.map +1 -0
  555. package/src/scripts/search.ts +1 -0
  556. package/src/scripts/sequential-full-metadata-test.js +143 -0
  557. package/src/scripts/sequential-full-metadata-test.js.map +1 -0
  558. package/src/scripts/sequential-full-metadata-test.ts +1 -0
  559. package/src/scripts/simple.js +174 -0
  560. package/src/scripts/simple.js.map +1 -0
  561. package/src/scripts/simple.ts +2 -1
  562. package/src/scripts/single-agent-metadata-test.js +152 -0
  563. package/src/scripts/single-agent-metadata-test.js.map +1 -0
  564. package/src/scripts/single-agent-metadata-test.ts +4 -6
  565. package/src/scripts/stream.js +113 -0
  566. package/src/scripts/stream.js.map +1 -0
  567. package/src/scripts/stream.ts +1 -0
  568. package/src/scripts/test-custom-prompt-key.js +132 -0
  569. package/src/scripts/test-custom-prompt-key.js.map +1 -0
  570. package/src/scripts/test-handoff-input.js +143 -0
  571. package/src/scripts/test-handoff-input.js.map +1 -0
  572. package/src/scripts/test-handoff-preamble.js +227 -0
  573. package/src/scripts/test-handoff-preamble.js.map +1 -0
  574. package/src/scripts/test-handoff-preamble.ts +1 -0
  575. package/src/scripts/test-handoff-steering.js +353 -0
  576. package/src/scripts/test-handoff-steering.js.map +1 -0
  577. package/src/scripts/test-handoff-steering.ts +430 -0
  578. package/src/scripts/test-multi-agent-list-handoff.js +318 -0
  579. package/src/scripts/test-multi-agent-list-handoff.js.map +1 -0
  580. package/src/scripts/test-multi-agent-list-handoff.ts +1 -0
  581. package/src/scripts/test-parallel-agent-labeling.js +253 -0
  582. package/src/scripts/test-parallel-agent-labeling.js.map +1 -0
  583. package/src/scripts/test-parallel-agent-labeling.ts +2 -0
  584. package/src/scripts/test-parallel-handoffs.js +229 -0
  585. package/src/scripts/test-parallel-handoffs.js.map +1 -0
  586. package/src/scripts/test-parallel-handoffs.ts +1 -0
  587. package/src/scripts/test-thinking-handoff-bedrock.js +132 -0
  588. package/src/scripts/test-thinking-handoff-bedrock.js.map +1 -0
  589. package/src/scripts/test-thinking-handoff-bedrock.ts +1 -0
  590. package/src/scripts/test-thinking-handoff.js +132 -0
  591. package/src/scripts/test-thinking-handoff.js.map +1 -0
  592. package/src/scripts/test-thinking-handoff.ts +1 -0
  593. package/src/scripts/test-thinking-to-thinking-handoff-bedrock.js +140 -0
  594. package/src/scripts/test-thinking-to-thinking-handoff-bedrock.js.map +1 -0
  595. package/src/scripts/test-thinking-to-thinking-handoff-bedrock.ts +166 -0
  596. package/src/scripts/test-tool-before-handoff-role-order.js +223 -0
  597. package/src/scripts/test-tool-before-handoff-role-order.js.map +1 -0
  598. package/src/scripts/test-tool-before-handoff-role-order.ts +276 -0
  599. package/src/scripts/test-tools-before-handoff.js +187 -0
  600. package/src/scripts/test-tools-before-handoff.js.map +1 -0
  601. package/src/scripts/test-tools-before-handoff.ts +4 -8
  602. package/src/scripts/test_code_api.js +263 -0
  603. package/src/scripts/test_code_api.js.map +1 -0
  604. package/src/scripts/thinking-bedrock.js +128 -0
  605. package/src/scripts/thinking-bedrock.js.map +1 -0
  606. package/src/scripts/thinking-bedrock.ts +1 -0
  607. package/src/scripts/thinking-vertexai.js +130 -0
  608. package/src/scripts/thinking-vertexai.js.map +1 -0
  609. package/src/scripts/thinking-vertexai.ts +168 -0
  610. package/src/scripts/thinking.js +134 -0
  611. package/src/scripts/thinking.js.map +1 -0
  612. package/src/scripts/thinking.ts +1 -0
  613. package/src/scripts/tool_search.js +114 -0
  614. package/src/scripts/tool_search.js.map +1 -0
  615. package/src/scripts/tools.js +125 -0
  616. package/src/scripts/tools.js.map +1 -0
  617. package/src/scripts/tools.ts +5 -19
  618. package/src/specs/agent-handoffs-bedrock.integration.test.js +280 -0
  619. package/src/specs/agent-handoffs-bedrock.integration.test.js.map +1 -0
  620. package/src/specs/agent-handoffs-bedrock.integration.test.ts +412 -375
  621. package/src/specs/agent-handoffs.test.js +924 -0
  622. package/src/specs/agent-handoffs.test.js.map +1 -0
  623. package/src/specs/agent-handoffs.test.ts +152 -39
  624. package/src/specs/anthropic.simple.test.js +287 -0
  625. package/src/specs/anthropic.simple.test.js.map +1 -0
  626. package/src/specs/anthropic.simple.test.ts +7 -4
  627. package/src/specs/azure.simple.test.js +381 -0
  628. package/src/specs/azure.simple.test.js.map +1 -0
  629. package/src/specs/azure.simple.test.ts +143 -5
  630. package/src/specs/cache.simple.test.js +282 -0
  631. package/src/specs/cache.simple.test.js.map +1 -0
  632. package/src/specs/cache.simple.test.ts +9 -2
  633. package/src/specs/custom-event-await.test.js +148 -0
  634. package/src/specs/custom-event-await.test.js.map +1 -0
  635. package/src/specs/custom-event-await.test.ts +215 -0
  636. package/src/specs/deepseek.simple.test.js +189 -0
  637. package/src/specs/deepseek.simple.test.js.map +1 -0
  638. package/src/specs/deepseek.simple.test.ts +4 -2
  639. package/src/specs/emergency-prune.test.js +308 -0
  640. package/src/specs/emergency-prune.test.js.map +1 -0
  641. package/src/specs/moonshot.simple.test.js +237 -0
  642. package/src/specs/moonshot.simple.test.js.map +1 -0
  643. package/src/specs/moonshot.simple.test.ts +6 -2
  644. package/src/specs/observability.integration.test.js +1337 -0
  645. package/src/specs/observability.integration.test.js.map +1 -0
  646. package/src/specs/observability.integration.test.ts +2223 -0
  647. package/src/specs/openai.simple.test.js +233 -0
  648. package/src/specs/openai.simple.test.js.map +1 -0
  649. package/src/specs/openai.simple.test.ts +4 -2
  650. package/src/specs/openrouter.simple.test.js +202 -0
  651. package/src/specs/openrouter.simple.test.js.map +1 -0
  652. package/src/specs/openrouter.simple.test.ts +165 -4
  653. package/src/specs/prune.test.js +733 -0
  654. package/src/specs/prune.test.js.map +1 -0
  655. package/src/specs/prune.test.ts +1 -0
  656. package/src/specs/reasoning.test.js +144 -0
  657. package/src/specs/reasoning.test.js.map +1 -0
  658. package/src/specs/reasoning.test.ts +2 -2
  659. package/src/specs/spec.utils.js +4 -0
  660. package/src/specs/spec.utils.js.map +1 -0
  661. package/src/specs/thinking-handoff.test.js +486 -0
  662. package/src/specs/thinking-handoff.test.js.map +1 -0
  663. package/src/specs/thinking-handoff.test.ts +3 -2
  664. package/src/specs/thinking-prune.test.js +600 -0
  665. package/src/specs/thinking-prune.test.js.map +1 -0
  666. package/src/specs/token-distribution-edge-case.test.js +246 -0
  667. package/src/specs/token-distribution-edge-case.test.js.map +1 -0
  668. package/src/specs/token-memoization.test.js +32 -0
  669. package/src/specs/token-memoization.test.js.map +1 -0
  670. package/src/specs/token-memoization.test.ts +14 -5
  671. package/src/specs/tokens.test.js +49 -0
  672. package/src/specs/tokens.test.js.map +1 -0
  673. package/src/specs/tokens.test.ts +64 -0
  674. package/src/specs/tool-error.test.js +139 -0
  675. package/src/specs/tool-error.test.js.map +1 -0
  676. package/src/specs/tool-error.test.ts +2 -2
  677. package/src/splitStream.js +204 -0
  678. package/src/splitStream.js.map +1 -0
  679. package/src/splitStream.test.js +504 -0
  680. package/src/splitStream.test.js.map +1 -0
  681. package/src/stream.js +650 -0
  682. package/src/stream.js.map +1 -0
  683. package/src/stream.test.js +225 -0
  684. package/src/stream.test.js.map +1 -0
  685. package/src/stream.test.ts +25 -15
  686. package/src/stream.ts +82 -32
  687. package/src/test/mockTools.js +340 -0
  688. package/src/test/mockTools.js.map +1 -0
  689. package/src/tools/AskUser.ts +159 -0
  690. package/src/tools/BrowserTools.js +245 -0
  691. package/src/tools/BrowserTools.js.map +1 -0
  692. package/src/tools/BrowserTools.ts +12 -8
  693. package/src/tools/Calculator.js +38 -0
  694. package/src/tools/Calculator.js.map +1 -0
  695. package/src/tools/Calculator.test.js +225 -0
  696. package/src/tools/Calculator.test.js.map +1 -0
  697. package/src/tools/CodeExecutor.js +233 -0
  698. package/src/tools/CodeExecutor.js.map +1 -0
  699. package/src/tools/CodeExecutor.selfhealing.test.ts +435 -0
  700. package/src/tools/CodeExecutor.ts +62 -4
  701. package/src/tools/ProgrammaticToolCalling.js +602 -0
  702. package/src/tools/ProgrammaticToolCalling.js.map +1 -0
  703. package/src/tools/ProgrammaticToolCalling.ts +40 -52
  704. package/src/tools/StreamingToolCallBuffer.js +179 -0
  705. package/src/tools/StreamingToolCallBuffer.js.map +1 -0
  706. package/src/tools/StreamingToolCallBuffer.ts +218 -0
  707. package/src/tools/ToolNode.js +930 -0
  708. package/src/tools/ToolNode.js.map +1 -0
  709. package/src/tools/ToolNode.ts +454 -41
  710. package/src/tools/ToolSearch.js +904 -0
  711. package/src/tools/ToolSearch.js.map +1 -0
  712. package/src/tools/ToolSearch.ts +84 -33
  713. package/src/tools/__tests__/AskUser.test.ts +537 -0
  714. package/src/tools/__tests__/BrowserTools.test.js +306 -0
  715. package/src/tools/__tests__/BrowserTools.test.js.map +1 -0
  716. package/src/tools/__tests__/BrowserTools.test.ts +131 -6
  717. package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.js +276 -0
  718. package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.js.map +1 -0
  719. package/src/tools/__tests__/ProgrammaticToolCalling.test.js +807 -0
  720. package/src/tools/__tests__/ProgrammaticToolCalling.test.js.map +1 -0
  721. package/src/tools/__tests__/StreamingToolCallBuffer.test.js +175 -0
  722. package/src/tools/__tests__/StreamingToolCallBuffer.test.js.map +1 -0
  723. package/src/tools/__tests__/StreamingToolCallBuffer.test.ts +263 -0
  724. package/src/tools/__tests__/ToolApproval.test.js +675 -0
  725. package/src/tools/__tests__/ToolApproval.test.js.map +1 -0
  726. package/src/tools/__tests__/ToolApproval.test.ts +194 -20
  727. package/src/tools/__tests__/ToolNode.hitl.test.ts +267 -0
  728. package/src/tools/__tests__/ToolNode.recovery.test.js +200 -0
  729. package/src/tools/__tests__/ToolNode.recovery.test.js.map +1 -0
  730. package/src/tools/__tests__/ToolNode.recovery.test.ts +276 -0
  731. package/src/tools/__tests__/ToolNode.session.test.js +319 -0
  732. package/src/tools/__tests__/ToolNode.session.test.js.map +1 -0
  733. package/src/tools/__tests__/ToolNode.session.test.ts +465 -0
  734. package/src/tools/__tests__/ToolSearch.integration.test.js +125 -0
  735. package/src/tools/__tests__/ToolSearch.integration.test.js.map +1 -0
  736. package/src/tools/__tests__/ToolSearch.test.js +812 -0
  737. package/src/tools/__tests__/ToolSearch.test.js.map +1 -0
  738. package/src/tools/__tests__/ToolSearch.test.ts +78 -5
  739. package/src/tools/__tests__/handlers.test.js +799 -0
  740. package/src/tools/__tests__/handlers.test.js.map +1 -0
  741. package/src/tools/__tests__/handlers.test.ts +1100 -0
  742. package/src/tools/__tests__/truncation-recovery.integration.test.js +362 -0
  743. package/src/tools/__tests__/truncation-recovery.integration.test.js.map +1 -0
  744. package/src/tools/__tests__/truncation-recovery.integration.test.ts +560 -0
  745. package/src/tools/handlers.js +306 -0
  746. package/src/tools/handlers.js.map +1 -0
  747. package/src/tools/handlers.ts +119 -16
  748. package/src/tools/schema.js +25 -0
  749. package/src/tools/schema.js.map +1 -0
  750. package/src/tools/search/anthropic.js +34 -0
  751. package/src/tools/search/anthropic.js.map +1 -0
  752. package/src/tools/search/content.js +116 -0
  753. package/src/tools/search/content.js.map +1 -0
  754. package/src/tools/search/content.test.js +133 -0
  755. package/src/tools/search/content.test.js.map +1 -0
  756. package/src/tools/search/firecrawl.js +173 -0
  757. package/src/tools/search/firecrawl.js.map +1 -0
  758. package/src/tools/search/format.js +198 -0
  759. package/src/tools/search/format.js.map +1 -0
  760. package/src/tools/search/highlights.js +241 -0
  761. package/src/tools/search/highlights.js.map +1 -0
  762. package/src/tools/search/index.js +3 -0
  763. package/src/tools/search/index.js.map +1 -0
  764. package/src/tools/search/jina-reranker.test.js +106 -0
  765. package/src/tools/search/jina-reranker.test.js.map +1 -0
  766. package/src/tools/search/rerankers.js +165 -0
  767. package/src/tools/search/rerankers.js.map +1 -0
  768. package/src/tools/search/schema.js +102 -0
  769. package/src/tools/search/schema.js.map +1 -0
  770. package/src/tools/search/search.js +561 -0
  771. package/src/tools/search/search.js.map +1 -0
  772. package/src/tools/search/serper-scraper.js +126 -0
  773. package/src/tools/search/serper-scraper.js.map +1 -0
  774. package/src/tools/search/test.js +129 -0
  775. package/src/tools/search/test.js.map +1 -0
  776. package/src/tools/search/tool.js +453 -0
  777. package/src/tools/search/tool.js.map +1 -0
  778. package/src/tools/search/types.js +2 -0
  779. package/src/tools/search/types.js.map +1 -0
  780. package/src/tools/search/utils.js +59 -0
  781. package/src/tools/search/utils.js.map +1 -0
  782. package/src/types/graph.js +24 -0
  783. package/src/types/graph.js.map +1 -0
  784. package/src/types/graph.test.js +192 -0
  785. package/src/types/graph.test.js.map +1 -0
  786. package/src/types/graph.ts +26 -6
  787. package/src/types/index.js +7 -0
  788. package/src/types/index.js.map +1 -0
  789. package/src/types/llm.js +2 -0
  790. package/src/types/llm.js.map +1 -0
  791. package/src/types/llm.ts +8 -3
  792. package/src/types/messages.js +2 -0
  793. package/src/types/messages.js.map +1 -0
  794. package/src/types/run.js +2 -0
  795. package/src/types/run.js.map +1 -0
  796. package/src/types/run.ts +2 -0
  797. package/src/types/stream.js +2 -0
  798. package/src/types/stream.js.map +1 -0
  799. package/src/types/tools.js +2 -0
  800. package/src/types/tools.js.map +1 -0
  801. package/src/types/tools.ts +21 -2
  802. package/src/utils/contextAnalytics.js +79 -0
  803. package/src/utils/contextAnalytics.js.map +1 -0
  804. package/src/utils/contextAnalytics.test.js +166 -0
  805. package/src/utils/contextAnalytics.test.js.map +1 -0
  806. package/src/utils/contextAnalytics.test.ts +222 -0
  807. package/src/utils/contextAnalytics.ts +27 -9
  808. package/src/utils/events.js +26 -0
  809. package/src/utils/events.js.map +1 -0
  810. package/src/utils/graph.js +11 -0
  811. package/src/utils/graph.js.map +1 -0
  812. package/src/utils/handlers.js +65 -0
  813. package/src/utils/handlers.js.map +1 -0
  814. package/src/utils/index.js +10 -0
  815. package/src/utils/index.js.map +1 -0
  816. package/src/utils/index.ts +1 -0
  817. package/src/utils/llm.js +21 -0
  818. package/src/utils/llm.js.map +1 -0
  819. package/src/utils/llmConfig.js +205 -0
  820. package/src/utils/llmConfig.js.map +1 -0
  821. package/src/utils/llmConfig.ts +5 -5
  822. package/src/utils/logging.js +37 -0
  823. package/src/utils/logging.js.map +1 -0
  824. package/src/utils/misc.js +51 -0
  825. package/src/utils/misc.js.map +1 -0
  826. package/src/utils/run.js +69 -0
  827. package/src/utils/run.js.map +1 -0
  828. package/src/utils/run.ts +108 -106
  829. package/src/utils/schema.js +21 -0
  830. package/src/utils/schema.js.map +1 -0
  831. package/src/utils/title.js +119 -0
  832. package/src/utils/title.js.map +1 -0
  833. package/src/utils/tokens.js +92 -0
  834. package/src/utils/tokens.js.map +1 -0
  835. package/src/utils/tokens.ts +118 -142
  836. package/src/utils/toolCallContinuation.ts +55 -0
  837. package/src/utils/toonFormat.js +379 -0
  838. package/src/utils/toonFormat.js.map +1 -0
@@ -0,0 +1,184 @@
1
+ import { config } from 'dotenv';
2
+ config();
3
+ import { HumanMessage } from '@langchain/core/messages';
4
+ import { Run } from '@/run';
5
+ import { Providers, GraphEvents } from '@/common';
6
+ import { ChatModelStreamHandler, createContentAggregator } from '@/stream';
7
+ import { ToolEndHandler, ModelEndHandler } from '@/events';
8
+ const conversationHistory = [];
9
+ /**
10
+ * Example of simple sequential multi-agent system
11
+ *
12
+ * Graph structure:
13
+ * START -> agent_a -> agent_b -> agent_c -> END
14
+ *
15
+ * No conditions, no tools, just automatic sequential flow
16
+ */
17
+ async function testSequentialMultiAgent() {
18
+ console.log('Testing Sequential Multi-Agent System (A → B → C)...\n');
19
+ // Set up content aggregator
20
+ const { contentParts, aggregateContent, stepMap } = createContentAggregator();
21
+ // Define three simple agents
22
+ const agents = [
23
+ {
24
+ agentId: 'agent_a',
25
+ provider: Providers.ANTHROPIC,
26
+ clientOptions: {
27
+ modelName: 'claude-haiku-4-5',
28
+ apiKey: process.env.ANTHROPIC_API_KEY,
29
+ },
30
+ instructions: `You are Agent A, the first agent in a sequential workflow.
31
+ Your job is to:
32
+ 1. Receive the initial user request
33
+ 2. Process it and add your perspective (keep it brief, 2-3 sentences)
34
+ 3. Pass it along to Agent B
35
+
36
+ Start your response with "AGENT A:" and end with "Passing to Agent B..."`,
37
+ maxContextTokens: 8000,
38
+ },
39
+ {
40
+ agentId: 'agent_b',
41
+ provider: Providers.ANTHROPIC,
42
+ clientOptions: {
43
+ modelName: 'claude-haiku-4-5',
44
+ apiKey: process.env.ANTHROPIC_API_KEY,
45
+ },
46
+ instructions: `You are Agent B, the second agent in a sequential workflow.
47
+ Your job is to:
48
+ 1. Receive the context from Agent A
49
+ 2. Add your own analysis or perspective (keep it brief, 2-3 sentences)
50
+ 3. Pass it along to Agent C
51
+
52
+ Start your response with "AGENT B:" and end with "Passing to Agent C..."`,
53
+ maxContextTokens: 8000,
54
+ },
55
+ {
56
+ agentId: 'agent_c',
57
+ provider: Providers.ANTHROPIC,
58
+ clientOptions: {
59
+ modelName: 'claude-haiku-4-5',
60
+ apiKey: process.env.ANTHROPIC_API_KEY,
61
+ },
62
+ instructions: `You are Agent C, the final agent in a sequential workflow.
63
+ Your job is to:
64
+ 1. Receive the context from Agents A and B
65
+ 2. Provide a final summary or conclusion based on all previous inputs
66
+ 3. Complete the workflow
67
+
68
+ Start your response with "AGENT C:" and end with "Workflow complete."`,
69
+ maxContextTokens: 8000,
70
+ },
71
+ ];
72
+ // Define sequential edges using 'direct' type to avoid tool creation
73
+ // This creates automatic transitions without requiring agents to call tools
74
+ const edges = [
75
+ {
76
+ from: 'agent_a',
77
+ to: 'agent_b',
78
+ edgeType: 'direct', // This creates direct edges without tools
79
+ description: 'Automatic transition from A to B',
80
+ },
81
+ {
82
+ from: 'agent_b',
83
+ to: 'agent_c',
84
+ edgeType: 'direct', // This creates direct edges without tools
85
+ description: 'Automatic transition from B to C',
86
+ },
87
+ ];
88
+ // Track agent progression
89
+ let currentAgent = '';
90
+ // Create custom handlers
91
+ const customHandlers = {
92
+ [GraphEvents.TOOL_END]: new ToolEndHandler(),
93
+ [GraphEvents.CHAT_MODEL_END]: new ModelEndHandler(),
94
+ [GraphEvents.CHAT_MODEL_STREAM]: new ChatModelStreamHandler(),
95
+ [GraphEvents.ON_RUN_STEP]: {
96
+ handle: (event, data) => {
97
+ const runStepData = data;
98
+ if (runStepData?.name) {
99
+ currentAgent = runStepData.name;
100
+ console.log(`\n→ ${currentAgent} is processing...`);
101
+ }
102
+ aggregateContent({ event, data: data });
103
+ },
104
+ },
105
+ [GraphEvents.ON_RUN_STEP_COMPLETED]: {
106
+ handle: (event, data) => {
107
+ const runStepData = data;
108
+ if (runStepData?.name) {
109
+ console.log(`✓ ${runStepData.name} completed`);
110
+ }
111
+ aggregateContent({
112
+ event,
113
+ data: data,
114
+ });
115
+ },
116
+ },
117
+ [GraphEvents.ON_RUN_STEP_DELTA]: {
118
+ handle: (event, data) => {
119
+ aggregateContent({ event, data: data });
120
+ },
121
+ },
122
+ [GraphEvents.ON_MESSAGE_DELTA]: {
123
+ handle: (event, data) => {
124
+ aggregateContent({ event, data: data });
125
+ },
126
+ },
127
+ };
128
+ // Create multi-agent run configuration
129
+ const runConfig = {
130
+ runId: `sequential-multi-agent-${Date.now()}`,
131
+ graphConfig: {
132
+ type: 'multi-agent',
133
+ agents,
134
+ edges,
135
+ },
136
+ customHandlers,
137
+ returnContent: true,
138
+ skipCleanup: true,
139
+ };
140
+ try {
141
+ // Create and execute the run
142
+ const run = await Run.create(runConfig);
143
+ // Test with a simple question
144
+ const userMessage = 'What are the key considerations for building a recommendation system?';
145
+ conversationHistory.push(new HumanMessage(userMessage));
146
+ console.log(`User: "${userMessage}"\n`);
147
+ console.log('Starting sequential workflow...\n');
148
+ const config = {
149
+ configurable: {
150
+ thread_id: 'sequential-conversation-1',
151
+ },
152
+ streamMode: 'values',
153
+ version: 'v2',
154
+ };
155
+ // Process with streaming
156
+ const inputs = {
157
+ messages: conversationHistory,
158
+ };
159
+ const finalContentParts = await run.processStream(inputs, config);
160
+ const finalMessages = run.getRunMessages();
161
+ if (finalMessages) {
162
+ conversationHistory.push(...finalMessages);
163
+ }
164
+ console.log('\n\n=== Final Output ===');
165
+ console.log('Sequential flow completed successfully!');
166
+ console.log(`Total content parts: ${contentParts.length}`);
167
+ console.log('\n=== Content Parts (clean, no metadata) ===');
168
+ console.dir(contentParts, { depth: null });
169
+ console.log('\n=== Step Map (separate from content) ===');
170
+ console.dir(Object.fromEntries(stepMap), { depth: null });
171
+ // Display the sequential responses
172
+ const aiMessages = conversationHistory.filter((msg) => msg._getType() === 'ai');
173
+ aiMessages.forEach((msg, index) => {
174
+ console.log(`\n--- Response ${index + 1} ---`);
175
+ console.log(msg.content);
176
+ });
177
+ }
178
+ catch (error) {
179
+ console.error('Error in sequential multi-agent test:', error);
180
+ }
181
+ }
182
+ // Run the test
183
+ testSequentialMultiAgent();
184
+ //# sourceMappingURL=multi-agent-sequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-agent-sequence.js","sourceRoot":"","sources":["multi-agent-sequence.ts"],"names":[],"mappings":"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"}
@@ -22,8 +22,7 @@ async function testSequentialMultiAgent() {
22
22
  console.log('Testing Sequential Multi-Agent System (A → B → C)...\n');
23
23
 
24
24
  // Set up content aggregator
25
- const { contentParts, aggregateContent, contentMetadataMap } =
26
- createContentAggregator();
25
+ const { contentParts, aggregateContent, stepMap } = createContentAggregator();
27
26
 
28
27
  // Define three simple agents
29
28
  const agents: t.AgentInputs[] = [
@@ -158,6 +157,7 @@ async function testSequentialMultiAgent() {
158
157
  },
159
158
  customHandlers,
160
159
  returnContent: true,
160
+ skipCleanup: true,
161
161
  };
162
162
 
163
163
  try {
@@ -197,8 +197,8 @@ async function testSequentialMultiAgent() {
197
197
  console.log(`Total content parts: ${contentParts.length}`);
198
198
  console.log('\n=== Content Parts (clean, no metadata) ===');
199
199
  console.dir(contentParts, { depth: null });
200
- console.log('\n=== Content Metadata Map (separate from content) ===');
201
- console.dir(Object.fromEntries(contentMetadataMap), { depth: null });
200
+ console.log('\n=== Step Map (separate from content) ===');
201
+ console.dir(Object.fromEntries(stepMap), { depth: null });
202
202
 
203
203
  // Display the sequential responses
204
204
  const aiMessages = conversationHistory.filter(
@@ -0,0 +1,324 @@
1
+ import { config } from 'dotenv';
2
+ config();
3
+ import { HumanMessage } from '@langchain/core/messages';
4
+ import { ChatModelStreamHandler, createContentAggregator } from '@/stream';
5
+ import { ToolEndHandler, ModelEndHandler } from '@/events';
6
+ import { Providers, GraphEvents } from '@/common';
7
+ import { sleep } from '@/utils/run';
8
+ import { Run } from '@/run';
9
+ const conversationHistory = [];
10
+ /**
11
+ * Example of supervisor-based multi-agent system
12
+ *
13
+ * The supervisor has handoff tools for 5 different specialists.
14
+ * To demonstrate the concept while respecting LangGraph constraints,
15
+ * we show two approaches:
16
+ *
17
+ * 1. All 5 specialists exist but share the same adaptive configuration
18
+ * 2. Only 2 agents total by using a single adaptive specialist (requires workaround)
19
+ */
20
+ async function testSupervisorMultiAgent() {
21
+ console.log('Testing Supervisor-Based Multi-Agent System...\n');
22
+ // NOTE: To truly have only 2 agents with 5 handoff tools, you would need:
23
+ // 1. Custom tool implementation (see multi-agent-supervisor-mock.ts)
24
+ // 2. Or modify MultiAgentGraph to support "virtual" agents
25
+ // 3. Or use a single conditional edge with role parameter
26
+ //
27
+ // This example shows the concept using 6 agents that share configuration
28
+ // Set up content aggregator
29
+ const { contentParts, aggregateContent } = createContentAggregator();
30
+ // Define configurations for all possible specialists
31
+ const specialistConfigs = {
32
+ data_analyst: {
33
+ provider: Providers.OPENAI,
34
+ clientOptions: {
35
+ modelName: 'gpt-4.1',
36
+ apiKey: process.env.OPENAI_API_KEY,
37
+ },
38
+ instructions: `You are a Data Analyst specialist. Your expertise includes:
39
+ - Statistical analysis and data visualization
40
+ - SQL queries and database optimization
41
+ - Python/R for data science
42
+ - Machine learning model evaluation
43
+ - A/B testing and experiment design
44
+
45
+ Follow the supervisor's specific instructions carefully.`,
46
+ maxContextTokens: 8000,
47
+ },
48
+ security_expert: {
49
+ provider: Providers.OPENAI,
50
+ clientOptions: {
51
+ modelName: 'gpt-4.1',
52
+ apiKey: process.env.OPENAI_API_KEY,
53
+ },
54
+ instructions: `You are a Security Expert. Your expertise includes:
55
+ - Cybersecurity best practices
56
+ - Vulnerability assessment and penetration testing
57
+ - Security architecture and threat modeling
58
+ - Compliance (GDPR, HIPAA, SOC2, etc.)
59
+ - Incident response and forensics
60
+
61
+ Follow the supervisor's specific instructions carefully.`,
62
+ maxContextTokens: 8000,
63
+ },
64
+ product_designer: {
65
+ provider: Providers.OPENAI,
66
+ clientOptions: {
67
+ modelName: 'gpt-4.1',
68
+ apiKey: process.env.OPENAI_API_KEY,
69
+ },
70
+ instructions: `You are a Product Designer. Your expertise includes:
71
+ - User experience (UX) design principles
72
+ - User interface (UI) design and prototyping
73
+ - Design systems and component libraries
74
+ - User research and usability testing
75
+ - Accessibility and inclusive design
76
+
77
+ Follow the supervisor's specific instructions carefully.`,
78
+ maxContextTokens: 8000,
79
+ },
80
+ devops_engineer: {
81
+ provider: Providers.OPENAI,
82
+ clientOptions: {
83
+ modelName: 'gpt-4.1',
84
+ apiKey: process.env.OPENAI_API_KEY,
85
+ },
86
+ instructions: `You are a DevOps Engineer. Your expertise includes:
87
+ - CI/CD pipeline design and optimization
88
+ - Infrastructure as Code (Terraform, CloudFormation)
89
+ - Container orchestration (Kubernetes, Docker)
90
+ - Cloud platforms (AWS, GCP, Azure)
91
+ - Monitoring, logging, and observability
92
+
93
+ Follow the supervisor's specific instructions carefully.`,
94
+ maxContextTokens: 8000,
95
+ },
96
+ legal_advisor: {
97
+ provider: Providers.OPENAI,
98
+ clientOptions: {
99
+ modelName: 'gpt-4.1',
100
+ apiKey: process.env.OPENAI_API_KEY,
101
+ },
102
+ instructions: `You are a Legal Advisor specializing in technology. Your expertise includes:
103
+ - Software licensing and open source compliance
104
+ - Data privacy and protection laws
105
+ - Intellectual property and patents
106
+ - Contract review and negotiation
107
+ - Regulatory compliance for tech companies
108
+
109
+ Follow the supervisor's specific instructions carefully.`,
110
+ maxContextTokens: 8000,
111
+ },
112
+ };
113
+ // Track which specialist role was selected
114
+ let selectedRole = '';
115
+ let roleInstructions = '';
116
+ // Create custom handlers
117
+ const customHandlers = {
118
+ [GraphEvents.TOOL_END]: new ToolEndHandler(),
119
+ [GraphEvents.CHAT_MODEL_END]: new ModelEndHandler(),
120
+ [GraphEvents.CHAT_MODEL_STREAM]: new ChatModelStreamHandler(),
121
+ [GraphEvents.ON_RUN_STEP]: {
122
+ handle: (event, data) => {
123
+ const runStepData = data;
124
+ if (runStepData?.name) {
125
+ console.log(`\n[${runStepData.name}] Processing...`);
126
+ }
127
+ aggregateContent({ event, data: data });
128
+ },
129
+ },
130
+ [GraphEvents.ON_RUN_STEP_COMPLETED]: {
131
+ handle: (event, data) => {
132
+ aggregateContent({
133
+ event,
134
+ data: data,
135
+ });
136
+ },
137
+ },
138
+ [GraphEvents.ON_MESSAGE_DELTA]: {
139
+ handle: (event, data) => {
140
+ console.dir(data, { depth: null });
141
+ aggregateContent({ event, data: data });
142
+ },
143
+ },
144
+ [GraphEvents.TOOL_START]: {
145
+ handle: (_event, data, metadata) => {
146
+ const toolData = data;
147
+ if (toolData?.name?.includes('transfer_to_')) {
148
+ const specialist = toolData.name.replace('transfer_to_', '');
149
+ console.log(`\n🔀 Transferring to ${specialist}...`);
150
+ selectedRole = specialist;
151
+ }
152
+ },
153
+ },
154
+ };
155
+ // Function to create the graph with supervisor having multiple handoff options
156
+ function createSupervisorGraph() {
157
+ console.log(`\nCreating graph with supervisor and 5 specialist agents.`);
158
+ console.log('All specialists share the same adaptive configuration.\n');
159
+ // Define the adaptive specialist configuration that will be reused
160
+ const specialistConfig = {
161
+ provider: Providers.OPENAI,
162
+ clientOptions: {
163
+ modelName: 'gpt-4.1',
164
+ apiKey: process.env.OPENAI_API_KEY,
165
+ },
166
+ instructions: `You are an Adaptive Specialist. Your agent ID indicates your role:
167
+
168
+ - data_analyst: Focus on statistical analysis, metrics, ML evaluation, A/B testing
169
+ - security_expert: Focus on cybersecurity, vulnerability assessment, compliance
170
+ - product_designer: Focus on UX/UI design, user research, accessibility
171
+ - devops_engineer: Focus on CI/CD, infrastructure, cloud platforms, monitoring
172
+ - legal_advisor: Focus on licensing, privacy laws, contracts, regulatory compliance
173
+
174
+ The supervisor will provide specific instructions. Follow them while maintaining your expert perspective.`,
175
+ maxContextTokens: 8000,
176
+ };
177
+ // Create the graph with supervisor and all 5 specialists
178
+ // All specialists share the same adaptive configuration
179
+ const agents = [
180
+ {
181
+ agentId: 'supervisor',
182
+ provider: Providers.OPENAI,
183
+ clientOptions: {
184
+ modelName: 'gpt-4.1-mini',
185
+ apiKey: process.env.OPENAI_API_KEY,
186
+ },
187
+ instructions: `You are a Task Supervisor with access to 5 specialist agents:
188
+ 1. transfer_to_data_analyst - For statistical analysis and metrics
189
+ 2. transfer_to_security_expert - For cybersecurity and vulnerability assessment
190
+ 3. transfer_to_product_designer - For UX/UI design
191
+ 4. transfer_to_devops_engineer - For infrastructure and deployment
192
+ 5. transfer_to_legal_advisor - For compliance and licensing
193
+
194
+ Your role is to:
195
+ 1. Analyze the incoming request
196
+ 2. Decide which specialist is best suited
197
+ 3. Use the appropriate transfer tool (e.g., transfer_to_data_analyst)
198
+ 4. Provide specific instructions to guide their work
199
+
200
+ Be specific about what you need from the specialist.`,
201
+ maxContextTokens: 8000,
202
+ },
203
+ // Include all 5 specialists with the same adaptive configuration
204
+ {
205
+ agentId: 'data_analyst',
206
+ ...specialistConfig,
207
+ },
208
+ {
209
+ agentId: 'security_expert',
210
+ ...specialistConfig,
211
+ },
212
+ {
213
+ agentId: 'product_designer',
214
+ ...specialistConfig,
215
+ },
216
+ {
217
+ agentId: 'devops_engineer',
218
+ ...specialistConfig,
219
+ },
220
+ {
221
+ agentId: 'legal_advisor',
222
+ ...specialistConfig,
223
+ },
224
+ ];
225
+ // Create edges from supervisor to all 5 specialists
226
+ const edges = [
227
+ {
228
+ from: 'supervisor',
229
+ to: 'data_analyst',
230
+ description: 'Transfer to data analyst for statistical analysis and metrics',
231
+ edgeType: 'handoff',
232
+ },
233
+ {
234
+ from: 'supervisor',
235
+ to: 'security_expert',
236
+ description: 'Transfer to security expert for cybersecurity assessment',
237
+ edgeType: 'handoff',
238
+ },
239
+ {
240
+ from: 'supervisor',
241
+ to: 'product_designer',
242
+ description: 'Transfer to product designer for UX/UI design',
243
+ edgeType: 'handoff',
244
+ },
245
+ {
246
+ from: 'supervisor',
247
+ to: 'devops_engineer',
248
+ description: 'Transfer to DevOps engineer for infrastructure and deployment',
249
+ edgeType: 'handoff',
250
+ },
251
+ {
252
+ from: 'supervisor',
253
+ to: 'legal_advisor',
254
+ description: 'Transfer to legal advisor for compliance and licensing',
255
+ edgeType: 'handoff',
256
+ },
257
+ ];
258
+ return {
259
+ runId: `supervisor-multi-agent-${Date.now()}`,
260
+ graphConfig: {
261
+ type: 'multi-agent',
262
+ agents,
263
+ edges,
264
+ },
265
+ customHandlers,
266
+ returnContent: true,
267
+ skipCleanup: true,
268
+ };
269
+ }
270
+ try {
271
+ // Test with different queries
272
+ const testQueries = [
273
+ 'How can we analyze user engagement metrics to improve our product?',
274
+ // 'What security measures should we implement for our new API?',
275
+ // 'Can you help design a better onboarding flow for our mobile app?',
276
+ // 'We need to set up a CI/CD pipeline for our microservices.',
277
+ // 'What are the legal implications of using GPL-licensed code in our product?',
278
+ ];
279
+ const config = {
280
+ configurable: {
281
+ thread_id: 'supervisor-conversation-1',
282
+ },
283
+ streamMode: 'values',
284
+ version: 'v2',
285
+ };
286
+ for (const query of testQueries) {
287
+ console.log(`\n${'='.repeat(60)}`);
288
+ console.log(`USER QUERY: "${query}"`);
289
+ console.log('='.repeat(60));
290
+ // Reset conversation
291
+ conversationHistory.length = 0;
292
+ conversationHistory.push(new HumanMessage(query));
293
+ // Create graph with supervisor having 5 handoff tools to 1 adaptive specialist
294
+ const runConfig = createSupervisorGraph();
295
+ const run = await Run.create(runConfig);
296
+ console.log('Processing request...');
297
+ // Process with streaming
298
+ const inputs = {
299
+ messages: conversationHistory,
300
+ };
301
+ const finalContentParts = await run.processStream(inputs, config);
302
+ const finalMessages = run.getRunMessages();
303
+ if (finalMessages) {
304
+ conversationHistory.push(...finalMessages);
305
+ }
306
+ // Show summary
307
+ console.log(`\n${'─'.repeat(60)}`);
308
+ console.log(`Agents in graph: 6 total (supervisor + 5 specialists)`);
309
+ console.log(`All specialists share the same adaptive configuration`);
310
+ console.log(`Supervisor tools: transfer_to_data_analyst, transfer_to_security_expert,`);
311
+ console.log(` transfer_to_product_designer, transfer_to_devops_engineer,`);
312
+ console.log(` transfer_to_legal_advisor`);
313
+ console.log('─'.repeat(60));
314
+ console.dir(contentParts, { depth: null });
315
+ }
316
+ await sleep(3000);
317
+ }
318
+ catch (error) {
319
+ console.error('Error in supervisor multi-agent test:', error);
320
+ }
321
+ }
322
+ // Run the test
323
+ testSupervisorMultiAgent();
324
+ //# sourceMappingURL=multi-agent-supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-agent-supervisor.js","sourceRoot":"","sources":["multi-agent-supervisor.ts"],"names":[],"mappings":"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"}
@@ -293,6 +293,7 @@ async function testSupervisorMultiAgent() {
293
293
  },
294
294
  customHandlers,
295
295
  returnContent: true,
296
+ skipCleanup: true,
296
297
  };
297
298
  }
298
299