openai 7.10.0 → 7.13.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 (605) hide show
  1. package/CHANGELOG.md +203 -0
  2. package/README.md +7 -5
  3. package/_vendor/partial-json-parser/parser.d.mts.map +1 -1
  4. package/_vendor/partial-json-parser/parser.d.ts.map +1 -1
  5. package/_vendor/partial-json-parser/parser.js +4 -3
  6. package/_vendor/partial-json-parser/parser.js.map +1 -1
  7. package/_vendor/partial-json-parser/parser.mjs +4 -3
  8. package/_vendor/partial-json-parser/parser.mjs.map +1 -1
  9. package/_vendor/zod-to-json-schema/parsers/string.js +1 -1
  10. package/_vendor/zod-to-json-schema/parsers/string.js.map +1 -1
  11. package/_vendor/zod-to-json-schema/parsers/string.mjs +1 -1
  12. package/_vendor/zod-to-json-schema/parsers/string.mjs.map +1 -1
  13. package/_vendor/zod-to-json-schema/parsers/tuple.d.mts.map +1 -1
  14. package/_vendor/zod-to-json-schema/parsers/tuple.d.ts.map +1 -1
  15. package/_vendor/zod-to-json-schema/parsers/tuple.js +19 -12
  16. package/_vendor/zod-to-json-schema/parsers/tuple.js.map +1 -1
  17. package/_vendor/zod-to-json-schema/parsers/tuple.mjs +19 -12
  18. package/_vendor/zod-to-json-schema/parsers/tuple.mjs.map +1 -1
  19. package/_vendor/zod-to-json-schema/zodToJsonSchema.d.mts.map +1 -1
  20. package/_vendor/zod-to-json-schema/zodToJsonSchema.d.ts.map +1 -1
  21. package/_vendor/zod-to-json-schema/zodToJsonSchema.js +6 -2
  22. package/_vendor/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
  23. package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs +6 -2
  24. package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs.map +1 -1
  25. package/auth/subject-token-providers.d.mts.map +1 -1
  26. package/auth/subject-token-providers.d.ts.map +1 -1
  27. package/auth/subject-token-providers.js +10 -5
  28. package/auth/subject-token-providers.js.map +1 -1
  29. package/auth/subject-token-providers.mjs +10 -5
  30. package/auth/subject-token-providers.mjs.map +1 -1
  31. package/auth/workload-identity-auth.d.mts.map +1 -1
  32. package/auth/workload-identity-auth.d.ts.map +1 -1
  33. package/auth/workload-identity-auth.js +21 -11
  34. package/auth/workload-identity-auth.js.map +1 -1
  35. package/auth/workload-identity-auth.mjs +21 -11
  36. package/auth/workload-identity-auth.mjs.map +1 -1
  37. package/azure.d.mts.map +1 -1
  38. package/azure.d.ts.map +1 -1
  39. package/azure.js +31 -2
  40. package/azure.js.map +1 -1
  41. package/azure.mjs +32 -3
  42. package/azure.mjs.map +1 -1
  43. package/beta/realtime/internal-base.d.mts.map +1 -1
  44. package/beta/realtime/internal-base.d.ts.map +1 -1
  45. package/beta/realtime/internal-base.js +3 -2
  46. package/beta/realtime/internal-base.js.map +1 -1
  47. package/beta/realtime/internal-base.mjs +3 -2
  48. package/beta/realtime/internal-base.mjs.map +1 -1
  49. package/beta/realtime/websocket.d.mts +2 -0
  50. package/beta/realtime/websocket.d.mts.map +1 -1
  51. package/beta/realtime/websocket.d.ts +2 -0
  52. package/beta/realtime/websocket.d.ts.map +1 -1
  53. package/beta/realtime/websocket.js +12 -7
  54. package/beta/realtime/websocket.js.map +1 -1
  55. package/beta/realtime/websocket.mjs +12 -7
  56. package/beta/realtime/websocket.mjs.map +1 -1
  57. package/beta/realtime/ws.d.mts +2 -0
  58. package/beta/realtime/ws.d.mts.map +1 -1
  59. package/beta/realtime/ws.d.ts +2 -0
  60. package/beta/realtime/ws.d.ts.map +1 -1
  61. package/beta/realtime/ws.js +7 -5
  62. package/beta/realtime/ws.js.map +1 -1
  63. package/beta/realtime/ws.mjs +7 -5
  64. package/beta/realtime/ws.mjs.map +1 -1
  65. package/client.d.mts +9 -1
  66. package/client.d.mts.map +1 -1
  67. package/client.d.ts +9 -1
  68. package/client.d.ts.map +1 -1
  69. package/client.js +17 -4
  70. package/client.js.map +1 -1
  71. package/client.mjs +17 -4
  72. package/client.mjs.map +1 -1
  73. package/core/EventEmitter.d.mts +2 -1
  74. package/core/EventEmitter.d.mts.map +1 -1
  75. package/core/EventEmitter.d.ts +2 -1
  76. package/core/EventEmitter.d.ts.map +1 -1
  77. package/core/EventEmitter.js +2 -1
  78. package/core/EventEmitter.js.map +1 -1
  79. package/core/EventEmitter.mjs +2 -1
  80. package/core/EventEmitter.mjs.map +1 -1
  81. package/core/pagination.js +1 -1
  82. package/core/pagination.js.map +1 -1
  83. package/core/pagination.mjs +1 -1
  84. package/core/pagination.mjs.map +1 -1
  85. package/core/streaming.d.mts +8 -0
  86. package/core/streaming.d.mts.map +1 -1
  87. package/core/streaming.d.ts +8 -0
  88. package/core/streaming.d.ts.map +1 -1
  89. package/core/streaming.js +68 -15
  90. package/core/streaming.js.map +1 -1
  91. package/core/streaming.mjs +68 -15
  92. package/core/streaming.mjs.map +1 -1
  93. package/helpers/audio.d.mts +1 -1
  94. package/helpers/audio.d.mts.map +1 -1
  95. package/helpers/audio.d.ts +1 -1
  96. package/helpers/audio.d.ts.map +1 -1
  97. package/helpers/audio.js +25 -5
  98. package/helpers/audio.js.map +1 -1
  99. package/helpers/audio.mjs +25 -5
  100. package/helpers/audio.mjs.map +1 -1
  101. package/helpers/zod.d.mts +28 -15
  102. package/helpers/zod.d.mts.map +1 -1
  103. package/helpers/zod.d.ts +28 -15
  104. package/helpers/zod.d.ts.map +1 -1
  105. package/helpers/zod.js +30 -23
  106. package/helpers/zod.js.map +1 -1
  107. package/helpers/zod.mjs +30 -23
  108. package/helpers/zod.mjs.map +1 -1
  109. package/index.js +4 -5
  110. package/internal/bedrock.d.mts +11 -0
  111. package/internal/bedrock.d.mts.map +1 -1
  112. package/internal/bedrock.d.ts +11 -0
  113. package/internal/bedrock.d.ts.map +1 -1
  114. package/internal/bedrock.js +71 -55
  115. package/internal/bedrock.js.map +1 -1
  116. package/internal/bedrock.mjs +70 -55
  117. package/internal/bedrock.mjs.map +1 -1
  118. package/internal/detect-platform.js +2 -2
  119. package/internal/detect-platform.js.map +1 -1
  120. package/internal/detect-platform.mjs +2 -2
  121. package/internal/detect-platform.mjs.map +1 -1
  122. package/internal/errors.d.mts.map +1 -1
  123. package/internal/errors.d.ts.map +1 -1
  124. package/internal/errors.js +3 -2
  125. package/internal/errors.js.map +1 -1
  126. package/internal/errors.mjs +3 -2
  127. package/internal/errors.mjs.map +1 -1
  128. package/internal/headers.d.mts.map +1 -1
  129. package/internal/headers.d.ts.map +1 -1
  130. package/internal/headers.js +4 -5
  131. package/internal/headers.js.map +1 -1
  132. package/internal/headers.mjs +4 -5
  133. package/internal/headers.mjs.map +1 -1
  134. package/internal/parse.js +1 -1
  135. package/internal/parse.js.map +1 -1
  136. package/internal/parse.mjs +1 -1
  137. package/internal/parse.mjs.map +1 -1
  138. package/internal/realtime-credentials.d.mts +15 -0
  139. package/internal/realtime-credentials.d.mts.map +1 -0
  140. package/internal/realtime-credentials.d.ts +15 -0
  141. package/internal/realtime-credentials.d.ts.map +1 -0
  142. package/internal/realtime-credentials.js +23 -0
  143. package/internal/realtime-credentials.js.map +1 -0
  144. package/internal/realtime-credentials.mjs +19 -0
  145. package/internal/realtime-credentials.mjs.map +1 -0
  146. package/internal/responses/response-accumulator.d.mts.map +1 -1
  147. package/internal/responses/response-accumulator.d.ts.map +1 -1
  148. package/internal/responses/response-accumulator.js +2 -1
  149. package/internal/responses/response-accumulator.js.map +1 -1
  150. package/internal/responses/response-accumulator.mjs +2 -1
  151. package/internal/responses/response-accumulator.mjs.map +1 -1
  152. package/internal/to-file.d.mts +2 -1
  153. package/internal/to-file.d.mts.map +1 -1
  154. package/internal/to-file.d.ts +2 -1
  155. package/internal/to-file.d.ts.map +1 -1
  156. package/internal/to-file.js +5 -4
  157. package/internal/to-file.js.map +1 -1
  158. package/internal/to-file.mjs +6 -5
  159. package/internal/to-file.mjs.map +1 -1
  160. package/internal/types.d.mts +3 -3
  161. package/internal/types.d.mts.map +1 -1
  162. package/internal/types.d.ts +3 -3
  163. package/internal/types.d.ts.map +1 -1
  164. package/internal/uploads.d.mts +2 -0
  165. package/internal/uploads.d.mts.map +1 -1
  166. package/internal/uploads.d.ts +2 -0
  167. package/internal/uploads.d.ts.map +1 -1
  168. package/internal/uploads.js +12 -1
  169. package/internal/uploads.js.map +1 -1
  170. package/internal/uploads.mjs +11 -1
  171. package/internal/uploads.mjs.map +1 -1
  172. package/internal/utils/base64.d.mts.map +1 -1
  173. package/internal/utils/base64.d.ts.map +1 -1
  174. package/internal/utils/base64.js +3 -0
  175. package/internal/utils/base64.js.map +1 -1
  176. package/internal/utils/base64.mjs +3 -0
  177. package/internal/utils/base64.mjs.map +1 -1
  178. package/lib/AbstractChatCompletionRunner.d.mts +1 -1
  179. package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
  180. package/lib/AbstractChatCompletionRunner.d.ts +1 -1
  181. package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
  182. package/lib/AbstractChatCompletionRunner.js +31 -9
  183. package/lib/AbstractChatCompletionRunner.js.map +1 -1
  184. package/lib/AbstractChatCompletionRunner.mjs +31 -9
  185. package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
  186. package/lib/AssistantStream.d.mts +4 -1
  187. package/lib/AssistantStream.d.mts.map +1 -1
  188. package/lib/AssistantStream.d.ts +4 -1
  189. package/lib/AssistantStream.d.ts.map +1 -1
  190. package/lib/AssistantStream.js +23 -8
  191. package/lib/AssistantStream.js.map +1 -1
  192. package/lib/AssistantStream.mjs +24 -9
  193. package/lib/AssistantStream.mjs.map +1 -1
  194. package/lib/ChatCompletionRunner.d.mts +6 -3
  195. package/lib/ChatCompletionRunner.d.mts.map +1 -1
  196. package/lib/ChatCompletionRunner.d.ts +6 -3
  197. package/lib/ChatCompletionRunner.d.ts.map +1 -1
  198. package/lib/ChatCompletionRunner.js +7 -4
  199. package/lib/ChatCompletionRunner.js.map +1 -1
  200. package/lib/ChatCompletionRunner.mjs +7 -4
  201. package/lib/ChatCompletionRunner.mjs.map +1 -1
  202. package/lib/ChatCompletionStream.d.mts.map +1 -1
  203. package/lib/ChatCompletionStream.d.ts.map +1 -1
  204. package/lib/ChatCompletionStream.js +6 -0
  205. package/lib/ChatCompletionStream.js.map +1 -1
  206. package/lib/ChatCompletionStream.mjs +7 -1
  207. package/lib/ChatCompletionStream.mjs.map +1 -1
  208. package/lib/ChatCompletionStreamingRunner.d.mts.map +1 -1
  209. package/lib/ChatCompletionStreamingRunner.d.ts.map +1 -1
  210. package/lib/ChatCompletionStreamingRunner.js +1 -0
  211. package/lib/ChatCompletionStreamingRunner.js.map +1 -1
  212. package/lib/ChatCompletionStreamingRunner.mjs +1 -0
  213. package/lib/ChatCompletionStreamingRunner.mjs.map +1 -1
  214. package/lib/EventEmitter.d.mts +3 -1
  215. package/lib/EventEmitter.d.mts.map +1 -1
  216. package/lib/EventEmitter.d.ts +3 -1
  217. package/lib/EventEmitter.d.ts.map +1 -1
  218. package/lib/EventEmitter.js +2 -1
  219. package/lib/EventEmitter.js.map +1 -1
  220. package/lib/EventEmitter.mjs +2 -1
  221. package/lib/EventEmitter.mjs.map +1 -1
  222. package/lib/EventStream.d.mts +2 -1
  223. package/lib/EventStream.d.mts.map +1 -1
  224. package/lib/EventStream.d.ts +2 -1
  225. package/lib/EventStream.d.ts.map +1 -1
  226. package/lib/EventStream.js +99 -46
  227. package/lib/EventStream.js.map +1 -1
  228. package/lib/EventStream.mjs +99 -46
  229. package/lib/EventStream.mjs.map +1 -1
  230. package/lib/ResponsesParser.d.mts +5 -4
  231. package/lib/ResponsesParser.d.mts.map +1 -1
  232. package/lib/ResponsesParser.d.ts +5 -4
  233. package/lib/ResponsesParser.d.ts.map +1 -1
  234. package/lib/ResponsesParser.js +21 -7
  235. package/lib/ResponsesParser.js.map +1 -1
  236. package/lib/ResponsesParser.mjs +21 -7
  237. package/lib/ResponsesParser.mjs.map +1 -1
  238. package/lib/RunnableFunction.d.mts +2 -2
  239. package/lib/RunnableFunction.d.mts.map +1 -1
  240. package/lib/RunnableFunction.d.ts +2 -2
  241. package/lib/RunnableFunction.d.ts.map +1 -1
  242. package/lib/embeddings.d.mts.map +1 -1
  243. package/lib/embeddings.d.ts.map +1 -1
  244. package/lib/embeddings.js +18 -12
  245. package/lib/embeddings.js.map +1 -1
  246. package/lib/embeddings.mjs +18 -12
  247. package/lib/embeddings.mjs.map +1 -1
  248. package/lib/file-processing.d.mts +3 -2
  249. package/lib/file-processing.d.mts.map +1 -1
  250. package/lib/file-processing.d.ts +3 -2
  251. package/lib/file-processing.d.ts.map +1 -1
  252. package/lib/file-processing.js +5 -4
  253. package/lib/file-processing.js.map +1 -1
  254. package/lib/file-processing.mjs +5 -4
  255. package/lib/file-processing.mjs.map +1 -1
  256. package/lib/parser.d.mts +16 -4
  257. package/lib/parser.d.mts.map +1 -1
  258. package/lib/parser.d.ts +16 -4
  259. package/lib/parser.d.ts.map +1 -1
  260. package/lib/parser.js +1 -1
  261. package/lib/parser.js.map +1 -1
  262. package/lib/parser.mjs +1 -1
  263. package/lib/parser.mjs.map +1 -1
  264. package/lib/polling.d.mts +2 -2
  265. package/lib/polling.d.mts.map +1 -1
  266. package/lib/polling.d.ts +2 -2
  267. package/lib/polling.d.ts.map +1 -1
  268. package/lib/polling.js +5 -4
  269. package/lib/polling.js.map +1 -1
  270. package/lib/polling.mjs +5 -4
  271. package/lib/polling.mjs.map +1 -1
  272. package/lib/responses/EventTypes.d.mts +2 -2
  273. package/lib/responses/EventTypes.d.mts.map +1 -1
  274. package/lib/responses/EventTypes.d.ts +2 -2
  275. package/lib/responses/EventTypes.d.ts.map +1 -1
  276. package/lib/responses/ResponseInputItems.d.mts +3 -2
  277. package/lib/responses/ResponseInputItems.d.mts.map +1 -1
  278. package/lib/responses/ResponseInputItems.d.ts +3 -2
  279. package/lib/responses/ResponseInputItems.d.ts.map +1 -1
  280. package/lib/responses/ResponseInputItems.js +27 -4
  281. package/lib/responses/ResponseInputItems.js.map +1 -1
  282. package/lib/responses/ResponseInputItems.mjs +27 -4
  283. package/lib/responses/ResponseInputItems.mjs.map +1 -1
  284. package/lib/transform.d.mts.map +1 -1
  285. package/lib/transform.d.ts.map +1 -1
  286. package/lib/transform.js +1 -0
  287. package/lib/transform.js.map +1 -1
  288. package/lib/transform.mjs +1 -0
  289. package/lib/transform.mjs.map +1 -1
  290. package/lib/vector-store-polling.d.mts +2 -2
  291. package/lib/vector-store-polling.d.ts +2 -2
  292. package/lib/vector-store-polling.js +3 -3
  293. package/lib/vector-store-polling.js.map +1 -1
  294. package/lib/vector-store-polling.mjs +3 -3
  295. package/lib/vector-store-polling.mjs.map +1 -1
  296. package/lib/vector-store-upload.d.mts +2 -1
  297. package/lib/vector-store-upload.d.mts.map +1 -1
  298. package/lib/vector-store-upload.d.ts +2 -1
  299. package/lib/vector-store-upload.d.ts.map +1 -1
  300. package/lib/vector-store-upload.js +5 -1
  301. package/lib/vector-store-upload.js.map +1 -1
  302. package/lib/vector-store-upload.mjs +5 -1
  303. package/lib/vector-store-upload.mjs.map +1 -1
  304. package/package.json +1 -1
  305. package/providers/bedrock/aws.d.mts.map +1 -1
  306. package/providers/bedrock/aws.d.ts.map +1 -1
  307. package/providers/bedrock/aws.js +14 -16
  308. package/providers/bedrock/aws.js.map +1 -1
  309. package/providers/bedrock/aws.mjs +15 -17
  310. package/providers/bedrock/aws.mjs.map +1 -1
  311. package/realtime/internal-base.d.mts.map +1 -1
  312. package/realtime/internal-base.d.ts.map +1 -1
  313. package/realtime/internal-base.js +3 -5
  314. package/realtime/internal-base.js.map +1 -1
  315. package/realtime/internal-base.mjs +3 -5
  316. package/realtime/internal-base.mjs.map +1 -1
  317. package/realtime/websocket.d.mts +2 -0
  318. package/realtime/websocket.d.mts.map +1 -1
  319. package/realtime/websocket.d.ts +2 -0
  320. package/realtime/websocket.d.ts.map +1 -1
  321. package/realtime/websocket.js +12 -6
  322. package/realtime/websocket.js.map +1 -1
  323. package/realtime/websocket.mjs +12 -6
  324. package/realtime/websocket.mjs.map +1 -1
  325. package/realtime/ws.d.mts +2 -0
  326. package/realtime/ws.d.mts.map +1 -1
  327. package/realtime/ws.d.ts +2 -0
  328. package/realtime/ws.d.ts.map +1 -1
  329. package/realtime/ws.js +7 -4
  330. package/realtime/ws.js.map +1 -1
  331. package/realtime/ws.mjs +7 -4
  332. package/realtime/ws.mjs.map +1 -1
  333. package/resources/admin/organization/audit-logs.d.mts +1 -1
  334. package/resources/admin/organization/audit-logs.d.ts +1 -1
  335. package/resources/admin/organization/projects/api-keys.d.mts +5 -0
  336. package/resources/admin/organization/projects/api-keys.d.mts.map +1 -1
  337. package/resources/admin/organization/projects/api-keys.d.ts +5 -0
  338. package/resources/admin/organization/projects/api-keys.d.ts.map +1 -1
  339. package/resources/admin/organization/projects/projects.d.mts +2 -2
  340. package/resources/admin/organization/projects/projects.d.ts +2 -2
  341. package/resources/admin/organization/projects/service-accounts/api-keys.d.mts +9 -0
  342. package/resources/admin/organization/projects/service-accounts/api-keys.d.mts.map +1 -1
  343. package/resources/admin/organization/projects/service-accounts/api-keys.d.ts +9 -0
  344. package/resources/admin/organization/projects/service-accounts/api-keys.d.ts.map +1 -1
  345. package/resources/admin/organization/projects/service-accounts/service-accounts.d.mts +13 -0
  346. package/resources/admin/organization/projects/service-accounts/service-accounts.d.mts.map +1 -1
  347. package/resources/admin/organization/projects/service-accounts/service-accounts.d.ts +13 -0
  348. package/resources/admin/organization/projects/service-accounts/service-accounts.d.ts.map +1 -1
  349. package/resources/admin/organization/projects/service-accounts/service-accounts.js.map +1 -1
  350. package/resources/admin/organization/projects/service-accounts/service-accounts.mjs.map +1 -1
  351. package/resources/audio/speech.d.mts +3 -2
  352. package/resources/audio/speech.d.mts.map +1 -1
  353. package/resources/audio/speech.d.ts +3 -2
  354. package/resources/audio/speech.d.ts.map +1 -1
  355. package/resources/audio/transcriptions.d.mts +10 -10
  356. package/resources/audio/transcriptions.d.ts +10 -10
  357. package/resources/audio/translations.d.mts +1 -1
  358. package/resources/audio/translations.d.ts +1 -1
  359. package/resources/batches.d.mts +6 -5
  360. package/resources/batches.d.mts.map +1 -1
  361. package/resources/batches.d.ts +6 -5
  362. package/resources/batches.d.ts.map +1 -1
  363. package/resources/beta/assistants.d.mts +143 -147
  364. package/resources/beta/assistants.d.mts.map +1 -1
  365. package/resources/beta/assistants.d.ts +143 -147
  366. package/resources/beta/assistants.d.ts.map +1 -1
  367. package/resources/beta/responses/input-tokens.d.mts +11 -11
  368. package/resources/beta/responses/input-tokens.d.ts +11 -11
  369. package/resources/beta/responses/responses.d.mts +284 -194
  370. package/resources/beta/responses/responses.d.mts.map +1 -1
  371. package/resources/beta/responses/responses.d.ts +284 -194
  372. package/resources/beta/responses/responses.d.ts.map +1 -1
  373. package/resources/beta/responses/responses.js +3 -3
  374. package/resources/beta/responses/responses.js.map +1 -1
  375. package/resources/beta/responses/responses.mjs +3 -3
  376. package/resources/beta/responses/responses.mjs.map +1 -1
  377. package/resources/beta/threads/messages.d.mts +29 -23
  378. package/resources/beta/threads/messages.d.mts.map +1 -1
  379. package/resources/beta/threads/messages.d.ts +29 -23
  380. package/resources/beta/threads/messages.d.ts.map +1 -1
  381. package/resources/beta/threads/runs/runs.d.mts +39 -35
  382. package/resources/beta/threads/runs/runs.d.mts.map +1 -1
  383. package/resources/beta/threads/runs/runs.d.ts +39 -35
  384. package/resources/beta/threads/runs/runs.d.ts.map +1 -1
  385. package/resources/beta/threads/runs/runs.js.map +1 -1
  386. package/resources/beta/threads/runs/runs.mjs.map +1 -1
  387. package/resources/beta/threads/runs/steps.d.mts +14 -15
  388. package/resources/beta/threads/runs/steps.d.mts.map +1 -1
  389. package/resources/beta/threads/runs/steps.d.ts +14 -15
  390. package/resources/beta/threads/runs/steps.d.ts.map +1 -1
  391. package/resources/beta/threads/threads.d.mts +53 -50
  392. package/resources/beta/threads/threads.d.mts.map +1 -1
  393. package/resources/beta/threads/threads.d.ts +53 -50
  394. package/resources/beta/threads/threads.d.ts.map +1 -1
  395. package/resources/beta/threads/threads.js.map +1 -1
  396. package/resources/beta/threads/threads.mjs.map +1 -1
  397. package/resources/chat/completions/completions.d.mts +89 -81
  398. package/resources/chat/completions/completions.d.mts.map +1 -1
  399. package/resources/chat/completions/completions.d.ts +89 -81
  400. package/resources/chat/completions/completions.d.ts.map +1 -1
  401. package/resources/chat/completions/completions.js.map +1 -1
  402. package/resources/chat/completions/completions.mjs.map +1 -1
  403. package/resources/completions.d.mts +15 -14
  404. package/resources/completions.d.mts.map +1 -1
  405. package/resources/completions.d.ts +15 -14
  406. package/resources/completions.d.ts.map +1 -1
  407. package/resources/content-provenance-checks.d.mts +1 -1
  408. package/resources/content-provenance-checks.d.ts +1 -1
  409. package/resources/content-provenance-checks.js +1 -1
  410. package/resources/content-provenance-checks.mjs +1 -1
  411. package/resources/conversations/items.d.mts +12 -3
  412. package/resources/conversations/items.d.mts.map +1 -1
  413. package/resources/conversations/items.d.ts +12 -3
  414. package/resources/conversations/items.d.ts.map +1 -1
  415. package/resources/embeddings.d.mts +6 -6
  416. package/resources/embeddings.d.ts +6 -6
  417. package/resources/evals/evals.d.mts +1 -1
  418. package/resources/evals/evals.d.ts +1 -1
  419. package/resources/evals/evals.js +1 -1
  420. package/resources/evals/evals.mjs +1 -1
  421. package/resources/evals/runs/runs.d.mts +62 -57
  422. package/resources/evals/runs/runs.d.mts.map +1 -1
  423. package/resources/evals/runs/runs.d.ts +62 -57
  424. package/resources/evals/runs/runs.d.ts.map +1 -1
  425. package/resources/evals/runs/runs.js.map +1 -1
  426. package/resources/evals/runs/runs.mjs.map +1 -1
  427. package/resources/files.d.mts +5 -5
  428. package/resources/files.d.ts +5 -5
  429. package/resources/files.js +5 -5
  430. package/resources/files.mjs +5 -5
  431. package/resources/fine-tuning/alpha/graders.d.mts +5 -4
  432. package/resources/fine-tuning/alpha/graders.d.mts.map +1 -1
  433. package/resources/fine-tuning/alpha/graders.d.ts +5 -4
  434. package/resources/fine-tuning/alpha/graders.d.ts.map +1 -1
  435. package/resources/fine-tuning/checkpoints/permissions.d.mts +8 -4
  436. package/resources/fine-tuning/checkpoints/permissions.d.mts.map +1 -1
  437. package/resources/fine-tuning/checkpoints/permissions.d.ts +8 -4
  438. package/resources/fine-tuning/checkpoints/permissions.d.ts.map +1 -1
  439. package/resources/fine-tuning/checkpoints/permissions.js +8 -4
  440. package/resources/fine-tuning/checkpoints/permissions.js.map +1 -1
  441. package/resources/fine-tuning/checkpoints/permissions.mjs +8 -4
  442. package/resources/fine-tuning/checkpoints/permissions.mjs.map +1 -1
  443. package/resources/fine-tuning/jobs/jobs.d.mts +13 -12
  444. package/resources/fine-tuning/jobs/jobs.d.mts.map +1 -1
  445. package/resources/fine-tuning/jobs/jobs.d.ts +13 -12
  446. package/resources/fine-tuning/jobs/jobs.d.ts.map +1 -1
  447. package/resources/fine-tuning/jobs/jobs.js +2 -2
  448. package/resources/fine-tuning/jobs/jobs.js.map +1 -1
  449. package/resources/fine-tuning/jobs/jobs.mjs +2 -2
  450. package/resources/fine-tuning/jobs/jobs.mjs.map +1 -1
  451. package/resources/graders/grader-models.d.mts +1 -1
  452. package/resources/graders/grader-models.d.ts +1 -1
  453. package/resources/images.d.mts +83 -68
  454. package/resources/images.d.mts.map +1 -1
  455. package/resources/images.d.ts +83 -68
  456. package/resources/images.d.ts.map +1 -1
  457. package/resources/images.js.map +1 -1
  458. package/resources/images.mjs.map +1 -1
  459. package/resources/moderations.d.mts +5 -4
  460. package/resources/moderations.d.mts.map +1 -1
  461. package/resources/moderations.d.ts +5 -4
  462. package/resources/moderations.d.ts.map +1 -1
  463. package/resources/moderations.js +2 -1
  464. package/resources/moderations.js.map +1 -1
  465. package/resources/moderations.mjs +2 -1
  466. package/resources/moderations.mjs.map +1 -1
  467. package/resources/realtime/calls.d.mts +1 -1
  468. package/resources/realtime/calls.d.ts +1 -1
  469. package/resources/realtime/client-secrets.d.mts +4 -4
  470. package/resources/realtime/client-secrets.d.ts +4 -4
  471. package/resources/realtime/client-secrets.js +1 -1
  472. package/resources/realtime/client-secrets.mjs +1 -1
  473. package/resources/realtime/realtime.d.mts +16 -16
  474. package/resources/realtime/realtime.d.ts +16 -16
  475. package/resources/responses/input-tokens.d.mts +9 -9
  476. package/resources/responses/input-tokens.d.ts +9 -9
  477. package/resources/responses/responses.d.mts +278 -187
  478. package/resources/responses/responses.d.mts.map +1 -1
  479. package/resources/responses/responses.d.ts +278 -187
  480. package/resources/responses/responses.d.ts.map +1 -1
  481. package/resources/responses/responses.js +3 -3
  482. package/resources/responses/responses.js.map +1 -1
  483. package/resources/responses/responses.mjs +3 -3
  484. package/resources/responses/responses.mjs.map +1 -1
  485. package/resources/shared.d.mts +12 -12
  486. package/resources/shared.d.ts +12 -12
  487. package/resources/uploads/parts.d.mts +5 -4
  488. package/resources/uploads/parts.d.mts.map +1 -1
  489. package/resources/uploads/parts.d.ts +5 -4
  490. package/resources/uploads/parts.d.ts.map +1 -1
  491. package/resources/uploads/parts.js +5 -4
  492. package/resources/uploads/parts.js.map +1 -1
  493. package/resources/uploads/parts.mjs +5 -4
  494. package/resources/uploads/parts.mjs.map +1 -1
  495. package/resources/uploads/uploads.d.mts +11 -11
  496. package/resources/uploads/uploads.d.ts +11 -11
  497. package/resources/uploads/uploads.js +9 -9
  498. package/resources/uploads/uploads.mjs +9 -9
  499. package/resources/vector-stores/file-batches.d.mts +11 -11
  500. package/resources/vector-stores/file-batches.d.ts +11 -11
  501. package/resources/vector-stores/files.d.mts +8 -8
  502. package/resources/vector-stores/files.d.ts +8 -8
  503. package/resources/vector-stores/files.js +3 -3
  504. package/resources/vector-stores/files.mjs +3 -3
  505. package/resources/vector-stores/vector-stores.d.mts +3 -3
  506. package/resources/vector-stores/vector-stores.d.ts +3 -3
  507. package/resources/webhooks/webhooks.d.mts +12 -6
  508. package/resources/webhooks/webhooks.d.mts.map +1 -1
  509. package/resources/webhooks/webhooks.d.ts +12 -6
  510. package/resources/webhooks/webhooks.d.ts.map +1 -1
  511. package/src/_vendor/partial-json-parser/parser.ts +4 -3
  512. package/src/_vendor/zod-to-json-schema/parsers/string.ts +1 -1
  513. package/src/_vendor/zod-to-json-schema/parsers/tuple.ts +23 -16
  514. package/src/_vendor/zod-to-json-schema/zodToJsonSchema.ts +11 -6
  515. package/src/auth/subject-token-providers.ts +12 -7
  516. package/src/auth/workload-identity-auth.ts +27 -12
  517. package/src/azure.ts +34 -3
  518. package/src/beta/realtime/internal-base.ts +3 -2
  519. package/src/beta/realtime/websocket.ts +17 -7
  520. package/src/beta/realtime/ws.ts +9 -5
  521. package/src/client.ts +19 -4
  522. package/src/core/EventEmitter.ts +5 -8
  523. package/src/core/pagination.ts +1 -1
  524. package/src/core/streaming.ts +69 -13
  525. package/src/helpers/audio.ts +27 -6
  526. package/src/helpers/zod.ts +78 -29
  527. package/src/internal/bedrock.ts +84 -58
  528. package/src/internal/detect-platform.ts +2 -2
  529. package/src/internal/errors.ts +3 -2
  530. package/src/internal/headers.ts +7 -5
  531. package/src/internal/parse.ts +1 -1
  532. package/src/internal/realtime-credentials.ts +27 -0
  533. package/src/internal/responses/response-accumulator.ts +1 -0
  534. package/src/internal/to-file.ts +6 -5
  535. package/src/internal/uploads.ts +12 -1
  536. package/src/internal/utils/base64.ts +3 -0
  537. package/src/lib/AbstractChatCompletionRunner.ts +31 -6
  538. package/src/lib/AssistantStream.ts +25 -11
  539. package/src/lib/ChatCompletionRunner.ts +8 -4
  540. package/src/lib/ChatCompletionStream.ts +8 -0
  541. package/src/lib/ChatCompletionStreamingRunner.ts +1 -0
  542. package/src/lib/EventEmitter.ts +17 -8
  543. package/src/lib/EventStream.ts +105 -52
  544. package/src/lib/ResponsesParser.ts +33 -12
  545. package/src/lib/RunnableFunction.ts +2 -2
  546. package/src/lib/embeddings.ts +18 -12
  547. package/src/lib/file-processing.ts +5 -4
  548. package/src/lib/parser.ts +35 -11
  549. package/src/lib/polling.ts +5 -4
  550. package/src/lib/responses/EventTypes.ts +3 -69
  551. package/src/lib/responses/ResponseInputItems.ts +29 -4
  552. package/src/lib/transform.ts +1 -0
  553. package/src/lib/vector-store-polling.ts +3 -3
  554. package/src/lib/vector-store-upload.ts +5 -1
  555. package/src/providers/bedrock/aws.ts +23 -24
  556. package/src/realtime/internal-base.ts +3 -5
  557. package/src/realtime/websocket.ts +14 -6
  558. package/src/realtime/ws.ts +9 -4
  559. package/src/resources/admin/organization/audit-logs.ts +1 -1
  560. package/src/resources/admin/organization/projects/api-keys.ts +6 -0
  561. package/src/resources/admin/organization/projects/projects.ts +2 -2
  562. package/src/resources/admin/organization/projects/service-accounts/api-keys.ts +11 -0
  563. package/src/resources/admin/organization/projects/service-accounts/service-accounts.ts +15 -0
  564. package/src/resources/audio/speech.ts +3 -2
  565. package/src/resources/audio/transcriptions.ts +10 -10
  566. package/src/resources/audio/translations.ts +1 -1
  567. package/src/resources/batches.ts +6 -5
  568. package/src/resources/beta/assistants.ts +143 -147
  569. package/src/resources/beta/responses/input-tokens.ts +11 -11
  570. package/src/resources/beta/responses/responses.ts +315 -192
  571. package/src/resources/beta/threads/messages.ts +29 -23
  572. package/src/resources/beta/threads/runs/runs.ts +39 -35
  573. package/src/resources/beta/threads/runs/steps.ts +14 -15
  574. package/src/resources/beta/threads/threads.ts +53 -50
  575. package/src/resources/chat/completions/completions.ts +89 -81
  576. package/src/resources/completions.ts +15 -14
  577. package/src/resources/content-provenance-checks.ts +1 -1
  578. package/src/resources/conversations/items.ts +14 -3
  579. package/src/resources/embeddings.ts +6 -6
  580. package/src/resources/evals/evals.ts +1 -1
  581. package/src/resources/evals/runs/runs.ts +62 -57
  582. package/src/resources/files.ts +5 -5
  583. package/src/resources/fine-tuning/alpha/graders.ts +5 -4
  584. package/src/resources/fine-tuning/checkpoints/permissions.ts +8 -4
  585. package/src/resources/fine-tuning/jobs/jobs.ts +13 -12
  586. package/src/resources/graders/grader-models.ts +1 -1
  587. package/src/resources/images.ts +86 -67
  588. package/src/resources/moderations.ts +5 -4
  589. package/src/resources/realtime/calls.ts +1 -1
  590. package/src/resources/realtime/client-secrets.ts +4 -4
  591. package/src/resources/realtime/realtime.ts +16 -16
  592. package/src/resources/responses/input-tokens.ts +9 -9
  593. package/src/resources/responses/responses.ts +309 -185
  594. package/src/resources/shared.ts +12 -12
  595. package/src/resources/uploads/parts.ts +5 -4
  596. package/src/resources/uploads/uploads.ts +11 -11
  597. package/src/resources/vector-stores/file-batches.ts +11 -11
  598. package/src/resources/vector-stores/files.ts +8 -8
  599. package/src/resources/vector-stores/vector-stores.ts +3 -3
  600. package/src/resources/webhooks/webhooks.ts +12 -6
  601. package/src/version.ts +1 -1
  602. package/version.d.mts +1 -1
  603. package/version.d.ts +1 -1
  604. package/version.js +1 -1
  605. package/version.mjs +1 -1
