@jeffusion/bungee-core 6.4.1 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1858,6 +1858,9 @@ class ChatgptOauthAdapter {
1858
1858
  requests = new Map;
1859
1859
  nativeResponses = new WeakSet;
1860
1860
  constructor() {}
1861
+ endRequest(requestId) {
1862
+ this.requests.delete(requestId);
1863
+ }
1861
1864
  beforeRequest(context) {
1862
1865
  assertResponsesEntryPath(context.url.pathname);
1863
1866
  const target = context.url.pathname === MODELS_PATH || context.originalUrl.searchParams.has("client_version") && context.url.pathname === "/models" ? "models" : context.url.pathname === CHAT_COMPLETIONS_PATH ? "chat" : isResponsesRequest(context.url) ? "responses" : undefined;
@@ -1956,15 +1959,8 @@ class ChatgptOauthAdapter {
1956
1959
  return context;
1957
1960
  }
1958
1961
  async rawResponse(result, context) {
1959
- if (convertedCompletions.has(result.completion)) {
1960
- const pending = this.requests.get(context.requestId);
1961
- const cleanup = () => {
1962
- if (this.requests.get(context.requestId) === pending)
1963
- this.requests.delete(context.requestId);
1964
- };
1965
- result.completion.then(cleanup, cleanup);
1962
+ if (convertedCompletions.has(result.completion))
1966
1963
  return result;
1967
- }
1968
1964
  if (this.nativeResponses.has(result.response))
1969
1965
  return result;
1970
1966
  const upstreamUrl = context.upstreamUrl ? new URL(context.upstreamUrl) : undefined;
@@ -1981,17 +1977,10 @@ class ChatgptOauthAdapter {
1981
1977
  current.adaptedResponses.add(result.response);
1982
1978
  if (current.native)
1983
1979
  this.nativeResponses.add(result.response);
1984
- const state = current.attemptId === undefined ? Object.freeze({ ...current, attemptId: context.attemptId }) : current;
1985
- if (state !== current && this.requests.get(context.requestId) === current)
1986
- this.requests.set(context.requestId, state);
1987
- const cleanup = () => {
1988
- if (this.requests.get(context.requestId) === state)
1989
- this.requests.delete(context.requestId);
1990
- };
1980
+ const state = current;
1991
1981
  const trackCompletion = (completion) => {
1992
1982
  if (!state.native)
1993
1983
  convertedCompletions.add(completion);
1994
- completion.then(cleanup, cleanup);
1995
1984
  };
1996
1985
  const mark = (response) => {
1997
1986
  current.adaptedResponses.add(response);
@@ -2009,7 +1998,6 @@ class ChatgptOauthAdapter {
2009
1998
  return { response, completion };
2010
1999
  };
2011
2000
  if (state.native && !result.response.ok) {
2012
- result.completion.then(cleanup, cleanup);
2013
2001
  return result;
2014
2002
  }
2015
2003
  if (state.target === "models" && result.response.status === 304) {
@@ -2123,6 +2111,7 @@ var ChatgptOauthPlugin = definePlugin(class {
2123
2111
  return context.method.toUpperCase() === "POST" && (isResponsesRequest(context.url) || ["/v1/chat/completions", "/backend-api/codex/responses"].includes(path)) ? { request: "json-write", response: ["json", "sse-json"] } : { request: "none" };
2124
2112
  }
2125
2113
  register(hooks) {
2114
+ hooks.onFinally.tap("chatgpt-oauth.request-cleanup", (context) => this.adapter.endRequest(context.requestId));
2126
2115
  hooks.onWebSocketHandshake.tap("chatgpt-oauth", (context) => {
2127
2116
  assertResponsesEntryPath(context.url.pathname);
2128
2117
  if (context.url.origin === "https://chatgpt.com" && isResponsesRequest(context.url))
@@ -2142,4 +2131,4 @@ export {
2142
2131
  server_default as default
2143
2132
  };
2144
2133
 
2145
- //# debugId=6AB7BD049B59B52A64756E2164756E21
2134
+ //# debugId=7D45F987B1FCBF9164756E2164756E21