From 26b3859b18389f1f237128aabda1df0ed4ffdee6 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 15 Feb 2026 13:18:41 +0000 Subject: [PATCH] refactor(infra): dedupe provider api key resolution --- src/infra/provider-usage.auth.ts | 58 +++++++++++--------------------- 1 file changed, 19 insertions(+), 39 deletions(-) diff --git a/src/infra/provider-usage.auth.ts b/src/infra/provider-usage.auth.ts index 4b7b804fd6..2c92c09389 100644 --- a/src/infra/provider-usage.auth.ts +++ b/src/infra/provider-usage.auth.ts @@ -80,61 +80,41 @@ function resolveZaiApiKey(): string | undefined { } function resolveMinimaxApiKey(): string | undefined { - const envDirect = - normalizeSecretInput(process.env.MINIMAX_CODE_PLAN_KEY) || - normalizeSecretInput(process.env.MINIMAX_API_KEY); - if (envDirect) { - return envDirect; - } - - const envResolved = resolveEnvApiKey("minimax"); - if (envResolved?.apiKey) { - return envResolved.apiKey; - } - - const cfg = loadConfig(); - const key = getCustomProviderApiKey(cfg, "minimax"); - if (key) { - return key; - } - - const store = ensureAuthProfileStore(); - const apiProfile = listProfilesForProvider(store, "minimax").find((id) => { - const cred = store.profiles[id]; - return cred?.type === "api_key" || cred?.type === "token"; + return resolveProviderApiKeyFromConfigAndStore({ + providerId: "minimax", + envDirect: [process.env.MINIMAX_CODE_PLAN_KEY, process.env.MINIMAX_API_KEY], }); - if (!apiProfile) { - return undefined; - } - const cred = store.profiles[apiProfile]; - if (cred?.type === "api_key" && normalizeSecretInput(cred.key)) { - return normalizeSecretInput(cred.key); - } - if (cred?.type === "token" && normalizeSecretInput(cred.token)) { - return normalizeSecretInput(cred.token); - } - return undefined; } function resolveXiaomiApiKey(): string | undefined { - const envDirect = normalizeSecretInput(process.env.XIAOMI_API_KEY); + return resolveProviderApiKeyFromConfigAndStore({ + providerId: "xiaomi", + envDirect: [process.env.XIAOMI_API_KEY], + }); +} + +function resolveProviderApiKeyFromConfigAndStore(params: { + providerId: UsageProviderId; + envDirect: Array; +}): string | undefined { + const envDirect = params.envDirect.map(normalizeSecretInput).find(Boolean); if (envDirect) { return envDirect; } - const envResolved = resolveEnvApiKey("xiaomi"); + const envResolved = resolveEnvApiKey(params.providerId); if (envResolved?.apiKey) { return envResolved.apiKey; } const cfg = loadConfig(); - const key = getCustomProviderApiKey(cfg, "xiaomi"); + const key = getCustomProviderApiKey(cfg, params.providerId); if (key) { return key; } const store = ensureAuthProfileStore(); - const apiProfile = listProfilesForProvider(store, "xiaomi").find((id) => { + const apiProfile = listProfilesForProvider(store, params.providerId).find((id) => { const cred = store.profiles[id]; return cred?.type === "api_key" || cred?.type === "token"; }); @@ -142,10 +122,10 @@ function resolveXiaomiApiKey(): string | undefined { return undefined; } const cred = store.profiles[apiProfile]; - if (cred?.type === "api_key" && normalizeSecretInput(cred.key)) { + if (cred?.type === "api_key") { return normalizeSecretInput(cred.key); } - if (cred?.type === "token" && normalizeSecretInput(cred.token)) { + if (cred?.type === "token") { return normalizeSecretInput(cred.token); } return undefined;