@@ -15,7 +15,8 @@ type ResponseAdditionalToolsInputItem = Extract<ResponseInputItem, { type: 'addi
15
15
  /**
16
16
  * Normalizes a mixed array of stored response history items into clean
17
17
  * `ResponseInputItem`s that can be sent back to `responses.create()`. Known items
18
- * that cannot be replayed without changing their meaning are omitted.
18
+ * that cannot be replayed without changing their meaning are omitted. SDK-only
19
+ * parsed values are removed without changing the stored items.
19
20
  *
20
21
  * @throws {TypeError} If an item type is not supported by the installed SDK.
21
22
  */
@@ -33,12 +34,38 @@ export function toResponseInputItems(items: Iterable<ResponseInputItemLike>): Re
33
34
  /**
34
35
  * Normalizes a stored response history item into a clean `ResponseInputItem`, or
35
36
  * returns `null` when a known item cannot be replayed without changing its
36
- * meaning.
37
+ * meaning. SDK-only parsed values are removed without changing the stored item.
37
38
  *
38
39
  * @throws {TypeError} If the item type is not supported by the installed SDK.
39
40
  */
40
41
  export function toResponseInputItem(item: ResponseInputItemLike): ResponseInputItem | null {
41
42
  switch (item.type) {
43
+ case 'message': {
44
+ if (item.role !== 'assistant' || !('id' in item) || !Array.isArray(item.content)) {
45
+ return stripCreatedBy(item);
46
+ }
47
+ const content = item.content.map((part) => {
48
+ if ((part.type === 'output_text' || part.type === 'refusal') && 'parsed' in part) {
49
+ const { parsed: _parsed, ...inputPart } = part;
50
+ return inputPart;
51
+ }
52
+ return part;
53
+ });
54
+ if (content.every((part, index) => part === item.content[index])) {
55
+ return stripCreatedBy(item);
56
+ }
57
+ return { ...stripCreatedBy(item), content };
58
+ }
59
+
60
+ case 'function_call': {
61
+ const inputItem = stripCreatedBy(item);
62
+ if (!('parsed_arguments' in inputItem)) {
63
+ return inputItem;
64
+ }
65
+ const { parsed_arguments: _parsedArguments, ...withoutParsedArguments } = inputItem;
66
+ return withoutParsedArguments;
67
+ }
68
+
42
69
  case 'additional_tools': {
43
70
  if (item.role !== 'developer') {
44
71
  return null;
@@ -87,7 +114,6 @@ export function toResponseInputItem(item: ResponseInputItemLike): ResponseInputI
87
114
  case 'configuration_update':
88
115
  case 'custom_tool_call':
89
116
  case 'file_search_call':
90
- case 'function_call':
91
117
  case 'function_call_output':
92
118
  case 'image_generation_call':
93
119
  case 'item_reference':
@@ -97,7 +123,6 @@ export function toResponseInputItem(item: ResponseInputItemLike): ResponseInputI
97
123
  case 'mcp_approval_response':
98
124
  case 'mcp_call':
99
125
  case 'mcp_list_tools':
100
- case 'message':
101
126
  case 'program':
102
127
  case 'program_output':
103
128
  case 'reasoning':
@@ -70,6 +70,7 @@ const JSON_SCHEMA_UNSUPPORTED_SCHEMA_KEYWORDS = new Set([
70
70
  'minContains',
71
71
  'minProperties',
72
72
  'not',
73
+ 'oneOf',
73
74
  'patternProperties',
74
75
  'prefixItems',
75
76
  'propertyNames',
@@ -6,8 +6,8 @@ import { pollWithResponse } from './polling';
6
6
  type PollOptions = RequestOptions & { pollIntervalMs?: number };
7
7
 
8
8
  /**
9
- * Polls an attached file through the resource's retrieve method. Failed files are
10
- * returned to the caller, and cancelled files retain their existing retry behavior.
9
+ * Polls an attached file through the resource's retrieve method until it completes,
10
+ * fails, or is cancelled. Retrieval errors are propagated unchanged.
11
11
  *
12
12
  * @internal
13
13
  */
@@ -20,7 +20,7 @@ export function pollVectorStoreFile(
20
20
  return pollWithResponse(
21
21
  (headers) => resource.retrieve(fileID, { vector_store_id: vectorStoreID }, { ...options, headers }),
22
22
  ['in_progress'],
23
- ['failed', 'completed'],
23
+ ['failed', 'cancelled', 'completed'],
24
24
  options,
25
25
  );
26
26
  }
@@ -8,7 +8,8 @@ type UploadOptions = RequestOptions & { pollIntervalMs?: number; maxConcurrency?
8
8
 
9
9
  /**
10
10
  * Uploads files with a shared iterator, then creates and polls the batch. Every
11
- * worker settles before upload failures are propagated.
11
+ * worker settles before upload failures are propagated. Zero concurrency is
12
+ * rejected before any upload or batch-creation request.
12
13
  *
13
14
  * @internal
14
15
  */
@@ -28,6 +29,9 @@ export async function uploadAndPollVectorStoreFileBatch(
28
29
 
29
30
  const configuredConcurrency = options?.maxConcurrency ?? 5;
30
31
  const concurrencyLimit = Math.min(configuredConcurrency, files.length);
32
+ if (concurrencyLimit === 0) {
33
+ throw new RangeError('maxConcurrency must be greater than 0');
34
+ }
31
35
  const fileIterator = files.values();
32
36
  const allFileIds = [...fileIds];
33
37
 
@@ -7,9 +7,9 @@ import type { BodyInit } from '../../internal/builtin-types';
7
7
  import {
8
8
  assertBedrockRequestOrigin,
9
9
  assertProviderOwnsAuthorization,
10
- errorWithCause,
11
10
  normalizeOptionalString,
12
11
  parseBedrockEndpointHostname,
12
+ prepareBedrockAuth,
13
13
  resolveBedrockBearerAuth,
14
14
  resolveBedrockEndpoint,
15
15
  } from '../../internal/bedrock';
@@ -115,7 +115,7 @@ function requestTarget(parsedURL: URL): { path: string; query: Record<string, st
115
115
  } else if (typeof existing === 'string') {
116
116
  query[name] = [existing, value];
117
117
  } else {
118
- query[name] = [...existing, value];
118
+ existing.push(value);
119
119
  }
120
120
  }
121
121
  return { path: parsedURL.pathname, query };
@@ -194,14 +194,14 @@ class BedrockSigV4Auth implements BedrockRequestAuth {
194
194
  }));
195
195
  }
196
196
 
197
- async prepareRequest(request: FinalizedRequestInit, { url }: ProviderRequestContext): Promise<void> {
197
+ async prepareRequest(request: FinalizedRequestInit, context: ProviderRequestContext): Promise<void> {
198
198
  if (Object.prototype.toString.call((globalThis as any).process) !== '[object process]') {
199
199
  throw new Errors.OpenAIError(
200
200
  'Bedrock AWS credential authentication is only supported in Node.js and compatible server runtimes. Use bearer authentication in this runtime.',
201
201
  );
202
202
  }
203
203
 
204
- const parsedURL = new URL(url);
204
+ const parsedURL = new URL(context.url);
205
205
  const canonicalEndpoint = parseBedrockEndpointHostname(parsedURL.hostname);
206
206
  if (canonicalEndpoint && canonicalEndpoint.endpoint !== this.options.endpoint) {
207
207
  throw new Errors.OpenAIError(
@@ -225,27 +225,26 @@ class BedrockSigV4Auth implements BedrockRequestAuth {
225
225
  const body = signableBody(request.body);
226
226
  const target = requestTarget(parsedURL);
227
227
 
228
- let signed: { headers: Record<string, string> };
229
- try {
230
- signed = await this.signatureV4().sign({
231
- protocol: parsedURL.protocol,
232
- hostname: parsedURL.hostname,
233
- ...(parsedURL.port ? { port: Number(parsedURL.port) } : {}),
234
- method,
235
- ...target,
236
- headers: Object.fromEntries(headers.entries()),
237
- ...(body === undefined ? {} : { body }),
238
- });
239
- } catch (cause) {
240
- const message = this.options.usesDefaultChain
228
+ await prepareBedrockAuth(request, context, {
229
+ resolve: () =>
230
+ this.signatureV4().sign({
231
+ protocol: parsedURL.protocol,
232
+ hostname: parsedURL.hostname,
233
+ ...(parsedURL.port ? { port: Number(parsedURL.port) } : {}),
234
+ method,
235
+ ...target,
236
+ headers: Object.fromEntries(headers.entries()),
237
+ ...(body === undefined ? {} : { body }),
238
+ }),
239
+ failureMessage: this.options.usesDefaultChain
241
240
  ? 'Could not find credentials for Bedrock. Pass AWS credentials to `bedrock(...)` or configure the default AWS credential chain.'
242
- : 'Failed to resolve AWS credentials for Bedrock. Verify your AWS profile, environment variables, or runtime identity configuration and try again.';
243
- throw errorWithCause(message, cause);
244
- }
245
-
246
- request.method = method;
247
- request.redirect = 'manual';
248
- request.headers = new Headers(signed.headers);
241
+ : 'Failed to resolve AWS credentials for Bedrock. Verify your AWS profile, environment variables, or runtime identity configuration and try again.',
242
+ apply: (signed) => {
243
+ request.method = method;
244
+ request.redirect = 'manual';
245
+ request.headers = new Headers(signed.headers);
246
+ },
247
+ });
249
248
  }
250
249
  }
251
250
 
@@ -281,19 +281,17 @@ export function buildRealtimeURL(
281
281
  return url;
282
282
  }
283
283
 
284
- let url: URL;
284
+ const url = new URL(baseURL);
285
285
  if (azure) {
286
- url = new URL(baseURL);
287
286
  const basePath = url.pathname.replace(/\/+/g, '/').replace(/\/+$/, '');
288
287
  const versionedPath = basePath.endsWith('/v1') ? basePath : `${basePath}/v1`;
289
288
  url.pathname = `${versionedPath}/realtime`;
290
289
  url.search = '';
291
- url.hash = '';
292
290
  } else {
293
- const path = '/realtime';
294
- url = new URL(baseURL + (baseURL.endsWith('/') ? path.slice(1) : path));
291
+ url.pathname += url.pathname.endsWith('/') ? 'realtime' : '/realtime';
295
292
  }
296
293
 
294
+ url.hash = '';
297
295
  url.protocol = 'wss';
298
296
  // Sideband control connections attach to an existing call via `call_id`.
299
297
  if (hasCallID) {
@@ -1,3 +1,4 @@
1
+ import { getRealtimeAPIKey, resolveRealtimeAPIKey } from '../internal/realtime-credentials';
1
2
  import type { AzureOpenAI } from '../index';
2
3
  import { assertBedrockWebSocketOrigin } from '../internal/bedrock';
3
4
  import { OpenAI } from '../index';
@@ -175,15 +176,18 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
175
176
  onURL?: (url: URL) => void;
176
177
  /** Indicates the token was resolved by the factory just before connecting. @internal */
177
178
  __resolvedApiKey?: boolean;
179
+ /** Credential captured by an async factory for this connection. @internal */
180
+ __apiKey?: string | null;
178
181
  },
179
182
  client?: Pick<OpenAI, 'apiKey' | 'baseURL'>,
180
183
  ) {
181
184
  super();
185
+ let apiKey = getRealtimeAPIKey(client, props.__apiKey);
182
186
  const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
183
187
  const dangerouslyAllowBrowser =
184
188
  props.dangerouslyAllowBrowser ??
185
189
  (client as any)?._options?.dangerouslyAllowBrowser ??
186
- (client?.apiKey?.startsWith('ek_') ? true : null);
190
+ (apiKey?.startsWith('ek_') ? true : null);
187
191
  if (!dangerouslyAllowBrowser && isRunningInBrowserOrBrowserWorker()) {
188
192
  throw new OpenAIError(
189
193
  "It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\n\nYou can avoid this error by creating an ephemeral session token:\nhttps://platform.openai.com/docs/api-reference/realtime-sessions\n",
@@ -191,6 +195,9 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
191
195
  }
192
196
 
193
197
  client ??= new OpenAI({ dangerouslyAllowBrowser });
198
+ if (apiKey === undefined) {
199
+ apiKey = client.apiKey;
200
+ }
194
201
 
195
202
  if (hasProvider && !props?.__resolvedApiKey) {
196
203
  throw new Error(
@@ -209,10 +216,10 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
209
216
  assertBedrockWebSocketOrigin(client, this.url);
210
217
 
211
218
  const azure = isAzure(client);
212
- const protocols = ['realtime', ...(azure ? [] : [`openai-insecure-api-key.${client.apiKey}`])];
219
+ const protocols = ['realtime', ...(azure ? [] : [`openai-insecure-api-key.${apiKey}`])];
213
220
 
214
221
  this.socket = azure
215
- ? createAzureWebSocket(this.url, client.apiKey, props.__resolvedApiKey === true, protocols)
222
+ ? createAzureWebSocket(this.url, apiKey, props.__resolvedApiKey === true, protocols)
216
223
  : new WebSocket(this.url.toString(), protocols);
217
224
 
218
225
  this.socket.addEventListener('message', (websocketEvent: MessageEvent) => {
@@ -269,7 +276,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
269
276
  dangerouslyAllowBrowser?: boolean;
270
277
  },
271
278
  ): Promise<OpenAIRealtimeWebSocket> {
272
- const resolvedApiKey = await client._callApiKey();
279
+ const { apiKey, isProvider: resolvedApiKey } = await resolveRealtimeAPIKey(client);
273
280
  const url = buildRealtimeURL(client, props);
274
281
  assertBedrockWebSocketOrigin(client, url);
275
282
  return new OpenAIRealtimeWebSocket(
@@ -277,6 +284,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
277
284
  ...props,
278
285
  buildRealtimeURL: () => url,
279
286
  __resolvedApiKey: resolvedApiKey,
287
+ __apiKey: apiKey,
280
288
  },
281
289
  client,
282
290
  );
@@ -301,8 +309,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
301
309
  } = {},
302
310
  ): Promise<OpenAIRealtimeWebSocket> {
303
311
  const connection = getAzureRealtimeConnection(client, options);
304
- const isApiKeyProvider = await client._callApiKey();
305
- const apiKey = client.apiKey;
312
+ const { apiKey, isProvider: isApiKeyProvider } = await resolveRealtimeAPIKey(client);
306
313
  if (!apiKey) {
307
314
  throw new Error('Azure OpenAI Realtime requires an API key');
308
315
  }
@@ -312,6 +319,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
312
319
  ...connection,
313
320
  ...(dangerouslyAllowBrowser === undefined ? {} : { dangerouslyAllowBrowser }),
314
321
  __resolvedApiKey: isApiKeyProvider,
322
+ __apiKey: apiKey,
315
323
  },
316
324
  client,
317
325
  );
@@ -1,3 +1,4 @@
1
+ import { resolveRealtimeAPIKey } from '../internal/realtime-credentials';
1
2
  import * as WS from 'ws';
2
3
  import { assertBedrockWebSocketOrigin } from '../internal/bedrock';
3
4
  import { protectWebSocketOptionsFromCredentialRedirects } from '../internal/ws';
@@ -46,11 +47,14 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
46
47
 
47
48
  /** Indicates that a function-based credential was resolved by an async factory. @internal */
48
49
  __resolvedApiKey?: boolean;
50
+ /** Credential captured by an async factory for this connection. @internal */
51
+ __apiKey?: string | null;
49
52
  },
50
53
  client?: Pick<OpenAI, 'apiKey' | 'baseURL'>,
51
54
  ) {
52
55
  super();
53
56
  client ??= new OpenAI();
57
+ const apiKey = props.__apiKey === undefined ? client.apiKey : props.__apiKey;
54
58
  const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
55
59
  if (hasProvider && !props.__resolvedApiKey) {
56
60
  throw new Error(
@@ -65,7 +69,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
65
69
  const headers = {
66
70
  'User-Agent': `${client.constructor.name}/JS ${VERSION}`,
67
71
  ...props.options?.headers,
68
- ...(isAzure(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${client.apiKey}` }),
72
+ ...(isAzure(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${apiKey}` }),
69
73
  };
70
74
 
71
75
  this.socket = new WS.WebSocket(
@@ -130,7 +134,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
130
134
  options?: WS.ClientOptions | undefined;
131
135
  },
132
136
  ): Promise<OpenAIRealtimeWS> {
133
- const resolvedApiKey = await client._callApiKey();
137
+ const { apiKey, isProvider: resolvedApiKey } = await resolveRealtimeAPIKey(client);
134
138
  const url = buildRealtimeURL(client, props);
135
139
  assertBedrockWebSocketOrigin(client, url);
136
140
  return new OpenAIRealtimeWS(
@@ -138,6 +142,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
138
142
  ...props,
139
143
  buildRealtimeURL: () => url,
140
144
  __resolvedApiKey: resolvedApiKey,
145
+ __apiKey: apiKey,
141
146
  },
142
147
  client,
143
148
  );
@@ -162,8 +167,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
162
167
  } = {},
163
168
  ): Promise<OpenAIRealtimeWS> {
164
169
  const connection = getAzureRealtimeConnection(client, props);
165
- const isApiKeyProvider = await client._callApiKey();
166
- const apiKey = client.apiKey;
170
+ const { apiKey, isProvider: isApiKeyProvider } = await resolveRealtimeAPIKey(client);
167
171
  if (!apiKey) {
168
172
  throw new Error('Azure OpenAI Realtime requires an API key');
169
173
  }
@@ -178,6 +182,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
178
182
  },
179
183
  },
180
184
  __resolvedApiKey: isApiKeyProvider,
185
+ __apiKey: apiKey,
181
186
  },
182
187
  client,
183
188
  );
@@ -1860,7 +1860,7 @@ export interface AuditLogListParams extends ConversationCursorPageParams {
1860
1860
  /**
1861
1861
  * Return only events with a `type` in one of these values. For example,
1862
1862
  * `project.created`. For all options, see the documentation for the
1863
- * [audit log object](https://platform.openai.com/docs/api-reference/audit-logs/object).
1863
+ * [audit log object](https://developers.openai.com/api/reference/resources/admin/subresources/organization/subresources/audit_logs).
1864
1864
  */
1865
1865
  event_types?: Array<
1866
1866
  | 'api_key.created'
@@ -130,6 +130,12 @@ export interface ProjectAPIKey {
130
130
  * The redacted value of the API key
131
131
  */
132
132
  redacted_value: string;
133
+
134
+ /**
135
+ * The Unix timestamp (in seconds) when the API key expires, or null if it does not
136
+ * expire.
137
+ */
138
+ expires_at?: number | null;
133
139
  }
134
140
 
135
141
  export namespace ProjectAPIKey {
@@ -313,7 +313,7 @@ export interface ProjectCreateParams {
313
313
  * @deprecated Create the project with the specified data residency region. Your
314
314
  * organization must have access to Data residency functionality in order to use.
315
315
  * See
316
- * [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls)
316
+ * [data residency controls](https://developers.openai.com/api/docs/guides/your-data#data-residency-controls)
317
317
  * to review the functionality and limitations of setting this field. Deprecated:
318
318
  * use `residency` instead. Do not provide both `geography` and `residency`.
319
319
  */
@@ -323,7 +323,7 @@ export interface ProjectCreateParams {
323
323
  * Create the project with the specified residency configuration. Your organization
324
324
  * must have access to the requested residency configuration in order to use it.
325
325
  * See
326
- * [data residency controls](https://platform.openai.com/docs/guides/your-data#data-residency-controls)
326
+ * [data residency controls](https://developers.openai.com/api/docs/guides/your-data#data-residency-controls)
327
327
  * to review the functionality and limitations of setting this field.
328
328
  */
329
329
  residency?: ProjectResidency | null;
@@ -56,6 +56,12 @@ export interface APIKeyCreateResponse {
56
56
  * The unredacted API key value.
57
57
  */
58
58
  value: string;
59
+
60
+ /**
61
+ * The Unix timestamp (in seconds) when the API key expires, or null if it does not
62
+ * expire.
63
+ */
64
+ expires_at?: number | null;
59
65
  }
60
66
 
61
67
  export interface APIKeyCreateParams {
@@ -64,6 +70,11 @@ export interface APIKeyCreateParams {
64
70
  */
65
71
  project_id: string;
66
72
 
73
+ /**
74
+ * Body param: Number of seconds until the API key expires.
75
+ */
76
+ expires_in_seconds?: number | null;
77
+
67
78
  /**
68
79
  * Body param: API key name.
69
80
  */
@@ -205,6 +205,12 @@ export namespace ServiceAccountCreateResponse {
205
205
  object: 'organization.project.service_account.api_key';
206
206
 
207
207
  value: string;
208
+
209
+ /**
210
+ * The Unix timestamp (in seconds) when the API key expires, or null if it does not
211
+ * expire.
212
+ */
213
+ expires_at?: number | null;
208
214
  }
209
215
  }
210
216
 
@@ -226,6 +232,15 @@ export interface ServiceAccountCreateParams {
226
232
  * Create the service account without default roles or an API key.
227
233
  */
228
234
  create_service_account_only?: boolean | null;
235
+
236
+ /**
237
+ * Number of seconds until the initial API key expires. If omitted or null, the key
238
+ * does not expire unless the effective organization or project policy requires an
239
+ * expiration. When a policy sets a maximum lifetime, this value must be provided
240
+ * and must not exceed that limit. A non-null value cannot be used when
241
+ * `create_service_account_only` is true.
242
+ */
243
+ expires_in_seconds?: number | null;
229
244
  }
230
245
 
231
246
  export interface ServiceAccountRetrieveParams {
@@ -46,7 +46,8 @@ export interface SpeechCreateParams {
46
46
  input: string;
47
47
 
48
48
  /**
49
- * One of the available [TTS models](https://platform.openai.com/docs/models#tts):
49
+ * One of the available
50
+ * [TTS models](https://developers.openai.com/api/docs/guides/text-to-speech):
50
51
  * `tts-1`, `tts-1-hd`, `gpt-4o-mini-tts`, or `gpt-4o-mini-tts-2025-12-15`.
51
52
  */
52
53
  model: (string & {}) | SpeechModel;
@@ -57,7 +58,7 @@ export interface SpeechCreateParams {
57
58
  * `shimmer`, `verse`, `marin`, and `cedar`. You may also provide a custom voice
58
59
  * object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
59
60
  * voices are available in the
60
- * [Text to speech guide](https://platform.openai.com/docs/guides/text-to-speech#voice-options).
61
+ * [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
61
62
  */
62
63
  voice:
63
64
  | string
@@ -381,7 +381,7 @@ export interface TranscriptionSegment {
381
381
  /**
382
382
  * Emitted when a diarized transcription returns a completed segment with speaker
383
383
  * information. Only emitted when you
384
- * [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription)
384
+ * [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
385
385
  * with `stream` set to `true` and `response_format` set to `diarized_json`.
386
386
  */
387
387
  export type TranscriptionStreamEvent =
@@ -392,7 +392,7 @@ export type TranscriptionStreamEvent =
392
392
  /**
393
393
  * Emitted when there is an additional text delta. This is also the first event
394
394
  * emitted when the transcription starts. Only emitted when you
395
- * [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription)
395
+ * [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
396
396
  * with the `Stream` parameter set to `true`.
397
397
  */
398
398
  export interface TranscriptionTextDeltaEvent {
@@ -408,7 +408,7 @@ export interface TranscriptionTextDeltaEvent {
408
408
 
409
409
  /**
410
410
  * The log probabilities of the delta. Only included if you
411
- * [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription)
411
+ * [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
412
412
  * with the `include[]` parameter set to `logprobs`.
413
413
  */
414
414
  logprobs?: Array<TranscriptionTextDeltaEvent.Logprob>;
@@ -442,7 +442,7 @@ export namespace TranscriptionTextDeltaEvent {
442
442
  /**
443
443
  * Emitted when the transcription is complete. Contains the complete transcription
444
444
  * text. Only emitted when you
445
- * [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription)
445
+ * [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
446
446
  * with the `Stream` parameter set to `true`.
447
447
  */
448
448
  export interface TranscriptionTextDoneEvent {
@@ -465,7 +465,7 @@ export interface TranscriptionTextDoneEvent {
465
465
  /**
466
466
  * The log probabilities of the individual tokens in the transcription. Only
467
467
  * included if you
468
- * [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription)
468
+ * [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
469
469
  * with the `include[]` parameter set to `logprobs`.
470
470
  */
471
471
  logprobs?: Array<TranscriptionTextDoneEvent.Logprob>;
@@ -545,7 +545,7 @@ export namespace TranscriptionTextDoneEvent {
545
545
  /**
546
546
  * Emitted when a diarized transcription returns a completed segment with speaker
547
547
  * information. Only emitted when you
548
- * [create a transcription](https://platform.openai.com/docs/api-reference/audio/create-transcription)
548
+ * [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
549
549
  * with `stream` set to `true` and `response_format` set to `diarized_json`.
550
550
  */
551
551
  export interface TranscriptionTextSegmentEvent {
@@ -738,7 +738,7 @@ export interface TranscriptionCreateParamsBase<
738
738
  /**
739
739
  * An optional text to guide the model's style or continue a previous audio
740
740
  * segment. The
741
- * [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
741
+ * [prompt](https://developers.openai.com/api/docs/guides/speech-to-text#prompting)
742
742
  * should match the audio language. This field is not supported when using
743
743
  * `gpt-4o-transcribe-diarize`.
744
744
  */
@@ -758,7 +758,7 @@ export interface TranscriptionCreateParamsBase<
758
758
  * generated using
759
759
  * [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).
760
760
  * See the
761
- * [Streaming section of the Speech-to-Text guide](https://platform.openai.com/docs/guides/speech-to-text?lang=curl#streaming-transcriptions)
761
+ * [Streaming section of the Speech-to-Text guide](https://developers.openai.com/api/docs/guides/speech-to-text?lang=curl#streaming)
762
762
  * for more information.
763
763
  *
764
764
  * Note: Streaming is not supported for the `whisper-1` model and will be ignored.
@@ -824,7 +824,7 @@ export interface TranscriptionCreateParamsNonStreaming<
824
824
  * generated using
825
825
  * [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).
826
826
  * See the
827
- * [Streaming section of the Speech-to-Text guide](https://platform.openai.com/docs/guides/speech-to-text?lang=curl#streaming-transcriptions)
827
+ * [Streaming section of the Speech-to-Text guide](https://developers.openai.com/api/docs/guides/speech-to-text?lang=curl#streaming)
828
828
  * for more information.
829
829
  *
830
830
  * Note: Streaming is not supported for the `whisper-1` model and will be ignored.
@@ -838,7 +838,7 @@ export interface TranscriptionCreateParamsStreaming extends TranscriptionCreateP
838
838
  * generated using
839
839
  * [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).
840
840
  * See the
841
- * [Streaming section of the Speech-to-Text guide](https://platform.openai.com/docs/guides/speech-to-text?lang=curl#streaming-transcriptions)
841
+ * [Streaming section of the Speech-to-Text guide](https://developers.openai.com/api/docs/guides/speech-to-text?lang=curl#streaming)
842
842
  * for more information.
843
843
  *
844
844
  * Note: Streaming is not supported for the `whisper-1` model and will be ignored.
@@ -95,7 +95,7 @@ export interface TranslationCreateParams<
95
95
  /**
96
96
  * An optional text to guide the model's style or continue a previous audio
97
97
  * segment. The
98
- * [prompt](https://platform.openai.com/docs/guides/speech-to-text#prompting)
98
+ * [prompt](https://developers.openai.com/api/docs/guides/speech-to-text#prompting)
99
99
  * should be in English.
100
100
  */
101
101
  prompt?: string;
@@ -157,8 +157,8 @@ export interface Batch {
157
157
  * Model ID used to process the batch, like `gpt-6-astra`. OpenAI offers a wide
158
158
  * range of models with different capabilities, performance characteristics, and
159
159
  * price points. Refer to the
160
- * [model guide](https://platform.openai.com/docs/models) to browse and compare
161
- * available models.
160
+ * [model guide](https://developers.openai.com/api/docs/models) to browse and
161
+ * compare available models.
162
162
  */
163
163
  model?: string;
164
164
 
@@ -272,7 +272,7 @@ export namespace BatchUsage {
272
272
  export interface InputTokensDetails {
273
273
  /**
274
274
  * The number of tokens that were retrieved from the cache.
275
- * [More on prompt caching](https://platform.openai.com/docs/guides/prompt-caching).
275
+ * [More on prompt caching](https://developers.openai.com/api/docs/guides/prompt-caching).
276
276
  */
277
277
  cached_tokens: number;
278
278
  }
@@ -316,11 +316,12 @@ export interface BatchCreateParams {
316
316
  /**
317
317
  * The ID of an uploaded file that contains requests for the new batch.
318
318
  *
319
- * See [upload file](https://platform.openai.com/docs/api-reference/files/create)
319
+ * See
320
+ * [upload file](https://developers.openai.com/api/reference/resources/files/methods/create)
320
321
  * for how to upload a file.
321
322
  *
322
323
  * Your input file must be formatted as a
323
- * [JSONL file](https://platform.openai.com/docs/api-reference/batch/request-input),
324
+ * [JSONL file](https://developers.openai.com/api/docs/guides/batch#1-prepare-your-batch-file),
324
325
  * and must be uploaded with the purpose `batch`. The file can contain up to 50,000
325
326
  * requests, and can be up to 200 MB in size.
326
327
  */