From 1a66825e0ef2481e3ae0cb5cfbabea9b59db15ec Mon Sep 17 00:00:00 2001 From: chrischristiansen-glitch Date: Wed, 27 May 2026 20:18:11 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20update=20MASTERPLAN=20=E2=80=94=20CG1/C?= =?UTF-8?q?G2=20ferdig,=20OAuth=20live,=20CG3=20neste?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MASTERPLAN.md | 364 ++++++++++++++++---------------------------------- 1 file changed, 116 insertions(+), 248 deletions(-) diff --git a/MASTERPLAN.md b/MASTERPLAN.md index d75fd0c..0986780 100644 --- a/MASTERPLAN.md +++ b/MASTERPLAN.md @@ -1,22 +1,29 @@ # VAUCO MASTERPLAN — Chris Christiansen -**Sist oppdatert: 2026-05-27 CEST** -**Status: ✅ FASE A KOMPLETT | ✅ FASE B (B1-B5) KOMPLETT | ML-1 live | Røyktest 10/10 | Fase C neste** +**Sist oppdatert: 2026-05-27 20:xx CEST** +**Status: ✅ FASE A KOMPLETT | ✅ FASE B KOMPLETT | ✅ ML-1 live | ✅ CG1+CG2 live | ✅ OAuth live | CG3 neste** --- ## 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. +To parallelle spor: + +1. **OPAX** — AI-drevet operativsystem for deg selv (intern cockpit, `opax.vauco.no`). + Medioteq og andre kunder onboardes via OPAX/Terraform — **du styrer det selv innenfra OPAX, ikke her.** + +2. **CostGuard** — Salgbart produkt. AI-drevet GCP-kostnadsovervåking som selges til andre bedrifter. + Stack: Dialogflow CX → OSVauco Cloud Run → Cloud Billing API → Gemini 2.5 Flash + Pris å drifte: ~$32-45/mnd. Salgspris: $99-299/mnd pr. kunde. + **Dette er fokus nå.** **Repo-oversikt:** | Repo | Hva det er | |---|---| -| `OSVauco` | Regler, GCP-scripts, agenter, docs — KJERNEN | +| `OSVauco` | Kjerne: Cloud Run agent, GCP-scripts, ml/, auth/ | | `vauco-gemini-tui-bridge` | Din TUI-cockpit | -| `vauco-os` | Det kundene bruker | -| `vauco-bootstrap` | Onboarding av nye kunder (→ Terraform-modul i Fase C) | +| `vauco-os` | Arkitektur og kundedok | +| `vauco-bootstrap` | Terraform-modul for kunde-provisjonering (Fase C) | | `deep-dream` | Strategisk visjon — aldri deploy herfra | --- @@ -29,237 +36,141 @@ Du er første kunde. Når det virker for deg → selg det til andre. | 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 - --- ## DNS / DOMENE-ARKITEKTUR -> **Arkitekturavgjørelse — 2026-05-26** - | Domene | Type | Teknologi | Fase | |---|---|---|---| -| `opax.vauco.no` | Intern cockpit (kun Chris) | CNAME → Cloud Run (gratis) | B1 nå | +| `opax.vauco.no` | Intern cockpit (kun Chris) | CNAME → Cloud Run | ✅ Live | +| `costguard.vauco.no` | CostGuard salgsdemo | CNAME → Cloud Run /static/ | CG3 neste | | `kunde1.vauco.no` / kundedomener | Kunde-instanser | LB + IAP (Terraform) | Fase C | -**Begrunnelse:** -- `opax.vauco.no` er et internt arbeidsverktøy for én bruker — Load Balancer ($18-20/mnd) er unødvendig overhead. -- Kundeinstanser provisjoneres via `vauco-bootstrap` Terraform-modul i Fase C. LB + IAP bakes inn i modulen én gang og kjøres automatisk per kunde med `terraform apply -var="customer_id=X"`. -- Terraform-modulen (Fase C) skal inkludere: Cloud Run, Cloud Build, IAP, LB, budsjett, SA, Dialogflow CX, ML state store. +--- + +## CLOUD RUN — LIVE ENDEPUNKTER + +**Service:** `osvauco-agent` | **Region:** `europe-west1` +**URL:** `https://osvauco-agent-357036551735.europe-west1.run.app` +**Siste revisjon:** `osvauco-agent-00064-p9h` + +| Endepunkt | Status | Beskrivelse | +|---|---|---| +| `GET /health` | ✅ | Health check | +| `POST /run` | ✅ | Agent (light/heavy) | +| `POST /run/dag` | ✅ | Parallell DAG | +| `GET /billing/summary?client_id=X` | ✅ | Kostnad per tjeneste siste 30d | +| `GET /billing/forecast?client_id=X` | ✅ | Prognose basert på 7d snitt | +| `GET /billing/anomalies?client_id=X` | ✅ | Anomali-deteksjon + Pub/Sub | +| `GET /auth/login?client_id=X` | ✅ | Start OAuth2-flow for klient | +| `GET /auth/callback` | ✅ | Google redirect → lagrer token | +| `GET /static/billing-dashboard.html` | ✅ | Billing dashboard UI | +| `GET /state` | ✅ | Agent state snapshot | +| `GET /telemetry/history` | ✅ | Telemetri | + +**OAuth credentials (Vauco OS Web App):** +- Client ID: `357036551735-ka7t2fv9ue2jp01bs826hpdctlvispuo.apps.googleusercontent.com` +- Redirect URI: `https://osvauco-agent-357036551735.europe-west1.run.app/auth/callback` +- Secrets i Secret Manager: `OAUTH_CLIENT_ID`, `OAUTH_CLIENT_SECRET` + +**BigQuery billing export:** +- Dataset: `propane-will-491900-m5:billing_export` +- Tabell: ikke ankommet ennå (aktivert 2026-05-27, forventet innen 24t) +- Når tabell dukker opp: sett `BILLING_TABLE` env-var i Cloud Run --- -## CLOUD SHELL QUICK-START (kopi-klipp) +## FASE CG — CostGuard ← AKTIV SPRINT -> Bruk Cloud Shell: https://shell.cloud.google.com +``` +[x] CG1 — Billing API-integrasjon + ml/billing_agent.py: GET /billing/summary, /forecast + BQ-spørring klar, venter på billing_export-tabell (i morgen) -```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 +[x] CG2 — Anomali-deteksjon + ml/anomaly_detector.py: forbruk > 2x 7d-snitt → Pub/Sub -# Steg 2: Kopier og rediger .env -cp .env.example .env -nano .env -# Fyll ut: BILLING_ACCOUNT_ID, ALERT_EMAIL, GITHUB_APP_INSTALLATION_ID +[x] AUTH — OAuth2 klient-onboarding + auth/oauth_flow.py + auth/token_store.py + /auth/login + /auth/callback live i main.py + Token lagres per client_id i Secret Manager -# Steg 3: Installer Python-avhengigheter -pip install google-adk google-cloud-aiplatform>=1.111.0 --quiet +[ ] CG3 — CostGuard landingsside + costguard.vauco.no: "Koble til GCP"-knapp → /auth/login + Dialogflow Messenger embed (Jason-v1 FAQ, DX1-DX3 ferdig) + Billing dashboard embed (/static/billing-dashboard.html ferdig) + CNAME costguard.vauco.no → Cloud Run -# Steg 4: Kjør i rekkefølge -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 +[ ] CG4 — Onboard første kunde via vauco-bootstrap Terraform-modul -bash infrastructure/08-memorybank-setup.sh -# *** Kopier MEMORY_ENGINE_NAME fra output inn i .env *** -nano .env && source .env - -gcloud run deploy osvauco-agent - --source . --region europe-west1 - --project propane-will-491900-m5 - --set-secrets RAG_CORPUS=rag-corpus-name:latest - --set-env-vars GOOGLE_GENAI_USE_VERTEXAI=1,GOOGLE_CLOUD_PROJECT=propane-will-491900-m5,GOOGLE_CLOUD_LOCATION=global,MEMORY_ENGINE_NAME=$MEMORY_ENGINE_NAME - --no-allow-unauthenticated - -bash infrastructure/04-observability-setup.sh -bash infrastructure/11-billing-iam-hardening.sh -bash scripts/smoke-test.sh - -# Om kvelden (OBLIGATORISK): -bash infrastructure/03-teardown.sh +[ ] CG5 — Salgsdemo klar ``` --- -## FASE A — Ferdigstill kjernen ✅ KOMPLETT +## FASE A — ✅ KOMPLETT ``` -[x] A1 — cp .env.example .env og fyll inn verdier -[x] A2 — bash infrastructure/00-authcheck.sh -[x] A3 — bash infrastructure/01-setupenv.sh -[x] A4 — bash infrastructure/07-rag-setup.sh - RAG corpus: projects/357036551735/locations/europe-west1/ragCorpora/6917529027641081856 -[x] A5 — bash infrastructure/08-memorybank-setup.sh - Memory Engine: projects/357036551735/locations/us-central1/reasoningEngines/2260229219579592704 - export MEMORY_ENGINE_NAME="projects/357036551735/locations/us-central1/reasoningEngines/2260229219579592704" -[x] A6 — Cloud Run live: osvauco-agent (europe-west1) revision 00006-282 - URL: https://osvauco-agent-357036551735.europe-west1.run.app - Modes: light (gemini-2.5-flash) | heavy (gemini-2.5-pro) - Env: GOOGLE_CLOUD_LOCATION=global (krav for gemini-2.5-*) -[x] A7 — bash infrastructure/04-observability-setup.sh - TELEMETRI-KOORDINERING: - - ml/telemetry.py: JSONL /tmp/vauco_telemetry/ — agent-nivå - - A7 Cloud Monitoring: GCP-nivå (CPU, request-rate, feil-rate) - - Prod: GCS sink via 10-cost-guard.sh (B5) -[x] A8 — bash infrastructure/03-teardown.sh (kjør hver kveld) -[x] A9 — bash infrastructure/11-billing-iam-hardening.sh +[x] A1-A9 — Alle ferdig. Se tidligere historikk. [x] SMOKE — scripts/smoke-test.sh: 10/10 ✅ (2026-05-26 01:45 CEST) +RAG corpus: projects/357036551735/locations/europe-west1/ragCorpora/6917529027641081856 +Memory Engine: projects/357036551735/locations/us-central1/reasoningEngines/2260229219579592704 ``` --- ## FASE A2 — Dialogflow CX FAQ-agent -**Kreditt: kr 5 822 + $1 000 Playbooks-trial** - -> **SCOPE-AVKLARING (2026-05-27):** Jason-v1 FAQ er et internt verktøy for operatøren (deg) i første fase — -> brukes som kunnskapsbase og salgsmodul-assistent i OPAX. Ingen ekstern publisering ennå. -> Voice-støtte planlagt i DX7. - ``` -[x] DX1 — Opprett Playbook-agent i Conversational Agents Console (2026-05-27) - Agent: OSVauco FAQ - Plattform: Conversational Agents CX Agent Studio - Region: us-central1 - Prosjekt: propane-will-491900-m5 (Jason-v1) -[x] DX2 — Last opp FAQ-innhold som Data Store (2026-05-27) - - FAQ-fil: data/threadstone_faq.csv, 39 Q&A-par, ~9 KB - - GCS: gs://vauco-faq-store/threadstone_faq.csv - - Data Store: threadstone-faq-store (FAQ-type, us multi-region) -[x] DX3 — Konfigurer Playbook med norsk systemprompt (2026-05-27) - - Status: Norsk instrukssett satt i Default Generative Playbook - - Svar: Fungerer — kortfattet norsk FAQ-respons med billing@vauco.no -[x] DX4 — Webhook mot OSVauco Cloud Run - - AVKLARING: Jason-v1 FAQ er en ren Data Store-agent (ingen runtime-kall til Cloud Run). - - Cloud Run-webhook håndteres i OSVauco API-laget (C2/C3), ikke i FAQ-agenten. - - Cloud Run URL (funnet): https://osvauco-agent-zjbqp3prqq-uc.a.run.app - - → Parkert til C2/C4 (Medioteq-integrasjon). -[ ] DX5 — Publiser via Dialogflow Messenger - Trigger: Første ekstern kunde (C4 Medioteq) eller salgsmodul klar -[ ] DX6 — Sett budsjett-alert for Dialogflow CX -[ ] DX7 — Voice-kanal for OSVauco FAQ - Fase 1: Web-mikrofon (WebRTC) for intern bruk (deg) - Fase 2: Telefoni-kanal (Dialogflow CX telephony gateway / PSTN) - Samme FAQ data store og playbook gjenbrukes — kun kanal endres - Trigger: Etter DX5 / første ekstern bruker -[ ] B6 — Eksporter Dialogflow CX agent til versjonskontroll +[x] DX1 — Agent: OSVauco FAQ, us-central1, propane-will-491900-m5 +[x] DX2 — Data Store: threadstone-faq-store, 39 Q&A-par +[x] DX3 — Norsk systemprompt, fungerer +[x] DX4 — Parkert til C4 (Medioteq) — Cloud Run URL: https://osvauco-agent-zjbqp3prqq-uc.a.run.app +[ ] DX5 — Publiser via Dialogflow Messenger (trigger: CG3) +[ ] DX6 — Budsjett-alert Dialogflow CX +[ ] DX7 — Voice-kanal (trigger: etter DX5) +[ ] B6 — Eksporter Dialogflow CX til versjonskontroll ``` --- -## FASE ML — ML-lag for OPAX +## FASE ML ``` -[x] ML-1 — Grunnlag (2026-05-25) - ml/task_graph.py — Dask DAG parallell agent-kjøring - ml/state_store.py — Parameter Server state - ml/telemetry.py — JSONL per agent-kall og DAG - POST /run | POST /run/dag | GET /state | GET /telemetry/history - Røyktest: DAG 2 meldinger parallelt ✅ 4.6s - -[ ] ML-2 — Adaptiv intelligens - Trigger: > 500 telemetri-kall fra ML-1 - ml/feedback_loop.py, ml/hypertuner.py, ml/heavy_predictor.py - Krav: dask-ml>=2024.4.0, ray[tune]>=2.10.0 - -[ ] ML-3 — Strategisk innsikt - Trigger: ML-2 ferdig + Fase C første kunde - ml/agent_importance.py (XGBoost), experiments/pbt.py - Krav: xgboost>=2.0.0 -``` - -| Miljø | Telemetri-lokasjon | Arkivering | -|---|---|---| -| Lokal dev | `/tmp/vauco_telemetry/` | Manuell | -| Cloud Run | `/tmp/vauco_telemetry/` | B5: GCS sink | -| Prod | `gs://propane-will-491900-m5-telemetry/` | Auto | - ---- - -## FASE B — Sikring og CI/CD ✅ KOMPLETT - -``` -[x] B1 — Cloud Run deploy live (osvauco-agent-00065-z7t, us-central1) - IAP opax.vauco.no: CNAME-metode (se B1-IAP nedenfor) -[x] B2 — GitHub PAT i Secret Manager (github-pat) -[x] B3 — Cloud Build 2nd gen pipeline - Connection: osvauco-github-conn - Trigger: osvauco-agent-deploy (ID: 2fdd789f-a4dc-4f4a-8297-5e91674d2178) - Push til main → auto build + deploy -[x] B4 — Webhook (løst av 2nd gen GitHub App — ingen manuell webhook nødvendig) -[x] B5 — Cost guard + GCS ML-telemetri - Budget: osvauco-monthly-guard (500 NOK/mnd, 50/90/100% alerts) - Bucket: gs://osvauco-ml-telemetry (90-dagers lifecycle) - Sink: osvauco-ml-sink → Cloud Run logger → GCS -[x] B1-IAP — opax.vauco.no via CNAME → Cloud Run domain mapping (2026-05-27) - Status: ✅ KOMPLETT -[ ] B6 — Eksporter Dialogflow CX agent til versjonskontroll +[x] ML-1 — DAG, state store, telemetri ✅ (2026-05-25) +[ ] ML-2 — Adaptiv intelligens (trigger: >500 telemetri-kall) +[ ] ML-3 — Strategisk innsikt (trigger: ML-2 + første kunde) ``` --- -## FASE C — Første salgsmodul +## FASE B — ✅ KOMPLETT ``` -[x] C1 — Pakk vauco-bootstrap som Terraform-modul ✅ KOMPLETT (2026-05-27) - - infrastructure/modules/vauco-bootstrap/: main.tf, variables.tf, outputs.tf, versions.tf - - Terraform validate: PASS - - Inkludert: Dialogflow CX (google_dialogflow_cx_agent), dialogflow_region=europe-west1 -[x] C2 — Pakk vauco-os som kundeflate (2026-05-27) - KOMPLETT - Note: API-dokumentasjon (docs/CUSTOMER_API.md) opprettet. -[x] C3 — Opprett billing@vauco.no som Google Group (2026-05-27) - - Note: Billing Alerts (billing@vauco.no) eksisterte fra før – verifisert medlem/eierrskap. -[ ] C4 — Første kunde: Medioteq - - FASE 1 (Design/plan): PLAN KLAR – AVVENTER C4.1 + COST GODKJENT - - [x] C4.1 – Velg endelig Medioteq-prosjekt-ID og billing_account_id - - project_id velges i eget HITL-møte (forslag i medioteq.tf-kommentarene) - - billing_account_id dokumenteres og lagres i .env/.secrets - - ingen terraform plan/apply før C4.1 er krysset av - - [ ] C4.2 — Auth-strategi sluttfase (HITL-gate per kundeprosjekt) - Fase 1: Google login på godkjente enheter - Sluttfase: Vurder BankID / endelig OAuth-provider per kunde +[x] B1 — Cloud Run live +[x] B2 — GitHub PAT i Secret Manager +[x] B3 — Cloud Build 2nd gen (trigger: osvauco-agent-deploy) +[x] B4 — GitHub App webhook +[x] B5 — Cost guard 500 NOK/mnd + GCS ML-telemetri +[x] B1-IAP — opax.vauco.no CNAME live +[ ] B6 — Eksporter Dialogflow CX (se DX-lista) ``` --- -## FASE CG — CostGuard (GCP Cost Intelligence Assistant) +## FASE C — Kunde-onboarding (Medioteq og videre) -Produkt: AI-drevet webchat-assistent for sanntids GCP-kostnadsovervåking. -Stack: Dialogflow CX → OSVauco Cloud Run → Cloud Billing API → Gemini 2.5 Flash -Kostnad å drifte: ~$32-45/mnd. Salgspris: $99-299/mnd pr. kunde. -[] CG1 — Billing API-integrasjon i OSVauco-agentlaget -- Ny agent: ml/billing_agent.py -- Integrer Cloud Billing API (cloudbilling.googleapis.com) -- Endepunkt: GET /billing/summary → returnerer forbruk pr. tjeneste siste 30 dager -- Endepunkt: GET /billing/forecast → prognose basert på siste 7 dagers snitt -- Endepunkt: GET /billing/credits → aktive kreditter og utløpsdato -[] CG2 — Anomali-deteksjon -- Trigger: forbruk > 2x 7-dagers snitt for én tjeneste -- Publiser til billing_alerts Pub/Sub topic (allerede eksisterer) -[] CG3 — Webchat UI -- Dialogflow Messenger embed på vauco.no/costguard -- Standalone webapp: costguard.vauco.no -[] CG4 — Onboard første kunde via vauco-bootstrap -[] CG5 — Salgsdemo klar +> **NB: Medioteq og fremtidige kunder onboardes av deg selv via OPAX innenfra.** +> Dette er ikke en oppgave for ekstern assistanse. Terraform-modulen er klar. + +``` +[x] C1 — vauco-bootstrap Terraform-modul klar (validate: PASS) +[x] C2 — vauco-os kundeflate + CUSTOMER_API.md +[x] C3 — billing@vauco.no Google Group +[ ] C4 — Medioteq: HITL-møte → velg project_id → terraform apply + C4.1: project_id + billing_account_id (HITL-gate) + C4.2: Auth (Google login → vurder BankID sluttfase) +``` --- @@ -270,16 +181,16 @@ Kostnad å drifte: ~$32-45/mnd. Salgspris: $99-299/mnd pr. kunde. | `00-authcheck.sh` | Verifiser gcloud-innlogging | Klar | | `01-setupenv.sh` | Aktiver APIs, SA, IAM, budsjetter, Pub/Sub | Klar | | `02-deploy.sh` | IAP-deploy på eget domene | Klar | -| `03-teardown.sh` | Riv ned Cloud Run | Klar | +| `03-teardown.sh` | Riv ned Cloud Run (kjør hver kveld) | Klar | | `04-observability-setup.sh` | Cloud 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 | +| `06-cicd-setup.sh` | GitHub → Cloud Build 2nd gen | Klar | +| `07-rag-setup.sh` | RAG Engine corpus + fallback | Klar | +| `08-memorybank-setup.sh` | Memory Bank + auto-install | Klar | | `09-cost-check.sh` | Kostnadsoversikt + Artifact Registry | Klar | -| `10-cost-guard.sh` | Cloud Function auto-teardown + GCS ML-telemetri sink | **Ny** | -| `11-billing-iam-hardening.sh` | Billing IAM: viewer-roller + fjern domain Creator | **Ny** | -| `scripts/smoke-test.sh` | 10-case røyktest: health/light/heavy/legacy/400/403/DAG/state/telemetri | **Ny** | +| `10-cost-guard.sh` | Cloud Function auto-teardown + GCS telemetri sink | Klar | +| `11-billing-iam-hardening.sh` | Billing IAM hardening | Klar | +| `scripts/smoke-test.sh` | 10-case røyktest | Klar | --- @@ -293,30 +204,11 @@ Kostnad å drifte: ~$32-45/mnd. Salgspris: $99-299/mnd pr. kunde. | OQ-04 | Cloud Build GitHub OAuth | **LØST** — 2nd gen | | 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** | -| OQ-10 | GCP billing: Creator på domenet | **LØST** | | OQ-11 | Dialogflow CX Data Store norsk indeksering | Teste nb-NO i DX2 | -| OQ-12 | gemini-2.0-flash/gemini-2.0-flash-001 ikke tilgjengelig nye prosjekter | **LØST** — gemini-2.5-flash/pro + LOCATION=global | -| OQ-13 | ML-telemetri /tmp/ flyktig i Cloud Run | **LØST** — B5: GCS sink | -| OQ-14 | LB vs CNAME for domene-routing | **LØST** — CNAME for opax (intern), LB i Terraform for kunder (Fase C) | - ---- - -## BEKREFTET GA-API - -| API | Status | -|-----|--------| -| `google.adk.Agent` | Bekreftet GA | -| `load_memory_tool` | Bekreftet | -| Cloud Build 2nd gen | Bekreftet GA | -| CMEK ikke for RAG Engine | Ikke støttet | -| Idempotente scripts | Trygt å kjøre flere ganger | -| `03-teardown.sh` hver kveld | Agent Runtimes koster 24/7 | -| Dialogflow CX Playbooks | GA | -| Dask `scheduler="threads"` i Cloud Run | Bekreftet | -| `gemini-2.5-flash` / `gemini-2.5-pro` via `LOCATION=global` | **Bekreftet 2026-05-26** | +| OQ-12 | gemini-2.0-flash ikke tilgjengelig | **LØST** — gemini-2.5-flash/pro + LOCATION=global | +| OQ-13 | ML-telemetri /tmp/ flyktig | **LØST** — B5: GCS sink | +| OQ-14 | LB vs CNAME | **LØST** — CNAME intern, LB Terraform for kunder | +| OQ-15 | billing_export BQ-tabell ikke ankommet | Venter — aktivert 2026-05-27 | --- @@ -335,36 +227,12 @@ Breakeven: 1 kunde til $300-500/mnd dekker alle kostnader. ## LLM-RUTINGSSTRATEGI -**Prinsipp:** Lett modell i front (light), tung modell ved behov (heavy). - -| Modell | Pris (per 1M) | Tilgang | Bruksområde | -|---|---|---|---| -| `gemini-2.5-flash` | $0.30 / $2.50 | global | light — alle enkle kall | -| `gemini-2.5-pro` | $1.25 / $10.00 | global | heavy — reasoning, compliance | - -| Parameter | light | heavy | +| Modell | Pris (per 1M) | Bruksområde | |---|---|---| -| Orchestrator | `gemini-2.5-flash` | `gemini-2.5-pro` | -| Sub-agenter | `gemini-2.5-flash` | `gemini-2.5-pro` | -| Reasoning | `gemini-2.5-flash` | `gemini-2.5-flash` | -| Multi-agent | Nei | Ja | -| Budsjettgrense | $1/task | $3/task | -| `LOCATION` | `global` | `global` | +| `gemini-2.5-flash` | $0.30 / $2.50 | light — alle enkle kall | +| `gemini-2.5-pro` | $1.25 / $10.00 | heavy — reasoning, compliance | -**Autoriserte brukere for heavy:** `opax`, `admin` -Legacy `A` / `A+` normaliseres automatisk til `light` / `heavy`. - ---- - -## TERRAFORM-VEIKART (Fase C) - -| Når | Hva | -|---|---| -| Fase C: Medioteq | `vauco-bootstrap` → Terraform-modul | -| Per kunde | `terraform apply -var="customer_id=X"` | -| Ressurser | Cloud Run, Cloud Build, IAP (LB), budsjett, SA, Dialogflow CX, ML state store | -| State-backend | GCS (`TF_STATE_BUCKET`) | -| Fase D | Terraform Cloud | +Autoriserte heavy-brukere: `opax`, `admin` ---