diff --git a/AGENTS.md b/AGENTS.md index 067f1f0..d37b411 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,7 +1,15 @@ # AGENTS.md — ML-roller i Vauco OS -**Sist oppdatert:** 2026-06-01 -**Formål:** Definerer hver agents rolle i ML-laget (Parameter Server-mønster + Dask DAG). +**Sist oppdatert:** 2026-06-01 +**Oppdatert med disclaimer:** 2026-06-10 + +> ⚠️ **FREMTIDSVISJON — IKKE OPERATIV** +> Denne filen beskriver ML-2/ML-3-arkitekturen (Parameter Server + Dask DAG) som er planlagt men ikke bygget. +> **Faktisk live agentstruktur per 2026-06-10:** +> - **Jason Vauger** — kundevendt agent, live på Cloud Run (`gemini-2.5-flash`) +> - **Perplexity stand-in** — intern co-pilot (erstatter Emma til ML-3a er ferdig) +> - **Emma Vauger** — 🔮 ikke live, venter på ML-3a (GPU-VM, Gemma 4 12B int4) +> Se `docs/MASTERPLAN.md` seksjon 8 og `docs/AGENT_RULEBOOK.md` for operativ state. --- @@ -12,12 +20,12 @@ │ JASON VAUGER │ │ (Personlig assistent / │ │ persona-lag) │ - └──────────┬──────────────────┘ + └──────────┼──────────────────┘ │ delegerer til ┌──────────▼──────────────────┐ │ OPAX Orchestrator │ │ (PS Server-node / DAG hub) │ - └──────────┬──────────────────┘ + └──────────┼──────────────────┘ │ ┌──────────┬──────────┼──────────┬──────────┐ ▼ ▼ ▼ ▼ ▼ @@ -95,5 +103,5 @@ Alle agenter logger via `ml.telemetry.log_agent_call()`. Feltene er: } ``` -Filer lagres i: `$TELEMETRY_DIR/YYYY-MM-DD.jsonl` (default: `/tmp/vauco_telemetry/`) +Filer lagres i: `$TELEMETRY_DIR/YYYY-MM-DD.jsonl` (default: `/tmp/vauco_telemetry/`) For GCS-arkivering: sett `TELEMETRY_DIR=gs://...` eller bruk `10-cost-guard.sh`-cron. diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index 91dfdee..194fc62 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -1,58 +1,47 @@ # HANDOFF — Vauco OS -**Sist oppdatert:** 2026-06-10 02:30 CEST +**Sist oppdatert:** 2026-06-10 22:30 CEST **Skrevet av:** Perplexity (stand-in) via GitHub MCP -**Sprint:** OX1c + Emma-registrering + CI1-spek +**Sprint:** OX1c ferdig · OPAX Hub v1 live · Boot prompt v1.4 · Cron + webhook --- -## ✅ Gjort denne sesjonen (2026-06-10) +## ✅ Gjort denne sesjonen (2026-06-10 kveld) -| 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 | ✅ | +| Task | Detalj | +|------|--------| +| **OX1-fix** | opax.vauco.no live via `GET /` — absolutt sti + Dockerfile static copy | +| **R-05/R-06/R-07** | Låste regler i AGENT_RULEBOOK — absolutte stier, Dockerfile COPY, FastAPI rot-rute | +| **boot.sh fix** | Region rettet: `europe-west1` → `us-central1`, DIRECT_URL oppdatert til `zjbqp3prqq` | +| **UNIVERSAL_BOOT_PROMPT v1.4** | Opprettet `docs/UNIVERSAL_BOOT_PROMPT.md` — korrekte filer, identitet, HITL-gates | +| **cloudbuild.yaml fix** | Notify-steg linjeskift-feil rettet, smoke-test URL oppdatert | +| **vm-teardown.sh** | Opprettet — cron `0 1 * * *` (03:00 CEST) aktiv på VM | +| **vm-startup.sh** | Opprettet — brukes fra Cloud Shell/lokal for å starte VM | +| **Cron-varsler** | Google Chat-varsler kl 22–02:45 CEST via `webhook-url` i Secret Manager | +| **AGENTS.md** | Disclaimer lagt til — ML-visjon, ikke operativ | +| **ROADMAP** | OX2 satt til `🟠` — v1 live, funksjoner under bygg | +| **Konfliktsjekk** | Boot prompt, HANDOFF, AGENTS.md, boot.sh, cloudbuild.yaml — alle ryddet | --- ## 🔴 NOW — Aktive oppgaver -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 +1. **CG4b** — Token-dashboard per modul i UI +2. **C4** — Medioteq HITL-møte → første betalende kunde +3. **CI1** — OPAX-MCP: full CI/CD-kanal (CI1a–e) +4. **OX2** — Command Hub: koble funksjoner til OPAX Hub v1 (terminal, billing, moduler) --- ## 🟠 NEXT — Neste sprint -### 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. +### CI1 — OPAX-MCP +- `agents/mcp_server/server.py` (skal opprettes) +- Første verktøy: `push_static`, `get_build_status`, `deploy_service` +- Deploy: Cloud Run, IAP-beskyttet ### 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 --- @@ -63,17 +52,16 @@ Vauco sin egen MCP-server som erstatter GitHub Actions som CI/CD-kanal. |---|---| | Cloud Run `osvauco-agent` | ✅ Live, `us-central1` | | `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 | +| `static/opax.html` | ✅ Live — OPAX Hub v1 | +| `static/jason.html` | ✅ Live — Jason fullskjerm | +| Cloud Build trigger | ✅ Operativt — notify-fix deployet | +| Google Chat webhook | ✅ Verifisert live | +| Cron teardown (03:00 CEST) | ✅ Aktiv på VM | +| Cron varsler (22:00–02:45 CEST) | ✅ Aktiv på VM | | 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) | --- @@ -82,12 +70,13 @@ Vauco sin egen MCP-server som erstatter GitHub Actions som CI/CD-kanal. | Nøkkel | Verdi | |---|---| | GCP Project | `propane-will-491900-m5` | -| Region (OPAX, LÅST) | `us-central1` | +| Region (LÅST) | `us-central1` | | Cloud Run service | `osvauco-agent` | -| Cloud Run URL (direkte) | `https://osvauco-agent-357036551735.us-central1.run.app` | +| Cloud Run URL (direkte) | `https://osvauco-agent-zjbqp3prqq-uc.a.run.app` | | Public URL | `https://opax.vauco.no` | -| Jason chat | `https://opax.vauco.no/jason` | +| Jason chat | `https://opax.vauco.no/static/jason.html` | | LB IP | `34.98.77.173` | +| VM | `osvauco-dev-vm` · `us-central1-b` · `e2-standard-2` | | AI-modell | `gemini-2.5-pro` via Vertex | | Repo | `vauco-saas/OSVauco` | | Eier | `chris.christiansen@vauco.no` | @@ -105,6 +94,7 @@ Vauco sin egen MCP-server som erstatter GitHub Actions som CI/CD-kanal. - **Ikke rør IAP/OAuth/Secret Manager** uten `DEPLOY GODKJENT`. - **Ikke opprett nye repos** uten `REPO APPROVED`. - **Ikke hopp over HITL gates.** +- **Ikke bruk `europe-west1`** — all kode er us-central1. --- @@ -114,8 +104,9 @@ Vauco sin egen MCP-server som erstatter GitHub Actions som CI/CD-kanal. 2. `docs/ROADMAP.md` — hva som skjer akkurat nå 3. `docs/HANDOFF.md` — denne filen 4. `docs/AGENT_RULEBOOK.md` — agent-regler -5. `docs/gemma/world.md` — Emma sin kontekstpakke +5. `docs/UNIVERSAL_BOOT_PROMPT.md` — boot-protokoll v1.4 +6. `docs/gemma/world.md` — Emma sin kontekstpakke --- -*Vauco AS · propane-will-491900-m5 · us-central1 · Jason + Emma + Perplexity-stand-in · Sprint 2026-06-10* +*Vauco AS · propane-will-491900-m5 · us-central1 · Jason + Emma (🔮) + Perplexity-stand-in · Sesjon 2026-06-10 kveld* diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 914f0da..b5325f4 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -24,7 +24,7 @@ | ID | Oppgave | Status | Prioritet | |----|---------|--------|-----------| -| OX2 | Command Hub: samle opax.html + jason.html + command-hub.html | 🔴 | Høy | +| OX2 | OPAX Hub v1 live — design OK, funksjoner under bygg (terminal, billing-kobling, moduler) | 🟠 | Høy | | CG4b | Token dashboard breakdown per modul i UI | 🔴 | Høy | | C4 | Medioteq HITL-møte → første betalende kunde | 🔴 | Kritisk | | CI1 | OPAX-MCP: full CI/CD-kanal (CI1a–e) | 🟠 | Høy | @@ -55,16 +55,16 @@ - Rot-årsak: `app.py` manglet `GET /`-rute + `static/` var ikke kopiert inn i Docker-imaget - Fix 1: `agents/core-logic/Dockerfile` — lagt til `COPY static/ ./static/` - Fix 2: `agents/core-logic/app.py` — lagt til `GET /` og `GET /static/{filename}` med absolutt `Path(__file__)`-forankret sti -- Etablert regel: absolutte filstier (`Path(__file__).parent...`) er obligatorisk i all Python som serverer statiske filer — gjelder Cloud Run, lokale VM-agenter og klientleveranser - Dokumentert i AGENT_RULEBOOK R-05, R-06, R-07 -- Appended til gemma/world.md så Emma kjenner regelen fra dag 1 -**Commits:** -- `40788c3` — fix: copy static/ into image so FileResponse can serve opax.html -- `9502201` — fix: add GET / route serving opax.html from static/ -- `950220...` (denne) — docs: append 2026-06-10 session learnings +### 2026-06-10 kveld — Boot prompt + cron + webhook + konfliktsjekk -**Neste:** -- Verifiser `opax.vauco.no` viser opax.html etter ny Cloud Build-kjøring -- OX2 — Command Hub -- C4 — Medioteq møte +**Hva ble gjort:** +- `docs/UNIVERSAL_BOOT_PROMPT.md` v1.4 opprettet +- `boot.sh` region-fix: `europe-west1` → `us-central1` +- `cloudbuild.yaml` notify-fix: linjeskift + URL +- `vm-teardown.sh` + `vm-startup.sh` opprettet +- Cron-varsler til Google Chat (22:00–02:45 CEST) aktivert på VM +- AGENTS.md disclaimer lagt til +- HANDOFF oversskrevet med dagens state +- OX2 satt til 🟠 — v1 live, funksjoner under bygg