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
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+ var _ResponsesWebSocketSession_instances, _ResponsesWebSocketSession_connection, _ResponsesWebSocketSession_lanes, _ResponsesWebSocketSession_maxLanes, _ResponsesWebSocketSession_maxEvents, _ResponsesWebSocketSession_maxBytes, _ResponsesWebSocketSession_events, _ResponsesWebSocketSession_bytes, _ResponsesWebSocketSession_closed, _ResponsesWebSocketSession_socket, _ResponsesWebSocketSession_failedTransport, _ResponsesWebSocketSession_removeListeners, _ResponsesWebSocketSession_onEvent, _ResponsesWebSocketSession_onClose, _ResponsesWebSocketSession_onError, _ResponsesWebSocketSession_onSocketError, _ResponsesWebSocketSession_onReconnect, _ResponsesWebSocketSession_onReconnected, _ResponsesWebSocketSession_assertTransportAvailable, _ResponsesWebSocketSession_clearRecoveredTransportError, _ResponsesWebSocketSession_failLanes;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ResponsesWebSocketSession = exports.ResponsesWebSocketLane = void 0;
5
+ const tslib_1 = require("../../internal/tslib.js");
6
+ const internal_base_1 = require("../../resources/responses/internal-base.js");
7
+ const error_1 = require("../../core/error.js");
8
+ const ws_adapter_1 = require("../../internal/ws-adapter.js");
9
+ const ws_1 = require("../../internal/ws.js");
10
+ const values_1 = require("../../internal/utils/values.js");
11
+ const ws_base_1 = require("../../resources/responses/ws-base.js");
12
+ const ws_base_2 = require("../../resources/beta/responses/ws-base.js");
13
+ const responses_websocket_lane_1 = require("./responses-websocket-lane.js");
14
+ var responses_websocket_lane_2 = require("./responses-websocket-lane.js");
15
+ Object.defineProperty(exports, "ResponsesWebSocketLane", { enumerable: true, get: function () { return responses_websocket_lane_2.ResponsesWebSocketLane; } });
16
+ function parseEvent(serialized) {
17
+ // SAFETY: Validate the envelope below, as the native transport does for server-defined payloads.
18
+ const event = JSON.parse(serialized);
19
+ if (!(0, values_1.isObj)(event) ||
20
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Match the native event envelope at this untyped boundary.
21
+ typeof Object.getOwnPropertyDescriptor(event, 'type')?.value !== 'string') {
22
+ throw new error_1.OpenAIError('Invalid WebSocket event shape');
23
+ }
24
+ return event;
25
+ }
26
+ function serializeCustomEvent(incoming) {
27
+ const snapshot = structuredClone(incoming);
28
+ // Mask inherited serialization hooks throughout our copy, not the caller's event.
29
+ const pending = [snapshot];
30
+ const visited = new Set();
31
+ while (pending.length > 0) {
32
+ const value = pending.pop();
33
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Traverse only objects in the untyped structured clone.
34
+ if (value === null || typeof value !== 'object' || visited.has(value)) {
35
+ continue;
36
+ }
37
+ visited.add(value);
38
+ // Keep Date's standard JSON conversion, which is owned by Date.prototype.
39
+ if (!(value instanceof Date) && !(0, values_1.hasOwn)(value, 'toJSON')) {
40
+ Object.defineProperty(value, 'toJSON', { value: undefined });
41
+ }
42
+ for (const child of Object.values(value)) {
43
+ pending.push(child);
44
+ }
45
+ }
46
+ return JSON.stringify(snapshot);
47
+ }
48
+ /**
49
+ * Routes events from an existing Responses socket without creating another reader.
50
+ * Register lanes before sending. Unregistered events remain observable on the socket.
51
+ * Closing this helper releases its listeners and lanes, but leaves the socket open.
52
+ * Attaching to a closing or closed socket is rejected.
53
+ * Reconnecting invalidates lanes: register new ones after restoring application state.
54
+ * No request is replayed by this helper.
55
+ */
56
+ class ResponsesWebSocketSession {
57
+ constructor(connection, options) {
58
+ _ResponsesWebSocketSession_instances.add(this);
59
+ _ResponsesWebSocketSession_connection.set(this, void 0);
60
+ _ResponsesWebSocketSession_lanes.set(this, new Map());
61
+ _ResponsesWebSocketSession_maxLanes.set(this, void 0);
62
+ _ResponsesWebSocketSession_maxEvents.set(this, void 0);
63
+ _ResponsesWebSocketSession_maxBytes.set(this, void 0);
64
+ _ResponsesWebSocketSession_events.set(this, 0);
65
+ _ResponsesWebSocketSession_bytes.set(this, 0);
66
+ _ResponsesWebSocketSession_closed.set(this, false);
67
+ _ResponsesWebSocketSession_socket.set(this, void 0);
68
+ _ResponsesWebSocketSession_failedTransport.set(this, void 0);
69
+ _ResponsesWebSocketSession_onEvent.set(this, (incoming) => {
70
+ let event;
71
+ let bytes;
72
+ try {
73
+ const payload = (0, ws_base_1.getWebSocketEventPayload)(incoming) ?? (0, ws_base_2.getWebSocketEventPayload)(incoming);
74
+ // Native events are copied from the wire, before any observer's mutations.
75
+ // Clone custom inputs once to strip prototypes and evaluate accessors,
76
+ // then retain only the JSON representation covered by byte accounting.
77
+ let serialized = payload;
78
+ if (serialized === undefined) {
79
+ serialized = serializeCustomEvent(incoming);
80
+ }
81
+ event = parseEvent(serialized);
82
+ bytes =
83
+ payload === undefined
84
+ ? (0, ws_1.rawByteLength)(serialized)
85
+ : ((0, ws_base_2.getWebSocketEventBytes)(incoming) ?? (0, ws_base_1.getWebSocketEventBytes)(incoming));
86
+ }
87
+ catch {
88
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_failLanes).call(this, new error_1.OpenAIError('Cannot snapshot custom WebSocket event'));
89
+ return;
90
+ }
91
+ const routing = Object.getOwnPropertyDescriptor(event, 'stream_id');
92
+ let streamID;
93
+ if (routing) {
94
+ const value = routing.value;
95
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Raw event observers may mutate routing; only an own string value can select a lane, without invoking accessors.
96
+ if (typeof value !== 'string') {
97
+ return;
98
+ }
99
+ streamID = value;
100
+ }
101
+ const entry = tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").get(streamID);
102
+ if (!entry || entry.lane.ended) {
103
+ return;
104
+ }
105
+ if (bytes > tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_maxBytes, "f")) {
106
+ entry.lane.fail(new error_1.OpenAIError('Responses WebSocket helper buffer limit exceeded'));
107
+ return;
108
+ }
109
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_events, tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_events, "f") + 1, "f");
110
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_bytes, tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_bytes, "f") + bytes, "f");
111
+ entry.events += 1;
112
+ entry.bytes += bytes;
113
+ // Apply the lane's own limits first, releasing its backlog on overflow.
114
+ entry.lane.push(event, bytes);
115
+ while (tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_events, "f") > tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_maxEvents, "f") || tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_bytes, "f") > tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_maxBytes, "f")) {
116
+ const bytePressure = tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_bytes, "f") > tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_maxBytes, "f");
117
+ let largest = entry;
118
+ let largestSize = 0;
119
+ for (const candidate of tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").values()) {
120
+ // Attribute pressure to existing backlogs, excluding the incoming event.
121
+ const size = bytePressure
122
+ ? candidate.bytes - (candidate === entry ? bytes : 0)
123
+ : candidate.events - (candidate === entry ? 1 : 0);
124
+ // Strict comparison breaks ties by lane registration order.
125
+ if (size > largestSize) {
126
+ largest = candidate;
127
+ largestSize = size;
128
+ }
129
+ }
130
+ largest.lane.fail(new error_1.OpenAIError('Responses WebSocket helper buffer limit exceeded'));
131
+ }
132
+ });
133
+ _ResponsesWebSocketSession_onClose.set(this, () => {
134
+ if (tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_closed, "f")) {
135
+ return;
136
+ }
137
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_closed, true, "f");
138
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_removeListeners).call(this);
139
+ for (const { lane } of tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").values()) {
140
+ lane.end(new error_1.OpenAIError('Responses WebSocket connection closed'));
141
+ }
142
+ });
143
+ // oxlint-disable-next-line eslint/class-methods-use-this -- Each session owns a distinct listener so detaching one does not unhandle another session's errors.
144
+ _ResponsesWebSocketSession_onError.set(this, () => {
145
+ // API errors are routed as events. Other emitter errors may be recoverable
146
+ // diagnostics; only the physical socket's errors end all lanes.
147
+ });
148
+ _ResponsesWebSocketSession_onSocketError.set(this, (cause) => {
149
+ const error = new internal_base_1.WebSocketError(cause.message, null);
150
+ Object.assign(error, { cause });
151
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_failedTransport, { socket: tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f"), error }, "f");
152
+ for (const { lane } of tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").values()) {
153
+ lane.end(error);
154
+ }
155
+ });
156
+ _ResponsesWebSocketSession_onReconnect.set(this, () => {
157
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f")?.off('error', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onSocketError, "f"));
158
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_socket, undefined, "f");
159
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_failLanes).call(this, new error_1.OpenAIError('Responses WebSocket reconnected state must be restored explicitly'));
160
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").clear();
161
+ });
162
+ _ResponsesWebSocketSession_onReconnected.set(this, () => {
163
+ if (tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_closed, "f")) {
164
+ return;
165
+ }
166
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f")?.off('error', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onSocketError, "f"));
167
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_socket, tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").socket, "f");
168
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_clearRecoveredTransportError).call(this, tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f"));
169
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f").on('error', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onSocketError, "f"));
170
+ });
171
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_connection, connection, "f");
172
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_maxLanes, (0, responses_websocket_lane_1.positiveInteger)(options.maxLanes), "f");
173
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_maxEvents, (0, responses_websocket_lane_1.positiveInteger)(options.maxBufferedEvents), "f");
174
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_maxBytes, (0, responses_websocket_lane_1.positiveInteger)(options.maxBufferedBytes), "f");
175
+ if (connection.socket.readyState === ws_adapter_1.ReadyState.CLOSING ||
176
+ connection.socket.readyState === ws_adapter_1.ReadyState.CLOSED) {
177
+ throw new error_1.OpenAIError('Cannot attach a Responses WebSocket session to a closing or closed socket');
178
+ }
179
+ connection.on('event', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onEvent, "f"));
180
+ connection.on('error', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onError, "f"));
181
+ connection.on('close', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onClose, "f"));
182
+ connection.on('reconnecting', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onReconnect, "f"));
183
+ connection.on('reconnected', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onReconnected, "f"));
184
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onReconnected, "f").call(this);
185
+ }
186
+ /** Omit streamID for the protocol's default lane. A lane has one consumer.
187
+ * IDs remain reserved until reconnect, including after close or failure:
188
+ * a terminal response can still be followed by an automatic successor.
189
+ */
190
+ lane(streamID, limits = {}) {
191
+ if (tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_closed, "f")) {
192
+ throw new error_1.OpenAIError('Responses WebSocket session is closed');
193
+ }
194
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_assertTransportAvailable).call(this, tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").socket);
195
+ if (streamID !== undefined &&
196
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Untyped JavaScript callers must not create non-string routing keys through RegExp coercion.
197
+ (typeof streamID !== 'string' || !/^[A-Za-z0-9_.-]{1,256}$/u.test(streamID))) {
198
+ throw new error_1.OpenAIError('Invalid Responses WebSocket stream ID');
199
+ }
200
+ if (tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").has(streamID)) {
201
+ throw new error_1.OpenAIError('Responses WebSocket lane is already registered');
202
+ }
203
+ if (tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").size >= tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_maxLanes, "f")) {
204
+ throw new error_1.OpenAIError('Responses WebSocket lane limit exceeded');
205
+ }
206
+ const entry = {
207
+ events: 0,
208
+ bytes: 0,
209
+ lane: new responses_websocket_lane_1.ResponsesWebSocketLane(streamID, (event) => {
210
+ const { socket } = tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f");
211
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_assertTransportAvailable).call(this, socket);
212
+ if (socket.readyState !== ws_adapter_1.ReadyState.OPEN) {
213
+ throw new error_1.OpenAIError('Wait for an open Responses WebSocket before sending');
214
+ }
215
+ // The emitter's reconnect queue may replay an uncertain write. Send
216
+ // directly to the physical socket, including during its open callback.
217
+ socket.send(JSON.stringify(event));
218
+ }, (bytes) => {
219
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_events, tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_events, "f") - 1, "f");
220
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_bytes, tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_bytes, "f") - bytes, "f");
221
+ entry.events -= 1;
222
+ entry.bytes -= bytes;
223
+ }, (0, responses_websocket_lane_1.positiveInteger)(limits.maxBufferedEvents ?? tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_maxEvents, "f")), (0, responses_websocket_lane_1.positiveInteger)(limits.maxBufferedBytes ?? tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_maxBytes, "f"))),
224
+ };
225
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").set(streamID, entry);
226
+ return entry.lane;
227
+ }
228
+ close() {
229
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_closed, true, "f");
230
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_removeListeners).call(this);
231
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_failLanes).call(this, new error_1.OpenAIError('Responses WebSocket session is closed'));
232
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").clear();
233
+ }
234
+ }
235
+ exports.ResponsesWebSocketSession = ResponsesWebSocketSession;
236
+ _ResponsesWebSocketSession_connection = new WeakMap(), _ResponsesWebSocketSession_lanes = new WeakMap(), _ResponsesWebSocketSession_maxLanes = new WeakMap(), _ResponsesWebSocketSession_maxEvents = new WeakMap(), _ResponsesWebSocketSession_maxBytes = new WeakMap(), _ResponsesWebSocketSession_events = new WeakMap(), _ResponsesWebSocketSession_bytes = new WeakMap(), _ResponsesWebSocketSession_closed = new WeakMap(), _ResponsesWebSocketSession_socket = new WeakMap(), _ResponsesWebSocketSession_failedTransport = new WeakMap(), _ResponsesWebSocketSession_onEvent = new WeakMap(), _ResponsesWebSocketSession_onClose = new WeakMap(), _ResponsesWebSocketSession_onError = new WeakMap(), _ResponsesWebSocketSession_onSocketError = new WeakMap(), _ResponsesWebSocketSession_onReconnect = new WeakMap(), _ResponsesWebSocketSession_onReconnected = new WeakMap(), _ResponsesWebSocketSession_instances = new WeakSet(), _ResponsesWebSocketSession_removeListeners = function _ResponsesWebSocketSession_removeListeners() {
237
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").off('event', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onEvent, "f"));
238
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").off('error', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onError, "f"));
239
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").off('close', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onClose, "f"));
240
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").off('reconnecting', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onReconnect, "f"));
241
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").off('reconnected', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onReconnected, "f"));
242
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f")?.off('error', tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_onSocketError, "f"));
243
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_socket, undefined, "f");
244
+ }, _ResponsesWebSocketSession_assertTransportAvailable = function _ResponsesWebSocketSession_assertTransportAvailable(socket) {
245
+ // Native transports record failure before forwarding their public error event.
246
+ const cause = (0, ws_1.getWebSocketError)(socket);
247
+ if (cause) {
248
+ const error = new internal_base_1.WebSocketError(cause.message, null);
249
+ Object.assign(error, { cause });
250
+ throw error;
251
+ }
252
+ tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_clearRecoveredTransportError).call(this, socket);
253
+ if (tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_failedTransport, "f")) {
254
+ throw tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_failedTransport, "f").error;
255
+ }
256
+ }, _ResponsesWebSocketSession_clearRecoveredTransportError = function _ResponsesWebSocketSession_clearRecoveredTransportError(socket) {
257
+ // Application recovery callbacks can run before our reconnected listener.
258
+ if (tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_failedTransport, "f") &&
259
+ socket !== tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_failedTransport, "f").socket &&
260
+ socket.readyState === ws_adapter_1.ReadyState.OPEN) {
261
+ tslib_1.__classPrivateFieldSet(this, _ResponsesWebSocketSession_failedTransport, undefined, "f");
262
+ }
263
+ }, _ResponsesWebSocketSession_failLanes = function _ResponsesWebSocketSession_failLanes(error) {
264
+ for (const { lane } of tslib_1.__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").values()) {
265
+ lane.fail(error);
266
+ }
267
+ };
268
+ //# sourceMappingURL=responses-websocket-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses-websocket-session.js","sourceRoot":"","sources":["../../src/lib/responses/responses-websocket-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,263 @@
1
+ var _ResponsesWebSocketSession_instances, _ResponsesWebSocketSession_connection, _ResponsesWebSocketSession_lanes, _ResponsesWebSocketSession_maxLanes, _ResponsesWebSocketSession_maxEvents, _ResponsesWebSocketSession_maxBytes, _ResponsesWebSocketSession_events, _ResponsesWebSocketSession_bytes, _ResponsesWebSocketSession_closed, _ResponsesWebSocketSession_socket, _ResponsesWebSocketSession_failedTransport, _ResponsesWebSocketSession_removeListeners, _ResponsesWebSocketSession_onEvent, _ResponsesWebSocketSession_onClose, _ResponsesWebSocketSession_onError, _ResponsesWebSocketSession_onSocketError, _ResponsesWebSocketSession_onReconnect, _ResponsesWebSocketSession_onReconnected, _ResponsesWebSocketSession_assertTransportAvailable, _ResponsesWebSocketSession_clearRecoveredTransportError, _ResponsesWebSocketSession_failLanes;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "../../internal/tslib.mjs";
3
+ import { WebSocketError } from "../../resources/responses/internal-base.mjs";
4
+ import { OpenAIError } from "../../core/error.mjs";
5
+ import { ReadyState } from "../../internal/ws-adapter.mjs";
6
+ import { getWebSocketError, rawByteLength } from "../../internal/ws.mjs";
7
+ import { hasOwn, isObj } from "../../internal/utils/values.mjs";
8
+ import { getWebSocketEventBytes, getWebSocketEventPayload } from "../../resources/responses/ws-base.mjs";
9
+ import { getWebSocketEventBytes as getBetaWebSocketEventBytes, getWebSocketEventPayload as getBetaWebSocketEventPayload, } from "../../resources/beta/responses/ws-base.mjs";
10
+ import { ResponsesWebSocketLane, positiveInteger } from "./responses-websocket-lane.mjs";
11
+ export { ResponsesWebSocketLane } from "./responses-websocket-lane.mjs";
12
+ function parseEvent(serialized) {
13
+ // SAFETY: Validate the envelope below, as the native transport does for server-defined payloads.
14
+ const event = JSON.parse(serialized);
15
+ if (!isObj(event) ||
16
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Match the native event envelope at this untyped boundary.
17
+ typeof Object.getOwnPropertyDescriptor(event, 'type')?.value !== 'string') {
18
+ throw new OpenAIError('Invalid WebSocket event shape');
19
+ }
20
+ return event;
21
+ }
22
+ function serializeCustomEvent(incoming) {
23
+ const snapshot = structuredClone(incoming);
24
+ // Mask inherited serialization hooks throughout our copy, not the caller's event.
25
+ const pending = [snapshot];
26
+ const visited = new Set();
27
+ while (pending.length > 0) {
28
+ const value = pending.pop();
29
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Traverse only objects in the untyped structured clone.
30
+ if (value === null || typeof value !== 'object' || visited.has(value)) {
31
+ continue;
32
+ }
33
+ visited.add(value);
34
+ // Keep Date's standard JSON conversion, which is owned by Date.prototype.
35
+ if (!(value instanceof Date) && !hasOwn(value, 'toJSON')) {
36
+ Object.defineProperty(value, 'toJSON', { value: undefined });
37
+ }
38
+ for (const child of Object.values(value)) {
39
+ pending.push(child);
40
+ }
41
+ }
42
+ return JSON.stringify(snapshot);
43
+ }
44
+ /**
45
+ * Routes events from an existing Responses socket without creating another reader.
46
+ * Register lanes before sending. Unregistered events remain observable on the socket.
47
+ * Closing this helper releases its listeners and lanes, but leaves the socket open.
48
+ * Attaching to a closing or closed socket is rejected.
49
+ * Reconnecting invalidates lanes: register new ones after restoring application state.
50
+ * No request is replayed by this helper.
51
+ */
52
+ export class ResponsesWebSocketSession {
53
+ constructor(connection, options) {
54
+ _ResponsesWebSocketSession_instances.add(this);
55
+ _ResponsesWebSocketSession_connection.set(this, void 0);
56
+ _ResponsesWebSocketSession_lanes.set(this, new Map());
57
+ _ResponsesWebSocketSession_maxLanes.set(this, void 0);
58
+ _ResponsesWebSocketSession_maxEvents.set(this, void 0);
59
+ _ResponsesWebSocketSession_maxBytes.set(this, void 0);
60
+ _ResponsesWebSocketSession_events.set(this, 0);
61
+ _ResponsesWebSocketSession_bytes.set(this, 0);
62
+ _ResponsesWebSocketSession_closed.set(this, false);
63
+ _ResponsesWebSocketSession_socket.set(this, void 0);
64
+ _ResponsesWebSocketSession_failedTransport.set(this, void 0);
65
+ _ResponsesWebSocketSession_onEvent.set(this, (incoming) => {
66
+ let event;
67
+ let bytes;
68
+ try {
69
+ const payload = getWebSocketEventPayload(incoming) ?? getBetaWebSocketEventPayload(incoming);
70
+ // Native events are copied from the wire, before any observer's mutations.
71
+ // Clone custom inputs once to strip prototypes and evaluate accessors,
72
+ // then retain only the JSON representation covered by byte accounting.
73
+ let serialized = payload;
74
+ if (serialized === undefined) {
75
+ serialized = serializeCustomEvent(incoming);
76
+ }
77
+ event = parseEvent(serialized);
78
+ bytes =
79
+ payload === undefined
80
+ ? rawByteLength(serialized)
81
+ : (getBetaWebSocketEventBytes(incoming) ?? getWebSocketEventBytes(incoming));
82
+ }
83
+ catch {
84
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_failLanes).call(this, new OpenAIError('Cannot snapshot custom WebSocket event'));
85
+ return;
86
+ }
87
+ const routing = Object.getOwnPropertyDescriptor(event, 'stream_id');
88
+ let streamID;
89
+ if (routing) {
90
+ const value = routing.value;
91
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Raw event observers may mutate routing; only an own string value can select a lane, without invoking accessors.
92
+ if (typeof value !== 'string') {
93
+ return;
94
+ }
95
+ streamID = value;
96
+ }
97
+ const entry = __classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").get(streamID);
98
+ if (!entry || entry.lane.ended) {
99
+ return;
100
+ }
101
+ if (bytes > __classPrivateFieldGet(this, _ResponsesWebSocketSession_maxBytes, "f")) {
102
+ entry.lane.fail(new OpenAIError('Responses WebSocket helper buffer limit exceeded'));
103
+ return;
104
+ }
105
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_events, __classPrivateFieldGet(this, _ResponsesWebSocketSession_events, "f") + 1, "f");
106
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_bytes, __classPrivateFieldGet(this, _ResponsesWebSocketSession_bytes, "f") + bytes, "f");
107
+ entry.events += 1;
108
+ entry.bytes += bytes;
109
+ // Apply the lane's own limits first, releasing its backlog on overflow.
110
+ entry.lane.push(event, bytes);
111
+ while (__classPrivateFieldGet(this, _ResponsesWebSocketSession_events, "f") > __classPrivateFieldGet(this, _ResponsesWebSocketSession_maxEvents, "f") || __classPrivateFieldGet(this, _ResponsesWebSocketSession_bytes, "f") > __classPrivateFieldGet(this, _ResponsesWebSocketSession_maxBytes, "f")) {
112
+ const bytePressure = __classPrivateFieldGet(this, _ResponsesWebSocketSession_bytes, "f") > __classPrivateFieldGet(this, _ResponsesWebSocketSession_maxBytes, "f");
113
+ let largest = entry;
114
+ let largestSize = 0;
115
+ for (const candidate of __classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").values()) {
116
+ // Attribute pressure to existing backlogs, excluding the incoming event.
117
+ const size = bytePressure
118
+ ? candidate.bytes - (candidate === entry ? bytes : 0)
119
+ : candidate.events - (candidate === entry ? 1 : 0);
120
+ // Strict comparison breaks ties by lane registration order.
121
+ if (size > largestSize) {
122
+ largest = candidate;
123
+ largestSize = size;
124
+ }
125
+ }
126
+ largest.lane.fail(new OpenAIError('Responses WebSocket helper buffer limit exceeded'));
127
+ }
128
+ });
129
+ _ResponsesWebSocketSession_onClose.set(this, () => {
130
+ if (__classPrivateFieldGet(this, _ResponsesWebSocketSession_closed, "f")) {
131
+ return;
132
+ }
133
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_closed, true, "f");
134
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_removeListeners).call(this);
135
+ for (const { lane } of __classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").values()) {
136
+ lane.end(new OpenAIError('Responses WebSocket connection closed'));
137
+ }
138
+ });
139
+ // oxlint-disable-next-line eslint/class-methods-use-this -- Each session owns a distinct listener so detaching one does not unhandle another session's errors.
140
+ _ResponsesWebSocketSession_onError.set(this, () => {
141
+ // API errors are routed as events. Other emitter errors may be recoverable
142
+ // diagnostics; only the physical socket's errors end all lanes.
143
+ });
144
+ _ResponsesWebSocketSession_onSocketError.set(this, (cause) => {
145
+ const error = new WebSocketError(cause.message, null);
146
+ Object.assign(error, { cause });
147
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_failedTransport, { socket: __classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f"), error }, "f");
148
+ for (const { lane } of __classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").values()) {
149
+ lane.end(error);
150
+ }
151
+ });
152
+ _ResponsesWebSocketSession_onReconnect.set(this, () => {
153
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f")?.off('error', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onSocketError, "f"));
154
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_socket, undefined, "f");
155
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_failLanes).call(this, new OpenAIError('Responses WebSocket reconnected state must be restored explicitly'));
156
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").clear();
157
+ });
158
+ _ResponsesWebSocketSession_onReconnected.set(this, () => {
159
+ if (__classPrivateFieldGet(this, _ResponsesWebSocketSession_closed, "f")) {
160
+ return;
161
+ }
162
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f")?.off('error', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onSocketError, "f"));
163
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_socket, __classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").socket, "f");
164
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_clearRecoveredTransportError).call(this, __classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f"));
165
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f").on('error', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onSocketError, "f"));
166
+ });
167
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_connection, connection, "f");
168
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_maxLanes, positiveInteger(options.maxLanes), "f");
169
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_maxEvents, positiveInteger(options.maxBufferedEvents), "f");
170
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_maxBytes, positiveInteger(options.maxBufferedBytes), "f");
171
+ if (connection.socket.readyState === ReadyState.CLOSING ||
172
+ connection.socket.readyState === ReadyState.CLOSED) {
173
+ throw new OpenAIError('Cannot attach a Responses WebSocket session to a closing or closed socket');
174
+ }
175
+ connection.on('event', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onEvent, "f"));
176
+ connection.on('error', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onError, "f"));
177
+ connection.on('close', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onClose, "f"));
178
+ connection.on('reconnecting', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onReconnect, "f"));
179
+ connection.on('reconnected', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onReconnected, "f"));
180
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_onReconnected, "f").call(this);
181
+ }
182
+ /** Omit streamID for the protocol's default lane. A lane has one consumer.
183
+ * IDs remain reserved until reconnect, including after close or failure:
184
+ * a terminal response can still be followed by an automatic successor.
185
+ */
186
+ lane(streamID, limits = {}) {
187
+ if (__classPrivateFieldGet(this, _ResponsesWebSocketSession_closed, "f")) {
188
+ throw new OpenAIError('Responses WebSocket session is closed');
189
+ }
190
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_assertTransportAvailable).call(this, __classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").socket);
191
+ if (streamID !== undefined &&
192
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Untyped JavaScript callers must not create non-string routing keys through RegExp coercion.
193
+ (typeof streamID !== 'string' || !/^[A-Za-z0-9_.-]{1,256}$/u.test(streamID))) {
194
+ throw new OpenAIError('Invalid Responses WebSocket stream ID');
195
+ }
196
+ if (__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").has(streamID)) {
197
+ throw new OpenAIError('Responses WebSocket lane is already registered');
198
+ }
199
+ if (__classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").size >= __classPrivateFieldGet(this, _ResponsesWebSocketSession_maxLanes, "f")) {
200
+ throw new OpenAIError('Responses WebSocket lane limit exceeded');
201
+ }
202
+ const entry = {
203
+ events: 0,
204
+ bytes: 0,
205
+ lane: new ResponsesWebSocketLane(streamID, (event) => {
206
+ const { socket } = __classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f");
207
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_assertTransportAvailable).call(this, socket);
208
+ if (socket.readyState !== ReadyState.OPEN) {
209
+ throw new OpenAIError('Wait for an open Responses WebSocket before sending');
210
+ }
211
+ // The emitter's reconnect queue may replay an uncertain write. Send
212
+ // directly to the physical socket, including during its open callback.
213
+ socket.send(JSON.stringify(event));
214
+ }, (bytes) => {
215
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_events, __classPrivateFieldGet(this, _ResponsesWebSocketSession_events, "f") - 1, "f");
216
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_bytes, __classPrivateFieldGet(this, _ResponsesWebSocketSession_bytes, "f") - bytes, "f");
217
+ entry.events -= 1;
218
+ entry.bytes -= bytes;
219
+ }, positiveInteger(limits.maxBufferedEvents ?? __classPrivateFieldGet(this, _ResponsesWebSocketSession_maxEvents, "f")), positiveInteger(limits.maxBufferedBytes ?? __classPrivateFieldGet(this, _ResponsesWebSocketSession_maxBytes, "f"))),
220
+ };
221
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").set(streamID, entry);
222
+ return entry.lane;
223
+ }
224
+ close() {
225
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_closed, true, "f");
226
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_removeListeners).call(this);
227
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_failLanes).call(this, new OpenAIError('Responses WebSocket session is closed'));
228
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").clear();
229
+ }
230
+ }
231
+ _ResponsesWebSocketSession_connection = new WeakMap(), _ResponsesWebSocketSession_lanes = new WeakMap(), _ResponsesWebSocketSession_maxLanes = new WeakMap(), _ResponsesWebSocketSession_maxEvents = new WeakMap(), _ResponsesWebSocketSession_maxBytes = new WeakMap(), _ResponsesWebSocketSession_events = new WeakMap(), _ResponsesWebSocketSession_bytes = new WeakMap(), _ResponsesWebSocketSession_closed = new WeakMap(), _ResponsesWebSocketSession_socket = new WeakMap(), _ResponsesWebSocketSession_failedTransport = new WeakMap(), _ResponsesWebSocketSession_onEvent = new WeakMap(), _ResponsesWebSocketSession_onClose = new WeakMap(), _ResponsesWebSocketSession_onError = new WeakMap(), _ResponsesWebSocketSession_onSocketError = new WeakMap(), _ResponsesWebSocketSession_onReconnect = new WeakMap(), _ResponsesWebSocketSession_onReconnected = new WeakMap(), _ResponsesWebSocketSession_instances = new WeakSet(), _ResponsesWebSocketSession_removeListeners = function _ResponsesWebSocketSession_removeListeners() {
232
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").off('event', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onEvent, "f"));
233
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").off('error', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onError, "f"));
234
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").off('close', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onClose, "f"));
235
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").off('reconnecting', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onReconnect, "f"));
236
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_connection, "f").off('reconnected', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onReconnected, "f"));
237
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_socket, "f")?.off('error', __classPrivateFieldGet(this, _ResponsesWebSocketSession_onSocketError, "f"));
238
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_socket, undefined, "f");
239
+ }, _ResponsesWebSocketSession_assertTransportAvailable = function _ResponsesWebSocketSession_assertTransportAvailable(socket) {
240
+ // Native transports record failure before forwarding their public error event.
241
+ const cause = getWebSocketError(socket);
242
+ if (cause) {
243
+ const error = new WebSocketError(cause.message, null);
244
+ Object.assign(error, { cause });
245
+ throw error;
246
+ }
247
+ __classPrivateFieldGet(this, _ResponsesWebSocketSession_instances, "m", _ResponsesWebSocketSession_clearRecoveredTransportError).call(this, socket);
248
+ if (__classPrivateFieldGet(this, _ResponsesWebSocketSession_failedTransport, "f")) {
249
+ throw __classPrivateFieldGet(this, _ResponsesWebSocketSession_failedTransport, "f").error;
250
+ }
251
+ }, _ResponsesWebSocketSession_clearRecoveredTransportError = function _ResponsesWebSocketSession_clearRecoveredTransportError(socket) {
252
+ // Application recovery callbacks can run before our reconnected listener.
253
+ if (__classPrivateFieldGet(this, _ResponsesWebSocketSession_failedTransport, "f") &&
254
+ socket !== __classPrivateFieldGet(this, _ResponsesWebSocketSession_failedTransport, "f").socket &&
255
+ socket.readyState === ReadyState.OPEN) {
256
+ __classPrivateFieldSet(this, _ResponsesWebSocketSession_failedTransport, undefined, "f");
257
+ }
258
+ }, _ResponsesWebSocketSession_failLanes = function _ResponsesWebSocketSession_failLanes(error) {
259
+ for (const { lane } of __classPrivateFieldGet(this, _ResponsesWebSocketSession_lanes, "f").values()) {
260
+ lane.fail(error);
261
+ }
262
+ };
263
+ //# sourceMappingURL=responses-websocket-session.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses-websocket-session.mjs","sourceRoot":"","sources":["../../src/lib/responses/responses-websocket-session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openai",
3
- "version": "7.17.0",
3
+ "version": "7.18.0",
4
4
  "description": "The official TypeScript library for the OpenAI API",
5
5
  "author": "OpenAI <support@openai.com>",
6
6
  "types": "./index.d.ts",