@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
@@ -2,8 +2,8 @@ import type { Logger as WinstonLogger } from 'winston';
2
2
  import type { RunnableConfig } from '@langchain/core/runnables';
3
3
  import type { BaseReranker } from './rerankers';
4
4
  import { DATE_RANGE } from './schema';
5
- export type SearchProvider = 'serper' | 'searxng';
6
- export type ScraperProvider = 'firecrawl' | 'serper';
5
+ export type SearchProvider = 'serper' | 'searxng' | 'tavily';
6
+ export type ScraperProvider = 'firecrawl' | 'serper' | 'tavily';
7
7
  export type RerankerType = 'infinity' | 'jina' | 'cohere' | 'none';
8
8
  export interface Highlight {
9
9
  score: number;
@@ -56,11 +56,50 @@ export interface Source {
56
56
  snippet?: string;
57
57
  date?: string;
58
58
  }
59
+ export type TavilyTimeRange = 'day' | 'week' | 'month' | 'year';
60
+ export type TavilyTimeRangeInput = TavilyTimeRange | 'h' | 'd' | 'w' | 'm' | 'y';
61
+ export interface TavilySearchOptions {
62
+ searchDepth?: 'basic' | 'advanced' | 'fast' | 'ultra-fast';
63
+ maxResults?: number;
64
+ includeImages?: boolean;
65
+ includeAnswer?: boolean | 'basic' | 'advanced';
66
+ includeRawContent?: boolean | 'markdown' | 'text';
67
+ includeDomains?: string[];
68
+ excludeDomains?: string[];
69
+ topic?: 'general' | 'news' | 'finance';
70
+ timeRange?: TavilyTimeRangeInput;
71
+ includeImageDescriptions?: boolean;
72
+ includeFavicon?: boolean;
73
+ chunksPerSource?: number;
74
+ safeSearch?: boolean;
75
+ timeout?: number;
76
+ }
77
+ export interface TavilySearchPayload {
78
+ query: string;
79
+ search_depth: NonNullable<TavilySearchOptions['searchDepth']>;
80
+ topic: NonNullable<TavilySearchOptions['topic']>;
81
+ max_results: number;
82
+ safe_search?: boolean;
83
+ time_range?: TavilyTimeRange;
84
+ country?: string;
85
+ include_images?: boolean;
86
+ include_answer?: NonNullable<TavilySearchOptions['includeAnswer']>;
87
+ include_raw_content?: NonNullable<TavilySearchOptions['includeRawContent']>;
88
+ include_domains?: string[];
89
+ exclude_domains?: string[];
90
+ include_image_descriptions?: boolean;
91
+ include_favicon?: boolean;
92
+ chunks_per_source?: number;
93
+ }
59
94
  export interface SearchConfig {
60
95
  searchProvider?: SearchProvider;
61
96
  serperApiKey?: string;
62
97
  searxngInstanceUrl?: string;
63
98
  searxngApiKey?: string;
99
+ tavilyApiKey?: string;
100
+ tavilySearchUrl?: string;
101
+ tavilyExtractUrl?: string;
102
+ tavilySearchOptions?: TavilySearchOptions;
64
103
  /** Domains to exclude from search results (e.g., 'reddit.com', 'twitter.com').
65
104
  * Appended as -site: operators to the search query. */
66
105
  domainBlocklist?: string[];
@@ -101,6 +140,16 @@ export interface SerperScraperConfig {
101
140
  logger?: Logger;
102
141
  includeMarkdown?: boolean;
103
142
  }
143
+ export interface TavilyScraperConfig {
144
+ apiKey?: string;
145
+ apiUrl?: string;
146
+ timeout?: number;
147
+ logger?: Logger;
148
+ extractDepth?: 'basic' | 'advanced';
149
+ includeImages?: boolean;
150
+ includeFavicon?: boolean;
151
+ format?: 'markdown' | 'text';
152
+ }
104
153
  export interface ScraperContentResult {
105
154
  content: string;
106
155
  }
@@ -141,6 +190,7 @@ export interface CohereRerankerResponse {
141
190
  export type SafeSearchLevel = 0 | 1 | 2;
142
191
  export type Logger = WinstonLogger;
143
192
  export interface SearchToolConfig extends SearchConfig, ProcessSourcesConfig, FirecrawlConfig {
193
+ tavilyScraperOptions?: TavilyScraperConfig;
144
194
  logger?: Logger;
145
195
  safeSearch?: SafeSearchLevel;
146
196
  jinaApiKey?: string;
@@ -163,15 +213,27 @@ export type UsedReferences = {
163
213
  originalIndex: number;
164
214
  reference: MediaReference;
165
215
  }[];
216
+ export type AnyScraperResponse = FirecrawlScrapeResponse | SerperScrapeResponse | TavilyScrapeResponse;
166
217
  /** Base Scraper Interface */
167
218
  export interface BaseScraper {
168
- scrapeUrl(url: string, options?: unknown): Promise<[string, FirecrawlScrapeResponse | SerperScrapeResponse]>;
169
- extractContent(response: FirecrawlScrapeResponse | SerperScrapeResponse): [string, undefined | References];
170
- extractMetadata(response: FirecrawlScrapeResponse | SerperScrapeResponse): ScrapeMetadata | Record<string, string | number | boolean | null | undefined>;
219
+ scrapeUrl(url: string, options?: unknown): Promise<[string, AnyScraperResponse]>;
220
+ scrapeUrls?(urls: string[], options?: unknown): Promise<Array<[string, AnyScraperResponse]>>;
221
+ extractContent(response: AnyScraperResponse): [string, undefined | References];
222
+ extractMetadata(response: AnyScraperResponse): ScrapeMetadata | GenericScrapeMetadata;
171
223
  }
172
224
  /** Firecrawl */
173
225
  export type FirecrawlScrapeOptions = Omit<FirecrawlScraperConfig, 'apiKey' | 'apiUrl' | 'version' | 'logger'>;
174
226
  export type SerperScrapeOptions = Omit<SerperScraperConfig, 'apiKey' | 'apiUrl' | 'logger'>;
227
+ export type TavilyScrapeOptions = Omit<TavilyScraperConfig, 'apiKey' | 'apiUrl' | 'logger'>;
228
+ export interface TavilyExtractPayload {
229
+ urls: string[];
230
+ extract_depth: NonNullable<TavilyScraperConfig['extractDepth']>;
231
+ include_images: boolean;
232
+ include_favicon?: boolean;
233
+ format?: NonNullable<TavilyScraperConfig['format']>;
234
+ timeout?: number;
235
+ }
236
+ export type GenericScrapeMetadata = Record<string, string | number | boolean | null | undefined>;
175
237
  export interface ScrapeMetadata {
176
238
  sourceURL?: string;
177
239
  url?: string;
@@ -247,6 +309,38 @@ export interface SerperScrapeResponse {
247
309
  };
248
310
  error?: string;
249
311
  }
312
+ export interface TavilyScrapeResponse {
313
+ success: boolean;
314
+ data?: {
315
+ rawContent?: string;
316
+ images?: string[];
317
+ favicon?: string;
318
+ };
319
+ error?: string;
320
+ }
321
+ export interface TavilySearchResult {
322
+ title?: string;
323
+ url?: string;
324
+ content?: string;
325
+ score?: number;
326
+ published_date?: string;
327
+ }
328
+ export type TavilyImageResult = string | {
329
+ url?: string;
330
+ description?: string;
331
+ };
332
+ export interface TavilySearchResponse {
333
+ answer?: string;
334
+ images?: TavilyImageResult[];
335
+ results?: TavilySearchResult[];
336
+ }
337
+ export interface TavilyExtractResult {
338
+ url: string;
339
+ raw_content?: string;
340
+ images?: string[];
341
+ favicon?: string;
342
+ error?: string;
343
+ }
250
344
  export interface FirecrawlScraperConfig {
251
345
  apiKey?: string;
252
346
  apiUrl?: string;
@@ -6,5 +6,5 @@ import type * as t from './types';
6
6
  */
7
7
  export declare const createDefaultLogger: () => t.Logger;
8
8
  export declare const fileExtRegex: RegExp;
9
- export declare const getDomainName: (link: string, metadata?: t.ScrapeMetadata, logger?: t.Logger) => string | undefined;
10
- export declare function getAttribution(link: string, metadata?: t.ScrapeMetadata, logger?: t.Logger): string | undefined;
9
+ export declare const getDomainName: (link: string, metadata?: t.ScrapeMetadata | t.GenericScrapeMetadata, logger?: t.Logger) => string | undefined;
10
+ export declare function getAttribution(link: string, metadata?: t.ScrapeMetadata | t.GenericScrapeMetadata, logger?: t.Logger): string | undefined;
@@ -0,0 +1,19 @@
1
+ import type { SkillCatalogEntry } from '@/types';
2
+ export type SkillCatalogOptions = {
3
+ /** Total context window in tokens. Default: 200_000 */
4
+ contextWindowTokens?: number;
5
+ /** Fraction of context budget for catalog. Default: 0.01 (1%) */
6
+ budgetPercent?: number;
7
+ /** Max chars per entry description. Default: 250 */
8
+ maxEntryChars?: number;
9
+ /** Descriptions below this length trigger names-only fallback. Default: 20 */
10
+ minDescLength?: number;
11
+ /** Approximate chars per token for budget calculation. Default: 4 */
12
+ charsPerToken?: number;
13
+ };
14
+ /**
15
+ * Formats a skill catalog for injection into agent context.
16
+ * Uses a truncation ladder: full descriptions, proportional truncation, names-only.
17
+ * Returns empty string for empty input.
18
+ */
19
+ export declare function formatSkillCatalog(skills: SkillCatalogEntry[], opts?: SkillCatalogOptions): string;
@@ -0,0 +1,137 @@
1
+ import type { BaseMessage } from '@langchain/core/messages';
2
+ import type { AgentInputs, StandardGraphInput, ResolvedSubagentConfig, SubagentConfig, TokenCounter } from '@/types';
3
+ import type { HookRegistry } from '@/hooks';
4
+ import type { AgentContext } from '@/agents/AgentContext';
5
+ import type { StandardGraph } from '@/graphs/Graph';
6
+ import type { HandlerRegistry } from '@/events';
7
+ export type SubagentExecuteParams = {
8
+ description: string;
9
+ subagentType: string;
10
+ threadId?: string;
11
+ /**
12
+ * Parent-side `tool_call_id` of the `subagent` tool invocation that
13
+ * triggered this execution. Surfaced on {@link SubagentUpdateEvent} so
14
+ * hosts can correlate child updates back to the originating tool call
15
+ * without relying on event ordering heuristics.
16
+ */
17
+ parentToolCallId?: string;
18
+ };
19
+ export type SubagentExecuteResult = {
20
+ content: string;
21
+ messages: BaseMessage[];
22
+ };
23
+ /**
24
+ * Factory that constructs a child graph for subagent execution. Injected
25
+ * rather than imported so that `SubagentExecutor` does not have a runtime
26
+ * dependency on `StandardGraph` — this avoids a circular dependency between
27
+ * `src/graphs/Graph.ts` and `src/tools/subagent/` that would otherwise break
28
+ * Rollup's chunking under `preserveModules`.
29
+ */
30
+ export type ChildGraphFactory = (input: StandardGraphInput) => StandardGraph;
31
+ export type SubagentExecutorOptions = {
32
+ configs: Map<string, ResolvedSubagentConfig>;
33
+ parentSignal?: AbortSignal;
34
+ hookRegistry?: HookRegistry;
35
+ parentRunId: string;
36
+ parentAgentId?: string;
37
+ tokenCounter?: TokenCounter;
38
+ /** Remaining nesting budget. 0 or negative blocks execution. */
39
+ maxDepth?: number;
40
+ /**
41
+ * Factory for constructing the isolated child graph. Callers pass
42
+ * `(input) => new StandardGraph(input)` — injected to break a circular
43
+ * module dependency.
44
+ */
45
+ createChildGraph: ChildGraphFactory;
46
+ /**
47
+ * Parent's event handler registry. When provided, child-graph events are
48
+ * forwarded through this registry so hosts can:
49
+ * (a) execute event-driven tools (`ON_TOOL_EXECUTE` routed to parent's handler),
50
+ * (b) surface child activity to a UI via wrapped {@link GraphEvents.ON_SUBAGENT_UPDATE}.
51
+ * When omitted, the child runs fully isolated (legacy behavior).
52
+ *
53
+ * Can be a direct `HandlerRegistry` or a zero-arg getter — use the getter
54
+ * form when the registry is assigned to the graph AFTER the executor is
55
+ * constructed (the current `Run.create` flow sets `handlerRegistry`
56
+ * post-`createWorkflow`, so `createAgentNode` must capture lazily).
57
+ */
58
+ parentHandlerRegistry?: HandlerRegistry | (() => HandlerRegistry | undefined);
59
+ };
60
+ export declare class SubagentExecutor {
61
+ private readonly configs;
62
+ private readonly parentSignal?;
63
+ private readonly hookRegistry?;
64
+ private readonly parentRunId;
65
+ private readonly parentAgentId?;
66
+ private readonly tokenCounter?;
67
+ private readonly maxDepth;
68
+ private readonly createChildGraph;
69
+ private readonly resolveParentHandlerRegistry?;
70
+ constructor(options: SubagentExecutorOptions);
71
+ /** Snapshot of the parent's registry at the moment a subagent is dispatched. */
72
+ private getParentHandlerRegistry;
73
+ execute(params: SubagentExecuteParams): Promise<SubagentExecuteResult>;
74
+ /**
75
+ * Emits a single {@link GraphEvents.ON_SUBAGENT_UPDATE} envelope through the
76
+ * parent's handler registry. Silent no-op when no parent registry is set.
77
+ * Errors are swallowed — update events are observational.
78
+ */
79
+ private emitSubagentUpdate;
80
+ /**
81
+ * Builds a BaseCallbackHandler that intercepts the child graph's custom
82
+ * events. Routing rules:
83
+ * - `ON_TOOL_EXECUTE` → forwarded as-is to the parent's ON_TOOL_EXECUTE
84
+ * handler (so event-driven tools work identically for child and parent).
85
+ * - `ON_RUN_STEP` / `ON_RUN_STEP_DELTA` / `ON_RUN_STEP_COMPLETED` /
86
+ * `ON_MESSAGE_DELTA` / `ON_REASONING_DELTA` → wrapped in a
87
+ * {@link GraphEvents.ON_SUBAGENT_UPDATE} envelope with a human-readable
88
+ * label, delivered to the parent's subagent-update handler.
89
+ * - Everything else → ignored (keeps parent's UI scoped to the events it
90
+ * cares about; host apps can extend by registering more phases).
91
+ */
92
+ private createForwarderCallback;
93
+ }
94
+ /**
95
+ * Produces a short single-line label for an arbitrary forwarded child event.
96
+ * Used to populate {@link SubagentUpdateEvent.label} so the host UI can show
97
+ * a compact status ticker without parsing the raw payload.
98
+ */
99
+ export declare function summarizeEvent(eventName: string, data: unknown): string;
100
+ /**
101
+ * Walk messages from last to first, returning the text content of the most
102
+ * recent AIMessage that has any. Non-text blocks (tool_use, thinking,
103
+ * redacted_thinking, tool_result) are stripped. If the last AIMessage is
104
+ * pure tool_use (e.g. the subagent hit `maxTurns` mid-tool-call), the walk
105
+ * continues to earlier AIMessages so partial progress is salvaged — this
106
+ * matches Claude Code's behavior in `agentToolUtils.finalizeAgentTool`.
107
+ * Returns "Task completed" only when no AIMessage in the history contains
108
+ * any text.
109
+ */
110
+ export declare function filterSubagentResult(messages: BaseMessage[]): string;
111
+ /**
112
+ * Resolve self-spawn configs by filling in agentInputs from the parent context.
113
+ * Returns configs with agentInputs guaranteed present. Throws on duplicate
114
+ * `type` values to prevent silent config shadowing.
115
+ */
116
+ export declare function resolveSubagentConfigs(configs: SubagentConfig[], parentContext: AgentContext): ResolvedSubagentConfig[];
117
+ /**
118
+ * Build child AgentInputs from a resolved config, stripping nesting and
119
+ * (optionally) event-driven fields. When `allowNested: true`, the child's
120
+ * `maxSubagentDepth` is decremented so that depth is consumed as the call
121
+ * chain deepens across graph boundaries — the parent's executor-level check
122
+ * alone cannot see into the child graph's separate executor.
123
+ *
124
+ * When `keepToolDefinitions` is `true`, the child retains the parent's
125
+ * `toolDefinitions` so event-driven tools remain usable. This is only safe
126
+ * when the caller has wired a forwarder for `ON_TOOL_EXECUTE` to a
127
+ * registered handler — otherwise the child will hang on tool dispatch.
128
+ *
129
+ * @remarks Advanced utility: exported primarily for testing and by
130
+ * {@link SubagentExecutor}. Host applications configuring subagents should
131
+ * not need to call this directly — it is invoked internally when a subagent
132
+ * tool is dispatched. The depth-countdown contract (parent's `maxDepth` in,
133
+ * child's decremented `maxSubagentDepth` on the returned inputs) is the
134
+ * mechanism that bounds nesting across graph boundaries; callers must
135
+ * respect it.
136
+ */
137
+ export declare function buildChildInputs(config: ResolvedSubagentConfig, childAgentId: string, parentMaxDepth: number, keepToolDefinitions?: boolean): AgentInputs;
@@ -0,0 +1,2 @@
1
+ export { SubagentExecutor, filterSubagentResult, resolveSubagentConfigs, buildChildInputs, summarizeEvent, } from './SubagentExecutor';
2
+ export type { SubagentExecuteParams, SubagentExecuteResult, SubagentExecutorOptions, ChildGraphFactory, } from './SubagentExecutor';
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Shared types for the subagent file-passing pipeline.
3
+ *
4
+ * Single source of truth for:
5
+ * - the `file_ids` shape carried on the `subagent` tool's input schema
6
+ * - the manifest line format the host renders into the supervisor's
7
+ * trailing user-message channel (cache-stable, never the system block)
8
+ * - the resolver hook signature host applications implement to map
9
+ * parent-side `file_id`s into the child's `tool_resources` + first
10
+ * HumanMessage context blocks
11
+ *
12
+ * Keeping these in one place lets the lib, the host, and tests all
13
+ * reference the SAME constants — drift would silently break selective
14
+ * file passing (parent claims a file is available, child gets `null`).
15
+ */
16
+ /**
17
+ * One entry in the parent's file manifest. The host serializes an array of
18
+ * these into a short newline-delimited block that lives in the supervisor's
19
+ * trailing user-message channel — see `MANIFEST_PREFIX` /
20
+ * `formatFileManifest` for the canonical line format.
21
+ */
22
+ export interface SubagentFileManifestEntry {
23
+ /** Stable file ID. Parent's LLM passes this back via `subagent({ file_ids })`. */
24
+ file_id: string;
25
+ /** Display name, used in the manifest line. */
26
+ name: string;
27
+ /** MIME type. Optional — only included in the manifest when present. */
28
+ type?: string;
29
+ /** Size in bytes. Optional — formatted for human readability when present. */
30
+ size?: number;
31
+ }
32
+ /** Header line that begins every parent file manifest block. */
33
+ export declare const MANIFEST_PREFIX = "Files available for delegation:";
34
+ /**
35
+ * Format a single manifest entry as a `- key: value, key: value, ...` line.
36
+ * Pure function — keeps the format consistent across host injection paths
37
+ * and test assertions.
38
+ */
39
+ export declare function formatManifestEntry(entry: SubagentFileManifestEntry): string;
40
+ /**
41
+ * Format a full manifest block for injection below the cache breakpoint.
42
+ * Returns `null` for empty input so callers can `if (block) push(block)`.
43
+ */
44
+ export declare function formatFileManifest(entries: readonly SubagentFileManifestEntry[]): string | null;
45
+ /**
46
+ * Result of resolving parent-side `file_ids` for a child subagent invocation.
47
+ * Each field is shaped to slot directly into the child's runtime:
48
+ * - `toolResources` is merged into the child's `agentInputs.tool_resources`
49
+ * so file_search / execute_code tools see the file
50
+ * - `messageContextBlocks` is prepended to the child's first HumanMessage
51
+ * (alongside the supervisor's task description) so the child sees image
52
+ * blocks for vision models and a short text reference for everything else
53
+ */
54
+ export interface ResolvedSubagentFiles {
55
+ /**
56
+ * Augmented tool_resources object merged into the child's `agentInputs`.
57
+ * Shape matches `AgentToolResources` from the host (kept untyped here to
58
+ * avoid pulling host types into the lib).
59
+ */
60
+ toolResources?: Record<string, unknown>;
61
+ /**
62
+ * Files the resolver successfully looked up. Forwarded verbatim into the
63
+ * child's first message metadata for downstream attachment rendering.
64
+ */
65
+ attachments?: Array<Record<string, unknown>>;
66
+ /**
67
+ * LangChain `HumanMessage.content` blocks (text or image_url) that should
68
+ * be prepended to the child's first message. Empty array for the common
69
+ * case where files are referenced only via tool_resources.
70
+ */
71
+ messageContextBlocks?: Array<Record<string, unknown>>;
72
+ }
73
+ /**
74
+ * Hook the host injects to resolve parent-side `file_id`s into child runtime
75
+ * context. Called once per `subagent` tool invocation that includes
76
+ * `file_ids`. Must be cheap on the empty-array path — the lib calls it for
77
+ * every subagent dispatch.
78
+ *
79
+ * @param fileIds - ID strings the supervisor's LLM picked from the manifest.
80
+ * @param childAgentId - ID assigned to the child for this invocation.
81
+ * @returns Resolved file context for the child, or `undefined` when nothing
82
+ * could be resolved (treated as a soft no-op — the child still runs).
83
+ */
84
+ export type ResolveSubagentFiles = (fileIds: string[], childAgentId: string) => Promise<ResolvedSubagentFiles | undefined>;
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Tool output reference registry.
3
+ *
4
+ * When enabled via `RunConfig.toolOutputReferences.enabled`, ToolNode
5
+ * stores each successful tool output under a stable key
6
+ * (`tool<idx>turn<turn>`) where `idx` is the tool's position within a
7
+ * ToolNode batch and `turn` is the batch index within the run
8
+ * (incremented once per ToolNode invocation).
9
+ *
10
+ * Subsequent tool calls can pipe a previous output into their args by
11
+ * embedding `{{tool<idx>turn<turn>}}` inside any string argument;
12
+ * {@link ToolOutputReferenceRegistry.resolve} walks the args and
13
+ * substitutes the placeholders immediately before invocation.
14
+ *
15
+ * The registry stores the *raw, untruncated* tool output so a later
16
+ * `{{…}}` substitution pipes the full payload into the next tool —
17
+ * even when the LLM only saw a head+tail-truncated preview in
18
+ * `ToolMessage.content`. Outputs are stored without any annotation
19
+ * (the `_ref` key or the `[ref: ...]` prefix seen by the LLM is
20
+ * strictly a UX signal attached to `ToolMessage.content`). Keeping the
21
+ * registry pristine means downstream bash/jq piping receives the
22
+ * complete, verbatim output with no injected fields.
23
+ */
24
+ import type { BaseMessage } from '@langchain/core/messages';
25
+ /**
26
+ * Non-global matcher for a single `{{tool<i>turn<n>}}` placeholder.
27
+ * Exported for consumers that want to detect references (e.g., syntax
28
+ * highlighting, docs). The stateful `g` variant lives inside the
29
+ * registry so nobody trips on `lastIndex`.
30
+ */
31
+ export declare const TOOL_OUTPUT_REF_PATTERN: RegExp;
32
+ /** Object key used when a parsed-object output has `_ref` injected. */
33
+ export declare const TOOL_OUTPUT_REF_KEY = "_ref";
34
+ /**
35
+ * Object key used to carry unresolved reference warnings on a parsed-
36
+ * object output. Using a dedicated field instead of a trailing text
37
+ * line keeps the annotated `ToolMessage.content` parseable as JSON for
38
+ * downstream consumers that rely on the object shape.
39
+ */
40
+ export declare const TOOL_OUTPUT_UNRESOLVED_KEY = "_unresolved_refs";
41
+ /** Single-line prefix prepended to non-object tool outputs so the LLM sees the reference key. */
42
+ export declare function buildReferencePrefix(key: string): string;
43
+ /** Stable registry key for a tool output. */
44
+ export declare function buildReferenceKey(toolIndex: number, turn: number): string;
45
+ export type ToolOutputReferenceRegistryOptions = {
46
+ /** Maximum characters stored per registered output. */
47
+ maxOutputSize?: number;
48
+ /** Maximum total characters retained across all registered outputs. */
49
+ maxTotalSize?: number;
50
+ /**
51
+ * Upper bound on the number of concurrently-tracked runs. When
52
+ * exceeded, the oldest run bucket is evicted (FIFO). Defaults to 32.
53
+ */
54
+ maxActiveRuns?: number;
55
+ };
56
+ /**
57
+ * Result of resolving placeholders in tool args.
58
+ */
59
+ export type ResolveResult<T> = {
60
+ /** Arguments with placeholders replaced. Same shape as the input. */
61
+ resolved: T;
62
+ /** Reference keys that were referenced but had no stored value. */
63
+ unresolved: string[];
64
+ };
65
+ /**
66
+ * Read-only view over a frozen registry snapshot. Returned by
67
+ * {@link ToolOutputReferenceRegistry.snapshot} for callers that need
68
+ * to resolve placeholders against the registry state at a specific
69
+ * point in time, ignoring any subsequent registrations.
70
+ */
71
+ export interface ToolOutputResolveView {
72
+ resolve<T>(args: T): ResolveResult<T>;
73
+ }
74
+ /**
75
+ * Pre-resolved arg map keyed by `toolCallId`. Used by the mixed
76
+ * direct+event dispatch path to feed event calls' resolved args
77
+ * (captured pre-batch) into the dispatcher without re-resolving
78
+ * against the now-stale live registry.
79
+ */
80
+ export type PreResolvedArgsMap = Map<string, {
81
+ resolved: Record<string, unknown>;
82
+ unresolved: string[];
83
+ }>;
84
+ /**
85
+ * Per-call sink for resolved args, keyed by `toolCallId`. Threaded
86
+ * as a per-batch local map so concurrent `ToolNode.run()` calls do
87
+ * not race on shared sink state.
88
+ */
89
+ export type ResolvedArgsByCallId = Map<string, Record<string, unknown>>;
90
+ /**
91
+ * Ordered map of reference-key → stored output, partitioned by run so
92
+ * concurrent / interleaved runs sharing one registry cannot leak
93
+ * outputs between each other.
94
+ *
95
+ * Each public method takes a `runId` which selects the run's bucket.
96
+ * Hosts typically get one registry per run via `Graph`, in which
97
+ * case only a single bucket is ever populated; the partitioning
98
+ * exists so the registry also behaves correctly when a single
99
+ * instance is reused directly.
100
+ */
101
+ export declare class ToolOutputReferenceRegistry {
102
+ private runStates;
103
+ private readonly maxOutputSize;
104
+ private readonly maxTotalSize;
105
+ private readonly maxActiveRuns;
106
+ /**
107
+ * Local stateful matcher used only by `replaceInString`. Kept
108
+ * off-module so callers of the exported `TOOL_OUTPUT_REF_PATTERN`
109
+ * never see a stale `lastIndex`.
110
+ */
111
+ private static readonly PLACEHOLDER_MATCHER;
112
+ constructor(options?: ToolOutputReferenceRegistryOptions);
113
+ private keyFor;
114
+ private getOrCreate;
115
+ /** Registers (or replaces) the output stored under `key` for `runId`. */
116
+ set(runId: string | undefined, key: string, value: string): void;
117
+ /** Returns the stored value for `key` in `runId`'s bucket, or `undefined`. */
118
+ get(runId: string | undefined, key: string): string | undefined;
119
+ /**
120
+ * Returns `true` when `key` is currently stored in `runId`'s bucket.
121
+ * Used by {@link annotateMessagesForLLM} to gate transient annotation
122
+ * on whether the registry still owns the referenced output (a stale
123
+ * `_refKey` from a prior run silently no-ops here).
124
+ */
125
+ has(runId: string | undefined, key: string): boolean;
126
+ /** Total number of registered outputs across every run bucket. */
127
+ get size(): number;
128
+ /** Maximum characters retained per output (post-clip). */
129
+ get perOutputLimit(): number;
130
+ /** Maximum total characters retained *per run*. */
131
+ get totalLimit(): number;
132
+ /** Drops every run's state. */
133
+ clear(): void;
134
+ /**
135
+ * Explicitly release `runId`'s state. Safe to call when a run has
136
+ * finished. Hosts sharing one registry across runs should call this
137
+ * to reclaim memory deterministically; otherwise LRU eviction kicks
138
+ * in when `maxActiveRuns` runs accumulate.
139
+ */
140
+ releaseRun(runId: string | undefined): void;
141
+ /**
142
+ * Claims the next batch turn synchronously from `runId`'s bucket.
143
+ *
144
+ * Must be called once at the start of each ToolNode batch before
145
+ * any `await`, so concurrent invocations within the same run see
146
+ * distinct turn values (reads are effectively atomic by JS's
147
+ * single-threaded execution of the sync prefix).
148
+ *
149
+ * If `runId` is missing the anonymous bucket is dropped and a
150
+ * fresh one created so each anonymous call behaves as its own run.
151
+ */
152
+ nextTurn(runId: string | undefined): number;
153
+ /**
154
+ * Records that `toolName` has been warned about in `runId` (returns
155
+ * `true` on the first call per run, `false` after). Used by
156
+ * ToolNode to emit one log line per offending tool per run when a
157
+ * `ToolMessage.content` isn't a string.
158
+ */
159
+ claimWarnOnce(runId: string | undefined, toolName: string): boolean;
160
+ /**
161
+ * Walks `args` and replaces every `{{tool<i>turn<n>}}` placeholder in
162
+ * string values with the stored output *from `runId`'s bucket*. Non-
163
+ * string values and object keys are left untouched. Unresolved
164
+ * references are left in-place and reported so the caller can
165
+ * surface them to the LLM. When no placeholder appears anywhere in
166
+ * the serialized args, the original input is returned without
167
+ * walking the tree.
168
+ */
169
+ resolve<T>(runId: string | undefined, args: T): ResolveResult<T>;
170
+ /**
171
+ * Captures a frozen snapshot of `runId`'s current entries and
172
+ * returns a view that resolves placeholders against *only* that
173
+ * snapshot. The snapshot is decoupled from the live registry, so
174
+ * subsequent `set()` calls (for example, same-turn direct outputs
175
+ * registering while an event branch is still in flight) are
176
+ * invisible to the snapshot's `resolve`. Used by the mixed
177
+ * direct+event dispatch path to preserve same-turn isolation when
178
+ * a `PreToolUse` hook rewrites event args after directs have
179
+ * completed.
180
+ */
181
+ snapshot(runId: string | undefined): ToolOutputResolveView;
182
+ private resolveAgainst;
183
+ private transform;
184
+ private replaceInString;
185
+ private evictWithinBucket;
186
+ }
187
+ /**
188
+ * Annotates `content` with a reference key and/or unresolved-ref
189
+ * warnings so the LLM sees both alongside the tool output.
190
+ *
191
+ * Behavior:
192
+ * - If `content` parses as a plain (non-array, non-null) JSON object
193
+ * and the object does not already have a conflicting `_ref` key,
194
+ * the reference key and (when present) `_unresolved_refs` array
195
+ * are injected as object fields, preserving JSON validity for
196
+ * downstream consumers that parse the output.
197
+ * - Otherwise (string output, JSON array/primitive, parse failure,
198
+ * or `_ref` collision), a `[ref: <key>]\n` prefix line is
199
+ * prepended and unresolved refs are appended as a trailing
200
+ * `[unresolved refs: …]` line.
201
+ *
202
+ * The annotated string is what the LLM sees as `ToolMessage.content`.
203
+ * The *original* (un-annotated) value is what gets stored in the
204
+ * registry, so downstream piping remains pristine.
205
+ *
206
+ * @param content Raw (post-truncation) tool output.
207
+ * @param key Reference key for this output, or undefined when
208
+ * there is nothing to register (errors etc.).
209
+ * @param unresolved Reference keys that failed to resolve during
210
+ * argument substitution. Surfaced so the LLM can
211
+ * self-correct its next tool call.
212
+ */
213
+ export declare function annotateToolOutputWithReference(content: string, key: string | undefined, unresolved?: string[]): string;
214
+ /**
215
+ * Lazy projection that, given a registry and a runId, returns a new
216
+ * `messages` array where each `ToolMessage` carrying ref metadata is
217
+ * projected into a transient copy with annotated content (when the ref
218
+ * is live in the registry) and with the framework-owned `additional_
219
+ * kwargs` keys (`_refKey`, `_refScope`, `_unresolvedRefs`) stripped
220
+ * regardless of whether annotation applied. The original input array
221
+ * and its messages are never mutated.
222
+ *
223
+ * Annotation is gated on registry presence: a stale `_refKey` from a
224
+ * prior run (e.g. one that survived in persisted history) silently
225
+ * no-ops on the *content* side. The strip-metadata side still runs so
226
+ * stale framework keys never leak onto the wire under any custom or
227
+ * future provider serializer that might transmit `additional_kwargs`.
228
+ * `_unresolvedRefs` is always meaningful and is not gated.
229
+ *
230
+ * **Feature-disabled fast path:** when the host hasn't enabled the
231
+ * tool-output-reference feature, the registry is `undefined` and this
232
+ * function returns the input array reference-equal *without iterating
233
+ * a single message*. The loop is exclusive to the feature-enabled
234
+ * code path.
235
+ */
236
+ export declare function annotateMessagesForLLM(messages: BaseMessage[], registry: ToolOutputReferenceRegistry | undefined, runId: string | undefined): BaseMessage[];