# OSVauco · OPAX — VS Code Windows Startup Script # Kjøres via settings.json: # "args": ["-NoExit", "-File", "G:\\Shared drives\\OS-VAUCO-DRIVE\\OSVauco\\scripts\\osv-startup.ps1"] $REPO_PATH = "G:\Shared drives\OS-VAUCO-DRIVE\OSVauco" $PING_URL = "https://opax.vauco.no/ping" $LOG_FILE = "$REPO_PATH\docs\OSVAUCO_OPAX_SESSION_LOG.md" $PROJECT = "propane-will-491900-m5" $REGION = "us-central1" $MODEL = "gemini-2.5-pro" $MCP_NAME = "OPAX-MCP" $PROTOCOL = "OPAX Protocol" Set-Location $REPO_PATH Clear-Host $gcOK = $false $adcOK = $false $opaxOK = $false # ============================================================ # 1) GIT PULL (stille, før banner) # ============================================================ $gitOut = git pull 2>&1 $gitOK = ($LASTEXITCODE -eq 0) # ============================================================ # 2) GCP SDK + ADC (stille) # ============================================================ try { $gcAccount = gcloud auth list --filter=status:ACTIVE --format="value(account)" 2>$null if ($gcAccount) { $gcOK = $true gcloud config set project $PROJECT 2>$null | Out-Null gcloud config set compute/region $REGION 2>$null | Out-Null } } catch {} try { $adcToken = gcloud auth application-default print-access-token 2>$null if ($adcToken) { $adcOK = $true } } catch {} # ============================================================ # 3) OPAX PING (stille) # ============================================================ try { $response = Invoke-RestMethod -Uri $PING_URL -TimeoutSec 5 if ($response.status -eq 'ok') { $opaxOK = $true } } catch {} # ============================================================ # 4) BESTEM GLOW-FARGE # ============================================================ $allOK = $gitOK -and $opaxOK $bannerColor = if ($allOK) { 'Green' } else { 'Yellow' } $glowChar = if ($allOK) { '█' } else { '□' } # ============================================================ # 5) BANNER # ============================================================ Write-Host "" Write-Host " $glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar" -ForegroundColor $bannerColor Write-Host "" Write-Host " O S V A U C O · O P A X" -ForegroundColor $bannerColor Write-Host "" Write-Host " $glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar" -ForegroundColor $bannerColor Write-Host "" # Info-linjer i banner-farge når alt er OK, grå ellers $infoColor = if ($allOK) { $bannerColor } else { 'Gray' } Write-Host " MCP_NAME : $MCP_NAME" -ForegroundColor $infoColor Write-Host " PROTOCOL : $PROTOCOL" -ForegroundColor $infoColor Write-Host " PROJECT : $PROJECT" -ForegroundColor $infoColor Write-Host " REGION : $REGION" -ForegroundColor $infoColor Write-Host " MODEL : $MODEL ← locked for alle TUI-prompts" -ForegroundColor $infoColor Write-Host " HUB_URL : https://opax.vauco.no" -ForegroundColor $infoColor Write-Host " SESSION : $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -ForegroundColor $infoColor Write-Host "" # ============================================================ # 6) NESTE OPPGAVE # ============================================================ if (Test-Path $LOG_FILE) { $logContent = Get-Content $LOG_FILE -Raw $match = [regex]::Match($logContent, '(?s)## NESTE OPPGAVE\r?\n(.*?)(?=\r?\n## |$)') if ($match.Success) { Write-Host " ▶ NESTE OPPGAVE:" -ForegroundColor $bannerColor $match.Groups[1].Value.Trim() -split "`n" | ForEach-Object { Write-Host " $_" -ForegroundColor $bannerColor } Write-Host "" } } # ============================================================ # 7) SISTE DOCS-ENDRINGER # ============================================================ Write-Host " › Siste endringer i docs/:" -ForegroundColor $infoColor try { $gitLog = git -C $REPO_PATH log -4 --pretty=format:"%h %cd %s" --date=short -- docs 2>&1 if ($gitLog) { $gitLog -split "`n" | ForEach-Object { Write-Host " $_" -ForegroundColor DarkGreen } } } catch {} Write-Host "" # ============================================================ # 8) STATUS-LINJER # ============================================================ # Git $gitStatus = if ($gitOK) { if ($gitOut -match 'Already up to date') { '✅ up to date' } else { "✅ oppdatert" } } else { '❌ FEIL' } Write-Host " Git pull : $gitStatus" -ForegroundColor $(if ($gitOK) { 'Green' } else { 'Red' }) # GCP $gcStatus = if ($gcOK) { "✅ $gcAccount" } else { '⚠ ikke logget inn — gcloud auth login' } Write-Host " GCP SDK : $gcStatus" -ForegroundColor $(if ($gcOK) { 'Green' } else { 'Yellow' }) # ADC $adcStatus = if ($adcOK) { '✅ Application Default Credentials OK' } else { '⚠ mangler — gcloud auth application-default login' } Write-Host " ADC : $adcStatus" -ForegroundColor $(if ($adcOK) { 'Green' } else { 'Yellow' }) # OPAX $opaxStatus = if ($opaxOK) { '✅ https://opax.vauco.no' } else { '❌ nede — sjekk Cloud Run' } Write-Host " OPAX-MCP : $opaxStatus" -ForegroundColor $(if ($opaxOK) { 'Green' } else { 'Red' }) # Gemini Write-Host " Gemini : ℹ Cloud Shell → source scripts/osvauco-opax-boot.sh → gemini" -ForegroundColor $infoColor Write-Host "" # ============================================================ # 9) READY-LINJE MED GLOW # ============================================================ Write-Host " $glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar" -ForegroundColor $bannerColor if ($allOK) { Write-Host " ▶▶ OSVAUCO / OPAX — ALL SYSTEMS GREEN ◀◀" -ForegroundColor Green } else { Write-Host " ⚠ OSVAUCO / OPAX — PARTIAL — sjekk status over" -ForegroundColor Yellow } Write-Host " $glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar$glowChar" -ForegroundColor $bannerColor Write-Host ""