Add OSVauco startup and health-check scripts plus .gemini/GEMINI.md tuned to current OPAX-MCP project

This commit is contained in:
chrischristiansen-glitch 2026-05-21 01:49:12 +02:00
parent b215bbbfaa
commit bcee0cbd30
3 changed files with 172 additions and 0 deletions

13
.gemini/GEMINI.md Normal file
View File

@ -0,0 +1,13 @@
---
TITLE OSVauco · Gemini bootstrap
---
Du kjører nå OSVaucoflow for OPAXMCP i prosjekt `propane-will-491900-m5` (region `us-central1`).
Ved oppstart:
- Bekreft kort prosjekt, region og account.
- Les `docs/AGENT_RULEBOOK.md` og `docs/LEARNINGS.md` og oppsummer de viktigste reglene for denne økten.
- Finn neste konkrete oppgave i `TODO.md` eller `docs/PLANBOARD.md` hvis de finnes.
- Skriv en kort plan (35 setninger) for hva du skal gjøre i denne sesjonen, hvilke filer som røres, og hvordan vi verifiserer resultatet.
Ikke foreslå shellkommandoer eller endre filer direkte før Chris eksplisitt ber om det. Rapportér først funn og plan.

View File

@ -0,0 +1,73 @@
#!/usr/bin/env bash
# OSVauco — Periodisk health check for lokal arbeidsflate
# Kjør manuelt fra ~/OSVauco eller via cron/systemd
set -u
LOG=/tmp/osvauco-health.log
TS=$(date -Iseconds)
REPO=~/OSVauco
ALERT=0
ALERT_MSGS=()
echo "[$TS] === HEALTH CHECK START ===" >> "$LOG"
# --- 1. Git working tree ---
cd "$REPO" 2>/dev/null || { echo "[$TS] ❌ REPO not found: $REPO" >> "$LOG"; exit 1; }
DIRTY=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown")
LAST_SHA=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
AHEAD=$(git rev-list --count "@{u}..HEAD" 2>/dev/null || echo "0")
echo "[$TS] git: branch=$BRANCH dirty=$DIRTY ahead=$AHEAD last=$LAST_SHA" >> "$LOG"
if [ "$DIRTY" -gt 50 ]; then
ALERT=1
ALERT_MSGS+=("$DIRTY uncommitted changes (>50, mulig merge gone wrong)")
fi
# --- 2. Disk ---
FREE=$(df -h "$REPO" 2>/dev/null | awk 'NR==2 {print $4}')
FREE_BYTES=$(df -B1 "$REPO" 2>/dev/null | awk 'NR==2 {print $4}')
echo "[$TS] disk: free=$FREE" >> "$LOG"
# Mindre enn 500MB → alert
if [ -n "$FREE_BYTES" ] && [ "$FREE_BYTES" -lt 524288000 ]; then
ALERT=1
ALERT_MSGS+=("Disk lav: kun $FREE ledig")
fi
# --- 3. ADC reachability ---
TOKEN_LEN=$(gcloud auth application-default print-access-token 2>/dev/null | wc -c | tr -d ' ')
echo "[$TS] adc: token_len=$TOKEN_LEN" >> "$LOG"
if [ "$TOKEN_LEN" -lt 100 ]; then
ALERT=1
ALERT_MSGS+=("ADC token mangler eller for kort ($TOKEN_LEN tegn)")
fi
# --- 4. gcloud auth account + project ---
ACCOUNT=$(gcloud config get-value account 2>/dev/null || echo "")
PROJECT=$(gcloud config get-value project 2>/dev/null || echo "")
echo "[$TS] gcloud: account=$ACCOUNT project=$PROJECT" >> "$LOG"
if [ "$ACCOUNT" != "chris.christiansen@vauco.no" ]; then
ALERT=1
ALERT_MSGS+=("WRONG GCLOUD ACCOUNT: $ACCOUNT (forvent chris.christiansen@vauco.no)")
fi
if [ "$PROJECT" != "propane-will-491900-m5" ]; then
ALERT=1
ALERT_MSGS+=("WRONG PROJECT: $PROJECT (forvent propane-will-491900-m5)")
fi
# --- 5. Alert summary ---
if [ "$ALERT" -eq 1 ]; then
echo "[$TS] ⚠️ ALERT (${#ALERT_MSGS[@]} issues):" >> "$LOG"
for msg in "${ALERT_MSGS[@]}"; do
echo "[$TS] - $msg" >> "$LOG"
done
fi
echo "[$TS] === HEALTH CHECK END ===" >> "$LOG"
echo "" >> "$LOG"
exit "$ALERT"

View File

@ -0,0 +1,86 @@
#!/usr/bin/env bash
# OSVauco startup — auth + Gemini bootstrap for OPAX-MCP work
set -euo pipefail
clear
# Guard: stopp hvis gcloud auth er utløpt
if ! gcloud auth print-access-token >/dev/null 2>&1; then
echo "⚠️ gcloud auth utløpt — kjør: gcloud auth login --no-launch-browser"
exit 1
fi
cat << 'BANNER'
============================================================
O S V A U C O
============================================================
O S V A U C O O P E R A T O R H U B
Prosjekt: propane-will-491900-m5 · Region: us-central1
============================================================
BANNER
echo
echo "=== OSVauco Auth Setup ==="
echo
# Lås til riktig prosjekt og region
gcloud config set project propane-will-491900-m5 >/dev/null 2>&1 || true
gcloud config set compute/region us-central1 >/dev/null 2>&1 || true
PROJECT=$(gcloud config get-value project 2>/dev/null)
REGION=$(gcloud config get-value compute/region 2>/dev/null)
ACCOUNT=$(gcloud auth list --filter=status:ACTIVE --format="value(account)" 2>/dev/null)
echo " Project : ${PROJECT}"
echo " Region : ${REGION}"
echo " Account : ${ACCOUNT}"
# Sjekk ADC (Application Default Credentials)
ADC_OK=0
if gcloud auth application-default print-access-token >/dev/null 2>&1; then
ADC_OK=1
fi
echo
if [ "$ADC_OK" -eq 1 ]; then
echo " ADC : OK"
else
echo " ADC : MISSES TOKEN (kjør: gcloud auth application-default login)"
fi
# Sync til .env i prosjektet
ENV_FILE="$HOME/OSVauco/.env"
mkdir -p "$(dirname "$ENV_FILE")"
touch "$ENV_FILE"
grep -q '^GOOGLE_CLOUD_PROJECT=' "$ENV_FILE" || echo "GOOGLE_CLOUD_PROJECT=${PROJECT}" >> "$ENV_FILE"
grep -q '^GOOGLE_CLOUD_LOCATION=' "$ENV_FILE" || echo "GOOGLE_CLOUD_LOCATION=${REGION}" >> "$ENV_FILE"
echo " .env : oppdatert"
echo
echo "=== Auth complete ==="
echo " Project : ${PROJECT}"
echo " Region : ${REGION}"
echo " Account : ${ACCOUNT}"
echo
read -r -p "[OSVauco] Starte Gemini-CLI nå med oppstartsrapport? (y/N): " ANSWER
case "$ANSWER" in
y|Y)
echo
echo "[OSVauco] Starter Gemini-CLI fra ~/OSVauco ..."
echo "[OSVauco] Første melding som sendes inn er @.gemini/GEMINI.md"
echo
cd "$HOME/OSVauco"
( printf '@.gemini/GEMINI.md
'; cat ) | gemini
;;
*)
echo
echo "[OSVauco] OK, holder deg i vanlig shell. Kjør 'gemini' når du vil inn i TUI."
;;
esac