openai 6.44.0 → 6.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +85 -102
  3. package/_vendor/zod-to-json-schema/parseDef.d.mts.map +1 -1
  4. package/_vendor/zod-to-json-schema/parseDef.d.ts.map +1 -1
  5. package/_vendor/zod-to-json-schema/parseDef.js +41 -15
  6. package/_vendor/zod-to-json-schema/parseDef.js.map +1 -1
  7. package/_vendor/zod-to-json-schema/parseDef.mjs +41 -15
  8. package/_vendor/zod-to-json-schema/parseDef.mjs.map +1 -1
  9. package/_vendor/zod-to-json-schema/parsers/branded.d.mts +1 -1
  10. package/_vendor/zod-to-json-schema/parsers/branded.d.mts.map +1 -1
  11. package/_vendor/zod-to-json-schema/parsers/branded.d.ts +1 -1
  12. package/_vendor/zod-to-json-schema/parsers/branded.d.ts.map +1 -1
  13. package/_vendor/zod-to-json-schema/parsers/branded.js +2 -2
  14. package/_vendor/zod-to-json-schema/parsers/branded.js.map +1 -1
  15. package/_vendor/zod-to-json-schema/parsers/branded.mjs +2 -2
  16. package/_vendor/zod-to-json-schema/parsers/branded.mjs.map +1 -1
  17. package/_vendor/zod-to-json-schema/parsers/catch.d.mts +1 -1
  18. package/_vendor/zod-to-json-schema/parsers/catch.d.mts.map +1 -1
  19. package/_vendor/zod-to-json-schema/parsers/catch.d.ts +1 -1
  20. package/_vendor/zod-to-json-schema/parsers/catch.d.ts.map +1 -1
  21. package/_vendor/zod-to-json-schema/parsers/catch.js +2 -2
  22. package/_vendor/zod-to-json-schema/parsers/catch.js.map +1 -1
  23. package/_vendor/zod-to-json-schema/parsers/catch.mjs +2 -2
  24. package/_vendor/zod-to-json-schema/parsers/catch.mjs.map +1 -1
  25. package/_vendor/zod-to-json-schema/parsers/default.d.mts +1 -1
  26. package/_vendor/zod-to-json-schema/parsers/default.d.mts.map +1 -1
  27. package/_vendor/zod-to-json-schema/parsers/default.d.ts +1 -1
  28. package/_vendor/zod-to-json-schema/parsers/default.d.ts.map +1 -1
  29. package/_vendor/zod-to-json-schema/parsers/default.js +2 -2
  30. package/_vendor/zod-to-json-schema/parsers/default.js.map +1 -1
  31. package/_vendor/zod-to-json-schema/parsers/default.mjs +2 -2
  32. package/_vendor/zod-to-json-schema/parsers/default.mjs.map +1 -1
  33. package/_vendor/zod-to-json-schema/parsers/nullable.d.mts +1 -1
  34. package/_vendor/zod-to-json-schema/parsers/nullable.d.mts.map +1 -1
  35. package/_vendor/zod-to-json-schema/parsers/nullable.d.ts +1 -1
  36. package/_vendor/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
  37. package/_vendor/zod-to-json-schema/parsers/nullable.js +2 -2
  38. package/_vendor/zod-to-json-schema/parsers/nullable.js.map +1 -1
  39. package/_vendor/zod-to-json-schema/parsers/nullable.mjs +2 -2
  40. package/_vendor/zod-to-json-schema/parsers/nullable.mjs.map +1 -1
  41. package/_vendor/zod-to-json-schema/parsers/optional.d.mts +1 -1
  42. package/_vendor/zod-to-json-schema/parsers/optional.d.mts.map +1 -1
  43. package/_vendor/zod-to-json-schema/parsers/optional.d.ts +1 -1
  44. package/_vendor/zod-to-json-schema/parsers/optional.d.ts.map +1 -1
  45. package/_vendor/zod-to-json-schema/parsers/optional.js +3 -3
  46. package/_vendor/zod-to-json-schema/parsers/optional.js.map +1 -1
  47. package/_vendor/zod-to-json-schema/parsers/optional.mjs +3 -3
  48. package/_vendor/zod-to-json-schema/parsers/optional.mjs.map +1 -1
  49. package/_vendor/zod-to-json-schema/parsers/pipeline.d.mts +1 -1
  50. package/_vendor/zod-to-json-schema/parsers/pipeline.d.mts.map +1 -1
  51. package/_vendor/zod-to-json-schema/parsers/pipeline.d.ts +1 -1
  52. package/_vendor/zod-to-json-schema/parsers/pipeline.d.ts.map +1 -1
  53. package/_vendor/zod-to-json-schema/parsers/pipeline.js +3 -3
  54. package/_vendor/zod-to-json-schema/parsers/pipeline.js.map +1 -1
  55. package/_vendor/zod-to-json-schema/parsers/pipeline.mjs +3 -3
  56. package/_vendor/zod-to-json-schema/parsers/pipeline.mjs.map +1 -1
  57. package/_vendor/zod-to-json-schema/parsers/promise.d.mts +1 -1
  58. package/_vendor/zod-to-json-schema/parsers/promise.d.mts.map +1 -1
  59. package/_vendor/zod-to-json-schema/parsers/promise.d.ts +1 -1
  60. package/_vendor/zod-to-json-schema/parsers/promise.d.ts.map +1 -1
  61. package/_vendor/zod-to-json-schema/parsers/promise.js +2 -2
  62. package/_vendor/zod-to-json-schema/parsers/promise.js.map +1 -1
  63. package/_vendor/zod-to-json-schema/parsers/promise.mjs +2 -2
  64. package/_vendor/zod-to-json-schema/parsers/promise.mjs.map +1 -1
  65. package/_vendor/zod-to-json-schema/parsers/readonly.d.mts +1 -1
  66. package/_vendor/zod-to-json-schema/parsers/readonly.d.mts.map +1 -1
  67. package/_vendor/zod-to-json-schema/parsers/readonly.d.ts +1 -1
  68. package/_vendor/zod-to-json-schema/parsers/readonly.d.ts.map +1 -1
  69. package/_vendor/zod-to-json-schema/parsers/readonly.js +2 -2
  70. package/_vendor/zod-to-json-schema/parsers/readonly.js.map +1 -1
  71. package/_vendor/zod-to-json-schema/parsers/readonly.mjs +2 -2
  72. package/_vendor/zod-to-json-schema/parsers/readonly.mjs.map +1 -1
  73. package/auth/workload-identity-auth.d.mts.map +1 -1
  74. package/auth/workload-identity-auth.d.ts.map +1 -1
  75. package/auth/workload-identity-auth.js +12 -4
  76. package/auth/workload-identity-auth.js.map +1 -1
  77. package/auth/workload-identity-auth.mjs +13 -5
  78. package/auth/workload-identity-auth.mjs.map +1 -1
  79. package/azure.d.mts +3 -1
  80. package/azure.d.mts.map +1 -1
  81. package/azure.d.ts +3 -1
  82. package/azure.d.ts.map +1 -1
  83. package/azure.js.map +1 -1
  84. package/azure.mjs.map +1 -1
  85. package/beta/realtime/internal-base.d.mts +14 -1
  86. package/beta/realtime/internal-base.d.mts.map +1 -1
  87. package/beta/realtime/internal-base.d.ts +14 -1
  88. package/beta/realtime/internal-base.d.ts.map +1 -1
  89. package/beta/realtime/internal-base.js +21 -5
  90. package/beta/realtime/internal-base.js.map +1 -1
  91. package/beta/realtime/internal-base.mjs +21 -5
  92. package/beta/realtime/internal-base.mjs.map +1 -1
  93. package/beta/realtime/websocket.d.mts +3 -5
  94. package/beta/realtime/websocket.d.mts.map +1 -1
  95. package/beta/realtime/websocket.d.ts +3 -5
  96. package/beta/realtime/websocket.d.ts.map +1 -1
  97. package/beta/realtime/websocket.js +2 -3
  98. package/beta/realtime/websocket.js.map +1 -1
  99. package/beta/realtime/websocket.mjs +3 -4
  100. package/beta/realtime/websocket.mjs.map +1 -1
  101. package/beta/realtime/ws.d.mts +3 -5
  102. package/beta/realtime/ws.d.mts.map +1 -1
  103. package/beta/realtime/ws.d.ts +3 -5
  104. package/beta/realtime/ws.d.ts.map +1 -1
  105. package/beta/realtime/ws.js +2 -3
  106. package/beta/realtime/ws.js.map +1 -1
  107. package/beta/realtime/ws.mjs +3 -4
  108. package/beta/realtime/ws.mjs.map +1 -1
  109. package/client.d.mts +9 -1
  110. package/client.d.mts.map +1 -1
  111. package/client.d.ts +9 -1
  112. package/client.d.ts.map +1 -1
  113. package/client.js +56 -9
  114. package/client.js.map +1 -1
  115. package/client.mjs +56 -9
  116. package/client.mjs.map +1 -1
  117. package/helpers/audio.d.mts.map +1 -1
  118. package/helpers/audio.d.ts.map +1 -1
  119. package/helpers/audio.js +16 -3
  120. package/helpers/audio.js.map +1 -1
  121. package/helpers/audio.mjs +17 -4
  122. package/helpers/audio.mjs.map +1 -1
  123. package/helpers/zod.d.mts.map +1 -1
  124. package/helpers/zod.d.ts.map +1 -1
  125. package/helpers/zod.js +12 -0
  126. package/helpers/zod.js.map +1 -1
  127. package/helpers/zod.mjs +12 -0
  128. package/helpers/zod.mjs.map +1 -1
  129. package/internal/bedrock.d.mts +34 -0
  130. package/internal/bedrock.d.mts.map +1 -0
  131. package/internal/bedrock.d.ts +34 -0
  132. package/internal/bedrock.d.ts.map +1 -0
  133. package/internal/bedrock.js +107 -0
  134. package/internal/bedrock.js.map +1 -0
  135. package/internal/bedrock.mjs +99 -0
  136. package/internal/bedrock.mjs.map +1 -0
  137. package/internal/provider.d.mts +23 -0
  138. package/internal/provider.d.mts.map +1 -0
  139. package/internal/provider.d.ts +23 -0
  140. package/internal/provider.d.ts.map +1 -0
  141. package/internal/provider.js +36 -0
  142. package/internal/provider.js.map +1 -0
  143. package/internal/provider.mjs +32 -0
  144. package/internal/provider.mjs.map +1 -0
  145. package/internal/utils/log.d.mts.map +1 -1
  146. package/internal/utils/log.d.ts.map +1 -1
  147. package/internal/utils/log.js +1 -0
  148. package/internal/utils/log.js.map +1 -1
  149. package/internal/utils/log.mjs +1 -0
  150. package/internal/utils/log.mjs.map +1 -1
  151. package/lib/AbstractChatCompletionRunner.d.mts +15 -4
  152. package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
  153. package/lib/AbstractChatCompletionRunner.d.ts +15 -4
  154. package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
  155. package/lib/AbstractChatCompletionRunner.js +77 -40
  156. package/lib/AbstractChatCompletionRunner.js.map +1 -1
  157. package/lib/AbstractChatCompletionRunner.mjs +77 -40
  158. package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
  159. package/lib/AssistantStream.d.mts.map +1 -1
  160. package/lib/AssistantStream.d.ts.map +1 -1
  161. package/lib/AssistantStream.js +5 -25
  162. package/lib/AssistantStream.js.map +1 -1
  163. package/lib/AssistantStream.mjs +5 -25
  164. package/lib/AssistantStream.mjs.map +1 -1
  165. package/lib/ChatCompletionRunner.js +1 -1
  166. package/lib/ChatCompletionRunner.js.map +1 -1
  167. package/lib/ChatCompletionRunner.mjs +1 -1
  168. package/lib/ChatCompletionRunner.mjs.map +1 -1
  169. package/lib/ChatCompletionStream.d.mts.map +1 -1
  170. package/lib/ChatCompletionStream.d.ts.map +1 -1
  171. package/lib/ChatCompletionStream.js +11 -17
  172. package/lib/ChatCompletionStream.js.map +1 -1
  173. package/lib/ChatCompletionStream.mjs +11 -17
  174. package/lib/ChatCompletionStream.mjs.map +1 -1
  175. package/lib/ChatCompletionStreamingRunner.js +1 -1
  176. package/lib/ChatCompletionStreamingRunner.js.map +1 -1
  177. package/lib/ChatCompletionStreamingRunner.mjs +1 -1
  178. package/lib/ChatCompletionStreamingRunner.mjs.map +1 -1
  179. package/lib/EventEmitter.d.mts.map +1 -1
  180. package/lib/EventEmitter.d.ts.map +1 -1
  181. package/lib/EventEmitter.js +12 -2
  182. package/lib/EventEmitter.js.map +1 -1
  183. package/lib/EventEmitter.mjs +12 -2
  184. package/lib/EventEmitter.mjs.map +1 -1
  185. package/lib/EventStream.d.mts +1 -0
  186. package/lib/EventStream.d.mts.map +1 -1
  187. package/lib/EventStream.d.ts +1 -0
  188. package/lib/EventStream.d.ts.map +1 -1
  189. package/lib/EventStream.js +19 -2
  190. package/lib/EventStream.js.map +1 -1
  191. package/lib/EventStream.mjs +19 -2
  192. package/lib/EventStream.mjs.map +1 -1
  193. package/lib/ResponsesParser.d.mts.map +1 -1
  194. package/lib/ResponsesParser.d.ts.map +1 -1
  195. package/lib/ResponsesParser.js +12 -4
  196. package/lib/ResponsesParser.js.map +1 -1
  197. package/lib/ResponsesParser.mjs +12 -4
  198. package/lib/ResponsesParser.mjs.map +1 -1
  199. package/lib/responses/ResponseAccumulator.d.mts +15 -0
  200. package/lib/responses/ResponseAccumulator.d.mts.map +1 -0
  201. package/lib/responses/ResponseAccumulator.d.ts +15 -0
  202. package/lib/responses/ResponseAccumulator.d.ts.map +1 -0
  203. package/lib/responses/ResponseAccumulator.js +403 -0
  204. package/lib/responses/ResponseAccumulator.js.map +1 -0
  205. package/lib/responses/ResponseAccumulator.mjs +400 -0
  206. package/lib/responses/ResponseAccumulator.mjs.map +1 -0
  207. package/lib/responses/ResponseInputItems.d.mts +19 -0
  208. package/lib/responses/ResponseInputItems.d.mts.map +1 -0
  209. package/lib/responses/ResponseInputItems.d.ts +19 -0
  210. package/lib/responses/ResponseInputItems.d.ts.map +1 -0
  211. package/lib/responses/ResponseInputItems.js +104 -0
  212. package/lib/responses/ResponseInputItems.js.map +1 -0
  213. package/lib/responses/ResponseInputItems.mjs +100 -0
  214. package/lib/responses/ResponseInputItems.mjs.map +1 -0
  215. package/lib/responses/ResponseStream.d.mts.map +1 -1
  216. package/lib/responses/ResponseStream.d.ts.map +1 -1
  217. package/lib/responses/ResponseStream.js +5 -90
  218. package/lib/responses/ResponseStream.js.map +1 -1
  219. package/lib/responses/ResponseStream.mjs +5 -90
  220. package/lib/responses/ResponseStream.mjs.map +1 -1
  221. package/package.json +24 -1
  222. package/providers/bedrock/aws.d.mts +24 -0
  223. package/providers/bedrock/aws.d.mts.map +1 -0
  224. package/providers/bedrock/aws.d.ts +24 -0
  225. package/providers/bedrock/aws.d.ts.map +1 -0
  226. package/providers/bedrock/aws.js +170 -0
  227. package/providers/bedrock/aws.js.map +1 -0
  228. package/providers/bedrock/aws.mjs +166 -0
  229. package/providers/bedrock/aws.mjs.map +1 -0
  230. package/providers/bedrock.d.mts +7 -0
  231. package/providers/bedrock.d.mts.map +1 -0
  232. package/providers/bedrock.d.ts +7 -0
  233. package/providers/bedrock.d.ts.map +1 -0
  234. package/providers/bedrock.js +26 -0
  235. package/providers/bedrock.js.map +1 -0
  236. package/providers/bedrock.mjs +22 -0
  237. package/providers/bedrock.mjs.map +1 -0
  238. package/realtime/internal-base.d.mts +28 -1
  239. package/realtime/internal-base.d.mts.map +1 -1
  240. package/realtime/internal-base.d.ts +28 -1
  241. package/realtime/internal-base.d.ts.map +1 -1
  242. package/realtime/internal-base.js +50 -7
  243. package/realtime/internal-base.js.map +1 -1
  244. package/realtime/internal-base.mjs +49 -7
  245. package/realtime/internal-base.mjs.map +1 -1
  246. package/realtime/websocket.d.mts +4 -7
  247. package/realtime/websocket.d.mts.map +1 -1
  248. package/realtime/websocket.d.ts +4 -7
  249. package/realtime/websocket.d.ts.map +1 -1
  250. package/realtime/websocket.js +4 -8
  251. package/realtime/websocket.js.map +1 -1
  252. package/realtime/websocket.mjs +5 -9
  253. package/realtime/websocket.mjs.map +1 -1
  254. package/realtime/ws.d.mts +4 -7
  255. package/realtime/ws.d.mts.map +1 -1
  256. package/realtime/ws.d.ts +4 -7
  257. package/realtime/ws.d.ts.map +1 -1
  258. package/realtime/ws.js +4 -8
  259. package/realtime/ws.js.map +1 -1
  260. package/realtime/ws.mjs +5 -9
  261. package/realtime/ws.mjs.map +1 -1
  262. package/resources/beta/assistants.d.mts +12 -26
  263. package/resources/beta/assistants.d.mts.map +1 -1
  264. package/resources/beta/assistants.d.ts +12 -26
  265. package/resources/beta/assistants.d.ts.map +1 -1
  266. package/resources/beta/beta.d.mts +6 -1
  267. package/resources/beta/beta.d.mts.map +1 -1
  268. package/resources/beta/beta.d.ts +6 -1
  269. package/resources/beta/beta.d.ts.map +1 -1
  270. package/resources/beta/beta.js +4 -0
  271. package/resources/beta/beta.js.map +1 -1
  272. package/resources/beta/beta.mjs +4 -0
  273. package/resources/beta/beta.mjs.map +1 -1
  274. package/resources/beta/index.d.mts +1 -0
  275. package/resources/beta/index.d.mts.map +1 -1
  276. package/resources/beta/index.d.ts +1 -0
  277. package/resources/beta/index.d.ts.map +1 -1
  278. package/resources/beta/index.js +5 -3
  279. package/resources/beta/index.js.map +1 -1
  280. package/resources/beta/index.mjs +1 -0
  281. package/resources/beta/index.mjs.map +1 -1
  282. package/resources/beta/responses/index.d.mts +6 -0
  283. package/resources/beta/responses/index.d.mts.map +1 -0
  284. package/resources/beta/responses/index.d.ts +6 -0
  285. package/resources/beta/responses/index.d.ts.map +1 -0
  286. package/resources/beta/responses/index.js +11 -0
  287. package/resources/beta/responses/index.js.map +1 -0
  288. package/resources/beta/responses/index.mjs +5 -0
  289. package/resources/beta/responses/index.mjs.map +1 -0
  290. package/resources/beta/responses/input-items.d.mts +69 -0
  291. package/resources/beta/responses/input-items.d.mts.map +1 -0
  292. package/resources/beta/responses/input-items.d.ts +69 -0
  293. package/resources/beta/responses/input-items.d.ts.map +1 -0
  294. package/resources/beta/responses/input-items.js +37 -0
  295. package/resources/beta/responses/input-items.js.map +1 -0
  296. package/resources/beta/responses/input-items.mjs +33 -0
  297. package/resources/beta/responses/input-items.mjs.map +1 -0
  298. package/resources/beta/responses/input-tokens.d.mts +191 -0
  299. package/resources/beta/responses/input-tokens.d.mts.map +1 -0
  300. package/resources/beta/responses/input-tokens.d.ts +191 -0
  301. package/resources/beta/responses/input-tokens.d.ts.map +1 -0
  302. package/resources/beta/responses/input-tokens.js +34 -0
  303. package/resources/beta/responses/input-tokens.js.map +1 -0
  304. package/resources/beta/responses/input-tokens.mjs +30 -0
  305. package/resources/beta/responses/input-tokens.mjs.map +1 -0
  306. package/resources/beta/responses/internal-base.d.mts +71 -0
  307. package/resources/beta/responses/internal-base.d.mts.map +1 -0
  308. package/resources/beta/responses/internal-base.d.ts +71 -0
  309. package/resources/beta/responses/internal-base.d.ts.map +1 -0
  310. package/resources/beta/responses/internal-base.js +48 -0
  311. package/resources/beta/responses/internal-base.js.map +1 -0
  312. package/resources/beta/responses/internal-base.mjs +42 -0
  313. package/resources/beta/responses/internal-base.mjs.map +1 -0
  314. package/resources/beta/responses/responses.d.mts +9985 -0
  315. package/resources/beta/responses/responses.d.mts.map +1 -0
  316. package/resources/beta/responses/responses.d.ts +9985 -0
  317. package/resources/beta/responses/responses.d.ts.map +1 -0
  318. package/resources/beta/responses/responses.js +121 -0
  319. package/resources/beta/responses/responses.js.map +1 -0
  320. package/resources/beta/responses/responses.mjs +116 -0
  321. package/resources/beta/responses/responses.mjs.map +1 -0
  322. package/resources/beta/responses/ws-base.d.mts +106 -0
  323. package/resources/beta/responses/ws-base.d.mts.map +1 -0
  324. package/resources/beta/responses/ws-base.d.ts +106 -0
  325. package/resources/beta/responses/ws-base.d.ts.map +1 -0
  326. package/resources/beta/responses/ws-base.js +476 -0
  327. package/resources/beta/responses/ws-base.js.map +1 -0
  328. package/resources/beta/responses/ws-base.mjs +472 -0
  329. package/resources/beta/responses/ws-base.mjs.map +1 -0
  330. package/resources/beta/responses/ws.d.mts +13 -0
  331. package/resources/beta/responses/ws.d.mts.map +1 -0
  332. package/resources/beta/responses/ws.d.ts +13 -0
  333. package/resources/beta/responses/ws.d.ts.map +1 -0
  334. package/resources/beta/responses/ws.js +31 -0
  335. package/resources/beta/responses/ws.js.map +1 -0
  336. package/resources/beta/responses/ws.mjs +26 -0
  337. package/resources/beta/responses/ws.mjs.map +1 -0
  338. package/resources/beta/responses.d.mts +2 -0
  339. package/resources/beta/responses.d.mts.map +1 -0
  340. package/resources/beta/responses.d.ts +2 -0
  341. package/resources/beta/responses.d.ts.map +1 -0
  342. package/resources/beta/responses.js +6 -0
  343. package/resources/beta/responses.js.map +1 -0
  344. package/resources/beta/responses.mjs +3 -0
  345. package/resources/beta/responses.mjs.map +1 -0
  346. package/resources/beta/threads/runs/runs.d.mts +6 -13
  347. package/resources/beta/threads/runs/runs.d.mts.map +1 -1
  348. package/resources/beta/threads/runs/runs.d.ts +6 -13
  349. package/resources/beta/threads/runs/runs.d.ts.map +1 -1
  350. package/resources/beta/threads/runs/runs.js.map +1 -1
  351. package/resources/beta/threads/runs/runs.mjs.map +1 -1
  352. package/resources/chat/completions/completions.d.mts +155 -14
  353. package/resources/chat/completions/completions.d.mts.map +1 -1
  354. package/resources/chat/completions/completions.d.ts +155 -14
  355. package/resources/chat/completions/completions.d.ts.map +1 -1
  356. package/resources/chat/completions/completions.js.map +1 -1
  357. package/resources/chat/completions/completions.mjs.map +1 -1
  358. package/resources/completions.d.mts +4 -0
  359. package/resources/completions.d.mts.map +1 -1
  360. package/resources/completions.d.ts +4 -0
  361. package/resources/completions.d.ts.map +1 -1
  362. package/resources/conversations/conversations.d.mts +19 -0
  363. package/resources/conversations/conversations.d.mts.map +1 -1
  364. package/resources/conversations/conversations.d.ts +19 -0
  365. package/resources/conversations/conversations.d.ts.map +1 -1
  366. package/resources/conversations/conversations.js.map +1 -1
  367. package/resources/conversations/conversations.mjs.map +1 -1
  368. package/resources/conversations/items.d.mts +45 -1
  369. package/resources/conversations/items.d.mts.map +1 -1
  370. package/resources/conversations/items.d.ts +45 -1
  371. package/resources/conversations/items.d.ts.map +1 -1
  372. package/resources/evals/runs/runs.d.mts +66 -143
  373. package/resources/evals/runs/runs.d.mts.map +1 -1
  374. package/resources/evals/runs/runs.d.ts +66 -143
  375. package/resources/evals/runs/runs.d.ts.map +1 -1
  376. package/resources/evals/runs/runs.js.map +1 -1
  377. package/resources/evals/runs/runs.mjs.map +1 -1
  378. package/resources/graders/grader-models.d.mts +6 -13
  379. package/resources/graders/grader-models.d.mts.map +1 -1
  380. package/resources/graders/grader-models.d.ts +6 -13
  381. package/resources/graders/grader-models.d.ts.map +1 -1
  382. package/resources/realtime/calls.d.mts +1 -1
  383. package/resources/realtime/calls.d.mts.map +1 -1
  384. package/resources/realtime/calls.d.ts +1 -1
  385. package/resources/realtime/calls.d.ts.map +1 -1
  386. package/resources/realtime/client-secrets.d.mts +5 -1
  387. package/resources/realtime/client-secrets.d.mts.map +1 -1
  388. package/resources/realtime/client-secrets.d.ts +5 -1
  389. package/resources/realtime/client-secrets.d.ts.map +1 -1
  390. package/resources/realtime/realtime.d.mts +9 -1
  391. package/resources/realtime/realtime.d.mts.map +1 -1
  392. package/resources/realtime/realtime.d.ts +9 -1
  393. package/resources/realtime/realtime.d.ts.map +1 -1
  394. package/resources/realtime/realtime.js.map +1 -1
  395. package/resources/realtime/realtime.mjs.map +1 -1
  396. package/resources/responses/input-tokens.d.mts +7 -1
  397. package/resources/responses/input-tokens.d.mts.map +1 -1
  398. package/resources/responses/input-tokens.d.ts +7 -1
  399. package/resources/responses/input-tokens.d.ts.map +1 -1
  400. package/resources/responses/responses.d.mts +816 -24
  401. package/resources/responses/responses.d.mts.map +1 -1
  402. package/resources/responses/responses.d.ts +816 -24
  403. package/resources/responses/responses.d.ts.map +1 -1
  404. package/resources/responses/responses.js +1 -1
  405. package/resources/responses/responses.js.map +1 -1
  406. package/resources/responses/responses.mjs +1 -1
  407. package/resources/responses/responses.mjs.map +1 -1
  408. package/resources/shared.d.mts +20 -28
  409. package/resources/shared.d.mts.map +1 -1
  410. package/resources/shared.d.ts +20 -28
  411. package/resources/shared.d.ts.map +1 -1
  412. package/resources/webhooks/webhooks.d.mts +54 -2
  413. package/resources/webhooks/webhooks.d.mts.map +1 -1
  414. package/resources/webhooks/webhooks.d.ts +54 -2
  415. package/resources/webhooks/webhooks.d.ts.map +1 -1
  416. package/src/_vendor/zod-to-json-schema/parseDef.ts +44 -16
  417. package/src/_vendor/zod-to-json-schema/parsers/branded.ts +2 -2
  418. package/src/_vendor/zod-to-json-schema/parsers/catch.ts +2 -2
  419. package/src/_vendor/zod-to-json-schema/parsers/default.ts +6 -2
  420. package/src/_vendor/zod-to-json-schema/parsers/nullable.ts +13 -5
  421. package/src/_vendor/zod-to-json-schema/parsers/optional.ts +14 -6
  422. package/src/_vendor/zod-to-json-schema/parsers/pipeline.ts +3 -2
  423. package/src/_vendor/zod-to-json-schema/parsers/promise.ts +6 -2
  424. package/src/_vendor/zod-to-json-schema/parsers/readonly.ts +2 -2
  425. package/src/auth/workload-identity-auth.ts +16 -5
  426. package/src/azure.ts +4 -1
  427. package/src/beta/realtime/internal-base.ts +43 -5
  428. package/src/beta/realtime/websocket.ts +10 -7
  429. package/src/beta/realtime/ws.ts +10 -7
  430. package/src/client.ts +80 -18
  431. package/src/helpers/audio.ts +18 -4
  432. package/src/helpers/zod.ts +16 -0
  433. package/src/internal/bedrock.ts +153 -0
  434. package/src/internal/provider.ts +60 -0
  435. package/src/internal/utils/log.ts +1 -0
  436. package/src/lib/AbstractChatCompletionRunner.ts +111 -45
  437. package/src/lib/AssistantStream.ts +5 -21
  438. package/src/lib/ChatCompletionRunner.ts +1 -1
  439. package/src/lib/ChatCompletionStream.ts +11 -15
  440. package/src/lib/ChatCompletionStreamingRunner.ts +1 -1
  441. package/src/lib/EventEmitter.ts +11 -2
  442. package/src/lib/EventStream.ts +20 -0
  443. package/src/lib/ResponsesParser.ts +18 -4
  444. package/src/lib/responses/ResponseAccumulator.ts +421 -0
  445. package/src/lib/responses/ResponseInputItems.ts +129 -0
  446. package/src/lib/responses/ResponseStream.ts +4 -93
  447. package/src/providers/bedrock/aws.ts +255 -0
  448. package/src/providers/bedrock.ts +33 -0
  449. package/src/realtime/internal-base.ts +90 -7
  450. package/src/realtime/websocket.ts +15 -13
  451. package/src/realtime/ws.ts +15 -13
  452. package/src/resources/beta/assistants.ts +12 -26
  453. package/src/resources/beta/beta.ts +330 -2
  454. package/src/resources/beta/index.ts +163 -0
  455. package/src/resources/beta/responses/index.ts +169 -0
  456. package/src/resources/beta/responses/input-items.ts +105 -0
  457. package/src/resources/beta/responses/input-tokens.ts +245 -0
  458. package/src/resources/beta/responses/internal-base.ts +117 -0
  459. package/src/resources/beta/responses/responses.ts +12632 -0
  460. package/src/resources/beta/responses/ws-base.ts +615 -0
  461. package/src/resources/beta/responses/ws.ts +38 -0
  462. package/src/resources/beta/responses.ts +3 -0
  463. package/src/resources/beta/threads/runs/runs.ts +6 -13
  464. package/src/resources/chat/completions/completions.ts +171 -14
  465. package/src/resources/completions.ts +5 -0
  466. package/src/resources/conversations/conversations.ts +21 -0
  467. package/src/resources/conversations/items.ts +56 -0
  468. package/src/resources/evals/runs/runs.ts +66 -143
  469. package/src/resources/graders/grader-models.ts +6 -13
  470. package/src/resources/realtime/calls.ts +2 -0
  471. package/src/resources/realtime/client-secrets.ts +7 -0
  472. package/src/resources/realtime/realtime.ts +12 -0
  473. package/src/resources/responses/input-tokens.ts +8 -0
  474. package/src/resources/responses/responses.ts +950 -15
  475. package/src/resources/shared.ts +23 -27
  476. package/src/resources/webhooks/api.md +1 -0
  477. package/src/resources/webhooks/webhooks.ts +65 -1
  478. package/src/version.ts +1 -1
  479. package/version.d.mts +1 -1
  480. package/version.d.ts +1 -1
  481. package/version.js +1 -1
  482. package/version.mjs +1 -1
