@loicngr/kobo 2.1.0 → 2.1.2

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.
Files changed (116) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/server/db/migrations.js +8 -0
  3. package/dist/server/db/schema.js +2 -0
  4. package/dist/server/routes/usage.js +28 -2
  5. package/dist/server/services/agent/engines/claude-code/engine.js +60 -7
  6. package/dist/server/services/agent/engines/codex/engine.js +1 -0
  7. package/dist/server/services/agent/engines/codex/options-builder.js +6 -1
  8. package/dist/server/services/agent/orchestrator.js +5 -1
  9. package/dist/server/services/review-service.js +6 -2
  10. package/dist/server/services/usage/reliability.js +24 -0
  11. package/package.json +10 -10
  12. package/src/client/dist/pwa/assets/ActivityFeed-CO5rOaa5.js +8 -0
  13. package/src/client/dist/pwa/assets/{ActivityFeed-BYR5x7aa.css → ActivityFeed-DCmiJP-z.css} +1 -1
  14. package/src/client/dist/pwa/assets/{ChangelogPage-BJdICFvz.js → ChangelogPage-DNRcPRtW.js} +1 -1
  15. package/src/client/dist/pwa/assets/{ClosePopup-CWjIRHxu.js → ClosePopup-BikuzYle.js} +1 -1
  16. package/src/client/dist/pwa/assets/{ComparisonPanel-2GLd8KIy.js → ComparisonPanel-DZoDqgJI.js} +1 -1
  17. package/src/client/dist/pwa/assets/{CreatePage-B9AdNJZj.js → CreatePage-wNH35uTG.js} +1 -1
  18. package/src/client/dist/pwa/assets/DashboardPage-DUyy4SzS.js +1 -0
  19. package/src/client/dist/pwa/assets/DashboardPage-XiCj24i2.css +1 -0
  20. package/src/client/dist/pwa/assets/{DiffViewer-X25vuf83.js → DiffViewer-CZ5QwXqi.js} +3 -3
  21. package/src/client/dist/pwa/assets/{DocumentsPanel-BastjrEm.js → DocumentsPanel-sBatgKA-.js} +1 -1
  22. package/src/client/dist/pwa/assets/{DrawerToggleButton-DbipGmBL.js → DrawerToggleButton-Dfvkaro0.js} +1 -1
  23. package/src/client/dist/pwa/assets/{GitPanel-CnW4iVao.js → GitPanel-B8e1olfm.js} +3 -3
  24. package/src/client/dist/pwa/assets/{HealthPage-aieNQly-.js → HealthPage-BwXYpczh.js} +1 -1
  25. package/src/client/dist/pwa/assets/MainLayout-DFXIS_wv.js +2 -0
  26. package/src/client/dist/pwa/assets/{MainLayout-Cc4XzCAy.css → MainLayout-gHENJEFQ.css} +1 -1
  27. package/src/client/dist/pwa/assets/{QBadge-FWC1zDCq.js → QBadge-CQF1smL-.js} +1 -1
  28. package/src/client/dist/pwa/assets/{QBanner-CcRI_QIy.js → QBanner-bdDA-A5g.js} +1 -1
  29. package/src/client/dist/pwa/assets/{QBtn-DEdx_Y1V.js → QBtn-CcQQrYA_.js} +1 -1
  30. package/src/client/dist/pwa/assets/{QBtnDropdown-BWy-rh45.js → QBtnDropdown-C-1EhO9J.js} +1 -1
  31. package/src/client/dist/pwa/assets/{QBtnGroup-CAoD6G0Q.js → QBtnGroup-wd5lKRXu.js} +1 -1
  32. package/src/client/dist/pwa/assets/{QBtnToggle-C_hQ2UCQ.js → QBtnToggle-BnC8rTql.js} +1 -1
  33. package/src/client/dist/pwa/assets/{QChip-DCPUhqXX.js → QChip-D75nKi-L.js} +1 -1
  34. package/src/client/dist/pwa/assets/{QExpansionItem-DfmdBGuW.js → QExpansionItem-RpMPvfxX.js} +1 -1
  35. package/src/client/dist/pwa/assets/{QItemSection-BhqphaH6.js → QItemSection-Bt9H35JJ.js} +1 -1
  36. package/src/client/dist/pwa/assets/{QList-CHm4JNP0.js → QList-D5msNbSZ.js} +1 -1
  37. package/src/client/dist/pwa/assets/{QMarkupTable-CNpiA9oq.js → QMarkupTable-D3REW6RC.js} +1 -1
  38. package/src/client/dist/pwa/assets/{QPage-BXBw2Alx.js → QPage-HAaeQ-cv.js} +1 -1
  39. package/src/client/dist/pwa/assets/{QSelect-BfqaWakg.js → QSelect-Dpru_T81.js} +1 -1
  40. package/src/client/dist/pwa/assets/{QSpinnerDots-BkFiCsH3.js → QSpinnerDots-DDsPDUH9.js} +1 -1
  41. package/src/client/dist/pwa/assets/{QTooltip-Cy0T0vk2.js → QTooltip-C31vXtse.js} +1 -1
  42. package/src/client/dist/pwa/assets/{SchedulePanel-YQPObRR3.js → SchedulePanel-D6LTiRFg.js} +1 -1
  43. package/src/client/dist/pwa/assets/{SearchPage-BoBjmItc.js → SearchPage-Dj487BdP.js} +1 -1
  44. package/src/client/dist/pwa/assets/{SettingsPage-0GtDcXRC.js → SettingsPage-CJmgFiAa.js} +1 -1
  45. package/src/client/dist/pwa/assets/{SplitWorkspacePage-4wFh65Lh.js → SplitWorkspacePage-BGSDgGIO.js} +1 -1
  46. package/src/client/dist/pwa/assets/{TerminalPanel-b70x_jqH.js → TerminalPanel-B9LDe7uG.js} +1 -1
  47. package/src/client/dist/pwa/assets/{TouchPan-CcTVcxwd.js → TouchPan-DJqqxDBF.js} +1 -1
  48. package/src/client/dist/pwa/assets/{TourReplayButton-CpEMnQS8.js → TourReplayButton-Dtv_UDaY.js} +1 -1
  49. package/src/client/dist/pwa/assets/{WorkspaceAttentionLabels-C5lTHTp2.js → WorkspaceAttentionLabels-VlJCIkwU.js} +1 -1
  50. package/src/client/dist/pwa/assets/{WorkspacePage-D_V9gNON.js → WorkspacePage-B_SlX8YB.js} +3 -3
  51. package/src/client/dist/pwa/assets/{browser-LBbxVwWf.js → browser-B15GGwtW.js} +1 -1
  52. package/src/client/dist/pwa/assets/{build-path-tree-DyvtWxb0.js → build-path-tree-CU6uXunR.js} +1 -1
  53. package/src/client/dist/pwa/assets/{codicon-Brq4_Ui5.ttf → codicon-DF1abBS2.ttf} +0 -0
  54. package/src/client/dist/pwa/assets/{custom-sounds-BpeLZUDW.js → custom-sounds-CDJsgChY.js} +1 -1
  55. package/src/client/dist/pwa/assets/de-B_Y4EArT.js +17 -0
  56. package/src/client/dist/pwa/assets/{documents-Bjx8lz-h.js → documents-Cf6nmu8Z.js} +1 -1
  57. package/src/client/dist/pwa/assets/editor-CmVjQp1O.css +1 -0
  58. package/src/client/dist/pwa/assets/editor.api-DhaLhNl-.js +420 -0
  59. package/src/client/dist/pwa/assets/editor.worker-BLJF_oQx.js +33 -0
  60. package/src/client/dist/pwa/assets/{efforts-BDHAnNUs.js → efforts-DoYZi0AZ.js} +2 -2
  61. package/src/client/dist/pwa/assets/{engineFeatures-hlEiwqt-.js → engineFeatures-C9XiCfvv.js} +1 -1
  62. package/src/client/dist/pwa/assets/es-DtsTTShP.js +17 -0
  63. package/src/client/dist/pwa/assets/{expand-template-DLDl1qPx.js → expand-template-LDLM-6iN.js} +1 -1
  64. package/src/client/dist/pwa/assets/format-2JisC3s1.js +489 -0
  65. package/src/client/dist/pwa/assets/format-DoyK4IAn.css +1 -0
  66. package/src/client/dist/pwa/assets/{formatters-CWxRHuUu.js → formatters-ZVNs2VOl.js} +1 -1
  67. package/src/client/dist/pwa/assets/fr-C82MIVrA.js +17 -0
  68. package/src/client/dist/pwa/assets/{freemarker2-MPhk0eTh.js → freemarker2-PYrDqU04.js} +1 -1
  69. package/src/client/dist/pwa/assets/{handlebars-C60ru5gR.js → handlebars-BuiY0fFf.js} +1 -1
  70. package/src/client/dist/pwa/assets/{html-ClzchR9j.js → html-Du3cjdug.js} +1 -1
  71. package/src/client/dist/pwa/assets/i18n-BumeGGx_.js +1 -0
  72. package/src/client/dist/pwa/assets/index-DolbyIM4.js +20 -0
  73. package/src/client/dist/pwa/assets/index-VMFLfvp2.css +1 -0
  74. package/src/client/dist/pwa/assets/it-BJNuTcj2.js +17 -0
  75. package/src/client/dist/pwa/assets/{javascript-C43UJmMx.js → javascript-Bb48hPli.js} +1 -1
  76. package/src/client/dist/pwa/assets/{liquid-CYTrvTKF.js → liquid-Be77iQe3.js} +1 -1
  77. package/src/client/dist/pwa/assets/{mdx-CxsXOvkQ.js → mdx-CfohNJja.js} +1 -1
  78. package/src/client/dist/pwa/assets/monaco-contributions-CyM4wsIg.js +53 -0
  79. package/src/client/dist/pwa/assets/monaco-contributions-DvnCTJI2.css +1 -0
  80. package/src/client/dist/pwa/assets/{monaco.contribution-DkjLUmyA.js → monaco.contribution-BcIfN6Mi.js} +2 -2
  81. package/src/client/dist/pwa/assets/{network-auth-CXQn2wO7.js → network-auth-B1xAaHmx.js} +1 -1
  82. package/src/client/dist/pwa/assets/{notify-theme-BrueBr2j.js → notify-theme-DvvaSyg1.js} +1 -1
  83. package/src/client/dist/pwa/assets/{pending-diff-open-B4POItbR.js → pending-diff-open-B6N0vI5n.js} +1 -1
  84. package/src/client/dist/pwa/assets/{project-color-CM3hflLH.js → project-color-Be0t12-n.js} +1 -1
  85. package/src/client/dist/pwa/assets/{python-s2IMpsoV.js → python-BNemmtx8.js} +1 -1
  86. package/src/client/dist/pwa/assets/{razor-DVNXiVBh.js → razor-3NM8iFVf.js} +1 -1
  87. package/src/client/dist/pwa/assets/render-chat-markdown-BWJNIDv3.js +69 -0
  88. package/src/client/dist/pwa/assets/{typescript-BYT_8ABE.js → typescript-DwyZ4CF7.js} +1 -1
  89. package/src/client/dist/pwa/assets/{use-checkbox-CnvHBhSK.js → use-checkbox-2xzX4yYj.js} +1 -1
  90. package/src/client/dist/pwa/assets/{use-id-wXd4c8FA.js → use-id-vOr8PRTG.js} +1 -1
  91. package/src/client/dist/pwa/assets/{use-is-mobile-DpKI3XMy.js → use-is-mobile-CJfSpTHx.js} +1 -1
  92. package/src/client/dist/pwa/assets/{use-tours-CNe8qb1q.js → use-tours-CjASQcG5.js} +1 -1
  93. package/src/client/dist/pwa/assets/{workspace-templates-tBxXE52A.js → workspace-templates-BxYxJt3S.js} +1 -1
  94. package/src/client/dist/pwa/assets/{xml-BIG-fmxk.js → xml-B1UujXdS.js} +1 -1
  95. package/src/client/dist/pwa/assets/{yaml-D7gu2CQh.js → yaml-mHN8kNgU.js} +1 -1
  96. package/src/client/dist/pwa/index.html +5 -5
  97. package/src/client/dist/pwa/sw.js +1 -1
  98. package/src/client/dist/pwa/assets/ActivityFeed-DRgetl1M.js +0 -8
  99. package/src/client/dist/pwa/assets/DashboardPage-CzVOvjSP.js +0 -1
  100. package/src/client/dist/pwa/assets/DashboardPage-D8g7_r4S.css +0 -1
  101. package/src/client/dist/pwa/assets/MainLayout-DqBbE8o4.js +0 -2
  102. package/src/client/dist/pwa/assets/de-v6i2HlE2.js +0 -17
  103. package/src/client/dist/pwa/assets/editor-BJU3Xb3h.css +0 -1
  104. package/src/client/dist/pwa/assets/editor.api-BC3PbJkx.js +0 -413
  105. package/src/client/dist/pwa/assets/editor.worker-iO5iN0DB.js +0 -33
  106. package/src/client/dist/pwa/assets/es-Bc1KgkAT.js +0 -17
  107. package/src/client/dist/pwa/assets/format-CX6Cv1cD.css +0 -1
  108. package/src/client/dist/pwa/assets/format-Q94deO3I.js +0 -435
  109. package/src/client/dist/pwa/assets/fr-ByYPK5vr.js +0 -17
  110. package/src/client/dist/pwa/assets/i18n-Sy42tm-V.js +0 -1
  111. package/src/client/dist/pwa/assets/index-0wtBh1Xt.css +0 -1
  112. package/src/client/dist/pwa/assets/index-CqZ7sDcM.js +0 -20
  113. package/src/client/dist/pwa/assets/it-BYF_88z6.js +0 -17
  114. package/src/client/dist/pwa/assets/monaco-contributions-Cb0afGfW.css +0 -1
  115. package/src/client/dist/pwa/assets/monaco-contributions-Cl4-iVpK.js +0 -51
  116. package/src/client/dist/pwa/assets/render-chat-markdown-TU6CDfD8.js +0 -69
