diff --git a/src/agents/pi-bundle-mcp-runtime.test.ts b/src/agents/pi-bundle-mcp-runtime.test.ts index eea3fd5f772..ca90cea4721 100644 --- a/src/agents/pi-bundle-mcp-runtime.test.ts +++ b/src/agents/pi-bundle-mcp-runtime.test.ts @@ -68,7 +68,7 @@ describe("session MCP runtime", () => { { toolName: "alpha?", description: "question" }, { toolName: "alpha!", description: "bang" }, ]; - const catalogB = [...catalogA].reverse(); + const catalogB = catalogA.toReversed(); const materializedA = await materializeBundleMcpToolsForRun({ runtime: makeRuntime(catalogA), diff --git a/src/infra/provider-usage.auth.normalizes-keys.test.ts b/src/infra/provider-usage.auth.normalizes-keys.test.ts index d9872b30f1f..e7928071a27 100644 --- a/src/infra/provider-usage.auth.normalizes-keys.test.ts +++ b/src/infra/provider-usage.auth.normalizes-keys.test.ts @@ -200,6 +200,7 @@ describe("resolveProviderAuths key normalization", () => { Z_AI_API_KEY: undefined, MINIMAX_API_KEY: undefined, MINIMAX_CODE_PLAN_KEY: undefined, + MINIMAX_CODING_API_KEY: undefined, XIAOMI_API_KEY: undefined, } satisfies Record; @@ -416,6 +417,16 @@ describe("resolveProviderAuths key normalization", () => { }); }); + it("accepts MINIMAX_CODING_API_KEY as a coding-plan alias", async () => { + await expectResolvedAuthsFromSuiteHome({ + providers: ["minimax"], + env: { + MINIMAX_CODING_API_KEY: "coding-api-key", + }, + expected: [{ provider: "minimax", token: "coding-api-key" }], + }); + }); + it("strips embedded CR/LF from stored auth profiles (token + api_key)", async () => { await expectResolvedAuthsFromSuiteHome({ providers: ["minimax", "xiaomi"], diff --git a/src/infra/provider-usage.auth.ts b/src/infra/provider-usage.auth.ts index 1a8de8a8bf5..832f624d54a 100644 --- a/src/infra/provider-usage.auth.ts +++ b/src/infra/provider-usage.auth.ts @@ -170,7 +170,25 @@ async function resolveProviderUsageAuthFallback(params: { state: UsageAuthState; provider: UsageProviderId; }): Promise { - void params; + const oauthToken = await resolveOAuthToken({ + state: params.state, + provider: params.provider, + }); + if (oauthToken) { + return oauthToken; + } + + const apiKey = resolveProviderApiKeyFromConfigAndStore({ + state: params.state, + providerIds: [params.provider], + }); + if (apiKey) { + return { + provider: params.provider, + token: apiKey, + }; + } + return null; }