@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
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Agent system-message prompt-cache types.
3
+ * ==========================================
4
+ *
5
+ * `@illuma-ai/agents` exposes a generic primitive — `system_cache_blocks` —
6
+ * for composing a system message that gets explicit cache markers
7
+ * (cachePoint on Bedrock, cache_control on Anthropic) at consumer-defined
8
+ * boundaries. The library encodes each entry into the right wire format
9
+ * for the active provider; consumers decide what content to put in each
10
+ * block.
11
+ *
12
+ * Why this is generic rather than ranger-specific
13
+ * ------------------------------------------------
14
+ * Earlier iterations exposed `platform_instructions` and `cache_ttl:
15
+ * { platform, agent }` — vocabulary borrowed from a multi-tenant chat
16
+ * platform's mental model. That leaked a specific consumer's domain into
17
+ * the library and made it confusing for other consumers (CLI tools,
18
+ * desktop apps, gateways) which have no notion of "platforms" or "agents".
19
+ *
20
+ * The current shape lets every consumer define their own cache-tier
21
+ * organization without the library knowing or caring.
22
+ *
23
+ * Cache key composition
24
+ * ---------------------
25
+ * Both Anthropic and Bedrock hash the message bytes leading up to each
26
+ * cache marker. So entry N's cache key is the concatenation of bytes
27
+ * 0..N. Stable content (universal rules, framework docs) goes earlier;
28
+ * volatile content (per-agent identity, per-tool docs) goes later. The
29
+ * earlier entries get cross-tenant cache hits; the later entries get
30
+ * narrower hits.
31
+ *
32
+ * Provider budget
33
+ * ---------------
34
+ * Bedrock's Converse API supports up to 4 cachePoint blocks per request.
35
+ * The default tools-array cache strategy (see `IllumaBedrockConverse`)
36
+ * uses up to 2 of those. So at most 2 entries should appear in
37
+ * `system_cache_blocks` to leave budget for the trailing
38
+ * `instructions` block. The library throws on more than 2.
39
+ *
40
+ * Anthropic supports up to 4 cache breakpoints per request workspace-wide;
41
+ * the same constraint applies to keep tools + system within budget.
42
+ */
43
+ /** Provider TTL hint applied to a cachePoint / cache_control marker. */
44
+ export type AgentCacheTTL = '5m' | '1h';
45
+ /**
46
+ * One cacheable system content block. Each entry produces a text block
47
+ * followed by a provider-specific cache marker in the assembled system
48
+ * message. Entries are emitted in array order — earlier = more stable
49
+ * = wider cache key.
50
+ */
51
+ export interface SystemCacheBlock {
52
+ /**
53
+ * Text payload. Caller is responsible for keeping this byte-stable
54
+ * across requests that should share a cache entry. ANY change to
55
+ * these bytes invalidates every cache key that includes this entry.
56
+ */
57
+ text: string;
58
+ /**
59
+ * Optional TTL hint for the cache marker. Defaults to '5m' when
60
+ * omitted. '1h' costs more to write (2× base vs 1.25×) but survives
61
+ * longer idle, which is the right tradeoff for low-traffic blocks.
62
+ */
63
+ ttl?: AgentCacheTTL;
64
+ }
65
+ /**
66
+ * Maximum number of `system_cache_blocks` entries the library accepts.
67
+ * Higher than this would exceed Bedrock's 4-cachePoint budget once the
68
+ * tools array and trailing `instructions` block are counted.
69
+ */
70
+ export declare const MAX_SYSTEM_CACHE_BLOCKS = 2;
@@ -4,12 +4,13 @@ import type { BaseMessage, AIMessageChunk, SystemMessage } from '@langchain/core
4
4
  import type { RunnableConfig, Runnable } from '@langchain/core/runnables';
5
5
  import type { ChatGenerationChunk } from '@langchain/core/outputs';
6
6
  import type { GoogleAIToolType } from '@langchain/google-common';
7
- import type { ToolMap, ToolEndEvent, GenericTool, LCTool, ToolApprovalConfig } from '@/types/tools';
7
+ import type { ToolMap, ToolEndEvent, GenericTool, LCTool, ToolApprovalConfig, ToolExecuteBatchRequest } from '@/types/tools';
8
8
  import type { Providers, Callback, GraphNodeKeys } from '@/common';
9
9
  import type { StandardGraph, MultiAgentGraph } from '@/graphs';
