refactor: update authentication handling and model configuration

- Enhanced authentication method validation in `auth.ts` and `auth.test.ts`.
- Introduced new model provider configuration logic
- Updated environment variable handling for various auth types.
- Removed deprecated utility functions and tests related to fallback mechanisms.
This commit is contained in:
mingholy.lmh 2026-01-06 15:36:44 +08:00
parent aa9cdf2a3c
commit db12796df5
53 changed files with 5183 additions and 942 deletions

View file

@ -45,7 +45,9 @@ export async function initializeApp(
// Auto-detect and set LLM output language on first use
initializeLlmOutputLanguage();
const authType = settings.merged.security?.auth?.selectedType;
// Use authType from modelsConfig which respects CLI --auth-type argument
// over settings.security.auth.selectedType
const authType = config.modelsConfig.getCurrentAuthType();
const authError = await performInitialAuth(config, authType);
// Fallback to user select when initial authentication fails
@ -58,8 +60,13 @@ export async function initializeApp(
}
const themeError = validateTheme(settings);
// Open auth dialog if:
// 1. No authType was explicitly selected (neither from CLI --auth-type nor settings), OR
// 2. Authentication failed
// wasAuthTypeExplicitlyProvided() returns true if CLI or settings specified authType,
// false if using the default QWEN_OAUTH
const shouldOpenAuthDialog =
settings.merged.security?.auth?.selectedType === undefined || !!authError;
!config.modelsConfig.wasAuthTypeExplicitlyProvided() || !!authError;
if (config.getIdeMode()) {
const ideClient = await IdeClient.getInstance();