@runfusion/fusion 0.59.0 → 0.60.0

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 (118) hide show
  1. package/dist/bin.js +173 -16
  2. package/dist/client/.vite/manifest.json +239 -239
  3. package/dist/client/assets/{AgentDetailView-UmilJU0C.js → AgentDetailView-BBjuuYbU.js} +1 -1
  4. package/dist/client/assets/{AgentPermissionPolicyEditor-DqYOX1kN.js → AgentPermissionPolicyEditor-DOdy1ln0.js} +1 -1
  5. package/dist/client/assets/{AgentsView-Dt0nKyx7.js → AgentsView-DlyT08sc.js} +3 -3
  6. package/dist/client/assets/{ChatView-C7trV16u.js → ChatView-CJBnc6rJ.js} +1 -1
  7. package/dist/client/assets/{CommandCenter-Dsg16_mK.js → CommandCenter-BhRLZmOH.js} +1 -1
  8. package/dist/client/assets/{DevServerView-DnpnAU_g.js → DevServerView-DRpi8Xqz.js} +1 -1
  9. package/dist/client/assets/{DirectoryPicker-BzpWdpTC.js → DirectoryPicker-Bw_A-64N.js} +1 -1
  10. package/dist/client/assets/{DocumentsView-C2jRDIo6.js → DocumentsView-w0eDbpbG.js} +1 -1
  11. package/dist/client/assets/{EvalsView-M1nIXx-S.js → EvalsView-DxQALLwD.js} +1 -1
  12. package/dist/client/assets/{ExperimentalAgentOnboardingModal-5Kg2iQtB.js → ExperimentalAgentOnboardingModal-BuEWZrjl.js} +1 -1
  13. package/dist/client/assets/{GoalsView-7bFpy-lr.js → GoalsView-C3MGEtSt.js} +1 -1
  14. package/dist/client/assets/{InsightsView-D0HPy3RP.js → InsightsView-C0-BkE8_.js} +1 -1
  15. package/dist/client/assets/{MemoryView-CNzJcoPi.js → MemoryView-Dd8uiLHH.js} +1 -1
  16. package/dist/client/assets/{PiExtensionsManager-D0a8Q47c.js → PiExtensionsManager-DlsEVOjG.js} +1 -1
  17. package/dist/client/assets/{PluginManager-N2Ne57i_.js → PluginManager-Cf9AOCcC.js} +1 -1
  18. package/dist/client/assets/{PullRequestView-Be4GM2H5.js → PullRequestView-hm77QtHV.js} +1 -1
  19. package/dist/client/assets/{ResearchView-DYW9ViMl.js → ResearchView-BMQEnYH6.js} +1 -1
  20. package/dist/client/assets/{SecretsView-B3jEFeGp.js → SecretsView-Dc3sWf40.js} +1 -1
  21. package/dist/client/assets/{SessionTerminal-DGFADOH4.js → SessionTerminal-CEv1G-9-.js} +1 -1
  22. package/dist/client/assets/SettingsModal-DFrTDsBm.js +21 -0
  23. package/dist/client/assets/{SettingsModal-Lw0RmeRd.js → SettingsModal-TuphE_CP.js} +1 -1
  24. package/dist/client/assets/{SetupWizardModal-BifMmJIa.js → SetupWizardModal-CNGogJJp.js} +2 -2
  25. package/dist/client/assets/{ShadcnColorPicker-B1UClHqm.js → ShadcnColorPicker-1Z7JIWTE.js} +1 -1
  26. package/dist/client/assets/{SkillsView--U-5lH1V.js → SkillsView-CjPvmnz6.js} +1 -1
  27. package/dist/client/assets/{TodoView-BwxNdIXm.js → TodoView-DmJPSWOu.js} +1 -1
  28. package/dist/client/assets/{WorkflowNodeEditor-BmTZR0i8.js → WorkflowNodeEditor-BqO2yRXe.js} +1 -1
  29. package/dist/client/assets/{agentSkills-PqEK0Uf_.js → agentSkills-BNahUMFe.js} +1 -1
  30. package/dist/client/assets/{app-BlgX3hw4.js → app-BzgEwAOr.js} +1 -1
  31. package/dist/client/assets/{architectureDiagram-3BPJPVTR-DxAKryer.js → architectureDiagram-3BPJPVTR-Bb_ZGdtz.js} +1 -1
  32. package/dist/client/assets/{blockDiagram-GPEHLZMM-BfPC7WG4.js → blockDiagram-GPEHLZMM-CWfWJnIM.js} +1 -1
  33. package/dist/client/assets/{c4Diagram-AAUBKEIU-DnVJBAB1.js → c4Diagram-AAUBKEIU-Dufe_2hy.js} +1 -1
  34. package/dist/client/assets/channel-BYHFEnHT.js +1 -0
  35. package/dist/client/assets/{chunk-2J33WTMH-2LaGYtnx.js → chunk-2J33WTMH-BdKWX3Y7.js} +1 -1
  36. package/dist/client/assets/{chunk-4BX2VUAB-C7xxOb1T.js → chunk-4BX2VUAB-CQ9_zgu6.js} +1 -1
  37. package/dist/client/assets/{chunk-55IACEB6-CAxHAFXx.js → chunk-55IACEB6-DEFTCISD.js} +1 -1
  38. package/dist/client/assets/{chunk-727SXJPM-CnZuaU-I.js → chunk-727SXJPM-8RnJp1fx.js} +1 -1
  39. package/dist/client/assets/{chunk-AQP2D5EJ-DutKSMk1.js → chunk-AQP2D5EJ-DJg6awe1.js} +1 -1
  40. package/dist/client/assets/{chunk-FMBD7UC4-C7PQ58jc.js → chunk-FMBD7UC4-Bw-OImRT.js} +1 -1
  41. package/dist/client/assets/{chunk-ND2GUHAM-BQ0UHfJw.js → chunk-ND2GUHAM-BSx9p0RO.js} +1 -1
  42. package/dist/client/assets/{chunk-QZHKN3VN-BadmXu1v.js → chunk-QZHKN3VN-Dbdv72P6.js} +1 -1
  43. package/dist/client/assets/classDiagram-4FO5ZUOK-BLstvJ1W.js +1 -0
  44. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BLstvJ1W.js +1 -0
  45. package/dist/client/assets/{cose-bilkent-S5V4N54A-37z9Hx7d.js → cose-bilkent-S5V4N54A-CXtcC6U2.js} +1 -1
  46. package/dist/client/assets/{dagre-BM42HDAG-B70rt1ZW.js → dagre-BM42HDAG-BO0r4g14.js} +1 -1
  47. package/dist/client/assets/{dashboard-view-GT7dDNd7.js → dashboard-view-BTnVGch5.js} +1 -1
  48. package/dist/client/assets/{dashboard-view-DdAL0vfN.js → dashboard-view-CoDeYJbQ.js} +1 -1
  49. package/dist/client/assets/{diagram-2AECGRRQ-se4pabEk.js → diagram-2AECGRRQ-CLmeU2g6.js} +1 -1
  50. package/dist/client/assets/{diagram-5GNKFQAL-ijyxpVgX.js → diagram-5GNKFQAL-CKyM23Jy.js} +1 -1
  51. package/dist/client/assets/{diagram-KO2AKTUF-DUGQ8jXI.js → diagram-KO2AKTUF-ByeVRDs_.js} +1 -1
  52. package/dist/client/assets/{diagram-LMA3HP47-BYydC37K.js → diagram-LMA3HP47-r8qKTJDn.js} +1 -1
  53. package/dist/client/assets/{diagram-OG6HWLK6-DlUn5jkD.js → diagram-OG6HWLK6-D2ugPdm7.js} +1 -1
  54. package/dist/client/assets/{erDiagram-TEJ5UH35-ChYKGDIc.js → erDiagram-TEJ5UH35-dLzbDn0G.js} +1 -1
  55. package/dist/client/assets/{flowDiagram-I6XJVG4X-CoQKr6ba.js → flowDiagram-I6XJVG4X-et7EENd6.js} +1 -1
  56. package/dist/client/assets/{folder-open-YuIEuDwd.js → folder-open-BVtcjVIK.js} +1 -1
  57. package/dist/client/assets/{ganttDiagram-6RSMTGT7-Cff6URun.js → ganttDiagram-6RSMTGT7-DmiabChP.js} +1 -1
  58. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CnlZVE6T.js → gitGraphDiagram-PVQCEYII-I1vbhqer.js} +1 -1
  59. package/dist/client/assets/index-inWk2g6R.js +2540 -0
  60. package/dist/client/assets/{infoDiagram-5YYISTIA-DYLBAKrj.js → infoDiagram-5YYISTIA-xd6L9Gq3.js} +1 -1
  61. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-7xSxQNhn.js → ishikawaDiagram-YF4QCWOH-fUeEYBvD.js} +1 -1
  62. package/dist/client/assets/{journeyDiagram-JHISSGLW-DREqJGeQ.js → journeyDiagram-JHISSGLW-B7xjU8Oh.js} +1 -1
  63. package/dist/client/assets/{kanban-definition-UN3LZRKU-_lzeYhpL.js → kanban-definition-UN3LZRKU-CJ8oRjFI.js} +1 -1
  64. package/dist/client/assets/{mermaid.core-DNTJMy0V.js → mermaid.core-2udKsaH3.js} +4 -4
  65. package/dist/client/assets/{mindmap-definition-RKZ34NQL-DR9UulDp.js → mindmap-definition-RKZ34NQL-CVywzN7Q.js} +1 -1
  66. package/dist/client/assets/{pieDiagram-4H26LBE5-DD1LCdSp.js → pieDiagram-4H26LBE5-8vzzC4Mg.js} +1 -1
  67. package/dist/client/assets/{puzzle-DaVSYDOd.js → puzzle-D60d3Nv1.js} +1 -1
  68. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-iLEGylFT.js → quadrantDiagram-W4KKPZXB-Cxyb4Mom.js} +1 -1
  69. package/dist/client/assets/{requirementDiagram-4Y6WPE33-D7IX9UbY.js → requirementDiagram-4Y6WPE33-Bs5RaG7r.js} +1 -1
  70. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DC30taEV.js → sankeyDiagram-5OEKKPKP-Jf7Zq43D.js} +1 -1
  71. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DjMKbjmL.js → sequenceDiagram-3UESZ5HK-CG0I780H.js} +1 -1
  72. package/dist/client/assets/{shield-alert-BcyPZs5t.js → shield-alert-B7JyuWPR.js} +1 -1
  73. package/dist/client/assets/{stateDiagram-AJRCARHV-DJSnSkUL.js → stateDiagram-AJRCARHV-C1c5XtKG.js} +1 -1
  74. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-KC2rSU3J.js → stateDiagram-v2-BHNVJYJU-Cv7_pOt_.js} +1 -1
  75. package/dist/client/assets/{timeline-definition-PNZ67QCA-5DyrH8WZ.js → timeline-definition-PNZ67QCA-BWg-lsI0.js} +1 -1
  76. package/dist/client/assets/{upload-C_8IHSzk.js → upload-Dxv5FPaS.js} +1 -1
  77. package/dist/client/assets/{users-DfGiwmqG.js → users-DvKg3opr.js} +1 -1
  78. package/dist/client/assets/{vennDiagram-CIIHVFJN-Bh5X-uVf.js → vennDiagram-CIIHVFJN-gFjFmLlv.js} +1 -1
  79. package/dist/client/assets/{wardley-L42UT6IY-ZIwV-wIZ.js → wardley-L42UT6IY-BaCNX8ou.js} +1 -1
  80. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DI92L1jA.js → wardleyDiagram-YWT4CUSO-BRR6aw0q.js} +1 -1
  81. package/dist/client/assets/{xychartDiagram-2RQKCTM6-B6RjJCM8.js → xychartDiagram-2RQKCTM6-D6Gwn1XW.js} +1 -1
  82. package/dist/client/index.html +1 -1
  83. package/dist/client/version.json +1 -1
  84. package/dist/droid-cli/package.json +1 -1
  85. package/dist/extension.js +173 -16
  86. package/dist/pi-claude-cli/package.json +1 -1
  87. package/dist/plugin-sdk/index.d.ts +7 -0
  88. package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +0 -6
  89. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  90. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  91. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +0 -5
  92. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  93. package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +0 -5
  94. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  95. package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +0 -5
  96. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  97. package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +0 -5
  98. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  99. package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +0 -6
  100. package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
  101. package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +0 -5
  102. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  103. package/dist/plugins/fusion-plugin-linear-import/bundled.js +0 -5
  104. package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
  105. package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +0 -5
  106. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  107. package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +0 -5
  108. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  109. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  110. package/dist/plugins/fusion-plugin-roadmap/bundled.js +0 -5
  111. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  112. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  113. package/package.json +1 -1
  114. package/dist/client/assets/SettingsModal-CtOCCZEj.js +0 -21
  115. package/dist/client/assets/channel-D23u9xEh.js +0 -1
  116. package/dist/client/assets/classDiagram-4FO5ZUOK-BMIDIijD.js +0 -1
  117. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BMIDIijD.js +0 -1
  118. package/dist/client/assets/index-aBQwNV_I.js +0 -2540
@@ -2,7 +2,7 @@ const e={add:"Add",apply:"Apply",back:"Back",cancel:"Cancel",close:"Close",clear
2
2
 
3
3
  Archive anyway by unlinking these references first?`,lineageDeleteMessage:`{{taskId}} has lineage children ({{children}}) that reference it as a source parent.
4
4
 
5
- Delete anyway by unlinking these references first?`,listControlsLabel:"List controls",newTask:"+ New Task",noChange:"No change",nodeOverrideLabel:"Node Override",nodeStatusConnecting:"Connecting",nodeStatusError:"Error",nodeStatusOffline:"Offline",nodeStatusOnline:"Online",noTasks:"No tasks",noTasksMatch:"No tasks match your filter",noTasksYet:"No tasks yet",pausedByAgent:"paused by agent",pauseSelected:"Pause selected",pauseSelectedTitle:"Pause all selected tasks that are not already paused",pauseUnavailable:"Pause action is unavailable",preserveProgressMessage:"This task has completed steps. Keep progress before moving?",preserveProgressTitle:"Preserve Progress?",resetProgress:"Reset Progress",resetProgressMessage:"Reset all step progress before moving this task?",resetProgressTitle:"Reset Progress?",resizeSidebar:"Resize task list sidebar",reviewerModel:"Reviewer Model",selectAll:"Select all visible tasks",selectedCount_one:"{{count}} selected",selectedCount_other:"{{count}} selected",selectTask:"Select {{taskId}}",selectTaskPrompt:"Select a task to view details",showAll:"Show all",showAllTitle:"Show all tasks",showDone:"Show Done",showDoneTitle:"Show done tasks",staleOnly:"Stale only",staleOnlyTitle:"Show stale tasks only",stalePausedReview:"Stale paused review",stalePausedReviewTitle:"Show stale paused review tasks only",stats_one:"{{count}} of {{total}} tasks",stats_other:"{{count}} of {{total}} tasks",statsInColumn_one:"{{count}} of {{total}} tasks in {{column}}",statsInColumn_other:"{{count}} of {{total}} tasks in {{column}}",statusMergingFix:"Merging fixes…",stuck:"Stuck",taskCreationUnavailable:"Task creation not available",unpauseSelected:"Unpause selected",unpauseSelectedTitle:"Unpause selected tasks that are currently paused",unpauseUnavailable:"Unpause action is unavailable",useProjectDefault:"Use project default",viewOptions:"View",workflowLabel:"Workflow"},fe={agent:"Agent",agents:"Agents",agentsTab:"Agents",ago:"ago",allAgents:"All agents",allAgentsOption:"All agents",approvalApprove:"Approve",approvalCommentPlaceholder:"Optional comment",approvalDeny:"Deny",approvalRequested:"Requested",approvalRequester:"Requester",approvals:"Approvals",approvalTask:"Task",back:"Back",backButton:"← Back",closeAriaLabel:"Close",closeTitle:"Close",compose:"Compose",composeButton:"Compose",composeMessageTitle:"Compose message",composeTitle:"Compose message",conversation:"Conversation",conversationLabel:"Conversation",delete:"Delete",deleteButton:"Delete",deleteFailed:"Failed to delete message",from:"From",fromLabel:"From:",fromPrefix:"From: {{participant}}",history:"History",inbox:"Inbox",inboxTab:"Inbox",justNow:"Just now",labelAgent:"Agent: {{id}}",labelAgentNamed:"Agent: {{name}}",labelSystem:"System",labelUser:"User: {{id}}",labelYou:"You",markAllRead:"Mark all read",markAllReadButton:"Mark all read",markAllReadTitle:"Mark all as read",markedAsRead_one:"Marked {{count}} messages as read",markedAsRead_other:"Marked {{count}} messages as read",markReadFailed:"Failed to mark messages as read",messageDeleted:"Message deleted",messageSent:"Message sent",noAgentMessages:"No agent-to-agent messages",noAgents:"No agents found",noAgentsFound:"No agents found",noHistoricalApprovals:"No historical approvals",noInbox:"No messages in your inbox",noMessagesInbox:"No messages in your inbox",noOutbox:"No sent messages",noPendingApprovals:"No pending approvals",noReceivedMessages:"No received messages for this agent",noSentMessages:"No sent messages",noSentMessagesAgent:"No sent messages for this agent",outbox:"Outbox",outboxTab:"Outbox",pending:"Pending",refreshTitle:"Refresh",reply:"Reply",replyButton:"Reply",replyingTo:"Replying to",replyingToMessage:"Replying to message",replyLoadFailed:"Failed to load replied message. Click to retry.",resizeMessageListPane:"Resize message list pane",selectMessageToRead:"Select a message to read",system:"System",timeDaysAgo_one:"{{count}}d ago",timeDaysAgo_other:"{{count}}d ago",timeHoursAgo_one:"{{count}}h ago",timeHoursAgo_other:"{{count}}h ago",timeJustNow:"Just now",timeMinsAgo_one:"{{count}}m ago",timeMinsAgo_other:"{{count}}m ago",title:"Mailbox",to:"To",toLabel:"To:",toPrefix:"To: {{recipient}}",toRecipient:"To: {{recipient}}",typeAgentToAgent:"Agent ↔ Agent",typeAgentToUser:"Agent → You",typeSystem:"System",typeUserToAgent:"You → Agent",user:"User",you:"You"},be={auditChecksTitle:"Audit Checks",autoSummarizeHint:"Automatically compacts memory when it exceeds the threshold on a schedule.",autoSummarizeLabel:"Auto-summarize memory",autoSummarizeScheduleHint:"Cron expression for auto-summarize schedule (default: daily at 3 AM)",autoSummarizeScheduleLabel:"Schedule (cron)",backendFile:"File (.fusion/memory/, agent/<agent-name>/memory/)",backendQmd:"QMD (Quantized Memory Distillation)",backendReadonly:"Read-Only",cancel:"Cancel",capAtomicWrites:"Atomic Writes",capPersistent:"Persistent",capReadable:"Readable",capWritable:"Writable",categories:"Categories",charCount_one:"{{count}} characters",charCount_other:"{{count}} characters",compactFailed:"Failed to compact memory",compacting:"Compacting…",compactionThresholdHint:"Memory will be compacted when it exceeds this character count",compactionThresholdLabel:"Compaction Threshold (chars)",compactSelectedFile:"Compact Selected File",currentBackendTitle:"Current Backend",description:"Working memory, long-term insights, and engine status",disabledMessage:"Memory is currently disabled. Enable memory tools in Settings to edit these automations.",dreaming:"Dreaming…",dreamNow:"Dream Now",dreamNowHint:"Manually trigger dream processing now.",dreamProcessingComplete:"Dream processing completed",dreamProcessingFailed:"Failed to run dream processing",dreamsEnabledHint:"Turns daily notes into DREAMS.md and promotes reusable lessons into MEMORY.md.",dreamsEnabledLabel:"Process dreams from daily memory",dreamsEnabledTooltip:"Daily notes are distilled into DREAMS.md and reusable lessons are promoted into MEMORY.md.",dreamsScheduleHint:"Cron expression for dream processing.",dreamsScheduleLabel:"Dream Schedule",editorDefaultDescription:"Edits the selected memory file.",editorLabel:"Memory Editor",editRaw:"Edit Raw",extracting:"Extracting…",extractInsightsFailed:"Failed to extract insights",extractionFailed:"Failed",extractionSuccess:"Success",extractNow:"Extract Now",fileCompacted:"Memory file compacted",fileLabel:"Memory File",fileSummary:"{{size}} bytes · updated {{updatedAt}}",fileSwitchDirtyHint:"Save or discard the current edits before switching files.",fileSwitchHint:"Choose any project memory file to view or edit.",healthHealthy:"Healthy",healthIssues:"Issues Found",healthStatusTitle:"Health Status",healthWarning:"Warning",insightCount_one:"{{count}} insights",insightCount_other:"{{count}} insights",insightsExtracted_one:"{{count}} insights extracted",insightsExtracted_other:"{{count}} insights extracted",insightsMemoryLabel:"Insights Memory",insightsSaved:"Insights saved",installing:"Installing…",installQmd:"Install qmd",installQmdFailed:"Failed to install qmd",lastExtractionLabel:"Last Extraction",lastUpdated:"Last Updated",layerDaily:"Daily",layerDescDaily:"Raw daily observations, open loops, and running context for dream processing.",layerDescDreams:"Synthesized patterns and open loops promoted from daily memory.",layerDescLongTerm:"Curated durable decisions, conventions, constraints, and pitfalls promoted from dreams.",layerDreams:"Dreams",layerLongTerm:"Long-term",loadFileFailed:"Failed to load memory file",loadingEngineStatus:"Loading engine status…",loadingFile:"Loading memory file…",loadingInsights:"Loading insights…",localFallbackUsed:"local fallback used",memorySaved:"Memory saved",noInsights:"No insights extracted yet.",noInsightsHint:'Insights are automatically extracted from working memory. Click "Extract Now" to trigger extraction manually.',noMatchingMemory:"No matching memory found.",pruningApplied:"Applied",pruningLabel:"Pruning",pruningNotNeeded:"Not needed",qmdAvailableOnPath:"qmd is available on PATH.",qmdChecking:"Checking",qmdCheckingAvailability:"Checking qmd availability…",qmdInstalled:"Installed",qmdInstallSuccess:"qmd installed successfully",qmdInstallUnavailable:"qmd install finished, but qmd is still unavailable",qmdIntegrationTitle:"QMD Integration",qmdNotInstalled:"qmd is not installed. Search will use local files. Install indexed retrieval:",qmdPathUsed:"qmd path used",qmdStatusAvailable:"available",qmdStatusMissing:"missing",readOnlyBanner:"This memory backend is read-only. Changes cannot be saved.",retrievalTestComplete:"Memory retrieval test complete",retrievalTestFailed:"Failed to test memory retrieval",retrievalTestFallback:"qmd is not installed; local fallback was used",runAudit:"Run Audit",save:"Save",saveInsights:"Save Insights",saveInsightsFailed:"Failed to save insights",saveMemoryFailed:"Failed to save memory",saveSettings:"Save Settings",saveSettingsFailed:"Failed to save memory settings",saving:"Saving…",searchPlaceholder:"Search memory with qmd",sectionCount_one:"{{count}} sections",sectionCount_other:"{{count}} sections",settingsNote:"Note: Change backend type in",settingsNoteLink:"Settings → Memory",settingsNoteToast:"Open Settings → Memory to change backend type",settingsSaved:"Memory settings saved",sizeChars:"{{size}} chars",tabEngines:"Engines",tabInsights:"Insights",tabWorking:"Working Memory",testing:"Testing…",testMemorySearchTitle:"Test Memory Search",testResultCount_one:'{{count}} result for "{{query}}"',testResultCount_other:'{{count}} results for "{{query}}"',testResultStatus:"qmd {{qmdStatus}} · {{fallbackStatus}}",testRetrieval:"Test Retrieval",testSearchHint:"Runs the same qmd-backed memory_search path agents use.",title:"Memory",totalInsights:"Total Insights",workingMemoryLabel:"Working Memory"},ve={advanced:"Advanced",advancedTo:"{{branch}} advanced to {{sha}}.",changesWillAutoStash:" (local changes will be auto-stashed and restored)",checkedOutBehind:"Your checked-out copy at {{path}} is behind.",commit:"Commit",disabledMergeLocked:"Push paused — a Fusion merge is in progress.",disabledNoRemote:"No `origin` remote configured.",disabledNoUpstream:"Branch has no upstream on origin.",dismissNotice:"Dismiss merge advance notice",filesChanged:"Files in merge commit",forceWithLeaseLabel:"Allow force-with-lease (use only when you know origin diverged intentionally)",insertionsDeletions:"Merge-commit insertions / deletions",mergedAt:"Merged at",mergedSuccess:"Merged successfully",message:"Message",pr:"PR",pulling:"Pulling…",pushForceWithLease:"Push (force-with-lease)",pushHeading_one:"Push {{branch}} to origin — ahead by {{count}} commit{{plural}}.",pushHeading_other:"Push {{branch}} to origin — ahead by {{count}} commit{{plural}}.",pushing:"Pushing…",pushSuccess:"Pushed to origin/{{branch}} @ {{sha}}.",pushToOrigin:"Push to origin",recordedNoConfirm:"Recorded without local merge confirmation",shortstatTitle:"Final commit shortstat; for the full landed diff across all task commits, see the Changes tab.",smartPull:"Smart Pull",status:"Status",title:"Merge Details"},ke={ariaLabel:"Node mesh topology visualization",connecting:"Connecting",error:"Error",failedToFetchMeshState:"Failed to fetch mesh state",noNodes:"No nodes to display",noPeers:"Peer-to-peer discovery data unavailable.",offline:"Offline",online:"Online"},ye=JSON.parse('{"acceptance":"Acceptance:","acceptanceCriteriaOptional":"Acceptance criteria (optional)","acceptanceCriteriaPrefix":"AC:","actionGenerating":"Generating…","actionResume":"Resume","actionRetry":"Retry","actionReview":"Review","activateSlice":"Activate slice","activityCount":"{{visible}} of {{total}}","activityTime":"Activity {{time}}","actual":"Actual: {{value}}","addAssertion":"Add assertion","addContext":"Add any extra context or direction...","addFeature":"Add feature","additionalComments":"Additional comments (optional)","addMilestone":"Add Milestone","addSlice":"Add slice","aiThinking":"AI is thinking...","aiValidatedAtRuntime":"AI-validated at runtime","aiValidatedMissionGate":"AI-validated mission gate","allFeaturesLinked":"All features already linked","approvePlan":"Approve Plan","assertionCreated":"Assertion created","assertionCreateFailed":"Failed to create assertion","assertionFieldsRequired":"Title and assertion text are required","assertionTextEditPlaceholder":"Assertion text","assertionTextPlaceholder":"Assertion text (what should be true when complete)","assertionTitlePlaceholder":"Assertion title","assertionUpdated":"Assertion updated","assertionUpdateFailed":"Failed to update assertion","attemptRetries_one":"Attempt {{attempt}} · {{count}} {{label}} left","attemptRetries_other":"Attempt {{attempt}} · {{count}} {{label}} left","autopilotActivatingSlice":"Activating slice","autopilotCompleting":"Completing","autopilotDescription":"When on, Fusion automatically activates the next slice and plans its features as work completes.","autopilotDisabled":"Autopilot disabled","autopilotEnabled":"Autopilot enabled","autopilotEnabledLabel":"Autopilot enabled","autopilotLabel":"Autopilot","autopilotLastActivation":"Last activation {{time}}","autopilotOff":"Off","autopilotUpdateFailed":"Failed to update autopilot","autopilotWatching":"Autopilot watching","autopilotWatchingSince":"Watching since {{time}}","autopilotWatchingState":"Watching","backToMissions":"Back to missions","backToMissionsList":"Back to missions list","blocked":"Blocked:","blockedReason":"Blocked reason:","branchName":"Branch name","branchNameAriaLabel":"Mission branch name","branchNamePlaceholder":"e.g. feature/mission-work","branchNameRequired":"Branch name is required for selected branch strategy","branchStrategy":"Branch strategy","branchStrategyAriaLabel":"Mission branch strategy","branchStrategyAutoPerTask":"Auto-name a branch per task (from details)","branchStrategyCustomNew":"Create custom branch","branchStrategyExisting":"Use existing branch","branchStrategyProjectDefault":"Use project/default branch","buildExample":"e.g., Build a real-time collaborative document editor with presence, comments, and version history...","cancelButton":"Cancel","clickToViewTask":"Click to view task","close":"Close","closeMissionManager":"Close Mission Manager","collapseDetails":"Collapse details","completedFeatures":"{{completed}}/{{total}} features","completedMilestones":"{{completed}}/{{total}} milestones","completedTasks":"{{completed}}/{{total}} tasks","confirmMilestonePlaceholder":"How to confirm this milestone is complete...","confirmSlicePlaceholder":"How to confirm this slice is done...","contractAssertions":"Contract assertions (AI-validated)","createButton":"Create","created":"Mission created","createdFromInterview":"Mission created from AI interview","createTask":"Create Task","creatingMission":"Creating Mission...","defaultInterviewTitle":"Mission interview","deleteAssertion":"Delete assertion","deleteButton":"Delete","deleteConfirm":"Delete this {{type}}? This cannot be undone.","deleted":"Mission deleted","deleteFailed":"Failed to delete mission","deleteFeature":"Delete feature","deleteMilestone":"Delete milestone","deleteMission":"Delete mission","deleteSlice":"Delete slice","describeGoal":"Describe what you want to build. The AI will interview you to understand scope, constraints, and requirements, then produce a structured plan with milestones, slices, and features.","descriptionLabel":"Mission Description","descriptionOptional":"Description (optional)","detailTabs":"Mission detail tabs","discardButton":"Discard","discardDraft":"Discard draft","discardDraftConfirm":"Discard this interview draft? This removes the saved draft and cannot be undone.","dismiss":"Dismiss","draftDiscardFailed":"Failed to discard draft","draftOpenInAnotherTab":"Draft is open in another tab","draftsLabel":"Drafts","editAssertion":"Edit assertion","editFeature":"Edit feature","editMilestone":"Edit milestone","editMission":"Edit mission","editSlice":"Edit slice","enrichedDescPreview":"Enriched Description Preview","expandRunHistory":"Expand to show run history","expected":"Expected: {{value}}","failedAssertions":"Failed assertions:","failedAssertionsTitle":"Failed Assertions:","failedLoadModels":"Failed to load models","featureCreated":"Feature created","featureCriteriaAwaitingSync":"Feature criteria awaiting assertion sync","featureDeleted":"Feature deleted","featureDeleteFailed":"Failed to delete feature","featureLinkedToAssertion":"Feature linked to assertion","featureLinkedToTask":"Feature linked to task","featureLinkFailed":"Failed to link feature","featureLinkTaskFailed":"Failed to link feature to task","featureSaveFailed":"Failed to save feature","featuresCount_one":"{{count}} features","featuresCount_other":"{{count}} features","featureTitlePlaceholder":"Feature title","featureTitleRequired":"Feature title is required","featureTriaged":"Feature triaged — task created","featureTriageFailed":"Failed to triage feature","featureUnlinkedFromAssertion":"Feature unlinked from assertion","featureUnlinkedFromTask":"Feature unlinked from task","featureUnlinkFailed":"Failed to unlink feature","featureUnlinkFromAssertionFailed":"Failed to unlink feature","featureUpdated":"Feature updated","filterAll":"All events","filterAutopilot":"Autopilot events","filterErrors":"Errors & warnings","filterLabel":"Filter","filterSlices":"Slice & milestone events","filterStateChanges":"State changes","filterTasks":"Task events","fixLineageButton":"🔗 Fix","generatedFixFeatures":"Generated fix features:","generatedFixFeaturesTitle":"Generated Fix Features","generatedFromFeature":"Generated from feature: {{id}}","goalLinked":"Goal linked to mission","goalLinkFailed":"Failed to link goal","goalPicker":"Goal to link","goalUnlinked":"Goal unlinked from mission","goalUnlinkFailed":"Failed to unlink goal","hideDetails":"Hide details","hideMetadata":"Hide metadata","hideThinking":"Hide thinking","hideValidationRounds":"Hide validation rounds","interviewActionGenerating":"Generating plan","interviewActionResume":"Resume interview","interviewActionRetry":"Retry interview","interviewActionReview":"Review plan","interviewComplete":"Plan ready — review and approve to create the mission.","interviewErrorDefault":"Session failed while contacting the AI.","interviewErrored":"Interview hit an error. Retry from this list item.","interviewGenerating":"Generating mission hierarchy from interview context.","interviewInProgress":"Interview in progress","interviewWaiting":"Interview is waiting for your next response.","lastValidatorStatus":"Last {{status}}","linkAFeature":"Link a feature","linkButton":"Link","linkedCount_one":"{{count}} linked","linkedCount_other":"{{count}} linked","linkedCountShort_one":"({{count}} linked)","linkedCountShort_other":"({{count}} linked)","linkedFeaturesCount_one":"{{count}} linked feature","linkedFeaturesCount_other":"{{count}} linked features","linkedFeaturesLabel":"Linked Features","linkedGoals":"Linked goals","linkedGoalsTitle":"Linked Goals","linkFeatureButton":"Link Feature","linkFeatureToTask":"Link feature to task:","linkGoal":"Link goal","linkingGoal":"Linking…","linkToTask":"Link to task","loadActivityFailed":"Failed to load mission activity","loadDetailFailed":"Failed to load mission details","loadFailed":"Failed to load missions","loadGoalsFailed":"Failed to load goals","loadingActivity":"Loading mission activity...","loadingMissionDetails":"Loading mission details...","loadingMissions":"Loading missions...","loadingModels":"Loading models…","loadMore":"Load more","loopState":"Loop state: {{state}}","milestoneCreated":"Milestone created","milestoneDeleted":"Milestone deleted","milestoneDeleteFailed":"Failed to delete milestone","milestoneDescriptionPlaceholder":"Milestone description...","milestoneSaveFailed":"Failed to save milestone","milestonesCount_one":"{{count}} milestones","milestonesCount_other":"{{count}} milestones","milestoneTitlePlaceholder":"Milestone title","milestoneTitleRequired":"Milestone title is required","milestoneUpdated":"Milestone updated","missionHealthAriaLabel":"Mission health: {{state}}","missionInterviewInProgressDesc":"Mission interview is still in progress. Open this mission to continue planning.","missionList":"Mission list","missionManagerAriaLabel":"Mission Manager","missionTargetBranchAriaLabel":"Mission target branch","missionTitlePlaceholder":"Mission title","noAssertionFailures":"No assertion failures","noAssertionsDefined":"No feature acceptance criteria or contract assertions defined yet.","noAssertionsYet":"No linked contract assertions are loaded yet. Feature criteria below will still be AI-validated when mission validation runs.","noEventsYet":"No events yet.","noFeaturesLinkedYet":"No features linked yet","noFixFeaturesGenerated":"No fix features generated.","noGoalsLinked":"No goals linked to this mission","noLinkedGoals":"No linked goals.","noMilestonesYet":"No milestones yet. Add one to get started.","noMissionsYetBody":"Missions are large initiatives that bundle milestones, slices, and features into a single plan. Plan a mission to break down a goal end-to-end and let agents work through it autopilot-style.","noMissionsYetTitle":"No missions yet","none":"None","noSlicesYet":"No slices yet","noValidationRunsYet":"No validation runs yet.","openMissionAriaLabel":"Open mission {{title}}","orSelect":"Or select:","planMilestone":"Plan milestone","planNewMission":"Plan New Mission","planningModel":"Planning Model","planReady":"Mission Plan Ready","planSlice":"Plan slice","planStateNeedsUpdate":"Needs update","planStateNotPlanned":"Not planned","planStatePlanned":"Planned","planTargetTitle":"Plan {{targetLabel}}: {{targetTitle}}","planTitle":"Plan Mission with AI","prepareQuestion":"Preparing next question...","progressText_one":"Question {{count}} of ~6","progressText_other":"Question {{count}} of ~6","reconnecting":"Reconnecting…","relativeTimeDays_one":"{{count}}d ago","relativeTimeDays_other":"{{count}}d ago","relativeTimeHours_one":"{{count}}h ago","relativeTimeHours_other":"{{count}}h ago","relativeTimeJustNow":"just now","relativeTimeMinutes_one":"{{count}}m ago","relativeTimeMinutes_other":"{{count}}m ago","removeFeature":"Remove feature","removeMilestone":"Remove milestone","removeSlice":"Remove slice","resizeSidebar":"Resize mission sidebar","resumed":"Mission resumed","resumeFailed":"Failed to resume mission","resumeInterviewAriaLabel":"Resume interview {{title}}","resumeMission":"Resume mission","retries":"retries","retry":"retry","retryBudgetTitle":"Implementation attempts and remaining retry budget","retrying":"Retrying...","roadmapLabel":"Roadmap","run":"Run:","runSettings":"Mission run settings","runSettingsTitle":"Mission run settings","saveButton":"Save","saveFailed":"Failed to save mission","selectGoal":"Select an active goal","selectMissionToView":"Select a mission to view details","sendToBackground":"Send to background","sessionActiveAnother":"Session is active in another tab.","sessionActiveHeartbeat":"This session is active in another tab (live heartbeat)","sessionActiveTab":"This session is active in another tab","showDetails":"Show details","showMetadata":"Show metadata","showThinking":"Show thinking","showValidationRounds":"Show validation rounds","sliceActivated":"Slice activated","sliceActivateFailed":"Failed to activate slice","sliceCreated":"Slice created","sliceDeleted":"Slice deleted","sliceDeleteFailed":"Failed to delete slice","sliceSaveFailed":"Failed to save slice","slicesCount_one":"{{count}} slices","slicesCount_other":"{{count}} slices","sliceTitlePlaceholder":"Slice title","sliceTitleRequired":"Slice title is required","sliceTriaged_one":"Triaged {{count}} feature","sliceTriaged_other":"Triaged {{count}} features","sliceTriageFailed":"Failed to triage slice features","sliceUpdated":"Slice updated","sliceVerification":"Slice Verification","source":"Source:","started":"Mission started — first slice activated","startFailed":"Failed to start mission","startInterview":"Start Interview","startMission":"Start mission","startOver":"Start Over","statusActive":"Active","statusArchived":"Archived","statusBlocked":"Blocked","statusComplete":"Complete","statusDefined":"Defined","statusDone":"Done","statusFailed":"Failed","statusInProgress":"In Progress","statusPassed":"Passed","statusPending":"Pending","statusPlanning":"Planning","statusTriaged":"Triaged","stopFailed":"Failed to stop mission","stopMission":"Stop mission","stopped_one":"Mission stopped ({{count}} task paused)","stopped_other":"Mission stopped ({{count}} tasks paused)","summaryStats":"{{milestones}} milestones, {{features}} features. Review and edit before approving.","tabActivity_one":"Activity ({{count}})","tabActivity_other":"Activity ({{count}})","tabStructure":"Structure","takeControl":"Take Control","takingControl":"Taking control...","targetBranch":"Target branch","targetBranchPlaceholder":"e.g. main","taskIdPlaceholder":"Task ID (e.g., FN-001)","taskIdRequired":"Task ID is required","tasksFailed_one":"{{count}} failed","tasksFailed_other":"{{count}} failed","title":"Missions","titleLabel":"Mission Title","titleRequired":"Mission title is required","toggleDetails":"Toggle details","transformVision":"Transform your vision into a structured mission","triageAllFeatures":"Triage all features","triageCreateTask":"Triage — create task","tryExample":"Try an example:","typeAnswer":"Type your answer here...","unlinkedBadge":"Unlinked","unlinkFeature":"Unlink feature","unlinkGoal":"Unlink goal","unlinkTask":"Unlink task","untitled":"Untitled","updateButton":"Update","updated":"Mission updated","validateFeature":"Validate feature","validationRoundAttempts":"impl #{{implementation}} · reviewer #{{reviewer}}","validationRoundsCount_one":"{{count}} round","validationRoundsCount_other":"{{count}} rounds","validationRoundsLabel_one":"Validation rounds ({{count}})","validationRoundsLabel_other":"Validation rounds ({{count}})","validationRuns":"Validation Runs","validationState":"Validation state","validationStateNotStarted":"Not started","validationTelemetry":"Validation Telemetry","validationTriggered":"Validation triggered","validationTriggerFailed":"Failed to trigger validation","verification":"Verification:","verificationCriteria":"Verification Criteria","viewMissionFailures":"View mission failures","whatToBuild":"What do you want to build?"}'),we={createdFromPlanning:"Created {{id}} from planning mode",createdFromSubtask:"Created {{ids}} from subtask breakdown",createdMultipleFromPlanning:"Created {{ids}} from planning mode"},Ae={noChange:"No change",selectPlaceholder:"Select a model…"},Se={addProviderToFavoritesAriaLabel:"Add {{provider}} to favorites",addToFavorites:"Add to favorites",addToFavoritesAriaLabel:"Add {{name}} to favorites",clearFilter:"Clear filter",count_one:"{{count}} model",count_other:"{{count}} models",descriptions:{executor:"The AI model used to implement this task.",override:"Override the AI models used for this task. When not specified, project or global defaults are used.",planning:"The AI model used for task specification (triage phase).",reviewer:"The AI model used to review code and plans for this task.",thinkingLevel:"Controls the reasoning effort for the AI agent. Higher levels use more tokens."},emptyStates:{noModels:"No models available. Configure authentication in Settings to enable model selection."},errors:{failedSaveSettings:"Failed to save model settings",failedSaveThinking:"Failed to save thinking level",failedUpdateFavorites:"Failed to update favorites",failedUpdateModelFavorites:"Failed to update model favorites"},filterPlaceholder:"Filter models…",labels:{executorModel:"Executor Model",planningModel:"Planning Model",reviewerModel:"Reviewer Model",thinkingLevel:"Thinking Level"},messages:{thinkingLevelSet:"Thinking level set to {{level}}",thinkingLevelSetDefault:"Thinking level set to default ({{level}})",upToDate:"Model settings are up to date.",usingDefaults:"Using project or global default models."},noResults:"No models match '{{filter}}'",options:{default:"Default",high:"High",low:"Low",medium:"Medium",minimal:"Minimal",off:"Off",xhigh:"Very High",defaultWithLevel:"Default ({{level}})"},placeholders:{selectExecutor:"Select executor model…",selectPlanning:"Select planning model…",selectReviewer:"Select reviewer model…"},removeFromFavorites:"Remove from favorites",removeFromFavoritesAriaLabel:"Remove {{name}} from favorites",removeProviderFromFavoritesAriaLabel:"Remove {{provider}} from favorites",states:{loading:"Loading available models…",usingDefault:"Using default"},targetLabels:{executor:"Executor",planning:"Planning",validator:"Reviewer"},titles:{configuration:"Model Configuration"},useDefault:"Use default"},Ce={choose:"Choose models for this task. If not selected, default models will be used.",custom:"Custom",executorModel:"Executor Model",executorPlaceholder:"Select executor model…",loading:"Loading models…",noModels:"No models available. Configure authentication in Settings to enable model selection.",planningModel:"Planning Model",planningPlaceholder:"Select planning model…",preset:"Preset",reviewerModel:"Reviewer Model",reviewerPlaceholder:"Select reviewer model…",thinkingDefault:"Default ({{level}})",thinkingModel:"Thinking",title:"Select Models",useDefault:"Use default",usingDefault:"Using default"},Te={activityLog:"Activity Log",agents:"Agents",automation:"Automation",board:"Board",chat:"Chat",chatUnreadAriaLabel:"Unread chat response",collapseSidebar:"Collapse sidebar",commandCenter:"Dashboard",devServer:"Dev Server",documents:"Artifacts",evals:"Evals",expandSidebar:"Expand sidebar",files:"Files",gitManager:"Git Manager",goals:"Goals",importFromGitHub:"Import from GitHub",insights:"Insights",list:"List",loadingScripts:"Loading scripts…",mailbox:"Mailbox",mailboxPendingAriaLabel:"Pending approvals",manageScripts:"Manage Scripts…",memory:"Memory",missions:"Missions",more:"More",moreSheetTitle:"Navigate",noScriptsAddOne:"No scripts — add one…",planning:"Planning",planningNeedsInputAriaLabel:"Planning needs your input",primaryNavAriaLabel:"Primary navigation",projects:"Projects",research:"Research",resizeSidebar:"Resize sidebar",scriptsSubmenuAriaLabel:"Scripts submenu",secrets:"Secrets",settings:"Settings",showScriptsAriaLabel:"Show scripts",sidebarAriaLabel:"Sidebar navigation",skills:"Skills",stashRecovery:"Stash Recovery",tasks:"Tasks",terminal:"Terminal",todos:"Todos",usage:"Usage",workflows:"Workflows"},Pe={addDependencies:"Add dependencies",assignAgent:"Assign Agent",assignAgentButton:"Assign agent",branchRequired:"Branch name is required for this branch strategy.",clearSelection:"Clear selection",createTask:"Create Task",creating:"Creating...",dependencies:"Dependencies",discardChanges:"Discard Changes",failedToCreate:"Failed to create task",failedToUpload:"Failed to upload: {{files}}",loadingAgents:"Loading agents...",noAgentsAvailable:"No agents available",noAvailableTasks:"No available tasks",searchTasks:"Search tasks…",selectAgent:"Select agent",selectedCount_one:"{{count}} selected",selectedCount_other:"{{count}} selected",taskCreated:"Created {{taskId}}",title:"New Task",unsavedChanges:"You have unsaved changes. Discard them?"},Re={actions:{connect:"Connect",connecting:"Connecting...",edit:{ariaLabel:"Edit node",label:"Edit",title:"Edit"},health:{ariaLabel:"Run node health check",label:"Health",title:"Health Check"},remove:{ariaLabel:"Remove node",ariaLabelConfirm:"Confirm remove node",label:"Remove",labelConfirm:"Confirm",title:"Remove",titleConfirm:"Confirm remove"},restart:{ariaLabel:"Restart node container",label:"Restart",title:"Available after FN-3113"},start:{ariaLabel:"Start node container",label:"Start",title:"Available after FN-3113"},stop:{ariaLabel:"Stop node container",label:"Stop",title:"Available after FN-3113"}},addCliButton:"Add CLI",addDockerNode:"Add Docker Node",addDockerNodeTitle:"Add a managed Docker node",addFirstNode:"Add First Node",adding:"Adding...",addMountButton:"Add Mount",addNode:"Add Node",addVariableButton:"Add Variable",apiKey:"API Key",apiKeyMode:"API Key Mode",apiKeyNotConfigured:"Not configured",apiKeyPlaceholder:"Enter node API key",attachProjects:"Attach Existing Projects",attachProjectsHint:"Select existing projects to run on this node and provide the node-specific absolute path for each one.",authSync:{differ:"credentials differ",label:"Auth sync: {{status}}",match:"credentials match",notSynced:"not synced"},autoAssignment:"Auto (no assignment)",autoGenerate:"Auto-generate",availableSoon:"Available after FN-3113",cancelButton:"Cancel",closeAriaLabel:"Close nodes view",closeButton:"Close",closeLogsAriaLabel:"Close logs",closeModalAriaLabel:"Close node detail modal",closeNodeModal:"Close add node modal",concurrencyMin:"Concurrency must be at least 1",concurrencyRange:"Concurrency must be between {{min}} and {{max}}",containerLogs:"Container Logs",description:"Register an existing Fusion node by providing its connection details and concurrency settings.",discoverBeforeAdding:"Discover remote projects before adding this node.",discoveredCount_one:"Discovered {{count}} remote project{{plural}}",discoveredCount_other:"Discovered {{count}} remote project{{plural}}",discoveredRemoteProjectsLabel:"Discovered remote projects",discovering:"Discovering...",discoverRemoteProjects:"Discover Remote Projects",discoveryFailed:"Failed to discover remote projects",dismissError:"Dismiss error",docker:"Docker",dockerBadge:"Managed Docker node",dockerConfigMeta:"Config v{{version}} • Updated {{updated}}",dockerConfigSaveFailed:"Failed to save Docker config",dockerConfigSaveSuccess:"Docker config saved",dockerConfiguration:"Docker Configuration",dockerContainerId:"Container ID",dockerContainerPath:"Container path",dockerContextName:"Context name",dockerCpuCount:"CPU count",dockerDefaultCpu:"Default CPU",dockerDefaultMemory:"Default memory",dockerEnvVars:"Environment Variables",dockerExitCode:"Exit code:",dockerExtraClis:"Extra CLIs",dockerFieldImage:"Image",dockerHost:{local:"Local Docker",remote:"Remote: {{host}}"},dockerHostLabel:"Host",dockerHostConfig:"Host Config",dockerHostPath:"Host path",dockerHostUrl:"Docker host URL",dockerLabel:"Docker",dockerMemoryBytes:"Memory bytes (2 GB = 2147483648)",dockerNeedsRecreate:"Needs Recreate",dockerNodeCreated:'Docker node "{{name}}" created',dockerPersistence:"Persistence",dockerPersistentStorage:"Persistent Storage",dockerPidsLimit:"PIDs limit",dockerPort:"Port",dockerResourceDefault:"Default",dockerResources:"Resources",dockerResourceSizing:"Resource Sizing",dockerRetainOnDelete:"Retain on delete",dockerStatusUnknown:"Unknown",dockerTlsCaCert:"TLS CA cert path",dockerTlsCert:"TLS cert path",dockerTlsKey:"TLS key path",dockerTlsVerify:"TLS verify",dockerUptime:"Uptime:",dockerVolumeMounts:"Volume Mounts",dockerVolumeName:"Volume name",editButton:"Edit",errorFetching:"Failed to fetch nodes",errorPersistMappings:"Failed to persist project mappings",errors:{connectFailed:"Failed to connect",connectToNode:"Failed to connect to node"},errorUnregisterAfterMappingFailure:"Failed to unregister node after mapping failure",failedCreateDocker:"Failed to create Docker node",failedRefresh:"Failed to refresh nodes",failedRemove:"Failed to remove node",fetchContainerLogsFailed:"Failed to fetch container logs",fetchContainerStatusFailed:"Failed to fetch container status",fetchingLogs:"Fetching logs...",fieldApiKey:"API Key",fieldCreated:"Created",fieldMaxConcurrent:"Max Concurrent",fieldName:"Name",fields:{authKey:"Auth Key",host:"Host / IP Address",maxConcurrent:"Max Concurrent",name:"Node Name",port:"Port",url:"URL"},fieldStatus:"Status",fieldType:"Type",fieldUpdated:"Updated",fieldUrl:"URL",heading:"Nodes",healthCheckButton:"Health Check",healthCheckComplete:"Node health check complete",healthCheckFailed:"Health check failed",healthCheckSuccess:"Health check completed for {{name}}",healthLastCheck:"Last check:",healthStatus:"Status:",local:"Local",localDocker:"Local Docker",localNodeName:"Local",maxConcurrent:"Max Concurrent",maxConcurrentHint:"Max simultaneous task agents (1–10)",meshTopology:"Mesh Topology",meshTopologyAriaLabel:"Mesh Topology",metrics:{concurrency:"Concurrency",projects:"Projects"},modal:{closeButton:"Close connect node modal",title:"Connect to Node"},modalAriaLabel:"Node details for {{name}}",modalTitle:"Node Details",multipleMatches:"Multiple remote projects matched this name. Enter the correct path manually.",name:"Name",namePlaceholder:"Build Machine",nameRequired:"Name is required",no:"No",nodeLabel:"{{name}} ({{type}}) — {{status}}",noLogsAvailable:"No logs available",noMatch:"No exact remote name match. Enter this path manually.",noProjects:"No projects are currently registered.",noProjectsAssigned:"No projects are assigned to this node.",noProjectsDiscovered:"No projects discovered on remote node.",noProjectsRunning:"No projects are running on this node.",noRegistered:"No nodes are registered yet.",offline:"Offline",online:"Online",pathDiscovered:"Remote-authoritative path discovered: {{path}}",pathInvalid:"Path is invalid",pathOnNode:"Path on this node",placeholders:{host:"192.0.2.10 or my-server.local",name:"Build Server",optional:"Optional"},projectPathMappingsLabel:"Project path mappings",provideManually:"Provide key manually",pulling:"Pulling...",pullSettings:"Pull Settings",pullSettingsFailed:"Pull settings failed",pullSettingsSuccess:"Settings pulled successfully",pushing:"Pushing...",pushSettings:"Push Settings",pushSettingsFailed:"Push settings failed",pushSettingsSuccess:"Settings pushed successfully",reachableUrl:"Reachable URL / Hostname",readOnly:"Read-only",refresh:"Refresh",refreshing:"Refreshing...",refreshStatus:"Refresh Status",registered:'Node "{{name}}" registered',registeredCount_one:"{{count}} registered",registeredCount_other:"{{count}} registered",registerFailed:"Failed to register node",remote:"Remote",removeButton:"Remove",removed:"Node removed",restartButton:"Restart",runtimeNodeLabel:"Runtime Node",saveButton:"Save",saveDockerConfig:"Save Docker Config",saving:"Saving...",sectionAssignedProjects:"Assigned Projects",sectionDockerManagement:"Docker Management",sectionHealth:"Health",sectionOverview:"Overview",sectionProjects:"Projects",sectionSettingsSync:"Settings Sync",sectionSyncHistory:"Sync History",startButton:"Start",statusConnecting:"Connecting",statusError:"Error",statusOffline:"Offline",statusOnline:"Online",statusTitle:"Status: {{status}}",stopButton:"Stop",success:{connected:'Connected to "{{name}}"'},syncAuth:"Sync Auth",syncAuthFailed:"Auth sync failed",syncAuthSuccess:"Auth credentials synced successfully",syncDifferences:"Differences:",synced:"Synced",syncing:"Syncing...",syncLastSync:"Last sync:",syncNeverSynced:"Never synced",total:"Total",type:{local:"Local",remote:"Remote"},typeLocal:"Local",typeRemote:"Remote",updateFailed:"Failed to update node",updateSuccess:"Updated {{name}}",urlRequired:"URL is required for remote nodes",validation:{concurrencyRange:"Concurrency must be between {{min}} and {{max}}",hostRequired:"Host / IP address is required",nameRequired:"Node name is required",portRange:"Port must be between 1 and 65535"},viewLogsButton:"View Logs",yes:"Yes"},Fe={local:"Local"},Le={error:{authSyncFailed:"Auth sync failed",failedToFetchStatus:"Failed to fetch sync status",pullFailed:"Pull settings failed",pushFailed:"Push settings failed",someRequestsFailed:"Some sync status requests failed"}},De={authToken:"Auth token (optional)",continue:"Continue",continueOnboarding:"Continue onboarding",continueSetup:"Continue Setup",defaultName:"Remote Server",description:"Fusion helps you plan, run, and review AI-assisted engineering work.",localFusion:"Local Fusion",onTheStep:"You're on the ",profileName:"Profile name",progressText:"{{completed}} of {{total}} step{{pluralS}} complete — You're on the ",remoteServer:"Remote Server",resumeOnboarding:"Resume onboarding",saving:"Saving…",scanning:"Scanning…",scanQr:"Scan QR",serverUrl:"Server URL",serverUrlPlaceholder:"https://your-fusion-host",stepContinue:"step. Continue where you left off to complete your dashboard setup.",welcome:"Welcome to Fusion"},Me={agentId:"Agent ID",agentIdHint:"OpenClaw agent definition to run (default: main).",agentIdPlaceholder:"main",binaryPath:"Binary path",binaryPathHint:"Leave blank to resolve openclaw from your PATH.",binaryPathPlaceholder:"openclaw (defaults to PATH)",cliTimeout:"OpenClaw timeout (sec)",cliTimeoutHint:"OpenClaw-side run timeout in seconds (0 = no timeout).",description:"Drives the local <code1>openclaw</code1> CLI as a subprocess. Each Fusion prompt is dispatched via <code2>openclaw agent --local --json</code2>; the agent definition, model, and thinking level are resolved by OpenClaw. This card only sets overrides and the binary path.",detected:"✓ openclaw detected{{version}}{{path}}.",gateway:"Route through OpenClaw gateway (otherwise embedded)",gatewayHint:"When enabled, calls pass through the OpenClaw gateway service.",githubLink:"openclaw on GitHub",model:"Model override",modelHint:"Optional — overrides the OpenClaw default model.",modelPlaceholder:"e.g. anthropic/claude-haiku-4-5, minimax/MiniMax-M3",notDetectedInstall:"<code>openclaw</code> not detected. Install the upstream agent:",notFound:"✗ openclaw not found",probing:"Probing local openclaw binary…",saved:"Settings saved.",savedDetected:"Saved · ✓ openclaw detected{{version}}{{path}}.",savedNotFound:"Saved · ✗ openclaw not found",savedProbeFailed:"Saved, but probe failed.",statusDetected:"✓ Detected{{version}}{{path}}",statusDisabledInPluginManager:"Disabled in Plugin Manager",statusNotFound:"✗ not detected on PATH",subprocess:"CLI subprocess timeout (ms)",subprocessHint:"Fusion-side hard cap before the CLI subprocess is killed (default: {{default}}s).",testFailed:"Test failed — see status above.",thinking:"Thinking level",thinkingHint:"Controls how much extended thinking the model uses."},Ie={agentHelp:"Pick the Paperclip agent this Fusion runtime will proxy.",agentLabel:"Agent",apiKeyHelp:"Agent API key. Local-trusted deployments may leave this blank.",apiKeyLabel:"API key",apiKeyMinted:"API key minted via paperclipai (key 'fusion-runtime' installed for agent {{agentId}}). Click Save to persist.",apiKeyPlaceholder:"•••••••• (leave blank to keep existing)",apiUrlHelp:"Base URL of the Paperclip server.",apiUrlLabel:"API URL",cliApiKeyHelp:"Local-trusted deployments do not require a key.",cliApiKeyLabel:"API key (override, optional)",cliApiKeyPlaceholder:"Optional — only required for non-local-trusted modes",cliBinaryHelp:"Optional — informational; the adapter currently reads the instance config file directly.",cliBinaryLabel:"paperclipai binary",cliConfigLabel:"CLI config:",cliConfigPathHelp:"Override the path to config.json. Leave blank for the default.",cliConfigPathLabel:"Instance config path",cliDiscoveryFailed:"CLI discovery failed: {{reason}}",cliDiscoveryFailedLabel:"CLI discovery failed: {{reason}}",companyHelp:"Select a Paperclip company.",companyIdRequired:"Company ID is required to mint a Paperclip API key.",companyLabel:"Company",connected:"Connected.",connectedAsAgent:"Connected as {{agentName}}{{companyInfo}}.",connectionModeAriaLabel:"Paperclip connection mode",connectToPopulate:"Connect to populate",description:"Drive a Paperclip agent (employee) in a Paperclip company. Each prompt dispatches a task-shaped request; governance, budgets, and approvals are enforced by Paperclip. Expect seconds-to-minutes latency per turn.",docsLink:"Paperclip docs",githubLink:"GitHub",goalIdHelp:"Associate work with a Paperclip goal.",goalIdLabel:"Goal ID (optional)",mintButton:"Mint API key via paperclipai",mintFailed:"Mint failed: {{reason}}. Run `paperclipai onboard` first if your CLI isn't authenticated.",modeLabel:"Conversation mode",name:"Paperclip",noAgentsDiscovered:"No agents discovered",noCompaniesDiscovered:"No companies discovered",onboardingStep1:"Make sure a Paperclip server is running. To install Paperclip:",optionalPlaceholder:"Optional",parentIssueIdHelp:"Scope work under an existing parent issue.",parentIssueIdLabel:"Parent issue ID (optional)",pickCompanyFirst:"Pick a company first",projectIdHelp:"Pin work to a specific Paperclip project.",projectIdLabel:"Project ID (optional)",resolved:"resolved",runTimeoutHelp:"Local cap before Fusion gives up on a Paperclip run.",runTimeoutLabel:"Run timeout (ms)",savedCliDiscoveryFailed:"Saved · CLI discovery failed: {{reason}}",savedConnected:"Saved · Connected.",savedConnectedAsAgent:"Saved · Connected as {{agentName}}{{companyInfo}}.",savedProbeFailed:"Saved, but probe failed.",savedUnreachable:"Saved · {{reason}}",settingsSaved:"Settings saved.",statusCliDiscoveryFailed:"CLI discovery failed: {{reason}}",statusConnected:"Connected",statusConnectedAs:"Connected as {{agentName}}{{roleInfo}}{{companyInfo}}",statusDisabledInPluginManager:"Disabled in Plugin Manager",statusProbing:"Probing Paperclip server…",statusUnreachable:"{{reason}}",tabApi:"API (URL + token)",tabCliAutoDerve:"Local CLI (auto-derive)",testFailed:"Test failed — see status above.",unreachable:"{{reason}}"},Ne={filterHint:"{{extensions}} ext, {{skills}} skill, {{prompts}} prompt, {{themes}} theme"},xe={addButton:"Add",discoveredDescription:"Installed extensions resolved from packages and configured paths.",discoveredTitle:"Discovered Extensions",enterSource:"Please enter a package source",extensionDisabled:"Extension disabled",extensionEnabled:"Extension enabled",filterExtensions:"Extensions:",filterPrompts:"Prompts:",filterSkills:"Skills:",filterThemes:"Themes:",installFailed:"Failed to install package: {{error}}",installing:"Installing…",installSuccess:"Package installed successfully",loadExtensionsFailed:"Failed to load extensions: {{error}}",loading:"Loading Pi settings…",loadingExtensions:"Loading extensions…",loadingFailed:"Failed to load Pi settings.",loadSettingsFailed:"Failed to load Pi settings: {{error}}",noExtensions:"No extensions discovered.",noPackages:"No packages configured.",noPackagesHelp:"Add a package source above to get started.",packagePlaceholder:"npm:pi-extension-name or git:https://github.com/...",packageRemoved:"Package removed",refreshButton:"Refresh",refreshExtensions:"Refresh extensions",reinstallButton:"Reinstall Fusion skill",reinstallFailed:"Failed to reinstall Fusion skill: {{error}}",reinstalling:"Reinstalling Fusion…",reinstallSuccess:"Fusion skill reinstalled successfully",removeFailed:"Failed to remove package: {{error}}",removePackage:"Remove package",removePackageLabel:"Remove package {{label}}",removeResource:"Remove {{path}}",resourceRemoved:"{{resource}} removed",sectionExtensions:"Extensions",sectionPrompts:"Prompts",sectionSkills:"Skills",sectionThemes:"Themes",title:"Pi Extensions",toggleExtension:"Toggle {{name}}",updateFailed:"Failed to update extension: {{error}}",updateSettingsFailed:"Failed to update settings: {{error}}"},Ee={additionalComments:"Additional comments (optional)",additionalCommentsPlaceholder:"Add any extra context or direction...",addSubtask:"Add subtask",advancedSettings:"Advanced planning settings",aiThinking:"AI is thinking...",archiveSession:"Archive session",backToSessions:"Back to sessions",backToSummary:"Back to Summary",baseBranch:"Merge target / base branch (optional)",baseBranchPlaceholder:"main",branchAutoNew:"Create auto-named branch per task",branchCustomNew:"Create custom new branch",branchExisting:"Use existing branch",branchName:"Branch name",branchNameRequired:"Branch name is required for this branch strategy.",branchProjectDefault:"Use project/default branch",branchStrategy:"Branch strategy",breakdownSubheading:"Review and edit the subtasks generated from your plan. Adjust titles, descriptions, sizes, priorities, and dependencies before creating.",breakingDown:"Breaking down...",breakIntoTasks:"Break into Tasks",breakIntoTasksTitle:"Break the plan into multiple tasks with dependencies",collapse:"Collapse",continue:"Continue",createSingleTask:"Create Single Task",createTasks:"Create Tasks",creating:"Creating...",delete:"Delete",deleteSession:"Delete session",dependencies:"Dependencies",dependencyCycle:"Dependencies contain a cycle. Remove circular references before creating tasks.",depthBlurb:"Plan size sets default interview depth. Questions lets you override with an exact count.",depthLarge:"Large",depthMedium:"Medium",depthSmall:"Small",description:"Description",dismiss:"Dismiss",dragToReorder:"Drag to reorder",examplePlan1:"Build a user authentication system with login and signup",examplePlan2:"Add dark mode support to the dashboard",examplePlan3:"Create an API endpoint for exporting tasks as CSV",examplePlan4:"Refactor the task card component for better performance",expand:"Expand",failedCreateTask:"Failed to create task",failedCreateTasks:"Failed to create tasks",failedDeleteSession:"Failed to delete session",failedGoBack:"Failed to go back to the previous question",failedLoadModels:"Failed to load models",failedLoadSession:"Failed to load session",failedRefinePlan:"Failed to refine plan",failedStartBreakdown:"Failed to start breakdown",failedStartSession:"Failed to start planning session",failedSubmitResponse:"Failed to submit response",firstSubtaskNoDeps:"First subtask cannot have dependencies.",generatingQuestion:"Generating next question...",generationStopped:"Generation stopped by user. You can retry or start a new session.",hideArchived:"Hide archived",hideThinking:"Hide thinking",initialHeading:"Transform your idea into a detailed task",initialSubheading:"Describe what you want to build in plain language. The AI will ask clarifying questions and help you structure a well-defined task.",keyDeliverables:"Key Deliverables",loadingModels:"Loading models…",markdown:"Markdown",moveDown:"Move down",moveSubtaskDown:"Move subtask down",moveSubtaskUp:"Move subtask up",moveUp:"Move up",newPlanningSession:"New planning session",newSession:"New session",noActiveQuestion:"No active question in session",noPreviousSubtasks:"No previous subtasks available.",noSavedSessions:"No saved sessions yet. Start one on the right to see it here.",plain:"Plain",planningComplete:"Planning Complete!",planningCompleteSubheading:"Review and refine your task before creating it.",planningDepth:"Planning depth",planningModel:"Planning Model",planningModelBlurb:"Selects which model runs the planning interview and writes the final draft.",planningSessions:"Planning sessions",priority:"Priority",questionProgress:"Question {{progress}} of ~3",questionsAuto:"Auto",questionsLabel:"Questions",reconnecting:"Reconnecting…",refineFurther:"Refine Further",relativeTimeDays_one:"{{count}}d ago",relativeTimeDays_other:"{{count}}d ago",relativeTimeHours_one:"{{count}}h ago",relativeTimeHours_other:"{{count}}h ago",relativeTimeJustNow:"just now",relativeTimeMinutes_one:"{{count}}m ago",relativeTimeMinutes_other:"{{count}}m ago",relativeTimeWeeks_one:"{{count}}w ago",relativeTimeWeeks_other:"{{count}}w ago",remove:"Remove",retryFailed:"Retry failed. Please try again.",retrying:"Retrying...",sessionActiveOtherTab:"This session is active in another tab",sessionActiveOtherTabLive:"This session is active in another tab (live heartbeat)",sessionFailed:"Session failed while contacting the AI.",sessionFailed2:"Session failed",showArchived:"Show archived",showFormattedMarkdown:"Show formatted markdown",showQA:"Show user Q&A",showRawText:"Show raw text",showThinking:"Show thinking",sizeLarge:"L (Large)",sizeMedium:"M (Medium)",sizeSmall:"S (Small)",startPlanning:"Start Planning",statusComplete:"Complete",statusError:"Error",statusGenerating:"Generating",statusNeedsInput:"Needs input",stop:"Stop",subtaskDescription:"Description",subtaskPriority:"Priority",subtaskSize:"Size",subtaskTitle:"Title",suggestedDependencies:"Suggested Dependencies",suggestedSize:"Suggested Size",takeControl:"Take Control",takingControl:"Taking control...",thinkingElapsed:"Thinking… ({{seconds}}s)",title:"Planning Mode",tryAnExample:"Try an example:",typeAnswerPlaceholder:"Type your answer here...",unarchiveSession:"Unarchive session",untitled:"Untitled",untitledSession:"Untitled session",usingDefault:"Using default",whatToBuild:"What do you want to build?",whatToBuildPlaceholder:"e.g., Build a user authentication system with login, signup, and password reset..."},He={addItem:"Add Item",aiScanDisabled:"AI scan on load disabled",aiScanEnabled:"AI scan on load enabled",aiScanHint:"Turning this on only updates configuration. Use Rescan and Reload to run it now.",author:"Author:",backToList:"Back to plugin list",browseRegistry:"Browse Registry",builtinDisabled:"Disabled",builtinInstalledGlobally:"{{name}} installed globally",builtinInstallFailed:"Failed to install {{name}}: {{error}}",builtinMetadataOnly:"Built-in metadata only",builtinNoPackage:"{{name}} is built in and does not have an installable package yet",builtinPluginRecommendations:"Built-in plugin recommendations",builtinPlugins:"Built-in Plugins",builtinPluginsCatalog:"Built-in plugin catalog for runtimes and integrations.",cancel:"Cancel",checkingSetup:"Checking setup...",componentUnavailable:"Plugin component unavailable",couldNotResolve:"The dashboard could not resolve this plugin surface from the static host registry.",disabledForProject:"{{name}} disabled for this project",disableInProject:"Disable in Project",disablePlugin:"Disable {{name}}",disablePluginFailed:"Failed to disable plugin: {{error}}",droidOnboardingTip:"Tip: Enable Droid CLI to reuse your Factory AI subscription without adding an API key.",droidRecommendDesc:"Use your local Droid CLI session as an AI provider in Fusion.",droidRecommendTitle:"Enable Droid CLI",enableAiScanBeforeLoad:"Enable AI scan before load/reload",enableAiSecurityScan:"Enable AI security scan on load",enabledForProject:"{{name}} enabled for this project",enableFailed:"Failed to enable {{name}}: {{error}}",enableInProject:"Enable in Project",enablePlugin:"Enable {{name}}",enablePluginFailed:"Failed to enable plugin: {{error}}",experimental:"Experimental",findings_one:"Findings ({{count}})",findings_other:"Findings ({{count}})",homepage:"Homepage:",install:"Install",installedGlobally:"Plugin installed globally",installedPlugins:"Installed Plugins",installFailed:"Failed to install plugin: {{error}}",installFromRegistry:"Install",installHint:"Browse to a plugin package root (contains manifest.json) or a built dist directory.",installing:"Installing...",installNamed:"Install {{name}}",installPathPlaceholder:"Absolute path to plugin directory or dist folder",installPathRequired:"Please enter a plugin path",installPluginGlobally:"Install Plugin Globally",installSetup:"Install Setup",loadFailed:"Failed to load plugins: {{error}}",loading:"Loading...",loadingPlugins:"Loading plugins...",manage:"Manage",noConfigurableSettings:"No configurable settings.",noHostRegistration:"No host registration found for",noPluginsHint:"Install a plugin to get started, or use the built-in catalog below.",noPluginsInstalled:"No plugins installed.",noSecurityScan:"No security scan has been run yet.",openAuthentication:"Open Authentication",openOnboarding:"Open Onboarding",refresh:"Refresh",refreshPluginList:"Refresh plugin list",registryByAuthor:"By {{author}}",registryCategory:"Registry category",registryCategoryAll:"All Categories",registryCategoryIntegration:"Integration",registryCategoryRuntime:"Runtime",registryComingSoon:"Coming Soon",registryDescription:"Discover curated runtimes and integrations that can be added to this Fusion workspace.",registryEmpty:"No registry plugins are available.",registryEmptySearch:"No registry plugins match your search.",registryInstalled:"{{name}} installed and enabled",registryInstallFailed:"Failed to install {{name}}: {{error}}",registryLoadFailed:"Failed to load registry: {{error}}",registryLoading:"Loading registry...",registryNotInstallable:"{{name}} is not available for one-click install yet",registryPluginResults:"Registry plugin results",reload:"Reload",reloaded:"{{name}} reloaded",reloadFailed:"Failed to reload plugin: {{error}}",reloading:"Reloading...",removeItem:"Remove item",rescanAndReload:"Rescan and Reload",rescanFailed:"Failed to rescan plugin: {{error}}",rescanned:"{{name}} rescanned",retry:"Retry",saveSettings:"Save Settings",saveSettingsFailed:"Failed to save settings: {{error}}",searchRegistry:"Search registry",searchRegistryPlaceholder:"Search registry plugins",securityScan:"Security Scan",selectOption:"Select...",settings:"Settings",settingsSaved:"Settings saved",settingUp:"Setting up...",setupInstalled:"{{name}} setup installed",setupInstallFailed:"Failed to install {{name}} setup: {{error}}",setupReady:"Setup ready",setupRequired:"Setup required",startPluginToCheckSetup:"Start plugin to check setup",statusBuiltIn:"Built in",statusInstalled:"Installed",statusNotInstalled:"Not installed",uninstallConfirm:'Are you sure you want to uninstall "{{name}}" globally (all projects)?',uninstalledGlobally:"{{name}} uninstalled globally",uninstallFailed:"Failed to uninstall plugin: {{error}}",uninstallGlobally:"Uninstall Globally",uninstallGloballyTitle:"Uninstall globally",uninstallTitle:"Uninstall Plugin Globally",unknownError:"unknown error",updateFailed:"Failed to update plugin: {{error}}",version:"Version:",viewUnavailable:"Plugin view unavailable"},Be={authFail:"Run gh auth login and try again.",authOk:"GitHub CLI auth is available.",baseBranch:"Base branch",bodyLabel:"Body",branchRemoteFail:"Push branch to remote before creating a PR.",branchRemoteOk:"Remote branch is available.",changedFilesLabel:"Changed files",checkAuth:"GitHub auth available",checkBranch:"Branch pushed to remote",checkCommits:"Commits available",checkConflicts:"No conflicts with base",commitsFail:"No commits found for this branch.",commitsLabel:"Commits",commitsOk:"Commits are ready to submit.",conflictsDetected:"Conflicts detected. Resolve conflicts or re-run preflight.",createAsDraft:"Create as draft",createDraftPr:"Create draft PR",createPr:"Create PR",createTitle:"Create Pull Request",dismissError:"Dismiss PR error",noConflicts:"No merge conflicts detected.",preflightChecks:"Pre-flight checks",previewTitle:"Diff & commit preview",regenerate:"Regenerate",rerunPreflight:"Re-run preflight",revertToAi:"Revert to AI version",titleLabel:"Title",usingTemplate:"Using <code>.github/pull_request_template.md</code>",assignees:"Assignees",dismissConflictResolutionError:"Dismiss conflict resolution error",dismissPushBranchError:"Dismiss push branch error",error:{actionOpen:"Action: open",actionRun:"Action: run",docs:"docs"},generatingBody:"Generating AI body…",generatingTitle:"Generating AI title…",labels:"Labels",loadingOptions:"Loading PR options…",loadingPreflight:"Loading pre-flight checks…",noChangedFiles:"No changed files detected.",noCommits:"No commits found.",pushBranch:{button:"Push branch to remote",message:"Fusion will push this task's branch to origin so the PR can be created.",title:"Push branch to remote"},resolveConflicts:{button:"Resolve conflicts with AI",message:"Fusion will use AI to resolve conflicts on this branch and push it.",title:"Resolve conflicts with AI"},reviewers:"Reviewers",view:{agentDisagreed:"agent disagreed",agentReplyFix:"Agent reply — fix {{sha}}",approve:"Approve",autoMerge:"Auto-merge",close:"Close",confirmMerge:"Confirm merge",creating:"Creating PR…",creationFailed:"PR creation failed",backToList:"Back to list",listEmpty:"No active pull requests to show.",listError:"Failed to load pull requests",listItemLabel:"Open pull request {{repo}} {{number}}",listLoading:"Loading pull requests…",listTitle:"Active pull requests",loading:"Loading PR…",merge:"Merge",mergeableLabel:"Mergeable:",mergeDisabledUntilVerified:"Merge is disabled until GitHub verifies this PR",none:"none",noReviewThreads:"No review threads.",requestRetry:"Request retry",resolveConflictsBeforeMerge:"Resolve conflicts on GitHub before merging",resolveConflictsOnGithub:"Resolve conflicts on GitHub",responseAlreadyInProgress:"A response run is already in progress",responsePending_one:"Response run in progress — {{count}} threads pending",responsePending_other:"Response run in progress — {{count}} threads pending",retryCreation:"Retry PR creation",reviewLabel:"Review:",threadFixed:"fixed",threadPending:"pending",verifyingGithub:"Verifying with GitHub…"}},Oe={blockedDescription:"You can view the preview in a separate browser tab.",blockedTitle:"Preview cannot be embedded",errorTitle:"Unable to load preview",loading:"Loading preview...",openInNewTab:"Open in new tab"},Ue={activeTasks:"Active Tasks",agents:"Agents",cannotPauseWhileInitializing:"Cannot stop engine while initializing",completed:"Completed",confirm:"Confirm",confirmRemove:"Confirm remove",confirmRemoveProject:"Confirm remove project",daysAgo_one:"{{count}}d ago",daysAgo_other:"{{count}}d ago",hoursAgo_one:"{{count}}h ago",hoursAgo_other:"{{count}}h ago",justNow:"Just now",lastActivity:"Last activity:",minutesAgo_one:"{{count}}m ago",minutesAgo_other:"{{count}}m ago",moreItems_one:"+{{count}} more",moreItems_other:"+{{count}} more",never:"Never",nodeAvailability:"Project node availability",noHealthData:"No health data available",open:"Open",openProject:"Open project",pause:"Stop engine",pauseProject:"Stop engine",removeProject:"Remove project",resume:"Start engine",resumeProject:"Start engine"},_e={editName:"Edit name",empty:"No projects detected",emptyHint:"Try a different base path or add a project manually",noDbWarning:"No fn database found - will be initialized",registerAll:"Register All",registering:"Registering...",registerSelected_one:"Register Selected ({{count}})",registerSelected_other:"Register Selected ({{count}})",selectAll_one:"Select All ({{count}})",selectAll_other:"Select All ({{count}})",selectedCount_one:"{{count}} selected",selectedCount_other:"{{count}} selected"},je={actions:{favoritesError:"Failed to update favorites",modelFavoritesError:"Failed to update model favorites",pauseError:"Failed to pause project {{name}}",pauseSuccess:"Project {{name}} paused",removeError:"Failed to remove project {{name}}",removeSuccess:"Project {{name}} removed",resumeError:"Failed to resume project {{name}}",resumeSuccess:"Project {{name}} resumed"},activeTasksLabel:"Active Tasks",addFirstProject:"Add Your First Project",addProject:"Add Project",allNodes:"All Nodes",completedLabel:"Completed",emptyStateDescription:"Get started by adding your first project. Projects allow you to organize and track tasks across multiple repositories.",erroredLabel:"Errored",filterActive:"Active",filterAll:"All",filterByNode:"Filter by node",filterErrored:"Errored",filterPaused:"Paused",nodesLabel:"Nodes",noMatch:"No projects match the current filter",noProjectsFound:"No Projects Found",setup:{success:"Project {{name}} registered successfully"},showAll:"Show All Projects",sortActivityNewest:"Last Activity (Newest)",sortActivityOldest:"Last Activity (Oldest)",sortNameAsc:"Name (A-Z)",sortNameDesc:"Name (Z-A)",sortProjects:"Sort projects",sortStatusAsc:"Status (Error → Active)",sortStatusDesc:"Status (Active → Error)",title:"Projects",totalLabel:"Total"},qe={addBookmark:"Bookmark project",allProjects:"All Projects",ariaLabel:"Select project",bookmarked:"Bookmarked",clearSearch:"Clear search",exact:"Exact",exactMatch:"Exact match — press Enter to select",noResults:"No projects match your search",projects:"Projects",projectsTitle:"Projects",recent:"Recent",removeBookmark:"Remove bookmark",searchAriaLabel:"Type to search projects",searchPlaceholder:"Search projects...",switchProjectTitle:"Switch project (current: {{name}})",viewAll:"View All Projects"},We={actions:{addModel:"+ Add model",detecting:"Detecting…",detectModels:"Detect Models",detectModelsTitle:"Call the provider's /models endpoint to discover available models",removeModel_one:"Remove model",removeModel_other:"Remove model",save:"Save Provider",saving:"Saving..."},addCustom:"Add Custom Provider",apiKeyKeepPlaceholder:"Leave blank to keep current key",apiKeyLabel:"API key",apiTypeAnthropic:"Anthropic-compatible",apiTypeGoogle:"Google Generative AI",apiTypeInvalid:"API type is invalid.",apiTypeLabel:"API type",apiTypeOpenAi:"OpenAI-compatible",apiTypeOpenAiResp:"OpenAI Responses",baseUrlLabel:"Base URL",deleteConfirm:'Delete custom provider "{{name}}"?',deleteLabel:"Delete {{name}}",detectError:{allDuplicate:"All discovered models are already in the list.",failed:"Failed to detect models",noModels:"No models found. The provider may require an API key.",urlRequired:"Base URL is required to detect models."},detecting:"Detecting…",detectModels:"Detect Models",detectTitle:"Auto-detect models from the provider's /models endpoint",editLabel:"Edit {{name}}",failedDelete:"Failed to delete provider.",failedDetect:"Failed to detect models",failedLoad:"Failed to load custom providers.",failedSave:"Failed to save provider.",fields:{apiKey:"API Key",apiType:"API Type",baseUrl:"Base URL",contextWindow:"Context window",id:"Provider ID",maxTokens:"Max tokens",modelId:"Model ID",modelName:"Display name",modelNameLabel:"Model name",models:"Models",name:"Display Name",reasoning:"Reasoning"},llamaCpp:{disable:"Disable",disabling:"Disabling…",enable:"Enable",enabling:"Enabling…",probing:"Probing llama.cpp server…",reachable:"Server reachable at {{url}}",test:"Test",testing:"Testing…",title:"llama.cpp — via HTTP server",unavailable:"Server unavailable: {{reason}}"},loading:"Loading custom providers…",modelsLabel:"Available models",nameLabel:"Provider name",nameRequired:"Provider name is required.",noModelsFound:"No models found. The provider may require an API key.",noneConfigured:"No custom providers configured.",placeholders:{apiKey:"sk-..., MY_API_KEY, or !command"},saveChanges:"Save Changes",saveProvider:"Save Provider",saving:"Saving…",urlInvalid:"Base URL must be a valid http/https URL.",urlRequired:"Base URL is required.",urlRequiredForDetect:"Base URL is required to detect models.",validation:{apiTypeRequired:"API type is required.",idConflict:"Provider ID conflicts with a built-in provider.",idKebabCase:"Provider ID must be kebab-case.",idRequired:"Provider ID is required.",modelId:"Each model must have a model ID.",modelRequired:"At least one model is required.",urlProtocol:"Base URL must use http or https.",urlRequired:"Base URL is required.",urlValid:"Base URL must be a valid URL."}},Ge={errorAttachmentsBeforeSession:"Cannot send attachments before chat session is ready",errorAttachmentsWhileStreaming:"Cannot send attachments while a response is streaming",errorGettingResponse:"Failed to get response",errorInitializingChat:"Failed to initialize chat",errorRefreshingSessions:"Failed to refresh chat sessions",errorStartingNewChat:"Failed to start a new chat"},Ve={bouncedEntered:"{{bounced}} bounced / {{entered}} entered (last {{days}}d)",countingSince:"Counting since {{date}}",details:"Details",duration:{heading:"Duration",moreStats:"More stats",p50:"P50",p50Raw:"P50 raw: {{value}} ms",p95:"P95",p95Raw:"P95 raw: {{value}} ms",reason:"Reason: {{reason}}",sampleCount_one:"Sample count: {{count}}",sampleCount_other:"Sample count: {{count}}",samples_one:"Samples: {{count}}",samples_other:"Samples: {{count}}"},failedToLoad:"Failed to load reliability metrics",failureRate:"Failure rate: {{rate}}",flowChart:{aria:"In-review entered vs bounced per day",bounced:"Bounced",empty:"No in-review flow data",entered:"Entered",heading:"Entered vs bounced trend"},heading:"Reliability",hideEmptyDays:"Hide empty days",inReviewFlow:"In-review flow",insufficientData:"Insufficient data — {{reason}}",loading:"Loading reliability data...",mergeAttempts:{heading:"Merge attempts",histogramTotal_one:"Histogram total: {{count}}",histogramTotal_other:"Histogram total: {{count}}",max:"Max",mean:"Mean",moreStats:"More stats",reason:"Reason: {{reason}}",tasksCounted_one:"Tasks counted: {{count}}",tasksCounted_other:"Tasks counted: {{count}}"},mergeAttemptsChart:{aria:"Merge attempts histogram",empty:"No merge attempt data",heading:"Attempts distribution"},reason:"Reason: {{reason}}",resetBaseline:"Reset baseline: {{date}}",resetModal:{confirm:"Confirm reset",description:"This sets a new baseline for reliability statistics. Historical events older than the reset time are excluded from counts but are not deleted.",failedError:"Failed to reset reliability stats",title:"Reset reliability stats?"},resetStats:"Reset stats",showEmptyDays:"Show empty days",successRateLabel:"In-review success rate (last 7d)",table:{bounced:"Bounced",date:"Date",entered:"Entered"},window:"Window: {{start}} → {{end}}"},ze={actionFailed:"Action failed",addCredentialsHint:"Add provider credentials in Authentication settings.",alwaysOn:"Always on",attachExport:"Attach markdown export artifact",createRun:"Create Run",createRunFailed:"Failed to create run",createTask:"Create Task",createTaskButton:"Create Task",createTaskTitle:"Create task from finding",currentDefaults:"Current defaults: provider {{provider}}, max sources {{maxSources}}",defaultFindingHeading:"Research finding",descriptionLabel:"Description",disabled:"Research is disabled for this project.",enableResearchHint:"Enable project research settings to create runs.",enrichTask:"Enrich Task",enrichTaskButton:"Enrich Task",enrichTaskTitle:"Enrich existing task",enterTaskId:"Enter task ID",exportedFile:"Exported {{filename}}",exportFailed:"Export failed",exportHtml:"Export HTML",exportJson:"Export JSON",exportMd:"Export MD",findingLabel:"Finding:",loadingRuns:"Loading research runs…",loadingTasks:"Loading tasks…",missingApiKey:"Missing API key for {{provider}}.",noPreview:"No preview available.",noRunSelected:"No run selected",noRunsYet:"No research runs yet",noSourcesAvailable:"No enabled research sources are available for this project.",noSummaryYet:"No summary yet.",notSet:"(not set)",openAuthSettings:"Open Authentication Settings",openResearchSettings:"Open Research Settings",priorityHigh:"High",priorityLabel:"Priority",priorityLow:"Low",priorityNormal:"Normal",priorityUrgent:"Urgent",providersLabel:"Providers",queryLabel:"Query",runCancelled:"Run cancelled",runCreated:"Research run created",runHistory:"Run history",runLabel:"Run:",runRetried:"Run retried",searchRunsPlaceholder:"Search runs",selectRunToViewDetails:"Select a run to view details.",statCompleted:"Completed",statFailed:"Failed",statRunning:"Running",subtitle:"Cited search and synthesis runs: gather sources, fetch content, and synthesize findings.",targetTaskLabel:"Target task",taskCreatedFromResearch:"Task created from research",taskEnrichedFromResearch:"Task enriched from research",title:"Research",titleLabel:"Title",unavailable:"Research is unavailable for this project.",viewLabel:"Research view"},Ke={closeExpandedView:"Close expanded right dock view",collapse:"Collapse right dock",expand:"Expand right dock",expandView:"Expand {{label}}",label:"Right dock",resize:"Resize right dock",viewExpanded:"{{label}} expanded",views:"Right dock views",resizeExpandedView:"Resize expanded right dock window"},Ye={andMore_one:"…and {{count}} more",andMore_other:"…and {{count}} more",delete:"Delete",deleteMessage:"Delete routine {{name}}? This cannot be undone.",deleteName:"Delete {{name}}",deleteTitle:"Delete Routine",disable:"Disable",disableName:"Disable {{name}}",edit:"Edit",editName:"Edit {{name}}",enable:"Enable",enableName:"Enable {{name}}",resultFailed:"Failed",resultSuccess:"Success",runHistory_one:"Run History ({{count}})",runHistory_other:"Run History ({{count}})",runNameNow:"Run {{name}} now",running:"Running…",runNow:"Run now",stepCount_one:"{{count}} step",stepCount_other:"{{count}} steps"},Qe={cannotChangeWhileActive:"Node override cannot be changed while the task is active.",clearOverride:"Clear override",effectiveNode:"Effective node",errorLoadingNodes:"Failed to load nodes",errorUpdatingOverride:"Failed to update node override",intro:"View the effective execution node and control per-task node override.",localNoConfiguration:"Local (no routing configured)",lockedWhileActive:"Routing is locked while this task is active. Node override cannot be changed until the task is no longer active.",nodeOptionLabel:"{{name}} ({{type}}) — {{status}}",nodeUnavailable:"node unavailable or unknown",overrideCleared:"Node override cleared",overrideSection:"Node Override",overrideSetTo:"Override set to",overrideUpdated:"Node override updated",selectLabel:"Select execution node",source:{noRouting:"No routing",override:"Per-task override",projectDefault:"Project default"},sourceLabel:"Routing source",summarySection:"Routing Summary",title:"Task Routing",unavailablePolicy:"Unavailable-node policy",unhealthy:"Unhealthy",useProjectDefault:"Use project default"},Je={nousResearchLogoAlt:"Nous Research"},Xe=JSON.parse(`{"actionAiPrompt":"AI Prompt","actionCommand":"Command","actionCreateTask":"Create Task","actionModeAdvanced":"Multi-Step","actionModeAdvancedHint":"Run multiple actions sequentially","actionModeAriaLabel":"Action mode","actionModeLabel":"Action Mode","actionModeSimple":"Simple","actionModeSimpleHint":"Run one command, prompt, or task creation action","actionTypeAiPrompt":"AI Prompt","actionTypeAriaLabel":"Action type","actionTypeCommand":"Command","actionTypeCreateTask":"Create Task","actionTypeLabel":"Action Type","addAiPromptStep":"Add AI Prompt Step","addCommandStep":"Add Command Step","addCreateTaskStep":"Add Create Task Step","advancedMode":"Multi-Step","advancedModeHelp":"Run multiple steps sequentially (commands and AI prompts)","aiPromptType":"AI Prompt","allowedToolsHint":"AI prompt steps use all tools by default. Clear tools only when this automation should run without tool access.","allowedToolsLabel":"Allowed tools","andMore_one":"…and {{count}} more","andMore_other":"…and {{count}} more","apiEndpointHint":"API endpoint path that triggers this routine","apiEndpointLabel":"API Endpoint","apiEndpointPlaceholder":"/api/routine/my-routine","automationCount_one":"{{count}} automation{{plural}}","automationCount_other":"{{count}} automation{{plural}}","cancelButton":"Cancel","catchUpPolicyHint":"What to do when a scheduled run is missed","catchUpPolicyLabel":"Catch-up Policy","catchUpPolicyRunAll":"Run all missed runs","catchUpPolicyRunOne":"Run the most recent missed run","catchUpPolicySkip":"Skip missed runs","columnTodo":"To Do","columnTriage":"Planning","command":"Command","commandHelp":"Shell command to execute. Runs with your user permissions.","commandHint":"Shell command to execute.","commandLabel":"Command","commandPlaceholder":"e.g. npx runfusion.ai backup --create","commandRequired":"Command is required","commandType":"Command","continueOnFailure":"Continue on failure","continueOnFailureHelp":"If checked, the next step will run even if this one fails","continuesOnFailure":"Continues on failure","createButton":"Create Schedule","createError":"Failed to create routine","createFirst":"Create your first automation","createNew":"Create new automation","createRoutine":"Create Routine","createTaskType":"Create Task","cronAutoFilled":"Auto-filled from preset: {{cron}}","cronAutoFilledHint":"Auto-filled from preset: {{expression}}","cronCustomHint":"min hour day month weekday","cronExpressionLabel":"Cron Expression","cronHelp":"min hour day month weekday — ","cronInvalid":"Invalid cron format — expected 5 fields (e.g. '0 */6 * * *')","cronLabel":"Cron Expression","cronPresetCustom":"Custom cron expression","cronPresetDaily":"Every day (midnight)","cronPresetHourly":"Every hour","cronPresetMonthly":"Every month (1st)","cronPresetWeekly":"Every week (Monday)","cronRequired":"Cron expression is required for custom schedules","crontabGuru":"crontab.guru","clearTools":"Clear","delete":"Delete","deleteError":"Failed to delete routine","deleteMessage":"Delete schedule {{name}}? This cannot be undone.","deleteName":"Delete {{name}}","deleteStep":"Delete {{name}}","deleteTitle":"Delete Schedule","descriptionLabel":"Description (optional)","descriptionPlaceholder":"What does this routine do?","disable":"Disable","disableName":"Disable {{name}}","edit":"Edit","editName":"Edit {{name}}","editRoutineHeading":"Edit Routine","editStep":"Edit {{name}}","editTitle":"Edit Schedule","emptyStateDescription":"Create an automation with a schedule, webhook, API, or manual trigger.","enable":"Enable","enabledHelp":"When disabled, the schedule will not run automatically","enabledHint":"When disabled, the routine will not run automatically","enabledLabel":"Enabled","enableName":"Enable {{name}}","errorApiEndpointRequired":"API endpoint is required","errorCommandRequired":"Command is required","errorCronInvalid":"Invalid cron format — expected 5 fields (e.g. '0 */6 * * *')","errorCronRequired":"Cron expression is required","errorLoadModels":"Failed to load models","errorModelIncomplete":"Both model provider and model ID must be set, or both must be empty","errorNameRequired":"Name is required","errorPromptRequired":"Prompt is required","errorScopeNoProject":"Project-specific entries require an active project.","errorStepCommandRequired":"Step {{n}}: Command is required","errorStepNameRequired":"Step {{n}}: Name is required","errorStepPromptRequired":"Step {{n}}: Prompt is required","errorStepsEditing":"Please save or cancel all step edits before saving the routine","errorStepsRequired":"At least one step is required","errorStepTaskDescRequired":"Step {{n}}: Task description is required","errorTaskDescriptionRequired":"Task description is required","errorTimeoutMin":"Timeout must be at least 1 second (1000ms)","errorWebhookPathRequired":"Webhook path is required","executionPolicyHint":"How to handle concurrent executions of this routine","executionPolicyLabel":"Execution Policy","executionPolicyParallel":"Allow concurrent runs","executionPolicyQueue":"Queue after current (one at a time)","executionPolicyReject":"Reject new runs while running","executorModelDropdownLabel":"Executor Model","executorModelHelp":"AI model used to execute the created task. Uses default if not selected.","executorModelLabel":"Executor Model (optional)","executorModelOptional":"Executor Model (optional)","executorModelPlaceholder":"Use default","frequencyLabel":"Frequency","global":"Global","globalScope":"Global","globalScoped":"This schedule will be created at global scope.","globalScopeTitle":"Global scope","lastLabel":"Last:","liveOutput":"Live output","liveOutputRunning":"Live output — running","liveRunComplete":"Run complete","liveRunError":"Run failed","liveRunStarting":"Starting run…","loadRoutinesError":"Failed to load routines","manualTriggerInfo":"This routine will be triggered manually via the dashboard or API.","modeAriaLabel":"Execution mode","model":"Model","modeLabel":"Execution Mode","modelConsistency":"Both model provider and model ID must be set, or both must be empty","modelDropdownLabel":"Model","modelHelp":"AI model for this prompt. Uses default if not selected.","modelLabel":"Model (optional)","modelOptional":"Model (optional)","modelPlaceholder":"Use default","modelProviderRequired":"Both model provider and model ID must be set together","moveDown":"Move down","moveStepDown":"Move {{name}} down","moveStepUp":"Move {{name}} up","moveUp":"Move up","nameLabel":"Name","namePlaceholder":"e.g. Daily standup reminder","nameRequired":"Name is required","newAutomation":"New Automation","newRoutineHeading":"New Routine","newTitle":"New Schedule","nextLabel":"Next:","noActiveProject":"No active project. Schedules will be created at global scope.","noAutomations":"No automations yet","noStepsEmpty":"No steps added yet. Add a command or AI prompt step to get started.","project":"Project","projectRequired":"Project-specific entries require an active project.","projectScope":"Project","projectScoped":"This schedule will be scoped to the current project.","projectScopeDisabled":"Select a project to enable project scope","projectScopeTitle":"Project scope","prompt":"Prompt","promptHelp":"AI prompt to execute. Provide clear instructions for the task.","promptHint":"AI prompt to execute.","promptLabel":"Prompt","promptPlaceholder":"e.g. Summarize recent activity and create action items","promptRequired":"Prompt is required","resultFailed":"Failed","resultSuccess":"Success","routineCreated":"Routine created","routineDeleted":"Deleted \\"{{name}}\\"","routineDisabled":"\\"{{name}}\\" disabled","routineEnabled":"\\"{{name}}\\" enabled","routineFailed":"\\"{{name}}\\" failed: {{error}}","routineSuccess":"\\"{{name}}\\" completed successfully","routineUpdated":"Routine updated","runError":"Failed to run routine","runHistory_one":"Run History ({{count}})","runHistory_other":"Run History ({{count}})","runNameNow":"Run {{name}} now","running":"Running…","runNow":"Run now","runsLabel":"Runs:","saveChanges":"Save Changes","saveStep":"Save Step","saving":"Saving…","scheduleLabel":"Schedule","scopeAriaLabel":"Routine scope","scopeGroup":"Scheduling scope","scopeHintGlobal":"This routine will be created at global scope.","scopeHintNoProject":"No active project. Routines will be created at global scope.","scopeHintProject":"This routine will be scoped to the current project.","scopeLabel":"Scope","scopeLocked":"Scope is locked to {{scope}} for existing schedules","scopeLockedTitle":"Scope is locked to {{scope}} for existing routines","selectAllTools":"Select all","selectProjectTitle":"Select a project to enable project scope","simpleMode":"Simple","simpleModeHelp":"Run a single shell command or AI prompt","stepCommandRequired":"Step {{index}}: Command is required","stepCount_one":"{{count}} step","stepCount_other":"{{count}} steps","stepName":"Step Name","stepNamePlaceholder":"e.g. Run tests","stepNameRequired":"Step {{index}}: Name is required","stepPromptRequired":"Step {{index}}: Prompt is required","steps":"Steps","stepsEditing":"Please save or cancel all step edits before saving the schedule","stepsRequired":"At least one step is required","stepType":"Step Type","targetColumn":"Target Column","targetColumnHelp":"Column where the new task will be created","targetColumnLabel":"Target Column","taskColumnLabel":"Target Column","taskColumnTodo":"To Do","taskColumnTriage":"Planning","taskDescription":"Task Description *","taskDescriptionHelp":"Describes the task that will be created.","taskDescriptionHint":"Describes the task that will be created.","taskDescriptionLabel":"Task Description","taskDescriptionPlaceholder":"e.g. Check npm dependencies for security vulnerabilities","taskDescriptionRequired":"Task description is required","taskTitleHelp":"Leave blank to auto-summarize from description","taskTitleLabel":"Task Title (optional)","taskTitleOptional":"Task Title (optional)","taskTitlePlaceholder":"e.g. Review weekly dependencies","timeoutHelp":"Maximum execution time in milliseconds (default 300000 = 5 min)","timeoutHint":"Maximum execution time in milliseconds.","timeoutLabel":"Timeout (ms)","timeoutMinimum":"Timeout must be at least 1 second (1000ms)","timeoutOptional":"Timeout (ms, optional)","timeoutPlaceholder":"Override schedule timeout","title":"Automations","todoColumn":"To Do","toggleError":"Failed to toggle routine","triageColumn":"Planning","triggerApi":"API","triggerCron":"Cron","triggerManual":"Manual","triggerTypeAriaLabel":"Trigger type","triggerTypeLabel":"Trigger Type","triggerWebhook":"Webhook","typeCustom":"Custom cron expression","typeDaily":"Every day (midnight)","typeEvery12Hours":"Every 12 hours","typeEvery15Min":"Every 15 minutes","typeEvery2Hours":"Every 2 hours","typeEvery30Min":"Every 30 minutes","typeEvery6Hours":"Every 6 hours","typeHourly":"Every hour","typeMonthly":"Every month (1st)","typeWeekdays":"Weekdays at 9 AM (Mon-Fri)","typeWeekly":"Every week (Monday)","unknownError":"Unknown error","updateError":"Failed to update routine","useDefault":"Use default","webhookPathHint":"URL path for the webhook endpoint","webhookPathLabel":"Webhook Path","webhookPathPlaceholder":"/trigger/my-routine","webhookSecretHint":"HMAC secret for signature verification. Leave empty for unauthenticated webhooks.","webhookSecretLabel":"Webhook Secret (optional)","webhookSecretPlaceholder":"Optional — leave empty for unauthenticated webhooks"}`),Ze={title:"Scripts"},$e={addScript:"Add Script",addScriptsHint:"Add scripts to quickly run common commands from the dashboard.",cancelDelete:"Cancel delete",command:"Command",commandPlaceholder:"e.g., npm run build",confirmDelete:"Confirm delete",confirmDeleteNamed:"Confirm delete {{name}}",deleteScriptNamed:"Delete {{name}}",editScriptNamed:"Edit {{name}}",failedToDelete:"Failed to delete script",failedToLoadScripts:"Failed to load scripts",failedToSave:"Failed to save script",loadingScripts:"Loading scripts...",nameErrorMsg:"Name must contain only letters, numbers, hyphens, and underscores (no spaces)",nameHint:"Letters, numbers, hyphens, and underscores only",noScriptsDefined:"No scripts defined",noScriptsYet:"No scripts defined yet.",runScript:"Run script",runScriptNamed:"Run {{name}}",saving:"Saving...",scriptAlreadyExists:"A script with this name already exists",scriptCommandRequired:"Script command is required",scriptCount_one:"{{count}} script",scriptCount_other:"{{count}} scripts",scriptCreated:"Script created",scriptDeleted:"Script deleted",scriptName:"Script Name",scriptNamePlaceholder:"e.g., build, test, lint",scriptNameRequired:"Script name is required",scriptUpdated:"Script updated",title:"Scripts"},et={accessPolicyAuto:"auto",accessPolicyDeny:"deny",accessPolicyLabel:"Access policy",accessPolicyPrompt:"prompt",addSecret:"Add Secret",addSecretModalTitle:"Add secret",cancelBtn:"Cancel",cancelDelete:"Cancel",clearSyncPassphrase:"Clear",closeAriaLabel:"Close",confirmClearSyncPassphrase:"Clear the cross-node sync passphrase? Existing sync pairs will stop working until you set a new passphrase.",confirmDelete:"Confirm",confirmPassphraseLabel:"Confirm passphrase",copied:"Copied",copyAriaLabel:"Copy",createBtn:"Create",deleteAriaLabel:"Delete",descriptionLabel:"Description",editAriaLabel:"Edit",editSecretModalTitle:"Edit secret",empty:"No secrets found.",envExportableChip:"env exportable",envKeyLabel:"Env key",errorClearSyncPassphrase:"Failed to clear sync passphrase: {{error}}",errorLoadSyncStatus:"Failed to load sync passphrase status: {{error}}",errorSaveSyncPassphrase:"Failed to save sync passphrase: {{error}}",exportToEnvLabel:"Export to env",hideAriaLabel:"Hide",hideValueAriaLabel:"Hide value",keyLabel:"Key",loading:"Loading…",neverRead:"Never read",passphraseLabel:"Passphrase",passphraseMustMatch:"Passphrases must match.",refresh:"Refresh",revealAriaLabel:"Reveal",revealed:"Revealed",rotateSyncPassphrase:"Rotate",rotateSyncPassphraseModalTitle:"Rotate sync passphrase",saveBtn:"Save",scopeGlobal:"Global",scopeLabel:"Scope",scopeProject:"Project",setPassphrase:"Set passphrase",setSyncPassphraseModalTitle:"Set sync passphrase",showValueAriaLabel:"Show value",syncConfigured:"Configured",syncNotConfigured:"Not configured",syncPassphraseCleared:"Sync passphrase cleared",syncPassphraseDescription:"Shared passphrase used to wrap cross-node secret bundles. Both nodes in a sync pair must share the same value. Stored locally only; never transmitted.",syncPassphraseRotated:"Sync passphrase rotated",syncPassphraseSet:"Sync passphrase set",syncPassphraseTitle:"Cross-Node Sync Passphrase",title:"Secrets",valueLabel:"Value"},tt={addComment:"Add comment",addCommentAria:"Add a comment to the selected text and send it to a new task",cancel:"Cancel",commentAria:"Comment for the new task",commentPlaceholder:"Describe the task this snippet should become…",dialogAria:"Comment on selected text",selectedSnippet:"Selected snippet",sendToNewTask:"Send to new task",title:"Comment on selection"},ot={cli:{actionUnavailable:"Action unavailable"},dismissAll:"Dismiss all",dismissItem:"Dismiss {{title}}",failed:"Failed",headerAwaitingAndErrorPlural:"{{awaitingCount}} AI sessions need your input, {{errorCount}} failed",headerAwaitingAndErrorSingular:"{{awaitingCount}} AI session needs your input, {{errorCount}} failed",headerAwaitingPlural_one:"",headerAwaitingPlural_other:"",headerAwaitingSingular_one:"",headerAwaitingSingular_other:"",headerErrorPlural_one:"",headerErrorPlural_other:"",headerErrorSingular_one:"",headerErrorSingular_other:"",regionLabel:"AI sessions needing input or failed",resume:"Resume",retry:"Retry"},at=JSON.parse(`{"actions":{"cancel":"Cancel","save":"Save"},"agentPermissions":{"agentPermissions":"Agent Permissions","agentProvisioningApprovals":"Agent Provisioning Approvals","configureProjectLevelApprovalBehaviorForDurableProvisioning":" Configure project-level approval behavior for durable provisioning tools (fn_agent_create/fn_agent_delete). Default: no approval policy configured (empty). ","perAgentSettingsOverrideProjectDefaultsEachCategory":"Project defaults apply to permanent agents, ephemeral task workers, and fallback executor workers unless a per-agent override is set. Exact tool rules compose with the legacy ephemeral create-task toggle. Default: unset — every action category defaults to allow until a category is explicitly restricted."},"appearance":{"hideAISessionNotificationBanners":"Hide AI session notification banners","language":"Language","languageAuto":"Auto","languageAutoHint":"Follow the browser language","suppressTheLdquoNeedsYourInputRdquoBanner":" Suppress the &ldquo;needs your input&rdquo; banner that appears when AI sessions are awaiting input or have failed. ","title":"Appearance","openTasksInRightSidebarHelp":"When enabled, board task cards open detail in the right sidebar when it is available; mobile and hidden-sidebar states keep the full task panel. Default: disabled.","openMobileTasksInPopupHelp":"When enabled, ordinary board task-card and right-dock Tasks-list clicks open the existing task popup so the board or list remains visible. Deep-tab and other task opens keep their current behavior. Default: disabled.","taskDetailChatFirstHelp":"Off by default: task details list Activity first and omitted non-done opens land on Activity. Turn on to restore Chat-first order/default; explicit Chat links still work either way.","showCostBadgeOnCards":"Show cost badges on task cards","showCostBadgeOnCardsHelp":"Default: disabled. When enabled, board cards show derived model cost next to execution time; unavailable pricing displays — and tasks without token usage show no badge."},"auth":{"apiKeyCleared":"API key cleared","apiKeySaved":"API key saved","authCodeAlreadySubmitted":"That authorization code was already submitted. Waiting for login…","authCodeReceived":"Authorization code received. Finishing login…","clearKey":"Clear","continueToLogin":"Continue to login","copiedCodeToClipboard":"Copied code to clipboard","copyCode":"Copy code","enterCodeOnGitHub":"Enter this code on GitHub","failedToCopyCode":"Failed to copy code — copy it manually from the box above","groupAuthenticated":"Authenticated","groupAvailable":"Available","hint":"Authentication changes take effect immediately — no need to save.","loadingStatus":"Loading authentication status…","loggedOut":"Logged out","loggingOut":"Logging out…","login":"Login","loginAlreadyInProgress":"Login already in progress. You can cancel it and retry.","loginCancelled":"Login cancelled","loginDidNotComplete":"Login did not complete. Please try again.","loginSuccessful":"Login successful","logout":"Logout","manualPasteMessage":"After you sign in with {{name}}, the browser will try to redirect to a localhost address that this dashboard can't reach. The redirect tab will look like it failed. Before that happens, copy the full URL from the browser address bar — you'll paste it back here to finish login. Continue?","manualPasteTitle":"Heads up — manual paste-back required","noProviders":"No providers available","openGitHub":"Open GitHub","pasteRedirectUrlFirst":"Paste the full redirect URL or authorization code first.","reopenOnboarding":"Reopen onboarding guide","reopenOnboardingHint":"Re-run the setup wizard to review or update your AI provider and model configuration.","savingKey":"Saving…","signInHint":"Sign in to at least one provider to get started with AI models.","statusActive":"✓ Active","statusNotConnected":"✗ Not connected","title":"Authentication","waitingForLogin":"Waiting for login…"},"authentication":{"enterAPIKey":"Enter API key","key":"Key: "},"backups":{"02":"0 2 * * *","03":"0 3 * * *","agentsOnlyFusionAgentMemory":"Agents only (.fusion/agent-memory)","allProjectAgents":"All (project + agents)","and":"...and ","backupCreated":"Backup created successfully","backupDirectory":"Backup Directory","backupNow":"Backup Now","backups":"backups","backupS":" backup(s)","backupScheduleCron":"Backup Schedule (Cron)","creating":"Creating…","cronExpressionForBackupTimingDefault02":" Cron expression for backup timing. Default: 0 2 * * * (daily at 2 AM). Examples: 0 * * * * (hourly), 0 0 * * 0 (weekly), */15 * * * * (every 15 min) ","cronExpressionForMemoryBackupTimingDefault0":"Cron expression for memory backup timing. Default: 0 3 * * * (daily at 3 AM).","currentBackups":"Current Backups","databaseBackups":"Database Backups","directoryForBackupFilesRelativeToProjectRoot":"Directory for backup files, relative to project root. Default: .fusion/backups.","directoryForMemoryBackupsRelativeToProjectRoot":"Directory for memory backups, relative to project root. Default: .fusion/backups/memory.","enableAutomaticDatabaseBackups":" Enable automatic database backups ","enableAutomaticMemoryBackups":" Enable automatic memory backups ","fusionBackups":".fusion/backups","fusionBackupsMemory":".fusion/backups/memory","invalidCronExpressionFormat":"Invalid cron expression format","loadingBackupInfo":"Loading backup info…","memoryBackupDirectory":"Memory Backup Directory","memoryBackups":"Memory Backups","memoryBackupScheduleCron":"Memory Backup Schedule (Cron)","memoryBackupScope":"Memory Backup Scope","memoryRetentionCount":"Memory Retention Count","more":" more","mustBeBetween1And100":"Must be between 1 and 100","numberOfBackupFilesToKeepOldestAre":"Number of backup files to keep (oldest are deleted first). Range: 1-100. Default: 7.","numberOfMemoryBackupsToKeepOldestAre":"Number of memory backups to keep (oldest are deleted first). Range: 1-100. Default: 14.","pathCannotContainParentDirectoryTraversal":"Path cannot contain parent directory traversal (..)","projectOnlyFusionMemory":"Project only (.fusion/memory)","retentionCount":"Retention Count","totalSize":"total size","view":"View ","whenEnabledProjectAndAgentMemoryFilesAre":"When enabled, project and agent memory files are backed up automatically on a schedule. Default: disabled.","whenEnabledTheDatabaseIsBackedUpAutomatically":"When enabled, the database is backed up automatically on a schedule. Default: disabled.","createFailed":"Failed to create backup","memoryBackupScopeHint":"Default: all (project + agents)."},"clearToDefault":"Reset to default","cliAgents":{"adapterLabel":"Adapter","approvedNote":"Elevated autonomy is approved for this project.","approveFailed":"Failed to record autonomy approval","autonomy":{"default":"Default (request approvals)","elevated":"Elevated (bypass approvals)"},"autonomyHelp":"Elevated autonomy requires a per-project approval before the agent can launch.","autonomyLabel":"Autonomy mode","commandHelp":"Path or name of the binary to launch. A non-default value is treated as privileged and requires autonomy approval.","commandLabel":"Command override","description":"Per-adapter launch configuration for CLI coding agents driven in engine-owned terminals.","elevatedConfirmAction":"Approve elevated autonomy","elevatedConfirmBody":"Elevated autonomy lets this CLI agent bypass per-step approvals (e.g. --dangerously-skip-permissions). It can modify files and run commands without pausing. Approve only if you trust this adapter for this project.","elevatedConfirmTitle":"Approve elevated autonomy?","envHelp":"Comma-separated variable NAMES forwarded from the parent process. Service credentials (FUSION_*) are always excluded.","envLabel":"Environment variable additions","extraArgsHelp":"Appended after the adapter's computed arguments (space-separated). Bypass flags here are detected and gated.","extraArgsLabel":"Extra arguments","heading":"CLI Agents","saveFailed":"Failed to save CLI agent settings"},"closeModal":"Close conflict modal","commands":{"buildCommand":"Build Command","commands":"Commands","commandUsedToBuildTheProjectInjectedInto":"Command used to build the project — injected into generated task specs. No default — unset.","commandUsedToRunTestsInjectedIntoGenerated":"Command used to run tests — injected into generated task specs. No default — unset.","eGPnpmBuild":"e.g. pnpm build","eGPnpmTest":"e.g. pnpm test","testCommand":"Test Command"},"conflictModalTitle":"Resolve Settings Conflicts","experimental":{"experimentalFeatures":"Experimental Features","experimentalFeaturesAreEarlyCapabilitiesThatAreNot":" Experimental features are early capabilities that are not yet fully stable. Enable them to test new functionality, but be aware they may change or be removed. Default: disabled for every feature flag below. ","featureFlags":"Feature Flags"},"footer":{"help":"Help","version":"Version {{version}}","versionShort":"v{{version}}","checkUpdates":"Check for updates","helpDiscussions":"Help and discussions"},"search":{"allSections":"Showing all settings sections","clear":"Clear settings search","label":"Search settings","navigationLabel":"Settings navigation","noMobileOptions":"No sections match this search.","noResults":"No settings sections match \\"{{query}}\\".","placeholder":"Search by setting or section","resultCount":"{{count}} matching sections"},"general":{"25":"25","200":"200","3000":"3000","14Days":"14 days","30Days":"30 days","60Days":"60 days","7Days":"7 days","90Days":"90 days","agentsToRunEachTaskWhenDisabledOnly":" agents to run each task. When disabled, only permanent agents execute tasks and the scheduler auto-assigns work using the agent reporting chain. Tasks with no eligible permanent agent stay queued. ","autoCleanupOldChats":"Auto-cleanup old chats","autoPruneOldMail":"Auto-prune old mail","bannerFiresWhenTodoCountIsStrictlyGreater":"Banner fires when todo count is strictly greater than this value (default 20). Applies when the banner is enabled.","builtInWorkflows":"Built-in workflows","capacityRiskBanner":"Capacity Risk Banner","chatHistory":"Chat history","chatRooms":"Chat Rooms","completionDocumentationAutomation":"Completion Documentation Automation","controlsHowFutureTaskSpecsHandleReleaseNote":" Controls how future task specs handle release-note artifacts at completion. Use changeset mode for repositories that follow ","controlsWhetherNewlyCreatedTasksHaveGitHubIssue":" Controls whether newly created tasks have GitHub issue tracking enabled by default. Individual tasks can still override this from the task detail modal. ","defaultRepoUsedWhenCreatingGitHubIssuesFor":"Default repo used when creating GitHub issues for tracked tasks. Falls back to the global default if blank.","defaultTrackingModeForNewTasks":"Default tracking mode for new tasks","deleteChatSessionsAndRoomsThatHaveBeen":"Delete chat sessions and rooms that have been idle for this many days. Default: Off.","deleteInboxOutboxMessagesOlderThanThisMany":"Delete inbox/outbox messages older than this many days. Default: Off. 7 days is the suggested setting.","disabledBuiltInWorkflowsAreHiddenFromWorkflow":"Disabled built-in workflows are hidden from workflow pickers. Existing tasks that already use one continue to resolve.","enableSummarizationInProjectModelsToConfigureThatModel":" Enable summarization in Project Models to configure that model.","fN":"FN","general":"General","gitHubTracking":"GitHub Tracking","hardCapOnTheSynthesizedEarlierRoomContext":"Hard cap on the synthesized \\"Earlier room context\\" summary block. Default: 3000.","learnMore":"Learn more","loweringThisWindowMeansReliabilityMetricsChartsAnd":" Lowering this window means Reliability metrics/charts and the Activity feed will not show history older than the selected range. Per-task task detail history is unaffected. Default: 30 days. ","newTasksInheritThisCustomWorkflowsStepsOverridable":"New tasks inherit this custom workflow's steps (overridable per task). No default — unset (built-in default workflow).","numberOfMostRecentChatRoomMessagesKept":"Number of most-recent chat-room messages kept verbatim in the responder transcript. Older messages are compacted into a summary block. Default: 25.","off":"Off","offDefault":"Off (default)","onForNewTasks":"On for new tasks","operationalLogRetention":"Operational log retention","ownerRepo":"owner/repo","prefixForNewTaskIDsEGKB":"Prefix for new task IDs (e.g. KB, PROJ). No default — unset.","prefixMustBe110UppercaseLetters":"Prefix must be 1–10 uppercase letters","projectDefaultTrackingRepo":"Project default tracking repo","recentVerbatimRoomMessages":"Recent verbatim room messages","requireChangelogUpdateExistingChangelog":"Require changelog update (existing changelog)","requireChangesetChangesetMd":"Require changeset (.changeset/*.md)","roomCompactionFetchLimit":"Room compaction fetch limit","roomSummaryMaxCharacters":"Room summary max characters","searchTheTrackingRepoForLikelyDuplicatesBefore":" Search the tracking repo for likely duplicates before opening a new issue ","settingsSaved":"Settings saved","showCapacityRiskBanner":" Show capacity risk banner ","showQuickChatButton":" Show quick chat button ","showTheFloatingChatButtonInTheDashboard":"Show the floating chat button in the dashboard. Chat is still accessible from the Chat tab in the mobile navigation.","taskPrefix":"Task Prefix","todoThreshold":"Todo threshold","trackingIssuesUseThisTaskAposSTitle":" Tracking issues use this task's title. If a task has no title yet, Fusion can summarize its description using the title summarization model in Project Models. ","updateAvailablePrefix":"v{{version}} available","updateCheckFailed":"Failed to check for updates","updateFailed":"Update failed","updateFailedWithMessage":"Update failed: {{message}}","updateNow":"Update now","updateSuccess":"Updated to v{{version}} — restart Fusion to apply","updateSuccessToast":"Update installed. Restart Fusion to apply it.","updating":"Updating…","upperBoundOnMessagesFetchedFromTheRoom":"Upper bound on messages fetched from the room store for compaction consideration. Default: 200.","upToDate":"You're up to date ✓","useEphemeralTaskWorkerAgents":" Use ephemeral task-worker agents ","warnOnTheBoardWhenTodoWorkExceeds":"Warn on the board when todo work exceeds the threshold and no idle agents are available. Default: disabled.","whenEnabledDefaultFusionSpawnsShortLived":" When enabled (default), Fusion spawns short-lived ","whenEnabledFusionChecksOpenAndClosedIssues":" When enabled, Fusion checks open and closed issues in the target repo for likely duplicates (using File Scope paths and key symptoms) before creating a new tracking issue. Uncheck to always create a new issue. Default: enabled. ","workflowsOrChangelogModeWhenContributorsShouldUpdate":" workflows, or changelog mode when contributors should update an existing changelog file. Default: off. ","workspaceModeHint":"When enabled, the project root is treated as a workspace containing multiple git sub-repos. Tasks run per-sub-repo and no git repo is created at the root. Disable for single-repo projects. No default — unset (disabled).","allowAbsoluteFileBrowserPathsHint":"When enabled, slash-prefixed paths such as /tmp can be opened in the workspace file browser. Windows drive-letter paths remain blocked, and other path validators are unchanged. Default: disabled.","quickChatLauncherHint":"Choose whether Quick Chat opens from the draggable floating button, a footer button beside Terminal, or stays hidden. Default: off (hidden).","showTaskChatsInCommonFeedHint":"When enabled, populated task-detail Chat conversations appear in the common Direct feed. Empty task chats stay hidden. Default: disabled.","whenEnabledImportedGitHubIssuesUseTheirSource":"When enabled, GitHub issue imports become tracked tasks that adopt the source issue. This does not turn GitHub tracking on for ordinary new tasks. Default: disabled.","gitLabEnabledHint":"Configure GitLab.com or self-managed GitLab URLs. Blank values inherit global fallbacks and then GitLab.com. No default — unset (unset behaves as enabled until explicitly disabled).","allowEphemeralAgentsToCreateTasksHint":"When enabled (default), ephemeral task-worker agents can open follow-up tasks via fn_task_create. When disabled, only humans and permanent agents can create tasks; ephemeral callers are rejected.","quickChatCloseOnOutsideClickHint":"When enabled, clicking outside the Quick Chat window closes it. Disable to keep it open until you close it explicitly. Default: enabled.","disabledFusionWorkflowsAreHiddenFromWorkflow":"Disabled Fusion workflows are hidden from workflow pickers. Existing tasks that already use one continue to resolve. Default: all built-in workflows enabled (unset).","aiUndoTaskWorkflow":"AI-undo task workflow","aiUndoTaskWorkflowInherit":"Inherit project default workflow","aiUndoTaskWorkflowHelp":"Workflow assigned to AI-undo (revert) tasks, which reverse already-shipped code and warrant stricter review. Choose \\"Inherit project default workflow\\" to leave them on the project default. Default: review-heavy."},"globalGeneral":{"andShowsUpdateNoticesInTheCLIAnd":" and shows update notices in the CLI and dashboard. Cadence is governed by the frequency below. Default: enabled. ","autoReloadDashboardOnVersionChange":" Auto-reload dashboard on version change ","checkForThe":" Check for the ","checkForUpdatesAutomatically":" Check for updates automatically ","cLIBinaryOnPATH":" CLI binary on PATH ","cLIBySpawning":" CLI by spawning","controlsHowOftenTheDashboardReFetchesThe":" Controls how often the dashboard re-fetches the npm registry. Use the version + refresh control in the header to trigger an immediate check at any time. Default: daily. ","dailyRecommended":"Daily (recommended)","disableThisIfYourLocalDevProcessIs":". Disable this if your local dev process is the source of truth and you don&apos;t want any outdated globally-installed binary executed during the probe. Default: enabled. ","frequency":"Frequency","general":"General","globalDefaultTrackingRepo":"Global default tracking repo","leaveBothThinkingTogglesOffToKeepThe":" Leave both thinking toggles off to keep the original default behavior. This only controls persisted ","manualOnlyNeverAutoCheck":"Manual only — never auto-check","onStartupOncePerServerLaunch":"On startup — once per server launch","ownerRepo":"owner/repo","projectsInheritThisValueWhenTheyDoNot":"Projects inherit this value when they do not set a project default tracking repo. No default — unset.","rowsAndDoesNotAffectAssistantTextOr":" rows and does not affect assistant text or tool rows. Default: disabled for both permanent and ephemeral agents. ","saveAIThinkingForEphemeralTaskWorkerAgents":" Save AI thinking for ephemeral / task-worker agents ","saveAIThinkingForPermanentAgents":" Save AI thinking for permanent agents ","saveAIThinkingLogs":"Save AI thinking logs","saveToolOutputInAgentLogs":" Save tool output in agent logs ","updates":"Updates","weekly":"Weekly","whenDisabledToolRowsAreStillLoggedBut":" When disabled, tool rows are still logged but detailed tool payloads are omitted. Very large tool payloads may still be clipped even when this stays enabled. Default: disabled. ","whenEnabledDefaultTheDashboardAutomaticallyReloadsWhen":" When enabled (default), the dashboard automatically reloads when it detects a new build version — either from server rebuilds or service worker updates. Disable this to stay on the current version until you manually refresh. Default: enabled. ","whenEnabledFusionChecksNpmForNewVersions":" When enabled, Fusion checks npm for new versions of","whenEnabledTheDashboardProbesForAGlobally":" When enabled, the dashboard probes for a globally-installed","gitLabEnabledHint":"Global GitLab URL and token fallbacks apply to projects that do not set their own values. No default — unset (unset behaves as enabled until explicitly disabled).","gitLabInstanceUrlHint":"Blank defaults to GitLab.com. Projects inherit this self-managed GitLab URL unless they set their own project value. No default — unset.","gitLabApiBaseUrlHint":"Blank derives <instance>/api/v4. Override only for self-managed GitLab API gateways that use a different absolute http:// or https:// URL. No default — unset.","gitLabTokenTypeHint":"No default — unset (the selector falls back to personal access token until you choose otherwise).","gitLabAuthTokenHint":"Projects inherit this fallback only when they do not set a project GitLab token. Read-only operations need read_api or api; write actions need api; project/group tokens remain limited by resource membership. No default — unset.","dismissModalsByClickingOutsideHint":" When enabled, clicking or tapping a modal backdrop closes the modal. Default: disabled, to prevent accidental dismissal. "},"globalModels":{"allow":"allow","commaSeparatedValuesSentToOpenRouterModelSync":"Comma-separated values sent to OpenRouter model sync. No default — unset (unfiltered).","controlsHowMuchReasoningEffortTheAIModel":"Controls how much reasoning effort the AI model uses. Higher levels produce better results but cost more. No default — unset (model's own default effort applies).","default":"Default","default2":"default","defaultAIModelUsedForTaskExecutionWhen":"Default AI model used for task execution when no per-task override is set. &quot;Use default&quot; lets the engine choose automatically. No default — unset.","defaultModel":"Default Model","deny":"deny","fallbackModel":"Fallback Model","flowAndPublishesThemUnderTheOpencodeGo":" flow and publishes them under the opencode-go provider in model pickers. Default: enabled. ","fusion":"Fusion","globalBaselineModelsForEachAIRoleProject":" Global baseline models for each AI role. Project settings can override these per-project. ","httpsRunfusionAi":"https://runfusion.ai","latency":"latency","leaveEmptyToOmitThisHeaderDefaultFusion":"Leave empty to omit this header. No default — unset (Fusion falls back to the title \\"Fusion\\" when unset).","leaveEmptyToOmitThisHeaderDefaultHttps":"Leave empty to omit this header. No default — unset (Fusion falls back to https://runfusion.ai when unset).","modelLanes":"Model Lanes","noFallback":"No fallback","openaiAnthropic":"openai, anthropic","openRouterAdvanced":"OpenRouter advanced","openRouterAllowFallbacks":"OpenRouter allow fallbacks","openRouterHTTPReferer":"OpenRouter HTTP-Referer","openRouterOutputModalitiesFilter":"OpenRouter output_modalities filter","openRouterRoutingIgnore":"OpenRouter routing ignore","openRouterRoutingOnly":"OpenRouter routing only","openRouterRoutingOrder":"OpenRouter routing order","openRouterRoutingSort":"OpenRouter routing sort","openRouterSupportedParametersFilter":"OpenRouter supported_parameters filter","openRouterXTitle":"OpenRouter X-Title","price":"price","providerName":"provider-name","requireParameters":" Require parameters ","startupModelSync":"Startup Model Sync","syncOpencodeGoModelListAtStartup":" Sync opencode-go model list at startup ","syncOpenRouterModelListAtStartup":" Sync OpenRouter model list at startup ","text":"text","thinkingEffort":"Thinking Effort","throughput":"throughput","toolsStructuredOutputs":"tools, structured_outputs","usedAutomaticallyIfThePrimaryDefaultModelHits":"Used automatically if the primary default model hits a retryable provider error like rate limiting or overload. No default — unset.","useDefault":"Use default","whenEnabledStartupFetchesTheLatestAvailableModels":" When enabled, startup fetches the latest available models from the OpenRouter API so model pickers always include the newest catalog. Default: enabled. ","whenEnabledStartupRefreshesModelsThroughTheLocal":" When enabled, startup refreshes models through the local ","commaSeparatedValuesSentToOpenRouterModelSyncOutputModalities":"Comma-separated values sent to OpenRouter model sync. No default — unset (unfiltered).","openRouterRoutingOrderHint":"No default — unset (OpenRouter's own default routing order applies).","openRouterRoutingIgnoreHint":"No default — unset (no providers ignored).","openRouterRoutingOnlyHint":"No default — unset (no provider restriction).","openRouterAllowFallbacksHint":"No default — unset (OpenRouter's own default fallback behavior applies).","openRouterRoutingSortHint":"No default — unset (OpenRouter's own default sort applies).","requireParametersHint":"Default: disabled."},"header":{"discord":"Discord","joinDiscord":"Join our Discord","star":"Star","starFusion":"Star Fusion on GitHub"},"importExport":{"confirmImport":"Confirm Import","exportBtn":"Export","exportTitle":"Export settings to JSON file","importBtn":"Import","importing":"Importing…","importTitle":"Import Settings","loadingFile":"Loading…","reviewPrompt":"Review the settings to be imported:","counts":{"global_one":"{{count}} global","global_other":"{{count}} global","project_one":"{{count}} project","project_other":"{{count}} project","workflowSettings_one":"{{count}} workflow setting value","workflowSettings_other":"{{count}} workflow setting value"},"exported":"Settings exported ({{scope}} scope)","exportFailed":"Failed to export settings","globalSettings":"Global Settings:","imported":"Imported {{counts}} setting(s)","importFailed":"Import failed","importFailedDetailed":"Failed to import settings","importScope":"Import Scope:","importTitleAttr":"Import settings from JSON file","invalidJson":"Invalid JSON file: {{error}}","mergeExisting":"Merge with existing settings (recommended)","projectSettings":"Project Settings:","replaceWarning":"If unchecked, existing settings will be replaced with imported values.","scopeBoth":"Both global and project settings","scopeGlobal":"Global settings only","scopeLabel":{"all":"all","global":"global","project":"project"},"scopeProject":"Project settings only"},"jsonPlaceholder":"Enter JSON value...","keepLocal":"Keep Local","keepRemote":"Keep Remote","loading":"Loading…","memory":{"03":"0 3 * * *","agentsGetMemorySearchMemoryGetAndMemory":"Agents get memory_search, memory_get, and memory_append tools. Search defaults to qmd with a local file fallback. Default: enabled.","agentsSearchWithQmdFirstFallBackTo":". Agents search with qmd first, fall back to local files when qmd is missing, and open exact line windows only when needed. ","automaticallyCompactMemoryWhenItExceedsTheThreshold":"Automatically compact memory when it exceeds the threshold on a schedule. Default: disabled.","autoSummarizeMemory":" Auto-Summarize Memory ","bytesUpdated":" bytes · updated ","cannotSave":"Cannot save: ","checkingMemoryWriteAccess":"Checking memory write access...","compacting":"Compacting…","compactionThresholdChars":"Compaction Threshold (chars)","compactSelectedFile":"Compact Selected File","cronExpressionForAutoSummarizeScheduleDefaultDaily":"Cron expression for auto-summarize schedule. Default: 0 3 * * * (daily at 3 AM).","cronExpressionForDreamProcessing":"Cron expression for dream processing. Default: 0 4 * * * (daily at 4 AM).","dreamCompleted":"Dream processing completed","dreaming":" Dreaming… ","dreamNow":"Dream Now","dreamSchedule":"Dream Schedule","enableMemoryTools":" Enable memory tools ","failedToLoadBackendStatus":"Failed to load backend status: ","for":"for \\"","installing":"Installing…","installQmd":"Install qmd","loadingMemory":"Loading memory…","manuallyTriggerDreamProcessingNow":"Manually trigger dream processing now.","memory":"Memory","memoryCompacted":"Memory file compacted","memoryFile":"Memory File","memoryIsConfiguredWithAReadOnlyBackend":" Memory is configured with a read-only backend. You can view the file, but saving is disabled. ","memoryIsCurrentlyDisabledYouCanViewThe":" Memory is currently disabled. You can view the file, but editing is read-only until memory is re-enabled. ","memoryLivesIn":" Memory lives in ","memorySaved":"Memory saved","memoryWillBeCompactedWhenItExceedsThis":"Memory will be compacted when it exceeds this character count. Default: 50000.","noMatchingMemoryFound":"No matching memory found.","processDreamsFromDailyMemory":" Process dreams from daily memory ","qmd":" qmd ","qmdIsNotInstalledSearchWillUseLocal":" qmd is not installed. Search will use local files. Install indexed retrieval: ","result":" result","runsTheSameQmdBackedMemorySearchPath":"Runs the same qmd-backed memory_search path agents use.","saveMemory":"Save Memory","scheduleCron":"Schedule (cron)","searchMemoryWithQmd":"Search memory with qmd","testing":"Testing…","testRetrieval":"Test Retrieval","turnsDailyNotesIntoDREAMSMdAndPromotes":"Turns daily notes into DREAMS.md and promotes reusable lessons into MEMORY.md. Default: disabled.","qmdInstalled":"qmd installed successfully","qmdInstallFailed":"Failed to install qmd","qmdInstallUnavailable":"qmd install finished, but qmd is still unavailable"},"merge":{"abort":"Abort","abortOneAIAttemptRequireManualResolutionIf":"Abort — one AI attempt; require manual resolution if it fails","addFusionAsCoAuthorOnCommits":" Add Fusion as co-author on commits ","afterFusionAdvancesTheIntegrationBranchRefThe":" After Fusion advances the integration branch ref, the merger can auto-sync other worktrees still checked out on that branch (typically your project-root checkout). ","aICorrectiveRoundsBeforeLandingTheBestResult":"AI corrective rounds before landing the best result (advisory concern) or hard-failing (unfixable correctness concern). Default 3. The reviewer uses your project&apos;s reviewer/validator model.","aIMerge":"AI merge","aIMergeDefaultAIMergesInAClean":"AI merge (default) — AI merges in a clean room, an AI reviewer audits with retries, then lands","aIModeMergesTheTaskBranchIntoAn":" AI mode merges the task branch into an isolated clean-room checkout at the target branch&apos;s tip, has an AI reviewer audit the squash (with corrective retries — advisory concerns land with a logged warning, an unfixable correctness concern hard-fails), then fast-forwards the target branch and syncs your local checkout (AI reconciles a conflicting restore). Each task merges to its own target branch, or the default integration branch. ","aIOnly":"AI only","aIOnlyAIAutoResolveAIRetryNever":"AI only — AI → auto-resolve → AI retry; never silently pick a side","allowAIMergeToSyncADirtyChecked":" Allow AI merge to sync a dirty checked-out integration branch ","alwaysPreserveDirectMergeCommitHistory":"Always preserve direct-merge commit history","alwaysSquashDirectMerges":"Always squash direct merges (default)","and":", and ","and2":" and ","areListedFirstOrChoose":" are listed first — or choose ","autoCompletionMode":"Auto-completion mode","autoDetect":"auto-detect","autoDetectOriginHEADMain":"(auto-detect — origin/HEAD → main)","autoKeepsTodayAposSSquashBehaviorFor":" Auto keeps today&apos;s squash behavior for branches with zero or one substantive commit, but switches multi-substantive branches to a history-preserving rebase-and-merge path. Individual tasks can override this in PROMPT.md with ","autoMergeCompletedTasks":" Auto-merge completed tasks ","autoMergeConflictRetries":"Auto-merge conflict retries","autoMergeRunsInTheTaskWorktreeBy":" Auto-merge runs in the task worktree by default. Switch to the legacy project-root path only if you need the pre-FN-5279 fallback; worktrunk-managed projects still defer to worktrunk. ","autoMergeWillRunRebaseConflictResolutionAnd":" Auto-merge will run rebase, conflict resolution, and squash commits inside the project root (the user&apos;s checked-out integration-branch worktree) instead of the task worktree. Fusion assumes that directory is already on the integration branch and clean; if it isn&apos;t, merges may fail or touch the user&apos;s working tree. Reuse-task-worktree is the recommended default (FN-5279). Switch back unless you have a specific reason to opt in (FN-5348). ","autoResolveConflictsInLockFilesAndGenerated":" Auto-resolve conflicts in lock files and generated files ","autoSquashSingleSubstantiveBranchesPreserveMultiSubstantive":"Auto — squash single-substantive branches, preserve multi-substantive history","autoSyncProjectCheckoutAfterMerge":"Auto-sync project checkout after merge","block":"Block","blockStrict":"Block (strict)","both":" Both ","branchName":"branch name","checkingForLegacyAutoMergeStamps":"Checking for legacy auto-merge stamps…","coAuthorEmail":"Co-author Email","coAuthorName":"Co-author Name","conflictFallbackStrategy":"Conflict Fallback Strategy","controlsThePostMergeAuditGate":" Controls the post-merge audit gate. ","controlsWhatHappensAfterATaskReachesIn":" Controls what happens after a task reaches In Review. Direct mode merges into the current branch locally. Pull request mode keeps the task in In Review while Fusion waits for GitHub reviews and required checks before merging the PR. ","createMonitorAndMergeAGitHubPullRequest":"Create, monitor, and merge a GitHub pull request","custom":"Custom…","dangerousCompatibilityEscapeHatchLeaveOffUnlessYou":" Dangerous compatibility escape hatch — restores the legacy stash → fast-forward → restore behavior when your checked-out integration branch has unrelated local edits. When off, AI merge blocks before advancing the branch so dirty project-root edits cannot contaminate a completed merge. Default: enabled (new/unconfigured projects sync a dirty checkout). ","defaultLogsFindingsButAutoCompletesTheMerge":" (default) logs findings but auto-completes the merge. ","deterministicLegacyRebaseConflictStrategyAuditPipeline":"Deterministic (legacy) — rebase / conflict-strategy / audit pipeline","directMergeCommitRouting":"Direct merge commit routing","directMergeIntoTheCurrentBranch":"Direct merge into the current branch (default)","emailUsedInThe":"Email used in the ","enableTestMode":" Enable test mode ","fastForwardOfLocalMainFrom":" + fast-forward of local main from ","fastForwardOnlySkipDirtyWorktrees":"Fast-forward only — skip dirty worktrees","finalFallback":"final fallback","findsInReviewTasksWhoseAutoMergeValue":" Finds in-review tasks whose auto-merge value came from the legacy review-entry stamp. Dry-run is automatic; applying delegates to the store cleanup and preserves genuine per-task overrides. ","flipOverlappingFilesToPreferTheTaskBranch":"Flip overlapping files to prefer the task branch (default)","forcesAllAILanesToUseTheDeterministic":"Forces all AI lanes to use the deterministic mock provider. No network calls, zero token cost. No default — unset (disabled).","fusion":"Fusion","gitHubAuthentication":"GitHub Authentication","gitHubAuthMode":"GitHub auth mode","gitHubCLIGhAuth":"GitHub CLI (gh auth) (default)","gitHubPersonalAccessToken":"GitHub personal access token","gitRemoteToPushToEGOrigin":"Git remote to push to (e.g. \\"origin\\"). Can include branch name (e.g. \\"origin main\\"). Default: \\"origin\\".","ignoreOverlapDetectionPreserveLegacyBehavior":"Ignore overlap detection — preserve legacy behavior","includeTaskIDInCommitScope":" Include task ID in commit scope ","insteadOf":" instead of ","integrationBranch":"Integration branch","integrationWorktree":"Integration worktree","inYourProjectRootWillShowTheNew":" in your project root will show the new commits inverted as &quot;staged changes&quot; until you pull manually. Only applies to direct merges. ","isTheLegacyBehavior":" is the legacy behavior: ","isTheStricterOptInModeThatRefuses":" is the stricter opt-in mode that refuses to auto-complete merges with duplicate-subject or touched-file overlap risks. ","legacy":" → legacy ","legacy2":"Legacy ","legacyAutoMergeStamp":" legacy auto-merge stamp","legacyAutoMergeStampCleanup":"Legacy auto-merge stamp cleanup","legacyIntegrationBranchMode":"Legacy integration-branch mode.","maxAIReviewPasses":"Max AI review passes","merge":"Merge","moreDetails":"More details","nameUsedInThe":"Name used in the ","noLegacyAutoMergeStampsToCleanUp":" No legacy auto-merge stamps to clean up. ","noreplyRunfusionAi":"noreply@runfusion.ai","off":"Off","offLeaveTheProjectRootStaleLegacyBehavior":"Off — leave the project root stale (legacy behavior)","offSkipAudit":"Off (skip audit)","optionsStartWithABestEffort":" options start with a best-effort ","origin":"origin","personalAccessToken":"Personal access token","pickALocalBranchFromTheDropdownCommon":"). Pick a local branch from the dropdown — common integration names like ","positiveIntegerRetryCapForAutoMergeConflict":"Positive integer retry cap for auto-merge conflict resolution before a task parks for human recovery. Default 3.","planApprovalMode":"Plan approval mode","planApprovalModeAutoApproveAll":"Auto-approve all tasks (default)","planApprovalModeHelp":"Project-wide override for the planning approval gate. Leave on workflow to use each workflow's Require plan approval setting, or force all approved specs to bypass or wait for manual approval.","planApprovalModeRequireAll":"Require approval for all tasks","planApprovalModeWorkflow":"Use workflow setting","postMergeAuditMode":"Post-merge audit mode","pushRemote":"Push Remote","pushToRemoteAfterMerge":" Push to remote after merge ","readyToCleanUp":" ready to clean up.","retriesTheAIAgentRatherThanAutoPicking":" retries the AI agent rather than auto-picking a side. ","reuseTaskWorktreeDefault":"Reuse task worktree (default)","skipsTheAuditEntirelySwitchingToOffIs":" skips the audit entirely. Switching to Off is recommended only if you trust your branches don&apos;t silently drop edits. ","smart":"Smart","smartConflictResolution":" Smart conflict resolution ","smartPreferMain":"Smart, prefer main","smartPreferMainOnFallbackFetchFfOrigin":"Smart, prefer main on fallback — fetch+ff origin → AI → auto-resolve → -X ours (default; protects just-merged sibling work)","smartPreferMainOverlapGuard":"Smart Prefer Main Overlap Guard","smartPreferTask":"Smart, prefer task","smartPreferTaskOnFallbackFetchFfOrigin":"Smart, prefer task on fallback — fetch+ff origin → AI → auto-resolve → -X theirs (legacy \\"smart\\" behavior; task branch wins)","snapsCleanlyWhenTheWorktreeHasNoEdits":" snaps cleanly when the worktree has no edits and skips otherwise. ","snapshotsRealLocalEditsAsAPatchAgainst":" snapshots real local edits as a patch against the previous tip, snaps the worktree to the new tip, then reapplies the patch — untracked files that collide with newly-tracked paths are left in a temp dir for manual recovery. ","soAFreshlyPushedSiblingCommitDoesntGet":" (so a freshly-pushed sibling commit doesn't get clobbered), then run an AI agent, then auto-resolve handles lock/generated/trivial files. They differ only in the ","soMainWinsProtectsJustMergedSiblingWork":" so main wins — protects just-merged sibling work and is the new default. ","soTheTaskBranchWinsFastButCan":" so the task branch wins — fast, but can resurrect code an earlier sibling task deleted (the FN-2887 class of regression). ","stashFastForwardDefaultPreserveLocalEdits":"Stash + fast-forward (default) — preserve local edits","stopsAfterTheFirstAIAttemptAndWaits":" stops after the first AI attempt and waits for a human. ","symbolicRefFallback":" symbolic ref → fallback ","theCanonicalBranchFusionMergesTasksIntoAnd":" No default — unset (auto-detect). The canonical branch Fusion merges tasks into and uses as the reference for all ahead/behind / overlap / pre-rebase computations. Leave on ","theLegacyMergeSettingsBelowDoNotApply":"The legacy merge settings below do not apply while AI merge is on.","toResolveViaTheStandardCascade":" to resolve via the standard cascade (","toTypeABranchThatDoesnAposT":" to type a branch that doesn&apos;t exist locally yet. Applies to both direct merges and pull-request mode; individual tasks can still override via task metadata. ","trailer":" trailer. Default: Fusion.","trailerCreditingFusionRecognizedByGitHubForShared":" trailer crediting Fusion (recognized by GitHub for shared attribution). Default: enabled. ","useDropdown":" Use dropdown ","useProjectRootLegacy":"Use project root (legacy)","uses":" uses ","valuesFromOlderSettingsAreMigratedAutomatically":" values from older settings are migrated automatically.","warn":"Warn","warnDefaultLogFindingsContinue":"Warn (default; log findings, continue)","warnOnlyKeepLegacyMainWinsFallback":"Warn only — keep legacy main-wins fallback","whenDisabledMergeCommitMessagesOmitTheTask":"When disabled, merge commit messages omit the task ID from the scope (e.g. ","whenEnabledCommitsMadeByFusionKeepYour":" When enabled, commits made by Fusion keep your git identity as the primary author and append a ","whenEnabledLockFilesPackageLockJsonPnpm":"When enabled, lock files (package-lock.json, pnpm-lock.yaml, etc.), generated files (dist/*, *.gen.ts), and trivial whitespace conflicts are resolved automatically without AI intervention. Complex code conflicts still require AI review. Default: enabled.","whenEnabledLockFilesPackageLockJsonPnpm2":"When enabled, lock files (package-lock.json, pnpm-lock.yaml, etc.) are resolved using 'ours' strategy, generated files (dist/*, *.gen.ts) using 'theirs' strategy, and trivial whitespace conflicts are auto-resolved without spawning an AI agent. Complex code conflicts still require AI review. Default: enabled.","whenEnabledTasksThatPassReviewAreAutomatically":"When enabled, tasks that pass review are automatically merged into the main branch. Default: enabled.","whenEnabledTheMergedResultIsAutomaticallyPushed":"When enabled, the merged result is automatically pushed to the configured git remote. This includes pulling the latest from the remote first (rebase) and resolving any conflicts with AI if needed. Default: disabled.","whenUsingSmartPreferMainAutomaticallyPreferThe":" When using smart-prefer-main, automatically prefer the branch side for files that main has recently modified to avoid silently discarding branch work. ","githubAuthTokenHint":"No default — unset.","gitLabAuthDetails":"Fusion uses GitLab REST API token authentication with the PRIVATE-TOKEN header. Leave the token blank to clear the project override and fall back to a configured global GitLab token or GITLAB_TOKEN where available. No default — unset (unset behaves as enabled until explicitly disabled).","gitLabPersonalAccessToken":"Personal access token (default)","gitLabAuthTokenHint":"Read-only GitLab operations need read_api or api. Future write actions such as comments and auto-close need api. Project and group tokens are limited to their associated resource and role membership. No default — unset.","includeTaskIdInCommitDefault":"). Default: enabled.","trailerEmail":" trailer. Default: noreply@runfusion.ai.","gitRemoteThatMergedResultsArePushedTo":"Git remote that merged results are pushed to. Default: \\"origin\\".","pushTargetBranch":"Push target branch","sameAsIntegrationBranchDefault":"(same as integration branch — default)","pushTargetBranchHelp":"Branch on the remote that merged results are pushed to. Leave on the default to push the integration branch to its same-named remote branch; pick a listed remote branch or choose Custom… to type one that doesn't exist on the remote yet (the push creates it)."},"mergeManually":"Merge Manually","mobileNav":{"label":"Settings Section"},"models":{"deletePresetMessage":"Preset \\"{{name}}\\" is used in auto-selection. Delete it anyway?","deletePresetTitle":"Delete Preset","loadingModels":"Loading available models…","noModels":"No models available. Configure authentication first.","presetNameRequired":"Preset name is required","savePreset":"Save preset"},"movedStub":{"modelLanes":"Per-phase model lanes (execution, planning, reviewer, their fallbacks, and the title summarizer) now live on the workflow.","openWorkflowSettings":"Open workflow settings","reviewVerification":"Review, verification auto-fix, and scope-enforcement settings now live on the workflow.","stepExecution":"Step execution settings (run steps in new sessions, max parallel steps) now live on the workflow.","summarizerModelInline":"The model used for summarization now lives on the workflow (title summarizer lane). Open workflow settings to choose it."},"nav":{"aria":{"global":"Global setting","project":"Project setting"},"prompts":"Prompts","secrets":"Secrets","tooltip":{"global":"Shared across all projects","project":"Specific to this project"},"globalMcp":"MCP Servers","mcp":"MCP Servers"},"nodeRouting":{"blockExecution":"Block execution","configureHowTasksAreRoutedToExecutionNodes":"Configure how tasks are routed to execution nodes.","defaultExecutionNode":"Default Execution Node","fallBackToLocal":"Fall back to local","localExecutionNoDefaultNode":"Local execution (no default node)","nodeRouting":"Node Routing","selectedNode":"Selected node:","theseSettingsApplyAtTheProjectLevel":"These settings apply at the project level.","unavailableNodePolicy":"Unavailable Node Policy","usedWhenATaskHasNoNodeOverride":"Used when a task has no node override. Node status is shown for safer routing selection. No default — unset (local execution).","unavailableNodePolicyHint":"Default: block execution."},"nodeSync":{"alwaysAsk":"Always ask","automaticallySynchronizeSettingsBetweenThisNodeAndConnected":"Automatically synchronize settings between this node and connected remote nodes. Default: disabled.","conflictResolution":"Conflict resolution","enableAutomaticSettingsSync":" Enable automatic settings sync ","every15Minutes":"Every 15 minutes","every1Hour":"Every 1 hour","every30Minutes":"Every 30 minutes","every5Minutes":"Every 5 minutes","includeAPIKeysAndOAuthTokensInSync":"Include API keys and OAuth tokens in sync operations. Default: disabled.","keepLocal":"Keep local","keepRemote":"Keep remote","lastWriteWins":"Last write wins","nodeSync":"Node Sync","syncInterval":"Sync interval","syncModelAuthCredentials":" Sync model auth credentials ","workflowSettingsNotSynced":"Workflow settings are not synced across nodes yet.","syncIntervalHint":"Default: every 15 minutes.","conflictResolutionHint":"Default: last write wins."},"notifications":{"accessTokenOptional":"Access token (optional)","advanced":"Advanced","allFailuresLegacy":"All failures (legacy)","baseURLForDeepLinksInNotificationsWhen":" Base URL for deep links in notifications. When set, clicking a notification opens the dashboard directly to the task. No default — unset. ","customNtfyServerURLOptional":"Custom ntfy server URL (optional)","dashboardHostname":"Dashboard Hostname","discord":"Discord","enable":" Enable ","failureNotificationDelayMs":"Failure notification delay (ms)","failureNotificationMode":"Failure notification mode","format":"Format","general":" General: ","generic":"Generic","howLongAFailureMustPersistBeforeA":" How long a failure must persist before a push notification is sent. 0 = notify immediately. Default: 30000 (30 seconds). ","httpLocalhost3000":"http://localhost:3000","httpsHooksExampleCom":"https://hooks.example.com/...","httpsNtfySh":"https://ntfy.sh","learnMoreAboutNtfySh":" Learn more about ntfy.sh ","leaveBlankToKeepTheDefaultServerHttps":" Leave blank to keep the default server: https://ntfy.sh. Custom servers must use http:// or https://. No default — unset. ","leaveBlankToPublishWithoutAuthenticationWhenSet":" Leave blank to publish without authentication. When set, Fusion sends an Authorization Bearer header with ntfy requests. No default — unset. ","messageInbox":" Message inbox: ","mustBeAValidURLStartingWithHttp":" Must be a valid URL starting with http:// or https:// ","myTopicName":"my-topic-name","notifications":"Notifications","notifyOnEvents":"Notify on events","ntfy":"ntfy","ntfyTopic":"ntfy Topic","roomReply":" Room reply: ","sending":"Sending…","slack":"Slack","stickyFailuresOnlyDefault":"Sticky failures only (default)","stickyOnlySuppressesRecoveredFailuresTerminalOnlyWaits":"Sticky-only suppresses recovered failures; terminal-only waits for paused/in-review failed tasks; all restores legacy alerts.","terminalFailuresOnlySuppressAutoRetried":"Terminal failures only (suppress auto-retried)","testMessageInbox":"Test message inbox","testNotification":"Test notification","testRoomReply":"Test room reply","tk":"tk_...","topicMustBe164AlphanumericHyphenOr":" Topic must be 1–64 alphanumeric, hyphen, or underscore characters ","webhook":"Webhook","webhookNotifications":" Webhook notifications ","webhookURL":"Webhook URL","yourNtfyShTopicName164Alphanumeric":" Your ntfy.sh topic name (1–64 alphanumeric/hyphen/underscore characters). No default — unset.","ntfyEnabledHint":"Default: disabled.","webhookEnabledHint":"Default: disabled.","webhookUrlHint":"No default — unset.","webhookFormatHint":"Default: generic."},"plugins":{"fusionPlugins":" Fusion Plugins ","piExtensions":" Pi Extensions ","pluginManagerType":"Plugin manager type","plugins":"Plugins"},"projectModels":{"addPreset":" Add Preset ","advancedWorkflowPolicy":" Advanced workflow policy ","aIMergeCommitSummaries":" AI merge commit summaries ","aITitleAndGitCommitMessageSummarization":" AI Title and Git Commit Message Summarization ","automaticallyCompactContextWhenApproachingThisTokenCount":"Automatically compact context when approaching this token count. Leave empty for no cap (compact only on overflow errors). Set a number to proactively compact when reaching this token count. No default — unset (no cap).","autoSelectPresetBasedOnTaskSize":" Auto-select preset based on task size ","autoSummarizeLongDescriptionsAsTitles":" Auto-summarize long descriptions as titles ","configuredPresets":"Configured presets","configuresTheModelUsedForTwoShortSummary":" Configures the model used for two short-summary jobs: auto-generating task titles from long descriptions, and generating merge commit summaries from step commits and diff stats. ","defaultWorkflowModelLaneActions":"Default workflow model lane actions","defaultWorkflowModelLanes":"Default workflow model lanes","delete":" Delete ","edit":" Edit ","executorModel":"Executor model","fallsBackTo":" Falls back to: ","loadingAvailableModels":"Loading available models…","loadingWorkflowModelLanes":"Loading workflow model lanes…","modelLanes":"Model Lanes","modelPresets":"Model Presets","name":"Name","noCap":"No cap","noModelsAvailableConfigureAuthenticationBeforeSelectingWorkflow":" No models available. Configure authentication before selecting workflow model lanes. ","noModelsAvailableConfigureAuthenticationFirst":" No models available. Configure authentication first. ","noModelsAvailableConfigureAuthenticationFirst2":"No models available. Configure authentication first.","noPreset":"No preset","noPresetsConfiguredYet":"No presets configured yet.","openAProjectToEditWorkflowModelLanes":"Open a project to edit workflow model lanes.","overrideGlobalModelSettingsAtTheProjectLevel":" Override global model settings at the project level. Each lane controls a specific AI usage context. Unset lanes inherit from the corresponding global lane. The Project Default Model is the fallback for this project when a more specific lane is unset. ","presetEditor":"Preset editor","reset":" Reset ","resetToDefaultNoCap":"Reset to default (no cap)","resetToInheritFromGlobal":"Reset to inherit from global","resetToInheritFromWorkflow":"Reset to inherit from workflow","reviewerModel":"Reviewer model","theseProjectOverridesApplyToTheActiveDefault":" These project overrides apply to the active default workflow. ","tokenCap":"Token Cap","useDefault":"Use default","useWorkflowDefault":"Use workflow default","whenEnabledMergeCommitMessagesIncludeAnAI":" When enabled, merge commit messages include an AI-generated subject plus body summary (narrative + bullets + diff-stat) instead of just listing step commit subjects. Uses the title summarization model. Default: enabled. ","whenEnabledTasksCreatedWithoutATitleBut":" When enabled, tasks created without a title but with descriptions over 200 characters will automatically get an AI-generated title (max 60 characters). The same model is also used to generate fallback merge commit message bodies when the branch's commit log is empty (e.g. squash merges with no unique commits), and GitHub tracking issue titles when a tracked task has no title yet. Default: disabled. ","autoSelectModelPresetHint":"Default: disabled.","prTitlePromptInstructionsHelp":"Guides the AI-generated Create PR title. Leave blank to use the default PR metadata prompt. No default — unset.","prDescriptionPromptInstructionsHelp":"Guides the AI-generated Create PR summary, changes, and testing sections. Leave blank to use the default PR metadata prompt. No default — unset.","chatHeading":"Chat","chatDescription":"Choose the default target for new Direct chats and whether New Chat should prompt or immediately use that default.","chatNewSessionMode":"New Chat behavior","chatNewSessionModePrompt":"Prompt for model each time","chatNewSessionModeAlwaysDefault":"Always use configured default","chatNewSessionModeHelp":"Prompt mode opens New Chat with this default preselected. Always-default mode skips the dialog when the configured default is complete.","chatDefaultKind":"Chat default target","chatDefaultKindModel":"Model","chatDefaultKindAgent":"Agent","chatDefaultModel":"Chat Default Model","selectChatDefaultModel":"Select a chat default model","chatDefaultModelHelp":"Model-mode New Chat uses the built-in Fusion chat agent with this provider/model pair. Leave empty to fall back to prompting.","chatDefaultAgent":"Chat Default Agent","loadingAgents":"Loading agents…","selectChatDefaultAgent":"Select a chat default agent","chatDefaultAgentEmpty":"No agents are available for this project yet.","chatDefaultAgentHelp":"Agent-mode New Chat starts a Direct chat with the selected durable agent.","chatDefaultReset":"Reset Chat default"},"remote":{"acceptRoutes":" Accept routes ","advancedNamedTunnel":"Advanced (Named Tunnel)","advancedSettings":"Advanced Settings","authenticatedURL":"Authenticated URL:","authLinks":"Auth Links","authLinkTokenType":"Auth link token type","automaticallyRestoreTunnelOnStartupIfItWas":"Automatically restore tunnel on startup if it was running when last stopped. Default: disabled.","cloudflare":"Cloudflare","cloudflaredInstalled":"cloudflared installed successfully","cloudflaredIsInstalled":"cloudflared is installed","cloudflaredIsNotInstalled":"cloudflared is not installed","cloudflaredMustBeInstalledToStartTheTunnel":"cloudflared must be installed to start the tunnel","enableShortLivedTokens":" Enable short-lived tokens ","expiresAt":" · Expires at {{expiresAt}}","external":"External ","externalTunnelQRCode":"External tunnel QR code","generateQR":"Generate QR","generateShortLivedToken":"Generate short-lived token","httpsYourDomainExample":"https://your-domain.example","ifHomebrewIsUnavailable":"If Homebrew is unavailable: ","ingressURL":"Ingress URL","installCloudflared":"Install cloudflared","installing":"Installing…","lastShortLivedTokenExpiresAt":"Last short-lived token expires at ","manualInstall":"Manual install: ","ms":"ms)","namedTunnelModeEnabled":"Named Tunnel mode enabled — configure tunnel name, token, and ingress URL below.","noExpiry":" · No expiry","persistentToken":"Persistent token","persistentTokenRegenerated":"Persistent token regenerated","qRSVGMarkup":"QR SVG markup","regeneratePersistentToken":"Regenerate persistent token","rememberLastRunningState":" Remember last running state ","remoteAccess":"Remote Access","remoteAccessCode":"Remote access code:","remoteAccessQRCode":"Remote access QR code","remoteProvider":"Remote provider","restarting":"Restarting…","scanThisQRCodeOnYourPhone":"Scan this QR code on your phone","scanToConnect":"Scan to connect:","scanToOpen":"Scan to open:","selectAProviderAboveToConfigureRemoteAccess":"Select a provider above to configure remote access.","shortLivedToken":"Short-lived token","shortLivedTokenGenerated":"Short-lived token generated","shortLivedTTLMs":"Short-lived TTL (ms)","showURL":"Show URL","startFresh":"Start Fresh","starting":"Starting…","startTunnel":"Start Tunnel","stopping":"Stopping…","stopTunnel":"Stop Tunnel","tailnetURL":"Tailnet URL:","tailscale":"Tailscale","tailscaleFunnelWillExposeThisDashboardOnYour":"Tailscale Funnel will expose this dashboard on your tailnet's public ","tokenType":" Token type: ","tunnelDetected":" tunnel detected","tunnelName":"Tunnel name","tunnelRestarted":"Remote tunnel restarted","tunnelStarted":"Remote tunnel started","tunnelStopped":"Remote tunnel stopped","tunnelToken":"Tunnel token","uRLAndQRGenerationUseTheSelectedToken":" URL and QR generation use the selected token type. ","uRLNoHostnameOrPortConfigurationNeeded":" URL — no hostname or port configuration needed.","useExisting":"Use Existing","usingQuickTunnel":"Using Quick Tunnel — automatically creates a random trycloudflare.com URL, no account needed. Default: enabled.","installationFailed":"Installation failed","acceptRoutesHint":"Default: disabled.","shortLivedEnabledHint":"Default: disabled.","shortLivedTtlMsHint":"Default: 900000 (15 minutes)."},"researchGlobal":{"advancedExternalSearchProviders":"Advanced — external search providers","alwaysOn":"Always on","brave":"Brave","builtInUsesAgentWebTools":" Built-in (uses agent web tools) (default) ","configureBraveTavilyAndGoogleAPIKeysIn":" Configure Brave, Tavily, and Google API keys in Authentication. ","customSearchEngineId":"custom-search-engine-id","defaultMaxConcurrentRuns":"Default Max Concurrent Runs","defaultMaxDurationMs":"Default Max Duration (ms)","defaultMaxSourcesPerRun":"Default Max Sources Per Run","enabledSources":"Enabled Sources","gitHub":" GitHub ","googleCustomSearch":"Google Custom Search","googleSearchCX":"Google Search CX","httpsSearxExampleCom":"https://searx.example.com","localDocs":" Local Docs ","maxSynthesisRounds":"Max Synthesis Rounds","missingCredentialsForTheSelectedResearchProvider":" Missing credentials for the selected research provider. ","openAuthentication":" Open Authentication ","openAuthenticationSettings":" Open Authentication Settings ","requestTimeoutMs":"Request Timeout (ms)","researchDefaults":"Research Defaults","searchesAndFetchesUseTheAgentsNativeWebSearch":" Searches and fetches use the agent's native WebSearch/WebFetch tools. No API key required. Default: builtin. ","searchProvider":"Search Provider","searXNG":"SearXNG","searXNGURL":"SearXNG URL","tavily":"Tavily","webSearch":" Web Search ","searXNGURLHint":"No default — unset.","googleSearchCXHint":"No default — unset.","maxConcurrentRunsHint":"Default: 3.","maxSourcesPerRunHint":"Default: 20.","defaultMaxDurationMsHint":"Default: 300000 (5 minutes).","requestTimeoutMsHint":"Default: 30000 (30 seconds).","maxSynthesisRoundsHint":"Default: 2.","gitHubSourceHint":" Default: disabled. ","localDocsSourceHint":" Default: enabled. "},"researchProject":{"alwaysOn":"Always on","enabledSources":"Enabled Sources","enableResearchInThisProject":" Enable research in this project ","github":"GitHub","llmSynthesis":"LLM Synthesis","localDocs":"Local Docs","maxConcurrentRuns":"Max Concurrent Runs","maxDurationMs":"Max Duration (ms)","maxSourcesPerRun":"Max Sources Per Run","pageFetch":"Page Fetch","projectResearchSettings":"Project Research Settings","requestTimeoutMs":"Request Timeout (ms)","webSearch":" Web Search ","webSearchIsAlwaysEnabledConfigureTheSearch":" Web search is always enabled. Configure the search provider under Research Defaults. ","enableResearchInThisProjectHint":"Default: enabled.","maxConcurrentRunsHint":"Default: 3.","maxSourcesPerRunHint":"Default: 20.","maxDurationMsHint":"Default: 300000 (5 minutes).","requestTimeoutMsHint":"Default: 30000 (30 seconds)."},"resolveAllLocal":"Resolve All: Keep Local","resolveAllRemote":"Resolve All: Keep Remote","resolvedSuccess":"Settings conflicts resolved successfully","resolveFailed":"Failed to resolve conflicts","resolving":"Resolving...","runtimesRuntimes":{"hermesRuntime":"Hermes Runtime","openClawRuntime":"OpenClaw Runtime","paperclipRuntime":"Paperclip Runtime"},"scheduledEvals":{"autoCreateTasks":"Auto-create tasks","disabled":"Disabled","enableScheduledEvalRunsForThisProject":" Enable scheduled eval runs for this project ","evaluatorModel":"Evaluator Model","evaluatorProvider":"Evaluator Provider","followUpPolicy":"Follow-up Policy","gpt5":"gpt-5","intervalMs":"Interval (ms)","leaveProviderAndModelBlankToInheritThe":" Leave provider and model blank to inherit the project validator lane model settings. No default — unset. ","openai":"openai","retentionDays":"Retention (days)","scheduledEvals":"Scheduled Evals","suggestOnly":"Suggest only","enabledHint":"Default: disabled.","intervalMsHint":"Default: 86400000 (24 hours).","evaluatorProviderHint":"No default — unset (inherits the project validator lane provider).","followUpPolicyHint":"Default: suggest only.","retentionDaysHint":"Default: 30."},"scheduling":{"addIgnoredPath":" Add ignored path ","archiveAgentLog":"Archive Agent Log","archiveCompletedTasksAfterDays":"Archive Completed Tasks After (days)","autoArchiveDuplicateTasks":" Automatically archive duplicate tasks ","autoArchiveDuplicateTasksHelp":"Automatically archive tasks detected as same-agent duplicates on creation (off by default). When disabled, duplicates are flagged in place with the yellow Duplicate chip and Keep/Archive actions instead of being archived automatically.","backlogNoTaskAutoClaimIsExecutorOnly":"Backlog/no-task auto-claim is executor-only by default. Enable to let engineer-role agents auto-claim unowned backlog tasks; explicit routing and delegation are unchanged. Default: off.","browse":" Browse ","closeParenPeriod":").","compactModeKeepsArchiveSizeLowWhilePreserving":"Compact mode keeps archive size low while preserving recent agent activity for context. Default: compact.","compactSummaryAndRecentEntries":"Compact summary and recent entries","completedTasksOlderThanTheThresholdAreMoved":"Completed tasks older than the threshold are moved out of the active task database. Default: enabled.","docs":"docs/","doNotArchiveAgentLogs":"Do not archive agent logs","enableAutomaticTaskArchiving":" Enable automatic task archiving ","enablePlanStalenessEnforcement":" Enable plan staleness enforcement ","escalateHighFanOutBlockersOnlyAfterThey":"Escalate high fan-out blockers only after they remain in in-progress or in-review for this many hours (age source: columnMovedAt, fallback updatedAt). Default: 2 hours.","fullAgentLog":"Full agent log","globalMaxConcurrent":"Global Max Concurrent","heartbeatScopeDiscipline":"Heartbeat Scope Discipline","ignoreHiddenDotPathsHelp":"When enabled, overlap checks ignore hidden path segments such as .fusion/, .changeset/, .github/, .env, and nested .cache/ directories. Uncheck to restore legacy counting for stricter serialization. Default: enabled.","ignoreHiddenDotPathsInOverlapChecks":" Ignore hidden dot paths in overlap checks ","ignoredOverlapPaths":"Ignored overlap paths","letEngineerAgentsAutoClaimBacklogTasks":" Let engineer agents auto-claim backlog tasks ","lite":"Lite","maxConcurrentTasks":"Max Concurrent Tasks","maximumAgeInHoursBeforeAPlanIs":"Maximum age in hours before a plan is considered stale. Default: 6 hours.","maximumConcurrentAgentsAcrossAllProjects":"Maximum concurrent agents across all projects. Default: 4.","maximumConcurrentPlanningAgents":"Maximum concurrent planning agents. Default: 2.","maximumStuckDetectorRetriesBeforeATaskIs":"Maximum stuck-detector retries before a task is marked failed. Default: 6.","maxStuckRetries":"Max Stuck Retries","maxTriageConcurrent":"Max Triage Concurrent","numberOfDaysATaskCanStayIn":"Number of days a task can stay in Done before it is archived. Default: 2 days (48 hours).","off":"Off","optionalFileOrDirectoryPathsToIgnoreWhen":" No default — unset (empty). Optional file or directory paths to ignore when overlap serialization is enabled. Paths are project-relative (for example ","or":" or ","pollIntervalMs":"Poll Interval (ms)","preserveStepProgressOnStuckTaskRequeue":" Preserve step progress on stuck-task requeue ","remove":" Remove ","scheduling":"Scheduling","selectCurrentDir":"Select current directory","selectIgnoredOverlapPath":"Select ignored overlap path","serializeTasksWithOverlappingFiles":" Serialize tasks with overlapping files ","staleHighFanOutEscalationHours":"Stale High Fan-out Escalation (hours)","staleSpecThresholdHours":"Stale Spec Threshold (hours)","stepExecution":"Step Execution","strictCoordinationFocusedHigherPerTickTokensLite":"Strict — coordination-focused; higher per-tick tokens. Lite — pre-2026-05-11 behavior. Off — minimal procedure.","strictDefault":"Strict (default)","stuckTaskTimeoutMinutes":"Stuck Task Timeout (minutes)","timeoutInMinutesForDetectingStuckTasksWhen":"Timeout in minutes for detecting stuck tasks. When a task's agent session shows no activity for longer than this duration, the task is terminated and retried. Leave empty to disable. Suggested: 10. Default: 10 minutes (600000ms).","whenEnabledTasksThatModifyTheSameFiles":"When enabled, tasks that modify the same files are queued serially to avoid merge conflicts. Default: enabled.","whenEnabledTasksWithStalePlansPROMPTMd":"When enabled, tasks with stale plans (PROMPT.md older than the threshold) are automatically sent back to planning for replanning. Default: disabled.","whenTheStuckDetectorKillsAndReQueues":"When the stuck detector kills and re-queues a task, keep completed step statuses so the agent can resume from where it left off. Disable to reset every step to pending on each stuck retry. Default: enabled.","browseWorkspacePath":"Browse workspace path","overlapPickerNote":"Choose a file to ignore directly, or navigate into a folder and select the current directory.","maxConcurrentTasksHint":"Default: 2.","pollIntervalMsHint":"Default: 15000 (15 seconds)."},"scope":{"globalBanner":"These settings are shared across all your Fusion projects.","projectBanner":"These settings only affect this project."},"title":"Settings","worktrees":{"allowSilentSiblingBranchRenameDuringExecutorConflicts":" Allow silent sibling branch rename during executor conflicts ","alsoRebaseOntoLocalDefaultBranchHEAD":" Also rebase onto local default-branch HEAD ","and":" and ","andCanHidePriorCommitsFromTheDefault":" and can hide prior commits from the default recovery flow. Default: disabled. ","autoDetectFusionBinWorktrunkOrPATH":"auto-detect (~/.fusion/bin/worktrunk or $PATH)","awaitingApproval":"Awaiting approval — open Approvals to continue.","branchCollisionSilentlyForksWorkOntoSiblingBranches":" branch collision silently forks work onto sibling branches like ","browse":" Browse ","browseWorktreesDirectory":"Browse worktrees directory","closeParenPeriod":").","defaultsTo":". Defaults to ","defaultsToWorktreesLeaveEmptyUnlessOverriding":"Defaults to .worktrees — leave empty unless overriding","disabledByDefaultOptInWhenEnabledFusion":" Disabled by default (opt-in). When enabled, Fusion shells out to ","discouragedThisRestoresTheLegacyBehaviorWhereA":" Discouraged. This restores the legacy behavior where a live ","enableWorktrunkAndRequestApprovalToInstallThe":"Enable worktrunk and request approval to install the pinned release.","enableWorktrunkIntegration":" Enable worktrunk integration ","failAndPauseTheTaskDefault":"Fail and pause the task (default)","fallBackToFusionsNativeWorktreeBackend":"Fall back to Fusion's native worktree backend","forWorktreeCreateSyncPruneAndRemoveOperations":" for worktree create, sync, prune, and remove operations and follows worktrunk&apos;s directory layout. ","inAdditionToTheRemoteRebaseAboveAlso":" In addition to the remote rebase above, also rebase the task branch onto the local default-branch HEAD (rootDir). This catches sibling tasks that merged locally but haven't been pushed yet — without it, two concurrent tasks where one deletes code can have the other silently re-introduce it via the fallback strategy. Enabled by default; only disable if it causes issues with your workflow. ","installedAt":" installed at ","installTheWorktrunkBinaryBelowToEnableThis":"Install the worktrunk binary below to enable this integration.","installWorktrunk":"Install worktrunk binary","keepsProgressMovingBySwitchingToFusionApos":" keeps progress moving by switching to Fusion&apos;s built-in worktree backend. ","limitsTotalGitWorktreesIncludingInReviewTasks":"Limits total git worktrees including in-review tasks. Default: 4.","maxWorktrees":"Max Worktrees","offByDefaultOptInWhenEnabledCompleted":"Off by default (opt-in). When enabled, completed task worktrees are returned to an idle pool instead of being deleted, preserving build caches for faster startup","openApprovals":"Open Approvals","optionalLeaveBlankToAutoResolveFusionWill":"Optional. Leave blank to auto-resolve; Fusion will offer to install on first use.","optionalSupports":" Optional. Supports ","pnpmInstallFrozenLockfile":"pnpm install --frozen-lockfile","randomNamesEGSwiftFalcon":"Random names (e.g., swift-falcon)","rebaseFromRemoteBeforeMerge":" Rebase from remote before merge ","rebaseRemote":"Rebase Remote","recycleWorktrees":" Recycle worktrees ","selectWorktreesDir":"Select worktrees directory","shellCommandToRunInEachNewWorktree":"Shell command to run in each new worktree after creation. No default — unset.","stopsOnWorktrunkErrorsForExplicitOperatorRecovery":" stops on worktrunk errors for explicit operator recovery; ","taskIDEGFN042":"Task ID (e.g., FN-042)","taskTitleEGFixLoginBug":"Task title (e.g., fix-login-bug)","tryAgain":"Try again","useGitDefault":"Use git default","whenEnabledTheMergerFetchesFromTheConfigured":"When enabled, the merger fetches from the configured remote and rebases the task branch onto the latest default-branch tip before merging — catching concurrent pushes from other collaborators or fusion workers. Any conflicts the rebase surfaces flow into the existing smart/AI resolve pipeline. Default: enabled.","whenUnsetOnlyAffectsNewlyCreatedWorktrees":" when unset. Only affects newly-created worktrees. ","whichRemoteToFetchForThePreMerge":" Which remote to fetch for the pre-merge rebase. \\"Use git default\\" falls back to the remote configured for the default branch (typically ","worktreeInitCommand":"Worktree Init Command","worktreeNamingStyle":"Worktree Naming Style","worktrees":"Worktrees","worktreesDirectory":"Worktrees Directory","worktrunk":" worktrunk ","worktrunkBinaryPath":"Worktrunk binary path","worktrunkFailureBehavior":"Worktrunk failure behavior","worktrunkIntegration":"Worktrunk integration","worktreesPickerNote":"Navigate to the folder where Fusion should create task worktrees, then select the current directory.","showWorktreeGroupingHelp":"Off by default. When enabled, WIP and processing columns always group tasks by worktree and show worktree names, including workflow-mode processing columns.","copyFilesHelp":"Optional. Repository-root-relative regular files are copied into fresh or pooled task worktrees before init commands run. Missing files or directories are skipped without exposing contents. Default: empty (no files copied).","namingStyleNotApplicableWhenRecycling":"Naming style is not applicable when recycling worktrees — pooled worktrees retain their existing names","howToNameFreshWorktreeDirectories":"How to name fresh worktree directories. Only applies when recycling is off. Default: random."},"fileBrowser":{"currentDirectory":"Current directory:","projectRoot":"(project root)"},"mcp":{"globalTitle":"Global MCP servers","projectTitle":"Project MCP servers","globalDescription":"Configure MCP servers shared by all projects. Project settings may override or disable these servers by name.","projectDescription":"Configure project-specific MCP servers, overrides, and disabled inherited servers.","enabledHint":"Default: disabled, with no servers configured."},"prompts":{"surfaceExplanation":"Use this section for agent role system prompt templates, role assignments, and global PromptKey segment overrides. Per-workflow step prompts for prompt and gate nodes are edited in the Workflow Editor. No default — unset (built-in role prompts apply until overridden)."},"modelPricing":{"description":"Override per-1M token rates used by Command Center cost estimates. Overrides win over the built-in baseline; unlisted models still use the baseline. No default — unset (no overrides)."},"reset":{"button":"Reset Settings","buttonShort":"Reset","buttonTitle":"Reset settings to their defaults","dialogAriaLabel":"Reset settings","dialogTitle":"Reset Settings","dialogBody":"Choose what to reset to its defaults. This cannot be undone.","resetMenuAction":"Reset this menu ({{section}})","resetAllProjectAction":"Reset all project settings","menuResetSuccess":"{{section}} settings reset to defaults","allProjectResetSuccess":"All project settings reset to defaults"}}`),it=JSON.parse('{"addCustomProvider":"Add custom provider","addMoreProjectsHint":"You can add more projects anytime from the project overview.","advancedProviderSettings":"Advanced provider settings","advancedSettings":"Advanced settings","advancedSetupDetails":"Advanced setup details","aiSetupDescription":"Fusion uses AI models to plan, write, and review code for you. Connect an AI provider below to get started — you can use a hosted service or enter an API key.","allProvidersShown":"All currently available providers are already shown above.","allSet":"All Set!","apiKeyFormatHint":"Format: {{hint}}","apiKeyHint":"Key: {{keyHint}}","apiKeyRemoved":"API key removed","apiKeySaved":"✓ API key saved","apiKeySavedToast":"API key saved","ariaDismissRecommendations":"Dismiss recommendations","ariaSetupRecommendations":"Setup recommendations","authCodeAlreadySubmitted":"That authorization code was already submitted. Waiting for login…","authCodeReceived":"Authorization code received. Finishing login…","authTokenOptional":"Auth token (optional)","back":"← Back","cancelLogin":"Cancel","childProcess":"Child-Process","childProcessDesc":"Isolated execution with crash containment.","childProcessLabel":"Child Process (Isolated)","chooseModel":"Choose Model","claudeCli":{"acpAuthFailed":"The ACP bridge reached a Claude session that isn\'t logged in. Fall back to `claude -p`, or fix authentication and re-test.","acpAuthFailedTitle":"Claude CLI bridge can\'t authenticate","active":"✓ Active","binaryNotFound":"`claude` binary not detected on PATH — install Claude CLI first.","binaryNotFoundPath":"`claude` not found on PATH","connected":"✓ Connected{{version}}","description":"Route AI calls through your locally-installed claude CLI. Uses your existing Claude subscription / quota instead of an API key.","details":"Details","detectedPrompt":"detected{{path}}. Click Enable to route AI calls through it.","disable":"Disable","disabledMessage":"Claude-CLI-routed models are hidden from the model picker.","disabledVerb":"Disabled","disabling":"Disabling…","enable":"Enable","enabledMessage":"Claude-CLI-routed models are now visible in the model picker.","enabledVerb":"Enabled","enabling":"Enabling…","extensionFailed":"Extension load failed: {{reason}}","fixAuthHint":"To fix: run `claude` in a terminal and complete login, then re-test.","name":"Anthropic — via Claude CLI","notConnected":"✗ Not connected","notInstalled":"✗ Not installed","probing":"Probing local CLI…","recheckAuth":"I fixed auth — re-test","test":"Test","testing":"Testing…","useDashP":"Use claude -p","validating":"Enabled. Validating…"},"cloneGitHint":"Fusion will run git clone into the destination directory, then register that cloned folder.","cloneGitRepository":"Clone Git Repository","clonePathHint":"Select or type an absolute destination path. Fusion will clone into this directory. The destination must be empty or absent.","clonePathPlaceholder":"/path/for/new-clone","closeWizard":"Close wizard","compactWarning":"⚠ Setup incomplete — AI and/or GitHub features will be limited.","completeSetup":"Complete these setup items to get the most out of Fusion.","connect":"Connect","connectAiProvider":"Connect AI Provider","connectAiProviderDesc":"Connect an AI provider to enable AI agents for task planning and code generation","connectAnyway":"Connect anyway","connectedProviders":"Connected providers","connectGitHub":"Connect GitHub","connectGitHubAnytime":"No worries if you\'re not ready — connect GitHub anytime from Settings → Authentication.","connectGitHubButton":"Connect GitHub","connectGitHubDesc":"Connect GitHub to import issues and track pull requests","connectOauthOptional":"Connect OAuth (optional)","connectRemoteServer":"Connect remote Fusion server","continueToLogin":"Continue to login","continueWithGhCli":"Continue with gh CLI auth →","continueWithoutGitHub":"Continue without GitHub →","copiedCodeToClipboard":"Copied code to clipboard","copyCode":"Copy code","couldNotReachServer":"Could not reach the server. Check your connection and try again.","createFirstAgent":"Create Agent","createFirstTask":"Create First Task","createNewTask":"Create a New Task","createNewTaskSubtitle":"Describe what you need built; Fusion will spawn temporary task agents automatically","createProject":"Create Project","createTasksAnytimeNote":"You can create tasks anytime from the board, or use","createTasksAnytimeNoteTerminal":"in the terminal.","creating":"Creating...","creatingFirstAgent":"Creating agent...","creatingTask":"Creating task…","cursorCli":{"active":"✓ Active","binaryNotFound":"`cursor-agent` not found on PATH","connected":"Connected{{version}}","description":"Route AI calls through your local Cursor agent runtime.","detectedPrompt":"Detected. Click Enable to route calls through Cursor CLI.","disable":"Disable","disabling":"Disabling…","enable":"Enable","enabling":"Enabling…","notConnected":"✗ Not connected","probing":"Probing local CLI…","providerName":"Cursor — via Cursor CLI","test":"Test","testing":"Testing…"},"defaultModelDescription":"Pick a default model for AI tasks, or leave this blank to choose later. Models vary in speed, capability, and cost.","defaultModelLabel":"Default model","defaultModelOptional":"Default Model (Optional)","describeFirstTask":"Describe your first task","destinationDirectory":"Destination Directory","directoryPath":"Directory Path","disconnect":"Disconnect","dismissWarning":"Dismiss setup warning","enterApiKey":"Enter API key","enterCodeOnGitHub":"Enter this code on GitHub","executionMode":"Execution Mode","failedToCancelLogin":"Failed to cancel login","failedToClearApiKey":"Failed to clear API key","failedToCopyCode":"Failed to copy code — copy it manually from the box above","failedToCreateCustomProvider":"Failed to create custom provider","failedToSaveApiKey":"Failed to save API key","failedToSaveShellConnection":"Failed to save shell connection","failedToSubmitAuthCode":"Failed to submit authorization code","finishSetup":"Finish Setup","firstAgentCreateError":"Failed to create agent","firstAgentCreatedSuccess":"Your project is registered and your first agent is ready.","firstAgentCustomDraft":"Custom agent draft","firstAgentDraftName":"Draft agent","firstAgentContinueWithTemplates":"Continue with templates","firstAgentInterviewLoadError":"AI interview could not load. You can still create an agent from a template or skip this step.","firstAgentInterviewLoading":"Loading AI Interview...","firstAgentIntro":"Agents are optional. Fusion can build tasks without one by starting temporary agents for planning, coding, review, and merge. Create an agent only if you want help coordinating tasks and direction.","firstAgentNoInstructions":"No inline instructions yet","firstAgentPreview":"Preview","firstAgentSkippedHint":"You can create agents later from the Agents view.","firstAgentTemplates":"Templates","firstAgentTitle":"Create your first agent","firstTaskDescription":"Create your first task to start the board and launch AI execution.","firstTaskPlaceholder":"Example: Build a login page with email and password","firstTaskReady":"Your first task is ready!","getApiKeyLink":"Get your API key →","getStarted":"Get Started","githubCliAlreadyAuth":"GitHub CLI is already authenticated — issue imports and pull request tracking work right now. You\'re all set; no further action needed.","connectGitHubOauth":"Connect GitHub OAuth","githubCliAuthBody":"GitHub CLI is installed but not authenticated on the Fusion host. Run this command in the environment where Fusion is running, then return here and continue.","githubCliAuthTitle":"Authenticate GitHub CLI","githubCliInstallBody":"Fusion could not find `gh` on the host running Fusion. Install GitHub CLI there to import issues and track pull requests with CLI authentication.","githubCliInstallLink":"Open GitHub CLI releases","githubCliInstallShowInstructions":"Show install instructions","githubCliInstallLinux":"Linux: install `gh` with your distribution package manager or the packages from cli.github.com.","githubCliInstallMac":"macOS: `brew install gh` or download the installer from GitHub CLI releases.","githubCliInstallTitle":"Install GitHub CLI","githubCliInstallWindows":"Windows: install GitHub CLI with WinGet, Chocolatey, or the GitHub CLI installer, then restart the Fusion host shell or service.","githubOauthUnavailable":"Dashboard GitHub OAuth is not configured on this Fusion host. You can still skip GitHub below, or use the GitHub CLI setup guidance above when available.","githubCliAuthNote":"GitHub CLI is already authenticated, so imports and PR tracking work now. OAuth from the dashboard is optional and only controls dashboard-managed connect/disconnect.","githubCliAuthSuccess":"GitHub CLI is authenticated. Imports and pull request tracking are available. Connect OAuth in Settings → Authentication if you want dashboard-managed sign-in controls.","githubConnected":"GitHub is connected — issue imports and pull request tracking are available. You\'re all set; no further action needed.","githubConnectionDescription":"Connecting GitHub unlocks issue imports and pull request tracking. You can skip this — task creation works without it.","githubConnectionFailed":"Connection failed or timed out.","githubOauthConnected":"GitHub OAuth is connected. You can import issues and track pull requests.","githubOauthNotConnected":"GitHub OAuth isn\'t connected yet. You can set it up in Settings → Authentication, or continue now and connect later.","githubProvider":"GitHub","githubSkipped":"GitHub was skipped. You can connect anytime from Settings → Authentication.","goBackToStep":"Go back to {{label}}","goToDashboard":"Go to Dashboard","howDoesLoginWork":"How does login work?","howDoesLoginWorkBody":"Clicking Login opens the provider\'s website in a new tab where you sign in. Once you authorize Fusion, this page will automatically detect the connection. Your credentials are never stored in Fusion.","howDoIChooseModel":"How do I choose a model?","howDoIChooseModelBody":"Models vary in speed, capability, and cost. A good default is usually the latest model from your connected provider. You can always change this later in Settings.","importFromGitHub":"Import from GitHub","importFromGitHubSubtitle":"Turn GitHub issues into tasks you can track here","inProcess":"In-Process","inProcessDesc":"Lower overhead, shared memory. Best for most projects.","inProcessLabel":"In-Process (Default)","isolationMode":"Isolation Mode","keySavedInline":"✓ Key saved","loadingProviders":"Loading providers…","localNode":"Local node","loggedOut":"Logged out","loggingOut":"Logging out…","login":"Login","loginAlreadyInProgress":"Login already in progress. Cancel it to retry.","loginCancelled":"Login cancelled","loginDidNotComplete":"Login did not complete. Please try again.","loginFailed":"Login failed","loginFailedInline":"Login failed. Please try again.","loginSuccessful":"Login successful","loginTimedOut":"Login timed out. Please try again.","loginTimedOutInline":"Login timed out. Please try again.","logout":"Logout","logoutFailed":"Logout failed","manualPastebackTitle":"Heads up — manual paste-back required","nameHint":"Use letters, numbers, hyphens, and underscores only","namePlaceholder":"my-project","needHelp":"Need help?","next":"Next →","noAiProvider":"No AI provider connected","noAiProviderBody":"AI features like task planning and code generation won\'t be available until you connect one. You can set this up later in Settings.","noAiProviderConnected":"No AI provider connected","noAiProviderDesc":"AI agents won\'t be able to work on tasks until you connect a provider. Set one up in Settings → AI Setup.","noGithub":"GitHub not connected","noGithubDesc":"GitHub imports stay optional. If GitHub remains disconnected for one day, connect it from Settings → Authentication to import issues and PRs.","noModelsAvailable":"No models available yet. Connect a provider above to see model options.","noProvidersConfigured":"No AI providers are configured. Please check your Fusion configuration.","noProvidersConnectedYet":"No providers connected yet","noQuickStartProviders":"No quick-start providers are available in this environment.","onlyNeedOneProvider":"You only need one provider to get started.","openGitHub":"Open GitHub","openManager":"Open manager","optionalBadge":"Optional","pasteRedirectUrlFirst":"Paste the full redirect URL or authorization code first.","pathHint":"Enter the absolute path to your project directory","pathPlaceholder":"/path/to/your/project","pleaseEnterTaskDescription":"Please enter a task description.","profileName":"Profile name","projectDirectory":"Project Directory","projectMustBeSelected":"A project must be selected before you can create tasks or import from GitHub.","projectMustBeSelectedForAgent":"Set up a project before creating an agent. You can skip this and create tasks without one.","projectName":"Project Name","projectNameHintClone":"By default this follows the destination folder name unless you edit it.","projectNameHintExisting":"By default this follows the selected directory name unless you edit it.","projectNamePlaceholder":"my-project","projectPathHint":"Select or type the absolute path to an existing git repository or workspace root.","projectPathPlaceholder":"/path/to/your/project","projectRegisteredSuccess":"Your project has been registered successfully.","projectRequired":"A project is required before first-task actions are available.","projectSelected":"Project selected — task creation and imports are available.","projectStepContext":"Step 3 of 5 — Project · Fusion setup","projectSetupDescription":"Choose your first project before creating or importing tasks. You can register an existing local directory or clone a GitHub repository URL through the setup wizard.","providersConnectedSummary":"✓ {{connected}} of {{total}} provider(s) connected","providersSkippedSummary_one_one":"{{count}} provider skipped","providersSkippedSummary_one_other":"{{count}} provider skipped","providersSkippedSummary_other_one":"{{count}} providers skipped","providersSkippedSummary_other_other":"{{count}} providers skipped","quickStartAllConnected":"All quick-start providers are already connected.","quickStartProviders":"Quick start providers","readinessAiProviderConnected":"{{name}} connected — AI agents can work on tasks","readinessAiProviderLabel":"AI Provider","readinessAiProviderMissing":"Connect a provider in Settings → AI Setup","readinessAiProviderSkipped":"AI agents won\'t be available until you connect a provider","readinessAllConnected":"✓ All integrations connected","readinessDefaultModelLabel":"Default Model","readinessGitHubConnected":"Issues and PRs can be imported","readinessGitHubLabel":"GitHub","readinessGitHubMissing":"Connect to import issues as tasks","readinessGitHubSkipped":"You can connect anytime from Settings","readinessGitHubViaCli":"Connected via GitHub CLI — imports and PR tracking are available","readinessProjectConnected":"Project selected — task creation and imports are available","readinessProjectLabel":"Project","readinessProjectMissing":"Register a project to enable task creation and imports","readinessSummaryHeader":"Setup Summary","recommended":"Recommended","recommendedNextSteps":"Recommended Next Steps","registering":"Registering...","registerProject":"Register Project","remoteServerNote":"Your native shell needs an active remote profile before dashboard handoff can complete.","remoteServerProfileSaved":"Remote server profile saved","removeKey":"Remove Key","removingKey":"Removing…","repositoryUrl":"Repository URL","repositoryUrlPlaceholder":"https://github.com/owner/repo.git","requiresGitHubConnection":"Requires GitHub connection","researchRunsNote":"Research runs require provider credentials and an enabled Research View. After onboarding, verify these in Settings → Authentication and Settings → Experimental Features.","retry":"Retry","reviewStep":"Review {{label}}","runtimeNode":"Runtime Node","runtimeNodeHint":"A runtime node is the machine where this project\'s tasks run. \\"Local node\\" is this computer; pick a remote node to run tasks elsewhere.","savedProfileButFailedToActivate":"Saved profile but failed to activate it","saveKey":"Save","saveRemoteServer":"Save remote server","saving":"Saving…","savingKey":"Saving…","savingRemoteServer":"Saving…","selectDefaultModel":"Select a default model…","selectDefaultModelDesc":"Choose a default AI model for task execution","selectedAgentTemplate":"{{name}} selected","selectedModel":"Selected:","serverUrl":"Server URL","serverUrlPlaceholder":"https://your-fusion-host","setUpAi":"Set Up AI","setupComplete":"Setup complete! Head to the board to create your first task, or explore the dashboard to see what\'s available.","setupMode":"Setup Mode","setUpProject":"Set Up Project","setupWizardHint":"In the setup wizard, register an existing git repository, initialize a selected folder, or clone a remote repository into an empty destination.","skip":"Skip","skipFirstAgent":"Skip for now","skipForNow":"Skip for now","skipGitHub":"Skip GitHub →","skipOnboardingAriaLabel":"Skip onboarding","skipProviderHint":"Skip this step if you\'d like — you can always add providers later from Settings.","skipSetup":"Skip setup →","statusConnected":"✓ Connected","statusConnecting":"⏳ Connecting…","statusConnectionFailed":"✗ Connection failed","statusNotConnected":"Not connected","statusRetry":"Retry","statusSkipped":"Skipped","stepAgent":"Agent","stepAiSetup":"AI Setup","stepFirstTask":"First Task","stepGithub":"GitHub","stepProject":"Project","submitCode":"Submit code","submittingCode":"Submitting…","taskCreated":"Task created","taskCreatedHint":"Your task has been created and will appear on the board.","taskCreationFailed":"Something went wrong creating your task. Please try again.","taskErrorHint":"Your text has been preserved — fix the issue and try again.","titleAiSetup":"Set Up AI","titleAllSet":"All Set!","titleConnectGitHub":"Connect GitHub","titleCreateFirstAgent":"Create Your First Agent","titleCreateFirstTask":"Create Your First Task","titleSetUpProject":"Set Up Your Project","useExistingDirectory":"Use Existing Directory","viewTask":"View Task","waitingForGitHubAuth":"Waiting for GitHub authorization…","waitingForLogin":"Waiting for login…","waitingForOauthLogin":"Waiting for OAuth login…","welcomeToFusion":"Welcome to Fusion","whatAreAiProviders":"What are AI providers?","whatAreAiProvidersBody":"AI providers like OpenAI and Anthropic power the AI capabilities in Fusion. Connecting a provider lets Fusion\'s agents use AI models to help with your tasks.","whatDoesGitHubIntegrationDo":"What does GitHub integration do?","whatDoesGitHubIntegrationDoBody":"Without GitHub, you can still create and manage tasks manually. GitHub integration adds the ability to import issues as tasks, track pull request status alongside your work, and automatically link commits to tasks. Connect anytime from Settings → Authentication.","whatDoesProjectSetupDo":"What does project setup do?","whatDoesProjectSetupDoBody":"Project setup registers a workspace so Fusion knows where to read files, run commands, and track task changes. You can use an existing git repository, initialize git in a selected local folder, or clone a remote repository into an empty destination.","whatHappensWhenCreateTask":"What happens when I create a task?","whatHappensWhenCreateTaskBody":"Describe the work you want done. You can create tasks without an agent: Fusion starts temporary agents to plan, code, review, and merge. Track everything on the board.","whatIsApiKey":"What is an API key?","whatIsApiKeyBody":"An API key is a secret token that authenticates Fusion with the provider. You can find your key in the provider\'s dashboard under API settings. Keys are stored securely on your machine.","withGitHub1":"Import issues as tasks","withGitHub2":"Sync pull request status","withGitHub3":"Link code changes to tasks","withGitHubHeading":"With GitHub (after connecting)","withoutGitHub1":"Create tasks manually","withoutGitHub2":"Describe work for AI agents","withoutGitHub3":"Track progress on the board","withoutGitHubHeading":"Without GitHub (available now)","brandLogo":"Fusion logo","brandName":"Fusion","setupCompleteTitle":"Setup Complete!","cloneAndRegisterProject":"Clone and Register Project","cloneGitRepositoryHint":"Clone a remote repository into an empty or absent destination folder.","initializeAndRegisterProject":"Initialize and Register Project","initializeNewRepository":"Initialize New Repository","initializeNewRepositoryHint":"Register a selected non-git folder and let Fusion run git init on the server.","initPathHint":"Select or type an absolute path to an empty or non-git folder. Fusion will run git init during registration.","initPathPlaceholder":"/path/to/new-project","newRepositoryDirectory":"New Repository Directory","projectNameHintInit":"By default this follows the folder name Fusion will initialize unless you edit it.","projectSetupModeAriaLabel":"Project setup mode","repositorySetupDescription":"Choose how Fusion should prepare the project directory before registration.","repositorySetupTitle":"Repository setup","useExistingDirectoryHint":"Register a folder that is already a git repository or workspace root.","gitPrerequisiteInstalled":"Git is installed on the Fusion host.","gitPrerequisiteInstalledVersion":"Git is installed on the Fusion host ({{version}}).","gitPrerequisiteInstallLink":"Open Git install downloads","gitPrerequisiteLinux":"Linux: install with your package manager, for example `sudo apt install git`, `sudo dnf install git`, or `sudo pacman -S git`.","gitPrerequisiteMac":"macOS: install Xcode Command Line Tools with `xcode-select --install`, Homebrew with `brew install git`, or the Git installer.","gitPrerequisiteMissingBody":"Fusion could not find `git` on the server host running Fusion. Install Git there before cloning repositories, initializing projects, or registering Git-backed workspaces.","gitPrerequisiteMissingTitle":"Install Git before project setup","gitPrerequisiteReadyTitle":"Git prerequisite ready","gitPrerequisiteWindows":"Windows: install Git for Windows and restart the Fusion host shell or service."}'),nt={activePill:"Active",addConnection:"Add connection",addServer:"Add server",authTokenLabel:"Auth token (optional)",connectionManager:"Connection Manager",connectionManagerLabel:"Connection Manager",defaultProfileName:"Remote Server",deleteConfirmLabel:"Delete server confirmation",deleteConfirmMessage:"Delete {{name}}? This removes the saved profile.",deleteProfile:"Delete {{name}} at {{url}}",editProfile:"Edit {{name}} at {{url}}",modeLocal:"Local",modeRemote:"Remote",nameLabel:"Name",noServersSaved:"No remote servers saved yet.",scanQr:"Scan QR",serverUrlLabel:"Server URL",serverUrlProtocolError:"Server URL must use http or https",use:"Use",useProfile:"Use {{name}} at {{url}}",localServerTitle:"Local Server",localServerDescription:"Use the embedded Fusion server on this device.",localServerActive:"Current",addRemoteServer:"Add remote server",editRemoteServer:"Edit remote server",remoteServersTitle:"Remote servers",remoteServersDescription:"Save Fusion servers you want this desktop app to open later.",noRemoteServersDesktop:"No remote servers saved yet. Add one only when you want this desktop app to open another Fusion server.",useLocalServer:"Use Local Server",currentLocalServer:"Current Local Server"},st={addSkill:"Add a skill…",allSkillsSelected:"All skills selected",catalogSection:"Skills Catalog",catalogUnavailable:"Catalog is temporarily unavailable. Please try again later.",closeDetail:"Close skill detail",closeView:"Close skills view",disabled:"Skill disabled",disableSkill:"Disable {{name}}",discovered:"discovered",discoveredCount_one:"{{count}} discovered skills",discoveredCount_other:"{{count}} discovered skills",discoveredSection:"Discovered Skills",enabled:"Skill enabled",enableSkill:"Enable {{name}}",filesLabel:"Files",install:"Install",installError:"Failed to install skill",installFailed:"Failed to install {{name}}: {{message}}",installing:"Installing…",installsCount:"{{count}} installs",installSkill:"Install {{name}}",installSuccess:"Installed {{name}}",loadCatalogError:"Failed to load catalog",loadContentError:"Failed to load skill content",loadDiscoveredError:"Failed to load discovered skills",loading:"Loading skills…",loadingCatalog:"Loading catalog...",loadingContent:"Loading skill content...",loadingDiscovered:"Loading discovered skills...",noCatalogAvailable:"No skills available in the catalog.",noDiscovered:"No skills discovered in this project.",noMatchingDiscovered:"No discovered skills match your search.",noMatchingSearch:"No skills match your search.",noSkillMd:"(No SKILL.md found)",noSkillsDiscovered:"No skills discovered",removeSkill:"Remove {{name}}",searchLabel:"Search skills",searchPlaceholder:"Search skills...",title:"Skills",toggleError:"Failed to toggle skill",toggleFailed:"Failed to toggle skill: {{message}}",viewDetails:"View details for {{name}}"},rt={edit:"Edit",empty:"(no specification)",feedbackPlaceholder:"e.g., 'Add more details about error handling', 'Split this into smaller steps', 'Include tests for the API endpoints'...",keyboardHint:"Press <ctrl>Ctrl</ctrl>+<enter>Enter</enter> (or <cmd>Cmd</cmd>+<enter2>Enter</enter2>) to save",placeholder:"Enter task specification in Markdown...",requesting:"Requesting…",requestRevision:"Request AI Revision",revisionHelp:"Provide feedback for the AI to improve this specification. The task will move to planning for replanning.",revisionTitle:"Ask AI to Revise",saving:"Saving…",view:"View"},lt={copyReference:"Copy stash reference"},dt={applied:"Applied",apply:"Apply",applyFailed:"Apply failed",changedPathsLabel:"Changed paths",classificationLabel:"Classification",closeDiffDialog:"Close diff dialog",diffDialogLabel:"Diff for {{sha}}",diffHeader:"Diff for {{sha}}",diffTruncated:"Diff output truncated.",drop:"Drop",dropConfirm:"Drop",dropMessage:"This removes the stash entry permanently.",dropTitle:"Drop orphaned stash?",failedToLoadDiff:"Failed to load diff",failedToLoadOrphans:"Failed to load orphans",fileCount_one:"{{count}} files",fileCount_other:"{{count}} files",inspectDiff:"Inspect diff",loadingDiff:"Loading diff…",noDiffOutput:"No diff output available.",noOrphans:"No orphaned merger autostashes found.",orphanCount_one:"{{count}} orphans",orphanCount_other:"{{count}} orphans",shaLabel:"SHA",title:"Stash Recovery",unknownSource:"Unknown source"},ct={aiPrompt:"AI Prompt",aiPromptStepTitle:"AI Prompt step",command:"Command",commandStepTitle:"Command step",createTask:"Create Task",createTaskStepTitle:"Create Task step"},ut={addSubtask:"Add subtask",baseBranchLabel:"Merge target / base branch (optional)",baseBranchPlaceholder:"main",branchAssignmentPerTask:"Per-task branches derived from planning branch",branchAssignmentShared:"Shared merge target — subtasks run on their own branches",branchModeAutoNew:"Create auto-named branch per task",branchModeCustomNew:"Create custom new branch",branchModeExisting:"Use existing branch",branchModeProjectDefault:"Use project/default branch",branchNameLabel:"Branch name",branchStrategyLabel:"Branch strategy",createTasks:"Create Tasks",creating:"Creating...",dependenciesLabel:"Dependencies",dependencyCycleError:"Dependencies contain a cycle. Remove circular references before creating tasks.",descriptionLabel:"Description",dragToReorder:"Drag to reorder",errorCreateTasks:"Failed to create tasks",errorRefreshSession:"Failed to refresh subtask session.",errorResumeSession:"Failed to resume session",errorRetryFailed:"Retry failed. Please try again.",errorSessionEncountered:"Session encountered an error",errorSessionFailed:"Session failed while contacting the AI.",errorSessionNoResult:"Subtask session is complete but has no result.",errorStartBreakdown:"Failed to start subtask breakdown",generatingSubtasks:"AI is generating subtasks...",groupedOnSharedBranch:"Grouped on shared branch",hideThinking:"Hide thinking",keepSessionMessage:"Close this modal and keep the subtask session available from Background Tasks? Edited fields that have not been saved to the session may be reset when you resume.",keepSessionTitle:"Keep subtask session available?",modalTitle:"Subtask Breakdown",moveDown:"Move down",moveSubtaskDownAriaLabel:"Move subtask down",moveSubtaskUpAriaLabel:"Move subtask up",moveUp:"Move up",noDepsFirstSubtask:"First subtask cannot have dependencies.",noPreviousSubtasks:"No previous subtasks available.",openGroupModal:"Open group modal",planningBranchModeLabel:"Planning branch mode",preparingBreakdown:"Preparing to break this task into subtasks.",progressHint:"Fusion will keep working while the AI prepares subtasks.",reconnecting:"Reconnecting…",remove:"Remove",retry:"Retry",retrying:"Retrying...",reviewSubtasksHeading:"Review your subtasks",reviewSubtasksHint:"Edit titles, descriptions, sizes, and dependencies before creating all tasks at once.",sendToBackgroundAriaLabel:"Send to background",sendToBackgroundTitle:"Send to background",sessionActiveAnotherTab:"Session is active in another tab.",sessionActiveAnotherTabLive:"This session is active in another tab (live heartbeat)",sessionActiveAnotherTabTakeover:"This session is active in another tab",showThinking:"Show thinking",sizeLabel:"Size",startingBreakdown:"Starting subtask breakdown...",takeControl:"Take Control",takingControl:"Taking control...",titleLabel:"Title",untitled:"Untitled",waitingForThinking:"Waiting for AI progress updates..."},pt={entryCount_one:"{{count}} entry",entryCount_other:"{{count}} entries",filterAll:"All",filterAllNodes:"All Nodes",filterDirection:"Direction:",filterNode:"Node:",filterPull:"Pull",filterPush:"Push",loading:"Loading...",noHistory:"No sync history available",resultConflict:"Conflict",resultError:"Error",resultSuccess:"Success"},gt={agentActive:"active",agentError:"error",agentIdle:"idle",agentRunning:"running",autoKillLabel:"Auto-kill vitest on memory pressure",autoRefresh:"Auto-refresh · 5s",confirmKill:"Confirm Kill?",cpuFirstSamplePending:"First sample pending",cpuProcessUsage:"process usage",cpuSampling:"Sampling…",errorKillVitest:"Failed to kill vitest processes",errorLoadStats:"Failed to load system stats",errorLoadVitestSettings:"Failed to load vitest settings",errorSaveVitestSettings:"Failed to save vitest settings",footerRefreshFailed:"Latest refresh failed: {{error}}",killedProcesses_one:"Killed {{count}} processes",killedProcesses_other:"Killed {{count}} processes",killThresholdInputAriaLabel:"Kill threshold (%)",killThresholdLabel:"Kill threshold (%)",killThresholdSliderAriaLabel:"Kill threshold slider (%)",killVitest:"Kill Vitest Processes",lastAutoKill:"Last auto-kill: {{time}}",localNodeFallback:"Local node",nodeSelectorAriaLabel:"Select system stats node",nodeSelectorLabel:"Node",nodeStatusSuffix:"{{status}}",notYet:"Not yet",refreshAriaLabel:"Refresh system stats",refreshTitle:"Refresh",rowAppCpu:"App CPU",rowArrayBuffers:"Array Buffers",rowCores:"Cores",rowExternal:"External",rowHeapLimit:"Heap Limit",rowHeapLimitDetail:"V8 limit",rowHeapUsed:"Heap Used",rowHeapUsedDetail:"of {{total}}",rowLoadAvg:"Load Avg",rowMemoryFree:"Memory Free",rowMemoryUsed:"Memory Used",rowNode:"Node",rowPid:"PID",rowPlatform:"Platform",rowRss:"RSS",sectionAgents:"Agents",sectionAgentsAriaLabel:"Agent stats",sectionTasks:"Tasks",sectionTasksAriaLabel:"Task stats",sectionVitest:"Vitest Controls",thisNodeSuffix:"this node",updatedAt:"Updated {{time}}",viewingNode:"Viewing {{node}}",vitestProcesses:"Vitest Processes",waitingFirstUpdate:"Waiting for first update"},mt={attributionFailed:"Landed-files set may include foreign commits (attribution unavailable).",disableWordWrap:"Disable word wrap",enableWordWrap:"Enable word wrap",error:"Error loading changes: {{error}}",expandDiff:"Expand to full-screen diff view",expandDiffView:"Expand diff view",filesChangedHeading_one:"Files Changed ({{count}})",filesChangedHeading_other:"Files Changed ({{count}})",loadError:"Failed to load task changes",loading:"Loading changes...",mergedAt:"Merged {{date}}",nextFile:"Next file",noExecutionModifications:"The agent did not modify any files during execution.",noFilesModified:"No files modified.",noMergeCommit:"No merge commit was recorded for this task.",noMergeFileChanges:"No file changes were recorded in the merge commit.",noOpShortCircuit:"Verified short-circuit — work was already on main (rebase walked foreign commits).",noWorktree:"No worktree available for this task.",noWorktreeHint:"Changes will be shown once the task is in progress.",previousFile:"Previous file",summaryHint:"Final commit summary: {{files}} file{{plural}} changed, +{{additions}} additions, -{{deletions}} deletions. Counts only the recorded merge/squash commit, not the full task lineage.",toggleWordWrap:"Toggle word wrap",unavailable:"Detailed file changes unavailable."},ht=JSON.parse(`{"actions":{"menuBtn":"Actions"},"agent":{"assignBtn":"Assign Agent","assignedUpdated":"Assigned agent updated","assignFailed":"Failed to assign agent: {{error}}","label":"Agent","loadFailed":"Failed to load agents: {{error}}","loadingAgents":"Loading agents...","noAgents":"No agents available","unassigned":"Agent unassigned","unassignFailed":"Failed to unassign agent: {{error}}","unassignTitle":"Unassign agent"},"agentLink":"agent {{id}}","ageStaleness":{"active":"Active","age":"Age","column":"Column","critical":"Critical","observed":"Observed","paused":"Paused","title":"Task age staleness","warning":"Warning"},"attachments":{"attachBtn":"Attach Screenshot","attached":"Screenshot attached","deleted":"Attachment deleted","deleteTitle":"Delete attachment","heading":"Attachments","none":"(no attachments)","uploading":"Uploading…"},"blockedByLink":"blocked by {{id}}","blocking":{"heading":"Blocking","none":"(no downstream tasks blocked)","stale":"(stale)","staleTitle":"Stale blockedBy edge: self-healing clearStaleBlockedBy should clear this automatically"},"branchBinding":{"candidates":"Candidates:","copy":"This in-review task isn't currently attached to a fusion branch. If a live fusion branch still exists for it, you can reattach it here.","headline":"Branch needs reattachment","reattachBtn":"Reattach branch","reattached":"Reattached branch for {{id}} ({{branch}})","reattachedResult":"Reattached {{branch}} ({{count}} commits ahead of {{base}}).","reattachedResult_one":"Reattached {{branch}} ({{count}} commits ahead of {{base}}).","reattachedResult_other":"Reattached {{branch}} ({{count}} commits ahead of {{base}}).","reattaching":"Reattaching…","skipped":"Branch reattachment skipped for {{id}}: {{reason}}","skippedResult":"Reattachment skipped: {{reason}}"},"bypassReview":{"btn":"Bypass failed review","promptMessage":"Reason for bypassing the failed pre-merge review step (required, audit-logged):","success":"Bypassed failed review lane for {{id}}"},"cacheBreakdown":"(read {{read}} / write {{write}} / input {{input}})","cacheHitRatio":"Cache hit ratio:","cacheRead":"Cache read","cacheWrite":"Cache write","checkoutLink":"checkout {{id}}","delete":{"actionClosed":"closed","actionDeleted":"deleted","actionLeft":"left","allowRecreation":"Allow re-creation later (operator unlock)","allowRecreationDesc":"Lets agents recreate this task ID without --force-resurrect. Leave unchecked to keep this task tombstoned.","archivedAfterUnlink":"Archived {{id}} after unlinking lineage references","archiveInstead":"Archive Instead","archiveUnlinkPrompt":"Archive anyway by unlinking these references first?","ariaLabel":"Delete task","btn":"Delete","closeIssue":"Close Issue","confirm":"Delete","deletedAfterRemovingDeps":"Deleted {{id}} after removing dependency references","deletedAfterUnlinkLineage":"Deleted {{id}} after unlinking lineage references","deletedToast":"Deleted {{id}}{{suffix}}","deleteIssue":"Delete Issue","deleteLinkedIssueMessage":"Delete {{issueRef}} on GitHub, or leave it unchanged?","deleteLinkedIssueTitle":"Delete Linked GitHub Issue","deleteUnlinkDepsPrompt":"Delete anyway by removing these dependency references first?","deleteUnlinkLineagePrompt":"Delete anyway by unlinking these references first?","forceDeleteTitle":"Force Delete Task","issueSuffix":"and {{action}} issue {{ref}}","leaveUnchanged":"Leave Unchanged","linkedIssueMessage":"Choose what to do with {{issueRef}} when deleting {{id}}.\\n\\nClose the issue?","linkedIssueTitle":"Linked GitHub Issue","message":"Delete {{id}}?","moreOptions":"More Options","title":"Delete Task"},"deps":{"addBtn":"Add Dependency","clearBlockerTitle":"Clear overlap blocker {{id}}","clearBtn":"Clear","clickToView":"Click to view {{id}}","heading":"Dependencies","loadFailed":"Failed to load dependency {{id}}","noAvailableTasks":"No available tasks","none":"(no dependencies)","overlapBlocker":"File scope overlap blocker:","removeTitle":"Remove dependency {{id}}","searchPlaceholder":"Search tasks…","stale":"(stale)"},"description":{"showLess":"Show less","showMore":"Show more"},"duplicate":{"btn":"Duplicate","message":"Duplicate {{id}}? This will create a new task in Triage with the same description and prompt.","success":"Duplicated {{id}} → {{newId}}","title":"Duplicate Task"},"edit":{"autosaveHint":"Changes autosave as you edit","autosaving":"Autosaving…","nodeOverrideLocked":"Execution node override is locked while a task is active/in progress.","saved":"Saved","saveFailed":"Save failed","saving":"Saving…","sourceExternalIdPlaceholder":"Issue identifier","sourceIssueHint":"Leave all fields empty to clear source issue metadata.","sourceIssueIdentifierNumeric":"Source issue identifier must be numeric for new metadata","sourceIssueLabel":"Source Issue","sourceIssueRequiredFields":"Source issue provider, repository, and issue identifier are required","sourceProviderPlaceholder":"Provider (e.g. github)","sourceRepositoryPlaceholder":"Repository (e.g. owner/repo)","sourceUrlPlaceholder":"Issue URL"},"error":{"taskFailed":"Task Failed"},"executionAndTokenStats":"Execution & Token Stats","executionDetails":"Execution Details","executionMode":{"ariaLabel":"Execution mode: {{mode}}","fast":"Fast","replanMessage":"Changing execution mode for this task will move it back to Planning so Fusion can rebuild the plan for {{mode}} mode.","replanTitle":"Change execution mode and replan?","replanning":"Execution mode updated to {{mode}} — {{id}} returned to Planning for replanning","standard":"Standard","updated":"Execution mode updated to {{mode}}"},"executionModeLabel":"Execution mode","executionModeFast":"Fast","executionModeStandard":"Standard","executionStatsAria":"Task execution statistics","executionTiming":"Execution Timing","executionTimingMetricsAria":"Execution timing metrics","firstUsed":"First used","gitlabTracking":{"collapse":"Collapse GitLab tracking details","expand":"Expand GitLab tracking details","instance":"Instance","item":"Item","itemUnlinked":"GitLab item unlinked","kind":"Kind","kindGroupIssue":"Group issue","kindMergeRequest":"Merge request","kindProjectIssue":"Project issue","label":"GitLab tracking","lastSynced":"Last synced","namespace":"Namespace","openAriaLabel":"Open linked GitLab item","openBtn":"Open in GitLab","stale":"Stale","staleUnknown":"Sync data is stale","state":"State","stateUnknown":"unknown","statusAriaLabel":"GitLab tracking status","statusLinked":"Linked","statusStale":"Stale","statusUnlinked":"Unlinked","unlinkBtn":"Unlink GitLab item","unlinkConfirm":"Unlink","unlinkMessage":"This removes the local GitLab tracking link. The GitLab issue or merge request itself will not be modified.","unlinkTitle":"Unlink GitLab item?","unlinked":"No linked GitLab item"},"githubTracking":{"addTitleBeforeCreating":"Add a title before creating a tracking issue","checking":"Checking tracking status","collapse":"Collapse GitHub tracking details","createIssueBtn":"Create tracking issue","createIssueDisabledTitle":"Add a title or description so a tracking issue can be created.","createIssueHelper":"Tracking issue will be created once this task has a title or description to summarize.","disabled":"Tracking is currently disabled","enableAriaLabel":"Enable GitHub tracking","enableBtn":"Enable","enableCheckboxLabel":"Enable GitHub tracking","enabling":"Enabling GitHub tracking…","enablingAriaLabel":"Enabling GitHub tracking","expand":"Expand GitHub tracking details","issue":"Issue","issueCreationRequested":"Requested GitHub tracking issue creation","issueUnlinked":"GitHub issue unlinked","label":"GitHub tracking","loading":"Loading GitHub tracking status…","loadingAriaLabel":"Loading GitHub tracking status","notYetCreated":"Issue not yet created","repoOverrideFormat":"Repository override must be in owner/repo format","state":"State","statusAriaLabel":"GitHub tracking status","statusDisabled":"Disabled","statusEnabled":"Enabled","statusLinked":"Linked","statusLoading":"Loading","unlinkBtn":"Unlink GitHub issue","unlinkConfirm":"Unlink","unlinkMessage":"This stops Fusion from syncing with the linked GitHub issue. The issue itself will not be modified.","unlinkTitle":"Unlink GitHub issue?"},"hasSession":"has session","header":{"back":"Back","backToList":"Back to task list","editTask":"Edit task"},"inputTokens":"Input","lastUsed":"Last used","loadingTokenStats":"Loading token statistics…","logs":{"activity":"Activity","activityHeading":"Activity","agentLog":"Agent Log","loadingActivity":"Loading activity…","noActivity":"(no activity)","truncated_one":"Showing the most recent {{count}} activity entries.","truncated_other":"Showing the most recent {{count}} activity entries."},"longestTimingEvent":"Longest timing event","longestWorkflowStep":"Longest workflow step","merge":{"closed":"Closed {{id}} ({{reason}})","merged":"Merged {{id}} (branch: {{branch}})","merging":"Merging {{id}}…","message":"Merge {{id}} into the current branch?","noBranchToMerge":"no branch to merge","title":"Merge Task"},"move":{"backToInProgress":"Back to In Progress","cancelMove":"Cancel Move","keepProgress":"Keep Progress","movedTo":"Moved to {{column}}","moveTo":"Move to {{column}}","preserveProgressMessage":"This task has completed steps. Keep progress before moving?","preserveProgressTitle":"Preserve Progress?","resetProgress":"Reset Progress","resetProgressMessage":"Reset all step progress before moving this task?","resetProgressTitle":"Reset Progress?"},"nearDuplicate":{"actions":"Choose Archive to move this task to archived, or Keep to continue with this task.","archiveBtn":"Archive","archiveConfirm":"Archive","archived":"Archived {{id}}","archiveMessage":"Archive {{id}} as a duplicate of {{duplicateOf}}?","archiveTitle":"Archive near-duplicate task","copy":"This task appears to be a near-duplicate of","headline":"Potential duplicate detected","keepBtn":"Keep","kept":"Kept {{id}} and dismissed duplicate warning"},"nextRecoveryAt":"Next recovery at {{time}}","no":"No","noCommits":{"disabled":"No-commits expectation disabled","enabled":"No-commits expectation enabled","hint":"Allows the task to complete without producing git commits. Use for evaluation, verification, or audit tasks where the deliverable is the recorded decision.","label":"No commits expected (decision-only task)"},"noRuntimeLinks":"No runtime links","noScheduledRecovery":"No scheduled recovery","noSteps":"No steps","noTimedEvents":"No timed events recorded yet.","noTokenUsage":"No token usage recorded for this task yet.","notSet":"Not set","noWorkflowStepTimings":"No completed workflow step timings yet.","outputTokens":"Output","pause":{"pauseBtn":"Pause","paused":"Paused {{id}}","pausedByAgent":"Paused by agent","unpauseBtn":"Unpause","unpaused":"Unpaused {{id}}","worktrunkFailed":"Worktrunk operation failed"},"paused":"Paused","plan":{"approveBtn":"Approve Plan","approved":"Plan approved — {{id}} moved to Todo","rebuildMessage":"Rebuild the plan for this task? The task will move to planning for replanning.","rebuildTitle":"Rebuild Plan","rejectBtn":"Reject Plan","rejected":"Plan rejected — {{id}} returned to Planning for replanning","rejectMessage":"Reject this plan? The specification will be discarded and regenerated.","rejectTitle":"Reject Plan","replanning":"Replanning {{id}}…"},"pr":{"awaitingChecks":"Awaiting PR checks","checkPrStatus":"Check PR Status","creatingPr":"Creating PR…","finishAndClose":"Finish & Close","mergeAndClose":"Merge & Close","mergingFixes":"Merging fixes…","mergingPr":"Merging PR…","startPrReview":"Start PR Review","statusRefreshed":"PR status refreshed","label":"PR"},"priority":{"ariaLabel":"Task priority","label":"Priority:","updated":"Priority updated to {{priority}}"},"progress":{"heading":"Progress","noSteps":"(no steps defined)","stepCount_one":"{{count}}/{{total}} step","stepCount_other":"{{count}}/{{total}} steps"},"provenance":{"createdBy":"Created by","createdVia":"Created via","parentTaskOf":"of","createdToUndo":"Created to undo","undoTask":"Undo task"},"recoveryState":"Recovery state","refine":{"btn":"Refine","charCount_one":"{{count}}/2000 characters","charCount_other":"{{count}}/2000 characters","createBtn":"Create Refinement Task","creating":"Creating...","feedbackRequired":"Please enter feedback describing what needs refinement","feedbackTooLong":"Feedback must be 2000 characters or less","help":"Describe what needs to be refined or improved...","modalTitle":"Refine","placeholder":"Enter your feedback here...","taskCreated":"Refinement task created: {{id}}"},"reset":{"btn":"Reset","confirmMessage":"This will erase all progress for {{id}} and start the task from scratch. Continue?","resetSuccess":"Reset {{id}} — fresh run will be allocated"},"respecify":{"btn":"Respecify"},"retries":{"branchConflict":"Branch conflict recovery","branchConflictTitle":"FN-4068 branch-conflict recovery retries","capReached":"Retry cap reached for this task.","collapse":"Collapse retries details","expand":"Expand retries details","label":"Retries","mergeConflict":"Merge conflict bounces","mergeConflictTitle":"Merge conflict bounce retries","postReviewFix":"Post-review fixes","postReviewFixTitle":"Post-review remediation retries","recovery":"Recovery retries","recoveryTitle":"Transient executor recovery retries","reviewerContext":"Reviewer context retries","reviewerContextTitle":"FN-4082 compact reviewer retry","reviewerFallback":"Reviewer fallback retries","reviewerFallbackTitle":"FN-4092 fallback-model retry","stuckKill":"Stuck kills","stuckKillTitle":"Stuck-task detector forced agent kill retries","taskDone":"task_done retries","taskDoneTitle":"Agent exited without task_done and task was retried","verification":"Verification bounces","verificationTitle":"Verification failure bounce retries","workflowStep":"Workflow retries","workflowStepTitle":"Workflow step failure retries"},"retriesLabel":"Retries (recovery / workflow / merge / task_done)","retry":{"btn":"Retry","retried":"Retried {{id}}"},"runtimeLinks":"Runtime links","runtimeStatus":"Runtime status","selfHealCounters":"Self-heal counters","selfHealValues":"stuck kills: {{stuckKills}}, post-review fixes: {{postReviewFixes}}","sourceIssue":{"collapse":"Collapse source issue details","expand":"Expand source issue details","githubAriaLabel":"GitHub source issue","githubBadge":"GitHub","gitlabAriaLabel":"GitLab source item","gitlabBadge":"GitLab","identifier":"Issue Identifier","label":"Source issue","none":"(none)","provider":"Provider","repository":"Repository","url":"URL"},"spec":{"aiReviseHeading":"Ask AI to Revise","aiReviseHelp":"Provide feedback for the AI to improve this specification. The task will move to planning for replanning.","editBtn":"Edit","feedbackPlaceholder":"e.g., 'Add more details about error handling', 'Split this into smaller steps', 'Include tests for the API endpoints'...","hintCancel":"to cancel","hintSave":"to save","loading":"Loading specification…","noPrompt":"(no prompt)","placeholder":"Enter task specification in Markdown...","requesting":"Requesting…","requestRevisionBtn":"Request AI Revision","revisionColumnError":"Cannot request revision: Task must be in 'triage', 'todo', 'in-progress', or 'in-review' column.","revisionRequested":"AI revision requested. Task moved to planning.","saving":"Saving…","updated":"Spec updated"},"stall":{"noLogEntry":"No log entry yet","noLogEntryTitle":"No 'In-review stall surfaced' entry on this task yet — self-healing may not have logged one within its rate-limit window.","observed":"Observed","threshold":"Threshold","viewActivityLog":"View activity log"},"stepProgress":"Step progress","summary":{"heading":"Summary"},"summaryTab":{"agentWorkHeading":"Work done by agents","cachedTokens":"Cached","changedHeading":"What changed","commit":"Commit","completedSteps":"Completed steps","completionHeading":"Completion summary","cost":"Cost","costUnavailable":"No pricing for this model","deletions":"Removed","filesChanged":"Files","inputTokens":"Input","insertions":"Added","model":"Model","noAgentWork":"No completed steps or workflow results are available for this task.","noChangedFiles":"No changed-file list is available for this task.","noCompletionSummary":"No completion summary was recorded for this task.","noTokenUsage":"No token usage recorded for this task yet.","outputTokens":"Output","retries":"Agents retried this task {{count}} time{{plural}}.","tokenCostHeading":"Token usage & cost","totalCost":"Total cost","totalTokens":"Total","unknownModel":"(unknown)","workflowResults":"Workflow results"},"tabs":{"changes":"Changes","chat":"Chat","comments":"Comments","definition":"Definition","documents":"Artifacts","logs":"Logs","model":"Model","pullRequest":"Pull Request","review":"Review","routing":"Routing","stats":"Stats","summary":"Summary","terminal":"Session","worktreeTerminal":"Terminal","workflow":"Workflow","cost":"Cost"},"terminal":{"loading":"Loading terminal…"},"timedDuration":"Timed duration","timestamps":{"ariaLabel":"Task timestamps","created":"Created","updated":"Updated"},"timingEvents":"Timing events","title":{"summarize":"Summarize","summarizeFailed":"Failed to summarize title: {{error}}","summarizeSuccess":"Title updated from description"},"tokenTotalsAria":"Task token totals","tokenUsage":"Token Usage","totalExecutionTime":"Total execution time","totalTokens":"Total","updateFailed":"Failed to update {{id}}: {{error}}","updateSuccess":"Updated {{id}}","wallClockSinceFirst":"Wall-clock since first execution","workflow":{"loadFailed":"Failed to load workflow results: {{error}}","stepsUpdated":"Workflow steps updated","stepsUpdateFailed":"Failed to update workflow steps: {{error}}"},"workflowRuntime":"Workflow runtime","workflowTimedSteps":"Workflow timed steps","yes":"Yes","costTab":{"cacheWriteTokens":"Cache write","cachedTokens":"Cached","cost":"Derived USD","costUnavailable":"No pricing for this model","description":"Derived from recorded input, output, cached, and cache-write tokens. Unpriced rows use — instead of a guessed value.","empty":"No model token usage has been recorded for this task yet.","heading":"Model cost","inputTokens":"Input","model":"Model","outputTokens":"Output","totalCost":"Total cost","totalCostLabel":"Total","totalTokens":"Total tokens","unknownModel":"(unknown)"}}`),ft={cancel:"Cancel",collapse:"Collapse",contentLabel:"Content",contentPlaceholder:"Enter document content…",contentRequired:"Content is required",create:"Create",created:"Document created",creating:"Creating…",deleteConfirm:"Delete?",deleted:"Document deleted",edit:"Edit",expand:"Expand",failedToCreate:"Failed to create document",failedToDelete:"Failed to delete document",failedToLoad:"Failed to load documents",failedToLoadRevisions:"Failed to load revisions",failedToSave:"Failed to save document",heading:"Artifacts",history:"History",invalidKeyFormat:"Invalid key format. Use 1-64 alphanumeric characters, hyphens, or underscores.",keyHint:"Alphanumeric, hyphens, underscores (1-64 chars)",keyLabel:"Key",keyPlaceholder:"e.g., plan, notes, research",keyRequired:"Document key is required",loading:"Loading documents and artifacts…",loadingRevisions:"Loading…",modeMarkdown:"Markdown",modePlain:"Plain",newDocumentButton:"New Document",newDocumentTitle:"New Document",no:"No",noDocuments:"No documents or artifacts yet.",noPreviousRevisions:"No previous revisions.",revisionHistory:"Revision History",save:"Save",saved:"Document saved",saving:"Saving…",switchToMarkdown:"Switch to markdown",switchToPlainText:"Switch to plain text",yes:"Yes",artifactCount:"{{count}} artifact{{plural}}",artifactsSubheading:"Media artifacts",documentCount:"{{count}} document{{plural}}",documentsSubheading:"Task documents",failedToLoadArtifacts:"Failed to load artifacts",noTaskDocuments:"No task documents yet."},bt={moreFields:"Additional fields",orphaned:"Orphaned fields",saveFailed:"Failed to save field",unset:"—"},vt={addDependencies:"Add dependencies",attachHint:"You can also paste images or drag & drop",attachmentsLabel:"Attachments",attachScreenshot:"Attach Screenshot",autoMergeDefault:"Default (Follow project setting)",autoMergeDisabled:"Disabled",autoMergeEnabled:"Enabled",autoMergeHint:"Default follows the project auto-merge setting.",autoMergeLabel:"Auto-merge",autoSaveSaved:"Saved",autoSaveSaving:"Saving...",baseBranchCustom:"Custom…",baseBranchDefault:"(default / project branch)",baseBranchLabel:"Merge target / base branch",baseBranchPlaceholder:"e.g. main",branchModeAutoNew:"Create auto-named branch per task",branchModeCustomNew:"Create custom new branch",branchModeExisting:"Use existing branch",branchModeProjectDefault:"Use project/default branch",branchModeSharedGroup:"Merge into a shared feature branch",branchNameLabel:"Branch name",branchPlaceholder:"e.g. feature/my-task",branchSettingsLabel:"Branch Settings",branchStrategyLabel:"Branch strategy",collapseDescription:"Collapse description",dependenciesLabel:"Dependencies",dependenciesSelected_one:"{{count}} selected",dependenciesSelected_other:"{{count}} selected",descriptionLabel:"Description",descriptionPlaceholder:"What needs to be done?",descriptionRefinedToast:"Description refined with AI",editingDescription:"Editing Description",enterDescriptionFirst:"Enter a description first",executionModeFast:"Fast",executionModeLabel:"Execution mode",executionModeStandard:"Standard",executorLabel:"Executor",executorModelLabel:"Executor Model",expandDescription:"Expand description",githubRepoFormatError:"Repository must be in owner/repo format.",githubRepoLabel:"Repository (owner/repo)",githubTrackingEnable:"Enable GitHub issue tracking for this task",githubTrackingLabel:"GitHub Tracking",loadingModels:"Loading models…",modelConfigLabel:"Model Configuration",moreOptions:"More options",noAvailableTasks:"No available tasks",nodeDefaultOption:"Use project default / local",nodeOverrideHint:"Task override takes priority over project default node routing.",nodeOverrideLabel:"Execution Node Override",noModelsAvailable:"No models available. Configure authentication in Settings.",overridePreset:"Override",planButton:"Plan",planningLabel:"Planning",planningModelLabel:"Planning Model",presetCustom:"Custom",presetLabel:"Preset",presetUseDefault:"Use default",priorityLabel:"Priority",refineAddDetailsDesc:"Add implementation details and context",refineAddDetailsTitle:"Add details",refineButton:"Refine",refineClarifyDesc:"Make the description clearer and more specific",refineClarifyTitle:"Clarify",refineExpandDesc:"Expand into a more comprehensive description",refineExpandTitle:"Expand",refineInProgress:"Refining...",refineSimplifyDesc:"Simplify and make more concise",refineSimplifyTitle:"Simplify",refineTitle:"Refine description with AI",removeImage:"Remove image",reviewDefault:"Default (Auto — triage decides)",reviewerLabel:"Reviewer",reviewerModelLabel:"Reviewer Model",reviewLabel:"Review",reviewLevel0:"0 — None",reviewLevel1:"1 — Plan Only",reviewLevel2:"2 — Plan and Code",reviewLevel3:"3 — Full",searchTasksPlaceholder:"Search tasks…",sharedBranchPlaceholder:"e.g. clionboarding",sharedFeatureBranchLabel:"Shared feature branch",subtaskButton:"Subtask",thinkingDefault:"Default ({{level}})",thinkingHigh:"High",thinkingLabel:"Thinking",thinkingLow:"Low",thinkingMedium:"Medium",thinkingMinimal:"Minimal",thinkingOff:"Off",thinkingXhigh:"Very High",titleLabel:"Title",titlePlaceholder:"Task title",useDropdown:"Use dropdown",usingPreset:"Using preset: {{name}}",workflowDefaultBadge:"(default)",workflowHelp:"The selected workflow's steps run automatically around this task's execution.",workflowLabel:"Workflow",workflowNone:"No workflow",workflowsCta:"Set up workflows in the editor",workflowsLoading:"Loading workflows…",workingBranchLabel:"Working branch"},kt={githubImported:"Imported {{id}} from GitHub"},yt={autoMergeOff:"Auto-merge off",autoMergeOn:"Auto-merge on",autoMergePreferenceUpdated:"Per-task auto-merge preference updated",addressPrFeedback:"Address PR feedback",addressPrFeedbackFailed:"Failed to start PR feedback session",addressPrFeedbackStarted:"Addressing PR feedback — AI session started",addressingPrFeedback:"Addressing…",completedAtSep:" · Completed: {{timestamp}}",createPr:"Create PR",effective:"Effective: {{label}}",effectiveFrozen:"Effective: {{label}} — frozen on entry to review",errorSep:" · Error: {{message}}",followDefault:"Follow default",loadError:"Failed to load review data.",loadingData:"Loading review data…",markdown:"Markdown",noCapturedFeedback:"No review feedback captured yet.",noFeedbackDirect:"No reviewer feedback yet — this task has not produced reviewer-agent feedback in direct mode.",noReviewItems:"No review items yet.",perTaskAutoMerge:"Per-task auto-merge",plain:"Plain",prSummaryLine_one:"{{decision}} · {{count}} review item(s)",prSummaryLine_other:"{{decision}} · {{count}} review item(s)",queueing:"Queueing…",refresh:"Refresh",refreshDataFailed:"Failed to refresh review data.",refreshed:"Review refreshed",refreshFailed:"Refresh failed",refreshing:"Refreshing…",refreshStatusLine:"{{status}} · Last refreshed: {{timestamp}} · {{source}}",requestRevision:"Request revision",reviewerSummaryLine_one:"{{reviewer}} · {{count}} review item(s)",reviewerSummaryLine_other:"{{reviewer}} · {{count}} review item(s)",revisionQueueFailed:"Failed to queue revision",revisionStarted:"Same-task AI revision started from selected review feedback",selectedAt:"Selected: {{timestamp}}",showMarkdown:"Show formatted markdown",showRawText:"Show raw text",startedAtSep:" · Started: {{timestamp}}",updateFailed:"Failed to update {{taskId}}: {{error}}",upToDate:"Up to date"},wt={addTaskPlaceholder:"Add a task...",addressPrFeedback:"Address PR feedback",addressPrFeedbackAriaLabel:"Address PR feedback",addressPrFeedbackFailed:"Failed to start PR feedback session: {{error}}",addressPrFeedbackStarted:"Addressing PR feedback — AI session started",addressPrFeedbackTitle:"Start an AI session to address PR feedback",addressingPrFeedback:"Addressing…",agent:"Agent",agentLabel:"Agent",answerQuestions:"Answer questions",archive:"Archive",archived:"Archived {{taskId}}",archivedUnlinked:"Archived {{taskId}} after unlinking lineage references",archiveFailed:"Failed to archive {{taskId}}: {{error}}",archiveLineageConflict:`{{taskId}} has lineage children ({{children}}) that reference it as a source parent.
5
+ Delete anyway by unlinking these references first?`,listControlsLabel:"List controls",newTask:"+ New Task",noChange:"No change",nodeOverrideLabel:"Node Override",nodeStatusConnecting:"Connecting",nodeStatusError:"Error",nodeStatusOffline:"Offline",nodeStatusOnline:"Online",noTasks:"No tasks",noTasksMatch:"No tasks match your filter",noTasksYet:"No tasks yet",pausedByAgent:"paused by agent",pauseSelected:"Pause selected",pauseSelectedTitle:"Pause all selected tasks that are not already paused",pauseUnavailable:"Pause action is unavailable",preserveProgressMessage:"This task has completed steps. Keep progress before moving?",preserveProgressTitle:"Preserve Progress?",resetProgress:"Reset Progress",resetProgressMessage:"Reset all step progress before moving this task?",resetProgressTitle:"Reset Progress?",resizeSidebar:"Resize task list sidebar",reviewerModel:"Reviewer Model",selectAll:"Select all visible tasks",selectedCount_one:"{{count}} selected",selectedCount_other:"{{count}} selected",selectTask:"Select {{taskId}}",selectTaskPrompt:"Select a task to view details",showAll:"Show all",showAllTitle:"Show all tasks",showDone:"Show Done",showDoneTitle:"Show done tasks",staleOnly:"Stale only",staleOnlyTitle:"Show stale tasks only",stalePausedReview:"Stale paused review",stalePausedReviewTitle:"Show stale paused review tasks only",stats_one:"{{count}} of {{total}} tasks",stats_other:"{{count}} of {{total}} tasks",statsInColumn_one:"{{count}} of {{total}} tasks in {{column}}",statsInColumn_other:"{{count}} of {{total}} tasks in {{column}}",statusMergingFix:"Merging fixes…",stuck:"Stuck",taskCreationUnavailable:"Task creation not available",unpauseSelected:"Unpause selected",unpauseSelectedTitle:"Unpause selected tasks that are currently paused",unpauseUnavailable:"Unpause action is unavailable",useProjectDefault:"Use project default",viewOptions:"View",workflowLabel:"Workflow"},fe={agent:"Agent",agents:"Agents",agentsTab:"Agents",ago:"ago",allAgents:"All agents",allAgentsOption:"All agents",approvalApprove:"Approve",approvalCommentPlaceholder:"Optional comment",approvalDeny:"Deny",approvalRequested:"Requested",approvalRequester:"Requester",approvals:"Approvals",approvalTask:"Task",back:"Back",backButton:"← Back",closeAriaLabel:"Close",closeTitle:"Close",compose:"Compose",composeButton:"Compose",composeMessageTitle:"Compose message",composeTitle:"Compose message",conversation:"Conversation",conversationLabel:"Conversation",delete:"Delete",deleteButton:"Delete",deleteFailed:"Failed to delete message",from:"From",fromLabel:"From:",fromPrefix:"From: {{participant}}",history:"History",inbox:"Inbox",inboxTab:"Inbox",justNow:"Just now",labelAgent:"Agent: {{id}}",labelAgentNamed:"Agent: {{name}}",labelSystem:"System",labelUser:"User: {{id}}",labelYou:"You",markAllRead:"Mark all read",markAllReadButton:"Mark all read",markAllReadTitle:"Mark all as read",markedAsRead_one:"Marked {{count}} messages as read",markedAsRead_other:"Marked {{count}} messages as read",markReadFailed:"Failed to mark messages as read",messageDeleted:"Message deleted",messageSent:"Message sent",noAgentMessages:"No agent-to-agent messages",noAgents:"No agents found",noAgentsFound:"No agents found",noHistoricalApprovals:"No historical approvals",noInbox:"No messages in your inbox",noMessagesInbox:"No messages in your inbox",noOutbox:"No sent messages",noPendingApprovals:"No pending approvals",noReceivedMessages:"No received messages for this agent",noSentMessages:"No sent messages",noSentMessagesAgent:"No sent messages for this agent",outbox:"Outbox",outboxTab:"Outbox",pending:"Pending",refreshTitle:"Refresh",reply:"Reply",replyButton:"Reply",replyingTo:"Replying to",replyingToMessage:"Replying to message",replyLoadFailed:"Failed to load replied message. Click to retry.",resizeMessageListPane:"Resize message list pane",selectMessageToRead:"Select a message to read",system:"System",timeDaysAgo_one:"{{count}}d ago",timeDaysAgo_other:"{{count}}d ago",timeHoursAgo_one:"{{count}}h ago",timeHoursAgo_other:"{{count}}h ago",timeJustNow:"Just now",timeMinsAgo_one:"{{count}}m ago",timeMinsAgo_other:"{{count}}m ago",title:"Mailbox",to:"To",toLabel:"To:",toPrefix:"To: {{recipient}}",toRecipient:"To: {{recipient}}",typeAgentToAgent:"Agent ↔ Agent",typeAgentToUser:"Agent → You",typeSystem:"System",typeUserToAgent:"You → Agent",user:"User",you:"You"},be={auditChecksTitle:"Audit Checks",autoSummarizeHint:"Automatically compacts memory when it exceeds the threshold on a schedule.",autoSummarizeLabel:"Auto-summarize memory",autoSummarizeScheduleHint:"Cron expression for auto-summarize schedule (default: daily at 3 AM)",autoSummarizeScheduleLabel:"Schedule (cron)",backendFile:"File (.fusion/memory/, agent/<agent-name>/memory/)",backendQmd:"QMD (Quantized Memory Distillation)",backendReadonly:"Read-Only",cancel:"Cancel",capAtomicWrites:"Atomic Writes",capPersistent:"Persistent",capReadable:"Readable",capWritable:"Writable",categories:"Categories",charCount_one:"{{count}} characters",charCount_other:"{{count}} characters",compactFailed:"Failed to compact memory",compacting:"Compacting…",compactionThresholdHint:"Memory will be compacted when it exceeds this character count",compactionThresholdLabel:"Compaction Threshold (chars)",compactSelectedFile:"Compact Selected File",currentBackendTitle:"Current Backend",description:"Working memory, long-term insights, and engine status",disabledMessage:"Memory is currently disabled. Enable memory tools in Settings to edit these automations.",dreaming:"Dreaming…",dreamNow:"Dream Now",dreamNowHint:"Manually trigger dream processing now.",dreamProcessingComplete:"Dream processing completed",dreamProcessingFailed:"Failed to run dream processing",dreamsEnabledHint:"Turns daily notes into DREAMS.md and promotes reusable lessons into MEMORY.md.",dreamsEnabledLabel:"Process dreams from daily memory",dreamsEnabledTooltip:"Daily notes are distilled into DREAMS.md and reusable lessons are promoted into MEMORY.md.",dreamsScheduleHint:"Cron expression for dream processing.",dreamsScheduleLabel:"Dream Schedule",editorDefaultDescription:"Edits the selected memory file.",editorLabel:"Memory Editor",editRaw:"Edit Raw",extracting:"Extracting…",extractInsightsFailed:"Failed to extract insights",extractionFailed:"Failed",extractionSuccess:"Success",extractNow:"Extract Now",fileCompacted:"Memory file compacted",fileLabel:"Memory File",fileSummary:"{{size}} bytes · updated {{updatedAt}}",fileSwitchDirtyHint:"Save or discard the current edits before switching files.",fileSwitchHint:"Choose any project memory file to view or edit.",healthHealthy:"Healthy",healthIssues:"Issues Found",healthStatusTitle:"Health Status",healthWarning:"Warning",insightCount_one:"{{count}} insights",insightCount_other:"{{count}} insights",insightsExtracted_one:"{{count}} insights extracted",insightsExtracted_other:"{{count}} insights extracted",insightsMemoryLabel:"Insights Memory",insightsSaved:"Insights saved",installing:"Installing…",installQmd:"Install qmd",installQmdFailed:"Failed to install qmd",lastExtractionLabel:"Last Extraction",lastUpdated:"Last Updated",layerDaily:"Daily",layerDescDaily:"Raw daily observations, open loops, and running context for dream processing.",layerDescDreams:"Synthesized patterns and open loops promoted from daily memory.",layerDescLongTerm:"Curated durable decisions, conventions, constraints, and pitfalls promoted from dreams.",layerDreams:"Dreams",layerLongTerm:"Long-term",loadFileFailed:"Failed to load memory file",loadingEngineStatus:"Loading engine status…",loadingFile:"Loading memory file…",loadingInsights:"Loading insights…",localFallbackUsed:"local fallback used",memorySaved:"Memory saved",noInsights:"No insights extracted yet.",noInsightsHint:'Insights are automatically extracted from working memory. Click "Extract Now" to trigger extraction manually.',noMatchingMemory:"No matching memory found.",pruningApplied:"Applied",pruningLabel:"Pruning",pruningNotNeeded:"Not needed",qmdAvailableOnPath:"qmd is available on PATH.",qmdChecking:"Checking",qmdCheckingAvailability:"Checking qmd availability…",qmdInstalled:"Installed",qmdInstallSuccess:"qmd installed successfully",qmdInstallUnavailable:"qmd install finished, but qmd is still unavailable",qmdIntegrationTitle:"QMD Integration",qmdNotInstalled:"qmd is not installed. Search will use local files. Install indexed retrieval:",qmdPathUsed:"qmd path used",qmdStatusAvailable:"available",qmdStatusMissing:"missing",readOnlyBanner:"This memory backend is read-only. Changes cannot be saved.",retrievalTestComplete:"Memory retrieval test complete",retrievalTestFailed:"Failed to test memory retrieval",retrievalTestFallback:"qmd is not installed; local fallback was used",runAudit:"Run Audit",save:"Save",saveInsights:"Save Insights",saveInsightsFailed:"Failed to save insights",saveMemoryFailed:"Failed to save memory",saveSettings:"Save Settings",saveSettingsFailed:"Failed to save memory settings",saving:"Saving…",searchPlaceholder:"Search memory with qmd",sectionCount_one:"{{count}} sections",sectionCount_other:"{{count}} sections",settingsNote:"Note: Change backend type in",settingsNoteLink:"Settings → Memory",settingsNoteToast:"Open Settings → Memory to change backend type",settingsSaved:"Memory settings saved",sizeChars:"{{size}} chars",tabEngines:"Engines",tabInsights:"Insights",tabWorking:"Working Memory",testing:"Testing…",testMemorySearchTitle:"Test Memory Search",testResultCount_one:'{{count}} result for "{{query}}"',testResultCount_other:'{{count}} results for "{{query}}"',testResultStatus:"qmd {{qmdStatus}} · {{fallbackStatus}}",testRetrieval:"Test Retrieval",testSearchHint:"Runs the same qmd-backed memory_search path agents use.",title:"Memory",totalInsights:"Total Insights",workingMemoryLabel:"Working Memory"},ve={advanced:"Advanced",advancedTo:"{{branch}} advanced to {{sha}}.",changesWillAutoStash:" (local changes will be auto-stashed and restored)",checkedOutBehind:"Your checked-out copy at {{path}} is behind.",commit:"Commit",disabledMergeLocked:"Push paused — a Fusion merge is in progress.",disabledNoRemote:"No `origin` remote configured.",disabledNoUpstream:"Branch has no upstream on origin.",dismissNotice:"Dismiss merge advance notice",filesChanged:"Files in merge commit",forceWithLeaseLabel:"Allow force-with-lease (use only when you know origin diverged intentionally)",insertionsDeletions:"Merge-commit insertions / deletions",mergedAt:"Merged at",mergedSuccess:"Merged successfully",message:"Message",pr:"PR",pulling:"Pulling…",pushForceWithLease:"Push (force-with-lease)",pushHeading_one:"Push {{branch}} to origin — ahead by {{count}} commit{{plural}}.",pushHeading_other:"Push {{branch}} to origin — ahead by {{count}} commit{{plural}}.",pushing:"Pushing…",pushSuccess:"Pushed to origin/{{branch}} @ {{sha}}.",pushToOrigin:"Push to origin",recordedNoConfirm:"Recorded without local merge confirmation",shortstatTitle:"Final commit shortstat; for the full landed diff across all task commits, see the Changes tab.",smartPull:"Smart Pull",status:"Status",title:"Merge Details"},ke={ariaLabel:"Node mesh topology visualization",connecting:"Connecting",error:"Error",failedToFetchMeshState:"Failed to fetch mesh state",noNodes:"No nodes to display",noPeers:"Peer-to-peer discovery data unavailable.",offline:"Offline",online:"Online"},ye=JSON.parse('{"acceptance":"Acceptance:","acceptanceCriteriaOptional":"Acceptance criteria (optional)","acceptanceCriteriaPrefix":"AC:","actionGenerating":"Generating…","actionResume":"Resume","actionRetry":"Retry","actionReview":"Review","activateSlice":"Activate slice","activityCount":"{{visible}} of {{total}}","activityTime":"Activity {{time}}","actual":"Actual: {{value}}","addAssertion":"Add assertion","addContext":"Add any extra context or direction...","addFeature":"Add feature","additionalComments":"Additional comments (optional)","addMilestone":"Add Milestone","addSlice":"Add slice","aiThinking":"AI is thinking...","aiValidatedAtRuntime":"AI-validated at runtime","aiValidatedMissionGate":"AI-validated mission gate","allFeaturesLinked":"All features already linked","approvePlan":"Approve Plan","assertionCreated":"Assertion created","assertionCreateFailed":"Failed to create assertion","assertionFieldsRequired":"Title and assertion text are required","assertionTextEditPlaceholder":"Assertion text","assertionTextPlaceholder":"Assertion text (what should be true when complete)","assertionTitlePlaceholder":"Assertion title","assertionUpdated":"Assertion updated","assertionUpdateFailed":"Failed to update assertion","attemptRetries_one":"Attempt {{attempt}} · {{count}} {{label}} left","attemptRetries_other":"Attempt {{attempt}} · {{count}} {{label}} left","autopilotActivatingSlice":"Activating slice","autopilotCompleting":"Completing","autopilotDescription":"When on, Fusion automatically activates the next slice and plans its features as work completes.","autopilotDisabled":"Autopilot disabled","autopilotEnabled":"Autopilot enabled","autopilotEnabledLabel":"Autopilot enabled","autopilotLabel":"Autopilot","autopilotLastActivation":"Last activation {{time}}","autopilotOff":"Off","autopilotUpdateFailed":"Failed to update autopilot","autopilotWatching":"Autopilot watching","autopilotWatchingSince":"Watching since {{time}}","autopilotWatchingState":"Watching","backToMissions":"Back to missions","backToMissionsList":"Back to missions list","blocked":"Blocked:","blockedReason":"Blocked reason:","branchName":"Branch name","branchNameAriaLabel":"Mission branch name","branchNamePlaceholder":"e.g. feature/mission-work","branchNameRequired":"Branch name is required for selected branch strategy","branchStrategy":"Branch strategy","branchStrategyAriaLabel":"Mission branch strategy","branchStrategyAutoPerTask":"Auto-name a branch per task (from details)","branchStrategyCustomNew":"Create custom branch","branchStrategyExisting":"Use existing branch","branchStrategyProjectDefault":"Use project/default branch","buildExample":"e.g., Build a real-time collaborative document editor with presence, comments, and version history...","cancelButton":"Cancel","clickToViewTask":"Click to view task","close":"Close","closeMissionManager":"Close Mission Manager","collapseDetails":"Collapse details","completedFeatures":"{{completed}}/{{total}} features","completedMilestones":"{{completed}}/{{total}} milestones","completedTasks":"{{completed}}/{{total}} tasks","confirmMilestonePlaceholder":"How to confirm this milestone is complete...","confirmSlicePlaceholder":"How to confirm this slice is done...","contractAssertions":"Contract assertions (AI-validated)","createButton":"Create","created":"Mission created","createdFromInterview":"Mission created from AI interview","createTask":"Create Task","creatingMission":"Creating Mission...","defaultInterviewTitle":"Mission interview","deleteAssertion":"Delete assertion","deleteButton":"Delete","deleteConfirm":"Delete this {{type}}? This cannot be undone.","deleted":"Mission deleted","deleteFailed":"Failed to delete mission","deleteFeature":"Delete feature","deleteMilestone":"Delete milestone","deleteMission":"Delete mission","deleteSlice":"Delete slice","describeGoal":"Describe what you want to build. The AI will interview you to understand scope, constraints, and requirements, then produce a structured plan with milestones, slices, and features.","descriptionLabel":"Mission Description","descriptionOptional":"Description (optional)","detailTabs":"Mission detail tabs","discardButton":"Discard","discardDraft":"Discard draft","discardDraftConfirm":"Discard this interview draft? This removes the saved draft and cannot be undone.","dismiss":"Dismiss","draftDiscardFailed":"Failed to discard draft","draftOpenInAnotherTab":"Draft is open in another tab","draftsLabel":"Drafts","editAssertion":"Edit assertion","editFeature":"Edit feature","editMilestone":"Edit milestone","editMission":"Edit mission","editSlice":"Edit slice","enrichedDescPreview":"Enriched Description Preview","expandRunHistory":"Expand to show run history","expected":"Expected: {{value}}","failedAssertions":"Failed assertions:","failedAssertionsTitle":"Failed Assertions:","failedLoadModels":"Failed to load models","featureCreated":"Feature created","featureCriteriaAwaitingSync":"Feature criteria awaiting assertion sync","featureDeleted":"Feature deleted","featureDeleteFailed":"Failed to delete feature","featureLinkedToAssertion":"Feature linked to assertion","featureLinkedToTask":"Feature linked to task","featureLinkFailed":"Failed to link feature","featureLinkTaskFailed":"Failed to link feature to task","featureSaveFailed":"Failed to save feature","featuresCount_one":"{{count}} features","featuresCount_other":"{{count}} features","featureTitlePlaceholder":"Feature title","featureTitleRequired":"Feature title is required","featureTriaged":"Feature triaged — task created","featureTriageFailed":"Failed to triage feature","featureUnlinkedFromAssertion":"Feature unlinked from assertion","featureUnlinkedFromTask":"Feature unlinked from task","featureUnlinkFailed":"Failed to unlink feature","featureUnlinkFromAssertionFailed":"Failed to unlink feature","featureUpdated":"Feature updated","filterAll":"All events","filterAutopilot":"Autopilot events","filterErrors":"Errors & warnings","filterLabel":"Filter","filterSlices":"Slice & milestone events","filterStateChanges":"State changes","filterTasks":"Task events","fixLineageButton":"🔗 Fix","generatedFixFeatures":"Generated fix features:","generatedFixFeaturesTitle":"Generated Fix Features","generatedFromFeature":"Generated from feature: {{id}}","goalLinked":"Goal linked to mission","goalLinkFailed":"Failed to link goal","goalPicker":"Goal to link","goalUnlinked":"Goal unlinked from mission","goalUnlinkFailed":"Failed to unlink goal","hideDetails":"Hide details","hideMetadata":"Hide metadata","hideThinking":"Hide thinking","hideValidationRounds":"Hide validation rounds","interviewActionGenerating":"Generating plan","interviewActionResume":"Resume interview","interviewActionRetry":"Retry interview","interviewActionReview":"Review plan","interviewComplete":"Plan ready — review and approve to create the mission.","interviewErrorDefault":"Session failed while contacting the AI.","interviewErrored":"Interview hit an error. Retry from this list item.","interviewGenerating":"Generating mission hierarchy from interview context.","interviewInProgress":"Interview in progress","interviewWaiting":"Interview is waiting for your next response.","lastValidatorStatus":"Last {{status}}","linkAFeature":"Link a feature","linkButton":"Link","linkedCount_one":"{{count}} linked","linkedCount_other":"{{count}} linked","linkedCountShort_one":"({{count}} linked)","linkedCountShort_other":"({{count}} linked)","linkedFeaturesCount_one":"{{count}} linked feature","linkedFeaturesCount_other":"{{count}} linked features","linkedFeaturesLabel":"Linked Features","linkedGoals":"Linked goals","linkedGoalsTitle":"Linked Goals","linkFeatureButton":"Link Feature","linkFeatureToTask":"Link feature to task:","linkGoal":"Link goal","linkingGoal":"Linking…","linkToTask":"Link to task","loadActivityFailed":"Failed to load mission activity","loadDetailFailed":"Failed to load mission details","loadFailed":"Failed to load missions","loadGoalsFailed":"Failed to load goals","loadingActivity":"Loading mission activity...","loadingMissionDetails":"Loading mission details...","loadingMissions":"Loading missions...","loadingModels":"Loading models…","loadMore":"Load more","loopState":"Loop state: {{state}}","milestoneCreated":"Milestone created","milestoneDeleted":"Milestone deleted","milestoneDeleteFailed":"Failed to delete milestone","milestoneDescriptionPlaceholder":"Milestone description...","milestoneSaveFailed":"Failed to save milestone","milestonesCount_one":"{{count}} milestones","milestonesCount_other":"{{count}} milestones","milestoneTitlePlaceholder":"Milestone title","milestoneTitleRequired":"Milestone title is required","milestoneUpdated":"Milestone updated","missionHealthAriaLabel":"Mission health: {{state}}","missionInterviewInProgressDesc":"Mission interview is still in progress. Open this mission to continue planning.","missionList":"Mission list","missionManagerAriaLabel":"Mission Manager","missionTargetBranchAriaLabel":"Mission target branch","missionTitlePlaceholder":"Mission title","noAssertionFailures":"No assertion failures","noAssertionsDefined":"No feature acceptance criteria or contract assertions defined yet.","noAssertionsYet":"No linked contract assertions are loaded yet. Feature criteria below will still be AI-validated when mission validation runs.","noEventsYet":"No events yet.","noFeaturesLinkedYet":"No features linked yet","noFixFeaturesGenerated":"No fix features generated.","noGoalsLinked":"No goals linked to this mission","noLinkedGoals":"No linked goals.","noMilestonesYet":"No milestones yet. Add one to get started.","noMissionsYetBody":"Missions are large initiatives that bundle milestones, slices, and features into a single plan. Plan a mission to break down a goal end-to-end and let agents work through it autopilot-style.","noMissionsYetTitle":"No missions yet","none":"None","noSlicesYet":"No slices yet","noValidationRunsYet":"No validation runs yet.","openMissionAriaLabel":"Open mission {{title}}","orSelect":"Or select:","planMilestone":"Plan milestone","planNewMission":"Plan New Mission","planningModel":"Planning Model","planReady":"Mission Plan Ready","planSlice":"Plan slice","planStateNeedsUpdate":"Needs update","planStateNotPlanned":"Not planned","planStatePlanned":"Planned","planTargetTitle":"Plan {{targetLabel}}: {{targetTitle}}","planTitle":"Plan Mission with AI","prepareQuestion":"Preparing next question...","progressText_one":"Question {{count}} of ~6","progressText_other":"Question {{count}} of ~6","reconnecting":"Reconnecting…","relativeTimeDays_one":"{{count}}d ago","relativeTimeDays_other":"{{count}}d ago","relativeTimeHours_one":"{{count}}h ago","relativeTimeHours_other":"{{count}}h ago","relativeTimeJustNow":"just now","relativeTimeMinutes_one":"{{count}}m ago","relativeTimeMinutes_other":"{{count}}m ago","removeFeature":"Remove feature","removeMilestone":"Remove milestone","removeSlice":"Remove slice","resizeSidebar":"Resize mission sidebar","resumed":"Mission resumed","resumeFailed":"Failed to resume mission","resumeInterviewAriaLabel":"Resume interview {{title}}","resumeMission":"Resume mission","retries":"retries","retry":"retry","retryBudgetTitle":"Implementation attempts and remaining retry budget","retrying":"Retrying...","roadmapLabel":"Roadmap","run":"Run:","runSettings":"Mission run settings","runSettingsTitle":"Mission run settings","saveButton":"Save","saveFailed":"Failed to save mission","selectGoal":"Select an active goal","selectMissionToView":"Select a mission to view details","sendToBackground":"Send to background","sessionActiveAnother":"Session is active in another tab.","sessionActiveHeartbeat":"This session is active in another tab (live heartbeat)","sessionActiveTab":"This session is active in another tab","showDetails":"Show details","showMetadata":"Show metadata","showThinking":"Show thinking","showValidationRounds":"Show validation rounds","sliceActivated":"Slice activated","sliceActivateFailed":"Failed to activate slice","sliceCreated":"Slice created","sliceDeleted":"Slice deleted","sliceDeleteFailed":"Failed to delete slice","sliceSaveFailed":"Failed to save slice","slicesCount_one":"{{count}} slices","slicesCount_other":"{{count}} slices","sliceTitlePlaceholder":"Slice title","sliceTitleRequired":"Slice title is required","sliceTriaged_one":"Triaged {{count}} feature","sliceTriaged_other":"Triaged {{count}} features","sliceTriageFailed":"Failed to triage slice features","sliceUpdated":"Slice updated","sliceVerification":"Slice Verification","source":"Source:","started":"Mission started — first slice activated","startFailed":"Failed to start mission","startInterview":"Start Interview","startMission":"Start mission","startOver":"Start Over","statusActive":"Active","statusArchived":"Archived","statusBlocked":"Blocked","statusComplete":"Complete","statusDefined":"Defined","statusDone":"Done","statusFailed":"Failed","statusInProgress":"In Progress","statusPassed":"Passed","statusPending":"Pending","statusPlanning":"Planning","statusTriaged":"Triaged","stopFailed":"Failed to stop mission","stopMission":"Stop mission","stopped_one":"Mission stopped ({{count}} task paused)","stopped_other":"Mission stopped ({{count}} tasks paused)","summaryStats":"{{milestones}} milestones, {{features}} features. Review and edit before approving.","tabActivity_one":"Activity ({{count}})","tabActivity_other":"Activity ({{count}})","tabStructure":"Structure","takeControl":"Take Control","takingControl":"Taking control...","targetBranch":"Target branch","targetBranchPlaceholder":"e.g. main","taskIdPlaceholder":"Task ID (e.g., FN-001)","taskIdRequired":"Task ID is required","tasksFailed_one":"{{count}} failed","tasksFailed_other":"{{count}} failed","title":"Missions","titleLabel":"Mission Title","titleRequired":"Mission title is required","toggleDetails":"Toggle details","transformVision":"Transform your vision into a structured mission","triageAllFeatures":"Triage all features","triageCreateTask":"Triage — create task","tryExample":"Try an example:","typeAnswer":"Type your answer here...","unlinkedBadge":"Unlinked","unlinkFeature":"Unlink feature","unlinkGoal":"Unlink goal","unlinkTask":"Unlink task","untitled":"Untitled","updateButton":"Update","updated":"Mission updated","validateFeature":"Validate feature","validationRoundAttempts":"impl #{{implementation}} · reviewer #{{reviewer}}","validationRoundsCount_one":"{{count}} round","validationRoundsCount_other":"{{count}} rounds","validationRoundsLabel_one":"Validation rounds ({{count}})","validationRoundsLabel_other":"Validation rounds ({{count}})","validationRuns":"Validation Runs","validationState":"Validation state","validationStateNotStarted":"Not started","validationTelemetry":"Validation Telemetry","validationTriggered":"Validation triggered","validationTriggerFailed":"Failed to trigger validation","verification":"Verification:","verificationCriteria":"Verification Criteria","viewMissionFailures":"View mission failures","whatToBuild":"What do you want to build?"}'),we={createdFromPlanning:"Created {{id}} from planning mode",createdFromSubtask:"Created {{ids}} from subtask breakdown",createdMultipleFromPlanning:"Created {{ids}} from planning mode"},Ae={noChange:"No change",selectPlaceholder:"Select a model…"},Se={addProviderToFavoritesAriaLabel:"Add {{provider}} to favorites",addToFavorites:"Add to favorites",addToFavoritesAriaLabel:"Add {{name}} to favorites",clearFilter:"Clear filter",count_one:"{{count}} model",count_other:"{{count}} models",descriptions:{executor:"The AI model used to implement this task.",override:"Override the AI models used for this task. When not specified, project or global defaults are used.",planning:"The AI model used for task specification (triage phase).",reviewer:"The AI model used to review code and plans for this task.",thinkingLevel:"Controls the reasoning effort for the AI agent. Higher levels use more tokens."},emptyStates:{noModels:"No models available. Configure authentication in Settings to enable model selection."},errors:{failedSaveSettings:"Failed to save model settings",failedSaveThinking:"Failed to save thinking level",failedUpdateFavorites:"Failed to update favorites",failedUpdateModelFavorites:"Failed to update model favorites"},filterPlaceholder:"Filter models…",labels:{executorModel:"Executor Model",planningModel:"Planning Model",reviewerModel:"Reviewer Model",thinkingLevel:"Thinking Level"},messages:{thinkingLevelSet:"Thinking level set to {{level}}",thinkingLevelSetDefault:"Thinking level set to default ({{level}})",upToDate:"Model settings are up to date.",usingDefaults:"Using project or global default models."},noResults:"No models match '{{filter}}'",options:{default:"Default",high:"High",low:"Low",medium:"Medium",minimal:"Minimal",off:"Off",xhigh:"Very High",defaultWithLevel:"Default ({{level}})"},placeholders:{selectExecutor:"Select executor model…",selectPlanning:"Select planning model…",selectReviewer:"Select reviewer model…"},removeFromFavorites:"Remove from favorites",removeFromFavoritesAriaLabel:"Remove {{name}} from favorites",removeProviderFromFavoritesAriaLabel:"Remove {{provider}} from favorites",states:{loading:"Loading available models…",usingDefault:"Using default"},targetLabels:{executor:"Executor",planning:"Planning",validator:"Reviewer"},titles:{configuration:"Model Configuration"},useDefault:"Use default"},Ce={choose:"Choose models for this task. If not selected, default models will be used.",custom:"Custom",executorModel:"Executor Model",executorPlaceholder:"Select executor model…",loading:"Loading models…",noModels:"No models available. Configure authentication in Settings to enable model selection.",planningModel:"Planning Model",planningPlaceholder:"Select planning model…",preset:"Preset",reviewerModel:"Reviewer Model",reviewerPlaceholder:"Select reviewer model…",thinkingDefault:"Default ({{level}})",thinkingModel:"Thinking",title:"Select Models",useDefault:"Use default",usingDefault:"Using default"},Te={activityLog:"Activity Log",agents:"Agents",automation:"Automation",board:"Board",chat:"Chat",chatUnreadAriaLabel:"Unread chat response",collapseSidebar:"Collapse sidebar",commandCenter:"Dashboard",devServer:"Dev Server",documents:"Artifacts",evals:"Evals",expandSidebar:"Expand sidebar",files:"Files",gitManager:"Git Manager",goals:"Goals",importFromGitHub:"Import from GitHub",insights:"Insights",list:"List",loadingScripts:"Loading scripts…",mailbox:"Mailbox",mailboxPendingAriaLabel:"Pending approvals",manageScripts:"Manage Scripts…",memory:"Memory",missions:"Missions",more:"More",moreSheetTitle:"Navigate",noScriptsAddOne:"No scripts — add one…",planning:"Planning",planningNeedsInputAriaLabel:"Planning needs your input",primaryNavAriaLabel:"Primary navigation",projects:"Projects",research:"Research",resizeSidebar:"Resize sidebar",scriptsSubmenuAriaLabel:"Scripts submenu",secrets:"Secrets",settings:"Settings",showScriptsAriaLabel:"Show scripts",sidebarAriaLabel:"Sidebar navigation",skills:"Skills",stashRecovery:"Stash Recovery",tasks:"Tasks",terminal:"Terminal",todos:"Todos",usage:"Usage",workflows:"Workflows"},Pe={addDependencies:"Add dependencies",assignAgent:"Assign Agent",assignAgentButton:"Assign agent",branchRequired:"Branch name is required for this branch strategy.",clearSelection:"Clear selection",createTask:"Create Task",creating:"Creating...",dependencies:"Dependencies",discardChanges:"Discard Changes",failedToCreate:"Failed to create task",failedToUpload:"Failed to upload: {{files}}",loadingAgents:"Loading agents...",noAgentsAvailable:"No agents available",noAvailableTasks:"No available tasks",searchTasks:"Search tasks…",selectAgent:"Select agent",selectedCount_one:"{{count}} selected",selectedCount_other:"{{count}} selected",taskCreated:"Created {{taskId}}",title:"New Task",unsavedChanges:"You have unsaved changes. Discard them?"},Re={actions:{connect:"Connect",connecting:"Connecting...",edit:{ariaLabel:"Edit node",label:"Edit",title:"Edit"},health:{ariaLabel:"Run node health check",label:"Health",title:"Health Check"},remove:{ariaLabel:"Remove node",ariaLabelConfirm:"Confirm remove node",label:"Remove",labelConfirm:"Confirm",title:"Remove",titleConfirm:"Confirm remove"},restart:{ariaLabel:"Restart node container",label:"Restart",title:"Available after FN-3113"},start:{ariaLabel:"Start node container",label:"Start",title:"Available after FN-3113"},stop:{ariaLabel:"Stop node container",label:"Stop",title:"Available after FN-3113"}},addCliButton:"Add CLI",addDockerNode:"Add Docker Node",addDockerNodeTitle:"Add a managed Docker node",addFirstNode:"Add First Node",adding:"Adding...",addMountButton:"Add Mount",addNode:"Add Node",addVariableButton:"Add Variable",apiKey:"API Key",apiKeyMode:"API Key Mode",apiKeyNotConfigured:"Not configured",apiKeyPlaceholder:"Enter node API key",attachProjects:"Attach Existing Projects",attachProjectsHint:"Select existing projects to run on this node and provide the node-specific absolute path for each one.",authSync:{differ:"credentials differ",label:"Auth sync: {{status}}",match:"credentials match",notSynced:"not synced"},autoAssignment:"Auto (no assignment)",autoGenerate:"Auto-generate",availableSoon:"Available after FN-3113",cancelButton:"Cancel",closeAriaLabel:"Close nodes view",closeButton:"Close",closeLogsAriaLabel:"Close logs",closeModalAriaLabel:"Close node detail modal",closeNodeModal:"Close add node modal",concurrencyMin:"Concurrency must be at least 1",concurrencyRange:"Concurrency must be between {{min}} and {{max}}",containerLogs:"Container Logs",description:"Register an existing Fusion node by providing its connection details and concurrency settings.",discoverBeforeAdding:"Discover remote projects before adding this node.",discoveredCount_one:"Discovered {{count}} remote project{{plural}}",discoveredCount_other:"Discovered {{count}} remote project{{plural}}",discoveredRemoteProjectsLabel:"Discovered remote projects",discovering:"Discovering...",discoverRemoteProjects:"Discover Remote Projects",discoveryFailed:"Failed to discover remote projects",dismissError:"Dismiss error",docker:"Docker",dockerBadge:"Managed Docker node",dockerConfigMeta:"Config v{{version}} • Updated {{updated}}",dockerConfigSaveFailed:"Failed to save Docker config",dockerConfigSaveSuccess:"Docker config saved",dockerConfiguration:"Docker Configuration",dockerContainerId:"Container ID",dockerContainerPath:"Container path",dockerContextName:"Context name",dockerCpuCount:"CPU count",dockerDefaultCpu:"Default CPU",dockerDefaultMemory:"Default memory",dockerEnvVars:"Environment Variables",dockerExitCode:"Exit code:",dockerExtraClis:"Extra CLIs",dockerFieldImage:"Image",dockerHost:{local:"Local Docker",remote:"Remote: {{host}}"},dockerHostLabel:"Host",dockerHostConfig:"Host Config",dockerHostPath:"Host path",dockerHostUrl:"Docker host URL",dockerLabel:"Docker",dockerMemoryBytes:"Memory bytes (2 GB = 2147483648)",dockerNeedsRecreate:"Needs Recreate",dockerNodeCreated:'Docker node "{{name}}" created',dockerPersistence:"Persistence",dockerPersistentStorage:"Persistent Storage",dockerPidsLimit:"PIDs limit",dockerPort:"Port",dockerResourceDefault:"Default",dockerResources:"Resources",dockerResourceSizing:"Resource Sizing",dockerRetainOnDelete:"Retain on delete",dockerStatusUnknown:"Unknown",dockerTlsCaCert:"TLS CA cert path",dockerTlsCert:"TLS cert path",dockerTlsKey:"TLS key path",dockerTlsVerify:"TLS verify",dockerUptime:"Uptime:",dockerVolumeMounts:"Volume Mounts",dockerVolumeName:"Volume name",editButton:"Edit",errorFetching:"Failed to fetch nodes",errorPersistMappings:"Failed to persist project mappings",errors:{connectFailed:"Failed to connect",connectToNode:"Failed to connect to node"},errorUnregisterAfterMappingFailure:"Failed to unregister node after mapping failure",failedCreateDocker:"Failed to create Docker node",failedRefresh:"Failed to refresh nodes",failedRemove:"Failed to remove node",fetchContainerLogsFailed:"Failed to fetch container logs",fetchContainerStatusFailed:"Failed to fetch container status",fetchingLogs:"Fetching logs...",fieldApiKey:"API Key",fieldCreated:"Created",fieldMaxConcurrent:"Max Concurrent",fieldName:"Name",fields:{authKey:"Auth Key",host:"Host / IP Address",maxConcurrent:"Max Concurrent",name:"Node Name",port:"Port",url:"URL"},fieldStatus:"Status",fieldType:"Type",fieldUpdated:"Updated",fieldUrl:"URL",heading:"Nodes",healthCheckButton:"Health Check",healthCheckComplete:"Node health check complete",healthCheckFailed:"Health check failed",healthCheckSuccess:"Health check completed for {{name}}",healthLastCheck:"Last check:",healthStatus:"Status:",local:"Local",localDocker:"Local Docker",localNodeName:"Local",maxConcurrent:"Max Concurrent",maxConcurrentHint:"Max simultaneous task agents (1–10)",meshTopology:"Mesh Topology",meshTopologyAriaLabel:"Mesh Topology",metrics:{concurrency:"Concurrency",projects:"Projects"},modal:{closeButton:"Close connect node modal",title:"Connect to Node"},modalAriaLabel:"Node details for {{name}}",modalTitle:"Node Details",multipleMatches:"Multiple remote projects matched this name. Enter the correct path manually.",name:"Name",namePlaceholder:"Build Machine",nameRequired:"Name is required",no:"No",nodeLabel:"{{name}} ({{type}}) — {{status}}",noLogsAvailable:"No logs available",noMatch:"No exact remote name match. Enter this path manually.",noProjects:"No projects are currently registered.",noProjectsAssigned:"No projects are assigned to this node.",noProjectsDiscovered:"No projects discovered on remote node.",noProjectsRunning:"No projects are running on this node.",noRegistered:"No nodes are registered yet.",offline:"Offline",online:"Online",pathDiscovered:"Remote-authoritative path discovered: {{path}}",pathInvalid:"Path is invalid",pathOnNode:"Path on this node",placeholders:{host:"192.0.2.10 or my-server.local",name:"Build Server",optional:"Optional"},projectPathMappingsLabel:"Project path mappings",provideManually:"Provide key manually",pulling:"Pulling...",pullSettings:"Pull Settings",pullSettingsFailed:"Pull settings failed",pullSettingsSuccess:"Settings pulled successfully",pushing:"Pushing...",pushSettings:"Push Settings",pushSettingsFailed:"Push settings failed",pushSettingsSuccess:"Settings pushed successfully",reachableUrl:"Reachable URL / Hostname",readOnly:"Read-only",refresh:"Refresh",refreshing:"Refreshing...",refreshStatus:"Refresh Status",registered:'Node "{{name}}" registered',registeredCount_one:"{{count}} registered",registeredCount_other:"{{count}} registered",registerFailed:"Failed to register node",remote:"Remote",removeButton:"Remove",removed:"Node removed",restartButton:"Restart",runtimeNodeLabel:"Runtime Node",saveButton:"Save",saveDockerConfig:"Save Docker Config",saving:"Saving...",sectionAssignedProjects:"Assigned Projects",sectionDockerManagement:"Docker Management",sectionHealth:"Health",sectionOverview:"Overview",sectionProjects:"Projects",sectionSettingsSync:"Settings Sync",sectionSyncHistory:"Sync History",startButton:"Start",statusConnecting:"Connecting",statusError:"Error",statusOffline:"Offline",statusOnline:"Online",statusTitle:"Status: {{status}}",stopButton:"Stop",success:{connected:'Connected to "{{name}}"'},syncAuth:"Sync Auth",syncAuthFailed:"Auth sync failed",syncAuthSuccess:"Auth credentials synced successfully",syncDifferences:"Differences:",synced:"Synced",syncing:"Syncing...",syncLastSync:"Last sync:",syncNeverSynced:"Never synced",total:"Total",type:{local:"Local",remote:"Remote"},typeLocal:"Local",typeRemote:"Remote",updateFailed:"Failed to update node",updateSuccess:"Updated {{name}}",urlRequired:"URL is required for remote nodes",validation:{concurrencyRange:"Concurrency must be between {{min}} and {{max}}",hostRequired:"Host / IP address is required",nameRequired:"Node name is required",portRange:"Port must be between 1 and 65535"},viewLogsButton:"View Logs",yes:"Yes"},Fe={local:"Local"},Le={error:{authSyncFailed:"Auth sync failed",failedToFetchStatus:"Failed to fetch sync status",pullFailed:"Pull settings failed",pushFailed:"Push settings failed",someRequestsFailed:"Some sync status requests failed"}},De={authToken:"Auth token (optional)",continue:"Continue",continueOnboarding:"Continue onboarding",continueSetup:"Continue Setup",defaultName:"Remote Server",description:"Fusion helps you plan, run, and review AI-assisted engineering work.",localFusion:"Local Fusion",onTheStep:"You're on the ",profileName:"Profile name",progressText:"{{completed}} of {{total}} step{{pluralS}} complete — You're on the ",remoteServer:"Remote Server",resumeOnboarding:"Resume onboarding",saving:"Saving…",scanning:"Scanning…",scanQr:"Scan QR",serverUrl:"Server URL",serverUrlPlaceholder:"https://your-fusion-host",stepContinue:"step. Continue where you left off to complete your dashboard setup.",welcome:"Welcome to Fusion"},Me={agentId:"Agent ID",agentIdHint:"OpenClaw agent definition to run (default: main).",agentIdPlaceholder:"main",binaryPath:"Binary path",binaryPathHint:"Leave blank to resolve openclaw from your PATH.",binaryPathPlaceholder:"openclaw (defaults to PATH)",cliTimeout:"OpenClaw timeout (sec)",cliTimeoutHint:"OpenClaw-side run timeout in seconds (0 = no timeout).",description:"Drives the local <code1>openclaw</code1> CLI as a subprocess. Each Fusion prompt is dispatched via <code2>openclaw agent --local --json</code2>; the agent definition, model, and thinking level are resolved by OpenClaw. This card only sets overrides and the binary path.",detected:"✓ openclaw detected{{version}}{{path}}.",gateway:"Route through OpenClaw gateway (otherwise embedded)",gatewayHint:"When enabled, calls pass through the OpenClaw gateway service.",githubLink:"openclaw on GitHub",model:"Model override",modelHint:"Optional — overrides the OpenClaw default model.",modelPlaceholder:"e.g. anthropic/claude-haiku-4-5, minimax/MiniMax-M3",notDetectedInstall:"<code>openclaw</code> not detected. Install the upstream agent:",notFound:"✗ openclaw not found",probing:"Probing local openclaw binary…",saved:"Settings saved.",savedDetected:"Saved · ✓ openclaw detected{{version}}{{path}}.",savedNotFound:"Saved · ✗ openclaw not found",savedProbeFailed:"Saved, but probe failed.",statusDetected:"✓ Detected{{version}}{{path}}",statusDisabledInPluginManager:"Disabled in Plugin Manager",statusNotFound:"✗ not detected on PATH",subprocess:"CLI subprocess timeout (ms)",subprocessHint:"Fusion-side hard cap before the CLI subprocess is killed (default: {{default}}s).",testFailed:"Test failed — see status above.",thinking:"Thinking level",thinkingHint:"Controls how much extended thinking the model uses."},Ie={agentHelp:"Pick the Paperclip agent this Fusion runtime will proxy.",agentLabel:"Agent",apiKeyHelp:"Agent API key. Local-trusted deployments may leave this blank.",apiKeyLabel:"API key",apiKeyMinted:"API key minted via paperclipai (key 'fusion-runtime' installed for agent {{agentId}}). Click Save to persist.",apiKeyPlaceholder:"•••••••• (leave blank to keep existing)",apiUrlHelp:"Base URL of the Paperclip server.",apiUrlLabel:"API URL",cliApiKeyHelp:"Local-trusted deployments do not require a key.",cliApiKeyLabel:"API key (override, optional)",cliApiKeyPlaceholder:"Optional — only required for non-local-trusted modes",cliBinaryHelp:"Optional — informational; the adapter currently reads the instance config file directly.",cliBinaryLabel:"paperclipai binary",cliConfigLabel:"CLI config:",cliConfigPathHelp:"Override the path to config.json. Leave blank for the default.",cliConfigPathLabel:"Instance config path",cliDiscoveryFailed:"CLI discovery failed: {{reason}}",cliDiscoveryFailedLabel:"CLI discovery failed: {{reason}}",companyHelp:"Select a Paperclip company.",companyIdRequired:"Company ID is required to mint a Paperclip API key.",companyLabel:"Company",connected:"Connected.",connectedAsAgent:"Connected as {{agentName}}{{companyInfo}}.",connectionModeAriaLabel:"Paperclip connection mode",connectToPopulate:"Connect to populate",description:"Drive a Paperclip agent (employee) in a Paperclip company. Each prompt dispatches a task-shaped request; governance, budgets, and approvals are enforced by Paperclip. Expect seconds-to-minutes latency per turn.",docsLink:"Paperclip docs",githubLink:"GitHub",goalIdHelp:"Associate work with a Paperclip goal.",goalIdLabel:"Goal ID (optional)",mintButton:"Mint API key via paperclipai",mintFailed:"Mint failed: {{reason}}. Run `paperclipai onboard` first if your CLI isn't authenticated.",modeLabel:"Conversation mode",name:"Paperclip",noAgentsDiscovered:"No agents discovered",noCompaniesDiscovered:"No companies discovered",onboardingStep1:"Make sure a Paperclip server is running. To install Paperclip:",optionalPlaceholder:"Optional",parentIssueIdHelp:"Scope work under an existing parent issue.",parentIssueIdLabel:"Parent issue ID (optional)",pickCompanyFirst:"Pick a company first",projectIdHelp:"Pin work to a specific Paperclip project.",projectIdLabel:"Project ID (optional)",resolved:"resolved",runTimeoutHelp:"Local cap before Fusion gives up on a Paperclip run.",runTimeoutLabel:"Run timeout (ms)",savedCliDiscoveryFailed:"Saved · CLI discovery failed: {{reason}}",savedConnected:"Saved · Connected.",savedConnectedAsAgent:"Saved · Connected as {{agentName}}{{companyInfo}}.",savedProbeFailed:"Saved, but probe failed.",savedUnreachable:"Saved · {{reason}}",settingsSaved:"Settings saved.",statusCliDiscoveryFailed:"CLI discovery failed: {{reason}}",statusConnected:"Connected",statusConnectedAs:"Connected as {{agentName}}{{roleInfo}}{{companyInfo}}",statusDisabledInPluginManager:"Disabled in Plugin Manager",statusProbing:"Probing Paperclip server…",statusUnreachable:"{{reason}}",tabApi:"API (URL + token)",tabCliAutoDerve:"Local CLI (auto-derive)",testFailed:"Test failed — see status above.",unreachable:"{{reason}}"},Ne={filterHint:"{{extensions}} ext, {{skills}} skill, {{prompts}} prompt, {{themes}} theme"},xe={addButton:"Add",discoveredDescription:"Installed extensions resolved from packages and configured paths.",discoveredTitle:"Discovered Extensions",enterSource:"Please enter a package source",extensionDisabled:"Extension disabled",extensionEnabled:"Extension enabled",filterExtensions:"Extensions:",filterPrompts:"Prompts:",filterSkills:"Skills:",filterThemes:"Themes:",installFailed:"Failed to install package: {{error}}",installing:"Installing…",installSuccess:"Package installed successfully",loadExtensionsFailed:"Failed to load extensions: {{error}}",loading:"Loading Pi settings…",loadingExtensions:"Loading extensions…",loadingFailed:"Failed to load Pi settings.",loadSettingsFailed:"Failed to load Pi settings: {{error}}",noExtensions:"No extensions discovered.",noPackages:"No packages configured.",noPackagesHelp:"Add a package source above to get started.",packagePlaceholder:"npm:pi-extension-name or git:https://github.com/...",packageRemoved:"Package removed",refreshButton:"Refresh",refreshExtensions:"Refresh extensions",reinstallButton:"Reinstall Fusion skill",reinstallFailed:"Failed to reinstall Fusion skill: {{error}}",reinstalling:"Reinstalling Fusion…",reinstallSuccess:"Fusion skill reinstalled successfully",removeFailed:"Failed to remove package: {{error}}",removePackage:"Remove package",removePackageLabel:"Remove package {{label}}",removeResource:"Remove {{path}}",resourceRemoved:"{{resource}} removed",sectionExtensions:"Extensions",sectionPrompts:"Prompts",sectionSkills:"Skills",sectionThemes:"Themes",title:"Pi Extensions",toggleExtension:"Toggle {{name}}",updateFailed:"Failed to update extension: {{error}}",updateSettingsFailed:"Failed to update settings: {{error}}"},Ee={additionalComments:"Additional comments (optional)",additionalCommentsPlaceholder:"Add any extra context or direction...",addSubtask:"Add subtask",advancedSettings:"Advanced planning settings",aiThinking:"AI is thinking...",archiveSession:"Archive session",backToSessions:"Back to sessions",backToSummary:"Back to Summary",baseBranch:"Merge target / base branch (optional)",baseBranchPlaceholder:"main",branchAutoNew:"Create auto-named branch per task",branchCustomNew:"Create custom new branch",branchExisting:"Use existing branch",branchName:"Branch name",branchNameRequired:"Branch name is required for this branch strategy.",branchProjectDefault:"Use project/default branch",branchStrategy:"Branch strategy",breakdownSubheading:"Review and edit the subtasks generated from your plan. Adjust titles, descriptions, sizes, priorities, and dependencies before creating.",breakingDown:"Breaking down...",breakIntoTasks:"Break into Tasks",breakIntoTasksTitle:"Break the plan into multiple tasks with dependencies",collapse:"Collapse",continue:"Continue",createSingleTask:"Create Single Task",createTasks:"Create Tasks",creating:"Creating...",delete:"Delete",deleteSession:"Delete session",dependencies:"Dependencies",dependencyCycle:"Dependencies contain a cycle. Remove circular references before creating tasks.",depthBlurb:"Plan size sets default interview depth. Questions lets you override with an exact count.",depthLarge:"Large",depthMedium:"Medium",depthSmall:"Small",description:"Description",dismiss:"Dismiss",dragToReorder:"Drag to reorder",examplePlan1:"Build a user authentication system with login and signup",examplePlan2:"Add dark mode support to the dashboard",examplePlan3:"Create an API endpoint for exporting tasks as CSV",examplePlan4:"Refactor the task card component for better performance",expand:"Expand",failedCreateTask:"Failed to create task",failedCreateTasks:"Failed to create tasks",failedDeleteSession:"Failed to delete session",failedGoBack:"Failed to go back to the previous question",failedLoadModels:"Failed to load models",failedLoadSession:"Failed to load session",failedRefinePlan:"Failed to refine plan",failedStartBreakdown:"Failed to start breakdown",failedStartSession:"Failed to start planning session",failedSubmitResponse:"Failed to submit response",firstSubtaskNoDeps:"First subtask cannot have dependencies.",generatingQuestion:"Generating next question...",generationStopped:"Generation stopped by user. You can retry or start a new session.",hideArchived:"Hide archived",hideThinking:"Hide thinking",initialHeading:"Transform your idea into a detailed task",initialSubheading:"Describe what you want to build in plain language. The AI will ask clarifying questions and help you structure a well-defined task.",keyDeliverables:"Key Deliverables",loadingModels:"Loading models…",markdown:"Markdown",moveDown:"Move down",moveSubtaskDown:"Move subtask down",moveSubtaskUp:"Move subtask up",moveUp:"Move up",newPlanningSession:"New planning session",newSession:"New session",noActiveQuestion:"No active question in session",noPreviousSubtasks:"No previous subtasks available.",noSavedSessions:"No saved sessions yet. Start one on the right to see it here.",plain:"Plain",planningComplete:"Planning Complete!",planningCompleteSubheading:"Review and refine your task before creating it.",planningDepth:"Planning depth",planningModel:"Planning Model",planningModelBlurb:"Selects which model runs the planning interview and writes the final draft.",planningSessions:"Planning sessions",priority:"Priority",questionProgress:"Question {{progress}} of ~3",questionsAuto:"Auto",questionsLabel:"Questions",reconnecting:"Reconnecting…",refineFurther:"Refine Further",relativeTimeDays_one:"{{count}}d ago",relativeTimeDays_other:"{{count}}d ago",relativeTimeHours_one:"{{count}}h ago",relativeTimeHours_other:"{{count}}h ago",relativeTimeJustNow:"just now",relativeTimeMinutes_one:"{{count}}m ago",relativeTimeMinutes_other:"{{count}}m ago",relativeTimeWeeks_one:"{{count}}w ago",relativeTimeWeeks_other:"{{count}}w ago",remove:"Remove",retryFailed:"Retry failed. Please try again.",retrying:"Retrying...",sessionActiveOtherTab:"This session is active in another tab",sessionActiveOtherTabLive:"This session is active in another tab (live heartbeat)",sessionFailed:"Session failed while contacting the AI.",sessionFailed2:"Session failed",showArchived:"Show archived",showFormattedMarkdown:"Show formatted markdown",showQA:"Show user Q&A",showRawText:"Show raw text",showThinking:"Show thinking",sizeLarge:"L (Large)",sizeMedium:"M (Medium)",sizeSmall:"S (Small)",startPlanning:"Start Planning",statusComplete:"Complete",statusError:"Error",statusGenerating:"Generating",statusNeedsInput:"Needs input",stop:"Stop",subtaskDescription:"Description",subtaskPriority:"Priority",subtaskSize:"Size",subtaskTitle:"Title",suggestedDependencies:"Suggested Dependencies",suggestedSize:"Suggested Size",takeControl:"Take Control",takingControl:"Taking control...",thinkingElapsed:"Thinking… ({{seconds}}s)",title:"Planning Mode",tryAnExample:"Try an example:",typeAnswerPlaceholder:"Type your answer here...",unarchiveSession:"Unarchive session",untitled:"Untitled",untitledSession:"Untitled session",usingDefault:"Using default",whatToBuild:"What do you want to build?",whatToBuildPlaceholder:"e.g., Build a user authentication system with login, signup, and password reset..."},He={addItem:"Add Item",aiScanDisabled:"AI scan on load disabled",aiScanEnabled:"AI scan on load enabled",aiScanHint:"Turning this on only updates configuration. Use Rescan and Reload to run it now.",author:"Author:",backToList:"Back to plugin list",browseRegistry:"Browse Registry",builtinDisabled:"Disabled",builtinInstalledGlobally:"{{name}} installed globally",builtinInstallFailed:"Failed to install {{name}}: {{error}}",builtinMetadataOnly:"Built-in metadata only",builtinNoPackage:"{{name}} is built in and does not have an installable package yet",builtinPluginRecommendations:"Built-in plugin recommendations",builtinPlugins:"Built-in Plugins",builtinPluginsCatalog:"Built-in plugin catalog for runtimes and integrations.",cancel:"Cancel",checkingSetup:"Checking setup...",componentUnavailable:"Plugin component unavailable",couldNotResolve:"The dashboard could not resolve this plugin surface from the static host registry.",disabledForProject:"{{name}} disabled for this project",disableInProject:"Disable in Project",disablePlugin:"Disable {{name}}",disablePluginFailed:"Failed to disable plugin: {{error}}",droidOnboardingTip:"Tip: Enable Droid CLI to reuse your Factory AI subscription without adding an API key.",droidRecommendDesc:"Use your local Droid CLI session as an AI provider in Fusion.",droidRecommendTitle:"Enable Droid CLI",enableAiScanBeforeLoad:"Enable AI scan before load/reload",enableAiSecurityScan:"Enable AI security scan on load",enabledForProject:"{{name}} enabled for this project",enableFailed:"Failed to enable {{name}}: {{error}}",enableInProject:"Enable in Project",enablePlugin:"Enable {{name}}",enablePluginFailed:"Failed to enable plugin: {{error}}",experimental:"Experimental",findings_one:"Findings ({{count}})",findings_other:"Findings ({{count}})",homepage:"Homepage:",install:"Install",installedGlobally:"Plugin installed globally",installedPlugins:"Installed Plugins",installFailed:"Failed to install plugin: {{error}}",installFromRegistry:"Install",installHint:"Browse to a plugin package root (contains manifest.json) or a built dist directory.",installing:"Installing...",installNamed:"Install {{name}}",installPathPlaceholder:"Absolute path to plugin directory or dist folder",installPathRequired:"Please enter a plugin path",installPluginGlobally:"Install Plugin Globally",installSetup:"Install Setup",loadFailed:"Failed to load plugins: {{error}}",loading:"Loading...",loadingPlugins:"Loading plugins...",manage:"Manage",noConfigurableSettings:"No configurable settings.",noHostRegistration:"No host registration found for",noPluginsHint:"Install a plugin to get started, or use the built-in catalog below.",noPluginsInstalled:"No plugins installed.",noSecurityScan:"No security scan has been run yet.",openAuthentication:"Open Authentication",openOnboarding:"Open Onboarding",refresh:"Refresh",refreshPluginList:"Refresh plugin list",registryByAuthor:"By {{author}}",registryCategory:"Registry category",registryCategoryAll:"All Categories",registryCategoryIntegration:"Integration",registryCategoryRuntime:"Runtime",registryComingSoon:"Coming Soon",registryDescription:"Discover curated runtimes and integrations that can be added to this Fusion workspace.",registryEmpty:"No registry plugins are available.",registryEmptySearch:"No registry plugins match your search.",registryInstalled:"{{name}} installed and enabled",registryInstallFailed:"Failed to install {{name}}: {{error}}",registryLoadFailed:"Failed to load registry: {{error}}",registryLoading:"Loading registry...",registryNotInstallable:"{{name}} is not available for one-click install yet",registryPluginResults:"Registry plugin results",reload:"Reload",reloaded:"{{name}} reloaded",reloadFailed:"Failed to reload plugin: {{error}}",reloading:"Reloading...",removeItem:"Remove item",rescanAndReload:"Rescan and Reload",rescanFailed:"Failed to rescan plugin: {{error}}",rescanned:"{{name}} rescanned",retry:"Retry",saveSettings:"Save Settings",saveSettingsFailed:"Failed to save settings: {{error}}",searchRegistry:"Search registry",searchRegistryPlaceholder:"Search registry plugins",securityScan:"Security Scan",selectOption:"Select...",settings:"Settings",settingsSaved:"Settings saved",settingUp:"Setting up...",setupInstalled:"{{name}} setup installed",setupInstallFailed:"Failed to install {{name}} setup: {{error}}",setupReady:"Setup ready",setupRequired:"Setup required",startPluginToCheckSetup:"Start plugin to check setup",statusBuiltIn:"Built in",statusInstalled:"Installed",statusNotInstalled:"Not installed",uninstallConfirm:'Are you sure you want to uninstall "{{name}}" globally (all projects)?',uninstalledGlobally:"{{name}} uninstalled globally",uninstallFailed:"Failed to uninstall plugin: {{error}}",uninstallGlobally:"Uninstall Globally",uninstallGloballyTitle:"Uninstall globally",uninstallTitle:"Uninstall Plugin Globally",unknownError:"unknown error",updateFailed:"Failed to update plugin: {{error}}",version:"Version:",viewUnavailable:"Plugin view unavailable"},Be={authFail:"Run gh auth login and try again.",authOk:"GitHub CLI auth is available.",baseBranch:"Base branch",bodyLabel:"Body",branchRemoteFail:"Push branch to remote before creating a PR.",branchRemoteOk:"Remote branch is available.",changedFilesLabel:"Changed files",checkAuth:"GitHub auth available",checkBranch:"Branch pushed to remote",checkCommits:"Commits available",checkConflicts:"No conflicts with base",commitsFail:"No commits found for this branch.",commitsLabel:"Commits",commitsOk:"Commits are ready to submit.",conflictsDetected:"Conflicts detected. Resolve conflicts or re-run preflight.",createAsDraft:"Create as draft",createDraftPr:"Create draft PR",createPr:"Create PR",createTitle:"Create Pull Request",dismissError:"Dismiss PR error",noConflicts:"No merge conflicts detected.",preflightChecks:"Pre-flight checks",previewTitle:"Diff & commit preview",regenerate:"Regenerate",rerunPreflight:"Re-run preflight",revertToAi:"Revert to AI version",titleLabel:"Title",usingTemplate:"Using <code>.github/pull_request_template.md</code>",assignees:"Assignees",dismissConflictResolutionError:"Dismiss conflict resolution error",dismissPushBranchError:"Dismiss push branch error",error:{actionOpen:"Action: open",actionRun:"Action: run",docs:"docs"},generatingBody:"Generating AI body…",generatingTitle:"Generating AI title…",labels:"Labels",loadingOptions:"Loading PR options…",loadingPreflight:"Loading pre-flight checks…",noChangedFiles:"No changed files detected.",noCommits:"No commits found.",pushBranch:{button:"Push branch to remote",message:"Fusion will push this task's branch to origin so the PR can be created.",title:"Push branch to remote"},resolveConflicts:{button:"Resolve conflicts with AI",message:"Fusion will use AI to resolve conflicts on this branch and push it.",title:"Resolve conflicts with AI"},reviewers:"Reviewers",view:{agentDisagreed:"agent disagreed",agentReplyFix:"Agent reply — fix {{sha}}",approve:"Approve",autoMerge:"Auto-merge",close:"Close",confirmMerge:"Confirm merge",creating:"Creating PR…",creationFailed:"PR creation failed",backToList:"Back to list",listEmpty:"No active pull requests to show.",listError:"Failed to load pull requests",listItemLabel:"Open pull request {{repo}} {{number}}",listLoading:"Loading pull requests…",listTitle:"Active pull requests",loading:"Loading PR…",merge:"Merge",mergeableLabel:"Mergeable:",mergeDisabledUntilVerified:"Merge is disabled until GitHub verifies this PR",none:"none",noReviewThreads:"No review threads.",requestRetry:"Request retry",resolveConflictsBeforeMerge:"Resolve conflicts on GitHub before merging",resolveConflictsOnGithub:"Resolve conflicts on GitHub",responseAlreadyInProgress:"A response run is already in progress",responsePending_one:"Response run in progress — {{count}} threads pending",responsePending_other:"Response run in progress — {{count}} threads pending",retryCreation:"Retry PR creation",reviewLabel:"Review:",threadFixed:"fixed",threadPending:"pending",verifyingGithub:"Verifying with GitHub…"}},Oe={blockedDescription:"You can view the preview in a separate browser tab.",blockedTitle:"Preview cannot be embedded",errorTitle:"Unable to load preview",loading:"Loading preview...",openInNewTab:"Open in new tab"},Ue={activeTasks:"Active Tasks",agents:"Agents",cannotPauseWhileInitializing:"Cannot stop engine while initializing",completed:"Completed",confirm:"Confirm",confirmRemove:"Confirm remove",confirmRemoveProject:"Confirm remove project",daysAgo_one:"{{count}}d ago",daysAgo_other:"{{count}}d ago",hoursAgo_one:"{{count}}h ago",hoursAgo_other:"{{count}}h ago",justNow:"Just now",lastActivity:"Last activity:",minutesAgo_one:"{{count}}m ago",minutesAgo_other:"{{count}}m ago",moreItems_one:"+{{count}} more",moreItems_other:"+{{count}} more",never:"Never",nodeAvailability:"Project node availability",noHealthData:"No health data available",open:"Open",openProject:"Open project",pause:"Stop engine",pauseProject:"Stop engine",removeProject:"Remove project",resume:"Start engine",resumeProject:"Start engine"},_e={editName:"Edit name",empty:"No projects detected",emptyHint:"Try a different base path or add a project manually",noDbWarning:"No fn database found - will be initialized",registerAll:"Register All",registering:"Registering...",registerSelected_one:"Register Selected ({{count}})",registerSelected_other:"Register Selected ({{count}})",selectAll_one:"Select All ({{count}})",selectAll_other:"Select All ({{count}})",selectedCount_one:"{{count}} selected",selectedCount_other:"{{count}} selected"},je={actions:{favoritesError:"Failed to update favorites",modelFavoritesError:"Failed to update model favorites",pauseError:"Failed to pause project {{name}}",pauseSuccess:"Project {{name}} paused",removeError:"Failed to remove project {{name}}",removeSuccess:"Project {{name}} removed",resumeError:"Failed to resume project {{name}}",resumeSuccess:"Project {{name}} resumed"},activeTasksLabel:"Active Tasks",addFirstProject:"Add Your First Project",addProject:"Add Project",allNodes:"All Nodes",completedLabel:"Completed",emptyStateDescription:"Get started by adding your first project. Projects allow you to organize and track tasks across multiple repositories.",erroredLabel:"Errored",filterActive:"Active",filterAll:"All",filterByNode:"Filter by node",filterErrored:"Errored",filterPaused:"Paused",nodesLabel:"Nodes",noMatch:"No projects match the current filter",noProjectsFound:"No Projects Found",setup:{success:"Project {{name}} registered successfully"},showAll:"Show All Projects",sortActivityNewest:"Last Activity (Newest)",sortActivityOldest:"Last Activity (Oldest)",sortNameAsc:"Name (A-Z)",sortNameDesc:"Name (Z-A)",sortProjects:"Sort projects",sortStatusAsc:"Status (Error → Active)",sortStatusDesc:"Status (Active → Error)",title:"Projects",totalLabel:"Total"},qe={addBookmark:"Bookmark project",allProjects:"All Projects",ariaLabel:"Select project",bookmarked:"Bookmarked",clearSearch:"Clear search",exact:"Exact",exactMatch:"Exact match — press Enter to select",noResults:"No projects match your search",projects:"Projects",projectsTitle:"Projects",recent:"Recent",removeBookmark:"Remove bookmark",searchAriaLabel:"Type to search projects",searchPlaceholder:"Search projects...",switchProjectTitle:"Switch project (current: {{name}})",viewAll:"View All Projects"},We={actions:{addModel:"+ Add model",detecting:"Detecting…",detectModels:"Detect Models",detectModelsTitle:"Call the provider's /models endpoint to discover available models",removeModel_one:"Remove model",removeModel_other:"Remove model",save:"Save Provider",saving:"Saving..."},addCustom:"Add Custom Provider",apiKeyKeepPlaceholder:"Leave blank to keep current key",apiKeyLabel:"API key",apiTypeAnthropic:"Anthropic-compatible",apiTypeGoogle:"Google Generative AI",apiTypeInvalid:"API type is invalid.",apiTypeLabel:"API type",apiTypeOpenAi:"OpenAI-compatible",apiTypeOpenAiResp:"OpenAI Responses",baseUrlLabel:"Base URL",deleteConfirm:'Delete custom provider "{{name}}"?',deleteLabel:"Delete {{name}}",detectError:{allDuplicate:"All discovered models are already in the list.",failed:"Failed to detect models",noModels:"No models found. The provider may require an API key.",urlRequired:"Base URL is required to detect models."},detecting:"Detecting…",detectModels:"Detect Models",detectTitle:"Auto-detect models from the provider's /models endpoint",editLabel:"Edit {{name}}",failedDelete:"Failed to delete provider.",failedDetect:"Failed to detect models",failedLoad:"Failed to load custom providers.",failedSave:"Failed to save provider.",fields:{apiKey:"API Key",apiType:"API Type",baseUrl:"Base URL",contextWindow:"Context window",id:"Provider ID",maxTokens:"Max tokens",modelId:"Model ID",modelName:"Display name",modelNameLabel:"Model name",models:"Models",name:"Display Name",reasoning:"Reasoning"},llamaCpp:{disable:"Disable",disabling:"Disabling…",enable:"Enable",enabling:"Enabling…",probing:"Probing llama.cpp server…",reachable:"Server reachable at {{url}}",test:"Test",testing:"Testing…",title:"llama.cpp — via HTTP server",unavailable:"Server unavailable: {{reason}}"},loading:"Loading custom providers…",modelsLabel:"Available models",nameLabel:"Provider name",nameRequired:"Provider name is required.",noModelsFound:"No models found. The provider may require an API key.",noneConfigured:"No custom providers configured.",placeholders:{apiKey:"sk-..., MY_API_KEY, or !command"},saveChanges:"Save Changes",saveProvider:"Save Provider",saving:"Saving…",urlInvalid:"Base URL must be a valid http/https URL.",urlRequired:"Base URL is required.",urlRequiredForDetect:"Base URL is required to detect models.",validation:{apiTypeRequired:"API type is required.",idConflict:"Provider ID conflicts with a built-in provider.",idKebabCase:"Provider ID must be kebab-case.",idRequired:"Provider ID is required.",modelId:"Each model must have a model ID.",modelRequired:"At least one model is required.",urlProtocol:"Base URL must use http or https.",urlRequired:"Base URL is required.",urlValid:"Base URL must be a valid URL."}},Ge={errorAttachmentsBeforeSession:"Cannot send attachments before chat session is ready",errorAttachmentsWhileStreaming:"Cannot send attachments while a response is streaming",errorGettingResponse:"Failed to get response",errorInitializingChat:"Failed to initialize chat",errorRefreshingSessions:"Failed to refresh chat sessions",errorStartingNewChat:"Failed to start a new chat"},Ve={bouncedEntered:"{{bounced}} bounced / {{entered}} entered (last {{days}}d)",countingSince:"Counting since {{date}}",details:"Details",duration:{heading:"Duration",moreStats:"More stats",p50:"P50",p50Raw:"P50 raw: {{value}} ms",p95:"P95",p95Raw:"P95 raw: {{value}} ms",reason:"Reason: {{reason}}",sampleCount_one:"Sample count: {{count}}",sampleCount_other:"Sample count: {{count}}",samples_one:"Samples: {{count}}",samples_other:"Samples: {{count}}"},failedToLoad:"Failed to load reliability metrics",failureRate:"Failure rate: {{rate}}",flowChart:{aria:"In-review entered vs bounced per day",bounced:"Bounced",empty:"No in-review flow data",entered:"Entered",heading:"Entered vs bounced trend"},heading:"Reliability",hideEmptyDays:"Hide empty days",inReviewFlow:"In-review flow",insufficientData:"Insufficient data — {{reason}}",loading:"Loading reliability data...",mergeAttempts:{heading:"Merge attempts",histogramTotal_one:"Histogram total: {{count}}",histogramTotal_other:"Histogram total: {{count}}",max:"Max",mean:"Mean",moreStats:"More stats",reason:"Reason: {{reason}}",tasksCounted_one:"Tasks counted: {{count}}",tasksCounted_other:"Tasks counted: {{count}}"},mergeAttemptsChart:{aria:"Merge attempts histogram",empty:"No merge attempt data",heading:"Attempts distribution"},reason:"Reason: {{reason}}",resetBaseline:"Reset baseline: {{date}}",resetModal:{confirm:"Confirm reset",description:"This sets a new baseline for reliability statistics. Historical events older than the reset time are excluded from counts but are not deleted.",failedError:"Failed to reset reliability stats",title:"Reset reliability stats?"},resetStats:"Reset stats",showEmptyDays:"Show empty days",successRateLabel:"In-review success rate (last 7d)",table:{bounced:"Bounced",date:"Date",entered:"Entered"},window:"Window: {{start}} → {{end}}"},ze={actionFailed:"Action failed",addCredentialsHint:"Add provider credentials in Authentication settings.",alwaysOn:"Always on",attachExport:"Attach markdown export artifact",createRun:"Create Run",createRunFailed:"Failed to create run",createTask:"Create Task",createTaskButton:"Create Task",createTaskTitle:"Create task from finding",currentDefaults:"Current defaults: provider {{provider}}, max sources {{maxSources}}",defaultFindingHeading:"Research finding",descriptionLabel:"Description",disabled:"Research is disabled for this project.",enableResearchHint:"Enable project research settings to create runs.",enrichTask:"Enrich Task",enrichTaskButton:"Enrich Task",enrichTaskTitle:"Enrich existing task",enterTaskId:"Enter task ID",exportedFile:"Exported {{filename}}",exportFailed:"Export failed",exportHtml:"Export HTML",exportJson:"Export JSON",exportMd:"Export MD",findingLabel:"Finding:",loadingRuns:"Loading research runs…",loadingTasks:"Loading tasks…",missingApiKey:"Missing API key for {{provider}}.",noPreview:"No preview available.",noRunSelected:"No run selected",noRunsYet:"No research runs yet",noSourcesAvailable:"No enabled research sources are available for this project.",noSummaryYet:"No summary yet.",notSet:"(not set)",openAuthSettings:"Open Authentication Settings",openResearchSettings:"Open Research Settings",priorityHigh:"High",priorityLabel:"Priority",priorityLow:"Low",priorityNormal:"Normal",priorityUrgent:"Urgent",providersLabel:"Providers",queryLabel:"Query",runCancelled:"Run cancelled",runCreated:"Research run created",runHistory:"Run history",runLabel:"Run:",runRetried:"Run retried",searchRunsPlaceholder:"Search runs",selectRunToViewDetails:"Select a run to view details.",statCompleted:"Completed",statFailed:"Failed",statRunning:"Running",subtitle:"Cited search and synthesis runs: gather sources, fetch content, and synthesize findings.",targetTaskLabel:"Target task",taskCreatedFromResearch:"Task created from research",taskEnrichedFromResearch:"Task enriched from research",title:"Research",titleLabel:"Title",unavailable:"Research is unavailable for this project.",viewLabel:"Research view"},Ke={closeExpandedView:"Close expanded right dock view",collapse:"Collapse right dock",expand:"Expand right dock",expandView:"Expand {{label}}",label:"Right dock",resize:"Resize right dock",viewExpanded:"{{label}} expanded",views:"Right dock views",resizeExpandedView:"Resize expanded right dock window"},Ye={andMore_one:"…and {{count}} more",andMore_other:"…and {{count}} more",delete:"Delete",deleteMessage:"Delete routine {{name}}? This cannot be undone.",deleteName:"Delete {{name}}",deleteTitle:"Delete Routine",disable:"Disable",disableName:"Disable {{name}}",edit:"Edit",editName:"Edit {{name}}",enable:"Enable",enableName:"Enable {{name}}",resultFailed:"Failed",resultSuccess:"Success",runHistory_one:"Run History ({{count}})",runHistory_other:"Run History ({{count}})",runNameNow:"Run {{name}} now",running:"Running…",runNow:"Run now",stepCount_one:"{{count}} step",stepCount_other:"{{count}} steps"},Qe={cannotChangeWhileActive:"Node override cannot be changed while the task is active.",clearOverride:"Clear override",effectiveNode:"Effective node",errorLoadingNodes:"Failed to load nodes",errorUpdatingOverride:"Failed to update node override",intro:"View the effective execution node and control per-task node override.",localNoConfiguration:"Local (no routing configured)",lockedWhileActive:"Routing is locked while this task is active. Node override cannot be changed until the task is no longer active.",nodeOptionLabel:"{{name}} ({{type}}) — {{status}}",nodeUnavailable:"node unavailable or unknown",overrideCleared:"Node override cleared",overrideSection:"Node Override",overrideSetTo:"Override set to",overrideUpdated:"Node override updated",selectLabel:"Select execution node",source:{noRouting:"No routing",override:"Per-task override",projectDefault:"Project default"},sourceLabel:"Routing source",summarySection:"Routing Summary",title:"Task Routing",unavailablePolicy:"Unavailable-node policy",unhealthy:"Unhealthy",useProjectDefault:"Use project default"},Je={nousResearchLogoAlt:"Nous Research"},Xe=JSON.parse(`{"actionAiPrompt":"AI Prompt","actionCommand":"Command","actionCreateTask":"Create Task","actionModeAdvanced":"Multi-Step","actionModeAdvancedHint":"Run multiple actions sequentially","actionModeAriaLabel":"Action mode","actionModeLabel":"Action Mode","actionModeSimple":"Simple","actionModeSimpleHint":"Run one command, prompt, or task creation action","actionTypeAiPrompt":"AI Prompt","actionTypeAriaLabel":"Action type","actionTypeCommand":"Command","actionTypeCreateTask":"Create Task","actionTypeLabel":"Action Type","addAiPromptStep":"Add AI Prompt Step","addCommandStep":"Add Command Step","addCreateTaskStep":"Add Create Task Step","advancedMode":"Multi-Step","advancedModeHelp":"Run multiple steps sequentially (commands and AI prompts)","aiPromptType":"AI Prompt","allowedToolsHint":"AI prompt steps use all tools by default. Clear tools only when this automation should run without tool access.","allowedToolsLabel":"Allowed tools","andMore_one":"…and {{count}} more","andMore_other":"…and {{count}} more","apiEndpointHint":"API endpoint path that triggers this routine","apiEndpointLabel":"API Endpoint","apiEndpointPlaceholder":"/api/routine/my-routine","automationCount_one":"{{count}} automation{{plural}}","automationCount_other":"{{count}} automation{{plural}}","cancelButton":"Cancel","catchUpPolicyHint":"What to do when a scheduled run is missed","catchUpPolicyLabel":"Catch-up Policy","catchUpPolicyRunAll":"Run all missed runs","catchUpPolicyRunOne":"Run the most recent missed run","catchUpPolicySkip":"Skip missed runs","columnTodo":"To Do","columnTriage":"Planning","command":"Command","commandHelp":"Shell command to execute. Runs with your user permissions.","commandHint":"Shell command to execute.","commandLabel":"Command","commandPlaceholder":"e.g. npx runfusion.ai backup --create","commandRequired":"Command is required","commandType":"Command","continueOnFailure":"Continue on failure","continueOnFailureHelp":"If checked, the next step will run even if this one fails","continuesOnFailure":"Continues on failure","createButton":"Create Schedule","createError":"Failed to create routine","createFirst":"Create your first automation","createNew":"Create new automation","createRoutine":"Create Routine","createTaskType":"Create Task","cronAutoFilled":"Auto-filled from preset: {{cron}}","cronAutoFilledHint":"Auto-filled from preset: {{expression}}","cronCustomHint":"min hour day month weekday","cronExpressionLabel":"Cron Expression","cronHelp":"min hour day month weekday — ","cronInvalid":"Invalid cron format — expected 5 fields (e.g. '0 */6 * * *')","cronLabel":"Cron Expression","cronPresetCustom":"Custom cron expression","cronPresetDaily":"Every day (midnight)","cronPresetHourly":"Every hour","cronPresetMonthly":"Every month (1st)","cronPresetWeekly":"Every week (Monday)","cronRequired":"Cron expression is required for custom schedules","crontabGuru":"crontab.guru","clearTools":"Clear","delete":"Delete","deleteError":"Failed to delete routine","deleteMessage":"Delete schedule {{name}}? This cannot be undone.","deleteName":"Delete {{name}}","deleteStep":"Delete {{name}}","deleteTitle":"Delete Schedule","descriptionLabel":"Description (optional)","descriptionPlaceholder":"What does this routine do?","disable":"Disable","disableName":"Disable {{name}}","edit":"Edit","editName":"Edit {{name}}","editRoutineHeading":"Edit Routine","editStep":"Edit {{name}}","editTitle":"Edit Schedule","emptyStateDescription":"Create an automation with a schedule, webhook, API, or manual trigger.","enable":"Enable","enabledHelp":"When disabled, the schedule will not run automatically","enabledHint":"When disabled, the routine will not run automatically","enabledLabel":"Enabled","enableName":"Enable {{name}}","errorApiEndpointRequired":"API endpoint is required","errorCommandRequired":"Command is required","errorCronInvalid":"Invalid cron format — expected 5 fields (e.g. '0 */6 * * *')","errorCronRequired":"Cron expression is required","errorLoadModels":"Failed to load models","errorModelIncomplete":"Both model provider and model ID must be set, or both must be empty","errorNameRequired":"Name is required","errorPromptRequired":"Prompt is required","errorScopeNoProject":"Project-specific entries require an active project.","errorStepCommandRequired":"Step {{n}}: Command is required","errorStepNameRequired":"Step {{n}}: Name is required","errorStepPromptRequired":"Step {{n}}: Prompt is required","errorStepsEditing":"Please save or cancel all step edits before saving the routine","errorStepsRequired":"At least one step is required","errorStepTaskDescRequired":"Step {{n}}: Task description is required","errorTaskDescriptionRequired":"Task description is required","errorTimeoutMin":"Timeout must be at least 1 second (1000ms)","errorWebhookPathRequired":"Webhook path is required","executionPolicyHint":"How to handle concurrent executions of this routine","executionPolicyLabel":"Execution Policy","executionPolicyParallel":"Allow concurrent runs","executionPolicyQueue":"Queue after current (one at a time)","executionPolicyReject":"Reject new runs while running","executorModelDropdownLabel":"Executor Model","executorModelHelp":"AI model used to execute the created task. Uses default if not selected.","executorModelLabel":"Executor Model (optional)","executorModelOptional":"Executor Model (optional)","executorModelPlaceholder":"Use default","frequencyLabel":"Frequency","global":"Global","globalScope":"Global","globalScoped":"This schedule will be created at global scope.","globalScopeTitle":"Global scope","lastLabel":"Last:","liveOutput":"Live output","liveOutputRunning":"Live output — running","liveRunComplete":"Run complete","liveRunError":"Run failed","liveRunStarting":"Starting run…","loadRoutinesError":"Failed to load routines","manualTriggerInfo":"This routine will be triggered manually via the dashboard or API.","modeAriaLabel":"Execution mode","model":"Model","modeLabel":"Execution Mode","modelConsistency":"Both model provider and model ID must be set, or both must be empty","modelDropdownLabel":"Model","modelHelp":"AI model for this prompt. Uses default if not selected.","modelLabel":"Model (optional)","modelOptional":"Model (optional)","modelPlaceholder":"Use default","modelProviderRequired":"Both model provider and model ID must be set together","moveDown":"Move down","moveStepDown":"Move {{name}} down","moveStepUp":"Move {{name}} up","moveUp":"Move up","nameLabel":"Name","namePlaceholder":"e.g. Daily standup reminder","nameRequired":"Name is required","newAutomation":"New Automation","newRoutineHeading":"New Routine","newTitle":"New Schedule","nextLabel":"Next:","noActiveProject":"No active project. Schedules will be created at global scope.","noAutomations":"No automations yet","noStepsEmpty":"No steps added yet. Add a command or AI prompt step to get started.","project":"Project","projectRequired":"Project-specific entries require an active project.","projectScope":"Project","projectScoped":"This schedule will be scoped to the current project.","projectScopeDisabled":"Select a project to enable project scope","projectScopeTitle":"Project scope","prompt":"Prompt","promptHelp":"AI prompt to execute. Provide clear instructions for the task.","promptHint":"AI prompt to execute.","promptLabel":"Prompt","promptPlaceholder":"e.g. Summarize recent activity and create action items","promptRequired":"Prompt is required","resultFailed":"Failed","resultSuccess":"Success","routineCreated":"Routine created","routineDeleted":"Deleted \\"{{name}}\\"","routineDisabled":"\\"{{name}}\\" disabled","routineEnabled":"\\"{{name}}\\" enabled","routineFailed":"\\"{{name}}\\" failed: {{error}}","routineSuccess":"\\"{{name}}\\" completed successfully","routineUpdated":"Routine updated","runError":"Failed to run routine","runHistory_one":"Run History ({{count}})","runHistory_other":"Run History ({{count}})","runNameNow":"Run {{name}} now","running":"Running…","runNow":"Run now","runsLabel":"Runs:","saveChanges":"Save Changes","saveStep":"Save Step","saving":"Saving…","scheduleLabel":"Schedule","scopeAriaLabel":"Routine scope","scopeGroup":"Scheduling scope","scopeHintGlobal":"This routine will be created at global scope.","scopeHintNoProject":"No active project. Routines will be created at global scope.","scopeHintProject":"This routine will be scoped to the current project.","scopeLabel":"Scope","scopeLocked":"Scope is locked to {{scope}} for existing schedules","scopeLockedTitle":"Scope is locked to {{scope}} for existing routines","selectAllTools":"Select all","selectProjectTitle":"Select a project to enable project scope","simpleMode":"Simple","simpleModeHelp":"Run a single shell command or AI prompt","stepCommandRequired":"Step {{index}}: Command is required","stepCount_one":"{{count}} step","stepCount_other":"{{count}} steps","stepName":"Step Name","stepNamePlaceholder":"e.g. Run tests","stepNameRequired":"Step {{index}}: Name is required","stepPromptRequired":"Step {{index}}: Prompt is required","steps":"Steps","stepsEditing":"Please save or cancel all step edits before saving the schedule","stepsRequired":"At least one step is required","stepType":"Step Type","targetColumn":"Target Column","targetColumnHelp":"Column where the new task will be created","targetColumnLabel":"Target Column","taskColumnLabel":"Target Column","taskColumnTodo":"To Do","taskColumnTriage":"Planning","taskDescription":"Task Description *","taskDescriptionHelp":"Describes the task that will be created.","taskDescriptionHint":"Describes the task that will be created.","taskDescriptionLabel":"Task Description","taskDescriptionPlaceholder":"e.g. Check npm dependencies for security vulnerabilities","taskDescriptionRequired":"Task description is required","taskTitleHelp":"Leave blank to auto-summarize from description","taskTitleLabel":"Task Title (optional)","taskTitleOptional":"Task Title (optional)","taskTitlePlaceholder":"e.g. Review weekly dependencies","timeoutHelp":"Maximum execution time in milliseconds (default 300000 = 5 min)","timeoutHint":"Maximum execution time in milliseconds.","timeoutLabel":"Timeout (ms)","timeoutMinimum":"Timeout must be at least 1 second (1000ms)","timeoutOptional":"Timeout (ms, optional)","timeoutPlaceholder":"Override schedule timeout","title":"Automations","todoColumn":"To Do","toggleError":"Failed to toggle routine","triageColumn":"Planning","triggerApi":"API","triggerCron":"Cron","triggerManual":"Manual","triggerTypeAriaLabel":"Trigger type","triggerTypeLabel":"Trigger Type","triggerWebhook":"Webhook","typeCustom":"Custom cron expression","typeDaily":"Every day (midnight)","typeEvery12Hours":"Every 12 hours","typeEvery15Min":"Every 15 minutes","typeEvery2Hours":"Every 2 hours","typeEvery30Min":"Every 30 minutes","typeEvery6Hours":"Every 6 hours","typeHourly":"Every hour","typeMonthly":"Every month (1st)","typeWeekdays":"Weekdays at 9 AM (Mon-Fri)","typeWeekly":"Every week (Monday)","unknownError":"Unknown error","updateError":"Failed to update routine","useDefault":"Use default","webhookPathHint":"URL path for the webhook endpoint","webhookPathLabel":"Webhook Path","webhookPathPlaceholder":"/trigger/my-routine","webhookSecretHint":"HMAC secret for signature verification. Leave empty for unauthenticated webhooks.","webhookSecretLabel":"Webhook Secret (optional)","webhookSecretPlaceholder":"Optional — leave empty for unauthenticated webhooks"}`),Ze={title:"Scripts"},$e={addScript:"Add Script",addScriptsHint:"Add scripts to quickly run common commands from the dashboard.",cancelDelete:"Cancel delete",command:"Command",commandPlaceholder:"e.g., npm run build",confirmDelete:"Confirm delete",confirmDeleteNamed:"Confirm delete {{name}}",deleteScriptNamed:"Delete {{name}}",editScriptNamed:"Edit {{name}}",failedToDelete:"Failed to delete script",failedToLoadScripts:"Failed to load scripts",failedToSave:"Failed to save script",loadingScripts:"Loading scripts...",nameErrorMsg:"Name must contain only letters, numbers, hyphens, and underscores (no spaces)",nameHint:"Letters, numbers, hyphens, and underscores only",noScriptsDefined:"No scripts defined",noScriptsYet:"No scripts defined yet.",runScript:"Run script",runScriptNamed:"Run {{name}}",saving:"Saving...",scriptAlreadyExists:"A script with this name already exists",scriptCommandRequired:"Script command is required",scriptCount_one:"{{count}} script",scriptCount_other:"{{count}} scripts",scriptCreated:"Script created",scriptDeleted:"Script deleted",scriptName:"Script Name",scriptNamePlaceholder:"e.g., build, test, lint",scriptNameRequired:"Script name is required",scriptUpdated:"Script updated",title:"Scripts"},et={accessPolicyAuto:"auto",accessPolicyDeny:"deny",accessPolicyLabel:"Access policy",accessPolicyPrompt:"prompt",addSecret:"Add Secret",addSecretModalTitle:"Add secret",cancelBtn:"Cancel",cancelDelete:"Cancel",clearSyncPassphrase:"Clear",closeAriaLabel:"Close",confirmClearSyncPassphrase:"Clear the cross-node sync passphrase? Existing sync pairs will stop working until you set a new passphrase.",confirmDelete:"Confirm",confirmPassphraseLabel:"Confirm passphrase",copied:"Copied",copyAriaLabel:"Copy",createBtn:"Create",deleteAriaLabel:"Delete",descriptionLabel:"Description",editAriaLabel:"Edit",editSecretModalTitle:"Edit secret",empty:"No secrets found.",envExportableChip:"env exportable",envKeyLabel:"Env key",errorClearSyncPassphrase:"Failed to clear sync passphrase: {{error}}",errorLoadSyncStatus:"Failed to load sync passphrase status: {{error}}",errorSaveSyncPassphrase:"Failed to save sync passphrase: {{error}}",exportToEnvLabel:"Export to env",hideAriaLabel:"Hide",hideValueAriaLabel:"Hide value",keyLabel:"Key",loading:"Loading…",neverRead:"Never read",passphraseLabel:"Passphrase",passphraseMustMatch:"Passphrases must match.",refresh:"Refresh",revealAriaLabel:"Reveal",revealed:"Revealed",rotateSyncPassphrase:"Rotate",rotateSyncPassphraseModalTitle:"Rotate sync passphrase",saveBtn:"Save",scopeGlobal:"Global",scopeLabel:"Scope",scopeProject:"Project",setPassphrase:"Set passphrase",setSyncPassphraseModalTitle:"Set sync passphrase",showValueAriaLabel:"Show value",syncConfigured:"Configured",syncNotConfigured:"Not configured",syncPassphraseCleared:"Sync passphrase cleared",syncPassphraseDescription:"Shared passphrase used to wrap cross-node secret bundles. Both nodes in a sync pair must share the same value. Stored locally only; never transmitted.",syncPassphraseRotated:"Sync passphrase rotated",syncPassphraseSet:"Sync passphrase set",syncPassphraseTitle:"Cross-Node Sync Passphrase",title:"Secrets",valueLabel:"Value"},tt={addComment:"Add comment",addCommentAria:"Add a comment to the selected text and send it to a new task",cancel:"Cancel",commentAria:"Comment for the new task",commentPlaceholder:"Describe the task this snippet should become…",dialogAria:"Comment on selected text",selectedSnippet:"Selected snippet",sendToNewTask:"Send to new task",title:"Comment on selection"},ot={cli:{actionUnavailable:"Action unavailable"},dismissAll:"Dismiss all",dismissItem:"Dismiss {{title}}",failed:"Failed",headerAwaitingAndErrorPlural:"{{awaitingCount}} AI sessions need your input, {{errorCount}} failed",headerAwaitingAndErrorSingular:"{{awaitingCount}} AI session needs your input, {{errorCount}} failed",headerAwaitingPlural_one:"",headerAwaitingPlural_other:"",headerAwaitingSingular_one:"",headerAwaitingSingular_other:"",headerErrorPlural_one:"",headerErrorPlural_other:"",headerErrorSingular_one:"",headerErrorSingular_other:"",regionLabel:"AI sessions needing input or failed",resume:"Resume",retry:"Retry"},at=JSON.parse(`{"actions":{"cancel":"Cancel","save":"Save"},"agentPermissions":{"agentPermissions":"Agent Permissions","agentProvisioningApprovals":"Agent Provisioning Approvals","configureProjectLevelApprovalBehaviorForDurableProvisioning":" Configure project-level approval behavior for durable provisioning tools (fn_agent_create/fn_agent_delete). Default: no approval policy configured (empty). ","perAgentSettingsOverrideProjectDefaultsEachCategory":"Project defaults apply to permanent agents, ephemeral task workers, and fallback executor workers unless a per-agent override is set. Exact tool rules compose with the legacy ephemeral create-task toggle. Default: unset — every action category defaults to allow until a category is explicitly restricted."},"appearance":{"hideAISessionNotificationBanners":"Hide AI session notification banners","language":"Language","languageAuto":"Auto","languageAutoHint":"Follow the browser language","suppressTheLdquoNeedsYourInputRdquoBanner":" Suppress the &ldquo;needs your input&rdquo; banner that appears when AI sessions are awaiting input or have failed. ","title":"Appearance","openTasksInRightSidebarHelp":"When enabled, board task cards open detail in the right sidebar when it is available; mobile and hidden-sidebar states keep the full task panel. Default: disabled.","openMobileTasksInPopupHelp":"When enabled, ordinary board task-card and right-dock Tasks-list clicks open the existing task popup so the board or list remains visible. Deep-tab and other task opens keep their current behavior. Default: disabled.","taskPopupsBoardListOnly":"Keep task popups on their Board/List view","taskPopupsBoardListOnlyHelp":"When enabled, each open task-detail popup appears only on the Board or List view where it was opened. Switching to another view hides it without closing; returning to that view restores it in the same position. Default: disabled.","taskDetailChatFirstHelp":"Off by default: task details list Activity first and omitted non-done opens land on Activity. Turn on to restore Chat-first order/default; explicit Chat links still work either way.","showCostBadgeOnCards":"Show cost badges on task cards","showCostBadgeOnCardsHelp":"Default: disabled. When enabled, board cards show derived model cost next to execution time; unavailable pricing displays — and tasks without token usage show no badge."},"auth":{"apiKeyCleared":"API key cleared","apiKeySaved":"API key saved","authCodeAlreadySubmitted":"That authorization code was already submitted. Waiting for login…","authCodeReceived":"Authorization code received. Finishing login…","clearKey":"Clear","continueToLogin":"Continue to login","copiedCodeToClipboard":"Copied code to clipboard","copyCode":"Copy code","enterCodeOnGitHub":"Enter this code on GitHub","failedToCopyCode":"Failed to copy code — copy it manually from the box above","groupAuthenticated":"Authenticated","groupAvailable":"Available","hint":"Authentication changes take effect immediately — no need to save.","loadingStatus":"Loading authentication status…","loggedOut":"Logged out","loggingOut":"Logging out…","login":"Login","loginAlreadyInProgress":"Login already in progress. You can cancel it and retry.","loginCancelled":"Login cancelled","loginDidNotComplete":"Login did not complete. Please try again.","loginSuccessful":"Login successful","logout":"Logout","manualPasteMessage":"After you sign in with {{name}}, the browser will try to redirect to a localhost address that this dashboard can't reach. The redirect tab will look like it failed. Before that happens, copy the full URL from the browser address bar — you'll paste it back here to finish login. Continue?","manualPasteTitle":"Heads up — manual paste-back required","noProviders":"No providers available","openGitHub":"Open GitHub","pasteRedirectUrlFirst":"Paste the full redirect URL or authorization code first.","reopenOnboarding":"Reopen onboarding guide","reopenOnboardingHint":"Re-run the setup wizard to review or update your AI provider and model configuration.","savingKey":"Saving…","signInHint":"Sign in to at least one provider to get started with AI models.","statusActive":"✓ Active","statusNotConnected":"✗ Not connected","title":"Authentication","waitingForLogin":"Waiting for login…"},"authentication":{"enterAPIKey":"Enter API key","key":"Key: "},"backups":{"02":"0 2 * * *","03":"0 3 * * *","agentsOnlyFusionAgentMemory":"Agents only (.fusion/agent-memory)","allProjectAgents":"All (project + agents)","and":"...and ","backupCreated":"Backup created successfully","backupDirectory":"Backup Directory","backupNow":"Backup Now","backups":"backups","backupS":" backup(s)","backupScheduleCron":"Backup Schedule (Cron)","creating":"Creating…","cronExpressionForBackupTimingDefault02":" Cron expression for backup timing. Default: 0 2 * * * (daily at 2 AM). Examples: 0 * * * * (hourly), 0 0 * * 0 (weekly), */15 * * * * (every 15 min) ","cronExpressionForMemoryBackupTimingDefault0":"Cron expression for memory backup timing. Default: 0 3 * * * (daily at 3 AM).","currentBackups":"Current Backups","databaseBackups":"Database Backups","directoryForBackupFilesRelativeToProjectRoot":"Directory for backup files, relative to project root. Default: .fusion/backups.","directoryForMemoryBackupsRelativeToProjectRoot":"Directory for memory backups, relative to project root. Default: .fusion/backups/memory.","enableAutomaticDatabaseBackups":" Enable automatic database backups ","enableAutomaticMemoryBackups":" Enable automatic memory backups ","fusionBackups":".fusion/backups","fusionBackupsMemory":".fusion/backups/memory","invalidCronExpressionFormat":"Invalid cron expression format","loadingBackupInfo":"Loading backup info…","memoryBackupDirectory":"Memory Backup Directory","memoryBackups":"Memory Backups","memoryBackupScheduleCron":"Memory Backup Schedule (Cron)","memoryBackupScope":"Memory Backup Scope","memoryRetentionCount":"Memory Retention Count","more":" more","mustBeBetween1And100":"Must be between 1 and 100","numberOfBackupFilesToKeepOldestAre":"Number of backup files to keep (oldest are deleted first). Range: 1-100. Default: 7.","numberOfMemoryBackupsToKeepOldestAre":"Number of memory backups to keep (oldest are deleted first). Range: 1-100. Default: 14.","pathCannotContainParentDirectoryTraversal":"Path cannot contain parent directory traversal (..)","projectOnlyFusionMemory":"Project only (.fusion/memory)","retentionCount":"Retention Count","totalSize":"total size","view":"View ","whenEnabledProjectAndAgentMemoryFilesAre":"When enabled, project and agent memory files are backed up automatically on a schedule. Default: disabled.","whenEnabledTheDatabaseIsBackedUpAutomatically":"When enabled, the database is backed up automatically on a schedule. Default: disabled.","createFailed":"Failed to create backup","memoryBackupScopeHint":"Default: all (project + agents)."},"clearToDefault":"Reset to default","cliAgents":{"adapterLabel":"Adapter","approvedNote":"Elevated autonomy is approved for this project.","approveFailed":"Failed to record autonomy approval","autonomy":{"default":"Default (request approvals)","elevated":"Elevated (bypass approvals)"},"autonomyHelp":"Elevated autonomy requires a per-project approval before the agent can launch.","autonomyLabel":"Autonomy mode","commandHelp":"Path or name of the binary to launch. A non-default value is treated as privileged and requires autonomy approval.","commandLabel":"Command override","description":"Per-adapter launch configuration for CLI coding agents driven in engine-owned terminals.","elevatedConfirmAction":"Approve elevated autonomy","elevatedConfirmBody":"Elevated autonomy lets this CLI agent bypass per-step approvals (e.g. --dangerously-skip-permissions). It can modify files and run commands without pausing. Approve only if you trust this adapter for this project.","elevatedConfirmTitle":"Approve elevated autonomy?","envHelp":"Comma-separated variable NAMES forwarded from the parent process. Service credentials (FUSION_*) are always excluded.","envLabel":"Environment variable additions","extraArgsHelp":"Appended after the adapter's computed arguments (space-separated). Bypass flags here are detected and gated.","extraArgsLabel":"Extra arguments","heading":"CLI Agents","saveFailed":"Failed to save CLI agent settings"},"closeModal":"Close conflict modal","commands":{"buildCommand":"Build Command","commands":"Commands","commandUsedToBuildTheProjectInjectedInto":"Command used to build the project — injected into generated task specs. No default — unset.","commandUsedToRunTestsInjectedIntoGenerated":"Command used to run tests — injected into generated task specs. No default — unset.","eGPnpmBuild":"e.g. pnpm build","eGPnpmTest":"e.g. pnpm test","testCommand":"Test Command"},"conflictModalTitle":"Resolve Settings Conflicts","experimental":{"experimentalFeatures":"Experimental Features","experimentalFeaturesAreEarlyCapabilitiesThatAreNot":" Experimental features are early capabilities that are not yet fully stable. Enable them to test new functionality, but be aware they may change or be removed. Default: disabled for every feature flag below. ","featureFlags":"Feature Flags"},"footer":{"help":"Help","version":"Version {{version}}","versionShort":"v{{version}}","checkUpdates":"Check for updates","helpDiscussions":"Help and discussions"},"search":{"allSections":"Showing all settings sections","clear":"Clear settings search","label":"Search settings","navigationLabel":"Settings navigation","noMobileOptions":"No sections match this search.","noResults":"No settings sections match \\"{{query}}\\".","placeholder":"Search by setting or section","resultCount":"{{count}} matching sections"},"general":{"25":"25","200":"200","3000":"3000","14Days":"14 days","30Days":"30 days","60Days":"60 days","7Days":"7 days","90Days":"90 days","agentsToRunEachTaskWhenDisabledOnly":" agents to run each task. When disabled, only permanent agents execute tasks and the scheduler auto-assigns work using the agent reporting chain. Tasks with no eligible permanent agent stay queued. ","autoCleanupOldChats":"Auto-cleanup old chats","autoPruneOldMail":"Auto-prune old mail","bannerFiresWhenTodoCountIsStrictlyGreater":"Banner fires when todo count is strictly greater than this value (default 20). Applies when the banner is enabled.","builtInWorkflows":"Built-in workflows","capacityRiskBanner":"Capacity Risk Banner","chatHistory":"Chat history","chatRooms":"Chat Rooms","completionDocumentationAutomation":"Completion Documentation Automation","controlsHowFutureTaskSpecsHandleReleaseNote":" Controls how future task specs handle release-note artifacts at completion. Use changeset mode for repositories that follow ","controlsWhetherNewlyCreatedTasksHaveGitHubIssue":" Controls whether newly created tasks have GitHub issue tracking enabled by default. Individual tasks can still override this from the task detail modal. ","defaultRepoUsedWhenCreatingGitHubIssuesFor":"Default repo used when creating GitHub issues for tracked tasks. Falls back to the global default if blank.","defaultTrackingModeForNewTasks":"Default tracking mode for new tasks","deleteChatSessionsAndRoomsThatHaveBeen":"Delete chat sessions and rooms that have been idle for this many days. Default: Off.","deleteInboxOutboxMessagesOlderThanThisMany":"Delete inbox/outbox messages older than this many days. Default: Off. 7 days is the suggested setting.","disabledBuiltInWorkflowsAreHiddenFromWorkflow":"Disabled built-in workflows are hidden from workflow pickers. Existing tasks that already use one continue to resolve.","enableSummarizationInProjectModelsToConfigureThatModel":" Enable summarization in Project Models to configure that model.","fN":"FN","general":"General","gitHubTracking":"GitHub Tracking","hardCapOnTheSynthesizedEarlierRoomContext":"Hard cap on the synthesized \\"Earlier room context\\" summary block. Default: 3000.","learnMore":"Learn more","loweringThisWindowMeansReliabilityMetricsChartsAnd":" Lowering this window means Reliability metrics/charts and the Activity feed will not show history older than the selected range. Per-task task detail history is unaffected. Default: 30 days. ","newTasksInheritThisCustomWorkflowsStepsOverridable":"New tasks inherit this custom workflow's steps (overridable per task). No default — unset (built-in default workflow).","numberOfMostRecentChatRoomMessagesKept":"Number of most-recent chat-room messages kept verbatim in the responder transcript. Older messages are compacted into a summary block. Default: 25.","off":"Off","offDefault":"Off (default)","onForNewTasks":"On for new tasks","operationalLogRetention":"Operational log retention","ownerRepo":"owner/repo","prefixForNewTaskIDsEGKB":"Prefix for new task IDs (e.g. KB, PROJ). No default — unset.","prefixMustBe110UppercaseLetters":"Prefix must be 1–10 uppercase letters","projectDefaultTrackingRepo":"Project default tracking repo","recentVerbatimRoomMessages":"Recent verbatim room messages","requireChangelogUpdateExistingChangelog":"Require changelog update (existing changelog)","requireChangesetChangesetMd":"Require changeset (.changeset/*.md)","roomCompactionFetchLimit":"Room compaction fetch limit","roomSummaryMaxCharacters":"Room summary max characters","searchTheTrackingRepoForLikelyDuplicatesBefore":" Search the tracking repo for likely duplicates before opening a new issue ","settingsSaved":"Settings saved","showCapacityRiskBanner":" Show capacity risk banner ","showQuickChatButton":" Show quick chat button ","showTheFloatingChatButtonInTheDashboard":"Show the floating chat button in the dashboard. Chat is still accessible from the Chat tab in the mobile navigation.","taskPrefix":"Task Prefix","todoThreshold":"Todo threshold","trackingIssuesUseThisTaskAposSTitle":" Tracking issues use this task's title. If a task has no title yet, Fusion can summarize its description using the title summarization model in Project Models. ","updateAvailablePrefix":"v{{version}} available","updateCheckFailed":"Failed to check for updates","updateFailed":"Update failed","updateFailedWithMessage":"Update failed: {{message}}","updateNow":"Update now","updateSuccess":"Updated to v{{version}} — restart Fusion to apply","updateSuccessToast":"Update installed. Restart Fusion to apply it.","updating":"Updating…","upperBoundOnMessagesFetchedFromTheRoom":"Upper bound on messages fetched from the room store for compaction consideration. Default: 200.","upToDate":"You're up to date ✓","useEphemeralTaskWorkerAgents":" Use ephemeral task-worker agents ","warnOnTheBoardWhenTodoWorkExceeds":"Warn on the board when todo work exceeds the threshold and no idle agents are available. Default: disabled.","whenEnabledDefaultFusionSpawnsShortLived":" When enabled (default), Fusion spawns short-lived ","whenEnabledFusionChecksOpenAndClosedIssues":" When enabled, Fusion checks open and closed issues in the target repo for likely duplicates (using File Scope paths and key symptoms) before creating a new tracking issue. Uncheck to always create a new issue. Default: enabled. ","workflowsOrChangelogModeWhenContributorsShouldUpdate":" workflows, or changelog mode when contributors should update an existing changelog file. Default: off. ","workspaceModeHint":"When enabled, the project root is treated as a workspace containing multiple git sub-repos. Tasks run per-sub-repo and no git repo is created at the root. Disable for single-repo projects. No default — unset (disabled).","allowAbsoluteFileBrowserPathsHint":"When enabled, slash-prefixed paths such as /tmp can be opened in the workspace file browser. Windows drive-letter paths remain blocked, and other path validators are unchanged. Default: disabled.","quickChatLauncherHint":"Choose whether Quick Chat opens from the draggable floating button, a footer button beside Terminal, or stays hidden. Default: off (hidden).","showTaskChatsInCommonFeedHint":"When enabled, populated task-detail Chat conversations appear in the common Direct feed. Empty task chats stay hidden. Default: disabled.","whenEnabledImportedGitHubIssuesUseTheirSource":"When enabled, GitHub issue imports become tracked tasks that adopt the source issue. This does not turn GitHub tracking on for ordinary new tasks. Default: disabled.","gitLabEnabledHint":"Configure GitLab.com or self-managed GitLab URLs. Blank values inherit global fallbacks and then GitLab.com. No default — unset (unset behaves as enabled until explicitly disabled).","allowEphemeralAgentsToCreateTasksHint":"When enabled (default), ephemeral task-worker agents can open follow-up tasks via fn_task_create. When disabled, only humans and permanent agents can create tasks; ephemeral callers are rejected.","quickChatCloseOnOutsideClickHint":"When enabled, clicking outside the Quick Chat window closes it. Disable to keep it open until you close it explicitly. Default: enabled.","disabledFusionWorkflowsAreHiddenFromWorkflow":"Disabled Fusion workflows are hidden from workflow pickers. Existing tasks that already use one continue to resolve. Default: all built-in workflows enabled (unset).","aiUndoTaskWorkflow":"AI-undo task workflow","aiUndoTaskWorkflowInherit":"Inherit project default workflow","aiUndoTaskWorkflowHelp":"Workflow assigned to AI-undo (revert) tasks, which reverse already-shipped code and warrant stricter review. Choose \\"Inherit project default workflow\\" to leave them on the project default. Default: review-heavy."},"globalGeneral":{"andShowsUpdateNoticesInTheCLIAnd":" and shows update notices in the CLI and dashboard. Cadence is governed by the frequency below. Default: enabled. ","autoReloadDashboardOnVersionChange":" Auto-reload dashboard on version change ","checkForThe":" Check for the ","checkForUpdatesAutomatically":" Check for updates automatically ","cLIBinaryOnPATH":" CLI binary on PATH ","cLIBySpawning":" CLI by spawning","controlsHowOftenTheDashboardReFetchesThe":" Controls how often the dashboard re-fetches the npm registry. Use the version + refresh control in the header to trigger an immediate check at any time. Default: daily. ","dailyRecommended":"Daily (recommended)","disableThisIfYourLocalDevProcessIs":". Disable this if your local dev process is the source of truth and you don&apos;t want any outdated globally-installed binary executed during the probe. Default: enabled. ","frequency":"Frequency","general":"General","globalDefaultTrackingRepo":"Global default tracking repo","leaveBothThinkingTogglesOffToKeepThe":" Leave both thinking toggles off to keep the original default behavior. This only controls persisted ","manualOnlyNeverAutoCheck":"Manual only — never auto-check","onStartupOncePerServerLaunch":"On startup — once per server launch","ownerRepo":"owner/repo","projectsInheritThisValueWhenTheyDoNot":"Projects inherit this value when they do not set a project default tracking repo. No default — unset.","rowsAndDoesNotAffectAssistantTextOr":" rows and does not affect assistant text or tool rows. Default: disabled for both permanent and ephemeral agents. ","saveAIThinkingForEphemeralTaskWorkerAgents":" Save AI thinking for ephemeral / task-worker agents ","saveAIThinkingForPermanentAgents":" Save AI thinking for permanent agents ","saveAIThinkingLogs":"Save AI thinking logs","saveToolOutputInAgentLogs":" Save tool output in agent logs ","updates":"Updates","weekly":"Weekly","whenDisabledToolRowsAreStillLoggedBut":" When disabled, tool rows are still logged but detailed tool payloads are omitted. Very large tool payloads may still be clipped even when this stays enabled. Default: disabled. ","whenEnabledDefaultTheDashboardAutomaticallyReloadsWhen":" When enabled (default), the dashboard automatically reloads when it detects a new build version — either from server rebuilds or service worker updates. Disable this to stay on the current version until you manually refresh. Default: enabled. ","whenEnabledFusionChecksNpmForNewVersions":" When enabled, Fusion checks npm for new versions of","whenEnabledTheDashboardProbesForAGlobally":" When enabled, the dashboard probes for a globally-installed","gitLabEnabledHint":"Global GitLab URL and token fallbacks apply to projects that do not set their own values. No default — unset (unset behaves as enabled until explicitly disabled).","gitLabInstanceUrlHint":"Blank defaults to GitLab.com. Projects inherit this self-managed GitLab URL unless they set their own project value. No default — unset.","gitLabApiBaseUrlHint":"Blank derives <instance>/api/v4. Override only for self-managed GitLab API gateways that use a different absolute http:// or https:// URL. No default — unset.","gitLabTokenTypeHint":"No default — unset (the selector falls back to personal access token until you choose otherwise).","gitLabAuthTokenHint":"Projects inherit this fallback only when they do not set a project GitLab token. Read-only operations need read_api or api; write actions need api; project/group tokens remain limited by resource membership. No default — unset.","dismissModalsByClickingOutsideHint":" When enabled, clicking or tapping a modal backdrop closes the modal. Default: disabled, to prevent accidental dismissal. "},"globalModels":{"allow":"allow","commaSeparatedValuesSentToOpenRouterModelSync":"Comma-separated values sent to OpenRouter model sync. No default — unset (unfiltered).","controlsHowMuchReasoningEffortTheAIModel":"Controls how much reasoning effort the AI model uses. Higher levels produce better results but cost more. No default — unset (model's own default effort applies).","default":"Default","default2":"default","defaultAIModelUsedForTaskExecutionWhen":"Default AI model used for task execution when no per-task override is set. &quot;Use default&quot; lets the engine choose automatically. No default — unset.","defaultModel":"Default Model","deny":"deny","fallbackModel":"Fallback Model","flowAndPublishesThemUnderTheOpencodeGo":" flow and publishes them under the opencode-go provider in model pickers. Default: enabled. ","fusion":"Fusion","globalBaselineModelsForEachAIRoleProject":" Global baseline models for each AI role. Project settings can override these per-project. ","httpsRunfusionAi":"https://runfusion.ai","latency":"latency","leaveEmptyToOmitThisHeaderDefaultFusion":"Leave empty to omit this header. No default — unset (Fusion falls back to the title \\"Fusion\\" when unset).","leaveEmptyToOmitThisHeaderDefaultHttps":"Leave empty to omit this header. No default — unset (Fusion falls back to https://runfusion.ai when unset).","modelLanes":"Model Lanes","noFallback":"No fallback","openaiAnthropic":"openai, anthropic","openRouterAdvanced":"OpenRouter advanced","openRouterAllowFallbacks":"OpenRouter allow fallbacks","openRouterHTTPReferer":"OpenRouter HTTP-Referer","openRouterOutputModalitiesFilter":"OpenRouter output_modalities filter","openRouterRoutingIgnore":"OpenRouter routing ignore","openRouterRoutingOnly":"OpenRouter routing only","openRouterRoutingOrder":"OpenRouter routing order","openRouterRoutingSort":"OpenRouter routing sort","openRouterSupportedParametersFilter":"OpenRouter supported_parameters filter","openRouterXTitle":"OpenRouter X-Title","price":"price","providerName":"provider-name","requireParameters":" Require parameters ","startupModelSync":"Startup Model Sync","syncOpencodeGoModelListAtStartup":" Sync opencode-go model list at startup ","syncOpenRouterModelListAtStartup":" Sync OpenRouter model list at startup ","text":"text","thinkingEffort":"Thinking Effort","throughput":"throughput","toolsStructuredOutputs":"tools, structured_outputs","usedAutomaticallyIfThePrimaryDefaultModelHits":"Used automatically if the primary default model hits a retryable provider error like rate limiting or overload. No default — unset.","useDefault":"Use default","whenEnabledStartupFetchesTheLatestAvailableModels":" When enabled, startup fetches the latest available models from the OpenRouter API so model pickers always include the newest catalog. Default: enabled. ","whenEnabledStartupRefreshesModelsThroughTheLocal":" When enabled, startup refreshes models through the local ","commaSeparatedValuesSentToOpenRouterModelSyncOutputModalities":"Comma-separated values sent to OpenRouter model sync. No default — unset (unfiltered).","openRouterRoutingOrderHint":"No default — unset (OpenRouter's own default routing order applies).","openRouterRoutingIgnoreHint":"No default — unset (no providers ignored).","openRouterRoutingOnlyHint":"No default — unset (no provider restriction).","openRouterAllowFallbacksHint":"No default — unset (OpenRouter's own default fallback behavior applies).","openRouterRoutingSortHint":"No default — unset (OpenRouter's own default sort applies).","requireParametersHint":"Default: disabled."},"header":{"discord":"Discord","joinDiscord":"Join our Discord","star":"Star","starFusion":"Star Fusion on GitHub"},"importExport":{"confirmImport":"Confirm Import","exportBtn":"Export","exportTitle":"Export settings to JSON file","importBtn":"Import","importing":"Importing…","importTitle":"Import Settings","loadingFile":"Loading…","reviewPrompt":"Review the settings to be imported:","counts":{"global_one":"{{count}} global","global_other":"{{count}} global","project_one":"{{count}} project","project_other":"{{count}} project","workflowSettings_one":"{{count}} workflow setting value","workflowSettings_other":"{{count}} workflow setting value"},"exported":"Settings exported ({{scope}} scope)","exportFailed":"Failed to export settings","globalSettings":"Global Settings:","imported":"Imported {{counts}} setting(s)","importFailed":"Import failed","importFailedDetailed":"Failed to import settings","importScope":"Import Scope:","importTitleAttr":"Import settings from JSON file","invalidJson":"Invalid JSON file: {{error}}","mergeExisting":"Merge with existing settings (recommended)","projectSettings":"Project Settings:","replaceWarning":"If unchecked, existing settings will be replaced with imported values.","scopeBoth":"Both global and project settings","scopeGlobal":"Global settings only","scopeLabel":{"all":"all","global":"global","project":"project"},"scopeProject":"Project settings only"},"jsonPlaceholder":"Enter JSON value...","keepLocal":"Keep Local","keepRemote":"Keep Remote","loading":"Loading…","memory":{"03":"0 3 * * *","agentsGetMemorySearchMemoryGetAndMemory":"Agents get memory_search, memory_get, and memory_append tools. Search defaults to qmd with a local file fallback. Default: enabled.","agentsSearchWithQmdFirstFallBackTo":". Agents search with qmd first, fall back to local files when qmd is missing, and open exact line windows only when needed. ","automaticallyCompactMemoryWhenItExceedsTheThreshold":"Automatically compact memory when it exceeds the threshold on a schedule. Default: disabled.","autoSummarizeMemory":" Auto-Summarize Memory ","bytesUpdated":" bytes · updated ","cannotSave":"Cannot save: ","checkingMemoryWriteAccess":"Checking memory write access...","compacting":"Compacting…","compactionThresholdChars":"Compaction Threshold (chars)","compactSelectedFile":"Compact Selected File","cronExpressionForAutoSummarizeScheduleDefaultDaily":"Cron expression for auto-summarize schedule. Default: 0 3 * * * (daily at 3 AM).","cronExpressionForDreamProcessing":"Cron expression for dream processing. Default: 0 4 * * * (daily at 4 AM).","dreamCompleted":"Dream processing completed","dreaming":" Dreaming… ","dreamNow":"Dream Now","dreamSchedule":"Dream Schedule","enableMemoryTools":" Enable memory tools ","failedToLoadBackendStatus":"Failed to load backend status: ","for":"for \\"","installing":"Installing…","installQmd":"Install qmd","loadingMemory":"Loading memory…","manuallyTriggerDreamProcessingNow":"Manually trigger dream processing now.","memory":"Memory","memoryCompacted":"Memory file compacted","memoryFile":"Memory File","memoryIsConfiguredWithAReadOnlyBackend":" Memory is configured with a read-only backend. You can view the file, but saving is disabled. ","memoryIsCurrentlyDisabledYouCanViewThe":" Memory is currently disabled. You can view the file, but editing is read-only until memory is re-enabled. ","memoryLivesIn":" Memory lives in ","memorySaved":"Memory saved","memoryWillBeCompactedWhenItExceedsThis":"Memory will be compacted when it exceeds this character count. Default: 50000.","noMatchingMemoryFound":"No matching memory found.","processDreamsFromDailyMemory":" Process dreams from daily memory ","qmd":" qmd ","qmdIsNotInstalledSearchWillUseLocal":" qmd is not installed. Search will use local files. Install indexed retrieval: ","result":" result","runsTheSameQmdBackedMemorySearchPath":"Runs the same qmd-backed memory_search path agents use.","saveMemory":"Save Memory","scheduleCron":"Schedule (cron)","searchMemoryWithQmd":"Search memory with qmd","testing":"Testing…","testRetrieval":"Test Retrieval","turnsDailyNotesIntoDREAMSMdAndPromotes":"Turns daily notes into DREAMS.md and promotes reusable lessons into MEMORY.md. Default: disabled.","qmdInstalled":"qmd installed successfully","qmdInstallFailed":"Failed to install qmd","qmdInstallUnavailable":"qmd install finished, but qmd is still unavailable"},"merge":{"abort":"Abort","abortOneAIAttemptRequireManualResolutionIf":"Abort — one AI attempt; require manual resolution if it fails","addFusionAsCoAuthorOnCommits":" Add Fusion as co-author on commits ","afterFusionAdvancesTheIntegrationBranchRefThe":" After Fusion advances the integration branch ref, the merger can auto-sync other worktrees still checked out on that branch (typically your project-root checkout). ","aICorrectiveRoundsBeforeLandingTheBestResult":"AI corrective rounds before landing the best result (advisory concern) or hard-failing (unfixable correctness concern). Default 3. The reviewer uses your project&apos;s reviewer/validator model.","aIMerge":"AI merge","aIMergeDefaultAIMergesInAClean":"AI merge (default) — AI merges in a clean room, an AI reviewer audits with retries, then lands","aIModeMergesTheTaskBranchIntoAn":" AI mode merges the task branch into an isolated clean-room checkout at the target branch&apos;s tip, has an AI reviewer audit the squash (with corrective retries — advisory concerns land with a logged warning, an unfixable correctness concern hard-fails), then fast-forwards the target branch and syncs your local checkout (AI reconciles a conflicting restore). Each task merges to its own target branch, or the default integration branch. ","aIOnly":"AI only","aIOnlyAIAutoResolveAIRetryNever":"AI only — AI → auto-resolve → AI retry; never silently pick a side","allowAIMergeToSyncADirtyChecked":" Allow AI merge to sync a dirty checked-out integration branch ","alwaysPreserveDirectMergeCommitHistory":"Always preserve direct-merge commit history","alwaysSquashDirectMerges":"Always squash direct merges (default)","and":", and ","and2":" and ","areListedFirstOrChoose":" are listed first — or choose ","autoCompletionMode":"Auto-completion mode","autoDetect":"auto-detect","autoDetectOriginHEADMain":"(auto-detect — origin/HEAD → main)","autoKeepsTodayAposSSquashBehaviorFor":" Auto keeps today&apos;s squash behavior for branches with zero or one substantive commit, but switches multi-substantive branches to a history-preserving rebase-and-merge path. Individual tasks can override this in PROMPT.md with ","autoMergeCompletedTasks":" Auto-merge completed tasks ","autoMergeConflictRetries":"Auto-merge conflict retries","autoMergeRunsInTheTaskWorktreeBy":" Auto-merge runs in the task worktree by default. Switch to the legacy project-root path only if you need the pre-FN-5279 fallback; worktrunk-managed projects still defer to worktrunk. ","autoMergeWillRunRebaseConflictResolutionAnd":" Auto-merge will run rebase, conflict resolution, and squash commits inside the project root (the user&apos;s checked-out integration-branch worktree) instead of the task worktree. Fusion assumes that directory is already on the integration branch and clean; if it isn&apos;t, merges may fail or touch the user&apos;s working tree. Reuse-task-worktree is the recommended default (FN-5279). Switch back unless you have a specific reason to opt in (FN-5348). ","autoResolveConflictsInLockFilesAndGenerated":" Auto-resolve conflicts in lock files and generated files ","autoSquashSingleSubstantiveBranchesPreserveMultiSubstantive":"Auto — squash single-substantive branches, preserve multi-substantive history","autoSyncProjectCheckoutAfterMerge":"Auto-sync project checkout after merge","block":"Block","blockStrict":"Block (strict)","both":" Both ","branchName":"branch name","checkingForLegacyAutoMergeStamps":"Checking for legacy auto-merge stamps…","coAuthorEmail":"Co-author Email","coAuthorName":"Co-author Name","conflictFallbackStrategy":"Conflict Fallback Strategy","controlsThePostMergeAuditGate":" Controls the post-merge audit gate. ","controlsWhatHappensAfterATaskReachesIn":" Controls what happens after a task reaches In Review. Direct mode merges into the current branch locally. Pull request mode keeps the task in In Review while Fusion waits for GitHub reviews and required checks before merging the PR. ","createMonitorAndMergeAGitHubPullRequest":"Create, monitor, and merge a GitHub pull request","custom":"Custom…","dangerousCompatibilityEscapeHatchLeaveOffUnlessYou":" Dangerous compatibility escape hatch — restores the legacy stash → fast-forward → restore behavior when your checked-out integration branch has unrelated local edits. When off, AI merge blocks before advancing the branch so dirty project-root edits cannot contaminate a completed merge. Default: enabled (new/unconfigured projects sync a dirty checkout). ","defaultLogsFindingsButAutoCompletesTheMerge":" (default) logs findings but auto-completes the merge. ","deterministicLegacyRebaseConflictStrategyAuditPipeline":"Deterministic (legacy) — rebase / conflict-strategy / audit pipeline","directMergeCommitRouting":"Direct merge commit routing","directMergeIntoTheCurrentBranch":"Direct merge into the current branch (default)","emailUsedInThe":"Email used in the ","enableTestMode":" Enable test mode ","fastForwardOfLocalMainFrom":" + fast-forward of local main from ","fastForwardOnlySkipDirtyWorktrees":"Fast-forward only — skip dirty worktrees","finalFallback":"final fallback","findsInReviewTasksWhoseAutoMergeValue":" Finds in-review tasks whose auto-merge value came from the legacy review-entry stamp. Dry-run is automatic; applying delegates to the store cleanup and preserves genuine per-task overrides. ","flipOverlappingFilesToPreferTheTaskBranch":"Flip overlapping files to prefer the task branch (default)","forcesAllAILanesToUseTheDeterministic":"Forces all AI lanes to use the deterministic mock provider. No network calls, zero token cost. No default — unset (disabled).","fusion":"Fusion","gitHubAuthentication":"GitHub Authentication","gitHubAuthMode":"GitHub auth mode","gitHubCLIGhAuth":"GitHub CLI (gh auth) (default)","gitHubPersonalAccessToken":"GitHub personal access token","gitRemoteToPushToEGOrigin":"Git remote to push to (e.g. \\"origin\\"). Can include branch name (e.g. \\"origin main\\"). Default: \\"origin\\".","ignoreOverlapDetectionPreserveLegacyBehavior":"Ignore overlap detection — preserve legacy behavior","includeTaskIDInCommitScope":" Include task ID in commit scope ","insteadOf":" instead of ","integrationBranch":"Integration branch","integrationWorktree":"Integration worktree","inYourProjectRootWillShowTheNew":" in your project root will show the new commits inverted as &quot;staged changes&quot; until you pull manually. Only applies to direct merges. ","isTheLegacyBehavior":" is the legacy behavior: ","isTheStricterOptInModeThatRefuses":" is the stricter opt-in mode that refuses to auto-complete merges with duplicate-subject or touched-file overlap risks. ","legacy":" → legacy ","legacy2":"Legacy ","legacyAutoMergeStamp":" legacy auto-merge stamp","legacyAutoMergeStampCleanup":"Legacy auto-merge stamp cleanup","legacyIntegrationBranchMode":"Legacy integration-branch mode.","maxAIReviewPasses":"Max AI review passes","merge":"Merge","moreDetails":"More details","nameUsedInThe":"Name used in the ","noLegacyAutoMergeStampsToCleanUp":" No legacy auto-merge stamps to clean up. ","noreplyRunfusionAi":"noreply@runfusion.ai","off":"Off","offLeaveTheProjectRootStaleLegacyBehavior":"Off — leave the project root stale (legacy behavior)","offSkipAudit":"Off (skip audit)","optionsStartWithABestEffort":" options start with a best-effort ","origin":"origin","personalAccessToken":"Personal access token","pickALocalBranchFromTheDropdownCommon":"). Pick a local branch from the dropdown — common integration names like ","positiveIntegerRetryCapForAutoMergeConflict":"Positive integer retry cap for auto-merge conflict resolution before a task parks for human recovery. Default 3.","planApprovalMode":"Plan approval mode","planApprovalModeAutoApproveAll":"Auto-approve all tasks (default)","planApprovalModeHelp":"Project-wide override for the planning approval gate. Leave on workflow to use each workflow's Require plan approval setting, or force all approved specs to bypass or wait for manual approval.","planApprovalModeRequireAll":"Require approval for all tasks","planApprovalModeWorkflow":"Use workflow setting","postMergeAuditMode":"Post-merge audit mode","pushRemote":"Push Remote","pushToRemoteAfterMerge":" Push to remote after merge ","readyToCleanUp":" ready to clean up.","retriesTheAIAgentRatherThanAutoPicking":" retries the AI agent rather than auto-picking a side. ","reuseTaskWorktreeDefault":"Reuse task worktree (default)","skipsTheAuditEntirelySwitchingToOffIs":" skips the audit entirely. Switching to Off is recommended only if you trust your branches don&apos;t silently drop edits. ","smart":"Smart","smartConflictResolution":" Smart conflict resolution ","smartPreferMain":"Smart, prefer main","smartPreferMainOnFallbackFetchFfOrigin":"Smart, prefer main on fallback — fetch+ff origin → AI → auto-resolve → -X ours (default; protects just-merged sibling work)","smartPreferMainOverlapGuard":"Smart Prefer Main Overlap Guard","smartPreferTask":"Smart, prefer task","smartPreferTaskOnFallbackFetchFfOrigin":"Smart, prefer task on fallback — fetch+ff origin → AI → auto-resolve → -X theirs (legacy \\"smart\\" behavior; task branch wins)","snapsCleanlyWhenTheWorktreeHasNoEdits":" snaps cleanly when the worktree has no edits and skips otherwise. ","snapshotsRealLocalEditsAsAPatchAgainst":" snapshots real local edits as a patch against the previous tip, snaps the worktree to the new tip, then reapplies the patch — untracked files that collide with newly-tracked paths are left in a temp dir for manual recovery. ","soAFreshlyPushedSiblingCommitDoesntGet":" (so a freshly-pushed sibling commit doesn't get clobbered), then run an AI agent, then auto-resolve handles lock/generated/trivial files. They differ only in the ","soMainWinsProtectsJustMergedSiblingWork":" so main wins — protects just-merged sibling work and is the new default. ","soTheTaskBranchWinsFastButCan":" so the task branch wins — fast, but can resurrect code an earlier sibling task deleted (the FN-2887 class of regression). ","stashFastForwardDefaultPreserveLocalEdits":"Stash + fast-forward (default) — preserve local edits","stopsAfterTheFirstAIAttemptAndWaits":" stops after the first AI attempt and waits for a human. ","symbolicRefFallback":" symbolic ref → fallback ","theCanonicalBranchFusionMergesTasksIntoAnd":" No default — unset (auto-detect). The canonical branch Fusion merges tasks into and uses as the reference for all ahead/behind / overlap / pre-rebase computations. Leave on ","theLegacyMergeSettingsBelowDoNotApply":"The legacy merge settings below do not apply while AI merge is on.","toResolveViaTheStandardCascade":" to resolve via the standard cascade (","toTypeABranchThatDoesnAposT":" to type a branch that doesn&apos;t exist locally yet. Applies to both direct merges and pull-request mode; individual tasks can still override via task metadata. ","trailer":" trailer. Default: Fusion.","trailerCreditingFusionRecognizedByGitHubForShared":" trailer crediting Fusion (recognized by GitHub for shared attribution). Default: enabled. ","useDropdown":" Use dropdown ","useProjectRootLegacy":"Use project root (legacy)","uses":" uses ","valuesFromOlderSettingsAreMigratedAutomatically":" values from older settings are migrated automatically.","warn":"Warn","warnDefaultLogFindingsContinue":"Warn (default; log findings, continue)","warnOnlyKeepLegacyMainWinsFallback":"Warn only — keep legacy main-wins fallback","whenDisabledMergeCommitMessagesOmitTheTask":"When disabled, merge commit messages omit the task ID from the scope (e.g. ","whenEnabledCommitsMadeByFusionKeepYour":" When enabled, commits made by Fusion keep your git identity as the primary author and append a ","whenEnabledLockFilesPackageLockJsonPnpm":"When enabled, lock files (package-lock.json, pnpm-lock.yaml, etc.), generated files (dist/*, *.gen.ts), and trivial whitespace conflicts are resolved automatically without AI intervention. Complex code conflicts still require AI review. Default: enabled.","whenEnabledLockFilesPackageLockJsonPnpm2":"When enabled, lock files (package-lock.json, pnpm-lock.yaml, etc.) are resolved using 'ours' strategy, generated files (dist/*, *.gen.ts) using 'theirs' strategy, and trivial whitespace conflicts are auto-resolved without spawning an AI agent. Complex code conflicts still require AI review. Default: enabled.","whenEnabledTasksThatPassReviewAreAutomatically":"When enabled, tasks that pass review are automatically merged into the main branch. Default: enabled.","whenEnabledTheMergedResultIsAutomaticallyPushed":"When enabled, the merged result is automatically pushed to the configured git remote. This includes pulling the latest from the remote first (rebase) and resolving any conflicts with AI if needed. Default: disabled.","whenUsingSmartPreferMainAutomaticallyPreferThe":" When using smart-prefer-main, automatically prefer the branch side for files that main has recently modified to avoid silently discarding branch work. ","githubAuthTokenHint":"No default — unset.","gitLabAuthDetails":"Fusion uses GitLab REST API token authentication with the PRIVATE-TOKEN header. Leave the token blank to clear the project override and fall back to a configured global GitLab token or GITLAB_TOKEN where available. No default — unset (unset behaves as enabled until explicitly disabled).","gitLabPersonalAccessToken":"Personal access token (default)","gitLabAuthTokenHint":"Read-only GitLab operations need read_api or api. Future write actions such as comments and auto-close need api. Project and group tokens are limited to their associated resource and role membership. No default — unset.","includeTaskIdInCommitDefault":"). Default: enabled.","trailerEmail":" trailer. Default: noreply@runfusion.ai.","gitRemoteThatMergedResultsArePushedTo":"Git remote that merged results are pushed to. Default: \\"origin\\".","pushTargetBranch":"Push target branch","sameAsIntegrationBranchDefault":"(same as integration branch — default)","pushTargetBranchHelp":"Branch on the remote that merged results are pushed to. Leave on the default to push the integration branch to its same-named remote branch; pick a listed remote branch or choose Custom… to type one that doesn't exist on the remote yet (the push creates it)."},"mergeManually":"Merge Manually","mobileNav":{"label":"Settings Section"},"models":{"deletePresetMessage":"Preset \\"{{name}}\\" is used in auto-selection. Delete it anyway?","deletePresetTitle":"Delete Preset","loadingModels":"Loading available models…","noModels":"No models available. Configure authentication first.","presetNameRequired":"Preset name is required","savePreset":"Save preset"},"movedStub":{"modelLanes":"Per-phase model lanes (execution, planning, reviewer, their fallbacks, and the title summarizer) now live on the workflow.","openWorkflowSettings":"Open workflow settings","reviewVerification":"Review, verification auto-fix, and scope-enforcement settings now live on the workflow.","stepExecution":"Step execution settings (run steps in new sessions, max parallel steps) now live on the workflow.","summarizerModelInline":"The model used for summarization now lives on the workflow (title summarizer lane). Open workflow settings to choose it."},"nav":{"aria":{"global":"Global setting","project":"Project setting"},"prompts":"Prompts","secrets":"Secrets","tooltip":{"global":"Shared across all projects","project":"Specific to this project"},"globalMcp":"MCP Servers","mcp":"MCP Servers"},"nodeRouting":{"blockExecution":"Block execution","configureHowTasksAreRoutedToExecutionNodes":"Configure how tasks are routed to execution nodes.","defaultExecutionNode":"Default Execution Node","fallBackToLocal":"Fall back to local","localExecutionNoDefaultNode":"Local execution (no default node)","nodeRouting":"Node Routing","selectedNode":"Selected node:","theseSettingsApplyAtTheProjectLevel":"These settings apply at the project level.","unavailableNodePolicy":"Unavailable Node Policy","usedWhenATaskHasNoNodeOverride":"Used when a task has no node override. Node status is shown for safer routing selection. No default — unset (local execution).","unavailableNodePolicyHint":"Default: block execution."},"nodeSync":{"alwaysAsk":"Always ask","automaticallySynchronizeSettingsBetweenThisNodeAndConnected":"Automatically synchronize settings between this node and connected remote nodes. Default: disabled.","conflictResolution":"Conflict resolution","enableAutomaticSettingsSync":" Enable automatic settings sync ","every15Minutes":"Every 15 minutes","every1Hour":"Every 1 hour","every30Minutes":"Every 30 minutes","every5Minutes":"Every 5 minutes","includeAPIKeysAndOAuthTokensInSync":"Include API keys and OAuth tokens in sync operations. Default: disabled.","keepLocal":"Keep local","keepRemote":"Keep remote","lastWriteWins":"Last write wins","nodeSync":"Node Sync","syncInterval":"Sync interval","syncModelAuthCredentials":" Sync model auth credentials ","workflowSettingsNotSynced":"Workflow settings are not synced across nodes yet.","syncIntervalHint":"Default: every 15 minutes.","conflictResolutionHint":"Default: last write wins."},"notifications":{"accessTokenOptional":"Access token (optional)","advanced":"Advanced","allFailuresLegacy":"All failures (legacy)","baseURLForDeepLinksInNotificationsWhen":" Base URL for deep links in notifications. When set, clicking a notification opens the dashboard directly to the task. No default — unset. ","customNtfyServerURLOptional":"Custom ntfy server URL (optional)","dashboardHostname":"Dashboard Hostname","discord":"Discord","enable":" Enable ","failureNotificationDelayMs":"Failure notification delay (ms)","failureNotificationMode":"Failure notification mode","format":"Format","general":" General: ","generic":"Generic","howLongAFailureMustPersistBeforeA":" How long a failure must persist before a push notification is sent. 0 = notify immediately. Default: 30000 (30 seconds). ","httpLocalhost3000":"http://localhost:3000","httpsHooksExampleCom":"https://hooks.example.com/...","httpsNtfySh":"https://ntfy.sh","learnMoreAboutNtfySh":" Learn more about ntfy.sh ","leaveBlankToKeepTheDefaultServerHttps":" Leave blank to keep the default server: https://ntfy.sh. Custom servers must use http:// or https://. No default — unset. ","leaveBlankToPublishWithoutAuthenticationWhenSet":" Leave blank to publish without authentication. When set, Fusion sends an Authorization Bearer header with ntfy requests. No default — unset. ","messageInbox":" Message inbox: ","mustBeAValidURLStartingWithHttp":" Must be a valid URL starting with http:// or https:// ","myTopicName":"my-topic-name","notifications":"Notifications","notifyOnEvents":"Notify on events","ntfy":"ntfy","ntfyTopic":"ntfy Topic","roomReply":" Room reply: ","sending":"Sending…","slack":"Slack","stickyFailuresOnlyDefault":"Sticky failures only (default)","stickyOnlySuppressesRecoveredFailuresTerminalOnlyWaits":"Sticky-only suppresses recovered failures; terminal-only waits for paused/in-review failed tasks; all restores legacy alerts.","terminalFailuresOnlySuppressAutoRetried":"Terminal failures only (suppress auto-retried)","testMessageInbox":"Test message inbox","testNotification":"Test notification","testRoomReply":"Test room reply","tk":"tk_...","topicMustBe164AlphanumericHyphenOr":" Topic must be 1–64 alphanumeric, hyphen, or underscore characters ","webhook":"Webhook","webhookNotifications":" Webhook notifications ","webhookURL":"Webhook URL","yourNtfyShTopicName164Alphanumeric":" Your ntfy.sh topic name (1–64 alphanumeric/hyphen/underscore characters). No default — unset.","ntfyEnabledHint":"Default: disabled.","webhookEnabledHint":"Default: disabled.","webhookUrlHint":"No default — unset.","webhookFormatHint":"Default: generic."},"plugins":{"fusionPlugins":" Fusion Plugins ","piExtensions":" Pi Extensions ","pluginManagerType":"Plugin manager type","plugins":"Plugins"},"projectModels":{"addPreset":" Add Preset ","advancedWorkflowPolicy":" Advanced workflow policy ","aIMergeCommitSummaries":" AI merge commit summaries ","aITitleAndGitCommitMessageSummarization":" AI Title and Git Commit Message Summarization ","automaticallyCompactContextWhenApproachingThisTokenCount":"Automatically compact context when approaching this token count. Leave empty for no cap (compact only on overflow errors). Set a number to proactively compact when reaching this token count. No default — unset (no cap).","autoSelectPresetBasedOnTaskSize":" Auto-select preset based on task size ","autoSummarizeLongDescriptionsAsTitles":" Auto-summarize long descriptions as titles ","configuredPresets":"Configured presets","configuresTheModelUsedForTwoShortSummary":" Configures the model used for two short-summary jobs: auto-generating task titles from long descriptions, and generating merge commit summaries from step commits and diff stats. ","defaultWorkflowModelLaneActions":"Default workflow model lane actions","defaultWorkflowModelLanes":"Default workflow model lanes","delete":" Delete ","edit":" Edit ","executorModel":"Executor model","fallsBackTo":" Falls back to: ","loadingAvailableModels":"Loading available models…","loadingWorkflowModelLanes":"Loading workflow model lanes…","modelLanes":"Model Lanes","modelPresets":"Model Presets","name":"Name","noCap":"No cap","noModelsAvailableConfigureAuthenticationBeforeSelectingWorkflow":" No models available. Configure authentication before selecting workflow model lanes. ","noModelsAvailableConfigureAuthenticationFirst":" No models available. Configure authentication first. ","noModelsAvailableConfigureAuthenticationFirst2":"No models available. Configure authentication first.","noPreset":"No preset","noPresetsConfiguredYet":"No presets configured yet.","openAProjectToEditWorkflowModelLanes":"Open a project to edit workflow model lanes.","overrideGlobalModelSettingsAtTheProjectLevel":" Override global model settings at the project level. Each lane controls a specific AI usage context. Unset lanes inherit from the corresponding global lane. The Project Default Model is the fallback for this project when a more specific lane is unset. ","presetEditor":"Preset editor","reset":" Reset ","resetToDefaultNoCap":"Reset to default (no cap)","resetToInheritFromGlobal":"Reset to inherit from global","resetToInheritFromWorkflow":"Reset to inherit from workflow","reviewerModel":"Reviewer model","theseProjectOverridesApplyToTheActiveDefault":" These project overrides apply to the active default workflow. ","tokenCap":"Token Cap","useDefault":"Use default","useWorkflowDefault":"Use workflow default","whenEnabledMergeCommitMessagesIncludeAnAI":" When enabled, merge commit messages include an AI-generated subject plus body summary (narrative + bullets + diff-stat) instead of just listing step commit subjects. Uses the title summarization model. Default: enabled. ","whenEnabledTasksCreatedWithoutATitleBut":" When enabled, tasks created without a title but with descriptions over 200 characters will automatically get an AI-generated title (max 60 characters). The same model is also used to generate fallback merge commit message bodies when the branch's commit log is empty (e.g. squash merges with no unique commits), and GitHub tracking issue titles when a tracked task has no title yet. Default: disabled. ","autoSelectModelPresetHint":"Default: disabled.","prTitlePromptInstructionsHelp":"Guides the AI-generated Create PR title. Leave blank to use the default PR metadata prompt. No default — unset.","prDescriptionPromptInstructionsHelp":"Guides the AI-generated Create PR summary, changes, and testing sections. Leave blank to use the default PR metadata prompt. No default — unset.","chatHeading":"Chat","chatDescription":"Choose the default target for new Direct chats and whether New Chat should prompt or immediately use that default.","chatNewSessionMode":"New Chat behavior","chatNewSessionModePrompt":"Prompt for model each time","chatNewSessionModeAlwaysDefault":"Always use configured default","chatNewSessionModeHelp":"Prompt mode opens New Chat with this default preselected. Always-default mode skips the dialog when the configured default is complete.","chatDefaultKind":"Chat default target","chatDefaultKindModel":"Model","chatDefaultKindAgent":"Agent","chatDefaultModel":"Chat Default Model","selectChatDefaultModel":"Select a chat default model","chatDefaultModelHelp":"Model-mode New Chat uses the built-in Fusion chat agent with this provider/model pair. Leave empty to fall back to prompting.","chatDefaultAgent":"Chat Default Agent","loadingAgents":"Loading agents…","selectChatDefaultAgent":"Select a chat default agent","chatDefaultAgentEmpty":"No agents are available for this project yet.","chatDefaultAgentHelp":"Agent-mode New Chat starts a Direct chat with the selected durable agent.","chatDefaultReset":"Reset Chat default"},"remote":{"acceptRoutes":" Accept routes ","advancedNamedTunnel":"Advanced (Named Tunnel)","advancedSettings":"Advanced Settings","authenticatedURL":"Authenticated URL:","authLinks":"Auth Links","authLinkTokenType":"Auth link token type","automaticallyRestoreTunnelOnStartupIfItWas":"Automatically restore tunnel on startup if it was running when last stopped. Default: disabled.","cloudflare":"Cloudflare","cloudflaredInstalled":"cloudflared installed successfully","cloudflaredIsInstalled":"cloudflared is installed","cloudflaredIsNotInstalled":"cloudflared is not installed","cloudflaredMustBeInstalledToStartTheTunnel":"cloudflared must be installed to start the tunnel","enableShortLivedTokens":" Enable short-lived tokens ","expiresAt":" · Expires at {{expiresAt}}","external":"External ","externalTunnelQRCode":"External tunnel QR code","generateQR":"Generate QR","generateShortLivedToken":"Generate short-lived token","httpsYourDomainExample":"https://your-domain.example","ifHomebrewIsUnavailable":"If Homebrew is unavailable: ","ingressURL":"Ingress URL","installCloudflared":"Install cloudflared","installing":"Installing…","lastShortLivedTokenExpiresAt":"Last short-lived token expires at ","manualInstall":"Manual install: ","ms":"ms)","namedTunnelModeEnabled":"Named Tunnel mode enabled — configure tunnel name, token, and ingress URL below.","noExpiry":" · No expiry","persistentToken":"Persistent token","persistentTokenRegenerated":"Persistent token regenerated","qRSVGMarkup":"QR SVG markup","regeneratePersistentToken":"Regenerate persistent token","rememberLastRunningState":" Remember last running state ","remoteAccess":"Remote Access","remoteAccessCode":"Remote access code:","remoteAccessQRCode":"Remote access QR code","remoteProvider":"Remote provider","restarting":"Restarting…","scanThisQRCodeOnYourPhone":"Scan this QR code on your phone","scanToConnect":"Scan to connect:","scanToOpen":"Scan to open:","selectAProviderAboveToConfigureRemoteAccess":"Select a provider above to configure remote access.","shortLivedToken":"Short-lived token","shortLivedTokenGenerated":"Short-lived token generated","shortLivedTTLMs":"Short-lived TTL (ms)","showURL":"Show URL","startFresh":"Start Fresh","starting":"Starting…","startTunnel":"Start Tunnel","stopping":"Stopping…","stopTunnel":"Stop Tunnel","tailnetURL":"Tailnet URL:","tailscale":"Tailscale","tailscaleFunnelWillExposeThisDashboardOnYour":"Tailscale Funnel will expose this dashboard on your tailnet's public ","tokenType":" Token type: ","tunnelDetected":" tunnel detected","tunnelName":"Tunnel name","tunnelRestarted":"Remote tunnel restarted","tunnelStarted":"Remote tunnel started","tunnelStopped":"Remote tunnel stopped","tunnelToken":"Tunnel token","uRLAndQRGenerationUseTheSelectedToken":" URL and QR generation use the selected token type. ","uRLNoHostnameOrPortConfigurationNeeded":" URL — no hostname or port configuration needed.","useExisting":"Use Existing","usingQuickTunnel":"Using Quick Tunnel — automatically creates a random trycloudflare.com URL, no account needed. Default: enabled.","installationFailed":"Installation failed","acceptRoutesHint":"Default: disabled.","shortLivedEnabledHint":"Default: disabled.","shortLivedTtlMsHint":"Default: 900000 (15 minutes)."},"researchGlobal":{"advancedExternalSearchProviders":"Advanced — external search providers","alwaysOn":"Always on","brave":"Brave","builtInUsesAgentWebTools":" Built-in (uses agent web tools) (default) ","configureBraveTavilyAndGoogleAPIKeysIn":" Configure Brave, Tavily, and Google API keys in Authentication. ","customSearchEngineId":"custom-search-engine-id","defaultMaxConcurrentRuns":"Default Max Concurrent Runs","defaultMaxDurationMs":"Default Max Duration (ms)","defaultMaxSourcesPerRun":"Default Max Sources Per Run","enabledSources":"Enabled Sources","gitHub":" GitHub ","googleCustomSearch":"Google Custom Search","googleSearchCX":"Google Search CX","httpsSearxExampleCom":"https://searx.example.com","localDocs":" Local Docs ","maxSynthesisRounds":"Max Synthesis Rounds","missingCredentialsForTheSelectedResearchProvider":" Missing credentials for the selected research provider. ","openAuthentication":" Open Authentication ","openAuthenticationSettings":" Open Authentication Settings ","requestTimeoutMs":"Request Timeout (ms)","researchDefaults":"Research Defaults","searchesAndFetchesUseTheAgentsNativeWebSearch":" Searches and fetches use the agent's native WebSearch/WebFetch tools. No API key required. Default: builtin. ","searchProvider":"Search Provider","searXNG":"SearXNG","searXNGURL":"SearXNG URL","tavily":"Tavily","webSearch":" Web Search ","searXNGURLHint":"No default — unset.","googleSearchCXHint":"No default — unset.","maxConcurrentRunsHint":"Default: 3.","maxSourcesPerRunHint":"Default: 20.","defaultMaxDurationMsHint":"Default: 300000 (5 minutes).","requestTimeoutMsHint":"Default: 30000 (30 seconds).","maxSynthesisRoundsHint":"Default: 2.","gitHubSourceHint":" Default: disabled. ","localDocsSourceHint":" Default: enabled. "},"researchProject":{"alwaysOn":"Always on","enabledSources":"Enabled Sources","enableResearchInThisProject":" Enable research in this project ","github":"GitHub","llmSynthesis":"LLM Synthesis","localDocs":"Local Docs","maxConcurrentRuns":"Max Concurrent Runs","maxDurationMs":"Max Duration (ms)","maxSourcesPerRun":"Max Sources Per Run","pageFetch":"Page Fetch","projectResearchSettings":"Project Research Settings","requestTimeoutMs":"Request Timeout (ms)","webSearch":" Web Search ","webSearchIsAlwaysEnabledConfigureTheSearch":" Web search is always enabled. Configure the search provider under Research Defaults. ","enableResearchInThisProjectHint":"Default: enabled.","maxConcurrentRunsHint":"Default: 3.","maxSourcesPerRunHint":"Default: 20.","maxDurationMsHint":"Default: 300000 (5 minutes).","requestTimeoutMsHint":"Default: 30000 (30 seconds)."},"resolveAllLocal":"Resolve All: Keep Local","resolveAllRemote":"Resolve All: Keep Remote","resolvedSuccess":"Settings conflicts resolved successfully","resolveFailed":"Failed to resolve conflicts","resolving":"Resolving...","runtimesRuntimes":{"hermesRuntime":"Hermes Runtime","openClawRuntime":"OpenClaw Runtime","paperclipRuntime":"Paperclip Runtime"},"scheduledEvals":{"autoCreateTasks":"Auto-create tasks","disabled":"Disabled","enableScheduledEvalRunsForThisProject":" Enable scheduled eval runs for this project ","evaluatorModel":"Evaluator Model","evaluatorProvider":"Evaluator Provider","followUpPolicy":"Follow-up Policy","gpt5":"gpt-5","intervalMs":"Interval (ms)","leaveProviderAndModelBlankToInheritThe":" Leave provider and model blank to inherit the project validator lane model settings. No default — unset. ","openai":"openai","retentionDays":"Retention (days)","scheduledEvals":"Scheduled Evals","suggestOnly":"Suggest only","enabledHint":"Default: disabled.","intervalMsHint":"Default: 86400000 (24 hours).","evaluatorProviderHint":"No default — unset (inherits the project validator lane provider).","followUpPolicyHint":"Default: suggest only.","retentionDaysHint":"Default: 30."},"scheduling":{"addIgnoredPath":" Add ignored path ","archiveAgentLog":"Archive Agent Log","archiveCompletedTasksAfterDays":"Archive Completed Tasks After (days)","autoArchiveDuplicateTasks":" Automatically archive duplicate tasks ","autoArchiveDuplicateTasksHelp":"Automatically archive tasks detected as same-agent duplicates on creation (off by default). When disabled, duplicates are flagged in place with the yellow Duplicate chip and Keep/Archive actions instead of being archived automatically.","backlogNoTaskAutoClaimIsExecutorOnly":"Backlog/no-task auto-claim is executor-only by default. Enable to let engineer-role agents auto-claim unowned backlog tasks; explicit routing and delegation are unchanged. Default: off.","browse":" Browse ","closeParenPeriod":").","compactModeKeepsArchiveSizeLowWhilePreserving":"Compact mode keeps archive size low while preserving recent agent activity for context. Default: compact.","compactSummaryAndRecentEntries":"Compact summary and recent entries","completedTasksOlderThanTheThresholdAreMoved":"Completed tasks older than the threshold are moved out of the active task database. Default: enabled.","docs":"docs/","doNotArchiveAgentLogs":"Do not archive agent logs","enableAutomaticTaskArchiving":" Enable automatic task archiving ","enablePlanStalenessEnforcement":" Enable plan staleness enforcement ","escalateHighFanOutBlockersOnlyAfterThey":"Escalate high fan-out blockers only after they remain in in-progress or in-review for this many hours (age source: columnMovedAt, fallback updatedAt). Default: 2 hours.","fullAgentLog":"Full agent log","globalMaxConcurrent":"Global Max Concurrent","heartbeatScopeDiscipline":"Heartbeat Scope Discipline","ignoreHiddenDotPathsHelp":"When enabled, overlap checks ignore hidden path segments such as .fusion/, .changeset/, .github/, .env, and nested .cache/ directories. Uncheck to restore legacy counting for stricter serialization. Default: enabled.","ignoreHiddenDotPathsInOverlapChecks":" Ignore hidden dot paths in overlap checks ","ignoredOverlapPaths":"Ignored overlap paths","letEngineerAgentsAutoClaimBacklogTasks":" Let engineer agents auto-claim backlog tasks ","lite":"Lite","maxConcurrentTasks":"Max Concurrent Tasks","maximumAgeInHoursBeforeAPlanIs":"Maximum age in hours before a plan is considered stale. Default: 6 hours.","maximumConcurrentAgentsAcrossAllProjects":"Maximum concurrent agents across all projects. Default: 4.","maximumConcurrentPlanningAgents":"Maximum concurrent planning agents. Default: 2.","maximumStuckDetectorRetriesBeforeATaskIs":"Maximum stuck-detector retries before a task is marked failed. Default: 6.","maxStuckRetries":"Max Stuck Retries","maxTriageConcurrent":"Max Triage Concurrent","numberOfDaysATaskCanStayIn":"Number of days a task can stay in Done before it is archived. Default: 2 days (48 hours).","off":"Off","optionalFileOrDirectoryPathsToIgnoreWhen":" No default — unset (empty). Optional file or directory paths to ignore when overlap serialization is enabled. Paths are project-relative (for example ","or":" or ","pollIntervalMs":"Poll Interval (ms)","preserveStepProgressOnStuckTaskRequeue":" Preserve step progress on stuck-task requeue ","remove":" Remove ","scheduling":"Scheduling","selectCurrentDir":"Select current directory","selectIgnoredOverlapPath":"Select ignored overlap path","serializeTasksWithOverlappingFiles":" Serialize tasks with overlapping files ","staleHighFanOutEscalationHours":"Stale High Fan-out Escalation (hours)","staleSpecThresholdHours":"Stale Spec Threshold (hours)","stepExecution":"Step Execution","strictCoordinationFocusedHigherPerTickTokensLite":"Strict — coordination-focused; higher per-tick tokens. Lite — pre-2026-05-11 behavior. Off — minimal procedure.","strictDefault":"Strict (default)","stuckTaskTimeoutMinutes":"Stuck Task Timeout (minutes)","timeoutInMinutesForDetectingStuckTasksWhen":"Timeout in minutes for detecting stuck tasks. When a task's agent session shows no activity for longer than this duration, the task is terminated and retried. Leave empty to disable. Suggested: 10. Default: 10 minutes (600000ms).","whenEnabledTasksThatModifyTheSameFiles":"When enabled, tasks that modify the same files are queued serially to avoid merge conflicts. Default: enabled.","whenEnabledTasksWithStalePlansPROMPTMd":"When enabled, tasks with stale plans (PROMPT.md older than the threshold) are automatically sent back to planning for replanning. Default: disabled.","whenTheStuckDetectorKillsAndReQueues":"When the stuck detector kills and re-queues a task, keep completed step statuses so the agent can resume from where it left off. Disable to reset every step to pending on each stuck retry. Default: enabled.","browseWorkspacePath":"Browse workspace path","overlapPickerNote":"Choose a file to ignore directly, or navigate into a folder and select the current directory.","maxConcurrentTasksHint":"Default: 2.","pollIntervalMsHint":"Default: 15000 (15 seconds)."},"scope":{"globalBanner":"These settings are shared across all your Fusion projects.","projectBanner":"These settings only affect this project."},"title":"Settings","worktrees":{"allowSilentSiblingBranchRenameDuringExecutorConflicts":" Allow silent sibling branch rename during executor conflicts ","alsoRebaseOntoLocalDefaultBranchHEAD":" Also rebase onto local default-branch HEAD ","and":" and ","andCanHidePriorCommitsFromTheDefault":" and can hide prior commits from the default recovery flow. Default: disabled. ","autoDetectFusionBinWorktrunkOrPATH":"auto-detect (~/.fusion/bin/worktrunk or $PATH)","awaitingApproval":"Awaiting approval — open Approvals to continue.","branchCollisionSilentlyForksWorkOntoSiblingBranches":" branch collision silently forks work onto sibling branches like ","browse":" Browse ","browseWorktreesDirectory":"Browse worktrees directory","closeParenPeriod":").","defaultsTo":". Defaults to ","defaultsToWorktreesLeaveEmptyUnlessOverriding":"Defaults to .worktrees — leave empty unless overriding","disabledByDefaultOptInWhenEnabledFusion":" Disabled by default (opt-in). When enabled, Fusion shells out to ","discouragedThisRestoresTheLegacyBehaviorWhereA":" Discouraged. This restores the legacy behavior where a live ","enableWorktrunkAndRequestApprovalToInstallThe":"Enable worktrunk and request approval to install the pinned release.","enableWorktrunkIntegration":" Enable worktrunk integration ","failAndPauseTheTaskDefault":"Fail and pause the task (default)","fallBackToFusionsNativeWorktreeBackend":"Fall back to Fusion's native worktree backend","forWorktreeCreateSyncPruneAndRemoveOperations":" for worktree create, sync, prune, and remove operations and follows worktrunk&apos;s directory layout. ","inAdditionToTheRemoteRebaseAboveAlso":" In addition to the remote rebase above, also rebase the task branch onto the local default-branch HEAD (rootDir). This catches sibling tasks that merged locally but haven't been pushed yet — without it, two concurrent tasks where one deletes code can have the other silently re-introduce it via the fallback strategy. Enabled by default; only disable if it causes issues with your workflow. ","installedAt":" installed at ","installTheWorktrunkBinaryBelowToEnableThis":"Install the worktrunk binary below to enable this integration.","installWorktrunk":"Install worktrunk binary","keepsProgressMovingBySwitchingToFusionApos":" keeps progress moving by switching to Fusion&apos;s built-in worktree backend. ","limitsTotalGitWorktreesIncludingInReviewTasks":"Limits total git worktrees including in-review tasks. Default: 4.","maxWorktrees":"Max Worktrees","offByDefaultOptInWhenEnabledCompleted":"Off by default (opt-in). When enabled, completed task worktrees are returned to an idle pool instead of being deleted, preserving build caches for faster startup","openApprovals":"Open Approvals","optionalLeaveBlankToAutoResolveFusionWill":"Optional. Leave blank to auto-resolve; Fusion will offer to install on first use.","optionalSupports":" Optional. Supports ","pnpmInstallFrozenLockfile":"pnpm install --frozen-lockfile","randomNamesEGSwiftFalcon":"Random names (e.g., swift-falcon)","rebaseFromRemoteBeforeMerge":" Rebase from remote before merge ","rebaseRemote":"Rebase Remote","recycleWorktrees":" Recycle worktrees ","selectWorktreesDir":"Select worktrees directory","shellCommandToRunInEachNewWorktree":"Shell command to run in each new worktree after creation. No default — unset.","stopsOnWorktrunkErrorsForExplicitOperatorRecovery":" stops on worktrunk errors for explicit operator recovery; ","taskIDEGFN042":"Task ID (e.g., FN-042)","taskTitleEGFixLoginBug":"Task title (e.g., fix-login-bug)","tryAgain":"Try again","useGitDefault":"Use git default","whenEnabledTheMergerFetchesFromTheConfigured":"When enabled, the merger fetches from the configured remote and rebases the task branch onto the latest default-branch tip before merging — catching concurrent pushes from other collaborators or fusion workers. Any conflicts the rebase surfaces flow into the existing smart/AI resolve pipeline. Default: enabled.","whenUnsetOnlyAffectsNewlyCreatedWorktrees":" when unset. Only affects newly-created worktrees. ","whichRemoteToFetchForThePreMerge":" Which remote to fetch for the pre-merge rebase. \\"Use git default\\" falls back to the remote configured for the default branch (typically ","worktreeInitCommand":"Worktree Init Command","worktreeNamingStyle":"Worktree Naming Style","worktrees":"Worktrees","worktreesDirectory":"Worktrees Directory","worktrunk":" worktrunk ","worktrunkBinaryPath":"Worktrunk binary path","worktrunkFailureBehavior":"Worktrunk failure behavior","worktrunkIntegration":"Worktrunk integration","worktreesPickerNote":"Navigate to the folder where Fusion should create task worktrees, then select the current directory.","showWorktreeGroupingHelp":"Off by default. When enabled, WIP and processing columns always group tasks by worktree and show worktree names, including workflow-mode processing columns.","copyFilesHelp":"Optional. Repository-root-relative regular files are copied into fresh or pooled task worktrees before init commands run. Missing files or directories are skipped without exposing contents. Default: empty (no files copied).","namingStyleNotApplicableWhenRecycling":"Naming style is not applicable when recycling worktrees — pooled worktrees retain their existing names","howToNameFreshWorktreeDirectories":"How to name fresh worktree directories. Only applies when recycling is off. Default: random."},"fileBrowser":{"currentDirectory":"Current directory:","projectRoot":"(project root)"},"mcp":{"globalTitle":"Global MCP servers","projectTitle":"Project MCP servers","globalDescription":"Configure MCP servers shared by all projects. Project settings may override or disable these servers by name.","projectDescription":"Configure project-specific MCP servers, overrides, and disabled inherited servers.","enabledHint":"Default: disabled, with no servers configured."},"prompts":{"surfaceExplanation":"Use this section for agent role system prompt templates, role assignments, and global PromptKey segment overrides. Per-workflow step prompts for prompt and gate nodes are edited in the Workflow Editor. No default — unset (built-in role prompts apply until overridden)."},"modelPricing":{"description":"Override per-1M token rates used by Command Center cost estimates. Overrides win over the built-in baseline; unlisted models still use the baseline. No default — unset (no overrides)."},"reset":{"button":"Reset Settings","buttonShort":"Reset","buttonTitle":"Reset settings to their defaults","dialogAriaLabel":"Reset settings","dialogTitle":"Reset Settings","dialogBody":"Choose what to reset to its defaults. This cannot be undone.","resetMenuAction":"Reset this menu ({{section}})","resetAllProjectAction":"Reset all project settings","menuResetSuccess":"{{section}} settings reset to defaults","allProjectResetSuccess":"All project settings reset to defaults"}}`),it=JSON.parse('{"addCustomProvider":"Add custom provider","addMoreProjectsHint":"You can add more projects anytime from the project overview.","advancedProviderSettings":"Advanced provider settings","advancedSettings":"Advanced settings","advancedSetupDetails":"Advanced setup details","aiSetupDescription":"Fusion uses AI models to plan, write, and review code for you. Connect an AI provider below to get started — you can use a hosted service or enter an API key.","allProvidersShown":"All currently available providers are already shown above.","allSet":"All Set!","apiKeyFormatHint":"Format: {{hint}}","apiKeyHint":"Key: {{keyHint}}","apiKeyRemoved":"API key removed","apiKeySaved":"✓ API key saved","apiKeySavedToast":"API key saved","ariaDismissRecommendations":"Dismiss recommendations","ariaSetupRecommendations":"Setup recommendations","authCodeAlreadySubmitted":"That authorization code was already submitted. Waiting for login…","authCodeReceived":"Authorization code received. Finishing login…","authTokenOptional":"Auth token (optional)","back":"← Back","cancelLogin":"Cancel","childProcess":"Child-Process","childProcessDesc":"Isolated execution with crash containment.","childProcessLabel":"Child Process (Isolated)","chooseModel":"Choose Model","claudeCli":{"acpAuthFailed":"The ACP bridge reached a Claude session that isn\'t logged in. Fall back to `claude -p`, or fix authentication and re-test.","acpAuthFailedTitle":"Claude CLI bridge can\'t authenticate","active":"✓ Active","binaryNotFound":"`claude` binary not detected on PATH — install Claude CLI first.","binaryNotFoundPath":"`claude` not found on PATH","connected":"✓ Connected{{version}}","description":"Route AI calls through your locally-installed claude CLI. Uses your existing Claude subscription / quota instead of an API key.","details":"Details","detectedPrompt":"detected{{path}}. Click Enable to route AI calls through it.","disable":"Disable","disabledMessage":"Claude-CLI-routed models are hidden from the model picker.","disabledVerb":"Disabled","disabling":"Disabling…","enable":"Enable","enabledMessage":"Claude-CLI-routed models are now visible in the model picker.","enabledVerb":"Enabled","enabling":"Enabling…","extensionFailed":"Extension load failed: {{reason}}","fixAuthHint":"To fix: run `claude` in a terminal and complete login, then re-test.","name":"Anthropic — via Claude CLI","notConnected":"✗ Not connected","notInstalled":"✗ Not installed","probing":"Probing local CLI…","recheckAuth":"I fixed auth — re-test","test":"Test","testing":"Testing…","useDashP":"Use claude -p","validating":"Enabled. Validating…"},"cloneGitHint":"Fusion will run git clone into the destination directory, then register that cloned folder.","cloneGitRepository":"Clone Git Repository","clonePathHint":"Select or type an absolute destination path. Fusion will clone into this directory. The destination must be empty or absent.","clonePathPlaceholder":"/path/for/new-clone","closeWizard":"Close wizard","compactWarning":"⚠ Setup incomplete — AI and/or GitHub features will be limited.","completeSetup":"Complete these setup items to get the most out of Fusion.","connect":"Connect","connectAiProvider":"Connect AI Provider","connectAiProviderDesc":"Connect an AI provider to enable AI agents for task planning and code generation","connectAnyway":"Connect anyway","connectedProviders":"Connected providers","connectGitHub":"Connect GitHub","connectGitHubAnytime":"No worries if you\'re not ready — connect GitHub anytime from Settings → Authentication.","connectGitHubButton":"Connect GitHub","connectGitHubDesc":"Connect GitHub to import issues and track pull requests","connectOauthOptional":"Connect OAuth (optional)","connectRemoteServer":"Connect remote Fusion server","continueToLogin":"Continue to login","continueWithGhCli":"Continue with gh CLI auth →","continueWithoutGitHub":"Continue without GitHub →","copiedCodeToClipboard":"Copied code to clipboard","copyCode":"Copy code","couldNotReachServer":"Could not reach the server. Check your connection and try again.","createFirstAgent":"Create Agent","createFirstTask":"Create First Task","createNewTask":"Create a New Task","createNewTaskSubtitle":"Describe what you need built; Fusion will spawn temporary task agents automatically","createProject":"Create Project","createTasksAnytimeNote":"You can create tasks anytime from the board, or use","createTasksAnytimeNoteTerminal":"in the terminal.","creating":"Creating...","creatingFirstAgent":"Creating agent...","creatingTask":"Creating task…","cursorCli":{"active":"✓ Active","binaryNotFound":"`cursor-agent` not found on PATH","connected":"Connected{{version}}","description":"Route AI calls through your local Cursor agent runtime.","detectedPrompt":"Detected. Click Enable to route calls through Cursor CLI.","disable":"Disable","disabling":"Disabling…","enable":"Enable","enabling":"Enabling…","notConnected":"✗ Not connected","probing":"Probing local CLI…","providerName":"Cursor — via Cursor CLI","test":"Test","testing":"Testing…"},"defaultModelDescription":"Pick a default model for AI tasks, or leave this blank to choose later. Models vary in speed, capability, and cost.","defaultModelLabel":"Default model","defaultModelOptional":"Default Model (Optional)","describeFirstTask":"Describe your first task","destinationDirectory":"Destination Directory","directoryPath":"Directory Path","disconnect":"Disconnect","dismissWarning":"Dismiss setup warning","enterApiKey":"Enter API key","enterCodeOnGitHub":"Enter this code on GitHub","executionMode":"Execution Mode","failedToCancelLogin":"Failed to cancel login","failedToClearApiKey":"Failed to clear API key","failedToCopyCode":"Failed to copy code — copy it manually from the box above","failedToCreateCustomProvider":"Failed to create custom provider","failedToSaveApiKey":"Failed to save API key","failedToSaveShellConnection":"Failed to save shell connection","failedToSubmitAuthCode":"Failed to submit authorization code","finishSetup":"Finish Setup","firstAgentCreateError":"Failed to create agent","firstAgentCreatedSuccess":"Your project is registered and your first agent is ready.","firstAgentCustomDraft":"Custom agent draft","firstAgentDraftName":"Draft agent","firstAgentContinueWithTemplates":"Continue with templates","firstAgentInterviewLoadError":"AI interview could not load. You can still create an agent from a template or skip this step.","firstAgentInterviewLoading":"Loading AI Interview...","firstAgentIntro":"Agents are optional. Fusion can build tasks without one by starting temporary agents for planning, coding, review, and merge. Create an agent only if you want help coordinating tasks and direction.","firstAgentNoInstructions":"No inline instructions yet","firstAgentPreview":"Preview","firstAgentSkippedHint":"You can create agents later from the Agents view.","firstAgentTemplates":"Templates","firstAgentTitle":"Create your first agent","firstTaskDescription":"Create your first task to start the board and launch AI execution.","firstTaskPlaceholder":"Example: Build a login page with email and password","firstTaskReady":"Your first task is ready!","getApiKeyLink":"Get your API key →","getStarted":"Get Started","githubCliAlreadyAuth":"GitHub CLI is already authenticated — issue imports and pull request tracking work right now. You\'re all set; no further action needed.","connectGitHubOauth":"Connect GitHub OAuth","githubCliAuthBody":"GitHub CLI is installed but not authenticated on the Fusion host. Run this command in the environment where Fusion is running, then return here and continue.","githubCliAuthTitle":"Authenticate GitHub CLI","githubCliInstallBody":"Fusion could not find `gh` on the host running Fusion. Install GitHub CLI there to import issues and track pull requests with CLI authentication.","githubCliInstallLink":"Open GitHub CLI releases","githubCliInstallShowInstructions":"Show install instructions","githubCliInstallLinux":"Linux: install `gh` with your distribution package manager or the packages from cli.github.com.","githubCliInstallMac":"macOS: `brew install gh` or download the installer from GitHub CLI releases.","githubCliInstallTitle":"Install GitHub CLI","githubCliInstallWindows":"Windows: install GitHub CLI with WinGet, Chocolatey, or the GitHub CLI installer, then restart the Fusion host shell or service.","githubOauthUnavailable":"Dashboard GitHub OAuth is not configured on this Fusion host. You can still skip GitHub below, or use the GitHub CLI setup guidance above when available.","githubCliAuthNote":"GitHub CLI is already authenticated, so imports and PR tracking work now. OAuth from the dashboard is optional and only controls dashboard-managed connect/disconnect.","githubCliAuthSuccess":"GitHub CLI is authenticated. Imports and pull request tracking are available. Connect OAuth in Settings → Authentication if you want dashboard-managed sign-in controls.","githubConnected":"GitHub is connected — issue imports and pull request tracking are available. You\'re all set; no further action needed.","githubConnectionDescription":"Connecting GitHub unlocks issue imports and pull request tracking. You can skip this — task creation works without it.","githubConnectionFailed":"Connection failed or timed out.","githubOauthConnected":"GitHub OAuth is connected. You can import issues and track pull requests.","githubOauthNotConnected":"GitHub OAuth isn\'t connected yet. You can set it up in Settings → Authentication, or continue now and connect later.","githubProvider":"GitHub","githubSkipped":"GitHub was skipped. You can connect anytime from Settings → Authentication.","goBackToStep":"Go back to {{label}}","goToDashboard":"Go to Dashboard","howDoesLoginWork":"How does login work?","howDoesLoginWorkBody":"Clicking Login opens the provider\'s website in a new tab where you sign in. Once you authorize Fusion, this page will automatically detect the connection. Your credentials are never stored in Fusion.","howDoIChooseModel":"How do I choose a model?","howDoIChooseModelBody":"Models vary in speed, capability, and cost. A good default is usually the latest model from your connected provider. You can always change this later in Settings.","importFromGitHub":"Import from GitHub","importFromGitHubSubtitle":"Turn GitHub issues into tasks you can track here","inProcess":"In-Process","inProcessDesc":"Lower overhead, shared memory. Best for most projects.","inProcessLabel":"In-Process (Default)","isolationMode":"Isolation Mode","keySavedInline":"✓ Key saved","loadingProviders":"Loading providers…","localNode":"Local node","loggedOut":"Logged out","loggingOut":"Logging out…","login":"Login","loginAlreadyInProgress":"Login already in progress. Cancel it to retry.","loginCancelled":"Login cancelled","loginDidNotComplete":"Login did not complete. Please try again.","loginFailed":"Login failed","loginFailedInline":"Login failed. Please try again.","loginSuccessful":"Login successful","loginTimedOut":"Login timed out. Please try again.","loginTimedOutInline":"Login timed out. Please try again.","logout":"Logout","logoutFailed":"Logout failed","manualPastebackTitle":"Heads up — manual paste-back required","nameHint":"Use letters, numbers, hyphens, and underscores only","namePlaceholder":"my-project","needHelp":"Need help?","next":"Next →","noAiProvider":"No AI provider connected","noAiProviderBody":"AI features like task planning and code generation won\'t be available until you connect one. You can set this up later in Settings.","noAiProviderConnected":"No AI provider connected","noAiProviderDesc":"AI agents won\'t be able to work on tasks until you connect a provider. Set one up in Settings → AI Setup.","noGithub":"GitHub not connected","noGithubDesc":"GitHub imports stay optional. If GitHub remains disconnected for one day, connect it from Settings → Authentication to import issues and PRs.","noModelsAvailable":"No models available yet. Connect a provider above to see model options.","noProvidersConfigured":"No AI providers are configured. Please check your Fusion configuration.","noProvidersConnectedYet":"No providers connected yet","noQuickStartProviders":"No quick-start providers are available in this environment.","onlyNeedOneProvider":"You only need one provider to get started.","openGitHub":"Open GitHub","openManager":"Open manager","optionalBadge":"Optional","pasteRedirectUrlFirst":"Paste the full redirect URL or authorization code first.","pathHint":"Enter the absolute path to your project directory","pathPlaceholder":"/path/to/your/project","pleaseEnterTaskDescription":"Please enter a task description.","profileName":"Profile name","projectDirectory":"Project Directory","projectMustBeSelected":"A project must be selected before you can create tasks or import from GitHub.","projectMustBeSelectedForAgent":"Set up a project before creating an agent. You can skip this and create tasks without one.","projectName":"Project Name","projectNameHintClone":"By default this follows the destination folder name unless you edit it.","projectNameHintExisting":"By default this follows the selected directory name unless you edit it.","projectNamePlaceholder":"my-project","projectPathHint":"Select or type the absolute path to an existing git repository or workspace root.","projectPathPlaceholder":"/path/to/your/project","projectRegisteredSuccess":"Your project has been registered successfully.","projectRequired":"A project is required before first-task actions are available.","projectSelected":"Project selected — task creation and imports are available.","projectStepContext":"Step 3 of 5 — Project · Fusion setup","projectSetupDescription":"Choose your first project before creating or importing tasks. You can register an existing local directory or clone a GitHub repository URL through the setup wizard.","providersConnectedSummary":"✓ {{connected}} of {{total}} provider(s) connected","providersSkippedSummary_one_one":"{{count}} provider skipped","providersSkippedSummary_one_other":"{{count}} provider skipped","providersSkippedSummary_other_one":"{{count}} providers skipped","providersSkippedSummary_other_other":"{{count}} providers skipped","quickStartAllConnected":"All quick-start providers are already connected.","quickStartProviders":"Quick start providers","readinessAiProviderConnected":"{{name}} connected — AI agents can work on tasks","readinessAiProviderLabel":"AI Provider","readinessAiProviderMissing":"Connect a provider in Settings → AI Setup","readinessAiProviderSkipped":"AI agents won\'t be available until you connect a provider","readinessAllConnected":"✓ All integrations connected","readinessDefaultModelLabel":"Default Model","readinessGitHubConnected":"Issues and PRs can be imported","readinessGitHubLabel":"GitHub","readinessGitHubMissing":"Connect to import issues as tasks","readinessGitHubSkipped":"You can connect anytime from Settings","readinessGitHubViaCli":"Connected via GitHub CLI — imports and PR tracking are available","readinessProjectConnected":"Project selected — task creation and imports are available","readinessProjectLabel":"Project","readinessProjectMissing":"Register a project to enable task creation and imports","readinessSummaryHeader":"Setup Summary","recommended":"Recommended","recommendedNextSteps":"Recommended Next Steps","registering":"Registering...","registerProject":"Register Project","remoteServerNote":"Your native shell needs an active remote profile before dashboard handoff can complete.","remoteServerProfileSaved":"Remote server profile saved","removeKey":"Remove Key","removingKey":"Removing…","repositoryUrl":"Repository URL","repositoryUrlPlaceholder":"https://github.com/owner/repo.git","requiresGitHubConnection":"Requires GitHub connection","researchRunsNote":"Research runs require provider credentials and an enabled Research View. After onboarding, verify these in Settings → Authentication and Settings → Experimental Features.","retry":"Retry","reviewStep":"Review {{label}}","runtimeNode":"Runtime Node","runtimeNodeHint":"A runtime node is the machine where this project\'s tasks run. \\"Local node\\" is this computer; pick a remote node to run tasks elsewhere.","savedProfileButFailedToActivate":"Saved profile but failed to activate it","saveKey":"Save","saveRemoteServer":"Save remote server","saving":"Saving…","savingKey":"Saving…","savingRemoteServer":"Saving…","selectDefaultModel":"Select a default model…","selectDefaultModelDesc":"Choose a default AI model for task execution","selectedAgentTemplate":"{{name}} selected","selectedModel":"Selected:","serverUrl":"Server URL","serverUrlPlaceholder":"https://your-fusion-host","setUpAi":"Set Up AI","setupComplete":"Setup complete! Head to the board to create your first task, or explore the dashboard to see what\'s available.","setupMode":"Setup Mode","setUpProject":"Set Up Project","setupWizardHint":"In the setup wizard, register an existing git repository, initialize a selected folder, or clone a remote repository into an empty destination.","skip":"Skip","skipFirstAgent":"Skip for now","skipForNow":"Skip for now","skipGitHub":"Skip GitHub →","skipOnboardingAriaLabel":"Skip onboarding","skipProviderHint":"Skip this step if you\'d like — you can always add providers later from Settings.","skipSetup":"Skip setup →","statusConnected":"✓ Connected","statusConnecting":"⏳ Connecting…","statusConnectionFailed":"✗ Connection failed","statusNotConnected":"Not connected","statusRetry":"Retry","statusSkipped":"Skipped","stepAgent":"Agent","stepAiSetup":"AI Setup","stepFirstTask":"First Task","stepGithub":"GitHub","stepProject":"Project","submitCode":"Submit code","submittingCode":"Submitting…","taskCreated":"Task created","taskCreatedHint":"Your task has been created and will appear on the board.","taskCreationFailed":"Something went wrong creating your task. Please try again.","taskErrorHint":"Your text has been preserved — fix the issue and try again.","titleAiSetup":"Set Up AI","titleAllSet":"All Set!","titleConnectGitHub":"Connect GitHub","titleCreateFirstAgent":"Create Your First Agent","titleCreateFirstTask":"Create Your First Task","titleSetUpProject":"Set Up Your Project","useExistingDirectory":"Use Existing Directory","viewTask":"View Task","waitingForGitHubAuth":"Waiting for GitHub authorization…","waitingForLogin":"Waiting for login…","waitingForOauthLogin":"Waiting for OAuth login…","welcomeToFusion":"Welcome to Fusion","whatAreAiProviders":"What are AI providers?","whatAreAiProvidersBody":"AI providers like OpenAI and Anthropic power the AI capabilities in Fusion. Connecting a provider lets Fusion\'s agents use AI models to help with your tasks.","whatDoesGitHubIntegrationDo":"What does GitHub integration do?","whatDoesGitHubIntegrationDoBody":"Without GitHub, you can still create and manage tasks manually. GitHub integration adds the ability to import issues as tasks, track pull request status alongside your work, and automatically link commits to tasks. Connect anytime from Settings → Authentication.","whatDoesProjectSetupDo":"What does project setup do?","whatDoesProjectSetupDoBody":"Project setup registers a workspace so Fusion knows where to read files, run commands, and track task changes. You can use an existing git repository, initialize git in a selected local folder, or clone a remote repository into an empty destination.","whatHappensWhenCreateTask":"What happens when I create a task?","whatHappensWhenCreateTaskBody":"Describe the work you want done. You can create tasks without an agent: Fusion starts temporary agents to plan, code, review, and merge. Track everything on the board.","whatIsApiKey":"What is an API key?","whatIsApiKeyBody":"An API key is a secret token that authenticates Fusion with the provider. You can find your key in the provider\'s dashboard under API settings. Keys are stored securely on your machine.","withGitHub1":"Import issues as tasks","withGitHub2":"Sync pull request status","withGitHub3":"Link code changes to tasks","withGitHubHeading":"With GitHub (after connecting)","withoutGitHub1":"Create tasks manually","withoutGitHub2":"Describe work for AI agents","withoutGitHub3":"Track progress on the board","withoutGitHubHeading":"Without GitHub (available now)","brandLogo":"Fusion logo","brandName":"Fusion","setupCompleteTitle":"Setup Complete!","cloneAndRegisterProject":"Clone and Register Project","cloneGitRepositoryHint":"Clone a remote repository into an empty or absent destination folder.","initializeAndRegisterProject":"Initialize and Register Project","initializeNewRepository":"Initialize New Repository","initializeNewRepositoryHint":"Register a selected non-git folder and let Fusion run git init on the server.","initPathHint":"Select or type an absolute path to an empty or non-git folder. Fusion will run git init during registration.","initPathPlaceholder":"/path/to/new-project","newRepositoryDirectory":"New Repository Directory","projectNameHintInit":"By default this follows the folder name Fusion will initialize unless you edit it.","projectSetupModeAriaLabel":"Project setup mode","repositorySetupDescription":"Choose how Fusion should prepare the project directory before registration.","repositorySetupTitle":"Repository setup","useExistingDirectoryHint":"Register a folder that is already a git repository or workspace root.","gitPrerequisiteInstalled":"Git is installed on the Fusion host.","gitPrerequisiteInstalledVersion":"Git is installed on the Fusion host ({{version}}).","gitPrerequisiteInstallLink":"Open Git install downloads","gitPrerequisiteLinux":"Linux: install with your package manager, for example `sudo apt install git`, `sudo dnf install git`, or `sudo pacman -S git`.","gitPrerequisiteMac":"macOS: install Xcode Command Line Tools with `xcode-select --install`, Homebrew with `brew install git`, or the Git installer.","gitPrerequisiteMissingBody":"Fusion could not find `git` on the server host running Fusion. Install Git there before cloning repositories, initializing projects, or registering Git-backed workspaces.","gitPrerequisiteMissingTitle":"Install Git before project setup","gitPrerequisiteReadyTitle":"Git prerequisite ready","gitPrerequisiteWindows":"Windows: install Git for Windows and restart the Fusion host shell or service."}'),nt={activePill:"Active",addConnection:"Add connection",addServer:"Add server",authTokenLabel:"Auth token (optional)",connectionManager:"Connection Manager",connectionManagerLabel:"Connection Manager",defaultProfileName:"Remote Server",deleteConfirmLabel:"Delete server confirmation",deleteConfirmMessage:"Delete {{name}}? This removes the saved profile.",deleteProfile:"Delete {{name}} at {{url}}",editProfile:"Edit {{name}} at {{url}}",modeLocal:"Local",modeRemote:"Remote",nameLabel:"Name",noServersSaved:"No remote servers saved yet.",scanQr:"Scan QR",serverUrlLabel:"Server URL",serverUrlProtocolError:"Server URL must use http or https",use:"Use",useProfile:"Use {{name}} at {{url}}",localServerTitle:"Local Server",localServerDescription:"Use the embedded Fusion server on this device.",localServerActive:"Current",addRemoteServer:"Add remote server",editRemoteServer:"Edit remote server",remoteServersTitle:"Remote servers",remoteServersDescription:"Save Fusion servers you want this desktop app to open later.",noRemoteServersDesktop:"No remote servers saved yet. Add one only when you want this desktop app to open another Fusion server.",useLocalServer:"Use Local Server",currentLocalServer:"Current Local Server"},st={addSkill:"Add a skill…",allSkillsSelected:"All skills selected",catalogSection:"Skills Catalog",catalogUnavailable:"Catalog is temporarily unavailable. Please try again later.",closeDetail:"Close skill detail",closeView:"Close skills view",disabled:"Skill disabled",disableSkill:"Disable {{name}}",discovered:"discovered",discoveredCount_one:"{{count}} discovered skills",discoveredCount_other:"{{count}} discovered skills",discoveredSection:"Discovered Skills",enabled:"Skill enabled",enableSkill:"Enable {{name}}",filesLabel:"Files",install:"Install",installError:"Failed to install skill",installFailed:"Failed to install {{name}}: {{message}}",installing:"Installing…",installsCount:"{{count}} installs",installSkill:"Install {{name}}",installSuccess:"Installed {{name}}",loadCatalogError:"Failed to load catalog",loadContentError:"Failed to load skill content",loadDiscoveredError:"Failed to load discovered skills",loading:"Loading skills…",loadingCatalog:"Loading catalog...",loadingContent:"Loading skill content...",loadingDiscovered:"Loading discovered skills...",noCatalogAvailable:"No skills available in the catalog.",noDiscovered:"No skills discovered in this project.",noMatchingDiscovered:"No discovered skills match your search.",noMatchingSearch:"No skills match your search.",noSkillMd:"(No SKILL.md found)",noSkillsDiscovered:"No skills discovered",removeSkill:"Remove {{name}}",searchLabel:"Search skills",searchPlaceholder:"Search skills...",title:"Skills",toggleError:"Failed to toggle skill",toggleFailed:"Failed to toggle skill: {{message}}",viewDetails:"View details for {{name}}"},rt={edit:"Edit",empty:"(no specification)",feedbackPlaceholder:"e.g., 'Add more details about error handling', 'Split this into smaller steps', 'Include tests for the API endpoints'...",keyboardHint:"Press <ctrl>Ctrl</ctrl>+<enter>Enter</enter> (or <cmd>Cmd</cmd>+<enter2>Enter</enter2>) to save",placeholder:"Enter task specification in Markdown...",requesting:"Requesting…",requestRevision:"Request AI Revision",revisionHelp:"Provide feedback for the AI to improve this specification. The task will move to planning for replanning.",revisionTitle:"Ask AI to Revise",saving:"Saving…",view:"View"},lt={copyReference:"Copy stash reference"},dt={applied:"Applied",apply:"Apply",applyFailed:"Apply failed",changedPathsLabel:"Changed paths",classificationLabel:"Classification",closeDiffDialog:"Close diff dialog",diffDialogLabel:"Diff for {{sha}}",diffHeader:"Diff for {{sha}}",diffTruncated:"Diff output truncated.",drop:"Drop",dropConfirm:"Drop",dropMessage:"This removes the stash entry permanently.",dropTitle:"Drop orphaned stash?",failedToLoadDiff:"Failed to load diff",failedToLoadOrphans:"Failed to load orphans",fileCount_one:"{{count}} files",fileCount_other:"{{count}} files",inspectDiff:"Inspect diff",loadingDiff:"Loading diff…",noDiffOutput:"No diff output available.",noOrphans:"No orphaned merger autostashes found.",orphanCount_one:"{{count}} orphans",orphanCount_other:"{{count}} orphans",shaLabel:"SHA",title:"Stash Recovery",unknownSource:"Unknown source"},ct={aiPrompt:"AI Prompt",aiPromptStepTitle:"AI Prompt step",command:"Command",commandStepTitle:"Command step",createTask:"Create Task",createTaskStepTitle:"Create Task step"},ut={addSubtask:"Add subtask",baseBranchLabel:"Merge target / base branch (optional)",baseBranchPlaceholder:"main",branchAssignmentPerTask:"Per-task branches derived from planning branch",branchAssignmentShared:"Shared merge target — subtasks run on their own branches",branchModeAutoNew:"Create auto-named branch per task",branchModeCustomNew:"Create custom new branch",branchModeExisting:"Use existing branch",branchModeProjectDefault:"Use project/default branch",branchNameLabel:"Branch name",branchStrategyLabel:"Branch strategy",createTasks:"Create Tasks",creating:"Creating...",dependenciesLabel:"Dependencies",dependencyCycleError:"Dependencies contain a cycle. Remove circular references before creating tasks.",descriptionLabel:"Description",dragToReorder:"Drag to reorder",errorCreateTasks:"Failed to create tasks",errorRefreshSession:"Failed to refresh subtask session.",errorResumeSession:"Failed to resume session",errorRetryFailed:"Retry failed. Please try again.",errorSessionEncountered:"Session encountered an error",errorSessionFailed:"Session failed while contacting the AI.",errorSessionNoResult:"Subtask session is complete but has no result.",errorStartBreakdown:"Failed to start subtask breakdown",generatingSubtasks:"AI is generating subtasks...",groupedOnSharedBranch:"Grouped on shared branch",hideThinking:"Hide thinking",keepSessionMessage:"Close this modal and keep the subtask session available from Background Tasks? Edited fields that have not been saved to the session may be reset when you resume.",keepSessionTitle:"Keep subtask session available?",modalTitle:"Subtask Breakdown",moveDown:"Move down",moveSubtaskDownAriaLabel:"Move subtask down",moveSubtaskUpAriaLabel:"Move subtask up",moveUp:"Move up",noDepsFirstSubtask:"First subtask cannot have dependencies.",noPreviousSubtasks:"No previous subtasks available.",openGroupModal:"Open group modal",planningBranchModeLabel:"Planning branch mode",preparingBreakdown:"Preparing to break this task into subtasks.",progressHint:"Fusion will keep working while the AI prepares subtasks.",reconnecting:"Reconnecting…",remove:"Remove",retry:"Retry",retrying:"Retrying...",reviewSubtasksHeading:"Review your subtasks",reviewSubtasksHint:"Edit titles, descriptions, sizes, and dependencies before creating all tasks at once.",sendToBackgroundAriaLabel:"Send to background",sendToBackgroundTitle:"Send to background",sessionActiveAnotherTab:"Session is active in another tab.",sessionActiveAnotherTabLive:"This session is active in another tab (live heartbeat)",sessionActiveAnotherTabTakeover:"This session is active in another tab",showThinking:"Show thinking",sizeLabel:"Size",startingBreakdown:"Starting subtask breakdown...",takeControl:"Take Control",takingControl:"Taking control...",titleLabel:"Title",untitled:"Untitled",waitingForThinking:"Waiting for AI progress updates..."},pt={entryCount_one:"{{count}} entry",entryCount_other:"{{count}} entries",filterAll:"All",filterAllNodes:"All Nodes",filterDirection:"Direction:",filterNode:"Node:",filterPull:"Pull",filterPush:"Push",loading:"Loading...",noHistory:"No sync history available",resultConflict:"Conflict",resultError:"Error",resultSuccess:"Success"},gt={agentActive:"active",agentError:"error",agentIdle:"idle",agentRunning:"running",autoKillLabel:"Auto-kill vitest on memory pressure",autoRefresh:"Auto-refresh · 5s",confirmKill:"Confirm Kill?",cpuFirstSamplePending:"First sample pending",cpuProcessUsage:"process usage",cpuSampling:"Sampling…",errorKillVitest:"Failed to kill vitest processes",errorLoadStats:"Failed to load system stats",errorLoadVitestSettings:"Failed to load vitest settings",errorSaveVitestSettings:"Failed to save vitest settings",footerRefreshFailed:"Latest refresh failed: {{error}}",killedProcesses_one:"Killed {{count}} processes",killedProcesses_other:"Killed {{count}} processes",killThresholdInputAriaLabel:"Kill threshold (%)",killThresholdLabel:"Kill threshold (%)",killThresholdSliderAriaLabel:"Kill threshold slider (%)",killVitest:"Kill Vitest Processes",lastAutoKill:"Last auto-kill: {{time}}",localNodeFallback:"Local node",nodeSelectorAriaLabel:"Select system stats node",nodeSelectorLabel:"Node",nodeStatusSuffix:"{{status}}",notYet:"Not yet",refreshAriaLabel:"Refresh system stats",refreshTitle:"Refresh",rowAppCpu:"App CPU",rowArrayBuffers:"Array Buffers",rowCores:"Cores",rowExternal:"External",rowHeapLimit:"Heap Limit",rowHeapLimitDetail:"V8 limit",rowHeapUsed:"Heap Used",rowHeapUsedDetail:"of {{total}}",rowLoadAvg:"Load Avg",rowMemoryFree:"Memory Free",rowMemoryUsed:"Memory Used",rowNode:"Node",rowPid:"PID",rowPlatform:"Platform",rowRss:"RSS",sectionAgents:"Agents",sectionAgentsAriaLabel:"Agent stats",sectionTasks:"Tasks",sectionTasksAriaLabel:"Task stats",sectionVitest:"Vitest Controls",thisNodeSuffix:"this node",updatedAt:"Updated {{time}}",viewingNode:"Viewing {{node}}",vitestProcesses:"Vitest Processes",waitingFirstUpdate:"Waiting for first update"},mt={attributionFailed:"Landed-files set may include foreign commits (attribution unavailable).",disableWordWrap:"Disable word wrap",enableWordWrap:"Enable word wrap",error:"Error loading changes: {{error}}",expandDiff:"Expand to full-screen diff view",expandDiffView:"Expand diff view",filesChangedHeading_one:"Files Changed ({{count}})",filesChangedHeading_other:"Files Changed ({{count}})",loadError:"Failed to load task changes",loading:"Loading changes...",mergedAt:"Merged {{date}}",nextFile:"Next file",noExecutionModifications:"The agent did not modify any files during execution.",noFilesModified:"No files modified.",noMergeCommit:"No merge commit was recorded for this task.",noMergeFileChanges:"No file changes were recorded in the merge commit.",noOpShortCircuit:"Verified short-circuit — work was already on main (rebase walked foreign commits).",noWorktree:"No worktree available for this task.",noWorktreeHint:"Changes will be shown once the task is in progress.",previousFile:"Previous file",summaryHint:"Final commit summary: {{files}} file{{plural}} changed, +{{additions}} additions, -{{deletions}} deletions. Counts only the recorded merge/squash commit, not the full task lineage.",toggleWordWrap:"Toggle word wrap",unavailable:"Detailed file changes unavailable."},ht=JSON.parse(`{"actions":{"menuBtn":"Actions"},"agent":{"assignBtn":"Assign Agent","assignedUpdated":"Assigned agent updated","assignFailed":"Failed to assign agent: {{error}}","label":"Agent","loadFailed":"Failed to load agents: {{error}}","loadingAgents":"Loading agents...","noAgents":"No agents available","unassigned":"Agent unassigned","unassignFailed":"Failed to unassign agent: {{error}}","unassignTitle":"Unassign agent"},"agentLink":"agent {{id}}","ageStaleness":{"active":"Active","age":"Age","column":"Column","critical":"Critical","observed":"Observed","paused":"Paused","title":"Task age staleness","warning":"Warning"},"attachments":{"attachBtn":"Attach Screenshot","attached":"Screenshot attached","deleted":"Attachment deleted","deleteTitle":"Delete attachment","heading":"Attachments","none":"(no attachments)","uploading":"Uploading…"},"blockedByLink":"blocked by {{id}}","blocking":{"heading":"Blocking","none":"(no downstream tasks blocked)","stale":"(stale)","staleTitle":"Stale blockedBy edge: self-healing clearStaleBlockedBy should clear this automatically"},"branchBinding":{"candidates":"Candidates:","copy":"This in-review task isn't currently attached to a fusion branch. If a live fusion branch still exists for it, you can reattach it here.","headline":"Branch needs reattachment","reattachBtn":"Reattach branch","reattached":"Reattached branch for {{id}} ({{branch}})","reattachedResult":"Reattached {{branch}} ({{count}} commits ahead of {{base}}).","reattachedResult_one":"Reattached {{branch}} ({{count}} commits ahead of {{base}}).","reattachedResult_other":"Reattached {{branch}} ({{count}} commits ahead of {{base}}).","reattaching":"Reattaching…","skipped":"Branch reattachment skipped for {{id}}: {{reason}}","skippedResult":"Reattachment skipped: {{reason}}"},"bypassReview":{"btn":"Bypass failed review","promptMessage":"Reason for bypassing the failed pre-merge review step (required, audit-logged):","success":"Bypassed failed review lane for {{id}}"},"cacheBreakdown":"(read {{read}} / write {{write}} / input {{input}})","cacheHitRatio":"Cache hit ratio:","cacheRead":"Cache read","cacheWrite":"Cache write","checkoutLink":"checkout {{id}}","delete":{"actionClosed":"closed","actionDeleted":"deleted","actionLeft":"left","allowRecreation":"Allow re-creation later (operator unlock)","allowRecreationDesc":"Lets agents recreate this task ID without --force-resurrect. Leave unchecked to keep this task tombstoned.","archivedAfterUnlink":"Archived {{id}} after unlinking lineage references","archiveInstead":"Archive Instead","archiveUnlinkPrompt":"Archive anyway by unlinking these references first?","ariaLabel":"Delete task","btn":"Delete","closeIssue":"Close Issue","confirm":"Delete","deletedAfterRemovingDeps":"Deleted {{id}} after removing dependency references","deletedAfterUnlinkLineage":"Deleted {{id}} after unlinking lineage references","deletedToast":"Deleted {{id}}{{suffix}}","deleteIssue":"Delete Issue","deleteLinkedIssueMessage":"Delete {{issueRef}} on GitHub, or leave it unchanged?","deleteLinkedIssueTitle":"Delete Linked GitHub Issue","deleteUnlinkDepsPrompt":"Delete anyway by removing these dependency references first?","deleteUnlinkLineagePrompt":"Delete anyway by unlinking these references first?","forceDeleteTitle":"Force Delete Task","issueSuffix":"and {{action}} issue {{ref}}","leaveUnchanged":"Leave Unchanged","linkedIssueMessage":"Choose what to do with {{issueRef}} when deleting {{id}}.\\n\\nClose the issue?","linkedIssueTitle":"Linked GitHub Issue","message":"Delete {{id}}?","moreOptions":"More Options","title":"Delete Task"},"deps":{"addBtn":"Add Dependency","clearBlockerTitle":"Clear overlap blocker {{id}}","clearBtn":"Clear","clickToView":"Click to view {{id}}","heading":"Dependencies","loadFailed":"Failed to load dependency {{id}}","noAvailableTasks":"No available tasks","none":"(no dependencies)","overlapBlocker":"File scope overlap blocker:","removeTitle":"Remove dependency {{id}}","searchPlaceholder":"Search tasks…","stale":"(stale)"},"description":{"showLess":"Show less","showMore":"Show more"},"duplicate":{"btn":"Duplicate","message":"Duplicate {{id}}? This will create a new task in Triage with the same description and prompt.","success":"Duplicated {{id}} → {{newId}}","title":"Duplicate Task"},"edit":{"autosaveHint":"Changes autosave as you edit","autosaving":"Autosaving…","nodeOverrideLocked":"Execution node override is locked while a task is active/in progress.","saved":"Saved","saveFailed":"Save failed","saving":"Saving…","sourceExternalIdPlaceholder":"Issue identifier","sourceIssueHint":"Leave all fields empty to clear source issue metadata.","sourceIssueIdentifierNumeric":"Source issue identifier must be numeric for new metadata","sourceIssueLabel":"Source Issue","sourceIssueRequiredFields":"Source issue provider, repository, and issue identifier are required","sourceProviderPlaceholder":"Provider (e.g. github)","sourceRepositoryPlaceholder":"Repository (e.g. owner/repo)","sourceUrlPlaceholder":"Issue URL"},"error":{"taskFailed":"Task Failed"},"executionAndTokenStats":"Execution & Token Stats","executionDetails":"Execution Details","executionMode":{"ariaLabel":"Execution mode: {{mode}}","fast":"Fast","replanMessage":"Changing execution mode for this task will move it back to Planning so Fusion can rebuild the plan for {{mode}} mode.","replanTitle":"Change execution mode and replan?","replanning":"Execution mode updated to {{mode}} — {{id}} returned to Planning for replanning","standard":"Standard","updated":"Execution mode updated to {{mode}}"},"executionModeLabel":"Execution mode","executionModeFast":"Fast","executionModeStandard":"Standard","executionStatsAria":"Task execution statistics","executionTiming":"Execution Timing","executionTimingMetricsAria":"Execution timing metrics","firstUsed":"First used","gitlabTracking":{"collapse":"Collapse GitLab tracking details","expand":"Expand GitLab tracking details","instance":"Instance","item":"Item","itemUnlinked":"GitLab item unlinked","kind":"Kind","kindGroupIssue":"Group issue","kindMergeRequest":"Merge request","kindProjectIssue":"Project issue","label":"GitLab tracking","lastSynced":"Last synced","namespace":"Namespace","openAriaLabel":"Open linked GitLab item","openBtn":"Open in GitLab","stale":"Stale","staleUnknown":"Sync data is stale","state":"State","stateUnknown":"unknown","statusAriaLabel":"GitLab tracking status","statusLinked":"Linked","statusStale":"Stale","statusUnlinked":"Unlinked","unlinkBtn":"Unlink GitLab item","unlinkConfirm":"Unlink","unlinkMessage":"This removes the local GitLab tracking link. The GitLab issue or merge request itself will not be modified.","unlinkTitle":"Unlink GitLab item?","unlinked":"No linked GitLab item"},"githubTracking":{"addTitleBeforeCreating":"Add a title before creating a tracking issue","checking":"Checking tracking status","collapse":"Collapse GitHub tracking details","createIssueBtn":"Create tracking issue","createIssueDisabledTitle":"Add a title or description so a tracking issue can be created.","createIssueHelper":"Tracking issue will be created once this task has a title or description to summarize.","disabled":"Tracking is currently disabled","enableAriaLabel":"Enable GitHub tracking","enableBtn":"Enable","enableCheckboxLabel":"Enable GitHub tracking","enabling":"Enabling GitHub tracking…","enablingAriaLabel":"Enabling GitHub tracking","expand":"Expand GitHub tracking details","issue":"Issue","issueCreationRequested":"Requested GitHub tracking issue creation","issueUnlinked":"GitHub issue unlinked","label":"GitHub tracking","loading":"Loading GitHub tracking status…","loadingAriaLabel":"Loading GitHub tracking status","notYetCreated":"Issue not yet created","repoOverrideFormat":"Repository override must be in owner/repo format","state":"State","statusAriaLabel":"GitHub tracking status","statusDisabled":"Disabled","statusEnabled":"Enabled","statusLinked":"Linked","statusLoading":"Loading","unlinkBtn":"Unlink GitHub issue","unlinkConfirm":"Unlink","unlinkMessage":"This stops Fusion from syncing with the linked GitHub issue. The issue itself will not be modified.","unlinkTitle":"Unlink GitHub issue?"},"hasSession":"has session","header":{"back":"Back","backToList":"Back to task list","editTask":"Edit task"},"inputTokens":"Input","lastUsed":"Last used","loadingTokenStats":"Loading token statistics…","logs":{"activity":"Activity","activityHeading":"Activity","agentLog":"Agent Log","loadingActivity":"Loading activity…","noActivity":"(no activity)","truncated_one":"Showing the most recent {{count}} activity entries.","truncated_other":"Showing the most recent {{count}} activity entries."},"longestTimingEvent":"Longest timing event","longestWorkflowStep":"Longest workflow step","merge":{"closed":"Closed {{id}} ({{reason}})","merged":"Merged {{id}} (branch: {{branch}})","merging":"Merging {{id}}…","message":"Merge {{id}} into the current branch?","noBranchToMerge":"no branch to merge","title":"Merge Task"},"move":{"backToInProgress":"Back to In Progress","cancelMove":"Cancel Move","keepProgress":"Keep Progress","movedTo":"Moved to {{column}}","moveTo":"Move to {{column}}","preserveProgressMessage":"This task has completed steps. Keep progress before moving?","preserveProgressTitle":"Preserve Progress?","resetProgress":"Reset Progress","resetProgressMessage":"Reset all step progress before moving this task?","resetProgressTitle":"Reset Progress?"},"nearDuplicate":{"actions":"Choose Archive to move this task to archived, or Keep to continue with this task.","archiveBtn":"Archive","archiveConfirm":"Archive","archived":"Archived {{id}}","archiveMessage":"Archive {{id}} as a duplicate of {{duplicateOf}}?","archiveTitle":"Archive near-duplicate task","copy":"This task appears to be a near-duplicate of","headline":"Potential duplicate detected","keepBtn":"Keep","kept":"Kept {{id}} and dismissed duplicate warning"},"nextRecoveryAt":"Next recovery at {{time}}","no":"No","noCommits":{"disabled":"No-commits expectation disabled","enabled":"No-commits expectation enabled","hint":"Allows the task to complete without producing git commits. Use for evaluation, verification, or audit tasks where the deliverable is the recorded decision.","label":"No commits expected (decision-only task)"},"noRuntimeLinks":"No runtime links","noScheduledRecovery":"No scheduled recovery","noSteps":"No steps","noTimedEvents":"No timed events recorded yet.","noTokenUsage":"No token usage recorded for this task yet.","notSet":"Not set","noWorkflowStepTimings":"No completed workflow step timings yet.","outputTokens":"Output","pause":{"pauseBtn":"Pause","paused":"Paused {{id}}","pausedByAgent":"Paused by agent","unpauseBtn":"Unpause","unpaused":"Unpaused {{id}}","worktrunkFailed":"Worktrunk operation failed"},"paused":"Paused","plan":{"approveBtn":"Approve Plan","approved":"Plan approved — {{id}} moved to Todo","rebuildMessage":"Rebuild the plan for this task? The task will move to planning for replanning.","rebuildTitle":"Rebuild Plan","rejectBtn":"Reject Plan","rejected":"Plan rejected — {{id}} returned to Planning for replanning","rejectMessage":"Reject this plan? The specification will be discarded and regenerated.","rejectTitle":"Reject Plan","replanning":"Replanning {{id}}…"},"pr":{"awaitingChecks":"Awaiting PR checks","checkPrStatus":"Check PR Status","creatingPr":"Creating PR…","finishAndClose":"Finish & Close","mergeAndClose":"Merge & Close","mergingFixes":"Merging fixes…","mergingPr":"Merging PR…","startPrReview":"Start PR Review","statusRefreshed":"PR status refreshed","label":"PR"},"priority":{"ariaLabel":"Task priority","label":"Priority:","updated":"Priority updated to {{priority}}"},"progress":{"heading":"Progress","noSteps":"(no steps defined)","stepCount_one":"{{count}}/{{total}} step","stepCount_other":"{{count}}/{{total}} steps"},"provenance":{"createdBy":"Created by","createdVia":"Created via","parentTaskOf":"of","createdToUndo":"Created to undo","undoTask":"Undo task"},"recoveryState":"Recovery state","refine":{"btn":"Refine","charCount_one":"{{count}}/2000 characters","charCount_other":"{{count}}/2000 characters","createBtn":"Create Refinement Task","creating":"Creating...","feedbackRequired":"Please enter feedback describing what needs refinement","feedbackTooLong":"Feedback must be 2000 characters or less","help":"Describe what needs to be refined or improved...","modalTitle":"Refine","placeholder":"Enter your feedback here...","taskCreated":"Refinement task created: {{id}}"},"reset":{"btn":"Reset","confirmMessage":"This will erase all progress for {{id}} and start the task from scratch. Continue?","resetSuccess":"Reset {{id}} — fresh run will be allocated"},"respecify":{"btn":"Respecify"},"retries":{"branchConflict":"Branch conflict recovery","branchConflictTitle":"FN-4068 branch-conflict recovery retries","capReached":"Retry cap reached for this task.","collapse":"Collapse retries details","expand":"Expand retries details","label":"Retries","mergeConflict":"Merge conflict bounces","mergeConflictTitle":"Merge conflict bounce retries","postReviewFix":"Post-review fixes","postReviewFixTitle":"Post-review remediation retries","recovery":"Recovery retries","recoveryTitle":"Transient executor recovery retries","reviewerContext":"Reviewer context retries","reviewerContextTitle":"FN-4082 compact reviewer retry","reviewerFallback":"Reviewer fallback retries","reviewerFallbackTitle":"FN-4092 fallback-model retry","stuckKill":"Stuck kills","stuckKillTitle":"Stuck-task detector forced agent kill retries","taskDone":"task_done retries","taskDoneTitle":"Agent exited without task_done and task was retried","verification":"Verification bounces","verificationTitle":"Verification failure bounce retries","workflowStep":"Workflow retries","workflowStepTitle":"Workflow step failure retries"},"retriesLabel":"Retries (recovery / workflow / merge / task_done)","retry":{"btn":"Retry","retried":"Retried {{id}}"},"runtimeLinks":"Runtime links","runtimeStatus":"Runtime status","selfHealCounters":"Self-heal counters","selfHealValues":"stuck kills: {{stuckKills}}, post-review fixes: {{postReviewFixes}}","sourceIssue":{"collapse":"Collapse source issue details","expand":"Expand source issue details","githubAriaLabel":"GitHub source issue","githubBadge":"GitHub","gitlabAriaLabel":"GitLab source item","gitlabBadge":"GitLab","identifier":"Issue Identifier","label":"Source issue","none":"(none)","provider":"Provider","repository":"Repository","url":"URL"},"spec":{"aiReviseHeading":"Ask AI to Revise","aiReviseHelp":"Provide feedback for the AI to improve this specification. The task will move to planning for replanning.","editBtn":"Edit","feedbackPlaceholder":"e.g., 'Add more details about error handling', 'Split this into smaller steps', 'Include tests for the API endpoints'...","hintCancel":"to cancel","hintSave":"to save","loading":"Loading specification…","noPrompt":"(no prompt)","placeholder":"Enter task specification in Markdown...","requesting":"Requesting…","requestRevisionBtn":"Request AI Revision","revisionColumnError":"Cannot request revision: Task must be in 'triage', 'todo', 'in-progress', or 'in-review' column.","revisionRequested":"AI revision requested. Task moved to planning.","saving":"Saving…","updated":"Spec updated"},"stall":{"noLogEntry":"No log entry yet","noLogEntryTitle":"No 'In-review stall surfaced' entry on this task yet — self-healing may not have logged one within its rate-limit window.","observed":"Observed","threshold":"Threshold","viewActivityLog":"View activity log"},"stepProgress":"Step progress","summary":{"heading":"Summary"},"summaryTab":{"agentWorkHeading":"Work done by agents","cachedTokens":"Cached","changedHeading":"What changed","commit":"Commit","completedSteps":"Completed steps","completionHeading":"Completion summary","cost":"Cost","costUnavailable":"No pricing for this model","deletions":"Removed","filesChanged":"Files","inputTokens":"Input","insertions":"Added","model":"Model","noAgentWork":"No completed steps or workflow results are available for this task.","noChangedFiles":"No changed-file list is available for this task.","noCompletionSummary":"No completion summary was recorded for this task.","noTokenUsage":"No token usage recorded for this task yet.","outputTokens":"Output","retries":"Agents retried this task {{count}} time{{plural}}.","tokenCostHeading":"Token usage & cost","totalCost":"Total cost","totalTokens":"Total","unknownModel":"(unknown)","workflowResults":"Workflow results"},"tabs":{"changes":"Changes","chat":"Chat","comments":"Comments","definition":"Definition","documents":"Artifacts","logs":"Logs","model":"Model","pullRequest":"Pull Request","review":"Review","routing":"Routing","stats":"Stats","summary":"Summary","terminal":"Session","worktreeTerminal":"Terminal","workflow":"Workflow","cost":"Cost"},"terminal":{"loading":"Loading terminal…"},"timedDuration":"Timed duration","timestamps":{"ariaLabel":"Task timestamps","created":"Created","updated":"Updated"},"timingEvents":"Timing events","title":{"summarize":"Summarize","summarizeFailed":"Failed to summarize title: {{error}}","summarizeSuccess":"Title updated from description"},"tokenTotalsAria":"Task token totals","tokenUsage":"Token Usage","totalExecutionTime":"Total execution time","totalTokens":"Total","updateFailed":"Failed to update {{id}}: {{error}}","updateSuccess":"Updated {{id}}","wallClockSinceFirst":"Wall-clock since first execution","workflow":{"loadFailed":"Failed to load workflow results: {{error}}","stepsUpdated":"Workflow steps updated","stepsUpdateFailed":"Failed to update workflow steps: {{error}}"},"workflowRuntime":"Workflow runtime","workflowTimedSteps":"Workflow timed steps","yes":"Yes","costTab":{"cacheWriteTokens":"Cache write","cachedTokens":"Cached","cost":"Derived USD","costUnavailable":"No pricing for this model","description":"Derived from recorded input, output, cached, and cache-write tokens. Unpriced rows use — instead of a guessed value.","empty":"No model token usage has been recorded for this task yet.","heading":"Model cost","inputTokens":"Input","model":"Model","outputTokens":"Output","totalCost":"Total cost","totalCostLabel":"Total","totalTokens":"Total tokens","unknownModel":"(unknown)"}}`),ft={cancel:"Cancel",collapse:"Collapse",contentLabel:"Content",contentPlaceholder:"Enter document content…",contentRequired:"Content is required",create:"Create",created:"Document created",creating:"Creating…",deleteConfirm:"Delete?",deleted:"Document deleted",edit:"Edit",expand:"Expand",failedToCreate:"Failed to create document",failedToDelete:"Failed to delete document",failedToLoad:"Failed to load documents",failedToLoadRevisions:"Failed to load revisions",failedToSave:"Failed to save document",heading:"Artifacts",history:"History",invalidKeyFormat:"Invalid key format. Use 1-64 alphanumeric characters, hyphens, or underscores.",keyHint:"Alphanumeric, hyphens, underscores (1-64 chars)",keyLabel:"Key",keyPlaceholder:"e.g., plan, notes, research",keyRequired:"Document key is required",loading:"Loading documents and artifacts…",loadingRevisions:"Loading…",modeMarkdown:"Markdown",modePlain:"Plain",newDocumentButton:"New Document",newDocumentTitle:"New Document",no:"No",noDocuments:"No documents or artifacts yet.",noPreviousRevisions:"No previous revisions.",revisionHistory:"Revision History",save:"Save",saved:"Document saved",saving:"Saving…",switchToMarkdown:"Switch to markdown",switchToPlainText:"Switch to plain text",yes:"Yes",artifactCount:"{{count}} artifact{{plural}}",artifactsSubheading:"Media artifacts",documentCount:"{{count}} document{{plural}}",documentsSubheading:"Task documents",failedToLoadArtifacts:"Failed to load artifacts",noTaskDocuments:"No task documents yet."},bt={moreFields:"Additional fields",orphaned:"Orphaned fields",saveFailed:"Failed to save field",unset:"—"},vt={addDependencies:"Add dependencies",attachHint:"You can also paste images or drag & drop",attachmentsLabel:"Attachments",attachScreenshot:"Attach Screenshot",autoMergeDefault:"Default (Follow project setting)",autoMergeDisabled:"Disabled",autoMergeEnabled:"Enabled",autoMergeHint:"Default follows the project auto-merge setting.",autoMergeLabel:"Auto-merge",autoSaveSaved:"Saved",autoSaveSaving:"Saving...",baseBranchCustom:"Custom…",baseBranchDefault:"(default / project branch)",baseBranchLabel:"Merge target / base branch",baseBranchPlaceholder:"e.g. main",branchModeAutoNew:"Create auto-named branch per task",branchModeCustomNew:"Create custom new branch",branchModeExisting:"Use existing branch",branchModeProjectDefault:"Use project/default branch",branchModeSharedGroup:"Merge into a shared feature branch",branchNameLabel:"Branch name",branchPlaceholder:"e.g. feature/my-task",branchSettingsLabel:"Branch Settings",branchStrategyLabel:"Branch strategy",collapseDescription:"Collapse description",dependenciesLabel:"Dependencies",dependenciesSelected_one:"{{count}} selected",dependenciesSelected_other:"{{count}} selected",descriptionLabel:"Description",descriptionPlaceholder:"What needs to be done?",descriptionRefinedToast:"Description refined with AI",editingDescription:"Editing Description",enterDescriptionFirst:"Enter a description first",executionModeFast:"Fast",executionModeLabel:"Execution mode",executionModeStandard:"Standard",executorLabel:"Executor",executorModelLabel:"Executor Model",expandDescription:"Expand description",githubRepoFormatError:"Repository must be in owner/repo format.",githubRepoLabel:"Repository (owner/repo)",githubTrackingEnable:"Enable GitHub issue tracking for this task",githubTrackingLabel:"GitHub Tracking",loadingModels:"Loading models…",modelConfigLabel:"Model Configuration",moreOptions:"More options",noAvailableTasks:"No available tasks",nodeDefaultOption:"Use project default / local",nodeOverrideHint:"Task override takes priority over project default node routing.",nodeOverrideLabel:"Execution Node Override",noModelsAvailable:"No models available. Configure authentication in Settings.",overridePreset:"Override",planButton:"Plan",planningLabel:"Planning",planningModelLabel:"Planning Model",presetCustom:"Custom",presetLabel:"Preset",presetUseDefault:"Use default",priorityLabel:"Priority",refineAddDetailsDesc:"Add implementation details and context",refineAddDetailsTitle:"Add details",refineButton:"Refine",refineClarifyDesc:"Make the description clearer and more specific",refineClarifyTitle:"Clarify",refineExpandDesc:"Expand into a more comprehensive description",refineExpandTitle:"Expand",refineInProgress:"Refining...",refineSimplifyDesc:"Simplify and make more concise",refineSimplifyTitle:"Simplify",refineTitle:"Refine description with AI",removeImage:"Remove image",reviewDefault:"Default (Auto — triage decides)",reviewerLabel:"Reviewer",reviewerModelLabel:"Reviewer Model",reviewLabel:"Review",reviewLevel0:"0 — None",reviewLevel1:"1 — Plan Only",reviewLevel2:"2 — Plan and Code",reviewLevel3:"3 — Full",searchTasksPlaceholder:"Search tasks…",sharedBranchPlaceholder:"e.g. clionboarding",sharedFeatureBranchLabel:"Shared feature branch",subtaskButton:"Subtask",thinkingDefault:"Default ({{level}})",thinkingHigh:"High",thinkingLabel:"Thinking",thinkingLow:"Low",thinkingMedium:"Medium",thinkingMinimal:"Minimal",thinkingOff:"Off",thinkingXhigh:"Very High",titleLabel:"Title",titlePlaceholder:"Task title",useDropdown:"Use dropdown",usingPreset:"Using preset: {{name}}",workflowDefaultBadge:"(default)",workflowHelp:"The selected workflow's steps run automatically around this task's execution.",workflowLabel:"Workflow",workflowNone:"No workflow",workflowsCta:"Set up workflows in the editor",workflowsLoading:"Loading workflows…",workingBranchLabel:"Working branch"},kt={githubImported:"Imported {{id}} from GitHub"},yt={autoMergeOff:"Auto-merge off",autoMergeOn:"Auto-merge on",autoMergePreferenceUpdated:"Per-task auto-merge preference updated",addressPrFeedback:"Address PR feedback",addressPrFeedbackFailed:"Failed to start PR feedback session",addressPrFeedbackStarted:"Addressing PR feedback — AI session started",addressingPrFeedback:"Addressing…",completedAtSep:" · Completed: {{timestamp}}",createPr:"Create PR",effective:"Effective: {{label}}",effectiveFrozen:"Effective: {{label}} — frozen on entry to review",errorSep:" · Error: {{message}}",followDefault:"Follow default",loadError:"Failed to load review data.",loadingData:"Loading review data…",markdown:"Markdown",noCapturedFeedback:"No review feedback captured yet.",noFeedbackDirect:"No reviewer feedback yet — this task has not produced reviewer-agent feedback in direct mode.",noReviewItems:"No review items yet.",perTaskAutoMerge:"Per-task auto-merge",plain:"Plain",prSummaryLine_one:"{{decision}} · {{count}} review item(s)",prSummaryLine_other:"{{decision}} · {{count}} review item(s)",queueing:"Queueing…",refresh:"Refresh",refreshDataFailed:"Failed to refresh review data.",refreshed:"Review refreshed",refreshFailed:"Refresh failed",refreshing:"Refreshing…",refreshStatusLine:"{{status}} · Last refreshed: {{timestamp}} · {{source}}",requestRevision:"Request revision",reviewerSummaryLine_one:"{{reviewer}} · {{count}} review item(s)",reviewerSummaryLine_other:"{{reviewer}} · {{count}} review item(s)",revisionQueueFailed:"Failed to queue revision",revisionStarted:"Same-task AI revision started from selected review feedback",selectedAt:"Selected: {{timestamp}}",showMarkdown:"Show formatted markdown",showRawText:"Show raw text",startedAtSep:" · Started: {{timestamp}}",updateFailed:"Failed to update {{taskId}}: {{error}}",upToDate:"Up to date"},wt={addTaskPlaceholder:"Add a task...",addressPrFeedback:"Address PR feedback",addressPrFeedbackAriaLabel:"Address PR feedback",addressPrFeedbackFailed:"Failed to start PR feedback session: {{error}}",addressPrFeedbackStarted:"Addressing PR feedback — AI session started",addressPrFeedbackTitle:"Start an AI session to address PR feedback",addressingPrFeedback:"Addressing…",agent:"Agent",agentLabel:"Agent",answerQuestions:"Answer questions",archive:"Archive",archived:"Archived {{taskId}}",archivedUnlinked:"Archived {{taskId}} after unlinking lineage references",archiveFailed:"Failed to archive {{taskId}}: {{error}}",archiveLineageConflict:`{{taskId}} has lineage children ({{children}}) that reference it as a source parent.
6
6
 
7
7
  Archive anyway by unlinking these references first?`,archiveTask:"Archive task",assignedTo:"Assigned to {{name}}",attach:"Attach",attachCount_one:"Attach ({{count}})",attachCount_other:"Attach ({{count}})",attachedFile:"Attached {{fileName}} to {{taskId}}",attachFileFailed:"Failed to attach {{fileName}}: {{error}}",awaitingApproval:"Awaiting Approval",baseBranch:"Base",blockedByTooltip:"Blocked by {{taskId}} (file overlap)",branch:"Branch",branchMetadata:"Branch metadata",branchProgress:"{{done}}/{{total}} branches",branchProgressTitle:"Parallel branches in progress",cancelMove:"Cancel Move",clearSelection:"Clear selection",cliNeedsAttention:"Needs attention",cliNeedsAttentionTitle:"The CLI agent needs your attention",cliWaitingOnInput:"Waiting on input",cliWaitingOnInputTitle:"The CLI agent is waiting for your input",closeIssue:"Close Issue",collapse:"Collapse",createdByAgent:"Created by agent",createdByAgentNamed:"Created by agent: {{name}}",createdPr:"Created PR #{{number}}",createFailed:"Failed to create task",createPr:"Create PR",createPrAriaLabel:"Create pull request",createPrTitle:"Create a PR for this task",createTaskTitle:"Create task",creating:"Creating...",decisionOnly:"decision-only",decisionOnlyTitle:"Decision-only task",deleteConfirm:"Delete {{taskId}}?",deleted:"Deleted {{taskId}}{{suffix}}",deletedRemovedDeps:"Deleted {{taskId}} after removing dependency references",deletedUnlinked:"Deleted {{taskId}} after unlinking lineage references",deleteFailed:"Failed to delete {{taskId}}: {{error}}",deleteIssue:"Delete Issue",deleteLinkedIssueMessage:"Delete {{issueLabel}} on GitHub, or leave it unchanged?",deleteLinkedIssueTitle:"Delete Linked GitHub Issue",deleteTask:"Delete task",deleteTitle:"Delete Task",dependencyConflict:`{{taskId}} is a dependency of {{dependentList}}.
8
8