@sentropic/h2a-runtime 0.85.15 → 0.85.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-launch-args.d.ts +26 -0
- package/dist/agent-launch-args.d.ts.map +1 -0
- package/dist/agent-launch-args.js +65 -0
- package/dist/agent-launch-args.js.map +1 -0
- package/dist/delegate.d.ts +17 -8
- package/dist/delegate.d.ts.map +1 -1
- package/dist/delegate.js +70 -33
- package/dist/delegate.js.map +1 -1
- package/dist/enroll.d.ts +7 -3
- package/dist/enroll.d.ts.map +1 -1
- package/dist/enroll.js +65 -13
- package/dist/enroll.js.map +1 -1
- package/dist/h2a-bridge.d.ts +1 -1
- package/dist/h2a-bridge.js +2 -2
- package/dist/h2a-bridge.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +364 -84
- package/dist/index.js.map +1 -1
- package/dist/launch-context.d.ts +2 -0
- package/dist/launch-context.d.ts.map +1 -1
- package/dist/launch-context.js +10 -5
- package/dist/launch-context.js.map +1 -1
- package/dist/llm-gateway-runtime/accounts.d.ts +17 -3
- package/dist/llm-gateway-runtime/accounts.d.ts.map +1 -1
- package/dist/llm-gateway-runtime/accounts.js +44 -7
- package/dist/llm-gateway-runtime/accounts.js.map +1 -1
- package/dist/llm-gateway-runtime/index.d.ts.map +1 -1
- package/dist/llm-gateway-runtime/index.js +6 -0
- package/dist/llm-gateway-runtime/index.js.map +1 -1
- package/dist/llm-gateway-runtime/model-catalog.d.ts.map +1 -1
- package/dist/llm-gateway-runtime/model-catalog.js +12 -2
- package/dist/llm-gateway-runtime/model-catalog.js.map +1 -1
- package/dist/llm-gateway-runtime/proxy-anthropic.d.ts.map +1 -1
- package/dist/llm-gateway-runtime/proxy-anthropic.js +13 -1
- package/dist/llm-gateway-runtime/proxy-anthropic.js.map +1 -1
- package/dist/llm-gateway-runtime/proxy-openai.d.ts +5 -2
- package/dist/llm-gateway-runtime/proxy-openai.d.ts.map +1 -1
- package/dist/llm-gateway-runtime/proxy-openai.js +41 -18
- package/dist/llm-gateway-runtime/proxy-openai.js.map +1 -1
- package/dist/llm-gateway-runtime/sticky.d.ts +11 -2
- package/dist/llm-gateway-runtime/sticky.d.ts.map +1 -1
- package/dist/llm-gateway-runtime/sticky.js +325 -31
- package/dist/llm-gateway-runtime/sticky.js.map +1 -1
- package/dist/readiness.js +2 -2
- package/dist/readiness.js.map +1 -1
- package/dist/registry.d.ts +6 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +10 -1
- package/dist/registry.js.map +1 -1
- package/dist/restore.d.ts.map +1 -1
- package/dist/restore.js +2 -0
- package/dist/restore.js.map +1 -1
- package/dist/tmux.d.ts +71 -13
- package/dist/tmux.d.ts.map +1 -1
- package/dist/tmux.js +301 -34
- package/dist/tmux.js.map +1 -1
- package/package.json +1 -1
package/dist/launch-context.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export interface LaunchContextInput {
|
|
|
17
17
|
label?: string | undefined;
|
|
18
18
|
/** CLI-native resume argv (e.g. ["--resume", id] / ["resume", id]); only the id is kept. */
|
|
19
19
|
resumeArgs?: ReadonlyArray<string> | undefined;
|
|
20
|
+
/** Explicit resume id. Prefer this over deriving metadata from arbitrary CLI argv. */
|
|
21
|
+
resumeId?: string | undefined;
|
|
20
22
|
/** h2a side-window command line, if one was requested. */
|
|
21
23
|
h2aCommand?: string | undefined;
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-context.d.ts","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,4FAA4F;IAC5F,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC/C,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,IAAI,GAAG,KAAK,CAAC;IACtB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAKD,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,EACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,aAAa,
|
|
1
|
+
{"version":3,"file":"launch-context.d.ts","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,4FAA4F;IAC5F,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC/C,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,IAAI,GAAG,KAAK,CAAC;IACtB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAKD,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAMD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,kBAAkB,EACzB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,aAAa,CAuBf;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAYhF;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC9C,aAAa,GAAG,SAAS,CAoB3B;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAW9D"}
|
package/dist/launch-context.js
CHANGED
|
@@ -36,11 +36,16 @@ export function buildLaunchContext(input, env = process.env) {
|
|
|
36
36
|
ctx.label = input.label.trim();
|
|
37
37
|
if (base && isLocalUrl(base))
|
|
38
38
|
ctx.gatewayBaseUrl = base;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
if (input.resumeId) {
|
|
40
|
+
ctx.resume = redactSecrets(input.resumeId);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
const resumeArgs = input.resumeArgs ?? [];
|
|
44
|
+
if (resumeArgs.length > 0) {
|
|
45
|
+
const id = resumeArgs[resumeArgs.length - 1];
|
|
46
|
+
if (id && id !== resumeArgs[0])
|
|
47
|
+
ctx.resume = redactSecrets(id);
|
|
48
|
+
}
|
|
44
49
|
}
|
|
45
50
|
if (input.h2aCommand && input.h2aCommand.trim()) {
|
|
46
51
|
ctx.h2a = redactSecrets(input.h2aCommand.trim());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-context.js","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,yFAAyF;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"launch-context.js","sourceRoot":"","sources":["../src/launch-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,13 @@ export interface PublicAccountDescriptor {
|
|
|
20
20
|
modelIds: string[];
|
|
21
21
|
status: "active" | "disabled";
|
|
22
22
|
}
|
|
23
|
+
export type EffectiveAccountAuthType = "api-key" | "bearer";
|
|
24
|
+
export type GatewayUpstreamTransport = "anthropic-messages" | "codex-responses" | "openai-chat-completions" | "unknown";
|
|
25
|
+
/** True when the credential has the shape used by the Codex OAuth transport. */
|
|
26
|
+
export declare function isCodexOAuthToken(token: string): boolean;
|
|
27
|
+
export declare function effectiveAccountAuthType(account: AccountDescriptor): EffectiveAccountAuthType;
|
|
28
|
+
/** Keep preflight attestation coupled to the transport chosen by the proxy. */
|
|
29
|
+
export declare function upstreamTransportForAccount(account: AccountDescriptor): GatewayUpstreamTransport;
|
|
23
30
|
export declare function getAccounts(): AccountDescriptor[];
|
|
24
31
|
export declare function publicAccountDescriptor(account: AccountDescriptor): PublicAccountDescriptor;
|
|
25
32
|
export declare function listAccountDescriptors(): PublicAccountDescriptor[];
|
|
@@ -31,12 +38,19 @@ export declare function isAccountExhausted(accountId: string, nowMs?: number): b
|
|
|
31
38
|
export declare function accountExhaustionReason(accountId: string): string | undefined;
|
|
32
39
|
export declare function resetAccountsCache(): void;
|
|
33
40
|
export declare function accountSupportsRoute(account: AccountDescriptor, route: RoutingTarget): boolean;
|
|
34
|
-
export declare function eligibleAccountsForRoute(route?: RoutingTarget
|
|
41
|
+
export declare function eligibleAccountsForRoute(route?: RoutingTarget, options?: {
|
|
42
|
+
requiredTransport?: GatewayUpstreamTransport;
|
|
43
|
+
}): AccountDescriptor[];
|
|
35
44
|
export declare function selectAccount(): AccountDescriptor;
|
|
36
|
-
export declare function selectAccountForRoute(route: RoutingTarget
|
|
45
|
+
export declare function selectAccountForRoute(route: RoutingTarget, options?: {
|
|
46
|
+
requiredTransport?: GatewayUpstreamTransport;
|
|
47
|
+
}): AccountDescriptor;
|
|
37
48
|
export declare function findAccount(accountId: string): AccountDescriptor | undefined;
|
|
38
49
|
export declare function listRoutableModels(): ModelCatalogEntry[];
|
|
39
|
-
export declare function selectFallbackAccount(exhaustedAccountId: string, nowMs?: number
|
|
50
|
+
export declare function selectFallbackAccount(exhaustedAccountId: string, nowMs?: number, options?: {
|
|
51
|
+
requiredTransport?: GatewayUpstreamTransport;
|
|
52
|
+
route?: RoutingTarget;
|
|
53
|
+
}): AccountDescriptor | undefined;
|
|
40
54
|
/** Update the in-memory token for an account (after OAuth refresh). */
|
|
41
55
|
export declare function updateAccountToken(accountId: string, newToken: string, expiresAt?: string): void;
|
|
42
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B;AA6BD,wBAAgB,WAAW,IAAI,iBAAiB,EAAE,CAGjD;AAUD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GACzB,uBAAuB,CAUzB;AAED,wBAAgB,sBAAsB,IAAI,uBAAuB,EAAE,CAElE;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAKtE;AAED,eAAO,MAAM,2BAA2B,QAAqB,CAAC;AAoB9D,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,GAAE,MAAkC,EAC5C,KAAK,GAAE,MAAmB,GACzB,IAAI,CAMN;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAmB,GACzB,OAAO,CAQT;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE7E;AAGD,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAKD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,aAAa,GACnB,OAAO,CAiBT;AAED,wBAAgB,wBAAwB,CACtC,KAAK,CAAC,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
import { accountPoolForProvider, listModelCatalog, resolveModelRoute, } from "./model-catalog.js";
|
|
2
|
+
/** True when the credential has the shape used by the Codex OAuth transport. */
|
|
3
|
+
export function isCodexOAuthToken(token) {
|
|
4
|
+
return !token.startsWith("sk-") && token.split(".").length === 3;
|
|
5
|
+
}
|
|
6
|
+
export function effectiveAccountAuthType(account) {
|
|
7
|
+
return account.authType ?? (account.token.startsWith("sk-") ? "api-key" : "bearer");
|
|
8
|
+
}
|
|
9
|
+
/** Keep preflight attestation coupled to the transport chosen by the proxy. */
|
|
10
|
+
export function upstreamTransportForAccount(account) {
|
|
11
|
+
switch (providerFamily(account.provider)) {
|
|
12
|
+
case "openai":
|
|
13
|
+
return isCodexOAuthToken(account.token)
|
|
14
|
+
? "codex-responses"
|
|
15
|
+
: "openai-chat-completions";
|
|
16
|
+
case "anthropic":
|
|
17
|
+
return "anthropic-messages";
|
|
18
|
+
default:
|
|
19
|
+
return "unknown";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
2
22
|
function isUnsupportedClaudeOAuthAccount(account) {
|
|
3
23
|
return (account.provider === "anthropic" &&
|
|
4
24
|
(account.authType === "bearer" ||
|
|
@@ -105,8 +125,11 @@ export function accountSupportsRoute(account, route) {
|
|
|
105
125
|
].filter((value) => typeof value === "string" && value.length > 0);
|
|
106
126
|
return accepted.some((modelId) => modelIds.includes(modelId));
|
|
107
127
|
}
|
|
108
|
-
export function eligibleAccountsForRoute(route) {
|
|
109
|
-
const accounts = getAccounts().filter((account) => accountStatus(account) === "active" &&
|
|
128
|
+
export function eligibleAccountsForRoute(route, options = {}) {
|
|
129
|
+
const accounts = getAccounts().filter((account) => accountStatus(account) === "active" &&
|
|
130
|
+
!isAccountExhausted(account.id) &&
|
|
131
|
+
(!options.requiredTransport ||
|
|
132
|
+
upstreamTransportForAccount(account) === options.requiredTransport));
|
|
110
133
|
if (!route)
|
|
111
134
|
return accounts;
|
|
112
135
|
return accounts.filter((account) => accountSupportsRoute(account, route));
|
|
@@ -119,10 +142,13 @@ export function selectAccount() {
|
|
|
119
142
|
_rrIdx++;
|
|
120
143
|
return acct;
|
|
121
144
|
}
|
|
122
|
-
export function selectAccountForRoute(route) {
|
|
123
|
-
const accounts = eligibleAccountsForRoute(route);
|
|
145
|
+
export function selectAccountForRoute(route, options = {}) {
|
|
146
|
+
const accounts = eligibleAccountsForRoute(route, options);
|
|
124
147
|
if (accounts.length === 0) {
|
|
125
|
-
throw new Error(`no eligible ${route.accountPool} account for ${route.requestedModel ?? route.upstreamModel ?? "route"}`
|
|
148
|
+
throw new Error(`no eligible ${route.accountPool} account for ${route.requestedModel ?? route.upstreamModel ?? "route"}` +
|
|
149
|
+
(options.requiredTransport
|
|
150
|
+
? ` using ${options.requiredTransport} transport`
|
|
151
|
+
: ""));
|
|
126
152
|
}
|
|
127
153
|
const key = `${route.accountPool}:${route.upstreamModel ?? route.catalogModelId ?? ""}`;
|
|
128
154
|
const idx = _routeRrIdx.get(key) ?? 0;
|
|
@@ -141,7 +167,7 @@ export function listRoutableModels() {
|
|
|
141
167
|
accounts.some((account) => accountSupportsRoute(account, route)));
|
|
142
168
|
});
|
|
143
169
|
}
|
|
144
|
-
export function selectFallbackAccount(exhaustedAccountId, nowMs = Date.now()) {
|
|
170
|
+
export function selectFallbackAccount(exhaustedAccountId, nowMs = Date.now(), options = {}) {
|
|
145
171
|
let accounts;
|
|
146
172
|
try {
|
|
147
173
|
accounts = getAccounts();
|
|
@@ -152,7 +178,10 @@ export function selectFallbackAccount(exhaustedAccountId, nowMs = Date.now()) {
|
|
|
152
178
|
const exhausted = accounts.find((a) => a.id === exhaustedAccountId);
|
|
153
179
|
const candidates = accounts.filter((a) => a.id !== exhaustedAccountId &&
|
|
154
180
|
accountStatus(a) === "active" &&
|
|
155
|
-
!isAccountExhausted(a.id, nowMs)
|
|
181
|
+
!isAccountExhausted(a.id, nowMs) &&
|
|
182
|
+
(!options.requiredTransport ||
|
|
183
|
+
upstreamTransportForAccount(a) === options.requiredTransport) &&
|
|
184
|
+
(!options.route || accountSupportsRoute(a, options.route)));
|
|
156
185
|
if (candidates.length === 0)
|
|
157
186
|
return undefined;
|
|
158
187
|
const family = exhausted ? providerFamily(exhausted.provider) : undefined;
|
|
@@ -218,6 +247,14 @@ export async function refreshOAuthToken(accountId) {
|
|
|
218
247
|
console.error(`[llm-gateway] OAuth refresh: no access_token in response for ${accountId}`);
|
|
219
248
|
return null;
|
|
220
249
|
}
|
|
250
|
+
const refreshedTransport = upstreamTransportForAccount({
|
|
251
|
+
...acc,
|
|
252
|
+
token: data.access_token,
|
|
253
|
+
});
|
|
254
|
+
if (refreshedTransport !== upstreamTransportForAccount(acc)) {
|
|
255
|
+
console.error(`[llm-gateway] OAuth refresh rejected for ${accountId}: credential transport changed`);
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
221
258
|
const expiresAt = jwtExpiry(data.access_token);
|
|
222
259
|
updateAccountToken(accountId, data.access_token, expiresAt);
|
|
223
260
|
console.log(`[llm-gateway] OAuth token refreshed for ${accountId}${expiresAt ? `, expires ${expiresAt}` : ""}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,GAGlB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAO5B,eAAO,MAAM,GAAG,4EAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAO5B,eAAO,MAAM,GAAG,4EAAa,CAAC;AA2D9B,wBAAgB,WAAW,IAAI,IAAI,CAOlC"}
|
|
@@ -29,6 +29,12 @@ app.post("/v1/session", async (c) => {
|
|
|
29
29
|
...(typeof body.workspaceId === "string" ? { workspaceId: body.workspaceId } : {}),
|
|
30
30
|
...(typeof body.profile === "string" ? { profile: body.profile } : {}),
|
|
31
31
|
...(typeof body.clientSessionId === "string" ? { clientSessionId: body.clientSessionId } : {}),
|
|
32
|
+
...(typeof body.reasoningEffort === "string"
|
|
33
|
+
? { reasoningEffort: body.reasoningEffort }
|
|
34
|
+
: {}),
|
|
35
|
+
...(typeof body.requiredTransport === "string"
|
|
36
|
+
? { requiredTransport: body.requiredTransport }
|
|
37
|
+
: {}),
|
|
32
38
|
});
|
|
33
39
|
return c.json(result, 201);
|
|
34
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AAE9B,qCAAqC;AACrC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAChD,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEjD,+DAA+D;AAC/D,gEAAgE;AAChE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAClC,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/model-catalog.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,eAAe,CAAC;IAC/B,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EACP,YAAY,GACZ,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,iBAAiB,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/model-catalog.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAAC;AACnD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,eAAe,CAAC;IAC/B,cAAc,EAAE,eAAe,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EACP,YAAY,GACZ,eAAe,GACf,eAAe,GACf,kBAAkB,GAClB,iBAAiB,CAAC;CACvB;AA+FD,wBAAgB,gBAAgB,IAAI,iBAAiB,EAAE,CAGtD;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GACf,WAAW,GAAG,SAAS,CAMzB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAQ5E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAiD1E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAI9D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,sBAAqB,GAAG;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,CAAC,iBAAiB,GAAG;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxE,CASA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const CODEX_CAPABILITIES = ["streaming", "tools", "reasoning_effort"];
|
|
2
2
|
const DEFAULT_MODEL_CATALOG = [
|
|
3
3
|
{
|
|
4
|
-
id: "gpt-5.6-
|
|
4
|
+
id: "gpt-5.6-terra",
|
|
5
5
|
provider: "codex",
|
|
6
|
-
upstreamModel: "gpt-5.6-
|
|
6
|
+
upstreamModel: "gpt-5.6-terra",
|
|
7
7
|
accountPool: "codex",
|
|
8
8
|
inputProtocol: "anthropic.messages",
|
|
9
9
|
outputProtocol: "anthropic.messages",
|
|
@@ -22,6 +22,16 @@ const DEFAULT_MODEL_CATALOG = [
|
|
|
22
22
|
defaultPolicy: "round-robin",
|
|
23
23
|
aliases: ["claude-fable-5", "fable-5"],
|
|
24
24
|
},
|
|
25
|
+
{
|
|
26
|
+
id: "gpt-5.6-luna",
|
|
27
|
+
provider: "codex",
|
|
28
|
+
upstreamModel: "gpt-5.6-luna",
|
|
29
|
+
accountPool: "codex",
|
|
30
|
+
inputProtocol: "anthropic.messages",
|
|
31
|
+
outputProtocol: "anthropic.messages",
|
|
32
|
+
capabilities: [...CODEX_CAPABILITIES],
|
|
33
|
+
defaultPolicy: "round-robin",
|
|
34
|
+
},
|
|
25
35
|
{
|
|
26
36
|
id: "gpt-5.5",
|
|
27
37
|
provider: "codex",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/model-catalog.ts"],"names":[],"mappings":"AA8BA,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAU,CAAC;AAE/E,MAAM,qBAAqB,GAAwB;IACjD;QACE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/model-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-anthropic.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/proxy-anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy-anthropic.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/proxy-anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAmLpC,wBAAsB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0BlE"}
|
|
@@ -34,7 +34,12 @@ function quotaReason(response) {
|
|
|
34
34
|
}
|
|
35
35
|
async function rebindAfterQuotaResponse(gatewayToken, session, response, route) {
|
|
36
36
|
markAccountExhausted(session.accountId, quotaReason(response));
|
|
37
|
-
const fallback = selectFallbackAccount(session.accountId)
|
|
37
|
+
const fallback = selectFallbackAccount(session.accountId, Date.now(), {
|
|
38
|
+
...(session.requiredTransport
|
|
39
|
+
? { requiredTransport: session.requiredTransport }
|
|
40
|
+
: {}),
|
|
41
|
+
...(route ? { route } : {}),
|
|
42
|
+
});
|
|
38
43
|
if (!fallback)
|
|
39
44
|
return undefined;
|
|
40
45
|
let rebound;
|
|
@@ -99,12 +104,19 @@ async function handleMessagesViaAnthropic(c, session, body) {
|
|
|
99
104
|
});
|
|
100
105
|
}
|
|
101
106
|
async function dispatchToSessionAccount(c, session, body) {
|
|
107
|
+
if (session.requiredTransport &&
|
|
108
|
+
session.transport !== session.requiredTransport) {
|
|
109
|
+
return c.json({ error: "gateway session transport constraint is no longer satisfied" }, 503);
|
|
110
|
+
}
|
|
102
111
|
if (usesOpenAIProvider(session.provider)) {
|
|
103
112
|
return handleMessagesViaOpenAI(c, {
|
|
104
113
|
token: session.token,
|
|
105
114
|
gatewayToken: session.gatewayToken,
|
|
106
115
|
accountId: session.accountId,
|
|
107
116
|
sessionId: session.sessionId,
|
|
117
|
+
...(session.requiredTransport
|
|
118
|
+
? { requiredTransport: session.requiredTransport }
|
|
119
|
+
: {}),
|
|
108
120
|
}, body);
|
|
109
121
|
}
|
|
110
122
|
return handleMessagesViaAnthropic(c, session, body);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-anthropic.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/proxy-anthropic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EACL,WAAW,EACX,oBAAoB,GAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,2BAA2B,CAAC;AAEpE,MAAM,2BAA2B,GAAG;IAClC,mBAAmB;IACnB,gBAAgB;IAChB,cAAc;CACN,CAAC;AAEX,MAAM,4BAA4B,GAAG;IACnC,cAAc;IACd,mBAAmB;IACnB,aAAa;CACL,CAAC;AAEX,SAAS,uBAAuB,CAAC,CAAU;IACzC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEvE,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,CAAC;AACvD,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAkB;IACjD,OAAO,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,QAAkB;IACrC,OAAO,YAAY,QAAQ,CAAC,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,YAAoB,EACpB,OAAqB,EACrB,QAAkB,EAClB,KAAqB;IAErB,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"proxy-anthropic.js","sourceRoot":"","sources":["../../src/llm-gateway-runtime/proxy-anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* Anthropic) can transparently use OpenAI/Codex models.
|
|
7
7
|
*
|
|
8
8
|
* Model mapping (overridable via OPENAI_MODEL_MAP env JSON):
|
|
9
|
-
* claude-opus-4-8
|
|
9
|
+
* claude-opus-4-8 → gpt-5.6-terra
|
|
10
|
+
* claude-opus-4-7 → gpt-5.5
|
|
10
11
|
* claude-sonnet-4-6 / claude-sonnet-4-5 → gpt-5.5
|
|
11
12
|
* claude-haiku-* → gpt-5.5
|
|
12
13
|
*
|
|
@@ -17,11 +18,12 @@
|
|
|
17
18
|
* < 8 000 / none → "low"
|
|
18
19
|
*/
|
|
19
20
|
import type { Context } from "hono";
|
|
21
|
+
import { type GatewayUpstreamTransport } from "./accounts.js";
|
|
20
22
|
export declare function mapModel(anthropicModel: string): string;
|
|
21
23
|
/**
|
|
22
24
|
* Anthropic thinking budget_tokens → OpenAI reasoning_effort.
|
|
23
25
|
* Covers all 4 Claude effort tiers:
|
|
24
|
-
* xhigh (≥ 50 k) → "xhigh" (pass-through;
|
|
26
|
+
* xhigh (≥ 50 k) → "xhigh" (pass-through; upstream rejection stays explicit)
|
|
25
27
|
* high (≥ 25 k) → "high"
|
|
26
28
|
* med (≥ 8 k) → "medium"
|
|
27
29
|
* low (< 8 k) → "low"
|
|
@@ -113,6 +115,7 @@ export declare function handleMessagesViaOpenAI(c: Context, session: {
|
|
|
113
115
|
gatewayToken?: string;
|
|
114
116
|
accountId?: string;
|
|
115
117
|
sessionId?: string;
|
|
118
|
+
requiredTransport?: GatewayUpstreamTransport;
|
|
116
119
|
}, requestBody?: ArrayBuffer): Promise<Response>;
|
|
117
120
|
export {};
|
|
118
121
|
//# sourceMappingURL=proxy-openai.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-openai.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/proxy-openai.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"proxy-openai.d.ts","sourceRoot":"","sources":["../../src/llm-gateway-runtime/proxy-openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* Anthropic) can transparently use OpenAI/Codex models.
|
|
7
7
|
*
|
|
8
8
|
* Model mapping (overridable via OPENAI_MODEL_MAP env JSON):
|
|
9
|
-
* claude-opus-4-8
|
|
9
|
+
* claude-opus-4-8 → gpt-5.6-terra
|
|
10
|
+
* claude-opus-4-7 → gpt-5.5
|
|
10
11
|
* claude-sonnet-4-6 / claude-sonnet-4-5 → gpt-5.5
|
|
11
12
|
* claude-haiku-* → gpt-5.5
|
|
12
13
|
*
|
|
@@ -17,17 +18,12 @@
|
|
|
17
18
|
* < 8 000 / none → "low"
|
|
18
19
|
*/
|
|
19
20
|
import { CODEX_RESPONSES_URL } from "@sentropic/llm-gateway";
|
|
20
|
-
import { refreshOAuthToken } from "./accounts.js";
|
|
21
|
+
import { isCodexOAuthToken, refreshOAuthToken, } from "./accounts.js";
|
|
21
22
|
import { updateSessionToken } from "./sticky.js";
|
|
22
23
|
import { routeModelOrThrow } from "./model-catalog.js";
|
|
23
|
-
import { recordSessionRequest } from "./session-ledger.js";
|
|
24
24
|
const OPENAI_BASE = process.env.OPENAI_UPSTREAM_URL ?? "https://api.openai.com";
|
|
25
25
|
const DEFAULT_CODEX_MAX_INPUT_CHARS = 200_000;
|
|
26
26
|
const CODEX_CONTEXT_TRUNCATION_NOTICE = "[llm-gateway: older Claude Code transcript omitted to fit the Codex upstream context window.]";
|
|
27
|
-
/** True if token is a ChatGPT Pro OAuth JWT (3-part base64url), not an sk-... API key. */
|
|
28
|
-
function isCodexOAuthToken(token) {
|
|
29
|
-
return !token.startsWith("sk-") && token.split(".").length === 3;
|
|
30
|
-
}
|
|
31
27
|
const TRANSIENT_UPSTREAM_ERROR_CODES = new Set([
|
|
32
28
|
"EAI_AGAIN",
|
|
33
29
|
"ECONNRESET",
|
|
@@ -121,7 +117,7 @@ export function mapModel(anthropicModel) {
|
|
|
121
117
|
/**
|
|
122
118
|
* Anthropic thinking budget_tokens → OpenAI reasoning_effort.
|
|
123
119
|
* Covers all 4 Claude effort tiers:
|
|
124
|
-
* xhigh (≥ 50 k) → "xhigh" (pass-through;
|
|
120
|
+
* xhigh (≥ 50 k) → "xhigh" (pass-through; upstream rejection stays explicit)
|
|
125
121
|
* high (≥ 25 k) → "high"
|
|
126
122
|
* med (≥ 8 k) → "medium"
|
|
127
123
|
* low (< 8 k) → "low"
|
|
@@ -1104,8 +1100,14 @@ export async function handleMessagesViaOpenAI(c, session, requestBody) {
|
|
|
1104
1100
|
catch (err) {
|
|
1105
1101
|
return c.json(anthropicGatewayError(err instanceof Error ? err.message : String(err)), 400);
|
|
1106
1102
|
}
|
|
1107
|
-
|
|
1108
|
-
|
|
1103
|
+
const tokenTransport = isCodexOAuthToken(session.token)
|
|
1104
|
+
? "codex-responses"
|
|
1105
|
+
: "openai-chat-completions";
|
|
1106
|
+
if (session.requiredTransport &&
|
|
1107
|
+
tokenTransport !== session.requiredTransport) {
|
|
1108
|
+
return c.json({ error: "gateway credential no longer satisfies session transport" }, 503);
|
|
1109
|
+
}
|
|
1110
|
+
const isCodex = tokenTransport === "codex-responses";
|
|
1109
1111
|
const codexContext = isCodex ? trimCodexBodyForContext(body) : null;
|
|
1110
1112
|
const upstreamBody = codexContext?.body ?? body;
|
|
1111
1113
|
if (codexContext?.trimmed) {
|
|
@@ -1115,14 +1117,35 @@ export async function handleMessagesViaOpenAI(c, session, requestBody) {
|
|
|
1115
1117
|
const upstreamReq = isCodex
|
|
1116
1118
|
? toCodexRequest(upstreamBody)
|
|
1117
1119
|
: toOpenAIRequest(upstreamBody);
|
|
1120
|
+
// Build the Codex request ONCE. Response attestation is derived from this
|
|
1121
|
+
// exact post-mapping payload, never copied from the Anthropic input.
|
|
1122
|
+
const codexRequest = isCodex
|
|
1123
|
+
? prepareCodexResponsesRequest(upstreamReq)
|
|
1124
|
+
: undefined;
|
|
1125
|
+
const attestedModel = codexRequest?.body.model;
|
|
1126
|
+
const attestedEffort = codexRequest
|
|
1127
|
+
? codexRequestEffort(codexRequest.body)
|
|
1128
|
+
: undefined;
|
|
1129
|
+
const withCodexAttestation = (response) => {
|
|
1130
|
+
if (!codexRequest)
|
|
1131
|
+
return response;
|
|
1132
|
+
const headers = new Headers(response.headers);
|
|
1133
|
+
if (typeof attestedModel === "string")
|
|
1134
|
+
headers.set("x-h2a-resolved-model", attestedModel);
|
|
1135
|
+
if (attestedEffort)
|
|
1136
|
+
headers.set("x-h2a-reasoning-effort", attestedEffort);
|
|
1137
|
+
return new Response(response.body, {
|
|
1138
|
+
status: response.status,
|
|
1139
|
+
statusText: response.statusText,
|
|
1140
|
+
headers,
|
|
1141
|
+
});
|
|
1142
|
+
};
|
|
1118
1143
|
const messageId = `msg_${Date.now().toString(36)}`;
|
|
1119
1144
|
const estimatedInputTokens = Math.ceil(JSON.stringify(upstreamBody.messages).length / 4);
|
|
1120
1145
|
const doFetch = (token) => {
|
|
1121
|
-
if (
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
if (effort) {
|
|
1125
|
-
console.info(`[llm-gateway] Codex request: model=${String(codexRequest.body.model ?? "")} reasoning.effort=${effort}`);
|
|
1146
|
+
if (codexRequest) {
|
|
1147
|
+
if (attestedEffort) {
|
|
1148
|
+
console.info(`[llm-gateway] Codex request: model=${String(codexRequest.body.model ?? "")} reasoning.effort=${attestedEffort}`);
|
|
1126
1149
|
}
|
|
1127
1150
|
return fetch(codexRequest.url, {
|
|
1128
1151
|
method: "POST",
|
|
@@ -1192,21 +1215,21 @@ export async function handleMessagesViaOpenAI(c, session, requestBody) {
|
|
|
1192
1215
|
}
|
|
1193
1216
|
if (body.stream && isCodex && upstream.body) {
|
|
1194
1217
|
const stream = translateCodexStreamToAnthropic(upstream.body, originalModel, messageId, estimatedInputTokens);
|
|
1195
|
-
return new Response(stream, {
|
|
1218
|
+
return withCodexAttestation(new Response(stream, {
|
|
1196
1219
|
status: 200,
|
|
1197
1220
|
headers: {
|
|
1198
1221
|
"content-type": "text/event-stream; charset=utf-8",
|
|
1199
1222
|
"cache-control": "no-cache",
|
|
1200
1223
|
"x-accel-buffering": "no",
|
|
1201
1224
|
},
|
|
1202
|
-
});
|
|
1225
|
+
}));
|
|
1203
1226
|
}
|
|
1204
1227
|
// Codex OAuth Responses API streams even for requests where the Anthropic
|
|
1205
1228
|
// client expects a non-streaming JSON message. In that case collect the SSE
|
|
1206
1229
|
// upstream and return a normal Anthropic Messages JSON response.
|
|
1207
1230
|
if (isCodex && upstream.body) {
|
|
1208
1231
|
try {
|
|
1209
|
-
return c.json(await codexStreamToAnthropicResponse(upstream.body, originalModel, messageId, estimatedInputTokens));
|
|
1232
|
+
return withCodexAttestation(c.json(await codexStreamToAnthropicResponse(upstream.body, originalModel, messageId, estimatedInputTokens)));
|
|
1210
1233
|
}
|
|
1211
1234
|
catch (err) {
|
|
1212
1235
|
return c.json(anthropicGatewayError(err instanceof Error ? err.message : String(err)), 502);
|