synops/tools
vegard 6370b02cc7 26.7 ferdig: utgående varsler med brukerpreferanser
Vaktmesteren kan nå sende epost-varsler og WebSocket-push til brukere
via synops-notify, med respekt for brukerens preferanser.

Endringer:
- jobs.rs: send_notification jobbtype som delegerer til synops-notify CLI
- synops-notify: preferansesjekk fra metadata.preferences.notifications
  (opt-out-modell, per-kanal og per-type bryter, --skip-preferences)
- intentions.rs: POST /intentions/send_notification (admin-only)
- Dokumentasjon: docs/features/varsler.md

Preferanseskjema (i brukernodens metadata):
  preferences.notifications.email: bool (global epost-bryter)
  preferences.notifications.ws: bool (global WS-bryter)
  preferences.notifications.<type>: bool (per-type, f.eks. task_assigned)
2026-03-19 02:08:00 +00:00
..
synops-ai Skjermklipp-input: paste screenshot i chat → CAS → media-node (oppgave 29.1) 2026-03-18 21:07:00 +00:00
synops-audio synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-backup synops-backup: PG-dump + CAS-filiste + metadata-snapshot (oppgave 28.6) 2026-03-18 20:45:02 +00:00
synops-calendar CalDAV-abonnement: periodisk polling av eksterne kalendere (oppgave 29.12) 2026-03-18 23:04:29 +00:00
synops-clip synops-clip --write: node-opprettelse med AI-oppsummering (oppgave 25.2) 2026-03-18 18:33:07 +00:00
synops-common synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-context synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-feature-status synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-feed synops-feed: RSS/Atom-feed abonnement med deduplisering (oppgave 29.2) 2026-03-18 21:16:36 +00:00
synops-health synops-health: sjekk status for alle tjenester i stacken (oppgave 28.7) 2026-03-18 20:54:27 +00:00
synops-import-podcast synops-import-podcast: importer podcast fra RSS-feed (oppgave 30.6) 2026-03-19 00:06:37 +00:00
synops-mail Fjern frase-sjekk, legg til domene-alias i synops-mail 2026-03-19 01:55:37 +00:00
synops-node synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-notify 26.7 ferdig: utgående varsler med brukerpreferanser 2026-03-19 02:08:00 +00:00
synops-prune Valider fase 11: fiks size-inkonsistens og UTF-8-trunkering i RSS 2026-03-18 15:15:08 +00:00
synops-render synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-respond @bot URL-klipping i chat: synops-clip-integrasjon (oppgave 25.3) 2026-03-18 18:41:33 +00:00
synops-rss Podcast-trait admin-UI og utvidet RSS-metadata (oppgave 30.2) 2026-03-18 23:21:15 +00:00
synops-search synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-stats synops-stats CLI: podcast-nedlastingsstatistikk fra Caddy-logger (oppgave 30.3) 2026-03-18 23:30:45 +00:00
synops-suggest-edges synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-summarize synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-tasks synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-transcribe synops-common: delt lib for alle CLI-verktøy (oppgave 21.16) 2026-03-18 10:51:40 +00:00
synops-tts Fjern SpacetimeDB komplett (oppgave 22.4) 2026-03-18 13:39:09 +00:00
synops-validate synops-validate: sjekk at en node matcher forventet skjema for sin node_kind (oppgave 28.5) 2026-03-18 20:37:23 +00:00
synops-video synops-video: CLI for video-transcode, thumbnail og varighet (oppgave 29.8) 2026-03-18 22:25:42 +00:00
README.md 26.7 ferdig: utgående varsler med brukerpreferanser 2026-03-19 02:08:00 +00:00

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 <guid>, --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-<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)