@@ -0,0 +1,421 @@
1
+ import {
2
+ type Response,
3
+ type ResponseOutputText,
4
+ type ResponseStreamEvent,
5
+ } from '../../resources/responses/responses';
6
+ import { OpenAIError } from '../../error';
7
+ import { addOutputText } from '../ResponsesParser';
8
+
9
+ type ResponseKeepAliveEvent = {
10
+ type: 'keepalive';
11
+ sequence_number: number;
12
+ };
13
+
14
+ /**
15
+ * Applies a streaming event to a response snapshot.
16
+ *
17
+ * Always use the returned snapshot. Incremental events update the supplied snapshot
18
+ * in place, while response lifecycle events return a detached replacement. Event
19
+ * payloads are cloned, so retaining or replaying the raw events is safe.
20
+ */
21
+ export function accumulateResponse(
22
+ event: ResponseStreamEvent | ResponseKeepAliveEvent,
23
+ snapshot?: Response,
24
+ ): Response {
25
+ if (!snapshot) {
26
+ if (event.type !== 'response.created') {
27
+ throw new OpenAIError(
28
+ `When snapshot hasn't been set yet, expected 'response.created' event, got ${event.type}`,
29
+ );
30
+ }
31
+ return cloneResponse(event.response);
32
+ }
33
+
34
+ switch (event.type) {
35
+ case 'response.output_item.added': {
36
+ snapshot.output.push(structuredClone(event.item));
37
+ if (event.item.type === 'message') {
38
+ addOutputText(snapshot);
39
+ }
40
+ break;
41
+ }
42
+ case 'response.output_item.done': {
43
+ getOutput(snapshot, event.output_index);
44
+ snapshot.output[event.output_index] = structuredClone(event.item);
45
+ if (event.item.type === 'message') {
46
+ addOutputText(snapshot);
47
+ }
48
+ break;
49
+ }
50
+ case 'response.content_part.added': {
51
+ const output = getOutput(snapshot, event.output_index);
52
+ const type = output.type;
53
+ const part = event.part;
54
+ if (type === 'message' && part.type !== 'reasoning_text') {
55
+ output.content.push(structuredClone(part));
56
+ if (part.type === 'output_text') {
57
+ addOutputText(snapshot);
58
+ }
59
+ } else if (type === 'reasoning' && part.type === 'reasoning_text') {
60
+ if (!output.content) {
61
+ output.content = [];
62
+ }
63
+ output.content.push(structuredClone(part));
64
+ }
65
+ break;
66
+ }
67
+ case 'response.content_part.done': {
68
+ const output = getOutput(snapshot, event.output_index);
69
+ const part = event.part;
70
+ if (output.type === 'message' && part.type !== 'reasoning_text') {
71
+ getContent(output.content, event.content_index);
72
+ output.content[event.content_index] = structuredClone(part);
73
+ if (part.type === 'output_text') {
74
+ addOutputText(snapshot);
75
+ }
76
+ } else if (output.type === 'reasoning' && part.type === 'reasoning_text') {
77
+ const content = output.content;
78
+ if (!content) {
79
+ throw new OpenAIError(`missing content at index ${event.content_index}`);
80
+ }
81
+ getContent(content, event.content_index);
82
+ content[event.content_index] = structuredClone(part);
83
+ }
84
+ break;
85
+ }
86
+ case 'response.output_text.delta': {
87
+ const output = getOutput(snapshot, event.output_index);
88
+ if (output.type === 'message') {
89
+ const content = getContent(output.content, event.content_index);
90
+ if (content.type !== 'output_text') {
91
+ throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);
92
+ }
93
+ content.text += event.delta;
94
+ snapshot.output_text += event.delta;
95
+ }
96
+ break;
97
+ }
98
+ case 'response.output_text.done': {
99
+ const output = getOutput(snapshot, event.output_index);
100
+ if (output.type === 'message') {
101
+ const content = getContent(output.content, event.content_index);
102
+ if (content.type !== 'output_text') {
103
+ throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);
104
+ }
105
+ content.text = event.text;
106
+ addOutputText(snapshot);
107
+ }
108
+ break;
109
+ }
110
+ case 'response.output_text.annotation.added': {
111
+ const output = getOutput(snapshot, event.output_index);
112
+ if (output.type === 'message') {
113
+ const content = getContent(output.content, event.content_index);
114
+ if (content.type !== 'output_text') {
115
+ throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);
116
+ }
117
+ content.annotations[event.annotation_index] = structuredClone(
118
+ event.annotation,
119
+ ) as ResponseOutputText['annotations'][number];
120
+ }
121
+ break;
122
+ }
123
+ case 'response.refusal.delta': {
124
+ const output = getOutput(snapshot, event.output_index);
125
+ if (output.type === 'message') {
126
+ const content = getContent(output.content, event.content_index);
127
+ if (content.type !== 'refusal') {
128
+ throw new OpenAIError(`expected content to be 'refusal', got ${content.type}`);
129
+ }
130
+ content.refusal += event.delta;
131
+ }
132
+ break;
133
+ }
134
+ case 'response.refusal.done': {
135
+ const output = getOutput(snapshot, event.output_index);
136
+ if (output.type === 'message') {
137
+ const content = getContent(output.content, event.content_index);
138
+ if (content.type !== 'refusal') {
139
+ throw new OpenAIError(`expected content to be 'refusal', got ${content.type}`);
140
+ }
141
+ content.refusal = event.refusal;
142
+ }
143
+ break;
144
+ }
145
+ case 'response.function_call_arguments.delta': {
146
+ const output = getOutput(snapshot, event.output_index);
147
+ if (output.type === 'function_call') {
148
+ output.arguments += event.delta;
149
+ }
150
+ break;
151
+ }
152
+ case 'response.function_call_arguments.done': {
153
+ const output = getOutput(snapshot, event.output_index);
154
+ if (output.type === 'function_call') {
155
+ output.arguments = event.arguments;
156
+ }
157
+ break;
158
+ }
159
+ case 'response.reasoning_text.delta': {
160
+ const output = getOutput(snapshot, event.output_index);
161
+ if (output.type === 'reasoning') {
162
+ if (!output.content) {
163
+ throw new OpenAIError(`missing content at index ${event.content_index}`);
164
+ }
165
+ const content = getContent(output.content, event.content_index);
166
+ if (content.type !== 'reasoning_text') {
167
+ throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);
168
+ }
169
+ content.text += event.delta;
170
+ }
171
+ break;
172
+ }
173
+ case 'response.reasoning_text.done': {
174
+ const output = getOutput(snapshot, event.output_index);
175
+ if (output.type === 'reasoning') {
176
+ if (!output.content) {
177
+ throw new OpenAIError(`missing content at index ${event.content_index}`);
178
+ }
179
+ const content = getContent(output.content, event.content_index);
180
+ if (content.type !== 'reasoning_text') {
181
+ throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);
182
+ }
183
+ content.text = event.text;
184
+ }
185
+ break;
186
+ }
187
+ case 'response.reasoning_summary_part.added': {
188
+ const output = getOutput(snapshot, event.output_index);
189
+ if (output.type === 'reasoning') {
190
+ output.summary.push(structuredClone(event.part));
191
+ }
192
+ break;
193
+ }
194
+ case 'response.reasoning_summary_part.done': {
195
+ const output = getOutput(snapshot, event.output_index);
196
+ if (output.type === 'reasoning') {
197
+ getContent(output.summary, event.summary_index);
198
+ output.summary[event.summary_index] = structuredClone(event.part);
199
+ }
200
+ break;
201
+ }
202
+ case 'response.reasoning_summary_text.delta': {
203
+ const output = getOutput(snapshot, event.output_index);
204
+ if (output.type === 'reasoning') {
205
+ const part = getContent(output.summary, event.summary_index);
206
+ part.text += event.delta;
207
+ }
208
+ break;
209
+ }
210
+ case 'response.reasoning_summary_text.done': {
211
+ const output = getOutput(snapshot, event.output_index);
212
+ if (output.type === 'reasoning') {
213
+ const part = getContent(output.summary, event.summary_index);
214
+ part.text = event.text;
215
+ }
216
+ break;
217
+ }
218
+ case 'response.custom_tool_call_input.delta': {
219
+ const output = getOutput(snapshot, event.output_index);
220
+ if (output.type === 'custom_tool_call') {
221
+ output.input += event.delta;
222
+ }
223
+ break;
224
+ }
225
+ case 'response.custom_tool_call_input.done': {
226
+ const output = getOutput(snapshot, event.output_index);
227
+ if (output.type === 'custom_tool_call') {
228
+ output.input = event.input;
229
+ }
230
+ break;
231
+ }
232
+ case 'response.mcp_call_arguments.delta': {
233
+ const output = getOutput(snapshot, event.output_index);
234
+ if (output.type === 'mcp_call') {
235
+ output.arguments += event.delta;
236
+ }
237
+ break;
238
+ }
239
+ case 'response.mcp_call_arguments.done': {
240
+ const output = getOutput(snapshot, event.output_index);
241
+ if (output.type === 'mcp_call') {
242
+ output.arguments = event.arguments;
243
+ }
244
+ break;
245
+ }
246
+ case 'response.code_interpreter_call_code.delta': {
247
+ const output = getOutput(snapshot, event.output_index);
248
+ if (output.type === 'code_interpreter_call') {
249
+ output.code = (output.code ?? '') + event.delta;
250
+ }
251
+ break;
252
+ }
253
+ case 'response.code_interpreter_call_code.done': {
254
+ const output = getOutput(snapshot, event.output_index);
255
+ if (output.type === 'code_interpreter_call') {
256
+ output.code = event.code;
257
+ }
258
+ break;
259
+ }
260
+ case 'response.code_interpreter_call.in_progress': {
261
+ const output = getOutput(snapshot, event.output_index);
262
+ if (output.type === 'code_interpreter_call') {
263
+ output.status = 'in_progress';
264
+ }
265
+ break;
266
+ }
267
+ case 'response.code_interpreter_call.interpreting': {
268
+ const output = getOutput(snapshot, event.output_index);
269
+ if (output.type === 'code_interpreter_call') {
270
+ output.status = 'interpreting';
271
+ }
272
+ break;
273
+ }
274
+ case 'response.code_interpreter_call.completed': {
275
+ const output = getOutput(snapshot, event.output_index);
276
+ if (output.type === 'code_interpreter_call') {
277
+ output.status = 'completed';
278
+ }
279
+ break;
280
+ }
281
+ case 'response.file_search_call.in_progress': {
282
+ const output = getOutput(snapshot, event.output_index);
283
+ if (output.type === 'file_search_call') {
284
+ output.status = 'in_progress';
285
+ }
286
+ break;
287
+ }
288
+ case 'response.file_search_call.searching': {
289
+ const output = getOutput(snapshot, event.output_index);
290
+ if (output.type === 'file_search_call') {
291
+ output.status = 'searching';
292
+ }
293
+ break;
294
+ }
295
+ case 'response.file_search_call.completed': {
296
+ const output = getOutput(snapshot, event.output_index);
297
+ if (output.type === 'file_search_call') {
298
+ output.status = 'completed';
299
+ }
300
+ break;
301
+ }
302
+ case 'response.web_search_call.in_progress': {
303
+ const output = getOutput(snapshot, event.output_index);
304
+ if (output.type === 'web_search_call') {
305
+ output.status = 'in_progress';
306
+ }
307
+ break;
308
+ }
309
+ case 'response.web_search_call.searching': {
310
+ const output = getOutput(snapshot, event.output_index);
311
+ if (output.type === 'web_search_call') {
312
+ output.status = 'searching';
313
+ }
314
+ break;
315
+ }
316
+ case 'response.web_search_call.completed': {
317
+ const output = getOutput(snapshot, event.output_index);
318
+ if (output.type === 'web_search_call') {
319
+ output.status = 'completed';
320
+ }
321
+ break;
322
+ }
323
+ case 'response.image_generation_call.in_progress': {
324
+ const output = getOutput(snapshot, event.output_index);
325
+ if (output.type === 'image_generation_call') {
326
+ output.status = 'in_progress';
327
+ }
328
+ break;
329
+ }
330
+ case 'response.image_generation_call.generating': {
331
+ const output = getOutput(snapshot, event.output_index);
332
+ if (output.type === 'image_generation_call') {
333
+ output.status = 'generating';
334
+ }
335
+ break;
336
+ }
337
+ case 'response.image_generation_call.completed': {
338
+ const output = getOutput(snapshot, event.output_index);
339
+ if (output.type === 'image_generation_call') {
340
+ output.status = 'completed';
341
+ }
342
+ break;
343
+ }
344
+ case 'response.mcp_call.in_progress': {
345
+ const output = getOutput(snapshot, event.output_index);
346
+ if (output.type === 'mcp_call') {
347
+ output.status = 'in_progress';
348
+ }
349
+ break;
350
+ }
351
+ case 'response.mcp_call.completed': {
352
+ const output = getOutput(snapshot, event.output_index);
353
+ if (output.type === 'mcp_call') {
354
+ output.status = 'completed';
355
+ }
356
+ break;
357
+ }
358
+ case 'response.mcp_call.failed': {
359
+ const output = getOutput(snapshot, event.output_index);
360
+ if (output.type === 'mcp_call') {
361
+ output.status = 'failed';
362
+ }
363
+ break;
364
+ }
365
+ case 'response.created':
366
+ case 'response.queued':
367
+ case 'response.in_progress':
368
+ case 'response.completed':
369
+ case 'response.failed':
370
+ case 'response.incomplete': {
371
+ snapshot = cloneResponse(event.response);
372
+ break;
373
+ }
374
+ case 'response.audio.delta':
375
+ case 'response.audio.done':
376
+ case 'response.audio.transcript.delta':
377
+ case 'response.audio.transcript.done':
378
+ case 'response.image_generation_call.partial_image':
379
+ case 'response.mcp_list_tools.in_progress':
380
+ case 'response.mcp_list_tools.completed':
381
+ case 'response.mcp_list_tools.failed':
382
+ case 'keepalive':
383
+ case 'error': {
384
+ // These events do not contain state represented by the Response object.
385
+ break;
386
+ }
387
+ default: {
388
+ assertNever(event);
389
+ }
390
+ }
391
+
392
+ return snapshot;
393
+ }
394
+
395
+ function cloneResponse(response: Response): Response {
396
+ const snapshot = structuredClone(response);
397
+ if (!Object.getOwnPropertyDescriptor(snapshot, 'output_text') || snapshot.output_text == null) {
398
+ addOutputText(snapshot);
399
+ }
400
+ return snapshot;
401
+ }
402
+
403
+ function getOutput(snapshot: Response, outputIndex: number): Response['output'][number] {
404
+ const output = snapshot.output[outputIndex];
405
+ if (!output) {
406
+ throw new OpenAIError(`missing output at index ${outputIndex}`);
407
+ }
408
+ return output;
409
+ }
410
+
411
+ function getContent<T>(content: Array<T>, contentIndex: number): T {
412
+ const part = content[contentIndex];
413
+ if (!part) {
414
+ throw new OpenAIError(`missing content at index ${contentIndex}`);
415
+ }
416
+ return part;
417
+ }
418
+
419
+ function assertNever(value: never): never {
420
+ throw new OpenAIError(`Unhandled response stream event: ${JSON.stringify(value)}`);
421
+ }
@@ -0,0 +1,129 @@
1
+ import type {
2
+ ResponseFunctionShellCallOutputContent,
3
+ ResponseInputItem,
4
+ ResponseOutputItem,
5
+ } from '../../resources/responses/responses';
6
+
7
+ export type ResponseInputItemLike = ResponseInputItem | ResponseOutputItem;
8
+
9
+ type ResponseShellCallOutputInputItem = Extract<ResponseInputItem, { type: 'shell_call_output' }>;
10
+ type ResponseComputerCallOutputInputItem = Extract<ResponseInputItem, { type: 'computer_call_output' }>;
11
+ type ResponseCustomToolCallOutputInputItem = Extract<ResponseInputItem, { type: 'custom_tool_call_output' }>;
12
+ type ResponseAdditionalToolsInputItem = Extract<ResponseInputItem, { type: 'additional_tools' }>;
13
+
14
+ /**
15
+ * Normalizes a mixed array of stored response history items into clean
16
+ * `ResponseInputItem`s that can be sent back to `responses.create()`. Known items
17
+ * that cannot be replayed without changing their meaning are omitted.
18
+ *
19
+ * @throws {TypeError} If an item type is not supported by the installed SDK.
20
+ */
21
+ export function toResponseInputItems(items: Iterable<ResponseInputItemLike>): ResponseInputItem[] {
22
+ const inputItems: ResponseInputItem[] = [];
23
+ for (const item of items) {
24
+ const inputItem = toResponseInputItem(item);
25
+ if (inputItem) {
26
+ inputItems.push(inputItem);
27
+ }
28
+ }
29
+ return inputItems;
30
+ }
31
+
32
+ /**
33
+ * Normalizes a stored response history item into a clean `ResponseInputItem`, or
34
+ * returns `null` when a known item cannot be replayed without changing its
35
+ * meaning.
36
+ *
37
+ * @throws {TypeError} If the item type is not supported by the installed SDK.
38
+ */
39
+ export function toResponseInputItem(item: ResponseInputItemLike): ResponseInputItem | null {
40
+ switch (item.type) {
41
+ case 'additional_tools': {
42
+ if (item.role !== 'developer') {
43
+ return null;
44
+ }
45
+ return stripCreatedBy(item) as ResponseAdditionalToolsInputItem;
46
+ }
47
+
48
+ case 'shell_call_output': {
49
+ const output: ResponseShellCallOutputInputItem['output'] = item.output.map(
50
+ (chunk) => stripCreatedBy(chunk) as ResponseFunctionShellCallOutputContent,
51
+ );
52
+ return {
53
+ ...(stripCreatedBy(item) as ResponseShellCallOutputInputItem),
54
+ output,
55
+ };
56
+ }
57
+
58
+ case 'computer_call_output': {
59
+ const { created_by: _createdBy, ...withoutCreatedBy } = item as typeof item & {
60
+ created_by?: string;
61
+ };
62
+ if (withoutCreatedBy.status === 'failed') {
63
+ return null;
64
+ }
65
+ return withoutCreatedBy as ResponseComputerCallOutputInputItem;
66
+ }
67
+
68
+ case 'custom_tool_call_output': {
69
+ if ('status' in item && item.status !== 'completed') {
70
+ return null;
71
+ }
72
+ const {
73
+ created_by: _createdBy,
74
+ status: _status,
75
+ ...inputItem
76
+ } = item as typeof item & { created_by?: string; status?: string };
77
+ return inputItem as ResponseCustomToolCallOutputInputItem;
78
+ }
79
+
80
+ case 'apply_patch_call':
81
+ case 'apply_patch_call_output':
82
+ case 'code_interpreter_call':
83
+ case 'compaction':
84
+ case 'compaction_trigger':
85
+ case 'computer_call':
86
+ case 'custom_tool_call':
87
+ case 'file_search_call':
88
+ case 'function_call':
89
+ case 'function_call_output':
90
+ case 'image_generation_call':
91
+ case 'item_reference':
92
+ case 'local_shell_call':
93
+ case 'local_shell_call_output':
94
+ case 'mcp_approval_request':
95
+ case 'mcp_approval_response':
96
+ case 'mcp_call':
97
+ case 'mcp_list_tools':
98
+ case 'message':
99
+ case 'program':
100
+ case 'program_output':
101
+ case 'reasoning':
102
+ case 'shell_call':
103
+ case 'tool_search_call':
104
+ case 'tool_search_output':
105
+ case 'web_search_call':
106
+ case null:
107
+ case undefined: {
108
+ return stripCreatedBy(item) as ResponseInputItem;
109
+ }
110
+
111
+ default: {
112
+ return assertNever(item);
113
+ }
114
+ }
115
+ }
116
+
117
+ function stripCreatedBy<T extends object>(item: T): T {
118
+ if (!('created_by' in item)) {
119
+ return item;
120
+ }
121
+
122
+ const { created_by: _createdBy, ...rest } = item as T & { created_by?: string };
123
+ return rest as T;
124
+ }
125
+
126
+ function assertNever(value: never): never {
127
+ const type = (value as { type?: unknown }).type;
128
+ throw new TypeError(`Unsupported response item type: ${String(type)}`);
129
+ }
@@ -11,6 +11,7 @@ import { APIUserAbortError, OpenAIError } from '../../error';
11
11
  import OpenAI from '../../index';
