@librechat/agents 3.2.21 → 3.2.32

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 (402) hide show
  1. package/dist/cjs/agents/AgentContext.cjs +3 -2
  2. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  3. package/dist/cjs/events.cjs.map +1 -1
  4. package/dist/cjs/graphs/Graph.cjs +200 -54
  5. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  6. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  7. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +13 -7
  8. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -1
  9. package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
  10. package/dist/cjs/hooks/types.cjs.map +1 -1
  11. package/dist/cjs/instrumentation.cjs +2 -2
  12. package/dist/cjs/instrumentation.cjs.map +1 -1
  13. package/dist/cjs/langfuse.cjs +17 -1
  14. package/dist/cjs/langfuse.cjs.map +1 -1
  15. package/dist/cjs/langfuseToolOutputTracing.cjs +2 -2
  16. package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
  17. package/dist/cjs/llm/anthropic/index.cjs +1 -1
  18. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  19. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +38 -3
  20. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  21. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +6 -2
  22. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
  23. package/dist/cjs/llm/bedrock/index.cjs +2 -2
  24. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  25. package/dist/cjs/llm/bedrock/toolCache.cjs +8 -5
  26. package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
  27. package/dist/cjs/llm/fake.cjs +16 -14
  28. package/dist/cjs/llm/fake.cjs.map +1 -1
  29. package/dist/cjs/llm/google/index.cjs +22 -0
  30. package/dist/cjs/llm/google/index.cjs.map +1 -1
  31. package/dist/cjs/llm/google/utils/common.cjs +88 -27
  32. package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
  33. package/dist/cjs/llm/init.cjs +2 -2
  34. package/dist/cjs/llm/invoke.cjs +108 -11
  35. package/dist/cjs/llm/invoke.cjs.map +1 -1
  36. package/dist/cjs/llm/openai/index.cjs +1 -1
  37. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  38. package/dist/cjs/llm/openai/utils/index.cjs +1 -1
  39. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  40. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  41. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  42. package/dist/cjs/main.cjs +1 -0
  43. package/dist/cjs/main.cjs.map +1 -1
  44. package/dist/cjs/messages/cache.cjs +29 -8
  45. package/dist/cjs/messages/cache.cjs.map +1 -1
  46. package/dist/cjs/messages/content.cjs.map +1 -1
  47. package/dist/cjs/messages/contextPruning.cjs.map +1 -1
  48. package/dist/cjs/messages/format.cjs +129 -17
  49. package/dist/cjs/messages/format.cjs.map +1 -1
  50. package/dist/cjs/messages/prune.cjs.map +1 -1
  51. package/dist/cjs/messages/reducer.cjs +1 -1
  52. package/dist/cjs/messages/reducer.cjs.map +1 -1
  53. package/dist/cjs/messages/tools.cjs +1 -1
  54. package/dist/cjs/messages/tools.cjs.map +1 -1
  55. package/dist/cjs/openai/index.cjs.map +1 -1
  56. package/dist/cjs/responses/index.cjs.map +1 -1
  57. package/dist/cjs/run.cjs +41 -20
  58. package/dist/cjs/run.cjs.map +1 -1
  59. package/dist/cjs/session/AgentSession.cjs +4 -4
  60. package/dist/cjs/session/AgentSession.cjs.map +1 -1
  61. package/dist/cjs/session/JsonlSessionStore.cjs +2 -2
  62. package/dist/cjs/session/JsonlSessionStore.cjs.map +1 -1
  63. package/dist/cjs/session/handlers.cjs +2 -2
  64. package/dist/cjs/session/handlers.cjs.map +1 -1
  65. package/dist/cjs/stream.cjs +248 -25
  66. package/dist/cjs/stream.cjs.map +1 -1
  67. package/dist/cjs/summarization/node.cjs.map +1 -1
  68. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +1 -1
  69. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
  70. package/dist/cjs/tools/Calculator.cjs +1 -1
  71. package/dist/cjs/tools/Calculator.cjs.map +1 -1
  72. package/dist/cjs/tools/CodeExecutor.cjs +1 -1
  73. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  74. package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
  75. package/dist/cjs/tools/ToolNode.cjs +37 -18
  76. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  77. package/dist/cjs/tools/ToolSearch.cjs +1 -1
  78. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  79. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs +7 -4
  80. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs.map +1 -1
  81. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs +4 -4
  82. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs.map +1 -1
  83. package/dist/cjs/tools/handlers.cjs +2 -1
  84. package/dist/cjs/tools/handlers.cjs.map +1 -1
  85. package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -1
  86. package/dist/cjs/tools/local/FileCheckpointer.cjs +2 -1
  87. package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -1
  88. package/dist/cjs/tools/local/LocalCodingTools.cjs +45 -19
  89. package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -1
  90. package/dist/cjs/tools/local/LocalExecutionEngine.cjs +3 -3
  91. package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -1
  92. package/dist/cjs/tools/local/LocalExecutionTools.cjs +2 -2
  93. package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -1
  94. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +4 -3
  95. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
  96. package/dist/cjs/tools/local/attachments.cjs +0 -5
  97. package/dist/cjs/tools/local/attachments.cjs.map +1 -1
  98. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs +4 -4
  99. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
  100. package/dist/cjs/tools/search/firecrawl.cjs +1 -1
  101. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
  102. package/dist/cjs/tools/search/rerankers.cjs +7 -3
  103. package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
  104. package/dist/cjs/tools/search/tavily-search.cjs +1 -1
  105. package/dist/cjs/tools/search/tavily-search.cjs.map +1 -1
  106. package/dist/cjs/tools/search/utils.cjs +76 -8
  107. package/dist/cjs/tools/search/utils.cjs.map +1 -1
  108. package/dist/cjs/tools/subagent/SubagentExecutor.cjs +1 -1
  109. package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
  110. package/dist/cjs/utils/handlers.cjs +1 -1
  111. package/dist/cjs/utils/handlers.cjs.map +1 -1
  112. package/dist/cjs/utils/run.cjs +1 -1
  113. package/dist/cjs/utils/run.cjs.map +1 -1
  114. package/dist/esm/agents/AgentContext.mjs +3 -2
  115. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  116. package/dist/esm/events.mjs.map +1 -1
  117. package/dist/esm/graphs/Graph.mjs +200 -54
  118. package/dist/esm/graphs/Graph.mjs.map +1 -1
  119. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  120. package/dist/esm/hooks/createWorkspacePolicyHook.mjs +13 -7
  121. package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -1
  122. package/dist/esm/hooks/executeHooks.mjs.map +1 -1
  123. package/dist/esm/hooks/types.mjs.map +1 -1
  124. package/dist/esm/instrumentation.mjs +2 -2
  125. package/dist/esm/instrumentation.mjs.map +1 -1
  126. package/dist/esm/langfuse.mjs +17 -2
  127. package/dist/esm/langfuse.mjs.map +1 -1
  128. package/dist/esm/langfuseToolOutputTracing.mjs +2 -2
  129. package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
  130. package/dist/esm/llm/anthropic/index.mjs +1 -1
  131. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  132. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +38 -3
  133. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  134. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +6 -2
  135. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
  136. package/dist/esm/llm/bedrock/index.mjs +2 -2
  137. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  138. package/dist/esm/llm/bedrock/toolCache.mjs +8 -5
  139. package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
  140. package/dist/esm/llm/fake.mjs +16 -14
  141. package/dist/esm/llm/fake.mjs.map +1 -1
  142. package/dist/esm/llm/google/index.mjs +23 -1
  143. package/dist/esm/llm/google/index.mjs.map +1 -1
  144. package/dist/esm/llm/google/utils/common.mjs +88 -27
  145. package/dist/esm/llm/google/utils/common.mjs.map +1 -1
  146. package/dist/esm/llm/init.mjs +2 -2
  147. package/dist/esm/llm/invoke.mjs +104 -7
  148. package/dist/esm/llm/invoke.mjs.map +1 -1
  149. package/dist/esm/llm/openai/index.mjs +1 -1
  150. package/dist/esm/llm/openai/index.mjs.map +1 -1
  151. package/dist/esm/llm/openai/utils/index.mjs +1 -1
  152. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  153. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  154. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  155. package/dist/esm/main.mjs +1 -1
  156. package/dist/esm/messages/cache.mjs +29 -8
  157. package/dist/esm/messages/cache.mjs.map +1 -1
  158. package/dist/esm/messages/content.mjs.map +1 -1
  159. package/dist/esm/messages/contextPruning.mjs.map +1 -1
  160. package/dist/esm/messages/format.mjs +129 -18
  161. package/dist/esm/messages/format.mjs.map +1 -1
  162. package/dist/esm/messages/prune.mjs.map +1 -1
  163. package/dist/esm/messages/reducer.mjs +1 -1
  164. package/dist/esm/messages/reducer.mjs.map +1 -1
  165. package/dist/esm/messages/tools.mjs +1 -1
  166. package/dist/esm/messages/tools.mjs.map +1 -1
  167. package/dist/esm/openai/index.mjs.map +1 -1
  168. package/dist/esm/responses/index.mjs.map +1 -1
  169. package/dist/esm/run.mjs +41 -20
  170. package/dist/esm/run.mjs.map +1 -1
  171. package/dist/esm/session/AgentSession.mjs +4 -4
  172. package/dist/esm/session/AgentSession.mjs.map +1 -1
  173. package/dist/esm/session/JsonlSessionStore.mjs +2 -2
  174. package/dist/esm/session/JsonlSessionStore.mjs.map +1 -1
  175. package/dist/esm/session/handlers.mjs +2 -2
  176. package/dist/esm/session/handlers.mjs.map +1 -1
  177. package/dist/esm/stream.mjs +248 -25
  178. package/dist/esm/stream.mjs.map +1 -1
  179. package/dist/esm/summarization/node.mjs.map +1 -1
  180. package/dist/esm/tools/BashProgrammaticToolCalling.mjs +1 -1
  181. package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
  182. package/dist/esm/tools/Calculator.mjs +1 -1
  183. package/dist/esm/tools/Calculator.mjs.map +1 -1
  184. package/dist/esm/tools/CodeExecutor.mjs +1 -1
  185. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  186. package/dist/esm/tools/SubagentTool.mjs.map +1 -1
  187. package/dist/esm/tools/ToolNode.mjs +37 -18
  188. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  189. package/dist/esm/tools/ToolSearch.mjs +1 -1
  190. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  191. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs +7 -4
  192. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs.map +1 -1
  193. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs +4 -4
  194. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs.map +1 -1
  195. package/dist/esm/tools/handlers.mjs +2 -1
  196. package/dist/esm/tools/handlers.mjs.map +1 -1
  197. package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -1
  198. package/dist/esm/tools/local/FileCheckpointer.mjs +2 -1
  199. package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -1
  200. package/dist/esm/tools/local/LocalCodingTools.mjs +45 -19
  201. package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -1
  202. package/dist/esm/tools/local/LocalExecutionEngine.mjs +3 -3
  203. package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -1
  204. package/dist/esm/tools/local/LocalExecutionTools.mjs +2 -2
  205. package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -1
  206. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +4 -3
  207. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
  208. package/dist/esm/tools/local/attachments.mjs +0 -5
  209. package/dist/esm/tools/local/attachments.mjs.map +1 -1
  210. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs +4 -4
  211. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
  212. package/dist/esm/tools/search/firecrawl.mjs +1 -1
  213. package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
  214. package/dist/esm/tools/search/rerankers.mjs +8 -4
  215. package/dist/esm/tools/search/rerankers.mjs.map +1 -1
  216. package/dist/esm/tools/search/tavily-search.mjs +1 -1
  217. package/dist/esm/tools/search/tavily-search.mjs.map +1 -1
  218. package/dist/esm/tools/search/utils.mjs +76 -9
  219. package/dist/esm/tools/search/utils.mjs.map +1 -1
  220. package/dist/esm/tools/subagent/SubagentExecutor.mjs +1 -1
  221. package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
  222. package/dist/esm/utils/handlers.mjs +1 -1
  223. package/dist/esm/utils/handlers.mjs.map +1 -1
  224. package/dist/esm/utils/run.mjs +1 -1
  225. package/dist/esm/utils/run.mjs.map +1 -1
  226. package/dist/types/agents/__tests__/promptCacheLiveHelpers.d.ts +1 -1
  227. package/dist/types/events.d.ts +1 -1
  228. package/dist/types/graphs/Graph.d.ts +7 -1
  229. package/dist/types/hooks/executeHooks.d.ts +1 -1
  230. package/dist/types/hooks/types.d.ts +5 -0
  231. package/dist/types/langfuse.d.ts +4 -0
  232. package/dist/types/llm/anthropic/utils/message_inputs.d.ts +1 -1
  233. package/dist/types/llm/anthropic/utils/message_outputs.d.ts +1 -1
  234. package/dist/types/llm/anthropic/utils/output_parsers.d.ts +2 -2
  235. package/dist/types/llm/bedrock/index.d.ts +2 -2
  236. package/dist/types/llm/fake.d.ts +3 -3
  237. package/dist/types/llm/google/index.d.ts +1 -0
  238. package/dist/types/llm/google/types.d.ts +1 -1
  239. package/dist/types/llm/google/utils/common.d.ts +2 -2
  240. package/dist/types/llm/google/utils/tools.d.ts +1 -1
  241. package/dist/types/llm/google/utils/zod_to_genai_parameters.d.ts +1 -1
  242. package/dist/types/llm/openai/index.d.ts +2 -2
  243. package/dist/types/llm/openai/utils/index.d.ts +1 -1
  244. package/dist/types/llm/openrouter/index.d.ts +4 -4
  245. package/dist/types/messages/contextPruning.d.ts +1 -1
  246. package/dist/types/messages/format.d.ts +14 -4
  247. package/dist/types/messages/prune.d.ts +1 -1
  248. package/dist/types/session/JsonlSessionStore.d.ts +1 -1
  249. package/dist/types/session/handlers.d.ts +1 -1
  250. package/dist/types/session/types.d.ts +1 -1
  251. package/dist/types/summarization/node.d.ts +1 -1
  252. package/dist/types/tools/SubagentTool.d.ts +2 -2
  253. package/dist/types/tools/ToolNode.d.ts +9 -2
  254. package/dist/types/tools/cloudflare/CloudflareSandboxExecutionEngine.d.ts +1 -1
  255. package/dist/types/tools/search/types.d.ts +1 -1
  256. package/dist/types/tools/search/utils.d.ts +11 -0
  257. package/dist/types/types/graph.d.ts +4 -4
  258. package/dist/types/types/llm.d.ts +4 -3
  259. package/dist/types/types/messages.d.ts +1 -1
  260. package/dist/types/types/run.d.ts +6 -6
  261. package/dist/types/types/stream.d.ts +2 -2
  262. package/dist/types/types/tools.d.ts +5 -1
  263. package/dist/types/utils/handlers.d.ts +2 -2
  264. package/dist/types/utils/run.d.ts +1 -1
  265. package/package.json +13 -10
  266. package/src/__tests__/stream.eagerEventExecution.test.ts +543 -6
  267. package/src/agents/AgentContext.ts +2 -2
  268. package/src/agents/__tests__/AgentContext.test.ts +3 -3
  269. package/src/agents/__tests__/promptCacheLiveHelpers.ts +1 -1
  270. package/src/events.ts +1 -1
  271. package/src/graphs/Graph.ts +329 -72
  272. package/src/graphs/MultiAgentGraph.ts +1 -1
  273. package/src/graphs/__tests__/Graph.reasoning.test.ts +919 -6
  274. package/src/graphs/__tests__/MultiAgentGraph.test.ts +1 -1
  275. package/src/graphs/__tests__/composition.smoke.test.ts +1 -1
  276. package/src/hooks/__tests__/HookRegistry.test.ts +1 -1
  277. package/src/hooks/__tests__/compactHooks.test.ts +8 -8
  278. package/src/hooks/__tests__/createWorkspacePolicyHook.test.ts +34 -22
  279. package/src/hooks/__tests__/executeHooks.test.ts +3 -3
  280. package/src/hooks/__tests__/integration.test.ts +3 -3
  281. package/src/hooks/__tests__/toolHooks.test.ts +10 -10
  282. package/src/hooks/createWorkspacePolicyHook.ts +17 -14
  283. package/src/hooks/executeHooks.ts +1 -1
  284. package/src/hooks/types.ts +5 -0
  285. package/src/instrumentation.ts +11 -11
  286. package/src/langfuse.ts +35 -1
  287. package/src/langfuseToolOutputTracing.ts +2 -2
  288. package/src/llm/anthropic/index.ts +1 -1
  289. package/src/llm/anthropic/llm.spec.ts +36 -0
  290. package/src/llm/anthropic/utils/message_inputs.ts +46 -4
  291. package/src/llm/anthropic/utils/message_outputs.ts +9 -7
  292. package/src/llm/anthropic/utils/output_parsers.ts +5 -5
  293. package/src/llm/anthropic/utils/streaming-tool-input.test.ts +186 -0
  294. package/src/llm/bedrock/index.ts +4 -4
  295. package/src/llm/bedrock/toolCache.test.ts +48 -9
  296. package/src/llm/bedrock/toolCache.ts +11 -6
  297. package/src/llm/fake.ts +30 -25
  298. package/src/llm/google/index.ts +43 -1
  299. package/src/llm/google/llm.spec.ts +173 -1
  300. package/src/llm/google/types.ts +1 -1
  301. package/src/llm/google/utils/common.ts +154 -45
  302. package/src/llm/google/utils/tools.ts +8 -8
  303. package/src/llm/google/utils/zod_to_genai_parameters.ts +4 -4
  304. package/src/llm/invoke.test.ts +3 -3
  305. package/src/llm/invoke.ts +170 -10
  306. package/src/llm/openai/index.ts +4 -4
  307. package/src/llm/openai/utils/index.ts +14 -14
  308. package/src/llm/openrouter/index.ts +4 -4
  309. package/src/llm/openrouter/reasoning.test.ts +2 -2
  310. package/src/llm/vertexai/fixThoughtSignatures.test.ts +1 -1
  311. package/src/llm/vertexai/index.ts +1 -1
  312. package/src/messages/cache.test.ts +144 -0
  313. package/src/messages/cache.ts +50 -13
  314. package/src/messages/content.ts +1 -1
  315. package/src/messages/contextPruning.ts +1 -1
  316. package/src/messages/format.ts +236 -43
  317. package/src/messages/formatAgentMessages.skills.test.ts +205 -26
  318. package/src/messages/formatAgentMessages.test.ts +841 -10
  319. package/src/messages/labelContentByAgent.test.ts +2 -2
  320. package/src/messages/prune.ts +1 -1
  321. package/src/messages/reducer.ts +1 -1
  322. package/src/messages/tools.ts +1 -1
  323. package/src/openai/__tests__/openai.test.ts +2 -2
  324. package/src/openai/index.ts +1 -1
  325. package/src/responses/__tests__/responses.test.ts +2 -2
  326. package/src/responses/index.ts +1 -1
  327. package/src/run.ts +68 -41
  328. package/src/session/AgentSession.ts +6 -6
  329. package/src/session/JsonlSessionStore.ts +3 -3
  330. package/src/session/__tests__/JsonlSessionStore.test.ts +5 -5
  331. package/src/session/__tests__/handlers.test.ts +2 -2
  332. package/src/session/handlers.ts +5 -5
  333. package/src/session/types.ts +1 -1
  334. package/src/specs/agent-handoffs.test.ts +1 -1
  335. package/src/specs/langfuse-callbacks.test.ts +2 -2
  336. package/src/specs/langfuse-metadata.test.ts +39 -0
  337. package/src/specs/langfuse-tool-output-tracing.test.ts +1 -1
  338. package/src/specs/multi-agent-summarization.test.ts +4 -4
  339. package/src/specs/subagent.test.ts +3 -3
  340. package/src/specs/summarization-unit.test.ts +1 -1
  341. package/src/specs/thinking-handoff.test.ts +1 -1
  342. package/src/splitStream.test.ts +48 -0
  343. package/src/stream.test.ts +53 -3
  344. package/src/stream.ts +450 -39
  345. package/src/summarization/__tests__/aggregator.test.ts +2 -2
  346. package/src/summarization/__tests__/node.test.ts +2 -2
  347. package/src/summarization/node.ts +1 -1
  348. package/src/tools/BashProgrammaticToolCalling.ts +5 -5
  349. package/src/tools/Calculator.ts +1 -1
  350. package/src/tools/CodeExecutor.ts +2 -4
  351. package/src/tools/SubagentTool.ts +2 -2
  352. package/src/tools/ToolNode.ts +37 -16
  353. package/src/tools/ToolSearch.ts +1 -1
  354. package/src/tools/__tests__/CloudflareSandboxExecution.test.ts +4 -4
  355. package/src/tools/__tests__/CodeApiAuthHeaders.test.ts +12 -12
  356. package/src/tools/__tests__/LocalExecutionTools.test.ts +125 -93
  357. package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +29 -5
  358. package/src/tools/__tests__/ReadFile.test.ts +1 -1
  359. package/src/tools/__tests__/SkillTool.test.ts +4 -4
  360. package/src/tools/__tests__/SubagentExecutor.test.ts +17 -13
  361. package/src/tools/__tests__/SubagentTool.test.ts +2 -2
  362. package/src/tools/__tests__/ToolNode.eagerEventExecution.test.ts +1 -1
  363. package/src/tools/__tests__/ToolNode.outputReferences.test.ts +2 -5
  364. package/src/tools/__tests__/ToolNode.session.test.ts +1 -1
  365. package/src/tools/__tests__/ToolSearch.test.ts +1 -1
  366. package/src/tools/__tests__/annotateMessagesForLLM.test.ts +1 -1
  367. package/src/tools/__tests__/directToolHITLResumeScope.test.ts +35 -32
  368. package/src/tools/__tests__/directToolHooks.test.ts +41 -0
  369. package/src/tools/__tests__/handlers.test.ts +2 -2
  370. package/src/tools/__tests__/hitl.test.ts +11 -11
  371. package/src/tools/__tests__/localToolNames.test.ts +8 -6
  372. package/src/tools/__tests__/skillCatalog.test.ts +1 -1
  373. package/src/tools/__tests__/subagentHooks.test.ts +20 -10
  374. package/src/tools/__tests__/workspaceSeam.test.ts +20 -7
  375. package/src/tools/cloudflare/CloudflareSandboxExecutionEngine.ts +9 -6
  376. package/src/tools/cloudflare/CloudflareSandboxTools.ts +19 -19
  377. package/src/tools/handlers.ts +5 -5
  378. package/src/tools/local/CompileCheckTool.ts +4 -7
  379. package/src/tools/local/FileCheckpointer.ts +6 -5
  380. package/src/tools/local/LocalCodingTools.ts +100 -45
  381. package/src/tools/local/LocalExecutionEngine.ts +5 -5
  382. package/src/tools/local/LocalExecutionTools.ts +9 -9
  383. package/src/tools/local/LocalProgrammaticToolCalling.ts +5 -4
  384. package/src/tools/local/attachments.ts +0 -6
  385. package/src/tools/local/resolveLocalExecutionTools.ts +15 -15
  386. package/src/tools/search/firecrawl.ts +1 -1
  387. package/src/tools/search/jina-reranker.test.ts +148 -37
  388. package/src/tools/search/rerankers.ts +14 -4
  389. package/src/tools/search/tavily-search.ts +2 -2
  390. package/src/tools/search/types.ts +1 -1
  391. package/src/tools/search/utils.ts +99 -9
  392. package/src/tools/subagent/SubagentExecutor.ts +12 -6
  393. package/src/types/graph.ts +12 -12
  394. package/src/types/llm.ts +7 -6
  395. package/src/types/messages.ts +1 -1
  396. package/src/types/run.ts +7 -7
  397. package/src/types/stream.ts +2 -2
  398. package/src/types/tools.ts +5 -1
  399. package/src/utils/handlers.ts +2 -2
  400. package/src/utils/llmConfig.ts +1 -1
  401. package/src/utils/logging.ts +20 -10
  402. package/src/utils/run.ts +2 -2
