OSVauco/scripts/opax2.sh
chrischristiansen-glitch 17a17d20c4
chore(docs): fix region references europe-west1 → us-central1 (#12)
* docs: update HANDOFF.md for us-central1 region and current PR/VM stop status

* docs: add periodic status updates requirement to AGENT_RULEBOOK.md

* docs: confirm us-central1, Fase 8 gemini-2.5-pro status, and startup doc-check rules

* chore(docs): fix region references europe-west1 → us-central1 in docs and scripts

* docs: correct RAG corpus region to europe-west1 in HANDOFF.md
2026-06-01 04:52:08 +02:00

109 lines
5.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# =============================================================================
# opax2.sh — Claude Opus 4.7 TUI starter (Vertex AI us-central1)
#
# Bruk: source ~/OSVauco/scripts/opax2.sh
# Alias: opax2 (settes av scripts/boot.sh)
#
# Krever Claude-kvote i propane-will-491900-m5 / us-central1.
# =============================================================================
OSVAUCO_DIR="${OSVAUCO_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}"
export GOOGLE_CLOUD_PROJECT="propane-will-491900-m5"
export GOOGLE_CLOUD_LOCATION="europe-west1"
export VERTEX_AI_LOCATION="europe-west1"
export VERTEX_AI_ENDPOINT="eu"
export CLAUDE_MODEL="claude-opus-4-7@20260301"
HANDOFF="$OSVAUCO_DIR/docs/HANDOFF.md"
MASTERPLAN="$OSVAUCO_DIR/docs/MASTERPLAN.md"
ROADMAP="$OSVAUCO_DIR/docs/ROADMAP.md"
RULEBOOK="$OSVAUCO_DIR/docs/AGENT_RULEBOOK.md"
SESSION_LOG="$OSVAUCO_DIR/docs/OSVAUCO_OPAX_SESSION_LOG.md"
GREEN="$(tput setaf 2 2>/dev/null || printf '\033[0;32m')"
RED="$(tput setaf 1 2>/dev/null || printf '\033[0;31m')"
YELLOW="$(tput setaf 3 2>/dev/null || printf '\033[1;33m')"
CYAN="$(tput setaf 6 2>/dev/null || printf '\033[0;36m')"
MAGENTA="$(tput setaf 5 2>/dev/null || printf '\033[0;35m')"
WHITE="$(tput setaf 7 2>/dev/null || printf '\033[1;37m')"
DIM="$(tput dim 2>/dev/null || printf '\033[2m')"
BOLD="$(tput bold 2>/dev/null || printf '\033[1m')"
NC="$(tput sgr0 2>/dev/null || printf '\033[0m')"
OK="✔"
FAIL="✗"
run_check() {
local desc="$1" cmd="$2" err="$3" critical="${4:-false}"
printf " %-42s" "$desc"
if eval "$cmd" &>/dev/null; then
printf "${GREEN}${OK} OK${NC}\n"
else
printf "${RED}${FAIL} FAIL${NC}\n"
if [[ "$critical" == "true" ]]; then
printf "\n ${RED}${BOLD}KRITISK:${NC} ${err}\n"
printf " ${YELLOW}Avbryter opax2-oppstart.${NC}\n\n"
return 1
else
printf " ${YELLOW}${NC} ${err}\n"
fi
fi
}
clear
printf "${MAGENTA}${BOLD}"
cat << 'LOGO'
___ ____ __ __ _ _ _ ____ ___
/ _ \/ ___| \ \ / /_ _| | | | | |/ ___|/ _ \
| | | \___ \ \ \ / / _` | | | | | | | | | | |
| |_| |___) | \ V / (_| | |__| |_| | |___| |_| |
\___/|____/ \_/ \__,_|____|\___/ \____|\___/
LOGO
printf "${NC}${BOLD}${MAGENTA} OS VAUCO / OPAX2 (Claude)${NC}${DIM} · Claude Opus 4.7${NC}\n"
printf "${DIM} ─────────────────────────────────────────────${NC}\n"
printf " ${MAGENTA}project=${NC}%s ${MAGENTA}region=${NC}%s\n" "$GOOGLE_CLOUD_PROJECT" "$GOOGLE_CLOUD_LOCATION"
printf " ${MAGENTA}model =${NC}%s\n" "$CLAUDE_MODEL"
printf "${DIM} ─────────────────────────────────────────────${NC}\n\n"
printf "${BOLD}${WHITE}Preflight${NC}\n"
run_check "gcloud auth" "gcloud auth print-access-token" "Kjør: gcloud auth login --no-launch-browser" true || return 1
run_check "ADC (application-default)" "gcloud auth application-default print-access-token" "Kjør: gcloud auth application-default login" true || return 1
run_check "project = $GOOGLE_CLOUD_PROJECT" "[[ \"\$(gcloud config get-value project 2>/dev/null)\" == \"$GOOGLE_CLOUD_PROJECT\" ]]" "Kjør: gcloud config set project $GOOGLE_CLOUD_PROJECT" false
run_check "HANDOFF.md finnes" "[[ -f '$HANDOFF' ]]" "Mangler HANDOFF" false
run_check "MASTERPLAN.md finnes" "[[ -f '$MASTERPLAN' ]]" "Mangler MASTERPLAN" false
run_check "ROADMAP.md finnes" "[[ -f '$ROADMAP' ]]" "Mangler ROADMAP" false
run_check "AGENT_RULEBOOK.md finnes" "[[ -f '$RULEBOOK' ]]" "Mangler RULEBOOK" false
run_check "claude CLI installert" "command -v claude" "Claude CLI mangler — installer wrapper for Vertex Claude" true || return 1
run_check "gh CLI auth" "gh auth status" "Kjør: gh auth login" false
run_check "Vertex AI API enabled" "gcloud services list --enabled --filter='aiplatform.googleapis.com' --format='value(name)' | grep -q aiplatform" "Kjør: gcloud services enable aiplatform.googleapis.com" false
printf "\n${BOLD}${MAGENTA}NESTE OPPGAVE${NC}\n"
if [[ -f "$HANDOFF" ]]; then
sed -n '/^##.*[Nn]este [Oo]ppgave/,/^## /p' "$HANDOFF" | sed '1d;$d' | sed '/^$/d' | head -12
fi
# =============================================================================
# AUTO-CONTEXT: CLAUDE.md (hvis finnes) eller .gemini/GEMINI.md som fallback.
# Claude CLI for Vertex leser typisk CLAUDE.md i workspace-rot.
# =============================================================================
printf "\n${YELLOW}MERK:${NC} Claude-kvote i europe-west1 må være innvilget for at modellen skal svare.\n"
printf "${DIM}Tips: 'ho' = HANDOFF · 'sol' = avslutt+commit · 'pf' = re-preflight${NC}\n"
printf "${DIM}I Claude TUI, skriv: 'BOOT' for å trigge full kontekst-lesing.${NC}\n\n"
cd "$OSVAUCO_DIR"
printf "${MAGENTA}${BOLD}→ Starter claude TUI...${NC}\n\n"
claude
CLAUDE_EXIT=$?
printf "\n${DIM}── opax2-sesjon avsluttet (exit=$CLAUDE_EXIT) ──${NC}\n"
printf "${BOLD}${MAGENTA}Vil du logge sesjonen nå?${NC} [Y/n]: "
read -r LOGG_ANSWER
case "${LOGG_ANSWER:-y}" in
n|N) printf " ${DIM}OK — kjør 'sol' senere når du vil logge + commit.${NC}\n\n" ;;
*)
if declare -f sol >/dev/null; then sol; else bash "$OSVAUCO_DIR/scripts/opax-logg-slutt.sh"; fi
;;
esac