@illuma-ai/agents 1.4.0-alpha.6 → 1.5.0

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 (800) hide show
  1. package/README.md +62 -0
  2. package/dist/cjs/agents/AgentContext.cjs +274 -67
  3. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  4. package/dist/cjs/common/enum.cjs +44 -13
  5. package/dist/cjs/common/enum.cjs.map +1 -1
  6. package/dist/cjs/graphs/Graph.cjs +182 -5
  7. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  8. package/dist/cjs/graphs/MultiAgentGraph.cjs +152 -1167
  9. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  10. package/dist/cjs/hooks/HookRegistry.cjs +162 -0
  11. package/dist/cjs/hooks/HookRegistry.cjs.map +1 -0
  12. package/dist/cjs/hooks/executeHooks.cjs +276 -0
  13. package/dist/cjs/hooks/executeHooks.cjs.map +1 -0
  14. package/dist/cjs/hooks/matchers.cjs +256 -0
  15. package/dist/cjs/hooks/matchers.cjs.map +1 -0
  16. package/dist/cjs/hooks/types.cjs +27 -0
  17. package/dist/cjs/hooks/types.cjs.map +1 -0
  18. package/dist/cjs/langchain/google-common.cjs +3 -0
  19. package/dist/cjs/langchain/google-common.cjs.map +1 -0
  20. package/dist/cjs/langchain/index.cjs +86 -0
  21. package/dist/cjs/langchain/index.cjs.map +1 -0
  22. package/dist/cjs/langchain/language_models/chat_models.cjs +3 -0
  23. package/dist/cjs/langchain/language_models/chat_models.cjs.map +1 -0
  24. package/dist/cjs/langchain/messages/tool.cjs +3 -0
  25. package/dist/cjs/langchain/messages/tool.cjs.map +1 -0
  26. package/dist/cjs/langchain/messages.cjs +51 -0
  27. package/dist/cjs/langchain/messages.cjs.map +1 -0
  28. package/dist/cjs/langchain/openai.cjs +3 -0
  29. package/dist/cjs/langchain/openai.cjs.map +1 -0
  30. package/dist/cjs/langchain/prompts.cjs +11 -0
  31. package/dist/cjs/langchain/prompts.cjs.map +1 -0
  32. package/dist/cjs/langchain/runnables.cjs +19 -0
  33. package/dist/cjs/langchain/runnables.cjs.map +1 -0
  34. package/dist/cjs/langchain/tools.cjs +23 -0
  35. package/dist/cjs/langchain/tools.cjs.map +1 -0
  36. package/dist/cjs/langchain/utils/env.cjs +11 -0
  37. package/dist/cjs/langchain/utils/env.cjs.map +1 -0
  38. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +5 -1
  39. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  40. package/dist/cjs/llm/bedrock/cacheSupport.cjs +55 -0
  41. package/dist/cjs/llm/bedrock/cacheSupport.cjs.map +1 -0
  42. package/dist/cjs/llm/bedrock/index.cjs +61 -33
  43. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  44. package/dist/cjs/llm/openai/index.cjs +0 -3
  45. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  46. package/dist/cjs/llm/openai/utils/index.cjs +27 -10
  47. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  48. package/dist/cjs/main.cjs +178 -127
  49. package/dist/cjs/main.cjs.map +1 -1
  50. package/dist/cjs/messages/cache.cjs +89 -0
  51. package/dist/cjs/messages/cache.cjs.map +1 -1
  52. package/dist/cjs/messages/contextPruning.cjs +156 -0
  53. package/dist/cjs/messages/contextPruning.cjs.map +1 -0
  54. package/dist/cjs/messages/contextPruningSettings.cjs +53 -0
  55. package/dist/cjs/messages/contextPruningSettings.cjs.map +1 -0
  56. package/dist/cjs/messages/format.cjs +144 -20
  57. package/dist/cjs/messages/format.cjs.map +1 -1
  58. package/dist/cjs/messages/prune.cjs +505 -4
  59. package/dist/cjs/messages/prune.cjs.map +1 -1
  60. package/dist/cjs/run.cjs +141 -1
  61. package/dist/cjs/run.cjs.map +1 -1
  62. package/dist/cjs/tools/BashExecutor.cjs +235 -0
  63. package/dist/cjs/tools/BashExecutor.cjs.map +1 -0
  64. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +297 -0
  65. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -0
  66. package/dist/cjs/tools/CodeExecutor.cjs +44 -47
  67. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  68. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +16 -11
  69. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  70. package/dist/cjs/tools/ReadFile.cjs +44 -0
  71. package/dist/cjs/tools/ReadFile.cjs.map +1 -0
  72. package/dist/cjs/tools/SkillTool.cjs +51 -0
  73. package/dist/cjs/tools/SkillTool.cjs.map +1 -0
  74. package/dist/cjs/tools/SubagentTool.cjs +93 -0
  75. package/dist/cjs/tools/SubagentTool.cjs.map +1 -0
  76. package/dist/cjs/tools/ToolNode.cjs +450 -24
  77. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  78. package/dist/cjs/tools/search/search.cjs +11 -3
  79. package/dist/cjs/tools/search/search.cjs.map +1 -1
  80. package/dist/cjs/tools/search/tavily-scraper.cjs +189 -0
  81. package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -0
  82. package/dist/cjs/tools/search/tavily-search.cjs +372 -0
  83. package/dist/cjs/tools/search/tavily-search.cjs.map +1 -0
  84. package/dist/cjs/tools/search/tool.cjs +28 -4
  85. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  86. package/dist/cjs/tools/search/utils.cjs +10 -3
  87. package/dist/cjs/tools/search/utils.cjs.map +1 -1
  88. package/dist/cjs/tools/skillCatalog.cjs +84 -0
  89. package/dist/cjs/tools/skillCatalog.cjs.map +1 -0
  90. package/dist/cjs/tools/subagent/SubagentExecutor.cjs +512 -0
  91. package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -0
  92. package/dist/cjs/tools/toolOutputReferences.cjs +670 -0
  93. package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -0
  94. package/dist/cjs/types/agent-cache.cjs +53 -0
  95. package/dist/cjs/types/agent-cache.cjs.map +1 -0
  96. package/dist/cjs/types/graph.cjs.map +1 -1
  97. package/dist/cjs/utils/truncation.cjs +135 -0
  98. package/dist/cjs/utils/truncation.cjs.map +1 -0
  99. package/dist/esm/agents/AgentContext.mjs +274 -67
  100. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  101. package/dist/esm/common/enum.mjs +44 -12
  102. package/dist/esm/common/enum.mjs.map +1 -1
  103. package/dist/esm/graphs/Graph.mjs +182 -5
  104. package/dist/esm/graphs/Graph.mjs.map +1 -1
  105. package/dist/esm/graphs/MultiAgentGraph.mjs +155 -1170
  106. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  107. package/dist/esm/hooks/HookRegistry.mjs +160 -0
  108. package/dist/esm/hooks/HookRegistry.mjs.map +1 -0
  109. package/dist/esm/hooks/executeHooks.mjs +273 -0
  110. package/dist/esm/hooks/executeHooks.mjs.map +1 -0
  111. package/dist/esm/hooks/matchers.mjs +251 -0
  112. package/dist/esm/hooks/matchers.mjs.map +1 -0
  113. package/dist/esm/hooks/types.mjs +25 -0
  114. package/dist/esm/hooks/types.mjs.map +1 -0
  115. package/dist/esm/langchain/google-common.mjs +2 -0
  116. package/dist/esm/langchain/google-common.mjs.map +1 -0
  117. package/dist/esm/langchain/index.mjs +5 -0
  118. package/dist/esm/langchain/language_models/chat_models.mjs +2 -0
  119. package/dist/esm/langchain/language_models/chat_models.mjs.map +1 -0
  120. package/dist/esm/langchain/messages/tool.mjs +2 -0
  121. package/dist/esm/langchain/messages/tool.mjs.map +1 -0
  122. package/dist/esm/langchain/messages.mjs +2 -0
  123. package/dist/esm/langchain/messages.mjs.map +1 -0
  124. package/dist/esm/langchain/openai.mjs +2 -0
  125. package/dist/esm/langchain/openai.mjs.map +1 -0
  126. package/dist/esm/langchain/prompts.mjs +2 -0
  127. package/dist/esm/langchain/prompts.mjs.map +1 -0
  128. package/dist/esm/langchain/runnables.mjs +2 -0
  129. package/dist/esm/langchain/runnables.mjs.map +1 -0
  130. package/dist/esm/langchain/tools.mjs +2 -0
  131. package/dist/esm/langchain/tools.mjs.map +1 -0
  132. package/dist/esm/langchain/utils/env.mjs +2 -0
  133. package/dist/esm/langchain/utils/env.mjs.map +1 -0
  134. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +5 -1
  135. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  136. package/dist/esm/llm/bedrock/cacheSupport.mjs +52 -0
  137. package/dist/esm/llm/bedrock/cacheSupport.mjs.map +1 -0
  138. package/dist/esm/llm/bedrock/index.mjs +61 -34
  139. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  140. package/dist/esm/llm/openai/index.mjs +0 -3
  141. package/dist/esm/llm/openai/index.mjs.map +1 -1
  142. package/dist/esm/llm/openai/utils/index.mjs +27 -10
  143. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  144. package/dist/esm/main.mjs +21 -27
  145. package/dist/esm/main.mjs.map +1 -1
  146. package/dist/esm/messages/cache.mjs +89 -0
  147. package/dist/esm/messages/cache.mjs.map +1 -1
  148. package/dist/esm/messages/contextPruning.mjs +154 -0
  149. package/dist/esm/messages/contextPruning.mjs.map +1 -0
  150. package/dist/esm/messages/contextPruningSettings.mjs +50 -0
  151. package/dist/esm/messages/contextPruningSettings.mjs.map +1 -0
  152. package/dist/esm/messages/format.mjs +136 -12
  153. package/dist/esm/messages/format.mjs.map +1 -1
  154. package/dist/esm/messages/prune.mjs +504 -7
  155. package/dist/esm/messages/prune.mjs.map +1 -1
  156. package/dist/esm/run.mjs +141 -1
  157. package/dist/esm/run.mjs.map +1 -1
  158. package/dist/esm/tools/BashExecutor.mjs +227 -0
  159. package/dist/esm/tools/BashExecutor.mjs.map +1 -0
  160. package/dist/esm/tools/BashProgrammaticToolCalling.mjs +288 -0
  161. package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -0
  162. package/dist/esm/tools/CodeExecutor.mjs +44 -48
  163. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  164. package/dist/esm/tools/ProgrammaticToolCalling.mjs +17 -12
  165. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  166. package/dist/esm/tools/ReadFile.mjs +39 -0
  167. package/dist/esm/tools/ReadFile.mjs.map +1 -0
  168. package/dist/esm/tools/SkillTool.mjs +46 -0
  169. package/dist/esm/tools/SkillTool.mjs.map +1 -0
  170. package/dist/esm/tools/SubagentTool.mjs +86 -0
  171. package/dist/esm/tools/SubagentTool.mjs.map +1 -0
  172. package/dist/esm/tools/ToolNode.mjs +452 -26
  173. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  174. package/dist/esm/tools/search/search.mjs +11 -3
  175. package/dist/esm/tools/search/search.mjs.map +1 -1
  176. package/dist/esm/tools/search/tavily-scraper.mjs +186 -0
  177. package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -0
  178. package/dist/esm/tools/search/tavily-search.mjs +370 -0
  179. package/dist/esm/tools/search/tavily-search.mjs.map +1 -0
  180. package/dist/esm/tools/search/tool.mjs +28 -4
  181. package/dist/esm/tools/search/tool.mjs.map +1 -1
  182. package/dist/esm/tools/search/utils.mjs +10 -3
  183. package/dist/esm/tools/search/utils.mjs.map +1 -1
  184. package/dist/esm/tools/skillCatalog.mjs +82 -0
  185. package/dist/esm/tools/skillCatalog.mjs.map +1 -0
  186. package/dist/esm/tools/subagent/SubagentExecutor.mjs +506 -0
  187. package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -0
  188. package/dist/esm/tools/toolOutputReferences.mjs +662 -0
  189. package/dist/esm/tools/toolOutputReferences.mjs.map +1 -0
  190. package/dist/esm/types/agent-cache.mjs +51 -0
  191. package/dist/esm/types/agent-cache.mjs.map +1 -0
  192. package/dist/esm/types/graph.mjs.map +1 -1
  193. package/dist/esm/utils/truncation.mjs +128 -0
  194. package/dist/esm/utils/truncation.mjs.map +1 -0
  195. package/dist/types/agents/AgentContext.d.ts +101 -8
  196. package/dist/types/common/enum.d.ts +39 -12
  197. package/dist/types/common/index.d.ts +0 -1
  198. package/dist/types/graphs/Graph.d.ts +43 -0
  199. package/dist/types/graphs/MultiAgentGraph.d.ts +26 -150
  200. package/dist/types/graphs/index.d.ts +0 -1
  201. package/dist/types/hooks/HookRegistry.d.ts +56 -0
  202. package/dist/types/hooks/executeHooks.d.ts +79 -0
  203. package/dist/types/hooks/index.d.ts +6 -0
  204. package/dist/types/hooks/matchers.d.ts +95 -0
  205. package/dist/types/hooks/types.d.ts +320 -0
  206. package/dist/types/index.d.ts +9 -9
  207. package/dist/types/langchain/google-common.d.ts +1 -0
  208. package/dist/types/langchain/index.d.ts +8 -0
  209. package/dist/types/langchain/language_models/chat_models.d.ts +1 -0
  210. package/dist/types/langchain/messages/tool.d.ts +1 -0
  211. package/dist/types/langchain/messages.d.ts +2 -0
  212. package/dist/types/langchain/openai.d.ts +1 -0
  213. package/dist/types/langchain/prompts.d.ts +1 -0
  214. package/dist/types/langchain/runnables.d.ts +2 -0
  215. package/dist/types/langchain/tools.d.ts +2 -0
  216. package/dist/types/langchain/utils/env.d.ts +1 -0
  217. package/dist/types/llm/bedrock/cacheSupport.d.ts +35 -0
  218. package/dist/types/llm/bedrock/index.d.ts +54 -1
  219. package/dist/types/messages/contextPruning.d.ts +42 -0
  220. package/dist/types/messages/contextPruningSettings.d.ts +44 -0
  221. package/dist/types/messages/format.d.ts +9 -1
  222. package/dist/types/messages/index.d.ts +2 -0
  223. package/dist/types/messages/prune.d.ts +91 -1
  224. package/dist/types/run.d.ts +2 -0
  225. package/dist/types/tools/BashExecutor.d.ts +76 -0
  226. package/dist/types/tools/BashProgrammaticToolCalling.d.ts +72 -0
  227. package/dist/types/tools/CodeExecutor.d.ts +8 -26
  228. package/dist/types/tools/ReadFile.d.ts +28 -0
  229. package/dist/types/tools/SkillTool.d.ts +40 -0
  230. package/dist/types/tools/SubagentTool.d.ts +36 -0
  231. package/dist/types/tools/ToolNode.d.ts +77 -5
  232. package/dist/types/tools/search/tavily-scraper.d.ts +19 -0
  233. package/dist/types/tools/search/tavily-search.d.ts +4 -0
  234. package/dist/types/tools/search/types.d.ts +99 -5
  235. package/dist/types/tools/search/utils.d.ts +2 -2
  236. package/dist/types/tools/skillCatalog.d.ts +19 -0
  237. package/dist/types/tools/subagent/SubagentExecutor.d.ts +137 -0
  238. package/dist/types/tools/subagent/index.d.ts +2 -0
  239. package/dist/types/tools/subagent/types.d.ts +84 -0
  240. package/dist/types/tools/toolOutputReferences.d.ts +236 -0
  241. package/dist/types/types/agent-cache.d.ts +70 -0
  242. package/dist/types/types/graph.d.ts +162 -22
  243. package/dist/types/types/index.d.ts +3 -0
  244. package/dist/types/types/messages.d.ts +26 -0
  245. package/dist/types/types/run.d.ts +22 -0
  246. package/dist/types/types/skill.d.ts +9 -0
  247. package/dist/types/types/tools.d.ts +111 -0
  248. package/dist/types/utils/index.d.ts +1 -3
  249. package/dist/types/utils/truncation.d.ts +70 -0
  250. package/package.json +57 -17
  251. package/src/agents/AgentContext.js.map +1 -0
  252. package/src/agents/AgentContext.test.js.map +1 -0
  253. package/src/agents/AgentContext.ts +321 -78
  254. package/src/agents/__tests__/AgentContext.cacheTtl.live.test.ts +259 -0
  255. package/src/agents/__tests__/AgentContext.crossAgentTier1.live.test.ts +264 -0
  256. package/src/agents/__tests__/AgentContext.crossUserCache.live.test.ts +342 -0
  257. package/src/agents/__tests__/AgentContext.test.js.map +1 -0
  258. package/src/agents/__tests__/AgentContext.test.ts +632 -0
  259. package/src/agents/__tests__/resolveStructuredOutputMode.test.js.map +1 -0
  260. package/src/common/__tests__/enum.test.ts +7 -17
  261. package/src/common/enum.js.map +1 -0
  262. package/src/common/enum.ts +43 -12
  263. package/src/common/index.js.map +1 -0
  264. package/src/common/index.ts +0 -1
  265. package/src/events.js.map +1 -0
  266. package/src/graphs/Graph.js.map +1 -0
  267. package/src/graphs/Graph.ts +222 -2
  268. package/src/graphs/MultiAgentGraph.js.map +1 -0
  269. package/src/graphs/MultiAgentGraph.ts +154 -1466
  270. package/src/graphs/__tests__/MultiAgentGraph.test.ts +91 -0
  271. package/src/graphs/__tests__/structured-output.integration.test.js.map +1 -0
  272. package/src/graphs/__tests__/structured-output.test.js.map +1 -0
  273. package/src/graphs/contextManagement.e2e.test.js.map +1 -0
  274. package/src/graphs/contextManagement.test.js.map +1 -0
  275. package/src/graphs/handoffValidation.test.js.map +1 -0
  276. package/src/graphs/index.js.map +1 -0
  277. package/src/graphs/index.ts +0 -1
  278. package/src/hooks/HookRegistry.ts +208 -0
  279. package/src/hooks/__tests__/HookRegistry.test.ts +190 -0
  280. package/src/hooks/__tests__/compactHooks.test.ts +214 -0
  281. package/src/hooks/__tests__/executeHooks.test.ts +1013 -0
  282. package/src/hooks/__tests__/integration.test.ts +337 -0
  283. package/src/hooks/__tests__/matchers.test.ts +238 -0
  284. package/src/hooks/__tests__/toolHooks.test.ts +665 -0
  285. package/src/hooks/executeHooks.ts +375 -0
  286. package/src/hooks/index.ts +57 -0
  287. package/src/hooks/matchers.ts +280 -0
  288. package/src/hooks/types.ts +404 -0
  289. package/src/index.js.map +1 -0
  290. package/src/index.ts +15 -24
  291. package/src/instrumentation.js.map +1 -0
  292. package/src/langchain/google-common.ts +1 -0
  293. package/src/langchain/index.ts +8 -0
  294. package/src/langchain/language_models/chat_models.ts +1 -0
  295. package/src/langchain/messages/tool.ts +5 -0
  296. package/src/langchain/messages.ts +21 -0
  297. package/src/langchain/openai.ts +1 -0
  298. package/src/langchain/prompts.ts +1 -0
  299. package/src/langchain/runnables.ts +7 -0
  300. package/src/langchain/tools.ts +8 -0
  301. package/src/langchain/utils/env.ts +1 -0
  302. package/src/llm/anthropic/index.js.map +1 -0
  303. package/src/llm/anthropic/types.js.map +1 -0
  304. package/src/llm/anthropic/utils/message_inputs.js.map +1 -0
  305. package/src/llm/anthropic/utils/message_inputs.ts +10 -1
  306. package/src/llm/anthropic/utils/message_outputs.js.map +1 -0
  307. package/src/llm/anthropic/utils/output_parsers.js.map +1 -0
  308. package/src/llm/anthropic/utils/server-tool-inputs.test.ts +436 -0
  309. package/src/llm/anthropic/utils/tools.js.map +1 -0
  310. package/src/llm/bedrock/__tests__/bedrock-caching.test.js.map +1 -0
  311. package/src/llm/bedrock/__tests__/bedrock-caching.test.ts +166 -18
  312. package/src/llm/bedrock/cacheSupport.test.ts +99 -0
  313. package/src/llm/bedrock/cacheSupport.ts +53 -0
  314. package/src/llm/bedrock/index.js.map +1 -0
  315. package/src/llm/bedrock/index.ts +116 -41
  316. package/src/llm/bedrock/types.js.map +1 -0
  317. package/src/llm/bedrock/utils/index.js.map +1 -0
  318. package/src/llm/bedrock/utils/message_inputs.js.map +1 -0
  319. package/src/llm/bedrock/utils/message_outputs.js.map +1 -0
  320. package/src/llm/fake.js.map +1 -0
  321. package/src/llm/google/index.js.map +1 -0
  322. package/src/llm/google/types.js.map +1 -0
  323. package/src/llm/google/utils/common.js.map +1 -0
  324. package/src/llm/google/utils/tools.js.map +1 -0
  325. package/src/llm/google/utils/zod_to_genai_parameters.js.map +1 -0
  326. package/src/llm/openai/index.js.map +1 -0
  327. package/src/llm/openai/types.js.map +1 -0
  328. package/src/llm/openai/utils/index.js.map +1 -0
  329. package/src/llm/openai/utils/index.ts +31 -14
  330. package/src/llm/openai/utils/isReasoningModel.test.js.map +1 -0
  331. package/src/llm/openrouter/index.js.map +1 -0
  332. package/src/llm/openrouter/reasoning.test.js.map +1 -0
  333. package/src/llm/providers.js.map +1 -0
  334. package/src/llm/text.js.map +1 -0
  335. package/src/llm/vertexai/index.js.map +1 -0
  336. package/src/messages/__tests__/contextPruning.test.ts +228 -0
  337. package/src/messages/__tests__/tools.test.js.map +1 -0
  338. package/src/messages/cache.js.map +1 -0
  339. package/src/messages/cache.test.js.map +1 -0
  340. package/src/messages/cache.test.ts +62 -24
  341. package/src/messages/cache.ts +112 -0
  342. package/src/messages/content.js.map +1 -0
  343. package/src/messages/content.test.js.map +1 -0
  344. package/src/messages/contextPruning.ts +191 -0
  345. package/src/messages/contextPruningSettings.ts +90 -0
  346. package/src/messages/core.js.map +1 -0
  347. package/src/messages/ensureThinkingBlock.test.js.map +1 -0
  348. package/src/messages/format.js.map +1 -0
  349. package/src/messages/format.ts +164 -12
  350. package/src/messages/formatAgentMessages.skills.test.ts +413 -0
  351. package/src/messages/formatAgentMessages.test.js.map +1 -0
  352. package/src/messages/formatAgentMessages.tools.test.js.map +1 -0
  353. package/src/messages/formatMessage.test.js.map +1 -0
  354. package/src/messages/ids.js.map +1 -0
  355. package/src/messages/index.js.map +1 -0
  356. package/src/messages/index.ts +2 -0
  357. package/src/messages/labelContentByAgent.test.js.map +1 -0
  358. package/src/messages/prune.js.map +1 -0
  359. package/src/messages/prune.ts +661 -4
  360. package/src/messages/reducer.js.map +1 -0
  361. package/src/messages/shiftIndexTokenCountMap.test.js.map +1 -0
  362. package/src/messages/summarize.js.map +1 -0
  363. package/src/messages/summarize.test.js.map +1 -0
  364. package/src/messages/tools.js.map +1 -0
  365. package/src/mockStream.js.map +1 -0
  366. package/src/prompts/collab.js.map +1 -0
  367. package/src/prompts/index.js.map +1 -0
  368. package/src/prompts/taskmanager.js.map +1 -0
  369. package/src/run.js.map +1 -0
  370. package/src/run.ts +155 -1
  371. package/src/schemas/index.js.map +1 -0
  372. package/src/schemas/schema-preparation.test.js.map +1 -0
  373. package/src/schemas/validate.js.map +1 -0
  374. package/src/schemas/validate.test.js.map +1 -0
  375. package/src/scripts/abort.js.map +1 -0
  376. package/src/scripts/ant_web_search.js.map +1 -0
  377. package/src/scripts/ant_web_search_edge_case.js.map +1 -0
  378. package/src/scripts/ant_web_search_error_edge_case.js.map +1 -0
  379. package/src/scripts/args.js.map +1 -0
  380. package/src/scripts/bedrock-cache-debug.js.map +1 -0
  381. package/src/scripts/bedrock-content-aggregation-test.js.map +1 -0
  382. package/src/scripts/bedrock-merge-test.js.map +1 -0
  383. package/src/scripts/bedrock-parallel-tools-test.js.map +1 -0
  384. package/src/scripts/caching.js.map +1 -0
  385. package/src/scripts/cli.js.map +1 -0
  386. package/src/scripts/cli2.js.map +1 -0
  387. package/src/scripts/cli3.js.map +1 -0
  388. package/src/scripts/cli4.js.map +1 -0
  389. package/src/scripts/cli5.js.map +1 -0
  390. package/src/scripts/code_exec.js.map +1 -0
  391. package/src/scripts/code_exec_files.js.map +1 -0
  392. package/src/scripts/code_exec_multi_session.js.map +1 -0
  393. package/src/scripts/code_exec_ptc.js.map +1 -0
  394. package/src/scripts/code_exec_session.js.map +1 -0
  395. package/src/scripts/code_exec_simple.js.map +1 -0
  396. package/src/scripts/content.js.map +1 -0
  397. package/src/scripts/empty_input.js.map +1 -0
  398. package/src/scripts/handoff-test.js.map +1 -0
  399. package/src/scripts/image.js.map +1 -0
  400. package/src/scripts/memory.js.map +1 -0
  401. package/src/scripts/multi-agent-chain.js.map +1 -0
  402. package/src/scripts/multi-agent-chain.ts +2 -2
  403. package/src/scripts/multi-agent-conditional.js.map +1 -0
  404. package/src/scripts/multi-agent-document-review-chain.js.map +1 -0
  405. package/src/scripts/multi-agent-document-review-chain.ts +2 -2
  406. package/src/scripts/multi-agent-hybrid-flow.js.map +1 -0
  407. package/src/scripts/multi-agent-hybrid-flow.ts +4 -4
  408. package/src/scripts/multi-agent-parallel-start.js.map +1 -0
  409. package/src/scripts/multi-agent-parallel.js.map +1 -0
  410. package/src/scripts/multi-agent-parallel.ts +3 -3
  411. package/src/scripts/multi-agent-sequence.js.map +1 -0
  412. package/src/scripts/multi-agent-sequence.ts +3 -3
  413. package/src/scripts/multi-agent-subagent.ts +246 -0
  414. package/src/scripts/multi-agent-supervisor.js.map +1 -0
  415. package/src/scripts/multi-agent-supervisor.ts +5 -5
  416. package/src/scripts/multi-agent-test.js.map +1 -0
  417. package/src/scripts/parallel-asymmetric-tools-test.js.map +1 -0
  418. package/src/scripts/parallel-full-metadata-test.js.map +1 -0
  419. package/src/scripts/parallel-tools-test.js.map +1 -0
  420. package/src/scripts/poc-multi-agent-comprehensive.ts +8 -8
  421. package/src/scripts/programmatic_exec.js.map +1 -0
  422. package/src/scripts/programmatic_exec_agent.js.map +1 -0
  423. package/src/scripts/search.js.map +1 -0
  424. package/src/scripts/sequential-full-metadata-test.js.map +1 -0
  425. package/src/scripts/sequential-full-metadata-test.ts +2 -2
  426. package/src/scripts/simple.js.map +1 -0
  427. package/src/scripts/single-agent-metadata-test.js.map +1 -0
  428. package/src/scripts/stream.js.map +1 -0
  429. package/src/scripts/subagent-event-driven-debug.ts +190 -0
  430. package/src/scripts/subagent-tools-debug.ts +160 -0
  431. package/src/scripts/test-custom-prompt-key.js.map +1 -0
  432. package/src/scripts/test-custom-prompt-key.ts +3 -3
  433. package/src/scripts/test-handoff-input.js.map +1 -0
  434. package/src/scripts/test-handoff-input.ts +1 -1
  435. package/src/scripts/test-handoff-preamble.js.map +1 -0
  436. package/src/scripts/test-handoff-steering.js.map +1 -0
  437. package/src/scripts/test-handoff-steering.ts +3 -3
  438. package/src/scripts/test-multi-agent-list-handoff.js.map +1 -0
  439. package/src/scripts/test-multi-agent-list-handoff.ts +1 -1
  440. package/src/scripts/test-parallel-agent-labeling.js.map +1 -0
  441. package/src/scripts/test-parallel-agent-labeling.ts +3 -3
  442. package/src/scripts/test-parallel-handoffs.js.map +1 -0
  443. package/src/scripts/test-parallel-handoffs.ts +2 -2
  444. package/src/scripts/test-thinking-handoff-bedrock.js.map +1 -0
  445. package/src/scripts/test-thinking-handoff-bedrock.ts +1 -1
  446. package/src/scripts/test-thinking-handoff.js.map +1 -0
  447. package/src/scripts/test-thinking-handoff.ts +1 -1
  448. package/src/scripts/test-thinking-to-thinking-handoff-bedrock.js.map +1 -0
  449. package/src/scripts/test-thinking-to-thinking-handoff-bedrock.ts +1 -1
  450. package/src/scripts/test-tool-before-handoff-role-order.js.map +1 -0
  451. package/src/scripts/test-tool-before-handoff-role-order.ts +1 -1
  452. package/src/scripts/test-tools-before-handoff.js.map +1 -0
  453. package/src/scripts/test-tools-before-handoff.ts +1 -1
  454. package/src/scripts/test_code_api.js.map +1 -0
  455. package/src/scripts/thinking-bedrock.js.map +1 -0
  456. package/src/scripts/thinking-vertexai.js.map +1 -0
  457. package/src/scripts/thinking.js.map +1 -0
  458. package/src/scripts/tool_search.js.map +1 -0
  459. package/src/scripts/tools.js.map +1 -0
  460. package/src/specs/agent-handoffs-bedrock.integration.test.js.map +1 -0
  461. package/src/specs/agent-handoffs.test.js.map +1 -0
  462. package/src/specs/agent-handoffs.test.ts +26 -483
  463. package/src/specs/anthropic.simple.test.js.map +1 -0
  464. package/src/specs/anthropic.simple.test.ts +61 -0
  465. package/src/specs/azure.simple.test.js.map +1 -0
  466. package/src/specs/cache.simple.test.js.map +1 -0
  467. package/src/specs/custom-event-await.test.js.map +1 -0
  468. package/src/specs/deepseek.simple.test.js.map +1 -0
  469. package/src/specs/emergency-prune.test.js.map +1 -0
  470. package/src/specs/moonshot.simple.test.js.map +1 -0
  471. package/src/specs/multi-agent-summarization.test.ts +396 -0
  472. package/src/specs/observability.integration.test.js.map +1 -0
  473. package/src/specs/openai.simple.test.js.map +1 -0
  474. package/src/specs/openrouter.simple.test.js.map +1 -0
  475. package/src/specs/prune.orphans.test.ts +248 -0
  476. package/src/specs/prune.test.js.map +1 -0
  477. package/src/specs/prune.test.ts +104 -16
  478. package/src/specs/reasoning.test.js.map +1 -0
  479. package/src/specs/spec.utils.js.map +1 -0
  480. package/src/specs/thinking-handoff.test.js.map +1 -0
  481. package/src/specs/thinking-handoff.test.ts +19 -19
  482. package/src/specs/thinking-prune.test.js.map +1 -0
  483. package/src/specs/token-distribution-edge-case.test.js.map +1 -0
  484. package/src/specs/token-memoization.test.js.map +1 -0
  485. package/src/specs/tokens.test.js.map +1 -0
  486. package/src/specs/tool-error.test.js.map +1 -0
  487. package/src/splitStream.js.map +1 -0
  488. package/src/splitStream.test.js.map +1 -0
  489. package/src/stream.js.map +1 -0
  490. package/src/stream.test.js.map +1 -0
  491. package/src/test/mockTools.js.map +1 -0
  492. package/src/tools/BashExecutor.ts +281 -0
  493. package/src/tools/BashProgrammaticToolCalling.ts +397 -0
  494. package/src/tools/BrowserTools.js.map +1 -0
  495. package/src/tools/Calculator.js.map +1 -0
  496. package/src/tools/Calculator.test.js.map +1 -0
  497. package/src/tools/CodeExecutor.js.map +1 -0
  498. package/src/tools/CodeExecutor.ts +62 -54
  499. package/src/tools/ProgrammaticToolCalling.js.map +1 -0
  500. package/src/tools/ProgrammaticToolCalling.ts +29 -14
  501. package/src/tools/ReadFile.ts +39 -0
  502. package/src/tools/SkillTool.ts +46 -0
  503. package/src/tools/StreamingToolCallBuffer.js.map +1 -0
  504. package/src/tools/SubagentTool.ts +100 -0
  505. package/src/tools/ToolNode.js.map +1 -0
  506. package/src/tools/ToolNode.ts +548 -26
  507. package/src/tools/ToolSearch.js.map +1 -0
  508. package/src/tools/__tests__/BashExecutor.test.ts +49 -0
  509. package/src/tools/__tests__/BrowserTools.test.js.map +1 -0
  510. package/src/tools/__tests__/CodeExecutor.test.ts +37 -36
  511. package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.js.map +1 -0
  512. package/src/tools/__tests__/ProgrammaticToolCalling.test.js.map +1 -0
  513. package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +60 -0
  514. package/src/tools/__tests__/ReadFile.test.ts +44 -0
  515. package/src/tools/__tests__/SkillTool.test.ts +442 -0
  516. package/src/tools/__tests__/StreamingToolCallBuffer.test.js.map +1 -0
  517. package/src/tools/__tests__/SubagentExecutor.test.ts +1148 -0
  518. package/src/tools/__tests__/SubagentTool.test.ts +149 -0
  519. package/src/tools/__tests__/ToolApproval.test.js.map +1 -0
  520. package/src/tools/__tests__/ToolNode.outputReferences.test.ts +1438 -0
  521. package/src/tools/__tests__/ToolNode.recovery.test.js.map +1 -0
  522. package/src/tools/__tests__/ToolNode.session.test.js.map +1 -0
  523. package/src/tools/__tests__/ToolSearch.integration.test.js.map +1 -0
  524. package/src/tools/__tests__/ToolSearch.test.js.map +1 -0
  525. package/src/tools/__tests__/annotateMessagesForLLM.test.ts +479 -0
  526. package/src/tools/__tests__/handlers.test.js.map +1 -0
  527. package/src/tools/__tests__/skillCatalog.test.ts +161 -0
  528. package/src/tools/__tests__/subagentHooks.test.ts +210 -0
  529. package/src/tools/__tests__/toolOutputReferences.test.ts +415 -0
  530. package/src/tools/__tests__/truncation-recovery.integration.test.js.map +1 -0
  531. package/src/tools/handlers.js.map +1 -0
  532. package/src/tools/schema.js.map +1 -0
  533. package/src/tools/search/anthropic.js.map +1 -0
  534. package/src/tools/search/content.js.map +1 -0
  535. package/src/tools/search/content.test.js.map +1 -0
  536. package/src/tools/search/firecrawl.js.map +1 -0
  537. package/src/tools/search/format.js.map +1 -0
  538. package/src/tools/search/highlights.js.map +1 -0
  539. package/src/tools/search/index.js.map +1 -0
  540. package/src/tools/search/jina-reranker.test.js.map +1 -0
  541. package/src/tools/search/rerankers.js.map +1 -0
  542. package/src/tools/search/schema.js.map +1 -0
  543. package/src/tools/search/search.js.map +1 -0
  544. package/src/tools/search/search.ts +12 -2
  545. package/src/tools/search/serper-scraper.js.map +1 -0
  546. package/src/tools/search/tavily-scraper.ts +235 -0
  547. package/src/tools/search/tavily-search.ts +424 -0
  548. package/src/tools/search/tavily.test.ts +965 -0
  549. package/src/tools/search/test.js.map +1 -0
  550. package/src/tools/search/tool.js.map +1 -0
  551. package/src/tools/search/tool.ts +36 -2
  552. package/src/tools/search/types.js.map +1 -0
  553. package/src/tools/search/types.ts +133 -8
  554. package/src/tools/search/utils.js.map +1 -0
  555. package/src/tools/search/utils.ts +13 -5
  556. package/src/tools/skillCatalog.ts +126 -0
  557. package/src/tools/subagent/SubagentExecutor.ts +676 -0
  558. package/src/tools/subagent/index.ts +13 -0
  559. package/src/tools/subagent/types.test.ts +70 -0
  560. package/src/tools/subagent/types.ts +115 -0
  561. package/src/tools/toolOutputReferences.ts +825 -0
  562. package/src/types/agent-cache.ts +73 -0
  563. package/src/types/graph.js.map +1 -0
  564. package/src/types/graph.test.js.map +1 -0
  565. package/src/types/graph.ts +171 -20
  566. package/src/types/index.js.map +1 -0
  567. package/src/types/index.ts +3 -0
  568. package/src/types/llm.js.map +1 -0
  569. package/src/types/messages.js.map +1 -0
  570. package/src/types/messages.ts +27 -0
  571. package/src/types/run.js.map +1 -0
  572. package/src/types/run.ts +22 -0
  573. package/src/types/skill.ts +11 -0
  574. package/src/types/stream.js.map +1 -0
  575. package/src/types/tools.js.map +1 -0
  576. package/src/types/tools.ts +118 -0
  577. package/src/utils/__tests__/truncation.test.ts +66 -0
  578. package/src/utils/contextAnalytics.js.map +1 -0
  579. package/src/utils/contextAnalytics.test.js.map +1 -0
  580. package/src/utils/events.js.map +1 -0
  581. package/src/utils/graph.js.map +1 -0
  582. package/src/utils/handlers.js.map +1 -0
  583. package/src/utils/index.js.map +1 -0
  584. package/src/utils/index.ts +1 -3
  585. package/src/utils/llm.js.map +1 -0
  586. package/src/utils/llmConfig.js.map +1 -0
  587. package/src/utils/logging.js.map +1 -0
  588. package/src/utils/misc.js.map +1 -0
  589. package/src/utils/run.js.map +1 -0
  590. package/src/utils/schema.js.map +1 -0
  591. package/src/utils/title.js.map +1 -0
  592. package/src/utils/tokens.js.map +1 -0
  593. package/src/utils/toonFormat.js.map +1 -0
  594. package/src/utils/truncation.ts +154 -0
  595. package/dist/cjs/common/spawnPath.cjs +0 -104
  596. package/dist/cjs/common/spawnPath.cjs.map +0 -1
  597. package/dist/cjs/content/ArtifactStore.cjs +0 -579
  598. package/dist/cjs/content/ArtifactStore.cjs.map +0 -1
  599. package/dist/cjs/content/ContentStore.cjs +0 -638
  600. package/dist/cjs/content/ContentStore.cjs.map +0 -1
  601. package/dist/cjs/content/contentAnalyzer.cjs +0 -91
  602. package/dist/cjs/content/contentAnalyzer.cjs.map +0 -1
  603. package/dist/cjs/content/index.cjs +0 -20
  604. package/dist/cjs/content/index.cjs.map +0 -1
  605. package/dist/cjs/content/mcpAutoCache.cjs +0 -115
  606. package/dist/cjs/content/mcpAutoCache.cjs.map +0 -1
  607. package/dist/cjs/graphs/HandoffRegistry.cjs +0 -143
  608. package/dist/cjs/graphs/HandoffRegistry.cjs.map +0 -1
  609. package/dist/cjs/providers/a2a/A2ACapabilityProvider.cjs +0 -288
  610. package/dist/cjs/providers/a2a/A2ACapabilityProvider.cjs.map +0 -1
  611. package/dist/cjs/providers/a2a/client.cjs +0 -92
  612. package/dist/cjs/providers/a2a/client.cjs.map +0 -1
  613. package/dist/cjs/providers/a2a/config.cjs +0 -38
  614. package/dist/cjs/providers/a2a/config.cjs.map +0 -1
  615. package/dist/cjs/providers/capabilityNaming.cjs +0 -43
  616. package/dist/cjs/providers/capabilityNaming.cjs.map +0 -1
  617. package/dist/cjs/providers/mcp/MCPCapabilityProvider.cjs +0 -244
  618. package/dist/cjs/providers/mcp/MCPCapabilityProvider.cjs.map +0 -1
  619. package/dist/cjs/providers/mcp/config.cjs +0 -42
  620. package/dist/cjs/providers/mcp/config.cjs.map +0 -1
  621. package/dist/cjs/providers/mcp/transport.cjs +0 -65
  622. package/dist/cjs/providers/mcp/transport.cjs.map +0 -1
  623. package/dist/cjs/providers/tools-server/ToolsServerCapabilityProvider.cjs +0 -128
  624. package/dist/cjs/providers/tools-server/ToolsServerCapabilityProvider.cjs.map +0 -1
  625. package/dist/cjs/providers/types.cjs +0 -51
  626. package/dist/cjs/providers/types.cjs.map +0 -1
  627. package/dist/cjs/tools/artifacts/schema.cjs +0 -86
  628. package/dist/cjs/tools/artifacts/schema.cjs.map +0 -1
  629. package/dist/cjs/tools/artifacts/tool.cjs +0 -219
  630. package/dist/cjs/tools/artifacts/tool.cjs.map +0 -1
  631. package/dist/cjs/tools/fileSearch/formatter.cjs +0 -93
  632. package/dist/cjs/tools/fileSearch/formatter.cjs.map +0 -1
  633. package/dist/cjs/tools/fileSearch/ragClient.cjs +0 -102
  634. package/dist/cjs/tools/fileSearch/ragClient.cjs.map +0 -1
  635. package/dist/cjs/tools/fileSearch/schema.cjs +0 -18
  636. package/dist/cjs/tools/fileSearch/schema.cjs.map +0 -1
  637. package/dist/cjs/tools/fileSearch/tool.cjs +0 -155
  638. package/dist/cjs/tools/fileSearch/tool.cjs.map +0 -1
  639. package/dist/cjs/tools/proxyTool.cjs +0 -102
  640. package/dist/cjs/tools/proxyTool.cjs.map +0 -1
  641. package/dist/cjs/utils/childAgentContext.cjs +0 -242
  642. package/dist/cjs/utils/childAgentContext.cjs.map +0 -1
  643. package/dist/cjs/utils/credentials.cjs +0 -142
  644. package/dist/cjs/utils/credentials.cjs.map +0 -1
  645. package/dist/cjs/utils/httpClient.cjs +0 -74
  646. package/dist/cjs/utils/httpClient.cjs.map +0 -1
  647. package/dist/cjs/utils/toolManifest.cjs +0 -100
  648. package/dist/cjs/utils/toolManifest.cjs.map +0 -1
  649. package/dist/esm/common/spawnPath.mjs +0 -95
  650. package/dist/esm/common/spawnPath.mjs.map +0 -1
  651. package/dist/esm/content/ArtifactStore.mjs +0 -576
  652. package/dist/esm/content/ArtifactStore.mjs.map +0 -1
  653. package/dist/esm/content/ContentStore.mjs +0 -635
  654. package/dist/esm/content/ContentStore.mjs.map +0 -1
  655. package/dist/esm/content/contentAnalyzer.mjs +0 -87
  656. package/dist/esm/content/contentAnalyzer.mjs.map +0 -1
  657. package/dist/esm/content/index.mjs +0 -5
  658. package/dist/esm/content/mcpAutoCache.mjs +0 -111
  659. package/dist/esm/content/mcpAutoCache.mjs.map +0 -1
  660. package/dist/esm/graphs/HandoffRegistry.mjs +0 -141
  661. package/dist/esm/graphs/HandoffRegistry.mjs.map +0 -1
  662. package/dist/esm/providers/a2a/A2ACapabilityProvider.mjs +0 -281
  663. package/dist/esm/providers/a2a/A2ACapabilityProvider.mjs.map +0 -1
  664. package/dist/esm/providers/a2a/client.mjs +0 -88
  665. package/dist/esm/providers/a2a/client.mjs.map +0 -1
  666. package/dist/esm/providers/a2a/config.mjs +0 -35
  667. package/dist/esm/providers/a2a/config.mjs.map +0 -1
  668. package/dist/esm/providers/capabilityNaming.mjs +0 -39
  669. package/dist/esm/providers/capabilityNaming.mjs.map +0 -1
  670. package/dist/esm/providers/mcp/MCPCapabilityProvider.mjs +0 -240
  671. package/dist/esm/providers/mcp/MCPCapabilityProvider.mjs.map +0 -1
  672. package/dist/esm/providers/mcp/config.mjs +0 -39
  673. package/dist/esm/providers/mcp/config.mjs.map +0 -1
  674. package/dist/esm/providers/mcp/transport.mjs +0 -63
  675. package/dist/esm/providers/mcp/transport.mjs.map +0 -1
  676. package/dist/esm/providers/tools-server/ToolsServerCapabilityProvider.mjs +0 -126
  677. package/dist/esm/providers/tools-server/ToolsServerCapabilityProvider.mjs.map +0 -1
  678. package/dist/esm/providers/types.mjs +0 -51
  679. package/dist/esm/providers/types.mjs.map +0 -1
  680. package/dist/esm/tools/artifacts/schema.mjs +0 -79
  681. package/dist/esm/tools/artifacts/schema.mjs.map +0 -1
  682. package/dist/esm/tools/artifacts/tool.mjs +0 -213
  683. package/dist/esm/tools/artifacts/tool.mjs.map +0 -1
  684. package/dist/esm/tools/fileSearch/formatter.mjs +0 -90
  685. package/dist/esm/tools/fileSearch/formatter.mjs.map +0 -1
  686. package/dist/esm/tools/fileSearch/ragClient.mjs +0 -98
  687. package/dist/esm/tools/fileSearch/ragClient.mjs.map +0 -1
  688. package/dist/esm/tools/fileSearch/schema.mjs +0 -15
  689. package/dist/esm/tools/fileSearch/schema.mjs.map +0 -1
  690. package/dist/esm/tools/fileSearch/tool.mjs +0 -152
  691. package/dist/esm/tools/fileSearch/tool.mjs.map +0 -1
  692. package/dist/esm/tools/proxyTool.mjs +0 -100
  693. package/dist/esm/tools/proxyTool.mjs.map +0 -1
  694. package/dist/esm/utils/childAgentContext.mjs +0 -237
  695. package/dist/esm/utils/childAgentContext.mjs.map +0 -1
  696. package/dist/esm/utils/credentials.mjs +0 -135
  697. package/dist/esm/utils/credentials.mjs.map +0 -1
  698. package/dist/esm/utils/httpClient.mjs +0 -70
  699. package/dist/esm/utils/httpClient.mjs.map +0 -1
  700. package/dist/esm/utils/toolManifest.mjs +0 -96
  701. package/dist/esm/utils/toolManifest.mjs.map +0 -1
  702. package/dist/types/common/spawnPath.d.ts +0 -59
  703. package/dist/types/content/ArtifactStore.d.ts +0 -223
  704. package/dist/types/content/ContentStore.d.ts +0 -140
  705. package/dist/types/content/contentAnalyzer.d.ts +0 -38
  706. package/dist/types/content/index.d.ts +0 -24
  707. package/dist/types/content/mcpAutoCache.d.ts +0 -89
  708. package/dist/types/content/types.d.ts +0 -75
  709. package/dist/types/graphs/HandoffRegistry.d.ts +0 -97
  710. package/dist/types/providers/a2a/A2ACapabilityProvider.d.ts +0 -89
  711. package/dist/types/providers/a2a/client.d.ts +0 -47
  712. package/dist/types/providers/a2a/config.d.ts +0 -18
  713. package/dist/types/providers/a2a/index.d.ts +0 -6
  714. package/dist/types/providers/a2a/types.d.ts +0 -173
  715. package/dist/types/providers/capabilityNaming.d.ts +0 -25
  716. package/dist/types/providers/index.d.ts +0 -12
  717. package/dist/types/providers/mcp/MCPCapabilityProvider.d.ts +0 -54
  718. package/dist/types/providers/mcp/config.d.ts +0 -20
  719. package/dist/types/providers/mcp/index.d.ts +0 -5
  720. package/dist/types/providers/mcp/transport.d.ts +0 -18
  721. package/dist/types/providers/mcp/types.d.ts +0 -112
  722. package/dist/types/providers/tools-server/ToolsServerCapabilityProvider.d.ts +0 -59
  723. package/dist/types/providers/tools-server/index.d.ts +0 -1
  724. package/dist/types/providers/types.d.ts +0 -184
  725. package/dist/types/tools/artifacts/index.d.ts +0 -3
  726. package/dist/types/tools/artifacts/schema.d.ts +0 -63
  727. package/dist/types/tools/artifacts/tool.d.ts +0 -16
  728. package/dist/types/tools/artifacts/types.d.ts +0 -127
  729. package/dist/types/tools/fileSearch/formatter.d.ts +0 -25
  730. package/dist/types/tools/fileSearch/index.d.ts +0 -5
  731. package/dist/types/tools/fileSearch/ragClient.d.ts +0 -32
  732. package/dist/types/tools/fileSearch/schema.d.ts +0 -13
  733. package/dist/types/tools/fileSearch/tool.d.ts +0 -18
  734. package/dist/types/tools/fileSearch/types.d.ts +0 -139
  735. package/dist/types/tools/proxyTool.d.ts +0 -62
  736. package/dist/types/utils/childAgentContext.d.ts +0 -99
  737. package/dist/types/utils/credentials.d.ts +0 -77
  738. package/dist/types/utils/httpClient.d.ts +0 -46
  739. package/dist/types/utils/toolManifest.d.ts +0 -49
  740. package/src/common/__tests__/spawnPath.test.ts +0 -110
  741. package/src/common/spawnPath.ts +0 -101
  742. package/src/content/ArtifactStore.ts +0 -782
  743. package/src/content/ContentStore.ts +0 -753
  744. package/src/content/contentAnalyzer.ts +0 -105
  745. package/src/content/index.ts +0 -51
  746. package/src/content/mcpAutoCache.ts +0 -185
  747. package/src/content/types.ts +0 -82
  748. package/src/graphs/HandoffRegistry.ts +0 -199
  749. package/src/graphs/__tests__/HandoffRegistry.test.ts +0 -410
  750. package/src/graphs/__tests__/multi-agent-delegate.test.ts +0 -458
  751. package/src/graphs/__tests__/multi-agent-edges.test.ts +0 -276
  752. package/src/graphs/__tests__/multi-agent-nested-subgraph.test.ts +0 -221
  753. package/src/graphs/handoffValidation.test.ts +0 -353
  754. package/src/providers/__tests__/ToolsServerCapabilityProvider.integration.spec.ts +0 -79
  755. package/src/providers/__tests__/ToolsServerCapabilityProvider.test.ts +0 -271
  756. package/src/providers/__tests__/types.test.ts +0 -64
  757. package/src/providers/a2a/A2ACapabilityProvider.ts +0 -384
  758. package/src/providers/a2a/__tests__/A2ACapabilityProvider.integration.spec.ts +0 -345
  759. package/src/providers/a2a/__tests__/A2ACapabilityProvider.test.ts +0 -460
  760. package/src/providers/a2a/client.ts +0 -115
  761. package/src/providers/a2a/config.ts +0 -40
  762. package/src/providers/a2a/index.ts +0 -29
  763. package/src/providers/a2a/types.ts +0 -191
  764. package/src/providers/capabilityNaming.ts +0 -42
  765. package/src/providers/index.ts +0 -68
  766. package/src/providers/mcp/MCPCapabilityProvider.ts +0 -345
  767. package/src/providers/mcp/__tests__/MCPCapabilityProvider.integration.spec.ts +0 -386
  768. package/src/providers/mcp/__tests__/MCPCapabilityProvider.test.ts +0 -371
  769. package/src/providers/mcp/config.ts +0 -45
  770. package/src/providers/mcp/index.ts +0 -21
  771. package/src/providers/mcp/transport.ts +0 -76
  772. package/src/providers/mcp/types.ts +0 -139
  773. package/src/providers/tools-server/ToolsServerCapabilityProvider.ts +0 -249
  774. package/src/providers/tools-server/index.ts +0 -1
  775. package/src/providers/types.ts +0 -204
  776. package/src/scripts/test-bedrock-handoff-autonomous.ts +0 -267
  777. package/src/scripts/test-handoff-preamble.ts +0 -278
  778. package/src/specs/agent-handoffs-bedrock.integration.test.ts +0 -415
  779. package/src/tools/artifacts/__tests__/tool.test.ts +0 -259
  780. package/src/tools/artifacts/index.ts +0 -33
  781. package/src/tools/artifacts/schema.ts +0 -99
  782. package/src/tools/artifacts/tool.ts +0 -289
  783. package/src/tools/artifacts/types.ts +0 -162
  784. package/src/tools/fileSearch/__tests__/tool.test.ts +0 -261
  785. package/src/tools/fileSearch/formatter.ts +0 -129
  786. package/src/tools/fileSearch/index.ts +0 -23
  787. package/src/tools/fileSearch/ragClient.ts +0 -137
  788. package/src/tools/fileSearch/schema.ts +0 -19
  789. package/src/tools/fileSearch/tool.ts +0 -207
  790. package/src/tools/fileSearch/types.ts +0 -149
  791. package/src/tools/proxyTool.ts +0 -166
  792. package/src/utils/__tests__/childAgentContext.test.ts +0 -217
  793. package/src/utils/__tests__/credentials.test.ts +0 -130
  794. package/src/utils/__tests__/httpClient.test.ts +0 -75
  795. package/src/utils/__tests__/toolManifest.test.ts +0 -116
  796. package/src/utils/childAgentContext.ts +0 -259
  797. package/src/utils/credentials.ts +0 -157
  798. package/src/utils/httpClient.ts +0 -92
  799. package/src/utils/toolManifest.ts +0 -109
  800. /package/dist/esm/{content → langchain}/index.mjs.map +0 -0
