openai 6.44.0 → 6.46.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 (482) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +85 -102
  3. package/_vendor/zod-to-json-schema/parseDef.d.mts.map +1 -1
  4. package/_vendor/zod-to-json-schema/parseDef.d.ts.map +1 -1
  5. package/_vendor/zod-to-json-schema/parseDef.js +41 -15
  6. package/_vendor/zod-to-json-schema/parseDef.js.map +1 -1
  7. package/_vendor/zod-to-json-schema/parseDef.mjs +41 -15
  8. package/_vendor/zod-to-json-schema/parseDef.mjs.map +1 -1
  9. package/_vendor/zod-to-json-schema/parsers/branded.d.mts +1 -1
  10. package/_vendor/zod-to-json-schema/parsers/branded.d.mts.map +1 -1
  11. package/_vendor/zod-to-json-schema/parsers/branded.d.ts +1 -1
  12. package/_vendor/zod-to-json-schema/parsers/branded.d.ts.map +1 -1
  13. package/_vendor/zod-to-json-schema/parsers/branded.js +2 -2
  14. package/_vendor/zod-to-json-schema/parsers/branded.js.map +1 -1
  15. package/_vendor/zod-to-json-schema/parsers/branded.mjs +2 -2
  16. package/_vendor/zod-to-json-schema/parsers/branded.mjs.map +1 -1
  17. package/_vendor/zod-to-json-schema/parsers/catch.d.mts +1 -1
  18. package/_vendor/zod-to-json-schema/parsers/catch.d.mts.map +1 -1
  19. package/_vendor/zod-to-json-schema/parsers/catch.d.ts +1 -1
  20. package/_vendor/zod-to-json-schema/parsers/catch.d.ts.map +1 -1
  21. package/_vendor/zod-to-json-schema/parsers/catch.js +2 -2
  22. package/_vendor/zod-to-json-schema/parsers/catch.js.map +1 -1
  23. package/_vendor/zod-to-json-schema/parsers/catch.mjs +2 -2
  24. package/_vendor/zod-to-json-schema/parsers/catch.mjs.map +1 -1
  25. package/_vendor/zod-to-json-schema/parsers/default.d.mts +1 -1
  26. package/_vendor/zod-to-json-schema/parsers/default.d.mts.map +1 -1
  27. package/_vendor/zod-to-json-schema/parsers/default.d.ts +1 -1
  28. package/_vendor/zod-to-json-schema/parsers/default.d.ts.map +1 -1
  29. package/_vendor/zod-to-json-schema/parsers/default.js +2 -2
  30. package/_vendor/zod-to-json-schema/parsers/default.js.map +1 -1
  31. package/_vendor/zod-to-json-schema/parsers/default.mjs +2 -2
  32. package/_vendor/zod-to-json-schema/parsers/default.mjs.map +1 -1
  33. package/_vendor/zod-to-json-schema/parsers/nullable.d.mts +1 -1
  34. package/_vendor/zod-to-json-schema/parsers/nullable.d.mts.map +1 -1
  35. package/_vendor/zod-to-json-schema/parsers/nullable.d.ts +1 -1
  36. package/_vendor/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
  37. package/_vendor/zod-to-json-schema/parsers/nullable.js +2 -2
  38. package/_vendor/zod-to-json-schema/parsers/nullable.js.map +1 -1
  39. package/_vendor/zod-to-json-schema/parsers/nullable.mjs +2 -2
  40. package/_vendor/zod-to-json-schema/parsers/nullable.mjs.map +1 -1
  41. package/_vendor/zod-to-json-schema/parsers/optional.d.mts +1 -1
  42. package/_vendor/zod-to-json-schema/parsers/optional.d.mts.map +1 -1
  43. package/_vendor/zod-to-json-schema/parsers/optional.d.ts +1 -1
  44. package/_vendor/zod-to-json-schema/parsers/optional.d.ts.map +1 -1
  45. package/_vendor/zod-to-json-schema/parsers/optional.js +3 -3
  46. package/_vendor/zod-to-json-schema/parsers/optional.js.map +1 -1
  47. package/_vendor/zod-to-json-schema/parsers/optional.mjs +3 -3
  48. package/_vendor/zod-to-json-schema/parsers/optional.mjs.map +1 -1
  49. package/_vendor/zod-to-json-schema/parsers/pipeline.d.mts +1 -1
  50. package/_vendor/zod-to-json-schema/parsers/pipeline.d.mts.map +1 -1
  51. package/_vendor/zod-to-json-schema/parsers/pipeline.d.ts +1 -1
  52. package/_vendor/zod-to-json-schema/parsers/pipeline.d.ts.map +1 -1
  53. package/_vendor/zod-to-json-schema/parsers/pipeline.js +3 -3
  54. package/_vendor/zod-to-json-schema/parsers/pipeline.js.map +1 -1
  55. package/_vendor/zod-to-json-schema/parsers/pipeline.mjs +3 -3
  56. package/_vendor/zod-to-json-schema/parsers/pipeline.mjs.map +1 -1
  57. package/_vendor/zod-to-json-schema/parsers/promise.d.mts +1 -1
  58. package/_vendor/zod-to-json-schema/parsers/promise.d.mts.map +1 -1
  59. package/_vendor/zod-to-json-schema/parsers/promise.d.ts +1 -1
  60. package/_vendor/zod-to-json-schema/parsers/promise.d.ts.map +1 -1
  61. package/_vendor/zod-to-json-schema/parsers/promise.js +2 -2
  62. package/_vendor/zod-to-json-schema/parsers/promise.js.map +1 -1
  63. package/_vendor/zod-to-json-schema/parsers/promise.mjs +2 -2
  64. package/_vendor/zod-to-json-schema/parsers/promise.mjs.map +1 -1
  65. package/_vendor/zod-to-json-schema/parsers/readonly.d.mts +1 -1
  66. package/_vendor/zod-to-json-schema/parsers/readonly.d.mts.map +1 -1
  67. package/_vendor/zod-to-json-schema/parsers/readonly.d.ts +1 -1
  68. package/_vendor/zod-to-json-schema/parsers/readonly.d.ts.map +1 -1
  69. package/_vendor/zod-to-json-schema/parsers/readonly.js +2 -2
  70. package/_vendor/zod-to-json-schema/parsers/readonly.js.map +1 -1
  71. package/_vendor/zod-to-json-schema/parsers/readonly.mjs +2 -2
  72. package/_vendor/zod-to-json-schema/parsers/readonly.mjs.map +1 -1
  73. package/auth/workload-identity-auth.d.mts.map +1 -1
  74. package/auth/workload-identity-auth.d.ts.map +1 -1
  75. package/auth/workload-identity-auth.js +12 -4
  76. package/auth/workload-identity-auth.js.map +1 -1
  77. package/auth/workload-identity-auth.mjs +13 -5
  78. package/auth/workload-identity-auth.mjs.map +1 -1
  79. package/azure.d.mts +3 -1
  80. package/azure.d.mts.map +1 -1
  81. package/azure.d.ts +3 -1
  82. package/azure.d.ts.map +1 -1
  83. package/azure.js.map +1 -1
  84. package/azure.mjs.map +1 -1
  85. package/beta/realtime/internal-base.d.mts +14 -1
  86. package/beta/realtime/internal-base.d.mts.map +1 -1
  87. package/beta/realtime/internal-base.d.ts +14 -1
  88. package/beta/realtime/internal-base.d.ts.map +1 -1
  89. package/beta/realtime/internal-base.js +21 -5
  90. package/beta/realtime/internal-base.js.map +1 -1
  91. package/beta/realtime/internal-base.mjs +21 -5
  92. package/beta/realtime/internal-base.mjs.map +1 -1
  93. package/beta/realtime/websocket.d.mts +3 -5
  94. package/beta/realtime/websocket.d.mts.map +1 -1
  95. package/beta/realtime/websocket.d.ts +3 -5
  96. package/beta/realtime/websocket.d.ts.map +1 -1
  97. package/beta/realtime/websocket.js +2 -3
  98. package/beta/realtime/websocket.js.map +1 -1
  99. package/beta/realtime/websocket.mjs +3 -4
  100. package/beta/realtime/websocket.mjs.map +1 -1
  101. package/beta/realtime/ws.d.mts +3 -5
  102. package/beta/realtime/ws.d.mts.map +1 -1
  103. package/beta/realtime/ws.d.ts +3 -5
  104. package/beta/realtime/ws.d.ts.map +1 -1
  105. package/beta/realtime/ws.js +2 -3
  106. package/beta/realtime/ws.js.map +1 -1
  107. package/beta/realtime/ws.mjs +3 -4
  108. package/beta/realtime/ws.mjs.map +1 -1
  109. package/client.d.mts +9 -1
  110. package/client.d.mts.map +1 -1
  111. package/client.d.ts +9 -1
  112. package/client.d.ts.map +1 -1
  113. package/client.js +56 -9
  114. package/client.js.map +1 -1
  115. package/client.mjs +56 -9
  116. package/client.mjs.map +1 -1
  117. package/helpers/audio.d.mts.map +1 -1
  118. package/helpers/audio.d.ts.map +1 -1
  119. package/helpers/audio.js +16 -3
  120. package/helpers/audio.js.map +1 -1
  121. package/helpers/audio.mjs +17 -4
  122. package/helpers/audio.mjs.map +1 -1
  123. package/helpers/zod.d.mts.map +1 -1
  124. package/helpers/zod.d.ts.map +1 -1
  125. package/helpers/zod.js +12 -0
  126. package/helpers/zod.js.map +1 -1
  127. package/helpers/zod.mjs +12 -0
  128. package/helpers/zod.mjs.map +1 -1
  129. package/internal/bedrock.d.mts +34 -0
  130. package/internal/bedrock.d.mts.map +1 -0
  131. package/internal/bedrock.d.ts +34 -0
  132. package/internal/bedrock.d.ts.map +1 -0
  133. package/internal/bedrock.js +107 -0
  134. package/internal/bedrock.js.map +1 -0
  135. package/internal/bedrock.mjs +99 -0
  136. package/internal/bedrock.mjs.map +1 -0
  137. package/internal/provider.d.mts +23 -0
  138. package/internal/provider.d.mts.map +1 -0
  139. package/internal/provider.d.ts +23 -0
  140. package/internal/provider.d.ts.map +1 -0
  141. package/internal/provider.js +36 -0
  142. package/internal/provider.js.map +1 -0
  143. package/internal/provider.mjs +32 -0
  144. package/internal/provider.mjs.map +1 -0
  145. package/internal/utils/log.d.mts.map +1 -1
  146. package/internal/utils/log.d.ts.map +1 -1
  147. package/internal/utils/log.js +1 -0
  148. package/internal/utils/log.js.map +1 -1
  149. package/internal/utils/log.mjs +1 -0
  150. package/internal/utils/log.mjs.map +1 -1
  151. package/lib/AbstractChatCompletionRunner.d.mts +15 -4
  152. package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
  153. package/lib/AbstractChatCompletionRunner.d.ts +15 -4
  154. package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
  155. package/lib/AbstractChatCompletionRunner.js +77 -40
  156. package/lib/AbstractChatCompletionRunner.js.map +1 -1
  157. package/lib/AbstractChatCompletionRunner.mjs +77 -40
  158. package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
  159. package/lib/AssistantStream.d.mts.map +1 -1
  160. package/lib/AssistantStream.d.ts.map +1 -1
  161. package/lib/AssistantStream.js +5 -25
  162. package/lib/AssistantStream.js.map +1 -1
  163. package/lib/AssistantStream.mjs +5 -25
  164. package/lib/AssistantStream.mjs.map +1 -1
  165. package/lib/ChatCompletionRunner.js +1 -1
  166. package/lib/ChatCompletionRunner.js.map +1 -1
  167. package/lib/ChatCompletionRunner.mjs +1 -1
  168. package/lib/ChatCompletionRunner.mjs.map +1 -1
  169. package/lib/ChatCompletionStream.d.mts.map +1 -1
  170. package/lib/ChatCompletionStream.d.ts.map +1 -1
  171. package/lib/ChatCompletionStream.js +11 -17
  172. package/lib/ChatCompletionStream.js.map +1 -1
  173. package/lib/ChatCompletionStream.mjs +11 -17
  174. package/lib/ChatCompletionStream.mjs.map +1 -1
  175. package/lib/ChatCompletionStreamingRunner.js +1 -1
  176. package/lib/ChatCompletionStreamingRunner.js.map +1 -1
  177. package/lib/ChatCompletionStreamingRunner.mjs +1 -1
  178. package/lib/ChatCompletionStreamingRunner.mjs.map +1 -1
  179. package/lib/EventEmitter.d.mts.map +1 -1
  180. package/lib/EventEmitter.d.ts.map +1 -1
  181. package/lib/EventEmitter.js +12 -2
  182. package/lib/EventEmitter.js.map +1 -1
  183. package/lib/EventEmitter.mjs +12 -2
  184. package/lib/EventEmitter.mjs.map +1 -1
  185. package/lib/EventStream.d.mts +1 -0
  186. package/lib/EventStream.d.mts.map +1 -1
  187. package/lib/EventStream.d.ts +1 -0
  188. package/lib/EventStream.d.ts.map +1 -1
  189. package/lib/EventStream.js +19 -2
  190. package/lib/EventStream.js.map +1 -1
  191. package/lib/EventStream.mjs +19 -2
  192. package/lib/EventStream.mjs.map +1 -1
  193. package/lib/ResponsesParser.d.mts.map +1 -1
  194. package/lib/ResponsesParser.d.ts.map +1 -1
  195. package/lib/ResponsesParser.js +12 -4
  196. package/lib/ResponsesParser.js.map +1 -1
  197. package/lib/ResponsesParser.mjs +12 -4
  198. package/lib/ResponsesParser.mjs.map +1 -1
  199. package/lib/responses/ResponseAccumulator.d.mts +15 -0
  200. package/lib/responses/ResponseAccumulator.d.mts.map +1 -0
  201. package/lib/responses/ResponseAccumulator.d.ts +15 -0
  202. package/lib/responses/ResponseAccumulator.d.ts.map +1 -0
  203. package/lib/responses/ResponseAccumulator.js +403 -0
  204. package/lib/responses/ResponseAccumulator.js.map +1 -0
  205. package/lib/responses/ResponseAccumulator.mjs +400 -0
  206. package/lib/responses/ResponseAccumulator.mjs.map +1 -0
  207. package/lib/responses/ResponseInputItems.d.mts +19 -0
  208. package/lib/responses/ResponseInputItems.d.mts.map +1 -0
  209. package/lib/responses/ResponseInputItems.d.ts +19 -0
  210. package/lib/responses/ResponseInputItems.d.ts.map +1 -0
  211. package/lib/responses/ResponseInputItems.js +104 -0
  212. package/lib/responses/ResponseInputItems.js.map +1 -0
  213. package/lib/responses/ResponseInputItems.mjs +100 -0
  214. package/lib/responses/ResponseInputItems.mjs.map +1 -0
  215. package/lib/responses/ResponseStream.d.mts.map +1 -1
  216. package/lib/responses/ResponseStream.d.ts.map +1 -1
  217. package/lib/responses/ResponseStream.js +5 -90
  218. package/lib/responses/ResponseStream.js.map +1 -1
  219. package/lib/responses/ResponseStream.mjs +5 -90
  220. package/lib/responses/ResponseStream.mjs.map +1 -1
  221. package/package.json +24 -1
  222. package/providers/bedrock/aws.d.mts +24 -0
  223. package/providers/bedrock/aws.d.mts.map +1 -0
  224. package/providers/bedrock/aws.d.ts +24 -0
  225. package/providers/bedrock/aws.d.ts.map +1 -0
  226. package/providers/bedrock/aws.js +170 -0
  227. package/providers/bedrock/aws.js.map +1 -0
  228. package/providers/bedrock/aws.mjs +166 -0
  229. package/providers/bedrock/aws.mjs.map +1 -0
  230. package/providers/bedrock.d.mts +7 -0
  231. package/providers/bedrock.d.mts.map +1 -0
  232. package/providers/bedrock.d.ts +7 -0
  233. package/providers/bedrock.d.ts.map +1 -0
  234. package/providers/bedrock.js +26 -0
  235. package/providers/bedrock.js.map +1 -0
  236. package/providers/bedrock.mjs +22 -0
  237. package/providers/bedrock.mjs.map +1 -0
  238. package/realtime/internal-base.d.mts +28 -1
  239. package/realtime/internal-base.d.mts.map +1 -1
  240. package/realtime/internal-base.d.ts +28 -1
  241. package/realtime/internal-base.d.ts.map +1 -1
  242. package/realtime/internal-base.js +50 -7
  243. package/realtime/internal-base.js.map +1 -1
  244. package/realtime/internal-base.mjs +49 -7
  245. package/realtime/internal-base.mjs.map +1 -1
  246. package/realtime/websocket.d.mts +4 -7
  247. package/realtime/websocket.d.mts.map +1 -1
  248. package/realtime/websocket.d.ts +4 -7
  249. package/realtime/websocket.d.ts.map +1 -1
  250. package/realtime/websocket.js +4 -8
  251. package/realtime/websocket.js.map +1 -1
  252. package/realtime/websocket.mjs +5 -9
  253. package/realtime/websocket.mjs.map +1 -1
  254. package/realtime/ws.d.mts +4 -7
  255. package/realtime/ws.d.mts.map +1 -1
  256. package/realtime/ws.d.ts +4 -7
  257. package/realtime/ws.d.ts.map +1 -1
  258. package/realtime/ws.js +4 -8
  259. package/realtime/ws.js.map +1 -1
  260. package/realtime/ws.mjs +5 -9
  261. package/realtime/ws.mjs.map +1 -1
  262. package/resources/beta/assistants.d.mts +12 -26
  263. package/resources/beta/assistants.d.mts.map +1 -1
  264. package/resources/beta/assistants.d.ts +12 -26
  265. package/resources/beta/assistants.d.ts.map +1 -1
  266. package/resources/beta/beta.d.mts +6 -1
  267. package/resources/beta/beta.d.mts.map +1 -1
  268. package/resources/beta/beta.d.ts +6 -1
  269. package/resources/beta/beta.d.ts.map +1 -1
  270. package/resources/beta/beta.js +4 -0
  271. package/resources/beta/beta.js.map +1 -1
  272. package/resources/beta/beta.mjs +4 -0
  273. package/resources/beta/beta.mjs.map +1 -1
  274. package/resources/beta/index.d.mts +1 -0
  275. package/resources/beta/index.d.mts.map +1 -1
  276. package/resources/beta/index.d.ts +1 -0
  277. package/resources/beta/index.d.ts.map +1 -1
  278. package/resources/beta/index.js +5 -3
  279. package/resources/beta/index.js.map +1 -1
  280. package/resources/beta/index.mjs +1 -0
  281. package/resources/beta/index.mjs.map +1 -1
  282. package/resources/beta/responses/index.d.mts +6 -0
  283. package/resources/beta/responses/index.d.mts.map +1 -0
  284. package/resources/beta/responses/index.d.ts +6 -0
  285. package/resources/beta/responses/index.d.ts.map +1 -0
  286. package/resources/beta/responses/index.js +11 -0
  287. package/resources/beta/responses/index.js.map +1 -0
  288. package/resources/beta/responses/index.mjs +5 -0
  289. package/resources/beta/responses/index.mjs.map +1 -0
  290. package/resources/beta/responses/input-items.d.mts +69 -0
  291. package/resources/beta/responses/input-items.d.mts.map +1 -0
  292. package/resources/beta/responses/input-items.d.ts +69 -0
  293. package/resources/beta/responses/input-items.d.ts.map +1 -0
  294. package/resources/beta/responses/input-items.js +37 -0
  295. package/resources/beta/responses/input-items.js.map +1 -0
  296. package/resources/beta/responses/input-items.mjs +33 -0
  297. package/resources/beta/responses/input-items.mjs.map +1 -0
  298. package/resources/beta/responses/input-tokens.d.mts +191 -0
  299. package/resources/beta/responses/input-tokens.d.mts.map +1 -0
  300. package/resources/beta/responses/input-tokens.d.ts +191 -0
  301. package/resources/beta/responses/input-tokens.d.ts.map +1 -0
  302. package/resources/beta/responses/input-tokens.js +34 -0
  303. package/resources/beta/responses/input-tokens.js.map +1 -0
  304. package/resources/beta/responses/input-tokens.mjs +30 -0
  305. package/resources/beta/responses/input-tokens.mjs.map +1 -0
  306. package/resources/beta/responses/internal-base.d.mts +71 -0
  307. package/resources/beta/responses/internal-base.d.mts.map +1 -0
  308. package/resources/beta/responses/internal-base.d.ts +71 -0
  309. package/resources/beta/responses/internal-base.d.ts.map +1 -0
  310. package/resources/beta/responses/internal-base.js +48 -0
  311. package/resources/beta/responses/internal-base.js.map +1 -0
  312. package/resources/beta/responses/internal-base.mjs +42 -0
  313. package/resources/beta/responses/internal-base.mjs.map +1 -0
  314. package/resources/beta/responses/responses.d.mts +9985 -0
  315. package/resources/beta/responses/responses.d.mts.map +1 -0
  316. package/resources/beta/responses/responses.d.ts +9985 -0
  317. package/resources/beta/responses/responses.d.ts.map +1 -0
  318. package/resources/beta/responses/responses.js +121 -0
  319. package/resources/beta/responses/responses.js.map +1 -0
  320. package/resources/beta/responses/responses.mjs +116 -0
  321. package/resources/beta/responses/responses.mjs.map +1 -0
  322. package/resources/beta/responses/ws-base.d.mts +106 -0
  323. package/resources/beta/responses/ws-base.d.mts.map +1 -0
  324. package/resources/beta/responses/ws-base.d.ts +106 -0
  325. package/resources/beta/responses/ws-base.d.ts.map +1 -0
  326. package/resources/beta/responses/ws-base.js +476 -0
  327. package/resources/beta/responses/ws-base.js.map +1 -0
  328. package/resources/beta/responses/ws-base.mjs +472 -0
  329. package/resources/beta/responses/ws-base.mjs.map +1 -0
  330. package/resources/beta/responses/ws.d.mts +13 -0
  331. package/resources/beta/responses/ws.d.mts.map +1 -0
  332. package/resources/beta/responses/ws.d.ts +13 -0
  333. package/resources/beta/responses/ws.d.ts.map +1 -0
  334. package/resources/beta/responses/ws.js +31 -0
  335. package/resources/beta/responses/ws.js.map +1 -0
  336. package/resources/beta/responses/ws.mjs +26 -0
  337. package/resources/beta/responses/ws.mjs.map +1 -0
  338. package/resources/beta/responses.d.mts +2 -0
  339. package/resources/beta/responses.d.mts.map +1 -0
  340. package/resources/beta/responses.d.ts +2 -0
  341. package/resources/beta/responses.d.ts.map +1 -0
  342. package/resources/beta/responses.js +6 -0
  343. package/resources/beta/responses.js.map +1 -0
  344. package/resources/beta/responses.mjs +3 -0
  345. package/resources/beta/responses.mjs.map +1 -0
  346. package/resources/beta/threads/runs/runs.d.mts +6 -13
  347. package/resources/beta/threads/runs/runs.d.mts.map +1 -1
  348. package/resources/beta/threads/runs/runs.d.ts +6 -13
  349. package/resources/beta/threads/runs/runs.d.ts.map +1 -1
  350. package/resources/beta/threads/runs/runs.js.map +1 -1
  351. package/resources/beta/threads/runs/runs.mjs.map +1 -1
  352. package/resources/chat/completions/completions.d.mts +155 -14
  353. package/resources/chat/completions/completions.d.mts.map +1 -1
  354. package/resources/chat/completions/completions.d.ts +155 -14
  355. package/resources/chat/completions/completions.d.ts.map +1 -1
  356. package/resources/chat/completions/completions.js.map +1 -1
  357. package/resources/chat/completions/completions.mjs.map +1 -1
  358. package/resources/completions.d.mts +4 -0
  359. package/resources/completions.d.mts.map +1 -1
  360. package/resources/completions.d.ts +4 -0
  361. package/resources/completions.d.ts.map +1 -1
  362. package/resources/conversations/conversations.d.mts +19 -0
  363. package/resources/conversations/conversations.d.mts.map +1 -1
  364. package/resources/conversations/conversations.d.ts +19 -0
  365. package/resources/conversations/conversations.d.ts.map +1 -1
  366. package/resources/conversations/conversations.js.map +1 -1
  367. package/resources/conversations/conversations.mjs.map +1 -1
  368. package/resources/conversations/items.d.mts +45 -1
  369. package/resources/conversations/items.d.mts.map +1 -1
  370. package/resources/conversations/items.d.ts +45 -1
  371. package/resources/conversations/items.d.ts.map +1 -1
  372. package/resources/evals/runs/runs.d.mts +66 -143
  373. package/resources/evals/runs/runs.d.mts.map +1 -1
  374. package/resources/evals/runs/runs.d.ts +66 -143
  375. package/resources/evals/runs/runs.d.ts.map +1 -1
  376. package/resources/evals/runs/runs.js.map +1 -1
  377. package/resources/evals/runs/runs.mjs.map +1 -1
  378. package/resources/graders/grader-models.d.mts +6 -13
  379. package/resources/graders/grader-models.d.mts.map +1 -1
  380. package/resources/graders/grader-models.d.ts +6 -13
  381. package/resources/graders/grader-models.d.ts.map +1 -1
  382. package/resources/realtime/calls.d.mts +1 -1
  383. package/resources/realtime/calls.d.mts.map +1 -1
  384. package/resources/realtime/calls.d.ts +1 -1
  385. package/resources/realtime/calls.d.ts.map +1 -1
  386. package/resources/realtime/client-secrets.d.mts +5 -1
  387. package/resources/realtime/client-secrets.d.mts.map +1 -1
  388. package/resources/realtime/client-secrets.d.ts +5 -1
  389. package/resources/realtime/client-secrets.d.ts.map +1 -1
  390. package/resources/realtime/realtime.d.mts +9 -1
  391. package/resources/realtime/realtime.d.mts.map +1 -1
  392. package/resources/realtime/realtime.d.ts +9 -1
  393. package/resources/realtime/realtime.d.ts.map +1 -1
  394. package/resources/realtime/realtime.js.map +1 -1
  395. package/resources/realtime/realtime.mjs.map +1 -1
  396. package/resources/responses/input-tokens.d.mts +7 -1
  397. package/resources/responses/input-tokens.d.mts.map +1 -1
  398. package/resources/responses/input-tokens.d.ts +7 -1
  399. package/resources/responses/input-tokens.d.ts.map +1 -1
  400. package/resources/responses/responses.d.mts +816 -24
  401. package/resources/responses/responses.d.mts.map +1 -1
  402. package/resources/responses/responses.d.ts +816 -24
  403. package/resources/responses/responses.d.ts.map +1 -1
  404. package/resources/responses/responses.js +1 -1
  405. package/resources/responses/responses.js.map +1 -1
  406. package/resources/responses/responses.mjs +1 -1
  407. package/resources/responses/responses.mjs.map +1 -1
  408. package/resources/shared.d.mts +20 -28
  409. package/resources/shared.d.mts.map +1 -1
  410. package/resources/shared.d.ts +20 -28
  411. package/resources/shared.d.ts.map +1 -1
  412. package/resources/webhooks/webhooks.d.mts +54 -2
  413. package/resources/webhooks/webhooks.d.mts.map +1 -1
  414. package/resources/webhooks/webhooks.d.ts +54 -2
  415. package/resources/webhooks/webhooks.d.ts.map +1 -1
  416. package/src/_vendor/zod-to-json-schema/parseDef.ts +44 -16
  417. package/src/_vendor/zod-to-json-schema/parsers/branded.ts +2 -2
  418. package/src/_vendor/zod-to-json-schema/parsers/catch.ts +2 -2
  419. package/src/_vendor/zod-to-json-schema/parsers/default.ts +6 -2
  420. package/src/_vendor/zod-to-json-schema/parsers/nullable.ts +13 -5
  421. package/src/_vendor/zod-to-json-schema/parsers/optional.ts +14 -6
  422. package/src/_vendor/zod-to-json-schema/parsers/pipeline.ts +3 -2
  423. package/src/_vendor/zod-to-json-schema/parsers/promise.ts +6 -2
  424. package/src/_vendor/zod-to-json-schema/parsers/readonly.ts +2 -2
  425. package/src/auth/workload-identity-auth.ts +16 -5
  426. package/src/azure.ts +4 -1
  427. package/src/beta/realtime/internal-base.ts +43 -5
  428. package/src/beta/realtime/websocket.ts +10 -7
  429. package/src/beta/realtime/ws.ts +10 -7
  430. package/src/client.ts +80 -18
  431. package/src/helpers/audio.ts +18 -4
  432. package/src/helpers/zod.ts +16 -0
  433. package/src/internal/bedrock.ts +153 -0
  434. package/src/internal/provider.ts +60 -0
  435. package/src/internal/utils/log.ts +1 -0
  436. package/src/lib/AbstractChatCompletionRunner.ts +111 -45
  437. package/src/lib/AssistantStream.ts +5 -21
  438. package/src/lib/ChatCompletionRunner.ts +1 -1
  439. package/src/lib/ChatCompletionStream.ts +11 -15
  440. package/src/lib/ChatCompletionStreamingRunner.ts +1 -1
  441. package/src/lib/EventEmitter.ts +11 -2
  442. package/src/lib/EventStream.ts +20 -0
  443. package/src/lib/ResponsesParser.ts +18 -4
  444. package/src/lib/responses/ResponseAccumulator.ts +421 -0
  445. package/src/lib/responses/ResponseInputItems.ts +129 -0
  446. package/src/lib/responses/ResponseStream.ts +4 -93
  447. package/src/providers/bedrock/aws.ts +255 -0
  448. package/src/providers/bedrock.ts +33 -0
  449. package/src/realtime/internal-base.ts +90 -7
  450. package/src/realtime/websocket.ts +15 -13
  451. package/src/realtime/ws.ts +15 -13
  452. package/src/resources/beta/assistants.ts +12 -26
  453. package/src/resources/beta/beta.ts +330 -2
  454. package/src/resources/beta/index.ts +163 -0
  455. package/src/resources/beta/responses/index.ts +169 -0
  456. package/src/resources/beta/responses/input-items.ts +105 -0
  457. package/src/resources/beta/responses/input-tokens.ts +245 -0
  458. package/src/resources/beta/responses/internal-base.ts +117 -0
  459. package/src/resources/beta/responses/responses.ts +12632 -0
  460. package/src/resources/beta/responses/ws-base.ts +615 -0
  461. package/src/resources/beta/responses/ws.ts +38 -0
  462. package/src/resources/beta/responses.ts +3 -0
  463. package/src/resources/beta/threads/runs/runs.ts +6 -13
  464. package/src/resources/chat/completions/completions.ts +171 -14
  465. package/src/resources/completions.ts +5 -0
  466. package/src/resources/conversations/conversations.ts +21 -0
  467. package/src/resources/conversations/items.ts +56 -0
  468. package/src/resources/evals/runs/runs.ts +66 -143
  469. package/src/resources/graders/grader-models.ts +6 -13
  470. package/src/resources/realtime/calls.ts +2 -0
  471. package/src/resources/realtime/client-secrets.ts +7 -0
  472. package/src/resources/realtime/realtime.ts +12 -0
  473. package/src/resources/responses/input-tokens.ts +8 -0
  474. package/src/resources/responses/responses.ts +950 -15
  475. package/src/resources/shared.ts +23 -27
  476. package/src/resources/webhooks/api.md +1 -0
  477. package/src/resources/webhooks/webhooks.ts +65 -1
  478. package/src/version.ts +1 -1
  479. package/version.d.mts +1 -1
  480. package/version.d.ts +1 -1
  481. package/version.js +1 -1
  482. package/version.mjs +1 -1
