/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { type AuthType, type Config, getErrorMessage, ValidationRequiredError, } from '@google/gemini-cli-core'; /** * Handles the initial authentication flow. * @param config The application config. * @param authType The selected auth type. * @returns An error message if authentication fails, otherwise null. */ export async function performInitialAuth( config: Config, authType: AuthType | undefined, ): Promise { if (!authType) { return null; } try { await config.refreshAuth(authType); // The console.log is intentionally left out here. // We can add a dedicated startup message later if needed. } catch (e) { if (e instanceof ValidationRequiredError) { // Don't treat validation required as a fatal auth error during startup. // This allows the React UI to load and show the ValidationDialog. return null; } return `Failed to login. Message: ${getErrorMessage(e)}`; } return null; }