synops/maskinrommet
vegard 1d8ebf259b Skjermklipp-input: paste screenshot i chat → CAS → media-node (oppgave 29.1)
Frontend:
- ChatInput: paste-handler detekterer bilder fra clipboard (ClipboardEvent),
  laster opp til CAS via uploadMedia med metadata_extra { source: "screenshot" }
- Chat-side: viser bildenoder inline med AI-beskrivelse når tilgjengelig
- api.ts: uploadMedia støtter nå metadata_extra for ekstra node-metadata

Backend (maskinrommet):
- upload_media: nytt metadata_extra multipart-felt som merges inn i
  media-nodens metadata (f.eks. source, description)
- describe_image: ny jobbtype — enqueuues automatisk for screenshot-uploads,
  kaller synops-ai med --image for AI-beskrivelse av bildet
- Beskrivelsen lagres tilbake i media-nodens metadata.description

synops-ai:
- Nytt --image flag for multimodal LLM-kall (vision) via LiteLLM
- Sender bilde som base64 data-URL i OpenAI-kompatibelt format
- Brukes av describe_image-jobben for bildbeskrivelse
2026-03-18 21:07:00 +00:00
..
src Skjermklipp-input: paste screenshot i chat → CAS → media-node (oppgave 29.1) 2026-03-18 21:07:00 +00:00
.gitignore Maskinrommet Rust-skjelett med Dockerfile (oppgave 2.1) 2026-03-17 12:20:39 +01:00
Cargo.lock WebSocket-lag i portvokteren: PG LISTEN/NOTIFY + WS-endepunkt (oppgave 22.1) 2026-03-18 11:54:34 +00:00
Cargo.toml WebSocket-lag i portvokteren: PG LISTEN/NOTIFY + WS-endepunkt (oppgave 22.1) 2026-03-18 11:54:34 +00:00
Dockerfile Skrivestien: POST /intentions/create_node (oppgave 2.4) 2026-03-17 13:09:50 +01:00