openai 7.16.0 → 7.18.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 (689) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/_vendor/zod-to-json-schema/Options.d.mts.map +1 -1
  3. package/_vendor/zod-to-json-schema/Options.d.ts.map +1 -1
  4. package/_vendor/zod-to-json-schema/Options.js +2 -0
  5. package/_vendor/zod-to-json-schema/Options.js.map +1 -1
  6. package/_vendor/zod-to-json-schema/Options.mjs +2 -0
  7. package/_vendor/zod-to-json-schema/Options.mjs.map +1 -1
  8. package/_vendor/zod-to-json-schema/parseDef.d.mts.map +1 -1
  9. package/_vendor/zod-to-json-schema/parseDef.d.ts.map +1 -1
  10. package/_vendor/zod-to-json-schema/parseDef.js +1 -0
  11. package/_vendor/zod-to-json-schema/parseDef.js.map +1 -1
  12. package/_vendor/zod-to-json-schema/parseDef.mjs +1 -0
  13. package/_vendor/zod-to-json-schema/parseDef.mjs.map +1 -1
  14. package/_vendor/zod-to-json-schema/parsers/bigint.d.mts.map +1 -1
  15. package/_vendor/zod-to-json-schema/parsers/bigint.d.ts.map +1 -1
  16. package/_vendor/zod-to-json-schema/parsers/bigint.js +2 -0
  17. package/_vendor/zod-to-json-schema/parsers/bigint.js.map +1 -1
  18. package/_vendor/zod-to-json-schema/parsers/bigint.mjs +2 -0
  19. package/_vendor/zod-to-json-schema/parsers/bigint.mjs.map +1 -1
  20. package/_vendor/zod-to-json-schema/parsers/literal.d.mts.map +1 -1
  21. package/_vendor/zod-to-json-schema/parsers/literal.d.ts.map +1 -1
  22. package/_vendor/zod-to-json-schema/parsers/literal.js +1 -0
  23. package/_vendor/zod-to-json-schema/parsers/literal.js.map +1 -1
  24. package/_vendor/zod-to-json-schema/parsers/literal.mjs +1 -0
  25. package/_vendor/zod-to-json-schema/parsers/literal.mjs.map +1 -1
  26. package/_vendor/zod-to-json-schema/parsers/null.d.mts.map +1 -1
  27. package/_vendor/zod-to-json-schema/parsers/null.d.ts.map +1 -1
  28. package/_vendor/zod-to-json-schema/parsers/null.js +1 -0
  29. package/_vendor/zod-to-json-schema/parsers/null.js.map +1 -1
  30. package/_vendor/zod-to-json-schema/parsers/null.mjs +1 -0
  31. package/_vendor/zod-to-json-schema/parsers/null.mjs.map +1 -1
  32. package/_vendor/zod-to-json-schema/parsers/nullable.d.mts.map +1 -1
  33. package/_vendor/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
  34. package/_vendor/zod-to-json-schema/parsers/nullable.js +4 -0
  35. package/_vendor/zod-to-json-schema/parsers/nullable.js.map +1 -1
  36. package/_vendor/zod-to-json-schema/parsers/nullable.mjs +4 -0
  37. package/_vendor/zod-to-json-schema/parsers/nullable.mjs.map +1 -1
  38. package/_vendor/zod-to-json-schema/parsers/number.d.mts.map +1 -1
  39. package/_vendor/zod-to-json-schema/parsers/number.d.ts.map +1 -1
  40. package/_vendor/zod-to-json-schema/parsers/number.js +2 -0
  41. package/_vendor/zod-to-json-schema/parsers/number.js.map +1 -1
  42. package/_vendor/zod-to-json-schema/parsers/number.mjs +2 -0
  43. package/_vendor/zod-to-json-schema/parsers/number.mjs.map +1 -1
  44. package/_vendor/zod-to-json-schema/parsers/optional.d.mts.map +1 -1
  45. package/_vendor/zod-to-json-schema/parsers/optional.d.ts.map +1 -1
  46. package/_vendor/zod-to-json-schema/parsers/optional.js +6 -7
  47. package/_vendor/zod-to-json-schema/parsers/optional.js.map +1 -1
  48. package/_vendor/zod-to-json-schema/parsers/optional.mjs +6 -7
  49. package/_vendor/zod-to-json-schema/parsers/optional.mjs.map +1 -1
  50. package/_vendor/zod-to-json-schema/parsers/record.d.mts.map +1 -1
  51. package/_vendor/zod-to-json-schema/parsers/record.d.ts.map +1 -1
  52. package/_vendor/zod-to-json-schema/parsers/record.js +2 -0
  53. package/_vendor/zod-to-json-schema/parsers/record.js.map +1 -1
  54. package/_vendor/zod-to-json-schema/parsers/record.mjs +2 -0
  55. package/_vendor/zod-to-json-schema/parsers/record.mjs.map +1 -1
  56. package/_vendor/zod-to-json-schema/parsers/string.d.mts.map +1 -1
  57. package/_vendor/zod-to-json-schema/parsers/string.d.ts.map +1 -1
  58. package/_vendor/zod-to-json-schema/parsers/string.js +1 -0
  59. package/_vendor/zod-to-json-schema/parsers/string.js.map +1 -1
  60. package/_vendor/zod-to-json-schema/parsers/string.mjs +1 -0
  61. package/_vendor/zod-to-json-schema/parsers/string.mjs.map +1 -1
  62. package/_vendor/zod-to-json-schema/parsers/union.d.mts.map +1 -1
  63. package/_vendor/zod-to-json-schema/parsers/union.d.ts.map +1 -1
  64. package/_vendor/zod-to-json-schema/parsers/union.js +3 -0
  65. package/_vendor/zod-to-json-schema/parsers/union.js.map +1 -1
  66. package/_vendor/zod-to-json-schema/parsers/union.mjs +3 -0
  67. package/_vendor/zod-to-json-schema/parsers/union.mjs.map +1 -1
  68. package/_vendor/zod-to-json-schema/util.d.mts.map +1 -1
  69. package/_vendor/zod-to-json-schema/util.d.ts.map +1 -1
  70. package/_vendor/zod-to-json-schema/util.js +1 -0
  71. package/_vendor/zod-to-json-schema/util.js.map +1 -1
  72. package/_vendor/zod-to-json-schema/util.mjs +1 -0
  73. package/_vendor/zod-to-json-schema/util.mjs.map +1 -1
  74. package/_vendor/zod-to-json-schema/zodToJsonSchema.d.mts.map +1 -1
  75. package/_vendor/zod-to-json-schema/zodToJsonSchema.d.ts.map +1 -1
  76. package/_vendor/zod-to-json-schema/zodToJsonSchema.js +2 -0
  77. package/_vendor/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
  78. package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs +2 -0
  79. package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs.map +1 -1
  80. package/auth/subject-token-providers.d.mts.map +1 -1
  81. package/auth/subject-token-providers.d.ts.map +1 -1
  82. package/auth/subject-token-providers.js +6 -1
  83. package/auth/subject-token-providers.js.map +1 -1
  84. package/auth/subject-token-providers.mjs +6 -1
  85. package/auth/subject-token-providers.mjs.map +1 -1
  86. package/auth/workload-identity-auth.d.mts.map +1 -1
  87. package/auth/workload-identity-auth.d.ts.map +1 -1
  88. package/auth/workload-identity-auth.js +9 -0
  89. package/auth/workload-identity-auth.js.map +1 -1
  90. package/auth/workload-identity-auth.mjs +9 -0
  91. package/auth/workload-identity-auth.mjs.map +1 -1
  92. package/auth/x509-transport.d.mts.map +1 -1
  93. package/auth/x509-transport.d.ts.map +1 -1
  94. package/auth/x509-transport.js +11 -0
  95. package/auth/x509-transport.js.map +1 -1
  96. package/auth/x509-transport.mjs +11 -0
  97. package/auth/x509-transport.mjs.map +1 -1
  98. package/azure.d.mts.map +1 -1
  99. package/azure.d.ts.map +1 -1
  100. package/azure.js +3 -0
  101. package/azure.js.map +1 -1
  102. package/azure.mjs +3 -0
  103. package/azure.mjs.map +1 -1
  104. package/bedrock.d.mts.map +1 -1
  105. package/bedrock.d.ts.map +1 -1
  106. package/bedrock.js +5 -0
  107. package/bedrock.js.map +1 -1
  108. package/bedrock.mjs +5 -0
  109. package/bedrock.mjs.map +1 -1
  110. package/beta/realtime/internal-base.d.mts.map +1 -1
  111. package/beta/realtime/internal-base.d.ts.map +1 -1
  112. package/beta/realtime/internal-base.js +1 -0
  113. package/beta/realtime/internal-base.js.map +1 -1
  114. package/beta/realtime/internal-base.mjs +1 -0
  115. package/beta/realtime/internal-base.mjs.map +1 -1
  116. package/beta/realtime/websocket.d.mts.map +1 -1
  117. package/beta/realtime/websocket.d.ts.map +1 -1
  118. package/beta/realtime/websocket.js +9 -1
  119. package/beta/realtime/websocket.js.map +1 -1
  120. package/beta/realtime/websocket.mjs +9 -1
  121. package/beta/realtime/websocket.mjs.map +1 -1
  122. package/beta/realtime/ws.d.mts.map +1 -1
  123. package/beta/realtime/ws.d.ts.map +1 -1
  124. package/beta/realtime/ws.js +3 -0
  125. package/beta/realtime/ws.js.map +1 -1
  126. package/beta/realtime/ws.mjs +3 -0
  127. package/beta/realtime/ws.mjs.map +1 -1
  128. package/client.d.mts +3 -0
  129. package/client.d.mts.map +1 -1
  130. package/client.d.ts +3 -0
  131. package/client.d.ts.map +1 -1
  132. package/client.js +39 -6
  133. package/client.js.map +1 -1
  134. package/client.mjs +39 -6
  135. package/client.mjs.map +1 -1
  136. package/core/EventEmitter.d.mts.map +1 -1
  137. package/core/EventEmitter.d.ts.map +1 -1
  138. package/core/EventEmitter.js +15 -0
  139. package/core/EventEmitter.js.map +1 -1
  140. package/core/EventEmitter.mjs +15 -0
  141. package/core/EventEmitter.mjs.map +1 -1
  142. package/core/streaming.d.mts +1 -0
  143. package/core/streaming.d.mts.map +1 -1
  144. package/core/streaming.d.ts +1 -0
  145. package/core/streaming.d.ts.map +1 -1
  146. package/core/streaming.js +28 -1
  147. package/core/streaming.js.map +1 -1
  148. package/core/streaming.mjs +28 -1
  149. package/core/streaming.mjs.map +1 -1
  150. package/helpers/audio.d.mts.map +1 -1
  151. package/helpers/audio.d.ts.map +1 -1
  152. package/helpers/audio.js +2 -0
  153. package/helpers/audio.js.map +1 -1
  154. package/helpers/audio.mjs +2 -0
  155. package/helpers/audio.mjs.map +1 -1
  156. package/helpers/standard-schema.d.mts.map +1 -1
  157. package/helpers/standard-schema.d.ts.map +1 -1
  158. package/helpers/standard-schema.js +28 -18
  159. package/helpers/standard-schema.js.map +1 -1
  160. package/helpers/standard-schema.mjs +28 -18
  161. package/helpers/standard-schema.mjs.map +1 -1
  162. package/helpers/zod-v3-strict-schema.d.mts.map +1 -1
  163. package/helpers/zod-v3-strict-schema.d.ts.map +1 -1
  164. package/helpers/zod-v3-strict-schema.js +5 -0
  165. package/helpers/zod-v3-strict-schema.js.map +1 -1
  166. package/helpers/zod-v3-strict-schema.mjs +5 -0
  167. package/helpers/zod-v3-strict-schema.mjs.map +1 -1
  168. package/helpers/zod.d.mts.map +1 -1
  169. package/helpers/zod.d.ts.map +1 -1
  170. package/helpers/zod.js +16 -1
  171. package/helpers/zod.js.map +1 -1
  172. package/helpers/zod.mjs +17 -2
  173. package/helpers/zod.mjs.map +1 -1
  174. package/internal/assistant-stream-delta.d.mts.map +1 -1
  175. package/internal/assistant-stream-delta.d.ts.map +1 -1
  176. package/internal/assistant-stream-delta.js +8 -1
  177. package/internal/assistant-stream-delta.js.map +1 -1
  178. package/internal/assistant-stream-delta.mjs +8 -1
  179. package/internal/assistant-stream-delta.mjs.map +1 -1
  180. package/internal/auth/x509-credential-options.d.mts.map +1 -1
  181. package/internal/auth/x509-credential-options.d.ts.map +1 -1
  182. package/internal/auth/x509-credential-options.js +3 -0
  183. package/internal/auth/x509-credential-options.js.map +1 -1
  184. package/internal/auth/x509-credential-options.mjs +3 -0
  185. package/internal/auth/x509-credential-options.mjs.map +1 -1
  186. package/internal/auth/x509-token-exchange.d.mts.map +1 -1
  187. package/internal/auth/x509-token-exchange.d.ts.map +1 -1
  188. package/internal/auth/x509-token-exchange.js +2 -0
  189. package/internal/auth/x509-token-exchange.js.map +1 -1
  190. package/internal/auth/x509-token-exchange.mjs +2 -0
  191. package/internal/auth/x509-token-exchange.mjs.map +1 -1
  192. package/internal/auth/x509-transport-capability.d.mts.map +1 -1
  193. package/internal/auth/x509-transport-capability.d.ts.map +1 -1
  194. package/internal/auth/x509-transport-capability.js +1 -0
  195. package/internal/auth/x509-transport-capability.js.map +1 -1
  196. package/internal/auth/x509-transport-capability.mjs +1 -0
  197. package/internal/auth/x509-transport-capability.mjs.map +1 -1
  198. package/internal/auth/x509-transport-state.mjs +1 -0
  199. package/internal/auth/x509-workload-identity-auth.d.mts.map +1 -1
  200. package/internal/auth/x509-workload-identity-auth.d.ts.map +1 -1
  201. package/internal/auth/x509-workload-identity-auth.js +11 -0
  202. package/internal/auth/x509-workload-identity-auth.js.map +1 -1
  203. package/internal/auth/x509-workload-identity-auth.mjs +11 -0
  204. package/internal/auth/x509-workload-identity-auth.mjs.map +1 -1
  205. package/internal/bedrock.d.mts.map +1 -1
  206. package/internal/bedrock.d.ts.map +1 -1
  207. package/internal/bedrock.js +17 -1
  208. package/internal/bedrock.js.map +1 -1
  209. package/internal/bedrock.mjs +17 -1
  210. package/internal/bedrock.mjs.map +1 -1
  211. package/internal/decoders/line.d.mts.map +1 -1
  212. package/internal/decoders/line.d.ts.map +1 -1
  213. package/internal/decoders/line.js +1 -0
  214. package/internal/decoders/line.js.map +1 -1
  215. package/internal/decoders/line.mjs +1 -0
  216. package/internal/decoders/line.mjs.map +1 -1
  217. package/internal/parse.d.mts +1 -0
  218. package/internal/parse.d.mts.map +1 -1
  219. package/internal/parse.d.ts +1 -0
  220. package/internal/parse.d.ts.map +1 -1
  221. package/internal/parse.js.map +1 -1
  222. package/internal/parse.mjs.map +1 -1
  223. package/internal/provider.d.mts.map +1 -1
  224. package/internal/provider.d.ts.map +1 -1
  225. package/internal/provider.js +3 -0
  226. package/internal/provider.js.map +1 -1
  227. package/internal/provider.mjs +3 -0
  228. package/internal/provider.mjs.map +1 -1
  229. package/internal/qs/stringify.d.mts.map +1 -1
  230. package/internal/qs/stringify.d.ts.map +1 -1
  231. package/internal/qs/stringify.js +3 -0
  232. package/internal/qs/stringify.js.map +1 -1
  233. package/internal/qs/stringify.mjs +3 -0
  234. package/internal/qs/stringify.mjs.map +1 -1
  235. package/internal/qs/utils.d.mts.map +1 -1
  236. package/internal/qs/utils.d.ts.map +1 -1
  237. package/internal/qs/utils.js +15 -3
  238. package/internal/qs/utils.js.map +1 -1
  239. package/internal/qs/utils.mjs +15 -3
  240. package/internal/qs/utils.mjs.map +1 -1
  241. package/internal/responses/response-accumulator.d.mts.map +1 -1
  242. package/internal/responses/response-accumulator.d.ts.map +1 -1
  243. package/internal/responses/response-accumulator.js +20 -4
  244. package/internal/responses/response-accumulator.js.map +1 -1
  245. package/internal/responses/response-accumulator.mjs +20 -4
  246. package/internal/responses/response-accumulator.mjs.map +1 -1
  247. package/internal/to-file.js.map +1 -1
  248. package/internal/to-file.mjs.map +1 -1
  249. package/internal/uploads.d.mts.map +1 -1
  250. package/internal/uploads.d.ts.map +1 -1
  251. package/internal/uploads.js +10 -0
  252. package/internal/uploads.js.map +1 -1
  253. package/internal/uploads.mjs +10 -0
  254. package/internal/uploads.mjs.map +1 -1
  255. package/internal/utils/abort.d.mts.map +1 -1
  256. package/internal/utils/abort.d.ts.map +1 -1
  257. package/internal/utils/abort.js +9 -2
  258. package/internal/utils/abort.js.map +1 -1
  259. package/internal/utils/abort.mjs +9 -2
  260. package/internal/utils/abort.mjs.map +1 -1
  261. package/internal/utils/bytes.d.mts.map +1 -1
  262. package/internal/utils/bytes.d.ts.map +1 -1
  263. package/internal/utils/bytes.js +2 -0
  264. package/internal/utils/bytes.js.map +1 -1
  265. package/internal/utils/bytes.mjs +2 -0
  266. package/internal/utils/bytes.mjs.map +1 -1
  267. package/internal/utils/path.d.mts.map +1 -1
  268. package/internal/utils/path.d.ts.map +1 -1
  269. package/internal/utils/path.js +2 -0
  270. package/internal/utils/path.js.map +1 -1
  271. package/internal/utils/path.mjs +2 -0
  272. package/internal/utils/path.mjs.map +1 -1
  273. package/internal/utils/sleep.d.mts +1 -1
  274. package/internal/utils/sleep.d.mts.map +1 -1
  275. package/internal/utils/sleep.d.ts +1 -1
  276. package/internal/utils/sleep.d.ts.map +1 -1
  277. package/internal/utils/sleep.js +51 -1
  278. package/internal/utils/sleep.js.map +1 -1
  279. package/internal/utils/sleep.mjs +51 -1
  280. package/internal/utils/sleep.mjs.map +1 -1
  281. package/internal/ws-adapter-browser.d.mts.map +1 -1
  282. package/internal/ws-adapter-browser.d.ts.map +1 -1
  283. package/internal/ws-adapter-browser.js +2 -0
  284. package/internal/ws-adapter-browser.js.map +1 -1
  285. package/internal/ws-adapter-browser.mjs +2 -0
  286. package/internal/ws-adapter-browser.mjs.map +1 -1
  287. package/internal/ws.d.mts +16 -0
  288. package/internal/ws.d.mts.map +1 -1
  289. package/internal/ws.d.ts +16 -0
  290. package/internal/ws.d.ts.map +1 -1
  291. package/internal/ws.js +71 -5
  292. package/internal/ws.js.map +1 -1
  293. package/internal/ws.mjs +68 -6
  294. package/internal/ws.mjs.map +1 -1
  295. package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
  296. package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
  297. package/lib/AbstractChatCompletionRunner.js +41 -16
  298. package/lib/AbstractChatCompletionRunner.js.map +1 -1
  299. package/lib/AbstractChatCompletionRunner.mjs +42 -17
  300. package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
  301. package/lib/AssistantStream.d.mts.map +1 -1
  302. package/lib/AssistantStream.d.ts.map +1 -1
  303. package/lib/AssistantStream.js +19 -5
  304. package/lib/AssistantStream.js.map +1 -1
  305. package/lib/AssistantStream.mjs +20 -6
  306. package/lib/AssistantStream.mjs.map +1 -1
  307. package/lib/ChatCompletionRunner.d.mts.map +1 -1
  308. package/lib/ChatCompletionRunner.d.ts.map +1 -1
  309. package/lib/ChatCompletionRunner.js +1 -0
  310. package/lib/ChatCompletionRunner.js.map +1 -1
  311. package/lib/ChatCompletionRunner.mjs +1 -0
  312. package/lib/ChatCompletionRunner.mjs.map +1 -1
  313. package/lib/ChatCompletionStream.d.mts +6 -1
  314. package/lib/ChatCompletionStream.d.mts.map +1 -1
  315. package/lib/ChatCompletionStream.d.ts +6 -1
  316. package/lib/ChatCompletionStream.d.ts.map +1 -1
  317. package/lib/ChatCompletionStream.js +63 -7
  318. package/lib/ChatCompletionStream.js.map +1 -1
  319. package/lib/ChatCompletionStream.mjs +64 -8
  320. package/lib/ChatCompletionStream.mjs.map +1 -1
  321. package/lib/EventEmitter.d.mts.map +1 -1
  322. package/lib/EventEmitter.d.ts.map +1 -1
  323. package/lib/EventEmitter.js +15 -0
  324. package/lib/EventEmitter.js.map +1 -1
  325. package/lib/EventEmitter.mjs +15 -0
  326. package/lib/EventEmitter.mjs.map +1 -1
  327. package/lib/EventStream.d.mts +2 -0
  328. package/lib/EventStream.d.mts.map +1 -1
  329. package/lib/EventStream.d.ts +2 -0
  330. package/lib/EventStream.d.ts.map +1 -1
  331. package/lib/EventStream.js +111 -14
  332. package/lib/EventStream.js.map +1 -1
  333. package/lib/EventStream.mjs +111 -14
  334. package/lib/EventStream.mjs.map +1 -1
  335. package/lib/ResponsesParser.d.mts.map +1 -1
  336. package/lib/ResponsesParser.d.ts.map +1 -1
  337. package/lib/ResponsesParser.js +4 -0
  338. package/lib/ResponsesParser.js.map +1 -1
  339. package/lib/ResponsesParser.mjs +4 -0
  340. package/lib/ResponsesParser.mjs.map +1 -1
  341. package/lib/RunnableFunction.d.mts.map +1 -1
  342. package/lib/RunnableFunction.d.ts.map +1 -1
  343. package/lib/RunnableFunction.js.map +1 -1
  344. package/lib/RunnableFunction.mjs.map +1 -1
  345. package/lib/agents/agent-session-stream.d.mts.map +1 -1
  346. package/lib/agents/agent-session-stream.d.ts.map +1 -1
  347. package/lib/agents/agent-session-stream.js +5 -2
  348. package/lib/agents/agent-session-stream.js.map +1 -1
  349. package/lib/agents/agent-session-stream.mjs +5 -2
  350. package/lib/agents/agent-session-stream.mjs.map +1 -1
  351. package/lib/embeddings.d.mts.map +1 -1
  352. package/lib/embeddings.d.ts.map +1 -1
  353. package/lib/embeddings.js +2 -0
  354. package/lib/embeddings.js.map +1 -1
  355. package/lib/embeddings.mjs +2 -0
  356. package/lib/embeddings.mjs.map +1 -1
  357. package/lib/live/transcript-grouper.d.mts.map +1 -1
  358. package/lib/live/transcript-grouper.d.ts.map +1 -1
  359. package/lib/live/transcript-grouper.js +8 -2
  360. package/lib/live/transcript-grouper.js.map +1 -1
  361. package/lib/live/transcript-grouper.mjs +8 -2
  362. package/lib/live/transcript-grouper.mjs.map +1 -1
  363. package/lib/parser.d.mts.map +1 -1
  364. package/lib/parser.d.ts.map +1 -1
  365. package/lib/parser.js +13 -0
  366. package/lib/parser.js.map +1 -1
  367. package/lib/parser.mjs +13 -0
  368. package/lib/parser.mjs.map +1 -1
  369. package/lib/responses/ResponseInputItems.d.mts.map +1 -1
  370. package/lib/responses/ResponseInputItems.d.ts.map +1 -1
  371. package/lib/responses/ResponseInputItems.js +11 -0
  372. package/lib/responses/ResponseInputItems.js.map +1 -1
  373. package/lib/responses/ResponseInputItems.mjs +11 -0
  374. package/lib/responses/ResponseInputItems.mjs.map +1 -1
  375. package/lib/responses/ResponseStream.d.mts.map +1 -1
  376. package/lib/responses/ResponseStream.d.ts.map +1 -1
  377. package/lib/responses/ResponseStream.js +7 -3
  378. package/lib/responses/ResponseStream.js.map +1 -1
  379. package/lib/responses/ResponseStream.mjs +8 -4
  380. package/lib/responses/ResponseStream.mjs.map +1 -1
  381. package/lib/responses/responses-websocket-lane.d.mts +63 -0
  382. package/lib/responses/responses-websocket-lane.d.mts.map +1 -0
  383. package/lib/responses/responses-websocket-lane.d.ts +63 -0
  384. package/lib/responses/responses-websocket-lane.d.ts.map +1 -0
  385. package/lib/responses/responses-websocket-lane.js +314 -0
  386. package/lib/responses/responses-websocket-lane.js.map +1 -0
  387. package/lib/responses/responses-websocket-lane.mjs +309 -0
  388. package/lib/responses/responses-websocket-lane.mjs.map +1 -0
  389. package/lib/responses/responses-websocket-session.d.mts +38 -0
  390. package/lib/responses/responses-websocket-session.d.mts.map +1 -0
  391. package/lib/responses/responses-websocket-session.d.ts +38 -0
  392. package/lib/responses/responses-websocket-session.d.ts.map +1 -0
  393. package/lib/responses/responses-websocket-session.js +268 -0
  394. package/lib/responses/responses-websocket-session.js.map +1 -0
  395. package/lib/responses/responses-websocket-session.mjs +263 -0
  396. package/lib/responses/responses-websocket-session.mjs.map +1 -0
  397. package/lib/transform.d.mts.map +1 -1
  398. package/lib/transform.d.ts.map +1 -1
  399. package/lib/transform.js +69 -33
  400. package/lib/transform.js.map +1 -1
  401. package/lib/transform.mjs +69 -33
  402. package/lib/transform.mjs.map +1 -1
  403. package/lib/webrtc/connection.d.mts.map +1 -1
  404. package/lib/webrtc/connection.d.ts.map +1 -1
  405. package/lib/webrtc/connection.js +6 -1
  406. package/lib/webrtc/connection.js.map +1 -1
  407. package/lib/webrtc/connection.mjs +6 -1
  408. package/lib/webrtc/connection.mjs.map +1 -1
  409. package/lib/webrtc/data-channel.d.mts.map +1 -1
  410. package/lib/webrtc/data-channel.d.ts.map +1 -1
  411. package/lib/webrtc/data-channel.js +9 -1
  412. package/lib/webrtc/data-channel.js.map +1 -1
  413. package/lib/webrtc/data-channel.mjs +9 -1
  414. package/lib/webrtc/data-channel.mjs.map +1 -1
  415. package/lib/webrtc/subscriptions.d.mts.map +1 -1
  416. package/lib/webrtc/subscriptions.d.ts.map +1 -1
  417. package/lib/webrtc/subscriptions.js +2 -0
  418. package/lib/webrtc/subscriptions.js.map +1 -1
  419. package/lib/webrtc/subscriptions.mjs +2 -0
  420. package/lib/webrtc/subscriptions.mjs.map +1 -1
  421. package/lib/webrtc/types.d.mts.map +1 -1
  422. package/lib/webrtc/types.d.ts.map +1 -1
  423. package/package.json +1 -1
  424. package/providers/bedrock/aws.d.mts.map +1 -1
  425. package/providers/bedrock/aws.d.ts.map +1 -1
  426. package/providers/bedrock/aws.js +4 -0
  427. package/providers/bedrock/aws.js.map +1 -1
  428. package/providers/bedrock/aws.mjs +4 -0
  429. package/providers/bedrock/aws.mjs.map +1 -1
  430. package/realtime/internal-base.d.mts.map +1 -1
  431. package/realtime/internal-base.d.ts.map +1 -1
  432. package/realtime/internal-base.js +1 -0
  433. package/realtime/internal-base.js.map +1 -1
  434. package/realtime/internal-base.mjs +1 -0
  435. package/realtime/internal-base.mjs.map +1 -1
  436. package/realtime/websocket.d.mts.map +1 -1
  437. package/realtime/websocket.d.ts.map +1 -1
  438. package/realtime/websocket.js +9 -1
  439. package/realtime/websocket.js.map +1 -1
  440. package/realtime/websocket.mjs +9 -1
  441. package/realtime/websocket.mjs.map +1 -1
  442. package/realtime/ws.d.mts.map +1 -1
  443. package/realtime/ws.d.ts.map +1 -1
  444. package/realtime/ws.js +3 -0
  445. package/realtime/ws.js.map +1 -1
  446. package/realtime/ws.mjs +3 -0
  447. package/realtime/ws.mjs.map +1 -1
  448. package/resources/beta/agents/agents.d.mts +2 -1
  449. package/resources/beta/agents/agents.d.mts.map +1 -1
  450. package/resources/beta/agents/agents.d.ts +2 -1
  451. package/resources/beta/agents/agents.d.ts.map +1 -1
  452. package/resources/beta/agents/agents.js.map +1 -1
  453. package/resources/beta/agents/agents.mjs.map +1 -1
  454. package/resources/beta/agents/sessions/sessions.d.mts +42 -1
  455. package/resources/beta/agents/sessions/sessions.d.mts.map +1 -1
  456. package/resources/beta/agents/sessions/sessions.d.ts +42 -1
  457. package/resources/beta/agents/sessions/sessions.d.ts.map +1 -1
  458. package/resources/beta/agents/sessions/sessions.js +2 -1
  459. package/resources/beta/agents/sessions/sessions.js.map +1 -1
  460. package/resources/beta/agents/sessions/sessions.mjs +2 -1
  461. package/resources/beta/agents/sessions/sessions.mjs.map +1 -1
  462. package/resources/beta/beta.d.mts +2 -2
  463. package/resources/beta/beta.d.mts.map +1 -1
  464. package/resources/beta/beta.d.ts +2 -2
  465. package/resources/beta/beta.d.ts.map +1 -1
  466. package/resources/beta/beta.js.map +1 -1
  467. package/resources/beta/beta.mjs.map +1 -1
  468. package/resources/beta/index.d.mts +1 -1
  469. package/resources/beta/index.d.mts.map +1 -1
  470. package/resources/beta/index.d.ts +1 -1
  471. package/resources/beta/index.d.ts.map +1 -1
  472. package/resources/beta/index.js.map +1 -1
  473. package/resources/beta/index.mjs.map +1 -1
  474. package/resources/beta/responses/index.d.mts +1 -1
  475. package/resources/beta/responses/index.d.mts.map +1 -1
  476. package/resources/beta/responses/index.d.ts +1 -1
  477. package/resources/beta/responses/index.d.ts.map +1 -1
  478. package/resources/beta/responses/index.js.map +1 -1
  479. package/resources/beta/responses/index.mjs.map +1 -1
  480. package/resources/beta/responses/internal-base.d.mts +3 -0
  481. package/resources/beta/responses/internal-base.d.mts.map +1 -1
  482. package/resources/beta/responses/internal-base.d.ts +3 -0
  483. package/resources/beta/responses/internal-base.d.ts.map +1 -1
  484. package/resources/beta/responses/internal-base.js +21 -12
  485. package/resources/beta/responses/internal-base.js.map +1 -1
  486. package/resources/beta/responses/internal-base.mjs +21 -12
  487. package/resources/beta/responses/internal-base.mjs.map +1 -1
  488. package/resources/beta/responses/responses.d.mts +65 -7
  489. package/resources/beta/responses/responses.d.mts.map +1 -1
  490. package/resources/beta/responses/responses.d.ts +65 -7
  491. package/resources/beta/responses/responses.d.ts.map +1 -1
  492. package/resources/beta/responses/responses.js.map +1 -1
  493. package/resources/beta/responses/responses.mjs.map +1 -1
  494. package/resources/beta/responses/ws-base.d.mts +9 -1
  495. package/resources/beta/responses/ws-base.d.mts.map +1 -1
  496. package/resources/beta/responses/ws-base.d.ts +9 -1
  497. package/resources/beta/responses/ws-base.d.ts.map +1 -1
  498. package/resources/beta/responses/ws-base.js +24 -5
  499. package/resources/beta/responses/ws-base.js.map +1 -1
  500. package/resources/beta/responses/ws-base.mjs +23 -6
  501. package/resources/beta/responses/ws-base.mjs.map +1 -1
  502. package/resources/beta/responses/ws.d.mts +2 -0
  503. package/resources/beta/responses/ws.d.mts.map +1 -1
  504. package/resources/beta/responses/ws.d.ts +2 -0
  505. package/resources/beta/responses/ws.d.ts.map +1 -1
  506. package/resources/beta/responses/ws.js +21 -8
  507. package/resources/beta/responses/ws.js.map +1 -1
  508. package/resources/beta/responses/ws.mjs +21 -8
  509. package/resources/beta/responses/ws.mjs.map +1 -1
  510. package/resources/live/forks/internal-base.d.mts +3 -0
  511. package/resources/live/forks/internal-base.d.mts.map +1 -1
  512. package/resources/live/forks/internal-base.d.ts +3 -0
  513. package/resources/live/forks/internal-base.d.ts.map +1 -1
  514. package/resources/live/forks/internal-base.js +21 -5
  515. package/resources/live/forks/internal-base.js.map +1 -1
  516. package/resources/live/forks/internal-base.mjs +21 -5
  517. package/resources/live/forks/internal-base.mjs.map +1 -1
  518. package/resources/live/forks/ws.d.mts.map +1 -1
  519. package/resources/live/forks/ws.d.ts.map +1 -1
  520. package/resources/live/forks/ws.js +2 -4
  521. package/resources/live/forks/ws.js.map +1 -1
  522. package/resources/live/forks/ws.mjs +2 -4
  523. package/resources/live/forks/ws.mjs.map +1 -1
  524. package/resources/live/internal-base.d.mts +3 -0
  525. package/resources/live/internal-base.d.mts.map +1 -1
  526. package/resources/live/internal-base.d.ts +3 -0
  527. package/resources/live/internal-base.d.ts.map +1 -1
  528. package/resources/live/internal-base.js +21 -5
  529. package/resources/live/internal-base.js.map +1 -1
  530. package/resources/live/internal-base.mjs +21 -5
  531. package/resources/live/internal-base.mjs.map +1 -1
  532. package/resources/live/sideband/internal-base.d.mts +3 -0
  533. package/resources/live/sideband/internal-base.d.mts.map +1 -1
  534. package/resources/live/sideband/internal-base.d.ts +3 -0
  535. package/resources/live/sideband/internal-base.d.ts.map +1 -1
  536. package/resources/live/sideband/internal-base.js +21 -5
  537. package/resources/live/sideband/internal-base.js.map +1 -1
  538. package/resources/live/sideband/internal-base.mjs +21 -5
  539. package/resources/live/sideband/internal-base.mjs.map +1 -1
  540. package/resources/live/sideband/ws.d.mts.map +1 -1
  541. package/resources/live/sideband/ws.d.ts.map +1 -1
  542. package/resources/live/sideband/ws.js +2 -4
  543. package/resources/live/sideband/ws.js.map +1 -1
  544. package/resources/live/sideband/ws.mjs +2 -4
  545. package/resources/live/sideband/ws.mjs.map +1 -1
  546. package/resources/live/ws.d.mts.map +1 -1
  547. package/resources/live/ws.d.ts.map +1 -1
  548. package/resources/live/ws.js +2 -4
  549. package/resources/live/ws.js.map +1 -1
  550. package/resources/live/ws.mjs +2 -4
  551. package/resources/live/ws.mjs.map +1 -1
  552. package/resources/responses/internal-base.d.mts +3 -0
  553. package/resources/responses/internal-base.d.mts.map +1 -1
  554. package/resources/responses/internal-base.d.ts +3 -0
  555. package/resources/responses/internal-base.d.ts.map +1 -1
  556. package/resources/responses/internal-base.js +21 -12
  557. package/resources/responses/internal-base.js.map +1 -1
  558. package/resources/responses/internal-base.mjs +21 -12
  559. package/resources/responses/internal-base.mjs.map +1 -1
  560. package/resources/responses/responses.d.mts +47 -4
  561. package/resources/responses/responses.d.mts.map +1 -1
  562. package/resources/responses/responses.d.ts +47 -4
  563. package/resources/responses/responses.d.ts.map +1 -1
  564. package/resources/responses/responses.js.map +1 -1
  565. package/resources/responses/responses.mjs.map +1 -1
  566. package/resources/responses/ws-base.d.mts +11 -1
  567. package/resources/responses/ws-base.d.mts.map +1 -1
  568. package/resources/responses/ws-base.d.ts +11 -1
  569. package/resources/responses/ws-base.d.ts.map +1 -1
  570. package/resources/responses/ws-base.js +29 -8
  571. package/resources/responses/ws-base.js.map +1 -1
  572. package/resources/responses/ws-base.mjs +28 -9
  573. package/resources/responses/ws-base.mjs.map +1 -1
  574. package/resources/responses/ws.d.mts +2 -0
  575. package/resources/responses/ws.d.mts.map +1 -1
  576. package/resources/responses/ws.d.ts +2 -0
  577. package/resources/responses/ws.d.ts.map +1 -1
  578. package/resources/responses/ws.js +21 -8
  579. package/resources/responses/ws.js.map +1 -1
  580. package/resources/responses/ws.mjs +21 -8
  581. package/resources/responses/ws.mjs.map +1 -1
  582. package/resources/shared.d.mts +1 -1
  583. package/resources/shared.d.mts.map +1 -1
  584. package/resources/shared.d.ts +1 -1
  585. package/resources/shared.d.ts.map +1 -1
  586. package/resources/webhooks/webhooks.d.mts +3 -4
  587. package/resources/webhooks/webhooks.d.mts.map +1 -1
  588. package/resources/webhooks/webhooks.d.ts +3 -4
  589. package/resources/webhooks/webhooks.d.ts.map +1 -1
  590. package/src/_vendor/zod-to-json-schema/Options.ts +2 -0
  591. package/src/_vendor/zod-to-json-schema/parseDef.ts +1 -0
  592. package/src/_vendor/zod-to-json-schema/parsers/bigint.ts +2 -0
  593. package/src/_vendor/zod-to-json-schema/parsers/literal.ts +1 -0
  594. package/src/_vendor/zod-to-json-schema/parsers/null.ts +1 -0
  595. package/src/_vendor/zod-to-json-schema/parsers/nullable.ts +4 -0
  596. package/src/_vendor/zod-to-json-schema/parsers/number.ts +2 -0
  597. package/src/_vendor/zod-to-json-schema/parsers/optional.ts +6 -7
  598. package/src/_vendor/zod-to-json-schema/parsers/record.ts +2 -0
  599. package/src/_vendor/zod-to-json-schema/parsers/string.ts +1 -0
  600. package/src/_vendor/zod-to-json-schema/parsers/union.ts +3 -0
  601. package/src/_vendor/zod-to-json-schema/util.ts +1 -0
  602. package/src/_vendor/zod-to-json-schema/zodToJsonSchema.ts +3 -1
  603. package/src/auth/subject-token-providers.ts +6 -1
  604. package/src/auth/workload-identity-auth.ts +10 -1
  605. package/src/auth/x509-transport.ts +13 -2
  606. package/src/azure.ts +3 -0
  607. package/src/bedrock.ts +5 -0
  608. package/src/beta/realtime/internal-base.ts +2 -0
  609. package/src/beta/realtime/websocket.ts +11 -1
  610. package/src/beta/realtime/ws.ts +3 -0
  611. package/src/client.ts +50 -3
  612. package/src/core/EventEmitter.ts +15 -0
  613. package/src/core/streaming.ts +30 -2
  614. package/src/helpers/audio.ts +2 -0
  615. package/src/helpers/standard-schema.ts +31 -19
  616. package/src/helpers/zod-v3-strict-schema.ts +8 -2
  617. package/src/helpers/zod.ts +32 -13
  618. package/src/internal/assistant-stream-delta.ts +7 -1
  619. package/src/internal/auth/x509-credential-options.ts +3 -0
  620. package/src/internal/auth/x509-token-exchange.ts +10 -1
  621. package/src/internal/auth/x509-transport-capability.ts +2 -1
  622. package/src/internal/auth/x509-workload-identity-auth.ts +13 -8
  623. package/src/internal/bedrock.ts +15 -0
  624. package/src/internal/decoders/line.ts +1 -0
  625. package/src/internal/parse.ts +1 -0
  626. package/src/internal/provider.ts +3 -0
  627. package/src/internal/qs/stringify.ts +3 -0
  628. package/src/internal/qs/utils.ts +14 -3
  629. package/src/internal/responses/response-accumulator.ts +34 -4
  630. package/src/internal/to-file.ts +1 -1
  631. package/src/internal/uploads.ts +11 -1
  632. package/src/internal/utils/abort.ts +7 -2
  633. package/src/internal/utils/bytes.ts +2 -0
  634. package/src/internal/utils/path.ts +2 -0
  635. package/src/internal/utils/sleep.ts +52 -1
  636. package/src/internal/ws-adapter-browser.ts +2 -0
  637. package/src/internal/ws.ts +80 -6
  638. package/src/lib/AbstractChatCompletionRunner.ts +40 -17
  639. package/src/lib/AssistantStream.ts +31 -20
  640. package/src/lib/ChatCompletionRunner.ts +1 -0
  641. package/src/lib/ChatCompletionStream.ts +81 -14
  642. package/src/lib/EventEmitter.ts +15 -0
  643. package/src/lib/EventStream.ts +93 -3
  644. package/src/lib/ResponsesParser.ts +5 -0
  645. package/src/lib/RunnableFunction.ts +4 -1
  646. package/src/lib/agents/agent-session-stream.ts +5 -3
  647. package/src/lib/embeddings.ts +3 -1
  648. package/src/lib/live/transcript-grouper.ts +4 -0
  649. package/src/lib/parser.ts +16 -2
  650. package/src/lib/responses/ResponseInputItems.ts +11 -0
  651. package/src/lib/responses/ResponseStream.ts +6 -3
  652. package/src/lib/responses/responses-websocket-lane.ts +388 -0
  653. package/src/lib/responses/responses-websocket-session.ts +317 -0
  654. package/src/lib/transform.ts +70 -35
  655. package/src/lib/webrtc/connection.ts +5 -1
  656. package/src/lib/webrtc/data-channel.ts +7 -0
  657. package/src/lib/webrtc/subscriptions.ts +3 -0
  658. package/src/lib/webrtc/types.ts +1 -0
  659. package/src/providers/bedrock/aws.ts +5 -1
  660. package/src/realtime/internal-base.ts +2 -0
  661. package/src/realtime/websocket.ts +11 -1
  662. package/src/realtime/ws.ts +3 -0
  663. package/src/resources/beta/agents/agents.ts +2 -0
  664. package/src/resources/beta/agents/sessions/sessions.ts +47 -1
  665. package/src/resources/beta/beta.ts +2 -0
  666. package/src/resources/beta/index.ts +1 -0
  667. package/src/resources/beta/responses/index.ts +1 -0
  668. package/src/resources/beta/responses/internal-base.ts +24 -11
  669. package/src/resources/beta/responses/responses.ts +82 -4
  670. package/src/resources/beta/responses/ws-base.ts +31 -6
  671. package/src/resources/beta/responses/ws.ts +29 -11
  672. package/src/resources/live/forks/internal-base.ts +24 -5
  673. package/src/resources/live/forks/ws.ts +4 -5
  674. package/src/resources/live/internal-base.ts +24 -5
  675. package/src/resources/live/sideband/internal-base.ts +24 -5
  676. package/src/resources/live/sideband/ws.ts +4 -5
  677. package/src/resources/live/ws.ts +4 -5
  678. package/src/resources/responses/api.md +1 -0
  679. package/src/resources/responses/internal-base.ts +24 -11
  680. package/src/resources/responses/responses.ts +56 -1
  681. package/src/resources/responses/ws-base.ts +36 -9
  682. package/src/resources/responses/ws.ts +29 -11
  683. package/src/resources/shared.ts +4 -2
  684. package/src/resources/webhooks/webhooks.ts +3 -4
  685. package/src/version.ts +1 -1
  686. package/version.d.mts +1 -1
  687. package/version.d.ts +1 -1
  688. package/version.js +1 -1
  689. package/version.mjs +1 -1
