@wrongstack/webui 1.0.26 → 1.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AgentRosterView-udJ14GYq.js → AgentRosterView-BJ-1SQOm.js} +1 -1
- package/dist/assets/{AnalyticsDashboard-DwF-0cUA.js → AnalyticsDashboard-FYrD8BFQ.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-DpBGeZv_.js → AudienceMemoryPanel-BghMZicW.js} +1 -1
- package/dist/assets/{ChangesView-BfM0T_aS.js → ChangesView-B3uQtZGR.js} +1 -1
- package/dist/assets/{ChimeraReviewsView-Q_5C4DU1.js → ChimeraReviewsView-CBRbTHGM.js} +1 -1
- package/dist/assets/{ChronicleDashboard-D6LnZzhy.js → ChronicleDashboard-B1E-_u64.js} +1 -1
- package/dist/assets/{CodeEditor-DonrWH9u.js → CodeEditor-CbcWuMGV.js} +1 -1
- package/dist/assets/{CodeMap-Dxtc378S.js → CodeMap-WOfveRTG.js} +1 -1
- package/dist/assets/{CronJobsPanel-Cn2PQO_p.js → CronJobsPanel-DOFA5WVq.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-Mc5py-kJ.js → DeadCodeScanPanel-4ToPZX7e.js} +1 -1
- package/dist/assets/{DebugDashboard-D0LRcT4J.js → DebugDashboard-DAsNHSpG.js} +1 -1
- package/dist/assets/{DesignGalleryView-DAD-wRUc.js → DesignGalleryView-Dd5YnKhs.js} +1 -1
- package/dist/assets/{GoalView-CqeSw0tK.js → GoalView-BaDGAXuQ.js} +1 -1
- package/dist/assets/{KanbanView-V-bkFftp.js → KanbanView-CG8bVhpR.js} +1 -1
- package/dist/assets/{MailboxDetailView-CTEjap3r.js → MailboxDetailView-COxz-eEJ.js} +1 -1
- package/dist/assets/{MemoryDrawer-RCduY0FV.js → MemoryDrawer-4lDXuHCi.js} +1 -1
- package/dist/assets/{MemoryManager-B-p6-Bic.js → MemoryManager-DQlnpch1.js} +1 -1
- package/dist/assets/{ProcessMonitor-B9tpPo4r.js → ProcessMonitor-BUjfYqG3.js} +1 -1
- package/dist/assets/{PromptJournalView-DVNqlac9.js → PromptJournalView-o2dmPrwg.js} +1 -1
- package/dist/assets/{ProviderTestView-mmfpnAbZ.js → ProviderTestView-5wNbI46L.js} +1 -1
- package/dist/assets/{QueuePanel-BB9qozjm.js → QueuePanel-DP9D99DX.js} +1 -1
- package/dist/assets/{RefreshDebugView-CCCWzq29.js → RefreshDebugView-CB7_a_TI.js} +1 -1
- package/dist/assets/{RepositoryHistoryView-RQVRkkUU.js → RepositoryHistoryView-C_zpYLY6.js} +1 -1
- package/dist/assets/{RequirementIntakeView-D_JRhgzW.js → RequirementIntakeView-CahKEHJn.js} +1 -1
- package/dist/assets/{SageTabs--k2hQTvl.js → SageTabs-5Z2PR11S.js} +2 -2
- package/dist/assets/{SddFlowGraph-DKrrRXKy.js → SddFlowGraph-DSoWnlIt.js} +1 -1
- package/dist/assets/{SddHub-B5XO56oY.js → SddHub-0q2EpwYz.js} +2 -2
- package/dist/assets/{SessionInspectView-j3VJwXNi.js → SessionInspectView-CbDFR_tP.js} +1 -1
- package/dist/assets/{SessionList-CCVHBseu.js → SessionList-DhQK7JnP.js} +1 -1
- package/dist/assets/{SessionsDashboard-DsM7sXQw.js → SessionsDashboard-DNLDczSd.js} +1 -1
- package/dist/assets/{SetupScreen-DeuR8Y8S.js → SetupScreen-C-hpHQQ9.js} +1 -1
- package/dist/assets/{SkillDetailView-BeZyGIpW.js → SkillDetailView-Bir-Kdm4.js} +1 -1
- package/dist/assets/TechStackView-CJ3Abnwg.js +2 -0
- package/dist/assets/{TerminalPanel-BVJ5w-5R.js → TerminalPanel-8WHNTeQK.js} +1 -1
- package/dist/assets/{activity-BS2aW_NN.js → activity-B9WjS_Cz.js} +1 -1
- package/dist/assets/{activity-Cd0qM2Hx.js → activity-BB7AHL0U.js} +1 -1
- package/dist/assets/{activity-CR2KFruY.js → activity-Bd0XmdqX.js} +1 -1
- package/dist/assets/{activity-fI3Jy_jD.js → activity-BvmJte2K.js} +1 -1
- package/dist/assets/{activity-bBAOetvE.js → activity-DOEbDWqw.js} +1 -1
- package/dist/assets/{activity-DyXRoY2s.js → activity-beTxIN7V.js} +1 -1
- package/dist/assets/{activity-t6fUmVjo.js → activity-t-0KDhv5.js} +1 -1
- package/dist/assets/{chat-store-uzGtJfDz.js → chat-store-BMwP_sS0.js} +1 -1
- package/dist/assets/{common-DvjdaRhB.js → common-2kj0c3pG.js} +1 -1
- package/dist/assets/{common-D0QL7rwb.js → common-BAvh8XBp.js} +1 -1
- package/dist/assets/{common-opV6EoLd.js → common-CKwGvEQD.js} +1 -1
- package/dist/assets/{common-DJRPtYAt.js → common-CUd7l34J.js} +1 -1
- package/dist/assets/{common-BtyQBZBN.js → common-DmS4Wp1i.js} +1 -1
- package/dist/assets/common-PC103akE.js +1 -0
- package/dist/assets/{common-Bjl7V12m.js → common-zatZ4s-Z.js} +1 -1
- package/dist/assets/config-store-Cb4iyhGv.js +21 -0
- package/dist/assets/i18n-CzTjKT4L.js +3 -0
- package/dist/assets/{index-B4ELbNoz.js → index-Ci22AODp.js} +82 -81
- package/dist/assets/index-DfU9PQg8.css +1 -0
- package/dist/assets/{roster-ws-szSqUkqP.js → roster-ws-D-DCMdrg.js} +1 -1
- package/dist/assets/{settings-ClDQ01ie.js → settings-7W0ofid0.js} +1 -1
- package/dist/assets/{settings-BfNJfO4z.js → settings-BAArGYGW.js} +1 -1
- package/dist/assets/{settings-BMHZcBqe.js → settings-Btyr_M2v.js} +1 -1
- package/dist/assets/{settings-Dl_QM2QZ.js → settings-BwL_DVmc.js} +1 -1
- package/dist/assets/{settings-Da3EIcna.js → settings-C7ybAkyi.js} +1 -1
- package/dist/assets/{settings-BQ5J8WXE.js → settings-CgtL8eYb.js} +1 -1
- package/dist/assets/{settings-DD31lC4f.js → settings-D57Fd8Z8.js} +1 -1
- package/dist/assets/{stores-Cx52UOxM.js → stores-Svlibwo5.js} +2 -2
- package/dist/components/MessageBubble/FailedRunContinue.d.ts +7 -3
- package/dist/components/TechStackView/AnalyzeControls.d.ts +25 -0
- package/dist/components/TechStackView/RemediationTab.d.ts +20 -0
- package/dist/components/TechStackView/TrendsTab.d.ts +17 -0
- package/dist/hooks/ws-handlers/chat-handlers.d.ts +12 -0
- package/dist/hooks/ws-handlers/mcp-status-handlers.d.ts +6 -0
- package/dist/hooks/ws-handlers/techstack-handlers.d.ts +7 -0
- package/dist/index.html +7 -7
- package/dist/index.js +2639 -1487
- package/dist/stores/index.d.ts +1 -1
- package/dist/stores/local-prefs-defaults.d.ts +2 -1
- package/dist/stores/provider-quota-store.d.ts +5 -0
- package/dist/stores/techstack-store.d.ts +140 -1
- package/dist/stores/types.d.ts +5 -0
- package/dist/types/client-message.d.ts +3 -3
- package/dist/types/jev.d.ts +2 -0
- package/dist/types/server-message-mcp.d.ts +2 -0
- package/dist/types/server-message-system.d.ts +11 -0
- package/package.json +10 -9
- package/dist/assets/TechStackView-CpSMRQE0.js +0 -2
- package/dist/assets/common-DPPTV3yw.js +0 -1
- package/dist/assets/config-store-P5_updTQ.js +0 -21
- package/dist/assets/i18n-t7rIS4DB.js +0 -3
- package/dist/assets/index-qdrakcnP.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Einstellungen`,t=`Konfiguriere jeden Aspekt deines Agenten-Arbeitsbereichs`,n={browse:`Durchsuchen`,search:`Einstellung suchen…`,clearSearch:`Suche löschen`,noResults:`Keine passenden Einstellungen`,workspace:`Arbeitsbereich`,models:`Modelle und Verbindungen`,behavior:`Agentenverhalten`,system:`System und Sicherheit`,label:`Einstellungsbereiche`},r={title:`Anbietertest`,description:`Gespeicherte Anbieter und Abonnements testen; Kontingent-, Authentifizierungs-, Latenz- und Tokenlimitfehler prüfen.`,open:`Anbietertest öffnen`},i={general:`Allgemein`,provider:`Anbieter`,connection:`Verbindungen`,agent:`Agent`,execution:`Ausführung`,fallbacks:`Fallbacks`,routing:`Routing`,fleet:`Flotte`,integrations:`Integrationen`,chimera:`Chimera`,context:`Kontext`,logs:`Protokolle`,security:`Sicherheit`,display:`Anzeige`,displayDesc:`Workbench-Optik, Status-Chip, Refine-Timer und Tool-/Memory-Injection-Schalter — spiegelt den TUI-SettingsPicker.`,generalDesc:`Darstellung, Sprache und Anzeigeeinstellungen — spiegelt die TUI-Einstellungsauswahl.`,providerDesc:`API-Schlüssel, gespeicherte Anbieter und der Anbieterkatalog.`,connectionDesc:`WebSocket-Server-URL und Verbindungsstatus.`,agentDesc:`Autonomie, Prompt-Verfeinerung, Reasoning und Modell-Routing.`,executionDesc:`Iterationslimits, Beenden-Verhalten und Prozess-Schutzschalter.`,fallbacksDesc:`Modell-Fallback-Kette, Favoriten und benannte Fallback-Profile.`,routingDesc:`Modell-Routing-Matrix pro Phase und Rolle.`,fleetDesc:`Gleichzeitige Subagenten, Streaming und Vorhersage nächster Schritte.`,integrationsDesc:`HQ-Client, MCP-Server und Telegram-Benachrichtigungen.`,chimeraDesc:`Konfiguration des Code-Review-Agents nach der Sitzung.`,contextDesc:`Feature-Flags, Kontextstrategie, Komprimierer und Plugin-Steuerung.`,logsDesc:`Protokollebene, Prüfdetails, Dateisystem-Zugriffsbereich und Debug-Stream.`,securityDesc:`Brain-Entscheidungskontrolle, Schatten-Agent und Tool-Zugriff.`,fonts:`Schriften`,fontsDesc:`Schriften für Oberfläche, Chat, Editor und Terminal; Größe, Zeilenhöhe und Ligaturen.`,jev:`Jev`,jevDesc:`TypeSafe / Jev`},a={heading:`Modell`,loading:`Modelle werden geladen...`,notFound:`Keine Modelle für diesen Anbieter gefunden. Der Katalog könnte leer sein oder noch laden.`,selectProviderFirst:`Zuerst einen Anbieter wählen`,context:`{{count}}k Kontext`},o={providerHealth:{heading:`Anbieterstatus`,hint:`Welche Anbieter-/Modellpaare gesund, eingeschränkt oder blockiert sind — und warum.`,refresh:`Aktualisieren`,empty:`Noch keine Anbieter erfasst.`,summary:`{{blocked}} blockiert · {{degraded}} eingeschränkt · {{healthy}} gesund`,totalFailures:`Fehler`,rateLimits:`Ratenlimits`,state:{blocked:`Blockiert`,degraded:`Eingeschränkt`,healthy:`Gesund`},blocked:`Blockiert`,degraded:`Eingeschränkt`,consecutive:`aufeinanderfolgende Fehler`,retryNow:`Jetzt erneut versuchen`,clear:`Löschen`,allHealthy:`Alle erfassten Anbieter sind gesund.`,statSuccesses:`Erfolge`,statFailures:`Fehler`,statRateLimits:`Ratenlimits`,statConsecutive:`aufeinanderfolgend`,lastError:`Letzter Fehler`,recentErrors:`Letzte Fehler`,autoRecovery:`Automatische Wiederherstellung um`,expired:`Abgelaufen`,remainingSecs:`{{secs}} s`,remainingMins:`{{mins}} min`,remainingHours:`{{hours}} h {{mins}} min`,explainHealthy:`Antwortet normal.`,explain402:`Abrechnungslimit erreicht (402). Etwa 15 Minuten blockiert, bis das Kontingent zurückgesetzt wird.`,explain403quota:`Nutzungslimit für diesen Abrechnungszeitraum erreicht. Bis zum nächsten Zurücksetzen blockiert (ca. 15 min).`,explain403auth:`Berechtigungs-/Authentifizierungsfehler. Nicht wiederholbar — API-Schlüssel und Zugriffsrechte prüfen.`,explain429:`Ratenlimit erreicht (429). Vorübergehende Drosselung — automatische Wiederherstellung.`,explain529:`Server überlastet (529). Der Anbieter ist stark ausgelastet.`,explain5xx:`Serverfehler ({{status}}). Vorübergehendes Backend-Problem.`,explainNetwork:`Netzwerk nicht erreichbar. Internetverbindung oder Statusseite des Anbieters prüfen.`,explainTimeout:`Zeitüberschreitung der Anfrage (408). Der Anbieter hat zu langsam geantwortet.`,explainStreamHang:`Stream angehalten (599). Der Anbieter hat mitten in der Antwort aufgehört.`,explainQuota:`Kontingent aufgebraucht. Bis zum Zurücksetzen blockiert.`,explainUnknown:`Fehlertyp: {{kind}} / Status: {{status}}.`},wsUrlLabel:`WebSocket-Server-URL`,wsUrlPlaceholder:`ws://localhost:3456`,wsUrlHint:`URL des Agent-WebSocket-Servers. Der Server läuft neben dem CLI.`,startingHeading:`Den WebSocket-Server starten`,startingBody:`Für die Entwicklung ./dev.ps1 vom Repo-Root ausführen (optional zuvor WS_HOST/WS_PORT setzen). Andernfalls die WebUI über die CLI starten: wstack --webui.`,healthHeading:`Verbindungszustand`,healthHint:`Live-Bericht zu Besitz, Speicher, Warteschlange, Watcher und Latenz der Projektdienste.`,healthRefresh:`Aktualisieren`,healthLoading:`Dienste werden geprüft…`,healthUnknown:`Zustand unbekannt`,healthDisconnected:`Die WebUI-WebSocket-Verbindung ist getrennt.`,healthRestartRequired:`Backend einmal neu starten, um den Verbindungsbericht zu aktivieren.`,healthOptional:`Bei Bedarf`,endpointInvalidBadge:`Socket-Pfad zu lang`,endpointInvalidRemedy:`Der IPC-Socket-Pfad überschreitet die Längenbeschränkung dieser Plattform, daher kann der gemeinsame Daemon nicht gestartet werden. Abfragen fallen auf einen langsameren prozesslokalen Modus zurück. Abhilfe: Setzen Sie ein kürzeres TMPDIR (z. B. export TMPDIR=/tmp) und starten Sie WrongStack neu.`,healthCounts:`{{healthy}} gesund · {{attention}} beachten · {{sleeping}} inaktiv`,healthOverall:{healthy:`Erforderliche Dienste gesund`,degraded:`Erforderlicher Dienst eingeschränkt`,error:`Erforderlicher Dienst nicht verfügbar`},healthStatus:{healthy:`Gesund`,degraded:`Eingeschränkt`,offline:`Inaktiv`,unavailable:`Nicht verfügbar`,error:`Fehler`},services:{kanban:{label:`Kanban IPC`},mailbox:{label:`Mailbox IPC`}},serviceActionRestart:`Neustarten {{label}}`,webuiTransport:`WebUI-Transport`,serviceAutoRestarting:`Automatischer Neustart…`},s={removeProfileConfirm:`Auth-Profil „{{alias}}“ und alle Schlüssel entfernen?`,removeProfileBody:`Gespeicherte Zugangsdaten und Verweise auf dieses Konto im Modell-Routing werden entfernt.`,deleteKeyConfirm:`Schlüssel „{{label}}“ aus „{{alias}}“ löschen?`,addProfile:`Konto / Auth-Profil hinzufügen`,profileAlias:`Alias des Auth-Profils`,profileHint:`Jedes Konto hat einen eigenen Alias und eigene Zugangsdaten. Fallback-Ziele sind alias/modell.`,profileExists:`Das Auth-Profil „{{alias}}“ existiert bereits. Wählen Sie einen anderen Alias.`,operationTimeout:`Keine Antwort vom Server. Prüfen Sie die Verbindung und versuchen Sie es erneut.`,savedProviderCount_one:`{{count}} Anbieter`,savedProviderCount_other:`{{count}} Anbieter`,keyCount_one:`{{count}} Schlüssel konfiguriert`,keyCount_other:`{{count}} Schlüssel konfiguriert`,activeKeyCount_one:`{{count}} aktiver Schlüssel`,activeKeyCount_other:`{{count}} aktive Schlüssel`,subscriptionHeading:`Abonnement-Anmeldung`,apiKeysHeading:`API-Schlüssel-Anbieter`,apiKeysBody:`Wähle einen Anbieter aus dem Katalog und füge einen API-Schlüssel hinzu oder verwalte gespeicherte Anbieter.`,tabCatalog:`Katalog`,tabSaved:`Gespeichert ({{count}})`,searchPlaceholder:`{{count}} Anbieter durchsuchen (Name / ID / Familie)…`,loadingCatalog:`Katalog wird geladen...`,noMatch:`Keine Anbieter passen zu „{{query}}“.`,configured:`Konfiguriert`,reachable:`Erreichbar`,envVar:`ENV: {{var}}`,modelCount_one:`{{count}} Modell`,modelCount_other:`{{count}} Modelle`,keyPlaceholder:`{{name}} API-Schlüssel`,orEnv:`Oder stattdessen {{env}} in der Umgebung setzen.`,addApiKey:`API-Schlüssel hinzufügen`,manageKeys:`Verwalte deine API-Schlüssel und Anbieterkonfigurationen`,addProvider:`Anbieter hinzufügen`,addCustomHeading:`Benutzerdefinierten Anbieter hinzufügen`,localServers:`Lokale Server — zum Ausfüllen klicken:`,providerIdPlaceholder:`Anbieter-ID (z.B. my-llm-server)`,apiKeyOptionalPlaceholder:`API-Schlüssel (optional)`,noSaved:`Noch keine gespeicherten Anbieter`,noSavedHint:`Füge einen Anbieter hinzu, um loszulegen`,apiKeysLabel:`API-Schlüssel`,addKey:`Schlüssel hinzufügen`,noKeys:`Keine Schlüssel konfiguriert`,active:`Aktiv`,setActive:`Als aktiv setzen`,keyLabelPlaceholder:`Schlüsselbezeichnung (z.B. default, production)`,apiKeyPlaceholder:`API-Schlüssel`,saveKey:`Schlüssel speichern`,savedToast:`Schlüssel für {{name}} gespeichert`},c={addCustom:`Benutzerdefiniertes Modell hinzufügen`,addCustomTitle:`Benutzerdefiniertes Modell hinzufügen`,addFromCatalog:`Aus Katalog hinzufügen`,catalogSearchPlaceholder:`models.dev-Katalog durchsuchen…`,catalogSearchTitle:`models.dev-Katalog durchsuchen`,colActions:`Aktionen`,colCaps:`Fähigkeiten`,colContext:`Kontext`,colCost:`Kosten`,colModalities:`Modalitäten`,colModel:`Modell`,colOutput:`Ausgabe`,colSource:`Quelle`,editModel:`Modell bearbeiten`,emptyState:`Noch keine Modelle — aus dem Katalog hinzufügen oder ein benutzerdefiniertes Modell erstellen.`,fieldContext:`Kontextfenster`,fieldCostInput:`Eingabekosten`,fieldCostOutput:`Ausgabekosten`,fieldDescription:`Beschreibung`,fieldFamily:`Familie`,fieldInputLimit:`Eingabelimit`,fieldInputModalities:`Eingabe-Modalitäten`,fieldLastUpdated:`Zuletzt aktualisiert`,fieldName:`Name`,fieldOutput:`Max. Ausgabe`,fieldOutputModalities:`Ausgabe-Modalitäten`,fieldReleaseDate:`Veröffentlichungsdatum`,modelAdded:`{{model}} hinzugefügt`,modelRemoved:`{{model}} entfernt`,modelSaved:`{{model}} gespeichert`,noResults:`Keine Modelle gefunden`,removeModel:`Modell entfernen`,sectionCapabilities:`Fähigkeits-Flags`,sectionDates:`Daten`,sectionIdentity:`Identität`,sectionLimits:`Grenzen`,sectionModalities:`Modalitäten`,sectionPricing:`Preise (pro 1M Token, USD)`,tabForm:`Formular`,tabRawJson:`Rohes JSON`,typeToSearch:`Zum Suchen tippen…`,useModel:`{{model}} verwenden`,usingModel:`{{model}} wird verwendet`,filterPlaceholder:`Modelle filtern…`},l={status:{connected:`Verbunden`,connecting:`Verbinden`,sleeping:`Ruhend`,discovering:`Entdecken`,error:`Fehler`,stopped:`Gestoppt`,unknown:`Unbekannt`},disabled:`MCP-Server sind deaktiviert.`,wakeTitle:`Server wecken`,sleepTitle:`Server schlafen legen`,discoverTitle:`Tools entdecken`,editTitle:`Bearbeiten`,removeTitle:`Entfernen`,statusLabel:`Status:`,enabledLabel:`Aktiviert:`,yes:`Ja`,no:`Nein`,descriptionLabel:`Beschreibung:`,pidLabel:`PID:`,errorLabel:`Fehler:`,toolsLabel:`Tools ({{count}}):`,noTools:`Noch keine Tools entdeckt`,serverNameRequired:`Servername ist erforderlich`,dialogTitleEdit:`MCP-Server bearbeiten`,dialogTitleAdd:`MCP-Server hinzufügen`,dialogTitleAddCustom:`Benutzerdefinierten MCP-Server hinzufügen`,fieldName:`Name`,fieldNamePlaceholder:`z.B. github, filesystem`,fieldTransport:`Transport`,fieldUrl:`URL`,fieldCommand:`Befehl`,fieldCommandPlaceholder:`z.B. npx`,fieldArgs:`Args`,fieldArgsHint:`(leerzeichengetrennt)`,fieldArgsPlaceholder:`z.B. -y @modelcontextprotocol/server-github`,fieldEnv:`Env-Variablen`,fieldEnvHint:`(KEY=Wert, eine pro Zeile)`,fieldDescription:`Beschreibung`,fieldDescriptionPlaceholder:`GitHub-MCP-Server für Repository-Zugriff`,enableServer:`Server aktivieren`,lazyConnect:`Verzögert verbinden`,lazyConnectHint:`(erst beim ersten Tool-Aufruf starten; bei Inaktivität automatisch schlafen)`,saveChanges:`Änderungen speichern`,addServer:`Server hinzufügen`,requires:`Erfordert: {{vars}}`,added:`Hinzugefügt`,heading:`MCP-Server`,summary:`{{connected}} verbunden · {{sleeping}} ruhend · {{total}} gesamt`,addCustom:`Benutzerdefiniert`,tabRecommended:`Empfohlen`,tabServers:`Server`,tabAddCustom:`Benutzerdefiniert`,recommendedBody:`One-Click-Hinzufügen für beliebte MCP-Server. Klicke auf Hinzufügen, um die Konfiguration vorzuausfüllen, und bestätige dann. Server mit Anmeldeinformationen benötigen ihre Env-Variablen vor der Nutzung.`,loadingServers:`Server werden geladen...`,noServers:`Keine MCP-Server konfiguriert`,noServersHint:`Wechsle zum Tab Empfohlen, um beliebte Server hinzuzufügen, oder Benutzerdefiniert für eigene.`,addCustomBody:`Konfiguriere einen benutzerdefinierten MCP-Server mit stdio-, SSE- oder HTTP-Transport.`,addCustomBodyHint:`Für beliebte Server nutze stattdessen den Tab Empfohlen — alles ist vorkonfiguriert.`,removeConfirmTitle:`Server „{{name}}“ entfernen?`,removeConfirmBody:`Dies entfernt den MCP-Server aus deiner Konfiguration.`,toastAdded:`Server „{{name}}“ hinzugefügt`,toastRemoved:`Server „{{name}}“ entfernt`,toastDiscovered:`{{count}} Tools von „{{name}}“ entdeckt`,toastSleeping:`Server „{{name}}“ ruht jetzt`,toastConnected:`Server „{{name}}“ verbunden`,toastReconnected:`Server „{{name}}“ neu verbunden`,toastDisconnected:`Server „{{name}}“ getrennt: {{reason}}`,toastError:`Server „{{name}}“ Fehler: {{error}}`,authRequired:`Anmeldung erforderlich`,authorized:`Autorisiert`,authorizeTitle:`Mit OAuth autorisieren`,authSignOutTitle:`OAuth-Anmeldedaten entfernen`,authSignOutBody:`Gespeicherte OAuth-Anmeldedaten für „{{name}}“ entfernen? Sie müssen sich erneut autorisieren.`,authPromptTitle:`Anmeldung bei „{{name}}“ abschließen`,authPromptBody:`Öffnen Sie die Autorisierungsseite und bestätigen Sie den Zugriff. Dieses Panel aktualisiert sich, sobald der Anbieter zurückleitet.`,authPromptOpen:`Autorisierungsseite öffnen`,toastAuthorized:`„{{name}}“ autorisiert`,toastAuthFailed:`„{{name}}“ benötigt eine Autorisierung{{suffix}}`},u={title:`Gespeicherte Allowlist löschen?`,body_one:`Dies entfernt das angeheftete Modell für {{provider}}. Die Modellauswahl fällt auf den models.dev-Katalog zurück.`,body_other:`Dies entfernt die {{count}} angehefteten Modelle für {{provider}}. Die Modellauswahl fällt auf den models.dev-Katalog zurück.`,undoHint:`Sie können dies 8 Sekunden nach dem Bestätigen rückgängig machen.`,keepTitle:`Allowlist behalten (Esc)`,clearTitle:`Allowlist löschen (Enter)`,clear:`Allowlist löschen`},d={termsWarning:`Mit einem Abonnement statt einem API-Schlüssel anmelden. Ein Abonnement außerhalb seines offiziellen Clients zu nutzen, kann die Nutzungsbedingungen des Anbieters verletzen — Ihr Konto könnte ratenlimitiert oder gesperrt werden. Ein API-Schlüssel ist der sanktionierte Weg für programmatische Nutzung.`,signIn:`Anmelden`,waitingBrowser:`Warte auf Ihre Anmeldung…`,openSignIn:`Anmeldeseite öffnen`,pasteLoopbackBusy:`Loopback-Port belegt — Redirect-URL einfügen`,pasteCantReach:`Browser erreicht diesen Server nicht? Redirect-URL einfügen`,submit:`Absenden`,enterCode:`Diesen Code auf der Verifizierungsseite eingeben:`,openVerification:`Verifizierungsseite öffnen`,waitingCode:`Warte auf Autorisierung…`,exchanging:`Tokens werden ausgetauscht…`,fetchingModels:`Modelle werden geladen…`,signedIn:`Angemeldet.`,signedInToast:`Angemeldet — {{provider}}`,signInFailed:`Anmeldung fehlgeschlagen`,accountCount_one:`{{count}} Konto gespeichert`,accountCount_other:`{{count}} Konten gespeichert`,active:`Aktiv`,inactive:`Inaktiv`,retry:`Erneut`,retryLogin:`Dieses Konto erneut authentifizieren`,newAccount:`Neues Konto`,aliasPlaceholder:`z.B. {{default}}`},f={showThinkingLabel:`Thinking-Protokolle anzeigen`,showThinkingHint:`Abgeschlossene Reasoning-Blöcke im Chatverlauf anzeigen.`,groupToolCallsLabel:`Tool-Aufrufe gruppieren`,groupToolCallsHint:`Aufeinanderfolgende Tool-Aufrufe in einem Chip zusammenfassen.`,autoCollapseInputLabel:`Composer unter Verlauf einklappen`,autoCollapseInputHint:`Wenn eine Sitzung mit Nachrichten geladen wird, den Composer unter dem Verlauf einklappen. Standardmäßig aus — der Composer bleibt ausgeklappt, bis du ihn manuell einklappst.`,themeHeading:`Design`,themeLight:`Hell`,themeDark:`Dunkel`,themeSystem:`System`,themeSystemHint:`System folgt deiner Hell-/Dunkel-Einstellung auf Betriebssystemebene.`,preferencesHeading:`Einstellungen`,compactDensity:`Kompakte Dichte`,compactDensityHint:`Engerer Abstand im gesamten Chat.`,soundOnComplete:`Ton bei Fertigstellung`,soundOnCompleteHint:`Spielt einen sanften Ton, wenn ein Durchlauf abgeschlossen ist.`,titleAnimation:`Titelanimation`,titleAnimationHint:`Animierten Terminal-Titel im CLI anzeigen.`,thinkingWordLabel:`Denkwort (CLI/TUI)`,thinkingWordHint:`Wort im TUI-Status-Chip. Ein einzelnes kurzes Wort.`,statuslineModeLabel:`Statuszeilen-Modus (CLI/TUI)`,statuslineModeHint:`Detailgrad der TUI-Statuszeile.`,statuslineModeDetailed:`Detailliert`,statuslineModeMinimum:`Minimal`,statuslineModeNoColor:`Ohne Farbe`,animationStyleLabel:`Animationsstil (CLI/TUI)`,animationStyleHint:`Animation für den TUI-Arbeitsstatus-Chip.`,animationStyleRainbow:`Regenbogen`,animationStyleWave:`Welle`,animationStylePulse:`Puls`,animationStyleDots:`Punkte`,animationStyleBreathe:`Atmen`,animationStyleStatic:`Statisch`,animationStyleCycle:`Zyklus`,languageHeading:`Sprache`,languageLabel:`Oberflächensprache`,languageHint:`Ändert nur den Oberflächentext. Prompts, Skills und Modellausgaben bleiben unberührt.`,paletteHeading:`Farbpalette`,paletteSwitcherTitle:`Farbpalette`,paletteHint:`Wähle die Hauptfarbe (und ihre Ableitungen). Neutrale Flächen bleiben gleich.`,paletteSignal:`Signal`,paletteEmeraldGold:`Smaragd & Gold`,paletteBlueNavy:`Marineblau`,palettePurplePink:`Violett & Pink`,paletteCyanTeal:`Cyan & Türkis`,paletteRoseCopper:`Rosa & Kupfer`,paletteIndigoAmber:`Indigo & Bernstein`,paletteSageSand:`Salbei & Sand`,paletteSlateViolet:`Schiefer & Violett`,paletteCoralMint:`Koralle & Minze`,paletteArcticEmber:`Arktis & Glut`,paletteMossRust:`Moos & Rost`},p={autonomyHeading:`Autonomie & Verhalten`,autonomyModeLabel:`Autonomie-Modus`,autonomyModeHint:`Wie unabhängig der Agent zwischen Zügen fortfährt.`,autonomyModeOff:`Aus — volle manuelle Kontrolle`,autonomyModeSuggest:`Vorschlagen — schlägt nächste Schritte vor`,autonomyModeAuto:`Auto — kurze Bestätigungsverzögerung`,autonomyModeEternal:`Eternal — autonom bis Ziel erreicht`,autonomyModeEternalParallel:`Eternal Parallel — Multi-Agent-Flotte`,autoProceedDelayLabel:`Auto-Fortsetzen-Verzögerung`,autoProceedDelayHint:`Millisekunden bevor der Agent im Auto-Modus fortfährt. 0 = sofort.`,yoloLabel:`YOLO-Modus`,yoloHint:`Werkzeugaufrufe ohne Rueckfrage ausfuehren - ausser den unten aufgefuehrten Schadensarten.`,yoloConfirmHeading:`Trotzdem fragen bei`,yoloConfirmIntro:`YOLO fuehrt alles andere unbeaufsichtigt aus. Bei diesen Schadensarten haelt es an und fragt zuerst nach.`,yoloConfirmLockedNote:`Diese beiden fragen immer. Sie schreiben die Dateien, die darueber entscheiden, ob ueberhaupt gefragt wird - sie abzuschalten hiesse, den Agenten sein eigenes Freigabesystem abschalten zu lassen.`,yoloKindLocked:`fragt immer`,yoloKind:{"disk-wipe":{label:`Datentraeger loeschen`,hint:`mkfs, dd auf ein Rohgeraet, format C:, Fork-Bombe`},"system-halt":{label:`Herunterfahren oder neu starten`,hint:`shutdown, reboot`},"delete-outside":{label:`Ausserhalb des Projekts loeschen`,hint:`rekursives Loeschen, das das Projekt verlaesst oder ein System-/Home-Verzeichnis trifft`},"git-history":{label:`Git-Historie umschreiben`,hint:`reset --hard, clean -f, push --force, filter-branch`},publish:{label:`Veroeffentlichen oder ausrollen`,hint:`npm publish, docker push, kubectl delete namespace`},"download-and-run":{label:`Heruntergeladenen Code ausfuehren`,hint:`curl | sh und Inline-Payloads, die laden und ausfuehren`},"bulk-delete":{label:`Massenhaft loeschen`,hint:`find -exec rm, Inline-rmSync ueber viele Pfade`},"agent-state":{label:`WrongStacks eigenen Zustand schreiben`,hint:`config.json, trust.json, auth.json`},"credential-bind":{label:`API-Schluessel an einen Endpunkt binden`,hint:`einen bekannten Schluessel an eine Anbieter-URL haengen`}},refineHeading:`Prompt-Verfeinerung`,enableRefineLabel:`Verfeinerung aktivieren`,enableRefineHint:`Prompts vor dem Senden umschreiben — klarere Anweisungen, bessere Ergebnisse.`,refineDelayLabel:`Verfeinerungs-Verzögerung`,refineDelayHint:`Countdown bevor der verfeinerte Prompt automatisch gesendet wird.`,refineLanguageLabel:`Verfeinerungs-Sprache`,refineLanguageHint:`Ihre Sprache behalten oder für das Modell ins Englische übersetzen.`,refineLanguageOriginal:`Original — Sprache behalten`,refineLanguageEnglish:`Englisch — ins Englische übersetzen`,refinerProviderLabel:`Verfeinerungs-Provider`,refinerProviderHint:`Provider-ID für die Zielverfeinerung. Leer = Provider der Sitzung verwenden.`,refinerProviderDefault:`Sitzungs-Provider`,refinerModelLabel:`Verfeinerungs-Modell`,refinerModelHint:`Modell-ID für die Zielverfeinerung. Leer = Modell der Sitzung verwenden.`,refinerModelDefault:`Sitzungsmodell`,refinerProfileLabel:`Fallback-Profil für die Verfeinerung`,refinerProfileHint:`Benanntes Fallback-Profil für die Zielverfeinerung. Überschreibt Provider und Modell.`,refinerProfileDefault:`Keines — Provider und Modell oder Sitzungsstandards verwenden`,reasoningHeading:`Reasoning & Cache`,reasoningModeLabel:`Reasoning-Modus`,reasoningModeHint:`Steuern, wie das Modell Extended Thinking nutzt. Auto = Anbieter-Standard.`,reasoningModeAuto:`Auto — Anbieter-Standard`,reasoningModeOn:`An — Thinking erzwingen`,reasoningModeOff:`Aus — Thinking deaktivieren`,reasoningEffortLabel:`Reasoning-Aufwand`,reasoningEffortAuto:`Auto (allgemein)`,reasoningEffortAutoHint:`Projekteinstellung: {{value}}`,reasoningEffortHint:`Wie viel Compute das Modell fürs Denken aufwendet. Nur gesendet, wenn das Modell es unterstützt.`,reasoningEffortNone:`Keine`,reasoningEffortMinimal:`Minimal`,reasoningEffortLow:`Niedrig`,reasoningEffortMedium:`Mittel`,reasoningEffortHigh:`Hoch`,reasoningEffortXhigh:`Sehr hoch`,reasoningEffortMax:`Max`,preserveThinkingLabel:`Thinking bewahren`,preserveThinkingHint:`Reasoning-Blöcke über Züge hinweg für Kontextkontinuität behalten.`,cacheTtlLabel:`Cache-TTL`,cacheTtlHint:`Prompt-Cache-Time-to-Live. 1h kostet mehr beim Schreiben, spart aber bei wiederholten Lesevorgängen (Anthropic).`,cacheTtlDefault:`Standard — Anbieter-Standard`,cacheTtl5m:`5 Minuten`,cacheTtl1h:`1 Stunde`,capsHint:`Verwenden Sie wstack models caps um zu prüfen, was das aktuelle Modell unterstützt. Nicht unterstützte Einstellungen werden pro Anfrage still weggelassen.`,routingHeading:`Modell-Routing`,routingRouteKey:`Modell-Routen-Schlüssel`,routingPhasesGroup:`Phasen`,routingRolesGroup:`{{label}} Rollen`,routingCustomGroup:`Benutzerdefinierte bestehende Routen`,routingTargetAria:`Ziel der Modellroute`,routingTargetEmpty:`— Route löschen —`,routingTargetProfilesGroup:`Fallback-Profile`,routingTargetModelsGroup:`Modelle (Provider/Modell)`,routingSet:`Setzen`,routingReasoningModeAria:`Reasoning-Modus neue Route`,routingReasoningEffortAria:`Reasoning-Aufwand neue Route`,routingReasoningPreserveAria:`Reasoning-Bewahrung neue Route`,routingReasoningModeFor:`Reasoning-Modus für {{key}}`,routingReasoningEffortFor:`Reasoning-Aufwand für {{key}}`,routingReasoningPreserveFor:`Reasoning-Bewahrung für {{key}}`,noRoutes:`Noch keine Modell-Routen.`,leaderModel:`Leader-Modell`,autonomyDelayMsLabel:`Verzögerung der automatischen Fortsetzung`,autonomyDelayMsHint:`Millisekunden, bevor der Agent im Auto-Modus automatisch fortfährt. 0 = sofort.`,refineCountdownLabel:`Verfeinerungs-Countdown`,refineCountdownHint:`Gnadenfrist, bevor der verfeinerte Prompt automatisch gesendet wird (Millisekunden).`,reasoningEffortModelSet:`Stufen des aktiven Modells`,reasoningEffortUnsupported:`Von diesem Modell nicht angeboten (unterstützt: {{levels}}) — die Einstellung wird weggelassen.`},m={heading:`Ausführung`,maxIterationsLabel:`Max. Iterationen pro Run`,unlimitedLabel:`Unbegrenzt`,maxIterationsHint:`Feste Obergrenze für LLM-Züge pro agent.run().`,autoProceedMaxIterationsLabel:`Auto-Fortsetzen max. Iterationen`,autoProceedMaxIterationsHint:`Auto-Fortsetzen nach N Iterationen stoppen. 0 = unbegrenzt.`,confirmExitLabel:`Vor Exit bestätigen`,confirmExitHint:`Erstes Ctrl+C bricht Arbeit ab, zweites bestätigt Exit.`,chimeLabel:`Chime bei Fertigstellung`,chimeHint:`Terminal-Glocke, wenn ein Agent-Run endet.`,breakerLabel:`Prozess-Schutzschalter`,breakerHint:`Sperrt bash/exec nach wiederholten Fehlern; beim Auslösen startet der Kill/Reset-Countdown.`,breakerTimeoutLabel:`Kill/Reset-Timeout des Schutzschalters`,breakerTimeoutHint:`Verzögerung bis zum automatischen Kill/Reset nach dem Auslösen. 0 = manuelle Wiederherstellung.`,availabilityHeading:`Verfügbarkeitskalender für Anbieter/Modelle`,availabilityHint:`Verhindert, dass autonome und nächtliche Ausführungen ausgewählte Anbieter oder Modelle in wiederkehrenden Fenstern verwenden.`},h={heading:`Fallback-/Round-robin-Modelle`,body:`Wenn das aktive Modell rate-limited (429/529), 5xx-Fehler oder hängt — nach eigenen Retries — rotiert der Agent zum nächsten Modell dieser Kette. Auch Standard für SDD-Worker-Subagents.`,autoFallbackLabel:`Auto-Fallback`,autoFallbackHint:`Wenn die Kette oben leer ist, automatisch von Ihren gespeicherten Anbietern ableiten.`,favoritesOnlyLabel:`Nur Favoriten`,favoritesOnlyHint:`Wenn Auto-Fallback eine Kette ableitet, auf Ihre Favoriten beschränken.`,profilesHeading:`Fallback-/Round-robin-Profile`,addProfile:`Hinzufügen`,noProfiles:`Noch keine benannten Fallback-Profile.`,createDefault:`Standard aus aktivem Modell erstellen`,useChain:`Kette verwenden`,setLeader:`Leader setzen`,profileEmpty:`Profil ist leer.`,favoritesHeading:`Favoriten-Modelle`,favoritesEmpty:`Favoriten werden zuerst angezeigt und können Auto-Fallback einschränken.`,addModelToProfile:`Modell zum Profil hinzufügen…`,addFavoriteModel:`Favoritenmodell hinzufügen…`,inactive:`inaktiv`},g={heading:`Flotte & Streaming`,fleetChatVerbosityLabel:`Flotten-Events streamen`,fleetChatVerbosityHint:`Live-Subagent-Aktivität im Flotten-Panel zeigen.`,maxConcurrentLabel:`Max. gleichzeitige Subagents`,maxConcurrentHint:`Maximale Anzahl gleichzeitig laufender Subagents.`,nextPredictionLabel:`Next-Step-Vorhersage`,nextPredictionHint:`Nach Abschluss eines Zugs wahrscheinliche nächste Schritte vorhersagen.`,nextStepsToolLabel:`Nextsteps-Tool`,nextStepsToolHint:`Der Agent kann seine Folgevorschläge per Tool-Aufruf hinterlegen, statt den Block selbst zu schreiben. Gilt ab der nächsten Sitzung.`},_={hqHeading:`HQ-Client`,hqPublishingLabel:`HQ-Veröffentlichung`,hqPublishingHint:`Diese WebUI/Client-Sitzung bei WrongStack HQ veröffentlichen. Gleichmaschinige Clients können lokales HQ-Auth auto-entdecken; Remote-Clients nutzen untenstehende URL/Token.`,hqUrlLabel:`HQ-URL`,hqUrlHint:`Für Auto-Discovery auf gleicher Maschine leer lassen.`,hqTokenLabel:`HQ-Client-Token`,hqRawContentLabel:`Rohe HQ-Inhalte`,hqRawContentHint:`Rohe Inhaltsvorschauen statt geschwärzter Vorschauen an HQ senden.`,wrongProxyHeading:`WrongProxy / WrongTrace`,wrongProxyEnabledLabel:`Basis-URLs über den lokalen Proxy leiten`,wrongProxyEnabledHint:`Wenn aktiviert, wird die Basis-URL jedes Anbieters über den konfigurierten Proxy umgeschrieben (Standard http://localhost:3444/proxy/<host><path>). openai-codex ist ausgeschlossen — es kommuniziert direkt mit dem ChatGPT-Backend über ein OAuth-Token.`,wrongProxyUrlLabel:`Proxy-URL`,wrongProxyUrlHint:`Wo der lokale Proxy-Daemon lauscht. Das System prüft periodisch <url>/api/health; ein nicht erreichbarer Daemon deaktiviert die Umschreibung, ohne bei jedem Tastendruck erneut zu versuchen.`,wrongProxyChangesApply:`Änderungen gelten sofort für nachfolgende Anfragen — kein Neustart erforderlich.`,telegramHeading:`Telegram-Benachrichtigungen`,telegramSessionEndLabel:`Sitzungsende`,telegramSessionEndHint:`Zusammenfassung senden, wenn eine Sitzung endet.`,telegramDelegateLabel:`Delegat fertig`,telegramDelegateHint:`Vermenschlichte Notiz senden, wenn ein Subagent fertig ist.`,telegramLongToolLabel:`Langlaufende Tools`,telegramLongToolHint:`Benachrichtigen, wenn ein Tool {{ms}}ms überschreitet. 0 zum Deaktivieren.`,telegramChangesApply:`Änderungen werden sofort angewendet.`,telegramNotConfigured:`Telegram ist nicht konfiguriert. Führen Sie /telegram-setup in der CLI aus, um zuerst einen Bot zu verbinden.`,heading:`Integrationen`,disabledHint:`Aktivieren Sie die Funktion im Kontext-Tab, um diesen Bereich zu nutzen.`},v={chimeraDedicatedHeading:`Chimera — Code-Review nach der Sitzung`,chimeraDedicatedHint:`Automatisierte Code-Qualitätsprüfung nach jeder Agentensitzung.`,chimeraSectionEnabled:`Post-Session-Review (Chimera)`,chimeraSectionEnabledHint:`Nach jeder Iteration einen Code-Review-Agenten ausführen.`,chimeraProviderLabel:`Chimera-Anbieter`,chimeraProviderHint:`Anbieter für den Review-Agenten. Aus konfigurierten Anbietern wählen.`,chimeraProviderSessionDefault:`Sitzungsstandard`,chimeraModelLabel:`Modell`,chimeraModelSessionDefault:`Sitzungsstandard`,chimeraModelHint:`Modell für den Review-Agenten. Erfordert zuerst einen Anbieter.`,chimeraMaxFilesLabel:`Max. Dateien pro Review`,chimeraMaxFilesHint:`Maximale Anzahl geänderter Dateien pro Review-Aufruf.`,chimeraAutoFixLabel:`Auto-Fix-Modus`,chimeraAutoFixHint:`Ob der Review-Agent Funde automatisch korrigieren soll.`,chimeraAutoFixOff:`Aus — nur Review`,chimeraAutoFixAsk:`Fragen — vor Anwendung bestätigen`,chimeraAutoFixAuto:`Auto — ohne Bestätigung anwenden`,autoReviewCascadeOnLabel:`Kaskade ab`,autoReviewCascadeOnHint:`Wenn ein Review Funde dieses oder höheren Schweregrads findet, Folgeagenten starten.`,autoReviewCascadeOnOff:`Aus`,autoReviewCascadeOnHigh:`Hoch oder höher`,autoReviewCascadeOnCritical:`Nur kritisch`,chimeraPickModel:`Anbieter/Modell für Chimera wählen`,chimeraPickModelHint:`Anbieter und Modell für das Post-Session-Code-Review wählen.`,autoReviewSectionEnabled:`Mid-Session-Review (Auto-Review)`,autoReviewSectionEnabledHint:`Bei jeder Dateiänderung während der Sitzung einen Review-Agenten ausführen.`,autoReviewFallbackProfileLabel:`Fallback-/Round-robin-Profil`,autoReviewFallbackProfileHint:`Benanntes Modellprofil für Auto-Review; liefert Fallback-Pool und Modelle für Round-robin oder Zufallsauswahl.`,autoReviewFallbackProfileNone:`Keines — Anbieter+Modell oder Sitzungsstandard`,autoReviewModelSelectionLabel:`Profilauswahl`,autoReviewModelSelectionHint:`Wählt das nächste Profilmodell der Reihe nach oder ein zufälliges Startmodell pro Review.`,autoReviewModelSelectionRoundRobin:`Round-robin — in Profilreihenfolge`,autoReviewModelSelectionRandom:`Zufällig — aus dem Profil wählen`,autoReviewFallbackModelsLabel:`Fallback-/Round-robin-Modelle`,autoReviewFallbackModelsEmpty:`Keine Fallback-/Round-robin-Modelle konfiguriert`,autoReviewFallbackModelsHint:`Modelle aus Profil oder globaler Kette; sie bilden Auswahlpool und Wiederholungskette.`,autoReviewModelLabel:`Modell`,autoReviewModelHint:`Modell für Auto-Review-Agent. Erfordert zuerst einen Anbieter.`,autoReviewDebounceLabel:`Entprellintervall (ms)`,autoReviewDebounceHint:`Mindestabstand zwischen Reviews nach Dateiänderung.`,autoReviewMaxFilesLabel:`Max. Dateien pro Batch`,autoReviewMaxFilesHint:`Dateien pro Auto-Review-Aufruf.`,autoReviewMaxConcurrentLabel:`Max. gleichzeitige Reviews`,autoReviewMaxConcurrentHint:`Limit für parallele Review-Subagents.`,autoReviewCascadeLabel:`Kaskade bei`,autoReviewCascadeHint:`Schwellwert für Folgeagenten — startet Sicherheits- und Bug-Scanner.`,autoReviewCascadeOff:`Aus — keine Kaskade`,autoReviewCascadeCritical:`Kritisch — nur kritische Funde`,autoReviewCascadeHigh:`Hoch — kritische oder hohe Funde`,autoReviewPickModel:`Anbieter/Modell für Auto-Review wählen`,autoReviewPickModelHint:`Anbieter/Modell oder Fallback-Profil für Auto-Review wählen.`,pluginsPerPluginHint:`Einzelne Plugins aktivieren oder deaktivieren. Änderungen werden mit der nächsten Sitzung wirksam.`},y={flagsHeading:`Feature-Flags`,mcpLabel:`MCP-Server`,mcpHint:`Model Context Protocol-Integrationen aktivieren.`,pluginsLabel:`Plugins`,pluginsHint:`Vom Nutzer installierte Plugins laden und ausführen.`,memoryLabel:`Speicher`,memoryHint:`Fakten sitzungsübergreifend speichern und abrufen.`,skillsLabel:`Skills`,skillsHint:`Domänenspezifische Skill-Prompts laden.`,modelsRegistryLabel:`Modell-Registry`,modelsRegistryHint:`Das models.dev-Katalog zur Anbieter-Entdeckung nutzen.`,indexOnStartLabel:`Beim Start indizieren`,indexOnStartHint:`Symbol-Index der Codebasis beim Sitzungsstart aufbauen.`,pluginsPerPluginHeading:`🔌 Pro-Plugin-Steuerung`,pluginSearch:`Plugins suchen`,pluginEnabledOnly:`Nur aktivierte`,pluginNoMatches:`Keine Plugins entsprechen diesem Filter.`,pluginsPerPluginHint:`Einzelne Plugins aktivieren oder deaktivieren. Änderungen werden mit der nächsten Sitzung wirksam.`,pluginChimera:`Chimera — Code-Review nach Sitzungsende`,pluginSkills:`Skills — Skill-Bibliothek & -Erstellung`,pluginPrompts:`Prompts — Prompt-Bibliothek & Generierung`,pluginCostTracker:`Cost Tracker — Token- & Kostenverfolgung`,pluginTelegram:`Telegram — Benachrichtigungsbot`,pluginErrorLens:`Error Lens — Fehlerdiagnose`,pluginSecretScanner:`Secret Scanner — Zugangsdaten-Erkennung`,pluginLintGate:`Lint Gate — Lint vor Iteration`,pluginDiffSummary:`Diff Summary — kompakte Diffs`,pluginDepGuard:`Dep Guard — Abhängigkeitsregeln`,pluginTypeGate:`Type Gate — Typecheck vor Iteration`,pluginInjectionShield:`Injection Shield — Prompt-Injection`,pluginPromptFirewall:`Prompt Firewall — Eingabefilterung`,pluginTokenBudget:`Token Budget — Token-Limits`,pluginLoopBreaker:`Loop Breaker — Erkennung außer Kontrolle`,heading:`Kontext & Debug`,autoCompactLabel:`Kontext auto-kompaktieren`,autoCompactHint:`Kontextfenster in der Nähe von Limits automatisch kürzen.`,compactorStrategyLabel:`Compaktor-Strategie`,compactorStrategyHint:`Wie der Kontext komprimiert wird, wenn er zu groß wird.`,compactorStrategyHybrid:`Hybrid — schnelle Regeln (Standard)`,compactorStrategyIntelligent:`Intelligent — LLM-Zusammenfassung`,compactorStrategySelective:`Selektiv — LLM-gesteuerte Auswahl`,contextModeLabel:`Kontext-Modus`,contextModeHint:`Kontextfenster-Richtlinie — balanced ist Standard.`,contextModeBalanced:`Ausgewogen — normale Kontextnutzung`,contextModeFrugal:`Sparsam — konservative Token-Nutzung`,contextModeDeep:`Tief — größerer Kontext für komplexe Aufgaben`,tokenSavingLabel:`Token-Sparmodus`,tokenSavingHint:`Steuert direkte Tool-Schemas und die System-Prompt-Größe der nächsten Sitzung.`,tokenSavingAuto:`Auto — Prompt an das Modellfenster anpassen`,tokenSavingOff:`Aus — kein Token-Sparen`,tokenSavingMinimal:`Minimal — grundlegende Optimierung`,tokenSavingLight:`Leicht — moderate Reduktion`,tokenSavingMedium:`Mittel — erhebliche Einsparungen`,tokenSavingAggressive:`Aggressiv — kleinste direkte Oberfläche und Prompt`},b={logLevelLabel:`Log-Level`,logLevelHint:`Mindest-Schweregrad für serverseitiges Logging.`,logLevelDebug:`Debug — alles`,logLevelInfo:`Info — normaler Ablauf`,logLevelWarn:`Warn — nur Probleme`,logLevelError:`Error — nur Fehler`,auditLevelLabel:`Audit-Level`,auditLevelHint:`Detaillierungsgrad für Sitzungs-Audit-Logs.`,auditLevelMinimal:`Minimal — nur Fehler`,auditLevelStandard:`Standard — Tool-Aufrufe + Fehler`,auditLevelFull:`Voll — jedes Ereignis (große Logs)`,fsAccessLabel:`Dateisystemzugriff`,fsAccessHint:`Geltungsbereich der Datei-Tools. Gilt ab der nächsten Sitzung.`,fsAccessUnrestricted:`Uneingeschränkt — beliebiger Pfad`,fsAccessProject:`Projekt — auf das Projektverzeichnis beschränkt`,debugStreamLabel:`Debug-Stream`,debugStreamHint:`Roher SSE-Hexdump auf stderr des Servers zum Provider-Debugging.`,heading:`Logs & Debug`},x={heading:`Sicherheit & Überwachung`,brainHeading:`🧠 Brain – Entscheidungssteuerung`,brainHint:`Entscheidungsmodelle, Council, Eskalation und Risikoobergrenze – sofort wirksam, in der globalen Konfiguration gespeichert.`,shadowHeading:`👁 Schatten-Agent – Flottenmonitor`,shadowHint:`Der Schatten-Agent überwacht alle Flottenagenten, verfolgt ihre Aufgaben und erkennt Anomalien.`,toolsHeading:`🔧 Tool Access Control`,toolsHint:`Einzelne Tools aktivieren oder deaktivieren. Verändernde Tools sind bernsteinfarben markiert.`,breakerHeading:`Prozess-Schutzschalter`,breakerHint:`bash/exec nach wiederholten Fehlern sperren; ein Auslösen startet den Kill-/Reset-Countdown.`},S={switchingTo:`Wechseln zu {{provider}} / {{model}}…`,switching:`Modell wird gewechselt…`,switchingToTarget:`Wechsel zu {{target}}…`,previousModel:`vorheriges Modell`,modelSwitchedNextRequest:`Modell gewechselt: {{from}} → {{to}}. Aktiv für die nächste LLM-Anfrage.`,modelSwitchedRunActive:`Modell gewechselt: {{from}} → {{to}}. Aktiv für die nächste LLM-Anfrage; der aktuelle Lauf wird fortgesetzt und nicht neu gestartet.`,fallbackExists:`Fallback-Profil "{{name}}" existiert bereits`,selectProviderModelFirst:`Wählen Sie zuerst einen Anbieter und ein Modell`,defaultProfileCreated:`Standard-Fallback-Profil erstellt`,profileEmpty:`Fallback-Profil "{{name}}" ist leer`,leaderSetFrom:`Leader aus {{name}} gesetzt`,modelSwitchTimeout:`Zeitüberschreitung beim Modellwechsel. Bitte erneut versuchen.`},C={workbenchHeading:`Workbench-Optik`,workbenchHint:`Sichtbarkeit der Workbench-Oberflächen im Chat umschalten.`,showModelReasoningLabel:`Modell-Reasoning anzeigen`,showModelReasoningHint:`LLM-Reasoning/Thinking-Blöcke im Chatverlauf rendern (TUI-Parität).`,showAgentSwarmPanelLabel:`Agent-Schwarm-Panel`,showAgentSwarmPanelHint:`Steuert, wo das Agent-Schwarm-Panel (Fleet + Mission Queue) angezeigt wird.`,swarmPanelBottom:`Unteres Panel`,swarmPanelSidebar:`Rechte Seitenleiste`,swarmPanelOff:`Aus`,titleAnimationLabel:`Titelanimation`,titleAnimationHint:`Terminal-/Tab-Titel mit Laufstatus animieren (TUI-Parität).`,keyboardShortcutsLabel:`Tastenkürzel`,keyboardShortcutsHint:`Globale Tastenkürzel (Strg+K, Alt+1..4, usw.) aktivieren. Standardmäßig deaktiviert.`,statusChipHeading:`Status-Chip & Statuszeile`,statusChipHint:`Visueller Stil für die TUI/CLI-Statuszeile und den Arbeits-Chip.`,thinkingWordLabel:`Denkwort`,thinkingWordHint:`Einzelnes kurzes Wort, das im TUI-Status-Chip angezeigt wird, während der Agent arbeitet.`,thinkingWordInvalid:`Ein Wort mit höchstens 16 Buchstaben, Ziffern, Unterstrichen oder Bindestrichen eingeben.`,statuslineModeLabel:`Statuszeilen-Modus`,statuslineModeHint:`Detailgrad der TUI-Statusleiste.`,statuslineModeMinimum:`Minimal`,statuslineModeDetailed:`Detailliert`,statuslineModeNoColor:`Ohne Farbe`,animationStyleLabel:`Animationsstil`,animationStyleHint:`Animation für den TUI-Arbeits-Chip.`,animationStyleRainbow:`Regenbogen`,animationStyleWave:`Welle`,animationStylePulse:`Puls`,animationStyleDots:`Punkte`,animationStyleBreathe:`Atmen`,animationStyleStatic:`Statisch`,animationStyleCycle:`Wechselnd`,refineHeading:`Refine-Countdown & Diffs`,refineHint:`Grace-Countdown vor dem Refiner und Mindestanzahl von Dateien für die Multi-Diff-Fußzeile konfigurieren.`,preRefineSecondsLabel:`Vor-Refine-Countdown`,preRefineSecondsHint:`Wartezeit vor dem Refiner in Sekunden. 0 = Countdown überspringen und sofort verfeinern.`,preRefineSecondsPresets:`Voreinstellungen: {{presets}} Sekunden (0 = aus).`,multiDiffSummaryLabel:`Multi-Diff-Zusammenfassung`,multiDiffSummaryHint:`Mindestanzahl von Dateien, ab der die aggregierte 'N Dateien · +X -Y' Fußzeile über den Einzelblöcken erscheint.`,multiDiffSummaryPresets:`Voreinstellungen: {{presets}} (0 = aus).`,memoryHeading:`Read-Tool & SAGE-Memory-Injection`,memoryHint:`Umschalten, was das Read-Tool enthält und wann SAGE-Memory-Blöcke in Tool-Ergebnissen erscheinen.`,readSymbolsLabel:`Symbole lesen`,readSymbolsHint:`Wenn aktiv, enthält das Read-Tool Codebase-Index-Symbole neben dem Datei-Inhalt.`,showSageMemoryInjectLabel:`SAGE Memory Inject anzeigen`,showSageMemoryInjectHint:`Wenn aktiv, werden SAGE-Memory-Injection-Blöcke in Tool-Ergebnissen angezeigt.`,sageMemoryInjectThresholdLabel:`SAGE-Memory-Inject-Schwelle`,sageMemoryInjectThresholdHint:`Mindest-Beziehungsstärke für eine injizierte SAGE-Memory (0.72–0.95).`,footnote:`Diese Einstellungen spiegeln den TUI- /settings-Picker wider. Schalter wirken sofort; einige Felder erfordern einen Session-Neustart.`,sageRelaxed:`0,72 (locker)`,sageDefault:`0,85 (Standard)`,sageStrict:`0,95 (streng)`},w=`Lokale Einstellungen löschen`,T=`Abbrechen`,E=`Einstellungen dieses Browsers löschen?`,D=`Löscht die in diesem Browser gespeicherten Einstellungen und lädt die Seite neu. Verbundene Einstellungen werden erneut vom Server geladen.`,O=`Löschen und neu laden`,k=JSON.parse(`{"heading":"Brain","headingHint":"Entscheidungsmodelle, Rat, Eskalation und Risiko-Decke — live angewendet, in der globalen Konfiguration gespeichert.","riskHeading":"Autonomie-Decke","escalationHeading":"Eskalation","escalationModeLabel":"Modus","escalationModeHint":"Headless: Das Brain blockiert nie auf einen Menschen — unbeantwortete Eskalationen werden über die sichere Endrichtlinie aufgelöst. Gilt für CLI/TUI-Sitzungen; das eigenständige WebUI-Brain ist immer headless.","escalationDecisionTimeoutLabel":"Entscheidungs-Timeout","escalationDecisionTimeoutHint":"Zeitbudget pro LLM-Aufruf für eine Brain-Entscheidung.","escalationHumanTimeoutLabel":"Timeout für menschliche Antwort","escalationHumanTimeoutHint":"Interaktiver Modus: Wie lange ein Eskalations-Prompt warten darf, bevor die Endrichtlinie ihn auflöst.","escalationTerminalPolicyLabel":"Endrichtlinie","escalationTerminalPolicyHint":"Wie eine headless-Eskalation ohne verfügbaren Menschen aufgelöst wird. Konservativ akzeptiert eine empfohlene Option bei niedrigem/mittlerem Risiko; alles-ablehnen akzeptiert nie automatisch; mit-Empfehlung-fortfahren akzeptiert eine empfohlene Option bei JEDEM Risiko.","escalationDecisionLogSizeLabel":"Größe des Entscheidungsprotokolls","escalationDecisionLogSizeHint":"Rollierendes In-Memory-Entscheidungsprotokoll für die Statusansicht.","rulesHeading":"Deterministische Regeln","rulesConfigured":"{{count}} konfiguriert","rulesBody":"Wird vor jedem Provider-Aufruf ausgewertet — der erste Treffer gewinnt. Bearbeiten Sie sie in der globalen Konfigurationsdatei; diese Ansicht ist schreibgeschützt.","rulesOff":"aus","rulesDropped":"{{count}} Regel(n) verworfen","heuristicsHeading":"Heuristiken","heuristicsBody":"Kostenlose Mustervermutungen, die eine Frage lösen, bevor ein Modell läuft. Standardmäßig alle an — schalten Sie eine aus, wenn ihre Vermutung für Ihre Arbeitslast falsch ist.","heuristicsLowRiskLabel":"Automatische Antwort bei niedrigem Risiko","heuristicsLowRiskHint":"Beantwortet risikoarme Anfragen automatisch, die bereits eine empfohlene Option tragen.","heuristicsBlockedLabel":"Blockiert-aufgelöst","heuristicsBlockedHint":"'blocked …' plus ein expliziter Auflösungsmarker im Kontext löst zu „fortfahren\\" auf.","heuristicsDeadlockLabel":"Deadlock überspringen","heuristicsDeadlockHint":"'deadlock' plus fehlgeschlagene Arbeitseinheiten im Kontext löst zu „überspringen und fortfahren\\" auf.","heuristicsRetryLabel":"Wiederholungen erschöpft","heuristicsRetryHint":"'failed'/'retry' plus nachweislich erschöpfte Wiederholungen markiert die Einheit als fehlgeschlagen und fährt fort.","heuristicsPingLabel":"Fortfahren-Ping","heuristicsPingHint":"Ein bloßer Fortfahren/Weiter-Ping ohne konkurrierende Alternative löst zu „fortfahren\\" auf.","heuristicsMarkers":"Marker: {{markers}}","qualityHeading":"LLM-Qualität","qualityCircuit_one":"Schaltung {{state}} · {{count}} Fehler","qualityCircuit_other":"Schaltung {{state}} · {{count}} Fehler","qualityResponseBudgetLabel":"Antwortbudget","qualityResponseBudgetHint":"Ausgabetoken pro Entscheidungsaufruf. Eine Brain-Antwort ist eine Entscheidung plus eine Begründung in einem Satz.","qualityRejectLabel":"Unsichere Antworten ablehnen","qualityRejectHint":"Behandelt eine abgelehnte oder leere Antwort als „diese Stufe konnte nicht entscheiden\\", statt sie als Antwort zu akzeptieren.","qualityMinConfidenceLabel":"Mindestkonfidenz","qualityMinConfidenceHint":"Lehnt Antworten ab, deren selbst gemeldete Konfidenz darunter liegt. Antworten ohne Konfidenzangabe bestehen immer.","qualityDenyTerminalLabel":"Ablehnung ist terminal","qualityDenyTerminalHint":"Ob eine Ablehnung aus der Einzel-LLM-Stufe die Entscheidung beendet. 'when-decided' macht eine echte Ablehnung terminal, während Infrastrukturfehler weiter eskalieren.","traceHeading":"Replay-Spur","traceRecordLabel":"Entscheidungsspuren aufzeichnen","traceRecordHint":"JSONL pro Entscheidung jeder Stufe, jedes Pool-Ziels und jeder Ratsabstimmung, mit Zeiten und Token-Nutzung. Standardmäßig aus — Aktivieren schreibt Entscheidungsinhalte auf die Festplatte.","traceContentLabel":"Spurinhalt","traceContentHint":"'full' behält Frage und Kontext (nötig zum Replay einer Entscheidung); 'redacted' kürzt Freitext; 'none' zeichnet nur Metadaten auf.","cacheHeading":"Entscheidungs-Cache","cacheStats":"{{hits}} Treffer / {{misses}} Fehlschlag · {{size}} live","cacheReplayLabel":"Identische Urteile wiedergeben","cacheReplayHint":"Verwendet ein früheres Rats-/LLM-Urteil für eine identische wiederholte Frage wieder. Deterministische Stufen und Frage-an-Mensch werden nie gecacht; ein Urteil, das das Protokoll als fehlgeschlagen beobachtet, wird entfernt.","cacheLifetimeLabel":"Eintragslebensdauer","cacheLifetimeHint":"Wie lange ein gecachtes Urteil wiedergebbar bleibt.","cacheMaxEntriesLabel":"Maximale Einträge","cacheMaxEntriesHint":"Obergrenze für live gecachte Urteile.","monitorHeading":"Monitor","monitorBody":"Selbstaktivierung bei Notfallsignalen. Der Monitor wird einmal beim Start gebaut, daher gelten diese Einstellungen für die nächste Sitzung statt live.","monitorWatchLabel":"Auf Notfallsignale achten","monitorWatchHint":"Tool-Fehlerketten, Fehlerstürme, Agent-Staus und Datei-Churn aktivieren das Brain von selbst.","monitorPolicyLabel":"Signalrichtlinie","monitorPolicyHint":"Wie ein erkanntes Signal aufgelöst wird. 'llm' konsultiert das Brain; 'steer' greift immer ein und 'observe' nie — beide ohne Provider-Aufruf.","modelsHeading":"Entscheidungsmodelle","modelsSessionBadge":"Sitzungsmodell","modelsResolvedBadge":"{{resolved}}/{{total}} aufgelöst","modelsUseSessionLabel":"Sitzungsmodell verwenden","modelsUseSessionHint":"Mit dem Modell entscheiden, das die Sitzung ausführt. Durch Hinzufügen von Modellen unten ausschalten.","modelsAddModel":"Modell hinzufügen","modelsPoolStrategyLabel":"Pool-Strategie","modelsPoolStrategyHint":"Fallback: Das erste Modell ist primär, der Rest wird bei Fehlern der Reihe nach versucht. Round-Robin: Entscheidungen rotieren durch den Pool.","councilHeading":"Rat","councilConvened":"einberufen","councilDisabled":"deaktiviert","councilEnableLabel":"Multi-LLM-Rat aktivieren","councilEnableHint":"Fragen mit hohem Einsatz werden von unabhängigen Sitzen (Ausführender / Skeptiker-mit-Veto / Prüfer) statt von einem Modell abgestimmt. Erfordert ≥2 auflösbare Wähler (explizite Sitze unten oder ein Pool mit ≥2 Modellen).","councilSeatsDerived":"Aus dem Pool abgeleitete Sitze: {{seats}}","councilCustomLens":"Benutzerdefinierte Entscheidungslinse — wird dem Sitz wörtlich gesendet.","councilCustomOption":"{{persona}} (benutzerdefiniert)","councilVeto":"Veto","councilAddVoter":"Wähler hinzufügen","councilRiskFloorLabel":"Risiko-Untergrenze","councilRiskFloorHint":"Mindestfragenrisiko, das den Rat statt der Einzelmodell-Stufe einberuft.","councilJudge":"Richter","councilJudgeDesc":"Stichentscheid-Modell, das die Begründung jeder Stimme sieht.","councilResolved":"aufgelöst: {{model}}","councilAlsoVoter":"⚠ auch ein Wähler","councilAuto":"auto","councilPick":"Auswählen…","councilAutoReset":"Auto","councilQuorumLabel":"Quorum","councilQuorumHint":"Anteil der Sitze, die eine gültige Stimme abgeben müssen.","councilApprovalLabel":"Zustimmung","councilApprovalHint":"Anteil des abgegebenen Stimmengewichts, den die Gewinneroption überschreiten muss.","councilPerSeatTimeoutLabel":"Timeout pro Sitz","councilPerSeatTimeoutHint":"Zeitbudget für die Stimme eines einzelnen Sitzes. Langsamer als das Entscheidungs-Timeout bedeutet, dass ein hängender Sitz die Abstimmung aufhält.","councilMaxConcurrencyLabel":"Max. Parallelität","councilMaxConcurrencyHint":"Wie viele Sitze parallel abstimmen. Verringern, wenn der Pool einen ratenbegrenzten Provider teilt.","councilDistinctnessLabel":"Sitzverschiedenheit","councilDistinctnessHint":"Doppelte Sitze ablehnen: 'model' erfordert verschiedene Modelle, 'provider' unabhängige Provider, damit ein Ausfall die Abstimmung nicht kippen kann.","councilVoterBudgetLabel":"Wähler-Antwortbudget","councilVoterBudgetHint":"Ausgabetoken pro Sitzaufruf — Reasoning-Modelle verbrauchen ihre Denk-Token aus diesem Budget.","councilRoundsLabel":"Beratungsrunden","councilRoundsHint":"Runde 1 ist unabhängig. In späteren Runden sieht jeder Sitz die Stimmen der anderen und kann seine Position überdenken. Nur die letzte Runde zählt — und jede Runde kostet einen weiteren Aufruf pro Sitz.","councilJudgeBudgetLabel":"Richter-Antwortbudget","councilJudgeBudgetHint":"Ausgabetoken für den stichentscheidenden Richteraufruf.","councilSeatTemplate":"Sitzvorlage:","ledgerHeading":"Entscheidungsprotokoll","ledgerRecordLabel":"Entscheidungen + Ergebnisse aufzeichnen","ledgerRecordHint":"Speichert jede Entscheidung und ihr beobachtetes Ergebnis; ähnliche vergangene Ergebnisse fließen in zukünftige Brain-Prompts ein.","ledgerAutoDenyLabel":"Nach Fehlern automatisch ablehnen","ledgerAutoDenyHint":"Deterministisch ablehnen (ohne LLM), sobald so viele aufeinanderfolgende Genehmigungen einer Entscheidungsgruppe in beobachteten Fehlern endeten.","ledgerMemoryEntriesLabel":"In-Memory-Einträge","ledgerMemoryEntriesHint":"Ringgröße im Speicher und Anzahl der beim Start von der Festplatte geladenen früheren Einträge.","ledgerRetryWindowLabel":"Interventions-Wiederholungsfenster","ledgerRetryWindowHint":"Eine gleichartige Monitor-Intervention, die innerhalb dieses Fensters erneut auslöst, markiert die vorherige Steuerung als Fehlschlag.","recentHeading":"Letzte Entscheidungen ({{count}})","recentEmpty":"In dieser Sitzung wurden noch keine Entscheidungen aufgezeichnet.","optInteractive":"Interaktiv (mich fragen)","optHeadless":"Headless (nie fragen)","optConservative":"Konservativ (Standard)","optDenyAll":"Alles ablehnen","optContinueRecommended":"Mit Empfehlung fortfahren","optNeverDefault":"Nie (Standard)","optWhenDecided":"Wenn entschieden","optAlways":"Immer","optFullDefault":"Voll (Standard)","optRedacted":"Gekürzt","optMetadataOnly":"Nur Metadaten","optConsultBrain":"Brain konsultieren (Standard)","optAlwaysSteer":"Immer steuern","optObserveOnly":"Nur beobachten","optFallback":"Fallback","optRoundRobin":"Round-Robin","optMediumPlus":"Mittel+","optHighPlus":"Hoch+","optCriticalOnly":"Nur kritisch","optNoneDefault":"Keine (Standard)","optDistinctModels":"Verschiedene Modelle","optDistinctProviders":"Verschiedene Provider","optDefault3":"Standard (3)","optOff":"Aus","pickPoolTitle":"Brain-Pool-Modell hinzufügen","pickPoolHint":"Geordneter Entscheidungspool — der erste ist primär.","pickVoterTitle":"Ratsmitglied hinzufügen","pickVoterHint":"Dialog bleibt offen — ≥2 Wähler hinzufügen, dann schließen.","pickJudgeTitle":"Ratsrichter wählen","pickJudgeHint":"Stichentscheid, der jede Stimme sieht.","persistError":"Einstellungen live angewendet, aber nicht gespeichert.","riskCopy":{"off":"Ein Mensch entscheidet alles","low":"Nur niedriges Risiko automatisch entscheiden","medium":"Automatisch bis mittleres Risiko entscheiden","high":"Automatisch bis hohes Risiko entscheiden","all":"Alles automatisch entscheiden"},"rulesConfigured_one":"{{count}} konfiguriert","rulesConfigured_other":"{{count}} konfiguriert"}`),A={default15s:`Standard (15 s)`,waitForever:`Unbegrenzt warten`,defaultHalf:`Standard (0,5)`,all:`Alle`,n200Default:`200 (Standard)`,offDefault:`Aus (Standard)`,n20Default:`20 (Standard)`,m5Default:`5 min (Standard)`,default:`Standard`,oneSerial:`1 (seriell)`,roundsOff:`1 (keine Beratung)`,default500:`Standard (500)`,default10m:`Standard (10 min)`},j={capToolCall:`Tool-Aufruf`,capReasoning:`Reasoning`,capTemperature:`Temperatur`,capAttachment:`Anhang`,capStructuredOutput:`Strukturierte Ausgabe`,capOpenWeights:`Offene Gewichte`},M={presetsHeading:`Schrift-Vorlagen`,presetsHint:`Eine Vorlage setzt alle Rollen auf einmal; Schriften werden erst bei der ersten Nutzung geladen.`,presets:{workbench:{label:`Werkbank`,description:`Der Standard-Look der Operator-Werkbank.`},plex:{label:`IBM Plex`,description:`Eine technische Schriftfamilie durchgehend.`},modern:{label:`Modern`,description:`Neutrale Inter mit JetBrains Mono für Code.`},geist:{label:`Geist`,description:`Klare Kombination aus Geist Sans und Mono.`},classic:{label:`Klassisch`,description:`Adobes Source Sans, Serif und Code Pro.`},editorial:{label:`Editorial`,description:`Serifen-Überschriften und eine buchartige Chat-Schrift.`},readable:{label:`Lesbar`,description:`Gut lesbare Schriften für lange Sitzungen.`},friendly:{label:`Freundlich`,description:`Runde, entspannte Formen mit Fira Code.`},monospace:{label:`Monospace`,description:`Überall Monospace, im Terminal-Stil.`},system:{label:`System`,description:`Schriften des Betriebssystems, kein Download.`}},rolesHeading:`Schriften nach Rolle`,rolesHint:`Überschreibe jede Rolle zusätzlich zur Vorlage. Mit „Wie …“ markierte Rollen folgen ihrer übergeordneten Rolle.`,roles:{ui:{label:`Oberfläche & Panels`,hint:`Schaltflächen, Menüs, Seitenleisten, Listen und Einstellungen.`},display:{label:`Überschriften`,hint:`Seiten- und Abschnittstitel.`},reading:{label:`Chat & Dokumente`,hint:`Assistentenantworten, Markdown und Postfachnachrichten.`},code:{label:`Inline-Code & Daten`,hint:`Codeblöcke, Logs, IDs und Tabellenwerte.`},editor:{label:`Code-Editor`,hint:`Monaco-Dateieditor und Diff-Ansicht.`},terminal:{label:`Terminal`,hint:`Integrierte Terminalsitzungen.`}},fromPreset:`Vorlage ({{name}})`,inherit:`Wie {{role}} ({{name}})`,categories:{sans:`Serifenlos`,serif:`Serif`,mono:`Monospace`},systemTag:`System`,sizeHeading:`Größe & Abstand`,sizeHint:`Die Textgröße der Oberfläche skaliert alle Panels; Editor- und Terminalgrößen werden in Pixeln festgelegt.`,sizePresets:{compact:`Kompakt`,normal:`Normal`,comfortable:`Komfortabel`,large:`Groß`,custom:`Benutzerdefiniert`},controls:{uiScale:{label:`Textgröße der Oberfläche`,hint:`Skaliert Text in Panels, Chat und Dialogen.`},editorFontSize:{label:`Schriftgröße im Editor`,hint:`Monaco-Editor und Diff-Ansicht.`},codeLineHeight:{label:`Zeilenhöhe für Code`,hint:`Editor, Diff-Ansicht und Codeblöcke.`},terminalFontSize:{label:`Schriftgröße im Terminal`,hint:`Integriertes Terminal.`},terminalLineHeight:{label:`Zeilenhöhe im Terminal`,hint:`Zeilenabstand im Terminal.`},ligatures:{label:`Code-Ligaturen`,hint:`Verbindet => !== >= in unterstützenden Schriften (Fira Code, Cascadia, JetBrains Mono…) zu einer Glyphe. Gilt nicht im Terminal.`}},previewHeading:`Live-Vorschau`,preview:{heading:`Den Sitzungslader umbauen`,body:`Der Agent hat 12 Dateien gelesen und eine zweistufige Änderung vorgeschlagen. Prüfe den Diff vor dem Anwenden.`,label:`Oberflächen-Label`},resetAll:`Alle Schrifteinstellungen zurücksetzen`,resetOverrides:`Rollen-Überschreibungen löschen`},N={description:`Manage the decision provider and see where Jev is used.`,loading:`Loading Jev settings…`,timeout:`No response from server. Reconnect and retry.`,route:`Decision provider`,routeChange:`Changing provider clears the previous key, endpoint and model. Enter a new key or use the provider environment variable.`,key:`API key`,keyHint:`Leave blank to keep the current key`,removeKey:`Remove saved key (environment key may still apply)`,endpoint:`Endpoint override`,model:`Model override`,defaultHint:`Empty uses provider default`,requestTimeout:`Request timeout (ms)`,featureHint:`Switches permit Jev usage. Actual use also depends on the prerequisites and triggers below.`,save:`Save Jev settings`,test:`Test saved connection`,testHint:`The test sends one small billed request. Save changes first. Restart existing sessions to apply all consumers.`,activity:`Jev activity`,activityHint:`Refreshes every 3 seconds. Last 300 requests in this server process, across its sessions. No prompts, credentials or raw errors. Disk log rotates at 5 MB. Answered means a typed response, not necessarily a decision accepted by the consumer.`,filter:`Feature`,all:`All`,empty:`No matching Jev requests yet. Test the connection or use an enabled feature.`,features:{brain:`Brain decisions`,memoryTriage:`Memory triage`,topicShift:`Topic changes`,memoryRecall:`Memory recall`,compaction:`Context compaction`,kanbanVerify:`Kanban verification`,modelTier:`Subagent model tier`,semanticLint:`Semantic lint`,tool:`Entscheidungswerkzeug für Agenten`,skillSuggestion:`Skill suggestions`,fleetDispatch:`Fleet dispatch`},readinessScope:`These are saved profile conditions, not the live state of every session. A request below means the service was called, not that its answer was accepted.`,unknownReadiness:`Readiness unavailable on this server`,unsaved:`Unsaved change`,lastRequest:`Last runtime request`,notObserved:`No runtime request in the displayed recent log.`,contextStrategy:`Profile compaction strategy`,contextScope:`Selective enables the Jev selection path. Save changes and restart existing sessions; a session-specific strategy can override this profile setting.`,openContext:`Open session context settings`,configureTiers:`Configure model tiers`,tiersHint:`Enable tiers and define at least two levels, cheapest first. Set their models or fallback profiles and a default tier. Changes here save immediately.`,checkHeading:`Live capability checks`,checkHint:`Runs 22 synthetic cases across all 11 features using the saved account, including disabled features. Makes billed API calls, sends no project content and changes no feature settings. Passing does not prove workload quality or that a session uses the feature.`,checkAll:`Test all 11 features`,checkRunning:`Running live checks…`,expected:`Expected`,actual:`Actual`,includeChecks:`Include diagnostic requests`,selfTest:`Diagnostic`,account:{ready:`Account configured`,unconfigured:`Account required`,unusable:`Account settings invalid`},readiness:{disabled:`Disabled`,"account-required":`Account required`,blocked:`Setup required`,conditional:`Configured · waiting for trigger`},reasons:{disabled:`This feature is not permitted to use Jev.`,"account-required":`Configure a valid Jev account first.`,"selective-required":`Jev selection requires selective compaction; hybrid and intelligent do not use this selector.`,"tiers-disabled":`The model tier system is disabled.`,"tiers-required":`Define at least two model tiers.`,"skills-disabled":`The global skills feature is disabled.`,"trigger-required":`Runs only when its trigger conditions are met.`,"memory-disabled":`Memory or SAGE is disabled.`,"recall-injection-required":`SAGE turn context recall is disabled; the Jev recall filter requires this path.`},triggers:{brain:`Runs before later decision tiers; uncertain answers defer.`,memoryTriage:`Runs during triage value evaluation and merge decisions.`,topicShift:`Runs when topic-change prechecks require a judgment; repeated results may be cached.`,memoryRecall:`Filters candidates returned by SAGE turn context recall; cached judgments are reused.`,compaction:`Rates middle conversation turns during selective compaction; requires a provider and sufficient history.`,kanbanVerify:`Judges open agent-type criteria against changed files and their diff.`,modelTier:`Suggests a tier for delegations with no explicit model/tier and no matching role/phase route.`,semanticLint:`Runs when the semantic lint command finds candidates; it is not an automatic edit watcher.`,tool:`Wird ausgeführt, wenn ein Agent jev mit Belegen und typisierten Fragen aufruft.`,skillSuggestion:`Requires skills enabled, at least two skills, and gate/fit thresholds; results may be cached.`,fleetDispatch:`Runs only for ambiguous routing with multiple candidate roles.`},recallTurnContext:`SAGE turn context recall`,recallTurnHint:`Adds relevant memories to each new turn; the Jev recall filter runs on this path. Memory and SAGE must also be enabled. Save and restart existing sessions.`},P={title:e,subtitle:t,navigation:n,providerTest:r,tabs:i,model:a,connection:o,provider:s,providerModels:c,mcp:l,allowlist:u,oauth:d,general:f,agent:p,execution:m,fallbacks:h,fleet:g,integrations:_,features:v,context:y,logs:b,security:x,toast:S,display:C,resetLabel:w,cancel:T,resetConfirmTitle:E,resetConfirmBody:D,resetConfirmAction:O,brain:k,brainOpt:A,modelSchema:j,fonts:M,jev:N};export{p as agent,u as allowlist,k as brain,A as brainOpt,T as cancel,o as connection,y as context,P as default,C as display,m as execution,h as fallbacks,v as features,g as fleet,M as fonts,f as general,_ as integrations,N as jev,b as logs,l as mcp,a as model,j as modelSchema,n as navigation,d as oauth,s as provider,c as providerModels,r as providerTest,O as resetConfirmAction,D as resetConfirmBody,E as resetConfirmTitle,w as resetLabel,x as security,t as subtitle,i as tabs,e as title,S as toast};
|
|
1
|
+
var e=`Einstellungen`,t=`Konfiguriere jeden Aspekt deines Agenten-Arbeitsbereichs`,n={browse:`Durchsuchen`,search:`Einstellung suchen…`,clearSearch:`Suche löschen`,noResults:`Keine passenden Einstellungen`,workspace:`Arbeitsbereich`,models:`Modelle und Verbindungen`,behavior:`Agentenverhalten`,system:`System und Sicherheit`,label:`Einstellungsbereiche`},r={title:`Anbietertest`,description:`Gespeicherte Anbieter und Abonnements testen; Kontingent-, Authentifizierungs-, Latenz- und Tokenlimitfehler prüfen.`,open:`Anbietertest öffnen`},i={general:`Allgemein`,provider:`Anbieter`,connection:`Verbindungen`,agent:`Agent`,execution:`Ausführung`,fallbacks:`Fallbacks`,routing:`Routing`,fleet:`Flotte`,integrations:`Integrationen`,chimera:`Chimera`,context:`Kontext`,logs:`Protokolle`,security:`Sicherheit`,display:`Anzeige`,displayDesc:`Workbench-Optik, Status-Chip, Refine-Timer und Tool-/Memory-Injection-Schalter — spiegelt den TUI-SettingsPicker.`,generalDesc:`Darstellung, Sprache und Anzeigeeinstellungen — spiegelt die TUI-Einstellungsauswahl.`,providerDesc:`API-Schlüssel, gespeicherte Anbieter und der Anbieterkatalog.`,connectionDesc:`WebSocket-Server-URL und Verbindungsstatus.`,agentDesc:`Autonomie, Prompt-Verfeinerung, Reasoning und Modell-Routing.`,executionDesc:`Iterationslimits, Beenden-Verhalten und Prozess-Schutzschalter.`,fallbacksDesc:`Modell-Fallback-Kette, Favoriten und benannte Fallback-Profile.`,routingDesc:`Modell-Routing-Matrix pro Phase und Rolle.`,fleetDesc:`Gleichzeitige Subagenten, Streaming und Vorhersage nächster Schritte.`,integrationsDesc:`HQ-Client, MCP-Server und Telegram-Benachrichtigungen.`,chimeraDesc:`Konfiguration des Code-Review-Agents nach der Sitzung.`,contextDesc:`Feature-Flags, Kontextstrategie, Komprimierer und Plugin-Steuerung.`,logsDesc:`Protokollebene, Prüfdetails, Dateisystem-Zugriffsbereich und Debug-Stream.`,securityDesc:`Brain-Entscheidungskontrolle, Schatten-Agent und Tool-Zugriff.`,fonts:`Schriften`,fontsDesc:`Schriften für Oberfläche, Chat, Editor und Terminal; Größe, Zeilenhöhe und Ligaturen.`,jev:`Jev`,jevDesc:`TypeSafe / Jev`},a={heading:`Modell`,loading:`Modelle werden geladen...`,notFound:`Keine Modelle für diesen Anbieter gefunden. Der Katalog könnte leer sein oder noch laden.`,selectProviderFirst:`Zuerst einen Anbieter wählen`,context:`{{count}}k Kontext`},o={providerHealth:{heading:`Anbieterstatus`,hint:`Welche Anbieter-/Modellpaare gesund, eingeschränkt oder blockiert sind — und warum.`,refresh:`Aktualisieren`,empty:`Noch keine Anbieter erfasst.`,summary:`{{blocked}} blockiert · {{degraded}} eingeschränkt · {{healthy}} gesund`,totalFailures:`Fehler`,rateLimits:`Ratenlimits`,state:{blocked:`Blockiert`,degraded:`Eingeschränkt`,healthy:`Gesund`},blocked:`Blockiert`,degraded:`Eingeschränkt`,consecutive:`aufeinanderfolgende Fehler`,retryNow:`Jetzt erneut versuchen`,clear:`Löschen`,allHealthy:`Alle erfassten Anbieter sind gesund.`,statSuccesses:`Erfolge`,statFailures:`Fehler`,statRateLimits:`Ratenlimits`,statConsecutive:`aufeinanderfolgend`,lastError:`Letzter Fehler`,recentErrors:`Letzte Fehler`,autoRecovery:`Automatische Wiederherstellung um`,expired:`Abgelaufen`,remainingSecs:`{{secs}} s`,remainingMins:`{{mins}} min`,remainingHours:`{{hours}} h {{mins}} min`,explainHealthy:`Antwortet normal.`,explain402:`Abrechnungslimit erreicht (402). Etwa 15 Minuten blockiert, bis das Kontingent zurückgesetzt wird.`,explain403quota:`Nutzungslimit für diesen Abrechnungszeitraum erreicht. Bis zum nächsten Zurücksetzen blockiert (ca. 15 min).`,explain403auth:`Berechtigungs-/Authentifizierungsfehler. Nicht wiederholbar — API-Schlüssel und Zugriffsrechte prüfen.`,explain429:`Ratenlimit erreicht (429). Vorübergehende Drosselung — automatische Wiederherstellung.`,explain529:`Server überlastet (529). Der Anbieter ist stark ausgelastet.`,explain5xx:`Serverfehler ({{status}}). Vorübergehendes Backend-Problem.`,explainNetwork:`Netzwerk nicht erreichbar. Internetverbindung oder Statusseite des Anbieters prüfen.`,explainTimeout:`Zeitüberschreitung der Anfrage (408). Der Anbieter hat zu langsam geantwortet.`,explainStreamHang:`Stream angehalten (599). Der Anbieter hat mitten in der Antwort aufgehört.`,explainQuota:`Kontingent aufgebraucht. Bis zum Zurücksetzen blockiert.`,explainUnknown:`Fehlertyp: {{kind}} / Status: {{status}}.`},wsUrlLabel:`WebSocket-Server-URL`,wsUrlPlaceholder:`ws://localhost:3456`,wsUrlHint:`URL des Agent-WebSocket-Servers. Der Server läuft neben dem CLI.`,startingHeading:`Den WebSocket-Server starten`,startingBody:`Für die Entwicklung ./dev.ps1 vom Repo-Root ausführen (optional zuvor WS_HOST/WS_PORT setzen). Andernfalls die WebUI über die CLI starten: wstack --webui.`,healthHeading:`Verbindungszustand`,healthHint:`Live-Bericht zu Besitz, Speicher, Warteschlange, Watcher und Latenz der Projektdienste.`,healthRefresh:`Aktualisieren`,healthLoading:`Dienste werden geprüft…`,healthUnknown:`Zustand unbekannt`,healthDisconnected:`Die WebUI-WebSocket-Verbindung ist getrennt.`,healthRestartRequired:`Backend einmal neu starten, um den Verbindungsbericht zu aktivieren.`,healthOptional:`Bei Bedarf`,endpointInvalidBadge:`Socket-Pfad zu lang`,endpointInvalidRemedy:`Der IPC-Socket-Pfad überschreitet die Längenbeschränkung dieser Plattform, daher kann der gemeinsame Daemon nicht gestartet werden. Abfragen fallen auf einen langsameren prozesslokalen Modus zurück. Abhilfe: Setzen Sie ein kürzeres TMPDIR (z. B. export TMPDIR=/tmp) und starten Sie WrongStack neu.`,healthCounts:`{{healthy}} gesund · {{attention}} beachten · {{sleeping}} inaktiv`,healthOverall:{healthy:`Erforderliche Dienste gesund`,degraded:`Erforderlicher Dienst eingeschränkt`,error:`Erforderlicher Dienst nicht verfügbar`},healthStatus:{healthy:`Gesund`,degraded:`Eingeschränkt`,offline:`Inaktiv`,unavailable:`Nicht verfügbar`,error:`Fehler`},services:{kanban:{label:`Kanban IPC`},mailbox:{label:`Mailbox IPC`}},serviceActionRestart:`Neustarten {{label}}`,webuiTransport:`WebUI-Transport`,serviceAutoRestarting:`Automatischer Neustart…`},s={removeProfileConfirm:`Auth-Profil „{{alias}}“ und alle Schlüssel entfernen?`,removeProfileBody:`Gespeicherte Zugangsdaten und Verweise auf dieses Konto im Modell-Routing werden entfernt.`,deleteKeyConfirm:`Schlüssel „{{label}}“ aus „{{alias}}“ löschen?`,addProfile:`Konto / Auth-Profil hinzufügen`,profileAlias:`Alias des Auth-Profils`,profileHint:`Jedes Konto hat einen eigenen Alias und eigene Zugangsdaten. Fallback-Ziele sind alias/modell.`,profileExists:`Das Auth-Profil „{{alias}}“ existiert bereits. Wählen Sie einen anderen Alias.`,operationTimeout:`Keine Antwort vom Server. Prüfen Sie die Verbindung und versuchen Sie es erneut.`,savedProviderCount_one:`{{count}} Anbieter`,savedProviderCount_other:`{{count}} Anbieter`,keyCount_one:`{{count}} Schlüssel konfiguriert`,keyCount_other:`{{count}} Schlüssel konfiguriert`,activeKeyCount_one:`{{count}} aktiver Schlüssel`,activeKeyCount_other:`{{count}} aktive Schlüssel`,subscriptionHeading:`Abonnement-Anmeldung`,apiKeysHeading:`API-Schlüssel-Anbieter`,apiKeysBody:`Wähle einen Anbieter aus dem Katalog und füge einen API-Schlüssel hinzu oder verwalte gespeicherte Anbieter.`,tabCatalog:`Katalog`,tabSaved:`Gespeichert ({{count}})`,searchPlaceholder:`{{count}} Anbieter durchsuchen (Name / ID / Familie)…`,loadingCatalog:`Katalog wird geladen...`,noMatch:`Keine Anbieter passen zu „{{query}}“.`,configured:`Konfiguriert`,reachable:`Erreichbar`,envVar:`ENV: {{var}}`,modelCount_one:`{{count}} Modell`,modelCount_other:`{{count}} Modelle`,keyPlaceholder:`{{name}} API-Schlüssel`,orEnv:`Oder stattdessen {{env}} in der Umgebung setzen.`,addApiKey:`API-Schlüssel hinzufügen`,manageKeys:`Verwalte deine API-Schlüssel und Anbieterkonfigurationen`,addProvider:`Anbieter hinzufügen`,addCustomHeading:`Benutzerdefinierten Anbieter hinzufügen`,localServers:`Lokale Server — zum Ausfüllen klicken:`,providerIdPlaceholder:`Anbieter-ID (z.B. my-llm-server)`,apiKeyOptionalPlaceholder:`API-Schlüssel (optional)`,noSaved:`Noch keine gespeicherten Anbieter`,noSavedHint:`Füge einen Anbieter hinzu, um loszulegen`,apiKeysLabel:`API-Schlüssel`,addKey:`Schlüssel hinzufügen`,noKeys:`Keine Schlüssel konfiguriert`,active:`Aktiv`,setActive:`Als aktiv setzen`,keyLabelPlaceholder:`Schlüsselbezeichnung (z.B. default, production)`,apiKeyPlaceholder:`API-Schlüssel`,saveKey:`Schlüssel speichern`,savedToast:`Schlüssel für {{name}} gespeichert`},c={addCustom:`Benutzerdefiniertes Modell hinzufügen`,addCustomTitle:`Benutzerdefiniertes Modell hinzufügen`,addFromCatalog:`Aus Katalog hinzufügen`,catalogSearchPlaceholder:`models.dev-Katalog durchsuchen…`,catalogSearchTitle:`models.dev-Katalog durchsuchen`,colActions:`Aktionen`,colCaps:`Fähigkeiten`,colContext:`Kontext`,colCost:`Kosten`,colModalities:`Modalitäten`,colModel:`Modell`,colOutput:`Ausgabe`,colSource:`Quelle`,editModel:`Modell bearbeiten`,emptyState:`Noch keine Modelle — aus dem Katalog hinzufügen oder ein benutzerdefiniertes Modell erstellen.`,fieldContext:`Kontextfenster`,fieldCostInput:`Eingabekosten`,fieldCostOutput:`Ausgabekosten`,fieldDescription:`Beschreibung`,fieldFamily:`Familie`,fieldInputLimit:`Eingabelimit`,fieldInputModalities:`Eingabe-Modalitäten`,fieldLastUpdated:`Zuletzt aktualisiert`,fieldName:`Name`,fieldOutput:`Max. Ausgabe`,fieldOutputModalities:`Ausgabe-Modalitäten`,fieldReleaseDate:`Veröffentlichungsdatum`,modelAdded:`{{model}} hinzugefügt`,modelRemoved:`{{model}} entfernt`,modelSaved:`{{model}} gespeichert`,noResults:`Keine Modelle gefunden`,removeModel:`Modell entfernen`,sectionCapabilities:`Fähigkeits-Flags`,sectionDates:`Daten`,sectionIdentity:`Identität`,sectionLimits:`Grenzen`,sectionModalities:`Modalitäten`,sectionPricing:`Preise (pro 1M Token, USD)`,tabForm:`Formular`,tabRawJson:`Rohes JSON`,typeToSearch:`Zum Suchen tippen…`,useModel:`{{model}} verwenden`,usingModel:`{{model}} wird verwendet`,filterPlaceholder:`Modelle filtern…`},l={status:{connected:`Verbunden`,connecting:`Verbinden`,sleeping:`Ruhend`,discovering:`Entdecken`,error:`Fehler`,stopped:`Gestoppt`,unknown:`Unbekannt`},disabled:`MCP-Server sind deaktiviert.`,wakeTitle:`Server wecken`,sleepTitle:`Server schlafen legen`,discoverTitle:`Tools entdecken`,editTitle:`Bearbeiten`,removeTitle:`Entfernen`,statusLabel:`Status:`,enabledLabel:`Aktiviert:`,yes:`Ja`,no:`Nein`,descriptionLabel:`Beschreibung:`,pidLabel:`PID:`,errorLabel:`Fehler:`,toolsLabel:`Tools ({{count}}):`,noTools:`Noch keine Tools entdeckt`,serverNameRequired:`Servername ist erforderlich`,dialogTitleEdit:`MCP-Server bearbeiten`,dialogTitleAdd:`MCP-Server hinzufügen`,dialogTitleAddCustom:`Benutzerdefinierten MCP-Server hinzufügen`,fieldName:`Name`,fieldNamePlaceholder:`z.B. github, filesystem`,fieldTransport:`Transport`,fieldUrl:`URL`,fieldCommand:`Befehl`,fieldCommandPlaceholder:`z.B. npx`,fieldArgs:`Args`,fieldArgsHint:`(leerzeichengetrennt)`,fieldArgsPlaceholder:`z.B. -y @modelcontextprotocol/server-github`,fieldEnv:`Env-Variablen`,fieldEnvHint:`(KEY=Wert, eine pro Zeile)`,fieldDescription:`Beschreibung`,fieldDescriptionPlaceholder:`GitHub-MCP-Server für Repository-Zugriff`,enableServer:`Server aktivieren`,lazyConnect:`Verzögert verbinden`,lazyConnectHint:`(erst beim ersten Tool-Aufruf starten; bei Inaktivität automatisch schlafen)`,saveChanges:`Änderungen speichern`,addServer:`Server hinzufügen`,requires:`Erfordert: {{vars}}`,added:`Hinzugefügt`,heading:`MCP-Server`,summary:`{{connected}} verbunden · {{sleeping}} ruhend · {{total}} gesamt`,addCustom:`Benutzerdefiniert`,tabRecommended:`Empfohlen`,tabServers:`Server`,tabAddCustom:`Benutzerdefiniert`,recommendedBody:`One-Click-Hinzufügen für beliebte MCP-Server. Klicke auf Hinzufügen, um die Konfiguration vorzuausfüllen, und bestätige dann. Server mit Anmeldeinformationen benötigen ihre Env-Variablen vor der Nutzung.`,loadingServers:`Server werden geladen...`,noServers:`Keine MCP-Server konfiguriert`,noServersHint:`Wechsle zum Tab Empfohlen, um beliebte Server hinzuzufügen, oder Benutzerdefiniert für eigene.`,addCustomBody:`Konfiguriere einen benutzerdefinierten MCP-Server mit stdio-, SSE- oder HTTP-Transport.`,addCustomBodyHint:`Für beliebte Server nutze stattdessen den Tab Empfohlen — alles ist vorkonfiguriert.`,removeConfirmTitle:`Server „{{name}}“ entfernen?`,removeConfirmBody:`Dies entfernt den MCP-Server aus deiner Konfiguration.`,toastAdded:`Server „{{name}}“ hinzugefügt`,toastRemoved:`Server „{{name}}“ entfernt`,toastDiscovered:`{{count}} Tools von „{{name}}“ entdeckt`,toastSleeping:`Server „{{name}}“ ruht jetzt`,toastConnected:`Server „{{name}}“ verbunden`,toastReconnected:`Server „{{name}}“ neu verbunden`,toastDisconnected:`Server „{{name}}“ getrennt: {{reason}}`,toastError:`Server „{{name}}“ Fehler: {{error}}`,authRequired:`Anmeldung erforderlich`,authorized:`Autorisiert`,authorizeTitle:`Mit OAuth autorisieren`,authSignOutTitle:`OAuth-Anmeldedaten entfernen`,authSignOutBody:`Gespeicherte OAuth-Anmeldedaten für „{{name}}“ entfernen? Sie müssen sich erneut autorisieren.`,authPromptTitle:`Anmeldung bei „{{name}}“ abschließen`,authPromptBody:`Öffnen Sie die Autorisierungsseite und bestätigen Sie den Zugriff. Dieses Panel aktualisiert sich, sobald der Anbieter zurückleitet.`,authPromptOpen:`Autorisierungsseite öffnen`,toastAuthorized:`„{{name}}“ autorisiert`,toastAuthFailed:`„{{name}}“ benötigt eine Autorisierung{{suffix}}`},u={title:`Gespeicherte Allowlist löschen?`,body_one:`Dies entfernt das angeheftete Modell für {{provider}}. Die Modellauswahl fällt auf den models.dev-Katalog zurück.`,body_other:`Dies entfernt die {{count}} angehefteten Modelle für {{provider}}. Die Modellauswahl fällt auf den models.dev-Katalog zurück.`,undoHint:`Sie können dies 8 Sekunden nach dem Bestätigen rückgängig machen.`,keepTitle:`Allowlist behalten (Esc)`,clearTitle:`Allowlist löschen (Enter)`,clear:`Allowlist löschen`},d={termsWarning:`Mit einem Abonnement statt einem API-Schlüssel anmelden. Ein Abonnement außerhalb seines offiziellen Clients zu nutzen, kann die Nutzungsbedingungen des Anbieters verletzen — Ihr Konto könnte ratenlimitiert oder gesperrt werden. Ein API-Schlüssel ist der sanktionierte Weg für programmatische Nutzung.`,signIn:`Anmelden`,waitingBrowser:`Warte auf Ihre Anmeldung…`,openSignIn:`Anmeldeseite öffnen`,pasteLoopbackBusy:`Loopback-Port belegt — Redirect-URL einfügen`,pasteCantReach:`Browser erreicht diesen Server nicht? Redirect-URL einfügen`,submit:`Absenden`,enterCode:`Diesen Code auf der Verifizierungsseite eingeben:`,openVerification:`Verifizierungsseite öffnen`,waitingCode:`Warte auf Autorisierung…`,exchanging:`Tokens werden ausgetauscht…`,fetchingModels:`Modelle werden geladen…`,signedIn:`Angemeldet.`,signedInToast:`Angemeldet — {{provider}}`,signInFailed:`Anmeldung fehlgeschlagen`,accountCount_one:`{{count}} Konto gespeichert`,accountCount_other:`{{count}} Konten gespeichert`,active:`Aktiv`,inactive:`Inaktiv`,retry:`Erneut`,retryLogin:`Dieses Konto erneut authentifizieren`,newAccount:`Neues Konto`,aliasPlaceholder:`z.B. {{default}}`},f={showThinkingLabel:`Thinking-Protokolle anzeigen`,showThinkingHint:`Abgeschlossene Reasoning-Blöcke im Chatverlauf anzeigen.`,groupToolCallsLabel:`Tool-Aufrufe gruppieren`,groupToolCallsHint:`Aufeinanderfolgende Tool-Aufrufe in einem Chip zusammenfassen.`,autoCollapseInputLabel:`Composer unter Verlauf einklappen`,autoCollapseInputHint:`Wenn eine Sitzung mit Nachrichten geladen wird, den Composer unter dem Verlauf einklappen. Standardmäßig aus — der Composer bleibt ausgeklappt, bis du ihn manuell einklappst.`,themeHeading:`Design`,themeLight:`Hell`,themeDark:`Dunkel`,themeSystem:`System`,themeSystemHint:`System folgt deiner Hell-/Dunkel-Einstellung auf Betriebssystemebene.`,preferencesHeading:`Einstellungen`,compactDensity:`Kompakte Dichte`,compactDensityHint:`Engerer Abstand im gesamten Chat.`,soundOnComplete:`Ton bei Fertigstellung`,soundOnCompleteHint:`Spielt einen sanften Ton, wenn ein Durchlauf abgeschlossen ist.`,titleAnimation:`Titelanimation`,titleAnimationHint:`Animierten Terminal-Titel im CLI anzeigen.`,thinkingWordLabel:`Denkwort (CLI/TUI)`,thinkingWordHint:`Wort im TUI-Status-Chip. Ein einzelnes kurzes Wort.`,statuslineModeLabel:`Statuszeilen-Modus (CLI/TUI)`,statuslineModeHint:`Detailgrad der TUI-Statuszeile.`,statuslineModeDetailed:`Detailliert`,statuslineModeMinimum:`Minimal`,statuslineModeNoColor:`Ohne Farbe`,animationStyleLabel:`Animationsstil (CLI/TUI)`,animationStyleHint:`Animation für den TUI-Arbeitsstatus-Chip.`,animationStyleRainbow:`Regenbogen`,animationStyleWave:`Welle`,animationStylePulse:`Puls`,animationStyleDots:`Punkte`,animationStyleBreathe:`Atmen`,animationStyleStatic:`Statisch`,animationStyleCycle:`Zyklus`,languageHeading:`Sprache`,languageLabel:`Oberflächensprache`,languageHint:`Ändert nur den Oberflächentext. Prompts, Skills und Modellausgaben bleiben unberührt.`,paletteHeading:`Farbpalette`,paletteSwitcherTitle:`Farbpalette`,paletteHint:`Wähle die Hauptfarbe (und ihre Ableitungen). Neutrale Flächen bleiben gleich.`,paletteSignal:`Signal`,paletteEmeraldGold:`Smaragd & Gold`,paletteBlueNavy:`Marineblau`,palettePurplePink:`Violett & Pink`,paletteCyanTeal:`Cyan & Türkis`,paletteRoseCopper:`Rosa & Kupfer`,paletteIndigoAmber:`Indigo & Bernstein`,paletteSageSand:`Salbei & Sand`,paletteSlateViolet:`Schiefer & Violett`,paletteCoralMint:`Koralle & Minze`,paletteArcticEmber:`Arktis & Glut`,paletteMossRust:`Moos & Rost`},p={autonomyHeading:`Autonomie & Verhalten`,autonomyModeLabel:`Autonomie-Modus`,autonomyModeHint:`Wie unabhängig der Agent zwischen Zügen fortfährt.`,autonomyModeOff:`Aus — volle manuelle Kontrolle`,autonomyModeSuggest:`Vorschlagen — schlägt nächste Schritte vor`,autonomyModeAuto:`Auto — kurze Bestätigungsverzögerung`,autonomyModeEternal:`Eternal — autonom bis Ziel erreicht`,autonomyModeEternalParallel:`Eternal Parallel — Multi-Agent-Flotte`,autoProceedDelayLabel:`Auto-Fortsetzen-Verzögerung`,autoProceedDelayHint:`Millisekunden bevor der Agent im Auto-Modus fortfährt. 0 = sofort.`,yoloLabel:`YOLO-Modus`,yoloHint:`Werkzeugaufrufe ohne Rueckfrage ausfuehren - ausser den unten aufgefuehrten Schadensarten.`,yoloConfirmHeading:`Trotzdem fragen bei`,yoloConfirmIntro:`YOLO fuehrt alles andere unbeaufsichtigt aus. Bei diesen Schadensarten haelt es an und fragt zuerst nach.`,yoloConfirmLockedNote:`Diese beiden fragen immer. Sie schreiben die Dateien, die darueber entscheiden, ob ueberhaupt gefragt wird - sie abzuschalten hiesse, den Agenten sein eigenes Freigabesystem abschalten zu lassen.`,yoloKindLocked:`fragt immer`,yoloKind:{"disk-wipe":{label:`Datentraeger loeschen`,hint:`mkfs, dd auf ein Rohgeraet, format C:, Fork-Bombe`},"system-halt":{label:`Herunterfahren oder neu starten`,hint:`shutdown, reboot`},"delete-outside":{label:`Ausserhalb des Projekts loeschen`,hint:`rekursives Loeschen, das das Projekt verlaesst oder ein System-/Home-Verzeichnis trifft`},"git-history":{label:`Git-Historie umschreiben`,hint:`reset --hard, clean -f, push --force, filter-branch`},publish:{label:`Veroeffentlichen oder ausrollen`,hint:`npm publish, docker push, kubectl delete namespace`},"download-and-run":{label:`Heruntergeladenen Code ausfuehren`,hint:`curl | sh und Inline-Payloads, die laden und ausfuehren`},"bulk-delete":{label:`Massenhaft loeschen`,hint:`find -exec rm, Inline-rmSync ueber viele Pfade`},"agent-state":{label:`WrongStacks eigenen Zustand schreiben`,hint:`config.json, trust.json, auth.json`},"credential-bind":{label:`API-Schluessel an einen Endpunkt binden`,hint:`einen bekannten Schluessel an eine Anbieter-URL haengen`}},refineHeading:`Prompt-Verfeinerung`,enableRefineLabel:`Verfeinerung aktivieren`,enableRefineHint:`Prompts vor dem Senden umschreiben — klarere Anweisungen, bessere Ergebnisse.`,refineDelayLabel:`Verfeinerungs-Verzögerung`,refineDelayHint:`Countdown bevor der verfeinerte Prompt automatisch gesendet wird.`,refineLanguageLabel:`Verfeinerungs-Sprache`,refineLanguageHint:`Ihre Sprache behalten oder für das Modell ins Englische übersetzen.`,refineLanguageOriginal:`Original — Sprache behalten`,refineLanguageEnglish:`Englisch — ins Englische übersetzen`,refinerProviderLabel:`Verfeinerungs-Provider`,refinerProviderHint:`Provider-ID für die Zielverfeinerung. Leer = Provider der Sitzung verwenden.`,refinerProviderDefault:`Sitzungs-Provider`,refinerModelLabel:`Verfeinerungs-Modell`,refinerModelHint:`Modell-ID für die Zielverfeinerung. Leer = Modell der Sitzung verwenden.`,refinerModelDefault:`Sitzungsmodell`,refinerProfileLabel:`Fallback-Profil für die Verfeinerung`,refinerProfileHint:`Benanntes Fallback-Profil für die Zielverfeinerung. Überschreibt Provider und Modell.`,refinerProfileDefault:`Keines — Provider und Modell oder Sitzungsstandards verwenden`,reasoningHeading:`Reasoning & Cache`,reasoningModeLabel:`Reasoning-Modus`,reasoningModeHint:`Steuern, wie das Modell Extended Thinking nutzt. Auto = Anbieter-Standard.`,reasoningModeAuto:`Auto — Anbieter-Standard`,reasoningModeOn:`An — Thinking erzwingen`,reasoningModeOff:`Aus — Thinking deaktivieren`,reasoningEffortLabel:`Reasoning-Aufwand`,reasoningEffortAuto:`Auto (allgemein)`,reasoningEffortAutoHint:`Projekteinstellung: {{value}}`,reasoningEffortHint:`Wie viel Compute das Modell fürs Denken aufwendet. Nur gesendet, wenn das Modell es unterstützt.`,reasoningEffortNone:`Keine`,reasoningEffortMinimal:`Minimal`,reasoningEffortLow:`Niedrig`,reasoningEffortMedium:`Mittel`,reasoningEffortHigh:`Hoch`,reasoningEffortXhigh:`Sehr hoch`,reasoningEffortMax:`Max`,preserveThinkingLabel:`Thinking bewahren`,preserveThinkingHint:`Reasoning-Blöcke über Züge hinweg für Kontextkontinuität behalten.`,cacheTtlLabel:`Cache-TTL`,cacheTtlHint:`Prompt-Cache-Time-to-Live. 1h kostet mehr beim Schreiben, spart aber bei wiederholten Lesevorgängen (Anthropic).`,cacheTtlDefault:`Standard — Anbieter-Standard`,cacheTtl5m:`5 Minuten`,cacheTtl1h:`1 Stunde`,capsHint:`Verwenden Sie wstack models caps um zu prüfen, was das aktuelle Modell unterstützt. Nicht unterstützte Einstellungen werden pro Anfrage still weggelassen.`,routingHeading:`Modell-Routing`,routingRouteKey:`Modell-Routen-Schlüssel`,routingPhasesGroup:`Phasen`,routingRolesGroup:`{{label}} Rollen`,routingCustomGroup:`Benutzerdefinierte bestehende Routen`,routingTargetAria:`Ziel der Modellroute`,routingTargetEmpty:`— Route löschen —`,routingTargetProfilesGroup:`Fallback-Profile`,routingTargetModelsGroup:`Modelle (Provider/Modell)`,routingSet:`Setzen`,routingReasoningModeAria:`Reasoning-Modus neue Route`,routingReasoningEffortAria:`Reasoning-Aufwand neue Route`,routingReasoningPreserveAria:`Reasoning-Bewahrung neue Route`,routingReasoningModeFor:`Reasoning-Modus für {{key}}`,routingReasoningEffortFor:`Reasoning-Aufwand für {{key}}`,routingReasoningPreserveFor:`Reasoning-Bewahrung für {{key}}`,noRoutes:`Noch keine Modell-Routen.`,leaderModel:`Leader-Modell`,autonomyDelayMsLabel:`Verzögerung der automatischen Fortsetzung`,autonomyDelayMsHint:`Millisekunden, bevor der Agent im Auto-Modus automatisch fortfährt. 0 = sofort.`,refineCountdownLabel:`Verfeinerungs-Countdown`,refineCountdownHint:`Gnadenfrist, bevor der verfeinerte Prompt automatisch gesendet wird (Millisekunden).`,reasoningEffortModelSet:`Stufen des aktiven Modells`,reasoningEffortUnsupported:`Von diesem Modell nicht angeboten (unterstützt: {{levels}}) — die Einstellung wird weggelassen.`},m={heading:`Ausführung`,maxIterationsLabel:`Max. Iterationen pro Run`,unlimitedLabel:`Unbegrenzt`,maxIterationsHint:`Feste Obergrenze für LLM-Züge pro agent.run().`,autoProceedMaxIterationsLabel:`Auto-Fortsetzen max. Iterationen`,autoProceedMaxIterationsHint:`Auto-Fortsetzen nach N Iterationen stoppen. 0 = unbegrenzt.`,confirmExitLabel:`Vor Exit bestätigen`,confirmExitHint:`Erstes Ctrl+C bricht Arbeit ab, zweites bestätigt Exit.`,chimeLabel:`Chime bei Fertigstellung`,chimeHint:`Terminal-Glocke, wenn ein Agent-Run endet.`,breakerLabel:`Prozess-Schutzschalter`,breakerHint:`Sperrt bash/exec nach wiederholten Fehlern; beim Auslösen startet der Kill/Reset-Countdown.`,breakerTimeoutLabel:`Kill/Reset-Timeout des Schutzschalters`,breakerTimeoutHint:`Verzögerung bis zum automatischen Kill/Reset nach dem Auslösen. 0 = manuelle Wiederherstellung.`,availabilityHeading:`Verfügbarkeitskalender für Anbieter/Modelle`,availabilityHint:`Verhindert, dass autonome und nächtliche Ausführungen ausgewählte Anbieter oder Modelle in wiederkehrenden Fenstern verwenden.`},h={heading:`Fallback-/Round-robin-Modelle`,body:`Wenn das aktive Modell rate-limited (429/529), 5xx-Fehler oder hängt — nach eigenen Retries — rotiert der Agent zum nächsten Modell dieser Kette. Auch Standard für SDD-Worker-Subagents.`,autoFallbackLabel:`Auto-Fallback`,autoFallbackHint:`Wenn die Kette oben leer ist, automatisch von Ihren gespeicherten Anbietern ableiten.`,favoritesOnlyLabel:`Nur Favoriten`,favoritesOnlyHint:`Wenn Auto-Fallback eine Kette ableitet, auf Ihre Favoriten beschränken.`,profilesHeading:`Fallback-/Round-robin-Profile`,addProfile:`Hinzufügen`,noProfiles:`Noch keine benannten Fallback-Profile.`,createDefault:`Standard aus aktivem Modell erstellen`,useChain:`Kette verwenden`,setLeader:`Leader setzen`,profileEmpty:`Profil ist leer.`,favoritesHeading:`Favoriten-Modelle`,favoritesEmpty:`Favoriten werden zuerst angezeigt und können Auto-Fallback einschränken.`,addModelToProfile:`Modell zum Profil hinzufügen…`,addFavoriteModel:`Favoritenmodell hinzufügen…`,inactive:`inaktiv`},g={heading:`Flotte & Streaming`,fleetChatVerbosityLabel:`Flotten-Events streamen`,fleetChatVerbosityHint:`Live-Subagent-Aktivität im Flotten-Panel zeigen.`,maxConcurrentLabel:`Max. gleichzeitige Subagents`,maxConcurrentHint:`Maximale Anzahl gleichzeitig laufender Subagents.`,nextPredictionLabel:`Next-Step-Vorhersage`,nextPredictionHint:`Nach Abschluss eines Zugs wahrscheinliche nächste Schritte vorhersagen.`,nextStepsToolLabel:`Nextsteps-Tool`,nextStepsToolHint:`Der Agent kann seine Folgevorschläge per Tool-Aufruf hinterlegen, statt den Block selbst zu schreiben. Gilt ab der nächsten Sitzung.`},_={hqHeading:`HQ-Client`,hqPublishingLabel:`HQ-Veröffentlichung`,hqPublishingHint:`Diese WebUI/Client-Sitzung bei WrongStack HQ veröffentlichen. Gleichmaschinige Clients können lokales HQ-Auth auto-entdecken; Remote-Clients nutzen untenstehende URL/Token.`,hqUrlLabel:`HQ-URL`,hqUrlHint:`Für Auto-Discovery auf gleicher Maschine leer lassen.`,hqTokenLabel:`HQ-Client-Token`,hqRawContentLabel:`Rohe HQ-Inhalte`,hqRawContentHint:`Rohe Inhaltsvorschauen statt geschwärzter Vorschauen an HQ senden.`,wrongProxyHeading:`WrongProxy / WrongTrace`,wrongProxyEnabledLabel:`Basis-URLs über den lokalen Proxy leiten`,wrongProxyEnabledHint:`Wenn aktiviert, wird die Basis-URL jedes Anbieters über den konfigurierten Proxy umgeschrieben (Standard http://localhost:3444/proxy/<host><path>). openai-codex ist ausgeschlossen — es kommuniziert direkt mit dem ChatGPT-Backend über ein OAuth-Token.`,wrongProxyUrlLabel:`Proxy-URL`,wrongProxyUrlHint:`Wo der lokale Proxy-Daemon lauscht. Das System prüft periodisch <url>/api/health; ein nicht erreichbarer Daemon deaktiviert die Umschreibung, ohne bei jedem Tastendruck erneut zu versuchen.`,wrongProxyChangesApply:`Änderungen gelten sofort für nachfolgende Anfragen — kein Neustart erforderlich.`,telegramHeading:`Telegram-Benachrichtigungen`,telegramSessionEndLabel:`Sitzungsende`,telegramSessionEndHint:`Zusammenfassung senden, wenn eine Sitzung endet.`,telegramDelegateLabel:`Delegat fertig`,telegramDelegateHint:`Vermenschlichte Notiz senden, wenn ein Subagent fertig ist.`,telegramLongToolLabel:`Langlaufende Tools`,telegramLongToolHint:`Benachrichtigen, wenn ein Tool {{ms}}ms überschreitet. 0 zum Deaktivieren.`,telegramChangesApply:`Änderungen werden sofort angewendet.`,telegramNotConfigured:`Telegram ist nicht konfiguriert. Führen Sie /telegram-setup in der CLI aus, um zuerst einen Bot zu verbinden.`,heading:`Integrationen`,disabledHint:`Aktivieren Sie die Funktion im Kontext-Tab, um diesen Bereich zu nutzen.`},v={chimeraDedicatedHeading:`Chimera — Code-Review nach der Sitzung`,chimeraDedicatedHint:`Automatisierte Code-Qualitätsprüfung nach jeder Agentensitzung.`,chimeraSectionEnabled:`Post-Session-Review (Chimera)`,chimeraSectionEnabledHint:`Nach jeder Iteration einen Code-Review-Agenten ausführen.`,chimeraProviderLabel:`Chimera-Anbieter`,chimeraProviderHint:`Anbieter für den Review-Agenten. Aus konfigurierten Anbietern wählen.`,chimeraProviderSessionDefault:`Sitzungsstandard`,chimeraModelLabel:`Modell`,chimeraModelSessionDefault:`Sitzungsstandard`,chimeraModelHint:`Modell für den Review-Agenten. Erfordert zuerst einen Anbieter.`,chimeraMaxFilesLabel:`Max. Dateien pro Review`,chimeraMaxFilesHint:`Maximale Anzahl geänderter Dateien pro Review-Aufruf.`,chimeraAutoFixLabel:`Auto-Fix-Modus`,chimeraAutoFixHint:`Ob der Review-Agent Funde automatisch korrigieren soll.`,chimeraAutoFixOff:`Aus — nur Review`,chimeraAutoFixAsk:`Fragen — vor Anwendung bestätigen`,chimeraAutoFixAuto:`Auto — ohne Bestätigung anwenden`,autoReviewCascadeOnLabel:`Kaskade ab`,autoReviewCascadeOnHint:`Wenn ein Review Funde dieses oder höheren Schweregrads findet, Folgeagenten starten.`,autoReviewCascadeOnOff:`Aus`,autoReviewCascadeOnHigh:`Hoch oder höher`,autoReviewCascadeOnCritical:`Nur kritisch`,chimeraPickModel:`Anbieter/Modell für Chimera wählen`,chimeraPickModelHint:`Anbieter und Modell für das Post-Session-Code-Review wählen.`,autoReviewSectionEnabled:`Mid-Session-Review (Auto-Review)`,autoReviewSectionEnabledHint:`Bei jeder Dateiänderung während der Sitzung einen Review-Agenten ausführen.`,autoReviewFallbackProfileLabel:`Fallback-/Round-robin-Profil`,autoReviewFallbackProfileHint:`Benanntes Modellprofil für Auto-Review; liefert Fallback-Pool und Modelle für Round-robin oder Zufallsauswahl.`,autoReviewFallbackProfileNone:`Keines — Anbieter+Modell oder Sitzungsstandard`,autoReviewModelSelectionLabel:`Profilauswahl`,autoReviewModelSelectionHint:`Wählt das nächste Profilmodell der Reihe nach oder ein zufälliges Startmodell pro Review.`,autoReviewModelSelectionRoundRobin:`Round-robin — in Profilreihenfolge`,autoReviewModelSelectionRandom:`Zufällig — aus dem Profil wählen`,autoReviewFallbackModelsLabel:`Fallback-/Round-robin-Modelle`,autoReviewFallbackModelsEmpty:`Keine Fallback-/Round-robin-Modelle konfiguriert`,autoReviewFallbackModelsHint:`Modelle aus Profil oder globaler Kette; sie bilden Auswahlpool und Wiederholungskette.`,autoReviewModelLabel:`Modell`,autoReviewModelHint:`Modell für Auto-Review-Agent. Erfordert zuerst einen Anbieter.`,autoReviewDebounceLabel:`Entprellintervall (ms)`,autoReviewDebounceHint:`Mindestabstand zwischen Reviews nach Dateiänderung.`,autoReviewMaxFilesLabel:`Max. Dateien pro Batch`,autoReviewMaxFilesHint:`Dateien pro Auto-Review-Aufruf.`,autoReviewMaxConcurrentLabel:`Max. gleichzeitige Reviews`,autoReviewMaxConcurrentHint:`Limit für parallele Review-Subagents.`,autoReviewCascadeLabel:`Kaskade bei`,autoReviewCascadeHint:`Schwellwert für Folgeagenten — startet Sicherheits- und Bug-Scanner.`,autoReviewCascadeOff:`Aus — keine Kaskade`,autoReviewCascadeCritical:`Kritisch — nur kritische Funde`,autoReviewCascadeHigh:`Hoch — kritische oder hohe Funde`,autoReviewPickModel:`Anbieter/Modell für Auto-Review wählen`,autoReviewPickModelHint:`Anbieter/Modell oder Fallback-Profil für Auto-Review wählen.`,pluginsPerPluginHint:`Einzelne Plugins aktivieren oder deaktivieren. Änderungen werden mit der nächsten Sitzung wirksam.`},y={flagsHeading:`Feature-Flags`,mcpLabel:`MCP-Server`,mcpHint:`Model Context Protocol-Integrationen aktivieren.`,pluginsLabel:`Plugins`,pluginsHint:`Vom Nutzer installierte Plugins laden und ausführen.`,memoryLabel:`Speicher`,memoryHint:`Fakten sitzungsübergreifend speichern und abrufen.`,skillsLabel:`Skills`,skillsHint:`Domänenspezifische Skill-Prompts laden.`,modelsRegistryLabel:`Modell-Registry`,modelsRegistryHint:`Das models.dev-Katalog zur Anbieter-Entdeckung nutzen.`,toolCoachLabel:`Tool Coach`,toolCoachHint:`Empfiehlt während der Aufgabe passende aktivierte Tools und hilft nach Tool-Fehlern. Standardmäßig aktiviert.`,indexOnStartLabel:`Beim Start indizieren`,indexOnStartHint:`Symbol-Index der Codebasis beim Sitzungsstart aufbauen.`,pluginsPerPluginHeading:`🔌 Pro-Plugin-Steuerung`,pluginSearch:`Plugins suchen`,pluginEnabledOnly:`Nur aktivierte`,pluginNoMatches:`Keine Plugins entsprechen diesem Filter.`,pluginsPerPluginHint:`Einzelne Plugins aktivieren oder deaktivieren. Änderungen werden mit der nächsten Sitzung wirksam.`,pluginChimera:`Chimera — Code-Review nach Sitzungsende`,pluginSkills:`Skills — Skill-Bibliothek & -Erstellung`,pluginPrompts:`Prompts — Prompt-Bibliothek & Generierung`,pluginCostTracker:`Cost Tracker — Token- & Kostenverfolgung`,pluginTelegram:`Telegram — Benachrichtigungsbot`,pluginErrorLens:`Error Lens — Fehlerdiagnose`,pluginSecretScanner:`Secret Scanner — Zugangsdaten-Erkennung`,pluginLintGate:`Lint Gate — Lint vor Iteration`,pluginDiffSummary:`Diff Summary — kompakte Diffs`,pluginDepGuard:`Dep Guard — Abhängigkeitsregeln`,pluginTypeGate:`Type Gate — Typecheck vor Iteration`,pluginInjectionShield:`Injection Shield — Prompt-Injection`,pluginPromptFirewall:`Prompt Firewall — Eingabefilterung`,pluginTokenBudget:`Token Budget — Token-Limits`,pluginLoopBreaker:`Loop Breaker — Erkennung außer Kontrolle`,heading:`Kontext & Debug`,autoCompactLabel:`Kontext auto-kompaktieren`,autoCompactHint:`Kontextfenster in der Nähe von Limits automatisch kürzen.`,compactorStrategyLabel:`Compaktor-Strategie`,compactorStrategyHint:`Wie der Kontext komprimiert wird, wenn er zu groß wird.`,compactorStrategyHybrid:`Hybrid — schnelle Regeln (Standard)`,compactorStrategyIntelligent:`Intelligent — LLM-Zusammenfassung`,compactorStrategySelective:`Selektiv — LLM-gesteuerte Auswahl`,contextModeLabel:`Kontext-Modus`,contextModeHint:`Kontextfenster-Richtlinie — balanced ist Standard.`,contextModeBalanced:`Ausgewogen — normale Kontextnutzung`,contextModeFrugal:`Sparsam — konservative Token-Nutzung`,contextModeDeep:`Tief — größerer Kontext für komplexe Aufgaben`,tokenSavingLabel:`Token-Sparmodus`,tokenSavingHint:`Steuert direkte Tool-Schemas und die System-Prompt-Größe der nächsten Sitzung.`,tokenSavingAuto:`Auto — Prompt an das Modellfenster anpassen`,tokenSavingOff:`Aus — kein Token-Sparen`,tokenSavingMinimal:`Minimal — grundlegende Optimierung`,tokenSavingLight:`Leicht — moderate Reduktion`,tokenSavingMedium:`Mittel — erhebliche Einsparungen`,tokenSavingAggressive:`Aggressiv — kleinste direkte Oberfläche und Prompt`},b={logLevelLabel:`Log-Level`,logLevelHint:`Mindest-Schweregrad für serverseitiges Logging.`,logLevelDebug:`Debug — alles`,logLevelInfo:`Info — normaler Ablauf`,logLevelWarn:`Warn — nur Probleme`,logLevelError:`Error — nur Fehler`,auditLevelLabel:`Audit-Level`,auditLevelHint:`Detaillierungsgrad für Sitzungs-Audit-Logs.`,auditLevelMinimal:`Minimal — nur Fehler`,auditLevelStandard:`Standard — Tool-Aufrufe + Fehler`,auditLevelFull:`Voll — jedes Ereignis (große Logs)`,fsAccessLabel:`Dateisystemzugriff`,fsAccessHint:`Geltungsbereich der Datei-Tools. Gilt ab der nächsten Sitzung.`,fsAccessUnrestricted:`Uneingeschränkt — beliebiger Pfad`,fsAccessProject:`Projekt — auf das Projektverzeichnis beschränkt`,debugStreamLabel:`Debug-Stream`,debugStreamHint:`Roher SSE-Hexdump auf stderr des Servers zum Provider-Debugging.`,heading:`Logs & Debug`},x={heading:`Sicherheit & Überwachung`,brainHeading:`🧠 Brain – Entscheidungssteuerung`,brainHint:`Entscheidungsmodelle, Council, Eskalation und Risikoobergrenze – sofort wirksam, in der globalen Konfiguration gespeichert.`,shadowHeading:`👁 Schatten-Agent – Flottenmonitor`,shadowHint:`Der Schatten-Agent überwacht alle Flottenagenten, verfolgt ihre Aufgaben und erkennt Anomalien.`,toolsHeading:`🔧 Tool Access Control`,toolsHint:`Einzelne Tools aktivieren oder deaktivieren. Verändernde Tools sind bernsteinfarben markiert.`,breakerHeading:`Prozess-Schutzschalter`,breakerHint:`bash/exec nach wiederholten Fehlern sperren; ein Auslösen startet den Kill-/Reset-Countdown.`},S={switchingTo:`Wechseln zu {{provider}} / {{model}}…`,switching:`Modell wird gewechselt…`,switchingToTarget:`Wechsel zu {{target}}…`,previousModel:`vorheriges Modell`,modelSwitchedNextRequest:`Modell gewechselt: {{from}} → {{to}}. Aktiv für die nächste LLM-Anfrage.`,modelSwitchedRunActive:`Modell gewechselt: {{from}} → {{to}}. Aktiv für die nächste LLM-Anfrage; der aktuelle Lauf wird fortgesetzt und nicht neu gestartet.`,fallbackExists:`Fallback-Profil "{{name}}" existiert bereits`,selectProviderModelFirst:`Wählen Sie zuerst einen Anbieter und ein Modell`,defaultProfileCreated:`Standard-Fallback-Profil erstellt`,profileEmpty:`Fallback-Profil "{{name}}" ist leer`,leaderSetFrom:`Leader aus {{name}} gesetzt`,modelSwitchTimeout:`Zeitüberschreitung beim Modellwechsel. Bitte erneut versuchen.`},C={workbenchHeading:`Workbench-Optik`,workbenchHint:`Sichtbarkeit der Workbench-Oberflächen im Chat umschalten.`,showModelReasoningLabel:`Modell-Reasoning anzeigen`,showModelReasoningHint:`LLM-Reasoning/Thinking-Blöcke im Chatverlauf rendern (TUI-Parität).`,showAgentSwarmPanelLabel:`Agent-Schwarm-Panel`,showAgentSwarmPanelHint:`Steuert, wo das Agent-Schwarm-Panel (Fleet + Mission Queue) angezeigt wird.`,swarmPanelBottom:`Unteres Panel`,swarmPanelSidebar:`Rechte Seitenleiste`,swarmPanelOff:`Aus`,titleAnimationLabel:`Titelanimation`,titleAnimationHint:`Terminal-/Tab-Titel mit Laufstatus animieren (TUI-Parität).`,keyboardShortcutsLabel:`Tastenkürzel`,keyboardShortcutsHint:`Globale Tastenkürzel (Strg+K, Alt+1..4, usw.) aktivieren. Standardmäßig deaktiviert.`,statusChipHeading:`Status-Chip & Statuszeile`,statusChipHint:`Visueller Stil für die TUI/CLI-Statuszeile und den Arbeits-Chip.`,thinkingWordLabel:`Denkwort`,thinkingWordHint:`Einzelnes kurzes Wort, das im TUI-Status-Chip angezeigt wird, während der Agent arbeitet.`,thinkingWordInvalid:`Ein Wort mit höchstens 16 Buchstaben, Ziffern, Unterstrichen oder Bindestrichen eingeben.`,statuslineModeLabel:`Statuszeilen-Modus`,statuslineModeHint:`Detailgrad der TUI-Statusleiste.`,statuslineModeMinimum:`Minimal`,statuslineModeDetailed:`Detailliert`,statuslineModeNoColor:`Ohne Farbe`,animationStyleLabel:`Animationsstil`,animationStyleHint:`Animation für den TUI-Arbeits-Chip.`,animationStyleRainbow:`Regenbogen`,animationStyleWave:`Welle`,animationStylePulse:`Puls`,animationStyleDots:`Punkte`,animationStyleBreathe:`Atmen`,animationStyleStatic:`Statisch`,animationStyleCycle:`Wechselnd`,refineHeading:`Refine-Countdown & Diffs`,refineHint:`Grace-Countdown vor dem Refiner und Mindestanzahl von Dateien für die Multi-Diff-Fußzeile konfigurieren.`,preRefineSecondsLabel:`Vor-Refine-Countdown`,preRefineSecondsHint:`Wartezeit vor dem Refiner in Sekunden. 0 = Countdown überspringen und sofort verfeinern.`,preRefineSecondsPresets:`Voreinstellungen: {{presets}} Sekunden (0 = aus).`,multiDiffSummaryLabel:`Multi-Diff-Zusammenfassung`,multiDiffSummaryHint:`Mindestanzahl von Dateien, ab der die aggregierte 'N Dateien · +X -Y' Fußzeile über den Einzelblöcken erscheint.`,multiDiffSummaryPresets:`Voreinstellungen: {{presets}} (0 = aus).`,memoryHeading:`Read-Tool & SAGE-Memory-Injection`,memoryHint:`Umschalten, was das Read-Tool enthält und wann SAGE-Memory-Blöcke in Tool-Ergebnissen erscheinen.`,readSymbolsLabel:`Symbole lesen`,readSymbolsHint:`Wenn aktiv, enthält das Read-Tool Codebase-Index-Symbole neben dem Datei-Inhalt.`,showSageMemoryInjectLabel:`SAGE Memory Inject anzeigen`,showSageMemoryInjectHint:`Wenn aktiv, werden SAGE-Memory-Injection-Blöcke in Tool-Ergebnissen angezeigt.`,sageMemoryInjectThresholdLabel:`SAGE-Memory-Inject-Schwelle`,sageMemoryInjectThresholdHint:`Mindest-Beziehungsstärke für eine injizierte SAGE-Memory (0.72–0.95).`,footnote:`Diese Einstellungen spiegeln den TUI- /settings-Picker wider. Schalter wirken sofort; einige Felder erfordern einen Session-Neustart.`,sageRelaxed:`0,72 (locker)`,sageDefault:`0,85 (Standard)`,sageStrict:`0,95 (streng)`},w=`Lokale Einstellungen löschen`,T=`Abbrechen`,E=`Einstellungen dieses Browsers löschen?`,D=`Löscht die in diesem Browser gespeicherten Einstellungen und lädt die Seite neu. Verbundene Einstellungen werden erneut vom Server geladen.`,O=`Löschen und neu laden`,k=JSON.parse(`{"heading":"Brain","headingHint":"Entscheidungsmodelle, Rat, Eskalation und Risiko-Decke — live angewendet, in der globalen Konfiguration gespeichert.","riskHeading":"Autonomie-Decke","escalationHeading":"Eskalation","escalationModeLabel":"Modus","escalationModeHint":"Headless: Das Brain blockiert nie auf einen Menschen — unbeantwortete Eskalationen werden über die sichere Endrichtlinie aufgelöst. Gilt für CLI/TUI-Sitzungen; das eigenständige WebUI-Brain ist immer headless.","escalationDecisionTimeoutLabel":"Entscheidungs-Timeout","escalationDecisionTimeoutHint":"Zeitbudget pro LLM-Aufruf für eine Brain-Entscheidung.","escalationHumanTimeoutLabel":"Timeout für menschliche Antwort","escalationHumanTimeoutHint":"Interaktiver Modus: Wie lange ein Eskalations-Prompt warten darf, bevor die Endrichtlinie ihn auflöst.","escalationTerminalPolicyLabel":"Endrichtlinie","escalationTerminalPolicyHint":"Wie eine headless-Eskalation ohne verfügbaren Menschen aufgelöst wird. Konservativ akzeptiert eine empfohlene Option bei niedrigem/mittlerem Risiko; alles-ablehnen akzeptiert nie automatisch; mit-Empfehlung-fortfahren akzeptiert eine empfohlene Option bei JEDEM Risiko.","escalationDecisionLogSizeLabel":"Größe des Entscheidungsprotokolls","escalationDecisionLogSizeHint":"Rollierendes In-Memory-Entscheidungsprotokoll für die Statusansicht.","rulesHeading":"Deterministische Regeln","rulesConfigured":"{{count}} konfiguriert","rulesBody":"Wird vor jedem Provider-Aufruf ausgewertet — der erste Treffer gewinnt. Bearbeiten Sie sie in der globalen Konfigurationsdatei; diese Ansicht ist schreibgeschützt.","rulesOff":"aus","rulesDropped":"{{count}} Regel(n) verworfen","heuristicsHeading":"Heuristiken","heuristicsBody":"Kostenlose Mustervermutungen, die eine Frage lösen, bevor ein Modell läuft. Standardmäßig alle an — schalten Sie eine aus, wenn ihre Vermutung für Ihre Arbeitslast falsch ist.","heuristicsLowRiskLabel":"Automatische Antwort bei niedrigem Risiko","heuristicsLowRiskHint":"Beantwortet risikoarme Anfragen automatisch, die bereits eine empfohlene Option tragen.","heuristicsBlockedLabel":"Blockiert-aufgelöst","heuristicsBlockedHint":"'blocked …' plus ein expliziter Auflösungsmarker im Kontext löst zu „fortfahren\\" auf.","heuristicsDeadlockLabel":"Deadlock überspringen","heuristicsDeadlockHint":"'deadlock' plus fehlgeschlagene Arbeitseinheiten im Kontext löst zu „überspringen und fortfahren\\" auf.","heuristicsRetryLabel":"Wiederholungen erschöpft","heuristicsRetryHint":"'failed'/'retry' plus nachweislich erschöpfte Wiederholungen markiert die Einheit als fehlgeschlagen und fährt fort.","heuristicsPingLabel":"Fortfahren-Ping","heuristicsPingHint":"Ein bloßer Fortfahren/Weiter-Ping ohne konkurrierende Alternative löst zu „fortfahren\\" auf.","heuristicsMarkers":"Marker: {{markers}}","qualityHeading":"LLM-Qualität","qualityCircuit_one":"Schaltung {{state}} · {{count}} Fehler","qualityCircuit_other":"Schaltung {{state}} · {{count}} Fehler","qualityResponseBudgetLabel":"Antwortbudget","qualityResponseBudgetHint":"Ausgabetoken pro Entscheidungsaufruf. Eine Brain-Antwort ist eine Entscheidung plus eine Begründung in einem Satz.","qualityRejectLabel":"Unsichere Antworten ablehnen","qualityRejectHint":"Behandelt eine abgelehnte oder leere Antwort als „diese Stufe konnte nicht entscheiden\\", statt sie als Antwort zu akzeptieren.","qualityMinConfidenceLabel":"Mindestkonfidenz","qualityMinConfidenceHint":"Lehnt Antworten ab, deren selbst gemeldete Konfidenz darunter liegt. Antworten ohne Konfidenzangabe bestehen immer.","qualityDenyTerminalLabel":"Ablehnung ist terminal","qualityDenyTerminalHint":"Ob eine Ablehnung aus der Einzel-LLM-Stufe die Entscheidung beendet. 'when-decided' macht eine echte Ablehnung terminal, während Infrastrukturfehler weiter eskalieren.","traceHeading":"Replay-Spur","traceRecordLabel":"Entscheidungsspuren aufzeichnen","traceRecordHint":"JSONL pro Entscheidung jeder Stufe, jedes Pool-Ziels und jeder Ratsabstimmung, mit Zeiten und Token-Nutzung. Standardmäßig aus — Aktivieren schreibt Entscheidungsinhalte auf die Festplatte.","traceContentLabel":"Spurinhalt","traceContentHint":"'full' behält Frage und Kontext (nötig zum Replay einer Entscheidung); 'redacted' kürzt Freitext; 'none' zeichnet nur Metadaten auf.","cacheHeading":"Entscheidungs-Cache","cacheStats":"{{hits}} Treffer / {{misses}} Fehlschlag · {{size}} live","cacheReplayLabel":"Identische Urteile wiedergeben","cacheReplayHint":"Verwendet ein früheres Rats-/LLM-Urteil für eine identische wiederholte Frage wieder. Deterministische Stufen und Frage-an-Mensch werden nie gecacht; ein Urteil, das das Protokoll als fehlgeschlagen beobachtet, wird entfernt.","cacheLifetimeLabel":"Eintragslebensdauer","cacheLifetimeHint":"Wie lange ein gecachtes Urteil wiedergebbar bleibt.","cacheMaxEntriesLabel":"Maximale Einträge","cacheMaxEntriesHint":"Obergrenze für live gecachte Urteile.","monitorHeading":"Monitor","monitorBody":"Selbstaktivierung bei Notfallsignalen. Der Monitor wird einmal beim Start gebaut, daher gelten diese Einstellungen für die nächste Sitzung statt live.","monitorWatchLabel":"Auf Notfallsignale achten","monitorWatchHint":"Tool-Fehlerketten, Fehlerstürme, Agent-Staus und Datei-Churn aktivieren das Brain von selbst.","monitorPolicyLabel":"Signalrichtlinie","monitorPolicyHint":"Wie ein erkanntes Signal aufgelöst wird. 'llm' konsultiert das Brain; 'steer' greift immer ein und 'observe' nie — beide ohne Provider-Aufruf.","modelsHeading":"Entscheidungsmodelle","modelsSessionBadge":"Sitzungsmodell","modelsResolvedBadge":"{{resolved}}/{{total}} aufgelöst","modelsUseSessionLabel":"Sitzungsmodell verwenden","modelsUseSessionHint":"Mit dem Modell entscheiden, das die Sitzung ausführt. Durch Hinzufügen von Modellen unten ausschalten.","modelsAddModel":"Modell hinzufügen","modelsPoolStrategyLabel":"Pool-Strategie","modelsPoolStrategyHint":"Fallback: Das erste Modell ist primär, der Rest wird bei Fehlern der Reihe nach versucht. Round-Robin: Entscheidungen rotieren durch den Pool.","councilHeading":"Rat","councilConvened":"einberufen","councilDisabled":"deaktiviert","councilEnableLabel":"Multi-LLM-Rat aktivieren","councilEnableHint":"Fragen mit hohem Einsatz werden von unabhängigen Sitzen (Ausführender / Skeptiker-mit-Veto / Prüfer) statt von einem Modell abgestimmt. Erfordert ≥2 auflösbare Wähler (explizite Sitze unten oder ein Pool mit ≥2 Modellen).","councilSeatsDerived":"Aus dem Pool abgeleitete Sitze: {{seats}}","councilCustomLens":"Benutzerdefinierte Entscheidungslinse — wird dem Sitz wörtlich gesendet.","councilCustomOption":"{{persona}} (benutzerdefiniert)","councilVeto":"Veto","councilAddVoter":"Wähler hinzufügen","councilRiskFloorLabel":"Risiko-Untergrenze","councilRiskFloorHint":"Mindestfragenrisiko, das den Rat statt der Einzelmodell-Stufe einberuft.","councilJudge":"Richter","councilJudgeDesc":"Stichentscheid-Modell, das die Begründung jeder Stimme sieht.","councilResolved":"aufgelöst: {{model}}","councilAlsoVoter":"⚠ auch ein Wähler","councilAuto":"auto","councilPick":"Auswählen…","councilAutoReset":"Auto","councilQuorumLabel":"Quorum","councilQuorumHint":"Anteil der Sitze, die eine gültige Stimme abgeben müssen.","councilApprovalLabel":"Zustimmung","councilApprovalHint":"Anteil des abgegebenen Stimmengewichts, den die Gewinneroption überschreiten muss.","councilPerSeatTimeoutLabel":"Timeout pro Sitz","councilPerSeatTimeoutHint":"Zeitbudget für die Stimme eines einzelnen Sitzes. Langsamer als das Entscheidungs-Timeout bedeutet, dass ein hängender Sitz die Abstimmung aufhält.","councilMaxConcurrencyLabel":"Max. Parallelität","councilMaxConcurrencyHint":"Wie viele Sitze parallel abstimmen. Verringern, wenn der Pool einen ratenbegrenzten Provider teilt.","councilDistinctnessLabel":"Sitzverschiedenheit","councilDistinctnessHint":"Doppelte Sitze ablehnen: 'model' erfordert verschiedene Modelle, 'provider' unabhängige Provider, damit ein Ausfall die Abstimmung nicht kippen kann.","councilVoterBudgetLabel":"Wähler-Antwortbudget","councilVoterBudgetHint":"Ausgabetoken pro Sitzaufruf — Reasoning-Modelle verbrauchen ihre Denk-Token aus diesem Budget.","councilRoundsLabel":"Beratungsrunden","councilRoundsHint":"Runde 1 ist unabhängig. In späteren Runden sieht jeder Sitz die Stimmen der anderen und kann seine Position überdenken. Nur die letzte Runde zählt — und jede Runde kostet einen weiteren Aufruf pro Sitz.","councilJudgeBudgetLabel":"Richter-Antwortbudget","councilJudgeBudgetHint":"Ausgabetoken für den stichentscheidenden Richteraufruf.","councilSeatTemplate":"Sitzvorlage:","ledgerHeading":"Entscheidungsprotokoll","ledgerRecordLabel":"Entscheidungen + Ergebnisse aufzeichnen","ledgerRecordHint":"Speichert jede Entscheidung und ihr beobachtetes Ergebnis; ähnliche vergangene Ergebnisse fließen in zukünftige Brain-Prompts ein.","ledgerAutoDenyLabel":"Nach Fehlern automatisch ablehnen","ledgerAutoDenyHint":"Deterministisch ablehnen (ohne LLM), sobald so viele aufeinanderfolgende Genehmigungen einer Entscheidungsgruppe in beobachteten Fehlern endeten.","ledgerMemoryEntriesLabel":"In-Memory-Einträge","ledgerMemoryEntriesHint":"Ringgröße im Speicher und Anzahl der beim Start von der Festplatte geladenen früheren Einträge.","ledgerRetryWindowLabel":"Interventions-Wiederholungsfenster","ledgerRetryWindowHint":"Eine gleichartige Monitor-Intervention, die innerhalb dieses Fensters erneut auslöst, markiert die vorherige Steuerung als Fehlschlag.","recentHeading":"Letzte Entscheidungen ({{count}})","recentEmpty":"In dieser Sitzung wurden noch keine Entscheidungen aufgezeichnet.","optInteractive":"Interaktiv (mich fragen)","optHeadless":"Headless (nie fragen)","optConservative":"Konservativ (Standard)","optDenyAll":"Alles ablehnen","optContinueRecommended":"Mit Empfehlung fortfahren","optNeverDefault":"Nie (Standard)","optWhenDecided":"Wenn entschieden","optAlways":"Immer","optFullDefault":"Voll (Standard)","optRedacted":"Gekürzt","optMetadataOnly":"Nur Metadaten","optConsultBrain":"Brain konsultieren (Standard)","optAlwaysSteer":"Immer steuern","optObserveOnly":"Nur beobachten","optFallback":"Fallback","optRoundRobin":"Round-Robin","optMediumPlus":"Mittel+","optHighPlus":"Hoch+","optCriticalOnly":"Nur kritisch","optNoneDefault":"Keine (Standard)","optDistinctModels":"Verschiedene Modelle","optDistinctProviders":"Verschiedene Provider","optDefault3":"Standard (3)","optOff":"Aus","pickPoolTitle":"Brain-Pool-Modell hinzufügen","pickPoolHint":"Geordneter Entscheidungspool — der erste ist primär.","pickVoterTitle":"Ratsmitglied hinzufügen","pickVoterHint":"Dialog bleibt offen — ≥2 Wähler hinzufügen, dann schließen.","pickJudgeTitle":"Ratsrichter wählen","pickJudgeHint":"Stichentscheid, der jede Stimme sieht.","persistError":"Einstellungen live angewendet, aber nicht gespeichert.","riskCopy":{"off":"Ein Mensch entscheidet alles","low":"Nur niedriges Risiko automatisch entscheiden","medium":"Automatisch bis mittleres Risiko entscheiden","high":"Automatisch bis hohes Risiko entscheiden","all":"Alles automatisch entscheiden"},"rulesConfigured_one":"{{count}} konfiguriert","rulesConfigured_other":"{{count}} konfiguriert"}`),A={default15s:`Standard (15 s)`,waitForever:`Unbegrenzt warten`,defaultHalf:`Standard (0,5)`,all:`Alle`,n200Default:`200 (Standard)`,offDefault:`Aus (Standard)`,n20Default:`20 (Standard)`,m5Default:`5 min (Standard)`,default:`Standard`,oneSerial:`1 (seriell)`,roundsOff:`1 (keine Beratung)`,default500:`Standard (500)`,default10m:`Standard (10 min)`},j={capToolCall:`Tool-Aufruf`,capReasoning:`Reasoning`,capTemperature:`Temperatur`,capAttachment:`Anhang`,capStructuredOutput:`Strukturierte Ausgabe`,capOpenWeights:`Offene Gewichte`},M={presetsHeading:`Schrift-Vorlagen`,presetsHint:`Eine Vorlage setzt alle Rollen auf einmal; Schriften werden erst bei der ersten Nutzung geladen.`,presets:{workbench:{label:`Werkbank`,description:`Der Standard-Look der Operator-Werkbank.`},plex:{label:`IBM Plex`,description:`Eine technische Schriftfamilie durchgehend.`},modern:{label:`Modern`,description:`Neutrale Inter mit JetBrains Mono für Code.`},geist:{label:`Geist`,description:`Klare Kombination aus Geist Sans und Mono.`},classic:{label:`Klassisch`,description:`Adobes Source Sans, Serif und Code Pro.`},editorial:{label:`Editorial`,description:`Serifen-Überschriften und eine buchartige Chat-Schrift.`},readable:{label:`Lesbar`,description:`Gut lesbare Schriften für lange Sitzungen.`},friendly:{label:`Freundlich`,description:`Runde, entspannte Formen mit Fira Code.`},monospace:{label:`Monospace`,description:`Überall Monospace, im Terminal-Stil.`},system:{label:`System`,description:`Schriften des Betriebssystems, kein Download.`}},rolesHeading:`Schriften nach Rolle`,rolesHint:`Überschreibe jede Rolle zusätzlich zur Vorlage. Mit „Wie …“ markierte Rollen folgen ihrer übergeordneten Rolle.`,roles:{ui:{label:`Oberfläche & Panels`,hint:`Schaltflächen, Menüs, Seitenleisten, Listen und Einstellungen.`},display:{label:`Überschriften`,hint:`Seiten- und Abschnittstitel.`},reading:{label:`Chat & Dokumente`,hint:`Assistentenantworten, Markdown und Postfachnachrichten.`},code:{label:`Inline-Code & Daten`,hint:`Codeblöcke, Logs, IDs und Tabellenwerte.`},editor:{label:`Code-Editor`,hint:`Monaco-Dateieditor und Diff-Ansicht.`},terminal:{label:`Terminal`,hint:`Integrierte Terminalsitzungen.`}},fromPreset:`Vorlage ({{name}})`,inherit:`Wie {{role}} ({{name}})`,categories:{sans:`Serifenlos`,serif:`Serif`,mono:`Monospace`},systemTag:`System`,sizeHeading:`Größe & Abstand`,sizeHint:`Die Textgröße der Oberfläche skaliert alle Panels; Editor- und Terminalgrößen werden in Pixeln festgelegt.`,sizePresets:{compact:`Kompakt`,normal:`Normal`,comfortable:`Komfortabel`,large:`Groß`,custom:`Benutzerdefiniert`},controls:{uiScale:{label:`Textgröße der Oberfläche`,hint:`Skaliert Text in Panels, Chat und Dialogen.`},editorFontSize:{label:`Schriftgröße im Editor`,hint:`Monaco-Editor und Diff-Ansicht.`},codeLineHeight:{label:`Zeilenhöhe für Code`,hint:`Editor, Diff-Ansicht und Codeblöcke.`},terminalFontSize:{label:`Schriftgröße im Terminal`,hint:`Integriertes Terminal.`},terminalLineHeight:{label:`Zeilenhöhe im Terminal`,hint:`Zeilenabstand im Terminal.`},ligatures:{label:`Code-Ligaturen`,hint:`Verbindet => !== >= in unterstützenden Schriften (Fira Code, Cascadia, JetBrains Mono…) zu einer Glyphe. Gilt nicht im Terminal.`}},previewHeading:`Live-Vorschau`,preview:{heading:`Den Sitzungslader umbauen`,body:`Der Agent hat 12 Dateien gelesen und eine zweistufige Änderung vorgeschlagen. Prüfe den Diff vor dem Anwenden.`,label:`Oberflächen-Label`},resetAll:`Alle Schrifteinstellungen zurücksetzen`,resetOverrides:`Rollen-Überschreibungen löschen`},N={description:`Manage the decision provider and see where Jev is used.`,loading:`Loading Jev settings…`,timeout:`No response from server. Reconnect and retry.`,route:`Decision provider`,routeChange:`Changing provider clears the previous key, endpoint and model. Enter a new key or use the provider environment variable.`,key:`API key`,keyHint:`Leave blank to keep the current key`,removeKey:`Remove saved key (environment key may still apply)`,endpoint:`Endpoint override`,model:`Model override`,defaultHint:`Empty uses provider default`,requestTimeout:`Request timeout (ms)`,featureHint:`Switches permit Jev usage. Actual use also depends on the prerequisites and triggers below.`,save:`Save Jev settings`,test:`Test saved connection`,testHint:`The test sends one small billed request. Save changes first. Restart existing sessions to apply all consumers.`,activity:`Jev activity`,activityHint:`Refreshes every 3 seconds. Last 300 requests in this server process, across its sessions. No prompts, credentials or raw errors. Disk log rotates at 5 MB. Answered means a typed response, not necessarily a decision accepted by the consumer.`,filter:`Feature`,all:`All`,empty:`No matching Jev requests yet. Test the connection or use an enabled feature.`,features:{brain:`Brain decisions`,memoryTriage:`Memory triage`,topicShift:`Topic changes`,memoryRecall:`Memory recall`,compaction:`Context compaction`,kanbanVerify:`Kanban verification`,modelTier:`Subagent model tier`,semanticLint:`Semantic lint`,tool:`Entscheidungswerkzeug für Agenten`,skillSuggestion:`Skill suggestions`,fleetDispatch:`Fleet dispatch`},readinessScope:`These are saved profile conditions, not the live state of every session. A request below means the service was called, not that its answer was accepted.`,unknownReadiness:`Readiness unavailable on this server`,unsaved:`Unsaved change`,lastRequest:`Last runtime request`,notObserved:`No runtime request in the displayed recent log.`,contextStrategy:`Profile compaction strategy`,contextScope:`Selective enables the Jev selection path. Save changes and restart existing sessions; a session-specific strategy can override this profile setting.`,openContext:`Open session context settings`,configureTiers:`Configure model tiers`,tiersHint:`Enable tiers and define at least two levels, cheapest first. Set their models or fallback profiles and a default tier. Changes here save immediately.`,checkHeading:`Live capability checks`,checkHint:`Runs 22 synthetic cases across all 11 features using the saved account, including disabled features. Makes billed API calls, sends no project content and changes no feature settings. Passing does not prove workload quality or that a session uses the feature.`,checkAll:`Test all 11 features`,checkRunning:`Running live checks…`,expected:`Expected`,actual:`Actual`,includeChecks:`Include diagnostic requests`,selfTest:`Diagnostic`,account:{ready:`Account configured`,unconfigured:`Account required`,unusable:`Account settings invalid`},readiness:{disabled:`Disabled`,"account-required":`Account required`,blocked:`Setup required`,conditional:`Configured · waiting for trigger`},reasons:{disabled:`This feature is not permitted to use Jev.`,"account-required":`Configure a valid Jev account first.`,"selective-required":`Jev selection requires selective compaction; hybrid and intelligent do not use this selector.`,"tiers-disabled":`The model tier system is disabled.`,"tiers-required":`Define at least two model tiers.`,"skills-disabled":`The global skills feature is disabled.`,"trigger-required":`Runs only when its trigger conditions are met.`,"memory-disabled":`Memory or SAGE is disabled.`,"recall-injection-required":`SAGE turn context recall is disabled; the Jev recall filter requires this path.`},triggers:{brain:`Runs before later decision tiers; uncertain answers defer.`,memoryTriage:`Runs during triage value evaluation and merge decisions.`,topicShift:`Runs when topic-change prechecks require a judgment; repeated results may be cached.`,memoryRecall:`Filters candidates returned by SAGE turn context recall; cached judgments are reused.`,compaction:`Rates middle conversation turns during selective compaction; requires a provider and sufficient history.`,kanbanVerify:`Judges open agent-type criteria against changed files and their diff.`,modelTier:`Suggests a tier for delegations with no explicit model/tier and no matching role/phase route.`,semanticLint:`Runs when the semantic lint command finds candidates; it is not an automatic edit watcher.`,tool:`Wird ausgeführt, wenn ein Agent jev mit Belegen und typisierten Fragen aufruft.`,skillSuggestion:`Requires skills enabled, at least two skills, and gate/fit thresholds; results may be cached.`,fleetDispatch:`Runs only for ambiguous routing with multiple candidate roles.`},recallTurnContext:`SAGE turn context recall`,recallTurnHint:`Adds relevant memories to each new turn; the Jev recall filter runs on this path. Memory and SAGE must also be enabled. Save and restart existing sessions.`,logContent:`Record full request/response content in the log file`,logContentHint:`Writes the state sent, the full question wording and the answers with their distributions to the Jev log file. This view stays metadata-only either way, and the account key is scrubbed. Turn it off when you are done. Save and restart existing sessions.`,logContentOn:`Full request/response content is recorded in this file. It is never shown here.`,logContentOff:`Metadata only. Full request/response content is not recorded.`},P={title:e,subtitle:t,navigation:n,providerTest:r,tabs:i,model:a,connection:o,provider:s,providerModels:c,mcp:l,allowlist:u,oauth:d,general:f,agent:p,execution:m,fallbacks:h,fleet:g,integrations:_,features:v,context:y,logs:b,security:x,toast:S,display:C,resetLabel:w,cancel:T,resetConfirmTitle:E,resetConfirmBody:D,resetConfirmAction:O,brain:k,brainOpt:A,modelSchema:j,fonts:M,jev:N};export{p as agent,u as allowlist,k as brain,A as brainOpt,T as cancel,o as connection,y as context,P as default,C as display,m as execution,h as fallbacks,v as features,g as fleet,M as fonts,f as general,_ as integrations,N as jev,b as logs,l as mcp,a as model,j as modelSchema,n as navigation,d as oauth,s as provider,c as providerModels,r as providerTest,O as resetConfirmAction,D as resetConfirmBody,E as resetConfirmTitle,w as resetLabel,x as security,t as subtitle,i as tabs,e as title,S as toast};
|