# PowerShell Uninstaller for Antigravity Desktop Agent
$ErrorActionPreference = "Continue"

# Configurações de caminhos
$InstallDir = "$env:LOCALAPPDATA\AntigravityAgent"
$StartupPath = "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup"
$ShortcutPath = "$StartupPath\AntigravityAgent.lnk"

Write-Host "=============================================" -ForegroundColor Red
Write-Host "  Desinstalador do Antigravity Desktop Agent " -ForegroundColor Red
Write-Host "=============================================" -ForegroundColor Red
Write-Host ""

# 1. Parar agente
Write-Host "[1/3] Finalizando processos do agente..." -ForegroundColor Yellow
$oldProcesses = Get-CimInstance Win32_Process -Filter "name like 'python%.exe'" | Where-Object { $_.CommandLine -like "*agent.py*" -or $_.CommandLine -like "*agent_watchdog.py*" }
if ($oldProcesses) {
    foreach ($proc in $oldProcesses) {
        Write-Host "Finalizando processo ID $($proc.ProcessId)..." -ForegroundColor DarkYellow
        Stop-Process -Id $proc.ProcessId -Force -ErrorAction SilentlyContinue
    }
    Start-Sleep -Seconds 1
} else {
    Write-Host "Nenhum processo em execução encontrado." -ForegroundColor Gray
}

# 2. Remover atalho de inicialização
Write-Host "[2/3] Removendo atalhos de inicialização automática..." -ForegroundColor Yellow
$WatchdogShortcutPath = "$StartupPath\AntigravityWatchdog.lnk"
foreach ($path in ($ShortcutPath, $WatchdogShortcutPath)) {
    if (Test-Path $path) {
        Remove-Item -Path $path -Force -ErrorAction SilentlyContinue
        Write-Host "Atalho removido com sucesso: $path" -ForegroundColor Green
    }
}

# 3. Remover diretório de instalação
Write-Host "[3/3] Removendo arquivos de instalação..." -ForegroundColor Yellow
if (Test-Path $InstallDir) {
    # Tenta remover recursivamente
    Remove-Item -Path $InstallDir -Recurse -Force -ErrorAction SilentlyContinue
    # Se a pasta ainda existir (por exemplo, arquivo travado), avisa
    if (Test-Path $InstallDir) {
        Write-Warning "Alguns arquivos em '$InstallDir' não puderam ser excluídos imediatamente. Eles serão limpos no próximo reinício."
    } else {
        Write-Host "Arquivos removidos com sucesso de: $InstallDir" -ForegroundColor Green
    }
} else {
    Write-Host "Pasta de instalação não encontrada." -ForegroundColor Gray
}

Write-Host ""
Write-Host "Desinstalação concluída!" -ForegroundColor Green
Write-Host ""
