openai 7.15.0 → 7.17.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 (696) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +6 -0
  3. package/_vendor/zod-to-json-schema/Options.d.mts.map +1 -1
  4. package/_vendor/zod-to-json-schema/Options.d.ts.map +1 -1
  5. package/_vendor/zod-to-json-schema/Options.js +2 -0
  6. package/_vendor/zod-to-json-schema/Options.js.map +1 -1
  7. package/_vendor/zod-to-json-schema/Options.mjs +2 -0
  8. package/_vendor/zod-to-json-schema/Options.mjs.map +1 -1
  9. package/_vendor/zod-to-json-schema/parseDef.d.mts.map +1 -1
  10. package/_vendor/zod-to-json-schema/parseDef.d.ts.map +1 -1
  11. package/_vendor/zod-to-json-schema/parseDef.js +1 -0
  12. package/_vendor/zod-to-json-schema/parseDef.js.map +1 -1
  13. package/_vendor/zod-to-json-schema/parseDef.mjs +1 -0
  14. package/_vendor/zod-to-json-schema/parseDef.mjs.map +1 -1
  15. package/_vendor/zod-to-json-schema/parsers/bigint.d.mts.map +1 -1
  16. package/_vendor/zod-to-json-schema/parsers/bigint.d.ts.map +1 -1
  17. package/_vendor/zod-to-json-schema/parsers/bigint.js +2 -0
  18. package/_vendor/zod-to-json-schema/parsers/bigint.js.map +1 -1
  19. package/_vendor/zod-to-json-schema/parsers/bigint.mjs +2 -0
  20. package/_vendor/zod-to-json-schema/parsers/bigint.mjs.map +1 -1
  21. package/_vendor/zod-to-json-schema/parsers/literal.d.mts.map +1 -1
  22. package/_vendor/zod-to-json-schema/parsers/literal.d.ts.map +1 -1
  23. package/_vendor/zod-to-json-schema/parsers/literal.js +1 -0
  24. package/_vendor/zod-to-json-schema/parsers/literal.js.map +1 -1
  25. package/_vendor/zod-to-json-schema/parsers/literal.mjs +1 -0
  26. package/_vendor/zod-to-json-schema/parsers/literal.mjs.map +1 -1
  27. package/_vendor/zod-to-json-schema/parsers/null.d.mts.map +1 -1
  28. package/_vendor/zod-to-json-schema/parsers/null.d.ts.map +1 -1
  29. package/_vendor/zod-to-json-schema/parsers/null.js +1 -0
  30. package/_vendor/zod-to-json-schema/parsers/null.js.map +1 -1
  31. package/_vendor/zod-to-json-schema/parsers/null.mjs +1 -0
  32. package/_vendor/zod-to-json-schema/parsers/null.mjs.map +1 -1
  33. package/_vendor/zod-to-json-schema/parsers/nullable.d.mts.map +1 -1
  34. package/_vendor/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
  35. package/_vendor/zod-to-json-schema/parsers/nullable.js +4 -0
  36. package/_vendor/zod-to-json-schema/parsers/nullable.js.map +1 -1
  37. package/_vendor/zod-to-json-schema/parsers/nullable.mjs +4 -0
  38. package/_vendor/zod-to-json-schema/parsers/nullable.mjs.map +1 -1
  39. package/_vendor/zod-to-json-schema/parsers/number.d.mts.map +1 -1
  40. package/_vendor/zod-to-json-schema/parsers/number.d.ts.map +1 -1
  41. package/_vendor/zod-to-json-schema/parsers/number.js +2 -0
  42. package/_vendor/zod-to-json-schema/parsers/number.js.map +1 -1
  43. package/_vendor/zod-to-json-schema/parsers/number.mjs +2 -0
  44. package/_vendor/zod-to-json-schema/parsers/number.mjs.map +1 -1
  45. package/_vendor/zod-to-json-schema/parsers/optional.d.mts.map +1 -1
  46. package/_vendor/zod-to-json-schema/parsers/optional.d.ts.map +1 -1
  47. package/_vendor/zod-to-json-schema/parsers/optional.js +6 -7
  48. package/_vendor/zod-to-json-schema/parsers/optional.js.map +1 -1
  49. package/_vendor/zod-to-json-schema/parsers/optional.mjs +6 -7
  50. package/_vendor/zod-to-json-schema/parsers/optional.mjs.map +1 -1
  51. package/_vendor/zod-to-json-schema/parsers/record.d.mts.map +1 -1
  52. package/_vendor/zod-to-json-schema/parsers/record.d.ts.map +1 -1
  53. package/_vendor/zod-to-json-schema/parsers/record.js +2 -0
  54. package/_vendor/zod-to-json-schema/parsers/record.js.map +1 -1
  55. package/_vendor/zod-to-json-schema/parsers/record.mjs +2 -0
  56. package/_vendor/zod-to-json-schema/parsers/record.mjs.map +1 -1
  57. package/_vendor/zod-to-json-schema/parsers/string.d.mts.map +1 -1
  58. package/_vendor/zod-to-json-schema/parsers/string.d.ts.map +1 -1
  59. package/_vendor/zod-to-json-schema/parsers/string.js +1 -0
  60. package/_vendor/zod-to-json-schema/parsers/string.js.map +1 -1
  61. package/_vendor/zod-to-json-schema/parsers/string.mjs +1 -0
  62. package/_vendor/zod-to-json-schema/parsers/string.mjs.map +1 -1
  63. package/_vendor/zod-to-json-schema/parsers/union.d.mts.map +1 -1
  64. package/_vendor/zod-to-json-schema/parsers/union.d.ts.map +1 -1
  65. package/_vendor/zod-to-json-schema/parsers/union.js +3 -0
  66. package/_vendor/zod-to-json-schema/parsers/union.js.map +1 -1
  67. package/_vendor/zod-to-json-schema/parsers/union.mjs +3 -0
  68. package/_vendor/zod-to-json-schema/parsers/union.mjs.map +1 -1
  69. package/_vendor/zod-to-json-schema/util.d.mts.map +1 -1
  70. package/_vendor/zod-to-json-schema/util.d.ts.map +1 -1
  71. package/_vendor/zod-to-json-schema/util.js +1 -0
  72. package/_vendor/zod-to-json-schema/util.js.map +1 -1
  73. package/_vendor/zod-to-json-schema/util.mjs +1 -0
  74. package/_vendor/zod-to-json-schema/util.mjs.map +1 -1
  75. package/_vendor/zod-to-json-schema/zodToJsonSchema.d.mts.map +1 -1
  76. package/_vendor/zod-to-json-schema/zodToJsonSchema.d.ts.map +1 -1
  77. package/_vendor/zod-to-json-schema/zodToJsonSchema.js +2 -0
  78. package/_vendor/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
  79. package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs +2 -0
  80. package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs.map +1 -1
  81. package/auth/subject-token-providers.d.mts.map +1 -1
  82. package/auth/subject-token-providers.d.ts.map +1 -1
  83. package/auth/subject-token-providers.js +6 -1
  84. package/auth/subject-token-providers.js.map +1 -1
  85. package/auth/subject-token-providers.mjs +6 -1
  86. package/auth/subject-token-providers.mjs.map +1 -1
  87. package/auth/workload-identity-auth.d.mts.map +1 -1
  88. package/auth/workload-identity-auth.d.ts.map +1 -1
  89. package/auth/workload-identity-auth.js +9 -0
  90. package/auth/workload-identity-auth.js.map +1 -1
  91. package/auth/workload-identity-auth.mjs +9 -0
  92. package/auth/workload-identity-auth.mjs.map +1 -1
  93. package/auth/x509-transport.d.mts.map +1 -1
  94. package/auth/x509-transport.d.ts.map +1 -1
  95. package/auth/x509-transport.js +11 -0
  96. package/auth/x509-transport.js.map +1 -1
  97. package/auth/x509-transport.mjs +11 -0
  98. package/auth/x509-transport.mjs.map +1 -1
  99. package/azure.d.mts.map +1 -1
  100. package/azure.d.ts.map +1 -1
  101. package/azure.js +3 -0
  102. package/azure.js.map +1 -1
  103. package/azure.mjs +3 -0
  104. package/azure.mjs.map +1 -1
  105. package/bedrock.d.mts.map +1 -1
  106. package/bedrock.d.ts.map +1 -1
  107. package/bedrock.js +14 -6
  108. package/bedrock.js.map +1 -1
  109. package/bedrock.mjs +14 -6
  110. package/bedrock.mjs.map +1 -1
  111. package/beta/realtime/internal-base.d.mts.map +1 -1
  112. package/beta/realtime/internal-base.d.ts.map +1 -1
  113. package/beta/realtime/internal-base.js +1 -0
  114. package/beta/realtime/internal-base.js.map +1 -1
  115. package/beta/realtime/internal-base.mjs +1 -0
  116. package/beta/realtime/internal-base.mjs.map +1 -1
  117. package/beta/realtime/websocket.d.mts.map +1 -1
  118. package/beta/realtime/websocket.d.ts.map +1 -1
  119. package/beta/realtime/websocket.js +9 -1
  120. package/beta/realtime/websocket.js.map +1 -1
  121. package/beta/realtime/websocket.mjs +9 -1
  122. package/beta/realtime/websocket.mjs.map +1 -1
  123. package/beta/realtime/ws.d.mts.map +1 -1
  124. package/beta/realtime/ws.d.ts.map +1 -1
  125. package/beta/realtime/ws.js +3 -0
  126. package/beta/realtime/ws.js.map +1 -1
  127. package/beta/realtime/ws.mjs +3 -0
  128. package/beta/realtime/ws.mjs.map +1 -1
  129. package/client.d.mts +14 -3
  130. package/client.d.mts.map +1 -1
  131. package/client.d.ts +14 -3
  132. package/client.d.ts.map +1 -1
  133. package/client.js +64 -26
  134. package/client.js.map +1 -1
  135. package/client.mjs +64 -26
  136. package/client.mjs.map +1 -1
  137. package/core/EventEmitter.d.mts.map +1 -1
  138. package/core/EventEmitter.d.ts.map +1 -1
  139. package/core/EventEmitter.js +15 -0
  140. package/core/EventEmitter.js.map +1 -1
  141. package/core/EventEmitter.mjs +15 -0
  142. package/core/EventEmitter.mjs.map +1 -1
  143. package/core/streaming.d.mts +1 -0
  144. package/core/streaming.d.mts.map +1 -1
  145. package/core/streaming.d.ts +1 -0
  146. package/core/streaming.d.ts.map +1 -1
  147. package/core/streaming.js +28 -1
  148. package/core/streaming.js.map +1 -1
  149. package/core/streaming.mjs +28 -1
  150. package/core/streaming.mjs.map +1 -1
  151. package/helpers/audio.d.mts.map +1 -1
  152. package/helpers/audio.d.ts.map +1 -1
  153. package/helpers/audio.js +2 -0
  154. package/helpers/audio.js.map +1 -1
  155. package/helpers/audio.mjs +2 -0
  156. package/helpers/audio.mjs.map +1 -1
  157. package/helpers/standard-schema.d.mts.map +1 -1
  158. package/helpers/standard-schema.d.ts.map +1 -1
  159. package/helpers/standard-schema.js +28 -18
  160. package/helpers/standard-schema.js.map +1 -1
  161. package/helpers/standard-schema.mjs +28 -18
  162. package/helpers/standard-schema.mjs.map +1 -1
  163. package/helpers/zod-v3-strict-schema.d.mts.map +1 -1
  164. package/helpers/zod-v3-strict-schema.d.ts.map +1 -1
  165. package/helpers/zod-v3-strict-schema.js +5 -0
  166. package/helpers/zod-v3-strict-schema.js.map +1 -1
  167. package/helpers/zod-v3-strict-schema.mjs +5 -0
  168. package/helpers/zod-v3-strict-schema.mjs.map +1 -1
  169. package/helpers/zod.d.mts.map +1 -1
  170. package/helpers/zod.d.ts.map +1 -1
  171. package/helpers/zod.js +16 -1
  172. package/helpers/zod.js.map +1 -1
  173. package/helpers/zod.mjs +17 -2
  174. package/helpers/zod.mjs.map +1 -1
  175. package/internal/assistant-stream-delta.d.mts.map +1 -1
  176. package/internal/assistant-stream-delta.d.ts.map +1 -1
  177. package/internal/assistant-stream-delta.js +8 -1
  178. package/internal/assistant-stream-delta.js.map +1 -1
  179. package/internal/assistant-stream-delta.mjs +8 -1
  180. package/internal/assistant-stream-delta.mjs.map +1 -1
  181. package/internal/auth/x509-credential-options.d.mts.map +1 -1
  182. package/internal/auth/x509-credential-options.d.ts.map +1 -1
  183. package/internal/auth/x509-credential-options.js +3 -0
  184. package/internal/auth/x509-credential-options.js.map +1 -1
  185. package/internal/auth/x509-credential-options.mjs +3 -0
  186. package/internal/auth/x509-credential-options.mjs.map +1 -1
  187. package/internal/auth/x509-token-exchange.d.mts.map +1 -1
  188. package/internal/auth/x509-token-exchange.d.ts.map +1 -1
  189. package/internal/auth/x509-token-exchange.js +2 -0
  190. package/internal/auth/x509-token-exchange.js.map +1 -1
  191. package/internal/auth/x509-token-exchange.mjs +2 -0
  192. package/internal/auth/x509-token-exchange.mjs.map +1 -1
  193. package/internal/auth/x509-transport-capability.d.mts.map +1 -1
  194. package/internal/auth/x509-transport-capability.d.ts.map +1 -1
  195. package/internal/auth/x509-transport-capability.js +1 -0
  196. package/internal/auth/x509-transport-capability.js.map +1 -1
  197. package/internal/auth/x509-transport-capability.mjs +1 -0
  198. package/internal/auth/x509-transport-capability.mjs.map +1 -1
  199. package/internal/auth/x509-transport-state.mjs +1 -0
  200. package/internal/auth/x509-workload-identity-auth.d.mts.map +1 -1
  201. package/internal/auth/x509-workload-identity-auth.d.ts.map +1 -1
  202. package/internal/auth/x509-workload-identity-auth.js +11 -0
  203. package/internal/auth/x509-workload-identity-auth.js.map +1 -1
  204. package/internal/auth/x509-workload-identity-auth.mjs +11 -0
  205. package/internal/auth/x509-workload-identity-auth.mjs.map +1 -1
  206. package/internal/bedrock.d.mts.map +1 -1
  207. package/internal/bedrock.d.ts.map +1 -1
  208. package/internal/bedrock.js +17 -1
  209. package/internal/bedrock.js.map +1 -1
  210. package/internal/bedrock.mjs +17 -1
  211. package/internal/bedrock.mjs.map +1 -1
  212. package/internal/decoders/line.d.mts.map +1 -1
  213. package/internal/decoders/line.d.ts.map +1 -1
  214. package/internal/decoders/line.js +1 -0
  215. package/internal/decoders/line.js.map +1 -1
  216. package/internal/decoders/line.mjs +1 -0
  217. package/internal/decoders/line.mjs.map +1 -1
  218. package/internal/parse.d.mts +1 -0
  219. package/internal/parse.d.mts.map +1 -1
  220. package/internal/parse.d.ts +1 -0
  221. package/internal/parse.d.ts.map +1 -1
  222. package/internal/parse.js.map +1 -1
  223. package/internal/parse.mjs.map +1 -1
  224. package/internal/provider.d.mts.map +1 -1
  225. package/internal/provider.d.ts.map +1 -1
  226. package/internal/provider.js +3 -0
  227. package/internal/provider.js.map +1 -1
  228. package/internal/provider.mjs +3 -0
  229. package/internal/provider.mjs.map +1 -1
  230. package/internal/qs/stringify.d.mts.map +1 -1
  231. package/internal/qs/stringify.d.ts.map +1 -1
  232. package/internal/qs/stringify.js +3 -0
  233. package/internal/qs/stringify.js.map +1 -1
  234. package/internal/qs/stringify.mjs +3 -0
  235. package/internal/qs/stringify.mjs.map +1 -1
  236. package/internal/qs/utils.d.mts.map +1 -1
  237. package/internal/qs/utils.d.ts.map +1 -1
  238. package/internal/qs/utils.js +15 -3
  239. package/internal/qs/utils.js.map +1 -1
  240. package/internal/qs/utils.mjs +15 -3
  241. package/internal/qs/utils.mjs.map +1 -1
  242. package/internal/realtime-credentials.d.mts +1 -1
  243. package/internal/realtime-credentials.d.ts +1 -1
  244. package/internal/realtime-credentials.js +1 -1
  245. package/internal/realtime-credentials.mjs +1 -1
  246. package/internal/responses/response-accumulator.d.mts.map +1 -1
  247. package/internal/responses/response-accumulator.d.ts.map +1 -1
  248. package/internal/responses/response-accumulator.js +20 -4
  249. package/internal/responses/response-accumulator.js.map +1 -1
  250. package/internal/responses/response-accumulator.mjs +20 -4
  251. package/internal/responses/response-accumulator.mjs.map +1 -1
  252. package/internal/to-file.js.map +1 -1
  253. package/internal/to-file.mjs.map +1 -1
  254. package/internal/uploads.d.mts.map +1 -1
  255. package/internal/uploads.d.ts.map +1 -1
  256. package/internal/uploads.js +10 -0
  257. package/internal/uploads.js.map +1 -1
  258. package/internal/uploads.mjs +10 -0
  259. package/internal/uploads.mjs.map +1 -1
  260. package/internal/utils/abort.d.mts +11 -0
  261. package/internal/utils/abort.d.mts.map +1 -0
  262. package/internal/utils/abort.d.ts +11 -0
  263. package/internal/utils/abort.d.ts.map +1 -0
  264. package/internal/utils/abort.js +94 -0
  265. package/internal/utils/abort.js.map +1 -0
  266. package/internal/utils/abort.mjs +90 -0
  267. package/internal/utils/abort.mjs.map +1 -0
  268. package/internal/utils/bytes.d.mts.map +1 -1
  269. package/internal/utils/bytes.d.ts.map +1 -1
  270. package/internal/utils/bytes.js +2 -0
  271. package/internal/utils/bytes.js.map +1 -1
  272. package/internal/utils/bytes.mjs +2 -0
  273. package/internal/utils/bytes.mjs.map +1 -1
  274. package/internal/utils/path.d.mts.map +1 -1
  275. package/internal/utils/path.d.ts.map +1 -1
  276. package/internal/utils/path.js +2 -0
  277. package/internal/utils/path.js.map +1 -1
  278. package/internal/utils/path.mjs +2 -0
  279. package/internal/utils/path.mjs.map +1 -1
  280. package/internal/utils/sleep.d.mts +1 -1
  281. package/internal/utils/sleep.d.mts.map +1 -1
  282. package/internal/utils/sleep.d.ts +1 -1
  283. package/internal/utils/sleep.d.ts.map +1 -1
  284. package/internal/utils/sleep.js +51 -1
  285. package/internal/utils/sleep.js.map +1 -1
  286. package/internal/utils/sleep.mjs +51 -1
  287. package/internal/utils/sleep.mjs.map +1 -1
  288. package/internal/ws-adapter-browser.d.mts.map +1 -1
  289. package/internal/ws-adapter-browser.d.ts.map +1 -1
  290. package/internal/ws-adapter-browser.js +2 -0
  291. package/internal/ws-adapter-browser.js.map +1 -1
  292. package/internal/ws-adapter-browser.mjs +2 -0
  293. package/internal/ws-adapter-browser.mjs.map +1 -1
  294. package/internal/ws.d.mts +22 -0
  295. package/internal/ws.d.mts.map +1 -1
  296. package/internal/ws.d.ts +22 -0
  297. package/internal/ws.d.ts.map +1 -1
  298. package/internal/ws.js +46 -4
  299. package/internal/ws.js.map +1 -1
  300. package/internal/ws.mjs +44 -4
  301. package/internal/ws.mjs.map +1 -1
  302. package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
  303. package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
  304. package/lib/AbstractChatCompletionRunner.js +41 -16
  305. package/lib/AbstractChatCompletionRunner.js.map +1 -1
  306. package/lib/AbstractChatCompletionRunner.mjs +42 -17
  307. package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
  308. package/lib/AssistantStream.d.mts.map +1 -1
  309. package/lib/AssistantStream.d.ts.map +1 -1
  310. package/lib/AssistantStream.js +19 -5
  311. package/lib/AssistantStream.js.map +1 -1
  312. package/lib/AssistantStream.mjs +20 -6
  313. package/lib/AssistantStream.mjs.map +1 -1
  314. package/lib/ChatCompletionRunner.d.mts.map +1 -1
  315. package/lib/ChatCompletionRunner.d.ts.map +1 -1
  316. package/lib/ChatCompletionRunner.js +1 -0
  317. package/lib/ChatCompletionRunner.js.map +1 -1
  318. package/lib/ChatCompletionRunner.mjs +1 -0
  319. package/lib/ChatCompletionRunner.mjs.map +1 -1
  320. package/lib/ChatCompletionStream.d.mts +6 -1
  321. package/lib/ChatCompletionStream.d.mts.map +1 -1
  322. package/lib/ChatCompletionStream.d.ts +6 -1
  323. package/lib/ChatCompletionStream.d.ts.map +1 -1
  324. package/lib/ChatCompletionStream.js +63 -7
  325. package/lib/ChatCompletionStream.js.map +1 -1
  326. package/lib/ChatCompletionStream.mjs +64 -8
  327. package/lib/ChatCompletionStream.mjs.map +1 -1
  328. package/lib/EventEmitter.d.mts.map +1 -1
  329. package/lib/EventEmitter.d.ts.map +1 -1
  330. package/lib/EventEmitter.js +15 -0
  331. package/lib/EventEmitter.js.map +1 -1
  332. package/lib/EventEmitter.mjs +15 -0
  333. package/lib/EventEmitter.mjs.map +1 -1
  334. package/lib/EventStream.d.mts +2 -0
  335. package/lib/EventStream.d.mts.map +1 -1
  336. package/lib/EventStream.d.ts +2 -0
  337. package/lib/EventStream.d.ts.map +1 -1
  338. package/lib/EventStream.js +111 -14
  339. package/lib/EventStream.js.map +1 -1
  340. package/lib/EventStream.mjs +111 -14
  341. package/lib/EventStream.mjs.map +1 -1
  342. package/lib/ResponsesParser.d.mts.map +1 -1
  343. package/lib/ResponsesParser.d.ts.map +1 -1
  344. package/lib/ResponsesParser.js +4 -0
  345. package/lib/ResponsesParser.js.map +1 -1
  346. package/lib/ResponsesParser.mjs +4 -0
  347. package/lib/ResponsesParser.mjs.map +1 -1
  348. package/lib/RunnableFunction.d.mts.map +1 -1
  349. package/lib/RunnableFunction.d.ts.map +1 -1
  350. package/lib/RunnableFunction.js.map +1 -1
  351. package/lib/RunnableFunction.mjs.map +1 -1
  352. package/lib/agents/agent-session-stream.d.mts.map +1 -1
  353. package/lib/agents/agent-session-stream.d.ts.map +1 -1
  354. package/lib/agents/agent-session-stream.js +5 -2
  355. package/lib/agents/agent-session-stream.js.map +1 -1
  356. package/lib/agents/agent-session-stream.mjs +5 -2
  357. package/lib/agents/agent-session-stream.mjs.map +1 -1
  358. package/lib/embeddings.d.mts.map +1 -1
  359. package/lib/embeddings.d.ts.map +1 -1
  360. package/lib/embeddings.js +2 -0
  361. package/lib/embeddings.js.map +1 -1
  362. package/lib/embeddings.mjs +2 -0
  363. package/lib/embeddings.mjs.map +1 -1
  364. package/lib/live/transcript-grouper.d.mts.map +1 -1
  365. package/lib/live/transcript-grouper.d.ts.map +1 -1
  366. package/lib/live/transcript-grouper.js +8 -2
  367. package/lib/live/transcript-grouper.js.map +1 -1
  368. package/lib/live/transcript-grouper.mjs +8 -2
  369. package/lib/live/transcript-grouper.mjs.map +1 -1
  370. package/lib/live/transcript-grouping.d.mts +2 -2
  371. package/lib/live/transcript-grouping.d.mts.map +1 -1
  372. package/lib/live/transcript-grouping.d.ts +2 -2
  373. package/lib/live/transcript-grouping.d.ts.map +1 -1
  374. package/lib/live/transcript-grouping.js +44 -22
  375. package/lib/live/transcript-grouping.js.map +1 -1
  376. package/lib/live/transcript-grouping.mjs +44 -22
  377. package/lib/live/transcript-grouping.mjs.map +1 -1
  378. package/lib/parser.d.mts.map +1 -1
  379. package/lib/parser.d.ts.map +1 -1
  380. package/lib/parser.js +13 -0
  381. package/lib/parser.js.map +1 -1
  382. package/lib/parser.mjs +13 -0
  383. package/lib/parser.mjs.map +1 -1
  384. package/lib/responses/ResponseInputItems.d.mts.map +1 -1
  385. package/lib/responses/ResponseInputItems.d.ts.map +1 -1
  386. package/lib/responses/ResponseInputItems.js +11 -0
  387. package/lib/responses/ResponseInputItems.js.map +1 -1
  388. package/lib/responses/ResponseInputItems.mjs +11 -0
  389. package/lib/responses/ResponseInputItems.mjs.map +1 -1
  390. package/lib/responses/ResponseStream.d.mts.map +1 -1
  391. package/lib/responses/ResponseStream.d.ts.map +1 -1
  392. package/lib/responses/ResponseStream.js +7 -3
  393. package/lib/responses/ResponseStream.js.map +1 -1
  394. package/lib/responses/ResponseStream.mjs +8 -4
  395. package/lib/responses/ResponseStream.mjs.map +1 -1
  396. package/lib/transform.d.mts.map +1 -1
  397. package/lib/transform.d.ts.map +1 -1
  398. package/lib/transform.js +69 -33
  399. package/lib/transform.js.map +1 -1
  400. package/lib/transform.mjs +69 -33
  401. package/lib/transform.mjs.map +1 -1
  402. package/lib/webrtc/connection.d.mts.map +1 -1
  403. package/lib/webrtc/connection.d.ts.map +1 -1
  404. package/lib/webrtc/connection.js +6 -1
  405. package/lib/webrtc/connection.js.map +1 -1
  406. package/lib/webrtc/connection.mjs +6 -1
  407. package/lib/webrtc/connection.mjs.map +1 -1
  408. package/lib/webrtc/data-channel.d.mts.map +1 -1
  409. package/lib/webrtc/data-channel.d.ts.map +1 -1
  410. package/lib/webrtc/data-channel.js +9 -1
  411. package/lib/webrtc/data-channel.js.map +1 -1
  412. package/lib/webrtc/data-channel.mjs +9 -1
  413. package/lib/webrtc/data-channel.mjs.map +1 -1
  414. package/lib/webrtc/subscriptions.d.mts.map +1 -1
  415. package/lib/webrtc/subscriptions.d.ts.map +1 -1
  416. package/lib/webrtc/subscriptions.js +2 -0
  417. package/lib/webrtc/subscriptions.js.map +1 -1
  418. package/lib/webrtc/subscriptions.mjs +2 -0
  419. package/lib/webrtc/subscriptions.mjs.map +1 -1
  420. package/lib/webrtc/types.d.mts.map +1 -1
  421. package/lib/webrtc/types.d.ts.map +1 -1
  422. package/package.json +1 -1
  423. package/providers/bedrock/aws.d.mts.map +1 -1
  424. package/providers/bedrock/aws.d.ts.map +1 -1
  425. package/providers/bedrock/aws.js +4 -0
  426. package/providers/bedrock/aws.js.map +1 -1
  427. package/providers/bedrock/aws.mjs +4 -0
  428. package/providers/bedrock/aws.mjs.map +1 -1
  429. package/realtime/internal-base.d.mts.map +1 -1
  430. package/realtime/internal-base.d.ts.map +1 -1
  431. package/realtime/internal-base.js +1 -0
  432. package/realtime/internal-base.js.map +1 -1
  433. package/realtime/internal-base.mjs +1 -0
  434. package/realtime/internal-base.mjs.map +1 -1
  435. package/realtime/websocket.d.mts.map +1 -1
  436. package/realtime/websocket.d.ts.map +1 -1
  437. package/realtime/websocket.js +9 -1
  438. package/realtime/websocket.js.map +1 -1
  439. package/realtime/websocket.mjs +9 -1
  440. package/realtime/websocket.mjs.map +1 -1
  441. package/realtime/ws.d.mts.map +1 -1
  442. package/realtime/ws.d.ts.map +1 -1
  443. package/realtime/ws.js +3 -0
  444. package/realtime/ws.js.map +1 -1
  445. package/realtime/ws.mjs +3 -0
  446. package/realtime/ws.mjs.map +1 -1
  447. package/resources/beta/agents/agents.d.mts +2 -1
  448. package/resources/beta/agents/agents.d.mts.map +1 -1
  449. package/resources/beta/agents/agents.d.ts +2 -1
  450. package/resources/beta/agents/agents.d.ts.map +1 -1
  451. package/resources/beta/agents/agents.js.map +1 -1
  452. package/resources/beta/agents/agents.mjs.map +1 -1
  453. package/resources/beta/beta.d.mts +2 -2
  454. package/resources/beta/beta.d.mts.map +1 -1
  455. package/resources/beta/beta.d.ts +2 -2
  456. package/resources/beta/beta.d.ts.map +1 -1
  457. package/resources/beta/beta.js.map +1 -1
  458. package/resources/beta/beta.mjs.map +1 -1
  459. package/resources/beta/index.d.mts +1 -1
  460. package/resources/beta/index.d.mts.map +1 -1
  461. package/resources/beta/index.d.ts +1 -1
  462. package/resources/beta/index.d.ts.map +1 -1
  463. package/resources/beta/index.js.map +1 -1
  464. package/resources/beta/index.mjs.map +1 -1
  465. package/resources/beta/responses/index.d.mts +1 -1
  466. package/resources/beta/responses/index.d.mts.map +1 -1
  467. package/resources/beta/responses/index.d.ts +1 -1
  468. package/resources/beta/responses/index.d.ts.map +1 -1
  469. package/resources/beta/responses/index.js.map +1 -1
  470. package/resources/beta/responses/index.mjs.map +1 -1
  471. package/resources/beta/responses/internal-base.d.mts +3 -0
  472. package/resources/beta/responses/internal-base.d.mts.map +1 -1
  473. package/resources/beta/responses/internal-base.d.ts +3 -0
  474. package/resources/beta/responses/internal-base.d.ts.map +1 -1
  475. package/resources/beta/responses/internal-base.js +21 -6
  476. package/resources/beta/responses/internal-base.js.map +1 -1
  477. package/resources/beta/responses/internal-base.mjs +21 -6
  478. package/resources/beta/responses/internal-base.mjs.map +1 -1
  479. package/resources/beta/responses/responses.d.mts +51 -3
  480. package/resources/beta/responses/responses.d.mts.map +1 -1
  481. package/resources/beta/responses/responses.d.ts +51 -3
  482. package/resources/beta/responses/responses.d.ts.map +1 -1
  483. package/resources/beta/responses/responses.js.map +1 -1
  484. package/resources/beta/responses/responses.mjs.map +1 -1
  485. package/resources/beta/responses/ws-base.d.mts +18 -9
  486. package/resources/beta/responses/ws-base.d.mts.map +1 -1
  487. package/resources/beta/responses/ws-base.d.ts +18 -9
  488. package/resources/beta/responses/ws-base.d.ts.map +1 -1
  489. package/resources/beta/responses/ws-base.js +87 -18
  490. package/resources/beta/responses/ws-base.js.map +1 -1
  491. package/resources/beta/responses/ws-base.mjs +89 -20
  492. package/resources/beta/responses/ws-base.mjs.map +1 -1
  493. package/resources/beta/responses/ws.d.mts +3 -0
  494. package/resources/beta/responses/ws.d.mts.map +1 -1
  495. package/resources/beta/responses/ws.d.ts +3 -0
  496. package/resources/beta/responses/ws.d.ts.map +1 -1
  497. package/resources/beta/responses/ws.js +12 -3
  498. package/resources/beta/responses/ws.js.map +1 -1
  499. package/resources/beta/responses/ws.mjs +12 -3
  500. package/resources/beta/responses/ws.mjs.map +1 -1
  501. package/resources/live/forks/internal-base.d.mts +3 -0
  502. package/resources/live/forks/internal-base.d.mts.map +1 -1
  503. package/resources/live/forks/internal-base.d.ts +3 -0
  504. package/resources/live/forks/internal-base.d.ts.map +1 -1
  505. package/resources/live/forks/internal-base.js +21 -5
  506. package/resources/live/forks/internal-base.js.map +1 -1
  507. package/resources/live/forks/internal-base.mjs +21 -5
  508. package/resources/live/forks/internal-base.mjs.map +1 -1
  509. package/resources/live/forks/ws-base.d.mts +13 -8
  510. package/resources/live/forks/ws-base.d.mts.map +1 -1
  511. package/resources/live/forks/ws-base.d.ts +13 -8
  512. package/resources/live/forks/ws-base.d.ts.map +1 -1
  513. package/resources/live/forks/ws-base.js +85 -14
  514. package/resources/live/forks/ws-base.js.map +1 -1
  515. package/resources/live/forks/ws-base.mjs +87 -16
  516. package/resources/live/forks/ws-base.mjs.map +1 -1
  517. package/resources/live/forks/ws.d.mts +1 -0
  518. package/resources/live/forks/ws.d.mts.map +1 -1
  519. package/resources/live/forks/ws.d.ts +1 -0
  520. package/resources/live/forks/ws.d.ts.map +1 -1
  521. package/resources/live/forks/ws.js.map +1 -1
  522. package/resources/live/forks/ws.mjs.map +1 -1
  523. package/resources/live/internal-base.d.mts +3 -0
  524. package/resources/live/internal-base.d.mts.map +1 -1
  525. package/resources/live/internal-base.d.ts +3 -0
  526. package/resources/live/internal-base.d.ts.map +1 -1
  527. package/resources/live/internal-base.js +21 -5
  528. package/resources/live/internal-base.js.map +1 -1
  529. package/resources/live/internal-base.mjs +21 -5
  530. package/resources/live/internal-base.mjs.map +1 -1
  531. package/resources/live/sideband/internal-base.d.mts +3 -0
  532. package/resources/live/sideband/internal-base.d.mts.map +1 -1
  533. package/resources/live/sideband/internal-base.d.ts +3 -0
  534. package/resources/live/sideband/internal-base.d.ts.map +1 -1
  535. package/resources/live/sideband/internal-base.js +21 -5
  536. package/resources/live/sideband/internal-base.js.map +1 -1
  537. package/resources/live/sideband/internal-base.mjs +21 -5
  538. package/resources/live/sideband/internal-base.mjs.map +1 -1
  539. package/resources/live/sideband/ws-base.d.mts +13 -8
  540. package/resources/live/sideband/ws-base.d.mts.map +1 -1
  541. package/resources/live/sideband/ws-base.d.ts +13 -8
  542. package/resources/live/sideband/ws-base.d.ts.map +1 -1
  543. package/resources/live/sideband/ws-base.js +85 -14
  544. package/resources/live/sideband/ws-base.js.map +1 -1
  545. package/resources/live/sideband/ws-base.mjs +87 -16
  546. package/resources/live/sideband/ws-base.mjs.map +1 -1
  547. package/resources/live/sideband/ws.d.mts +1 -0
  548. package/resources/live/sideband/ws.d.mts.map +1 -1
  549. package/resources/live/sideband/ws.d.ts +1 -0
  550. package/resources/live/sideband/ws.d.ts.map +1 -1
  551. package/resources/live/sideband/ws.js.map +1 -1
  552. package/resources/live/sideband/ws.mjs.map +1 -1
  553. package/resources/live/ws-base.d.mts +13 -8
  554. package/resources/live/ws-base.d.mts.map +1 -1
  555. package/resources/live/ws-base.d.ts +13 -8
  556. package/resources/live/ws-base.d.ts.map +1 -1
  557. package/resources/live/ws-base.js +85 -14
  558. package/resources/live/ws-base.js.map +1 -1
  559. package/resources/live/ws-base.mjs +87 -16
  560. package/resources/live/ws-base.mjs.map +1 -1
  561. package/resources/live/ws.d.mts +1 -0
  562. package/resources/live/ws.d.mts.map +1 -1
  563. package/resources/live/ws.d.ts +1 -0
  564. package/resources/live/ws.d.ts.map +1 -1
  565. package/resources/live/ws.js.map +1 -1
  566. package/resources/live/ws.mjs.map +1 -1
  567. package/resources/responses/internal-base.d.mts +3 -0
  568. package/resources/responses/internal-base.d.mts.map +1 -1
  569. package/resources/responses/internal-base.d.ts +3 -0
  570. package/resources/responses/internal-base.d.ts.map +1 -1
  571. package/resources/responses/internal-base.js +21 -6
  572. package/resources/responses/internal-base.js.map +1 -1
  573. package/resources/responses/internal-base.mjs +21 -6
  574. package/resources/responses/internal-base.mjs.map +1 -1
  575. package/resources/responses/responses.d.mts +36 -3
  576. package/resources/responses/responses.d.mts.map +1 -1
  577. package/resources/responses/responses.d.ts +36 -3
  578. package/resources/responses/responses.d.ts.map +1 -1
  579. package/resources/responses/responses.js.map +1 -1
  580. package/resources/responses/responses.mjs.map +1 -1
  581. package/resources/responses/ws-base.d.mts +18 -9
  582. package/resources/responses/ws-base.d.mts.map +1 -1
  583. package/resources/responses/ws-base.d.ts +18 -9
  584. package/resources/responses/ws-base.d.ts.map +1 -1
  585. package/resources/responses/ws-base.js +87 -18
  586. package/resources/responses/ws-base.js.map +1 -1
  587. package/resources/responses/ws-base.mjs +89 -20
  588. package/resources/responses/ws-base.mjs.map +1 -1
  589. package/resources/responses/ws.d.mts +3 -0
  590. package/resources/responses/ws.d.mts.map +1 -1
  591. package/resources/responses/ws.d.ts +3 -0
  592. package/resources/responses/ws.d.ts.map +1 -1
  593. package/resources/responses/ws.js +12 -3
  594. package/resources/responses/ws.js.map +1 -1
  595. package/resources/responses/ws.mjs +12 -3
  596. package/resources/responses/ws.mjs.map +1 -1
  597. package/src/_vendor/zod-to-json-schema/Options.ts +2 -0
  598. package/src/_vendor/zod-to-json-schema/parseDef.ts +1 -0
  599. package/src/_vendor/zod-to-json-schema/parsers/bigint.ts +2 -0
  600. package/src/_vendor/zod-to-json-schema/parsers/literal.ts +1 -0
  601. package/src/_vendor/zod-to-json-schema/parsers/null.ts +1 -0
  602. package/src/_vendor/zod-to-json-schema/parsers/nullable.ts +4 -0
  603. package/src/_vendor/zod-to-json-schema/parsers/number.ts +2 -0
  604. package/src/_vendor/zod-to-json-schema/parsers/optional.ts +6 -7
  605. package/src/_vendor/zod-to-json-schema/parsers/record.ts +2 -0
  606. package/src/_vendor/zod-to-json-schema/parsers/string.ts +1 -0
  607. package/src/_vendor/zod-to-json-schema/parsers/union.ts +3 -0
  608. package/src/_vendor/zod-to-json-schema/util.ts +1 -0
  609. package/src/_vendor/zod-to-json-schema/zodToJsonSchema.ts +3 -1
  610. package/src/auth/subject-token-providers.ts +6 -1
  611. package/src/auth/workload-identity-auth.ts +10 -1
  612. package/src/auth/x509-transport.ts +13 -2
  613. package/src/azure.ts +3 -0
  614. package/src/bedrock.ts +23 -7
  615. package/src/beta/realtime/internal-base.ts +2 -0
  616. package/src/beta/realtime/websocket.ts +11 -1
  617. package/src/beta/realtime/ws.ts +3 -0
  618. package/src/client.ts +78 -22
  619. package/src/core/EventEmitter.ts +15 -0
  620. package/src/core/streaming.ts +30 -2
  621. package/src/helpers/audio.ts +2 -0
  622. package/src/helpers/standard-schema.ts +31 -19
  623. package/src/helpers/zod-v3-strict-schema.ts +8 -2
  624. package/src/helpers/zod.ts +32 -13
  625. package/src/internal/assistant-stream-delta.ts +7 -1
  626. package/src/internal/auth/x509-credential-options.ts +3 -0
  627. package/src/internal/auth/x509-token-exchange.ts +10 -1
  628. package/src/internal/auth/x509-transport-capability.ts +2 -1
  629. package/src/internal/auth/x509-workload-identity-auth.ts +13 -8
  630. package/src/internal/bedrock.ts +15 -0
  631. package/src/internal/decoders/line.ts +1 -0
  632. package/src/internal/parse.ts +1 -0
  633. package/src/internal/provider.ts +3 -0
  634. package/src/internal/qs/stringify.ts +3 -0
  635. package/src/internal/qs/utils.ts +14 -3
  636. package/src/internal/realtime-credentials.ts +1 -1
  637. package/src/internal/responses/response-accumulator.ts +34 -4
  638. package/src/internal/to-file.ts +1 -1
  639. package/src/internal/uploads.ts +11 -1
  640. package/src/internal/utils/abort.ts +116 -0
  641. package/src/internal/utils/bytes.ts +2 -0
  642. package/src/internal/utils/path.ts +2 -0
  643. package/src/internal/utils/sleep.ts +52 -1
  644. package/src/internal/ws-adapter-browser.ts +2 -0
  645. package/src/internal/ws.ts +66 -4
  646. package/src/lib/AbstractChatCompletionRunner.ts +40 -17
  647. package/src/lib/AssistantStream.ts +31 -20
  648. package/src/lib/ChatCompletionRunner.ts +1 -0
  649. package/src/lib/ChatCompletionStream.ts +81 -14
  650. package/src/lib/EventEmitter.ts +15 -0
  651. package/src/lib/EventStream.ts +93 -3
  652. package/src/lib/ResponsesParser.ts +5 -0
  653. package/src/lib/RunnableFunction.ts +4 -1
  654. package/src/lib/agents/agent-session-stream.ts +5 -3
  655. package/src/lib/embeddings.ts +3 -1
  656. package/src/lib/live/transcript-grouper.ts +4 -0
  657. package/src/lib/live/transcript-grouping.ts +59 -27
  658. package/src/lib/parser.ts +16 -2
  659. package/src/lib/responses/ResponseInputItems.ts +11 -0
  660. package/src/lib/responses/ResponseStream.ts +6 -3
  661. package/src/lib/transform.ts +70 -35
  662. package/src/lib/webrtc/connection.ts +5 -1
  663. package/src/lib/webrtc/data-channel.ts +7 -0
  664. package/src/lib/webrtc/subscriptions.ts +3 -0
  665. package/src/lib/webrtc/types.ts +1 -0
  666. package/src/providers/bedrock/aws.ts +5 -1
  667. package/src/realtime/internal-base.ts +2 -0
  668. package/src/realtime/websocket.ts +11 -1
  669. package/src/realtime/ws.ts +3 -0
  670. package/src/resources/beta/agents/agents.ts +2 -0
  671. package/src/resources/beta/beta.ts +2 -0
  672. package/src/resources/beta/index.ts +1 -0
  673. package/src/resources/beta/responses/index.ts +1 -0
  674. package/src/resources/beta/responses/internal-base.ts +24 -6
  675. package/src/resources/beta/responses/responses.ts +58 -0
  676. package/src/resources/beta/responses/ws-base.ts +117 -26
  677. package/src/resources/beta/responses/ws.ts +23 -6
  678. package/src/resources/live/forks/internal-base.ts +24 -5
  679. package/src/resources/live/forks/ws-base.ts +110 -21
  680. package/src/resources/live/forks/ws.ts +2 -0
  681. package/src/resources/live/internal-base.ts +24 -5
  682. package/src/resources/live/sideband/internal-base.ts +24 -5
  683. package/src/resources/live/sideband/ws-base.ts +110 -21
  684. package/src/resources/live/sideband/ws.ts +2 -0
  685. package/src/resources/live/ws-base.ts +110 -21
  686. package/src/resources/live/ws.ts +2 -0
  687. package/src/resources/responses/api.md +1 -0
  688. package/src/resources/responses/internal-base.ts +24 -6
  689. package/src/resources/responses/responses.ts +41 -0
  690. package/src/resources/responses/ws-base.ts +117 -26
  691. package/src/resources/responses/ws.ts +23 -6
  692. package/src/version.ts +1 -1
  693. package/version.d.mts +1 -1
  694. package/version.d.ts +1 -1
  695. package/version.js +1 -1
  696. package/version.mjs +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../src/resources/responses/ws.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,0CAAuC;AAC/D,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,qBAAkB;AACzE,OAAO,EAAE,MAAM,EAAE,wBAAqB;AAGtC,YAAY,EAAE,2BAA2B,EAAE,qBAAkB;AAE7D,MAAM,WAAW,wBAAyB,SAAQ,EAAE,CAAC,aAAa,EAAE,sBAAsB;CAAG;AAE7F,qBAAa,WAAY,SAAQ,eAAe,CAAC,aAAa,CAAC;IAC7D,OAAO,CAAC,UAAU,CAAsC;gBAE5C,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,IAAI,GAAG,SAAS;IAajF,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa;CAatF"}
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../src/resources/responses/ws.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,0CAAuC;AAC/D,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,qBAAkB;AACzE,OAAO,EAAE,MAAM,EAAE,wBAAqB;AAKtC,YAAY,EAAE,sBAAsB,EAAE,6BAA0B;AAEhE,YAAY,EAAE,2BAA2B,EAAE,qBAAkB;AAE7D,MAAM,WAAW,wBAAyB,SAAQ,EAAE,CAAC,aAAa,EAAE,sBAAsB;IACxF,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,WAAY,SAAQ,eAAe,CAAC,aAAa,CAAC;IAC7D,OAAO,CAAC,UAAU,CAAsC;gBAE5C,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,IAAI,GAAG,SAAS;IAYjF,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa;CAwBtF"}
@@ -7,6 +7,8 @@ const WS = tslib_1.__importStar(require("ws"));
7
7
  const ws_adapter_node_1 = require("../../internal/ws-adapter-node.js");
