@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
@@ -107,7 +107,6 @@ function selectCacheBreakpointIndexes(roles, cacheable) {
107
107
  }
108
108
  return [...indexes];
109
109
  }
110
- /** @internal */
111
110
  function addChatCacheBreakpoints(messages) {
112
111
  const indexes = new Set(selectCacheBreakpointIndexes(messages.map((message) => message.role), messages.map((message) => canAddChatBreakpoint(message))));
113
112
  return messages.map((message, index) => indexes.has(index) ? addChatBreakpoint(message) : message);
@@ -118,8 +117,6 @@ function isResponseMessage(item) {
118
117
  function isResponseInputRole(role) {
119
118
  return role === "system" || role === "developer" || role === "user";
120
119
  }
121
- /** Only `input_text`/`input_image`/`input_file` accept a Responses breakpoint;
122
- * `output_text`/`refusal` (replayed assistant blocks) are rejected with a 400. */
123
120
  function isCacheableResponsePart(part) {
124
121
  if (typeof part !== "object" || part == null || !("type" in part)) return false;
125
122
  return part.type === "input_text" || part.type === "input_image" || part.type === "input_file";
@@ -152,21 +149,16 @@ function addResponseBreakpoint(item) {
152
149
  content
153
150
  };
154
151
  }
155
- /** @internal */
156
152
  function addResponseCacheBreakpoints(input) {
157
153
  if (!Array.isArray(input)) return input;
158
154
  const indexes = new Set(selectCacheBreakpointIndexes(input.map((item) => isResponseMessage(item) ? item.role : void 0), input.map((item) => {
159
155
  if (!isResponseMessage(item)) return false;
160
- /** Only input roles take a Responses breakpoint. Assistant/tool turns
161
- * carry output content (string or output_text) that the API rejects
162
- * under an input marker, so they're never eligible. */
163
156
  if (!isResponseInputRole(item.role)) return false;
164
157
  const content = item.content;
165
158
  return typeof content === "string" ? content.length > 0 : Array.isArray(content) && content.some((part) => isCacheableResponsePart(part));
166
159
  })));
167
160
  return input.map((item, index) => indexes.has(index) ? addResponseBreakpoint(item) : item);
168
161
  }
169
- /** @internal */
170
162
  function shouldIncludeEncryptedReasoning(model, params) {
171
163
  const reasoningContext = params.reasoning?.context;
172
164
  return /^gpt-5\.6(?:-|$)/i.test(model) && (params.store === false || reasoningContext !== "current_turn");
@@ -219,13 +211,6 @@ const RESPONSES_REPLAY_OUTPUT_ITEM_TYPES = new Set([
219
211
  function isResponsesReplayOutputItem(item) {
220
212
  return typeof item === "object" && item != null && "type" in item && typeof item.type === "string" && RESPONSES_REPLAY_OUTPUT_ITEM_TYPES.has(item.type);
221
213
  }
222
- /**
223
- * LangChain's Responses converter places the authoritative terminal output in
224
- * response_metadata.output. Its chunk merge has no way to delete provisional
225
- * tool_outputs or replay-position sidecars, so remove those preemption-only
226
- * captures once that terminal output arrives. An interrupted stream has no
227
- * terminal chunk and keeps the captures for replay.
228
- */
229
214
  var ResponsesReplayAIMessageChunk = class extends AIMessageChunk {
230
215
  get lc_id() {
231
216
  return [...this.lc_namespace, AIMessageChunk.lc_name()];
@@ -496,20 +481,6 @@ function getCustomOpenAIClientOptions(owner, options) {
496
481
  ...options
497
482
  };
498
483
  }
499
- /**
500
- * Classifies a generation chunk for the smoothing engine:
501
- * - splittable: plain visible text (string content equal to `chunk.text`, no
502
- * logprobs / finish_reason) — sliced adaptively at the pacing cadence.
503
- * ANY logprobs value blocks splitting here (this family only attaches
504
- * logprobs on request; the DeepSeek suite pins chunks with them staying
505
- * intact) — deliberately stricter than `stream/chunkAdapters.ts`, where
506
- * google-common's always-present empty logprobs must not block.
507
- * - atomic: text- or reasoning-bearing chunks whose metadata cannot survive
508
- * slicing — paced as one piece, never split (legacy parity: these were
509
- * emitted whole but still paced).
510
- * - passthrough: tool-call deltas, usage-only, finish_reason and other
511
- * metadata chunks — strict FIFO, zero delay.
512
- */
513
484
  function toSmoothItem(chunk) {
514
485
  const { message } = chunk;
515
486
  const isMessageChunk = message instanceof AIMessageChunk;
@@ -531,13 +502,6 @@ function toSmoothItem(chunk) {
531
502
  emit: () => chunk
532
503
  };
533
504
  }
534
- /**
535
- * Usage metadata, additional kwargs and response metadata survive only on
536
- * the first piece: the aggregator's dict merge concatenates string fields
537
- * and sums usage, so replication across pieces corrupts them. Unlike the
538
- * generic adapter, `generationInfo` stays on every piece — per-piece token
539
- * indices ride in it and `dropRepeatedScalarMetadata` owns repetition there.
540
- */
541
505
  function cloneGenerationChunkPiece(chunk, piece) {
542
506
  if (piece.isFirst && piece.isLast) return chunk;
543
507
  const message = chunk.message;
@@ -563,17 +527,6 @@ function getStreamChunkTokenIndices(chunk) {
563
527
  completion
564
528
  };
565
529
  }
566
- /**
567
- * Adaptive smoothing adapter for the OpenAI chat-model family, layered over
568
- * the shared `smoothStream` engine. Keeps the historical signature so every
569
- * `_streamResponseChunks` call site is unchanged.
570
- *
571
- * `seenScalarMetadata`: when provided, de-duplicates repeated scalar metadata
572
- * just before emitting, so token callbacks and the yielded chunk observe the
573
- * same cleaned data. Omitted by callers that wrap this stream and finalize
574
- * downstream (e.g. `ChatOpenRouter`, which needs the raw `finish_reason` as
575
- * its flush signal and de-duplicates after its own processing).
576
- */
577
530
  async function* delayStreamChunks(chunks, delay, signal, runManager, seenScalarMetadata) {
578
531
  const smoothed = smoothStream({
579
532
  source: (async function* () {
@@ -593,32 +546,11 @@ function createAbortHandler(controller) {
593
546
  controller.abort();
594
547
  };
595
548
  }
596
- /**
597
- * Formats a tool in either OpenAI format, or LangChain structured tool format
598
- * into an OpenAI tool format. If the tool is already in OpenAI format, return without
599
- * any changes. If it is in LangChain structured tool format, convert it to OpenAI tool format
600
- * using OpenAI's `zodFunction` util, falling back to `convertToOpenAIFunction` if the parameters
601
- * returned from the `zodFunction` util are not defined.
602
- *
603
- * @param {BindToolsInput} tool The tool to convert to an OpenAI tool.
604
- * @param {Object} [fields] Additional fields to add to the OpenAI tool.
605
- * @returns {ToolDefinition} The inputted tool in OpenAI tool format.
606
- */
607
- /**
608
- * OpenAI strict function schemas require every property to appear in
609
- * `required`. The optional `intent` label (see `tools/intentArg.ts`) is
610
- * deliberately NOT required — the same schema is callable from programmatic
611
- * tool calling — so a tool auto-marked `strict: true` (the non-streaming
612
- * `json_schema` structured-output path) would be rejected as invalid before
613
- * execution. That path never streams a live label anyway, so the
614
- * marker-identified property is dropped there; every other path keeps it.
615
- */
616
549
  function stripIntentFromStrictTools(params) {
617
550
  const tools = params.tools;
618
551
  if (!Array.isArray(tools) || tools.length === 0) return params;
619
552
  const nextTools = tools.map((tool) => {
620
553
  const candidate = tool;
621
- /** Chat-completions tools nest under `function`; responses-API tools are flat. */
622
554
  const holder = candidate.function ?? candidate;
623
555
  if (holder.strict !== true) return tool;
624
556
  const parameters = holder.parameters;
@@ -692,15 +624,6 @@ var CustomAzureOpenAIClient = class extends AzureOpenAI {
692
624
  }
693
625
  };
694
626
  const OFFICIAL_OPENAI_BASE_URL_PATTERN = /^https:\/\/api\.openai\.com(\/|$)/;
695
- /**
696
- * Official OpenAI (api.openai.com) and Azure OpenAI Chat Completions streams
697
- * emit tool-call deltas strictly sequentially by index: once a delta for a
698
- * later index appears, a prior index's arguments never change. Stamping this
699
- * adapter lets the stream handler seal a prior call for eager execution the
700
- * moment the next call begins. OpenAI-compatible endpoints (custom baseURL)
701
- * must NOT be stamped — e.g. live Kimi/Moonshot streams revise prior-index
702
- * args after advancing — so callers gate on the wire endpoint, not the class.
703
- */
704
627
  function stampSequentialStreamedToolCallAdapter(message) {
705
628
  if (message instanceof AIMessageChunk && (message.tool_call_chunks?.length ?? 0) > 0) message.response_metadata = {
706
629
  ...message.response_metadata,
@@ -714,14 +637,6 @@ function isOfficialOpenAIBaseURL(baseURL) {
714
637
  return OFFICIAL_OPENAI_BASE_URL_PATTERN.test(effectiveBaseURL);
715
638
  }
716
639
  const AZURE_FIRST_PARTY_BASE_PATH_PATTERN = /^https:\/\/[^/]+\.(openai\.azure\.com|cognitiveservices\.azure\.com|api\.cognitive\.microsoft\.com)(:\d+)?(\/|$)/;
717
- /**
718
- * Azure OpenAI is first-party when requests resolve to an instance-name
719
- * endpoint or an *.openai.azure.com / *.cognitiveservices.azure.com /
720
- * regional *.api.cognitive.microsoft.com base path. A custom
721
- * `clientConfig.baseURL` or a non-Azure `azureOpenAIBasePath` routes through
722
- * a proxy or Azure-compatible endpoint whose stream contract is unknown, so
723
- * those are not stamped.
724
- */
725
640
  function isFirstPartyAzureEndpoint(args) {
726
641
  if (args.baseURL != null && args.baseURL !== "") return false;
727
642
  if (args.azureOpenAIBasePath == null || args.azureOpenAIBasePath === "") return true;
@@ -1211,10 +1126,6 @@ var ChatOpenAI$1 = class extends ChatOpenAI {
1211
1126
  ...options
1212
1127
  };
1213
1128
  }
1214
- /**
1215
- * Returns backwards compatible reasoning parameters from constructor params and call options
1216
- * @internal
1217
- */
1218
1129
  getReasoningParams(options) {
1219
1130
  return getReasoningParams(this.reasoning, options);
1220
1131
  }
@@ -1224,11 +1135,6 @@ var ChatOpenAI$1 = class extends ChatOpenAI {
1224
1135
  async *_streamResponseChunks(messages, options, runManager) {
1225
1136
  yield* delayStreamChunks(super._streamResponseChunks(messages, options, void 0), this._lc_stream_delay, options.signal, runManager, /* @__PURE__ */ new Map());
1226
1137
  }
1227
- /**
1228
- * Raw variant that skips scalar-metadata de-duplication. Used by subclasses
1229
- * (e.g. `ChatOpenRouter`) that read `finish_reason` as a control signal and
1230
- * must de-duplicate only after their own finalization.
1231
- */
1232
1138
  _streamRawResponseChunks(messages, options, runManager) {
1233
1139
  return delayStreamChunks(super._streamResponseChunks(messages, options, void 0), this._lc_stream_delay, options.signal, runManager);
1234
1140
  }
@@ -1247,10 +1153,6 @@ var AzureChatOpenAI$1 = class extends AzureChatOpenAI {
1247
1153
  static lc_name() {
1248
1154
  return "LibreChatAzureOpenAI";
1249
1155
  }
1250
- /**
1251
- * Returns backwards compatible reasoning parameters from constructor params and call options
1252
- * @internal
1253
- */
1254
1156
  getReasoningParams(options) {
1255
1157
  return getGatedReasoningParams(this.model, this.reasoning, options);
1256
1158
  }
@@ -1377,7 +1279,6 @@ var ChatDeepSeek$1 = class extends ChatDeepSeek {
1377
1279
  async *_streamResponseChunks(messages, options, runManager) {
1378
1280
  yield* delayStreamChunks(this._streamResponseChunksWithReasoning(messages, options, void 0), this._lc_stream_delay, options.signal, runManager, /* @__PURE__ */ new Map());
1379
1281
  }
1380
- /** Parses raw `<think>` fallback tags across chunks and emits sanitized DeepSeek stream chunks. */
1381
1282
  async *_streamResponseChunksWithReasoning(messages, options, runManager) {
1382
1283
  const stream = this._streamResponseChunksFromReasoningMessages(messages, options);
1383
1284
  const thinkStartTag = "<think>";
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["record","AzureOpenAIClient","OriginalChatOpenAICompletions","OriginalChatOpenAIResponses","OriginalAzureChatOpenAICompletions","OriginalAzureChatOpenAIResponses","ChatOpenAI","OriginalChatOpenAI","AzureChatOpenAI","OriginalAzureChatOpenAI","ChatDeepSeek","OriginalChatDeepSeek","ChatXAI","OriginalChatXAI"],"sources":["../../../../src/llm/openai/index.ts"],"sourcesContent":["import { AzureOpenAI as AzureOpenAIClient } from 'openai';\nimport { ChatXAI as OriginalChatXAI } from '@langchain/xai';\nimport { ChatGenerationChunk } from '@langchain/core/outputs';\nimport { ToolDefinition } from '@langchain/core/language_models/base';\nimport { ChatDeepSeek as OriginalChatDeepSeek } from '@langchain/deepseek';\nimport { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager';\nimport {\n AIMessage,\n AIMessageChunk,\n isAIMessage,\n} from '@langchain/core/messages';\nimport {\n convertToOpenAITool,\n isLangChainTool,\n} from '@langchain/core/utils/function_calling';\nimport {\n getEndpoint,\n OpenAIClient,\n wrapOpenAIClientError,\n getHeadersWithUserAgent,\n convertMessagesToResponsesInput,\n convertResponsesDeltaToChatGenerationChunk,\n ChatOpenAI as OriginalChatOpenAI,\n ChatOpenAIResponses as OriginalChatOpenAIResponses,\n ChatOpenAICompletions as OriginalChatOpenAICompletions,\n AzureChatOpenAI as OriginalAzureChatOpenAI,\n AzureChatOpenAIResponses as OriginalAzureChatOpenAIResponses,\n AzureChatOpenAICompletions as OriginalAzureChatOpenAICompletions,\n} from '@langchain/openai';\nimport type {\n BaseMessage,\n BaseMessageChunk,\n UsageMetadata,\n} from '@langchain/core/messages';\nimport type { ChatModelStreamEvent } from '@langchain/core/language_models/event';\nimport type { BindToolsInput } from '@langchain/core/language_models/chat_models';\nimport type { ChatGeneration, ChatResult } from '@langchain/core/outputs';\nimport type { ChatXAIInput } from '@langchain/xai';\nimport type * as t from '@langchain/openai';\nimport type { SmoothItem, SmoothPiece } from '@/llm/stream/smoother';\nimport type { ResponsesReplayPosition } from '@/messages/core';\nimport type { SeenScalarMetadata } from './streamMetadata';\nimport type { HeaderValue, HeadersLike } from './types';\nimport type { PromptCacheTtl } from '@/messages/cache';\nimport {\n OPENAI_RESPONSES_REPLAY_POSITIONS_KEY,\n projectOpenAIResponsesToolMessageContent,\n projectToolStreamContentForProvider,\n} from '@/messages/core';\nimport {\n buildAnthropicCacheControl,\n resolvePromptCacheTtl,\n stripAnthropicCacheControl,\n stripBedrockCacheControl,\n} from '@/messages/cache';\nimport {\n STREAMED_TOOL_CALL_ADAPTER_METADATA_KEY,\n OPENAI_CHAT_SEQUENTIAL_STREAMED_TOOL_CALL_ADAPTER,\n} from '@/tools/streamedToolCallSeals';\nimport { isReasoningModel, _convertMessagesToOpenAIParams } from './utils';\nimport { INTENT_ARG, isIntentLabelProperty } from '@/tools/intentArg';\nimport { smoothStream, resolveStreamDelay } from '@/llm/stream/smoother';\nimport {\n hasReasoningKwargs,\n hasToolCallChunks,\n getReasoningKwargsText,\n} from '@/llm/stream/chunkAdapters';\nimport { dropRepeatedScalarMetadata } from './streamMetadata';\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nconst iife = <T>(fn: () => T) => fn();\n\nexport function isHeaders(headers: unknown): headers is Headers {\n return (\n typeof Headers !== 'undefined' &&\n headers !== null &&\n typeof headers === 'object' &&\n Object.prototype.toString.call(headers) === '[object Headers]'\n );\n}\n\nexport function normalizeHeaders(\n headers: HeadersLike\n): Record<string, HeaderValue | readonly HeaderValue[]> {\n const output = iife(() => {\n // If headers is a Headers instance\n if (isHeaders(headers)) {\n return headers;\n }\n // If headers is an array of [key, value] pairs\n else if (Array.isArray(headers)) {\n return new Headers(headers);\n }\n // If headers is a NullableHeaders-like object (has 'values' property that is a Headers)\n else if (\n typeof headers === 'object' &&\n headers !== null &&\n 'values' in headers &&\n isHeaders(headers.values)\n ) {\n return headers.values;\n }\n // If headers is a plain object\n else if (typeof headers === 'object' && headers !== null) {\n const entries: [string, string][] = Object.entries(headers)\n .filter(([, v]) => typeof v === 'string')\n .map(([k, v]) => [k, v as string]);\n return new Headers(entries);\n }\n return new Headers();\n });\n\n return Object.fromEntries(output.entries());\n}\n\ntype OpenAICoreRequestOptions = OpenAIClient.RequestOptions;\ntype OpenAICompletionParam =\n OpenAIClient.Chat.Completions.ChatCompletionMessageParam;\ntype OpenAIClientConfig = NonNullable<\n ConstructorParameters<typeof OpenAIClient>[0]\n>;\ntype LibreChatOpenAIFields = t.ChatOpenAIFields & {\n _lc_stream_delay?: number;\n includeReasoningContent?: boolean;\n includeReasoningDetails?: boolean;\n convertReasoningDetailsToContent?: boolean;\n preserveToolCacheControl?: boolean;\n responsesPromptCache?: boolean;\n responsesPromptCacheTtl?: PromptCacheTtl;\n promptCacheExplicit?: boolean;\n safety_identifier?: string;\n};\ntype LibreChatAzureOpenAIFields = t.AzureOpenAIInput & {\n _lc_stream_delay?: number;\n promptCacheExplicit?: boolean;\n safety_identifier?: string;\n};\ntype ReasoningCallOptions = {\n reasoning?: OpenAIClient.Reasoning;\n reasoningEffort?: OpenAIClient.Reasoning['effort'];\n};\ntype OpenAIDeltaWithLibreChatFields = Record<string, unknown> & {\n reasoning?: unknown;\n reasoning_details?: unknown;\n provider_specific_fields?: unknown;\n};\ntype OpenAIClientOwner = {\n client?: OpenAIClient;\n clientConfig: OpenAIClientConfig;\n timeout?: number;\n};\ntype AbortableOpenAIClient = CustomOpenAIClient | CustomAzureOpenAIClient;\ntype OpenAIClientDelegate = {\n client?: AbortableOpenAIClient;\n _getClientOptions(\n options: OpenAICoreRequestOptions | undefined\n ): OpenAICoreRequestOptions;\n};\ntype OpenAIChatCompletion = OpenAIClient.Chat.Completions.ChatCompletion;\ntype OpenAIChatCompletionChunk =\n OpenAIClient.Chat.Completions.ChatCompletionChunk;\ntype OpenAIChatCompletionStreamItem =\n | OpenAIChatCompletionChunk\n | {\n event: string;\n data?: unknown;\n };\ntype OpenAIChatCompletionRequest =\n | OpenAIClient.Chat.ChatCompletionCreateParamsStreaming\n | OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming;\ntype OpenAIChatCompletionResult =\n | AsyncIterable<OpenAIChatCompletionChunk>\n | OpenAIChatCompletion;\ntype PromptTokensDetailsWithCacheWrite = NonNullable<\n OpenAIClient.Completions.CompletionUsage['prompt_tokens_details']\n> & {\n cache_write_tokens?: number;\n};\ntype OpenAIChatCompletionRetry = (\n request: OpenAIChatCompletionRequest,\n requestOptions?: OpenAICoreRequestOptions\n) => Promise<\n AsyncIterable<OpenAIChatCompletionStreamItem> | OpenAIChatCompletion\n>;\ntype OpenAIManagedRequestFields = {\n promptCacheExplicit?: boolean;\n safetyIdentifier?: string;\n};\ntype OpenAIManagedRequestParams = {\n prompt_cache_options?: {\n mode: 'explicit';\n ttl: '30m';\n };\n safety_identifier?: string;\n};\n\nfunction stripResponsesToolCacheControl<T>(tools: T): T {\n if (!Array.isArray(tools)) {\n return tools;\n }\n\n return tools.map((tool) => {\n if (tool == null || typeof tool !== 'object') {\n return tool;\n }\n const clone = { ...(tool as Record<string, unknown>) };\n delete clone.cache_control;\n if (\n clone.extras != null &&\n typeof clone.extras === 'object' &&\n !Array.isArray(clone.extras)\n ) {\n clone.extras = { ...(clone.extras as Record<string, unknown>) };\n delete (clone.extras as Record<string, unknown>).cache_control;\n }\n return clone;\n }) as T;\n}\n\nfunction projectOpenAIResponsesProviderMessages(\n messages: BaseMessage[]\n): BaseMessage[] {\n return projectOpenAIResponsesToolMessageContent(\n stripAnthropicCacheControl(\n stripBedrockCacheControl(projectToolStreamContentForProvider(messages))\n )\n );\n}\n\ntype ResponsesRequest =\n | OpenAIClient.Responses.ResponseCreateParamsStreaming\n | OpenAIClient.Responses.ResponseCreateParamsNonStreaming;\ntype ResponsesResult =\n | AsyncIterable<OpenAIClient.Responses.ResponseStreamEvent>\n | OpenAIClient.Responses.Response;\ntype ResponsesStreamChunkOptions = {\n promptIndex?: number;\n signal?: AbortSignal;\n};\ntype CacheableChatPart = {\n type: 'text' | 'image_url' | 'input_audio' | 'file' | 'refusal';\n prompt_cache_breakpoint?: { mode: 'explicit' };\n [key: string]: unknown;\n};\ntype CacheableResponsePart = (\n | OpenAIClient.Responses.ResponseInputText\n | OpenAIClient.Responses.ResponseInputImage\n | OpenAIClient.Responses.ResponseInputFile\n) & {\n prompt_cache_breakpoint?: { mode: 'explicit' };\n};\n// `Omit` before re-adding `input_tokens_details` as optional matters: the SDK's own\n// `ResponseUsage` declares it required (true for OpenAI itself), so a plain intersection\n// would keep it required in the merged type despite the `?:` here — masking, at the type\n// level, that OpenAI-*compatible* servers (e.g. mlx_vlm.server) may omit it entirely.\n// Mirrors `CompletionUsageWithCacheWrite`'s handling of the analogous Completions API field.\ntype ResponsesUsageWithCacheWrite = Omit<\n OpenAIClient.Responses.ResponseUsage,\n 'input_tokens_details'\n> & {\n input_tokens_details?: OpenAIClient.Responses.ResponseUsage['input_tokens_details'] & {\n cache_write_tokens?: number;\n };\n};\nconst CACHE_WRITE_METADATA_KEY = '__librechat_cache_write_tokens';\n\nfunction applyManagedRequestParams<T extends object>(\n params: T,\n fields: OpenAIManagedRequestFields\n): T & OpenAIManagedRequestParams {\n return {\n ...params,\n ...(fields.promptCacheExplicit === true && {\n prompt_cache_options: {\n mode: 'explicit' as const,\n ttl: '30m' as const,\n },\n }),\n ...(fields.safetyIdentifier != null && {\n safety_identifier: fields.safetyIdentifier,\n }),\n };\n}\n\nfunction isCacheableChatPart(part: unknown): part is CacheableChatPart {\n if (typeof part !== 'object' || part == null || !('type' in part)) {\n return false;\n }\n return (\n part.type === 'text' ||\n part.type === 'image_url' ||\n part.type === 'input_audio' ||\n part.type === 'file' ||\n part.type === 'refusal'\n );\n}\n\nfunction canAddChatBreakpoint(\n message: OpenAIClient.Chat.Completions.ChatCompletionMessageParam\n): boolean {\n if (\n message.role !== 'system' &&\n message.role !== 'developer' &&\n message.role !== 'user' &&\n message.role !== 'assistant' &&\n message.role !== 'tool'\n ) {\n return false;\n }\n if (typeof message.content === 'string') {\n return message.content.length > 0;\n }\n return (\n Array.isArray(message.content) &&\n message.content.some((part) => isCacheableChatPart(part))\n );\n}\n\nfunction addChatBreakpoint(\n message: OpenAIClient.Chat.Completions.ChatCompletionMessageParam\n): OpenAIClient.Chat.Completions.ChatCompletionMessageParam {\n if (!canAddChatBreakpoint(message)) {\n return message;\n }\n\n if (typeof message.content === 'string') {\n return {\n ...message,\n content: [\n {\n type: 'text',\n text: message.content,\n prompt_cache_breakpoint: { mode: 'explicit' },\n },\n ],\n } as unknown as OpenAIClient.Chat.Completions.ChatCompletionMessageParam;\n }\n if (!Array.isArray(message.content) || message.content.length === 0) {\n return message;\n }\n\n const content = [...message.content] as unknown as CacheableChatPart[];\n let index = content.length - 1;\n while (index >= 0 && !isCacheableChatPart(content[index])) {\n index--;\n }\n if (index < 0) {\n return message;\n }\n content[index] = {\n ...content[index],\n prompt_cache_breakpoint: { mode: 'explicit' },\n };\n return {\n ...message,\n content,\n } as unknown as OpenAIClient.Chat.Completions.ChatCompletionMessageParam;\n}\n\nfunction selectCacheBreakpointIndexes(\n roles: Array<string | undefined>,\n cacheable: boolean[]\n): number[] {\n let instructionIndex = -1;\n let latestUserIndex = -1;\n for (let index = 0; index < roles.length; index++) {\n const role = roles[index];\n if ((role === 'system' || role === 'developer') && cacheable[index]) {\n instructionIndex = index;\n }\n if (role === 'user') {\n latestUserIndex = index;\n }\n }\n\n const indexes = new Set<number>();\n if (instructionIndex >= 0) {\n indexes.add(instructionIndex);\n }\n for (let index = latestUserIndex - 1; index >= 0; index--) {\n if (cacheable[index]) {\n indexes.add(index);\n break;\n }\n }\n return [...indexes];\n}\n\n/** @internal */\nexport function addChatCacheBreakpoints(\n messages: OpenAIClient.Chat.Completions.ChatCompletionMessageParam[]\n): OpenAIClient.Chat.Completions.ChatCompletionMessageParam[] {\n const indexes = new Set(\n selectCacheBreakpointIndexes(\n messages.map((message) => message.role),\n messages.map((message) => canAddChatBreakpoint(message))\n )\n );\n return messages.map((message, index) =>\n indexes.has(index) ? addChatBreakpoint(message) : message\n );\n}\n\nfunction isResponseMessage(\n item: OpenAIClient.Responses.ResponseInputItem\n): item is OpenAIClient.Responses.ResponseInputItem.Message {\n return item.type === 'message';\n}\n\nfunction isResponseInputRole(role: string): boolean {\n return role === 'system' || role === 'developer' || role === 'user';\n}\n\n/** Only `input_text`/`input_image`/`input_file` accept a Responses breakpoint;\n * `output_text`/`refusal` (replayed assistant blocks) are rejected with a 400. */\nfunction isCacheableResponsePart(part: unknown): part is CacheableResponsePart {\n if (typeof part !== 'object' || part == null || !('type' in part)) {\n return false;\n }\n return (\n part.type === 'input_text' ||\n part.type === 'input_image' ||\n part.type === 'input_file'\n );\n}\n\nfunction addResponseBreakpoint(\n item: OpenAIClient.Responses.ResponseInputItem\n): OpenAIClient.Responses.ResponseInputItem {\n if (!isResponseMessage(item)) {\n return item;\n }\n const rawContent = item.content as\n | string\n | OpenAIClient.Responses.ResponseInputMessageContentList;\n if (typeof rawContent === 'string') {\n if (rawContent.length === 0) {\n return item;\n }\n return {\n ...item,\n content: [\n {\n type: 'input_text',\n text: rawContent,\n prompt_cache_breakpoint: { mode: 'explicit' },\n },\n ],\n } as OpenAIClient.Responses.ResponseInputItem;\n }\n if (!Array.isArray(rawContent) || rawContent.length === 0) {\n return item;\n }\n\n const content = [...rawContent];\n let index = content.length - 1;\n while (index >= 0 && !isCacheableResponsePart(content[index])) {\n index--;\n }\n if (index < 0) {\n return item;\n }\n content[index] = {\n ...(content[index] as CacheableResponsePart),\n prompt_cache_breakpoint: { mode: 'explicit' },\n };\n return { ...item, content };\n}\n\n/** @internal */\nexport function addResponseCacheBreakpoints(\n input: OpenAIClient.Responses.ResponseCreateParams['input']\n): OpenAIClient.Responses.ResponseCreateParams['input'] {\n if (!Array.isArray(input)) {\n return input;\n }\n const indexes = new Set(\n selectCacheBreakpointIndexes(\n input.map((item) => (isResponseMessage(item) ? item.role : undefined)),\n input.map((item) => {\n if (!isResponseMessage(item)) {\n return false;\n }\n /** Only input roles take a Responses breakpoint. Assistant/tool turns\n * carry output content (string or output_text) that the API rejects\n * under an input marker, so they're never eligible. */\n if (!isResponseInputRole(item.role)) {\n return false;\n }\n const content = item.content as\n | string\n | OpenAIClient.Responses.ResponseInputMessageContentList;\n return typeof content === 'string'\n ? content.length > 0\n : Array.isArray(content) &&\n content.some((part) => isCacheableResponsePart(part));\n })\n )\n );\n return input.map((item, index) =>\n indexes.has(index) ? addResponseBreakpoint(item) : item\n );\n}\n\n/** @internal */\nexport function shouldIncludeEncryptedReasoning(\n model: string,\n params: {\n store?: boolean | null;\n reasoning?: unknown;\n }\n): boolean {\n const reasoningContext = (\n params.reasoning as\n | { context?: 'auto' | 'current_turn' | 'all_turns' }\n | undefined\n )?.context;\n return (\n /^gpt-5\\.6(?:-|$)/i.test(model) &&\n (params.store === false || reasoningContext !== 'current_turn')\n );\n}\n\nexport function getCacheWriteTokens(message: BaseMessage): number | undefined {\n const responseMetadata = message.response_metadata as {\n usage?: ResponsesUsageWithCacheWrite;\n metadata?: Record<string, string>;\n };\n const reported =\n responseMetadata.usage?.input_tokens_details?.cache_write_tokens;\n if (reported != null) {\n return reported;\n }\n const serialized = responseMetadata.metadata?.[CACHE_WRITE_METADATA_KEY];\n if (serialized == null) {\n return;\n }\n const parsed = Number(serialized);\n return Number.isFinite(parsed) ? parsed : undefined;\n}\n\nexport function attachCacheWriteUsage(message: BaseMessage): void {\n const cacheWriteTokens = getCacheWriteTokens(message);\n if (\n cacheWriteTokens == null ||\n !isAIMessage(message) ||\n message.usage_metadata == null\n ) {\n return;\n }\n message.usage_metadata.input_token_details = {\n ...message.usage_metadata.input_token_details,\n cache_creation: cacheWriteTokens,\n };\n const responseMetadata = message.response_metadata as {\n metadata?: Record<string, string>;\n };\n if (responseMetadata.metadata?.[CACHE_WRITE_METADATA_KEY] == null) {\n return;\n }\n const metadata = { ...responseMetadata.metadata };\n delete metadata[CACHE_WRITE_METADATA_KEY];\n message.response_metadata = {\n ...message.response_metadata,\n metadata,\n };\n}\n\nexport function attachCacheWriteMetadata(\n response: OpenAIClient.Responses.Response\n): OpenAIClient.Responses.Response {\n const usage = response.usage as ResponsesUsageWithCacheWrite | undefined;\n const cacheWriteTokens = usage?.input_tokens_details?.cache_write_tokens;\n if (cacheWriteTokens == null) {\n return response;\n }\n return {\n ...response,\n metadata: {\n ...(response.metadata ?? {}),\n [CACHE_WRITE_METADATA_KEY]: String(cacheWriteTokens),\n },\n };\n}\n\nfunction isResponsesStream(\n result: ResponsesResult\n): result is AsyncIterable<OpenAIClient.Responses.ResponseStreamEvent> {\n return Symbol.asyncIterator in result;\n}\n\nconst RESPONSES_REPLAY_OUTPUT_ITEM_TYPES = new Set([\n 'local_shell_call_output',\n 'shell_call_output',\n 'apply_patch_call_output',\n 'program_output',\n]);\n\nfunction isResponsesReplayOutputItem(item: unknown): boolean {\n return (\n typeof item === 'object' &&\n item != null &&\n 'type' in item &&\n typeof item.type === 'string' &&\n RESPONSES_REPLAY_OUTPUT_ITEM_TYPES.has(item.type)\n );\n}\n\n/**\n * LangChain's Responses converter places the authoritative terminal output in\n * response_metadata.output. Its chunk merge has no way to delete provisional\n * tool_outputs or replay-position sidecars, so remove those preemption-only\n * captures once that terminal output arrives. An interrupted stream has no\n * terminal chunk and keeps the captures for replay.\n */\nclass ResponsesReplayAIMessageChunk extends AIMessageChunk {\n override get lc_id(): string[] {\n return [...this.lc_namespace, AIMessageChunk.lc_name()];\n }\n\n override concat(chunk: AIMessageChunk): this {\n const combined = super.concat(chunk);\n if (!Array.isArray(chunk.response_metadata.output)) {\n return combined;\n }\n delete combined.additional_kwargs[OPENAI_RESPONSES_REPLAY_POSITIONS_KEY];\n const toolOutputs = combined.additional_kwargs.tool_outputs;\n if (!Array.isArray(toolOutputs)) {\n return combined;\n }\n const retainedToolOutputs = toolOutputs.filter(\n (item) => !isResponsesReplayOutputItem(item)\n );\n if (retainedToolOutputs.length === toolOutputs.length) {\n return combined;\n }\n if (retainedToolOutputs.length > 0) {\n combined.additional_kwargs.tool_outputs = retainedToolOutputs;\n } else {\n delete combined.additional_kwargs.tool_outputs;\n }\n return combined;\n }\n}\n\nfunction makeResponsesReplayAggregationSafe(\n chunk: ChatGenerationChunk\n): ChatGenerationChunk {\n if (!AIMessageChunk.isInstance(chunk.message)) {\n return chunk;\n }\n const message = chunk.message;\n chunk.message = new ResponsesReplayAIMessageChunk({\n id: message.id,\n name: message.name,\n content: message.content,\n additional_kwargs: message.additional_kwargs,\n response_metadata: message.response_metadata,\n tool_calls: message.tool_calls,\n invalid_tool_calls: message.invalid_tool_calls,\n tool_call_chunks: message.tool_call_chunks,\n usage_metadata: message.usage_metadata,\n });\n return chunk;\n}\n\nfunction remapResponsesTextBlockIndex(\n chunk: ChatGenerationChunk,\n event: OpenAIClient.Responses.ResponseStreamEvent,\n textBlockIndices: Map<string, number>\n): void {\n const position = iife(() => {\n if (\n event.type === 'response.output_text.delta' ||\n event.type === 'response.output_text.annotation.added'\n ) {\n return {\n contentIndex: event.content_index,\n outputIndex: event.output_index,\n };\n }\n if (\n event.type === 'response.output_item.added' &&\n event.item.type === 'message'\n ) {\n return { contentIndex: 0, outputIndex: event.output_index };\n }\n return undefined;\n });\n if (position == null || !Array.isArray(chunk.message.content)) {\n return;\n }\n const key = `${position.outputIndex}:${position.contentIndex}`;\n let blockIndex = textBlockIndices.get(key);\n if (blockIndex == null) {\n blockIndex = textBlockIndices.size;\n textBlockIndices.set(key, blockIndex);\n }\n const content = chunk.message.content.map((block) =>\n typeof block === 'object' && block.type === 'text'\n ? { ...block, index: blockIndex }\n : block\n );\n chunk.message.content = content;\n chunk.message.lc_kwargs.content = content;\n}\n\nfunction convertDroppedResponsesReplayOutput(\n event: OpenAIClient.Responses.ResponseStreamEvent\n): ChatGenerationChunk | null {\n if (event.type !== 'response.output_item.done') {\n return null;\n }\n if (event.item.type === 'reasoning') {\n // Added/summary events already stream id, type, and summary. Only merge\n // terminal fields here so chunk concatenation does not duplicate summary.\n return new ChatGenerationChunk({\n text: '',\n message: new AIMessageChunk({\n content: [],\n additional_kwargs: {\n reasoning: {\n status: event.item.status,\n ...(typeof event.item.encrypted_content === 'string'\n ? { encrypted_content: event.item.encrypted_content }\n : {}),\n },\n },\n response_metadata: { model_provider: 'openai' },\n }),\n });\n }\n if (!RESPONSES_REPLAY_OUTPUT_ITEM_TYPES.has(event.item.type)) {\n return null;\n }\n return new ChatGenerationChunk({\n text: '',\n message: new AIMessageChunk({\n content: [],\n additional_kwargs: { tool_outputs: [event.item] },\n response_metadata: { model_provider: 'openai' },\n }),\n });\n}\n\nfunction attachResponsesReplayPosition(\n chunk: ChatGenerationChunk,\n event: OpenAIClient.Responses.ResponseStreamEvent,\n seenPositions: Set<string>\n): void {\n let position: ResponsesReplayPosition | undefined;\n if (event.type === 'response.output_text.delta' && event.delta.length > 0) {\n position = {\n contentIndex: event.content_index,\n itemId: event.item_id,\n kind: 'text',\n outputIndex: event.output_index,\n };\n } else if (\n event.type === 'response.output_item.added' &&\n event.item.type === 'message' &&\n typeof event.item.id === 'string' &&\n event.item.id.length > 0\n ) {\n position = {\n itemId: event.item.id,\n kind: 'message',\n outputIndex: event.output_index,\n };\n } else if (\n event.type === 'response.output_item.added' &&\n event.item.type === 'reasoning' &&\n typeof event.item.id === 'string' &&\n event.item.id.length > 0\n ) {\n position = {\n itemId: event.item.id,\n kind: 'reasoning',\n outputIndex: event.output_index,\n };\n } else if (\n event.type === 'response.output_item.done' &&\n (RESPONSES_REPLAY_OUTPUT_ITEM_TYPES.has(event.item.type) ||\n Array.isArray(chunk.message.additional_kwargs.tool_outputs))\n ) {\n let itemId: string | undefined;\n if (typeof event.item.id === 'string' && event.item.id.length > 0) {\n itemId = event.item.id;\n } else if (\n 'call_id' in event.item &&\n typeof event.item.call_id === 'string' &&\n event.item.call_id.length > 0\n ) {\n itemId = event.item.call_id;\n }\n if (itemId != null) {\n position = {\n itemId,\n kind: 'output',\n outputIndex: event.output_index,\n };\n }\n }\n if (position == null) {\n return;\n }\n const positionKey = `${position.kind}:${position.itemId}:${position.outputIndex}:${position.contentIndex ?? ''}`;\n if (seenPositions.has(positionKey)) {\n return;\n }\n seenPositions.add(positionKey);\n const existing = chunk.message.additional_kwargs[\n OPENAI_RESPONSES_REPLAY_POSITIONS_KEY\n ] as unknown;\n const additionalKwargs = {\n ...chunk.message.additional_kwargs,\n [OPENAI_RESPONSES_REPLAY_POSITIONS_KEY]: [\n ...(Array.isArray(existing) ? existing : []),\n position,\n ],\n };\n chunk.message.additional_kwargs = additionalKwargs;\n chunk.message.lc_kwargs.additional_kwargs = additionalKwargs;\n}\n\nasync function* convertLibreChatResponsesStream(\n stream: AsyncIterable<OpenAIClient.Responses.ResponseStreamEvent>,\n options: ResponsesStreamChunkOptions,\n runManager?: CallbackManagerForLLMRun\n): AsyncGenerator<ChatGenerationChunk> {\n const seenReplayPositions = new Set<string>();\n const responsesTextBlockIndices = new Map<string, number>();\n try {\n for await (const event of stream) {\n options.signal?.throwIfAborted();\n const convertedChunk =\n convertResponsesDeltaToChatGenerationChunk(event) ??\n convertDroppedResponsesReplayOutput(event);\n if (convertedChunk == null) {\n continue;\n }\n const chunk = makeResponsesReplayAggregationSafe(convertedChunk);\n remapResponsesTextBlockIndex(chunk, event, responsesTextBlockIndices);\n attachResponsesReplayPosition(chunk, event, seenReplayPositions);\n attachCacheWriteUsage(chunk.message);\n await runManager?.handleLLMNewToken(\n chunk.text || '',\n {\n prompt: options.promptIndex ?? 0,\n completion: 0,\n },\n undefined,\n undefined,\n undefined,\n { chunk }\n );\n yield chunk;\n }\n } catch (e) {\n throw wrapOpenAIClientError(e);\n }\n}\n\nfunction createUsageMetadata(\n usage?: OpenAIClient.Completions.CompletionUsage\n): UsageMetadata {\n const usageMetadata: UsageMetadata = {\n input_tokens: usage?.prompt_tokens ?? 0,\n output_tokens: usage?.completion_tokens ?? 0,\n total_tokens: usage?.total_tokens ?? 0,\n };\n\n if (usage == null) {\n return usageMetadata;\n }\n\n const inputTokenDetails: UsageMetadata['input_token_details'] = {};\n const outputTokenDetails: UsageMetadata['output_token_details'] = {};\n let hasInputTokenDetails = false;\n let hasOutputTokenDetails = false;\n const promptTokenDetails = usage.prompt_tokens_details as\n | PromptTokensDetailsWithCacheWrite\n | undefined;\n const audioInputTokens = promptTokenDetails?.audio_tokens;\n const cachedInputTokens = promptTokenDetails?.cached_tokens;\n const cacheWriteInputTokens = promptTokenDetails?.cache_write_tokens;\n const audioOutputTokens = usage.completion_tokens_details?.audio_tokens;\n const reasoningOutputTokens =\n usage.completion_tokens_details?.reasoning_tokens;\n\n if (audioInputTokens != null) {\n inputTokenDetails.audio = audioInputTokens;\n hasInputTokenDetails = true;\n }\n if (cachedInputTokens != null) {\n inputTokenDetails.cache_read = cachedInputTokens;\n hasInputTokenDetails = true;\n }\n if (cacheWriteInputTokens != null) {\n inputTokenDetails.cache_creation = cacheWriteInputTokens;\n hasInputTokenDetails = true;\n }\n if (audioOutputTokens != null) {\n outputTokenDetails.audio = audioOutputTokens;\n hasOutputTokenDetails = true;\n }\n if (reasoningOutputTokens != null) {\n outputTokenDetails.reasoning = reasoningOutputTokens;\n hasOutputTokenDetails = true;\n }\n\n if (hasInputTokenDetails) {\n usageMetadata.input_token_details = inputTokenDetails;\n }\n if (hasOutputTokenDetails) {\n usageMetadata.output_token_details = outputTokenDetails;\n }\n\n return usageMetadata;\n}\n\nfunction getExposedOpenAIClient(\n completions: OpenAIClientDelegate,\n responses: OpenAIClientDelegate,\n preferResponses: boolean\n): AbortableOpenAIClient {\n const responsesClient = responses.client;\n if (responsesClient?.abortHandler != null) {\n return responsesClient;\n }\n const completionsClient = completions.client;\n if (completionsClient?.abortHandler != null) {\n return completionsClient;\n }\n\n const delegate = preferResponses ? responses : completions;\n delegate._getClientOptions(undefined);\n return delegate.client as AbortableOpenAIClient;\n}\n\nfunction getReasoningParams(\n baseReasoning: OpenAIClient.Reasoning | undefined,\n options?: ReasoningCallOptions\n): OpenAIClient.Reasoning | undefined {\n let reasoning: OpenAIClient.Reasoning | undefined;\n if (baseReasoning !== undefined) {\n reasoning = {\n ...reasoning,\n ...baseReasoning,\n };\n }\n if (options?.reasoning !== undefined) {\n reasoning = {\n ...reasoning,\n ...options.reasoning,\n };\n }\n if (\n options?.reasoningEffort !== undefined &&\n reasoning?.effort === undefined\n ) {\n reasoning = {\n ...reasoning,\n effort: options.reasoningEffort,\n };\n }\n return reasoning;\n}\n\nfunction getGatedReasoningParams(\n model: string,\n baseReasoning: OpenAIClient.Reasoning | undefined,\n options?: ReasoningCallOptions\n): OpenAIClient.Reasoning | undefined {\n if (!isReasoningModel(model)) {\n return;\n }\n return getReasoningParams(baseReasoning, options);\n}\n\nfunction isObject(value: unknown): value is object {\n return typeof value === 'object' && value !== null;\n}\n\nfunction isOpenAIChatCompletionChunk(\n value: unknown\n): value is OpenAIChatCompletionChunk {\n if (!isObject(value)) {\n return false;\n }\n\n // Intentionally loose: downstream handlers already tolerate empty choices.\n const { choices } = value as { choices?: unknown };\n return Array.isArray(choices);\n}\n\nfunction getOpenAIChatCompletionChunk(\n value: OpenAIChatCompletionStreamItem\n): OpenAIChatCompletionChunk | undefined {\n if (isOpenAIChatCompletionChunk(value)) {\n return value;\n }\n\n const { data } = value;\n if (isOpenAIChatCompletionChunk(data)) {\n return data;\n }\n\n return undefined;\n}\n\nasync function* filterOpenAIChatCompletionStream(\n stream: AsyncIterable<OpenAIChatCompletionStreamItem>\n): AsyncGenerator<OpenAIChatCompletionChunk> {\n for await (const item of stream) {\n const chunk = getOpenAIChatCompletionChunk(item);\n if (chunk == null) {\n continue;\n }\n yield chunk;\n }\n}\n\nasync function completionWithFilteredOpenAIStream(\n request: OpenAIChatCompletionRequest,\n requestOptions: OpenAICoreRequestOptions | undefined,\n completionWithRetry: OpenAIChatCompletionRetry\n): Promise<OpenAIChatCompletionResult> {\n if (request.stream !== true) {\n return (await completionWithRetry(\n request,\n requestOptions\n )) as OpenAIChatCompletion;\n }\n\n const stream = await completionWithRetry(request, requestOptions);\n return filterOpenAIChatCompletionStream(\n stream as AsyncIterable<OpenAIChatCompletionStreamItem>\n );\n}\n\nfunction attachLibreChatDeltaFields(\n chunk: BaseMessageChunk,\n delta: Record<string, unknown>\n): BaseMessageChunk {\n if (!AIMessageChunk.isInstance(chunk)) {\n return chunk;\n }\n\n const libreChatDelta = delta as OpenAIDeltaWithLibreChatFields;\n if (\n libreChatDelta.reasoning != null &&\n chunk.additional_kwargs.reasoning_content == null\n ) {\n chunk.additional_kwargs.reasoning_content = libreChatDelta.reasoning;\n }\n if (libreChatDelta.reasoning_details != null) {\n chunk.additional_kwargs.reasoning_details =\n libreChatDelta.reasoning_details;\n }\n if (libreChatDelta.provider_specific_fields != null) {\n chunk.additional_kwargs.provider_specific_fields =\n libreChatDelta.provider_specific_fields;\n }\n return chunk;\n}\n\nfunction attachLibreChatMessageFields(\n message: BaseMessage,\n rawMessage: Record<string, unknown>\n): BaseMessage {\n if (!isAIMessage(message)) {\n return message;\n }\n if (\n rawMessage.reasoning != null &&\n message.additional_kwargs.reasoning_content == null\n ) {\n message.additional_kwargs.reasoning_content = rawMessage.reasoning;\n }\n if (rawMessage.reasoning_details != null) {\n message.additional_kwargs.reasoning_details = rawMessage.reasoning_details;\n }\n if (rawMessage.provider_specific_fields != null) {\n message.additional_kwargs.provider_specific_fields =\n rawMessage.provider_specific_fields;\n }\n return message;\n}\n\nfunction getCustomOpenAIClientOptions(\n owner: OpenAIClientOwner,\n options?: OpenAICoreRequestOptions\n): OpenAICoreRequestOptions {\n if (!(owner.client as OpenAIClient | undefined)) {\n const openAIEndpointConfig: t.OpenAIEndpointConfig = {\n baseURL: owner.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n const params = {\n ...owner.clientConfig,\n baseURL: endpoint,\n timeout: owner.timeout,\n maxRetries: 0,\n };\n if (params.baseURL == null) {\n delete params.baseURL;\n }\n\n params.defaultHeaders = getHeadersWithUserAgent(params.defaultHeaders);\n owner.client = new CustomOpenAIClient(params);\n }\n const requestOptions = {\n ...owner.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n return requestOptions;\n}\n\n/**\n * Classifies a generation chunk for the smoothing engine:\n * - splittable: plain visible text (string content equal to `chunk.text`, no\n * logprobs / finish_reason) — sliced adaptively at the pacing cadence.\n * ANY logprobs value blocks splitting here (this family only attaches\n * logprobs on request; the DeepSeek suite pins chunks with them staying\n * intact) — deliberately stricter than `stream/chunkAdapters.ts`, where\n * google-common's always-present empty logprobs must not block.\n * - atomic: text- or reasoning-bearing chunks whose metadata cannot survive\n * slicing — paced as one piece, never split (legacy parity: these were\n * emitted whole but still paced).\n * - passthrough: tool-call deltas, usage-only, finish_reason and other\n * metadata chunks — strict FIFO, zero delay.\n */\nexport function toSmoothItem(\n chunk: ChatGenerationChunk\n): SmoothItem<ChatGenerationChunk> {\n const { message } = chunk;\n const isMessageChunk = message instanceof AIMessageChunk;\n /** Chunks pairing visible text with a reasoning delta (reasoning_content,\n * reasoning summary, or OpenRouter reasoning_details) or with tool-call\n * deltas must pace whole: split pieces would each clone the same kwargs /\n * tool_call_chunks and downstream accumulation duplicates them per piece. */\n const splittable =\n Boolean(chunk.text) &&\n isMessageChunk &&\n typeof message.content === 'string' &&\n message.content === chunk.text &&\n chunk.generationInfo?.logprobs == null &&\n chunk.generationInfo?.finish_reason == null &&\n !hasReasoningKwargs(message) &&\n !hasToolCallChunks(message);\n\n if (splittable) {\n return {\n text: chunk.text,\n smooth: true,\n emit: (piece) => cloneGenerationChunkPiece(chunk, piece),\n };\n }\n\n const pacedText =\n chunk.text || (isMessageChunk ? getReasoningKwargsText(message) : '');\n if (pacedText !== '') {\n return {\n text: pacedText,\n smooth: true,\n atomic: true,\n emit: () => chunk,\n };\n }\n\n return { text: '', smooth: false, emit: () => chunk };\n}\n\n/**\n * Usage metadata, additional kwargs and response metadata survive only on\n * the first piece: the aggregator's dict merge concatenates string fields\n * and sums usage, so replication across pieces corrupts them. Unlike the\n * generic adapter, `generationInfo` stays on every piece — per-piece token\n * indices ride in it and `dropRepeatedScalarMetadata` owns repetition there.\n */\nfunction cloneGenerationChunkPiece(\n chunk: ChatGenerationChunk,\n piece: SmoothPiece\n): ChatGenerationChunk {\n if (piece.isFirst && piece.isLast) {\n return chunk;\n }\n const message = chunk.message as AIMessageChunk;\n return new ChatGenerationChunk({\n text: piece.text,\n generationInfo: chunk.generationInfo,\n message: new AIMessageChunk(\n Object.assign({}, message, {\n content: piece.text,\n usage_metadata: piece.isFirst ? message.usage_metadata : undefined,\n additional_kwargs: piece.isFirst ? message.additional_kwargs : {},\n response_metadata: piece.isFirst ? message.response_metadata : {},\n })\n ),\n });\n}\n\nexport async function emitStreamChunkCallback(\n chunk: ChatGenerationChunk,\n runManager?: CallbackManagerForLLMRun\n): Promise<void> {\n await runManager?.handleLLMNewToken(\n chunk.text,\n getStreamChunkTokenIndices(chunk),\n undefined,\n undefined,\n undefined,\n { chunk }\n );\n}\n\nfunction getStreamChunkTokenIndices(\n chunk: ChatGenerationChunk\n): { prompt: number; completion: number } | undefined {\n const prompt = chunk.generationInfo?.prompt;\n const completion = chunk.generationInfo?.completion;\n\n if (typeof prompt === 'number' && typeof completion === 'number') {\n return { prompt, completion };\n }\n\n return undefined;\n}\n\n/**\n * Adaptive smoothing adapter for the OpenAI chat-model family, layered over\n * the shared `smoothStream` engine. Keeps the historical signature so every\n * `_streamResponseChunks` call site is unchanged.\n *\n * `seenScalarMetadata`: when provided, de-duplicates repeated scalar metadata\n * just before emitting, so token callbacks and the yielded chunk observe the\n * same cleaned data. Omitted by callers that wrap this stream and finalize\n * downstream (e.g. `ChatOpenRouter`, which needs the raw `finish_reason` as\n * its flush signal and de-duplicates after its own processing).\n */\nasync function* delayStreamChunks(\n chunks: AsyncGenerator<ChatGenerationChunk>,\n delay?: number,\n signal?: AbortSignal,\n runManager?: CallbackManagerForLLMRun,\n seenScalarMetadata?: SeenScalarMetadata\n): AsyncGenerator<ChatGenerationChunk> {\n const source = (async function* (): AsyncGenerator<\n SmoothItem<ChatGenerationChunk>\n > {\n for await (const chunk of chunks) {\n yield toSmoothItem(chunk);\n }\n })();\n\n const smoothed = smoothStream({\n source,\n delayMs: delay != null && delay > 0 ? delay : 0,\n signal,\n });\n\n for await (const outputChunk of smoothed) {\n if (seenScalarMetadata != null) {\n dropRepeatedScalarMetadata(outputChunk, seenScalarMetadata);\n }\n await emitStreamChunkCallback(outputChunk, runManager);\n yield outputChunk;\n }\n}\n\nfunction createAbortHandler(controller: AbortController): () => void {\n return function (): void {\n controller.abort();\n };\n}\n/**\n * Formats a tool in either OpenAI format, or LangChain structured tool format\n * into an OpenAI tool format. If the tool is already in OpenAI format, return without\n * any changes. If it is in LangChain structured tool format, convert it to OpenAI tool format\n * using OpenAI's `zodFunction` util, falling back to `convertToOpenAIFunction` if the parameters\n * returned from the `zodFunction` util are not defined.\n *\n * @param {BindToolsInput} tool The tool to convert to an OpenAI tool.\n * @param {Object} [fields] Additional fields to add to the OpenAI tool.\n * @returns {ToolDefinition} The inputted tool in OpenAI tool format.\n */\n/**\n * OpenAI strict function schemas require every property to appear in\n * `required`. The optional `intent` label (see `tools/intentArg.ts`) is\n * deliberately NOT required — the same schema is callable from programmatic\n * tool calling — so a tool auto-marked `strict: true` (the non-streaming\n * `json_schema` structured-output path) would be rejected as invalid before\n * execution. That path never streams a live label anyway, so the\n * marker-identified property is dropped there; every other path keeps it.\n */\nfunction stripIntentFromStrictTools<T extends object>(params: T): T {\n const record = params as { tools?: unknown[] };\n const tools = record.tools;\n if (!Array.isArray(tools) || tools.length === 0) {\n return params;\n }\n const nextTools = tools.map((tool) => {\n const candidate = tool as {\n strict?: boolean;\n parameters?: { properties?: Record<string, unknown>; required?: unknown };\n function?: {\n strict?: boolean;\n parameters?: {\n properties?: Record<string, unknown>;\n required?: unknown;\n };\n };\n };\n /** Chat-completions tools nest under `function`; responses-API tools are flat. */\n const holder = candidate.function ?? candidate;\n if (holder.strict !== true) {\n return tool;\n }\n const parameters = holder.parameters;\n const properties = parameters?.properties;\n if (properties == null || !isIntentLabelProperty(properties[INTENT_ARG])) {\n return tool;\n }\n const required = Array.isArray(parameters?.required)\n ? (parameters.required as unknown[])\n : [];\n if (required.includes(INTENT_ARG)) {\n return tool;\n }\n const { [INTENT_ARG]: _omit, ...restProps } = properties;\n const nextParams = { ...parameters, properties: restProps };\n if (candidate.function != null) {\n return {\n ...candidate,\n function: { ...candidate.function, parameters: nextParams },\n };\n }\n return { ...candidate, parameters: nextParams };\n });\n if (nextTools.every((tool, index) => tool === tools[index])) {\n return params;\n }\n return { ...params, tools: nextTools } as T;\n}\n\nexport function _convertToOpenAITool(\n tool: BindToolsInput,\n fields?: {\n /**\n * If `true`, model output is guaranteed to exactly match the JSON Schema\n * provided in the function definition.\n */\n strict?: boolean;\n }\n): OpenAIClient.ChatCompletionTool {\n let toolDef: OpenAIClient.ChatCompletionTool | undefined;\n\n if (isLangChainTool(tool)) {\n toolDef = convertToOpenAITool(tool);\n } else {\n toolDef = tool as ToolDefinition;\n }\n\n if (fields?.strict !== undefined) {\n toolDef.function.strict = fields.strict;\n }\n\n return toolDef;\n}\nexport class CustomOpenAIClient extends OpenAIClient {\n abortHandler?: () => void;\n async fetchWithTimeout(\n url: RequestInfo,\n init: RequestInit | undefined,\n ms: number,\n controller: AbortController\n ): Promise<Response> {\n const { signal, ...options } = init || {};\n const handler = createAbortHandler(controller);\n this.abortHandler = handler;\n if (signal) signal.addEventListener('abort', handler, { once: true });\n\n const timeout = setTimeout(handler, ms);\n\n const fetchOptions = {\n signal: controller.signal as AbortSignal,\n ...options,\n };\n if (fetchOptions.method != null) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = fetchOptions.method.toUpperCase();\n }\n\n return (\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /** @ts-ignore */\n this.fetch.call(undefined, url, fetchOptions).finally(() => {\n clearTimeout(timeout);\n })\n );\n }\n}\nexport class CustomAzureOpenAIClient extends AzureOpenAIClient {\n abortHandler?: () => void;\n async fetchWithTimeout(\n url: RequestInfo,\n init: RequestInit | undefined,\n ms: number,\n controller: AbortController\n ): Promise<Response> {\n const { signal, ...options } = init || {};\n const handler = createAbortHandler(controller);\n this.abortHandler = handler;\n if (signal) signal.addEventListener('abort', handler, { once: true });\n\n const timeout = setTimeout(handler, ms);\n\n const fetchOptions = {\n signal: controller.signal as AbortSignal,\n ...options,\n };\n if (fetchOptions.method != null) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = fetchOptions.method.toUpperCase();\n }\n\n return (\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /** @ts-ignore */\n this.fetch.call(undefined, url, fetchOptions).finally(() => {\n clearTimeout(timeout);\n })\n );\n }\n}\n\nconst OFFICIAL_OPENAI_BASE_URL_PATTERN = /^https:\\/\\/api\\.openai\\.com(\\/|$)/;\n\n/**\n * Official OpenAI (api.openai.com) and Azure OpenAI Chat Completions streams\n * emit tool-call deltas strictly sequentially by index: once a delta for a\n * later index appears, a prior index's arguments never change. Stamping this\n * adapter lets the stream handler seal a prior call for eager execution the\n * moment the next call begins. OpenAI-compatible endpoints (custom baseURL)\n * must NOT be stamped — e.g. live Kimi/Moonshot streams revise prior-index\n * args after advancing — so callers gate on the wire endpoint, not the class.\n */\nfunction stampSequentialStreamedToolCallAdapter(\n message: BaseMessageChunk\n): BaseMessageChunk {\n if (\n message instanceof AIMessageChunk &&\n (message.tool_call_chunks?.length ?? 0) > 0\n ) {\n message.response_metadata = {\n ...message.response_metadata,\n [STREAMED_TOOL_CALL_ADAPTER_METADATA_KEY]:\n OPENAI_CHAT_SEQUENTIAL_STREAMED_TOOL_CALL_ADAPTER,\n };\n }\n return message;\n}\n\nfunction isOfficialOpenAIBaseURL(baseURL: string | null | undefined): boolean {\n // The OpenAI SDK falls back to OPENAI_BASE_URL when the client has no\n // explicit baseURL, so an unset constructor value can still route to an\n // OpenAI-compatible endpoint.\n const effectiveBaseURL =\n baseURL != null && baseURL !== '' ? baseURL : process.env.OPENAI_BASE_URL;\n if (effectiveBaseURL == null || effectiveBaseURL === '') {\n return true;\n }\n return OFFICIAL_OPENAI_BASE_URL_PATTERN.test(effectiveBaseURL);\n}\n\nconst AZURE_FIRST_PARTY_BASE_PATH_PATTERN =\n /^https:\\/\\/[^/]+\\.(openai\\.azure\\.com|cognitiveservices\\.azure\\.com|api\\.cognitive\\.microsoft\\.com)(:\\d+)?(\\/|$)/;\n\n/**\n * Azure OpenAI is first-party when requests resolve to an instance-name\n * endpoint or an *.openai.azure.com / *.cognitiveservices.azure.com /\n * regional *.api.cognitive.microsoft.com base path. A custom\n * `clientConfig.baseURL` or a non-Azure `azureOpenAIBasePath` routes through\n * a proxy or Azure-compatible endpoint whose stream contract is unknown, so\n * those are not stamped.\n */\nfunction isFirstPartyAzureEndpoint(args: {\n baseURL: string | null | undefined;\n azureOpenAIBasePath: string | undefined;\n}): boolean {\n if (args.baseURL != null && args.baseURL !== '') {\n return false;\n }\n if (args.azureOpenAIBasePath == null || args.azureOpenAIBasePath === '') {\n return true;\n }\n return AZURE_FIRST_PARTY_BASE_PATH_PATTERN.test(args.azureOpenAIBasePath);\n}\n\nclass LibreChatOpenAICompletions extends OriginalChatOpenAICompletions {\n private includeReasoningContent?: boolean;\n private includeReasoningDetails?: boolean;\n private convertReasoningDetailsToContent?: boolean;\n private preserveToolCacheControl?: boolean;\n private promptCacheExplicit?: boolean;\n private safetyIdentifier?: string;\n\n constructor(fields?: LibreChatOpenAIFields) {\n super(fields);\n this.includeReasoningContent = fields?.includeReasoningContent;\n this.includeReasoningDetails = fields?.includeReasoningDetails;\n this.convertReasoningDetailsToContent =\n fields?.convertReasoningDetailsToContent;\n this.preserveToolCacheControl = fields?.preserveToolCacheControl;\n this.promptCacheExplicit = fields?.promptCacheExplicit;\n this.safetyIdentifier = fields?.safety_identifier;\n }\n\n invocationParams(\n options?: this['ParsedCallOptions'],\n extra?: { streaming?: boolean }\n ): ReturnType<OriginalChatOpenAICompletions['invocationParams']> {\n return stripIntentFromStrictTools(\n applyManagedRequestParams(super.invocationParams(options, extra), {\n promptCacheExplicit: this.promptCacheExplicit,\n safetyIdentifier: this.safetyIdentifier,\n })\n );\n }\n\n protected _getReasoningParams(\n options?: this['ParsedCallOptions']\n ): OpenAIClient.Reasoning | undefined {\n return getReasoningParams(this.reasoning, options);\n }\n\n _getClientOptions(\n options?: OpenAICoreRequestOptions\n ): OpenAICoreRequestOptions {\n return getCustomOpenAIClientOptions(this, options);\n }\n\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsStreaming,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<AsyncIterable<OpenAIChatCompletionChunk>>;\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<OpenAIChatCompletion>;\n async completionWithRetry(\n request:\n | OpenAIClient.Chat.ChatCompletionCreateParamsStreaming\n | OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<AsyncIterable<OpenAIChatCompletionChunk> | OpenAIChatCompletion> {\n return completionWithFilteredOpenAIStream(\n this.promptCacheExplicit === true\n ? { ...request, messages: addChatCacheBreakpoints(request.messages) }\n : request,\n requestOptions,\n super.completionWithRetry.bind(this) as OpenAIChatCompletionRetry\n );\n }\n\n protected _convertCompletionsDeltaToBaseMessageChunk(\n delta: Record<string, unknown>,\n rawResponse: OpenAIClient.Chat.Completions.ChatCompletionChunk,\n defaultRole?: OpenAIClient.Chat.ChatCompletionRole\n ): BaseMessageChunk {\n const message = attachLibreChatDeltaFields(\n super._convertCompletionsDeltaToBaseMessageChunk(\n delta,\n rawResponse,\n defaultRole\n ),\n delta\n );\n if (isOfficialOpenAIBaseURL(this.clientConfig.baseURL)) {\n return stampSequentialStreamedToolCallAdapter(message);\n }\n return message;\n }\n\n protected _convertCompletionsMessageToBaseMessage(\n message: OpenAIClient.ChatCompletionMessage,\n rawResponse: OpenAIClient.ChatCompletion\n ): BaseMessage {\n return attachLibreChatMessageFields(\n super._convertCompletionsMessageToBaseMessage(message, rawResponse),\n message as unknown as Record<string, unknown>\n );\n }\n\n async _generate(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n if (\n this.includeReasoningContent !== true &&\n this.includeReasoningDetails !== true\n ) {\n return super._generate(messages, options, runManager);\n }\n\n options.signal?.throwIfAborted();\n const usageMetadata: Partial<UsageMetadata> = {};\n const params = this.invocationParams(options);\n const messagesMapped = _convertMessagesToOpenAIParams(\n messages,\n this.model,\n {\n includeReasoningContent: this.includeReasoningContent,\n includeReasoningDetails: this.includeReasoningDetails,\n convertReasoningDetailsToContent: this.convertReasoningDetailsToContent,\n preserveToolCacheControl: this.preserveToolCacheControl,\n }\n );\n\n if (params.stream === true) {\n const stream = this._streamResponseChunks(messages, options, runManager);\n const finalChunks = new Map<number, ChatGenerationChunk>();\n for await (const chunk of stream) {\n chunk.message.response_metadata = {\n ...chunk.generationInfo,\n ...chunk.message.response_metadata,\n };\n const index =\n typeof chunk.generationInfo?.completion === 'number'\n ? chunk.generationInfo.completion\n : 0;\n const existingChunk = finalChunks.get(index);\n if (existingChunk == null) {\n finalChunks.set(index, chunk);\n } else {\n finalChunks.set(index, existingChunk.concat(chunk));\n }\n }\n const generations = Array.from(finalChunks.entries())\n .sort(([aKey], [bKey]) => aKey - bKey)\n .map(([, value]) => value);\n const { functions, function_call } = this.invocationParams(options);\n const promptTokenUsage = await this._getEstimatedTokenCountFromPrompt(\n messages,\n functions,\n function_call\n );\n const completionTokenUsage =\n await this._getNumTokensFromGenerations(generations);\n usageMetadata.input_tokens = promptTokenUsage;\n usageMetadata.output_tokens = completionTokenUsage;\n usageMetadata.total_tokens = promptTokenUsage + completionTokenUsage;\n return {\n generations,\n llmOutput: {\n estimatedTokenUsage: {\n promptTokens: usageMetadata.input_tokens,\n completionTokens: usageMetadata.output_tokens,\n totalTokens: usageMetadata.total_tokens,\n },\n },\n };\n }\n\n const data = await this.completionWithRetry(\n {\n ...params,\n stream: false,\n messages: messagesMapped,\n },\n {\n signal: options.signal,\n ...options.options,\n }\n );\n const {\n completion_tokens: completionTokens,\n prompt_tokens: promptTokens,\n total_tokens: totalTokens,\n prompt_tokens_details: promptTokensDetails,\n completion_tokens_details: completionTokensDetails,\n } = data.usage ?? {};\n\n if (completionTokens != null) {\n usageMetadata.output_tokens =\n (usageMetadata.output_tokens ?? 0) + completionTokens;\n }\n if (promptTokens != null) {\n usageMetadata.input_tokens =\n (usageMetadata.input_tokens ?? 0) + promptTokens;\n }\n if (totalTokens != null) {\n usageMetadata.total_tokens =\n (usageMetadata.total_tokens ?? 0) + totalTokens;\n }\n const promptTokensDetailsWithCacheWrite = promptTokensDetails as\n | PromptTokensDetailsWithCacheWrite\n | undefined;\n if (\n promptTokensDetailsWithCacheWrite?.audio_tokens != null ||\n promptTokensDetailsWithCacheWrite?.cached_tokens != null ||\n promptTokensDetailsWithCacheWrite?.cache_write_tokens != null\n ) {\n usageMetadata.input_token_details = {\n ...(promptTokensDetailsWithCacheWrite.audio_tokens != null && {\n audio: promptTokensDetailsWithCacheWrite.audio_tokens,\n }),\n ...(promptTokensDetailsWithCacheWrite.cached_tokens != null && {\n cache_read: promptTokensDetailsWithCacheWrite.cached_tokens,\n }),\n ...(promptTokensDetailsWithCacheWrite.cache_write_tokens != null && {\n cache_creation: promptTokensDetailsWithCacheWrite.cache_write_tokens,\n }),\n };\n }\n if (\n completionTokensDetails?.audio_tokens != null ||\n completionTokensDetails?.reasoning_tokens != null\n ) {\n usageMetadata.output_token_details = {\n ...(completionTokensDetails.audio_tokens != null && {\n audio: completionTokensDetails.audio_tokens,\n }),\n ...(completionTokensDetails.reasoning_tokens != null && {\n reasoning: completionTokensDetails.reasoning_tokens,\n }),\n };\n }\n\n const generations: ChatGeneration[] = [];\n for (const part of data.choices) {\n const generation: ChatGeneration = {\n text: part.message.content ?? '',\n message: this._convertCompletionsMessageToBaseMessage(\n part.message,\n data\n ),\n };\n generation.generationInfo = {\n finish_reason: part.finish_reason,\n ...(part.logprobs ? { logprobs: part.logprobs } : {}),\n };\n if (isAIMessage(generation.message)) {\n generation.message.usage_metadata = usageMetadata as UsageMetadata;\n }\n generation.message = new AIMessage(\n Object.fromEntries(\n Object.entries(generation.message).filter(\n ([key]) => !key.startsWith('lc_')\n )\n )\n );\n generations.push(generation);\n }\n return {\n generations,\n llmOutput: {\n tokenUsage: {\n promptTokens: usageMetadata.input_tokens,\n completionTokens: usageMetadata.output_tokens,\n totalTokens: usageMetadata.total_tokens,\n },\n },\n };\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n if (\n this.includeReasoningContent !== true &&\n this.includeReasoningDetails !== true\n ) {\n yield* super._streamResponseChunks(messages, options, runManager);\n return;\n }\n\n const messagesMapped: OpenAICompletionParam[] =\n _convertMessagesToOpenAIParams(messages, this.model, {\n includeReasoningContent: this.includeReasoningContent,\n includeReasoningDetails: this.includeReasoningDetails,\n convertReasoningDetailsToContent: this.convertReasoningDetailsToContent,\n preserveToolCacheControl: this.preserveToolCacheControl,\n });\n\n const params = {\n ...this.invocationParams(options, {\n streaming: true,\n }),\n messages: messagesMapped,\n stream: true as const,\n };\n let defaultRole: OpenAIClient.Chat.ChatCompletionRole | undefined;\n\n const streamIterable = await this.completionWithRetry(params, options);\n let usage: OpenAIClient.Completions.CompletionUsage | undefined;\n for await (const data of streamIterable) {\n if (options.signal?.aborted === true) {\n return;\n }\n type StreamChoice = Omit<\n OpenAIClient.Chat.Completions.ChatCompletionChunk.Choice,\n 'delta'\n > & {\n delta?: OpenAIClient.Chat.Completions.ChatCompletionChunk.Choice['delta'];\n };\n const choices = data.choices as StreamChoice[] | undefined;\n const choice = choices?.[0];\n if (data.usage != null) {\n usage = data.usage;\n }\n if (choice == null) {\n continue;\n }\n\n const { delta } = choice;\n if (delta == null) {\n continue;\n }\n const chunk = this._convertCompletionsDeltaToBaseMessageChunk(\n delta as unknown as Record<string, unknown>,\n data,\n defaultRole\n );\n defaultRole = delta.role ?? defaultRole;\n const newTokenIndices = {\n prompt: options.promptIndex ?? 0,\n completion: choice.index,\n };\n if (typeof chunk.content !== 'string') {\n // eslint-disable-next-line no-console\n console.log(\n '[WARNING]: Received non-string content from OpenAI. This is currently not supported.'\n );\n continue;\n }\n const generationInfo: Record<string, unknown> = { ...newTokenIndices };\n if (choice.finish_reason != null) {\n generationInfo.finish_reason = choice.finish_reason;\n generationInfo.system_fingerprint = data.system_fingerprint;\n generationInfo.model_name = data.model;\n generationInfo.service_tier = data.service_tier;\n }\n if (this.logprobs === true) {\n generationInfo.logprobs = choice.logprobs;\n }\n const generationChunk = new ChatGenerationChunk({\n message: chunk,\n text: chunk.content,\n generationInfo,\n });\n yield generationChunk;\n await runManager?.handleLLMNewToken(\n generationChunk.text,\n newTokenIndices,\n undefined,\n undefined,\n undefined,\n { chunk: generationChunk }\n );\n }\n if (usage) {\n const promptTokenDetails = usage.prompt_tokens_details as\n | PromptTokensDetailsWithCacheWrite\n | undefined;\n const inputTokenDetails = {\n ...(promptTokenDetails?.audio_tokens != null && {\n audio: promptTokenDetails.audio_tokens,\n }),\n ...(promptTokenDetails?.cached_tokens != null && {\n cache_read: promptTokenDetails.cached_tokens,\n }),\n ...(promptTokenDetails?.cache_write_tokens != null && {\n cache_creation: promptTokenDetails.cache_write_tokens,\n }),\n };\n const outputTokenDetails = {\n ...(usage.completion_tokens_details?.audio_tokens != null && {\n audio: usage.completion_tokens_details.audio_tokens,\n }),\n ...(usage.completion_tokens_details?.reasoning_tokens != null && {\n reasoning: usage.completion_tokens_details.reasoning_tokens,\n }),\n };\n const generationChunk = new ChatGenerationChunk({\n message: new AIMessageChunk({\n content: '',\n response_metadata: { usage: { ...usage } },\n usage_metadata: {\n input_tokens: usage.prompt_tokens,\n output_tokens: usage.completion_tokens,\n total_tokens: usage.total_tokens,\n ...(Object.keys(inputTokenDetails).length > 0 && {\n input_token_details: inputTokenDetails,\n }),\n ...(Object.keys(outputTokenDetails).length > 0 && {\n output_token_details: outputTokenDetails,\n }),\n },\n }),\n text: '',\n });\n yield generationChunk;\n await runManager?.handleLLMNewToken(\n generationChunk.text,\n {\n prompt: 0,\n completion: 0,\n },\n undefined,\n undefined,\n undefined,\n { chunk: generationChunk }\n );\n }\n if (options.signal?.aborted === true) {\n throw new Error('AbortError');\n }\n }\n}\n\nclass LibreChatOpenAIResponses extends OriginalChatOpenAIResponses {\n private promptCacheExplicit?: boolean;\n private responsesPromptCache?: boolean;\n private responsesPromptCacheTtl?: PromptCacheTtl;\n private safetyIdentifier?: string;\n\n constructor(fields?: LibreChatOpenAIFields) {\n super(fields);\n this.promptCacheExplicit = fields?.promptCacheExplicit;\n this.responsesPromptCache = fields?.responsesPromptCache;\n this.responsesPromptCacheTtl = fields?.responsesPromptCacheTtl;\n this.safetyIdentifier = fields?.safety_identifier;\n }\n\n invocationParams(\n options?: this['ParsedCallOptions']\n ): ReturnType<OriginalChatOpenAIResponses['invocationParams']> {\n const cacheOptions = options as\n | {\n promptCache?: boolean;\n promptCacheTtl?: PromptCacheTtl;\n }\n | undefined;\n const promptCache = cacheOptions?.promptCache ?? this.responsesPromptCache;\n const cacheControl =\n promptCache === true\n ? buildAnthropicCacheControl(\n resolvePromptCacheTtl(\n cacheOptions?.promptCacheTtl ?? this.responsesPromptCacheTtl\n )\n )\n : undefined;\n const baseParams = applyManagedRequestParams(\n super.invocationParams(options),\n {\n promptCacheExplicit: this.promptCacheExplicit,\n safetyIdentifier: this.safetyIdentifier,\n }\n );\n const params = {\n ...baseParams,\n ...(baseParams.tools != null && {\n tools: stripResponsesToolCacheControl(baseParams.tools),\n }),\n ...(cacheControl != null && {\n cache_control: cacheControl,\n }),\n };\n if (shouldIncludeEncryptedReasoning(this.model, params)) {\n params.include = [\n ...new Set([\n ...(params.include ?? []),\n 'reasoning.encrypted_content' as const,\n ]),\n ];\n }\n return stripIntentFromStrictTools(params);\n }\n\n async completionWithRetry(\n request: OpenAIClient.Responses.ResponseCreateParamsStreaming,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<AsyncIterable<OpenAIClient.Responses.ResponseStreamEvent>>;\n async completionWithRetry(\n request: OpenAIClient.Responses.ResponseCreateParamsNonStreaming,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<OpenAIClient.Responses.Response>;\n async completionWithRetry(\n request: ResponsesRequest,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<ResponsesResult> {\n const managedRequest = {\n ...request,\n input:\n this.promptCacheExplicit === true\n ? addResponseCacheBreakpoints(request.input)\n : request.input,\n };\n const result = await super.completionWithRetry(\n managedRequest as OpenAIClient.Responses.ResponseCreateParamsStreaming,\n requestOptions\n );\n return isResponsesStream(result)\n ? result\n : attachCacheWriteMetadata(result);\n }\n\n async _generate(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n const result = await super._generate(\n projectOpenAIResponsesProviderMessages(messages),\n options,\n runManager\n );\n for (const generation of result.generations) {\n attachCacheWriteUsage(generation.message);\n }\n return result;\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n const projectedMessages = projectOpenAIResponsesProviderMessages(messages);\n const stream = await this.completionWithRetry(\n {\n ...this.invocationParams(options),\n input: convertMessagesToResponsesInput({\n messages: projectedMessages,\n zdrEnabled: this.zdrEnabled ?? false,\n model: this.model,\n }),\n stream: true,\n },\n options\n );\n yield* convertLibreChatResponsesStream(stream, options, runManager);\n }\n\n async *_streamChatModelEvents(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatModelStreamEvent> {\n yield* super._streamChatModelEvents(\n projectOpenAIResponsesProviderMessages(messages),\n options,\n runManager\n );\n }\n\n protected _getReasoningParams(\n options?: this['ParsedCallOptions']\n ): OpenAIClient.Reasoning | undefined {\n return getReasoningParams(this.reasoning, options);\n }\n\n _getClientOptions(\n options?: OpenAICoreRequestOptions\n ): OpenAICoreRequestOptions {\n return getCustomOpenAIClientOptions(this, options);\n }\n}\n\nclass LibreChatAzureOpenAICompletions extends OriginalAzureChatOpenAICompletions {\n private promptCacheExplicit?: boolean;\n private safetyIdentifier?: string;\n\n constructor(fields?: LibreChatAzureOpenAIFields) {\n super(fields);\n this.promptCacheExplicit = fields?.promptCacheExplicit;\n this.safetyIdentifier = fields?.safety_identifier;\n }\n\n invocationParams(\n options?: this['ParsedCallOptions'],\n extra?: { streaming?: boolean }\n ): ReturnType<OriginalAzureChatOpenAICompletions['invocationParams']> {\n return stripIntentFromStrictTools(\n applyManagedRequestParams(super.invocationParams(options, extra), {\n promptCacheExplicit: this.promptCacheExplicit,\n safetyIdentifier: this.safetyIdentifier,\n })\n );\n }\n\n protected _getReasoningParams(\n options?: this['ParsedCallOptions']\n ): OpenAIClient.Reasoning | undefined {\n return getGatedReasoningParams(this.model, this.reasoning, options);\n }\n\n protected _convertCompletionsDeltaToBaseMessageChunk(\n delta: Record<string, unknown>,\n rawResponse: OpenAIClient.Chat.Completions.ChatCompletionChunk,\n defaultRole?: OpenAIClient.Chat.ChatCompletionRole\n ): BaseMessageChunk {\n const message = super._convertCompletionsDeltaToBaseMessageChunk(\n delta,\n rawResponse,\n defaultRole\n );\n if (\n isFirstPartyAzureEndpoint({\n baseURL: this.clientConfig.baseURL,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n })\n ) {\n // First-party Azure OpenAI: same sequential-by-index stream contract\n // as api.openai.com.\n return stampSequentialStreamedToolCallAdapter(message);\n }\n return message;\n }\n\n _getClientOptions(\n options: OpenAICoreRequestOptions | undefined\n ): OpenAICoreRequestOptions {\n if (!(this.client as unknown as AzureOpenAIClient | undefined)) {\n const openAIEndpointConfig: t.OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const params = {\n ...this.clientConfig,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (params.baseURL == null) {\n delete params.baseURL;\n }\n\n const defaultHeaders = normalizeHeaders(params.defaultHeaders);\n params.defaultHeaders = {\n ...params.defaultHeaders,\n 'User-Agent':\n defaultHeaders['User-Agent'] != null\n ? `${defaultHeaders['User-Agent']}: librechat-azure-openai-v2`\n : 'librechat-azure-openai-v2',\n };\n\n this.client = new CustomAzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n ...(params as t.AzureOpenAIInput),\n }) as unknown as CustomOpenAIClient;\n }\n\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n if (this.azureOpenAIApiKey != null) {\n requestOptions.headers = {\n 'api-key': this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n 'api-version': this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return requestOptions;\n }\n\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsStreaming,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<AsyncIterable<OpenAIChatCompletionChunk>>;\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<OpenAIChatCompletion>;\n async completionWithRetry(\n request:\n | OpenAIClient.Chat.ChatCompletionCreateParamsStreaming\n | OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<AsyncIterable<OpenAIChatCompletionChunk> | OpenAIChatCompletion> {\n return completionWithFilteredOpenAIStream(\n this.promptCacheExplicit === true\n ? { ...request, messages: addChatCacheBreakpoints(request.messages) }\n : request,\n requestOptions,\n super.completionWithRetry.bind(this) as OpenAIChatCompletionRetry\n );\n }\n}\n\nclass LibreChatAzureOpenAIResponses extends OriginalAzureChatOpenAIResponses {\n private promptCacheExplicit?: boolean;\n private safetyIdentifier?: string;\n\n constructor(fields?: LibreChatAzureOpenAIFields) {\n super(fields);\n this.promptCacheExplicit = fields?.promptCacheExplicit;\n this.safetyIdentifier = fields?.safety_identifier;\n }\n\n invocationParams(\n options?: this['ParsedCallOptions']\n ): ReturnType<OriginalAzureChatOpenAIResponses['invocationParams']> {\n const params = applyManagedRequestParams(super.invocationParams(options), {\n promptCacheExplicit: this.promptCacheExplicit,\n safetyIdentifier: this.safetyIdentifier,\n });\n if (shouldIncludeEncryptedReasoning(this.model, params)) {\n params.include = [\n ...new Set([\n ...(params.include ?? []),\n 'reasoning.encrypted_content' as const,\n ]),\n ];\n }\n return stripIntentFromStrictTools(params);\n }\n\n async completionWithRetry(\n request: OpenAIClient.Responses.ResponseCreateParamsStreaming,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<AsyncIterable<OpenAIClient.Responses.ResponseStreamEvent>>;\n async completionWithRetry(\n request: OpenAIClient.Responses.ResponseCreateParamsNonStreaming,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<OpenAIClient.Responses.Response>;\n async completionWithRetry(\n request: ResponsesRequest,\n requestOptions?: OpenAICoreRequestOptions\n ): Promise<ResponsesResult> {\n const managedRequest = {\n ...request,\n input:\n this.promptCacheExplicit === true\n ? addResponseCacheBreakpoints(request.input)\n : request.input,\n };\n const result = await super.completionWithRetry(\n managedRequest as OpenAIClient.Responses.ResponseCreateParamsStreaming,\n requestOptions\n );\n return isResponsesStream(result)\n ? result\n : attachCacheWriteMetadata(result);\n }\n\n async _generate(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n const result = await super._generate(\n projectOpenAIResponsesProviderMessages(messages),\n options,\n runManager\n );\n for (const generation of result.generations) {\n attachCacheWriteUsage(generation.message);\n }\n return result;\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n const projectedMessages = projectOpenAIResponsesProviderMessages(messages);\n const stream = await this.completionWithRetry(\n {\n ...this.invocationParams(options),\n input: convertMessagesToResponsesInput({\n messages: projectedMessages,\n zdrEnabled: this.zdrEnabled ?? false,\n model: this.model,\n }),\n stream: true,\n },\n options\n );\n yield* convertLibreChatResponsesStream(stream, options, runManager);\n }\n\n async *_streamChatModelEvents(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatModelStreamEvent> {\n yield* super._streamChatModelEvents(\n projectOpenAIResponsesProviderMessages(messages),\n options,\n runManager\n );\n }\n\n protected _getReasoningParams(\n options?: this['ParsedCallOptions']\n ): OpenAIClient.Reasoning | undefined {\n return getGatedReasoningParams(this.model, this.reasoning, options);\n }\n\n _getClientOptions(\n options: OpenAICoreRequestOptions | undefined\n ): OpenAICoreRequestOptions {\n if (!(this.client as unknown as AzureOpenAIClient | undefined)) {\n const openAIEndpointConfig: t.OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const params = {\n ...this.clientConfig,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (params.baseURL == null) {\n delete params.baseURL;\n }\n\n const defaultHeaders = normalizeHeaders(params.defaultHeaders);\n params.defaultHeaders = {\n ...params.defaultHeaders,\n 'User-Agent':\n defaultHeaders['User-Agent'] != null\n ? `${defaultHeaders['User-Agent']}: librechat-azure-openai-v2`\n : 'librechat-azure-openai-v2',\n };\n\n this.client = new CustomAzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n ...(params as t.AzureOpenAIInput),\n }) as unknown as CustomOpenAIClient;\n }\n\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n if (this.azureOpenAIApiKey != null) {\n requestOptions.headers = {\n 'api-key': this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n 'api-version': this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return requestOptions;\n }\n}\n\nfunction withLibreChatOpenAIFields(\n fields?: LibreChatOpenAIFields\n): LibreChatOpenAIFields {\n const nextFields = fields ?? {};\n return {\n ...nextFields,\n completions:\n nextFields.completions ?? new LibreChatOpenAICompletions(nextFields),\n responses: nextFields.responses ?? new LibreChatOpenAIResponses(nextFields),\n };\n}\n\nexport class ChatOpenAI extends OriginalChatOpenAI<t.ChatOpenAICallOptions> {\n _lc_stream_delay: number;\n\n constructor(\n fields?: LibreChatOpenAIFields & t.OpenAIChatInput['modelKwargs']\n ) {\n super(withLibreChatOpenAIFields(fields));\n this._lc_stream_delay = resolveStreamDelay(fields?._lc_stream_delay);\n }\n\n public get exposedClient(): CustomOpenAIClient {\n return getExposedOpenAIClient(\n this.completions as OpenAIClientDelegate,\n this.responses as OpenAIClientDelegate,\n this._useResponsesApi(undefined)\n ) as CustomOpenAIClient;\n }\n static lc_name(): string {\n return 'LibreChatOpenAI';\n }\n _getClientOptions(\n options?: OpenAICoreRequestOptions\n ): OpenAICoreRequestOptions {\n if (!(this.client as OpenAIClient | undefined)) {\n const openAIEndpointConfig: t.OpenAIEndpointConfig = {\n baseURL: this.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n const params = {\n ...this.clientConfig,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n if (params.baseURL == null) {\n delete params.baseURL;\n }\n\n this.client = new CustomOpenAIClient(params);\n }\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n return requestOptions;\n }\n\n /**\n * Returns backwards compatible reasoning parameters from constructor params and call options\n * @internal\n */\n getReasoningParams(\n options?: this['ParsedCallOptions']\n ): OpenAIClient.Reasoning | undefined {\n return getReasoningParams(this.reasoning, options);\n }\n\n protected _getReasoningParams(\n options?: this['ParsedCallOptions']\n ): OpenAIClient.Reasoning | undefined {\n return this.getReasoningParams(options);\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n yield* delayStreamChunks(\n super._streamResponseChunks(messages, options, undefined),\n this._lc_stream_delay,\n options.signal,\n runManager,\n new Map()\n );\n }\n\n /**\n * Raw variant that skips scalar-metadata de-duplication. Used by subclasses\n * (e.g. `ChatOpenRouter`) that read `finish_reason` as a control signal and\n * must de-duplicate only after their own finalization.\n */\n protected _streamRawResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n return delayStreamChunks(\n super._streamResponseChunks(messages, options, undefined),\n this._lc_stream_delay,\n options.signal,\n runManager\n );\n }\n}\n\nexport class AzureChatOpenAI extends OriginalAzureChatOpenAI {\n _lc_stream_delay: number;\n\n constructor(fields?: LibreChatAzureOpenAIFields) {\n super(fields);\n this.completions = new LibreChatAzureOpenAICompletions(fields);\n this.responses = new LibreChatAzureOpenAIResponses(fields);\n this._lc_stream_delay = resolveStreamDelay(fields?._lc_stream_delay);\n }\n\n public get exposedClient(): CustomOpenAIClient {\n return getExposedOpenAIClient(\n this.completions as OpenAIClientDelegate,\n this.responses as OpenAIClientDelegate,\n this._useResponsesApi(undefined)\n ) as CustomOpenAIClient;\n }\n static lc_name(): 'LibreChatAzureOpenAI' {\n return 'LibreChatAzureOpenAI';\n }\n /**\n * Returns backwards compatible reasoning parameters from constructor params and call options\n * @internal\n */\n getReasoningParams(\n options?: this['ParsedCallOptions']\n ): OpenAIClient.Reasoning | undefined {\n return getGatedReasoningParams(this.model, this.reasoning, options);\n }\n\n protected _getReasoningParams(\n options?: this['ParsedCallOptions']\n ): OpenAIClient.Reasoning | undefined {\n return this.getReasoningParams(options);\n }\n\n _getClientOptions(\n options: OpenAICoreRequestOptions | undefined\n ): OpenAICoreRequestOptions {\n if (!(this.client as unknown as AzureOpenAIClient | undefined)) {\n const openAIEndpointConfig: t.OpenAIEndpointConfig = {\n azureOpenAIApiDeploymentName: this.azureOpenAIApiDeploymentName,\n azureOpenAIApiInstanceName: this.azureOpenAIApiInstanceName,\n azureOpenAIApiKey: this.azureOpenAIApiKey,\n azureOpenAIBasePath: this.azureOpenAIBasePath,\n azureADTokenProvider: this.azureADTokenProvider,\n baseURL: this.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n\n const params = {\n ...this.clientConfig,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n\n if (!this.azureADTokenProvider) {\n params.apiKey = openAIEndpointConfig.azureOpenAIApiKey;\n }\n\n if (params.baseURL == null) {\n delete params.baseURL;\n }\n\n const defaultHeaders = normalizeHeaders(params.defaultHeaders);\n params.defaultHeaders = {\n ...params.defaultHeaders,\n 'User-Agent':\n defaultHeaders['User-Agent'] != null\n ? `${defaultHeaders['User-Agent']}: librechat-azure-openai-v2`\n : 'librechat-azure-openai-v2',\n };\n\n this.client = new CustomAzureOpenAIClient({\n apiVersion: this.azureOpenAIApiVersion,\n azureADTokenProvider: this.azureADTokenProvider,\n ...(params as t.AzureOpenAIInput),\n }) as unknown as CustomOpenAIClient;\n }\n\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n if (this.azureOpenAIApiKey != null) {\n requestOptions.headers = {\n 'api-key': this.azureOpenAIApiKey,\n ...requestOptions.headers,\n };\n requestOptions.query = {\n 'api-version': this.azureOpenAIApiVersion,\n ...requestOptions.query,\n };\n }\n return requestOptions;\n }\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n yield* delayStreamChunks(\n super._streamResponseChunks(messages, options, undefined),\n this._lc_stream_delay,\n options.signal,\n runManager,\n new Map()\n );\n }\n}\nexport class ChatDeepSeek extends OriginalChatDeepSeek {\n _lc_stream_delay: number;\n\n constructor(\n fields?: ConstructorParameters<typeof OriginalChatDeepSeek>[0] & {\n _lc_stream_delay?: number;\n }\n ) {\n super(fields);\n this._lc_stream_delay = resolveStreamDelay(fields?._lc_stream_delay);\n }\n\n public get exposedClient(): CustomOpenAIClient {\n return this.client;\n }\n static lc_name(): 'LibreChatDeepSeek' {\n return 'LibreChatDeepSeek';\n }\n\n protected _convertDeepSeekMessages(\n messages: BaseMessage[]\n ): OpenAICompletionParam[] {\n return _convertMessagesToOpenAIParams(messages, this.model, {\n includeReasoningContent: true,\n });\n }\n\n async _generate(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): Promise<ChatResult> {\n options.signal?.throwIfAborted();\n const params = this.invocationParams(options);\n\n if (params.stream === true) {\n return super._generate(messages, options, runManager);\n }\n\n const messagesMapped = this._convertDeepSeekMessages(messages);\n const response = await this.completionWithRetry(\n {\n ...params,\n stream: false,\n messages: messagesMapped,\n },\n {\n signal: options.signal,\n ...options.options,\n }\n );\n\n const usageMetadata = createUsageMetadata(response.usage);\n\n const generations: ChatGeneration[] = response.choices.map((part) => {\n const text = part.message.content ?? '';\n const generation: ChatGeneration = {\n text,\n message: this._convertCompletionsMessageToBaseMessage(\n part.message,\n response\n ),\n };\n generation.generationInfo = {\n finish_reason: part.finish_reason,\n ...(part.logprobs != null ? { logprobs: part.logprobs } : {}),\n };\n if (isAIMessage(generation.message)) {\n generation.message.usage_metadata = usageMetadata;\n }\n generation.message = new AIMessage(\n Object.fromEntries(\n Object.entries(generation.message).filter(\n ([key]) => !key.startsWith('lc_')\n )\n )\n );\n return generation;\n });\n\n return {\n generations,\n llmOutput: {\n tokenUsage: {\n promptTokens: usageMetadata.input_tokens,\n completionTokens: usageMetadata.output_tokens,\n totalTokens: usageMetadata.total_tokens,\n },\n },\n };\n }\n\n _getClientOptions(\n options?: OpenAICoreRequestOptions\n ): OpenAICoreRequestOptions {\n if (!(this.client as OpenAIClient | undefined)) {\n const openAIEndpointConfig: t.OpenAIEndpointConfig = {\n baseURL: this.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n const params = {\n ...this.clientConfig,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n if (params.baseURL == null) {\n delete params.baseURL;\n }\n\n this.client = new CustomOpenAIClient(params);\n }\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n return requestOptions;\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n yield* delayStreamChunks(\n this._streamResponseChunksWithReasoning(messages, options, undefined),\n this._lc_stream_delay,\n options.signal,\n runManager,\n new Map()\n );\n }\n\n /** Parses raw `<think>` fallback tags across chunks and emits sanitized DeepSeek stream chunks. */\n protected async *_streamResponseChunksWithReasoning(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n const stream = this._streamResponseChunksFromReasoningMessages(\n messages,\n options\n );\n const thinkStartTag = '<think>';\n const thinkEndTag = '</think>';\n let tokensBuffer = '';\n let isThinking = false;\n\n for await (const chunk of stream) {\n if (options.signal?.aborted === true) {\n throw new Error('AbortError');\n }\n\n const reasoningContent =\n chunk.message.additional_kwargs.reasoning_content;\n if (reasoningContent != null && reasoningContent !== '') {\n yield* this._yieldDeepSeekStreamChunk(chunk, runManager);\n continue;\n }\n\n const text = chunk.text;\n if (text === '') {\n yield* this._yieldDeepSeekStreamChunk(chunk, runManager);\n continue;\n }\n\n tokensBuffer += text;\n\n while (tokensBuffer !== '') {\n if (isThinking) {\n const thinkEndIndex = tokensBuffer.indexOf(thinkEndTag);\n if (thinkEndIndex !== -1) {\n const thoughtContent = tokensBuffer.substring(0, thinkEndIndex);\n if (thoughtContent !== '') {\n yield* this._yieldDeepSeekReasoningText(\n chunk,\n thoughtContent,\n runManager\n );\n }\n\n tokensBuffer = tokensBuffer.substring(\n thinkEndIndex + thinkEndTag.length\n );\n isThinking = false;\n continue;\n }\n\n const splitIndex = this._getDeepSeekPartialTagSplitIndex(\n tokensBuffer,\n thinkEndTag\n );\n if (splitIndex !== -1) {\n const safeToYield = tokensBuffer.substring(0, splitIndex);\n if (safeToYield !== '') {\n yield* this._yieldDeepSeekReasoningText(\n chunk,\n safeToYield,\n runManager\n );\n }\n tokensBuffer = tokensBuffer.substring(splitIndex);\n break;\n }\n\n yield* this._yieldDeepSeekReasoningText(\n chunk,\n tokensBuffer,\n runManager\n );\n tokensBuffer = '';\n break;\n }\n\n const thinkStartIndex = tokensBuffer.indexOf(thinkStartTag);\n if (thinkStartIndex !== -1) {\n const beforeThink = tokensBuffer.substring(0, thinkStartIndex);\n if (beforeThink !== '') {\n yield* this._yieldDeepSeekStreamChunk(\n this._createDeepSeekStreamChunk(chunk, beforeThink),\n runManager\n );\n }\n\n tokensBuffer = tokensBuffer.substring(\n thinkStartIndex + thinkStartTag.length\n );\n isThinking = true;\n continue;\n }\n\n const splitIndex = this._getDeepSeekPartialTagSplitIndex(\n tokensBuffer,\n thinkStartTag\n );\n if (splitIndex !== -1) {\n const safeToYield = tokensBuffer.substring(0, splitIndex);\n if (safeToYield !== '') {\n yield* this._yieldDeepSeekStreamChunk(\n this._createDeepSeekStreamChunk(chunk, safeToYield),\n runManager\n );\n }\n tokensBuffer = tokensBuffer.substring(splitIndex);\n break;\n }\n\n yield* this._yieldDeepSeekStreamChunk(\n this._createDeepSeekStreamChunk(chunk, tokensBuffer),\n runManager\n );\n tokensBuffer = '';\n break;\n }\n }\n\n if (tokensBuffer === '') {\n return;\n }\n\n if (isThinking) {\n yield* this._yieldDeepSeekStreamChunk(\n new ChatGenerationChunk({\n message: new AIMessageChunk({\n content: '',\n additional_kwargs: {\n reasoning_content: tokensBuffer,\n },\n }),\n text: '',\n }),\n runManager\n );\n return;\n }\n\n yield* this._yieldDeepSeekStreamChunk(\n new ChatGenerationChunk({\n message: new AIMessageChunk({\n content: tokensBuffer,\n }),\n text: tokensBuffer,\n }),\n runManager\n );\n }\n\n protected async *_streamResponseChunksFromReasoningMessages(\n messages: BaseMessage[],\n options: this['ParsedCallOptions']\n ): AsyncGenerator<ChatGenerationChunk> {\n const params = {\n ...this.invocationParams(options, { streaming: true }),\n stream: true as const,\n };\n const messagesMapped = this._convertDeepSeekMessages(messages);\n const streamIterable = await this.completionWithRetry(\n {\n ...params,\n messages: messagesMapped,\n },\n {\n signal: options.signal,\n ...options.options,\n }\n );\n\n let defaultRole:\n | OpenAIClient.Chat.Completions.ChatCompletionRole\n | undefined;\n let usage: OpenAIClient.Completions.CompletionUsage | undefined;\n\n for await (const data of streamIterable) {\n if (options.signal?.aborted === true) {\n throw new Error('AbortError');\n }\n\n if (data.usage != null) {\n usage = data.usage;\n }\n\n if (data.choices.length === 0) {\n continue;\n }\n\n const choice = data.choices[0];\n const { delta } = choice;\n const messageChunk = this._convertCompletionsDeltaToBaseMessageChunk(\n delta,\n data,\n defaultRole\n );\n defaultRole = delta.role ?? defaultRole;\n\n if (typeof messageChunk.content !== 'string') {\n continue;\n }\n\n const messageText = messageChunk.content;\n const newTokenIndices = {\n prompt: options.promptIndex ?? 0,\n completion: choice.index,\n };\n const generationInfo = { ...newTokenIndices };\n if (choice.finish_reason != null) {\n Object.assign(generationInfo, {\n finish_reason: choice.finish_reason,\n system_fingerprint: data.system_fingerprint,\n model_name: data.model,\n service_tier: data.service_tier,\n });\n }\n if (this.logprobs === true) {\n Object.assign(generationInfo, { logprobs: choice.logprobs });\n }\n\n const generationChunk = new ChatGenerationChunk({\n message: messageChunk,\n text: messageText,\n generationInfo,\n });\n\n yield generationChunk;\n }\n\n if (usage != null) {\n const usageMetadata = createUsageMetadata(usage);\n\n const generationChunk = new ChatGenerationChunk({\n message: new AIMessageChunk({\n content: '',\n response_metadata: {\n usage: { ...usage },\n },\n usage_metadata: usageMetadata,\n }),\n text: '',\n generationInfo: {\n prompt: 0,\n completion: 0,\n },\n });\n\n yield generationChunk;\n }\n\n if (options.signal?.aborted === true) {\n throw new Error('AbortError');\n }\n }\n\n protected _createDeepSeekStreamChunk(\n chunk: ChatGenerationChunk,\n content: string,\n additionalKwargs?: AIMessageChunk['additional_kwargs'],\n text = content\n ): ChatGenerationChunk {\n if (!(chunk.message instanceof AIMessageChunk)) {\n return new ChatGenerationChunk({\n message: new AIMessageChunk({\n content,\n additional_kwargs:\n additionalKwargs ?? chunk.message.additional_kwargs,\n response_metadata: chunk.message.response_metadata,\n id: chunk.message.id,\n }),\n text,\n generationInfo: chunk.generationInfo,\n });\n }\n\n const message = chunk.message;\n return new ChatGenerationChunk({\n message: new AIMessageChunk({\n content,\n additional_kwargs: additionalKwargs ?? message.additional_kwargs,\n response_metadata: message.response_metadata,\n tool_calls: message.tool_calls,\n tool_call_chunks: message.tool_call_chunks,\n id: message.id,\n }),\n text,\n generationInfo: chunk.generationInfo,\n });\n }\n\n protected _createDeepSeekReasoningStreamChunk(\n chunk: ChatGenerationChunk,\n reasoningContent: string\n ): ChatGenerationChunk {\n return this._createDeepSeekStreamChunk(\n chunk,\n '',\n {\n ...chunk.message.additional_kwargs,\n reasoning_content: reasoningContent,\n },\n ''\n );\n }\n\n protected async *_yieldDeepSeekReasoningText(\n chunk: ChatGenerationChunk,\n reasoningContent: string,\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n yield* this._yieldDeepSeekStreamChunk(\n this._createDeepSeekReasoningStreamChunk(chunk, reasoningContent),\n runManager\n );\n }\n\n protected async *_yieldDeepSeekStreamChunk(\n chunk: ChatGenerationChunk,\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n yield chunk;\n await runManager?.handleLLMNewToken(\n chunk.text,\n this._getDeepSeekTokenIndices(chunk),\n undefined,\n undefined,\n undefined,\n { chunk }\n );\n }\n\n protected _getDeepSeekTokenIndices(\n chunk: ChatGenerationChunk\n ): { prompt: number; completion: number } | undefined {\n return getStreamChunkTokenIndices(chunk);\n }\n\n protected _getDeepSeekPartialTagSplitIndex(\n text: string,\n tag: string\n ): number {\n for (let i = tag.length - 1; i >= 1; i--) {\n if (text.endsWith(tag.substring(0, i))) {\n return text.length - i;\n }\n }\n\n return -1;\n }\n}\n\n/** xAI-specific usage metadata type */\nexport interface XAIUsageMetadata\n extends OpenAIClient.Completions.CompletionUsage {\n prompt_tokens_details?: {\n audio_tokens?: number;\n cached_tokens?: number;\n text_tokens?: number;\n image_tokens?: number;\n };\n completion_tokens_details?: {\n audio_tokens?: number;\n reasoning_tokens?: number;\n accepted_prediction_tokens?: number;\n rejected_prediction_tokens?: number;\n };\n num_sources_used?: number;\n}\n\nexport class ChatMoonshot extends ChatOpenAI {\n constructor(\n fields?: LibreChatOpenAIFields & t.OpenAIChatInput['modelKwargs']\n ) {\n super({\n ...fields,\n includeReasoningContent: true,\n });\n }\n\n static lc_name(): 'LibreChatMoonshot' {\n return 'LibreChatMoonshot';\n }\n}\n\nexport class ChatXAI extends OriginalChatXAI {\n _lc_stream_delay: number;\n\n constructor(\n fields?: Partial<ChatXAIInput> & {\n configuration?: { baseURL?: string };\n clientConfig?: { baseURL?: string };\n _lc_stream_delay?: number;\n }\n ) {\n super(fields);\n this._lc_stream_delay = resolveStreamDelay(fields?._lc_stream_delay);\n const customBaseURL =\n fields?.configuration?.baseURL ?? fields?.clientConfig?.baseURL;\n if (customBaseURL != null && customBaseURL) {\n this.clientConfig = {\n ...this.clientConfig,\n baseURL: customBaseURL,\n };\n // Reset the client to force recreation with new config\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.client = undefined as any;\n }\n }\n\n static lc_name(): 'LibreChatXAI' {\n return 'LibreChatXAI';\n }\n\n public get exposedClient(): CustomOpenAIClient {\n return this.client;\n }\n\n _getClientOptions(\n options?: OpenAICoreRequestOptions\n ): OpenAICoreRequestOptions {\n if (!(this.client as OpenAIClient | undefined)) {\n const openAIEndpointConfig: t.OpenAIEndpointConfig = {\n baseURL: this.clientConfig.baseURL,\n };\n\n const endpoint = getEndpoint(openAIEndpointConfig);\n const params = {\n ...this.clientConfig,\n baseURL: endpoint,\n timeout: this.timeout,\n maxRetries: 0,\n };\n if (params.baseURL == null) {\n delete params.baseURL;\n }\n\n this.client = new CustomOpenAIClient(params);\n }\n const requestOptions = {\n ...this.clientConfig,\n ...options,\n } as OpenAICoreRequestOptions;\n return requestOptions;\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n yield* delayStreamChunks(\n super._streamResponseChunks(messages, options, undefined),\n this._lc_stream_delay,\n options.signal,\n runManager,\n new Map()\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["record","AzureOpenAIClient","OriginalChatOpenAICompletions","OriginalChatOpenAIResponses","OriginalAzureChatOpenAICompletions","OriginalAzureChatOpenAIResponses","ChatOpenAI","OriginalChatOpenAI","AzureChatOpenAI","OriginalAzureChatOpenAI","ChatDeepSeek","OriginalChatDeepSeek","ChatXAI","OriginalChatXAI"],"sources":["../../../../src/llm/openai/index.ts"],"mappings":"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"}