openai 7.24.0 → 7.26.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 (339) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/client.d.mts +5 -6
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +5 -6
  5. package/client.d.ts.map +1 -1
  6. package/client.js +38 -10
  7. package/client.js.map +1 -1
  8. package/client.mjs +39 -11
  9. package/client.mjs.map +1 -1
  10. package/core/streaming.d.mts +4 -0
  11. package/core/streaming.d.mts.map +1 -1
  12. package/core/streaming.d.ts +4 -0
  13. package/core/streaming.d.ts.map +1 -1
  14. package/core/streaming.js +6 -0
  15. package/core/streaming.js.map +1 -1
  16. package/core/streaming.mjs +6 -0
  17. package/core/streaming.mjs.map +1 -1
  18. package/helpers/beta/agents/standard-schema.d.mts +7 -0
  19. package/helpers/beta/agents/standard-schema.d.mts.map +1 -0
  20. package/helpers/beta/agents/standard-schema.d.ts +7 -0
  21. package/helpers/beta/agents/standard-schema.d.ts.map +1 -0
  22. package/helpers/beta/agents/standard-schema.js +12 -0
  23. package/helpers/beta/agents/standard-schema.js.map +1 -0
  24. package/helpers/beta/agents/standard-schema.mjs +9 -0
  25. package/helpers/beta/agents/standard-schema.mjs.map +1 -0
  26. package/helpers/beta/agents/zod.d.mts +10 -0
  27. package/helpers/beta/agents/zod.d.mts.map +1 -0
  28. package/helpers/beta/agents/zod.d.ts +10 -0
  29. package/helpers/beta/agents/zod.d.ts.map +1 -0
  30. package/helpers/beta/agents/zod.js +12 -0
  31. package/helpers/beta/agents/zod.js.map +1 -0
  32. package/helpers/beta/agents/zod.mjs +9 -0
  33. package/helpers/beta/agents/zod.mjs.map +1 -0
  34. package/internal/realtime-credentials.d.mts +22 -1
  35. package/internal/realtime-credentials.d.mts.map +1 -1
  36. package/internal/realtime-credentials.d.ts +22 -1
  37. package/internal/realtime-credentials.d.ts.map +1 -1
  38. package/internal/realtime-credentials.js +48 -4
  39. package/internal/realtime-credentials.js.map +1 -1
  40. package/internal/realtime-credentials.mjs +45 -4
  41. package/internal/realtime-credentials.mjs.map +1 -1
  42. package/internal/responses-ws-credentials.d.mts +23 -0
  43. package/internal/responses-ws-credentials.d.mts.map +1 -0
  44. package/internal/responses-ws-credentials.d.ts +23 -0
  45. package/internal/responses-ws-credentials.d.ts.map +1 -0
  46. package/internal/responses-ws-credentials.js +108 -0
  47. package/internal/responses-ws-credentials.js.map +1 -0
  48. package/internal/responses-ws-credentials.mjs +104 -0
  49. package/internal/responses-ws-credentials.mjs.map +1 -0
  50. package/internal/ws-adapter-node.d.mts +4 -0
  51. package/internal/ws-adapter-node.d.mts.map +1 -1
  52. package/internal/ws-adapter-node.d.ts +4 -0
  53. package/internal/ws-adapter-node.d.ts.map +1 -1
  54. package/internal/ws-adapter-node.js +56 -0
  55. package/internal/ws-adapter-node.js.map +1 -1
  56. package/internal/ws-adapter-node.mjs +55 -0
  57. package/internal/ws-adapter-node.mjs.map +1 -1
  58. package/internal/ws.d.mts +27 -4
  59. package/internal/ws.d.mts.map +1 -1
  60. package/internal/ws.d.ts +27 -4
  61. package/internal/ws.d.ts.map +1 -1
  62. package/internal/ws.js +105 -5
  63. package/internal/ws.js.map +1 -1
  64. package/internal/ws.mjs +102 -4
  65. package/internal/ws.mjs.map +1 -1
  66. package/lib/agents/agent-session-stream.d.mts +13 -4
  67. package/lib/agents/agent-session-stream.d.mts.map +1 -1
  68. package/lib/agents/agent-session-stream.d.ts +13 -4
  69. package/lib/agents/agent-session-stream.d.ts.map +1 -1
  70. package/lib/agents/agent-session-stream.js +24 -21
  71. package/lib/agents/agent-session-stream.js.map +1 -1
  72. package/lib/agents/agent-session-stream.mjs +24 -21
  73. package/lib/agents/agent-session-stream.mjs.map +1 -1
  74. package/lib/beta/agents/agent-session-create-stream.d.mts +15 -0
  75. package/lib/beta/agents/agent-session-create-stream.d.mts.map +1 -0
  76. package/lib/beta/agents/agent-session-create-stream.d.ts +15 -0
  77. package/lib/beta/agents/agent-session-create-stream.d.ts.map +1 -0
  78. package/lib/beta/agents/agent-session-create-stream.js +25 -0
  79. package/lib/beta/agents/agent-session-create-stream.js.map +1 -0
  80. package/lib/beta/agents/agent-session-create-stream.mjs +22 -0
  81. package/lib/beta/agents/agent-session-create-stream.mjs.map +1 -0
  82. package/lib/beta/agents/agent-turn-result-collector.d.mts +17 -0
  83. package/lib/beta/agents/agent-turn-result-collector.d.mts.map +1 -0
  84. package/lib/beta/agents/agent-turn-result-collector.d.ts +17 -0
  85. package/lib/beta/agents/agent-turn-result-collector.d.ts.map +1 -0
  86. package/lib/beta/agents/agent-turn-result-collector.js +99 -0
  87. package/lib/beta/agents/agent-turn-result-collector.js.map +1 -0
  88. package/lib/beta/agents/agent-turn-result-collector.mjs +95 -0
  89. package/lib/beta/agents/agent-turn-result-collector.mjs.map +1 -0
  90. package/lib/beta/agents/agent-turn-result-error.d.mts +16 -0
  91. package/lib/beta/agents/agent-turn-result-error.d.mts.map +1 -0
  92. package/lib/beta/agents/agent-turn-result-error.d.ts +16 -0
  93. package/lib/beta/agents/agent-turn-result-error.d.ts.map +1 -0
  94. package/lib/beta/agents/agent-turn-result-error.js +22 -0
  95. package/lib/beta/agents/agent-turn-result-error.js.map +1 -0
  96. package/lib/beta/agents/agent-turn-result-error.mjs +18 -0
  97. package/lib/beta/agents/agent-turn-result-error.mjs.map +1 -0
  98. package/lib/beta/agents/agent-turn-result.d.mts +12 -0
  99. package/lib/beta/agents/agent-turn-result.d.mts.map +1 -0
  100. package/lib/beta/agents/agent-turn-result.d.ts +12 -0
  101. package/lib/beta/agents/agent-turn-result.d.ts.map +1 -0
  102. package/lib/beta/agents/agent-turn-result.js +22 -0
  103. package/lib/beta/agents/agent-turn-result.js.map +1 -0
  104. package/lib/beta/agents/agent-turn-result.mjs +18 -0
  105. package/lib/beta/agents/agent-turn-result.mjs.map +1 -0
  106. package/lib/beta/agents/function-tool.d.mts +27 -0
  107. package/lib/beta/agents/function-tool.d.mts.map +1 -0
  108. package/lib/beta/agents/function-tool.d.ts +27 -0
  109. package/lib/beta/agents/function-tool.d.ts.map +1 -0
  110. package/lib/beta/agents/function-tool.js +48 -0
  111. package/lib/beta/agents/function-tool.js.map +1 -0
  112. package/lib/beta/agents/function-tool.mjs +45 -0
  113. package/lib/beta/agents/function-tool.mjs.map +1 -0
  114. package/lib/beta/agents/output-format-types.d.mts +11 -0
  115. package/lib/beta/agents/output-format-types.d.mts.map +1 -0
  116. package/lib/beta/agents/output-format-types.d.ts +11 -0
  117. package/lib/beta/agents/output-format-types.d.ts.map +1 -0
  118. package/lib/beta/agents/output-format-types.js +3 -0
  119. package/lib/beta/agents/output-format-types.js.map +1 -0
  120. package/lib/beta/agents/output-format-types.mjs +2 -0
  121. package/lib/beta/agents/output-format-types.mjs.map +1 -0
  122. package/lib/beta/agents/output-format.d.mts +8 -0
  123. package/lib/beta/agents/output-format.d.mts.map +1 -0
  124. package/lib/beta/agents/output-format.d.ts +8 -0
  125. package/lib/beta/agents/output-format.d.ts.map +1 -0
  126. package/lib/beta/agents/output-format.js +20 -0
  127. package/lib/beta/agents/output-format.js.map +1 -0
  128. package/lib/beta/agents/output-format.mjs +14 -0
  129. package/lib/beta/agents/output-format.mjs.map +1 -0
  130. package/lib/beta/agents/output-parse-error.d.mts +11 -0
  131. package/lib/beta/agents/output-parse-error.d.mts.map +1 -0
  132. package/lib/beta/agents/output-parse-error.d.ts +11 -0
  133. package/lib/beta/agents/output-parse-error.d.ts.map +1 -0
  134. package/lib/beta/agents/output-parse-error.js +22 -0
  135. package/lib/beta/agents/output-parse-error.js.map +1 -0
  136. package/lib/beta/agents/output-parse-error.mjs +18 -0
  137. package/lib/beta/agents/output-parse-error.mjs.map +1 -0
  138. package/lib/beta/agents/parse-result.d.mts +95 -0
  139. package/lib/beta/agents/parse-result.d.mts.map +1 -0
  140. package/lib/beta/agents/parse-result.d.ts +95 -0
  141. package/lib/beta/agents/parse-result.d.ts.map +1 -0
  142. package/lib/beta/agents/parse-result.js +116 -0
  143. package/lib/beta/agents/parse-result.js.map +1 -0
  144. package/lib/beta/agents/parse-result.mjs +110 -0
  145. package/lib/beta/agents/parse-result.mjs.map +1 -0
  146. package/lib/beta/agents/parsed-agent-turn-result.d.mts +8 -0
  147. package/lib/beta/agents/parsed-agent-turn-result.d.mts.map +1 -0
  148. package/lib/beta/agents/parsed-agent-turn-result.d.ts +8 -0
  149. package/lib/beta/agents/parsed-agent-turn-result.d.ts.map +1 -0
  150. package/lib/beta/agents/parsed-agent-turn-result.js +14 -0
  151. package/lib/beta/agents/parsed-agent-turn-result.js.map +1 -0
  152. package/lib/beta/agents/parsed-agent-turn-result.mjs +10 -0
  153. package/lib/beta/agents/parsed-agent-turn-result.mjs.map +1 -0
  154. package/lib/beta/agents/result-collection.d.mts +15 -0
  155. package/lib/beta/agents/result-collection.d.mts.map +1 -0
  156. package/lib/beta/agents/result-collection.d.ts +15 -0
  157. package/lib/beta/agents/result-collection.d.ts.map +1 -0
  158. package/lib/beta/agents/result-collection.js +110 -0
  159. package/lib/beta/agents/result-collection.js.map +1 -0
  160. package/lib/beta/agents/result-collection.mjs +106 -0
  161. package/lib/beta/agents/result-collection.mjs.map +1 -0
  162. package/lib/beta/agents/tool-output.d.mts +7 -0
  163. package/lib/beta/agents/tool-output.d.mts.map +1 -0
  164. package/lib/beta/agents/tool-output.d.ts +7 -0
  165. package/lib/beta/agents/tool-output.d.ts.map +1 -0
  166. package/lib/beta/agents/tool-output.js +26 -0
  167. package/lib/beta/agents/tool-output.js.map +1 -0
  168. package/lib/beta/agents/tool-output.mjs +23 -0
  169. package/lib/beta/agents/tool-output.mjs.map +1 -0
  170. package/lib/responses/responses-websocket-session.d.mts +1 -1
  171. package/lib/responses/responses-websocket-session.d.mts.map +1 -1
  172. package/lib/responses/responses-websocket-session.d.ts +1 -1
  173. package/lib/responses/responses-websocket-session.d.ts.map +1 -1
  174. package/lib/responses/responses-websocket-session.js +12 -2
  175. package/lib/responses/responses-websocket-session.js.map +1 -1
  176. package/lib/responses/responses-websocket-session.mjs +12 -2
  177. package/lib/responses/responses-websocket-session.mjs.map +1 -1
  178. package/package.json +1 -1
  179. package/resources/audio/speech.d.mts +1 -1
  180. package/resources/audio/speech.d.ts +1 -1
  181. package/resources/audio/speech.js +1 -1
  182. package/resources/audio/speech.mjs +1 -1
  183. package/resources/beta/agents/agents.d.mts +574 -11
  184. package/resources/beta/agents/agents.d.mts.map +1 -1
  185. package/resources/beta/agents/agents.d.ts +574 -11
  186. package/resources/beta/agents/agents.d.ts.map +1 -1
  187. package/resources/beta/agents/agents.js.map +1 -1
  188. package/resources/beta/agents/agents.mjs.map +1 -1
  189. package/resources/beta/agents/environments/templates.d.mts +56 -3
  190. package/resources/beta/agents/environments/templates.d.mts.map +1 -1
  191. package/resources/beta/agents/environments/templates.d.ts +56 -3
  192. package/resources/beta/agents/environments/templates.d.ts.map +1 -1
  193. package/resources/beta/agents/index.d.mts +1 -1
  194. package/resources/beta/agents/index.d.mts.map +1 -1
  195. package/resources/beta/agents/index.d.ts +1 -1
  196. package/resources/beta/agents/index.d.ts.map +1 -1
  197. package/resources/beta/agents/index.js.map +1 -1
  198. package/resources/beta/agents/index.mjs.map +1 -1
  199. package/resources/beta/agents/sessions/events.d.mts +16 -12
  200. package/resources/beta/agents/sessions/events.d.mts.map +1 -1
  201. package/resources/beta/agents/sessions/events.d.ts +16 -12
  202. package/resources/beta/agents/sessions/events.d.ts.map +1 -1
  203. package/resources/beta/agents/sessions/events.js +16 -12
  204. package/resources/beta/agents/sessions/events.js.map +1 -1
  205. package/resources/beta/agents/sessions/events.mjs +16 -12
  206. package/resources/beta/agents/sessions/events.mjs.map +1 -1
  207. package/resources/beta/agents/sessions/index.d.mts +1 -0
  208. package/resources/beta/agents/sessions/index.d.mts.map +1 -1
  209. package/resources/beta/agents/sessions/index.d.ts +1 -0
  210. package/resources/beta/agents/sessions/index.d.ts.map +1 -1
  211. package/resources/beta/agents/sessions/index.js +3 -1
  212. package/resources/beta/agents/sessions/index.js.map +1 -1
  213. package/resources/beta/agents/sessions/index.mjs +1 -0
  214. package/resources/beta/agents/sessions/index.mjs.map +1 -1
  215. package/resources/beta/agents/sessions/sessions.d.mts +16 -4
  216. package/resources/beta/agents/sessions/sessions.d.mts.map +1 -1
  217. package/resources/beta/agents/sessions/sessions.d.ts +16 -4
  218. package/resources/beta/agents/sessions/sessions.d.ts.map +1 -1
  219. package/resources/beta/agents/sessions/sessions.js +17 -4
  220. package/resources/beta/agents/sessions/sessions.js.map +1 -1
  221. package/resources/beta/agents/sessions/sessions.mjs +17 -4
  222. package/resources/beta/agents/sessions/sessions.mjs.map +1 -1
  223. package/resources/beta/agents/sessions/traces.d.mts +68 -0
  224. package/resources/beta/agents/sessions/traces.d.mts.map +1 -0
  225. package/resources/beta/agents/sessions/traces.d.ts +68 -0
  226. package/resources/beta/agents/sessions/traces.d.ts.map +1 -0
  227. package/resources/beta/agents/sessions/traces.js +81 -0
  228. package/resources/beta/agents/sessions/traces.js.map +1 -0
  229. package/resources/beta/agents/sessions/traces.mjs +77 -0
  230. package/resources/beta/agents/sessions/traces.mjs.map +1 -0
  231. package/resources/beta/beta.d.mts +2 -2
  232. package/resources/beta/beta.d.mts.map +1 -1
  233. package/resources/beta/beta.d.ts +2 -2
  234. package/resources/beta/beta.d.ts.map +1 -1
  235. package/resources/beta/beta.js.map +1 -1
  236. package/resources/beta/beta.mjs.map +1 -1
  237. package/resources/beta/index.d.mts +1 -1
  238. package/resources/beta/index.d.mts.map +1 -1
  239. package/resources/beta/index.d.ts +1 -1
  240. package/resources/beta/index.d.ts.map +1 -1
  241. package/resources/beta/index.js.map +1 -1
  242. package/resources/beta/index.mjs.map +1 -1
  243. package/resources/beta/responses/ws-base.d.mts +3 -1
  244. package/resources/beta/responses/ws-base.d.mts.map +1 -1
  245. package/resources/beta/responses/ws-base.d.ts +3 -1
  246. package/resources/beta/responses/ws-base.d.ts.map +1 -1
  247. package/resources/beta/responses/ws-base.js +35 -6
  248. package/resources/beta/responses/ws-base.js.map +1 -1
  249. package/resources/beta/responses/ws-base.mjs +35 -6
  250. package/resources/beta/responses/ws-base.mjs.map +1 -1
  251. package/resources/beta/responses/ws.d.mts +10 -0
  252. package/resources/beta/responses/ws.d.mts.map +1 -1
  253. package/resources/beta/responses/ws.d.ts +10 -0
  254. package/resources/beta/responses/ws.d.ts.map +1 -1
  255. package/resources/beta/responses/ws.js +23 -22
  256. package/resources/beta/responses/ws.js.map +1 -1
  257. package/resources/beta/responses/ws.mjs +24 -23
  258. package/resources/beta/responses/ws.mjs.map +1 -1
  259. package/resources/chat/completions/completions.d.mts +1 -1
  260. package/resources/chat/completions/completions.d.mts.map +1 -1
  261. package/resources/chat/completions/completions.d.ts +1 -1
  262. package/resources/chat/completions/completions.d.ts.map +1 -1
  263. package/resources/evals/runs/runs.js +1 -1
  264. package/resources/evals/runs/runs.js.map +1 -1
  265. package/resources/evals/runs/runs.mjs +1 -1
  266. package/resources/evals/runs/runs.mjs.map +1 -1
  267. package/resources/live/forks/forks.d.mts +5 -1
  268. package/resources/live/forks/forks.d.mts.map +1 -1
  269. package/resources/live/forks/forks.d.ts +5 -1
  270. package/resources/live/forks/forks.d.ts.map +1 -1
  271. package/resources/live/live.d.mts +5 -1
  272. package/resources/live/live.d.mts.map +1 -1
  273. package/resources/live/live.d.ts +5 -1
  274. package/resources/live/live.d.ts.map +1 -1
  275. package/resources/live/live.js.map +1 -1
  276. package/resources/live/live.mjs.map +1 -1
  277. package/resources/responses/ws-base.d.mts +3 -1
  278. package/resources/responses/ws-base.d.mts.map +1 -1
  279. package/resources/responses/ws-base.d.ts +3 -1
  280. package/resources/responses/ws-base.d.ts.map +1 -1
  281. package/resources/responses/ws-base.js +35 -6
  282. package/resources/responses/ws-base.js.map +1 -1
  283. package/resources/responses/ws-base.mjs +35 -6
  284. package/resources/responses/ws-base.mjs.map +1 -1
  285. package/resources/responses/ws.d.mts +10 -0
  286. package/resources/responses/ws.d.mts.map +1 -1
  287. package/resources/responses/ws.d.ts +10 -0
  288. package/resources/responses/ws.d.ts.map +1 -1
  289. package/resources/responses/ws.js +23 -22
  290. package/resources/responses/ws.js.map +1 -1
  291. package/resources/responses/ws.mjs +24 -23
  292. package/resources/responses/ws.mjs.map +1 -1
  293. package/src/client.ts +55 -19
  294. package/src/core/streaming.ts +9 -0
  295. package/src/helpers/beta/agents/standard-schema.ts +13 -0
  296. package/src/helpers/beta/agents/zod.ts +10 -0
  297. package/src/internal/realtime-credentials.ts +70 -4
  298. package/src/internal/responses-ws-credentials.ts +160 -0
  299. package/src/internal/ws-adapter-node.ts +66 -0
  300. package/src/internal/ws.ts +139 -11
  301. package/src/lib/agents/agent-session-stream.ts +36 -24
  302. package/src/lib/beta/agents/agent-session-create-stream.ts +36 -0
  303. package/src/lib/beta/agents/agent-turn-result-collector.ts +122 -0
  304. package/src/lib/beta/agents/agent-turn-result-error.ts +33 -0
  305. package/src/lib/beta/agents/agent-turn-result.ts +22 -0
  306. package/src/lib/beta/agents/function-tool.ts +60 -0
  307. package/src/lib/beta/agents/output-format-types.ts +12 -0
  308. package/src/lib/beta/agents/output-format.ts +20 -0
  309. package/src/lib/beta/agents/output-parse-error.ts +16 -0
  310. package/src/lib/beta/agents/parse-result.ts +133 -0
  311. package/src/lib/beta/agents/parsed-agent-turn-result.ts +12 -0
  312. package/src/lib/beta/agents/result-collection.ts +115 -0
  313. package/src/lib/beta/agents/tool-output.ts +22 -0
  314. package/src/lib/responses/responses-websocket-session.ts +14 -3
  315. package/src/resources/audio/speech.ts +1 -1
  316. package/src/resources/beta/agents/agents.ts +697 -6
  317. package/src/resources/beta/agents/environments/templates.ts +64 -3
  318. package/src/resources/beta/agents/index.ts +3 -0
  319. package/src/resources/beta/agents/sessions/events.ts +16 -12
  320. package/src/resources/beta/agents/sessions/index.ts +1 -0
  321. package/src/resources/beta/agents/sessions/sessions.ts +48 -18
  322. package/src/resources/beta/agents/sessions/traces.ts +298 -0
  323. package/src/resources/beta/beta.ts +6 -0
  324. package/src/resources/beta/index.ts +3 -0
  325. package/src/resources/beta/responses/ws-base.ts +40 -6
  326. package/src/resources/beta/responses/ws.ts +37 -27
  327. package/src/resources/chat/completions/completions.ts +1 -1
  328. package/src/resources/evals/runs/runs.ts +1 -1
  329. package/src/resources/live/forks/forks.ts +6 -1
  330. package/src/resources/live/live.ts +6 -1
  331. package/src/resources/responses/ws-base.ts +40 -6
  332. package/src/resources/responses/ws.ts +37 -27
  333. package/src/tsconfig.dist-src-node.d.ts +7 -0
  334. package/src/tsconfig.dist-src.d.ts +3 -1
  335. package/src/version.ts +1 -1
  336. package/version.d.mts +1 -1
  337. package/version.d.ts +1 -1
  338. package/version.js +1 -1
  339. package/version.mjs +1 -1
