import { NextResponse, type NextRequest } from "next/server"; import { SITZUNGS_COOKIE, sitzungLesen } from "@/lib/sitzung"; /** * Schützt die Oberfläche: Ohne gültige Sitzung führt jeder Weg zur Anmeldung. * Die Agent-API bleibt bewusst außen vor – sie authentifiziert sich mit eigenen Tokens. * (In Next 16 heißt diese Datei `proxy.ts`, früher `middleware.ts`.) */ const OEFFENTLICH = [ "/login", "/api/auth", "/api/agent", "/api/gesundheit", "/install.sh", "/agent.sh", // Symbole und Manifest: Der Browser holt sie auch vor der Anmeldung. "/favicon.ico", "/icon.svg", "/apple-icon.png", "/icon-192.png", "/icon-512.png", "/manifest.webmanifest", ]; /** * Content-Security-Policy je Anfrage, mit frischem Nonce. * * `strict-dynamic` heißt: Nur Skripte mit diesem Nonce dürfen laufen (und was sie selbst nachladen). * Damit läuft eingeschleustes `