@librechat/agents 3.4.6 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1027) hide show
  1. package/dist/cjs/agents/AgentContext.cjs +0 -356
  2. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  3. package/dist/cjs/agents/projection.cjs +0 -9
  4. package/dist/cjs/agents/projection.cjs.map +1 -1
  5. package/dist/cjs/common/constants.cjs +0 -26
  6. package/dist/cjs/common/constants.cjs.map +1 -1
  7. package/dist/cjs/common/enum.cjs +0 -85
  8. package/dist/cjs/common/enum.cjs.map +1 -1
  9. package/dist/cjs/events.cjs +0 -14
  10. package/dist/cjs/events.cjs.map +1 -1
  11. package/dist/cjs/graphs/Graph.cjs +1 -909
  12. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  13. package/dist/cjs/graphs/MultiAgentGraph.cjs +7 -272
  14. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  15. package/dist/cjs/graphs/applyGraphRuntimeConfig.cjs.map +1 -1
  16. package/dist/cjs/graphs/createGraph.cjs.map +1 -1
  17. package/dist/cjs/hitl/askUserQuestion.cjs +0 -53
  18. package/dist/cjs/hitl/askUserQuestion.cjs.map +1 -1
  19. package/dist/cjs/hitl/askUserQuestions.cjs +0 -20
  20. package/dist/cjs/hitl/askUserQuestions.cjs.map +1 -1
  21. package/dist/cjs/hitl/askUserQuestionsInterrupt.cjs +0 -6
  22. package/dist/cjs/hitl/askUserQuestionsInterrupt.cjs.map +1 -1
  23. package/dist/cjs/hooks/HookRegistry.cjs +0 -127
  24. package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
  25. package/dist/cjs/hooks/createToolPolicyHook.cjs +0 -38
  26. package/dist/cjs/hooks/createToolPolicyHook.cjs.map +1 -1
  27. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +0 -77
  28. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -1
  29. package/dist/cjs/hooks/executeHooks.cjs +0 -79
  30. package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
  31. package/dist/cjs/hooks/index.cjs +0 -16
  32. package/dist/cjs/hooks/index.cjs.map +1 -1
  33. package/dist/cjs/hooks/matchers.cjs +0 -104
  34. package/dist/cjs/hooks/matchers.cjs.map +1 -1
  35. package/dist/cjs/hooks/types.cjs +0 -8
  36. package/dist/cjs/hooks/types.cjs.map +1 -1
  37. package/dist/cjs/instrumentation.cjs +0 -14
  38. package/dist/cjs/instrumentation.cjs.map +1 -1
  39. package/dist/cjs/langfuse.cjs +0 -75
  40. package/dist/cjs/langfuse.cjs.map +1 -1
  41. package/dist/cjs/langfuseConfig.cjs.map +1 -1
  42. package/dist/cjs/langfuseRuntimeContext.cjs +0 -13
  43. package/dist/cjs/langfuseRuntimeContext.cjs.map +1 -1
  44. package/dist/cjs/langfuseRuntimeScope.cjs +0 -4
  45. package/dist/cjs/langfuseRuntimeScope.cjs.map +1 -1
  46. package/dist/cjs/langfuseSpanRegistry.cjs +0 -28
  47. package/dist/cjs/langfuseSpanRegistry.cjs.map +1 -1
  48. package/dist/cjs/langfuseToolOutputTracing.cjs +0 -3
  49. package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
  50. package/dist/cjs/langfuseTraceShaping.cjs +0 -74
  51. package/dist/cjs/langfuseTraceShaping.cjs.map +1 -1
  52. package/dist/cjs/llm/anthropic/index.cjs +0 -3
  53. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  54. package/dist/cjs/llm/anthropic/types.cjs.map +1 -1
  55. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +1 -111
  56. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  57. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +0 -1
  58. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
  59. package/dist/cjs/llm/anthropic/utils/stream_events.cjs +0 -8
  60. package/dist/cjs/llm/anthropic/utils/stream_events.cjs.map +1 -1
  61. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -1
  62. package/dist/cjs/llm/bedrock/cachePoints.cjs.map +1 -1
  63. package/dist/cjs/llm/bedrock/index.cjs +1 -95
  64. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  65. package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
  66. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +0 -78
  67. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -1
  68. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs +0 -24
  69. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs.map +1 -1
  70. package/dist/cjs/llm/contextOverflowRecovery.cjs +0 -62
  71. package/dist/cjs/llm/contextOverflowRecovery.cjs.map +1 -1
  72. package/dist/cjs/llm/fake.cjs.map +1 -1
  73. package/dist/cjs/llm/google/index.cjs +2 -21
  74. package/dist/cjs/llm/google/index.cjs.map +1 -1
  75. package/dist/cjs/llm/google/utils/common.cjs +5 -35
  76. package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
  77. package/dist/cjs/llm/init.cjs +0 -9
  78. package/dist/cjs/llm/init.cjs.map +1 -1
  79. package/dist/cjs/llm/invoke.cjs +1 -270
  80. package/dist/cjs/llm/invoke.cjs.map +1 -1
  81. package/dist/cjs/llm/mistral/index.cjs.map +1 -1
  82. package/dist/cjs/llm/openai/index.cjs +0 -99
  83. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  84. package/dist/cjs/llm/openai/streamMetadata.cjs +0 -21
  85. package/dist/cjs/llm/openai/streamMetadata.cjs.map +1 -1
  86. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  87. package/dist/cjs/llm/openrouter/index.cjs +0 -1
  88. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  89. package/dist/cjs/llm/openrouter/toolCache.cjs +0 -6
  90. package/dist/cjs/llm/openrouter/toolCache.cjs.map +1 -1
  91. package/dist/cjs/llm/preempt.cjs +0 -75
  92. package/dist/cjs/llm/preempt.cjs.map +1 -1
  93. package/dist/cjs/llm/providers.cjs.map +1 -1
  94. package/dist/cjs/llm/request.cjs +0 -10
  95. package/dist/cjs/llm/request.cjs.map +1 -1
  96. package/dist/cjs/llm/stream/chunkAdapters.cjs +0 -62
  97. package/dist/cjs/llm/stream/chunkAdapters.cjs.map +1 -1
  98. package/dist/cjs/llm/stream/smoother.cjs +0 -58
  99. package/dist/cjs/llm/stream/smoother.cjs.map +1 -1
  100. package/dist/cjs/llm/streamLimits.cjs +4 -293
  101. package/dist/cjs/llm/streamLimits.cjs.map +1 -1
  102. package/dist/cjs/llm/truncation.cjs +0 -36
  103. package/dist/cjs/llm/truncation.cjs.map +1 -1
  104. package/dist/cjs/llm/vertexai/index.cjs +0 -330
  105. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  106. package/dist/cjs/messages/alternation.cjs +0 -43
  107. package/dist/cjs/messages/alternation.cjs.map +1 -1
  108. package/dist/cjs/messages/anthropicToolCache.cjs +0 -45
  109. package/dist/cjs/messages/anthropicToolCache.cjs.map +1 -1
  110. package/dist/cjs/messages/assistantPhase.cjs +0 -12
  111. package/dist/cjs/messages/assistantPhase.cjs.map +1 -1
  112. package/dist/cjs/messages/budget.cjs +0 -9
  113. package/dist/cjs/messages/budget.cjs.map +1 -1
  114. package/dist/cjs/messages/cache.cjs +0 -172
  115. package/dist/cjs/messages/cache.cjs.map +1 -1
  116. package/dist/cjs/messages/content.cjs +0 -9
  117. package/dist/cjs/messages/content.cjs.map +1 -1
  118. package/dist/cjs/messages/contextPruning.cjs +0 -15
  119. package/dist/cjs/messages/contextPruning.cjs.map +1 -1
  120. package/dist/cjs/messages/contextPruningSettings.cjs +0 -3
  121. package/dist/cjs/messages/contextPruningSettings.cjs.map +1 -1
  122. package/dist/cjs/messages/core.cjs +0 -48
  123. package/dist/cjs/messages/core.cjs.map +1 -1
  124. package/dist/cjs/messages/format.cjs +1 -345
  125. package/dist/cjs/messages/format.cjs.map +1 -1
  126. package/dist/cjs/messages/handoffCue.cjs +0 -36
  127. package/dist/cjs/messages/handoffCue.cjs.map +1 -1
  128. package/dist/cjs/messages/ids.cjs.map +1 -1
  129. package/dist/cjs/messages/injected.cjs +0 -33
  130. package/dist/cjs/messages/injected.cjs.map +1 -1
  131. package/dist/cjs/messages/langchain.cjs +0 -14
  132. package/dist/cjs/messages/langchain.cjs.map +1 -1
  133. package/dist/cjs/messages/prune.cjs +1 -184
  134. package/dist/cjs/messages/prune.cjs.map +1 -1
  135. package/dist/cjs/messages/recency.cjs +0 -32
  136. package/dist/cjs/messages/recency.cjs.map +1 -1
  137. package/dist/cjs/messages/reducer.cjs +0 -30
  138. package/dist/cjs/messages/reducer.cjs.map +1 -1
  139. package/dist/cjs/messages/tools.cjs +0 -14
  140. package/dist/cjs/messages/tools.cjs.map +1 -1
  141. package/dist/cjs/openai/index.cjs.map +1 -1
  142. package/dist/cjs/prompts/activityLabel.cjs +9 -79
  143. package/dist/cjs/prompts/activityLabel.cjs.map +1 -1
  144. package/dist/cjs/responses/index.cjs.map +1 -1
  145. package/dist/cjs/run.cjs +2 -538
  146. package/dist/cjs/run.cjs.map +1 -1
  147. package/dist/cjs/session/AgentSession.cjs +1 -17
  148. package/dist/cjs/session/AgentSession.cjs.map +1 -1
  149. package/dist/cjs/session/JsonlSessionStore.cjs.map +1 -1
  150. package/dist/cjs/session/handlers.cjs +0 -7
  151. package/dist/cjs/session/handlers.cjs.map +1 -1
  152. package/dist/cjs/session/ids.cjs.map +1 -1
  153. package/dist/cjs/session/messageSerialization.cjs +0 -4
  154. package/dist/cjs/session/messageSerialization.cjs.map +1 -1
  155. package/dist/cjs/stream.cjs +1 -93
  156. package/dist/cjs/stream.cjs.map +1 -1
  157. package/dist/cjs/summarization/index.cjs +0 -27
  158. package/dist/cjs/summarization/index.cjs.map +1 -1
  159. package/dist/cjs/summarization/node.cjs +0 -273
  160. package/dist/cjs/summarization/node.cjs.map +1 -1
  161. package/dist/cjs/tools/BashExecutor.cjs +0 -35
  162. package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
  163. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +0 -24
  164. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
  165. package/dist/cjs/tools/Calculator.cjs.map +1 -1
  166. package/dist/cjs/tools/CodeExecutor.cjs +0 -13
  167. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  168. package/dist/cjs/tools/CodeSessionFileSummary.cjs.map +1 -1
  169. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +0 -101
  170. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  171. package/dist/cjs/tools/ReadFile.cjs.map +1 -1
  172. package/dist/cjs/tools/SkillTool.cjs +0 -5
  173. package/dist/cjs/tools/SkillTool.cjs.map +1 -1
  174. package/dist/cjs/tools/SubagentTool.cjs +0 -10
  175. package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
  176. package/dist/cjs/tools/ToolNode.cjs +6 -1038
  177. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  178. package/dist/cjs/tools/ToolSearch.cjs +0 -179
  179. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  180. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs.map +1 -1
  181. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs.map +1 -1
  182. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs +0 -39
  183. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs.map +1 -1
  184. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs.map +1 -1
  185. package/dist/cjs/tools/eagerEventExecution.cjs +0 -6
  186. package/dist/cjs/tools/eagerEventExecution.cjs.map +1 -1
  187. package/dist/cjs/tools/handlers.cjs +1 -41
  188. package/dist/cjs/tools/handlers.cjs.map +1 -1
  189. package/dist/cjs/tools/intentArg.cjs +1 -132
  190. package/dist/cjs/tools/intentArg.cjs.map +1 -1
  191. package/dist/cjs/tools/local/CompileCheckTool.cjs +0 -25
  192. package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -1
  193. package/dist/cjs/tools/local/FileCheckpointer.cjs +0 -23
  194. package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -1
  195. package/dist/cjs/tools/local/LocalCodingTools.cjs +0 -80
  196. package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -1
  197. package/dist/cjs/tools/local/LocalExecutionEngine.cjs +0 -126
  198. package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -1
  199. package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -1
  200. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +0 -12
  201. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
  202. package/dist/cjs/tools/local/attachments.cjs +0 -44
  203. package/dist/cjs/tools/local/attachments.cjs.map +1 -1
  204. package/dist/cjs/tools/local/bashAst.cjs +0 -16
  205. package/dist/cjs/tools/local/bashAst.cjs.map +1 -1
  206. package/dist/cjs/tools/local/editStrategies.cjs +0 -14
  207. package/dist/cjs/tools/local/editStrategies.cjs.map +1 -1
  208. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
  209. package/dist/cjs/tools/local/syntaxCheck.cjs +0 -31
  210. package/dist/cjs/tools/local/syntaxCheck.cjs.map +1 -1
  211. package/dist/cjs/tools/local/textEncoding.cjs +0 -11
  212. package/dist/cjs/tools/local/textEncoding.cjs.map +1 -1
  213. package/dist/cjs/tools/local/workspaceFS.cjs +0 -33
  214. package/dist/cjs/tools/local/workspaceFS.cjs.map +1 -1
  215. package/dist/cjs/tools/ptcTimeout.cjs.map +1 -1
  216. package/dist/cjs/tools/schema.cjs +0 -8
  217. package/dist/cjs/tools/schema.cjs.map +1 -1
  218. package/dist/cjs/tools/search/anthropic.cjs +0 -9
  219. package/dist/cjs/tools/search/anthropic.cjs.map +1 -1
  220. package/dist/cjs/tools/search/content.cjs.map +1 -1
  221. package/dist/cjs/tools/search/crw-scraper.cjs +0 -33
  222. package/dist/cjs/tools/search/crw-scraper.cjs.map +1 -1
  223. package/dist/cjs/tools/search/crw-search.cjs +0 -2
  224. package/dist/cjs/tools/search/crw-search.cjs.map +1 -1
  225. package/dist/cjs/tools/search/firecrawl.cjs +0 -25
  226. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
  227. package/dist/cjs/tools/search/format.cjs +0 -30
  228. package/dist/cjs/tools/search/format.cjs.map +1 -1
  229. package/dist/cjs/tools/search/highlights.cjs +0 -16
  230. package/dist/cjs/tools/search/highlights.cjs.map +1 -1
  231. package/dist/cjs/tools/search/keenable-scraper.cjs +0 -8
  232. package/dist/cjs/tools/search/keenable-scraper.cjs.map +1 -1
  233. package/dist/cjs/tools/search/keenable-search.cjs +0 -7
  234. package/dist/cjs/tools/search/keenable-search.cjs.map +1 -1
  235. package/dist/cjs/tools/search/rerankers.cjs +0 -35
  236. package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
  237. package/dist/cjs/tools/search/schema.cjs +0 -1
  238. package/dist/cjs/tools/search/schema.cjs.map +1 -1
  239. package/dist/cjs/tools/search/search.cjs +1 -14
  240. package/dist/cjs/tools/search/search.cjs.map +1 -1
  241. package/dist/cjs/tools/search/serper-scraper.cjs +0 -46
  242. package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -1
  243. package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -1
  244. package/dist/cjs/tools/search/tavily-search.cjs.map +1 -1
  245. package/dist/cjs/tools/search/tool.cjs +0 -25
  246. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  247. package/dist/cjs/tools/search/utils.cjs +0 -8
  248. package/dist/cjs/tools/search/utils.cjs.map +1 -1
  249. package/dist/cjs/tools/skillCatalog.cjs +0 -6
  250. package/dist/cjs/tools/skillCatalog.cjs.map +1 -1
  251. package/dist/cjs/tools/streamedToolCallSeals.cjs +0 -6
  252. package/dist/cjs/tools/streamedToolCallSeals.cjs.map +1 -1
  253. package/dist/cjs/tools/subagent/SubagentExecutionRegistry.cjs +0 -2
  254. package/dist/cjs/tools/subagent/SubagentExecutionRegistry.cjs.map +1 -1
  255. package/dist/cjs/tools/subagent/SubagentExecutor.cjs +3 -213
  256. package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
  257. package/dist/cjs/tools/subagent/SubagentReplay.cjs.map +1 -1
  258. package/dist/cjs/tools/subagent/childGraphConfig.cjs +0 -4
  259. package/dist/cjs/tools/subagent/childGraphConfig.cjs.map +1 -1
  260. package/dist/cjs/tools/subagent/runtimeLimits.cjs.map +1 -1
  261. package/dist/cjs/tools/toolOutputReferences.cjs +1 -322
  262. package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -1
  263. package/dist/cjs/types/hitl.cjs +0 -5
  264. package/dist/cjs/types/hitl.cjs.map +1 -1
  265. package/dist/cjs/utils/callbacks.cjs.map +1 -1
  266. package/dist/cjs/utils/errors.cjs +14 -165
  267. package/dist/cjs/utils/errors.cjs.map +1 -1
  268. package/dist/cjs/utils/events.cjs +0 -10
  269. package/dist/cjs/utils/events.cjs.map +1 -1
  270. package/dist/cjs/utils/graph.cjs.map +1 -1
  271. package/dist/cjs/utils/handlers.cjs +0 -3
  272. package/dist/cjs/utils/handlers.cjs.map +1 -1
  273. package/dist/cjs/utils/llm.cjs +0 -1
  274. package/dist/cjs/utils/llm.cjs.map +1 -1
  275. package/dist/cjs/utils/misc.cjs +0 -16
  276. package/dist/cjs/utils/misc.cjs.map +1 -1
  277. package/dist/cjs/utils/proxy.cjs +0 -26
  278. package/dist/cjs/utils/proxy.cjs.map +1 -1
  279. package/dist/cjs/utils/run.cjs +0 -6
  280. package/dist/cjs/utils/run.cjs.map +1 -1
  281. package/dist/cjs/utils/schema.cjs +0 -5
  282. package/dist/cjs/utils/schema.cjs.map +1 -1
  283. package/dist/cjs/utils/title.cjs +0 -6
  284. package/dist/cjs/utils/title.cjs.map +1 -1
  285. package/dist/cjs/utils/tokens.cjs +0 -113
  286. package/dist/cjs/utils/tokens.cjs.map +1 -1
  287. package/dist/cjs/utils/toolContent.cjs +0 -41
  288. package/dist/cjs/utils/toolContent.cjs.map +1 -1
  289. package/dist/cjs/utils/truncation.cjs +0 -61
  290. package/dist/cjs/utils/truncation.cjs.map +1 -1
  291. package/dist/esm/agents/AgentContext.mjs +0 -356
  292. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  293. package/dist/esm/agents/projection.mjs +0 -9
  294. package/dist/esm/agents/projection.mjs.map +1 -1
  295. package/dist/esm/common/constants.mjs +0 -26
  296. package/dist/esm/common/constants.mjs.map +1 -1
  297. package/dist/esm/common/enum.mjs +0 -85
  298. package/dist/esm/common/enum.mjs.map +1 -1
  299. package/dist/esm/events.mjs +0 -14
  300. package/dist/esm/events.mjs.map +1 -1
  301. package/dist/esm/graphs/Graph.mjs +1 -909
  302. package/dist/esm/graphs/Graph.mjs.map +1 -1
  303. package/dist/esm/graphs/MultiAgentGraph.mjs +7 -272
  304. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  305. package/dist/esm/graphs/applyGraphRuntimeConfig.mjs.map +1 -1
  306. package/dist/esm/graphs/createGraph.mjs.map +1 -1
  307. package/dist/esm/hitl/askUserQuestion.mjs +0 -53
  308. package/dist/esm/hitl/askUserQuestion.mjs.map +1 -1
  309. package/dist/esm/hitl/askUserQuestions.mjs +0 -20
  310. package/dist/esm/hitl/askUserQuestions.mjs.map +1 -1
  311. package/dist/esm/hitl/askUserQuestionsInterrupt.mjs +0 -6
  312. package/dist/esm/hitl/askUserQuestionsInterrupt.mjs.map +1 -1
  313. package/dist/esm/hooks/HookRegistry.mjs +0 -127
  314. package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
  315. package/dist/esm/hooks/createToolPolicyHook.mjs +0 -38
  316. package/dist/esm/hooks/createToolPolicyHook.mjs.map +1 -1
  317. package/dist/esm/hooks/createWorkspacePolicyHook.mjs +0 -77
  318. package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -1
  319. package/dist/esm/hooks/executeHooks.mjs +0 -79
  320. package/dist/esm/hooks/executeHooks.mjs.map +1 -1
  321. package/dist/esm/hooks/index.mjs +0 -16
  322. package/dist/esm/hooks/index.mjs.map +1 -1
  323. package/dist/esm/hooks/matchers.mjs +0 -104
  324. package/dist/esm/hooks/matchers.mjs.map +1 -1
  325. package/dist/esm/hooks/types.mjs +0 -8
  326. package/dist/esm/hooks/types.mjs.map +1 -1
  327. package/dist/esm/instrumentation.mjs +0 -14
  328. package/dist/esm/instrumentation.mjs.map +1 -1
  329. package/dist/esm/langfuse.mjs +0 -75
  330. package/dist/esm/langfuse.mjs.map +1 -1
  331. package/dist/esm/langfuseConfig.mjs.map +1 -1
  332. package/dist/esm/langfuseRuntimeContext.mjs +0 -13
  333. package/dist/esm/langfuseRuntimeContext.mjs.map +1 -1
  334. package/dist/esm/langfuseRuntimeScope.mjs +0 -4
  335. package/dist/esm/langfuseRuntimeScope.mjs.map +1 -1
  336. package/dist/esm/langfuseSpanRegistry.mjs +0 -28
  337. package/dist/esm/langfuseSpanRegistry.mjs.map +1 -1
  338. package/dist/esm/langfuseToolOutputTracing.mjs +0 -3
  339. package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
  340. package/dist/esm/langfuseTraceShaping.mjs +0 -74
  341. package/dist/esm/langfuseTraceShaping.mjs.map +1 -1
  342. package/dist/esm/llm/anthropic/index.mjs +0 -3
  343. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  344. package/dist/esm/llm/anthropic/types.mjs.map +1 -1
  345. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +1 -111
  346. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  347. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +0 -1
  348. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
  349. package/dist/esm/llm/anthropic/utils/stream_events.mjs +0 -8
  350. package/dist/esm/llm/anthropic/utils/stream_events.mjs.map +1 -1
  351. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -1
  352. package/dist/esm/llm/bedrock/cachePoints.mjs.map +1 -1
  353. package/dist/esm/llm/bedrock/index.mjs +1 -95
  354. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  355. package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
  356. package/dist/esm/llm/bedrock/utils/message_inputs.mjs +0 -78
  357. package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -1
  358. package/dist/esm/llm/bedrock/utils/message_outputs.mjs +0 -24
  359. package/dist/esm/llm/bedrock/utils/message_outputs.mjs.map +1 -1
  360. package/dist/esm/llm/contextOverflowRecovery.mjs +0 -62
  361. package/dist/esm/llm/contextOverflowRecovery.mjs.map +1 -1
  362. package/dist/esm/llm/fake.mjs.map +1 -1
  363. package/dist/esm/llm/google/index.mjs +2 -21
  364. package/dist/esm/llm/google/index.mjs.map +1 -1
  365. package/dist/esm/llm/google/utils/common.mjs +5 -35
  366. package/dist/esm/llm/google/utils/common.mjs.map +1 -1
  367. package/dist/esm/llm/init.mjs +0 -9
  368. package/dist/esm/llm/init.mjs.map +1 -1
  369. package/dist/esm/llm/invoke.mjs +1 -270
  370. package/dist/esm/llm/invoke.mjs.map +1 -1
  371. package/dist/esm/llm/mistral/index.mjs.map +1 -1
  372. package/dist/esm/llm/openai/index.mjs +0 -99
  373. package/dist/esm/llm/openai/index.mjs.map +1 -1
  374. package/dist/esm/llm/openai/streamMetadata.mjs +0 -21
  375. package/dist/esm/llm/openai/streamMetadata.mjs.map +1 -1
  376. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  377. package/dist/esm/llm/openrouter/index.mjs +0 -1
  378. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  379. package/dist/esm/llm/openrouter/toolCache.mjs +0 -6
  380. package/dist/esm/llm/openrouter/toolCache.mjs.map +1 -1
  381. package/dist/esm/llm/preempt.mjs +0 -75
  382. package/dist/esm/llm/preempt.mjs.map +1 -1
  383. package/dist/esm/llm/providers.mjs.map +1 -1
  384. package/dist/esm/llm/request.mjs +0 -10
  385. package/dist/esm/llm/request.mjs.map +1 -1
  386. package/dist/esm/llm/stream/chunkAdapters.mjs +0 -62
  387. package/dist/esm/llm/stream/chunkAdapters.mjs.map +1 -1
  388. package/dist/esm/llm/stream/smoother.mjs +0 -58
  389. package/dist/esm/llm/stream/smoother.mjs.map +1 -1
  390. package/dist/esm/llm/streamLimits.mjs +4 -293
  391. package/dist/esm/llm/streamLimits.mjs.map +1 -1
  392. package/dist/esm/llm/truncation.mjs +0 -36
  393. package/dist/esm/llm/truncation.mjs.map +1 -1
  394. package/dist/esm/llm/vertexai/index.mjs +0 -330
  395. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  396. package/dist/esm/messages/alternation.mjs +0 -43
  397. package/dist/esm/messages/alternation.mjs.map +1 -1
  398. package/dist/esm/messages/anthropicToolCache.mjs +0 -45
  399. package/dist/esm/messages/anthropicToolCache.mjs.map +1 -1
  400. package/dist/esm/messages/assistantPhase.mjs +0 -12
  401. package/dist/esm/messages/assistantPhase.mjs.map +1 -1
  402. package/dist/esm/messages/budget.mjs +0 -9
  403. package/dist/esm/messages/budget.mjs.map +1 -1
  404. package/dist/esm/messages/cache.mjs +0 -172
  405. package/dist/esm/messages/cache.mjs.map +1 -1
  406. package/dist/esm/messages/content.mjs +0 -9
  407. package/dist/esm/messages/content.mjs.map +1 -1
  408. package/dist/esm/messages/contextPruning.mjs +0 -15
  409. package/dist/esm/messages/contextPruning.mjs.map +1 -1
  410. package/dist/esm/messages/contextPruningSettings.mjs +0 -3
  411. package/dist/esm/messages/contextPruningSettings.mjs.map +1 -1
  412. package/dist/esm/messages/core.mjs +0 -48
  413. package/dist/esm/messages/core.mjs.map +1 -1
  414. package/dist/esm/messages/format.mjs +1 -345
  415. package/dist/esm/messages/format.mjs.map +1 -1
  416. package/dist/esm/messages/handoffCue.mjs +0 -36
  417. package/dist/esm/messages/handoffCue.mjs.map +1 -1
  418. package/dist/esm/messages/ids.mjs.map +1 -1
  419. package/dist/esm/messages/injected.mjs +0 -33
  420. package/dist/esm/messages/injected.mjs.map +1 -1
  421. package/dist/esm/messages/langchain.mjs +0 -14
  422. package/dist/esm/messages/langchain.mjs.map +1 -1
  423. package/dist/esm/messages/prune.mjs +1 -184
  424. package/dist/esm/messages/prune.mjs.map +1 -1
  425. package/dist/esm/messages/recency.mjs +0 -32
  426. package/dist/esm/messages/recency.mjs.map +1 -1
  427. package/dist/esm/messages/reducer.mjs +0 -30
  428. package/dist/esm/messages/reducer.mjs.map +1 -1
  429. package/dist/esm/messages/tools.mjs +0 -14
  430. package/dist/esm/messages/tools.mjs.map +1 -1
  431. package/dist/esm/openai/index.mjs.map +1 -1
  432. package/dist/esm/prompts/activityLabel.mjs +9 -79
  433. package/dist/esm/prompts/activityLabel.mjs.map +1 -1
  434. package/dist/esm/responses/index.mjs.map +1 -1
  435. package/dist/esm/run.mjs +2 -538
  436. package/dist/esm/run.mjs.map +1 -1
  437. package/dist/esm/session/AgentSession.mjs +1 -17
  438. package/dist/esm/session/AgentSession.mjs.map +1 -1
  439. package/dist/esm/session/JsonlSessionStore.mjs.map +1 -1
  440. package/dist/esm/session/handlers.mjs +0 -7
  441. package/dist/esm/session/handlers.mjs.map +1 -1
  442. package/dist/esm/session/ids.mjs.map +1 -1
  443. package/dist/esm/session/messageSerialization.mjs +0 -4
  444. package/dist/esm/session/messageSerialization.mjs.map +1 -1
  445. package/dist/esm/stream.mjs +1 -93
  446. package/dist/esm/stream.mjs.map +1 -1
  447. package/dist/esm/summarization/index.mjs +0 -27
  448. package/dist/esm/summarization/index.mjs.map +1 -1
  449. package/dist/esm/summarization/node.mjs +0 -273
  450. package/dist/esm/summarization/node.mjs.map +1 -1
  451. package/dist/esm/tools/BashExecutor.mjs +0 -35
  452. package/dist/esm/tools/BashExecutor.mjs.map +1 -1
  453. package/dist/esm/tools/BashProgrammaticToolCalling.mjs +0 -24
  454. package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
  455. package/dist/esm/tools/Calculator.mjs.map +1 -1
  456. package/dist/esm/tools/CodeExecutor.mjs +0 -13
  457. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  458. package/dist/esm/tools/CodeSessionFileSummary.mjs.map +1 -1
  459. package/dist/esm/tools/ProgrammaticToolCalling.mjs +0 -101
  460. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  461. package/dist/esm/tools/ReadFile.mjs.map +1 -1
  462. package/dist/esm/tools/SkillTool.mjs +0 -5
  463. package/dist/esm/tools/SkillTool.mjs.map +1 -1
  464. package/dist/esm/tools/SubagentTool.mjs +0 -10
  465. package/dist/esm/tools/SubagentTool.mjs.map +1 -1
  466. package/dist/esm/tools/ToolNode.mjs +6 -1038
  467. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  468. package/dist/esm/tools/ToolSearch.mjs +0 -179
  469. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  470. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs.map +1 -1
  471. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs.map +1 -1
  472. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs +0 -39
  473. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs.map +1 -1
  474. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs.map +1 -1
  475. package/dist/esm/tools/eagerEventExecution.mjs +0 -6
  476. package/dist/esm/tools/eagerEventExecution.mjs.map +1 -1
  477. package/dist/esm/tools/handlers.mjs +1 -41
  478. package/dist/esm/tools/handlers.mjs.map +1 -1
  479. package/dist/esm/tools/intentArg.mjs +1 -132
  480. package/dist/esm/tools/intentArg.mjs.map +1 -1
  481. package/dist/esm/tools/local/CompileCheckTool.mjs +0 -25
  482. package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -1
  483. package/dist/esm/tools/local/FileCheckpointer.mjs +0 -23
  484. package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -1
  485. package/dist/esm/tools/local/LocalCodingTools.mjs +0 -80
  486. package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -1
  487. package/dist/esm/tools/local/LocalExecutionEngine.mjs +0 -126
  488. package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -1
  489. package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -1
  490. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +0 -12
  491. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
  492. package/dist/esm/tools/local/attachments.mjs +0 -44
  493. package/dist/esm/tools/local/attachments.mjs.map +1 -1
  494. package/dist/esm/tools/local/bashAst.mjs +0 -16
  495. package/dist/esm/tools/local/bashAst.mjs.map +1 -1
  496. package/dist/esm/tools/local/editStrategies.mjs +0 -14
  497. package/dist/esm/tools/local/editStrategies.mjs.map +1 -1
  498. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
  499. package/dist/esm/tools/local/syntaxCheck.mjs +0 -31
  500. package/dist/esm/tools/local/syntaxCheck.mjs.map +1 -1
  501. package/dist/esm/tools/local/textEncoding.mjs +0 -11
  502. package/dist/esm/tools/local/textEncoding.mjs.map +1 -1
  503. package/dist/esm/tools/local/workspaceFS.mjs +0 -33
  504. package/dist/esm/tools/local/workspaceFS.mjs.map +1 -1
  505. package/dist/esm/tools/ptcTimeout.mjs.map +1 -1
  506. package/dist/esm/tools/schema.mjs +0 -8
  507. package/dist/esm/tools/schema.mjs.map +1 -1
  508. package/dist/esm/tools/search/anthropic.mjs +0 -9
  509. package/dist/esm/tools/search/anthropic.mjs.map +1 -1
  510. package/dist/esm/tools/search/content.mjs.map +1 -1
  511. package/dist/esm/tools/search/crw-scraper.mjs +0 -33
  512. package/dist/esm/tools/search/crw-scraper.mjs.map +1 -1
  513. package/dist/esm/tools/search/crw-search.mjs +0 -2
  514. package/dist/esm/tools/search/crw-search.mjs.map +1 -1
  515. package/dist/esm/tools/search/firecrawl.mjs +0 -25
  516. package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
  517. package/dist/esm/tools/search/format.mjs +0 -30
  518. package/dist/esm/tools/search/format.mjs.map +1 -1
  519. package/dist/esm/tools/search/highlights.mjs +0 -16
  520. package/dist/esm/tools/search/highlights.mjs.map +1 -1
  521. package/dist/esm/tools/search/keenable-scraper.mjs +0 -8
  522. package/dist/esm/tools/search/keenable-scraper.mjs.map +1 -1
  523. package/dist/esm/tools/search/keenable-search.mjs +0 -7
  524. package/dist/esm/tools/search/keenable-search.mjs.map +1 -1
  525. package/dist/esm/tools/search/rerankers.mjs +0 -35
  526. package/dist/esm/tools/search/rerankers.mjs.map +1 -1
  527. package/dist/esm/tools/search/schema.mjs +0 -1
  528. package/dist/esm/tools/search/schema.mjs.map +1 -1
  529. package/dist/esm/tools/search/search.mjs +1 -14
  530. package/dist/esm/tools/search/search.mjs.map +1 -1
  531. package/dist/esm/tools/search/serper-scraper.mjs +0 -46
  532. package/dist/esm/tools/search/serper-scraper.mjs.map +1 -1
  533. package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -1
  534. package/dist/esm/tools/search/tavily-search.mjs.map +1 -1
  535. package/dist/esm/tools/search/tool.mjs +0 -25
  536. package/dist/esm/tools/search/tool.mjs.map +1 -1
  537. package/dist/esm/tools/search/utils.mjs +0 -8
  538. package/dist/esm/tools/search/utils.mjs.map +1 -1
  539. package/dist/esm/tools/skillCatalog.mjs +0 -6
  540. package/dist/esm/tools/skillCatalog.mjs.map +1 -1
  541. package/dist/esm/tools/streamedToolCallSeals.mjs +0 -6
  542. package/dist/esm/tools/streamedToolCallSeals.mjs.map +1 -1
  543. package/dist/esm/tools/subagent/SubagentExecutionRegistry.mjs +0 -2
  544. package/dist/esm/tools/subagent/SubagentExecutionRegistry.mjs.map +1 -1
  545. package/dist/esm/tools/subagent/SubagentExecutor.mjs +3 -213
  546. package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
  547. package/dist/esm/tools/subagent/SubagentReplay.mjs.map +1 -1
  548. package/dist/esm/tools/subagent/childGraphConfig.mjs +0 -4
  549. package/dist/esm/tools/subagent/childGraphConfig.mjs.map +1 -1
  550. package/dist/esm/tools/subagent/runtimeLimits.mjs.map +1 -1
  551. package/dist/esm/tools/toolOutputReferences.mjs +1 -322
  552. package/dist/esm/tools/toolOutputReferences.mjs.map +1 -1
  553. package/dist/esm/types/hitl.mjs +0 -5
  554. package/dist/esm/types/hitl.mjs.map +1 -1
  555. package/dist/esm/utils/callbacks.mjs.map +1 -1
  556. package/dist/esm/utils/errors.mjs +14 -165
  557. package/dist/esm/utils/errors.mjs.map +1 -1
  558. package/dist/esm/utils/events.mjs +0 -10
  559. package/dist/esm/utils/events.mjs.map +1 -1
  560. package/dist/esm/utils/graph.mjs.map +1 -1
  561. package/dist/esm/utils/handlers.mjs +0 -3
  562. package/dist/esm/utils/handlers.mjs.map +1 -1
  563. package/dist/esm/utils/llm.mjs +0 -1
  564. package/dist/esm/utils/llm.mjs.map +1 -1
  565. package/dist/esm/utils/misc.mjs +0 -16
  566. package/dist/esm/utils/misc.mjs.map +1 -1
  567. package/dist/esm/utils/proxy.mjs +0 -26
  568. package/dist/esm/utils/proxy.mjs.map +1 -1
  569. package/dist/esm/utils/run.mjs +0 -6
  570. package/dist/esm/utils/run.mjs.map +1 -1
  571. package/dist/esm/utils/schema.mjs +0 -5
  572. package/dist/esm/utils/schema.mjs.map +1 -1
  573. package/dist/esm/utils/title.mjs +0 -6
  574. package/dist/esm/utils/title.mjs.map +1 -1
  575. package/dist/esm/utils/tokens.mjs +0 -113
  576. package/dist/esm/utils/tokens.mjs.map +1 -1
  577. package/dist/esm/utils/toolContent.mjs +0 -41
  578. package/dist/esm/utils/toolContent.mjs.map +1 -1
  579. package/dist/esm/utils/truncation.mjs +0 -61
  580. package/dist/esm/utils/truncation.mjs.map +1 -1
  581. package/dist/types/agents/AgentContext.d.ts +3 -3
  582. package/dist/types/agents/__tests__/promptCacheLiveHelpers.d.ts +3 -3
  583. package/dist/types/agents/projection.d.ts +1 -1
  584. package/dist/types/events.d.ts +2 -2
  585. package/dist/types/graphs/Graph.d.ts +11 -11
  586. package/dist/types/graphs/MultiAgentGraph.d.ts +2 -2
  587. package/dist/types/graphs/createGraph.d.ts +4 -4
  588. package/dist/types/graphs/graphFactory.d.ts +1 -1
  589. package/dist/types/hitl/askUserQuestion.d.ts +1 -1
  590. package/dist/types/hitl/askUserQuestions.d.ts +1 -1
  591. package/dist/types/hitl/askUserQuestionsInterrupt.d.ts +1 -1
  592. package/dist/types/hooks/types.d.ts +1 -1
  593. package/dist/types/instrumentation.d.ts +1 -1
  594. package/dist/types/langfuse.d.ts +3 -3
  595. package/dist/types/langfuseConfig.d.ts +2 -2
  596. package/dist/types/langfuseRuntimeContext.d.ts +1 -1
  597. package/dist/types/langfuseRuntimeScope.d.ts +2 -2
  598. package/dist/types/langfuseSpanRegistry.d.ts +1 -1
  599. package/dist/types/langfuseToolOutputTracing.d.ts +3 -3
  600. package/dist/types/llm/anthropic/index.d.ts +1 -1
  601. package/dist/types/llm/bedrock/index.d.ts +1 -1
  602. package/dist/types/llm/bedrock/toolCache.d.ts +2 -2
  603. package/dist/types/llm/contextOverflowRecovery.d.ts +2 -2
  604. package/dist/types/llm/google/index.d.ts +1 -1
  605. package/dist/types/llm/init.d.ts +2 -2
  606. package/dist/types/llm/invoke.d.ts +6 -6
  607. package/dist/types/llm/mistral/index.d.ts +1 -1
  608. package/dist/types/llm/openai/index.d.ts +2 -2
  609. package/dist/types/llm/openrouter/index.d.ts +2 -2
  610. package/dist/types/llm/openrouter/toolCache.d.ts +2 -2
  611. package/dist/types/llm/providers.d.ts +2 -2
  612. package/dist/types/llm/request.d.ts +2 -2
  613. package/dist/types/llm/stream/chunkAdapters.d.ts +1 -1
  614. package/dist/types/llm/streamLimits.d.ts +1 -1
  615. package/dist/types/llm/truncation.d.ts +1 -1
  616. package/dist/types/llm/vertexai/index.d.ts +1 -1
  617. package/dist/types/messages/alternation.d.ts +1 -1
  618. package/dist/types/messages/anthropicToolCache.d.ts +2 -2
  619. package/dist/types/messages/assistantPhase.d.ts +3 -3
  620. package/dist/types/messages/budget.d.ts +1 -1
  621. package/dist/types/messages/cache.d.ts +1 -1
  622. package/dist/types/messages/contextPruning.d.ts +2 -2
  623. package/dist/types/messages/core.d.ts +2 -2
  624. package/dist/types/messages/format.d.ts +2 -2
  625. package/dist/types/messages/ids.d.ts +2 -2
  626. package/dist/types/messages/injected.d.ts +1 -1
  627. package/dist/types/messages/langchain.d.ts +1 -1
  628. package/dist/types/messages/prune.d.ts +3 -3
  629. package/dist/types/openai/index.d.ts +1 -1
  630. package/dist/types/prompts/activityLabel.d.ts +2 -2
  631. package/dist/types/responses/index.d.ts +1 -1
  632. package/dist/types/run.d.ts +3 -3
  633. package/dist/types/session/handlers.d.ts +1 -1
  634. package/dist/types/session/types.d.ts +1 -1
  635. package/dist/types/stream.d.ts +4 -4
  636. package/dist/types/summarization/index.d.ts +1 -1
  637. package/dist/types/summarization/node.d.ts +6 -6
  638. package/dist/types/test/mockTools.d.ts +1 -1
  639. package/dist/types/tools/BashExecutor.d.ts +2 -2
  640. package/dist/types/tools/BashProgrammaticToolCalling.d.ts +2 -2
  641. package/dist/types/tools/CodeExecutor.d.ts +3 -3
  642. package/dist/types/tools/CodeSessionFileSummary.d.ts +1 -1
  643. package/dist/types/tools/ProgrammaticToolCalling.d.ts +2 -2
  644. package/dist/types/tools/ReadFile.d.ts +1 -1
  645. package/dist/types/tools/SkillTool.d.ts +1 -1
  646. package/dist/types/tools/SubagentTool.d.ts +3 -3
  647. package/dist/types/tools/ToolNode.d.ts +5 -5
  648. package/dist/types/tools/ToolSearch.d.ts +2 -2
  649. package/dist/types/tools/cloudflare/CloudflareBridgeRuntime.d.ts +1 -1
  650. package/dist/types/tools/cloudflare/CloudflareProgrammaticToolCalling.d.ts +1 -1
  651. package/dist/types/tools/cloudflare/CloudflareSandboxExecutionEngine.d.ts +2 -2
  652. package/dist/types/tools/cloudflare/CloudflareSandboxTools.d.ts +1 -1
  653. package/dist/types/tools/eagerEventExecution.d.ts +1 -1
  654. package/dist/types/tools/handlers.d.ts +3 -3
  655. package/dist/types/tools/intentArg.d.ts +1 -1
  656. package/dist/types/tools/local/CompileCheckTool.d.ts +2 -2
  657. package/dist/types/tools/local/FileCheckpointer.d.ts +1 -1
  658. package/dist/types/tools/local/LocalCodingTools.d.ts +2 -2
  659. package/dist/types/tools/local/LocalExecutionEngine.d.ts +1 -1
  660. package/dist/types/tools/local/LocalExecutionTools.d.ts +1 -1
  661. package/dist/types/tools/local/LocalProgrammaticToolCalling.d.ts +1 -1
  662. package/dist/types/tools/local/bashAst.d.ts +1 -1
  663. package/dist/types/tools/local/resolveLocalExecutionTools.d.ts +1 -1
  664. package/dist/types/tools/local/syntaxCheck.d.ts +1 -1
  665. package/dist/types/tools/ptcTimeout.d.ts +1 -1
  666. package/dist/types/tools/schema.d.ts +1 -1
  667. package/dist/types/tools/search/anthropic.d.ts +1 -1
  668. package/dist/types/tools/skillCatalog.d.ts +1 -1
  669. package/dist/types/tools/subagent/SubagentExecutor.d.ts +5 -5
  670. package/dist/types/tools/subagent/SubagentReplay.d.ts +3 -3
  671. package/dist/types/tools/subagent/childGraphConfig.d.ts +2 -2
  672. package/dist/types/types/activityLabel.d.ts +3 -3
  673. package/dist/types/types/graph.d.ts +7 -7
  674. package/dist/types/types/llm.d.ts +9 -9
  675. package/dist/types/types/run.d.ts +7 -7
  676. package/dist/types/types/stream.d.ts +5 -5
  677. package/dist/types/types/summarize.d.ts +2 -2
  678. package/dist/types/types/tools.d.ts +5 -5
  679. package/dist/types/utils/__tests__/fixtures/contextOverflowSignatures.d.ts +1 -1
  680. package/dist/types/utils/errors.d.ts +1 -1
  681. package/dist/types/utils/events.d.ts +1 -1
  682. package/dist/types/utils/handlers.d.ts +3 -3
  683. package/dist/types/utils/llm.d.ts +1 -1
  684. package/dist/types/utils/llmConfig.d.ts +1 -1
  685. package/dist/types/utils/title.d.ts +1 -1
  686. package/package.json +10 -3
  687. package/src/llm/google/utils/common.ts +6 -4
  688. package/src/__tests__/stream.eagerArgsDivergence.test.ts +0 -911
  689. package/src/__tests__/stream.eagerEventExecution.test.ts +0 -5046
  690. package/src/__tests__/stream.streamLimits.test.ts +0 -1982
  691. package/src/agents/__tests__/AgentContext.anthropic.live.test.ts +0 -448
  692. package/src/agents/__tests__/AgentContext.bedrock.live.test.ts +0 -655
  693. package/src/agents/__tests__/AgentContext.openrouter.live.test.ts +0 -128
  694. package/src/agents/__tests__/AgentContext.overflow.test.ts +0 -205
  695. package/src/agents/__tests__/AgentContext.test.ts +0 -2425
  696. package/src/agents/__tests__/projection.test.ts +0 -73
  697. package/src/agents/__tests__/promptCacheLiveHelpers.ts +0 -175
  698. package/src/aggregator.test.ts +0 -1214
  699. package/src/graphs/__tests__/Graph.breakerLifecycle.test.ts +0 -273
  700. package/src/graphs/__tests__/Graph.closeRunStep.test.ts +0 -385
  701. package/src/graphs/__tests__/Graph.contextOverflow.test.ts +0 -1766
  702. package/src/graphs/__tests__/Graph.preemptSignal.test.ts +0 -126
  703. package/src/graphs/__tests__/Graph.reasoning.test.ts +0 -1717
  704. package/src/graphs/__tests__/Graph.subagentResumeState.test.ts +0 -80
  705. package/src/graphs/__tests__/MultiAgentGraph.test.ts +0 -177
  706. package/src/graphs/__tests__/composition.smoke.test.ts +0 -509
  707. package/src/graphs/__tests__/createGraph.test.ts +0 -206
  708. package/src/hooks/__tests__/HookRegistry.test.ts +0 -334
  709. package/src/hooks/__tests__/compactHooks.test.ts +0 -250
  710. package/src/hooks/__tests__/createToolPolicyHook.test.ts +0 -268
  711. package/src/hooks/__tests__/createWorkspacePolicyHook.test.ts +0 -405
  712. package/src/hooks/__tests__/executeHooks.test.ts +0 -1294
  713. package/src/hooks/__tests__/integration.test.ts +0 -337
  714. package/src/hooks/__tests__/matchers.test.ts +0 -238
  715. package/src/hooks/__tests__/preemptBoundary.test.ts +0 -152
  716. package/src/hooks/__tests__/toolHooks.test.ts +0 -669
  717. package/src/llm/__tests__/contextOverflowRecovery.test.ts +0 -401
  718. package/src/llm/__tests__/fallbackOverflow.test.ts +0 -287
  719. package/src/llm/anthropic/Jacob_Lee_Resume_2023.pdf +0 -0
  720. package/src/llm/anthropic/inherited-content-utils.spec.ts +0 -249
  721. package/src/llm/anthropic/inherited-stream-events.spec.ts +0 -1259
  722. package/src/llm/anthropic/inherited-strict.spec.ts +0 -302
  723. package/src/llm/anthropic/llm.spec.ts +0 -3394
  724. package/src/llm/anthropic/utils/cross-provider-reasoning.test.ts +0 -383
  725. package/src/llm/anthropic/utils/cross-provider-server-tools.test.ts +0 -110
  726. package/src/llm/anthropic/utils/server-tool-inputs.test.ts +0 -508
  727. package/src/llm/anthropic/utils/streaming-tool-input.test.ts +0 -361
  728. package/src/llm/anthropic/utils/stripPrefillCache.test.ts +0 -111
  729. package/src/llm/anthropic/utils/tool-id-normalization.test.ts +0 -287
  730. package/src/llm/bedrock/inherited-cache.spec.ts +0 -144
  731. package/src/llm/bedrock/inherited.spec.ts +0 -724
  732. package/src/llm/bedrock/llm.spec.ts +0 -1533
  733. package/src/llm/bedrock/streamSealDispatch.test.ts +0 -331
  734. package/src/llm/bedrock/toolCache.test.ts +0 -194
  735. package/src/llm/bedrock/utils/cross-provider-reasoning.test.ts +0 -131
  736. package/src/llm/bedrock/utils/cross-provider-server-tools.test.ts +0 -122
  737. package/src/llm/bedrock/utils/message_inputs.test.ts +0 -650
  738. package/src/llm/bedrock/utils/message_outputs.test.ts +0 -85
  739. package/src/llm/bedrock/utils/toolResultCachePoint.test.ts +0 -118
  740. package/src/llm/custom-chat-models.smoke.test.ts +0 -1966
  741. package/src/llm/google/data/gettysburg10.wav +0 -0
  742. package/src/llm/google/data/hotdog.jpg +0 -0
  743. package/src/llm/google/inherited-stream-events.spec.ts +0 -350
  744. package/src/llm/google/llm.spec.ts +0 -1388
  745. package/src/llm/google/streamSmoothing.test.ts +0 -121
  746. package/src/llm/google/utils/common.test.ts +0 -185
  747. package/src/llm/invoke.alternation.test.ts +0 -87
  748. package/src/llm/invoke.handoffCue.test.ts +0 -112
  749. package/src/llm/invoke.streamLimits.test.ts +0 -142
  750. package/src/llm/invoke.test.ts +0 -1198
  751. package/src/llm/mistral/streamSmoothing.test.ts +0 -97
  752. package/src/llm/openai/cacheWriteTokens.test.ts +0 -112
  753. package/src/llm/openai/contentBlocks.test.ts +0 -381
  754. package/src/llm/openai/deepseek.test.ts +0 -747
  755. package/src/llm/openai/inherited-deepseek.spec.ts +0 -347
  756. package/src/llm/openai/inherited-xai.spec.ts +0 -416
  757. package/src/llm/openai/llm.spec.ts +0 -1774
  758. package/src/llm/openai/managedRequests.test.ts +0 -182
  759. package/src/llm/openai/sequentialToolCallSeals.test.ts +0 -199
  760. package/src/llm/openai/streamMetadata.spec.ts +0 -86
  761. package/src/llm/openai/streamMetadataDedup.spec.ts +0 -166
  762. package/src/llm/openai/utils/isReasoningModel.test.ts +0 -90
  763. package/src/llm/openai/utils/messages.test.ts +0 -488
  764. package/src/llm/openrouter/reasoning.test.ts +0 -561
  765. package/src/llm/openrouter/toolCache.test.ts +0 -134
  766. package/src/llm/preempt.test.ts +0 -323
  767. package/src/llm/stream/chunkAdapters.test.ts +0 -202
  768. package/src/llm/stream/reassembly.test.ts +0 -241
  769. package/src/llm/stream/smoother.bench.test.ts +0 -155
  770. package/src/llm/stream/smoother.test.ts +0 -519
  771. package/src/llm/streamLimits.test.ts +0 -450
  772. package/src/llm/truncation.test.ts +0 -242
  773. package/src/llm/vertexai/fixThoughtSignatures.test.ts +0 -154
  774. package/src/llm/vertexai/inherited-stream-events.spec.ts +0 -271
  775. package/src/llm/vertexai/llm.spec.ts +0 -159
  776. package/src/llm/vertexai/repairUsageMetadata.test.ts +0 -54
  777. package/src/llm/vertexai/sealStreamedToolCalls.test.ts +0 -88
  778. package/src/llm/vertexai/streamSealDispatch.test.ts +0 -148
  779. package/src/llm/vertexai/streamSmoothing.test.ts +0 -109
  780. package/src/messages/__tests__/anthropicToolCache.test.ts +0 -339
  781. package/src/messages/__tests__/observationMasking.test.ts +0 -312
  782. package/src/messages/__tests__/recency.test.ts +0 -267
  783. package/src/messages/__tests__/tools.test.ts +0 -473
  784. package/src/messages/alternation.test.ts +0 -212
  785. package/src/messages/assistantPhase.test.ts +0 -75
  786. package/src/messages/cache.tail.test.ts +0 -533
  787. package/src/messages/cache.test.ts +0 -2166
  788. package/src/messages/content.test.ts +0 -362
  789. package/src/messages/contextPruning.test.ts +0 -184
  790. package/src/messages/ensureThinkingBlock.test.ts +0 -1427
  791. package/src/messages/foldToollessToolBlocks.test.ts +0 -596
  792. package/src/messages/formatAgentMessages.reducer.test.ts +0 -162
  793. package/src/messages/formatAgentMessages.skills.test.ts +0 -513
  794. package/src/messages/formatAgentMessages.steer.test.ts +0 -598
  795. package/src/messages/formatAgentMessages.test.ts +0 -8111
  796. package/src/messages/formatAgentMessages.tools.test.ts +0 -522
  797. package/src/messages/formatMessage.test.ts +0 -693
  798. package/src/messages/handoffCue.test.ts +0 -96
  799. package/src/messages/injected.test.ts +0 -107
  800. package/src/messages/labelContentByAgent.test.ts +0 -962
  801. package/src/messages/reducer.spec.ts +0 -32
  802. package/src/messages/shiftIndexTokenCountMap.test.ts +0 -81
  803. package/src/messages/tailCacheConversion.test.ts +0 -161
  804. package/src/openai/__tests__/openai.test.ts +0 -337
  805. package/src/responses/__tests__/responses.test.ts +0 -652
  806. package/src/scripts/abort.ts +0 -157
  807. package/src/scripts/activity-labels/captured.json +0 -56
  808. package/src/scripts/activity-labels/checks.cjs +0 -205
  809. package/src/scripts/activity-labels/corpus.cjs +0 -473
  810. package/src/scripts/activity-labels/report.cjs +0 -203
  811. package/src/scripts/activity-labels/rescore.cjs +0 -102
  812. package/src/scripts/activity-labels/run.ts +0 -705
  813. package/src/scripts/activity-labels/variants.ts +0 -71
  814. package/src/scripts/ant_web_search.ts +0 -159
  815. package/src/scripts/ant_web_search_edge_case.ts +0 -163
  816. package/src/scripts/ant_web_search_error_edge_case.ts +0 -149
  817. package/src/scripts/args.ts +0 -48
  818. package/src/scripts/bedrock-cache-debug.ts +0 -250
  819. package/src/scripts/bedrock-content-aggregation-test.ts +0 -266
  820. package/src/scripts/bedrock-merge-test.ts +0 -107
  821. package/src/scripts/bedrock-parallel-tools-test.ts +0 -204
  822. package/src/scripts/bench-prompt-cache.ts +0 -479
  823. package/src/scripts/caching.ts +0 -132
  824. package/src/scripts/cli.ts +0 -172
  825. package/src/scripts/cli2.ts +0 -133
  826. package/src/scripts/cli3.ts +0 -184
  827. package/src/scripts/cli4.ts +0 -191
  828. package/src/scripts/cli5.ts +0 -191
  829. package/src/scripts/code_exec.ts +0 -214
  830. package/src/scripts/code_exec_files.ts +0 -237
  831. package/src/scripts/code_exec_multi_session.ts +0 -237
  832. package/src/scripts/code_exec_ptc.ts +0 -335
  833. package/src/scripts/code_exec_session.ts +0 -283
  834. package/src/scripts/code_exec_simple.ts +0 -148
  835. package/src/scripts/compare_pi_vs_ours.ts +0 -1259
  836. package/src/scripts/content.ts +0 -139
  837. package/src/scripts/context-overflow-probe.ts +0 -997
  838. package/src/scripts/empty_input.ts +0 -137
  839. package/src/scripts/handoff-test.ts +0 -134
  840. package/src/scripts/local_engine.ts +0 -166
  841. package/src/scripts/local_engine_checkpointer.ts +0 -205
  842. package/src/scripts/local_engine_compile.ts +0 -263
  843. package/src/scripts/local_engine_hooks.ts +0 -226
  844. package/src/scripts/local_engine_image.ts +0 -201
  845. package/src/scripts/local_engine_ptc.ts +0 -151
  846. package/src/scripts/local_engine_workspace.ts +0 -258
  847. package/src/scripts/memory.ts +0 -107
  848. package/src/scripts/multi-agent-chain.ts +0 -332
  849. package/src/scripts/multi-agent-conditional.ts +0 -222
  850. package/src/scripts/multi-agent-document-review-chain.ts +0 -198
  851. package/src/scripts/multi-agent-hybrid-flow.ts +0 -311
  852. package/src/scripts/multi-agent-parallel-start.ts +0 -265
  853. package/src/scripts/multi-agent-parallel.ts +0 -395
  854. package/src/scripts/multi-agent-sequence.ts +0 -217
  855. package/src/scripts/multi-agent-subagent.ts +0 -246
  856. package/src/scripts/multi-agent-supervisor.ts +0 -366
  857. package/src/scripts/multi-agent-test.ts +0 -187
  858. package/src/scripts/openrouter_prompt_cache_live.ts +0 -310
  859. package/src/scripts/parallel-asymmetric-tools-test.ts +0 -275
  860. package/src/scripts/parallel-full-metadata-test.ts +0 -241
  861. package/src/scripts/parallel-tools-test.ts +0 -341
  862. package/src/scripts/preempt-probe.ts +0 -330
  863. package/src/scripts/preempt-scenarios.ts +0 -388
  864. package/src/scripts/programmatic_exec.ts +0 -387
  865. package/src/scripts/programmatic_exec_agent.ts +0 -232
  866. package/src/scripts/search.ts +0 -147
  867. package/src/scripts/sequential-full-metadata-test.ts +0 -198
  868. package/src/scripts/session_live.ts +0 -548
  869. package/src/scripts/simple.ts +0 -226
  870. package/src/scripts/single-agent-metadata-test.ts +0 -196
  871. package/src/scripts/stream.ts +0 -141
  872. package/src/scripts/subagent-configurable-inheritance.ts +0 -252
  873. package/src/scripts/subagent-event-driven-debug.ts +0 -190
  874. package/src/scripts/subagent-tools-debug.ts +0 -160
  875. package/src/scripts/subagent-usage-sink.ts +0 -176
  876. package/src/scripts/summarization-recency.ts +0 -462
  877. package/src/scripts/test-custom-prompt-key.ts +0 -145
  878. package/src/scripts/test-handoff-input.ts +0 -170
  879. package/src/scripts/test-handoff-preamble.ts +0 -278
  880. package/src/scripts/test-handoff-steering.ts +0 -430
  881. package/src/scripts/test-multi-agent-list-handoff.ts +0 -418
  882. package/src/scripts/test-parallel-agent-labeling.ts +0 -327
  883. package/src/scripts/test-parallel-handoffs.ts +0 -292
  884. package/src/scripts/test-thinking-handoff-bedrock.ts +0 -154
  885. package/src/scripts/test-thinking-handoff.ts +0 -156
  886. package/src/scripts/test-thinking-to-thinking-handoff-bedrock.ts +0 -166
  887. package/src/scripts/test-tool-before-handoff-role-order.ts +0 -276
  888. package/src/scripts/test-tools-before-handoff.ts +0 -222
  889. package/src/scripts/test_code_api.ts +0 -354
  890. package/src/scripts/thinking-bedrock.ts +0 -160
  891. package/src/scripts/thinking-vertexai.ts +0 -168
  892. package/src/scripts/thinking.ts +0 -172
  893. package/src/scripts/tool_search.ts +0 -153
  894. package/src/scripts/tools.ts +0 -163
  895. package/src/session/__tests__/JsonlSessionStore.test.ts +0 -1463
  896. package/src/session/__tests__/handlers.test.ts +0 -161
  897. package/src/specs/activity-label-observability.live.test.ts +0 -262
  898. package/src/specs/activity-label-observability.test.ts +0 -167
  899. package/src/specs/activity-label-prompt.test.ts +0 -359
  900. package/src/specs/activity-label-trace-seed.test.ts +0 -47
  901. package/src/specs/activity-phase-label.test.ts +0 -306
  902. package/src/specs/agent-handoffs.live.test.ts +0 -140
  903. package/src/specs/agent-handoffs.test.ts +0 -2465
  904. package/src/specs/anthropic.simple.test.ts +0 -453
  905. package/src/specs/ask-user-question-batch.test.ts +0 -289
  906. package/src/specs/ask-user-questions.live.test.ts +0 -185
  907. package/src/specs/ask-user-questions.test.ts +0 -293
  908. package/src/specs/azure.simple.test.ts +0 -502
  909. package/src/specs/bedrock-toolless.live.test.ts +0 -123
  910. package/src/specs/bedrock-truncation.live.test.ts +0 -191
  911. package/src/specs/cache.simple.test.ts +0 -416
  912. package/src/specs/context-accuracy.live.test.ts +0 -409
  913. package/src/specs/context-overflow-recovery.live.test.ts +0 -213
  914. package/src/specs/context-usage-event.test.ts +0 -117
  915. package/src/specs/context-usage.live.test.ts +0 -297
  916. package/src/specs/custom-event-await.test.ts +0 -304
  917. package/src/specs/deepseek.simple.test.ts +0 -290
  918. package/src/specs/deterministic-trace-id.test.ts +0 -43
  919. package/src/specs/discovered-tools.test.ts +0 -217
  920. package/src/specs/durability-checkpoint.integration.test.ts +0 -243
  921. package/src/specs/graph-subagent.live.test.ts +0 -242
  922. package/src/specs/graph-subagent.test.ts +0 -322
  923. package/src/specs/handoffCue.test.ts +0 -165
  924. package/src/specs/langfuse-callbacks.test.ts +0 -1578
  925. package/src/specs/langfuse-config.test.ts +0 -247
  926. package/src/specs/langfuse-instrumentation.test.ts +0 -393
  927. package/src/specs/langfuse-metadata.test.ts +0 -245
  928. package/src/specs/langfuse-routing.integration.test.ts +0 -844
  929. package/src/specs/langfuse-runtime-context.test.ts +0 -92
  930. package/src/specs/langfuse-span-registry.test.ts +0 -87
  931. package/src/specs/langfuse-tool-output-tracing.test.ts +0 -1858
  932. package/src/specs/langfuse-trace-shaping.test.ts +0 -591
  933. package/src/specs/moonshot.simple.test.ts +0 -367
  934. package/src/specs/multi-agent-summarization.test.ts +0 -396
  935. package/src/specs/openai.simple.test.ts +0 -315
  936. package/src/specs/openrouter.simple.test.ts +0 -275
  937. package/src/specs/preemptSeal.test.ts +0 -678
  938. package/src/specs/prune.test.ts +0 -3741
  939. package/src/specs/reasoning.test.ts +0 -201
  940. package/src/specs/run-step-timestamps.test.ts +0 -414
  941. package/src/specs/spec.utils.ts +0 -15
  942. package/src/specs/subagent.test.ts +0 -864
  943. package/src/specs/summarization-unit.test.ts +0 -973
  944. package/src/specs/summarization.test.ts +0 -3823
  945. package/src/specs/summarize-prune.test.ts +0 -376
  946. package/src/specs/thinking-handoff.test.ts +0 -621
  947. package/src/specs/thinking-prune.test.ts +0 -827
  948. package/src/specs/token-accounting-e2e.test.ts +0 -1034
  949. package/src/specs/token-accounting-pipeline.test.ts +0 -1008
  950. package/src/specs/token-distribution-edge-case.test.ts +0 -315
  951. package/src/specs/token-memoization.test.ts +0 -40
  952. package/src/specs/tokens.test.ts +0 -1000
  953. package/src/specs/tool-error-resume.test.ts +0 -194
  954. package/src/specs/tool-error.test.ts +0 -198
  955. package/src/specs/vllm-reasoning-toolcalls.test.ts +0 -340
  956. package/src/stream.dispatch.test.ts +0 -63
  957. package/src/stream.test.ts +0 -144
  958. package/src/summarization/__tests__/aggregator.test.ts +0 -236
  959. package/src/summarization/__tests__/node.test.ts +0 -1996
  960. package/src/summarization/__tests__/trigger.test.ts +0 -149
  961. package/src/summarization/chunkHandler.test.ts +0 -196
  962. package/src/test/mockTools.ts +0 -386
  963. package/src/tools/Calculator.test.ts +0 -278
  964. package/src/tools/__tests__/BashExecutor.test.ts +0 -108
  965. package/src/tools/__tests__/CloudflareSandboxExecution.test.ts +0 -939
  966. package/src/tools/__tests__/CodeApiAuthHeaders.test.ts +0 -858
  967. package/src/tools/__tests__/CodeExecutor.stateful.test.ts +0 -124
  968. package/src/tools/__tests__/LocalExecutionRoots.test.ts +0 -8
  969. package/src/tools/__tests__/LocalExecutionTools.test.ts +0 -2733
  970. package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.ts +0 -318
  971. package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +0 -1557
  972. package/src/tools/__tests__/ReadFile.test.ts +0 -44
  973. package/src/tools/__tests__/SkillTool.test.ts +0 -442
  974. package/src/tools/__tests__/SubagentExecutor.test.ts +0 -3728
  975. package/src/tools/__tests__/SubagentReplay.test.ts +0 -329
  976. package/src/tools/__tests__/SubagentTool.test.ts +0 -149
  977. package/src/tools/__tests__/ToolNode.breakerSignal.test.ts +0 -595
  978. package/src/tools/__tests__/ToolNode.eagerEventExecution.test.ts +0 -1191
  979. package/src/tools/__tests__/ToolNode.invalidToolCalls.test.ts +0 -757
  980. package/src/tools/__tests__/ToolNode.langfuse.test.ts +0 -57
  981. package/src/tools/__tests__/ToolNode.onResultCompletion.test.ts +0 -736
  982. package/src/tools/__tests__/ToolNode.outputReferences.test.ts +0 -1710
  983. package/src/tools/__tests__/ToolNode.runtimeState.test.ts +0 -120
  984. package/src/tools/__tests__/ToolNode.session.test.ts +0 -1352
  985. package/src/tools/__tests__/ToolNode.streamLimits.test.ts +0 -69
  986. package/src/tools/__tests__/ToolSearch.integration.test.ts +0 -161
  987. package/src/tools/__tests__/ToolSearch.test.ts +0 -1227
  988. package/src/tools/__tests__/annotateMessagesForLLM.test.ts +0 -561
  989. package/src/tools/__tests__/directToolHITLResumeScope.test.ts +0 -980
  990. package/src/tools/__tests__/directToolHooks.test.ts +0 -700
  991. package/src/tools/__tests__/eagerEventExecution.session.test.ts +0 -92
  992. package/src/tools/__tests__/handlers.test.ts +0 -997
  993. package/src/tools/__tests__/hitl.test.ts +0 -4663
  994. package/src/tools/__tests__/intentArg.test.ts +0 -357
  995. package/src/tools/__tests__/intentCoverage.test.ts +0 -139
  996. package/src/tools/__tests__/localToolNames.test.ts +0 -75
  997. package/src/tools/__tests__/skillCatalog.test.ts +0 -161
  998. package/src/tools/__tests__/subagentHooks.test.ts +0 -1651
  999. package/src/tools/__tests__/toolOutputReferences.test.ts +0 -515
  1000. package/src/tools/__tests__/workspaceSeam.test.ts +0 -147
  1001. package/src/tools/local/__tests__/FileCheckpointer.test.ts +0 -162
  1002. package/src/tools/local/__tests__/editStrategies.test.ts +0 -134
  1003. package/src/tools/search/content.test.ts +0 -173
  1004. package/src/tools/search/crw.test.ts +0 -836
  1005. package/src/tools/search/format.test.ts +0 -242
  1006. package/src/tools/search/http-agent.test.ts +0 -133
  1007. package/src/tools/search/jina-reranker.test.ts +0 -306
  1008. package/src/tools/search/keenable-scraper.test.ts +0 -153
  1009. package/src/tools/search/keenable.test.ts +0 -183
  1010. package/src/tools/search/outcome.test.ts +0 -90
  1011. package/src/tools/search/output.md +0 -2775
  1012. package/src/tools/search/rag-api-reranker.test.ts +0 -891
  1013. package/src/tools/search/source-processing.test.ts +0 -516
  1014. package/src/tools/search/tavily.test.ts +0 -965
  1015. package/src/tools/search/test.html +0 -884
  1016. package/src/tools/search/test.md +0 -643
  1017. package/src/tools/subagent/__tests__/SubagentExecutionRegistry.test.ts +0 -637
  1018. package/src/tools/subagent/__tests__/SubagentExecutor.lazy.test.ts +0 -3054
  1019. package/src/tools/subagent/__tests__/childGraphConfig.test.ts +0 -521
  1020. package/src/utils/__tests__/apportion.test.ts +0 -32
  1021. package/src/utils/__tests__/errors.test.ts +0 -270
  1022. package/src/utils/__tests__/fixtures/contextOverflowSignatures.ts +0 -336
  1023. package/src/utils/__tests__/redactSecrets.test.ts +0 -56
  1024. package/src/utils/__tests__/truncation.test.ts +0 -66
  1025. package/src/utils/llm.test.ts +0 -18
  1026. package/src/utils/proxy.test.ts +0 -176
  1027. package/src/utils/toolContent.test.ts +0 -1432
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["projectOpenAIResponsesToolMessageContent","stripAnthropicCacheControl","stripBedrockCacheControl","projectToolStreamContentForProvider","AIMessageChunk","OPENAI_RESPONSES_REPLAY_POSITIONS_KEY","ChatGenerationChunk","isReasoningModel","hasReasoningKwargs","hasToolCallChunks","getReasoningKwargsText","smoothStream","record","isIntentLabelProperty","INTENT_ARG","OpenAIClient","AzureOpenAIClient","STREAMED_TOOL_CALL_ADAPTER_METADATA_KEY","OPENAI_CHAT_SEQUENTIAL_STREAMED_TOOL_CALL_ADAPTER","OriginalChatOpenAICompletions","_convertMessagesToOpenAIParams","AIMessage","OriginalChatOpenAIResponses","buildAnthropicCacheControl","resolvePromptCacheTtl","OriginalAzureChatOpenAICompletions","OriginalAzureChatOpenAIResponses","OriginalChatOpenAI","resolveStreamDelay","OriginalAzureChatOpenAI","OriginalChatDeepSeek","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.cjs","names":["projectOpenAIResponsesToolMessageContent","stripAnthropicCacheControl","stripBedrockCacheControl","projectToolStreamContentForProvider","AIMessageChunk","OPENAI_RESPONSES_REPLAY_POSITIONS_KEY","ChatGenerationChunk","isReasoningModel","hasReasoningKwargs","hasToolCallChunks","getReasoningKwargsText","smoothStream","record","isIntentLabelProperty","INTENT_ARG","OpenAIClient","AzureOpenAIClient","STREAMED_TOOL_CALL_ADAPTER_METADATA_KEY","OPENAI_CHAT_SEQUENTIAL_STREAMED_TOOL_CALL_ADAPTER","OriginalChatOpenAICompletions","_convertMessagesToOpenAIParams","AIMessage","OriginalChatOpenAIResponses","buildAnthropicCacheControl","resolvePromptCacheTtl","OriginalAzureChatOpenAICompletions","OriginalAzureChatOpenAIResponses","OriginalChatOpenAI","resolveStreamDelay","OriginalAzureChatOpenAI","OriginalChatDeepSeek","OriginalChatXAI"],"sources":["../../../../src/llm/openai/index.ts"],"mappings":";;;;;;;;;;;;;;;;AAsEA,MAAM,QAAW,OAAgB,GAAG;AAEpC,SAAgB,UAAU,SAAsC;CAC9D,OACE,OAAO,YAAY,eACnB,YAAY,QACZ,OAAO,YAAY,YACnB,OAAO,UAAU,SAAS,KAAK,OAAO,MAAM;AAEhD;AAEA,SAAgB,iBACd,SACsD;CACtD,MAAM,SAAS,WAAW;EAExB,IAAI,UAAU,OAAO,GACnB,OAAO;OAGJ,IAAI,MAAM,QAAQ,OAAO,GAC5B,OAAO,IAAI,QAAQ,OAAO;OAGvB,IACH,OAAO,YAAY,YACnB,YAAY,QACZ,YAAY,WACZ,UAAU,QAAQ,MAAM,GAExB,OAAO,QAAQ;OAGZ,IAAI,OAAO,YAAY,YAAY,YAAY,MAAM;GACxD,MAAM,UAA8B,OAAO,QAAQ,OAAO,CAAC,CACxD,QAAQ,GAAG,OAAO,OAAO,MAAM,QAAQ,CAAC,CACxC,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,CAAW,CAAC;GACnC,OAAO,IAAI,QAAQ,OAAO;EAC5B;EACA,OAAO,IAAI,QAAQ;CACrB,CAAC;CAED,OAAO,OAAO,YAAY,OAAO,QAAQ,CAAC;AAC5C;AAmFA,SAAS,+BAAkC,OAAa;CACtD,IAAI,CAAC,MAAM,QAAQ,KAAK,GACtB,OAAO;CAGT,OAAO,MAAM,KAAK,SAAS;EACzB,IAAI,QAAQ,QAAQ,OAAO,SAAS,UAClC,OAAO;EAET,MAAM,QAAQ,EAAE,GAAI,KAAiC;EACrD,OAAO,MAAM;EACb,IACE,MAAM,UAAU,QAChB,OAAO,MAAM,WAAW,YACxB,CAAC,MAAM,QAAQ,MAAM,MAAM,GAC3B;GACA,MAAM,SAAS,EAAE,GAAI,MAAM,OAAmC;GAC9D,OAAQ,MAAM,OAAmC;EACnD;EACA,OAAO;CACT,CAAC;AACH;AAEA,SAAS,uCACP,UACe;CACf,OAAOA,aAAAA,yCACLC,cAAAA,2BACEC,cAAAA,yBAAyBC,aAAAA,oCAAoC,QAAQ,CAAC,CACxE,CACF;AACF;AAqCA,MAAM,2BAA2B;AAEjC,SAAS,0BACP,QACA,QACgC;CAChC,OAAO;EACL,GAAG;EACH,GAAI,OAAO,wBAAwB,QAAQ,EACzC,sBAAsB;GACpB,MAAM;GACN,KAAK;EACP,EACF;EACA,GAAI,OAAO,oBAAoB,QAAQ,EACrC,mBAAmB,OAAO,iBAC5B;CACF;AACF;AAEA,SAAS,oBAAoB,MAA0C;CACrE,IAAI,OAAO,SAAS,YAAY,QAAQ,QAAQ,EAAE,UAAU,OAC1D,OAAO;CAET,OACE,KAAK,SAAS,UACd,KAAK,SAAS,eACd,KAAK,SAAS,iBACd,KAAK,SAAS,UACd,KAAK,SAAS;AAElB;AAEA,SAAS,qBACP,SACS;CACT,IACE,QAAQ,SAAS,YACjB,QAAQ,SAAS,eACjB,QAAQ,SAAS,UACjB,QAAQ,SAAS,eACjB,QAAQ,SAAS,QAEjB,OAAO;CAET,IAAI,OAAO,QAAQ,YAAY,UAC7B,OAAO,QAAQ,QAAQ,SAAS;CAElC,OACE,MAAM,QAAQ,QAAQ,OAAO,KAC7B,QAAQ,QAAQ,MAAM,SAAS,oBAAoB,IAAI,CAAC;AAE5D;AAEA,SAAS,kBACP,SAC0D;CAC1D,IAAI,CAAC,qBAAqB,OAAO,GAC/B,OAAO;CAGT,IAAI,OAAO,QAAQ,YAAY,UAC7B,OAAO;EACL,GAAG;EACH,SAAS,CACP;GACE,MAAM;GACN,MAAM,QAAQ;GACd,yBAAyB,EAAE,MAAM,WAAW;EAC9C,CACF;CACF;CAEF,IAAI,CAAC,MAAM,QAAQ,QAAQ,OAAO,KAAK,QAAQ,QAAQ,WAAW,GAChE,OAAO;CAGT,MAAM,UAAU,CAAC,GAAG,QAAQ,OAAO;CACnC,IAAI,QAAQ,QAAQ,SAAS;CAC7B,OAAO,SAAS,KAAK,CAAC,oBAAoB,QAAQ,MAAM,GACtD;CAEF,IAAI,QAAQ,GACV,OAAO;CAET,QAAQ,SAAS;EACf,GAAG,QAAQ;EACX,yBAAyB,EAAE,MAAM,WAAW;CAC9C;CACA,OAAO;EACL,GAAG;EACH;CACF;AACF;AAEA,SAAS,6BACP,OACA,WACU;CACV,IAAI,mBAAmB;CACvB,IAAI,kBAAkB;CACtB,KAAK,IAAI,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;EACjD,MAAM,OAAO,MAAM;EACnB,KAAK,SAAS,YAAY,SAAS,gBAAgB,UAAU,QAC3D,mBAAmB;EAErB,IAAI,SAAS,QACX,kBAAkB;CAEtB;CAEA,MAAM,0BAAU,IAAI,IAAY;CAChC,IAAI,oBAAoB,GACtB,QAAQ,IAAI,gBAAgB;CAE9B,KAAK,IAAI,QAAQ,kBAAkB,GAAG,SAAS,GAAG,SAChD,IAAI,UAAU,QAAQ;EACpB,QAAQ,IAAI,KAAK;EACjB;CACF;CAEF,OAAO,CAAC,GAAG,OAAO;AACpB;AAGA,SAAgB,wBACd,UAC4D;CAC5D,MAAM,UAAU,IAAI,IAClB,6BACE,SAAS,KAAK,YAAY,QAAQ,IAAI,GACtC,SAAS,KAAK,YAAY,qBAAqB,OAAO,CAAC,CACzD,CACF;CACA,OAAO,SAAS,KAAK,SAAS,UAC5B,QAAQ,IAAI,KAAK,IAAI,kBAAkB,OAAO,IAAI,OACpD;AACF;AAEA,SAAS,kBACP,MAC0D;CAC1D,OAAO,KAAK,SAAS;AACvB;AAEA,SAAS,oBAAoB,MAAuB;CAClD,OAAO,SAAS,YAAY,SAAS,eAAe,SAAS;AAC/D;AAIA,SAAS,wBAAwB,MAA8C;CAC7E,IAAI,OAAO,SAAS,YAAY,QAAQ,QAAQ,EAAE,UAAU,OAC1D,OAAO;CAET,OACE,KAAK,SAAS,gBACd,KAAK,SAAS,iBACd,KAAK,SAAS;AAElB;AAEA,SAAS,sBACP,MAC0C;CAC1C,IAAI,CAAC,kBAAkB,IAAI,GACzB,OAAO;CAET,MAAM,aAAa,KAAK;CAGxB,IAAI,OAAO,eAAe,UAAU;EAClC,IAAI,WAAW,WAAW,GACxB,OAAO;EAET,OAAO;GACL,GAAG;GACH,SAAS,CACP;IACE,MAAM;IACN,MAAM;IACN,yBAAyB,EAAE,MAAM,WAAW;GAC9C,CACF;EACF;CACF;CACA,IAAI,CAAC,MAAM,QAAQ,UAAU,KAAK,WAAW,WAAW,GACtD,OAAO;CAGT,MAAM,UAAU,CAAC,GAAG,UAAU;CAC9B,IAAI,QAAQ,QAAQ,SAAS;CAC7B,OAAO,SAAS,KAAK,CAAC,wBAAwB,QAAQ,MAAM,GAC1D;CAEF,IAAI,QAAQ,GACV,OAAO;CAET,QAAQ,SAAS;EACf,GAAI,QAAQ;EACZ,yBAAyB,EAAE,MAAM,WAAW;CAC9C;CACA,OAAO;EAAE,GAAG;EAAM;CAAQ;AAC5B;AAGA,SAAgB,4BACd,OACsD;CACtD,IAAI,CAAC,MAAM,QAAQ,KAAK,GACtB,OAAO;CAET,MAAM,UAAU,IAAI,IAClB,6BACE,MAAM,KAAK,SAAU,kBAAkB,IAAI,IAAI,KAAK,OAAO,KAAA,CAAU,GACrE,MAAM,KAAK,SAAS;EAClB,IAAI,CAAC,kBAAkB,IAAI,GACzB,OAAO;EAKT,IAAI,CAAC,oBAAoB,KAAK,IAAI,GAChC,OAAO;EAET,MAAM,UAAU,KAAK;EAGrB,OAAO,OAAO,YAAY,WACtB,QAAQ,SAAS,IACjB,MAAM,QAAQ,OAAO,KACnB,QAAQ,MAAM,SAAS,wBAAwB,IAAI,CAAC;CAC5D,CAAC,CACH,CACF;CACA,OAAO,MAAM,KAAK,MAAM,UACtB,QAAQ,IAAI,KAAK,IAAI,sBAAsB,IAAI,IAAI,IACrD;AACF;AAGA,SAAgB,gCACd,OACA,QAIS;CACT,MAAM,mBACJ,OAAO,WAGN;CACH,OACE,oBAAoB,KAAK,KAAK,MAC7B,OAAO,UAAU,SAAS,qBAAqB;AAEpD;AAEA,SAAgB,oBAAoB,SAA0C;CAC5E,MAAM,mBAAmB,QAAQ;CAIjC,MAAM,WACJ,iBAAiB,OAAO,sBAAsB;CAChD,IAAI,YAAY,MACd,OAAO;CAET,MAAM,aAAa,iBAAiB,WAAW;CAC/C,IAAI,cAAc,MAChB;CAEF,MAAM,SAAS,OAAO,UAAU;CAChC,OAAO,OAAO,SAAS,MAAM,IAAI,SAAS,KAAA;AAC5C;AAEA,SAAgB,sBAAsB,SAA4B;CAChE,MAAM,mBAAmB,oBAAoB,OAAO;CACpD,IACE,oBAAoB,QACpB,EAAA,GAAA,yBAAA,YAAA,CAAa,OAAO,KACpB,QAAQ,kBAAkB,MAE1B;CAEF,QAAQ,eAAe,sBAAsB;EAC3C,GAAG,QAAQ,eAAe;EAC1B,gBAAgB;CAClB;CACA,MAAM,mBAAmB,QAAQ;CAGjC,IAAI,iBAAiB,WAAW,6BAA6B,MAC3D;CAEF,MAAM,WAAW,EAAE,GAAG,iBAAiB,SAAS;CAChD,OAAO,SAAS;CAChB,QAAQ,oBAAoB;EAC1B,GAAG,QAAQ;EACX;CACF;AACF;AAEA,SAAgB,yBACd,UACiC;CAEjC,MAAM,mBADQ,SAAS,OACS,sBAAsB;CACtD,IAAI,oBAAoB,MACtB,OAAO;CAET,OAAO;EACL,GAAG;EACH,UAAU;GACR,GAAI,SAAS,YAAY,CAAC;IACzB,2BAA2B,OAAO,gBAAgB;EACrD;CACF;AACF;AAEA,SAAS,kBACP,QACqE;CACrE,OAAO,OAAO,iBAAiB;AACjC;AAEA,MAAM,qCAAqC,IAAI,IAAI;CACjD;CACA;CACA;CACA;AACF,CAAC;AAED,SAAS,4BAA4B,MAAwB;CAC3D,OACE,OAAO,SAAS,YAChB,QAAQ,QACR,UAAU,QACV,OAAO,KAAK,SAAS,YACrB,mCAAmC,IAAI,KAAK,IAAI;AAEpD;AASA,IAAM,gCAAN,cAA4CC,yBAAAA,eAAe;CACzD,IAAa,QAAkB;EAC7B,OAAO,CAAC,GAAG,KAAK,cAAcA,yBAAAA,eAAe,QAAQ,CAAC;CACxD;CAEA,OAAgB,OAA6B;EAC3C,MAAM,WAAW,MAAM,OAAO,KAAK;EACnC,IAAI,CAAC,MAAM,QAAQ,MAAM,kBAAkB,MAAM,GAC/C,OAAO;EAET,OAAO,SAAS,kBAAkBC,aAAAA;EAClC,MAAM,cAAc,SAAS,kBAAkB;EAC/C,IAAI,CAAC,MAAM,QAAQ,WAAW,GAC5B,OAAO;EAET,MAAM,sBAAsB,YAAY,QACrC,SAAS,CAAC,4BAA4B,IAAI,CAC7C;EACA,IAAI,oBAAoB,WAAW,YAAY,QAC7C,OAAO;EAET,IAAI,oBAAoB,SAAS,GAC/B,SAAS,kBAAkB,eAAe;OAE1C,OAAO,SAAS,kBAAkB;EAEpC,OAAO;CACT;AACF;AAEA,SAAS,mCACP,OACqB;CACrB,IAAI,CAACD,yBAAAA,eAAe,WAAW,MAAM,OAAO,GAC1C,OAAO;CAET,MAAM,UAAU,MAAM;CACtB,MAAM,UAAU,IAAI,8BAA8B;EAChD,IAAI,QAAQ;EACZ,MAAM,QAAQ;EACd,SAAS,QAAQ;EACjB,mBAAmB,QAAQ;EAC3B,mBAAmB,QAAQ;EAC3B,YAAY,QAAQ;EACpB,oBAAoB,QAAQ;EAC5B,kBAAkB,QAAQ;EAC1B,gBAAgB,QAAQ;CAC1B,CAAC;CACD,OAAO;AACT;AAEA,SAAS,6BACP,OACA,OACA,kBACM;CACN,MAAM,WAAW,WAAW;EAC1B,IACE,MAAM,SAAS,gCACf,MAAM,SAAS,yCAEf,OAAO;GACL,cAAc,MAAM;GACpB,aAAa,MAAM;EACrB;EAEF,IACE,MAAM,SAAS,gCACf,MAAM,KAAK,SAAS,WAEpB,OAAO;GAAE,cAAc;GAAG,aAAa,MAAM;EAAa;CAG9D,CAAC;CACD,IAAI,YAAY,QAAQ,CAAC,MAAM,QAAQ,MAAM,QAAQ,OAAO,GAC1D;CAEF,MAAM,MAAM,GAAG,SAAS,YAAY,GAAG,SAAS;CAChD,IAAI,aAAa,iBAAiB,IAAI,GAAG;CACzC,IAAI,cAAc,MAAM;EACtB,aAAa,iBAAiB;EAC9B,iBAAiB,IAAI,KAAK,UAAU;CACtC;CACA,MAAM,UAAU,MAAM,QAAQ,QAAQ,KAAK,UACzC,OAAO,UAAU,YAAY,MAAM,SAAS,SACxC;EAAE,GAAG;EAAO,OAAO;CAAW,IAC9B,KACN;CACA,MAAM,QAAQ,UAAU;CACxB,MAAM,QAAQ,UAAU,UAAU;AACpC;AAEA,SAAS,oCACP,OAC4B;CAC5B,IAAI,MAAM,SAAS,6BACjB,OAAO;CAET,IAAI,MAAM,KAAK,SAAS,aAGtB,OAAO,IAAIE,wBAAAA,oBAAoB;EAC7B,MAAM;EACN,SAAS,IAAIF,yBAAAA,eAAe;GAC1B,SAAS,CAAC;GACV,mBAAmB,EACjB,WAAW;IACT,QAAQ,MAAM,KAAK;IACnB,GAAI,OAAO,MAAM,KAAK,sBAAsB,WACxC,EAAE,mBAAmB,MAAM,KAAK,kBAAkB,IAClD,CAAC;GACP,EACF;GACA,mBAAmB,EAAE,gBAAgB,SAAS;EAChD,CAAC;CACH,CAAC;CAEH,IAAI,CAAC,mCAAmC,IAAI,MAAM,KAAK,IAAI,GACzD,OAAO;CAET,OAAO,IAAIE,wBAAAA,oBAAoB;EAC7B,MAAM;EACN,SAAS,IAAIF,yBAAAA,eAAe;GAC1B,SAAS,CAAC;GACV,mBAAmB,EAAE,cAAc,CAAC,MAAM,IAAI,EAAE;GAChD,mBAAmB,EAAE,gBAAgB,SAAS;EAChD,CAAC;CACH,CAAC;AACH;AAEA,SAAS,8BACP,OACA,OACA,eACM;CACN,IAAI;CACJ,IAAI,MAAM,SAAS,gCAAgC,MAAM,MAAM,SAAS,GACtE,WAAW;EACT,cAAc,MAAM;EACpB,QAAQ,MAAM;EACd,MAAM;EACN,aAAa,MAAM;CACrB;MACK,IACL,MAAM,SAAS,gCACf,MAAM,KAAK,SAAS,aACpB,OAAO,MAAM,KAAK,OAAO,YACzB,MAAM,KAAK,GAAG,SAAS,GAEvB,WAAW;EACT,QAAQ,MAAM,KAAK;EACnB,MAAM;EACN,aAAa,MAAM;CACrB;MACK,IACL,MAAM,SAAS,gCACf,MAAM,KAAK,SAAS,eACpB,OAAO,MAAM,KAAK,OAAO,YACzB,MAAM,KAAK,GAAG,SAAS,GAEvB,WAAW;EACT,QAAQ,MAAM,KAAK;EACnB,MAAM;EACN,aAAa,MAAM;CACrB;MACK,IACL,MAAM,SAAS,gCACd,mCAAmC,IAAI,MAAM,KAAK,IAAI,KACrD,MAAM,QAAQ,MAAM,QAAQ,kBAAkB,YAAY,IAC5D;EACA,IAAI;EACJ,IAAI,OAAO,MAAM,KAAK,OAAO,YAAY,MAAM,KAAK,GAAG,SAAS,GAC9D,SAAS,MAAM,KAAK;OACf,IACL,aAAa,MAAM,QACnB,OAAO,MAAM,KAAK,YAAY,YAC9B,MAAM,KAAK,QAAQ,SAAS,GAE5B,SAAS,MAAM,KAAK;EAEtB,IAAI,UAAU,MACZ,WAAW;GACT;GACA,MAAM;GACN,aAAa,MAAM;EACrB;CAEJ;CACA,IAAI,YAAY,MACd;CAEF,MAAM,cAAc,GAAG,SAAS,KAAK,GAAG,SAAS,OAAO,GAAG,SAAS,YAAY,GAAG,SAAS,gBAAgB;CAC5G,IAAI,cAAc,IAAI,WAAW,GAC/B;CAEF,cAAc,IAAI,WAAW;CAC7B,MAAM,WAAW,MAAM,QAAQ,kBAC7BC,aAAAA;CAEF,MAAM,mBAAmB;EACvB,GAAG,MAAM,QAAQ;GAChBA,aAAAA,wCAAwC,CACvC,GAAI,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,GAC1C,QACF;CACF;CACA,MAAM,QAAQ,oBAAoB;CAClC,MAAM,QAAQ,UAAU,oBAAoB;AAC9C;AAEA,gBAAgB,gCACd,QACA,SACA,YACqC;CACrC,MAAM,sCAAsB,IAAI,IAAY;CAC5C,MAAM,4CAA4B,IAAI,IAAoB;CAC1D,IAAI;EACF,WAAW,MAAM,SAAS,QAAQ;GAChC,QAAQ,QAAQ,eAAe;GAC/B,MAAM,kBAAA,GAAA,kBAAA,2CAAA,CACuC,KAAK,KAChD,oCAAoC,KAAK;GAC3C,IAAI,kBAAkB,MACpB;GAEF,MAAM,QAAQ,mCAAmC,cAAc;GAC/D,6BAA6B,OAAO,OAAO,yBAAyB;GACpE,8BAA8B,OAAO,OAAO,mBAAmB;GAC/D,sBAAsB,MAAM,OAAO;GACnC,MAAM,YAAY,kBAChB,MAAM,QAAQ,IACd;IACE,QAAQ,QAAQ,eAAe;IAC/B,YAAY;GACd,GACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,EAAE,MAAM,CACV;GACA,MAAM;EACR;CACF,SAAS,GAAG;EACV,OAAA,GAAA,kBAAA,sBAAA,CAA4B,CAAC;CAC/B;AACF;AAEA,SAAS,oBACP,OACe;CACf,MAAM,gBAA+B;EACnC,cAAc,OAAO,iBAAiB;EACtC,eAAe,OAAO,qBAAqB;EAC3C,cAAc,OAAO,gBAAgB;CACvC;CAEA,IAAI,SAAS,MACX,OAAO;CAGT,MAAM,oBAA0D,CAAC;CACjE,MAAM,qBAA4D,CAAC;CACnE,IAAI,uBAAuB;CAC3B,IAAI,wBAAwB;CAC5B,MAAM,qBAAqB,MAAM;CAGjC,MAAM,mBAAmB,oBAAoB;CAC7C,MAAM,oBAAoB,oBAAoB;CAC9C,MAAM,wBAAwB,oBAAoB;CAClD,MAAM,oBAAoB,MAAM,2BAA2B;CAC3D,MAAM,wBACJ,MAAM,2BAA2B;CAEnC,IAAI,oBAAoB,MAAM;EAC5B,kBAAkB,QAAQ;EAC1B,uBAAuB;CACzB;CACA,IAAI,qBAAqB,MAAM;EAC7B,kBAAkB,aAAa;EAC/B,uBAAuB;CACzB;CACA,IAAI,yBAAyB,MAAM;EACjC,kBAAkB,iBAAiB;EACnC,uBAAuB;CACzB;CACA,IAAI,qBAAqB,MAAM;EAC7B,mBAAmB,QAAQ;EAC3B,wBAAwB;CAC1B;CACA,IAAI,yBAAyB,MAAM;EACjC,mBAAmB,YAAY;EAC/B,wBAAwB;CAC1B;CAEA,IAAI,sBACF,cAAc,sBAAsB;CAEtC,IAAI,uBACF,cAAc,uBAAuB;CAGvC,OAAO;AACT;AAEA,SAAS,uBACP,aACA,WACA,iBACuB;CACvB,MAAM,kBAAkB,UAAU;CAClC,IAAI,iBAAiB,gBAAgB,MACnC,OAAO;CAET,MAAM,oBAAoB,YAAY;CACtC,IAAI,mBAAmB,gBAAgB,MACrC,OAAO;CAGT,MAAM,WAAW,kBAAkB,YAAY;CAC/C,SAAS,kBAAkB,KAAA,CAAS;CACpC,OAAO,SAAS;AAClB;AAEA,SAAS,mBACP,eACA,SACoC;CACpC,IAAI;CACJ,IAAI,kBAAkB,KAAA,GACpB,YAAY;EACV,GAAG;EACH,GAAG;CACL;CAEF,IAAI,SAAS,cAAc,KAAA,GACzB,YAAY;EACV,GAAG;EACH,GAAG,QAAQ;CACb;CAEF,IACE,SAAS,oBAAoB,KAAA,KAC7B,WAAW,WAAW,KAAA,GAEtB,YAAY;EACV,GAAG;EACH,QAAQ,QAAQ;CAClB;CAEF,OAAO;AACT;AAEA,SAAS,wBACP,OACA,eACA,SACoC;CACpC,IAAI,CAACE,cAAAA,iBAAiB,KAAK,GACzB;CAEF,OAAO,mBAAmB,eAAe,OAAO;AAClD;AAEA,SAAS,SAAS,OAAiC;CACjD,OAAO,OAAO,UAAU,YAAY,UAAU;AAChD;AAEA,SAAS,4BACP,OACoC;CACpC,IAAI,CAAC,SAAS,KAAK,GACjB,OAAO;CAIT,MAAM,EAAE,YAAY;CACpB,OAAO,MAAM,QAAQ,OAAO;AAC9B;AAEA,SAAS,6BACP,OACuC;CACvC,IAAI,4BAA4B,KAAK,GACnC,OAAO;CAGT,MAAM,EAAE,SAAS;CACjB,IAAI,4BAA4B,IAAI,GAClC,OAAO;AAIX;AAEA,gBAAgB,iCACd,QAC2C;CAC3C,WAAW,MAAM,QAAQ,QAAQ;EAC/B,MAAM,QAAQ,6BAA6B,IAAI;EAC/C,IAAI,SAAS,MACX;EAEF,MAAM;CACR;AACF;AAEA,eAAe,mCACb,SACA,gBACA,qBACqC;CACrC,IAAI,QAAQ,WAAW,MACrB,OAAQ,MAAM,oBACZ,SACA,cACF;CAIF,OAAO,iCACL,MAFmB,oBAAoB,SAAS,cAAc,CAGhE;AACF;AAEA,SAAS,2BACP,OACA,OACkB;CAClB,IAAI,CAACH,yBAAAA,eAAe,WAAW,KAAK,GAClC,OAAO;CAGT,MAAM,iBAAiB;CACvB,IACE,eAAe,aAAa,QAC5B,MAAM,kBAAkB,qBAAqB,MAE7C,MAAM,kBAAkB,oBAAoB,eAAe;CAE7D,IAAI,eAAe,qBAAqB,MACtC,MAAM,kBAAkB,oBACtB,eAAe;CAEnB,IAAI,eAAe,4BAA4B,MAC7C,MAAM,kBAAkB,2BACtB,eAAe;CAEnB,OAAO;AACT;AAEA,SAAS,6BACP,SACA,YACa;CACb,IAAI,EAAA,GAAA,yBAAA,YAAA,CAAa,OAAO,GACtB,OAAO;CAET,IACE,WAAW,aAAa,QACxB,QAAQ,kBAAkB,qBAAqB,MAE/C,QAAQ,kBAAkB,oBAAoB,WAAW;CAE3D,IAAI,WAAW,qBAAqB,MAClC,QAAQ,kBAAkB,oBAAoB,WAAW;CAE3D,IAAI,WAAW,4BAA4B,MACzC,QAAQ,kBAAkB,2BACxB,WAAW;CAEf,OAAO;AACT;AAEA,SAAS,6BACP,OACA,SAC0B;CAC1B,IAAI,CAAE,MAAM,QAAqC;EAK/C,MAAM,YAAA,GAAA,kBAAA,YAAA,CAAuB,EAH3B,SAAS,MAAM,aAAa,QAGkB,CAAC;EACjD,MAAM,SAAS;GACb,GAAG,MAAM;GACT,SAAS;GACT,SAAS,MAAM;GACf,YAAY;EACd;EACA,IAAI,OAAO,WAAW,MACpB,OAAO,OAAO;EAGhB,OAAO,kBAAA,GAAA,kBAAA,wBAAA,CAAyC,OAAO,cAAc;EACrE,MAAM,SAAS,IAAI,mBAAmB,MAAM;CAC9C;CAKA,OAAO;EAHL,GAAG,MAAM;EACT,GAAG;CAEe;AACtB;AAgBA,SAAgB,aACd,OACiC;CACjC,MAAM,EAAE,YAAY;CACpB,MAAM,iBAAiB,mBAAmBA,yBAAAA;CAe1C,IATE,QAAQ,MAAM,IAAI,KAClB,kBACA,OAAO,QAAQ,YAAY,YAC3B,QAAQ,YAAY,MAAM,QAC1B,MAAM,gBAAgB,YAAY,QAClC,MAAM,gBAAgB,iBAAiB,QACvC,CAACI,sBAAAA,mBAAmB,OAAO,KAC3B,CAACC,sBAAAA,kBAAkB,OAAO,GAG1B,OAAO;EACL,MAAM,MAAM;EACZ,QAAQ;EACR,OAAO,UAAU,0BAA0B,OAAO,KAAK;CACzD;CAGF,MAAM,YACJ,MAAM,SAAS,iBAAiBC,sBAAAA,uBAAuB,OAAO,IAAI;CACpE,IAAI,cAAc,IAChB,OAAO;EACL,MAAM;EACN,QAAQ;EACR,QAAQ;EACR,YAAY;CACd;CAGF,OAAO;EAAE,MAAM;EAAI,QAAQ;EAAO,YAAY;CAAM;AACtD;AASA,SAAS,0BACP,OACA,OACqB;CACrB,IAAI,MAAM,WAAW,MAAM,QACzB,OAAO;CAET,MAAM,UAAU,MAAM;CACtB,OAAO,IAAIJ,wBAAAA,oBAAoB;EAC7B,MAAM,MAAM;EACZ,gBAAgB,MAAM;EACtB,SAAS,IAAIF,yBAAAA,eACX,OAAO,OAAO,CAAC,GAAG,SAAS;GACzB,SAAS,MAAM;GACf,gBAAgB,MAAM,UAAU,QAAQ,iBAAiB,KAAA;GACzD,mBAAmB,MAAM,UAAU,QAAQ,oBAAoB,CAAC;GAChE,mBAAmB,MAAM,UAAU,QAAQ,oBAAoB,CAAC;EAClE,CAAC,CACH;CACF,CAAC;AACH;AAEA,eAAsB,wBACpB,OACA,YACe;CACf,MAAM,YAAY,kBAChB,MAAM,MACN,2BAA2B,KAAK,GAChC,KAAA,GACA,KAAA,GACA,KAAA,GACA,EAAE,MAAM,CACV;AACF;AAEA,SAAS,2BACP,OACoD;CACpD,MAAM,SAAS,MAAM,gBAAgB;CACrC,MAAM,aAAa,MAAM,gBAAgB;CAEzC,IAAI,OAAO,WAAW,YAAY,OAAO,eAAe,UACtD,OAAO;EAAE;EAAQ;CAAW;AAIhC;AAaA,gBAAgB,kBACd,QACA,OACA,QACA,YACA,oBACqC;CASrC,MAAM,WAAWO,iBAAAA,aAAa;EAC5B,SATc,mBAEZ;GACF,WAAW,MAAM,SAAS,QACxB,MAAM,aAAa,KAAK;EAE5B,EAAA,CAGO;EACL,SAAS,SAAS,QAAQ,QAAQ,IAAI,QAAQ;EAC9C;CACF,CAAC;CAED,WAAW,MAAM,eAAe,UAAU;EACxC,IAAI,sBAAsB,MACxB,uBAAA,2BAA2B,aAAa,kBAAkB;EAE5D,MAAM,wBAAwB,aAAa,UAAU;EACrD,MAAM;CACR;AACF;AAEA,SAAS,mBAAmB,YAAyC;CACnE,OAAO,WAAkB;EACvB,WAAW,MAAM;CACnB;AACF;AAqBA,SAAS,2BAA6C,QAAc;CAElE,MAAM,QAAQC,OAAO;CACrB,IAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,GAC5C,OAAO;CAET,MAAM,YAAY,MAAM,KAAK,SAAS;EACpC,MAAM,YAAY;EAYlB,MAAM,SAAS,UAAU,YAAY;EACrC,IAAI,OAAO,WAAW,MACpB,OAAO;EAET,MAAM,aAAa,OAAO;EAC1B,MAAM,aAAa,YAAY;EAC/B,IAAI,cAAc,QAAQ,CAACC,kBAAAA,sBAAsB,WAAA,SAAsB,GACrE,OAAO;EAKT,KAHiB,MAAM,QAAQ,YAAY,QAAQ,IAC9C,WAAW,WACZ,CAAC,EAAA,CACQ,SAAA,QAAmB,GAC9B,OAAO;EAET,MAAM,GAAGC,kBAAAA,aAAa,OAAO,GAAG,cAAc;EAC9C,MAAM,aAAa;GAAE,GAAG;GAAY,YAAY;EAAU;EAC1D,IAAI,UAAU,YAAY,MACxB,OAAO;GACL,GAAG;GACH,UAAU;IAAE,GAAG,UAAU;IAAU,YAAY;GAAW;EAC5D;EAEF,OAAO;GAAE,GAAG;GAAW,YAAY;EAAW;CAChD,CAAC;CACD,IAAI,UAAU,OAAO,MAAM,UAAU,SAAS,MAAM,MAAM,GACxD,OAAO;CAET,OAAO;EAAE,GAAG;EAAQ,OAAO;CAAU;AACvC;AAEA,SAAgB,qBACd,MACA,QAOiC;CACjC,IAAI;CAEJ,KAAA,GAAA,uCAAA,gBAAA,CAAoB,IAAI,GACtB,WAAA,GAAA,uCAAA,oBAAA,CAA8B,IAAI;MAElC,UAAU;CAGZ,IAAI,QAAQ,WAAW,KAAA,GACrB,QAAQ,SAAS,SAAS,OAAO;CAGnC,OAAO;AACT;AACA,IAAa,qBAAb,cAAwCC,kBAAAA,aAAa;CACnD;CACA,MAAM,iBACJ,KACA,MACA,IACA,YACmB;EACnB,MAAM,EAAE,QAAQ,GAAG,YAAY,QAAQ,CAAC;EACxC,MAAM,UAAU,mBAAmB,UAAU;EAC7C,KAAK,eAAe;EACpB,IAAI,QAAQ,OAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;EAEpE,MAAM,UAAU,WAAW,SAAS,EAAE;EAEtC,MAAM,eAAe;GACnB,QAAQ,WAAW;GACnB,GAAG;EACL;EACA,IAAI,aAAa,UAAU,MAGzB,aAAa,SAAS,aAAa,OAAO,YAAY;EAGxD,OAIE,KAAK,MAAM,KAAK,KAAA,GAAW,KAAK,YAAY,CAAC,CAAC,cAAc;GAC1D,aAAa,OAAO;EACtB,CAAC;CAEL;AACF;AACA,IAAa,0BAAb,cAA6CC,OAAAA,YAAkB;CAC7D;CACA,MAAM,iBACJ,KACA,MACA,IACA,YACmB;EACnB,MAAM,EAAE,QAAQ,GAAG,YAAY,QAAQ,CAAC;EACxC,MAAM,UAAU,mBAAmB,UAAU;EAC7C,KAAK,eAAe;EACpB,IAAI,QAAQ,OAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;EAEpE,MAAM,UAAU,WAAW,SAAS,EAAE;EAEtC,MAAM,eAAe;GACnB,QAAQ,WAAW;GACnB,GAAG;EACL;EACA,IAAI,aAAa,UAAU,MAGzB,aAAa,SAAS,aAAa,OAAO,YAAY;EAGxD,OAIE,KAAK,MAAM,KAAK,KAAA,GAAW,KAAK,YAAY,CAAC,CAAC,cAAc;GAC1D,aAAa,OAAO;EACtB,CAAC;CAEL;AACF;AAEA,MAAM,mCAAmC;AAWzC,SAAS,uCACP,SACkB;CAClB,IACE,mBAAmBZ,yBAAAA,mBAClB,QAAQ,kBAAkB,UAAU,KAAK,GAE1C,QAAQ,oBAAoB;EAC1B,GAAG,QAAQ;GACVa,8BAAAA,0CACCC,8BAAAA;CACJ;CAEF,OAAO;AACT;AAEA,SAAS,wBAAwB,SAA6C;CAI5E,MAAM,mBACJ,WAAW,QAAQ,YAAY,KAAK,UAAU,QAAQ,IAAI;CAC5D,IAAI,oBAAoB,QAAQ,qBAAqB,IACnD,OAAO;CAET,OAAO,iCAAiC,KAAK,gBAAgB;AAC/D;AAEA,MAAM,sCACJ;AAUF,SAAS,0BAA0B,MAGvB;CACV,IAAI,KAAK,WAAW,QAAQ,KAAK,YAAY,IAC3C,OAAO;CAET,IAAI,KAAK,uBAAuB,QAAQ,KAAK,wBAAwB,IACnE,OAAO;CAET,OAAO,oCAAoC,KAAK,KAAK,mBAAmB;AAC1E;AAEA,IAAM,6BAAN,cAAyCC,kBAAAA,sBAA8B;CACrE;CACA;CACA;CACA;CACA;CACA;CAEA,YAAY,QAAgC;EAC1C,MAAM,MAAM;EACZ,KAAK,0BAA0B,QAAQ;EACvC,KAAK,0BAA0B,QAAQ;EACvC,KAAK,mCACH,QAAQ;EACV,KAAK,2BAA2B,QAAQ;EACxC,KAAK,sBAAsB,QAAQ;EACnC,KAAK,mBAAmB,QAAQ;CAClC;CAEA,iBACE,SACA,OAC+D;EAC/D,OAAO,2BACL,0BAA0B,MAAM,iBAAiB,SAAS,KAAK,GAAG;GAChE,qBAAqB,KAAK;GAC1B,kBAAkB,KAAK;EACzB,CAAC,CACH;CACF;CAEA,oBACE,SACoC;EACpC,OAAO,mBAAmB,KAAK,WAAW,OAAO;CACnD;CAEA,kBACE,SAC0B;EAC1B,OAAO,6BAA6B,MAAM,OAAO;CACnD;CAUA,MAAM,oBACJ,SAGA,gBAC0E;EAC1E,OAAO,mCACL,KAAK,wBAAwB,OACzB;GAAE,GAAG;GAAS,UAAU,wBAAwB,QAAQ,QAAQ;EAAE,IAClE,SACJ,gBACA,MAAM,oBAAoB,KAAK,IAAI,CACrC;CACF;CAEA,2CACE,OACA,aACA,aACkB;EAClB,MAAM,UAAU,2BACd,MAAM,2CACJ,OACA,aACA,WACF,GACA,KACF;EACA,IAAI,wBAAwB,KAAK,aAAa,OAAO,GACnD,OAAO,uCAAuC,OAAO;EAEvD,OAAO;CACT;CAEA,wCACE,SACA,aACa;EACb,OAAO,6BACL,MAAM,wCAAwC,SAAS,WAAW,GAClE,OACF;CACF;CAEA,MAAM,UACJ,UACA,SACA,YACqB;EACrB,IACE,KAAK,4BAA4B,QACjC,KAAK,4BAA4B,MAEjC,OAAO,MAAM,UAAU,UAAU,SAAS,UAAU;EAGtD,QAAQ,QAAQ,eAAe;EAC/B,MAAM,gBAAwC,CAAC;EAC/C,MAAM,SAAS,KAAK,iBAAiB,OAAO;EAC5C,MAAM,iBAAiBC,cAAAA,+BACrB,UACA,KAAK,OACL;GACE,yBAAyB,KAAK;GAC9B,yBAAyB,KAAK;GAC9B,kCAAkC,KAAK;GACvC,0BAA0B,KAAK;EACjC,CACF;EAEA,IAAI,OAAO,WAAW,MAAM;GAC1B,MAAM,SAAS,KAAK,sBAAsB,UAAU,SAAS,UAAU;GACvE,MAAM,8BAAc,IAAI,IAAiC;GACzD,WAAW,MAAM,SAAS,QAAQ;IAChC,MAAM,QAAQ,oBAAoB;KAChC,GAAG,MAAM;KACT,GAAG,MAAM,QAAQ;IACnB;IACA,MAAM,QACJ,OAAO,MAAM,gBAAgB,eAAe,WACxC,MAAM,eAAe,aACrB;IACN,MAAM,gBAAgB,YAAY,IAAI,KAAK;IAC3C,IAAI,iBAAiB,MACnB,YAAY,IAAI,OAAO,KAAK;SAE5B,YAAY,IAAI,OAAO,cAAc,OAAO,KAAK,CAAC;GAEtD;GACA,MAAM,cAAc,MAAM,KAAK,YAAY,QAAQ,CAAC,CAAC,CAClD,MAAM,CAAC,OAAO,CAAC,UAAU,OAAO,IAAI,CAAC,CACrC,KAAK,GAAG,WAAW,KAAK;GAC3B,MAAM,EAAE,WAAW,kBAAkB,KAAK,iBAAiB,OAAO;GAClE,MAAM,mBAAmB,MAAM,KAAK,kCAClC,UACA,WACA,aACF;GACA,MAAM,uBACJ,MAAM,KAAK,6BAA6B,WAAW;GACrD,cAAc,eAAe;GAC7B,cAAc,gBAAgB;GAC9B,cAAc,eAAe,mBAAmB;GAChD,OAAO;IACL;IACA,WAAW,EACT,qBAAqB;KACnB,cAAc,cAAc;KAC5B,kBAAkB,cAAc;KAChC,aAAa,cAAc;IAC7B,EACF;GACF;EACF;EAEA,MAAM,OAAO,MAAM,KAAK,oBACtB;GACE,GAAG;GACH,QAAQ;GACR,UAAU;EACZ,GACA;GACE,QAAQ,QAAQ;GAChB,GAAG,QAAQ;EACb,CACF;EACA,MAAM,EACJ,mBAAmB,kBACnB,eAAe,cACf,cAAc,aACd,uBAAuB,qBACvB,2BAA2B,4BACzB,KAAK,SAAS,CAAC;EAEnB,IAAI,oBAAoB,MACtB,cAAc,iBACX,cAAc,iBAAiB,KAAK;EAEzC,IAAI,gBAAgB,MAClB,cAAc,gBACX,cAAc,gBAAgB,KAAK;EAExC,IAAI,eAAe,MACjB,cAAc,gBACX,cAAc,gBAAgB,KAAK;EAExC,MAAM,oCAAoC;EAG1C,IACE,mCAAmC,gBAAgB,QACnD,mCAAmC,iBAAiB,QACpD,mCAAmC,sBAAsB,MAEzD,cAAc,sBAAsB;GAClC,GAAI,kCAAkC,gBAAgB,QAAQ,EAC5D,OAAO,kCAAkC,aAC3C;GACA,GAAI,kCAAkC,iBAAiB,QAAQ,EAC7D,YAAY,kCAAkC,cAChD;GACA,GAAI,kCAAkC,sBAAsB,QAAQ,EAClE,gBAAgB,kCAAkC,mBACpD;EACF;EAEF,IACE,yBAAyB,gBAAgB,QACzC,yBAAyB,oBAAoB,MAE7C,cAAc,uBAAuB;GACnC,GAAI,wBAAwB,gBAAgB,QAAQ,EAClD,OAAO,wBAAwB,aACjC;GACA,GAAI,wBAAwB,oBAAoB,QAAQ,EACtD,WAAW,wBAAwB,iBACrC;EACF;EAGF,MAAM,cAAgC,CAAC;EACvC,KAAK,MAAM,QAAQ,KAAK,SAAS;GAC/B,MAAM,aAA6B;IACjC,MAAM,KAAK,QAAQ,WAAW;IAC9B,SAAS,KAAK,wCACZ,KAAK,SACL,IACF;GACF;GACA,WAAW,iBAAiB;IAC1B,eAAe,KAAK;IACpB,GAAI,KAAK,WAAW,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC;GACrD;GACA,KAAA,GAAA,yBAAA,YAAA,CAAgB,WAAW,OAAO,GAChC,WAAW,QAAQ,iBAAiB;GAEtC,WAAW,UAAU,IAAIC,yBAAAA,UACvB,OAAO,YACL,OAAO,QAAQ,WAAW,OAAO,CAAC,CAAC,QAChC,CAAC,SAAS,CAAC,IAAI,WAAW,KAAK,CAClC,CACF,CACF;GACA,YAAY,KAAK,UAAU;EAC7B;EACA,OAAO;GACL;GACA,WAAW,EACT,YAAY;IACV,cAAc,cAAc;IAC5B,kBAAkB,cAAc;IAChC,aAAa,cAAc;GAC7B,EACF;EACF;CACF;CAEA,OAAO,sBACL,UACA,SACA,YACqC;EACrC,IACE,KAAK,4BAA4B,QACjC,KAAK,4BAA4B,MACjC;GACA,OAAO,MAAM,sBAAsB,UAAU,SAAS,UAAU;GAChE;EACF;EAEA,MAAM,iBACJD,cAAAA,+BAA+B,UAAU,KAAK,OAAO;GACnD,yBAAyB,KAAK;GAC9B,yBAAyB,KAAK;GAC9B,kCAAkC,KAAK;GACvC,0BAA0B,KAAK;EACjC,CAAC;EAEH,MAAM,SAAS;GACb,GAAG,KAAK,iBAAiB,SAAS,EAChC,WAAW,KACb,CAAC;GACD,UAAU;GACV,QAAQ;EACV;EACA,IAAI;EAEJ,MAAM,iBAAiB,MAAM,KAAK,oBAAoB,QAAQ,OAAO;EACrE,IAAI;EACJ,WAAW,MAAM,QAAQ,gBAAgB;GACvC,IAAI,QAAQ,QAAQ,YAAY,MAC9B;GASF,MAAM,SADU,KAAK,UACI;GACzB,IAAI,KAAK,SAAS,MAChB,QAAQ,KAAK;GAEf,IAAI,UAAU,MACZ;GAGF,MAAM,EAAE,UAAU;GAClB,IAAI,SAAS,MACX;GAEF,MAAM,QAAQ,KAAK,2CACjB,OACA,MACA,WACF;GACA,cAAc,MAAM,QAAQ;GAC5B,MAAM,kBAAkB;IACtB,QAAQ,QAAQ,eAAe;IAC/B,YAAY,OAAO;GACrB;GACA,IAAI,OAAO,MAAM,YAAY,UAAU;IAErC,QAAQ,IACN,sFACF;IACA;GACF;GACA,MAAM,iBAA0C,EAAE,GAAG,gBAAgB;GACrE,IAAI,OAAO,iBAAiB,MAAM;IAChC,eAAe,gBAAgB,OAAO;IACtC,eAAe,qBAAqB,KAAK;IACzC,eAAe,aAAa,KAAK;IACjC,eAAe,eAAe,KAAK;GACrC;GACA,IAAI,KAAK,aAAa,MACpB,eAAe,WAAW,OAAO;GAEnC,MAAM,kBAAkB,IAAId,wBAAAA,oBAAoB;IAC9C,SAAS;IACT,MAAM,MAAM;IACZ;GACF,CAAC;GACD,MAAM;GACN,MAAM,YAAY,kBAChB,gBAAgB,MAChB,iBACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,EAAE,OAAO,gBAAgB,CAC3B;EACF;EACA,IAAI,OAAO;GACT,MAAM,qBAAqB,MAAM;GAGjC,MAAM,oBAAoB;IACxB,GAAI,oBAAoB,gBAAgB,QAAQ,EAC9C,OAAO,mBAAmB,aAC5B;IACA,GAAI,oBAAoB,iBAAiB,QAAQ,EAC/C,YAAY,mBAAmB,cACjC;IACA,GAAI,oBAAoB,sBAAsB,QAAQ,EACpD,gBAAgB,mBAAmB,mBACrC;GACF;GACA,MAAM,qBAAqB;IACzB,GAAI,MAAM,2BAA2B,gBAAgB,QAAQ,EAC3D,OAAO,MAAM,0BAA0B,aACzC;IACA,GAAI,MAAM,2BAA2B,oBAAoB,QAAQ,EAC/D,WAAW,MAAM,0BAA0B,iBAC7C;GACF;GACA,MAAM,kBAAkB,IAAIA,wBAAAA,oBAAoB;IAC9C,SAAS,IAAIF,yBAAAA,eAAe;KAC1B,SAAS;KACT,mBAAmB,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE;KACzC,gBAAgB;MACd,cAAc,MAAM;MACpB,eAAe,MAAM;MACrB,cAAc,MAAM;MACpB,GAAI,OAAO,KAAK,iBAAiB,CAAC,CAAC,SAAS,KAAK,EAC/C,qBAAqB,kBACvB;MACA,GAAI,OAAO,KAAK,kBAAkB,CAAC,CAAC,SAAS,KAAK,EAChD,sBAAsB,mBACxB;KACF;IACF,CAAC;IACD,MAAM;GACR,CAAC;GACD,MAAM;GACN,MAAM,YAAY,kBAChB,gBAAgB,MAChB;IACE,QAAQ;IACR,YAAY;GACd,GACA,KAAA,GACA,KAAA,GACA,KAAA,GACA,EAAE,OAAO,gBAAgB,CAC3B;EACF;EACA,IAAI,QAAQ,QAAQ,YAAY,MAC9B,MAAM,IAAI,MAAM,YAAY;CAEhC;AACF;AAEA,IAAM,2BAAN,cAAuCkB,kBAAAA,oBAA4B;CACjE;CACA;CACA;CACA;CAEA,YAAY,QAAgC;EAC1C,MAAM,MAAM;EACZ,KAAK,sBAAsB,QAAQ;EACnC,KAAK,uBAAuB,QAAQ;EACpC,KAAK,0BAA0B,QAAQ;EACvC,KAAK,mBAAmB,QAAQ;CAClC;CAEA,iBACE,SAC6D;EAC7D,MAAM,eAAe;EAOrB,MAAM,gBADc,cAAc,eAAe,KAAK,0BAEpC,OACZC,cAAAA,2BACAC,cAAAA,sBACE,cAAc,kBAAkB,KAAK,uBACvC,CACF,IACE,KAAA;EACN,MAAM,aAAa,0BACjB,MAAM,iBAAiB,OAAO,GAC9B;GACE,qBAAqB,KAAK;GAC1B,kBAAkB,KAAK;EACzB,CACF;EACA,MAAM,SAAS;GACb,GAAG;GACH,GAAI,WAAW,SAAS,QAAQ,EAC9B,OAAO,+BAA+B,WAAW,KAAK,EACxD;GACA,GAAI,gBAAgB,QAAQ,EAC1B,eAAe,aACjB;EACF;EACA,IAAI,gCAAgC,KAAK,OAAO,MAAM,GACpD,OAAO,UAAU,CACf,GAAG,IAAI,IAAI,CACT,GAAI,OAAO,WAAW,CAAC,GACvB,6BACF,CAAC,CACH;EAEF,OAAO,2BAA2B,MAAM;CAC1C;CAUA,MAAM,oBACJ,SACA,gBAC0B;EAC1B,MAAM,iBAAiB;GACrB,GAAG;GACH,OACE,KAAK,wBAAwB,OACzB,4BAA4B,QAAQ,KAAK,IACzC,QAAQ;EAChB;EACA,MAAM,SAAS,MAAM,MAAM,oBACzB,gBACA,cACF;EACA,OAAO,kBAAkB,MAAM,IAC3B,SACA,yBAAyB,MAAM;CACrC;CAEA,MAAM,UACJ,UACA,SACA,YACqB;EACrB,MAAM,SAAS,MAAM,MAAM,UACzB,uCAAuC,QAAQ,GAC/C,SACA,UACF;EACA,KAAK,MAAM,cAAc,OAAO,aAC9B,sBAAsB,WAAW,OAAO;EAE1C,OAAO;CACT;CAEA,OAAO,sBACL,UACA,SACA,YACqC;EACrC,MAAM,oBAAoB,uCAAuC,QAAQ;EAazE,OAAO,gCAAgC,MAZlB,KAAK,oBACxB;GACE,GAAG,KAAK,iBAAiB,OAAO;GAChC,QAAA,GAAA,kBAAA,gCAAA,CAAuC;IACrC,UAAU;IACV,YAAY,KAAK,cAAc;IAC/B,OAAO,KAAK;GACd,CAAC;GACD,QAAQ;EACV,GACA,OACF,GAC+C,SAAS,UAAU;CACpE;CAEA,OAAO,uBACL,UACA,SACA,YACsC;EACtC,OAAO,MAAM,uBACX,uCAAuC,QAAQ,GAC/C,SACA,UACF;CACF;CAEA,oBACE,SACoC;EACpC,OAAO,mBAAmB,KAAK,WAAW,OAAO;CACnD;CAEA,kBACE,SAC0B;EAC1B,OAAO,6BAA6B,MAAM,OAAO;CACnD;AACF;AAEA,IAAM,kCAAN,cAA8CC,kBAAAA,2BAAmC;CAC/E;CACA;CAEA,YAAY,QAAqC;EAC/C,MAAM,MAAM;EACZ,KAAK,sBAAsB,QAAQ;EACnC,KAAK,mBAAmB,QAAQ;CAClC;CAEA,iBACE,SACA,OACoE;EACpE,OAAO,2BACL,0BAA0B,MAAM,iBAAiB,SAAS,KAAK,GAAG;GAChE,qBAAqB,KAAK;GAC1B,kBAAkB,KAAK;EACzB,CAAC,CACH;CACF;CAEA,oBACE,SACoC;EACpC,OAAO,wBAAwB,KAAK,OAAO,KAAK,WAAW,OAAO;CACpE;CAEA,2CACE,OACA,aACA,aACkB;EAClB,MAAM,UAAU,MAAM,2CACpB,OACA,aACA,WACF;EACA,IACE,0BAA0B;GACxB,SAAS,KAAK,aAAa;GAC3B,qBAAqB,KAAK;EAC5B,CAAC,GAID,OAAO,uCAAuC,OAAO;EAEvD,OAAO;CACT;CAEA,kBACE,SAC0B;EAC1B,IAAI,CAAE,KAAK,QAAqD;GAC9D,MAAM,uBAA+C;IACnD,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,mBAAmB,KAAK;IACxB,qBAAqB,KAAK;IAC1B,sBAAsB,KAAK;IAC3B,SAAS,KAAK,aAAa;GAC7B;GAEA,MAAM,YAAA,GAAA,kBAAA,YAAA,CAAuB,oBAAoB;GAEjD,MAAM,SAAS;IACb,GAAG,KAAK;IACR,SAAS;IACT,SAAS,KAAK;IACd,YAAY;GACd;GAEA,IAAI,CAAC,KAAK,sBACR,OAAO,SAAS,qBAAqB;GAGvC,IAAI,OAAO,WAAW,MACpB,OAAO,OAAO;GAGhB,MAAM,iBAAiB,iBAAiB,OAAO,cAAc;GAC7D,OAAO,iBAAiB;IACtB,GAAG,OAAO;IACV,cACE,eAAe,iBAAiB,OAC5B,GAAG,eAAe,cAAc,+BAChC;GACR;GAEA,KAAK,SAAS,IAAI,wBAAwB;IACxC,YAAY,KAAK;IACjB,sBAAsB,KAAK;IAC3B,GAAI;GACN,CAAC;EACH;EAEA,MAAM,iBAAiB;GACrB,GAAG,KAAK;GACR,GAAG;EACL;EACA,IAAI,KAAK,qBAAqB,MAAM;GAClC,eAAe,UAAU;IACvB,WAAW,KAAK;IAChB,GAAG,eAAe;GACpB;GACA,eAAe,QAAQ;IACrB,eAAe,KAAK;IACpB,GAAG,eAAe;GACpB;EACF;EACA,OAAO;CACT;CAUA,MAAM,oBACJ,SAGA,gBAC0E;EAC1E,OAAO,mCACL,KAAK,wBAAwB,OACzB;GAAE,GAAG;GAAS,UAAU,wBAAwB,QAAQ,QAAQ;EAAE,IAClE,SACJ,gBACA,MAAM,oBAAoB,KAAK,IAAI,CACrC;CACF;AACF;AAEA,IAAM,gCAAN,cAA4CC,kBAAAA,yBAAiC;CAC3E;CACA;CAEA,YAAY,QAAqC;EAC/C,MAAM,MAAM;EACZ,KAAK,sBAAsB,QAAQ;EACnC,KAAK,mBAAmB,QAAQ;CAClC;CAEA,iBACE,SACkE;EAClE,MAAM,SAAS,0BAA0B,MAAM,iBAAiB,OAAO,GAAG;GACxE,qBAAqB,KAAK;GAC1B,kBAAkB,KAAK;EACzB,CAAC;EACD,IAAI,gCAAgC,KAAK,OAAO,MAAM,GACpD,OAAO,UAAU,CACf,GAAG,IAAI,IAAI,CACT,GAAI,OAAO,WAAW,CAAC,GACvB,6BACF,CAAC,CACH;EAEF,OAAO,2BAA2B,MAAM;CAC1C;CAUA,MAAM,oBACJ,SACA,gBAC0B;EAC1B,MAAM,iBAAiB;GACrB,GAAG;GACH,OACE,KAAK,wBAAwB,OACzB,4BAA4B,QAAQ,KAAK,IACzC,QAAQ;EAChB;EACA,MAAM,SAAS,MAAM,MAAM,oBACzB,gBACA,cACF;EACA,OAAO,kBAAkB,MAAM,IAC3B,SACA,yBAAyB,MAAM;CACrC;CAEA,MAAM,UACJ,UACA,SACA,YACqB;EACrB,MAAM,SAAS,MAAM,MAAM,UACzB,uCAAuC,QAAQ,GAC/C,SACA,UACF;EACA,KAAK,MAAM,cAAc,OAAO,aAC9B,sBAAsB,WAAW,OAAO;EAE1C,OAAO;CACT;CAEA,OAAO,sBACL,UACA,SACA,YACqC;EACrC,MAAM,oBAAoB,uCAAuC,QAAQ;EAazE,OAAO,gCAAgC,MAZlB,KAAK,oBACxB;GACE,GAAG,KAAK,iBAAiB,OAAO;GAChC,QAAA,GAAA,kBAAA,gCAAA,CAAuC;IACrC,UAAU;IACV,YAAY,KAAK,cAAc;IAC/B,OAAO,KAAK;GACd,CAAC;GACD,QAAQ;EACV,GACA,OACF,GAC+C,SAAS,UAAU;CACpE;CAEA,OAAO,uBACL,UACA,SACA,YACsC;EACtC,OAAO,MAAM,uBACX,uCAAuC,QAAQ,GAC/C,SACA,UACF;CACF;CAEA,oBACE,SACoC;EACpC,OAAO,wBAAwB,KAAK,OAAO,KAAK,WAAW,OAAO;CACpE;CAEA,kBACE,SAC0B;EAC1B,IAAI,CAAE,KAAK,QAAqD;GAC9D,MAAM,uBAA+C;IACnD,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,mBAAmB,KAAK;IACxB,qBAAqB,KAAK;IAC1B,sBAAsB,KAAK;IAC3B,SAAS,KAAK,aAAa;GAC7B;GAEA,MAAM,YAAA,GAAA,kBAAA,YAAA,CAAuB,oBAAoB;GAEjD,MAAM,SAAS;IACb,GAAG,KAAK;IACR,SAAS;IACT,SAAS,KAAK;IACd,YAAY;GACd;GAEA,IAAI,CAAC,KAAK,sBACR,OAAO,SAAS,qBAAqB;GAGvC,IAAI,OAAO,WAAW,MACpB,OAAO,OAAO;GAGhB,MAAM,iBAAiB,iBAAiB,OAAO,cAAc;GAC7D,OAAO,iBAAiB;IACtB,GAAG,OAAO;IACV,cACE,eAAe,iBAAiB,OAC5B,GAAG,eAAe,cAAc,+BAChC;GACR;GAEA,KAAK,SAAS,IAAI,wBAAwB;IACxC,YAAY,KAAK;IACjB,sBAAsB,KAAK;IAC3B,GAAI;GACN,CAAC;EACH;EAEA,MAAM,iBAAiB;GACrB,GAAG,KAAK;GACR,GAAG;EACL;EACA,IAAI,KAAK,qBAAqB,MAAM;GAClC,eAAe,UAAU;IACvB,WAAW,KAAK;IAChB,GAAG,eAAe;GACpB;GACA,eAAe,QAAQ;IACrB,eAAe,KAAK;IACpB,GAAG,eAAe;GACpB;EACF;EACA,OAAO;CACT;AACF;AAEA,SAAS,0BACP,QACuB;CACvB,MAAM,aAAa,UAAU,CAAC;CAC9B,OAAO;EACL,GAAG;EACH,aACE,WAAW,eAAe,IAAI,2BAA2B,UAAU;EACrE,WAAW,WAAW,aAAa,IAAI,yBAAyB,UAAU;CAC5E;AACF;AAEA,IAAa,aAAb,cAAgCC,kBAAAA,WAA4C;CAC1E;CAEA,YACE,QACA;EACA,MAAM,0BAA0B,MAAM,CAAC;EACvC,KAAK,mBAAmBC,iBAAAA,mBAAmB,QAAQ,gBAAgB;CACrE;CAEA,IAAW,gBAAoC;EAC7C,OAAO,uBACL,KAAK,aACL,KAAK,WACL,KAAK,iBAAiB,KAAA,CAAS,CACjC;CACF;CACA,OAAO,UAAkB;EACvB,OAAO;CACT;CACA,kBACE,SAC0B;EAC1B,IAAI,CAAE,KAAK,QAAqC;GAK9C,MAAM,YAAA,GAAA,kBAAA,YAAA,CAAuB,EAH3B,SAAS,KAAK,aAAa,QAGmB,CAAC;GACjD,MAAM,SAAS;IACb,GAAG,KAAK;IACR,SAAS;IACT,SAAS,KAAK;IACd,YAAY;GACd;GACA,IAAI,OAAO,WAAW,MACpB,OAAO,OAAO;GAGhB,KAAK,SAAS,IAAI,mBAAmB,MAAM;EAC7C;EAKA,OAAO;GAHL,GAAG,KAAK;GACR,GAAG;EAEe;CACtB;CAMA,mBACE,SACoC;EACpC,OAAO,mBAAmB,KAAK,WAAW,OAAO;CACnD;CAEA,oBACE,SACoC;EACpC,OAAO,KAAK,mBAAmB,OAAO;CACxC;CAEA,OAAO,sBACL,UACA,SACA,YACqC;EACrC,OAAO,kBACL,MAAM,sBAAsB,UAAU,SAAS,KAAA,CAAS,GACxD,KAAK,kBACL,QAAQ,QACR,4BACA,IAAI,IAAI,CACV;CACF;CAOA,yBACE,UACA,SACA,YACqC;EACrC,OAAO,kBACL,MAAM,sBAAsB,UAAU,SAAS,KAAA,CAAS,GACxD,KAAK,kBACL,QAAQ,QACR,UACF;CACF;AACF;AAEA,IAAa,kBAAb,cAAqCC,kBAAAA,gBAAwB;CAC3D;CAEA,YAAY,QAAqC;EAC/C,MAAM,MAAM;EACZ,KAAK,cAAc,IAAI,gCAAgC,MAAM;EAC7D,KAAK,YAAY,IAAI,8BAA8B,MAAM;EACzD,KAAK,mBAAmBD,iBAAAA,mBAAmB,QAAQ,gBAAgB;CACrE;CAEA,IAAW,gBAAoC;EAC7C,OAAO,uBACL,KAAK,aACL,KAAK,WACL,KAAK,iBAAiB,KAAA,CAAS,CACjC;CACF;CACA,OAAO,UAAkC;EACvC,OAAO;CACT;CAKA,mBACE,SACoC;EACpC,OAAO,wBAAwB,KAAK,OAAO,KAAK,WAAW,OAAO;CACpE;CAEA,oBACE,SACoC;EACpC,OAAO,KAAK,mBAAmB,OAAO;CACxC;CAEA,kBACE,SAC0B;EAC1B,IAAI,CAAE,KAAK,QAAqD;GAC9D,MAAM,uBAA+C;IACnD,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,mBAAmB,KAAK;IACxB,qBAAqB,KAAK;IAC1B,sBAAsB,KAAK;IAC3B,SAAS,KAAK,aAAa;GAC7B;GAEA,MAAM,YAAA,GAAA,kBAAA,YAAA,CAAuB,oBAAoB;GAEjD,MAAM,SAAS;IACb,GAAG,KAAK;IACR,SAAS;IACT,SAAS,KAAK;IACd,YAAY;GACd;GAEA,IAAI,CAAC,KAAK,sBACR,OAAO,SAAS,qBAAqB;GAGvC,IAAI,OAAO,WAAW,MACpB,OAAO,OAAO;GAGhB,MAAM,iBAAiB,iBAAiB,OAAO,cAAc;GAC7D,OAAO,iBAAiB;IACtB,GAAG,OAAO;IACV,cACE,eAAe,iBAAiB,OAC5B,GAAG,eAAe,cAAc,+BAChC;GACR;GAEA,KAAK,SAAS,IAAI,wBAAwB;IACxC,YAAY,KAAK;IACjB,sBAAsB,KAAK;IAC3B,GAAI;GACN,CAAC;EACH;EAEA,MAAM,iBAAiB;GACrB,GAAG,KAAK;GACR,GAAG;EACL;EACA,IAAI,KAAK,qBAAqB,MAAM;GAClC,eAAe,UAAU;IACvB,WAAW,KAAK;IAChB,GAAG,eAAe;GACpB;GACA,eAAe,QAAQ;IACrB,eAAe,KAAK;IACpB,GAAG,eAAe;GACpB;EACF;EACA,OAAO;CACT;CACA,OAAO,sBACL,UACA,SACA,YACqC;EACrC,OAAO,kBACL,MAAM,sBAAsB,UAAU,SAAS,KAAA,CAAS,GACxD,KAAK,kBACL,QAAQ,QACR,4BACA,IAAI,IAAI,CACV;CACF;AACF;AACA,IAAa,eAAb,cAAkCE,oBAAAA,aAAqB;CACrD;CAEA,YACE,QAGA;EACA,MAAM,MAAM;EACZ,KAAK,mBAAmBF,iBAAAA,mBAAmB,QAAQ,gBAAgB;CACrE;CAEA,IAAW,gBAAoC;EAC7C,OAAO,KAAK;CACd;CACA,OAAO,UAA+B;EACpC,OAAO;CACT;CAEA,yBACE,UACyB;EACzB,OAAOR,cAAAA,+BAA+B,UAAU,KAAK,OAAO,EAC1D,yBAAyB,KAC3B,CAAC;CACH;CAEA,MAAM,UACJ,UACA,SACA,YACqB;EACrB,QAAQ,QAAQ,eAAe;EAC/B,MAAM,SAAS,KAAK,iBAAiB,OAAO;EAE5C,IAAI,OAAO,WAAW,MACpB,OAAO,MAAM,UAAU,UAAU,SAAS,UAAU;EAGtD,MAAM,iBAAiB,KAAK,yBAAyB,QAAQ;EAC7D,MAAM,WAAW,MAAM,KAAK,oBAC1B;GACE,GAAG;GACH,QAAQ;GACR,UAAU;EACZ,GACA;GACE,QAAQ,QAAQ;GAChB,GAAG,QAAQ;EACb,CACF;EAEA,MAAM,gBAAgB,oBAAoB,SAAS,KAAK;EA4BxD,OAAO;GACL,aA3BoC,SAAS,QAAQ,KAAK,SAAS;IAEnE,MAAM,aAA6B;KACjC,MAFW,KAAK,QAAQ,WAAW;KAGnC,SAAS,KAAK,wCACZ,KAAK,SACL,QACF;IACF;IACA,WAAW,iBAAiB;KAC1B,eAAe,KAAK;KACpB,GAAI,KAAK,YAAY,OAAO,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC;IAC7D;IACA,KAAA,GAAA,yBAAA,YAAA,CAAgB,WAAW,OAAO,GAChC,WAAW,QAAQ,iBAAiB;IAEtC,WAAW,UAAU,IAAIC,yBAAAA,UACvB,OAAO,YACL,OAAO,QAAQ,WAAW,OAAO,CAAC,CAAC,QAChC,CAAC,SAAS,CAAC,IAAI,WAAW,KAAK,CAClC,CACF,CACF;IACA,OAAO;GACT,CAGY;GACV,WAAW,EACT,YAAY;IACV,cAAc,cAAc;IAC5B,kBAAkB,cAAc;IAChC,aAAa,cAAc;GAC7B,EACF;EACF;CACF;CAEA,kBACE,SAC0B;EAC1B,IAAI,CAAE,KAAK,QAAqC;GAK9C,MAAM,YAAA,GAAA,kBAAA,YAAA,CAAuB,EAH3B,SAAS,KAAK,aAAa,QAGmB,CAAC;GACjD,MAAM,SAAS;IACb,GAAG,KAAK;IACR,SAAS;IACT,SAAS,KAAK;IACd,YAAY;GACd;GACA,IAAI,OAAO,WAAW,MACpB,OAAO,OAAO;GAGhB,KAAK,SAAS,IAAI,mBAAmB,MAAM;EAC7C;EAKA,OAAO;GAHL,GAAG,KAAK;GACR,GAAG;EAEe;CACtB;CAEA,OAAO,sBACL,UACA,SACA,YACqC;EACrC,OAAO,kBACL,KAAK,mCAAmC,UAAU,SAAS,KAAA,CAAS,GACpE,KAAK,kBACL,QAAQ,QACR,4BACA,IAAI,IAAI,CACV;CACF;CAGA,OAAiB,mCACf,UACA,SACA,YACqC;EACrC,MAAM,SAAS,KAAK,2CAClB,UACA,OACF;EACA,MAAM,gBAAgB;EACtB,MAAM,cAAc;EACpB,IAAI,eAAe;EACnB,IAAI,aAAa;EAEjB,WAAW,MAAM,SAAS,QAAQ;GAChC,IAAI,QAAQ,QAAQ,YAAY,MAC9B,MAAM,IAAI,MAAM,YAAY;GAG9B,MAAM,mBACJ,MAAM,QAAQ,kBAAkB;GAClC,IAAI,oBAAoB,QAAQ,qBAAqB,IAAI;IACvD,OAAO,KAAK,0BAA0B,OAAO,UAAU;IACvD;GACF;GAEA,MAAM,OAAO,MAAM;GACnB,IAAI,SAAS,IAAI;IACf,OAAO,KAAK,0BAA0B,OAAO,UAAU;IACvD;GACF;GAEA,gBAAgB;GAEhB,OAAO,iBAAiB,IAAI;IAC1B,IAAI,YAAY;KACd,MAAM,gBAAgB,aAAa,QAAQ,WAAW;KACtD,IAAI,kBAAkB,IAAI;MACxB,MAAM,iBAAiB,aAAa,UAAU,GAAG,aAAa;MAC9D,IAAI,mBAAmB,IACrB,OAAO,KAAK,4BACV,OACA,gBACA,UACF;MAGF,eAAe,aAAa,UAC1B,gBAAgB,CAClB;MACA,aAAa;MACb;KACF;KAEA,MAAM,aAAa,KAAK,iCACtB,cACA,WACF;KACA,IAAI,eAAe,IAAI;MACrB,MAAM,cAAc,aAAa,UAAU,GAAG,UAAU;MACxD,IAAI,gBAAgB,IAClB,OAAO,KAAK,4BACV,OACA,aACA,UACF;MAEF,eAAe,aAAa,UAAU,UAAU;MAChD;KACF;KAEA,OAAO,KAAK,4BACV,OACA,cACA,UACF;KACA,eAAe;KACf;IACF;IAEA,MAAM,kBAAkB,aAAa,QAAQ,aAAa;IAC1D,IAAI,oBAAoB,IAAI;KAC1B,MAAM,cAAc,aAAa,UAAU,GAAG,eAAe;KAC7D,IAAI,gBAAgB,IAClB,OAAO,KAAK,0BACV,KAAK,2BAA2B,OAAO,WAAW,GAClD,UACF;KAGF,eAAe,aAAa,UAC1B,kBAAkB,CACpB;KACA,aAAa;KACb;IACF;IAEA,MAAM,aAAa,KAAK,iCACtB,cACA,aACF;IACA,IAAI,eAAe,IAAI;KACrB,MAAM,cAAc,aAAa,UAAU,GAAG,UAAU;KACxD,IAAI,gBAAgB,IAClB,OAAO,KAAK,0BACV,KAAK,2BAA2B,OAAO,WAAW,GAClD,UACF;KAEF,eAAe,aAAa,UAAU,UAAU;KAChD;IACF;IAEA,OAAO,KAAK,0BACV,KAAK,2BAA2B,OAAO,YAAY,GACnD,UACF;IACA,eAAe;IACf;GACF;EACF;EAEA,IAAI,iBAAiB,IACnB;EAGF,IAAI,YAAY;GACd,OAAO,KAAK,0BACV,IAAIf,wBAAAA,oBAAoB;IACtB,SAAS,IAAIF,yBAAAA,eAAe;KAC1B,SAAS;KACT,mBAAmB,EACjB,mBAAmB,aACrB;IACF,CAAC;IACD,MAAM;GACR,CAAC,GACD,UACF;GACA;EACF;EAEA,OAAO,KAAK,0BACV,IAAIE,wBAAAA,oBAAoB;GACtB,SAAS,IAAIF,yBAAAA,eAAe,EAC1B,SAAS,aACX,CAAC;GACD,MAAM;EACR,CAAC,GACD,UACF;CACF;CAEA,OAAiB,2CACf,UACA,SACqC;EACrC,MAAM,SAAS;GACb,GAAG,KAAK,iBAAiB,SAAS,EAAE,WAAW,KAAK,CAAC;GACrD,QAAQ;EACV;EACA,MAAM,iBAAiB,KAAK,yBAAyB,QAAQ;EAC7D,MAAM,iBAAiB,MAAM,KAAK,oBAChC;GACE,GAAG;GACH,UAAU;EACZ,GACA;GACE,QAAQ,QAAQ;GAChB,GAAG,QAAQ;EACb,CACF;EAEA,IAAI;EAGJ,IAAI;EAEJ,WAAW,MAAM,QAAQ,gBAAgB;GACvC,IAAI,QAAQ,QAAQ,YAAY,MAC9B,MAAM,IAAI,MAAM,YAAY;GAG9B,IAAI,KAAK,SAAS,MAChB,QAAQ,KAAK;GAGf,IAAI,KAAK,QAAQ,WAAW,GAC1B;GAGF,MAAM,SAAS,KAAK,QAAQ;GAC5B,MAAM,EAAE,UAAU;GAClB,MAAM,eAAe,KAAK,2CACxB,OACA,MACA,WACF;GACA,cAAc,MAAM,QAAQ;GAE5B,IAAI,OAAO,aAAa,YAAY,UAClC;GAGF,MAAM,cAAc,aAAa;GAKjC,MAAM,iBAAiB;IAHrB,QAAQ,QAAQ,eAAe;IAC/B,YAAY,OAAO;GAEuB;GAC5C,IAAI,OAAO,iBAAiB,MAC1B,OAAO,OAAO,gBAAgB;IAC5B,eAAe,OAAO;IACtB,oBAAoB,KAAK;IACzB,YAAY,KAAK;IACjB,cAAc,KAAK;GACrB,CAAC;GAEH,IAAI,KAAK,aAAa,MACpB,OAAO,OAAO,gBAAgB,EAAE,UAAU,OAAO,SAAS,CAAC;GAS7D,MAAM,IANsBE,wBAAAA,oBAAoB;IAC9C,SAAS;IACT,MAAM;IACN;GACF,CAEoB;EACtB;EAEA,IAAI,SAAS,MAAM;GACjB,MAAM,gBAAgB,oBAAoB,KAAK;GAiB/C,MAAM,IAfsBA,wBAAAA,oBAAoB;IAC9C,SAAS,IAAIF,yBAAAA,eAAe;KAC1B,SAAS;KACT,mBAAmB,EACjB,OAAO,EAAE,GAAG,MAAM,EACpB;KACA,gBAAgB;IAClB,CAAC;IACD,MAAM;IACN,gBAAgB;KACd,QAAQ;KACR,YAAY;IACd;GACF,CAEoB;EACtB;EAEA,IAAI,QAAQ,QAAQ,YAAY,MAC9B,MAAM,IAAI,MAAM,YAAY;CAEhC;CAEA,2BACE,OACA,SACA,kBACA,OAAO,SACc;EACrB,IAAI,EAAE,MAAM,mBAAmBA,yBAAAA,iBAC7B,OAAO,IAAIE,wBAAAA,oBAAoB;GAC7B,SAAS,IAAIF,yBAAAA,eAAe;IAC1B;IACA,mBACE,oBAAoB,MAAM,QAAQ;IACpC,mBAAmB,MAAM,QAAQ;IACjC,IAAI,MAAM,QAAQ;GACpB,CAAC;GACD;GACA,gBAAgB,MAAM;EACxB,CAAC;EAGH,MAAM,UAAU,MAAM;EACtB,OAAO,IAAIE,wBAAAA,oBAAoB;GAC7B,SAAS,IAAIF,yBAAAA,eAAe;IAC1B;IACA,mBAAmB,oBAAoB,QAAQ;IAC/C,mBAAmB,QAAQ;IAC3B,YAAY,QAAQ;IACpB,kBAAkB,QAAQ;IAC1B,IAAI,QAAQ;GACd,CAAC;GACD;GACA,gBAAgB,MAAM;EACxB,CAAC;CACH;CAEA,oCACE,OACA,kBACqB;EACrB,OAAO,KAAK,2BACV,OACA,IACA;GACE,GAAG,MAAM,QAAQ;GACjB,mBAAmB;EACrB,GACA,EACF;CACF;CAEA,OAAiB,4BACf,OACA,kBACA,YACqC;EACrC,OAAO,KAAK,0BACV,KAAK,oCAAoC,OAAO,gBAAgB,GAChE,UACF;CACF;CAEA,OAAiB,0BACf,OACA,YACqC;EACrC,MAAM;EACN,MAAM,YAAY,kBAChB,MAAM,MACN,KAAK,yBAAyB,KAAK,GACnC,KAAA,GACA,KAAA,GACA,KAAA,GACA,EAAE,MAAM,CACV;CACF;CAEA,yBACE,OACoD;EACpD,OAAO,2BAA2B,KAAK;CACzC;CAEA,iCACE,MACA,KACQ;EACR,KAAK,IAAI,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,KACnC,IAAI,KAAK,SAAS,IAAI,UAAU,GAAG,CAAC,CAAC,GACnC,OAAO,KAAK,SAAS;EAIzB,OAAO;CACT;AACF;AAoBA,IAAa,eAAb,cAAkC,WAAW;CAC3C,YACE,QACA;EACA,MAAM;GACJ,GAAG;GACH,yBAAyB;EAC3B,CAAC;CACH;CAEA,OAAO,UAA+B;EACpC,OAAO;CACT;AACF;AAEA,IAAa,UAAb,cAA6B2B,eAAAA,QAAgB;CAC3C;CAEA,YACE,QAKA;EACA,MAAM,MAAM;EACZ,KAAK,mBAAmBH,iBAAAA,mBAAmB,QAAQ,gBAAgB;EACnE,MAAM,gBACJ,QAAQ,eAAe,WAAW,QAAQ,cAAc;EAC1D,IAAI,iBAAiB,QAAQ,eAAe;GAC1C,KAAK,eAAe;IAClB,GAAG,KAAK;IACR,SAAS;GACX;GAGA,KAAK,SAAS,KAAA;EAChB;CACF;CAEA,OAAO,UAA0B;EAC/B,OAAO;CACT;CAEA,IAAW,gBAAoC;EAC7C,OAAO,KAAK;CACd;CAEA,kBACE,SAC0B;EAC1B,IAAI,CAAE,KAAK,QAAqC;GAK9C,MAAM,YAAA,GAAA,kBAAA,YAAA,CAAuB,EAH3B,SAAS,KAAK,aAAa,QAGmB,CAAC;GACjD,MAAM,SAAS;IACb,GAAG,KAAK;IACR,SAAS;IACT,SAAS,KAAK;IACd,YAAY;GACd;GACA,IAAI,OAAO,WAAW,MACpB,OAAO,OAAO;GAGhB,KAAK,SAAS,IAAI,mBAAmB,MAAM;EAC7C;EAKA,OAAO;GAHL,GAAG,KAAK;GACR,GAAG;EAEe;CACtB;CAEA,OAAO,sBACL,UACA,SACA,YACqC;EACrC,OAAO,kBACL,MAAM,sBAAsB,UAAU,SAAS,KAAA,CAAS,GACxD,KAAK,kBACL,QAAQ,QACR,4BACA,IAAI,IAAI,CACV;CACF;AACF"}
@@ -1,13 +1,4 @@
1
1
  //#region src/llm/openai/streamMetadata.ts
