@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
@@ -194,6 +194,134 @@ describe('Bedrock Prompt Caching', () => {
194
194
  expect(model.promptCache).toBe(false);
195
195
  });
196
196
  });
197
+
198
+ describe('Tool cache strategies', () => {
199
+ const fakeTools = [
200
+ {
201
+ toolSpec: {
202
+ name: 'web_search',
203
+ description: 'core search',
204
+ inputSchema: { json: { type: 'object', properties: {} } },
205
+ },
206
+ },
207
+ {
208
+ toolSpec: {
209
+ name: 'execute_code',
210
+ description: 'core code',
211
+ inputSchema: { json: { type: 'object', properties: {} } },
212
+ },
213
+ },
214
+ {
215
+ toolSpec: {
216
+ name: 'search_emails_mcp_Outlook',
217
+ description: 'mcp tool',
218
+ inputSchema: { json: { type: 'object', properties: {} } },
219
+ },
220
+ },
221
+ {
222
+ toolSpec: {
223
+ name: 'list_documents_mcp_SharePoint',
224
+ description: 'mcp tool',
225
+ inputSchema: { json: { type: 'object', properties: {} } },
226
+ },
227
+ },
228
+ ];
229
+
230
+ it("default 'single' strategy: one cachePoint at end of tools array", () => {
231
+ const model = new CustomChatBedrockConverse({
232
+ model: 'anthropic.claude-3-haiku-20240307-v1:0',
233
+ region: 'us-east-1',
234
+ promptCache: true,
235
+ // toolCacheStrategy omitted — default is 'single'
236
+ });
237
+ const params = model.invocationParams({
238
+ tools: fakeTools,
239
+ } satisfies InvocationParamsOptions);
240
+ // 4 tools + 1 cachePoint
241
+ expect(params.toolConfig?.tools).toHaveLength(5);
242
+ expect(params.toolConfig?.tools?.[4]).toEqual({
243
+ cachePoint: { type: 'default' },
244
+ });
245
+ });
246
+
247
+ it("'split' strategy with toolGroupSelector groups tools by selector key, cachePoint after each group", () => {
248
+ const model = new CustomChatBedrockConverse({
249
+ model: 'anthropic.claude-3-haiku-20240307-v1:0',
250
+ region: 'us-east-1',
251
+ promptCache: true,
252
+ toolCacheStrategy: 'split',
253
+ toolGroupSelector: (toolName) =>
254
+ toolName.includes('_mcp_') ? 'mcp' : 'core',
255
+ });
256
+ const params = model.invocationParams({
257
+ tools: fakeTools,
258
+ } satisfies InvocationParamsOptions);
259
+ // [core, core, cp, mcp, mcp, cp] = 6 entries
260
+ expect(params.toolConfig?.tools).toHaveLength(6);
261
+ expect(params.toolConfig?.tools?.[0]).toEqual(fakeTools[0]); // core
262
+ expect(params.toolConfig?.tools?.[1]).toEqual(fakeTools[1]); // core
263
+ expect(params.toolConfig?.tools?.[2]).toEqual({
264
+ cachePoint: { type: 'default' },
265
+ });
266
+ expect(params.toolConfig?.tools?.[3]).toEqual(fakeTools[2]); // mcp
267
+ expect(params.toolConfig?.tools?.[4]).toEqual(fakeTools[3]); // mcp
268
+ expect(params.toolConfig?.tools?.[5]).toEqual({
269
+ cachePoint: { type: 'default' },
270
+ });
271
+ });
272
+
273
+ it("'none' strategy: no cachePoint added at all", () => {
274
+ const model = new CustomChatBedrockConverse({
275
+ model: 'anthropic.claude-3-haiku-20240307-v1:0',
276
+ region: 'us-east-1',
277
+ promptCache: true,
278
+ toolCacheStrategy: 'none',
279
+ });
280
+ const params = model.invocationParams({
281
+ tools: fakeTools,
282
+ } satisfies InvocationParamsOptions);
283
+ expect(params.toolConfig?.tools).toHaveLength(4);
284
+ for (const tool of params.toolConfig?.tools ?? []) {
285
+ expect('cachePoint' in tool).toBe(false);
286
+ }
287
+ });
288
+
289
+ it("'split' with single-group selector behaves like 'single'", () => {
290
+ const model = new CustomChatBedrockConverse({
291
+ model: 'anthropic.claude-3-haiku-20240307-v1:0',
292
+ region: 'us-east-1',
293
+ promptCache: true,
294
+ toolCacheStrategy: 'split',
295
+ toolGroupSelector: () => 'all', // every tool same group
296
+ });
297
+ const params = model.invocationParams({
298
+ tools: fakeTools,
299
+ } satisfies InvocationParamsOptions);
300
+ // 4 tools + 1 cachePoint
301
+ expect(params.toolConfig?.tools).toHaveLength(5);
302
+ expect(params.toolConfig?.tools?.[4]).toEqual({
303
+ cachePoint: { type: 'default' },
304
+ });
305
+ });
306
+
307
+ it("'split' with empty groups skipped (only emits cachePoint after non-empty groups)", () => {
308
+ const model = new CustomChatBedrockConverse({
309
+ model: 'anthropic.claude-3-haiku-20240307-v1:0',
310
+ region: 'us-east-1',
311
+ promptCache: true,
312
+ toolCacheStrategy: 'split',
313
+ toolGroupSelector: (name) =>
314
+ name.includes('_mcp_') ? 'mcp' : 'core',
315
+ });
316
+ // Only core tools — no MCP
317
+ const coreOnly = fakeTools.slice(0, 2);
318
+ const params = model.invocationParams({
319
+ tools: coreOnly,
320
+ } satisfies InvocationParamsOptions);
321
+ // 2 core + 1 cachePoint = 3
322
+ expect(params.toolConfig?.tools).toHaveLength(3);
323
+ });
324
+ });
197
325
  });
