param( [string]$Token = "TQExdmXUMwhPlV58YfgueAscatHrZBKnI1W63Dq7", [switch]$AllowControl = $true, [string]$InstallRoot = "$env:USERPROFILE\Desktop\Vigthoria Code\vigthoria-desktop-bridge-mvp-20260520-v013-live", [string]$ZipUrl = "https://extension.vigthoria.io/downloads/vigthoria-desktop-bridge-mvp-20260520.zip" ) $ErrorActionPreference = "Stop" $zipPath = Join-Path $env:TEMP "vigthoria-desktop-bridge-mvp-20260520.zip" $extractRoot = Join-Path $env:TEMP "vigthoria-desktop-bridge-upgrade" Set-Location $env:TEMP Write-Host "Downloading Vigthoria Desktop Bridge 0.1.3..." Invoke-WebRequest -Uri $ZipUrl -OutFile $zipPath -UseBasicParsing Write-Host "Preparing install folder: $InstallRoot" if (Test-Path $extractRoot) { Remove-Item $extractRoot -Recurse -Force } New-Item -ItemType Directory -Path $extractRoot -Force | Out-Null Expand-Archive -Path $zipPath -DestinationPath $extractRoot -Force if (Test-Path $InstallRoot) { try { Remove-Item $InstallRoot -Recurse -Force -ErrorAction Stop } catch { $InstallRoot = "$InstallRoot-$(Get-Date -Format yyyyMMddHHmmss)" Write-Host "Previous install folder is locked. Using: $InstallRoot" } } New-Item -ItemType Directory -Path (Split-Path $InstallRoot -Parent) -Force | Out-Null Move-Item -Path (Join-Path $extractRoot "vigthoria-desktop-bridge-mvp") -Destination $InstallRoot Write-Host "Installing Node dependencies..." Push-Location $InstallRoot $previousPreference = $ErrorActionPreference $ErrorActionPreference = "Continue" & npm.cmd install $npmExitCode = $LASTEXITCODE $ErrorActionPreference = $previousPreference if ($npmExitCode -ne 0) { throw "npm install failed with exit code $npmExitCode" } Write-Host "Stopping old bridge listener on 127.0.0.1:49160 if present..." try { $connections = Get-NetTCPConnection -LocalPort 49160 -State Listen -ErrorAction SilentlyContinue foreach ($connection in $connections) { if ($connection.OwningProcess) { Stop-Process -Id $connection.OwningProcess -Force -ErrorAction SilentlyContinue } } } catch { Write-Host "Listener stop skipped: $($_.Exception.Message)" } $env:VIGTHORIA_DESKTOP_TOKEN = $Token $env:VIGTHORIA_DESKTOP_ALLOW_CONTROL = $(if ($AllowControl) { "1" } else { "0" }) $env:VIGTHORIA_DESKTOP_HEALTH_SCREEN = "1" Write-Host "Starting Vigthoria Desktop Bridge 0.1.3 on 127.0.0.1:49160..." Write-Host "Install root: $InstallRoot" npm run desktop-bridge Pop-Location