12
12
  import { type BaseEvents, EventStream } from '../EventStream';
13
13
  import { type ResponseFunctionCallArgumentsDeltaEvent, type ResponseTextDeltaEvent } from './EventTypes';
14
+ import { accumulateResponse } from './ResponseAccumulator';
14
15
  import { maybeParseResponse, ParseableToolsParams } from '../ResponsesParser';
15
16
  import { Stream } from '../../streaming';
16
17
 
@@ -103,7 +104,8 @@ export class ResponseStream<ParsedT = null>
103
104
  }
104
105
  };
105
106
 
106
- const response = this.#accumulateResponse(event);
107
+ const response = accumulateResponse(event, this.#currentResponseSnapshot);
108
+ this.#currentResponseSnapshot = response;
107
109
  maybeEmit('event', event);
108
110
 
109
111
  switch (event.type) {
@@ -167,11 +169,7 @@ export class ResponseStream<ParsedT = null>
167
169
  params: ResponseStreamParams,
168
170
  options?: RequestOptions,
169
171
  ): Promise<ParsedResponse<ParsedT>> {
170
- const signal = options?.signal;
171
- if (signal) {
172
- if (signal.aborted) this.controller.abort();
173
- signal.addEventListener('abort', () => this.controller.abort());
174
- }
172
+ this._listenForAbort(options?.signal);
175
173
  this.#beginRequest();
176
174
 
177
175
  let stream: Stream<ResponseStreamEvent> | undefined;
@@ -200,93 +198,6 @@ export class ResponseStream<ParsedT = null>
200
198
  return this.#endRequest();
201
199
  }
202
200
 
203
- #accumulateResponse(event: ResponseStreamEvent): Response {
204
- let snapshot = this.#currentResponseSnapshot;
205
- if (!snapshot) {
206
- if (event.type !== 'response.created') {
207
- throw new OpenAIError(
208
- `When snapshot hasn't been set yet, expected 'response.created' event, got ${event.type}`,
209
- );
210
- }
211
- snapshot = this.#currentResponseSnapshot = event.response;
212
- return snapshot;
213
- }
214
-
215
- switch (event.type) {
216
- case 'response.output_item.added': {
217
- snapshot.output.push(event.item);
218
- break;
219
- }
220
- case 'response.content_part.added': {
221
- const output = snapshot.output[event.output_index];
222
- if (!output) {
223
- throw new OpenAIError(`missing output at index ${event.output_index}`);
224
- }
225
- const type = output.type;
226
- const part = event.part;
227
- if (type === 'message' && part.type !== 'reasoning_text') {
228
- output.content.push(part);
229
- } else if (type === 'reasoning' && part.type === 'reasoning_text') {
230
- if (!output.content) {
231
- output.content = [];
232
- }
233
- output.content.push(part);
234
- }
235
- break;
236
- }
237
- case 'response.output_text.delta': {
238
- const output = snapshot.output[event.output_index];
239
- if (!output) {
240
- throw new OpenAIError(`missing output at index ${event.output_index}`);
241
- }
242
- if (output.type === 'message') {
243
- const content = output.content[event.content_index];
244
- if (!content) {
245
- throw new OpenAIError(`missing content at index ${event.content_index}`);
246
- }
247
- if (content.type !== 'output_text') {
248
- throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);
249
- }
250
- content.text += event.delta;
251
- }
252
- break;
253
- }
254
- case 'response.function_call_arguments.delta': {
255
- const output = snapshot.output[event.output_index];
256
- if (!output) {
257
- throw new OpenAIError(`missing output at index ${event.output_index}`);
258
- }
259
- if (output.type === 'function_call') {
260
- output.arguments += event.delta;
261
- }
262
- break;
263
- }
264
- case 'response.reasoning_text.delta': {
265
- const output = snapshot.output[event.output_index];
266
- if (!output) {
267
- throw new OpenAIError(`missing output at index ${event.output_index}`);
268
- }
269
- if (output.type === 'reasoning') {
270
- const content = output.content?.[event.content_index];
271
- if (!content) {
272
- throw new OpenAIError(`missing content at index ${event.content_index}`);
273
- }
274
- if (content.type !== 'reasoning_text') {
275
- throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);
276
- }
277
- content.text += event.delta;
278
- }
279
- break;
280
- }
281
- case 'response.completed': {
282
- this.#currentResponseSnapshot = event.response;
283
- break;
284
- }
285
- }
286
-
287
- return snapshot;
288
- }
289
-
290
201
  [Symbol.asyncIterator](this: ResponseStream<ParsedT>): AsyncIterator<ResponseStreamEvent> {
291
202
  const pushQueue: ResponseStreamEvent[] = [];
292
203
  const readQueue: {