openai-ws-opencode 0.1.7 → 0.1.8

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 (48) hide show
  1. package/README.md +3 -3
  2. package/SECURITY.md +1 -1
  3. package/bin/setup.js +17 -43
  4. package/dist/constants.d.ts +12 -1
  5. package/dist/constants.d.ts.map +1 -1
  6. package/dist/constants.js +12 -1
  7. package/dist/constants.js.map +1 -1
  8. package/dist/models/catalog.d.ts +39 -0
  9. package/dist/models/catalog.d.ts.map +1 -0
  10. package/dist/models/catalog.js +89 -0
  11. package/dist/models/catalog.js.map +1 -0
  12. package/dist/models/defaults.d.ts.map +1 -1
  13. package/dist/models/defaults.js +15 -43
  14. package/dist/models/defaults.js.map +1 -1
  15. package/dist/models/resolve.d.ts +3 -26
  16. package/dist/models/resolve.d.ts.map +1 -1
  17. package/dist/models/resolve.js +59 -40
  18. package/dist/models/resolve.js.map +1 -1
  19. package/dist/plugin.d.ts.map +1 -1
  20. package/dist/plugin.js +11 -6
  21. package/dist/plugin.js.map +1 -1
  22. package/dist/testing.d.ts +2 -1
  23. package/dist/testing.d.ts.map +1 -1
  24. package/dist/testing.js +2 -1
  25. package/dist/testing.js.map +1 -1
  26. package/dist/transport/body.d.ts +3 -2
  27. package/dist/transport/body.d.ts.map +1 -1
  28. package/dist/transport/body.js +28 -15
  29. package/dist/transport/body.js.map +1 -1
  30. package/dist/transport/bridge.d.ts.map +1 -1
  31. package/dist/transport/bridge.js +42 -15
  32. package/dist/transport/bridge.js.map +1 -1
  33. package/dist/transport/bun-websocket.d.ts +21 -0
  34. package/dist/transport/bun-websocket.d.ts.map +1 -0
  35. package/dist/transport/bun-websocket.js +281 -0
  36. package/dist/transport/bun-websocket.js.map +1 -0
  37. package/dist/transport/config.d.ts +1 -0
  38. package/dist/transport/config.d.ts.map +1 -1
  39. package/dist/transport/config.js +1 -0
  40. package/dist/transport/config.js.map +1 -1
  41. package/dist/transport/headers.d.ts.map +1 -1
  42. package/dist/transport/headers.js +23 -6
  43. package/dist/transport/headers.js.map +1 -1
  44. package/dist/transport/pool.d.ts +9 -23
  45. package/dist/transport/pool.d.ts.map +1 -1
  46. package/dist/transport/pool.js +194 -121
  47. package/dist/transport/pool.js.map +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,281 @@
