# 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
