openai-ws-opencode 0.1.26 → 0.1.28

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 (45) hide show
  1. package/README.md +11 -4
  2. package/bin/setup.js +3 -3
  3. package/dist/constants.d.ts +4 -2
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/constants.js +4 -2
  6. package/dist/constants.js.map +1 -1
  7. package/dist/models/catalog.d.ts.map +1 -1
  8. package/dist/models/catalog.js +11 -1
  9. package/dist/models/catalog.js.map +1 -1
  10. package/dist/plugin.d.ts.map +1 -1
  11. package/dist/plugin.js +28 -16
  12. package/dist/plugin.js.map +1 -1
  13. package/dist/testing.d.ts +96 -2
  14. package/dist/testing.d.ts.map +1 -1
  15. package/dist/testing.js +18 -2
  16. package/dist/testing.js.map +1 -1
  17. package/dist/transport/breaker.d.ts +41 -0
  18. package/dist/transport/breaker.d.ts.map +1 -0
  19. package/dist/transport/breaker.js +207 -0
  20. package/dist/transport/breaker.js.map +1 -0
  21. package/dist/transport/bridge.d.ts +6 -1
  22. package/dist/transport/bridge.d.ts.map +1 -1
  23. package/dist/transport/bridge.js +274 -72
  24. package/dist/transport/bridge.js.map +1 -1
  25. package/dist/transport/config.d.ts +37 -1
  26. package/dist/transport/config.d.ts.map +1 -1
  27. package/dist/transport/config.js +318 -6
  28. package/dist/transport/config.js.map +1 -1
  29. package/dist/transport/coordinator.d.ts +223 -0
  30. package/dist/transport/coordinator.d.ts.map +1 -0
  31. package/dist/transport/coordinator.js +506 -0
  32. package/dist/transport/coordinator.js.map +1 -0
  33. package/dist/transport/errors.d.ts +24 -0
  34. package/dist/transport/errors.d.ts.map +1 -0
  35. package/dist/transport/errors.js +49 -0
  36. package/dist/transport/errors.js.map +1 -0
  37. package/dist/transport/headers.d.ts +3 -3
  38. package/dist/transport/headers.d.ts.map +1 -1
  39. package/dist/transport/headers.js +32 -10
  40. package/dist/transport/headers.js.map +1 -1
  41. package/dist/transport/pool.d.ts +114 -7
  42. package/dist/transport/pool.d.ts.map +1 -1
  43. package/dist/transport/pool.js +473 -188
  44. package/dist/transport/pool.js.map +1 -1
  45. package/package.json +2 -2
