openai 7.17.0 → 7.19.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 (236) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +6 -3
  3. package/client.d.mts +2 -0
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +2 -0
  6. package/client.d.ts.map +1 -1
  7. package/client.js +25 -7
  8. package/client.js.map +1 -1
  9. package/client.mjs +25 -7
  10. package/client.mjs.map +1 -1
  11. package/internal/parse.d.mts.map +1 -1
  12. package/internal/parse.d.ts.map +1 -1
  13. package/internal/parse.js +11 -7
  14. package/internal/parse.js.map +1 -1
  15. package/internal/parse.mjs +11 -7
  16. package/internal/parse.mjs.map +1 -1
  17. package/internal/utils/log.d.mts.map +1 -1
  18. package/internal/utils/log.d.ts.map +1 -1
  19. package/internal/utils/log.js +1 -0
  20. package/internal/utils/log.js.map +1 -1
  21. package/internal/utils/log.mjs +1 -0
  22. package/internal/utils/log.mjs.map +1 -1
  23. package/internal/ws.d.mts +7 -0
  24. package/internal/ws.d.mts.map +1 -1
  25. package/internal/ws.d.ts +7 -0
  26. package/internal/ws.d.ts.map +1 -1
  27. package/internal/ws.js +36 -2
  28. package/internal/ws.js.map +1 -1
  29. package/internal/ws.mjs +34 -3
  30. package/internal/ws.mjs.map +1 -1
  31. package/lib/responses/responses-websocket-lane.d.mts +63 -0
  32. package/lib/responses/responses-websocket-lane.d.mts.map +1 -0
  33. package/lib/responses/responses-websocket-lane.d.ts +63 -0
  34. package/lib/responses/responses-websocket-lane.d.ts.map +1 -0
  35. package/lib/responses/responses-websocket-lane.js +314 -0
  36. package/lib/responses/responses-websocket-lane.js.map +1 -0
  37. package/lib/responses/responses-websocket-lane.mjs +309 -0
  38. package/lib/responses/responses-websocket-lane.mjs.map +1 -0
  39. package/lib/responses/responses-websocket-session.d.mts +38 -0
  40. package/lib/responses/responses-websocket-session.d.mts.map +1 -0
  41. package/lib/responses/responses-websocket-session.d.ts +38 -0
  42. package/lib/responses/responses-websocket-session.d.ts.map +1 -0
  43. package/lib/responses/responses-websocket-session.js +268 -0
  44. package/lib/responses/responses-websocket-session.js.map +1 -0
  45. package/lib/responses/responses-websocket-session.mjs +263 -0
  46. package/lib/responses/responses-websocket-session.mjs.map +1 -0
  47. package/package.json +1 -1
  48. package/resources/admin/organization/admin-api-keys.d.mts +5 -1
  49. package/resources/admin/organization/admin-api-keys.d.mts.map +1 -1
  50. package/resources/admin/organization/admin-api-keys.d.ts +5 -1
  51. package/resources/admin/organization/admin-api-keys.d.ts.map +1 -1
  52. package/resources/beta/agents/agents.d.mts +6 -3
  53. package/resources/beta/agents/agents.d.mts.map +1 -1
  54. package/resources/beta/agents/agents.d.ts +6 -3
  55. package/resources/beta/agents/agents.d.ts.map +1 -1
  56. package/resources/beta/agents/agents.js.map +1 -1
  57. package/resources/beta/agents/agents.mjs.map +1 -1
  58. package/resources/beta/agents/environments/files.d.mts +5 -1
  59. package/resources/beta/agents/environments/files.d.mts.map +1 -1
  60. package/resources/beta/agents/environments/files.d.ts +5 -1
  61. package/resources/beta/agents/environments/files.d.ts.map +1 -1
  62. package/resources/beta/agents/environments/templates.d.mts +2 -4
  63. package/resources/beta/agents/environments/templates.d.mts.map +1 -1
  64. package/resources/beta/agents/environments/templates.d.ts +2 -4
  65. package/resources/beta/agents/environments/templates.d.ts.map +1 -1
  66. package/resources/beta/agents/sessions/artifacts.d.mts +9 -1
  67. package/resources/beta/agents/sessions/artifacts.d.mts.map +1 -1
  68. package/resources/beta/agents/sessions/artifacts.d.ts +9 -1
  69. package/resources/beta/agents/sessions/artifacts.d.ts.map +1 -1
  70. package/resources/beta/agents/sessions/events.d.mts +4 -1
  71. package/resources/beta/agents/sessions/events.d.mts.map +1 -1
  72. package/resources/beta/agents/sessions/events.d.ts +4 -1
  73. package/resources/beta/agents/sessions/events.d.ts.map +1 -1
  74. package/resources/beta/agents/sessions/events.js +4 -1
  75. package/resources/beta/agents/sessions/events.js.map +1 -1
  76. package/resources/beta/agents/sessions/events.mjs +4 -1
  77. package/resources/beta/agents/sessions/events.mjs.map +1 -1
  78. package/resources/beta/agents/sessions/sessions.d.mts +50 -3
  79. package/resources/beta/agents/sessions/sessions.d.mts.map +1 -1
  80. package/resources/beta/agents/sessions/sessions.d.ts +50 -3
  81. package/resources/beta/agents/sessions/sessions.d.ts.map +1 -1
  82. package/resources/beta/agents/sessions/sessions.js +5 -2
  83. package/resources/beta/agents/sessions/sessions.js.map +1 -1
  84. package/resources/beta/agents/sessions/sessions.mjs +5 -2
  85. package/resources/beta/agents/sessions/sessions.mjs.map +1 -1
  86. package/resources/beta/agents/vaults/credentials.d.mts +6 -1
  87. package/resources/beta/agents/vaults/credentials.d.mts.map +1 -1
  88. package/resources/beta/agents/vaults/credentials.d.ts +6 -1
  89. package/resources/beta/agents/vaults/credentials.d.ts.map +1 -1
  90. package/resources/beta/agents/vaults/vaults.d.mts +6 -1
  91. package/resources/beta/agents/vaults/vaults.d.mts.map +1 -1
  92. package/resources/beta/agents/vaults/vaults.d.ts +6 -1
  93. package/resources/beta/agents/vaults/vaults.d.ts.map +1 -1
  94. package/resources/beta/agents/vaults/vaults.js.map +1 -1
  95. package/resources/beta/agents/vaults/vaults.mjs.map +1 -1
  96. package/resources/beta/responses/responses.d.mts +21 -7
  97. package/resources/beta/responses/responses.d.mts.map +1 -1
  98. package/resources/beta/responses/responses.d.ts +21 -7
  99. package/resources/beta/responses/responses.d.ts.map +1 -1
  100. package/resources/beta/responses/responses.js.map +1 -1
  101. package/resources/beta/responses/responses.mjs.map +1 -1
  102. package/resources/beta/responses/ws-base.d.mts +4 -0
  103. package/resources/beta/responses/ws-base.d.mts.map +1 -1
  104. package/resources/beta/responses/ws-base.d.ts +4 -0
  105. package/resources/beta/responses/ws-base.d.ts.map +1 -1
  106. package/resources/beta/responses/ws-base.js +22 -1
  107. package/resources/beta/responses/ws-base.js.map +1 -1
  108. package/resources/beta/responses/ws-base.mjs +21 -2
  109. package/resources/beta/responses/ws-base.mjs.map +1 -1
  110. package/resources/beta/responses/ws.d.mts.map +1 -1
  111. package/resources/beta/responses/ws.d.ts.map +1 -1
  112. package/resources/beta/responses/ws.js +10 -6
  113. package/resources/beta/responses/ws.js.map +1 -1
  114. package/resources/beta/responses/ws.mjs +10 -6
  115. package/resources/beta/responses/ws.mjs.map +1 -1
  116. package/resources/index.d.mts +1 -1
  117. package/resources/index.d.mts.map +1 -1
  118. package/resources/index.d.ts +1 -1
  119. package/resources/index.d.ts.map +1 -1
  120. package/resources/index.js +1 -1
  121. package/resources/index.js.map +1 -1
  122. package/resources/index.mjs +1 -1
  123. package/resources/index.mjs.map +1 -1
  124. package/resources/live/forks/ws.d.mts.map +1 -1
  125. package/resources/live/forks/ws.d.ts.map +1 -1
  126. package/resources/live/forks/ws.js +2 -4
  127. package/resources/live/forks/ws.js.map +1 -1
  128. package/resources/live/forks/ws.mjs +2 -4
  129. package/resources/live/forks/ws.mjs.map +1 -1
  130. package/resources/live/sideband/ws.d.mts.map +1 -1
  131. package/resources/live/sideband/ws.d.ts.map +1 -1
  132. package/resources/live/sideband/ws.js +2 -4
  133. package/resources/live/sideband/ws.js.map +1 -1
  134. package/resources/live/sideband/ws.mjs +2 -4
  135. package/resources/live/sideband/ws.mjs.map +1 -1
  136. package/resources/live/ws.d.mts.map +1 -1
  137. package/resources/live/ws.d.ts.map +1 -1
  138. package/resources/live/ws.js +2 -4
  139. package/resources/live/ws.js.map +1 -1
  140. package/resources/live/ws.mjs +2 -4
  141. package/resources/live/ws.mjs.map +1 -1
  142. package/resources/realtime/client-secrets.d.mts +7 -3
  143. package/resources/realtime/client-secrets.d.mts.map +1 -1
  144. package/resources/realtime/client-secrets.d.ts +7 -3
  145. package/resources/realtime/client-secrets.d.ts.map +1 -1
  146. package/resources/realtime/realtime.d.mts +17 -8
  147. package/resources/realtime/realtime.d.mts.map +1 -1
  148. package/resources/realtime/realtime.d.ts +17 -8
  149. package/resources/realtime/realtime.d.ts.map +1 -1
  150. package/resources/realtime/realtime.js.map +1 -1
  151. package/resources/realtime/realtime.mjs.map +1 -1
  152. package/resources/responses/responses.d.mts +18 -4
  153. package/resources/responses/responses.d.mts.map +1 -1
  154. package/resources/responses/responses.d.ts +18 -4
  155. package/resources/responses/responses.d.ts.map +1 -1
  156. package/resources/responses/responses.js.map +1 -1
  157. package/resources/responses/responses.mjs.map +1 -1
  158. package/resources/responses/ws-base.d.mts +6 -0
  159. package/resources/responses/ws-base.d.mts.map +1 -1
  160. package/resources/responses/ws-base.d.ts +6 -0
  161. package/resources/responses/ws-base.d.ts.map +1 -1
  162. package/resources/responses/ws-base.js +27 -4
  163. package/resources/responses/ws-base.js.map +1 -1
  164. package/resources/responses/ws-base.mjs +26 -5
  165. package/resources/responses/ws-base.mjs.map +1 -1
  166. package/resources/responses/ws.d.mts.map +1 -1
  167. package/resources/responses/ws.d.ts.map +1 -1
  168. package/resources/responses/ws.js +10 -6
  169. package/resources/responses/ws.js.map +1 -1
  170. package/resources/responses/ws.mjs +10 -6
  171. package/resources/responses/ws.mjs.map +1 -1
  172. package/resources/shared.d.mts +1 -1
  173. package/resources/shared.d.mts.map +1 -1
  174. package/resources/shared.d.ts +1 -1
  175. package/resources/shared.d.ts.map +1 -1
  176. package/resources/webhooks/event-types.d.mts +17 -0
  177. package/resources/webhooks/event-types.d.mts.map +1 -0
  178. package/resources/webhooks/event-types.d.ts +17 -0
  179. package/resources/webhooks/event-types.d.ts.map +1 -0
  180. package/resources/webhooks/event-types.js +21 -0
  181. package/resources/webhooks/event-types.js.map +1 -0
  182. package/resources/webhooks/event-types.mjs +17 -0
  183. package/resources/webhooks/event-types.mjs.map +1 -0
  184. package/resources/webhooks/index.d.mts +1 -0
  185. package/resources/webhooks/index.d.mts.map +1 -1
  186. package/resources/webhooks/index.d.ts +1 -0
  187. package/resources/webhooks/index.d.ts.map +1 -1
  188. package/resources/webhooks/index.js +3 -0
  189. package/resources/webhooks/index.js.map +1 -1
  190. package/resources/webhooks/index.mjs +1 -0
  191. package/resources/webhooks/index.mjs.map +1 -1
  192. package/resources/webhooks/webhooks.d.mts +282 -5
  193. package/resources/webhooks/webhooks.d.mts.map +1 -1
  194. package/resources/webhooks/webhooks.d.ts +282 -5
  195. package/resources/webhooks/webhooks.d.ts.map +1 -1
  196. package/resources/webhooks/webhooks.js +121 -0
  197. package/resources/webhooks/webhooks.js.map +1 -1
  198. package/resources/webhooks/webhooks.mjs +121 -0
  199. package/resources/webhooks/webhooks.mjs.map +1 -1
  200. package/src/client.ts +31 -10
  201. package/src/internal/parse.ts +14 -10
  202. package/src/internal/utils/log.ts +1 -0
  203. package/src/internal/ws.ts +37 -3
  204. package/src/lib/responses/responses-websocket-lane.ts +388 -0
  205. package/src/lib/responses/responses-websocket-session.ts +317 -0
  206. package/src/resources/admin/organization/admin-api-keys.ts +6 -1
  207. package/src/resources/beta/agents/agents.ts +7 -3
  208. package/src/resources/beta/agents/environments/files.ts +6 -1
  209. package/src/resources/beta/agents/environments/templates.ts +2 -4
  210. package/src/resources/beta/agents/sessions/artifacts.ts +11 -1
  211. package/src/resources/beta/agents/sessions/events.ts +4 -1
  212. package/src/resources/beta/agents/sessions/sessions.ts +56 -3
  213. package/src/resources/beta/agents/vaults/credentials.ts +7 -1
  214. package/src/resources/beta/agents/vaults/vaults.ts +7 -1
  215. package/src/resources/beta/responses/responses.ts +27 -3
  216. package/src/resources/beta/responses/ws-base.ts +24 -1
  217. package/src/resources/beta/responses/ws.ts +9 -6
  218. package/src/resources/index.ts +1 -1
  219. package/src/resources/live/forks/ws.ts +4 -5
  220. package/src/resources/live/sideband/ws.ts +4 -5
  221. package/src/resources/live/ws.ts +4 -5
  222. package/src/resources/realtime/client-secrets.ts +7 -3
  223. package/src/resources/realtime/realtime.ts +17 -8
  224. package/src/resources/responses/responses.ts +21 -3
  225. package/src/resources/responses/ws-base.ts +29 -4
  226. package/src/resources/responses/ws.ts +9 -6
  227. package/src/resources/shared.ts +2 -0
  228. package/src/resources/webhooks/api.md +40 -21
  229. package/src/resources/webhooks/event-types.ts +21 -0
  230. package/src/resources/webhooks/index.ts +1 -0
  231. package/src/resources/webhooks/webhooks.ts +455 -4
  232. package/src/version.ts +1 -1
  233. package/version.d.mts +1 -1
  234. package/version.d.ts +1 -1
  235. package/version.js +1 -1
  236. package/version.mjs +1 -1
