@jeffreycao/copilot-api 1.10.11 → 1.10.12
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/{auth-BO_SkMVw.js → auth-9cNGmKTS.js} +2 -2
- package/dist/{auth-BO_SkMVw.js.map → auth-9cNGmKTS.js.map} +1 -1
- package/dist/{check-usage-D-W6VD7k.js → check-usage-TtF-fhRm.js} +2 -2
- package/dist/{check-usage-D-W6VD7k.js.map → check-usage-TtF-fhRm.js.map} +1 -1
- package/dist/main.js +3 -3
- package/dist/{server-2tRe3sDu.js → server-C3iJWAUP.js} +36 -6
- package/dist/{server-2tRe3sDu.js.map → server-C3iJWAUP.js.map} +1 -1
- package/dist/{start-CM-b3DRX.js → start-DSzP59pP.js} +3 -3
- package/dist/{start-CM-b3DRX.js.map → start-DSzP59pP.js.map} +1 -1
- package/dist/{token-BVXHiYEl.js → token-CQHif3s_.js} +32 -11
- package/dist/token-CQHif3s_.js.map +1 -0
- package/package.json +1 -1
- package/dist/token-BVXHiYEl.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { H as state, M as loginCodex, a as setupGitHubToken, n as persistCodexCredentials } from "./token-
|
|
1
|
+
import { H as state, M as loginCodex, a as setupGitHubToken, n as persistCodexCredentials } from "./token-CQHif3s_.js";
|
|
2
2
|
import { b as ensurePaths, y as PATHS } from "./config-ztdkLu9o.js";
|
|
3
3
|
import { defineCommand } from "citty";
|
|
4
4
|
import consola from "consola";
|
|
@@ -113,4 +113,4 @@ const auth = defineCommand({
|
|
|
113
113
|
//#endregion
|
|
114
114
|
export { auth };
|
|
115
115
|
|
|
116
|
-
//# sourceMappingURL=auth-
|
|
116
|
+
//# sourceMappingURL=auth-9cNGmKTS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-
|
|
1
|
+
{"version":3,"file":"auth-9cNGmKTS.js","names":[],"sources":["../src/auth.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { defineCommand } from \"citty\"\nimport consola from \"consola\"\n\nimport { loginCodex } from \"./lib/oauth/codex\"\nimport { PATHS, ensurePaths } from \"./lib/paths\"\nimport { state } from \"./lib/state\"\nimport { persistCodexCredentials, setupGitHubToken } from \"./lib/token\"\n\ninterface RunAuthOptions {\n provider?: string\n verbose: boolean\n showToken: boolean\n}\n\nconst authArgs = {\n provider: {\n type: \"string\",\n description: \"Provider to log in with (copilot or codex)\",\n },\n verbose: {\n alias: \"v\",\n type: \"boolean\",\n default: false,\n description: \"Enable verbose logging\",\n },\n \"show-token\": {\n type: \"boolean\",\n default: false,\n description: \"Show provider access token on auth\",\n },\n} as const\n\nconst BUILTIN_PROVIDER_NAMES = [\"copilot\", \"codex\"] as const\n\ntype BuiltinProviderName = (typeof BUILTIN_PROVIDER_NAMES)[number]\n\nconst BUILTIN_PROVIDER_LABELS: Record<BuiltinProviderName, string> = {\n copilot: \"GitHub Copilot\",\n codex: \"OpenAI Codex\",\n}\n\nfunction isBuiltinProviderName(\n providerName: string,\n): providerName is BuiltinProviderName {\n return BUILTIN_PROVIDER_NAMES.includes(providerName as BuiltinProviderName)\n}\n\nasync function resolveProviderSelection(\n providerArg: string | undefined,\n): Promise<BuiltinProviderName> {\n const availableProviders = [...BUILTIN_PROVIDER_NAMES]\n\n if (providerArg !== undefined) {\n const providerName = providerArg.trim()\n if (!isBuiltinProviderName(providerName)) {\n throw new Error(\n `Unknown provider '${providerArg}'. Expected one of: ${availableProviders.join(\", \")}`,\n )\n }\n return providerName\n }\n\n if (availableProviders.length === 1) {\n return availableProviders[0]\n }\n\n const provider = await consola.prompt(\"Select a provider to log in with\", {\n type: \"select\",\n options: availableProviders.map((providerName) => ({\n label: `${BUILTIN_PROVIDER_LABELS[providerName]} (${providerName})`,\n value: providerName,\n })),\n })\n\n if (!provider || !isBuiltinProviderName(provider)) {\n throw new Error(\"No provider selected\")\n }\n\n return provider\n}\n\nasync function loginWithCodex(): Promise<void> {\n const credentials = await loginCodex({\n onAuth(info) {\n consola.info(\"Open the following URL to authenticate with Codex:\")\n consola.log(info.url)\n if (info.instructions) {\n consola.info(info.instructions)\n }\n },\n onPrompt(message) {\n return consola.prompt(message, {\n type: \"text\",\n })\n },\n onProgress(message) {\n consola.debug(message)\n },\n })\n\n await persistCodexCredentials(credentials, { enableProvider: true })\n consola.success(\n `Codex provider config written to ${PATHS.CONFIG_PATH} and credentials written to ${PATHS.CODEX_CREDENTIAL_PATH}`,\n )\n}\n\nasync function loginWithProvider(provider: BuiltinProviderName): Promise<void> {\n if (provider === \"copilot\") {\n await setupGitHubToken({ force: true })\n consola.success(\"GitHub token written to\", PATHS.GITHUB_TOKEN_PATH)\n return\n }\n\n await loginWithCodex()\n}\n\nexport async function runAuthLogin(options: RunAuthOptions): Promise<void> {\n if (options.verbose) {\n consola.level = 5\n consola.info(\"Verbose logging enabled\")\n }\n\n state.showToken = options.showToken\n\n await ensurePaths()\n const provider = await resolveProviderSelection(options.provider)\n\n consola.info(`Logging in with ${BUILTIN_PROVIDER_LABELS[provider]}`)\n await loginWithProvider(provider)\n}\n\nconst authLogin = defineCommand({\n meta: {\n name: \"login\",\n description: \"Authenticate a builtin provider without running the server\",\n },\n args: authArgs,\n run({ args }) {\n return runAuthLogin({\n provider: args.provider,\n verbose: args.verbose,\n showToken: args[\"show-token\"],\n })\n },\n})\n\nexport const auth = defineCommand({\n meta: {\n name: \"auth\",\n description: \"Run authentication flows without running the server\",\n },\n args: authArgs,\n subCommands: {\n login: authLogin,\n },\n run({ args }) {\n if ((args._[0] ?? \"\").trim()) {\n return\n }\n\n return runAuthLogin({\n provider: args.provider,\n verbose: args.verbose,\n showToken: args[\"show-token\"],\n })\n },\n})\n"],"mappings":";;;;;AAgBA,MAAM,WAAW;CACf,UAAU;EACR,MAAM;EACN,aAAa;EACd;CACD,SAAS;EACP,OAAO;EACP,MAAM;EACN,SAAS;EACT,aAAa;EACd;CACD,cAAc;EACZ,MAAM;EACN,SAAS;EACT,aAAa;EACd;CACF;AAED,MAAM,yBAAyB,CAAC,WAAW,QAAQ;AAInD,MAAM,0BAA+D;CACnE,SAAS;CACT,OAAO;CACR;AAED,SAAS,sBACP,cACqC;CACrC,OAAO,uBAAuB,SAAS,aAAoC;;AAG7E,eAAe,yBACb,aAC8B;CAC9B,MAAM,qBAAqB,CAAC,GAAG,uBAAuB;CAEtD,IAAI,gBAAgB,KAAA,GAAW;EAC7B,MAAM,eAAe,YAAY,MAAM;EACvC,IAAI,CAAC,sBAAsB,aAAa,EACtC,MAAM,IAAI,MACR,qBAAqB,YAAY,sBAAsB,mBAAmB,KAAK,KAAK,GACrF;EAEH,OAAO;;CAGT,IAAI,mBAAmB,WAAW,GAChC,OAAO,mBAAmB;CAG5B,MAAM,WAAW,MAAM,QAAQ,OAAO,oCAAoC;EACxE,MAAM;EACN,SAAS,mBAAmB,KAAK,kBAAkB;GACjD,OAAO,GAAG,wBAAwB,cAAc,IAAI,aAAa;GACjE,OAAO;GACR,EAAE;EACJ,CAAC;CAEF,IAAI,CAAC,YAAY,CAAC,sBAAsB,SAAS,EAC/C,MAAM,IAAI,MAAM,uBAAuB;CAGzC,OAAO;;AAGT,eAAe,iBAAgC;CAmB7C,MAAM,wBAAwB,MAlBJ,WAAW;EACnC,OAAO,MAAM;GACX,QAAQ,KAAK,qDAAqD;GAClE,QAAQ,IAAI,KAAK,IAAI;GACrB,IAAI,KAAK,cACP,QAAQ,KAAK,KAAK,aAAa;;EAGnC,SAAS,SAAS;GAChB,OAAO,QAAQ,OAAO,SAAS,EAC7B,MAAM,QACP,CAAC;;EAEJ,WAAW,SAAS;GAClB,QAAQ,MAAM,QAAQ;;EAEzB,CAAC,EAEyC,EAAE,gBAAgB,MAAM,CAAC;CACpE,QAAQ,QACN,oCAAoC,MAAM,YAAY,8BAA8B,MAAM,wBAC3F;;AAGH,eAAe,kBAAkB,UAA8C;CAC7E,IAAI,aAAa,WAAW;EAC1B,MAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;EACvC,QAAQ,QAAQ,2BAA2B,MAAM,kBAAkB;EACnE;;CAGF,MAAM,gBAAgB;;AAGxB,eAAsB,aAAa,SAAwC;CACzE,IAAI,QAAQ,SAAS;EACnB,QAAQ,QAAQ;EAChB,QAAQ,KAAK,0BAA0B;;CAGzC,MAAM,YAAY,QAAQ;CAE1B,MAAM,aAAa;CACnB,MAAM,WAAW,MAAM,yBAAyB,QAAQ,SAAS;CAEjE,QAAQ,KAAK,mBAAmB,wBAAwB,YAAY;CACpE,MAAM,kBAAkB,SAAS;;AAkBnC,MAAa,OAAO,cAAc;CAChC,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM;CACN,aAAa,EACX,OAtBc,cAAc;EAC9B,MAAM;GACJ,MAAM;GACN,aAAa;GACd;EACD,MAAM;EACN,IAAI,EAAE,QAAQ;GACZ,OAAO,aAAa;IAClB,UAAU,KAAK;IACf,SAAS,KAAK;IACd,WAAW,KAAK;IACjB,CAAC;;EAEL,CASU,EACR;CACD,IAAI,EAAE,QAAQ;EACZ,KAAK,KAAK,EAAE,MAAM,IAAI,MAAM,EAC1B;EAGF,OAAO,aAAa;GAClB,UAAU,KAAK;GACf,SAAS,KAAK;GACd,WAAW,KAAK;GACjB,CAAC;;CAEL,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as getCopilotUsage, a as setupGitHubToken } from "./token-
|
|
1
|
+
import { _ as getCopilotUsage, a as setupGitHubToken } from "./token-CQHif3s_.js";
|
|
2
2
|
import { b as ensurePaths } from "./config-ztdkLu9o.js";
|
|
3
3
|
import { defineCommand } from "citty";
|
|
4
4
|
import consola from "consola";
|
|
@@ -39,4 +39,4 @@ const checkUsage = defineCommand({
|
|
|
39
39
|
//#endregion
|
|
40
40
|
export { checkUsage };
|
|
41
41
|
|
|
42
|
-
//# sourceMappingURL=check-usage-
|
|
42
|
+
//# sourceMappingURL=check-usage-TtF-fhRm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-usage-
|
|
1
|
+
{"version":3,"file":"check-usage-TtF-fhRm.js","names":[],"sources":["../src/check-usage.ts"],"sourcesContent":["import { defineCommand } from \"citty\"\nimport consola from \"consola\"\n\nimport { ensurePaths } from \"./lib/paths\"\nimport { setupGitHubToken } from \"./lib/token\"\nimport {\n getCopilotUsage,\n type QuotaDetail,\n} from \"./services/github/get-copilot-usage\"\n\nexport const checkUsage = defineCommand({\n meta: {\n name: \"check-usage\",\n description: \"Show current GitHub Copilot usage/quota information\",\n },\n async run() {\n await ensurePaths()\n await setupGitHubToken()\n try {\n const usage = await getCopilotUsage()\n const premium = usage.quota_snapshots.premium_interactions\n const premiumTotal = premium.entitlement\n const premiumUsed = premiumTotal - premium.remaining\n const premiumPercentUsed =\n premiumTotal > 0 ? (premiumUsed / premiumTotal) * 100 : 0\n const premiumPercentRemaining = premium.percent_remaining\n\n // Helper to summarize a quota snapshot\n function summarizeQuota(name: string, snap: QuotaDetail | undefined) {\n if (!snap) return `${name}: N/A`\n const total = snap.entitlement\n const used = total - snap.remaining\n const percentUsed = total > 0 ? (used / total) * 100 : 0\n const percentRemaining = snap.percent_remaining\n return `${name}: ${used}/${total} used (${percentUsed.toFixed(1)}% used, ${percentRemaining.toFixed(1)}% remaining)`\n }\n\n const premiumLine = `Premium: ${premiumUsed}/${premiumTotal} used (${premiumPercentUsed.toFixed(1)}% used, ${premiumPercentRemaining.toFixed(1)}% remaining)`\n const chatLine = summarizeQuota(\"Chat\", usage.quota_snapshots.chat)\n const completionsLine = summarizeQuota(\n \"Completions\",\n usage.quota_snapshots.completions,\n )\n\n consola.box(\n `Copilot Usage (plan: ${usage.copilot_plan})\\n`\n + `Quota resets: ${usage.quota_reset_date}\\n`\n + `\\nQuotas:\\n`\n + ` ${premiumLine}\\n`\n + ` ${chatLine}\\n`\n + ` ${completionsLine}`,\n )\n } catch (err) {\n consola.error(\"Failed to fetch Copilot usage:\", err)\n process.exit(1)\n }\n },\n})\n"],"mappings":";;;;;AAUA,MAAa,aAAa,cAAc;CACtC,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM,MAAM;EACV,MAAM,aAAa;EACnB,MAAM,kBAAkB;EACxB,IAAI;GACF,MAAM,QAAQ,MAAM,iBAAiB;GACrC,MAAM,UAAU,MAAM,gBAAgB;GACtC,MAAM,eAAe,QAAQ;GAC7B,MAAM,cAAc,eAAe,QAAQ;GAC3C,MAAM,qBACJ,eAAe,IAAK,cAAc,eAAgB,MAAM;GAC1D,MAAM,0BAA0B,QAAQ;GAGxC,SAAS,eAAe,MAAc,MAA+B;IACnE,IAAI,CAAC,MAAM,OAAO,GAAG,KAAK;IAC1B,MAAM,QAAQ,KAAK;IACnB,MAAM,OAAO,QAAQ,KAAK;IAC1B,MAAM,cAAc,QAAQ,IAAK,OAAO,QAAS,MAAM;IACvD,MAAM,mBAAmB,KAAK;IAC9B,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,SAAS,YAAY,QAAQ,EAAE,CAAC,UAAU,iBAAiB,QAAQ,EAAE,CAAC;;GAGzG,MAAM,cAAc,YAAY,YAAY,GAAG,aAAa,SAAS,mBAAmB,QAAQ,EAAE,CAAC,UAAU,wBAAwB,QAAQ,EAAE,CAAC;GAChJ,MAAM,WAAW,eAAe,QAAQ,MAAM,gBAAgB,KAAK;GACnE,MAAM,kBAAkB,eACtB,eACA,MAAM,gBAAgB,YACvB;GAED,QAAQ,IACN,wBAAwB,MAAM,aAAa,mBACtB,MAAM,iBAAiB,iBAEnC,YAAY,MACZ,SAAS,MACT,kBACV;WACM,KAAK;GACZ,QAAQ,MAAM,kCAAkC,IAAI;GACpD,QAAQ,KAAK,EAAE;;;CAGpB,CAAC"}
|
package/dist/main.js
CHANGED
|
@@ -39,11 +39,11 @@ if (typeof args["api-home"] === "string") process.env.COPILOT_API_HOME = args["a
|
|
|
39
39
|
if (typeof args["oauth-app"] === "string") process.env.COPILOT_API_OAUTH_APP = args["oauth-app"];
|
|
40
40
|
if (typeof args["enterprise-url"] === "string") process.env.COPILOT_API_ENTERPRISE_URL = args["enterprise-url"];
|
|
41
41
|
bindElectronFetch();
|
|
42
|
-
const { auth } = await import("./auth-
|
|
43
|
-
const { checkUsage } = await import("./check-usage-
|
|
42
|
+
const { auth } = await import("./auth-9cNGmKTS.js");
|
|
43
|
+
const { checkUsage } = await import("./check-usage-TtF-fhRm.js");
|
|
44
44
|
const { debug } = await import("./debug-BVHmoCzY.js");
|
|
45
45
|
const { mcp } = await import("./mcp-DZgcvqQY.js");
|
|
46
|
-
const { start } = await import("./start-
|
|
46
|
+
const { start } = await import("./start-DSzP59pP.js");
|
|
47
47
|
await runMain(defineCommand({
|
|
48
48
|
meta: {
|
|
49
49
|
name: "copilot-api",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as compactSystemPromptStarts, B as createWebSocketUrl, C as prepareForCompact, D as compactAutoContinuePromptStarts, F as normalizeCodexResponsesEvent, H as state, I as generateTraceId, L as requestContext, N as createStandardizedCodexResponsesEventStream, O as compactMessageSections, P as forwardCodexResponses, R as resolveTraceId$1, S as copilotWebSocketHeaders, T as prepareMessageProxyHeaders, U as logCodexRateLimitsEvent, _ as getCopilotUsage, b as copilotBaseUrl, d as generateRequestIdFromPayload, f as getRootSessionId, g as sleep, h as parseUserIdMetadata, m as isNullish, p as getUUID, r as setupCodexToken, s as cacheModels, v as HTTPError, w as prepareInteractionHeaders, x as copilotHeaders, y as forwardError, z as createPooledWebSocketStream } from "./token-
|
|
1
|
+
import { A as compactSystemPromptStarts, B as createWebSocketUrl, C as prepareForCompact, D as compactAutoContinuePromptStarts, F as normalizeCodexResponsesEvent, H as state, I as generateTraceId, L as requestContext, N as createStandardizedCodexResponsesEventStream, O as compactMessageSections, P as forwardCodexResponses, R as resolveTraceId$1, S as copilotWebSocketHeaders, T as prepareMessageProxyHeaders, U as logCodexRateLimitsEvent, _ as getCopilotUsage, b as copilotBaseUrl, d as generateRequestIdFromPayload, f as getRootSessionId, g as sleep, h as parseUserIdMetadata, m as isNullish, p as getUUID, r as setupCodexToken, s as cacheModels, v as HTTPError, w as prepareInteractionHeaders, x as copilotHeaders, y as forwardError, z as createPooledWebSocketStream } from "./token-CQHif3s_.js";
|
|
2
2
|
import { _ as setModelMappings, a as getModelMappings, c as getReasoningEffortForModel, d as isResponsesApiContextManagementModel, f as isResponsesApiWebSearchEnabled, g as resolveMappedModel, i as getExtraPromptForModel, l as getSmallModel, n as getClaudeTokenMultiplier, o as getProviderConfig, p as isResponsesApiWebSocketEnabled, r as getConfig, s as getRawProviderConfig, t as getAnthropicApiKey, u as isMessagesApiEnabled, y as PATHS } from "./config-ztdkLu9o.js";
|
|
3
3
|
import { a as isDeferredToolName, c as parseMcpToolSearchSentinel, d as shouldEnableResponsesToolSearch, i as isBridgeToolSearchName, l as resolveBridgeToolSearchName, o as listDeferredToolNames, r as formatToolSearchBridgeArguments, s as normalizeToolSearchBridgeArguments, t as BRIDGE_TOOL_SEARCH_NAME, u as selectDeferredToolsByNames } from "./tool-search-wA-fLduL.js";
|
|
4
4
|
import consola from "consola";
|
|
@@ -4803,15 +4803,39 @@ providerModelRoutes.get("/", async (c) => {
|
|
|
4803
4803
|
const logger$2 = createHandlerLogger("provider-responses-handler");
|
|
4804
4804
|
async function handleProviderResponsesForProvider(c, options) {
|
|
4805
4805
|
const { payload, provider } = options;
|
|
4806
|
+
debugJson(logger$2, "Responses request payload:", {
|
|
4807
|
+
payload,
|
|
4808
|
+
provider
|
|
4809
|
+
});
|
|
4806
4810
|
const providerConfig = await resolveProviderConfig(provider);
|
|
4807
4811
|
if (providerConfig?.type !== "openai-responses") return c.json({ error: {
|
|
4808
4812
|
message: `Provider '${provider}' does not support the /v1/responses endpoint`,
|
|
4809
4813
|
type: "invalid_request_error"
|
|
4810
4814
|
} }, 400);
|
|
4811
|
-
applyResponsesApiContextManagement(payload, (providerConfig.name === "codex" ? getModels().data.find((model) => model.id === payload.model) : void 0)?.capabilities.limits.max_prompt_tokens);
|
|
4815
|
+
applyResponsesApiContextManagement(payload, (providerConfig.name === "codex" ? getModels().data.find((model) => model.id === payload.model) : void 0)?.capabilities.limits.max_prompt_tokens ?? 0);
|
|
4816
|
+
const contextManagement = payload.context_management;
|
|
4817
|
+
debugJson(logger$2, "Translated Responses request payload:", {
|
|
4818
|
+
contextManagement,
|
|
4819
|
+
provider
|
|
4820
|
+
});
|
|
4812
4821
|
const upstreamResponse = providerConfig.name === "codex" ? await forwardCodexResponses(payload, c.req.raw.headers, providerConfig.baseUrl) : await forwardProviderResponses(providerConfig, payload, c.req.raw.headers);
|
|
4813
4822
|
if (!upstreamResponse.ok) throw new HTTPError(`Failed to create ${provider} responses`, upstreamResponse);
|
|
4814
4823
|
const recordUsage = createProviderResponsesUsageRecorder(payload, provider);
|
|
4824
|
+
if (providerConfig.name === "codex" && payload.stream) {
|
|
4825
|
+
let usage = {};
|
|
4826
|
+
return createProviderProxyResponse(upstreamResponse, createStandardizedCodexResponsesEventStream(getResponsesEvents(upstreamResponse), {
|
|
4827
|
+
onClose: () => {
|
|
4828
|
+
recordUsage(usage);
|
|
4829
|
+
},
|
|
4830
|
+
onChunk: (chunk) => {
|
|
4831
|
+
debugJson(logger$2, "Responses stream chunk:", chunk);
|
|
4832
|
+
},
|
|
4833
|
+
onEvent: (event) => {
|
|
4834
|
+
const nextUsage = getResponsesStreamEventUsage(event);
|
|
4835
|
+
if (nextUsage) usage = nextUsage;
|
|
4836
|
+
}
|
|
4837
|
+
}));
|
|
4838
|
+
}
|
|
4815
4839
|
if (payload.stream) recordProviderResponsesStreamUsage(upstreamResponse.clone(), {
|
|
4816
4840
|
normalizeCodex: providerConfig.name === "codex",
|
|
4817
4841
|
provider,
|
|
@@ -4823,7 +4847,6 @@ async function handleProviderResponsesForProvider(c, options) {
|
|
|
4823
4847
|
});
|
|
4824
4848
|
});
|
|
4825
4849
|
else recordUsage(normalizeResponsesUsage((await upstreamResponse.clone().json()).usage));
|
|
4826
|
-
if (providerConfig.name === "codex" && payload.stream) return createProviderProxyResponse(upstreamResponse, createStandardizedCodexResponsesEventStream(getResponsesEvents(upstreamResponse)));
|
|
4827
4850
|
return createProviderProxyResponse(upstreamResponse);
|
|
4828
4851
|
}
|
|
4829
4852
|
const getErrorMessage = (error) => {
|
|
@@ -4849,7 +4872,10 @@ const recordProviderResponsesStreamUsage = async (upstreamResponse, options) =>
|
|
|
4849
4872
|
normalizeCodex: options.normalizeCodex,
|
|
4850
4873
|
provider: options.provider
|
|
4851
4874
|
});
|
|
4852
|
-
if (parsed
|
|
4875
|
+
if (parsed) {
|
|
4876
|
+
const nextUsage = getResponsesStreamEventUsage(parsed);
|
|
4877
|
+
if (nextUsage) usage = nextUsage;
|
|
4878
|
+
}
|
|
4853
4879
|
}
|
|
4854
4880
|
} finally {
|
|
4855
4881
|
options.recordUsage(usage);
|
|
@@ -4868,6 +4894,10 @@ const parseProviderResponsesStreamEvent = (data, options) => {
|
|
|
4868
4894
|
return null;
|
|
4869
4895
|
}
|
|
4870
4896
|
};
|
|
4897
|
+
const getResponsesStreamEventUsage = (event) => {
|
|
4898
|
+
if (event.type === "response.completed" || event.type === "response.failed" || event.type === "response.incomplete") return normalizeResponsesUsage(event.response.usage);
|
|
4899
|
+
return null;
|
|
4900
|
+
};
|
|
4871
4901
|
const getResponsesEvents = (response) => {
|
|
4872
4902
|
return events(response);
|
|
4873
4903
|
};
|
|
@@ -4917,7 +4947,6 @@ const responsesHandlerDependencies = {
|
|
|
4917
4947
|
};
|
|
4918
4948
|
const handleResponses = async (c) => {
|
|
4919
4949
|
const payload = await c.req.json();
|
|
4920
|
-
debugJson(logger$1, "Responses request payload:", payload);
|
|
4921
4950
|
const providerModelAlias = parseProviderModelAlias(payload.model);
|
|
4922
4951
|
if (providerModelAlias) {
|
|
4923
4952
|
payload.model = providerModelAlias.model;
|
|
@@ -4926,6 +4955,7 @@ const handleResponses = async (c) => {
|
|
|
4926
4955
|
provider: providerModelAlias.provider
|
|
4927
4956
|
});
|
|
4928
4957
|
}
|
|
4958
|
+
debugJson(logger$1, "Responses request payload:", payload);
|
|
4929
4959
|
await responsesHandlerDependencies.checkRateLimit(state);
|
|
4930
4960
|
const requestId = generateRequestIdFromPayload({ messages: payload.input });
|
|
4931
4961
|
logger$1.debug("Generated request ID:", requestId);
|
|
@@ -5125,4 +5155,4 @@ server.route("/:provider/v1/models", providerModelRoutes);
|
|
|
5125
5155
|
//#endregion
|
|
5126
5156
|
export { server };
|
|
5127
5157
|
|
|
5128
|
-
//# sourceMappingURL=server-
|
|
5158
|
+
//# sourceMappingURL=server-C3iJWAUP.js.map
|