@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":"cache.mjs","names":[],"sources":["../../../src/messages/cache.ts"],"sourcesContent":["import { isProxy } from 'node:util/types';\nimport { BaseMessage, MessageContentComplex } from '@langchain/core/messages';\nimport type Anthropic from '@anthropic-ai/sdk';\nimport type { AnthropicMessage } from '@/types/messages';\nimport { hasComputerCallOutputMarker } from '@/utils/toolContent';\nimport { toLangChainContent } from './langchain';\nimport { ContentTypes } from '@/common/enum';\n\ntype MessageWithContent = {\n content?: string | MessageContentComplex[];\n};\n\ntype MessageContentWithCacheControl = MessageContentComplex & {\n cache_control?: unknown;\n};\n\n/**\n * Prompt-cache breakpoint TTL.\n *\n * Both Anthropic (`cache_control.ttl`) and Bedrock (`cachePoint.ttl`) accept\n * `'5m'` (the legacy provider default) and `'1h'` (the extended cache). When\n * prompt caching is enabled the SDK now defaults to the 1-hour extended cache\n * (see {@link DEFAULT_PROMPT_CACHE_TTL}); pass `'5m'` to opt back into the\n * legacy 5-minute behavior.\n */\nexport type PromptCacheTtl = '5m' | '1h';\n\n/**\n * Default TTL applied wherever a prompt-cache breakpoint is added. The 1-hour\n * extended cache keeps prefixes warm across longer gaps between turns, at the\n * cost of a higher one-time cache-write multiplier (2x vs 1.25x for 5m).\n */\nexport const DEFAULT_PROMPT_CACHE_TTL: PromptCacheTtl = '1h';\n\n/**\n * Resolve an optionally-configured TTL to a concrete value, defaulting to the\n * 1-hour extended cache. Used at the Anthropic/Bedrock prompt-cache call sites.\n */\nexport function resolvePromptCacheTtl(\n ttl: PromptCacheTtl | undefined\n): PromptCacheTtl {\n return ttl ?? DEFAULT_PROMPT_CACHE_TTL;\n}\n\n/** Anthropic `cache_control` shape (the SDK accepts an optional `ttl`). */\ntype AnthropicCacheControl = { type: 'ephemeral'; ttl?: '1h' };\n\n/**\n * Build an Anthropic `cache_control` breakpoint for the given TTL. `'5m'` (or\n * `undefined`) omits the `ttl` field — that is the provider default, so the\n * payload stays byte-identical to the legacy 5-minute marker. `'1h'` adds the\n * explicit extended-cache `ttl`.\n */\nexport function buildAnthropicCacheControl(\n ttl?: PromptCacheTtl\n): AnthropicCacheControl {\n return ttl === '1h'\n ? { type: 'ephemeral', ttl: '1h' }\n : { type: 'ephemeral' };\n}\n\n/** Bedrock `cachePoint` shape (the SDK accepts an optional `ttl`). */\ntype BedrockCachePoint = { type: 'default'; ttl?: '1h' };\n\n/**\n * Build a Bedrock `cachePoint` for the given TTL. Mirrors\n * {@link buildAnthropicCacheControl}: `'5m'`/`undefined` omits `ttl` (the\n * legacy default), `'1h'` adds the extended-cache `ttl`.\n */\nexport function buildBedrockCachePoint(\n ttl?: PromptCacheTtl\n): BedrockCachePoint {\n return ttl === '1h' ? { type: 'default', ttl: '1h' } : { type: 'default' };\n}\n\n/**\n * Whether a Bedrock model id is an Anthropic Claude model. Claude is the only\n * Bedrock family that accepts the explicit cache features below; Amazon Nova and\n * others reject them. Matches both the `anthropic.` and cross-region\n * (`us.anthropic.`) / bare `claude` forms.\n */\nfunction isBedrockAnthropicModel(model: string | undefined | null): boolean {\n return typeof model === 'string' && /claude|anthropic/i.test(model);\n}\n\n/**\n * A `cachePoint` under `toolConfig.tools` is only accepted on Anthropic Claude\n * models. Amazon Nova rejects it outright — `Malformed input request:\n * #/toolConfig/tools/0: extraneous key [cachePoint] is not permitted` — even\n * though it accepts `cachePoint` in `system` and `messages` (verified live:\n * Nova returns HTTP 200 with real `cacheWriteInputTokens` for both). Per the AWS\n * prompt-caching docs the support table lists `tools` for Claude only.\n *\n * Gate ONLY the tool checkpoint on this, so a `promptCache: true` config on Nova\n * keeps its valid message/system caching instead of either 400-ing (tool point)\n * or losing caching entirely.\n *\n * @see https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html\n * @see https://github.com/danny-avila/LibreChat/issues/13838\n */\nexport function supportsBedrockToolCache(\n model: string | undefined | null\n): boolean {\n return isBedrockAnthropicModel(model);\n}\n\n/**\n * Resolve the Bedrock `cachePoint` TTL for a model. The extended `1h` TTL is\n * Anthropic-only: non-Claude models (e.g. Nova) hard-reject it with\n * `Extended TTL prompt caching is only supported for Anthropic models`, so they\n * are clamped to `5m` even when `1h` is configured (verified live). An omitted\n * model defaults to a Claude model, and Claude downgrades an unsupported `1h` to\n * `5m` server-side, so the `1h` default is safe for the Claude/undefined paths.\n *\n * @see https://github.com/danny-avila/LibreChat/issues/13838\n */\nexport function resolveBedrockPromptCacheTtl(\n ttl: PromptCacheTtl | undefined,\n model: string | undefined | null\n): PromptCacheTtl {\n if (model != null && !isBedrockAnthropicModel(model)) {\n return '5m';\n }\n return resolvePromptCacheTtl(ttl);\n}\n\n/**\n * Deep clones a message's content to prevent mutation of the original.\n */\nfunction deepCloneContent<T extends string | MessageContentComplex[]>(\n content: T,\n omittedProperty?: string\n): T {\n if (typeof content === 'string') {\n return content;\n }\n if (Array.isArray(content)) {\n return content.map((block) => {\n if (typeof block !== 'object' || block == null || isProxy(block)) {\n return block;\n }\n try {\n const descriptors = Object.getOwnPropertyDescriptors(block);\n if (omittedProperty != null) {\n delete descriptors[omittedProperty];\n }\n return Object.create(\n Object.getPrototypeOf(block),\n descriptors\n ) as MessageContentComplex;\n } catch {\n return block;\n }\n }) as T;\n }\n return content;\n}\n\n/**\n * Clones a message with new content. For LangChain BaseMessage instances,\n * constructs a proper class instance so that `instanceof` checks are preserved\n * in downstream code (e.g., ensureThinkingBlockInMessages).\n * For plain objects (AnthropicMessage), uses object spread.\n */\nexport function cloneMessage<T extends MessageWithContent>(\n message: T,\n content: string | MessageContentComplex[]\n): T {\n if (message instanceof BaseMessage) {\n const descriptors = Object.getOwnPropertyDescriptors(message) as Record<\n PropertyKey,\n PropertyDescriptor | undefined\n >;\n const contentDescriptor = descriptors.content;\n descriptors.content = {\n configurable: contentDescriptor?.configurable ?? true,\n enumerable: contentDescriptor?.enumerable ?? true,\n value: toLangChainContent(content),\n writable: contentDescriptor?.writable ?? true,\n };\n const lcKwargs = descriptors.lc_kwargs;\n if (\n lcKwargs != null &&\n 'value' in lcKwargs &&\n typeof lcKwargs.value === 'object' &&\n lcKwargs.value != null\n ) {\n descriptors.lc_kwargs = {\n ...lcKwargs,\n value: {\n ...(lcKwargs.value as Record<string, unknown>),\n content: toLangChainContent(content),\n },\n };\n }\n return Object.create(\n Object.getPrototypeOf(message),\n descriptors as PropertyDescriptorMap\n ) as T;\n }\n\n const {\n lc_kwargs: _lc_kwargs,\n lc_serializable: _lc_serializable,\n lc_namespace: _lc_namespace,\n ...rest\n } = message as T & {\n lc_kwargs?: unknown;\n lc_serializable?: unknown;\n lc_namespace?: unknown;\n };\n\n const cloned = { ...rest, content } as T;\n\n // LangChain messages don't have a direct 'role' property - derive it from getType()\n if (\n 'getType' in message &&\n typeof message.getType === 'function' &&\n !('role' in cloned)\n ) {\n const msgType = (message as unknown as BaseMessage).getType();\n const roleMap: Record<string, string> = {\n human: 'user',\n ai: 'assistant',\n system: 'system',\n tool: 'tool',\n };\n (cloned as Record<string, unknown>).role = roleMap[msgType] || msgType;\n }\n\n return cloned;\n}\n\n/**\n * Sanitize a Bedrock system message: strip Anthropic `cache_control` (Bedrock\n * conversion can't use it) and normalize any existing `cachePoint` to the\n * resolved TTL. The normalization matters because Bedrock requires longer-TTL\n * checkpoints to appear before shorter ones — a stale 5-minute system cachePoint\n * (host-supplied or carried over from a 5m config) left ahead of a 1-hour\n * message tail would make the request invalid. System messages are never\n * anchored as the tail breakpoint; this only fixes markers already present.\n */\nfunction sanitizeBedrockSystemMessage<T extends MessageWithContent>(\n message: T,\n ttl?: PromptCacheTtl\n): T {\n const content = message.content;\n if (!Array.isArray(content)) {\n return message;\n }\n\n const sanitized: MessageContentComplex[] = [];\n let modified = false;\n for (const block of content) {\n if (isCachePoint(block)) {\n const descriptor = Object.getOwnPropertyDescriptor(block, 'cachePoint');\n const existing =\n descriptor != null && 'value' in descriptor\n ? (descriptor.value as { ttl?: unknown } | undefined)\n : undefined;\n const desired = buildBedrockCachePoint(ttl);\n if (existing?.ttl !== desired.ttl) {\n modified = true;\n sanitized.push({ cachePoint: desired } as MessageContentComplex);\n } else {\n sanitized.push(block);\n }\n continue;\n }\n if ('cache_control' in block) {\n const cloned: MessageContentWithCacheControl = { ...block };\n delete cloned.cache_control;\n modified = true;\n sanitized.push(cloned);\n continue;\n }\n sanitized.push(block);\n }\n\n if (!modified) {\n return message;\n }\n\n return cloneMessage(message, sanitized);\n}\n\n/**\n * Anthropic API: Adds cache control to the appropriate user messages in the payload.\n * Strips ALL existing cache control (both Anthropic and Bedrock formats) from all messages,\n * then adds fresh cache control to the last 2 user messages in a single backward pass.\n * This ensures we don't accumulate stale cache points across multiple turns.\n * Returns a new array - only clones messages that require modification.\n * @param messages - The array of message objects.\n * @returns - A new array of message objects with cache control added.\n */\nexport function addCacheControl<T extends AnthropicMessage | BaseMessage>(\n messages: T[],\n ttl?: PromptCacheTtl\n): T[] {\n if (!Array.isArray(messages) || messages.length < 2) {\n return messages;\n }\n\n const updatedMessages: T[] = [...messages];\n let userMessagesModified = 0;\n\n for (let i = updatedMessages.length - 1; i >= 0; i--) {\n const originalMessage = updatedMessages[i];\n const content = originalMessage.content;\n const isUserMessage =\n ('getType' in originalMessage && originalMessage.getType() === 'human') ||\n ('role' in originalMessage && originalMessage.role === 'user');\n const hasArrayContent = Array.isArray(content);\n const needsCacheAdd =\n userMessagesModified < 2 &&\n isUserMessage &&\n !isSyntheticMetaMessage(originalMessage) &&\n (typeof content === 'string' || hasArrayContent);\n\n // Skip messages that don't need any work\n if (!needsCacheAdd && !hasArrayContent) {\n continue;\n }\n\n let workingContent: MessageContentComplex[];\n let modified = false;\n\n if (hasArrayContent) {\n // Single pass: clone blocks, strip cache markers and cache points,\n // find last text block index for cache insertion — all at once.\n const src = content as MessageContentComplex[];\n workingContent = [];\n let lastTextIndex = -1;\n for (let j = 0; j < src.length; j++) {\n const block = src[j];\n if (isCachePoint(block)) {\n modified = true;\n continue; // skip cache point blocks\n }\n const cloned = { ...block };\n if ('cache_control' in cloned) {\n delete (cloned as Record<string, unknown>).cache_control;\n modified = true;\n }\n if ('type' in cloned && cloned.type === 'text') {\n lastTextIndex = workingContent.length;\n }\n workingContent.push(cloned as MessageContentComplex);\n }\n\n if (!modified && !needsCacheAdd) {\n continue; // nothing to strip and no cache to add\n }\n\n // Add cache control to the last text block for user messages\n if (needsCacheAdd && lastTextIndex >= 0) {\n (\n workingContent[lastTextIndex] as Anthropic.TextBlockParam\n ).cache_control = buildAnthropicCacheControl(ttl);\n userMessagesModified++;\n }\n } else if (typeof content === 'string' && needsCacheAdd) {\n workingContent = [\n {\n type: 'text',\n text: content,\n cache_control: buildAnthropicCacheControl(ttl),\n },\n ] as unknown as MessageContentComplex[];\n userMessagesModified++;\n } else {\n continue;\n }\n\n updatedMessages[i] = cloneMessage(\n originalMessage as MessageWithContent,\n workingContent\n ) as T;\n }\n\n return updatedMessages;\n}\n\n/**\n * Checks if a content block is a cache point\n */\nfunction isCachePoint(block: unknown): boolean {\n if (typeof block !== 'object' || block == null || isProxy(block)) {\n return false;\n }\n try {\n const cachePoint = Object.getOwnPropertyDescriptor(block, 'cachePoint');\n const type = Object.getOwnPropertyDescriptor(block, 'type');\n return cachePoint?.enumerable === true && type == null;\n } catch {\n return false;\n }\n}\n\n/**\n * Block types that must never anchor the tail cache breakpoint, because the\n * marker would not survive to the model call:\n * - `thinking` / `redacted_thinking`: native Anthropic reasoning — the API\n * rejects `cache_control` on these blocks.\n * - `reasoning_content` / `reasoning` / `think`: foreign reasoning (Bedrock,\n * Google, LibreChat) that `_convertMessagesToAnthropicPayload` DROPS on\n * assistant turns during a cross-provider handoff.\n * - `input_json_delta`: persisted partial tool-input deltas, also DROPPED by\n * `_convertMessagesToAnthropicPayload` (the assembled input is restored onto\n * the tool_use block).\n * Anchoring the only breakpoint on a block that is about to disappear silently\n * loses tail caching, so all of these are excluded.\n */\nconst NON_ANCHORABLE_BLOCK_TYPES = new Set([\n 'thinking',\n 'redacted_thinking',\n 'reasoning_content',\n 'reasoning',\n 'think',\n 'input_json_delta',\n]);\n\n/**\n * A block can anchor the tail cache breakpoint when it is a real content block\n * that the Anthropic API accepts `cache_control` on and that survives provider\n * conversion. Reasoning / dropped-delta blocks are excluded (see\n * {@link NON_ANCHORABLE_BLOCK_TYPES}), and empty text blocks are not cacheable,\n * so both are skipped.\n */\nfunction isTailCacheableBlock(block: MessageContentComplex): boolean {\n if (isCachePoint(block)) {\n return false;\n }\n const type = (block as { type?: string }).type;\n if (type == null || NON_ANCHORABLE_BLOCK_TYPES.has(type)) {\n return false;\n }\n if (type === 'text') {\n const text = (block as { text?: string }).text;\n return text != null && text.trim() !== '';\n }\n return true;\n}\n\n/**\n * Anthropic API: single tail cache breakpoint (default strategy).\n *\n * Places exactly ONE `cache_control` marker on the last cacheable block of the\n * final non-synthetic message, mirroring the Claude Code strategy\n * (`markerIndex = messages.length - 1`). Because the marker always rides the\n * true tail, the entire conversation prefix is written once and read back on\n * the next turn as the history grows append-only — instead of the rolling\n * \"last two user messages\" markers, which leave freshly appended tool/assistant\n * turns outside the cached prefix and re-write large spans every step.\n *\n * Stale markers (Anthropic `cache_control` and Bedrock cache points) are\n * stripped from every message in a single backward pass so exactly one marker\n * survives. Synthetic skill/meta messages are skipped as anchors (their volatile\n * content must not pin the cache) but still have stale markers removed.\n *\n * Returns a new array; only messages that require modification are cloned.\n */\nexport function addTailCacheControl<T extends AnthropicMessage | BaseMessage>(\n messages: T[],\n ttl?: PromptCacheTtl\n): T[] {\n if (!Array.isArray(messages) || messages.length === 0) {\n return messages;\n }\n\n const updatedMessages: T[] = [...messages];\n let markerPlaced = false;\n\n for (let i = updatedMessages.length - 1; i >= 0; i--) {\n const originalMessage = updatedMessages[i];\n const content = originalMessage.content;\n const hasArrayContent = Array.isArray(content);\n const isComputerOutput =\n originalMessage instanceof BaseMessage &&\n hasComputerCallOutputMarker(originalMessage);\n const canPlaceMarker =\n !markerPlaced &&\n !isSyntheticMetaMessage(originalMessage) &&\n !isComputerOutput;\n\n // Earlier string-content messages carry no markers to strip.\n if (!canPlaceMarker && !hasArrayContent) {\n continue;\n }\n\n let workingContent: MessageContentComplex[];\n let modified = false;\n\n if (hasArrayContent) {\n const src = content as MessageContentComplex[];\n workingContent = [];\n let tailIndex = -1;\n for (let j = 0; j < src.length; j++) {\n const block = src[j];\n if (isCachePoint(block)) {\n modified = true;\n continue;\n }\n const cloned = { ...block };\n if ('cache_control' in cloned) {\n delete (cloned as Record<string, unknown>).cache_control;\n modified = true;\n }\n if (\n canPlaceMarker &&\n isTailCacheableBlock(cloned as MessageContentComplex)\n ) {\n tailIndex = workingContent.length;\n }\n workingContent.push(cloned as MessageContentComplex);\n }\n\n if (canPlaceMarker && tailIndex >= 0) {\n (workingContent[tailIndex] as Anthropic.TextBlockParam).cache_control =\n buildAnthropicCacheControl(ttl);\n markerPlaced = true;\n modified = true;\n }\n\n if (!modified) {\n continue;\n }\n } else if (\n typeof content === 'string' &&\n canPlaceMarker &&\n content.trim() !== ''\n ) {\n workingContent = [\n {\n type: 'text',\n text: content,\n cache_control: buildAnthropicCacheControl(ttl),\n },\n ] as unknown as MessageContentComplex[];\n markerPlaced = true;\n } else {\n continue;\n }\n\n updatedMessages[i] = cloneMessage(\n originalMessage as MessageWithContent,\n workingContent\n ) as T;\n }\n\n return updatedMessages;\n}\n\nfunction getMessageRole(message: MessageWithContent): string | undefined {\n if (message instanceof BaseMessage) {\n return message.getType();\n }\n if ('role' in message && typeof message.role === 'string') {\n return message.role;\n }\n return undefined;\n}\n\nconst SKILL_MESSAGE_SOURCE = 'skill';\n\n/**\n * Synthetic skill/meta messages (reconstructed skill bodies, primed SKILL.md\n * instructions) are re-injected every turn and are not stable conversation\n * turns. They must not anchor a fresh prompt-cache marker — doing so pins the\n * cache to a volatile/duplicated prefix. Stale markers are still stripped from\n * them; only the *adding* of new markers is suppressed. Detected via\n * `additional_kwargs.isMeta === true` or `additional_kwargs.source === 'skill'`.\n */\nfunction isSyntheticMetaMessage(message: MessageWithContent): boolean {\n const { additional_kwargs: kwargs } = message as {\n additional_kwargs?: { isMeta?: unknown; source?: unknown };\n };\n if (kwargs == null) {\n return false;\n }\n return kwargs.isMeta === true || kwargs.source === SKILL_MESSAGE_SOURCE;\n}\n\nfunction isCacheableConversationMessage(message: MessageWithContent): boolean {\n const role = getMessageRole(message);\n return (\n role === 'human' || role === 'user' || role === 'ai' || role === 'assistant'\n );\n}\n\nfunction isAssistantConversationMessage(message: MessageWithContent): boolean {\n const role = getMessageRole(message);\n return role === 'ai' || role === 'assistant';\n}\n\nfunction hasCacheMarker(message: MessageWithContent): boolean {\n return (\n Array.isArray(message.content) &&\n message.content.some((block) => 'cache_control' in block)\n );\n}\n\nfunction addCacheControlToRecentMessages<\n T extends AnthropicMessage | BaseMessage,\n>(\n messages: T[],\n maxCachePoints: number,\n canUseMessage: (message: MessageWithContent) => boolean,\n ttl?: PromptCacheTtl\n): T[] {\n if (\n !Array.isArray(messages) ||\n messages.length === 0 ||\n maxCachePoints <= 0\n ) {\n return messages;\n }\n\n const updatedMessages: T[] = [...messages];\n let cachePointsAdded = 0;\n\n for (let i = updatedMessages.length - 1; i >= 0; i--) {\n const originalMessage = updatedMessages[i];\n const content = originalMessage.content;\n const hasArrayContent = Array.isArray(content);\n const canAddCache =\n cachePointsAdded < maxCachePoints &&\n canUseMessage(originalMessage) &&\n !isSyntheticMetaMessage(originalMessage);\n\n if (!canAddCache && !hasArrayContent) {\n continue;\n }\n\n let workingContent: MessageContentComplex[];\n let modified = false;\n\n if (hasArrayContent) {\n const src = content as MessageContentComplex[];\n workingContent = [];\n let lastNonEmptyTextIndex = -1;\n\n for (let j = 0; j < src.length; j++) {\n const block = src[j];\n if (isCachePoint(block)) {\n modified = true;\n continue;\n }\n\n const cloned = { ...block };\n if ('cache_control' in cloned) {\n delete (cloned as Record<string, unknown>).cache_control;\n modified = true;\n }\n\n if ('type' in cloned && cloned.type === 'text') {\n const text = (cloned as { text?: string }).text;\n if (text != null && text.trim() !== '') {\n lastNonEmptyTextIndex = workingContent.length;\n }\n }\n workingContent.push(cloned as MessageContentComplex);\n }\n\n if (canAddCache && lastNonEmptyTextIndex >= 0) {\n (\n workingContent[lastNonEmptyTextIndex] as Anthropic.TextBlockParam\n ).cache_control = buildAnthropicCacheControl(ttl);\n cachePointsAdded++;\n modified = true;\n }\n\n if (!modified) {\n continue;\n }\n } else if (\n typeof content === 'string' &&\n content.trim() !== '' &&\n canAddCache\n ) {\n workingContent = [\n {\n type: 'text',\n text: content,\n cache_control: buildAnthropicCacheControl(ttl),\n },\n ] as unknown as MessageContentComplex[];\n cachePointsAdded++;\n } else {\n continue;\n }\n\n updatedMessages[i] = cloneMessage(\n originalMessage as MessageWithContent,\n workingContent\n ) as T;\n }\n\n return updatedMessages;\n}\n\nexport function addCacheControlToStablePrefixMessages<\n T extends AnthropicMessage | BaseMessage,\n>(messages: T[], maxCachePoints: number, ttl?: PromptCacheTtl): T[] {\n const assistantMarked = addCacheControlToRecentMessages(\n messages,\n maxCachePoints,\n isAssistantConversationMessage,\n ttl\n );\n\n if (assistantMarked.some(hasCacheMarker)) {\n return assistantMarked;\n }\n\n return addCacheControlToRecentMessages(\n messages,\n maxCachePoints,\n isCacheableConversationMessage,\n ttl\n );\n}\n\n/**\n * Checks if a message's content has Anthropic cache_control fields.\n */\nfunction hasAnthropicCacheControl(content: MessageContentComplex[]): boolean {\n for (let i = 0; i < content.length; i++) {\n const block = content[i];\n if (typeof block !== 'object' || block == null || isProxy(block)) {\n continue;\n }\n try {\n const cacheControl = Object.getOwnPropertyDescriptor(\n block,\n 'cache_control'\n );\n if (cacheControl?.enumerable === true) {\n return true;\n }\n } catch {\n continue;\n }\n }\n return false;\n}\n\n/**\n * Removes all Anthropic cache_control fields from messages\n * Used when switching from Anthropic to Bedrock provider\n * Returns a new array - only clones messages that require modification.\n */\nexport function stripAnthropicCacheControl<T extends MessageWithContent>(\n messages: T[]\n): T[] {\n if (!Array.isArray(messages)) {\n return messages;\n }\n\n const updatedMessages: T[] = [...messages];\n\n for (let i = 0; i < updatedMessages.length; i++) {\n const originalMessage = updatedMessages[i];\n const content = originalMessage.content;\n\n if (!Array.isArray(content) || !hasAnthropicCacheControl(content)) {\n continue;\n }\n\n const clonedContent = deepCloneContent(content, 'cache_control');\n updatedMessages[i] = cloneMessage(originalMessage, clonedContent);\n }\n\n return updatedMessages;\n}\n\n/**\n * Checks if a message's content has Bedrock cachePoint blocks.\n */\nfunction hasBedrockCachePoint(content: MessageContentComplex[]): boolean {\n for (let i = 0; i < content.length; i++) {\n if (isCachePoint(content[i])) return true;\n }\n return false;\n}\n\n/**\n * Removes all Bedrock cachePoint blocks from messages\n * Used when switching from Bedrock to Anthropic provider\n * Returns a new array - only clones messages that require modification.\n */\nexport function stripBedrockCacheControl<T extends MessageWithContent>(\n messages: T[]\n): T[] {\n if (!Array.isArray(messages)) {\n return messages;\n }\n\n const updatedMessages: T[] = [...messages];\n\n for (let i = 0; i < updatedMessages.length; i++) {\n const originalMessage = updatedMessages[i];\n const content = originalMessage.content;\n\n if (!Array.isArray(content) || !hasBedrockCachePoint(content)) {\n continue;\n }\n\n const clonedContent = deepCloneContent(content).filter(\n (block) => !isCachePoint(block as MessageContentComplex)\n );\n updatedMessages[i] = cloneMessage(originalMessage, clonedContent);\n }\n\n return updatedMessages;\n}\n\n/**\n * Adds Bedrock Converse API cache points to the latest two user messages.\n * Inserts `{ cachePoint: { type: 'default' } }` as a separate content block\n * immediately after the last text block in each targeted message.\n * Strips ALL existing cache control (both Bedrock and Anthropic formats) from all messages,\n * then adds fresh cache points to the latest two non-tool user messages in a single backward pass.\n * This ensures we don't accumulate stale cache points across multiple turns.\n * Returns a new array - only clones messages that require modification.\n * @param messages - The array of message objects.\n * @returns - A new array of message objects with cache points added.\n */\nexport function addBedrockCacheControl<\n T extends MessageWithContent & { getType?: () => string; role?: string },\n>(messages: T[], ttl?: PromptCacheTtl): T[] {\n if (!Array.isArray(messages) || messages.length === 0) {\n return messages;\n }\n\n const updatedMessages: T[] = [...messages];\n let cachePointsAdded = 0;\n\n for (let i = updatedMessages.length - 1; i >= 0; i--) {\n const originalMessage = updatedMessages[i];\n const messageType =\n 'getType' in originalMessage &&\n typeof originalMessage.getType === 'function'\n ? originalMessage.getType()\n : undefined;\n const messageRole =\n 'role' in originalMessage && typeof originalMessage.role === 'string'\n ? originalMessage.role\n : undefined;\n\n const isSystemMessage =\n messageType === 'system' || messageRole === 'system';\n if (isSystemMessage) {\n updatedMessages[i] = sanitizeBedrockSystemMessage(originalMessage, ttl);\n continue;\n }\n\n const isToolMessage = messageType === 'tool' || messageRole === 'tool';\n const isUserMessage = messageType === 'human' || messageRole === 'user';\n const content = originalMessage.content;\n const hasSerializationProps =\n 'lc_kwargs' in originalMessage ||\n 'lc_serializable' in originalMessage ||\n 'lc_namespace' in originalMessage;\n const hasArrayContent = Array.isArray(content);\n const isEmptyString = typeof content === 'string' && content === '';\n const needsCacheAdd =\n cachePointsAdded < 2 &&\n isUserMessage &&\n !isToolMessage &&\n !isEmptyString &&\n !isSyntheticMetaMessage(originalMessage) &&\n (typeof content === 'string' || hasArrayContent);\n\n if (!needsCacheAdd && !hasArrayContent && !hasSerializationProps) {\n continue;\n }\n\n let workingContent: string | MessageContentComplex[];\n let modified = hasSerializationProps;\n\n if (hasArrayContent) {\n // Single pass: clone blocks, strip cache markers, find last\n // non-empty text block for cache point insertion — all at once.\n const src = content as MessageContentComplex[];\n workingContent = [];\n let lastNonEmptyTextIndex = -1;\n for (let j = 0; j < src.length; j++) {\n const block = src[j];\n if (isCachePoint(block)) {\n modified = true;\n continue;\n }\n const cloned = { ...block };\n if ('cache_control' in cloned) {\n delete (cloned as Record<string, unknown>).cache_control;\n modified = true;\n }\n const type = (cloned as { type?: string }).type;\n if (type === ContentTypes.TEXT || type === 'text') {\n const text = (cloned as { text?: string }).text;\n if (text != null && text.trim() !== '') {\n lastNonEmptyTextIndex = workingContent.length;\n }\n }\n workingContent.push(cloned as MessageContentComplex);\n }\n\n if (!modified && !needsCacheAdd) {\n continue;\n }\n\n // Insert cache point after the last non-empty text block.\n // Skip if no cacheable text content exists (whitespace-only messages).\n if (needsCacheAdd && lastNonEmptyTextIndex >= 0) {\n workingContent.splice(lastNonEmptyTextIndex + 1, 0, {\n cachePoint: buildBedrockCachePoint(ttl),\n } as MessageContentComplex);\n cachePointsAdded++;\n }\n } else if (typeof content === 'string' && needsCacheAdd) {\n workingContent = [\n { type: ContentTypes.TEXT, text: content },\n { cachePoint: buildBedrockCachePoint(ttl) } as MessageContentComplex,\n ];\n cachePointsAdded++;\n } else if (typeof content === 'string' && hasSerializationProps) {\n workingContent = content;\n } else {\n continue;\n }\n\n updatedMessages[i] = cloneMessage(originalMessage, workingContent);\n }\n\n return updatedMessages;\n}\n\n/**\n * Bedrock Converse API: single tail cache breakpoint (default strategy).\n *\n * The Bedrock counterpart of {@link addTailCacheControl}. Strips ALL existing\n * cache control (Bedrock cache points and Anthropic `cache_control`) from every\n * message, then inserts exactly ONE `{ cachePoint: { type: 'default' } }` block\n * immediately after the last non-empty text block of the most recent\n * non-synthetic, non-system message. Anchoring on the rolling tail keeps the\n * cached prefix append-only as the conversation grows, instead of re-writing\n * large spans every turn with the legacy \"last two user messages\" cache points.\n *\n * System messages are sanitized (Anthropic `cache_control` stripped) but never\n * anchored. Synthetic skill/meta messages are skipped as anchors so their\n * volatile content cannot pin the cache.\n *\n * Returns a new array - only clones messages that require modification.\n */\nexport function addBedrockTailCacheControl<\n T extends MessageWithContent & { getType?: () => string; role?: string },\n>(messages: T[], ttl?: PromptCacheTtl): T[] {\n if (!Array.isArray(messages) || messages.length === 0) {\n return messages;\n }\n\n const updatedMessages: T[] = [...messages];\n let cachePointPlaced = false;\n\n for (let i = updatedMessages.length - 1; i >= 0; i--) {\n const originalMessage = updatedMessages[i];\n const messageType =\n 'getType' in originalMessage &&\n typeof originalMessage.getType === 'function'\n ? originalMessage.getType()\n : undefined;\n const messageRole =\n 'role' in originalMessage && typeof originalMessage.role === 'string'\n ? originalMessage.role\n : undefined;\n\n const isSystemMessage =\n messageType === 'system' || messageRole === 'system';\n if (isSystemMessage) {\n updatedMessages[i] = sanitizeBedrockSystemMessage(originalMessage, ttl);\n continue;\n }\n\n const content = originalMessage.content;\n const hasSerializationProps =\n 'lc_kwargs' in originalMessage ||\n 'lc_serializable' in originalMessage ||\n 'lc_namespace' in originalMessage;\n const hasArrayContent = Array.isArray(content);\n const isEmptyString = typeof content === 'string' && content === '';\n const isComputerOutput =\n originalMessage instanceof BaseMessage &&\n hasComputerCallOutputMarker(originalMessage);\n const canPlaceCachePoint =\n !cachePointPlaced &&\n !isEmptyString &&\n !isSyntheticMetaMessage(originalMessage) &&\n !isComputerOutput &&\n (typeof content === 'string' || hasArrayContent);\n\n if (!canPlaceCachePoint && !hasArrayContent && !hasSerializationProps) {\n continue;\n }\n\n let workingContent: string | MessageContentComplex[];\n let modified = hasSerializationProps;\n\n if (hasArrayContent) {\n const src = content as MessageContentComplex[];\n workingContent = [];\n let lastNonEmptyTextIndex = -1;\n for (let j = 0; j < src.length; j++) {\n const block = src[j];\n if (isCachePoint(block)) {\n modified = true;\n continue;\n }\n const cloned = { ...block };\n if ('cache_control' in cloned) {\n delete (cloned as Record<string, unknown>).cache_control;\n modified = true;\n }\n const type = (cloned as { type?: string }).type;\n if (type === ContentTypes.TEXT || type === 'text') {\n const text = (cloned as { text?: string }).text;\n if (text != null && text.trim() !== '') {\n lastNonEmptyTextIndex = workingContent.length;\n }\n }\n workingContent.push(cloned as MessageContentComplex);\n }\n\n if (!modified && !canPlaceCachePoint) {\n continue;\n }\n\n if (canPlaceCachePoint && lastNonEmptyTextIndex >= 0) {\n workingContent.splice(lastNonEmptyTextIndex + 1, 0, {\n cachePoint: buildBedrockCachePoint(ttl),\n } as MessageContentComplex);\n cachePointPlaced = true;\n modified = true;\n }\n } else if (typeof content === 'string' && canPlaceCachePoint) {\n workingContent = [\n { type: ContentTypes.TEXT, text: content },\n { cachePoint: buildBedrockCachePoint(ttl) } as MessageContentComplex,\n ];\n cachePointPlaced = true;\n } else if (typeof content === 'string' && hasSerializationProps) {\n workingContent = content;\n } else {\n continue;\n }\n\n updatedMessages[i] = cloneMessage(originalMessage, workingContent);\n }\n\n return updatedMessages;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"cache.mjs","names":[],"sources":["../../../src/messages/cache.ts"],"mappings":"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"}
@@ -1,21 +1,12 @@
1
1
  import "../common/enum.mjs";
2
2
  import "../common/index.mjs";
3
3
  //#region src/messages/content.ts
4
- /**
5
- * Whether {@link formatContentStrings} will flatten this message's content:
6
- * a human/ai/system message whose content is an array of text-only blocks.
7
- */
8
4
  const isLegacyConvertible = (message) => {
9
5
  const messageType = message.getType();
10
6
  if (!(messageType === "human" || messageType === "ai" || messageType === "system")) return false;
11
7
  if (!Array.isArray(message.content)) return false;
12
8
  return message.content.every((block) => block.type === "text");
13
9
  };
14
- /**
15
- * Formats an array of messages for LangChain, making sure all content fields are strings
16
- * @param {Array<HumanMessage | AIMessage | SystemMessage | ToolMessage>} payload - The array of messages to format.
17
- * @returns {Array<HumanMessage | AIMessage | SystemMessage | ToolMessage>} - The array of formatted LangChain messages, including ToolMessages for tool calls.
18
- */
19
10
  const formatContentStrings = (payload) => {
20
11
  const result = [];
21
12
  for (const message of payload) {
@@ -1 +1 @@
1
- {"version":3,"file":"content.mjs","names":[],"sources":["../../../src/messages/content.ts"],"sourcesContent":["import type {\n BaseMessage,\n MessageContentComplex,\n} from '@langchain/core/messages';\nimport { ContentTypes } from '@/common';\n\n/**\n * Whether {@link formatContentStrings} will flatten this message's content:\n * a human/ai/system message whose content is an array of text-only blocks.\n */\nexport const isLegacyConvertible = (message: BaseMessage): boolean => {\n const messageType = message.getType();\n const isValidMessage =\n messageType === 'human' || messageType === 'ai' || messageType === 'system';\n if (!isValidMessage) {\n return false;\n }\n if (!Array.isArray(message.content)) {\n return false;\n }\n return message.content.every((block) => block.type === ContentTypes.TEXT);\n};\n\n/**\n * Formats an array of messages for LangChain, making sure all content fields are strings\n * @param {Array<HumanMessage | AIMessage | SystemMessage | ToolMessage>} payload - The array of messages to format.\n * @returns {Array<HumanMessage | AIMessage | SystemMessage | ToolMessage>} - The array of formatted LangChain messages, including ToolMessages for tool calls.\n */\nexport const formatContentStrings = (\n payload: Array<BaseMessage>\n): Array<BaseMessage> => {\n // Create a new array to store the processed messages\n const result: Array<BaseMessage> = [];\n\n for (const message of payload) {\n if (!isLegacyConvertible(message)) {\n result.push(message);\n continue;\n }\n\n // Reduce text types to a single string\n const blocks = message.content as MessageContentComplex[];\n const content = blocks.reduce((acc, curr) => {\n if (curr.type === ContentTypes.TEXT) {\n return `${acc}${curr[ContentTypes.TEXT] || ''}\\n`;\n }\n return acc;\n }, '');\n\n message.content = content.trim();\n result.push(message);\n }\n\n return result;\n};\n"],"mappings":";;;;;;;AAUA,MAAa,uBAAuB,YAAkC;CACpE,MAAM,cAAc,QAAQ,QAAQ;CAGpC,IAAI,EADF,gBAAgB,WAAW,gBAAgB,QAAQ,gBAAgB,WAEnE,OAAO;CAET,IAAI,CAAC,MAAM,QAAQ,QAAQ,OAAO,GAChC,OAAO;CAET,OAAO,QAAQ,QAAQ,OAAO,UAAU,MAAM,SAAA,MAA0B;AAC1E;;;;;;AAOA,MAAa,wBACX,YACuB;CAEvB,MAAM,SAA6B,CAAC;CAEpC,KAAK,MAAM,WAAW,SAAS;EAC7B,IAAI,CAAC,oBAAoB,OAAO,GAAG;GACjC,OAAO,KAAK,OAAO;GACnB;EACF;EAWA,QAAQ,UARO,QAAQ,QACA,QAAQ,KAAK,SAAS;GAC3C,IAAI,KAAK,SAAA,QACP,OAAO,GAAG,MAAM,KAAA,WAA2B,GAAG;GAEhD,OAAO;EACT,GAAG,EAEqB,CAAC,CAAC,KAAK;EAC/B,OAAO,KAAK,OAAO;CACrB;CAEA,OAAO;AACT"}
1
+ {"version":3,"file":"content.mjs","names":[],"sources":["../../../src/messages/content.ts"],"mappings":";;;AAUA,MAAa,uBAAuB,YAAkC;CACpE,MAAM,cAAc,QAAQ,QAAQ;CAGpC,IAAI,EADF,gBAAgB,WAAW,gBAAgB,QAAQ,gBAAgB,WAEnE,OAAO;CAET,IAAI,CAAC,MAAM,QAAQ,QAAQ,OAAO,GAChC,OAAO;CAET,OAAO,QAAQ,QAAQ,OAAO,UAAU,MAAM,SAAA,MAA0B;AAC1E;AAOA,MAAa,wBACX,YACuB;CAEvB,MAAM,SAA6B,CAAC;CAEpC,KAAK,MAAM,WAAW,SAAS;EAC7B,IAAI,CAAC,oBAAoB,OAAO,GAAG;GACjC,OAAO,KAAK,OAAO;GACnB;EACF;EAWA,QAAQ,UARO,QAAQ,QACA,QAAQ,KAAK,SAAS;GAC3C,IAAI,KAAK,SAAA,QACP,OAAO,GAAG,MAAM,KAAA,WAA2B,GAAG;GAEhD,OAAO;EACT,GAAG,EAEqB,CAAC,CAAC,KAAK;EAC/B,OAAO,KAAK,OAAO;CACrB;CAEA,OAAO;AACT"}
@@ -1,26 +1,11 @@
1
1
  import { cloneToolMessageWithContent, compactToolContent, getToolContentCharLength, isAtomicToolContentBlock, isComputerCallOutputMessage, serializeToolContentBounded } from "../utils/toolContent.mjs";
2
2
  import { resolveContextPruningSettings } from "./contextPruningSettings.mjs";
3
3
  //#region src/messages/contextPruning.ts
4
- /**
5
- * Applies head+tail soft-trim to tool result content.
6
- */
7
4
  function softTrimContent(content, settings) {
8
5
  const { headChars, tailChars } = settings;
9
6
  const indicator = `\n\n… [soft-trimmed: ${content.length} chars → ${headChars + tailChars} chars, middle removed] …\n\n`;
10
7
  return content.slice(0, headChars) + indicator + content.slice(-tailChars);
11
8
  }
12
- /**
13
- * Applies position-based context pruning to tool result messages.
14
- *
15
- * Modifies messages in-place and updates indexTokenCountMap with recounted
16
- * token values for modified messages.
17
- *
18
- * @param params.messages - The full message array (modified in-place).
19
- * @param params.indexTokenCountMap - Token count map (updated in-place).
20
- * @param params.tokenCounter - Function to recount tokens after modification.
21
- * @param params.config - Partial context pruning config (merged with defaults).
22
- * @returns Counts of soft-trimmed and hard-cleared messages.
23
- */
24
9
  function applyContextPruning(params) {
25
10
  const { messages, indexTokenCountMap, tokenCounter, config, resolvedSettings } = params;
26
11
  const settings = resolvedSettings ?? resolveContextPruningSettings(config);
@@ -1 +1 @@
1
- {"version":3,"file":"contextPruning.mjs","names":[],"sources":["../../../src/messages/contextPruning.ts"],"sourcesContent":["/**\n * Position-based context pruning for tool results.\n *\n * Uses position-based age: the distance of a message\n * from the conversation end as a fraction of total messages.\n *\n * Two degradation levels:\n * - Soft-trim: Keep head + tail of tool result content, drop middle.\n * - Hard-clear: Replace entire content with a placeholder.\n *\n * Messages in the \"protected zone\" (recent assistant turns, system/pre-first-human\n * messages) are never pruned. Atomic media/resource blocks are preserved when\n * they fit; oversized inline payloads are replaced with bounded placeholders.\n */\n\nimport { ToolMessage, type BaseMessage } from '@langchain/core/messages';\nimport type { ContextPruningSettings } from './contextPruningSettings';\nimport type { ContextPruningConfig } from '@/types/graph';\nimport type { TokenCounter } from '@/types/run';\nimport {\n cloneToolMessageWithContent,\n compactToolContent,\n getToolContentCharLength,\n isAtomicToolContentBlock,\n isComputerCallOutputMessage,\n serializeToolContentBounded,\n} from '@/utils/toolContent';\nimport { resolveContextPruningSettings } from './contextPruningSettings';\n\n/**\n * Applies head+tail soft-trim to tool result content.\n */\nfunction softTrimContent(\n content: string,\n settings: ContextPruningSettings['softTrim']\n): string {\n const { headChars, tailChars } = settings;\n const indicator = `\\n\\n… [soft-trimmed: ${content.length} chars → ${headChars + tailChars} chars, middle removed] …\\n\\n`;\n return content.slice(0, headChars) + indicator + content.slice(-tailChars);\n}\n\nexport interface ContextPruningResult {\n /** Number of messages that were soft-trimmed. */\n softTrimmed: number;\n /** Number of messages that were hard-cleared. */\n hardCleared: number;\n}\n\n/**\n * Applies position-based context pruning to tool result messages.\n *\n * Modifies messages in-place and updates indexTokenCountMap with recounted\n * token values for modified messages.\n *\n * @param params.messages - The full message array (modified in-place).\n * @param params.indexTokenCountMap - Token count map (updated in-place).\n * @param params.tokenCounter - Function to recount tokens after modification.\n * @param params.config - Partial context pruning config (merged with defaults).\n * @returns Counts of soft-trimmed and hard-cleared messages.\n */\nexport function applyContextPruning(params: {\n messages: BaseMessage[];\n indexTokenCountMap: Record<string, number | undefined>;\n tokenCounter: TokenCounter;\n config?: ContextPruningConfig;\n resolvedSettings?: ContextPruningSettings;\n}): ContextPruningResult {\n const {\n messages,\n indexTokenCountMap,\n tokenCounter,\n config,\n resolvedSettings,\n } = params;\n const settings = resolvedSettings ?? resolveContextPruningSettings(config);\n\n if (!settings.enabled || messages.length === 0) {\n return { softTrimmed: 0, hardCleared: 0 };\n }\n\n const totalMessages = messages.length;\n let softTrimmed = 0;\n let hardCleared = 0;\n\n // Find the protected zone: last N assistant turns from the end.\n // An \"assistant turn\" is a contiguous sequence of AI + Tool messages.\n const protectedIndices = new Set<number>();\n\n // Always protect the system message (index 0 if present)\n if (messages[0]?.getType() === 'system') {\n protectedIndices.add(0);\n }\n\n // Protect messages before the first human message\n for (let i = 0; i < totalMessages; i++) {\n if (messages[i].getType() === 'human') {\n break;\n }\n protectedIndices.add(i);\n }\n\n // Protect the last N assistant turns (walking backwards)\n let assistantTurnsFound = 0;\n let inAssistantSequence = false;\n for (let i = totalMessages - 1; i >= 0; i--) {\n const type = messages[i].getType();\n if (type === 'ai' || type === 'tool') {\n protectedIndices.add(i);\n if (!inAssistantSequence) {\n inAssistantSequence = true;\n }\n } else {\n if (inAssistantSequence) {\n assistantTurnsFound++;\n inAssistantSequence = false;\n if (assistantTurnsFound >= settings.keepLastAssistants) {\n break;\n }\n }\n // Protect the human message between assistant turns in the protected zone\n if (assistantTurnsFound < settings.keepLastAssistants) {\n protectedIndices.add(i);\n }\n }\n }\n\n // Process each tool message outside the protected zone\n for (let i = 0; i < totalMessages; i++) {\n const message = messages[i];\n if (message.getType() !== 'tool') {\n continue;\n }\n if (isComputerCallOutputMessage(message)) {\n continue;\n }\n if (protectedIndices.has(i)) {\n continue;\n }\n const content = message.content;\n const contentLength = getToolContentCharLength(content);\n if (contentLength < settings.minPrunableToolChars) {\n continue;\n }\n\n // Compute age ratio: how far back from the end (0 = latest, 1 = oldest)\n const ageRatio = (totalMessages - i) / totalMessages;\n\n if (\n Array.isArray(content) &&\n content.some(isAtomicToolContentBlock) &&\n ageRatio >= settings.softTrimRatio\n ) {\n const compacted = compactToolContent(content, settings.softTrim.maxChars);\n if (compacted.changed) {\n const cloned = cloneToolMessageWithContent(\n message as ToolMessage,\n compacted.content\n );\n messages[i] = cloned;\n indexTokenCountMap[i] = tokenCounter(cloned);\n softTrimmed++;\n }\n continue;\n }\n\n if (ageRatio >= settings.hardClearRatio && settings.hardClear.enabled) {\n // Hard-clear: replace with placeholder\n const cloned = cloneToolMessageWithContent(\n message as ToolMessage,\n settings.hardClear.placeholder\n );\n messages[i] = cloned;\n indexTokenCountMap[i] = tokenCounter(cloned);\n hardCleared++;\n } else if (ageRatio >= settings.softTrimRatio) {\n // Soft-trim: keep head + tail\n if (contentLength > settings.softTrim.maxChars) {\n const cloned = cloneToolMessageWithContent(\n message as ToolMessage,\n softTrimContent(\n typeof content === 'string'\n ? content\n : serializeToolContentBounded(\n content,\n settings.softTrim.maxChars\n ),\n settings.softTrim\n )\n );\n messages[i] = cloned;\n indexTokenCountMap[i] = tokenCounter(cloned);\n softTrimmed++;\n }\n }\n }\n\n return { softTrimmed, hardCleared };\n}\n"],"mappings":";;;;;;AAgCA,SAAS,gBACP,SACA,UACQ;CACR,MAAM,EAAE,WAAW,cAAc;CACjC,MAAM,YAAY,wBAAwB,QAAQ,OAAO,WAAW,YAAY,UAAU;CAC1F,OAAO,QAAQ,MAAM,GAAG,SAAS,IAAI,YAAY,QAAQ,MAAM,CAAC,SAAS;AAC3E;;;;;;;;;;;;;AAqBA,SAAgB,oBAAoB,QAMX;CACvB,MAAM,EACJ,UACA,oBACA,cACA,QACA,qBACE;CACJ,MAAM,WAAW,oBAAoB,8BAA8B,MAAM;CAEzE,IAAI,CAAC,SAAS,WAAW,SAAS,WAAW,GAC3C,OAAO;EAAE,aAAa;EAAG,aAAa;CAAE;CAG1C,MAAM,gBAAgB,SAAS;CAC/B,IAAI,cAAc;CAClB,IAAI,cAAc;CAIlB,MAAM,mCAAmB,IAAI,IAAY;CAGzC,IAAI,SAAS,EAAE,EAAE,QAAQ,MAAM,UAC7B,iBAAiB,IAAI,CAAC;CAIxB,KAAK,IAAI,IAAI,GAAG,IAAI,eAAe,KAAK;EACtC,IAAI,SAAS,EAAE,CAAC,QAAQ,MAAM,SAC5B;EAEF,iBAAiB,IAAI,CAAC;CACxB;CAGA,IAAI,sBAAsB;CAC1B,IAAI,sBAAsB;CAC1B,KAAK,IAAI,IAAI,gBAAgB,GAAG,KAAK,GAAG,KAAK;EAC3C,MAAM,OAAO,SAAS,EAAE,CAAC,QAAQ;EACjC,IAAI,SAAS,QAAQ,SAAS,QAAQ;GACpC,iBAAiB,IAAI,CAAC;GACtB,IAAI,CAAC,qBACH,sBAAsB;EAE1B,OAAO;GACL,IAAI,qBAAqB;IACvB;IACA,sBAAsB;IACtB,IAAI,uBAAuB,SAAS,oBAClC;GAEJ;GAEA,IAAI,sBAAsB,SAAS,oBACjC,iBAAiB,IAAI,CAAC;EAE1B;CACF;CAGA,KAAK,IAAI,IAAI,GAAG,IAAI,eAAe,KAAK;EACtC,MAAM,UAAU,SAAS;EACzB,IAAI,QAAQ,QAAQ,MAAM,QACxB;EAEF,IAAI,4BAA4B,OAAO,GACrC;EAEF,IAAI,iBAAiB,IAAI,CAAC,GACxB;EAEF,MAAM,UAAU,QAAQ;EACxB,MAAM,gBAAgB,yBAAyB,OAAO;EACtD,IAAI,gBAAgB,SAAS,sBAC3B;EAIF,MAAM,YAAY,gBAAgB,KAAK;EAEvC,IACE,MAAM,QAAQ,OAAO,KACrB,QAAQ,KAAK,wBAAwB,KACrC,YAAY,SAAS,eACrB;GACA,MAAM,YAAY,mBAAmB,SAAS,SAAS,SAAS,QAAQ;GACxE,IAAI,UAAU,SAAS;IACrB,MAAM,SAAS,4BACb,SACA,UAAU,OACZ;IACA,SAAS,KAAK;IACd,mBAAmB,KAAK,aAAa,MAAM;IAC3C;GACF;GACA;EACF;EAEA,IAAI,YAAY,SAAS,kBAAkB,SAAS,UAAU,SAAS;GAErE,MAAM,SAAS,4BACb,SACA,SAAS,UAAU,WACrB;GACA,SAAS,KAAK;GACd,mBAAmB,KAAK,aAAa,MAAM;GAC3C;EACF,OAAO,IAAI,YAAY,SAAS;OAE1B,gBAAgB,SAAS,SAAS,UAAU;IAC9C,MAAM,SAAS,4BACb,SACA,gBACE,OAAO,YAAY,WACf,UACA,4BACA,SACA,SAAS,SAAS,QACpB,GACF,SAAS,QACX,CACF;IACA,SAAS,KAAK;IACd,mBAAmB,KAAK,aAAa,MAAM;IAC3C;GACF;;CAEJ;CAEA,OAAO;EAAE;EAAa;CAAY;AACpC"}
1
+ {"version":3,"file":"contextPruning.mjs","names":[],"sources":["../../../src/messages/contextPruning.ts"],"mappings":";;;AAgCA,SAAS,gBACP,SACA,UACQ;CACR,MAAM,EAAE,WAAW,cAAc;CACjC,MAAM,YAAY,wBAAwB,QAAQ,OAAO,WAAW,YAAY,UAAU;CAC1F,OAAO,QAAQ,MAAM,GAAG,SAAS,IAAI,YAAY,QAAQ,MAAM,CAAC,SAAS;AAC3E;AAqBA,SAAgB,oBAAoB,QAMX;CACvB,MAAM,EACJ,UACA,oBACA,cACA,QACA,qBACE;CACJ,MAAM,WAAW,oBAAoB,8BAA8B,MAAM;CAEzE,IAAI,CAAC,SAAS,WAAW,SAAS,WAAW,GAC3C,OAAO;EAAE,aAAa;EAAG,aAAa;CAAE;CAG1C,MAAM,gBAAgB,SAAS;CAC/B,IAAI,cAAc;CAClB,IAAI,cAAc;CAIlB,MAAM,mCAAmB,IAAI,IAAY;CAGzC,IAAI,SAAS,EAAE,EAAE,QAAQ,MAAM,UAC7B,iBAAiB,IAAI,CAAC;CAIxB,KAAK,IAAI,IAAI,GAAG,IAAI,eAAe,KAAK;EACtC,IAAI,SAAS,EAAE,CAAC,QAAQ,MAAM,SAC5B;EAEF,iBAAiB,IAAI,CAAC;CACxB;CAGA,IAAI,sBAAsB;CAC1B,IAAI,sBAAsB;CAC1B,KAAK,IAAI,IAAI,gBAAgB,GAAG,KAAK,GAAG,KAAK;EAC3C,MAAM,OAAO,SAAS,EAAE,CAAC,QAAQ;EACjC,IAAI,SAAS,QAAQ,SAAS,QAAQ;GACpC,iBAAiB,IAAI,CAAC;GACtB,IAAI,CAAC,qBACH,sBAAsB;EAE1B,OAAO;GACL,IAAI,qBAAqB;IACvB;IACA,sBAAsB;IACtB,IAAI,uBAAuB,SAAS,oBAClC;GAEJ;GAEA,IAAI,sBAAsB,SAAS,oBACjC,iBAAiB,IAAI,CAAC;EAE1B;CACF;CAGA,KAAK,IAAI,IAAI,GAAG,IAAI,eAAe,KAAK;EACtC,MAAM,UAAU,SAAS;EACzB,IAAI,QAAQ,QAAQ,MAAM,QACxB;EAEF,IAAI,4BAA4B,OAAO,GACrC;EAEF,IAAI,iBAAiB,IAAI,CAAC,GACxB;EAEF,MAAM,UAAU,QAAQ;EACxB,MAAM,gBAAgB,yBAAyB,OAAO;EACtD,IAAI,gBAAgB,SAAS,sBAC3B;EAIF,MAAM,YAAY,gBAAgB,KAAK;EAEvC,IACE,MAAM,QAAQ,OAAO,KACrB,QAAQ,KAAK,wBAAwB,KACrC,YAAY,SAAS,eACrB;GACA,MAAM,YAAY,mBAAmB,SAAS,SAAS,SAAS,QAAQ;GACxE,IAAI,UAAU,SAAS;IACrB,MAAM,SAAS,4BACb,SACA,UAAU,OACZ;IACA,SAAS,KAAK;IACd,mBAAmB,KAAK,aAAa,MAAM;IAC3C;GACF;GACA;EACF;EAEA,IAAI,YAAY,SAAS,kBAAkB,SAAS,UAAU,SAAS;GAErE,MAAM,SAAS,4BACb,SACA,SAAS,UAAU,WACrB;GACA,SAAS,KAAK;GACd,mBAAmB,KAAK,aAAa,MAAM;GAC3C;EACF,OAAO,IAAI,YAAY,SAAS;OAE1B,gBAAgB,SAAS,SAAS,UAAU;IAC9C,MAAM,SAAS,4BACb,SACA,gBACE,OAAO,YAAY,WACf,UACA,4BACA,SACA,SAAS,SAAS,QACpB,GACF,SAAS,QACX,CACF;IACA,SAAS,KAAK;IACd,mBAAmB,KAAK,aAAa,MAAM;IAC3C;GACF;;CAEJ;CAEA,OAAO;EAAE;EAAa;CAAY;AACpC"}
@@ -15,9 +15,6 @@ const DEFAULT_CONTEXT_PRUNING_SETTINGS = {
15
15
  placeholder: "[Old tool result content cleared]"
16
16
  }
17
17
  };
18
- /**
19
- * Merges user-provided partial overrides with the defaults.
20
- */
21
18
  function resolveContextPruningSettings(overrides) {
22
19
  if (!overrides) return { ...DEFAULT_CONTEXT_PRUNING_SETTINGS };
23
20
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"contextPruningSettings.mjs","names":[],"sources":["../../../src/messages/contextPruningSettings.ts"],"sourcesContent":["/**\n * Default settings for position-based context pruning.\n *\n * These are merged with user-provided overrides so any subset can be customized.\n */\n\nexport interface ContextPruningSettings {\n /** Whether position-based pruning is enabled. Default: false (opt-in). */\n enabled: boolean;\n /** Number of recent assistant turns to protect from pruning. Default: 3 */\n keepLastAssistants: number;\n /** Age ratio (0-1) at which soft-trim fires. Default: 0.3 */\n softTrimRatio: number;\n /** Age ratio (0-1) at which hard-clear fires. Default: 0.5 */\n hardClearRatio: number;\n /** Minimum tool result size (chars) before pruning applies. Default: 50000 */\n minPrunableToolChars: number;\n softTrim: {\n /** Maximum total chars after soft-trim. Default: 4000 */\n maxChars: number;\n /** Head portion to keep. Default: 1500 */\n headChars: number;\n /** Tail portion to keep. Default: 1500 */\n tailChars: number;\n };\n hardClear: {\n /** Whether hard-clear is enabled. Default: true */\n enabled: boolean;\n /** Placeholder text for hard-cleared content. */\n placeholder: string;\n };\n}\n\nexport const DEFAULT_CONTEXT_PRUNING_SETTINGS: ContextPruningSettings = {\n enabled: false,\n keepLastAssistants: 3,\n softTrimRatio: 0.3,\n hardClearRatio: 0.5,\n minPrunableToolChars: 50_000,\n softTrim: {\n maxChars: 4_000,\n headChars: 1_500,\n tailChars: 1_500,\n },\n hardClear: {\n enabled: true,\n placeholder: '[Old tool result content cleared]',\n },\n};\n\n/**\n * Merges user-provided partial overrides with the defaults.\n */\nexport function resolveContextPruningSettings(\n overrides?: Partial<{\n enabled?: boolean;\n keepLastAssistants?: number;\n softTrimRatio?: number;\n hardClearRatio?: number;\n minPrunableToolChars?: number;\n softTrim?: Partial<ContextPruningSettings['softTrim']>;\n hardClear?: Partial<ContextPruningSettings['hardClear']>;\n }>\n): ContextPruningSettings {\n if (!overrides) {\n return { ...DEFAULT_CONTEXT_PRUNING_SETTINGS };\n }\n return {\n enabled: overrides.enabled ?? DEFAULT_CONTEXT_PRUNING_SETTINGS.enabled,\n keepLastAssistants:\n overrides.keepLastAssistants ??\n DEFAULT_CONTEXT_PRUNING_SETTINGS.keepLastAssistants,\n softTrimRatio:\n overrides.softTrimRatio ?? DEFAULT_CONTEXT_PRUNING_SETTINGS.softTrimRatio,\n hardClearRatio:\n overrides.hardClearRatio ??\n DEFAULT_CONTEXT_PRUNING_SETTINGS.hardClearRatio,\n minPrunableToolChars:\n overrides.minPrunableToolChars ??\n DEFAULT_CONTEXT_PRUNING_SETTINGS.minPrunableToolChars,\n softTrim: {\n ...DEFAULT_CONTEXT_PRUNING_SETTINGS.softTrim,\n ...overrides.softTrim,\n },\n hardClear: {\n ...DEFAULT_CONTEXT_PRUNING_SETTINGS.hardClear,\n ...overrides.hardClear,\n },\n };\n}\n"],"mappings":";AAiCA,MAAa,mCAA2D;CACtE,SAAS;CACT,oBAAoB;CACpB,eAAe;CACf,gBAAgB;CAChB,sBAAsB;CACtB,UAAU;EACR,UAAU;EACV,WAAW;EACX,WAAW;CACb;CACA,WAAW;EACT,SAAS;EACT,aAAa;CACf;AACF;;;;AAKA,SAAgB,8BACd,WASwB;CACxB,IAAI,CAAC,WACH,OAAO,EAAE,GAAG,iCAAiC;CAE/C,OAAO;EACL,SAAS,UAAU,WAAW,iCAAiC;EAC/D,oBACE,UAAU,sBACV,iCAAiC;EACnC,eACE,UAAU,iBAAiB,iCAAiC;EAC9D,gBACE,UAAU,kBACV,iCAAiC;EACnC,sBACE,UAAU,wBACV,iCAAiC;EACnC,UAAU;GACR,GAAG,iCAAiC;GACpC,GAAG,UAAU;EACf;EACA,WAAW;GACT,GAAG,iCAAiC;GACpC,GAAG,UAAU;EACf;CACF;AACF"}
1
+ {"version":3,"file":"contextPruningSettings.mjs","names":[],"sources":["../../../src/messages/contextPruningSettings.ts"],"mappings":";AAiCA,MAAa,mCAA2D;CACtE,SAAS;CACT,oBAAoB;CACpB,eAAe;CACf,gBAAgB;CAChB,sBAAsB;CACtB,UAAU;EACR,UAAU;EACV,WAAW;EACX,WAAW;CACb;CACA,WAAW;EACT,SAAS;EACT,aAAa;CACf;AACF;AAKA,SAAgB,8BACd,WASwB;CACxB,IAAI,CAAC,WACH,OAAO,EAAE,GAAG,iCAAiC;CAE/C,OAAO;EACL,SAAS,UAAU,WAAW,iCAAiC;EAC/D,oBACE,UAAU,sBACV,iCAAiC;EACnC,eACE,UAAU,iBAAiB,iCAAiC;EAC9D,gBACE,UAAU,kBACV,iCAAiC;EACnC,sBACE,UAAU,wBACV,iCAAiC;EACnC,UAAU;GACR,GAAG,iCAAiC;GACpC,GAAG,UAAU;EACf;EACA,WAAW;GACT,GAAG,iCAAiC;GACpC,GAAG,UAAU;EACf;CACF;AACF"}
@@ -261,12 +261,6 @@ function appendContentBlocks(target, content) {
261
261
  }
262
262
  for (const block of content) target.push(block);
263
263
  }
264
- /**
265
- * Appends one artifact/tool-content segment without retaining an unbounded
266
- * intermediate block array. Both operands are compacted before they are
267
- * combined, and the combined result is compacted again under the aggregate
268
- * cap.
269
- */
270
264
  function appendBoundedContent(current, next, maxChars) {
271
265
  const boundedNext = compactToolContent(next, maxChars).content;
272
266
  if (current == null) return boundedNext;
@@ -840,12 +834,6 @@ function isPreemptedOpenAIResponsesMessage(message) {
840
834
  if (message.id?.startsWith("msg_") === true || message.id?.startsWith("resp_") === true || typeof metadata.id === "string" && metadata.id.startsWith("resp_") || Array.isArray(metadata.output) || metadata.tool_outputs != null || Array.isArray(message.additional_kwargs.tool_outputs) || message.additional_kwargs["__openai_responses_replay_positions__"] != null || message.additional_kwargs.__openai_function_call_ids__ != null || message.additional_kwargs.__openai_custom_tool_call_ids__ != null || message.additional_kwargs.reasoning != null && typeof message.additional_kwargs.reasoning === "object") return true;
841
835
  return false;
842
836
  }
843
- /**
844
- * A sealed Responses turn cannot prove that provider-side item ids were
845
- * retained: the response object does not echo the request's `store` flag.
846
- * Project a provider-neutral clone while preserving self-contained encrypted
847
- * reasoning and the original graph/checkpoint message.
848
- */
849
837
  function projectPreemptedOpenAIResponsesMessage(message, maxChars, replayProjection) {
850
838
  if (!isPreemptedOpenAIResponsesMessage(message)) return message;
851
839
  const metadata = message.response_metadata;
@@ -877,7 +865,6 @@ function projectPreemptedOpenAIResponsesMessage(message, maxChars, replayProject
877
865
  if (promotesV0) responseMetadata.output_version = "v1";
878
866
  return cloneAIMessageWithResponsesReplayState(message, content, message.id?.startsWith("msg_") === true ? void 0 : message.id, additionalKwargs, responseMetadata);
879
867
  }
880
- /** Applies sealed-Responses safety and drops incomplete streamed text input. */
881
868
  function projectToolStreamContentForProvider(messages, responsesReplayProjection, maxChars = HARD_MAX_TOOL_RESULT_CHARS) {
882
869
  let projected;
883
870
  for (let i = 0; i < messages.length; i++) {
@@ -909,14 +896,6 @@ function projectStructuredOpenAIToolContent(content, maxChars, cacheControlledTe
909
896
  }
910
897
  return serializeToolContentBounded(cacheControlledTextProjection === "preserve" ? stripAnthropicCacheControl([{ content }])[0].content : content, maxChars);
911
898
  }
912
- /**
913
- * OpenAI Chat tool messages only accept strings or text-only parts, while the
914
- * Responses API serializes any structured ToolMessage after graph accounting.
915
- * Project every non-string tool result to one bounded string before the final
916
- * provider payload is measured so both APIs receive the exact representation
917
- * the budget guard counted. Native Responses computer screenshots stay
918
- * structured because their dedicated converter sends the media block directly.
919
- */
920
899
  function projectOpenAIToolMessageContentInternal(messages, maxChars, nativeResponsesProjection, cacheControlledTextProjection) {
921
900
  const pendingComputerCallIds = [];
922
901
  const seenComputerCallIds = /* @__PURE__ */ new Set();
@@ -963,13 +942,6 @@ function projectOpenAIToolMessageContentInternal(messages, maxChars, nativeRespo
963
942
  pendingComputerCallIds.push(record.call_id);
964
943
  }
965
944
  if (nativeResponsesProjection && Array.isArray(toolCalls) && rawComputerCallIds.size > 0) {
966
- /**
967
- * The non-streaming Responses converter marks parsed computer calls,
968
- * but the streaming converter currently emits the same call as an
969
- * ordinary parsed `computer_use` tool call. In both cases the raw
970
- * `computer_call` item is authoritative and is replayed by LangChain,
971
- * so remove every parsed representation with the same call id.
972
- */
973
945
  const projectedToolCalls = toolCalls.filter((toolCall) => typeof toolCall.id !== "string" || !rawComputerCallIds.has(toolCall.id));
974
946
  if (projectedToolCalls.length !== toolCalls.length) {
975
947
  projected ??= [...messages];
@@ -993,23 +965,18 @@ function projectOpenAIToolMessageContentInternal(messages, maxChars, nativeRespo
993
965
  if (pendingComputerCallIds.length > 0) throw new Error(`Missing computer call output for "${pendingComputerCallIds[0]}"`);
994
966
  return projected ?? messages;
995
967
  }
996
- /** Projects OpenAI-compatible tool content without changing parsed call parents. */
997
968
  function projectOpenAIToolMessageContent(messages, maxChars = HARD_MAX_TOOL_RESULT_CHARS) {
998
969
  return projectOpenAIToolMessageContentInternal(messages, maxChars, false, "serialize");
999
970
  }
1000
- /** Projects an actual OpenAI-compatible Chat attempt and removes cache metadata. */
1001
971
  function projectOpenAIChatToolMessageContent(messages, maxChars = HARD_MAX_TOOL_RESULT_CHARS) {
1002
972
  return projectOpenAIToolMessageContentInternal(messages, maxChars, false, "text");
1003
973
  }
1004
- /** Preserves OpenRouter's cache-decorated text blocks for a Chat attempt. */
1005
974
  function projectOpenRouterToolMessageContent(messages, maxChars = HARD_MAX_TOOL_RESULT_CHARS) {
1006
975
  return projectOpenAIToolMessageContentInternal(messages, maxChars, false, "preserve");
1007
976
  }
1008
- /** Projects Responses tool content and collapses parsed/raw computer-call mirrors. */
1009
977
  function projectOpenAIResponsesToolMessageContent(messages, maxChars = HARD_MAX_TOOL_RESULT_CHARS) {
1010
978
  return projectOpenAIToolMessageContentInternal(messages, maxChars, true, "text");
1011
979
  }
1012
- /** Removes Anthropic/OpenRouter cache metadata before unsupported providers run. */
1013
980
  function projectCacheControlledToolOutputsToText(messages, maxChars = HARD_MAX_TOOL_RESULT_CHARS) {
1014
981
  let projected;
1015
982
  for (let i = 0; i < messages.length; i++) {
@@ -1022,7 +989,6 @@ function projectCacheControlledToolOutputsToText(messages, maxChars = HARD_MAX_T
1022
989
  }
1023
990
  return projected ?? messages;
1024
991
  }
1025
- /** Unwraps a canonical single text block after provider cache markers are removed. */
1026
992
  function projectSingleTextToolOutputsToText(messages, maxChars = HARD_MAX_TOOL_RESULT_CHARS) {
1027
993
  let projected;
1028
994
  for (let i = 0; i < messages.length; i++) {
@@ -1035,7 +1001,6 @@ function projectSingleTextToolOutputsToText(messages, maxChars = HARD_MAX_TOOL_R
1035
1001
  }
1036
1002
  return projected ?? messages;
1037
1003
  }
1038
- /** Serializes provider-neutral structured tool outputs without media pairing. */
1039
1004
  function projectStructuredToolOutputsToText(messages, maxChars = HARD_MAX_TOOL_RESULT_CHARS) {
1040
1005
  let projected;
1041
1006
  for (let i = 0; i < messages.length; i++) {
@@ -1046,11 +1011,6 @@ function projectStructuredToolOutputsToText(messages, maxChars = HARD_MAX_TOOL_R
1046
1011
  }
1047
1012
  return projected ?? messages;
1048
1013
  }
1049
- /**
1050
- * Non-Responses providers cannot consume native computer screenshots. Keep
1051
- * the tool-call structure intact, but replace screenshot bytes with a bounded
1052
- * text marker at the actual invocation boundary.
1053
- */
1054
1014
  function projectComputerCallOutputsToText(messages) {
1055
1015
  let projected;
1056
1016
  for (let i = 0; i < messages.length; i++) {
@@ -1089,10 +1049,6 @@ function projectAnthropicArtifactContent(messages, maxChars = HARD_MAX_TOOL_RESU
1089
1049
  }
1090
1050
  return formattedMessages ?? messages;
1091
1051
  }
1092
- /**
1093
- * Mutating compatibility wrapper retained for existing package consumers.
1094
- * New provider-call paths should use `projectAnthropicArtifactContent`.
1095
- */
1096
1052
  function formatAnthropicArtifactContent(messages) {
1097
1053
  const projected = projectAnthropicArtifactContent(messages);
1098
1054
  if (projected === messages) return;
@@ -1119,10 +1075,6 @@ function projectArtifactPayload(messages, maxChars = HARD_MAX_TOOL_RESULT_CHARS)
1119
1075
  if (aggregatedContent != null) formattedMessages?.push(new HumanMessage({ content: aggregatedContent }));
1120
1076
  return formattedMessages ?? messages;
1121
1077
  }
1122
- /**
1123
- * Mutating compatibility wrapper retained for existing package consumers.
1124
- * New provider-call paths should use `projectArtifactPayload`.
1125
- */
1126
1078
  function formatArtifactPayload(messages) {
1127
1079
  const originalLength = messages.length;
1128
1080
  const projected = projectArtifactPayload(messages);