diff --git a/README.md b/README.md index c8cab37..430bd5c 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,22 @@ # OSVauco -Main operator workspace for OS-Vauco. +Main operator workspace for OS-Vauco, focused on OPAX-MCP and Gemini TUI in GCP project `propane-will-491900-m5` (region `us-central1`). -- OPAX MCP boot script: `scripts/osvauco-opax-boot.sh` -- Session log: `docs/OSVAUCO_OPAX_SESSION_LOG.md` -- Governance docs: `docs/AGENT_RULEBOOK.md`, `docs/LEARNINGS.md`, `docs/ARCHITECTURE.md`, `docs/SECRETS-SETUP.md`, `docs/IAP-SETUP.md` +## Repositories -This repo is intended to be checked out into `~/OSVauco` on Cloud Shell. +- **OSVauco (this repo)** – operator hub: scripts, governance docs, session log. +- **vauco-gemini-tui-bridge** – Textual TUI + FastAPI WebSocket bridge for Gemini LLM. +- **vauco-bootstrap** – skill templates and higher-level automation flows. + +## Daily flow + +From Cloud Shell: + +```bash +cd ~/OSVauco +./scripts/osvauco-startup.sh # auth + ADC + .env sync +./scripts/osvauco-opax-boot.sh # OPAX-MCP ping + optional Gemini TUI entry +./scripts/osvauco-health-check.sh # sanity-check git/disk/auth +``` + +Session history is stored in `docs/OSVAUCO_OPAX_SESSION_LOG.md`. Governance rules live in `docs/AGENT_RULEBOOK.md`. diff --git a/docs/AGENTIC_CONTRACT_MCP_PROVISIONING.md b/docs/AGENTIC_CONTRACT_MCP_PROVISIONING.md new file mode 100644 index 0000000..52f9958 --- /dev/null +++ b/docs/AGENTIC_CONTRACT_MCP_PROVISIONING.md @@ -0,0 +1,67 @@ +--- +TITLE AGENTIC CONTRACT β€” Structured Prompt Provisioning via MCP (OSVauco Edition) +--- + +> **Thread type:** PLAN / ARCH +> **Version:** 1.0.1 +> **Date:** 2026-05-21 +> **Status:** IN PROGRESS +> **Owner:** OSVauco Operator Hub + +Denne versjonen er kopiert og lett tilpasset fra `vauco-os/docs/AGENTIC_CONTRACT_MCP_PROVISIONING.md`. + +## πŸ“Œ Concept Note + +Structured prompts provisioneres fra OSVauco som API-endepunkter. +Hver modul/API er governet via en MCP-server under Vauco, og tilgang er gated av Google Login pΓ₯ `@vauco.no` eller godkjent alias. + +## πŸ›οΈ Architecture β€” 3 Layers + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ LAYER 3 β€” IDENTITY β”‚ +β”‚ Google OAuth β†’ @vauco.no sub-mail or approved alias β”‚ +β”‚ Whitelisted in OSVauco Login Whitelist β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ authenticated identity +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ LAYER 2 β€” GOVERNANCE β”‚ +β”‚ MCP Server (OPAX-MCP) β”‚ +β”‚ Tool registry Β· Access policy Β· Routing rules β”‚ +β”‚ Minimum-privilege roles per module β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ governed tool call +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ LAYER 1 β€” PROVISIONING β”‚ +β”‚ OSVauco / Vauco OS API β”‚ +β”‚ Serves structured prompt payloads to agents/consumers β”‚ +β”‚ Each module = a callable API endpoint β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +## πŸ” Identity & Access Control + +- PrimΓ¦r identitet: `name@vauco.no` +- Sub-mail alias: `role@vauco.no` +- Ekstern alias: whitelist-only + +Regler: +- Hver identitet knyttes til en GCP IAM-rolle. +- Hver MCP-modul har minimum-privilege-scope. +- Login whitelist vedlikeholdes i OSVauco/Command Hub. +- Ingen blanket API-tilgang β€” scope per modul. + +## πŸ—ΊοΈ Implementation Roadmap (kort) + +1. Forankre arkitektur i OSVauco (denne fila + `docs/AGENT_RULEBOOK.md`). +2. DefinΓ©r IAM-roller og modul-scope i GCP. +3. Etabler MCP-server som permission broker foran OPAX-MCP. +4. Logg alle MCP-kall til Firestore med identity + modul. +5. Prototype med Γ©n modul, deretter tre. + +## βœ… Done When + +- 3+ moduler callable via MCP-endepunktet. +- Alle moduler gated av Google OAuth. +- Firestore logger alle kall med identity + modul + resultat. +- DEPLOY GODKJENT mottatt fΓΈr produksjonsregistrering. diff --git a/scripts/osvauco-opax-boot.sh b/scripts/osvauco-opax-boot.sh index 04a13b2..4edae5b 100644 --- a/scripts/osvauco-opax-boot.sh +++ b/scripts/osvauco-opax-boot.sh @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# OSVauco OPAX boot β€” nΓ₯ med enkel session-logg + set -euo pipefail PROJECT_ID="propane-will-491900-m5" @@ -14,6 +16,15 @@ GREEN="$(tput setaf 2 || true)" RED="$(tput setaf 1 || true)" RESET="$(tput sgr0 || true)" +SESSION_ID="$(date '+%Y%m%d-%H%M%S')" + +# Vis siste linje fra session-logg hvis den finnes +if [ -f "$LOG_FILE" ]; then + LAST_LINE=$(tail -n 1 "$LOG_FILE" || true) +else + LAST_LINE="(ingen tidligere sesjoner logget ennΓ₯)" +fi + echo "============================================================" echo " O S V A U C O Β· O P A X" echo "============================================================" @@ -26,6 +37,10 @@ echo " Project : $PROJECT_ID" echo " Region : $REGION" echo " Account : $ACCOUNT" echo " Repo : $REPO ($BRANCH)" +echo " Session : $SESSION_ID" +echo + +echo " Forrige: $LAST_LINE" echo echo " Tester OPAX-MCP pΓ₯: $PING_URL" @@ -38,8 +53,11 @@ fi echo mkdir -p "$(dirname "$LOG_FILE")" + +read -r -p "[OSVauco/OPAX] Kort beskrivelse av denne sesjonen: " SESSION_DESC || SESSION_DESC="(ingen beskrivelse)" + +echo "$SESSION_ID | $PROJECT_ID | $REGION | $ACCOUNT | $SESSION_DESC" >> "$LOG_FILE" echo " Logg oppdatert: $LOG_FILE" -touch "$LOG_FILE" echo read -r -p "[OSVauco/OPAX] Starte Gemini-CLI i ~/OSVauco nΓ₯? (y/N): " ANSWER