10
10
  import type { ClientOptions } from '@/types/llm';
11
11
  import type { RunStep, RunStepDeltaEvent, MessageDeltaEvent, ReasoningDeltaEvent } from '@/types/stream';
12
12
  import type { TokenCounter } from '@/types/run';
13
+ import type { SystemCacheBlock, AgentCacheTTL } from '@/types/agent-cache';
13
14
  /** Interface for bound model with stream and invoke methods */
14
15
  export interface ChatModel {
15
16
  stream?: (messages: BaseMessage[], config?: RunnableConfig) => Promise<AsyncIterable<AIMessageChunk>>;
@@ -53,7 +54,7 @@ export type MultiAgentGraphState = BaseGraphState & {
53
54
  };
54
55
  export type IState = BaseGraphState;
55
56
  export interface EventHandler {
56
- handle(event: string, data: StreamEventData | ModelEndData | RunStep | RunStepDeltaEvent | MessageDeltaEvent | ReasoningDeltaEvent | {
57
+ handle(event: string, data: StreamEventData | ModelEndData | RunStep | RunStepDeltaEvent | MessageDeltaEvent | ReasoningDeltaEvent | SubagentUpdateEvent | ToolExecuteBatchRequest | {
57
58
  result: ToolEndEvent;
58
59
  }, metadata?: Record<string, unknown>, graph?: StandardGraph | MultiAgentGraph): void | Promise<void>;
59
60
  }
@@ -261,9 +262,12 @@ export type GraphEdge = {
261
262
  /** Can return boolean or specific destination(s) */
262
263
  condition?: (state: BaseGraphState) => boolean | string | string[];
263
264
  /**
264
- * EdgeType.HANDOFF — true agent handoff, parent calls child inline and gets result back.
265
- * EdgeType.TRANSFER one-way transfer, parent exits and child takes over.
266
- * EdgeType.SEQUENCE fixed graph edges for sequential/parallel transitions.
265
+ * EdgeType.HANDOFF — one-way routing: parent emits an `lc_transfer_to_*`
266
+ * tool call and exits, child takes over and responds directly to the
267
+ * user. Aligns with upstream's handoff semantics.
268
+ * EdgeType.DIRECT — fixed graph edges for automatic sequential / parallel
269
+ * transitions. Ranger preserves its enriched wiring (fan-in with prompt,
270
+ * parallel groups, ApprovalGateNode, excludeResults / agentMessages).
267
271
  */
268
272
  edgeType?: import('@/common').EdgeType;
269
273
  /**
@@ -288,19 +292,6 @@ export type GraphEdge = {
288
292
  * For handoff edges: Customizes the parameter name for the handoff instruction input.
289
293
  */
290
294
  promptKey?: string;
291
- /**
292
- * For handoff edges: Maximum characters for the result returned to the parent.
293
- * Uses head/tail truncation (60/40 split) to preserve key findings and conclusions.
294
- * Defaults to DEFAULT_HANDOFF_MAX_RESULT_CHARS (32768 chars, ~8192 tokens).
295
- */
296
- maxResultChars?: number;
297
- /**
298
- * For handoff edges: When true, the child agent receives the full parent
299
- * conversation history plus the orchestrator's instructions appended.
300
- * When false (default), the child only receives the orchestrator's scoped
301
- * instructions — isolated from the parent conversation.
302
- */
303
- passthrough?: boolean;
304
295
  /**
305
296
  * Approval gate configuration for sequence edges.
306
297
  * When set, inserts an approval gate node between source and destination.
@@ -311,12 +302,15 @@ export type GraphEdge = {
311
302
  export type MultiAgentGraphInput = StandardGraphInput & {
312
303
  edges: GraphEdge[];
313
304
  /**
314
- * When set, the graph routes START to this agent instead of the default starting nodes.
315
- * Used for multi-turn resumption: the caller reads `lastActiveAgentId` from the
316
- * previous turn's metadata and passes it here so follow-up messages route to the
305
+ * When set, the graph routes START to this agent instead of the default
306
+ * starting nodes. Used for multi-turn resumption: the caller reads the
307
+ * last active agent id from the previous turn (e.g. via
308
+ * `Run.getLastActiveAgentId()`, which derives it from the run's content
309
+ * data trail) and passes it here so follow-up messages route to the
317
310
  * agent that last handled the conversation.
318
311
  *
319
- * If the agent ID is invalid (not in the graph), falls back to default starting nodes.
312
+ * If the agent ID is invalid (not in the graph), falls back to default
313
+ * starting nodes.
320
314
  */
321
315
  resumeFromAgentId?: string;
322
316
  };
@@ -463,6 +457,22 @@ export interface SummarizationConfig {
463
457
  * while persistedSummary is loaded from the conversation's own history.
464
458
  */
465
459
  initialSummary?: string;
460
+ /**
461
+ * Upstream-aligned optional fields. When the host wants the summarization
462
+ * pass to run on a different LLM than the agent's own (e.g. a cheaper
463
+ * model for compaction), these provider/model overrides flow through to
464
+ * the summarize callback.
465
+ */
466
+ provider?: Providers;
467
+ model?: string;
468
+ parameters?: Record<string, unknown>;
469
+ prompt?: string;
470
+ updatePrompt?: string;
471
+ trigger?: {
472
+ type: string;
473
+ value: number;
474
+ };
475
+ maxSummaryTokens?: number;
466
476
  }
467
477
  /**
468
478
  * Runtime state for EMA-based pruning calibration.
@@ -493,6 +503,61 @@ export interface FileManifestEntry {
493
503
  /** Index of the message that introduced this file (0-based in the original message array) */
494
504
  messageIndex?: number;
495
505
  }
506
+ /** Configuration for a subagent type that can be spawned by a parent agent. */
507
+ export type SubagentConfig = {
508
+ /** Identifier used in the tool's `subagent_type` enum (e.g. 'researcher', 'coder'). */
509
+ type: string;
510
+ /** Human-readable display name. */
511
+ name: string;
512
+ /** What this subagent specializes in — shown to the LLM. */
513
+ description: string;
514
+ /** Full agent config for the child graph. Omit when `self` is true. */
515
+ agentInputs?: AgentInputs;
516
+ /** When true, reuse the parent's AgentInputs (context isolation without separate config). */
517
+ self?: boolean;
518
+ /** Max AGENT→TOOLS cycles before forced stop (default: 25). */
519
+ maxTurns?: number;
520
+ /** Allow this subagent to spawn its own subagents (default: false). */
521
+ allowNested?: boolean;
522
+ };
523
+ /** SubagentConfig with agentInputs guaranteed present (self-spawn resolved). */
524
+ export type ResolvedSubagentConfig = SubagentConfig & {
525
+ agentInputs: AgentInputs;
526
+ };
527
+ /** Lifecycle phase carried on {@link SubagentUpdateEvent}. */
528
+ export type SubagentUpdatePhase = 'start' | 'run_step' | 'run_step_delta' | 'run_step_completed' | 'message_delta' | 'reasoning_delta' | 'stop' | 'error';
529
+ /**
530
+ * Wrapper event emitted when a subagent's child graph dispatches activity.
531
+ * Lets hosts show subagent progress in a UI surface separate from the parent
532
+ * conversation without having to untangle events by agent ID.
533
+ */
534
+ export interface SubagentUpdateEvent {
535
+ /** Parent run ID. */
536
+ runId: string;
537
+ /** Child run ID (unique per subagent execution). */
538
+ subagentRunId: string;
539
+ /**
540
+ * Parent-side `tool_call_id` for the `subagent` tool invocation that
541
+ * triggered this run. Stable for the duration of the child; lets hosts
542
+ * correlate updates deterministically instead of inferring by ordering.
543
+ * Omitted when the executor was invoked outside of a tool-call context.
544
+ */
545
+ parentToolCallId?: string;
546
+ /** Subagent `type` identifier from the SubagentConfig. */
547
+ subagentType: string;
548
+ /** Child agent ID assigned to this subagent execution. */
549
+ subagentAgentId: string;
550
+ /** Parent agent ID that spawned this subagent. */
551
+ parentAgentId?: string;
552
+ /** Lifecycle phase carried by this update. */
553
+ phase: SubagentUpdatePhase;
554
+ /** Underlying event payload (shape depends on phase). */
555
+ data?: unknown;
556
+ /** Short human-readable description. Hosts can render this directly. */
557
+ label?: string;
558
+ /** ISO timestamp for ordering / display. */
559
+ timestamp: string;
560
+ }
496
561
  export interface AgentInputs {
497
562
  agentId: string;
498
563
  /** Human-readable name for the agent (used in handoff context). Defaults to agentId if not provided. */
@@ -503,12 +568,67 @@ export interface AgentInputs {
503
568
  toolMap?: ToolMap;
504
569
  tools?: GraphTools;
505
570
  provider: Providers;
571
+ /**
572
+ * Ordered list of cacheable system content blocks emitted BEFORE
573
+ * `instructions` in the system message. Each block gets its own cache
574
+ * marker (cachePoint on Bedrock, cache_control on Anthropic) so the
575
+ * cache key for each block includes only the bytes up to and including
576
+ * its own marker. Entries are emitted in array order — earlier =
577
+ * stabler = wider cache key (best for cross-tenant sharing).
578
+ *
579
+ * See `src/types/agent-cache.ts` for full semantics. Capped at
580
+ * `MAX_SYSTEM_CACHE_BLOCKS` (2) entries to stay within Bedrock's
581
+ * 4-cachePoint budget after the tools array consumes 2.
582
+ */
583
+ system_cache_blocks?: SystemCacheBlock[];
584
+ /**
585
+ * Stable/cacheable system instructions for this agent. Always emitted
586
+ * with its own trailing cache marker (when caching is supported by
587
+ * the provider/model). Use `instructions_cache_ttl` to override the
588
+ * default '5m' TTL.
589
+ */
506
590
  instructions?: string;
591
+ /** TTL for the trailing `instructions` cache marker. Defaults to '5m'. */
592
+ instructions_cache_ttl?: AgentCacheTTL;
507
593
  streamBuffer?: number;
508
594
  maxContextTokens?: number;
509
595
  clientOptions?: ClientOptions;
596
+ /**
597
+ * Dynamic system tail appended after the cacheable instructions
598
+ * without any cache marker. Per-user / per-message context belongs
599
+ * here so it does not invalidate the cacheable prefix.
600
+ */
510
601
  additional_instructions?: string;
511
602
  reasoningKey?: 'reasoning_content' | 'reasoning';
603
+ /**
604
+ * Subagent types this agent may spawn. When non-empty, Graph injects the
605
+ * `subagent` tool into the agent's toolset with the per-config enum and
606
+ * description populated.
607
+ */
608
+ subagentConfigs?: SubagentConfig[];
609
+ /**
610
+ * Maximum subagent depth allowed below this agent. Used by SubagentExecutor
611
+ * to abort runaway nesting. Defaults to a small constant.
612
+ */
613
+ maxSubagentDepth?: number;
614
+ /**
615
+ * Pre-existing summary injected into the system message via
616
+ * AgentContext.buildInstructionsString. Populated by SubagentExecutor when
617
+ * spawning a self-config subagent that should inherit the parent's prior
618
+ * compaction summary; otherwise host-supplied at run time.
619
+ */
620
+ initialSummary?: {
621
+ text: string;
622
+ tokenCount: number;
623
+ };
624
+ /**
625
+ * Upstream-aligned opt-in for summarization. When false, the agent never
626
+ * invokes the summarize callback regardless of context utilization.
627
+ * Defaults to undefined (treated as enabled in Ranger to preserve prior
628
+ * behaviour); hosts that want strict opt-in semantics should set it
629
+ * explicitly.
630
+ */
631
+ summarizationEnabled?: boolean;
512
632
  /** Format content blocks as strings (for legacy compatibility i.e. Ollama/Azure Serverless) */
513
633
  useLegacyContent?: boolean;
514
634
  /**
@@ -585,3 +705,23 @@ export interface AgentInputs {
585
705
  */
586
706
  fileManifest?: FileManifestEntry[];
587
707
  }
708
+ /**
709
+ * Tunable knobs for position-based content degradation.
710
+ * See `messages/contextPruning.ts` and `messages/contextPruningSettings.ts`.
711
+ */
712
+ export interface ContextPruningConfig {
713
+ enabled?: boolean;
714
+ keepLastAssistants?: number;
715
+ softTrimRatio?: number;
716
+ hardClearRatio?: number;
717
+ minPrunableToolChars?: number;
718
+ softTrim?: {
719
+ maxChars?: number;
720
+ headChars?: number;
721
+ tailChars?: number;
722
+ };
723
+ hardClear?: {
724
+ enabled?: boolean;
725
+ placeholder?: string;
726
+ };
727
+ }
@@ -1,5 +1,8 @@
1
+ export * from './agent-cache';
1
2
  export * from './graph';
2
3
  export * from './llm';
4
+ export * from './messages';
3
5
  export * from './run';
4
6
  export * from './stream';
5
7
  export * from './tools';
8
+ export * from './skill';
@@ -2,3 +2,29 @@ import type Anthropic from '@anthropic-ai/sdk';
2
2
  import type { BaseMessage } from '@langchain/core/messages';
3
3
  export type AnthropicMessages = Array<AnthropicMessage | BaseMessage>;
4
4
  export type AnthropicMessage = Anthropic.MessageParam;
5
+ /**
6
+ * Per-message ref metadata stamped onto a `ToolMessage` at execution time
7
+ * (upstream PR #117). Read by `annotateMessagesForLLM` to apply transient
8
+ * annotation to a copy of the message right before it goes on the wire to
9
+ * the provider. Never read after the run-scoped registry has been cleared.
10
+ *
11
+ * Lives in `ToolMessage.additional_kwargs`. LangChain's provider
12
+ * serializers don't transmit `additional_kwargs` to provider APIs, so the
13
+ * metadata never leaks even if you forget to clean it.
14
+ */
15
+ export interface ToolMessageRefMetadata {
16
+ /** Key under which this message's untruncated output was registered. */
17
+ _refKey?: string;
18
+ /**
19
+ * Registry bucket scope under which `_refKey` was stored. For named runs
20
+ * this equals `config.configurable.run_id`; for anonymous invocations
21
+ * (no `run_id`) ToolNode mints a per-batch synthetic scope
22
+ * (`\0anon-<n>`) so concurrent batches don't collide. Stamping the
23
+ * scope on the message itself lets `annotateMessagesForLLM` recover it
24
+ * without re-deriving from config — which is impossible for the
25
+ * anonymous case, since the scope is internal to ToolNode.
26
+ */
27
+ _refScope?: string;
28
+ /** Placeholders the model used that could not be resolved this batch. */
29
+ _unresolvedRefs?: string[];
30
+ }
@@ -7,6 +7,7 @@ import type * as s from '@/types/stream';
7
7
  import type * as e from '@/common/enum';
8
8
  import type * as g from '@/types/graph';
9
9
  import type * as l from '@/types/llm';
10
+ import type { HookRegistry } from '@/hooks';
10
11
  export type ZodObjectAny = z.ZodObject<any, any, any, any>;
11
12
  export type BaseGraphConfig = {
12
13
  llmConfig: l.LLMConfig;
@@ -61,7 +62,9 @@ export interface AgentStateChannels {
61
62
  messages: BaseMessage[];
62
63
  next: string;
63
64
  [key: string]: unknown;
65
+ /** Stable/cacheable system instructions for this agent. */
64
66
  instructions?: string;
67
+ /** Dynamic system tail appended after stable instructions. */
65
68
  additional_instructions?: string;
66
69
  }
67
70
  export interface Member {
@@ -106,6 +109,25 @@ export type RunConfig = {
106
109
  runId: string;
107
110
  graphConfig: LegacyGraphConfig | StandardGraphConfig | MultiAgentGraphConfig;
108
111
  customHandlers?: Record<string, g.EventHandler>;
112
+ /**
113
+ * Optional {@link HookRegistry} that wires host-defined hook callbacks
114
+ * (PreToolUse / PostToolUse / PreCompact / etc.) into this run.
115
+ *
116
+ * Hooks fire synchronously inside ToolNode and processStream; returning
117
+ * `deny` from a PreToolUse hook short-circuits the tool call. Lifetime
118
+ * is per-run — the host should construct a fresh registry (or reuse a
119
+ * shared one) and dispose of it together with the conversation block
120
+ * to prevent leaks.
121
+ */
122
+ hooks?: HookRegistry;
123
+ /**
124
+ * Tool output reference configuration (upstream PRs #114 / #117).
125
+ * When `enabled` is true, the Run constructs a single
126
+ * ToolOutputReferenceRegistry and threads it to every ToolNode built by
127
+ * the graph so `{{tool<i>turn<n>}}` placeholders resolve across agents.
128
+ * Defaults to disabled (registry not constructed).
129
+ */
130
+ toolOutputReferences?: import('@/types/tools').ToolOutputReferencesConfig;
109
131
  returnContent?: boolean;
110
132
  tokenCounter?: TokenCounter;
111
133
  indexTokenCountMap?: Record<string, number>;
@@ -0,0 +1,9 @@
1
+ /** Minimal skill metadata for catalog assembly. The host provides these from its own data layer. */
2
+ export type SkillCatalogEntry = {
3
+ /** Kebab-case identifier (what the model passes to SkillTool) */
4
+ name: string;
5
+ /** One-line description for the catalog listing */
6
+ description: string;
7
+ /** Optional human-readable label (UI only, not shown to model) */
8
+ displayTitle?: string;
9
+ };
@@ -1,6 +1,7 @@
1
1
  import type { StructuredToolInterface } from '@langchain/core/tools';
2
2
  import type { RunnableToolLike } from '@langchain/core/runnables';
3
3
  import type { ToolCall } from '@langchain/core/messages/tool';
4
+ import type { MessageContentComplex } from '@langchain/core/messages';
4
5
  import type { ToolErrorData } from './stream';
5
6
  import { EnvVar, ExecutionContext } from '@/common';
6
7
  /** Replacement type for `import type { ToolCall } from '@langchain/core/messages/tool'` in order to have stringified args typed */
@@ -50,6 +51,35 @@ export type ToolNodeOptions = {
50
51
  * When provided, tools matching the policy will call interrupt() before execution.
51
52
  */
52
53
  toolApprovalConfig?: ToolApprovalConfig;
54
+ /**
55
+ * Optional hook registry threaded down from Run. When set, ToolNode
56
+ * fires PreToolUse / PostToolUse / PostToolUseFailure / PermissionDenied
57
+ * lifecycle events through executeHooks during event-driven dispatch.
58
+ */
59
+ hookRegistry?: import('@/hooks').HookRegistry;
60
+ /**
61
+ * Maximum characters for a single tool result (head+tail truncation).
62
+ * When omitted, derived from the agent's `maxContextTokens` (30%
63
+ * heuristic), capped at HARD_MAX_TOOL_RESULT_CHARS. Upstream-aligned —
64
+ * Ranger's truncation today is driven by other knobs, but accepting
65
+ * this option keeps the test surface portable.
66
+ */
67
+ maxToolResultChars?: number;
68
+ /**
69
+ * Run-scoped tool output reference configuration (upstream PR #114).
70
+ * When `enabled` is true, ToolNode registers successful outputs and
71
+ * substitutes `{{tool<i>turn<n>}}` placeholders found in string args.
72
+ * Ignored when `toolOutputRegistry` is also provided (the host-supplied
73
+ * registry wins).
74
+ */
75
+ toolOutputReferences?: ToolOutputReferencesConfig;
76
+ /**
77
+ * Pre-constructed registry instance shared across ToolNodes for the run.
78
+ * Graphs pass the same registry to every ToolNode they compile so
79
+ * cross-agent `{{tool<i>turn<n>}}` substitutions resolve. Takes
80
+ * precedence over `toolOutputReferences` when both are set.
81
+ */
82
+ toolOutputRegistry?: import('@/tools/toolOutputReferences').ToolOutputReferenceRegistry;
53
83
  };
54
84
  export type ToolNodeConstructorParams = ToolRefs & ToolNodeOptions;
55
85
  export type ToolEndEvent = {
@@ -73,12 +103,35 @@ export type CodeExecutionToolParams = undefined | {
73
103
  files?: CodeEnvFile[];
74
104
  [EnvVar.CODE_API_KEY]?: string;
75
105
  };
106
+ /**
107
+ * Bash execution tool params. Same shape as CodeExecutionToolParams —
108
+ * BashExecutor reuses the /exec endpoint with `lang: 'bash'`.
109
+ */
110
+ export type BashExecutionToolParams = CodeExecutionToolParams;
111
+ /**
112
+ * Read-file tool params. Resolution of the `file_path` to actual bytes is
113
+ * delegated to a host-supplied resolver in `RunConfig` (skill files, code
114
+ * exec session files, etc.).
115
+ */
116
+ export type ReadFileToolParams = undefined | {
117
+ apiKey?: string;
118
+ [EnvVar.CODE_API_KEY]?: string;
119
+ };
76
120
  export type FileRef = {
77
121
  id: string;
78
122
  name: string;
79
123
  path?: string;
80
124
  /** Session ID this file belongs to (for multi-session file tracking) */
81
125
  session_id?: string;
126
+ /**
127
+ * `true` when the codeapi sandbox echoed this entry as an unchanged
128
+ * passthrough of an input the caller already owns (skill files,
129
+ * downloaded inputs whose hash matched the baseline, inherited
130
+ * `.dirkeep` markers). The tool-result formatter renders these as
131
+ * "Available files" rather than "Generated files" so the LLM doesn't
132
+ * conflate infrastructure inputs with newly-produced outputs.
133
+ */
134
+ inherited?: true;
82
135
  };
83
136
  export type FileRefs = FileRef[];
84
137
  export type ExecuteResult = {
@@ -158,6 +211,26 @@ export type ToolExecuteBatchRequest = {
158
211
  /** Promise rejector - handler calls this on fatal error */
159
212
  reject: (error: Error) => void;
160
213
  };
214
+ /**
215
+ * Generic message-injection envelope used by SkillTool, hooks, and any other
216
+ * tool execution handler that needs to push extra context into graph state
217
+ * after the ToolMessage. The host's message formatter is responsible for
218
+ * placement and any per-provider merging rules.
219
+ */
220
+ export type InjectedMessage = {
221
+ /** 'user' for skill body injection, 'system' for context hints.
222
+ * Both are converted to HumanMessage at runtime; the original role
223
+ * is preserved in additional_kwargs.role. */
224
+ role: 'user' | 'system';
225
+ /** Message content: string for simple text, array for complex multi-part content */
226
+ content: string | MessageContentComplex[];
227
+ /** When true, the message is framework-internal: not shown in UI, not counted as a user turn */
228
+ isMeta?: boolean;
229
+ /** Origin tag for downstream consumers (UI, pruner, compaction) */
230
+ source?: 'skill' | 'hook' | 'system';
231
+ /** Only set when source is 'skill', for compaction preservation */
232
+ skillName?: string;
233
+ };
161
234
  /** Result for a single tool call in event-driven execution */
162
235
  export type ToolExecuteResult = {
163
236
  /** Matches ToolCallRequest.id */
@@ -170,9 +243,41 @@ export type ToolExecuteResult = {
170
243
  status: 'success' | 'error';
171
244
  /** Error message if status is 'error' */
172
245
  errorMessage?: string;
246
+ /**
247
+ * Messages to inject into graph state after the ToolMessage for this call.
248
+ * Placed after tool results to respect provider message ordering
249
+ * (tool_call -> tool_result adjacency). The host's message formatter may
250
+ * merge injected user messages with the preceding tool_result turn.
251
+ * Generic mechanism: any tool execution handler can use this.
252
+ */
253
+ injectedMessages?: InjectedMessage[];
173
254
  };
174
255
  /** Map of tool names to tool definitions */
175
256
  export type LCToolRegistry = Map<string, LCTool>;
257
+ /**
258
+ * Configuration for the tool output reference feature (upstream PR #114).
259
+ *
260
+ * When `enabled: true`, ToolNode stores each successful tool output under
261
+ * a stable key `tool<idx>turn<turn>` and the LLM can pipe a previous output
262
+ * into a subsequent tool's args via the literal placeholder
263
+ * `{{tool<idx>turn<turn>}}`. Substitution happens immediately before tool
264
+ * invocation; the LLM-visible ToolMessage.content is annotated with a
265
+ * `_ref` JSON field or a `[ref: tool<idx>turn<turn>]` prefix so the model
266
+ * knows which key the output is stored under.
267
+ *
268
+ * Disabled by default. Hosts that want to opt in pass
269
+ * `toolOutputReferences: { enabled: true }` on RunConfig and (optionally)
270
+ * append the bash tool's tool-output-references guide to the bash tool
271
+ * description so the LLM learns the substitution syntax.
272
+ */
273
+ export type ToolOutputReferencesConfig = {
274
+ /** Enable the registry and placeholder substitution. Defaults to `false`. */
275
+ enabled?: boolean;
276
+ /** Maximum characters stored (and substituted) per registered output. */
277
+ maxOutputSize?: number;
278
+ /** Hard cap on total characters retained across all registered outputs for the run. */
279
+ maxTotalSize?: number;
280
+ };
176
281
  export type ProgrammaticCache = {
177
282
  toolMap: ToolMap;
178
283
  toolDefs: LCTool[];
@@ -389,6 +494,12 @@ export type ProgrammaticToolCallingParams = {
389
494
  /** Environment variable key for API key */
390
495
  [key: string]: unknown;
391
496
  };
497
+ /**
498
+ * Initialization parameters for the BashPTC tool. Same shape as
499
+ * {@link ProgrammaticToolCallingParams}; the bash variant just runs
500
+ * generated code through `lang: 'bash'` instead of `lang: 'python'`.
501
+ */
502
+ export type BashProgrammaticToolCallingParams = ProgrammaticToolCallingParams;
392
503
  /**
393
504
  * Tracks code execution session state for automatic file persistence.
394
505
  * Stored in Graph.sessions and injected into subsequent tool invocations.
@@ -13,6 +13,4 @@ export * from './toolDiscoveryCache';
13
13
  export * from './pruneCalibration';
14
14
  export * from './fileManifest';
15
15
  export * from './errors';
16
- export * from './httpClient';
17
- export * from './credentials';
18
- export * from './toolManifest';
16
+ export * from './truncation';
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Ingestion-time and pre-flight truncation utilities for tool results.
3
+ *
4
+ * Prevents oversized tool outputs from entering the message array and
5
+ * consuming the entire context window.
6
+ */
7
+ /**
8
+ * Absolute hard cap on tool result length (characters).
9
+ * Even if the model has a 1M-token context, a single tool result
10
+ * larger than this is almost certainly a bug (e.g., dumping a binary file).
11
+ */
12
+ export declare const HARD_MAX_TOOL_RESULT_CHARS = 400000;
13
+ /**
14
+ * Absolute hard cap on the aggregate size (characters) of all registered
15
+ * tool outputs kept for `{{tool<i>turn<n>}}` substitution. Set at 5 MB
16
+ * because the registry stores *raw, untruncated* tool output — full
17
+ * fidelity for piping into downstream bash/jq — so the budget needs
18
+ * enough headroom to keep a handful of large responses without
19
+ * ballooning unbounded.
20
+ */
21
+ export declare const HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE = 5000000;
22
+ /**
23
+ * Computes the dynamic max tool result size based on the model's context window.
24
+ * Uses 30% of the context window (in estimated characters, ~4 chars/token)
25
+ * capped at HARD_MAX_TOOL_RESULT_CHARS.
26
+ *
27
+ * @param contextWindowTokens - The model's max context tokens (optional).
28
+ * @returns Maximum allowed characters for a single tool result.
29
+ */
30
+ export declare function calculateMaxToolResultChars(contextWindowTokens?: number): number;
31
+ /**
32
+ * Computes the default aggregate size (characters) for the tool output
33
+ * reference registry based on the per-output budget. Mirrors
34
+ * `calculateMaxToolResultChars`'s shape: a multiple of the per-output
35
+ * cap, clamped to `HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE`.
36
+ *
37
+ * @param maxOutputSize - Per-output maximum characters (e.g., the
38
+ * ToolNode's `maxToolResultChars`). When omitted or non-positive,
39
+ * falls back to the absolute total cap.
40
+ * @returns Maximum total characters retained across the registry.
41
+ */
42
+ export declare function calculateMaxTotalToolOutputSize(maxOutputSize?: number): number;
43
+ /**
44
+ * Truncates a tool-call input (the arguments/payload of a tool_use block)
45
+ * using head+tail strategy. Returns an object with `_truncated` (the
46
+ * truncated string) and `_originalChars` (for diagnostics).
47
+ *
48
+ * Accepts any type — objects are JSON-serialized before truncation.
49
+ *
50
+ * @param input - The tool input (string, object, etc.).
51
+ * @param maxChars - Maximum allowed characters.
52
+ */
53
+ export declare function truncateToolInput(input: unknown, maxChars: number): {
54
+ _truncated: string;
55
+ _originalChars: number;
56
+ };
57
+ /**
58
+ * Truncates tool result content that exceeds `maxChars` using a head+tail
59
+ * strategy. Keeps the beginning (structure/headers) and end (return value /
60
+ * conclusion) of the content so the model retains both the opening context
61
+ * and the final outcome.
62
+ *
63
+ * Head gets ~70% of the budget, tail gets ~30%. Falls back to head-only
64
+ * when the budget is too small for a meaningful tail.
65
+ *
66
+ * @param content - The tool result string content.
67
+ * @param maxChars - Maximum allowed characters.
68
+ * @returns The (possibly truncated) content string.
69
+ */
70
+ export declare function truncateToolResultContent(content: string, maxChars: number): string;