@@ -1,34 +1,33 @@
1
+ import { AsyncLocalStorageProviderSingleton } from '@langchain/core/singletons';
1
2
  import { isBaseMessage, ToolMessage, HumanMessage, isAIMessage } from '@langchain/core/messages';
2
3
  import { isCommand, isGraphInterrupt, interrupt, Command, Send, END } from '@langchain/langgraph';
3
- import { AsyncLocalStorageProviderSingleton } from '@langchain/core/singletons';
4
- import { Constants, CODE_EXECUTION_TOOLS, GraphEvents } from '../common/enum.mjs';
5
- import '../stream.mjs';
6
- import { RunnableCallable } from '../utils/run.mjs';
7
- import 'ai-tokenizer';
8
- import 'zod-to-json-schema';
9
- import { calculateMaxToolResultChars, truncateToolResultContent } from '../utils/truncation.mjs';
10
- import { safeDispatchCustomEvent } from '../utils/events.mjs';
11
- import { executeHooks } from '../hooks/executeHooks.mjs';
12
- import '../hooks/createWorkspacePolicyHook.mjs';
13
- import { toLangChainContent } from '../messages/langchain.mjs';
14
- import { withLangfuseToolOutputTracingConfig } from '../langfuseToolOutputTracing.mjs';
15
4
  import { ToolOutputReferenceRegistry, buildReferenceKey } from './toolOutputReferences.mjs';
