diff --git a/docs/MASTERPLAN.md b/docs/MASTERPLAN.md index ee864bb..8de96e9 100644 --- a/docs/MASTERPLAN.md +++ b/docs/MASTERPLAN.md @@ -1,7 +1,7 @@ # VAUCO OS — MASTERPLAN **Eier:** Chris Christiansen · Vauco AS · Org.nr 935 989 779 -**Sist oppdatert:** 2026-05-31 +**Sist oppdatert:** 2026-06-10 **Status:** 🟢 AUTORITATIV — én kilde til sannhet for hele Vauco-økosystemet > **Regel #1:** Denne filen er sannheten. Hvis en annen fil sier noe annet — denne vinner. @@ -39,7 +39,7 @@ Separat merkevare under Vauco AS (parkert til etter Modul #1 + #2 lever): **Salgskanal-prinsipp:** - `vauco.no` = portalen som forteller "hva selger vi" og leder til riktig modul -- Hver modul har sin egen landings-/produktside (`costguard.oss.vauco.no`, `threadstone.vauco.no`, …) +- Hver modul har sin egen landings-/produktside - Vauco OS og OPAX nevnes ikke som produkter på `vauco.no` — de er interne verktøy **Ikke selg Vauco OS. Ikke selg OPAX. De er interne verktøy.** @@ -52,34 +52,34 @@ Separat merkevare under Vauco AS (parkert til etter Modul #1 + #2 lever): | Domene | Prosjekt | Status | |--------|----------|--------| -| `vauco.no` | Rot for alle Vauco-tjenester | ✅ Aktiv, verifisert på GitHub | +| `vauco.no` | Rot for alle Vauco-tjenester | ✅ Aktiv, live på GCS+LB | **Aktive subdomener:** | Domene/subdomen | Teknologi | Status | Eier-flate | |----------|-----------|--------|------------| -| `vauco.no` (apex) | Proisp parking-side (placeholder) | ⚠️ "Under construction" — skal erstattes med ekte salgsportal | Vauco AS apex | -| `www.vauco.no` | Følger apex | ⚠️ Samme placeholder | Vauco AS apex | +| `vauco.no` (apex) | GCS + GCP Load Balancer + Cloud CDN | ✅ LIVE · 2026-06-05 | Vauco AS apex | +| `www.vauco.no` | Følger apex | ✅ LIVE | Vauco AS apex | | `opax.vauco.no` | LB + IAP → Cloud Run `osvauco-agent` | ✅ Live (IP 34.98.77.173) | OPAX | | `oss.vauco.no` | Staging-miljø | ✅ Aktiv | OPAX | | `os.vauco.no` | Prod-miljø | 🔮 Fase C | OPAX | -| `costguard.oss.vauco.no` | Cloudflare Pages | ✅ Live | CostGuard | +| `costguard.oss.vauco.no` | Cloud Run via IAP | ✅ Live | CostGuard | | `costguard.os.vauco.no` | Promoteres fra oss | 🔮 Fase C | CostGuard | | `threadstone.vauco.no` | GitHub Pages (`threadstone-landing`) | ✅ Live | Threadstone | | `app.threadstone.vauco.no` | GitHub Pages (`vauco-saas.github.io`) | ⚠️ CNAME satt, side mangler | Threadstone | | `.vauco.no` | LB + IAP via Terraform | 🔮 Fase C2 | OPAX/Multi-tenant | -**Reservert til senere — ikke opprettet ennå:** +**Reservert til senere:** | Subdomen | Tiltenkt formål | Trigger | |----------|------------------|---------| -| `status.vauco.no` | Statuspage for alle moduler (Cloud Run uptime, RAG, IAP) | Etter første kunde — trust-signal | -| `docs.vauco.no` | Offentlig kundedokumentasjon (CostGuard onboarding, API-ref) | CG4 / første kunde | -| `careers.vauco.no` | Stillinger (kan bare være redirect til notion-side) | Når Vauco rekrutterer | +| `status.vauco.no` | Statuspage | Etter første kunde | +| `docs.vauco.no` | Offentlig kundedok | CG4 / første kunde | +| `careers.vauco.no` | Stillinger | Når Vauco rekrutterer | **Email-infra:** -- MX: Google Workspace (`smtp.google.com`) ✅ -- TXT-records (SPF/DKIM/DMARC): ⚠️ Mangler — sett opp som del av V1 for å unngå at salgs-mail havner i spam +- MX: Google Workspace ✅ +- SPF/DKIM/DMARC: ⚠️ Mangler — sett opp som del av V1e ### Proof of Curiosity (hos Proisp) — egen merkevare @@ -91,44 +91,31 @@ Separat merkevare under Vauco AS (parkert til etter Modul #1 + #2 lever): | `proof-of-curiosity.no` | Registrert — ikke i bruk | | `proofofcuriosity.no` | Registrert — ikke i bruk | -> **Trigger:** Ingen POC-arbeid før Modul #1 (CostGuard) har første betalende kunde og Modul #2 (Threadstone) er i pilot. +> **Trigger:** Ingen POC-arbeid før Modul #1 + #2 lever. --- ## 3. Repo-struktur — fasit -### Aktive repos (5 — hold antallet lavt) +### Aktive repos (5) | Repo | Formål | Synlighet | Eier-flate | |------|--------|-----------|------------| -| `OSVauco` | Mono-repo: OPAX-engine, alle infrastruktur-scripts, Terraform, all dokumentasjon | Privat | OPAX (rot) | -| `vauco-bootstrap` | Terraform-modul for kunde-provisjonering (referert som submodul fra OSVauco) | Privat | OPAX | -| `vauco-site` | `vauco.no` salgsportal (apex + www) — eget public repo for SEO, ikke skjul kildekoden | Public | Vauco AS apex | +| `OSVauco` | Mono-repo: OPAX-engine, infra, Terraform, all dokumentasjon | Privat | OPAX (rot) | +| `vauco-bootstrap` | Terraform-modul for kunde-provisjonering | Privat | OPAX | +| `vauco-site` | `vauco.no` salgsportal | Public | Vauco AS apex | | `threadstone-landing` | `threadstone.vauco.no` landingsside | Public | Threadstone | -| `vauco-saas.github.io` | `app.threadstone.vauco.no` — Threadstone-app frontend | Public | Threadstone | +| `vauco-saas.github.io` | `app.threadstone.vauco.no` Threadstone-app frontend | Public | Threadstone | -> **Hvorfor `vauco-site` får eget repo (ikke i mono-repoet):** -> 1. Skal være public (mono-repoet er privat og må forbli det — inneholder infra, secrets-referanser, kundedata-mønstre) -> 2. Skal serveres via GitHub Pages eller Cloudflare Pages — egen deploy-pipeline -> 3. Designere/markedsfolk kan jobbe der uten å se OPAX-koden -> 4. Følger samme mønster som `threadstone-landing` - -### Arkiverte repos (ikke gjenåpne uten plan-endring) +### Arkiverte repos | Repo | Arkivert | Innholdet finnes nå i | |------|----------|------------------------| | `vauco-os` | ✅ 2026-05-27 | `OSVauco/docs/architecture/` | -| `vauco-gemini-tui-bridge` | ✅ 2026-05-27 | (kun arkiv; reaktiveres etter Fase 8 om behov) | +| `vauco-gemini-tui-bridge` | ✅ 2026-05-27 | Arkiv — reaktiveres som del av OX1b | | `command-hub` | ✅ 2026-05-27 | `OSVauco/static/command-hub.html` | -### Parkerte repos — leve videre, ikke arkiver, ikke aktivt jobb før trigger - -| Repo | Trigger for å gjenoppta | Hvor det hører hjemme i hierarkiet | -|------|--------------------------|------------------------------------| -| `threadstone-instructions` | Når Threadstone-app går i pilot (Modul #2 fase 2) | Threadstone-modul — boot-prompter + tema-config | -| `deep-dream` | Når Modul #1 har betalende kunde | Strategisk visjon, klassifisert — egen prosess | - -> **Regel:** Hvis du vil opprette et nytt repo — `STOP`. Vurder først om det kan leve som mappe i `OSVauco`. Krever eksplisitt `REPO APPROVED` fra Chris. +> **Regel:** Nytt repo krever eksplisitt `REPO APPROVED` fra Chris. --- @@ -136,140 +123,62 @@ Separat merkevare under Vauco AS (parkert til etter Modul #1 + #2 lever): ``` OSVauco/ -├── MASTERPLAN.md → symlink/peker til docs/MASTERPLAN.md (denne filen) +├── MASTERPLAN.md ├── README.md -├── AGENTS.md ML-roller, ikke rør uten ML-fase-endring -├── Dockerfile / cloudbuild.yaml CI/CD (auto-deploy på push til main) +├── AGENTS.md +├── Dockerfile / cloudbuild.yaml │ -├── agents/ Python-agentene -│ ├── core-logic/ OPAX orchestrator + FastAPI app (main.py) -│ ├── rag/ RAG-agent -│ ├── memory/ Memory-agent -│ ├── multi_agent/ Sub-orchestrators -│ ├── eval/ Evaluering -│ ├── tests/ Pytest -│ └── tools/ Hjelpere +├── agents/ +│ ├── core-logic/ OPAX orchestrator + FastAPI app +│ │ ├── agent.py Kjører Gemini nå → Gemma fra ML-3 +│ │ ├── app.py +│ │ └── token_logger.py +│ ├── rag/ +│ ├── memory/ +│ ├── multi_agent/ +│ ├── eval/ +│ ├── tests/ +│ └── tools/ │ -├── auth/ OAuth2-flow -├── ml/ CostGuard-engine (billing_agent, anomaly_detector, telemetry) -├── infrastructure/ GCP-scripts (00–12, 99) + terraform/ -│ └── terraform/ IaC (modules, customers, platform.tf) -├── scripts/ smoke-test, cost-audit, opax-boot, sync-gdrive -├── static/ HTML servert av Cloud Run -│ ├── opax.html OPAX operator hub +├── auth/ +├── ml/ +├── infrastructure/ +├── scripts/ +├── static/ +│ ├── opax.html Operator hub — blir Chris sitt cockpit (OX1) │ ├── billing-dashboard.html │ ├── command-hub.html -│ ├── costguard.html ← CG3 bygges her +│ ├── costguard.html │ └── admin.html ├── docs/ -│ ├── MASTERPLAN.md ← denne filen, autoritativ -│ ├── ROADMAP.md ← levende, oppdateres hver sesjon -│ ├── HANDOFF.md ← ÉN fil, overskrives per sesjon -│ ├── AGENT_RULEBOOK.md ← immutable regler for agent-boot -│ ├── ARCHITECTURE.md -│ ├── LEARNINGS.md -│ ├── architecture/ fra vauco-os repo -│ ├── threadstone/ (kommer når threadstone-instructions konsolideres) +│ ├── MASTERPLAN.md ← denne filen +│ ├── ROADMAP.md +│ ├── HANDOFF.md +│ ├── AGENT_RULEBOOK.md +│ ├── gemma/ ← NY: Gemma kontekstpakke (ML-3b) +│ │ ├── world.md Vaucos verden — alt Gemma trenger å vite +│ │ └── README.md │ └── [øvrige tema-docs] -├── protocols/ -│ └── sessions/ Detaljerte sesjonsprotokoller (én per dag) -├── data/ RAG-input (threadstone_faq.*) -└── dialogflow/ DX-agent-config +├── protocols/sessions/ +└── data/ ``` --- ## 4b. vauco.no — salgsportal (Vauco AS apex) -> Eget repo: `vauco-saas/vauco-site` — opprettes som del av V1. +> Eget repo: `vauco-saas/vauco-site` — LIVE 2026-06-05 på GCS+LB. -### Formål (én linje) -Vauco AS sin offisielle bedriftsside. Selger Vaucos AI-moduler ved å lede besokende videre til riktig modul-landingsside. Bygger tillit gjennom å vise hvem som står bak. - -### Hvem siden er for (prioritert rekkefølge) -1. **Potensielle CostGuard-kunder** — norske bedrifter med GCP-kostnader de ikke kontrollerer (Chris sin primære salgsmotor) -2. **Threadstone-pilot-kunder** (Q3 2026+) -3. **Partnere og presse** — "hvem er Vauco?" -4. **Fremtidige ansatte** — kandidater som googler firmaet etter et møte - -### Informasjonsarkitektur (sidekart) - -``` -vauco.no (hovedside) -├── #hero "Vauco bygger AI-moduler som leverer målbar verdi" -├── #moduler Grid med levende moduler -│ ├── CostGuard → costguard.oss.vauco.no -│ ├── Threadstone → threadstone.vauco.no -│ └── "Flere kommer" (placeholder med signup) -├── #hvorfor-vauco 3 punkter: norsk eierskap, GCP-ekspertise, AI som ikke er hype -├── #om-oss Chris Christiansen + Vauco AS (org.nr, Oslo) -├── #kontakt chris.christiansen@vauco.no + LinkedIn -└── footer Org.nr, personvern-lenke, status.vauco.no (når live) - -/personvern.html Personvernerklæring (GDPR-krav) -/vilkar.html Standardvilkår for kunder -/sitemap.xml For SEO -/robots.txt -``` - -### Visuell retning (utgangspunkt) - -- **Ankret i Threadstone-stilen** (`threadstone-landing/index.html`) — mørk bakgrunn, monospace-aksenter, Inter/SF Pro som hovedtypo -- **Én hovedfarge per modul:** CostGuard får en, Threadstone en annen — visuelt skille så kundene ikke forveksler -- **Ikke generisk SaaS-look.** Vauco er en operatør, ikke et VC-finansiert startup. Tone: rolig, kompetent, norsk. -- **Mobile-first** — Chris demoer ofte fra telefon -- **Lighthouse ≥0.95** på alle 4 akser -- **Ingen tracking-piksler** ved lansering (kan legges til senere som GA4 om nødvendig) - -### Salgs-flow (hva siden faktisk skal drive) - -``` -Google/LinkedIn → vauco.no - ↓ - #moduler-grid - ↓ - klikk "CostGuard" → costguard.oss.vauco.no - ↓ - Magic-link login - ↓ - (etter CG3-flow): kunden ser sine GCP-kostnader - ↓ - "Bestill" → Chris ringes opp (OPAX HITL) -``` - -### Teknisk stack - -| Lag | Valg | -|-----|------| -| Hosting | GitHub Pages (samme mønster som `threadstone-landing`) eller Cloudflare Pages | -| Bygg | Vanilj HTML/CSS — ingen framework før vi har en grunn | -| Deploy | Push til main → Pages bygger | -| Domene | `vauco.no` + `www.vauco.no` CNAME | -| SSL | Auto via Pages | -| Skjema | Formspark / Netlify Forms eller `mailto:` (V1 = mailto) | - -### Det som IKKE skal være på vauco.no - -- Ingen OPAX, Vauco OS, eller intern arkitektur — dette er kundenes side -- Ingen Deep Dream-innhold -- Ingen Proof of Curiosity (egen merkevare, egen side når tiden er inne) -- Ingen demo-credentials, ingen tekniske dypdykk -- Ingen "vi er det neste OpenAI"-retorikk - -### Designreferanser å inspireres av (ikke kopiere) - -- Linear.app — ren visuell hierarki -- Resend.com — norsk-ish tone, fokus på én ting -- Vercel.com — strukturen på modul-grid (men råere typografi) -- Threadstone-landing.html — vår egen stilreferanse +### Formål +Vauco AS sin offisielle bedriftsside. Selger moduler ved å lede besøkende til riktig produktside. ### Versjons-evolusjon | Versjon | Inneholder | Trigger | |---------|------------|---------| -| V1 (MVP) | Hero + modul-grid (CostGuard live, Threadstone "coming soon") + om-oss + kontakt + personvern | NOW — etter Fase 8 | -| V2 | Sales-CTA på hver modul (kalkulator-widget for CostGuard ROI), case study #1 | Etter første betalende kunde | -| V3 | Blogg/innsikter, kundereferanser, status-widget fra `status.vauco.no` | Når 3+ kunder | +| V1 (MVP) ✅ | Hero + modul-grid + om-oss + kontakt + personvern | LIVE 2026-06-05 | +| V2 | Sales-CTA + CostGuard ROI-kalkulator | Etter første betalende kunde | +| V3 | Blogg, kundereferanser, status-widget | Når 3+ kunder | | V4 | Internasjonalt (`vauco.no/en`), Proof of Curiosity i footer | Etter Modul #3 | --- @@ -278,104 +187,65 @@ Google/LinkedIn → vauco.no | Fil | Rolle | Oppdateres | |-----|-------|------------| -| `docs/MASTERPLAN.md` | Arkitektur, domener, repos, agent-identitet — **denne filen** | Ved arkitekturendringer | -| `docs/ROADMAP.md` | Faser, status, backlog — **levende dokument** | Hver sesjon | -| `docs/HANDOFF.md` | Hva ble gjort, hva er neste, kjente hull — **alltid kun én fil** | Overskrives hver sesjon | -| `docs/AGENT_RULEBOOK.md` | Locked definitions for agent-boot | Kun ved infrastruktur-låsing | -| `protocols/sessions/YYYY-MM-DD_.md` | Detaljerte protokoller per sesjon | Append-only | - -**Regel:** Arkitektur → MASTERPLAN. Oppgave → ROADMAP. Sesjonsstatus → HANDOFF. **Aldri dobbelt opp.** - -> **VAUCO_OS_ROADMAP.md er deprecated 2026-05-31.** Erstattet av `docs/ROADMAP.md`. +| `docs/MASTERPLAN.md` | Arkitektur, domener, repos, agent-identitet | Ved arkitekturendringer | +| `docs/ROADMAP.md` | Faser, status, backlog | Hver sesjon | +| `docs/HANDOFF.md` | Hva ble gjort, hva er neste | Overskrives hver sesjon | +| `docs/AGENT_RULEBOOK.md` | Locked definitions for agent-boot | Ved infrastruktur-låsing | +| `docs/gemma/world.md` | Gemmas verden — kontekstpakke for lokal modell | Bygges simultant med alt annet | +| `protocols/sessions/YYYY-MM-DD_.md` | Detaljerte protokoller | Append-only | --- -## 6. AI-modell — låst (midlertidig) +## 6. AI-modell — tofase-strategi + +### Fase 1 — Nå (Vertex AI, løper ut kreditter) | Parameter | Verdi | Merknad | |-----------|-------|---------| -| **Modell** | `gemini-2.5-pro` | Via Vertex AI | -| **Endpoint** | `us-central1` | Bruker Vertex-kreditter | -| **SDK** | `from google import genai` | google-genai >=0.3 | -| **Status Claude Opus 4.6/4.7** | ⏳ Venter på kvote-godkjenning fra Google Cloud-team | Bytt når kvote er innvilget | +| **Intern modell (Jason/Chris)** | `gemini-2.5-pro` / `gemini-2.5-flash` | Via Vertex AI, tærer på kreditter | +| **Kundemodell** | `gemini-2.5-flash` | Via Vertex AI — kunder betaler indirekte | +| **Endpoint** | `us-central1` | Vertex-kreditter | +| **SDK** | `google-adk` + `google-genai` | | +| **Status Claude** | ⏳ Venter på EU-kvote | Bytt når kvote innvilget | -**Bytte til Claude krever:** -1. Bekreftelse fra Google Cloud-team at kvote er innvilget i `us-central1` eller `eu`-region -2. Eksplisitt `MODEL APPROVED` fra Chris -3. Oppdatering av denne tabellen, `AGENT_RULEBOOK.md` og `.gemini/GEMINI.md` i samme commit +### Fase 2 — Gemma-migrering (trigger: kreditter < 20% eller første kunde onboardet) + +| Parameter | Verdi | Merknad | +|-----------|-------|---------| +| **Intern modell (Jason/Chris)** | `gemma-4-12b-it` int4 | GCP `g2-standard-4` Spot VM (~$120–150/mnd) | +| **Serving** | Ollama (utvikling) → vLLM (produksjon) | | +| **Kundemodell** | `gemini-2.5-flash` via Vertex | Uendret — kunder merker ingenting | +| **Kontekst** | `docs/gemma/world.md` lastet som system-prompt | Gemma forstår Vauco fra dag 1 | + +**Prinsipp:** Kunder bruker alltid Gemini via Vertex. Chris/Jason bruker Gemma lokalt. +**Gemma er ikke dum når den starter** — kontekstpakken (`docs/gemma/world.md`) bygges simultant og lastes ved oppstart. + +**Bytte til Gemma krever:** +1. ML-3b kontekstpakke ferdigstilt +2. GPU-VM verifisert med smoke-test +3. Eksplisitt `MODEL APPROVED` fra Chris +4. Oppdatering av `agent.py`, `AGENT_RULEBOOK.md` og denne tabellen i samme commit --- -## 7. Roadmap — prioritert rekkefølge +## 7. Roadmap — kortversjon -> Denne seksjonen er kortversjonen. Full status og daglig oppdatering ligger i `docs/ROADMAP.md`. +> Full status i `docs/ROADMAP.md`. -### 🔴 NÅ — Konsolidering + Fase 8 verifisering +### 🔴 NOW +- [x] K2, F8, CG6, CG3e — alle done ✅ -| # | Oppgave | Eier | Status | -|---|---------|------|--------| -| K1 | Slå sammen MASTERPLAN-er, slett duplikater, fjern merge-markører | Chris + Perplexity | 🟡 In progress (denne sesjonen) | -| K2 | Oppdater AGENT_RULEBOOK med korrekt region + modell | Chris | 🟡 In progress | -| K3 | Fiks nattlig GDrive backup-workflow | Chris | ⏳ Pending | -| F8 | End-to-end test: `opax.vauco.no` → login → chat → svar | Chris | ✅ Delvis (Cloud Run + IAP OK, gemini-2.5-pro deployet, browser-flow gjenstår) | +### 🟠 NEXT +- V1e — SPF/DKIM/DMARC +- CG4 — Token Intelligence (estimering + prising) +- OX1 — Operator Hub (Cloud Build widget, TUI, Jason-chat som cockpit) +- ML-3b — Gemma kontekstpakke bygges simultant (starter neste sesjon) -**Nåværende status:** -- Primary region bekreftet: `us-central1` -- `gemini-2.5-pro` deployet ✅ -- Åpne PR-er: #8, #9, #10 - -### 🟠 V — vauco.no salgsportal (parallelt spor) - -| # | Oppgave | -|---|---------| -| V1a | Opprett `vauco-saas/vauco-site` (public repo) | -| V1b | Bygg MVP: hero + modul-grid (CostGuard live, Threadstone "coming soon") + om-oss + kontakt + personvern | -| V1c | Sett CNAME `vauco.no` + `www.vauco.no` → GitHub Pages i Proisp | -| V1d | Erstatt "Under construction" placeholder — deploy MVP | -| V1e | Sett opp SPF + DKIM + DMARC TXT-records på `vauco.no` (e-post fra Workspace) | -| V2 | Sales-CTA + CostGuard ROI-kalkulator (trigger: etter Fase 8 OG første demo) | - -### 🟡 NESTE — CG3 (CostGuard frontend wiring) - -| # | Oppgave | -|---|---------| -| CG3a | Bygg `static/costguard.html` i OSVauco (OAuth-knapp + billing embed) | -| CG3b | Sett CNAME `costguard.oss.vauco.no` → Cloud Run i Proisp | -| CG3c | Verifiser at `/static/costguard.html` er tilgjengelig via Cloud Run | -| CG3d | Test OAuth-flow fra landingssiden | - -### 🟢 GO-TO-MARKET — CostGuard (Modul #1) - -| Fase | Innhold | -|------|---------| -| C4 | Medioteq HITL-møte → `terraform apply` → første betalende kunde | -| C5 | Salgsdemo: `costguard.os.vauco.no` + demo-video | -| DX5 | Dialogflow Messenger live på costguard-landingssiden | -| ML-2 | Adaptiv intelligens (trigger: >500 telemetri-kall) | - -### 🔵 MODUL #2 — Threadstone - -| # | Oppgave | -|---|---------| -| T1 | Konsolider `threadstone-instructions` → `OSVauco/docs/threadstone/` (når app-arbeid starter) | -| T2 | Bygg `app.threadstone.vauco.no` i `vauco-saas.github.io` | -| T3 | Koble til OPAX-engine via `POST /threadstone/generate` | -| T4 | Pilot med første kunde | - -### 🟣 STRATEGISK — Deep Dream (klassifisert) - -> Innholdet i `deep-dream` repo er strategisk visjon. **Røres ikke** før Modul #1 har betalende kunde. Lever som eget repo for å holde tilgang adskilt. - -### 🌐 FREMTID — Proof of Curiosity - -| # | Oppgave | -|---|---------| -| POC-1 | Definer hva Proof of Curiosity er (produkt, merkevare, community?) | -| POC-2 | Velg primærdomene (anbefaling: `proofofcuriosity.io`) | -| POC-3 | Opprett repo (vurder om det skal under `vauco-saas` eller separat org) | -| POC-4 | Bygg landing/MVP | - -> **Trigger:** Ikke start POC før Modul #1 er live med betalende kunde OG Modul #2 er i pilot. +### 🟡 LATER +- C4 — Første betalende kunde +- ML-3 — Full Gemma-migrering (trigger: kreditter < 20%) +- T1–T4 — Threadstone +- Fase C — Multi-tenant --- @@ -384,7 +254,7 @@ Google/LinkedIn → vauco.no | Identitet | E-post | Rolle | |-----------|--------|-------| | Eier / admin | `chris.christiansen@vauco.no` | Full kontroll | -| Agent (OPAX / Jason) | `jason.vauger@vauco.no` | `billing.viewer` + `run.invoker` på `osvauco-agent` | +| Agent (OPAX / Jason) | `jason.vauger@vauco.no` | `billing.viewer` + `run.invoker` | | Fremtidig gruppe | `billing@vauco.no` | `billing.viewer` (Fase C) | **Forbudte kontoer:** `tinius.vauger`, `ccv` — aldri gi tilganger. @@ -405,22 +275,24 @@ Google/LinkedIn → vauco.no | `GET /billing/summary` | ✅ | | `GET /billing/forecast` | ✅ | | `GET /billing/anomalies` | ✅ | +| `GET /billing/history` | ✅ | +| `GET /billing/budget` | ✅ | +| `POST /billing/budget` | ✅ | +| `GET /billing/tokens/summary` | ✅ (data fra CG3e) | | `GET /auth/login` | ✅ | | `GET /auth/callback` | ✅ | -| `GET /static/billing-dashboard.html` | ✅ | -| `GET /static/opax.html` | ✅ | | `GET /state` | ✅ | | `GET /telemetry/history` | ✅ | --- -## 10. Go-to-market — enkelt og konkret +## 10. Go-to-market **Produkt #1: CostGuard** - **Hvem:** Norske bedrifter med GCP-kostnader de ikke kontrollerer - **Hva:** Autonomt kostnadsovervåkningsverktøy med AI-anomali-deteksjon - **Pris:** $300–500/mnd per kunde (breakeven ved 1 kunde) -- **Salgskanal:** Chris selv via OPAX → HITL-møte → `terraform apply` +- **Salgskanal:** Chris selv → HITL-møte → `terraform apply` **Produkt #2: Threadstone** (Q3 2026) - Definisjon låses når Modul #1 har første kunde. @@ -431,43 +303,60 @@ Google/LinkedIn → vauco.no | ID | Problem | Løsning | Prioritet | |----|---------|---------|-----------| -| OQ-15 | BQ billing_export tabell | Venter på aktivering — sjekk neste sesjon | Medium | +| OQ-15 | BQ billing_export tabell | Venter på aktivering | Medium | | OQ-17 | `github-token` secret mangler | Opprett alias fra `github-pat` | Medium | | OQ-18 | VM alltid-på kostnad | Kjør `03-teardown.sh` hver kveld | Høy | -| OQ-20 | Nattlig GDrive backup feiler hver natt siden 2026-05-25 | Diagnostisere SA-key / folder-ID; fikses i K3 | Høy | -| OQ-21 | `app.threadstone.vauco.no` CNAME satt, men ingen `index.html` | Bygg som del av T2 eller fjern CNAME | Lav | -| OQ-22 | Claude Opus 4.6/4.7 mangler EU-kvote | Vent på Google Cloud-team; midlertidig på Gemini 2.5 Pro | Medium | -| OQ-23 | `vauco.no` viser "Under construction" (Proisp placeholder) | Erstattes av V1-fase | Høy | -| OQ-24 | Ingen SPF/DKIM/DMARC TXT-records på `vauco.no` | Sett opp som del av V1e — salgsmail havner ellers i spam | Høy | -| OQ-25 | Ingen `personvern.html` / `vilkar.html` på vauco.no | GDPR-krav før betalende kunder onboardes — del av V1 | Høy | -| OQ-26 | Ingen statuspage (`status.vauco.no`) | Etter første kunde — trust-signal | Lav | +| OQ-20 | Nattlig GDrive backup | Fikset K3 · 2026-06-09 ✅ | — | +| OQ-21 | `app.threadstone.vauco.no` CNAME uten side | Bygg T2 eller fjern CNAME | Lav | +| OQ-22 | Claude EU-kvote | Vent på Google Cloud-team | Medium | +| OQ-23 | vauco.no placeholder | LIVE 2026-06-05 ✅ | — | +| OQ-24 | Ingen SPF/DKIM/DMARC | V1e | Høy | +| OQ-25 | Ingen personvern/vilkår | LIVE 2026-06-05 ✅ | — | +| OQ-26 | Ingen statuspage | Etter første kunde | Lav | --- -## 12. OPAX — fremtidig visjon (parkert, prioriteres etter CG3 + Fase 8) +## 12. OPAX — fremtidig visjon -> Notert 2026-05-28. Ikke bygg dette nå — fokus er Fase 8 + CG3. +> Notert 2026-05-28, utvidet 2026-06-10. -OPAX (`opax.vauco.no`) blir Chris sin **mobile salgssentral** — en stille, tekstbasert assistent han kan snakke MED via AirPods mens han er i møte med en potensiell kunde. +### Operator Hub (OX1) — Chris sitt cockpit + +OPAX (`opax.vauco.no`) blir Chris sin **komplette arbeidsflate** — aldri trenger VM igjen for daglig drift. + +**Inneholder når ferdig:** +- Jason-chat (allerede der) +- Billing dashboard (allerede der) +- Cloud Build live-widget (spinner → ✅/❌ ved push) +- Embedded TUI/terminal (reaktiverer `vauco-gemini-tui-bridge`) +- Token Intelligence dashboard (CG4) **Flyt:** tale → transkribering → Jason analyserer → genererer kundemodul → Chris reviewer → magic-link til kundens mail. -**Prinsipper:** -- OPAX snakker aldri — kun tekst på skjerm -- Voice er kun inn (Web Speech API / Whisper) -- Silent assistant — stille, rask, mørk, monospace -- Provisjonering on-the-go +### Gemma-verdensbygging (ML-3b) — simultant spor -**Teknisk stack når det bygges:** Web Speech API → Whisper, Gemini 2.5 Pro (eller Claude når kvote kommer), magic link via SendGrid/Resend fra `vauco.no`, ny endepunkt `POST /opax/generate` i `main.py`. +**Prinsipp:** Gemma skal ikke være dum når den tar over. Kontekstpakken bygges nå, simultant med alt annet. -**Trigger for å starte:** CG3 live OG `static/` UI/UX-opprydding gjort. +``` +docs/gemma/world.md ← bygges løpende fra neste sesjon + ├── Hvem er Vauco AS og Chris + ├── Plattformhierarkiet (Vauco OS → OPAX → Moduler) + ├── Alle aktive domener og endepunkter + ├── Agent-identitet og HITL-grenser + ├── Alle sesjons-protokoller (komprimert) + ├── Teknisk stack og GCP-konfig + ├── Gjeldende ROADMAP-status + └── Tone og kommunikasjonsstil (norsk bokmål, direkte) +``` + +Når Gemma-VM starter → `world.md` lastes som system-prompt → Jason/Gemma forstår konteksten fra første token. --- -## 13. TUI-bridge — parkert +## 13. TUI-bridge — reaktiveres som OX1b -Lokal TUI-plan ble løst av OPAX + Cloud Shell + Gemini TUI. Koden ligger i arkiv (`vauco-gemini-tui-bridge`). Reaktiveres etter Fase 8 + første kunde hvis behovet melder seg igjen — flyttes da til `OSVauco/tui/`. +Lokal TUI-plan ble løst av OPAX + Cloud Shell + Gemini TUI. Koden ligger i arkiv (`vauco-gemini-tui-bridge`). Reaktiveres som **OX1b** — embedded terminal i operator hub — når OX1a (Cloud Build widget) er live. --- -*OSVauco | propane-will-491900-m5 | us-central1 | Autoritativ fra 2026-05-31* +*OSVauco | propane-will-491900-m5 | us-central1 | Autoritativ fra 2026-05-31 | Oppdatert 2026-06-10* diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index cb6742a..1419c94 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -22,65 +22,43 @@ ## NOW — Aktiv akkurat nå - [x] **K2 — AGENT_RULEBOOK retting** - - Region → `us-central1`, modell → `gemini-2.5-pro`, MCP_SERVICE → `osvauco-agent` - - Done når: AGENT_RULEBOOK matcher MASTERPLAN §6 og §9 -- [x] **F8 — End-to-end test via opax.vauco.no** - - Cloud Run `/health` ✅, IAP blokk ✅ - - browser-login → chat → svar ✅ - - HITL gate: `FASE8 APPROVED` ✅ +- [x] **F8 — End-to-end test via opax.vauco.no** ✅ - [x] **CG6 — Modulært drag+collapse dashboard + nye billing-endepunkter** · 2026-06-10 - - `/billing/anomalies` ✅ — live, henter ekte BigQuery-data - - `/billing/history` ✅ — daglig MTD-historikk for bar-chart - - `/billing/budget` GET+POST ✅ — localStorage frontend, in-memory backend - - Alle dashboard-moduler draggable + collapsible + layout persistert i localStorage - - Compute Engine SKU-duplikater fikset — grupperes nå per tjeneste - - TODO Fase-C: `/billing/budget` migreres til Firestore per bruker -- [x] **CG3e — Tokenmeter: token-logging til BigQuery** · 2026-06-10 - - `token_logger.py`: utvidet schema med `module_name`, `caller_type`, `session_id` - - `agent.py`: labeling `jason/light` | `jason/heavy`, `caller_type` propagert fra call-site - - BQ-tabell opprettes automatisk ved oppstart (`create_bq_table_if_not_exists()`) - - `/billing/tokens/summary` endepunkt finnes ✅ — vil nå få data - - Tokenkortet på dashbordet vil vise data ved neste agent-kall +- [x] **CG3e — Token-logging til BQ med full CG4-labeling** · 2026-06-10 --- -## NEXT — Neste opp (etter NOW) +## NEXT — Neste opp ### vauco.no salgsportal (V-spor) -> **ARKITEKTURVALG 2026-06-05:** vauco.no hostes på **GCP** (GCS static bucket + global HTTPS load balancer + Cloud CDN), IKKE GitHub Pages. Stack: bucket `vauco-site-public` → backend-bucket → url-map → managed SSL → global IP **34.13.124.217**. -- [x] **V1a** — Opprett `vauco-saas/vauco-site` (public repo) · 2026-06-05 -- [x] **V1b** — Bygg MVP: hero + modul-grid + om-oss + kontakt + personvern + vilkår · 2026-06-05 -- [x] **V1c** — DNS i Proisp: apex `vauco.no` + `www` A-record → 34.13.124.217 · 2026-06-05 -- [x] **V1d** — V1 LIVE på https://vauco.no (GCS+LB, SSL ACTIVE) · 2026-06-05 +- [x] **V1a–V1d** — vauco.no LIVE (GCS+LB, SSL ACTIVE) · 2026-06-05 - [ ] **V1e** — Sett opp SPF + DKIM + DMARC TXT-records på `vauco.no` -### CostGuard Strategi & Arkitektur - -- **Dobbelt formål:** Egenbruk (intern kostnadsovervåkning) + Salgsmodus (kundedemoer og pitch) -- **Modellstrategi:** `gemini-2.5-pro` for high-touch, Flash-modell (fremtidig) for bakgrunnsoppgaver -- **Hierarkisk koststruktur:** Kostnader grupperes per tjeneste (ikke flate SKU-labels) -- **Token-logging:** All AI-bruk logges til `llm_token_usage`-tabell med full labeling - -### CostGuard frontend wiring -- [x] **CG3a** — Bygg `static/costguard.html` -- [x] **CG3b** — Sett CNAME `costguard.oss.vauco.no` → Cloud Run -- [x] **CG3c** — Verifiser `/static/costguard.html` via Cloud Run -- [x] **CG3d** — Test OAuth-flow +### CostGuard frontend +- [x] **CG3a–CG3d** — costguard.html, CNAME, OAuth-flow ✅ - [ ] **OQ-21** — Bygg `app.threadstone.vauco.no` eller fjern CNAME -### CG4 — Token Intelligence (neste etter CG3e) +### CG4 — Token Intelligence -> Bygger på `llm_token_usage`-rådata fra CG3e. Formål: full synlighet på AI-kostnader per modul, -> prosjektestimering FØR oppgave startes, og korrekt prising av oppdrag til kunder. +> Bygger på `llm_token_usage`-rådata fra CG3e. Trigger: minst 50 loggede kall. | # | Oppgave | Formål | |---|---------|--------| -| CG4a | `/billing/tokens/by-module` endepunkt — aggreger token-bruk per `module_name` og `caller_type` | Vise hvilken komponent som spiser tokens | -| CG4b | Dashboard-utvidelse: tokenmodul viser breakdown per `jason/light`, `jason/heavy`, `costguard`, `billing_agent`, `cli/gemini-tui` | Visuell oversikt per kaller | -| CG4c | Prosjektestimator: historisk snitt-tokens per oppgavetype × kompleksitetsfaktor → estimert kostnad i USD før oppgave startes | Estimer hva et prosjekt koster FØR det bygges | -| CG4d | Kundeprisingskalkulator: basert på token-historikk per modul → autogenerer prisforslag per oppdrag (basis for CostGuard-faktura til kunder) | Korrekt prising av AI-arbeid | +| CG4a | `/billing/tokens/by-module` — aggreger per `module_name` + `caller_type` | Hvilken komponent spiser tokens | +| CG4b | Dashboard breakdown: `jason/light`, `jason/heavy`, `costguard`, `billing_agent`, `cli/gemini-tui` | Visuell oversikt | +| CG4c | Prosjektestimator: historisk snitt-tokens × kompleksitetsfaktor → USD-estimat FØR oppgave startes | Estimer kostnad før bygg | +| CG4d | Kundeprisingskalkulator: token-historikk → autogenerer prisforslag per oppdrag | Korrekt prising av AI-arbeid | -**Trigger for CG4:** CG3e live og produserer data (minst 50 loggede kall). +### OX1 — Operator Hub fullføring + +> Mål: `opax.vauco.no` blir Chris sitt komplette cockpit — aldri trenger VM igjen. + +| # | Oppgave | Formål | +|---|---------|--------| +| OX1a | Cloud Build live-widget i `opax.html` — spinner → ✅/❌ ved push til main | Se deploy-status live | +| OX1b | Embedded terminal / TUI-vindu i operator hub (reaktiver `vauco-gemini-tui-bridge` som iframe/xterm.js) | CLI-tilgang uten VM | +| OX1c | Jason-chat som primærgrensesnitt i opax.html (erstatter VM-tilkobling for daglig drift) | Full kontroll fra browser | +| OX1d | `/opax/build-status` endepunkt mot Cloud Build API | Backend for OX1a | --- @@ -92,6 +70,21 @@ - [ ] **DX5** — Dialogflow Messenger live på costguard-landingssiden - [ ] **ML-2** — Adaptiv intelligens (trigger: >500 telemetri-kall) +### ML-3 — Gemma-migrering (lokal modell) + +> **Strategi:** Kjør ut Vertex AI-kreditter fullt ut. Bygg Gemmas «verden» simultant. +> Når kreditter er brukt opp → Gemma tar over internt. Kunder fortsetter på Gemini via Vertex. +> **Trigger:** Vertex-kreditter < 20% ELLER første betalende kunde er onboardet. + +| # | Oppgave | Detaljer | +|---|---------|----------| +| ML-3a | Klargjør GCP GPU-VM: `g2-standard-4` Spot (1× L4, 24GB VRAM, ~$120–150/mnd) | Ollama + Gemma 4 12B int4 | +| ML-3b | **Simultant nå:** Bygg Gemma-kontekst-pakke — last inn MASTERPLAN, ROADMAP, HANDOFF, alle sesjonsprotokoller, AGENT_RULEBOOK som system-prompt/RAG for Gemma | Gemma er ikke dum når den starter — forstår Vauco fra dag 1 | +| ML-3c | Migrer `agent.py` til hybrid: Gemma internt (Jason/Chris-bruk), Gemini via Vertex for kunder | Tofase-arkitektur | +| ML-3d | Fine-tune Gemma 4 på Vauco-sesjonsdata (protokoller + MASTERPLAN + kundeinteraksjoner) | Jason blir virkelig autonom | + +> **ML-3b starter NESTE SESJON** — uavhengig av trigger. Kontekstpakken bygges parallelt med alt annet. + ### Modul #2 — Threadstone - [ ] **T1** — Konsolider `threadstone-instructions` → `OSVauco/docs/threadstone/` - [ ] **T2** — Bygg `app.threadstone.vauco.no` — migrer fra GitHub Pages til GCP @@ -103,8 +96,7 @@ - [ ] **C2** — Multi-tenant stamp-out (`scripts/onboard-client.sh`) - [ ] **C3** — BQ-2 / Looker Studio kobling - [ ] **CG6-Fase-C** — Migrer `/billing/budget` fra in-memory til Firestore per bruker -- [ ] Full boot cycle acceptance test (automatisert) -- [ ] **CI1** — MCP-native CI/CD: GCP Cloud Build/Deploy, fjern GitHub-avhengighet for deploy +- [ ] **CI1** — MCP-native CI/CD: GCP Cloud Build/Deploy ### OPAX-evolusjon - [ ] Voice-input på `opax.vauco.no` (Web Speech API → Whisper) @@ -125,7 +117,7 @@ ## KJENTE HULL -- [x] **OQ-23** — `vauco.no` LIVE (GCS+LB) · 2026-06-05 +- [x] **OQ-23** — `vauco.no` LIVE · 2026-06-05 - [ ] **OQ-24** — SPF/DKIM/DMARC mangler på `vauco.no` → V1e - [x] **OQ-25** — Personvern + vilkår publisert · 2026-06-05 - [ ] **OQ-26** — Ingen statuspage → etter første kunde @@ -134,23 +126,16 @@ ## ✅ Fullførte faser -- [x] **Phase 0** — Baseline: repo, `.gemini/`-struktur, boot-script, sesjonslogg -- [x] **Phase 1** — Domain/protocol locking, `ARCHITECTURE.md` -- [x] **Phase 2** — `opax.vauco.no` LIVE: Cloud Run, CNAME, SSL · 2026-05-21 -- [x] **Phase 3** — Nemotron session loop, `docs/TODO.md`, Phase 1+2 rapport · 2026-05-21 -- [x] **Phase 4** — Docs hardening · 2026-05-25 -- [x] **Phase 5** — Cloud Run IAM-autentisering · 2026-05-25 -- [x] **Phase 5 IAP** — IAP migrering til GCP Load Balancer (IP 34.98.77.173) · 2026-05-30 -- [x] **Phase 6** — CI/CD: auto-deploy på push til main · 2026-05-30 -- [x] **Phase 7** — RAG corpus `osvauco-corpus` populert i `europe-west4` · 2026-05-30 -- [x] **GDrive/GitHub paritet** — mirror-script, PS1 prompt, IAM/Secrets · 2026-05-25 -- [x] **Repo-konsolidering trinn 1** — arkivert 3 repos · 2026-05-27 +- [x] **Phase 0–7** — Baseline, domener, Cloud Run, IAP, CI/CD, RAG · 2026-05-21–30 +- [x] **GDrive/GitHub paritet** · 2026-05-25 +- [x] **Repo-konsolidering trinn 1** · 2026-05-27 - [x] **Terraform bootstrap-modul** · 2026-05-26 -- [x] **OPAX operator hub** — `static/opax.html` deployet · 2026-05-31 +- [x] **OPAX operator hub** · 2026-05-31 - [x] **K1 — Repo-konsolidering** · 2026-06-09 - [x] **K3 — Fiks nattlig GDrive backup** · 2026-06-09 - [x] **CG6 — Modulært dashboard, anomalier, historikk, budsjett** · 2026-06-10 - [x] **CG3e — Token-logging til BQ med full CG4-labeling** · 2026-06-10 +- [x] **ML-3 plan — Gemma-migrering dokumentert, kontekstbygging planlagt** · 2026-06-10 ---