Nytt CLI-verktøy som henter en node fra PG og validerer: - Basisfelter: visibility, created_by, metadata-type, kjent node_kind - node_kind-spesifikk metadata: collection (traits), ai_preset, orchestration, media, communication - Relasjonelle sjekker: person→auth_identities, agent→agent_identities Samler alle avvik (feiler ikke på første treff). Output i markdown eller JSON (--format). Exit-koder: 0=OK, 1=avvik, 2=feil. Valideringsreglene speiler maskinrommet/src/intentions.rs slik at skrivestien og valideringsverktøyet håndhever samme skjema.
54 lines
2.9 KiB
Markdown
54 lines
2.9 KiB
Markdown
# Synops CLI-verktøy
|
|
|
|
CLI-verktøy for Claude sin interaksjon med systemet. Bruker PG direkte
|
|
eller maskinrommet-API. Ligger i PATH via symlink eller direkte kall.
|
|
|
|
## Verktøy
|
|
|
|
| Verktøy | Beskrivelse | Status |
|
|
|---------|-------------|--------|
|
|
| `synops-transcribe` | Whisper-transkribering av lydfil fra CAS | Ferdig |
|
|
| `synops-audio` | FFmpeg lydprosessering med EDL (cut, normalize, EQ, m.m.) | Ferdig |
|
|
| `synops-render` | Tera HTML-rendering til CAS (artikler, forsider) | Ferdig |
|
|
| `synops-rss` | RSS/Atom-feed generering for samlinger | Ferdig |
|
|
| `synops-tts` | Tekst-til-tale via ElevenLabs, lagrer lyd i CAS | Ferdig |
|
|
| `synops-summarize` | AI-oppsummering av kommunikasjonsnode via LiteLLM | Ferdig |
|
|
| `synops-suggest-edges` | AI-foreslåtte edges (topics/mentions) for en node via LiteLLM | Ferdig |
|
|
| `synops-respond` | Claude chat-svar i kommunikasjonsnoder | Ferdig |
|
|
| `synops-prune` | Opprydding av gamle CAS-filer (TTL + disk-nødventil) | Ferdig |
|
|
| `synops-context` | Hent kontekst for en samtale (deltakere, historikk, spec, relaterte noder) | Ferdig |
|
|
| `synops-search` | Fulltekstsøk i noder (title + content, norsk tsvector) | Ferdig |
|
|
| `synops-tasks` | Parse tasks.md og vis oppgavestatus (filtrering på fase/status) | Ferdig |
|
|
| `synops-feature-status` | Sjekk feature-status: spec, oppgaver, commits, feedback | Ferdig |
|
|
| `synops-node` | Hent/vis en node med edges (UUID, --depth, --format json/md) | Ferdig |
|
|
| `synops-ai` | LLM-verktøy: `prompt` (direkte LLM-kall) + `script` (orkestreringsscript fra fritekst) | Ferdig |
|
|
| `synops-clip` | Hent og parse webartikler (Readability + Playwright-fallback, paywall-deteksjon) | Ferdig |
|
|
| `synops-mail` | Send epost via msmtp (vaktmester@synops.no) | Ferdig (venter SMTP-credentials) |
|
|
| `synops-notify` | Send varsel via epost, WebSocket-push, eller begge | Ferdig |
|
|
| `synops-validate` | Valider at en node matcher forventet skjema for sin node_kind | Ferdig |
|
|
|
|
## Delt bibliotek
|
|
|
|
| Crate | Beskrivelse |
|
|
|-------|-------------|
|
|
| `synops-common` | Delt lib: PG-tilkobling (`db`), CAS-helpers (`cas`), logging (`logging`), node/edge-typer (`types`) |
|
|
|
|
Alle CLI-verktøy (unntatt `synops-tasks`) bruker `synops-common` som dependency.
|
|
Se `synops-common/src/lib.rs` for API-oversikt.
|
|
|
|
## Konvensjoner
|
|
- Navnekonvensjon: `synops-<verb>` (f.eks. `synops-context`)
|
|
- Shell-scripts eller Rust binaries
|
|
- Ett verktøy per oppgave — hold det enkelt
|
|
- Output: stdout, strukturert tekst (markdown eller JSON)
|
|
- DB-tilkobling: `$DATABASE_URL` eller fra `/tmp/maskinrommet.env`
|
|
|
|
## Planlagte verktøy
|
|
Ref: `docs/infra/agent_api.md`
|
|
|
|
- ~~`synops-context`~~ — implementert (se tabell over)
|
|
- ~~`synops-search`~~ — implementert (se tabell over)
|
|
- ~~`synops-tasks [--phase N] [--status S]`~~ — implementert (se tabell over)
|
|
- ~~`synops-feature-status <key>`~~ — implementert (se tabell over)
|
|
- ~~`synops-respond`~~ — implementert (se tabell over)
|
|
- `synops-update-spec <node_id>` — oppdater spec-node (stdin)
|