16
- import { stripCodeSessionFileSummary } from './CodeSessionFileSummary.mjs';
5
+ import { buildToolExecutionRequestPlan, recordArgsEqual } from './eagerEventExecution.mjs';
6
+ import { calculateMaxToolResultChars, truncateToolResultContent } from '../utils/truncation.mjs';
17
7
  import './local/CompileCheckTool.mjs';
18
8
  import 'path';
19
9
  import 'fs/promises';
20
10
  import './local/LocalCodingTools.mjs';
21
11
  import './local/LocalExecutionEngine.mjs';
22
12
  import '@langchain/core/tools';
23
- import './CodeExecutor.mjs';
24
13
  import './BashExecutor.mjs';
25
- import 'crypto';
14
+ import './CodeExecutor.mjs';
15
+ import { Constants, CODE_EXECUTION_TOOLS, GraphEvents } from '../common/enum.mjs';
26
16
  import 'http';
17
+ import 'crypto';
27
18
  import './ProgrammaticToolCalling.mjs';
28
19
  import './BashProgrammaticToolCalling.mjs';
20
+ import { executeHooks } from '../hooks/executeHooks.mjs';
21
+ import '../hooks/createWorkspacePolicyHook.mjs';
29
22
  import { resolveLocalToolRegistry, resolveLocalExecutionTools } from './local/resolveLocalExecutionTools.mjs';
