private/Test-GeminiAuth.ps1

function Test-GeminiAuth {
    <#
    .SYNOPSIS
        Checks if Gemini CLI has authentication configured.
 
    .DESCRIPTION
        Checks for GEMINI_API_KEY, GOOGLE_GENAI_USE_VERTEXAI, GOOGLE_GENAI_USE_GCA
        environment variables or ~/.gemini/settings.json file.
 
    .OUTPUTS
        Boolean - True if auth found, False otherwise
    #>

    [CmdletBinding()]
    param()

    $geminiKey = [Environment]::GetEnvironmentVariable('GEMINI_API_KEY')
    $vertexAI = [Environment]::GetEnvironmentVariable('GOOGLE_GENAI_USE_VERTEXAI')
    $gca = [Environment]::GetEnvironmentVariable('GOOGLE_GENAI_USE_GCA')
    $settingsPath = Join-Path $HOME '.gemini' 'settings.json'

    if ($geminiKey -or $vertexAI -or $gca) {
        Write-PSFMessage -Level Verbose -Message "Gemini auth found via environment variable"
        return $true
    }

    if (Test-Path $settingsPath) {
        Write-PSFMessage -Level Verbose -Message "Gemini settings file found at $settingsPath"
        return $true
    }

    Write-PSFMessage -Level Verbose -Message "No Gemini auth found (GEMINI_API_KEY, GOOGLE_GENAI_USE_VERTEXAI, GOOGLE_GENAI_USE_GCA, or ~/.gemini/settings.json)"
    return $false
}