@@ -4,7 +4,6 @@ import * as WS from 'ws';
4
4
  import { NodeWebSocket } from '../../../internal/ws-adapter-node';
5
5
  import { ResponsesWSBase, type ResponsesWSBaseOptions } from './ws-base';
6
6
  import { OpenAI } from '../../../client';
7
- import { VERSION } from '../../../version';
8
7
  import { OpenAIError } from '../../../core/error';
9
8
  import { snapshotWebSocketCredentials } from '../../../internal/ws';
10
9
 
@@ -34,13 +33,17 @@ export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
34
33
 
35
34
  protected _createSocket(url: URL, authHeaders: Record<string, string>): NodeWebSocket {
36
35
  const capturedAuthHeaders = { ...authHeaders };
36
+ const headers = new Map(Object.entries(this._client._buildWebSocketHeaders(capturedAuthHeaders)));
37
+ for (const [name, value] of Object.entries(this._wsOptions?.headers ?? {})) {
38
+ if (value === null) {
39
+ headers.delete(name.toLowerCase());
40
+ } else if (value !== undefined) {
41
+ headers.set(name.toLowerCase(), value);
42
+ }
43
+ }
37
44
  const socketOptions: ResponsesWSClientOptions = {
38
45
  ...this._wsOptions,
39
- headers: {
40
- 'User-Agent': `${this._client.constructor.name}/JS ${VERSION}`,
41
- ...capturedAuthHeaders,
42
- ...this._wsOptions?.headers,
43
- },
46
+ headers: Object.fromEntries(headers),
44
47
  followRedirects: false,
45
48
  };
46
49
  if (
@@ -156,4 +156,4 @@ export {
156
156
  type VideoRemixParams,
157
157
  type VideosPage,
158
158
  } from './videos';
159
- export { Webhooks } from './webhooks';
159
+ export { Webhooks } from './webhooks/webhooks';
@@ -4,7 +4,6 @@ import * as WS from 'ws';
4
4
  import { NodeWebSocket } from '../../../internal/ws-adapter-node';
5
5
  import { ForksWSBase, type ForksWSBaseOptions, type ForksWSParameters } from './ws-base';
6
6
  import { OpenAI } from '../../../client';
7
- import { VERSION } from '../../../version';
8
7
 
9
8
  export type { WebSocketStreamOptions } from '../../../internal/ws';
10
9
 
@@ -36,10 +35,10 @@ export class ForksWS extends ForksWSBase<NodeWebSocket> {
36
35
  const ws = new WS.WebSocket(url, {
37
36
  ...this._wsOptions,
38
37
  headers: {
39
- 'User-Agent': `${this._client.constructor.name}/JS ${VERSION}`,
40
-
41
- ...authHeaders,
42
- ...this._wsOptions?.headers,
38
+ ...this._client._buildWebSocketHeaders(authHeaders),
39
+ ...Object.fromEntries(
40
+ Object.entries(this._wsOptions?.headers ?? {}).map(([name, value]) => [name.toLowerCase(), value]),
41
+ ),
43
42
  },
44
43
  followRedirects: false,
45
44
  });
@@ -4,7 +4,6 @@ import * as WS from 'ws';
4
4
  import { NodeWebSocket } from '../../../internal/ws-adapter-node';
5
5
  import { SidebandWSBase, type SidebandWSBaseOptions, type SidebandWSParameters } from './ws-base';
6
6
  import { OpenAI } from '../../../client';
7
- import { VERSION } from '../../../version';
8
7
 
9
8
  export type { WebSocketStreamOptions } from '../../../internal/ws';
10
9
 
@@ -36,10 +35,10 @@ export class SidebandWS extends SidebandWSBase<NodeWebSocket> {
36
35
  const ws = new WS.WebSocket(url, {
37
36
  ...this._wsOptions,
38
37
  headers: {
39
- 'User-Agent': `${this._client.constructor.name}/JS ${VERSION}`,
40
-
41
- ...authHeaders,
42
- ...this._wsOptions?.headers,
38
+ ...this._client._buildWebSocketHeaders(authHeaders),
39
+ ...Object.fromEntries(
40
+ Object.entries(this._wsOptions?.headers ?? {}).map(([name, value]) => [name.toLowerCase(), value]),
41
+ ),
43
42
  },
44
43
  followRedirects: false,
45
44
  });
@@ -4,7 +4,6 @@ import * as WS from 'ws';
4
4
  import { NodeWebSocket } from '../../internal/ws-adapter-node';
5
5
  import { LiveWSBase, type LiveWSBaseOptions } from './ws-base';
6
6
  import { OpenAI } from '../../client';
7
- import { VERSION } from '../../version';
8
7
 
9
8
  export type { WebSocketStreamOptions } from '../../internal/ws';
10
9
 
@@ -32,10 +31,10 @@ export class LiveWS extends LiveWSBase<NodeWebSocket> {
32
31
  const ws = new WS.WebSocket(url, {
33
32
  ...this._wsOptions,
34
33
  headers: {
35
- 'User-Agent': `${this._client.constructor.name}/JS ${VERSION}`,
36
-
37
- ...authHeaders,
38
- ...this._wsOptions?.headers,
34
+ ...this._client._buildWebSocketHeaders(authHeaders),
35
+ ...Object.fromEntries(
36
+ Object.entries(this._wsOptions?.headers ?? {}).map(([name, value]) => [name.toLowerCase(), value]),
37
+ ),
39
38
  },
40
39
  followRedirects: false,
41
40
  });
@@ -427,11 +427,15 @@ export namespace RealtimeSessionCreateResponse {
427
427
  authorization?: string;
428
428
 
429
429
  /**
430
- * Identifier for service connectors, like those available in ChatGPT. One of
431
- * `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more about
432
- * service connectors
430
+ * @deprecated Identifier for service connectors, like those available in ChatGPT.
431
+ * One of `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more
432
+ * about service connectors
433
433
  * [here](https://developers.openai.com/api/docs/guides/tools-connectors-mcp#connectors).
434
434
  *
435
+ * This field is deprecated for models released after September 1, 2026. Use
436
+ * `server_url` to connect to a remote MCP server, or `tunnel_id` to connect
437
+ * through a Secure MCP Tunnel.
438
+ *
435
439
  * Currently supported `connector_id` values are:
436
440
  *
437
441
  * - Dropbox: `connector_dropbox`
@@ -175,8 +175,9 @@ export interface ConversationItemAdded {
175
175
  * "history" of the conversation and to add new items mid-stream, but has the
176
176
  * current limitation that it cannot populate assistant audio messages.
177
177
  *
178
- * If successful, the server will respond with a `conversation.item.created` event,
179
- * otherwise an `error` event will be sent.
178
+ * If successful, the server will emit a `conversation.item.added` event and, when
179
+ * the item is finalized, a `conversation.item.done` event. Otherwise, an `error`
180
+ * event will be sent.
180
181
  */
181
182
  export interface ConversationItemCreateEvent {
182
183
  /**
@@ -2263,11 +2264,15 @@ export interface RealtimeResponseCreateMcpTool {
2263
2264
  authorization?: string;
2264
2265
 
2265
2266
  /**
2266
- * Identifier for service connectors, like those available in ChatGPT. One of
2267
- * `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more about
2268
- * service connectors
2267
+ * @deprecated Identifier for service connectors, like those available in ChatGPT.
2268
+ * One of `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more
2269
+ * about service connectors
2269
2270
  * [here](https://developers.openai.com/api/docs/guides/tools-connectors-mcp#connectors).
2270
2271
  *
2272
+ * This field is deprecated for models released after September 1, 2026. Use
2273
+ * `server_url` to connect to a remote MCP server, or `tunnel_id` to connect
2274
+ * through a Secure MCP Tunnel.
2275
+ *
2271
2276
  * Currently supported `connector_id` values are:
2272
2277
  *
2273
2278
  * - Dropbox: `connector_dropbox`
@@ -3317,11 +3322,15 @@ export namespace RealtimeToolsConfigUnion {
3317
3322
  authorization?: string;
3318
3323
 
3319
3324
  /**
3320
- * Identifier for service connectors, like those available in ChatGPT. One of
3321
- * `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more about
3322
- * service connectors
3325
+ * @deprecated Identifier for service connectors, like those available in ChatGPT.
3326
+ * One of `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more
3327
+ * about service connectors
3323
3328
  * [here](https://developers.openai.com/api/docs/guides/tools-connectors-mcp#connectors).
3324
3329
  *
3330
+ * This field is deprecated for models released after September 1, 2026. Use
3331
+ * `server_url` to connect to a remote MCP server, or `tunnel_id` to connect
3332
+ * through a Secure MCP Tunnel.
3333
+ *
3325
3334
  * Currently supported `connector_id` values are:
3326
3335
  *
3327
3336
  * - Dropbox: `connector_dropbox`
@@ -9110,6 +9110,12 @@ export namespace ResponsesClientEvent {
9110
9110
  */
9111
9111
  mode?: 'implicit' | 'explicit';
9112
9112
 
9113
+ /**
9114
+ * Prepares the prompt cache without generating output. Defaults to `false`. When
9115
+ * set to `true`, overrides the `generate` field to `false`.
9116
+ */
9117
+ prewarm?: boolean;
9118
+
9113
9119
  /**
9114
9120
  * The minimum lifetime applied to every implicit and explicit cache breakpoint
9115
9121
  * written by the request. Defaults to `30m`, which is currently the only supported
@@ -10074,11 +10080,15 @@ export namespace Tool {
10074
10080
  authorization?: string;
10075
10081
 
10076
10082
  /**
10077
- * Identifier for service connectors, like those available in ChatGPT. One of
10078
- * `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more about
10079
- * service connectors
10083
+ * @deprecated Identifier for service connectors, like those available in ChatGPT.
10084
+ * One of `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more
10085
+ * about service connectors
10080
10086
  * [here](https://developers.openai.com/api/docs/guides/tools-connectors-mcp#connectors).
10081
10087
  *
10088
+ * This field is deprecated for models released after September 1, 2026. Use
10089
+ * `server_url` to connect to a remote MCP server, or `tunnel_id` to connect
10090
+ * through a Secure MCP Tunnel.
10091
+ *
10082
10092
  * Currently supported `connector_id` values are:
10083
10093
  *
10084
10094
  * - Dropbox: `connector_dropbox`
@@ -11133,6 +11143,12 @@ export namespace ResponseCreateParams {
11133
11143
  */
11134
11144
  mode?: 'implicit' | 'explicit';
11135
11145
 
11146
+ /**
11147
+ * Prepares the prompt cache without generating output. Defaults to `false`. When
11148
+ * set to `true`, overrides the `generate` field to `false`.
11149
+ */
11150
+ prewarm?: boolean;
11151
+
11136
11152
  /**
11137
11153
  * The minimum lifetime applied to every implicit and explicit cache breakpoint
11138
11154
  * written by the request. Defaults to `30m`, which is currently the only supported
@@ -11315,6 +11331,8 @@ export interface ResponseCompactParams {
11315
11331
  | 'gpt-4o-2024-11-20'
11316
11332
  | 'gpt-4o-2024-08-06'
11317
11333
  | 'gpt-4o-2024-05-13'
11334
+ | 'gpt-audio-mini'
11335
+ | 'gpt-audio-mini-2025-12-15'
11318
11336
  | 'gpt-4o-audio-preview'
11319
11337
  | 'gpt-4o-audio-preview-2024-10-01'
11320
11338
  | 'gpt-4o-audio-preview-2024-12-17'
@@ -7,6 +7,8 @@ import { type WebSocketLike, ReadyState } from '../../internal/ws-adapter';
7
7
  import {
8
8
  SendQueue,
9
9
  getMaxBufferedEvents,
10
+ recordWebSocketError,
11
+ rawByteLength,
10
12
  type WebSocketStreamOptions,
11
13
  flattenRawData,
12
14
  isRecoverableClose,
@@ -19,6 +21,21 @@ import * as ResponsesAPI from './responses';
19
21
  import { OpenAI } from '../../client';
20
22
  import { OpenAIError } from '../../core/error';
21
23
 
24
+ const webSocketEventPayloads = new WeakMap<ResponsesAPI.ResponsesServerEvent, string>();
25
+ const webSocketEventBytes = new WeakMap<ResponsesAPI.ResponsesServerEvent, number>();
26
+
27
+ /** Uses immutable wire size, or JSON accounting for a custom emitter. @internal */
28
+ export function getWebSocketEventBytes(event: ResponsesAPI.ResponsesServerEvent): number {
29
+ return webSocketEventBytes.get(event) ?? rawByteLength(JSON.stringify(event));
30
+ }
31
+
32
+ /** Original JSON, available only during synchronous event notification.
33
+ * @internal
34
+ */
35
+ export function getWebSocketEventPayload(event: ResponsesAPI.ResponsesServerEvent): string | undefined {
36
+ return webSocketEventPayloads.get(event);
37
+ }
38
+
22
39
  export interface ResponsesWSReconnectOptions {
23
40
  /**
24
41
  * Called before each reconnect attempt. Return an object with
@@ -440,6 +457,7 @@ export abstract class ResponsesWSBase<TSocket extends WebSocketLike> extends Res
440
457
  }
441
458
 
442
459
  const eventType: string = event.type;
460
+ const errorEvent = event.type === 'error' ? event : undefined;
443
461
  const reservedEventType =
444
462
  eventType === 'raw' ||
445
463
  eventType === 'close' ||
@@ -453,17 +471,24 @@ export abstract class ResponsesWSBase<TSocket extends WebSocketLike> extends Res
453
471
  return;
454
472
  }
455
473
 
456
- this._emit('event', event);
474
+ webSocketEventBytes.set(event, rawByteLength(data));
475
+ webSocketEventPayloads.set(event, text);
476
+ try {
477
+ this._emit('event', event);
478
+ } finally {
479
+ webSocketEventPayloads.delete(event);
480
+ }
457
481
 
458
- if (event.type === 'error') {
459
- this._onError(event);
482
+ if (errorEvent) {
483
+ this._onError(errorEvent);
460
484
  } else {
461
485
  // @ts-ignore TS isn't smart enough to get the relationship right here
462
- this._emit(event.type, event);
486
+ this._emit(eventType, event);
463
487
  }
464
488
  });
465
489
 
466
490
  socket.on('error', (err: Error) => {
491
+ recordWebSocketError(socket, err);
467
492
  // Suppress transient errors during reconnection — the retry loop
468
493
  // already handles them and will surface a close if retries exhaust.
469
494
  if (this._isReconnecting) return;
@@ -4,7 +4,6 @@ import * as WS from 'ws';
4
4
  import { NodeWebSocket } from '../../internal/ws-adapter-node';
5
5
  import { ResponsesWSBase, type ResponsesWSBaseOptions } from './ws-base';
6
6
  import { OpenAI } from '../../client';
7
- import { VERSION } from '../../version';
8
7
  import { OpenAIError } from '../../core/error';
9
8
  import { snapshotWebSocketCredentials } from '../../internal/ws';
10
9
 
@@ -34,13 +33,17 @@ export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
34
33
 
35
34
  protected _createSocket(url: URL, authHeaders: Record<string, string>): NodeWebSocket {
36
35
  const capturedAuthHeaders = { ...authHeaders };
36
+ const headers = new Map(Object.entries(this._client._buildWebSocketHeaders(capturedAuthHeaders)));
37
+ for (const [name, value] of Object.entries(this._wsOptions?.headers ?? {})) {
38
+ if (value === null) {
39
+ headers.delete(name.toLowerCase());
40
+ } else if (value !== undefined) {
41
+ headers.set(name.toLowerCase(), value);
42
+ }
43
+ }
37
44
  const socketOptions: ResponsesWSClientOptions = {
38
45
  ...this._wsOptions,
39
- headers: {
40
- 'User-Agent': `${this._client.constructor.name}/JS ${VERSION}`,
41
- ...capturedAuthHeaders,
42
- ...this._wsOptions?.headers,
43
- },
46
+ headers: Object.fromEntries(headers),
44
47
  followRedirects: false,
45
48
  };
46
49
  if (
@@ -75,6 +75,8 @@ export type ChatModel =
75
75
  | 'gpt-4o-2024-11-20'
76
76
  | 'gpt-4o-2024-08-06'
77
77
  | 'gpt-4o-2024-05-13'
78
+ | 'gpt-audio-mini'
79
+ | 'gpt-audio-mini-2025-12-15'
78
80
  | 'gpt-4o-audio-preview'
79
81
  | 'gpt-4o-audio-preview-2024-10-01'
80
82
  | 'gpt-4o-audio-preview-2024-12-17'
@@ -2,27 +2,46 @@
2
2
 
3
3
  Types:
4
4
 
5
- - <code><a href="./src/resources/webhooks.ts">BatchCancelledWebhookEvent</a></code>
6
- - <code><a href="./src/resources/webhooks.ts">BatchCompletedWebhookEvent</a></code>
7
- - <code><a href="./src/resources/webhooks.ts">BatchExpiredWebhookEvent</a></code>
8
- - <code><a href="./src/resources/webhooks.ts">BatchFailedWebhookEvent</a></code>
9
- - <code><a href="./src/resources/webhooks.ts">EvalRunCanceledWebhookEvent</a></code>
10
- - <code><a href="./src/resources/webhooks.ts">EvalRunFailedWebhookEvent</a></code>
11
- - <code><a href="./src/resources/webhooks.ts">EvalRunSucceededWebhookEvent</a></code>
12
- - <code><a href="./src/resources/webhooks.ts">FineTuningJobCancelledWebhookEvent</a></code>
13
- - <code><a href="./src/resources/webhooks.ts">FineTuningJobFailedWebhookEvent</a></code>
14
- - <code><a href="./src/resources/webhooks.ts">FineTuningJobSucceededWebhookEvent</a></code>
15
- - <code><a href="./src/resources/webhooks.ts">LiveCallIncomingWebhookEvent</a></code>
16
- - <code><a href="./src/resources/webhooks.ts">LiveTransportIncomingWebhookEvent</a></code>
17
- - <code><a href="./src/resources/webhooks.ts">RealtimeCallIncomingWebhookEvent</a></code>
18
- - <code><a href="./src/resources/webhooks.ts">ResponseCancelledWebhookEvent</a></code>
19
- - <code><a href="./src/resources/webhooks.ts">ResponseCompletedWebhookEvent</a></code>
20
- - <code><a href="./src/resources/webhooks.ts">ResponseFailedWebhookEvent</a></code>
21
- - <code><a href="./src/resources/webhooks.ts">ResponseIncompleteWebhookEvent</a></code>
22
- - <code><a href="./src/resources/webhooks.ts">SafetyAlertCreatedWebhookEvent</a></code>
23
- - <code><a href="./src/resources/webhooks.ts">SafetyOrgAlertCreatedWebhookEvent</a></code>
24
- - <code><a href="./src/resources/webhooks.ts">UnwrapWebhookEvent</a></code>
5
+ - <code><a href="./src/resources/webhooks/webhooks.ts">BatchCancelledWebhookEvent</a></code>
6
+ - <code><a href="./src/resources/webhooks/webhooks.ts">BatchCompletedWebhookEvent</a></code>
7
+ - <code><a href="./src/resources/webhooks/webhooks.ts">BatchExpiredWebhookEvent</a></code>
8
+ - <code><a href="./src/resources/webhooks/webhooks.ts">BatchFailedWebhookEvent</a></code>
9
+ - <code><a href="./src/resources/webhooks/webhooks.ts">DeletedWebhookEndpoint</a></code>
10
+ - <code><a href="./src/resources/webhooks/webhooks.ts">EvalRunCanceledWebhookEvent</a></code>
11
+ - <code><a href="./src/resources/webhooks/webhooks.ts">EvalRunFailedWebhookEvent</a></code>
12
+ - <code><a href="./src/resources/webhooks/webhooks.ts">EvalRunSucceededWebhookEvent</a></code>
13
+ - <code><a href="./src/resources/webhooks/webhooks.ts">FineTuningJobCancelledWebhookEvent</a></code>
14
+ - <code><a href="./src/resources/webhooks/webhooks.ts">FineTuningJobFailedWebhookEvent</a></code>
15
+ - <code><a href="./src/resources/webhooks/webhooks.ts">FineTuningJobSucceededWebhookEvent</a></code>
16
+ - <code><a href="./src/resources/webhooks/webhooks.ts">LiveCallIncomingWebhookEvent</a></code>
17
+ - <code><a href="./src/resources/webhooks/webhooks.ts">LiveTransportIncomingWebhookEvent</a></code>
18
+ - <code><a href="./src/resources/webhooks/webhooks.ts">RealtimeCallIncomingWebhookEvent</a></code>
19
+ - <code><a href="./src/resources/webhooks/webhooks.ts">ResponseCancelledWebhookEvent</a></code>
20
+ - <code><a href="./src/resources/webhooks/webhooks.ts">ResponseCompletedWebhookEvent</a></code>
21
+ - <code><a href="./src/resources/webhooks/webhooks.ts">ResponseFailedWebhookEvent</a></code>
22
+ - <code><a href="./src/resources/webhooks/webhooks.ts">ResponseIncompleteWebhookEvent</a></code>
23
+ - <code><a href="./src/resources/webhooks/webhooks.ts">SafetyAlertCreatedWebhookEvent</a></code>
24
+ - <code><a href="./src/resources/webhooks/webhooks.ts">SafetyOrgAlertCreatedWebhookEvent</a></code>
25
+ - <code><a href="./src/resources/webhooks/webhooks.ts">UnwrapWebhookEvent</a></code>
26
+ - <code><a href="./src/resources/webhooks/webhooks.ts">WebhookEndpoint</a></code>
27
+ - <code><a href="./src/resources/webhooks/webhooks.ts">WebhookEndpointList</a></code>
28
+ - <code><a href="./src/resources/webhooks/webhooks.ts">WebhookEndpointTestResult</a></code>
29
+ - <code><a href="./src/resources/webhooks/webhooks.ts">WebhookEndpointWithSecret</a></code>
30
+ - <code><a href="./src/resources/webhooks/webhooks.ts">WebhookEventTypeList</a></code>
25
31
 
26
32
  Methods:
27
33
 
28
- - <code>client.webhooks.<a href="./src/resources/webhooks.ts">unwrap</a>(body) -> void</code>
34
+ - <code title="post /webhook_endpoints">client.webhooks.<a href="./src/resources/webhooks/webhooks.ts">create</a>({ ...params }) -> WebhookEndpointWithSecret</code>
35
+ - <code title="get /webhook_endpoints/{webhook_endpoint_id}">client.webhooks.<a href="./src/resources/webhooks/webhooks.ts">retrieve</a>(webhookEndpointID) -> WebhookEndpoint</code>
36
+ - <code title="post /webhook_endpoints/{webhook_endpoint_id}">client.webhooks.<a href="./src/resources/webhooks/webhooks.ts">update</a>(webhookEndpointID, { ...params }) -> WebhookEndpoint</code>
37
+ - <code title="get /webhook_endpoints">client.webhooks.<a href="./src/resources/webhooks/webhooks.ts">list</a>({ ...params }) -> WebhookEndpointsPage</code>
38
+ - <code title="delete /webhook_endpoints/{webhook_endpoint_id}">client.webhooks.<a href="./src/resources/webhooks/webhooks.ts">delete</a>(webhookEndpointID) -> DeletedWebhookEndpoint</code>
39
+ - <code title="post /webhook_endpoints/{webhook_endpoint_id}/rotate_secret">client.webhooks.<a href="./src/resources/webhooks/webhooks.ts">rotateSecret</a>(webhookEndpointID, { ...params }) -> WebhookEndpointWithSecret</code>
40
+ - <code title="post /webhook_endpoints/{webhook_endpoint_id}/test">client.webhooks.<a href="./src/resources/webhooks/webhooks.ts">test</a>(webhookEndpointID, { ...params }) -> WebhookEndpointTestResult</code>
41
+ - <code>client.webhooks.<a href="./src/resources/webhooks/webhooks.ts">unwrap</a>(body) -> void</code>
42
+
43
+ ## EventTypes
44
+
45
+ Methods:
46
+
47
+ - <code title="get /webhook_event_types">client.webhooks.eventTypes.<a href="./src/resources/webhooks/event-types.ts">list</a>() -> WebhookEventTypeList</code>
@@ -0,0 +1,21 @@
1
+ // File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import * as WebhooksAPI from './webhooks';
5
+ import { APIPromise } from '../../core/api-promise';
6
+ import { RequestOptions } from '../../internal/request-options';
7
+
8
+ export class EventTypes extends APIResource {
9
+ /**
10
+ * Returns webhook event types visible to the authenticated project.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const webhookEventTypeList =
15
+ * await client.webhooks.eventTypes.list();
16
+ * ```
17
+ */
18
+ list(options?: RequestOptions): APIPromise<WebhooksAPI.WebhookEventTypeList> {
19
+ return this._client.get('/webhook_event_types', { ...options, __security: { bearerAuth: true } });
20
+ }
21
+ }
@@ -1,3 +1,4 @@
1
1
  // File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.
2
2
 
3
+ export { EventTypes } from './event-types';
3
4
  export * from './webhooks';