@@ -0,0 +1,115 @@
1
+ import { OpenAIError } from '../../../core/error';
2
+ import type { AgentSessionEvent } from '../../../resources/beta/agents/agents';
3
+ import type { AgentTurnResult } from './agent-turn-result';
4
+ import { AgentTurnResultCollector } from './agent-turn-result-collector';
5
+ import { AgentTurnResultError } from './agent-turn-result-error';
6
+
7
+ /** Shares collection between a raw creation stream and the follow-up helper.
8
+ * @internal
9
+ */
10
+ export class ResultCollection {
11
+ #iterator: AsyncGenerator<AgentSessionEvent, void> | undefined;
12
+ #ended = false;
13
+ #enabled = false;
14
+ #uncollectedEvents = false;
15
+ #error: unknown;
16
+ #result: Promise<AgentTurnResult> | undefined;
17
+ readonly collector: AgentTurnResultCollector;
18
+
19
+ readonly #source: () => AsyncIterator<AgentSessionEvent>;
20
+ readonly #signal: AbortSignal | undefined;
21
+ readonly #canHandle: (name: string) => boolean;
22
+
23
+ constructor(
24
+ source: () => AsyncIterator<AgentSessionEvent>,
25
+ canHandle: (name: string) => boolean = () => false,
26
+ sessionID?: string,
27
+ signal?: AbortSignal,
28
+ ) {
29
+ this.#source = source;
30
+ this.#signal = signal;
31
+ this.#canHandle = canHandle;
32
+ this.collector = new AgentTurnResultCollector(sessionID);
33
+ }
34
+
35
+ enable(): void {
36
+ if (!this.#enabled && this.#uncollectedEvents) {
37
+ throw new OpenAIError(
38
+ 'Call withResultCollection() before consuming events, or call finalResult() on a fresh stream.',
39
+ );
40
+ }
41
+ this.#enabled = true;
42
+ }
43
+
44
+ iterate(): AsyncIterator<AgentSessionEvent> {
45
+ if (this.#iterator) {
46
+ throw new OpenAIError('An agent result stream can only be consumed once');
47
+ }
48
+ return (this.#iterator = this.#observe());
49
+ }
50
+
51
+ async *#observe(): AsyncGenerator<AgentSessionEvent, void> {
52
+ const iterator = this.#source();
53
+ let done = false;
54
+ try {
55
+ while (true) {
56
+ // oxlint-disable-next-line no-await-in-loop -- Pull the single-use stream sequentially.
57
+ const next = await iterator.next();
58
+ if (next.done) {
59
+ done = true;
60
+ return;
61
+ }
62
+ if (this.#enabled) {
63
+ this.collector.accept(next.value);
64
+ } else {
65
+ this.#uncollectedEvents = true;
66
+ }
67
+ yield next.value;
68
+ }
69
+ } catch (error) {
70
+ if (this.#enabled) {
71
+ this.#error = error;
72
+ }
73
+ throw error;
74
+ } finally {
75
+ this.#ended = true;
76
+ if (!done) {
77
+ await iterator.return?.();
78
+ }
79
+ }
80
+ }
81
+
82
+ finalResult(): Promise<AgentTurnResult> {
83
+ return (this.#result ??= this.#collect());
84
+ }
85
+
86
+ async #collect(): Promise<AgentTurnResult> {
87
+ this.enable();
88
+ try {
89
+ const iterator = this.#iterator ?? this.iterate();
90
+ while (!this.#ended && !this.collector.ready) {
91
+ this.collector.checkAction(this.#canHandle);
92
+ // oxlint-disable-next-line no-await-in-loop -- Each event can dispatch tools before the next pull.
93
+ const next = await iterator.next();
94
+ if (next.done) {
95
+ break;
96
+ }
97
+ }
98
+ if (this.#error !== undefined && !this.collector.ready) {
99
+ throw this.#error;
100
+ }
101
+ if (!this.collector.ready && this.#signal?.aborted) {
102
+ throw this.collector.error('observation', this.#signal.reason);
103
+ }
104
+ return this.collector.finish();
105
+ } catch (error) {
106
+ throw error instanceof AgentTurnResultError ? error : this.collector.error('observation', error);
107
+ } finally {
108
+ try {
109
+ await this.#iterator?.return();
110
+ } finally {
111
+ this.collector.release();
112
+ }
113
+ }
114
+ }
115
+ }
@@ -0,0 +1,22 @@
1
+ import { hasOwn, isObj } from '../../../internal/utils/values';
2
+ import type { InputContentParam } from '../../../resources/beta/agents/agents';
3
+
4
+ /**
5
+ * Recognizes supported content blocks without confusing JSON business data with content.
6
+ * @internal
7
+ */
8
+ export function isInputContent(value: unknown): value is InputContentParam {
9
+ if (!isObj(value)) {
10
+ return false;
11
+ }
12
+ const content = value;
13
+ let field: string;
14
+ if (content['type'] === 'input_text') {
15
+ field = 'text';
16
+ } else if (content['type'] === 'input_image') {
17
+ field = 'image_url';
18
+ } else {
19
+ return false;
20
+ }
21
+ return hasOwn(content, 'type') && hasOwn(content, field) && typeof content[field] === 'string';
22
+ }
@@ -22,9 +22,13 @@ interface LaneState {
22
22
  bytes: number;
23
23
  }
24
24
 
25
+ // A disposed helper cannot distinguish a delayed terminal from a later request
26
+ // on the same socket. Retain only IDs (never lane buffers) until that socket is gone.
27
+ const reservedLanes = new WeakMap<WebSocketLike, Set<string | undefined>>();
28
+
25
29
  /** Limits for this optional helper. They do not change the underlying socket's limits. */
26
30
  export interface ResponsesWebSocketSessionOptions {
27
- /** Maximum lane IDs registered until the next reconnect, including detached lanes. */
31
+ /** Maximum lane IDs registered on the socket until the next reconnect, including detached lanes. */
28
32
  maxLanes: number;
29
33
  /** Maximum queued events across all lanes. */
30
34
  maxBufferedEvents: number;
@@ -129,10 +133,16 @@ export class ResponsesWebSocketSession {
129
133
  ) {
130
134
  throw new OpenAIError('Invalid Responses WebSocket stream ID');
131
135
  }
132
- if (this.#lanes.has(streamID)) {
136
+ const { socket: physicalSocket } = this.#connection;
137
+ let reservations = reservedLanes.get(physicalSocket);
138
+ if (!reservations) {
139
+ reservations = new Set();
140
+ reservedLanes.set(physicalSocket, reservations);
141
+ }
142
+ if (reservations.has(streamID)) {
133
143
  throw new OpenAIError('Responses WebSocket lane is already registered');
134
144
  }
135
- if (this.#lanes.size >= this.#maxLanes) {
145
+ if (reservations.size >= this.#maxLanes) {
136
146
  throw new OpenAIError('Responses WebSocket lane limit exceeded');
137
147
  }
138
148
  const entry: LaneState = {
@@ -160,6 +170,7 @@ export class ResponsesWebSocketSession {
160
170
  positiveInteger(limits.maxBufferedBytes ?? this.#maxBytes),
161
171
  ),
162
172
  };
173
+ reservations.add(streamID);
163
174
  this.#lanes.set(streamID, entry);
164
175
  return entry.lane;
165
176
  }
@@ -26,7 +26,7 @@ export class Speech extends APIResource {
26
26
  * const speech = await client.audio.speech.create({
27
27
  * input: 'input',
28
28
  * model: 'tts-1',
29
- * voice: 'alloy',
29
+ * voice: 'ash',
30
30
  * });
31
31
  *
32
32
  * const content = await speech.blob();