@@ -7,6 +7,8 @@
7
7
  export declare enum GraphEvents {
8
8
  /** [Custom] Agent update event in multi-agent graph/workflow */
9
9
  ON_AGENT_UPDATE = "on_agent_update",
10
+ /** [Custom] Subagent lifecycle event (start, run_step, message_delta, stop, error) */
11
+ ON_SUBAGENT_UPDATE = "on_subagent_update",
10
12
  /** [Custom] Delta event for run steps (message creation and tool calls) */
11
13
  ON_RUN_STEP = "on_run_step",
12
14
  /** [Custom] Delta event for run steps (tool calls) */
@@ -79,12 +81,22 @@ export declare enum Providers {
79
81
  MOONSHOT = "moonshot"
80
82
  }
81
83
  export declare enum EdgeType {
82
- /** True agent handoff — parent calls child agent inline, gets result back, continues orchestrating */
84
+ /**
85
+ * Upstream-aligned handoff: one-way routing where the parent agent exits
86
+ * via a `lc_transfer_to_<destination>` tool call, the child takes over,
87
+ * and the child responds directly to the user. Replaces what used to be
88
+ * called "TRANSFER" in earlier Ranger versions; the parent-calls-child
89
+ * supervisor pattern (formerly `EdgeType.HANDOFF`) is gone — use the
90
+ * Subagent primitive (Tier 5) for deep delegation instead.
91
+ */
83
92
  HANDOFF = "handoff",
84
- /** One-way transfer — parent exits, child takes over and responds directly to user */
85
- TRANSFER = "transfer",
86
- /** Fixed graph edges for automatic sequential/parallel transitions */
87
- SEQUENCE = "sequence"
93
+ /**
94
+ * Fixed graph edges for automatic transitions. Naming matches upstream.
95
+ * Ranger keeps its enriched wiring on top of this edge type:
96
+ * fan-in with prompt + {results}, parallel groups, ApprovalGateNode
97
+ * insertion, and the `excludeResults` agentMessages channel.
98
+ */
99
+ DIRECT = "direct"
88
100
  }
89
101
  export declare enum GraphNodeKeys {
90
102
  TOOLS = "tools=",
@@ -137,17 +149,30 @@ export declare enum Callback {
137
149
  export declare enum Constants {
138
150
  OFFICIAL_CODE_BASEURL = "https://api.illuma.ai/v1",
139
151
  EXECUTE_CODE = "execute_code",
152
+ /** Tool name for the bash execution primitive (upstream Tier 3). */
153
+ BASH_TOOL = "execute_bash",
154
+ /** Tool name for the bash programmatic-tool-calling variant (upstream Tier 3). */
155
+ BASH_PROGRAMMATIC_TOOL_CALLING = "run_tools_with_bash",
156
+ /** Tool name for the read-file primitive (upstream Tier 3). */
157
+ READ_FILE = "read_file",
158
+ /** Tool name for the SkillTool primitive (upstream Tier 2). */
159
+ SKILL_TOOL = "skill",
160
+ /** Tool name for the Subagent primitive (upstream Tier 5). */
161
+ SUBAGENT = "subagent",
140
162
  TOOL_SEARCH = "tool_search",
141
163
  PROGRAMMATIC_TOOL_CALLING = "run_tools_with_code",
142
164
  WEB_SEARCH = "web_search",
143
165
  CONTENT_AND_ARTIFACT = "content_and_artifact",
166
+ /** Prefix for handoff tool names (parent-exits routing): lc_transfer_to_{agentId}. */
144
167
  LC_TRANSFER_TO_ = "lc_transfer_to_",
145
- /** Prefix for handoff tool names: lc_handoff_to_{agentId} */
146
- LC_HANDOFF_TO_ = "lc_handoff_to_",
147
168
  /** Tool name for the AskUser structured question tool */
148
169
  ASK_USER = "ask_user",
149
170
  /** Delimiter for MCP tools: toolName_mcp_serverName */
150
- MCP_DELIMITER = "_mcp_"
171
+ MCP_DELIMITER = "_mcp_",
172
+ /** Prefix for Anthropic-hosted server tool ids (web_search, code_execution).
173
+ * These are issued by Anthropic, not by us, and should be ignored by
174
+ * orphan-repair sweeps that don't have ground truth for them. */
175
+ ANTHROPIC_SERVER_TOOL_PREFIX = "srvtoolu_"
151
176
  }
152
177
  export declare enum TitleMethod {
153
178
  STRUCTURED = "structured",
@@ -191,7 +216,9 @@ export declare enum MessageTypes {
191
216
  DEVELOPER = "developer",
192
217
  REMOVE = "remove"
193
218
  }
194
- /** Default max characters for handoff results returned to parent (~8192 tokens at ~4 chars/token) */
195
- export declare const DEFAULT_HANDOFF_MAX_RESULT_CHARS = 32768;
196
- /** Default timeout for handoff sub-agent execution in milliseconds (5 minutes) */
197
- export declare const HANDOFF_TIMEOUT_MS = 300000;
219
+ /**
220
+ * Tool names that use the code execution environment (shared session, file
221
+ * tracking). Used by ToolNode to inject session context + file refs into
222
+ * `invokeParams` before tool execution. Upstream-aligned constant.
223
+ */
224
+ export declare const CODE_EXECUTION_TOOLS: ReadonlySet<string>;
@@ -1,4 +1,3 @@
1
1
  export * from './enum';
2
2
  export * from './constants';
3
- export * from './spawnPath';
4
3
  export * from '../tools/approval/constants';
@@ -46,6 +46,49 @@ export declare abstract class Graph<T extends t.BaseGraphState = t.BaseGraphStat
46
46
  /** Set of invoked tool call IDs from non-message run steps completed mid-run, if any */
47
47
  invokedToolIds?: Set<string>;
48
48
  handlerRegistry: HandlerRegistry | undefined;
49
+ /** Optional hook registry threaded down from Run; consumed by ToolNode for tool-lifecycle hooks. */
50
+ hookRegistry?: import('@/hooks').HookRegistry;
51
+ /**
52
+ * Optional tool-output reference registry threaded down from Run
53
+ * (upstream PR #114). When set, every ToolNode built by this graph
54
+ * stores successful outputs here and resolves `{{tool<i>turn<n>}}`
55
+ * placeholders in args before invoking the tool.
56
+ *
57
+ * @deprecated Prefer `toolOutputReferences` config + the lazy
58
+ * `getOrCreateToolOutputRegistry()` accessor — keeps the registry
59
+ * lifecycle explicit (cleared in `clearHeavyState()`). Existing
60
+ * direct-set callers still work for backwards compat.
61
+ */
62
+ toolOutputRegistry?: import('@/tools/toolOutputReferences').ToolOutputReferenceRegistry;
63
+ /**
64
+ * Run-scoped tool output reference configuration (upstream PR #117).
65
+ * When `enabled` is true, the graph lazily allocates a single
66
+ * `ToolOutputReferenceRegistry` on first `getOrCreateToolOutputRegistry()`
67
+ * call and shares it with every ToolNode the graph compiles, so
68
+ * cross-agent `{{tool<i>turn<n>}}` substitutions resolve.
69
+ */
70
+ toolOutputReferences?: import('@/types/tools').ToolOutputReferencesConfig;
71
+ /**
72
+ * Lazy single-instance registry for the run. Constructed on first
73
+ * `getOrCreateToolOutputRegistry()` call when
74
+ * `toolOutputReferences.enabled` is true. Cleared (and recreated on
75
+ * next access) by `clearHeavyState()`.
76
+ */
77
+ private _toolOutputRegistry?;
78
+ /**
79
+ * Returns the shared `ToolOutputReferenceRegistry` for this run,
80
+ * constructing it on first access. Returns `undefined` when the
81
+ * feature is disabled. All ToolNodes compiled from this graph share
82
+ * this single instance so cross-agent `{{...}}` references resolve.
83
+ *
84
+ * @internal Public so `attemptInvoke` can read it through the typed
85
+ * `InvokeContext` and project ToolMessages into LLM-facing annotated
86
+ * copies right before each provider call (see `annotateMessagesForLLM`).
87
+ * Host code should not call this directly — registry mutations outside
88
+ * the ToolNode lifecycle break the partitioning, eviction, and
89
+ * turn-counter invariants.
90
+ */
91
+ getOrCreateToolOutputRegistry(): import('@/tools/toolOutputReferences').ToolOutputReferenceRegistry | undefined;
49
92
  /**
50
93
  * Tool session contexts for automatic state persistence across tool invocations.
51
94
  * Keyed by tool name (e.g., Constants.EXECUTE_CODE).
@@ -1,4 +1,3 @@
1
- import type { BaseMessage } from '@langchain/core/messages';
2
1
  import type * as t from '@/types';
3
2
  import { StandardGraph } from './Graph';
4
3
  /**
@@ -6,29 +5,20 @@ import { StandardGraph } from './Graph';
6
5
  * with handoffs, fan-in/fan-out, and other composable patterns.
7
6
  *
8
7
  * Key behavior:
9
- * - Agents with ONLY transfer edges: Can dynamically route to any transfer destination
10
- * - Agents with ONLY sequence edges: Always follow their sequence edges
11
- * - Agents with BOTH: Use Command for exclusive routing (transfer OR sequence, not both)
12
- * - If transfer occurs: Only the transfer destination executes
13
- * - If no transfer: Sequence edges execute (potentially in parallel)
8
+ * - Agents with ONLY handoff edges: Can dynamically route to any handoff destination
9
+ * - Agents with ONLY direct edges: Always follow their direct edges
10
+ * - Agents with BOTH: Use Command for exclusive routing (handoff OR direct, not both)
11
+ * - If handoff occurs: Only the handoff destination executes
12
+ * - If no handoff: Direct edges execute (potentially in parallel)
14
13
  *
15
- * This enables the common pattern where an agent either transfers (one-way)
16
- * OR continues its workflow (sequence edges), but not both simultaneously.
14
+ * This enables the common pattern where an agent either delegates (handoff)
15
+ * OR continues its workflow (direct edges), but not both simultaneously.
17
16
  */
18
17
  export declare class MultiAgentGraph extends StandardGraph {
19
18
  private edges;
20
19
  private startingNodes;
21
- private sequenceEdges;
22
- private transferEdges;
20
+ private directEdges;
23
21
  private handoffEdges;
24
- /**
25
- * Lazily populated registry of compiled subgraphs, keyed by agentId.
26
- * Handoff tools are created in the constructor but reference subgraphs
27
- * that are only created in createWorkflow(). This Map bridges that gap —
28
- * tools capture the Map reference in their closure, and createWorkflow()
29
- * populates it before any tool invocation occurs.
30
- */
31
- private subgraphRegistry;
32
22
  /**
33
23
  * Map of agentId to parallel group info.
34
24
  * Contains groupId (incrementing number reflecting execution order) for agents in parallel groups.
@@ -40,25 +30,21 @@ export declare class MultiAgentGraph extends StandardGraph {
40
30
  * - summarizer: undefined (sequential, order 2)
41
31
  */
42
32
  private agentParallelGroups;
33
+ constructor(input: t.MultiAgentGraphInput);
43
34
  /**
44
- * Tracks the ID of the last agent that produced output.
45
- * Used by auto-continuation to know which agent's context to preserve after handoff.
46
- */
47
- private lastActiveAgentId;
48
- /**
49
- * Registry for async handoff execution.
50
- * Enables autonomous orchestration: spawn children non-blocking,
51
- * orchestrator stays alive to reason and collect results when ready.
52
- */
53
- /**
54
- * When set, the graph routes START to this agent instead of the default starting nodes.
55
- * Enables multi-turn resumption: follow-up messages go to the agent that last handled
56
- * the conversation rather than restarting from the root/router agent.
35
+ * Fails fast when an edge references an agent that is not in
36
+ * `agentContexts`. Without this check, the underlying LangGraph
37
+ * `StateGraph.compile()` would throw the opaque
38
+ * `Found edge ending at unknown node "<id>"` error after graph
39
+ * construction — far from the true root cause.
40
+ *
41
+ * This catches the common misuse of passing `edges` into a multi-agent
42
+ * config without also passing the corresponding sub-agent configs in
43
+ * `agents` (e.g. a host that forgot to pre-load handoff targets).
57
44
  */
58
- private resumeFromAgentId;
59
- constructor(input: t.MultiAgentGraphInput);
45
+ private validateEdgeAgents;
60
46
  /**
61
- * Categorize edges into handoff, transfer, and sequence types
47
+ * Categorize edges into handoff and direct types
62
48
  */
63
49
  private categorizeEdges;
64
50
  /**
@@ -86,12 +72,6 @@ export declare class MultiAgentGraph extends StandardGraph {
86
72
  * Group IDs are incrementing numbers reflecting execution order.
87
73
  */
88
74
  getParallelGroupId(agentId: string): number | undefined;
89
- /**
90
- * Returns the ID of the last agent that produced output.
91
- * Used by auto-continuation to determine which agent's context to preserve
92
- * when a response is truncated after an agent handoff.
93
- */
94
- getLastActiveAgentId(): string | undefined;
95
75
  /**
96
76
  * Override to indicate this is a multi-agent graph.
97
77
  * Enables agentId to be included in RunStep for frontend agent labeling.
@@ -102,112 +82,20 @@ export declare class MultiAgentGraph extends StandardGraph {
102
82
  */
103
83
  protected getParallelGroupIdForAgent(agentId: string): number | undefined;
104
84
  /**
105
- * Create transfer tools for agents based on transfer edges only.
106
- * Transfer tools return Command for one-way routing — parent exits, child takes over.
107
- */
108
- private createTransferTools;
109
- /**
110
- * Create transfer tools for an edge (handles multiple destinations).
111
- * Transfer tools return Command for one-way routing — parent exits, child takes over.
112
- * @param edge - The graph edge defining the transfer
113
- * @param sourceAgentId - The ID of the agent that will perform the transfer
114
- * @param sourceAgentName - The human-readable name of the source agent
115
- */
116
- private createTransferToolsForEdge;
117
- /**
118
- * Builds orchestration guidance injected into the system message of agents
119
- * that have handoff or transfer tools (i.e., orchestrator agents).
120
- *
121
- * Implements two orchestration primitives:
122
- * - Execution bias guidance injected into the system prompt
123
- * - Multi-round autonomous execution for dependent tasks
124
- *
125
- * Handoff tools are synchronous (browser-tool callback pattern): spawn the
126
- * child, await completion, return the real text as the tool output. Parallel
127
- * handoff tool calls in one turn run concurrently via LangGraph's ToolNode,
128
- * so independent children run in parallel without explicit orchestration.
129
- *
130
- * @param childDescs - Display names (with optional descriptions) of child agents
131
- * @param toolCount - Number of handoff/transfer tools available
132
- */
133
- private buildOrchestratorGuidance;
134
- /**
135
- * Builds subagent context instructions injected into child agents that are
136
- * handoff destinations. This tells the child agent it is a subagent with
137
- * a focused task.
138
- *
139
- * @param orchestratorName - Display name of the parent orchestrator agent
140
- */
141
- private buildChildAgentContext;
142
- /**
143
- * Builds a meaningful default description for a transfer tool when no explicit
144
- * edge.description is provided. Uses the destination agent's name and description
145
- * so the LLM can make informed routing decisions.
146
- * @param destContext - AgentContext of the destination agent (may be undefined)
147
- * @param destinationId - Raw agent ID (fallback when context unavailable)
148
- */
149
- private buildDefaultTransferDescription;
150
- /**
151
- * Create handoff tools for agents based on handoff edges.
152
- * Handoff tools invoke child agent subgraphs inline and return the result
153
- * as a string to the parent agent's context. Unlike transfer tools (which
154
- * return Command for one-way routing), handoff tools execute the child,
155
- * extract the final text, and return it within the parent's agent loop.
156
- *
157
- * This enables the supervisor pattern: parent calls child → gets result → thinks → calls another.
85
+ * Create handoff tools for agents based on handoff edges only
158
86
  */
159
87
  private createHandoffTools;
160
88
  /**
161
- * Create handoff tools for an edge (handles multiple destinations).
162
- * Each handoff tool spawns the child agent's compiled subgraph asynchronously
163
- * and returns immediately. The orchestrator uses `collect_results` to retrieve
164
- * outputs and `check_agents` to monitor status — a push-based autonomous
165
- * orchestration pattern.
166
- *
89
+ * Create handoff tools for an edge (handles multiple destinations)
167
90
  * @param edge - The graph edge defining the handoff
168
- * @param sourceAgentId - The ID of the parent/supervisor agent
91
+ * @param sourceAgentId - The ID of the agent that will perform the handoff
92
+ * @param sourceAgentName - The human-readable name of the source agent
169
93
  */
170
94
  private createHandoffToolsForEdge;
171
- /**
172
- * Extract the final text result from a child agent's output messages.
173
- * Walks backwards to find the last AIMessage with text content.
174
- * Handles both string content and array content (multi-modal messages).
175
- * @param messages - The child agent's output messages
176
- * @param agentId - The child agent ID (for fallback message)
177
- */
178
- static extractHandoffResult(messages: BaseMessage[], agentId: string): string;
179
- /**
180
- * Truncate handoff result using head/tail strategy (60/40 split).
181
- * Preserves the beginning (key findings) and end (conclusions).
182
- * Matches the TaskTool.truncateResult pattern used by host orchestrators.
183
- * @param result - The full result text
184
- * @param maxChars - Maximum allowed characters
185
- */
186
- static truncateHandoffResult(result: string, maxChars: number): string;
187
- /**
188
- * Build a meaningful default description for a handoff tool.
189
- * @param destContext - AgentContext of the destination agent
190
- * @param destinationId - Raw agent ID (fallback)
191
- */
192
- private buildDefaultHandoffDescription;
193
95
  /**
194
96
  * Create a complete agent subgraph (similar to createReactAgent)
195
97
  */
196
98
  private createAgentSubgraph;
197
- /**
198
- * BFS from `rootAgentId` across sequence + transfer edges (NOT handoff edges).
199
- * Returns the set of agents reachable in this agent's "local workflow".
200
- */
201
- private computeReachableViaNonHandoff;
202
- /**
203
- * Build a compiled scoped StateGraph containing `agentIds` as nodes, rooted
204
- * at `rootAgentId`. Linear sequence edges where both endpoints are in scope
205
- * are wired directly; nodes with no outgoing in-scope edges route to END.
206
- *
207
- * Each node is wrapped around the per-agent `createAgentNode` compiled
208
- * workflow (agent + tools loop) to preserve isolated tool context.
209
- */
210
- private buildScopedSubgraph;
211
99
  /**
212
100
  * Detects if the current agent is receiving a handoff and processes the messages accordingly.
213
101
  * Returns filtered messages with the transfer tool call/message removed, plus any instructions,
@@ -220,21 +108,9 @@ export declare class MultiAgentGraph extends StandardGraph {
220
108
  * @param agentId - The agent ID to check for handoff reception
221
109
  * @returns Object with filtered messages, extracted instructions, source agent, and parallel siblings
222
110
  */
111
+ private processHandoffReception;
223
112
  /**
224
- * Prepare messages for a handoff child agent. See
225
- * {@link prepareHandoffMessagesUtil} for the full implementation and
226
- * semantics — this static method is a thin delegate preserved for
227
- * backward compatibility with existing call sites and unit tests.
228
- */
229
- static prepareHandoffMessages(messages: BaseMessage[]): BaseMessage[];
230
- /**
231
- * Build an isolated message context for a downstream scoped-subgraph
232
- * node. See {@link prepareIsolatedChildMessagesUtil} for details.
233
- */
234
- static prepareIsolatedChildMessages(messages: BaseMessage[]): BaseMessage[];
235
- private processTransferReception;
236
- /**
237
- * Create the multi-agent workflow with handoffs, transfers, and sequences
113
+ * Create the multi-agent workflow with dynamic handoffs
238
114
  */
239
115
  createWorkflow(): t.CompiledMultiAgentWorkflow;
240
116
  }
@@ -1,3 +1,2 @@
1
1
  export * from './Graph';
2
2
  export * from './MultiAgentGraph';
3
- export * from './HandoffRegistry';
@@ -0,0 +1,56 @@
1
+ import type { HookEvent, HookMatcher } from './types';
2
+ /**
3
+ * Run-scoped storage for hook matchers with an additional layer for
4
+ * session-scoped matchers that should be cleaned up between sessions.
5
+ *
6
+ * Hosts construct one registry per `Run` (mirroring how `HandlerRegistry` is
7
+ * scoped) and register global matchers + per-session matchers against it.
8
+ * Registration is strictly additive — nothing in this class mutates a
9
+ * matcher's callbacks or flags after insertion.
10
+ *
11
+ * ## Why `Map<sessionId, MatcherBucket>` and not `Record`
12
+ *
13
+ * LibreChat runs thousands of parallel sessions in one Node process, and
14
+ * hook registration happens inside hot paths (tool loading, agent spawning).
15
+ * A `Record<sessionId, ...>` has to be spread on every insertion, which is
16
+ * O(n) per call and O(n²) total for a batch of parallel registrations. A
17
+ * Map mutates in place, keeping insertions O(1). This mirrors the reasoning
18
+ * Claude Code documents at `utils/hooks/sessionHooks.ts:62`.
19
+ */
20
+ export declare class HookRegistry {
21
+ private readonly global;
22
+ private readonly sessions;
23
+ /**
24
+ * Register a matcher for the lifetime of this registry (= one Run).
25
+ * Returns an unregister function that removes the matcher by reference.
26
+ */
27
+ register<E extends HookEvent>(event: E, matcher: HookMatcher<E>): () => void;
28
+ /**
29
+ * Register a matcher for a specific session. Cleared automatically when
30
+ * `clearSession(sessionId)` is called, or can be removed directly via the
31
+ * returned unregister function.
32
+ */
33
+ registerSession<E extends HookEvent>(sessionId: string, event: E, matcher: HookMatcher<E>): () => void;
34
+ /**
35
+ * Returns all matchers registered for `event`, concatenating global first
36
+ * and then session-specific (when `sessionId` is supplied). The caller
37
+ * receives a fresh array, so iterating it is safe even if a matcher is
38
+ * removed mid-iteration (e.g. via `once: true`).
39
+ */
40
+ getMatchers<E extends HookEvent>(event: E, sessionId?: string): HookMatcher<E>[];
41
+ /**
42
+ * Removes `matcher` by reference from global storage first, falling back
43
+ * to the session bucket when `sessionId` is supplied. Used by
44
+ * `executeHooks` to drop `once: true` matchers after they fire.
45
+ */
46
+ removeMatcher<E extends HookEvent>(event: E, matcher: HookMatcher<E>, sessionId?: string): boolean;
47
+ /**
48
+ * Drops every session-scoped matcher for `sessionId`. Call this in the
49
+ * `finally` block around a Run so a `once: true` hook that never fired
50
+ * cannot leak into the next session on the same registry.
51
+ */
52
+ clearSession(sessionId: string): void;
53
+ /** True if at least one matcher exists for `event` (global + session). */
54
+ hasHookFor(event: HookEvent, sessionId?: string): boolean;
55
+ private ensureSessionBucket;
56
+ }
@@ -0,0 +1,79 @@
1
+ import type { Logger } from 'winston';
2
+ import type { HookRegistry } from './HookRegistry';
3
+ import type { HookInput, AggregatedHookResult } from './types';
4
+ /** Default per-hook timeout when a matcher doesn't set its own. */
5
+ export declare const DEFAULT_HOOK_TIMEOUT_MS = 30000;
6
+ /**
7
+ * Options for a single `executeHooks` call. The `input` drives everything —
8
+ * the event name is read from `input.hook_event_name`, matchers are looked
9
+ * up against that event, and each hook receives `input` directly.
10
+ */
11
+ export interface ExecuteHooksOptions {
12
+ registry: HookRegistry;
13
+ input: HookInput;
14
+ /** Scope lookup to this session (in addition to global matchers). */
15
+ sessionId?: string;
16
+ /** Query string matched against each matcher's pattern (tool name, etc.). */
17
+ matchQuery?: string;
18
+ /** Parent AbortSignal — combined with per-hook timeout into the hook signal. */
19
+ signal?: AbortSignal;
20
+ /** Default per-hook timeout; overridden by `matcher.timeout` when present. */
21
+ timeoutMs?: number;
22
+ /** Optional winston logger for non-internal hook errors. */
23
+ logger?: Logger;
24
+ }
25
+ /**
26
+ * Fires every matcher registered against `input.hook_event_name`, folding
27
+ * their results per `deny > ask > allow` precedence and accumulating
28
+ * context/errors.
29
+ *
30
+ * ## Parallelism and determinism
31
+ *
32
+ * All matching hooks fire simultaneously and are awaited via `Promise.all`,
33
+ * which preserves input-array order in its returned results. The fold
34
+ * therefore iterates outcomes in **registration order** — outer loop over
35
+ * matchers as they sit in the registry (global first, then session), inner
36
+ * loop over each matcher's `hooks` array. Last-writer-wins fields
37
+ * (`updatedInput`, `updatedOutput`) are deterministic in that order, even
38
+ * though hooks may complete in arbitrary wall-clock order.
39
+ *
40
+ * Consumers that need a single authoritative rewrite should still scope
41
+ * `updatedInput`/`updatedOutput` to one hook per matcher to avoid subtle
42
+ * precedence bugs when matchers are added in a different order than
43
+ * expected.
44
+ *
45
+ * ## Timeouts and cancellation
46
+ *
47
+ * Each matcher receives **one shared `AbortSignal`** derived from the
48
+ * caller's parent signal combined with `matcher.timeout` (falling back to
49
+ * `opts.timeoutMs`, default {@link DEFAULT_HOOK_TIMEOUT_MS}). Sharing the
50
+ * signal across hooks in a matcher collapses N timer allocations into
51
+ * one, which matters on the PreToolUse hot path where a matcher with
52
+ * several hooks fires on every tool call. Each hook call is raced
53
+ * against the shared signal, so even a hook that ignores the signal is
54
+ * force-unblocked when the timeout fires. Timeout/abort errors are
55
+ * swallowed into the aggregated result's `errors` array (non-fatal by
56
+ * default).
57
+ *
58
+ * ## Internal matchers
59
+ *
60
+ * A matcher with `internal: true` is excluded from both the `errors` array
61
+ * and the logger output. Use it for infrastructure hooks whose failures
62
+ * should not pollute user-visible diagnostics.
63
+ *
64
+ * ## Once semantics — atomic at-most-once
65
+ *
66
+ * A matcher with `once: true` is removed from the registry **before any
67
+ * hook runs**, inside the synchronous prefix of `executeHooks` (between
68
+ * `getMatchers` and the first `await`). Because Node's event loop serialises
69
+ * sync work, two concurrent `executeHooks` calls can never both observe
70
+ * and dispatch the same `once` matcher — whichever call runs its sync
71
+ * prefix first consumes it, and the loser sees an empty bucket.
72
+ *
73
+ * Trade-off: if every hook in a `once` matcher throws, the matcher is
74
+ * still gone. "Once" here means "at most one dispatch, ever", not "at
75
+ * most one successful execution with retry on failure". Hosts that need
76
+ * retry semantics should register a normal matcher and self-unregister
77
+ * via the `unregister` callback returned from `registry.register`.
78
+ */
79
+ export declare function executeHooks(opts: ExecuteHooksOptions): Promise<AggregatedHookResult>;
@@ -0,0 +1,6 @@
1
+ export { HookRegistry } from './HookRegistry';
2
+ export { executeHooks, DEFAULT_HOOK_TIMEOUT_MS } from './executeHooks';
3
+ export { matchesQuery, hasNestedQuantifier, MAX_PATTERN_LENGTH, MAX_CACHE_SIZE, } from './matchers';
4
+ export { HOOK_EVENTS } from './types';
5
+ export type { HookEvent, HookInput, HookOutput, HookCallback, HookMatcher, HooksByEvent, HookInputByEvent, HookOutputByEvent, BaseHookInput, BaseHookOutput, ToolDecision, StopDecision, AggregatedHookResult, RunStartHookInput, UserPromptSubmitHookInput, PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput, PermissionDeniedHookInput, SubagentStartHookInput, SubagentStopHookInput, StopHookInput, StopFailureHookInput, PreCompactHookInput, PostCompactHookInput, RunStartHookOutput, UserPromptSubmitHookOutput, PreToolUseHookOutput, PostToolUseHookOutput, PostToolUseFailureHookOutput, PermissionDeniedHookOutput, SubagentStartHookOutput, SubagentStopHookOutput, StopHookOutput, StopFailureHookOutput, PreCompactHookOutput, PostCompactHookOutput, } from './types';
6
+ export type { ExecuteHooksOptions } from './executeHooks';
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Upper bound on hook-matcher pattern length. Patterns longer than this
3
+ * are rejected outright — the goal is a cheap cap on pathological inputs
4
+ * (repeated quantifiers, huge alternation groups) without pulling in a
5
+ * safe-regex dependency.
6
+ *
7
+ * Legitimate matchers are almost always under 50 characters (tool names,
8
+ * short alternations, simple prefix anchors); 512 leaves generous
9
+ * headroom while preventing 10KB regexes.
10
+ */
11
+ export declare const MAX_PATTERN_LENGTH = 512;
12
+ /**
13
+ * Upper bound on the compilation cache. Chosen to comfortably hold every
14
+ * distinct pattern a single multi-tenant run is likely to see (tools,
15
+ * agent types, basename filters) without growing without bound.
16
+ *
17
+ * Under hosts that register unique patterns per tenant, LRU eviction
18
+ * keeps the working set bounded — cold patterns are re-compiled on next
19
+ * use, which is the correct cost trade-off for long-running processes
20
+ * that must not leak memory.
21
+ */
22
+ export declare const MAX_CACHE_SIZE = 256;
23
+ /**
24
+ * Cheap syntactic detector for the most common catastrophic-backtracking
25
+ * shape: a quantified group that contains another quantifier (e.g.
26
+ * `(a+)+`, `(.*)*`, `(\w+)+$`, `(?:(a+))+`). This is the "nested
27
+ * quantifier" class of ReDoS — runs in polynomial-or-worse time on
28
+ * adversarial inputs.
29
+ *
30
+ * The scan walks the pattern linearly using an explicit stack of group
31
+ * frames. For each group it tracks whether the group's contents include
32
+ * "backtrack risk" — meaning a direct quantifier OR a nested group that
33
+ * carries risk up. When a group closes with a trailing quantifier AND its
34
+ * frame carries backtrack risk, the pattern is flagged. Risk propagates
35
+ * to the enclosing frame when a child group closes (whether the child
36
+ * itself was quantified or not), so `(?:(a+))+` — equivalent to `(a+)+`
37
+ * — is flagged correctly even though the outer non-capturing wrapper is
38
+ * one level removed from the inner quantifier.
39
+ *
40
+ * ## Group-syntax prefixes
41
+ *
42
+ * Non-capturing groups (`(?:`), lookaheads (`(?=`, `(?!`), lookbehinds
43
+ * (`(?<=`, `(?<!`), and named groups (`(?<name>`) are skipped over at
44
+ * the `(` so their `?` is not misread as a quantifier. Without this,
45
+ * `(?:pre_)?tool_name` would be incorrectly rejected because the scanner
46
+ * would see the group-syntax `?` as a quantifier at depth 1.
47
+ *
48
+ * ## Heuristic, not a proof
49
+ *
50
+ * This catches the common forms but not all. Ambiguous-alternation ReDoS
51
+ * like `(a|a)+` is not detected. Pathologically long patterns are also
52
+ * caught by {@link MAX_PATTERN_LENGTH}. Hosts that accept user-supplied
53
+ * patterns must still validate upstream.
54
+ */
55
+ export declare function hasNestedQuantifier(pattern: string): boolean;
56
+ /**
57
+ * Tests whether a hook matcher pattern matches the given query string.
58
+ *
59
+ * ## Semantics
60
+ *
61
+ * - `undefined` or empty `pattern` matches any query (wildcard). This is
62
+ * the intended shape for events that do not supply a query string at
63
+ * all (`RunStart`, `Stop`, etc.) — register such matchers without a
64
+ * pattern.
65
+ * - `undefined` or empty `query` with a non-empty `pattern` never matches.
66
+ * Setting a pattern on a query-less event is therefore inert: the
67
+ * matcher will simply never fire. This is intentional — it keeps
68
+ * query-based filtering out of event types where "query" has no meaning,
69
+ * and is documented on `HookMatcher.pattern`.
70
+ * - Otherwise, the pattern is compiled once (via a bounded LRU cache) and
71
+ * tested against the query.
72
+ * - Invalid regex patterns never throw — a failed compile is cached as
73
+ * "never matches" so a single malformed pattern cannot take out a whole
74
+ * `executeHooks` batch.
75
+ *
76
+ * ## ReDoS mitigations
77
+ *
78
+ * Patterns compile through three cheap gates before reaching `new RegExp`:
79
+ *
80
+ * 1. {@link MAX_PATTERN_LENGTH} length cap rejects oversized inputs.
81
+ * 2. {@link hasNestedQuantifier} rejects the most common catastrophic-
82
+ * backtracking shape (quantified group containing a quantifier).
83
+ * 3. Successful compiles are cached in a bounded LRU so repeated calls
84
+ * never re-enter the regex compiler.
85
+ *
86
+ * These are a floor, not a ceiling. Hosts that accept user-supplied
87
+ * patterns should still validate upstream. The design report §3.8 routes
88
+ * persistable hooks through a host-side compiler before they reach this
89
+ * module.
90
+ */
91
+ export declare function matchesQuery(pattern: string | undefined, query: string | undefined): boolean;
92
+ /** Clears the regex compilation cache. Intended for test isolation. */
93
+ export declare function clearMatcherCache(): void;
94
+ /** Returns the current size of the compilation cache. Intended for tests. */
95
+ export declare function getMatcherCacheSize(): number;