8
8
  const ws_base_1 = require("./ws-base.js");
9
9
  const version_1 = require("../../version.js");
10
+ const error_1 = require("../../core/error.js");
11
+ const ws_1 = require("../../internal/ws.js");
10
12
  class ResponsesWS extends ws_base_1.ResponsesWSBase {
11
13
  constructor(client, options) {
12
14
  if (!WS?.WebSocket) {
@@ -18,15 +20,22 @@ class ResponsesWS extends ws_base_1.ResponsesWSBase {
18
20
  this._connectInitial();
19
21
  }
20
22
  _createSocket(url, authHeaders) {
21
- const ws = new WS.WebSocket(url, {
23
+ const capturedAuthHeaders = { ...authHeaders };
24
+ const socketOptions = {
22
25
  ...this._wsOptions,
23
26
  headers: {
24
27
  'User-Agent': `${this._client.constructor.name}/JS ${version_1.VERSION}`,
25
- ...authHeaders,
28
+ ...capturedAuthHeaders,
26
29
  ...this._wsOptions?.headers,
27
30
  },
28
31
  followRedirects: false,
29
- });
32
+ };
33
+ if (this._client._hasApiKeyProvider() &&
34
+ !capturedAuthHeaders['Authorization'] &&
35
+ !(0, ws_1.snapshotWebSocketCredentials)(socketOptions)) {
36
+ throw new error_1.OpenAIError('Cannot open a Responses WebSocket with an unresolved function-based apiKey. Resolve it before constructing the WebSocket or provide explicit WebSocket credentials.');
37
+ }
38
+ const ws = new WS.WebSocket(url, socketOptions);
30
39
  return new ws_adapter_node_1.NodeWebSocket(ws);
31
40
  }
32
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../src/resources/responses/ws.ts"],"names":[],"mappings":";AAAA,qFAAqF;;;;AAErF,+CAAyB;AACzB,uEAA+D;AAC/D,0CAAyE;AAEzE,8CAAwC;AAMxC,MAAa,WAAY,SAAQ,yBAA8B;IAG7D,YAAY,MAAc,EAAE,OAAqD;QAC/E,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAChE,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAES,aAAa,CAAC,GAAQ,EAAE,WAAmC;QACnE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE;YAC/B,GAAG,IAAI,CAAC,UAAU;YAClB,OAAO,EAAE;gBACP,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,iBAAO,EAAE;gBAE9D,GAAG,WAAW;gBACd,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO;aAC5B;YACD,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,+BAAa,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CACF;AA7BD,kCA6BC"}
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../../src/resources/responses/ws.ts"],"names":[],"mappings":";AAAA,qFAAqF;;;;AAErF,+CAAyB;AACzB,uEAA+D;AAC/D,0CAAyE;AAEzE,8CAAwC;AACxC,+CAA+C;AAC/C,6CAAiE;AAWjE,MAAa,WAAY,SAAQ,yBAA8B;IAG7D,YAAY,MAAc,EAAE,OAAqD;QAC/E,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAChE,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAES,aAAa,CAAC,GAAQ,EAAE,WAAmC;QACnE,MAAM,mBAAmB,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/C,MAAM,aAAa,GAA6B;YAC9C,GAAG,IAAI,CAAC,UAAU;YAClB,OAAO,EAAE;gBACP,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,iBAAO,EAAE;gBAC9D,GAAG,mBAAmB;gBACtB,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO;aAC5B;YACD,eAAe,EAAE,KAAK;SACvB,CAAC;QACF,IACE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACjC,CAAC,mBAAmB,CAAC,eAAe,CAAC;YACrC,CAAC,IAAA,iCAA4B,EAAC,aAAa,CAAC,EAC5C,CAAC;YACD,MAAM,IAAI,mBAAW,CACnB,qKAAqK,CACtK,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,OAAO,IAAI,+BAAa,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CACF;AAvCD,kCAuCC"}
@@ -3,6 +3,8 @@ import * as WS from 'ws';
3
3
  import { NodeWebSocket } from "../../internal/ws-adapter-node.mjs";
4
4
  import { ResponsesWSBase } from "./ws-base.mjs";
5
5
  import { VERSION } from "../../version.mjs";
6
+ import { OpenAIError } from "../../core/error.mjs";
7
+ import { snapshotWebSocketCredentials } from "../../internal/ws.mjs";
6
8
  export class ResponsesWS extends ResponsesWSBase {
7
9
  constructor(client, options) {
8
10
  if (!WS?.WebSocket) {
@@ -14,15 +16,22 @@ export class ResponsesWS extends ResponsesWSBase {
14
16
  this._connectInitial();
15
17
  }
16
18
  _createSocket(url, authHeaders) {
17
- const ws = new WS.WebSocket(url, {
19
+ const capturedAuthHeaders = { ...authHeaders };
20
+ const socketOptions = {
18
21
  ...this._wsOptions,
19
22
  headers: {
20
23
  'User-Agent': `${this._client.constructor.name}/JS ${VERSION}`,
21
- ...authHeaders,
24
+ ...capturedAuthHeaders,
22
25
  ...this._wsOptions?.headers,
23
26
  },
24
27
  followRedirects: false,
25
- });
28
+ };
29
+ if (this._client._hasApiKeyProvider() &&
30
+ !capturedAuthHeaders['Authorization'] &&
31
+ !snapshotWebSocketCredentials(socketOptions)) {
32
+ throw new OpenAIError('Cannot open a Responses WebSocket with an unresolved function-based apiKey. Resolve it before constructing the WebSocket or provide explicit WebSocket credentials.');
33
+ }
34
+ const ws = new WS.WebSocket(url, socketOptions);
26
35
  return new NodeWebSocket(ws);
27
36
  }
28
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ws.mjs","sourceRoot":"","sources":["../../src/resources/responses/ws.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,2CAAuC;AAC/D,OAAO,EAAE,eAAe,EAA+B,sBAAkB;AAEzE,OAAO,EAAE,OAAO,EAAE,0BAAsB;AAMxC,MAAM,OAAO,WAAY,SAAQ,eAA8B;IAG7D,YAAY,MAAc,EAAE,OAAqD;QAC/E,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAChE,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAES,aAAa,CAAC,GAAQ,EAAE,WAAmC;QACnE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE;YAC/B,GAAG,IAAI,CAAC,UAAU;YAClB,OAAO,EAAE;gBACP,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,OAAO,EAAE;gBAE9D,GAAG,WAAW;gBACd,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO;aAC5B;YACD,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC;QACH,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"ws.mjs","sourceRoot":"","sources":["../../src/resources/responses/ws.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,2CAAuC;AAC/D,OAAO,EAAE,eAAe,EAA+B,sBAAkB;AAEzE,OAAO,EAAE,OAAO,EAAE,0BAAsB;AACxC,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAC/C,OAAO,EAAE,4BAA4B,EAAE,8BAA0B;AAWjE,MAAM,OAAO,WAAY,SAAQ,eAA8B;IAG7D,YAAY,MAAc,EAAE,OAAqD;QAC/E,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAChE,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAES,aAAa,CAAC,GAAQ,EAAE,WAAmC;QACnE,MAAM,mBAAmB,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/C,MAAM,aAAa,GAA6B;YAC9C,GAAG,IAAI,CAAC,UAAU;YAClB,OAAO,EAAE;gBACP,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,OAAO,EAAE;gBAC9D,GAAG,mBAAmB;gBACtB,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO;aAC5B;YACD,eAAe,EAAE,KAAK;SACvB,CAAC;QACF,IACE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACjC,CAAC,mBAAmB,CAAC,eAAe,CAAC;YACrC,CAAC,4BAA4B,CAAC,aAAa,CAAC,EAC5C,CAAC;YACD,MAAM,IAAI,WAAW,CACnB,qKAAqK,CACtK,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -63,6 +63,8 @@ export const getDefaultOptions = <Target extends Targets>(
63
63
  options: Partial<Options<Target>> | string | undefined,
64
64
  ): Options<Target> => {
65
65
  // We need to add `definitions` here as we may mutate it
66
+ // Preserve the public string-name overload alongside object options.
67
+ // SAFETY: Defaults and the supplied options are merged into the vendored converter's target-specific options contract, with fresh mutable definitions.
66
68
  const resolvedOptions = (
67
69
  typeof options === 'string'
68
70
  ? {
@@ -125,6 +125,7 @@ export function parseDef(
125
125
  refs.seen.set(def, newItem);
126
126
 
127
127
  try {
128
+ // SAFETY: The vendored Zod definition carries its typeName discriminator; selectParser dispatches on that discriminator and handles unsupported definitions.
128
129
  const jsonSchema = selectParser(def, (def as any).typeName, refs, forceResolution);
129
130
 
130
131
  if (jsonSchema) {
@@ -35,6 +35,7 @@ export function parseBigintDef(def: ZodBigIntDef, refs: Refs): JsonSchema7Bigint
35
35
  }
36
36
  } else {
37
37
  if (!check.inclusive) {
38
+ // SAFETY: This target uses the draft's boolean exclusive-bound keyword instead of the numeric keyword represented by the shared schema type.
38
39
  res.exclusiveMinimum = true as any;
39
40
  }
40
41
  setResponseValueAndErrors(res, 'minimum', check.value, check.message, refs);
@@ -50,6 +51,7 @@ export function parseBigintDef(def: ZodBigIntDef, refs: Refs): JsonSchema7Bigint
50
51
  }
51
52
  } else {
52
53
  if (!check.inclusive) {
54
+ // SAFETY: This target uses the draft's boolean exclusive-bound keyword instead of the numeric keyword represented by the shared schema type.
53
55
  res.exclusiveMaximum = true as any;
54
56
  }
55
57
  setResponseValueAndErrors(res, 'maximum', check.value, check.message, refs);
@@ -33,6 +33,7 @@ export function parseLiteralDef(def: ZodLiteralDef, refs: Refs): JsonSchema7Lite
33
33
  }
34
34
 
35
35
  if (refs.target === 'openApi3') {
36
+ // SAFETY: The OpenAPI branch represents a primitive literal with enum instead of const, retaining the vendored converter's target compatibility.
36
37
  return {
37
38
  type: parsedType === 'bigint' ? 'integer' : parsedType,
38
39
  enum: [def.value],
@@ -5,6 +5,7 @@ export type JsonSchema7NullType = {
5
5
  };
6
6
 
7
7
  export function parseNullDef(refs: Refs): JsonSchema7NullType {
8
+ // SAFETY: The OpenAPI target uses nullable plus enum because its null representation differs from the JSON Schema return type.
8
9
  return refs.target === 'openApi3'
9
10
  ? ({
10
11
  enum: ['null'],
@@ -23,12 +23,14 @@ export function parseNullableDef(
23
23
  (!def.innerType._def.checks || !def.innerType._def.checks.length)
24
24
  ) {
25
25
  if (refs.target === 'openApi3' || refs.nullableStrategy === 'property') {
26
+ // SAFETY: The preceding primitive discriminator check permits the mapping lookup; the nullable-property target uses its existing extension representation.
26
27
  return {
27
28
  type: primitiveMappings[def.innerType._def.typeName as keyof typeof primitiveMappings],
28
29
  nullable: true,
29
30
  } as any;
30
31
  }
31
32
 
33
+ // SAFETY: The preceding primitive discriminator check permits the mapping lookup; the nullable-property target uses its existing extension representation.
32
34
  return {
33
35
  type: [primitiveMappings[def.innerType._def.typeName as keyof typeof primitiveMappings], 'null'],
34
36
  };
@@ -45,9 +47,11 @@ export function parseNullableDef(
45
47
  );
46
48
 
47
49
  if (base && '$ref' in base) {
50
+ // SAFETY: The OpenAPI branch adds nullable to the converted base schema, an extension not represented by the shared JSON Schema union.
48
51
  return { allOf: [base], nullable: true } as any;
49
52
  }
50
53
 
54
+ // SAFETY: The OpenAPI branch adds nullable to the converted base schema, an extension not represented by the shared JSON Schema union.
51
55
  return base && ({ ...base, nullable: true } as any);
52
56
  }
53
57
 
@@ -38,6 +38,7 @@ export function parseNumberDef(def: ZodNumberDef, refs: Refs): JsonSchema7Number
38
38
  }
39
39
  } else {
40
40
  if (!check.inclusive) {
41
+ // SAFETY: This target uses the draft's boolean exclusive-bound keyword instead of the numeric keyword represented by the shared schema type.
41
42
  res.exclusiveMinimum = true as any;
42
43
  }
43
44
  setResponseValueAndErrors(res, 'minimum', check.value, check.message, refs);
@@ -53,6 +54,7 @@ export function parseNumberDef(def: ZodNumberDef, refs: Refs): JsonSchema7Number
53
54
  }
54
55
  } else {
55
56
  if (!check.inclusive) {
57
+ // SAFETY: This target uses the draft's boolean exclusive-bound keyword instead of the numeric keyword represented by the shared schema type.
56
58
  res.exclusiveMaximum = true as any;
57
59
  }
58
60
  setResponseValueAndErrors(res, 'maximum', check.value, check.message, refs);
@@ -15,23 +15,22 @@ export const parseOptionalDef = (
15
15
  return parseDef(def.innerType._def, { ...refs, currentPath: refs.currentPath }, forceResolution);
16
16
  }
17
17
 
18
+ // `not: {}` accepts no JSON values and is unsupported by strict Structured Outputs.
19
+ // Keep the wrapper, but generate only its real branch at the correct reference path.
20
+ // Override callbacks retain their existing output and path contract.
21
+ const omitNeverBranch = refs.openaiStrictMode && !refs.override;
18
22
  const innerSchema = parseDef(
19
23
  def.innerType._def,
20
24
  {
21
25
  ...refs,
22
- currentPath: [...refs.currentPath, 'anyOf', '1'],
26
+ currentPath: [...refs.currentPath, 'anyOf', omitNeverBranch ? '0' : '1'],
23
27
  },
24
28
  forceResolution,
25
29
  );
26
30
 
27
31
  return innerSchema
28
32
  ? {
29
- anyOf: [
30
- {
31
- not: {},
32
- },
33
- innerSchema,
34
- ],
33
+ anyOf: omitNeverBranch ? [innerSchema] : [{ not: {} }, innerSchema],
35
34
  }
36
35
  : {};
37
36
  };
@@ -23,6 +23,7 @@ export function parseRecordDef(
23
23
  refs: Refs,
24
24
  ): JsonSchema7RecordType {
25
25
  if (refs.target === 'openApi3' && def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {
26
+ // SAFETY: The OpenAPI enum-key path emits an explicitly checked object schema while preserving the vendored record parser's public return type.
26
27
  return {
27
28
  type: 'object',
28
29
  required: def.keyType._def.values,
@@ -53,6 +54,7 @@ export function parseRecordDef(
53
54
  }
54
55
 
55
56
  if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString && def.keyType._def.checks?.length) {
57
+ // SAFETY: Removing only type from the parsed string schema leaves the keyword subset allowed in propertyNames.
56
58
  const keyType = Object.fromEntries(
57
59
  Object.entries(parseStringDef(def.keyType._def, refs)).filter(([key]) => key !== 'type'),
58
60
  ) as JsonSchema7RecordPropertyNamesType;
@@ -222,6 +222,7 @@ export function parseStringDef(def: ZodStringDef, refs: Refs): JsonSchema7String
222
222
  case 'base64': {
223
223
  switch (refs.base64Strategy) {
224
224
  case 'format:binary': {
225
+ // SAFETY: The explicit OpenAPI binary strategy uses format: binary, an extension to the vendored JSON Schema string-format type.
225
226
  addFormat(res, 'binary' as any, check.message, refs);
226
227
  break;
227
228
  }
@@ -46,6 +46,7 @@ export function parseUnionDef(
46
46
 
47
47
  const types: JsonSchema7Primitive[] = [];
48
48
  for (const x of options) {
49
+ // SAFETY: The preceding every check restricts each option to a primitive mapping key with no additional checks.
49
50
  const type = primitiveMappings[x._def.typeName as ZodPrimitive]; //Can be safely casted due to row 43
50
51
  if (type && !types.includes(type)) {
51
52
  types.push(type);
@@ -59,6 +60,7 @@ export function parseUnionDef(
59
60
  // all options literals
60
61
 
61
62
  const types: JsonSchema7Primitive[] = [];
63
+ // SAFETY: The preceding every check establishes that every union option is a Zod literal definition.
62
64
  for (const x of options as readonly { _def: ZodLiteralDef }[]) {
63
65
  const type = typeof x._def.value;
64
66
  switch (type) {
@@ -118,6 +120,7 @@ const asAnyOf = (
118
120
  def: ZodUnionDef | ZodDiscriminatedUnionDef<any, any>,
119
121
  refs: Refs,
120
122
  ): JsonSchema7PrimitiveUnionType | JsonSchema7AnyOfType | undefined => {
123
+ // SAFETY: Zod union options are either the discriminated-union map values or the ordinary option array; both contain schema definitions for parseDef.
121
124
  const anyOf = ((def.options instanceof Map ? [...def.options.values()] : def.options) as any[])
122
125
  .map((x, i) =>
123
126
  parseDef(x._def, {
@@ -3,6 +3,7 @@ import type { ZodSchema, ZodTypeDef } from 'zod/v3';
3
3
  export const zodDef = (zodSchema: ZodSchema | ZodTypeDef): ZodTypeDef =>
4
4
  '_def' in zodSchema ? zodSchema._def : zodSchema;
5
5
 
6
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Preserve the upstream utility contract: any object can have enumerable own or inherited keys.
6
7
  export function isEmptyObj(obj: object | null | undefined): boolean {
7
8
  if (!obj) {
8
9
  return true;
@@ -14,6 +14,7 @@ function ownStrictRootSchema(
14
14
  throw new TypeError('Root schema must be a plain JSON-schema record');
15
15
  }
16
16
 
17
+ // SAFETY: Object.getPrototypeOf returns an object or null; the following comparison permits only plain or null-prototype schemas.
17
18
  const prototype = Object.getPrototypeOf(schema) as object | null;
18
19
  if (![null, Object.prototype].includes(prototype)) {
19
20
  throw new TypeError('Root schema must be a plain JSON-schema record');
@@ -67,6 +68,7 @@ function ownStrictRootSchema(
67
68
  throw new Error("Root schema must have type: 'object' but got type: undefined");
68
69
  }
69
70
 
71
+ // SAFETY: The copied schema preserves the validated JSON fields while taking ownership of the mutable converter result.
70
72
  return owned as JsonSchema7Type;
71
73
  }
72
74
 
@@ -120,7 +122,7 @@ const zodToJsonSchema = <Target extends Targets = 'jsonSchema7'>(
120
122
  return undefined;
121
123
  }
122
124
 
123
- const definitions: Record<string, any> = {};
125
+ const definitions: Record<string, JsonSchema7Type> = {};
124
126
  const processedDefinitions = new Set();
125
127
 
126
128
  // the call to `parseDef()` here might itself add more entries to `.definitions`
@@ -16,15 +16,18 @@ const errorFunctionToString = Function.prototype.toString;
16
16
  const nativeErrorSource = errorFunctionToString.call(Error);
17
17
  const nativeSyntaxErrorSource = errorFunctionToString.call(SyntaxError);
18
18
  const nativeErrorBrandDescriptor = getOwnErrorDescriptor(Error, 'isError');
19
+ // SAFETY: The captured Error.isError data property was checked to be callable and follows the native error-brand predicate contract.
19
20
  const nativeErrorBrand =
20
21
  nativeErrorBrandDescriptor &&
21
22
  'value' in nativeErrorBrandDescriptor &&
22
23
  typeof nativeErrorBrandDescriptor.value === 'function'
23
- ? (nativeErrorBrandDescriptor.value as (error: object) => boolean)
24
+ ? // oxlint-disable-next-line anti-slop/no-object-parameters -- The native error-brand predicate inspects arbitrary objects without trusting their properties.
25
+ (nativeErrorBrandDescriptor.value as (error: object) => boolean)
24
26
  : undefined;
25
27
 
26
28
  type AzureJSONErrorKind = 'error' | 'syntax' | 'tagged-wrapper' | 'unknown' | 'unsafe';
27
29
 
30
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Cross-realm prototypes are inspected through descriptors before any error contract is trusted.
28
31
  function hasNativeErrorPrototype(prototype: object, kind: 'Error' | 'SyntaxError'): boolean {
29
32
  const name = getOwnErrorDescriptor(prototype, 'name');
30
33
  const constructor = getOwnErrorDescriptor(prototype, 'constructor');
@@ -49,10 +52,12 @@ function hasNativeErrorPrototype(prototype: object, kind: 'Error' | 'SyntaxError
49
52
  );
50
53
  }
51
54
 
55
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Untrusted thrown objects, including proxies, must be classified before treating them as errors.
52
56
  function classifyCrossRealmAzureError(error: object): AzureJSONErrorKind {
53
57
  try {
54
58
  const prototypes: object[] = [];
55
59
  let tagged = false;
60
+ // SAFETY: Object.getPrototypeOf returns an object or null; the traversal never treats the prototype as a more specific instance.
56
61
  for (
57
62
  let prototype: object | null = error;
58
63
  prototype !== null;
@@ -53,6 +53,7 @@ function calculateRefreshAt(
53
53
  const NATIVE_RESPONSE_PROTOTYPE = Response.prototype;
54
54
  const READ_NATIVE_RESPONSE_BODY = NATIVE_RESPONSE_PROTOTYPE.arrayBuffer;
55
55
 
56
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Custom fetch response prototypes are verified through descriptors before trusting their native contract.
56
57
  function isResponsePrototype(response: Response, prototype: object): boolean {
57
58
  const constructor = Object.getOwnPropertyDescriptor(prototype, 'constructor')?.value;
58
59
  if (
@@ -73,6 +74,7 @@ function isResponsePrototype(response: Response, prototype: object): boolean {
73
74
  );
74
75
  }
75
76
 
77
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- The prototype walk compares untrusted cross-realm objects by identity and descriptor metadata.
76
78
  function isResponseBodyPrototype(prototype: object, responsePrototype: object | null): boolean {
77
79
  if (prototype === responsePrototype) {
78
80
  return true;
@@ -89,10 +91,12 @@ function isResponseBodyPrototype(prototype: object, responsePrototype: object |
89
91
  }
90
92
 
91
93
  function decodeNativeResponseBody(body: ArrayBuffer): string {
94
+ // SAFETY: Bun is an optional runtime global; its version is checked before selecting Bun-specific decoding behavior.
92
95
  const scope = globalThis as typeof globalThis & { Bun?: { version?: unknown } };
93
96
  return new TextDecoder('utf-8', { ignoreBOM: typeof scope.Bun?.version === 'string' }).decode(body);
94
97
  }
95
98
 
99
+ // oxlint-disable-next-line anti-slop/no-unknown-returns -- Decoded token JSON remains untrusted until the caller validates its fields.
96
100
  async function parseOAuthTokenResponse(response: Response): Promise<unknown> {
97
101
  let readText: ((this: Response) => Promise<string>) | undefined;
98
102
  let responsePrototype: object | null = null;
@@ -140,6 +144,7 @@ async function parseOAuthTokenResponse(response: Response): Promise<unknown> {
140
144
  }
141
145
 
142
146
  function isUnsafeAccessToken(accessToken: string): boolean {
147
+ // SAFETY: Bun is an optional runtime global; its version is checked before selecting Bun-specific decoding behavior.
143
148
  const scope = globalThis as typeof globalThis & { Bun?: { version?: unknown } };
144
149
  if (typeof scope.Bun?.version === 'string') {
145
150
  return /[^\t\u0020-\u007E]|^[\t ]|[\t ]$/u.test(accessToken);
@@ -173,7 +178,9 @@ export class WorkloadIdentityAuth {
173
178
  this.config = {
174
179
  identityProviderId,
175
180
  serviceAccountId,
181
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
176
182
  ...(clientId === undefined ? {} : { clientId }),
183
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
177
184
  ...(refreshBufferSeconds === undefined ? {} : { refreshBufferSeconds }),
178
185
  provider: {
179
186
  tokenType: provider.tokenType,
@@ -226,6 +233,7 @@ export class WorkloadIdentityAuth {
226
233
 
227
234
  private async refreshToken(generation: number): Promise<string> {
228
235
  const subjectToken = await this.config.provider.getToken();
236
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- The token-exchange field dictionary gains an optional client_id after its required fields are initialized.
229
237
  const body: Record<string, string> = {
230
238
  grant_type: TOKEN_EXCHANGE_GRANT_TYPE,
231
239
  subject_token: subjectToken,
@@ -260,7 +268,7 @@ export class WorkloadIdentityAuth {
260
268
  }
261
269
 
262
270
  if (response.status === 400 || response.status === 401 || response.status === 403) {
263
- throw new OAuthError(response.status as 400 | 401 | 403, body, response.headers);
271
+ throw new OAuthError(response.status, body, response.headers);
264
272
  }
265
273
  throw APIError.generate(
266
274
  response.status,
@@ -283,6 +291,7 @@ export class WorkloadIdentityAuth {
283
291
  throw new OpenAIError("Token exchange response missing 'access_token' field");
284
292
  }
285
293
 
294
+ // SAFETY: The token response was checked as an object with a valid access token; expires_in is still validated by calculateExpiresAt.
286
295
  const expiresIn = (tokenResponse as Partial<TokenExchangeResponse>).expires_in ?? 3600;
287
296
  const expiresAt = calculateExpiresAt(expiresIn, exchangeStartedAt);
288
297
 
@@ -82,6 +82,7 @@ function safeOptionRecord(
82
82
  if (prototype !== Object.prototype && prototype !== null) {
83
83
  throw new Error(`X.509 ${label} options must have only own plain data properties.`);
84
84
  }
85
+ // SAFETY: The snapshot starts empty with no prototype; only checked own data properties are copied into it below.
85
86
  const snapshot = Object.create(null) as Record<string, unknown>;
86
87
  for (const name of Reflect.ownKeys(value)) {
87
88
  if (typeof name !== 'string' || !allowed.has(name)) {
@@ -179,6 +180,7 @@ function validatedCredentialOptions(options: X509CredentialOptions): ValidatedX5
179
180
  const leaf = new X509Certificate(certificateChain);
180
181
  const privateKey = createPrivateKey({
181
182
  key: privateKeyPEM,
183
+ // Create an own data property so an inherited setter cannot intercept the private-key passphrase.
182
184
  ...(passphrase === undefined ? {} : { passphrase }),
183
185
  });
184
186
  if (!leaf.checkPrivateKey(privateKey)) {
@@ -239,6 +241,7 @@ function credentialDispatcher(
239
241
  requestTls: VerifiedX509TLSOptions,
240
242
  ): { dispatcher: Agent | ProxyAgent; proxy: X509ProxyMode } {
241
243
  if (proxyOptionsInput === undefined) {
244
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- The dispatcher owner returns one contract for direct Agents and both supported CONNECT proxy modes.
242
245
  return { dispatcher: new Agent({ connect: requestTls }), proxy: 'direct' };
243
246
  }
244
247
 
@@ -262,16 +265,20 @@ function credentialDispatcher(
262
265
  }
263
266
  const auth = proxyAuthentication(url);
264
267
 
268
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- The declared transport contract preserves the same dispatcher and proxy types across both construction paths.
265
269
  return {
266
270
  proxy,
267
271
  dispatcher: new ProxyAgent({
268
272
  uri: url.href,
273
+ // Define proxy credentials as own data without invoking inherited setters.
269
274
  ...(auth === undefined ? {} : { auth }),
270
275
  requestTls,
276
+ // Keep the optional proxy TLS configuration as an own data property.
271
277
  ...(proxy === 'https-connect'
272
278
  ? {
273
279
  proxyTls: {
274
280
  rejectUnauthorized: true,
281
+ // Define explicit proxy trust roots as own data without invoking inherited setters.
275
282
  ...(proxyCA === undefined ? {} : { ca: proxyCA }),
276
283
  },
277
284
  }
@@ -300,6 +307,7 @@ export function createX509Transport(options: X509TransportOptions): X509Transpor
300
307
  transport: capability,
301
308
  identityProviderId,
302
309
  serviceAccountId,
310
+ // Preserve the cancellation signal as own data without invoking inherited setters.
303
311
  ...(signal ? { signal } : {}),
304
312
  }),
305
313
  run: (operation) =>
@@ -315,11 +323,13 @@ export function createX509Transport(options: X509TransportOptions): X509Transpor
315
323
  export function fromX509(options: X509CredentialOptions): X509Credential {
316
324
  const configured = validatedCredentialOptions(options);
317
325
 
318
- const requestTls = {
326
+ const requestTls: VerifiedX509TLSOptions = {
319
327
  cert: configured.certificateChain,
320
328
  key: configured.privateKey,
321
- rejectUnauthorized: true as const,
329
+ rejectUnauthorized: true,
330
+ // Define the TLS passphrase as own data so inherited setters cannot intercept it.
322
331
  ...(configured.passphrase === undefined ? {} : { passphrase: configured.passphrase }),
332
+ // Define explicit workload trust roots as own data without invoking inherited setters.
323
333
  ...(configured.ca === undefined ? {} : { ca: configured.ca }),
324
334
  };
325
335
  const { dispatcher, proxy } = credentialDispatcher(configured.proxy, requestTls);
@@ -335,6 +345,7 @@ export function fromX509(options: X509CredentialOptions): X509Credential {
335
345
  type: 'x509',
336
346
  identityProviderId: configured.identityProviderId,
337
347
  serviceAccountId: configured.serviceAccountId,
348
+ // Preserve the optional refresh setting as own data without invoking inherited setters.
338
349
  ...(configured.refreshBufferSeconds === undefined
339
350
  ? {}
340
351
  : { refreshBufferSeconds: configured.refreshBufferSeconds }),
package/src/azure.ts CHANGED
@@ -101,6 +101,7 @@ export class AzureOpenAI extends OpenAI {
101
101
  );
102
102
  }
103
103
 
104
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Azure accepts JavaScript credential configuration; distinguish static keys from callable token providers.
104
105
  if (typeof azureADTokenProvider === 'function') {
105
106
  dangerouslyAllowBrowser ??= true;
106
107
  }
@@ -143,6 +144,7 @@ export class AzureOpenAI extends OpenAI {
143
144
  apiKey: azureADTokenProvider ?? apiKey,
144
145
  baseURL,
145
146
  ...opts,
147
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
146
148
  ...(dangerouslyAllowBrowser === undefined ? {} : { dangerouslyAllowBrowser }),
147
149
  });
148
150
 
@@ -224,6 +226,7 @@ export class AzureOpenAI extends OpenAI {
224
226
  schemes?: { bearerAuth?: boolean; adminAPIKeyAuth?: boolean },
225
227
  ): Promise<NullableHeaders | undefined> {
226
228
  const security = schemes ?? { bearerAuth: true, adminAPIKeyAuth: true };
229
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Azure accepts JavaScript credential configuration; distinguish static keys from callable token providers.
227
230
  if (security.bearerAuth && typeof this._options.apiKey === 'string') {
228
231
  return buildHeaders([{ 'api-key': this.apiKey }]);
229
232
  }
package/src/bedrock.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as Errors from './error';
2
2
  import { OpenAI } from './client';
3
+ import { resolveRealtimeAPIKey } from './internal/realtime-credentials';
3
4
  import type { ApiKeySetter, ClientOptions } from './client';
4
5
  import { assertNoDataResidency } from './internal/data-residency';
5
6
  import {
@@ -111,6 +112,7 @@ function addBedrockOutputText<ResponseT extends ResponsesAPI.Response>(response:
111
112
  function restoreBedrockStreamOutputText(responses: API.Responses): API.Responses {
112
113
  const stream = responses.stream.bind(responses);
113
114
 
115
+ // SAFETY: The wrapper forwards the original stream parameters and preserves its generic result, only repairing the final response's output_text property.
114
116
  responses.stream = ((body: ResponseStreamParams, options?: RequestOptions) => {
115
117
  const responseStream = stream(body, options);
116
118
  const finalResponse = responseStream.finalResponse.bind(responseStream);
@@ -161,6 +163,8 @@ export class BedrockOpenAI extends OpenAI {
161
163
  apiKey = readEnv('AWS_BEARER_TOKEN_BEDROCK') ?? null;
162
164
  }
163
165
 
166
+ // SAFETY: The widening keeps a runtime guard for JavaScript callers that supply an API-key function despite the declared string contract.
167
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Reject a JavaScript function supplied as a static Bedrock API key before it can become a credential.
164
168
  if (typeof (apiKey as unknown) === 'function') {
165
169
  throw new Errors.OpenAIError(
166
170
  'Pass refreshable Bedrock credentials via `bedrockTokenProvider`, not `apiKey`.',
@@ -225,11 +229,6 @@ export class BedrockOpenAI extends OpenAI {
225
229
  const configuredBaseURL = this._options.baseURL ?? this.baseURL;
226
230
  assertBedrockRequestOrigin(configuredBaseURL, this.buildURL(options.path, null, options.defaultBaseURL));
227
231
 
228
- const security = options.__security ?? { bearerAuth: true };
229
- if (security.adminAPIKeyAuth && !security.bearerAuth) {
230
- await this._callApiKey();
231
- }
232
-
233
232
  await super.prepareOptions(options);
234
233
  assertBedrockRequestOrigin(configuredBaseURL, this.buildURL(options.path, null, options.defaultBaseURL));
235
234
  }
@@ -240,6 +239,10 @@ export class BedrockOpenAI extends OpenAI {
240
239
  ): Promise<void> {
241
240
  assertBedrockRequestOrigin(this._options.baseURL ?? this.baseURL, context.url);
242
241
  await super.prepareRequest(request, context);
242
+ assertBedrockRequestOrigin(
243
+ this._options.baseURL ?? this.baseURL,
244
+ this.buildURL(context.options.path, null, context.options.defaultBaseURL),
245
+ );
243
246
  request.redirect = 'manual';
244
247
  }
245
248
 
@@ -248,8 +251,19 @@ export class BedrockOpenAI extends OpenAI {
248
251
  schemes?: { bearerAuth?: boolean; adminAPIKeyAuth?: boolean },
249
252
  ): Promise<NullableHeaders | undefined> {
250
253
  const security = schemes ?? { bearerAuth: true, adminAPIKeyAuth: true };
251
- const credential = this.apiKey;
252
- if ((security.bearerAuth || security.adminAPIKeyAuth) && credential !== null) {
254
+ if (security.bearerAuth || security.adminAPIKeyAuth) {
255
+ assertBedrockRequestOrigin(
256
+ this._options.baseURL ?? this.baseURL,
257
+ this.buildURL(opts.path, null, opts.defaultBaseURL),
258
+ );
259
+ const { apiKey: credential } = await resolveRealtimeAPIKey(this);
260
+ assertBedrockRequestOrigin(
261
+ this._options.baseURL ?? this.baseURL,
262
+ this.buildURL(opts.path, null, opts.defaultBaseURL),
263
+ );
264
+ if (credential === null) {
265
+ return undefined;
266
+ }
253
267
  assertValidBedrockBearerCredential(credential);
254
268
  try {
255
269
  return buildHeaders([{ Authorization: `Bearer ${credential}` }]);
@@ -270,8 +284,10 @@ export class BedrockOpenAI extends OpenAI {
270
284
  const bedrockTokenProvider =
271
285
  options.apiKey === undefined ? (options.bedrockTokenProvider ?? this.bedrockTokenProvider) : undefined;
272
286
 
287
+ // SAFETY: Bedrock options extend the base client options; forwarding them preserves the subclass's existing withOptions construction behavior.
273
288
  return super.withOptions({
274
289
  ...options,
290
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
275
291
  ...(bedrockTokenProvider ? { apiKey: undefined, bedrockTokenProvider } : {}),
276
292
  } as Partial<ClientOptions>);
277
293
  }
@@ -12,6 +12,7 @@ import { assertX509WebSocketSupported } from '../../internal/auth/x509-workload-
12
12
  /** Parses frame data without exposing malformed payloads through JSON syntax errors. */
13
13
  export function parseRealtimeEvent(data: string): RealtimeServerEvent {
14
14
  try {
15
+ // SAFETY: RealtimeServerEvent is the API wire contract; JSON syntax is checked here while future event types remain accepted at runtime.
15
16
  return JSON.parse(data) as RealtimeServerEvent;
16
17
  } catch (error) {
17
18
  if (error instanceof SyntaxError) {
@@ -86,6 +87,7 @@ type RealtimeEvents = Simplify<
86
87
  type: EventType;
87
88
  }
88
89
  >,
90
+ // oxlint-disable-next-line anti-slop/no-unknown-returns -- Preserve the published event-callback contract, which accepts and ignores arbitrary return values.
89
91
  ) => unknown;
90
92
  }
91
93
  >;