@@ -0,0 +1,506 @@
1
+ import { monitorEventLoopDelay } from "node:perf_hooks";
2
+ import { createTransportBreaker } from "./breaker.js";
3
+ const ADMISSION_MISS_REASONS = [
4
+ "session_busy",
5
+ "session_cooldown",
6
+ "provider_breaker",
7
+ "provider_cap",
8
+ "process_cap",
9
+ "account_cap",
10
+ "connect_cap",
11
+ "handshake_rate",
12
+ "memory_guard",
13
+ "connect_failure",
14
+ "handshake_timeout",
15
+ "stale_auth",
16
+ ];
17
+ const HTTP_REASONS = [
18
+ "session_busy",
19
+ "session_cooldown",
20
+ "provider_breaker",
21
+ "provider_cap",
22
+ "process_cap",
23
+ "account_cap",
24
+ "connect_cap",
25
+ "handshake_rate",
26
+ "memory_guard",
27
+ "connect_failure",
28
+ "handshake_timeout",
29
+ "provider_connection_limit",
30
+ "previous_response_not_found",
31
+ ];
32
+ const DEFAULT_PROCESS_MAX_SOCKETS = 64;
33
+ const DEFAULT_MAX_SOCKETS_PER_PROVIDER = 32;
34
+ const DEFAULT_MAX_CONNECTING = 8;
35
+ const DEFAULT_PREWARM_MAX_CONNECTING = 2;
36
+ const DEFAULT_PREWARM_DEMAND_RESERVE = 1;
37
+ const DEFAULT_CONNECT_RATE_PROCESS = 240;
38
+ const DEFAULT_CONNECT_RATE_PROVIDER = 120;
39
+ const DEFAULT_CONNECT_RATE_ORIGIN = 120;
40
+ const DEFAULT_CONNECT_RATE_ACCOUNT = 60;
41
+ const DEFAULT_MAX_ACCOUNTING_ENTRIES = 4096;
42
+ const DEFAULT_QUEUE_MAX_BYTES_PER_STREAM = 16 * 1024 * 1024;
43
+ const DEFAULT_QUEUE_MAX_BYTES_TOTAL = 256 * 1024 * 1024;
44
+ const LAG_SAMPLE_INTERVAL_MS = 5_000;
45
+ function createHistogram(bounds) {
46
+ return { bounds, counts: Array(bounds.length + 1).fill(0) };
47
+ }
48
+ function observeHistogram(histogram, value) {
49
+ const index = histogram.bounds.findIndex((bound) => value <= bound);
50
+ histogram.counts[index < 0 ? histogram.bounds.length : index]++;
51
+ }
52
+ function histogramSnapshot(histogram) {
53
+ return { bounds: [...histogram.bounds], counts: [...histogram.counts] };
54
+ }
55
+ function zeroReasonMap(keys) {
56
+ return Object.fromEntries(keys.map((key) => [key, 0]));
57
+ }
58
+ function bytesToMb(bytes) {
59
+ return Math.round((bytes / (1024 * 1024)) * 10) / 10;
60
+ }
61
+ function nsToMs(ns) {
62
+ return Math.round(ns / 10_000) / 100;
63
+ }
64
+ function defaultRssMb() {
65
+ return bytesToMb(process.memoryUsage().rss);
66
+ }
67
+ export function canonicalWebSocketOrigin(raw) {
68
+ const url = new URL(raw);
69
+ if (url.protocol === "ws:")
70
+ url.protocol = "http:";
71
+ if (url.protocol === "wss:")
72
+ url.protocol = "https:";
73
+ return url.origin;
74
+ }
75
+ export class TransportCoordinator {
76
+ processMaxSockets;
77
+ maxSocketsPerProvider;
78
+ maxSocketsPerAccount;
79
+ maxConnecting;
80
+ prewarmMaxConnecting;
81
+ prewarmDemandReserve;
82
+ maxAccountingEntries;
83
+ queueMaxBytesPerStream;
84
+ queueMaxBytesTotal;
85
+ maxSessions;
86
+ eventLoopLagMs;
87
+ rssMb;
88
+ breaker;
89
+ now;
90
+ getRssMb;
91
+ getEventLoopLagMs;
92
+ rateLimits;
93
+ physicalSockets = 0;
94
+ connecting = 0;
95
+ prewarming = 0;
96
+ sessions = 0;
97
+ queuedInboundBytes = 0;
98
+ queuedInboundMessages = 0;
99
+ queueOverflows = 0;
100
+ providerQueues = {
101
+ codex: { bytes: 0, messages: 0 },
102
+ openai: { bytes: 0, messages: 0 },
103
+ };
104
+ providerSockets = { codex: 0, openai: 0 };
105
+ accountSockets = new Map();
106
+ rateWindows = new Map();
107
+ streamQueues = new Map();
108
+ finishedPermits = new WeakSet();
109
+ lagMonitor = null;
110
+ lagTimer = null;
111
+ lastLagMs = 0;
112
+ disposed = false;
113
+ counters = {
114
+ leaseAttempts: 0,
115
+ leaseAdmissions: 0,
116
+ admissionMissesByReason: zeroReasonMap(ADMISSION_MISS_REASONS),
117
+ httpByReason: zeroReasonMap(HTTP_REASONS),
118
+ connectAttempts: 0,
119
+ connectSuccesses: 0,
120
+ connectFailures: 0,
121
+ connectTimeouts: 0,
122
+ prewarmAttempts: 0,
123
+ prewarmDeferred: 0,
124
+ prewarmFailures: 0,
125
+ authStaleRejects: 0,
126
+ sessionCooldowns: 0,
127
+ fallbacks: 0,
128
+ maxAgeRetires: 0,
129
+ };
130
+ histograms = {
131
+ handshakeLatencyMs: createHistogram([100, 250, 500, 1_000, 2_500, 5_000]),
132
+ socketLifetimeMs: createHistogram([60_000, 300_000, 900_000, 1_800_000, 2_700_000, 3_000_000, 3_600_000]),
133
+ turnsPerConnection: createHistogram([1, 2, 5, 10, 25, 50, 100]),
134
+ inboundQueueHighWaterBytes: createHistogram([65_536, 262_144, 1_048_576, 4_194_304, 16_777_216]),
135
+ inboundQueueHighWaterMessages: createHistogram([1, 4, 16, 64, 256, 1_024]),
136
+ };
137
+ constructor(opts = {}) {
138
+ this.processMaxSockets = opts.processMaxSockets ?? DEFAULT_PROCESS_MAX_SOCKETS;
139
+ this.maxSocketsPerProvider = opts.maxSocketsPerProvider ?? DEFAULT_MAX_SOCKETS_PER_PROVIDER;
140
+ this.maxSocketsPerAccount = opts.maxSocketsPerAccount ?? 0;
141
+ this.maxConnecting = opts.maxConnecting ?? DEFAULT_MAX_CONNECTING;
142
+ this.prewarmMaxConnecting = opts.prewarmMaxConnecting ?? DEFAULT_PREWARM_MAX_CONNECTING;
143
+ this.prewarmDemandReserve = opts.prewarmDemandReserve ?? DEFAULT_PREWARM_DEMAND_RESERVE;
144
+ this.maxAccountingEntries = opts.maxAccountingEntries ?? DEFAULT_MAX_ACCOUNTING_ENTRIES;
145
+ this.queueMaxBytesPerStream = opts.queueMaxBytesPerStream ?? DEFAULT_QUEUE_MAX_BYTES_PER_STREAM;
146
+ this.queueMaxBytesTotal = opts.queueMaxBytesTotal ?? DEFAULT_QUEUE_MAX_BYTES_TOTAL;
147
+ this.maxSessions = opts.maxSessions ?? 0;
148
+ this.eventLoopLagMs = opts.eventLoopLagMs ?? 0;
149
+ this.rssMb = opts.rssMb ?? 0;
150
+ this.breaker = opts.breaker ?? createTransportBreaker({ maxEntries: this.maxAccountingEntries });
151
+ this.now = opts.now ?? Date.now;
152
+ this.getRssMb = opts.getRssMb ?? defaultRssMb;
153
+ this.rateLimits = {
154
+ process: opts.connectRateProcessPerMin ?? DEFAULT_CONNECT_RATE_PROCESS,
155
+ provider: opts.connectRateProviderPerMin ?? DEFAULT_CONNECT_RATE_PROVIDER,
156
+ origin: opts.connectRateOriginPerMin ?? DEFAULT_CONNECT_RATE_ORIGIN,
157
+ account: opts.connectRateAccountPerMin ?? DEFAULT_CONNECT_RATE_ACCOUNT,
158
+ };
159
+ if (opts.getEventLoopLagMs) {
160
+ this.getEventLoopLagMs = opts.getEventLoopLagMs;
161
+ }
162
+ else if (this.eventLoopLagMs > 0) {
163
+ const monitor = monitorEventLoopDelay({ resolution: 20 });
164
+ monitor.enable();
165
+ this.lagMonitor = monitor;
166
+ const sample = () => {
167
+ this.lastLagMs = nsToMs(monitor.percentile(99));
168
+ monitor.reset();
169
+ };
170
+ sample();
171
+ const timer = setInterval(sample, LAG_SAMPLE_INTERVAL_MS);
172
+ timer.unref?.();
173
+ this.lagTimer = timer;
174
+ this.getEventLoopLagMs = () => this.lastLagMs;
175
+ }
176
+ else {
177
+ this.getEventLoopLagMs = () => 0;
178
+ }
179
+ }
180
+ dispose() {
181
+ if (this.disposed)
182
+ return;
183
+ this.disposed = true;
184
+ if (this.lagTimer) {
185
+ clearInterval(this.lagTimer);
186
+ this.lagTimer = null;
187
+ }
188
+ if (this.lagMonitor) {
189
+ try {
190
+ this.lagMonitor.disable();
191
+ }
192
+ catch {
193
+ /* ignore */
194
+ }
195
+ this.lagMonitor = null;
196
+ }
197
+ }
198
+ memoryBlocked() {
199
+ if (this.eventLoopLagMs > 0 && this.getEventLoopLagMs() >= this.eventLoopLagMs)
200
+ return true;
201
+ if (this.rssMb > 0 && this.getRssMb() >= this.rssMb)
202
+ return true;
203
+ if (this.maxSessions > 0 && this.sessions >= this.maxSessions)
204
+ return true;
205
+ return false;
206
+ }
207
+ boundMap(map) {
208
+ while (map.size > this.maxAccountingEntries) {
209
+ const key = map.keys().next().value;
210
+ if (key === undefined)
211
+ break;
212
+ map.delete(key);
213
+ }
214
+ }
215
+ reserveSocket(input) {
216
+ if (this.memoryBlocked())
217
+ return { ok: false, reason: "memory_guard" };
218
+ const reserve = input.intent === "prewarm" ? this.prewarmDemandReserve : 0;
219
+ if (this.physicalSockets >= this.processMaxSockets - reserve) {
220
+ return { ok: false, reason: "process_cap" };
221
+ }
222
+ if (this.maxSocketsPerProvider > 0 && this.providerSockets[input.provider] >= this.maxSocketsPerProvider) {
223
+ return { ok: false, reason: "provider_cap" };
224
+ }
225
+ const accountCount = this.accountSockets.get(input.accountFp) || 0;
226
+ if (this.maxSocketsPerAccount > 0 && accountCount >= this.maxSocketsPerAccount) {
227
+ return { ok: false, reason: "account_cap" };
228
+ }
229
+ if (accountCount === 0 && this.accountSockets.size >= this.maxAccountingEntries) {
230
+ return { ok: false, reason: "queue_overflow" };
231
+ }
232
+ this.physicalSockets++;
233
+ this.providerSockets[input.provider]++;
234
+ this.accountSockets.set(input.accountFp, accountCount + 1);
235
+ return { ok: true, reason: "admitted" };
236
+ }
237
+ releaseSocket(input) {
238
+ this.physicalSockets = Math.max(0, this.physicalSockets - 1);
239
+ this.providerSockets[input.provider] = Math.max(0, this.providerSockets[input.provider] - 1);
240
+ const next = (this.accountSockets.get(input.accountFp) || 0) - 1;
241
+ if (next > 0)
242
+ this.accountSockets.set(input.accountFp, next);
243
+ else
244
+ this.accountSockets.delete(input.accountFp);
245
+ }
246
+ pruneWindow(key, now) {
247
+ const values = this.rateWindows.get(key);
248
+ if (!values)
249
+ return [];
250
+ const cutoff = now - 60_000;
251
+ while (values.length && values[0] <= cutoff)
252
+ values.shift();
253
+ if (!values.length)
254
+ this.rateWindows.delete(key);
255
+ return values;
256
+ }
257
+ rateBlock(scopes, now) {
258
+ for (const [key, limit] of scopes) {
259
+ if (limit > 0 && this.pruneWindow(key, now).length >= limit)
260
+ return true;
261
+ }
262
+ return false;
263
+ }
264
+ recordRates(scopes, now) {
265
+ for (const [key, limit] of scopes) {
266
+ if (limit <= 0)
267
+ continue;
268
+ const values = this.pruneWindow(key, now);
269
+ values.push(now);
270
+ this.rateWindows.set(key, values);
271
+ }
272
+ this.boundRateWindows(now);
273
+ }
274
+ boundRateWindows(now) {
275
+ if (this.rateWindows.size <= this.maxAccountingEntries)
276
+ return;
277
+ for (const key of [...this.rateWindows.keys()]) {
278
+ this.pruneWindow(key, now);
279
+ if (this.rateWindows.size <= this.maxAccountingEntries)
280
+ return;
281
+ }
282
+ this.boundMap(this.rateWindows);
283
+ }
284
+ startConnect(input) {
285
+ const reserve = input.intent === "prewarm" ? this.prewarmDemandReserve : 0;
286
+ if (this.connecting >= this.maxConnecting - reserve)
287
+ return { ok: false, reason: "connect_cap" };
288
+ if (input.intent === "prewarm" && this.prewarming >= this.prewarmMaxConnecting) {
289
+ return { ok: false, reason: "connect_cap" };
290
+ }
291
+ const now = this.now();
292
+ const scopes = [
293
+ ["process", this.rateLimits.process],
294
+ [`provider:${input.provider}`, this.rateLimits.provider],
295
+ [`origin:${input.origin}`, this.rateLimits.origin],
296
+ [`account:${input.accountFp}`, this.rateLimits.account],
297
+ ];
298
+ if (this.rateBlock(scopes, now))
299
+ return { ok: false, reason: "handshake_rate" };
300
+ const breakerDecision = this.breaker.allow(input.scopeKey);
301
+ if (!breakerDecision.allowed)
302
+ return { ok: false, reason: "provider_breaker" };
303
+ this.recordRates(scopes, now);
304
+ this.counters.connectAttempts++;
305
+ this.connecting++;
306
+ if (input.intent === "prewarm")
307
+ this.prewarming++;
308
+ const permit = {
309
+ scopeKey: input.scopeKey,
310
+ intent: input.intent,
311
+ startedAt: now,
312
+ };
313
+ if (breakerDecision.probeToken !== undefined)
314
+ permit.probeToken = breakerDecision.probeToken;
315
+ return { ok: true, permit };
316
+ }
317
+ finishConnect(permit, result) {
318
+ if (this.finishedPermits.has(permit))
319
+ return;
320
+ this.finishedPermits.add(permit);
321
+ this.connecting = Math.max(0, this.connecting - 1);
322
+ if (permit.intent === "prewarm")
323
+ this.prewarming = Math.max(0, this.prewarming - 1);
324
+ observeHistogram(this.histograms.handshakeLatencyMs, Math.max(0, this.now() - permit.startedAt));
325
+ if (result.success) {
326
+ this.counters.connectSuccesses++;
327
+ this.breaker.recordSuccess(permit.scopeKey, permit.probeToken);
328
+ return;
329
+ }
330
+ this.counters.connectFailures++;
331
+ if (result.timeout)
332
+ this.counters.connectTimeouts++;
333
+ if (permit.intent === "prewarm")
334
+ this.counters.prewarmFailures++;
335
+ this.breaker.recordFailure(permit.scopeKey, {
336
+ eligible: result.breakerEligible === true,
337
+ token: permit.probeToken,
338
+ });
339
+ }
340
+ adjustQueue(input) {
341
+ const current = this.streamQueues.get(input.streamKey);
342
+ if (!current && input.bytes > 0 && this.streamQueues.size >= this.maxAccountingEntries) {
343
+ this.queueOverflows++;
344
+ return false;
345
+ }
346
+ const baseline = current || { bytes: 0, messages: 0, provider: input.provider };
347
+ if (input.bytes > 0) {
348
+ if (baseline.bytes + input.bytes > this.queueMaxBytesPerStream) {
349
+ this.queueOverflows++;
350
+ return false;
351
+ }
352
+ if (this.queuedInboundBytes + input.bytes > this.queueMaxBytesTotal) {
353
+ this.queueOverflows++;
354
+ return false;
355
+ }
356
+ }
357
+ const nextBytes = Math.max(0, baseline.bytes + input.bytes);
358
+ const nextMessages = Math.max(0, baseline.messages + input.messages);
359
+ if (nextBytes === 0 && nextMessages === 0)
360
+ this.streamQueues.delete(input.streamKey);
361
+ else {
362
+ this.streamQueues.set(input.streamKey, {
363
+ bytes: nextBytes,
364
+ messages: nextMessages,
365
+ provider: input.provider,
366
+ });
367
+ }
368
+ this.queuedInboundBytes = Math.max(0, this.queuedInboundBytes + input.bytes);
369
+ this.queuedInboundMessages = Math.max(0, this.queuedInboundMessages + input.messages);
370
+ const queue = this.providerQueues[input.provider];
371
+ queue.bytes = Math.max(0, queue.bytes + input.bytes);
372
+ queue.messages = Math.max(0, queue.messages + input.messages);
373
+ if (input.bytes > 0) {
374
+ observeHistogram(this.histograms.inboundQueueHighWaterBytes, this.queuedInboundBytes);
375
+ observeHistogram(this.histograms.inboundQueueHighWaterMessages, this.queuedInboundMessages);
376
+ }
377
+ return true;
378
+ }
379
+ releaseAccounting(streamKey) {
380
+ const current = this.streamQueues.get(streamKey);
381
+ if (!current)
382
+ return;
383
+ this.queuedInboundBytes = Math.max(0, this.queuedInboundBytes - current.bytes);
384
+ this.queuedInboundMessages = Math.max(0, this.queuedInboundMessages - current.messages);
385
+ const queue = this.providerQueues[current.provider];
386
+ queue.bytes = Math.max(0, queue.bytes - current.bytes);
387
+ queue.messages = Math.max(0, queue.messages - current.messages);
388
+ this.streamQueues.delete(streamKey);
389
+ }
390
+ resetAccounting() {
391
+ this.streamQueues.clear();
392
+ this.queuedInboundBytes = 0;
393
+ this.queuedInboundMessages = 0;
394
+ this.queueOverflows = 0;
395
+ this.providerQueues.codex = { bytes: 0, messages: 0 };
396
+ this.providerQueues.openai = { bytes: 0, messages: 0 };
397
+ }
398
+ adjustSessions(delta) {
399
+ this.sessions = Math.max(0, this.sessions + delta);
400
+ }
401
+ noteLeaseAttempt() {
402
+ this.counters.leaseAttempts++;
403
+ }
404
+ noteLeaseAdmission() {
405
+ this.counters.leaseAdmissions++;
406
+ }
407
+ noteAdmissionMiss(reason) {
408
+ if (reason in this.counters.admissionMissesByReason) {
409
+ this.counters.admissionMissesByReason[reason]++;
410
+ }
411
+ }
412
+ noteFallback(reason) {
413
+ this.counters.fallbacks++;
414
+ if (reason in this.counters.httpByReason) {
415
+ this.counters.httpByReason[reason]++;
416
+ }
417
+ }
418
+ noteAuthStale() {
419
+ this.counters.authStaleRejects++;
420
+ this.noteAdmissionMiss("stale_auth");
421
+ }
422
+ noteCooldown() {
423
+ this.counters.sessionCooldowns++;
424
+ }
425
+ notePrewarmAttempt() {
426
+ this.counters.prewarmAttempts++;
427
+ }
428
+ notePrewarmDeferred() {
429
+ this.counters.prewarmDeferred++;
430
+ }
431
+ noteMaxAgeRetire() {
432
+ this.counters.maxAgeRetires++;
433
+ }
434
+ noteSocketClosed(lifetimeMs, turns) {
435
+ observeHistogram(this.histograms.socketLifetimeMs, Math.max(0, lifetimeMs));
436
+ observeHistogram(this.histograms.turnsPerConnection, Math.max(0, turns));
437
+ }
438
+ sweep() {
439
+ const now = this.now();
440
+ for (const key of [...this.rateWindows.keys()])
441
+ this.pruneWindow(key, now);
442
+ this.breaker.sweep();
443
+ }
444
+ snapshot() {
445
+ return {
446
+ physicalSockets: this.physicalSockets,
447
+ connecting: this.connecting,
448
+ prewarming: this.prewarming,
449
+ sessions: this.sessions,
450
+ accountEntries: this.accountSockets.size,
451
+ rateEntries: this.rateWindows.size,
452
+ queuedInboundBytes: this.queuedInboundBytes,
453
+ queuedInboundMessages: this.queuedInboundMessages,
454
+ queueOverflows: this.queueOverflows,
455
+ providerQueues: {
456
+ codex: { ...this.providerQueues.codex },
457
+ openai: { ...this.providerQueues.openai },
458
+ },
459
+ counters: {
460
+ ...this.counters,
461
+ admissionMissesByReason: { ...this.counters.admissionMissesByReason },
462
+ httpByReason: { ...this.counters.httpByReason },
463
+ },
464
+ distributions: {
465
+ handshakeLatencyMs: histogramSnapshot(this.histograms.handshakeLatencyMs),
466
+ socketLifetimeMs: histogramSnapshot(this.histograms.socketLifetimeMs),
467
+ turnsPerConnection: histogramSnapshot(this.histograms.turnsPerConnection),
468
+ inboundQueueHighWaterBytes: histogramSnapshot(this.histograms.inboundQueueHighWaterBytes),
469
+ inboundQueueHighWaterMessages: histogramSnapshot(this.histograms.inboundQueueHighWaterMessages),
470
+ },
471
+ breaker: this.breaker.snapshot(),
472
+ };
473
+ }
474
+ }
475
+ export function defaultTransportCoordinatorOptions() {
476
+ return {
477
+ processMaxSockets: DEFAULT_PROCESS_MAX_SOCKETS,
478
+ maxSocketsPerProvider: DEFAULT_MAX_SOCKETS_PER_PROVIDER,
479
+ maxConnecting: DEFAULT_MAX_CONNECTING,
480
+ prewarmMaxConnecting: DEFAULT_PREWARM_MAX_CONNECTING,
481
+ prewarmDemandReserve: DEFAULT_PREWARM_DEMAND_RESERVE,
482
+ connectRateProcessPerMin: DEFAULT_CONNECT_RATE_PROCESS,
483
+ connectRateProviderPerMin: DEFAULT_CONNECT_RATE_PROVIDER,
484
+ connectRateOriginPerMin: DEFAULT_CONNECT_RATE_ORIGIN,
485
+ connectRateAccountPerMin: DEFAULT_CONNECT_RATE_ACCOUNT,
486
+ maxAccountingEntries: DEFAULT_MAX_ACCOUNTING_ENTRIES,
487
+ queueMaxBytesPerStream: DEFAULT_QUEUE_MAX_BYTES_PER_STREAM,
488
+ queueMaxBytesTotal: DEFAULT_QUEUE_MAX_BYTES_TOTAL,
489
+ };
490
+ }
491
+ let singleton;
492
+ export function getTransportCoordinator() {
493
+ if (!singleton)
494
+ singleton = new TransportCoordinator(defaultTransportCoordinatorOptions());
495
+ return singleton;
496
+ }
497
+ export function configureTransportCoordinator(options) {
498
+ singleton?.dispose();
499
+ singleton = new TransportCoordinator({ ...defaultTransportCoordinatorOptions(), ...options });
500
+ return singleton;
501
+ }
502
+ export function resetTransportCoordinatorForTesting() {
503
+ singleton?.dispose();
504
+ singleton = undefined;
505
+ }
506
+ //# sourceMappingURL=coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../src/transport/coordinator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export declare const TRANSPORT_ERROR_CODES: readonly ["session_busy", "session_cooldown", "provider_breaker", "provider_cap", "process_cap", "account_cap", "connect_cap", "handshake_rate", "memory_guard", "connect_failure", "handshake_timeout", "stale_auth", "queue_overflow", "active_socket_loss", "provider_connection_limit", "previous_response_not_found"];
2
+ export type TransportErrorCode = (typeof TRANSPORT_ERROR_CODES)[number];
3
+ export type TransportErrorPhase = "admission" | "handshake" | "pre_send" | "active";
4
+ export type WebSocketTransportErrorOptions = {
5
+ code: TransportErrorCode;
6
+ phase: TransportErrorPhase;
7
+ message: string;
8
+ fallbackEligible: boolean;
9
+ breakerEligible: boolean;
10
+ safeToReplay: boolean;
11
+ cause?: unknown;
12
+ };
13
+ export declare class WebSocketTransportError extends Error {
14
+ readonly code: TransportErrorCode;
15
+ readonly phase: TransportErrorPhase;
16
+ readonly fallbackEligible: boolean;
17
+ readonly breakerEligible: boolean;
18
+ readonly safeToReplay: boolean;
19
+ readonly cause?: unknown;
20
+ constructor(options: WebSocketTransportErrorOptions);
21
+ }
22
+ export declare function isWebSocketTransportError(value: unknown): value is WebSocketTransportError;
23
+ export declare function isTransportFallbackEligible(value: unknown): boolean;
24
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/transport/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,4TAiBxB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvE,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAA;AAEnF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,EAAE,mBAAmB,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,OAAO,CAAA;IACzB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAQD,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;gBAEZ,OAAO,EAAE,8BAA8B;CAUpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,uBAAuB,CAE1F;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEnE"}
@@ -0,0 +1,49 @@
1
+ export const TRANSPORT_ERROR_CODES = [
2
+ "session_busy",
3
+ "session_cooldown",
4
+ "provider_breaker",
5
+ "provider_cap",
6
+ "process_cap",
7
+ "account_cap",
8
+ "connect_cap",
9
+ "handshake_rate",
10
+ "memory_guard",
11
+ "connect_failure",
12
+ "handshake_timeout",
13
+ "stale_auth",
14
+ "queue_overflow",
15
+ "active_socket_loss",
16
+ "provider_connection_limit",
17
+ "previous_response_not_found",
18
+ ];
19
+ function redactSecrets(message) {
20
+ return message
21
+ .replace(/Bearer\s+\S+/gi, "Bearer [redacted]")
22
+ .replace(/\bsk-[A-Za-z0-9_-]+\b/g, "[redacted]");
23
+ }
24
+ export class WebSocketTransportError extends Error {
25
+ code;
26
+ phase;
27
+ fallbackEligible;
28
+ breakerEligible;
29
+ safeToReplay;
30
+ cause;
31
+ constructor(options) {
32
+ super(redactSecrets(options.message));
33
+ this.name = "WebSocketTransportError";
34
+ this.code = options.code;
35
+ this.phase = options.phase;
36
+ this.fallbackEligible = options.fallbackEligible;
37
+ this.breakerEligible = options.breakerEligible;
38
+ this.safeToReplay = options.safeToReplay;
39
+ if (options.cause !== undefined)
40
+ this.cause = options.cause;
41
+ }
42
+ }
43
+ export function isWebSocketTransportError(value) {
44
+ return value instanceof WebSocketTransportError;
45
+ }
46
+ export function isTransportFallbackEligible(value) {
47
+ return isWebSocketTransportError(value) && value.fallbackEligible;
48
+ }
49
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/transport/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,aAAa;IACb,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,YAAY;IACZ,gBAAgB;IAChB,oBAAoB;IACpB,2BAA2B;IAC3B,6BAA6B;CACrB,CAAA;AAgBV,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,OAAO;SACX,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;SAC9C,OAAO,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,IAAI,CAAoB;IACxB,KAAK,CAAqB;IAC1B,gBAAgB,CAAS;IACzB,eAAe,CAAS;IACxB,YAAY,CAAS;IACrB,KAAK,CAAU;IAExB,YAAY,OAAuC;QACjD,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAA;QAChD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACxC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC7D,CAAC;CACF;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,OAAO,KAAK,YAAY,uBAAuB,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,OAAO,yBAAyB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAA;AACnE,CAAC"}
@@ -5,7 +5,7 @@ export type TransportContext = {
5
5
  stablePrefixHash?: string;
6
6
  };
