openai 6.34.0 → 6.35.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.
- package/CHANGELOG.md +44 -0
- package/core/EventEmitter.d.mts +11 -0
- package/core/EventEmitter.d.mts.map +1 -1
- package/core/EventEmitter.d.ts +11 -0
- package/core/EventEmitter.d.ts.map +1 -1
- package/core/EventEmitter.js +15 -1
- package/core/EventEmitter.js.map +1 -1
- package/core/EventEmitter.mjs +13 -0
- package/core/EventEmitter.mjs.map +1 -1
- package/internal/types.d.mts +6 -6
- package/internal/types.d.mts.map +1 -1
- package/internal/types.d.ts +6 -6
- package/internal/types.d.ts.map +1 -1
- package/internal/utils/env.js +2 -2
- package/internal/utils/env.js.map +1 -1
- package/internal/utils/env.mjs +2 -2
- package/internal/utils/env.mjs.map +1 -1
- package/internal/ws-adapter-browser.d.mts +34 -0
- package/internal/ws-adapter-browser.d.mts.map +1 -0
- package/internal/ws-adapter-browser.d.ts +34 -0
- package/internal/ws-adapter-browser.d.ts.map +1 -0
- package/internal/ws-adapter-browser.js +88 -0
- package/internal/ws-adapter-browser.js.map +1 -0
- package/internal/ws-adapter-browser.mjs +84 -0
- package/internal/ws-adapter-browser.mjs.map +1 -0
- package/internal/ws-adapter-node.d.mts +27 -0
- package/internal/ws-adapter-node.d.mts.map +1 -0
- package/internal/ws-adapter-node.d.ts +27 -0
- package/internal/ws-adapter-node.d.ts.map +1 -0
- package/internal/ws-adapter-node.js +90 -0
- package/internal/ws-adapter-node.js.map +1 -0
- package/internal/ws-adapter-node.mjs +86 -0
- package/internal/ws-adapter-node.mjs.map +1 -0
- package/internal/ws-adapter.d.mts +24 -0
- package/internal/ws-adapter.d.mts.map +1 -0
- package/internal/ws-adapter.d.ts +24 -0
- package/internal/ws-adapter.d.ts.map +1 -0
- package/internal/ws-adapter.js +11 -0
- package/internal/ws-adapter.js.map +1 -0
- package/internal/ws-adapter.mjs +8 -0
- package/internal/ws-adapter.mjs.map +1 -0
- package/internal/ws.d.mts +80 -0
- package/internal/ws.d.mts.map +1 -0
- package/internal/ws.d.ts +80 -0
- package/internal/ws.d.ts.map +1 -0
- package/internal/ws.js +153 -0
- package/internal/ws.js.map +1 -0
- package/internal/ws.mjs +147 -0
- package/internal/ws.mjs.map +1 -0
- package/package.json +13 -13
- package/resources/audio/speech.d.mts +2 -2
- package/resources/audio/speech.d.ts +2 -2
- package/resources/audio/speech.js +2 -2
- package/resources/audio/speech.mjs +2 -2
- package/resources/chat/completions/completions.d.mts +1 -1
- package/resources/chat/completions/completions.d.ts +1 -1
- package/resources/completions.d.mts +1 -1
- package/resources/completions.d.ts +1 -1
- package/resources/responses/index.d.mts +2 -0
- package/resources/responses/index.d.mts.map +1 -1
- package/resources/responses/index.d.ts +2 -0
- package/resources/responses/index.d.ts.map +1 -1
- package/resources/responses/internal-base.d.mts +24 -2
- package/resources/responses/internal-base.d.mts.map +1 -1
- package/resources/responses/internal-base.d.ts +24 -2
- package/resources/responses/internal-base.d.ts.map +1 -1
- package/resources/responses/internal-base.js +5 -9
- package/resources/responses/internal-base.js.map +1 -1
- package/resources/responses/internal-base.mjs +5 -9
- package/resources/responses/internal-base.mjs.map +1 -1
- package/resources/responses/responses.d.mts +19 -3
- package/resources/responses/responses.d.mts.map +1 -1
- package/resources/responses/responses.d.ts +19 -3
- package/resources/responses/responses.d.ts.map +1 -1
- package/resources/responses/responses.js.map +1 -1
- package/resources/responses/responses.mjs.map +1 -1
- package/resources/responses/ws-base.d.mts +106 -0
- package/resources/responses/ws-base.d.mts.map +1 -0
- package/resources/responses/ws-base.d.ts +106 -0
- package/resources/responses/ws-base.d.ts.map +1 -0
- package/resources/responses/ws-base.js +474 -0
- package/resources/responses/ws-base.js.map +1 -0
- package/resources/responses/ws-base.mjs +470 -0
- package/resources/responses/ws-base.mjs.map +1 -0
- package/resources/responses/ws.d.mts +9 -38
- package/resources/responses/ws.d.mts.map +1 -1
- package/resources/responses/ws.d.ts +9 -38
- package/resources/responses/ws.d.ts.map +1 -1
- package/resources/responses/ws.js +17 -171
- package/resources/responses/ws.js.map +1 -1
- package/resources/responses/ws.mjs +17 -171
- package/resources/responses/ws.mjs.map +1 -1
- package/src/core/EventEmitter.ts +16 -0
- package/src/internal/types.ts +6 -8
- package/src/internal/utils/env.ts +2 -2
- package/src/internal/ws-adapter-browser.ts +123 -0
- package/src/internal/ws-adapter-node.ts +105 -0
- package/src/internal/ws-adapter.ts +30 -0
- package/src/internal/ws.ts +193 -0
- package/src/resources/audio/speech.ts +2 -2
- package/src/resources/chat/completions/completions.ts +1 -1
- package/src/resources/completions.ts +1 -1
- package/src/resources/responses/index.ts +2 -0
- package/src/resources/responses/internal-base.ts +26 -10
- package/src/resources/responses/responses.ts +22 -3
- package/src/resources/responses/ws-base.ts +609 -0
- package/src/resources/responses/ws.ts +23 -186
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -1,201 +1,38 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
3
|
import * as WS from 'ws';
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
4
|
+
import { NodeWebSocket } from '../../internal/ws-adapter-node';
|
|
5
|
+
import { ResponsesWSBase, type ResponsesWSBaseOptions } from './ws-base';
|
|
6
6
|
import { OpenAI } from '../../client';
|
|
7
7
|
|
|
8
|
-
export
|
|
9
|
-
url: URL;
|
|
10
|
-
socket: WS.WebSocket;
|
|
11
|
-
private client: OpenAI;
|
|
8
|
+
export type { ResponsesWSReconnectOptions } from './ws-base';
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
super();
|
|
15
|
-
this.client = client;
|
|
16
|
-
this.url = buildURL(client, {});
|
|
17
|
-
this.socket = new WS.WebSocket(this.url, {
|
|
18
|
-
...options,
|
|
19
|
-
headers: {
|
|
20
|
-
...this.authHeaders(),
|
|
21
|
-
...options?.headers,
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
this.socket.on('message', (wsEvent) => {
|
|
26
|
-
const event = (() => {
|
|
27
|
-
try {
|
|
28
|
-
return JSON.parse(wsEvent.toString()) as ResponsesAPI.ResponsesServerEvent;
|
|
29
|
-
} catch (err) {
|
|
30
|
-
this._onError(null, 'could not parse websocket event', err);
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
})();
|
|
34
|
-
|
|
35
|
-
if (event) {
|
|
36
|
-
this._emit('event', event);
|
|
37
|
-
|
|
38
|
-
if (event.type === 'error') {
|
|
39
|
-
this._onError(event);
|
|
40
|
-
} else {
|
|
41
|
-
// @ts-ignore TS isn't smart enough to get the relationship right here
|
|
42
|
-
this._emit(event.type, event);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
this.socket.on('error', (err) => {
|
|
48
|
-
this._onError(null, err.message, err);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
10
|
+
export interface ResponsesWSClientOptions extends WS.ClientOptions, ResponsesWSBaseOptions {}
|
|
51
11
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
this.socket.send(JSON.stringify(event));
|
|
55
|
-
} catch (err) {
|
|
56
|
-
this._onError(null, 'could not send data', err);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
12
|
+
export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
|
|
13
|
+
private _wsOptions: WS.ClientOptions | null | undefined;
|
|
59
14
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
15
|
+
constructor(client: OpenAI, options?: ResponsesWSClientOptions | null | undefined) {
|
|
16
|
+
if (!WS?.WebSocket) {
|
|
17
|
+
throw new Error(
|
|
18
|
+
'ResponsesWS from "openai/resources/responses/ws" requires the "ws" package but it could not be loaded.',
|
|
19
|
+
);
|
|
65
20
|
}
|
|
66
|
-
}
|
|
67
21
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
* does not close the socket.
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* ```ts
|
|
76
|
-
* for await (const event of connection.stream()) {
|
|
77
|
-
* switch (event.type) {
|
|
78
|
-
* case 'message':
|
|
79
|
-
* console.log('received:', event.message);
|
|
80
|
-
* break;
|
|
81
|
-
* case 'error':
|
|
82
|
-
* console.error(event.error);
|
|
83
|
-
* break;
|
|
84
|
-
* case 'close':
|
|
85
|
-
* console.log('connection closed');
|
|
86
|
-
* break;
|
|
87
|
-
* }
|
|
88
|
-
* }
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
stream(): AsyncIterableIterator<ResponsesStreamMessage> {
|
|
92
|
-
return this[Symbol.asyncIterator]();
|
|
22
|
+
const { reconnect, maxQueueSize, ...wsOptions } = options ?? {};
|
|
23
|
+
super(client, { reconnect, maxQueueSize });
|
|
24
|
+
this._wsOptions = wsOptions;
|
|
25
|
+
this._connectInitial();
|
|
93
26
|
}
|
|
94
27
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
let done = false;
|
|
102
|
-
|
|
103
|
-
const push = (msg: ResponsesStreamMessage) => {
|
|
104
|
-
queue.push(msg);
|
|
105
|
-
resolvers.shift()?.();
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
const onEvent = (event: ResponsesAPI.ResponsesServerEvent) => {
|
|
109
|
-
if (event.type === 'error') return; // handled by onEmitterError
|
|
110
|
-
push({ type: 'message', message: event });
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
// Catches both API-level and socket-level errors via _onError → _emit('error')
|
|
114
|
-
const onEmitterError = (err: WebSocketError) => {
|
|
115
|
-
push({ type: 'error', error: err });
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
const onOpen = () => {
|
|
119
|
-
push({ type: 'open' });
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
const flushResolvers = () => {
|
|
123
|
-
for (let resolver = resolvers.shift(); resolver; resolver = resolvers.shift()) {
|
|
124
|
-
resolver();
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
const onClose = () => {
|
|
129
|
-
push({ type: 'close' });
|
|
130
|
-
done = true;
|
|
131
|
-
flushResolvers();
|
|
132
|
-
cleanup();
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
const cleanup = () => {
|
|
136
|
-
this.off('event', onEvent);
|
|
137
|
-
this.off('error', onEmitterError);
|
|
138
|
-
this.socket.off('open', onOpen);
|
|
139
|
-
this.socket.off('close', onClose);
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
this.on('event', onEvent);
|
|
143
|
-
this.on('error', onEmitterError);
|
|
144
|
-
this.socket.on('open', onOpen);
|
|
145
|
-
this.socket.on('close', onClose);
|
|
146
|
-
|
|
147
|
-
switch (this.socket.readyState) {
|
|
148
|
-
case WS.WebSocket.CONNECTING:
|
|
149
|
-
push({ type: 'connecting' });
|
|
150
|
-
break;
|
|
151
|
-
case WS.WebSocket.OPEN:
|
|
152
|
-
push({ type: 'open' });
|
|
153
|
-
break;
|
|
154
|
-
case WS.WebSocket.CLOSING:
|
|
155
|
-
push({ type: 'closing' });
|
|
156
|
-
break;
|
|
157
|
-
case WS.WebSocket.CLOSED:
|
|
158
|
-
push({ type: 'close' });
|
|
159
|
-
done = true;
|
|
160
|
-
cleanup();
|
|
161
|
-
break;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
const resolve = (res: (value: IteratorResult<ResponsesStreamMessage>) => void) => {
|
|
165
|
-
if (queue.length > 0) {
|
|
166
|
-
res({ value: queue.shift()!, done: false });
|
|
167
|
-
} else if (done) {
|
|
168
|
-
res({ value: undefined, done: true });
|
|
169
|
-
} else {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
return true;
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
const next = (): Promise<IteratorResult<ResponsesStreamMessage>> =>
|
|
176
|
-
new Promise((res) => {
|
|
177
|
-
if (resolve(res)) return;
|
|
178
|
-
resolvers.push(() => {
|
|
179
|
-
resolve(res);
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
return {
|
|
184
|
-
next,
|
|
185
|
-
return: (): Promise<IteratorReturnResult<undefined>> => {
|
|
186
|
-
done = true;
|
|
187
|
-
cleanup();
|
|
188
|
-
flushResolvers();
|
|
189
|
-
return Promise.resolve({ value: undefined, done: true });
|
|
190
|
-
},
|
|
191
|
-
[Symbol.asyncIterator]() {
|
|
192
|
-
return this;
|
|
28
|
+
protected _createSocket(url: URL, authHeaders: Record<string, string>): NodeWebSocket {
|
|
29
|
+
const ws = new WS.WebSocket(url, {
|
|
30
|
+
...this._wsOptions,
|
|
31
|
+
headers: {
|
|
32
|
+
...authHeaders,
|
|
33
|
+
...this._wsOptions?.headers,
|
|
193
34
|
},
|
|
194
|
-
};
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
private authHeaders(): Record<string, string> {
|
|
198
|
-
return { Authorization: `Bearer ${this.client.apiKey}` };
|
|
199
|
-
return {};
|
|
35
|
+
});
|
|
36
|
+
return new NodeWebSocket(ws);
|
|
200
37
|
}
|
|
201
38
|
}
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '6.
|
|
1
|
+
export const VERSION = '6.35.0'; // x-release-please-version
|
package/version.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "6.
|
|
1
|
+
export declare const VERSION = "6.35.0";
|
|
2
2
|
//# sourceMappingURL=version.d.mts.map
|
package/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "6.
|
|
1
|
+
export declare const VERSION = "6.35.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/version.js
CHANGED
package/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '6.
|
|
1
|
+
export const VERSION = '6.35.0'; // x-release-please-version
|
|
2
2
|
//# sourceMappingURL=version.mjs.map
|