@wrongstack/webui 0.308.2 → 0.308.4

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 (57) hide show
  1. package/dist/assets/{AgentRosterView-BRsiLkYT.js → AgentRosterView-z7sAuWGe.js} +1 -1
  2. package/dist/assets/{AnalyticsDashboard-wgm1_jI-.js → AnalyticsDashboard-Ch1DX7tR.js} +1 -1
  3. package/dist/assets/{AudienceMemoryPanel-Dj2zRV6l.js → AudienceMemoryPanel-Cec0V4--.js} +1 -1
  4. package/dist/assets/{ChangesView-Cc7SriFS.js → ChangesView-CzvRJS2F.js} +1 -1
  5. package/dist/assets/{ChronicleDashboard-CyqJjnDP.js → ChronicleDashboard-Dc5cQH7A.js} +1 -1
  6. package/dist/assets/{CodeEditor-CrQxq-34.js → CodeEditor-C1xScB5M.js} +1 -1
  7. package/dist/assets/{CodeMap-CAhE44jp.js → CodeMap-BMcY8qXe.js} +1 -1
  8. package/dist/assets/{ConfirmModal-gREeWWsa.js → ConfirmModal-i2BGY0ev.js} +1 -1
  9. package/dist/assets/{CronJobsPanel-D6AfSxD8.js → CronJobsPanel-D4VNa-Kl.js} +1 -1
  10. package/dist/assets/{DeadCodeScanPanel-LOzt0Z1Z.js → DeadCodeScanPanel-DyV2LHm_.js} +1 -1
  11. package/dist/assets/{DebugDashboard-CNdS9FFO.js → DebugDashboard-C_T68C0f.js} +1 -1
  12. package/dist/assets/{DesignGalleryView-CDDM4pDl.js → DesignGalleryView-CVmV-AU2.js} +1 -1
  13. package/dist/assets/{GoalView-mzLqil_K.js → GoalView-DQa9PklT.js} +1 -1
  14. package/dist/assets/{KanbanView-Dlsji4r2.js → KanbanView-CDp4gTML.js} +1 -1
  15. package/dist/assets/{MailboxDetailView-Cxx74zQn.js → MailboxDetailView-D7aRTWS8.js} +1 -1
  16. package/dist/assets/{MemoryDrawer-BnT2jWmE.js → MemoryDrawer-Bivx9AXj.js} +1 -1
  17. package/dist/assets/{MemoryManager-DlVmZ-0S.js → MemoryManager-DOTxwo0l.js} +1 -1
  18. package/dist/assets/{ModelPicker-CsaLCgdi.js → ModelPicker-MpC6-gWQ.js} +1 -1
  19. package/dist/assets/{OfficeMapPanel-B_95mXEy.js → OfficeMapPanel-Q8nQfQVb.js} +1 -1
  20. package/dist/assets/{ProcessMonitor-Dmmbx4lh.js → ProcessMonitor-C8GH1q2B.js} +1 -1
  21. package/dist/assets/{PromptJournalView-DBCw7oeQ.js → PromptJournalView-BdOYPAjU.js} +1 -1
  22. package/dist/assets/{QueuePanel-CKAGgWxS.js → QueuePanel-RBW9Sh9b.js} +1 -1
  23. package/dist/assets/{RefreshDebugView-CKPQ_tKX.js → RefreshDebugView-1lZduXKE.js} +1 -1
  24. package/dist/assets/{RequirementIntakeView-B5JKkW9E.js → RequirementIntakeView-BtKuq_F4.js} +1 -1
  25. package/dist/assets/SageTabs-D2_mTlcJ.js +2 -0
  26. package/dist/assets/{SddFlowGraph-BCgIDw11.js → SddFlowGraph-BdaItHkB.js} +1 -1
  27. package/dist/assets/{SddHub-CkH8Kv7V.js → SddHub-DVO0JGWk.js} +1 -1
  28. package/dist/assets/{SessionInspectView-PA6jl9bt.js → SessionInspectView-xchxZrHA.js} +1 -1
  29. package/dist/assets/{SessionList-vOuy4gzk.js → SessionList-2W7mKbcZ.js} +1 -1
  30. package/dist/assets/{SessionsDashboard-DXt34ZON.js → SessionsDashboard-6QJsVGap.js} +1 -1
  31. package/dist/assets/{SetupScreen-Cm50YBwk.js → SetupScreen-DM2KCb23.js} +1 -1
  32. package/dist/assets/{SkillDetailView-BBu6DBBh.js → SkillDetailView-Cx2z8hyp.js} +1 -1
  33. package/dist/assets/{SpecsView-DeHi6LWP.js → SpecsView-D-qbN6F5.js} +1 -1
  34. package/dist/assets/{TechStackView-cARkf3Ep.js → TechStackView-C7XFcAls.js} +1 -1
  35. package/dist/assets/{TerminalPanel-HWOYFCGa.js → TerminalPanel-DZs5mkPP.js} +1 -1
  36. package/dist/assets/{Toaster-CQLQAp7y.js → Toaster-ChF897Tc.js} +1 -1
  37. package/dist/assets/{activity-CnuG3uZL.js → activity-C6pIBHte.js} +1 -1
  38. package/dist/assets/{activity-K2WIjlQo.js → activity-CA5G03Kw.js} +1 -1
  39. package/dist/assets/{activity-DFBPo9d3.js → activity-CezOSNBd.js} +1 -1
  40. package/dist/assets/{activity-BCIzGgqa.js → activity-CkGBp_I-.js} +1 -1
  41. package/dist/assets/{activity-BZIZDVJp.js → activity-CxnlCaZu.js} +1 -1
  42. package/dist/assets/{activity-CQqsspgO.js → activity-DYwBIByU.js} +1 -1
  43. package/dist/assets/{activity-ChTE_hao.js → activity-l8lDAw8a.js} +1 -1
  44. package/dist/assets/{i18n-CcHSmDoO.js → i18n-DiD9Wcep.js} +2 -2
  45. package/dist/assets/{index-Bj3blCRO.js → index-Cnerffls.js} +4 -4
  46. package/dist/assets/{index-DBU8t21H.css → index-D2tx76V0.css} +1 -1
  47. package/dist/assets/{stores-kaIFQfXo.js → stores-CzgPPQlG.js} +1 -1
  48. package/dist/assets/{useWebSocket-DjrFK4tQ.js → useWebSocket-DvMcAAgU.js} +1 -1
  49. package/dist/assets/vector-memory-panel-C6iWDhkJ.js +1 -0
  50. package/dist/components/MemoryManager/SageTabs.d.ts +1 -1
  51. package/dist/components/vector-memory-panel/ForgetVectorMemoryDialog.d.ts +13 -0
  52. package/dist/components/vector-memory-panel/model.d.ts +11 -0
  53. package/dist/index.html +9 -9
  54. package/dist/index.js +2196 -1996
  55. package/package.json +8 -8
  56. package/dist/assets/SageTabs-D04tfLki.js +0 -2
  57. package/dist/assets/vector-memory-panel-CjqIA8Vf.js +0 -1
