'use client' const ARCHITECTURE_DIAGRAM = ` ┌─────────────────────────────────────────────────────────────────────┐ │ BreakPilot Alerts Frontend │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────┐│ │ │ Dashboard │ │ Inbox │ │ Topics │ │ Profile ││ │ └──────────────┘ └──────────────┘ └──────────────┘ └──────────┘│ └───────────────────────────────┬─────────────────────────────────────┘ │ v ┌─────────────────────────────────────────────────────────────────────┐ │ Ingestion Layer │ │ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │ │ │ RSS Fetcher │ │ Email Parser │ │ APScheduler │ │ │ └───────┬────────┘ └───────┬────────┘ └───────┬────────┘ │ │ └───────────────────┼───────────────────┘ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ Deduplication (URL-Hash + SimHash) │ │ │ └──────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘ │ v ┌─────────────────────────────────────────────────────────────────────┐ │ Processing Layer │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ Rule Engine │ │ │ └──────────────────────────────────────────────────────┘ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ LLM Relevance Scorer │ │ │ │ Output: { score, decision: KEEP/DROP/REVIEW } │ │ │ └──────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘ │ v ┌─────────────────────────────────────────────────────────────────────┐ │ Action Layer │ │ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │ │ │ Email Action │ │ Webhook Action │ │ Slack Action │ │ │ └────────────────┘ └────────────────┘ └────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘ │ v ┌─────────────────────────────────────────────────────────────────────┐ │ Storage Layer │ │ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │ │ │ PostgreSQL │ │ Valkey │ │ LLM Gateway │ │ │ └────────────────┘ └────────────────┘ └────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘` const API_ENDPOINTS = [ { endpoint: '/api/alerts/inbox', method: 'GET', desc: 'Inbox Items abrufen' }, { endpoint: '/api/alerts/ingest', method: 'POST', desc: 'Manuell Alert importieren' }, { endpoint: '/api/alerts/topics', method: 'GET/POST', desc: 'Topics verwalten' }, { endpoint: '/api/alerts/rules', method: 'GET/POST', desc: 'Regeln verwalten' }, { endpoint: '/api/alerts/profile', method: 'GET/PUT', desc: 'Profil abrufen/aktualisieren' }, { endpoint: '/api/alerts/stats', method: 'GET', desc: 'Statistiken abrufen' }, ] const RULE_OPERATORS = [ { op: 'contains', desc: 'Text enthaelt', example: 'title contains "Inklusion"' }, { op: 'not_contains', desc: 'Text enthaelt nicht', example: 'title not_contains "Werbung"' }, { op: 'equals', desc: 'Exakte Uebereinstimmung', example: 'status equals "new"' }, { op: 'regex', desc: 'Regulaerer Ausdruck', example: 'title regex "\\d{4}"' }, { op: 'gt / lt', desc: 'Groesser/Kleiner', example: 'relevance_score gt 0.8' }, ] const SCORING_ROWS = [ { decision: 'KEEP', range: '0.7 - 1.0', meaning: 'Klar relevant, in Inbox anzeigen', bgCls: 'bg-green-50', textCls: 'text-green-800' }, { decision: 'REVIEW', range: '0.4 - 0.7', meaning: 'Unsicher, Nutzer entscheidet', bgCls: 'bg-amber-50', textCls: 'text-amber-800' }, { decision: 'DROP', range: '0.0 - 0.4', meaning: 'Irrelevant, automatisch archivieren', bgCls: 'bg-red-50', textCls: 'text-red-800' }, ] const CONTACTS = [ { role: 'Technischer Support', addr: 'support@breakpilot.de' }, { role: 'Datenschutzbeauftragter', addr: 'dsb@breakpilot.de' }, { role: 'Dokumentation', addr: 'docs.breakpilot.de' }, ] export function DocumentationTab() { return (
{/* Header */}

BreakPilot Alerts Agent

Version: 1.0.0 | Stand: Januar 2026 | Autor: BreakPilot Development Team

{/* Audit Box */}

Audit-Relevante Informationen

Dieses Dokument dient als technische Dokumentation fuer das Alert-Monitoring-System der BreakPilot Plattform. Es ist fuer Audits durch Bildungstraeger und Datenschutzbeauftragte konzipiert.

{/* Ziel des Systems */}

Ziel des Alert-Systems

Das System ermoeglicht automatisierte Ueberwachung von Bildungsthemen mit:

{/* Architecture Diagram */}

Systemarchitektur

{ARCHITECTURE_DIAGRAM}
{/* API Endpoints */}

API Endpoints

{API_ENDPOINTS.map((row) => ( ))}
Endpoint Methode Beschreibung
{row.endpoint} {row.method} {row.desc}
{/* Rule Engine */}

Rule Engine - Operatoren

{RULE_OPERATORS.map((row) => ( ))}
Operator Beschreibung Beispiel
{row.op} {row.desc} {row.example}
{/* Scoring */}

LLM Relevanz-Scoring

{SCORING_ROWS.map((row) => ( ))}
Entscheidung Score-Bereich Bedeutung
{row.decision} {row.range} {row.meaning}
{/* Contact */}

Kontakt & Support

{CONTACTS.map((row) => ( ))}
Kontakt Adresse
{row.role} {row.addr}
{/* Footer */}

Dokumentation erstellt: Januar 2026 | Version: 1.0.0

) }