mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-19 18:39:20 -05:00
refactor(infra): dedupe provider api key resolution
This commit is contained in:
@@ -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>;
|
||||
}): 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;
|
||||
|
||||
Reference in New Issue
Block a user