@librechat/agents 3.4.6 → 3.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 (1027) hide show
  1. package/dist/cjs/agents/AgentContext.cjs +0 -356
  2. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  3. package/dist/cjs/agents/projection.cjs +0 -9
  4. package/dist/cjs/agents/projection.cjs.map +1 -1
  5. package/dist/cjs/common/constants.cjs +0 -26
  6. package/dist/cjs/common/constants.cjs.map +1 -1
  7. package/dist/cjs/common/enum.cjs +0 -85
  8. package/dist/cjs/common/enum.cjs.map +1 -1
  9. package/dist/cjs/events.cjs +0 -14
  10. package/dist/cjs/events.cjs.map +1 -1
  11. package/dist/cjs/graphs/Graph.cjs +1 -909
  12. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  13. package/dist/cjs/graphs/MultiAgentGraph.cjs +7 -272
  14. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  15. package/dist/cjs/graphs/applyGraphRuntimeConfig.cjs.map +1 -1
  16. package/dist/cjs/graphs/createGraph.cjs.map +1 -1
  17. package/dist/cjs/hitl/askUserQuestion.cjs +0 -53
  18. package/dist/cjs/hitl/askUserQuestion.cjs.map +1 -1
  19. package/dist/cjs/hitl/askUserQuestions.cjs +0 -20
  20. package/dist/cjs/hitl/askUserQuestions.cjs.map +1 -1
  21. package/dist/cjs/hitl/askUserQuestionsInterrupt.cjs +0 -6
  22. package/dist/cjs/hitl/askUserQuestionsInterrupt.cjs.map +1 -1
  23. package/dist/cjs/hooks/HookRegistry.cjs +0 -127
  24. package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
  25. package/dist/cjs/hooks/createToolPolicyHook.cjs +0 -38
  26. package/dist/cjs/hooks/createToolPolicyHook.cjs.map +1 -1
  27. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +0 -77
  28. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -1
  29. package/dist/cjs/hooks/executeHooks.cjs +0 -79
  30. package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
  31. package/dist/cjs/hooks/index.cjs +0 -16
  32. package/dist/cjs/hooks/index.cjs.map +1 -1
  33. package/dist/cjs/hooks/matchers.cjs +0 -104
  34. package/dist/cjs/hooks/matchers.cjs.map +1 -1
  35. package/dist/cjs/hooks/types.cjs +0 -8
  36. package/dist/cjs/hooks/types.cjs.map +1 -1
  37. package/dist/cjs/instrumentation.cjs +0 -14
  38. package/dist/cjs/instrumentation.cjs.map +1 -1
  39. package/dist/cjs/langfuse.cjs +0 -75
  40. package/dist/cjs/langfuse.cjs.map +1 -1
  41. package/dist/cjs/langfuseConfig.cjs.map +1 -1
  42. package/dist/cjs/langfuseRuntimeContext.cjs +0 -13
  43. package/dist/cjs/langfuseRuntimeContext.cjs.map +1 -1
  44. package/dist/cjs/langfuseRuntimeScope.cjs +0 -4
  45. package/dist/cjs/langfuseRuntimeScope.cjs.map +1 -1
  46. package/dist/cjs/langfuseSpanRegistry.cjs +0 -28
  47. package/dist/cjs/langfuseSpanRegistry.cjs.map +1 -1
  48. package/dist/cjs/langfuseToolOutputTracing.cjs +0 -3
  49. package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
  50. package/dist/cjs/langfuseTraceShaping.cjs +0 -74
  51. package/dist/cjs/langfuseTraceShaping.cjs.map +1 -1
  52. package/dist/cjs/llm/anthropic/index.cjs +0 -3
  53. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  54. package/dist/cjs/llm/anthropic/types.cjs.map +1 -1
  55. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +1 -111
  56. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  57. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +0 -1
  58. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
  59. package/dist/cjs/llm/anthropic/utils/stream_events.cjs +0 -8
  60. package/dist/cjs/llm/anthropic/utils/stream_events.cjs.map +1 -1
  61. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -1
  62. package/dist/cjs/llm/bedrock/cachePoints.cjs.map +1 -1
  63. package/dist/cjs/llm/bedrock/index.cjs +1 -95
  64. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  65. package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
  66. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +0 -78
  67. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -1
  68. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs +0 -24
  69. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs.map +1 -1
  70. package/dist/cjs/llm/contextOverflowRecovery.cjs +0 -62
  71. package/dist/cjs/llm/contextOverflowRecovery.cjs.map +1 -1
  72. package/dist/cjs/llm/fake.cjs.map +1 -1
  73. package/dist/cjs/llm/google/index.cjs +2 -21
  74. package/dist/cjs/llm/google/index.cjs.map +1 -1
  75. package/dist/cjs/llm/google/utils/common.cjs +5 -35
  76. package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
  77. package/dist/cjs/llm/init.cjs +0 -9
  78. package/dist/cjs/llm/init.cjs.map +1 -1
  79. package/dist/cjs/llm/invoke.cjs +1 -270
  80. package/dist/cjs/llm/invoke.cjs.map +1 -1
  81. package/dist/cjs/llm/mistral/index.cjs.map +1 -1
  82. package/dist/cjs/llm/openai/index.cjs +0 -99
  83. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  84. package/dist/cjs/llm/openai/streamMetadata.cjs +0 -21
  85. package/dist/cjs/llm/openai/streamMetadata.cjs.map +1 -1
  86. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  87. package/dist/cjs/llm/openrouter/index.cjs +0 -1
  88. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  89. package/dist/cjs/llm/openrouter/toolCache.cjs +0 -6
  90. package/dist/cjs/llm/openrouter/toolCache.cjs.map +1 -1
  91. package/dist/cjs/llm/preempt.cjs +0 -75
  92. package/dist/cjs/llm/preempt.cjs.map +1 -1
  93. package/dist/cjs/llm/providers.cjs.map +1 -1
  94. package/dist/cjs/llm/request.cjs +0 -10
  95. package/dist/cjs/llm/request.cjs.map +1 -1
  96. package/dist/cjs/llm/stream/chunkAdapters.cjs +0 -62
  97. package/dist/cjs/llm/stream/chunkAdapters.cjs.map +1 -1
  98. package/dist/cjs/llm/stream/smoother.cjs +0 -58
  99. package/dist/cjs/llm/stream/smoother.cjs.map +1 -1
  100. package/dist/cjs/llm/streamLimits.cjs +4 -293
  101. package/dist/cjs/llm/streamLimits.cjs.map +1 -1
  102. package/dist/cjs/llm/truncation.cjs +0 -36
  103. package/dist/cjs/llm/truncation.cjs.map +1 -1
  104. package/dist/cjs/llm/vertexai/index.cjs +0 -330
  105. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  106. package/dist/cjs/messages/alternation.cjs +0 -43
  107. package/dist/cjs/messages/alternation.cjs.map +1 -1
  108. package/dist/cjs/messages/anthropicToolCache.cjs +0 -45
  109. package/dist/cjs/messages/anthropicToolCache.cjs.map +1 -1
  110. package/dist/cjs/messages/assistantPhase.cjs +0 -12
  111. package/dist/cjs/messages/assistantPhase.cjs.map +1 -1
  112. package/dist/cjs/messages/budget.cjs +0 -9
  113. package/dist/cjs/messages/budget.cjs.map +1 -1
  114. package/dist/cjs/messages/cache.cjs +0 -172
  115. package/dist/cjs/messages/cache.cjs.map +1 -1
  116. package/dist/cjs/messages/content.cjs +0 -9
  117. package/dist/cjs/messages/content.cjs.map +1 -1
  118. package/dist/cjs/messages/contextPruning.cjs +0 -15
  119. package/dist/cjs/messages/contextPruning.cjs.map +1 -1
  120. package/dist/cjs/messages/contextPruningSettings.cjs +0 -3
  121. package/dist/cjs/messages/contextPruningSettings.cjs.map +1 -1
  122. package/dist/cjs/messages/core.cjs +0 -48
  123. package/dist/cjs/messages/core.cjs.map +1 -1
  124. package/dist/cjs/messages/format.cjs +1 -345
  125. package/dist/cjs/messages/format.cjs.map +1 -1
  126. package/dist/cjs/messages/handoffCue.cjs +0 -36
  127. package/dist/cjs/messages/handoffCue.cjs.map +1 -1
  128. package/dist/cjs/messages/ids.cjs.map +1 -1
  129. package/dist/cjs/messages/injected.cjs +0 -33
  130. package/dist/cjs/messages/injected.cjs.map +1 -1
  131. package/dist/cjs/messages/langchain.cjs +0 -14
  132. package/dist/cjs/messages/langchain.cjs.map +1 -1
  133. package/dist/cjs/messages/prune.cjs +1 -184
  134. package/dist/cjs/messages/prune.cjs.map +1 -1
  135. package/dist/cjs/messages/recency.cjs +0 -32
  136. package/dist/cjs/messages/recency.cjs.map +1 -1
  137. package/dist/cjs/messages/reducer.cjs +0 -30
  138. package/dist/cjs/messages/reducer.cjs.map +1 -1
  139. package/dist/cjs/messages/tools.cjs +0 -14
  140. package/dist/cjs/messages/tools.cjs.map +1 -1
  141. package/dist/cjs/openai/index.cjs.map +1 -1
  142. package/dist/cjs/prompts/activityLabel.cjs +9 -79
  143. package/dist/cjs/prompts/activityLabel.cjs.map +1 -1
  144. package/dist/cjs/responses/index.cjs.map +1 -1
  145. package/dist/cjs/run.cjs +2 -538
  146. package/dist/cjs/run.cjs.map +1 -1
  147. package/dist/cjs/session/AgentSession.cjs +1 -17
  148. package/dist/cjs/session/AgentSession.cjs.map +1 -1
  149. package/dist/cjs/session/JsonlSessionStore.cjs.map +1 -1
  150. package/dist/cjs/session/handlers.cjs +0 -7
  151. package/dist/cjs/session/handlers.cjs.map +1 -1
  152. package/dist/cjs/session/ids.cjs.map +1 -1
  153. package/dist/cjs/session/messageSerialization.cjs +0 -4
  154. package/dist/cjs/session/messageSerialization.cjs.map +1 -1
  155. package/dist/cjs/stream.cjs +1 -93
  156. package/dist/cjs/stream.cjs.map +1 -1
  157. package/dist/cjs/summarization/index.cjs +0 -27
  158. package/dist/cjs/summarization/index.cjs.map +1 -1
  159. package/dist/cjs/summarization/node.cjs +0 -273
  160. package/dist/cjs/summarization/node.cjs.map +1 -1
  161. package/dist/cjs/tools/BashExecutor.cjs +0 -35
  162. package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
  163. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +0 -24
  164. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
  165. package/dist/cjs/tools/Calculator.cjs.map +1 -1
  166. package/dist/cjs/tools/CodeExecutor.cjs +0 -13
  167. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  168. package/dist/cjs/tools/CodeSessionFileSummary.cjs.map +1 -1
  169. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +0 -101
  170. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  171. package/dist/cjs/tools/ReadFile.cjs.map +1 -1
  172. package/dist/cjs/tools/SkillTool.cjs +0 -5
  173. package/dist/cjs/tools/SkillTool.cjs.map +1 -1
  174. package/dist/cjs/tools/SubagentTool.cjs +0 -10
  175. package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
  176. package/dist/cjs/tools/ToolNode.cjs +6 -1038
  177. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  178. package/dist/cjs/tools/ToolSearch.cjs +0 -179
  179. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  180. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs.map +1 -1
  181. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs.map +1 -1
  182. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs +0 -39
  183. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs.map +1 -1
  184. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs.map +1 -1
  185. package/dist/cjs/tools/eagerEventExecution.cjs +0 -6
  186. package/dist/cjs/tools/eagerEventExecution.cjs.map +1 -1
  187. package/dist/cjs/tools/handlers.cjs +1 -41
  188. package/dist/cjs/tools/handlers.cjs.map +1 -1
  189. package/dist/cjs/tools/intentArg.cjs +1 -132
  190. package/dist/cjs/tools/intentArg.cjs.map +1 -1
  191. package/dist/cjs/tools/local/CompileCheckTool.cjs +0 -25
  192. package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -1
  193. package/dist/cjs/tools/local/FileCheckpointer.cjs +0 -23
  194. package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -1
  195. package/dist/cjs/tools/local/LocalCodingTools.cjs +0 -80
  196. package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -1
  197. package/dist/cjs/tools/local/LocalExecutionEngine.cjs +0 -126
  198. package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -1
  199. package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -1
  200. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +0 -12
  201. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
  202. package/dist/cjs/tools/local/attachments.cjs +0 -44
  203. package/dist/cjs/tools/local/attachments.cjs.map +1 -1
  204. package/dist/cjs/tools/local/bashAst.cjs +0 -16
  205. package/dist/cjs/tools/local/bashAst.cjs.map +1 -1
  206. package/dist/cjs/tools/local/editStrategies.cjs +0 -14
  207. package/dist/cjs/tools/local/editStrategies.cjs.map +1 -1
  208. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
  209. package/dist/cjs/tools/local/syntaxCheck.cjs +0 -31
  210. package/dist/cjs/tools/local/syntaxCheck.cjs.map +1 -1
  211. package/dist/cjs/tools/local/textEncoding.cjs +0 -11
  212. package/dist/cjs/tools/local/textEncoding.cjs.map +1 -1
  213. package/dist/cjs/tools/local/workspaceFS.cjs +0 -33
  214. package/dist/cjs/tools/local/workspaceFS.cjs.map +1 -1
  215. package/dist/cjs/tools/ptcTimeout.cjs.map +1 -1
  216. package/dist/cjs/tools/schema.cjs +0 -8
  217. package/dist/cjs/tools/schema.cjs.map +1 -1
  218. package/dist/cjs/tools/search/anthropic.cjs +0 -9
  219. package/dist/cjs/tools/search/anthropic.cjs.map +1 -1
  220. package/dist/cjs/tools/search/content.cjs.map +1 -1
  221. package/dist/cjs/tools/search/crw-scraper.cjs +0 -33
  222. package/dist/cjs/tools/search/crw-scraper.cjs.map +1 -1
  223. package/dist/cjs/tools/search/crw-search.cjs +0 -2
  224. package/dist/cjs/tools/search/crw-search.cjs.map +1 -1
  225. package/dist/cjs/tools/search/firecrawl.cjs +0 -25
  226. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
  227. package/dist/cjs/tools/search/format.cjs +0 -30
  228. package/dist/cjs/tools/search/format.cjs.map +1 -1
  229. package/dist/cjs/tools/search/highlights.cjs +0 -16
  230. package/dist/cjs/tools/search/highlights.cjs.map +1 -1
  231. package/dist/cjs/tools/search/keenable-scraper.cjs +0 -8
  232. package/dist/cjs/tools/search/keenable-scraper.cjs.map +1 -1
  233. package/dist/cjs/tools/search/keenable-search.cjs +0 -7
  234. package/dist/cjs/tools/search/keenable-search.cjs.map +1 -1
  235. package/dist/cjs/tools/search/rerankers.cjs +0 -35
  236. package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
  237. package/dist/cjs/tools/search/schema.cjs +0 -1
  238. package/dist/cjs/tools/search/schema.cjs.map +1 -1
  239. package/dist/cjs/tools/search/search.cjs +1 -14
  240. package/dist/cjs/tools/search/search.cjs.map +1 -1
  241. package/dist/cjs/tools/search/serper-scraper.cjs +0 -46
  242. package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -1
  243. package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -1
  244. package/dist/cjs/tools/search/tavily-search.cjs.map +1 -1
  245. package/dist/cjs/tools/search/tool.cjs +0 -25
  246. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  247. package/dist/cjs/tools/search/utils.cjs +0 -8
  248. package/dist/cjs/tools/search/utils.cjs.map +1 -1
  249. package/dist/cjs/tools/skillCatalog.cjs +0 -6
  250. package/dist/cjs/tools/skillCatalog.cjs.map +1 -1
  251. package/dist/cjs/tools/streamedToolCallSeals.cjs +0 -6
  252. package/dist/cjs/tools/streamedToolCallSeals.cjs.map +1 -1
  253. package/dist/cjs/tools/subagent/SubagentExecutionRegistry.cjs +0 -2
  254. package/dist/cjs/tools/subagent/SubagentExecutionRegistry.cjs.map +1 -1
  255. package/dist/cjs/tools/subagent/SubagentExecutor.cjs +3 -213
  256. package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
  257. package/dist/cjs/tools/subagent/SubagentReplay.cjs.map +1 -1
  258. package/dist/cjs/tools/subagent/childGraphConfig.cjs +0 -4
  259. package/dist/cjs/tools/subagent/childGraphConfig.cjs.map +1 -1
  260. package/dist/cjs/tools/subagent/runtimeLimits.cjs.map +1 -1
  261. package/dist/cjs/tools/toolOutputReferences.cjs +1 -322
  262. package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -1
  263. package/dist/cjs/types/hitl.cjs +0 -5
  264. package/dist/cjs/types/hitl.cjs.map +1 -1
  265. package/dist/cjs/utils/callbacks.cjs.map +1 -1
  266. package/dist/cjs/utils/errors.cjs +14 -165
  267. package/dist/cjs/utils/errors.cjs.map +1 -1
  268. package/dist/cjs/utils/events.cjs +0 -10
  269. package/dist/cjs/utils/events.cjs.map +1 -1
  270. package/dist/cjs/utils/graph.cjs.map +1 -1
  271. package/dist/cjs/utils/handlers.cjs +0 -3
  272. package/dist/cjs/utils/handlers.cjs.map +1 -1
  273. package/dist/cjs/utils/llm.cjs +0 -1
  274. package/dist/cjs/utils/llm.cjs.map +1 -1
  275. package/dist/cjs/utils/misc.cjs +0 -16
  276. package/dist/cjs/utils/misc.cjs.map +1 -1
  277. package/dist/cjs/utils/proxy.cjs +0 -26
  278. package/dist/cjs/utils/proxy.cjs.map +1 -1
  279. package/dist/cjs/utils/run.cjs +0 -6
  280. package/dist/cjs/utils/run.cjs.map +1 -1
  281. package/dist/cjs/utils/schema.cjs +0 -5
  282. package/dist/cjs/utils/schema.cjs.map +1 -1
  283. package/dist/cjs/utils/title.cjs +0 -6
  284. package/dist/cjs/utils/title.cjs.map +1 -1
  285. package/dist/cjs/utils/tokens.cjs +0 -113
  286. package/dist/cjs/utils/tokens.cjs.map +1 -1
  287. package/dist/cjs/utils/toolContent.cjs +0 -41
  288. package/dist/cjs/utils/toolContent.cjs.map +1 -1
  289. package/dist/cjs/utils/truncation.cjs +0 -61
  290. package/dist/cjs/utils/truncation.cjs.map +1 -1
  291. package/dist/esm/agents/AgentContext.mjs +0 -356
  292. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  293. package/dist/esm/agents/projection.mjs +0 -9
  294. package/dist/esm/agents/projection.mjs.map +1 -1
  295. package/dist/esm/common/constants.mjs +0 -26
  296. package/dist/esm/common/constants.mjs.map +1 -1
  297. package/dist/esm/common/enum.mjs +0 -85
  298. package/dist/esm/common/enum.mjs.map +1 -1
  299. package/dist/esm/events.mjs +0 -14
  300. package/dist/esm/events.mjs.map +1 -1
  301. package/dist/esm/graphs/Graph.mjs +1 -909
  302. package/dist/esm/graphs/Graph.mjs.map +1 -1
  303. package/dist/esm/graphs/MultiAgentGraph.mjs +7 -272
  304. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  305. package/dist/esm/graphs/applyGraphRuntimeConfig.mjs.map +1 -1
  306. package/dist/esm/graphs/createGraph.mjs.map +1 -1
  307. package/dist/esm/hitl/askUserQuestion.mjs +0 -53
  308. package/dist/esm/hitl/askUserQuestion.mjs.map +1 -1
  309. package/dist/esm/hitl/askUserQuestions.mjs +0 -20
  310. package/dist/esm/hitl/askUserQuestions.mjs.map +1 -1
  311. package/dist/esm/hitl/askUserQuestionsInterrupt.mjs +0 -6
  312. package/dist/esm/hitl/askUserQuestionsInterrupt.mjs.map +1 -1
  313. package/dist/esm/hooks/HookRegistry.mjs +0 -127
  314. package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
  315. package/dist/esm/hooks/createToolPolicyHook.mjs +0 -38
  316. package/dist/esm/hooks/createToolPolicyHook.mjs.map +1 -1
  317. package/dist/esm/hooks/createWorkspacePolicyHook.mjs +0 -77
  318. package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -1
  319. package/dist/esm/hooks/executeHooks.mjs +0 -79
  320. package/dist/esm/hooks/executeHooks.mjs.map +1 -1
  321. package/dist/esm/hooks/index.mjs +0 -16
  322. package/dist/esm/hooks/index.mjs.map +1 -1
  323. package/dist/esm/hooks/matchers.mjs +0 -104
  324. package/dist/esm/hooks/matchers.mjs.map +1 -1
  325. package/dist/esm/hooks/types.mjs +0 -8
  326. package/dist/esm/hooks/types.mjs.map +1 -1
  327. package/dist/esm/instrumentation.mjs +0 -14
  328. package/dist/esm/instrumentation.mjs.map +1 -1
  329. package/dist/esm/langfuse.mjs +0 -75
  330. package/dist/esm/langfuse.mjs.map +1 -1
  331. package/dist/esm/langfuseConfig.mjs.map +1 -1
  332. package/dist/esm/langfuseRuntimeContext.mjs +0 -13
  333. package/dist/esm/langfuseRuntimeContext.mjs.map +1 -1
  334. package/dist/esm/langfuseRuntimeScope.mjs +0 -4
  335. package/dist/esm/langfuseRuntimeScope.mjs.map +1 -1
  336. package/dist/esm/langfuseSpanRegistry.mjs +0 -28
  337. package/dist/esm/langfuseSpanRegistry.mjs.map +1 -1
  338. package/dist/esm/langfuseToolOutputTracing.mjs +0 -3
  339. package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
  340. package/dist/esm/langfuseTraceShaping.mjs +0 -74
  341. package/dist/esm/langfuseTraceShaping.mjs.map +1 -1
  342. package/dist/esm/llm/anthropic/index.mjs +0 -3
  343. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  344. package/dist/esm/llm/anthropic/types.mjs.map +1 -1
  345. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +1 -111
  346. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  347. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +0 -1
  348. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
  349. package/dist/esm/llm/anthropic/utils/stream_events.mjs +0 -8
  350. package/dist/esm/llm/anthropic/utils/stream_events.mjs.map +1 -1
  351. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -1
  352. package/dist/esm/llm/bedrock/cachePoints.mjs.map +1 -1
  353. package/dist/esm/llm/bedrock/index.mjs +1 -95
  354. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  355. package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
  356. package/dist/esm/llm/bedrock/utils/message_inputs.mjs +0 -78
  357. package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -1
  358. package/dist/esm/llm/bedrock/utils/message_outputs.mjs +0 -24
  359. package/dist/esm/llm/bedrock/utils/message_outputs.mjs.map +1 -1
  360. package/dist/esm/llm/contextOverflowRecovery.mjs +0 -62
  361. package/dist/esm/llm/contextOverflowRecovery.mjs.map +1 -1
  362. package/dist/esm/llm/fake.mjs.map +1 -1
  363. package/dist/esm/llm/google/index.mjs +2 -21
  364. package/dist/esm/llm/google/index.mjs.map +1 -1
  365. package/dist/esm/llm/google/utils/common.mjs +5 -35
  366. package/dist/esm/llm/google/utils/common.mjs.map +1 -1
  367. package/dist/esm/llm/init.mjs +0 -9
  368. package/dist/esm/llm/init.mjs.map +1 -1
  369. package/dist/esm/llm/invoke.mjs +1 -270
  370. package/dist/esm/llm/invoke.mjs.map +1 -1
  371. package/dist/esm/llm/mistral/index.mjs.map +1 -1
  372. package/dist/esm/llm/openai/index.mjs +0 -99
  373. package/dist/esm/llm/openai/index.mjs.map +1 -1
  374. package/dist/esm/llm/openai/streamMetadata.mjs +0 -21
  375. package/dist/esm/llm/openai/streamMetadata.mjs.map +1 -1
  376. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  377. package/dist/esm/llm/openrouter/index.mjs +0 -1
  378. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  379. package/dist/esm/llm/openrouter/toolCache.mjs +0 -6
  380. package/dist/esm/llm/openrouter/toolCache.mjs.map +1 -1
  381. package/dist/esm/llm/preempt.mjs +0 -75
  382. package/dist/esm/llm/preempt.mjs.map +1 -1
  383. package/dist/esm/llm/providers.mjs.map +1 -1
  384. package/dist/esm/llm/request.mjs +0 -10
  385. package/dist/esm/llm/request.mjs.map +1 -1
  386. package/dist/esm/llm/stream/chunkAdapters.mjs +0 -62
  387. package/dist/esm/llm/stream/chunkAdapters.mjs.map +1 -1
  388. package/dist/esm/llm/stream/smoother.mjs +0 -58
  389. package/dist/esm/llm/stream/smoother.mjs.map +1 -1
  390. package/dist/esm/llm/streamLimits.mjs +4 -293
  391. package/dist/esm/llm/streamLimits.mjs.map +1 -1
  392. package/dist/esm/llm/truncation.mjs +0 -36
  393. package/dist/esm/llm/truncation.mjs.map +1 -1
  394. package/dist/esm/llm/vertexai/index.mjs +0 -330
  395. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  396. package/dist/esm/messages/alternation.mjs +0 -43
  397. package/dist/esm/messages/alternation.mjs.map +1 -1
  398. package/dist/esm/messages/anthropicToolCache.mjs +0 -45
  399. package/dist/esm/messages/anthropicToolCache.mjs.map +1 -1
  400. package/dist/esm/messages/assistantPhase.mjs +0 -12
  401. package/dist/esm/messages/assistantPhase.mjs.map +1 -1
  402. package/dist/esm/messages/budget.mjs +0 -9
  403. package/dist/esm/messages/budget.mjs.map +1 -1
  404. package/dist/esm/messages/cache.mjs +0 -172
  405. package/dist/esm/messages/cache.mjs.map +1 -1
  406. package/dist/esm/messages/content.mjs +0 -9
  407. package/dist/esm/messages/content.mjs.map +1 -1
  408. package/dist/esm/messages/contextPruning.mjs +0 -15
  409. package/dist/esm/messages/contextPruning.mjs.map +1 -1
  410. package/dist/esm/messages/contextPruningSettings.mjs +0 -3
  411. package/dist/esm/messages/contextPruningSettings.mjs.map +1 -1
  412. package/dist/esm/messages/core.mjs +0 -48
  413. package/dist/esm/messages/core.mjs.map +1 -1
  414. package/dist/esm/messages/format.mjs +1 -345
  415. package/dist/esm/messages/format.mjs.map +1 -1
  416. package/dist/esm/messages/handoffCue.mjs +0 -36
  417. package/dist/esm/messages/handoffCue.mjs.map +1 -1
  418. package/dist/esm/messages/ids.mjs.map +1 -1
  419. package/dist/esm/messages/injected.mjs +0 -33
  420. package/dist/esm/messages/injected.mjs.map +1 -1
  421. package/dist/esm/messages/langchain.mjs +0 -14
  422. package/dist/esm/messages/langchain.mjs.map +1 -1
  423. package/dist/esm/messages/prune.mjs +1 -184
  424. package/dist/esm/messages/prune.mjs.map +1 -1
  425. package/dist/esm/messages/recency.mjs +0 -32
  426. package/dist/esm/messages/recency.mjs.map +1 -1
  427. package/dist/esm/messages/reducer.mjs +0 -30
  428. package/dist/esm/messages/reducer.mjs.map +1 -1
  429. package/dist/esm/messages/tools.mjs +0 -14
  430. package/dist/esm/messages/tools.mjs.map +1 -1
  431. package/dist/esm/openai/index.mjs.map +1 -1
  432. package/dist/esm/prompts/activityLabel.mjs +9 -79
  433. package/dist/esm/prompts/activityLabel.mjs.map +1 -1
  434. package/dist/esm/responses/index.mjs.map +1 -1
  435. package/dist/esm/run.mjs +2 -538
  436. package/dist/esm/run.mjs.map +1 -1
  437. package/dist/esm/session/AgentSession.mjs +1 -17
  438. package/dist/esm/session/AgentSession.mjs.map +1 -1
  439. package/dist/esm/session/JsonlSessionStore.mjs.map +1 -1
  440. package/dist/esm/session/handlers.mjs +0 -7
  441. package/dist/esm/session/handlers.mjs.map +1 -1
  442. package/dist/esm/session/ids.mjs.map +1 -1
  443. package/dist/esm/session/messageSerialization.mjs +0 -4
  444. package/dist/esm/session/messageSerialization.mjs.map +1 -1
  445. package/dist/esm/stream.mjs +1 -93
  446. package/dist/esm/stream.mjs.map +1 -1
  447. package/dist/esm/summarization/index.mjs +0 -27
  448. package/dist/esm/summarization/index.mjs.map +1 -1
  449. package/dist/esm/summarization/node.mjs +0 -273
  450. package/dist/esm/summarization/node.mjs.map +1 -1
  451. package/dist/esm/tools/BashExecutor.mjs +0 -35
  452. package/dist/esm/tools/BashExecutor.mjs.map +1 -1
  453. package/dist/esm/tools/BashProgrammaticToolCalling.mjs +0 -24
  454. package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
  455. package/dist/esm/tools/Calculator.mjs.map +1 -1
  456. package/dist/esm/tools/CodeExecutor.mjs +0 -13
  457. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  458. package/dist/esm/tools/CodeSessionFileSummary.mjs.map +1 -1
  459. package/dist/esm/tools/ProgrammaticToolCalling.mjs +0 -101
  460. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  461. package/dist/esm/tools/ReadFile.mjs.map +1 -1
  462. package/dist/esm/tools/SkillTool.mjs +0 -5
  463. package/dist/esm/tools/SkillTool.mjs.map +1 -1
  464. package/dist/esm/tools/SubagentTool.mjs +0 -10
  465. package/dist/esm/tools/SubagentTool.mjs.map +1 -1
  466. package/dist/esm/tools/ToolNode.mjs +6 -1038
  467. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  468. package/dist/esm/tools/ToolSearch.mjs +0 -179
  469. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  470. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs.map +1 -1
  471. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs.map +1 -1
  472. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs +0 -39
  473. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs.map +1 -1
  474. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs.map +1 -1
  475. package/dist/esm/tools/eagerEventExecution.mjs +0 -6
  476. package/dist/esm/tools/eagerEventExecution.mjs.map +1 -1
  477. package/dist/esm/tools/handlers.mjs +1 -41
  478. package/dist/esm/tools/handlers.mjs.map +1 -1
  479. package/dist/esm/tools/intentArg.mjs +1 -132
  480. package/dist/esm/tools/intentArg.mjs.map +1 -1
  481. package/dist/esm/tools/local/CompileCheckTool.mjs +0 -25
  482. package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -1
  483. package/dist/esm/tools/local/FileCheckpointer.mjs +0 -23
  484. package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -1
  485. package/dist/esm/tools/local/LocalCodingTools.mjs +0 -80
  486. package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -1
  487. package/dist/esm/tools/local/LocalExecutionEngine.mjs +0 -126
  488. package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -1
  489. package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -1
  490. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +0 -12
  491. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
  492. package/dist/esm/tools/local/attachments.mjs +0 -44
  493. package/dist/esm/tools/local/attachments.mjs.map +1 -1
  494. package/dist/esm/tools/local/bashAst.mjs +0 -16
  495. package/dist/esm/tools/local/bashAst.mjs.map +1 -1
  496. package/dist/esm/tools/local/editStrategies.mjs +0 -14
  497. package/dist/esm/tools/local/editStrategies.mjs.map +1 -1
  498. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
  499. package/dist/esm/tools/local/syntaxCheck.mjs +0 -31
  500. package/dist/esm/tools/local/syntaxCheck.mjs.map +1 -1
  501. package/dist/esm/tools/local/textEncoding.mjs +0 -11
  502. package/dist/esm/tools/local/textEncoding.mjs.map +1 -1
  503. package/dist/esm/tools/local/workspaceFS.mjs +0 -33
  504. package/dist/esm/tools/local/workspaceFS.mjs.map +1 -1
  505. package/dist/esm/tools/ptcTimeout.mjs.map +1 -1
  506. package/dist/esm/tools/schema.mjs +0 -8
  507. package/dist/esm/tools/schema.mjs.map +1 -1
  508. package/dist/esm/tools/search/anthropic.mjs +0 -9
  509. package/dist/esm/tools/search/anthropic.mjs.map +1 -1
  510. package/dist/esm/tools/search/content.mjs.map +1 -1
  511. package/dist/esm/tools/search/crw-scraper.mjs +0 -33
  512. package/dist/esm/tools/search/crw-scraper.mjs.map +1 -1
  513. package/dist/esm/tools/search/crw-search.mjs +0 -2
  514. package/dist/esm/tools/search/crw-search.mjs.map +1 -1
  515. package/dist/esm/tools/search/firecrawl.mjs +0 -25
  516. package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
  517. package/dist/esm/tools/search/format.mjs +0 -30
  518. package/dist/esm/tools/search/format.mjs.map +1 -1
  519. package/dist/esm/tools/search/highlights.mjs +0 -16
  520. package/dist/esm/tools/search/highlights.mjs.map +1 -1
  521. package/dist/esm/tools/search/keenable-scraper.mjs +0 -8
  522. package/dist/esm/tools/search/keenable-scraper.mjs.map +1 -1
  523. package/dist/esm/tools/search/keenable-search.mjs +0 -7
  524. package/dist/esm/tools/search/keenable-search.mjs.map +1 -1
  525. package/dist/esm/tools/search/rerankers.mjs +0 -35
  526. package/dist/esm/tools/search/rerankers.mjs.map +1 -1
  527. package/dist/esm/tools/search/schema.mjs +0 -1
  528. package/dist/esm/tools/search/schema.mjs.map +1 -1
  529. package/dist/esm/tools/search/search.mjs +1 -14
  530. package/dist/esm/tools/search/search.mjs.map +1 -1
  531. package/dist/esm/tools/search/serper-scraper.mjs +0 -46
  532. package/dist/esm/tools/search/serper-scraper.mjs.map +1 -1
  533. package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -1
  534. package/dist/esm/tools/search/tavily-search.mjs.map +1 -1
  535. package/dist/esm/tools/search/tool.mjs +0 -25
  536. package/dist/esm/tools/search/tool.mjs.map +1 -1
  537. package/dist/esm/tools/search/utils.mjs +0 -8
  538. package/dist/esm/tools/search/utils.mjs.map +1 -1
  539. package/dist/esm/tools/skillCatalog.mjs +0 -6
  540. package/dist/esm/tools/skillCatalog.mjs.map +1 -1
  541. package/dist/esm/tools/streamedToolCallSeals.mjs +0 -6
  542. package/dist/esm/tools/streamedToolCallSeals.mjs.map +1 -1
  543. package/dist/esm/tools/subagent/SubagentExecutionRegistry.mjs +0 -2
  544. package/dist/esm/tools/subagent/SubagentExecutionRegistry.mjs.map +1 -1
  545. package/dist/esm/tools/subagent/SubagentExecutor.mjs +3 -213
  546. package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
  547. package/dist/esm/tools/subagent/SubagentReplay.mjs.map +1 -1
  548. package/dist/esm/tools/subagent/childGraphConfig.mjs +0 -4
  549. package/dist/esm/tools/subagent/childGraphConfig.mjs.map +1 -1
  550. package/dist/esm/tools/subagent/runtimeLimits.mjs.map +1 -1
  551. package/dist/esm/tools/toolOutputReferences.mjs +1 -322
  552. package/dist/esm/tools/toolOutputReferences.mjs.map +1 -1
  553. package/dist/esm/types/hitl.mjs +0 -5
  554. package/dist/esm/types/hitl.mjs.map +1 -1
  555. package/dist/esm/utils/callbacks.mjs.map +1 -1
  556. package/dist/esm/utils/errors.mjs +14 -165
  557. package/dist/esm/utils/errors.mjs.map +1 -1
  558. package/dist/esm/utils/events.mjs +0 -10
  559. package/dist/esm/utils/events.mjs.map +1 -1
  560. package/dist/esm/utils/graph.mjs.map +1 -1
  561. package/dist/esm/utils/handlers.mjs +0 -3
  562. package/dist/esm/utils/handlers.mjs.map +1 -1
  563. package/dist/esm/utils/llm.mjs +0 -1
  564. package/dist/esm/utils/llm.mjs.map +1 -1
  565. package/dist/esm/utils/misc.mjs +0 -16
  566. package/dist/esm/utils/misc.mjs.map +1 -1
  567. package/dist/esm/utils/proxy.mjs +0 -26
  568. package/dist/esm/utils/proxy.mjs.map +1 -1
  569. package/dist/esm/utils/run.mjs +0 -6
  570. package/dist/esm/utils/run.mjs.map +1 -1
  571. package/dist/esm/utils/schema.mjs +0 -5
  572. package/dist/esm/utils/schema.mjs.map +1 -1
  573. package/dist/esm/utils/title.mjs +0 -6
  574. package/dist/esm/utils/title.mjs.map +1 -1
  575. package/dist/esm/utils/tokens.mjs +0 -113
  576. package/dist/esm/utils/tokens.mjs.map +1 -1
  577. package/dist/esm/utils/toolContent.mjs +0 -41
  578. package/dist/esm/utils/toolContent.mjs.map +1 -1
  579. package/dist/esm/utils/truncation.mjs +0 -61
  580. package/dist/esm/utils/truncation.mjs.map +1 -1
  581. package/dist/types/agents/AgentContext.d.ts +3 -3
  582. package/dist/types/agents/__tests__/promptCacheLiveHelpers.d.ts +3 -3
  583. package/dist/types/agents/projection.d.ts +1 -1
  584. package/dist/types/events.d.ts +2 -2
  585. package/dist/types/graphs/Graph.d.ts +11 -11
  586. package/dist/types/graphs/MultiAgentGraph.d.ts +2 -2
  587. package/dist/types/graphs/createGraph.d.ts +4 -4
  588. package/dist/types/graphs/graphFactory.d.ts +1 -1
  589. package/dist/types/hitl/askUserQuestion.d.ts +1 -1
  590. package/dist/types/hitl/askUserQuestions.d.ts +1 -1
  591. package/dist/types/hitl/askUserQuestionsInterrupt.d.ts +1 -1
  592. package/dist/types/hooks/types.d.ts +1 -1
  593. package/dist/types/instrumentation.d.ts +1 -1
  594. package/dist/types/langfuse.d.ts +3 -3
  595. package/dist/types/langfuseConfig.d.ts +2 -2
  596. package/dist/types/langfuseRuntimeContext.d.ts +1 -1
  597. package/dist/types/langfuseRuntimeScope.d.ts +2 -2
  598. package/dist/types/langfuseSpanRegistry.d.ts +1 -1
  599. package/dist/types/langfuseToolOutputTracing.d.ts +3 -3
  600. package/dist/types/llm/anthropic/index.d.ts +1 -1
  601. package/dist/types/llm/bedrock/index.d.ts +1 -1
  602. package/dist/types/llm/bedrock/toolCache.d.ts +2 -2
  603. package/dist/types/llm/contextOverflowRecovery.d.ts +2 -2
  604. package/dist/types/llm/google/index.d.ts +1 -1
  605. package/dist/types/llm/init.d.ts +2 -2
  606. package/dist/types/llm/invoke.d.ts +6 -6
  607. package/dist/types/llm/mistral/index.d.ts +1 -1
  608. package/dist/types/llm/openai/index.d.ts +2 -2
  609. package/dist/types/llm/openrouter/index.d.ts +2 -2
  610. package/dist/types/llm/openrouter/toolCache.d.ts +2 -2
  611. package/dist/types/llm/providers.d.ts +2 -2
  612. package/dist/types/llm/request.d.ts +2 -2
  613. package/dist/types/llm/stream/chunkAdapters.d.ts +1 -1
  614. package/dist/types/llm/streamLimits.d.ts +1 -1
  615. package/dist/types/llm/truncation.d.ts +1 -1
  616. package/dist/types/llm/vertexai/index.d.ts +1 -1
  617. package/dist/types/messages/alternation.d.ts +1 -1
  618. package/dist/types/messages/anthropicToolCache.d.ts +2 -2
  619. package/dist/types/messages/assistantPhase.d.ts +3 -3
  620. package/dist/types/messages/budget.d.ts +1 -1
  621. package/dist/types/messages/cache.d.ts +1 -1
  622. package/dist/types/messages/contextPruning.d.ts +2 -2
  623. package/dist/types/messages/core.d.ts +2 -2
  624. package/dist/types/messages/format.d.ts +2 -2
  625. package/dist/types/messages/ids.d.ts +2 -2
  626. package/dist/types/messages/injected.d.ts +1 -1
  627. package/dist/types/messages/langchain.d.ts +1 -1
  628. package/dist/types/messages/prune.d.ts +3 -3
  629. package/dist/types/openai/index.d.ts +1 -1
  630. package/dist/types/prompts/activityLabel.d.ts +2 -2
  631. package/dist/types/responses/index.d.ts +1 -1
  632. package/dist/types/run.d.ts +3 -3
  633. package/dist/types/session/handlers.d.ts +1 -1
  634. package/dist/types/session/types.d.ts +1 -1
  635. package/dist/types/stream.d.ts +4 -4
  636. package/dist/types/summarization/index.d.ts +1 -1
  637. package/dist/types/summarization/node.d.ts +6 -6
  638. package/dist/types/test/mockTools.d.ts +1 -1
  639. package/dist/types/tools/BashExecutor.d.ts +2 -2
  640. package/dist/types/tools/BashProgrammaticToolCalling.d.ts +2 -2
  641. package/dist/types/tools/CodeExecutor.d.ts +3 -3
  642. package/dist/types/tools/CodeSessionFileSummary.d.ts +1 -1
  643. package/dist/types/tools/ProgrammaticToolCalling.d.ts +2 -2
  644. package/dist/types/tools/ReadFile.d.ts +1 -1
  645. package/dist/types/tools/SkillTool.d.ts +1 -1
  646. package/dist/types/tools/SubagentTool.d.ts +3 -3
  647. package/dist/types/tools/ToolNode.d.ts +5 -5
  648. package/dist/types/tools/ToolSearch.d.ts +2 -2
  649. package/dist/types/tools/cloudflare/CloudflareBridgeRuntime.d.ts +1 -1
  650. package/dist/types/tools/cloudflare/CloudflareProgrammaticToolCalling.d.ts +1 -1
  651. package/dist/types/tools/cloudflare/CloudflareSandboxExecutionEngine.d.ts +2 -2
  652. package/dist/types/tools/cloudflare/CloudflareSandboxTools.d.ts +1 -1
  653. package/dist/types/tools/eagerEventExecution.d.ts +1 -1
  654. package/dist/types/tools/handlers.d.ts +3 -3
  655. package/dist/types/tools/intentArg.d.ts +1 -1
  656. package/dist/types/tools/local/CompileCheckTool.d.ts +2 -2
  657. package/dist/types/tools/local/FileCheckpointer.d.ts +1 -1
  658. package/dist/types/tools/local/LocalCodingTools.d.ts +2 -2
  659. package/dist/types/tools/local/LocalExecutionEngine.d.ts +1 -1
  660. package/dist/types/tools/local/LocalExecutionTools.d.ts +1 -1
  661. package/dist/types/tools/local/LocalProgrammaticToolCalling.d.ts +1 -1
  662. package/dist/types/tools/local/bashAst.d.ts +1 -1
  663. package/dist/types/tools/local/resolveLocalExecutionTools.d.ts +1 -1
  664. package/dist/types/tools/local/syntaxCheck.d.ts +1 -1
  665. package/dist/types/tools/ptcTimeout.d.ts +1 -1
  666. package/dist/types/tools/schema.d.ts +1 -1
  667. package/dist/types/tools/search/anthropic.d.ts +1 -1
  668. package/dist/types/tools/skillCatalog.d.ts +1 -1
  669. package/dist/types/tools/subagent/SubagentExecutor.d.ts +5 -5
  670. package/dist/types/tools/subagent/SubagentReplay.d.ts +3 -3
  671. package/dist/types/tools/subagent/childGraphConfig.d.ts +2 -2
  672. package/dist/types/types/activityLabel.d.ts +3 -3
  673. package/dist/types/types/graph.d.ts +7 -7
  674. package/dist/types/types/llm.d.ts +9 -9
  675. package/dist/types/types/run.d.ts +7 -7
  676. package/dist/types/types/stream.d.ts +5 -5
  677. package/dist/types/types/summarize.d.ts +2 -2
  678. package/dist/types/types/tools.d.ts +5 -5
  679. package/dist/types/utils/__tests__/fixtures/contextOverflowSignatures.d.ts +1 -1
  680. package/dist/types/utils/errors.d.ts +1 -1
  681. package/dist/types/utils/events.d.ts +1 -1
  682. package/dist/types/utils/handlers.d.ts +3 -3
  683. package/dist/types/utils/llm.d.ts +1 -1
  684. package/dist/types/utils/llmConfig.d.ts +1 -1
  685. package/dist/types/utils/title.d.ts +1 -1
  686. package/package.json +10 -3
  687. package/src/llm/google/utils/common.ts +6 -4
  688. package/src/__tests__/stream.eagerArgsDivergence.test.ts +0 -911
  689. package/src/__tests__/stream.eagerEventExecution.test.ts +0 -5046
  690. package/src/__tests__/stream.streamLimits.test.ts +0 -1982
  691. package/src/agents/__tests__/AgentContext.anthropic.live.test.ts +0 -448
  692. package/src/agents/__tests__/AgentContext.bedrock.live.test.ts +0 -655
  693. package/src/agents/__tests__/AgentContext.openrouter.live.test.ts +0 -128
  694. package/src/agents/__tests__/AgentContext.overflow.test.ts +0 -205
  695. package/src/agents/__tests__/AgentContext.test.ts +0 -2425
  696. package/src/agents/__tests__/projection.test.ts +0 -73
  697. package/src/agents/__tests__/promptCacheLiveHelpers.ts +0 -175
  698. package/src/aggregator.test.ts +0 -1214
  699. package/src/graphs/__tests__/Graph.breakerLifecycle.test.ts +0 -273
  700. package/src/graphs/__tests__/Graph.closeRunStep.test.ts +0 -385
  701. package/src/graphs/__tests__/Graph.contextOverflow.test.ts +0 -1766
  702. package/src/graphs/__tests__/Graph.preemptSignal.test.ts +0 -126
  703. package/src/graphs/__tests__/Graph.reasoning.test.ts +0 -1717
  704. package/src/graphs/__tests__/Graph.subagentResumeState.test.ts +0 -80
  705. package/src/graphs/__tests__/MultiAgentGraph.test.ts +0 -177
  706. package/src/graphs/__tests__/composition.smoke.test.ts +0 -509
  707. package/src/graphs/__tests__/createGraph.test.ts +0 -206
  708. package/src/hooks/__tests__/HookRegistry.test.ts +0 -334
  709. package/src/hooks/__tests__/compactHooks.test.ts +0 -250
  710. package/src/hooks/__tests__/createToolPolicyHook.test.ts +0 -268
  711. package/src/hooks/__tests__/createWorkspacePolicyHook.test.ts +0 -405
  712. package/src/hooks/__tests__/executeHooks.test.ts +0 -1294
  713. package/src/hooks/__tests__/integration.test.ts +0 -337
  714. package/src/hooks/__tests__/matchers.test.ts +0 -238
  715. package/src/hooks/__tests__/preemptBoundary.test.ts +0 -152
  716. package/src/hooks/__tests__/toolHooks.test.ts +0 -669
  717. package/src/llm/__tests__/contextOverflowRecovery.test.ts +0 -401
  718. package/src/llm/__tests__/fallbackOverflow.test.ts +0 -287
  719. package/src/llm/anthropic/Jacob_Lee_Resume_2023.pdf +0 -0
  720. package/src/llm/anthropic/inherited-content-utils.spec.ts +0 -249
  721. package/src/llm/anthropic/inherited-stream-events.spec.ts +0 -1259
  722. package/src/llm/anthropic/inherited-strict.spec.ts +0 -302
  723. package/src/llm/anthropic/llm.spec.ts +0 -3394
  724. package/src/llm/anthropic/utils/cross-provider-reasoning.test.ts +0 -383
  725. package/src/llm/anthropic/utils/cross-provider-server-tools.test.ts +0 -110
  726. package/src/llm/anthropic/utils/server-tool-inputs.test.ts +0 -508
  727. package/src/llm/anthropic/utils/streaming-tool-input.test.ts +0 -361
  728. package/src/llm/anthropic/utils/stripPrefillCache.test.ts +0 -111
  729. package/src/llm/anthropic/utils/tool-id-normalization.test.ts +0 -287
  730. package/src/llm/bedrock/inherited-cache.spec.ts +0 -144
  731. package/src/llm/bedrock/inherited.spec.ts +0 -724
  732. package/src/llm/bedrock/llm.spec.ts +0 -1533
  733. package/src/llm/bedrock/streamSealDispatch.test.ts +0 -331
  734. package/src/llm/bedrock/toolCache.test.ts +0 -194
  735. package/src/llm/bedrock/utils/cross-provider-reasoning.test.ts +0 -131
  736. package/src/llm/bedrock/utils/cross-provider-server-tools.test.ts +0 -122
  737. package/src/llm/bedrock/utils/message_inputs.test.ts +0 -650
  738. package/src/llm/bedrock/utils/message_outputs.test.ts +0 -85
  739. package/src/llm/bedrock/utils/toolResultCachePoint.test.ts +0 -118
  740. package/src/llm/custom-chat-models.smoke.test.ts +0 -1966
  741. package/src/llm/google/data/gettysburg10.wav +0 -0
  742. package/src/llm/google/data/hotdog.jpg +0 -0
  743. package/src/llm/google/inherited-stream-events.spec.ts +0 -350
  744. package/src/llm/google/llm.spec.ts +0 -1388
  745. package/src/llm/google/streamSmoothing.test.ts +0 -121
  746. package/src/llm/google/utils/common.test.ts +0 -185
  747. package/src/llm/invoke.alternation.test.ts +0 -87
  748. package/src/llm/invoke.handoffCue.test.ts +0 -112
  749. package/src/llm/invoke.streamLimits.test.ts +0 -142
  750. package/src/llm/invoke.test.ts +0 -1198
  751. package/src/llm/mistral/streamSmoothing.test.ts +0 -97
  752. package/src/llm/openai/cacheWriteTokens.test.ts +0 -112
  753. package/src/llm/openai/contentBlocks.test.ts +0 -381
  754. package/src/llm/openai/deepseek.test.ts +0 -747
  755. package/src/llm/openai/inherited-deepseek.spec.ts +0 -347
  756. package/src/llm/openai/inherited-xai.spec.ts +0 -416
  757. package/src/llm/openai/llm.spec.ts +0 -1774
  758. package/src/llm/openai/managedRequests.test.ts +0 -182
  759. package/src/llm/openai/sequentialToolCallSeals.test.ts +0 -199
  760. package/src/llm/openai/streamMetadata.spec.ts +0 -86
  761. package/src/llm/openai/streamMetadataDedup.spec.ts +0 -166
  762. package/src/llm/openai/utils/isReasoningModel.test.ts +0 -90
  763. package/src/llm/openai/utils/messages.test.ts +0 -488
  764. package/src/llm/openrouter/reasoning.test.ts +0 -561
  765. package/src/llm/openrouter/toolCache.test.ts +0 -134
  766. package/src/llm/preempt.test.ts +0 -323
  767. package/src/llm/stream/chunkAdapters.test.ts +0 -202
  768. package/src/llm/stream/reassembly.test.ts +0 -241
  769. package/src/llm/stream/smoother.bench.test.ts +0 -155
  770. package/src/llm/stream/smoother.test.ts +0 -519
  771. package/src/llm/streamLimits.test.ts +0 -450
  772. package/src/llm/truncation.test.ts +0 -242
  773. package/src/llm/vertexai/fixThoughtSignatures.test.ts +0 -154
  774. package/src/llm/vertexai/inherited-stream-events.spec.ts +0 -271
  775. package/src/llm/vertexai/llm.spec.ts +0 -159
  776. package/src/llm/vertexai/repairUsageMetadata.test.ts +0 -54
  777. package/src/llm/vertexai/sealStreamedToolCalls.test.ts +0 -88
  778. package/src/llm/vertexai/streamSealDispatch.test.ts +0 -148
  779. package/src/llm/vertexai/streamSmoothing.test.ts +0 -109
  780. package/src/messages/__tests__/anthropicToolCache.test.ts +0 -339
  781. package/src/messages/__tests__/observationMasking.test.ts +0 -312
  782. package/src/messages/__tests__/recency.test.ts +0 -267
  783. package/src/messages/__tests__/tools.test.ts +0 -473
  784. package/src/messages/alternation.test.ts +0 -212
  785. package/src/messages/assistantPhase.test.ts +0 -75
  786. package/src/messages/cache.tail.test.ts +0 -533
  787. package/src/messages/cache.test.ts +0 -2166
  788. package/src/messages/content.test.ts +0 -362
  789. package/src/messages/contextPruning.test.ts +0 -184
  790. package/src/messages/ensureThinkingBlock.test.ts +0 -1427
  791. package/src/messages/foldToollessToolBlocks.test.ts +0 -596
  792. package/src/messages/formatAgentMessages.reducer.test.ts +0 -162
  793. package/src/messages/formatAgentMessages.skills.test.ts +0 -513
  794. package/src/messages/formatAgentMessages.steer.test.ts +0 -598
  795. package/src/messages/formatAgentMessages.test.ts +0 -8111
  796. package/src/messages/formatAgentMessages.tools.test.ts +0 -522
  797. package/src/messages/formatMessage.test.ts +0 -693
  798. package/src/messages/handoffCue.test.ts +0 -96
  799. package/src/messages/injected.test.ts +0 -107
  800. package/src/messages/labelContentByAgent.test.ts +0 -962
  801. package/src/messages/reducer.spec.ts +0 -32
  802. package/src/messages/shiftIndexTokenCountMap.test.ts +0 -81
  803. package/src/messages/tailCacheConversion.test.ts +0 -161
  804. package/src/openai/__tests__/openai.test.ts +0 -337
  805. package/src/responses/__tests__/responses.test.ts +0 -652
  806. package/src/scripts/abort.ts +0 -157
  807. package/src/scripts/activity-labels/captured.json +0 -56
  808. package/src/scripts/activity-labels/checks.cjs +0 -205
  809. package/src/scripts/activity-labels/corpus.cjs +0 -473
  810. package/src/scripts/activity-labels/report.cjs +0 -203
  811. package/src/scripts/activity-labels/rescore.cjs +0 -102
  812. package/src/scripts/activity-labels/run.ts +0 -705
  813. package/src/scripts/activity-labels/variants.ts +0 -71
  814. package/src/scripts/ant_web_search.ts +0 -159
  815. package/src/scripts/ant_web_search_edge_case.ts +0 -163
  816. package/src/scripts/ant_web_search_error_edge_case.ts +0 -149
  817. package/src/scripts/args.ts +0 -48
  818. package/src/scripts/bedrock-cache-debug.ts +0 -250
  819. package/src/scripts/bedrock-content-aggregation-test.ts +0 -266
  820. package/src/scripts/bedrock-merge-test.ts +0 -107
  821. package/src/scripts/bedrock-parallel-tools-test.ts +0 -204
  822. package/src/scripts/bench-prompt-cache.ts +0 -479
  823. package/src/scripts/caching.ts +0 -132
  824. package/src/scripts/cli.ts +0 -172
  825. package/src/scripts/cli2.ts +0 -133
  826. package/src/scripts/cli3.ts +0 -184
  827. package/src/scripts/cli4.ts +0 -191
  828. package/src/scripts/cli5.ts +0 -191
  829. package/src/scripts/code_exec.ts +0 -214
  830. package/src/scripts/code_exec_files.ts +0 -237
  831. package/src/scripts/code_exec_multi_session.ts +0 -237
  832. package/src/scripts/code_exec_ptc.ts +0 -335
  833. package/src/scripts/code_exec_session.ts +0 -283
  834. package/src/scripts/code_exec_simple.ts +0 -148
  835. package/src/scripts/compare_pi_vs_ours.ts +0 -1259
  836. package/src/scripts/content.ts +0 -139
  837. package/src/scripts/context-overflow-probe.ts +0 -997
  838. package/src/scripts/empty_input.ts +0 -137
  839. package/src/scripts/handoff-test.ts +0 -134
  840. package/src/scripts/local_engine.ts +0 -166
  841. package/src/scripts/local_engine_checkpointer.ts +0 -205
  842. package/src/scripts/local_engine_compile.ts +0 -263
  843. package/src/scripts/local_engine_hooks.ts +0 -226
  844. package/src/scripts/local_engine_image.ts +0 -201
  845. package/src/scripts/local_engine_ptc.ts +0 -151
  846. package/src/scripts/local_engine_workspace.ts +0 -258
  847. package/src/scripts/memory.ts +0 -107
  848. package/src/scripts/multi-agent-chain.ts +0 -332
  849. package/src/scripts/multi-agent-conditional.ts +0 -222
  850. package/src/scripts/multi-agent-document-review-chain.ts +0 -198
  851. package/src/scripts/multi-agent-hybrid-flow.ts +0 -311
  852. package/src/scripts/multi-agent-parallel-start.ts +0 -265
  853. package/src/scripts/multi-agent-parallel.ts +0 -395
  854. package/src/scripts/multi-agent-sequence.ts +0 -217
  855. package/src/scripts/multi-agent-subagent.ts +0 -246
  856. package/src/scripts/multi-agent-supervisor.ts +0 -366
  857. package/src/scripts/multi-agent-test.ts +0 -187
  858. package/src/scripts/openrouter_prompt_cache_live.ts +0 -310
  859. package/src/scripts/parallel-asymmetric-tools-test.ts +0 -275
  860. package/src/scripts/parallel-full-metadata-test.ts +0 -241
  861. package/src/scripts/parallel-tools-test.ts +0 -341
  862. package/src/scripts/preempt-probe.ts +0 -330
  863. package/src/scripts/preempt-scenarios.ts +0 -388
  864. package/src/scripts/programmatic_exec.ts +0 -387
  865. package/src/scripts/programmatic_exec_agent.ts +0 -232
  866. package/src/scripts/search.ts +0 -147
  867. package/src/scripts/sequential-full-metadata-test.ts +0 -198
  868. package/src/scripts/session_live.ts +0 -548
  869. package/src/scripts/simple.ts +0 -226
  870. package/src/scripts/single-agent-metadata-test.ts +0 -196
  871. package/src/scripts/stream.ts +0 -141
  872. package/src/scripts/subagent-configurable-inheritance.ts +0 -252
  873. package/src/scripts/subagent-event-driven-debug.ts +0 -190
  874. package/src/scripts/subagent-tools-debug.ts +0 -160
  875. package/src/scripts/subagent-usage-sink.ts +0 -176
  876. package/src/scripts/summarization-recency.ts +0 -462
  877. package/src/scripts/test-custom-prompt-key.ts +0 -145
  878. package/src/scripts/test-handoff-input.ts +0 -170
  879. package/src/scripts/test-handoff-preamble.ts +0 -278
  880. package/src/scripts/test-handoff-steering.ts +0 -430
  881. package/src/scripts/test-multi-agent-list-handoff.ts +0 -418
  882. package/src/scripts/test-parallel-agent-labeling.ts +0 -327
  883. package/src/scripts/test-parallel-handoffs.ts +0 -292
  884. package/src/scripts/test-thinking-handoff-bedrock.ts +0 -154
  885. package/src/scripts/test-thinking-handoff.ts +0 -156
  886. package/src/scripts/test-thinking-to-thinking-handoff-bedrock.ts +0 -166
  887. package/src/scripts/test-tool-before-handoff-role-order.ts +0 -276
  888. package/src/scripts/test-tools-before-handoff.ts +0 -222
  889. package/src/scripts/test_code_api.ts +0 -354
  890. package/src/scripts/thinking-bedrock.ts +0 -160
  891. package/src/scripts/thinking-vertexai.ts +0 -168
  892. package/src/scripts/thinking.ts +0 -172
  893. package/src/scripts/tool_search.ts +0 -153
  894. package/src/scripts/tools.ts +0 -163
  895. package/src/session/__tests__/JsonlSessionStore.test.ts +0 -1463
  896. package/src/session/__tests__/handlers.test.ts +0 -161
  897. package/src/specs/activity-label-observability.live.test.ts +0 -262
  898. package/src/specs/activity-label-observability.test.ts +0 -167
  899. package/src/specs/activity-label-prompt.test.ts +0 -359
  900. package/src/specs/activity-label-trace-seed.test.ts +0 -47
  901. package/src/specs/activity-phase-label.test.ts +0 -306
  902. package/src/specs/agent-handoffs.live.test.ts +0 -140
  903. package/src/specs/agent-handoffs.test.ts +0 -2465
  904. package/src/specs/anthropic.simple.test.ts +0 -453
  905. package/src/specs/ask-user-question-batch.test.ts +0 -289
  906. package/src/specs/ask-user-questions.live.test.ts +0 -185
  907. package/src/specs/ask-user-questions.test.ts +0 -293
  908. package/src/specs/azure.simple.test.ts +0 -502
  909. package/src/specs/bedrock-toolless.live.test.ts +0 -123
  910. package/src/specs/bedrock-truncation.live.test.ts +0 -191
  911. package/src/specs/cache.simple.test.ts +0 -416
  912. package/src/specs/context-accuracy.live.test.ts +0 -409
  913. package/src/specs/context-overflow-recovery.live.test.ts +0 -213
  914. package/src/specs/context-usage-event.test.ts +0 -117
  915. package/src/specs/context-usage.live.test.ts +0 -297
  916. package/src/specs/custom-event-await.test.ts +0 -304
  917. package/src/specs/deepseek.simple.test.ts +0 -290
  918. package/src/specs/deterministic-trace-id.test.ts +0 -43
  919. package/src/specs/discovered-tools.test.ts +0 -217
  920. package/src/specs/durability-checkpoint.integration.test.ts +0 -243
  921. package/src/specs/graph-subagent.live.test.ts +0 -242
  922. package/src/specs/graph-subagent.test.ts +0 -322
  923. package/src/specs/handoffCue.test.ts +0 -165
  924. package/src/specs/langfuse-callbacks.test.ts +0 -1578
  925. package/src/specs/langfuse-config.test.ts +0 -247
  926. package/src/specs/langfuse-instrumentation.test.ts +0 -393
  927. package/src/specs/langfuse-metadata.test.ts +0 -245
  928. package/src/specs/langfuse-routing.integration.test.ts +0 -844
  929. package/src/specs/langfuse-runtime-context.test.ts +0 -92
  930. package/src/specs/langfuse-span-registry.test.ts +0 -87
  931. package/src/specs/langfuse-tool-output-tracing.test.ts +0 -1858
  932. package/src/specs/langfuse-trace-shaping.test.ts +0 -591
  933. package/src/specs/moonshot.simple.test.ts +0 -367
  934. package/src/specs/multi-agent-summarization.test.ts +0 -396
  935. package/src/specs/openai.simple.test.ts +0 -315
  936. package/src/specs/openrouter.simple.test.ts +0 -275
  937. package/src/specs/preemptSeal.test.ts +0 -678
  938. package/src/specs/prune.test.ts +0 -3741
  939. package/src/specs/reasoning.test.ts +0 -201
  940. package/src/specs/run-step-timestamps.test.ts +0 -414
  941. package/src/specs/spec.utils.ts +0 -15
  942. package/src/specs/subagent.test.ts +0 -864
  943. package/src/specs/summarization-unit.test.ts +0 -973
  944. package/src/specs/summarization.test.ts +0 -3823
  945. package/src/specs/summarize-prune.test.ts +0 -376
  946. package/src/specs/thinking-handoff.test.ts +0 -621
  947. package/src/specs/thinking-prune.test.ts +0 -827
  948. package/src/specs/token-accounting-e2e.test.ts +0 -1034
  949. package/src/specs/token-accounting-pipeline.test.ts +0 -1008
  950. package/src/specs/token-distribution-edge-case.test.ts +0 -315
  951. package/src/specs/token-memoization.test.ts +0 -40
  952. package/src/specs/tokens.test.ts +0 -1000
  953. package/src/specs/tool-error-resume.test.ts +0 -194
  954. package/src/specs/tool-error.test.ts +0 -198
  955. package/src/specs/vllm-reasoning-toolcalls.test.ts +0 -340
  956. package/src/stream.dispatch.test.ts +0 -63
  957. package/src/stream.test.ts +0 -144
  958. package/src/summarization/__tests__/aggregator.test.ts +0 -236
  959. package/src/summarization/__tests__/node.test.ts +0 -1996
  960. package/src/summarization/__tests__/trigger.test.ts +0 -149
  961. package/src/summarization/chunkHandler.test.ts +0 -196
  962. package/src/test/mockTools.ts +0 -386
  963. package/src/tools/Calculator.test.ts +0 -278
  964. package/src/tools/__tests__/BashExecutor.test.ts +0 -108
  965. package/src/tools/__tests__/CloudflareSandboxExecution.test.ts +0 -939
  966. package/src/tools/__tests__/CodeApiAuthHeaders.test.ts +0 -858
  967. package/src/tools/__tests__/CodeExecutor.stateful.test.ts +0 -124
  968. package/src/tools/__tests__/LocalExecutionRoots.test.ts +0 -8
  969. package/src/tools/__tests__/LocalExecutionTools.test.ts +0 -2733
  970. package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.ts +0 -318
  971. package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +0 -1557
  972. package/src/tools/__tests__/ReadFile.test.ts +0 -44
  973. package/src/tools/__tests__/SkillTool.test.ts +0 -442
  974. package/src/tools/__tests__/SubagentExecutor.test.ts +0 -3728
  975. package/src/tools/__tests__/SubagentReplay.test.ts +0 -329
  976. package/src/tools/__tests__/SubagentTool.test.ts +0 -149
  977. package/src/tools/__tests__/ToolNode.breakerSignal.test.ts +0 -595
  978. package/src/tools/__tests__/ToolNode.eagerEventExecution.test.ts +0 -1191
  979. package/src/tools/__tests__/ToolNode.invalidToolCalls.test.ts +0 -757
  980. package/src/tools/__tests__/ToolNode.langfuse.test.ts +0 -57
  981. package/src/tools/__tests__/ToolNode.onResultCompletion.test.ts +0 -736
  982. package/src/tools/__tests__/ToolNode.outputReferences.test.ts +0 -1710
  983. package/src/tools/__tests__/ToolNode.runtimeState.test.ts +0 -120
  984. package/src/tools/__tests__/ToolNode.session.test.ts +0 -1352
  985. package/src/tools/__tests__/ToolNode.streamLimits.test.ts +0 -69
  986. package/src/tools/__tests__/ToolSearch.integration.test.ts +0 -161
  987. package/src/tools/__tests__/ToolSearch.test.ts +0 -1227
  988. package/src/tools/__tests__/annotateMessagesForLLM.test.ts +0 -561
  989. package/src/tools/__tests__/directToolHITLResumeScope.test.ts +0 -980
  990. package/src/tools/__tests__/directToolHooks.test.ts +0 -700
  991. package/src/tools/__tests__/eagerEventExecution.session.test.ts +0 -92
  992. package/src/tools/__tests__/handlers.test.ts +0 -997
  993. package/src/tools/__tests__/hitl.test.ts +0 -4663
  994. package/src/tools/__tests__/intentArg.test.ts +0 -357
  995. package/src/tools/__tests__/intentCoverage.test.ts +0 -139
  996. package/src/tools/__tests__/localToolNames.test.ts +0 -75
  997. package/src/tools/__tests__/skillCatalog.test.ts +0 -161
  998. package/src/tools/__tests__/subagentHooks.test.ts +0 -1651
  999. package/src/tools/__tests__/toolOutputReferences.test.ts +0 -515
  1000. package/src/tools/__tests__/workspaceSeam.test.ts +0 -147
  1001. package/src/tools/local/__tests__/FileCheckpointer.test.ts +0 -162
  1002. package/src/tools/local/__tests__/editStrategies.test.ts +0 -134
  1003. package/src/tools/search/content.test.ts +0 -173
  1004. package/src/tools/search/crw.test.ts +0 -836
  1005. package/src/tools/search/format.test.ts +0 -242
  1006. package/src/tools/search/http-agent.test.ts +0 -133
  1007. package/src/tools/search/jina-reranker.test.ts +0 -306
  1008. package/src/tools/search/keenable-scraper.test.ts +0 -153
  1009. package/src/tools/search/keenable.test.ts +0 -183
  1010. package/src/tools/search/outcome.test.ts +0 -90
  1011. package/src/tools/search/output.md +0 -2775
  1012. package/src/tools/search/rag-api-reranker.test.ts +0 -891
  1013. package/src/tools/search/source-processing.test.ts +0 -516
  1014. package/src/tools/search/tavily.test.ts +0 -965
  1015. package/src/tools/search/test.html +0 -884
  1016. package/src/tools/search/test.md +0 -643
  1017. package/src/tools/subagent/__tests__/SubagentExecutionRegistry.test.ts +0 -637
  1018. package/src/tools/subagent/__tests__/SubagentExecutor.lazy.test.ts +0 -3054
  1019. package/src/tools/subagent/__tests__/childGraphConfig.test.ts +0 -521
  1020. package/src/utils/__tests__/apportion.test.ts +0 -32
  1021. package/src/utils/__tests__/errors.test.ts +0 -270
  1022. package/src/utils/__tests__/fixtures/contextOverflowSignatures.ts +0 -336
  1023. package/src/utils/__tests__/redactSecrets.test.ts +0 -56
  1024. package/src/utils/__tests__/truncation.test.ts +0 -66
  1025. package/src/utils/llm.test.ts +0 -18
  1026. package/src/utils/proxy.test.ts +0 -176
  1027. package/src/utils/toolContent.test.ts +0 -1432
