To hovedoppdrag: komplett synops-agent + komplett admin-panel

synops-agent: 8 faser fra robustgjøring til daemon/vaktmester.
Admin-panel: nøkkelhåndtering, AI-ruting, oppgaver, agent-oversikt,
brukeradmin. Bygger på eksisterende sider + alt vi har diskutert.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
vegard 2026-03-19 17:55:00 +00:00
parent f98ad11081
commit ea7926555c
3 changed files with 201 additions and 0 deletions

9
docs/oppdrag/README.md Normal file
View file

@ -0,0 +1,9 @@
# Aktive oppdrag
Oppdrag som er godkjent for implementering. Når oppgave-noder
er implementert i PG flyttes disse dit. Inntil da lever de her.
## Pågående
1. [synops-agent-komplett.md](synops-agent-komplett.md) — Fullstendig agent-harness
2. [admin-komplett.md](admin-komplett.md) — Komplett admin-panel

View file

@ -0,0 +1,111 @@
# 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

View file

@ -0,0 +1,81 @@
# Oppdrag: Komplett synops-agent
Gjør synops-agent til en fullverdig erstatning for Claude Code
og vaktmester for Synops-plattformen.
Ref: `docs/proposals/agent_harness.md`
## Fase 1: Robustgjøring av kjernen (har grunnlag)
- [ ] Kontekstkomprimering (ACC) — oppsummer eldre meldinger
når kontekstvinduet nærmer seg grensen
- [ ] Retry med exponential backoff ved API-feil
- [ ] Token-budsjett — stopp ved konfigurerbar grense
- [ ] Bedre feilhåndtering (timeout, parse-feil, nettverksfeil)
- [ ] max_tokens konfigurerbar per provider (ikke hardkodet 4096)
## Fase 2: Interaktiv modus
- [ ] REPL-modus: `synops-agent --interactive`
Bruker skriver → agent svarer → loop
- [ ] Meldingshistorikk med opp/ned-pil
- [ ] Ctrl+C avbryter pågående tool-kall, ikke hele agenten
- [ ] Vis token-teller live i prompt
## Fase 3: Planmodus og selvkritikk
- [ ] Extended ReAct Loop: tenke-fase → selvkritikk → handling
- [ ] Planmodus: agent analyserer oppgaven, lager plan, venter
på godkjenning før den utfører
- [ ] Automatisk planmodus for store oppgaver (>3 filer berørt)
## Fase 4: Git-integrasjon
- [ ] Auto-commit etter fullført oppgave
- [ ] Diff-visning før commit
- [ ] Branch-per-oppgave (valgfritt)
- [ ] Push etter commit (konfigurerbart)
- [ ] Les git log/blame for kontekst
## Fase 5: Grafintegrasjon
- [ ] Koble til PG via synops-common
- [ ] Les/skriv noder og edges
- [ ] Plukk oppgaver (task-noder) fra PG
- [ ] Oppdater oppgavestatus (open → active → done)
- [ ] Skriv tilbakemelding i oppdragets chat-node
- [ ] Krasj-deteksjon: frigjør tasks som har stått >60 min
## Fase 6: Vaktmester-modus
- [ ] Daemon: `synops-agent daemon`
- [ ] Motta meldinger fra kommunikasjonsnode (vaktmester-chat)
- [ ] Prefix-kommandoer: /proposal, /task, /bug, /claude, /gjør
- [ ] Eksplisitt modellvalg: /claude, /grok, /gemini (kun admin)
- [ ] Spawn Claude Code for tunge oppgaver (--claude)
- [ ] Epost-integrasjon: motta via synops-mail, svar tilbake
- [ ] Heartbeat-fil for overvåking
## Fase 7: Sub-agenter og eskalering
- [ ] Spawn sub-agent med valgfri modell per deloppgave
- [ ] Utfør billig → verifiser smart-mønster
- [ ] Automatisk eskalering ved gjentatt feil
- [ ] Worktree-isolasjon for kode-oppgaver
- [ ] Parallell utføring av uavhengige tasks
## Fase 8: Checkpoint og recovery
- [ ] Lagre mellomtilstand (meldingshistorikk, pågående oppgave)
- [ ] Gjenoppta etter krasj
- [ ] Kostnadslogging til ai_usage_log i PG
- [ ] Sesjonsrapport ved avslutning
## Akseptkriterier
- Kan lese docs, implementere kode, committe og pushe — uten tilsyn
- Kan plukke oppgaver fra PG og rapportere tilbake i chat
- Kan spawne Claude Code for tunge oppgaver
- Kan kjøre som daemon og motta meldinger
- Token-regnskap per modell, per sesjon, per oppgave
- Krasj-safe: gjenopptar der den slapp