Public/Get-NLBaselineStatus.ps1

<#
.SYNOPSIS
    Gets the current status of NLBaseline
.DESCRIPTION
    Returns status information about workspace, configuration, and baseline components
.OUTPUTS
    PSCustomObject with status information
#>

function Get-NLBaselineStatus {
    [CmdletBinding()]
    param()

    $status = [PSCustomObject]@{
        WorkspaceConfigured = $false
        WorkspacePath = $null
        ConfigExists = $false
        AppRegistrationConfigured = $false
        OpenAIConfigured = $false
        BaselineComponentsCount = 0
    }

    try {
        $workspacePath = Get-WorkspacePath
        if ($workspacePath) {
            $status.WorkspaceConfigured = $true
            $status.WorkspacePath = $workspacePath

            $config = Get-Config -WorkspacePath $workspacePath
            if ($config) {
                $status.ConfigExists = $true
                $status.AppRegistrationConfigured = -not [string]::IsNullOrEmpty($config.AppRegistration.ClientId)
                $status.OpenAIConfigured = -not [string]::IsNullOrEmpty($config.OpenAI.Endpoint)

                $baselinePath = Join-Path -Path $workspacePath -ChildPath "Baseline"
                if (Test-Path -Path $baselinePath) {
                    $baselineFiles = Get-ChildItem -Path $baselinePath -Filter "*.json" -ErrorAction SilentlyContinue
                    $status.BaselineComponentsCount = $baselineFiles.Count
                }
            }
        }
    }
    catch {
        Write-Error "Failed to get status: $_"
    }

    return $status
}