@librechat/agents 3.4.7 → 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 (1026) 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 +0 -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 +0 -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/__tests__/stream.eagerArgsDivergence.test.ts +0 -911
  688. package/src/__tests__/stream.eagerEventExecution.test.ts +0 -5046
  689. package/src/__tests__/stream.streamLimits.test.ts +0 -1982
  690. package/src/agents/__tests__/AgentContext.anthropic.live.test.ts +0 -448
  691. package/src/agents/__tests__/AgentContext.bedrock.live.test.ts +0 -655
  692. package/src/agents/__tests__/AgentContext.openrouter.live.test.ts +0 -128
  693. package/src/agents/__tests__/AgentContext.overflow.test.ts +0 -205
  694. package/src/agents/__tests__/AgentContext.test.ts +0 -2425
  695. package/src/agents/__tests__/projection.test.ts +0 -73
  696. package/src/agents/__tests__/promptCacheLiveHelpers.ts +0 -175
  697. package/src/aggregator.test.ts +0 -1214
  698. package/src/graphs/__tests__/Graph.breakerLifecycle.test.ts +0 -273
  699. package/src/graphs/__tests__/Graph.closeRunStep.test.ts +0 -385
  700. package/src/graphs/__tests__/Graph.contextOverflow.test.ts +0 -1766
  701. package/src/graphs/__tests__/Graph.preemptSignal.test.ts +0 -126
  702. package/src/graphs/__tests__/Graph.reasoning.test.ts +0 -1717
  703. package/src/graphs/__tests__/Graph.subagentResumeState.test.ts +0 -80
  704. package/src/graphs/__tests__/MultiAgentGraph.test.ts +0 -177
  705. package/src/graphs/__tests__/composition.smoke.test.ts +0 -509
  706. package/src/graphs/__tests__/createGraph.test.ts +0 -206
  707. package/src/hooks/__tests__/HookRegistry.test.ts +0 -334
  708. package/src/hooks/__tests__/compactHooks.test.ts +0 -250
  709. package/src/hooks/__tests__/createToolPolicyHook.test.ts +0 -268
  710. package/src/hooks/__tests__/createWorkspacePolicyHook.test.ts +0 -405
  711. package/src/hooks/__tests__/executeHooks.test.ts +0 -1294
  712. package/src/hooks/__tests__/integration.test.ts +0 -337
  713. package/src/hooks/__tests__/matchers.test.ts +0 -238
  714. package/src/hooks/__tests__/preemptBoundary.test.ts +0 -152
  715. package/src/hooks/__tests__/toolHooks.test.ts +0 -669
  716. package/src/llm/__tests__/contextOverflowRecovery.test.ts +0 -401
  717. package/src/llm/__tests__/fallbackOverflow.test.ts +0 -287
  718. package/src/llm/anthropic/Jacob_Lee_Resume_2023.pdf +0 -0
  719. package/src/llm/anthropic/inherited-content-utils.spec.ts +0 -249
  720. package/src/llm/anthropic/inherited-stream-events.spec.ts +0 -1259
  721. package/src/llm/anthropic/inherited-strict.spec.ts +0 -302
  722. package/src/llm/anthropic/llm.spec.ts +0 -3394
  723. package/src/llm/anthropic/utils/cross-provider-reasoning.test.ts +0 -383
  724. package/src/llm/anthropic/utils/cross-provider-server-tools.test.ts +0 -110
  725. package/src/llm/anthropic/utils/server-tool-inputs.test.ts +0 -508
  726. package/src/llm/anthropic/utils/streaming-tool-input.test.ts +0 -361
  727. package/src/llm/anthropic/utils/stripPrefillCache.test.ts +0 -111
  728. package/src/llm/anthropic/utils/tool-id-normalization.test.ts +0 -287
  729. package/src/llm/bedrock/inherited-cache.spec.ts +0 -144
  730. package/src/llm/bedrock/inherited.spec.ts +0 -724
  731. package/src/llm/bedrock/llm.spec.ts +0 -1533
  732. package/src/llm/bedrock/streamSealDispatch.test.ts +0 -331
  733. package/src/llm/bedrock/toolCache.test.ts +0 -194
  734. package/src/llm/bedrock/utils/cross-provider-reasoning.test.ts +0 -131
  735. package/src/llm/bedrock/utils/cross-provider-server-tools.test.ts +0 -122
  736. package/src/llm/bedrock/utils/message_inputs.test.ts +0 -650
  737. package/src/llm/bedrock/utils/message_outputs.test.ts +0 -85
  738. package/src/llm/bedrock/utils/toolResultCachePoint.test.ts +0 -118
  739. package/src/llm/custom-chat-models.smoke.test.ts +0 -1966
  740. package/src/llm/google/data/gettysburg10.wav +0 -0
  741. package/src/llm/google/data/hotdog.jpg +0 -0
  742. package/src/llm/google/inherited-stream-events.spec.ts +0 -350
  743. package/src/llm/google/llm.spec.ts +0 -1388
  744. package/src/llm/google/streamSmoothing.test.ts +0 -121
  745. package/src/llm/google/utils/common.test.ts +0 -196
  746. package/src/llm/invoke.alternation.test.ts +0 -87
  747. package/src/llm/invoke.handoffCue.test.ts +0 -112
  748. package/src/llm/invoke.streamLimits.test.ts +0 -142
  749. package/src/llm/invoke.test.ts +0 -1198
  750. package/src/llm/mistral/streamSmoothing.test.ts +0 -97
  751. package/src/llm/openai/cacheWriteTokens.test.ts +0 -112
  752. package/src/llm/openai/contentBlocks.test.ts +0 -381
  753. package/src/llm/openai/deepseek.test.ts +0 -747
  754. package/src/llm/openai/inherited-deepseek.spec.ts +0 -347
  755. package/src/llm/openai/inherited-xai.spec.ts +0 -416
  756. package/src/llm/openai/llm.spec.ts +0 -1774
  757. package/src/llm/openai/managedRequests.test.ts +0 -182
  758. package/src/llm/openai/sequentialToolCallSeals.test.ts +0 -199
  759. package/src/llm/openai/streamMetadata.spec.ts +0 -86
  760. package/src/llm/openai/streamMetadataDedup.spec.ts +0 -166
  761. package/src/llm/openai/utils/isReasoningModel.test.ts +0 -90
  762. package/src/llm/openai/utils/messages.test.ts +0 -488
  763. package/src/llm/openrouter/reasoning.test.ts +0 -561
  764. package/src/llm/openrouter/toolCache.test.ts +0 -134
  765. package/src/llm/preempt.test.ts +0 -323
  766. package/src/llm/stream/chunkAdapters.test.ts +0 -202
  767. package/src/llm/stream/reassembly.test.ts +0 -241
  768. package/src/llm/stream/smoother.bench.test.ts +0 -155
  769. package/src/llm/stream/smoother.test.ts +0 -519
  770. package/src/llm/streamLimits.test.ts +0 -450
  771. package/src/llm/truncation.test.ts +0 -242
  772. package/src/llm/vertexai/fixThoughtSignatures.test.ts +0 -154
  773. package/src/llm/vertexai/inherited-stream-events.spec.ts +0 -271
  774. package/src/llm/vertexai/llm.spec.ts +0 -159
  775. package/src/llm/vertexai/repairUsageMetadata.test.ts +0 -54
  776. package/src/llm/vertexai/sealStreamedToolCalls.test.ts +0 -88
  777. package/src/llm/vertexai/streamSealDispatch.test.ts +0 -148
  778. package/src/llm/vertexai/streamSmoothing.test.ts +0 -109
  779. package/src/messages/__tests__/anthropicToolCache.test.ts +0 -339
  780. package/src/messages/__tests__/observationMasking.test.ts +0 -312
  781. package/src/messages/__tests__/recency.test.ts +0 -267
  782. package/src/messages/__tests__/tools.test.ts +0 -473
  783. package/src/messages/alternation.test.ts +0 -212
  784. package/src/messages/assistantPhase.test.ts +0 -75
  785. package/src/messages/cache.tail.test.ts +0 -533
  786. package/src/messages/cache.test.ts +0 -2166
  787. package/src/messages/content.test.ts +0 -362
  788. package/src/messages/contextPruning.test.ts +0 -184
  789. package/src/messages/ensureThinkingBlock.test.ts +0 -1427
  790. package/src/messages/foldToollessToolBlocks.test.ts +0 -596
  791. package/src/messages/formatAgentMessages.reducer.test.ts +0 -162
  792. package/src/messages/formatAgentMessages.skills.test.ts +0 -513
  793. package/src/messages/formatAgentMessages.steer.test.ts +0 -598
  794. package/src/messages/formatAgentMessages.test.ts +0 -8111
  795. package/src/messages/formatAgentMessages.tools.test.ts +0 -522
  796. package/src/messages/formatMessage.test.ts +0 -693
  797. package/src/messages/handoffCue.test.ts +0 -96
  798. package/src/messages/injected.test.ts +0 -107
  799. package/src/messages/labelContentByAgent.test.ts +0 -962
  800. package/src/messages/reducer.spec.ts +0 -32
  801. package/src/messages/shiftIndexTokenCountMap.test.ts +0 -81
  802. package/src/messages/tailCacheConversion.test.ts +0 -161
  803. package/src/openai/__tests__/openai.test.ts +0 -337
  804. package/src/responses/__tests__/responses.test.ts +0 -652
  805. package/src/scripts/abort.ts +0 -157
  806. package/src/scripts/activity-labels/captured.json +0 -56
  807. package/src/scripts/activity-labels/checks.cjs +0 -205
  808. package/src/scripts/activity-labels/corpus.cjs +0 -473
  809. package/src/scripts/activity-labels/report.cjs +0 -203
  810. package/src/scripts/activity-labels/rescore.cjs +0 -102
  811. package/src/scripts/activity-labels/run.ts +0 -705
  812. package/src/scripts/activity-labels/variants.ts +0 -71
  813. package/src/scripts/ant_web_search.ts +0 -159
  814. package/src/scripts/ant_web_search_edge_case.ts +0 -163
  815. package/src/scripts/ant_web_search_error_edge_case.ts +0 -149
  816. package/src/scripts/args.ts +0 -48
  817. package/src/scripts/bedrock-cache-debug.ts +0 -250
  818. package/src/scripts/bedrock-content-aggregation-test.ts +0 -266
  819. package/src/scripts/bedrock-merge-test.ts +0 -107
  820. package/src/scripts/bedrock-parallel-tools-test.ts +0 -204
  821. package/src/scripts/bench-prompt-cache.ts +0 -479
  822. package/src/scripts/caching.ts +0 -132
  823. package/src/scripts/cli.ts +0 -172
  824. package/src/scripts/cli2.ts +0 -133
  825. package/src/scripts/cli3.ts +0 -184
  826. package/src/scripts/cli4.ts +0 -191
  827. package/src/scripts/cli5.ts +0 -191
  828. package/src/scripts/code_exec.ts +0 -214
  829. package/src/scripts/code_exec_files.ts +0 -237
  830. package/src/scripts/code_exec_multi_session.ts +0 -237
  831. package/src/scripts/code_exec_ptc.ts +0 -335
  832. package/src/scripts/code_exec_session.ts +0 -283
  833. package/src/scripts/code_exec_simple.ts +0 -148
  834. package/src/scripts/compare_pi_vs_ours.ts +0 -1259
  835. package/src/scripts/content.ts +0 -139
  836. package/src/scripts/context-overflow-probe.ts +0 -997
  837. package/src/scripts/empty_input.ts +0 -137
  838. package/src/scripts/handoff-test.ts +0 -134
  839. package/src/scripts/local_engine.ts +0 -166
  840. package/src/scripts/local_engine_checkpointer.ts +0 -205
  841. package/src/scripts/local_engine_compile.ts +0 -263
  842. package/src/scripts/local_engine_hooks.ts +0 -226
  843. package/src/scripts/local_engine_image.ts +0 -201
  844. package/src/scripts/local_engine_ptc.ts +0 -151
  845. package/src/scripts/local_engine_workspace.ts +0 -258
  846. package/src/scripts/memory.ts +0 -107
  847. package/src/scripts/multi-agent-chain.ts +0 -332
  848. package/src/scripts/multi-agent-conditional.ts +0 -222
  849. package/src/scripts/multi-agent-document-review-chain.ts +0 -198
  850. package/src/scripts/multi-agent-hybrid-flow.ts +0 -311
  851. package/src/scripts/multi-agent-parallel-start.ts +0 -265
  852. package/src/scripts/multi-agent-parallel.ts +0 -395
  853. package/src/scripts/multi-agent-sequence.ts +0 -217
  854. package/src/scripts/multi-agent-subagent.ts +0 -246
  855. package/src/scripts/multi-agent-supervisor.ts +0 -366
  856. package/src/scripts/multi-agent-test.ts +0 -187
  857. package/src/scripts/openrouter_prompt_cache_live.ts +0 -310
  858. package/src/scripts/parallel-asymmetric-tools-test.ts +0 -275
  859. package/src/scripts/parallel-full-metadata-test.ts +0 -241
  860. package/src/scripts/parallel-tools-test.ts +0 -341
  861. package/src/scripts/preempt-probe.ts +0 -330
  862. package/src/scripts/preempt-scenarios.ts +0 -388
  863. package/src/scripts/programmatic_exec.ts +0 -387
  864. package/src/scripts/programmatic_exec_agent.ts +0 -232
  865. package/src/scripts/search.ts +0 -147
  866. package/src/scripts/sequential-full-metadata-test.ts +0 -198
  867. package/src/scripts/session_live.ts +0 -548
  868. package/src/scripts/simple.ts +0 -226
  869. package/src/scripts/single-agent-metadata-test.ts +0 -196
  870. package/src/scripts/stream.ts +0 -141
  871. package/src/scripts/subagent-configurable-inheritance.ts +0 -252
  872. package/src/scripts/subagent-event-driven-debug.ts +0 -190
  873. package/src/scripts/subagent-tools-debug.ts +0 -160
  874. package/src/scripts/subagent-usage-sink.ts +0 -176
  875. package/src/scripts/summarization-recency.ts +0 -462
  876. package/src/scripts/test-custom-prompt-key.ts +0 -145
  877. package/src/scripts/test-handoff-input.ts +0 -170
  878. package/src/scripts/test-handoff-preamble.ts +0 -278
  879. package/src/scripts/test-handoff-steering.ts +0 -430
  880. package/src/scripts/test-multi-agent-list-handoff.ts +0 -418
  881. package/src/scripts/test-parallel-agent-labeling.ts +0 -327
  882. package/src/scripts/test-parallel-handoffs.ts +0 -292
  883. package/src/scripts/test-thinking-handoff-bedrock.ts +0 -154
  884. package/src/scripts/test-thinking-handoff.ts +0 -156
  885. package/src/scripts/test-thinking-to-thinking-handoff-bedrock.ts +0 -166
  886. package/src/scripts/test-tool-before-handoff-role-order.ts +0 -276
  887. package/src/scripts/test-tools-before-handoff.ts +0 -222
  888. package/src/scripts/test_code_api.ts +0 -354
  889. package/src/scripts/thinking-bedrock.ts +0 -160
  890. package/src/scripts/thinking-vertexai.ts +0 -168
  891. package/src/scripts/thinking.ts +0 -172
  892. package/src/scripts/tool_search.ts +0 -153
  893. package/src/scripts/tools.ts +0 -163
  894. package/src/session/__tests__/JsonlSessionStore.test.ts +0 -1463
  895. package/src/session/__tests__/handlers.test.ts +0 -161
  896. package/src/specs/activity-label-observability.live.test.ts +0 -262
  897. package/src/specs/activity-label-observability.test.ts +0 -167
  898. package/src/specs/activity-label-prompt.test.ts +0 -359
  899. package/src/specs/activity-label-trace-seed.test.ts +0 -47
  900. package/src/specs/activity-phase-label.test.ts +0 -306
  901. package/src/specs/agent-handoffs.live.test.ts +0 -140
  902. package/src/specs/agent-handoffs.test.ts +0 -2465
  903. package/src/specs/anthropic.simple.test.ts +0 -453
  904. package/src/specs/ask-user-question-batch.test.ts +0 -289
  905. package/src/specs/ask-user-questions.live.test.ts +0 -185
  906. package/src/specs/ask-user-questions.test.ts +0 -293
  907. package/src/specs/azure.simple.test.ts +0 -502
  908. package/src/specs/bedrock-toolless.live.test.ts +0 -123
  909. package/src/specs/bedrock-truncation.live.test.ts +0 -191
  910. package/src/specs/cache.simple.test.ts +0 -416
  911. package/src/specs/context-accuracy.live.test.ts +0 -409
  912. package/src/specs/context-overflow-recovery.live.test.ts +0 -213
  913. package/src/specs/context-usage-event.test.ts +0 -117
  914. package/src/specs/context-usage.live.test.ts +0 -297
  915. package/src/specs/custom-event-await.test.ts +0 -304
  916. package/src/specs/deepseek.simple.test.ts +0 -290
  917. package/src/specs/deterministic-trace-id.test.ts +0 -43
  918. package/src/specs/discovered-tools.test.ts +0 -217
  919. package/src/specs/durability-checkpoint.integration.test.ts +0 -243
  920. package/src/specs/graph-subagent.live.test.ts +0 -242
  921. package/src/specs/graph-subagent.test.ts +0 -322
  922. package/src/specs/handoffCue.test.ts +0 -165
  923. package/src/specs/langfuse-callbacks.test.ts +0 -1578
  924. package/src/specs/langfuse-config.test.ts +0 -247
  925. package/src/specs/langfuse-instrumentation.test.ts +0 -393
  926. package/src/specs/langfuse-metadata.test.ts +0 -245
  927. package/src/specs/langfuse-routing.integration.test.ts +0 -844
  928. package/src/specs/langfuse-runtime-context.test.ts +0 -92
  929. package/src/specs/langfuse-span-registry.test.ts +0 -87
  930. package/src/specs/langfuse-tool-output-tracing.test.ts +0 -1858
  931. package/src/specs/langfuse-trace-shaping.test.ts +0 -591
  932. package/src/specs/moonshot.simple.test.ts +0 -367
  933. package/src/specs/multi-agent-summarization.test.ts +0 -396
  934. package/src/specs/openai.simple.test.ts +0 -315
  935. package/src/specs/openrouter.simple.test.ts +0 -275
  936. package/src/specs/preemptSeal.test.ts +0 -678
  937. package/src/specs/prune.test.ts +0 -3741
  938. package/src/specs/reasoning.test.ts +0 -201
  939. package/src/specs/run-step-timestamps.test.ts +0 -414
  940. package/src/specs/spec.utils.ts +0 -15
  941. package/src/specs/subagent.test.ts +0 -864
  942. package/src/specs/summarization-unit.test.ts +0 -973
  943. package/src/specs/summarization.test.ts +0 -3823
  944. package/src/specs/summarize-prune.test.ts +0 -376
  945. package/src/specs/thinking-handoff.test.ts +0 -621
  946. package/src/specs/thinking-prune.test.ts +0 -827
  947. package/src/specs/token-accounting-e2e.test.ts +0 -1034
  948. package/src/specs/token-accounting-pipeline.test.ts +0 -1008
  949. package/src/specs/token-distribution-edge-case.test.ts +0 -315
  950. package/src/specs/token-memoization.test.ts +0 -40
  951. package/src/specs/tokens.test.ts +0 -1000
  952. package/src/specs/tool-error-resume.test.ts +0 -194
  953. package/src/specs/tool-error.test.ts +0 -198
  954. package/src/specs/vllm-reasoning-toolcalls.test.ts +0 -340
  955. package/src/stream.dispatch.test.ts +0 -63
  956. package/src/stream.test.ts +0 -144
  957. package/src/summarization/__tests__/aggregator.test.ts +0 -236
  958. package/src/summarization/__tests__/node.test.ts +0 -1996
  959. package/src/summarization/__tests__/trigger.test.ts +0 -149
  960. package/src/summarization/chunkHandler.test.ts +0 -196
  961. package/src/test/mockTools.ts +0 -386
  962. package/src/tools/Calculator.test.ts +0 -278
  963. package/src/tools/__tests__/BashExecutor.test.ts +0 -108
  964. package/src/tools/__tests__/CloudflareSandboxExecution.test.ts +0 -939
  965. package/src/tools/__tests__/CodeApiAuthHeaders.test.ts +0 -858
  966. package/src/tools/__tests__/CodeExecutor.stateful.test.ts +0 -124
  967. package/src/tools/__tests__/LocalExecutionRoots.test.ts +0 -8
  968. package/src/tools/__tests__/LocalExecutionTools.test.ts +0 -2733
  969. package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.ts +0 -318
  970. package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +0 -1557
  971. package/src/tools/__tests__/ReadFile.test.ts +0 -44
  972. package/src/tools/__tests__/SkillTool.test.ts +0 -442
  973. package/src/tools/__tests__/SubagentExecutor.test.ts +0 -3728
  974. package/src/tools/__tests__/SubagentReplay.test.ts +0 -329
  975. package/src/tools/__tests__/SubagentTool.test.ts +0 -149
  976. package/src/tools/__tests__/ToolNode.breakerSignal.test.ts +0 -595
  977. package/src/tools/__tests__/ToolNode.eagerEventExecution.test.ts +0 -1191
  978. package/src/tools/__tests__/ToolNode.invalidToolCalls.test.ts +0 -757
  979. package/src/tools/__tests__/ToolNode.langfuse.test.ts +0 -57
  980. package/src/tools/__tests__/ToolNode.onResultCompletion.test.ts +0 -736
  981. package/src/tools/__tests__/ToolNode.outputReferences.test.ts +0 -1710
  982. package/src/tools/__tests__/ToolNode.runtimeState.test.ts +0 -120
  983. package/src/tools/__tests__/ToolNode.session.test.ts +0 -1352
  984. package/src/tools/__tests__/ToolNode.streamLimits.test.ts +0 -69
  985. package/src/tools/__tests__/ToolSearch.integration.test.ts +0 -161
  986. package/src/tools/__tests__/ToolSearch.test.ts +0 -1227
  987. package/src/tools/__tests__/annotateMessagesForLLM.test.ts +0 -561
  988. package/src/tools/__tests__/directToolHITLResumeScope.test.ts +0 -980
  989. package/src/tools/__tests__/directToolHooks.test.ts +0 -700
  990. package/src/tools/__tests__/eagerEventExecution.session.test.ts +0 -92
  991. package/src/tools/__tests__/handlers.test.ts +0 -997
  992. package/src/tools/__tests__/hitl.test.ts +0 -4663
  993. package/src/tools/__tests__/intentArg.test.ts +0 -357
  994. package/src/tools/__tests__/intentCoverage.test.ts +0 -139
  995. package/src/tools/__tests__/localToolNames.test.ts +0 -75
  996. package/src/tools/__tests__/skillCatalog.test.ts +0 -161
  997. package/src/tools/__tests__/subagentHooks.test.ts +0 -1651
  998. package/src/tools/__tests__/toolOutputReferences.test.ts +0 -515
  999. package/src/tools/__tests__/workspaceSeam.test.ts +0 -147
  1000. package/src/tools/local/__tests__/FileCheckpointer.test.ts +0 -162
  1001. package/src/tools/local/__tests__/editStrategies.test.ts +0 -134
  1002. package/src/tools/search/content.test.ts +0 -173
  1003. package/src/tools/search/crw.test.ts +0 -836
  1004. package/src/tools/search/format.test.ts +0 -242
  1005. package/src/tools/search/http-agent.test.ts +0 -133
  1006. package/src/tools/search/jina-reranker.test.ts +0 -306
  1007. package/src/tools/search/keenable-scraper.test.ts +0 -153
  1008. package/src/tools/search/keenable.test.ts +0 -183
  1009. package/src/tools/search/outcome.test.ts +0 -90
  1010. package/src/tools/search/output.md +0 -2775
  1011. package/src/tools/search/rag-api-reranker.test.ts +0 -891
  1012. package/src/tools/search/source-processing.test.ts +0 -516
  1013. package/src/tools/search/tavily.test.ts +0 -965
  1014. package/src/tools/search/test.html +0 -884
  1015. package/src/tools/search/test.md +0 -643
  1016. package/src/tools/subagent/__tests__/SubagentExecutionRegistry.test.ts +0 -637
  1017. package/src/tools/subagent/__tests__/SubagentExecutor.lazy.test.ts +0 -3054
  1018. package/src/tools/subagent/__tests__/childGraphConfig.test.ts +0 -521
  1019. package/src/utils/__tests__/apportion.test.ts +0 -32
  1020. package/src/utils/__tests__/errors.test.ts +0 -270
  1021. package/src/utils/__tests__/fixtures/contextOverflowSignatures.ts +0 -336
  1022. package/src/utils/__tests__/redactSecrets.test.ts +0 -56
  1023. package/src/utils/__tests__/truncation.test.ts +0 -66
  1024. package/src/utils/llm.test.ts +0 -18
  1025. package/src/utils/proxy.test.ts +0 -176
  1026. package/src/utils/toolContent.test.ts +0 -1432