@@ -2,7 +2,7 @@ import{n as ee}from"./rolldown-runtime-hePW80VL.js";var te=ee({agentOffice:()=>A
2
2
 
3
3
  Double-click to rename`,unfavorite:`Unfavorite`,markFavorite:`Mark as favorite`,deleteSessionConfirmTitle:`Delete session?`,deleteSessionConfirmBody:`"{{name}}" will be removed from disk. This cannot be undone.`,deleteSessionTitle:`Delete session`,rename:`Session name`,renameAction:`Rename`,resume:`Resume session`,resumeShort:`Resume`,workspaceEyebrow:`Conversation control`,workspaceTitle:`Sessions`,workspaceHint:`Search, inspect, pin and resume every project conversation.`,tabs:{history:`History`,live:`Live sessions`},filters:{all:`All`,favorites:`Pinned`,active:`Active`,completed:`Completed`,issues:`Issues`},status:{active:`Active`,completed:`Completed`,error:`Error`,timeout:`Timed out`,aborted:`Aborted`,saved:`Saved session`},sort:{label:`Sort sessions`,recent:`Recent`,tokens:`Most tokens`,activity:`Most activity`},stats:{sessions:`Sessions`,tokens:`Tokens`,tools:`Tool calls`,files:`Files changed`,errors:`Errors`},inspect:`Inspect session`},p={actions:{abort:`Abort`,newSession:`New session`,export:`Export`,compact:`Compact`,newSessionConfirm:`Are you sure?`,newSessionConfirmMessage:`A job is still in progress. Start a new session anyway?`,newSessionTitle:`Start a new session (Ctrl+N)`,exportTitle:`Export chat as markdown (Ctrl+E)`,compactTitle:`Compact the context window`,clearTitle:`Clear context (Ctrl+L)`},model:`Model`,modelTitle:`Change model (Ctrl+M)`,context:`Context`,contextTitle:`Click for a context breakdown`,sessionLabel:`Session`,stats:{messages:`Messages`,elapsed:`Elapsed`,tokens:`Tokens`,cost:`Cost`,iteration:`Iteration`,agents:`Agents`,tokensSub:`{{in}} in / {{out}} out`,iterationOf:`of {{max}}`,agentsRunning:`{{count}} running`},plan:`Plan`,planComplete:`{{pct}}% complete`,pinned:`Pinned`,quickSettings:`Quick settings`,autonomy:`Autonomy`,autonomyTitle:`Stop auto-running next steps. Toggle off to halt the agent's autonomous loop`,autonomyOptions:{off:`Off`,suggest:`Suggest`,auto:`Auto`,eternal:`Eternal`,"eternal-parallel":`Eternal Parallel`},yolo:`YOLO mode`,yoloTitle:`Bypass tool confirmation prompts`,refine:`Refine prompts`,refineTitle:`Rewrite prompts before sending`,sound:`Sound on completion`,soundTitle:`Play a soft chime when a run finishes`,sessionId:`session {{id}}`},m={status:{running:`running`,completed:`done`,failed:`failed`,timeout:`timeout`,stopped:`stopped`},leader:`leader`,providerModel:`Provider / Model`,elapsed:`Elapsed`,running:`running…`,iterations:`Iterations`,toolCalls:`Tool Calls`,cost:`Cost`,budgetExtensions:`Budget Extensions`,activity:`Activity`,contextWindow:`Context window`,tokensUsed:`{{used}} / {{max}} tokens`,toolRunning:`running…`,lastTool:`last tool`,error:`Error`,finalOutput:`Final Output`,copyOutput:`Copy output`,liveOutput:`Live Output`,waitingOutput:`Waiting for output…`,outputHint:`Output appears here as the agent streams text.`,toolLog:`Tool Log ({{count}} calls)`,fail:`fail`,moreTools:`+{{count}} more tools`,cardRunning:`running {{tool}}`,cardLastTool:`last: {{tool}}`,contextPercent:`Context {{pct}}%`,doneCount:`{{count}} done`,errCount:`{{count}} err`,statusRunning:`running`,statusDone:`done`,statusFailed:`failed`,statusTimeout:`timeout`,statusStopped:`stopped`,hittingLimitTitle:`⚡ hitting {{kind}} limit ({{used}}/{{limit}})`,budgetExt_one:`{{count}} Budget Extension`,budgetExt_other:`{{count}} Budget Extensions`,extendedTimes_one:`Agent extended its budget {{count}} time due to long-running tasks`,extendedTimes_other:`Agent extended its budget {{count}} times due to long-running tasks`,errorLabel:`Error`,failureReason:`Failure Reason`,failed:`Failed`},h={wsNotConnected:`WebSocket not connected`,noData:`No debug data received. The server may not support context debugging.`,title:`Context Breakdown`,windowUsage:`Window Usage`,contextMode:`Context Mode`,fetching:`Fetching context breakdown…`,systemPrompt:`System Prompt`,tools:`Tools`,messages:`Messages`,tokenAllocation:`Token Allocation`,systemTitle:`System: {{tokens}}`,toolsTitle:`Tools: {{tokens}}`,messagesTitle:`Messages: {{tokens}}`,system:`System`,toolBreakdown:`Tool Breakdown`,messagesSummary:`Messages ({{count}}) — {{total}} tok`,barWithTokens:`Context window: {{tokens}} / {{max}} tokens ({{pct}})`,barPct:`Context window: {{pct}}`,barClick:` — click for breakdown`},g={header:`✨ Refine Prompt`,autoSend:`auto-send in {{count}}s`,cancelTitle:`Cancel (Esc)`,editLabel:`Edit refined prompt:`,editPlaceholder:`Edit the refined prompt...`,useEdit:`Use Edit`,original:`Original`,refined:`Refined`,yourLanguage:`(your language)`,refinedTitle:`Click or press Enter to use this version`,copyToInputTitle:`Copy to input without sending`,english:`English`,englishTitle:`Press e to use English version`,hintRefined:`refined`,hintEnglish:`English`,hintOriginal:`original`,hintEdit:`edit`,hintRetry:`retry`,edit:`Edit`,useRefined:`Use Refined`,langOriginal:`Original`,langEnglish:`English`,languageTitle:`Switch default refine language — Original vs English`,yolo:`YOLO`,yoloTitle:`Bypass tool confirmation prompts`,refining:`Refining…`,sendAsIs:`Send as-is`,failedHeader:`Refinement failed`,retry:`Retry (more time)`,retryBetter:`Try again better`,retryFallback:`Retry with {{model}}`,pickModel:`Another model…`,pickModelTitle:`Retry refinement with another model`,pickModelHint:`Pick a provider/model to re-run this refinement on. Your session model stays unchanged.`,countdownHeader:`✨ Refining starts in…`,countdownYourMessage:`Your message`,countdownHint:`Refining starts in {{seconds}}s. Click "Send as-is" to skip.`,countdownStartNow:`Refine now`,countdownSendAsIs:`Send as-is`,cancelRefineSendOriginal:`Cancel & send original`},_={heading:`Specifications`,subtitle:`View and manage specification-driven development`,empty:`No specs found. Use {{command}} to create one.`,tasks:`Tasks ({{count}})`,doneCount:`{{count}} done`,runningCount:`{{count}} running`,pendingCount:`{{count}} pending`,runTitle:`Run this spec as a live multi-agent job`,run:`Run`,runAsSdd:`Run as SDD`,runAsSddTitle:`Start a multi-agent SDD parallel run (worktrees, verification, live board)`,runAsGoal:`Run as Goal`,runAsGoalTitle:`Start a phased Goal run from this spec's task columns`,list:`List`,graph:`Graph`,loadingTasks:`Loading tasks…`},v={heading:`F5 Resilience Verifier`,subtitle:`Confirms the latest active session, transcript, and UI state survive a page refresh. Open this view, then press F5 — every green row should remain green.`,recordProbe:`Record probe`,latestSession:`Latest active session`,restoredLocal:`Restored from localStorage`,sessionIdExtra:`session id: {{id}}`,noSessionYet:`no session has been started yet`,activePointer:`Active session pointer`,lastVisited:`lastVisitedAt timestamp`,never:`never`,persistedEnv:`Persisted environment`,transcriptRehydrate:`Chat transcript rehydration`,localTranscript:`Local transcript recovered`,messagesExtra:`{{count}} messages, {{queued}} queued`,noMessages:`0 messages`,noBleed:`No cross-session bleed`,bleedExtra:`bound={{bound}} vs active={{active}}`,transcriptBinds:`transcript binds to the active session`,uiWorkspace:`UI workspace`,noneValue:`(none)`,payloadSize:`localStorage payload (4 keys): {{count}} chars`,probeLog:`Probe log`,noProbes:`No probes yet — press the "Record probe" button at the top, or press F5 in this view, to record a rehydration check.`,simulatedF5:`simulated F5: re-running persist rehydrate`},y={status:{pending:`Pending`,in_progress:`In Progress`,review:`Review`,failed:`Failed`,completed:`Done`,queued:`Queued`,blocked:`Blocked`,cancelled:`Cancelled`},newTaskTitle:`New task`,newTaskPlaceholder:`Task title…`,addTask:`Add task`,empty:`No phases yet — start a Goal run to populate the board.`,summary:`{{phases}} phases · {{tasks}} tasks`,phases:`Phases`,statusTab:`Status`,dropHere:`Drop tasks here`,emptySpec:`No tasks in this spec yet.`,depGraphHeading:`Dependency Graph`,worktreePrefix:`worktree: {{branch}}`},b={trendUp:`Increasing`,trendDown:`Decreasing`,trendStable:`Stable`,heading:`Debug Dashboard`,subtitle:`Real-time monitoring for WrongStack WebUI`,refreshLabel:`Refresh:`,lastUpdated:`Last updated: {{time}}`,fetchFailed:`Failed to fetch metrics`,fileWatcher:`File Watcher`,watcherStatus:`Watcher Status`,running:`Running`,stopped:`Stopped`,activeProjects:`Active Projects`,projectsWatched:`Projects being watched`,fileChanges:`File Changes`,totalDetected:`Total detected`,filesProcessed:`Files Processed`,afterHash:`After hash filter`,broadcastsSent:`Broadcasts Sent`,toClients:`To WebUI clients`,debounceResets:`Debounce Resets`,rapidWrites:`Rapid successive writes`,avgDebounce:`Avg Debounce Delay`,actualDelay:`Actual delay applied`,totalDelay:`Total Delay`,sumDelays:`Sum of all delays`,browserPerf:`Browser Performance`,heapUsed:`Heap Used`,jsHeap:`JavaScript heap`,heapTotal:`Heap Total`,totalHeap:`Total heap size`,pageUptime:`Page Uptime`,sinceLoad:`Since page load`,rawData:`Raw Data`},x={allowlistTitle:`Model allowlist`,modelCount_one:`{{count}} model`,modelCount_other:`{{count}} models`,using:`Using`,noModelPicked:`(no model picked)`,clearAllowlist:`Clear allowlist`,clearAllowlistAria:`Clear saved allowlist for {{provider}}`,refresh:`Refresh from server`,refreshAria:`Refresh model list for {{provider}}`,probing:`Probing…`,searchPlaceholder:`Search models…`,use:`Use`,useModelAria:`Use model {{model}} for {{provider}}`},S={expandChip:`Expand {{label}}`,collapseChip:`Collapse {{label}}`,ahead:`{{count}} ahead`,behind:`{{count}} behind`,linesAdded:`{{count}} lines added`,linesDeleted:`{{count}} lines deleted`,untrackedFiles:`{{count}} untracked files`,customizeTitle:`Customize dock chips`,dockChips:`Dock chips`,noActiveGoal:`No active goal`,noActiveGoalDetail:`Start a goal from chat or the goal command.`,closeWorkspaceInspector:`Close workspace inspector`,goal:`Goal`,goalState:`Goal State`,goalStateDetail:`Active objective and progress`,fleet:`Fleet`,fleetDetail:`Live agent roster and activity`,work:`Work`,workDetail:`Todos, tasks, and plan`,worktrees:`Worktrees`,worktreesDetail:`Parallel branches and lanes`,collab:`Collab`,collabDetail:`Session participants and controls`,inspector:`Workspace inspector`,inspectorNamed:`{{name}} workspace inspector`,workspace:`Workspace`,workspaceDetails:`Workspace details`},C={leaderBadge:`LEADER`,iters:`Iters`,tools:`Tools`,activityBins:`Activity (12 bins)`,streamingOutput:`Streaming output`,recentTools:`Recent tools`,finalOutput:`Final output`,heading:`Agents Monitor`,prevAgent:`Previous agent`,nextAgent:`Next agent`,closeAria:`Close agents monitor`,hintPage:`←→ page`,hintNavigate:`↑↓ navigate list`,hintEsc:`Esc close`},w={resize:`Resize terminals`,labelSingular:`Terminal`,labelPlural:`Terminals`,projectShell:`Project shell`,maxTerminals:`Maximum {{count}} terminals`,newTerminal:`New terminal`,restart:`Restart active terminal`,closeAll:`Close all terminals`,closeDock:"Close terminal dock (Ctrl+`)",closeTab:`Close {{name}}`,processExited:`[process exited with code {{code}}]`},T={liveStream:`Live stream`,events_one:`{{count}} event`,events_other:`{{count}} events`,interruptTitle:`Cooperatively stop this agent at its next step (not a process kill)`,interrupt:`⏸ Interrupt`,interrupting:`…`,loading:`Loading session…`,done:`✓✓ done`,read:`✓ read`,delivered:`⏳ delivered`,agent:`Agent`,you:`You`,working:`{{name}} · working`,claude:`Claude`,priority:`Priority`,placeholder:`{{label}} → this session…`,send:`Send`,sendHint:`⌘/Ctrl+Enter to send · seen on the agent's next iteration`,msgType:{steerLabel:`🔄 Steer`,steerHint:`Adjust behavior mid-task`,askLabel:`❓ Ask`,askHint:`Question — expects a reply`,assignLabel:`📋 Assign`,assignHint:`A task to act on`,noteLabel:`💬 Note`,noteHint:`FYI, non-urgent`},sentRunning:`Delivered — the running agent sees it on its next step`,sentIdle:`Delivered — target is idle; appears in its mailbox, read when it next runs`,sentFailed:`Failed: {{error}}`,interruptReason:`Operator requested stop from Fleet HQ`,interruptSent:`Interrupt sent — agent stops at its next step (not a kill)`,interruptFailed:`Interrupt failed: {{error}}`},E={empty:`No side effects recorded yet.`,emptyHint:`Bash commands, package installs, and network requests will appear here.`,heading:`Side Effects`,exportTitle:`Export filtered side effects as CSV`,all:`All`,colTime:`Time`,colTool:`Tool`,colRisk:`Risk`,colDetail:`Detail`,colOutcome:`Outcome`},D={elapsedHm:`{{h}}h {{m}}m ago`,elapsedMs:`{{m}}m {{s}}s ago`,elapsedS:`{{s}}s ago`,heading:`Fleet Monitor`,clientsHeading:`Connected Clients`,terminal:`Terminal`,webui:`Web UI`,repl:`REPL`,totalConnected:`total connected`,mailQueue:`Mail Queue`,total:`Total`,open:`Open`,unread:`Unread`,agents:`Agents`,messagesSub:`messages`,uncompletedSub:`uncompleted`,waitingSub:`waiting`,ofTotal:`of {{count}} total`,agentRoster:`Agent Roster`,liveMailActivity:`Live Mail Activity`,noActivity:`No recent activity`,mailboxAgents:`Mailbox Agents`,noMailboxAgents:`No agents registered`,moreCount:`+{{count}} more`,agentFallback:`agent`,fleetAgents:`Fleet Agents`,noFleetAgents:`No fleet agents running`,iter:`iter`,mailType:{sent:`Sent`,delivered:`Delivered`,read:`Read`,completed:`Completed`}},O={status:{pending:`pending`,queued:`queued`,in_progress:`running`,blocked:`blocked`,review:`review`,failed:`failed`,completed:`done`,cancelled:`cancelled`},activityHeading:`Activity`,feedEmpty:`Nothing yet — events appear here as agents pick up and finish tasks.`,destroyTitle:`Destroy SDD project?`,destroyDesc:`This wipes the run and its work. It cannot be undone (the optional commit revert is history-preserving).`,stopRun:`Stop the run`,stopRunAgents_one:`Stop the run ({{count}} agent working)`,stopRunAgents_other:`Stop the run ({{count}} agents working)`,removeWorktreesAll:`Remove all git worktrees + wstack/ap/* branches — including un-merged work`,removeWorktreesCount_one:`Remove {{count}} git worktree + wstack/ap/* branches — including un-merged work`,removeWorktreesCount_other:`Remove {{count}} git worktrees + wstack/ap/* branches — including un-merged work`,deleteArtifacts:`Delete all SDD artifacts (specs, task graph, board, session)`,revertMerged_one:`Also revert {{count}} merged commit`,revertMerged_other:`Also revert {{count}} merged commits`,revertHint:`Adds revert commits (history preserved). Refused if the working tree is dirty.`,baseBranchFallback:`the base branch`,noteLeaveMerged:`Merged commits will be left on the base branch. Tick the box above to undo them too.`,noteAbandon:`Make sure you really want to abandon this run.`,destroying:`Destroying…`,destroyAll:`Destroy everything`,kanbanBacklog:`Backlog`,kanbanReady:`Ready`,kanbanRunning:`Running`,kanbanReview:`Review`,kanbanFailed:`Failed`,kanbanDone:`Done`,kanbanEmpty:`empty`},k={collapseToLines:`Collapse to first {{count}} lines`,showAllLines:`Show all {{total}} lines ({{more}} more)`,exitCode:`exit code:`,jsonLines:`JSON · {{count}} lines`,collapse:`collapse`,expand:`expand`},A={injectedHeading:`SAGE Memory Injected`,memoriesLabel_one:`{{count}} memory`,memoriesLabel_other:`{{count}} memories`},j={heading:`Design Studio — Gallery`,kitsCount:`{{count}} kits`,searchPlaceholder:`Search kits…`,stackTitle:`Stack for Use + Materialize`,wrote:`Wrote {{path}}`,materializeFailed:`Materialize failed: {{error}}`,verifyError:`Verify: {{error}}`,verifyOffPalette:`Verify: {{pct}}% on-palette — {{count}} off-palette in {{files}} file(s)`,verifyClean:`Verify: clean ✓ ({{files}} file(s) on-palette)`,writing:`Writing theme file…`,scanning:`Scanning UI files…`,active:`Active`,reapply:`Reapply`,use:`Use`,materializeTitle:`Write tokens to a {{stack}} theme file`,materialize:`Materialize`,verifyTitle:`Scan UI files for off-palette colors`,verify:`Verify`,colors:`Colors`},M={summary_one:`{{count}} phase · {{pct}}% complete`,summary_other:`{{count}} phases · {{pct}}% complete`,switchBoard:`Switch board`,boardsCount_one:`{{count}} board…`,boardsCount_other:`{{count}} boards…`,toggleAutonomousTitle:`Toggle autonomous mode`,autonomous:`Autonomous`,manual:`Manual`,resumeTitle:`Resume the run`,pauseTitle:`Pause the run`,resume:`Resume`,pause:`Pause`,stopTitle:`Stop the run — aborts in-flight agents immediately`,stop:`Stop`,newTitle:`Clear this board and start a new Goal run`,newLabel:`New`,revertConfirm:`Revert run's commits?`,revertTitle:`Undo this run — git-revert the commits it landed and remove its worktrees`,revert:`Revert`,goal:`Goal`,planning:`Planning phases…`,planningBody:`Your goal was received. WrongStack is breaking it into phases and tasks — the board appears here the moment the plan is ready.`,startHeading:`Start a Phase Plan`,startBody:`Describe what you want to build. WrongStack will plan phases and tasks, then execute them — watch and steer the run on the board.`,startPlaceholder:`e.g. Build a REST API for user management with Express and SQLite...`,isolateLabel:`Isolate each phase in its own git worktree`,startButton:`Start Goal`,ctrlHint:`Ctrl+Enter to start`,isolateOn:`phases run in isolated worktrees, squash-merged back`,isolateOff:`phases run directly on the current branch`,lanes:`Lanes`,graph:`Graph`,planningAck:`🚀 **Goal** — got it. Planning phases for your goal now…`,assess:{analyzing:`Analyzing goal scope…`,realistic:`✓ Scope looks realistic`,durationConcern:`⚠ Duration concern`,durationClaimed:`Claimed duration: {{duration}}`,recommendation:`Recommended: {{duration}}`,concerns:`Concerns`,analysisFailed:`Could not analyze goal scope`,override:`Start anyway`,overrideTitle:`Clear the assessment warning and enable the start button`,disableTitle:`This goal has an unrealistic duration assessment — use "Start anyway" to override`},multiBoardLabel:`Split into multiple kanban boards`,verifyTasksLabel:`Require verification for each task`,chimeraReviewLabel:`Enable chimera auto-review`},N={noObservers:`No live observers`,observerTitle:`Join as a read-only observer (Phase 1)`,observerRole:`observer`,annotatorTitle:`Join as an annotator — leave inline notes on tool calls (Phase 2)`,annotatorRole:`annotator`,controllerTitle:`Join as a controller — can pause the agent loop (Phase 3)`,controllerRole:`controller`,errorPrefix:`Collab: {{error}}`,dismiss:`dismiss`,observers_one:`{{count}} observer`,observers_other:`{{count}} observers`,annotationsTitle:`{{count}} open annotation(s) — annotators reviewing this session`,notes_one:`{{count}} note`,notes_other:`{{count}} notes`,pausedTitle:`Agent loop is paused — a controller is reviewing`,paused:`paused`,joinedTitle:`Joined {{time}}`,grantTitle:`Grant control — promote this participant to controller`,injectTitle:`Inject a synthetic result for an in-flight tool call`,inject:`Inject`,resumeTitle:`Resume the agent loop`,resume:`Resume`,pauseTitle:`Pause the agent before the next tool call`,pauseAgent:`Pause agent`,leaveTitle:`Leave the observer session`,leave:`Leave`,injectToolResult:`Inject tool result`,close:`close`,targetTool:`Target tool_use id`,targetPlaceholder:`pick an in-flight call or type a tool_use id`,toolFallback:`tool`,noPendingTools:`No in-flight tool calls — type a tool_use id to pre-queue, or pause the agent first.`,resultContent:`Result content`,resultPlaceholder:`Synthetic tool result fed to the agent in place of running the tool`,markError:`mark as error`,reasonPlaceholder:`reason (audit log)`,queueInjection:`Queue injection`,controllerInjection:`controller injection`},P={modePrefix:`mode:`,activeTitle:`Active mode`,heading:`Mode`,defaultName:`Default`,defaultDesc:`Standard agent behaviour`},F={clickTitle:`Click for per-turn cost breakdown`,heading:`Cost breakdown`,noPricing:`No pricing for the current model — cost figures are zero.`,noTurns:`No completed turns yet. Run a prompt to see per-turn cost here.`,topExpensive_one:`Top {{count}} expensive turn`,topExpensive_other:`Top {{count}} expensive turns`},I={runDefault:`Run default`,useRunDefault:`Use run default`,filterPlaceholder:`Filter models…`,loading:`Loading models…`,noMatch:`No match`},L={heading:`Switch model`,filterPlaceholder:`Filter providers and models…`,providerFilter:`Provider`,providerFilterAll:`All providers`,noSavedProviders:`No saved providers — register a key in Settings first.`,noMatch:`No matching models`,active:`active`},R={todos:`Todos`,tasks:`Tasks`,plan:`Plan`},z={toggleAria:`Toggle: {{content}}`,removeTitle:`Remove todo`,removeAria:`Remove "{{content}}"`,completedCount_one:`{{count}} completed`,completedCount_other:`{{count}} completed`,blockedBy:`Waiting on: {{work}}`},B={start:`Start`,complete:`Complete`,retry:`Retry`,assign:`Assign`,assignTitle:`Assign agent`,unassigned:`Unassigned`,statusPending:`Pending`,statusInProgress:`In Progress`,statusBlocked:`Blocked`,statusFailed:`Failed`,statusReview:`Review`,statusDone:`Done`,startTitle:`Start`,completeTitle:`Complete`,fail:`Fail`,failTitle:`Mark failed`,boardCount:`{{total}} tasks · {{done}} completed`},V={toolCalls_one:`{{count}} tool call`,toolCalls_other:`{{count}} tool calls`},H={removeTitle:`Remove reference`,linesCount_one:`{{count}} line`,linesCount_other:`{{count}} lines`},U={statusOpen:`Open`,statusInProgress:`In Progress`,statusDone:`Done`,startTitle:`Start`,doneTitle:`Mark done`,reopenTitle:`Reopen`,reopen:`Reopen`},W={heading:`@ Files`,noMatch:`No files match "{{query}}"`,searching:`Searching project…`,selectInsertEscDismiss:`↑/↓ select · ↵ insert · Esc dismiss`},G={dismiss:`Dismiss`},K={placeholder:`Search in chat…`,prevHit:`Previous hit`,nextHit:`Next hit`,close:`Close (Esc)`},q={statusPending:`Pending`,statusReady:`Ready`,statusRunning:`Running`,statusPaused:`Paused`,statusCompleted:`Completed`,statusFailed:`Failed`,statusSkipped:`Skipped`,heading:`Phases`,autonomousOn:`● Autonomous`,autonomousOff:`○ Manual`,autonomousOnTitle:`Autonomous mode active — click to pause`,autonomousOffTitle:`Manual mode — click to enable autonomous`,overallProgress:`Overall Progress`,tasksSuffix:`{{done}}/{{total}} tasks`,agentsSuffix_one:`{{count}} agent`,agentsSuffix_other:`{{count}} agents`},J={triggerTitle:`Context-window mode`,ctxPrefix:`ctx:`,opsHeading:`Context Operations`,compactNow:`Compact Now`,compactNowDesc:`Elide old tool output`,compactAggressive:`Compact Aggressive`,compactAggressiveDesc:`Maximum elision now`,repairContext:`Repair Context`,repairDesc:`Fix orphan tool-use blocks`,debugContext:`Debug Context`,debugDesc:`Size breakdown per section`,windowHeading:`Context Window`,keepElide:`keep {{k}} recent · elide {{t}}+ tokens`,fallbackName:`Balanced`,fallbackDesc:`Default rolling compaction`},Y={kindAssistant:`Assistant`,kindThinking:`Thinking`,kindToolCall:`Tool call`,kindToolResult:`Tool result`,kindError:`Error`,kindStatus:`Status`,kindSystem:`System`,title:`Chat history`,copyTitle:`Copy agent chat history`,empty:`No chat history for this agent yet.`},X={heading:`Autonomy Mode`,titlePrefix:`Autonomy: {{label}}`,descOff:`Full manual control — agent waits for your input.`,descSuggest:`Agent suggests next steps but waits for approval.`,descAuto:`Agent auto-proceeds after brief confirmation delay.`,descEternal:`Agent runs autonomously until goal is complete.`,descEternalParallel:`Multi-agent autonomous execution — fleet mode.`,labelOff:`Off`,labelSuggest:`Suggest`,labelAuto:`Auto`,labelEternal:`Eternal`,labelEternalParallel:`Eternal Parallel`},Z={heading:`Message Queue`,subtitle:`{{count}} queued · messages sent before the agent finishes`,btwTitle:`By-the-way — sent as follow-up without interrupting the running agent`,steerTitle:`Steer — interrupts the running agent and redirects it with this message`,queueTitle:`Queued — held until the current agent run completes, then sent in order`,sortNewestTitle:`Sorted newest first — click to sort oldest first`,sortOldestTitle:`Sorted oldest first — click to sort newest first`,newest:`Newest`,oldest:`Oldest`,clear:`Clear`,clearTitle:`Clear all queued messages`,closeTitle:`Close`,emptyTitle:`Queue is empty`,emptyBody:`Use the btw / steer / add queue buttons beside the input to add messages. Queued items are sent in order when the current agent run completes.`,removeTitle:`Remove from queue`,clearDispatchedTitle:`Clear queued messages — already-sent notes cannot be retracted`,dispatchedTitle:`Already sent to the agent`,dispatchedLabel:`Sent`,footer:`Messages are sent in arrival order when the current agent run completes. Use the sort toggle to view newest-first.`},Q={heading:`Session Checkpoints`,countSuffix_one:`{{count}} checkpoint`,countSuffix_other:`{{count}} checkpoints`,description:`Rewind the session to any checkpoint. Messages and file changes revert to that point — the LLM continues from there as if nothing happened after.`,emptyTitle:`No checkpoints yet`,emptyBody:`Checkpoints are automatically created each time you send a message. Send a few messages and come back.`,latest:`latest`,msgSuffix_one:`{{count}} msg`,msgSuffix_other:`{{count}} msgs`,footerPre:`Click any checkpoint to rewind`,footerPost:`to close`},ne={statusActive:`Active`,statusPaused:`Paused`,statusDone:`Done`,statusFailed:`Failed`,statusAbandoned:`Abandoned`,heading:`Goal`,refined:`Refined`,progress:`Progress`,iterations:`iterations`,deliverables:`Deliverables`,recentActivity:`Recent Activity`},re={cleanTitle_one:`Clean {{count}} orphaned worktree?`,cleanTitle_other:`Clean {{count}} orphaned worktrees?`,cleanMessage:`Force-removes every leftover git worktree + wstack/ap branch from previous runs. Un-merged work in them is discarded.`,cleanConfirm:`Clean orphans`,orphanCount_one:`{{count}} orphaned worktree from previous runs`,orphanCount_other:`{{count}} orphaned worktrees from previous runs`,andMore:`…and {{count}} more`,cleanButtonTitle:`Force-remove all orphaned worktrees + branches`,removed_one:`✓ Removed {{count}} orphaned worktree.`,removed_other:`✓ Removed {{count}} orphaned worktrees.`,cleanupFailed:`cleanup failed`,lanesHeading:`Worktrees`,base:`base`,isolatedCount_one:`{{count}} isolated`,isolatedCount_other:`{{count}} isolated`,statusAllocating:`allocating`,statusActive:`active`,statusCommitting:`committing`,statusMerging:`merging`,statusMerged:`merged`,statusConflict:`conflict`,statusFailed:`failed`,conflictBadge:`CONFLICT`,graphAria:`Worktree branch graph off {{base}}`,mergedLabel:`✓ merged → {{base}}`},ie={heading:`Running Processes`,subtitle:`{{active}} active · {{total}} total`,killAll:`Kill All`,emptyTitle:`No processes tracked`,emptyBody:`Processes appear here when the agent runs bash or exec tools. Active processes show a pulsing LED.`,pidLabel:`PID {{pid}}`,protected:`protected`,protectedTitle:`Protected — survives kill/killAll`,background:`background`,backgroundTitle:`Detached job — survives CLI/WebUI shutdown`,confirmKillBackground:`Terminate detached background process {{pid}}?`,confirmKillAll:`Terminate all {{count}} running processes?`,killTitle:`Kill PID {{pid}}`},ae={tooLarge:`Diff omitted (file too large to render inline).`},oe={placeholder:`Add a fallback model…`,emptyHint:`Tried in order when the primary model rate-limits or stalls.`,moveUp:`Move up`,moveDown:`Move down`},se={loading:`Loading sessions...`,apiUnavailable:`Session API unavailable:`,empty:`No live sessions. Open another wstack instance to see it here.`,heading:`Live Sessions ({{count}})`,autoRefresh:`auto-refresh every 5s`,pidLabel:`PID {{pid}}`,agentMeta:`{{iter}} iter · {{tools}} tools · {{ago}}`,andMore:`... and {{count}} more`,noAgents:`No agents`},ce={applyTitle:`Write the edited version back to disk`,applying:`Applying…`,applied:`Applied`,apply:`Apply`},le={showStack_one:`Show stack trace ({{count}} frame)`,showStack_other:`Show stack trace ({{count}} frames)`,hideStack_one:`Hide stack trace ({{count}} frame)`,hideStack_other:`Hide stack trace ({{count}} frames)`},ue={liveHeading:`Live`,clients:`Clients`,agents:`Agents`,model:`Model`,mode:`Mode`,toolCalls:`Tool calls`,displayHeading:`Display`,statsHud:`Stats HUD`,legends:`Legends`,minimap:`Minimap`,zoomControls:`Zoom controls`,animateWires:`Animate wires`,backgroundHeading:`Background`,bgDots:`Dots`,bgLines:`Lines`,bgCross:`Cross`,bgNone:`None`},de={noParams:`(no params)`,itemCount_one:`{{count}} item`,itemCount_other:`{{count}} items`,keyCount_one:`{{count}} key`,keyCount_other:`{{count}} keys`},fe={roleYou:`You`,roleTool:`Tool`,roleThinking:`Thinking`,roleAssistant:`Assistant`,inputLabel:`Input`,downloadTitle:`Download as file`,empty:`(empty)`,hideDetails:`Hide details`,showDetails:`Show details`,showDetailsLines_one:`Show details ({{count}} line)`,showDetailsLines_other:`Show details ({{count}} lines)`,editHint:`⌘/Ctrl+Enter to save · Esc to cancel`,saveResend:`Save & resend`,thinkingProcess:`Model Reasoning`,thinkingMeta:`iter {{iter}} · {{dur}} · {{lines}}`,replay:`replay`,linesSuffix_one:`{{count}} line`,linesSuffix_other:`{{count}} lines`,copyLog:`Copy log`,showFullLog:`Show full log`,typing:`Typing…`,noContent:`No content`,imageNotRetained:`Image preview not kept after refresh`,failedToSend:`⚠ Failed to send`,autoPaused:`⚠️ _Auto-proceed paused — maximum consecutive automatic turns reached. Type anything to continue (autonomy stays on)._`,autoLoopHalted:`⚠️ _Auto-submit halted because the same prompt repeated. Autonomy remains on; enter a new prompt to reset the loop guard._`,rsIterations:`Iterations: {{n}}`,rsTools:`Tool calls: {{n}}`,rsElapsed:`Elapsed: {{s}}`,rsCost:`Cost: {{c}}`,useInput:`Input: {{n}}`,useOutput:`Output: {{n}}`,useCacheRead:`Cache read: {{n}}`,useCost:`Cost: {{c}}`,renderedLabel:`Rendered`,rawLabel:`Raw`,showRenderedTitle:`Show rendered markdown`,showRawTitle:`Show raw markdown source`,editTitle:`Edit & resend this prompt`,editLabel:`Edit`,unpinTitle:`Unpin`,pinTitle:`Pin this answer`,pinnedLabel:`Pinned`,pinLabel:`Pin`,regenerateTitle:`Regenerate this response`,retryLabel:`Retry`},pe={toolFallback:`tool`,toolFailed:`Tool failed`},me={heading:`Keyboard shortcuts`,footerPre:`Press`,footerPost:`any time to reopen this list.`,sectionGlobal:`Global`,sectionTuiParity:`TUI Panel Parity`,sectionFleet:`Fleet & Agents`,sectionChatInput:`Chat input`,sectionChat:`Chat`,sectionChatNav:`Chat navigation (when not typing)`,dCommandPalette:`Open command palette`,dShowOverlay:`Show this shortcuts overlay`,dToggleSidebar:`Toggle sidebar`,dOpenPanel:`Open side panel (Session, Agents, History, Files, Changes, Mailbox, Skills, Office Map)`,dDesignStudio:`Open Design Studio side panel`,dWorktrees:`Open Worktrees side panel`,dSettings:`Open Settings`,dMemory:`Open Memory`,dFocusInput:`Focus the message input`,dSessionPanel:`Session panel`,dFleetOverlay:`Fleet monitor overlay`,dAgentsOverlay:`Agents monitor overlay`,dWorktreeMonitor:`Worktree monitor`,dPlanPanel:`Plan panel`,dTodosPanel:`Todos panel`,dQueuePanel:`Queue panel`,dProcessMonitor:`Process monitor`,dGoalPanel:`Goal panel`,dSessionsDashboard:`Sessions dashboard`,dOfficeMap:`Coordinator office map`,dDockPicker:`Dock chip picker`,dOpenFleet:`Open Fleet Monitor overlay`,dOpenAgents:`Open Agents Monitor overlay`,dNavigateAgents:`Navigate agents in monitor`,dSelectAgent:`Select focused agent`,dCloseOverlay:`Close active overlay`,dSendMessage:`Send message`,dNewline:`Insert a newline`,dRecallPrev:`Recall previous prompt (in empty input)`,dRecallNext:`Recall next prompt`,dSlashPopup:`Open slash command popup`,dAutocomplete:`Autocomplete highlighted command`,dDismissPopup:`Dismiss popup / clear input`,dSearchChat:`Search within current chat`,dClearContext:`Clear context (same as /clear)`,dNewSession:`Start a new session (same as /new)`,dExportMarkdown:`Export chat as markdown`,dModelSwitcher:`Quick model switcher overlay`,dCompactDensity:`Toggle compact UI density`,dAbortRun:`Abort the current run (when running)`,dFocusNext:`Focus next message (alias: ↓)`,dFocusPrev:`Focus previous message (alias: ↑)`,dJumpFirst:`Jump to first message`,dJumpLast:`Jump to last message`,dCopyFocused:`Copy focused message text`,dClearFocused:`Clear focused message`},he={titleFallback:`Live SDD Board`,defaultModelTitle:`Run-level default worker model (per-task overrides take precedence)`,graphLabel:`Graph`,kanbanLabel:`Kanban`,retryAllTitle:`Requeue every failed task to pending`,retryFailed:`Retry failed ({{count}})`,resume:`Resume`,pause:`Pause`,stop:`Stop`,cleanTitle:`Remove the run's git worktrees + wstack/ap branches`,cleanWorktrees:`Clean worktrees`,rollbackTitle:`Revert {{count}} merged commit(s) on {{base}}`,rollback:`Rollback ({{count}})`,stopping:`Stopping…`,destroying:`Destroying…`,destroyTitle:`Stop, remove all worktrees, optionally revert merged commits, and delete the SDD project`,destroy:`Destroy`,statDone:`done`,statRunning:`running`,statFailed:`failed`,statWave:`wave`,statElapsed:`elapsed`,noActiveWorkers:`no active workers`,deadlock:`Deadlock — tasks blocked by failed work:`,noRunTitle:`No active SDD run.`,noRunBody:`Start one from the New SDD Project wizard, or via /sdd execute in the CLI — agents appear here live, each working an isolated worktree.`,clickTaskHint:`click a task for details`,lcClean:`Clean`,lcRollback:`Rollback`,lcDestroy:`Destroy`,lcFailed:`{{op}} failed: {{reason}}`,lcUnknownError:`unknown error`,lcWorktrees_one:`{{count}} worktree removed`,lcWorktrees_other:`{{count}} worktrees removed`,lcCommits_one:`{{count}} commit reverted`,lcCommits_other:`{{count}} commits reverted`,lcDeleted:`deleted {{items}}`,lcNothing:`nothing to do`,lcNote:`{{op}}: {{body}} — note: {{reason}}`,lcOk:`{{op}}: {{body}}`},ge={backTitle:`Back to activity`,expandTitle:`Expand task details`,collapseTitle:`Collapse task details`,eventLog:`Task event log`,newestFirst:`newest first`,noEvents:`No task activity has been recorded yet.`,workingOn:`working on this task`,assigned:`assigned`,metaPriority:`Priority`,metaType:`Type`,metaDuration:`Duration`,metaElapsed:`Elapsed`,metaRetries:`Retries`,metaWorktree:`Worktree`,workerModel:`Worker model`,runDefault:`run default: {{model}}`,runDefaultPlaceholder:`Run default`,runDefaultPlaceholderModel:`Run default ({{model}})`,verificationCmd:`Verification command`,gatesCompletion:`gates completion (exit 0)`,verifyPlaceholder:`e.g. pnpm vitest run path/to/file`,addVerify:`+ Add verification command`,description:`Description`,timeline:`Timeline`,dependsOn:`Depends on`,blocks:`Blocks`,newWorkerPlaceholder:`New worker name…`,confirmStop:`Stop this running task?`,confirmDelete:`Delete this task from the run?`,retryTitle:`Requeue this task to pending`,reassign:`Reassign`,stopTitle:`Abort the worker on this task`,splitTitle:`Split this task into sub-tasks delegated to separate workers`,split:`Split`,splitHint:`One sub-task per line — Title :: description (description optional)`,splitPlaceholder:`Write the data layer :: add the repository
4
4
  Wire the UI`,splitInto:`Split into sub-tasks`,deleteTitle:`Remove this not-started task from the run`},_e={phaseStart:`Start`,phaseInterview:`Interview`,phaseSpecReview:`Spec Review`,phasePlanning:`Planning`,phaseTaskReview:`Task Review`,phaseRunning:`Running`,phaseDone:`Done`,titleFallback:`New SDD Project`,questionsSuffix:`{{cur}}/{{max}} questions`,tasksSuffix:`{{count}} tasks`,runCfgTitle:`Run config — default model + fallback chain`,modelsLabel:`Models`,startRun:`Start Run`,defaultWorkerModel:`Default worker model`,leaderDefaultPlaceholder:`Leader / session default`,useSessionDefault:`Use session default`,fallbackChain:`Fallback chain`,appliesToAll:`Applies to every task. Override per-task from the live board after the run starts.`,parallelAgents:`Parallel agents`,isolateWorktrees:`Isolate in git worktrees`,worktreeOn:`Each task runs in its own worktree, squash-merged back on completion.`,worktreeOff:`Tasks run directly on the current branch (no isolation).`,planDecompose:`Auto-split large tasks`,planDecomposeOn:`Before dispatch, split tasks the atomicity engine flags as too large.`,planDecomposeOff:`Keep the approved task graph as-is (still split at runtime if a task fails).`,goalPrompt:`What do you want to build?`,goalPlaceholder:`e.g. Add OAuth login (Google + GitHub) with session management`,startingInterview:`Starting interview…`,startInterview:`Start Interview`,introBody:`An isolated agent interviews you to build a spec, decomposes it into a dependency-ordered task graph, then a real multi-agent fleet executes it — watch live on the board. If you refresh or restart, the interview resumes automatically.`,taskGraphSummary:`Task graph · {{count}} tasks, dependency-ordered`,dragToExplore:`drag to explore`,show:`show`,goalLabel:`Goal`,implementationPlan:`Implementation plan`,approveSpec:`Approve spec → plan implementation`,approveTasks:`Approve tasks`,approvePlan:`Approve plan`,backToQuestions:`Back to Questions`,backToQuestionsTitle:`Reject spec and return to questioning`,backToSpec:`Back to Spec`,backToSpecTitle:`Reject plan and return to spec review`,rewindToPhaseTitle:`Return to this phase to revise`,quickBestPractice:`Use Best Practice`,quickBestPracticeDirective:`Use standard industry best practices for this.`,generateSpecNow:`Generate Spec Now`,generateSpecNowTitle:`Generate the specification now with gathered requirements`,interviewProgress:`Interview Progress`,questionOf:`Question {{current}} of {{max}}`,minRequiredMet:`Minimum questions met ✓`,minRequiredRemaining:`{{count}} more required`,answerPlaceholder:`Answer the question…`,changePlaceholder:`Request a change…`,resumeBanner:`Resumed interview from a previous session — continue where you left off.`,openLiveBoard:`Open live board`,discardInterview:`Discard & start over`,discardTitle:`Abandon this interview and clear the saved session`},ve={emptyDir:`empty`,loadFailed:`Failed to load files: {{error}}`,expandAllTitle:`Expand all directories`,expandAll:`Expand all`,collapseAllTitle:`Collapse all directories`,collapse:`Collapse`,folders_one:`{{count}} folder`,folders_other:`{{count}} folders`,currentDirTitle:`Current directory: {{path}}`,navigateToTitle:`Navigate to {{path}}`,filesSuffix_one:`{{count}} file`,filesSuffix_other:`{{count}} files`,goToDir:`go to dir`,navigateParentTitle:`Navigate to parent directory of {{path}}`,parentDirectory:`parent directory`,noFiles:`No files found`,copyAbsPath:`Copy absolute path`,copyRelPath:`Copy relative path`,openInTerminal:`Open in terminal`,openInFileManager:`Open in file manager`,mentionInChat:`Mention in chat`,copyPath:`Copy path`,newFile:`New File`,newFolder:`New Folder`,newFileTitle:`Create new file`,newFolderTitle:`Create new folder`,delete:`Delete`,confirmDeleteDir:`Delete "{{name}}" and all its contents?`,rename:`Rename`,renameTitle:`Enter new name`,sortByName:`Name`,sortByNameTitle:`Sort by name (default)`,sortBySize:`Size`,sortBySizeTitle:`Sort by file size (largest first)`,search:`Search files`,searchPlaceholder:`Filter…`},ye={sendSelectionAction:`Send selection to chat`,noFilesOpen:`No files open`,selectToEdit:`Select a file from the explorer to start editing`,sendSelectedTitle:`Send selected lines to chat`,mentionFileTitle:`Mention this file in chat`,sendToChat:`Send to chat`,mentionFile:`Mention file`,loadingEditor:`Loading editor…`,selectTab:`Select a tab to view its content`},be={title:`File activity`,overview:`Overview`,changes:`Changes`,context:`Context`,logs:`Logs`,memory:`Memory`,lines:`lines`,resizeHint:`Drag to resize · double-click to reset`,refresh:`Refresh file evidence`,evidenceCount_one:`{{count}} event`,evidenceCount_other:`{{count}} events`,mutations30m:`Edits · 30m`,sessions:`Sessions`,actors:`Actors`,linkedWork:`Work links`,lifetimeTitle:`All history`,lifetimeChanges:`changes`,lifetimeSessions:`sessions`,lifetimeTasks:`tasks`,lifetimeBoards:`boards`,lifetimeSince:`since {{date}}`,lifetimeTools:`via {{tools}}`,workLinks:`Kanban / todo`,recentActivity:`Recent file activity`,events:`events`,noEvidence:`No activity has been attributed to this file yet.`,noSessions:`No session attribution yet.`,noActors:`No actor attribution yet.`,noWorkLinks:`No Kanban, SDD or todo link recorded.`,taskOrTodo:`Task / todo`,loadingEvidence:`Loading file evidence…`,gitToBuffer:`Git HEAD → current Monaco buffer`,savedToBuffer:`Last saved version → current Monaco buffer`,unsaved:`unsaved buffer`,level:{quiet:`quiet`,active:`active`,churn:`high churn`},analysisTitle:{quiet:`No recent edit churn`,active:`This file is being changed`,churn:`Repeated edits detected`},analysisBody:{quiet:`No attributed mutations were recorded in the last 30 minutes.`,active:`{{mutations}} mutations across {{actors}} actors and {{sessions}} sessions in the last 30 minutes.`,churn:`High churn: {{mutations}} mutations across {{actors}} actors and {{sessions}} sessions. Check overlapping work before the next edit.`}},xe={loading:`Loading analytics…`,heading:`Analytics Dashboard`,autoRefresh:`auto-refresh every 10s`,liveSessions:`Live Sessions`,agents:`Agents`,agentsActive:`{{count}} active`,totalEvents:`Total Events`,categoriesSub:`{{count}} categories`,toolCalls:`Tool Calls`,iterationsSub:`{{count}} iterations`,sessionCost:`Session Cost`,tokensSub:`{{input}} in / {{output}} out`,sessionDuration:`Session Duration`,messagesSub:`{{count}} messages`,eventsByCategory:`Events by Category`,noEvents:`No events recorded yet.`,topEvents:`Top Events`,activeSessionUsage:`Active Session Usage`,provider:`Provider`,model:`Model`,inputTokens:`Input Tokens`,outputTokens:`Output Tokens`,cacheRatio:`Cache Ratio`,filesRead:`Files Read`,noSession:`No active session or waiting for data…`,healthErrors:`Health & Errors`,errorEvents:`Error events`,warningEvents:`Warning events`,cacheHitRate:`Cache hit rate`,totalCategories:`Total categories`,waitingData:`Waiting for data…`,recentEvents:`Recent Events`,noRecentEvents:`No recent events. Interact with the UI to generate events.`},Se={heading:`Prompt library`,searchPlaceholder:`Search prompts…`,newPrompt:`+ New prompt`,all:`All`,recent:`🕘 Recent`,favorites:`★ Favorites`,noMatch:`No prompts match.`,newPromptHeading:`New prompt`,titlePlaceholder:`Title *`,descPlaceholder:`One-line description`,categoryPlaceholder:`Category`,tagsPlaceholder:`tags, comma, separated`,contentPlaceholder:`Prompt content * — use {{name}} for variables`,variables:`Variables`,addVar:`+ var`,varNamePlaceholder:`name`,varDescPlaceholder:`description`,removeVarTitle:`Remove variable`,required:`required`,multiline:`multiline`,enumPlaceholder:`enum: a, b, c`,savePrompt:`Save prompt`,saveFailed:`Could not save the prompt.`,titleContentRequired:`Title and content are required.`,toggleFavoriteTitle:`Toggle favorite`,selectOption:`— select —`,fillMissing:`Fill: {{missing}}`,insertIntoChat:`Insert into chat`,selectPromptHint:`Select a prompt to preview and insert.`},Ce={scopeProject:`Project`,scopeGlobal:`Global`,scopeBundled:`Bundled`,timeoutError:`Request timed out. Please try again.`,updateFailed:`Update failed`,saveFailed:`Save failed`,uninstallFailed:`Uninstall failed`,noSkillSelected:`No skill selected`,selectSkillHint:`Select a skill from the sidebar to view its documentation`,goToChat:`Go to chat`,openSourceRepo:`Open source repo`,copySourceUrl:`Copy source URL`,updatedLabel:`↑ Updated: {{list}}`,upToDateLabel:`— Up to date: {{list}}`,errorsLabel:`✗ {{list}}`,checkUpdatesTitle:`Check for updates`,exportTitle:`Export skill as .md`,editTitle:`Edit skill`,uninstallTitle:`Uninstall skill`,closeTitle:`Close and go to chat`,backTitle:`Go back`,forwardTitle:`Go forward`,relatedFiles:`Related Files`,references:`References`,goToSkillTitle:`Go to {{name}}`,loadingContent:`Loading skill content…`,editingLabel:`Editing {{name}}`,editStats:`{{lines}} lines · {{words}} words · {{chars}} chars`,charsWarningFmt:`⚠ {{used}} MB / {{limit}} MB`,draftSaved:`Draft saved`,draftRestored:`Draft restored`,discardDraft:`Discard draft`,splitViewTitle:`Split view`,hidePreviewTitle:`Hide preview`,contentPlaceholder:`Skill content (markdown)...`,loadFailed:`Failed to load skill content`,noContent:`No skill content available`,uninstallSkillHeading:`Uninstall Skill`,uninstallConfirm:`Uninstall {{name}}?`,uninstallRemovePath:`This will remove the skill from {{path}} and cannot be undone.`,uninstallAction:`Uninstall`},we={sessionStats:`Session Stats`,clients:`Clients`,input:`Input`,output:`Output`,cost:`Cost`,agentsSuffix:`agents`,upPrefix:`up {{time}}`,webuiClient:`WebUI Client`,disconnected:`Disconnected`,connected:`Connected`,tuiClient:`TUI Client`,terminal:`Terminal`,repl:`REPL`,coordinator:`COORDINATOR`,fleetSummary:`Fleet summary`,toolCallsLabel:`Tool calls`,tokensLabel:`Tokens`,coordinatingFleet:`Coordinating fleet`,donePrefix:`✓ done ·`,failedPrefix:`✕ failed ·`,seenPrefix:`seen {{time}}`,availableDesk:`Available desk`,mailboxHub:`Mailbox Hub`,unreadSuffix_one:`{{count}} unread`,unreadSuffix_other:`{{count}} unread`,allClear:`All clear`,total:`Total`,unreadLabel:`Unread`,liveActivity:`Live activity`,waitingActivity:`Waiting for activity…`,now:`now`,fleetHq:`WrongStack Fleet HQ`,live:`LIVE`,legendStatus:`Status`,legendActive:`Active`,legendIdle:`Idle`,legendError:`Error`,legendConnections:`Connections`,legendMail:`Mail`,legendTask:`Task`,legendStatusConn:`Status`,arrange:`Arrange`,arrangeTitle:`Arrange nodes to fit the available canvas`,feed:`Feed`,feedTitle:`Toggle the live activity feed`,broadcast:`Broadcast`,broadcastTitle:`Broadcast a message to every live session in this project`,broadcastToAll:`Broadcast to all sessions`,broadcastPlaceholder:`Message every live agent in this project…`,broadcastSendHint:`⌘/Ctrl+Enter to send`,openFullView:`Open full operation view`,rowStatus:`Status`,rowModel:`Model`,rowTool:`Tool`,rowIterations:`Iterations`,rowToolCalls:`Tool calls`,rowTokensIn:`Tokens in`,rowTokensOut:`Tokens out`,rowTokensTotal:`Tokens total`,rowContext:`Context`,rowCost:`Cost`,rowLastSeen:`Last seen`,rowSurface:`Surface`,rowBranch:`Branch`,rowPid:`PID`,rowDir:`Dir`,rowAgents:`Agents`,rowUptime:`Uptime`,rowConnections:`Connections`,rowTotalMessages:`Total messages`,rowUnread:`Unread`,recent:`Recent`,noSubject:`(no subject)`,fullOperationStream:`Full operation stream`,closeEsc:`Close (Esc)`,idleDesk:`Idle desk`,fleetHqLabel:`Fleet HQ`,clientsSuffix_one:`{{count}} client`,clientsSuffix_other:`{{count}} clients`,taskFallback:`task`,controlLabel:`control`},Te={installTitle:`Install skill`,createTitle:`Create skill`,exportTitle:`Export all skills as .zip`,checkUpdatesTitle:`Check for updates (all skills)`,searchPlaceholder:`Search skills…`,loading:`Loading…`,noSkills:`No skills installed`,noMatch:`No skills match filter`,noDescription:`No description`,scopeForeign:`Foreign`,installHeading:`Install Skill`,installHint:`Enter a GitHub repository reference (owner/repo) or full URL.`,installPlaceholder:`e.g. wrongstack/skill-name or https://github.com/owner/repo`,installScope:`Install scope:`,installBtn:`Install`,installedMsg:`Installed: {{names}}`,installFailed:`Installation failed`,createHeading:`Create Skill`,createHint:`Scaffold a new skill. The first line is the trigger; additional lines form the description.`,nameLabel:`Name`,namePlaceholder:`e.g. my-new-skill`,descLabel:`Description / Trigger`,descPlaceholder:`Use this skill when <trigger situation>.
5
- Triggers: user says "keyword", "another".`,saveIn:`Save in:`,createBtn:`Create Skill`,createdMsg:`Created: {{name}}`,createFailed:`Creation failed`},Ee={noEvents:`No events yet.`},De={pickHint:`Pick a kit — the agent will adhere to it.`,gallery:`Gallery`,galleryTitle:`Open live preview gallery`,stackTitle:`Target stack`,loading:`Loading kits…`,notFound:`No design kits found.`,bestFor:`Best for:`,light:`Light`,dark:`Dark`,tune:`Tune`,font:`Font`,set:`Set`,spaceGrotesk:`Space Grotesk…`,aaHeading:`Aa Heading`,theQuickBrownFoxJumpsOver:`The quick brown fox jumps over the lazy dog.`,primary:`Primary`,ghost:`Ghost`,badge:`Badge`,inputField:`Input field…`,radius:`Radius`,density:`Density`,motion:`Motion`},Oe={detached:`(detached)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktrees`,baseSuffix:` · base {{base}}`,baseLabel:`base`,cleanOrphans:`Clean orphans`,cleanOrphansTitle:`Remove all orphaned worktrees`,liveBusyTitle:`A run is live — stop it first`,rescanTitle:`Rescan`,removed_one:`Removed {{count}} worktree.`,removed_other:`Removed {{count}} worktrees.`,failed:`Failed`,mergedIntoBase:`Merged {{branch}} into base.`,conflictMerge:`Conflict merging {{branch}}: {{files}}`,seeGit:`see git`,mergeFailed:`Merge failed: {{reason}}`,unknownReason:`unknown`,mergeConfirmTitle:`Merge {{branch}} into {{base}}?`,mergeConfirmMsg:`Squash-merges this branch onto the base branch. Aborts cleanly if it conflicts.`,mergeAction:`Merge`,removeConfirmTitle:`Remove {{branch}}?`,removeConfirmMsg:`Force-removes the worktree checkout and deletes its branch. Un-merged work is discarded.`,empty:`No worktrees.`,emptyHint:`SDD / Goal runs create isolated worktrees here. Orphans from crashed runs show up too.`,actOpenTerm:`Open in terminal`,actOpenFolder:`Open folder`,actViewChanges:`View changes`,actMerge:`Merge to base`,actRemove:`Remove / discard`,live:`live`,noUncommitted:`No uncommitted changes`,commitsAhead_one:`{{count}} commit ahead`,commitsAhead_other:`{{count}} commits ahead`,more:`…{{count}} more`},ke={heading:`Office Map`,headingHint:`Visualize your fleet as an office floor plan with live agent status.`,statAgents:`Agents`,statMail:`Mail`,unreadSuffix:` unread`,sectionView:`View`,sectionDisplay:`Display`,sectionBackground:`Background`,sectionRecent:`Recent Activity`,eventsTrackedSuffix:` events tracked`,recentHint:`Mail sends, agent spawns, and status changes appear here.`,sectionShortcuts:`Shortcuts`,sectionLegend:`Legend`,hudLabel:`HUD`,hudDesc:`Show real-time session stats overlay`,hudToggle:`Toggle HUD`,minimapLabel:`Minimap`,minimapDesc:`Show the overview minimap`,minimapToggle:`Toggle minimap`,controlsLabel:`Controls`,controlsDesc:`Show zoom and fit controls`,controlsToggle:`Toggle controls`,animateLabel:`Animate edges`,animateDesc:`Animate flow on active connections`,animateToggle:`Toggle edge animation`,legendLabel:`Show legend`,legendDesc:`Display status and connection legend`,legendToggle:`Toggle legend`,feedLabel:`Live feed`,feedDesc:`Bottom strip of recent cross-process activity`,feedToggle:`Toggle live feed`,fitView:`Fit view`,zoomIn:`Zoom in`,zoomOut:`Zoom out`,resetZoom:`Reset zoom`,legendActive:`Active (running)`,legendIdle:`Idle`,legendError:`Error`,legendOffline:`Offline`,bg:{dots:`Dots`,lines:`Lines`,cross:`Cross`,none:`None`}},Ae={liveProjectOffice:`Live project office`,agents:`agents`,working:`working`,toolCalls:`tool calls`,office:`Office`,topology:`Topology`,officeDescription:`Live agent desks and work`,topologyDescription:`Clients, agents and connections`,team:`Team`,liveDesk:`Live desk & incoming work`,lastActions:`Recent work`,leadAgent:`Lead agent`,agent:`Agent`,callsCount:`{{count}} calls`,recent:`Recent`,noCalls:`No completed calls yet`,telemetryReconnect:`Reconnect this terminal to start tool history`,thinking:`Thinking`,waiting:`Waiting for work`,preparing:`Preparing the next action…`,deskReady:`Desk is ready`,toolCall:`Tool call`,execution:`Execution`,started:`Started`,duration:`Duration`,session:`Session`,target:`Target`,resultSize:`Result size`,lines:`lines`,bytes:`bytes`,tokens:`tokens`,input:`Input`,outputPreview:`Output preview`,readyTitle:`The office is ready`,readyBody:`Agents will take a desk as soon as they join this project.`,liveEvent:`live event stream`,connectedSessions_one:`{{count}} connected session`,connectedSessions_other:`{{count}} connected sessions`,detailHint:`click any action for exact input and result details`,officeBriefing:`Office briefing`,leaderPrompt:`Leader's latest prompt`,activeInstruction:`Active instruction`,telemetryWaiting:`Reconnect this terminal to receive live instructions`,syncWaiting:`waiting for sync`,todoTelemetryWaiting:`Reconnect this terminal to receive the live todo list`,taskNotReported:`Working, but no task description was reported`,noPrompt:`No prompt received in this session yet`,activeTodos:`Active todos`,todoProgress:`{{done}}/{{total}} done`,allTodosDone:`All todos completed`,noActiveTodos:`No active todos yet`,moreTodos:`+{{count}} more`,currentTask:`Current task`,task:`Task`,promptReceived:`Received`,todos:`Todos`,todoStatus:{pending:`Pending`,in_progress:`In progress`,completed:`Completed`},breakRoom:`Break room`,onBreak:`{{count}} on break`,desksEmpty:`Everyone is on break — the desks are ready for the next task`,files:`FILES`,read:`READ`,write:`WRITE`,edit:`EDIT`,term:`TERM`,live:`LIVE`,uniqueFilesTouched:`Unique files touched`,fileReads:`File reads`,filesWritten:`Files written`,filesEdited:`Files edited`,linesAddedAndRemoved:`Lines added and removed`,terminalCommands:`Terminal commands`,incomingAndOutgoingMail:`Incoming and outgoing mail`,sessionActivityTotals:`Session activity totals`,closeToolDetails:`Close tool details`,closeDetails:`Close details`,closeMailDetails:`Close mail details`,closeTaskDetails:`Close task details`,closeOfficeBriefing:`Close office briefing`,priority:`Priority`,route:`Route`},je={tabProject:`SDD Project`,tabBoard:`Live SDD Board`,tabSpecs:`Specifications`},Me={label:`Side panel`},Ne={deleteTitle:`Delete this memory?`,backToList:`Back to memory list`,copyId:`Copy memory ID`,deletedMemory:`Deleted memory`,anchorCursorHint:`Cursor line range matches this memory's anchor`,statusDeleted:`deleted`,statusSuperseded:`superseded`,restoreTitle:`Restore this memory to active status`,supersededJumpTitle:`This version is superseded — jump to the active version`,acceptSuggestionTitle:`Accept hygiene's deletion suggestion — memory will be forgotten`,rejectSuggestionTitle:`Reject the suggestion — memory stays as-is and may be re-suggested later`,updateTitle:`Update the memory's content — versioning creates a new active record`,promoteTitle:"Promote to `permanent` — hygiene will never surface this again",openRecordTitle:`Open the full record in MemoryManager`,fileDrawerAria:`File memory drawer`,requeryTitle:`Re-query for this file`,closeDrawerAria:`Close drawer`,closeDrawerTitle:`Close memory drawer`,showRecoverable:`Show recoverable (deleted)`,cursorBoostTitle:`Cursor boost`,fileScopedTitle:`File-scoped`,mentionedInTitle:`Mentioned in`,editorKnowledge:`Knowledge`,editorContentPlaceholder:`Example: WebUI state is owned by Zustand stores; server messages update those stores through singleton WebSocket handlers.`,editorImportance:`Importance`,editorConfidence:`Confidence`,editorFreshness:`Freshness`,editorAnchors:`Anchors`,editorSymbolPlaceholder:`Symbol name`,editorRelationships:`Relationships`,searchAria:`Search memories`,searchPlaceholder:`Search content, IDs, tags, anchors…`,clearSearchAria:`Clear search`,audienceFilterAria:`Filter audience-scoped only`,audienceFilterTitle:`Show only audience-scoped memories`,clearFiltersAria:`Clear all filters`,clearFiltersTitle:`Clear all filters`,allStatuses:`All statuses`,allKinds:`All kinds`,tagsLabel:`Tags`,popularTags:`Popular tags`,graphAria:`Memory relationship graph`,graphFullscreenAria:`Open full screen graph`,clearTracesTitle:`Clear all traces`,closePanelTitle:`Close panel`,traceMatched:`matched`,traceInjected:`injected`,traceFiltered:`filtered`,traceActive:`active`,traceExited:`exited`,traceScore:`score`,traceError:`error`,lifecycleAria:`Memory lifecycle live ledger`,listAria:`Memories`,emptyTitle:`Your project's long-term context`,emptyVerifiedAnchors:`Verified anchors`,emptyTypedRelations:`Typed relations`,emptyAgentRecall:`Agent recall`,lensesAria:`SAGE memory lenses`,loadingSage:`Loading SAGE`,loadingAudience:`Loading audience memories`,storeUnavailable:`Memory store unavailable`,backToChat:`Back to chat`,sageHeading:`SAGE`,refreshAria:`Refresh memories`,tabMemories:`Memories`,tabActive:`Active`,tabReview:`Review`,tabNeedsReview:`Needs review`,tabGraphEdges:`Graph edges`,reviewLoading:`Loading review queue…`,reviewLoadTimeout:`Review queue did not respond in time.`,reviewEmptyTitle:`No pending reviews`,reviewEmptyHint:`Hygiene and triage proposals show up here for accept/reject.`,reviewPendingCount_one:`{{count}} pending review`,reviewPendingCount_other:`{{count}} pending reviews`,reviewSelectAll:`Select all`,reviewClearSelection:`Clear selection`,reviewSelectOne:`Select review item`,reviewBulkAccept:`Accept selected`,reviewBulkKeep:`Keep selected`,libraryAria:`Memory library`,viewAria:`Memory view`,detailAria:`Memory detail`,fileForDrawerAria:`File for memory drawer`,cursorLabel:`cursor`,reviewLabel:`review`,hygieneReviewTitle:`Hygiene review: {{reason}} ({{days}}d old)`,updatedSuffix:`updated {{date}}`,actionRecover:`Recover`,actionGoToActive:`Go to active`,actionAcceptDeletion:`Accept Deletion`,actionKeep:`Keep`,actionUpdate:`Update`,actionMarkPermanent:`Mark as Permanent`,actionShowFull:`Show full`,itemLabel:`memories`,noFile:`(no file)`,memoriesCount_one:`{{count}} memory`,memoriesCount_other:`{{count}} memories`,pendingReviewCount_one:`{{count}} pending review`,pendingReviewCount_other:`{{count}} pending reviews`,supersededCount:`{{count}} superseded`,linesRange:`lines {{start}}–{{end}}`,emptyOpenFile:`Open a file to see its memories.`,loadingMemories:`Loading memories…`,errorPrefix:`Error: {{message}}`,emptyNoMemories:`No memories attached to {{file}} yet.`,pendingAccepting:`accepting…`,pendingKeeping:`keeping…`,pendingUpdating:`updating…`,pendingMarking:`marking…`,pendingRecovering:`recovering…`,deletedNeverPolicy:`This record is audit-only and carries an absolute ban: it can never enter LLM context.`,deletedEligiblePolicy:`The record is inactive and cannot be edited, but remains eligible as historical evidence when retrieval finds it relevant.`,deletingLabel:`Deleting…`,actionDeleteMemory:`Delete memory`,copiedNotice:`Memory ID copied.`,revisionSuffix:`revision {{n}}`,memoryRelationships:`Memory relationships`,captureMemory:`Capture a memory`,editMemory:`Edit memory`,editorCreateHint:`Add durable knowledge with retrieval metadata.`,editorEditHint:`Update content without losing provenance.`,createMemory:`Create memory`,saveChanges:`Save changes`,addAnchor:`Add anchor`,noAnchors:`No anchors yet — add one to improve retrieval precision`,loadingGraph:`loading real graph…`,graphStats:`{{nodes}} nodes · {{edges}} edges`,lifecycleHeading:`Memory lifecycle`,statusWaiting:`waiting`,statusLive:`live · {{count}}/100`,noMatching:`No matching memories`,buildGraph:`Build your memory graph`,clearFilters:`Clear filters`,createFirst:`Create first memory`,captureButton:`Capture memory`,memoryCaptured:`Memory captured.`,memoryUpdated:`Memory updated.`,liveStore:`live store`,reconnecting:`reconnecting`,newMemory:`New memory`,hideFileDrawer:`Hide file memory drawer`,showFileDrawer:`Show file memory drawer`,hideDrawer:`Hide drawer`,showDrawer:`Show drawer`,editorCharCount:`{{count}} chars`,editorContentLabel:`Memory content`,editorKind:`Kind`,editorScope:`Scope`,editorLifecycleStatus:`Lifecycle status`,editorSupersedes:`Supersedes`,editorContradicts:`Contradicts`,filterByStatus:`Filter by status`,filterByKind:`Filter by kind`,graphHeading:`Relationship map`,graphHeadingFull:`Relationship map — {{id}}`,graphOpenFullscreen:`Open full screen`,projectKnowledge:`project knowledge`,sageSubtitle:`Inspect, connect, curate, and retire durable context used across agent sessions.`,emptyBody:`Select a memory to inspect its metadata and relationship graph, or capture knowledge that future agents should retrieve automatically.`,tabDeleted:`Deleted`,fileDrawerLabel:`File drawer`,selectFilePlaceholder:`— select a file —`,memoryCountSummary:`{{shown}} of {{total}} memories`,updatedSortLabel:`updated ↓`,searchBreakdownAria:`Search breakdown`,searchBreakdownTitle:`Search: {{query}}`,searchBreakdownDual:`dual-channel`,searchBreakdownLexicalOnly:`lexical only`,searchBreakdownLoading:`Running dual-channel search…`,searchBreakdownEmpty:`No matches in either channel.`,searchBreakdownSourceLabel:`Source: {{source}}`,tabAllMemories:`All memories`,tabAllMemoriesHint:`Inspect, curate, retire`,tabAudience:`Audience-scoped`,tabAudienceHint:`Guidance routed to agents`,editorRelationshipsHint:`Reference exact memory IDs. Relationships are validated and graph edges are rebuilt by SAGE.`,editorTaskTypes:`Task types`,createAction:`Create`,mutationTimeout:`{{verb}} timed out. Your draft is still here.`,loadingSageContent:`Loading SAGE content`,injectorActiveInContext:`Active in context`,injectorInjectionHistory:`Injection history`,injectorContextTransitions:`Context transitions`,metaCreated:`Created`,metaUpdated:`Updated`,metaLastAccessed:`Last accessed`,metaLastVerified:`Last verified`,referencedUnavailable:`Referenced memory is unavailable`,emptyFiltered:`Change the filters or clear the search query.`,emptyCapture:`Capture durable facts, decisions, conventions, and file-bound notes for every agent.`,memoryUnavailable:`Memory is unavailable or has been removed.`,staleConflicts:`stale + conflicts`},Pe={enableLayer:`Enable this boundary layer`,outsideScope:`Outside scope`,askPermission:`Ask permission`,alwaysBlock:`Always block`,allow:`Allow`,allowSelectors:`Allow selectors`,denySelectors:`Deny selectors`,crossPathSelectors:`Shell “Allow” is opaque and can cross path selectors.`,removeLayer:`Remove layer`,taskInspector:`Task inspector`,task:`Task`,dispatched:`Dispatched`,collapseDetails:`Collapse task details`,taskBoundary:`Task boundary`,title:`Title`,managedStage:`Managed stage`,status:`Status`,priority:`Priority`,type:`Type`,labelsCommaSeparated:`Labels (comma separated)`,dueDatePlaceholder:`Due date (ISO or YYYY-MM-DD)`,estimatedHours:`Estimated hours`,actualHours:`Actual hours`,selectBlockingTasks:`Select blocking tasks…`,selectSequentialChain:`Add tasks to a sequential chain…`,enforceChainOrder:`Enforce chain order as dependencies`,assignmentReason:`Change / assignment reason (persisted to activity)`,managedLifecycle:`Managed lifecycle transition`,kanbanAgentTransition:`Kanban Agent transition`,completedAction:`Completed action / reviewer action`,progressComment:`Truthful progress comment (required)`,evidenceUrl:`Evidence attachment URL`,source:`Source`,taskId:`Task ID`,run:`Run`,column:`Column`,primaryModelSource:`Primary model source`,selectProviderModel:`Select exact provider / model…`,fallbackProfile:`Fallback profile (first model is primary)`,selectProfile:`Select configured profile…`,fallbackModels:`Fallback models`,addFallbackModel:`Add fallback model…`,role:`Role`,selectRole:`Select a role…`,assignSkills:`Assign required skills…`,restrictTools:`Restrict to specific tools…`,agentNameOptional:`Agent name (optional)`,retryPolicy:`Retry policy`,maxAttempts:`Max attempts`,costCeilingUsd:`Cost ceiling USD`,grantCapability:`Grant a capability…`,targetBoard:`Target board`,boardPresence:`Board presence`,liveBoardUsers:`Live board users`,kanbanAgent:`Kanban Agent`,watchThisBoard:`Watch this board`,supervisorEngine:`Supervisor engine`,kanbanAgentModelSource:`Kanban Agent model source`,supervisorSkills:`Supervisor skills`,forceLoadSkills:`Force-load agentic skills…`,extraFallbackModels:`Extra fallback models`,optionalFallbacks:`Optional ordered fallbacks…`,queueHealth:`Queue health`,claimableTasks:`Claimable tasks`,runningAssignments:`Running assignments`,inReview:`In review`,manuallyBlocked:`Manually blocked`,failedTasks:`Failed tasks`,blockedByDeps:`Ready/pending tasks blocked by dependencies`,expiredLeases:`Expired lease assignments`,healthy:`healthy`,costCeilingSum:`Sum of costCeilingUsd for running/queued tasks`,liveRunSteer:`Live run — steer it from here`,openLiveRun:`Open the live run view (SDD Hub)`,runAsLiveJob:`Run this board as a live agent job:`,startAsGoal:`Start as Goal`,startAsSdd:`Start as SDD`,runControls:`Run controls`,workerModel:`Worker model`,setModelForTask:`Set model for this task…`,newWorkerName:`New worker name`,duration:`Duration`,liveRun:`Live run`,lastResult:`Last result`,definitionOfDone:`Definition of Done`,failingChecks:`Failing checks`,evidenceMissing:`Evidence missing (agent/council checks without backing refs)`,needsDecomposition:`Needs decomposition`,decompositionPending:`Decomposition proposals awaiting approval`,noOutstanding:`No outstanding verification or decomposition issues on this board.`,kanban:`Kanban`,newBoard:`New board`,createBoard:`Create board`,deleteTask:`Delete task`,runFailed:`run failed`,splitPendingApproval:`split pending approval`,newTask:`New task`,addTask:`Add task`,duplicateBoard:`Duplicate board`,boardHistory:`Board history`,noHistory:`No history yet`,confirmDelete:`Confirm?`,confirmDeleteBoard:`Click again to confirm board deletion`,deleteBoard:`Delete board`,boardBoundary:`Board boundary`,noBoardSelected:`No kanban board selected.`,expandDetails:`Expand task details`,elapsed:`Elapsed`,assigned:`Assigned`,configuredAgentRoute:`the configured agent route`,subagent:`Subagent`,checkedAgo:`checked {{ago}} ago`,notChecked:`not checked`,auditInterval:`Audit interval (seconds)`,statusReady:`ready`,statusRunning:`running`,statusReview:`review`,statusBlocked:`blocked`,statusFailed:`failed`,statusBlockedByDeps:`blocked by deps`,statusStale:`stale`,runningCost:"~${{cost}} running cost",actionPause:`Pause`,actionResume:`Resume`,actionRetryFailed:`Retry failed`,actionStop:`Stop`,actionReassign:`Reassign`,actionRunNow:`Run now`,deleteTaskAria:`Delete task: {{title}}`,confirmDeleteTask:`Click again to confirm task deletion`,confirmDeleteTaskAria:`Confirm delete: {{title}}`,moveTaskToColumn:`Move {{title}} to column`,activityNoteTemplate:`{{action}} from WebUI to {{target}}.`},Fe={heading:`Cron Jobs`,subtitle:`Scheduled recurring tasks managed by the cron plugin.`,statusDisabled:`Disabled`,statusOverdue:`Overdue`,statusActive:`Active`,jobCount_one:`{{count}} job`,jobCount_other:`{{count}} jobs`,enabledCount:`{{count}} enabled`,overdueCount:`{{count}} overdue`,totalRuns:`{{count}} total runs`,maxConcurrent:`max {{count}} concurrent`,emptyTitle:`No cron jobs scheduled.`,emptyUse:`Use`,emptyToAdd:`to add one.`,thStatus:`Status`,thName:`Name`,thInterval:`Interval`,thRuns:`Runs`,thNextRun:`Next Run`,thLastRun:`Last Run`,thAction:`Action`,lastFiredAtTitle:`Last fired at {{time}}`,footerUse:`Use`,footerToAdd:`to add,`,footerToRemove:`to remove.`},Ie={refreshRosterData:`Refresh roster data`,liveEmpty:`Agents appear here when subagents spawn`,fleetInspector:`Fleet Inspector`,openAgentsPanel:`Open Agents panel`,toolCalls:`Tool Calls`,running:`Running`,projectAgents:`Project Agents`,createOrCloneTitle:`Create or Clone Project Agent`,createOrCloneHint:`Inherit any roster agent as a template, then develop an independent identity, runtime policy and learned history.`,cloneFromRole:`Clone from roster role`,cloneHint:`Prompt, tools, skills and defaults are inherited. Learning and later edits remain isolated to the new agent.`,displayName:`Display name`,descriptionPlaceholder:`Own X, Y and Z workflows for this project and verify their results.`,creating:`Creating…`,noCustomizations:`No customizations yet`,selectAgentEmpty:`Select an agent to edit customizations`,saving:`Saving…`,saveFailed:`Save failed`,failed:`Failed`,learningResumed:`Automatic learning resumed`,optimizationEmptyToast:`Optimization produced an empty result. Try again.`,noActiveModelToast:`No active model on server. Optimization sent to the chat agent.`,learningsEmpty:`Learning entries appear when agents capture output`,allRosterAgents:`All Roster Agents`,optimizing:`Optimizing…`,paused:`paused`,selectLearningAgent:`Select an agent to view learning details`,learningOn:`Learning on`,lastCapture:`Last Capture`,lifetimeCaptures:`Lifetime Captures`,hitRate:`Hit Rate`,neverUsed:`Never Used`,learningsLimitExceeded:`Learned data exceeds soft limit ({{bytes}}B / 8,192B). Optimize to synthesize raw entries into a consolidated document and reduce context volume.`,newPending:`new pending`,viewAction:`View`,applying:`Applying…`,searchPlaceholder:`Search agents by name, role, or description…`,maxIterations:`Max Iterations`,maxToolCalls:`Max Tool Calls`,projectCustomizations:`Project Customizations`,learnedEntries:`learned entries`,teachFailed:`Teach failed`,selectRoleEmpty:`Select a role to inspect or edit`,captureLearned:`Capture learned`,teachThisAgent:`Teach this agent`,teachPlaceholder:`Describe what you want this agent to do better… e.g. 'This agent should always verify versions from npm before recommending'`,heading:`Agent Roster`,headerSummary:`{{customized}} customized · {{entries}} learned entries`,tabLive:`Live Fleet`,tabCatalog:`Roster Catalog`,tabLearning:`Self-Learning`,tabCustomize:`Customization`,learning:`learning`,learningPaused:`Learning paused`,autoLearningPaused:`Automatic learning paused`,toolsCount_one:`{{count}} tool`,toolsCount_other:`{{count}} tools`,maxItShort:`{{value}} max it`,customizedBadge:`Customized`,needsSummary:`⚠ Needs summary`,timeout:`Timeout`,learnedEntriesCount_one:`{{count}} learned entry`,learnedEntriesCount_other:`{{count}} learned entries`,sessionCapturesCount_one:`{{count}} session capture`,sessionCapturesCount_other:`{{count}} session captures`,noAgentsMatch:`No agents match "{{query}}"`,footerRosterRoles_one:`roster role`,footerRosterRoles_other:`roster roles`,footerCustomized:`customized`,footerTotalLearned_one:`total learned entry`,footerTotalLearned_other:`total learned entries`,clone:`+ Clone`,abc:`ABC`,abcGeneratedFromName:`abc (generated from name)`,roleIdOptional:`Role id (optional)`,purpose:`Purpose`,taskTypesCommaOrOnePer:`Task types (comma or one per line)`,cancel:`Cancel`,selectAnAgentToEditCustomizations:`Select an agent to edit customizations`,llmImprove:`LLM Improve`,reset:`Reset`,editIdentityMd:`Edit identity.md`,editLearnedMd:`Edit learned.md`,editConfigJson:`Edit config.json`,runtimePolicy:`Runtime policy`,retry:`Retry`,noSelfLearningDataYet:`No self-learning data yet`,review:`review →`,selectAnAgentToViewLearning:`Select an agent to view learning details`,entries:`Entries`,size:`Size`,optimizeLearnings:`Optimize Learnings`,keep:`Keep`,drop:`Drop`,describeACommandPatternOrBehavior:`Describe a command, pattern, or behavior you want this agent to remember.`,eGAlwaysUsePnpmForThisProject:`e.g. Always use pnpm for this project`,teach:`Teach`,noActiveFleetAgents:`No active fleet agents`,clear:`Clear`,agentsTotal:`agents total`,leader:`Leader`,iterations:`Iterations`,cost:`Cost`,context:`Context`,contextWindow:`Context Window`,error:`Error`,filterAll:`All ({{count}})`,filterRunning:`Running ({{count}})`,filterDone:`Done ({{count}})`,filterFailed:`Failed ({{count}})`,optimizeAll:`Optimize All ({{count}})`,policyUpdateFailed:`Policy update failed`,noRawEntries:`No raw entries to optimize yet.`,optimizedOk:`Optimized. Consolidated knowledge updated.`,emptySynthesis:`The model returned an empty result. Nothing was changed — try again.`,consolidatedWithModel:`Learnings consolidated with {{model}}.`,consolidatedPlain:`Learnings consolidated.`,resetConfirm:`Reset all project-specific data for agent "{{role}}"?`,loadCustomizationFailed:`Failed to load customization`,loadRuntimePolicyFailed:`Failed to load runtime policy`,runtimePolicySaveFailed:`Runtime policy save failed`,llmImprovementFailed:`LLM improvement failed`,agentCreationFailed:`Agent creation failed`,noActiveModelMsg:`No active model on server — optimization sent to chat agent instead.`,optimizationFailed:`Optimization failed`,bulkOptimizationFailed:`Bulk optimization failed`,taskTypesPlaceholder:`X workflow
5
+ Triggers: user says "keyword", "another".`,saveIn:`Save in:`,createBtn:`Create Skill`,createdMsg:`Created: {{name}}`,createFailed:`Creation failed`},Ee={noEvents:`No events yet.`},De={pickHint:`Pick a kit — the agent will adhere to it.`,gallery:`Gallery`,galleryTitle:`Open live preview gallery`,stackTitle:`Target stack`,loading:`Loading kits…`,notFound:`No design kits found.`,bestFor:`Best for:`,light:`Light`,dark:`Dark`,tune:`Tune`,font:`Font`,set:`Set`,spaceGrotesk:`Space Grotesk…`,aaHeading:`Aa Heading`,theQuickBrownFoxJumpsOver:`The quick brown fox jumps over the lazy dog.`,primary:`Primary`,ghost:`Ghost`,badge:`Badge`,inputField:`Input field…`,radius:`Radius`,density:`Density`,motion:`Motion`},Oe={detached:`(detached)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktrees`,baseSuffix:` · base {{base}}`,baseLabel:`base`,cleanOrphans:`Clean orphans`,cleanOrphansTitle:`Remove all orphaned worktrees`,liveBusyTitle:`A run is live — stop it first`,rescanTitle:`Rescan`,removed_one:`Removed {{count}} worktree.`,removed_other:`Removed {{count}} worktrees.`,failed:`Failed`,mergedIntoBase:`Merged {{branch}} into base.`,conflictMerge:`Conflict merging {{branch}}: {{files}}`,seeGit:`see git`,mergeFailed:`Merge failed: {{reason}}`,unknownReason:`unknown`,mergeConfirmTitle:`Merge {{branch}} into {{base}}?`,mergeConfirmMsg:`Squash-merges this branch onto the base branch. Aborts cleanly if it conflicts.`,mergeAction:`Merge`,removeConfirmTitle:`Remove {{branch}}?`,removeConfirmMsg:`Force-removes the worktree checkout and deletes its branch. Un-merged work is discarded.`,empty:`No worktrees.`,emptyHint:`SDD / Goal runs create isolated worktrees here. Orphans from crashed runs show up too.`,actOpenTerm:`Open in terminal`,actOpenFolder:`Open folder`,actViewChanges:`View changes`,actMerge:`Merge to base`,actRemove:`Remove / discard`,live:`live`,noUncommitted:`No uncommitted changes`,commitsAhead_one:`{{count}} commit ahead`,commitsAhead_other:`{{count}} commits ahead`,more:`…{{count}} more`},ke={heading:`Office Map`,headingHint:`Visualize your fleet as an office floor plan with live agent status.`,statAgents:`Agents`,statMail:`Mail`,unreadSuffix:` unread`,sectionView:`View`,sectionDisplay:`Display`,sectionBackground:`Background`,sectionRecent:`Recent Activity`,eventsTrackedSuffix:` events tracked`,recentHint:`Mail sends, agent spawns, and status changes appear here.`,sectionShortcuts:`Shortcuts`,sectionLegend:`Legend`,hudLabel:`HUD`,hudDesc:`Show real-time session stats overlay`,hudToggle:`Toggle HUD`,minimapLabel:`Minimap`,minimapDesc:`Show the overview minimap`,minimapToggle:`Toggle minimap`,controlsLabel:`Controls`,controlsDesc:`Show zoom and fit controls`,controlsToggle:`Toggle controls`,animateLabel:`Animate edges`,animateDesc:`Animate flow on active connections`,animateToggle:`Toggle edge animation`,legendLabel:`Show legend`,legendDesc:`Display status and connection legend`,legendToggle:`Toggle legend`,feedLabel:`Live feed`,feedDesc:`Bottom strip of recent cross-process activity`,feedToggle:`Toggle live feed`,fitView:`Fit view`,zoomIn:`Zoom in`,zoomOut:`Zoom out`,resetZoom:`Reset zoom`,legendActive:`Active (running)`,legendIdle:`Idle`,legendError:`Error`,legendOffline:`Offline`,bg:{dots:`Dots`,lines:`Lines`,cross:`Cross`,none:`None`}},Ae={liveProjectOffice:`Live project office`,agents:`agents`,working:`working`,toolCalls:`tool calls`,office:`Office`,topology:`Topology`,officeDescription:`Live agent desks and work`,topologyDescription:`Clients, agents and connections`,team:`Team`,liveDesk:`Live desk & incoming work`,lastActions:`Recent work`,leadAgent:`Lead agent`,agent:`Agent`,callsCount:`{{count}} calls`,recent:`Recent`,noCalls:`No completed calls yet`,telemetryReconnect:`Reconnect this terminal to start tool history`,thinking:`Thinking`,waiting:`Waiting for work`,preparing:`Preparing the next action…`,deskReady:`Desk is ready`,toolCall:`Tool call`,execution:`Execution`,started:`Started`,duration:`Duration`,session:`Session`,target:`Target`,resultSize:`Result size`,lines:`lines`,bytes:`bytes`,tokens:`tokens`,input:`Input`,outputPreview:`Output preview`,readyTitle:`The office is ready`,readyBody:`Agents will take a desk as soon as they join this project.`,liveEvent:`live event stream`,connectedSessions_one:`{{count}} connected session`,connectedSessions_other:`{{count}} connected sessions`,detailHint:`click any action for exact input and result details`,officeBriefing:`Office briefing`,leaderPrompt:`Leader's latest prompt`,activeInstruction:`Active instruction`,telemetryWaiting:`Reconnect this terminal to receive live instructions`,syncWaiting:`waiting for sync`,todoTelemetryWaiting:`Reconnect this terminal to receive the live todo list`,taskNotReported:`Working, but no task description was reported`,noPrompt:`No prompt received in this session yet`,activeTodos:`Active todos`,todoProgress:`{{done}}/{{total}} done`,allTodosDone:`All todos completed`,noActiveTodos:`No active todos yet`,moreTodos:`+{{count}} more`,currentTask:`Current task`,task:`Task`,promptReceived:`Received`,todos:`Todos`,todoStatus:{pending:`Pending`,in_progress:`In progress`,completed:`Completed`},breakRoom:`Break room`,onBreak:`{{count}} on break`,desksEmpty:`Everyone is on break — the desks are ready for the next task`,files:`FILES`,read:`READ`,write:`WRITE`,edit:`EDIT`,term:`TERM`,live:`LIVE`,uniqueFilesTouched:`Unique files touched`,fileReads:`File reads`,filesWritten:`Files written`,filesEdited:`Files edited`,linesAddedAndRemoved:`Lines added and removed`,terminalCommands:`Terminal commands`,incomingAndOutgoingMail:`Incoming and outgoing mail`,sessionActivityTotals:`Session activity totals`,closeToolDetails:`Close tool details`,closeDetails:`Close details`,closeMailDetails:`Close mail details`,closeTaskDetails:`Close task details`,closeOfficeBriefing:`Close office briefing`,priority:`Priority`,route:`Route`},je={tabProject:`SDD Project`,tabBoard:`Live SDD Board`,tabSpecs:`Specifications`},Me={label:`Side panel`},Ne={deleteTitle:`Delete this memory?`,backToList:`Back to memory list`,copyId:`Copy memory ID`,deletedMemory:`Deleted memory`,anchorCursorHint:`Cursor line range matches this memory's anchor`,statusDeleted:`deleted`,statusSuperseded:`superseded`,restoreTitle:`Restore this memory to active status`,supersededJumpTitle:`This version is superseded — jump to the active version`,acceptSuggestionTitle:`Accept hygiene's deletion suggestion — memory will be forgotten`,rejectSuggestionTitle:`Reject the suggestion — memory stays as-is and may be re-suggested later`,updateTitle:`Update the memory's content — versioning creates a new active record`,promoteTitle:"Promote to `permanent` — hygiene will never surface this again",openRecordTitle:`Open the full record in MemoryManager`,fileDrawerAria:`File memory drawer`,requeryTitle:`Re-query for this file`,closeDrawerAria:`Close drawer`,closeDrawerTitle:`Close memory drawer`,showRecoverable:`Show recoverable (deleted)`,cursorBoostTitle:`Cursor boost`,fileScopedTitle:`File-scoped`,mentionedInTitle:`Mentioned in`,editorKnowledge:`Knowledge`,editorContentPlaceholder:`Example: WebUI state is owned by Zustand stores; server messages update those stores through singleton WebSocket handlers.`,editorImportance:`Importance`,editorConfidence:`Confidence`,editorFreshness:`Freshness`,editorAnchors:`Anchors`,editorSymbolPlaceholder:`Symbol name`,editorRelationships:`Relationships`,searchAria:`Search memories`,searchPlaceholder:`Search content, IDs, tags, anchors…`,clearSearchAria:`Clear search`,audienceFilterAria:`Filter audience-scoped only`,audienceFilterTitle:`Show only audience-scoped memories`,clearFiltersAria:`Clear all filters`,clearFiltersTitle:`Clear all filters`,allStatuses:`All statuses`,allKinds:`All kinds`,tagsLabel:`Tags`,popularTags:`Popular tags`,graphAria:`Memory relationship graph`,graphFullscreenAria:`Open full screen graph`,clearTracesTitle:`Clear all traces`,closePanelTitle:`Close panel`,traceMatched:`matched`,traceInjected:`injected`,traceFiltered:`filtered`,traceActive:`active`,traceExited:`exited`,traceScore:`score`,traceError:`error`,lifecycleAria:`Memory lifecycle live ledger`,listAria:`Memories`,emptyTitle:`Your project's long-term context`,emptyVerifiedAnchors:`Verified anchors`,emptyTypedRelations:`Typed relations`,emptyAgentRecall:`Agent recall`,lensesAria:`SAGE memory lenses`,loadingSage:`Loading SAGE`,loadingAudience:`Loading audience memories`,loadingVectorMemory:`Loading vector memory`,storeUnavailable:`Memory store unavailable`,backToChat:`Back to chat`,sageHeading:`SAGE`,refreshAria:`Refresh memories`,tabMemories:`Memories`,tabActive:`Active`,tabReview:`Review`,tabNeedsReview:`Needs review`,tabGraphEdges:`Graph edges`,reviewLoading:`Loading review queue…`,reviewLoadTimeout:`Review queue did not respond in time.`,reviewEmptyTitle:`No pending reviews`,reviewEmptyHint:`Hygiene and triage proposals show up here for accept/reject.`,reviewPendingCount_one:`{{count}} pending review`,reviewPendingCount_other:`{{count}} pending reviews`,reviewSelectAll:`Select all`,reviewClearSelection:`Clear selection`,reviewSelectOne:`Select review item`,reviewBulkAccept:`Accept selected`,reviewBulkKeep:`Keep selected`,libraryAria:`Memory library`,viewAria:`Memory view`,detailAria:`Memory detail`,fileForDrawerAria:`File for memory drawer`,cursorLabel:`cursor`,reviewLabel:`review`,hygieneReviewTitle:`Hygiene review: {{reason}} ({{days}}d old)`,updatedSuffix:`updated {{date}}`,actionRecover:`Recover`,actionGoToActive:`Go to active`,actionAcceptDeletion:`Accept Deletion`,actionKeep:`Keep`,actionUpdate:`Update`,actionMarkPermanent:`Mark as Permanent`,actionShowFull:`Show full`,itemLabel:`memories`,noFile:`(no file)`,memoriesCount_one:`{{count}} memory`,memoriesCount_other:`{{count}} memories`,pendingReviewCount_one:`{{count}} pending review`,pendingReviewCount_other:`{{count}} pending reviews`,supersededCount:`{{count}} superseded`,linesRange:`lines {{start}}–{{end}}`,emptyOpenFile:`Open a file to see its memories.`,loadingMemories:`Loading memories…`,errorPrefix:`Error: {{message}}`,emptyNoMemories:`No memories attached to {{file}} yet.`,pendingAccepting:`accepting…`,pendingKeeping:`keeping…`,pendingUpdating:`updating…`,pendingMarking:`marking…`,pendingRecovering:`recovering…`,deletedNeverPolicy:`This record is audit-only and carries an absolute ban: it can never enter LLM context.`,deletedEligiblePolicy:`The record is inactive and cannot be edited, but remains eligible as historical evidence when retrieval finds it relevant.`,deletingLabel:`Deleting…`,actionDeleteMemory:`Delete memory`,copiedNotice:`Memory ID copied.`,revisionSuffix:`revision {{n}}`,memoryRelationships:`Memory relationships`,captureMemory:`Capture a memory`,editMemory:`Edit memory`,editorCreateHint:`Add durable knowledge with retrieval metadata.`,editorEditHint:`Update content without losing provenance.`,createMemory:`Create memory`,saveChanges:`Save changes`,addAnchor:`Add anchor`,noAnchors:`No anchors yet — add one to improve retrieval precision`,loadingGraph:`loading real graph…`,graphStats:`{{nodes}} nodes · {{edges}} edges`,lifecycleHeading:`Memory lifecycle`,statusWaiting:`waiting`,statusLive:`live · {{count}}/100`,noMatching:`No matching memories`,buildGraph:`Build your memory graph`,clearFilters:`Clear filters`,createFirst:`Create first memory`,captureButton:`Capture memory`,memoryCaptured:`Memory captured.`,memoryUpdated:`Memory updated.`,liveStore:`live store`,reconnecting:`reconnecting`,newMemory:`New memory`,hideFileDrawer:`Hide file memory drawer`,showFileDrawer:`Show file memory drawer`,hideDrawer:`Hide drawer`,showDrawer:`Show drawer`,editorCharCount:`{{count}} chars`,editorContentLabel:`Memory content`,editorKind:`Kind`,editorScope:`Scope`,editorLifecycleStatus:`Lifecycle status`,editorSupersedes:`Supersedes`,editorContradicts:`Contradicts`,filterByStatus:`Filter by status`,filterByKind:`Filter by kind`,graphHeading:`Relationship map`,graphHeadingFull:`Relationship map — {{id}}`,graphOpenFullscreen:`Open full screen`,projectKnowledge:`project knowledge`,sageSubtitle:`Inspect, connect, curate, and retire durable context used across agent sessions.`,emptyBody:`Select a memory to inspect its metadata and relationship graph, or capture knowledge that future agents should retrieve automatically.`,tabDeleted:`Deleted`,fileDrawerLabel:`File drawer`,selectFilePlaceholder:`— select a file —`,memoryCountSummary:`{{shown}} of {{total}} memories`,updatedSortLabel:`updated ↓`,searchBreakdownAria:`Search breakdown`,searchBreakdownTitle:`Search: {{query}}`,searchBreakdownDual:`dual-channel`,searchBreakdownLexicalOnly:`lexical only`,searchBreakdownLoading:`Running dual-channel search…`,searchBreakdownEmpty:`No matches in either channel.`,searchBreakdownSourceLabel:`Source: {{source}}`,tabAllMemories:`All memories`,tabAllMemoriesHint:`Inspect, curate, retire`,tabAudience:`Audience-scoped`,tabAudienceHint:`Guidance routed to agents`,tabVectorMemory:`Vector memory`,tabVectorMemoryHint:`Semantic embedding store`,editorRelationshipsHint:`Reference exact memory IDs. Relationships are validated and graph edges are rebuilt by SAGE.`,editorTaskTypes:`Task types`,createAction:`Create`,mutationTimeout:`{{verb}} timed out. Your draft is still here.`,loadingSageContent:`Loading SAGE content`,injectorActiveInContext:`Active in context`,injectorInjectionHistory:`Injection history`,injectorContextTransitions:`Context transitions`,metaCreated:`Created`,metaUpdated:`Updated`,metaLastAccessed:`Last accessed`,metaLastVerified:`Last verified`,referencedUnavailable:`Referenced memory is unavailable`,emptyFiltered:`Change the filters or clear the search query.`,emptyCapture:`Capture durable facts, decisions, conventions, and file-bound notes for every agent.`,memoryUnavailable:`Memory is unavailable or has been removed.`,staleConflicts:`stale + conflicts`},Pe={enableLayer:`Enable this boundary layer`,outsideScope:`Outside scope`,askPermission:`Ask permission`,alwaysBlock:`Always block`,allow:`Allow`,allowSelectors:`Allow selectors`,denySelectors:`Deny selectors`,crossPathSelectors:`Shell “Allow” is opaque and can cross path selectors.`,removeLayer:`Remove layer`,taskInspector:`Task inspector`,task:`Task`,dispatched:`Dispatched`,collapseDetails:`Collapse task details`,taskBoundary:`Task boundary`,title:`Title`,managedStage:`Managed stage`,status:`Status`,priority:`Priority`,type:`Type`,labelsCommaSeparated:`Labels (comma separated)`,dueDatePlaceholder:`Due date (ISO or YYYY-MM-DD)`,estimatedHours:`Estimated hours`,actualHours:`Actual hours`,selectBlockingTasks:`Select blocking tasks…`,selectSequentialChain:`Add tasks to a sequential chain…`,enforceChainOrder:`Enforce chain order as dependencies`,assignmentReason:`Change / assignment reason (persisted to activity)`,managedLifecycle:`Managed lifecycle transition`,kanbanAgentTransition:`Kanban Agent transition`,completedAction:`Completed action / reviewer action`,progressComment:`Truthful progress comment (required)`,evidenceUrl:`Evidence attachment URL`,source:`Source`,taskId:`Task ID`,run:`Run`,column:`Column`,primaryModelSource:`Primary model source`,selectProviderModel:`Select exact provider / model…`,fallbackProfile:`Fallback profile (first model is primary)`,selectProfile:`Select configured profile…`,fallbackModels:`Fallback models`,addFallbackModel:`Add fallback model…`,role:`Role`,selectRole:`Select a role…`,assignSkills:`Assign required skills…`,restrictTools:`Restrict to specific tools…`,agentNameOptional:`Agent name (optional)`,retryPolicy:`Retry policy`,maxAttempts:`Max attempts`,costCeilingUsd:`Cost ceiling USD`,grantCapability:`Grant a capability…`,targetBoard:`Target board`,boardPresence:`Board presence`,liveBoardUsers:`Live board users`,kanbanAgent:`Kanban Agent`,watchThisBoard:`Watch this board`,supervisorEngine:`Supervisor engine`,kanbanAgentModelSource:`Kanban Agent model source`,supervisorSkills:`Supervisor skills`,forceLoadSkills:`Force-load agentic skills…`,extraFallbackModels:`Extra fallback models`,optionalFallbacks:`Optional ordered fallbacks…`,queueHealth:`Queue health`,claimableTasks:`Claimable tasks`,runningAssignments:`Running assignments`,inReview:`In review`,manuallyBlocked:`Manually blocked`,failedTasks:`Failed tasks`,blockedByDeps:`Ready/pending tasks blocked by dependencies`,expiredLeases:`Expired lease assignments`,healthy:`healthy`,costCeilingSum:`Sum of costCeilingUsd for running/queued tasks`,liveRunSteer:`Live run — steer it from here`,openLiveRun:`Open the live run view (SDD Hub)`,runAsLiveJob:`Run this board as a live agent job:`,startAsGoal:`Start as Goal`,startAsSdd:`Start as SDD`,runControls:`Run controls`,workerModel:`Worker model`,setModelForTask:`Set model for this task…`,newWorkerName:`New worker name`,duration:`Duration`,liveRun:`Live run`,lastResult:`Last result`,definitionOfDone:`Definition of Done`,failingChecks:`Failing checks`,evidenceMissing:`Evidence missing (agent/council checks without backing refs)`,needsDecomposition:`Needs decomposition`,decompositionPending:`Decomposition proposals awaiting approval`,noOutstanding:`No outstanding verification or decomposition issues on this board.`,kanban:`Kanban`,newBoard:`New board`,createBoard:`Create board`,deleteTask:`Delete task`,runFailed:`run failed`,splitPendingApproval:`split pending approval`,newTask:`New task`,addTask:`Add task`,duplicateBoard:`Duplicate board`,boardHistory:`Board history`,noHistory:`No history yet`,confirmDelete:`Confirm?`,confirmDeleteBoard:`Click again to confirm board deletion`,deleteBoard:`Delete board`,boardBoundary:`Board boundary`,noBoardSelected:`No kanban board selected.`,expandDetails:`Expand task details`,elapsed:`Elapsed`,assigned:`Assigned`,configuredAgentRoute:`the configured agent route`,subagent:`Subagent`,checkedAgo:`checked {{ago}} ago`,notChecked:`not checked`,auditInterval:`Audit interval (seconds)`,statusReady:`ready`,statusRunning:`running`,statusReview:`review`,statusBlocked:`blocked`,statusFailed:`failed`,statusBlockedByDeps:`blocked by deps`,statusStale:`stale`,runningCost:"~${{cost}} running cost",actionPause:`Pause`,actionResume:`Resume`,actionRetryFailed:`Retry failed`,actionStop:`Stop`,actionReassign:`Reassign`,actionRunNow:`Run now`,deleteTaskAria:`Delete task: {{title}}`,confirmDeleteTask:`Click again to confirm task deletion`,confirmDeleteTaskAria:`Confirm delete: {{title}}`,moveTaskToColumn:`Move {{title}} to column`,activityNoteTemplate:`{{action}} from WebUI to {{target}}.`},Fe={heading:`Cron Jobs`,subtitle:`Scheduled recurring tasks managed by the cron plugin.`,statusDisabled:`Disabled`,statusOverdue:`Overdue`,statusActive:`Active`,jobCount_one:`{{count}} job`,jobCount_other:`{{count}} jobs`,enabledCount:`{{count}} enabled`,overdueCount:`{{count}} overdue`,totalRuns:`{{count}} total runs`,maxConcurrent:`max {{count}} concurrent`,emptyTitle:`No cron jobs scheduled.`,emptyUse:`Use`,emptyToAdd:`to add one.`,thStatus:`Status`,thName:`Name`,thInterval:`Interval`,thRuns:`Runs`,thNextRun:`Next Run`,thLastRun:`Last Run`,thAction:`Action`,lastFiredAtTitle:`Last fired at {{time}}`,footerUse:`Use`,footerToAdd:`to add,`,footerToRemove:`to remove.`},Ie={refreshRosterData:`Refresh roster data`,liveEmpty:`Agents appear here when subagents spawn`,fleetInspector:`Fleet Inspector`,openAgentsPanel:`Open Agents panel`,toolCalls:`Tool Calls`,running:`Running`,projectAgents:`Project Agents`,createOrCloneTitle:`Create or Clone Project Agent`,createOrCloneHint:`Inherit any roster agent as a template, then develop an independent identity, runtime policy and learned history.`,cloneFromRole:`Clone from roster role`,cloneHint:`Prompt, tools, skills and defaults are inherited. Learning and later edits remain isolated to the new agent.`,displayName:`Display name`,descriptionPlaceholder:`Own X, Y and Z workflows for this project and verify their results.`,creating:`Creating…`,noCustomizations:`No customizations yet`,selectAgentEmpty:`Select an agent to edit customizations`,saving:`Saving…`,saveFailed:`Save failed`,failed:`Failed`,learningResumed:`Automatic learning resumed`,optimizationEmptyToast:`Optimization produced an empty result. Try again.`,noActiveModelToast:`No active model on server. Optimization sent to the chat agent.`,learningsEmpty:`Learning entries appear when agents capture output`,allRosterAgents:`All Roster Agents`,optimizing:`Optimizing…`,paused:`paused`,selectLearningAgent:`Select an agent to view learning details`,learningOn:`Learning on`,lastCapture:`Last Capture`,lifetimeCaptures:`Lifetime Captures`,hitRate:`Hit Rate`,neverUsed:`Never Used`,learningsLimitExceeded:`Learned data exceeds soft limit ({{bytes}}B / 8,192B). Optimize to synthesize raw entries into a consolidated document and reduce context volume.`,newPending:`new pending`,viewAction:`View`,applying:`Applying…`,searchPlaceholder:`Search agents by name, role, or description…`,maxIterations:`Max Iterations`,maxToolCalls:`Max Tool Calls`,projectCustomizations:`Project Customizations`,learnedEntries:`learned entries`,teachFailed:`Teach failed`,selectRoleEmpty:`Select a role to inspect or edit`,captureLearned:`Capture learned`,teachThisAgent:`Teach this agent`,teachPlaceholder:`Describe what you want this agent to do better… e.g. 'This agent should always verify versions from npm before recommending'`,heading:`Agent Roster`,headerSummary:`{{customized}} customized · {{entries}} learned entries`,tabLive:`Live Fleet`,tabCatalog:`Roster Catalog`,tabLearning:`Self-Learning`,tabCustomize:`Customization`,learning:`learning`,learningPaused:`Learning paused`,autoLearningPaused:`Automatic learning paused`,toolsCount_one:`{{count}} tool`,toolsCount_other:`{{count}} tools`,maxItShort:`{{value}} max it`,customizedBadge:`Customized`,needsSummary:`⚠ Needs summary`,timeout:`Timeout`,learnedEntriesCount_one:`{{count}} learned entry`,learnedEntriesCount_other:`{{count}} learned entries`,sessionCapturesCount_one:`{{count}} session capture`,sessionCapturesCount_other:`{{count}} session captures`,noAgentsMatch:`No agents match "{{query}}"`,footerRosterRoles_one:`roster role`,footerRosterRoles_other:`roster roles`,footerCustomized:`customized`,footerTotalLearned_one:`total learned entry`,footerTotalLearned_other:`total learned entries`,clone:`+ Clone`,abc:`ABC`,abcGeneratedFromName:`abc (generated from name)`,roleIdOptional:`Role id (optional)`,purpose:`Purpose`,taskTypesCommaOrOnePer:`Task types (comma or one per line)`,cancel:`Cancel`,selectAnAgentToEditCustomizations:`Select an agent to edit customizations`,llmImprove:`LLM Improve`,reset:`Reset`,editIdentityMd:`Edit identity.md`,editLearnedMd:`Edit learned.md`,editConfigJson:`Edit config.json`,runtimePolicy:`Runtime policy`,retry:`Retry`,noSelfLearningDataYet:`No self-learning data yet`,review:`review →`,selectAnAgentToViewLearning:`Select an agent to view learning details`,entries:`Entries`,size:`Size`,optimizeLearnings:`Optimize Learnings`,keep:`Keep`,drop:`Drop`,describeACommandPatternOrBehavior:`Describe a command, pattern, or behavior you want this agent to remember.`,eGAlwaysUsePnpmForThisProject:`e.g. Always use pnpm for this project`,teach:`Teach`,noActiveFleetAgents:`No active fleet agents`,clear:`Clear`,agentsTotal:`agents total`,leader:`Leader`,iterations:`Iterations`,cost:`Cost`,context:`Context`,contextWindow:`Context Window`,error:`Error`,filterAll:`All ({{count}})`,filterRunning:`Running ({{count}})`,filterDone:`Done ({{count}})`,filterFailed:`Failed ({{count}})`,optimizeAll:`Optimize All ({{count}})`,policyUpdateFailed:`Policy update failed`,noRawEntries:`No raw entries to optimize yet.`,optimizedOk:`Optimized. Consolidated knowledge updated.`,emptySynthesis:`The model returned an empty result. Nothing was changed — try again.`,consolidatedWithModel:`Learnings consolidated with {{model}}.`,consolidatedPlain:`Learnings consolidated.`,resetConfirm:`Reset all project-specific data for agent "{{role}}"?`,loadCustomizationFailed:`Failed to load customization`,loadRuntimePolicyFailed:`Failed to load runtime policy`,runtimePolicySaveFailed:`Runtime policy save failed`,llmImprovementFailed:`LLM improvement failed`,agentCreationFailed:`Agent creation failed`,noActiveModelMsg:`No active model on server — optimization sent to chat agent instead.`,optimizationFailed:`Optimization failed`,bulkOptimizationFailed:`Bulk optimization failed`,taskTypesPlaceholder:`X workflow
6
6
  Y analysis
7
7
  Z verification`},Le={generic:{name:`Generic Project Agent`,summary:`Flexible template that can be cloned into independently learning project roles.`},"audit-log":{name:`Audit Log`,summary:`Analyzes session logs, event streams, and system traces.`},"bug-hunter":{name:`Bug Hunter`,summary:`Scans code for bugs, code smells, and anti-patterns.`},"refactor-planner":{name:`Refactor Planner`,summary:`Analyzes code structure and produces phased refactoring plans.`},"security-scanner":{name:`Security Scanner`,summary:`Scans code, configs, and dependencies for security issues.`},critic:{name:`Critic`,summary:`Evaluates decisions, plans, and implementations.`},"shadow-agent":{name:`Shadow Agent`,summary:`Background monitoring agent that watches fleet health.`},executor:{name:`Executor`,summary:`General-purpose task executor for delegated work.`},chimera:{name:`Chimera`,summary:`Post-session code quality review of changed files.`},researcher:{name:`Researcher`,summary:`Web research and data gathering specialist.`},"tech-stack":{name:`Tech Stack Validator`,summary:`Validates package/library/framework choices.`},orchestrator:{name:`Orchestrator`,summary:`Coordinates multi-agent task execution.`},supervisor:{name:`Supervisor`,summary:`Oversees subagent execution and handles escalations.`},"quality-gate":{name:`Quality Gate`,summary:`Enforces quality gates on implementations.`},architect:{name:`Architect`,summary:`Makes design and architecture decisions.`},"prompt-engineer":{name:`Prompt Engineer`,summary:`Designs and optimizes system prompts.`},mnemosyne:{name:`Mnemosyne`,summary:`Memory curator — reviews and maintains SAGE integrity.`},autophase:{name:`AutoPhase`,summary:`Manages multi-phase autonomous task execution.`}},Re={heading:`Custom Roster`,loading:`Loading custom roster…`,loadFailed:`Failed to load roster`,invalidJson:`Invalid JSON`,noImprovement:`No improvement suggestion generated.`,improveFailed:`LLM improve failed`,behaviorSaved:`Behavior saved to learned.md`,saveFailedServer:`Save failed — see server logs`,emptyTitle:`No Custom Roster Agents`,emptyBody:`Project-custom agents appear here when you create or edit files under`,createExecutorIdentity:`+ Create executor identity`,entries:`Entries`,size:`Size`,sessionCaptures:`Session Captures`,editIdentity:`Edit identity.md`,editLearned:`Edit learned.md`,editConfig:`Edit config.json`,reviewEntries:`Review entries ({{count}})`,reviewLearnedEntries:`Review learned entries ({{kept}}/{{total}} kept)`,applySelection:`Apply selection`,keep:`✓ Keep`,drop:`✗ Drop`,identityPlaceholder:`# Project identity for {{role}}
8
8
 
@@ -2,7 +2,7 @@ var e={chat:`Sitzung`,agents:`Agents`,history:`Verlauf`,files:`Dateien`,changes:
2
2
 
3
3
  Doppelklick zum Umbenennen`,unfavorite:`Aus Favoriten entfernen`,markFavorite:`Als Favorit markieren`,deleteSessionConfirmTitle:`Sitzung löschen?`,deleteSessionConfirmBody:`"{{name}}" wird von der Festplatte entfernt. Dies kann nicht rückgängig gemacht werden.`,deleteSessionTitle:`Sitzung löschen`,rename:`Sitzung umbenennen`,renameAction:`Umbenennen`,resume:`Sitzung fortsetzen`,resumeShort:`Fortsetzen`,workspaceEyebrow:`Sitzungssteuerung`,workspaceTitle:`Sitzungen`,workspaceHint:`Alle Projektgespräche durchsuchen, prüfen, anheften und fortsetzen.`,tabs:{history:`Verlauf`,live:`Live-Sitzungen`},filters:{all:`Alle`,favorites:`Favoriten`,active:`Aktiv`,completed:`Abgeschlossen`,issues:`Probleme`},status:{active:`Aktiv`,completed:`Abgeschlossen`,error:`Fehler`,timeout:`Zeitüberschreitung`,aborted:`Abgebrochen`,saved:`Gespeicherte Sitzung`},sort:{label:`Sitzungen sortieren`,recent:`Neueste`,tokens:`Meiste Token`,activity:`Meiste Aktivität`},stats:{sessions:`Sitzungen`,tokens:`Token`,tools:`Werkzeugaufrufe`,files:`Geänderte Dateien`,errors:`Fehler`},inspect:`Sitzung untersuchen`},f={actions:{abort:`Abbrechen`,newSession:`Neue Sitzung`,export:`Export`,compact:`Komprimieren`,newSessionConfirm:`Sind Sie sicher?`,newSessionConfirmMessage:`Ein Auftrag wird noch ausgeführt. Trotzdem eine neue Sitzung starten?`,newSessionTitle:`Neue Sitzung starten (Ctrl+N)`,exportTitle:`Chat als Markdown exportieren (Ctrl+E)`,compactTitle:`Kontextfenster komprimieren`,clearTitle:`Kontext löschen (Ctrl+L)`},model:`Modell`,modelTitle:`Modell ändern (Ctrl+M)`,context:`Kontext`,contextTitle:`Klicken für eine Kontextaufschlüsselung`,sessionLabel:`Sitzung`,stats:{messages:`Nachrichten`,elapsed:`Verstrichen`,tokens:`Tokens`,cost:`Kosten`,iteration:`Iteration`,agents:`Agents`,tokensSub:`{{in}} rein / {{out}} raus`,iterationOf:`von {{max}}`,agentsRunning:`{{count}} läuft`},plan:`Plan`,planComplete:`{{pct}}% fertig`,pinned:`Angeheftet`,quickSettings:`Schnelleinstellungen`,autonomy:`Autonomie`,autonomyTitle:`Automatische nächste Schritte stoppen. Ausschalten, um die autonome Schleife des Agenten anzuhalten`,autonomyOptions:{off:`Aus`,suggest:`Vorschlagen`,auto:`Auto`,eternal:`Endlos`,"eternal-parallel":`Endlos Parallel`},yolo:`YOLO-Modus`,yoloTitle:`Tool-Bestätigungsdialoge überspringen`,refine:`Prompts verfeinern`,refineTitle:`Prompts vor dem Senden umschreiben`,sound:`Ton bei Fertigstellung`,soundTitle:`Sanften Gong abspielen, wenn ein Lauf endet`,sessionId:`Sitzung {{id}}`},p={status:{running:`läuft`,completed:`fertig`,failed:`fehlgeschlagen`,timeout:`Zeitüberschreitung`,stopped:`gestoppt`},leader:`Leader`,providerModel:`Anbieter / Modell`,elapsed:`Verstrichen`,running:`läuft…`,iterations:`Iterationen`,toolCalls:`Tool-Aufrufe`,cost:`Kosten`,budgetExtensions:`Budget-Erweiterungen`,activity:`Aktivität`,contextWindow:`Kontextfenster`,tokensUsed:`{{used}} / {{max}} Tokens`,toolRunning:`läuft…`,lastTool:`letztes Tool`,error:`Fehler`,finalOutput:`Endgültige Ausgabe`,copyOutput:`Ausgabe kopieren`,liveOutput:`Live-Ausgabe`,waitingOutput:`Warte auf Ausgabe…`,outputHint:`Die Ausgabe erscheint hier, sobald der Agent Text streamt.`,toolLog:`Tool-Log ({{count}} Aufrufe)`,fail:`Fehlschlag`,moreTools:`+{{count}} weitere Tools`,cardRunning:`läuft {{tool}}`,cardLastTool:`zuletzt: {{tool}}`,contextPercent:`Kontext {{pct}}%`,doneCount:`{{count}} fertig`,errCount:`{{count}} Fehler`,statusRunning:`läuft`,statusDone:`fertig`,statusFailed:`fehlgeschlagen`,statusTimeout:`Timeout`,statusStopped:`gestoppt`,hittingLimitTitle:`⚡ erreicht {{kind}}-Limit ({{used}}/{{limit}})`,budgetExt_one:`{{count}} Budget-Erweiterung`,budgetExt_other:`{{count}} Budget-Erweiterungen`,extendedTimes_one:`Agent hat sein Budget {{count}}-mal wegen langer Tasks erweitert`,extendedTimes_other:`Agent hat sein Budget {{count}}-mal wegen langer Tasks erweitert`,errorLabel:`Fehler`,failureReason:`Fehlergrund`,failed:`Fehlgeschlagen`},m={wsNotConnected:`WebSocket nicht verbunden`,noData:`Keine Debug-Daten empfangen. Der Server unterstützt möglicherweise kein Context-Debugging.`,title:`Kontext-Aufschlüsselung`,windowUsage:`Fensterauslastung`,contextMode:`Kontextmodus`,fetching:`Kontext-Aufschlüsselung wird geladen…`,systemPrompt:`System-Prompt`,tools:`Tools`,messages:`Nachrichten`,tokenAllocation:`Token-Verteilung`,systemTitle:`System: {{tokens}}`,toolsTitle:`Tools: {{tokens}}`,messagesTitle:`Nachrichten: {{tokens}}`,system:`System`,toolBreakdown:`Tool-Aufschlüsselung`,messagesSummary:`Nachrichten ({{count}}) — {{total}} Tok`,barWithTokens:`Kontextfenster: {{tokens}} / {{max}} Token ({{pct}})`,barPct:`Kontextfenster: {{pct}}`,barClick:` — für Aufschlüsselung klicken`},h={header:`✨ Prompt verfeinern`,autoSend:`Auto-Send in {{count}} s`,cancelTitle:`Abbrechen (Esc)`,editLabel:`Verfeinerten Prompt bearbeiten:`,editPlaceholder:`Verfeinerten Prompt bearbeiten ...`,useEdit:`Bearbeitung verwenden`,original:`Original`,refined:`Verfeinert`,yourLanguage:`(deine Sprache)`,refinedTitle:`Klicken oder Enter drücken, um diese Version zu verwenden`,copyToInputTitle:`In die Eingabe kopieren, ohne zu senden`,english:`Englisch`,englishTitle:`e drücken, um die englische Version zu verwenden`,hintRefined:`verfeinert`,hintEnglish:`Englisch`,hintOriginal:`original`,hintEdit:`bearbeiten`,hintRetry:`erneut versuchen`,edit:`Bearbeiten`,useRefined:`Verfeinerte verwenden`,langOriginal:`Original`,langEnglish:`English`,languageTitle:`Standardsprache der Verfeinerung wechseln – Original oder Englisch`,yolo:`YOLO`,yoloTitle:`Bestätigungsabfragen für Tools überspringen`,refining:`Refining…`,sendAsIs:`Send as-is`,failedHeader:`Refinement failed`,retry:`Retry (more time)`,retryBetter:`Besser neu versuchen`,retryFallback:`Retry with {{model}}`,pickModel:`Another model…`,pickModelTitle:`Verfeinerung mit einem anderen Modell wiederholen`,pickModelHint:`Wählen Sie einen Anbieter bzw. ein Modell für die erneute Verfeinerung. Ihr Sitzungsmodell bleibt unverändert.`,countdownHeader:`✨ Verfeinerung beginnt in…`,countdownYourMessage:`Deine Nachricht`,countdownHint:`Verfeinerung beginnt in {{seconds}}s. Klicke „Unverändert senden“, um zu überspringen.`,countdownStartNow:`Jetzt verfeinern`,countdownSendAsIs:`Unverändert senden`,cancelRefineSendOriginal:`Abbrechen & Original senden`},g={heading:`Spezifikationen`,subtitle:`Spezifikationsgetriebene Entwicklung anzeigen und verwalten`,empty:`Keine Specs gefunden. Mit {{command}} eine erstellen.`,tasks:`Aufgaben ({{count}})`,doneCount:`{{count}} erledigt`,runningCount:`{{count}} läuft`,pendingCount:`{{count}} ausstehend`,runTitle:`Dieses Spec als Live-Multi-Agenten-Job ausführen`,run:`Ausführen`,runAsSdd:`Als SDD ausführen`,runAsSddTitle:`Multi-Agenten-SDD-Parallel-Run starten (Worktrees, Verifikation, Live-Board)`,runAsGoal:`Als Goal ausführen`,runAsGoalTitle:`Phasierten Goal-Run aus den Task-Spalten dieser Spec starten`,list:`Liste`,graph:`Graph`,loadingTasks:`Aufgaben werden geladen…`},_={heading:`F5-Resilienz-Prüfer`,subtitle:`Bestätigt, dass die letzte aktive Sitzung, das Transkript und der UI-Zustand einen Page-Refresh überstehen. Öffne diese Ansicht und drücke F5 — jede grüne Zeile sollte grün bleiben.`,recordProbe:`Probe aufzeichnen`,latestSession:`Letzte aktive Sitzung`,restoredLocal:`Aus localStorage wiederhergestellt`,sessionIdExtra:`Session-ID: {{id}}`,noSessionYet:`es wurde noch keine Sitzung gestartet`,activePointer:`Aktiver Session-Zeiger`,lastVisited:`lastVisitedAt-Zeitstempel`,never:`nie`,persistedEnv:`Persistierte Umgebung`,transcriptRehydrate:`Chat-Transkript-Rehydratation`,localTranscript:`Lokales Transkript wiederhergestellt`,messagesExtra:`{{count}} Nachrichten, {{queued}} in Warteschlange`,noMessages:`0 Nachrichten`,noBleed:`Kein Session-Übergriff`,bleedExtra:`gebunden={{bound}} vs aktiv={{active}}`,transcriptBinds:`Transkript bindet an die aktive Sitzung`,uiWorkspace:`UI-Workspace`,noneValue:`(keine)`,payloadSize:`localStorage-Payload (4 Schlüssel): {{count}} Zeichen`,probeLog:`Probe-Protokoll`,noProbes:`Noch keine Probes — drücke oben "Probe aufzeichnen" oder F5 in dieser Ansicht, um einen Rehydratations-Check aufzuzeichnen.`,simulatedF5:`simuliertes F5: persist rehydrate erneut ausführen`},v={status:{pending:`Ausstehend`,in_progress:`In Arbeit`,review:`Review`,failed:`Fehlgeschlagen`,completed:`Erledigt`,queued:`In Warteschlange`,blocked:`Blockiert`,cancelled:`Abgebrochen`},newTaskTitle:`Neue Aufgabe`,newTaskPlaceholder:`Aufgabentitel…`,addTask:`Aufgabe hinzufügen`,empty:`Noch keine Phasen — starte einen Goal-Lauf, um das Board zu füllen.`,summary:`{{phases}} Phasen · {{tasks}} Aufgaben`,phases:`Phasen`,statusTab:`Status`,dropHere:`Aufgaben hier ablegen`,emptySpec:`Noch keine Aufgaben in dieser Spec.`,depGraphHeading:`Abhängigkeitsgraph`,worktreePrefix:`Worktree: {{branch}}`},y={trendUp:`Steigend`,trendDown:`Fallend`,trendStable:`Stabil`,heading:`Debug-Dashboard`,subtitle:`Echtzeit-Monitoring für WrongStack WebUI`,refreshLabel:`Aktualisieren:`,lastUpdated:`Zuletzt aktualisiert: {{time}}`,fetchFailed:`Metriken konnten nicht abgerufen werden`,fileWatcher:`File-Watcher`,watcherStatus:`Watcher-Status`,running:`Läuft`,stopped:`Gestoppt`,activeProjects:`Aktive Projekte`,projectsWatched:`Überwachte Projekte`,fileChanges:`Dateiänderungen`,totalDetected:`Gesamt erkannt`,filesProcessed:`Verarbeitete Dateien`,afterHash:`Nach Hash-Filter`,broadcastsSent:`Gesendete Broadcasts`,toClients:`An WebUI-Clients`,debounceResets:`Debounce-Zurücksetzungen`,rapidWrites:`Schnelle aufeinanderfolgende Schreibvorgänge`,avgDebounce:`Ø Debounce-Verzögerung`,actualDelay:`Tatsächliche Verzögerung`,totalDelay:`Gesamtverzögerung`,sumDelays:`Summe aller Verzögerungen`,browserPerf:`Browser-Leistung`,heapUsed:`Heap verwendet`,jsHeap:`JavaScript-Heap`,heapTotal:`Heap gesamt`,totalHeap:`Gesamte Heap-Größe`,pageUptime:`Seiten-Laufzeit`,sinceLoad:`Seit Seitenladung`,rawData:`Rohdaten`},b={allowlistTitle:`Modell-Allowlist`,modelCount_one:`{{count}} Modell`,modelCount_other:`{{count}} Modelle`,using:`Verwendet`,noModelPicked:`(kein Modell gewählt)`,clearAllowlist:`Allowlist löschen`,clearAllowlistAria:`Gespeicherte Allowlist für {{provider}} löschen`,refresh:`Vom Server aktualisieren`,refreshAria:`Modellliste für {{provider}} aktualisieren`,probing:`Prüfe…`,searchPlaceholder:`Modelle suchen…`,use:`Verwenden`,useModelAria:`Modell {{model}} für {{provider}} verwenden`},x={expandChip:`{{label}} ausklappen`,collapseChip:`{{label}} einklappen`,ahead:`{{count}} voraus`,behind:`{{count}} hinterher`,linesAdded:`{{count}} Zeilen hinzugefügt`,linesDeleted:`{{count}} Zeilen gelöscht`,untrackedFiles:`{{count}} unversionierte Dateien`,customizeTitle:`Dock-Chips anpassen`,dockChips:`Dock-Chips`,noActiveGoal:`Kein aktives Ziel`,noActiveGoalDetail:`Starte ein Ziel aus dem Chat oder dem Goal-Befehl.`,closeWorkspaceInspector:`Workspace-Inspektor schließen`,goal:`Ziel`,goalState:`Zielstatus`,goalStateDetail:`Aktives Ziel und Fortschritt`,fleet:`Flotte`,fleetDetail:`Live-Agentenroster und Aktivität`,work:`Arbeit`,workDetail:`To-dos, Aufgaben und Plan`,worktrees:`Worktrees`,worktreesDetail:`Parallele Branches und Lanes`,collab:`Collab`,collabDetail:`Sitzungsteilnehmer und Steuerung`,inspector:`Workspace-Inspektor`,inspectorNamed:`Workspace-Inspektor: {{name}}`,workspace:`Workspace`,workspaceDetails:`Workspace-Details`},S={leaderBadge:`LEADER`,iters:`Iter.`,tools:`Tools`,activityBins:`Aktivität (12 Bins)`,streamingOutput:`Streaming-Ausgabe`,recentTools:`Letzte Tools`,finalOutput:`Endgültige Ausgabe`,heading:`Agents-Monitor`,prevAgent:`Vorheriger Agent`,nextAgent:`Nächster Agent`,closeAria:`Agents-Monitor schließen`,hintPage:`←→ Seite`,hintNavigate:`↑↓ Liste navigieren`,hintEsc:`Esc schließen`},C={resize:`Terminals skalieren`,labelSingular:`Terminal`,labelPlural:`Terminals`,projectShell:`Projekt-Shell`,maxTerminals:`Maximal {{count}} Terminals`,newTerminal:`Neues Terminal`,restart:`Aktives Terminal neu starten`,closeAll:`Alle Terminals schließen`,closeDock:"Terminal-Dock schließen (Ctrl+`)",closeTab:`{{name}} schließen`,processExited:`[Prozess mit Code {{code}} beendet]`},w={liveStream:`Live-Stream`,events_one:`{{count}} Ereignis`,events_other:`{{count}} Ereignisse`,interruptTitle:`Diesen Agenten kooperativ beim nächsten Schritt stoppen (kein Process-Kill)`,interrupt:`⏸ Unterbrechen`,interrupting:`…`,loading:`Sitzung wird geladen…`,done:`✓✓ erledigt`,read:`✓ gelesen`,delivered:`⏳ zugestellt`,agent:`Agent`,you:`Du`,working:`{{name}} · arbeitet`,claude:`Claude`,priority:`Priorität`,placeholder:`{{label}} → an diese Sitzung…`,send:`Senden`,sendHint:`⌘/Ctrl+Enter zum Senden · beim nächsten Iterationsschritt des Agenten sichtbar`,msgType:{steerLabel:`🔄 Lenken`,steerHint:`Verhalten während der Aufgabe anpassen`,askLabel:`❓ Fragen`,askHint:`Frage — erwartet eine Antwort`,assignLabel:`📋 Zuweisen`,assignHint:`Eine zu erledigende Aufgabe`,noteLabel:`💬 Notiz`,noteHint:`Zur Info, nicht dringend`},sentRunning:`Zugestellt — der laufende Agent sieht es beim nächsten Schritt`,sentIdle:`Zugestellt — Ziel ist inaktiv; erscheint im Postfach, gelesen beim nächsten Lauf`,sentFailed:`Fehlgeschlagen: {{error}}`,interruptReason:`Operator hat Stopp aus Fleet HQ angefordert`,interruptSent:`Unterbrechung gesendet — Agent stoppt beim nächsten Schritt (kein Kill)`,interruptFailed:`Unterbrechung fehlgeschlagen: {{error}}`},T={empty:`Noch keine Seiteneffekte aufgezeichnet.`,emptyHint:`Bash-Befehle, Paketinstallationen und Netzwerkanfragen erscheinen hier.`,heading:`Seiteneffekte`,exportTitle:`Gefilterte Seiteneffekte als CSV exportieren`,all:`Alle`,colTime:`Zeit`,colTool:`Tool`,colRisk:`Risiko`,colDetail:`Detail`,colOutcome:`Ergebnis`},E={elapsedHm:`vor {{h}}h {{m}}m`,elapsedMs:`vor {{m}}m {{s}}s`,elapsedS:`vor {{s}}s`,heading:`Fleet-Monitor`,clientsHeading:`Verbundene Clients`,terminal:`Terminal`,webui:`Web-UI`,repl:`REPL`,totalConnected:`insgesamt verbunden`,mailQueue:`Mail-Warteschlange`,total:`Gesamt`,open:`Offen`,unread:`Ungelesen`,agents:`Agents`,messagesSub:`Nachrichten`,uncompletedSub:`unabgeschlossen`,waitingSub:`wartend`,ofTotal:`von {{count}} gesamt`,agentRoster:`Agenten-Roster`,liveMailActivity:`Live-Mail-Aktivität`,noActivity:`Keine aktuelle Aktivität`,mailboxAgents:`Mailbox-Agents`,noMailboxAgents:`Keine Agents registriert`,moreCount:`+{{count}} weitere`,agentFallback:`Agent`,fleetAgents:`Fleet-Agents`,noFleetAgents:`Keine Fleet-Agents aktiv`,iter:`Iter.`,mailType:{sent:`Gesendet`,delivered:`Zugestellt`,read:`Gelesen`,completed:`Abgeschlossen`}},D={status:{pending:`ausstehend`,queued:`in Warteschlange`,in_progress:`läuft`,blocked:`blockiert`,review:`Review`,failed:`fehlgeschlagen`,completed:`erledigt`,cancelled:`abgebrochen`},activityHeading:`Aktivität`,feedEmpty:`Noch nichts — Ereignisse erscheinen hier, sobald Agents Aufgaben übernehmen und abschließen.`,destroyTitle:`SDD-Projekt zerstören?`,destroyDesc:`Das löscht den Run und seine Arbeit. Nicht rückgängig zu machen (das optionale Commit-Revert ist historienwahrend).`,stopRun:`Run stoppen`,stopRunAgents_one:`Run stoppen ({{count}} Agent arbeitet)`,stopRunAgents_other:`Run stoppen ({{count}} Agents arbeiten)`,removeWorktreesAll:`Alle Git-Worktrees + wstack/ap/*-Branches entfernen — inklusive nicht gemergter Arbeit`,removeWorktreesCount_one:`{{count}} Git-Worktree + wstack/ap/*-Branches entfernen — inklusive nicht gemergter Arbeit`,removeWorktreesCount_other:`{{count}} Git-Worktrees + wstack/ap/*-Branches entfernen — inklusive nicht gemergter Arbeit`,deleteArtifacts:`Alle SDD-Artefakte löschen (Specs, Task-Graph, Board, Session)`,revertMerged_one:`Auch {{count}} gemergtes Commit revertieren`,revertMerged_other:`Auch {{count}} gemergte Commits revertieren`,revertHint:`Fügt Revert-Commits hinzu (Historie bleibt). Wird verweigert, wenn der Working Tree dirty ist.`,baseBranchFallback:`der Basis-Branch`,noteLeaveMerged:`Gemergte Commits bleiben auf dem Basis-Branch. Setze den Haken oben, um sie auch rückgängig zu machen.`,noteAbandon:`Stelle sicher, dass du diesen Run wirklich aufgeben willst.`,destroying:`Zerstöre…`,destroyAll:`Alles zerstören`,kanbanBacklog:`Backlog`,kanbanReady:`Bereit`,kanbanRunning:`Läuft`,kanbanReview:`Review`,kanbanFailed:`Fehlgeschlagen`,kanbanDone:`Erledigt`,kanbanEmpty:`leer`},O={collapseToLines:`Auf erste {{count}} Zeilen einklappen`,showAllLines:`Alle {{total}} Zeilen anzeigen ({{more}} mehr)`,exitCode:`Exit-Code:`,jsonLines:`JSON · {{count}} Zeilen`,collapse:`einklappen`,expand:`ausklappen`},k={heading:`Design Studio — Galerie`,kitsCount:`{{count}} Kits`,searchPlaceholder:`Kits suchen…`,stackTitle:`Stack für Use + Materialize`,wrote:`{{path}} geschrieben`,materializeFailed:`Materialize fehlgeschlagen: {{error}}`,verifyError:`Prüfen: {{error}}`,verifyOffPalette:`Prüfen: {{pct}}% on-palette — {{count}} off-palette in {{files}} Datei(en)`,verifyClean:`Prüfen: sauber ✓ ({{files}} Datei(en) on-palette)`,writing:`Theme-Datei wird geschrieben…`,scanning:`UI-Dateien werden gescannt…`,active:`Aktiv`,reapply:`Erneut anwenden`,use:`Verwenden`,materializeTitle:`Tokens in eine {{stack}}-Theme-Datei schreiben`,materialize:`Materialisieren`,verifyTitle:`UI-Dateien auf Off-Palette-Farben prüfen`,verify:`Prüfen`,colors:`Farben`},A={summary_one:`{{count}} Phase · {{pct}}% fertig`,summary_other:`{{count}} Phasen · {{pct}}% fertig`,switchBoard:`Board wechseln`,boardsCount_one:`{{count}} Board…`,boardsCount_other:`{{count}} Boards…`,toggleAutonomousTitle:`Autonomen Modus umschalten`,autonomous:`Autonom`,manual:`Manuell`,resumeTitle:`Lauf fortsetzen`,pauseTitle:`Lauf pausieren`,resume:`Fortsetzen`,pause:`Pausieren`,stopTitle:`Lauf stoppen — bricht laufende Agents sofort ab`,stop:`Stopp`,newTitle:`Dieses Board löschen und einen neuen Goal-Lauf starten`,newLabel:`Neu`,revertConfirm:`Commits des Laufs zurücksetzen?`,revertTitle:`Diesen Lauf zurücknehmen — gelandete Commits per git-revert und Worktrees entfernen`,revert:`Zurücknehmen`,goal:`Ziel`,planning:`Phasen werden geplant…`,planningBody:`Dein Ziel wurde empfangen. WrongStack zerlegt es in Phasen und Aufgaben — das Board erscheint hier, sobald der Plan steht.`,startHeading:`Phasenplan starten`,startBody:`Beschreibe, was du bauen willst. WrongStack plant Phasen und Aufgaben und führt sie aus — beobachte und lenke den Lauf auf dem Board.`,startPlaceholder:`z.B. Eine REST-API für Benutzerverwaltung mit Express und SQLite bauen...`,isolateLabel:`Jede Phase im eigenen Git-Worktree isolieren`,startButton:`Goal starten`,ctrlHint:`Ctrl+Enter zum Starten`,isolateOn:`Phasen laufen in isolierten Worktrees, squash-merged zurück`,isolateOff:`Phasen laufen direkt auf dem aktuellen Branch`,lanes:`Spuren`,graph:`Graph`,planningAck:`🚀 **Goal** — verstanden. Plane Phasen für dein Ziel…`,assess:{analyzing:`Analysiere Zielumfang…`,realistic:`✓ Umfang sieht realistisch aus`,durationConcern:`⚠ Dauerbedenken`,durationClaimed:`Angegebene Dauer: {{duration}}`,recommendation:`Empfohlen: {{duration}}`,concerns:`Bedenken`,analysisFailed:`Zielumfang konnte nicht analysiert werden`,override:`Trotzdem starten`,overrideTitle:`Warnung zurücksetzen und Start-Button aktivieren`,disableTitle:`Dieses Ziel hat eine unrealistische Dauer — mit "Trotzdem starten" überschreiben`},multiBoardLabel:`In mehrere Kanban-Boards aufteilen`,verifyTasksLabel:`Verifizierung für jede Aufgabe erforderlich`,chimeraReviewLabel:`Chimera-Auto-Review aktivieren`},j={noObservers:`Keine Live-Beobachter`,observerTitle:`Als nur-lesen-Beobachter beitreten (Phase 1)`,observerRole:`Beobachter`,annotatorTitle:`Als Annotator beitreten — hinterlasse Notizen zu Tool-Aufrufen (Phase 2)`,annotatorRole:`Annotator`,controllerTitle:`Als Controller beitreten — kann die Agent-Schleife pausieren (Phase 3)`,controllerRole:`Controller`,errorPrefix:`Collab: {{error}}`,dismiss:`verwerfen`,observers_one:`{{count}} Beobachter`,observers_other:`{{count}} Beobachter`,annotationsTitle:`{{count}} offene Anmerkung(en) — Annotatoren prüfen diese Sitzung`,notes_one:`{{count}} Notiz`,notes_other:`{{count}} Notizen`,pausedTitle:`Agent-Schleife pausiert — ein Controller prüft`,paused:`pausiert`,joinedTitle:`Beigetreten {{time}}`,grantTitle:`Kontrolle geben — diesen Teilnehmer zum Controller befördern`,injectTitle:`Ein synthetisches Ergebnis für einen laufenden Tool-Aufruf injizieren`,inject:`Injizieren`,resumeTitle:`Agent-Schleife fortsetzen`,resume:`Fortsetzen`,pauseTitle:`Agent vor dem nächsten Tool-Aufruf pausieren`,pauseAgent:`Agent pausieren`,leaveTitle:`Beobachter-Sitzung verlassen`,leave:`Verlassen`,injectToolResult:`Tool-Ergebnis injizieren`,close:`schließen`,targetTool:`Ziel-tool_use-id`,targetPlaceholder:`laufenden Aufruf wählen oder tool_use-id eingeben`,toolFallback:`Tool`,noPendingTools:`Keine laufenden Tool-Aufrufe — gib eine tool_use-id ein oder pausiere den Agent zuerst.`,resultContent:`Ergebnisinhalt`,resultPlaceholder:`Synthetisches Tool-Ergebnis, das dem Agent statt der Ausführung zugeführt wird`,markError:`als Fehler markieren`,reasonPlaceholder:`Grund (Audit-Log)`,queueInjection:`Injektion einreihen`,controllerInjection:`Controller-Injektion`},M={connected:`Verbunden`,reconnecting:`Verbinde erneut mit Backend (Versuch {{attempt}}) — erneut in {{remaining}} s`,disconnected:`Verbindung zum Backend getrennt`,retry:`Jetzt erneut versuchen`,retryTitle:`Verbindung jetzt erneut versuchen`,dismissTitle:`Verwerfen (Chip in der Topbar zeigt weiterhin den Status)`},N={modePrefix:`Modus:`,activeTitle:`Aktiver Modus`,heading:`Modus`,defaultName:`Standard`,defaultDesc:`Standard-Agent-Verhalten`},P={clickTitle:`Klicken für Kostenaufschlüsselung pro Zug`,heading:`Kostenaufschlüsselung`,noPricing:`Keine Preisgebung für das aktuelle Modell — Kostenwerte sind null.`,noTurns:`Noch keine abgeschlossenen Züge. Führe einen Prompt aus, um hier die Kosten pro Zug zu sehen.`,topExpensive_one:`Teuerster Zug`,topExpensive_other:`Die {{count}} teuersten Züge`},F={runDefault:`Run-Standard`,useRunDefault:`Run-Standard verwenden`,filterPlaceholder:`Modelle filtern…`,loading:`Modelle werden geladen…`,noMatch:`Kein Treffer`},I={heading:`Modell wechseln`,filterPlaceholder:`Anbieter und Modelle filtern…`,providerFilter:`Anbieter`,providerFilterAll:`Alle Anbieter`,noSavedProviders:`Keine gespeicherten Anbieter — zuerst einen Schlüssel in den Einstellungen registrieren.`,noMatch:`Keine passenden Modelle`,active:`aktiv`},L={todos:`Todos`,tasks:`Aufgaben`,plan:`Plan`},R={toggleAria:`Umschalten: {{content}}`,removeTitle:`Todo entfernen`,removeAria:`"{{content}}" entfernen`,completedCount_one:`{{count}} erledigt`,completedCount_other:`{{count}} erledigt`,blockedBy:`Wartet auf: {{work}}`},z={start:`Starten`,complete:`Abschließen`,retry:`Erneut versuchen`,assign:`Zuweisen`,assignTitle:`Agent zuweisen`,unassigned:`Nicht zugewiesen`,statusPending:`Ausstehend`,statusInProgress:`In Arbeit`,statusBlocked:`Blockiert`,statusFailed:`Fehlgeschlagen`,statusReview:`Review`,statusDone:`Erledigt`,startTitle:`Starten`,completeTitle:`Abschließen`,fail:`Fehlschlagen`,failTitle:`Als fehlgeschlagen markieren`,boardCount:`{{total}} Aufgaben · {{done}} erledigt`},B={toolCalls_one:`{{count}} Werkzeugaufruf`,toolCalls_other:`{{count}} Werkzeugaufrufe`},V={removeTitle:`Referenz entfernen`,linesCount_one:`{{count}} Zeile`,linesCount_other:`{{count}} Zeilen`},H={statusOpen:`Offen`,statusInProgress:`In Arbeit`,statusDone:`Erledigt`,startTitle:`Starten`,doneTitle:`Als erledigt markieren`,reopenTitle:`Wieder öffnen`,reopen:`Wieder öffnen`},U={heading:`@ Dateien`,noMatch:`Keine Dateien passen zu „{{query}}“`,searching:`Projekt wird durchsucht…`,selectInsertEscDismiss:`↑/↓ auswählen · ↵ einfügen · Esc schließen`},W={dismiss:`Verwerfen`},G={placeholder:`Im Chat suchen…`,prevHit:`Vorheriger Treffer`,nextHit:`Nächster Treffer`,close:`Schließen (Esc)`},K={statusPending:`Ausstehend`,statusReady:`Bereit`,statusRunning:`Läuft`,statusPaused:`Pausiert`,statusCompleted:`Abgeschlossen`,statusFailed:`Fehlgeschlagen`,statusSkipped:`Übersprungen`,heading:`Phasen`,autonomousOn:`● Autonom`,autonomousOff:`○ Manuell`,autonomousOnTitle:`Autonomer Modus aktiv — klicken zum Pausieren`,autonomousOffTitle:`Manueller Modus — klicken zum Aktivieren des autonomen Modus`,overallProgress:`Gesamtfortschritt`,tasksSuffix:`{{done}}/{{total}} Aufgaben`,agentsSuffix_one:`{{count}} Agent`,agentsSuffix_other:`{{count}} Agents`},q={triggerTitle:`Kontextfenster-Modus`,ctxPrefix:`ctx:`,opsHeading:`Kontextoperationen`,compactNow:`Jetzt komprimieren`,compactNowDesc:`Alte Tool-Ausgaben kürzen`,compactAggressive:`Aggressiv komprimieren`,compactAggressiveDesc:`Maximale Kürzung jetzt`,repairContext:`Kontext reparieren`,repairDesc:`Verwaiste Tool-Use-Blöcke beheben`,debugContext:`Kontext debuggen`,debugDesc:`Größenaufschlüsselung pro Abschnitt`,windowHeading:`Kontextfenster`,keepElide:`{{k}} letzte behalten · {{t}}+ Token kürzen`,fallbackName:`Ausgeglichen`,fallbackDesc:`Standard-Rolling-Komprimierung`},J={kindAssistant:`Assistent`,kindThinking:`Denken`,kindToolCall:`Werkzeugaufruf`,kindToolResult:`Werkzeugergebnis`,kindError:`Fehler`,kindStatus:`Status`,kindSystem:`System`,title:`Chat-Verlauf`,copyTitle:`Agenten-Chatverlauf kopieren`,empty:`Noch kein Chat-Verlauf für diesen Agenten.`},Y={heading:`Autonomiemodus`,titlePrefix:`Autonomie: {{label}}`,descOff:`Volle manuelle Kontrolle — Agent wartet auf deine Eingabe.`,descSuggest:`Agent schlägt nächste Schritte vor, wartet aber auf Genehmigung.`,descAuto:`Agent setzt nach kurzer Bestätigungsverzögerung automatisch fort.`,descEternal:`Agent läuft autonom, bis das Ziel erreicht ist.`,descEternalParallel:`Multi-Agenten autonome Ausführung — Fleet-Modus.`,labelOff:`Aus`,labelSuggest:`Vorschlagen`,labelAuto:`Auto`,labelEternal:`Endlos`,labelEternalParallel:`Endlos parallel`},X={heading:`Nachrichtenwarteschlange`,subtitle:`{{count}} in Warteschlange · Nachrichten werden gesendet, bevor der Agent fertig ist`,btwTitle:`Nebenbei — als Folgenachricht gesendet, ohne den laufenden Agent zu unterbrechen`,steerTitle:`Lenken — unterbricht den laufenden Agent und leitet ihn mit dieser Nachricht um`,queueTitle:`Eingereiht — zurückgehalten bis der aktuelle Agent-Lauf endet, dann in Reihenfolge gesendet`,sortNewestTitle:`Nach neuesten sortiert — klicken für älteste zuerst`,sortOldestTitle:`Nach ältesten sortiert — klicken für neueste zuerst`,newest:`Neueste`,oldest:`Älteste`,clear:`Leeren`,clearTitle:`Alle Nachrichten aus der Warteschlange löschen`,closeTitle:`Schließen`,emptyTitle:`Warteschlange ist leer`,emptyBody:`Nutze die btw-/steer-/„Zur Warteschlange“-Schaltflächen neben der Eingabe, um Nachrichten hinzuzufügen. Eingereihte Einträge werden in Reihenfolge gesendet, wenn der aktuelle Agent-Lauf endet.`,removeTitle:`Aus Warteschlange entfernen`,clearDispatchedTitle:`Nachrichten aus der Warteschlange löschen — bereits gesendete Notizen können nicht zurückgenommen werden`,dispatchedTitle:`Bereits an den Agenten gesendet`,dispatchedLabel:`Gesendet`,footer:`Nachrichten werden in Ankunftsreihenfolge gesendet, wenn der aktuelle Agent-Lauf endet. Nutze die Sortierung, um neueste zuerst zu sehen.`},Z={heading:`Sitzungs-Checkpoints`,countSuffix_one:`{{count}} Checkpoint`,countSuffix_other:`{{count}} Checkpoints`,description:`Sitzung zu einem beliebigen Checkpoint zurückspulen. Nachrichten und Dateiänderungen kehren zu diesem Punkt zurück — das LLM setzt von dort fort, als wäre nichts danach passiert.`,emptyTitle:`Noch keine Checkpoints`,emptyBody:`Checkpoints werden automatisch bei jeder gesendeten Nachricht erstellt. Sende ein paar Nachrichten und komme zurück.`,latest:`aktuell`,msgSuffix_one:`{{count}} Nachricht`,msgSuffix_other:`{{count}} Nachrichten`,footerPre:`Beliebigen Checkpoint zum Zurückspulen klicken`,footerPost:`zum Schließen`},Q={statusActive:`Aktiv`,statusPaused:`Pausiert`,statusDone:`Erledigt`,statusFailed:`Fehlgeschlagen`,statusAbandoned:`Aufgegeben`,heading:`Ziel`,refined:`Verfeinert`,progress:`Fortschritt`,iterations:`Iterationen`,deliverables:`Lieferobjekte`,recentActivity:`Letzte Aktivität`},$={cleanTitle_one:`{{count}} verwaisten Worktree entfernen?`,cleanTitle_other:`{{count}} verwaiste Worktrees entfernen?`,cleanMessage:`Entfernt jeden übriggebliebenen Git-Worktree + wstack/ap-Branch vorheriger Läufe zwangsweise. Nicht gemergte Arbeit darin geht verloren.`,cleanConfirm:`Verwaiste entfernen`,orphanCount_one:`{{count}} verwaister Worktree aus vorherigen Läufen`,orphanCount_other:`{{count}} verwaiste Worktrees aus vorherigen Läufen`,andMore:`…und {{count}} weitere`,cleanButtonTitle:`Alle verwaisten Worktrees + Branches zwangsweise entfernen`,removed_one:`✓ {{count}} verwaister Worktree entfernt.`,removed_other:`✓ {{count}} verwaiste Worktrees entfernt.`,cleanupFailed:`Bereinigung fehlgeschlagen`,lanesHeading:`Worktrees`,base:`Basis`,isolatedCount_one:`{{count}} isoliert`,isolatedCount_other:`{{count}} isoliert`,statusAllocating:`zuweisend`,statusActive:`aktiv`,statusCommitting:`committend`,statusMerging:`mergend`,statusMerged:`gemergt`,statusConflict:`Konflikt`,statusFailed:`fehlgeschlagen`,conflictBadge:`KONFLIKT`,graphAria:`Worktree-Branch-Graph ab {{base}}`,mergedLabel:`✓ gemergt → {{base}}`},ee={heading:`Laufende Prozesse`,subtitle:`{{active}} aktiv · {{total}} gesamt`,killAll:`Alle beenden`,emptyTitle:`Keine Prozesse verfolgt`,emptyBody:`Prozesse erscheinen hier, wenn der Agent bash- oder exec-Tools ausführt. Aktive Prozesse zeigen eine pulsierende LED.`,pidLabel:`PID {{pid}}`,protected:`geschützt`,protectedTitle:`Geschützt — überlebt kill/killAll`,background:`im Hintergrund`,backgroundTitle:`Abgekoppelter Prozess — läuft nach dem Beenden von CLI/WebUI weiter`,confirmKillBackground:`Abgekoppelten Hintergrundprozess {{pid}} beenden?`,confirmKillAll:`Alle {{count}} laufenden Prozesse beenden?`,killTitle:`PID {{pid}} beenden`},te={tooLarge:`Diff ausgelassen (Datei zu groß für die Inline-Darstellung).`},ne={placeholder:`Ausweichmodell hinzufügen…`,emptyHint:`Wird in Reihenfolge versucht, wenn das primäre Modell ratelimitiert oder hängt.`,moveUp:`Nach oben`,moveDown:`Nach unten`},re={loading:`Sitzungen werden geladen...`,apiUnavailable:`Sitzungs-API nicht verfügbar:`,empty:`Keine Live-Sitzungen. Öffne eine weitere wstack-Instanz, um sie hier zu sehen.`,heading:`Live-Sitzungen ({{count}})`,autoRefresh:`Auto-Aktualisierung alle 5 s`,pidLabel:`PID {{pid}}`,agentMeta:`{{iter}} Iterationen · {{tools}} Tools · {{ago}}`,andMore:`... und {{count}} weitere`,noAgents:`Keine Agents`},ie={applyTitle:`Die bearbeitete Version auf die Festplatte schreiben`,applying:`Anwenden…`,applied:`Angewandt`,apply:`Anwenden`},ae={showStack_one:`Stack-Trace zeigen ({{count}} Frame)`,showStack_other:`Stack-Trace zeigen ({{count}} Frames)`,hideStack_one:`Stack-Trace verbergen ({{count}} Frame)`,hideStack_other:`Stack-Trace verbergen ({{count}} Frames)`},oe={liveHeading:`Live`,clients:`Clients`,agents:`Agents`,model:`Modell`,mode:`Modus`,toolCalls:`Tool-Aufrufe`,displayHeading:`Anzeige`,statsHud:`Stats-HUD`,legends:`Legenden`,minimap:`Minimap`,zoomControls:`Zoom-Steuerung`,animateWires:`Kabel animieren`,backgroundHeading:`Hintergrund`,bgDots:`Punkte`,bgLines:`Linien`,bgCross:`Kreuz`,bgNone:`Keine`},se={noParams:`(keine Parameter)`,itemCount_one:`{{count}} Element`,itemCount_other:`{{count}} Elemente`,keyCount_one:`{{count}} Schlüssel`,keyCount_other:`{{count}} Schlüssel`},ce={roleYou:`Du`,roleTool:`Tool`,roleThinking:`Denken`,roleAssistant:`Assistent`,inputLabel:`Eingabe`,downloadTitle:`Als Datei herunterladen`,empty:`(leer)`,hideDetails:`Details verbergen`,showDetails:`Details zeigen`,showDetailsLines_one:`Details zeigen ({{count}} Zeile)`,showDetailsLines_other:`Details zeigen ({{count}} Zeilen)`,editHint:`⌘/Ctrl+Enter zum Speichern · Esc zum Abbrechen`,saveResend:`Speichern & erneut senden`,thinkingProcess:`Denkprozess`,thinkingMeta:`Iter {{iter}} · {{dur}} · {{lines}}`,replay:`Replay`,linesSuffix_one:`{{count}} Zeile`,linesSuffix_other:`{{count}} Zeilen`,copyLog:`Log kopieren`,showFullLog:`Vollständiges Log zeigen`,typing:`Tippt…`,noContent:`Kein Inhalt`,imageNotRetained:`Bildvorschau wird nach dem Neuladen nicht behalten`,failedToSend:`⚠ Senden fehlgeschlagen`,autoPaused:`⚠️ _Auto-Fortsetzen pausiert — maximale aufeinanderfolgende automatische Züge erreicht. Tippe etwas zum Fortfahren (Autonomie bleibt an)._`,autoLoopHalted:`⚠️ _Automatisches Senden gestoppt, weil sich dieselbe Eingabe wiederholt hat. Die Autonomie bleibt aktiv; gib eine neue Eingabe ein, um den Schleifenschutz zurückzusetzen._`,rsIterations:`Iterationen: {{n}}`,rsTools:`Tool-Aufrufe: {{n}}`,rsElapsed:`Verstrichen: {{s}}`,rsCost:`Kosten: {{c}}`,useInput:`Eingabe: {{n}}`,useOutput:`Ausgabe: {{n}}`,useCacheRead:`Cache-Lesung: {{n}}`,useCost:`Kosten: {{c}}`,renderedLabel:`Gerendert`,rawLabel:`Raw`,showRenderedTitle:`Gerendertes Markdown zeigen`,showRawTitle:`Raw-Markdown-Quelle zeigen`,editTitle:`Diesen Prompt bearbeiten & erneut senden`,editLabel:`Bearbeiten`,unpinTitle:`Lösen`,pinTitle:`Diese Antwort anheften`,pinnedLabel:`Angeheftet`,pinLabel:`Anheften`,regenerateTitle:`Diese Antwort neu generieren`,retryLabel:`Erneut versuchen`},le={toolFallback:`Tool`,toolFailed:`Tool fehlgeschlagen`},ue={heading:`Tastaturkürzel`,footerPre:`Jederzeit`,footerPost:`drücken, um diese Liste wieder zu öffnen.`,sectionGlobal:`Global`,sectionTuiParity:`TUI-Panel-Parität`,sectionFleet:`Fleet & Agents`,sectionChatInput:`Chat-Eingabe`,sectionChat:`Chat`,sectionChatNav:`Chat-Navigation (beim Nicht-Tippen)`,dCommandPalette:`Befehls-Palette öffnen`,dShowOverlay:`Diese Kürzel-Overlay zeigen`,dToggleSidebar:`Seitenleiste umschalten`,dOpenPanel:`Seitenleiste öffnen (Session, Agents, Verlauf, Dateien, Changes, Mailbox, Skills, Office Map)`,dDesignStudio:`Design-Studio-Seitenleiste öffnen`,dWorktrees:`Worktree-Seitenleiste öffnen`,dSettings:`Einstellungen öffnen`,dMemory:`Memory öffnen`,dFocusInput:`Nachrichteneingabe fokussieren`,dSessionPanel:`Session-Panel`,dFleetOverlay:`Fleet-Monitor-Overlay`,dAgentsOverlay:`Agents-Monitor-Overlay`,dWorktreeMonitor:`Worktree-Monitor`,dPlanPanel:`Plan-Panel`,dTodosPanel:`Todos-Panel`,dQueuePanel:`Queue-Panel`,dProcessMonitor:`Prozess-Monitor`,dGoalPanel:`Ziel-Panel`,dSessionsDashboard:`Session-Dashboard`,dOfficeMap:`Koordinator-Office-Map`,dDockPicker:`Dock-Chip-Wähler`,dOpenFleet:`Fleet-Monitor-Overlay öffnen`,dOpenAgents:`Agents-Monitor-Overlay öffnen`,dNavigateAgents:`Agents im Monitor navigieren`,dSelectAgent:`Fokussierten Agent wählen`,dCloseOverlay:`Aktives Overlay schließen`,dSendMessage:`Nachricht senden`,dNewline:`Zeilenumbruch einfügen`,dRecallPrev:`Vorherigen Prompt abrufen (bei leerer Eingabe)`,dRecallNext:`Nächsten Prompt abrufen`,dSlashPopup:`Slash-Befehl-Popup öffnen`,dAutocomplete:`Hervorgehobenen Befehl autovervollständigen`,dDismissPopup:`Popup schließen / Eingabe löschen`,dSearchChat:`Im aktuellen Chat suchen`,dClearContext:`Kontext löschen (wie /clear)`,dNewSession:`Neue Session starten (wie /new)`,dExportMarkdown:`Chat als Markdown exportieren`,dModelSwitcher:`Quick-Model-Switcher-Overlay`,dCompactDensity:`Kompakte UI-Dichte umschalten`,dAbortRun:`Aktuellen Run abbrechen (während läuft)`,dFocusNext:`Nächste Nachricht fokussieren (Alias: ↓)`,dFocusPrev:`Vorherige Nachricht fokussieren (Alias: ↑)`,dJumpFirst:`Zur ersten Nachricht springen`,dJumpLast:`Zur letzten Nachricht springen`,dCopyFocused:`Fokussierten Nachrichtentext kopieren`,dClearFocused:`Fokussierte Nachricht löschen`},de={titleFallback:`Live SDD Board`,defaultModelTitle:`Run-Standard-Workermodell (pro-Task-Overrides haben Vorrang)`,graphLabel:`Graph`,kanbanLabel:`Kanban`,retryAllTitle:`Jede fehlgeschlagene Task zurück in pending einreihen`,retryFailed:`Fehlgeschlagene erneut ({{count}})`,resume:`Fortsetzen`,pause:`Pausieren`,stop:`Stopp`,cleanTitle:`Git-Worktrees + wstack/ap-Branches des Runs entfernen`,cleanWorktrees:`Worktrees bereinigen`,rollbackTitle:`{{count}} gemergte(s) Commit(s) auf {{base}} revertieren`,rollback:`Rollback ({{count}})`,stopping:`Stoppt…`,destroying:`Zerstört…`,destroyTitle:`Stoppen, alle Worktrees entfernen, optional gemergte Commits revertieren und das SDD-Projekt löschen`,destroy:`Zerstören`,statDone:`fertig`,statRunning:`läuft`,statFailed:`fehlgeschlagen`,statWave:`welle`,statElapsed:`verstrichen`,noActiveWorkers:`keine aktiven Worker`,deadlock:`Deadlock — Tasks blockiert durch fehlgeschlagene Arbeit:`,noRunTitle:`Kein aktiver SDD-Run.`,noRunBody:`Starte einen im New-SDD-Project-Assistenten oder per /sdd execute in der CLI — Agents erscheinen hier live, jeder in einem isolierten Worktree.`,clickTaskHint:`Task für Details klicken`,lcClean:`Bereinigen`,lcRollback:`Rollback`,lcDestroy:`Zerstören`,lcFailed:`{{op}} fehlgeschlagen: {{reason}}`,lcUnknownError:`unbekannter Fehler`,lcWorktrees_one:`{{count}} Worktree entfernt`,lcWorktrees_other:`{{count}} Worktrees entfernt`,lcCommits_one:`{{count}} Commit revertiert`,lcCommits_other:`{{count}} Commits revertiert`,lcDeleted:`gelöscht {{items}}`,lcNothing:`nichts zu tun`,lcNote:`{{op}}: {{body}} — Hinweis: {{reason}}`,lcOk:`{{op}}: {{body}}`},fe={backTitle:`Zur Aktivität zurück`,expandTitle:`Aufgabendetails erweitern`,collapseTitle:`Aufgabendetails verkleinern`,eventLog:`Aufgaben-Ereignisprotokoll`,newestFirst:`neueste zuerst`,noEvents:`Für diese Aufgabe wurde noch keine Aktivität aufgezeichnet.`,workingOn:`arbeitet an dieser Task`,assigned:`zugewiesen`,metaPriority:`Priorität`,metaType:`Typ`,metaDuration:`Dauer`,metaElapsed:`Verstrichen`,metaRetries:`Versuche`,metaWorktree:`Worktree`,workerModel:`Worker-Modell`,runDefault:`Run-Standard: {{model}}`,runDefaultPlaceholder:`Run-Standard`,runDefaultPlaceholderModel:`Run-Standard ({{model}})`,verificationCmd:`Verifikationsbefehl`,gatesCompletion:`schließt Completion ab (exit 0)`,verifyPlaceholder:`z. B. pnpm vitest run path/to/file`,addVerify:`+ Verifikationsbefehl hinzufügen`,description:`Beschreibung`,timeline:`Zeitleiste`,dependsOn:`Hängt ab von`,blocks:`Blockiert`,newWorkerPlaceholder:`Neuer Worker-Name…`,confirmStop:`Diese laufende Task stoppen?`,confirmDelete:`Diese Task aus dem Run löschen?`,retryTitle:`Diese Task zurück in pending einreihen`,reassign:`Neu zuweisen`,stopTitle:`Den Worker auf dieser Task abbrechen`,splitTitle:`Diese Task in separate Worker-Sub-Tasks aufteilen`,split:`Aufteilen`,splitHint:`Eine Sub-Task pro Zeile — Titel :: Beschreibung (Beschreibung optional)`,splitPlaceholder:`Datenlayer schreiben :: Repository hinzufügen
4
4
  UI verdrahten`,splitInto:`In Sub-Tasks aufteilen`,deleteTitle:`Diese nicht gestartete Task aus dem Run entfernen`},pe={phaseStart:`Start`,phaseInterview:`Interview`,phaseSpecReview:`Spec-Review`,phasePlanning:`Planung`,phaseTaskReview:`Task-Review`,phaseRunning:`Läuft`,phaseDone:`Fertig`,titleFallback:`Neues SDD-Projekt`,questionsSuffix:`{{cur}}/{{max}} Fragen`,tasksSuffix:`{{count}} Tasks`,runCfgTitle:`Run-Konfiguration — Standardmodell + Fallback-Kette`,modelsLabel:`Modelle`,startRun:`Run starten`,defaultWorkerModel:`Standard-Worker-Modell`,leaderDefaultPlaceholder:`Leader / Session-Standard`,useSessionDefault:`Session-Standard verwenden`,fallbackChain:`Fallback-Kette`,appliesToAll:`Gilt für jede Task. Pro-Task vom Live-Board nach Run-Start überschreiben.`,parallelAgents:`Parallele Agents`,isolateWorktrees:`In Git-Worktrees isolieren`,worktreeOn:`Jede Task läuft im eigenen Worktree, bei Abschluss squash-gemergt.`,worktreeOff:`Tasks laufen direkt auf dem aktuellen Branch (keine Isolation).`,planDecompose:`Große Tasks automatisch aufteilen`,planDecomposeOn:`Vor dem Dispatch Tasks aufteilen, die die Atomizitäts-Engine als zu groß markiert.`,planDecomposeOff:`Genehmigten Task-Graphen unverändert lassen (bei Fehlschlag ggf. zur Laufzeit splitten).`,goalPrompt:`Was willst du bauen?`,goalPlaceholder:`z. B. OAuth-Login (Google + GitHub) mit Session-Management hinzufügen`,startingInterview:`Interview startet…`,startInterview:`Interview starten`,introBody:`Ein isolierter Agent interviewt dich, um eine Spec zu bauen, zerlegt sie in einen abhängigkeitsgeordneten Task-Graphen, dann führt eine echte Multi-Agenten-Fleet ihn aus — live auf dem Board schauen. Bei Refresh oder Neustart wird das Interview automatisch fortgesetzt.`,taskGraphSummary:`Task-Graph · {{count}} Tasks, abhängigkeitsgeordnet`,dragToExplore:`ziehen zum Erkunden`,show:`zeigen`,goalLabel:`Ziel`,implementationPlan:`Implementationsplan`,approveSpec:`Spec genehmigen → Implementation planen`,approveTasks:`Tasks genehmigen`,approvePlan:`Plan genehmigen`,backToQuestions:`Zurück zu den Fragen`,backToQuestionsTitle:`Spec ablehnen und zur Fragephase zurückkehren`,backToSpec:`Zurück zur Spec`,backToSpecTitle:`Plan ablehnen und zur Spec-Überprüfung zurückkehren`,rewindToPhaseTitle:`Zu dieser Phase zurückkehren, um zu überarbeiten`,quickBestPractice:`Best Practice anwenden`,quickBestPracticeDirective:`Verwende dafür branchenübliche Best Practices.`,generateSpecNow:`Spec jetzt generieren`,generateSpecNowTitle:`Spezifikation jetzt mit den gesammelten Anforderungen erstellen`,interviewProgress:`Interview-Fortschritt`,questionOf:`Frage {{current}} von {{max}}`,minRequiredMet:`Erforderliche Mindestfragen erfüllt ✓`,minRequiredRemaining:`Noch {{count}} erforderlich`,answerPlaceholder:`Frage beantworten…`,changePlaceholder:`Änderung anfordern…`,resumeBanner:`Interview aus einer vorherigen Sitzung fortgesetzt — dort weitermachen, wo du aufgehört hast.`,openLiveBoard:`Live-Board öffnen`,discardInterview:`Verwerfen & neu starten`,discardTitle:`Dieses Interview abbrechen und die gespeicherte Sitzung löschen`},me={emptyDir:`leer`,loadFailed:`Dateien konnten nicht geladen werden: {{error}}`,expandAllTitle:`Alle Verzeichnisse aufklappen`,expandAll:`Alle aufklappen`,collapseAllTitle:`Alle Verzeichnisse zuklappen`,collapse:`Zuklappen`,folders_one:`{{count}} Ordner`,folders_other:`{{count}} Ordner`,currentDirTitle:`Aktuelles Verzeichnis: {{path}}`,navigateToTitle:`Nach {{path}} navigieren`,filesSuffix_one:`{{count}} Datei`,filesSuffix_other:`{{count}} Dateien`,goToDir:`zum Ordner`,navigateParentTitle:`Zum übergeordneten Ordner von {{path}} navigieren`,parentDirectory:`übergeordneter Ordner`,noFiles:`Keine Dateien gefunden`,copyAbsPath:`Absoluten Pfad kopieren`,copyRelPath:`Relativen Pfad kopieren`,openInTerminal:`Im Terminal öffnen`,openInFileManager:`Im Dateimanager öffnen`,mentionInChat:`Im Chat erwähnen`,copyPath:`Pfad kopieren`,newFile:`Neue Datei`,newFolder:`Neuer Ordner`,newFileTitle:`Neue Datei erstellen`,newFolderTitle:`Neuen Ordner erstellen`,delete:`Löschen`,confirmDeleteDir:`"{{name}}" und alle Inhalte löschen?`,rename:`Umbenennen`,renameTitle:`Neuen Namen eingeben`,sortByName:`Name`,sortByNameTitle:`Nach Name sortieren (Standard)`,sortBySize:`Größe`,sortBySizeTitle:`Nach Dateigröße sortieren (größte zuerst)`,search:`Dateien durchsuchen`,searchPlaceholder:`Filtern…`},he={sendSelectionAction:`Auswahl an Chat senden`,noFilesOpen:`Keine Dateien offen`,selectToEdit:`Wähle eine Datei aus dem Explorer zum Bearbeiten`,sendSelectedTitle:`Ausgewählte Zeilen an Chat senden`,mentionFileTitle:`Diese Datei im Chat erwähnen`,sendToChat:`An Chat senden`,mentionFile:`Datei erwähnen`,loadingEditor:`Editor wird geladen…`,selectTab:`Wähle einen Tab um den Inhalt zu sehen`},ge={title:`Dateiaktivität`,overview:`Übersicht`,changes:`Änderungen`,context:`Kontext`,logs:`Protokolle`,memory:`Erinnerungen`,lines:`Zeilen`,resizeHint:`Zum Ändern der Größe ziehen · Doppelklick zum Zurücksetzen`,refresh:`Dateinachweise aktualisieren`,evidenceCount_one:`{{count}} Ereignis`,evidenceCount_other:`{{count}} Ereignisse`,mutations30m:`Änderungen · 30 Min.`,sessions:`Sitzungen`,actors:`Akteure`,linkedWork:`Arbeitsbezüge`,workLinks:`Kanban / Aufgabe`,recentActivity:`Letzte Dateiaktivität`,events:`Ereignisse`,noEvidence:`Dieser Datei wurde noch keine Aktivität zugeordnet.`,noSessions:`Noch keine Sitzungszuordnung.`,noActors:`Noch keine Akteurszuordnung.`,noWorkLinks:`Kein Kanban-, SDD- oder Aufgabenbezug erfasst.`,taskOrTodo:`Task / Aufgabe`,loadingEvidence:`Dateinachweise werden geladen…`,gitToBuffer:`Git HEAD → aktueller Monaco-Puffer`,savedToBuffer:`Zuletzt gespeichert → aktueller Monaco-Puffer`,unsaved:`ungespeicherter Puffer`,lifetimeTitle:`Gesamter Verlauf`,lifetimeChanges:`Änderungen`,lifetimeSessions:`Sitzungen`,lifetimeTasks:`Aufgaben`,lifetimeBoards:`Boards`,lifetimeSince:`seit {{date}}`,lifetimeTools:`über {{tools}}`,level:{quiet:`ruhig`,active:`aktiv`,churn:`hohe Änderungsrate`},analysisTitle:{quiet:`Keine aktuelle Änderungsrate`,active:`Diese Datei wird geändert`,churn:`Wiederholte Änderungen erkannt`},analysisBody:{quiet:`In den letzten 30 Minuten wurden keine zugeordneten Änderungen erfasst.`,active:`{{mutations}} Änderungen durch {{actors}} Akteure in {{sessions}} Sitzungen in den letzten 30 Minuten.`,churn:`Hohe Änderungsrate: {{mutations}} Änderungen durch {{actors}} Akteure in {{sessions}} Sitzungen. Vor der nächsten Änderung überlappende Arbeiten prüfen.`}},_e={loading:`Analytics werden geladen…`,heading:`Analytics-Dashboard`,autoRefresh:`Auto-Aktualisierung alle 10 s`,liveSessions:`Live-Sessions`,agents:`Agents`,agentsActive:`{{count}} aktiv`,totalEvents:`Ereignisse gesamt`,categoriesSub:`{{count}} Kategorien`,toolCalls:`Tool-Aufrufe`,iterationsSub:`{{count}} Iterationen`,sessionCost:`Session-Kosten`,tokensSub:`{{input}} rein / {{output}} raus`,sessionDuration:`Session-Dauer`,messagesSub:`{{count}} Nachrichten`,eventsByCategory:`Ereignisse nach Kategorie`,noEvents:`Noch keine Ereignisse aufgezeichnet.`,topEvents:`Top-Ereignisse`,activeSessionUsage:`Aktive Session-Nutzung`,provider:`Anbieter`,model:`Modell`,inputTokens:`Eingabe-Token`,outputTokens:`Ausgabe-Token`,cacheRatio:`Cache-Verhältnis`,filesRead:`Gelesene Dateien`,noSession:`Keine aktive Session oder warte auf Daten…`,healthErrors:`Health & Fehler`,errorEvents:`Fehler-Ereignisse`,warningEvents:`Warn-Ereignisse`,cacheHitRate:`Cache-Trefferquote`,totalCategories:`Kategorien gesamt`,waitingData:`Warte auf Daten…`,recentEvents:`Letzte Ereignisse`,noRecentEvents:`Keine aktuellen Ereignisse. Interagiere mit der UI um Ereignisse zu erzeugen.`},ve={heading:`Prompt-Bibliothek`,searchPlaceholder:`Prompts suchen…`,newPrompt:`+ Neues Prompt`,all:`Alle`,recent:`◷ Zuletzt`,favorites:`★ Favoriten`,noMatch:`Keine passenden Prompts.`,newPromptHeading:`Neues Prompt`,titlePlaceholder:`Titel *`,descPlaceholder:`Einzeilige Beschreibung`,categoryPlaceholder:`Kategorie`,tagsPlaceholder:`tags, kommasepariert`,contentPlaceholder:`Prompt-Inhalt * — {{name}} für Variablen`,variables:`Variablen`,addVar:`+ Var`,varNamePlaceholder:`Name`,varDescPlaceholder:`Beschreibung`,removeVarTitle:`Variable entfernen`,required:`erforderlich`,multiline:`mehrzeilig`,enumPlaceholder:`enum: a, b, c`,savePrompt:`Prompt speichern`,saveFailed:`Prompt konnte nicht gespeichert werden.`,titleContentRequired:`Titel und Inhalt sind erforderlich.`,toggleFavoriteTitle:`Favorit umschalten`,selectOption:`— wählen —`,fillMissing:`Ausfüllen: {{missing}}`,insertIntoChat:`In Chat einfügen`,selectPromptHint:`Prompt zum Vorschauen und Einfügen wählen.`},ye={scopeProject:`Projekt`,scopeGlobal:`Global`,scopeBundled:`Gebündelt`,timeoutError:`Zeitüberschreitung der Anfrage. Bitte erneut versuchen.`,updateFailed:`Update fehlgeschlagen`,saveFailed:`Speichern fehlgeschlagen`,uninstallFailed:`Deinstallation fehlgeschlagen`,noSkillSelected:`Kein Skill gewählt`,selectSkillHint:`Wähle einen Skill aus der Sidebar um die Doku zu sehen`,goToChat:`Zum Chat`,openSourceRepo:`Quell-Repo öffnen`,copySourceUrl:`Quell-URL kopieren`,updatedLabel:`↑ Aktualisiert: {{list}}`,upToDateLabel:`— Aktuell: {{list}}`,errorsLabel:`✗ {{list}}`,checkUpdatesTitle:`Auf Updates prüfen`,exportTitle:`Skill als .md exportieren`,editTitle:`Skill bearbeiten`,uninstallTitle:`Skill deinstallieren`,closeTitle:`Schließen und zum Chat`,backTitle:`Zurück`,forwardTitle:`Vor`,relatedFiles:`Verwandte Dateien`,references:`Referenzen`,goToSkillTitle:`Zu {{name}}`,loadingContent:`Skill-Inhalt wird geladen…`,editingLabel:`Bearbeite {{name}}`,editStats:`{{lines}} Zeilen · {{words}} Wörter · {{chars}} Zeichen`,charsWarningFmt:`⚠ {{used}} MB / {{limit}} MB`,draftSaved:`Entwurf gespeichert`,draftRestored:`Entwurf wiederhergestellt`,discardDraft:`Entwurf verwerfen`,splitViewTitle:`Geteilte Ansicht`,hidePreviewTitle:`Vorschau verbergen`,contentPlaceholder:`Skill-Inhalt (Markdown)...`,loadFailed:`Skill-Inhalt konnte nicht geladen werden`,noContent:`Kein Skill-Inhalt verfügbar`,uninstallSkillHeading:`Skill deinstallieren`,uninstallConfirm:`{{name}} deinstallieren?`,uninstallRemovePath:`Dies entfernt den Skill aus {{path}} und kann nicht rückgängig gemacht werden.`,uninstallAction:`Deinstallieren`},be={sessionStats:`Session-Stats`,clients:`Clients`,input:`Eingabe`,output:`Ausgabe`,cost:`Kosten`,agentsSuffix:`Agents`,upPrefix:`seit {{time}}`,webuiClient:`WebUI-Client`,disconnected:`Getrennt`,connected:`Verbunden`,tuiClient:`TUI-Client`,terminal:`Terminal`,repl:`REPL`,coordinator:`KOORDINATOR`,fleetSummary:`Fleet-Zusammenfassung`,toolCallsLabel:`Tool-Aufrufe`,tokensLabel:`Token`,coordinatingFleet:`Koordiniert Fleet`,donePrefix:`✓ fertig ·`,failedPrefix:`✕ fehlgeschlagen ·`,seenPrefix:`vor {{time}} gesehen`,availableDesk:`Freier Schreibtisch`,mailboxHub:`Postfach-Zentrale`,unreadSuffix_one:`{{count}} ungelesen`,unreadSuffix_other:`{{count}} ungelesen`,allClear:`Alles erledigt`,total:`Gesamt`,unreadLabel:`Ungelesen`,liveActivity:`Live-Aktivität`,waitingActivity:`Warte auf Aktivität…`,now:`jetzt`,fleetHq:`WrongStack Fleet-Zentrale`,live:`LIVE`,legendStatus:`Status`,legendActive:`Aktiv`,legendIdle:`Idle`,legendError:`Fehler`,legendConnections:`Verbindungen`,legendMail:`Mail`,legendTask:`Task`,legendStatusConn:`Status`,arrange:`Anordnen`,arrangeTitle:`Knoten passend auf der verfügbaren Fläche anordnen`,feed:`Feed`,feedTitle:`Live-Aktivitäts-Feed umschalten`,broadcast:`Broadcast`,broadcastTitle:`Nachricht an jede Live-Session im Projekt`,broadcastToAll:`An alle Sessions broadcasten`,broadcastPlaceholder:`Nachricht an jeden Live-Agent im Projekt…`,broadcastSendHint:`⌘/Ctrl+Enter zum Senden`,openFullView:`Vollständige Operationsansicht öffnen`,rowStatus:`Status`,rowModel:`Modell`,rowTool:`Tool`,rowIterations:`Iterationen`,rowToolCalls:`Tool-Aufrufe`,rowTokensIn:`Token rein`,rowTokensOut:`Token raus`,rowTokensTotal:`Token gesamt`,rowContext:`Kontext`,rowCost:`Kosten`,rowLastSeen:`Zuletzt gesehen`,rowSurface:`Oberfläche`,rowBranch:`Branch`,rowPid:`PID`,rowDir:`Verz.`,rowAgents:`Agents`,rowUptime:`Uptime`,rowConnections:`Verbindungen`,rowTotalMessages:`Nachrichten gesamt`,rowUnread:`Ungelesen`,recent:`Neueste`,noSubject:`(kein Betreff)`,fullOperationStream:`Vollständiger Operations-Stream`,closeEsc:`Schließen (Esc)`,idleDesk:`Freier Platz`,fleetHqLabel:`Fleet-Zentrale`,clientsSuffix_one:`{{count}} Client`,clientsSuffix_other:`{{count}} Clients`,taskFallback:`Task`,controlLabel:`Steuerung`},xe={installTitle:`Skill installieren`,createTitle:`Skill erstellen`,exportTitle:`Alle Skills als .zip exportieren`,checkUpdatesTitle:`Auf Updates prüfen (alle Skills)`,searchPlaceholder:`Skills suchen…`,loading:`Lädt…`,noSkills:`Keine Skills installiert`,noMatch:`Keine Skills passen zum Filter`,noDescription:`Keine Beschreibung`,scopeForeign:`Fremd`,installHeading:`Skill Installieren`,installHint:`GitHub-Repo-Referenz (owner/repo) oder vollständige URL eingeben.`,installPlaceholder:`z. B. wrongstack/skill-name oder https://github.com/owner/repo`,installScope:`Installations-Scope:`,installBtn:`Installieren`,installedMsg:`Installiert: {{names}}`,installFailed:`Installation fehlgeschlagen`,createHeading:`Skill Erstellen`,createHint:`Neuen Skill scaffolding. Erste Zeile ist der Trigger; weitere Zeilen die Beschreibung.`,nameLabel:`Name`,namePlaceholder:`z. B. mein-neuer-skill`,descLabel:`Beschreibung / Trigger`,descPlaceholder:`Verwende diesen Skill bei <Trigger-Situation>.
5
- Trigger: User sagt "Schlüsselwort", "anderes".`,saveIn:`Speichern in:`,createBtn:`Skill Erstellen`,createdMsg:`Erstellt: {{name}}`,createFailed:`Erstellung fehlgeschlagen`},Se={noEvents:`Noch keine Ereignisse.`},Ce={pickHint:`Kit wählen — der Agent hält sich daran.`,gallery:`Galerie`,galleryTitle:`Live-Vorschau-Galerie öffnen`,stackTitle:`Ziel-Stack`,loading:`Kits werden geladen…`,notFound:`Keine Design-Kits gefunden.`,bestFor:`Am besten für:`,light:`Hell`,dark:`Dunkel`,tune:`Feinabstimmung`,font:`Schriftart`,set:`Setzen`,spaceGrotesk:`Space Grotesk…`,aaHeading:`Aa Überschrift`,theQuickBrownFoxJumpsOver:`Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.`,primary:`Primär`,ghost:`Ghost`,badge:`Badge`,inputField:`Eingabefeld…`,radius:`Radius`,density:`Dichte`,motion:`Bewegung`},we={detached:`(losgelöst)`,count_one:`{{count}} Worktree`,count_other:`{{count}} Worktrees`,baseSuffix:` · Basis {{base}}`,baseLabel:`Basis`,cleanOrphans:`Verwaiste entfernen`,cleanOrphansTitle:`Alle verwaisten Worktrees entfernen`,liveBusyTitle:`Ein Lauf ist aktiv — zuerst stoppen`,rescanTitle:`Neu scannen`,removed_one:`{{count}} Worktree entfernt.`,removed_other:`{{count}} Worktrees entfernt.`,failed:`Fehlgeschlagen`,mergedIntoBase:`{{branch}} in Basis zusammengeführt.`,conflictMerge:`Konflikt beim Zusammenführen von {{branch}}: {{files}}`,seeGit:`siehe git`,mergeFailed:`Zusammenführen fehlgeschlagen: {{reason}}`,unknownReason:`unbekannt`,mergeConfirmTitle:`{{branch}} in {{base}} zusammenführen?`,mergeConfirmMsg:`Squash-merged diesen Branch auf den Basis-Branch. Bricht sauber ab bei Konflikten.`,mergeAction:`Zusammenführen`,removeConfirmTitle:`{{branch}} entfernen?`,removeConfirmMsg:`Entfernt das Worktree-Checkout und löscht seinen Branch. Nicht zusammengeführte Arbeit geht verloren.`,empty:`Keine Worktrees.`,emptyHint:`SDD-/Goal-Läufe erstellen hier isolierte Worktrees. Verwaiste abgestürzter Läufe erscheinen ebenfalls.`,actOpenTerm:`Im Terminal öffnen`,actOpenFolder:`Ordner öffnen`,actViewChanges:`Änderungen ansehen`,actMerge:`In Basis zusammenführen`,actRemove:`Entfernen / verwerfen`,live:`live`,noUncommitted:`Keine ungespeicherten Änderungen`,commitsAhead_one:`{{count}} Commit voraus`,commitsAhead_other:`{{count}} Commits voraus`,more:`…{{count}} mehr`},Te={heading:`Bürokarte`,headingHint:`Visualisieren Sie Ihre Flotte als Bürogrundriss mit Live-Agent-Status.`,statAgents:`Agenten`,statMail:`Post`,unreadSuffix:` ungelesen`,sectionView:`Ansicht`,sectionDisplay:`Anzeige`,sectionBackground:`Hintergrund`,sectionRecent:`Letzte Aktivität`,eventsTrackedSuffix:` Ereignisse verfolgt`,recentHint:`Post-Sends, Agent-Spawns und Statusänderungen erscheinen hier.`,sectionShortcuts:`Tastenkürzel`,sectionLegend:`Legende`,hudLabel:`HUD`,hudDesc:`Echtzeit-Sitzungsstatistik-Overlay anzeigen`,hudToggle:`HUD umschalten`,minimapLabel:`Minimap`,minimapDesc:`Übersichts-Minimap anzeigen`,minimapToggle:`Minimap umschalten`,controlsLabel:`Steuerung`,controlsDesc:`Zoom- und Fit-Steuerung anzeigen`,controlsToggle:`Steuerung umschalten`,animateLabel:`Kanten animieren`,animateDesc:`Fluss auf aktiven Verbindungen animieren`,animateToggle:`Kantenanimation umschalten`,legendLabel:`Legende anzeigen`,legendDesc:`Status- und Verbindungslegende anzeigen`,legendToggle:`Legende umschalten`,feedLabel:`Live-Feed`,feedDesc:`Unterer Streifen mit letzter prozessübergreifender Aktivität`,feedToggle:`Live-Feed umschalten`,fitView:`Anpassen`,zoomIn:`Vergrößern`,zoomOut:`Verkleinern`,resetZoom:`Zoom zurücksetzen`,legendActive:`Aktiv (läuft)`,legendIdle:`Inaktiv`,legendError:`Fehler`,legendOffline:`Offline`,bg:{dots:`Punkte`,lines:`Linien`,cross:`Kreuz`,none:`Keine`}},Ee={liveProjectOffice:`Live-Projektbüro`,agents:`Agents`,working:`aktiv`,toolCalls:`Tool-Aufrufe`,office:`Büro`,topology:`Topologie`,officeDescription:`Live-Agentenplätze und Arbeit`,topologyDescription:`Clients, Agenten und Verbindungen`,team:`Team`,liveDesk:`Live-Arbeitsplatz & eingehende Arbeit`,lastActions:`Letzte Arbeiten`,leadAgent:`Lead Agent`,agent:`Agent`,callsCount:`{{count}} Aufrufe`,recent:`Zuletzt`,noCalls:`Noch keine abgeschlossenen Aufrufe`,telemetryReconnect:`Terminal neu verbinden, um den Tool-Verlauf zu starten`,thinking:`Denkt nach`,waiting:`Wartet auf Arbeit`,preparing:`Nächste Aktion wird vorbereitet…`,deskReady:`Arbeitsplatz ist bereit`,toolCall:`Tool-Aufruf`,execution:`Ausführung`,started:`Gestartet`,duration:`Dauer`,session:`Sitzung`,target:`Ziel`,resultSize:`Ergebnisgröße`,lines:`Zeilen`,bytes:`Bytes`,tokens:`Tokens`,input:`Eingabe`,outputPreview:`Ausgabevorschau`,readyTitle:`Das Büro ist bereit`,readyBody:`Agents nehmen einen Platz ein, sobald sie diesem Projekt beitreten.`,liveEvent:`Live-Ereignisstrom`,connectedSessions_one:`{{count}} verbundene Sitzung`,connectedSessions_other:`{{count}} verbundene Sitzungen`,detailHint:`Aktion anklicken, um exakte Eingabe- und Ergebnisdetails zu sehen`,officeBriefing:`Büro-Briefing`,leaderPrompt:`Letzter Prompt des Leaders`,activeInstruction:`Aktive Anweisung`,telemetryWaiting:`Terminal neu verbinden, um Live-Anweisungen zu empfangen`,syncWaiting:`Warten auf Synchronisierung`,todoTelemetryWaiting:`Terminal neu verbinden, um die Live-Aufgabenliste zu empfangen`,taskNotReported:`Agent arbeitet, aber es wurde keine Aufgabenbeschreibung gemeldet`,noPrompt:`In dieser Sitzung wurde noch kein Prompt empfangen`,activeTodos:`Aktive Aufgaben`,todoProgress:`{{done}}/{{total}} erledigt`,allTodosDone:`Alle Aufgaben erledigt`,noActiveTodos:`Noch keine aktiven Aufgaben`,moreTodos:`+{{count}} weitere`,currentTask:`Aktuelle Aufgabe`,task:`Aufgabe`,promptReceived:`Empfangen`,todos:`Aufgaben`,todoStatus:{pending:`Ausstehend`,in_progress:`In Bearbeitung`,completed:`Abgeschlossen`},breakRoom:`Pausenraum`,onBreak:`{{count}} in der Pause`,desksEmpty:`Alle machen Pause — die Schreibtische sind bereit für die nächste Aufgabe`,files:`DATEIEN`,read:`LESEN`,write:`SCHREIBEN`,edit:`BEARBEITEN`,term:`TERM`,live:`LIVE`,uniqueFilesTouched:`Berührte eindeutige Dateien`,fileReads:`Dateilesevorgänge`,filesWritten:`Geschriebene Dateien`,filesEdited:`Bearbeitete Dateien`,linesAddedAndRemoved:`Hinzugefügte und entfernte Zeilen`,terminalCommands:`Terminalbefehle`,incomingAndOutgoingMail:`Ein- und ausgehende Nachrichten`,sessionActivityTotals:`Gesamtwerte der Sitzungsaktivität`,closeToolDetails:`Tool-Details schließen`,closeDetails:`Details schließen`,closeMailDetails:`Nachrichtendetails schließen`,closeTaskDetails:`Aufgabendetails schließen`,closeOfficeBriefing:`Büro-Briefing schließen`,priority:`Priorität`,route:`Route`},De={injectedHeading:`SAGE-Speicher eingefügt`,memoriesLabel_one:`{{count}} Erinnerung`,memoriesLabel_other:`{{count}} Erinnerungen`},Oe={tabProject:`SDD-Projekt`,tabBoard:`Live SDD-Board`,tabSpecs:`Spezifikationen`},ke={label:`Seitenleiste`},Ae={deleteTitle:`Diesen Speicher löschen?`,backToList:`Zurück zur Speicherliste`,copyId:`Speicher-ID kopieren`,deletedMemory:`Gelöschter Speicher`,anchorCursorHint:`Der Zeilenbereich des Cursors entspricht dem Anker dieses Speichers`,statusDeleted:`gelöscht`,statusSuperseded:`überschrieben`,restoreTitle:`Diesen Speicher in den aktiven Status zurückversetzen`,supersededJumpTitle:`Diese Version ist überschrieben — zur aktiven Version springen`,acceptSuggestionTitle:`Löschvorschlag der Hygiene annehmen — Speicher wird vergessen`,rejectSuggestionTitle:`Vorschlag ablehnen — Speicher bleibt unverändert und kann später erneut vorgeschlagen werden`,updateTitle:`Inhalt des Speichers aktualisieren — Versionierung erstellt einen neuen aktiven Datensatz`,promoteTitle:"Auf `permanent` anheben — Hygiene blendet dies nie wieder ein",openRecordTitle:`Vollständigen Datensatz in MemoryManager öffnen`,fileDrawerAria:`Datei-Speicher-Schublade`,requeryTitle:`Diese Datei erneut abfragen`,closeDrawerAria:`Schublade schließen`,closeDrawerTitle:`Speicher-Schublade schließen`,showRecoverable:`Wiederherstellbare anzeigen (gelöscht)`,cursorBoostTitle:`Cursor-Boost`,fileScopedTitle:`Dateibezogen`,mentionedInTitle:`Erwähnt in`,editorKnowledge:`Wissen`,editorContentPlaceholder:`Beispiel: Der WebUI-Zustand gehört zu Zustand-Stores; Servermeldungen aktualisieren diese Stores über Singleton-WebSocket-Handler.`,editorImportance:`Wichtigkeit`,editorConfidence:`Konfidenz`,editorFreshness:`Aktualität`,editorAnchors:`Anker`,editorSymbolPlaceholder:`Symbolname`,editorRelationships:`Beziehungen`,searchAria:`Speicher durchsuchen`,searchPlaceholder:`Inhalt, IDs, Tags, Anker durchsuchen…`,clearSearchAria:`Suche löschen`,audienceFilterAria:`Nur zielgruppengebunden filtern`,audienceFilterTitle:`Nur zielgruppengebundene Speicher anzeigen`,clearFiltersAria:`Alle Filter löschen`,clearFiltersTitle:`Alle Filter löschen`,allStatuses:`Alle Status`,allKinds:`Alle Arten`,tagsLabel:`Tags`,popularTags:`Beliebte Tags`,graphAria:`Speicher-Beziehungsgraph`,graphFullscreenAria:`Graphen im Vollbild öffnen`,clearTracesTitle:`Alle Spuren löschen`,closePanelTitle:`Panel schließen`,traceMatched:`übereinstimmend`,traceInjected:`eingefügt`,traceFiltered:`gefiltert`,traceActive:`aktiv`,traceExited:`beendet`,traceScore:`Punktzahl`,traceError:`Fehler`,lifecycleAria:`Live-Protokoll des Speicherlebenszyklus`,listAria:`Speicher`,emptyTitle:`Der langfristige Kontext Ihres Projekts`,emptyVerifiedAnchors:`Verifizierte Anker`,emptyTypedRelations:`Typisierte Beziehungen`,emptyAgentRecall:`Agent-Abruf`,lensesAria:`SAGE-Speicherlinsen`,loadingSage:`SAGE wird geladen`,loadingAudience:`Zielgruppenspeicher werden geladen`,storeUnavailable:`Speicher-Store nicht verfügbar`,backToChat:`Zurück zum Chat`,sageHeading:`SAGE`,refreshAria:`Speicher aktualisieren`,tabMemories:`Speicher`,tabActive:`Aktiv`,tabReview:`Prüfung`,tabNeedsReview:`Prüfung nötig`,reviewLoading:`Prüfungswarteschlange wird geladen…`,reviewLoadTimeout:`Prüfungswarteschlange hat nicht rechtzeitig geantwortet.`,reviewEmptyTitle:`Keine ausstehenden Prüfungen`,reviewEmptyHint:`Hygiene- und Triage-Vorschläge erscheinen hier zum Annehmen/Ablehnen.`,reviewPendingCount_one:`{{count}} ausstehende Prüfung`,reviewPendingCount_other:`{{count}} ausstehende Prüfungen`,reviewSelectAll:`Alle auswählen`,reviewClearSelection:`Auswahl aufheben`,reviewSelectOne:`Prüfungselement auswählen`,reviewBulkAccept:`Auswahl annehmen`,reviewBulkKeep:`Auswahl behalten`,tabGraphEdges:`Graphkanten`,libraryAria:`Speicherbibliothek`,viewAria:`Speicheransicht`,detailAria:`Speicherdetail`,fileForDrawerAria:`Datei für Speicher-Schublade`,cursorLabel:`Cursor`,reviewLabel:`Prüfung`,hygieneReviewTitle:`Hygiene-Prüfung: {{reason}} ({{days}} Tage alt)`,updatedSuffix:`aktualisiert {{date}}`,actionRecover:`Wiederherstellen`,actionGoToActive:`Zur aktiven Version`,actionAcceptDeletion:`Löschung akzeptieren`,actionKeep:`Behalten`,actionUpdate:`Aktualisieren`,actionMarkPermanent:`Als permanent markieren`,actionShowFull:`Vollständig anzeigen`,itemLabel:`Speicher`,noFile:`(keine Datei)`,memoriesCount_one:`{{count}} Speicher`,memoriesCount_other:`{{count}} Speicher`,pendingReviewCount_one:`{{count}} ausstehende Prüfung`,pendingReviewCount_other:`{{count}} ausstehende Prüfungen`,supersededCount:`{{count}} überschrieben`,linesRange:`Zeilen {{start}}–{{end}}`,emptyOpenFile:`Öffnen Sie eine Datei, um ihre Speicher zu sehen.`,loadingMemories:`Speicher werden geladen…`,errorPrefix:`Fehler: {{message}}`,emptyNoMemories:`Noch keine Speicher an {{file}} angehängt.`,pendingAccepting:`akzeptiere…`,pendingKeeping:`behalte…`,pendingUpdating:`aktualisiere…`,pendingMarking:`markiere…`,pendingRecovering:`stelle wieder her…`,deletedNeverPolicy:`Dieser Datensatz dient nur der Prüfung und trägt ein absolutes Verbot: Er darf niemals in den LLM-Kontext gelangen.`,deletedEligiblePolicy:`Der Datensatz ist inaktiv und nicht bearbeitbar, bleibt aber als historisches Beweisstück geeignet, wenn die Abfrage ihn als relevant findet.`,deletingLabel:`Wird gelöscht…`,actionDeleteMemory:`Speicher löschen`,copiedNotice:`Speicher-ID kopiert.`,revisionSuffix:`Revision {{n}}`,memoryRelationships:`Speicherbeziehungen`,captureMemory:`Einen Speicher erfassen`,editMemory:`Speicher bearbeiten`,editorCreateHint:`Dauerhaftes Wissen mit Abruf-Metadaten hinzufügen.`,editorEditHint:`Inhalt aktualisieren, ohne die Herkunft zu verlieren.`,createMemory:`Speicher erstellen`,saveChanges:`Änderungen speichern`,addAnchor:`Anker hinzufügen`,noAnchors:`Noch keine Anker — fügen Sie einen hinzu, um die Abrufpräzision zu verbessern`,loadingGraph:`echter Graph wird geladen…`,graphStats:`{{nodes}} Knoten · {{edges}} Kanten`,lifecycleHeading:`Speicherlebenszyklus`,statusWaiting:`wartet`,statusLive:`live · {{count}}/100`,noMatching:`Keine passenden Speicher`,buildGraph:`Speichergraph erstellen`,clearFilters:`Filter löschen`,createFirst:`Ersten Speicher erstellen`,captureButton:`Speicher erfassen`,memoryCaptured:`Speicher erfasst.`,memoryUpdated:`Speicher aktualisiert.`,liveStore:`Live-Speicher`,reconnecting:`wird neu verbunden`,newMemory:`Neuer Speicher`,hideFileDrawer:`Datei-Speicher-Schublade ausblenden`,showFileDrawer:`Datei-Speicher-Schublade einblenden`,hideDrawer:`Schublade ausblenden`,showDrawer:`Schublade einblenden`,editorCharCount:`{{count}} Zeichen`,editorContentLabel:`Speicherinhalt`,editorKind:`Art`,editorScope:`Bereich`,editorLifecycleStatus:`Lebenszyklusstatus`,editorSupersedes:`Ersetzt`,editorContradicts:`Widerspricht`,filterByStatus:`Nach Status filtern`,filterByKind:`Nach Art filtern`,graphHeading:`Beziehungsgraph`,graphHeadingFull:`Beziehungsgraph — {{id}}`,graphOpenFullscreen:`Vollbild öffnen`,projectKnowledge:`Projektwissen`,sageSubtitle:`Dauerhaften Kontext prüfen, verbinden, kuratieren und ausmustern, der in Agentensitzungen verwendet wird.`,emptyBody:`Wählen Sie einen Speicher, um Metadaten und Beziehungsgraph zu prüfen, oder erfassen Sie Wissen, das künftige Agenten automatisch abrufen sollen.`,tabDeleted:`Gelöscht`,fileDrawerLabel:`Datei-Schublade`,selectFilePlaceholder:`— Datei auswählen —`,memoryCountSummary:`{{shown}} von {{total}} Speichern`,updatedSortLabel:`aktualisiert ↓`,searchBreakdownAria:`Suchaufschlüsselung`,searchBreakdownTitle:`Suche: {{query}}`,searchBreakdownDual:`dualkanal`,searchBreakdownLexicalOnly:`nur lexikalisch`,searchBreakdownLoading:`Dualkanalsuche läuft…`,searchBreakdownEmpty:`Keine Treffer in einem der Kanäle.`,searchBreakdownSourceLabel:`Quelle: {{source}}`,tabAllMemories:`Alle Speicher`,tabAllMemoriesHint:`Prüfen, kuratieren, ausmustern`,tabAudience:`Zielgruppenbezogen`,tabAudienceHint:`An Agenten geroutete Anleitung`,editorRelationshipsHint:`Verweisen Sie auf exakte Speicher-IDs. Beziehungen werden validiert und Graphkanten von SAGE neu aufgebaut.`,editorTaskTypes:`Aufgabentypen`,createAction:`Erstellen`,mutationTimeout:`{{verb}} abgelaufen. Ihr Entwurf ist noch da.`,loadingSageContent:`SAGE-Inhalt wird geladen`,injectorActiveInContext:`Im Kontext aktiv`,injectorInjectionHistory:`Injektionsverlauf`,injectorContextTransitions:`Kontextübergänge`,metaCreated:`Erstellt`,metaUpdated:`Aktualisiert`,metaLastAccessed:`Zuletzt aufgerufen`,metaLastVerified:`Zuletzt verifiziert`,referencedUnavailable:`Referenzierter Speicher nicht verfügbar`,emptyFiltered:`Ändern Sie die Filter oder leeren Sie die Suchanfrage.`,emptyCapture:`Erfassen Sie dauerhafte Fakten, Entscheidungen, Konventionen und dateigebundene Notizen für jeden Agenten.`,memoryUnavailable:`Der Eintrag ist nicht verfügbar oder wurde entfernt.`,staleConflicts:`veraltet + Konflikte`},je={enableLayer:`Diese Grenzschicht aktivieren`,outsideScope:`Außerhalb des Geltungsbereichs`,askPermission:`Um Erlaubnis fragen`,alwaysBlock:`Immer blockieren`,allow:`Erlauben`,allowSelectors:`Selektoren erlauben`,denySelectors:`Selektoren verweigern`,crossPathSelectors:`Die Shell „Erlauben“ ist opak und kann pfadübergreifende Selektoren durchlassen.`,removeLayer:`Schicht entfernen`,taskInspector:`Task-Inspektor`,task:`Task`,dispatched:`Gesendet`,collapseDetails:`Task-Details einklappen`,taskBoundary:`Task-Grenze`,title:`Titel`,managedStage:`Verwaltete Stufe`,status:`Status`,priority:`Priorität`,type:`Typ`,labelsCommaSeparated:`Labels (durch Komma getrennt)`,dueDatePlaceholder:`Fälligkeitsdatum (ISO oder JJJJ-MM-TT)`,estimatedHours:`Geschätzte Stunden`,actualHours:`Tatsächliche Stunden`,selectBlockingTasks:`Blockierende Tasks auswählen…`,selectSequentialChain:`Tasks zu einer sequenziellen Kette hinzufügen…`,enforceChainOrder:`Kettenreihenfolge als Abhängigkeiten erzwingen`,assignmentReason:`Änderungs- / Zuweisungsgrund (in Aktivität gespeichert)`,managedLifecycle:`Verwalteter Lebenszyklusübergang`,kanbanAgentTransition:`Kanban-Agent-Übergang`,completedAction:`Abgeschlossene Aktion / Reviewer-Aktion`,progressComment:`Wahrheitsgemäßer Fortschrittskommentar (erforderlich)`,evidenceUrl:`URL des Beleganhangs`,source:`Quelle`,taskId:`Task-ID`,run:`Ausführen`,column:`Spalte`,primaryModelSource:`Primäre Modellquelle`,selectProviderModel:`Genauen Anbieter / Modell auswählen…`,fallbackProfile:`Fallback-Profil (erstes Modell ist primär)`,selectProfile:`Konfiguriertes Profil auswählen…`,fallbackModels:`Fallback-Modelle`,addFallbackModel:`Fallback-Modell hinzufügen…`,role:`Rolle`,selectRole:`Rolle auswählen…`,assignSkills:`Erforderliche Fähigkeiten zuweisen…`,restrictTools:`Auf bestimmte Tools beschränken…`,agentNameOptional:`Agentenname (optional)`,retryPolicy:`Wiederholungsrichtlinie`,maxAttempts:`Maximale Versuche`,costCeilingUsd:`Kostenobergrenze USD`,grantCapability:`Fähigkeit gewähren…`,targetBoard:`Ziel-Board`,boardPresence:`Board-Präsenz`,liveBoardUsers:`Aktive Board-Benutzer`,kanbanAgent:`Kanban-Agent`,watchThisBoard:`Dieses Board beobachten`,supervisorEngine:`Supervisor-Engine`,kanbanAgentModelSource:`Kanban-Agent-Modellquelle`,supervisorSkills:`Supervisor-Fähigkeiten`,forceLoadSkills:`Agentische Fähigkeiten laden erzwingen…`,extraFallbackModels:`Zusätzliche Fallback-Modelle`,optionalFallbacks:`Optionale geordnete Fallbacks…`,queueHealth:`Warteschlangenstatus`,claimableTasks:`Beanspruchbare Tasks`,runningAssignments:`Laufende Zuweisungen`,inReview:`In Überprüfung`,manuallyBlocked:`Manuell blockiert`,failedTasks:`Fehlgeschlagene Tasks`,blockedByDeps:`Bereit/anstehend, blockiert durch Abhängigkeiten`,expiredLeases:`Abgelaufene Lease-Zuweisungen`,healthy:`gesund`,costCeilingSum:`Summe der costCeilingUsd für laufende/queued Tasks`,liveRunSteer:`Live-Lauf — hier steuern`,openLiveRun:`Live-Lauf-Ansicht öffnen (SDD Hub)`,runAsLiveJob:`Dieses Board als Live-Agent-Job ausführen:`,startAsGoal:`Als Ziel starten`,startAsSdd:`Als SDD starten`,runControls:`Ausführungssteuerung`,workerModel:`Worker-Modell`,setModelForTask:`Modell für diesen Task festlegen…`,newWorkerName:`Neuer Worker-Name`,duration:`Dauer`,liveRun:`Live-Lauf`,lastResult:`Letztes Ergebnis`,definitionOfDone:`Definition of Done`,failingChecks:`Fehlgeschlagene Prüfungen`,evidenceMissing:`Belege fehlen (Agent/Council-Prüfungen ohne unterstützende Referenzen)`,needsDecomposition:`Zerlegung erforderlich`,decompositionPending:`Zerlegungsvorschläge warten auf Genehmigung`,noOutstanding:`Keine offenen Überprüfungs- oder Zerlegungsprobleme auf diesem Board.`,kanban:`Kanban`,newBoard:`Neues Board`,createBoard:`Board erstellen`,deleteTask:`Task löschen`,runFailed:`Ausführung fehlgeschlagen`,splitPendingApproval:`Aufteilung wartet auf Genehmigung`,newTask:`Neuer Task`,addTask:`Task hinzufügen`,duplicateBoard:`Board duplizieren`,boardHistory:`Board-Verlauf`,noHistory:`Noch kein Verlauf`,confirmDelete:`Bestätigen?`,confirmDeleteBoard:`Erneut klicken, um das Löschen des Boards zu bestätigen`,deleteBoard:`Board löschen`,boardBoundary:`Board-Grenze`,noBoardSelected:`Kein Kanban-Board ausgewählt.`,expandDetails:`Task-Details erweitern`,elapsed:`Verstrichen`,assigned:`Zugewiesen`,configuredAgentRoute:`die konfigurierte Agent-Route`,subagent:`Subagent`,checkedAgo:`vor {{ago}} geprüft`,notChecked:`nicht geprüft`,auditInterval:`Prüfintervall (Sekunden)`,statusReady:`bereit`,statusRunning:`läuft`,statusReview:`prüfung`,statusBlocked:`blockiert`,statusFailed:`fehlgeschlagen`,statusBlockedByDeps:`durch Abhängigkeiten blockiert`,statusStale:`veraltet`,runningCost:"~${{cost}} laufende Kosten",actionPause:`Pause`,actionResume:`Fortsetzen`,actionRetryFailed:`Fehlgeschlagene erneut versuchen`,actionStop:`Stopp`,actionReassign:`Neu zuweisen`,actionRunNow:`Jetzt ausführen`,deleteTaskAria:`Task löschen: {{title}}`,confirmDeleteTask:`Erneut klicken, um das Löschen der Aufgabe zu bestätigen`,confirmDeleteTaskAria:`Löschen bestätigen: {{title}}`,moveTaskToColumn:`{{title}} in Spalte verschieben`,activityNoteTemplate:`{{action}} von WebUI an {{target}}.`},Me={heading:`Cron-Jobs`,subtitle:`Geplante wiederkehrende Aufgaben, verwaltet vom Cron-Plugin.`,statusDisabled:`Deaktiviert`,statusOverdue:`Überfällig`,statusActive:`Aktiv`,jobCount_one:`{{count}} Job`,jobCount_other:`{{count}} Jobs`,enabledCount:`{{count}} aktiviert`,overdueCount:`{{count}} überfällig`,totalRuns:`{{count}} Läufe gesamt`,maxConcurrent:`max. {{count}} gleichzeitig`,emptyTitle:`Keine Cron-Jobs geplant.`,emptyUse:`Zum Hinzufügen`,emptyToAdd:`verwenden.`,thStatus:`Status`,thName:`Name`,thInterval:`Intervall`,thRuns:`Läufe`,thNextRun:`Nächster Lauf`,thLastRun:`Letzter Lauf`,thAction:`Aktion`,lastFiredAtTitle:`Zuletzt ausgelöst um {{time}}`,footerUse:`Zum Hinzufügen`,footerToAdd:`verwenden,`,footerToRemove:`zum Entfernen verwenden.`},Ne={refreshRosterData:`Roster-Daten aktualisieren`,liveEmpty:`Agenten erscheinen hier, wenn Subagenten spawnen`,fleetInspector:`Flotteninspektor`,openAgentsPanel:`Agenten-Panel öffnen`,toolCalls:`Werkzeugaufrufe`,running:`Läuft`,projectAgents:`Projekt-Agenten`,createOrCloneTitle:`Projekt-Agent erstellen oder klonen`,createOrCloneHint:`Beliebigen Roster-Agenten als Vorlage übernehmen und dann eine eigene Identität, Laufzeitrichtlinie und Lernhistorie entwickeln.`,cloneFromRole:`Aus Roster-Rolle klonen`,cloneHint:`Prompt, Werkzeuge, Fähigkeiten und Standardeinstellungen werden übernommen. Lernen und spätere Änderungen bleiben auf den neuen Agenten beschränkt.`,displayName:`Anzeigename`,descriptionPlaceholder:`Eigene X-, Y- und Z-Workflows für dieses Projekt besitzen und Ergebnisse überprüfen.`,creating:`Wird erstellt…`,noCustomizations:`Noch keine Anpassungen`,selectAgentEmpty:`Agent zum Bearbeiten der Anpassungen auswählen`,saving:`Wird gespeichert…`,saveFailed:`Speichern fehlgeschlagen`,failed:`Fehlgeschlagen`,learningResumed:`Automatisches Lernen fortgesetzt`,optimizationEmptyToast:`Optimierung ergab ein leeres Ergebnis. Bitte erneut versuchen.`,noActiveModelToast:`Kein aktives Modell auf dem Server. Optimierung an den Chat-Agenten gesendet.`,learningsEmpty:`Lerneinträge erscheinen, wenn Agenten Ausgaben erfassen`,allRosterAgents:`Alle Roster-Agenten`,optimizing:`Optimiert…`,paused:`pausiert`,selectLearningAgent:`Agent zum Anzeigen der Lerndetails auswählen`,learningOn:`Lernen aktiv`,lastCapture:`Letzte Erfassung`,lifetimeCaptures:`Lebenszeit-Erfassungen`,hitRate:`Trefferquote`,neverUsed:`Nie verwendet`,learningsLimitExceeded:`Gelernte Daten überschreiten das weiche Limit ({{bytes}}B / 8.192B). Optimieren, um Roheinträge zu einem konsolidierten Dokument zusammenzufassen und das Kontextvolumen zu reduzieren.`,newPending:`neu ausstehend`,viewAction:`Anzeigen`,applying:`Wird angewendet…`,searchPlaceholder:`Agenten nach Name, Rolle oder Beschreibung suchen…`,maxIterations:`Max. Iterationen`,maxToolCalls:`Max. Werkzeugaufrufe`,projectCustomizations:`Projekt-Anpassungen`,learnedEntries:`gelernte Einträge`,teachFailed:`Lehren fehlgeschlagen`,selectRoleEmpty:`Rolle zum Prüfen oder Bearbeiten auswählen`,captureLearned:`Gelerntes erfassen`,teachThisAgent:`Diesen Agenten lehren`,teachPlaceholder:`Beschreiben, was dieser Agent besser machen soll … z. B. „Dieser Agent soll Versionen immer von npm prüfen, bevor er sie empfiehlt“`,heading:`Agenten-Roster`,headerSummary:`{{customized}} angepasst · {{entries}} gelernte Einträge`,tabLive:`Live-Flotte`,tabCatalog:`Roster-Katalog`,tabLearning:`Selbstlernen`,tabCustomize:`Anpassung`,learning:`lernt`,learningPaused:`Lernen pausiert`,autoLearningPaused:`Automatisches Lernen pausiert`,toolsCount_one:`{{count}} Tool`,toolsCount_other:`{{count}} Tools`,maxItShort:`max. {{value}} Iter.`,customizedBadge:`Angepasst`,needsSummary:`⚠ Zusammenfassung nötig`,timeout:`Zeitlimit`,learnedEntriesCount_one:`{{count}} gelernter Eintrag`,learnedEntriesCount_other:`{{count}} gelernte Einträge`,sessionCapturesCount_one:`{{count}} Sitzungserfassung`,sessionCapturesCount_other:`{{count}} Sitzungserfassungen`,noAgentsMatch:`Keine Agenten passen zu „{{query}}“`,footerRosterRoles_one:`Roster-Rolle`,footerRosterRoles_other:`Roster-Rollen`,footerCustomized:`angepasst`,footerTotalLearned_one:`gelernter Eintrag insgesamt`,footerTotalLearned_other:`gelernte Einträge insgesamt`,clone:`+ Klonen`,abc:`ABC`,abcGeneratedFromName:`abc (aus dem Namen erzeugt)`,roleIdOptional:`Rollen-ID (optional)`,purpose:`Zweck`,taskTypesCommaOrOnePer:`Aufgabentypen (kommagetrennt oder einer pro Zeile)`,cancel:`Abbrechen`,selectAnAgentToEditCustomizations:`Wählen Sie einen Agenten, um Anpassungen zu bearbeiten`,llmImprove:`LLM-Verbesserung`,reset:`Zurücksetzen`,editIdentityMd:`identity.md bearbeiten`,editLearnedMd:`learned.md bearbeiten`,editConfigJson:`config.json bearbeiten`,runtimePolicy:`Laufzeitrichtlinie`,retry:`Erneut versuchen`,noSelfLearningDataYet:`Noch keine Selbstlerndaten`,review:`prüfen →`,selectAnAgentToViewLearning:`Wählen Sie einen Agenten, um Lerndetails anzuzeigen`,entries:`Einträge`,size:`Größe`,optimizeLearnings:`Gelerntes optimieren`,keep:`Behalten`,drop:`Verwerfen`,describeACommandPatternOrBehavior:`Beschreiben Sie einen Befehl, ein Muster oder ein Verhalten, das dieser Agent sich merken soll.`,eGAlwaysUsePnpmForThisProject:`z. B. Für dieses Projekt immer pnpm verwenden`,teach:`Beibringen`,noActiveFleetAgents:`Keine aktiven Flottenagenten`,clear:`Leeren`,agentsTotal:`Agenten insgesamt`,leader:`Leiter`,iterations:`Iterationen`,cost:`Kosten`,context:`Kontext`,contextWindow:`Kontextfenster`,error:`Fehler`,filterAll:`Alle ({{count}})`,filterRunning:`Laufend ({{count}})`,filterDone:`Fertig ({{count}})`,filterFailed:`Fehlgeschlagen ({{count}})`,optimizeAll:`Alle optimieren ({{count}})`,policyUpdateFailed:`Richtlinienaktualisierung fehlgeschlagen`,noRawEntries:`Noch keine Rohdaten zum Optimieren.`,optimizedOk:`Optimiert. Konsolidiertes Wissen aktualisiert.`,emptySynthesis:`Das Modell lieferte ein leeres Ergebnis. Es wurde nichts geändert – bitte erneut versuchen.`,consolidatedWithModel:`Gelerntes mit {{model}} konsolidiert.`,consolidatedPlain:`Gelerntes konsolidiert.`,resetConfirm:`Alle projektspezifischen Daten für den Agenten „{{role}}“ zurücksetzen?`,loadCustomizationFailed:`Anpassung konnte nicht geladen werden`,loadRuntimePolicyFailed:`Laufzeitrichtlinie konnte nicht geladen werden`,runtimePolicySaveFailed:`Speichern der Laufzeitrichtlinie fehlgeschlagen`,llmImprovementFailed:`LLM-Verbesserung fehlgeschlagen`,agentCreationFailed:`Agentenerstellung fehlgeschlagen`,noActiveModelMsg:`Kein aktives Modell auf dem Server – Optimierung stattdessen an den Chat-Agenten gesendet.`,optimizationFailed:`Optimierung fehlgeschlagen`,bulkOptimizationFailed:`Massenoptimierung fehlgeschlagen`,taskTypesPlaceholder:`X-Workflow
5
+ Trigger: User sagt "Schlüsselwort", "anderes".`,saveIn:`Speichern in:`,createBtn:`Skill Erstellen`,createdMsg:`Erstellt: {{name}}`,createFailed:`Erstellung fehlgeschlagen`},Se={noEvents:`Noch keine Ereignisse.`},Ce={pickHint:`Kit wählen — der Agent hält sich daran.`,gallery:`Galerie`,galleryTitle:`Live-Vorschau-Galerie öffnen`,stackTitle:`Ziel-Stack`,loading:`Kits werden geladen…`,notFound:`Keine Design-Kits gefunden.`,bestFor:`Am besten für:`,light:`Hell`,dark:`Dunkel`,tune:`Feinabstimmung`,font:`Schriftart`,set:`Setzen`,spaceGrotesk:`Space Grotesk…`,aaHeading:`Aa Überschrift`,theQuickBrownFoxJumpsOver:`Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.`,primary:`Primär`,ghost:`Ghost`,badge:`Badge`,inputField:`Eingabefeld…`,radius:`Radius`,density:`Dichte`,motion:`Bewegung`},we={detached:`(losgelöst)`,count_one:`{{count}} Worktree`,count_other:`{{count}} Worktrees`,baseSuffix:` · Basis {{base}}`,baseLabel:`Basis`,cleanOrphans:`Verwaiste entfernen`,cleanOrphansTitle:`Alle verwaisten Worktrees entfernen`,liveBusyTitle:`Ein Lauf ist aktiv — zuerst stoppen`,rescanTitle:`Neu scannen`,removed_one:`{{count}} Worktree entfernt.`,removed_other:`{{count}} Worktrees entfernt.`,failed:`Fehlgeschlagen`,mergedIntoBase:`{{branch}} in Basis zusammengeführt.`,conflictMerge:`Konflikt beim Zusammenführen von {{branch}}: {{files}}`,seeGit:`siehe git`,mergeFailed:`Zusammenführen fehlgeschlagen: {{reason}}`,unknownReason:`unbekannt`,mergeConfirmTitle:`{{branch}} in {{base}} zusammenführen?`,mergeConfirmMsg:`Squash-merged diesen Branch auf den Basis-Branch. Bricht sauber ab bei Konflikten.`,mergeAction:`Zusammenführen`,removeConfirmTitle:`{{branch}} entfernen?`,removeConfirmMsg:`Entfernt das Worktree-Checkout und löscht seinen Branch. Nicht zusammengeführte Arbeit geht verloren.`,empty:`Keine Worktrees.`,emptyHint:`SDD-/Goal-Läufe erstellen hier isolierte Worktrees. Verwaiste abgestürzter Läufe erscheinen ebenfalls.`,actOpenTerm:`Im Terminal öffnen`,actOpenFolder:`Ordner öffnen`,actViewChanges:`Änderungen ansehen`,actMerge:`In Basis zusammenführen`,actRemove:`Entfernen / verwerfen`,live:`live`,noUncommitted:`Keine ungespeicherten Änderungen`,commitsAhead_one:`{{count}} Commit voraus`,commitsAhead_other:`{{count}} Commits voraus`,more:`…{{count}} mehr`},Te={heading:`Bürokarte`,headingHint:`Visualisieren Sie Ihre Flotte als Bürogrundriss mit Live-Agent-Status.`,statAgents:`Agenten`,statMail:`Post`,unreadSuffix:` ungelesen`,sectionView:`Ansicht`,sectionDisplay:`Anzeige`,sectionBackground:`Hintergrund`,sectionRecent:`Letzte Aktivität`,eventsTrackedSuffix:` Ereignisse verfolgt`,recentHint:`Post-Sends, Agent-Spawns und Statusänderungen erscheinen hier.`,sectionShortcuts:`Tastenkürzel`,sectionLegend:`Legende`,hudLabel:`HUD`,hudDesc:`Echtzeit-Sitzungsstatistik-Overlay anzeigen`,hudToggle:`HUD umschalten`,minimapLabel:`Minimap`,minimapDesc:`Übersichts-Minimap anzeigen`,minimapToggle:`Minimap umschalten`,controlsLabel:`Steuerung`,controlsDesc:`Zoom- und Fit-Steuerung anzeigen`,controlsToggle:`Steuerung umschalten`,animateLabel:`Kanten animieren`,animateDesc:`Fluss auf aktiven Verbindungen animieren`,animateToggle:`Kantenanimation umschalten`,legendLabel:`Legende anzeigen`,legendDesc:`Status- und Verbindungslegende anzeigen`,legendToggle:`Legende umschalten`,feedLabel:`Live-Feed`,feedDesc:`Unterer Streifen mit letzter prozessübergreifender Aktivität`,feedToggle:`Live-Feed umschalten`,fitView:`Anpassen`,zoomIn:`Vergrößern`,zoomOut:`Verkleinern`,resetZoom:`Zoom zurücksetzen`,legendActive:`Aktiv (läuft)`,legendIdle:`Inaktiv`,legendError:`Fehler`,legendOffline:`Offline`,bg:{dots:`Punkte`,lines:`Linien`,cross:`Kreuz`,none:`Keine`}},Ee={liveProjectOffice:`Live-Projektbüro`,agents:`Agents`,working:`aktiv`,toolCalls:`Tool-Aufrufe`,office:`Büro`,topology:`Topologie`,officeDescription:`Live-Agentenplätze und Arbeit`,topologyDescription:`Clients, Agenten und Verbindungen`,team:`Team`,liveDesk:`Live-Arbeitsplatz & eingehende Arbeit`,lastActions:`Letzte Arbeiten`,leadAgent:`Lead Agent`,agent:`Agent`,callsCount:`{{count}} Aufrufe`,recent:`Zuletzt`,noCalls:`Noch keine abgeschlossenen Aufrufe`,telemetryReconnect:`Terminal neu verbinden, um den Tool-Verlauf zu starten`,thinking:`Denkt nach`,waiting:`Wartet auf Arbeit`,preparing:`Nächste Aktion wird vorbereitet…`,deskReady:`Arbeitsplatz ist bereit`,toolCall:`Tool-Aufruf`,execution:`Ausführung`,started:`Gestartet`,duration:`Dauer`,session:`Sitzung`,target:`Ziel`,resultSize:`Ergebnisgröße`,lines:`Zeilen`,bytes:`Bytes`,tokens:`Tokens`,input:`Eingabe`,outputPreview:`Ausgabevorschau`,readyTitle:`Das Büro ist bereit`,readyBody:`Agents nehmen einen Platz ein, sobald sie diesem Projekt beitreten.`,liveEvent:`Live-Ereignisstrom`,connectedSessions_one:`{{count}} verbundene Sitzung`,connectedSessions_other:`{{count}} verbundene Sitzungen`,detailHint:`Aktion anklicken, um exakte Eingabe- und Ergebnisdetails zu sehen`,officeBriefing:`Büro-Briefing`,leaderPrompt:`Letzter Prompt des Leaders`,activeInstruction:`Aktive Anweisung`,telemetryWaiting:`Terminal neu verbinden, um Live-Anweisungen zu empfangen`,syncWaiting:`Warten auf Synchronisierung`,todoTelemetryWaiting:`Terminal neu verbinden, um die Live-Aufgabenliste zu empfangen`,taskNotReported:`Agent arbeitet, aber es wurde keine Aufgabenbeschreibung gemeldet`,noPrompt:`In dieser Sitzung wurde noch kein Prompt empfangen`,activeTodos:`Aktive Aufgaben`,todoProgress:`{{done}}/{{total}} erledigt`,allTodosDone:`Alle Aufgaben erledigt`,noActiveTodos:`Noch keine aktiven Aufgaben`,moreTodos:`+{{count}} weitere`,currentTask:`Aktuelle Aufgabe`,task:`Aufgabe`,promptReceived:`Empfangen`,todos:`Aufgaben`,todoStatus:{pending:`Ausstehend`,in_progress:`In Bearbeitung`,completed:`Abgeschlossen`},breakRoom:`Pausenraum`,onBreak:`{{count}} in der Pause`,desksEmpty:`Alle machen Pause — die Schreibtische sind bereit für die nächste Aufgabe`,files:`DATEIEN`,read:`LESEN`,write:`SCHREIBEN`,edit:`BEARBEITEN`,term:`TERM`,live:`LIVE`,uniqueFilesTouched:`Berührte eindeutige Dateien`,fileReads:`Dateilesevorgänge`,filesWritten:`Geschriebene Dateien`,filesEdited:`Bearbeitete Dateien`,linesAddedAndRemoved:`Hinzugefügte und entfernte Zeilen`,terminalCommands:`Terminalbefehle`,incomingAndOutgoingMail:`Ein- und ausgehende Nachrichten`,sessionActivityTotals:`Gesamtwerte der Sitzungsaktivität`,closeToolDetails:`Tool-Details schließen`,closeDetails:`Details schließen`,closeMailDetails:`Nachrichtendetails schließen`,closeTaskDetails:`Aufgabendetails schließen`,closeOfficeBriefing:`Büro-Briefing schließen`,priority:`Priorität`,route:`Route`},De={injectedHeading:`SAGE-Speicher eingefügt`,memoriesLabel_one:`{{count}} Erinnerung`,memoriesLabel_other:`{{count}} Erinnerungen`},Oe={tabProject:`SDD-Projekt`,tabBoard:`Live SDD-Board`,tabSpecs:`Spezifikationen`},ke={label:`Seitenleiste`},Ae={deleteTitle:`Diesen Speicher löschen?`,backToList:`Zurück zur Speicherliste`,copyId:`Speicher-ID kopieren`,deletedMemory:`Gelöschter Speicher`,anchorCursorHint:`Der Zeilenbereich des Cursors entspricht dem Anker dieses Speichers`,statusDeleted:`gelöscht`,statusSuperseded:`überschrieben`,restoreTitle:`Diesen Speicher in den aktiven Status zurückversetzen`,supersededJumpTitle:`Diese Version ist überschrieben — zur aktiven Version springen`,acceptSuggestionTitle:`Löschvorschlag der Hygiene annehmen — Speicher wird vergessen`,rejectSuggestionTitle:`Vorschlag ablehnen — Speicher bleibt unverändert und kann später erneut vorgeschlagen werden`,updateTitle:`Inhalt des Speichers aktualisieren — Versionierung erstellt einen neuen aktiven Datensatz`,promoteTitle:"Auf `permanent` anheben — Hygiene blendet dies nie wieder ein",openRecordTitle:`Vollständigen Datensatz in MemoryManager öffnen`,fileDrawerAria:`Datei-Speicher-Schublade`,requeryTitle:`Diese Datei erneut abfragen`,closeDrawerAria:`Schublade schließen`,closeDrawerTitle:`Speicher-Schublade schließen`,showRecoverable:`Wiederherstellbare anzeigen (gelöscht)`,cursorBoostTitle:`Cursor-Boost`,fileScopedTitle:`Dateibezogen`,mentionedInTitle:`Erwähnt in`,editorKnowledge:`Wissen`,editorContentPlaceholder:`Beispiel: Der WebUI-Zustand gehört zu Zustand-Stores; Servermeldungen aktualisieren diese Stores über Singleton-WebSocket-Handler.`,editorImportance:`Wichtigkeit`,editorConfidence:`Konfidenz`,editorFreshness:`Aktualität`,editorAnchors:`Anker`,editorSymbolPlaceholder:`Symbolname`,editorRelationships:`Beziehungen`,searchAria:`Speicher durchsuchen`,searchPlaceholder:`Inhalt, IDs, Tags, Anker durchsuchen…`,clearSearchAria:`Suche löschen`,audienceFilterAria:`Nur zielgruppengebunden filtern`,audienceFilterTitle:`Nur zielgruppengebundene Speicher anzeigen`,clearFiltersAria:`Alle Filter löschen`,clearFiltersTitle:`Alle Filter löschen`,allStatuses:`Alle Status`,allKinds:`Alle Arten`,tagsLabel:`Tags`,popularTags:`Beliebte Tags`,graphAria:`Speicher-Beziehungsgraph`,graphFullscreenAria:`Graphen im Vollbild öffnen`,clearTracesTitle:`Alle Spuren löschen`,closePanelTitle:`Panel schließen`,traceMatched:`übereinstimmend`,traceInjected:`eingefügt`,traceFiltered:`gefiltert`,traceActive:`aktiv`,traceExited:`beendet`,traceScore:`Punktzahl`,traceError:`Fehler`,lifecycleAria:`Live-Protokoll des Speicherlebenszyklus`,listAria:`Speicher`,emptyTitle:`Der langfristige Kontext Ihres Projekts`,emptyVerifiedAnchors:`Verifizierte Anker`,emptyTypedRelations:`Typisierte Beziehungen`,emptyAgentRecall:`Agent-Abruf`,lensesAria:`SAGE-Speicherlinsen`,loadingSage:`SAGE wird geladen`,loadingAudience:`Zielgruppenspeicher werden geladen`,loadingVectorMemory:`Vektorspeicher wird geladen`,storeUnavailable:`Speicher-Store nicht verfügbar`,backToChat:`Zurück zum Chat`,sageHeading:`SAGE`,refreshAria:`Speicher aktualisieren`,tabMemories:`Speicher`,tabActive:`Aktiv`,tabReview:`Prüfung`,tabNeedsReview:`Prüfung nötig`,reviewLoading:`Prüfungswarteschlange wird geladen…`,reviewLoadTimeout:`Prüfungswarteschlange hat nicht rechtzeitig geantwortet.`,reviewEmptyTitle:`Keine ausstehenden Prüfungen`,reviewEmptyHint:`Hygiene- und Triage-Vorschläge erscheinen hier zum Annehmen/Ablehnen.`,reviewPendingCount_one:`{{count}} ausstehende Prüfung`,reviewPendingCount_other:`{{count}} ausstehende Prüfungen`,reviewSelectAll:`Alle auswählen`,reviewClearSelection:`Auswahl aufheben`,reviewSelectOne:`Prüfungselement auswählen`,reviewBulkAccept:`Auswahl annehmen`,reviewBulkKeep:`Auswahl behalten`,tabGraphEdges:`Graphkanten`,libraryAria:`Speicherbibliothek`,viewAria:`Speicheransicht`,detailAria:`Speicherdetail`,fileForDrawerAria:`Datei für Speicher-Schublade`,cursorLabel:`Cursor`,reviewLabel:`Prüfung`,hygieneReviewTitle:`Hygiene-Prüfung: {{reason}} ({{days}} Tage alt)`,updatedSuffix:`aktualisiert {{date}}`,actionRecover:`Wiederherstellen`,actionGoToActive:`Zur aktiven Version`,actionAcceptDeletion:`Löschung akzeptieren`,actionKeep:`Behalten`,actionUpdate:`Aktualisieren`,actionMarkPermanent:`Als permanent markieren`,actionShowFull:`Vollständig anzeigen`,itemLabel:`Speicher`,noFile:`(keine Datei)`,memoriesCount_one:`{{count}} Speicher`,memoriesCount_other:`{{count}} Speicher`,pendingReviewCount_one:`{{count}} ausstehende Prüfung`,pendingReviewCount_other:`{{count}} ausstehende Prüfungen`,supersededCount:`{{count}} überschrieben`,linesRange:`Zeilen {{start}}–{{end}}`,emptyOpenFile:`Öffnen Sie eine Datei, um ihre Speicher zu sehen.`,loadingMemories:`Speicher werden geladen…`,errorPrefix:`Fehler: {{message}}`,emptyNoMemories:`Noch keine Speicher an {{file}} angehängt.`,pendingAccepting:`akzeptiere…`,pendingKeeping:`behalte…`,pendingUpdating:`aktualisiere…`,pendingMarking:`markiere…`,pendingRecovering:`stelle wieder her…`,deletedNeverPolicy:`Dieser Datensatz dient nur der Prüfung und trägt ein absolutes Verbot: Er darf niemals in den LLM-Kontext gelangen.`,deletedEligiblePolicy:`Der Datensatz ist inaktiv und nicht bearbeitbar, bleibt aber als historisches Beweisstück geeignet, wenn die Abfrage ihn als relevant findet.`,deletingLabel:`Wird gelöscht…`,actionDeleteMemory:`Speicher löschen`,copiedNotice:`Speicher-ID kopiert.`,revisionSuffix:`Revision {{n}}`,memoryRelationships:`Speicherbeziehungen`,captureMemory:`Einen Speicher erfassen`,editMemory:`Speicher bearbeiten`,editorCreateHint:`Dauerhaftes Wissen mit Abruf-Metadaten hinzufügen.`,editorEditHint:`Inhalt aktualisieren, ohne die Herkunft zu verlieren.`,createMemory:`Speicher erstellen`,saveChanges:`Änderungen speichern`,addAnchor:`Anker hinzufügen`,noAnchors:`Noch keine Anker — fügen Sie einen hinzu, um die Abrufpräzision zu verbessern`,loadingGraph:`echter Graph wird geladen…`,graphStats:`{{nodes}} Knoten · {{edges}} Kanten`,lifecycleHeading:`Speicherlebenszyklus`,statusWaiting:`wartet`,statusLive:`live · {{count}}/100`,noMatching:`Keine passenden Speicher`,buildGraph:`Speichergraph erstellen`,clearFilters:`Filter löschen`,createFirst:`Ersten Speicher erstellen`,captureButton:`Speicher erfassen`,memoryCaptured:`Speicher erfasst.`,memoryUpdated:`Speicher aktualisiert.`,liveStore:`Live-Speicher`,reconnecting:`wird neu verbunden`,newMemory:`Neuer Speicher`,hideFileDrawer:`Datei-Speicher-Schublade ausblenden`,showFileDrawer:`Datei-Speicher-Schublade einblenden`,hideDrawer:`Schublade ausblenden`,showDrawer:`Schublade einblenden`,editorCharCount:`{{count}} Zeichen`,editorContentLabel:`Speicherinhalt`,editorKind:`Art`,editorScope:`Bereich`,editorLifecycleStatus:`Lebenszyklusstatus`,editorSupersedes:`Ersetzt`,editorContradicts:`Widerspricht`,filterByStatus:`Nach Status filtern`,filterByKind:`Nach Art filtern`,graphHeading:`Beziehungsgraph`,graphHeadingFull:`Beziehungsgraph — {{id}}`,graphOpenFullscreen:`Vollbild öffnen`,projectKnowledge:`Projektwissen`,sageSubtitle:`Dauerhaften Kontext prüfen, verbinden, kuratieren und ausmustern, der in Agentensitzungen verwendet wird.`,emptyBody:`Wählen Sie einen Speicher, um Metadaten und Beziehungsgraph zu prüfen, oder erfassen Sie Wissen, das künftige Agenten automatisch abrufen sollen.`,tabDeleted:`Gelöscht`,fileDrawerLabel:`Datei-Schublade`,selectFilePlaceholder:`— Datei auswählen —`,memoryCountSummary:`{{shown}} von {{total}} Speichern`,updatedSortLabel:`aktualisiert ↓`,searchBreakdownAria:`Suchaufschlüsselung`,searchBreakdownTitle:`Suche: {{query}}`,searchBreakdownDual:`dualkanal`,searchBreakdownLexicalOnly:`nur lexikalisch`,searchBreakdownLoading:`Dualkanalsuche läuft…`,searchBreakdownEmpty:`Keine Treffer in einem der Kanäle.`,searchBreakdownSourceLabel:`Quelle: {{source}}`,tabAllMemories:`Alle Speicher`,tabAllMemoriesHint:`Prüfen, kuratieren, ausmustern`,tabAudience:`Zielgruppenbezogen`,tabAudienceHint:`An Agenten geroutete Anleitung`,tabVectorMemory:`Vektorspeicher`,tabVectorMemoryHint:`Semantischer Embedding-Speicher`,editorRelationshipsHint:`Verweisen Sie auf exakte Speicher-IDs. Beziehungen werden validiert und Graphkanten von SAGE neu aufgebaut.`,editorTaskTypes:`Aufgabentypen`,createAction:`Erstellen`,mutationTimeout:`{{verb}} abgelaufen. Ihr Entwurf ist noch da.`,loadingSageContent:`SAGE-Inhalt wird geladen`,injectorActiveInContext:`Im Kontext aktiv`,injectorInjectionHistory:`Injektionsverlauf`,injectorContextTransitions:`Kontextübergänge`,metaCreated:`Erstellt`,metaUpdated:`Aktualisiert`,metaLastAccessed:`Zuletzt aufgerufen`,metaLastVerified:`Zuletzt verifiziert`,referencedUnavailable:`Referenzierter Speicher nicht verfügbar`,emptyFiltered:`Ändern Sie die Filter oder leeren Sie die Suchanfrage.`,emptyCapture:`Erfassen Sie dauerhafte Fakten, Entscheidungen, Konventionen und dateigebundene Notizen für jeden Agenten.`,memoryUnavailable:`Der Eintrag ist nicht verfügbar oder wurde entfernt.`,staleConflicts:`veraltet + Konflikte`},je={enableLayer:`Diese Grenzschicht aktivieren`,outsideScope:`Außerhalb des Geltungsbereichs`,askPermission:`Um Erlaubnis fragen`,alwaysBlock:`Immer blockieren`,allow:`Erlauben`,allowSelectors:`Selektoren erlauben`,denySelectors:`Selektoren verweigern`,crossPathSelectors:`Die Shell „Erlauben“ ist opak und kann pfadübergreifende Selektoren durchlassen.`,removeLayer:`Schicht entfernen`,taskInspector:`Task-Inspektor`,task:`Task`,dispatched:`Gesendet`,collapseDetails:`Task-Details einklappen`,taskBoundary:`Task-Grenze`,title:`Titel`,managedStage:`Verwaltete Stufe`,status:`Status`,priority:`Priorität`,type:`Typ`,labelsCommaSeparated:`Labels (durch Komma getrennt)`,dueDatePlaceholder:`Fälligkeitsdatum (ISO oder JJJJ-MM-TT)`,estimatedHours:`Geschätzte Stunden`,actualHours:`Tatsächliche Stunden`,selectBlockingTasks:`Blockierende Tasks auswählen…`,selectSequentialChain:`Tasks zu einer sequenziellen Kette hinzufügen…`,enforceChainOrder:`Kettenreihenfolge als Abhängigkeiten erzwingen`,assignmentReason:`Änderungs- / Zuweisungsgrund (in Aktivität gespeichert)`,managedLifecycle:`Verwalteter Lebenszyklusübergang`,kanbanAgentTransition:`Kanban-Agent-Übergang`,completedAction:`Abgeschlossene Aktion / Reviewer-Aktion`,progressComment:`Wahrheitsgemäßer Fortschrittskommentar (erforderlich)`,evidenceUrl:`URL des Beleganhangs`,source:`Quelle`,taskId:`Task-ID`,run:`Ausführen`,column:`Spalte`,primaryModelSource:`Primäre Modellquelle`,selectProviderModel:`Genauen Anbieter / Modell auswählen…`,fallbackProfile:`Fallback-Profil (erstes Modell ist primär)`,selectProfile:`Konfiguriertes Profil auswählen…`,fallbackModels:`Fallback-Modelle`,addFallbackModel:`Fallback-Modell hinzufügen…`,role:`Rolle`,selectRole:`Rolle auswählen…`,assignSkills:`Erforderliche Fähigkeiten zuweisen…`,restrictTools:`Auf bestimmte Tools beschränken…`,agentNameOptional:`Agentenname (optional)`,retryPolicy:`Wiederholungsrichtlinie`,maxAttempts:`Maximale Versuche`,costCeilingUsd:`Kostenobergrenze USD`,grantCapability:`Fähigkeit gewähren…`,targetBoard:`Ziel-Board`,boardPresence:`Board-Präsenz`,liveBoardUsers:`Aktive Board-Benutzer`,kanbanAgent:`Kanban-Agent`,watchThisBoard:`Dieses Board beobachten`,supervisorEngine:`Supervisor-Engine`,kanbanAgentModelSource:`Kanban-Agent-Modellquelle`,supervisorSkills:`Supervisor-Fähigkeiten`,forceLoadSkills:`Agentische Fähigkeiten laden erzwingen…`,extraFallbackModels:`Zusätzliche Fallback-Modelle`,optionalFallbacks:`Optionale geordnete Fallbacks…`,queueHealth:`Warteschlangenstatus`,claimableTasks:`Beanspruchbare Tasks`,runningAssignments:`Laufende Zuweisungen`,inReview:`In Überprüfung`,manuallyBlocked:`Manuell blockiert`,failedTasks:`Fehlgeschlagene Tasks`,blockedByDeps:`Bereit/anstehend, blockiert durch Abhängigkeiten`,expiredLeases:`Abgelaufene Lease-Zuweisungen`,healthy:`gesund`,costCeilingSum:`Summe der costCeilingUsd für laufende/queued Tasks`,liveRunSteer:`Live-Lauf — hier steuern`,openLiveRun:`Live-Lauf-Ansicht öffnen (SDD Hub)`,runAsLiveJob:`Dieses Board als Live-Agent-Job ausführen:`,startAsGoal:`Als Ziel starten`,startAsSdd:`Als SDD starten`,runControls:`Ausführungssteuerung`,workerModel:`Worker-Modell`,setModelForTask:`Modell für diesen Task festlegen…`,newWorkerName:`Neuer Worker-Name`,duration:`Dauer`,liveRun:`Live-Lauf`,lastResult:`Letztes Ergebnis`,definitionOfDone:`Definition of Done`,failingChecks:`Fehlgeschlagene Prüfungen`,evidenceMissing:`Belege fehlen (Agent/Council-Prüfungen ohne unterstützende Referenzen)`,needsDecomposition:`Zerlegung erforderlich`,decompositionPending:`Zerlegungsvorschläge warten auf Genehmigung`,noOutstanding:`Keine offenen Überprüfungs- oder Zerlegungsprobleme auf diesem Board.`,kanban:`Kanban`,newBoard:`Neues Board`,createBoard:`Board erstellen`,deleteTask:`Task löschen`,runFailed:`Ausführung fehlgeschlagen`,splitPendingApproval:`Aufteilung wartet auf Genehmigung`,newTask:`Neuer Task`,addTask:`Task hinzufügen`,duplicateBoard:`Board duplizieren`,boardHistory:`Board-Verlauf`,noHistory:`Noch kein Verlauf`,confirmDelete:`Bestätigen?`,confirmDeleteBoard:`Erneut klicken, um das Löschen des Boards zu bestätigen`,deleteBoard:`Board löschen`,boardBoundary:`Board-Grenze`,noBoardSelected:`Kein Kanban-Board ausgewählt.`,expandDetails:`Task-Details erweitern`,elapsed:`Verstrichen`,assigned:`Zugewiesen`,configuredAgentRoute:`die konfigurierte Agent-Route`,subagent:`Subagent`,checkedAgo:`vor {{ago}} geprüft`,notChecked:`nicht geprüft`,auditInterval:`Prüfintervall (Sekunden)`,statusReady:`bereit`,statusRunning:`läuft`,statusReview:`prüfung`,statusBlocked:`blockiert`,statusFailed:`fehlgeschlagen`,statusBlockedByDeps:`durch Abhängigkeiten blockiert`,statusStale:`veraltet`,runningCost:"~${{cost}} laufende Kosten",actionPause:`Pause`,actionResume:`Fortsetzen`,actionRetryFailed:`Fehlgeschlagene erneut versuchen`,actionStop:`Stopp`,actionReassign:`Neu zuweisen`,actionRunNow:`Jetzt ausführen`,deleteTaskAria:`Task löschen: {{title}}`,confirmDeleteTask:`Erneut klicken, um das Löschen der Aufgabe zu bestätigen`,confirmDeleteTaskAria:`Löschen bestätigen: {{title}}`,moveTaskToColumn:`{{title}} in Spalte verschieben`,activityNoteTemplate:`{{action}} von WebUI an {{target}}.`},Me={heading:`Cron-Jobs`,subtitle:`Geplante wiederkehrende Aufgaben, verwaltet vom Cron-Plugin.`,statusDisabled:`Deaktiviert`,statusOverdue:`Überfällig`,statusActive:`Aktiv`,jobCount_one:`{{count}} Job`,jobCount_other:`{{count}} Jobs`,enabledCount:`{{count}} aktiviert`,overdueCount:`{{count}} überfällig`,totalRuns:`{{count}} Läufe gesamt`,maxConcurrent:`max. {{count}} gleichzeitig`,emptyTitle:`Keine Cron-Jobs geplant.`,emptyUse:`Zum Hinzufügen`,emptyToAdd:`verwenden.`,thStatus:`Status`,thName:`Name`,thInterval:`Intervall`,thRuns:`Läufe`,thNextRun:`Nächster Lauf`,thLastRun:`Letzter Lauf`,thAction:`Aktion`,lastFiredAtTitle:`Zuletzt ausgelöst um {{time}}`,footerUse:`Zum Hinzufügen`,footerToAdd:`verwenden,`,footerToRemove:`zum Entfernen verwenden.`},Ne={refreshRosterData:`Roster-Daten aktualisieren`,liveEmpty:`Agenten erscheinen hier, wenn Subagenten spawnen`,fleetInspector:`Flotteninspektor`,openAgentsPanel:`Agenten-Panel öffnen`,toolCalls:`Werkzeugaufrufe`,running:`Läuft`,projectAgents:`Projekt-Agenten`,createOrCloneTitle:`Projekt-Agent erstellen oder klonen`,createOrCloneHint:`Beliebigen Roster-Agenten als Vorlage übernehmen und dann eine eigene Identität, Laufzeitrichtlinie und Lernhistorie entwickeln.`,cloneFromRole:`Aus Roster-Rolle klonen`,cloneHint:`Prompt, Werkzeuge, Fähigkeiten und Standardeinstellungen werden übernommen. Lernen und spätere Änderungen bleiben auf den neuen Agenten beschränkt.`,displayName:`Anzeigename`,descriptionPlaceholder:`Eigene X-, Y- und Z-Workflows für dieses Projekt besitzen und Ergebnisse überprüfen.`,creating:`Wird erstellt…`,noCustomizations:`Noch keine Anpassungen`,selectAgentEmpty:`Agent zum Bearbeiten der Anpassungen auswählen`,saving:`Wird gespeichert…`,saveFailed:`Speichern fehlgeschlagen`,failed:`Fehlgeschlagen`,learningResumed:`Automatisches Lernen fortgesetzt`,optimizationEmptyToast:`Optimierung ergab ein leeres Ergebnis. Bitte erneut versuchen.`,noActiveModelToast:`Kein aktives Modell auf dem Server. Optimierung an den Chat-Agenten gesendet.`,learningsEmpty:`Lerneinträge erscheinen, wenn Agenten Ausgaben erfassen`,allRosterAgents:`Alle Roster-Agenten`,optimizing:`Optimiert…`,paused:`pausiert`,selectLearningAgent:`Agent zum Anzeigen der Lerndetails auswählen`,learningOn:`Lernen aktiv`,lastCapture:`Letzte Erfassung`,lifetimeCaptures:`Lebenszeit-Erfassungen`,hitRate:`Trefferquote`,neverUsed:`Nie verwendet`,learningsLimitExceeded:`Gelernte Daten überschreiten das weiche Limit ({{bytes}}B / 8.192B). Optimieren, um Roheinträge zu einem konsolidierten Dokument zusammenzufassen und das Kontextvolumen zu reduzieren.`,newPending:`neu ausstehend`,viewAction:`Anzeigen`,applying:`Wird angewendet…`,searchPlaceholder:`Agenten nach Name, Rolle oder Beschreibung suchen…`,maxIterations:`Max. Iterationen`,maxToolCalls:`Max. Werkzeugaufrufe`,projectCustomizations:`Projekt-Anpassungen`,learnedEntries:`gelernte Einträge`,teachFailed:`Lehren fehlgeschlagen`,selectRoleEmpty:`Rolle zum Prüfen oder Bearbeiten auswählen`,captureLearned:`Gelerntes erfassen`,teachThisAgent:`Diesen Agenten lehren`,teachPlaceholder:`Beschreiben, was dieser Agent besser machen soll … z. B. „Dieser Agent soll Versionen immer von npm prüfen, bevor er sie empfiehlt“`,heading:`Agenten-Roster`,headerSummary:`{{customized}} angepasst · {{entries}} gelernte Einträge`,tabLive:`Live-Flotte`,tabCatalog:`Roster-Katalog`,tabLearning:`Selbstlernen`,tabCustomize:`Anpassung`,learning:`lernt`,learningPaused:`Lernen pausiert`,autoLearningPaused:`Automatisches Lernen pausiert`,toolsCount_one:`{{count}} Tool`,toolsCount_other:`{{count}} Tools`,maxItShort:`max. {{value}} Iter.`,customizedBadge:`Angepasst`,needsSummary:`⚠ Zusammenfassung nötig`,timeout:`Zeitlimit`,learnedEntriesCount_one:`{{count}} gelernter Eintrag`,learnedEntriesCount_other:`{{count}} gelernte Einträge`,sessionCapturesCount_one:`{{count}} Sitzungserfassung`,sessionCapturesCount_other:`{{count}} Sitzungserfassungen`,noAgentsMatch:`Keine Agenten passen zu „{{query}}“`,footerRosterRoles_one:`Roster-Rolle`,footerRosterRoles_other:`Roster-Rollen`,footerCustomized:`angepasst`,footerTotalLearned_one:`gelernter Eintrag insgesamt`,footerTotalLearned_other:`gelernte Einträge insgesamt`,clone:`+ Klonen`,abc:`ABC`,abcGeneratedFromName:`abc (aus dem Namen erzeugt)`,roleIdOptional:`Rollen-ID (optional)`,purpose:`Zweck`,taskTypesCommaOrOnePer:`Aufgabentypen (kommagetrennt oder einer pro Zeile)`,cancel:`Abbrechen`,selectAnAgentToEditCustomizations:`Wählen Sie einen Agenten, um Anpassungen zu bearbeiten`,llmImprove:`LLM-Verbesserung`,reset:`Zurücksetzen`,editIdentityMd:`identity.md bearbeiten`,editLearnedMd:`learned.md bearbeiten`,editConfigJson:`config.json bearbeiten`,runtimePolicy:`Laufzeitrichtlinie`,retry:`Erneut versuchen`,noSelfLearningDataYet:`Noch keine Selbstlerndaten`,review:`prüfen →`,selectAnAgentToViewLearning:`Wählen Sie einen Agenten, um Lerndetails anzuzeigen`,entries:`Einträge`,size:`Größe`,optimizeLearnings:`Gelerntes optimieren`,keep:`Behalten`,drop:`Verwerfen`,describeACommandPatternOrBehavior:`Beschreiben Sie einen Befehl, ein Muster oder ein Verhalten, das dieser Agent sich merken soll.`,eGAlwaysUsePnpmForThisProject:`z. B. Für dieses Projekt immer pnpm verwenden`,teach:`Beibringen`,noActiveFleetAgents:`Keine aktiven Flottenagenten`,clear:`Leeren`,agentsTotal:`Agenten insgesamt`,leader:`Leiter`,iterations:`Iterationen`,cost:`Kosten`,context:`Kontext`,contextWindow:`Kontextfenster`,error:`Fehler`,filterAll:`Alle ({{count}})`,filterRunning:`Laufend ({{count}})`,filterDone:`Fertig ({{count}})`,filterFailed:`Fehlgeschlagen ({{count}})`,optimizeAll:`Alle optimieren ({{count}})`,policyUpdateFailed:`Richtlinienaktualisierung fehlgeschlagen`,noRawEntries:`Noch keine Rohdaten zum Optimieren.`,optimizedOk:`Optimiert. Konsolidiertes Wissen aktualisiert.`,emptySynthesis:`Das Modell lieferte ein leeres Ergebnis. Es wurde nichts geändert – bitte erneut versuchen.`,consolidatedWithModel:`Gelerntes mit {{model}} konsolidiert.`,consolidatedPlain:`Gelerntes konsolidiert.`,resetConfirm:`Alle projektspezifischen Daten für den Agenten „{{role}}“ zurücksetzen?`,loadCustomizationFailed:`Anpassung konnte nicht geladen werden`,loadRuntimePolicyFailed:`Laufzeitrichtlinie konnte nicht geladen werden`,runtimePolicySaveFailed:`Speichern der Laufzeitrichtlinie fehlgeschlagen`,llmImprovementFailed:`LLM-Verbesserung fehlgeschlagen`,agentCreationFailed:`Agentenerstellung fehlgeschlagen`,noActiveModelMsg:`Kein aktives Modell auf dem Server – Optimierung stattdessen an den Chat-Agenten gesendet.`,optimizationFailed:`Optimierung fehlgeschlagen`,bulkOptimizationFailed:`Massenoptimierung fehlgeschlagen`,taskTypesPlaceholder:`X-Workflow
6
6
  Y-Analyse
7
7
  Z-Verifizierung`},Pe={generic:{name:`Generischer Projekt-Agent`,summary:`Flexible Vorlage, die zu eigenständig lernenden Projektrollen geklont werden kann.`},"audit-log":{name:`Audit-Protokoll`,summary:`Analysiert Sitzungsprotokolle, Ereignisströme und System-Traces.`},"bug-hunter":{name:`Bug-Jäger`,summary:`Durchsucht Code nach Fehlern, Code Smells und Anti-Patterns.`},"refactor-planner":{name:`Refactoring-Planer`,summary:`Analysiert die Codestruktur und erstellt phasenweise Refactoring-Pläne.`},"security-scanner":{name:`Sicherheits-Scanner`,summary:`Prüft Code, Konfigurationen und Abhängigkeiten auf Sicherheitsprobleme.`},critic:{name:`Kritiker`,summary:`Bewertet Entscheidungen, Pläne und Implementierungen.`},"shadow-agent":{name:`Schatten-Agent`,summary:`Hintergrund-Agent, der den Zustand der Flotte überwacht.`},executor:{name:`Executor`,summary:`Universeller Aufgaben-Executor für delegierte Arbeit.`},chimera:{name:`Chimera`,summary:`Codequalitätsprüfung geänderter Dateien nach der Sitzung.`},researcher:{name:`Rechercheur`,summary:`Spezialist für Webrecherche und Datenerhebung.`},"tech-stack":{name:`Tech-Stack-Validator`,summary:`Validiert Paket-, Bibliotheks- und Framework-Entscheidungen.`},orchestrator:{name:`Orchestrator`,summary:`Koordiniert die Aufgabenausführung mehrerer Agenten.`},supervisor:{name:`Supervisor`,summary:`Überwacht die Ausführung von Subagenten und bearbeitet Eskalationen.`},"quality-gate":{name:`Quality Gate`,summary:`Setzt Qualitätsanforderungen bei Implementierungen durch.`},architect:{name:`Architekt`,summary:`Trifft Design- und Architekturentscheidungen.`},"prompt-engineer":{name:`Prompt-Engineer`,summary:`Entwirft und optimiert System-Prompts.`},mnemosyne:{name:`Mnemosyne`,summary:`Speicher-Kurator – prüft und wahrt die Integrität von SAGE.`},autophase:{name:`AutoPhase`,summary:`Verwaltet die mehrphasige autonome Aufgabenausführung.`}},Fe={heading:`Eigenes Roster`,loading:`Eigenes Roster wird geladen…`,loadFailed:`Roster konnte nicht geladen werden`,invalidJson:`Ungültiges JSON`,noImprovement:`Kein Verbesserungsvorschlag erzeugt.`,improveFailed:`LLM-Verbesserung fehlgeschlagen`,behaviorSaved:`Verhalten in learned.md gespeichert`,saveFailedServer:`Speichern fehlgeschlagen – siehe Serverprotokolle`,emptyTitle:`Keine eigenen Roster-Agenten`,emptyBody:`Projektspezifische Agenten erscheinen hier, sobald Sie Dateien hier anlegen oder bearbeiten:`,createExecutorIdentity:`+ Executor-Identität erstellen`,entries:`Einträge`,size:`Größe`,sessionCaptures:`Sitzungserfassungen`,editIdentity:`identity.md bearbeiten`,editLearned:`learned.md bearbeiten`,editConfig:`config.json bearbeiten`,reviewEntries:`Einträge prüfen ({{count}})`,reviewLearnedEntries:`Gelernte Einträge prüfen ({{kept}}/{{total}} behalten)`,applySelection:`Auswahl anwenden`,keep:`✓ Behalten`,drop:`✗ Verwerfen`,identityPlaceholder:`# Projektidentität für {{role}}
8
8