openai 7.17.0 → 7.18.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 (129) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/client.d.mts +2 -0
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +2 -0
  5. package/client.d.ts.map +1 -1
  6. package/client.js +12 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +12 -0
  9. package/client.mjs.map +1 -1
  10. package/internal/ws.d.mts +7 -0
  11. package/internal/ws.d.mts.map +1 -1
  12. package/internal/ws.d.ts +7 -0
  13. package/internal/ws.d.ts.map +1 -1
  14. package/internal/ws.js +36 -2
  15. package/internal/ws.js.map +1 -1
  16. package/internal/ws.mjs +34 -3
  17. package/internal/ws.mjs.map +1 -1
  18. package/lib/responses/responses-websocket-lane.d.mts +63 -0
  19. package/lib/responses/responses-websocket-lane.d.mts.map +1 -0
  20. package/lib/responses/responses-websocket-lane.d.ts +63 -0
  21. package/lib/responses/responses-websocket-lane.d.ts.map +1 -0
  22. package/lib/responses/responses-websocket-lane.js +314 -0
  23. package/lib/responses/responses-websocket-lane.js.map +1 -0
  24. package/lib/responses/responses-websocket-lane.mjs +309 -0
  25. package/lib/responses/responses-websocket-lane.mjs.map +1 -0
  26. package/lib/responses/responses-websocket-session.d.mts +38 -0
  27. package/lib/responses/responses-websocket-session.d.mts.map +1 -0
  28. package/lib/responses/responses-websocket-session.d.ts +38 -0
  29. package/lib/responses/responses-websocket-session.d.ts.map +1 -0
  30. package/lib/responses/responses-websocket-session.js +268 -0
  31. package/lib/responses/responses-websocket-session.js.map +1 -0
  32. package/lib/responses/responses-websocket-session.mjs +263 -0
  33. package/lib/responses/responses-websocket-session.mjs.map +1 -0
  34. package/package.json +1 -1
  35. package/resources/beta/agents/sessions/sessions.d.mts +42 -1
  36. package/resources/beta/agents/sessions/sessions.d.mts.map +1 -1
  37. package/resources/beta/agents/sessions/sessions.d.ts +42 -1
  38. package/resources/beta/agents/sessions/sessions.d.ts.map +1 -1
  39. package/resources/beta/agents/sessions/sessions.js +2 -1
  40. package/resources/beta/agents/sessions/sessions.js.map +1 -1
  41. package/resources/beta/agents/sessions/sessions.mjs +2 -1
  42. package/resources/beta/agents/sessions/sessions.mjs.map +1 -1
  43. package/resources/beta/responses/responses.d.mts +14 -4
  44. package/resources/beta/responses/responses.d.mts.map +1 -1
  45. package/resources/beta/responses/responses.d.ts +14 -4
  46. package/resources/beta/responses/responses.d.ts.map +1 -1
  47. package/resources/beta/responses/responses.js.map +1 -1
  48. package/resources/beta/responses/responses.mjs.map +1 -1
  49. package/resources/beta/responses/ws-base.d.mts +4 -0
  50. package/resources/beta/responses/ws-base.d.mts.map +1 -1
  51. package/resources/beta/responses/ws-base.d.ts +4 -0
  52. package/resources/beta/responses/ws-base.d.ts.map +1 -1
  53. package/resources/beta/responses/ws-base.js +22 -1
  54. package/resources/beta/responses/ws-base.js.map +1 -1
  55. package/resources/beta/responses/ws-base.mjs +21 -2
  56. package/resources/beta/responses/ws-base.mjs.map +1 -1
  57. package/resources/beta/responses/ws.d.mts.map +1 -1
  58. package/resources/beta/responses/ws.d.ts.map +1 -1
  59. package/resources/beta/responses/ws.js +10 -6
  60. package/resources/beta/responses/ws.js.map +1 -1
  61. package/resources/beta/responses/ws.mjs +10 -6
  62. package/resources/beta/responses/ws.mjs.map +1 -1
  63. package/resources/live/forks/ws.d.mts.map +1 -1
  64. package/resources/live/forks/ws.d.ts.map +1 -1
  65. package/resources/live/forks/ws.js +2 -4
  66. package/resources/live/forks/ws.js.map +1 -1
  67. package/resources/live/forks/ws.mjs +2 -4
  68. package/resources/live/forks/ws.mjs.map +1 -1
  69. package/resources/live/sideband/ws.d.mts.map +1 -1
  70. package/resources/live/sideband/ws.d.ts.map +1 -1
  71. package/resources/live/sideband/ws.js +2 -4
  72. package/resources/live/sideband/ws.js.map +1 -1
  73. package/resources/live/sideband/ws.mjs +2 -4
  74. package/resources/live/sideband/ws.mjs.map +1 -1
  75. package/resources/live/ws.d.mts.map +1 -1
  76. package/resources/live/ws.d.ts.map +1 -1
  77. package/resources/live/ws.js +2 -4
  78. package/resources/live/ws.js.map +1 -1
  79. package/resources/live/ws.mjs +2 -4
  80. package/resources/live/ws.mjs.map +1 -1
  81. package/resources/responses/responses.d.mts +11 -1
  82. package/resources/responses/responses.d.mts.map +1 -1
  83. package/resources/responses/responses.d.ts +11 -1
  84. package/resources/responses/responses.d.ts.map +1 -1
  85. package/resources/responses/responses.js.map +1 -1
  86. package/resources/responses/responses.mjs.map +1 -1
  87. package/resources/responses/ws-base.d.mts +6 -0
  88. package/resources/responses/ws-base.d.mts.map +1 -1
  89. package/resources/responses/ws-base.d.ts +6 -0
  90. package/resources/responses/ws-base.d.ts.map +1 -1
  91. package/resources/responses/ws-base.js +27 -4
  92. package/resources/responses/ws-base.js.map +1 -1
  93. package/resources/responses/ws-base.mjs +26 -5
  94. package/resources/responses/ws-base.mjs.map +1 -1
  95. package/resources/responses/ws.d.mts.map +1 -1
  96. package/resources/responses/ws.d.ts.map +1 -1
  97. package/resources/responses/ws.js +10 -6
  98. package/resources/responses/ws.js.map +1 -1
  99. package/resources/responses/ws.mjs +10 -6
  100. package/resources/responses/ws.mjs.map +1 -1
  101. package/resources/shared.d.mts +1 -1
  102. package/resources/shared.d.mts.map +1 -1
  103. package/resources/shared.d.ts +1 -1
  104. package/resources/shared.d.ts.map +1 -1
  105. package/resources/webhooks/webhooks.d.mts +3 -4
  106. package/resources/webhooks/webhooks.d.mts.map +1 -1
  107. package/resources/webhooks/webhooks.d.ts +3 -4
  108. package/resources/webhooks/webhooks.d.ts.map +1 -1
  109. package/src/client.ts +15 -0
  110. package/src/internal/ws.ts +37 -3
  111. package/src/lib/responses/responses-websocket-lane.ts +388 -0
  112. package/src/lib/responses/responses-websocket-session.ts +317 -0
  113. package/src/resources/beta/agents/sessions/sessions.ts +47 -1
  114. package/src/resources/beta/responses/responses.ts +24 -4
  115. package/src/resources/beta/responses/ws-base.ts +24 -1
  116. package/src/resources/beta/responses/ws.ts +9 -6
  117. package/src/resources/live/forks/ws.ts +4 -5
  118. package/src/resources/live/sideband/ws.ts +4 -5
  119. package/src/resources/live/ws.ts +4 -5
  120. package/src/resources/responses/responses.ts +15 -1
  121. package/src/resources/responses/ws-base.ts +29 -4
  122. package/src/resources/responses/ws.ts +9 -6
  123. package/src/resources/shared.ts +4 -2
  124. package/src/resources/webhooks/webhooks.ts +3 -4
  125. package/src/version.ts +1 -1
  126. package/version.d.mts +1 -1
  127. package/version.d.ts +1 -1
  128. package/version.js +1 -1
  129. package/version.mjs +1 -1
