# Oppdrag: Komplett admin-panel Samle all administrasjon i et helhetlig admin-panel som dekker alt vi har diskutert: nøkler, AI-ruting, oppgaver, overvåking. ## Eksisterende admin-sider Disse finnes allerede under /admin/*: - `/admin` — oversikt - `/admin/ai` — AI Gateway-konfigurasjon - `/admin/health` — serverhelse - `/admin/jobs` — jobbkø - `/admin/podcast-import` — podcast-import - `/admin/podcast-stats` — nedlastingsstatistikk - `/admin/usage` — ressursforbruk - `/admin/webhooks` — webhook-admin ## Nye admin-sider ### API-nøkler (`/admin/keys`) Ref: `docs/infra/nøkkelhåndtering.md` - [ ] Nøkkelliste med provider, label, status, sist brukt - [ ] Legg til nøkkel (med test-tilkobling) - [ ] Deaktiver/slett nøkkel - [ ] Hint-visning (aldri full nøkkel etter lagring) - [ ] Backend: api_keys-tabell i PG, AES-256-GCM kryptering ### AI-ruting (`/admin/ai` — utvid eksisterende) - [ ] Rediger ai_job_routing direkte i UI (ikke bare visning) - [ ] Fire nivåer: synops/low, synops/medium, synops/high, synops/extreme - [ ] Per-nivå: velg modell + provider fra dropdown - [ ] Fallback-kjeder: "hvis denne feiler, prøv denne" - [ ] Test-knapp per nivå ("send test-prompt") - [ ] Kostnadsestimat per nivå (basert på token-pris) ### Oppgaver (`/admin/tasks`) Ref: `docs/infra/oppgaver.md` - [ ] Tre faner: Proposals | Oppdrag | Tasks - [ ] Opprett ny proposal/oppdrag/task - [ ] Drag-and-drop for prioritetsendring - [ ] Status-endring (pause, gjenoppta, blokker) - [ ] Klikk → detaljer + tilknyttet chat - [ ] "Godkjenn proposal" → opprett oppdrag - [ ] Vis hvem/hva som jobber på en oppgave - [ ] Krasj-deteksjon: vis stale tasks ### Agent-oversikt (`/admin/agents`) - [ ] Liste over aktive synops-agent-instanser - [ ] Per agent: modell, oppgave, token-forbruk, varighet - [ ] Stopp/restart agent - [ ] Historikk: siste kjøringer med resultat - [ ] Claude Code-sesjoner (aktive, nylige) ### Brukeradministrasjon (`/admin/users`) - [ ] Liste over brukere (person-noder) - [ ] Roller per samling - [ ] AI-budsjett per bruker - [ ] Siste aktivitet - [ ] Deaktiver/aktiver bruker ### Systemvarsler (`/admin/announcements` — eksisterer delvis) - [ ] Opprett systemvarsel (info/warning/critical) - [ ] Planlagt vedlikehold med nedtelling - [ ] Aktive varsler i frontend-banner ## Forbedringer av eksisterende sider ### Serverhelse (`/admin/health`) - [ ] Legg til synops-agent status - [ ] Vis disk-bruk for CAS - [ ] Vis aktive WebSocket-tilkoblinger - [ ] Vis LiteLLM-status (så lenge den lever) ### Ressursforbruk (`/admin/usage`) - [ ] Legg til per-modell forbruk (fra agent token-regnskap) - [ ] Trend-graf over tid - [ ] Kostnadsestimat per modell - [ ] Eksporter til CSV ### Jobbkø (`/admin/jobs`) - [ ] Vis synops-agent-jobber i tillegg til maskinrommet-jobber - [ ] Vis token-forbruk per jobb - [ ] Koble jobb til oppgave-node ## Design-prinsipper - Alle admin-sider bruker samme mørke tema som resten av appen - Admin-ruter krever owner/admin-rolle - Responsivt (mobil-brukbart for enkel overvåking) - Sanntidsoppdatering via WebSocket der det gir mening - Konsistent med resten av ContextHeader-opplevelsen ## Implementeringsrekkefølge 1. API-nøkler (fjerner .env-avhengighet, fundamentalt) 2. AI-ruting (utvid eksisterende, forhåndsvisning) 3. Oppgaver (grunnlag for synops-agent automatisering) 4. Agent-oversikt (overvåking når agent kjører) 5. Brukeradministrasjon 6. Forbedringer av eksisterende sider