2
- /**
3
- * `@langchain/openai` stamps these scalar fields together onto every chunk
4
- * whose `choice.finish_reason` is set. Providers that emit `finish_reason` on
5
- * more than one streamed chunk (e.g. OpenRouter) otherwise make core's
6
- * `_mergeDicts` concatenate them into `stopstop` / duplicated model names — in
7
- * both the aggregated graph message and the Langfuse trace. Core keeps
8
- * `id`/`name`/`model_provider` last but not these, so keep the first occurrence
9
- * and drop later repeats at the source, before either aggregation runs.
10
- */
11
2
  const REPEATED_SCALAR_METADATA_FIELDS = [
12
3
  "model_name",
13
4
  "finish_reason",
@@ -18,18 +9,6 @@ function completionIndex(generationInfo) {
18
9
  const completion = generationInfo?.completion;
19
10
  return typeof completion === "number" ? completion : 0;
20
11
  }
21
- /**
22
- * Strip scalar `response_metadata`/`generationInfo` fields that have already
23
- * appeared on an earlier chunk of the same completion (tracked in `seen`),
24
- * keeping the first occurrence so the aggregated message still carries the
25
- * value once. Scoped per completion index so multi-choice (`n > 1`) responses,
26
- * which `_generate` aggregates separately, keep each choice's own metadata.
27
- *
28
- * Deletes from a shallow clone rather than in place: providers such as
29
- * `ChatDeepSeek` split one raw chunk into several synthetic pieces that share
30
- * the same `response_metadata`/`generationInfo` objects, so mutating in place
31
- * would strip fields from sibling chunks that were already emitted.
32
- */
33
12
  function dropRepeatedScalarMetadata(chunk, seen) {
34
13
  const generationInfo = chunk.generationInfo;
35
14
  const responseMetadata = chunk.message.response_metadata;
@@ -1 +1 @@
1
- {"version":3,"file":"streamMetadata.cjs","names":[],"sources":["../../../../src/llm/openai/streamMetadata.ts"],"sourcesContent":["import type { ChatGenerationChunk } from '@langchain/core/outputs';\n\n/**\n * `@langchain/openai` stamps these scalar fields together onto every chunk\n * whose `choice.finish_reason` is set. Providers that emit `finish_reason` on\n * more than one streamed chunk (e.g. OpenRouter) otherwise make core's\n * `_mergeDicts` concatenate them into `stopstop` / duplicated model names — in\n * both the aggregated graph message and the Langfuse trace. Core keeps\n * `id`/`name`/`model_provider` last but not these, so keep the first occurrence\n * and drop later repeats at the source, before either aggregation runs.\n */\nconst REPEATED_SCALAR_METADATA_FIELDS = [\n 'model_name',\n 'finish_reason',\n 'service_tier',\n 'system_fingerprint',\n] as const;\n\n/** Per-completion-index set of scalar fields already emitted this stream. */\nexport type SeenScalarMetadata = Map<number, Set<string>>;\n\nfunction completionIndex(\n generationInfo: Record<string, unknown> | undefined\n): number {\n const completion = generationInfo?.completion;\n return typeof completion === 'number' ? completion : 0;\n}\n\n/**\n * Strip scalar `response_metadata`/`generationInfo` fields that have already\n * appeared on an earlier chunk of the same completion (tracked in `seen`),\n * keeping the first occurrence so the aggregated message still carries the\n * value once. Scoped per completion index so multi-choice (`n > 1`) responses,\n * which `_generate` aggregates separately, keep each choice's own metadata.\n *\n * Deletes from a shallow clone rather than in place: providers such as\n * `ChatDeepSeek` split one raw chunk into several synthetic pieces that share\n * the same `response_metadata`/`generationInfo` objects, so mutating in place\n * would strip fields from sibling chunks that were already emitted.\n */\nexport function dropRepeatedScalarMetadata(\n chunk: ChatGenerationChunk,\n seen: SeenScalarMetadata\n): void {\n const generationInfo = chunk.generationInfo as\n | Record<string, unknown>\n | undefined;\n const responseMetadata = chunk.message.response_metadata as Record<\n string,\n unknown\n >;\n\n const index = completionIndex(generationInfo);\n let seenFields = seen.get(index);\n if (seenFields == null) {\n seenFields = new Set<string>();\n seen.set(index, seenFields);\n }\n\n const dropFromGenerationInfo: string[] = [];\n const dropFromResponseMetadata: string[] = [];\n for (const field of REPEATED_SCALAR_METADATA_FIELDS) {\n const inGenerationInfo =\n generationInfo != null && generationInfo[field] != null;\n const inResponseMetadata = responseMetadata[field] != null;\n if (!inGenerationInfo && !inResponseMetadata) {\n continue;\n }\n if (!seenFields.has(field)) {\n seenFields.add(field);\n continue;\n }\n if (inGenerationInfo) {\n dropFromGenerationInfo.push(field);\n }\n if (inResponseMetadata) {\n dropFromResponseMetadata.push(field);\n }\n }\n\n if (dropFromGenerationInfo.length > 0 && generationInfo != null) {\n const cloned = { ...generationInfo };\n for (const field of dropFromGenerationInfo) {\n delete cloned[field];\n }\n chunk.generationInfo = cloned;\n }\n if (dropFromResponseMetadata.length > 0) {\n const cloned = { ...responseMetadata };\n for (const field of dropFromResponseMetadata) {\n delete cloned[field];\n }\n chunk.message.response_metadata = cloned;\n }\n}\n"],"mappings":";;;;;;;;;;AAWA,MAAM,kCAAkC;CACtC;CACA;CACA;CACA;AACF;AAKA,SAAS,gBACP,gBACQ;CACR,MAAM,aAAa,gBAAgB;CACnC,OAAO,OAAO,eAAe,WAAW,aAAa;AACvD;;;;;;;;;;;;;AAcA,SAAgB,2BACd,OACA,MACM;CACN,MAAM,iBAAiB,MAAM;CAG7B,MAAM,mBAAmB,MAAM,QAAQ;CAKvC,MAAM,QAAQ,gBAAgB,cAAc;CAC5C,IAAI,aAAa,KAAK,IAAI,KAAK;CAC/B,IAAI,cAAc,MAAM;EACtB,6BAAa,IAAI,IAAY;EAC7B,KAAK,IAAI,OAAO,UAAU;CAC5B;CAEA,MAAM,yBAAmC,CAAC;CAC1C,MAAM,2BAAqC,CAAC;CAC5C,KAAK,MAAM,SAAS,iCAAiC;EACnD,MAAM,mBACJ,kBAAkB,QAAQ,eAAe,UAAU;EACrD,MAAM,qBAAqB,iBAAiB,UAAU;EACtD,IAAI,CAAC,oBAAoB,CAAC,oBACxB;EAEF,IAAI,CAAC,WAAW,IAAI,KAAK,GAAG;GAC1B,WAAW,IAAI,KAAK;GACpB;EACF;EACA,IAAI,kBACF,uBAAuB,KAAK,KAAK;EAEnC,IAAI,oBACF,yBAAyB,KAAK,KAAK;CAEvC;CAEA,IAAI,uBAAuB,SAAS,KAAK,kBAAkB,MAAM;EAC/D,MAAM,SAAS,EAAE,GAAG,eAAe;EACnC,KAAK,MAAM,SAAS,wBAClB,OAAO,OAAO;EAEhB,MAAM,iBAAiB;CACzB;CACA,IAAI,yBAAyB,SAAS,GAAG;EACvC,MAAM,SAAS,EAAE,GAAG,iBAAiB;EACrC,KAAK,MAAM,SAAS,0BAClB,OAAO,OAAO;EAEhB,MAAM,QAAQ,oBAAoB;CACpC;AACF"}
1
+ {"version":3,"file":"streamMetadata.cjs","names":[],"sources":["../../../../src/llm/openai/streamMetadata.ts"],"mappings":";AAWA,MAAM,kCAAkC;CACtC;CACA;CACA;CACA;AACF;AAKA,SAAS,gBACP,gBACQ;CACR,MAAM,aAAa,gBAAgB;CACnC,OAAO,OAAO,eAAe,WAAW,aAAa;AACvD;AAcA,SAAgB,2BACd,OACA,MACM;CACN,MAAM,iBAAiB,MAAM;CAG7B,MAAM,mBAAmB,MAAM,QAAQ;CAKvC,MAAM,QAAQ,gBAAgB,cAAc;CAC5C,IAAI,aAAa,KAAK,IAAI,KAAK;CAC/B,IAAI,cAAc,MAAM;EACtB,6BAAa,IAAI,IAAY;EAC7B,KAAK,IAAI,OAAO,UAAU;CAC5B;CAEA,MAAM,yBAAmC,CAAC;CAC1C,MAAM,2BAAqC,CAAC;CAC5C,KAAK,MAAM,SAAS,iCAAiC;EACnD,MAAM,mBACJ,kBAAkB,QAAQ,eAAe,UAAU;EACrD,MAAM,qBAAqB,iBAAiB,UAAU;EACtD,IAAI,CAAC,oBAAoB,CAAC,oBACxB;EAEF,IAAI,CAAC,WAAW,IAAI,KAAK,GAAG;GAC1B,WAAW,IAAI,KAAK;GACpB;EACF;EACA,IAAI,kBACF,uBAAuB,KAAK,KAAK;EAEnC,IAAI,oBACF,yBAAyB,KAAK,KAAK;CAEvC;CAEA,IAAI,uBAAuB,SAAS,KAAK,kBAAkB,MAAM;EAC/D,MAAM,SAAS,EAAE,GAAG,eAAe;EACnC,KAAK,MAAM,SAAS,wBAClB,OAAO,OAAO;EAEhB,MAAM,iBAAiB;CACzB;CACA,IAAI,yBAAyB,SAAS,GAAG;EACvC,MAAM,SAAS,EAAE,GAAG,iBAAiB;EACrC,KAAK,MAAM,SAAS,0BAClB,OAAO,OAAO;EAEhB,MAAM,QAAQ,oBAAoB;CACpC;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["calculateMaxToolCallInputChars","serializeToolCallInput","ChatMessage","projectToolCallInputs","isComputerCallOutputMessage","getBoundedCacheControlledTextToolContent","HARD_MAX_TOOL_RESULT_CHARS","serializeStructuredValueBounded"],"sources":["../../../../../src/llm/openai/utils/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { type OpenAI as OpenAIClient } from 'openai';\nimport { ChatGenerationChunk } from '@langchain/core/outputs';\nimport {\n makeInvalidToolCall,\n parseToolCall,\n} from '@langchain/core/output_parsers/openai_tools';\nimport {\n AIMessage,\n AIMessageChunk,\n type BaseMessage,\n ChatMessage,\n ToolMessage,\n isAIMessage,\n type UsageMetadata,\n type BaseMessageFields,\n type MessageContentComplex,\n type InvalidToolCall,\n type MessageContentImageUrl,\n StandardContentBlockConverter,\n parseBase64DataUrl,\n parseMimeType,\n convertToProviderContentBlock,\n isDataContentBlock,\n} from '@langchain/core/messages';\nimport type {\n ChatCompletionContentPartText,\n ChatCompletionContentPartImage,\n ChatCompletionContentPartInputAudio,\n ChatCompletionContentPart,\n} from 'openai/resources/chat/completions';\nimport type {\n OpenAICallOptions,\n OpenAIChatInput,\n ChatOpenAIReasoningSummary,\n} from '@langchain/openai';\nimport type { ToolCall, ToolCallChunk } from '@langchain/core/messages/tool';\nimport {\n getBoundedCacheControlledTextToolContent,\n getComputerCallOutputScreenshot,\n isComputerCallOutputMessage,\n serializeStructuredValueBounded,\n} from '@/utils/toolContent';\nimport {\n STREAMED_TOOL_CALL_SEAL_METADATA_KEY,\n STREAMED_TOOL_CALL_ADAPTER_METADATA_KEY,\n OPENAI_RESPONSES_STREAMED_TOOL_CALL_ADAPTER,\n} from '@/tools/streamedToolCallSeals';\nimport {\n calculateMaxToolCallInputChars,\n projectToolCallInputs,\n serializeToolCallInput,\n} from '@/messages/prune';\nimport { HARD_MAX_TOOL_RESULT_CHARS } from '@/utils/truncation';\nimport { toLangChainContent } from '@/messages/langchain';\n\nexport type { OpenAICallOptions, OpenAIChatInput };\n\n// Utility types to get hidden OpenAI response types\ntype ExtractAsyncIterableType<T> = T extends AsyncIterable<infer U> ? U : never;\ntype ExcludeController<T> = T extends { controller: unknown } ? never : T;\ntype ExcludeNonController<T> = T extends { controller: unknown } ? T : never;\n\ntype ResponsesCreate = OpenAIClient.Responses['create'];\ntype ResponsesParse = OpenAIClient.Responses['parse'];\n\ntype ResponsesInputItem = OpenAIClient.Responses.ResponseInputItem;\n\ntype ResponsesCreateInvoke = ExcludeController<\n Awaited<ReturnType<ResponsesCreate>>\n>;\n\ntype ResponsesParseInvoke = ExcludeController<\n Awaited<ReturnType<ResponsesParse>>\n>;\n\ntype ResponsesCreateStream = ExcludeNonController<\n Awaited<ReturnType<ResponsesCreate>>\n>;\n\nexport type ResponseReturnStreamEvents =\n ExtractAsyncIterableType<ResponsesCreateStream>;\n\n// TODO import from SDK when available\ntype OpenAIRoleEnum =\n | 'system'\n | 'developer'\n | 'assistant'\n | 'user'\n | 'function'\n | 'tool';\n\ntype OpenAICompletionParam =\n OpenAIClient.Chat.Completions.ChatCompletionMessageParam;\n\nconst MAX_PROVIDER_TOOL_CALL_INPUT_CHARS = calculateMaxToolCallInputChars();\n\nfunction convertLangChainToolCallToBoundedOpenAI(toolCall: ToolCall): {\n id: string;\n type: 'function';\n function: {\n name: string;\n arguments: string;\n };\n} {\n if (toolCall.id == null) {\n throw new Error('All OpenAI tool calls must have an \"id\" field.');\n }\n return {\n id: toolCall.id,\n type: 'function',\n function: {\n name: toolCall.name,\n arguments: serializeToolCallInput(\n toolCall.args,\n MAX_PROVIDER_TOOL_CALL_INPUT_CHARS\n ),\n },\n };\n}\n\nfunction extractGenericMessageCustomRole(message: ChatMessage) {\n if (\n message.role !== 'system' &&\n message.role !== 'developer' &&\n message.role !== 'assistant' &&\n message.role !== 'user' &&\n message.role !== 'function' &&\n message.role !== 'tool'\n ) {\n console.warn(`Unknown message role: ${message.role}`);\n }\n\n return message.role as OpenAIRoleEnum;\n}\n\nexport function messageToOpenAIRole(message: BaseMessage): OpenAIRoleEnum {\n const type = message._getType();\n switch (type) {\n case 'system':\n return 'system';\n case 'ai':\n return 'assistant';\n case 'human':\n return 'user';\n case 'function':\n return 'function';\n case 'tool':\n return 'tool';\n case 'generic': {\n if (!ChatMessage.isInstance(message))\n throw new Error('Invalid generic chat message');\n return extractGenericMessageCustomRole(message);\n }\n default:\n throw new Error(`Unknown message type: ${type}`);\n }\n}\n\nconst completionsApiContentBlockConverter: StandardContentBlockConverter<{\n text: ChatCompletionContentPartText;\n image: ChatCompletionContentPartImage;\n audio: ChatCompletionContentPartInputAudio;\n file: ChatCompletionContentPart.File;\n}> = {\n providerName: 'ChatOpenAI',\n\n fromStandardTextBlock(block): ChatCompletionContentPartText {\n return { type: 'text', text: block.text };\n },\n\n fromStandardImageBlock(block): ChatCompletionContentPartImage {\n if (block.source_type === 'url') {\n return {\n type: 'image_url',\n image_url: {\n url: block.url,\n ...(block.metadata?.detail\n ? { detail: block.metadata.detail as 'auto' | 'low' | 'high' }\n : {}),\n },\n };\n }\n\n if (block.source_type === 'base64') {\n const url = `data:${block.mime_type ?? ''};base64,${block.data}`;\n return {\n type: 'image_url',\n image_url: {\n url,\n ...(block.metadata?.detail\n ? { detail: block.metadata.detail as 'auto' | 'low' | 'high' }\n : {}),\n },\n };\n }\n\n throw new Error(\n `Image content blocks with source_type ${block.source_type} are not supported for ChatOpenAI`\n );\n },\n\n fromStandardAudioBlock(block): ChatCompletionContentPartInputAudio {\n if (block.source_type === 'url') {\n const data = parseBase64DataUrl({ dataUrl: block.url });\n if (!data) {\n throw new Error(\n `URL audio blocks with source_type ${block.source_type} must be formatted as a data URL for ChatOpenAI`\n );\n }\n\n const rawMimeType = data.mime_type || block.mime_type || '';\n let mimeType: { type: string; subtype: string };\n\n try {\n mimeType = parseMimeType(rawMimeType);\n } catch {\n throw new Error(\n `Audio blocks with source_type ${block.source_type} must have mime type of audio/wav or audio/mp3`\n );\n }\n\n if (\n mimeType.type !== 'audio' ||\n (mimeType.subtype !== 'wav' && mimeType.subtype !== 'mp3')\n ) {\n throw new Error(\n `Audio blocks with source_type ${block.source_type} must have mime type of audio/wav or audio/mp3`\n );\n }\n\n return {\n type: 'input_audio',\n input_audio: {\n format: mimeType.subtype,\n data: data.data,\n },\n };\n }\n\n if (block.source_type === 'base64') {\n let mimeType: { type: string; subtype: string };\n\n try {\n mimeType = parseMimeType(block.mime_type ?? '');\n } catch {\n throw new Error(\n `Audio blocks with source_type ${block.source_type} must have mime type of audio/wav or audio/mp3`\n );\n }\n\n if (\n mimeType.type !== 'audio' ||\n (mimeType.subtype !== 'wav' && mimeType.subtype !== 'mp3')\n ) {\n throw new Error(\n `Audio blocks with source_type ${block.source_type} must have mime type of audio/wav or audio/mp3`\n );\n }\n\n return {\n type: 'input_audio',\n input_audio: {\n format: mimeType.subtype,\n data: block.data,\n },\n };\n }\n\n throw new Error(\n `Audio content blocks with source_type ${block.source_type} are not supported for ChatOpenAI`\n );\n },\n\n fromStandardFileBlock(block): ChatCompletionContentPart.File {\n if (block.source_type === 'url') {\n const data = parseBase64DataUrl({ dataUrl: block.url });\n if (!data) {\n throw new Error(\n `URL file blocks with source_type ${block.source_type} must be formatted as a data URL for ChatOpenAI`\n );\n }\n\n return {\n type: 'file',\n file: {\n file_data: block.url, // formatted as base64 data URL\n ...(block.metadata?.filename || block.metadata?.name\n ? {\n filename: (block.metadata.filename ||\n block.metadata.name) as string,\n }\n : {}),\n },\n };\n }\n\n if (block.source_type === 'base64') {\n return {\n type: 'file',\n file: {\n file_data: `data:${block.mime_type ?? ''};base64,${block.data}`,\n ...(block.metadata?.filename ||\n block.metadata?.name ||\n block.metadata?.title\n ? {\n filename: (block.metadata.filename ||\n block.metadata.name ||\n block.metadata.title) as string,\n }\n : {}),\n },\n };\n }\n\n if (block.source_type === 'id') {\n return {\n type: 'file',\n file: {\n file_id: block.id,\n },\n };\n }\n\n throw new Error(\n `File content blocks with source_type ${block.source_type} are not supported for ChatOpenAI`\n );\n },\n};\n\n/** Options for converting messages to OpenAI params */\nexport interface ConvertMessagesOptions {\n /** Include reasoning_content field for DeepSeek thinking mode with tool calls */\n includeReasoningContent?: boolean;\n /** Include reasoning_details field for OpenRouter/Gemini thinking mode with tool calls */\n includeReasoningDetails?: boolean;\n /** Convert reasoning_details to content blocks for Claude (requires content array format) */\n convertReasoningDetailsToContent?: boolean;\n /** Preserve OpenRouter's canonical cache-decorated tool text block. */\n preserveToolCacheControl?: boolean;\n}\n\n// Used in LangSmith, export is important here\nexport function _convertMessagesToOpenAIParams(\n messages: BaseMessage[],\n model?: string,\n options?: ConvertMessagesOptions\n): OpenAICompletionParam[] {\n const projectedMessages = projectToolCallInputs(\n messages,\n MAX_PROVIDER_TOOL_CALL_INPUT_CHARS\n );\n let hasReasoningToolCallContext = false;\n // TODO: Function messages do not support array content, fix cast\n return projectedMessages.flatMap((message) => {\n let role = messageToOpenAIRole(message);\n if (role === 'system' && isReasoningModel(model)) {\n role = 'developer';\n }\n\n let hasAnthropicThinkingBlock: boolean = false;\n\n let content: unknown;\n if (\n role === 'tool' &&\n typeof message.content !== 'string' &&\n !isComputerCallOutputMessage(message)\n ) {\n content =\n options?.preserveToolCacheControl === true\n ? getBoundedCacheControlledTextToolContent(\n message.content,\n HARD_MAX_TOOL_RESULT_CHARS\n )\n : undefined;\n content ??= serializeStructuredValueBounded(\n message.content,\n HARD_MAX_TOOL_RESULT_CHARS\n ).content;\n } else if (typeof message.content === 'string') {\n content = message.content;\n } else {\n content = message.content.map((m) => {\n if ('type' in m && m.type === 'thinking') {\n hasAnthropicThinkingBlock = true;\n return m;\n }\n if (isDataContentBlock(m)) {\n return convertToProviderContentBlock(\n m,\n completionsApiContentBlockConverter\n );\n }\n return m;\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const completionParam: Record<string, any> = {\n role,\n content,\n };\n let messageHasToolCalls = false;\n let messageIsToolResult = false;\n if (message.name != null) {\n completionParam.name = message.name;\n }\n if (message.additional_kwargs.function_call != null) {\n completionParam.function_call = message.additional_kwargs.function_call;\n completionParam.content = '';\n }\n if (isAIMessage(message) && !!message.tool_calls?.length) {\n messageHasToolCalls = true;\n completionParam.tool_calls = message.tool_calls.map(\n convertLangChainToolCallToBoundedOpenAI\n );\n completionParam.content = hasAnthropicThinkingBlock ? content : '';\n if (\n options?.includeReasoningDetails === true &&\n message.additional_kwargs.reasoning_details != null\n ) {\n // For Claude via OpenRouter, convert reasoning_details to content blocks\n const isClaudeModel =\n model?.includes('claude') === true ||\n model?.includes('anthropic') === true;\n if (\n options.convertReasoningDetailsToContent === true &&\n isClaudeModel\n ) {\n const reasoningDetails = message.additional_kwargs\n .reasoning_details as Record<string, unknown>[];\n const contentBlocks = [];\n\n // Add thinking blocks from reasoning_details\n for (const detail of reasoningDetails) {\n if (detail.type === 'reasoning.text' && detail.text != null) {\n contentBlocks.push({\n type: 'thinking',\n thinking: detail.text,\n });\n } else if (\n detail.type === 'reasoning.encrypted' &&\n detail.data != null\n ) {\n contentBlocks.push({\n type: 'redacted_thinking',\n data: detail.data,\n id: detail.id,\n });\n }\n }\n\n // Set content to array with thinking blocks\n if (contentBlocks.length > 0) {\n completionParam.content = contentBlocks;\n }\n } else {\n // For non-Claude models, pass as separate field\n completionParam.reasoning_details =\n message.additional_kwargs.reasoning_details;\n }\n }\n } else {\n if (message.additional_kwargs.tool_calls != null) {\n messageHasToolCalls =\n !Array.isArray(message.additional_kwargs.tool_calls) ||\n message.additional_kwargs.tool_calls.length > 0;\n completionParam.tool_calls = message.additional_kwargs.tool_calls;\n if (\n options?.includeReasoningDetails === true &&\n message.additional_kwargs.reasoning_details != null\n ) {\n // For Claude via OpenRouter, convert reasoning_details to content blocks\n const isClaudeModel =\n model?.includes('claude') === true ||\n model?.includes('anthropic') === true;\n if (\n options.convertReasoningDetailsToContent === true &&\n isClaudeModel\n ) {\n const reasoningDetails = message.additional_kwargs\n .reasoning_details as Record<string, unknown>[];\n const contentBlocks = [];\n\n // Add thinking blocks from reasoning_details\n for (const detail of reasoningDetails) {\n if (detail.type === 'reasoning.text' && detail.text != null) {\n contentBlocks.push({\n type: 'thinking',\n thinking: detail.text,\n });\n } else if (\n detail.type === 'reasoning.encrypted' &&\n detail.data != null\n ) {\n contentBlocks.push({\n type: 'redacted_thinking',\n data: detail.data,\n id: detail.id,\n });\n }\n }\n\n // Set content to array with thinking blocks\n if (contentBlocks.length > 0) {\n completionParam.content = contentBlocks;\n }\n } else {\n // For non-Claude models, pass as separate field\n completionParam.reasoning_details =\n message.additional_kwargs.reasoning_details;\n }\n }\n }\n if ((message as ToolMessage).tool_call_id != null) {\n messageIsToolResult = true;\n completionParam.tool_call_id = (message as ToolMessage).tool_call_id;\n }\n }\n\n if (\n options?.includeReasoningContent === true &&\n isAIMessage(message) &&\n (hasReasoningToolCallContext || messageHasToolCalls) &&\n typeof message.additional_kwargs.reasoning_content === 'string' &&\n message.additional_kwargs.reasoning_content !== ''\n ) {\n completionParam.reasoning_content =\n message.additional_kwargs.reasoning_content;\n }\n\n if (messageHasToolCalls || messageIsToolResult) {\n hasReasoningToolCallContext = true;\n }\n\n if (\n message.additional_kwargs.audio &&\n typeof message.additional_kwargs.audio === 'object' &&\n 'id' in message.additional_kwargs.audio\n ) {\n const audioMessage = {\n role: 'assistant',\n audio: {\n id: message.additional_kwargs.audio.id,\n },\n };\n return [completionParam, audioMessage] as OpenAICompletionParam[];\n }\n\n return completionParam as OpenAICompletionParam;\n });\n}\n\nconst _FUNCTION_CALL_IDS_MAP_KEY = '__openai_function_call_ids__';\n\nfunction _convertReasoningSummaryToOpenAIResponsesParams(\n reasoning: ChatOpenAIReasoningSummary\n): OpenAIClient.Responses.ResponseReasoningItem {\n // combine summary parts that have the the same index and then remove the indexes\n const summary = (\n reasoning.summary.length > 1\n ? reasoning.summary.reduce(\n (acc, curr) => {\n const last = acc.at(-1);\n\n if (last!.index === curr.index) {\n last!.text += curr.text;\n } else {\n acc.push(curr);\n }\n return acc;\n },\n [{ ...reasoning.summary[0] }]\n )\n : reasoning.summary\n ).map((s) =>\n Object.fromEntries(Object.entries(s).filter(([k]) => k !== 'index'))\n ) as OpenAIClient.Responses.ResponseReasoningItem.Summary[];\n\n return {\n ...reasoning,\n summary,\n } as OpenAIClient.Responses.ResponseReasoningItem;\n}\n\nexport function _convertMessagesToOpenAIResponsesParams(\n messages: BaseMessage[],\n model?: string,\n zdrEnabled?: boolean\n): ResponsesInputItem[] {\n const projectedMessages = projectToolCallInputs(\n messages,\n MAX_PROVIDER_TOOL_CALL_INPUT_CHARS\n );\n return projectedMessages.flatMap(\n (lcMsg): ResponsesInputItem | ResponsesInputItem[] => {\n const additional_kwargs =\n lcMsg.additional_kwargs as BaseMessageFields['additional_kwargs'] & {\n [_FUNCTION_CALL_IDS_MAP_KEY]?: Record<string, string>;\n reasoning?: OpenAIClient.Responses.ResponseReasoningItem;\n type?: string;\n refusal?: string;\n };\n const responseMetadata = lcMsg.response_metadata as {\n output?: ResponsesInputItem[];\n };\n\n let role = messageToOpenAIRole(lcMsg);\n if (role === 'system' && isReasoningModel(model)) role = 'developer';\n\n if (role === 'function') {\n throw new Error('Function messages are not supported in Responses API');\n }\n\n if (role === 'tool') {\n const toolMessage = lcMsg as ToolMessage;\n\n // Handle computer call output\n if (additional_kwargs.type === 'computer_call_output') {\n const screenshot = getComputerCallOutputScreenshot(\n toolMessage.content\n );\n if (screenshot == null) {\n throw new Error('Invalid computer call output');\n }\n\n const output: OpenAIClient.Responses.ResponseComputerToolCallOutputScreenshot =\n 'image_url' in screenshot\n ? {\n type: 'computer_screenshot',\n image_url: screenshot.image_url,\n }\n : {\n type: 'computer_screenshot',\n file_id: screenshot.file_id,\n };\n const computerCallOutput: ResponsesInputItem = {\n type: 'computer_call_output',\n output,\n call_id: toolMessage.tool_call_id,\n };\n return computerCallOutput;\n }\n\n return {\n type: 'function_call_output',\n call_id: toolMessage.tool_call_id,\n id: toolMessage.id?.startsWith('fc_') ? toolMessage.id : undefined,\n output:\n typeof toolMessage.content !== 'string'\n ? serializeStructuredValueBounded(\n toolMessage.content,\n HARD_MAX_TOOL_RESULT_CHARS\n ).content\n : toolMessage.content,\n };\n }\n\n if (role === 'assistant') {\n // if we have the original response items, just reuse them\n if (\n !zdrEnabled &&\n responseMetadata.output != null &&\n Array.isArray(responseMetadata.output) &&\n responseMetadata.output.length > 0 &&\n responseMetadata.output.every((item) => 'type' in item)\n ) {\n return responseMetadata.output;\n }\n\n // otherwise, try to reconstruct the response from what we have\n\n const input: ResponsesInputItem[] = [];\n\n // reasoning items\n if (additional_kwargs.reasoning && !zdrEnabled) {\n const reasoningItem = _convertReasoningSummaryToOpenAIResponsesParams(\n additional_kwargs.reasoning\n );\n input.push(reasoningItem);\n }\n\n // ai content\n let content = lcMsg.content as\n | string\n | Array<\n | MessageContentComplex\n | OpenAIClient.Responses.ResponseOutputText\n | OpenAIClient.Responses.ResponseOutputRefusal\n >;\n if (additional_kwargs.refusal) {\n if (typeof content === 'string') {\n content = [{ type: 'output_text', text: content, annotations: [] }];\n }\n content = [\n ...content,\n { type: 'refusal', refusal: additional_kwargs.refusal },\n ];\n }\n\n input.push({\n type: 'message',\n role: 'assistant',\n ...(lcMsg.id && !zdrEnabled && lcMsg.id.startsWith('msg_')\n ? { id: lcMsg.id }\n : {}),\n content:\n typeof content === 'string'\n ? content\n : content.flatMap((item) => {\n if (item.type === 'text') {\n const textItem = item as MessageContentComplex & {\n annotations?: unknown[];\n };\n return {\n type: 'output_text',\n text: item.text,\n annotations: textItem.annotations ?? [],\n };\n }\n\n if (item.type === 'output_text' || item.type === 'refusal') {\n return item;\n }\n\n return [];\n }),\n } as ResponsesInputItem);\n\n const functionCallIds = additional_kwargs[_FUNCTION_CALL_IDS_MAP_KEY];\n\n if (isAIMessage(lcMsg) && !!lcMsg.tool_calls?.length) {\n input.push(\n ...lcMsg.tool_calls.map(\n (toolCall): ResponsesInputItem => ({\n type: 'function_call',\n name: toolCall.name,\n arguments: serializeToolCallInput(\n toolCall.args,\n MAX_PROVIDER_TOOL_CALL_INPUT_CHARS\n ),\n call_id: toolCall.id!,\n ...(zdrEnabled ? { id: functionCallIds?.[toolCall.id!] } : {}),\n })\n )\n );\n } else if (additional_kwargs.tool_calls) {\n input.push(\n ...additional_kwargs.tool_calls.map(\n (toolCall): ResponsesInputItem => ({\n type: 'function_call',\n name: toolCall.function.name,\n call_id: toolCall.id,\n arguments: toolCall.function.arguments,\n ...(zdrEnabled ? { id: functionCallIds?.[toolCall.id] } : {}),\n })\n )\n );\n }\n\n const toolOutputs =\n ((responseMetadata.output as Array<ResponsesInputItem> | undefined)\n ?.length ?? 0) > 0\n ? responseMetadata.output\n : additional_kwargs.tool_outputs;\n\n const fallthroughCallTypes: ResponsesInputItem['type'][] = [\n 'computer_call',\n /** @ts-ignore */\n 'mcp_call',\n /** @ts-ignore */\n 'code_interpreter_call',\n /** @ts-ignore */\n 'image_generation_call',\n ];\n\n if (toolOutputs != null) {\n const castToolOutputs = toolOutputs as Array<ResponsesInputItem>;\n const fallthroughCalls = castToolOutputs.filter((item) =>\n fallthroughCallTypes.includes(item.type)\n );\n if (fallthroughCalls.length > 0) input.push(...fallthroughCalls);\n }\n\n return input;\n }\n\n if (role === 'user' || role === 'system' || role === 'developer') {\n if (typeof lcMsg.content === 'string') {\n return { type: 'message', role, content: lcMsg.content };\n }\n\n const messages: ResponsesInputItem[] = [];\n const content = (lcMsg.content as MessageContentComplex[]).flatMap(\n (item) => {\n if (item.type === 'mcp_approval_response') {\n const approvalResponse = item as MessageContentComplex & {\n approval_request_id: string;\n approve: boolean;\n };\n messages.push({\n // @ts-ignore\n type: 'mcp_approval_response',\n approval_request_id: approvalResponse.approval_request_id,\n approve: approvalResponse.approve,\n });\n }\n if (isDataContentBlock(item)) {\n return convertToProviderContentBlock(\n item,\n completionsApiContentBlockConverter\n );\n }\n if (item.type === 'text') {\n return {\n type: 'input_text',\n text: item.text,\n };\n }\n if (item.type === 'image_url') {\n const imageItem = item as MessageContentImageUrl;\n return {\n type: 'input_image',\n image_url:\n typeof imageItem.image_url === 'string'\n ? imageItem.image_url\n : imageItem.image_url.url,\n detail:\n typeof imageItem.image_url === 'string'\n ? 'auto'\n : imageItem.image_url.detail,\n };\n }\n if (\n item.type === 'input_text' ||\n item.type === 'input_image' ||\n item.type === 'input_file'\n ) {\n return item;\n }\n return [];\n }\n );\n\n if (content.length > 0) {\n messages.push({\n type: 'message',\n role,\n content,\n } as ResponsesInputItem);\n }\n return messages;\n }\n\n console.warn(\n `Unsupported role found when converting to OpenAI Responses API: ${role}`\n );\n return [];\n }\n );\n}\n\nexport function isReasoningModel(model?: string) {\n return model != null && model !== '' && /\\b(o\\d|gpt-[5-9])\\b/i.test(model);\n}\n\nfunction _convertOpenAIResponsesMessageToBaseMessage(\n response: ResponsesCreateInvoke | ResponsesParseInvoke\n): BaseMessage {\n if (response.error) {\n // TODO: add support for `addLangChainErrorFields`\n const error = new Error(response.error.message);\n error.name = response.error.code;\n throw error;\n }\n\n let messageId: string | undefined;\n const content: MessageContentComplex[] = [];\n const tool_calls: ToolCall[] = [];\n const invalid_tool_calls: InvalidToolCall[] = [];\n const response_metadata: Record<string, unknown> = {\n model: response.model,\n created_at: response.created_at,\n id: response.id,\n incomplete_details: response.incomplete_details,\n metadata: response.metadata,\n object: response.object,\n status: response.status,\n user: response.user,\n service_tier: response.service_tier,\n\n // for compatibility with chat completion calls.\n model_name: response.model,\n };\n\n const additional_kwargs: {\n [key: string]: unknown;\n refusal?: string;\n reasoning?: OpenAIClient.Responses.ResponseReasoningItem;\n tool_outputs?: unknown[];\n parsed?: unknown;\n [_FUNCTION_CALL_IDS_MAP_KEY]?: Record<string, string>;\n } = {};\n\n for (const item of response.output) {\n if (item.type === 'message') {\n messageId = item.id;\n content.push(\n ...item.content.flatMap((part) => {\n if (part.type === 'output_text') {\n if ('parsed' in part && part.parsed != null) {\n additional_kwargs.parsed = part.parsed;\n }\n return {\n type: 'text',\n text: part.text,\n annotations: part.annotations,\n };\n }\n\n if (part.type === 'refusal') {\n additional_kwargs.refusal = part.refusal;\n return [];\n }\n\n return part;\n })\n );\n } else if (item.type === 'function_call') {\n const fnAdapter = {\n function: { name: item.name, arguments: item.arguments },\n id: item.call_id,\n };\n\n try {\n tool_calls.push(parseToolCall(fnAdapter, { returnId: true }));\n } catch (e: unknown) {\n let errMessage: string | undefined;\n if (\n typeof e === 'object' &&\n e != null &&\n 'message' in e &&\n typeof e.message === 'string'\n ) {\n errMessage = e.message;\n }\n invalid_tool_calls.push(makeInvalidToolCall(fnAdapter, errMessage));\n }\n\n additional_kwargs[_FUNCTION_CALL_IDS_MAP_KEY] ??= {};\n if (item.id) {\n additional_kwargs[_FUNCTION_CALL_IDS_MAP_KEY][item.call_id] = item.id;\n }\n } else if (item.type === 'reasoning') {\n additional_kwargs.reasoning = item;\n } else {\n additional_kwargs.tool_outputs ??= [];\n additional_kwargs.tool_outputs.push(item);\n }\n }\n\n return new AIMessage({\n id: messageId,\n content: toLangChainContent(content),\n tool_calls,\n invalid_tool_calls,\n usage_metadata: response.usage,\n additional_kwargs,\n response_metadata,\n });\n}\n\nexport function _convertOpenAIResponsesDeltaToBaseMessageChunk(\n chunk: ResponseReturnStreamEvents\n) {\n const content: MessageContentComplex[] = [];\n let generationInfo: Record<string, unknown> = {};\n let usage_metadata: UsageMetadata | undefined;\n const tool_call_chunks: ToolCallChunk[] = [];\n const response_metadata: Record<string, unknown> = {};\n const additional_kwargs: {\n [key: string]: unknown;\n reasoning?: Partial<ChatOpenAIReasoningSummary>;\n tool_outputs?: unknown[];\n } = {};\n let id: string | undefined;\n if (chunk.type === 'response.output_text.delta') {\n content.push({\n type: 'text',\n text: chunk.delta,\n index: chunk.content_index,\n });\n /** @ts-ignore */\n } else if (chunk.type === 'response.output_text_annotation.added') {\n content.push({\n type: 'text',\n text: '',\n /** @ts-ignore */\n annotations: [chunk.annotation],\n /** @ts-ignore */\n index: chunk.content_index,\n });\n } else if (\n chunk.type === 'response.output_item.added' &&\n chunk.item.type === 'message'\n ) {\n id = chunk.item.id;\n } else if (\n chunk.type === 'response.output_item.added' &&\n chunk.item.type === 'function_call'\n ) {\n response_metadata[STREAMED_TOOL_CALL_ADAPTER_METADATA_KEY] =\n OPENAI_RESPONSES_STREAMED_TOOL_CALL_ADAPTER;\n tool_call_chunks.push({\n type: 'tool_call_chunk',\n name: chunk.item.name,\n args: chunk.item.arguments,\n id: chunk.item.call_id,\n index: chunk.output_index,\n });\n\n additional_kwargs[_FUNCTION_CALL_IDS_MAP_KEY] = {\n [chunk.item.call_id]: chunk.item.id,\n };\n } else if (\n chunk.type === 'response.output_item.done' &&\n [\n 'web_search_call',\n 'file_search_call',\n 'computer_call',\n 'code_interpreter_call',\n 'mcp_call',\n 'mcp_list_tools',\n 'mcp_approval_request',\n 'image_generation_call',\n ].includes(chunk.item.type)\n ) {\n additional_kwargs.tool_outputs = [chunk.item];\n } else if (chunk.type === 'response.created') {\n response_metadata.id = chunk.response.id;\n response_metadata.model_name = chunk.response.model;\n response_metadata.model = chunk.response.model;\n } else if (chunk.type === 'response.completed') {\n const msg = _convertOpenAIResponsesMessageToBaseMessage(chunk.response);\n\n usage_metadata = chunk.response.usage;\n if (chunk.response.text?.format?.type === 'json_schema') {\n additional_kwargs.parsed ??= JSON.parse(msg.text);\n }\n for (const [key, value] of Object.entries(chunk.response)) {\n if (key !== 'id') response_metadata[key] = value;\n }\n } else if (chunk.type === 'response.function_call_arguments.delta') {\n response_metadata[STREAMED_TOOL_CALL_ADAPTER_METADATA_KEY] =\n OPENAI_RESPONSES_STREAMED_TOOL_CALL_ADAPTER;\n tool_call_chunks.push({\n type: 'tool_call_chunk',\n args: chunk.delta,\n index: chunk.output_index,\n });\n } else if (chunk.type === 'response.function_call_arguments.done') {\n response_metadata[STREAMED_TOOL_CALL_ADAPTER_METADATA_KEY] =\n OPENAI_RESPONSES_STREAMED_TOOL_CALL_ADAPTER;\n response_metadata[STREAMED_TOOL_CALL_SEAL_METADATA_KEY] = {\n kind: 'single',\n index: chunk.output_index,\n };\n tool_call_chunks.push({\n type: 'tool_call_chunk',\n name: chunk.name,\n args: chunk.arguments,\n index: chunk.output_index,\n });\n } else if (\n chunk.type === 'response.web_search_call.completed' ||\n chunk.type === 'response.file_search_call.completed'\n ) {\n generationInfo = {\n tool_outputs: {\n id: chunk.item_id,\n type: chunk.type.replace('response.', '').replace('.completed', ''),\n status: 'completed',\n },\n };\n } else if (chunk.type === 'response.refusal.done') {\n additional_kwargs.refusal = chunk.refusal;\n } else if (\n chunk.type === 'response.output_item.added' &&\n 'item' in chunk &&\n chunk.item.type === 'reasoning'\n ) {\n const summary: ChatOpenAIReasoningSummary['summary'] | undefined = chunk\n .item.summary\n ? chunk.item.summary.map((s, index) => ({\n ...s,\n index,\n }))\n : undefined;\n\n additional_kwargs.reasoning = {\n // We only capture ID in the first chunk or else the concatenated result of all chunks will\n // have an ID field that is repeated once per chunk. There is special handling for the `type`\n // field that prevents this, however.\n id: chunk.item.id,\n type: chunk.item.type,\n ...(summary ? { summary } : {}),\n };\n } else if (chunk.type === 'response.reasoning_summary_part.added') {\n additional_kwargs.reasoning = {\n type: 'reasoning',\n summary: [{ ...chunk.part, index: chunk.summary_index }],\n };\n } else if (chunk.type === 'response.reasoning_summary_text.delta') {\n additional_kwargs.reasoning = {\n type: 'reasoning',\n summary: [\n { text: chunk.delta, type: 'summary_text', index: chunk.summary_index },\n ],\n };\n /** @ts-ignore */\n } else if (chunk.type === 'response.image_generation_call.partial_image') {\n // noop/fixme: retaining partial images in a message chunk means that _all_\n // partial images get kept in history, so we don't do anything here.\n return null;\n } else {\n return null;\n }\n\n return new ChatGenerationChunk({\n // Legacy reasons, `onLLMNewToken` should pulls this out\n text: content.map((part) => ('text' in part ? part.text : '')).join(''),\n message: new AIMessageChunk({\n id,\n content: toLangChainContent(content),\n tool_call_chunks,\n usage_metadata,\n additional_kwargs,\n response_metadata,\n }),\n generationInfo,\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["calculateMaxToolCallInputChars","serializeToolCallInput","ChatMessage","projectToolCallInputs","isComputerCallOutputMessage","getBoundedCacheControlledTextToolContent","HARD_MAX_TOOL_RESULT_CHARS","serializeStructuredValueBounded"],"sources":["../../../../../src/llm/openai/utils/index.ts"],"mappings":"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"}
@@ -13,7 +13,6 @@ function getReasoningDetails(value) {
13
13
  }
14
14
  var ChatOpenRouter = class extends require_index.ChatOpenAI {
15
15
  openRouterReasoning;
16
- /** @deprecated Use `reasoning` object instead */
17
16
  includeReasoning;
18
17
  constructor(_fields) {
19
18
  const fieldsWithoutPromptCache = { ..._fields };