Legg til fase 28: synops-ai med admin-rutingskontroll + manglende CLI

7 oppgaver:
- synops-ai: lettvekts LLM-kall via LiteLLM (ikke claude -p)
- AI-rutingskontroll i admin: modell per kontekst, endres uten redeploy
- Kostnadstak per bruker/samling med budsjett-sjekk
- synops-notify, synops-validate, synops-backup, synops-health

Nøkkelprinsipp: admin styrer hvilken modell som brukes til hva.
synops-ai uten --model bruker ai_job_routing-tabellen.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
vegard 2026-03-18 16:27:04 +00:00
parent 7a7eba5264
commit 0dc014f4ab
2 changed files with 20 additions and 0 deletions

View file

@ -45,6 +45,7 @@ declare -A PHASE_DEPS=(
[25]="24" [25]="24"
[26]="25" [26]="25"
[27]="26" [27]="26"
[28]="27"
) )
# --- Finn blokkerte faser --- # --- Finn blokkerte faser ---

View file

@ -48,6 +48,7 @@ Fase 23 → Fase 24 (orkestrering)
Fase 24 → Fase 25 (web clipper) Fase 24 → Fase 25 (web clipper)
Fase 25 → Fase 26 (epost) Fase 25 → Fase 26 (epost)
Fase 26 → Fase 27 (tankekart) Fase 26 → Fase 27 (tankekart)
Fase 27 → Fase 28 (manglende CLI + AI-ruting)
``` ```
Hvis en oppgave er `[?]` eller `[!]`, hoppes den over — og alle Hvis en oppgave er `[?]` eller `[!]`, hoppes den over — og alle
@ -359,3 +360,21 @@ visning av eksisterende grafdata.
- [ ] 27.1 MindMap Svelte-komponent: radial/tree-layout av noder rundt en rotnode. Hent relaterte noder (1-2 hopp) via WebSocket. d3-hierarchy eller trigonometri for layout. Pan/zoom via canvas-primitiv. Klikk node = ny rot, dobbeltklikk = åpne i editor. - [ ] 27.1 MindMap Svelte-komponent: radial/tree-layout av noder rundt en rotnode. Hent relaterte noder (1-2 hopp) via WebSocket. d3-hierarchy eller trigonometri for layout. Pan/zoom via canvas-primitiv. Klikk node = ny rot, dobbeltklikk = åpne i editor.
- [ ] 27.2 BlockShell-panel: MindMap som BlockShell-panel i arbeidsflaten med fullskjerm, resize, drag-handle. Rotnode fra kontekst-header. Responsivt. - [ ] 27.2 BlockShell-panel: MindMap som BlockShell-panel i arbeidsflaten med fullskjerm, resize, drag-handle. Rotnode fra kontekst-header. Responsivt.
- [ ] 27.3 MindMap-trait: `mindmap`-trait for samlingsnoder. Vises i trait-velger ved opprettelse. Konfigurasjon: default dybde (1-3 hopp), layout-stil (radial/tree). - [ ] 27.3 MindMap-trait: `mindmap`-trait for samlingsnoder. Vises i trait-velger ved opprettelse. Konfigurasjon: default dybde (1-3 hopp), layout-stil (radial/tree).
## Fase 28: Manglende CLI-verktøy + AI-rutingskontroll
Verktøy som mangler i verktøykassen, pluss admin-styring av hvilken
modell som brukes til hva.
### synops-ai: lettvekts LLM-kall
- [ ] 28.1 `synops-ai` CLI: direkte LLM-kall via LiteLLM. Input: `--prompt <tekst> [--model <alias>] [--system <systemprompt>]`. Output: tekst til stdout. Ingen fillesing, ingen verktøy, bare prompt inn/ut. Bruker `ai_job_routing`-tabellen for å bestemme modell hvis `--model` ikke er satt. Logger i `ai_usage_log`.
- [ ] 28.2 AI-rutingskontroll i admin: utvid admin-UI (fase 15.4) med konfigurasjon av hvilken modell som brukes per kontekst. Tabellen `ai_job_routing` mapper `(job_type, context)``model_alias`. Kontekster: `orchestration_script`, `orchestration_dream`, `bot_chat`, `bot_triage`, `summarize`, `suggest_edges`, `classify`. Admin kan endre uten redeploy.
- [ ] 28.3 Kostnadstak per bruker/samling: `ai_budget`-felt i metadata for brukere og samlinger. `synops-ai` sjekker budsjett mot `ai_usage_log` aggregat før kall. Ved overskridelse: returner feilmelding, opprett work_item.
### Øvrige manglende verktøy
- [ ] 28.4 `synops-notify`: send varsel via epost (synops-mail), WebSocket-push, eller begge. Input: `--to <node_id> --message <tekst> [--channel email|ws|both]`. Brukes av orkestreringer og vaktmesteren.
- [ ] 28.5 `synops-validate`: sjekk at en node matcher forventet skjema for sin node_kind. Input: `--node-id <uuid>`. Output: liste av avvik. Brukes av valideringsfasen og som pre-commit sjekk.
- [ ] 28.6 `synops-backup`: PG-dump + CAS-filiste + metadata-snapshot. Input: `[--full | --incremental]`. Output: backup-sti. Erstatter cron-scriptet fra 12.2.
- [ ] 28.7 `synops-health`: sjekk status for alle tjenester (PG, Caddy, vaktmesteren, LiteLLM, Whisper, LiveKit). Output: JSON med status per tjeneste. Brukes av admin-dashboard og overvåking.