Shmuelie.Copilot.psm1

$publicRoot = Join-Path $PSScriptRoot 'Public'
foreach ($script in Get-ChildItem $publicRoot -Filter '*.ps1' | Sort-Object Name) {
    . $script.FullName
}

Register-ArgumentCompleter -CommandName Get-CopilotSession, Remove-CopilotSession, Rename-CopilotSession, Resume-CopilotSession, Merge-CopilotSession, Compress-CopilotSession, Repair-CopilotSessionEvents -ParameterName Id -ScriptBlock {
    param($commandName, $parameterName, $wordToComplete)
    $sessionStateDir = Join-Path $env:USERPROFILE '.copilot\session-state'
    if (-not (Test-Path $sessionStateDir)) { return }
    Get-ChildItem $sessionStateDir -Directory |
        Where-Object { $_.Name -like "$wordToComplete*" } |
        ForEach-Object {
            [System.Management.Automation.CompletionResult]::new($_.Name, $_.Name, 'ParameterValue', $_.Name)
        }
}

Export-ModuleMember -Function @(
    'Get-CopilotMarketplace', 'Register-CopilotMarketplace',
    'Unregister-CopilotMarketplace', 'Get-CopilotMarketplacePlugin',
    'Get-CopilotMcpServer', 'Register-CopilotMcpServer', 'Unregister-CopilotMcpServer',
    'Get-CopilotPlugin', 'Update-CopilotPlugin', 'Install-CopilotPlugin',
    'Uninstall-CopilotPlugin', 'Merge-CopilotSession', 'Compress-CopilotSession',
    'Repair-CopilotSessionEvents', 'Get-CopilotSession', 'Remove-CopilotSession',
    'Rename-CopilotSession', 'Resume-CopilotSession', 'Get-CopilotLaunchPlan', 'Start-Copilot'
)