# VAUCO MASTERPLAN — Chris Christiansen **Sist oppdatert: 2026-05-24 CEST** **Status: Repo ferdig — GCP gjenstaar (A4–A9 neste) | LLM-strategi: Lett front / tung bakkant — se LLM-RUTINGSSTRATEGI** --- ## KONTEKST — Hva vi bygger Ett AI-drevet operativsystem (OPAX) som kjører på Google Cloud. Du er første kunde. Når det virker for deg → selg det til andre. **Repo-oversikt:** | Repo | Hva det er | |---|---| | `OSVauco` | Regler, GCP-scripts, agenter, docs — KJERNEN | | `vauco-gemini-tui-bridge` | Din TUI-cockpit | | `vauco-os` | Det kundene bruker | | `vauco-bootstrap` | Onboarding av nye kunder (→ Terraform-modul i Fase C) | | `deep-dream` | Strategisk visjon — aldri deploy herfra | --- ## AGENT-IDENTITET | Identitet | E-post | Rolle | Formål | |---|---|---|---| | Eier / admin | `chris.christiansen@vauco.no` | `billing.admin` + `billing.viewer` | Full kontroll | | Agent (OPAX) | `jason.vauger@vauco.no` | `billing.viewer` | Hente og rapportere kostnadsdata autonomt | | Fremtidig gruppe | `billing@vauco.no` | `billing.viewer` (Fase C) | Delt innboks for team og kunder | **Agent-kapabiliteter med `billing.viewer`:** - Svare på «Hva koster dette prosjektet denne måneden?» - Sende ukentlig kostnadsrapport til chat-appen - Reagere på Pub/Sub budget-alerts (via `10-cost-guard.sh`) - **Ikke:** endre IAM, budsjetter eller koble prosjekter --- ## CLOUD SHELL QUICK-START (kopi-klipp) > Bruk Cloud Shell: https://shell.cloud.google.com ```bash # Steg 1: Klon og sett opp miljø gcloud config set project propane-will-491900-m5 git clone https://github.com/chrischristiansen-glitch/OSVauco.git ~/OSVauco cd ~/OSVauco # Steg 2: Kopier og rediger .env cp .env.example .env nano .env # Fyll ut: BILLING_ACCOUNT_ID, ALERT_EMAIL, GITHUB_APP_INSTALLATION_ID # Alle andre verdier er ferdig-forhåndsutfylt # Steg 3: Installer Python-avhengigheter pip install google-adk google-cloud-aiplatform>=1.111.0 --quiet # Steg 4: Kjør i rekkefølge (kilde .env først) source .env bash infrastructure/00-authcheck.sh bash infrastructure/01-setupenv.sh bash infrastructure/07-rag-setup.sh # *** Kopier RAG_CORPUS_NAME fra output inn i .env *** nano .env source .env bash infrastructure/08-memorybank-setup.sh # *** Kopier MEMORY_ENGINE_NAME fra output inn i .env *** nano .env source .env bash infrastructure/05-cloudrun-deploy.sh bash infrastructure/04-observability-setup.sh bash infrastructure/11-billing-iam-hardening.sh # Om kvelden (OBLIGATORISK — unngå 24/7-fakturering): bash infrastructure/03-teardown.sh ``` --- ## FASE A — Ferdigstill kjernen (GCP oppe) **Mål: Agenten din er live på Google Cloud | Tid: Ca. 2 timer** ``` [ ] A1 — cp .env.example .env og fyll inn verdier PROJECT_ID=propane-will-491900-m5 REGION=us-central1 BILLING_ACCOUNT_ID=0171F6-057E6B-A260BA ALERT_EMAIL=chris.christiansen@vauco.no ORCHESTRATOR_MODEL=gemini-2.0-flash SUBAGENT_MODEL=gemini-2.0-flash [ ] A2 — bash infrastructure/00-authcheck.sh [ ] A3 — bash infrastructure/01-setupenv.sh Oppretter: budsjetter ($75 dev + $500 prod), Pub/Sub topic [ ] A4 — bash infrastructure/07-rag-setup.sh OQ-02: Script faller automatisk tilbake til us-east1 om nødvendig ACTION: Kopier RAG_CORPUS_NAME til .env [ ] A5 — bash infrastructure/08-memorybank-setup.sh OQ-01: Python SDK only (auto-installert av script) ACTION: Kopier MEMORY_ENGINE_NAME til .env [ ] A6 — bash infrastructure/05-cloudrun-deploy.sh [ ] A7 — bash infrastructure/04-observability-setup.sh [ ] A8 — bash infrastructure/03-teardown.sh (kjør hver kveld) [ ] A9 — bash infrastructure/11-billing-iam-hardening.sh Gir billing.viewer til: chris.christiansen@vauco.no + jason.vauger@vauco.no Løser GCP billing health-advarsel: "0 billing account viewers" Fjerner billing.creator fra domenet (hvis ORG_DOMAIN er satt i .env) ``` --- ## FASE A2 — Dialogflow CX FAQ-agent (parallelt med A4–A9) **Mål: Generativ FAQ-agent live på OSVauco | Tid: Ca. 3–5 timer** **Kreditt: kr 5 822 (dialogflow_cx_credit_v2-0171F6-057E6B-A260BA) + $1 000 Playbooks-trial** **Detaljer: se `docs/dialogflow-cx-budget-plan.md`** ``` [ ] DX1 — Opprett Playbook-agent i Conversational Agents Console URL: https://console.cloud.google.com/conversational-agents Prosjekt: propane-will-491900-m5 | Region: us-central1 Type: Generative (Playbooks) — IKKE Flows Språk: Norsk (nb) + Engelsk (en) Kreditten aktiveres automatisk — ingen manuell kobling nødvendig [ ] DX2 — Last opp FAQ-innhold som Data Store Console: Agent → Data Stores → Create Kilde: Last opp markdown/PDF FAQ-filer fra docs/ Alternativ: Link til nettsted (crawl) for automatisk oppdatering ACTION: Kopier DATA_STORE_ID til .env [ ] DX3 — Konfigurer Playbook med norsk systempromptin Instruksjon: "Du er OPAX-assistent for OSVauco. Svar alltid på norsk. Bruk kun informasjon fra Data Store. Henvis til support ved usikkerhet." Test: 10 typiske FAQ-spørsmål manuelt i Console [ ] DX4 — Koble webhook mot OSVauco Cloud Run (etter A6) Requires: A6 (cloudrun-deploy) fullført Metode: Dialogflow CX → Fulfillment → Webhook → Cloud Run URL Auth: Bearer token fra Service Account (jason.vauger@vauco.no) Bruksområde: Live data (f.eks. prosjektstatus, kostnader) via OPAX-agenten [ ] DX5 — Publiser via Dialogflow Messenger (web-widget) Integrasjon: Agent → Integrations → Dialogflow Messenger Legg til script-tag i vauco-os frontend Test på mobil og desktop [ ] DX6 — Sett budsjett-alert for Dialogflow CX Grense: $400 av $550 tilgjengelig kreditt Console: Billing → Budgets & Alerts → Create budget Koble til Pub/Sub topic fra A3 (10-cost-guard.sh håndterer auto-teardown) ``` **Kostnadsestimat Fase A2:** | Aktivitet | Requests | Estimert kostnad | |---|---|---| | DX1–DX3 (bygging + testing) | ~500 | ~$6 | | DX4–DX5 (integrasjon) | ~1 000 | ~$12 | | 30 dager pilot (10k req/mnd) | 10 000 | ~$120 | | **Buffer igjen av kr 5 822** | — | **~$412 (~kr 4 300)** | --- ## FASE B — Sikring og CI/CD **Mål: Begrenset tilgang og aktiv CI/CD | Tid: 1 time** ``` [ ] B1 — bash infrastructure/02-deploy.sh (IAP på opax.vauco.no) [ ] B2 — Opprett GitHub PAT og legg i Secret Manager: gcloud secrets create github-token --data-file=<(echo -n "ghp_TOKEN") Finn GITHUB_APP_INSTALLATION_ID: https://github.com/settings/installations → Cloud Build-appen → ID i URL Fyll inn GITHUB_APP_INSTALLATION_ID i .env [ ] B3 — bash infrastructure/06-cicd-setup.sh OQ-04: LØST — Cloud Build 2nd gen, ingen manuell OAuth i Console [ ] B4 — Legg til webhook URL i Secret Manager: gcloud secrets create webhook-url --data-file=<(echo -n "https://DIN-WEBHOOK-URL") Se: infrastructure/notifications/webhook-setup.md [ ] B5 — bash infrastructure/10-cost-guard.sh Aktiverer auto-teardown Cloud Function + chat-varsling ved budsjett-overskridelse [ ] B6 — Eksporter Dialogflow CX agent til versjonskontroll gcloud beta dialogflow agents export --location=us-central1 \ --destination=gs://propane-will-491900-m5-dialogflow-backup/agent.zip Legg backup-rutine i CI/CD pipeline (etter B3) ``` --- ## FASE C — Første salgsmodul **Mål: Ny kunde onboardet på 30 minutter | Tid: Ukentlig arbeid** ``` [ ] C1 — Pakk `vauco-bootstrap` som Terraform-modul for kunde-onboarding Ressurser per kunde: Cloud Run, Artifact Registry, Cloud Build 2nd gen, IAP, budsjett-alert, Service Account Terraform-variabler: customer_id, customer_project_id, customer_region State-backend: GCS bucket (TF_STATE_BUCKET i .env) [ ] C2 — Pakk `vauco-os` som kundeflate Inkluder Dialogflow Messenger widget (fra DX5) i kundefront [ ] C3 — Opprett billing@vauco.no som Google Group Legg inn: chris.christiansen@vauco.no + jason.vauger@vauco.no Oppdater .env: BILLING_VIEWER_EMAILS="billing@vauco.no" Kjør på nytt: bash infrastructure/11-billing-iam-hardening.sh [ ] C4 — Første kunde: Medioteq Region: europe-north1, separat GCP-prosjekt Kjør: terraform apply -var="customer_id=medioteq" Inkluder dedikert Dialogflow CX-agent per kunde (replikat av DX1–DX5) ``` --- ## INFRASTRUKTUR | Script | Rolle | Status | |--------|-------|--------| | `00-authcheck.sh` | Verifiser gcloud-innlogging | Klar | | `01-setupenv.sh` | Aktiver APIs, SA, IAM, budsjetter ($75+$500), Pub/Sub | Klar | | `02-deploy.sh` | IAP-deploy på eget domene | Klar | | `03-teardown.sh` | Riv ned Cloud Run | Klar | | `04-observability-setup.sh` | Monitoring + alerting | Klar | | `05-cloudrun-deploy.sh` | ADK-agent til Cloud Run | Klar | | `06-cicd-setup.sh` | GitHub → Cloud Build **2nd gen** | Oppdatert | | `07-rag-setup.sh` | RAG Engine corpus + fallback | Oppdatert | | `08-memorybank-setup.sh` | Memory Bank + auto-install | Oppdatert | | `09-cost-check.sh` | Kostnadsoversikt + Artifact Registry | Klar | | `10-cost-guard.sh` | Cloud Function auto-teardown + webhook-alert | **Ny** | | `11-billing-iam-hardening.sh` | Billing IAM: viewer-roller + fjern domain Creator | **Ny** | --- ## BEKREFTET GA-API | API | Status | |-----|--------| | `google.adk.Agent` (ikke LlmAgent) | Bekreftet GA-API | | `load_memory_tool` | Bekreftet fra adk-python samples | | Cloud Build 2nd gen (`cloudbuildv2`) | Bekreftet GA — programmatisk GitHub-kobling | | CMEK ikke for RAG Engine | Ikke støttet (OQ-03) | | CI/CD `--no-traffic` | Manuell trafikkbytte — HITL | | Idempotente scripts | Trygt å kjøre flere ganger | | `03-teardown.sh` hver kveld | Agent Runtimes koster 24/7 | | Conversational Agents (Dialogflow CX) | Playbooks GA — Data Store + webhook | --- ## DRIFTSKOSTNADER | Scenario | Kostnad/mnd | |---|---| | Bare deg (dev, teardown daglig) | ~$25-75 | | Dev + Dialogflow CX FAQ (10k req) | ~$145-195 (Playbooks ~$120 inkl.) | | 1 betalende kunde (lett prod) | ~$115-280 | | Medioteq-type (klinisk, compliance) | ~$220-350 | Breakeven: 1 kunde til $300-500/mnd dekker alle kostnader. **Dialogflow CX-kreditten (kr 5 822) dekker ~4 måneder pilot uten reell kostnad.** --- ## KJENTE HULL | ID | Hva | Workaround / Status | |---|---|---| | OQ-01 | Memory Bank — ingen gcloud CLI | Python SDK only | | OQ-02 | RAG Engine regional availability | Auto-fallback til us-east1 | | OQ-03 | CMEK ikke for RAG Engine | VPC-SC only | | OQ-04 | Cloud Build GitHub OAuth | **LØST** — 2nd gen programmatisk connection | | OQ-05 | gcloud alpha monitoring ustabil | Fallback til true | | OQ-06 | Memory Bank auto-discovery | Eksplisitt env var | | OQ-07 | Monitoring email flag-format | Teste i dev | | OQ-08 | VPC connector e2-micro regional | Default us-central1 | | OQ-09 | GCP billing: 0 viewers | **LØST** — `11-billing-iam-hardening.sh` | | OQ-10 | GCP billing: Creator på domenet | **LØST** — fjernes når ORG_DOMAIN er satt | | OQ-11 | Dialogflow CX Data Store norsk indeksering | Teste med nb-NO locale i DX2 | --- ## TERRAFORM-VEIKART (Fase C) Terraform introduseres **ikke** for nåværende infra — gcloud-scripts er tilstrekkelig. Terraform blir relevant ved kunde-onboarding: | Når | Hva | |---|---| | Fase C: Medioteq | `vauco-bootstrap` → Terraform-modul | | Per kunde | `terraform apply -var="customer_id=X"` oppretter isolert GCP-miljø | | Ressurser per modul | Cloud Run, Cloud Build 2nd gen connection, IAP, budsjett, SA, **Dialogflow CX agent** | | State-backend | GCS bucket (`TF_STATE_BUCKET`) — én bucket, én state-fil per kunde | | Fase D | Terraform Cloud for sentralisert state og CI/CD på tvers av kunder | Terraform-ressurser: - `google_cloudbuildv2_connection` — programmatisk GitHub-kobling per kunde - `google_cloudbuildv2_repository` — repo-link - `google_cloudbuild_trigger` — push-til-main trigger - `google_billing_budget` — budsjett-alert per kunde - `google_cloud_run_v2_service` — Cloud Run-tjeneste - `google_dialogflow_cx_agent` — FAQ-agent per kunde (Fase C) --- *OSVauco-NMTMD-GCOS | propane-will-491900-m5 | us-central1* --- ## LLM-RUTINGSSTRATEGI **Prinsipp: Lett modell i front, tung modell ved behov i bakkant — vurdert per modul og kost.** | Modell | Pris input/output (per 1M) | EU-tilgang | Bruksomrade | |---|---|---|---| | `gemini-2.0-flash` | $0.10 / $0.40 | Ja (europe-west4) | Standard — alle enkle kall | | `gemini-2.5-pro` | $1.25 / $10.00 | Ja (europe-west4) | Kompleks reasoning, compliance | | `gemini-3.5-flash` | $1.50 / $9.00 | Nei (kun US/global) | Tung orkestrering, Fase C | **Rutetabell per modul:** | Modul / Agent | Standard modell | Eskalering til | Trigger | |---|---|---|---| | OPAX billing-agent | `gemini-2.0-flash` | — | Aldri — strukturert data | | RAG retrieval + svar | `gemini-2.0-flash` | `gemini-2.5-pro` | Komplekse flertrinns-sporsmal | | Memory Bank oppslag | `gemini-2.0-flash` | — | Aldri — faktahenting | | TUI-cockpit (operator) | `gemini-2.0-flash` | `gemini-3.5-flash` | Bruker ber om dyp analyse | | vauco-os (kundeflate) | `gemini-2.0-flash` | `gemini-2.5-pro` | Compliance/kliniske sporsmal | | **Dialogflow CX Playbooks** | **Gemini (managed)** | — | **Native i plattformen** | | Fase C: Terraform-gen | `gemini-3.5-flash` | — | Standard for denne modulen | | Fase C: Kunde-onboarding | `gemini-2.5-pro` | `gemini-3.5-flash` | Multi-step orkestrering | **Konfigurasjon i `.env`:** ```env ORCHESTRATOR_MODEL=gemini-2.0-flash SUBAGENT_MODEL=gemini-2.0-flash REASONING_MODEL=gemini-3.5-flash ``` **Regionsstatus (mai 2026):** - `gemini-2.0-flash` + `gemini-2.5-pro` tilgjengelig `europe-west4` ok - `gemini-3.5-flash` kun `us-central1` / global endpoint - Navarende prosjektregion: `us-central1` — dekker alle modeller ok **Kostnadsestimat med ruting:** | Scenario | Uten ruting (3.5 Flash alt) | Med ruting | Besparelse | |---|---|---|---| | Dev daglig | ~$15-30/mnd | ~$1-5/mnd | ~85% | | 1 kunde prod | ~$60-120/mnd | ~$8-20/mnd | ~85% | --- *OSVauco-NMTMD-GCOS | propane-will-491900-m5 | us-central1* *GitHub: chrischristiansen-glitch/OSVauco*