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
@@ -14,6 +14,20 @@ export type EventParameters<Events, EventType extends keyof Events> = Record<
14
14
  EventListener<Events, EventType> extends (...args: infer P) => any ? P : never
15
15
  >[EventType];
16
16
 
17
+ /** Result of awaiting an event: no value, one unwrapped value, or its argument tuple. */
18
+ export type EmittedEventResult<Args extends unknown[]> = [Args] extends [[infer Param]]
19
+ ? Param
20
+ : [Args] extends [[]]
21
+ ? void
22
+ : [Args] extends [[unknown?]]
23
+ ? Args[0]
24
+ : [Args] extends [[unknown, unknown, ...unknown[]]]
25
+ ? Args
26
+ :
27
+ | Args
28
+ | ([] extends Args ? undefined : never)
29
+ | (Args extends [...infer Prefix, infer Last] ? ([] extends Prefix ? Last : never) : Args[0]);
30
+
17
31
  /** A lightweight event emitter with type-safe listeners and promise-based event waiting. */
18
32
  export class EventEmitter<EventTypes extends Record<string, (...args: any) => any>> {
19
33
  #listeners: {
@@ -145,13 +159,7 @@ export class EventEmitter<EventTypes extends Record<string, (...args: any) => an
145
159
  */
146
160
  emitted<Event extends keyof EventTypes>(
147
161
  event: Event,
148
- ): Promise<
149
- EventParameters<EventTypes, Event> extends [infer Param]
150
- ? Param
151
- : EventParameters<EventTypes, Event> extends []
152
- ? void
153
- : EventParameters<EventTypes, Event>
154
- > {
162
+ ): Promise<EmittedEventResult<EventParameters<EventTypes, Event>>> {
155
163
  return new Promise((resolve, reject) => {
156
164
  const onError = (error: unknown) => {
157
165
  this.off(event, onEvent as any);
@@ -191,7 +199,8 @@ export class EventEmitter<EventTypes extends Record<string, (...args: any) => an
191
199
  for (const registration of listeners as any) {
192
200
  if (!registration.removed) {
193
201
  try {
194
- registration.listener(...(args as any));
202
+ const { listener } = registration;
203
+ listener(...(args as any));
195
204
  } catch (error) {
196
205
  if (!listenerThrew) {
197
206
  listenerThrew = true;
@@ -18,6 +18,7 @@ import {
18
18
  SubjectTokenProviderError,
19
19
  UnprocessableEntityError,
20
20
  } from '../error';
21
+ import type { EmittedEventResult } from './EventEmitter';
21
22
 
22
23
  const MAX_BUFFERED_ITERATOR_EVENTS = 4096;
23
24
  const MAX_BUFFERED_ITERATOR_BYTES = 8 * 1024 * 1024;
@@ -1359,6 +1360,10 @@ export class EventStream<EventTypes extends BaseEvents> {
1359
1360
  #errored = false;
1360
1361
  #aborted = false;
1361
1362
  #catchingPromiseCreated = false;
1363
+ // Terminal failure recorded during settlement, before `end` is emitted, so
1364
+ // iterators can surface it even when a throwing user listener prevented
1365
+ // their internal failure listeners from running.
1366
+ #terminalFailure: { kind: 'error' | 'abort'; error: OpenAIError } | undefined;
1362
1367
 
1363
1368
  /** Creates an unstarted stream with independent connection and completion lifecycle promises. */
1364
1369
  constructor() {
@@ -1447,6 +1452,9 @@ export class EventStream<EventTypes extends BaseEvents> {
1447
1452
  this.controller.abort();
1448
1453
  return;
1449
1454
  }
1455
+ if (this.#abortListeners.some((registration) => registration.signal === signal)) {
1456
+ return;
1457
+ }
1450
1458
 
1451
1459
  const listener = () => this.controller.abort();
1452
1460
  signal.addEventListener('abort', listener, { once: true });
@@ -1577,13 +1585,7 @@ export class EventStream<EventTypes extends BaseEvents> {
1577
1585
  */
1578
1586
  emitted<Event extends keyof EventTypes>(
1579
1587
  event: Event,
1580
- ): Promise<
1581
- EventParameters<EventTypes, Event> extends [infer Param]
1582
- ? Param
1583
- : EventParameters<EventTypes, Event> extends []
1584
- ? void
1585
- : EventParameters<EventTypes, Event>
1586
- > {
1588
+ ): Promise<EmittedEventResult<EventParameters<EventTypes, Event>>> {
1587
1589
  return new Promise((resolve, reject) => {
1588
1590
  this.#catchingPromiseCreated = true;
1589
1591
  const onError = (error: OpenAIError) => {
@@ -1790,8 +1792,24 @@ export class EventStream<EventTypes extends BaseEvents> {
1790
1792
  rejectReader();
1791
1793
  }
1792
1794
  };
1795
+ // A throwing user listener registered before this iterator stops dispatch
1796
+ // before onFailure runs; adopt the failure the stream recorded during
1797
+ // settlement so terminal errors are never converted into clean completion.
1798
+ const adoptTerminalFailure = () => {
1799
+ if (failure) {
1800
+ return;
1801
+ }
1802
+ const terminal = this.#terminalFailure;
1803
+ if (!terminal) {
1804
+ return;
1805
+ }
1806
+ if (terminal.kind === 'error' ? rejectOnError : rejectOnAbort) {
1807
+ failure = terminal.error;
1808
+ }
1809
+ };
1793
1810
  const onEnd = () => {
1794
1811
  ended = true;
1812
+ adoptTerminalFailure();
1795
1813
  cleanup();
1796
1814
  if (!pushQueue.length) {
1797
1815
  rejectReader();
@@ -1826,6 +1844,9 @@ export class EventStream<EventTypes extends BaseEvents> {
1826
1844
  return Promise.resolve({ value, done: false });
1827
1845
  }
1828
1846
 
1847
+ if (ended || this.ended) {
1848
+ adoptTerminalFailure();
1849
+ }
1829
1850
  if (failure && !failureDelivered) {
1830
1851
  failureDelivered = true;
1831
1852
  return Promise.reject(failure);
@@ -1841,6 +1862,9 @@ export class EventStream<EventTypes extends BaseEvents> {
1841
1862
  },
1842
1863
  return: () => {
1843
1864
  ended = true;
1865
+ // The consumer walked away; terminal failures recorded later must not
1866
+ // resurface through this iterator.
1867
+ failureDelivered = true;
1844
1868
  while (bufferedEventSizes.length) {
1845
1869
  deactivateBufferedEvent(bufferedEventSizes.dequeue()!);
1846
1870
  }
@@ -1896,6 +1920,43 @@ export class EventStream<EventTypes extends BaseEvents> {
1896
1920
  return Boolean(this.#listeners[event]?.some((listener) => !listener.removed));
1897
1921
  }
1898
1922
 
1923
+ #settleTerminalEvent<Event extends keyof EventTypes>(
1924
+ event: Event,
1925
+ args: EventParameters<EventTypes, Event>,
1926
+ hasListeners: boolean,
1927
+ ): void {
1928
+ if (event === 'abort') {
1929
+ const error = args[0] as APIUserAbortError;
1930
+ this.#terminalFailure ??= { kind: 'abort', error };
1931
+ if (!this.#catchingPromiseCreated && !hasListeners) {
1932
+ Promise.reject(error);
1933
+ }
1934
+ this.#rejectConnectedPromise(error);
1935
+ this.#rejectEndPromise(error);
1936
+ this._emit('end');
1937
+ return;
1938
+ }
1939
+
1940
+ if (event === 'error') {
1941
+ // NOTE: _emit('error', error) should only be called from #handleError().
1942
+
1943
+ const error = args[0] as OpenAIError;
1944
+ this.#terminalFailure ??= { kind: 'error', error };
1945
+ if (!this.#catchingPromiseCreated && !hasListeners) {
1946
+ // Trigger an unhandled rejection if the user hasn't registered any error handlers.
1947
+ // If you are seeing stack traces here, make sure to handle errors via either:
1948
+ // - runner.on('error', () => ...)
1949
+ // - await runner.done()
1950
+ // - await runner.finalChatCompletion()
1951
+ // - etc.
1952
+ Promise.reject(error);
1953
+ }
1954
+ this.#rejectConnectedPromise(error);
1955
+ this.#rejectEndPromise(error);
1956
+ this._emit('end');
1957
+ }
1958
+ }
1959
+
1899
1960
  /** Dispatches a connection, failure, cancellation, or completion lifecycle event. */
1900
1961
  _emit<Event extends keyof BaseEvents>(event: Event, ...args: EventParameters<BaseEvents, Event>): void;
1901
1962
  /** Dispatches a typed stream event to all listeners registered for that event. */
@@ -1918,61 +1979,53 @@ export class EventStream<EventTypes extends BaseEvents> {
1918
1979
  }
1919
1980
 
1920
1981
  const listeners: EventListeners<EventTypes, Event> | undefined = this.#listeners[event];
1921
- if (listeners) {
1922
- this.#listeners[event] = listeners.filter((listener) => {
1923
- if (listener.once) {
1924
- listener.detached = true;
1925
- }
1926
- return !listener.once && !listener.removed;
1927
- }) as any;
1928
- this.#listenerDispatchDepth += 1;
1929
- try {
1930
- for (const registration of listeners as any) {
1931
- if (!registration.removed) {
1932
- registration.listener(...(args as any));
1982
+ let dispatchError: unknown;
1983
+ let dispatchThrew = false;
1984
+ try {
1985
+ if (listeners) {
1986
+ this.#listeners[event] = listeners.filter((listener) => {
1987
+ if (listener.once) {
1988
+ listener.detached = true;
1933
1989
  }
1934
- }
1935
- } finally {
1936
- this.#listenerDispatchDepth -= 1;
1937
- if (this.#listenerDispatchDepth === 0) {
1938
- this.#cleanupEmittedListeners();
1939
- for (const check of this.#pendingBufferedEventChecks) {
1940
- this.#pendingBufferedEventChecks.delete(check);
1941
- if (!this.#ended) {
1942
- check();
1990
+ return !listener.once && !listener.removed;
1991
+ }) as any;
1992
+ this.#listenerDispatchDepth += 1;
1993
+ try {
1994
+ for (const registration of listeners as any) {
1995
+ if (!registration.removed) {
1996
+ const { listener } = registration;
1997
+ listener(...(args as any));
1998
+ }
1999
+ }
2000
+ } finally {
2001
+ this.#listenerDispatchDepth -= 1;
2002
+ if (this.#listenerDispatchDepth === 0) {
2003
+ this.#cleanupEmittedListeners();
2004
+ for (const check of this.#pendingBufferedEventChecks) {
2005
+ this.#pendingBufferedEventChecks.delete(check);
2006
+ if (!this.#ended) {
2007
+ check();
2008
+ }
1943
2009
  }
1944
2010
  }
1945
2011
  }
1946
2012
  }
2013
+ } catch (error) {
2014
+ dispatchError = error;
2015
+ dispatchThrew = true;
1947
2016
  }
1948
2017
 
1949
- if (event === 'abort') {
1950
- const error = args[0] as APIUserAbortError;
1951
- if (!this.#catchingPromiseCreated && !listeners?.length) {
1952
- Promise.reject(error);
2018
+ try {
2019
+ this.#settleTerminalEvent(event, args, Boolean(listeners?.length));
2020
+ } catch (error) {
2021
+ if (!dispatchThrew) {
2022
+ dispatchError = error;
2023
+ dispatchThrew = true;
1953
2024
  }
1954
- this.#rejectConnectedPromise(error);
1955
- this.#rejectEndPromise(error);
1956
- this._emit('end');
1957
- return;
1958
2025
  }
1959
2026
 
1960
- if (event === 'error') {
1961
- // NOTE: _emit('error', error) should only be called from #handleError().
1962
-
1963
- const error = args[0] as OpenAIError;
1964
- if (!this.#catchingPromiseCreated && !listeners?.length) {
1965
- // Trigger an unhandled rejection if the user hasn't registered any error handlers.
1966
- // If you are seeing stack traces here, make sure to handle errors via either:
1967
- // - runner.on('error', () => ...)
1968
- // - await runner.done()
1969
- // - await runner.finalChatCompletion()
1970
- // - etc.
1971
- Promise.reject(error);
1972
- }
1973
- this.#rejectConnectedPromise(error);
1974
- this.#rejectEndPromise(error);
1975
- this._emit('end');
2027
+ if (dispatchThrew) {
2028
+ throw dispatchError;
1976
2029
  }
1977
2030
  }
1978
2031
 
@@ -2,6 +2,7 @@ import { OpenAIError } from '../error';
2
2
  import type { ChatCompletionTool } from '../resources/chat/completions';
3
3
  import type {
4
4
  FunctionTool,
5
+ NamespaceTool,
5
6
  ParsedContent,
6
7
  ParsedResponse,
7
8
  ParsedResponseFunctionToolCall,
@@ -97,7 +98,8 @@ export function maybeParseResponse<
97
98
  }
98
99
 
99
100
  /**
100
- * Parses completed response text and strict function-tool arguments.
101
+ * Parses completed response text and strict function-tool arguments, matching
102
+ * namespaced functions by both namespace and name.
101
103
  *
102
104
  * Incomplete or nonterminal responses keep their parsed values as `null`, and
103
105
  * `output_parsed` returns the first successfully parsed output-text item.
@@ -177,7 +179,13 @@ export function hasAutoParseableInput(params: ResponseCreateParamsWithTools): bo
177
179
  return (
178
180
  Array.isArray(params.tools) &&
179
181
  params.tools.some(
180
- (tool) => isAutoParsableTool(tool) || (tool.type === 'function' && tool.strict === true),
182
+ (tool) =>
183
+ isAutoParsableTool(tool) ||
184
+ (tool.type === 'function' && tool.strict === true) ||
185
+ (tool.type === 'namespace' &&
186
+ tool.tools.some(
187
+ (nested) => nested.type === 'function' && (isAutoParsableTool(nested) || nested.strict === true),
188
+ )),
181
189
  )
182
190
  );
183
191
  }
@@ -220,9 +228,9 @@ export function makeParseableResponseTool<OptionsT extends ToolOptions>(
220
228
  /** Converts the raw JSON argument string into the function's typed argument value. */
221
229
  parser: (content: string) => OptionsT['arguments'];
222
230
  /** Optional callback available to helpers that execute the parsed function. */
223
- callback: ((args: any) => any) | undefined;
231
+ callback: ((args: OptionsT['arguments']) => any) | undefined;
224
232
  },
225
- ): AutoParseableResponseTool<OptionsT['arguments']> {
233
+ ): AutoParseableResponseTool<OptionsT> {
226
234
  const obj = { ...tool };
227
235
 
228
236
  Object.defineProperties(obj, {
@@ -240,7 +248,7 @@ export function makeParseableResponseTool<OptionsT extends ToolOptions>(
240
248
  },
241
249
  });
242
250
 
243
- return obj as AutoParseableResponseTool<OptionsT['arguments']>;
251
+ return obj as AutoParseableResponseTool<OptionsT>;
244
252
  }
245
253
 
246
254
  /** Returns whether a Responses API tool carries the SDK's argument-parser marker. */
@@ -248,17 +256,30 @@ export function isAutoParsableTool(tool: any): tool is AutoParseableResponseTool
248
256
  return tool?.['$brand'] === 'auto-parseable-tool';
249
257
  }
250
258
 
251
- function getInputToolByName(input_tools: Tool[], name: string): FunctionTool | undefined {
252
- return input_tools.find((tool) => tool.type === 'function' && tool.name === name) as
253
- | FunctionTool
254
- | undefined;
259
+ function getInputToolByName(
260
+ input_tools: Tool[],
261
+ name: string,
262
+ namespace?: string,
263
+ ): FunctionTool | NamespaceTool.Function | undefined {
264
+ for (const tool of input_tools) {
265
+ if (namespace == null) {
266
+ if (tool.type === 'function' && tool.name === name) {
267
+ return tool;
268
+ }
269
+ } else if (tool.type === 'namespace' && tool.name === namespace) {
270
+ return tool.tools.find(
271
+ (nested): nested is NamespaceTool.Function => nested.type === 'function' && nested.name === name,
272
+ );
273
+ }
274
+ }
275
+ return undefined;
255
276
  }
256
277
 
257
278
  function parseToolCall<Params extends ResponseCreateParamsBase>(
258
279
  params: Params,
259
280
  toolCall: ResponseFunctionToolCall,
260
281
  ): ParsedResponseFunctionToolCall {
261
- const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);
282
+ const inputTool = getInputToolByName(params.tools ?? [], toolCall.name, toolCall.namespace);
262
283
 
263
284
  let parsedArguments: unknown = null;
264
285
  if (isAutoParsableTool(inputTool)) {
@@ -276,7 +297,7 @@ function parseToolCall<Params extends ResponseCreateParamsBase>(
276
297
  };
277
298
  }
278
299
 
279
- /** Returns whether a response function call matches a strict or auto-parseable request tool. */
300
+ /** Matches a response function call to a strict or auto-parseable tool by namespace and name. */
280
301
  export function shouldParseToolCall(
281
302
  params: ResponseCreateParamsNonStreaming | null | undefined,
282
303
  toolCall: ResponseFunctionToolCall,
@@ -285,7 +306,7 @@ export function shouldParseToolCall(
285
306
  return false;
286
307
  }
287
308
 
288
- const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);
309
+ const inputTool = getInputToolByName(params.tools ?? [], toolCall.name, toolCall.namespace);
289
310
  return isAutoParsableTool(inputTool) || inputTool?.strict || false;
290
311
  }
291
312
 
@@ -140,7 +140,7 @@ export type RunnableFunctions<FunctionsArgs extends BaseFunctionsArgs, ToolConte
140
140
  ] extends [FunctionsArgs]
141
141
  ? readonly RunnableFunction<any, ToolContext>[]
142
142
  : {
143
- [Index in keyof FunctionsArgs]: Index extends number
143
+ [Index in keyof FunctionsArgs]: FunctionsArgs[Index] extends object | string
144
144
  ? RunnableFunction<FunctionsArgs[Index], ToolContext>
145
145
  : FunctionsArgs[Index];
146
146
  };
@@ -151,7 +151,7 @@ export type RunnableTools<FunctionsArgs extends BaseFunctionsArgs, ToolContext =
151
151
  ]
152
152
  ? readonly RunnableToolFunction<any, ToolContext>[]
153
153
  : {
154
- [Index in keyof FunctionsArgs]: Index extends number
154
+ [Index in keyof FunctionsArgs]: FunctionsArgs[Index] extends object | string
155
155
  ? RunnableToolFunction<FunctionsArgs[Index], ToolContext>
156
156
  : FunctionsArgs[Index];
157
157
  };
@@ -28,34 +28,40 @@ export function createEmbedding(
28
28
  loggerFor(client).debug('embeddings/user defined encoding_format:', body.encoding_format);
29
29
  }
30
30
 
31
- const response: APIPromise<CreateEmbeddingResponse> = client.post('/embeddings', {
32
- body: {
33
- ...body,
34
- encoding_format: encodingFormat,
35
- },
31
+ const optimizedBody = { ...body, encoding_format: encodingFormat };
32
+ const requestOptions: RequestOptions = {
33
+ body: optimizedBody,
36
34
  ...options,
37
35
  __security: { bearerAuth: true },
38
- });
36
+ };
37
+ const response: APIPromise<CreateEmbeddingResponse> = client.post('/embeddings', requestOptions);
39
38
 
40
39
  // Explicit encodings return the original response promise unchanged.
41
40
  if (hasUserProvidedEncodingFormat) {
42
41
  return response;
43
42
  }
44
43
 
45
- // The default request uses base64 on the wire, but returns the API's default
46
- // numeric embedding representation to the caller.
44
+ // Preserve numeric output for default requests, including body overrides that
45
+ // change the encoding used on the wire.
47
46
  loggerFor(client).debug('embeddings/decoding base64 embeddings from base64');
48
47
 
49
48
  return response._thenUnwrap((data) => {
50
- if (data && data.data) {
51
- const embeddings = data.data;
49
+ const embeddings = data?.data;
50
+ if (embeddings !== undefined) {
51
+ if (!Array.isArray(embeddings)) {
52
+ throw new TypeError('Expected embeddings response data to be an array');
53
+ }
52
54
  const { length } = embeddings;
53
55
  // Preserve the original iteration length and skip sparse-array holes.
54
56
  for (let index = 0; index < length; index += 1) {
55
57
  if (index in embeddings) {
56
58
  const embeddingBase64Obj = embeddings[index] as Embedding;
57
- const embeddingBase64Str = embeddingBase64Obj.embedding as unknown as string;
58
- embeddingBase64Obj.embedding = toFloat32Array(embeddingBase64Str);
59
+ const { embedding } = embeddingBase64Obj;
60
+ // Request hooks and serialization can also select float embeddings.
61
+ if (Array.isArray(embedding)) {
62
+ continue;
63
+ }
64
+ embeddingBase64Obj.embedding = toFloat32Array(embedding as unknown as string);
59
65
  }
60
66
  }
61
67
  }
@@ -3,8 +3,9 @@ import { sleep } from '../internal/utils/sleep';
3
3
  import type { FileObject, Files } from '../resources/files';
4
4
 
5
5
  /**
6
- * Waits for file processing through the resource's retrieve method. The timeout
7
- * is checked after each subsequent retrieval, preserving the existing behavior
6
+ * Waits for file processing through the resource's retrieve method. Elapsed time
7
+ * uses a monotonic clock so system clock changes do not affect the timeout,
8
+ * which is checked after each subsequent retrieval, preserving the existing behavior
8
9
  * for an initially terminal file and for a terminal response received too late.
9
10
  *
10
11
  * @internal
@@ -16,7 +17,7 @@ export async function waitForFileProcessing(
16
17
  maxWait: number,
17
18
  ): Promise<FileObject> {
18
19
  const terminalStates = new Set(['processed', 'error', 'deleted']);
19
- const start = Date.now();
20
+ const start = performance.now();
20
21
  let file = await resource.retrieve(id);
21
22
 
22
23
  while (!file.status || !terminalStates.has(file.status)) {
@@ -25,7 +26,7 @@ export async function waitForFileProcessing(
25
26
 
26
27
  // oxlint-disable-next-line no-await-in-loop -- The timeout and next iteration depend on this response.
27
28
  file = await resource.retrieve(id);
28
- if (Date.now() - start > maxWait) {
29
+ if (performance.now() - start > maxWait) {
29
30
  throw new APIConnectionTimeoutError({
30
31
  message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,
31
32
  });
package/src/lib/parser.ts CHANGED
@@ -214,19 +214,43 @@ export type AutoParseableTool<
214
214
  $parseRaw(args: string): OptionsT['arguments'];
215
215
  };
216
216
 
217
- /** Copies a function tool and attaches non-enumerable parsing and callback metadata. */
217
+ /** Parser and optional callback supplied when creating a custom chat function tool. */
218
+ type ToolParserOptions<OptionsT extends ToolOptions> = {
219
+ /** Converts the raw JSON argument string into the tool's typed argument value. */
220
+ parser: (content: string) => OptionsT['arguments'];
221
+ /** Optional callback invoked by a chat completion tool runner. */
222
+ callback: ((args: OptionsT['arguments']) => any) | undefined;
223
+ };
224
+
225
+ /** Creates a runnable function tool with a guaranteed execution callback. */
226
+ export function makeParseableTool<OptionsT extends ToolOptions>(
227
+ tool: ChatCompletionFunctionTool,
228
+ options: ToolParserOptions<OptionsT> & {
229
+ /** Callback invoked with the parsed tool arguments. */
230
+ callback: (args: OptionsT['arguments']) => any;
231
+ },
232
+ ): AutoParseableTool<OptionsT, true>;
233
+
234
+ /** Creates a parse-only function tool without an execution callback. */
218
235
  export function makeParseableTool<OptionsT extends ToolOptions>(
219
236
  tool: ChatCompletionFunctionTool,
220
- {
221
- parser,
222
- callback,
223
- }: {
224
- /** Converts the raw JSON argument string into the tool's typed argument value. */
225
- parser: (content: string) => OptionsT['arguments'];
226
- /** Optional callback invoked by a chat completion tool runner. */
227
- callback: ((args: any) => any) | undefined;
237
+ options: ToolParserOptions<OptionsT> & {
238
+ /** No execution callback is attached to this tool. */
239
+ callback: undefined;
228
240
  },
229
- ): AutoParseableTool<OptionsT['arguments']> {
241
+ ): AutoParseableTool<OptionsT, false>;
242
+
243
+ /** Creates a function tool whose execution callback may be unavailable. */
244
+ export function makeParseableTool<OptionsT extends ToolOptions>(
245
+ tool: ChatCompletionFunctionTool,
246
+ options: ToolParserOptions<OptionsT>,
247
+ ): AutoParseableTool<OptionsT, boolean>;
248
+
249
+ /** Copies a function tool and attaches non-enumerable parsing and callback metadata. */
250
+ export function makeParseableTool<OptionsT extends ToolOptions>(
251
+ tool: ChatCompletionFunctionTool,
252
+ { parser, callback }: ToolParserOptions<OptionsT>,
253
+ ): AutoParseableTool<OptionsT, boolean> {
230
254
  const obj = { ...tool };
231
255
 
232
256
  Object.defineProperties(obj, {
@@ -244,7 +268,7 @@ export function makeParseableTool<OptionsT extends ToolOptions>(
244
268
  },
245
269
  });
246
270
 
247
- return obj as AutoParseableTool<OptionsT['arguments']>;
271
+ return obj as AutoParseableTool<OptionsT, boolean>;
248
272
  }
249
273
 
250
274
  /** Returns whether a Chat Completions tool carries the SDK's argument-parser marker. */
@@ -92,8 +92,8 @@ function sleepUntilAborted(milliseconds: number, signal: AbortSignal): Promise<v
92
92
 
93
93
  /**
94
94
  * Repeatedly retrieves a lifecycle resource using the existing polling-helper
95
- * headers. Intermediate states wait for the explicit interval, server interval,
96
- * or five-second default; terminal states return the same parsed object.
95
+ * headers. Intermediate states wait for the explicit interval (including zero),
96
+ * the server interval, or five-second default; terminal states return the same parsed object.
97
97
  * The caller's signal interrupts intermediate waits, unknown states retry
98
98
  * immediately, and retrieval errors propagate unchanged.
99
99
  *
@@ -120,9 +120,10 @@ export async function pollWithResponse<T extends { status: string }>(
120
120
 
121
121
  if (intermediateStatuses.includes(status)) {
122
122
  let sleepInterval = 5000;
123
+ const pollIntervalMs = options?.pollIntervalMs;
123
124
 
124
- if (options?.pollIntervalMs) {
125
- sleepInterval = options.pollIntervalMs;
125
+ if (pollIntervalMs || pollIntervalMs === 0) {
126
+ sleepInterval = pollIntervalMs;
126
127
  } else {
127
128
  const headerInterval = response.headers.get('openai-poll-after-ms');
128
129
  if (headerInterval) {
@@ -1,40 +1,7 @@
1
1
  import type {
2
- ResponseAudioDeltaEvent,
3
- ResponseAudioDoneEvent,
4
- ResponseAudioTranscriptDeltaEvent,
5
- ResponseAudioTranscriptDoneEvent,
6
- ResponseCodeInterpreterCallCodeDeltaEvent,
7
- ResponseCodeInterpreterCallCodeDoneEvent,
8
- ResponseCodeInterpreterCallCompletedEvent,
9
- ResponseCodeInterpreterCallInProgressEvent,
10
- ResponseCodeInterpreterCallInterpretingEvent,
11
- ResponseCompletedEvent,
12
- ResponseContentPartAddedEvent,
13
- ResponseContentPartDoneEvent,
14
- ResponseCreatedEvent,
15
- ResponseErrorEvent,
16
- ResponseFailedEvent,
17
- ResponseFileSearchCallCompletedEvent,
18
- ResponseFileSearchCallInProgressEvent,
19
- ResponseFileSearchCallSearchingEvent,
20
2
  ResponseFunctionCallArgumentsDeltaEvent as RawResponseFunctionCallArgumentsDeltaEvent,
21
- ResponseFunctionCallArgumentsDoneEvent,
22
- ResponseInProgressEvent,
23
- ResponseOutputItemAddedEvent,
24
- ResponseOutputItemDoneEvent,
25
- ResponseRefusalDeltaEvent,
26
- ResponseRefusalDoneEvent,
27
- ResponseShellCallCommandAddedEvent,
28
- ResponseShellCallCommandDeltaEvent,
29
- ResponseShellCallCommandDoneEvent,
30
- ResponseShellCallOutputContentDeltaEvent,
31
- ResponseShellCallOutputContentDoneEvent,
3
+ ResponseStreamEvent,
32
4
  ResponseTextDeltaEvent as RawResponseTextDeltaEvent,
33
- ResponseTextDoneEvent,
34
- ResponseIncompleteEvent,
35
- ResponseWebSearchCallCompletedEvent,
36
- ResponseWebSearchCallInProgressEvent,
37
- ResponseWebSearchCallSearchingEvent,
38
5
  } from '../../resources/responses/responses';
39
6
 
40
7
  /** A function-argument delta enhanced with the argument JSON accumulated so far. */
@@ -51,39 +18,6 @@ export type ResponseTextDeltaEvent = RawResponseTextDeltaEvent & {
51
18
 
52
19
  /** A Responses API event, with accumulated snapshots attached to text and argument deltas. */
53
20
  export type ParsedResponseStreamEvent =
54
- | ResponseAudioDeltaEvent
55
- | ResponseAudioDoneEvent
56
- | ResponseAudioTranscriptDeltaEvent
57
- | ResponseAudioTranscriptDoneEvent
58
- | ResponseCodeInterpreterCallCodeDeltaEvent
59
- | ResponseCodeInterpreterCallCodeDoneEvent
60
- | ResponseCodeInterpreterCallCompletedEvent
61
- | ResponseCodeInterpreterCallInProgressEvent
62
- | ResponseCodeInterpreterCallInterpretingEvent
63
- | ResponseCompletedEvent
64
- | ResponseContentPartAddedEvent
65
- | ResponseContentPartDoneEvent
66
- | ResponseCreatedEvent
67
- | ResponseErrorEvent
68
- | ResponseFileSearchCallCompletedEvent
69
- | ResponseFileSearchCallInProgressEvent
70
- | ResponseFileSearchCallSearchingEvent
21
+ | Exclude<ResponseStreamEvent, RawResponseFunctionCallArgumentsDeltaEvent | RawResponseTextDeltaEvent>
71
22
  | ResponseFunctionCallArgumentsDeltaEvent
72
- | ResponseFunctionCallArgumentsDoneEvent
73
- | ResponseInProgressEvent
74
- | ResponseFailedEvent
75
- | ResponseIncompleteEvent
76
- | ResponseOutputItemAddedEvent
77
- | ResponseOutputItemDoneEvent
78
- | ResponseRefusalDeltaEvent
79
- | ResponseRefusalDoneEvent
80
- | ResponseShellCallCommandAddedEvent
81
- | ResponseShellCallCommandDeltaEvent
82
- | ResponseShellCallCommandDoneEvent
83
- | ResponseShellCallOutputContentDeltaEvent
84
- | ResponseShellCallOutputContentDoneEvent
85
- | ResponseTextDeltaEvent
86
- | ResponseTextDoneEvent
87
- | ResponseWebSearchCallCompletedEvent
88
- | ResponseWebSearchCallInProgressEvent
89
- | ResponseWebSearchCallSearchingEvent;
23
+ | ResponseTextDeltaEvent;