1
+ import crypto from "node:crypto";
2
+ import { EventEmitter } from "node:events";
3
+ import WebSocket from "ws";
4
+ const CONNECTING = 0;
5
+ const OPEN = 1;
6
+ const CLOSING = 2;
7
+ const CLOSED = 3;
8
+ export function loadDefaultWebSocketConstructor() {
9
+ const connect = globalThis.Bun?.connect;
10
+ return typeof connect === "function" ? BunWebSocket : WebSocket;
11
+ }
12
+ class BunWebSocket extends EventEmitter {
13
+ url;
14
+ options;
15
+ readyState = CONNECTING;
16
+ #socket = null;
17
+ #handshakeBuffer = Buffer.alloc(0);
18
+ #frameBuffer = Buffer.alloc(0);
19
+ #fragments = [];
20
+ #fragmentOpcode = null;
21
+ #closed = false;
22
+ constructor(url, options) {
23
+ super();
24
+ this.url = url;
25
+ this.options = options;
26
+ void this.#connect();
27
+ }
28
+ send(data) {
29
+ if (this.readyState !== OPEN || !this.#socket)
30
+ throw new Error("WebSocket is not open");
31
+ this.#socket.write(encodeClientFrame(0x1, Buffer.from(data, "utf8")));
32
+ }
33
+ ping() {
34
+ if (this.readyState !== OPEN || !this.#socket)
35
+ return;
36
+ this.#socket.write(encodeClientFrame(0x9));
37
+ }
38
+ close(code = 1000, reason = "") {
39
+ if (this.readyState === CLOSED || this.readyState === CLOSING)
40
+ return;
41
+ this.readyState = CLOSING;
42
+ if (this.#socket) {
43
+ const payload = Buffer.alloc(2 + Buffer.byteLength(reason));
44
+ payload.writeUInt16BE(code, 0);
45
+ payload.write(reason, 2);
46
+ try {
47
+ this.#socket.write(encodeClientFrame(0x8, payload));
48
+ }
49
+ catch { }
50
+ this.#endSocket();
51
+ }
52
+ else {
53
+ this.#finishClose(code, reason);
54
+ }
55
+ }
56
+ terminate() {
57
+ this.#endSocket();
58
+ this.readyState = CLOSED;
59
+ }
60
+ async #connect() {
61
+ const parsed = new URL(this.url);
62
+ const connect = globalThis.Bun?.connect;
63
+ if (typeof connect !== "function") {
64
+ this.#emitError(new Error("Bun.connect is unavailable"));
65
+ return;
66
+ }
67
+ try {
68
+ this.#socket = await connect({
69
+ hostname: parsed.hostname,
70
+ port: Number(parsed.port || (parsed.protocol === "wss:" ? 443 : 80)),
71
+ tls: parsed.protocol === "wss:",
72
+ socket: {
73
+ open: (socket) => {
74
+ this.#socket = socket;
75
+ queueMicrotask(() => socket.write(this.#handshakeRequest(parsed)));
76
+ },
77
+ data: (_socket, data) => this.#handleData(Buffer.from(data)),
78
+ close: (_socket, error) => {
79
+ if (error)
80
+ this.#emitError(error);
81
+ this.#finishClose();
82
+ },
83
+ error: (_socket, error) => this.#emitError(error),
84
+ connectError: (_socket, error) => this.#emitError(error),
85
+ end: () => this.#finishClose(),
86
+ timeout: () => this.#emitError(new Error("WebSocket socket timed out")),
87
+ },
88
+ });
89
+ }
90
+ catch (error) {
91
+ this.#emitError(error instanceof Error ? error : new Error(String(error)));
92
+ }
93
+ }
94
+ #handshakeRequest(parsed) {
95
+ const key = crypto.randomBytes(16).toString("base64");
96
+ const path = `${parsed.pathname || "/"}${parsed.search}`;
97
+ const host = parsed.port ? `${parsed.hostname}:${parsed.port}` : parsed.hostname;
98
+ const headers = {
99
+ Host: host,
100
+ Upgrade: "websocket",
101
+ Connection: "Upgrade",
102
+ "Sec-WebSocket-Key": key,
103
+ "Sec-WebSocket-Version": "13",
104
+ ...this.options.headers,
105
+ };
106
+ return `GET ${path} HTTP/1.1\r\n${Object.entries(headers)
107
+ .map(([name, value]) => `${name}: ${value}`)
108
+ .join("\r\n")}\r\n\r\n`;
109
+ }
110
+ #handleData(data) {
111
+ if (this.readyState === CONNECTING) {
112
+ this.#handshakeBuffer = Buffer.concat([this.#handshakeBuffer, data]);
113
+ const split = this.#handshakeBuffer.indexOf("\r\n\r\n");
114
+ if (split < 0)
115
+ return;
116
+ const head = this.#handshakeBuffer.subarray(0, split).toString("utf8");
117
+ const rest = this.#handshakeBuffer.subarray(split + 4);
118
+ this.#handshakeBuffer = Buffer.alloc(0);
119
+ const response = parseHandshake(head);
120
+ if (response.status !== 101) {
121
+ this.#emitError(new Error(`WebSocket upgrade failed with HTTP ${response.status}`));
122
+ this.#endSocket();
123
+ return;
124
+ }
125
+ this.readyState = OPEN;
126
+ this.emit("upgrade", { headers: response.headers });
127
+ this.emit("open");
128
+ if (rest.length)
129
+ this.#handleFrames(rest);
130
+ return;
131
+ }
132
+ this.#handleFrames(data);
133
+ }
134
+ #handleFrames(data) {
135
+ this.#frameBuffer = Buffer.concat([this.#frameBuffer, data]);
136
+ while (this.#frameBuffer.length >= 2) {
137
+ const first = this.#frameBuffer[0];
138
+ const second = this.#frameBuffer[1];
139
+ const fin = (first & 0x80) !== 0;
140
+ let length = second & 0x7f;
141
+ let offset = 2;
142
+ if (length === 126) {
143
+ if (this.#frameBuffer.length < offset + 2)
144
+ return;
145
+ length = this.#frameBuffer.readUInt16BE(offset);
146
+ offset += 2;
147
+ }
148
+ else if (length === 127) {
149
+ if (this.#frameBuffer.length < offset + 8)
150
+ return;
151
+ const bigLength = this.#frameBuffer.readBigUInt64BE(offset);
152
+ if (bigLength > BigInt(Number.MAX_SAFE_INTEGER)) {
153
+ this.#emitError(new Error("WebSocket frame is too large"));
154
+ this.#endSocket();
155
+ return;
156
+ }
157
+ length = Number(bigLength);
158
+ offset += 8;
159
+ }
160
+ const masked = (second & 0x80) !== 0;
161
+ const maskOffset = offset;
162
+ if (masked)
163
+ offset += 4;
164
+ if (this.#frameBuffer.length < offset + length)
165
+ return;
166
+ let payload = Buffer.from(this.#frameBuffer.subarray(offset, offset + length));
167
+ if (masked)
168
+ payload = unmask(payload, this.#frameBuffer.subarray(maskOffset, maskOffset + 4));
169
+ this.#frameBuffer = this.#frameBuffer.subarray(offset + length);
170
+ this.#handleFrame(first & 0x0f, fin, payload);
171
+ }
172
+ }
173
+ #handleFrame(opcode, fin, payload) {
174
+ if (opcode === 0x8) {
175
+ const code = payload.length >= 2 ? payload.readUInt16BE(0) : undefined;
176
+ const reason = payload.length > 2 ? payload.subarray(2).toString("utf8") : undefined;
177
+ this.#endSocket();
178
+ this.#finishClose(code, reason);
179
+ return;
180
+ }
181
+ if (opcode === 0x9) {
182
+ this.#socket?.write(encodeClientFrame(0xa, payload));
183
+ return;
184
+ }
185
+ if (opcode === 0xa) {
186
+ this.emit("pong");
187
+ return;
188
+ }
189
+ if (opcode === 0x0) {
190
+ this.#fragments.push(payload);
191
+ if (fin)
192
+ this.#emitMessage(this.#fragmentOpcode ?? 0x1, Buffer.concat(this.#fragments));
193
+ if (fin)
194
+ this.#resetFragments();
195
+ return;
196
+ }
197
+ if (opcode !== 0x1 && opcode !== 0x2)
198
+ return;
199
+ if (!fin) {
200
+ this.#fragmentOpcode = opcode;
201
+ this.#fragments = [payload];
202
+ return;
203
+ }
204
+ this.#emitMessage(opcode, payload);
205
+ }
206
+ #emitMessage(opcode, payload) {
207
+ if (opcode === 0x1)
208
+ this.emit("message", payload.toString("utf8"), false);
209
+ else
210
+ this.emit("message", payload, true);
211
+ }
212
+ #resetFragments() {
213
+ this.#fragmentOpcode = null;
214
+ this.#fragments = [];
215
+ }
216
+ #emitError(error) {
217
+ queueMicrotask(() => this.emit("error", error));
218
+ }
219
+ #endSocket() {
220
+ try {
221
+ this.#socket?.end?.();
222
+ }
223
+ catch {
224
+ try {
225
+ this.#socket?.close?.();
226
+ }
227
+ catch { }
228
+ }
229
+ }
230
+ #finishClose(code, reason) {
231
+ if (this.#closed)
232
+ return;
233
+ this.#closed = true;
234
+ this.readyState = CLOSED;
235
+ this.emit("close", code, reason);
236
+ }
237
+ }
238
+ function parseHandshake(text) {
239
+ const lines = text.split(/\r?\n/);
240
+ const status = Number(lines[0]?.match(/\s(\d{3})\s/)?.[1] ?? 0);
241
+ const headers = new Headers();
242
+ for (const line of lines.slice(1)) {
243
+ const index = line.indexOf(":");
244
+ if (index <= 0)
245
+ continue;
246
+ headers.append(line.slice(0, index).trim(), line.slice(index + 1).trim());
247
+ }
248
+ return { status, headers };
249
+ }
250
+ function encodeClientFrame(opcode, payload = Buffer.alloc(0)) {
251
+ const length = payload.length;
252
+ const lengthBytes = length < 126 ? 0 : length <= 0xffff ? 2 : 8;
253
+ const frame = Buffer.alloc(2 + lengthBytes + 4 + length);
254
+ frame[0] = 0x80 | opcode;
255
+ if (length < 126) {
256
+ frame[1] = 0x80 | length;
257
+ }
258
+ else if (length <= 0xffff) {
259
+ frame[1] = 0x80 | 126;
260
+ frame.writeUInt16BE(length, 2);
261
+ }
262
+ else {
263
+ frame[1] = 0x80 | 127;
264
+ frame.writeBigUInt64BE(BigInt(length), 2);
265
+ }
266
+ const maskOffset = 2 + lengthBytes;
267
+ const dataOffset = maskOffset + 4;
268
+ const mask = crypto.randomBytes(4);
269
+ mask.copy(frame, maskOffset);
270
+ for (let index = 0; index < payload.length; index++) {
271
+ frame[dataOffset + index] = payload[index] ^ mask[index % 4];
272
+ }
273
+ return frame;
274
+ }
275
+ function unmask(payload, mask) {
276
+ const output = Buffer.alloc(payload.length);
277
+ for (let index = 0; index < payload.length; index++)
278
+ output[index] = payload[index] ^ mask[index % 4];
279
+ return output;
280
+ }
281
+ //# sourceMappingURL=bun-websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bun-websocket.js","sourceRoot":"","sources":["../../src/transport/bun-websocket.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare const transportConfig: {
7
7
  staleReuseMs: number;