198
326
 
199
327
  describe('AgentContext - System Message Caching', () => {
@@ -233,7 +361,13 @@ describe('Bedrock Prompt Caching', () => {
233
361
  };
234
362
 
235
363
  describe('Bedrock system message with promptCache: true', () => {
236
- it('should produce plain string system message (cachePoint is handled at tool level)', async () => {
364
+ /* Updated contract (2026-05-01, upstream PR #128 alignment): Bedrock
365
+ * system message gets a `cachePoint` block inline so the system
366
+ * prefix is cached at the AWS account level (cross-user). Previously
367
+ * cachePoint was only added at the tool level, leaving the system
368
+ * prefix uncached. Tools array still gets its own cachePoints from
369
+ * IllumaBedrockConverse.invocationParams independently. */
370
+ it('emits content array with cachePoint after stable text (Claude model)', async () => {
237
371
  const ctx = createBedrockContext({
238
372
  instructions: 'You are a helpful assistant.',
239
373
  promptCache: true,
@@ -242,17 +376,20 @@ describe('Bedrock Prompt Caching', () => {
242
376
  const systemRunnable = ctx.systemRunnable;
243
377
  expect(systemRunnable).toBeDefined();
244
378
 
245
- // Invoke the runnable to get the messages
246
379
  const result = await systemRunnable!.invoke([]);
247
380
  const systemMessage = result[0];
248
381
 
249
- // Bedrock system messages are plain strings — cachePoint is added
250
- // at the tool level by IllumaBedrockConverse.invocationParams()
251
- expect(typeof systemMessage.content).toBe('string');
252
- expect(systemMessage.content).toBe('You are a helpful assistant.');
382
+ const content = systemMessage.content as Array<Record<string, unknown>>;
383
+ expect(Array.isArray(content)).toBe(true);
384
+ expect(content).toHaveLength(2);
385
+ expect(content[0]).toEqual({
386
+ type: 'text',
387
+ text: 'You are a helpful assistant.',
388
+ });
389
+ expect(content[1]).toEqual({ cachePoint: { type: 'default', ttl: '5m' } });
253
390
  });
254
391
 
255
- it('should include combined instructions and additional_instructions as plain string', async () => {
392
+ it('keeps additional_instructions AFTER cachePoint (dynamic tail not cached)', async () => {
256
393
  const ctx = createBedrockContext({
257
394
  instructions: 'Base instructions.',
258
395
  additionalInstructions: 'Additional context.',
@@ -261,11 +398,20 @@ describe('Bedrock Prompt Caching', () => {
261
398
 
262
399
  const result = await ctx.systemRunnable!.invoke([]);
263
400
  const systemMessage = result[0];
401
+ const content = systemMessage.content as Array<Record<string, unknown>>;
264
402
 
265
- // Bedrock system messages are plain strings even with promptCache
266
- expect(typeof systemMessage.content).toBe('string');
267
- expect(systemMessage.content).toContain('Base instructions.');
268
- expect(systemMessage.content).toContain('Additional context.');
403
+ /* Order is critical: stable text cachePoint dynamic text.
404
+ * Anything after the cachePoint is excluded from the cache, so
405
+ * the per-user/per-request `additional_instructions` does not
406
+ * invalidate the cached prefix. */
407
+ expect(content).toHaveLength(3);
408
+ expect((content[0] as { text: string }).text).toBe(
409
+ 'Base instructions.'
410
+ );
411
+ expect(content[1]).toEqual({ cachePoint: { type: 'default', ttl: '5m' } });
412
+ expect((content[2] as { text: string }).text).toBe(
413
+ 'Additional context.'
414
+ );
269
415
  });
270
416
  });
271
417
 
@@ -312,7 +458,7 @@ describe('Bedrock Prompt Caching', () => {
312
458
  expect(content[0]).toEqual({
313
459
  type: 'text',
314
460
  text: 'You are a helpful assistant.',
315
- cache_control: { type: 'ephemeral' },
461
+ cache_control: { type: 'ephemeral', ttl: '5m' },
316
462
  });
317
463
  });
318
464
 
@@ -330,19 +476,21 @@ describe('Bedrock Prompt Caching', () => {
330
476
  });
331
477
 
332
478
  describe('Provider-specific caching behavior', () => {
333
- it('should produce plain string for Bedrock (cachePoint handled at tool level)', async () => {
479
+ it('emits cachePoint block inline for Bedrock Claude (account-scoped system caching)', async () => {
334
480
  const bedrockCtx = createBedrockContext({
335
481
  instructions: 'Test',
336
482
  promptCache: true,
337
483
  });
338
484
 
339
485
  const result = await bedrockCtx.systemRunnable!.invoke([]);
486
+ const content = result[0].content as Array<Record<string, unknown>>;
340
487
 
341
- // Bedrock system messages are plain strings cachePoint is added
342
- // at the tool level by IllumaBedrockConverse.invocationParams(),
343
- // not inline in the system message content
344
- expect(typeof result[0].content).toBe('string');
345
- expect(result[0].content).toBe('Test');
488
+ // Bedrock system messages now carry an inline cachePoint so the
489
+ // system prefix gets cached at the AWS account level (matching
490
+ // upstream PR #128). Tool-level cachePoint from
491
+ // IllumaBedrockConverse.invocationParams() runs independently.
492
+ expect(Array.isArray(content)).toBe(true);
493
+ expect(content.some((c) => 'cachePoint' in c)).toBe(true);
346
494
  });
347
495
 
348
496
  it('should use cache_control format for Anthropic, not cachePoint', async () => {
@@ -0,0 +1,99 @@
1
+ import {
2
+ DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS,
3
+ isBedrockCacheSupported,
4
+ } from './cacheSupport';
5
+
6
+ describe('isBedrockCacheSupported', () => {
7
+ describe('default allowlist — supported models', () => {
8
+ const supported = [
9
+ // Anthropic Claude direct
10
+ 'anthropic.claude-3-5-sonnet-20241022-v2:0',
11
+ 'anthropic.claude-3-haiku-20240307-v1:0',
12
+ 'anthropic.claude-opus-4-5-20250514-v1:0',
13
+ 'anthropic.claude-sonnet-4-5-20250929-v1:0',
14
+ // Anthropic Claude via cross-region inference profile
15
+ 'us.anthropic.claude-sonnet-4-5-20250929-v1:0',
16
+ 'us.anthropic.claude-haiku-4-5-20251001-v1:0',
17
+ 'eu.anthropic.claude-3-5-sonnet-20241022-v2:0',
18
+ // Amazon Nova
19
+ 'amazon.nova-pro-v1:0',
20
+ 'amazon.nova-lite-v1:0',
21
+ 'amazon.nova-canvas-v1:0',
22
+ 'us.amazon.nova-pro-v1:0',
23
+ ];
24
+
25
+ for (const model of supported) {
26
+ it(`accepts "${model}"`, () => {
27
+ expect(isBedrockCacheSupported(model)).toBe(true);
28
+ });
29
+ }
30
+ });
31
+
32
+ describe('default allowlist — unsupported models', () => {
33
+ const unsupported = [
34
+ 'amazon.titan-text-premier-v1:0',
35
+ 'amazon.titan-embed-text-v2:0',
36
+ 'meta.llama3-1-405b-instruct-v1:0',
37
+ 'meta.llama3-2-90b-instruct-v1:0',
38
+ 'cohere.command-r-plus-v1:0',
39
+ 'mistral.mistral-large-2402-v1:0',
40
+ 'ai21.j2-ultra-v1',
41
+ 'stability.sd3-5-large-v1:0',
42
+ // Adversarial — substring match would falsely accept these
43
+ 'meta.llama-claude-killer-v1', // contains "claude" but isn't an Anthropic model
44
+ 'fake.anthropic-impersonator', // contains "anthropic" but wrong vendor
45
+ ];
46
+
47
+ for (const model of unsupported) {
48
+ it(`rejects "${model}"`, () => {
49
+ expect(isBedrockCacheSupported(model)).toBe(false);
50
+ });
51
+ }
52
+ });
53
+
54
+ describe('edge cases', () => {
55
+ it('returns false for undefined', () => {
56
+ expect(isBedrockCacheSupported(undefined)).toBe(false);
57
+ });
58
+
59
+ it('returns false for empty string', () => {
60
+ expect(isBedrockCacheSupported('')).toBe(false);
61
+ });
62
+ });
63
+
64
+ describe('consumer extension via additionalPatterns', () => {
65
+ it('accepts model matching consumer-supplied pattern', () => {
66
+ expect(
67
+ isBedrockCacheSupported('mycorp.future-model-v1:0', [
68
+ /^mycorp\.future-/i,
69
+ ]),
70
+ ).toBe(true);
71
+ });
72
+
73
+ it('still rejects models not in default OR consumer allowlist', () => {
74
+ expect(
75
+ isBedrockCacheSupported('cohere.command-r-plus-v1:0', [
76
+ /^mycorp\./i,
77
+ ]),
78
+ ).toBe(false);
79
+ });
80
+
81
+ it('default allowlist still works alongside extensions', () => {
82
+ // Both default + custom pattern work
83
+ expect(
84
+ isBedrockCacheSupported('anthropic.claude-3-haiku-20240307-v1:0', [
85
+ /^mycorp\./i,
86
+ ]),
87
+ ).toBe(true);
88
+ });
89
+ });
90
+
91
+ describe('DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS export', () => {
92
+ it('is a non-empty readonly array of RegExp', () => {
93
+ expect(DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS.length).toBeGreaterThan(0);
94
+ for (const pattern of DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS) {
95
+ expect(pattern).toBeInstanceOf(RegExp);
96
+ }
97
+ });
98
+ });
99
+ });
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Bedrock prompt-cache model support detection.
3
+ * ===============================================
4
+ *
5
+ * Bedrock prompt caching (via `cachePoint` blocks) is only supported on
6
+ * specific model families. Other families silently reject or ignore the
7
+ * markers. We maintain an allowlist instead of a substring heuristic so
8
+ * a future model with an unfortunate name (e.g. `llama-claude-killer`)
9
+ * doesn't accidentally match.
10
+ *
11
+ * Consumers can extend the allowlist with `bedrockCacheModelPatterns` in
12
+ * `clientOptions` for proprietary or pre-release model IDs not yet in
13
+ * the upstream library.
14
+ */
15
+
16
+ /**
17
+ * Default allowlist of Bedrock model ID patterns that support cachePoint.
18
+ * Sourced from AWS Bedrock documentation (verified against us-east-1
19
+ * 2026-05).
20
+ *
21
+ * Adding a new model: append a RegExp here AND add a regression test in
22
+ * `cacheSupport.test.ts` covering at least one full model ID for that
23
+ * family. Removing a model: do not remove without operator confirmation
24
+ * — silent removal would suddenly stop emitting cachePoint markers and
25
+ * regress cost savings.
26
+ */
27
+ export const DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS: readonly RegExp[] = [
28
+ // Anthropic Claude family (anthropic.claude-* and us.anthropic.claude-*)
29
+ /(?:^|[/.])anthropic\.claude-/i,
30
+ /(?:^|\.)us\.anthropic\.claude-/i,
31
+ // Amazon Nova family (nova-pro, nova-lite, nova-canvas, etc.)
32
+ /(?:^|[/.])amazon\.nova-/i,
33
+ /(?:^|\.)us\.amazon\.nova-/i,
34
+ ];
35
+
36
+ /**
37
+ * Returns true when the given Bedrock model ID belongs to a family that
38
+ * supports cachePoint blocks. `additionalPatterns` lets consumers extend
39
+ * the allowlist for models the library doesn't know about yet.
40
+ *
41
+ * @param modelId Bedrock model ID (e.g. `us.anthropic.claude-sonnet-4-5-20250929-v1:0`)
42
+ * @param additionalPatterns Extra patterns from consumer config
43
+ */
44
+ export function isBedrockCacheSupported(
45
+ modelId: string | undefined,
46
+ additionalPatterns?: readonly RegExp[],
47
+ ): boolean {
48
+ if (!modelId) return false;
49
+ const allPatterns = additionalPatterns
50
+ ? [...DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS, ...additionalPatterns]
51
+ : DEFAULT_BEDROCK_CACHE_MODEL_PATTERNS;
52
+ return allPatterns.some((p) => p.test(modelId));
53
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ import type { BaseMessage } from '@langchain/core/messages';
38
38
  import { ChatGenerationChunk, ChatResult } from '@langchain/core/outputs';
39
39
  import type { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager';
40
40
  import type { ChatBedrockConverseInput } from '@langchain/aws';
41
+ import { isBedrockCacheSupported } from './cacheSupport';
41
42
  import {
42
43
  convertToConverseMessages,
43
44
  handleConverseStreamContentBlockStart,
@@ -52,19 +53,72 @@ import {
52
53
  */
53
54
  export type ServiceTierType = 'priority' | 'default' | 'flex' | 'reserved';
54
55
 
56
+ /**
57
+ * Tool cachePoint allocation strategy.
58
+ *
59
+ * - 'single': one cachePoint at the END of the tools array (whole array
60
+ * cached as one unit). Lightest budget use (1 cachePoint).
61
+ * - 'split': split tools into groups via `toolGroupSelector`. Each
62
+ * non-empty group gets its own cachePoint. Use when groups
63
+ * have different volatility (e.g. stable core tools vs
64
+ * volatile MCP tools). Costs more cachePoint budget.
65
+ * - 'none': no cachePoint on tools array. Use when tool definitions
66
+ * change every request anyway.
67
+ */
68
+ export type ToolCacheStrategy = 'single' | 'split' | 'none';
69
+
70
+ /**
71
+ * Group selector for `toolCacheStrategy: 'split'`. Receives the tool name
72
+ * and returns a stable group key — tools with the same key are grouped
73
+ * together. Group order in the output array follows first-encounter order.
74
+ */
75
+ export type ToolGroupSelector = (toolName: string) => string;
76
+
77
+ /**
78
+ * Default group selector — puts all tools in a single group named 'core'.
79
+ * Equivalent to 'single' strategy but explicit. Consumers override this
80
+ * to enable per-source grouping (e.g. ranger uses `_mcp_` substring to
81
+ * separate core from MCP tools).
82
+ */
83
+ export const DEFAULT_TOOL_GROUP_SELECTOR: ToolGroupSelector = () => 'core';
84
+
55
85
  /**
56
86
  * Extended input interface with additional features:
57
87
  * - promptCache: Enable Bedrock prompt caching for tool definitions
58
88
  * - applicationInferenceProfile: Use an inference profile ARN instead of model ID
59
89
  * - serviceTier: Specify service tier (Priority, Standard, Flex, Reserved)
90
+ * - toolCacheStrategy: How to allocate cachePoints across tools array
91
+ * - toolGroupSelector: Group key resolver for the 'split' strategy
60
92
  */
61
93
  export interface IllumaBedrockConverseInput extends ChatBedrockConverseInput {
62
94
  /**
63
95
  * Enable Bedrock prompt caching for tool definitions.
64
- * When true, adds cachePoint markers to tools array.
96
+ * When true, adds cachePoint marker(s) to tools array per
97
+ * `toolCacheStrategy`. Defaults to 'single'.
65
98
  */
66
99
  promptCache?: boolean;
67
100
 
101
+ /**
102
+ * Tool cachePoint allocation. Defaults to 'single' — one cachePoint at
103
+ * the end of the tools array. Set to 'split' (with `toolGroupSelector`)
104
+ * when different tool groups have different volatility.
105
+ */
106
+ toolCacheStrategy?: ToolCacheStrategy;
107
+
108
+ /**
109
+ * Group selector for 'split' strategy. Receives a tool name, returns
110
+ * a stable group key. Defaults to a one-group selector (equivalent
111
+ * to 'single').
112
+ */
113
+ toolGroupSelector?: ToolGroupSelector;
114
+
115
+ /**
116
+ * Additional model ID patterns to consider Bedrock-cache-supported.
117
+ * Defaults are in `src/llm/bedrock/cacheSupport.ts`. Use this when
118
+ * AWS adds a new model family before the next library release.
119
+ */
120
+ bedrockCacheModelPatterns?: readonly RegExp[];
121
+
68
122
  /**
69
123
  * Application Inference Profile ARN to use for the model.
70
124
  * For example, "arn:aws:bedrock:eu-west-1:123456789102:application-inference-profile/fm16bt65tzgx"
@@ -108,11 +162,24 @@ export class IllumaBedrockConverse extends ChatBedrockConverse {
108
162
  /** Service tier for model invocation */
109
163
  serviceTier?: ServiceTierType;
110
164
 
165
+ /** Tool cachePoint allocation strategy. */
166
+ toolCacheStrategy: ToolCacheStrategy;
167
+
168
+ /** Group selector for 'split' strategy. */
169
+ toolGroupSelector: ToolGroupSelector;
170
+
171
+ /** Optional consumer extensions to the cache-supported model allowlist. */
172
+ bedrockCacheModelPatterns?: readonly RegExp[];
173
+
111
174
  constructor(fields?: IllumaBedrockConverseInput) {
112
175
  super(fields);
113
176
  this.promptCache = fields?.promptCache ?? false;
114
177
  this.applicationInferenceProfile = fields?.applicationInferenceProfile;
115
178
  this.serviceTier = fields?.serviceTier;
179
+ this.toolCacheStrategy = fields?.toolCacheStrategy ?? 'single';
180
+ this.toolGroupSelector =
181
+ fields?.toolGroupSelector ?? DEFAULT_TOOL_GROUP_SELECTOR;
182
+ this.bedrockCacheModelPatterns = fields?.bedrockCacheModelPatterns;
116
183
 
117
184
  // Fix: Force supportsToolChoiceValues for Claude models
118
185
  // The parent constructor checks `model.includes('claude-3')` but this fails when:
@@ -183,56 +250,64 @@ export class IllumaBedrockConverse extends ChatBedrockConverse {
183
250
  }
184
251
  }
185
252
 
186
- // Only Claude models support cachePoint - check model name
187
- const modelId = this.model.toLowerCase();
188
- const isClaudeModel =
189
- modelId.includes('claude') || modelId.includes('anthropic');
253
+ /* Allowlist-based gate (see cacheSupport.ts). Replaces the old
254
+ * substring heuristic — same default behavior for Claude/Anthropic/
255
+ * Nova models, plus extension via `bedrockCacheModelPatterns`. */
256
+ const cacheSupported = isBedrockCacheSupported(
257
+ this.model,
258
+ this.bedrockCacheModelPatterns,
259
+ );
190
260
 
191
261
  if (
192
262
  this.promptCache &&
193
- isClaudeModel &&
263
+ cacheSupported &&
264
+ this.toolCacheStrategy !== 'none' &&
194
265
  params.toolConfig?.tools &&
195
266
  Array.isArray(params.toolConfig.tools) &&
196
267
  params.toolConfig.tools.length > 0
197
268
  ) {
198
- // Separate core tools from MCP tools
199
- // MCP tools have '_mcp_' in their name (e.g., 'search_emails_mcp_Google-Workspace')
200
- const coreTools: typeof params.toolConfig.tools = [];
201
- const mcpTools: typeof params.toolConfig.tools = [];
202
-
203
- for (const tool of params.toolConfig.tools) {
204
- // Check if tool has a name property with '_mcp_' pattern
205
- const toolName =
206
- (tool as { toolSpec?: { name?: string } }).toolSpec?.name ?? '';
207
- if (toolName.includes('_mcp_')) {
208
- mcpTools.push(tool);
209
- } else {
210
- coreTools.push(tool);
269
+ const tools = params.toolConfig.tools;
270
+
271
+ if (this.toolCacheStrategy === 'single') {
272
+ /* SINGLE: one cachePoint at the end of the tools array. Lightest
273
+ * budget use; appropriate when the entire tools array is treated
274
+ * as one unit and changes together. */
275
+ const toolsWithCache = [
276
+ ...tools,
277
+ { cachePoint: { type: 'default' } } as (typeof tools)[number],
278
+ ];
279
+ params.toolConfig.tools = toolsWithCache;
280
+ } else if (this.toolCacheStrategy === 'split') {
281
+ /* SPLIT: group tools by `toolGroupSelector` and emit a cachePoint
282
+ * after each non-empty group. Group order follows first-encounter
283
+ * order in the input. Use when groups have different volatility
284
+ * (e.g. stable core tools + volatile MCP tools). */
285
+ const groupOrder: string[] = [];
286
+ const groupMap = new Map<string, typeof tools>();
287
+ for (const tool of tools) {
288
+ const toolName =
289
+ (tool as { toolSpec?: { name?: string } }).toolSpec?.name ?? '';
290
+ const groupKey = this.toolGroupSelector(toolName);
291
+ let group = groupMap.get(groupKey);
292
+ if (!group) {
293
+ group = [];
294
+ groupMap.set(groupKey, group);
295
+ groupOrder.push(groupKey);
296
+ }
297
+ group.push(tool);
211
298
  }
212
- }
213
-
214
- // Build tools array with strategic cachePoints:
215
- // [CoreTool1, CoreTool2, cachePoint] + [MCPTool1, MCPTool2, cachePoint]
216
- const toolsWithCache: typeof params.toolConfig.tools = [];
217
-
218
- // Add core tools with cachePoint (if any)
219
- if (coreTools.length > 0) {
220
- toolsWithCache.push(...coreTools);
221
- toolsWithCache.push({ cachePoint: { type: 'default' } });
222
- }
223
299
 
224
- // Add MCP tools with their own cachePoint (if any)
225
- if (mcpTools.length > 0) {
226
- toolsWithCache.push(...mcpTools);
227
- toolsWithCache.push({ cachePoint: { type: 'default' } });
228
- }
229
-
230
- // If no tools at all (shouldn't happen but safety check)
231
- if (toolsWithCache.length === 0) {
232
- toolsWithCache.push({ cachePoint: { type: 'default' } });
300
+ const toolsWithCache: typeof tools = [];
301
+ for (const groupKey of groupOrder) {
302
+ const group = groupMap.get(groupKey);
303
+ if (!group || group.length === 0) continue;
304
+ toolsWithCache.push(...group);
305
+ toolsWithCache.push(
306
+ { cachePoint: { type: 'default' } } as (typeof tools)[number],
307
+ );
308
+ }
309
+ params.toolConfig.tools = toolsWithCache;
233
310
  }
234
-
235
- params.toolConfig.tools = toolsWithCache;
236
311
  }
237
312
 
238
313
  // Add serviceTier support
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,8CAA8C,EAC9C,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,wCAAwC,EACxC,qCAAqC,EACrC,qCAAqC,EACrC,4BAA4B,EAC5B,8CAA8C,EAC9C,qDAAqD,GACtD,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_inputs.js","sourceRoot":"","sources":["message_inputs.ts"],"names":[],"mappings":"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"}