OSVauco/scripts/osv-startup.ps1

148 lines
7.5 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 ""