@@ -0,0 +1,255 @@
1
+ import { defaultProvider } from '@aws-sdk/credential-provider-node';
2
+ import { Hash } from '@smithy/hash-node';
3
+ import { SignatureV4 } from '@smithy/signature-v4';
4
+
5
+ import * as Errors from '../../error';
6
+ import type { BodyInit } from '../../internal/builtin-types';
7
+ import {
8
+ assertProviderOwnsAuthorization,
9
+ errorWithCause,
10
+ normalizeOptionalString,
11
+ resolveBedrockBearerAuth,
12
+ resolveBedrockEndpoint,
13
+ type BedrockBearerOptions,
14
+ type BedrockEndpointOptions,
15
+ type BedrockRequestAuth,
16
+ } from '../../internal/bedrock';
17
+ import { createProvider, type Provider, type ProviderRequestContext } from '../../internal/provider';
18
+ import type { FinalizedRequestInit } from '../../internal/types';
19
+
20
+ const BEDROCK_SERVICE = 'bedrock-mantle';
21
+
22
+ export interface AwsCredentialIdentity {
23
+ accessKeyId: string;
24
+ secretAccessKey: string;
25
+ sessionToken?: string;
26
+ expiration?: Date;
27
+ }
28
+
29
+ export type AwsCredentialsProvider = () => AwsCredentialIdentity | Promise<AwsCredentialIdentity>;
30
+
31
+ export interface BedrockProviderOptions extends BedrockEndpointOptions, BedrockBearerOptions {
32
+ /** Explicit AWS access key ID. Must be paired with secretAccessKey. */
33
+ accessKeyId?: string | undefined;
34
+
35
+ /** Explicit AWS secret access key. Must be paired with accessKeyId. */
36
+ secretAccessKey?: string | undefined;
37
+
38
+ /** Optional session token for explicit temporary AWS credentials. */
39
+ sessionToken?: string | undefined;
40
+
41
+ /** Explicit AWS shared-config profile. */
42
+ profile?: string | undefined;
43
+
44
+ /** A refreshable provider returning AWS credentials. */
45
+ credentialProvider?: AwsCredentialsProvider | undefined;
46
+ }
47
+
48
+ function validateStaticCredentials(options: BedrockProviderOptions): AwsCredentialIdentity | undefined {
49
+ const hasAccessKey = options.accessKeyId !== undefined;
50
+ const hasSecretKey = options.secretAccessKey !== undefined;
51
+ if (hasAccessKey !== hasSecretKey || (options.sessionToken !== undefined && !hasAccessKey)) {
52
+ throw new Errors.OpenAIError(
53
+ 'The `accessKeyId` and `secretAccessKey` options must be provided together. A `sessionToken` may only be used with both.',
54
+ );
55
+ }
56
+ if (!hasAccessKey) return undefined;
57
+
58
+ if (
59
+ typeof options.accessKeyId !== 'string' ||
60
+ !options.accessKeyId.trim() ||
61
+ typeof options.secretAccessKey !== 'string' ||
62
+ !options.secretAccessKey.trim()
63
+ ) {
64
+ throw new Errors.OpenAIError(
65
+ 'Static AWS credentials require non-empty `accessKeyId` and `secretAccessKey` values.',
66
+ );
67
+ }
68
+ if (
69
+ options.sessionToken !== undefined &&
70
+ (typeof options.sessionToken !== 'string' || !options.sessionToken.trim())
71
+ ) {
72
+ throw new Errors.OpenAIError('A static AWS `sessionToken` must not be empty when provided.');
73
+ }
74
+
75
+ return {
76
+ accessKeyId: options.accessKeyId,
77
+ secretAccessKey: options.secretAccessKey,
78
+ ...(options.sessionToken ? { sessionToken: options.sessionToken } : {}),
79
+ };
80
+ }
81
+
82
+ function requestTarget(parsedURL: URL): { path: string; query: Record<string, string | string[]> } {
83
+ const query: Record<string, string | string[]> = {};
84
+ for (const [name, value] of parsedURL.searchParams) {
85
+ const existing = query[name];
86
+ query[name] =
87
+ existing === undefined ? value
88
+ : typeof existing === 'string' ? [existing, value]
89
+ : [...existing, value];
90
+ }
91
+ return { path: parsedURL.pathname, query };
92
+ }
93
+
94
+ function signableBody(body: BodyInit | null | undefined): string | ArrayBuffer | ArrayBufferView | undefined {
95
+ if (body === undefined || body === null) return undefined;
96
+ if (typeof body === 'string' || body instanceof ArrayBuffer || ArrayBuffer.isView(body)) return body;
97
+ throw new Errors.OpenAIError(
98
+ "The SDK's Bedrock SigV4 mode requires a replayable request body. Buffer the body before sending or use bearer authentication.",
99
+ );
100
+ }
101
+
102
+ function validateCredentialIdentity(identity: AwsCredentialIdentity): AwsCredentialIdentity {
103
+ if (
104
+ typeof identity?.accessKeyId !== 'string' ||
105
+ !identity.accessKeyId.trim() ||
106
+ typeof identity.secretAccessKey !== 'string' ||
107
+ !identity.secretAccessKey.trim() ||
108
+ (identity.sessionToken !== undefined &&
109
+ (typeof identity.sessionToken !== 'string' || !identity.sessionToken.trim()))
110
+ ) {
111
+ throw new Errors.OpenAIError(
112
+ 'Failed to resolve AWS credentials for Bedrock. Verify your AWS profile, environment variables, or runtime identity configuration and try again.',
113
+ );
114
+ }
115
+ return identity;
116
+ }
117
+
118
+ class BedrockSigV4Auth implements BedrockRequestAuth {
119
+ private signer: SignatureV4 | undefined;
120
+ private resolvedCredentialsProvider: (() => Promise<AwsCredentialIdentity>) | undefined;
121
+
122
+ constructor(
123
+ private readonly options: {
124
+ region: string;
125
+ staticCredentials?: AwsCredentialIdentity | undefined;
126
+ profile?: string | undefined;
127
+ credentialProvider?: AwsCredentialsProvider | undefined;
128
+ usesDefaultChain: boolean;
129
+ },
130
+ ) {}
131
+
132
+ private credentialsProvider(): () => Promise<AwsCredentialIdentity> {
133
+ if (this.resolvedCredentialsProvider) return this.resolvedCredentialsProvider;
134
+
135
+ if (this.options.staticCredentials) {
136
+ const credentials = this.options.staticCredentials;
137
+ return (this.resolvedCredentialsProvider = async () => credentials);
138
+ }
139
+ if (this.options.credentialProvider) {
140
+ const provider = this.options.credentialProvider;
141
+ return (this.resolvedCredentialsProvider = async () => validateCredentialIdentity(await provider()));
142
+ }
143
+
144
+ const provider = defaultProvider(this.options.profile ? { profile: this.options.profile } : {});
145
+ return (this.resolvedCredentialsProvider = async () => validateCredentialIdentity(await provider()));
146
+ }
147
+
148
+ private signatureV4(): SignatureV4 {
149
+ return (this.signer ??= new SignatureV4({
150
+ credentials: this.credentialsProvider(),
151
+ region: this.options.region,
152
+ service: BEDROCK_SERVICE,
153
+ sha256: Hash.bind(null, 'sha256'),
154
+ }));
155
+ }
156
+
157
+ async prepareRequest(request: FinalizedRequestInit, { url }: ProviderRequestContext): Promise<void> {
158
+ if (Object.prototype.toString.call((globalThis as any).process) !== '[object process]') {
159
+ throw new Errors.OpenAIError(
160
+ 'Bedrock AWS credential authentication is only supported in Node.js and compatible server runtimes. Use bearer authentication in this runtime.',
161
+ );
162
+ }
163
+
164
+ const parsedURL = new URL(url);
165
+ const canonicalRegion = /^bedrock-mantle\.([a-z0-9-]+)\.api\.aws$/i.exec(parsedURL.hostname)?.[1];
166
+ if (canonicalRegion && canonicalRegion !== this.options.region) {
167
+ throw new Errors.OpenAIError(
168
+ `The Bedrock endpoint region \`${canonicalRegion}\` does not match the SigV4 region \`${this.options.region}\`.`,
169
+ );
170
+ }
171
+
172
+ const headers = new Headers(request.headers);
173
+ assertProviderOwnsAuthorization(headers);
174
+ headers.delete('x-amz-date');
175
+ headers.delete('x-amz-security-token');
176
+ headers.delete('x-amz-content-sha256');
177
+ headers.set('host', parsedURL.host);
178
+
179
+ const method = (request.method ?? 'GET').toUpperCase();
180
+ const body = signableBody(request.body);
181
+
182
+ let signed: { headers: Record<string, string> };
183
+ try {
184
+ signed = await this.signatureV4().sign({
185
+ protocol: parsedURL.protocol,
186
+ hostname: parsedURL.hostname,
187
+ ...(parsedURL.port ? { port: Number(parsedURL.port) } : {}),
188
+ method,
189
+ ...requestTarget(parsedURL),
190
+ headers: Object.fromEntries(headers.entries()),
191
+ ...(body !== undefined ? { body } : {}),
192
+ });
193
+ } catch (cause) {
194
+ const message =
195
+ this.options.usesDefaultChain ?
196
+ 'Could not find credentials for Bedrock. Pass AWS credentials to `bedrock(...)` or configure the default AWS credential chain.'
197
+ : 'Failed to resolve AWS credentials for Bedrock. Verify your AWS profile, environment variables, or runtime identity configuration and try again.';
198
+ throw errorWithCause(message, cause);
199
+ }
200
+
201
+ request.method = method;
202
+ request.redirect = 'manual';
203
+ request.headers = new Headers(signed.headers);
204
+ }
205
+ }
206
+
207
+ /** Configure the standard OpenAI client for Amazon Bedrock using bearer or AWS authentication. */
208
+ export function bedrock(options: BedrockProviderOptions = {}): Provider {
209
+ const staticCredentials = validateStaticCredentials(options);
210
+ const profile = normalizeOptionalString(options.profile);
211
+ if (options.profile !== undefined && !profile) {
212
+ throw new Errors.OpenAIError('The Bedrock AWS `profile` must not be empty.');
213
+ }
214
+
215
+ const awsModes = [!!staticCredentials, !!profile, !!options.credentialProvider].filter(Boolean).length;
216
+ if (awsModes > 1) {
217
+ throw new Errors.OpenAIError(
218
+ 'Bedrock authentication is ambiguous. Configure exactly one explicit AWS mode: static credentials, profile, or credential provider.',
219
+ );
220
+ }
221
+ const explicitAwsAuth = awsModes === 1;
222
+ const bearerAuth = resolveBedrockBearerAuth(options, { allowEnvironment: !explicitAwsAuth });
223
+ if (bearerAuth.explicit && explicitAwsAuth) {
224
+ throw new Errors.OpenAIError(
225
+ 'Bearer and AWS credential authentication are mutually exclusive. Configure exactly one explicit mode: bearer credential, static AWS credentials, profile, or credential provider.',
226
+ );
227
+ }
228
+
229
+ const { region, baseURL } = resolveBedrockEndpoint(options);
230
+ if (!bearerAuth.factory && !region) {
231
+ throw new Errors.OpenAIError(
232
+ 'Bedrock requires an AWS region. Pass `region` to `bedrock(...)`, or set `AWS_REGION` or `AWS_DEFAULT_REGION`.',
233
+ );
234
+ }
235
+ const credentialProvider = options.credentialProvider;
236
+
237
+ return createProvider({
238
+ configure() {
239
+ const auth =
240
+ bearerAuth.factory?.() ??
241
+ new BedrockSigV4Auth({
242
+ region: region!,
243
+ staticCredentials,
244
+ profile,
245
+ credentialProvider,
246
+ usesDefaultChain: !explicitAwsAuth,
247
+ });
248
+ return {
249
+ name: 'bedrock',
250
+ baseURL,
251
+ prepareRequest: auth.prepareRequest.bind(auth),
252
+ };
253
+ },
254
+ });
255
+ }
@@ -0,0 +1,33 @@
1
+ import * as Errors from '../error';
2
+ import type { Provider } from '../internal/provider';
3
+ import { createProvider } from '../internal/provider';
4
+ import {
5
+ resolveBedrockBearerAuth,
6
+ resolveBedrockEndpoint,
7
+ type BedrockBearerOptions,
8
+ type BedrockEndpointOptions,
9
+ } from '../internal/bedrock';
10
+
11
+ export interface BedrockProviderOptions extends BedrockEndpointOptions, BedrockBearerOptions {}
12
+
13
+ /** Configure the standard OpenAI client for Amazon Bedrock using bearer authentication. */
14
+ export function bedrock(options: BedrockProviderOptions = {}): Provider {
15
+ const { baseURL } = resolveBedrockEndpoint(options);
16
+ const { factory } = resolveBedrockBearerAuth(options);
17
+ if (!factory) {
18
+ throw new Errors.OpenAIError(
19
+ 'Bedrock bearer authentication requires an `apiKey`, `tokenProvider`, or `AWS_BEARER_TOKEN_BEDROCK`. For AWS credential authentication, import `bedrock` from `openai/providers/bedrock/aws`.',
20
+ );
21
+ }
22
+
23
+ return createProvider({
24
+ configure() {
25
+ const auth = factory();
26
+ return {
27
+ name: 'bedrock',
28
+ baseURL,
29
+ prepareRequest: auth.prepareRequest.bind(auth),
30
+ };
31
+ },
32
+ });
33
+ }
@@ -83,16 +83,99 @@ export function isAzure(client: Pick<OpenAI, 'apiKey' | 'baseURL'>): client is A
83
83
  return client instanceof AzureOpenAI;