@@ -96,11 +96,12 @@ function validateStaticCredentials(options: BedrockProviderOptions): AwsCredenti
96
96
  return {
97
97
  accessKeyId: options.accessKeyId,
98
98
  secretAccessKey: options.secretAccessKey,
99
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
99
100
  ...(options.sessionToken ? { sessionToken: options.sessionToken } : {}),
100
101
  };
101
102
  }
102
103
 
103
- function requestTarget(parsedURL: URL): { path: string; query: Record<string, string | string[]> } {
104
+ function requestTarget(parsedURL: URL) {
104
105
  const query: Record<string, string | string[]> = Object.create(null);
105
106
  for (const [name, value] of parsedURL.searchParams) {
106
107
  if (name === '__proto__') {
@@ -195,6 +196,7 @@ class BedrockSigV4Auth implements BedrockRequestAuth {
195
196
  }
196
197
 
197
198
  async prepareRequest(request: FinalizedRequestInit, context: ProviderRequestContext): Promise<void> {
199
+ // SAFETY: process is optional outside Node; the native process tag is checked before using Node-specific signing and credential behavior.
198
200
  if (Object.prototype.toString.call((globalThis as any).process) !== '[object process]') {
199
201
  throw new Errors.OpenAIError(
200
202
  'Bedrock AWS credential authentication is only supported in Node.js and compatible server runtimes. Use bearer authentication in this runtime.',
@@ -230,10 +232,12 @@ class BedrockSigV4Auth implements BedrockRequestAuth {
230
232
  this.signatureV4().sign({
231
233
  protocol: parsedURL.protocol,
232
234
  hostname: parsedURL.hostname,
235
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
233
236
  ...(parsedURL.port ? { port: Number(parsedURL.port) } : {}),
234
237
  method,
235
238
  ...target,
236
239
  headers: Object.fromEntries(headers.entries()),
240
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
237
241
  ...(body === undefined ? {} : { body }),
238
242
  }),
239
243
  failureMessage: this.options.usesDefaultChain
@@ -13,6 +13,7 @@ import { assertX509WebSocketSupported } from '../internal/auth/x509-workload-ide
13
13
  /** Parses frame data without exposing malformed payloads through JSON syntax errors. */
14
14
  export function parseRealtimeEvent(data: string): RealtimeServerEvent {
15
15
  try {
16
+ // SAFETY: RealtimeServerEvent is the API wire contract; JSON syntax is checked here while future event types remain accepted at runtime.
16
17
  return JSON.parse(data) as RealtimeServerEvent;
17
18
  } catch (error) {
18
19
  if (error instanceof SyntaxError) {
@@ -87,6 +88,7 @@ type RealtimeEvents = Simplify<
87
88
  type: EventType;
88
89
  }
89
90
  >,
91
+ // oxlint-disable-next-line anti-slop/no-unknown-returns -- Preserve the published event-callback contract, which accepts and ignores arbitrary return values.
90
92
  ) => unknown;
91
93
  }
92
94
  >;
@@ -43,6 +43,7 @@ function isRunningInBrowserOrBrowserWorker(): boolean {
43
43
  return true;
44
44
  }
45
45
 
46
+ // SAFETY: RuntimeScope describes optional host capabilities; the following predicates verify their presence and value before use.
46
47
  const scope = globalThis as RuntimeScope;
47
48
  return (
48
49
  typeof scope.WorkerGlobalScope === 'function' &&
@@ -61,6 +62,7 @@ function isRunningInBrowserOrBrowserWorker(): boolean {
61
62
 
62
63
  /** Reports whether the runtime supports request headers in native WebSocket options. */
63
64
  function supportsWebSocketRequestHeaders(): boolean {
65
+ // SAFETY: RuntimeScope describes optional host capabilities; the following predicates verify their presence and value before use.
64
66
  const scope = globalThis as RuntimeScope;
65
67
  if (
66
68
  isRunningInBrowserOrBrowserWorker() ||
@@ -183,7 +185,9 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
183
185
  ) {
184
186
  super();
185
187
  let apiKey = getRealtimeAPIKey(client, props.__apiKey);
188
+ // SAFETY: The supplied OpenAI client owns _options; these compatibility reads preserve its provider and browser-consent settings.
186
189
  const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
190
+ // SAFETY: The supplied OpenAI client owns _options; these compatibility reads preserve its provider and browser-consent settings.
187
191
  const dangerouslyAllowBrowser =
188
192
  props.dangerouslyAllowBrowser ??
189
193
  (client as any)?._options?.dangerouslyAllowBrowser ??
@@ -257,7 +261,12 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
257
261
  });
258
262
 
259
263
  this.socket.addEventListener('error', (event: any) => {
260
- this._onError(null, event.message, null);
264
+ // Native ErrorEvents can carry an empty message while `error` still holds the failure.
265
+ const cause = event.error ?? null;
266
+ const message = [event.message, cause?.message].find(
267
+ (value) => typeof value === 'string' && value !== '',
268
+ );
269
+ this._onError(null, message ?? 'unknown error', cause);
261
270
  });
262
271
  }
263
272
 
@@ -317,6 +326,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
317
326
  return new OpenAIRealtimeWebSocket(
318
327
  {
319
328
  ...connection,
329
+ // Preserve explicit browser consent as an own data property without invoking an inherited setter.
320
330
  ...(dangerouslyAllowBrowser === undefined ? {} : { dangerouslyAllowBrowser }),
321
331
  __resolvedApiKey: isApiKeyProvider,
322
332
  __apiKey: apiKey,
@@ -55,6 +55,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
55
55
  super();
56
56
  client ??= new OpenAI();
57
57
  const apiKey = props.__apiKey === undefined ? client.apiKey : props.__apiKey;
58
+ // SAFETY: The supplied OpenAI client owns _options; this read detects its existing API-key provider without changing its public surface.
58
59
  const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
59
60
  if (hasProvider && !props.__resolvedApiKey) {
60
61
  throw new Error(
@@ -69,6 +70,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
69
70
  const headers = {
70
71
  'User-Agent': `${client.constructor.name}/JS ${VERSION}`,
71
72
  ...props.options?.headers,
73
+ // A credential must be an own data property without invoking an inherited setter.
72
74
  ...(isAzure(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${apiKey}` }),
73
75
  };
74
76
 
@@ -178,6 +180,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
178
180
  ...props.options,
179
181
  headers: {
180
182
  ...props.options?.headers,
183
+ // A credential must be an own data property without invoking an inherited setter.
181
184
  ...(isApiKeyProvider ? {} : { 'api-key': apiKey }),
182
185
  },
183
186
  },
@@ -4048,6 +4048,7 @@ export interface SessionTurnError {
4048
4048
  * - `session_budget_exceeded` - The session has reached its usage budget.
4049
4049
  * - `usage_limit_exceeded` - The organization has reached a usage, plan, or
4050
4050
  * billing limit.
4051
+ * - `credit_balance_exhausted` - The organization has no API credits remaining.
4051
4052
  * - `rate_limit_exceeded` - The request exceeds the available rate limit.
4052
4053
  * - `server_overloaded` - The model service is temporarily overloaded.
4053
4054
  * - `cyber_policy` - The request was rejected by a safety policy.
@@ -4070,6 +4071,7 @@ export interface SessionTurnError {
4070
4071
  | 'context_length_exceeded'
4071
4072
  | 'session_budget_exceeded'
4072
4073
  | 'usage_limit_exceeded'
4074
+ | 'credit_balance_exhausted'
4073
4075
  | 'rate_limit_exceeded'
4074
4076
  | 'server_overloaded'
4075
4077
  | 'cyber_policy'
@@ -100,7 +100,8 @@ export class Sessions extends APIResource {
100
100
  }
101
101
 
102
102
  /**
103
- * Updates session metadata. Omitted fields are unchanged. See
103
+ * Updates session metadata, model, reasoning effort, or service tier. Model
104
+ * settings apply to subsequent turns. Omitted fields are unchanged. See
104
105
  * [managing sessions](https://developers.openai.com/api/docs/guides/agents-api/sessions/manage).
105
106
  *
106
107
  * @example
@@ -277,6 +278,11 @@ export interface SessionCreateParamsStreaming extends SessionCreateParamsBase {
277
278
  }
278
279
 
279
280
  export interface SessionUpdateParams {
281
+ /**
282
+ * Model settings for subsequent turns. Omitted fields stay unchanged.
283
+ */
284
+ agent?: SessionUpdateParams.Agent;
285
+
280
286
  /**
281
287
  * Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it.
282
288
  * Up to 16 string key-value pairs, with keys up to 64 and values up to 512
@@ -285,6 +291,46 @@ export interface SessionUpdateParams {
285
291
  metadata?: { [key: string]: string } | null;
286
292
  }
287
293
 
294
+ export namespace SessionUpdateParams {
295
+ /**
296
+ * Model settings for subsequent turns. Omitted fields stay unchanged.
297
+ */
298
+ export interface Agent {
299
+ /**
300
+ * The model for subsequent turns. Omit to keep the current model.
301
+ */
302
+ model?: string;
303
+
304
+ /**
305
+ * Reasoning settings to update. Omit to keep the current effort.
306
+ */
307
+ reasoning?: Agent.Reasoning;
308
+
309
+ /**
310
+ * The service tier used for model requests.
311
+ *
312
+ * - `auto` - Selects the service tier automatically.
313
+ * - `default` - Uses the default service tier.
314
+ * - `flex` - Uses the flex service tier.
315
+ * - `priority` - Uses the priority service tier.
316
+ * - `fast` - Uses the fast service tier.
317
+ */
318
+ service_tier?: 'auto' | 'default' | 'flex' | 'priority' | 'fast' | null;
319
+ }
320
+
321
+ export namespace Agent {
322
+ /**
323
+ * Reasoning settings to update. Omit to keep the current effort.
324
+ */
325
+ export interface Reasoning {
326
+ /**
327
+ * The amount of reasoning effort the model should use.
328
+ */
329
+ effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | null;
330
+ }
331
+ }
332
+ }
333
+
288
334
  export interface SessionListParams extends CursorPageParams {
289
335
  /**
290
336
  * Only return sessions whose root agent has this ID. Omit to return sessions for
@@ -217,6 +217,7 @@ import {
217
217
  BetaResponseCodeInterpreterCallInProgressEvent,
218
218
  BetaResponseCodeInterpreterCallInterpretingEvent,
219
219
  BetaResponseCodeInterpreterToolCall,
220
+ BetaResponseCompactionCompactingEvent,
220
221
  BetaResponseCompactionItem,
221
222
  BetaResponseCompactionItemParam,
222
223
  BetaResponseCompletedEvent,
@@ -588,6 +589,7 @@ export declare namespace Beta {
588
589
  type BetaResponseCodeInterpreterCallInProgressEvent as BetaResponseCodeInterpreterCallInProgressEvent,
589
590
  type BetaResponseCodeInterpreterCallInterpretingEvent as BetaResponseCodeInterpreterCallInterpretingEvent,
590
591
  type BetaResponseCodeInterpreterToolCall as BetaResponseCodeInterpreterToolCall,
592
+ type BetaResponseCompactionCompactingEvent as BetaResponseCompactionCompactingEvent,
591
593
  type BetaResponseCompactionItem as BetaResponseCompactionItem,
592
594
  type BetaResponseCompactionItemParam as BetaResponseCompactionItemParam,
593
595
  type BetaResponseCompletedEvent as BetaResponseCompletedEvent,
@@ -165,6 +165,7 @@ export {
165
165
  type BetaResponseCodeInterpreterCallInProgressEvent,
166
166
  type BetaResponseCodeInterpreterCallInterpretingEvent,
167
167
  type BetaResponseCodeInterpreterToolCall,
168
+ type BetaResponseCompactionCompactingEvent,
168
169
  type BetaResponseCompactionItem,
169
170
  type BetaResponseCompactionItemParam,
170
171
  type BetaResponseCompletedEvent,
@@ -40,6 +40,7 @@ export {
40
40
  type BetaResponseCodeInterpreterCallInProgressEvent,
41
41
  type BetaResponseCodeInterpreterCallInterpretingEvent,
42
42
  type BetaResponseCodeInterpreterToolCall,
43
+ type BetaResponseCompactionCompactingEvent,
43
44
  type BetaResponseCompactionItem,
44
45
  type BetaResponseCompactionItemParam,
45
46
  type BetaResponseCompletedEvent,
@@ -27,13 +27,21 @@ type WebSocketErrorEvent = Extract<ResponsesAPI.BetaResponsesServerEvent, { type
27
27
  export class WebSocketError extends OpenAIError {
28
28
  /**
29
29
  * The error data that the API sent back in an error event.
30
+ *
31
+ * This property is non-enumerable to avoid exposing the event through
32
+ * JSON serialization, object spread, or Object.assign.
30
33
  */
31
34
  error?: WebSocketErrorEvent | undefined;
32
35
 
33
36
  constructor(message: string, event: WebSocketErrorEvent | null) {
34
37
  super(message);
35
38
 
36
- this.error = event ?? undefined;
39
+ Object.defineProperty(this, 'error', {
40
+ value: event ?? undefined,
41
+ writable: true,
42
+ configurable: true,
43
+ enumerable: false,
44
+ });
37
45
  }
38
46
  }
39
47
 
@@ -77,13 +85,8 @@ export abstract class ResponsesEmitter extends EventEmitter<WebSocketEvents> {
77
85
  protected _onError(event: null, message: string, cause: any): void;
78
86
  protected _onError(event: WebSocketErrorEvent, message?: string | undefined): void;
79
87
  protected _onError(event: WebSocketErrorEvent | null, message?: string | undefined, cause?: any): void {
80
- const eventMessage = event && ('error' in event ? event.error?.message : event.message);
81
- message = message ?? eventMessage ?? safeJSONStringify(event) ?? 'unknown error';
82
- try {
83
- message = String(message);
84
- } catch {
85
- message = '[unserializable error value]';
86
- }
88
+ const safeMessage = safeWebSocketErrorMessage(event, message);
89
+ message = safeMessage ?? 'unknown error';
87
90
 
88
91
  if (!this._hasListener('error')) {
89
92
  const error = new WebSocketError(
@@ -114,10 +117,20 @@ export function buildURL(client: OpenAI, parameters: Record<string, unknown>): U
114
117
  return url;
115
118
  }
116
119
 
117
- function safeJSONStringify(value: unknown): string | null {
120
+ function safeWebSocketErrorMessage(event: unknown, message: unknown): string | undefined {
121
+ if (typeof message === 'string') return message;
122
+ if (typeof event !== 'object' || event === null) return undefined;
123
+
118
124
  try {
119
- return JSON.stringify(value);
125
+ const error = Object.getOwnPropertyDescriptor(event, 'error')?.value;
126
+ const nestedMessage =
127
+ typeof error === 'object' && error !== null
128
+ ? Object.getOwnPropertyDescriptor(error, 'message')?.value
129
+ : undefined;
130
+ const eventMessage = Object.getOwnPropertyDescriptor(event, 'message')?.value;
131
+ const candidate = typeof nestedMessage === 'string' ? nestedMessage : eventMessage;
132
+ return typeof candidate === 'string' ? candidate : undefined;
120
133
  } catch {
121
- return null;
134
+ return undefined;
122
135
  }
123
136
  }
@@ -1163,7 +1163,6 @@ export interface BetaResponse {
1163
1163
  | 'gpt-5.1'
1164
1164
  | 'gpt-5.1-2025-11-13'
1165
1165
  | 'gpt-5.1-codex'
1166
- | 'gpt-5.1-mini'
1167
1166
  | 'gpt-5.1-chat-latest'
1168
1167
  | 'gpt-5'
1169
1168
  | 'gpt-5-mini'
@@ -1194,6 +1193,8 @@ export interface BetaResponse {
1194
1193
  | 'gpt-4o-2024-11-20'
1195
1194
  | 'gpt-4o-2024-08-06'
1196
1195
  | 'gpt-4o-2024-05-13'
1196
+ | 'gpt-audio-mini'
1197
+ | 'gpt-audio-mini-2025-12-15'
1197
1198
  | 'gpt-4o-audio-preview'
1198
1199
  | 'gpt-4o-audio-preview-2024-10-01'
1199
1200
  | 'gpt-4o-audio-preview-2024-12-17'
@@ -1227,6 +1228,7 @@ export interface BetaResponse {
1227
1228
  | 'gpt-3.5-turbo-1106'
1228
1229
  | 'gpt-3.5-turbo-0125'
1229
1230
  | 'gpt-3.5-turbo-16k-0613'
1231
+ | 'gpt-5.1-mini'
1230
1232
  | 'o1-pro'
1231
1233
  | 'o1-pro-2025-03-19'
1232
1234
  | 'o3-pro'
@@ -2443,6 +2445,49 @@ export namespace BetaResponseCodeInterpreterToolCall {
2443
2445
  }
2444
2446
  }
2445
2447
 
2448
+ /**
2449
+ * Emitted when new summary content is sampled for a compaction trigger. Contains
2450
+ * no summary content.
2451
+ */
2452
+ export interface BetaResponseCompactionCompactingEvent {
2453
+ /**
2454
+ * The ID of the compaction output item.
2455
+ */
2456
+ item_id: string;
2457
+
2458
+ /**
2459
+ * The index of the compaction output item.
2460
+ */
2461
+ output_index: number;
2462
+
2463
+ /**
2464
+ * The sequence number of the event that was emitted.
2465
+ */
2466
+ sequence_number: number;
2467
+
2468
+ /**
2469
+ * The type of the event, always `response.compaction.compacting`.
2470
+ */
2471
+ type: 'response.compaction.compacting';
2472
+
2473
+ /**
2474
+ * The agent that owns this multi-agent streaming event.
2475
+ */
2476
+ agent?: BetaResponseCompactionCompactingEvent.Agent;
2477
+ }
2478
+
2479
+ export namespace BetaResponseCompactionCompactingEvent {
2480
+ /**
2481
+ * The agent that owns this multi-agent streaming event.
2482
+ */
2483
+ export interface Agent {
2484
+ /**
2485
+ * The canonical name of the agent that produced this item.
2486
+ */
2487
+ agent_name: string;
2488
+ }
2489
+ }
2490
+
2446
2491
  /**
2447
2492
  * A compaction item generated by the
2448
2493
  * [`v1/responses/compact` API](https://developers.openai.com/api/reference/resources/responses/methods/compact).
@@ -10942,6 +10987,7 @@ export type BetaResponseStreamEvent =
10942
10987
  | BetaResponseCodeInterpreterCallCompletedEvent
10943
10988
  | BetaResponseCodeInterpreterCallInProgressEvent
10944
10989
  | BetaResponseCodeInterpreterCallInterpretingEvent
10990
+ | BetaResponseCompactionCompactingEvent
10945
10991
  | BetaResponseCompletedEvent
10946
10992
  | BetaResponseContentPartAddedEvent
10947
10993
  | BetaResponseContentPartDoneEvent
@@ -11696,7 +11742,6 @@ export namespace BetaResponsesClientEvent {
11696
11742
  | 'gpt-5.1'
11697
11743
  | 'gpt-5.1-2025-11-13'
11698
11744
  | 'gpt-5.1-codex'
11699
- | 'gpt-5.1-mini'
11700
11745
  | 'gpt-5.1-chat-latest'
11701
11746
  | 'gpt-5'
11702
11747
  | 'gpt-5-mini'
@@ -11727,6 +11772,8 @@ export namespace BetaResponsesClientEvent {
11727
11772
  | 'gpt-4o-2024-11-20'
11728
11773
  | 'gpt-4o-2024-08-06'
11729
11774
  | 'gpt-4o-2024-05-13'
11775
+ | 'gpt-audio-mini'
11776
+ | 'gpt-audio-mini-2025-12-15'
11730
11777
  | 'gpt-4o-audio-preview'
11731
11778
  | 'gpt-4o-audio-preview-2024-10-01'
11732
11779
  | 'gpt-4o-audio-preview-2024-12-17'
@@ -11760,6 +11807,7 @@ export namespace BetaResponsesClientEvent {
11760
11807
  | 'gpt-3.5-turbo-1106'
11761
11808
  | 'gpt-3.5-turbo-0125'
11762
11809
  | 'gpt-3.5-turbo-16k-0613'
11810
+ | 'gpt-5.1-mini'
11763
11811
  | 'o1-pro'
11764
11812
  | 'o1-pro-2025-03-19'
11765
11813
  | 'o3-pro'
@@ -12134,6 +12182,12 @@ export namespace BetaResponsesClientEvent {
12134
12182
  */
12135
12183
  mode?: 'implicit' | 'explicit';
12136
12184
 
12185
+ /**
12186
+ * Prepares the prompt cache without generating output. Defaults to `false`. When
12187
+ * set to `true`, overrides the `generate` field to `false`.
12188
+ */
12189
+ prewarm?: boolean;
12190
+
12137
12191
  /**
12138
12192
  * The minimum lifetime applied to every implicit and explicit cache breakpoint
12139
12193
  * written by the request. Defaults to `30m`, which is currently the only supported
@@ -12231,6 +12285,7 @@ export type BetaResponsesServerEvent =
12231
12285
  | BetaResponsesServerEvent.BetaResponseCodeInterpreterCallWsCompleted
12232
12286
  | BetaResponsesServerEvent.BetaResponseCodeInterpreterCallInWsProgress
12233
12287
  | BetaResponsesServerEvent.BetaResponseCodeInterpreterCallWsInterpreting
12288
+ | BetaResponsesServerEvent.BetaResponseCompactionWsCompacting
12234
12289
  | BetaResponsesServerEvent.BetaResponseWsCompleted
12235
12290
  | BetaResponsesServerEvent.BetaResponseContentPartWsAdded
12236
12291
  | BetaResponsesServerEvent.BetaResponseContentPartWsDone
@@ -12387,6 +12442,18 @@ export namespace BetaResponsesServerEvent {
12387
12442
  stream_id?: string;
12388
12443
  }
12389
12444
 
12445
+ /**
12446
+ * Emitted when new summary content is sampled for a compaction trigger. Contains
12447
+ * no summary content.
12448
+ */
12449
+ export interface BetaResponseCompactionWsCompacting extends BetaResponseCompactionCompactingEvent {
12450
+ /**
12451
+ * The WebSocket lane that emitted this event. This field is present when the
12452
+ * originating `response.create` event supplied a `stream_id`.
12453
+ */
12454
+ stream_id?: string;
12455
+ }
12456
+
12390
12457
  /**
12391
12458
  * Emitted when the model response is complete.
12392
12459
  */
@@ -13926,7 +13993,6 @@ export interface ResponseCreateParamsBase {
13926
13993
  | 'gpt-5.1'
13927
13994
  | 'gpt-5.1-2025-11-13'
13928
13995
  | 'gpt-5.1-codex'
13929
- | 'gpt-5.1-mini'
13930
13996
  | 'gpt-5.1-chat-latest'
13931
13997
  | 'gpt-5'
13932
13998
  | 'gpt-5-mini'
@@ -13957,6 +14023,8 @@ export interface ResponseCreateParamsBase {
13957
14023
  | 'gpt-4o-2024-11-20'
13958
14024
  | 'gpt-4o-2024-08-06'
13959
14025
  | 'gpt-4o-2024-05-13'
14026
+ | 'gpt-audio-mini'
14027
+ | 'gpt-audio-mini-2025-12-15'
13960
14028
  | 'gpt-4o-audio-preview'
13961
14029
  | 'gpt-4o-audio-preview-2024-10-01'
13962
14030
  | 'gpt-4o-audio-preview-2024-12-17'
@@ -13990,6 +14058,7 @@ export interface ResponseCreateParamsBase {
13990
14058
  | 'gpt-3.5-turbo-1106'
13991
14059
  | 'gpt-3.5-turbo-0125'
13992
14060
  | 'gpt-3.5-turbo-16k-0613'
14061
+ | 'gpt-5.1-mini'
13993
14062
  | 'o1-pro'
13994
14063
  | 'o1-pro-2025-03-19'
13995
14064
  | 'o3-pro'
@@ -14365,6 +14434,12 @@ export namespace ResponseCreateParams {
14365
14434
  */
14366
14435
  mode?: 'implicit' | 'explicit';
14367
14436
 
14437
+ /**
14438
+ * Prepares the prompt cache without generating output. Defaults to `false`. When
14439
+ * set to `true`, overrides the `generate` field to `false`.
14440
+ */
14441
+ prewarm?: boolean;
14442
+
14368
14443
  /**
14369
14444
  * The minimum lifetime applied to every implicit and explicit cache breakpoint
14370
14445
  * written by the request. Defaults to `30m`, which is currently the only supported
@@ -14588,7 +14663,6 @@ export interface ResponseCompactParams {
14588
14663
  | 'gpt-5.1'
14589
14664
  | 'gpt-5.1-2025-11-13'
14590
14665
  | 'gpt-5.1-codex'
14591
- | 'gpt-5.1-mini'
14592
14666
  | 'gpt-5.1-chat-latest'
14593
14667
  | 'gpt-5'
14594
14668
  | 'gpt-5-mini'
@@ -14619,6 +14693,8 @@ export interface ResponseCompactParams {
14619
14693
  | 'gpt-4o-2024-11-20'
14620
14694
  | 'gpt-4o-2024-08-06'
14621
14695
  | 'gpt-4o-2024-05-13'
14696
+ | 'gpt-audio-mini'
14697
+ | 'gpt-audio-mini-2025-12-15'
14622
14698
  | 'gpt-4o-audio-preview'
14623
14699
  | 'gpt-4o-audio-preview-2024-10-01'
14624
14700
  | 'gpt-4o-audio-preview-2024-12-17'
@@ -14652,6 +14728,7 @@ export interface ResponseCompactParams {
14652
14728
  | 'gpt-3.5-turbo-1106'
14653
14729
  | 'gpt-3.5-turbo-0125'
14654
14730
  | 'gpt-3.5-turbo-16k-0613'
14731
+ | 'gpt-5.1-mini'
14655
14732
  | 'o1-pro'
14656
14733
  | 'o1-pro-2025-03-19'
14657
14734
  | 'o3-pro'
@@ -14820,6 +14897,7 @@ export declare namespace Responses {
14820
14897
  type BetaResponseCodeInterpreterCallInProgressEvent as BetaResponseCodeInterpreterCallInProgressEvent,
14821
14898
  type BetaResponseCodeInterpreterCallInterpretingEvent as BetaResponseCodeInterpreterCallInterpretingEvent,
14822
14899
  type BetaResponseCodeInterpreterToolCall as BetaResponseCodeInterpreterToolCall,
14900
+ type BetaResponseCompactionCompactingEvent as BetaResponseCompactionCompactingEvent,
14823
14901
  type BetaResponseCompactionItem as BetaResponseCompactionItem,
14824
14902
  type BetaResponseCompactionItemParam as BetaResponseCompactionItemParam,
14825
14903
  type BetaResponseCompletedEvent as BetaResponseCompletedEvent,
@@ -7,6 +7,8 @@ import { type WebSocketLike, ReadyState } from '../../../internal/ws-adapter';
7
7
  import {
8
8
  SendQueue,
9
9
  getMaxBufferedEvents,
10
+ recordWebSocketError,
11
+ rawByteLength,
10
12
  type WebSocketStreamOptions,
11
13
  flattenRawData,
12
14
  isRecoverableClose,
@@ -19,6 +21,19 @@ import * as ResponsesAPI from './responses';
19
21
  import { OpenAI } from '../../../client';
20
22
  import { OpenAIError } from '../../../core/error';
21
23
 
24
+ const webSocketEventPayloads = new WeakMap<object, string>();
25
+ const webSocketEventBytes = new WeakMap<object, number>();
26
+
27
+ /** Original wire size, available only during synchronous event notification. @internal */
28
+ export function getWebSocketEventBytes(event: object): number | undefined {
29
+ return webSocketEventBytes.get(event);
30
+ }
31
+
32
+ /** Original JSON, available only during synchronous event notification. @internal */
33
+ export function getWebSocketEventPayload(event: object): string | undefined {
34
+ return webSocketEventPayloads.get(event);
35
+ }
36
+
22
37
  export interface ResponsesWSReconnectOptions {
23
38
  /**
24
39
  * Called before each reconnect attempt. Return an object with
@@ -103,7 +118,11 @@ export abstract class ResponsesWSBase<TSocket extends WebSocketLike> extends Res
103
118
  this.socket = this._connect();
104
119
  }
105
120
 
106
- /** Creates a platform-specific WebSocket for the given URL and auth headers. */
121
+ /**
122
+ * Creates a platform-specific WebSocket for the given URL and captured client auth headers.
123
+ * The transport must supply or validate its final credentials before connecting;
124
+ * these headers may be empty when authentication is managed by the transport.
125
+ */
107
126
  protected abstract _createSocket(url: URL, authHeaders: Record<string, string>): TSocket;
108
127
 
109
128
  send(event: ResponsesAPI.BetaResponsesClientEvent) {
@@ -453,7 +472,14 @@ export abstract class ResponsesWSBase<TSocket extends WebSocketLike> extends Res
453
472
  return;
454
473
  }
455
474
 
456
- this._emit('event', event);
475
+ webSocketEventBytes.set(event, rawByteLength(data));
476
+ webSocketEventPayloads.set(event, text);
477
+ try {
478
+ this._emit('event', event);
479
+ } finally {
480
+ webSocketEventBytes.delete(event);
481
+ webSocketEventPayloads.delete(event);
482
+ }
457
483
 
458
484
  if (event.type === 'error') {
459
485
  this._onError(event);
@@ -464,6 +490,7 @@ export abstract class ResponsesWSBase<TSocket extends WebSocketLike> extends Res
464
490
  });
465
491
 
466
492
  socket.on('error', (err: Error) => {
493
+ recordWebSocketError(socket, err);
467
494
  // Suppress transient errors during reconnection — the retry loop
468
495
  // already handles them and will surface a close if retries exhaust.
469
496
  if (this._isReconnecting) return;
@@ -696,9 +723,7 @@ export abstract class ResponsesWSBase<TSocket extends WebSocketLike> extends Res
696
723
  }
697
724
 
698
725
  protected _authHeaders(): Record<string, string> {
699
- if (this._client.apiKey) {
700
- return { Authorization: `Bearer ${this._client.apiKey}` };
701
- }
702
- return {};
726
+ const apiKey = this._client.apiKey;
727
+ return typeof apiKey === 'string' && apiKey ? { Authorization: `Bearer ${apiKey}` } : {};
703
728
  }
704
729
  }
@@ -4,13 +4,17 @@ import * as WS from 'ws';
4
4
  import { NodeWebSocket } from '../../../internal/ws-adapter-node';
5
5
  import { ResponsesWSBase, type ResponsesWSBaseOptions } from './ws-base';
6
6
  import { OpenAI } from '../../../client';
7
- import { VERSION } from '../../../version';
7
+ import { OpenAIError } from '../../../core/error';
8
+ import { snapshotWebSocketCredentials } from '../../../internal/ws';
8
9
 
9
10
  export type { WebSocketStreamOptions } from '../../../internal/ws';
10
11
 
11
12
  export type { ResponsesWSReconnectOptions } from './ws-base';
12
13
 
13
- export interface ResponsesWSClientOptions extends WS.ClientOptions, ResponsesWSBaseOptions {}
14
+ export interface ResponsesWSClientOptions extends WS.ClientOptions, ResponsesWSBaseOptions {
15
+ /** Basic authentication forwarded by the Node `ws` transport. */
16
+ auth?: string;
17
+ }
14
18
 
15
19
  export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
16
20
  private _wsOptions: WS.ClientOptions | null | undefined;
@@ -21,7 +25,6 @@ export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
21
25
  'ResponsesWS from "openai/resources/beta/responses/ws" requires the "ws" package but it could not be loaded.',
22
26
  );
23
27
  }
24
-
25
28
  const { reconnect, maxQueueSize, ...wsOptions } = options ?? {};
26
29
  super(client, { reconnect, maxQueueSize });
27
30
  this._wsOptions = wsOptions;
@@ -29,16 +32,31 @@ export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
29
32
  }
30
33
 
31
34
  protected _createSocket(url: URL, authHeaders: Record<string, string>): NodeWebSocket {
32
- const ws = new WS.WebSocket(url, {
35
+ const capturedAuthHeaders = { ...authHeaders };
36
+ const headers = new Map(Object.entries(this._client._buildWebSocketHeaders(capturedAuthHeaders)));
37
+ for (const [name, value] of Object.entries(this._wsOptions?.headers ?? {})) {
38
+ if (value === null) {
39
+ headers.delete(name.toLowerCase());
40
+ } else if (value !== undefined) {
41
+ headers.set(name.toLowerCase(), value);
42
+ }
43
+ }
44
+ const socketOptions: ResponsesWSClientOptions = {
33
45
  ...this._wsOptions,
34
- headers: {
35
- 'User-Agent': `${this._client.constructor.name}/JS ${VERSION}`,
36
-
37
- ...authHeaders,
38
- ...this._wsOptions?.headers,
39
- },
46
+ headers: Object.fromEntries(headers),
40
47
  followRedirects: false,
41
- });
48
+ };
49
+ if (
50
+ this._client._hasApiKeyProvider() &&
51
+ !capturedAuthHeaders['Authorization'] &&
52
+ !snapshotWebSocketCredentials(socketOptions)
53
+ ) {
54
+ throw new OpenAIError(
55
+ 'Cannot open a Responses WebSocket with an unresolved function-based apiKey. Resolve it before constructing the WebSocket or provide explicit WebSocket credentials.',
56
+ );
57
+ }
58
+
59
+ const ws = new WS.WebSocket(url, socketOptions);
42
60
  return new NodeWebSocket(ws);
43
61
  }
44
62
  }