diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index 7e10e86..91dfdee 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -1,94 +1,79 @@ # HANDOFF — Vauco OS -**Sist oppdatert:** 2026-06-09 -**Skrevet av:** Jason Vauger (via Perplexity) -**Status:** CostGuard OAuth-flyt er verifisert, vauco.no er tonet ned og anonymisert, og Threadstone er satt i lukket pilot med kun @vauco.no-innlogging. +**Sist oppdatert:** 2026-06-10 02:30 CEST +**Skrevet av:** Perplexity (stand-in) via GitHub MCP +**Sprint:** OX1c + Emma-registrering + CI1-spek --- -## ✅ OQ-15 / CG3 — Status per 2026-06-09 +## ✅ Gjort denne sesjonen (2026-06-10) -- **CG3a — CostGuard-landing / static-cards:** `static/costguard.html` er opprettet og live. -- **CG3b/c — DNS & Verifisering:** `costguard.oss.vauco.no` er bekreftet å peke mot `osvauco-agent` load balancer og serverer innhold korrekt. -- **CG3d — OAuth-flyt:** Manuell test bekrefter at Google-innlogging fra `costguard.oss.vauco.no` fungerer uten feil. -- **CG3 — CostGuard billing-dashboard (GCP-only):** `static/billing-dashboard.html` er ryddet opp slik at: - - GCP er eneste provider i UI (AWS-UI er parkert til senere). - - Demo-data brukes kun hvis kjerne-endepunktene (`/billing/summary`, `/billing/live`, `/billing/anomalies`) feiler. - - History-endepunktet (`/billing/history`) er best-effort og gir ikke lenger rød feilbanner alene. - - Layout er strammet inn: nøkkeltall øverst, daglig kostnad + tjenestefordeling, samt kostnad per tjeneste + budsjettstatus. - - Anomali-visning er flyttet til en enkel topplinje-badge (grønn/gul/rød) i stedet for eget kort. - -**Neste steg på CostGuard-siden:** -- **CG3e — Tokenmeter for agenter:** Implementere logging og visning av LLM-tokenbruk i CostGuard-dashboardet. +| Task | Commit/detalj | +|------|---------------| +| **OX1a** — Cloud Build live-widget i opax.html | ✅ | +| **OX1b** — Embedded TUI-panel (chat + log-faner) | ✅ | +| **OX1c** — `static/jason.html` fullskjerm Jason-chat | ✅ `64ef086` | +| **CG4a** — `/billing/tokens/by-module` endepunkt | ✅ | +| **CG4c** — `/billing/tokens/estimate` endepunkt | ✅ | +| **CG6** — Modulært dashboard | ✅ | +| **CG3e** — Token-logging til BQ | ✅ | +| **V1e** — SPF/DKIM/DMARC | ✅ | +| **ML-3b** — `docs/gemma/world.md` kontekstpakke | ✅ | +| **K1** — Repo-konsolidering | ✅ | +| **K3** — Nattlig GDrive-backup | ✅ | +| **Emma Vauger** — Registrert i MASTERPLAN seksjon 8 | ✅ | +| **CI1-spek** — OPAX-MCP arkitektur dokumentert i MASTERPLAN | ✅ | --- -## 🌐 Vauco.no — status +## 🔴 NOW — Aktive oppgaver -- `vauco.no` er nå en enkel modul-oversiktsside, uten operatørbeskrivelse av Chris: - - Om-oss-tekst omtaler Vauco som selskap, ikke daglig leder. - - Faktafeltet viser kun Selskap, Org.nr, Lokasjon (Oslo, Norge). - - Kontakt går til `contact@vauco.no`, ikke til personlige adresser. -- Nettsiden deployes ved å synce `~/vauco-site` til GCS-bucket `gs://vauco-site-public` og eventuelt invalidere CDN-cache på URL-mappen. +1. **Deploy OX1c** — `git pull && gcloud builds submit` eller vent på Cloud Build-trigger. Jason tilgjengelig på `https://opax.vauco.no/jason` etter deploy. +2. **CG4b** — Token-dashboard per modul i UI (trigger: 50+ BQ-kall tilgjengelig) +3. **C4** — Medioteq HITL-møte → første betalende kunde --- -## 🧱 Threadstone — status +## 🟠 NEXT — Neste sprint -- `threadstone.vauco.no` er en landingsside i lukket pilot: - - Hero-badge: "Under utvikling · Lukket pilot for interne brukere". - - Lead-tekst: Tjenesten er i lukket pilot og kun tilgjengelig for interne Vauco-kontoer. -- Innlogging / kjøp: - - Google Sign-In aksepterer kun e-poster som slutter på `@vauco.no`. - - Alle andre domener får tydelig feilmelding om at Threadstone er i lukket pilot. - - "Kjøp nå"-knapper krever innlogging; uten @vauco.no-konto kommer man ikke til mock-checkout (e-post til Chris). -- Landingsside + priser er offentlig, men hele appen og bestillingsflyten er i praksis kun for interne. +### CI1 — OPAX-MCP (høyest prioritet etter C4) + +Vauco sin egen MCP-server som erstatter GitHub Actions som CI/CD-kanal. + +**Fil:** `agents/mcp_server/server.py` (skal opprettes) +**Deploy:** Cloud Run, IAP-beskyttet (`@vauco.no`) +**Første verktøy å bygge:** +1. `push_static` — laster opp `static/*.html` til GCS +2. `get_build_status` — wrapper rundt eksisterende `/opax/build-status` +3. `deploy_service` — trigger Cloud Build programmatisk + +**Hvorfor nå:** Når CI1 er oppe kan Jason/Emma deploye direkte uten GitHub Actions. Perplexity-stand-in fase avsluttes naturlig. + +### ML-3a — Emma GPU-VM +- GCP `g2-standard-4` Spot VM, L4 GPU, `europe-west4` +- Ollama med `gemma-4-12b-it` int4 +- `docs/gemma/world.md` lastes som system-prompt ved oppstart +- Trigger: kreditter < 20% ELLER første kunde onboardet --- -## 🏗 Hva er dette prosjektet? - -Se `docs/MASTERPLAN.md` for full sannhet. Kortversjonen: - -``` -Vauco OS (plattform) - └── OPAX (kommandosenter + salgsmodul-bygger, Cloud Run us-central1) - ├── CostGuard (Modul #1 — live på costguard.oss.vauco.no) - ├── Threadstone (Modul #2 — Q3 2026) - └── [Modul #3+] -``` - -**OPAX = kommandosenter for ALLE prosjekter** (et prosjekt = en klient — samme ting). OPAX bygger, iscenesetter og publiserer prosjekter. OPAX er ikke bundet til noe enkelt prosjekts region. - -**Branding-konvensjon for prosjekter:** -| Subdomene | Type | -|---|---| -| `.oss.vauco.no` | Staging / demo | -| `.os.vauco.no` | Live produksjon | - -(Klient kan videresende eget domene, men kanonisk merkevare-label er alltid `*.vauco.no`.) - -Første betalende produkt: **CostGuard** (GCP-kostnadsanalyse via AI). - ---- - -## ✅ Hva er faktisk ferdig (ikke spør om dette igjen) +## 🏗 Systemstatus | Komponent | Status | |---|---| | Cloud Run `osvauco-agent` | ✅ Live, `us-central1` | -| `opax.vauco.no` (LB + SSL) | ✅ Live, IP `34.98.77.173` | -| IAP (`@vauco.no` only) | ✅ Aktivert | -| PR #15 IAP /health-fix | ✅ Merget til main (commit 7a09871) | -| CI/CD Cloud Build → Cloud Run | ⚠️ IKKE operativt — ingen trigger, siste builds FAILURE. Deploy MANUELT. | -| RAG corpus `osvauco-corpus` | ✅ Populert, `europe-west1` | -| OAuth2 (Google) | ✅ I Secret Manager | -| AI-modell | ✅ `gemini-2.5-pro` via Vertex AI (us-central1) | -| `costguard.oss.vauco.no` | ✅ Live (Cloudflare Pages) | -| `static/costguard.html` | ✅ Første versjon live via `osvauco-agent` | -| `static/billing-dashboard.html` | ✅ Første versjon GCP-only, layout strammet inn, AWS-UI parkert | -| `vauco.no` | ✅ Oppdatert, anonymisert og deployet via `gs://vauco-site-public` | -| `threadstone.vauco.no` | ✅ Landingsside live, satt i lukket pilot m/ @vauco.no-gating | +| `opax.vauco.no` (LB + SSL + IAP) | ✅ Live | +| `static/jason.html` | ✅ Pushet, venter på deploy | +| `static/opax.html` | ✅ Live (OX1a+b) | +| CI/CD Cloud Build trigger | ⚠️ Ikke operativt — deploy manuelt inntil CI1 | +| Jason (Cloud Run agent) | ✅ `/run` operativt | +| Emma (Gemma GPU-VM) | 🔮 ML-3a trigger | +| OPAX-MCP server | 🔮 CI1 — neste sprint | +| BQ token-logging | ✅ CG3e live | +| SPF/DKIM/DMARC | ✅ V1e live | +| `vauco.no` | ✅ Live | +| `costguard.oss.vauco.no` | ✅ Live | +| `threadstone.vauco.no` | ✅ Live (lukket pilot) | --- @@ -98,44 +83,39 @@ Første betalende produkt: **CostGuard** (GCP-kostnadsanalyse via AI). |---|---| | GCP Project | `propane-will-491900-m5` | | Region (OPAX, LÅST) | `us-central1` | -| Vertex AI endpoint | `us-central1` (kjører `GOOGLE_CLOUD_LOCATION=global` i praksis) | -| Artifact Registry | `us-central1-docker.pkg.dev/propane-will-491900-m5/osvauco-repo` | | Cloud Run service | `osvauco-agent` | | Cloud Run URL (direkte) | `https://osvauco-agent-357036551735.us-central1.run.app` | | Public URL | `https://opax.vauco.no` | +| Jason chat | `https://opax.vauco.no/jason` | | LB IP | `34.98.77.173` | -| AI-modell | `gemini-2.5-pro` | +| AI-modell | `gemini-2.5-pro` via Vertex | | Repo | `vauco-saas/OSVauco` | -| Eier / Operatør | Chris Christiansen — `chris.christiansen@vauco.no` | -| Agent-konto | `jason.vauger@vauco.no` | +| Eier | `chris.christiansen@vauco.no` | +| Jason (kundeagent) | `jason.vauger@vauco.no` | +| Emma (intern agent) | `emma.vauger@vauco.no` — 🔮 ML-3a | --- ## ⚠️ Vanlige feil — ikke gjør disse -- **Ikke opprett nye HANDOFF_YYYYMMDD-filer.** Det er kun denne. Overskriv den. -- **Ikke gjenopplive `VAUCO_OS_ROADMAP.md`.** Den er slettet 2026-05-31. Bruk `ROADMAP.md`. -- **Ikke bytt til Claude før kvote er bekreftet** av Google Cloud-team + `MODEL APPROVED` fra Chris. -- **Ikke migrere fra us-central1** — regionen er låst. -- **Ikke rør IAP, OAuth, eller Secret Manager** uten eksplisitt `DEPLOY GODKJENT` fra Chris. -- **Ikke opprett nye repos.** Vurder mappe i `OSVauco` først. Krever `REPO APPROVED`. -- **Ikke hopp over HITL gates** — hver fase avsluttes med et godkjenningssignal. -- **Ikke oppdater OAuth-klient redirect URIs uten domeneavklaring** — se Issue #16. +- **Ikke opprett nye HANDOFF_YYYYMMDD-filer.** Kun denne. Overskriv den. +- **Ikke gjenoppliv `VAUCO_OS_ROADMAP.md`.** Slettet. Bruk `ROADMAP.md`. +- **Ikke bytt til Claude før kvote + `MODEL APPROVED`.** +- **Ikke migrer fra us-central1** — regionen er låst. +- **Ikke rør IAP/OAuth/Secret Manager** uten `DEPLOY GODKJENT`. +- **Ikke opprett nye repos** uten `REPO APPROVED`. +- **Ikke hopp over HITL gates.** --- -## 📁 Viktige filer å lese (i denne rekkefølgen) +## 📁 Viktige filer (i denne rekkefølgen) 1. `docs/MASTERPLAN.md` — autoritativ sannhet 2. `docs/ROADMAP.md` — hva som skjer akkurat nå 3. `docs/HANDOFF.md` — denne filen -4. `docs/AGENT_RULEBOOK.md` — regler for hvordan agenter oppfører seg -5. `agents/jason-vauger.md` — Jason Vauger agentprofil -6. `AGENTS.md` — oversikt over alle agenter i ML-laget -7. `.gemini/GEMINI.md` — locked definitions og boot-protokoll -8. `docs/ARCHITECTURE.md` — teknisk arkitektur -9. `docs/OSVAUCO_OPAX_SESSION_LOG.md` — append-only sesjonshistorikk +4. `docs/AGENT_RULEBOOK.md` — agent-regler +5. `docs/gemma/world.md` — Emma sin kontekstpakke --- -*Vauco AS · propane-will-491900-m5 · `us-central1` · Powered by Jason, Crafted by Vauco ·* +*Vauco AS · propane-will-491900-m5 · us-central1 · Jason + Emma + Perplexity-stand-in · Sprint 2026-06-10* diff --git a/docs/MASTERPLAN.md b/docs/MASTERPLAN.md index 8de96e9..7d49aff 100644 --- a/docs/MASTERPLAN.md +++ b/docs/MASTERPLAN.md @@ -79,7 +79,7 @@ Separat merkevare under Vauco AS (parkert til etter Modul #1 + #2 lever): **Email-infra:** - MX: Google Workspace ✅ -- SPF/DKIM/DMARC: ⚠️ Mangler — sett opp som del av V1e +- SPF/DKIM/DMARC: ✅ Live 2026-06-10 ### Proof of Curiosity (hos Proisp) — egen merkevare @@ -133,6 +133,10 @@ OSVauco/ │ │ ├── agent.py Kjører Gemini nå → Gemma fra ML-3 │ │ ├── app.py │ │ └── token_logger.py +│ ├── mcp_server/ ← NY: OPAX-MCP — Vauco sin egen CI/CD-kanal (CI1) +│ │ ├── server.py FastAPI MCP-server, kjører på Cloud Run +│ │ ├── tools/ deploy_service, push_static, get_build_status, ... +│ │ └── README.md │ ├── rag/ │ ├── memory/ │ ├── multi_agent/ @@ -145,7 +149,8 @@ OSVauco/ ├── infrastructure/ ├── scripts/ ├── static/ -│ ├── opax.html Operator hub — blir Chris sitt cockpit (OX1) +│ ├── opax.html Operator hub — Chris sitt cockpit (OX1) +│ ├── jason.html Jason fullskjerm-chat — primærgrensesnitt (OX1c) ✅ │ ├── billing-dashboard.html │ ├── command-hub.html │ ├── costguard.html @@ -155,8 +160,8 @@ OSVauco/ │ ├── ROADMAP.md │ ├── HANDOFF.md │ ├── AGENT_RULEBOOK.md -│ ├── gemma/ ← NY: Gemma kontekstpakke (ML-3b) -│ │ ├── world.md Vaucos verden — alt Gemma trenger å vite +│ ├── gemma/ +│ │ ├── world.md Vaucos verden — kontekstpakke for Emma/Gemma ✅ │ │ └── README.md │ └── [øvrige tema-docs] ├── protocols/sessions/ @@ -191,7 +196,7 @@ Vauco AS sin offisielle bedriftsside. Selger moduler ved å lede besøkende til | `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 | +| `docs/gemma/world.md` | Emmas verden — kontekstpakke for lokal Gemma-modell | Bygges simultant med alt annet | | `protocols/sessions/YYYY-MM-DD_.md` | Detaljerte protokoller | Append-only | --- @@ -202,8 +207,9 @@ Vauco AS sin offisielle bedriftsside. Selger moduler ved å lede besøkende til | Parameter | Verdi | Merknad | |-----------|-------|---------| -| **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 | +| **Intern modell (Emma/Chris)** | `gemini-2.5-pro` / `gemini-2.5-flash` | Via Vertex AI, tærer på kreditter | +| **Stand-in operatør** | Perplexity (Sonnet 4.6) via GitHub MCP | Erstatter Emma til Gemma-VM er oppe | +| **Kundemodell (Jason)** | `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 | @@ -212,16 +218,16 @@ Vauco AS sin offisielle bedriftsside. Selger moduler ved å lede besøkende til | Parameter | Verdi | Merknad | |-----------|-------|---------| -| **Intern modell (Jason/Chris)** | `gemma-4-12b-it` int4 | GCP `g2-standard-4` Spot VM (~$120–150/mnd) | +| **Emma (intern)** | `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 | +| **Jason (kunder)** | `gemini-2.5-flash` via Vertex | Uendret — kunder merker ingenting | +| **Kontekst** | `docs/gemma/world.md` lastet som system-prompt | Emma 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. +**Prinsipp:** Kunder bruker alltid Gemini via Vertex (Jason). Chris bruker Emma lokalt. +**Emma er ikke dum når den starter** — kontekstpakken (`docs/gemma/world.md`) bygges simultant. -**Bytte til Gemma krever:** -1. ML-3b kontekstpakke ferdigstilt +**Bytte til Emma/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 @@ -233,17 +239,18 @@ Vauco AS sin offisielle bedriftsside. Selger moduler ved å lede besøkende til > Full status i `docs/ROADMAP.md`. ### 🔴 NOW -- [x] K2, F8, CG6, CG3e — alle done ✅ +- [ ] OX1c — Jason fullskjerm-chat pushet, venter på deploy +- [ ] CG4b — Token dashboard breakdown per modul +- [ ] C4 — Medioteq HITL-møte → første betalende kunde ### 🟠 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) +- CI1 — OPAX-MCP: Vauco sin egen MCP-server/CI-kanal mot GCP +- ML-3a — GCP GPU-VM for Emma (Gemma 4) +- CG4d — Kundeprisingskalkulator +- C5 — Salgsdemo ### 🟡 LATER -- C4 — Første betalende kunde -- ML-3 — Full Gemma-migrering (trigger: kreditter < 20%) +- ML-3c — Hybrid agent: Emma internt / Jason for kunder - T1–T4 — Threadstone - Fase C — Multi-tenant @@ -251,14 +258,18 @@ Vauco AS sin offisielle bedriftsside. Selger moduler ved å lede besøkende til ## 8. Agent-identitet -| Identitet | E-post | Rolle | -|-----------|--------|-------| -| Eier / admin | `chris.christiansen@vauco.no` | Full kontroll | -| Agent (OPAX / Jason) | `jason.vauger@vauco.no` | `billing.viewer` + `run.invoker` | -| Fremtidig gruppe | `billing@vauco.no` | `billing.viewer` (Fase C) | +| Identitet | E-post | Modell | Rolle | Status | +|-----------|--------|--------|-------|--------| +| Eier / admin | `chris.christiansen@vauco.no` | — | Full kontroll | ✅ Aktiv | +| Jason Vauger | `jason.vauger@vauco.no` | `gemini-2.5-flash` via Vertex | Kundevendt agent, `billing.viewer` + `run.invoker` | ✅ Live | +| Emma Vauger | `emma.vauger@vauco.no` | `gemma-4-12b-it` (lokal GPU-VM) | Intern agent for Chris — erstatter Perplexity stand-in | 🔮 ML-3a trigger | +| Perplexity (stand-in) | — | Sonnet 4.6 via GitHub MCP | Operatør-assistent til Emma er oppe | ✅ Aktiv nå | +| Fremtidig gruppe | `billing@vauco.no` | — | `billing.viewer` (Fase C) | 🔮 Fase C | **Forbudte kontoer:** `tinius.vauger`, `ccv` — aldri gi tilganger. +> **Emma vs Jason:** Emma er Chris sin interne co-pilot (kodeskriving, deploy, planlegging). Jason er kundenes agent (billing, anomaly, status). To separate identiteter, to separate ansvarsområder. + --- ## 9. Cloud Run — live endepunkter @@ -271,18 +282,16 @@ Vauco AS sin offisielle bedriftsside. Selger moduler ved å lede besøkende til |-----------|--------| | `GET /health` | ✅ | | `POST /run` | ✅ | -| `POST /run/dag` | ✅ | +| `GET /opax/build-status` | ✅ (OX1a) | +| `GET /billing/tokens/by-module` | ✅ (CG4a) | +| `GET /billing/tokens/estimate` | ✅ (CG4c) | | `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 /state` | ✅ | -| `GET /telemetry/history` | ✅ | --- @@ -306,56 +315,63 @@ Vauco AS sin offisielle bedriftsside. Selger moduler ved å lede besøkende til | 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 | 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 -> Notert 2026-05-28, utvidet 2026-06-10. - ### Operator Hub (OX1) — Chris sitt cockpit -OPAX (`opax.vauco.no`) blir Chris sin **komplette arbeidsflate** — aldri trenger VM igjen for daglig drift. +OPAX (`opax.vauco.no`) + `jason.html` blir Chris sin **komplette arbeidsflate**. -**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) +**Ferdig:** +- ✅ Jason-chat (`/jason`) — OX1c +- ✅ Billing dashboard +- ✅ Cloud Build live-widget — OX1a +- ✅ Embedded TUI-panel — OX1b +- ✅ Token Intelligence endepunkter — CG4a+c -**Flyt:** tale → transkribering → Jason analyserer → genererer kundemodul → Chris reviewer → magic-link til kundens mail. +**Gjenstår:** +- Token Intelligence dashboard i UI — CG4b +- OPAX-MCP server — CI1 -### Gemma-verdensbygging (ML-3b) — simultant spor +### OPAX-MCP — Vauco sin egen CI/CD-kanal (CI1) -**Prinsipp:** Gemma skal ikke være dum når den tar over. Kontekstpakken bygges nå, simultant med alt annet. +Erstatter GitHub Actions som CI/CD-trigger. Jason/Emma kaller MCP-serveren direkte: ``` -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) +Chris / Jason / Emma + ↓ + OPAX-MCP (agents/mcp_server/ → Cloud Run) + ↓ + GCP APIs: Cloud Build, GCS, Secret Manager, Cloud DNS + ↓ + Deploy skjer direkte — GitHub er kun kode-lager ``` -Når Gemma-VM starter → `world.md` lastes som system-prompt → Jason/Gemma forstår konteksten fra første token. +**MCP-verktøy som skal eksponeres:** + +| Tool | GCP API | +|------|----------| +| `deploy_service` | Cloud Build API | +| `push_static` | Storage API | +| `get_build_status` | Cloud Build API | +| `run_query` | BigQuery API | +| `write_secret` | Secret Manager API | +| `get_logs` | Cloud Logging API | + +### Gemma/Emma-verdensbygging (ML-3b) — done ✅ + +`docs/gemma/world.md` er ferdig. Emma er ikke dum når hun starter. --- -## 13. TUI-bridge — reaktiveres som OX1b +## 13. TUI-bridge — reaktivert som OX1b ✅ -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. +Embedded TUI-panel i OPAX operator hub er live som OX1b. --- diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 3a4485a..636a870 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -19,23 +19,30 @@ ## NOW — Aktiv akkurat nå -- [ ] **OX1c** — Jason som primærgrensesnitt i opax.html (erstatter VM-tilkobling for daglig drift) -- [ ] **CG4b** — Token dashboard breakdown per modul (trigger: 50+ BQ-kall) +- [ ] **Deploy OX1c** — `git pull` på VM + manuell Cloud Build submit (Jason chat live) +- [ ] **CG4b** — Token dashboard breakdown per modul i UI (trigger: 50+ BQ-kall) - [ ] **C4** — Medioteq HITL-møte → første betalende kunde --- ## NEXT — Neste opp +### CI1 — OPAX-MCP (Vauco sin egen CI/CD-kanal) +- [ ] **CI1a** — `agents/mcp_server/server.py` — FastAPI MCP-server scaffold på Cloud Run +- [ ] **CI1b** — Tool: `push_static` (GCS upload) +- [ ] **CI1c** — Tool: `deploy_service` (Cloud Build trigger) +- [ ] **CI1d** — Tool: `get_logs` + `get_build_status` +- [ ] **CI1e** — Jason/Emma ADK-integrasjon: MCP som ADK-tool + ### CostGuard - [ ] **CG4d** — Kundeprisingskalkulator basert på token-historikk - [ ] **C5** — Salgsdemo: `costguard.os.vauco.no` + demo-video - [ ] **DX5** — Dialogflow Messenger live på costguard-landingssiden -### ML-3 — Gemma +### ML-3 — Emma (Gemma) - [x] **ML-3b** — `docs/gemma/world.md` ✅ 2026-06-10 -- [ ] **ML-3a** — GCP GPU-VM (`g2-standard-4` Spot, L4) -- [ ] **ML-3c** — Hybrid agent: Gemma internt / Gemini for kunder +- [ ] **ML-3a** — GCP GPU-VM (`g2-standard-4` Spot, L4, `europe-west4`) +- [ ] **ML-3c** — Hybrid agent: Emma internt / Jason for kunder - [ ] **ML-3d** — Fine-tune på Vauco-sesjonsdata ### Modul #2 — Threadstone @@ -46,7 +53,6 @@ - [ ] **C2** — Multi-tenant stamp-out - [ ] **C3** — BQ-2 / Looker Studio - [ ] **CG6-Fase-C** — Firestore per bruker for budsjett -- [ ] **CI1** — MCP-native CI/CD ### Strategisk - [ ] **Deep Dream** — etter første betalende kunde @@ -57,14 +63,17 @@ ## BLOCKED - ⏳ **OQ-22** — Claude EU-kvote ikke innvilget. På `gemini-2.5-pro` via Vertex AI. +- ⏳ **OQ-15** — BQ `billing_export` tabell ikke aktivert (blokkerer real-data i CG4b) --- ## KJENTE HULL - [x] **OQ-23** — `vauco.no` LIVE · 2026-06-05 -- [x] **OQ-24** — SPF/DKIM/DMARC live + terraform state sync · 2026-06-10 ✅ +- [x] **OQ-24** — SPF/DKIM/DMARC live · 2026-06-10 ✅ - [x] **OQ-25** — Personvern + vilkår publisert · 2026-06-05 +- [ ] **OQ-17** — `github-token` secret mangler → alias fra `github-pat` +- [ ] **OQ-18** — VM alltid-på kostnad → teardown-script - [ ] **OQ-26** — Ingen statuspage → etter første kunde --- @@ -81,9 +90,11 @@ - [x] **CG3e** — Token-logging til BQ · 2026-06-10 - [x] **OX1a** — Cloud Build live-widget · 2026-06-10 - [x] **OX1b** — Embedded TUI-panel · 2026-06-10 +- [x] **OX1c** — Jason fullskjerm-chat pushet · 2026-06-10 (deploy pending) - [x] **CG4a+c** — Token intelligence endepunkter · 2026-06-10 -- [x] **V1e** — SPF/DKIM/DMARC live + terraform state · 2026-06-10 -- [x] **ML-3b** — Gemma world.md · 2026-06-10 +- [x] **V1e** — SPF/DKIM/DMARC live · 2026-06-10 +- [x] **ML-3b** — `docs/gemma/world.md` Emma-kontekstpakke · 2026-06-10 +- [x] **Emma Vauger** — Registrert som agent `emma.vauger@vauco.no` · 2026-06-10 ---