84
84
  }
85
85
 
86
- export function buildRealtimeURL(client: Pick<OpenAI, 'apiKey' | 'baseURL'>, model: string): URL {
87
- const path = '/realtime';
86
+ export type RealtimeConnectionConfig =
87
+ | {
88
+ /**
89
+ * Start a new Realtime session using the given model.
90
+ */
91
+ model: string;
92
+ callID?: undefined;
93
+ }
94
+ | {
95
+ model?: undefined;
96
+ /**
97
+ * Attach to an in-progress Realtime call over a sideband control connection.
98
+ */
99
+ callID: string;
100
+ };
101
+
102
+ export type AzureRealtimeConnectionConfig =
103
+ | {
104
+ /**
105
+ * Override the deployment configured on the Azure client.
106
+ */
107
+ deploymentName?: string;
108
+ callID?: undefined;
109
+ }
110
+ | {
111
+ deploymentName?: undefined;
112
+ /**
113
+ * Attach to an in-progress Azure Realtime call over a sideband control connection.
114
+ */
115
+ callID: string;
116
+ };
117
+
118
+ export function buildRealtimeURL(
119
+ client: Pick<OpenAI, 'apiKey' | 'baseURL'>,
120
+ connection: string | RealtimeConnectionConfig,
121
+ ): URL {
122
+ const config: RealtimeConnectionConfig =
123
+ typeof connection === 'string' ? { model: connection } : connection;
88
124
  const baseURL = client.baseURL;
89
- const url = new URL(baseURL + (baseURL.endsWith('/') ? path.slice(1) : path));
125
+ const azure = isAzure(client);
126
+ const hasModel = !!config.model;
127
+ const hasCallID = !!config.callID;
128
+
129
+ if (hasModel === hasCallID) {
130
+ throw new Error('Pass exactly one of `model` or `callID` when opening a Realtime WebSocket.');
131
+ }
132
+
133
+ let url: URL;
134
+ if (azure && hasCallID) {
135
+ url = new URL(baseURL);
136
+ const basePath = url.pathname.replace(/\/+/g, '/').replace(/\/+$/, '');
137
+ const versionedPath = basePath.endsWith('/v1') ? basePath : `${basePath}/v1`;
138
+ url.pathname = `${versionedPath}/realtime`;
139
+ url.search = '';
140
+ url.hash = '';
141
+ } else {
142
+ const path = '/realtime';
143
+ url = new URL(baseURL + (baseURL.endsWith('/') ? path.slice(1) : path));
144
+ }
145
+
90
146
  url.protocol = 'wss';
91
- if (isAzure(client)) {
92
- url.searchParams.set('api-version', client.apiVersion);
93
- url.searchParams.set('deployment', model);
147
+ // Sideband control connections attach to an existing call via `call_id`.
148
+ if (azure) {
149
+ if (hasCallID) {
150
+ url.searchParams.set('call_id', config.callID!);
151
+ } else {
152
+ url.searchParams.set('api-version', client.apiVersion);
153
+ url.searchParams.set('deployment', config.model!);
154
+ }
94
155
  } else {
95
- url.searchParams.set('model', model);
156
+ if (hasCallID) {
157
+ url.searchParams.set('call_id', config.callID!);
158
+ } else {
159
+ url.searchParams.set('model', config.model!);
160
+ }
96
161
  }
97
162
  return url;
98
163
  }
164
+
165
+ export function getAzureRealtimeConnection(
166
+ client: Pick<AzureOpenAI, 'deploymentName'>,
167
+ connection: AzureRealtimeConnectionConfig,
168
+ ): RealtimeConnectionConfig {
169
+ if (connection.callID !== undefined) {
170
+ if (connection.deploymentName !== undefined) {
171
+ throw new Error('Pass either `deploymentName` or `callID`, but not both.');
172
+ }
173
+ return { callID: connection.callID };
174
+ }
175
+
176
+ const model = connection.deploymentName ?? client.deploymentName;
177
+ if (!model) {
178
+ throw new Error('No deployment name provided');
179
+ }
180
+ return { model };
181
+ }
@@ -1,7 +1,14 @@
1
1
  import { AzureOpenAI, OpenAI } from '../index';
2
2
  import { OpenAIError } from '../error';
3
3
  import type { RealtimeClientEvent, RealtimeServerEvent } from '../resources/realtime/realtime';
4
- import { OpenAIRealtimeEmitter, buildRealtimeURL, isAzure } from './internal-base';
4
+ import {
5
+ OpenAIRealtimeEmitter,
6
+ buildRealtimeURL,
7
+ getAzureRealtimeConnection,
8
+ isAzure,
9
+ type AzureRealtimeConnectionConfig,
10
+ type RealtimeConnectionConfig,
11
+ } from './internal-base';
5
12
  import { isRunningInBrowser } from '../internal/detect-platform';
6
13
 
7
14
  interface MessageEvent {
@@ -23,8 +30,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
23
30
  socket: _WebSocket;
24
31
 
25
32
  constructor(
26
- props: {
27
- model: string;
33
+ props: RealtimeConnectionConfig & {
28
34
  dangerouslyAllowBrowser?: boolean;
29
35
  /**
30
36
  * Callback to mutate the URL, needed for Azure.
@@ -54,13 +60,12 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
54
60
  throw new Error(
55
61
  [
56
62
  'Cannot open Realtime WebSocket with a function-based apiKey.',
57
- 'Use the .create() method so that the key is resolved before connecting:',
58
- 'await OpenAIRealtimeWebSocket.create(client, { model })',
63
+ 'Use the .create() method so that the key is resolved before connecting.',
59
64
  ].join('\n'),
60
65
  );
61
66
  }
62
67
 
63
- this.url = buildRealtimeURL(client, props.model);
68
+ this.url = buildRealtimeURL(client, props);
64
69
  props.onURL?.(this.url);
65
70
 
66
71
  // @ts-ignore
@@ -106,15 +111,16 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
106
111
 
107
112
  static async create(
108
113
  client: Pick<OpenAI, 'apiKey' | 'baseURL' | '_callApiKey'>,
109
- props: { model: string; dangerouslyAllowBrowser?: boolean },
114
+ props: RealtimeConnectionConfig & { dangerouslyAllowBrowser?: boolean },
110
115
  ): Promise<OpenAIRealtimeWebSocket> {
111
116
  return new OpenAIRealtimeWebSocket({ ...props, __resolvedApiKey: await client._callApiKey() }, client);
112
117
  }
113
118
 
114
119
  static async azure(
115
120
  client: Pick<AzureOpenAI, '_callApiKey' | 'apiVersion' | 'apiKey' | 'baseURL' | 'deploymentName'>,
116
- options: { deploymentName?: string; dangerouslyAllowBrowser?: boolean } = {},
121
+ options: AzureRealtimeConnectionConfig & { dangerouslyAllowBrowser?: boolean } = {},
117
122
  ): Promise<OpenAIRealtimeWebSocket> {
123
+ const connection = getAzureRealtimeConnection(client, options);
118
124
  const isApiKeyProvider = await client._callApiKey();
119
125
  const apiKey = client.apiKey;
120
126
  if (!apiKey) {
@@ -128,14 +134,10 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
128
134
  url.searchParams.set('api-key', azureApiKey);
129
135
  }
130
136
  }
131
- const deploymentName = options.deploymentName ?? client.deploymentName;
132
- if (!deploymentName) {
133
- throw new Error('No deployment name provided');
134
- }
135
137
  const { dangerouslyAllowBrowser } = options;
136
138
  return new OpenAIRealtimeWebSocket(
137
139
  {
138
- model: deploymentName,
140
+ ...connection,
139
141
  onURL,
140
142
  ...(dangerouslyAllowBrowser ? { dangerouslyAllowBrowser } : {}),
141
143
  __resolvedApiKey: isApiKeyProvider,
@@ -1,15 +1,21 @@
1
1
  import * as WS from 'ws';
2
2
  import { AzureOpenAI, OpenAI } from '../index';
3
3
  import type { RealtimeClientEvent, RealtimeServerEvent } from '../resources/realtime/realtime';
4
- import { OpenAIRealtimeEmitter, buildRealtimeURL, isAzure } from './internal-base';
4
+ import {
5
+ OpenAIRealtimeEmitter,
6
+ buildRealtimeURL,
7
+ getAzureRealtimeConnection,
8
+ isAzure,
9
+ type AzureRealtimeConnectionConfig,
10
+ type RealtimeConnectionConfig,
11
+ } from './internal-base';
5
12
 
6
13
  export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
7
14
  url: URL;
8
15
  socket: WS.WebSocket;
9
16
 
10
17
  constructor(
11
- props: {
12
- model: string;
18
+ props: RealtimeConnectionConfig & {
13
19
  options?: WS.ClientOptions | undefined;
14
20
  /** @internal */ __resolvedApiKey?: boolean;
15
21
  },
@@ -22,12 +28,11 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
22
28
  throw new Error(
23
29
  [
24
30
  'Cannot open Realtime WebSocket with a function-based apiKey.',
25
- 'Use the .create() method so that the key is resolved before connecting:',
26
- 'await OpenAIRealtimeWS.create(client, { model })',
31
+ 'Use the .create() method so that the key is resolved before connecting.',
27
32
  ].join('\n'),
28
33
  );
29
34
  }
30
- this.url = buildRealtimeURL(client, props.model);
35
+ this.url = buildRealtimeURL(client, props);
31
36
  this.socket = new WS.WebSocket(this.url, {
32
37
  ...props.options,
33
38
  headers: {
@@ -65,27 +70,24 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
65
70
 
66
71
  static async create(
67
72
  client: Pick<OpenAI, 'apiKey' | 'baseURL' | '_callApiKey'>,
68
- props: { model: string; options?: WS.ClientOptions | undefined },
73
+ props: RealtimeConnectionConfig & { options?: WS.ClientOptions | undefined },
69
74
  ): Promise<OpenAIRealtimeWS> {
70
75
  return new OpenAIRealtimeWS({ ...props, __resolvedApiKey: await client._callApiKey() }, client);
71
76
  }
72
77
 
73
78
  static async azure(
74
79
  client: Pick<AzureOpenAI, '_callApiKey' | 'apiVersion' | 'apiKey' | 'baseURL' | 'deploymentName'>,
75
- props: { deploymentName?: string; options?: WS.ClientOptions | undefined } = {},
80
+ props: AzureRealtimeConnectionConfig & { options?: WS.ClientOptions | undefined } = {},
76
81
  ): Promise<OpenAIRealtimeWS> {
82
+ const connection = getAzureRealtimeConnection(client, props);
77
83
  const isApiKeyProvider = await client._callApiKey();
78
84
  const apiKey = client.apiKey;
79
85
  if (!apiKey) {
80
86
  throw new Error('Azure OpenAI Realtime requires an API key');
81
87
  }
82
- const deploymentName = props.deploymentName ?? client.deploymentName;
83
- if (!deploymentName) {
84
- throw new Error('No deployment name provided');
85
- }
86
88
  return new OpenAIRealtimeWS(
87
89
  {
88
- model: deploymentName,
90
+ ...connection,
89
91
  options: {
90
92
  ...props.options,
91
93
  headers: {
@@ -1141,19 +1141,12 @@ export interface AssistantCreateParams {
1141
1141
  name?: string | null;
1142
1142
 
1143
1143
  /**
1144
- * Constrains effort on reasoning for
1145
- * [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
1146
- * supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`.
1147
- * Reducing reasoning effort can result in faster responses and fewer tokens used
1148
- * on reasoning in a response.
1149
- *
1150
- * - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported
1151
- * reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool
1152
- * calls are supported for all reasoning values in gpt-5.1.
1153
- * - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
1154
- * support `none`.
1155
- * - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
1156
- * - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
1144
+ * Constrains effort on reasoning for reasoning models. Currently supported values
1145
+ * are `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. Reducing
1146
+ * reasoning effort can result in faster responses and fewer tokens used on
1147
+ * reasoning in a response. Not all reasoning models support every value. See the
1148
+ * [reasoning guide](https://platform.openai.com/docs/guides/reasoning) for
1149
+ * model-specific support.
1157
1150
  */
1158
1151
  reasoning_effort?: Shared.ReasoningEffort | null;
1159
1152
 
@@ -1403,19 +1396,12 @@ export interface AssistantUpdateParams {
1403
1396
  name?: string | null;
1404
1397
 
1405
1398
  /**
1406
- * Constrains effort on reasoning for
1407
- * [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
1408
- * supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`.
1409
- * Reducing reasoning effort can result in faster responses and fewer tokens used
1410
- * on reasoning in a response.
1411
- *
1412
- * - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported
1413
- * reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool
1414
- * calls are supported for all reasoning values in gpt-5.1.
1415
- * - All models before `gpt-5.1` default to `medium` reasoning effort, and do not
1416
- * support `none`.
1417
- * - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.
1418
- * - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
1399
+ * Constrains effort on reasoning for reasoning models. Currently supported values
1400
+ * are `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. Reducing
1401
+ * reasoning effort can result in faster responses and fewer tokens used on
1402
+ * reasoning in a response. Not all reasoning models support every value. See the
1403
+ * [reasoning guide](https://platform.openai.com/docs/guides/reasoning) for
1404
+ * model-specific support.
1419
1405
  */
1420
1406
  reasoning_effort?: Shared.ReasoningEffort | null;
1421
1407