synops/frontend
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
static Fullfører oppgave 16.7: Stemmeeffekter med robot og monster voice 2026-03-18 05:34:59 +00:00
.env.example Fjern SpacetimeDB komplett (oppgave 22.4) 2026-03-18 13:39:09 +00:00
.gitignore SvelteKit frontend-skjelett (oppgave 3.1) 2026-03-17 13:37:41 +01:00
.npmrc SvelteKit frontend-skjelett (oppgave 3.1) 2026-03-17 13:37:41 +01:00
package-lock.json Fjern SpacetimeDB komplett (oppgave 22.4) 2026-03-18 13:39:09 +00:00
package.json Fjern SpacetimeDB komplett (oppgave 22.4) 2026-03-18 13:39:09 +00:00
svelte.config.js SvelteKit frontend-skjelett (oppgave 3.1) 2026-03-17 13:37:41 +01:00
tsconfig.json SvelteKit frontend-skjelett (oppgave 3.1) 2026-03-17 13:37:41 +01:00
vite.config.ts TipTap-editor med create_node-intensjon (oppgave 3.5) 2026-03-17 14:24:25 +01:00