# 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, motta via Postfix pipe (`--send` / `--receive`) | Ferdig | | `synops-notify` | Send varsel via epost, WebSocket-push, eller begge. Sjekker brukerens preferanser (`metadata.preferences.notifications`) | Ferdig | | `synops-validate` | Valider at en node matcher forventet skjema for sin node_kind | Ferdig | | `synops-backup` | PG-dump + CAS-filiste + metadata-snapshot (`--full` / `--incremental`) | Ferdig | | `synops-health` | Sjekk status for alle tjenester (PG, Caddy, Maskinrommet, LiteLLM, Whisper, LiveKit, Authentik) | Ferdig | | `synops-feed` | Abonner på RSS/Atom-feed, opprett content-noder med deduplisering og paywall-deteksjon | Ferdig | | `synops-video` | Video-transcode (H.264), thumbnail-generering, varighet-uttrekk fra CAS-hash | Ferdig | | `synops-calendar` | ICS-import: parser ICS-fil, oppretter kalendernoder med `scheduled`-edges, duplikatdeteksjon via UID | Ferdig | | `synops-stats` | Parse Caddy access-logger for podcast-nedlastinger. IAB-filtrering (bots, unik IP/24t). JSON-output + `--write` til PG | Ferdig | | `synops-import-podcast` | Importer eksisterende podcast fra RSS-feed til CAS + noder. Duplikatdeteksjon via ``, `--dry-run`, idempotent | 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-` (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 `~~ — implementert (se tabell over) - ~~`synops-respond`~~ — implementert (se tabell over) - `synops-update-spec ` — oppdater spec-node (stdin)