Spracherkennung für: .ts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
import type { OpenClawConfig } from "../../config/types.openclaw.js";
import { buildProviderAuthDoctorHintWithPlugin } from "../../plugins/provider-runtime.runtime.js";
import { normalizeProviderId } from "../provider-id.js";
import type { AuthProfileStore } from "./types.js";
/**
* Migration hints for deprecated/removed OAuth providers.
* Users with stale credentials should be guided to migrate.
*/
const DEPRECATED_PROVIDER_MIGRATION_HINTS: Record<string, string> = {
"qwen-portal":
"Qwen OAuth via portal.qwen.ai has been deprecated. Please migrate to Qwen Cloud Coding Plan. Run: openclaw onboard --auth-choice qwen-api-key (or qwen-api-key-cn for the China endpoint). Legacy modelstudio auth-choice ids still work.",
};
export async function formatAuthDoctorHint(params: {
cfg?: OpenClawConfig;
store: AuthProfileStore;
provider: string;
profileId?: string;
}): Promise<string> {
const normalizedProvider = normalizeProviderId(params.provider);
// Check for deprecated provider migration hints first
const migrationHint = DEPRECATED_PROVIDER_MIGRATION_HINTS[normalizedProvider];
if (migrationHint) {
return migrationHint;
}
const pluginHint = await buildProviderAuthDoctorHintWithPlugin({
provider: normalizedProvider,
context: {
config: params.cfg,
store: params.store,
provider: normalizedProvider,
profileId: params.profileId,
},
});
if (typeof pluginHint === "string" && pluginHint.trim()) {
return pluginHint;
}
return "";
}
¤ Dauer der Verarbeitung: 0.19 Sekunden
(vorverarbeitet am 2026-04-27)
¤
*© Formatika GbR, Deutschland