8
8
  heartbeatIntervalMs: number;
9
9
  pongTimeoutMs: number;
10
+ responseIdleTimeoutMs: number;
10
11
  maxConnectionsPerScope: number;
11
12
  connectionMaxAgeMs: number;
12
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/transport/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;CAW3B,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/transport/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;CAY3B,CAAA"}
@@ -7,6 +7,7 @@ export const transportConfig = {
7
7
  staleReuseMs: 60_000,
8
8
  heartbeatIntervalMs: 30_000,
9
9
  pongTimeoutMs: 10_000,
10
+ responseIdleTimeoutMs: 90_000,
10
11
  maxConnectionsPerScope: 4,
11
12
  connectionMaxAgeMs: 55 * 60 * 1000,
12
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/transport/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,gBAAgB,EAAE,MAAM;IACxB,oBAAoB,EAAE,CAAC;IACvB,oBAAoB,EAAE,GAAG;IACzB,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,MAAM;IACpB,mBAAmB,EAAE,MAAM;IAC3B,aAAa,EAAE,MAAM;IACrB,sBAAsB,EAAE,CAAC;IACzB,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;CACnC,CAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/transport/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,gBAAgB,EAAE,MAAM;IACxB,oBAAoB,EAAE,CAAC;IACvB,oBAAoB,EAAE,GAAG;IACzB,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,MAAM;IACpB,mBAAmB,EAAE,MAAM;IAC3B,aAAa,EAAE,MAAM;IACrB,qBAAqB,EAAE,MAAM;IAC7B,sBAAsB,EAAE,CAAC;IACzB,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;CACnC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../src/transport/headers.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK7E;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOrG;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,IAAI,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACjG,OAAO,CAWT;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;EAanI;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,gBAAgB,GAAG;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,CAa3G"}
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../src/transport/headers.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAiBD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7E;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMrG;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,IAAI,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACjG,OAAO,CAaT;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;EAanI;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,gBAAgB,GAAG;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,CAa3G"}
@@ -1,16 +1,29 @@
1
- import { CODEX_ORIGINATOR, CODEX_WS_URL, INTERNAL_AGENT_HEADER, INTERNAL_MODEL_HEADER, INTERNAL_PREFIX_HASH_HEADER, INTERNAL_SESSION_HEADER, OPENAI_WS_BETA, OPENAI_WS_URL, } from "../constants.js";
1
+ import { CODEX_ORIGINATOR, CODEX_WS_URL, INTERNAL_AGENT_HEADER, INTERNAL_MODEL_HEADER, INTERNAL_PREFIX_HASH_HEADER, INTERNAL_SESSION_HEADER, OPENAI_WS_BETA, OPENAI_WS_URL, USER_AGENT, } from "../constants.js";
2
+ function defaultHeaders() {
3
+ return {
4
+ originator: CODEX_ORIGINATOR,
5
+ "OpenAI-Beta": OPENAI_WS_BETA,
6
+ "User-Agent": USER_AGENT,
7
+ };
8
+ }
9
+ function organizationProjectHeaders() {
10
+ return {
11
+ ...(process.env.OPENAI_ORGANIZATION ? { "OpenAI-Organization": process.env.OPENAI_ORGANIZATION } : {}),
12
+ ...(process.env.OPENAI_PROJECT ? { "OpenAI-Project": process.env.OPENAI_PROJECT } : {}),
13
+ };
14
+ }
2
15
  export function apiKeyWebSocketHeaders(apiKey) {
3
16
  return {
17
+ ...defaultHeaders(),
18
+ ...organizationProjectHeaders(),
4
19
  Authorization: `Bearer ${apiKey}`,
5
- "OpenAI-Beta": OPENAI_WS_BETA,
6
20
  };
7
21
  }
8
22
  export function oauthWebSocketHeaders(accessToken, accountId) {
9
23
  return {
24
+ ...defaultHeaders(),
10
25
  Authorization: `Bearer ${accessToken}`,
11
26
  ...(accountId ? { "ChatGPT-Account-Id": accountId } : {}),
12
- originator: CODEX_ORIGINATOR,
13
- "OpenAI-Beta": OPENAI_WS_BETA,
14
27
  };
15
28
  }
16
29
  export function httpAuthHeaders(baseHeaders, auth) {
@@ -18,11 +31,15 @@ export function httpAuthHeaders(baseHeaders, auth) {
18
31
  headers.delete("authorization");
19
32
  headers.delete("Authorization");
20
33
  headers.set("Authorization", `Bearer ${auth.type === "api" ? auth.apiKey : auth.accessToken}`);
34
+ for (const [key, value] of Object.entries(defaultHeaders()))
35
+ headers.set(key, value);
36
+ if (auth.type === "api") {
37
+ for (const [key, value] of Object.entries(organizationProjectHeaders()))
38
+ headers.set(key, value);
39
+ }
21
40
  if (auth.type === "oauth") {
22
41
  if (auth.accountId)
23
42
  headers.set("ChatGPT-Account-Id", auth.accountId);
24
- headers.set("originator", CODEX_ORIGINATOR);
25
- headers.set("OpenAI-Beta", OPENAI_WS_BETA);
26
43
  }
27
44
  return headers;
28
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../src/transport/headers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../src/transport/headers.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,16 @@
1
+ import { type WebSocketConstructor, type WebSocketLike } from "./bun-websocket.js";
1
2
  import type { TransportContext } from "./headers.js";
2
- type WebSocketLike = {
3
- readyState: number;
4
- send(data: string): void;
5
- close(code?: number, reason?: string): void;
6
- terminate?: () => void;
7
- ping?: () => void;
8
- on?(event: string, listener: (...args: any[]) => void): unknown;
9
- off?(event: string, listener: (...args: any[]) => void): unknown;
10
- addEventListener?(event: string, listener: (...args: any[]) => void): unknown;
11
- removeEventListener?(event: string, listener: (...args: any[]) => void): unknown;
12
- };
13
- type WebSocketConstructor = new (url: string, options: {
14
- headers: Record<string, string>;
15
- }) => WebSocketLike;
16
3
  type PendingMetadata = {
17
4
  responseId?: string;
18
- model?: string;
19
- createdAt?: number;
20
- serviceTier?: unknown;
21
- usage?: unknown;
22
5
  };
23
6
  export interface PendingRequest {
24
7
  body: Record<string, unknown>;
25
8
  controller: ReadableStreamDefaultController<Uint8Array>;
9
+ onFinalize?: () => void;
26
10
  done: boolean;
27
11
  sent: boolean;
28
- forwarded: boolean;
29
- replayUnsafeForwarded: boolean;
30
- frameCount: number;
31
- lastEventType?: string;
32
- lastSequenceNumber?: number;
12
+ processedAckSent: boolean;
13
+ idleTimer: ReturnType<typeof setTimeout> | null;
33
14
  metadata: PendingMetadata;
34
15
  }
35
16
  export interface PooledConnection {
@@ -39,6 +20,7 @@ export interface PooledConnection {
39
20
  headers: Record<string, string>;
40
21
  scopeKey: string;
41
22
  scopeHash: string;
23
+ contextKey: string;
42
24
  busy: boolean;
43
25
  warm: boolean;
44
26
  pending: PendingRequest | null;
@@ -49,6 +31,10 @@ export interface PooledConnection {
49
31
  lastModelID?: string;
50
32
  lastStablePrefixHash?: string;
51
33
  lastResponseID?: string;
34
+ turnState?: string;
35
+ serverModel?: string;
36
+ modelsEtag?: string;
37
+ serverReasoningIncluded?: boolean;
52
38
  generation: number;
53
39
  reconnectAttempts: number;
54
40
  createdAt: number;
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/transport/pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/transport/pool.ts"],"names":[],"mappings":"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"}