diff --git a/migrations/0008_ai_prompts.sql b/migrations/0008_ai_prompts.sql new file mode 100644 index 0000000..d356e37 --- /dev/null +++ b/migrations/0008_ai_prompts.sql @@ -0,0 +1,40 @@ +-- AI Prompts: redigerbare system-prompts for AI-tekstbehandling +CREATE TABLE ai_prompts ( + action TEXT PRIMARY KEY, + system_prompt TEXT NOT NULL, + description TEXT, + updated_at TIMESTAMPTZ NOT NULL DEFAULT now() +); + +-- Seed med nåværende hardkodede prompts +INSERT INTO ai_prompts (action, system_prompt, description) VALUES + ('fix_text', 'Fiks denne teksten. Output på norsk. +- Returner KUN den fiksede teksten — ingen innledning, kommentar eller meta-tekst +- Fiks skrivefeil og grammatikk +- Start med en kort oppsummering av det viktigste (2–3 setninger) +- Fjern metainformasjon, navigasjon, annonser og annen støy fra innlimt webinnhold +- Dersom det er tydelig hva kilden er, oppgi den etter innledende oppsummering +- Behold saklig innhold og fakta intakt +- Bruk markdown-formatering der det gir bedre lesbarhet', 'Fikser skrivefeil, fjerner støy, oppsummerer'), + + ('extract_facts', 'Analyser denne teksten og trekk ut fakta. Output på norsk. +- Returner KUN faktalisten — ingen innledning, kommentar eller meta-tekst +- Identifiser konkrete påstander, tall, sitater og fakta +- List dem opp som punktliste +- For hver fakta: noter hvilken person eller organisasjon den gjelder (bruk #Navn-format) +- Ignorer meninger og spekulasjoner — kun verifiserbare påstander +- Behold kildehenvisninger der de finnes', 'Trekker ut fakta som punktliste'), + + ('rewrite', 'Skriv om denne teksten til artikkelformat. Output på norsk. +- Returner KUN artikkelen — ingen innledning, kommentar eller meta-tekst +- Lag en tittel som fanger essensen +- Skriv en ingress på 2–3 setninger +- Strukturer resten med mellomtitler der det er naturlig +- Hold deg til fakta fra originalteksten — ikke legg til informasjon +- Bruk markdown-formatering', 'Skriver om til artikkelformat'), + + ('translate', 'Oversett denne teksten til norsk. +- Returner KUN oversettelsen — ingen innledning, kommentar eller meta-tekst +- Behold formatering og struktur +- Oversett fagtermer korrekt, behold engelske termer i parentes der det er vanlig +- Behold egennavn uoversatt', 'Oversetter til norsk'); diff --git a/web/src/lib/components/Sidebar.svelte b/web/src/lib/components/Sidebar.svelte index c7dade7..e47e7cd 100644 --- a/web/src/lib/components/Sidebar.svelte +++ b/web/src/lib/components/Sidebar.svelte @@ -2,18 +2,23 @@ import type { Workspace } from '$lib/server/db'; import type { PageConfig } from '$lib/types/pages'; import WorkspaceSwitcher from './WorkspaceSwitcher.svelte'; + import { page } from '$app/state'; let { open = $bindable(false), user, workspace, workspaces, + isServerAdmin = false, + isWorkspaceAdmin = false, authProvider }: { open: boolean; user: { id: string; name: string; email: string; image?: string }; workspace: Workspace | null; workspaces: Workspace[]; + isServerAdmin?: boolean; + isWorkspaceAdmin?: boolean; authProvider: string; } = $props(); @@ -81,6 +86,9 @@ ((workspace?.settings as Record)?.pages as PageConfig[]) ?? [] ); + let isOnAdmin = $derived(page.url.pathname.startsWith('/admin')); + let isOnServerAdmin = $derived(page.url.pathname.startsWith('/server-admin')); + // Beregn transform basert på state let sidebarTransform = $derived.by(() => { if (swiping) { @@ -130,22 +138,34 @@ - +