30
- import './local/attachments.mjs';
31
- import { buildToolExecutionRequestPlan, recordArgsEqual } from './eagerEventExecution.mjs';
23
+ import { withLangfuseToolOutputTracingConfig } from '../langfuseToolOutputTracing.mjs';
24
+ import { stripCodeSessionFileSummary } from './CodeSessionFileSummary.mjs';
25
+ import { toLangChainContent } from '../messages/langchain.mjs';
26
+ import { safeDispatchCustomEvent } from '../utils/events.mjs';
27
+ import '../stream.mjs';
28
+ import { RunnableCallable } from '../utils/run.mjs';
29
+ import 'ai-tokenizer';
30
+ import 'zod-to-json-schema';
32
31
 
33
32
  const TOOL_NODE_RUN_NAME = 'tool_batch';
34
33
  /**
@@ -270,6 +269,13 @@ class ToolNode extends RunnableCallable {
270
269
  eagerEventToolUsageCount;
271
270
  /** Agent ID for event-driven mode */
272
271
  agentId;
272
+ /**
273
+ * ID of the agent that owns this tool node, whenever the graph knows it
274
+ * (including top-level agents in a multi-agent graph). Surfaced to hooks as
275
+ * `executingAgentId` so they can attribute a tool batch to a specific agent
276
+ * even where `agentId` (the subagent-scope marker) is undefined.
277
+ */
278
+ executingAgentId;
273
279
  /** Tool names that bypass event dispatch and execute directly (e.g., graph-managed handoff tools) */
