

















@@ -1,20 +1,27 @@
11import { normalizeProviderId } from "../agents/model-selection.js";
2+import { resolveProviderAuthAliasMap } from "../agents/provider-auth-aliases.js";
23import { formatCliCommand } from "../cli/command-format.js";
34import type { OpenClawConfig } from "../config/types.openclaw.js";
4-import { resolvePluginProviders } from "../plugins/providers.runtime.js";
5+import { resolveManifestProviderAuthChoices } from "../plugins/provider-auth-choices.js";
566-function matchesProviderId(
7-candidate: { id: string; aliases?: string[] | readonly string[] },
7+function normalizeProviderIdForAuth(
88providerId: string,
9-): boolean {
9+aliases: Readonly<Record<string, string>>,
10+): string {
1011const normalized = normalizeProviderId(providerId);
12+return normalized ? (aliases[normalized] ?? normalized) : normalized;
13+}
14+15+function matchesProviderAuthChoice(
16+choice: { providerId: string },
17+providerId: string,
18+aliases: Readonly<Record<string, string>>,
19+): boolean {
20+const normalized = normalizeProviderIdForAuth(providerId, aliases);
1121if (!normalized) {
1222return false;
1323}
14-if (normalizeProviderId(candidate.id) === normalized) {
15-return true;
16-}
17-return (candidate.aliases ?? []).some((alias) => normalizeProviderId(alias) === normalized);
24+return normalizeProviderIdForAuth(choice.providerId, aliases) === normalized;
1825}
19262027export function resolveProviderAuthLoginCommand(params: {
@@ -23,16 +30,14 @@ export function resolveProviderAuthLoginCommand(params: {
2330workspaceDir?: string;
2431env?: NodeJS.ProcessEnv;
2532}): string | undefined {
26-const provider = resolvePluginProviders({
27-config: params.config,
28-workspaceDir: params.workspaceDir,
29-env: params.env,
30-mode: "setup",
31-}).find((candidate) => matchesProviderId(candidate, params.provider));
32-if (!provider || provider.auth.length === 0) {
33+const aliases = resolveProviderAuthAliasMap(params);
34+const choice = resolveManifestProviderAuthChoices(params).find((candidate) =>
35+matchesProviderAuthChoice(candidate, params.provider, aliases),
36+);
37+if (!choice) {
3338return undefined;
3439}
35-return formatCliCommand(`openclaw models auth login --provider ${provider.id}`);
40+return formatCliCommand(`openclaw models auth login --provider ${choice.providerId}`);
3641}
37423843export function buildProviderAuthRecoveryHint(params: {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。