OSVauco/MASTERPLAN.md

14 KiB
Raw Blame History

VAUCO MASTERPLAN — Chris Christiansen

Sist oppdatert: 2026-05-24 CEST Status: Repo ferdig — GCP gjenstaar (A4A9 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

# 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 A4A9)

Mål: Generativ FAQ-agent live på OSVauco | Tid: Ca. 35 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
DX1DX3 (bygging + testing) ~500 ~$6
DX4DX5 (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 DX1DX5)

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ØST11-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:

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