@@ -1 +1 @@
1
- {"version":3,"file":"stream.cjs","names":["LOCAL_CODING_BUNDLE_NAMES","TOOL_OUTPUT_REF_PATTERN","CODE_EXECUTION_TOOLS","getStreamedToolCallAdapter","getStreamedToolCallSeal","getMessageId","getMessageCreationContentMetadata","buildToolExecutionRequestPlan","composeAbortSignals","safeDispatchCustomEvent","normalizeError","calculateMaxToolResultChars","truncateToolResultContent","serializeStructuredValueBounded","resolveToolOutcome","outcomeFieldsFromResult","serializeToolContentBounded","coerceRecordArgs","isGoogleLike","STREAM_LIMIT_EPOCH_KEY","StreamLimitExceededError","requiresStreamLimitAccounting","claimStreamLimitCharge","combineCompleteToolCalls","handleServerToolResult","handleToolCalls","streamedToolCallAdapterAllowsSequentialSeal","handleToolCallChunks","splitAssistantTextContentByPhase","completeData"],"sources":["../../src/stream.ts"],"sourcesContent":["// src/stream.ts\nimport type { ToolCall, ToolCallChunk } from '@langchain/core/messages/tool';\nimport type { ChatOpenAIReasoningSummary } from '@langchain/openai';\nimport type { AIMessageChunk } from '@langchain/core/messages';\nimport type { AgentContext } from '@/agents/AgentContext';\nimport type { RunBreakerScope } from '@/llm/streamLimits';\nimport type { StandardGraph } from '@/graphs';\nimport type * as t from '@/types';\nimport {\n claimStreamLimitCharge,\n combineCompleteToolCalls,\n enforceCompleteToolCallArgLimit,\n enforceStreamedToolCallArgLimit,\n enforceStreamDeltaEventLimit,\n requiresStreamLimitAccounting,\n StreamLimitExceededError,\n STREAM_LIMIT_EPOCH_KEY,\n} from '@/llm/streamLimits';\nimport {\n getStreamedToolCallSeal,\n getStreamedToolCallAdapter,\n streamedToolCallAdapterAllowsSequentialSeal,\n type StreamedToolCallSeal,\n} from '@/tools/streamedToolCallSeals';\nimport {\n ToolCallTypes,\n ContentTypes,\n GraphEvents,\n StepTypes,\n Providers,\n Constants,\n CODE_EXECUTION_TOOLS,\n LOCAL_CODING_BUNDLE_NAMES,\n} from '@/common';\nimport {\n getMessageCreationContentMetadata,\n splitAssistantTextContentByPhase,\n} from '@/messages/assistantPhase';\nimport {\n buildToolExecutionRequestPlan,\n coerceRecordArgs,\n normalizeError,\n} from '@/tools/eagerEventExecution';\nimport {\n serializeStructuredValueBounded,\n serializeToolContentBounded,\n} from '@/utils/toolContent';\nimport {\n handleServerToolResult,\n handleToolCallChunks,\n handleToolCalls,\n} from '@/tools/handlers';\nimport {\n calculateMaxToolResultChars,\n truncateToolResultContent,\n} from '@/utils/truncation';\nimport { resolveToolOutcome, outcomeFieldsFromResult } from '@/tools/intentArg';\nimport { TOOL_OUTPUT_REF_PATTERN } from '@/tools/toolOutputReferences';\nimport { safeDispatchCustomEvent } from '@/utils/events';\nimport { composeAbortSignals } from '@/utils/misc';\nimport { isGoogleLike } from '@/utils/llm';\nimport { getMessageId } from '@/messages';\n\nconst LOCAL_CODING_BUNDLE_NAME_SET: ReadonlySet<string> = new Set(\n LOCAL_CODING_BUNDLE_NAMES\n);\n\ntype ReasoningSummaryLike = {\n summary?: Array<{ text?: string }>;\n};\n\n/**\n * Parses content to extract thinking sections enclosed in <think> tags using string operations\n * @param content The content to parse\n * @returns An object with separated text and thinking content\n */\nfunction parseThinkingContent(content: string): {\n text: string;\n thinking: string;\n} {\n // If no think tags, return the original content as text\n if (!content.includes('<think>')) {\n return { text: content, thinking: '' };\n }\n\n let textResult = '';\n const thinkingResult: string[] = [];\n let position = 0;\n\n while (position < content.length) {\n const thinkStart = content.indexOf('<think>', position);\n\n if (thinkStart === -1) {\n // No more think tags, add the rest and break\n textResult += content.slice(position);\n break;\n }\n\n // Add text before the think tag\n textResult += content.slice(position, thinkStart);\n\n const thinkEnd = content.indexOf('</think>', thinkStart);\n if (thinkEnd === -1) {\n // Malformed input, no closing tag\n textResult += content.slice(thinkStart);\n break;\n }\n\n // Add the thinking content\n const thinkContent = content.slice(thinkStart + 7, thinkEnd);\n thinkingResult.push(thinkContent);\n\n // Move position to after the think tag\n position = thinkEnd + 8; // 8 is the length of '</think>'\n }\n\n return {\n text: textResult.trim(),\n thinking: thinkingResult.join('\\n').trim(),\n };\n}\n\nfunction getNonEmptyValue(possibleValues: string[]): string | undefined {\n for (const value of possibleValues) {\n if (value && value.trim() !== '') {\n return value;\n }\n }\n return undefined;\n}\n\nfunction isBatchSensitiveToolExecution(\n graph: StandardGraph,\n metadata?: Record<string, unknown>\n): boolean {\n /**\n * Resolve the hook-session id exactly the way ToolNode will: its hook\n * lookups read `config.configurable.run_id` ONLY, so that source wins here\n * too (a subagent child graph carries its own `graph.runId`, but its\n * ToolNode executes hooks under the PARENT's inherited configurable run\n * id). The metadata / graph.runId fallbacks only apply when no\n * configurable id exists and can only be conservative — a false positive\n * merely skips eager prestart.\n */\n const runId =\n (graph.config?.configurable?.run_id as string | undefined) ??\n (metadata?.run_id as string | undefined) ??\n graph.runId;\n return (\n graph.hookRegistry?.hasResultAlteringHooks(runId) === true ||\n graph.humanInTheLoop?.enabled === true\n );\n}\n\nfunction hasToolOutputReference(value: unknown): boolean {\n if (typeof value === 'string') {\n return TOOL_OUTPUT_REF_PATTERN.test(value);\n }\n if (Array.isArray(value)) {\n return value.some((item) => hasToolOutputReference(item));\n }\n if (value !== null && typeof value === 'object') {\n return Object.values(value as Record<string, unknown>).some((item) =>\n hasToolOutputReference(item)\n );\n }\n return false;\n}\n\nfunction isEagerExecutionExcludedTool(\n name: string,\n graph: StandardGraph\n): boolean {\n if (name === '') {\n return false;\n }\n const excluded = graph.eagerEventToolExecution?.excludeToolNames;\n if (excluded != null && excluded.includes(name)) {\n return true;\n }\n // Run-scoped circuit breaker: once a prestart for this tool diverged from\n // the final request (\"changed after eager execution started\"), stop\n // prestarting it so the model's retry executes normally instead of\n // re-diverging in a loop (LibreChat#14371).\n if (\n (graph.eagerEventToolSuppressions as Set<string> | undefined)?.has(name) ===\n true\n ) {\n return true;\n }\n // A code-session participant writes to the shared sandbox, so it is\n // side-effecting: never prestart it speculatively (a revised/superseded turn\n // would leave the write applied). Implies exclusion without the host having\n // to also list the name in excludeToolNames.\n if (graph.codeSessionToolNames?.includes(name) === true) {\n return true;\n }\n // With stateful sessions on, execute_code/bash run against a DURABLE warm\n // runtime. Speculative prestart there is unsafe: if the model revises the\n // args, ToolNode discards the eager result but the mutation has already\n // landed in the session workspace, corrupting later runs. Stateless mode\n // uses a throwaway VM per call, so eager prestart stays safe there.\n return (\n graph.toolExecution?.sandbox?.statefulSessions === true &&\n CODE_EXECUTION_TOOLS.has(name)\n );\n}\n\nfunction isDirectGraphTool(\n name: string,\n agentContext: AgentContext | undefined\n): boolean {\n if (name.startsWith(Constants.LC_TRANSFER_TO_)) {\n return true;\n }\n return (\n (agentContext?.graphTools as t.GenericTool[] | undefined)?.some(\n (tool) => 'name' in tool && tool.name === name\n ) === true\n );\n}\n\nfunction isDirectLocalTool(name: string, graph: StandardGraph): boolean {\n const toolExecution = graph.toolExecution;\n const engine = toolExecution?.engine;\n if (\n toolExecution == null ||\n (engine !== 'local' && engine !== 'cloudflare-sandbox')\n ) {\n return false;\n }\n const includeCodingTools =\n engine === 'cloudflare-sandbox'\n ? toolExecution.cloudflare?.includeCodingTools\n : toolExecution.local?.includeCodingTools;\n if (includeCodingTools === false) {\n return CODE_EXECUTION_TOOLS.has(name);\n }\n return LOCAL_CODING_BUNDLE_NAME_SET.has(name);\n}\n\nfunction toCodeEnvFile(file: t.FileRef, execSessionId: string): t.CodeEnvFile {\n const base = {\n id: file.id,\n resource_id: file.resource_id ?? file.id,\n name: file.name,\n storage_session_id: file.storage_session_id ?? execSessionId,\n };\n const kind = file.kind ?? 'user';\n if (kind === 'skill' && file.version != null) {\n return { ...base, kind: 'skill', version: file.version };\n }\n if (kind === 'agent') {\n return { ...base, kind: 'agent' };\n }\n return { ...base, kind: 'user' };\n}\n\nfunction getCodeSessionContext(\n graph: StandardGraph,\n name: string\n): t.ToolCallRequest['codeSessionContext'] | undefined {\n if (\n !CODE_EXECUTION_TOOLS.has(name) &&\n name !== Constants.SKILL_TOOL &&\n name !== Constants.READ_FILE &&\n graph.codeSessionToolNames?.includes(name) !== true\n ) {\n return undefined;\n }\n\n const codeSession = graph.sessions.get(Constants.EXECUTE_CODE) as\n | t.CodeSessionContext\n | undefined;\n if (codeSession?.session_id == null || codeSession.session_id === '') {\n return undefined;\n }\n\n return {\n session_id: codeSession.session_id,\n files: codeSession.files?.map((file) =>\n toCodeEnvFile(file, codeSession.session_id)\n ),\n };\n}\n\nfunction isEagerToolExecutionEnabledForBatch(args: {\n graph: StandardGraph;\n metadata?: Record<string, unknown>;\n agentContext?: AgentContext;\n}): boolean {\n const { graph, metadata, agentContext } = args;\n if (graph.eagerEventToolExecution?.enabled !== true) {\n return false;\n }\n if ((agentContext?.toolDefinitions?.length ?? 0) === 0) {\n return false;\n }\n if (isBatchSensitiveToolExecution(graph, metadata)) {\n return false;\n }\n if (\n metadata?.[Constants.PROGRAMMATIC_TOOL_CALLING] === true ||\n metadata?.[Constants.BASH_PROGRAMMATIC_TOOL_CALLING] === true\n ) {\n return false;\n }\n if (\n graph.handlerRegistry?.getHandler(GraphEvents.ON_TOOL_EXECUTE) == null &&\n graph.eventToolExecutionAvailable !== true\n ) {\n return false;\n }\n return true;\n}\n\nfunction hasFinalToolCallSignal(chunk: Partial<AIMessageChunk>): boolean {\n const metadata = chunk.response_metadata as\n | Record<string, unknown>\n | undefined;\n const finishReason =\n metadata?.finish_reason ??\n metadata?.finishReason ??\n metadata?.stop_reason ??\n metadata?.stopReason;\n return finishReason === 'tool_calls' || finishReason === 'tool_use';\n}\n\nfunction canPrestartSequentialStreamedToolChunks(\n agentContext: AgentContext | undefined\n): boolean {\n // Anthropic seals each prior streamed tool-use block when the next indexed\n // tool-use block begins. Live Kimi/Moonshot streams can still revise prior\n // args after advancing to the next index, so keep those on the final\n // tool-call path unless they grow an explicit adapter seal.\n return agentContext?.provider === Providers.ANTHROPIC;\n}\n\nfunction hasExplicitStreamedToolCallSeals(\n chunk: Partial<AIMessageChunk>\n): boolean {\n return (\n getStreamedToolCallAdapter(\n chunk.response_metadata as Record<string, unknown> | undefined\n ) != null\n );\n}\n\n/**\n * True when a provider adapter marked every tool call on this chunk as\n * complete on arrival (seal kind `all`), e.g. Google GenAI / Vertex AI, whose\n * protocol delivers function calls as whole objects rather than arg deltas.\n */\nfunction hasOnArrivalToolCallSeal(chunk: Partial<AIMessageChunk>): boolean {\n const metadata = chunk.response_metadata as\n | Record<string, unknown>\n | undefined;\n return (\n getStreamedToolCallAdapter(metadata) != null &&\n getStreamedToolCallSeal(metadata)?.kind === 'all'\n );\n}\n\nfunction hasDirectToolCallInBatch(args: {\n graph: StandardGraph;\n agentContext?: AgentContext;\n toolCalls: ToolCall[];\n}): boolean {\n const { graph, agentContext, toolCalls } = args;\n return toolCalls.some(\n (toolCall) =>\n toolCall.name !== '' &&\n (isDirectGraphTool(toolCall.name, agentContext) ||\n isDirectLocalTool(toolCall.name, graph))\n );\n}\n\nfunction hasPotentialDirectToolInStreamContext(args: {\n graph: StandardGraph;\n agentContext?: AgentContext;\n}): boolean {\n const { graph, agentContext } = args;\n const engine = graph.toolExecution?.engine;\n if (engine === 'local' || engine === 'cloudflare-sandbox') {\n return true;\n }\n if ((agentContext?.graphTools?.length ?? 0) > 0) {\n return true;\n }\n return false;\n}\n\nfunction hasDirectToolCallChunkInBatch(args: {\n graph: StandardGraph;\n agentContext?: AgentContext;\n toolCallChunks?: ToolCallChunk[];\n}): boolean {\n const { graph, agentContext, toolCallChunks } = args;\n return (\n toolCallChunks?.some(\n (toolCallChunk) =>\n toolCallChunk.name != null &&\n toolCallChunk.name !== '' &&\n (isDirectGraphTool(toolCallChunk.name, agentContext) ||\n isDirectLocalTool(toolCallChunk.name, graph))\n ) === true\n );\n}\n\nfunction hasDirectToolCallChunkStateInStep(args: {\n graph: StandardGraph;\n agentContext?: AgentContext;\n stepKey: string;\n}): boolean {\n const { graph, agentContext, stepKey } = args;\n const prefix = `${stepKey}\\u0000`;\n for (const [key, state] of graph.eagerEventToolCallChunks) {\n if (!key.startsWith(prefix)) {\n continue;\n }\n const name = state.name;\n if (\n name != null &&\n name !== '' &&\n (isDirectGraphTool(name, agentContext) || isDirectLocalTool(name, graph))\n ) {\n return true;\n }\n }\n return false;\n}\n\nfunction isGoogleServerSideToolContentPart(\n contentPart: t.MessageContentComplex\n): boolean {\n return contentPart.type === 'toolCall' || contentPart.type === 'toolResponse';\n}\n\nfunction isTextContentPart(contentPart: t.MessageContentComplex): boolean {\n return contentPart.type?.startsWith(ContentTypes.TEXT) ?? false;\n}\n\nfunction isReasoningContentPart(contentPart: t.MessageContentComplex): boolean {\n return (\n (contentPart.type?.startsWith(ContentTypes.THINKING) ?? false) ||\n (contentPart.type?.startsWith(ContentTypes.REASONING) ?? false) ||\n (contentPart.type?.startsWith(ContentTypes.REASONING_CONTENT) ?? false) ||\n contentPart.type === 'redacted_thinking'\n );\n}\n\nfunction getReasoningTextFromContentPart(\n contentPart: t.MessageContentComplex\n): string {\n return (\n (contentPart as t.ThinkingContentText).thinking ??\n (contentPart as Partial<t.GoogleReasoningContentText>).reasoning ??\n (contentPart as Partial<t.BedrockReasoningContentText>).reasoningText\n ?.text ??\n ''\n );\n}\n\nfunction getReasoningTextFromChunk(\n chunk: Partial<AIMessageChunk>,\n agentContext: AgentContext\n): string {\n const reasoning = chunk.additional_kwargs?.[agentContext.reasoningKey] as\n | string\n | Partial<ChatOpenAIReasoningSummary>\n | undefined;\n if (typeof reasoning === 'string') {\n return reasoning;\n }\n return reasoning?.summary?.[0]?.text ?? '';\n}\n\nconst googleServerSideToolStepIdsByGraph = new WeakMap<\n StandardGraph,\n Set<string>\n>();\n\nfunction markGoogleServerSideToolMessageStep(\n graph: StandardGraph,\n stepId: string\n): void {\n const stepIds = googleServerSideToolStepIdsByGraph.get(graph) ?? new Set();\n stepIds.add(stepId);\n googleServerSideToolStepIdsByGraph.set(graph, stepIds);\n}\n\nfunction isGoogleServerSideToolMessageStep(\n graph: StandardGraph,\n stepId: string\n): boolean {\n return googleServerSideToolStepIdsByGraph.get(graph)?.has(stepId) === true;\n}\n\nfunction shouldStartFreshMessageStepAfterGoogleServerSideTool({\n graph,\n stepId,\n runStep,\n content,\n}: {\n graph: StandardGraph;\n stepId: string;\n runStep?: t.RunStep;\n content: string | t.MessageContentComplex[];\n}): boolean {\n if (\n runStep?.type !== StepTypes.MESSAGE_CREATION ||\n !isGoogleServerSideToolMessageStep(graph, stepId)\n ) {\n return false;\n }\n if (typeof content === 'string') {\n return true;\n }\n return (\n content.every((c) => isTextContentPart(c)) ||\n content.every((c) => isReasoningContentPart(c))\n );\n}\n\nasync function dispatchMessageCreationStep({\n graph,\n stepKey,\n content,\n contentType,\n metadata,\n}: {\n graph: StandardGraph;\n stepKey: string;\n content?: string | t.MessageContentComplex[];\n contentType?: ContentTypes.TEXT | ContentTypes.THINK;\n metadata?: Record<string, unknown>;\n}): Promise<string> {\n const messageId = getMessageId(stepKey, graph, true) ?? '';\n return graph.dispatchRunStep(\n stepKey,\n {\n type: StepTypes.MESSAGE_CREATION,\n message_creation: {\n message_id: messageId,\n ...getMessageCreationContentMetadata(content, contentType),\n },\n },\n metadata\n );\n}\n\nasync function dispatchMessageContentParts({\n graph,\n stepKey,\n content,\n metadata,\n}: {\n graph: StandardGraph;\n stepKey: string;\n content: t.MessageContentComplex[];\n metadata?: Record<string, unknown>;\n}): Promise<void> {\n for (const contentPart of content) {\n const currentStepId = await dispatchMessageCreationStep({\n graph,\n stepKey,\n content: [contentPart],\n metadata,\n });\n if (isGoogleServerSideToolContentPart(contentPart)) {\n markGoogleServerSideToolMessageStep(graph, currentStepId);\n }\n await graph.dispatchMessageDelta(\n currentStepId,\n {\n content: [contentPart],\n },\n metadata\n );\n }\n}\n\nasync function dispatchReasoningContentParts({\n graph,\n stepKey,\n content,\n metadata,\n}: {\n graph: StandardGraph;\n stepKey: string;\n content: t.MessageContentComplex[];\n metadata?: Record<string, unknown>;\n}): Promise<void> {\n if (content.length === 0) {\n return;\n }\n const currentStepId = await dispatchMessageCreationStep({\n graph,\n stepKey,\n content,\n contentType: ContentTypes.THINK,\n metadata,\n });\n await graph.dispatchReasoningDelta(\n currentStepId,\n {\n content,\n },\n metadata\n );\n}\n\nasync function dispatchGoogleServerSideToolStreamContent({\n graph,\n stepKey,\n chunk,\n agentContext,\n content,\n metadata,\n}: {\n graph: StandardGraph;\n stepKey: string;\n chunk: Partial<AIMessageChunk>;\n agentContext: AgentContext;\n content: t.MessageContentComplex[];\n metadata?: Record<string, unknown>;\n}): Promise<void> {\n const reasoningContent: t.MessageContentComplex[] = [];\n const reasoningText = getReasoningTextFromChunk(chunk, agentContext);\n if (reasoningText !== '') {\n reasoningContent.push({\n type: ContentTypes.THINK,\n think: reasoningText,\n });\n }\n reasoningContent.push(\n ...content\n .filter((contentPart) => isReasoningContentPart(contentPart))\n .map((contentPart) => ({\n type: ContentTypes.THINK,\n think: getReasoningTextFromContentPart(contentPart),\n }))\n .filter((contentPart) => contentPart.think !== '')\n );\n await dispatchReasoningContentParts({\n graph,\n stepKey,\n content: reasoningContent,\n metadata,\n });\n\n const messageContent = content.filter(\n (contentPart) =>\n isTextContentPart(contentPart) ||\n isGoogleServerSideToolContentPart(contentPart)\n );\n await dispatchMessageContentParts({\n graph,\n stepKey,\n content: messageContent,\n metadata,\n });\n}\n\ntype EagerToolExecutionEntry = {\n id: string;\n toolName: string;\n coercedArgs: Record<string, unknown>;\n request: t.ToolCallRequest;\n};\n\nfunction createEagerToolExecutionPlan(args: {\n graph: StandardGraph;\n metadata?: Record<string, unknown>;\n agentContext?: AgentContext;\n toolCalls: ToolCall[];\n skipExisting?: boolean;\n}): EagerToolExecutionEntry[] | undefined {\n const {\n graph,\n metadata,\n agentContext,\n toolCalls,\n skipExisting = false,\n } = args;\n if (\n !isEagerToolExecutionEnabledForBatch({\n graph,\n metadata,\n agentContext,\n })\n ) {\n return undefined;\n }\n\n if (hasDirectToolCallInBatch({ graph, agentContext, toolCalls })) {\n return undefined;\n }\n if (\n graph.toolOutputReferences?.enabled === true &&\n toolCalls.some((toolCall) => hasToolOutputReference(toolCall.args))\n ) {\n return undefined;\n }\n\n const unstartedToolCalls = skipExisting\n ? toolCalls.filter((toolCall) => {\n if (toolCall.id == null || toolCall.id === '') {\n return true;\n }\n return !graph.eagerEventToolExecutions.has(toolCall.id);\n })\n : toolCalls;\n // Drop host-excluded tools only AFTER the batch-level guards above have run\n // against the full batch, so excluding a call never hides a sibling direct\n // tool from `hasDirectToolCallInBatch`. Excluded calls fall through to normal\n // ToolNode execution; siblings may still eager-execute.\n const candidateToolCalls = unstartedToolCalls.filter(\n (toolCall) => !isEagerExecutionExcludedTool(toolCall.name, graph)\n );\n if (candidateToolCalls.length === 0) {\n return [];\n }\n\n // Eager execution must preserve ToolNode batch semantics exactly for every\n // unstarted call. If any candidate cannot be planned, fall back for that\n // candidate set.\n if (\n candidateToolCalls.some(\n (toolCall) =>\n toolCall.id == null ||\n toolCall.id === '' ||\n toolCall.name === '' ||\n (!skipExisting && graph.eagerEventToolExecutions.has(toolCall.id))\n )\n ) {\n return undefined;\n }\n\n /* No runtimeSessionHint here on purpose: the eager path is speculative, and\n * code-session tools (the only ones that carry a hint) are excluded from\n * eager prestart entirely when stateful sessions are on — see\n * isEagerExecutionExcludedTool. The durable runtime is only ever touched by\n * the committed ToolNode path. */\n const plan = buildToolExecutionRequestPlan({\n toolCalls: candidateToolCalls.map((toolCall) => ({\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n stepId: graph.toolCallStepIds.get(toolCall.id!) ?? '',\n codeSessionContext: getCodeSessionContext(graph, toolCall.name),\n })),\n usageCount: graph.getEagerEventToolUsageCount(agentContext?.agentId),\n });\n if (plan == null) {\n return undefined;\n }\n\n return plan.requests.map(\n (request): EagerToolExecutionEntry => ({\n id: request.id,\n toolName: request.name,\n coercedArgs: request.args,\n request,\n })\n );\n}\n\nfunction startEagerToolExecutions(args: {\n graph: StandardGraph;\n metadata?: Record<string, unknown>;\n agentContext?: AgentContext;\n toolCalls: ToolCall[];\n skipExisting?: boolean;\n}): void {\n const { graph, metadata, agentContext, toolCalls, skipExisting } = args;\n const entries = createEagerToolExecutionPlan({\n graph,\n metadata,\n agentContext,\n toolCalls,\n skipExisting,\n });\n if (entries == null || entries.length === 0) {\n return;\n }\n\n const records: t.EagerEventToolExecution[] = [];\n const promise: Promise<t.EagerEventToolExecutionOutcome> = new Promise<\n t.ToolExecuteResult[]\n >((resolve, reject) => {\n let dispatchSettled = false;\n let resultSettled = false;\n let settledResults: t.ToolExecuteResult[] | undefined;\n const maybeResolve = (): void => {\n if (dispatchSettled && resultSettled) {\n resolve(settledResults ?? []);\n }\n };\n const batchRequest: t.ToolExecuteBatchRequest = {\n toolCalls: entries.map((entry) => entry.request),\n userId: graph.config?.configurable?.user_id as string | undefined,\n agentId: agentContext?.agentId,\n configurable: graph.config?.configurable as\n | Record<string, unknown>\n | undefined,\n metadata,\n signal: composeAbortSignals(\n graph.config?.signal,\n graph.breakerAbort.signal\n ),\n resolve: (results): void => {\n resultSettled = true;\n settledResults = results;\n maybeResolve();\n },\n reject,\n };\n\n void safeDispatchCustomEvent(\n GraphEvents.ON_TOOL_EXECUTE,\n batchRequest,\n graph.config\n )\n .then(() => {\n dispatchSettled = true;\n maybeResolve();\n })\n .catch(reject);\n }).then(\n async (results): Promise<t.EagerEventToolExecutionOutcome> => {\n await dispatchEagerToolCompletions({\n graph,\n agentContext,\n records,\n results,\n });\n return { results };\n },\n (error): t.EagerEventToolExecutionOutcome => ({\n error: normalizeError(error),\n })\n );\n\n for (const entry of entries) {\n const record: t.EagerEventToolExecution = {\n toolCallId: entry.id,\n toolName: entry.toolName,\n args: entry.coercedArgs,\n request: entry.request,\n promise,\n };\n records.push(record);\n graph.eagerEventToolExecutions.set(entry.id, record);\n }\n}\n\nasync function dispatchEagerToolCompletions(args: {\n graph: StandardGraph;\n agentContext?: AgentContext;\n records: t.EagerEventToolExecution[];\n results: t.ToolExecuteResult[];\n}): Promise<void> {\n const { graph, agentContext, records, results } = args;\n const recordById = new Map(\n records.map((record) => [record.toolCallId, record])\n );\n const maxToolResultChars =\n agentContext?.maxToolResultChars ??\n calculateMaxToolResultChars(agentContext?.maxContextTokens);\n\n for (const result of results) {\n const record = recordById.get(result.toolCallId);\n if (record == null) {\n continue;\n }\n if (graph.eagerEventToolExecutions.get(result.toolCallId) !== record) {\n continue;\n }\n const stepId =\n record.request.stepId ??\n graph.toolCallStepIds.get(result.toolCallId) ??\n '';\n if (stepId === '') {\n continue;\n }\n let output: string;\n if (result.status === 'error') {\n output = truncateToolResultContent(\n `Error: ${result.errorMessage ?? 'Unknown error'}\\n Please fix your mistakes.`,\n maxToolResultChars\n );\n } else if (typeof result.content === 'string') {\n output = truncateToolResultContent(result.content, maxToolResultChars);\n } else {\n output = serializeStructuredValueBounded(\n result.content,\n maxToolResultChars\n ).content;\n }\n const outcome = resolveToolOutcome(\n record.request.args,\n outcomeFieldsFromResult(result),\n { isError: result.status === 'error' }\n );\n\n try {\n const dispatched = await safeDispatchCustomEvent(\n GraphEvents.ON_RUN_STEP_COMPLETED,\n {\n result: {\n id: stepId,\n index: record.request.turn ?? 0,\n type: 'tool_call' as const,\n eager: true,\n tool_call: {\n args: serializeToolContentBounded(\n record.request.args,\n maxToolResultChars\n ),\n name: record.toolName,\n id: result.toolCallId,\n output,\n progress: 1,\n ...(outcome != null && { outcome }),\n } as t.ProcessedToolCall,\n completed_at: Date.now(),\n },\n },\n graph.config\n );\n if (dispatched === false) {\n continue;\n }\n record.completionDispatched = true;\n } catch (error) {\n // Let ToolNode dispatch the completion through the normal path later.\n\n console.warn(\n `[stream] eager completion dispatch failed for toolCallId=${result.toolCallId}:`,\n error instanceof Error ? error.message : error\n );\n }\n }\n}\n\nfunction getEagerToolChunkKey(\n stepKey: string,\n toolCallChunk: ToolCallChunk\n): string | undefined {\n let chunkKey: string | undefined;\n if (typeof toolCallChunk.index === 'number') {\n chunkKey = String(toolCallChunk.index);\n } else if (toolCallChunk.id != null && toolCallChunk.id !== '') {\n chunkKey = toolCallChunk.id;\n }\n if (chunkKey == null) {\n return undefined;\n }\n return `${stepKey}\\u0000${chunkKey}`;\n}\n\nfunction getEagerToolChunkIndex(\n toolCallChunk: ToolCallChunk\n): number | undefined {\n return typeof toolCallChunk.index === 'number'\n ? toolCallChunk.index\n : undefined;\n}\n\nfunction pruneEagerToolCallChunkStates(args: {\n graph: StandardGraph;\n stepKey: string;\n toolCallIds?: ReadonlySet<string>;\n clearStep?: boolean;\n}): void {\n const { graph, stepKey, toolCallIds, clearStep = false } = args;\n const prefix = `${stepKey}\\u0000`;\n for (const [key, state] of graph.eagerEventToolCallChunks) {\n if (!key.startsWith(prefix)) {\n continue;\n }\n if (\n clearStep ||\n (state.id != null && toolCallIds?.has(state.id) === true)\n ) {\n graph.eagerEventToolCallChunks.delete(key);\n }\n }\n}\n\nfunction isEagerToolChunkStateComplete(\n state: t.EagerEventToolCallChunkState\n): boolean {\n return (\n state.id != null &&\n state.id !== '' &&\n state.name != null &&\n state.name !== '' &&\n coerceRecordArgs(state.argsText) != null\n );\n}\n\nfunction mergeToolCallArgsText(existing: string, incoming: string): string {\n if (incoming === '') {\n return existing;\n }\n if (existing === '') {\n return incoming;\n }\n if (incoming === existing) {\n try {\n JSON.parse(incoming);\n return incoming;\n } catch {\n return `${existing}${incoming}`;\n }\n }\n if (incoming.startsWith(existing)) {\n return incoming;\n }\n if (existing.startsWith(incoming)) {\n return existing;\n }\n try {\n JSON.parse(existing);\n JSON.parse(incoming);\n return incoming;\n } catch {\n // Fall through to delta concatenation.\n }\n for (\n let overlap = Math.min(existing.length, incoming.length);\n overlap >= 8;\n overlap -= 1\n ) {\n if (existing.endsWith(incoming.slice(0, overlap))) {\n return `${existing}${incoming.slice(overlap)}`;\n }\n }\n return `${existing}${incoming}`;\n}\n\nfunction recordEagerToolCallChunks(args: {\n graph: StandardGraph;\n stepKey: string;\n toolCallChunks?: ToolCallChunk[];\n seal?: StreamedToolCallSeal;\n}): void {\n const { graph, stepKey, toolCallChunks, seal } = args;\n if (toolCallChunks == null || toolCallChunks.length === 0) {\n return;\n }\n\n // Streamed args can be cumulative and parseable before the provider has\n // sealed the call. Recording stays separate from dispatch so the boundary\n // logic can wait for either a later tool index or the final tool-call signal.\n for (const toolCallChunk of toolCallChunks) {\n const key = getEagerToolChunkKey(stepKey, toolCallChunk);\n if (key == null) {\n continue;\n }\n\n const incomingId =\n toolCallChunk.id != null && toolCallChunk.id !== ''\n ? toolCallChunk.id\n : undefined;\n const incomingName =\n toolCallChunk.name != null && toolCallChunk.name !== ''\n ? toolCallChunk.name\n : undefined;\n const previous = graph.eagerEventToolCallChunks.get(key);\n const shouldReset =\n previous != null &&\n ((incomingId != null &&\n previous.id != null &&\n incomingId !== previous.id) ||\n (incomingName != null &&\n previous.name != null &&\n incomingName !== previous.name));\n const existing =\n previous == null || shouldReset\n ? {\n argsText: '',\n }\n : previous;\n const id = incomingId ?? existing.id;\n const name = incomingName ?? existing.name;\n const incomingArgs = toolCallChunk.args ?? '';\n const isRepeatedObservedFragment =\n incomingArgs !== '' &&\n incomingArgs.length > 1 &&\n incomingArgs === existing.lastArgsFragment;\n const argsText = isRepeatedObservedFragment\n ? existing.argsText\n : mergeToolCallArgsText(existing.argsText, incomingArgs);\n const index = getEagerToolChunkIndex(toolCallChunk) ?? existing.index;\n // Only a chunk whose explicit adapter seal covers THIS call may supply a\n // full-args restatement (OpenAI Responses `arguments.done`). Pure-signal\n // seals carry empty args and never set this.\n const sealCoversChunk =\n seal != null &&\n (seal.kind === 'all' ||\n (seal.id != null && seal.id === id) ||\n (seal.index != null && seal.index === index));\n const next = {\n id,\n name,\n argsText,\n // Canonical accumulation length: LangChain concats fragments verbatim\n // to build the final request, and every reconciliation branch above\n // yields text no longer than that concat — equal exactly when every\n // merge was a pure append. Tracking the length (not the text) keeps\n // cumulative/restating streams from retaining every prefix.\n rawArgsLength: (existing.rawArgsLength ?? 0) + incomingArgs.length,\n index,\n lastArgsFragment:\n incomingArgs !== '' ? incomingArgs : existing.lastArgsFragment,\n sealedArgsFragment:\n sealCoversChunk && incomingArgs !== ''\n ? incomingArgs\n : existing.sealedArgsFragment,\n };\n graph.eagerEventToolCallChunks.set(key, next);\n }\n}\n\nfunction getStreamedReadyToolCalls(args: {\n graph: StandardGraph;\n stepKey: string;\n toolCallChunks?: ToolCallChunk[];\n seal?: StreamedToolCallSeal;\n allowSequentialSeal?: boolean;\n sealAll?: boolean;\n}): ToolCall[] {\n const {\n graph,\n stepKey,\n toolCallChunks,\n seal,\n allowSequentialSeal = false,\n sealAll = false,\n } = args;\n const currentIndices = new Set<number>();\n for (const toolCallChunk of toolCallChunks ?? []) {\n const index = getEagerToolChunkIndex(toolCallChunk);\n if (index != null) {\n currentIndices.add(index);\n }\n }\n const highestCurrentIndex =\n currentIndices.size > 0 ? Math.max(...currentIndices) : undefined;\n const prefix = `${stepKey}\\u0000`;\n const readyEntries: Array<{\n key: string;\n state: t.EagerEventToolCallChunkState;\n sealedByAdapter: boolean;\n }> = [];\n\n for (const [key, state] of graph.eagerEventToolCallChunks) {\n if (!key.startsWith(prefix)) {\n continue;\n }\n if (state.id != null && graph.eagerEventToolExecutions.has(state.id)) {\n graph.eagerEventToolCallChunks.delete(key);\n continue;\n }\n if (!isEagerToolChunkStateComplete(state)) {\n continue;\n }\n const isSealedByLaterChunk =\n allowSequentialSeal &&\n highestCurrentIndex != null &&\n state.index != null &&\n state.index < highestCurrentIndex &&\n !currentIndices.has(state.index);\n const isSealedExplicitly =\n seal?.kind === 'single' &&\n ((seal.id != null && state.id === seal.id) ||\n (seal.index != null && state.index === seal.index));\n if (\n sealAll ||\n seal?.kind === 'all' ||\n isSealedByLaterChunk ||\n isSealedExplicitly\n ) {\n readyEntries.push({\n key,\n state,\n sealedByAdapter: isSealedExplicitly || seal?.kind === 'all',\n });\n }\n }\n\n pruneEagerToolCallChunkStates({\n graph,\n stepKey,\n toolCallIds: new Set(\n readyEntries\n .map(({ state }) => state.id)\n .filter((id): id is string => id != null && id !== '')\n ),\n });\n if (sealAll) {\n pruneEagerToolCallChunkStates({ graph, stepKey, clearStep: true });\n }\n\n return readyEntries\n .sort((left, right) => (left.state.index ?? 0) - (right.state.index ?? 0))\n .flatMap(({ state, sealedByAdapter }) => {\n const args = coerceRecordArgs(state.argsText);\n if (args == null) {\n return [];\n }\n // The final request's args come from LangChain's canonical verbatim\n // concatenation of fragments, while `argsText` reconciles provider\n // quirks with lossy heuristics that can also swallow legitimately\n // repetitive payload fragments (LibreChat#14371). `argsText` can never\n // be LONGER than the plain concat, so length equality proves it IS the\n // canonical accumulation.\n const isCanonicalAccumulation =\n state.rawArgsLength != null &&\n state.argsText.length === state.rawArgsLength;\n // Adapter seals may instead restate the finished call's full args on\n // the seal chunk itself (OpenAI Responses\n // `function_call_arguments.done`). Only when the seal-carrying chunk\n // supplied that fragment AND the accumulated text IS that restatement\n // has the adapter vouched for it — plain concatenation intentionally\n // differs there. Pure-signal seals (Bedrock contentBlockStop,\n // `args: ''`) never qualify.\n const isAuthoritativeRestatement =\n sealedByAdapter &&\n state.sealedArgsFragment != null &&\n state.sealedArgsFragment === state.argsText;\n // Prestarting an unconfirmed snapshot trips the \"changed after eager\n // execution started\" guard and burns a retry loop — leave unconfirmed\n // calls to normal ToolNode execution with final args.\n if (!isCanonicalAccumulation && !isAuthoritativeRestatement) {\n return [];\n }\n return [\n {\n id: state.id,\n name: state.name ?? '',\n args,\n },\n ];\n });\n}\n\nfunction startReadyStreamedEagerToolExecutions(args: {\n graph: StandardGraph;\n metadata?: Record<string, unknown>;\n agentContext?: AgentContext;\n stepKey: string;\n toolCallChunks?: ToolCallChunk[];\n seal?: StreamedToolCallSeal;\n allowSequentialSeal?: boolean;\n sealAll?: boolean;\n}): void {\n const {\n graph,\n metadata,\n agentContext,\n stepKey,\n toolCallChunks,\n seal,\n allowSequentialSeal,\n sealAll,\n } = args;\n if (\n hasPotentialDirectToolInStreamContext({ graph, agentContext }) ||\n hasDirectToolCallChunkInBatch({ graph, agentContext, toolCallChunks }) ||\n hasDirectToolCallChunkStateInStep({ graph, agentContext, stepKey }) ||\n !isEagerToolExecutionEnabledForBatch({ graph, metadata, agentContext })\n ) {\n return;\n }\n const toolCalls = getStreamedReadyToolCalls({\n graph,\n stepKey,\n toolCallChunks,\n seal,\n allowSequentialSeal,\n sealAll,\n });\n if (toolCalls.length === 0) {\n return;\n }\n startEagerToolExecutions({\n graph,\n metadata,\n agentContext,\n toolCalls,\n skipExisting: true,\n });\n}\n\nexport function getChunkContent({\n chunk,\n provider,\n reasoningKey,\n}: {\n chunk?: Partial<AIMessageChunk>;\n provider?: Providers;\n reasoningKey: 'reasoning_content' | 'reasoning';\n}): string | t.MessageContentComplex[] | undefined {\n if (\n isGoogleLike(provider) &&\n Array.isArray(chunk?.content) &&\n chunk.content.some((c) => isGoogleServerSideToolContentPart(c))\n ) {\n return chunk.content;\n }\n\n if (\n (provider === Providers.OPENAI || provider === Providers.AZURE) &&\n (\n chunk?.additional_kwargs?.reasoning as\n | Partial<ChatOpenAIReasoningSummary>\n | undefined\n )?.summary?.[0]?.text != null &&\n ((\n chunk?.additional_kwargs?.reasoning as\n | Partial<ChatOpenAIReasoningSummary>\n | undefined\n )?.summary?.[0]?.text?.length ?? 0) > 0\n ) {\n return (\n chunk?.additional_kwargs?.reasoning as\n | Partial<ChatOpenAIReasoningSummary>\n | undefined\n )?.summary?.[0]?.text;\n }\n if (provider === Providers.OPENROUTER) {\n // Content presence signals end of reasoning phase - prefer content over reasoning\n // This handles transitional chunks that may have both reasoning and content\n if (typeof chunk?.content === 'string' && chunk.content !== '') {\n return chunk.content;\n }\n const reasoning = chunk?.additional_kwargs?.reasoning as string | undefined;\n if (reasoning != null && reasoning !== '') {\n return reasoning;\n }\n const reasoningContent = chunk?.additional_kwargs?.reasoning_content as\n | string\n | undefined;\n if (reasoningContent != null && reasoningContent !== '') {\n return reasoningContent;\n }\n return chunk?.content;\n }\n const keyedReasoning = chunk?.additional_kwargs?.[reasoningKey] as\n | string\n | undefined;\n if (\n typeof chunk?.content === 'string' &&\n chunk.content !== '' &&\n keyedReasoning != null &&\n keyedReasoning !== ''\n ) {\n return chunk.content;\n }\n return ((keyedReasoning as string | undefined) ?? '') || chunk?.content;\n}\n\nfunction isDisableStreamingEnabled(\n clientOptions: t.ClientOptions | undefined\n): boolean {\n return (\n clientOptions != null &&\n 'disableStreaming' in clientOptions &&\n clientOptions.disableStreaming === true\n );\n}\n\nfunction hasReasoningContent(\n value: string | ReasoningSummaryLike | object[] | null | undefined\n): boolean {\n if (typeof value === 'string') {\n return value !== '';\n }\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n if (value == null) {\n return false;\n }\n return (\n value.summary?.some(\n (summary) => summary.text != null && summary.text.length > 0\n ) === true\n );\n}\n\nfunction shouldDeferMixedFinalReasoningChunk({\n chunk,\n agentContext,\n}: {\n chunk: Partial<AIMessageChunk>;\n agentContext: AgentContext;\n}): boolean {\n if (\n (chunk.tool_calls?.length ?? 0) > 0 ||\n (chunk.tool_call_chunks?.length ?? 0) > 0 ||\n typeof chunk.content !== 'string' ||\n chunk.content === ''\n ) {\n return false;\n }\n const additionalKwargs = chunk.additional_kwargs;\n if (\n agentContext.provider === Providers.OPENROUTER &&\n hasReasoningContent(additionalKwargs?.reasoning_details as object[])\n ) {\n return true;\n }\n if (!isDisableStreamingEnabled(agentContext.clientOptions)) {\n return false;\n }\n return (\n hasReasoningContent(\n additionalKwargs?.[agentContext.reasoningKey] as\n | string\n | ReasoningSummaryLike\n | null\n | undefined\n ) ||\n hasReasoningContent(\n additionalKwargs?.reasoning_content as\n | string\n | ReasoningSummaryLike\n | null\n | undefined\n ) ||\n hasReasoningContent(\n additionalKwargs?.reasoning as\n | string\n | ReasoningSummaryLike\n | null\n | undefined\n ) ||\n hasReasoningContent(additionalKwargs?.reasoning_details as object[])\n );\n}\n\nfunction hasCurrentTextDeltaStep({\n graph,\n metadata,\n}: {\n graph: StandardGraph;\n metadata?: Record<string, unknown>;\n}): boolean {\n if (metadata == null) {\n return false;\n }\n const baseStepKey = graph.getStepBaseKey(metadata);\n for (const [stepKey, stepIds] of graph.stepKeyIds) {\n if (stepKey !== baseStepKey && !stepKey.startsWith(`${baseStepKey}_`)) {\n continue;\n }\n if (stepIds.some((stepId) => graph.messageStepHasTextDeltas.has(stepId))) {\n return true;\n }\n }\n return false;\n}\n\nfunction shouldSkipLateOpenRouterReasoningChunk({\n chunk,\n agentContext,\n graph,\n metadata,\n}: {\n chunk: Partial<AIMessageChunk>;\n agentContext: AgentContext;\n graph: StandardGraph;\n metadata?: Record<string, unknown>;\n}): boolean {\n if (\n agentContext.provider !== Providers.OPENROUTER ||\n (chunk.tool_calls?.length ?? 0) > 0 ||\n (chunk.tool_call_chunks?.length ?? 0) > 0 ||\n (chunk.content != null && chunk.content !== '')\n ) {\n return false;\n }\n return (\n (hasReasoningContent(chunk.additional_kwargs?.reasoning as string) ||\n hasReasoningContent(\n chunk.additional_kwargs?.reasoning_content as string\n ) ||\n hasReasoningContent(\n chunk.additional_kwargs?.reasoning_details as object[]\n )) &&\n hasCurrentTextDeltaStep({ graph, metadata })\n );\n}\n\n/**\n * Brands a handler as one that dispatches content parts for the SDK — either\n * `ChatModelStreamHandler` itself or a wrapper forwarding to one.\n *\n * Identity alone is not a usable contract here. Hosts compose and wrap\n * handlers (`composeEventHandlers`, `createRunHandlers`), and every wrapper\n * fails `instanceof` while still driving the same dispatch. A brand survives\n * wrapping, so \"does this handler own content-part dispatch\" can be answered\n * about a value the SDK did not construct.\n */\nexport const SDK_STREAM_DISPATCH = Symbol.for(\n '@librechat/agents:chatModelStreamDispatch'\n);\n\n/** True when `handler` is, or forwards to, the SDK's stream dispatcher. */\nexport function dispatchesChatModelStream(handler?: t.EventHandler): boolean {\n if (handler == null) {\n return false;\n }\n if (handler instanceof ChatModelStreamHandler) {\n return true;\n }\n return Reflect.get(handler, SDK_STREAM_DISPATCH) === true;\n}\n\nexport class ChatModelStreamHandler implements t.EventHandler {\n readonly [SDK_STREAM_DISPATCH] = true;\n\n async handle(\n event: string,\n data: t.StreamEventData,\n metadata?: Record<string, unknown>,\n graph?: StandardGraph\n ): Promise<void> {\n if (!graph) {\n throw new Error('Graph not found');\n }\n if (!graph.config) {\n throw new Error('Config not found in graph');\n }\n\n if (!data.chunk) {\n console.warn(`No chunk found in ${event} event`);\n return;\n }\n\n const chunk = data.chunk as Partial<AIMessageChunk>;\n\n /** Attempts stamp their breaker epoch into event metadata; a mismatch\n * marks a straggling chunk from a failed run that outlived\n * `resetValues()`. Dropped OUTRIGHT: content handling and the eager\n * paths below compose the LIVE controller, so acting on a dead run's\n * chunk could dispatch host tools into the run now using it. Events\n * without a stamp (direct handler callers, partial stubs) keep the\n * live-controller behavior. */\n const eventEpoch = metadata?.[STREAM_LIMIT_EPOCH_KEY];\n /** Runtime-honest widening: partial handler stubs carry neither an\n * epoch nor a run scope despite the field types. */\n const liveEpoch = graph.breakerEpoch as number | undefined;\n if (eventEpoch != null && liveEpoch != null && eventEpoch !== liveEpoch) {\n return;\n }\n const eventBreaker =\n graph.breakerAbort instanceof AbortController\n ? graph.breakerAbort\n : undefined;\n /** Immutable scope captured at handler entry. A reset while this\n * handler is suspended in an await replaces the object, so ONE\n * reference comparison proves the event still belongs to the live run\n * before anything composes `graph.breakerAbort` or `graph.config`. */\n const entryRunScope = graph.runScope as RunBreakerScope | undefined;\n const runScopeInvalidated = (): boolean =>\n entryRunScope != null && graph.runScope !== entryRunScope;\n const throwIfRunBreakerTripped = (): void => {\n if (\n eventBreaker != null &&\n eventBreaker.signal.aborted &&\n eventBreaker.signal.reason instanceof StreamLimitExceededError\n ) {\n throw eventBreaker.signal.reason;\n }\n };\n\n /**\n * Enforced before every content-specific early return below\n * (server-tool results, deferred mixed reasoning, late OpenRouter\n * reasoning): a looping provider can flood through any of those paths,\n * a coalesced event can carry client `tool_call_chunks` alongside a\n * server-tool result, and the complete-call dispatch branch further\n * down can prestart a side-effecting tool from an arrival-sealed\n * oversized call. Charging is claim-based: the producer loop and this\n * decoupled echo can observe the same chunk object in either order, and\n * only the first claimer charges it. The argument guard is\n * deliberately NOT gated on numeric chunk indices, so id-only or\n * index-less runaway streams stay bounded, and complete parsed\n * `tool_calls` without a raw chunk representation are judged standalone.\n */\n if (\n requiresStreamLimitAccounting(graph, chunk) &&\n claimStreamLimitCharge(graph, data.chunk, 'consumer', metadata)\n ) {\n try {\n enforceStreamDeltaEventLimit({ graph, metadata });\n /** Combined first so raw-chunk name correlation sees invalid calls\n * too; an unnamed raw chunk twinned with a named invalid call must\n * select that tool's override, not the global cap. */\n const completeCalls = combineCompleteToolCalls(chunk);\n if (chunk.tool_call_chunks && chunk.tool_call_chunks.length > 0) {\n enforceStreamedToolCallArgLimit({\n graph,\n metadata,\n toolCallChunks: chunk.tool_call_chunks,\n responseMetadata: chunk.response_metadata as\n | Record<string, unknown>\n | undefined,\n parsedToolCalls: completeCalls,\n });\n }\n /** Judged whenever parsed calls are present, not only when raw\n * chunks are absent — an adapter can pair an empty or partial raw\n * chunk with a complete parsed call; the standalone check is\n * stateless, so the common both-present case is not double-tallied.\n * Invalid calls are included because ToolNode processes and\n * promotes them. */\n if (completeCalls != null) {\n enforceCompleteToolCallArgLimit({\n graph,\n metadata,\n toolCalls: completeCalls,\n });\n }\n } catch (error) {\n /** A breach detected on this consumer path must still stop parallel\n * fan-out work: the producer skips its own enforcement once this\n * side has claimed the emission, so createCallModel's breaker-abort\n * never fires for it. Trip the EVENT's run-bound breaker before the\n * throw rejects the run — never the live controller of a newer run. */\n if (error instanceof StreamLimitExceededError && eventBreaker != null) {\n eventBreaker.abort(error);\n }\n throw error;\n }\n }\n\n /** A parallel producer can trip the shared breaker while this event was\n * already queued in `streamEvents`. Stop before content handling or the\n * eager-tool paths below — those can dispatch a side-effecting host\n * tool with an already-aborted signal the handler never inspects.\n * Rechecked again immediately before each eager dispatch: the awaits in\n * between (server-tool results, tool-call handling, content dispatch)\n * are windows for a sibling's trip — or for a full reset, after which\n * this event belongs to a dead run and is dropped. */\n if (runScopeInvalidated()) {\n return;\n }\n throwIfRunBreakerTripped();\n\n const agentContext = graph.getAgentContext(metadata);\n\n const content = getChunkContent({\n chunk,\n reasoningKey: agentContext.reasoningKey,\n provider: agentContext.provider,\n });\n const skipHandling = await handleServerToolResult({\n graph,\n content,\n metadata,\n agentContext,\n });\n if (skipHandling) {\n return;\n }\n if (shouldDeferMixedFinalReasoningChunk({ chunk, agentContext })) {\n return;\n }\n if (\n shouldSkipLateOpenRouterReasoningChunk({\n chunk,\n agentContext,\n graph,\n metadata,\n })\n ) {\n return;\n }\n this.handleReasoning(chunk, agentContext);\n const stepKey = graph.getStepKey(metadata);\n let hasToolCalls = false;\n const hasToolCallChunks =\n (chunk.tool_call_chunks && chunk.tool_call_chunks.length > 0) ?? false;\n const hasGoogleServerSideToolContent =\n isGoogleLike(agentContext.provider) &&\n Array.isArray(content) &&\n content.some((c) => isGoogleServerSideToolContentPart(c));\n if (hasGoogleServerSideToolContent && Array.isArray(content)) {\n await dispatchGoogleServerSideToolStreamContent({\n graph,\n stepKey,\n chunk,\n agentContext,\n content,\n metadata,\n });\n }\n\n if (\n chunk.tool_calls &&\n chunk.tool_calls.length > 0 &&\n chunk.tool_calls.every(\n (tc) =>\n tc.id != null &&\n tc.id !== '' &&\n (tc as Partial<ToolCall>).name != null &&\n tc.name !== ''\n )\n ) {\n hasToolCalls = true;\n await handleToolCalls(chunk.tool_calls, metadata, graph);\n if (runScopeInvalidated()) {\n return;\n }\n throwIfRunBreakerTripped();\n if (hasFinalToolCallSignal(chunk)) {\n startEagerToolExecutions({\n graph,\n metadata,\n agentContext,\n toolCalls: chunk.tool_calls,\n skipExisting: true,\n });\n if (!hasToolCallChunks) {\n pruneEagerToolCallChunkStates({ graph, stepKey, clearStep: true });\n }\n } else if (\n hasOnArrivalToolCallSeal(chunk) &&\n !hasPotentialDirectToolInStreamContext({ graph, agentContext })\n ) {\n // Providers like Google never signal `tool_calls`/`tool_use` as the\n // finish reason, but their adapters seal calls on arrival — prestart\n // these mid-stream under the same direct-tool guard as streamed\n // chunk sealing.\n startEagerToolExecutions({\n graph,\n metadata,\n agentContext,\n toolCalls: chunk.tool_calls,\n skipExisting: true,\n });\n }\n }\n\n const isEmptyContent =\n typeof content === 'undefined' ||\n !content.length ||\n (typeof content === 'string' && !content);\n\n /** Set a preliminary message ID if found in empty chunk */\n const isEmptyChunk = isEmptyContent && !hasToolCallChunks;\n if (\n isEmptyChunk &&\n (chunk.id ?? '') !== '' &&\n !graph.prelimMessageIdsByStepKey.has(chunk.id ?? '')\n ) {\n graph.prelimMessageIdsByStepKey.set(stepKey, chunk.id ?? '');\n } else if (isEmptyChunk) {\n return;\n }\n\n if (\n hasToolCallChunks &&\n chunk.tool_call_chunks &&\n chunk.tool_call_chunks.length &&\n typeof chunk.tool_call_chunks[0]?.index === 'number'\n ) {\n const streamedToolCallSeal = getStreamedToolCallSeal(\n chunk.response_metadata as Record<string, unknown> | undefined\n );\n const allowSequentialSeal =\n canPrestartSequentialStreamedToolChunks(agentContext) ||\n streamedToolCallAdapterAllowsSequentialSeal(\n chunk.response_metadata as Record<string, unknown> | undefined\n );\n const canStreamEager =\n (allowSequentialSeal || hasExplicitStreamedToolCallSeals(chunk)) &&\n !hasPotentialDirectToolInStreamContext({ graph, agentContext }) &&\n isEagerToolExecutionEnabledForBatch({ graph, metadata, agentContext });\n if (canStreamEager) {\n recordEagerToolCallChunks({\n graph,\n stepKey,\n toolCallChunks: chunk.tool_call_chunks,\n seal: streamedToolCallSeal,\n });\n }\n await handleToolCallChunks({\n graph,\n stepKey,\n toolCallChunks: chunk.tool_call_chunks,\n metadata,\n });\n if (canStreamEager) {\n if (runScopeInvalidated()) {\n return;\n }\n throwIfRunBreakerTripped();\n startReadyStreamedEagerToolExecutions({\n graph,\n metadata,\n agentContext,\n stepKey,\n toolCallChunks: chunk.tool_call_chunks,\n seal: streamedToolCallSeal,\n allowSequentialSeal,\n sealAll: hasFinalToolCallSignal(chunk),\n });\n }\n }\n\n if (isEmptyContent) {\n return;\n }\n\n if (hasGoogleServerSideToolContent) {\n return;\n }\n\n if (Array.isArray(content) && content.every(isTextContentPart)) {\n const contentGroups = splitAssistantTextContentByPhase(content);\n const currentStepId = graph.stepKeyIds?.get(stepKey)?.at(-1);\n const currentStep =\n currentStepId == null ? undefined : graph.getRunStep(currentStepId);\n const currentPhase =\n currentStep?.stepDetails.type === StepTypes.MESSAGE_CREATION\n ? currentStep.stepDetails.message_creation.phase\n : undefined;\n const nextPhase = getMessageCreationContentMetadata(\n contentGroups[0]\n ).phase;\n const phaseChanged =\n currentPhase != null && nextPhase != null && currentPhase !== nextPhase;\n if (contentGroups.length > 1 || phaseChanged) {\n for (const contentGroup of contentGroups) {\n const currentStepId = await dispatchMessageCreationStep({\n graph,\n stepKey,\n content: contentGroup,\n metadata,\n });\n await graph.dispatchMessageDelta(\n currentStepId,\n { content: contentGroup },\n metadata\n );\n }\n return;\n }\n }\n\n const message_id = getMessageId(stepKey, graph) ?? '';\n if (message_id) {\n const fallbackContentType =\n agentContext.currentTokenType === ContentTypes.TEXT\n ? ContentTypes.TEXT\n : ContentTypes.THINK;\n await graph.dispatchRunStep(\n stepKey,\n {\n type: StepTypes.MESSAGE_CREATION,\n message_creation: {\n message_id,\n ...getMessageCreationContentMetadata(content, fallbackContentType),\n },\n },\n metadata\n );\n }\n\n let stepId = graph.getStepIdByKey(stepKey);\n let runStep = graph.getRunStep(stepId);\n if (\n shouldStartFreshMessageStepAfterGoogleServerSideTool({\n graph,\n stepId,\n runStep,\n content,\n })\n ) {\n stepId = await dispatchMessageCreationStep({\n graph,\n stepKey,\n content,\n metadata,\n });\n runStep = graph.getRunStep(stepId);\n }\n if (!runStep) {\n console.warn(`\\n\n==============================================================\n\n\nRun step for ${stepId} does not exist, cannot dispatch delta event.\n\nevent: ${event}\nstepId: ${stepId}\nstepKey: ${stepKey}\nmessage_id: ${message_id}\nhasToolCalls: ${hasToolCalls}\nhasToolCallChunks: ${hasToolCallChunks}\n\n==============================================================\n\\n`);\n return;\n }\n\n /* Note: tool call chunks may have non-empty content that matches the current tool chunk generation */\n if (typeof content === 'string' && runStep.type === StepTypes.TOOL_CALLS) {\n return;\n } else if (\n hasToolCallChunks &&\n (chunk.tool_call_chunks?.some((tc) => tc.args === content) ?? false)\n ) {\n return;\n } else if (typeof content === 'string') {\n if (agentContext.currentTokenType === ContentTypes.TEXT) {\n await graph.dispatchMessageDelta(\n stepId,\n {\n content: [\n {\n type: ContentTypes.TEXT,\n text: content,\n },\n ],\n },\n metadata\n );\n } else if (agentContext.currentTokenType === 'think_and_text') {\n const { text, thinking } = parseThinkingContent(content);\n if (thinking) {\n await graph.dispatchReasoningDelta(\n stepId,\n {\n content: [\n {\n type: ContentTypes.THINK,\n think: thinking,\n },\n ],\n },\n metadata\n );\n }\n if (text) {\n agentContext.currentTokenType = ContentTypes.TEXT;\n agentContext.tokenTypeSwitch = 'content';\n const newStepKey = graph.getStepKey(metadata);\n const message_id = getMessageId(newStepKey, graph) ?? '';\n await graph.dispatchRunStep(\n newStepKey,\n {\n type: StepTypes.MESSAGE_CREATION,\n message_creation: {\n message_id,\n content_type: ContentTypes.TEXT,\n },\n },\n metadata\n );\n\n const newStepId = graph.getStepIdByKey(newStepKey);\n await graph.dispatchMessageDelta(\n newStepId,\n {\n content: [\n {\n type: ContentTypes.TEXT,\n text: text,\n },\n ],\n },\n metadata\n );\n }\n } else {\n await graph.dispatchReasoningDelta(\n stepId,\n {\n content: [\n {\n type: ContentTypes.THINK,\n think: content,\n },\n ],\n },\n metadata\n );\n }\n } else if (content.every((c) => isTextContentPart(c))) {\n await graph.dispatchMessageDelta(\n stepId,\n {\n content,\n },\n metadata\n );\n } else if (content.every((c) => isReasoningContentPart(c))) {\n await graph.dispatchReasoningDelta(\n stepId,\n {\n content: content.map((c) => ({\n type: ContentTypes.THINK,\n think:\n (c as t.ThinkingContentText).thinking ??\n (c as Partial<t.GoogleReasoningContentText>).reasoning ??\n (c as Partial<t.BedrockReasoningContentText>).reasoningText\n ?.text ??\n '',\n })),\n },\n metadata\n );\n }\n }\n handleReasoning(\n chunk: Partial<AIMessageChunk>,\n agentContext: AgentContext\n ): void {\n let reasoning_content = chunk.additional_kwargs?.[\n agentContext.reasoningKey\n ] as string | Partial<ChatOpenAIReasoningSummary> | undefined;\n if (\n Array.isArray(chunk.content) &&\n (chunk.content[0]?.type === ContentTypes.THINKING ||\n chunk.content[0]?.type === ContentTypes.REASONING ||\n chunk.content[0]?.type === ContentTypes.REASONING_CONTENT ||\n chunk.content[0]?.type === 'redacted_thinking')\n ) {\n reasoning_content = 'valid';\n } else if (\n (agentContext.provider === Providers.OPENAI ||\n agentContext.provider === Providers.AZURE) &&\n reasoning_content != null &&\n typeof reasoning_content !== 'string' &&\n reasoning_content.summary?.[0]?.text != null &&\n reasoning_content.summary[0].text\n ) {\n reasoning_content = 'valid';\n } else if (\n agentContext.provider === Providers.OPENROUTER &&\n // Only set reasoning as valid if content is NOT present (content signals end of reasoning)\n (chunk.content == null || chunk.content === '') &&\n // Check for reasoning_details (final chunk) OR reasoning string (intermediate chunks)\n ((chunk.additional_kwargs?.reasoning_details != null &&\n Array.isArray(chunk.additional_kwargs.reasoning_details) &&\n chunk.additional_kwargs.reasoning_details.length > 0) ||\n (typeof chunk.additional_kwargs?.reasoning === 'string' &&\n chunk.additional_kwargs.reasoning !== '') ||\n (typeof chunk.additional_kwargs?.reasoning_content === 'string' &&\n chunk.additional_kwargs.reasoning_content !== ''))\n ) {\n reasoning_content = 'valid';\n }\n if (\n reasoning_content != null &&\n reasoning_content !== '' &&\n (chunk.content == null ||\n chunk.content === '' ||\n reasoning_content === 'valid')\n ) {\n agentContext.currentTokenType = ContentTypes.THINK;\n agentContext.tokenTypeSwitch = 'reasoning';\n return;\n } else if (\n agentContext.tokenTypeSwitch === 'reasoning' &&\n agentContext.currentTokenType !== ContentTypes.TEXT &&\n ((chunk.content != null && chunk.content !== '') ||\n (chunk.tool_calls?.length ?? 0) > 0 ||\n (chunk.tool_call_chunks?.length ?? 0) > 0)\n ) {\n agentContext.currentTokenType = ContentTypes.TEXT;\n agentContext.tokenTypeSwitch = 'content';\n agentContext.reasoningTransitionCount++;\n } else if (\n chunk.content != null &&\n typeof chunk.content === 'string' &&\n chunk.content.includes('<think>') &&\n chunk.content.includes('</think>')\n ) {\n agentContext.currentTokenType = 'think_and_text';\n agentContext.tokenTypeSwitch = 'content';\n } else if (\n chunk.content != null &&\n typeof chunk.content === 'string' &&\n chunk.content.includes('<think>')\n ) {\n agentContext.currentTokenType = ContentTypes.THINK;\n agentContext.tokenTypeSwitch = 'content';\n } else if (\n agentContext.lastToken != null &&\n agentContext.lastToken.includes('</think>')\n ) {\n agentContext.currentTokenType = ContentTypes.TEXT;\n agentContext.tokenTypeSwitch = 'content';\n }\n if (typeof chunk.content !== 'string') {\n return;\n }\n agentContext.lastToken = chunk.content;\n }\n}\n\nexport function createContentAggregator(): t.ContentAggregatorResult {\n type ToolStepContentState = {\n indices: Set<number>;\n chunkIndices: Map<number, number>;\n unclaimedIndices: Set<number>;\n unboundIndices: Set<number>;\n callIdsByIndex: Map<number, string>;\n };\n\n const contentParts: Array<t.MessageContentComplex | undefined> = [];\n const stepMap = new Map<string, t.RunStep>();\n const toolCallContentIndexMap = new Map<string, number>();\n const sourceContentIndexMap = new Map<number, number>();\n const toolStepContentMap = new Map<string, ToolStepContentState>();\n let indexedContentLength = 0;\n /** Physical append cursor; event/chunk indices are correlation keys, not array offsets. */\n let nextContentIndex = 0;\n // Track agentId and groupId for each content index (applied to content parts)\n const contentMetaMap = new Map<\n number,\n { agentId?: string; groupId?: number }\n >();\n /** A delta's content may carry several parts (e.g. Google server-side tool\n * chunks emit multiple reasoning entries at once); every entry must reach\n * the step's slot, in order, or streamed text is silently lost. */\n const getDeltaContentParts = (\n content?: t.MessageDelta['content'] | t.MessageContentComplex\n ): t.MessageContentComplex[] => {\n if (content == null) {\n return [];\n }\n return Array.isArray(content) ? content : [content];\n };\n const indexContentPart = (\n index: number,\n contentPart?: t.MessageContentComplex\n ): void => {\n if (contentPart == null) {\n return;\n }\n if (contentPart.type === ContentTypes.TOOL_CALL) {\n const toolCallId = contentPart.tool_call.id;\n if (toolCallId != null && toolCallId !== '') {\n toolCallContentIndexMap.set(toolCallId, index);\n }\n }\n const hasAgentId =\n contentPart.agentId != null && contentPart.agentId !== '';\n const hasGroupId = contentPart.groupId != null;\n if (hasAgentId || hasGroupId) {\n const existingMeta = contentMetaMap.get(index) ?? {};\n if (hasAgentId) {\n existingMeta.agentId = contentPart.agentId;\n }\n if (hasGroupId) {\n existingMeta.groupId = contentPart.groupId;\n }\n contentMetaMap.set(index, existingMeta);\n }\n };\n const syncSeededContent = (): void => {\n /** Hosts can seed pre-pause content after creating the aggregator. */\n for (\n let index = indexedContentLength;\n index < contentParts.length;\n index++\n ) {\n indexContentPart(index, contentParts[index]);\n }\n indexedContentLength = contentParts.length;\n nextContentIndex = Math.max(nextContentIndex, contentParts.length);\n };\n const getToolCallContentIndex = (\n toolCallId: string | undefined\n ): number | undefined => {\n if (toolCallId == null || toolCallId === '') {\n return undefined;\n }\n syncSeededContent();\n return toolCallContentIndexMap.get(toolCallId);\n };\n const allocateContentIndex = (minimumIndex = 0): number => {\n syncSeededContent();\n const contentIndex = Math.max(nextContentIndex, minimumIndex);\n nextContentIndex = contentIndex + 1;\n return contentIndex;\n };\n const resolveSourceContentIndex = (sourceIndex: number): number => {\n const existingIndex = sourceContentIndexMap.get(sourceIndex);\n if (existingIndex != null) {\n return existingIndex;\n }\n const contentIndex = allocateContentIndex(sourceIndex);\n sourceContentIndexMap.set(sourceIndex, contentIndex);\n return contentIndex;\n };\n const createToolStepContentState = (\n contentIndex: number\n ): ToolStepContentState => ({\n indices: new Set<number>([contentIndex]),\n chunkIndices: new Map<number, number>(),\n unclaimedIndices: new Set<number>([contentIndex]),\n unboundIndices: new Set<number>([contentIndex]),\n callIdsByIndex: new Map<number, string>(),\n });\n const registerToolContentIndex = (\n state: ToolStepContentState,\n contentIndex: number,\n toolCallId?: string\n ): void => {\n if (!state.indices.has(contentIndex)) {\n state.indices.add(contentIndex);\n state.unclaimedIndices.add(contentIndex);\n state.unboundIndices.add(contentIndex);\n }\n if (toolCallId != null && toolCallId !== '') {\n const existingToolCallId = state.callIdsByIndex.get(contentIndex);\n if (\n existingToolCallId != null &&\n existingToolCallId !== toolCallId &&\n toolCallContentIndexMap.get(existingToolCallId) === contentIndex\n ) {\n toolCallContentIndexMap.delete(existingToolCallId);\n }\n toolCallContentIndexMap.set(toolCallId, contentIndex);\n state.callIdsByIndex.set(contentIndex, toolCallId);\n state.unboundIndices.delete(contentIndex);\n }\n };\n const takeFirstIndex = (indices: Set<number>): number | undefined => {\n const contentIndex = indices.values().next().value;\n if (contentIndex != null) {\n indices.delete(contentIndex);\n }\n return contentIndex;\n };\n const setContentMeta = (index: number, runStep: t.RunStep): void => {\n const hasAgentId = runStep.agentId != null && runStep.agentId !== '';\n const hasGroupId = runStep.groupId != null;\n if (!hasAgentId && !hasGroupId) {\n return;\n }\n const existingMeta = contentMetaMap.get(index) ?? {};\n if (hasAgentId) {\n existingMeta.agentId = runStep.agentId;\n }\n if (hasGroupId) {\n existingMeta.groupId = runStep.groupId;\n }\n contentMetaMap.set(index, existingMeta);\n };\n const applyContentMetadata = (index: number): void => {\n const contentPart = contentParts[index];\n if (contentPart == null) {\n return;\n }\n const meta = contentMetaMap.get(index);\n if (meta?.agentId != null) {\n contentPart.agentId = meta.agentId;\n }\n if (meta?.groupId != null) {\n contentPart.groupId = meta.groupId;\n }\n };\n\n const updateContent = (\n index: number,\n contentPart?: t.MessageContentComplex,\n finalUpdate = false\n ): void => {\n if (!contentPart) {\n console.warn('No content part found in \\'updateContent\\'');\n return;\n }\n const partType = contentPart.type ?? '';\n if (!partType) {\n console.warn('No content type found in content part');\n return;\n }\n\n if (!contentParts[index] && partType !== ContentTypes.TOOL_CALL) {\n contentParts[index] = { type: partType };\n }\n\n if (!partType.startsWith(contentParts[index]?.type ?? '')) {\n console.warn('Content type mismatch');\n return;\n }\n\n const incomingText =\n ContentTypes.TEXT in contentPart && typeof contentPart.text === 'string'\n ? contentPart.text\n : undefined;\n /**\n * Anthropic emits a search turn's citations as their own `citations_delta`,\n * which arrives here as a text part carrying `citations` and no `text`.\n */\n const { citations } = contentPart as {\n citations?: t.MessageDeltaUpdate['citations'];\n };\n const incomingCitations = Array.isArray(citations) ? citations : undefined;\n\n if (\n partType.startsWith(ContentTypes.TEXT) &&\n (incomingText !== undefined || incomingCitations !== undefined)\n ) {\n // TODO: update this!!\n const currentContent = contentParts[index] as t.MessageDeltaUpdate;\n const update: t.MessageDeltaUpdate = {\n type: ContentTypes.TEXT,\n text: (currentContent.text || '') + (incomingText ?? ''),\n };\n\n if (contentPart.tool_call_ids) {\n update.tool_call_ids = contentPart.tool_call_ids;\n } else if (incomingText === undefined && currentContent.tool_call_ids) {\n /** A citations-only delta must not drop ids already accumulated */\n update.tool_call_ids = currentContent.tool_call_ids;\n }\n\n if (incomingCitations !== undefined) {\n update.citations =\n currentContent.citations !== undefined\n ? [...currentContent.citations, ...incomingCitations]\n : [...incomingCitations];\n } else if (currentContent.citations !== undefined) {\n update.citations = currentContent.citations;\n }\n contentParts[index] = update;\n } else if (\n partType.startsWith(ContentTypes.THINK) &&\n ContentTypes.THINK in contentPart &&\n typeof contentPart.think === 'string'\n ) {\n const currentContent = contentParts[index] as t.ReasoningDeltaUpdate;\n const update: t.ReasoningDeltaUpdate = {\n type: ContentTypes.THINK,\n think: (currentContent.think || '') + contentPart.think,\n };\n contentParts[index] = update;\n } else if (\n partType.startsWith(ContentTypes.AGENT_UPDATE) &&\n ContentTypes.AGENT_UPDATE in contentPart &&\n contentPart.agent_update != null\n ) {\n const update: t.AgentUpdate = {\n type: ContentTypes.AGENT_UPDATE,\n agent_update: contentPart.agent_update,\n };\n\n contentParts[index] = update;\n } else if (partType === 'toolCall' || partType === 'toolResponse') {\n contentParts[index] = contentPart;\n } else if (partType === ContentTypes.SUMMARY) {\n const currentSummary = contentParts[index] as\n | t.SummaryContentBlock\n | undefined;\n const incoming = contentPart as t.SummaryContentBlock;\n contentParts[index] = {\n ...incoming,\n content: [\n ...(currentSummary?.content ?? []),\n ...(incoming.content ?? []),\n ],\n };\n } else if (\n partType === ContentTypes.IMAGE_URL &&\n 'image_url' in contentPart\n ) {\n const currentContent = contentParts[index] as {\n type: 'image_url';\n image_url: string;\n };\n contentParts[index] = {\n ...currentContent,\n };\n } else if (\n partType === ContentTypes.TOOL_CALL &&\n 'tool_call' in contentPart\n ) {\n const incomingName = contentPart.tool_call.name;\n const incomingId = contentPart.tool_call.id;\n const toolCallArgs = (contentPart.tool_call as t.ToolCallPart).args;\n\n // When we receive a tool call with a name, it's the complete tool call\n // Consolidate with any previously accumulated args from chunks\n const hasValidName = incomingName != null && incomingName !== '';\n\n // Only process if incoming has a valid name (complete tool call)\n // or if we're doing a final update with complete data\n if (!hasValidName && !finalUpdate) {\n return;\n }\n\n const existingContent = contentParts[index] as\n | (Omit<t.ToolCallContent, 'tool_call'> & {\n tool_call?: t.ToolCallPart & t.PartMetadata;\n })\n | undefined;\n if (!finalUpdate && existingContent?.tool_call?.progress === 1) {\n return;\n }\n\n /** When args are a valid object, they are likely already invoked */\n let args =\n finalUpdate ||\n typeof existingContent?.tool_call?.args === 'object' ||\n typeof toolCallArgs === 'object'\n ? contentPart.tool_call.args\n : (existingContent?.tool_call?.args ?? '') + (toolCallArgs ?? '');\n if (\n finalUpdate &&\n args == null &&\n existingContent?.tool_call?.args != null\n ) {\n args = existingContent.tool_call.args;\n }\n\n const id =\n getNonEmptyValue([incomingId, existingContent?.tool_call?.id]) ?? '';\n const name =\n getNonEmptyValue([incomingName, existingContent?.tool_call?.name]) ??\n '';\n const existingToolCallId = existingContent?.tool_call?.id;\n if (\n existingToolCallId != null &&\n existingToolCallId !== '' &&\n existingToolCallId !== id &&\n toolCallContentIndexMap.get(existingToolCallId) === index\n ) {\n toolCallContentIndexMap.delete(existingToolCallId);\n }\n\n const newToolCall: ToolCall & t.PartMetadata & { outcome?: string } = {\n id,\n name,\n args,\n type: ToolCallTypes.TOOL_CALL,\n };\n\n const auth =\n contentPart.tool_call.auth ?? existingContent?.tool_call?.auth;\n const expiresAt =\n contentPart.tool_call.expires_at ??\n existingContent?.tool_call?.expires_at;\n if (auth != null) {\n newToolCall.auth = auth;\n newToolCall.expires_at = expiresAt;\n }\n\n if (finalUpdate) {\n newToolCall.progress = 1;\n newToolCall.output = contentPart.tool_call.output;\n const outcome = (contentPart.tool_call as t.ToolCallPart).outcome;\n if (outcome != null) {\n newToolCall.outcome = outcome;\n }\n }\n\n contentParts[index] = {\n type: ContentTypes.TOOL_CALL,\n tool_call: newToolCall,\n };\n indexContentPart(index, contentParts[index]);\n indexedContentLength = Math.max(indexedContentLength, index + 1);\n }\n\n // Apply agentId (for MultiAgentGraph) and groupId (for parallel execution) to content parts\n // - agentId present → MultiAgentGraph (show agent labels)\n // - groupId present → parallel execution (render columns)\n applyContentMetadata(index);\n };\n\n const aggregateContent = ({\n event,\n data,\n }: {\n event: GraphEvents;\n data:\n | t.RunStep\n | t.AgentUpdate\n | t.MessageDeltaEvent\n | t.ReasoningDeltaEvent\n | t.RunStepDeltaEvent\n | t.SummarizeDeltaData\n | t.SummarizeCompleteEvent\n | { result: t.ToolEndEvent };\n }): void => {\n if (event === GraphEvents.ON_SUMMARIZE_DELTA) {\n const deltaData = data as t.SummarizeDeltaData;\n const runStep = stepMap.get(deltaData.id);\n if (!runStep) {\n console.warn('No run step found for summarize delta event');\n return;\n }\n updateContent(runStep.index, deltaData.delta.summary);\n return;\n }\n\n if (event === GraphEvents.ON_SUMMARIZE_COMPLETE) {\n const completeData = data as t.SummarizeCompleteEvent;\n const summary = completeData.summary;\n if (!summary?.boundary) {\n return;\n }\n const runStep = stepMap.get(summary.boundary.messageId);\n if (!runStep) {\n return;\n }\n // Replace accumulated delta text with the authoritative final summary.\n // Multi-stage summarization streams deltas from each chunk, which\n // concatenate in updateContent. This event carries only the correct\n // final text from the last stage.\n contentParts[runStep.index] = summary;\n applyContentMetadata(runStep.index);\n return;\n }\n\n if (event === GraphEvents.ON_RUN_STEP) {\n const incomingRunStep = data as t.RunStep;\n const toolCalls =\n incomingRunStep.stepDetails.type === StepTypes.TOOL_CALLS\n ? (incomingRunStep.stepDetails.tool_calls as ToolCall[] | undefined)\n : undefined;\n syncSeededContent();\n let runStepIndex: number;\n const toolCallIndices: number[] = [];\n if (toolCalls && toolCalls.length > 0) {\n for (let index = 0; index < toolCalls.length; index++) {\n const toolCallId = toolCalls[index].id;\n let contentIndex = getToolCallContentIndex(toolCallId);\n if (contentIndex == null) {\n contentIndex =\n index === 0\n ? resolveSourceContentIndex(incomingRunStep.index)\n : allocateContentIndex();\n } else if (index === 0) {\n sourceContentIndexMap.set(incomingRunStep.index, contentIndex);\n }\n toolCallIndices.push(contentIndex);\n }\n runStepIndex = toolCallIndices[0];\n } else {\n runStepIndex = resolveSourceContentIndex(incomingRunStep.index);\n }\n const runStep =\n runStepIndex !== incomingRunStep.index\n ? { ...incomingRunStep, index: runStepIndex }\n : incomingRunStep;\n stepMap.set(runStep.id, runStep);\n\n setContentMeta(runStep.index, runStep);\n\n if (runStep.summary != null) {\n updateContent(runStep.index, runStep.summary);\n }\n\n if (runStep.stepDetails.type === StepTypes.TOOL_CALLS) {\n const toolStepContent =\n toolStepContentMap.get(runStep.id) ??\n createToolStepContentState(runStep.index);\n registerToolContentIndex(toolStepContent, runStep.index);\n (runStep.stepDetails.tool_calls as ToolCall[] | undefined)?.forEach(\n (toolCall, toolCallIndex) => {\n const contentIndex =\n toolCallIndices[toolCallIndex] ?? runStep.index;\n const toolCallId = toolCall.id ?? '';\n registerToolContentIndex(toolStepContent, contentIndex, toolCallId);\n const contentPart: t.MessageContentComplex = {\n type: ContentTypes.TOOL_CALL,\n tool_call: {\n args: toolCall.args,\n name: toolCall.name,\n id: toolCallId,\n },\n };\n\n setContentMeta(contentIndex, runStep);\n updateContent(contentIndex, contentPart);\n }\n );\n toolStepContentMap.set(runStep.id, toolStepContent);\n }\n } else if (event === GraphEvents.ON_MESSAGE_DELTA) {\n const messageDelta = data as t.MessageDeltaEvent;\n const runStep = stepMap.get(messageDelta.id);\n if (!runStep) {\n console.warn('No run step or runId found for message delta event');\n return;\n }\n\n for (const contentPart of getDeltaContentParts(\n messageDelta.delta.content\n )) {\n updateContent(runStep.index, contentPart);\n }\n } else if (\n event === GraphEvents.ON_AGENT_UPDATE &&\n (data as t.AgentUpdate | undefined)?.agent_update\n ) {\n const contentPart = data as t.AgentUpdate | undefined;\n if (!contentPart) {\n return;\n }\n const contentIndex = resolveSourceContentIndex(\n contentPart.agent_update.index\n );\n updateContent(contentIndex, {\n ...contentPart,\n agent_update: {\n ...contentPart.agent_update,\n index: contentIndex,\n },\n });\n } else if (event === GraphEvents.ON_REASONING_DELTA) {\n const reasoningDelta = data as t.ReasoningDeltaEvent;\n const runStep = stepMap.get(reasoningDelta.id);\n if (!runStep) {\n console.warn('No run step or runId found for reasoning delta event');\n return;\n }\n\n for (const contentPart of getDeltaContentParts(\n reasoningDelta.delta.content\n )) {\n updateContent(runStep.index, contentPart);\n }\n } else if (event === GraphEvents.ON_RUN_STEP_DELTA) {\n const runStepDelta = data as t.RunStepDeltaEvent;\n const runStep = stepMap.get(runStepDelta.id);\n if (!runStep) {\n console.warn('No run step or runId found for run step delta event');\n return;\n }\n\n if (\n runStepDelta.delta.type === StepTypes.TOOL_CALLS &&\n runStepDelta.delta.tool_calls\n ) {\n const toolStepContent =\n toolStepContentMap.get(runStepDelta.id) ??\n createToolStepContentState(runStep.index);\n runStepDelta.delta.tool_calls.forEach((toolCallDelta) => {\n const chunkIndex =\n typeof toolCallDelta.index === 'number'\n ? toolCallDelta.index\n : undefined;\n const explicitToolCallId =\n toolCallDelta.id != null && toolCallDelta.id !== ''\n ? toolCallDelta.id\n : undefined;\n let contentIndex = getToolCallContentIndex(explicitToolCallId);\n if (contentIndex == null && chunkIndex != null) {\n contentIndex = toolStepContent.chunkIndices.get(chunkIndex);\n }\n const soleContentIndex =\n toolStepContent.indices.size === 1\n ? toolStepContent.indices.values().next().value\n : undefined;\n if (\n contentIndex == null &&\n explicitToolCallId == null &&\n soleContentIndex != null &&\n (chunkIndex == null ||\n toolStepContent.callIdsByIndex.has(soleContentIndex) ||\n toolStepContent.unclaimedIndices.has(soleContentIndex))\n ) {\n contentIndex = soleContentIndex;\n }\n if (contentIndex == null) {\n if (chunkIndex == null && explicitToolCallId == null) {\n console.warn(\n 'No tool call id or chunk index found for run step delta event'\n );\n return;\n }\n contentIndex =\n explicitToolCallId == null\n ? takeFirstIndex(toolStepContent.unclaimedIndices)\n : takeFirstIndex(toolStepContent.unboundIndices);\n contentIndex ??= allocateContentIndex();\n }\n registerToolContentIndex(\n toolStepContent,\n contentIndex,\n explicitToolCallId\n );\n if (chunkIndex != null) {\n toolStepContent.chunkIndices.set(chunkIndex, contentIndex);\n toolStepContent.unclaimedIndices.delete(contentIndex);\n toolStepContent.unboundIndices.delete(contentIndex);\n }\n const toolCallId =\n explicitToolCallId ??\n toolStepContent.callIdsByIndex.get(contentIndex);\n\n const contentPart: t.MessageContentComplex = {\n type: ContentTypes.TOOL_CALL,\n tool_call: {\n args: toolCallDelta.args ?? '',\n name: toolCallDelta.name,\n id: toolCallId,\n auth: runStepDelta.delta.auth,\n expires_at: runStepDelta.delta.expires_at,\n },\n };\n\n setContentMeta(contentIndex, runStep);\n updateContent(contentIndex, contentPart);\n });\n toolStepContentMap.set(runStepDelta.id, toolStepContent);\n }\n } else if (event === GraphEvents.ON_RUN_STEP_COMPLETED) {\n const { result } = data as unknown as {\n result:\n | t.ToolEndEvent\n | (t.SummaryCompleted & { id: string; index: number });\n };\n\n const { id: stepId } = result;\n\n const runStep = stepMap.get(stepId);\n\n if (result.type === ContentTypes.SUMMARY && 'summary' in result) {\n if (!runStep) {\n console.warn('No run step or runId found for completed step event');\n return;\n }\n contentParts[runStep.index] = result.summary as t.MessageContentComplex;\n applyContentMetadata(runStep.index);\n } else if ('tool_call' in result) {\n let contentIndex = getToolCallContentIndex(result.tool_call.id);\n if (contentIndex == null && runStep != null) {\n const toolStepContent = toolStepContentMap.get(runStep.id);\n if (toolStepContent?.indices.size === 1) {\n contentIndex = toolStepContent.indices.values().next().value;\n } else if (toolStepContent == null) {\n const declaredToolCalls =\n runStep.stepDetails.type === StepTypes.TOOL_CALLS\n ? runStep.stepDetails.tool_calls\n : undefined;\n if ((declaredToolCalls?.length ?? 0) <= 1) {\n contentIndex = runStep.index;\n }\n }\n }\n if (contentIndex == null) {\n console.warn(\n 'No run step or tool call found for completed step event'\n );\n return;\n }\n if (runStep != null) {\n setContentMeta(contentIndex, runStep);\n }\n const contentPart: t.MessageContentComplex = {\n type: ContentTypes.TOOL_CALL,\n tool_call: (result as t.ToolEndEvent).tool_call,\n };\n updateContent(contentIndex, contentPart, true);\n }\n }\n };\n\n return { contentParts, aggregateContent, stepMap };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"stream.cjs","names":["LOCAL_CODING_BUNDLE_NAMES","TOOL_OUTPUT_REF_PATTERN","CODE_EXECUTION_TOOLS","getStreamedToolCallAdapter","getStreamedToolCallSeal","getMessageId","getMessageCreationContentMetadata","buildToolExecutionRequestPlan","composeAbortSignals","safeDispatchCustomEvent","normalizeError","calculateMaxToolResultChars","truncateToolResultContent","serializeStructuredValueBounded","resolveToolOutcome","outcomeFieldsFromResult","serializeToolContentBounded","coerceRecordArgs","isGoogleLike","STREAM_LIMIT_EPOCH_KEY","StreamLimitExceededError","requiresStreamLimitAccounting","claimStreamLimitCharge","combineCompleteToolCalls","handleServerToolResult","handleToolCalls","streamedToolCallAdapterAllowsSequentialSeal","handleToolCallChunks","splitAssistantTextContentByPhase","completeData"],"sources":["../../src/stream.ts"],"mappings":"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"}
@@ -4,22 +4,8 @@ const VALID_TRIGGER_TYPES = [
4
4
  "remaining_tokens",
5
5
  "messages_to_refine"
6
6
  ];
7
- /**
8
- * Upper bound on the dedup set for unrecognized trigger types. Bounds memory in
9
- * case a caller threads dynamic/user-provided strings through `trigger.type`.
10
- * Well above the handful of legit misconfigurations a process would ever see.
11
- */
12
7
  const MAX_WARNED_TRIGGER_TYPES = 32;
13
8
  const warnedUnrecognizedTriggerTypes = /* @__PURE__ */ new Set();
14
- /**
15
- * Warn (once per process, per unrecognized type) when the configured trigger
16
- * type is something the runtime does not evaluate. Without this, a misconfigured
17
- * `trigger.type` silently disables summarization with no visible signal.
18
- *
19
- * The dedup set is size-capped; on overflow we evict the oldest entry (Set
20
- * preserves insertion order) so we keep bounded memory and still warn on
21
- * recently-seen types.
22
- */
23
9
  function warnUnrecognizedTriggerType(type) {
24
10
  if (warnedUnrecognizedTriggerTypes.has(type)) return;
25
11
  if (warnedUnrecognizedTriggerTypes.size >= MAX_WARNED_TRIGGER_TYPES) {
@@ -29,22 +15,9 @@ function warnUnrecognizedTriggerType(type) {
29
15
  warnedUnrecognizedTriggerTypes.add(type);
30
16
  console.warn(`[shouldTriggerSummarization] Unrecognized trigger.type: "${type}". Summarization will not fire. Valid values: ${VALID_TRIGGER_TYPES.join(", ")}.`);
31
17
  }
32
- /** For tests only. Resets the dedup set so warnings can be observed again. */
33
18
  function _resetUnrecognizedTriggerWarnings() {
34
19
  warnedUnrecognizedTriggerTypes.clear();
35
20
  }
36
- /**
37
- * Determines whether summarization should be triggered based on the configured trigger
38
- * and current context state.
39
- *
40
- * Default behavior (no trigger configured): returns `true` whenever messages were pruned.
41
- * This is intentional — when an admin enables summarization without specifying a trigger,
42
- * summarization fires on any context overflow that causes pruning.
43
- *
44
- * When a trigger IS configured but required runtime data is missing (e.g., maxContextTokens
45
- * unavailable for a token_ratio trigger), returns `false` — we cannot evaluate the condition,
46
- * so we do not fire.
47
- */
48
21
  function shouldTriggerSummarization(params) {
49
22
  const { trigger, maxContextTokens, prePruneContextTokens, remainingContextTokens, messagesToRefineCount } = params;
50
23
  if (messagesToRefineCount <= 0) return false;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../../src/summarization/index.ts"],"sourcesContent":["import type { SummarizationTrigger } from '@/types';\n\nconst VALID_TRIGGER_TYPES = [\n 'token_ratio',\n 'remaining_tokens',\n 'messages_to_refine',\n] as const;\n\n/**\n * Upper bound on the dedup set for unrecognized trigger types. Bounds memory in\n * case a caller threads dynamic/user-provided strings through `trigger.type`.\n * Well above the handful of legit misconfigurations a process would ever see.\n */\nconst MAX_WARNED_TRIGGER_TYPES = 32;\n\nconst warnedUnrecognizedTriggerTypes = new Set<string>();\n\n/**\n * Warn (once per process, per unrecognized type) when the configured trigger\n * type is something the runtime does not evaluate. Without this, a misconfigured\n * `trigger.type` silently disables summarization with no visible signal.\n *\n * The dedup set is size-capped; on overflow we evict the oldest entry (Set\n * preserves insertion order) so we keep bounded memory and still warn on\n * recently-seen types.\n */\nfunction warnUnrecognizedTriggerType(type: string): void {\n if (warnedUnrecognizedTriggerTypes.has(type)) {\n return;\n }\n if (warnedUnrecognizedTriggerTypes.size >= MAX_WARNED_TRIGGER_TYPES) {\n const oldest = warnedUnrecognizedTriggerTypes.values().next().value;\n if (oldest !== undefined) {\n warnedUnrecognizedTriggerTypes.delete(oldest);\n }\n }\n warnedUnrecognizedTriggerTypes.add(type);\n console.warn(\n `[shouldTriggerSummarization] Unrecognized trigger.type: \"${type}\". ` +\n `Summarization will not fire. Valid values: ${VALID_TRIGGER_TYPES.join(', ')}.`\n );\n}\n\n/** For tests only. Resets the dedup set so warnings can be observed again. */\nexport function _resetUnrecognizedTriggerWarnings(): void {\n warnedUnrecognizedTriggerTypes.clear();\n}\n\n/**\n * Determines whether summarization should be triggered based on the configured trigger\n * and current context state.\n *\n * Default behavior (no trigger configured): returns `true` whenever messages were pruned.\n * This is intentional — when an admin enables summarization without specifying a trigger,\n * summarization fires on any context overflow that causes pruning.\n *\n * When a trigger IS configured but required runtime data is missing (e.g., maxContextTokens\n * unavailable for a token_ratio trigger), returns `false` — we cannot evaluate the condition,\n * so we do not fire.\n */\nexport function shouldTriggerSummarization(params: {\n trigger?: SummarizationTrigger;\n maxContextTokens?: number;\n prePruneContextTokens?: number;\n remainingContextTokens?: number;\n messagesToRefineCount: number;\n}): boolean {\n const {\n trigger,\n maxContextTokens,\n prePruneContextTokens,\n remainingContextTokens,\n messagesToRefineCount,\n } = params;\n if (messagesToRefineCount <= 0) {\n return false;\n }\n\n // No trigger configured: default to always summarize when pruning occurs.\n if (!trigger || typeof trigger.type !== 'string') {\n return true;\n }\n\n const triggerValue =\n typeof trigger.value === 'number' && Number.isFinite(trigger.value)\n ? trigger.value\n : undefined;\n\n // Trigger configured but value is invalid: cannot evaluate, do not fire.\n if (triggerValue == null) {\n return false;\n }\n\n if (trigger.type === 'token_ratio') {\n const prePruneRemainingContextTokens =\n maxContextTokens != null &&\n Number.isFinite(maxContextTokens) &&\n maxContextTokens > 0 &&\n prePruneContextTokens != null &&\n Number.isFinite(prePruneContextTokens)\n ? maxContextTokens - prePruneContextTokens\n : undefined;\n const effectiveRemainingContextTokens =\n prePruneRemainingContextTokens ?? remainingContextTokens;\n\n // Required runtime data missing: cannot evaluate token_ratio, do not fire.\n if (\n maxContextTokens == null ||\n !Number.isFinite(maxContextTokens) ||\n maxContextTokens <= 0 ||\n effectiveRemainingContextTokens == null ||\n !Number.isFinite(effectiveRemainingContextTokens)\n ) {\n return false;\n }\n const usedRatio = 1 - effectiveRemainingContextTokens / maxContextTokens;\n return usedRatio >= triggerValue;\n }\n\n if (trigger.type === 'remaining_tokens') {\n const prePruneRemainingContextTokens =\n maxContextTokens != null &&\n Number.isFinite(maxContextTokens) &&\n maxContextTokens > 0 &&\n prePruneContextTokens != null &&\n Number.isFinite(prePruneContextTokens)\n ? maxContextTokens - prePruneContextTokens\n : undefined;\n const effectiveRemainingContextTokens =\n prePruneRemainingContextTokens ?? remainingContextTokens;\n\n // Required runtime data missing: cannot evaluate remaining_tokens, do not fire.\n if (\n effectiveRemainingContextTokens == null ||\n !Number.isFinite(effectiveRemainingContextTokens)\n ) {\n return false;\n }\n return effectiveRemainingContextTokens <= triggerValue;\n }\n\n if (trigger.type === 'messages_to_refine') {\n return messagesToRefineCount >= triggerValue;\n }\n\n // Unrecognized trigger type: cannot evaluate, do not fire.\n warnUnrecognizedTriggerType(trigger.type);\n return false;\n}\n"],"mappings":";AAEA,MAAM,sBAAsB;CAC1B;CACA;CACA;AACF;;;;;;AAOA,MAAM,2BAA2B;AAEjC,MAAM,iDAAiC,IAAI,IAAY;;;;;;;;;;AAWvD,SAAS,4BAA4B,MAAoB;CACvD,IAAI,+BAA+B,IAAI,IAAI,GACzC;CAEF,IAAI,+BAA+B,QAAQ,0BAA0B;EACnE,MAAM,SAAS,+BAA+B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;EAC9D,IAAI,WAAW,KAAA,GACb,+BAA+B,OAAO,MAAM;CAEhD;CACA,+BAA+B,IAAI,IAAI;CACvC,QAAQ,KACN,4DAA4D,KAAK,gDACjB,oBAAoB,KAAK,IAAI,EAAE,EACjF;AACF;;AAGA,SAAgB,oCAA0C;CACxD,+BAA+B,MAAM;AACvC;;;;;;;;;;;;;AAcA,SAAgB,2BAA2B,QAM/B;CACV,MAAM,EACJ,SACA,kBACA,uBACA,wBACA,0BACE;CACJ,IAAI,yBAAyB,GAC3B,OAAO;CAIT,IAAI,CAAC,WAAW,OAAO,QAAQ,SAAS,UACtC,OAAO;CAGT,MAAM,eACJ,OAAO,QAAQ,UAAU,YAAY,OAAO,SAAS,QAAQ,KAAK,IAC9D,QAAQ,QACR,KAAA;CAGN,IAAI,gBAAgB,MAClB,OAAO;CAGT,IAAI,QAAQ,SAAS,eAAe;EASlC,MAAM,mCAPJ,oBAAoB,QACpB,OAAO,SAAS,gBAAgB,KAChC,mBAAmB,KACnB,yBAAyB,QACzB,OAAO,SAAS,qBAAqB,IACjC,mBAAmB,wBACnB,KAAA,MAE8B;EAGpC,IACE,oBAAoB,QACpB,CAAC,OAAO,SAAS,gBAAgB,KACjC,oBAAoB,KACpB,mCAAmC,QACnC,CAAC,OAAO,SAAS,+BAA+B,GAEhD,OAAO;EAGT,OADkB,IAAI,kCAAkC,oBACpC;CACtB;CAEA,IAAI,QAAQ,SAAS,oBAAoB;EASvC,MAAM,mCAPJ,oBAAoB,QACpB,OAAO,SAAS,gBAAgB,KAChC,mBAAmB,KACnB,yBAAyB,QACzB,OAAO,SAAS,qBAAqB,IACjC,mBAAmB,wBACnB,KAAA,MAE8B;EAGpC,IACE,mCAAmC,QACnC,CAAC,OAAO,SAAS,+BAA+B,GAEhD,OAAO;EAET,OAAO,mCAAmC;CAC5C;CAEA,IAAI,QAAQ,SAAS,sBACnB,OAAO,yBAAyB;CAIlC,4BAA4B,QAAQ,IAAI;CACxC,OAAO;AACT"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../../src/summarization/index.ts"],"mappings":";AAEA,MAAM,sBAAsB;CAC1B;CACA;CACA;AACF;AAOA,MAAM,2BAA2B;AAEjC,MAAM,iDAAiC,IAAI,IAAY;AAWvD,SAAS,4BAA4B,MAAoB;CACvD,IAAI,+BAA+B,IAAI,IAAI,GACzC;CAEF,IAAI,+BAA+B,QAAQ,0BAA0B;EACnE,MAAM,SAAS,+BAA+B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;EAC9D,IAAI,WAAW,KAAA,GACb,+BAA+B,OAAO,MAAM;CAEhD;CACA,+BAA+B,IAAI,IAAI;CACvC,QAAQ,KACN,4DAA4D,KAAK,gDACjB,oBAAoB,KAAK,IAAI,EAAE,EACjF;AACF;AAGA,SAAgB,oCAA0C;CACxD,+BAA+B,MAAM;AACvC;AAcA,SAAgB,2BAA2B,QAM/B;CACV,MAAM,EACJ,SACA,kBACA,uBACA,wBACA,0BACE;CACJ,IAAI,yBAAyB,GAC3B,OAAO;CAIT,IAAI,CAAC,WAAW,OAAO,QAAQ,SAAS,UACtC,OAAO;CAGT,MAAM,eACJ,OAAO,QAAQ,UAAU,YAAY,OAAO,SAAS,QAAQ,KAAK,IAC9D,QAAQ,QACR,KAAA;CAGN,IAAI,gBAAgB,MAClB,OAAO;CAGT,IAAI,QAAQ,SAAS,eAAe;EASlC,MAAM,mCAPJ,oBAAoB,QACpB,OAAO,SAAS,gBAAgB,KAChC,mBAAmB,KACnB,yBAAyB,QACzB,OAAO,SAAS,qBAAqB,IACjC,mBAAmB,wBACnB,KAAA,MAE8B;EAGpC,IACE,oBAAoB,QACpB,CAAC,OAAO,SAAS,gBAAgB,KACjC,oBAAoB,KACpB,mCAAmC,QACnC,CAAC,OAAO,SAAS,+BAA+B,GAEhD,OAAO;EAGT,OADkB,IAAI,kCAAkC,oBACpC;CACtB;CAEA,IAAI,QAAQ,SAAS,oBAAoB;EASvC,MAAM,mCAPJ,oBAAoB,QACpB,OAAO,SAAS,gBAAgB,KAChC,mBAAmB,KACnB,yBAAyB,QACzB,OAAO,SAAS,qBAAqB,IACjC,mBAAmB,wBACnB,KAAA,MAE8B;EAGpC,IACE,mCAAmC,QACnC,CAAC,OAAO,SAAS,+BAA+B,GAEhD,OAAO;EAET,OAAO,mCAAmC;CAC5C;CAEA,IAAI,QAAQ,SAAS,sBACnB,OAAO,yBAAyB;CAIlC,4BAA4B,QAAQ,IAAI;CACxC,OAAO;AACT"}