@@ -1,17 +0,0 @@
1
- var e={"tours.settings.skills.title":`Eine Skill-Suite wählen`,"tours.settings.skills.description":`Beginnen Sie mit Standard: keine Erweiterung nötig. Superpowers, gstack, ECC und Kombinationen verwenden Skills, die bereits installiert und für die gewählte Engine verfügbar sind. Die Auswahl ändert Agentenanweisungen; sie installiert keine Skills und erteilt keine Berechtigungen. Benutzerdefiniert erlaubt eigene Anweisungen. Speichern Sie Ihre Auswahl.`,"tours.settings.git.description":`Legen Sie fest, wann Agenten committen, pushen oder veröffentlichen dürfen. Konfigurieren Sie Git-Konventionen und Branch-Präfixe.`,"tours.settings.git.title":`Git-Workflow`,"settings.reviewPromptHint":`Anweisungen an den Agenten beim Start einer Code-Review.`,"settings.help.git":`Einstellungen für Commits, Push und Veröffentlichung, Git-Konventionen und Branch-Präfixe.`,"settings.nav.promptTemplates":`Prompt-Vorlagen`,"settings.nav.git":`Git`,"integration.direct":`Direkte Verbindung`,"integration.directHint":`Optional: Konfigurieren Sie einen vertrauenswürdigen MCP-Befehl auf diesem Server ohne Claude-Konfiguration. Zugangsdaten gehören in Umgebungsvariablen. Speichern ersetzt die gesamte Verbindung; aktivieren Sie die Integration separat.`,"integration.agentScope":`Aktivierte Verbindungen werden Claude Code und Codex beim nächsten Start oder Fortsetzen übergeben. Stoppen Sie laufende Agenten, um Änderungen anzuwenden. Persönliche MCP-Konfigurationen bleiben unabhängig.`,"integration.directOverrides":`Die gespeicherte direkte Verbindung hat Vorrang. Entfernen Sie sie, um einen Claude-MCP-Eintrag zu verwenden.`,"integration.stored":`Eine private Verbindung ist gespeichert. Ihre Werte werden nie an den Browser zurückgegeben.`,"integration.example":`Beispiel: {example}`,"integration.tokenExample":`IHR_NOTION_TOKEN`,"integration.packageExample":`ihr-mcp-paket`,"integration.variableExample":`IHRE_VARIABLE`,"integration.valueExample":`ihr-wert`,"integration.command":`Programm`,"integration.args":`Argumente (JSON-Array)`,"integration.environment":`Umgebung und Zugangsdaten (JSON-Objekt)`,"integration.failed":`Verbindung konnte nicht geladen oder gespeichert werden. Prüfen Sie JSON und lokalen Speicher.`,"integration.saved":`Verbindung gespeichert. Aktivieren Sie die Integration und testen Sie die Verbindung.`,"integration.save":`Verbindung ersetzen`,"integration.clear":`Direkte Verbindung entfernen`,"settings.notificationSoundReady":`Fertig-Ton`,"settings.customSounds":`Importierte Klänge`,"settings.customSoundsHint":`Importiere eigene Benachrichtigungsklänge (max. {count}, je {size} MB, .wav .mp3 .ogg .webm). Sie werden im Kōbō-Datenverzeichnis gespeichert und erscheinen in allen Klangauswahlen unten.`,"settings.customSoundsImport":`Klang importieren`,"settings.customSoundsFull":`Grenze erreicht ({count} Klänge). Lösche einen, bevor du einen weiteren importierst.`,"settings.customSoundsError.type":`Nicht unterstütztes Format. Verwende eine .wav-, .mp3-, .ogg- oder .webm-Datei.`,"settings.customSoundsError.size":`Datei zu groß. Die Grenze liegt bei {size} MB.`,"settings.customSoundsError.count":`Grenze erreicht ({count} Klänge). Lösche einen, bevor du einen weiteren importierst.`,"settings.customSoundsError.failed":`Aktion nicht möglich. Prüfe die Verbindung und versuche es erneut.`,"setup.check.worktrees":`Worktree-Verzeichnis`,"setup.fix.worktrees":`Prüfen Sie das Worktree-Ziel in den Einstellungen und seine Schreibrechte.`,"setup.title":`Erste Aufgabe einrichten`,"setup.intro":`Wählen Sie eine Engine und ein lokales Git-Projekt. Skills und Integrationen sind optional.`,"setup.project":`Lokales Projektverzeichnis`,"setup.credentials":`Melden Sie sich auf diesem Server mit claude /login oder codex login an, oder konfigurieren Sie Ihren API-Schlüssel. Diese Prüfungen senden keine kostenpflichtigen Prompts.`,"setup.permissions":`Beginnen Sie mit einem Plan. Wählen Sie Ausführungsrechte ausdrücklich im Erstellungsformular; ein Worktree isoliert Ihren Rechner nicht.`,"setup.check":`Umgebung prüfen`,"setup.failed":`Die Aktion ist fehlgeschlagen. Prüfen Sie die Verbindung und versuchen Sie es erneut.`,"setup.start":`Erste Aufgabe beschreiben`,"setup.settings":`Einstellungen öffnen`,"setup.skip":`Vorerst überspringen`,"setup.status.ok":`Verfügbar`,"setup.status.missing":`Fehlt`,"setup.status.error":`Prüfung nötig`,"setup.status.unknown":`Nicht geprüft`,"setup.check.node":`Node.js`,"setup.check.platform":`Plattform`,"setup.check.git":`Git`,"setup.check.shell":`Bash`,"setup.check.storage":`Datenverzeichnis`,"setup.check.runtime":`Engine-Paket`,"setup.check.authentication":`Anmeldung`,"setup.check.model":`Modellzugriff`,"setup.check.repository":`Git-Repository`,"setup.check.firstCommit":`Erster Commit`,"setup.check.projectWritable":`Schreibzugriff auf das Projekt`,"setup.fix.node":`Installieren Sie Node.js ab 24.15.`,"setup.fix.platform":`Verwenden Sie Linux, macOS oder WSL2; natives Windows wird nicht unterstützt.`,"setup.fix.git":`Installieren Sie Git auf diesem Server.`,"setup.fix.shell":`Installieren Sie Bash auf diesem Server.`,"setup.fix.storage":`Prüfen Sie KOBO_HOME und die Verzeichnisrechte.`,"setup.fix.runtime":`Installieren Sie Kōbō samt optionalen Engine-Abhängigkeiten neu.`,"setup.fix.authentication":`Melden Sie sich beim gewählten Anbieter an. Die erste Aufgabe prüft den Zugriff.`,"setup.fix.model":`Wählen Sie Auto oder ein für Ihr Konto verfügbares Modell.`,"setup.fix.repository":`Wählen Sie ein vorhandenes Git-Arbeitsverzeichnis.`,"setup.fix.firstCommit":`Erstellen Sie den ersten Commit vor dem Worktree.`,"setup.fix.projectWritable":`Wählen Sie ein beschreibbares Projektverzeichnis.`,"handoff.freshTitle":`In einer frischen Sitzung fortfahren`,"handoff.switchTitle":`LLM wechseln`,"handoff.warning":`Die aktuelle Arbeit wird sofort unterbrochen. Eine frische Sitzung setzt automatisch im selben Workspace fort; Aufgaben und Verlauf bleiben erhalten.`,"handoff.generate":`Übergabe mit dem aktuellen Agenten erstellen`,"handoff.generateHint":`Bei erschöpftem Kontingent deaktivieren. Kōbō übergibt Ziel, Aufgaben, Git-Status und Verlauf ohne Aufruf des aktuellen LLM.`,"handoff.start":`Frische Sitzung starten`,"handoff.stopping":`Aktuellen Agenten stoppen`,"handoff.generating":`Übergabe vorbereiten`,"handoff.starting":`Frische Sitzung starten`,"handoff.completed":`Frische Sitzung gestartet`,"handoff.failed":`Übergabe fehlgeschlagen`,"handoff.interrupted":`Übergabe unterbrochen`,"handoff.cancelled":`Übergabe abgebrochen`,"handoff.skip":`Ohne LLM-Zusammenfassung fortfahren`,"handoff.cancel":`Übergabe abbrechen`,"handoff.report":`Übergabe lesen`,"handoff.source":`Vorherige Sitzung`,"handoff.progress":`Sitzungsübergabe läuft`,"handoff.blocked":`Übergabe fortsetzen oder abbrechen, um weiterzuarbeiten.`,"handoff.error":`Die Sitzungsübergabe konnte nicht vorbereitet werden.`,"handoff.loadFailed":`Der Übergabestatus konnte nicht geladen werden.`,"handoff.status":`Sitzungsübergabe`,"chat.externalLlm":`Externes LLM · {name}`,"search.indexing":`Verlauf wird indexiert: {processed}/{total}. Ergebnisse sind unvollständig.`,"search.indexUnavailable":`Suchindex nicht verfügbar. Bitte später erneut versuchen.`,"blockers.setupConfiguration":`Kein Setup-Skript konfiguriert. Fügen Sie eines im Bereich Skripte der Einstellungen hinzu.`,"blockers.noWorkspace":`Wählen Sie einen Workspace für diese Aktion.`,"blockers.purged":`Stellen Sie zuerst den Worktree über das Workspace-Banner wieder her.`,"blockers.archived":`Entarchivieren Sie den Workspace über sein Menü.`,"blockers.operation":`Warten Sie, bis der laufende Vorgang beendet ist.`,"blockers.agentBusy":`Warten Sie auf das Ende des Durchlaufs oder stoppen Sie den Agenten im Chat.`,"blockers.configuration":`Konfigurieren Sie diese Funktion in den Projekteinstellungen.`,"blockers.settings":`Einstellungen öffnen`,"workspaceSort.label":`Workspaces sortieren`,"workspaceSort.activity":`Letzte Aktivität`,"workspaceSort.created":`Erstellungsdatum`,"workspaceSort.name":`Name`,"workspaceSort.attention":`Aufmerksamkeitspriorität`,"workspaceSort.asc":`Aufsteigend`,"workspaceSort.desc":`Absteigend`,"workspaceSort.hint":`Sortierung innerhalb jeder Gruppe, einschließlich Archiv. Das Öffnen verändert die letzte Aktivität nicht.`,"model.tooltip":`Modell, das der Agent für diesen Workspace verwendet`,"reasoning.tooltip":`Denkaufwand des Agenten für diesen Workspace`,"thinking.label":`Überlegung`,"thinking.noDetails":`Der Agent denkt nach…`,"common.save":`Speichern`,"common.duplicate":`Duplizieren`,"common.confirm":`Bestätigen`,"common.cancel":`Abbrechen`,"common.open":`Öffnen`,"common.retry":`Erneut versuchen`,"common.delete":`Löschen`,"common.close":`Schließen`,"workspace.deleteTitle":`Workspace löschen`,"workspace.deleteTypeBranch":`Branch-Namen zur Bestätigung erneut eingeben`,"workspace.deleteConsequences":`Dies entfernt den Worktree und den gesamten Verlauf.`,"workspace.deleteFailed":`Workspace konnte nicht gelöscht werden.`,"workspace.archiveFailed":`Workspace konnte nicht archiviert werden.`,"tasks.updateFailed":`Aufgabe konnte nicht aktualisiert werden.`,"dashboard.tooltip":`Übersicht`,"dashboard.title":`Übersicht`,"dashboard.count":`{n} Workspace | {n} Workspaces`,"dashboard.empty":`Kein aktiver Workspace.`,"dashboard.workspace":`Workspace`,"dashboard.status":`Status`,"dashboard.attention":`Achtung`,"dashboard.pr":`PR`,"dashboard.diff":`Diff`,"dashboard.activity":`Aktivität`,"dashboard.prOpen":`offen`,"reliability.title":`Modellzuverlässigkeit`,"reliability.subtitle":`Wie jede Engine und jedes Modell auf diesem Rechner tatsächlich endete.`,"reliability.empty":`Noch keine Sitzung beendet.`,"reliability.loadFailed":`Die Zuverlässigkeitswerte konnten nicht geladen werden.`,"reliability.engine":`Engine`,"reliability.model":`Modell`,"reliability.sessions":`Sitzungen`,"reliability.completed":`Abgeschlossen`,"reliability.watchdog":`Watchdog`,"reliability.killed":`Gestoppt`,"reliability.errors":`Fehler`,"reliability.unknown":`Unbekannt`,"reliability.median":`Median`,"reliability.durationSeconds":`{s}s`,"reliability.durationMinutes":`{m}min {s}s`,"reliability.durationHours":`{h}h {m}min`,"update.available":`Eine neuere Version von Kōbō ist verfügbar: {version}`,"update.how":`Wie aktualisieren`,"common.dismiss":`Verwerfen`,"common.details":`Details`,"common.ok":`OK`,"whatsNew.title":`Neuigkeiten`,"common.loading":`Laden...`,"common.search":`Suchen...`,"common.refresh":`Aktualisieren`,"common.copy":`Kopieren`,"common.copied":`In die Zwischenablage kopiert`,"common.copyFailed":`Kopieren fehlgeschlagen`,"common.add":`Hinzufügen`,"folderPicker.title":`Ordner auswählen`,"folderPicker.parent":`Übergeordneter Ordner`,"folderPicker.empty":`Keine Unterordner`,"folderPicker.select":`Diesen Ordner auswählen`,"common.start":`Starten`,"common.stop":`Stoppen`,"common.archive":`Archivieren`,"common.unarchive":`Wiederherstellen`,"common.selectWorkspace":`Arbeitsbereich auswählen`,"common.noResults":`Keine Ergebnisse für „{query}"`,"common.send":`senden`,"common.newLine":`neue Zeile`,"common.history":`Verlauf`,"common.justNow":`gerade eben`,"common.minutesAgo":`vor {count}m`,"common.hoursAgo":`vor {count}h`,"common.daysAgo":`vor {count}T`,"model.auto":`Auto`,"model.fable51":`Fable 5.1`,"model.mythos5":`Mythos 5 (Glasswing)`,"model.fable51Description":`Leistungsfähigstes Modell - ersetzt Fable 5, 1M Kontext, adaptive thinking`,"model.mythos5Description":`Fable 5.1 ohne Sicherheitsklassifikatoren — eingeschränkter Zugriff (Project Glasswing)`,"model.opus":`Opus 4.6`,"model.sonnet":`Sonnet 4.6`,"model.opus5":`Opus 5`,"model.opus48":`Opus 4.8`,"model.opus47Classic":`Opus 4.7 (Classic)`,"model.opus471m":`Opus 4.7 (1M)`,"model.opusClassic":`Opus 4.6 (Classic)`,"model.opus1m":`Opus 4.6 (1M)`,"model.sonnet5":`Sonnet 5`,"model.sonnetClassic":`Sonnet 4.6 (Classic)`,"model.sonnet1m":`Sonnet 4.6 (1M)`,"model.haiku":`Haiku 4.5`,"model.autoDescription":`Claude wählt das optimale Modell`,"model.opus5Description":`Für komplexes agentisches Coding und Unternehmenseinsätze, 1M Kontext`,"model.opus48Description":`Leistungsfähigstes Opus — Long-Horizon-Coding, 1M-Kontext standardmäßig, hoher Effort standardmäßig`,"model.opus47ClassicDescription":`Neuestes Opus, am leistungsfähigsten`,"model.opus471mDescription":`Neuestes Opus, 1M Kontext`,"model.opusClassicDescription":`Am leistungsstärksten`,"model.opus1mDescription":`Am leistungsstärksten, 1M Kontext`,"model.sonnet5Description":`Beste Mischung aus Geschwindigkeit und Intelligenz, 1M Kontext`,"model.sonnetClassicDescription":`Ausgewogen`,"model.sonnet1mDescription":`Ausgewogen, 1M Kontext`,"model.haikuDescription":`Am schnellsten`,"model.gpt6astra":`GPT-6 Astra`,"model.gpt6astraDescription":`Leistungsfähigstes Spitzenmodell, 1M Kontext (erfordert ChatGPT-Anmeldung)`,"model.gpt56sol":`GPT-5.6 Sol`,"model.gpt56solDescription":`Neuestes Spitzenmodell für agentisches Coding (erfordert ChatGPT-Anmeldung)`,"model.gpt56terra":`GPT-5.6 Terra`,"model.gpt56terraDescription":`Ausgewogenes agentisches Coding-Modell für den Alltag (erfordert ChatGPT-Anmeldung)`,"model.gpt56luna":`GPT-5.6 Luna`,"model.gpt56lunaDescription":`Schnelles und günstiges agentisches Coding-Modell (erfordert ChatGPT-Anmeldung)`,"model.gpt55":`GPT-5.5`,"model.gpt55Description":`Empfohlen für komplexes Coding (erfordert ChatGPT-Anmeldung)`,"model.gpt54":`GPT-5.4`,"model.gpt54Description":`Standard-Fallback — starkes Reasoning, funktioniert mit API-Key-Authentifizierung`,"model.gpt54mini":`GPT-5.4 mini`,"model.gpt54miniDescription":`Schnell und effizient — ideal für reaktive Aufgaben und Subagenten`,"model.gpt52":`GPT-5.2`,"model.gpt52Description":`Optimiert für professionelle Arbeit und langlaufende Agenten`,"model.gpt53codex":`GPT-5.3 Codex`,"model.gpt53codexDescription":`Auf Coding spezialisiertes Modell für komplexe Softwareentwicklung`,"reasoning.auto":`auto`,"reasoning.minimal":`minimal`,"reasoning.none":`keine`,"reasoning.low":`low`,"reasoning.medium":`medium`,"reasoning.high":`high`,"reasoning.xhigh":`xhigh`,"reasoning.max":`max`,"reasoning.autoDescription":`Engine entscheidet automatisch`,"reasoning.minimalDescription":`Schnellstes, oberflächlichstes Reasoning`,"reasoning.noneDescription":`Ohne zusätzliches Reasoning`,"reasoning.lowDescription":`Schneller, weniger Tiefe`,"reasoning.mediumDescription":`Ausgewogen`,"reasoning.highDescription":`Mehr Tiefe`,"reasoning.xhighDescription":`Erweiterte Tiefe, langfristige Aufgaben`,"reasoning.maxDescription":`Maximale Tiefe`,"agentPermissionMode.label":`Berechtigungsmodus`,"agentPermissionMode.plan":`Plan`,"agentPermissionMode.bypass":`Bypass`,"agentPermissionMode.strict":`Edits akzeptieren`,"agentPermissionMode.interactive":`Interaktiv`,"agentPermissionMode.tooltip":`Wie der Agent Tool-Berechtigungen handhabt. Plan: schreibgeschützt, keine Schreibvorgänge. Bypass: alle Nachfragen überspringen. Strict: Datei-Edits automatisch akzeptieren, allow/deny für den Rest beachten. Interaktiv: vor jedem Tool den Benutzer per Berechtigungs-Panel fragen.`,"agentPermissionMode.autoLoopOverride":`Auto-Loop erzwingt einen Modus außer Plan — Plan blockiert MCP-Tools und Edits, die der Loop benötigt. Wähle stattdessen Bypass, Strict oder Interaktiv.`,"agentPermissionMode.autoLoopLocked":`Auf Bypass gesperrt, solange Auto-Loop aktiv ist — jeder andere Modus würde den Loop bei Berechtigungsabfragen anhalten. AskUserQuestion funktioniert weiterhin.`,"workspaceList.title":`Arbeitsbereiche`,"workspaceList.a11y.groupToggle":`Gruppe {group}, {count} Workspaces`,"workspaceList.a11y.list":`Workspaces`,"workspaceList.a11y.card":`{name}, {status}`,"workspaceList.needsAttention":`Aufmerksamkeit erforderlich`,"workspaceList.running":`Aktiv`,"workspaceList.idle":`Inaktiv`,"workspaceList.archived":`Archiviert`,"workspaceList.archivedToast":`„{name}“ archiviert`,"workspaceList.archivedUndo":`Rückgängig`,"workspaceList.unarchiveFailed":`Workspace konnte nicht dearchiviert werden`,"workspaceList.noWorkspaces":`Noch keine Arbeitsbereiche`,"workspaceList.loadFailed":`Deine Workspaces konnten nicht geladen werden`,"workspaceList.loadFailedHint":`Das ist ein Verbindungsfehler, kein leeres Konto.`,"workspaceList.footer":`{count} Arbeitsbereich | {count} Arbeitsbereiche`,"workspaceList.footerRunning":`{count} aktiv`,"workspaceList.deleteDialog.title":`Arbeitsbereich löschen?`,"workspaceList.deleteDialog.deleteLocal":`Lokalen Branch löschen`,"workspaceList.deleteDialog.deleteRemote":`Remote-Branch löschen`,"workspaceList.deleteDialog.warning":`Achtung: Diese Aktion ist auf dem Remote unwiderruflich.`,"workspaceList.deleteArchivedDialog.tooltip":`Alle archivierten Arbeitsbereiche löschen`,"workspaceList.deleteArchivedDialog.title":`Alle archivierten Arbeitsbereiche löschen?`,"workspaceList.deleteArchivedDialog.message":`Dadurch werden die {count} archivierten Arbeitsbereiche endgültig gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.`,"workspaceList.deleteArchivedDialog.typeCount":`Geben Sie {count} zur Bestätigung ein`,"workspacePage.configure":`Konfigurieren`,"workspacePage.permissions":`Berechtigungen`,"workspacePage.selectWorkspace":`Arbeitsbereich auswählen, um zu beginnen`,"workspacePage.commandPalettePlaceholder":`Befehle suchen…`,"workspacePage.commandPaletteEmpty":`Kein passender Befehl`,"workspacePage.commandFocusChat":`Chat-Eingabe fokussieren`,"workspacePage.commandSearchHistory":`Workspace-Verlauf durchsuchen`,"workspacePage.commandTogglePanel":`Seitenleiste ein- oder ausblenden`,"workspacePage.commandStartAgent":`Agent starten`,"workspacePage.commandStopAgent":`Agent stoppen`,"workspacePage.commandOpenSettings":`Einstellungen öffnen`,"workspacePage.commandOpenCreate":`Workspace erstellen`,"workspacePage.commandOpenSearch":`Globale Suche`,"workspacePage.commandOpenHealth":`Health-Seite`,"workspacePage.commandOpenChangelog":`Changelog`,"workspacePage.commandGroupWorkspaces":`Zu einem Workspace wechseln`,"workspacePage.commandPaletteHint":`Befehlspalette`,"workspacePage.session":`Sitzung #{n}`,"workspacePage.newSession":`+ Neue Sitzung`,"workspacePage.renameSession":`Umbenennen`,"workspacePage.renameSessionTitle":`Sitzung umbenennen`,"workspacePage.sessionNameLabel":`Sitzungsname`,"workspacePage.sessionEndedNotice":`Diese Sitzung ist beendet. Erstelle eine neue Sitzung um fortzufahren.`,"workspacePage.renameFailed":`Umbenennung fehlgeschlagen`,"workspacePage.copySessionId":`Sitzungs-ID kopieren`,"workspacePage.deleteSession":`Sitzung löschen`,"workspacePage.deleteSessionTitle":`Sitzung löschen?`,"workspacePage.deleteSessionConfirm":`Diese Sitzung und ihr Gesprächsverlauf werden dauerhaft gelöscht.`,"workspacePage.deleteSessionFailed":`Sitzung konnte nicht gelöscht werden`,"workspacePage.noEngineSessionId":`Noch keine Sitzungs-ID — der Agent hat diese Sitzung noch nicht gestartet`,"workspacePage.createSessionFailed":`Sitzung konnte nicht erstellt werden`,"workspacePage.startFailed":`Start fehlgeschlagen`,"workspacePage.stopFailed":`Stopp fehlgeschlagen`,"workspacePage.interrupt":`Unterbrechen`,"workspacePage.interrupted":`Agent unterbrochen — wartet auf Ihre nächste Nachricht`,"workspacePage.lastAgentEvent":`Letztes Ereignis {when}`,"workspacePage.agentStopping":`Wird gestoppt…`,"workspacePage.agentNotRunning":`Kein Agent-Prozess — der Status ist veraltet`,"contextMenu.restoreWorktree":`Worktree wiederherstellen`,"workspacePage.restoringWorktree":`Wiederherstellung…`,"workspacePage.worktreeRestoreSuccess":`Worktree wiederhergestellt`,"workspacePage.worktreeRestoreLimitations":`Stellt committete Git-Dateien wieder her. Abhängigkeiten und zuvor verworfene lokale Dateien werden nicht wiederhergestellt.`,"workspacePage.restoreError.not-found":`Dieser Workspace existiert nicht mehr. Aktualisieren Sie die Workspace-Liste.`,"workspacePage.restoreError.not-purged":`Dieser Workspace ist nicht als bereinigt markiert. Aktualisieren Sie ihn und prüfen Sie sein Arbeitsverzeichnis.`,"workspacePage.restoreError.workspace-busy":`Für diesen Workspace läuft bereits ein Vorgang. Warten Sie auf dessen Abschluss und versuchen Sie es erneut.`,"workspacePage.restoreError.worktree-not-owned":`Dieser Worktree wird nicht von Kōbō verwaltet. Stellen Sie ihn manuell im ursprünglichen Projekt wieder her.`,"workspacePage.restoreError.project-unavailable":`Das ursprüngliche Projekt ist nicht verfügbar. Verbinden Sie das Laufwerk erneut oder stellen Sie das Projekt am ursprünglichen Pfad wieder her.`,"workspacePage.restoreError.path-conflict":`Der Worktree-Pfad ist durch einen anderen Ordner oder Checkout belegt. Verschieben Sie den betreffenden Ordner oder folgen Sie der Anleitung zur manuellen Wiederherstellung unter Details.`,"workspacePage.restoreError.branch-in-use":`Der Arbeitsbranch ist bereits an anderer Stelle ausgecheckt. Nutzen Sie diesen Checkout oder geben Sie dort den Branch frei und versuchen Sie es erneut.`,"workspacePage.restoreError.recovery-source-unavailable":`Arbeitsbranch und gespeicherter Commit wurden nicht gefunden. Prüfen Sie den Remote-Zugriff oder öffnen Sie die manuelle Wiederherstellung unter Details.`,"workspacePage.restoreError.git-failed":`Wiederherstellung fehlgeschlagen. Prüfen Sie Git-Zugriff und Dateisystemrechte und versuchen Sie es erneut. Details öffnet die Anleitung zur manuellen Wiederherstellung.`,"workspacePage.archivedBanner":`Archivierter Workspace — schreibgeschützt`,"workspacePage.worktreePurgedBanner":`Worktree gelöscht — Verlauf erhalten`,"workspacePage.worktreePurgedTooltip":`Worktree wiederherstellen erstellt das Arbeitsverzeichnis erneut und hebt die Archivierung auf. Chatverlauf, Aufgaben und Sitzungen bleiben erhalten. Kein Agent oder Entwicklungsserver wird gestartet.`,"workspacePage.pendingInitialPromptBanner":`Ein anfänglicher Prompt ist ausstehend — der Agent hat ihn nie erhalten (Setup-Script abgestürzt oder Workspace nie gestartet). Klicke auf Start, um ihn jetzt zu senden.`,"workspacePage.unarchived":`Workspace dearchiviert`,"workspacePage.unarchiveFailed":`Dearchivierung fehlgeschlagen`,"workspacePage.interruptFailed":`Unterbrechung fehlgeschlagen`,"workspacePage.interruptHint":`Den laufenden Zug unterbrechen, ohne die Sitzung zu beenden.`,"workspacePage.interruptTooltip":`Sanfte Unterbrechung (wie Escape) — stoppt das aktuelle Tool, hält die Sitzung aktiv`,"workspacePage.pendingNextRun":`Beim nächsten Start angewendet`,"workspacePage.activeSessionModel":`Aktiv: {model}`,"workspacePage.activeSessionModelTooltip":`Modell, das von der ausgewählten Sitzung tatsächlich verwendet wird`,"workspacePage.switchEngine":`Engine wechseln`,"workspacePage.switchEngineHint":`Diesen Workspace mit einer anderen Agent-Engine fortsetzen`,"workspacePage.moreActions":`Weitere Aktionen`,"workspacePage.switchEngineTitle":`Agent-Engine wechseln`,"workspacePage.switchEngineWarning":`Der aktuelle Agent wird gestoppt und eine neue Sitzung startet im selben Worktree.`,"workspacePage.engineLabel":`Engine`,"workspacePage.engineClaude":`Claude Code`,"workspacePage.engineCodex":`Codex`,"workspacePage.engineHandoff":`Übergabe für die neue Engine`,"workspacePage.engineHandoffHint":`Überprüfen oder bearbeiten Sie den Kontext für den neuen Agenten.`,"workspacePage.confirmSwitchEngine":`Engine wechseln`,"workspacePage.switchEngineFailed":`Engine-Wechsel fehlgeschlagen`,"whip.dispatchFailed":`Peitschen-Nachricht konnte nicht gesendet werden`,"whip.phrase1":`Bitte fortfahren.`,"whip.phrase2":`Arbeite die Aufgaben weiter ab.`,"whip.phrase3":`Bitte mit dem nächsten Schritt fortfahren.`,"whip.phrase4":`Prüfe den Fortschritt und fahre fort.`,"whip.phrase5":`Bleibe im vereinbarten Umfang.`,"search.title":`Suche`,"search.tooltip":`Agent-Verlauf durchsuchen`,"search.placeholder":`In allen Agent-Nachrichten suchen…`,"search.includeArchived":`Archivierte Arbeitsbereiche einbeziehen`,"search.loading":`Suche läuft…`,"search.noResults":`Keine Treffer`,"search.error":`Suche fehlgeschlagen: {message}`,"search.resultCount":`{n} Treffer`,"search.eventType.userMessage":`Sie`,"search.eventType.agentOutput":`Agent`,"activityFeed.empty":`Noch keine Aktivität`,"activityFeed.emptyHint":`Starten Sie einen Arbeitsbereich, um die Agentenausgabe hier zu sehen`,"activityFeed.initialPrompt":`Initialer Prompt`,"activityFeed.you":`Sie`,"activityFeed.agent":`Agent`,"activityFeed.question":`Frage`,"activityFeed.goToPrevious":`Zur vorherigen Nachricht`,"activityFeed.scrollToBottom":`Nach unten scrollen`,"activityFeed.sendAnswers":`Antworten senden`,"agentBusy.banner":`Agent ist beschäftigt`,"agentBusy.subagentsRunning":`1 Sub-Agent aktiv | {n} Sub-Agents aktiv`,"agentBusy.viewSubagents":`Sub-Agents anzeigen`,"agentBusy.pendingMessage":`Warten — Agent ist beschäftigt`,"terminal.title":`Terminal`,"terminal.open":`Terminal öffnen`,"terminal.close":`Terminal schließen`,"terminal.noWorkspace":`Workspace auswählen`,"terminal.noWorktree":`Worktree noch nicht erstellt`,"terminal.error":`Terminalfehler`,"terminal.exited":`Terminal beendet`,"terminal.disconnected":`Verbindung verloren`,"terminal.reconnecting":`Verbindungsaufbau… (Versuch {attempt} von {max})`,"terminal.reconnect":`Neu verbinden`,"chatInput.placeholder":`Nachricht... (/ für Skills)`,"chatInput.fileSearchHint":`Datei suchen`,"chatInput.skills":`Skills`,"chatInput.attachImage":`Bild anhängen`,"chatInput.queueBanner":`Nachricht in Warteschlange — wird gesendet, wenn der Agent fertig ist`,"chatInput.forceQueue":`Senden erzwingen`,"chatInput.searchHistory":`suchen`,"chatInput.commandPalette":`Befehle`,"chatInput.shortcuts":`Tastenkürzel`,"chatInput.cancelQueue":`Warteschlange abbrechen`,"chatInput.autoLoopBanner":`Auto-Loop läuft — beende ihn, um eine Nachricht zu senden`,"chatInput.awaitingUserBanner":`Der Agent wartet auf deine Antwort oben — antworte über das Fragefenster`,"chatInput.autoLoopStop":`Beenden`,"koboCommand.checkProgressDesc":`Fortschritt bei Aufgaben und Akzeptanzkriterien prüfen`,"chatInput.uploading":`Wird hochgeladen...`,"voice.title":`Sprachtranskription`,"voice.enabled":`Lokale Sprachtranskription aktivieren`,"voice.pttKey":`Push-to-talk-Taste`,"voice.pttAlt":`Alt`,"voice.pttCtrlSpace":`Strg+Leertaste`,"voice.language":`Sprache (auto oder Code)`,"voice.model":`Aktives Modell`,"voice.commandPath":`Pfad zur Whisper-Binärdatei (optional)`,"voice.ffmpegPath":`Pfad zur ffmpeg-Binärdatei (optional)`,"voice.temperature":`Temperatur`,"voice.temperatureHint":`Niedriger = deterministischer, höher = flexibler, aber potenziell weniger stabil.`,"voice.initialPrompt":`Initial Prompt (optional)`,"voice.initialPromptHint":`Optionaler Kontext, um Whisper bei Namen, Fachbegriffen oder domänenspezifischem Vokabular zu helfen.`,"voice.translateToEnglish":`Ins Englische übersetzen`,"voice.translateToEnglishHint":`Wenn aktiviert, wird nicht-englische Sprache ins Englische übersetzt statt originalgetreu transkribiert.`,"voice.suppressNst":`Nicht-Sprach-Tokens unterdrücken`,"voice.suppressNstHint":`Versucht, Nicht-Sprach-Artefakte im Transkript zu reduzieren.`,"voice.installLink":`whisper.cpp installieren`,"voice.installGuideTitle":`Installationsanleitung`,"voice.installGuideIntro":`Installiere whisper.cpp und ffmpeg und setze bei Bedarf unten die Binärpfade.`,"voice.installGuideUbuntuTitle":`Ubuntu / Debian`,"voice.installGuideWindowsTitle":`Windows`,"voice.installGuideBinaryPathHint":`Nach dem CMake-Build liegt die Whisper-Binärdatei üblicherweise hier: whisper.cpp/build/bin/whisper-cli`,"voice.installGuideSettingsHint":`Danach in diesem Bereich „Pfad zur Whisper-Binärdatei“ und „Pfad zur ffmpeg-Binärdatei“ setzen (oder leer lassen, wenn im PATH).`,"voice.noneModel":`Kein aktives Modell`,"voice.notInstalled":`nicht installiert`,"voice.download":`Herunterladen`,"voice.delete":`Löschen`,"voice.holdToTalk":`Zum Sprechen gedrückt halten`,"voice.recording":`Aufnahme...`,"voice.transcribing":`Transkription...`,"voice.notSupported":`Sprachaufnahme wird in diesem Browser nicht unterstützt`,"voice.errorMicPermission":`Mikrofonberechtigung verweigert`,"voice.errorTranscription":`Sprachtranskription fehlgeschlagen`,"voice.downloadFailed":`Modelldownload fehlgeschlagen`,"voice.deleteFailed":`Modell konnte nicht gelöscht werden`,"voice.errorDisabled":`Sprachtranskription ist in den Einstellungen deaktiviert`,"voice.errorModelMissing":`Kein aktives Sprachmodell konfiguriert`,"voice.errorModelNotInstalled":`Das aktive Sprachmodell ist nicht installiert`,"voice.errorAudioInvalid":`Audioaufnahme ist ungültig oder leer`,"voice.errorLanguageInvalid":`Sprachkonfiguration ist ungültig`,"voice.errorRuntimeMissing":`Whisper-Runtime ist nicht installiert oder nicht im PATH`,"voice.maxDurationReached":`Maximale Aufnahmedauer erreicht`,"voice.runtimeReady":`Runtime bereit: {command}`,"voice.runtimeMissing":`Runtime fehlt: {command}`,"voice.ffmpegReady":`ffmpeg bereit`,"voice.ffmpegMissing":`ffmpeg fehlt`,"voice.sectionRuntime":`Runtime-Status`,"voice.sectionActivation":`Aktivierung`,"voice.sectionModels":`Whisper-Modelle`,"voice.sectionAdvanced":`Erweiterte Optionen`,"voice.sectionBehavior":`Transkriptionsverhalten`,"voice.sectionBinaries":`Binärpfade`,"voice.downloadModels":`Modell herunterladen`,"voice.cancelFailed":`Abbrechen des Downloads fehlgeschlagen`,"attachments.error.upload":`Hochladen fehlgeschlagen. Entfernen Sie den Anhang und versuchen Sie es erneut.`,"attachments.add":`Dateien anhängen`,"attachments.remove":`Anhang entfernen`,"attachments.hint":`Dateien hier einfügen oder ablegen · maximal {count} · je {size} MB · insgesamt {total} MB`,"attachments.error.type":`Verwenden Sie PNG-, JPEG-, GIF- oder WebP-Bilder, PDF, Markdown oder Textdokumente (TXT, CSV, JSON, YAML, XML, LOG, RST, TOML).`,"attachments.error.size":`Jede Datei muss Inhalt haben und darf höchstens 50 MB groß sein.`,"attachments.error.count":`Sie können bis zu 10 Dateien anhängen.`,"attachments.error.total":`Die Anhänge dürfen insgesamt höchstens 50 MB groß sein.`,"attachments.descriptionRequired":`Geben Sie eine Beschreibung ein oder hängen Sie eine Datei an.`,"createPage.title":`Workspace erstellen`,"createPage.fromTemplate":`Aus einer Vorlage`,"createPage.fromTemplateNone":`Keine`,"createPage.saveAsTemplate":`Als Vorlage speichern`,"createPage.saveTemplateTitle":`Dieses Formular als Vorlage speichern`,"createPage.saveTemplateName":`Name der Vorlage`,"createPage.saveTemplateOverwrite":`Eine Vorlage namens „{name}“ existiert bereits. Überschreiben?`,"createPage.templateSaved":`Vorlage „{name}“ gespeichert`,"createPage.templateApplied":`Vorlage „{name}“ angewendet`,"createPage.duplicatedFrom":`Dupliziert von „{name}“`,"createPage.duplicateLoadFailed":`Der zu duplizierende Workspace konnte nicht geladen werden.`,"createPage.templateSaveFailed":`Die Vorlage konnte nicht gespeichert werden.`,"createPage.presetProjectUnknown":`Diese Vorlage zielt auf ein nicht mehr konfiguriertes Projekt; das aktuelle Projekt wurde beibehalten.`,"createPage.copySuffix":`(Kopie)`,"createPage.subtitle":`Beschreiben Sie die Aufgabe, wählen Sie ein Projekt und konfigurieren Sie den Agenten.`,"createPage.sectionMission":`Aufgabe`,"createPage.sectionMissionHint":`Geben Sie dem Agenten ein klares Ziel und den erforderlichen Kontext.`,"createPage.workspaceNameLabel":`Workspace-Name`,"createPage.descriptionLabel":`Aufgabenbeschreibung`,"createPage.sources":`Optionale Quellen`,"createPage.sectionGit":`Git-Projekt`,"createPage.sectionGitHint":`Wählen Sie Repository, Ausgangsbranch und Worktree-Modus.`,"createPage.worktreeMode":`Worktree-Modus`,"createPage.worktreeNew":`Neuer isolierter Worktree`,"createPage.worktreeExisting":`Vorhandenen Worktree verwenden`,"createPage.projectLabel":`Projekt`,"createPage.sourceBranch":`Ausgangsbranch`,"createPage.workingBranchPreview":`Vorschau des Arbeitsbranches`,"createPage.branchNamePending":`workspace-name`,"createPage.sectionAgent":`Agent`,"createPage.sectionAgentHint":`Prüfen Sie die Ausführungsvorgaben oder aktivieren Sie die Automatisierung.`,"createPage.configureAgent":`Agent konfigurieren`,"createPage.advancedOptions":`Erweiterte Optionen`,"createPage.keyboardHint":`Drücken Sie Strg/Cmd + Enter, um den Workspace zu erstellen.`,"createPage.createWorkspace":`Workspace erstellen`,"createPage.compareEngines":`Zwei Engines vergleichen`,"createPage.engineA":`Engine A`,"createPage.engineB":`Engine B`,"createPage.compareBrainstormLocked":`Vergleichsmodus: jede Engine brainstormt mit dem Modell und dem Aufwand aus ihrem eigenen Block oben.`,"createPage.compareEnginesHint":`Erstellt aus dieser Aufgabe zwei Workspaces, einen pro Engine, in benachbarten Worktrees. Ihre Diffs lassen sich danach nebeneinander vergleichen.`,"createPage.compareNeedsNewWorktree":`Der Vergleich zweier Engines braucht zwei neue Worktrees. Schalten Sie zuerst „vorhandenen Worktree verwenden“ aus.`,"createPage.compareNeedsSecondEngine":`Wählen Sie eine zweite, vom ersten verschiedene Engine für den Vergleich.`,"comparison.title":`Engine-Vergleich`,"comparison.hint":`Dieselbe Aufgabe, von jeder Engine im eigenen Worktree ausgeführt.`,"comparison.engine":`Engine`,"comparison.status":`Status`,"comparison.tasks":`Aufgaben`,"comparison.commits":`Commits`,"comparison.files":`Dateien`,"comparison.diff":`Diff`,"comparison.messages":`Nachrichten`,"comparison.messagesTitle":`Agenten-Nachrichten / Ihre Nachrichten`,"comparison.questions":`Fragen`,"comparison.tools":`Tools`,"comparison.errors":`Fehler`,"comparison.tokens":`Tokens`,"comparison.tokensTitle":`Eingabe- / Ausgabe-Tokens`,"comparison.sessions":`Sitzungen`,"comparison.duration":`Dauer`,"comparison.exportCsv":`Als CSV exportieren`,"comparison.open":`Öffnen`,"comparison.current":`Dieser`,"comparison.archived":`archiviert`,"comparison.incomplete":`Es existiert nur ein Workspace dieses Vergleichs. Der andere wurde nie erstellt oder wurde gelöscht.`,"createPage.comparisonPartial":`Es wurden nur {count} von {total} Workspaces erstellt. Der vorhandene ist für sich nutzbar; löschen Sie ihn, wenn Sie neu anfangen möchten.`,"createPage.notionEnabled":`Notion aktiviert`,"createPage.importNotion":`Aus Notion importieren`,"createPage.notionPlaceholder":`https://www.notion.so/workspace/Page-title-abc123...`,"createPage.notionValidation":`Die URL muss mit https://www.notion.so/ oder https://app.notion.com/ beginnen`,"createPage.notionAutoExtract":`Unteraufgaben und Akzeptanzkriterien werden automatisch extrahiert.`,"createPage.notionPanelChoiceLabel":`Diese URL verweist auf eine Unterseite (?p=). An welcher möchtest du arbeiten?`,"createPage.notionPanelOption":`Unterseite (Panel)`,"createPage.notionPanelOptionDesc":`Die Seite, die du angesehen hast — empfohlen`,"createPage.notionParentOption":`Übergeordnete Seite`,"createPage.notionParentOptionDesc":`Das Epic / die Datenbank dazu`,"createPage.importSentry":`Sentry importieren`,"createPage.sentryEnabled":`Sentry aktiviert`,"createPage.sentryPlaceholder":`https://ihre-org.sentry.io/issues/123456`,"createPage.sentryValidation":`Die URL muss auf ein Sentry-Issue zeigen (/issues/<id>)`,"createPage.sentryAutoExtract":`Sentry-Issue wird automatisch importiert`,"createPage.sentryExtractHint":`Kobo extrahiert das Issue und schreibt es nach .ai/thoughts/`,"createPage.importPr":`Aus einem PR importieren`,"createPage.importPrRequiresProject":`Zuerst ein Projekt auswählen`,"createPage.importPrNotSupported":`Die Forge dieses Projekts unterstützt das Auflisten von Pull Requests nicht`,"createPage.lockedToPr":`Gesperrt auf PR #{number}`,"createPage.prReadyToCreate":`PR #{number} importiert — der Workspace kann erstellt werden.`,"createPage.prResumeIntro":`Weiterarbeit am bestehenden Pull Request #{number} "{title}" ({url}).`,"createPage.unlockPrCheckout":`Entsperren`,"createPage.workspaceName":`Name des Arbeitsbereichs (Standard: Notion-Seitentitel)`,"createPage.workspaceNamePlaceholder":`Name des Arbeitsbereichs...`,"createPage.instructions":`Zusätzliche Anweisungen (optional)...`,"createPage.instructionsPlaceholder":`Aufgabe beschreiben...`,"createPage.tasks":`Aufgaben ({count})`,"createPage.addTask":`Aufgabe hinzufügen...`,"createPage.acceptanceCriteria":`Akzeptanzkriterien ({count})`,"createPage.addCriterion":`Kriterium hinzufügen...`,"createPage.projectPath":`Projektpfad eingeben`,"createPage.branchType":`Branch-Typ`,"createPage.branch":`Branch`,"createPage.noBranches":`Keine Branches gefunden`,"createPage.enterPath":`Projektpfad eingeben`,"createPage.skipSetupScript":`Setup-Skript überspringen`,"createPage.worktreePickerLabel":`Bestehender Worktree`,"createPage.noOrphanWorktrees":`Kein verwaister Worktree in diesem Projekt`,"createPage.pickWorktreeRequired":`Bitte einen Worktree zum Anhängen auswählen`,"createPage.notionExtractHint":`Unteraufgaben und Akzeptanzkriterien werden aus der Notion-Seite extrahiert.`,"createPage.errorCreating":`Fehler beim Erstellen des Arbeitsbereichs.`,"createPage.branchAdjusted":"Branch existierte bereits — stattdessen `{branch}` erstellt. Der zugehörige Worktree-Ordner verwendet das gleiche Suffix.","createPage.localSourceFallback":`Workspace vom lokalen Branch erstellt (origin nicht erreichbar) — die Basis ist möglicherweise veraltet.`,"createPage.validationNotionUrl":`Bitte eine gültige Notion-URL einfügen (https://www.notion.so/... oder https://app.notion.com/...).`,"createPage.validationDescription":`Bitte beschreiben Sie die Aufgabe.`,"createPage.validationName":`Bitte geben Sie einen Arbeitsbereichnamen an.`,"createPage.validationPath":`Bitte geben Sie den Projektpfad ein.`,"createPage.validationBranch":`Bitte wählen Sie einen Branch aus.`,"createPage.validationFocusHint":`Das zu korrigierende Feld ist unten hervorgehoben.`,"createPage.progress.validate":`Anfrage wird geprüft…`,"createPage.progress.fetch-source-branch":`Source-Branch wird von origin geholt…`,"createPage.progress.inspect-worktree":`Bestehender Worktree wird geprüft…`,"createPage.progress.extract-notion":`Notion-Seite wird extrahiert…`,"createPage.progress.extract-sentry":`Sentry-Issue wird extrahiert…`,"createPage.progress.create-record":`Workspace wird erstellt…`,"createPage.progress.create-tasks":`Tasks und Akzeptanzkriterien werden erstellt…`,"createPage.progress.create-worktree":`Git-Worktree wird erstellt…`,"createPage.progress.write-conventions":`Git-Konventionen werden geschrieben…`,"createPage.progress.write-context-files":`Kontextdateien werden geschrieben…`,"createPage.progress.build-prompt":`Initialer Prompt wird erstellt…`,"createPage.progress.setup-script":`Dein Setup-Skript läuft…`,"createPage.progress.start-agent":`Agent wird gestartet…`,"createPage.progress.rollback":`Fehlgeschlagene Erstellung wird rückgängig gemacht…`,"createPage.progress.done":`Fertig`,"createPage.progress.step":`Schritt {index} von {total}`,"createPage.errorAtStep":`Erstellung im Schritt „{step}“ fehlgeschlagen: {message}`,"createPage.override.title":`Zwei deiner Einstellungen wurden überschrieben`,"createPage.override.setup-script-forced":`Setup-Skript übersprungen: ein erneuter Lauf auf einem bereits vorbereiteten Worktree könnte dessen Inhalt zerstören.`,"createPage.override.permission-mode-downgraded":`Berechtigungsmodus von Plan auf Bypass geändert: eine autonome Schleife kann nicht in Plan laufen, der Tools und Änderungen blockiert.`,"settings.title":`Einstellungen`,"settings.language":`Sprache`,"settings.projectColor":`Farbe`,"settings.projectColorClear":`Löschen`,"settings.projectColorDefault":`Standard (grau)`,"settings.workspaceListSection":`Workspace-Liste`,"settings.flattenWorkspaceList":`Workspace-Liste flach anzeigen`,"settings.flattenWorkspaceListHint":`Zeigt alle Workspaces in einer flachen Liste mit Projekt-Badge, anstatt nach Projekt gruppiert.`,"workflow.title":`Git-Arbeitsablauf`,"workflow.hint":`Diese Einstellungen steuern Agenten, ersetzen aber keine Systemberechtigungen. Strengere Nutzeranweisungen haben Vorrang. Veröffentlichen erlaubt kein Zusammenführen. Neue Arbeitsbereiche speichern diese Auswahl.`,"workflow.commit":`Commits erstellen`,"workflow.push":`Branch pushen`,"workflow.publish":`PR/MR oder Kommentare veröffentlichen`,"workflow.manual":`Manuell — ausdrücklicher Auftrag`,"workflow.automatic":`Automatisch — bei Bedarf`,"workflow.inherit":`Übernehmen`,"workflow.locked":`Stoppe den Agenten, um diese Einstellungen zu ändern. Die laufende Sitzung hat sie bereits erhalten.`,"workflow.updateFailed":`Die Einstellung konnte nicht gespeichert werden. Prüfe die Verbindung und versuche es erneut.`,"workflow.save":`Git-Einstellungen speichern`,"workflow.saved":`Git-Einstellungen gespeichert.`,"workflow.planExecution":`Plan erlaubt die Vorbereitung. Wählen Sie für die Ausführung ausdrücklich einen geeigneten Berechtigungsmodus und setzen Sie die Schleife fort.`,"settings.skillSuite.standard":`Standard (ohne Erweiterungen)`,"settings.skillSuite.standardHint":`Integrierter Ablauf ohne externe Skills.`,"settings.skillSuite.section":`Skill-Suite`,"settings.skillSuite.superpowers":`Superpowers`,"settings.skillSuite.gstack":`gstack`,"settings.skillSuite.custom":`Benutzerdefiniert`,"settings.skillSuite.superpowersHint":`Opinionierter TDD / Brainstorm / Plan-Workflow (github.com/obra/superpowers).`,"settings.skillSuite.gstackHint":`Garry Tans Suite — /review, /ship, /qa, /office-hours usw. (github.com/garrytan/gstack).`,"settings.skillSuite.superpowersGstack":`Superpowers + gstack`,"settings.skillSuite.superpowersGstackHint":`Beide Suites lassen sich kombinieren — superpowers für Methodik (Brainstorm / TDD / Pläne / Prinzipien-Review), gstack für konkrete Workflows (/review, /qa, /browse, /design-review, /investigate).`,"settings.skillSuite.ecc":`ECC`,"settings.skillSuite.eccHint":`Agent-Harness-Framework von affaan-m — Agents, Skills, Rules und Hooks zum Planen, Testen, Implementieren, Reviewen und Speichern (github.com/affaan-m/ECC).`,"settings.skillSuite.allThree":`Superpowers + gstack + ECC`,"settings.skillSuite.allThreeHint":`Alle drei lassen sich kombinieren — superpowers für Methodik, gstack für konkrete Workflows, ECC für strukturierte Multi-Agent-Review-/Implementierungsdurchläufe.`,"settings.skillSuite.customHint":`Stelle die fünf Prompts unten aus beliebigen Vorlagen zusammen und bearbeite sie frei.`,"settings.skillSuite.reloadDefaults":`Standard wiederherstellen`,"settings.skillSuite.reloadDefaultsConfirm":`Die fünf benutzerdefinierten Prompts durch die agnostischen Standardwerte ersetzen?`,"settings.skillSuite.customPrompts":`Benutzerdefinierte Prompts`,"settings.skillSuite.agnostic":`Agnostische Basis`,"settings.skillSuite.importPrompt":`Vorlage importieren`,"settings.skillSuite.imported":`Vorlage importiert. Du kannst sie jetzt bearbeiten.`,"settings.skillSuite.importFailed":`Vorlage konnte nicht importiert werden`,"settings.skillSuite.reviewTemplate":`Review-Vorlage`,"settings.skillSuite.autoLoopReviewGate":`Auto-Loop Review-Gate`,"settings.skillSuite.autoLoopGroomingIntro":`Auto-Loop Grooming-Intro`,"settings.skillSuite.qaTemplate":`QA-Vorlage`,"settings.skillSuite.brainstormingInstruction":`Anweisung für die Brainstorming-Phase`,"settings.global":`Allgemein`,"settings.projects":`Projekte`,"settings.globalSettings":`Allgemeine Einstellungen`,"settings.defaultModel":`Standardmodell`,"settings.defaultModelClaude":`Standardmodell (Claude Code)`,"settings.defaultModelCodex":`Standardmodell (OpenAI Codex)`,"settings.agentPermissions":`Agentenberechtigungen`,"settings.skipPermissions":`Berechtigungsabfragen überspringen (--dangerously-skip-permissions)`,"settings.skipPermissionsWarning":`Achtung: Wird diese Option deaktiviert, werden alle Tool-Berechtigungen (Write, Edit, Bash...) im Headless-Modus automatisch abgelehnt. Der Agent kann dann nur lesen.`,"settings.notifications":`Benachrichtigungen`,"settings.browserNotifications":`Browser-Benachrichtigung wenn Agent fertig ist`,"settings.audioNotifications":`Ton-Benachrichtigung wenn Agent fertig ist`,"settings.enableBrowserNotifications":`Browser-Benachrichtigungen aktivieren`,"settings.testBrowserNotification":`Benachrichtigung testen`,"settings.browserNotificationGranted":`Browser-Benachrichtigungen erlaubt`,"settings.browserNotificationDenied":`Browser-Benachrichtigungen blockiert`,"settings.browserNotificationAsk":`Browser-Berechtigung erforderlich`,"settings.browserNotificationUnsupported":`Browser-Benachrichtigungen nicht verfügbar`,"settings.browserNotificationPermissionNeeded":`Erlaube Browser-Benachrichtigungen, um einen Test zu senden.`,"settings.browserNotificationTestTitle":`Kōbō-Benachrichtigungstest`,"settings.browserNotificationTestBody":`Browser-Benachrichtigungen funktionieren.`,"settings.enableAudio":`Audio aktivieren`,"settings.notificationSound":`Benachrichtigungston`,"settings.notificationSoundHint":`Wird abgespielt, wenn der Agent fertig ist oder eine Berechtigung anfordert.`,"settings.questionSound":`Frageton`,"settings.questionSoundHint":`Wird nur abgespielt, wenn der Agent eine Frage stellt.`,"settings.workspaceCreatedSound":`Ton für Workspace-Erstellung`,"settings.workspaceCreatedSoundHint":`Wird nach dem Erstellen eines Workspaces abgespielt.`,"settings.notificationSoundPreview":`Anhören`,"settings.notificationVolume":`Lautstärke`,"settings.notificationSoundHey":`Hey`,"settings.agentErrorSound":`Agentenfehler`,"settings.agentErrorSoundHint":`Wird bei Quoten-, Rate-Limit- und Agentenfehlern abgespielt.`,"settings.notificationSoundBasic":`Standardbenachrichtigung`,"settings.notificationSoundWorkspaceCreated":`Warcraft III — Arbeit`,"settings.notificationSoundTravailTermine":`Arbeit erledigt`,"settings.notificationSoundFaaah":`Faaah`,"settings.notificationSoundCaVaPeter":`Das wird knallen`,"settings.notificationSoundDryFart":`Dry fart`,"settings.notificationSoundForShure":`For shure`,"settings.prSoundSection":`PR / MR und CI`,"settings.soundGeneral":`Allgemeiner Ton`,"settings.soundNone":`Kein Ton`,"settings.prCiFailedSound":`CI fehlgeschlagen`,"settings.prCiRecoveredSound":`CI wieder erfolgreich`,"settings.prChangesRequestedSound":`Änderungen angefordert`,"settings.prApprovedSound":`PR genehmigt`,"settings.prMergeConflictSound":`Merge-Konflikt`,"settings.prReadyToMergeSound":`Bereit zum Mergen`,"settings.prMergedSound":`PR gemergt`,"settings.prCiFailedSoundHint":`Wird abgespielt, wenn die CI fehlschlägt.`,"settings.prCiRecoveredSoundHint":`Wird abgespielt, wenn sich die CI nach einem Fehler erholt.`,"settings.prChangesRequestedSoundHint":`Wird abgespielt, wenn Änderungen angefordert werden.`,"settings.prApprovedSoundHint":`Wird abgespielt, wenn der Pull Request genehmigt wird.`,"settings.prMergeConflictSoundHint":`Wird abgespielt, wenn ein Merge-Konflikt erkannt wird.`,"settings.prReadyToMergeSoundHint":`Wird abgespielt, wenn der Pull Request merge-bereit ist.`,"settings.prMergedSoundHint":`Wird abgespielt, wenn der Pull Request gemergt wird.`,"settings.notificationSoundSeptiemeCompagnie03":`7ème compagnie 03`,"settings.notificationSoundAllerFtg":`Aller FTG`,"settings.notificationSoundArreteDeMentir":`Arrête de mentir`,"settings.notificationSoundArretezLesMessages":`Arrêtez d'envoyer les messages`,"settings.notificationSoundBahAlorsOnEstNul":`Bah alors, on est nul`,"settings.notificationSoundGtaVDeath":`GTA V — Death`,"settings.notificationSoundNanTuDegages":`Nan, tu dégages`,"settings.notificationSoundNanWallahPardon":`Nan, wallah, pardon`,"settings.notificationSoundOuaisCestGreg":`Ouais, c'est Greg`,"settings.notificationSoundPasCaZinedine":`Pas ça, Zinedine`,"settings.notificationSoundTaGueule":`Ta gueule`,"settings.notificationSoundTuVasLaFermer":`Tu vas la fermer`,"settings.notificationSoundYaaa":`Yaaa`,"settings.notificationSoundMaisLaisseMoiDormirZebi":`Mais laisse-moi dormir zebi`,"settings.defaultPermissionMode":`Standard-Berechtigungsmodus`,"settings.defaultPermissionModeClaude":`Standard-Berechtigungsmodus (Claude Code)`,"settings.defaultPermissionModeCodex":`Standard-Berechtigungsmodus (OpenAI Codex)`,"settings.defaultPermissionModeHint":`Modus bei der Erstellung eines neuen Workspaces. Plan = nur lesen, Bypass = keine Nachfragen, Strict = Edits automatisch akzeptieren mit allow-list, Interaktiv = vor jedem Tool fragen.`,"settings.activityFeed":`Aktivitätsfeed`,"settings.showThinkingBlocks":`Denkblöcke der Agenten anzeigen`,"settings.whipSettings":`Peitsche`,"settings.whipSettingsHint":`Konfiguriere den optionalen Peitschen-Kurzbefehl und die Lautstärke.`,"settings.whipEnabled":`Peitsche aktivieren`,"settings.whipEnabledHint":`Zeigt die interaktive Peitsche in geeigneten laufenden Workspaces an.`,"settings.whipVolume":`Peitschenlautstärke`,"settings.whipVolumeMasterAudioDisabled":`Der Hauptton ist ausgeschaltet. Aktivieren Sie Audio-Benachrichtigungen, um die Peitschenlautstärke anzupassen; der gespeicherte Wert bleibt erhalten.`,"whip.overlayLabel":`Interaktive Peitsche`,"whip.overlayInstructions":`Bewegen Sie den Zeiger, um die Peitsche zu steuern. Drücken Sie Eingabe oder Leertaste zum Knallen. Drücken Sie Escape zum Schließen.`,"settings.whipShortcut":`Peitschen-Tastenkürzel`,"settings.whipShortcutHint":`Klicken Sie und drücken Sie dann das gewünschte Tastenkürzel.`,"settings.whipShortcutRecording":`Tastenkürzel drücken…`,"settings.whipShortcutButtonLabel":`Peitschen-Tastenkürzel: {shortcut}`,"settings.whipShortcutRecordingLabel":`Peitschen-Tastenkürzel wird aufgezeichnet. Tastenkürzel drücken…`,"settings.whipShortcutReset":`Tastenkürzel zurücksetzen`,"settings.whipShortcutReserved":`Dieses Tastenkürzel ist vom Browser reserviert.`,"settings.testIntegration":`Verbindung testen`,"pwa.offline":`Du bist offline. Chat und Agenten benötigen den Kōbō-Server.`,"pwa.reconnecting":`Verbindung zum Kōbō-Server wird wiederhergestellt…`,"pwa.installReady":`Kōbō als App installieren.`,"pwa.install":`Installieren`,"pwa.ignore":`Ignorieren`,"pwa.updateReady":`Ein Kōbō-Update ist verfügbar.`,"pwa.reload":`Neu laden`,"chat.searchWorkspaceHistory":`Workspace-Verlauf durchsuchen`,"chat.historySearch.user":`Sie`,"chat.historySearch.agent":`Agent`,"chat.openInGitDiff":`Im Git-Diff öffnen`,"timeline.title":`Sitzungszeitachse`,"timeline.export":`Diagnose exportieren`,"timeline.unnamed":`Agent-Sitzung`,"timeline.tools":`{count} Tools`,"timeline.errors":`{count} Fehler`,"settings.verboseMessages":`Ausführliche Systemnachrichten anzeigen (task_progress, task_started)`,"settings.availableVariables":`Verfügbare Template-Variablen`,"settings.prPromptTemplate":`PR-Prompt-Vorlage`,"settings.prPromptPlaceholder":`Anweisungen für den Agenten bei der Erstellung von GitHub-PRs...`,"settings.prPromptHint":`Verwenden Sie die oben aufgeführten Platzhalter (doppelte geschweifte Klammern).`,"settings.reviewPromptTemplate":`Review-Prompt-Vorlage`,"settings.reviewPromptPlaceholder":`Anweisungen für den Agenten bei der Review von Branch-Änderungen...`,"settings.ciFixPromptTemplate":`CI-Fix-Prompt-Vorlage`,"settings.ciFixPromptHint":`Wird an den Agenten gesendet, wenn die CI eines Workspaces fehlschlägt. Variablen (doppelte geschweifte Klammern): pr_url, pr_number, pr_title, branch_name, source_branch, workspace_name, workspace_id, project_name, failed_jobs, ci_run_url.`,"settings.ciFixPromptPlaceholder":`Den Agenten bitten, die fehlschlagenden CI-Jobs zu diagnostizieren und zu beheben...`,"settings.finalizationPromptTemplate":`Auto-Loop-Finalisierungs-Prompt`,"settings.finalizationPromptHint":`Standard-Prompt für die letzte Auto-Loop-Iteration (abschließende Qualitätsprüfungen). Wird verwendet, wenn ein Projekt seinen eigenen Finalisierungs-Prompt leer lässt.`,"settings.finalizationPromptPlaceholder":`Run final quality checks before closing the workspace...`,"settings.notionInitialPrompt":`Notion-Initial-Prompt`,"settings.notionInitialPrompt.help":`Wird an den Workspace-Erstellungsprompt angehängt, wenn der Workspace ein Notion-Ticket hat. Variablen: {variables}.`,"settings.notionInitialPrompt.project":`Notion-Initial-Prompt (Überschreibung)`,"settings.sentryInitialPrompt":`Sentry-Initial-Prompt`,"settings.sentryInitialPrompt.help":`Wird an den Workspace-Erstellungsprompt angehängt, wenn der Workspace ein Sentry-Issue hat. Variablen: {variables}.`,"settings.sentryInitialPrompt.project":`Sentry-Initial-Prompt (Überschreibung)`,"settings.initialPrompt.inheritHint":`Leer lassen, um zu erben. Geben Sie ein Leerzeichen ein, um die Injektion auf dieser Ebene zu deaktivieren.`,"settings.resetToDefault":`Zurücksetzen`,"settings.resetFailed":`Standardwert konnte nicht geladen werden`,"settings.sentryIntegration":`Sentry-Integration`,"settings.var.prNumber":`PR-Nummer (z. B. 42)`,"settings.var.prUrl":`Vollständige URL der erstellten PR`,"settings.var.branchName":`Name des Arbeitsbranches`,"settings.var.sourceBranch":`Quellbranch, auf den die PR abzielt`,"settings.var.workspaceName":`Workspace-Name`,"settings.var.projectName":`Letztes Segment des Projektpfads`,"settings.var.notionUrl":`Notion-URL falls gesetzt, sonst leer`,"settings.var.commits":`Aufzählung der Commits zwischen Source und Head`,"settings.var.diffStats":`Git-Shortstat-Zusammenfassung (Dateien, Einfügungen, Löschungen)`,"settings.var.tasks":`Reguläre Aufgaben als Checkliste`,"settings.var.acceptanceCriteria":`Akzeptanzkriterien als Checkliste`,"settings.gitConventions":`Git-Konventionen (global)`,"settings.gitConventionsPlaceholder":`# Git-Konventionen...`,"settings.gitConventionsHint":`Diese Konventionen werden in .ai/.git-conventions.md jedes neuen Arbeitsbereichs geschrieben und müssen vom Agenten vor jeder Git-Operation eingehalten werden. Werden durch projektspezifische Konventionen überschrieben, falls definiert.`,"settings.setupScript":`Setup-Skript`,"settings.cleanupScript":`Cleanup-Skript`,"settings.archiveScript":`Archiv-Skript`,"settings.archiveScriptHint":`Shell-Skript, das serverseitig im Worktree ausgeführt wird, wenn ein Workspace archiviert wird. Leer lassen zum Deaktivieren.`,"settings.archiveScriptPlaceholder":`z. B. Container aufräumen, Speicherplatz freigeben…`,"settings.hook.sessionEndedTitle":`Hook: Sitzung beendet`,"settings.hook.sessionEndedHint":`Läuft, wenn eine Agenten-Sitzung endet, aus welchem Grund auch immer. Liest KOBO_SESSION_END_REASON (completed / error / killed / watchdog), KOBO_SESSION_STOP_CAUSE, KOBO_AUTOLOOP_ACTIVE, KOBO_SESSION_ID und KOBO_SESSION_EXIT_CODE. Leer = deaktiviert.`,"settings.hook.sessionEndedPlaceholder":`z. B. npm test oder einen Chat-Kanal benachrichtigen…`,"settings.hook.prMergedTitle":`Hook: PR gemergt`,"settings.hook.prMergedHint":`Läuft, wenn ein PR als gemergt erkannt wird, bevor der Workspace archiviert oder bereinigt wird - der Worktree liegt noch auf der Platte. Liest KOBO_PR_NUMBER und KOBO_PR_URL. Leer = deaktiviert.`,"settings.hook.prMergedPlaceholder":`z. B. ein Deployment auslösen, ein Release taggen…`,"settings.hook.autoLoopDisabledTitle":`Hook: Auto-Loop gestoppt`,"settings.hook.autoLoopDisabledHint":`Läuft bei jeder Deaktivierung des Auto-Loops, durch Kōbō oder durch Sie. Liest KOBO_AUTOLOOP_REASON (completed / stall / error / user-action / awaiting-clarification) und KOBO_TASKS_PENDING. Leer = deaktiviert.`,"settings.hook.autoLoopDisabledPlaceholder":`z. B. benachrichtigen, wenn die Schleife hängt…`,"settings.changeSourceBranchScript":`Quellbranch-Wechsel-Skript`,"settings.changeSourceBranchScript.help":`Ersetzt den eingebauten Cherry-Pick, wenn nicht leer. Das Skript verwaltet Git, PR-Basis, Force-Push und Konflikte; Kōbō verweigert nur, solange der Agent läuft, und aktualisiert die Quellbranch-Metadaten bei Exit 0.`,"settings.changeSourceBranchScript.envHelp":`KOBO_NEW_BASE — neuer Quellbranch aus dem Dialog
2
- KOBO_OLD_BASE — vorheriger Quellbranch des Workspaces
3
- KOBO_WORKING_BRANCH — Arbeitsbranch des Workspaces
4
- KOBO_WORKTREE_PATH — absoluter Pfad des Worktrees (auch cwd)
5
- KOBO_PROJECT_PATH — absoluter Pfad des Hauptrepos
6
- KOBO_PROJECT_NAME — Projektordnername (Basename von KOBO_PROJECT_PATH)
7
- KOBO_WORKSPACE_ID — Kōbō-Workspace-ID (auch nach Umbenennung stabil)
8
- KOBO_WORKSPACE_NAME — Anzeigename des Workspaces
9
- KOBO_FORGE — aufgelöste Forge: github / gitlab / none
10
- KOBO_PR_NUMBER — PR-/MR-Nummer auf der aufgelösten Forge (leer wenn keine offen)`,"settings.changeSourceBranchScript.placeholder":`#!/usr/bin/env bash
11
- # Dein Skript — benutze $KOBO_NEW_BASE / $KOBO_OLD_BASE / $KOBO_WORKING_BRANCH …`,"settings.changeSourceBranchScript.resetDefault":`Auf Kōbō-Standard zurücksetzen`,"settings.changeSourceBranchScript.replaceConfirmTitle":`Skript zurücksetzen?`,"settings.changeSourceBranchScript.replaceConfirm":`Deine Änderungen werden durch das Kōbō-Standardskript ersetzt. Fortfahren?`,"settings.cleanupScriptHint":`Shell-Skript, das im Worktree nach jeder Sitzung des Agenten ausgeführt wird. Im Auto-Loop läuft es nur, wenn alle Aufgaben erledigt sind. Leer lassen zum Deaktivieren.`,"settings.cleanupScriptPlaceholder":`z. B. temporäre Dateien löschen, Container stoppen…`,"settings.cleanupScriptMode":`Wann ausführen`,"settings.cleanupScriptMode.idle":`Nach jeder Sitzung — auch wenn Aufgaben übrig sind`,"settings.cleanupScriptMode.noTasks":`Nur wenn keine Kōbō-Aufgabe übrig ist`,"settings.cleanupScriptOnlyOnChanges":`Nur ausführen, wenn Dateien geändert, hinzugefügt oder gelöscht wurden`,"settings.cleanupScriptMode.inherit":`Globale Einstellung übernehmen`,"settings.taskPromptTemplate":`Aufgaben-Prompt`,"settings.taskPromptTemplatePlaceholder":`Prompt, der automatisch in die Aufgabenbeschreibung eingefügt wird…`,"settings.taskPromptTemplateHint":`Wird automatisch in die Aufgabenbeschreibung auf der Erstellungsseite eingefügt, wenn dieses Projekt ausgewählt ist. Unverändert wird er beim Projektwechsel ersetzt; sobald Sie ihn bearbeiten, bleibt Ihr Text erhalten.`,"settings.setupScriptPlaceholder":`npm install`,"settings.setupScriptHint":`Wird mit bash im Worktree nach der Erstellung ausgeführt, bevor der Agent startet. Kein Shebang erforderlich. Bei Fehler wird der Workspace auf Fehler gesetzt. Timeout: 5 Minuten.`,"settings.e2e.title":`E2E-Tests`,"settings.e2e.framework":`Framework`,"settings.e2e.frameworkNone":`Keiner`,"settings.e2e.frameworkOther":`Anderer`,"settings.e2e.skill":`Skill (optional)`,"settings.e2e.skillPlaceholder":`z.B. cypress-tester`,"settings.e2e.prompt":`Eigene Anleitung (optional)`,"settings.e2e.promptPlaceholder":`z.B. Page-Object-Pattern, data-testid-Attribute verwenden`,"settings.e2e.helpText":`Wenn konfiguriert, fügt der Auto-Loop-Grooming-Agent E2E-Unteraufgaben für UI-Funktionen ein.`,"settings.finalization.title":`Auto-loop-Finalisierung`,"settings.finalization.helpText":`Optional: ein Prompt, den der Agent als allerletzte Auto-loop-Iteration ausführt. Wird typischerweise für finale Quality-Checks (Lint, Typecheck, Tests) verwendet. Die Grooming-Phase erstellt eine mit [FINAL] präfixierte Aufgabe, die diesen Prompt nutzt.`,"settings.finalization.prompt":`Finalisierungs-Prompt`,"settings.finalization.promptPlaceholder":`z. B. Führe npm run lint und npm test aus, dann markiere diese Aufgabe als erledigt.`,"settings.editorCommand":`Editor-Befehl`,"settings.editorCommandPlaceholder":`code, phpstorm, subl, vim...`,"settings.editorCommandHint":`Befehl zum Öffnen des Worktrees in Ihrem Editor. Der Worktree-Pfad wird als Argument übergeben.`,"settings.fileManagerCommand":`Dateimanager-Befehl`,"settings.fileManagerCommandPlaceholder":`xdg-open, open, nautilus, dolphin, explorer...`,"settings.fileManagerCommandHint":`Befehl zum Öffnen des Worktrees in Ihrem Dateimanager. Der Worktree-Pfad wird als Argument übergeben. Leer lassen, um den Button auszublenden.`,"settings.terminalCommand":`Terminal-Befehl`,"settings.terminalCommandHint":`Befehl zum Starten des Terminals im Worktree. Optionaler {path}-Platzhalter für das Verzeichnis.`,"settings.terminalCommandPlaceholder":`kitty · alacritty · gnome-terminal --working-directory={path}`,"settings.mcpSelection":`Claude-MCP-Auswahl`,"settings.mcpAutoSelect":`Auto (erster passender aktiver MCP)`,"settings.notionMcp":`Notion-MCP-Schlüssel`,"settings.sentryMcp":`Sentry-MCP-Schlüssel`,"settings.mcpSelectionHint":`Aktive Einträge werden aus ~/.claude.json gelesen. Auto belassen für das Standard-Matching.`,"settings.configuredProjects":`Konfigurierte Projekte`,"settings.noProjects":`Keine Projekte konfiguriert`,"settings.addProject":`Projekt hinzufügen`,"settings.copyFrom":`Einstellungen kopieren von`,"settings.copyFromPlaceholder":`(keine — Standardwerte verwenden)`,"settings.copyFromHint":`Kopiert alle Einstellungen außer Pfad, Anzeigename und Quell-Branch.`,"settings.copyFromConfirmTitle":`Aktuelle Werte überschreiben?`,"settings.copyFromConfirm":`Damit werden die aktuellen Formularwerte durch die Einstellungen von „{project}" ersetzt. Fortfahren?`,"settings.newProject":`Neues Projekt`,"settings.editProject":`Projekt bearbeiten`,"help.title":`Hilfe`,"help.tours":`Geführte Touren`,"help.steps":`{n} Schritt | {n} Schritte`,"help.markAllSeen":`Alle als gesehen markieren`,"help.markAllSeenHint":`Markiert die aktuellen Touren als gesehen, ohne sie zu starten.`,"help.resetAll":`Alle Touren zurücksetzen`,"help.resetAllHint":`Startet jetzt die Start-Tour; jeder Bildschirm wiederholt seine beim nächsten Öffnen.`,"help.status.unseen":`nicht gesehen`,"help.status.partial":`teilweise`,"help.status.seen":`gesehen`,"help.replayThis":`Tour dieses Bildschirms wiederholen`,"tours.next":`Weiter`,"tours.prev":`Zurück`,"tours.done":`Fertig`,"tours.exitConfirm":`Geführte Tour beenden? Sie startet nicht mehr von selbst; du kannst sie jederzeit über das Hilfemenü wiederholen.`,"tours.home.title":`Orientierung`,"tours.home.list.title":`Workspaces`,"tours.home.list.description":`Jede Mission lebt hier mit ihrem Status. Badges markieren eine fehlgeschlagene CI, ein Review mit Änderungswünschen oder einen merge-bereiten PR.`,"tours.home.create.title":`Workspace erstellen`,"tours.home.create.description":`Ein Workspace ist ein Git-Worktree, ein Branch und eine Agent-Session für eine Aufgabe.`,"tours.home.search.title":`Suche`,"tours.home.search.description":`Filtere die Liste nach Namen. Das Suchsymbol oben öffnet die Volltextsuche in den Agent-Gesprächen.`,"tours.home.dashboard.title":`Übersicht`,"tours.home.dashboard.description":`Eine Tabelle für alle aktiven Workspaces: Status, Aufmerksamkeit, PR, Diff, Aktivität sowie die Zuverlässigkeit der Engines.`,"tours.home.health.title":`Status und Changelog`,"tours.home.health.description":`Prüfe Datenbank, Runtimes und aktive Agents. Der Button daneben listet, was sich in jeder Version geändert hat.`,"tours.home.settings.title":`Einstellungen`,"tours.home.settings.description":`Engines, Integrationen, Automatisierung, Worktrees und Projekte. Erstelle jetzt deinen ersten Workspace.`,"tours.create.title":`Einen Workspace erstellen`,"tours.create.project.title":`Projekt und Branch`,"tours.create.project.description":`Wähle das Projekt und den Branch, von dem der Worktree ausgeht.`,"tours.create.mission.title":`Mission`,"tours.create.mission.description":`Beschreibe die Aufgabe oder importiere sie aus einer Notion-Seite oder einem Sentry-Issue.`,"tours.create.template.title":`Templates`,"tours.create.template.description":`Wende ein gespeichertes Preset an oder speichere dieses Formular als Preset. „Duplizieren“ auf einer Workspace-Karte öffnet dieses Formular vorausgefüllt.`,"tours.create.engine.title":`Engine und Modell`,"tours.create.engine.description":`Claude Code oder Codex, das Modell, der Reasoning-Aufwand und was der Agent ohne Nachfrage tun darf.`,"tours.create.brainstorm.title":`Brainstorm auf einem anderen Modell`,"tours.create.brainstorm.description":`Führe die erste Brainstorming-Session auf einem anderen Modell aus und wechsle für die Iterationen zurück.`,"tours.create.autoloop.title":`Auto-Loop`,"tours.create.autoloop.description":`Lass den Agenten Sessions aneinanderreihen, bis alle Aufgaben erledigt sind oder er stagniert.`,"tours.create.comparison.title":`Zwei Engines vergleichen`,"tours.create.comparison.description":`Erstelle zwei Geschwister-Workspaces für dieselbe Aufgabe und vergleiche Commits, Aufgaben und Aktivität.`,"tours.workspace.sessions.title":`Workspace-Sitzungen`,"tours.workspace.sessions.description":`Klicke auf den Titel, um eine Sitzung auszuwählen, anzulegen, umzubenennen oder ihre Kennung zu kopieren.`,"tours.workspace.actions.title":`Workspace-Aktionen`,"tours.workspace.actions.description":`Das Menü ⋯ enthält die geteilte Ansicht, die Befehlspalette, das Seitenpanel und die Führung.`,"tours.workspace.title":`In einem Workspace`,"tours.workspace.chat.title":`Gespräch`,"tours.workspace.chat.description":`Die Ausgabe des Agenten, live: Nachrichten, Tool-Aufrufe, Fragen und Fehler.`,"tours.workspace.input.title":`Mit dem Agenten sprechen`,"tours.workspace.input.description":`Sende eine Nachricht, nutze Slash-Befehle, diktiere per Stimme oder hänge Dateien an.`,"tours.workspace.selectors.title":`Session-Einstellungen`,"tours.workspace.selectors.description":`Öffne Konfigurieren für Modell, Denkaufwand, Berechtigungen und Auto-Loop. Dort steht auch die aktuelle Engine.`,"tours.workspace.status.title":`Status`,"tours.workspace.status.description":`Der Zustand der aktuellen Session; hier kannst du sie bei Bedarf stoppen.`,"tours.workspace.git.title":`Git`,"tours.workspace.git.description":`Commits, Diff, Push, Rebase und der PR dieses Branches.`,"tours.workspace.tasks.title":`Aufgaben`,"tours.workspace.tasks.description":`Was der Agent vorhat, und die Akzeptanzkriterien, die er erfüllen muss.`,"tours.workspace.timeline.title":`Zeitachse`,"tours.workspace.timeline.description":`Jede Session dieses Workspaces; öffne eine ältere, um sie nachzulesen.`,"tours.workspace.subagents.title":`Sub-Agents`,"tours.workspace.subagents.description":`Verfolge die Sub-Agents, die der Agent gestartet hat, mit ihrem Live-Fortschritt.`,"tours.workspace.documents.title":`Dokumente`,"tours.workspace.documents.description":`Pläne und Dateien, die der Agent geschrieben hat, lesbar ohne den Chat zu verlassen.`,"tours.workspace.schedule.title":`Zeitplan`,"tours.workspace.schedule.description":`Wake-ups und Crons, die den Agenten später neu starten.`,"tours.workspace.handoff.title":`Mit frischem Kontext fortfahren`,"tours.workspace.handoff.description":`Lange Unterhaltung? Starte hier eine frische Sitzung oder nutze „LLM wechseln“. Die aktuelle Arbeit wird sofort unterbrochen und die neue Sitzung setzt automatisch im selben Workspace fort. Die Zusammenfassung ist optional: Deaktiviere sie, wenn das Kontingent des aktuellen LLM erschöpft ist. Fortschritt, Bericht und Link zur vorherigen Sitzung erscheinen unter diesem Button.`,"tours.workspace.terminal.title":`Terminal`,"tours.workspace.terminal.description":`Eine Shell im Worktree, ohne Kōbō zu verlassen.`,"tours.gitPr.title":`Pull Request`,"tours.gitPr.panel.title":`PR-Status`,"tours.gitPr.panel.description":`CI-Ergebnis, Review-Entscheidung und Reviewer, alle 30 Sekunden aktualisiert.`,"tours.gitPr.actions.title":`Git-Aktionen`,"tours.gitPr.actions.description":`Push, Pull, Rebase oder Basis-Branch wechseln. Bei einem Konflikt lässt ein Button den Agenten ihn lösen.`,"tours.gitPr.attention.title":`Aufmerksamkeits-Badges`,"tours.gitPr.attention.description":`Die Karte zeigt eine fehlgeschlagene CI, angeforderte Änderungen oder einen merge-bereiten PR.`,"tours.settings.title":`Einstellungen`,"tours.settings.engines.title":`Engines und Modelle`,"tours.settings.engines.description":`Standardmodelle, Berechtigungen und Grenzen für automatische Wiederholungen.`,"tours.settings.integrations.title":`Integrationen`,"tours.settings.integrations.description":`Notion- und Sentry-Verbindungen sowie Bitbucket-Zugangsdaten. GitHub und GitLab verwenden Ihre lokale CLI-Anmeldung.`,"tours.settings.automation.title":`Automatisierung`,"tours.settings.automation.description":`Setup- und Cleanup-Skripte, Lifecycle-Hooks, Prompt-Templates, Workspace-Templates und Skills.`,"tours.settings.worktrees.title":`Worktrees`,"tours.settings.worktrees.description":`Wo Worktrees liegen, wie lange gemergte behalten werden, und das automatische Löschen.`,"tours.settings.projects.title":`Projekte`,"tours.settings.projects.description":`Registrierte Projekte und ihre projektspezifischen Überschreibungen.`,"tours.settings.misc.title":`Allgemein, Stimme, Benachrichtigungen, Export`,"tours.settings.misc.description":`Sprache, Netzwerkzugriff, Diktat, Töne und Browser-Benachrichtigungen sowie ein vollständiger Export deiner Einstellungen.`,"tours.dashboard.title":`Übersicht`,"tours.dashboard.overview.title":`Überblick`,"tours.dashboard.overview.description":`Alle aktiven Workspaces in einer Tabelle; klicke auf eine Zeile, um sie zu öffnen.`,"tours.dashboard.reliability.title":`Zuverlässigkeit der Engines`,"tours.dashboard.reliability.description":`Sessions, Fehler und Dauern pro Engine und Modell.`,"tours.health.title":`Status`,"tours.health.checks.title":`Prüfungen`,"tours.health.checks.description":`Umgebung, Datenbank, Runtimes, Workspaces und Sessions.`,"tours.health.active.title":`Aktiver Zustand`,"tours.health.active.description":`Aktuelle Quota-Back-offs, ausstehende Wake-ups und laufende Auto-Loops.`,"tours.search.title":`Suche`,"tours.search.input.title":`Suchanfrage`,"tours.search.input.description":`Findet Workspace-Namen und Agent-Gespräche.`,"tours.search.archived.title":`Archiviert`,"tours.search.archived.description":`Archivierte Workspaces in die Ergebnisse einbeziehen.`,"tours.changelog.title":`Was ist neu`,"tours.changelog.list.title":`Versionen`,"tours.changelog.list.description":`Was sich in jeder Version geändert hat, neueste zuerst.`,"settings.projectGroup.identity":`Identität`,"settings.projectGroup.defaults":`Standardwerte`,"settings.projectGroup.prompts":`Prompts`,"settings.projectGroup.scripts":`Skripte`,"settings.projectPath":`Projektpfad`,"settings.projectPathPlaceholder":`/pfad/zum/projekt`,"settings.displayName":`Anzeigename`,"settings.displayNamePlaceholder":`Mein Projekt`,"settings.defaultSourceBranch":`Standard-Quellbranch`,"settings.defaultModel.project":`Standardmodell`,"settings.skipPermissions.project":`Berechtigungsabfragen überspringen`,"settings.prPromptTemplate.project":`PR-Prompt-Vorlage`,"settings.prPromptPlaceholder.project":`Projektspezifische Anweisungen für PR-Erstellung...`,"settings.reviewPromptTemplate.project":`Review-Prompt-Vorlage`,"settings.ciFixPromptTemplate.project":`CI-Fix-Prompt-Vorlage`,"settings.gitConventions.project":`Git-Konventionen (Projekt)`,"settings.gitConventionsEmpty":`Leer lassen, um die globalen Konventionen zu verwenden.`,"settings.notionStatus":`Notion-Ticket-Status`,"settings.notionStatusProperty":`Eigenschaftsname`,"settings.notionStatusPropertyPlaceholder":`État, Status...`,"settings.notionInProgressStatus":`Zu setzender Wert`,"settings.notionInProgressStatusPlaceholder":`In Bearbeitung, In progress...`,"settings.notionStatusHint":`Wenn ein Workspace mit einem Notion-Ticket erstellt wird, wird die angegebene Eigenschaft auf diesen Wert gesetzt. Beide Felder sind erforderlich. Leer lassen zum Deaktivieren.`,"settings.notionAssignee":`Notion-Zuweisung`,"settings.notionAssigneeHint":`Wenn ein Workspace mit einem Notion-Ticket erstellt wird, wird der über den Notion-MCP authentifizierte Benutzer dieser People-Eigenschaft hinzugefügt — nur wenn sie noch keinen Zuweisungsempfänger hat. Leer lassen zum Deaktivieren.`,"settings.notionAssigneeProperty":`Eigenschaftsname`,"settings.notionAssigneePropertyPlaceholder":`Entwickler, Assignees...`,"settings.notionUserId":`Deine Notion-UUID`,"settings.notionUserIdPlaceholder":`135d872b-594c-8126-9604-00024ad6e5b5`,"settings.notionUserIdHint":`Wähle dein Konto aus der Liste. Notion lehnt Bot-Zuweisungen in People-Eigenschaften ab — dieses Feld ist erforderlich, um die automatische Zuweisung zu aktivieren.`,"settings.notionUsersRefresh":`Aktualisieren`,"settings.notionUsersLoading":`Notion-Benutzer werden geladen…`,"settings.notionUsersLoadFailed":`Liste konnte nicht geladen werden: {error}`,"settings.notionUsersManualFallback":`Liste nicht verfügbar — füge deine Notion-UUID manuell ein.`,"settings.devServer":`Dev-Server`,"settings.devServerStart":`Startskript`,"settings.devServerStartPlaceholder":`npm run dev`,"settings.devServerStop":`Stoppskript`,"settings.devServerStopPlaceholder":`Optional — der Prozess wird automatisch beendet, wenn leer`,"settings.selectProject":`Projekt auswählen oder neues hinzufügen`,"settings.useGlobal":`Global verwenden`,"settings.saved":`Allgemeine Einstellungen gespeichert.`,"settings.unsavedChanges":`Nicht gespeicherte Änderungen`,"settings.nav.general":`Allgemein`,"settings.nav.agents":`Agenten`,"settings.nav.skills":`Skills`,"settings.nav.prompts":`Prompts`,"settings.nav.scripts":`Skripte`,"settings.nav.workspaceTemplates":`Workspace-Vorlagen`,"workspaceTemplates.title":`Workspace-Vorlagen`,"workspaceTemplates.hint":`Gespeicherte Voreinstellungen des Erstellungsformulars. Wählen Sie eine auf der Erstellungsseite; zum Ändern dort laden, anpassen und unter demselben Namen erneut speichern.`,"workspaceTemplates.empty":`Noch keine Vorlage. Füllen Sie das Erstellungsformular aus und nutzen Sie „Als Vorlage speichern“.`,"workspaceTemplates.anyProject":`Jedes Projekt`,"workspaceTemplates.rename":`Umbenennen`,"workspaceTemplates.renameTitle":`Vorlage umbenennen`,"workspaceTemplates.deleteConfirm":`Vorlage „{name}“ löschen?`,"workspaceTemplates.deleted":`Vorlage „{name}“ gelöscht`,"settings.nav.notion":`Notion`,"settings.nav.forge":`Forge`,"settings.bitbucketCommunity":`Bitbucket Community`,"settings.bitbucketCommunityHint":`Zugangsdaten bleiben lokal und werden nur von bkt verwendet.`,"settings.bitbucketUsername":`Atlassian-E-Mail`,"settings.bitbucketToken":`Bitbucket-API-Token`,"settings.nav.sentry":`Sentry`,"settings.nav.voice":`Sprache`,"settings.nav.notifications":`Benachrichtigungen`,"settings.nav.worktrees":`Worktrees`,"settings.nav.export":`Export`,"settings.help.general":`Sprache, Netzwerkzugriff und die Standardwerte, die jedes Projekt erbt.`,"settings.help.agents":`Standardmodelle und Berechtigungen sowie Grenzen für automatische Wiederholungen.`,"settings.help.skills":`Welche Skill-Suiten der Agent verwenden soll.`,"settings.help.prompts":`Agentenanweisungen nach dem Öffnen einer PR/MR, für Code-Reviews, CI-Korrekturen und Abschluss.`,"settings.help.scripts":`Setup-, Cleanup- und Change-Source-Branch-Skripte sowie Lifecycle-Hooks.`,"settings.help.notion":`Eine Notion-Seite als Source of Truth eines Workspace importieren.`,"settings.help.sentry":`Einen Workspace aus einem Sentry-Issue erstellen.`,"settings.help.forge":`Bitbucket-Zugangsdaten. GitHub und GitLab verwenden Ihre angemeldete gh/glab-CLI; wählen Sie die Forge pro Projekt.`,"settings.help.voice":`Diktat und Push-to-Talk.`,"settings.help.notifications":`Töne, Browser-Benachrichtigungen und die Erinnerung an unbeantwortete Fragen.`,"settings.help.worktrees":`Wo Worktrees angelegt werden, Aufbewahrung und automatisches Löschen.`,"settings.help.projects":`Registrierte Projekte und ihre projektspezifischen Überschreibungen.`,"settings.help.templates":`Prompt-Vorlagen, die in der Chat-Eingabe expandiert werden.`,"settings.help.workspaceTemplates":`Gespeicherte Voreinstellungen des Erstellungsformulars.`,"settings.help.export":`Alle Einstellungen als JSON exportieren und importieren.`,"settings.openNav":`Navigation öffnen`,"settings.saveError":`Fehler beim Speichern der Einstellungen.`,"settings.projectSaved":`Projekt gespeichert.`,"settings.projectSaveError":`Fehler beim Speichern des Projekts.`,"settings.projectDeleted":`Projekt gelöscht.`,"settings.deleteProjectConfirmTitle":`Projekt löschen?`,"settings.deleteProjectConfirmMessage":`„{name}" aus Ihren Projekten entfernen? Dies löscht nur die Kōbō-Einstellungen — Ihr Code und Ihre Worktrees bleiben unberührt.`,"settings.projectDeleteError":`Fehler beim Löschen des Projekts.`,"settings.projectPathRequired":`Projektpfad ist erforderlich.`,"templates.title":`Vorlagen`,"templates.newTemplate":`Neue Vorlage`,"templates.editTemplate":`Vorlage bearbeiten`,"templates.deleteTemplate":`Vorlage löschen`,"templates.deleteConfirm":`Vorlage '/{slug}' löschen?`,"templates.deleteConfirmMessage":`Dies kann nicht rückgängig gemacht werden.`,"templates.slug":`Slug`,"templates.slugHint":`Kleinbuchstaben, Ziffern, Bindestriche. Max. 64 Zeichen.`,"templates.slugInvalid":`Slug darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten`,"templates.slugDuplicate":`Eine Vorlage mit diesem Slug existiert bereits`,"templates.description":`Beschreibung`,"templates.descriptionHint":`Kurzes Label, das im Dropdown angezeigt wird.`,"templates.descriptionRequired":`Beschreibung ist erforderlich`,"templates.contentRequired":`Inhalt ist erforderlich`,"templates.content":`Inhalt`,"templates.contentHint":`Vorlageninhalt. Verwende {variable_name} für Substitutionen.`,"templates.availableVars":`Verfügbare Variablen`,"templates.filePath":`Datei: {path}`,"templates.empty":`Noch keine Vorlagen.`,"templates.createFailed":`Vorlage konnte nicht erstellt werden`,"templates.updateFailed":`Vorlage konnte nicht aktualisiert werden`,"templates.deleteFailed":`Vorlage konnte nicht gelöscht werden`,"templates.save":`Speichern`,"templates.create":`Erstellen`,"templates.reloadDefaults":`Standardvorlagen neu laden`,"templates.reloadDefaultsHint":`Fügt nur fehlende Standardvorlagen hinzu. Bestehende Vorlagen (auch geänderte) werden nie überschrieben.`,"templates.reloadDefaultsConfirmMessage":`Diese Aktion fügt die fehlenden Standardvorlagen wieder zur Liste hinzu. Bestehende Vorlagen — einschließlich derjenigen, die du angepasst hast — werden nicht berührt. Wenn du eine geänderte Standardvorlage zurücksetzen möchtest, lösche sie zuerst und führe diese Aktion dann erneut aus.`,"templates.reloadDefaultsSuccess":`{added} hinzugefügt, {kept} beibehalten`,"templates.reloadDefaultsFailed":`Standardvorlagen konnten nicht neu geladen werden`,"templates.resetToDefault":`Auf Standard zurücksetzen`,"templates.resetConfirmTitle":`Template auf Standard zurücksetzen?`,"templates.resetConfirmMessage":`Dies überschreibt deine lokalen Änderungen an /{slug} mit dem Standard. Kann nicht rückgängig gemacht werden.`,"templates.resetSuccess":`Template /{slug} auf Standard zurückgesetzt`,"templates.resetFailed":`Zurücksetzen des Templates fehlgeschlagen`,"chatInput.dropdownSkills":`Claude-Skills`,"chatInput.dropdownKobo":`Kōbō-Befehle`,"chatInput.dropdownTemplates":`Vorlagen`,"documents.title":`Dokumente`,"documents.empty":`Keine Dokumente gefunden`,"documents.refresh":`Aktualisieren`,"documents.back":`Zurück`,"documents.loadFailed":`Dokument konnte nicht geladen werden`,"git.title":`Git`,"git.outputDialogTitle":`Git hat einen Fehler gemeldet`,"git.statsFailed":`Der Git-Status konnte nicht gelesen werden`,"git.section.repository":`Repository`,"git.section.changes":`Änderungen`,"git.section.pullRequest":`Pull Request`,"git.section.actions":`Aktionen`,"git.actions.more":`Mehr`,"git.localOnly":`nur lokal`,"git.pushed":`gepusht`,"git.unpushed":`{count} nicht gepusht`,"git.commits":`{count} Commit | {count} Commits`,"git.commits.loading":`Commits werden geladen…`,"git.commits.empty":`Keine Commits auf diesem Branch`,"git.commits.pushed":`Gepusht`,"git.commits.unpushed":`Ungepusht`,"git.commits.clickToAppend":`klicken, um SHA an Chat anzuhängen`,"git.commits.diffThisCommit":`Diff dieses Commits (vs Parent)`,"git.compareCommits":`Commits vergleichen…`,"git.files":`{count} Datei | {count} Dateien`,"git.staged":`{count} vorgemerkt`,"git.modified":`{count} geändert`,"git.untracked":`{count} nicht verfolgt`,"git.workingTreeEmpty":`Keine nicht committeten Änderungen`,"git.fileStaged":`Bereitgestellt`,"git.fileModified":`Geändert`,"git.fileUntracked":`Nicht verfolgt`,"git.push":`Push`,"git.forcePush":`Force push`,"git.forcePushToggle":`Force push (--force-with-lease)`,"git.pushBlockedByOperation":`Zuerst die laufende {operation}-Operation abschließen oder abbrechen`,"git.pushUpToDate":`Nichts zu pushen: der Branch ist auf origin bereits aktuell`,"git.forcePushHint":`Sicherer als --force: Der Push wird abgelehnt, wenn der Remote Commits hat, die du nicht gesehen hast. Nach einem Rebase oder Amend bereits gepushter Commits verwenden.`,"git.branchForcePushed":`Branch force-pushed`,"git.pull":`Pull`,"git.pullNoUpstream":`Kein Upstream für diesen Branch gesetzt — pushe ihn zuerst, um Pull zu aktivieren.`,"git.sync":`Sync`,"git.createPrNoRemote":`Branch zuerst pushen`,"git.viewRequest":`{request} anzeigen`,"git.createRequest":`{request} erstellen`,"git.changeRequestBase":`Zielbranch der {request} ändern`,"git.forgeCliMissing":`{cli} ist nicht installiert — installieren Sie es für {request}-Funktionen`,"git.forgeNotAuthenticated":`Nicht authentifiziert — {cli} auth login ausführen`,"settings.forge":`Forge`,"settings.forge.auto":`Automatisch erkennen`,"settings.forge.github":`GitHub`,"settings.forge.gitlab":`GitLab`,"settings.forge.bitbucketCommunity":`Bitbucket Community (bkt)`,"settings.forge.none":`Keine`,"git.pullConfirmTitle":`Branch pullen?`,"git.pullConfirmMessage":`{branch} vom Remote pullen (nur Fast-Forward).`,"git.branchPulled":`Branch gepullt`,"git.pullFailed":`Pull fehlgeschlagen`,"git.renameBranch":`Branch umbenennen`,"git.renameBranchPrompt":"`{branch}` umbenennen in:","git.renameBranchSuccess":"Branch umbenannt in `{branch}`","git.renameBranchFailed":`Branch umbenennen fehlgeschlagen`,"git.renameBranchExists":"Branch `{branch}` existiert bereits lokal oder auf origin","git.diff":`Diff`,"git.diffReview":`Diff`,"git.diffReviewTooltip":`Diff-Viewer im Review-Modus öffnen — Inline-Kommentare + Batch-Übergabe an den Agenten`,"pr.baseChanged":`PR-Base geändert: {oldBase} → {newBase}`,"pr.openPr":`PR öffnen`,"pr.openWorkspace":`Workspace öffnen`,"pr.dismiss":`Schließen`,"git.rebase":`Rebase`,"git.rebaseConfirmTitle":`Branch rebasen?`,"git.rebaseConfirmMessage":`Rebase auf {branch}. Es können Konflikte auftreten.`,"git.rebaseSuccess":`Rebase abgeschlossen`,"git.rebaseFailed":`Rebase fehlgeschlagen`,"git.merge":`Merge`,"git.fetch":`Fetch`,"git.fetchSuccess":`Repository abgerufen`,"git.fetchFailed":`Fetch fehlgeschlagen: {error}`,"git.mergeConfirmTitle":`Branch mergen?`,"git.mergeConfirmMessage":`{branch} in diesen Branch mergen. Konflikte möglich.`,"git.mergeSuccess":`Merge abgeschlossen`,"git.mergeFailed":`Merge fehlgeschlagen`,"git.commitFailed":`Commit fehlgeschlagen`,"git.commitChanges":`Änderungen committen`,"git.commitDialogTitle":`Nicht committete Änderungen committen`,"git.commitDialogDescription":`Geben Sie Ihre Nachricht ein oder bitten Sie den Agenten, den Commit zu prüfen und zu erstellen.`,"git.commitMessage":`Commit-Nachricht`,"git.commitManual":`Committen`,"git.commitWithAgent":`Agenten fragen`,"git.commitAgentSuccess":`Commit-Anfrage an den Agenten gesendet`,"git.discardFailed":`Verwerfen fehlgeschlagen`,"git.conflictTitleMerge":`Merge-Konflikte erkannt`,"git.conflictTitleRebase":`Rebase-Konflikte erkannt`,"git.operationPausedTitle":`Git-Vorgang fortsetzen`,"git.operationPausedSubtitle":`Keine Dateien stehen im Konflikt. Git wartet nur darauf, dass du den Vorgang fortsetzt.`,"git.conflictSubtitle":`{count} Datei(en) mit Konflikten. Wie soll fortgefahren werden?`,"git.conflictAbortConfirmTitle":`Konfliktlösung verwerfen?`,"git.conflictAbortConfirmMessage":`Alles, was du in diesem {op} gelöst hast, wird verworfen und der Worktree kehrt in den Zustand davor zurück. Das lässt sich nicht rückgängig machen.`,"git.conflictAbort":`Abbrechen`,"git.conflictContinue":`Fortsetzen`,"git.conflictContinued":`Git-Vorgang fortgesetzt`,"git.conflictResolveWithAgent":`Agent soll auflösen`,"git.conflictAborted":`Vorgang abgebrochen`,"git.conflictHandoffSuccess":`Agent löst die Konflikte`,"git.dirtyTitleRebase":`Nicht committete Änderungen blockieren den Rebase`,"git.dirtyTitleMerge":`Nicht committete Änderungen blockieren den Merge`,"git.dirtyTitlePull":`Nicht committete Änderungen blockieren den Pull`,"git.dirtySubtitle":`{modified} geändert, {staged} bereitgestellt, {untracked} nicht verfolgt. Wähle, wie es weitergeht.`,"git.dirtyStash":`Stash & erneut versuchen`,"git.dirtyCommit":`Commit zuerst`,"git.dirtyCommitPlaceholder":`Commit-Nachricht`,"git.dirtyCommitConfirm":`Commit & erneut versuchen`,"git.dirtyDiscard":`Änderungen verwerfen`,"git.dirtyDiscardConfirmTitle":`Alle nicht committeten Änderungen verwerfen?`,"git.dirtyDiscardConfirmMessage":`Verfolgte Änderungen gehen verloren (git reset --hard). Nicht verfolgte Dateien bleiben erhalten. Nicht umkehrbar.`,"git.pushConfirmTitle":`Branch pushen?`,"git.pushConfirmMessage":`{branch} zum Remote pushen.`,"git.pushConfirmMessagePrefix":`Branch`,"git.pushConfirmMessageSuffix":`zum Remote pushen.`,"git.changePrBaseTitle":`Zielbranch ändern`,"git.changePrBaseMessage":`Geben Sie den neuen Zielbranch für den {request} ein.`,"git.changePrBaseSuccess":`{request}-Zielbranch aktualisiert`,"git.changePrBaseFailed":`{request}-Zielbranch konnte nicht geändert werden`,"git.mergeRequest":`{request} mergen`,"git.mergeRequestConfirmTitle":`{request} mergen?`,"git.mergeRequestConfirmMessage":`Dadurch wird die offene {request} in ihren Zielbranch gemergt.`,"git.mergeRequestSuccess":`{request} gemergt`,"git.mergeRequestFailed":`{request} konnte nicht gemergt werden`,"git.deleteRemoteBranch":`Remote-Branch löschen`,"git.deleteRemoteBranchTitle":`Remote-Branch löschen?`,"git.deleteRemoteBranchMessage":`Die Anfrage wurde gemergt. Remote-Branch {branch} löschen?`,"git.deleteRemoteBranchSuccess":`Remote-Branch {branch} gelöscht`,"git.deleteRemoteBranchFailed":`Remote-Branch konnte nicht gelöscht werden`,"git.changeSourceBranch":`Quellbranch ändern`,"git.changeSourceBranchTitle":`Quellbranch ändern`,"git.changeSourceBranchMessage":`Wähle den neuen Quellbranch. Der Arbeitsbranch wird darauf neu aufgebaut.`,"git.changeSourceBranchDone":`Quellbranch auf {branch} geändert`,"git.changeSourceBranchAligned":`Quellbranch auf {branch} geändert (Branch hatte keine eigenen Commits)`,"git.changeSourceBranchTooMany":`Der Branch hat zu viele eigene Commits ({n}) — bitte manuell rebasen`,"git.changeSourceBranchDirty":`Committe oder stashe deine Änderungen, bevor du den Quellbranch änderst`,"git.changeSourceBranchAgentRunning":`Stoppe den Agenten, bevor du den Quellbranch änderst`,"git.changeSourceBranchErrorTitle":`Quellbranch-Wechsel fehlgeschlagen`,"git.changeSourceBranchErrorOngoing":`Eine {op}-Operation läuft noch im Worktree. Brich sie ab, um zu einem sauberen Zustand zurückzukehren.`,"git.changeSourceBranchErrorAbort":`Operation abbrechen`,"git.changeSourceBranchLoading":`Quellbranch wird geändert…`,"git.changeSourceForcePushTitle":`Neu geschriebenen Branch force-pushen?`,"git.changeSourceForcePushMessage":`Die Branch-Historie wurde neu geschrieben. Mit --force-with-lease zum Remote pushen?`,"git.changeSourceForcePushDone":`Branch force-gepusht`,"git.openEditor":`Im Editor öffnen`,"git.openEditorFailed":`Editor konnte nicht geöffnet werden`,"git.branchPushed":`Branch gepusht`,"git.pushFirst":`Der Branch ist nicht auf dem Remote. Klicken Sie zuerst auf Push.`,"git.unpushedCommits":`Lokale Commits sind nicht gepusht. Klicken Sie zuerst auf Push.`,"git.from":`von`,"git.aheadBehindTooltip":`{ahead} commits voraus, {behind} hinterher gegenüber {source}`,"git.divergence.title":`Branch-Divergenz`,"git.divergence.subtitle":`vs {source}`,"git.divergence.ahead":`↑ {count} voraus`,"git.divergence.behind":`↓ {count} hinterher`,"git.divergence.empty.ahead":`Keine Commits voraus.`,"git.divergence.empty.behind":`Keine Commits hinterher.`,"git.divergence.close":`Schließen`,"git.divergence.loading":`Commits werden geladen…`,"git.divergence.failed":`Divergenz konnte nicht geladen werden`,"git.divergence.retry":`Erneut versuchen`,"git.prCreated":`{request} #{n} erstellt`,"git.pr.author":`Autor`,"git.pr.reviewers":`Reviewer`,"git.pr.assignees":`Zugewiesen`,"git.pr.labels":`Labels`,"git.pr.changesRequestedBadge":`Änderungen angefordert`,"git.pr.approvedBadge":`Genehmigt`,"git.pr.ci.passed":`CI erfolgreich`,"git.pr.ci.failed":`CI fehlgeschlagen`,"git.pr.ci.pending":`CI läuft`,"git.pr.ci.failedCount":`{n} fehlgeschlagen`,"git.pr.ci.pendingCount":`{n} laufend`,"git.pr.ci.passedCount":`{n} erfolgreich`,"git.pr.ci.skippedCount":`{n} übersprungen`,"git.pr.ci.showPassed":`{n} erfolgreiche Jobs anzeigen`,"git.pr.ci.hidePassed":`Erfolgreiche Jobs ausblenden`,"toast.prChangesRequested":`Für PR #{n} wurden Änderungen angefordert`,"toast.prApproved":`PR #{n} wurde genehmigt`,"toast.prReadyToMerge":`PR #{n} ist bereit zum Mergen`,"toast.prCiFailed":`CI für PR #{n} ist fehlgeschlagen`,"toast.prCiRecovered":`CI für PR #{n} ist wieder erfolgreich`,"toast.prMergeConflict":`PR #{n} hat Merge-Konflikte`,"toast.prMerged":`PR #{n} wurde gemergt`,"devServer.title":`Dev-Server`,"devServer.noWorkspace":`Kein Arbeitsbereich ausgewählt`,"devServer.notConfigured":`Nicht konfiguriert —`,"devServer.goToSettings":`Einstellungen`,"devServer.logs":`Logs`,"devServer.running":`Läuft`,"devServer.starting":`Startet`,"devServer.stopping":`Wird gestoppt`,"devServer.error":`Fehler`,"devServer.stopped":`Gestoppt`,"devServer.unknown":`Unbekannt`,"devServer.containers":`{count} Container | {count} Container`,"devServer.logDialog.title":`Dev-Server-Logs`,"devServer.logDialog.empty":`Keine Logs verfügbar`,"notion.title":`Notion`,"tasks.title":`Aufgaben`,"notion.addTask":`Aufgabe hinzufügen`,"notion.noUrl":`Keine Notion-URL`,"notion.subtasks":`{done}/{total} Unteraufgaben`,"notion.noTasks":`Keine Aufgaben`,"notion.newTask":`Neue Aufgabe... (Enter zum Hinzufügen, Esc zum Abbrechen)`,"acceptance.title":`Akzeptanzkriterien`,"acceptance.addCriterion":`Kriterium hinzufügen`,"acceptance.newCriterion":`Neues Kriterium... (Enter zum Hinzufügen, Esc zum Abbrechen)`,"acceptance.empty":`Keine Akzeptanzkriterien`,"tasks.askProgress":`Agent auffordern, Fortschritt zu prüfen`,"agentTodos.title":`Agent-Todos`,"agentTodos.empty":`Keine Agent-Todos`,"subagents.title":`Sub-Agents`,"subagents.empty":`Noch keine Sub-Agent-Aktivität`,"subagents.tools":`{count} Tools`,"subagents.running":`Aktiv: `,"stats.resetsAt":`Reset {value}`,"stats.usageBucket":`Nutzungs-Bucket {n}`,"quotaFooter.lastUpdated":`Letzte Aktualisierung: {time}`,"quotaFooter.empty":`Lädt…`,"quotaFooter.popover.title":`Claude Code-Nutzung`,"quotaFooter.popover.refreshNow":`Aktualisieren`,"quotaFooter.popover.resetsIn":`Setzt sich zurück um {value}`,"quotaFooter.popover.unauthenticated":`Auth erforderlich`,"quotaFooter.popover.unauthenticatedHint":`Führe "claude" einmal aus, um dich zu authentifizieren.`,"quotaFooter.popover.error":`Fehler`,"quotaFooter.bucket.fiveHour":`5-Stunden`,"quotaFooter.bucket.sevenDay":`7 Tage`,"agent.error.spawn_failed":`Agent konnte nicht gestartet werden`,"agent.error.parse_error":`Eine Agent-Nachricht konnte nicht verarbeitet werden`,"agent.error.rate_limit":`Ratenlimit erreicht`,"agent.error.resume_failed":`Sitzung nicht gefunden — neue Sitzung wird gestartet`,"agent.error.other":`Agent-Fehler`,"quotaBackoff.banner.title":`Auto-Wiederaufnahme um {time}`,"quotaBackoff.banner.transientTitle":`Auto-Wiederaufnahme nach Unterbrechung um {time}`,"quotaBackoff.resumeNow":`Jetzt fortsetzen`,"quotaBackoff.banner.tooltip":`Claude-Kontingent erschöpft. Der Auto-Loop wird automatisch fortgesetzt, sobald sich das Kontingent bei {resets_at} zurücksetzt.`,"quotaBackoff.banner.cancel":`Wiederaufnahme abbrechen`,"quotaBackoff.cancelled":`Auto-Wiederaufnahme abgebrochen — du kannst jederzeit manuell fortfahren`,"rateLimitType.fiveHour":`5h-Sitzung`,"rateLimitType.sevenDay":`Wöchentlich`,"tooltip.addTask":`Aufgabe hinzufügen`,"tooltip.removeTask":`Aufgabe entfernen`,"tooltip.addCriterion":`Kriterium hinzufügen`,"tooltip.removeCriterion":`Kriterium entfernen`,"tooltip.startDevServer":`Dev-Server starten`,"tooltip.stopDevServer":`Dev-Server stoppen`,"tooltip.closeDiffViewer":`Diff schließen`,"tooltip.refreshLogs":`Logs aktualisieren`,"tooltip.closeDialog":`Schließen`,"tooltip.refreshGitStats":`Git-Statistiken aktualisieren`,"tooltip.removeImage":`Bild entfernen`,"tooltip.sendMessage":`Nachricht senden`,"tools.title":`Werkzeuge`,"tools.runSetupScript":`Setup-Skript erneut ausführen`,"tools.runSetupScriptTooltip":`Das Setup-Skript des Projekts im Worktree ausführen`,"tools.runSetupScriptConfirm":`Setup-Skript in diesem Workspace erneut ausführen? Vorhandene Artefakte können überschrieben werden.`,"tools.runSetupScriptBusy":`Setup kann nicht erneut ausgeführt werden, während der Agent arbeitet.`,"tools.noSetupScript":`Kein Setup-Skript konfiguriert —`,"tools.setupScriptSuccess":`Setup-Skript erfolgreich abgeschlossen.`,"tools.setupScriptFailed":`Setup-Skript fehlgeschlagen.`,"tools.openNotion":`In Notion öffnen`,"tools.openSentry":`In Sentry öffnen`,"tools.review":`Änderungen prüfen`,"tools.reviewTooltip":`Den Agenten bitten, die Änderungen auf diesem Branch zu prüfen`,"tools.reviewBusy":`Agent ist beschäftigt — warte, bis er inaktiv ist`,"tools.fixCi":`CI reparieren`,"tools.fixCiTooltip":`Den Agenten bitten, die fehlschlagenden CI-Jobs zu diagnostizieren und zu beheben`,"tools.fixCiLaunched":`CI-Fix-Aktion an den Agenten gesendet`,"tools.fixCiFailed":`CI-Fix-Aktion konnte nicht gestartet werden`,"tools.openFileManager":`Im Dateimanager öffnen`,"tools.openFileManagerTooltip":`Worktree-Ordner im konfigurierten Dateimanager öffnen`,"tools.openFileManagerFailed":`Dateimanager konnte nicht geöffnet werden`,"tools.openTerminal":`Im Terminal öffnen`,"tools.openTerminalTooltip":`Den Worktree im konfigurierten Terminal öffnen`,"tools.openTerminalFailed":`Terminal konnte nicht geöffnet werden`,"review.title":`Review starten`,"review.subtitle":`Bitte den Agenten, deine Änderungen zu prüfen und Feedback zu geben.`,"review.additionalInstructions":`Zusätzliche Anweisungen (optional)`,"review.additionalInstructionsPlaceholder":`Spezifische Hinweise für die Review hinzufügen…`,"review.newSession":`Neue Sitzung`,"review.newSessionHint":`Eine neue Agenten-Sitzung starten statt die aktuelle fortzusetzen.`,"review.newSessionRequired":`Andere Agenteneinstellungen oder eine automatische Rückkehr erfordern eine neue Sitzung.`,"review.returnToSession":`Nach dem Review zur aktuellen Sitzung zurückkehren`,"review.returnToSessionHint":`Setzt diese Sitzung mit der abschließenden Zusammenfassung des Reviewers fort. Andernfalls geht die Unterhaltung in der Review-Sitzung weiter.`,"review.returnUnavailable":`Die aktuelle Sitzung muss gestartet worden sein, bevor sie fortgesetzt werden kann.`,"review.start":`Review starten`,"review.cancel":`Abbrechen`,"review.launched":`Review gestartet`,"review.failed":`Review konnte nicht gestartet werden`,"diff.title":`Diff`,"diff.side":`Nebeneinander`,"diff.inline":`Inline`,"diff.hideUnchanged":`Unveränderten Code ausblenden`,"diff.showUnchanged":`Unveränderten Code anzeigen`,"diff.showUntracked":`Nicht versionierte Dateien anzeigen`,"diff.hideUntracked":`Nicht versionierte Dateien ausblenden`,"diff.rollbackToRemote":`Auf Remote-Version zurücksetzen`,"diff.rollbackConfirm":`{path} auf die Remote-Version (origin) zurücksetzen? Lokale Änderungen an dieser Datei gehen verloren.`,"diff.rollbackConfirmOk":`Zurücksetzen`,"diff.rollbackDone":`Datei auf Remote-Version zurückgesetzt`,"diff.rollbackDoneRemote":`Datei auf Remote-Version zurückgesetzt`,"diff.rollbackDoneHead":`Lokale Änderungen verworfen (Datei auf letzten Commit zurückgesetzt)`,"diff.rollbackDoneDeleted":`Nicht versionierte Datei gelöscht`,"diff.deleteUntracked":`Nicht versionierte Datei löschen`,"diff.deleteUntrackedConfirm":`{path} dauerhaft löschen? Diese Datei wird nicht von Git verfolgt — ihr Inhalt geht verloren.`,"diff.deleteUntrackedConfirmOk":`Löschen`,"diff.rollbackFailed":`Rollback fehlgeschlagen`,"diff.rollbackFailedDetail":`Rollback fehlgeschlagen: {error}`,"diff.modeInspect":`Bearbeiten`,"diff.modeReview":`Review`,"diff.addComment":`Kommentar hinzufügen`,"diff.replyComment":`Antworten`,"diff.editComment":`Bearbeiten`,"diff.deleteComment":`Löschen`,"diff.deleteCommentConfirm":`Diesen Kommentar löschen?`,"diff.commentPlaceholder":`Review-Kommentar schreiben… (Markdown unterstützt)`,"diff.reviewDraft":`Review-Entwurf`,"diff.reviewEmpty":`Noch keine Kommentare — fahre mit der Maus über eine Zeile im Diff und klicke +, um einen hinzuzufügen.`,"diff.reviewGlobalPlaceholder":`Optionale Gesamtnachricht zur Review`,"diff.submitReview":`Review absenden ({n})`,"diff.reviewPending":`Eine Überprüfung wird bereits gesendet.`,"diff.reviewEmptySubmission":`Die Überprüfung ist leer.`,"diff.reviewNotAccepted":`Die Nachricht wurde nicht angenommen. Ihre Überprüfung bleibt erhalten.`,"diff.reviewSubmitted":`Review an den Agenten gesendet`,"diff.reviewSubmitFailed":`Review konnte nicht gesendet werden: {error}`,"diff.scopeBranch":`Branch`,"diff.scopeUnpushed":`Ungepusht`,"diff.noChanges":`Keine Änderungen`,"diff.searchFiles":`Dateien suchen…`,"diff.noFileMatch":`Keine passende Datei`,"diff.selectFile":`Datei auswählen, um den Diff anzuzeigen`,"diff.fileLoadFailed":`Dieser Diff konnte nicht geladen werden`,"diff.fileLoadFailedHint":`Die Datei auf der Festplatte ist unverändert — nur der Diff konnte nicht geladen werden.`,"diff.fileListLoadFailed":`Die Dateiliste konnte nicht geladen werden`,"diff.fileListLoadFailedHint":`Das ist eine fehlgeschlagene Anfrage, kein Branch ohne Änderungen.`,"diff.addToChat":`Zum Chat hinzufügen`,"diff.compareTitle":`Commits vergleichen`,"diff.compareFrom":`Von`,"diff.compareTo":`Bis`,"diff.compareSubmit":`Vergleichen`,"diff.compareSourceBase":`{branch} (Branch-Basis)`,"diff.commitsReadOnly":`schreibgeschützt`,"diffViewer.save":`Speichern`,"diffViewer.savedAt":`Gespeichert`,"diffViewer.saveFailed":`Speichern fehlgeschlagen`,"diffViewer.saveFailedDetail":`Speichern fehlgeschlagen: {error}`,"diffViewer.unsavedChanges.title":`Nicht gespeicherte Änderungen`,"diffViewer.unsavedChanges.message":`Du hast nicht gespeicherte Änderungen. Was möchtest du tun?`,"diffViewer.unsavedChanges.save":`Speichern`,"diffViewer.unsavedChanges.cancel":`Abbrechen`,"diffViewer.conflict.title":`Datei wurde extern geändert`,"diffViewer.conflict.message":`Die Datei wurde außerhalb von Kōbō geändert, seit du sie geöffnet hast.`,"diffViewer.conflict.reload":`Neu laden (lokale Änderungen verwerfen)`,"diffViewer.conflict.keep":`Eigene behalten`,"diffViewer.conflict.overwrite":`Trotzdem überschreiben`,"diffViewer.conflict.overwriteHint":`Ersetzt die Datei auf der Festplatte durch deine Version. Die andere Änderung geht verloren.`,"diffViewer.conflict.keepHint":`Behält deine Änderungen im Editor und übernimmt die neue Signatur der Datei, damit das nächste Speichern funktioniert.`,"diffViewer.saveBlocked":`Der Agent läuft — stoppe ihn, um deine Änderungen zu speichern.`,"diffViewer.unsavedBanner":`Ungespeicherte Änderungen. Stoppe den Agenten, um sie zu sichern.`,"diffViewer.closeConfirm.title":`Ungespeicherte Änderungen`,"diffViewer.closeConfirm.message":`Diese Datei enthält nie gespeicherte Änderungen. Beim Schließen des Diff-Viewers gehen sie verloren.`,"diffViewer.closeConfirm.discard":`Ohne Speichern schließen`,"diffViewer.criteriaRail":`Review-Checkliste`,"diffViewer.criteriaRailShow":`Review-Checkliste einblenden`,"diffViewer.criteriaRailHide":`Review-Checkliste ausblenden`,"diffViewer.fileTreeShow":`Dateibaum einblenden`,"diffViewer.fileTreeHide":`Dateibaum ausblenden`,"diffViewer.closeConfirm.saveAndClose":`Speichern und schließen`,"diffViewer.agentRunning":`Agent läuft — stoppe ihn zum Bearbeiten`,"diffViewer.fileDeleted":`Datei gelöscht`,"notification.agentFinished":`{name} — Agent fertig`,"notification.agentQuestion":`{name} — Agent stellt eine Frage`,"notification.awaitingReminder":`{name} - wartet weiterhin auf Sie ({minutes} Min.)`,"notification.agentPermissionRequest":`{name} — Agent fragt nach einer Berechtigung`,"notification.autoLoopCompleted":`{name} — Auto-Loop abgeschlossen`,"notification.autoLoopWaitingForSlot":`{name} - Auto-Loop wartet auf einen freien Agenten-Slot ({running}/{limit} aktiv)`,"notification.autoLoopStalled":`{name} — Auto-Loop blockiert (kein Fortschritt)`,"notification.autoLoopError":`{name} — Auto-Loop wegen Fehler gestoppt`,"notification.autoLoopAwaitingClarification":`{name} — Auto-Loop pausiert, wartet auf Ihre Klärung`,"notification.autoLoopPermissionOverridden":`{name} — Auto-Loop hat plan-Modus auf bypass erzwungen`,"notification.agentError":`{name} — Agent-Fehler`,"contextMenu.rename":`Umbenennen`,"contextMenu.editDescription":`Beschreibung bearbeiten`,"contextMenu.copyPath":`Worktree-Pfad kopieren`,"contextMenu.openEditor":`Im Editor öffnen`,"contextMenu.openFileManager":`Im Dateimanager öffnen`,"contextMenu.unarchiveDisabledPurged":`Stellen Sie zuerst den Worktree über Worktree wiederherstellen oder manuell wieder her. Kōbō erkennt passende Worktrees automatisch.`,"workspaceList.unarchiveBlockedPurged":`Stellen Sie zuerst den Worktree über Worktree wiederherstellen oder manuell wieder her. Kōbō erkennt passende Worktrees automatisch.`,"contextMenu.purgeWorktree":`Speicherplatz freigeben (Worktree löschen)`,"contextMenu.purgeWorktreeTooltip":`Löscht den Worktree von der Festplatte zur Speicherplatz-Rückgewinnung — Chat- und Sitzungsverlauf bleiben erhalten. Archiviert den Workspace automatisch.`,"contextMenu.purgeWorktreeDialogTitle":`Speicherplatz freigeben?`,"contextMenu.purgeWorktreeDialogMessage":`Der Worktree-Ordner von „{name}" wird von der Festplatte gelöscht. Chat- und Sitzungsverlauf bleiben erhalten. Der Workspace wird automatisch archiviert. In der aktuellen Version nicht rückgängig zu machen.`,"contextMenu.purgeWorktreeDialogConfirm":`Worktree löschen`,"contextMenu.purgeWorktreeSuccess":`Worktree gelöscht — Speicherplatz zurückgewonnen.`,"settings.autoPurgeOnPrMerged":`Worktree automatisch löschen, wenn PR gemerged`,"settings.autoPurgeOnPrMergedHint":`Wenn aktiviert, wird der Worktree von der Festplatte gelöscht, sobald die PR gemerged wird (zusätzlich zur automatischen Archivierung). Chat-Verlauf bleibt erhalten.`,"settings.autoLoopMaxRetries":`Maximale automatische Wiederholungen`,"settings.awaitingUserReminder":`Erinnerung an unbeantwortete Frage`,"settings.awaitingUserReminderHint":`Minuten, die ein Workspace auf Ihre Antwort warten darf, bevor Kōbō Sie erinnert, danach in jedem weiteren Intervall. 0 deaktiviert.`,"settings.localeLoadFailed":`Diese Sprache konnte nicht geladen werden; die aktuelle bleibt aktiv.`,"settings.autoLoopMaxRetriesHint":`Pausiert den Auftrag nach dieser Anzahl vorübergehender Engine- oder Serverfehler. Kontingente warten auf ihre Zurücksetzung und zählen nicht zu diesem Limit.`,"settings.retentionTitle":`Aufbewahrung des Konversationsverlaufs (standardmäßig aus)`,"settings.retentionWarning":`Wird diese Option aktiviert, löscht sie den Konversationsverlauf der Agenten endgültig aus der Datenbank — zuerst alles, was bereits älter als das Zeitfenster ist. Gelöschte Ereignisse lassen sich nicht wiederherstellen.`,"settings.retentionHint":`Läuft einmal beim Start des Servers. Workspaces, Aufgaben, Sessions, Branches und Worktrees bleiben unberührt — betroffen ist nur die aufgezeichnete Agentenausgabe.`,"settings.retentionDaysLabel":`Ereignisse löschen, die älter sind als (Tage)`,"settings.retentionDaysHint":`0 — der Standard — behält alle Ereignisse dauerhaft. Tragen Sie einen Wert ein, um die Aufbewahrung zu aktivieren.`,"settings.retentionKeepLabel":`Immer behaltene Ereignisse pro Workspace`,"settings.retentionKeepHint":`Die neuesten Ereignisse jedes Workspace bleiben unabhängig von ihrem Alter erhalten, damit ein alter, aber noch offener Workspace einen lesbaren Verlauf behält. Empfohlen: 5000.`,"settings.retentionDisabledHint":`Aufbewahrung deaktiviert: Es wird nie etwas gelöscht.`,"settings.retentionConfirmTitle":`Konversationsverlauf endgültig löschen?`,"settings.retentionConfirmMessage":`Nur {days} Tag(e) Verlauf zu behalten löscht beim nächsten Serverstart endgültig {count} der {total} aufgezeichneten Agentenereignisse — einschließlich allem, was bereits älter ist. Das lässt sich nicht rückgängig machen. Fortfahren?`,"settings.retentionConfirmMessageUnknown":`Nur {days} Tag(e) Verlauf zu behalten löscht beim nächsten Serverstart endgültig alle älteren Agentenereignisse — einschließlich allem, was bereits angesammelt wurde. Die genaue Menge konnte nicht ermittelt werden. Das lässt sich nicht rückgängig machen. Fortfahren?`,"settings.purgeDocsTitle":`Wie Purge funktioniert — Wiederherstellung & Berechtigungen`,"settings.purgeDocsRestoreTitle":`Einen bereinigten Worktree wiederherstellen (automatisch erkannt)`,"settings.purgeDocsRestoreIntro":`Ein bereinigter Workspace behält seinen Chat-Verlauf und die PR-Metadaten, aber der Worktree-Ordner ist weg. Baue ihn manuell mit einem dieser Befehle wieder auf — Kōbō erkennt das Wiedererscheinen des Ordners innerhalb von 30 Sekunden und reaktiviert den Workspace automatisch (entarchivieren + Purge-Flag löschen):`,"settings.purgeDocsRestoreCommands":`# GitHub (mit gh CLI):
12
- gh pr checkout [pr-nummer] --recurse-submodules
13
-
14
- # Oder direkt über git (funktioniert auf GitHub auch nach Löschen des Branches):
15
- git fetch origin pull/[pr-nummer]/head:[branch-name]
16
- git worktree add [pfad] [branch-name]`,"settings.purgeDocsRestoreFootnote":`GitHub hält den PR-Head-Ref lange nach dem Löschen des Quellbranches zugänglich (Monate / Jahre). Die automatische Erkennung läuft im 30-Sekunden-Watcher — keine UI-Aktion nötig, sobald der Ordner wieder da ist.`,"settings.purgeDocsPermissionsTitle":`Berechtigungsfehler während der Bereinigung vermeiden`,"settings.purgeDocsPermissionsIntro":`Docker hinterlässt oft root-eigene Dateien in node_modules / vendor innerhalb des Worktrees. Wenn Kōbō versucht, sie zu entfernen, erhältst du EACCES / EPERM und die Bereinigung schlägt fehl. Zwei Vorbeugemöglichkeiten:`,"settings.purgeDocsPermissionsDocker":'Konfiguriere deinen Container so, dass er als dein Host-Benutzer läuft — USER-Direktive im Dockerfile oder `user: "${UID}:${GID}"` in docker-compose (mit UID/GID in deiner Shell exportiert).',"settings.purgeDocsPermissionsAcl":`Bereite das Worktrees-Root mit einer Standard-ACL vor — Sicherheitsnetz, das in den MEISTEN Fällen funktioniert (ext4/btrfs/xfs + Standard-Docker-Bind-Mount). Jede neue Datei erbt dann einen Zugriffseintrag für deinen Benutzer, zusätzlich zum nominalen Besitzer:`,"settings.purgeDocsPermissionsAclCommand":` setfacl -d -m u:$(whoami):rwX [worktrees-root]`,"settings.purgeDocsPermissionsFootnote":"ACL-Einschränkungen: funktionieren NICHT bei benannten Docker-Volumes (nutze einen Bind-Mount), Dateisystemen ohne ACL-Unterstützung (NTFS, exFAT, tmpfs), striktem SELinux mit `:Z` oder wenn Docker `userns-remap` aktiv ist. Die zuverlässigste Lösung bleibt die Konfiguration des Benutzers im Container (Option 1). Tipp: `rwX` (großes X) fügt das Ausführungsbit nur bei Verzeichnissen und bereits ausführbaren Dateien hinzu — sauberer als `rwx`, das jede Textdatei ausführbar machen würde.","settings.purgeDocsPermissionsRecoverTitle":`Einen bereits blockierten Worktree entsperren (bestehende root-eigene Dateien)`,"settings.purgeDocsPermissionsRecoverIntro":`Wenn ein Worktree bereits voll mit root-eigenen Dateien ist (Docker hat schon gelaufen, vendor / node_modules sind blockiert), reicht die präventive ACL oben nicht — du musst die BESTEHENDEN Dateien behandeln. Zwei Ansätze, beide aus dem Worktree-Ordner heraus auszuführen:`,"settings.purgeDocsPermissionsRecoverAclIntro":`Option A — Rekursive ACL (behält root-Ownership für Audit, fügt nur Zugriff für deinen Benutzer parallel hinzu):`,"settings.purgeDocsPermissionsRecoverAclCommand":`# setze Default-ACL für zukünftige Dateien UND gewähre Zugriff auf alles Bestehende
17
- sudo setfacl -Rd -m u:$(whoami):rwX . && sudo setfacl -R -m u:$(whoami):rwX .`,"settings.purgeDocsPermissionsRecoverChownIntro":`Option B — Ownership übernehmen (einfacher, verliert die Spur "von root im Container erstellt", spielt in der Praxis selten eine Rolle):`,"settings.purgeDocsPermissionsRecoverChownCommand":` sudo chown -R $(whoami):$(whoami) .`,"settings.purgeDocsPermissionsRecoverFootnote":"Tipp: Du kannst diese Befehle direkt auf das Worktrees-Root anwenden (z. B. `~/.worktrees/`), um alle bestehenden UND zukünftigen Workspaces auf einmal abzudecken. Danach funktioniert die Kōbō-Bereinigung ohne Berechtigungsfehler.","contextMenu.runSetup":`Setup-Skript ausführen`,"contextMenu.exportEvents":`Events exportieren (CSV)`,"contextMenu.dismissChangesRequested":`Änderungen angefragt als gesehen markieren`,"contextMenu.dismissCiFailure":`CI-Fehler als gesehen markieren`,"contextMenu.restoreChangesRequested":`Änderungen angefragt als ungesehen markieren`,"contextMenu.restoreCiFailure":`CI-Fehler als ungesehen markieren`,"contextMenu.exportingEvents":`Export wird vorbereitet…`,"contextMenu.exportEventsError":`Event-Export fehlgeschlagen`,"contextMenu.openNotion":`In Notion öffnen`,"contextMenu.openSentry":`In Sentry öffnen`,"contextMenu.openPr":`PR öffnen`,"contextMenu.ignorePrWatch":`PR-Prüfungen ignorieren`,"contextMenu.resumePrWatch":`PR-Prüfungen fortsetzen`,"contextMenu.prWatchToggleFailed":`Aktualisierung der PR-Prüfungen fehlgeschlagen`,"workspace.favorite":`Als Favorit markieren`,"workspace.unfavorite":`Aus Favoriten entfernen`,"workspace.showFavoritesOnly":`Nur Favoriten anzeigen`,"workspace.searchArchivedToggle":`Auch in archivierten Workspaces suchen`,"workspace.descriptionPlaceholder":`Kurze Beschreibung hinzufügen`,"workspace.descriptionDialogHint":`Klartext, max. 200 Zeichen. Leer lassen, um zu löschen.`,"workspace.descriptionTooLong":`Die Beschreibung darf höchstens 200 Zeichen lang sein.`,"workspace.descriptionSaveFailed":`Beschreibung konnte nicht gespeichert werden.`,"workspace.agentDescriptionTooltip":`Live-Status, gepflegt vom Agent`,"mcp.tool.setWorkspaceDescription":`Setzt die Kurzbeschreibung des Workspace (≤ 200 Zeichen).`,"tags.manage":`Tags verwalten`,"tags.manageTitle":`Workspace-Tags verwalten`,"tags.noTagsDefined":`Keine Tags definiert. Füge welche in Einstellungen > Global > Tags hinzu.`,"tags.orphanedHint":`{count} Tag(s) sind nicht mehr im globalen Katalog. Abwählen zum Entfernen.`,"settings.tagsTitle":`Workspace-Tags`,"settings.tagsHint":`Definiere die Tags, die Workspaces zugewiesen werden können. Tippe zum Hinzufügen, klicke auf das Kreuz zum Entfernen.`,"settings.tagsLabel":`Verfügbare Tags`,"settings.branchPrefixesTitle":`Branch-Präfixe`,"settings.branchPrefixesHint":`Verwalten Sie die Git-Branch-Präfixe, die auf der Workspace-Erstellungsseite verfügbar sind. Das erste ist standardmäßig vorausgewählt.`,"settings.branchPrefixesEmpty":`Kein Branch-Präfix definiert. Fügen Sie unten mindestens eines hinzu.`,"settings.branchPrefixesAddLabel":`Neues Präfix`,"settings.branchPrefixesEditHint":`Zum Umbenennen klicken`,"settings.branchPrefixesMoveUp":`Nach oben`,"settings.branchPrefixesMoveDown":`Nach unten`,"settings.worktreesTitle":`Git-Worktrees`,"settings.worktreesHint":`Wähle aus, wo neue Workspace-Worktrees erstellt werden. Relative Pfade sind projektrelativ; absolute Linux/macOS- und Windows-Pfade, $HOME, ~ und %USERPROFILE% werden unterstützt.`,"settings.worktreesPathLabel":`Worktrees-Pfad`,"settings.worktreesPathRequired":`Worktrees-Pfad ist erforderlich.`,"settings.worktreesPrefixByProject":`Worktrees nach Projektname präfixen`,"settings.worktreesPrefixByProjectHint":`Legt jeden Worktree in einem nach dem Projekt benannten Unterordner ab, um Kollisionen zu vermeiden, wenn mehrere Projekte die gleiche Worktree-Wurzel teilen.`,"settings.shareTitle":`Konfiguration teilen`,"settings.shareHint":`Exportiere Einstellungen, Templates und Tags als JSON-Bundle. MCP-Keys werden aus Sicherheitsgründen nicht exportiert.`,"settings.exportConfig":`Exportieren`,"settings.importConfig":`Importieren`,"settings.exportSuccess":`Konfiguration exportiert`,"settings.importSuccess":`Konfiguration importiert`,"settings.importConfirmTitle":`Konfiguration importieren`,"settings.importConfirmMessage":`Dies ersetzt deine aktuellen Einstellungen, Templates und Tags. MCP-Keys bleiben erhalten. Fortfahren?`,"settings.mcp.title":`Externe LLM-Verbindungen (MCP)`,"settings.mcp.hint":`Verbinden Sie einen MCP-Client, um Workspace-Gespräche zu lesen, Nachrichten zu senden und Fragen zu beantworten.`,"settings.mcp.remoteDisabled":`Remote-Verbindungen benötigen Netzwerkzugriff und einen Serverneustart nach der Aktivierung.`,"settings.mcp.clientName":`Clientname (optional)`,"settings.mcp.connection":`Verbindung`,"settings.mcp.local":`Lokales HTTP`,"settings.mcp.remote":`Remote-HTTP`,"settings.mcp.proxy":`Reverse-Proxy`,"settings.mcp.stdio":`Lokales stdio`,"settings.mcp.copyUrl":`URL kopieren`,"settings.mcp.copyConfig":`Konfiguration kopieren`,"settings.mcp.copyWithToken":`Mit Token kopieren`,"settings.mcp.genericFormat":`Diese Beispiele verwenden das allgemeine mcpServers-Format. Passen Sie den Container an Ihren MCP-Client an. Die Vorschau enthält Token-Platzhalter.`,"settings.mcp.tokenUnavailable":`Kein Token verfügbar. Aktivieren Sie den Netzwerkzugriff, bevor Sie eine authentifizierte Konfiguration kopieren.`,"settings.mcp.stdioUnavailable":`Der stdio-Einstiegspunkt ist in dieser Installation nicht verfügbar. Verwenden Sie HTTP oder bauen Sie zuerst Kōbō.`,"settings.mcp.copyFailed":`Kopieren in die Zwischenablage fehlgeschlagen.`,"tours.settings.mcp.title":`Ein externes LLM verbinden`,"tours.settings.mcp.description":`Kopieren Sie eine HTTP- oder stdio-Konfiguration, damit ein externer Assistent mit Ihren Workspaces kommunizieren kann.`,"settings.network.title":`Netzwerkzugriff`,"settings.network.hint":`Steuere Kōbō von einem anderen Gerät in deinem vertrauenswürdigen LAN. Aus = nur localhost. An = im Netzwerk erreichbar, per Token geschützt. Starte Kōbō nach dem Umschalten neu.`,"settings.network.enable":`Netzwerkzugriff aktivieren`,"settings.network.behindProxy":`Hinter einem Reverse Proxy`,"settings.network.behindProxyHint":`Kōbō kann deinen eigenen Rechner nicht mehr von einer weitergeleiteten Anfrage unterscheiden — selbst localhost benötigt ab jetzt das Token. Aktiviere dies nur, wenn ein Reverse Proxy (Traefik, nginx, Caddy…) vor Kōbō steht.`,"settings.network.restartRequired":`Starte Kōbō neu, um die neue Bind-Adresse anzuwenden.`,"settings.network.token":`Zugriffstoken`,"settings.network.copy":`Kopieren`,"settings.network.copied":`Kopiert`,"settings.network.regenerate":`Neu generieren`,"settings.network.regenerateConfirm":`Token neu generieren? Verbundene Geräte benötigen das neue Token.`,"settings.network.urls":`LAN-URLs`,"settings.network.scan":`Zum Verbinden scannen`,"settings.network.noUrls":`Keine LAN-Adresse erkannt.`,"settings.network.loadFailed":`Netzwerkzugriff-Einstellungen konnten nicht geladen werden.`,"settings.network.updateFailed":`Netzwerkzugriff-Einstellungen konnten nicht aktualisiert werden.`,"settings.unsavedChanges.title":`Nicht gespeicherte Änderungen`,"settings.unsavedChanges.message":`Dieses Projekt hat nicht gespeicherte Änderungen. Ein Projektwechsel verwirft sie.`,"settings.unsavedChanges.discard":`Verwerfen und wechseln`,"settings.unsavedChanges.cancel":`Abbrechen`,"settings.loadFailed":`Einstellungen konnten nicht geladen werden`,"settings.loadFailedHint":`Speichern ist deaktiviert: das Formular zeigt Standardwerte, und sie zu schreiben würde deine echte Konfiguration überschreiben.`,"health.title":`Status`,"health.tooltip":`Systemstatus`,"changelog.title":`Änderungsprotokoll`,"changelog.tooltip":`Was ist neu in Kōbō`,"changelog.empty":`Kein Änderungsprotokoll verfügbar.`,"changelog.current":`aktuell`,"changelog.currentVersion":`Aktuelle Version: v{version}`,"health.envTitle":`Umgebung`,"health.version":`Version`,"health.koboHome":`Kōbō home`,"health.dbTitle":`Datenbank`,"health.dbPath":`Pfad`,"health.dbSize":`Größe`,"health.schemaVersion":`Schema-Version`,"health.settingsSchemaVersion":`Einstellungs-Schema`,"health.runtimesTitle":`Agent-Laufzeiten`,"health.claudeCliTitle":`Claude Code`,"health.claudeCliMissing":`claude nicht im PATH`,"health.codexCliTitle":`OpenAI Codex`,"health.codexCliMissing":`codex-Binärdatei nicht auflösbar`,"health.forgeCliTitle":`Forge-CLI (gh / glab)`,"health.forgeCliMissing":`Weder gh noch glab gefunden — Pull Requests und CI-Überwachung nicht verfügbar`,"health.workspacesTitle":`Workspaces`,"health.workspacesCount":`{total} gesamt, {archived} archiviert`,"health.worktreesMissing":`{count} Worktree(s) auf der Festplatte fehlen`,"health.sessionsTitle":`Agent-Sitzungen`,"health.sessionsOrphaned":`{n} verwaiste laufende Sitzung(en)`,"health.integrationsTitle":`Integrationen`,"health.integrationConfigured":`konfiguriert`,"health.integrationMissing":`nicht konfiguriert`,"health.integrationDisabled":`deaktiviert`,"settings.integrationEnabled":`Integration aktivieren`,"health.activeTitle":`Aktiver Zustand`,"health.activeQuotaBackoffs":`Ausstehende Quota-Backoffs`,"health.activeWakeups":`Geplante Aufweckungen`,"health.activeAutoLoop":`Auto-Loop läuft`,"health.activeAgentSessions":`Aktive Agent-Sessions`,"health.activeDevServers":`Laufende Dev-Server`,"health.noneActive":`Keine.`,"health.quotaResumeAt":`fortgesetzt um {time}`,"health.wakeupAt":`aufgeweckt um {time}`,"health.startedAgo":`gestartet vor {time}`,"health.autoLoopReady":`bereit, iteriert`,"health.autoLoopGrooming":`Grooming läuft`,"session.started":`Sitzung gestartet`,"session.ended":`Sitzung beendet`,"session.compacted":`Kontext komprimiert`,"session.endedCompleted":`Zug beendet — senden Sie eine Nachricht, um fortzufahren`,"session.endedKilled":`Sitzung gestoppt`,"session.endedError":`Sitzung mit einem Fehler beendet`,"session.endedWatchdog":`Sitzung nach einer Phase der Inaktivität zwangsweise geschlossen`,"tool.running":`Läuft...`,"activity.raw_lines":`Rohausgabezeilen ({n})`,"activity.loading_older":`Ältere Nachrichten werden geladen…`,"activity.compacting":`Kontext wird komprimiert…`,"activity.prev_user_message":`Vorherige Nachricht des Benutzers`,"activity.scroll_to_bottom":`Nach unten scrollen`,"activity.empty":`Noch nichts`,"activity.emptyHint":`Die Agentenausgabe erscheint hier, sobald eine Sitzung startet.`,"activity.a11y.region":`Ansagen zur Agentenaktivität`,"activity.a11y.agentSaid":`Agent: {text}`,"activity.a11y.toolStarted":`Werkzeug {name} gestartet`,"activity.a11y.toolFinished":`Werkzeug {name} beendet`,"activity.a11y.toolFailed":`Werkzeug {name} fehlgeschlagen`,"chat.systemPrompt":`System-Prompt`,"chat.agent":`Agent`,"chat.cleanupScript":`Cleanup-Skript`,"chat.archiveScript":`Archiv-Skript`,"chat.setupScript":`Setup-Skript`,"chat.hookScript":`Hook {event}`,"chat.scriptDone":`Fertig`,"chat.scriptComplete":`[{phase}] Abgeschlossen`,"chat.scriptError":`[{phase}] Fehler: {message}`,"chat.unknownError":`unbekannt`,"chat.you":`Du`,"chat.session":`Sitzung`,"chat.nActions":`{n} Aktion | {n} Aktionen`,"chat.lastUpdatedAt":`Zuletzt aktualisiert um {time}`,"chat.scrollToTurnTop":`Zum Nachrichtenanfang scrollen`,"migration.backing_up":`Datenbank wird gesichert…`,"migration.running":`Agent-Daten werden migriert — {processed}/{total}`,"migration.error":`Migration fehlgeschlagen`,"migration.backup_location":`Ein Backup wurde unter {path} gespeichert. Starte Kōbō neu, um erneut zu versuchen.`,"migration.retry":`Starte Kōbō neu, um erneut zu versuchen.`,"engine.select":`Engine`,"engine.model":`Modell`,"engine.effort":`Reasoning-Aufwand`,"wakeup.scheduledIn":`Nächste Weckung in {n}s`,"wakeup.scheduledAt":`Nächste Weckung um {time}`,"wakeup.firing":`Wecke auf...`,"wakeup.reason":`Grund: {reason}`,"wakeup.cancel":`Diese Weckung abbrechen`,"wakeup.pendingIndicator":`Weckung geplant`,"cron.pendingIndicator":`{n} Cron(s) geplant`,"schedule.tabLabel":`Zeitplan`,"schedule.admissionTitle":`Neue automatische Sitzung derzeit nicht verfügbar.`,"schedule.admissionHint":`Termine bleiben unverändert. Nachrichten in bestehenden Gesprächen folgen eigenen Regeln.`,"schedule.admission.not-found":`Arbeitsbereich nicht gefunden.`,"schedule.admission.archived":`Arbeitsbereich archiviert.`,"schedule.admission.purged":`Stellen Sie den Worktree wieder her.`,"schedule.admission.shutdown":`Server wird heruntergefahren.`,"schedule.admission.lifecycle":`Ein Arbeitsbereichsvorgang läuft.`,"schedule.admission.active-session":`Die aktuelle Sitzung ist noch nicht geschlossen.`,"schedule.admission.awaiting-user":`Eine Nutzerantwort ist erforderlich.`,"schedule.admission.compacting":`Kontext wird komprimiert.`,"schedule.admission.quota":`Warten auf Kontingentfreigabe.`,"schedule.admission.blocked":`Auto-Loop blockiert; beheben Sie die angezeigte Ursache.`,"schedule.admission.capacity":`Parallelitätslimit erreicht: {running}/{limit} Sitzungen.`,"schedule.panelTitle":`Automatisierung`,"schedule.panelDescription":`Diesen Workspace später wecken oder Anweisungen nach Zeitplan ausführen.`,"schedule.activeTitle":`Aktive Zeitpläne`,"schedule.emptyTitle":`Nichts geplant`,"schedule.emptyDescription":`Unten ein einmaliges Wakeup oder eine wiederkehrende Aufgabe erstellen.`,"schedule.cancelWakeup":`Dieses Wakeup abbrechen`,"schedule.cancelCron":`Diese wiederkehrende Aufgabe löschen`,"schedule.createTitle":`Zeitplan erstellen`,"schedule.createDescription":`Festlegen, wann und wie der Agent ausgeführt werden soll.`,"schedule.typeWakeup":`Einmaliges Wakeup`,"schedule.typeRecurring":`Wiederkehrende Aufgabe`,"schedule.wakeupDescription":`Den Prompt einmalig nach einer Verzögerung ausführen.`,"schedule.cronDescription":`Den Prompt regelmäßig nach einem festen Zeitplan ausführen.`,"schedule.promptHint":`Anweisungen, die an den Agenten gesendet werden`,"schedule.frequencyTitle":`Häufigkeit`,"schedule.advancedDescription":`Einen rohen Cron-Ausdruck verwenden`,"schedule.cronExpressionLabel":`Cron-Ausdruck`,"schedule.sessionModeTitle":`Ausführungssitzung`,"schedule.modeResume":`Sitzung fortsetzen`,"schedule.oneShotHint":`Diesen Zeitplan nach der ersten Ausführung entfernen.`,"schedule.wakeupTitle":`Wakeup ausstehend`,"schedule.cronsTitle":`Wiederkehrende Zeitpläne`,"schedule.noWakeup":`Kein Wakeup geplant`,"schedule.noCrons":`Kein Cron geplant`,"schedule.invalidCron":`Inaktiv: ungültiger Ausdruck. Diesen Zeitplan löschen und neu erstellen.`,"schedule.nextFireAt":`nächstes um {time}`,"schedule.lastFiredAt":`zuletzt vor {time}`,"schedule.addCronTitle":`Wiederkehrende Aufgabe hinzufügen`,"schedule.addWakeupTitle":`Wakeup planen`,"schedule.every":`Alle`,"schedule.unitMinutes":`Minuten`,"schedule.unitHours":`Stunden`,"schedule.unitDays":`Tage`,"schedule.daysDriftWarning":`Das Intervall kann sich am Monatsende auf 1 Tag verkürzen (Cron-Einschränkung).`,"schedule.advancedExpression":`Erweiterter Ausdruck (optional)`,"schedule.advancedHint":`Roher Cron (z. B. */15 * * * *) oder {'@'}hourly/{'@'}daily — überschreibt die Auswahl, wenn gesetzt.`,"schedule.promptLabel":`Prompt`,"schedule.labelOptional":`Bezeichnung (optional)`,"schedule.delayMinutes":`Verzögerung (Minuten)`,"schedule.modeFresh":`Neue Sitzung`,"schedule.oneShot":`Nur einmal ausführen`,"schedule.addCronBtn":`Cron hinzufügen`,"schedule.addWakeupBtn":`Wakeup planen`,"schedule.cronCreated":`Wiederkehrende Aufgabe hinzugefügt`,"schedule.wakeupCreated":`Wakeup geplant`,"askUserQuestion.title":`Der Agent stellt eine Frage`,"askUserQuestion.submit":`Antwort senden`,"askUserQuestion.multiSelectHint":`Eine oder mehrere Optionen auswählen`,"askUserQuestion.otherOption":`Sonstiges`,"askUserQuestion.otherOptionHint":`bitte in der nächsten Chat-Nachricht angeben`,"askUserQuestion.freeFormLabel":`Antwort präzisieren`,"askUserQuestion.freeFormHint":`Diese Antwort wird direkt an den Agenten gesendet.`,"askUserQuestion.noPending":`Keine offene Frage`,"askUserQuestion.next":`Weiter`,"askUserQuestion.previous":`Zurück`,"askUserQuestion.cancel":`Abbrechen`,"askUserQuestion.cancelTooltip":`Diese Frage überspringen — der Agent macht ohne Antwort weiter`,"askUserQuestion.collapse":`Fragebereich einklappen`,"askUserQuestion.expand":`Fragebereich ausklappen`,"permissionRequest.title":`Der Agent möchte ein Tool verwenden`,"permissionRequest.allow":`Erlauben`,"permissionRequest.allowOnce":`Einmal erlauben`,"permissionRequest.allowTurn":`Diesen Zug erlauben`,"permissionRequest.operationUnavailable":`Aktionsdetails fehlen; einmalig oder das gesamte Werkzeug erlauben.`,"permissionRequest.allowOperation":`Diese Aktion immer erlauben`,"permissionRequest.allowTool":`Dieses Tool immer erlauben`,"permissionRequest.deny":`Ablehnen`,"permissionRequest.tool":`Tool`,"permissionRequest.input":`Eingabe`,"permissionRequest.rawInput":`Technische Details`,"permissionRequest.collapse":`Berechtigungsfenster einklappen`,"permissionRequest.expand":`Berechtigungsfenster ausklappen`,"permissionRequest.denied":`vom Nutzer abgelehnt`,"workspaceStatus.created":`erstellt`,"workspaceStatus.extracting":`Extraktion`,"workspaceStatus.brainstorming":`Brainstorming`,"workspaceStatus.compacting":`Kontextkomprimierung`,"chatInput.compactingBanner":`Der Kontext wird komprimiert. Danach können Nachrichten wieder gesendet werden.`,"workspaceStatus.executing":`läuft`,"workspaceStatus.awaitingUser":`wartet auf deine Antwort`,"workspaceStatus.completed":`abgeschlossen`,"workspaceStatus.idle":`inaktiv`,"workspaceStatus.error":`Fehler`,"workspaceStatus.quota":`Kontingent erreicht`,"workspaceStatus.retrying":`automatische Wiederaufnahme`,"workspaceList.prOpen":`#{n} — Pull Request offen`,"workspaceList.prWatchDisabledIndicator":`PR-Prüfungen für diesen Workspace ignoriert`,"workspaceList.prChangesRequested":`#{n} — Änderungen angefordert`,"workspaceList.attentionCiFailed":`CI fehlgeschlagen`,"workspaceList.attentionChangesRequested":`Änderungen angefordert`,"workspaceList.attentionReadyToMerge":`Bereit zum Mergen`,"autoLoop.status.active":`Aktiv`,"autoLoop.status.waiting":`Wartend`,"autoLoop.status.blocked":`Blockiert`,"autoLoop.status.completed":`Abgeschlossen`,"autoLoop.status.stopped":`Gestoppt`,"autoLoop.phase.grooming":`Vorbereitung`,"autoLoop.phase.execution":`Ausführung`,"autoLoop.phase.finalization":`Abschluss`,"autoLoop.iteration":`Durchlauf {count}`,"autoLoop.resume":`Auto-loop fortsetzen`,"autoLoop.retryAt":`Fortsetzung geplant für`,"autoLoop.actionFailed":`Die Aktion konnte nicht abgeschlossen werden.`,"autoLoop.messages.count":`{count} Anweisung(en) in der Warteschlange`,"autoLoop.messages.pending":`Wartend`,"autoLoop.messages.dispatching":`Wird gesendet`,"autoLoop.messages.unknown":`Zustellung unklar`,"autoLoop.messages.delivered":`Zugestellt`,"autoLoop.messages.cancel":`Anweisung abbrechen`,"autoLoop.messages.acknowledge":`Als empfangen markieren`,"autoLoop.messages.retry":`Erneut senden`,"autoLoop.messages.unknownHelp":`Die Zustellung konnte nicht bestätigt werden. Prüfen Sie zuerst den Gesprächsverlauf. Erneutes Senden kann eine bereits empfangene Anweisung duplizieren.`,"autoLoop.reason.quota":`Warten auf das Kontingent des Anbieters.`,"autoLoop.reason.transient":`Fortsetzung nach einer vorübergehenden Unterbrechung.`,"autoLoop.reason.awaiting-user":`Warten auf Ihre Antwort.`,"autoLoop.reason.capacity-or-lifecycle":`Warten auf einen freien Agentenplatz.`,"autoLoop.reason.message-delivery-unknown":`Klären Sie vor der Fortsetzung die ungewisse Zustellung.`,"autoLoop.reason.error":`Die Schleife benötigt Ihre Aufmerksamkeit, bevor sie fortfahren kann.`,"autoLoop.reason.stall":`Kein Fortschritt erkannt. Prüfen Sie vor der Fortsetzung die letzte Sitzung.`,"autoLoop.reason.awaiting-clarification":`Vor der Fortsetzung ist eine Klärung erforderlich.`,"autoLoop.toggle":`Auto-Schleife`,"autoLoop.start":`Auto-Schleife starten`,"autoLoop.prepare":`Auto-Schleife vorbereiten`,"autoLoop.reprepare":`Auto-Schleife erneut vorbereiten`,"autoLoop.reprepareTooltip":`Grooming-Schritt erneut ausführen, um Aufgaben hinzuzufügen oder zu aktualisieren, bevor die Schleife neu gestartet wird`,"autoLoop.prepareBusy":`Warte, bis der Agent fertig ist, bevor du vorbereitest`,"autoLoop.forceReady":`Ich weiß, was ich tue — Grooming überspringen`,"autoLoop.forceReadyConfirm":`Grooming überspringen und Auto-Schleife als bereit markieren? Kann hängen bleiben, wenn Aufgaben nicht atomar sind.`,"autoLoop.stop":`Auto-Schleife stoppen`,"autoLoop.notReady":`Zuerst „Auto-Schleife vorbereiten" ausführen`,"autoLoop.noTasks":`Zuerst Aufgaben hinzufügen`,"autoLoop.progress":`Auto-Schleife · {done}/{total} Aufgaben`,"autoLoop.preparing":`Auto-Schleife · Vorbereitung`,"autoLoop.preparingTooltip":`Grooming läuft — der Agent erstellt / überprüft Aufgaben. Die Schleife startet, sobald mark_auto_loop_ready aufgerufen wird.`,"autoLoop.running":`Auto-Schleife läuft`,"autoLoop.startInMode":`Im Auto-Schleifen-Modus starten`,"autoLoop.brainstormModelPrefix":`Brainstorm:`,"autoLoop.brainstormModelTooltip":`Modell nur für die anfängliche Brainstorming-Sitzung — jede Aufgabe danach nutzt das oben gewählte Modell`,"autoLoop.brainstormReasoningPrefix":`Brainstorm:`,"autoLoop.brainstormReasoningTooltip":`Denkaufwand nur für die anfängliche Brainstorming-Sitzung`,"autoLoop.executionModelPrefix":`Loop:`,"autoLoop.executionModelTooltip":`Modell für jede Auto-Loop-Aufgabe nach der anfänglichen Brainstorming-Sitzung`,"autoLoop.sessionMode.perTask":`Neue Sitzung pro Aufgabe`,"autoLoop.sessionMode.label":`Sitzung:`,"autoLoop.sessionMode.perTaskTooltip":`Jede Aufgabe startet eine neue Claude-Code-Sitzung ohne Erinnerung an vorherige Aufgaben`,"autoLoop.sessionMode.continuous":`Durchgehende Sitzung`,"autoLoop.sessionMode.continuousTooltip":`Alle Aufgaben laufen in derselben Sitzung — der Agent behält den vollen Kontext, aber die Sitzung wird mit der Zeit länger`,"koboCommand.prepAutoloopDesc":`Aufgaben für Auto-Schleifen-Modus vorbereiten (auf Atomarität prüfen)`,"staleSessionBanner.title":`Auto-Schleife läuft`,"staleSessionBanner.message":`Du siehst eine ältere Sitzung — der Agent arbeitet gerade in der neuesten.`,"staleSessionBanner.staleTitle":`Ältere Sitzung`,"staleSessionBanner.staleMessage":`Du siehst eine ältere Sitzung — gesendete Nachrichten gehen an diese Sitzung, nicht an die neueste.`,"staleSessionBanner.switchToCurrent":`Zur aktuellen wechseln`,"network.login.title":`Netzwerkzugriff`,"network.login.description":`Dieses Kōbō benötigt ein Token, um über das Netzwerk gesteuert zu werden. Füge das in den Einstellungen auf dem Host angezeigte Token ein.`,"network.login.tokenLabel":`Token`,"network.login.tokenPlaceholder":`Token einfügen`,"network.login.connect":`Verbinden`,"network.login.invalid":`Ungültiges Token`,"network.login.serverError":`Serverfehler — bitte erneut versuchen.`,"network.login.unreachable":`Kōbō ist nicht erreichbar — prüfe deine Verbindung.`,"layout.toggleWorkspaces":`Workspaces-Leiste ein-/ausblenden`,"layout.togglePanel":`Seitenleiste ein-/ausblenden`,"unsaved.title":`Ohne Speichern verlassen?`,"unsaved.message":`Du hast ungespeicherte Änderungen. Diese Seite zu verlassen verwirft sie.`,"unsaved.leave":`Verlassen`,"unsaved.stay":`Bleiben`,"prCheckout.staleRetriesExhausted":`Der Repository-Status hat sich während der Anwendung deiner Auswahl immer wieder geändert. Schließe diesen Dialog und versuche es erneut über die Pull-Request-Auswahl.`,"prPicker.title":`Aus einer Pull Request importieren`,"prPicker.filterAll":`Alle`,"prPicker.filterMine":`Meine`,"prPicker.filterReviewRequested":`Review angefragt`,"prPicker.searchPlaceholder":`Pull Requests durchsuchen…`,"prPicker.loadMore":`Mehr laden`,"prPicker.empty":`Keine offene Pull Request passt.`,"prPicker.forkNotSupported":`Diese PR stammt von einem Fork; Kōbō kann sie nicht auschecken.`,"prPicker.loadFailed":`Pull Requests konnten nicht geladen werden.`,"prPicker.badge.workspaceExists":`Bereits in Kōbō geöffnet`,"prPicker.badge.worktreePresent":`Worktree vorhanden`,"prPicker.badge.localBranch":`Lokaler Branch`,"prPicker.badge.new":`Neu`,"prPicker.badge.draft":`Entwurf`,"prCheckout.title":`Worktree vorbereiten`,"prCheckout.apply":`Anwenden`,"prCheckout.cancel":`Abbrechen`,"prCheckout.retry":`Erneut versuchen`,"prCheckout.diagnoseFailed":`Die Diagnose des Pull Requests ist fehlgeschlagen.`,"prCheckout.resolveFailed":`Die Auflösung des Pull-Request-Checkouts ist fehlgeschlagen.`,"prCheckout.path.required":`Gib einen Worktree-Pfad ein, der noch nicht existiert.`,"prCheckout.workspace.restoreNotAvailable":"Das Wiederherstellen eines bereinigten Workspaces ist von hier aus noch nicht möglich. Lege den Worktree-Ordner auf der Festplatte neu an (z. B. mit `git worktree add`) — Kōbō verknüpft ihn innerhalb von etwa 30 Sekunden automatisch wieder.","prCheckout.staleReloaded":`Das Repository hat sich geändert; die Diagnose wurde aktualisiert.`,"prCheckout.step.blocked":`Fortfahren nicht möglich`,"prCheckout.step.path":`Worktree-Speicherort`,"prCheckout.step.workspace":`Bestehender Workspace`,"prCheckout.step.worktree":`Bestehende Worktree`,"prCheckout.step.operation":`Git-Vorgang läuft`,"prCheckout.step.changes":`Nicht committete Änderungen`,"prCheckout.step.divergence":`Lokaler Branch vs. origin`,"prCheckout.workspace.activeHint":`Ein Workspace namens „{name}" verfolgt diesen Branch bereits.`,"prCheckout.workspace.open":`Diesen Workspace öffnen`,"prCheckout.workspace.continue":`Mit einem anderen Pfad fortfahren`,"prCheckout.workspace.unarchive":`Entarchivieren und öffnen`,"prCheckout.workspace.restore":`Worktree wiederherstellen`,"prCheckout.worktree.orphanHint":`Auf diesem Branch existiert bereits eine Worktree unter {path}.`,"prCheckout.worktree.attach":`Anhängen`,"prCheckout.worktree.branchInUse":`Dieser Branch ist bereits ausgecheckt. Verwenden Sie seinen vorhandenen Worktree.`,"prCheckout.worktree.createElsewhere":`Eine neue an anderer Stelle erstellen`,"prCheckout.operation.hint":`In dieser Worktree läuft gerade ein {operation}.`,"prCheckout.operation.abort":`Abbrechen`,"prCheckout.operation.cancel":`Unangetastet lassen und hier stoppen`,"prCheckout.changes.hint":`{modified} geändert, {staged} vorgemerkt, {untracked} unverfolgt.`,"prCheckout.changes.stash":`Stashen`,"prCheckout.changes.commit":`Committen`,"prCheckout.changes.discard":`Verwerfen (als benannter Stash aufbewahrt)`,"prCheckout.changes.keepResetConflict":`Lokale Änderungen können bei einem Hard Reset nicht behalten werden. Zuerst Stash oder Commit wählen oder den Branch behalten.`,"prCheckout.changes.keep":`So belassen, wie sie sind`,"prCheckout.divergence.behindHint":`Dein Branch liegt {behind} Commit(s) hinter origin zurück.`,"prCheckout.divergence.aheadHint":`Dein Branch hat {ahead} nicht gepushte(n) Commit(s).`,"prCheckout.divergence.divergedHint":`{ahead} voraus, {behind} zurück gegenüber origin.`,"prCheckout.divergence.fastForward":`Fast-Forward auf origin`,"prCheckout.divergence.rebase":`Auf origin rebasen`,"prCheckout.divergence.resetHard":`Auf origin zurücksetzen (zuvor wird ein Backup-Branch erstellt)`,"prCheckout.divergence.keep":`Lokalen Stand beibehalten`,"prCheckout.blocked.forgeUnavailable":`Das Forge-CLI fehlt oder ist nicht authentifiziert.`,"prCheckout.blocked.forkPr":`Diese PR stammt von einem Fork; Kōbō kann sie nicht auschecken.`,"prCheckout.blocked.headBranchDeleted":`Der Branch existiert auf dem Remote nicht mehr.`,"prCheckout.blocked.indexLock":`Ein anderer Git-Prozess läuft gerade (index.lock ist vorhanden).`,"prCheckout.blocked.pathOccupied":`{path} existiert bereits und ist keine Worktree.`,"prCheckout.blocked.worktreeOtherBranch":`{path} ist eine Worktree auf einem anderen Branch ({branch}).`,"prCheckout.blocked.noCommonAncestor":`Es existiert bereits ein lokaler Branch namens {branch} mit unabhängiger Historie.`,"split.title":`Doppelte Workspace-Ansicht`,"split.open":`Nebeneinander öffnen`,"split.openBeside":`Daneben öffnen`,"split.close":`Doppelansicht schließen`,"split.left":`Linker Workspace`,"split.right":`Rechter Workspace`,"split.choose":`Workspace auswählen`,"split.recipient":`Senden an: {name}`,"absence.title":`Seit deinem letzten Besuch`,"settings.activityDigestHint":`Zeigt eine Übersicht der Ereignisse während deiner Abwesenheit. Deaktivieren blendet den Eintrag aus und stoppt die Erfassung neuer Ereignisse, ohne den bisherigen Verlauf zu löschen.`,"absence.pending":`Änderungen prüfen`,"absence.retention":`Wichtige Aktivitäten der letzten 30 Tage, erfasst seit Installation dieser Funktion. Besuche werden nur in diesem Browser verfolgt.`,"absence.since":`Seit {date}`,"absence.error":`Aktivität konnte nicht geladen werden.`,"absence.retry":`Erneut versuchen`,"absence.empty":`Keine neue Aktivität.`,"absence.more":`Mehr laden`,"absence.markRead":`Angezeigte Ereignisse als gelesen markieren`,"absence.kind.question":`Frage gestellt`,"absence.kind.permission":`Genehmigung angefragt`,"absence.kind.completed":`Sitzung beendet`,"absence.kind.error":`Agent-Fehler`,"absence.kind.pr-merged":`PR gemergt`,"absence.kind.pr-approved":`PR genehmigt`,"absence.kind.pr-changes-requested":`Änderungen angefordert`,"absence.kind.pr-ci-failed":`CI fehlgeschlagen`,"absence.kind.pr-ci-recovered":`CI wieder erfolgreich`,"absence.kind.pr-merge-conflict":`Merge-Konflikt`,"absence.kind.pr-ready-to-merge":`PR bereit zum Merge`,"absence.kind.archived":`Workspace archiviert`,"absence.kind.purged":`Worktree bereinigt`,"absence.kind.restored":`Worktree wiederhergestellt`,"tours.split.controls.title":`Zwei unabhängige Workspaces`,"tours.split.controls.description":`Wähle einen Workspace pro Bereich. Verschiebe die Trennlinie; jede Unterhaltung behält ihren Empfänger und ihre Panels.`,"tours.home.sort.title":`Workspaces sortieren`,"tours.home.sort.description":`Wähle Reihenfolge und Richtung innerhalb jeder Gruppe. Deine Auswahl wird gespeichert.`,"tours.home.activity.title":`Aktivität nach Abwesenheit prüfen`,"tours.home.activity.description":`Unten in der linken Seitenleiste findest du Fragen, Sitzungsenden, Fehler und PR-Änderungen seit deinem letzten Besuch.`};export{e as default};
@@ -1 +0,0 @@
1
- .monaco-editor{--monaco-monospace-font:"SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace;font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif}.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);width:1px;height:1px;margin:-1px;padding:0;top:0;overflow:hidden;position:absolute!important}.monaco-editor .synthetic-focus,.monaco-diff-editor .synthetic-focus,.monaco-editor [tabindex="0"]:focus,.monaco-diff-editor [tabindex="0"]:focus,.monaco-editor [tabindex="-1"]:focus,.monaco-diff-editor [tabindex="-1"]:focus,.monaco-editor button:focus,.monaco-diff-editor button:focus,.monaco-editor input[type=button]:focus,.monaco-diff-editor input[type=button]:focus,.monaco-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-editor input[type=search]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-editor input[type=text]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-editor select:focus,.monaco-diff-editor select:focus,.monaco-editor textarea:focus,.monaco-diff-editor textarea:focus{outline-offset:-1px;outline-width:1px;outline-style:solid;outline-color:var(--vscode-focusBorder);opacity:1}.monaco-hover.workbench-hover{z-index:40;background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);max-width:700px;color:var(--vscode-editorHoverWidget-foreground);box-shadow:var(--vscode-shadow-lg);border-radius:5px;font-size:13px;line-height:19px;position:relative;overflow:hidden}.monaco-hover.workbench-hover.with-pointer{border-radius:3px}.monaco-hover.workbench-hover .monaco-action-bar .action-item .codicon{width:13px;height:13px}.monaco-hover.workbench-hover hr{border-bottom:none}.monaco-hover.workbench-hover.compact{font-size:12px}.monaco-hover.workbench-hover.compact .monaco-action-bar .action-item .codicon{width:12px;height:12px}.monaco-hover.workbench-hover.compact .hover-contents{padding:2px 8px}.workbench-hover-container.locked .monaco-hover.workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.workbench-hover-container:focus-within.locked .monaco-hover.workbench-hover{outline-color:var(--vscode-focusBorder)}.workbench-hover-pointer{z-index:41;pointer-events:none;position:absolute}.workbench-hover-pointer:after{content:"";background-color:var(--vscode-editorHoverWidget-background);border-right:1px solid var(--vscode-editorHoverWidget-border);border-bottom:1px solid var(--vscode-editorHoverWidget-border);width:5px;height:5px;position:absolute}.workbench-hover-container:not(:focus-within).locked .workbench-hover-pointer:after{border-bottom-width:2px;border-right-width:2px;width:4px;height:4px}.workbench-hover-container:focus-within .workbench-hover-pointer:after{border-right:1px solid var(--vscode-focusBorder);border-bottom:1px solid var(--vscode-focusBorder)}.workbench-hover-pointer.left{left:-3px}.workbench-hover-pointer.right{right:3px}.workbench-hover-pointer.top{top:-3px}.workbench-hover-pointer.bottom{bottom:3px}.workbench-hover-pointer.left:after{transform:rotate(135deg)}.workbench-hover-pointer.right:after{transform:rotate(315deg)}.workbench-hover-pointer.top:after{transform:rotate(225deg)}.workbench-hover-pointer.bottom:after{transform:rotate(45deg)}.monaco-hover.workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-hover.workbench-hover a:focus{outline-offset:-1px;outline:1px solid;outline-color:var(--vscode-focusBorder);text-decoration:underline}.monaco-hover.workbench-hover a.codicon:focus,.monaco-hover.workbench-hover a.monaco-button:focus{text-decoration:none}.monaco-hover.workbench-hover a:hover,.monaco-hover.workbench-hover a:active{color:var(--vscode-textLink-activeForeground)}.monaco-hover.workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-hover.workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-hover.workbench-hover.right-aligned{left:1px}.monaco-hover.workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-hover.workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-left:16px;margin-right:0}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight,.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight,.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight,.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight,.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight,.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{color:#555;background-color:#ddd6;border:1px solid #ccc6;border-bottom-color:#bbb6;box-shadow:inset 0 -1px #bbb6}.hc-black .monaco-keybinding>.monaco-keybinding-key{box-shadow:none;color:#fff;background-color:#0000;border:1px solid #6fc3df}.hc-light .monaco-keybinding>.monaco-keybinding-key{box-shadow:none;color:#292929;background-color:#0000;border:1px solid #0f4a85}.vs-dark .monaco-keybinding>.monaco-keybinding-key{color:#ccc;background-color:#8080802b;border:1px solid #3339;border-bottom-color:#4449;box-shadow:inset 0 -1px #4449}.quick-input-widget{z-index:2550;-webkit-app-region:no-drag;border-radius:var(--vscode-cornerRadius-xLarge);width:600px;box-shadow:var(--vscode-shadow-xl);position:absolute;left:50%}.quick-input-titlebar{cursor:grab;border-top-left-radius:5px;border-top-right-radius:5px;align-items:center;display:flex}.quick-input-widget.no-drag .quick-input-titlebar,.quick-input-widget.no-drag .quick-input-title,.quick-input-widget.no-drag .quick-input-header{cursor:default}.quick-input-widget .monaco-inputbox .monaco-action-bar{top:0}.quick-input-widget .monaco-action-bar .monaco-custom-toggle{box-sizing:content-box;border-radius:5px;margin-left:0}.quick-input-left-action-bar{margin-left:4px;display:flex}.quick-input-inline-action-bar .actions-container>.action-item:first-child{margin-left:5px}.quick-input-inline-action-bar .actions-container>.action-item{margin-top:2px}.quick-input-title{cursor:grab;text-align:center;text-overflow:ellipsis;flex:1;padding:3px 0;overflow:hidden}.quick-input-right-action-bar{margin-right:4px;display:flex}.quick-input-right-action-bar .actions-container{justify-content:flex-end}.quick-input-right-action-bar .actions-container>.action-item,.quick-input-inline-action-bar .actions-container>.action-item{margin-left:4px}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{flex:1;margin:4px 2px}.quick-input-header{cursor:grab;padding:6px 6px 4px;display:flex}.quick-input-widget .quick-input-filter .monaco-inputbox{border-radius:var(--vscode-cornerRadius-medium)}.quick-input-widget.hidden-input .quick-input-header{margin-bottom:0;padding:0}.quick-input-and-message{flex-direction:column;flex-grow:1;min-width:0;display:flex;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-widget .quick-input-header .monaco-checkbox{margin-top:6px}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;align-items:center;display:flex;position:absolute;right:4px}.quick-input-count .monaco-count-badge{vertical-align:middle;border-radius:2px;min-height:auto;padding:2px 4px;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-message{overflow-wrap:break-word;margin-top:-1px;padding:5px}.quick-input-message>.codicon{vertical-align:text-bottom;margin:0 .2em}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{max-height:440px;padding-bottom:7px;overflow:hidden}.quick-input-list .monaco-scrollable-element{padding:0 6px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;padding:0 6px;display:flex;overflow:hidden}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-style:solid;border-top-width:1px}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{flex:1;height:100%;display:flex;overflow:hidden}.quick-input-widget .monaco-checkbox{margin-right:0}.quick-input-widget .quick-input-list .monaco-checkbox,.quick-input-widget .quick-input-tree .monaco-checkbox{margin-top:4px}.quick-input-list .quick-input-list-icon{background-position:0;background-repeat:no-repeat;background-size:16px;justify-content:center;align-items:center;width:16px;height:22px;padding-right:6px;display:flex}.quick-input-list .quick-input-list-rows{text-overflow:ellipsis;flex-direction:column;flex:1;height:100%;margin-left:5px;display:flex;overflow:hidden}.quick-input-list .quick-input-list-rows>.quick-input-list-row{align-items:center;display:flex}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;text-overflow:ellipsis;line-height:normal;overflow:hidden}.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight{background-color:unset;font-weight:700;color:var(--vscode-list-highlightForeground)!important}.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight{color:var(--vscode-quickInputList-focusHighlightForeground)!important}.quick-input-list .quick-input-list-entry .quick-input-list-separator{font-size:var(--vscode-bodyFontSize-xSmall);color:var(--vscode-descriptionForeground);margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{flex:0;display:flex;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry-action-bar .monaco-custom-toggle{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:2px}.quick-input-list .quick-input-list-entry-action-bar .monaco-custom-toggle.codicon{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px;margin-right:4px}.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .monaco-custom-toggle.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .monaco-custom-toggle,.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .monaco-custom-toggle,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .monaco-custom-toggle,.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .monaco-custom-toggle{display:flex}.quick-input-list>.monaco-list:focus .monaco-list-row.focused{outline-offset:-1px;outline:1px solid var(--vscode-list-focusOutline)!important}.quick-input-list>.monaco-list:focus .monaco-list-row.focused .quick-input-list-entry.quick-input-list-separator-border{border-color:#0000}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row:hover .monaco-keybinding-key{border-color:var(--vscode-widget-shadow);background:0 0}:is(.vs,.vs-dark) .quick-input-list .monaco-list-row.focused .monaco-keybinding-key,:is(.vs,.vs-dark) .quick-input-list .monaco-list-row:hover .monaco-keybinding-key{border-color:color-mix(in srgb, currentColor 30%, transparent)}.quick-input-list .quick-input-list-separator-as-item{padding:4px 6px;font-size:12px}.quick-input-list .quick-input-list-separator-as-item .label-name{font-weight:600}.quick-input-list .quick-input-list-separator-as-item .label-description{opacity:1!important}.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border{border-top-style:none}.quick-input-list .monaco-tree-sticky-row{padding:0 5px}.quick-input-list .monaco-tl-twistie{display:none!important}.quick-input-tree .monaco-list{max-height:440px;padding-bottom:5px;overflow:hidden}.quick-input-tree.quick-input-tree-flat .monaco-tl-indent,.quick-input-tree.quick-input-tree-flat .monaco-tl-twistie{display:none!important}.quick-input-tree.quick-input-tree-flat .monaco-checkbox{margin-left:6px}.quick-input-tree .quick-input-tree-entry{box-sizing:border-box;padding-right:6px;display:flex;overflow:hidden}.quick-input-tree .quick-input-tree-label{flex:1;height:100%;display:flex;overflow:hidden}.quick-input-tree .quick-input-tree-icon{background-position:0;background-repeat:no-repeat;background-size:16px;justify-content:center;align-items:center;width:16px;height:22px;padding-right:6px;display:flex}.quick-input-tree .quick-input-tree-rows{text-overflow:ellipsis;flex-direction:column;flex:1;height:100%;margin-left:5px;display:flex;overflow:hidden}.quick-input-tree .quick-input-tree-rows>.quick-input-tree-row{align-items:center;display:flex}.quick-input-tree .quick-input-tree-rows>.quick-input-tree-row .monaco-icon-label,.quick-input-tree .quick-input-tree-rows>.quick-input-tree-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-tree .quick-input-tree-rows>.quick-input-tree-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-tree .quick-input-tree-rows .monaco-highlighted-label>span{opacity:1}.quick-input-tree .quick-input-tree-entry-action-bar{flex:0;display:flex;overflow:visible}.quick-input-tree .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .quick-input-tree-entry-action-bar .monaco-custom-toggle{display:none}.quick-input-tree .quick-input-tree-entry-action-bar .action-label.codicon{margin-right:4px;padding:2px}.quick-input-tree .quick-input-tree-entry-action-bar .monaco-custom-toggle.codicon{margin-right:4px}.quick-input-tree .quick-input-tree-entry-action-bar{margin-top:1px;margin-right:4px}.quick-input-tree .quick-input-tree-entry .quick-input-tree-entry-action-bar .action-label.always-visible,.quick-input-tree .quick-input-tree-entry:hover .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .quick-input-tree-entry.focus-inside .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .monaco-list-row.focused .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .monaco-list-row.passive-focused .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .quick-input-tree-entry .quick-input-tree-entry-action-bar .monaco-custom-toggle.always-visible,.quick-input-tree .quick-input-tree-entry:hover .quick-input-tree-entry-action-bar .monaco-custom-toggle,.quick-input-tree .quick-input-tree-entry.focus-inside .quick-input-tree-entry-action-bar .monaco-custom-toggle,.quick-input-tree .monaco-list-row.focused .quick-input-tree-entry-action-bar .monaco-custom-toggle,.quick-input-tree .monaco-list-row.passive-focused .quick-input-tree-entry-action-bar .monaco-custom-toggle{display:flex}.quick-input-tree>.monaco-list:focus .monaco-list-row.focused{outline-offset:-1px;outline:1px solid var(--vscode-list-focusOutline)!important}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;display:none;position:absolute;left:0}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{transition:width .1s linear;left:0}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-timing-function:linear;animation-iteration-count:infinite;transform:translate(0,0)}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100,end)}@keyframes progress{0%{transform:translate(0%)scaleX(1)}50%{transform:translate(2500%)scaleX(3)}to{transform:translate(4900%)scaleX(1)}}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;border-radius:3px;padding:1px 3px}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);width:100%;height:100%;position:relative;overflow-y:hidden}.monaco-component.multiDiffEditor>div{width:100%;height:100%;position:absolute;top:0;left:0}.monaco-component.multiDiffEditor>div.placeholder{visibility:hidden}.monaco-component.multiDiffEditor>div.placeholder.visible{visibility:visible}.monaco-component.multiDiffEditor>div.placeholder{place-content:center;place-items:center;display:grid}.monaco-component.multiDiffEditor>.multi-diff-root-floating-menu{width:auto;position:absolute;top:auto;bottom:24px;left:auto;right:28px}.monaco-component.multiDiffEditor .active{--vscode-multiDiffEditor-border:var(--vscode-focusBorder)}.monaco-component.multiDiffEditor .multiDiffEntry{flex-direction:column;flex:1;display:flex;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button{cursor:pointer;margin:0 5px}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button a{display:block}.monaco-component.multiDiffEditor .multiDiffEntry .header{z-index:1000;background:var(--vscode-editor-background)}.monaco-component.multiDiffEditor .multiDiffEntry .header:not(.collapsed) .header-content{border-bottom:1px solid var(--vscode-sideBarSectionHeader-border)}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content{border-top:1px solid var(--vscode-multiDiffEditor-border);color:var(--vscode-foreground);background:var(--vscode-multiDiffEditor-headerBackground);align-items:center;margin:8px 0 0;padding:4px 5px;display:flex}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0px 6px 6px -6px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path{flex:1;min-width:0;display:flex}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title{font-size:14px;line-height:22px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title.original{text-overflow:ellipsis;flex:1;min-width:0}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .status{opacity:.75;margin:0 10px;font-weight:600;line-height:22px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .actions{padding:0 8px}.monaco-component.multiDiffEditor .multiDiffEntry .editorParent{border-bottom:1px solid var(--vscode-multiDiffEditor-border);flex-direction:column;flex:1;display:flex;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .editorContainer{flex:1}