7
7
  export declare function apiKeyWebSocketHeaders(apiKey: string): Record<string, string>;
8
- export declare function oauthWebSocketHeaders(accessToken: string, accountId?: string): Record<string, string>;
8
+ export declare function oauthWebSocketHeaders(accessToken: string, accountId?: string, clientVersion?: string): Record<string, string>;
9
9
  export declare function httpAuthHeaders(baseHeaders: HeadersInit | undefined, auth: {
10
10
  type: "api";
11
11
  apiKey: string;
@@ -13,7 +13,7 @@ export declare function httpAuthHeaders(baseHeaders: HeadersInit | undefined, au
13
13
  type: "oauth";
14
14
  accessToken: string;
15
15
  accountId?: string;
16
- }): Headers;
16
+ }, codexVersion?: string): Headers;
17
17
  export declare function transportIdentity(auth: {
18
18
  type: "api";
19
19
  apiKey: string;
@@ -21,7 +21,7 @@ export declare function transportIdentity(auth: {
21
21
  type: "oauth";
22
22
  accessToken: string;
23
23
  accountId?: string;
24
- }): {
24
+ }, codexVersion?: string): {
25
25
  isOAuth: boolean;
26
26
  wsUrl: string;
27
27
  wsHeaders: Record<string, string>;
@@ -1 +1 @@
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
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../src/transport/headers.ts"],"names":[],"mappings":"AAeA,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;AAsCD,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,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7H;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,EAClG,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAeT;AAED,wBAAgB,iBAAiB,CAC/B,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,EAClG,YAAY,CAAC,EAAE,MAAM;;;;EActB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,gBAAgB,GAAG;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,CAa3G"}