@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":"toolContent.mjs","names":[],"sources":["../../../src/utils/toolContent.ts"],"sourcesContent":["import { isProxy } from 'node:util/types';\nimport { ToolMessage, type BaseMessage } from '@langchain/core/messages';\nimport {\n HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE,\n truncateToolResultContent,\n} from './truncation';\n\ntype ToolContent = BaseMessage['content'];\ntype ToolContentBlock = Exclude<ToolContent, string>[number];\ntype TextToolContentBlock = ToolContentBlock & { type: 'text'; text: string };\n\nconst ATOMIC_CONTENT_TYPES = new Set([\n 'audio',\n 'computer_screenshot',\n 'document',\n 'file',\n 'image',\n 'image_file',\n 'image_url',\n 'input_audio',\n 'input_image',\n 'media',\n 'resource',\n 'resource_link',\n 'video',\n 'video_url',\n]);\nconst MAX_TOOL_CONTENT_TYPE_CHARS = 256;\nconst MAX_PROVIDER_IMAGE_URL_CHARS = 16_384;\nconst MAX_PROVIDER_FILE_ID_CHARS = 4_096;\n\nconst PROVIDER_NATIVE_TOOL_RESULT_TYPES = new Set([\n 'search_result',\n 'server_tool_call_result',\n 'tool_result',\n 'toolResponse',\n 'web_search_result',\n 'web_search_tool_result',\n]);\n\n/**\n * Serializes values that providers render as JSON without throwing on values\n * such as bigint or circular diagnostic metadata.\n */\nexport function serializeStructuredValue(value: unknown): string {\n return serializeStructuredValueBounded(value, Number.MAX_SAFE_INTEGER)\n .content;\n}\n\nconst SERIALIZATION_CHUNK_SIZE = 4_096;\nconst MAX_STRUCTURED_SERIALIZATION_DEPTH = 200;\nconst MAX_STRUCTURED_SERIALIZATION_WORK = 1_000_000;\nconst MAX_STRUCTURED_CHARACTER_WORK = 1_000_000;\nconst MAX_STRUCTURED_PROPERTY_CACHE_ENTRIES = 10_000;\nconst PROXY_VALUE_PLACEHOLDER = '[Proxy value omitted]';\nconst CHARACTER_WORK_PLACEHOLDER =\n '[truncated: character traversal limit exceeded]';\n\ntype StructuredWorkState = {\n remaining: number;\n characterRemaining: number;\n exceeded: boolean;\n failurePlaceholder?: string;\n propertyCache: WeakMap<object, Map<string, unknown>>;\n propertyCacheEntries: number;\n};\n\nfunction createStructuredWorkState(): StructuredWorkState {\n return {\n remaining: MAX_STRUCTURED_SERIALIZATION_WORK,\n characterRemaining: MAX_STRUCTURED_CHARACTER_WORK,\n exceeded: false,\n propertyCache: new WeakMap<object, Map<string, unknown>>(),\n propertyCacheEntries: 0,\n };\n}\n\nfunction consumeStructuredWork(state: StructuredWorkState): boolean {\n if (state.remaining <= 0) {\n state.exceeded = true;\n state.failurePlaceholder ??= '[Traversal limit exceeded]';\n return false;\n }\n state.remaining--;\n return true;\n}\n\nfunction consumeStructuredCharacterWork(state: StructuredWorkState): boolean {\n if (state.characterRemaining <= 0) {\n state.exceeded = true;\n state.failurePlaceholder ??= CHARACTER_WORK_PLACEHOLDER;\n return false;\n }\n state.characterRemaining--;\n return true;\n}\n\nfunction hasExceededStructuredWork(state: StructuredWorkState): boolean {\n return state.exceeded;\n}\n\nfunction conservativeStructuredLength(limit: number): number {\n return limit >= Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : limit + 1;\n}\n\nfunction jsonStringLength(\n value: string,\n limit: number,\n work: StructuredWorkState\n): number {\n let length = 2;\n for (let i = 0; i < value.length; i++) {\n if (!consumeStructuredCharacterWork(work)) {\n return conservativeStructuredLength(limit);\n }\n const code = value.charCodeAt(i);\n if (\n code === 0x08 ||\n code === 0x09 ||\n code === 0x0a ||\n code === 0x0c ||\n code === 0x0d ||\n code === 0x22 ||\n code === 0x5c\n ) {\n length += 2;\n } else if (code < 0x20) {\n length += 6;\n } else if (code >= 0xd800 && code <= 0xdbff) {\n if (!consumeStructuredCharacterWork(work)) {\n return conservativeStructuredLength(limit);\n }\n const next = value.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n length += 2;\n i++;\n } else {\n length += 6;\n }\n } else if (code >= 0xdc00 && code <= 0xdfff) {\n length += 6;\n } else {\n length++;\n }\n if (length > limit) {\n return conservativeStructuredLength(limit);\n }\n }\n return length;\n}\n\ntype NativeDateRead = { matched: true; time: number } | { matched: false };\n\nfunction readNativeArrayBufferByteLength(value: unknown): number | undefined {\n if (\n value == null ||\n typeof value !== 'object' ||\n NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER == null\n ) {\n return undefined;\n }\n try {\n return NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER.call(value) as number;\n } catch {\n return undefined;\n }\n}\n\nfunction readNativeDate(value: unknown): NativeDateRead {\n if (value == null || typeof value !== 'object') {\n return { matched: false };\n }\n try {\n return { matched: true, time: NATIVE_DATE_GET_TIME.call(value) };\n } catch {\n return { matched: false };\n }\n}\n\nfunction readNativeBoxedString(value: object): string | undefined {\n try {\n return String.prototype.valueOf.call(value);\n } catch {\n return undefined;\n }\n}\n\nfunction readNativeBoxedNumber(value: object): number | undefined {\n try {\n return Number.prototype.valueOf.call(value);\n } catch {\n return undefined;\n }\n}\n\nfunction readNativeBoxedBoolean(value: object): boolean | undefined {\n try {\n return Boolean.prototype.valueOf.call(value);\n } catch {\n return undefined;\n }\n}\n\nfunction estimateStructuredChars(\n value: unknown,\n limit = Number.MAX_SAFE_INTEGER,\n ancestors: object[] = [],\n work = createStructuredWorkState(),\n depth = 0\n): number {\n if (hasExceededStructuredWork(work)) {\n return conservativeStructuredLength(limit);\n }\n if (typeof value === 'string') {\n return jsonStringLength(value, limit, work);\n }\n if (typeof value === 'bigint') {\n return jsonStringLength(value.toString(), limit, work);\n }\n if (typeof value === 'number') {\n return Number.isFinite(value) ? String(value === 0 ? 0 : value).length : 4;\n }\n if (typeof value === 'boolean' || value == null) {\n return String(value).length;\n }\n if (isProxy(value)) {\n work.exceeded = true;\n work.failurePlaceholder = PROXY_VALUE_PLACEHOLDER;\n return conservativeStructuredLength(limit);\n }\n if (typeof value === 'undefined' || typeof value === 'function') {\n return 4;\n }\n if (typeof value !== 'object') {\n return jsonStringLength(String(value), limit, work);\n }\n\n const valueIsArray = isArray(value);\n if (!valueIsArray) {\n const arrayBufferByteLength = readNativeArrayBufferByteLength(value);\n if (arrayBufferByteLength != null) {\n if (!isSafeNativeArrayBuffer(value as ArrayBuffer)) {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n return Math.min(\n limit + 1,\n Math.ceil((arrayBufferByteLength * 4) / 3) + 32\n );\n }\n if (ArrayBuffer.isView(value)) {\n const view = readSafeNativeArrayBufferView(\n value,\n undefined,\n undefined,\n false\n );\n if (view == null) {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n return Math.min(limit + 1, Math.ceil((view.byteLength * 4) / 3) + 32);\n }\n const date = readNativeDate(value);\n if (date.matched) {\n if (!isSafeNativeDate(value as Date)) {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n return Number.isFinite(date.time)\n ? jsonStringLength(Date.prototype.toISOString.call(value), limit, work)\n : 4;\n }\n const boxedString = readNativeBoxedString(value);\n if (boxedString != null) {\n return jsonStringLength(boxedString, limit, work);\n }\n const boxedNumber = readNativeBoxedNumber(value);\n if (boxedNumber != null) {\n return Number.isFinite(boxedNumber)\n ? String(boxedNumber === 0 ? 0 : boxedNumber).length\n : 4;\n }\n const boxedBoolean = readNativeBoxedBoolean(value);\n if (boxedBoolean != null) {\n return String(boxedBoolean).length;\n }\n let prototype: object | null;\n try {\n prototype = Object.getPrototypeOf(value) as object | null;\n } catch {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n if (\n isProxy(prototype) ||\n (prototype !== Object.prototype && prototype !== null)\n ) {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n } else {\n let prototype: object | null;\n try {\n prototype = Object.getPrototypeOf(value) as object | null;\n } catch {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n if (\n isProxy(prototype) ||\n (prototype !== Array.prototype && prototype !== null)\n ) {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n }\n }\n if (depth >= MAX_STRUCTURED_SERIALIZATION_DEPTH) {\n return jsonStringLength('[Max serialization depth]', limit, work);\n }\n if (ancestors.includes(value)) {\n return 12;\n }\n\n ancestors.push(value);\n let length = 2;\n try {\n if (valueIsArray) {\n const arrayLength = readStructuredArrayLength(value, work);\n if (arrayLength == null) {\n return conservativeStructuredLength(limit);\n }\n for (let i = 0; i < arrayLength && length <= limit; i++) {\n if (!consumeStructuredWork(work)) {\n return conservativeStructuredLength(limit);\n }\n if (i > 0) {\n length++;\n }\n length += estimateStructuredChars(\n readStructuredProperty(value, i, work),\n Math.max(0, limit - length),\n ancestors,\n work,\n depth + 1\n );\n }\n } else {\n let emitted = 0;\n for (const key in value) {\n if (!consumeStructuredWork(work)) {\n return conservativeStructuredLength(limit);\n }\n if (!Object.prototype.propertyIsEnumerable.call(value, key)) {\n continue;\n }\n if (length > limit) {\n break;\n }\n const nested = readStructuredProperty(\n value as Record<string, unknown>,\n key,\n work\n );\n if (\n typeof nested === 'undefined' ||\n typeof nested === 'function' ||\n typeof nested === 'symbol'\n ) {\n continue;\n }\n if (emitted > 0) {\n length++;\n }\n length += jsonStringLength(key, Math.max(0, limit - length), work) + 1;\n length += estimateStructuredChars(\n nested,\n Math.max(0, limit - length),\n ancestors,\n work,\n depth + 1\n );\n emitted++;\n }\n }\n } catch {\n work.exceeded = true;\n return conservativeStructuredLength(limit);\n } finally {\n ancestors.pop();\n }\n if (hasExceededStructuredWork(work)) {\n return conservativeStructuredLength(limit);\n }\n return Math.min(limit + 1, length);\n}\n\ntype StructuredSerializationCollector = {\n totalChars: number;\n prefix: SegmentedStringBuffer;\n suffix: SegmentedStringBuffer;\n prefixLimit: number;\n suffixLimit: number;\n work: StructuredWorkState;\n};\n\ntype SegmentedStringBuffer = {\n segments: string[];\n head: number;\n pending: string[];\n pendingChars: number;\n length: number;\n};\n\nexport type BoundedStructuredSerialization = {\n /** Provider-facing head/tail preview, bounded by `maxChars`. */\n content: string;\n /** Exact serialized prefix up to the defensive traversal-work ceiling. */\n prefix: string;\n /** Exact length, or `Number.MAX_SAFE_INTEGER` when traversal was capped. */\n originalChars: number;\n truncated: boolean;\n};\n\nfunction normalizeCharLimit(limit: number): number {\n return Number.isFinite(limit)\n ? Math.max(0, Math.floor(limit))\n : Number.MAX_SAFE_INTEGER;\n}\n\nfunction createSegmentedStringBuffer(): SegmentedStringBuffer {\n return {\n segments: [],\n head: 0,\n pending: [],\n pendingChars: 0,\n length: 0,\n };\n}\n\nfunction flushSegmentedStringBuffer(buffer: SegmentedStringBuffer): void {\n if (buffer.pendingChars === 0) {\n return;\n }\n buffer.segments.push(buffer.pending.join(''));\n buffer.pending = [];\n buffer.pendingChars = 0;\n}\n\nfunction appendToSegmentedStringBuffer(\n buffer: SegmentedStringBuffer,\n chunk: string\n): void {\n if (chunk.length === 0) {\n return;\n }\n buffer.pending.push(chunk);\n buffer.pendingChars += chunk.length;\n buffer.length += chunk.length;\n if (buffer.pendingChars >= SERIALIZATION_CHUNK_SIZE) {\n flushSegmentedStringBuffer(buffer);\n }\n}\n\nfunction trimSegmentedStringBufferStart(\n buffer: SegmentedStringBuffer,\n chars: number\n): void {\n let remaining = Math.min(chars, buffer.length);\n if (remaining <= 0) {\n return;\n }\n flushSegmentedStringBuffer(buffer);\n while (remaining > 0 && buffer.head < buffer.segments.length) {\n const segment = buffer.segments[buffer.head];\n if (segment.length <= remaining) {\n remaining -= segment.length;\n buffer.length -= segment.length;\n buffer.head++;\n } else {\n buffer.segments[buffer.head] = segment.slice(remaining);\n buffer.length -= remaining;\n remaining = 0;\n }\n }\n if (buffer.head >= 1_024 && buffer.head * 2 >= buffer.segments.length) {\n buffer.segments = buffer.segments.slice(buffer.head);\n buffer.head = 0;\n }\n}\n\nfunction materializeSegmentedStringBuffer(\n buffer: SegmentedStringBuffer\n): string {\n const segments = buffer.segments.slice(buffer.head);\n if (buffer.pendingChars > 0) {\n segments.push(buffer.pending.join(''));\n }\n return segments.join('');\n}\n\nfunction appendSerializedChunk(\n collector: StructuredSerializationCollector,\n chunk: string\n): void {\n if (chunk.length === 0) {\n return;\n }\n\n collector.totalChars += chunk.length;\n\n const prefixRemaining = collector.prefixLimit - collector.prefix.length;\n if (prefixRemaining > 0) {\n appendToSegmentedStringBuffer(\n collector.prefix,\n chunk.slice(0, prefixRemaining)\n );\n }\n\n if (collector.suffixLimit <= 0) {\n return;\n }\n appendToSegmentedStringBuffer(collector.suffix, chunk);\n if (\n collector.suffix.length >=\n collector.suffixLimit + SERIALIZATION_CHUNK_SIZE\n ) {\n trimSegmentedStringBufferStart(\n collector.suffix,\n collector.suffix.length - collector.suffixLimit\n );\n }\n}\n\nfunction appendJsonSafeRange(\n collector: StructuredSerializationCollector,\n value: string,\n start: number,\n end: number\n): void {\n let offset = start;\n while (offset < end) {\n let chunkEnd = Math.min(end, offset + SERIALIZATION_CHUNK_SIZE);\n if (\n chunkEnd < end &&\n chunkEnd > offset &&\n value.charCodeAt(chunkEnd - 1) >= 0xd800 &&\n value.charCodeAt(chunkEnd - 1) <= 0xdbff &&\n value.charCodeAt(chunkEnd) >= 0xdc00 &&\n value.charCodeAt(chunkEnd) <= 0xdfff\n ) {\n chunkEnd--;\n }\n appendSerializedChunk(collector, value.slice(offset, chunkEnd));\n offset = chunkEnd;\n }\n}\n\n/**\n * Emits one JSON string incrementally. Calling JSON.stringify on the complete\n * string would allocate an escaped copy before the output cap could apply.\n */\nfunction appendJsonString(\n collector: StructuredSerializationCollector,\n value: string\n): void {\n if (collector.work.exceeded) {\n appendSerializedChunk(\n collector,\n `\"${collector.work.failurePlaceholder ?? CHARACTER_WORK_PLACEHOLDER}\"`\n );\n return;\n }\n appendSerializedChunk(collector, '\"');\n let safeStart = 0;\n\n for (let i = 0; i < value.length; i++) {\n if (!consumeStructuredCharacterWork(collector.work)) {\n appendJsonSafeRange(collector, value, safeStart, i);\n appendSerializedChunk(collector, `${CHARACTER_WORK_PLACEHOLDER}\"`);\n return;\n }\n const code = value.charCodeAt(i);\n let escaped: string | undefined;\n switch (code) {\n case 0x08:\n escaped = '\\\\b';\n break;\n case 0x09:\n escaped = '\\\\t';\n break;\n case 0x0a:\n escaped = '\\\\n';\n break;\n case 0x0c:\n escaped = '\\\\f';\n break;\n case 0x0d:\n escaped = '\\\\r';\n break;\n case 0x22:\n escaped = '\\\\\"';\n break;\n case 0x5c:\n escaped = '\\\\\\\\';\n break;\n default:\n if (code < 0x20) {\n escaped = `\\\\u${code.toString(16).padStart(4, '0')}`;\n } else if (code >= 0xd800 && code <= 0xdbff) {\n if (!consumeStructuredCharacterWork(collector.work)) {\n appendJsonSafeRange(collector, value, safeStart, i);\n appendSerializedChunk(collector, `${CHARACTER_WORK_PLACEHOLDER}\"`);\n return;\n }\n const next = value.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n i++;\n } else {\n escaped = `\\\\u${code.toString(16).padStart(4, '0')}`;\n }\n } else if (code >= 0xdc00 && code <= 0xdfff) {\n escaped = `\\\\u${code.toString(16).padStart(4, '0')}`;\n }\n }\n\n if (escaped != null) {\n appendJsonSafeRange(collector, value, safeStart, i);\n appendSerializedChunk(collector, escaped);\n safeStart = i + 1;\n }\n }\n appendJsonSafeRange(collector, value, safeStart, value.length);\n appendSerializedChunk(collector, '\"');\n}\n\nfunction readStructuredProperty(\n value: Record<string, unknown> | unknown[],\n key: string | number,\n work: StructuredWorkState\n): unknown {\n const normalizedKey = String(key);\n // Callers still consume traversal work for every occurrence. This bounded\n // cache only avoids re-reading the same descriptor through shared references.\n const cachedProperties = work.propertyCache.get(value);\n if (cachedProperties != null && cachedProperties.has(normalizedKey)) {\n return cachedProperties.get(normalizedKey);\n }\n\n try {\n const descriptor = Object.getOwnPropertyDescriptor(value, normalizedKey);\n let propertyValue: unknown;\n if (descriptor == null) {\n propertyValue = undefined;\n } else if ('value' in descriptor) {\n propertyValue = descriptor.value;\n } else {\n propertyValue = '[Property accessor omitted]';\n }\n if (work.propertyCacheEntries < MAX_STRUCTURED_PROPERTY_CACHE_ENTRIES) {\n const properties = cachedProperties ?? new Map<string, unknown>();\n if (cachedProperties == null) {\n work.propertyCache.set(value, properties);\n }\n properties.set(normalizedKey, propertyValue);\n work.propertyCacheEntries++;\n }\n return propertyValue;\n } catch {\n work.exceeded = true;\n work.remaining = 0;\n return '[Unreadable property omitted]';\n }\n}\n\nfunction readStructuredArrayLength(\n value: unknown[],\n work: StructuredWorkState\n): number | undefined {\n const length = readStructuredProperty(value, 'length', work);\n if (\n typeof length === 'number' &&\n Number.isSafeInteger(length) &&\n length >= 0\n ) {\n return length;\n }\n work.exceeded = true;\n work.remaining = 0;\n return undefined;\n}\n\n/**\n * Provider-neutral JSON writer which deliberately does not invoke `toJSON` or\n * property accessors. Native `JSON.stringify` can invoke both before a replacer\n * can bound their output.\n */\nfunction appendStructuredValue(\n collector: StructuredSerializationCollector,\n value: unknown,\n ancestors: Set<object>,\n depth: number,\n position: 'top' | 'array' | 'object'\n): boolean {\n if (collector.work.exceeded) {\n appendSerializedChunk(\n collector,\n `\"${collector.work.failurePlaceholder ?? CHARACTER_WORK_PLACEHOLDER}\"`\n );\n return true;\n }\n if (typeof value === 'string') {\n appendJsonString(collector, value);\n return true;\n }\n if (typeof value === 'bigint') {\n appendJsonString(collector, value.toString());\n return true;\n }\n if (typeof value === 'number') {\n appendSerializedChunk(\n collector,\n Number.isFinite(value) ? String(value === 0 ? 0 : value) : 'null'\n );\n return true;\n }\n if (typeof value === 'boolean' || value === null) {\n appendSerializedChunk(collector, String(value));\n return true;\n }\n if (isProxy(value)) {\n appendSerializedChunk(collector, `\"${PROXY_VALUE_PLACEHOLDER}\"`);\n collector.work.exceeded = true;\n collector.work.failurePlaceholder = PROXY_VALUE_PLACEHOLDER;\n return true;\n }\n if (\n typeof value === 'undefined' ||\n typeof value === 'function' ||\n typeof value === 'symbol'\n ) {\n if (position === 'object') {\n return false;\n }\n if (position === 'array') {\n appendSerializedChunk(collector, 'null');\n } else if (typeof value === 'undefined') {\n appendSerializedChunk(collector, 'undefined');\n } else {\n appendJsonString(\n collector,\n typeof value === 'function' ? '[Function]' : String(value)\n );\n }\n return true;\n }\n const valueIsArray = isArray(value);\n if (!valueIsArray) {\n const arrayBufferByteLength = readNativeArrayBufferByteLength(value);\n if (arrayBufferByteLength != null) {\n if (!isSafeNativeArrayBuffer(value as ArrayBuffer)) {\n appendSerializedChunk(collector, '\"[Unsafe ArrayBuffer omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n appendJsonString(\n collector,\n `[ArrayBuffer: ${arrayBufferByteLength} bytes]`\n );\n return true;\n }\n if (ArrayBuffer.isView(value)) {\n const view = readSafeNativeArrayBufferView(\n value,\n undefined,\n undefined,\n false\n );\n if (view == null) {\n appendSerializedChunk(collector, '\"[Unsafe ArrayBufferView omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n appendJsonString(collector, `[${view.name}: ${view.byteLength} bytes]`);\n return true;\n }\n const date = readNativeDate(value);\n if (date.matched) {\n if (!isSafeNativeDate(value as Date)) {\n appendSerializedChunk(collector, '\"[Unsafe Date omitted]\"');\n collector.work.exceeded = true;\n } else if (!Number.isFinite(date.time)) {\n appendSerializedChunk(collector, 'null');\n } else {\n appendJsonString(collector, Date.prototype.toISOString.call(value));\n }\n return true;\n }\n const boxedString = readNativeBoxedString(value);\n if (boxedString != null) {\n appendJsonString(collector, boxedString);\n return true;\n }\n const boxedNumber = readNativeBoxedNumber(value);\n if (boxedNumber != null) {\n appendSerializedChunk(\n collector,\n Number.isFinite(boxedNumber)\n ? String(boxedNumber === 0 ? 0 : boxedNumber)\n : 'null'\n );\n return true;\n }\n const boxedBoolean = readNativeBoxedBoolean(value);\n if (boxedBoolean != null) {\n appendSerializedChunk(collector, String(boxedBoolean));\n return true;\n }\n let prototype: object | null;\n try {\n prototype = Object.getPrototypeOf(value) as object | null;\n } catch {\n appendSerializedChunk(collector, '\"[Unreadable object omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n if (\n isProxy(prototype) ||\n (prototype !== Object.prototype && prototype !== null)\n ) {\n appendSerializedChunk(collector, '\"[Unsupported object omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n } else {\n let prototype: object | null;\n try {\n prototype = Object.getPrototypeOf(value) as object | null;\n } catch {\n appendSerializedChunk(collector, '\"[Unreadable array omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n if (\n isProxy(prototype) ||\n (prototype !== Array.prototype && prototype !== null)\n ) {\n appendSerializedChunk(collector, '\"[Unsafe array omitted]\"');\n collector.work.exceeded = true;\n return true;\n }\n }\n if (depth >= MAX_STRUCTURED_SERIALIZATION_DEPTH) {\n appendJsonString(collector, '[Max serialization depth]');\n return true;\n }\n if (ancestors.has(value)) {\n appendJsonString(collector, '[Circular]');\n return true;\n }\n\n ancestors.add(value);\n try {\n if (valueIsArray) {\n const arrayLength = readStructuredArrayLength(value, collector.work);\n if (arrayLength == null) {\n appendJsonString(collector, '[Unreadable array omitted]');\n return true;\n }\n appendSerializedChunk(collector, '[');\n for (let i = 0; i < arrayLength; i++) {\n if (!consumeStructuredWork(collector.work)) {\n if (i > 0) {\n appendSerializedChunk(collector, ',');\n }\n appendJsonString(\n collector,\n `[Traversal limit exceeded: ${arrayLength - i} array entries omitted]`\n );\n break;\n }\n if (i > 0) {\n appendSerializedChunk(collector, ',');\n }\n appendStructuredValue(\n collector,\n readStructuredProperty(value, i, collector.work),\n ancestors,\n depth + 1,\n 'array'\n );\n }\n appendSerializedChunk(collector, ']');\n return true;\n }\n\n appendSerializedChunk(collector, '{');\n let emitted = 0;\n // `Object.keys()` allocates an array proportional to the complete object\n // before either output limit applies. Filter a streaming `for…in` walk to\n // retain JSON's own-enumerable-key semantics without that extra array.\n for (const key in value) {\n if (!consumeStructuredWork(collector.work)) {\n if (emitted > 0) {\n appendSerializedChunk(collector, ',');\n }\n appendSerializedChunk(\n collector,\n '\"_truncated\":\"[Traversal limit exceeded]\"'\n );\n break;\n }\n if (!Object.prototype.propertyIsEnumerable.call(value, key)) {\n continue;\n }\n const nested = readStructuredProperty(\n value as Record<string, unknown>,\n key,\n collector.work\n );\n if (\n typeof nested === 'undefined' ||\n typeof nested === 'function' ||\n typeof nested === 'symbol'\n ) {\n continue;\n }\n if (emitted > 0) {\n appendSerializedChunk(collector, ',');\n }\n appendJsonString(collector, key);\n appendSerializedChunk(collector, ':');\n appendStructuredValue(collector, nested, ancestors, depth + 1, 'object');\n emitted++;\n }\n appendSerializedChunk(collector, '}');\n return true;\n } finally {\n ancestors.delete(value);\n }\n}\n\nfunction formatBoundedStructuredContent(\n collector: StructuredSerializationCollector,\n maxChars: number,\n prefix: string,\n suffix: string\n): string {\n if (collector.totalChars <= maxChars) {\n return prefix.slice(0, collector.totalChars);\n }\n\n const indicator = collector.work.exceeded\n ? '\\n\\n… [truncated: safe traversal limit exceeded] …\\n\\n'\n : `\\n\\n… [truncated: ${collector.totalChars} chars exceeded ` +\n `${maxChars} limit] …\\n\\n`;\n const available = maxChars - indicator.length;\n if (available <= 0) {\n return prefix.slice(0, maxChars);\n }\n if (available < 200) {\n return prefix.slice(0, available) + indicator.trimEnd();\n }\n\n const headSize = Math.ceil(available * 0.7);\n const tailSize = available - headSize;\n let headEnd = headSize;\n const headNewline = prefix.lastIndexOf('\\n', headSize);\n if (headNewline > headSize - 200 && headNewline > 0) {\n headEnd = headNewline;\n }\n\n let tailStart = Math.max(0, suffix.length - tailSize);\n const tailNewline = suffix.indexOf('\\n', tailStart);\n if (tailNewline > 0 && tailNewline < tailStart + 200) {\n tailStart = tailNewline + 1;\n }\n\n return prefix.slice(0, headEnd) + indicator + suffix.slice(tailStart);\n}\n\n/**\n * Serializes structured output while retaining at most the requested provider\n * preview and registry prefix. The traversal never calls `toJSON` and never\n * materializes the complete serialized string when it exceeds those limits.\n *\n * `prefixChars` is useful for the tool-output registry: it receives the exact\n * serialized prefix up to `registry.perOutputLimit`, while `content` retains\n * the provider-facing head/tail truncation behavior at `maxChars`. Property\n * accessors are represented by a fixed placeholder instead of being invoked.\n */\nexport function serializeStructuredValueBounded(\n value: unknown,\n maxChars: number,\n prefixChars = 0,\n work = createStructuredWorkState()\n): BoundedStructuredSerialization {\n const normalizedMaxChars = normalizeCharLimit(maxChars);\n const normalizedPrefixChars = normalizeCharLimit(prefixChars);\n const prefixLimit = Math.max(normalizedMaxChars, normalizedPrefixChars);\n const collector: StructuredSerializationCollector = {\n totalChars: 0,\n prefix: createSegmentedStringBuffer(),\n suffix: createSegmentedStringBuffer(),\n prefixLimit,\n suffixLimit:\n normalizedMaxChars === Number.MAX_SAFE_INTEGER ? 0 : normalizedMaxChars,\n work,\n };\n\n try {\n appendStructuredValue(collector, value, new Set<object>(), 0, 'top');\n } catch {\n collector.totalChars = 0;\n collector.prefix = createSegmentedStringBuffer();\n collector.suffix = createSegmentedStringBuffer();\n collector.work.exceeded = true;\n appendSerializedChunk(collector, '\"[Unserializable structured value]\"');\n }\n\n const prefix = materializeSegmentedStringBuffer(collector.prefix);\n const suffix = materializeSegmentedStringBuffer(collector.suffix);\n const originalChars = collector.work.exceeded\n ? Number.MAX_SAFE_INTEGER\n : collector.totalChars;\n return {\n content: formatBoundedStructuredContent(\n collector,\n normalizedMaxChars,\n prefix,\n suffix\n ),\n prefix: prefix.slice(0, normalizedPrefixChars),\n originalChars,\n truncated:\n collector.work.exceeded || collector.totalChars > normalizedMaxChars,\n };\n}\n\nfunction serializeStructuredValueWithinLimit(\n value: unknown,\n maxChars: number,\n work = createStructuredWorkState()\n): string {\n return serializeStructuredValueBounded(value, maxChars, 0, work).content;\n}\n\nfunction isTextBlockUnchecked(value: unknown): value is TextToolContentBlock {\n if (!isRecord(value) || isProxy(value)) {\n return false;\n }\n try {\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n return false;\n }\n const keys = Object.keys(value);\n if (keys.length !== 2 || !keys.includes('type') || !keys.includes('text')) {\n return false;\n }\n const type = readOwnEnumerableDataProperty(value, 'type');\n const text = readOwnEnumerableDataProperty(value, 'text');\n return (\n type.found &&\n type.value === 'text' &&\n text.found &&\n typeof text.value === 'string'\n );\n } catch {\n return false;\n }\n}\n\nfunction isArray(value: unknown): value is unknown[] {\n try {\n return Array.isArray(value);\n } catch {\n return false;\n }\n}\n\nfunction getDenseTextBlockArrayLength(content: unknown[]): number | undefined {\n if (isProxy(content)) {\n return undefined;\n }\n const validation = createToolBlockClassificationContext();\n const containerWork = { value: MAX_ATOMIC_VALIDATION_WORK };\n let contentLength: number;\n try {\n const prototype = Object.getPrototypeOf(content);\n if (\n (prototype !== Array.prototype && prototype !== null) ||\n hasPotentiallyCallableToJSON(\n content,\n containerWork,\n validation.totalRemaining\n )\n ) {\n return undefined;\n }\n contentLength = content.length;\n } catch {\n return undefined;\n }\n if (\n contentLength === 0 ||\n contentLength > MAX_STRUCTURED_SERIALIZATION_WORK\n ) {\n return undefined;\n }\n\n let length = contentLength - 1;\n try {\n for (let i = 0; i < contentLength; i++) {\n const descriptor = Object.getOwnPropertyDescriptor(content, String(i));\n if (descriptor == null || !('value' in descriptor)) {\n return undefined;\n }\n const block = descriptor.value;\n if (\n classifyToolContentBlock(block, validation) !== TOOL_BLOCK_TEXT ||\n validation.totalRemaining.value <= 0\n ) {\n return undefined;\n }\n const text = readOwnEnumerableDataProperty(block, 'text');\n length += typeof text.value === 'string' ? text.value.length : 0;\n if (length >= Number.MAX_SAFE_INTEGER) {\n return Number.MAX_SAFE_INTEGER;\n }\n }\n } catch {\n return undefined;\n }\n return length;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value != null;\n}\n\ntype OwnDataProperty =\n | { found: true; value: unknown }\n | { found: false; value?: never };\n\nfunction readOwnEnumerableDataProperty(\n record: Record<string, unknown>,\n key: string\n): OwnDataProperty {\n try {\n const descriptor = Object.getOwnPropertyDescriptor(record, key);\n if (\n descriptor == null ||\n descriptor.enumerable !== true ||\n !('value' in descriptor)\n ) {\n return { found: false };\n }\n return { found: true, value: descriptor.value };\n } catch {\n return { found: false };\n }\n}\n\nfunction hasString(record: Record<string, unknown>, key: string): boolean {\n const property = readOwnEnumerableDataProperty(record, key);\n return (\n property.found &&\n typeof property.value === 'string' &&\n property.value !== ''\n );\n}\n\nfunction hasValue(record: Record<string, unknown>, key: string): boolean {\n const property = readOwnEnumerableDataProperty(record, key);\n return property.found && property.value !== undefined;\n}\n\nfunction isStringPayload(value: unknown): boolean {\n return typeof value === 'string' && value.length > 0;\n}\n\nfunction isBinaryPayload(value: unknown): boolean {\n if (typeof value === 'string') {\n return value.length > 0;\n }\n if (isArray(value)) {\n return false;\n }\n const arrayBufferByteLength = readNativeArrayBufferByteLength(value);\n if (arrayBufferByteLength != null) {\n return (\n isSafeNativeArrayBuffer(value as ArrayBuffer) && arrayBufferByteLength > 0\n );\n }\n if (ArrayBuffer.isView(value)) {\n const view = readSafeNativeArrayBufferView(value);\n return view != null && view.byteLength > 0;\n }\n return false;\n}\n\nfunction isContentPayload(value: unknown): boolean {\n return isArray(value) && value.length > 0;\n}\n\nfunction hasPayloadPath(\n record: Record<string, unknown>,\n path: string[],\n validator: (value: unknown) => boolean = isBinaryPayload\n): boolean {\n let value: unknown = record;\n for (const key of path) {\n if (!isRecord(value)) {\n return false;\n }\n const property = readOwnEnumerableDataProperty(value, key);\n if (!property.found) {\n return false;\n }\n value = property.value;\n }\n return validator(value);\n}\n\nfunction hasAnyPayloadPath(\n record: Record<string, unknown>,\n paths: string[][],\n validator: (value: unknown) => boolean = isBinaryPayload\n): boolean {\n return paths.some((path) => hasPayloadPath(record, path, validator));\n}\n\nfunction isProviderNativeToolResultBlock(\n record: Record<string, unknown>,\n type: string\n): boolean {\n if (type === 'search_result') {\n return (\n hasString(record, 'title') &&\n hasString(record, 'source') &&\n hasPayloadPath(record, ['content'], isArray)\n );\n }\n if (type === 'web_search_result') {\n return hasString(record, 'url');\n }\n if (type === 'web_search_tool_result') {\n const content = readOwnEnumerableDataProperty(record, 'content');\n return (\n hasString(record, 'tool_use_id') &&\n content.found &&\n (isArray(content.value) || isRecord(content.value))\n );\n }\n if (type === 'tool_result') {\n return hasString(record, 'tool_use_id');\n }\n if (type === 'server_tool_call_result') {\n const status = readOwnEnumerableDataProperty(record, 'status');\n return (\n hasString(record, 'toolCallId') &&\n status.found &&\n (status.value === 'success' || status.value === 'error') &&\n hasValue(record, 'output')\n );\n }\n if (type === 'toolResponse') {\n const response = readOwnEnumerableDataProperty(record, 'toolResponse');\n return response.found && isRecord(response.value);\n }\n return false;\n}\n\nconst MAX_ATOMIC_VALIDATION_WORK = 10_000;\nconst MAX_ATOMIC_VALIDATION_DEPTH = 50;\ntype AtomicValidationWork = { value: number };\nconst NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER = Object.getOwnPropertyDescriptor(\n ArrayBuffer.prototype,\n 'byteLength'\n)?.get;\nconst NATIVE_TYPED_ARRAY_PROTOTYPE = Object.getPrototypeOf(\n Uint8Array.prototype\n) as object;\nconst NATIVE_TYPED_ARRAY_BYTE_LENGTH_GETTER = Object.getOwnPropertyDescriptor(\n NATIVE_TYPED_ARRAY_PROTOTYPE,\n 'byteLength'\n)?.get;\nconst NATIVE_DATA_VIEW_BYTE_LENGTH_GETTER = Object.getOwnPropertyDescriptor(\n DataView.prototype,\n 'byteLength'\n)?.get;\nconst NATIVE_ARRAY_BUFFER_VIEW_NAMES = new Map<object, string>([\n [Buffer.prototype, 'Buffer'],\n [DataView.prototype, 'DataView'],\n [Int8Array.prototype, 'Int8Array'],\n [Uint8Array.prototype, 'Uint8Array'],\n [Uint8ClampedArray.prototype, 'Uint8ClampedArray'],\n [Int16Array.prototype, 'Int16Array'],\n [Uint16Array.prototype, 'Uint16Array'],\n [Int32Array.prototype, 'Int32Array'],\n [Uint32Array.prototype, 'Uint32Array'],\n [Float32Array.prototype, 'Float32Array'],\n [Float64Array.prototype, 'Float64Array'],\n [BigInt64Array.prototype, 'BigInt64Array'],\n [BigUint64Array.prototype, 'BigUint64Array'],\n]);\nconst NATIVE_DATE_GET_TIME = Date.prototype.getTime;\nconst NATIVE_DATE_TO_JSON = Date.prototype.toJSON;\nconst NATIVE_DATE_TO_ISO_STRING = Date.prototype.toISOString;\nconst NATIVE_DATE_VALUE_OF = Date.prototype.valueOf;\nconst NATIVE_DATE_TO_STRING = Date.prototype.toString;\nconst NATIVE_DATE_TO_PRIMITIVE = Date.prototype[Symbol.toPrimitive];\nconst NATIVE_DATE_PROTOTYPE_METHODS: ReadonlyArray<\n readonly [PropertyKey, unknown]\n> = [\n ['getTime', NATIVE_DATE_GET_TIME],\n ['toJSON', NATIVE_DATE_TO_JSON],\n ['toISOString', NATIVE_DATE_TO_ISO_STRING],\n ['valueOf', NATIVE_DATE_VALUE_OF],\n ['toString', NATIVE_DATE_TO_STRING],\n [Symbol.toPrimitive, NATIVE_DATE_TO_PRIMITIVE],\n];\n\nfunction consumeAtomicValidationWork(\n remaining: AtomicValidationWork,\n totalRemaining: AtomicValidationWork | undefined,\n amount = 1\n): boolean {\n if (\n amount > remaining.value ||\n (totalRemaining != null && amount > totalRemaining.value)\n ) {\n remaining.value = 0;\n if (totalRemaining != null) {\n totalRemaining.value = 0;\n }\n return false;\n }\n remaining.value -= amount;\n if (totalRemaining != null) {\n totalRemaining.value -= amount;\n }\n return true;\n}\n\nfunction hasPotentiallyCallableToJSON(\n value: object,\n remaining?: AtomicValidationWork,\n totalRemaining?: AtomicValidationWork\n): boolean {\n let current: object | null = value;\n const seen = new Set<object>();\n for (let depth = 0; current != null && depth < 100; depth++) {\n if (isProxy(current)) {\n return true;\n }\n if (\n remaining != null &&\n !consumeAtomicValidationWork(remaining, totalRemaining)\n ) {\n return true;\n }\n if (seen.has(current)) {\n return true;\n }\n seen.add(current);\n const descriptor = Object.getOwnPropertyDescriptor(current, 'toJSON');\n if (descriptor != null) {\n return (\n typeof descriptor.value === 'function' ||\n typeof descriptor.get === 'function'\n );\n }\n current = Object.getPrototypeOf(current) as object | null;\n }\n return current != null;\n}\n\ntype NativeArrayBufferViewRead = {\n byteLength: number;\n name: string;\n};\n\nfunction readSafeNativeArrayBufferView(\n value: ArrayBufferView,\n remaining?: AtomicValidationWork,\n totalRemaining?: AtomicValidationWork,\n rejectCallableToJSON = true\n): NativeArrayBufferViewRead | undefined {\n try {\n const prototype = Object.getPrototypeOf(value) as object | null;\n if (prototype == null || isProxy(prototype)) {\n return undefined;\n }\n const name = NATIVE_ARRAY_BUFFER_VIEW_NAMES.get(prototype);\n if (\n name == null ||\n Object.getOwnPropertyDescriptor(value, 'byteLength') != null ||\n Object.getOwnPropertyDescriptor(value, 'constructor') != null ||\n Object.getOwnPropertyDescriptor(value, 'toJSON') != null ||\n (rejectCallableToJSON &&\n hasPotentiallyCallableToJSON(value, remaining, totalRemaining))\n ) {\n return undefined;\n }\n const getter =\n prototype === DataView.prototype\n ? NATIVE_DATA_VIEW_BYTE_LENGTH_GETTER\n : NATIVE_TYPED_ARRAY_BYTE_LENGTH_GETTER;\n if (getter == null) {\n return undefined;\n }\n const byteLength = getter.call(value) as number;\n return Number.isSafeInteger(byteLength) && byteLength >= 0\n ? { byteLength, name }\n : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction isSafeNativeArrayBuffer(\n value: ArrayBuffer,\n remaining?: AtomicValidationWork,\n totalRemaining?: AtomicValidationWork\n): boolean {\n try {\n if (\n Object.getPrototypeOf(value) !== ArrayBuffer.prototype ||\n NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER == null ||\n Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength')\n ?.get !== NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER ||\n hasPotentiallyCallableToJSON(value, remaining, totalRemaining)\n ) {\n return false;\n }\n NATIVE_ARRAY_BUFFER_BYTE_LENGTH_GETTER.call(value);\n for (const key in value) {\n if (\n remaining != null &&\n !consumeAtomicValidationWork(remaining, totalRemaining)\n ) {\n return false;\n }\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n return false;\n }\n }\n return Object.getOwnPropertyDescriptor(value, 'byteLength') == null;\n } catch {\n return false;\n }\n}\n\nfunction isSafeNativeDate(value: Date): boolean {\n try {\n if (Object.getPrototypeOf(value) !== Date.prototype) {\n return false;\n }\n NATIVE_DATE_GET_TIME.call(value);\n for (const [key, nativeMethod] of NATIVE_DATE_PROTOTYPE_METHODS) {\n if (\n Object.getOwnPropertyDescriptor(value, key) != null ||\n Object.getOwnPropertyDescriptor(Date.prototype, key)?.value !==\n nativeMethod\n ) {\n return false;\n }\n }\n return true;\n } catch {\n return false;\n }\n}\n\nfunction hasUnsafeCallableToJSON(\n value: unknown,\n seen = new Set<object>(),\n remaining = { value: MAX_ATOMIC_VALIDATION_WORK },\n depth = 0,\n totalRemaining?: AtomicValidationWork\n): boolean {\n if (isProxy(value)) {\n return true;\n }\n if (!isRecord(value)) {\n return false;\n }\n if (\n seen.has(value) ||\n depth >= MAX_ATOMIC_VALIDATION_DEPTH ||\n !consumeAtomicValidationWork(remaining, totalRemaining)\n ) {\n return true;\n }\n const valueIsArray = isArray(value);\n if (!valueIsArray) {\n const arrayBufferByteLength = readNativeArrayBufferByteLength(value);\n if (arrayBufferByteLength != null) {\n return !isSafeNativeArrayBuffer(\n value as unknown as ArrayBuffer,\n remaining,\n totalRemaining\n );\n }\n const date = readNativeDate(value);\n if (date.matched) {\n return !isSafeNativeDate(value as unknown as Date);\n }\n if (ArrayBuffer.isView(value)) {\n return (\n readSafeNativeArrayBufferView(value, remaining, totalRemaining) == null\n );\n }\n }\n\n seen.add(value);\n try {\n if (hasPotentiallyCallableToJSON(value, remaining, totalRemaining)) {\n return true;\n }\n if (valueIsArray) {\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Array.prototype && prototype !== null) {\n return true;\n }\n const lengthDescriptor = Object.getOwnPropertyDescriptor(value, 'length');\n const length = lengthDescriptor?.value;\n if (\n typeof length !== 'number' ||\n !Number.isSafeInteger(length) ||\n length < 0 ||\n !consumeAtomicValidationWork(remaining, totalRemaining, length)\n ) {\n return true;\n }\n for (let i = 0; i < length; i++) {\n const descriptor = Object.getOwnPropertyDescriptor(value, String(i));\n if (\n descriptor == null ||\n typeof descriptor.get === 'function' ||\n typeof descriptor.set === 'function'\n ) {\n return true;\n }\n if (\n hasUnsafeCallableToJSON(\n descriptor.value,\n seen,\n remaining,\n depth + 1,\n totalRemaining\n )\n ) {\n return true;\n }\n }\n return false;\n }\n\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n return true;\n }\n for (const key in value) {\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor == null) {\n return true;\n }\n if (descriptor.enumerable !== true) {\n continue;\n }\n if (\n typeof descriptor.get === 'function' ||\n typeof descriptor.set === 'function' ||\n !consumeAtomicValidationWork(remaining, totalRemaining)\n ) {\n return true;\n }\n if (\n hasUnsafeCallableToJSON(\n descriptor.value,\n seen,\n remaining,\n depth + 1,\n totalRemaining\n )\n ) {\n return true;\n }\n }\n return false;\n } catch {\n return true;\n } finally {\n seen.delete(value);\n }\n}\n\nexport function isAtomicToolContentBlock(value: unknown): boolean {\n try {\n return (\n !hasUnsafeCallableToJSON(value) &&\n isAtomicToolContentBlockUnchecked(value)\n );\n } catch {\n return false;\n }\n}\n\nfunction isAtomicToolContentBlockUnchecked(value: unknown): boolean {\n if (!isRecord(value)) {\n return false;\n }\n const record = value;\n const typeProperty = readOwnEnumerableDataProperty(record, 'type');\n if (!typeProperty.found) {\n const cachePointProperty = readOwnEnumerableDataProperty(\n record,\n 'cachePoint'\n );\n if (!cachePointProperty.found || !isRecord(cachePointProperty.value)) {\n return false;\n }\n const cachePointType = readOwnEnumerableDataProperty(\n cachePointProperty.value,\n 'type'\n );\n return cachePointType.found && cachePointType.value === 'default';\n }\n const type = typeof typeProperty.value === 'string' ? typeProperty.value : '';\n if (type.length > MAX_TOOL_CONTENT_TYPE_CHARS) {\n return false;\n }\n const slashIndex = type.indexOf('/');\n const isMimeType =\n slashIndex > 0 &&\n slashIndex < type.length - 1 &&\n slashIndex === type.lastIndexOf('/');\n if (\n !ATOMIC_CONTENT_TYPES.has(type) &&\n !PROVIDER_NATIVE_TOOL_RESULT_TYPES.has(type) &&\n !isMimeType\n ) {\n return false;\n }\n\n if (PROVIDER_NATIVE_TOOL_RESULT_TYPES.has(type)) {\n return isProviderNativeToolResultBlock(record, type);\n }\n\n if (type === 'computer_screenshot') {\n return hasAnyPayloadPath(\n record,\n [['image_url'], ['file_id']],\n isStringPayload\n );\n }\n if (type === 'input_image') {\n return hasAnyPayloadPath(\n record,\n [['image_url'], ['file_id']],\n isStringPayload\n );\n }\n if (type === 'image_url') {\n return hasAnyPayloadPath(\n record,\n [['image_url'], ['image_url', 'url']],\n isStringPayload\n );\n }\n if (type === 'image_file') {\n return hasAnyPayloadPath(\n record,\n [\n ['image_file', 'file_id'],\n ['image_file', 'fileId'],\n ],\n isStringPayload\n );\n }\n if (type === 'input_audio') {\n return hasAnyPayloadPath(record, [\n ['input_audio', 'data'],\n ['input_audio', 'bytes'],\n ]);\n }\n if (type === 'resource_link') {\n return hasString(record, 'uri');\n }\n if (type === 'video_url') {\n return hasAnyPayloadPath(\n record,\n [['video_url'], ['video_url', 'url']],\n isStringPayload\n );\n }\n if (type === 'resource') {\n return (\n hasAnyPayloadPath(record, [\n ['resource', 'blob'],\n ['resource', 'bytes'],\n ['resource', 'data'],\n ['resource', 'text'],\n ]) || hasPayloadPath(record, ['resource', 'content'], isContentPayload)\n );\n }\n\n if (isMimeType) {\n return hasPayloadPath(record, ['data'], isStringPayload);\n }\n\n if (type === 'image' || type === 'audio' || type === 'video') {\n return hasAnyPayloadPath(record, [\n ['data'],\n ['bytes'],\n ['url'],\n ['source', 'data'],\n ['source', 'bytes'],\n ['source', 'url'],\n [type, 'data'],\n [type, 'bytes'],\n [type, 'url'],\n [type, 'source', 'data'],\n [type, 'source', 'bytes'],\n [type, 'source', 'url'],\n ]);\n }\n\n if (type === 'media') {\n const hasMimeType =\n hasString(record, 'mimeType') || hasString(record, 'mime_type');\n return (\n hasMimeType &&\n hasAnyPayloadPath(record, [\n ['data'],\n ['bytes'],\n ['fileUri'],\n ['media', 'data'],\n ['media', 'bytes'],\n ['media', 'fileUri'],\n ['media', 'source', 'bytes'],\n ])\n );\n }\n\n if (type === 'document' || type === 'file') {\n const nestedType = type;\n return (\n hasAnyPayloadPath(record, [\n ['data'],\n ['bytes'],\n ['url'],\n ['file_data'],\n ['file_id'],\n ['fileId'],\n ['fileUri'],\n ['source', 'data'],\n ['source', 'bytes'],\n ['source', 'url'],\n ['source', 'file_data'],\n ['source', 'file_id'],\n ['source', 'fileId'],\n ['source', 'fileUri'],\n [nestedType, 'data'],\n [nestedType, 'bytes'],\n [nestedType, 'url'],\n [nestedType, 'file_data'],\n [nestedType, 'file_id'],\n [nestedType, 'fileId'],\n [nestedType, 'fileUri'],\n [nestedType, 'source', 'data'],\n [nestedType, 'source', 'bytes'],\n [nestedType, 'source', 'url'],\n ]) ||\n hasPayloadPath(record, ['source', 'content'], isContentPayload) ||\n hasPayloadPath(\n record,\n [nestedType, 'source', 'content'],\n isContentPayload\n ) ||\n (readOwnEnumerableDataProperty(record, 'source_type').value === 'text' &&\n hasString(record, 'text')) ||\n (readOwnEnumerableDataProperty(record, 'source_type').value === 'id' &&\n hasString(record, 'id'))\n );\n }\n\n return false;\n}\n\nconst TOOL_BLOCK_OPAQUE = 0;\nconst TOOL_BLOCK_TEXT = 1;\nconst TOOL_BLOCK_ATOMIC = 2;\n\ntype ToolBlockClassificationContext = {\n totalRemaining: AtomicValidationWork;\n cache: WeakMap<object, number>;\n};\n\nfunction createToolBlockClassificationContext(): ToolBlockClassificationContext {\n return {\n totalRemaining: { value: MAX_STRUCTURED_SERIALIZATION_WORK },\n cache: new WeakMap<object, number>(),\n };\n}\n\nfunction classifyToolContentBlock(\n value: unknown,\n context: ToolBlockClassificationContext\n): number {\n if (isRecord(value)) {\n const cached = context.cache.get(value);\n if (cached != null) {\n return cached;\n }\n }\n const remaining = { value: MAX_ATOMIC_VALIDATION_WORK };\n let kind = TOOL_BLOCK_OPAQUE;\n try {\n if (\n hasUnsafeCallableToJSON(\n value,\n new Set<object>(),\n remaining,\n 0,\n context.totalRemaining\n )\n ) {\n kind = TOOL_BLOCK_OPAQUE;\n } else if (isAtomicToolContentBlockUnchecked(value)) {\n kind = TOOL_BLOCK_ATOMIC;\n } else {\n kind = isTextBlockUnchecked(value) ? TOOL_BLOCK_TEXT : TOOL_BLOCK_OPAQUE;\n }\n } catch {\n kind = TOOL_BLOCK_OPAQUE;\n }\n if (isRecord(value) && context.totalRemaining.value > 0) {\n context.cache.set(value, kind);\n }\n return kind;\n}\n\n/**\n * Produces the text representation providers use for structured tool results.\n * Text-only block arrays stay readable; opaque blocks use canonical JSON.\n */\nexport function serializeToolContent(content: unknown): string {\n if (typeof content === 'string') {\n return content;\n }\n if (!isArray(content)) {\n return serializeStructuredValue(content);\n }\n if (getDenseTextBlockArrayLength(content) != null) {\n return (content as TextToolContentBlock[])\n .map((block) => block.text)\n .join('\\n');\n }\n return serializeStructuredValue(content);\n}\n\nexport function getToolContentCharLength(content: unknown): number {\n if (typeof content === 'string') {\n return content.length;\n }\n if (isArray(content)) {\n const denseTextLength = getDenseTextBlockArrayLength(content);\n if (denseTextLength != null) {\n return denseTextLength;\n }\n }\n try {\n return estimateStructuredChars(content);\n } catch {\n return Number.MAX_SAFE_INTEGER;\n }\n}\n\n/**\n * Produces provider-facing tool-result text without ever exceeding `maxChars`.\n */\nexport function serializeToolContentBounded(\n content: unknown,\n maxChars: number\n): string {\n const normalizedMaxChars = normalizeCharLimit(maxChars);\n if (typeof content === 'string') {\n return truncateToolResultContent(content, normalizedMaxChars);\n }\n if (!isArray(content)) {\n return serializeStructuredValueWithinLimit(content, normalizedMaxChars);\n }\n\n const originalChars = getDenseTextBlockArrayLength(content);\n if (originalChars == null) {\n return serializeStructuredValueWithinLimit(content, normalizedMaxChars);\n }\n return serializeDenseTextBlocksWithinLimit(\n content as TextToolContentBlock[],\n originalChars,\n normalizedMaxChars\n );\n}\n\nfunction serializeDenseTextBlocksWithinLimit(\n textBlocks: readonly TextToolContentBlock[],\n originalChars: number,\n normalizedMaxChars: number\n): string {\n if (originalChars <= normalizedMaxChars) {\n return textBlocks.map((block) => block.text).join('\\n');\n }\n const indicator =\n `\\n\\n… [truncated: ${originalChars} chars exceeded ` +\n `${normalizedMaxChars} limit] …`;\n const available = Math.max(0, normalizedMaxChars - indicator.length);\n let preview = '';\n for (let i = 0; i < textBlocks.length && preview.length < available; i++) {\n if (i > 0) {\n preview += '\\n';\n }\n preview += textBlocks[i].text.slice(0, available - preview.length);\n }\n return (preview + indicator).slice(0, normalizedMaxChars);\n}\n\nexport type CompactToolContentResult = {\n content: ToolContent;\n changed: boolean;\n originalChars: number;\n};\n\nfunction isProviderImageUrl(value: unknown): value is string {\n if (typeof value !== 'string' || value === '') {\n return false;\n }\n const isDataImage = value.startsWith('data:image/');\n if (\n value.length >\n (isDataImage\n ? HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE\n : MAX_PROVIDER_IMAGE_URL_CHARS)\n ) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n if (code <= 0x20 || code === 0x7f) {\n return false;\n }\n }\n if (isDataImage) {\n const separator = value.indexOf(',');\n if (\n separator < 0 ||\n !value.slice(0, separator).toLowerCase().endsWith(';base64')\n ) {\n return false;\n }\n const payload = value.slice(separator + 1);\n return (\n payload.length > 0 &&\n payload.length % 4 === 0 &&\n /^[a-z0-9+/]+={0,2}$/i.test(payload)\n );\n }\n try {\n const url = new URL(value);\n return url.protocol === 'http:' || url.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\nfunction isProviderFileId(value: unknown): value is string {\n return (\n typeof value === 'string' &&\n value.length <= MAX_PROVIDER_FILE_ID_CHARS &&\n /^file[-_][a-z0-9_-]+$/i.test(value)\n );\n}\n\nfunction hasOnlyEnumerableKeys(\n record: Record<string, unknown>,\n allowed: ReadonlySet<string>\n): boolean {\n try {\n const keys = Object.keys(record);\n return keys.every((key) => allowed.has(key));\n } catch {\n return false;\n }\n}\n\nexport type CacheControlledTextToolContent = [\n {\n type: 'text';\n text: string;\n cache_control: { type: 'ephemeral'; ttl?: '1h' };\n },\n];\n\nconst SINGLE_TEXT_TOOL_CONTENT_KEYS = new Set(['type', 'text']);\nconst CACHE_CONTROLLED_TEXT_TOOL_CONTENT_KEYS = new Set([\n 'type',\n 'text',\n 'cache_control',\n]);\nconst CACHE_CONTROL_KEYS = new Set(['type', 'ttl']);\n\nfunction hasSafePlainPrototype(value: object): boolean {\n try {\n const prototype = Object.getPrototypeOf(value) as object | null;\n return (\n (prototype === Object.prototype || prototype === null) &&\n !hasPotentiallyCallableToJSON(value)\n );\n } catch {\n return false;\n }\n}\n\nfunction readSafeArrayItem(\n content: unknown,\n expectedLength: number,\n index: number\n): OwnDataProperty {\n if (!isArray(content) || isProxy(content)) {\n return { found: false };\n }\n try {\n const length = Object.getOwnPropertyDescriptor(content, 'length');\n if (length?.value !== expectedLength) {\n return { found: false };\n }\n const prototype = Object.getPrototypeOf(content) as object | null;\n if (\n (prototype !== Array.prototype && prototype !== null) ||\n hasPotentiallyCallableToJSON(content)\n ) {\n return { found: false };\n }\n const item = Object.getOwnPropertyDescriptor(content, String(index));\n if (item?.enumerable !== true || !('value' in item)) {\n return { found: false };\n }\n return { found: true, value: item.value };\n } catch {\n return { found: false };\n }\n}\n\n/** Reads one safe text block and returns its bounded text payload. */\nexport function getBoundedSingleTextToolContent(\n content: unknown,\n maxChars: number\n): string | undefined {\n const block = readSafeArrayItem(content, 1, 0);\n if (\n !block.found ||\n !isRecord(block.value) ||\n isProxy(block.value) ||\n !hasSafePlainPrototype(block.value) ||\n !hasOnlyEnumerableKeys(block.value, SINGLE_TEXT_TOOL_CONTENT_KEYS)\n ) {\n return undefined;\n }\n const type = readOwnEnumerableDataProperty(block.value, 'type');\n const text = readOwnEnumerableDataProperty(block.value, 'text');\n if (\n !type.found ||\n type.value !== 'text' ||\n !text.found ||\n typeof text.value !== 'string'\n ) {\n return undefined;\n }\n const normalizedMaxChars = Number.isFinite(maxChars)\n ? Math.max(0, Math.floor(maxChars))\n : Number.MAX_SAFE_INTEGER;\n return truncateToolResultContent(text.value, normalizedMaxChars);\n}\n\n/**\n * Canonicalizes the single cache-decorated text block produced by tail prompt\n * caching without invoking accessors or custom serialization hooks.\n */\nexport function getBoundedCacheControlledTextToolContent(\n content: unknown,\n maxChars: number\n): CacheControlledTextToolContent | undefined {\n const block = readSafeArrayItem(content, 1, 0);\n if (\n !block.found ||\n !isRecord(block.value) ||\n isProxy(block.value) ||\n !hasSafePlainPrototype(block.value) ||\n !hasOnlyEnumerableKeys(block.value, CACHE_CONTROLLED_TEXT_TOOL_CONTENT_KEYS)\n ) {\n return undefined;\n }\n const type = readOwnEnumerableDataProperty(block.value, 'type');\n const text = readOwnEnumerableDataProperty(block.value, 'text');\n const cacheControl = readOwnEnumerableDataProperty(\n block.value,\n 'cache_control'\n );\n if (\n !type.found ||\n type.value !== 'text' ||\n !text.found ||\n typeof text.value !== 'string' ||\n !cacheControl.found ||\n !isRecord(cacheControl.value) ||\n isProxy(cacheControl.value) ||\n !hasSafePlainPrototype(cacheControl.value) ||\n !hasOnlyEnumerableKeys(cacheControl.value, CACHE_CONTROL_KEYS)\n ) {\n return undefined;\n }\n\n const cacheType = readOwnEnumerableDataProperty(cacheControl.value, 'type');\n const ttl = readOwnEnumerableDataProperty(cacheControl.value, 'ttl');\n let hasOwnTtl: boolean;\n try {\n hasOwnTtl =\n Object.getOwnPropertyDescriptor(cacheControl.value, 'ttl') != null;\n } catch {\n return undefined;\n }\n if (\n !cacheType.found ||\n cacheType.value !== 'ephemeral' ||\n (hasOwnTtl && (!ttl.found || ttl.value !== '1h'))\n ) {\n return undefined;\n }\n\n const normalizedMaxChars = Number.isFinite(maxChars)\n ? Math.max(0, Math.floor(maxChars))\n : Number.MAX_SAFE_INTEGER;\n return [\n {\n type: 'text',\n text: truncateToolResultContent(text.value, normalizedMaxChars),\n cache_control: {\n type: 'ephemeral',\n ...(ttl.found ? { ttl: '1h' as const } : {}),\n },\n },\n ];\n}\n\nexport type ComputerCallOutputScreenshot =\n | { type: 'input_image'; image_url: string; detail?: InputImageDetail }\n | { type: 'input_image'; file_id: string; detail?: InputImageDetail }\n | { type: 'computer_screenshot'; image_url: string }\n | { type: 'computer_screenshot'; file_id: string };\n\ntype InputImageDetail = 'low' | 'high' | 'auto' | 'original';\n\nconst INPUT_IMAGE_KEYS = new Set(['type', 'image_url', 'file_id', 'detail']);\nconst COMPUTER_SCREENSHOT_KEYS = new Set(['type', 'image_url', 'file_id']);\nconst IMAGE_URL_KEYS = new Set(['type', 'image_url', 'detail']);\nconst NESTED_IMAGE_URL_KEYS = new Set(['url', 'detail']);\nconst INPUT_IMAGE_DETAILS = new Set(['low', 'high', 'auto', 'original']);\n\n/**\n * Selects the exact screenshot shape accepted by LangChain's Responses\n * converter without invoking accessors or user-defined serialization hooks.\n */\nexport function getComputerCallOutputScreenshot(\n content: unknown\n): ComputerCallOutputScreenshot | undefined {\n if (isProviderImageUrl(content)) {\n return { type: 'input_image', image_url: content };\n }\n if (\n !isArray(content) ||\n hasUnsafeCallableToJSON(content) ||\n content.length !== 1\n ) {\n return undefined;\n }\n\n const descriptor = Object.getOwnPropertyDescriptor(content, '0');\n if (descriptor == null || !('value' in descriptor)) {\n return undefined;\n }\n const block = descriptor.value;\n if (!isRecord(block)) {\n return undefined;\n }\n const type = readOwnEnumerableDataProperty(block, 'type');\n if (!type.found) {\n return undefined;\n }\n const imageUrl = readOwnEnumerableDataProperty(block, 'image_url');\n const fileId = readOwnEnumerableDataProperty(block, 'file_id');\n const validImageUrl =\n imageUrl.found && isProviderImageUrl(imageUrl.value)\n ? imageUrl.value\n : undefined;\n const validFileId =\n fileId.found && isProviderFileId(fileId.value) ? fileId.value : undefined;\n const hasImageUrl = validImageUrl != null;\n const hasFileId = validFileId != null;\n\n if (\n type.value === 'input_image' &&\n hasOnlyEnumerableKeys(block, INPUT_IMAGE_KEYS)\n ) {\n if (\n (imageUrl.found && !hasImageUrl) ||\n (fileId.found && !hasFileId) ||\n hasImageUrl === hasFileId\n ) {\n return undefined;\n }\n const detail = readOwnEnumerableDataProperty(block, 'detail');\n if (\n detail.found &&\n (typeof detail.value !== 'string' ||\n !INPUT_IMAGE_DETAILS.has(detail.value))\n ) {\n return undefined;\n }\n return hasImageUrl\n ? {\n type: 'input_image',\n image_url: validImageUrl,\n ...(detail.found ? { detail: detail.value as InputImageDetail } : {}),\n }\n : {\n type: 'input_image',\n file_id: validFileId as string,\n ...(detail.found ? { detail: detail.value as InputImageDetail } : {}),\n };\n }\n if (\n type.value === 'computer_screenshot' &&\n hasOnlyEnumerableKeys(block, COMPUTER_SCREENSHOT_KEYS)\n ) {\n if (\n (imageUrl.found && !hasImageUrl) ||\n (fileId.found && !hasFileId) ||\n hasImageUrl === hasFileId\n ) {\n return undefined;\n }\n return hasImageUrl\n ? { type: 'computer_screenshot', image_url: validImageUrl }\n : {\n type: 'computer_screenshot',\n file_id: validFileId as string,\n };\n }\n if (\n type.value === 'image_url' &&\n !fileId.found &&\n hasOnlyEnumerableKeys(block, IMAGE_URL_KEYS)\n ) {\n if (hasImageUrl) {\n return { type: 'input_image', image_url: validImageUrl };\n }\n if (\n imageUrl.found &&\n isRecord(imageUrl.value) &&\n hasOnlyEnumerableKeys(imageUrl.value, NESTED_IMAGE_URL_KEYS)\n ) {\n const url = readOwnEnumerableDataProperty(imageUrl.value, 'url');\n if (url.found && isProviderImageUrl(url.value)) {\n return { type: 'input_image', image_url: url.value };\n }\n }\n }\n return undefined;\n}\n\n/** Returns the provider image URL when a screenshot is URL-backed. */\nexport function getComputerCallOutputImageUrl(\n content: unknown\n): string | undefined {\n const screenshot = getComputerCallOutputScreenshot(content);\n return screenshot != null && 'image_url' in screenshot\n ? screenshot.image_url\n : undefined;\n}\n\n/** Returns whether content can be sent as a native computer screenshot. */\nexport function isComputerCallOutputContent(\n content: unknown\n): content is ToolContent {\n return getComputerCallOutputScreenshot(content) != null;\n}\n\n/** Returns whether a ToolMessage carries the native computer-output marker. */\nexport function hasComputerCallOutputMarker(message: BaseMessage): boolean {\n try {\n if (message.getType() !== 'tool') {\n return false;\n }\n const metadata = message.additional_kwargs as unknown;\n if (!isRecord(metadata)) {\n return false;\n }\n const type = readOwnEnumerableDataProperty(metadata, 'type');\n return type.found && type.value === 'computer_call_output';\n } catch {\n return false;\n }\n}\n\n/** Native Responses computer screenshots are indivisible provider payloads. */\nexport function isComputerCallOutputMessage(message: BaseMessage): boolean {\n return (\n hasComputerCallOutputMarker(message) &&\n isComputerCallOutputContent(message.content)\n );\n}\n\n/**\n * Bounds structured tool output without slicing binary/media payloads.\n * Purely textual/structured arrays become a universally valid string tool\n * result. For mixed-media arrays, compactable blocks become one text preview\n * while atomic blocks remain intact.\n */\nexport function compactToolContent(\n content: unknown,\n maxChars: number\n): CompactToolContentResult {\n const normalizedMaxChars = Number.isFinite(maxChars)\n ? Math.max(0, Math.floor(maxChars))\n : Number.MAX_SAFE_INTEGER;\n if (typeof content === 'string') {\n return {\n content: truncateToolResultContent(content, normalizedMaxChars),\n changed: content.length > normalizedMaxChars,\n originalChars: content.length,\n };\n }\n if (!isArray(content)) {\n const serialized = serializeStructuredValueBounded(\n content,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n if (isProxy(content)) {\n const serialized = serializeStructuredValueBounded(\n content,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n const contentBlocks = content as ToolContentBlock[];\n\n let contentLength: number;\n try {\n contentLength = contentBlocks.length;\n } catch {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: Number.MAX_SAFE_INTEGER,\n };\n }\n if (contentLength > MAX_STRUCTURED_SERIALIZATION_WORK) {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n\n try {\n const blockKinds = new Uint8Array(contentLength);\n const validation = createToolBlockClassificationContext();\n const structuredWork = createStructuredWorkState();\n const containerValidationWork = {\n value: MAX_ATOMIC_VALIDATION_WORK,\n };\n const containerPrototype = Object.getPrototypeOf(contentBlocks);\n if (\n (containerPrototype !== Array.prototype && containerPrototype !== null) ||\n hasPotentiallyCallableToJSON(\n contentBlocks,\n containerValidationWork,\n validation.totalRemaining\n )\n ) {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n let atomicBlockCount = 0;\n let denseTextLength = contentLength > 0 ? contentLength - 1 : undefined;\n for (let i = 0; i < contentLength; i++) {\n const descriptor = Object.getOwnPropertyDescriptor(\n contentBlocks,\n String(i)\n );\n if (\n descriptor == null ||\n typeof descriptor.get === 'function' ||\n typeof descriptor.set === 'function'\n ) {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n const block = descriptor.value as ToolContentBlock;\n const kind = classifyToolContentBlock(block, validation);\n if (validation.totalRemaining.value <= 0) {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n blockKinds[i] = kind;\n if (kind === TOOL_BLOCK_ATOMIC) {\n atomicBlockCount++;\n }\n if (denseTextLength == null) {\n continue;\n }\n if (kind !== TOOL_BLOCK_TEXT) {\n denseTextLength = undefined;\n continue;\n }\n const text = readOwnEnumerableDataProperty(block, 'text').value;\n denseTextLength += typeof text === 'string' ? text.length : 0;\n if (denseTextLength >= Number.MAX_SAFE_INTEGER) {\n denseTextLength = Number.MAX_SAFE_INTEGER;\n }\n }\n const originalChars =\n denseTextLength ??\n estimateStructuredChars(\n contentBlocks,\n Number.MAX_SAFE_INTEGER,\n [],\n structuredWork\n );\n if (atomicBlockCount === 0) {\n if (denseTextLength != null && originalChars <= normalizedMaxChars) {\n return {\n content: contentBlocks,\n changed: false,\n originalChars,\n };\n }\n const serialized =\n denseTextLength != null\n ? serializeDenseTextBlocksWithinLimit(\n contentBlocks as TextToolContentBlock[],\n denseTextLength,\n normalizedMaxChars\n )\n : serializeStructuredValueWithinLimit(\n contentBlocks,\n normalizedMaxChars,\n structuredWork\n );\n return {\n content: truncateToolResultContent(serialized, normalizedMaxChars),\n // Opaque arrays are normalized even when they are small so every\n // provider receives a universally valid tool-result string.\n changed: true,\n originalChars,\n };\n }\n\n let hasOpaqueBlocks = false;\n const normalizedBlocks: ToolContentBlock[] = [];\n const normalizedKinds: number[] = [];\n let opaqueRun: unknown[] = [];\n const flushOpaqueRun = (): void => {\n if (opaqueRun.length === 0) {\n return;\n }\n normalizedBlocks.push({\n type: 'text',\n text: serializeStructuredValueWithinLimit(\n opaqueRun,\n normalizedMaxChars,\n structuredWork\n ),\n });\n normalizedKinds.push(TOOL_BLOCK_TEXT);\n opaqueRun = [];\n };\n for (let i = 0; i < contentLength; i++) {\n const block = contentBlocks[i];\n const kind = blockKinds[i];\n if (kind !== TOOL_BLOCK_OPAQUE) {\n flushOpaqueRun();\n normalizedBlocks.push(block);\n normalizedKinds.push(kind);\n } else {\n hasOpaqueBlocks = true;\n opaqueRun.push(block);\n }\n }\n flushOpaqueRun();\n\n const normalizedLength = estimateStructuredChars(\n normalizedBlocks,\n Number.MAX_SAFE_INTEGER,\n [],\n structuredWork\n );\n if (normalizedLength <= normalizedMaxChars) {\n return {\n content: hasOpaqueBlocks ? normalizedBlocks : contentBlocks,\n changed: hasOpaqueBlocks,\n originalChars,\n };\n }\n\n // Keep small media/resource blocks intact, but never let a single inline\n // base64/blob block defeat the cap. Half of the budget is reserved for\n // compactable text so the model still receives an explanation.\n const atomicBudget = Math.floor(normalizedMaxChars / 2);\n let atomicChars = 0;\n let preservedAtomicCount = 0;\n const preservedAtomicFlags = new Uint8Array(normalizedBlocks.length);\n let omittedAtomicCount = 0;\n const omittedAtomicTypes: string[] = [];\n const compactableBlocks: ToolContentBlock[] = [];\n let compactableChars = 0;\n for (let i = 0; i < normalizedBlocks.length; i++) {\n const block = normalizedBlocks[i];\n if (normalizedKinds[i] !== TOOL_BLOCK_ATOMIC) {\n if (compactableBlocks.length > 0) {\n compactableChars++;\n }\n compactableBlocks.push(block);\n compactableChars += (block as TextToolContentBlock).text.length;\n continue;\n }\n const blockChars = estimateStructuredChars(\n block,\n atomicBudget - atomicChars,\n [],\n structuredWork\n );\n if (atomicChars + blockChars <= atomicBudget) {\n preservedAtomicFlags[i] = 1;\n preservedAtomicCount++;\n atomicChars += blockChars;\n } else {\n omittedAtomicCount++;\n const typeProperty = isRecord(block)\n ? readOwnEnumerableDataProperty(block, 'type')\n : { found: false as const };\n if (omittedAtomicTypes.length < 8) {\n const rawType =\n typeProperty.found && typeof typeProperty.value === 'string'\n ? typeProperty.value\n : 'media';\n omittedAtomicTypes.push(truncateToolResultContent(rawType, 80));\n }\n }\n }\n\n let previewSource = serializeDenseTextBlocksWithinLimit(\n compactableBlocks as TextToolContentBlock[],\n compactableChars,\n normalizedMaxChars\n );\n if (omittedAtomicCount > 0) {\n const undisplayedCount = omittedAtomicCount - omittedAtomicTypes.length;\n const omittedNotice =\n `[omitted ${omittedAtomicCount} oversized atomic tool-content ` +\n `block${omittedAtomicCount === 1 ? '' : 's'}: ` +\n `${omittedAtomicTypes.join(', ')}` +\n `${undisplayedCount > 0 ? `, +${undisplayedCount} more` : ''}]`;\n previewSource =\n previewSource.length > 0\n ? `${previewSource}\\n${omittedNotice}`\n : omittedNotice;\n }\n\n const structuralAllowance =\n preservedAtomicCount * 4 + (previewSource.length > 0 ? 32 : 2);\n const previewBudget = Math.max(\n 0,\n normalizedMaxChars - atomicChars - structuralAllowance\n );\n const preview = truncateToolResultContent(previewSource, previewBudget);\n const compacted: ToolContentBlock[] = [];\n let previewInserted = false;\n for (let i = 0; i < normalizedBlocks.length; i++) {\n const block = normalizedBlocks[i];\n if (normalizedKinds[i] === TOOL_BLOCK_ATOMIC) {\n if (preservedAtomicFlags[i] === 1) {\n compacted.push(block);\n }\n } else if (!previewInserted) {\n if (preview.length > 0) {\n compacted.push({ type: 'text', text: preview });\n }\n previewInserted = true;\n }\n }\n if (!previewInserted && preview.length > 0) {\n compacted.push({ type: 'text', text: preview });\n }\n\n // JSON framing can make the block array a few bytes larger than the\n // character budget. Fall back to bounded provider-neutral text rather than\n // leaking an oversized media payload.\n const compactedChars =\n preservedAtomicCount > 0 || compacted.length === 0\n ? estimateStructuredChars(\n compacted,\n Number.MAX_SAFE_INTEGER,\n [],\n structuredWork\n )\n : preview.length;\n if (compactedChars > normalizedMaxChars) {\n return {\n content: serializeStructuredValueWithinLimit(\n normalizedBlocks,\n normalizedMaxChars,\n structuredWork\n ),\n changed: true,\n originalChars,\n };\n }\n\n return {\n content: compacted,\n changed: true,\n originalChars,\n };\n } catch {\n const serialized = serializeStructuredValueBounded(\n contentBlocks,\n normalizedMaxChars\n );\n return {\n content: serialized.content,\n changed: true,\n originalChars: serialized.originalChars,\n };\n }\n}\n\n/** Clones a ToolMessage while retaining fields omitted by ad-hoc clones. */\nexport function cloneToolMessageWithContent(\n message: ToolMessage,\n content: ToolContent,\n artifact: unknown = message.artifact\n): ToolMessage {\n return new ToolMessage({\n content,\n tool_call_id: message.tool_call_id,\n name: message.name,\n id: message.id,\n status: message.status,\n artifact,\n metadata: message.metadata,\n additional_kwargs: message.additional_kwargs,\n response_metadata: message.response_metadata,\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"toolContent.mjs","names":[],"sources":["../../../src/utils/toolContent.ts"],"mappings":"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"}
@@ -1,62 +1,14 @@
1
1
  //#region src/utils/truncation.ts
2
- /**
3
- * Ingestion-time and pre-flight truncation utilities for tool results.
4
- *
5
- * Prevents oversized tool outputs from entering the message array and
6
- * consuming the entire context window.
7
- */
8
- /**
9
- * Absolute hard cap on tool result length (characters).
10
- * Even if the model has a 1M-token context, a single tool result
11
- * larger than this is almost certainly a bug (e.g., dumping a binary file).
12
- */
13
2
  const HARD_MAX_TOOL_RESULT_CHARS = 4e5;
14
- /**
15
- * Absolute hard cap on the aggregate size (characters) of all registered
16
- * tool outputs kept for `{{tool<i>turn<n>}}` substitution. Set at 5 MB
17
- * because the registry stores *raw, untruncated* tool output — full
18
- * fidelity for piping into downstream bash/jq — so the budget needs
19
- * enough headroom to keep a handful of large responses without
20
- * ballooning unbounded.
21
- */
22
3
  const HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE = 5e6;
23
- /**
24
- * Computes the dynamic max tool result size based on the model's context window.
25
- * Uses 30% of the context window (in estimated characters, ~4 chars/token)
26
- * capped at HARD_MAX_TOOL_RESULT_CHARS.
27
- *
28
- * @param contextWindowTokens - The model's max context tokens (optional).
29
- * @returns Maximum allowed characters for a single tool result.
30
- */
31
4
  function calculateMaxToolResultChars(contextWindowTokens) {
32
5
  if (contextWindowTokens == null || contextWindowTokens <= 0) return HARD_MAX_TOOL_RESULT_CHARS;
33
6
  return Math.min(Math.floor(contextWindowTokens * .3) * 4, HARD_MAX_TOOL_RESULT_CHARS);
34
7
  }
35
- /**
36
- * Computes the default aggregate size (characters) for the tool output
37
- * reference registry based on the per-output budget. Mirrors
38
- * `calculateMaxToolResultChars`'s shape: a multiple of the per-output
39
- * cap, clamped to `HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE`.
40
- *
41
- * @param maxOutputSize - Per-output maximum characters (e.g., the
42
- * ToolNode's `maxToolResultChars`). When omitted or non-positive,
43
- * falls back to the absolute total cap.
44
- * @returns Maximum total characters retained across the registry.
45
- */
46
8
  function calculateMaxTotalToolOutputSize(maxOutputSize) {
47
9
  if (maxOutputSize == null || maxOutputSize <= 0) return HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE;
48
10
  return Math.min(maxOutputSize * 2, HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE);
49
11
  }
50
- /**
51
- * Truncates a tool-call input (the arguments/payload of a tool_use block)
52
- * using head+tail strategy. Returns an object with `_truncated` (the
53
- * truncated string) and `_originalChars` (for diagnostics).
54
- *
55
- * Accepts any type — objects are JSON-serialized before truncation.
56
- *
57
- * @param input - The tool input (string, object, etc.).
58
- * @param maxChars - Maximum allowed characters.
59
- */
60
12
  function truncateToolInput(input, maxChars) {
61
13
  const serialized = typeof input === "string" ? input : JSON.stringify(input);
62
14
  if (serialized.length <= maxChars) return {
@@ -76,19 +28,6 @@ function truncateToolInput(input, maxChars) {
76
28
  _originalChars: serialized.length
77
29
  };
78
30
  }
79
- /**
80
- * Truncates tool result content that exceeds `maxChars` using a head+tail
81
- * strategy. Keeps the beginning (structure/headers) and end (return value /
82
- * conclusion) of the content so the model retains both the opening context
83
- * and the final outcome.
84
- *
85
- * Head gets ~70% of the budget, tail gets ~30%. Falls back to head-only
86
- * when the budget is too small for a meaningful tail.
87
- *
88
- * @param content - The tool result string content.
89
- * @param maxChars - Maximum allowed characters.
90
- * @returns The (possibly truncated) content string.
91
- */
92
31
  function truncateToolResultContent(content, maxChars) {
93
32
  if (content.length <= maxChars) return content;
94
33
  const indicator = `\n\n… [truncated: ${content.length} chars exceeded ${maxChars} limit] …\n\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"truncation.mjs","names":[],"sources":["../../../src/utils/truncation.ts"],"sourcesContent":["/**\n * Ingestion-time and pre-flight truncation utilities for tool results.\n *\n * Prevents oversized tool outputs from entering the message array and\n * consuming the entire context window.\n */\n\n/**\n * Absolute hard cap on tool result length (characters).\n * Even if the model has a 1M-token context, a single tool result\n * larger than this is almost certainly a bug (e.g., dumping a binary file).\n */\nexport const HARD_MAX_TOOL_RESULT_CHARS = 400_000;\n\n/**\n * Absolute hard cap on the aggregate size (characters) of all registered\n * tool outputs kept for `{{tool<i>turn<n>}}` substitution. Set at 5 MB\n * because the registry stores *raw, untruncated* tool output — full\n * fidelity for piping into downstream bash/jq — so the budget needs\n * enough headroom to keep a handful of large responses without\n * ballooning unbounded.\n */\nexport const HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE = 5_000_000;\n\n/**\n * Computes the dynamic max tool result size based on the model's context window.\n * Uses 30% of the context window (in estimated characters, ~4 chars/token)\n * capped at HARD_MAX_TOOL_RESULT_CHARS.\n *\n * @param contextWindowTokens - The model's max context tokens (optional).\n * @returns Maximum allowed characters for a single tool result.\n */\nexport function calculateMaxToolResultChars(\n contextWindowTokens?: number\n): number {\n if (contextWindowTokens == null || contextWindowTokens <= 0) {\n return HARD_MAX_TOOL_RESULT_CHARS;\n }\n return Math.min(\n Math.floor(contextWindowTokens * 0.3) * 4,\n HARD_MAX_TOOL_RESULT_CHARS\n );\n}\n\n/**\n * Computes the default aggregate size (characters) for the tool output\n * reference registry based on the per-output budget. Mirrors\n * `calculateMaxToolResultChars`'s shape: a multiple of the per-output\n * cap, clamped to `HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE`.\n *\n * @param maxOutputSize - Per-output maximum characters (e.g., the\n * ToolNode's `maxToolResultChars`). When omitted or non-positive,\n * falls back to the absolute total cap.\n * @returns Maximum total characters retained across the registry.\n */\nexport function calculateMaxTotalToolOutputSize(\n maxOutputSize?: number\n): number {\n if (maxOutputSize == null || maxOutputSize <= 0) {\n return HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE;\n }\n return Math.min(maxOutputSize * 2, HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE);\n}\n\n/**\n * Truncates a tool-call input (the arguments/payload of a tool_use block)\n * using head+tail strategy. Returns an object with `_truncated` (the\n * truncated string) and `_originalChars` (for diagnostics).\n *\n * Accepts any type — objects are JSON-serialized before truncation.\n *\n * @param input - The tool input (string, object, etc.).\n * @param maxChars - Maximum allowed characters.\n */\nexport function truncateToolInput(\n input: unknown,\n maxChars: number\n): { _truncated: string; _originalChars: number } {\n const serialized = typeof input === 'string' ? input : JSON.stringify(input);\n if (serialized.length <= maxChars) {\n return { _truncated: serialized, _originalChars: serialized.length };\n }\n const indicator = `\\n… [truncated: ${serialized.length} chars exceeded ${maxChars} limit] …\\n`;\n const available = maxChars - indicator.length;\n\n if (available < 100) {\n return {\n _truncated: serialized.slice(0, maxChars) + indicator.trimEnd(),\n _originalChars: serialized.length,\n };\n }\n\n const headSize = Math.ceil(available * 0.7);\n const tailSize = available - headSize;\n\n return {\n _truncated:\n serialized.slice(0, headSize) +\n indicator +\n serialized.slice(serialized.length - tailSize),\n _originalChars: serialized.length,\n };\n}\n\n/**\n * Truncates tool result content that exceeds `maxChars` using a head+tail\n * strategy. Keeps the beginning (structure/headers) and end (return value /\n * conclusion) of the content so the model retains both the opening context\n * and the final outcome.\n *\n * Head gets ~70% of the budget, tail gets ~30%. Falls back to head-only\n * when the budget is too small for a meaningful tail.\n *\n * @param content - The tool result string content.\n * @param maxChars - Maximum allowed characters.\n * @returns The (possibly truncated) content string.\n */\nexport function truncateToolResultContent(\n content: string,\n maxChars: number\n): string {\n if (content.length <= maxChars) {\n return content;\n }\n\n const indicator = `\\n\\n… [truncated: ${content.length} chars exceeded ${maxChars} limit] …\\n\\n`;\n const available = maxChars - indicator.length;\n if (available <= 0) {\n return content.slice(0, maxChars);\n }\n\n // When budget is too small for a meaningful tail, fall back to head-only\n if (available < 200) {\n return content.slice(0, available) + indicator.trimEnd();\n }\n\n const headSize = Math.ceil(available * 0.7);\n const tailSize = available - headSize;\n\n // Try to break at newline boundaries for cleaner output\n let headEnd = headSize;\n const headNewline = content.lastIndexOf('\\n', headSize);\n if (headNewline > headSize - 200 && headNewline > 0) {\n headEnd = headNewline;\n }\n\n let tailStart = content.length - tailSize;\n const tailNewline = content.indexOf('\\n', tailStart);\n if (tailNewline > 0 && tailNewline < tailStart + 200) {\n tailStart = tailNewline + 1;\n }\n\n return content.slice(0, headEnd) + indicator + content.slice(tailStart);\n}\n"],"mappings":";;;;;;;;;;;;AAYA,MAAa,6BAA6B;;;;;;;;;AAU1C,MAAa,kCAAkC;;;;;;;;;AAU/C,SAAgB,4BACd,qBACQ;CACR,IAAI,uBAAuB,QAAQ,uBAAuB,GACxD,OAAO;CAET,OAAO,KAAK,IACV,KAAK,MAAM,sBAAsB,EAAG,IAAI,GACxC,0BACF;AACF;;;;;;;;;;;;AAaA,SAAgB,gCACd,eACQ;CACR,IAAI,iBAAiB,QAAQ,iBAAiB,GAC5C,OAAO;CAET,OAAO,KAAK,IAAI,gBAAgB,GAAG,+BAA+B;AACpE;;;;;;;;;;;AAYA,SAAgB,kBACd,OACA,UACgD;CAChD,MAAM,aAAa,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,KAAK;CAC3E,IAAI,WAAW,UAAU,UACvB,OAAO;EAAE,YAAY;EAAY,gBAAgB,WAAW;CAAO;CAErE,MAAM,YAAY,mBAAmB,WAAW,OAAO,kBAAkB,SAAS;CAClF,MAAM,YAAY,WAAW,UAAU;CAEvC,IAAI,YAAY,KACd,OAAO;EACL,YAAY,WAAW,MAAM,GAAG,QAAQ,IAAI,UAAU,QAAQ;EAC9D,gBAAgB,WAAW;CAC7B;CAGF,MAAM,WAAW,KAAK,KAAK,YAAY,EAAG;CAC1C,MAAM,WAAW,YAAY;CAE7B,OAAO;EACL,YACE,WAAW,MAAM,GAAG,QAAQ,IAC5B,YACA,WAAW,MAAM,WAAW,SAAS,QAAQ;EAC/C,gBAAgB,WAAW;CAC7B;AACF;;;;;;;;;;;;;;AAeA,SAAgB,0BACd,SACA,UACQ;CACR,IAAI,QAAQ,UAAU,UACpB,OAAO;CAGT,MAAM,YAAY,qBAAqB,QAAQ,OAAO,kBAAkB,SAAS;CACjF,MAAM,YAAY,WAAW,UAAU;CACvC,IAAI,aAAa,GACf,OAAO,QAAQ,MAAM,GAAG,QAAQ;CAIlC,IAAI,YAAY,KACd,OAAO,QAAQ,MAAM,GAAG,SAAS,IAAI,UAAU,QAAQ;CAGzD,MAAM,WAAW,KAAK,KAAK,YAAY,EAAG;CAC1C,MAAM,WAAW,YAAY;CAG7B,IAAI,UAAU;CACd,MAAM,cAAc,QAAQ,YAAY,MAAM,QAAQ;CACtD,IAAI,cAAc,WAAW,OAAO,cAAc,GAChD,UAAU;CAGZ,IAAI,YAAY,QAAQ,SAAS;CACjC,MAAM,cAAc,QAAQ,QAAQ,MAAM,SAAS;CACnD,IAAI,cAAc,KAAK,cAAc,YAAY,KAC/C,YAAY,cAAc;CAG5B,OAAO,QAAQ,MAAM,GAAG,OAAO,IAAI,YAAY,QAAQ,MAAM,SAAS;AACxE"}
1
+ {"version":3,"file":"truncation.mjs","names":[],"sources":["../../../src/utils/truncation.ts"],"mappings":";AAYA,MAAa,6BAA6B;AAU1C,MAAa,kCAAkC;AAU/C,SAAgB,4BACd,qBACQ;CACR,IAAI,uBAAuB,QAAQ,uBAAuB,GACxD,OAAO;CAET,OAAO,KAAK,IACV,KAAK,MAAM,sBAAsB,EAAG,IAAI,GACxC,0BACF;AACF;AAaA,SAAgB,gCACd,eACQ;CACR,IAAI,iBAAiB,QAAQ,iBAAiB,GAC5C,OAAO;CAET,OAAO,KAAK,IAAI,gBAAgB,GAAG,+BAA+B;AACpE;AAYA,SAAgB,kBACd,OACA,UACgD;CAChD,MAAM,aAAa,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,KAAK;CAC3E,IAAI,WAAW,UAAU,UACvB,OAAO;EAAE,YAAY;EAAY,gBAAgB,WAAW;CAAO;CAErE,MAAM,YAAY,mBAAmB,WAAW,OAAO,kBAAkB,SAAS;CAClF,MAAM,YAAY,WAAW,UAAU;CAEvC,IAAI,YAAY,KACd,OAAO;EACL,YAAY,WAAW,MAAM,GAAG,QAAQ,IAAI,UAAU,QAAQ;EAC9D,gBAAgB,WAAW;CAC7B;CAGF,MAAM,WAAW,KAAK,KAAK,YAAY,EAAG;CAC1C,MAAM,WAAW,YAAY;CAE7B,OAAO;EACL,YACE,WAAW,MAAM,GAAG,QAAQ,IAC5B,YACA,WAAW,MAAM,WAAW,SAAS,QAAQ;EAC/C,gBAAgB,WAAW;CAC7B;AACF;AAeA,SAAgB,0BACd,SACA,UACQ;CACR,IAAI,QAAQ,UAAU,UACpB,OAAO;CAGT,MAAM,YAAY,qBAAqB,QAAQ,OAAO,kBAAkB,SAAS;CACjF,MAAM,YAAY,WAAW,UAAU;CACvC,IAAI,aAAa,GACf,OAAO,QAAQ,MAAM,GAAG,QAAQ;CAIlC,IAAI,YAAY,KACd,OAAO,QAAQ,MAAM,GAAG,SAAS,IAAI,UAAU,QAAQ;CAGzD,MAAM,WAAW,KAAK,KAAK,YAAY,EAAG;CAC1C,MAAM,WAAW,YAAY;CAG7B,IAAI,UAAU;CACd,MAAM,cAAc,QAAQ,YAAY,MAAM,QAAQ;CACtD,IAAI,cAAc,WAAW,OAAO,cAAc,GAChD,UAAU;CAGZ,IAAI,YAAY,QAAQ,SAAS;CACjC,MAAM,cAAc,QAAQ,QAAQ,MAAM,SAAS;CACnD,IAAI,cAAc,KAAK,cAAc,YAAY,KAC/C,YAAY,cAAc;CAG5B,OAAO,QAAQ,MAAM,GAAG,OAAO,IAAI,YAAY,QAAQ,MAAM,SAAS;AACxE"}
@@ -1,9 +1,9 @@
1
1
  import { SystemMessage } from '@langchain/core/messages';
2
2
  import type { UsageMetadata, BaseMessage } from '@langchain/core/messages';
3
3
  import type { RunnableConfig, Runnable } from '@langchain/core/runnables';
4
- import type * as t from '@/types';
5
- import { createPruneMessages } from '@/messages';
6
- import { ContentTypes, Providers } from '@/common';
4
+ import type * as t from '../types';
5
+ import { createPruneMessages } from '../messages';
6
+ import { ContentTypes, Providers } from '../common';
7
7
  /**
8
8
  * Encapsulates agent-specific state that can vary between agents in a multi-agent system
9
9
  */
@@ -1,8 +1,8 @@
1
1
  import type { UsageMetadata } from '@langchain/core/messages';
2
2
  import type { ClientOptions } from '@langchain/openai';
3
- import type { ChatOpenRouterInput } from '@/llm/openrouter';
4
- import type * as t from '@/types';
5
- import { Providers } from '@/common';
3
+ import type { ChatOpenRouterInput } from '../../llm/openrouter';
4
+ import type * as t from '../../types';
5
+ import { Providers } from '../../common';
6
6
  type LivePromptCacheProvider = Providers.ANTHROPIC | Providers.BEDROCK | Providers.OPENROUTER;
7
7
  type PromptCacheExpectedSystemBlock = {
8
8
  type: 'text';
@@ -1,5 +1,5 @@
1
1
  import type { BaseMessage } from '@langchain/core/messages';
2
- import type * as t from '@/types';
2
+ import type * as t from '../types';
3
3
  export interface ProjectAgentContextUsageParams {
4
4
  /** Same `AgentInputs` a run is built from (instructions, tools, model, window). */
5
5
  agent: t.AgentInputs;
@@ -1,7 +1,7 @@
1
1
  import type { BaseMessageFields, UsageMetadata } from '@langchain/core/messages';
2
2
  import type { Logger } from 'winston';
3
- import type { MultiAgentGraph, StandardGraph } from '@/graphs';
4
- import type * as t from '@/types';
3
+ import type { MultiAgentGraph, StandardGraph } from './graphs';
4
+ import type * as t from './types';
5
5
  export declare class HandlerRegistry {
6
6
  private handlers;
7
7
  register(eventType: string, handler: t.EventHandler): void;
@@ -2,17 +2,17 @@ import { ToolNode } from '@langchain/langgraph/prebuilt';
2
2
  import { RunnableConfig } from '@langchain/core/runnables';
3
3
  import type { UsageMetadata, BaseMessage } from '@langchain/core/messages';
4
4
  import type { ToolCall } from '@langchain/core/messages/tool';
5
- import type { SubagentGraphResumeState, SubagentToolNodeResumeState } from '@/tools/subagent/SubagentReplay';
6
- import type { ResolvedStreamLimits, RunBreakerScope, StreamedToolCallArgTally, StreamDeltaEventTally } from '@/llm/streamLimits';
7
- import type { GraphFactoryDependencies } from '@/graphs/graphFactory';
8
- import type { HookRegistry } from '@/hooks';
9
- import type * as t from '@/types';
10
- import { StreamLimitExceededError } from '@/llm/streamLimits';
11
- import { SubagentExecutor } from '@/tools/subagent';
12
- import { ToolOutputReferenceRegistry } from '@/tools/toolOutputReferences';
13
- import { ToolNode as CustomToolNode } from '@/tools/ToolNode';
14
- import { AgentContext } from '@/agents/AgentContext';
15
- import { HandlerRegistry } from '@/events';
5
+ import type { SubagentGraphResumeState, SubagentToolNodeResumeState } from '../tools/subagent/SubagentReplay';
6
+ import type { ResolvedStreamLimits, RunBreakerScope, StreamedToolCallArgTally, StreamDeltaEventTally } from '../llm/streamLimits';
7
+ import type { GraphFactoryDependencies } from '../graphs/graphFactory';
8
+ import type { HookRegistry } from '../hooks';
9
+ import type * as t from '../types';
10
+ import { StreamLimitExceededError } from '../llm/streamLimits';
11
+ import { SubagentExecutor } from '../tools/subagent';
12
+ import { ToolOutputReferenceRegistry } from '../tools/toolOutputReferences';
13
+ import { ToolNode as CustomToolNode } from '../tools/ToolNode';
14
+ import { AgentContext } from '../agents/AgentContext';
15
+ import { HandlerRegistry } from '../events';
16
16
  export declare abstract class Graph<T extends t.BaseGraphState = t.BaseGraphState, _TNodeName extends string = string> {
17
17
  abstract resetValues(keepContent?: boolean, checkpointScope?: string): void;
18
18
  restoreCheckpointMessages(_messages: BaseMessage[], _pendingMessages?: BaseMessage[]): void;
@@ -1,5 +1,5 @@
1
- import type { GraphFactoryDependencies } from '@/graphs/graphFactory';
2
- import type * as t from '@/types';
1
+ import type { GraphFactoryDependencies } from '../graphs/graphFactory';
2
+ import type * as t from '../types';
3
3
  import { StandardGraph } from './Graph';
4
4
  /**
5
5
  * MultiAgentGraph extends StandardGraph to support dynamic multi-agent workflows
@@ -1,7 +1,7 @@
1
- import type { GraphFactoryRequest } from '@/graphs/graphFactory';
2
- import type { MultiAgentGraphInput, StandardGraphInput } from '@/types';
3
- import { MultiAgentGraph } from '@/graphs/MultiAgentGraph';
4
- import { StandardGraph } from '@/graphs/Graph';
1
+ import type { GraphFactoryRequest } from '../graphs/graphFactory';
2
+ import type { MultiAgentGraphInput, StandardGraphInput } from '../types';
3
+ import { MultiAgentGraph } from '../graphs/MultiAgentGraph';
4
+ import { StandardGraph } from '../graphs/Graph';
5
5
  export declare function createGraph(request: {
6
6
  kind: 'standard';
7
7
  input: StandardGraphInput;
@@ -1,5 +1,5 @@
1
1
  import type { StandardGraph } from './Graph';
2
- import type * as t from '@/types';
2
+ import type * as t from '../types';
3
3
  export type GraphFactoryRequest = {
4
4
  kind: 'standard';
5
5
  input: t.StandardGraphInput;
@@ -16,7 +16,7 @@
16
16
  * nodes (RunnableLambda, addNode callbacks) do not have that
17
17
  * constraint.
18
18
  */
19
- import type { AskUserQuestionRequest, AskUserQuestionResolution } from '@/types/hitl';
19
+ import type { AskUserQuestionRequest, AskUserQuestionResolution } from '../types/hitl';
20
20
  /**
21
21
  * Suspend the current graph node to ask the human a question. Returns
22
22
  * the host-supplied resolution after `Run.resume(resolution)` is
@@ -1,4 +1,4 @@
1
- import type { AskUserQuestionsRequest, AskUserQuestionsResolution } from '@/types/hitl';
1
+ import type { AskUserQuestionsRequest, AskUserQuestionsResolution } from '../types/hitl';
2
2
  /**
3
3
  * Suspend once to collect answers to several related questions. The first
4
4
  * question is also included in the legacy `question` field so existing hosts
@@ -1,4 +1,4 @@
1
- import type { AskUserQuestionRequest, AskUserQuestionsInterruptPayload } from '@/types/hitl';
1
+ import type { AskUserQuestionRequest, AskUserQuestionsInterruptPayload } from '../types/hitl';
2
2
  /** Maximum questions supported by one batched clarification interaction. */
3
3
  export declare const MAX_ASK_USER_QUESTIONS = 4;
4
4
  /** Safe identifier format for answer-map keys in a batched question. */