@@ -1 +1 @@
1
- {"version":3,"file":"run.mjs","names":[],"sources":["../../src/run.ts"],"sourcesContent":["// src/run.ts\nimport { nanoid } from 'nanoid';\nimport { PromptTemplate } from '@langchain/core/prompts';\nimport { RunnableLambda } from '@langchain/core/runnables';\nimport { AzureChatOpenAI, ChatOpenAI } from '@langchain/openai';\nimport { BaseCallbackHandler } from '@langchain/core/callbacks/base';\nimport {\n Command,\n INTERRUPT,\n MemorySaver,\n isInterrupted,\n} from '@langchain/langgraph';\nimport {\n AIMessage,\n BaseMessage,\n HumanMessage,\n SystemMessage,\n} from '@langchain/core/messages';\nimport type { StringPromptValue } from '@langchain/core/prompt_values';\nimport type { MessageContentComplex } from '@langchain/core/messages';\nimport type { RunnableConfig } from '@langchain/core/runnables';\nimport type { MultiAgentGraph } from '@/graphs/MultiAgentGraph';\nimport type { StandardGraph } from '@/graphs/Graph';\nimport type { HookRegistry } from '@/hooks';\nimport type * as t from '@/types';\nimport {\n requireValidSubagentResumeManifest,\n stripSubagentResumeManifest,\n SUBAGENT_RESUME_ATTEMPT_CONFIG_KEY,\n SUBAGENT_RESUME_MANIFEST_CONFIG_KEY,\n} from '@/tools/subagent/SubagentReplay';\nimport {\n ACTIVITY_PHASE_LABEL_PROMPT,\n ACTIVITY_LABEL_PROMPT,\n buildActivityLabelPrompt,\n buildActivityPhaseLabelPrompt,\n normalizeActivityPhaseLabel,\n} from '@/prompts/activityLabel';\nimport {\n createLangfuseTraceMetadata,\n createLangfuseHandler,\n disposeLangfuseHandler,\n getLangfuseTraceName,\n isLangfuseCallbackHandler,\n withLangfuseAttributes,\n} from '@/langfuse';\nimport {\n hasToolOutputTracingConfig,\n resolveLangfuseConfig,\n resolveToolOutputTracingConfig,\n} from '@/langfuseConfig';\nimport {\n appendCallbacks,\n filterCallbacks,\n findCallback,\n type CallbackEntry,\n} from '@/utils/callbacks';\nimport {\n resolveLangfuseRuntimeScope,\n withLangfuseRuntimeScope,\n} from '@/langfuseRuntimeScope';\nimport {\n Callback,\n GraphEvents,\n TitleMethod,\n DEFAULT_RECURSION_LIMIT,\n} from '@/common';\nimport {\n createCompletionTitleRunnable,\n createTitleRunnable,\n} from '@/utils/title';\nimport { applyGraphRuntimeConfig } from '@/graphs/applyGraphRuntimeConfig';\nimport { createTokenCounter, encodingForModel } from '@/utils/tokens';\nimport { initializeLangfuseTracing } from './instrumentation';\nimport { getTraceIdSeed } from '@/langfuseRuntimeContext';\nimport { createGraph } from '@/graphs/createGraph';\nimport { resolveMaxSeals } from '@/llm/preempt';\nimport { initializeModel } from '@/llm/init';\nimport { HandlerRegistry } from '@/events';\nimport { isOpenAILike } from '@/utils/llm';\nimport { executeHooks } from '@/hooks';\n\nexport const defaultOmitOptions = new Set([\n 'stream',\n 'thinking',\n 'streaming',\n 'maxTokens',\n 'clientOptions',\n 'thinkingConfig',\n 'thinkingBudget',\n 'includeThoughts',\n 'maxOutputTokens',\n 'additionalModelRequestFields',\n]);\n\nconst ACTIVITY_LABEL_TRACE_NAME = 'LibreChat Activity Label';\nconst ACTIVITY_PHASE_TRACE_NAME = 'LibreChat Activity Phase';\n\nconst CUSTOM_GRAPH_EVENTS = new Set<string>([\n GraphEvents.ON_AGENT_UPDATE,\n GraphEvents.ON_RUN_STEP,\n GraphEvents.ON_RUN_STEP_DELTA,\n GraphEvents.ON_RUN_STEP_COMPLETED,\n GraphEvents.ON_RUN_STEP_CLOSED,\n GraphEvents.ON_MESSAGE_DELTA,\n GraphEvents.ON_REASONING_DELTA,\n GraphEvents.ON_TOOL_EXECUTE,\n GraphEvents.ON_SUMMARIZE_START,\n GraphEvents.ON_SUMMARIZE_DELTA,\n GraphEvents.ON_SUMMARIZE_COMPLETE,\n GraphEvents.ON_SUBAGENT_UPDATE,\n GraphEvents.ON_AGENT_LOG,\n GraphEvents.ON_CONTEXT_USAGE,\n GraphEvents.ON_CUSTOM_EVENT,\n]);\n\nconst DIRECT_DISPATCHED_STEP_EVENTS = new Set<string>([\n GraphEvents.ON_RUN_STEP,\n GraphEvents.ON_RUN_STEP_DELTA,\n GraphEvents.ON_RUN_STEP_CLOSED,\n GraphEvents.ON_MESSAGE_DELTA,\n GraphEvents.ON_REASONING_DELTA,\n]);\n\nfunction getStepScopedEventId(data: unknown): string | undefined {\n if (data == null || typeof data !== 'object') {\n return undefined;\n }\n const candidate = data as { id?: unknown };\n return typeof candidate.id === 'string' ? candidate.id : undefined;\n}\n\n/**\n * Narrows an ON_RUN_STEP_COMPLETED payload (`{ result: ToolCompleteEvent }`)\n * to the ids step closure needs. Returns undefined for malformed payloads and\n * the resume race's empty step id.\n */\nfunction getToolCompletion(\n data: unknown\n): { stepId: string; toolCallId?: string; completedAt?: number } | undefined {\n if (data == null || typeof data !== 'object') {\n return undefined;\n }\n const { result } = data as { result?: unknown };\n if (result == null || typeof result !== 'object') {\n return undefined;\n }\n const candidate = result as {\n id?: unknown;\n tool_call?: { id?: unknown };\n completed_at?: unknown;\n };\n if (typeof candidate.id !== 'string' || candidate.id === '') {\n return undefined;\n }\n const toolCallId = candidate.tool_call?.id;\n const completedAt = candidate.completed_at;\n return {\n stepId: candidate.id,\n ...(typeof toolCallId === 'string' ? { toolCallId } : {}),\n ...(typeof completedAt === 'number' ? { completedAt } : {}),\n };\n}\n\nfunction isLangGraphResumeMapForInterrupt(\n value: unknown,\n interruptId: string\n): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object' || Array.isArray(value)) {\n return false;\n }\n return Object.prototype.hasOwnProperty.call(value, interruptId);\n}\n\nfunction getInterruptHookSessionId(payload: unknown): string | undefined {\n const publicPayload = stripSubagentResumeManifest(payload);\n if (\n publicPayload == null ||\n typeof publicPayload !== 'object' ||\n (publicPayload as { type?: unknown }).type !== 'tool_approval'\n ) {\n return undefined;\n }\n const sessionId = (publicPayload as { hook_session_id?: unknown })\n .hook_session_id;\n return typeof sessionId === 'string' && sessionId.length > 0\n ? sessionId\n : undefined;\n}\n\ntype InterruptStateSnapshot = {\n config?: RunnableConfig;\n values?: { messages?: BaseMessage[] };\n tasks?: Array<{\n interrupts?: Array<{ id?: string; value?: unknown }>;\n }>;\n};\n\ntype WorkflowWithStateHistory = {\n getState?(config: RunnableConfig): Promise<InterruptStateSnapshot>;\n getStateHistory?(\n config: RunnableConfig\n ): AsyncIterableIterator<InterruptStateSnapshot>;\n};\n\nfunction getFirstPersistedInterrupt(\n snapshot: InterruptStateSnapshot\n): { id: string; value: unknown } | undefined {\n for (const task of snapshot.tasks ?? []) {\n for (const pendingInterrupt of task.interrupts ?? []) {\n if (\n typeof pendingInterrupt.id === 'string' &&\n pendingInterrupt.id.length > 0\n ) {\n return { id: pendingInterrupt.id, value: pendingInterrupt.value };\n }\n }\n }\n return undefined;\n}\n\nfunction getPersistedMessages(\n snapshot: InterruptStateSnapshot\n): BaseMessage[] | undefined {\n const messages = snapshot.values?.messages;\n if (!Array.isArray(messages) || !messages.every(BaseMessage.isInstance)) {\n return undefined;\n }\n return messages;\n}\n\ntype ResumeCommandUpdate = ConstructorParameters<typeof Command>[0]['update'];\n\nfunction getResumeUpdateMessages(\n update: ResumeCommandUpdate\n): BaseMessage[] | undefined {\n if (update == null) {\n return undefined;\n }\n const messages = Array.isArray(update)\n ? update.find(([key]) => key === 'messages')?.[1]\n : update.messages;\n if (BaseMessage.isInstance(messages)) {\n return [messages];\n }\n if (!Array.isArray(messages) || !messages.every(BaseMessage.isInstance)) {\n return undefined;\n }\n return messages;\n}\n\nexport class Run<_T extends t.BaseGraphState> {\n id: string;\n private tokenCounter?: t.TokenCounter;\n private handlerRegistry?: HandlerRegistry;\n private hookRegistry?: HookRegistry;\n private humanInTheLoop?: t.HumanInTheLoopConfig;\n private langfuse?: t.LangfuseConfig;\n private toolOutputReferences?: t.ToolOutputReferencesConfig;\n private eagerEventToolExecution?: t.EagerEventToolExecutionConfig;\n private codeSessionToolNames?: string[];\n private interruptingToolNames?: string[];\n private toolExecution?: t.ToolExecutionConfig;\n private subagentUsageSink?: t.SubagentUsageSink;\n private preemption?: t.StreamPreemption;\n private streamLimits?: t.StreamLimits;\n private indexTokenCountMap?: Record<string, number>;\n calibrationRatio: number = 1;\n graphRunnable?: t.CompiledStateWorkflow;\n Graph: StandardGraph | MultiAgentGraph | undefined;\n returnContent: boolean = false;\n private skipCleanup: boolean = false;\n /**\n * Whether the compiled graph was built with a checkpointer (host-supplied\n * or the HITL `MemorySaver` fallback). Captured at graph creation because\n * the constructor can later overwrite `Graph.compileOptions` with the raw\n * caller options, dropping the fallback checkpointer from that metadata.\n */\n private hasCheckpointer: boolean = false;\n private _streamResult: t.MessageContentComplex[] | undefined;\n /**\n * Captured interrupt payload typed as `unknown` because the SDK\n * does not validate the runtime shape — custom graph nodes can\n * raise interrupts with arbitrary payloads (not just the SDK's\n * `HumanInterruptPayload` union). The public `getInterrupt<T>()`\n * lets callers assert the type they expect.\n */\n private _interrupt: t.RunInterruptResult<unknown> | undefined;\n /** Per-run sequence for batch-unique activity-label trace-seed fallbacks. */\n private activityLabelSeq = 0;\n /** Per-run sequence for parent activity-phase trace and invocation ids. */\n private activityPhaseLabelSeq = 0;\n /** Latest user turn used to keep detached phase roots conversation-shaped. */\n private activityPhaseTraceInput?: string;\n /** Distinguishes sibling forks started from the same explicit checkpoint. */\n private checkpointForkSeq = 0;\n private _haltedReason: string | undefined;\n\n private constructor(config: Partial<t.RunConfig>) {\n const runId = config.runId ?? '';\n if (!runId) {\n throw new Error('Run ID not provided');\n }\n\n this.id = runId;\n this.tokenCounter = config.tokenCounter;\n this.indexTokenCountMap = config.indexTokenCountMap;\n if (config.calibrationRatio != null && config.calibrationRatio > 0) {\n this.calibrationRatio = config.calibrationRatio;\n }\n\n const handlerRegistry = new HandlerRegistry();\n\n if (config.customHandlers) {\n for (const [eventType, handler] of Object.entries(\n config.customHandlers\n )) {\n handlerRegistry.register(eventType, handler);\n }\n }\n\n this.handlerRegistry = handlerRegistry;\n this.hookRegistry = config.hooks;\n this.humanInTheLoop = config.humanInTheLoop;\n this.langfuse = config.langfuse;\n this.toolOutputReferences = config.toolOutputReferences;\n this.eagerEventToolExecution = config.eagerEventToolExecution;\n this.codeSessionToolNames = config.codeSessionToolNames;\n this.interruptingToolNames = config.interruptingToolNames;\n this.toolExecution = config.toolExecution;\n this.subagentUsageSink = config.subagentUsageSink;\n this.preemption = config.preemption;\n this.streamLimits = config.streamLimits;\n\n if (!config.graphConfig) {\n throw new Error('Graph config not provided');\n }\n\n /** Handle different graph types */\n if (config.graphConfig.type === 'multi-agent') {\n this.graphRunnable = this.createMultiAgentGraph(config.graphConfig);\n if (this.Graph) {\n this.Graph.handlerRegistry = handlerRegistry;\n }\n } else {\n /** Default to legacy graph for 'standard' or undefined type */\n this.graphRunnable = this.createLegacyGraph(config.graphConfig);\n if (this.Graph) {\n this.Graph.handlerRegistry = handlerRegistry;\n }\n }\n\n if (config.initialSessions && this.Graph) {\n for (const [key, value] of config.initialSessions) {\n this.Graph.sessions.set(key, value);\n }\n }\n\n this.returnContent = config.returnContent ?? false;\n this.skipCleanup = config.skipCleanup ?? false;\n }\n\n private createLegacyGraph(\n config: t.LegacyGraphConfig | t.StandardGraphConfig\n ): t.CompiledStateWorkflow {\n let agentConfig: t.AgentInputs;\n let signal: AbortSignal | undefined;\n\n /** Check if this is a multi-agent style config (has agents array) */\n if ('agents' in config && Array.isArray(config.agents)) {\n if (config.agents.length === 0) {\n throw new Error('At least one agent must be provided');\n }\n agentConfig = config.agents[0];\n signal = config.signal;\n } else {\n /** Legacy path: build agent config from llmConfig */\n const {\n type: _type,\n llmConfig,\n signal: legacySignal,\n tools = [],\n ...agentInputs\n } = config as t.LegacyGraphConfig;\n const { provider, ...clientOptions } = llmConfig;\n\n agentConfig = {\n ...agentInputs,\n tools,\n provider,\n clientOptions,\n agentId: 'default',\n };\n signal = legacySignal;\n }\n\n const standardGraph = createGraph({\n kind: 'standard',\n input: {\n signal,\n runId: this.id,\n agents: [agentConfig],\n langfuse: this.langfuse,\n tokenCounter: this.tokenCounter,\n indexTokenCountMap: this.indexTokenCountMap,\n calibrationRatio: this.calibrationRatio,\n subagentUsageSink: this.subagentUsageSink,\n preemption: this.preemption,\n streamLimits: this.streamLimits,\n },\n });\n /** Propagate compile options from graph config */\n standardGraph.compileOptions = this.applyHITLCheckpointerFallback(\n config.compileOptions\n );\n this.hasCheckpointer = standardGraph.compileOptions?.checkpointer != null;\n applyGraphRuntimeConfig(standardGraph, {\n hookRegistry: this.hookRegistry,\n humanInTheLoop: this.humanInTheLoop,\n toolOutputReferences: this.toolOutputReferences,\n eagerEventToolExecution: this.eagerEventToolExecution,\n codeSessionToolNames: this.codeSessionToolNames,\n interruptingToolNames: this.interruptingToolNames,\n toolExecution: this.toolExecution,\n });\n this.Graph = standardGraph;\n return standardGraph.createWorkflow();\n }\n\n private createMultiAgentGraph(\n config: t.MultiAgentGraphConfig\n ): t.CompiledStateWorkflow {\n const { agents, edges, compileOptions } = config;\n\n const multiAgentGraph = createGraph({\n kind: 'multi-agent',\n input: {\n runId: this.id,\n agents,\n edges,\n langfuse: this.langfuse,\n tokenCounter: this.tokenCounter,\n indexTokenCountMap: this.indexTokenCountMap,\n calibrationRatio: this.calibrationRatio,\n subagentUsageSink: this.subagentUsageSink,\n preemption: this.preemption,\n streamLimits: this.streamLimits,\n },\n });\n\n multiAgentGraph.compileOptions =\n this.applyHITLCheckpointerFallback(compileOptions);\n this.hasCheckpointer = multiAgentGraph.compileOptions?.checkpointer != null;\n\n applyGraphRuntimeConfig(multiAgentGraph, {\n hookRegistry: this.hookRegistry,\n humanInTheLoop: this.humanInTheLoop,\n toolOutputReferences: this.toolOutputReferences,\n eagerEventToolExecution: this.eagerEventToolExecution,\n codeSessionToolNames: this.codeSessionToolNames,\n interruptingToolNames: this.interruptingToolNames,\n toolExecution: this.toolExecution,\n });\n this.Graph = multiAgentGraph;\n return multiAgentGraph.createWorkflow();\n }\n\n /**\n * When the host opted into HITL via `humanInTheLoop: { enabled: true }`\n * and did not supply a checkpointer, install an in-memory `MemorySaver`\n * so `interrupt()` can persist checkpoints and `Command({ resume })`\n * can rebuild state. The fallback is intentionally process-local:\n * production hosts that need durable resumption across processes /\n * restarts must provide their own checkpointer (Redis, Postgres, etc.)\n * on `compileOptions.checkpointer`.\n *\n * No-op when HITL is off (the default — omitted, or\n * `{ enabled: false }`) or the host already supplied a checkpointer\n * of their own. See `HumanInTheLoopConfig` JSDoc for the rationale\n * behind the default-off stance.\n */\n private applyHITLCheckpointerFallback(\n compileOptions: t.CompileOptions | undefined\n ): t.CompileOptions | undefined {\n if (this.humanInTheLoop?.enabled !== true) {\n return compileOptions;\n }\n if (compileOptions?.checkpointer != null) {\n return compileOptions;\n }\n return {\n ...(compileOptions ?? {}),\n checkpointer: new MemorySaver(),\n };\n }\n\n /**\n * Run RunStart + UserPromptSubmit hooks before the graph stream\n * begins, accumulate any `additionalContext` strings into the input\n * messages, and short-circuit when a hook signals the run should not\n * proceed (deny / ask decision on the prompt, or `preventContinuation`\n * on either hook).\n *\n * Returns `true` when the caller should bail with `undefined` (run\n * was halted before any model call); returns `false` to proceed\n * into the stream loop.\n *\n * ## Side effects\n *\n * On the success path:\n * - Mutates `stateInputs.messages` in place to append a\n * consolidated `HumanMessage` carrying any hook\n * `additionalContext` strings. Safe because the host owns the\n * array and `processStream` is the only consumer until LangGraph\n * reads it.\n *\n * On the halt path (returning `true`):\n * - Sets `this._haltedReason` so callers (and the eventual host)\n * can distinguish a hook-driven halt from a natural completion.\n * - Calls `registry.clearSession(this.id)` and\n * `registry.clearHaltSignal(this.id)` because no resume is\n * expected from a pre-stream halt — the run never entered the\n * graph, so the session/halt state for this run would otherwise\n * leak to the next `processStream` invocation on the same\n * registry. Other concurrent runs on the same registry are\n * untouched (halt signals are scoped per session id).\n * - Sets `config.callbacks = undefined` to drop the callback\n * references the caller built (langfuse handler, custom event\n * handler, etc.) since they won't be exercised. Mirrors the\n * equivalent cleanup the `processStream` `finally` block does\n * on the natural-completion path.\n */\n private async runPreStreamHooks(\n stateInputs: t.IState,\n threadId: string | undefined,\n config: Partial<RunnableConfig>\n ): Promise<boolean> {\n const registry = this.hookRegistry;\n /**\n * Defensive guard: `processStream` already validated `this.Graph`\n * before calling this helper, but TypeScript can't propagate that\n * narrowing across method boundaries. The check keeps the body\n * free of `this.Graph!` non-null assertions.\n */\n if (registry == null || this.Graph == null) {\n return false;\n }\n\n const preStreamContexts: string[] = [];\n\n const runStartResult = await executeHooks({\n registry,\n input: {\n hook_event_name: 'RunStart',\n runId: this.id,\n threadId,\n agentId: this.Graph.defaultAgentId,\n messages: stateInputs.messages,\n },\n sessionId: this.id,\n });\n for (const ctx of runStartResult.additionalContexts) {\n preStreamContexts.push(ctx);\n }\n /**\n * Honor `preventContinuation` from RunStart before the stream\n * starts. Mid-flight halts (from tool/compact/subagent hooks)\n * route through `HookRegistry.haltRun` and are polled by the\n * stream loop in `processStream` — different mechanism, same\n * intent.\n */\n if (runStartResult.preventContinuation === true) {\n this._haltedReason = runStartResult.stopReason ?? 'preventContinuation';\n registry.clearSession(this.id);\n registry.clearHaltSignal(this.id);\n config.callbacks = undefined;\n return true;\n }\n\n const lastHuman = findLastMessageOfType(stateInputs.messages, 'human');\n if (lastHuman != null) {\n const promptResult = await executeHooks({\n registry,\n input: {\n hook_event_name: 'UserPromptSubmit',\n runId: this.id,\n threadId,\n agentId: this.Graph.defaultAgentId,\n prompt: extractPromptText(lastHuman),\n // attachments: not yet wired — Phase 2 will extract\n // non-text content blocks (images, files) from messages\n },\n sessionId: this.id,\n });\n if (\n promptResult.decision === 'deny' ||\n promptResult.decision === 'ask' ||\n promptResult.preventContinuation === true\n ) {\n /**\n * Always set `_haltedReason` so the host can call\n * `getHaltReason()` and distinguish a hook-blocked prompt\n * from a natural empty-output completion. Three signals can\n * land here, each with its own canonical reason string when\n * the hook didn't supply one.\n */\n if (promptResult.preventContinuation === true) {\n this._haltedReason = promptResult.stopReason ?? 'preventContinuation';\n } else if (promptResult.decision === 'deny') {\n this._haltedReason = promptResult.reason ?? 'prompt_denied';\n } else {\n this._haltedReason =\n promptResult.reason ?? 'prompt_requires_approval';\n }\n registry.clearSession(this.id);\n registry.clearHaltSignal(this.id);\n config.callbacks = undefined;\n return true;\n }\n for (const ctx of promptResult.additionalContexts) {\n preStreamContexts.push(ctx);\n }\n }\n\n if (preStreamContexts.length > 0) {\n /**\n * Wraps the joined hook contexts as a `HumanMessage` even though\n * the intent is system-level guidance. Using a `SystemMessage`\n * mid-conversation is rejected by Anthropic and Google providers\n * (system messages must be the leading entry), so the LangChain\n * convention — also used by `ToolNode.convertInjectedMessages`\n * — is `HumanMessage` carrying `additional_kwargs.role` as a\n * marker for hosts inspecting state. The model still sees a\n * user-role message; the `role: 'system'` field is metadata\n * only. Hosts that want a true system message should compose\n * it into the agent's `instructions` config instead.\n */\n stateInputs.messages.push(\n new HumanMessage({\n content: preStreamContexts.join('\\n\\n'),\n additional_kwargs: { role: 'system', source: 'hook' },\n })\n );\n }\n\n return false;\n }\n\n static async create<T extends t.BaseGraphState>(\n config: t.RunConfig\n ): Promise<Run<T>> {\n /** Create tokenCounter if indexTokenCountMap is provided but tokenCounter is not */\n if (config.indexTokenCountMap && !config.tokenCounter) {\n const gc = config.graphConfig;\n const clientOpts =\n 'agents' in gc ? gc.agents[0]?.clientOptions : gc.clientOptions;\n const model = (clientOpts as { model?: string } | undefined)?.model ?? '';\n config.tokenCounter = await createTokenCounter(encodingForModel(model));\n }\n return new Run<T>(config);\n }\n\n getRunMessages(): BaseMessage[] | undefined {\n if (!this.Graph) {\n throw new Error(\n 'Graph not initialized. Make sure to use Run.create() to instantiate the Run.'\n );\n }\n return this.Graph.getRunMessages();\n }\n\n getChildCheckpointThreadIds(): string[] {\n return this.Graph?.getChildCheckpointThreadIds() ?? [];\n }\n\n /**\n * Returns a defensive snapshot of tools discovered by the current run.\n * Pass an agent id for that context, or omit it for the ordered union across\n * contexts. Interrupted state is available immediately for host persistence;\n * completed runs retain their final snapshot through graph cleanup.\n */\n getDiscoveredTools(agentId?: string): string[] {\n if (!this.Graph) {\n throw new Error(\n 'Graph not initialized. Make sure to use Run.create() to instantiate the Run.'\n );\n }\n return this.Graph.getDiscoveredTools(agentId);\n }\n\n /**\n * Returns the current calibration ratio (EMA of provider-vs-estimate token ratios).\n * Hosts should persist this value and pass it back as `RunConfig.calibrationRatio`\n * on the next run for the same conversation so the pruner starts with an accurate\n * scaling factor instead of the default (1).\n */\n getCalibrationRatio(): number {\n return this.calibrationRatio;\n }\n\n getResolvedInstructionOverhead(): number | undefined {\n return this.Graph?.getResolvedInstructionOverhead();\n }\n\n /**\n * Cooperative-seal counters for this run. `emptyBoundaries` is the one to\n * watch: it counts seals whose `PreemptBoundary` produced nothing to\n * inject, which ends the turn early and leaves the answer unfinished.\n */\n getPreemptStats(): t.PreemptStats {\n return this.Graph?.getPreemptStats() ?? { seals: 0, emptyBoundaries: 0 };\n }\n\n getToolCount(): number {\n return this.Graph?.getToolCount() ?? 0;\n }\n\n /**\n * Creates a custom event callback handler that intercepts custom events\n * and processes them through our handler registry instead of EventStreamCallbackHandler\n */\n private createCustomEventCallback() {\n return async (\n eventName: string,\n data: unknown,\n runId: string,\n tags?: string[],\n metadata?: Record<string, unknown>\n ): Promise<void> => {\n // Step-scoped SDK events are dispatched directly via the handler\n // registry first. Skip callback-based echoes to prevent double\n // handling when LangGraph invokes custom callbacks more than once.\n const stepScopedEventId = getStepScopedEventId(data);\n if (\n DIRECT_DISPATCHED_STEP_EVENTS.has(eventName) &&\n this.Graph != null &&\n stepScopedEventId != null &&\n this.Graph.hasHandlerDispatchedEvent(eventName, stepScopedEventId)\n ) {\n return;\n }\n const handler = this.handlerRegistry?.getHandler(eventName);\n /**\n * Tool completions arriving over the custom-event channel are the only\n * signal ToolNode (which holds no graph reference) emits — observe them\n * here to drive step closure. Runs in `finally`, independent of handler\n * registration, so an absent or throwing host handler cannot lose the\n * close; duplicate callback echoes are absorbed by the terminal-status\n * guard in `closeRunStep`.\n */\n try {\n if (handler && this.Graph) {\n return await handler.handle(\n eventName,\n data as\n | t.StreamEventData\n | t.ModelEndData\n | t.RunStep\n | t.RunStepDeltaEvent\n | t.RunStepClosedEvent\n | t.MessageDeltaEvent\n | t.ReasoningDeltaEvent\n | { result: t.ToolEndEvent },\n metadata,\n this.Graph\n );\n }\n } finally {\n if (\n eventName === GraphEvents.ON_RUN_STEP_COMPLETED &&\n this.Graph != null\n ) {\n const completion = getToolCompletion(data);\n if (completion != null) {\n /**\n * The producer stamped `completed_at` before dispatch. Carrying it\n * through keeps the recorded duration the tool's, not the host\n * handler's — this runs after an arbitrarily slow handler resolves.\n */\n await this.Graph.recordStepCompletion(completion.stepId, {\n toolCallId: completion.toolCallId,\n metadata,\n at: completion.completedAt,\n });\n }\n }\n }\n };\n }\n\n private shouldClearHookSession(streamThrew: boolean): boolean {\n return this._interrupt == null || this._haltedReason != null || streamThrew;\n }\n\n private isAwaitingResume(streamThrew: boolean): boolean {\n return (\n this._interrupt != null && this._haltedReason == null && !streamThrew\n );\n }\n\n /**\n * Terminal status for steps still open at end-of-run: `cancelled` for\n * intentional stops (caller abort, hook halt), `failed` for unexpected\n * stream errors, `completed` for a natural finish. Reads `_haltedReason`\n * behind a method boundary on purpose — it is assigned inside the\n * `consumeStream` closure, which control-flow narrowing cannot see.\n */\n private resolveSweepStatus(\n streamThrew: boolean,\n streamAborted: boolean\n ): Exclude<t.RunStepStatus, 'in_progress'> {\n if (streamThrew) {\n return streamAborted ? 'cancelled' : 'failed';\n }\n if (this._haltedReason != null) {\n return 'cancelled';\n }\n return 'completed';\n }\n\n private getStreamLangfuseConfig(\n graph: StandardGraph | MultiAgentGraph\n ): t.LangfuseConfig | undefined {\n const primaryContext = graph.agentContexts.get(graph.defaultAgentId);\n if (primaryContext != null) {\n return resolveLangfuseConfig(this.langfuse, primaryContext.langfuse);\n }\n\n for (const context of graph.agentContexts.values()) {\n const langfuse = resolveLangfuseConfig(this.langfuse, context.langfuse);\n if (langfuse != null) {\n return langfuse;\n }\n }\n\n return this.langfuse;\n }\n\n private getStreamToolOutputTracingLangfuseConfig(\n graph: StandardGraph | MultiAgentGraph\n ): t.LangfuseConfig | undefined {\n const toolOutputTracingConfigs = Array.from(graph.agentContexts.values())\n .map((context) => {\n return resolveLangfuseConfig(this.langfuse, context.langfuse)\n ?.toolOutputTracing;\n })\n .filter((config): config is t.LangfuseToolOutputTracingConfig => {\n return config != null;\n });\n\n if (toolOutputTracingConfigs.length === 0) {\n return this.langfuse?.toolOutputTracing != null\n ? { toolOutputTracing: this.langfuse.toolOutputTracing }\n : undefined;\n }\n if (toolOutputTracingConfigs.length === 1) {\n return { toolOutputTracing: toolOutputTracingConfigs[0] };\n }\n\n let enabled: boolean | undefined;\n let redactionText: string | undefined;\n let redactedToolNameMatchMode: 'exact' | 'partial' | undefined;\n const redactedToolNames = new Set<string>();\n\n for (const config of toolOutputTracingConfigs) {\n if (config.enabled === false) {\n enabled = false;\n } else if (enabled !== false && config.enabled != null) {\n enabled = config.enabled;\n }\n\n redactionText ??= config.redactionText;\n if (config.redactedToolNameMatchMode === 'partial') {\n redactedToolNameMatchMode = 'partial';\n } else {\n redactedToolNameMatchMode ??= config.redactedToolNameMatchMode;\n }\n\n for (const toolName of config.redactedToolNames ?? []) {\n redactedToolNames.add(toolName);\n }\n }\n\n return {\n toolOutputTracing: {\n ...(enabled != null ? { enabled } : {}),\n ...(redactedToolNames.size > 0\n ? { redactedToolNames: Array.from(redactedToolNames) }\n : {}),\n ...(redactedToolNameMatchMode != null\n ? { redactedToolNameMatchMode }\n : {}),\n ...(redactionText != null ? { redactionText } : {}),\n },\n };\n }\n\n async processStream(\n inputs: t.IState | Command,\n callerConfig: t.RunStreamConfig,\n streamOptions?: t.EventStreamOptions\n ): Promise<MessageContentComplex[] | undefined> {\n if (this.graphRunnable == null) {\n throw new Error(\n 'Run not initialized. Make sure to use Run.create() to instantiate the Run.'\n );\n }\n if (!this.Graph) {\n throw new Error(\n 'Graph not initialized. Make sure to use Run.create() to instantiate the Run.'\n );\n }\n const graphRunnable = this.graphRunnable;\n const graph = this.Graph;\n\n /**\n * `Command` inputs (`Command({ resume, update?, goto? })`) are\n * resume-mode invocations: LangGraph rebuilds graph state from the\n * checkpointer, so we skip RunStart / UserPromptSubmit hooks (no\n * new prompt to evaluate) and read run-state from the Graph wrapper\n * instead of `inputs.messages`.\n */\n const isResume = inputs instanceof Command;\n const stateInputs = isResume ? undefined : (inputs as t.IState);\n if (stateInputs != null) {\n this.activityPhaseTraceInput = findActivityPhaseTraceInput(\n stateInputs.messages\n );\n }\n\n /**\n * Every honored seal costs one extra superstep, so a preemption-enabled\n * run reserves headroom for its whole seal budget. Without it, a\n * tool-heavy agent that gets preempted could hit `GraphRecursionError` —\n * which surfaces as a thrown stream, setting `streamThrew`, firing\n * `StopFailure`, and wiping via `clearHeavyState()` exactly the partial\n * content the seal existed to preserve.\n */\n const recursionLimit =\n (callerConfig.recursionLimit ?? DEFAULT_RECURSION_LIMIT) +\n (this.preemption != null ? resolveMaxSeals(this.preemption.maxSeals) : 0);\n\n const config: t.RunStreamConfig = {\n ...callerConfig,\n recursionLimit,\n configurable: { ...callerConfig.configurable },\n };\n if (!isResume) {\n delete config.configurable?.[SUBAGENT_RESUME_ATTEMPT_CONFIG_KEY];\n delete config.configurable?.[SUBAGENT_RESUME_MANIFEST_CONFIG_KEY];\n }\n\n /**\n * Cancellation can arrive either at graph construction or per-call through\n * `callerConfig.signal`, and boundary hooks need to observe both — for a\n * multi-agent run the construction signal does not exist at all, since\n * `MultiAgentGraphConfig` exposes none. Carried on its own field, assigned\n * unconditionally: writing into `graph.signal` would leak this call's\n * controller into later calls (model-call config and subagent\n * parentSignal read that field, and `clearHeavyState()` is skipped on\n * HITL interrupts), while a conditional write would keep observing a\n * stale controller the host has since aborted. The boundary dispatch\n * composes both channels; see `dispatchPreemptBoundary`.\n */\n graph.callerSignal = callerConfig.signal;\n\n /**\n * Skip `resetValues` on resume — we're continuing an in-flight\n * run, not starting a fresh one. Resetting would wipe the\n * sidecars (`toolCallStepIds`, `stepKeyIds`, accumulated\n * `messages`, etc.) the resumed `ToolNode` needs to dispatch\n * tool completions with the correct step ids and re-resolve\n * `{{tool<i>turn<n>}}` references. Pairs with the\n * `awaitingResume` gate on `clearHeavyState` in the `finally`\n * block so the sidecars survive both ends of the interrupt\n * boundary.\n */\n if (!isResume) {\n const checkpointThreadId =\n typeof config.configurable?.thread_id === 'string'\n ? config.configurable.thread_id\n : undefined;\n const checkpointNamespace =\n typeof config.configurable?.checkpoint_ns === 'string'\n ? config.configurable.checkpoint_ns\n : '';\n const checkpointId =\n typeof config.configurable?.checkpoint_id === 'string'\n ? config.configurable.checkpoint_id\n : '';\n const checkpointScope =\n checkpointThreadId == null\n ? undefined\n : JSON.stringify([\n checkpointThreadId,\n checkpointNamespace,\n checkpointId,\n checkpointId === '' ? 0 : ++this.checkpointForkSeq,\n ]);\n graph.resetValues(streamOptions?.keepContent, checkpointScope);\n }\n this._interrupt = undefined;\n this._haltedReason = undefined;\n this.hookRegistry?.clearHaltSignal(this.id);\n\n /** Custom event callback to intercept and handle custom events */\n const customEventCallback = this.createCustomEventCallback();\n\n const streamCallbacks = streamOptions?.callbacks\n ? this.getCallbacks(streamOptions.callbacks)\n : undefined;\n\n const customHandler = BaseCallbackHandler.fromMethods({\n [Callback.CUSTOM_EVENT]: customEventCallback,\n });\n customHandler.awaitHandlers = true;\n\n config.callbacks = appendCallbacks(\n config.callbacks,\n streamCallbacks ? [streamCallbacks, customHandler] : [customHandler]\n );\n\n const primaryContext = graph.agentContexts.get(graph.defaultAgentId);\n const userId =\n typeof config.configurable?.user_id === 'string'\n ? config.configurable.user_id\n : undefined;\n const sessionId =\n typeof config.configurable?.thread_id === 'string'\n ? config.configurable.thread_id\n : undefined;\n const traceMetadata = createLangfuseTraceMetadata({\n messageId: this.id,\n parentMessageId: config.configurable?.requestBody?.parentMessageId,\n agentId: graph.defaultAgentId,\n agentName: primaryContext?.name,\n });\n const traceName = config.runName ?? getLangfuseTraceName(traceMetadata);\n const streamLangfuseConfig = this.getStreamLangfuseConfig(graph);\n initializeLangfuseTracing(streamLangfuseConfig);\n const streamRuntimeScope = resolveLangfuseRuntimeScope({\n runLangfuse: streamLangfuseConfig,\n langfuseOverlay: this.getStreamToolOutputTracingLangfuseConfig(graph),\n traceIdSeed:\n streamLangfuseConfig?.deterministicTraceId === true\n ? this.id\n : undefined,\n // The graph's per-execution stamp, NOT the public run id: public ids\n // may repeat across concurrent executions (retries, tenant-local\n // message ids), and equal stamps defeat foreign-scope rejection.\n runId: graph.langfuseScopeRunId,\n });\n const langfuseHandler = createLangfuseHandler({\n langfuse: streamLangfuseConfig,\n userId,\n sessionId,\n traceMetadata,\n tags: ['librechat', 'agent'],\n traceIdSeed:\n streamLangfuseConfig?.deterministicTraceId === true\n ? this.id\n : undefined,\n runId: graph.langfuseScopeRunId,\n // The aggregate multi-agent policy from the runtime scope — the\n // handler must restore THIS (not the primary agent's config-derived\n // policy) when rejecting a foreign scope.\n toolOutputTracing: streamRuntimeScope.toolOutputTracing,\n traceName,\n });\n if (langfuseHandler != null) {\n config.runName = traceName;\n config.callbacks = appendCallbacks(config.callbacks, [langfuseHandler]);\n }\n\n if (!this.id) {\n throw new Error('Run ID not provided');\n }\n\n config.run_id = this.id;\n config.configurable = Object.assign(config.configurable ?? {}, {\n run_id: this.id,\n });\n\n /**\n * Default `durability: 'exit'` whenever a checkpointer is active so\n * runs skip per-superstep checkpoint writes and persist only at the\n * exit/interrupt boundary (all HITL/resume needs). An explicit caller\n * value wins; no checkpointer leaves it unset (langgraph default).\n */\n if (config.durability == null && this.hasCheckpointer) {\n config.durability = 'exit';\n }\n\n const threadId = config.configurable.thread_id as string | undefined;\n\n if (this.hookRegistry != null && stateInputs != null) {\n const shouldHalt = await this.runPreStreamHooks(\n stateInputs,\n threadId,\n config\n );\n if (shouldHalt) {\n return undefined;\n }\n }\n\n /**\n * Tracks whether the stream loop threw. Used by the `finally`\n * block to decide whether to honor the interrupt-preservation\n * guard for session hooks: a captured `_interrupt` is only\n * meaningful if the stream completed cleanly. If the loop errored\n * after stashing an interrupt (e.g. a downstream handler throws\n * after the interrupt event landed), the interrupt is stale —\n * preserving session hooks would leak them into the next run.\n */\n let streamThrew = false;\n let streamAborted = false;\n /**\n * When the stream itself ended — captured before the post-stream work in\n * the `finally` (Stop/StopFailure hooks, Langfuse disposal, which can\n * force-flush) so a slow hook cannot inflate the terminal stamps that the\n * sweep writes onto steps that were still open.\n */\n let terminalAt: number | undefined;\n\n const consumeStream = async (): Promise<void> => {\n /**\n * `streamEvents` accepts both state inputs and `Command` (resume) at\n * runtime, but our `CompiledStateWorkflow` type narrows the first\n * arg to `BaseGraphState`. Cast on the call so the resume path\n * type-checks without widening the wrapper for every caller.\n */\n const stream = graphRunnable.streamEvents(inputs as t.IState, config, {\n raiseError: true,\n /**\n * Prevent EventStreamCallbackHandler from processing custom events.\n * Custom events are already handled via our createCustomEventCallback()\n * which routes them through the handlerRegistry.\n * Without this flag, EventStreamCallbackHandler throws errors when\n * custom events are dispatched for run IDs not in its internal map\n * (due to timing issues in parallel execution or after run cleanup).\n */\n ignoreCustomEvent: true,\n });\n\n for await (const event of stream) {\n const { data, metadata, ...info } = event;\n\n const eventName: t.EventName = info.event;\n\n /** Skip custom events as they're handled by our callback */\n if (CUSTOM_GRAPH_EVENTS.has(eventName)) {\n continue;\n }\n\n /**\n * Detect interrupts surfaced by LangGraph as a synthetic\n * `__interrupt__` field on the streamed chunk and stash the\n * first one for the host to read via `run.getInterrupt()`\n * once the stream drains. Captured as `unknown` because the\n * SDK does not validate the runtime payload shape — the\n * built-in ToolNode raises a `HumanInterruptPayload`\n * (`tool_approval` / `ask_user_question`), but custom nodes\n * can pass any payload to `interrupt()`. Callers narrow with\n * the `isToolApprovalInterrupt` / `isAskUserQuestionInterrupt`\n * guards or assert via `getInterrupt<T>()`.\n */\n if (\n this._interrupt == null &&\n data.chunk != null &&\n isInterrupted<unknown>(data.chunk)\n ) {\n const interrupts = data.chunk[INTERRUPT];\n if (interrupts.length > 0) {\n const first = interrupts[0];\n /**\n * Capture the interrupt unconditionally — `interrupt(null)`\n * and `interrupt(undefined)` are valid pauses (a custom\n * node may want to pause without metadata) and the host\n * still needs to know the run is awaiting resume. Gating\n * on `payload != null` would silently downgrade a paused\n * run to \"completed\" and let the `Stop` hook fire,\n * breaking host resume handling.\n */\n this._interrupt = {\n interruptId: first.id ?? '',\n threadId,\n payload: first.value,\n };\n }\n }\n\n /**\n * Stamped before the handler runs: the close below happens after an\n * arbitrarily slow host handler resolves, and the step's duration\n * should end when the model did, not when the host finished with it.\n */\n const modelEndAt =\n eventName === GraphEvents.CHAT_MODEL_END ? Date.now() : undefined;\n const handler = this.handlerRegistry?.getHandler(eventName);\n if (handler) {\n await handler.handle(eventName, data, metadata, this.Graph);\n }\n\n /**\n * A finished model call ends its lane's open message step. Placed\n * here — not in `ModelEndHandler` — because hosts replace the\n * CHAT_MODEL_END handler with their own instance, which would\n * silently drop the close.\n */\n if (eventName === GraphEvents.CHAT_MODEL_END && this.Graph != null) {\n await this.Graph.closeOpenMessageStep(metadata, modelEndAt);\n }\n\n /**\n * Mid-flight halt: any hook (PreToolUse, PostToolUse,\n * PostToolBatch, SubagentStart/Stop, PreCompact, PostCompact)\n * that returned `preventContinuation: true` raises a halt\n * signal on the registry via `executeHooks`. We poll between\n * stream events and break out as soon as one is set so the\n * graph doesn't take another model turn after the halting\n * operation completes.\n *\n * This `break` is NOT graceful, despite what a `continue: false`\n * reading suggests. Leaving the `for await` calls the iterator's\n * `return()`, which cancels the reader\n * (`@langchain/core/utils/stream`), and langgraph's stream wrapper\n * turns that cancel into `_abortController.abort()`\n * (`pregel/stream.js`). The in-flight model call or tool batch is\n * torn down where it stands — it does not finish first.\n *\n * A halt is therefore the wrong tool for \"stop generating but keep\n * what you have\". That is what `RunConfig.preemption` is for: it\n * seals the stream at a provider-safe boundary and keeps the run.\n */\n const haltSignal = this.hookRegistry?.getHaltSignal(this.id);\n if (haltSignal != null) {\n this._haltedReason = haltSignal.reason;\n break;\n }\n }\n\n terminalAt = Date.now();\n\n if (this._interrupt != null) {\n await this.resolveInterruptResumeConfig(config);\n }\n\n /**\n * Skip the Stop hook when the run paused on a HITL interrupt\n * (still pending human input) or was halted by a hook (the host\n * already chose to stop, so a Stop hook firing now would be\n * misleading). The host fires Stop on the resumed-and-completed\n * run instead.\n */\n if (\n this._interrupt == null &&\n this._haltedReason == null &&\n this.hookRegistry?.hasHookFor('Stop', this.id) === true\n ) {\n await executeHooks({\n registry: this.hookRegistry,\n input: {\n hook_event_name: 'Stop',\n runId: this.id,\n threadId,\n agentId: graph.defaultAgentId,\n messages: graph.getRunMessages() ?? stateInputs?.messages ?? [],\n /**\n * A seal whose boundary ended the turn early must say so. The\n * hook-supplied reason wins when a `PreemptBoundary` hook halted\n * with one — a persistence/audit `Stop` hook should record the\n * actual cause, not the generic label — and `preempt_incomplete`\n * is reserved for the boundary that simply had nothing to inject.\n */\n stopReason:\n graph.preemptHaltReason ??\n (graph.preemptIncomplete ? 'preempt_incomplete' : undefined),\n stopHookActive: false, // will be true when stop is triggered by a hook (Phase 2)\n },\n sessionId: this.id,\n }).catch(() => {\n /* Stop hook errors must not masquerade as stream failures */\n });\n }\n\n /**\n * A `PreemptBoundary` hook that returned `preventContinuation` has its\n * registry halt cleared by the graph — that is what stops the halt from\n * cancelling the stream before the sealed turn commits — so the reason\n * is carried across on the graph instead. Surfaced here, AFTER the\n * `Stop` dispatch above, so the host still receives a completion signal\n * to persist the partial answer with while `getHaltReason()` correctly\n * reports that a hook stopped the run rather than the model finishing.\n *\n * An empty boundary — sealed, but nothing to inject because the host's\n * queue was drained or cancelled in the meantime — cut the answer short\n * just as surely, only without a hook-supplied reason. It surfaces\n * through the same channel under the same name the `Stop` dispatch\n * already used for its `stopReason`, so terminal consumers\n * (`AgentSession` emits `run.halted`, not `run.completed`) cannot\n * finalize a truncated answer as a natural finish.\n */\n if (this._haltedReason == null && graph.preemptHaltReason != null) {\n this._haltedReason = graph.preemptHaltReason;\n } else if (this._haltedReason == null && graph.preemptIncomplete) {\n this._haltedReason = 'preempt_incomplete';\n }\n };\n\n try {\n // When opted in, seed the root trace id from this run's id so feedback /\n // other external signals can be attached to the trace later without a\n // lookup (see SeededTraceIdGenerator in ./instrumentation).\n await withLangfuseRuntimeScope(streamRuntimeScope, () =>\n withLangfuseAttributes(\n {\n langfuse: streamLangfuseConfig,\n userId,\n sessionId,\n traceName,\n traceMetadata,\n tags: ['librechat', 'agent'],\n },\n consumeStream\n )\n );\n } catch (err) {\n terminalAt = Date.now();\n streamThrew = true;\n /**\n * Corroborate cancellation against an actually-aborted signal. A\n * provider SDK or host handler can reject with an `AbortError` while\n * nothing was cancelled — that is an unexpected failure (it also fires\n * `StopFailure`), and naming it `cancelled` would misreport abort\n * forensics.\n */\n streamAborted =\n config.signal?.aborted === true || this.Graph.signal?.aborted === true;\n if (this.hookRegistry?.hasHookFor('StopFailure', this.id) === true) {\n const runMessages = this.Graph.getRunMessages() ?? [];\n await executeHooks({\n registry: this.hookRegistry,\n input: {\n hook_event_name: 'StopFailure',\n runId: this.id,\n threadId,\n agentId: this.Graph.defaultAgentId,\n error: err instanceof Error ? err.message : String(err),\n lastAssistantMessage: findLastMessageOfType(runMessages, 'ai'),\n },\n sessionId: this.id,\n }).catch(() => {\n /* swallow hook errors — the original error must propagate */\n });\n }\n throw err;\n } finally {\n /**\n * Preserve session-scoped hooks when the run paused on a HITL\n * interrupt — the very next call will be `Run.resume()`, which\n * needs the same policy hooks (e.g., the `PreToolUse` matcher\n * that triggered the interrupt) to fire on the re-executed node\n * and uphold the approval flow. Clearing here would leak the\n * approval gate on resume. The session is cleared instead at\n * natural completion, error (including errors that happen AFTER\n * an interrupt was captured — those interrupts are stale), or\n * hook-driven halt (including hooks that returned BOTH `ask`\n * and `preventContinuation` — the halt wins, no resume is\n * expected, sessions must drop). Every state where no resume\n * is expected clears.\n */\n if (this.shouldClearHookSession(streamThrew)) {\n this.hookRegistry?.clearSession(this.id);\n }\n /**\n * Drop any halt signal raised mid-stream for this run so a\n * subsequent `processStream` / `resume` starts with clean state.\n * The Run captured `_haltedReason` already; the registry entry\n * for this `sessionId` would otherwise spuriously trip the next\n * loop. Other concurrent runs sharing this registry are\n * unaffected — their entries live under their own session ids.\n */\n this.hookRegistry?.clearHaltSignal(this.id);\n await disposeLangfuseHandler(langfuseHandler);\n\n /**\n * Terminal sweep: close every step that never reached a terminal\n * status — `completed` on a natural end, `cancelled` on caller abort\n * or hook halt, `failed` on an unexpected stream error. Skipped on a\n * HITL pause, where the open steps continue after `resume()`.\n *\n * Runs BEFORE the callback teardown below, so a caller observing\n * lifecycle events only through `RunnableConfig.callbacks` still\n * receives these closures rather than being left with unmatched\n * starts, and before `getContentParts()` so terminal stamps flow into\n * content and session serialization.\n */\n if (!this.isAwaitingResume(streamThrew)) {\n try {\n await this.Graph.closeUnfinishedRunSteps(\n this.resolveSweepStatus(streamThrew, streamAborted),\n terminalAt\n );\n } catch {\n /* the sweep must never mask the stream outcome */\n }\n }\n\n /**\n * Break the reference chain that keeps heavy data alive via\n * LangGraph's internal `__pregel_scratchpad.currentTaskInput` →\n * `@langchain/core` `RunTree.extra[lc:child_config]` →\n * Node.js `AsyncLocalStorage` context captured by timers/promises.\n *\n * Without this, base64-encoded images/PDFs in message content remain\n * reachable from lingering `Timeout` handles until GC runs.\n */\n if (!this.skipCleanup) {\n if (\n (config.configurable as Record<string, unknown> | undefined) != null\n ) {\n for (const key of Object.getOwnPropertySymbols(config.configurable)) {\n const val = config.configurable[key as unknown as string] as\n | Record<string, unknown>\n | undefined;\n if (\n val != null &&\n typeof val === 'object' &&\n 'currentTaskInput' in val\n ) {\n (val as Record<string, unknown>).currentTaskInput = undefined;\n }\n delete config.configurable[key as unknown as string];\n }\n config.configurable = undefined;\n }\n config.callbacks = undefined;\n }\n\n const result = this.returnContent\n ? this.Graph.getContentParts()\n : undefined;\n\n this.calibrationRatio = this.Graph.getCalibrationRatio();\n\n /**\n * Skip `clearHeavyState()` when the run paused on a clean HITL\n * interrupt awaiting resume — `Run.resume()` re-enters the same\n * `ToolNode` instance and needs the sidecars `clearHeavyState`\n * would wipe (`toolCallStepIds` for completion-event step ids,\n * the `_toolOutputRegistry` for `{{tool<i>turn<n>}}`\n * substitutions, `sessions` for code-env continuity, plus the\n * `hookRegistry` and `humanInTheLoop` config the interrupt\n * branch itself relies on). Without preservation, the resumed\n * tool completion would dispatch `ON_RUN_STEP_COMPLETED` with\n * an empty step id and downstream stream consumers would drop\n * the result.\n *\n * The natural-completion / error / hook-driven-halt paths still\n * clean up — `_haltedReason != null` or `streamThrew` mean no\n * resume is expected. Cross-process resume (host rebuilds the\n * Run from scratch) is a separate concern; see\n * `HumanInTheLoopConfig` JSDoc.\n */\n const awaitingResume = this.isAwaitingResume(streamThrew);\n if (!this.skipCleanup && !awaitingResume) {\n this.Graph.clearHeavyState();\n }\n\n this._streamResult = result;\n }\n\n return this._streamResult;\n }\n\n /**\n * Returns the pending interrupt captured during the most recent\n * `processStream` (or `resume`) invocation. `undefined` when the run\n * either has not been streamed yet or completed without pausing.\n *\n * Hosts call this immediately after `processStream` returns to decide\n * whether the run is awaiting human input. Persist the returned\n * descriptor (alongside `thread_id` and the agent run config) so a\n * later `resume(decisions)` can rebuild the run.\n *\n * The default `TPayload` is the SDK's `HumanInterruptPayload` union\n * (`tool_approval` / `ask_user_question`), suitable for the common\n * case where interrupts come from the built-in ToolNode or\n * `askUserQuestion()` helper. Hosts that raise custom interrupts\n * from custom graph nodes pass their own type — the SDK does not\n * validate the runtime shape, it just transports whatever the\n * `interrupt()` call carried. When in doubt, narrow with the\n * `isToolApprovalInterrupt` / `isAskUserQuestionInterrupt` type\n * guards (which accept `unknown`) before reading variant-specific\n * fields.\n */\n getInterrupt<TPayload = t.HumanInterruptPayload>():\n | t.RunInterruptResult<TPayload>\n | undefined {\n if (this._interrupt == null) {\n return undefined;\n }\n return {\n ...this._interrupt,\n payload: stripSubagentResumeManifest(this._interrupt.payload),\n } as t.RunInterruptResult<TPayload>;\n }\n\n /**\n * Returns the reason a hook halted the run via\n * `preventContinuation: true`, or `undefined` if no hook halted.\n *\n * Hosts inspect this after `processStream` returns to distinguish a\n * natural completion (`undefined`) from a hook-driven halt (a\n * truthy string). Independent from `getInterrupt()` — a halted run\n * has no interrupt; an interrupted run has no halt reason.\n */\n getHaltReason(): string | undefined {\n return this._haltedReason;\n }\n\n /**\n * Resume a paused HITL run with the value the user (or whatever\n * decided the interrupt) supplied. The default `TResume` covers the\n * `tool_approval` interrupt (the common case): an array of decisions\n * in `action_requests` order, or a record keyed by `tool_call_id`.\n *\n * For other interrupt types (e.g., `ask_user_question` →\n * `AskUserQuestionResolution`, or any custom interrupt a host raises\n * from a custom node), pass the type parameter and the SDK forwards\n * the value through unchanged. LangGraph delivers it as the return\n * value of the original `interrupt()` call inside the paused node.\n *\n * The host MUST construct this Run with the same `thread_id` and the\n * same checkpointer as the original paused run; LangGraph rebuilds\n * graph state from the checkpoint and re-enters the interrupted node\n * from the start.\n */\n /**\n * Returns the per-Run file checkpointer when\n * `toolExecution.local.fileCheckpointing === true` was set on the\n * RunConfig. Hosts can capture extra paths or call `rewind()`\n * directly. Returns undefined when checkpointing is disabled.\n *\n * Construction-time invariant: the checkpointer is shared across\n * every ToolNode the graph compiles (single-agent and multi-agent),\n * so a `rewind()` call here unwinds writes made by ANY agent in the\n * run.\n */\n getFileCheckpointer(): t.LocalFileCheckpointer | undefined {\n return this.Graph?.getOrCreateFileCheckpointer();\n }\n\n /**\n * Convenience wrapper that calls `rewind()` on the per-Run file\n * checkpointer. Restores every file the local engine snapshotted\n * during this Run to its pre-write content (and deletes any path\n * that didn't exist before being created). Returns the count of\n * paths processed; returns 0 when checkpointing is disabled.\n */\n async rewindFiles(): Promise<number> {\n const cp = this.getFileCheckpointer();\n return cp == null ? 0 : cp.rewind();\n }\n\n /**\n * Resume an interrupted run. `commandOptions` forwards langgraph 1.4.5\n * `Command` fields applied together with `resume` in one superstep:\n * - `update`: channel updates committed at the resume point. On a *rebuilt*\n * Run (new instance + durable checkpointer), `update.messages` are the first\n * write the fresh wrapper sees, so they seed the `getRunMessages()` /\n * `returnContent` baseline and are excluded from them (still committed to the\n * checkpoint). Hosts that rebuild + inject messages should persist them\n * directly or read from `getState`. Unreachable without a durable checkpointer.\n * - `goto`: a *dynamic* edge that does not cancel static `addEdge` routes. On\n * the built-in standard graph the fixed `toolNode -> agentNode/END` edge still\n * fires, so `goto` adds rather than replaces (e.g. `goto: END` will not stop a\n * tool-node resume). Intended for custom, Command-routed graphs.\n */\n async resume<TResume = t.ToolApprovalDecision[] | t.ToolApprovalDecisionMap>(\n resumeValue: TResume,\n callerConfig: t.RunStreamConfig,\n streamOptions?: t.EventStreamOptions,\n commandOptions?: Pick<\n ConstructorParameters<typeof Command>[0],\n 'update' | 'goto'\n >\n ): Promise<MessageContentComplex[] | undefined> {\n const resumeConfig = await this.resolveInterruptResumeConfig(\n callerConfig,\n commandOptions?.update\n );\n const interruptId = this._interrupt?.interruptId;\n const scopedResume =\n typeof interruptId === 'string' &&\n interruptId.length > 0 &&\n !isLangGraphResumeMapForInterrupt(resumeValue, interruptId)\n ? { [interruptId]: resumeValue }\n : resumeValue;\n // langgraph 1.4.5 applies resume + state update + reroute in one superstep\n // (single checkpoint). `update`/`goto` are omitted unless the caller sets them.\n return this.processStream(\n new Command({\n resume: scopedResume,\n ...(commandOptions?.update !== undefined\n ? { update: commandOptions.update }\n : {}),\n ...(commandOptions?.goto !== undefined\n ? { goto: commandOptions.goto }\n : {}),\n }),\n resumeConfig,\n streamOptions\n );\n }\n\n private async resolveInterruptResumeConfig(\n callerConfig: t.RunStreamConfig,\n resumeUpdate?: ResumeCommandUpdate\n ): Promise<t.RunStreamConfig> {\n await this.restoreInterruptFromCheckpoint(callerConfig, resumeUpdate);\n const interrupt = this._interrupt;\n const resumeManifest = requireValidSubagentResumeManifest(\n interrupt?.payload\n );\n const resumeConfigurable = { ...callerConfig.configurable };\n delete resumeConfigurable[SUBAGENT_RESUME_ATTEMPT_CONFIG_KEY];\n delete resumeConfigurable[SUBAGENT_RESUME_MANIFEST_CONFIG_KEY];\n resumeConfigurable[SUBAGENT_RESUME_ATTEMPT_CONFIG_KEY] = nanoid();\n if (resumeManifest != null) {\n resumeConfigurable[SUBAGENT_RESUME_MANIFEST_CONFIG_KEY] = resumeManifest;\n }\n const manifestConfig = {\n ...callerConfig,\n configurable: resumeConfigurable,\n };\n const hookSessionId = getInterruptHookSessionId(interrupt?.payload);\n if (hookSessionId != null) {\n this.hookRegistry?.copySession(hookSessionId, this.id);\n }\n const interruptId = interrupt?.interruptId;\n const workflow = this.graphRunnable as\n | (t.CompiledStateWorkflow & WorkflowWithStateHistory)\n | undefined;\n const stateHistory = workflow?.getStateHistory;\n if (interrupt?.checkpointId != null && interrupt.checkpointId.length > 0) {\n return {\n ...manifestConfig,\n configurable: {\n ...manifestConfig.configurable,\n checkpoint_id: interrupt.checkpointId,\n ...(typeof interrupt.checkpointNs === 'string'\n ? { checkpoint_ns: interrupt.checkpointNs }\n : {}),\n },\n };\n }\n if (\n interrupt == null ||\n typeof interruptId !== 'string' ||\n interruptId.length === 0 ||\n typeof stateHistory !== 'function'\n ) {\n return manifestConfig;\n }\n\n for await (const snapshot of stateHistory.call(\n this.graphRunnable,\n manifestConfig as RunnableConfig\n )) {\n const hasMatchingInterrupt =\n snapshot.tasks?.some(\n (task) =>\n task.interrupts?.some(\n (interrupt) => interrupt.id === interruptId\n ) === true\n ) === true;\n const checkpointConfigurable = snapshot.config?.configurable;\n if (!hasMatchingInterrupt || checkpointConfigurable == null) {\n continue;\n }\n\n const checkpointId = checkpointConfigurable.checkpoint_id;\n const checkpointNs = checkpointConfigurable.checkpoint_ns;\n if (typeof checkpointId === 'string' && checkpointId.length > 0) {\n this._interrupt = {\n ...interrupt,\n checkpointId,\n ...(typeof checkpointNs === 'string' ? { checkpointNs } : {}),\n };\n return {\n ...manifestConfig,\n configurable: {\n ...manifestConfig.configurable,\n checkpoint_id: checkpointId,\n ...(typeof checkpointNs === 'string'\n ? { checkpoint_ns: checkpointNs }\n : {}),\n },\n };\n }\n }\n\n return manifestConfig;\n }\n\n private async restoreInterruptFromCheckpoint(\n callerConfig: t.RunStreamConfig,\n resumeUpdate?: ResumeCommandUpdate\n ): Promise<void> {\n if (this._interrupt != null || this.humanInTheLoop?.enabled !== true) {\n return;\n }\n const workflow = this.graphRunnable as\n | (t.CompiledStateWorkflow & WorkflowWithStateHistory)\n | undefined;\n if (typeof workflow?.getState !== 'function') {\n return;\n }\n\n const snapshot = await workflow.getState(callerConfig as RunnableConfig);\n const persistedInterrupt = getFirstPersistedInterrupt(snapshot);\n if (persistedInterrupt == null) {\n return;\n }\n const persistedMessages = getPersistedMessages(snapshot);\n if (persistedMessages != null) {\n const resumeMessages = getResumeUpdateMessages(resumeUpdate);\n this.Graph?.restoreCheckpointMessages(persistedMessages, resumeMessages);\n this.activityPhaseTraceInput = findActivityPhaseTraceInput(\n resumeMessages == null\n ? persistedMessages\n : [...persistedMessages, ...resumeMessages]\n );\n }\n\n const checkpointConfigurable = snapshot.config?.configurable;\n const checkpointId = checkpointConfigurable?.checkpoint_id;\n const checkpointNs = checkpointConfigurable?.checkpoint_ns;\n const threadId = callerConfig.configurable?.thread_id;\n this._interrupt = {\n interruptId: persistedInterrupt.id,\n payload: persistedInterrupt.value,\n ...(typeof threadId === 'string' ? { threadId } : {}),\n ...(typeof checkpointId === 'string' ? { checkpointId } : {}),\n ...(typeof checkpointNs === 'string' ? { checkpointNs } : {}),\n };\n }\n\n private createSystemCallback<K extends keyof t.ClientCallbacks>(\n clientCallbacks: t.ClientCallbacks,\n key: K\n ): t.SystemCallbacks[K] {\n return ((...args: unknown[]) => {\n const clientCallback = clientCallbacks[key];\n if (clientCallback && this.Graph) {\n (clientCallback as (...args: unknown[]) => void)(this.Graph, ...args);\n }\n }) as t.SystemCallbacks[K];\n }\n\n getCallbacks(clientCallbacks: t.ClientCallbacks): t.SystemCallbacks {\n return {\n [Callback.TOOL_ERROR]: this.createSystemCallback(\n clientCallbacks,\n Callback.TOOL_ERROR\n ),\n [Callback.TOOL_START]: this.createSystemCallback(\n clientCallbacks,\n Callback.TOOL_START\n ),\n [Callback.TOOL_END]: this.createSystemCallback(\n clientCallbacks,\n Callback.TOOL_END\n ),\n };\n }\n\n async generateTitle({\n provider,\n inputText,\n contentParts,\n titlePrompt,\n clientOptions,\n chainOptions,\n skipLanguage,\n titleMethod = TitleMethod.COMPLETION,\n titlePromptTemplate,\n }: t.RunTitleOptions): Promise<{ language?: string; title?: string }> {\n let titleLangfuseHandler: CallbackEntry | undefined;\n let titleUserId: string | undefined;\n let titleSessionId: string | undefined;\n const titleContext =\n this.Graph == null\n ? undefined\n : this.Graph.agentContexts.get(this.Graph.defaultAgentId);\n const titleLangfuseConfig = resolveLangfuseConfig(\n this.langfuse,\n titleContext?.langfuse\n );\n const traceMetadata = createLangfuseTraceMetadata({\n messageId: 'title-' + this.id,\n agentName: titleContext?.name,\n });\n const titleRunName = getLangfuseTraceName(traceMetadata, 'LibreChat Title');\n /** Scope identity carries an opaque per-execution component: public run\n * ids are unrestricted, so a purely derived id (`title-<runId>`) could\n * collide with an ordinary concurrent run literally named that way and\n * defeat foreign-scope rejection. */\n const titleScopeRunId = `title:${this.id}:${nanoid()}`;\n /** Seed policy mirrors `generateActivityLabel`:\n * `runWithLangfuseRuntimeContext` SPREADS the surrounding context, so an\n * absent seed INHERITS an active parent run's and collapses the title\n * into that run's trace. Seeded when determinism is opted into OR a\n * parent seed is live; otherwise unseeded, matching the other paths. */\n const inheritedTraceSeed = getTraceIdSeed();\n const titleRuntimeScope = resolveLangfuseRuntimeScope({\n runLangfuse: this.langfuse,\n langfuseOverlay: titleContext?.langfuse,\n traceIdSeed:\n titleLangfuseConfig?.deterministicTraceId === true ||\n inheritedTraceSeed != null\n ? 'title-' + this.id\n : undefined,\n runId: titleScopeRunId,\n });\n\n if (chainOptions != null) {\n titleUserId =\n typeof chainOptions.configurable?.user_id === 'string'\n ? chainOptions.configurable.user_id\n : undefined;\n titleSessionId =\n typeof chainOptions.configurable?.thread_id === 'string'\n ? chainOptions.configurable.thread_id\n : undefined;\n initializeLangfuseTracing(titleLangfuseConfig);\n titleLangfuseHandler = createLangfuseHandler({\n langfuse: titleLangfuseConfig,\n userId: titleUserId,\n sessionId: titleSessionId,\n traceMetadata,\n tags: ['librechat', 'title'],\n traceIdSeed:\n titleLangfuseConfig?.deterministicTraceId === true\n ? 'title-' + this.id\n : undefined,\n runId: titleScopeRunId,\n toolOutputTracing: titleRuntimeScope.toolOutputTracing,\n traceName: chainOptions.runName ?? titleRunName,\n });\n\n if (titleLangfuseHandler != null) {\n chainOptions.callbacks = appendCallbacks(chainOptions.callbacks, [\n titleLangfuseHandler,\n ]);\n }\n }\n\n const convoTemplate = PromptTemplate.fromTemplate(\n titlePromptTemplate ?? 'User: {input}\\nAI: {output}'\n );\n\n const response = contentParts\n .map((part) => {\n if (part?.type === 'text') return part.text;\n return '';\n })\n .join('\\n');\n\n const model = initializeModel({\n provider,\n clientOptions,\n }) as t.ChatModelInstance;\n\n if (\n isOpenAILike(provider) &&\n (model instanceof ChatOpenAI || model instanceof AzureChatOpenAI)\n ) {\n model.temperature = (clientOptions as t.OpenAIClientOptions | undefined)\n ?.temperature as number;\n model.topP = (clientOptions as t.OpenAIClientOptions | undefined)\n ?.topP as number;\n model.frequencyPenalty = (\n clientOptions as t.OpenAIClientOptions | undefined\n )?.frequencyPenalty as number;\n model.presencePenalty = (\n clientOptions as t.OpenAIClientOptions | undefined\n )?.presencePenalty as number;\n model.n = (clientOptions as t.OpenAIClientOptions | undefined)\n ?.n as number;\n }\n\n const convoToTitleInput = new RunnableLambda({\n func: (\n promptValue: StringPromptValue\n ): { convo: string; inputText: string; skipLanguage?: boolean } => ({\n convo: promptValue.value,\n inputText,\n skipLanguage,\n }),\n }).withConfig({ runName: 'PrepareTitleInput' });\n\n const titleChain =\n titleMethod === TitleMethod.COMPLETION\n ? await createCompletionTitleRunnable(model, titlePrompt)\n : await createTitleRunnable(model, titlePrompt);\n\n /** Pipes `convoTemplate` -> `transformer` -> `titleChain` */\n const fullChain = convoTemplate\n .withConfig({ runName: 'FormatConversation' })\n .pipe(convoToTitleInput)\n .pipe(titleChain)\n .withConfig({ runName: 'GenerateConversationTitle' });\n\n const invokeConfig = Object.assign({}, chainOptions, {\n run_id: this.id,\n runId: this.id,\n runName: chainOptions?.runName ?? titleRunName,\n });\n\n const invokeTitleChain = (\n runtimeConfig: Partial<RunnableConfig>\n ): Promise<{ language?: string; title?: string }> =>\n withLangfuseAttributes(\n {\n langfuse: titleLangfuseConfig,\n userId: titleUserId,\n sessionId: titleSessionId,\n traceName: runtimeConfig.runName ?? titleRunName,\n traceMetadata,\n tags: ['librechat', 'title'],\n },\n () =>\n fullChain.invoke(\n { input: inputText, output: response },\n runtimeConfig\n )\n );\n\n try {\n try {\n return await withLangfuseRuntimeScope(titleRuntimeScope, () =>\n invokeTitleChain(invokeConfig)\n );\n } catch (_e) {\n // Fallback: strip callbacks to avoid EventStream tracer errors in certain environments\n // but preserve Langfuse tracing if it exists.\n const langfuseHandler = findCallback(\n invokeConfig.callbacks,\n isLangfuseCallbackHandler\n );\n const { callbacks: _cb, ...rest } = invokeConfig;\n const safeConfig = Object.assign({}, rest, {\n callbacks: langfuseHandler ? [langfuseHandler] : [],\n });\n return await withLangfuseRuntimeScope(titleRuntimeScope, () =>\n invokeTitleChain(safeConfig as Partial<RunnableConfig>)\n );\n }\n } finally {\n await disposeLangfuseHandler(titleLangfuseHandler);\n }\n }\n\n /**\n * Generates a short activity label for a completed tool/reasoning block\n * using a fast model. Mirrors `generateTitle`'s Langfuse wiring so the\n * call is traced under the conversation's session (sessionId from\n * `chainOptions.configurable.thread_id`) with its own tags — never as an\n * orphan trace. The payload contains no human messages by design: intent\n * comes from `lastAssistantText`, content from reasoning excerpts and\n * tool entries.\n */\n async generateActivityLabel({\n provider,\n clientOptions,\n entries,\n thinkingExcerpts,\n lastAssistantText,\n lastAssistantPhase,\n previousLabels,\n prompt,\n charLimit = 600,\n chainOptions,\n traceSeed,\n agentId,\n }: t.RunActivityLabelOptions): Promise<{ label?: string }> {\n if (\n entries.length === 0 &&\n !(thinkingExcerpts && thinkingExcerpts.length > 0)\n ) {\n return {};\n }\n const labelSeq = ++this.activityLabelSeq;\n\n /** Resolve the LABELED agent's context: its Langfuse overlay carries the\n * trace metadata and the tool-output redaction policy that must govern\n * this label. */\n const requestedContext =\n this.Graph == null || agentId == null\n ? undefined\n : this.Graph.agentContexts.get(agentId);\n /** Fail closed: an explicit but unknown/stale `agentId` must NOT silently\n * fall back to the default agent, whose redaction policy may be weaker\n * than the labeled agent's. Skip generation entirely instead. */\n if (agentId != null && requestedContext == null) {\n return {};\n }\n const labelContext =\n this.Graph == null\n ? undefined\n : (requestedContext ??\n this.Graph.agentContexts.get(this.Graph.defaultAgentId));\n /** Shallow-cloned: activity labels run once per tool batch, and writing\n * the Langfuse handler back onto a host-reused `chainOptions` would\n * accumulate duplicate callbacks across batches. */\n const labelChainOptions = {\n ...(chainOptions ?? {}),\n } as Partial<RunnableConfig> & {\n configurable?: Record<string, unknown> & {\n requestBody?: { parentMessageId?: unknown };\n };\n };\n const labelUserId =\n typeof labelChainOptions.configurable?.user_id === 'string'\n ? (labelChainOptions.configurable.user_id as string)\n : undefined;\n const labelSessionId =\n typeof labelChainOptions.configurable?.thread_id === 'string'\n ? (labelChainOptions.configurable.thread_id as string)\n : undefined;\n const labelIndex = labelSeq - 1;\n const labelParentMessageId =\n labelChainOptions.configurable?.requestBody?.parentMessageId;\n /** An omitted `agentId` is attributable only when exactly one context\n * exists. Multi-agent callers remain unattributed instead of being\n * incorrectly assigned to the graph's default agent. */\n const labelAgentId =\n agentId ??\n (this.Graph?.agentContexts.size === 1\n ? this.Graph.defaultAgentId\n : undefined);\n const labelAgentName =\n labelAgentId == null ? undefined : labelContext?.name;\n const labelMetadata: Record<string, unknown> = {\n sourceRunId: this.id,\n responseId: this.id,\n activityIndex: labelIndex,\n ...(typeof labelParentMessageId === 'string'\n ? { parentMessageId: labelParentMessageId }\n : {}),\n ...(labelAgentId == null ? {} : { agentId: labelAgentId }),\n ...(labelAgentName == null ? {} : { agentName: labelAgentName }),\n };\n const traceMetadata = {\n ...createLangfuseTraceMetadata({\n messageId: 'activity-label-' + this.id,\n parentMessageId: labelParentMessageId,\n agentId: labelAgentId,\n agentName: labelAgentName,\n }),\n sourceRunId: this.id,\n responseId: this.id,\n activityIndex: String(labelIndex),\n };\n const labelRunName = labelChainOptions.runName ?? ACTIVITY_LABEL_TRACE_NAME;\n const labelTags = ['librechat', 'activity-label'];\n const labelLangfuseConfig = resolveLangfuseConfig(\n this.langfuse,\n labelContext?.langfuse\n );\n initializeLangfuseTracing(labelLangfuseConfig);\n /** Seed policy, threading two constraints:\n * 1. `runWithLangfuseRuntimeContext` SPREADS the surrounding context, so\n * an absent seed INHERITS the parent run's and collapses every label\n * into that trace. When a parent seed is active we must override it\n * with a per-label one.\n * 2. Without deterministic tracing there is no parent seed, and forcing\n * one here would make label trace ids deterministic when neither\n * `processStream` nor `generateTitle` are — so leave it unset.\n * Seeded when determinism is opted into OR a parent seed is live;\n * otherwise unseeded, matching the other generation paths. */\n const inheritedTraceSeed = getTraceIdSeed();\n const labelTraceSeed =\n labelLangfuseConfig?.deterministicTraceId === true ||\n inheritedTraceSeed != null\n ? (traceSeed ?? `activity-label-${this.id}-${labelSeq}`)\n : undefined;\n /** Opaque per-execution component: see `titleScopeRunId`. */\n const labelScopeRunId = `activity-label:${this.id}:${labelSeq}:${nanoid()}`;\n const labelRuntimeScope = resolveLangfuseRuntimeScope({\n runLangfuse: this.langfuse,\n langfuseOverlay: labelContext?.langfuse,\n traceIdSeed: labelTraceSeed,\n runId: labelScopeRunId,\n });\n /** Handler only when a session id resolved from\n * `chainOptions.configurable.thread_id`: without it the label call has\n * no conversation identity, and tracing it would create an orphan\n * trace outside any session — worse than not tracing at all. */\n /** Declared then conditionally assigned (title precedent): a ternary\n * around the object literal makes eslint's indent rule and prettier\n * disagree, and both gate CI. */\n let labelLangfuseHandler: CallbackEntry | undefined;\n if (labelSessionId != null) {\n labelLangfuseHandler = createLangfuseHandler({\n langfuse: labelLangfuseConfig,\n userId: labelUserId,\n sessionId: labelSessionId,\n traceMetadata,\n tags: labelTags,\n traceIdSeed:\n labelLangfuseConfig?.deterministicTraceId === true\n ? labelTraceSeed\n : undefined,\n runId: labelScopeRunId,\n toolOutputTracing: labelRuntimeScope.toolOutputTracing,\n traceName: labelRunName,\n });\n }\n if (labelLangfuseHandler != null) {\n labelChainOptions.callbacks = appendCallbacks(\n labelChainOptions.callbacks,\n [labelLangfuseHandler]\n );\n }\n\n /** The label prompt becomes Langfuse generation input, so the resolved\n * tool-output redaction policy (global disable / redactedToolNames)\n * applies to it exactly as to structured tool observations. */\n let redaction = hasToolOutputTracingConfig(\n this.langfuse,\n labelContext?.langfuse\n )\n ? resolveToolOutputTracingConfig(this.langfuse, labelContext?.langfuse)\n : undefined;\n /** Multi-agent graph with no `agentId`: the caller did not say WHICH\n * agent ran this batch, so resolving from the default agent could trace\n * raw output that a stricter sibling's policy forbids. Fold every\n * agent's policy into the strictest one instead of guessing. */\n const agentContexts = this.Graph?.agentContexts;\n if (agentId == null && agentContexts != null && agentContexts.size > 1) {\n for (const context of agentContexts.values()) {\n if (!hasToolOutputTracingConfig(this.langfuse, context.langfuse)) {\n continue;\n }\n const candidate = resolveToolOutputTracingConfig(\n this.langfuse,\n context.langfuse\n );\n if (redaction == null) {\n redaction = candidate;\n continue;\n }\n redaction = {\n enabled: redaction.enabled === false ? false : candidate.enabled,\n redactedToolNames: new Set([\n ...redaction.redactedToolNames,\n ...candidate.redactedToolNames,\n ]),\n redactedToolNameMatchMode:\n redaction.redactedToolNameMatchMode === 'partial' ||\n candidate.redactedToolNameMatchMode === 'partial'\n ? 'partial'\n : 'exact',\n redactionText: redaction.redactionText,\n };\n }\n }\n /** An active redaction policy suppresses free-form reasoning/intent, so\n * a reasoning-only block has nothing describable left — skip the model\n * call rather than paying for a label built from the prompt alone. */\n const freeFormSuppressed =\n redaction != null &&\n (redaction.enabled === false || redaction.redactedToolNames.size > 0);\n if (entries.length === 0 && freeFormSuppressed) {\n return {};\n }\n const userPrompt = buildActivityLabelPrompt({\n entries,\n charLimit,\n thinkingExcerpts,\n lastAssistantText:\n lastAssistantPhase === 'final_answer' ? undefined : lastAssistantText,\n previousLabels,\n redaction,\n });\n\n const model = initializeModel({\n provider,\n clientOptions: {\n ...(clientOptions ?? {}),\n streaming: false,\n } as t.ClientOptions,\n }) as t.ChatModelInstance;\n\n /** Distinct run id per label call: callback/tracing integrations key\n * in-flight runs by it, so reusing the parent run's id would collide\n * across successive (or concurrent) label batches. */\n const labelRunId = `${this.id}-activity-${labelSeq}`;\n const invokeConfig = Object.assign({}, labelChainOptions, {\n run_id: labelRunId,\n runId: labelRunId,\n runName: labelRunName,\n tags: [...new Set([...(labelChainOptions.tags ?? []), ...labelTags])],\n metadata: {\n ...(labelChainOptions.metadata ?? {}),\n ...labelMetadata,\n },\n }) as Partial<RunnableConfig>;\n\n const invokeLabel = (\n runtimeConfig: Partial<RunnableConfig>\n ): Promise<unknown> =>\n withLangfuseAttributes(\n {\n langfuse: labelLangfuseConfig,\n userId: labelUserId,\n sessionId: labelSessionId,\n traceName: labelRunName,\n traceMetadata,\n tags: labelTags,\n },\n () =>\n model.invoke(\n [\n new SystemMessage(prompt ?? ACTIVITY_LABEL_PROMPT),\n new HumanMessage(userPrompt),\n ],\n runtimeConfig\n )\n );\n\n const extractLabel = (response: unknown): string => {\n const content = (response as { content?: unknown } | null)?.content;\n let text = '';\n if (typeof content === 'string') {\n text = content;\n } else if (Array.isArray(content)) {\n text = content\n .map((block) =>\n typeof block === 'string'\n ? block\n : ((block as { text?: string }).text ?? '')\n )\n .join('');\n }\n /** Collapsed to one line at the source: a header renders as a single\n * row, and hosts feed committed labels back as continuity context —\n * so a multi-line result would carry its line breaks into every later\n * prompt in the run. */\n return text\n .replace(/\\s+/g, ' ')\n .trim()\n .replace(/^[\"']|[\"']$/g, '');\n };\n\n try {\n let response: unknown;\n try {\n response = await withLangfuseRuntimeScope(labelRuntimeScope, () =>\n invokeLabel(invokeConfig)\n );\n } catch (error) {\n /** Retry ONLY recognized callback/tracer failures (the EventStream\n * tracer class of errors the stripped-callbacks fallback exists\n * for). Aborts and provider failures rethrow — retrying those\n * doubles traffic/cost and can restart cancelled requests. */\n const aborted =\n (labelChainOptions as { signal?: AbortSignal }).signal?.aborted ===\n true || (error as Error | null)?.name === 'AbortError';\n const callbackFailure = /callback|tracer|event.?stream/i.test(\n String(\n (error as Error | null)?.stack ??\n (error as Error | null)?.message ??\n ''\n )\n );\n if (aborted || !callbackFailure) {\n throw error;\n }\n const langfuseHandler = findCallback(\n invokeConfig.callbacks,\n isLangfuseCallbackHandler\n );\n const { callbacks, ...rest } = invokeConfig;\n const safeConfig = Object.assign({}, rest, {\n callbacks: filterCallbacks(\n callbacks,\n (callback) => callback === langfuseHandler\n ),\n });\n response = await withLangfuseRuntimeScope(labelRuntimeScope, () =>\n invokeLabel(safeConfig as Partial<RunnableConfig>)\n );\n }\n const label = extractLabel(response);\n return label.length > 0 ? { label } : {};\n } finally {\n await disposeLangfuseHandler(labelLangfuseHandler);\n }\n }\n\n /**\n * Generates one parent summary for two or more logical activities. The\n * summary model is traced as a dedicated activity-phase chain root in the\n * conversation session, with the model callback recorded as its generation\n * child. No session id means no phase trace, avoiding orphan observations.\n */\n async generateActivityPhaseLabel({\n provider,\n clientOptions,\n activities,\n totalActivityCount,\n assistantContext,\n closingTextPhase,\n prompt,\n charLimit = 600,\n chainOptions,\n traceSeed,\n sourceRunId,\n sourceTraceId,\n responseId,\n phaseIndex,\n status = 'completed',\n agentIds,\n }: t.RunActivityPhaseLabelOptions): Promise<{ label?: string }> {\n if (activities.length < 2) {\n return {};\n }\n\n const phaseSeq = ++this.activityPhaseLabelSeq;\n const hasUnattributedActivity = activities.some(\n (activity) => activity.agentId == null\n );\n const hasOmittedActivitiesWithoutAgentIds =\n agentIds == null &&\n (totalActivityCount ?? activities.length) > activities.length;\n const contributingAgentIds = [\n ...new Set([\n ...(agentIds ?? []),\n ...activities.flatMap((activity) =>\n activity.agentId == null ? [] : [activity.agentId]\n ),\n ]),\n ];\n const agentContexts = this.Graph?.agentContexts;\n if (\n contributingAgentIds.some(\n (agentId) => agentContexts?.get(agentId) == null\n )\n ) {\n return {};\n }\n const phaseContext =\n this.Graph == null\n ? undefined\n : this.Graph.agentContexts.get(this.Graph.defaultAgentId);\n const phaseLangfuseConfig = resolveLangfuseConfig(\n this.langfuse,\n phaseContext?.langfuse\n );\n\n let redaction = hasToolOutputTracingConfig(\n this.langfuse,\n phaseContext?.langfuse\n )\n ? resolveToolOutputTracingConfig(this.langfuse, phaseContext?.langfuse)\n : undefined;\n const redactionContexts =\n contributingAgentIds.length > 0 &&\n !hasUnattributedActivity &&\n !hasOmittedActivitiesWithoutAgentIds\n ? contributingAgentIds.flatMap((agentId) => {\n const context = agentContexts?.get(agentId);\n return context == null ? [] : [context];\n })\n : Array.from(agentContexts?.values() ?? []);\n for (const context of redactionContexts) {\n if (!hasToolOutputTracingConfig(this.langfuse, context.langfuse)) {\n continue;\n }\n const candidate = resolveToolOutputTracingConfig(\n this.langfuse,\n context.langfuse\n );\n if (redaction == null) {\n redaction = candidate;\n continue;\n }\n redaction = {\n enabled: redaction.enabled === false ? false : candidate.enabled,\n redactedToolNames: new Set([\n ...redaction.redactedToolNames,\n ...candidate.redactedToolNames,\n ]),\n redactedToolNameMatchMode:\n redaction.redactedToolNameMatchMode === 'partial' ||\n candidate.redactedToolNameMatchMode === 'partial'\n ? 'partial'\n : 'exact',\n redactionText: redaction.redactionText,\n };\n }\n\n const userPrompt = buildActivityPhaseLabelPrompt({\n activities,\n totalActivityCount,\n charLimit,\n assistantContext,\n redaction,\n });\n if (userPrompt === '') {\n return {};\n }\n const phaseChainOptions = {\n ...(chainOptions ?? {}),\n } as Partial<RunnableConfig> & {\n configurable?: Record<string, unknown> & {\n requestBody?: { parentMessageId?: unknown };\n };\n };\n const phaseUserId =\n typeof phaseChainOptions.configurable?.user_id === 'string'\n ? phaseChainOptions.configurable.user_id\n : undefined;\n const phaseSessionId =\n typeof phaseChainOptions.configurable?.thread_id === 'string'\n ? phaseChainOptions.configurable.thread_id\n : undefined;\n const resolvedPhaseIndex = phaseIndex ?? phaseSeq - 1;\n const phaseMessageId =\n responseId ?? `activity-phase-${this.id}-${resolvedPhaseIndex}`;\n const phaseAgentId = this.Graph?.defaultAgentId;\n const phaseAgentName = phaseContext?.name;\n const phaseParentMessageId =\n phaseChainOptions.configurable?.requestBody?.parentMessageId;\n const phaseMetadata: Record<string, unknown> = {\n sourceRunId: sourceRunId ?? this.id,\n ...(sourceTraceId == null ? {} : { sourceTraceId }),\n responseId: phaseMessageId,\n phaseIndex: resolvedPhaseIndex,\n activityCount: Math.max(activities.length, totalActivityCount ?? 0),\n status,\n contributingAgentIds,\n ...(typeof phaseParentMessageId === 'string'\n ? { parentMessageId: phaseParentMessageId }\n : {}),\n ...(phaseAgentId == null ? {} : { agentId: phaseAgentId }),\n ...(phaseAgentName == null ? {} : { agentName: phaseAgentName }),\n ...(closingTextPhase == null ? {} : { closingTextPhase }),\n };\n const traceMetadata = {\n ...createLangfuseTraceMetadata({\n messageId: phaseMessageId,\n parentMessageId: phaseParentMessageId,\n agentId: phaseAgentId,\n agentName: phaseAgentName,\n }),\n sourceRunId: String(phaseMetadata.sourceRunId),\n ...(sourceTraceId == null ? {} : { sourceTraceId }),\n responseId: phaseMessageId,\n phaseIndex: String(resolvedPhaseIndex),\n activityCount: String(phaseMetadata.activityCount),\n status,\n ...(contributingAgentIds.length === 0\n ? {}\n : { contributingAgentIds: contributingAgentIds.join(',') }),\n ...(closingTextPhase == null ? {} : { closingTextPhase }),\n };\n const phaseTraceName =\n phaseChainOptions.runName ?? ACTIVITY_PHASE_TRACE_NAME;\n const phaseTags = [\n 'librechat',\n 'activity-phase',\n 'agent-run-summary',\n 'agent',\n ];\n initializeLangfuseTracing(phaseLangfuseConfig);\n\n const inheritedTraceSeed = getTraceIdSeed();\n const phaseTraceSeed =\n phaseLangfuseConfig?.deterministicTraceId === true ||\n inheritedTraceSeed != null\n ? (traceSeed ?? `activity-phase-${this.id}-${resolvedPhaseIndex}`)\n : undefined;\n const phaseScopeRunId = `activity-phase:${this.id}:${phaseSeq}:${nanoid()}`;\n const phaseRuntimeScope = resolveLangfuseRuntimeScope({\n runLangfuse: this.langfuse,\n langfuseOverlay: phaseContext?.langfuse,\n traceIdSeed: phaseTraceSeed,\n runId: phaseScopeRunId,\n });\n let phaseLangfuseHandler: CallbackEntry | undefined;\n const sourceUserText =\n this.activityPhaseTraceInput ??\n findActivityPhaseTraceInput(this.Graph?.getRunMessages() ?? []);\n if (phaseSessionId != null && sourceUserText != null) {\n phaseLangfuseHandler = createLangfuseHandler({\n langfuse: phaseLangfuseConfig,\n userId: phaseUserId,\n sessionId: phaseSessionId,\n traceMetadata,\n tags: phaseTags,\n traceIdSeed:\n phaseLangfuseConfig?.deterministicTraceId === true\n ? phaseTraceSeed\n : undefined,\n runId: phaseScopeRunId,\n toolOutputTracing: phaseRuntimeScope.toolOutputTracing,\n traceName: phaseTraceName,\n });\n }\n if (phaseLangfuseHandler != null) {\n phaseChainOptions.callbacks = appendCallbacks(\n phaseChainOptions.callbacks,\n [phaseLangfuseHandler]\n );\n }\n\n const model = initializeModel({\n provider,\n clientOptions: {\n ...(clientOptions ?? {}),\n streaming: false,\n } as t.ClientOptions,\n }) as t.ChatModelInstance;\n const phaseRunId = `${this.id}-activity-phase-${phaseSeq}`;\n const invokeConfig = Object.assign({}, phaseChainOptions, {\n run_id: phaseRunId,\n runId: phaseRunId,\n runName: 'summarize-activity-phase',\n tags: [...new Set([...(phaseChainOptions.tags ?? []), ...phaseTags])],\n metadata: {\n ...(phaseChainOptions.metadata ?? {}),\n ...phaseMetadata,\n },\n }) as Partial<RunnableConfig>;\n const invokeModel = (\n runtimeConfig: Partial<RunnableConfig>\n ): Promise<unknown> =>\n model.invoke(\n [\n new SystemMessage(prompt ?? ACTIVITY_PHASE_LABEL_PROMPT),\n new HumanMessage(userPrompt),\n ],\n runtimeConfig\n );\n const invokeWithCallbackFallback = async (\n runtimeConfig: Partial<RunnableConfig>\n ): Promise<unknown> => {\n try {\n return await invokeModel(runtimeConfig);\n } catch (error) {\n const aborted =\n (runtimeConfig as { signal?: AbortSignal }).signal?.aborted ===\n true || (error as Error | null)?.name === 'AbortError';\n const callbackFailure = /callback|tracer|event.?stream/i.test(\n String(\n (error as Error | null)?.stack ??\n (error as Error | null)?.message ??\n ''\n )\n );\n if (aborted || !callbackFailure) {\n throw error;\n }\n const langfuseHandler = findCallback(\n runtimeConfig.callbacks,\n isLangfuseCallbackHandler\n );\n const { callbacks, ...rest } = runtimeConfig;\n const safeConfig = Object.assign({}, rest, {\n callbacks: filterCallbacks(\n callbacks,\n (callback) => callback === langfuseHandler\n ),\n });\n return invokeModel(safeConfig as Partial<RunnableConfig>);\n }\n };\n const extractPhaseLabel = (response: unknown): string => {\n const content = (response as { content?: unknown } | null)?.content;\n if (typeof content === 'string') {\n return normalizeActivityPhaseLabel(content);\n }\n if (!Array.isArray(content)) {\n return '';\n }\n return normalizeActivityPhaseLabel(\n content\n .map((block) =>\n typeof block === 'string'\n ? block\n : ((block as { text?: string }).text ?? '')\n )\n .join('')\n );\n };\n const phaseRunnable = new RunnableLambda({\n func: async (\n _input: { messages: BaseMessage[] },\n runtimeConfig?: Partial<RunnableConfig>\n ): Promise<{ label?: string; messages: BaseMessage[] }> => {\n const response = await invokeWithCallbackFallback(runtimeConfig ?? {});\n const label = extractPhaseLabel(response);\n return label.length > 0\n ? { label, messages: [new AIMessage(label)] }\n : { messages: [] };\n },\n }).withConfig({ runName: 'summarize-activity-phase' });\n\n try {\n const result = await withLangfuseRuntimeScope(phaseRuntimeScope, () =>\n withLangfuseAttributes(\n {\n langfuse: phaseLangfuseConfig,\n userId: phaseUserId,\n sessionId: phaseSessionId,\n traceName: phaseTraceName,\n traceMetadata,\n tags: phaseTags,\n },\n () =>\n phaseRunnable.invoke(\n {\n messages:\n sourceUserText == null\n ? []\n : [new HumanMessage(sourceUserText)],\n },\n invokeConfig\n )\n )\n );\n return result.label == null ? {} : { label: result.label };\n } finally {\n await disposeLangfuseHandler(phaseLangfuseHandler);\n }\n }\n}\n\nfunction findLastMessageOfType(\n messages: BaseMessage[],\n type: string\n): BaseMessage | undefined {\n for (let i = messages.length - 1; i >= 0; i--) {\n if (messages[i].getType() === type) {\n return messages[i];\n }\n }\n return undefined;\n}\n\nfunction findActivityPhaseTraceInput(\n messages: BaseMessage[]\n): string | undefined {\n for (let i = messages.length - 1; i >= 0; i--) {\n const message = messages[i];\n if (\n message.getType() !== 'human' ||\n message.additional_kwargs?.role === 'system' ||\n message.additional_kwargs?.isMeta === true\n ) {\n continue;\n }\n const input = extractPromptText(message).trim();\n if (input !== '') {\n return input;\n }\n }\n return undefined;\n}\n\nfunction extractPromptText(message: BaseMessage): string {\n const content = message.content;\n if (typeof content === 'string') {\n return content;\n }\n if (!Array.isArray(content)) {\n return String(content);\n }\n const parts: string[] = [];\n for (const block of content) {\n const textBlock = block as { type?: unknown; text?: unknown } | null;\n if (\n textBlock != null &&\n (textBlock.type === 'text' || textBlock.type === 'input_text') &&\n typeof textBlock.text === 'string'\n ) {\n parts.push(textBlock.text);\n }\n }\n return parts.join('\\n');\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"run.mjs","names":[],"sources":["../../src/run.ts"],"mappings":"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"}
@@ -326,7 +326,6 @@ function createAgentInputFromGraphConfig(graphConfig, initialSummary, retainRece
326
326
  function createManualCompactGraph(params) {
327
327
  const contentData = [];
328
328
  const contentIndexMap = /* @__PURE__ */ new Map();
329
- /** Stamps the terminal state and publishes the single terminal event. */
330
329
  const closeStep = async (runStep, status, at) => {
331
330
  if (runStep.status !== "in_progress") return;
332
331
  runStep.status = status;
@@ -345,12 +344,6 @@ function createManualCompactGraph(params) {
345
344
  await params.customHandlers?.["on_run_step_closed"]?.handle("on_run_step_closed", closedEvent);
346
345
  };
347
346
  const result = {
348
- /**
349
- * Terminal sweep for compaction, which runs outside `Run.processStream`
350
- * and so has no stream-level equivalent: a summarization model that
351
- * rejects, aborts, or trips a stream limit after the step was published
352
- * would otherwise strand observers with a permanently open step.
353
- */
354
347
  closeOpenSteps: async (status) => {
355
348
  const closedAt = Date.now();
356
349
  for (const runStep of contentData) try {
@@ -834,16 +827,7 @@ var AgentSession = class AgentSession {
834
827
  metadata: { run_id: compactRunId }
835
828
  });
836
829
  } catch (error) {
837
- /**
838
- * `failed`, not `cancelled`: manual compaction is invoked without a
839
- * caller abort signal, so there is no cancellation source to
840
- * corroborate against. An error that merely carries the `AbortError`
841
- * name is an unexpected failure here, and it propagates to the caller
842
- * either way.
843
- */
844
- await graph.closeOpenSteps("failed").catch(() => {
845
- /** the sweep must never mask the summarization failure */
846
- });
830
+ await graph.closeOpenSteps("failed").catch(() => {});
847
831
  throw error;
848
832
  }
849
833
  await graph.closeOpenSteps("completed");