openai-ws-opencode 0.1.6 → 0.1.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAyDxD,QAAA,MAAM,qBAAqB,EAAE,MA0G5B,CAAA;AAED,eAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAyDxD,QAAA,MAAM,qBAAqB,EAAE,MA6G5B,CAAA;AAED,eAAe,qBAAqB,CAAA"}
package/dist/plugin.js CHANGED
@@ -5,7 +5,7 @@ import { extractAccountId, refreshAccessToken, tokenExpiry } from "./auth/tokens
5
5
  import { resolveModelsBestEffort } from "./models/resolve.js";
6
6
  import { prepareHttpFallbackBody } from "./transport/body.js";
7
7
  import { bridgeWebSocket } from "./transport/bridge.js";
8
- import { closeConnections } from "./transport/pool.js";
8
+ import { closeConnections, ensureWarmConnection } from "./transport/pool.js";
9
9
  import { extractTransportContext, httpAuthHeaders, transportIdentity } from "./transport/headers.js";
10
10
  function stableHash(value) {
11
11
  return crypto.createHash("sha256").update(JSON.stringify(value ?? "")).digest("hex").slice(0, 32);
@@ -65,6 +65,7 @@ const OpenAIWebSocketPlugin = async ({ client }) => {
65
65
  if (auth?.type === "api" && auth.key) {
66
66
  const apiKey = auth.key;
67
67
  const identity = transportIdentity({ type: "api", apiKey });
68
+ ensureWarmConnection(identity.wsUrl, identity.wsHeaders);
68
69
  return {
69
70
  apiKey,
70
71
  baseURL: OPENAI_API_BASE,
@@ -95,6 +96,8 @@ const OpenAIWebSocketPlugin = async ({ client }) => {
95
96
  }
96
97
  if (auth?.type === "oauth") {
97
98
  const initialAuth = await resolveOAuthAuth(auth, client);
99
+ const initialIdentity = transportIdentity({ type: "oauth", accessToken: initialAuth.accessToken, accountId: initialAuth.accountId });
100
+ ensureWarmConnection(initialIdentity.wsUrl, initialIdentity.wsHeaders);
98
101
  return {
99
102
  apiKey: initialAuth.accessToken,
100
103
  baseURL: CODEX_API_BASE,
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/dist/testing.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export { oauthTesting } from "./auth/oauth.js";
2
2
  export { prepareBody, prepareHttpFallbackBody } from "./transport/body.js";
3
3
  export { apiKeyWebSocketHeaders, oauthWebSocketHeaders, extractTransportContext, transportIdentity } from "./transport/headers.js";
4
- export { connectionPool, readyState, resetPoolForTesting, resetWebSocketConstructorForTesting, setWebSocketConstructorForTesting, } from "./transport/pool.js";
4
+ export { connectionPool, readyState, ensureWarmConnection, resetPoolForTesting, resetWebSocketConstructorForTesting, setWebSocketConstructorForTesting, } from "./transport/pool.js";
5
5
  export { bridgeWebSocket } from "./transport/bridge.js";
6
6
  export { resolveModels, resolveModelsBestEffort, resolveModelsFromCatalog, providerConfig } from "./models/resolve.js";
7
+ export { transportConfig } from "./transport/config.js";
7
8
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAClI,OAAO,EACL,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,mCAAmC,EACnC,iCAAiC,GAClC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAClI,OAAO,EACL,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,mCAAmC,EACnC,iCAAiC,GAClC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACtH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA"}
package/dist/testing.js CHANGED
@@ -1,7 +1,8 @@
1
1
  export { oauthTesting } from "./auth/oauth.js";
2
2
  export { prepareBody, prepareHttpFallbackBody } from "./transport/body.js";
3
3
  export { apiKeyWebSocketHeaders, oauthWebSocketHeaders, extractTransportContext, transportIdentity } from "./transport/headers.js";
4
- export { connectionPool, readyState, resetPoolForTesting, resetWebSocketConstructorForTesting, setWebSocketConstructorForTesting, } from "./transport/pool.js";
4
+ export { connectionPool, readyState, ensureWarmConnection, resetPoolForTesting, resetWebSocketConstructorForTesting, setWebSocketConstructorForTesting, } from "./transport/pool.js";
5
5
  export { bridgeWebSocket } from "./transport/bridge.js";
6
6
  export { resolveModels, resolveModelsBestEffort, resolveModelsFromCatalog, providerConfig } from "./models/resolve.js";
7
+ export { transportConfig } from "./transport/config.js";
7
8
  //# sourceMappingURL=testing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAClI,OAAO,EACL,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,mCAAmC,EACnC,iCAAiC,GAClC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAClI,OAAO,EACL,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,mCAAmC,EACnC,iCAAiC,GAClC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACtH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/transport/bridge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAkBpD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,gBAAqB,EAC9B,MAAM,CAAC,EAAE,WAAW,GACnB,QAAQ,CAsDV"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/transport/bridge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAmBpD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,gBAAqB,EAC9B,MAAM,CAAC,EAAE,WAAW,GACnB,QAAQ,CA0EV"}
@@ -16,11 +16,12 @@ function abortPending(conn, error) {
16
16
  }
17
17
  catch { }
18
18
  conn.pending = null;
19
- closeConnections((candidate) => candidate === conn);
19
+ conn.busy = false;
20
+ closeConnections((candidate) => candidate === conn, "Client aborted");
20
21
  }
21
22
  export function bridgeWebSocket(wsUrl, headers, requestBody, isOAuth, context = {}, signal) {
22
23
  const wsBody = prepareBody(requestBody, isOAuth);
23
- const conn = acquireConnection(wsUrl, headers, context);
24
+ let conn;
24
25
  let finalized = false;
25
26
  const cleanupAbort = () => {
26
27
  if (signal)
@@ -31,35 +32,57 @@ export function bridgeWebSocket(wsUrl, headers, requestBody, isOAuth, context =
31
32
  return;
32
33
  finalized = true;
33
34
  cleanupAbort();
34
- abortPending(conn, signal?.reason instanceof Error ? signal.reason : new DOMException("Aborted", "AbortError"));
35
+ if (conn)
36
+ abortPending(conn, signal?.reason instanceof Error ? signal.reason : new DOMException("Aborted", "AbortError"));
37
+ };
38
+ const startStream = (controller, acquired) => {
39
+ conn = acquired;
40
+ if (finalized || signal?.aborted) {
41
+ abortPending(conn, signal?.reason instanceof Error ? signal.reason : new DOMException("Aborted", "AbortError"));
42
+ return;
43
+ }
44
+ conn.activeSessionID = context.sessionID;
45
+ conn.activeAgent = context.agent;
46
+ conn.lastModelID = context.modelID ?? conn.lastModelID;
47
+ conn.lastStablePrefixHash = context.stablePrefixHash ?? conn.lastStablePrefixHash;
48
+ conn.pending = {
49
+ body: wsBody,
50
+ controller,
51
+ done: false,
52
+ sent: false,
53
+ forwarded: false,
54
+ replayUnsafeForwarded: false,
55
+ frameCount: 0,
56
+ metadata: {},
57
+ };
58
+ sendPending(conn);
35
59
  };
36
60
  const readable = new ReadableStream({
37
61
  start(controller) {
38
- conn.activeSessionID = context.sessionID;
39
- conn.activeAgent = context.agent;
40
- conn.lastModelID = context.modelID ?? conn.lastModelID;
41
- conn.lastStablePrefixHash = context.stablePrefixHash ?? conn.lastStablePrefixHash;
42
- conn.pending = {
43
- body: wsBody,
44
- controller,
45
- done: false,
46
- sent: false,
47
- forwarded: false,
48
- };
49
62
  if (signal?.aborted) {
50
- onAbort();
63
+ controller.error(signal.reason instanceof Error ? signal.reason : new DOMException("Aborted", "AbortError"));
51
64
  return;
52
65
  }
53
66
  if (signal)
54
67
  signal.addEventListener("abort", onAbort, { once: true });
55
- sendPending(conn);
68
+ const acquired = acquireConnection(wsUrl, headers, context, signal);
69
+ if (acquired instanceof Promise) {
70
+ acquired.then((next) => startStream(controller, next)).catch((error) => {
71
+ finalized = true;
72
+ cleanupAbort();
73
+ controller.error(error instanceof Error ? error : new Error(String(error)));
74
+ });
75
+ return;
76
+ }
77
+ startStream(controller, acquired);
56
78
  },
57
79
  cancel() {
58
80
  if (finalized)
59
81
  return;
60
82
  finalized = true;
61
83
  cleanupAbort();
62
- abortPending(conn, new DOMException("Aborted", "AbortError"));
84
+ if (conn)
85
+ abortPending(conn, new DOMException("Aborted", "AbortError"));
63
86
  },
64
87
  });
65
88
  return new Response(readable, {
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/transport/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/transport/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAyB,MAAM,WAAW,CAAA;AAGnG,SAAS,YAAY,CAAC,IAAsB,EAAE,KAAY;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI;QAAE,OAAM;IACpC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;IACnB,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;QAC3D,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACjB,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,EAAE,gBAAgB,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,OAA+B,EAC/B,WAAoC,EACpC,OAAgB,EAChB,UAA4B,EAAE,EAC9B,MAAoB;IAEpB,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAChD,IAAI,IAAkC,CAAA;IACtC,IAAI,SAAS,GAAG,KAAK,CAAA;IAErB,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,MAAM;YAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,SAAS;YAAE,OAAM;QACrB,SAAS,GAAG,IAAI,CAAA;QAChB,YAAY,EAAE,CAAA;QACd,IAAI,IAAI;YAAE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;IAC3H,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,UAAuD,EAAE,QAA0B,EAAE,EAAE;QAC1G,IAAI,GAAG,QAAQ,CAAA;QACf,IAAI,SAAS,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;YAC/G,OAAM;QACR,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,SAAS,CAAA;QACxC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAA;QACtD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,oBAAoB,CAAA;QACjF,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,MAAM;YACZ,UAAU;YACV,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,KAAK;YAChB,qBAAqB,EAAE,KAAK;YAC5B,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,EAAE;SACb,CAAA;QACD,WAAW,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAa;QAC9C,KAAK,CAAC,UAAU;YACd,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;gBAC5G,OAAM;YACR,CAAC;YACD,IAAI,MAAM;gBAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YACrE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;YACnE,IAAI,QAAQ,YAAY,OAAO,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrE,SAAS,GAAG,IAAI,CAAA;oBAChB,YAAY,EAAE,CAAA;oBACd,UAAU,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC7E,CAAC,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YACD,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACnC,CAAC;QACD,MAAM;YACJ,IAAI,SAAS;gBAAE,OAAM;YACrB,SAAS,GAAG,IAAI,CAAA;YAChB,YAAY,EAAE,CAAA;YACd,IAAI,IAAI;gBAAE,YAAY,CAAC,IAAI,EAAE,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;QACzE,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACP,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,UAAU;YAC3B,UAAU,EAAE,YAAY;YACxB,cAAc,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE;SACnC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const transportConfig: {
2
+ connectTimeoutMs: number;
3
+ maxReconnectAttempts: number;
4
+ reconnectBaseDelayMs: number;
5
+ reconnectMaxDelayMs: number;
6
+ idleEvictMs: number;
7
+ staleReuseMs: number;
8
+ heartbeatIntervalMs: number;
9
+ pongTimeoutMs: number;
10
+ maxConnectionsPerScope: number;
11
+ connectionMaxAgeMs: number;
12
+ };
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/transport/config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;CAW3B,CAAA"}
@@ -0,0 +1,13 @@
1
+ export const transportConfig = {
2
+ connectTimeoutMs: 10_000,
3
+ maxReconnectAttempts: 3,
4
+ reconnectBaseDelayMs: 100,
5
+ reconnectMaxDelayMs: 2_000,
6
+ idleEvictMs: 120_000,
7
+ staleReuseMs: 60_000,
8
+ heartbeatIntervalMs: 30_000,
9
+ pongTimeoutMs: 10_000,
10
+ maxConnectionsPerScope: 4,
11
+ connectionMaxAgeMs: 55 * 60 * 1000,
12
+ };
13
+ //# sourceMappingURL=config.js.map
@@ -0,0 +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"}
@@ -13,19 +13,34 @@ type WebSocketLike = {
13
13
  type WebSocketConstructor = new (url: string, options: {
14
14
  headers: Record<string, string>;
15
15
  }) => WebSocketLike;
16
+ type PendingMetadata = {
17
+ responseId?: string;
18
+ model?: string;
19
+ createdAt?: number;
20
+ serviceTier?: unknown;
21
+ usage?: unknown;
22
+ };
16
23
  export interface PendingRequest {
17
24
  body: Record<string, unknown>;
18
25
  controller: ReadableStreamDefaultController<Uint8Array>;
19
26
  done: boolean;
20
27
  sent: boolean;
21
28
  forwarded: boolean;
29
+ replayUnsafeForwarded: boolean;
30
+ frameCount: number;
31
+ lastEventType?: string;
32
+ lastSequenceNumber?: number;
33
+ metadata: PendingMetadata;
22
34
  }
23
35
  export interface PooledConnection {
36
+ id: string;
24
37
  ws: WebSocketLike | null;
25
38
  wsUrl: string;
26
39
  headers: Record<string, string>;
27
40
  scopeKey: string;
41
+ scopeHash: string;
28
42
  busy: boolean;
43
+ warm: boolean;
29
44
  pending: PendingRequest | null;
30
45
  activeSessionID?: string;
31
46
  lastSessionID?: string;
@@ -33,8 +48,10 @@ export interface PooledConnection {
33
48
  lastAgent?: string;
34
49
  lastModelID?: string;
35
50
  lastStablePrefixHash?: string;
51
+ lastResponseID?: string;
36
52
  generation: number;
37
53
  reconnectAttempts: number;
54
+ createdAt: number;
38
55
  lastActivityAt: number;
39
56
  lastCloseCode?: number;
40
57
  lastCloseReason?: string;
@@ -54,8 +71,9 @@ export declare const readyState: {
54
71
  readonly CLOSED: 3;
55
72
  };
56
73
  export declare function sendPending(conn: PooledConnection): boolean;
57
- export declare function acquireConnection(wsUrl: string, headers: Record<string, string>, context: TransportContext): PooledConnection;
58
- export declare function closeConnections(predicate?: (conn: PooledConnection) => boolean): void;
74
+ export declare function acquireConnection(wsUrl: string, headers: Record<string, string>, context: TransportContext, signal?: AbortSignal): PooledConnection | Promise<PooledConnection>;
75
+ export declare function ensureWarmConnection(wsUrl: string, headers: Record<string, string>): PooledConnection | undefined;
76
+ export declare function closeConnections(predicate?: (conn: PooledConnection) => boolean, message?: string): void;
59
77
  export declare function resetPoolForTesting(): void;
60
78
  export declare function setWebSocketConstructorForTesting(ctor: WebSocketConstructor): void;
61
79
  export declare function resetWebSocketConstructorForTesting(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/transport/pool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;IACjB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAA;IAC/D,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAA;IAChE,gBAAgB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAA;IAC7E,mBAAmB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAA;CACjF,CAAA;AAED,KAAK,oBAAoB,GAAG,KAAK,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,KAAK,aAAa,CAAA;AAY5G,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,UAAU,EAAE,+BAA+B,CAAC,UAAU,CAAC,CAAA;IACvD,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,aAAa,GAAG,IAAI,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAA;IAC/C,YAAY,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAA;IAClD,UAAU,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAA;IAChD,cAAc,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAA;IACpD,SAAS,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAA;IAC/C,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAA;CAC5B;AAED,eAAO,MAAM,cAAc,EAAE,gBAAgB,EAAO,CAAA;AAEpD,eAAO,MAAM,UAAU;;;;;CAKb,CAAA;AA8LV,wBAAgB,WAAW,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAc3D;AAqJD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,EAAE,gBAAgB,GACxB,gBAAgB,CAmBlB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAoB,QAK3F;AAED,wBAAgB,mBAAmB,SAOlC;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,oBAAoB,QAE3E;AAED,wBAAgB,mCAAmC,SAElD"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/transport/pool.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,10 @@
1
1
  import crypto from "node:crypto";
2
2
  import WebSocket from "ws";
3
- const DEFAULT_CONNECT_TIMEOUT_MS = 10_000;
4
- const MAX_RECONNECT_ATTEMPTS = 3;
5
- const RECONNECT_DELAY_MS = 100;
6
- const IDLE_EVICT_MS = 120_000;
7
- const STALE_REUSE_MS = 60_000;
8
- const HEARTBEAT_INTERVAL_MS = 30_000;
9
- const PONG_TIMEOUT_MS = 10_000;
3
+ import { transportConfig } from "./config.js";
10
4
  let WebSocketImpl = WebSocket;
11
5
  export const connectionPool = [];
6
+ const acquisitionQueues = new Map();
7
+ let nextConnectionID = 1;
12
8
  export const readyState = {
13
9
  CONNECTING: 0,
14
10
  OPEN: 1,
@@ -27,13 +23,16 @@ function off(ws, event, listener) {
27
23
  else
28
24
  ws.removeEventListener?.(event, listener);
29
25
  }
30
- function scopeKey(wsUrl, headers) {
26
+ function authScopeHash(headers) {
31
27
  const auth = Object.entries(headers)
32
28
  .filter(([key]) => ["authorization", "chatgpt-account-id", "originator", "openai-beta"].includes(key.toLowerCase()))
33
29
  .sort(([a], [b]) => a.localeCompare(b))
34
30
  .map(([key, value]) => `${key}:${value}`)
35
31
  .join("\n");
36
- return `${wsUrl}::${crypto.createHash("sha256").update(auth).digest("hex")}`;
32
+ return crypto.createHash("sha256").update(auth).digest("hex");
33
+ }
34
+ function scopeKey(wsUrl, headers) {
35
+ return `${wsUrl}::${authScopeHash(headers)}`;
37
36
  }
38
37
  function clearTimer(timer) {
39
38
  if (timer)
@@ -71,10 +70,52 @@ function remove(conn) {
71
70
  connectionPool.splice(index, 1);
72
71
  detach(conn);
73
72
  }
73
+ function retryDelay(attempt) {
74
+ const exponential = Math.min(transportConfig.reconnectMaxDelayMs, transportConfig.reconnectBaseDelayMs * 2 ** Math.max(0, attempt - 1));
75
+ return exponential;
76
+ }
77
+ function closeSocket(conn, code, reason) {
78
+ try {
79
+ conn.ws?.terminate?.();
80
+ }
81
+ catch { }
82
+ try {
83
+ conn.ws?.close(code, reason);
84
+ }
85
+ catch { }
86
+ }
87
+ function finishConnection(conn) {
88
+ conn.pending = null;
89
+ conn.activeSessionID = undefined;
90
+ conn.activeAgent = undefined;
91
+ conn.busy = false;
92
+ drainQueue(conn.scopeKey);
93
+ }
94
+ function terminalRelease(conn) {
95
+ release(conn);
96
+ drainQueue(conn.scopeKey);
97
+ }
98
+ function removeAndDrain(conn) {
99
+ remove(conn);
100
+ drainQueue(conn.scopeKey);
101
+ }
102
+ function transportDiagnostics(conn, pending) {
103
+ return {
104
+ message: "WebSocket closed before response completed",
105
+ connectionId: conn.id,
106
+ scopeHash: conn.scopeHash.slice(0, 12),
107
+ sessionId: conn.activeSessionID,
108
+ agent: conn.activeAgent,
109
+ reconnectAttempts: conn.reconnectAttempts,
110
+ closeCode: conn.lastCloseCode ?? null,
111
+ closeReason: conn.lastCloseReason ?? "",
112
+ lastError: conn.lastErrorMessage ?? null,
113
+ frameCount: pending?.frameCount ?? 0,
114
+ lastEventType: pending?.lastEventType,
115
+ };
116
+ }
74
117
  function scheduleHeartbeat(conn) {
75
118
  clearHeartbeat(conn);
76
- if (conn.busy || conn.pending)
77
- return;
78
119
  const ws = conn.ws;
79
120
  if (!ws || ws.readyState !== readyState.OPEN)
80
121
  return;
@@ -83,7 +124,7 @@ function scheduleHeartbeat(conn) {
83
124
  const generation = conn.generation;
84
125
  conn.heartbeatTimer = unrefTimer(setTimeout(() => {
85
126
  conn.heartbeatTimer = null;
86
- if (generation !== conn.generation || conn.busy || !conn.ws)
127
+ if (generation !== conn.generation || !conn.ws)
87
128
  return;
88
129
  if (conn.ws.readyState !== readyState.OPEN)
89
130
  return;
@@ -91,28 +132,18 @@ function scheduleHeartbeat(conn) {
91
132
  conn.ws.ping?.();
92
133
  }
93
134
  catch {
94
- remove(conn);
95
- try {
96
- conn.ws?.terminate?.();
97
- }
98
- catch { }
135
+ handleSocketLoss(conn);
99
136
  return;
100
137
  }
101
138
  conn.pongTimer = unrefTimer(setTimeout(() => {
102
139
  conn.pongTimer = null;
103
- if (generation !== conn.generation || conn.busy)
140
+ if (generation !== conn.generation)
104
141
  return;
105
- remove(conn);
106
- try {
107
- conn.ws?.terminate?.();
108
- }
109
- catch { }
110
- try {
111
- conn.ws?.close(1001, "pong timeout");
112
- }
113
- catch { }
114
- }, PONG_TIMEOUT_MS));
115
- }, HEARTBEAT_INTERVAL_MS));
142
+ conn.lastCloseCode = 1006;
143
+ conn.lastCloseReason = "pong timeout";
144
+ handleSocketLoss(conn);
145
+ }, transportConfig.pongTimeoutMs));
146
+ }, transportConfig.heartbeatIntervalMs));
116
147
  }
117
148
  function release(conn) {
118
149
  conn.lastSessionID = conn.activeSessionID;
@@ -122,16 +153,20 @@ function release(conn) {
122
153
  conn.activeAgent = undefined;
123
154
  conn.busy = false;
124
155
  conn.reconnectAttempts = 0;
125
- conn.idleTimer = unrefTimer(setTimeout(() => {
126
- conn.idleTimer = null;
127
- if (!conn.busy) {
128
- remove(conn);
129
- try {
130
- conn.ws?.close(1000, "idle eviction");
156
+ clearTimer(conn.idleTimer);
157
+ conn.idleTimer = null;
158
+ if (!conn.warm) {
159
+ conn.idleTimer = unrefTimer(setTimeout(() => {
160
+ conn.idleTimer = null;
161
+ if (!conn.busy) {
162
+ removeAndDrain(conn);
163
+ try {
164
+ conn.ws?.close(1000, "idle eviction");
165
+ }
166
+ catch { }
131
167
  }
132
- catch { }
133
- }
134
- }, IDLE_EVICT_MS));
168
+ }, transportConfig.idleEvictMs));
169
+ }
135
170
  scheduleHeartbeat(conn);
136
171
  }
137
172
  function formatFailureMessage(conn, reason) {
@@ -139,10 +174,10 @@ function formatFailureMessage(conn, reason) {
139
174
  const closeReason = JSON.stringify(conn.lastCloseReason ?? "");
140
175
  const lastError = conn.lastErrorMessage ? JSON.stringify(conn.lastErrorMessage) : "none";
141
176
  return (`WebSocket closed before response completed; cannot retry because ${reason}; ` +
142
- `reconnectAttempts=${conn.reconnectAttempts}/${MAX_RECONNECT_ATTEMPTS}; ` +
177
+ `reconnectAttempts=${conn.reconnectAttempts}/${transportConfig.maxReconnectAttempts}; ` +
143
178
  `closeCode=${code}; closeReason=${closeReason}; lastError=${lastError}`);
144
179
  }
145
- function fail(conn, error, closeSocket) {
180
+ function fail(conn, error, shouldCloseSocket) {
146
181
  const pending = conn.pending;
147
182
  if (pending && !pending.done) {
148
183
  pending.done = true;
@@ -155,18 +190,97 @@ function fail(conn, error, closeSocket) {
155
190
  conn.busy = false;
156
191
  conn.activeSessionID = undefined;
157
192
  conn.activeAgent = undefined;
158
- if (closeSocket) {
159
- remove(conn);
160
- try {
161
- conn.ws?.terminate?.();
162
- }
163
- catch { }
164
- try {
165
- conn.ws?.close(1000, "aborted");
166
- }
167
- catch { }
193
+ if (shouldCloseSocket) {
194
+ removeAndDrain(conn);
195
+ closeSocket(conn, 1000, "aborted");
196
+ }
197
+ else {
198
+ drainQueue(conn.scopeKey);
168
199
  }
169
200
  }
201
+ function cacheResponseMetadata(pending, frame) {
202
+ const sequenceNumber = frame.sequence_number;
203
+ if (typeof sequenceNumber === "number")
204
+ pending.lastSequenceNumber = sequenceNumber;
205
+ const response = frame.response;
206
+ if (response && typeof response === "object") {
207
+ const value = response;
208
+ if (typeof value.id === "string")
209
+ pending.metadata.responseId = value.id;
210
+ if (typeof value.model === "string")
211
+ pending.metadata.model = value.model;
212
+ if (typeof value.created_at === "number")
213
+ pending.metadata.createdAt = value.created_at;
214
+ if ("service_tier" in value)
215
+ pending.metadata.serviceTier = value.service_tier;
216
+ if ("usage" in value)
217
+ pending.metadata.usage = value.usage;
218
+ }
219
+ if (typeof frame.response_id === "string")
220
+ pending.metadata.responseId = frame.response_id;
221
+ }
222
+ function isReplayUnsafeFrame(frame) {
223
+ const eventType = typeof frame.type === "string" ? frame.type : "message";
224
+ if (["response.created", "response.in_progress"].includes(eventType))
225
+ return false;
226
+ if (["response.completed", "response.failed", "response.incomplete", "error"].includes(eventType))
227
+ return true;
228
+ if (eventType.includes(".delta"))
229
+ return true;
230
+ if (eventType.includes("output_item") || eventType.includes("content_part"))
231
+ return true;
232
+ if (eventType.includes("function_call") || eventType.includes("tool"))
233
+ return true;
234
+ if (eventType.includes("reasoning") || eventType.includes("annotation"))
235
+ return true;
236
+ return eventType !== "message" || Object.keys(frame).some((key) => ["delta", "output", "item", "content", "arguments"].includes(key));
237
+ }
238
+ function fallbackUsage() {
239
+ return {
240
+ input_tokens: 0,
241
+ output_tokens: 0,
242
+ total_tokens: 0,
243
+ input_tokens_details: { cached_tokens: 0 },
244
+ output_tokens_details: { reasoning_tokens: 0 },
245
+ };
246
+ }
247
+ function syntheticIncompleteFrame(conn, pending) {
248
+ const metadata = pending.metadata;
249
+ return {
250
+ type: "response.incomplete",
251
+ ...(pending.lastSequenceNumber !== undefined ? { sequence_number: pending.lastSequenceNumber + 1 } : {}),
252
+ response: {
253
+ id: metadata.responseId ?? "resp_unknown",
254
+ object: "response",
255
+ status: "incomplete",
256
+ ...(metadata.model ? { model: metadata.model } : {}),
257
+ ...(metadata.createdAt !== undefined ? { created_at: metadata.createdAt } : {}),
258
+ incomplete_details: { reason: "transport_error" },
259
+ usage: metadata.usage ?? fallbackUsage(),
260
+ service_tier: metadata.serviceTier ?? null,
261
+ },
262
+ openai_ws_transport_error: transportDiagnostics(conn, pending),
263
+ };
264
+ }
265
+ function synthesizeIncomplete(conn) {
266
+ const pending = conn.pending;
267
+ if (!pending || pending.done)
268
+ return;
269
+ const frame = syntheticIncompleteFrame(conn, pending);
270
+ const encoded = new TextEncoder().encode(`event: response.incomplete\ndata: ${JSON.stringify(frame)}\n\n`);
271
+ try {
272
+ pending.controller.enqueue(encoded);
273
+ }
274
+ catch { }
275
+ pending.done = true;
276
+ try {
277
+ pending.controller.close();
278
+ }
279
+ catch { }
280
+ finishConnection(conn);
281
+ removeAndDrain(conn);
282
+ closeSocket(conn, 1000, "transport incomplete");
283
+ }
170
284
  function parseFrames(data) {
171
285
  const text = typeof data === "string" ? data : Buffer.isBuffer(data) ? data.toString("utf8") : String(data);
172
286
  const lines = text
@@ -190,6 +304,7 @@ function enqueueSSE(conn, frame) {
190
304
  if (!pending || pending.done)
191
305
  return;
192
306
  const eventType = typeof frame.type === "string" ? frame.type : "message";
307
+ cacheResponseMetadata(pending, frame);
193
308
  const encoded = new TextEncoder().encode(`event: ${eventType}\ndata: ${JSON.stringify(frame)}\n\n`);
194
309
  try {
195
310
  pending.controller.enqueue(encoded);
@@ -198,13 +313,19 @@ function enqueueSSE(conn, frame) {
198
313
  return;
199
314
  }
200
315
  pending.forwarded = true;
316
+ pending.frameCount++;
317
+ pending.lastEventType = eventType;
318
+ if (isReplayUnsafeFrame(frame))
319
+ pending.replayUnsafeForwarded = true;
201
320
  if (["response.completed", "response.failed", "response.incomplete", "error"].includes(eventType)) {
202
321
  pending.done = true;
203
322
  try {
204
323
  pending.controller.close();
205
324
  }
206
325
  catch { }
207
- release(conn);
326
+ if (pending.metadata.responseId)
327
+ conn.lastResponseID = pending.metadata.responseId;
328
+ terminalRelease(conn);
208
329
  }
209
330
  }
210
331
  export function sendPending(conn) {
@@ -247,8 +368,10 @@ function connect(conn) {
247
368
  const connectTimer = setTimeout(() => {
248
369
  if (generation !== conn.generation || ws.readyState === readyState.OPEN)
249
370
  return;
250
- fail(conn, new Error("WebSocket connection timed out"), true);
251
- }, DEFAULT_CONNECT_TIMEOUT_MS);
371
+ conn.lastCloseCode = 1006;
372
+ conn.lastCloseReason = "connection timed out";
373
+ handleSocketLoss(conn);
374
+ }, transportConfig.connectTimeoutMs);
252
375
  conn.connectTimer = unrefTimer(connectTimer);
253
376
  const handleOpen = () => {
254
377
  if (generation !== conn.generation)
@@ -256,6 +379,7 @@ function connect(conn) {
256
379
  clearTimer(conn.connectTimer);
257
380
  conn.connectTimer = null;
258
381
  conn.lastActivityAt = Date.now();
382
+ scheduleHeartbeat(conn);
259
383
  sendPending(conn);
260
384
  };
261
385
  const handleMessage = (data) => {
@@ -271,8 +395,7 @@ function connect(conn) {
271
395
  conn.lastActivityAt = Date.now();
272
396
  clearTimer(conn.pongTimer);
273
397
  conn.pongTimer = null;
274
- if (!conn.busy && !conn.pending)
275
- scheduleHeartbeat(conn);
398
+ scheduleHeartbeat(conn);
276
399
  };
277
400
  const handleError = (error) => {
278
401
  if (generation !== conn.generation)
@@ -310,14 +433,15 @@ function handleSocketLoss(conn) {
310
433
  clearHeartbeat(conn);
311
434
  const pending = conn.pending;
312
435
  if (!pending || pending.done) {
313
- remove(conn);
314
- try {
315
- conn.ws?.terminate?.();
316
- }
317
- catch { }
436
+ removeAndDrain(conn);
437
+ closeSocket(conn, 1000, "socket lost");
438
+ return;
439
+ }
440
+ if (pending.replayUnsafeForwarded) {
441
+ synthesizeIncomplete(conn);
318
442
  return;
319
443
  }
320
- const canRetry = !pending.forwarded && conn.reconnectAttempts < MAX_RECONNECT_ATTEMPTS;
444
+ const canRetry = conn.reconnectAttempts < transportConfig.maxReconnectAttempts;
321
445
  if (canRetry) {
322
446
  conn.reconnectAttempts++;
323
447
  pending.sent = false;
@@ -334,27 +458,32 @@ function handleSocketLoss(conn) {
334
458
  conn.ws = null;
335
459
  conn.retryTimer = unrefTimer(setTimeout(() => {
336
460
  conn.retryTimer = null;
337
- if (!connectionPool.includes(conn) || !conn.pending || conn.pending.done || conn.pending.forwarded)
461
+ if (!connectionPool.includes(conn) || !conn.pending || conn.pending.done || conn.pending.replayUnsafeForwarded)
338
462
  return;
339
463
  connect(conn);
340
- }, RECONNECT_DELAY_MS));
464
+ }, retryDelay(conn.reconnectAttempts)));
341
465
  return;
342
466
  }
343
467
  const reason = pending.forwarded
344
- ? "stream already forwarded data"
468
+ ? "retry limit reached after replay-safe frames only"
345
469
  : "retry limit reached before any frame was forwarded";
346
470
  fail(conn, new Error(formatFailureMessage(conn, reason)), true);
347
471
  }
348
- function create(wsUrl, headers) {
472
+ function create(wsUrl, headers, warm = false) {
473
+ const hash = authScopeHash(headers);
349
474
  const conn = {
475
+ id: `ws-${nextConnectionID++}`,
350
476
  ws: null,
351
477
  wsUrl,
352
478
  headers,
353
- scopeKey: scopeKey(wsUrl, headers),
479
+ scopeKey: `${wsUrl}::${hash}`,
480
+ scopeHash: hash,
354
481
  busy: false,
482
+ warm,
355
483
  pending: null,
356
484
  generation: 0,
357
485
  reconnectAttempts: 0,
486
+ createdAt: Date.now(),
358
487
  lastActivityAt: Date.now(),
359
488
  idleTimer: null,
360
489
  connectTimer: null,
@@ -372,9 +501,11 @@ function isReusable(conn, key, context, now) {
372
501
  return false;
373
502
  if (conn.scopeKey !== key)
374
503
  return false;
375
- if (conn.ws?.readyState !== readyState.OPEN)
504
+ if (conn.ws?.readyState !== readyState.OPEN && conn.ws?.readyState !== readyState.CONNECTING)
505
+ return false;
506
+ if (now - conn.lastActivityAt > transportConfig.staleReuseMs)
376
507
  return false;
377
- if (now - conn.lastActivityAt > STALE_REUSE_MS)
508
+ if (now - conn.createdAt > transportConfig.connectionMaxAgeMs)
378
509
  return false;
379
510
  if (context.sessionID && conn.lastSessionID && conn.lastSessionID !== context.sessionID)
380
511
  return false;
@@ -382,13 +513,16 @@ function isReusable(conn, key, context, now) {
382
513
  return false;
383
514
  return true;
384
515
  }
385
- export function acquireConnection(wsUrl, headers, context) {
386
- const key = scopeKey(wsUrl, headers);
387
- const now = Date.now();
516
+ function activeCount(key) {
517
+ return connectionPool.filter((conn) => conn.scopeKey === key && (conn.busy || conn.ws?.readyState === readyState.CONNECTING)).length;
518
+ }
519
+ function cleanupStaleConnections(key, now) {
388
520
  for (const candidate of [...connectionPool]) {
389
521
  if (candidate.busy || candidate.scopeKey !== key)
390
522
  continue;
391
- if (candidate.ws?.readyState === readyState.OPEN && now - candidate.lastActivityAt > STALE_REUSE_MS) {
523
+ if (candidate.ws?.readyState === readyState.OPEN &&
524
+ (now - candidate.lastActivityAt > transportConfig.staleReuseMs ||
525
+ now - candidate.createdAt > transportConfig.connectionMaxAgeMs)) {
392
526
  remove(candidate);
393
527
  try {
394
528
  candidate.ws?.close(1000, "stale idle");
@@ -396,19 +530,106 @@ export function acquireConnection(wsUrl, headers, context) {
396
530
  catch { }
397
531
  }
398
532
  }
533
+ }
534
+ function reserveConnection(wsUrl, headers, context) {
535
+ const key = scopeKey(wsUrl, headers);
536
+ const now = Date.now();
537
+ cleanupStaleConnections(key, now);
399
538
  const reusable = connectionPool.find((conn) => isReusable(conn, key, context, now));
400
- const conn = reusable ?? create(wsUrl, headers);
401
- clearTimer(conn.idleTimer);
402
- conn.idleTimer = null;
403
- clearHeartbeat(conn);
539
+ if (reusable) {
540
+ clearTimer(reusable.idleTimer);
541
+ reusable.idleTimer = null;
542
+ clearHeartbeat(reusable);
543
+ reusable.busy = true;
544
+ reusable.warm = false;
545
+ return reusable;
546
+ }
547
+ if (activeCount(key) >= transportConfig.maxConnectionsPerScope)
548
+ return null;
549
+ const conn = create(wsUrl, headers);
404
550
  conn.busy = true;
405
551
  return conn;
406
552
  }
407
- export function closeConnections(predicate = () => true) {
553
+ function queueAcquire(wsUrl, headers, context, signal) {
554
+ const key = scopeKey(wsUrl, headers);
555
+ return new Promise((resolve, reject) => {
556
+ const entry = {
557
+ wsUrl,
558
+ headers,
559
+ context,
560
+ resolve,
561
+ reject,
562
+ signal,
563
+ onAbort: () => {
564
+ const queue = acquisitionQueues.get(key);
565
+ if (queue) {
566
+ const index = queue.indexOf(entry);
567
+ if (index >= 0)
568
+ queue.splice(index, 1);
569
+ if (queue.length === 0)
570
+ acquisitionQueues.delete(key);
571
+ }
572
+ reject(signal?.reason instanceof Error ? signal.reason : new DOMException("Aborted", "AbortError"));
573
+ },
574
+ };
575
+ if (signal?.aborted) {
576
+ entry.onAbort();
577
+ return;
578
+ }
579
+ signal?.addEventListener("abort", entry.onAbort, { once: true });
580
+ const queue = acquisitionQueues.get(key) ?? [];
581
+ queue.push(entry);
582
+ acquisitionQueues.set(key, queue);
583
+ });
584
+ }
585
+ function drainQueue(key) {
586
+ const queue = acquisitionQueues.get(key);
587
+ if (!queue?.length)
588
+ return;
589
+ while (queue.length) {
590
+ const entry = queue[0];
591
+ if (entry.signal?.aborted) {
592
+ queue.shift();
593
+ entry.onAbort();
594
+ continue;
595
+ }
596
+ const conn = reserveConnection(entry.wsUrl, entry.headers, entry.context);
597
+ if (!conn)
598
+ break;
599
+ queue.shift();
600
+ entry.signal?.removeEventListener("abort", entry.onAbort);
601
+ entry.resolve(conn);
602
+ }
603
+ if (queue.length === 0)
604
+ acquisitionQueues.delete(key);
605
+ }
606
+ export function acquireConnection(wsUrl, headers, context, signal) {
607
+ const conn = reserveConnection(wsUrl, headers, context);
608
+ if (conn)
609
+ return conn;
610
+ return queueAcquire(wsUrl, headers, context, signal);
611
+ }
612
+ export function ensureWarmConnection(wsUrl, headers) {
613
+ const key = scopeKey(wsUrl, headers);
614
+ const now = Date.now();
615
+ cleanupStaleConnections(key, now);
616
+ const existing = connectionPool.find((conn) => conn.scopeKey === key && !conn.busy && conn.ws?.readyState === readyState.OPEN);
617
+ if (existing) {
618
+ existing.warm = true;
619
+ clearTimer(existing.idleTimer);
620
+ existing.idleTimer = null;
621
+ scheduleHeartbeat(existing);
622
+ return existing;
623
+ }
624
+ if (activeCount(key) >= transportConfig.maxConnectionsPerScope)
625
+ return undefined;
626
+ return create(wsUrl, headers, true);
627
+ }
628
+ export function closeConnections(predicate = () => true, message = "Session disposed") {
408
629
  for (const conn of [...connectionPool]) {
409
630
  if (!predicate(conn))
410
631
  continue;
411
- fail(conn, new Error("Session disposed"), true);
632
+ fail(conn, new Error(message), true);
412
633
  }
413
634
  }
414
635
  export function resetPoolForTesting() {
@@ -419,6 +640,13 @@ export function resetPoolForTesting() {
419
640
  catch { }
420
641
  remove(conn);
421
642
  }
643
+ for (const queue of acquisitionQueues.values()) {
644
+ for (const entry of queue) {
645
+ entry.signal?.removeEventListener("abort", entry.onAbort);
646
+ entry.reject(new Error("Pool reset"));
647
+ }
648
+ }
649
+ acquisitionQueues.clear();
422
650
  }
423
651
  export function setWebSocketConstructorForTesting(ctor) {
424
652
  WebSocketImpl = ctor;
@@ -1 +1 @@
1
- {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/transport/pool.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,SAAS,MAAM,IAAI,CAAA;AAiB1B,MAAM,0BAA0B,GAAG,MAAM,CAAA;AACzC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAChC,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAC9B,MAAM,aAAa,GAAG,OAAO,CAAA;AAC7B,MAAM,cAAc,GAAG,MAAM,CAAA;AAC7B,MAAM,qBAAqB,GAAG,MAAM,CAAA;AACpC,MAAM,eAAe,GAAG,MAAM,CAAA;AAE9B,IAAI,aAAa,GAAyB,SAA4C,CAAA;AAqCtF,MAAM,CAAC,MAAM,cAAc,GAAuB,EAAE,CAAA;AAEpD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACD,CAAA;AAEV,SAAS,EAAE,CAAC,EAAiB,EAAE,KAAa,EAAE,QAAkC;IAC9E,IAAI,EAAE,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;;QAC5B,EAAE,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,GAAG,CAAC,EAAiB,EAAE,KAAa,EAAE,QAAkC;IAC/E,IAAI,EAAE,CAAC,GAAG;QAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;;QAC9B,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,OAA+B;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;SACnH,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;SACxC,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;AAC9E,CAAC;AAED,SAAS,UAAU,CAAC,KAA2C;IAC7D,IAAI,KAAK;QAAE,YAAY,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,KAAoC;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACpE,CAAC;QAAC,KAAgC,CAAC,KAAK,EAAE,EAAE,CAAA;IAC9C,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAsB;IAC5C,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC/B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;IAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;AACvB,CAAC;AAED,SAAS,MAAM,CAAC,IAAsB;IACpC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,EAAE,CAAA;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACpB,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC7B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1B,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3B,cAAc,CAAC,IAAI,CAAC,CAAA;IACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;AACxB,CAAC;AAED,SAAS,MAAM,CAAC,IAAsB;IACpC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,KAAK,IAAI,CAAC;QAAE,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC/C,MAAM,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAsB;IAC/C,cAAc,CAAC,IAAI,CAAC,CAAA;IACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO;QAAE,OAAM;IACrC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;IAClB,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI;QAAE,OAAM;IACpD,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,UAAU;QAAE,OAAM;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;IAClC,IAAI,CAAC,cAAc,GAAG,UAAU,CAC9B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAM;QACnE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI;YAAE,OAAM;QAClD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAA;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,CAAA;YACZ,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAA;YACxB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,OAAM;QACR,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,UAAU,CACzB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACrB,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAM;YACvD,MAAM,CAAC,IAAI,CAAC,CAAA;YACZ,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAA;YACxB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;YACtC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC,EAAE,eAAe,CAAC,CACpB,CAAA;IACH,CAAC,EAAE,qBAAqB,CAAC,CAC1B,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAsB;IACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAA;IACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAA;IACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACnB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;IAChC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;IAC5B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACjB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC1B,IAAI,CAAC,SAAS,GAAG,UAAU,CACzB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAA;YACZ,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;YACvC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC,EAAE,aAAa,CAAC,CAClB,CAAA;IACD,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAsB,EAAE,MAAc;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAA;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IACxF,OAAO,CACL,oEAAoE,MAAM,IAAI;QAC9E,qBAAqB,IAAI,CAAC,iBAAiB,IAAI,sBAAsB,IAAI;QACzE,aAAa,IAAI,iBAAiB,WAAW,eAAe,SAAS,EAAE,CACxE,CAAA;AACH,CAAC;AAED,SAAS,IAAI,CAAC,IAAsB,EAAE,KAAY,EAAE,WAAoB;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC;YACH,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACjB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;IAChC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;IAC5B,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,CAAA;QACZ,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAA;QACxB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QACjC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAa;IAChC,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3G,MAAM,KAAK,GAAG,IAAI;SACf,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAA;IAClB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAChD,MAAM,MAAM,GAAmC,EAAE,CAAA;IACjD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACpC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAiC,CAAC,CAAA;QAC1F,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,UAAU,CAAC,IAAsB,EAAE,KAA8B;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI;QAAE,OAAM;IACpC,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACzE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,SAAS,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACnG,IAAI,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAM;IACR,CAAC;IACD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAA;IACxB,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAClG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC;YACH,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAC1D,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;IAClB,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAC1D,IAAI,CAAC;QACH,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,gBAAgB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9E,cAAc,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;QAC5C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;IACnB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAe;IAC3C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAC7D,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC3D,IAAI,MAAM,YAAY,UAAU;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC7E,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AACvB,CAAC;AAED,SAAS,OAAO,CAAC,IAAsB;IACrC,cAAc,CAAC,IAAI,CAAC,CAAA;IACpB,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACnE,MAAM,UAAU,GAAG,EAAE,IAAI,CAAC,UAAU,CAAA;IACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACtB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC7B,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;QACnC,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI;YAAE,OAAM;QAC/E,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,gCAAgC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC/D,CAAC,EAAE,0BAA0B,CAAC,CAAA;IAC9B,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IAE5C,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU;YAAE,OAAM;QAC1C,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAChC,WAAW,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,IAAa,EAAE,EAAE;QACtC,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU;YAAE,OAAM;QAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAChC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAChE,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU;YAAE,OAAM;QAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAChC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC1D,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,KAAc,EAAE,EAAE;QACrC,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU;YAAE,OAAM;QAC1C,IAAI,CAAC,gBAAgB;YACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5G,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,IAAa,EAAE,MAAgB,EAAE,EAAE;QACtD,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU;YAAE,OAAM;QAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACvD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;QACrD,IAAI,gBAAgB,KAAK,SAAS;YAAE,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAA;QAC3E,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAA;IAED,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IAC1B,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAChC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;IAC1B,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAC5B,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAE5B,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;QACjB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;QAC3B,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;QACjC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;QAC3B,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;QAC7B,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAC/B,CAAC,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAsB;IAC9C,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IACxB,cAAc,CAAC,IAAI,CAAC,CAAA;IACpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAA;QACZ,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,CAAA;QACxB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAM;IACR,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,GAAG,sBAAsB,CAAA;IACtF,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,CAAC,IAAI,GAAG,KAAK,CAAA;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAA;QACvB,MAAM,CAAC,IAAI,CAAC,CAAA;QACZ,IAAI,CAAC;YACH,OAAO,EAAE,SAAS,EAAE,EAAE,CAAA;QACxB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,IAAI,CAAC;YACH,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;QACd,IAAI,CAAC,UAAU,GAAG,UAAU,CAC1B,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;gBAAE,OAAM;YAC1G,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,EAAE,kBAAkB,CAAC,CACvB,CAAA;QACD,OAAM;IACR,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS;QAC9B,CAAC,CAAC,+BAA+B;QACjC,CAAC,CAAC,oDAAoD,CAAA;IACxD,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,MAAM,CAAC,KAAa,EAAE,OAA+B;IAC5D,MAAM,IAAI,GAAqB;QAC7B,EAAE,EAAE,IAAI;QACR,KAAK;QACL,OAAO;QACP,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAClC,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,CAAC;QACb,iBAAiB,EAAE,CAAC;QACpB,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;QAC1B,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,IAAI;QACpB,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,IAAI;KACb,CAAA;IACD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,CAAC,IAAI,CAAC,CAAA;IACb,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,UAAU,CAAC,IAAsB,EAAE,GAAW,EAAE,OAAyB,EAAE,GAAW;IAC7F,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;QAAE,OAAO,KAAK,CAAA;IACvC,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,UAAU,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACzD,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,cAAc;QAAE,OAAO,KAAK,CAAA;IAC5D,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IACrG,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACrF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,OAA+B,EAC/B,OAAyB;IAEzB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,KAAK,MAAM,SAAS,IAAI,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,GAAG;YAAE,SAAQ;QAC1D,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,KAAK,UAAU,CAAC,IAAI,IAAI,GAAG,GAAG,SAAS,CAAC,cAAc,GAAG,cAAc,EAAE,CAAC;YACpG,MAAM,CAAC,SAAS,CAAC,CAAA;YACjB,IAAI,CAAC;gBACH,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;YACzC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;IACnF,MAAM,IAAI,GAAG,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC/C,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACrB,cAAc,CAAC,IAAI,CAAC,CAAA;IACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAChB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,YAAiD,GAAG,EAAE,CAAC,IAAI;IAC1F,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC9B,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAA;IACjD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QACpC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAA0B;IAC1E,aAAa,GAAG,IAAI,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,aAAa,GAAG,SAA4C,CAAA;AAC9D,CAAC"}
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../../src/transport/pool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openai-ws-opencode",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "OpenCode plugin for OpenAI Responses WebSocket transport.",
5
5
  "type": "module",
6
6
  "license": "MIT",