Add OSVauco startup and health-check scripts plus .gemini/GEMINI.md tuned to current OPAX-MCP project
This commit is contained in:
parent
b215bbbfaa
commit
bcee0cbd30
13
.gemini/GEMINI.md
Normal file
13
.gemini/GEMINI.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
TITLE OSVauco · Gemini bootstrap
|
||||
---
|
||||
|
||||
Du kjører nå OSVauco‑flow for OPAX‑MCP 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 (3–5 setninger) for hva du skal gjøre i denne sesjonen, hvilke filer som røres, og hvordan vi verifiserer resultatet.
|
||||
|
||||
Ikke foreslå shell‑kommandoer eller endre filer direkte før Chris eksplisitt ber om det. Rapportér først funn og plan.
|
||||
73
scripts/osvauco-health-check.sh
Normal file
73
scripts/osvauco-health-check.sh
Normal 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"
|
||||
86
scripts/osvauco-startup.sh
Normal file
86
scripts/osvauco-startup.sh
Normal 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
|
||||
Loading…
Reference in New Issue
Block a user