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
package/internal/ws.js
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SendQueue = void 0;
|
|
4
|
+
exports.flattenRawData = flattenRawData;
|
|
5
|
+
exports.isRecoverableClose = isRecoverableClose;
|
|
6
|
+
const bytes_1 = require("./utils/bytes.js");
|
|
7
|
+
function toUint8Array(view) {
|
|
8
|
+
if (view instanceof Uint8Array)
|
|
9
|
+
return view;
|
|
10
|
+
return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Flatten `ArrayBufferView[]` fragments into a single `Uint8Array` so that
|
|
14
|
+
* `ws.send()` transmits the correct bytes.
|
|
15
|
+
*/
|
|
16
|
+
function flattenRawData(data) {
|
|
17
|
+
if (Array.isArray(data))
|
|
18
|
+
return (0, bytes_1.concatBytes)(data.map(toUint8Array));
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function snapshotRawData(data) {
|
|
22
|
+
if (typeof data === 'string')
|
|
23
|
+
return data;
|
|
24
|
+
if (Array.isArray(data))
|
|
25
|
+
return (0, bytes_1.concatBytes)(data.map(toUint8Array));
|
|
26
|
+
if (ArrayBuffer.isView(data)) {
|
|
27
|
+
const copy = new Uint8Array(data.byteLength);
|
|
28
|
+
copy.set(toUint8Array(data));
|
|
29
|
+
return copy;
|
|
30
|
+
}
|
|
31
|
+
return data.slice(0);
|
|
32
|
+
}
|
|
33
|
+
function rawByteLength(data) {
|
|
34
|
+
if (typeof data === 'string')
|
|
35
|
+
return (0, bytes_1.encodeUTF8)(data).byteLength;
|
|
36
|
+
if (Array.isArray(data))
|
|
37
|
+
return data.reduce((sum, buf) => sum + buf.byteLength, 0);
|
|
38
|
+
if ('byteLength' in data)
|
|
39
|
+
return data.byteLength;
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* A bounded queue for outgoing WebSocket messages. JSON messages are
|
|
44
|
+
* serialized on enqueue; raw messages are stored as-is. The queue enforces
|
|
45
|
+
* a configurable byte-size limit and can return the original messages via
|
|
46
|
+
* {@link drain} when the connection permanently closes.
|
|
47
|
+
*/
|
|
48
|
+
class SendQueue {
|
|
49
|
+
constructor(maxBytes = 1048576) {
|
|
50
|
+
this._queue = [];
|
|
51
|
+
this._bytes = 0;
|
|
52
|
+
this._maxBytes = maxBytes;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Serialize and enqueue a JSON message. Returns `true` if the message was
|
|
56
|
+
* accepted, `false` if it would exceed the byte-size limit.
|
|
57
|
+
*/
|
|
58
|
+
enqueue(event) {
|
|
59
|
+
const data = JSON.stringify(event);
|
|
60
|
+
const byteLength = (0, bytes_1.encodeUTF8)(data).byteLength;
|
|
61
|
+
if (this._bytes + byteLength > this._maxBytes && this._queue.length > 0) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
this._queue.push({ kind: 'json', data, byteLength });
|
|
65
|
+
this._bytes += byteLength;
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Enqueue raw data without serialization. Returns `true` if the data was
|
|
70
|
+
* accepted, `false` if it would exceed the byte-size limit.
|
|
71
|
+
*/
|
|
72
|
+
enqueueRaw(data) {
|
|
73
|
+
const snapshot = snapshotRawData(data);
|
|
74
|
+
const byteLength = rawByteLength(snapshot);
|
|
75
|
+
if (this._bytes + byteLength > this._maxBytes && this._queue.length > 0) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
this._queue.push({ kind: 'raw', data: snapshot, byteLength });
|
|
79
|
+
this._bytes += byteLength;
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Send every queued message via `send`. If `send` throws, the failing
|
|
84
|
+
* message and all subsequent messages are re-queued and the error is
|
|
85
|
+
* re-thrown so the caller can report it.
|
|
86
|
+
*/
|
|
87
|
+
flush(send) {
|
|
88
|
+
const pending = this._queue.splice(0);
|
|
89
|
+
this._bytes = 0;
|
|
90
|
+
for (let i = 0; i < pending.length; i++) {
|
|
91
|
+
try {
|
|
92
|
+
send(pending[i].data);
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
const remaining = pending.slice(i);
|
|
96
|
+
this._queue = remaining.concat(this._queue);
|
|
97
|
+
this._bytes = this._queue.reduce((sum, item) => sum + item.byteLength, 0);
|
|
98
|
+
throw err;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Drain the queue and return the unsent messages. JSON messages are
|
|
104
|
+
* deserialized back to their original form. Resets byte tracking to zero.
|
|
105
|
+
*/
|
|
106
|
+
drain() {
|
|
107
|
+
const unsent = this._queue.map((entry) => {
|
|
108
|
+
if (entry.kind === 'raw')
|
|
109
|
+
return { type: 'raw', data: entry.data };
|
|
110
|
+
return { type: 'message', message: JSON.parse(entry.data) };
|
|
111
|
+
});
|
|
112
|
+
this._queue = [];
|
|
113
|
+
this._bytes = 0;
|
|
114
|
+
return unsent;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.SendQueue = SendQueue;
|
|
118
|
+
// RFC 6455 §7.4.1
|
|
119
|
+
function isRecoverableClose(code) {
|
|
120
|
+
switch (code) {
|
|
121
|
+
case 1000:
|
|
122
|
+
return false; // Normal closure
|
|
123
|
+
case 1001:
|
|
124
|
+
return true; // Going away (server shutting down)
|
|
125
|
+
case 1002:
|
|
126
|
+
return false; // Protocol error
|
|
127
|
+
case 1003:
|
|
128
|
+
return false; // Unsupported data
|
|
129
|
+
case 1005:
|
|
130
|
+
return true; // No status code (abnormal)
|
|
131
|
+
case 1006:
|
|
132
|
+
return true; // Abnormal closure (network drop)
|
|
133
|
+
case 1007:
|
|
134
|
+
return false; // Invalid payload
|
|
135
|
+
case 1008:
|
|
136
|
+
return false; // Policy violation
|
|
137
|
+
case 1009:
|
|
138
|
+
return false; // Message too big
|
|
139
|
+
case 1010:
|
|
140
|
+
return false; // Missing extension
|
|
141
|
+
case 1011:
|
|
142
|
+
return true; // Internal server error
|
|
143
|
+
case 1012:
|
|
144
|
+
return true; // Service restart
|
|
145
|
+
case 1013:
|
|
146
|
+
return true; // Try again later
|
|
147
|
+
case 1015:
|
|
148
|
+
return true; // TLS handshake failure
|
|
149
|
+
default:
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=ws.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/internal/ws.ts"],"names":[],"mappings":"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"}
|
package/internal/ws.mjs
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { concatBytes, encodeUTF8 } from "./utils/bytes.mjs";
|
|
2
|
+
function toUint8Array(view) {
|
|
3
|
+
if (view instanceof Uint8Array)
|
|
4
|
+
return view;
|
|
5
|
+
return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Flatten `ArrayBufferView[]` fragments into a single `Uint8Array` so that
|
|
9
|
+
* `ws.send()` transmits the correct bytes.
|
|
10
|
+
*/
|
|
11
|
+
export function flattenRawData(data) {
|
|
12
|
+
if (Array.isArray(data))
|
|
13
|
+
return concatBytes(data.map(toUint8Array));
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
function snapshotRawData(data) {
|
|
17
|
+
if (typeof data === 'string')
|
|
18
|
+
return data;
|
|
19
|
+
if (Array.isArray(data))
|
|
20
|
+
return concatBytes(data.map(toUint8Array));
|
|
21
|
+
if (ArrayBuffer.isView(data)) {
|
|
22
|
+
const copy = new Uint8Array(data.byteLength);
|
|
23
|
+
copy.set(toUint8Array(data));
|
|
24
|
+
return copy;
|
|
25
|
+
}
|
|
26
|
+
return data.slice(0);
|
|
27
|
+
}
|
|
28
|
+
function rawByteLength(data) {
|
|
29
|
+
if (typeof data === 'string')
|
|
30
|
+
return encodeUTF8(data).byteLength;
|
|
31
|
+
if (Array.isArray(data))
|
|
32
|
+
return data.reduce((sum, buf) => sum + buf.byteLength, 0);
|
|
33
|
+
if ('byteLength' in data)
|
|
34
|
+
return data.byteLength;
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* A bounded queue for outgoing WebSocket messages. JSON messages are
|
|
39
|
+
* serialized on enqueue; raw messages are stored as-is. The queue enforces
|
|
40
|
+
* a configurable byte-size limit and can return the original messages via
|
|
41
|
+
* {@link drain} when the connection permanently closes.
|
|
42
|
+
*/
|
|
43
|
+
export class SendQueue {
|
|
44
|
+
constructor(maxBytes = 1048576) {
|
|
45
|
+
this._queue = [];
|
|
46
|
+
this._bytes = 0;
|
|
47
|
+
this._maxBytes = maxBytes;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Serialize and enqueue a JSON message. Returns `true` if the message was
|
|
51
|
+
* accepted, `false` if it would exceed the byte-size limit.
|
|
52
|
+
*/
|
|
53
|
+
enqueue(event) {
|
|
54
|
+
const data = JSON.stringify(event);
|
|
55
|
+
const byteLength = encodeUTF8(data).byteLength;
|
|
56
|
+
if (this._bytes + byteLength > this._maxBytes && this._queue.length > 0) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
this._queue.push({ kind: 'json', data, byteLength });
|
|
60
|
+
this._bytes += byteLength;
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Enqueue raw data without serialization. Returns `true` if the data was
|
|
65
|
+
* accepted, `false` if it would exceed the byte-size limit.
|
|
66
|
+
*/
|
|
67
|
+
enqueueRaw(data) {
|
|
68
|
+
const snapshot = snapshotRawData(data);
|
|
69
|
+
const byteLength = rawByteLength(snapshot);
|
|
70
|
+
if (this._bytes + byteLength > this._maxBytes && this._queue.length > 0) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
this._queue.push({ kind: 'raw', data: snapshot, byteLength });
|
|
74
|
+
this._bytes += byteLength;
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Send every queued message via `send`. If `send` throws, the failing
|
|
79
|
+
* message and all subsequent messages are re-queued and the error is
|
|
80
|
+
* re-thrown so the caller can report it.
|
|
81
|
+
*/
|
|
82
|
+
flush(send) {
|
|
83
|
+
const pending = this._queue.splice(0);
|
|
84
|
+
this._bytes = 0;
|
|
85
|
+
for (let i = 0; i < pending.length; i++) {
|
|
86
|
+
try {
|
|
87
|
+
send(pending[i].data);
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
const remaining = pending.slice(i);
|
|
91
|
+
this._queue = remaining.concat(this._queue);
|
|
92
|
+
this._bytes = this._queue.reduce((sum, item) => sum + item.byteLength, 0);
|
|
93
|
+
throw err;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Drain the queue and return the unsent messages. JSON messages are
|
|
99
|
+
* deserialized back to their original form. Resets byte tracking to zero.
|
|
100
|
+
*/
|
|
101
|
+
drain() {
|
|
102
|
+
const unsent = this._queue.map((entry) => {
|
|
103
|
+
if (entry.kind === 'raw')
|
|
104
|
+
return { type: 'raw', data: entry.data };
|
|
105
|
+
return { type: 'message', message: JSON.parse(entry.data) };
|
|
106
|
+
});
|
|
107
|
+
this._queue = [];
|
|
108
|
+
this._bytes = 0;
|
|
109
|
+
return unsent;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// RFC 6455 §7.4.1
|
|
113
|
+
export function isRecoverableClose(code) {
|
|
114
|
+
switch (code) {
|
|
115
|
+
case 1000:
|
|
116
|
+
return false; // Normal closure
|
|
117
|
+
case 1001:
|
|
118
|
+
return true; // Going away (server shutting down)
|
|
119
|
+
case 1002:
|
|
120
|
+
return false; // Protocol error
|
|
121
|
+
case 1003:
|
|
122
|
+
return false; // Unsupported data
|
|
123
|
+
case 1005:
|
|
124
|
+
return true; // No status code (abnormal)
|
|
125
|
+
case 1006:
|
|
126
|
+
return true; // Abnormal closure (network drop)
|
|
127
|
+
case 1007:
|
|
128
|
+
return false; // Invalid payload
|
|
129
|
+
case 1008:
|
|
130
|
+
return false; // Policy violation
|
|
131
|
+
case 1009:
|
|
132
|
+
return false; // Message too big
|
|
133
|
+
case 1010:
|
|
134
|
+
return false; // Missing extension
|
|
135
|
+
case 1011:
|
|
136
|
+
return true; // Internal server error
|
|
137
|
+
case 1012:
|
|
138
|
+
return true; // Service restart
|
|
139
|
+
case 1013:
|
|
140
|
+
return true; // Try again later
|
|
141
|
+
case 1015:
|
|
142
|
+
return true; // TLS handshake failure
|
|
143
|
+
default:
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=ws.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws.mjs","sourceRoot":"","sources":["../src/internal/ws.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openai",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.35.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",
|
|
@@ -25,18 +25,6 @@
|
|
|
25
25
|
"fix": "./scripts/format"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {},
|
|
28
|
-
"peerDependencies": {
|
|
29
|
-
"ws": "^8.18.0",
|
|
30
|
-
"zod": "^3.25 || ^4.0"
|
|
31
|
-
},
|
|
32
|
-
"peerDependenciesMeta": {
|
|
33
|
-
"ws": {
|
|
34
|
-
"optional": true
|
|
35
|
-
},
|
|
36
|
-
"zod": {
|
|
37
|
-
"optional": true
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
28
|
"bin": {
|
|
41
29
|
"openai": "bin/cli"
|
|
42
30
|
},
|
|
@@ -250,5 +238,17 @@
|
|
|
250
238
|
"./version.mjs": {
|
|
251
239
|
"default": "./version.mjs"
|
|
252
240
|
}
|
|
241
|
+
},
|
|
242
|
+
"peerDependencies": {
|
|
243
|
+
"ws": "^8.18.0",
|
|
244
|
+
"zod": "^3.25 || ^4.0"
|
|
245
|
+
},
|
|
246
|
+
"peerDependenciesMeta": {
|
|
247
|
+
"ws": {
|
|
248
|
+
"optional": true
|
|
249
|
+
},
|
|
250
|
+
"zod": {
|
|
251
|
+
"optional": true
|
|
252
|
+
}
|
|
253
253
|
}
|
|
254
254
|
}
|
|
@@ -14,8 +14,8 @@ export declare class Speech extends APIResource {
|
|
|
14
14
|
* ```ts
|
|
15
15
|
* const speech = await client.audio.speech.create({
|
|
16
16
|
* input: 'input',
|
|
17
|
-
* model: '
|
|
18
|
-
* voice: '
|
|
17
|
+
* model: 'tts-1',
|
|
18
|
+
* voice: 'alloy',
|
|
19
19
|
* });
|
|
20
20
|
*
|
|
21
21
|
* const content = await speech.blob();
|
|
@@ -14,8 +14,8 @@ export declare class Speech extends APIResource {
|
|
|
14
14
|
* ```ts
|
|
15
15
|
* const speech = await client.audio.speech.create({
|
|
16
16
|
* input: 'input',
|
|
17
|
-
* model: '
|
|
18
|
-
* voice: '
|
|
17
|
+
* model: 'tts-1',
|
|
18
|
+
* voice: 'alloy',
|
|
19
19
|
* });
|
|
20
20
|
*
|
|
21
21
|
* const content = await speech.blob();
|
|
@@ -17,8 +17,8 @@ class Speech extends resource_1.APIResource {
|
|
|
17
17
|
* ```ts
|
|
18
18
|
* const speech = await client.audio.speech.create({
|
|
19
19
|
* input: 'input',
|
|
20
|
-
* model: '
|
|
21
|
-
* voice: '
|
|
20
|
+
* model: 'tts-1',
|
|
21
|
+
* voice: 'alloy',
|
|
22
22
|
* });
|
|
23
23
|
*
|
|
24
24
|
* const content = await speech.blob();
|
|
@@ -14,8 +14,8 @@ export class Speech extends APIResource {
|
|
|
14
14
|
* ```ts
|
|
15
15
|
* const speech = await client.audio.speech.create({
|
|
16
16
|
* input: 'input',
|
|
17
|
-
* model: '
|
|
18
|
-
* voice: '
|
|
17
|
+
* model: 'tts-1',
|
|
18
|
+
* voice: 'alloy',
|
|
19
19
|
* });
|
|
20
20
|
*
|
|
21
21
|
* const content = await speech.blob();
|
|
@@ -1356,7 +1356,7 @@ export interface ChatCompletionCreateParamsBase {
|
|
|
1356
1356
|
* of 24 hours.
|
|
1357
1357
|
* [Learn more](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention).
|
|
1358
1358
|
*/
|
|
1359
|
-
prompt_cache_retention?: '
|
|
1359
|
+
prompt_cache_retention?: 'in_memory' | '24h' | null;
|
|
1360
1360
|
/**
|
|
1361
1361
|
* Constrains effort on reasoning for
|
|
1362
1362
|
* [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
|
|
@@ -1356,7 +1356,7 @@ export interface ChatCompletionCreateParamsBase {
|
|
|
1356
1356
|
* of 24 hours.
|
|
1357
1357
|
* [Learn more](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention).
|
|
1358
1358
|
*/
|
|
1359
|
-
prompt_cache_retention?: '
|
|
1359
|
+
prompt_cache_retention?: 'in_memory' | '24h' | null;
|
|
1360
1360
|
/**
|
|
1361
1361
|
* Constrains effort on reasoning for
|
|
1362
1362
|
* [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { InputItems, type ResponseItemList, type InputItemListParams } from "./input-items.mjs";
|
|
2
2
|
export { InputTokens, type InputTokenCountResponse, type InputTokenCountParams } from "./input-tokens.mjs";
|
|
3
3
|
export { Responses } from "./responses.mjs";
|
|
4
|
+
export { type ResponsesWSClientOptions } from "./ws.mjs";
|
|
5
|
+
export { type ResponsesWSReconnectOptions } from "./ws-base.mjs";
|
|
4
6
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/resources/responses/index.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE;OAC/D,EAAE,WAAW,EAAE,KAAK,uBAAuB,EAAE,KAAK,qBAAqB,EAAE;OACzE,EAAE,SAAS,EAAE"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/resources/responses/index.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE;OAC/D,EAAE,WAAW,EAAE,KAAK,uBAAuB,EAAE,KAAK,qBAAqB,EAAE;OACzE,EAAE,SAAS,EAAE;OACb,EAAE,KAAK,wBAAwB,EAAE;OACjC,EAAE,KAAK,2BAA2B,EAAE"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { InputItems, type ResponseItemList, type InputItemListParams } from "./input-items.js";
|
|
2
2
|
export { InputTokens, type InputTokenCountResponse, type InputTokenCountParams } from "./input-tokens.js";
|
|
3
3
|
export { Responses } from "./responses.js";
|
|
4
|
+
export { type ResponsesWSClientOptions } from "./ws.js";
|
|
5
|
+
export { type ResponsesWSReconnectOptions } from "./ws-base.js";
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/responses/index.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE;OAC/D,EAAE,WAAW,EAAE,KAAK,uBAAuB,EAAE,KAAK,qBAAqB,EAAE;OACzE,EAAE,SAAS,EAAE"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/responses/index.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE;OAC/D,EAAE,WAAW,EAAE,KAAK,uBAAuB,EAAE,KAAK,qBAAqB,EAAE;OACzE,EAAE,SAAS,EAAE;OACb,EAAE,KAAK,wBAAwB,EAAE;OACjC,EAAE,KAAK,2BAA2B,EAAE"}
|
|
@@ -2,11 +2,25 @@ import * as ResponsesAPI from "./responses.mjs";
|
|
|
2
2
|
import { OpenAI } from "../../client.mjs";
|
|
3
3
|
import { EventEmitter } from "../../core/EventEmitter.mjs";
|
|
4
4
|
import { OpenAIError } from "../../core/error.mjs";
|
|
5
|
+
import type { RawWebSocketData, ReconnectingEvent, UnsentMessage } from "../../internal/ws.mjs";
|
|
5
6
|
export type ResponsesStreamMessage = {
|
|
6
|
-
type: 'connecting' | 'open' | 'closing'
|
|
7
|
+
type: 'connecting' | 'open' | 'closing';
|
|
8
|
+
} | {
|
|
9
|
+
type: 'close';
|
|
10
|
+
code: number;
|
|
11
|
+
reason: string;
|
|
12
|
+
unsent: UnsentMessage<ResponsesAPI.ResponsesClientEvent>[];
|
|
13
|
+
} | {
|
|
14
|
+
type: 'reconnecting';
|
|
15
|
+
reconnect: ReconnectingEvent;
|
|
16
|
+
} | {
|
|
17
|
+
type: 'reconnected';
|
|
7
18
|
} | {
|
|
8
19
|
type: 'message';
|
|
9
20
|
message: ResponsesAPI.ResponsesServerEvent;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'raw';
|
|
23
|
+
data: RawWebSocketData;
|
|
10
24
|
} | {
|
|
11
25
|
type: 'error';
|
|
12
26
|
error: WebSocketError;
|
|
@@ -23,7 +37,11 @@ type Simplify<T> = {
|
|
|
23
37
|
} & {};
|
|
24
38
|
type WebSocketEvents = Simplify<{
|
|
25
39
|
event: (event: ResponsesAPI.ResponsesServerEvent) => void;
|
|
40
|
+
raw: (data: RawWebSocketData) => void;
|
|
26
41
|
error: (error: WebSocketError) => void;
|
|
42
|
+
close: (code: number, reason: string, unsent: UnsentMessage<ResponsesAPI.ResponsesClientEvent>[]) => void;
|
|
43
|
+
reconnecting: (event: ReconnectingEvent) => void;
|
|
44
|
+
reconnected: () => void;
|
|
27
45
|
} & {
|
|
28
46
|
[EventType in Exclude<NonNullable<ResponsesAPI.ResponsesServerEvent['type']>, 'error'>]: (event: Extract<ResponsesAPI.ResponsesServerEvent, {
|
|
29
47
|
type?: EventType;
|
|
@@ -34,6 +52,10 @@ export declare abstract class ResponsesEmitter extends EventEmitter<WebSocketEve
|
|
|
34
52
|
* Send an event to the API.
|
|
35
53
|
*/
|
|
36
54
|
abstract send(event: ResponsesAPI.ResponsesClientEvent): void;
|
|
55
|
+
/**
|
|
56
|
+
* Send raw data over the WebSocket without JSON serialization.
|
|
57
|
+
*/
|
|
58
|
+
abstract sendRaw(data: RawWebSocketData): void;
|
|
37
59
|
/**
|
|
38
60
|
* Close the WebSocket connection.
|
|
39
61
|
*/
|
|
@@ -44,6 +66,6 @@ export declare abstract class ResponsesEmitter extends EventEmitter<WebSocketEve
|
|
|
44
66
|
protected _onError(event: null, message: string, cause: any): void;
|
|
45
67
|
protected _onError(event: ResponsesAPI.ResponseErrorEvent, message?: string | undefined): void;
|
|
46
68
|
}
|
|
47
|
-
export declare function buildURL(client: OpenAI,
|
|
69
|
+
export declare function buildURL(client: OpenAI, parameters: Record<string, unknown>): URL;
|
|
48
70
|
export {};
|
|
49
71
|
//# sourceMappingURL=internal-base.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-base.d.mts","sourceRoot":"","sources":["../../src/resources/responses/internal-base.ts"],"names":[],"mappings":"OAEO,KAAK,YAAY;OACjB,EAAE,MAAM,EAAE;OACV,EAAE,YAAY,EAAE;OAChB,EAAE,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"internal-base.d.mts","sourceRoot":"","sources":["../../src/resources/responses/internal-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,25 @@ import * as ResponsesAPI from "./responses.js";
|
|
|
2
2
|
import { OpenAI } from "../../client.js";
|
|
3
3
|
import { EventEmitter } from "../../core/EventEmitter.js";
|
|
4
4
|
import { OpenAIError } from "../../core/error.js";
|
|
5
|
+
import type { RawWebSocketData, ReconnectingEvent, UnsentMessage } from "../../internal/ws.js";
|
|
5
6
|
export type ResponsesStreamMessage = {
|
|
6
|
-
type: 'connecting' | 'open' | 'closing'
|
|
7
|
+
type: 'connecting' | 'open' | 'closing';
|
|
8
|
+
} | {
|
|
9
|
+
type: 'close';
|
|
10
|
+
code: number;
|
|
11
|
+
reason: string;
|
|
12
|
+
unsent: UnsentMessage<ResponsesAPI.ResponsesClientEvent>[];
|
|
13
|
+
} | {
|
|
14
|
+
type: 'reconnecting';
|
|
15
|
+
reconnect: ReconnectingEvent;
|
|
16
|
+
} | {
|
|
17
|
+
type: 'reconnected';
|
|
7
18
|
} | {
|
|
8
19
|
type: 'message';
|
|
9
20
|
message: ResponsesAPI.ResponsesServerEvent;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'raw';
|
|
23
|
+
data: RawWebSocketData;
|
|
10
24
|
} | {
|
|
11
25
|
type: 'error';
|
|
12
26
|
error: WebSocketError;
|
|
@@ -23,7 +37,11 @@ type Simplify<T> = {
|
|
|
23
37
|
} & {};
|
|
24
38
|
type WebSocketEvents = Simplify<{
|
|
25
39
|
event: (event: ResponsesAPI.ResponsesServerEvent) => void;
|
|
40
|
+
raw: (data: RawWebSocketData) => void;
|
|
26
41
|
error: (error: WebSocketError) => void;
|
|
42
|
+
close: (code: number, reason: string, unsent: UnsentMessage<ResponsesAPI.ResponsesClientEvent>[]) => void;
|
|
43
|
+
reconnecting: (event: ReconnectingEvent) => void;
|
|
44
|
+
reconnected: () => void;
|
|
27
45
|
} & {
|
|
28
46
|
[EventType in Exclude<NonNullable<ResponsesAPI.ResponsesServerEvent['type']>, 'error'>]: (event: Extract<ResponsesAPI.ResponsesServerEvent, {
|
|
29
47
|
type?: EventType;
|
|
@@ -34,6 +52,10 @@ export declare abstract class ResponsesEmitter extends EventEmitter<WebSocketEve
|
|
|
34
52
|
* Send an event to the API.
|
|
35
53
|
*/
|
|
36
54
|
abstract send(event: ResponsesAPI.ResponsesClientEvent): void;
|
|
55
|
+
/**
|
|
56
|
+
* Send raw data over the WebSocket without JSON serialization.
|
|
57
|
+
*/
|
|
58
|
+
abstract sendRaw(data: RawWebSocketData): void;
|
|
37
59
|
/**
|
|
38
60
|
* Close the WebSocket connection.
|
|
39
61
|
*/
|
|
@@ -44,6 +66,6 @@ export declare abstract class ResponsesEmitter extends EventEmitter<WebSocketEve
|
|
|
44
66
|
protected _onError(event: null, message: string, cause: any): void;
|
|
45
67
|
protected _onError(event: ResponsesAPI.ResponseErrorEvent, message?: string | undefined): void;
|
|
46
68
|
}
|
|
47
|
-
export declare function buildURL(client: OpenAI,
|
|
69
|
+
export declare function buildURL(client: OpenAI, parameters: Record<string, unknown>): URL;
|
|
48
70
|
export {};
|
|
49
71
|
//# sourceMappingURL=internal-base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-base.d.ts","sourceRoot":"","sources":["../../src/resources/responses/internal-base.ts"],"names":[],"mappings":"OAEO,KAAK,YAAY;OACjB,EAAE,MAAM,EAAE;OACV,EAAE,YAAY,EAAE;OAChB,EAAE,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"internal-base.d.ts","sourceRoot":"","sources":["../../src/resources/responses/internal-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ exports.ResponsesEmitter = exports.WebSocketError = void 0;
|
|
|
5
5
|
exports.buildURL = buildURL;
|
|
6
6
|
const EventEmitter_1 = require("../../core/EventEmitter.js");
|
|
7
7
|
const error_1 = require("../../core/error.js");
|
|
8
|
-
const utils_1 = require("../../internal/utils.js");
|
|
9
8
|
class WebSocketError extends error_1.OpenAIError {
|
|
10
9
|
constructor(message, event) {
|
|
11
10
|
super(message);
|
|
@@ -31,14 +30,11 @@ class ResponsesEmitter extends EventEmitter_1.EventEmitter {
|
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
32
|
exports.ResponsesEmitter = ResponsesEmitter;
|
|
34
|
-
function buildURL(client,
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
const url = new URL(
|
|
38
|
-
|
|
39
|
-
url.search = (0, utils_1.stringifyQuery)(query);
|
|
40
|
-
}
|
|
41
|
-
url.protocol = url.protocol === 'http:' ? 'ws:' : 'wss:';
|
|
33
|
+
function buildURL(client, parameters) {
|
|
34
|
+
const { ...query } = parameters;
|
|
35
|
+
const endpoint = '/responses';
|
|
36
|
+
const url = new URL(client.buildURL(endpoint, query, undefined));
|
|
37
|
+
url.protocol = url.protocol === 'http:' || url.protocol === 'ws:' ? 'ws:' : 'wss:';
|
|
42
38
|
return url;
|
|
43
39
|
}
|
|
44
40
|
function safeJSONStringify(value) {
|