diff --git a/.gemini/GEMINI.md b/.gemini/GEMINI.md index e5b95bc..4390d1c 100644 --- a/.gemini/GEMINI.md +++ b/.gemini/GEMINI.md @@ -1,6 +1,6 @@ # GEMINI.md — OSVauco / OPAX -> Claude Opus 4.6 · Vertex AI EU endpoint · Nemotron session protocol · HITL-safe +> Claude Opus 4.7 · Vertex AI EU endpoint · Nemotron session protocol · HITL-safe --- @@ -16,8 +16,10 @@ GCP_REGION: europe-west1 GCP_VERTEX_LOC: eu CLOUD_RUN_SVC: osvauco-agent ARTIFACT_REPO: gcr.io/propane-will-491900-m5 -MODEL: claude-opus-4-6@20260301 +MODEL: claude-opus-4-7@20260301 MODEL_PROVIDER: Vertex AI (Anthropic Claude via Google Cloud) +MODEL_COST: ~2 NOK per 1M tokens (input) +BUDGET_CAP: 2500 NOK intern grense — spør Chris om +1000 NOK ved behov OPERATOR: Chris Christiansen (chris.christiansen@vauco.no) OPERATOR_ROLE: Eier, arkitekt og primær operatør av OSVauco / OS-Vauco ``` @@ -26,13 +28,14 @@ OPERATOR_ROLE: Eier, arkitekt og primær operatør av OSVauco / OS-Vauco --- -## Modell: Claude Opus 4.6 via Vertex AI +## Modell: Claude Opus 4.7 via Vertex AI -Denne agenten kjøres med **Claude Opus 4.6** tilgjengelig via Vertex AI EU multi-region endpoint. +Denne agenten kjøres med **Claude Opus 4.7** tilgjengelig via Vertex AI EU multi-region endpoint. -- Data forblir innenfor EU-grensen (GDPR-compliant) [cite:76] +- Data forblir innenfor EU-grensen (GDPR-compliant) - Ingen separat Anthropic API-nøkkel — billing via eksisterende GCP-konto - EU endpoint auto-routes internt mellom europeiske regioner for kapasitet +- Intern budsjett-cap: **2 500 NOK** — ved behov for mer, spør Chris eksplisitt om +1 000 NOK ```python # Korrekt initialisering @@ -44,16 +47,13 @@ client = anthropic.AnthropicVertex( ) response = client.messages.create( - model="claude-opus-4-6@20260301", + model="claude-opus-4-7@20260301", max_tokens=8192, messages=[{"role": "user", "content": "..."}] ) ``` ```bash -# Aktiver model i Vertex AI Model Garden (kun første gang) -# Console → Vertex AI → Model Garden → søk "Claude Opus" → Enable - # Auth gcloud auth application-default login --project=propane-will-491900-m5 ``` @@ -151,12 +151,10 @@ NÅR noe feiler: NÅR du er usikker på state: ```bash -# Sjekk hva som faktisk kjører gcloud run services describe $CLOUD_RUN_SVC \ --project=$GCP_PROJECT --region=$GCP_REGION \ --format="yaml(status,spec.template.spec.containers)" -# Sjekk siste image som ble bygget gcloud artifacts docker images list \ gcr.io/$GCP_PROJECT/osvauco-agent \ --project=$GCP_PROJECT \ @@ -183,17 +181,15 @@ gcloud artifacts docker images list \ Etter enhver endring: ```bash -# Bekreft at ny revisjon er aktiv gcloud run revisions list \ --service=$CLOUD_RUN_SVC \ --project=$GCP_PROJECT \ --region=$GCP_REGION \ --limit=3 -# Bekreft at endepunktet svarer curl -s -o /dev/null -w "%{http_code}" \ -H "Authorization: Bearer $(gcloud auth print-identity-token)" \ - https://osvauco-agent-357036551735.us-central1.run.app/health + https://opax.vauco.no/health ``` ### Regel 5: Bruk strukturerte observasjoner @@ -212,7 +208,7 @@ VERIFY: [kommando for å bekrefte fix] ### BOOT - Read `docs/AGENT_RULEBOOK.md`, `docs/VAUCO_OS_ROADMAP.md`, and `docs/OSVAUCO_OPAX_SESSION_LOG.md`. -- Print LOCKED DEFINITIONS (`MCP_NAME`, `MCP_PROTOCOL`, `HUB_URL`, `ROOT_DOMAIN`, `GCP_PROJECT`, `MODEL`, `OPERATOR`). +- Print LOCKED DEFINITIONS (`MCP_NAME`, `MCP_PROTOCOL`, `HUB_URL`, `ROOT_DOMAIN`, `GCP_PROJECT`, `MODEL`, `BUDGET_CAP`, `OPERATOR`). - Print the last `## NESTE OPPGAVE` block found in the session log. - If no NESTE OPPGAVE found → warn and read ROADMAP NOW section instead. - Sjekk gjeldende GCP auth: `gcloud auth list` og `gcloud config get-value project` @@ -250,7 +246,6 @@ VERIFY: [kommando for å bekrefte fix] ### NEXT - At the next session start, read `## NESTE OPPGAVE` before doing anything else. -- The boot script reads the last NESTE OPPGAVE automatically — keep it updated. --- @@ -261,13 +256,14 @@ VERIFY: [kommando for å bekrefte fix] 3. **Never batch unrelated edits** in a single EXECUTE step. 4. **OPAX (`opax.vauco.no`) is management plane only** — it never receives raw patient data. 5. **Medioteq clinical data** stays in `europe-north1` inside the Medioteq GCP project boundary. -6. **Deploy `clinical-mcp` and `clinical-orchestrator`** to the Medioteq project (`--project=`), never the Vauco project. +6. **Deploy `clinical-mcp` and `clinical-orchestrator`** to the Medioteq project, never the Vauco project. 7. **HITL gates**: PLAN approves order → AUDIT approves format → OPS confirms EST → Human confirms before EXEC fires. 8. **Aldri søk på nett for å diagnostisere feil du kan lese i loggene.** 9. **Aldri anta at noe virker — verifiser alltid med en faktisk kommando.** 10. **Aldri gjett på koden — les den.** Du er i repoet. Bruk `cat`, `grep`, `git diff`. 11. **Aldri skriv .env fra .env.example** — se Kritiske fil-sikkerhetsregler. 12. **Aldri overskriv en fil du ikke har lest først** — bruk `cat` eller `ls -la` før enhver skriveoperasjon. +13. **Budsjett-cap: 2 500 NOK** — aldri overskrid uten eksplisitt GO fra Chris med beløp. --- @@ -325,9 +321,9 @@ gcloud iap web get-iam-policy \ ### 🔴 Claude / Vertex AI-feil ```bash -# Test Claude Opus 4.6 via Vertex EU endpoint +# Test Claude Opus 4.7 via Vertex EU endpoint curl -X POST \ - "https://eu-aiplatform.googleapis.com/v1/projects/propane-will-491900-m5/locations/eu/publishers/anthropic/models/claude-opus-4-6@20260301:rawPredict" \ + "https://eu-aiplatform.googleapis.com/v1/projects/propane-will-491900-m5/locations/eu/publishers/anthropic/models/claude-opus-4-7@20260301:rawPredict" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ @@ -354,32 +350,6 @@ find ~ -name ".env" -not -path "*/OSVauco/*" 2>/dev/null **STOPP og rapporter til Chris — opprett IKKE .env fra .env.example.** -### Prioritert diagnose-rekkefølge - -``` -FEIL OPPDAGET - │ - ▼ -1. Les loggene (build / runtime / HTTP response) - │ - ▼ -2. Identifiser hvilken linje/steg som feilet - │ - ▼ -3. Les den aktuelle filen i repoet - │ - ▼ -4. Formuler rot-årsak med OBSERVASJON/ROT-ÅRSAK/FIX - │ - ▼ -5. PLAN → HITL → EXECUTE → VERIFY - │ - ▼ -ALDRI: Søk på nett som første steg -ALDRI: Gjett og prøv uten å lese loggene -ALDRI: Opprett .env fra template -``` - ### Diagnoseoversikt | Situasjon | Gjør DETTE | IKKE dette | @@ -398,20 +368,14 @@ ALDRI: Opprett .env fra template ## GCP-konvensjoner for dette prosjektet ```bash -# Alltid bruk eksplisitt prosjekt og region --project=propane-will-491900-m5 --region=europe-west1 -# Cloud Run service CLOUD_RUN_SVC=osvauco-agent - -# Artifact Registry IMAGE=gcr.io/propane-will-491900-m5/osvauco-agent -# Cloud Build gcloud builds submit --config=cloudbuild.yaml --project=propane-will-491900-m5 -# Deploy manuelt gcloud run deploy osvauco-agent \ --image=$IMAGE:latest \ --project=propane-will-491900-m5 \ @@ -435,7 +399,7 @@ Auth: Google OAuth now. BankID on `-os` later (Medioteq first). ## Standard Boot Prompt -Lim inn dette ved start av HVER sesjon i Gemini TUI: +Lim inn dette ved start av HVER sesjon: ``` BOOT: Read docs/AGENT_RULEBOOK.md, docs/VAUCO_OS_ROADMAP.md, docs/OSVAUCO_OPAX_SESSION_LOG.md.