diff --git a/.gemini/GEMINI.md b/.gemini/GEMINI.md index 502dbeb..2853325 100644 --- a/.gemini/GEMINI.md +++ b/.gemini/GEMINI.md @@ -388,3 +388,53 @@ Alle kanaler (SMS, WhatsApp, telefon) går via agenten — ikke direkte. 2. Implementer POST /notify/sms-inbound (Twilio webhook for innkommende) 3. Koble inbound til Emma for auto-svar logikk 4. Kjøp Twilio-nummer med voice-støtte for personlig bruk + +--- + +## Arkitektur: Toveis Agentic Gateway (opax-mcp v2) +Oppdatert: 2026-07-02 + +### Visjon +opax-mcp er en toveis AI↔AI-gateway. Bruker gir én høynivå-kommando, +AI planlegger og utfører — stopper kun ved kritiske valg. +Stemme (AirPods) er primær input når bruker er i loopen. + +### Status per 2026-07-02 +- osvauco-agent Rev 00664: ✅ Ready=True +- opax-mcp Rev 00062: ✅ peker på ollama-guard 10.164.0.13:11435 +- Gmail API + DWD: ✅ aktivert, jason@/emma@ som avsendere +- Gemini-kall lokalisert: agents/core-logic/agent.py + root_agent.py + +### Gjenstående — prioritert rekkefølge +1. Gmail kode i notifyemail-handler (main.py ~linje 564) +2. sendgrid→google-api-python-client i requirements.txt +3. Gemini guard-wrapper i agents/core-logic/agent.py +4. /tui-command deploy til opax-mcp +5. /task-loop asynkron polling +6. /voice-intent + Whisper (AirPods-loop) + +### Fase 2 — TUI-kontroll via MCP +POST /tui-command kjører shell-sekvenser og returnerer stdout/stderr/exit_code. +Stopper automatisk ved exit_code != 0. + +### Fase 3 — Asynkron task-loop +POST /task-loop/start → task_id +GET /task-loop/{id} → status + delresultater +POST /task-loop/{id}/approve → menneskelig godkjenning + +### Fase 4 — Stemme (AirPods) +POST /voice-intent → Whisper → task-loop → TTS-svar + +### Stopp-betingelser (menneske i loopen) +AI stopper alltid ved: +- Destruktive ops (delete/drop/rm -rf) +- Nye deployments +- Kostnadsendringer over terskel +- Uklare instruksjoner + +### Nøkkelfiler +- opax-mcp/server.py → /tui-command og /task-loop +- agents/core-logic/agent.py → Gemini guard-wrapper +- agents/core-logic/root_agent.py → samme guard +- main.py → notifyemail Gmail + /voice-intent +- requirements.txt → google-api-python-client (ikke sendgrid) diff --git a/requirements.txt b/requirements.txt index 1de071b..2436221 100644 --- a/requirements.txt +++ b/requirements.txt @@ -52,4 +52,4 @@ Jinja2>=3.1.4 authlib>=1.3.1 itsdangerous>=2.1.2 boto3>=1.34.120 -sendgrid>=6.11.0 +google-api-python-client>=2.130.0