// Response security headers: set once per request in app.ts so every response — page, // JSON, redirect, static, or error — carries them (writeHead merges with setHeader). A plugin route // may override any of them per-response via RouteResult.headers (e.g. relax the CSP to ship its own JS). // Strict default CSP for the zero-JS, server-rendered core: // - script-src 'self' : the core ships no JS; a plugin may still serve its own /public//*.js for // opt-in progressive enhancement. No 'unsafe-inline' ⇒ an injected