Public/Get-PCProviders.ps1

function Get-PCProviders {
    <#
    .SYNOPSIS
        List available AI providers (those with configured API keys).
    .EXAMPLE
        Get-PCProviders
        # Returns: @('openai', 'gemini') — only those with keys
    #>

    [CmdletBinding()]
    param()

    $available = @()
    foreach ($provider in $script:Providers.Keys | Sort-Object) {
        $key = Resolve-PCApiKey -Provider $provider
        if ($key) {
            $available += [PSCustomObject]@{
                Provider     = $provider
                DefaultModel = $script:Providers[$provider].DefaultModel
                Configured   = $true
            }
        }
    }

    if ($available.Count -eq 0) {
        Write-Warning "No AI providers configured. Set API keys via Set-PCSecret or environment variables (OPENAI_API_KEY, GEMINI_API_KEY, ANTHROPIC_API_KEY)."
    }

    $available
}