@@ -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
@@ -11133,6 +11139,12 @@ export namespace ResponseCreateParams {
11133
11139
  */
11134
11140
  mode?: 'implicit' | 'explicit';
11135
11141
 
11142
+ /**
11143
+ * Prepares the prompt cache without generating output. Defaults to `false`. When
11144
+ * set to `true`, overrides the `generate` field to `false`.
11145
+ */
11146
+ prewarm?: boolean;
11147
+
11136
11148
  /**
11137
11149
  * The minimum lifetime applied to every implicit and explicit cache breakpoint
11138
11150
  * written by the request. Defaults to `30m`, which is currently the only supported
@@ -11284,7 +11296,6 @@ export interface ResponseCompactParams {
11284
11296
  | 'gpt-5.1'
11285
11297
  | 'gpt-5.1-2025-11-13'
11286
11298
  | 'gpt-5.1-codex'
11287
- | 'gpt-5.1-mini'
11288
11299
  | 'gpt-5.1-chat-latest'
11289
11300
  | 'gpt-5'
11290
11301
  | 'gpt-5-mini'
@@ -11315,6 +11326,8 @@ export interface ResponseCompactParams {
11315
11326
  | 'gpt-4o-2024-11-20'
11316
11327
  | 'gpt-4o-2024-08-06'
11317
11328
  | 'gpt-4o-2024-05-13'
11329
+ | 'gpt-audio-mini'
11330
+ | 'gpt-audio-mini-2025-12-15'
11318
11331
  | 'gpt-4o-audio-preview'
11319
11332
  | 'gpt-4o-audio-preview-2024-10-01'
11320
11333
  | 'gpt-4o-audio-preview-2024-12-17'
@@ -11348,6 +11361,7 @@ export interface ResponseCompactParams {
11348
11361
  | 'gpt-3.5-turbo-1106'
11349
11362
  | 'gpt-3.5-turbo-0125'
11350
11363
  | 'gpt-3.5-turbo-16k-0613'
11364
+ | 'gpt-5.1-mini'
11351
11365
  | 'o1-pro'
11352
11366
  | 'o1-pro-2025-03-19'
11353
11367
  | 'o3-pro'
@@ -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 (
@@ -44,7 +44,6 @@ export type ChatModel =
44
44
  | 'gpt-5.1'
45
45
  | 'gpt-5.1-2025-11-13'
46
46
  | 'gpt-5.1-codex'
47
- | 'gpt-5.1-mini'
48
47
  | 'gpt-5.1-chat-latest'
49
48
  | 'gpt-5'
50
49
  | 'gpt-5-mini'
@@ -75,6 +74,8 @@ export type ChatModel =
75
74
  | 'gpt-4o-2024-11-20'
76
75
  | 'gpt-4o-2024-08-06'
77
76
  | 'gpt-4o-2024-05-13'
77
+ | 'gpt-audio-mini'
78
+ | 'gpt-audio-mini-2025-12-15'
78
79
  | 'gpt-4o-audio-preview'
79
80
  | 'gpt-4o-audio-preview-2024-10-01'
80
81
  | 'gpt-4o-audio-preview-2024-12-17'
@@ -107,7 +108,8 @@ export type ChatModel =
107
108
  | 'gpt-3.5-turbo-0613'
108
109
  | 'gpt-3.5-turbo-1106'
109
110
  | 'gpt-3.5-turbo-0125'
110
- | 'gpt-3.5-turbo-16k-0613';
111
+ | 'gpt-3.5-turbo-16k-0613'
112
+ | 'gpt-5.1-mini';
111
113
 
112
114
  /**
113
115
  * A filter used to compare a specified attribute key to a given value using a
@@ -684,10 +684,9 @@ export namespace RealtimeCallIncomingWebhookEvent {
684
684
  */
685
685
  export interface Data {
686
686
  /**
687
- * The Transceiver `rtc_...` ID of the pending SIP session. The paired
688
- * `live.transport.incoming` event derives its `session_id` by replacing the `rtc_`
689
- * prefix with `live_`. Use the ID returned by the event with the corresponding
690
- * Realtime or Live API.
687
+ * The ID of the pending SIP call. Pass this value unchanged when accepting or
688
+ * rejecting the call through the Realtime API. For the Live API, use the
689
+ * `session_id` from `live.transport.incoming` instead.
691
690
  */
692
691
  call_id: string;
693
692
 
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** Version of the installed OpenAI SDK package. */
2
- export const VERSION = '7.17.0'; // x-release-please-version
2
+ export const VERSION = '7.18.0'; // x-release-please-version
package/version.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Version of the installed OpenAI SDK package. */
2
- export declare const VERSION = "7.17.0";
2
+ export declare const VERSION = "7.18.0";
3
3
  //# sourceMappingURL=version.d.mts.map
package/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Version of the installed OpenAI SDK package. */
2
- export declare const VERSION = "7.17.0";
2
+ export declare const VERSION = "7.18.0";
3
3
  //# sourceMappingURL=version.d.ts.map
package/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  /** Version of the installed OpenAI SDK package. */
5
- exports.VERSION = '7.17.0'; // x-release-please-version
5
+ exports.VERSION = '7.18.0'; // x-release-please-version
6
6
  //# sourceMappingURL=version.js.map
package/version.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Version of the installed OpenAI SDK package. */
2
- export const VERSION = '7.17.0'; // x-release-please-version
2
+ export const VERSION = '7.18.0'; // x-release-please-version
3
3
  //# sourceMappingURL=version.mjs.map