274
280
  directToolNames;
275
281
  /**
@@ -311,7 +317,7 @@ class ToolNode extends RunnableCallable {
311
317
  * other's in-flight state.
312
318
  */
313
319
  anonBatchCounter = 0;
314
- constructor({ tools, toolMap, name, tags, trace, runLangfuse, agentLangfuse, errorHandler, toolCallStepIds, handleToolErrors, loadRuntimeTools, toolRegistry, sessions, eventDrivenMode, eagerEventToolExecution, eagerEventToolExecutions, eagerEventToolUsageCount, agentId, directToolNames, maxContextTokens, maxToolResultChars, hookRegistry, humanInTheLoop, toolOutputReferences, toolOutputRegistry, toolExecution, fileCheckpointer, }) {
320
+ constructor({ tools, toolMap, name, tags, trace, runLangfuse, agentLangfuse, errorHandler, toolCallStepIds, handleToolErrors, loadRuntimeTools, toolRegistry, sessions, eventDrivenMode, eagerEventToolExecution, eagerEventToolExecutions, eagerEventToolUsageCount, agentId, executingAgentId, directToolNames, maxContextTokens, maxToolResultChars, hookRegistry, humanInTheLoop, toolOutputReferences, toolOutputRegistry, toolExecution, fileCheckpointer, }) {
315
321
  super({
316
322
  name: name ?? TOOL_NODE_RUN_NAME,
317
323
  tags,
@@ -336,6 +342,9 @@ class ToolNode extends RunnableCallable {
336
342
  this.eagerEventToolExecutions = eagerEventToolExecutions;
337
343
  this.eagerEventToolUsageCount = eagerEventToolUsageCount;
338
344
  this.agentId = agentId;
345
+ // Default to agentId so callers constructing ToolNode directly (who pass the
346
+ // existing agentId option) still get attribution without knowing the new option.
347
+ this.executingAgentId = executingAgentId ?? agentId;
339
348
  this.directToolNames = directToolNames;
340
349
  this.maxToolResultChars =
341
350
  maxToolResultChars ?? calculateMaxToolResultChars(maxContextTokens);
@@ -649,6 +658,7 @@ class ToolNode extends RunnableCallable {
649
658
  runId: config.configurable?.run_id ?? '',
650
659
  threadId: config.configurable?.thread_id,
651
660
  agentId: this.agentId,
661
+ executingAgentId: this.executingAgentId,
652
662
  },
653
663
  };
654
664
  }
@@ -935,6 +945,7 @@ class ToolNode extends RunnableCallable {
935
945
  runId,
936
946
  threadId,
937
947
  agentId: this.agentId,
948
+ executingAgentId: this.executingAgentId,
938
949
  toolName: call.name,
939
950
  toolInput: resolvedArgs,
940
951
  toolUseId: call.id ?? '',
@@ -1106,6 +1117,7 @@ class ToolNode extends RunnableCallable {
1106
1117
  runId,
1107
1118
  threadId,
1108
1119
  agentId: this.agentId,
1120
+ executingAgentId: this.executingAgentId,
1109
1121
  toolName: call.name,
1110
1122
  toolInput: effectiveCall.args,
1111
1123
  toolUseId: call.id ?? '',
@@ -1133,6 +1145,7 @@ class ToolNode extends RunnableCallable {
1133
1145
  runId,
1134
1146
  threadId,
1135
1147
  agentId: this.agentId,
1148
+ executingAgentId: this.executingAgentId,
1136
1149
  toolName: call.name,
1137
1150
  toolInput: effectiveCall.args,
1138
1151
  toolOutput: output.content,
@@ -1215,6 +1228,7 @@ class ToolNode extends RunnableCallable {
1215
1228
  runId,
1216
1229
  threadId,
1217
1230
  agentId: this.agentId,
1231
+ executingAgentId: this.executingAgentId,
1218
1232
  toolName: call.name,
1219
1233
  toolInput: resolvedArgs,
1220
1234
  toolUseId: call.id ?? '',
@@ -1496,6 +1510,7 @@ class ToolNode extends RunnableCallable {
1496
1510
  runId,
1497
1511
  threadId,
1498
1512
  agentId: this.agentId,
1513
+ executingAgentId: this.executingAgentId,
1499
1514
  toolName: entry.call.name,
1500
1515
  toolInput: entry.args,
1501
1516
  toolUseId: entry.call.id,
@@ -1565,6 +1580,7 @@ class ToolNode extends RunnableCallable {
1565
1580
  runId,
1566
1581
  threadId,
1567
1582
  agentId: this.agentId,
1583
+ executingAgentId: this.executingAgentId,
1568
1584
  toolName: item.toolName,
1569
1585
  toolInput: item.args,
1570
1586
  toolUseId: item.callId,
@@ -2006,6 +2022,7 @@ class ToolNode extends RunnableCallable {
2006
2022
  runId,
2007
2023
  threadId,
2008
2024
  agentId: this.agentId,
2025
+ executingAgentId: this.executingAgentId,
2009
2026
  toolName,
2010
2027
  toolInput: request?.args ?? {},
2011
2028
  toolUseId: result.toolCallId,
@@ -2045,6 +2062,7 @@ class ToolNode extends RunnableCallable {
2045
2062
  runId,
2046
2063
  threadId,
2047
2064
  agentId: this.agentId,
2065
+ executingAgentId: this.executingAgentId,
2048
2066
  toolName,
2049
2067
  toolInput: request?.args ?? {},
2050
2068
  toolOutput: result.content,
@@ -2217,6 +2235,7 @@ class ToolNode extends RunnableCallable {
2217
2235
  runId,
2218
2236
  threadId,
2219
2237
  agentId: this.agentId,
2238
+ executingAgentId: this.executingAgentId,
2220
2239
  entries: orderedBatchEntries,
2221
2240
  },
2222
2241
  sessionId: runId,