@runfusion/fusion 0.49.0 → 0.50.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 (121) hide show
  1. package/dist/bin.js +36386 -9279
  2. package/dist/client/.vite/manifest.json +241 -241
  3. package/dist/client/assets/{AgentDetailView-B8_IDafM.js → AgentDetailView-D2oYUApl.js} +5 -5
  4. package/dist/client/assets/{AgentPermissionPolicyEditor-D4U6puHs.js → AgentPermissionPolicyEditor-DGgx46f3.js} +1 -1
  5. package/dist/client/assets/AgentsView-Dhf5Vq_T.js +29 -0
  6. package/dist/client/assets/ChatView-DpgpxHva.js +19 -0
  7. package/dist/client/assets/CommandCenter-B9q-zM9p.css +1 -0
  8. package/dist/client/assets/CommandCenter-DzQhGq_J.js +71 -0
  9. package/dist/client/assets/{DevServerView-C1qppz4E.js → DevServerView-DjJYp6Jj.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-CW_Q-Bup.js → DirectoryPicker-CYPYp9T4.js} +1 -1
  11. package/dist/client/assets/{DocumentsView-DGxrLknh.js → DocumentsView-CeQVRVdp.js} +1 -1
  12. package/dist/client/assets/{EvalsView-BMU01K7i.js → EvalsView-D250mVR5.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-B5Mwwwbz.js → ExperimentalAgentOnboardingModal-B1EEY_bl.js} +1 -1
  14. package/dist/client/assets/{GoalsView-B9Vwqp8k.js → GoalsView-MftVwE9g.js} +1 -1
  15. package/dist/client/assets/{InsightsView-C9fVBn7l.js → InsightsView-CbWItYe8.js} +1 -1
  16. package/dist/client/assets/{MemoryView-Chm5uzjZ.js → MemoryView-Ct0nOTES.js} +1 -1
  17. package/dist/client/assets/{PiExtensionsManager-BhKzgNHh.js → PiExtensionsManager-DSQwngX-.js} +1 -1
  18. package/dist/client/assets/{PluginManager-pEIpbosd.js → PluginManager-DqLxCiNg.js} +1 -1
  19. package/dist/client/assets/{PullRequestView-DG1gPFRJ.js → PullRequestView-D0WgwdAi.js} +1 -1
  20. package/dist/client/assets/{ResearchView-wy7oLnPg.js → ResearchView-CJQL9XKC.js} +1 -1
  21. package/dist/client/assets/{SecretsView-Bid0TP7K.js → SecretsView-ChN9aTbi.js} +1 -1
  22. package/dist/client/assets/{SessionTerminal-B3XCQFRu.js → SessionTerminal-BVon9kbr.js} +1 -1
  23. package/dist/client/assets/SettingsModal-B4WANQnu.js +21 -0
  24. package/dist/client/assets/{SettingsModal-BMpP5CkL.js → SettingsModal-CIC5jhgo.js} +1 -1
  25. package/dist/client/assets/{SetupWizardModal-C_wMNV3H.js → SetupWizardModal-C6EGjmbd.js} +2 -2
  26. package/dist/client/assets/{ShadcnColorPicker-CXxr3ynz.js → ShadcnColorPicker-4e_aXoGX.js} +1 -1
  27. package/dist/client/assets/{SkillsView-DcNtAxQI.js → SkillsView-Dz8dDwfP.js} +1 -1
  28. package/dist/client/assets/{SkillsView-Cfs7HkwW.css → SkillsView-tAW7TTCz.css} +1 -1
  29. package/dist/client/assets/{TodoView-Bt5ZY51H.js → TodoView-DvJFzoOv.js} +1 -1
  30. package/dist/client/assets/WorkflowNodeEditor-DrdTCstS.js +8 -0
  31. package/dist/client/assets/{agentSkills-DlTZq-3b.js → agentSkills-B2dD5Nm5.js} +1 -1
  32. package/dist/client/assets/{app-DH6H4_Pi.js → app-BYq4S7Cb.js} +3 -3
  33. package/dist/client/assets/{app-B7XunYYI.js → app-D27ewSC0.js} +3 -3
  34. package/dist/client/assets/{app-BgStK3QE.js → app-DFLDkeOE.js} +3 -3
  35. package/dist/client/assets/{app-BV3tiBJo.js → app-OPrfgjjn.js} +3 -3
  36. package/dist/client/assets/{app-Cl4147h6.js → app-dATBczl3.js} +3 -3
  37. package/dist/client/assets/{app-ChEDGcMv.js → app-k1K9zAjp.js} +3 -3
  38. package/dist/client/assets/{architectureDiagram-3BPJPVTR-DPevXfXn.js → architectureDiagram-3BPJPVTR-ClO0MnzR.js} +1 -1
  39. package/dist/client/assets/{blockDiagram-GPEHLZMM-iREXBnwN.js → blockDiagram-GPEHLZMM-C4cyy4WE.js} +1 -1
  40. package/dist/client/assets/{c4Diagram-AAUBKEIU-Ds4gntrv.js → c4Diagram-AAUBKEIU-NHPC9TJo.js} +1 -1
  41. package/dist/client/assets/channel-Q2WKocEP.js +1 -0
  42. package/dist/client/assets/{chunk-2J33WTMH-DI8WjOJS.js → chunk-2J33WTMH-CGYIKTVR.js} +1 -1
  43. package/dist/client/assets/{chunk-4BX2VUAB-BSvj2r_a.js → chunk-4BX2VUAB-BkCCD0tE.js} +1 -1
  44. package/dist/client/assets/{chunk-55IACEB6-DXqk_68P.js → chunk-55IACEB6-Be3yOIDe.js} +1 -1
  45. package/dist/client/assets/{chunk-727SXJPM-CbVz6DAi.js → chunk-727SXJPM-DxjyMaQQ.js} +1 -1
  46. package/dist/client/assets/{chunk-AQP2D5EJ-O8p3lAmi.js → chunk-AQP2D5EJ-BC0PjN0W.js} +1 -1
  47. package/dist/client/assets/{chunk-FMBD7UC4-8KJJYFeG.js → chunk-FMBD7UC4-DoWxmM8k.js} +1 -1
  48. package/dist/client/assets/{chunk-ND2GUHAM-D_zeaF-K.js → chunk-ND2GUHAM-EOpuc9pP.js} +1 -1
  49. package/dist/client/assets/{chunk-QZHKN3VN-IzXnlcXm.js → chunk-QZHKN3VN-DiRyx9QZ.js} +1 -1
  50. package/dist/client/assets/classDiagram-4FO5ZUOK-CPFl2Aqd.js +1 -0
  51. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CPFl2Aqd.js +1 -0
  52. package/dist/client/assets/{cose-bilkent-S5V4N54A-DyB8nAG8.js → cose-bilkent-S5V4N54A-CfVoUUxT.js} +1 -1
  53. package/dist/client/assets/{dagre-BM42HDAG-BkFeh-yy.js → dagre-BM42HDAG-BfILvxLb.js} +1 -1
  54. package/dist/client/assets/{dashboard-view-zm0LyiGH.js → dashboard-view-C9YIcx-O.js} +2 -2
  55. package/dist/client/assets/{dashboard-view-Ddw7AZEw.js → dashboard-view-wFC1pe4d.js} +1 -1
  56. package/dist/client/assets/{diagram-2AECGRRQ-D6ccxFD_.js → diagram-2AECGRRQ-6mdmbH-5.js} +1 -1
  57. package/dist/client/assets/{diagram-5GNKFQAL-pYELzWoc.js → diagram-5GNKFQAL-CY7MMwO1.js} +1 -1
  58. package/dist/client/assets/{diagram-KO2AKTUF-DiX408pG.js → diagram-KO2AKTUF-D05XnQqd.js} +1 -1
  59. package/dist/client/assets/{diagram-LMA3HP47-CEZO6Pzz.js → diagram-LMA3HP47-B18FTOJG.js} +1 -1
  60. package/dist/client/assets/{diagram-OG6HWLK6-C4wPGJ9_.js → diagram-OG6HWLK6-xmXlYf5m.js} +1 -1
  61. package/dist/client/assets/{erDiagram-TEJ5UH35-UVoBlCdP.js → erDiagram-TEJ5UH35-4XlgVLCs.js} +1 -1
  62. package/dist/client/assets/{flowDiagram-I6XJVG4X-BHBVkZYH.js → flowDiagram-I6XJVG4X-BYl3ps7f.js} +1 -1
  63. package/dist/client/assets/{folder-open-BS746XqG.js → folder-open-BH6FwmO7.js} +1 -1
  64. package/dist/client/assets/{ganttDiagram-6RSMTGT7-JhbzzuUH.js → ganttDiagram-6RSMTGT7-4vxuH9Dx.js} +1 -1
  65. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-Bf9CFASb.js → gitGraphDiagram-PVQCEYII-BESmFgXT.js} +1 -1
  66. package/dist/client/assets/index-B9jtBwFy.css +1 -0
  67. package/dist/client/assets/index-DFeBJ3GM.js +1302 -0
  68. package/dist/client/assets/{infoDiagram-5YYISTIA-ODZX4ugg.js → infoDiagram-5YYISTIA-DvjdjtwB.js} +1 -1
  69. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BZ4EmuqN.js → ishikawaDiagram-YF4QCWOH-Cis5IoEm.js} +1 -1
  70. package/dist/client/assets/{journeyDiagram-JHISSGLW-DjPguSQp.js → journeyDiagram-JHISSGLW-C20pB1W8.js} +1 -1
  71. package/dist/client/assets/{kanban-definition-UN3LZRKU-CDlWdfMu.js → kanban-definition-UN3LZRKU-CiVfCeU3.js} +1 -1
  72. package/dist/client/assets/{mermaid.core-rI3nyVx8.js → mermaid.core-CW0vCXA6.js} +4 -4
  73. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BduuAfgW.js → mindmap-definition-RKZ34NQL-E5rPHUdw.js} +1 -1
  74. package/dist/client/assets/{pieDiagram-4H26LBE5-Df_vjilh.js → pieDiagram-4H26LBE5-DVIFbPjH.js} +1 -1
  75. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DXVZfmAq.js → quadrantDiagram-W4KKPZXB-C8qPRe_x.js} +1 -1
  76. package/dist/client/assets/{requirementDiagram-4Y6WPE33-UJTrQjTm.js → requirementDiagram-4Y6WPE33-DQ-pwXh3.js} +1 -1
  77. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DDERoUXV.js → sankeyDiagram-5OEKKPKP-BnghLuUc.js} +1 -1
  78. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DaULWS9L.js → sequenceDiagram-3UESZ5HK-ChlGxGVk.js} +1 -1
  79. package/dist/client/assets/{shield-alert-BKmP809x.js → shield-alert-BfOnDO6O.js} +1 -1
  80. package/dist/client/assets/{stateDiagram-AJRCARHV-tbFQ1nvS.js → stateDiagram-AJRCARHV-ByUvNEch.js} +1 -1
  81. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-DQ0cOptx.js → stateDiagram-v2-BHNVJYJU-Df38ITSP.js} +1 -1
  82. package/dist/client/assets/{timeline-definition-PNZ67QCA-BE_RPHyh.js → timeline-definition-PNZ67QCA-bsAGc83D.js} +1 -1
  83. package/dist/client/assets/{upload-CKPEXc39.js → upload-BK1crTqn.js} +1 -1
  84. package/dist/client/assets/{users-BFmWR-bN.js → users-DW8jC2Z9.js} +1 -1
  85. package/dist/client/assets/{vennDiagram-CIIHVFJN-TwZvt3sz.js → vennDiagram-CIIHVFJN-BBIj6LFN.js} +1 -1
  86. package/dist/client/assets/{wardley-L42UT6IY-C6ZavOUS.js → wardley-L42UT6IY-De6JFroy.js} +1 -1
  87. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-B2i11Jb0.js → wardleyDiagram-YWT4CUSO-P1LOLx0_.js} +1 -1
  88. package/dist/client/assets/{xychartDiagram-2RQKCTM6-DbfolZx7.js → xychartDiagram-2RQKCTM6-v1G4ki6U.js} +1 -1
  89. package/dist/client/index.html +2 -2
  90. package/dist/client/version.json +1 -1
  91. package/dist/droid-cli/package.json +1 -1
  92. package/dist/extension.js +32507 -5725
  93. package/dist/pi-claude-cli/index.ts +12 -16
  94. package/dist/pi-claude-cli/package.json +1 -1
  95. package/dist/plugin-sdk/index.d.ts +26 -1
  96. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  97. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  98. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +250 -19
  99. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  100. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  101. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  102. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  103. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  104. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  105. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  106. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  107. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  108. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  109. package/package.json +1 -1
  110. package/skill/fusion/references/engine-tools.md +1 -1
  111. package/dist/client/assets/AgentsView-CafZRACA.js +0 -29
  112. package/dist/client/assets/ChatView-CZv_hIdK.js +0 -19
  113. package/dist/client/assets/CommandCenter-B1P49x__.css +0 -1
  114. package/dist/client/assets/CommandCenter-D9qV7yF_.js +0 -71
  115. package/dist/client/assets/SettingsModal-Dptq-qYL.js +0 -21
  116. package/dist/client/assets/WorkflowNodeEditor-AwHxfoz1.js +0 -8
  117. package/dist/client/assets/channel-FTiNgAnt.js +0 -1
  118. package/dist/client/assets/classDiagram-4FO5ZUOK-sIVsNnoj.js +0 -1
  119. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-sIVsNnoj.js +0 -1
  120. package/dist/client/assets/index-BNXyfteR.css +0 -1
  121. package/dist/client/assets/index-DZGZRdnt.js +0 -1302
@@ -1,8 +1,8 @@
1
- const e={add:"Add",apply:"Apply",back:"Back",cancel:"Cancel",close:"Close",closeInsightsView:"Close insights view",closeModal:"Close modal",confirm:"Confirm",continue:"Continue",create:"Create",delete:"Delete",discard:"Discard",dismiss:"Dismiss",dismissOAuth:"Dismiss OAuth re-login banner",done:"Done",edit:"Edit",no:"No",openSettings:"Open Settings",pull:"Pull",refresh:"Refresh",refreshInsights:"Refresh insights",retry:"Retry",run:"Run",save:"Save",search:"Search",send:"Send",showLess:"Show less",showMore:"Show more",update:"Update",yes:"Yes"},t={body:"The engine for this project is not running, so task automation and live updates may be paused. Start it now to reconnect the dashboard.",dashboardOnly:"This dashboard cannot start engines from the current process. Run `fn serve` for this project to enable task execution and live automation.",dashboardOnlyPrefix:"This dashboard cannot start engines from the current process. Run",dashboardOnlySuffix:"for this project to enable task execution and live automation.",error:"Start failed: {{message}}",startCta:"Start engine",starting:"Starting…",title:"Project engine is not connected"},o={emptyHint:"Activity will appear here when tasks are created, moved, or completed",eventCount_one:"{{count}} event",eventCount_other:"{{count}} events",noRecentActivity:"No recent activity"},a={activeFilters:"Active filters:",allEvents:"All Events",allProjects:"All Projects",clearFilters:"Clear all",clearFiltersBtnLabel:"Clear Filters",clearLog:"Clear Log",confirmClear:"Clear Activity Log?",confirmClearButton:"Clear Log",confirmClearMessage:"This will permanently delete all activity log entries. This action cannot be undone.",eventType:{autoArchivedDeterministicDuplicate:"Task Auto-Archived (Deterministic Duplicate)",autoArchivedDuplicate:"Task Auto-Archived (Duplicate)",autoArchivedGhostBug:"Task Auto-Archived (Ghost Bug)",autoArchivedNearDuplicate:"Task Auto-Archived (Near-Duplicate)",duplicateWarningOverridden:"Duplicate Warning Overridden",mergeWorktreeReacquired:"Merge Worktree Reacquired",nearDuplicateFlagged:"Near-Duplicate Flagged",projectIsolationTransition:"Project Isolation Transition",releaseAuthorizationRequired:"Release Authorization Required",settingsUpdated:"Settings Updated",taskCreated:"Task Created",taskDeleted:"Task Deleted",taskFailed:"Task Failed",taskMerged:"Task Merged",taskMoved:"Task Moved",taskUpdated:"Task Updated"},loadMore:"Load More",merged:"Merged",noActivityRecorded:"No activity recorded yet",noMatchingActivity:"No activity matches the current filters",notMerged:"Not merged",projectFilterBadge:"Project: {{project}}",refresh:"Refresh",time:{daysAgo_one:"{{count}}d ago",daysAgo_other:"{{count}}d ago",hoursAgo_one:"{{count}}h ago",hoursAgo_other:"{{count}}h ago",justNow:"Just now",minutesAgo_one:"{{count}}m ago",minutesAgo_other:"{{count}}m ago"},title:"Activity Log",typeFilterBadge:"Type: {{type}}"},i={copied:"Copied",copiedLabel:"Copied error to clipboard",copy:"Copy",copyLabel:"Copy error to clipboard",dialogLabel:"Agent error details",openDetails:"Open error details",reportOnGithub:"Report on GitHub",title:"Agent Error Details"},n={agentNameTriage:"Plan",collapseModelDetails:"Collapse model details",empty:"No agent output yet.",executor:"Executor",exitFullscreen:"Exit full screen",expandFullscreen:"Expand agent log to full screen",expandModelDetails:"Expand model details",hideOutput:"Hide output",hideToolCallsResults:"Hide tool calls and results",hideToolOutput:"Hide tool output",live:"Live",loading:"Loading agent logs…",loadingMore:"Loading…",loadMore:"Load More",markdown:"Markdown",plain:"Plain",planning:"Planning",reviewer:"Reviewer",showFormattedMarkdown:"Show formatted markdown",showing:"Showing {{visible}} of {{total}} entries",showOutput:"Show output",showRawText:"Show raw text",showToolCallsResults:"Show tool calls and results",showToolOutput:"Show tool output",switchMarkdown:"Switch to markdown mode",switchPlainText:"Switch to plain text mode",timeDaysAgo_one:"{{count}}d ago",timeDaysAgo_other:"{{count}}d ago",timeHoursAgo_one:"{{count}}h ago",timeHoursAgo_other:"{{count}}h ago",timeJustNow:"just now",timeMinutesAgo_one:"{{count}}m ago",timeMinutesAgo_other:"{{count}}m ago",toolEntriesHidden_one:"{{count}} tool entries hidden",toolEntriesHidden_other:"{{count}} tool entries hidden",toolsOff:"Tools: Off",toolsOn:"Tools: On",usingDefault:"Using default"},s={membersOf:"Members of #{{roomName}}",noAgentsFound:"No agents found",otherAgents:"Other agents",roomMemberBadge:"Room member",roomMembers:"Room members",suggestionsLabel:"Agent mention suggestions",typeToSearch:"Type to search other agents"},r={allow:"Allow",approvalRequired:"Approval Required",ariaLabel:"Permission policy categories",block:"Block",category:{commandExecution:{description:"Runs shell commands and scripts.",label:"Command execution"},fileWriteDelete:{description:"Create, edit, or remove files in the workspace.",label:"File writes/deletes"},gitWrite:{description:"Commits, branch updates, and merge-affecting git changes.",label:"Git writes"},networkApi:{description:"Outbound network or API access.",label:"Network/API"},taskAgentMutation:{description:"Task state changes, delegation, or agent lifecycle actions.",label:"Task/agent mutation"}},categoryExamples:"{{label}} examples",custom:"Custom",exemptTools:"Tools exempt from approval policy",exemptToolsDescription:"These coordination tools bypass approval policy so heartbeats and inter-agent messaging cannot deadlock. They are not user-configurable.",fromProjectDefault:"from project default",inherit:"Inherit",inheritDefault:"Inherit project default",lockedDown:"Locked Down",preset:"Preset",requireApproval:"Require approval",unrestricted:"Unrestricted"},l={actions:{addCustomTemplate:"Add Custom Template",cancel:"Cancel",collapse:"Collapse",create:"Create",delete:"Delete",reset:"Reset",save:"Save"},ariaLabels:{collapse:"Collapse",deleteTemplate:"Delete {{name}}",editTemplate:"Edit {{name}}",expand:"Expand",expandPrompt:"Expand prompt to fullscreen",expandToFullscreen:"Expand to fullscreen",promptOverride:"{{name}} prompt override ({{key}})",promptOverrideFullscreen:"{{name}} prompt override ({{key}}) - fullscreen",templatePromptFullscreen:"Template prompt - fullscreen",viewFullPromptFor:"View full prompt for {{name}}"},badges:{builtin:"Built-in",custom:"Custom",customized:"customized",overridesBuiltin:"Overrides built-in"},confirmations:{deleteTemplate:'Delete "{{name}}"?'},descriptions:{assignmentNote:"Role assignments are stored in the agentPrompts configuration. Custom templates override built-ins by ID.",assignments:"Assign specific templates to agent roles. When a role has an assignment, that template will be used instead of the default built-in.",builtinTemplates:"These templates are provided by Fusion and cannot be modified.",customTemplates:"Create custom templates to override built-in prompts for specific roles.",overrides:"Customize specific segments of AI agent prompts. Edits override built-in defaults. Use the Reset button to restore the original default for any prompt."},editor:{editTemplate:"Edit Custom Template",newTemplate:"New Custom Template"},emptyStates:{noCustomTemplates:"No custom templates yet. Create one to get started."},errors:{idConflict:'Template ID "{{templateId}}" conflicts with a built-in template. Please use a different name.',nameRequired:"Template name is required"},hints:{customOverrideActive:"Custom override active. Click Reset to restore default.",noOverrideSet:"No override set. Using built-in default ({{chars}} chars)."},labels:{builtIn:"built-in",custom:"Custom",description:"Description",name:"Name",note:"Note",overridesDefault:"overrides default",prompt:"Prompt",role:"Role"},options:{useDefault:"Use default"},placeholders:{description:"Brief description of this template",prompt:"Enter the system prompt for this template...",promptDefault:"Default: {{preview}}",templateName:"e.g. My Custom Executor"},sections:{builtinTemplates:"Built-in Templates",customTemplates:"Custom Templates"},tabs:{assignments:"Assignments",overrides:"Overrides",templates:"Templates"},titles:{delete:"Delete",edit:"Edit",editPrompt:"Edit Prompt",viewFullPrompt:"View full prompt"}},d={always:"Always require approval",alwaysApproveDelete:"Always require approval for fn_agent_delete",alwaysDesc:"All fn_agent_create/fn_agent_delete requests require approval unless caller is trusted.",approvalMode:"Approval mode",helpText:"These settings govern durable provisioning tools only: <code>fn_agent_create</code> and <code>fn_agent_delete</code>. Ephemeral <code2>fn_spawn_agent</code2> requests stay under the task/agent mutation approval gate (FN-3973).",never:"Never require approval",neverDesc:"Allow provisioning without approval for non-privileged callers.",trustedAgentIds:"Trusted agent IDs",trustedAgentIdsPlaceholder:"agent-abc123",trustedOnly:"Trusted-only",trustedOnlyDesc:"Trusted roles/agent IDs bypass approval; other callers require approval.",trustedRoles:"Trusted roles",trustedRolesPlaceholder:"reviewer, ceo"},c=JSON.parse(`{"activate":"Activate","activeAgents_one":"Active Agents ({{count}})","activeAgents_other":"Active Agents ({{count}})","activePrefix":"Active: ","advancedSettingsDesc":"Low-level configuration options for this agent.","advancedSettingsTitle":"Advanced Settings","agent":"Agent","agentControls":"Agent controls","agentLogs":"Agent Logs","agentMail":"Agent Mail","agentModelLabel":"Agent Model","agentPlural":"agents","agentsFound_one":"{{count}} agent{{plural}} found","agentsFound_other":"{{count}} agent{{plural}} found","agentSingular":"agent","agentsLabel":"Agents","agentSoulLabel":"Agent Soul","aiInterview":"AI Interview","allChangesSaved":"All changes saved","allowParallelExecution":"Allow Parallel Execution","allowParallelExecutionHint":"Allow this agent to run multiple heartbeats concurrently.","allTime":"All time","alreadyOnDefault":"Already on default","applyPreset":"Apply preset","assignedSkills":"Assigned Skills","auto":"Auto","autoClaimHint":"Agent will automatically claim tasks that match its skills.","autoClaimRelevantTasks":"Auto-claim relevant tasks","avatarLabel":"Avatar","avatarRemoved":"Avatar removed","avatarUploaded":"Avatar uploaded","back":"Back","backToAgents":"Back to Agents","backToInbox":"Back to Inbox","backToOrgChart":"Back to org chart","backToOutbox":"Back to Outbox","boardView":"Board view","browseCatalog":"Browse Catalog","budgetExhaustedBody":"This agent has exhausted its token budget and will not run until the budget resets.","budgetExhaustedTitle":"Budget Exhausted","budgetPeriodHint":"How often the token budget resets.","budgetPeriodLabel":"Budget Period","budgetResetFailed":"Failed to reset budget","budgetResetSuccess":"Budget reset successfully","budgetSettingsDesc":"Control token usage limits and reset schedule for this agent.","budgetSettingsTitle":"Budget Settings","budgetUsageDisplay":"{{used}} / {{limit}} tokens used","builtInModel":"Built-in model","bulkActionFailed":"Bulk action failed","bulkActions":"Bulk Actions","bulkActionsLoadFailed":"Failed to load bulk agent actions: {{error}}","bulkAgentActions":"Bulk agent actions","bulkConfirmMessage_one":"{{action}} {{count}} agent(s) in this project?","bulkConfirmMessage_other":"{{action}} {{count}} agent(s) in this project?","bulkNoEligible":"No eligible agents","bulkResult_one":"{{action}} {{successCount}} {{agentWord}}; skipped {{skippedCount}}","bulkResult_other":"{{action}} {{successCount}} {{agentWord}}; skipped {{skippedCount}}","bulkResultWithFailures":"{{action}} {{count}} agent(s), {{failed}} failed","bundleDescription":"Configure how this agent's code bundle is managed.","bundleEntryFileHint":"The entry file for the managed bundle.","bundleEntryFileLabel":"Entry File","bundleExternal":"External","bundleExternalHint":"Point to an externally managed bundle path.","bundleExternalPathHint":"Absolute path to the external bundle file.","bundleExternalPathLabel":"External Bundle Path","bundleExternalPathPlaceholder":"/path/to/bundle.js","bundleFilesHint":"Source files included in this agent's bundle.","bundleFilesLabel":"Bundle Files","bundleManaged":"Managed","bundleManagedHint":"Fusion manages the bundle automatically.","bundleModeLabel":"Bundle Mode","bundleNone":"None","bundleSelectMode":"Select a bundle mode","bundleTitle":"Bundle","cacheHitRatio":"Cache Hit Ratio","cacheReadTokens":"Cache Read","cacheWindowSummary":"{{percent}}% ({{cached}} / {{written}} / {{input}} / {{tasks}})","cacheWriteTokens":"Cache Write","cancel":"Cancel","cancelCustomInterval":"Cancel custom interval","center":"Center","chainOfCommand":"Chain of Command","change":"Change","changeRole":"Click to change role","charactersCount_one":"{{count}} characters","charactersCount_other":"{{count}} characters","chooseFile":"Choose File","clearAgents":"Clear agents","clearSkills":"Clear skills","clickToChangeRole":"Click to change role","close":"Close","closeAriaLabel":"Close","combinedTokens":"Combined Tokens","company":"Company","configDescription":"Configure this agent's identity, model, and behavior settings.","configTitle":"Configuration","connecting":"Connecting...","connectingStream":"Connecting to log stream...","connectionLost":"Connection lost. Retrying...","context":"Context","controls":"Controls","coordinationOnlyAgent":"Coordination-only agent","coordinationOnlyHint":"This agent coordinates work but does not execute tasks directly.","copyId":"Copy ID","create":"Create","createAgent":"Create agent","created":"Agent \\"{{name}}\\" created","createError":"Failed to create agent: {{error}}","createSuccess":"Agent \\"{{name}}\\" created","creating":"Creating...","creatingAgent":"Creating agent...","currentAgent":"Current agent","currentInput":"Current input: {{method}}","currentPath":"Current path","currentUsage":"Current Usage","currentWork":"Current Work","customHeartbeatAria":"Custom heartbeat interval in minutes for {{name}}","customHeartbeatOption":"Custom...","customizeForAgent":"Customize for this agent","daily":"Daily","dangerZone":"Danger Zone","dangerZoneDesc":"Irreversible actions — proceed with caution.","delete":"Delete","deleteAgent":"Delete Agent","deleteConfirm":"Are you sure you want to delete this agent? This cannot be undone.","deleted":"Agent deleted","deleteError":"Failed to delete agent: {{error}}","deleteFailed":"Failed to delete agent","deleteMessage":"Delete agent \\"{{name}}\\"? This cannot be undone.","deleteSuccess":"Agent \\"{{name}}\\" deleted","deleteTitle":"Delete Agent","deletionNotAvailable":"Deletion is not available while the agent is running.","deletionPermanent":"This will permanently delete the agent and all associated data.","detailLoadingLabel":"Agent detail loading","details":"Details","dialogAriaLabel":"Create new agent","dialogTitle":"New Agent","employeesTitle":"Employees","emptySubtitle":"Create an agent to get started","emptyTitle":"No agents found","engineerBacklogAutoClaim":"Engineer Backlog Auto-Claim","engineerBacklogAutoClaimHint":"Per-agent override of the project default. Allows this engineer-role agent to auto-claim unowned backlog tasks; explicit assignment and delegation are unchanged.","errors":"Errors","executionPrompt":"Execution Prompt","executionPromptNotCaptured":"Execution prompt not captured","failedToImport":"Failed to import agents","failedToLoadCompanies":"Failed to load companies","failedToParseDirectory":"Failed to parse AGENTS.md files from selected directory","failedToParseManifest":"Failed to parse manifest","failedToReadFile":"Failed to read file","fieldHeartbeatPath":"Heartbeat Procedure Path","fieldIcon":"Icon","fieldInstructionsPath":"Instructions Path","fieldInstructionsText":"Inline Instructions","fieldMaxTurns":"Max Turns","fieldMemory":"Agent Memory","fieldName":"Name","fieldReportsTo":"Reports To","fieldRole":"Role","fieldSkills":"Skills","fieldSoul":"Soul","fieldThinking":"Thinking","fieldThinkingLevel":"Thinking Level","fieldTitle":"Title","fileContentHint":"Edit the file contents directly.","fileContentLabel":"File Content","fileContentPlaceholder":"File content will appear here...","fileHint":".md and .txt files supported","fileLoadError":"Failed to load file","fileSaved":"File saved","filterAll":"All States","filterByState":"Filter agents by state","fit":"Fit","fixValidationErrors":"Fix validation errors before saving","fixValidationToSave":"Fix validation errors to save","from":"From","generateHint":"Describe your agent's role and let AI generate a specification","generateWithAI":"Generate with AI","generateWithAiLabel":"Generate agent with AI","generation":{"collapse":"Collapse","expand":"Expand","generate":"Generate","info":"Describe your agent's role and the AI will generate a complete specification including system prompt, suggested configuration, and more.","loading":"Generating agent specification…","previewDescription":"Description","previewMaxTurns":"Max Turns","previewRole":"Role","previewThinking":"Thinking","previewTitle":"Title","rateLimited":"Too many requests. Please wait a moment and try again.","regenerate":"Regenerate","roleHint":"Describe what your agent should do","roleLabel":"Role Description","rolePlaceholder":"e.g. \\"Senior frontend code reviewer who specializes in React accessibility\\"","systemPrompt":"System Prompt","title":"Generate Agent","useThis":"Use This"},"healthError":"Error","heartbeat":"Heartbeat:","heartbeatAndHealth":"Heartbeat & Health","heartbeatClampedToMin_one":"Heartbeat interval set to 5 minutes (minimum). {{count}} minute was below the 5-minute minimum.","heartbeatClampedToMin_other":"Heartbeat interval set to 5 minutes (minimum). {{count}} minutes was below the 5-minute minimum.","heartbeatCustom":"Custom heartbeat run","heartbeatEnabled":"Heartbeat Enabled","heartbeatEnabledHint":"Allow this agent to run on a scheduled heartbeat.","heartbeatEnterMinutes":"Please enter a heartbeat interval in minutes","heartbeatFileEditMode":"Edit mode","heartbeatFileEditorHint":"Edit the heartbeat procedure file directly.","heartbeatFileEmptyPreview":"Empty file — switch to edit mode to add content.","heartbeatFileLoadFailed":"Failed to load heartbeat file","heartbeatFilePlaceholder":"Heartbeat procedure content...","heartbeatFilePreviewMode":"Preview mode","heartbeatFileSaved":"Heartbeat file saved","heartbeatFileSaveFailed":"Failed to save heartbeat file","heartbeatIntervalHint":"How frequently the heartbeat runs, in seconds.","heartbeatIntervalLabel":"Heartbeat Interval (s)","heartbeatIntervalUpdated":"Heartbeat interval updated to {{interval}} for {{name}}","heartbeatIntervalUpdateFailed":"Failed to update heartbeat interval: {{error}}","heartbeatMustBeNumber":"Heartbeat interval must be a valid number","heartbeatMustBePositive":"Heartbeat interval must be greater than 0","heartbeatOverdue":"Heartbeat overdue {{elapsed}}","heartbeatPathHint":"Path to the agent's heartbeat procedure path, typically .fusion/agents/ceo-agent2736/HEARTBEAT.md. Legacy id-only default paths still work.","heartbeatPathPlaceholder":"e.g. .fusion/agents/ceo-agent2736/HEARTBEAT.md","heartbeatProcedureDesc":"The heartbeat procedure guides what this agent does on each scheduled run.","heartbeatProcedureDescSuffix":"You can customize it here or leave it on the built-in default.","heartbeatProcedureFileLabel":"Heartbeat Procedure File","heartbeatProcedureFileReady":"Heartbeat procedure file ready","heartbeatProcedurePathSet":"Heartbeat procedure path set","heartbeatProcedureTitle":"Heartbeat Procedure","heartbeatPromptTemplate":"Heartbeat Prompt Template","heartbeatRunFailed":"Failed to start heartbeat run: {{error}}","heartbeatRunStarted":"Heartbeat run started for {{name}}","heartbeatRunsWillAppear":"Heartbeat runs will appear here.","heartbeatScopeDiscipline":"Heartbeat Scope Discipline","heartbeatSettingsDesc":"Control the scheduling and behavior of this agent's heartbeat.","heartbeatSettingsTitle":"Heartbeat Settings","heartbeatSpeed":"Heartbeat Speed","heartbeatSpeedHint":"Scales all agent heartbeat intervals. ×0.5 = twice as fast, ×2.0 = twice as slow. Default: ×1.0","heartbeatSpeedPreset":"Heartbeat speed preset","heartbeatSpeedSaveFailed":"Failed to save heartbeat multiplier: {{error}}","heartbeatSpeedSet":"Heartbeat speed set to ×{{value}}","heartbeatStarted":"Heartbeat started","heartbeatStartFailed":"Failed to start heartbeat","heartbeatTimeoutHint":"Maximum time in seconds a heartbeat run may take before being killed.","heartbeatTimeoutLabel":"Heartbeat Timeout (s)","heartbeatUpgradeFailed":"Failed to upgrade heartbeat procedure","iconLabel":"Icon","iconPlaceholder":"e.g. 🤖","idCopied":"ID copied to clipboard","idleNoTask":"Idle — no task assigned","immediate":"Immediate","import":"Import","importAgents":"Import Agents","importButton":"Import {{label}}","importComplete":"Import Complete","importDescription":"Import agents from an Agent Companies package. Browse the companies.sh catalog to discover published agents, upload an AGENTS.md file, select a directory, or paste manifest content.","importingAgents_one":"Importing {{count}} agent{{plural}}...","importingAgents_other":"Importing {{count}} agent{{plural}}...","importingAgentsAndSkills":"Importing {{agentCount}} agent{{agentPlural}} and {{skillCount}} skill{{skillPlural}}...","importingSkills_one":"Importing {{count}} skill{{plural}}...","importingSkills_other":"Importing {{count}} skill{{plural}}...","importReportsTo":" · reports to {{agent}}","importSkills":" · skills: {{skills}}","inbox":"Inbox","inheritingProjectDefault":"Inheriting project default","inheritProjectDefault":"Inherit project default","inlineInstructions":"Inline Instructions","inlineMemoryFieldHint":"This memory is embedded directly in the agent's context.","inlineMemoryHint":"Short-form memory injected on every heartbeat.","inlineMemoryLabel":"Inline Memory","inProgress":"In progress","input":"Input","inputTokens":"Input","installs":"installs","instructionsDescription":"Persistent instructions that guide this agent's behavior.","instructionsEmptyPreview":"No instructions yet — switch to edit mode to add some.","instructionsFileEditorDesc":"Edit the linked instructions file directly.","instructionsFileEditorTitle":"Instructions File","instructionsFileSaved":"Instructions file saved","instructionsFileSaveFailed":"Failed to save instructions file","instructionsHint":"These instructions are prepended to every prompt this agent receives.","instructionsPathHint":"Path to a markdown file containing this agent's instructions.","instructionsPathLabel":"Instructions File Path","instructionsPathPlaceholder":"/path/to/instructions.md","instructionsPlaceholder":"Enter instructions for this agent...","instructionsSaved":"Instructions saved","instructionsSaveFailed":"Failed to save instructions","instructionsTextPlaceholder":"Add custom behavior instructions...","instructionsTitle":"Instructions","intentPrompt":"What do you want this agent to do?","interval":"Interval","interviewDraftApplied":"Interview draft applied","kTokens_one":"{{count}}k tokens","kTokens_other":"{{count}}k tokens","last24h":"Last 24h","last7d":"Last 7 days","lastHeartbeat":"Last heartbeat","lastHeartbeatAt":"Last: {{time}}","latestRunLabel":"Latest run","layoutAuto":"Auto","layoutAutoAria":"Automatic layout","layoutHorizontal":"Horizontal","layoutHorizontalAria":"Horizontal layout","layoutVertical":"Vertical","layoutVerticalAria":"Vertical layout","listView":"List view","lite":"Lite","live":"Live","liveLogs":"Live logs","liveRun":"Live run","loadError":"Failed to load agents: {{error}}","loading":"Loading agent...","loadingAgents":"Loading agents...","loadingCompanies":"Loading companies…","loadingDetails":"Loading run details...","loadingEligibility":"Loading eligibility…","loadingEligible":"Loading eligible agents...","loadingEmployees":"Loading employees...","loadingFile":"Loading file...","loadingFileContent":"Loading file content...","loadingLogs":"Loading logs...","loadingMailbox":"Loading mailbox...","loadingMemoryFiles":"Loading memory files...","loadingModels":"Loading models…","loadingOrgChart":"Loading org chart...","loadingReportingChain":"Loading reporting chain...","loadingRuns":"Loading runs...","loadingRuntimes":"Loading runtimes...","loadingSkillContent":"Loading skill content...","loadingTasks":"Loading tasks...","loadTasksFailed":"Failed to load tasks","logEntries_one":"{{count}} entries","logEntries_other":"{{count}} entries","logsWillAppear":"Logs will appear here once the agent starts running.","logsWillAppearActive":"Logs will appear here.","mailboxLoadFailed":"Failed to load mailbox","mailFrom":"From","mailSent":"Sent","mailTo":"To","mailToLabel":"To","mailType":"Type","manifestContent":"Manifest content","manifestPlaceholder":"---\\nname: CEO\\ntitle: Chief Executive Officer\\nreportsTo: null\\nskills:\\n - review\\n---\\nAgent instructions go here...","maxConcurrentRunsHint":"Maximum number of heartbeats that can run simultaneously.","maxConcurrentRunsLabel":"Max Concurrent Runs","maxTurns":"Max turns","memoryDescription":"Manage this agent's long-term and working memory.","memoryEmptyPreview":"No inline memory yet — switch to edit mode to add some.","memoryFileEditMode":"Edit mode","memoryFileEmptyPreview":"Empty file — switch to edit mode to add content.","memoryFileLoadFailed":"Failed to load memory file","memoryFileMeta":"{{size}} bytes · updated {{date}}","memoryFilePlaceholder":"Memory file content...","memoryFilePreviewMode":"Preview mode","memoryFileSaved":"Memory file saved","memoryFileSaveFailed":"Failed to save memory file","memoryFilesHint":"Files stored in the agent's memory layers.","memoryFilesHintSuffix":"Select a file to view or edit its contents.","memoryFilesLabel":"Memory Files","memoryFilesLoadFailed":"Failed to load memory files","memoryLayerDaily":"Daily","memoryLayerDailyDesc":"Short-term notes refreshed each day.","memoryLayerDreams":"Dreams","memoryLayerDreamsDesc":"Synthesized reflections from recent activity.","memoryLayerLongTerm":"Long-term","memoryLayerLongTermDesc":"Persistent facts and knowledge retained across sessions.","memoryPlaceholder":"Enter inline memory for this agent...","memoryReadOnly":"Read-only","memorySaved":"Memory saved","memorySaveFailed":"Failed to save memory","memoryTitle":"Memory","memoryTooLong":"Memory content is too long","messageResponseModeHint":"When this agent responds to incoming messages.","messageResponseModeLabel":"Message Response Mode","minutesUnit":"min","modalTitle":"Agents","model":"Model","modelDefault":"default","modelDescription":"Choose the AI model this agent uses for inference.","modelPlaceholder":"Select a model…","modelTitle":"Model","monthly":"Monthly","name":"Name","nameLabel":"Name","namePlaceholder":"Agent name...","never":"Never","newAgent":"New Agent","next":"Next","nextExpected":"Next expected","nextHeartbeat":"Next heartbeat in {{elapsed}}","nextHeartbeatAt":"Next: {{time}}","noActiveAssignment":"No active assignment","noActiveEligible":"No active agents eligible to pause","noActivityYet":"No activity yet","noAgentsFound":"No agents found in the manifest.","noAgentsMdFiles":"Selected directory has no AGENTS.md files","noAgentsToPause":"No agents eligible to pause","noAgentsToPauseHint":"No active or running project agents to pause","noAgentsToResume":"No agents eligible to resume","noAgentsToResumeHint":"No paused project agents to resume","noCompaniesAvailable":"No companies available","noCompaniesMatch":"No companies match your search","noEmployees":"No employees","noEmployeesDesc":"This agent has no direct reports.","noInboxMessages":"No messages in inbox","noInstructionsPath":"No instructions file path set","noLimit":"No limit","noLogEntriesYet":"No log entries yet","noLogsForRun":"No logs for this run","noManager":"No manager","noMemoryFiles":"No memory files","noneUsingBuiltIn":"None (using built-in)","noOutboxMessages":"No messages in outbox","noOutputCaptured":"No output captured","noPausedEligible":"No paused agents eligible to resume","noReportingChain":"No reporting chain","noReset":"No reset","noRunsYet":"No runs yet","noRuntimes":"No runtimes available","noSkillContent":"No skill content available","noSkillMd":"No skill documentation found","noSkillsInPackage":"No skills in package","noTasksAssigned":"No tasks assigned","noTokenUsageYet":"No token usage recorded yet. Token totals appear here once agents run.","notScheduled":"Not scheduled","notSelected":"Not selected","off":"Off","onboarding":{"applyDraftAgent":"Apply draft to agent form","applyDraftSettings":"Apply draft to settings form","continue":"Continue","dialogLabel":"AI Interview","draftIntro":"Review this generated draft. Nothing is applied until you confirm.","draftReady":"Draft ready for review","fieldAgentMemory":"Agent Memory","fieldHeartbeatEnabled":"Heartbeat Enabled","fieldHeartbeatInterval":"Heartbeat Interval","fieldHeartbeatPath":"Heartbeat Procedure Path","fieldIcon":"Icon","fieldInlineInstructions":"Inline Instructions","fieldMaxTurns":"Max Turns","fieldModelHint":"Model Hint","fieldName":"Name","fieldPatternAgent":"Pattern Agent","fieldReportsTo":"Reports To","fieldRole":"Role","fieldRuntimeHint":"Runtime Hint","fieldSkills":"Skills","fieldSoul":"Soul","fieldTemplate":"Template","fieldThinkingLevel":"Thinking Level","fieldTitle":"Title","intentLabelCreate":"What should this new agent own?","intentLabelEdit":"What should this agent change or improve?","no":"no","notSet":"Not set","sectionConfiguration":"Configuration","sectionIdentity":"Identity","sectionRationale":"Rationale","sectionRuntimeHints":"Runtime Hints","startInterview":"Start interview","startOnboarding":"Start onboarding","thinking":"Thinking...","title":"Agent Onboarding","updatedDraftReady":"Updated draft ready for review","yes":"yes"},"onHeartbeat":"On heartbeat","openDetails":"Open details for {{name}}","optional":"(optional)","orgChartCanvas":"Org chart canvas","orgChartCenter":"Center org chart","orgChartEmployees":"{{name}} employees","orgChartFit":"Fit org chart","orgChartLoadFailed":"Failed to load org chart: {{error}}","orgChartView":"Org Chart view","orgChartZoomIn":"Zoom in org chart","orgChartZoomOut":"Zoom out org chart","orPasteManifest":"or paste manifest content","outbox":"Outbox","output":"Output","outputTokens":"Output","overview":"Overview","overviewLabel":"Agents overview","parsing":"Parsing…","pause":"Pause","pauseAction":"Pause","pauseAgentsFailed":"Failed to pause agents: {{error}}","pauseAll":"Pause All","pauseAllAgents":"Pause All Agents","pauseAllConfirm_one":"Pause {{count}} agent in this project?","pauseAllConfirm_other":"Pause {{count}} agents in this project?","pauseAllTitle":"Pause All Agents","pauseCountHint_one":"Pause {{count}} active/running agent","pauseCountHint_other":"Pause {{count}} active/running agents","pauseCountHint_one_one":"","pauseCountHint_one_other":"","pauseCountHint_other_one":"","pauseCountHint_other_other":"","pausedPast":"paused","pausedSummary_one":"Paused {{count}} agent; skipped {{skipped}}","pausedSummary_other":"Paused {{count}} agents; skipped {{skipped}}","pendingApprovals":"Pending Approvals","pendingApprovalsCount_one":"{{count}} pending approvals","pendingApprovalsCount_other":"{{count}} pending approvals","performance":{"avgDuration":"Avg Duration","noData":"No performance data yet","reflections":"Reflections","successRate":"Success Rate","tasksCompleted":"Tasks Completed","tasksFailed":"Tasks Failed"},"permissionPolicyFailed":"Failed to update permission policy","permissionPolicyUpdated":"Permission policy updated","permissionsDescription":"Control what this agent is allowed to do.","permissionsTitle":"Permissions","pluginRuntime":"Plugin runtime","presetsHeader":"Choose a preset persona to prefill role, identity, soul, and instructions","preview":"Preview","promptSize":"Prompt size","promptSizeChart":"Prompt Size Chart","provideManifest":"Please provide manifest content","ratings":{"addError":"Failed to add rating: {{error}}","addRating":"Add Rating","addSuccess":"Rating added","categoryAverages":"Category Averages","categoryCommunication":"Communication","categoryOther":"Other","categoryQuality":"Quality","categoryReliability":"Reliability","categorySelect":"Select category...","categorySpeed":"Speed","commentPlaceholder":"Optional comment...","count_one":"{{count}} ratings","count_other":"{{count}} ratings","deleteError":"Failed to delete rating: {{error}}","deleteRating":"Delete rating","deleteSuccess":"Rating deleted","historyTitle":"Rating History","loadError":"Failed to load ratings: {{error}}","loading":"Loading ratings...","noRatings":"No ratings yet","starCount_one":"{{count}} star","starCount_other":"{{count}} stars","submitRating":"Submit Rating","submitting":"Submitting...","title":"User Ratings"},"recentRuns":"Recent Runs","reflections":{"agentNotFound":"This agent is no longer available. It may have been deleted.","generateError":"Failed to generate reflection: {{error}}","generateSuccess":"Reflection generated successfully","getStarted":"Trigger a reflection to get started","historyTitle":"Reflection History","insights":"Insights","insufficientHistory":"Not enough history to generate a reflection yet","loadError":"Failed to load reflections: {{error}}","loading":"Loading reflections...","loadingEvaluation":"Loading evaluation...","metricAvgDuration":"Avg Duration:","metricErrors":"Errors:","metricFailed":"Failed:","metrics":"Metrics","metricTasks":"Tasks:","noReflections":"No reflections yet","reflecting":"Reflecting...","reflectNow":"Reflect Now","reflectNowTitle":"Generate a manual reflection","sectionTitle":"Performance, Reflections & Ratings","suggestedImprovements":"Suggested Improvements"},"refresh":"Refresh","removeAvatar":"Remove avatar","replyingTo":"Replying to","reportsToLabel":"Reports to","resetBudgetUsage":"Reset Budget Usage","resetDayHint":"The day of the week or month when the budget resets.","resetDayLabel":"Reset Day","resetDayMonthly":"Day of month (1–28)","resetDayWeekly":"Day of week (0=Sun)","resetting":"Resetting...","resizeSidebar":"Resize agents sidebar","result":"Result","resultCreated_one":"{{count}} created","resultCreated_other":"{{count}} created","resultErrors_one":"{{count}} error{{plural}}","resultErrors_other":"{{count}} error{{plural}}","resultSkipped_one":"{{count}} skipped (already exist)","resultSkipped_other":"{{count}} skipped (already exist)","resume":"Resume","resumeAction":"Resume","resumeAgentsFailed":"Failed to resume agents: {{error}}","resumeAll":"Resume All","resumeAllAgents":"Resume All Agents","resumeAllConfirm_one":"Resume {{count}} agent in this project?","resumeAllConfirm_other":"Resume {{count}} agents in this project?","resumeAllTitle":"Resume All Agents","resumeCountHint_one":"Resume {{count}} paused agent","resumeCountHint_other":"Resume {{count}} paused agents","resumeCountHint_one_one":"","resumeCountHint_one_other":"","resumeCountHint_other_one":"","resumeCountHint_other_other":"","resumedPast":"resumed","resumedSummary_one":"Resumed {{count}} agent; skipped {{skipped}}","resumedSummary_other":"Resumed {{count}} agents; skipped {{skipped}}","retry":"Retry","reviewConfiguration":"Review generated configuration","reviewHint":"Review your agent configuration before creating.","role":"Role","roleCustom":"Custom","roleEngineer":"Engineer","roleExecutor":"Executor","roleLabel":"Role","roleLabel2":"Role","roleMerger":"Merger","roleReviewer":"Reviewer","roleScheduler":"Scheduler","roleTriage":"Triage","roleUpdated":"Agent role updated to {{role}}","roleUpdateError":"Failed to update role: {{error}}","roleUpdateFailed":"Failed to update role: {{error}}","roleUpdateSuccess":"Agent role updated to {{role}}","runAriaLabel":"Run {{id}}","runDetailsFailed":"Failed to load run details","runMissedHeartbeat":"Run missed heartbeat","runMissedHeartbeatHint":"Trigger a run if the agent misses a scheduled heartbeat.","running":"Running","runNow":"Run Now","runNowAria":"Run now for {{name}}","runNowFor":"Run now for {{name}}","runs":{"empty":"No runs yet","loading":"Loading runs…","stop":"Stop","stopAriaLabel":"Stop run","stopMessage":"Stop this run?","stopTitle":"Stop Run"},"runsCount_one":"{{count}} run","runsCount_other":"{{count}} runs","runsSuccessRate":"{{rate}}% success rate","runStarted":"Run started","runsToday":"Runs today","runStopped":"Run stopped","runtime":"Runtime","runtimeEmpty":"No plugin runtimes available","runtimeLabel":"Runtime","runtimeMode":"Runtime mode","runtimePlaceholder":"Select a plugin runtime…","runtimeSource":"Runtime Source","runtimeSourceBuiltIn":"Built-in Model","runtimeSourcePlugin":"Plugin Runtime","save":"Save","saveBeforeSwitch":"Save changes before switching files","saveCustomInterval":"Save custom interval","saveFailed":"Save failed","saveFile":"Save File","saveHeartbeatFile":"Save Heartbeat File","saveInstructions":"Save Instructions","saveMemory":"Save Memory","saveMemoryFile":"Save Memory File","saveSettings":"Save Settings","saveSoul":"Save Soul","saving":"Saving…","savingChanges":"Saving changes...","savingFile":"Saving file...","scopeDisciplineHint":"Controls how strictly the agent follows its scope during heartbeats.","searchCompanies":"Search companies…","sectionConfiguration":"Configuration","sectionIdentity":"Identity","sectionRuntime":"Runtime","selectAgent":"Select agent {{name}}","selectAgentHint":"Choose an agent from the sidebar to view details","selectAllAgents":"Select all agents","selectAllSkills":"Select all skills","selectAnAgent":"Select an agent","selectCompany":"Please select a company from the catalog","selectDirectory":"Select Directory","selected":"Selected:","selectedAgentLabel_one":"{{count}} Agent{{plural}}","selectedAgentLabel_other":"{{count}} Agent{{plural}}","selectedSkillLabel_one":"{{count}} Skill{{plural}}","selectedSkillLabel_other":"{{count}} Skill{{plural}}","selectMemoryFile":"Select a memory file","selectModel":"Model","selectModelPlaceholder":"Select a model…","selectRuntime":"Select a runtime","selectSkill":"Select skill {{name}}","setHeartbeatAria":"Set heartbeat interval for {{name}}","settingsSaved":"Settings saved","settingsSaveFailed":"Failed to save settings","setupModeAriaLabel":"Agent setup mode","showSystemAgents":"Show system agents","skills":"Skills","skillsDescription":"Manage the skills available to this agent.","skillsErrors_one":"{{count}} skill{{plural}} error{{pluralError}}","skillsErrors_other":"{{count}} skill{{plural}} error{{pluralError}}","skillsFound_one":"{{count}} skill{{plural}} found","skillsFound_other":"{{count}} skill{{plural}} found","skillsHint":"Optional skills to assign to this agent","skillsImported_one":"{{count}} skill{{plural}} imported","skillsImported_other":"{{count}} skill{{plural}} imported","skillsNone":"No skills assigned","skillsSelected_one":"{{count}} skill selected","skillsSelected_other":"{{count}} skills selected","skillsSkipped_one":"{{count}} skill{{plural}} skipped (already exist)","skillsSkipped_other":"{{count}} skill{{plural}} skipped (already exist)","skillsTitle":"Skills","skipHeartbeatWhenIdle":"Skip heartbeat when idle","skipHeartbeatWhenIdleHint":"Avoid running heartbeats when the agent has nothing to do.","soulDescription":"The soul defines this agent's personality, values, and communication style.","soulEmptyPreview":"No soul yet — switch to edit mode to add one.","soulHint":"Describe who this agent is — its character, tone, and values.","soulPlaceholder":"Describe this agent's soul...","soulSaved":"Soul saved","soulSaveFailed":"Failed to save soul","soulTitle":"Soul","soulTooLong":"Soul content is too long","start":"Start","starting":"Starting...","startOnboarding":"Start onboarding","stateActive":"Active","stateAll":"All States","stateError":"Error","stateIdle":"Idle","statePaused":"Paused","stateRunning":"Running","stateUpdated":"Agent state updated","stateUpdateError":"Failed to update state: {{error}}","stateUpdateFailed":"Failed to update agent state","stateUpdateSuccess":"Agent state updated to {{state}}","status":"Status","statusCount":"{{activeCount}} active · {{runningCount}} running","step":"Step {{number}}{{total}}: {{name}}","stepAriaLabel":"Step {{step}}","stop":"Stop","stopActiveRun":"Stop active run","stopActiveRunFor":"Stop active run for {{name}}","stopRun":"Stop Run","stopRunConfirm":"Are you sure you want to stop this run?","stopRunFailed":"Failed to stop run","stopRunTitle":"Stop Run","strict":"Strict","successRate":"Success rate","systemDefault":"System default","systemDefaultOnHeartbeat":"System default (on heartbeat)","systemPrompt":"System Prompt","systemPromptNotCaptured":"System prompt not captured","tabConfig":"Config","tabCustom":"Custom agent","tabDashboard":"Dashboard","tabEmployees":"Employees","tabInstructions":"Instructions","tabLogs":"Logs","tabMail":"Mail","tabMemory":"Memory","tabPresets":"Preset personas","tabReflections":"Reflections","tabRuns":"Runs","tabSoul":"Soul","tabTasks":"Tasks","taskUpdated":"Task updated","templateCompact":"Compact","templateDefault":"Default","thinkingHigh":"High","thinkingLevel":"Thinking level","thinkingLow":"Low","thinkingMedium":"Medium","thinkingMinimal":"Minimal","thinkingOff":"Off","thinkingXhigh":"Very High","throughput":"Throughput","timeSinceLastHeartbeat":"Time since last heartbeat","title":"Agents","titleLabel":"Title","titlePlaceholder":"e.g. Senior Engineer","tokenBudgetHint":"Maximum tokens this agent can use per budget period.","tokenBudgetLabel":"Token Budget","tokenStatistics":"Agent token usage statistics","tokenUsage":"Token Usage","tokenUsageByAgent":"Token Usage by Agent","tokenUsageTotals":"Token usage totals","total":"Total","totalRuns":"Total runs","unknownManager":"Unknown manager","unreadMessage":"Unread","upgradeHint":"Upgrade from","upgradeHintSuffix":"to the latest default.","upgradeHintTo":"to","upgradeToDefault":"Upgrade to default","upgradeToDefaultAriaLabel":"Upgrade heartbeat procedure to default","upgrading":"Upgrading...","uploadAvatar":"Upload avatar","usageThresholdHint":"Send a warning when usage reaches this percentage of the budget.","usageThresholdLabel":"Usage Warning Threshold (%)","useGlobalDefault":"Use global default","viewAgent":"View agent","viewDetailsFor":"View details for {{name}}","viewHeartbeatMarkdown":"View heartbeat markdown","viewLiveLogs":"View live run logs","viewLiveRun":"View live run details","viewLiveRunAria":"View live run details for {{name}}","viewLogsFor":"View live logs for {{taskId}}","viewSkillDetails":"View skill details","viewTask":"View task","waitingForActivity":"Waiting for activity...","waitingForQuestion":"Waiting for AI question...","waitingOutput":"Waiting for output...","weekly":"Weekly","workingOn":"Working on","zoomIn":"Zoom in","zoomOut":"Zoom out"}`),u={backendError:{failedFetch:"Failed to fetch projects"},testMode:"Test mode — no real AI calls"},p="Fusion",m={dismissBanner:"Dismiss approval notification banner",needAttention_one:"{{count}} approval {{noun}} need your attention",needAttention_other:"{{count}} approval {{noun}} need your attention",openMailbox:"Open Mailbox",requestPlural:"requests",requests:"Approval requests",requestSingular:"request"},g={clearAndRetry:"Clear token and retry",pasteToken:"Paste token",relogin:"Re-login",reloginRequired:"Re-login required: {{provider}}. Your {{provider}} session expired — sign in again to keep agents running.",reloginRequiredMultiple:"Re-login required: {{providers}}",replacementToken:"Replacement token",setAndReload:"Set token and reload",tokenRecoveryDescription:"This dashboard session can't authenticate with the daemon. Set a replacement token or clear the current token and retry.",tokenRequired:"Authentication token required"},h={changeLaunchMode:"Change Launch Mode…",connectionError:"Can't reach the Fusion backend",couldNotLoad:"Fusion couldn't load your projects right now. Please make sure the backend is running and try again.",error:"Error: {{error}}",manageConnection:"Manage Connection",retryConnection:"Retry Connection",retrying:"Retrying…"},f={confirmMessage:"This session is active in another tab. Open anyway?",confirmTitle:"Open Active Session",dismissButton:"Dismiss",pillLabel_one:"AI {{count}}",pillLabel_other:"AI {{count}}",pillTitle_one:"{{count}} background AI task",pillTitle_other:"{{count}} background AI task",pillTitleWithInput_one:"{{count}} background AI task ({{needsInput}} needs input)",pillTitleWithInput_other:"{{count}} background AI task ({{needsInput}} needs input)",popoverHeader:"Background Tasks",status:{activeElsewhere:"active in another tab",failed:"Failed",generating:"generating...",needsInput:"needs input"},typeLabel:{cliAgent:"CLI Agent",milestoneInterview:"Milestone Interview",missionInterview:"Mission Interview",planning:"Planning",sliceInterview:"Slice Interview",subtask:"Subtask Breakdown"}},b={archived:"Archived",done:"Done",inProgress:"In Progress",inReview:"In Review",rejection:{capacityExhausted:"That column is at capacity. Try again when a slot frees up.",guardRejected:"This move is not allowed by the workflow.",mergeBlocked:"This task is blocked from completing until its merge step finishes.",promoteRejected:"This card could not be promoted.",unknownColumn:"That column doesn't exist in this task's workflow.",workflowMismatch:"Drag can't move a card between workflows. Use the workflow switcher instead."},todo:"To Do",triage:"Triage",workflow:{edit:"Edit workflows",new:"New workflow"}},v={abandonGroup:"Abandon group",autoMergeEnabled:"Auto-merge enabled",collapseLabel:"Collapse branch group",completionText:"{{landed}} of {{total}} members finished",expandLabel:"Expand branch group",groupLabel:"Group {{id}}",loadError:"Failed to load branch group",loading:"Loading branch group…",mergeIntoMain:"Merge group into main",openPr:"Open PR",unavailable:"Branch group unavailable"},k={prNumber:"PR #{{number}}"},y={dismiss:"Dismiss capacity warning",risk:"Capacity risk:",status:"Todo {{todoCount}} (threshold {{threshold}}) · In Progress {{inProgress}} · In Review {{inReview}} · Idle agents {{idleAgents}}"},w={disableWrap:"Disable word wrap",enableWrap:"Enable word wrap",merged:"Merged {{date}}",nextFile:"Next file (Ctrl+↓)",nextFileAria:"Next file",noDiff:"No diff available for this file.",previousFile:"Previous file (Ctrl+↑)",previousFileAria:"Previous file",selectFile:"Select a file to view its diff",title:"Changes",toggleWrap:"Toggle word wrap"},A={archive:"Archive",attachFiles:"Attach files",cancel:"Cancel",cancelButton:"Cancel",clearConversationFailed:"Failed to clear conversation",closeQuickChat:"Close quick chat",conversationArchived:"Conversation archived",conversationDeleted:"Conversation deleted",conversationName:"Conversation name",conversationRenamed:"Conversation renamed",copyFailed:"Copy failed",copyResponse:"Copy response",create:"Create",createButton:"Create",createRoom:"Create room",delete:"Delete",deleteConversation:"Delete conversation",deleteConversationBody:"This action cannot be undone. All messages in this conversation will be permanently deleted.",deleteConversationTitle:"Delete Conversation?",deleteRoom:"Delete room {{name}}",deleteRoomBody:"This action cannot be undone. This room and all its messages will be permanently deleted.",deleteRoomTitle:"Delete Room?",dismissQueuedMessage:"Dismiss queued message",failedToArchiveConversation:"Failed to archive conversation",failedToClearConversation:"Failed to clear conversation",failedToClearRoomConversation:"Failed to clear room conversation",failedToCreateSession:"Failed to create chat session",failedToDeleteConversation:"Failed to delete conversation",failedToDeleteRoom:"Failed to delete room",failedToRenameConversation:"Failed to rename conversation",failedToSendRoomMessage:"Failed to send room message",failureDetails:"Failure details",helpMessageContent:"Available commands:\n- `/new` or `/clear` — Clear conversation and start fresh\n- `/skill:{name}` — Use a specific skill\n- `/help` — Show this help",jumpToLatest:"Latest",latest:"Latest",loadingAgents:"Loading agents...",loadingConversation:"Loading conversation…",loadingConversations:"Loading...",loadingMessages:"Loading messages...",loadingModels:"Loading models...",loadingOlderMessages:"Loading older messages…",loadingSessions:"Loading sessions…",loadingSkills:"Loading skills…",mentionNonMember:"Not a member of {{roomName}}",messageAgentPlaceholder:"Message {{name}}",messageModelPlaceholder:"Message {{name}}",messageRoomPlaceholder:"Message #{{name}}",messageSentButReplyFailed:"Message sent, but assistant reply failed",messageSentButReplyFailedDetail:"Message sent, but assistant reply failed: {{detail}}",modeAgent:"Agent",modeModel:"Model",newChat:"New Chat",newChatModeAgent:"Agent",newChatModeModel:"Model",newChatTitle:"New Chat",noAgentsAvailable:"No agents available",noConversationsYet:"No conversations yet",noMessages:"No messages",noMessagesYet:"No messages yet. Start the conversation!",noRoomsYet:"No rooms yet.",noSkillsAvailable:"No skills available",noSkillsFound:"No skills found",openQuickChat:"Open quick chat",questionAnsweredLabel:"Answered",questionAnsweredWithoutContent:"A later user reply answered this question.",questionConfirmNo:"No",questionConfirmYes:"Yes",questionResponseEyebrow:"Assistant question",questionResponseLabel:"Question from assistant",questionSelectHint:"Answer all questions to continue the chat.",questionSubmit:"Send answer",questionSubmittedAnswerLabel:"Submitted answer",questionTextPlaceholder:"Type your answer here…",queuedMessage:"Queued: {{preview}}",quickChatTitle:"Quick Chat",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",removeAttachment:"Remove {{name}}",rename:"Rename",renameConversationAria:"Rename conversation {{title}}",renameConversationBody:"Choose a new name for this conversation. Leave it blank to show Untitled.",renameConversationTitle:"Rename Conversation",renamePlaceholder:"Untitled",resizePanelBottom:"Resize panel from bottom",resizePanelBottomLeft:"Resize panel from bottom-left corner",resizePanelBottomRight:"Resize panel from bottom-right corner",resizePanelLeft:"Resize panel from left",resizePanelRight:"Resize panel from right",resizePanelTop:"Resize panel from top",resizePanelTopLeft:"Resize panel from top-left corner",resizePanelTopRight:"Resize panel from top-right corner",resizeSidebar:"Resize chat sidebar",responseCopied:"Response copied",responseFailed:"Response failed",roomMemberCount_one:"{{count}} member",roomMemberCount_other:"{{count}} members",roomsGroupLabel:"Rooms",save:"Save",scopeDirect:"Direct",scopeRooms:"Rooms",scrollMessageToTop:"Scroll message to top",searchConversations:"Search conversations...",selectAgentForNewChat:"Select agent for new chat",selectAgentPlaceholder:"Select an agent to start chatting",selectModel:"Select a model",selectModelOverrideLabel:"Select model override",selectModelPlaceholder:"Select a model to start chatting",selectModelPlaceholder2:"Select a model",selectRoomOrCreate:"Select a room or create one",selectSession:"Select a session",selectSessionLabel:"Select session",sendMessageFailed:"Failed to send message",sendRoomMessageFailed:"Failed to send room message",sessionsGroupLabel:"Sessions",showPlainText:"Show all messages as plain text",showRenderedMarkdown:"Show all messages as rendered Markdown",skillSuggestions:"Skill suggestions",startNewChat:"Start a new chat",startNewConversation:"Start a new conversation",stopGeneration:"Stop generation",thinking:"Thinking",thinkingLabel:"Thinking",thinkingStatus:"Thinking…",toolArgsLabel:"args",toolArgsPreview:"args: {{summary}}",toolCalls:"Tool calls",toolCallsCount_one:"{{count}} tool calls",toolCallsCount_other:"{{count}} tool calls",toolResultLabel:"result",toolResultPreview:"result: {{summary}}",typeMessage:"Type a message...",unreadMessages:"Unread messages",untitledSession:"Untitled",workingStatus:"Working…",you:"You"},S={error:{deliveredButRefreshFailed:"Message delivered, but failed to refresh room replies",failedToLoad:"Failed to load chat rooms",failedToUpload:"Failed to upload attachment: {{filename}}",selectRoomFirst:"Select a room before sending a message"}},C={installBody:"Get the {{fn}} and {{fusion}} commands on your terminal so you can drive Fusion from anywhere. One click below or copy the command into your shell.",installButton:"Install with npm",installing:"Installing…",installTitle:"Install the Fusion CLI",openSettings:"Open Settings",updateButton:"Update with npm",updateTitle:"Update the Fusion CLI",updating:"Updating…",versionMismatchInfix:"but this dashboard expects",versionMismatchPrefix:"Your installed",versionMismatchSuffix:"Update to stay in sync."},T={binaryLabel:"Binary:",checking:"Checking…",copied:"Copied",copy:"Copy",expectedVersion:"(expected {{version}})",failedExit:"Install failed (exit {{code}})",heading:"CLI Binary",help:"Installing the global CLI lets you run fn and fusion from any terminal. Automations and scripts work without it via npx, but a global install is faster and more convenient.",installing:"Installing…",installWithNpm:"Install with npm",notOnPath:"Neither fn nor fusion was found on PATH.",orCopyLabel:"Or copy and run yourself:",pathLabel:"Path:",refresh:"Refresh",reinstall:"Reinstall",stateCheckDisabled:"Check disabled",stateInstalled:"Installed",stateMissing:"Not installed",stateVersionMismatch:"Version mismatch",succeededDuration:"Install succeeded in {{duration}}s",versionLabel:"Version:"},P={queued_one:"{{count}} message queued — will send when the agent is ready",queued_other:"{{count}} message queued — will send when the agent is ready",terminalTab:"Terminal",transcriptTab:"Transcript",viewToggleLabel:"Chat view"},R={adapterSettings:"Adapter settings",advance:"Advance",advancePrompt:"This session looks idle — advance to review?",mobileInputPlaceholder:"Type to send to the session…",mobileKeyArrowDown:"Cursor down",mobileKeyArrowLeft:"Cursor left",mobileKeyArrowRight:"Cursor right",mobileKeyArrowUp:"Cursor up",mobileKeyCtrl:"Sticky Ctrl modifier",mobileKeyCtrlC:"Send Ctrl-C",mobileKeyEsc:"Send Escape",mobileKeyTab:"Send Tab",mobileSend:"Send",notYet:"Not yet",postureBaseline:"Baseline",postureResolved:"Resolved posture",readOnly:"Read-only",replayEnded:"Session ended",replayIdle:"Session idle"},F={actionsAriaLabel:"{{columnLabel}} column actions",actionsTitle:"Column actions",archiveAllDoneAriaLabel:"Archive all done tasks",archiveAllDoneTitle:"Archive all done tasks",archiveAllMessage_one:"Archive all {{count}} done tasks?",archiveAllMessage_other:"Archive all {{count}} done tasks?",archiveAllTitle:"Archive All Done",archivedTasks_one:"Archived {{count}} tasks",archivedTasks_other:"Archived {{count}} tasks",autoMerge:"Auto-merge",autoMergeDisabled:"Auto-merge disabled",autoMergeEnabled:"Auto-merge enabled",cancelMove:"Cancel Move",collapseArchivedLabel:"Collapse archived tasks",collapseArchivedTitle:"Collapse archived tasks",expandArchivedLabel:"Expand archived tasks",expandArchivedTitle:"Expand archived tasks",failedToArchive:"Failed to archive tasks",keepProgress:"Keep Progress",loadMore_one:"Load {{count}} more ({{remaining}} remaining)",loadMore_other:"Load {{count}} more ({{remaining}} remaining)",moveAllToTodo:"Move All to Todo",moveAllToTodoMessage_one:"Move all {{count}} {{columnLabel}} task{{plural}} to Todo?",moveAllToTodoMessage_other:"Move all {{count}} {{columnLabel}} task{{plural}} to Todo?",moveAllToTodoTitle:"Move All to Todo",movedToPlanning_one:"Moved {{count}} task{{plural}} to planning for replanning",movedToPlanning_other:"Moved {{count}} task{{plural}} to planning for replanning",movedToTodo_one:"Moved {{count}} task{{plural}} to Todo",movedToTodo_other:"Moved {{count}} task{{plural}} to Todo",movePartialFailure:"Moved {{moved}} of {{total}} tasks; {{failed}} failed",moveToTodoHint_one:"Move {{count}} task{{plural}} to Todo",moveToTodoHint_other:"Move {{count}} task{{plural}} to Todo",moveToTodoPartialFailure:"Moved {{moved}} of {{total}} tasks to Todo; {{failed}} failed",newTask:"New Task",noManuallyPausableTasks:"No manually pausable tasks",noTasks:"No tasks",noTasksInColumn:"No tasks in this column",pauseHint_one:"Pause {{count}} active unassigned task{{plural}}",pauseHint_other:"Pause {{count}} active unassigned task{{plural}}",preserveProgressMessage:"This task has completed steps. Keep progress before moving?",preserveProgressMoveTodoMessage:"Some tasks have completed steps. Keep progress before moving to Todo?",preserveProgressTitle:"Preserve Progress?",replanAll:"Replan All",replanAllHint_one:"Move {{count}} task{{plural}} to Planning",replanAllHint_other:"Move {{count}} task{{plural}} to Planning",replanAllMessage_one:"Move all {{count}} todo task{{plural}} back to planning to be replanned?",replanAllMessage_other:"Move all {{count}} todo task{{plural}} back to planning to be replanned?",replanAllTitle:"Replan All Tasks",resetProgress:"Reset Progress",resetProgressConfirm:"Reset Progress",resetProgressMessage:"Reset all step progress before moving this task?",resetProgressMoveTodoMessage:"Reset step progress for tasks before moving to Todo?",resetProgressTitle:"Reset Progress?",stopAll:"Stop All",stopAllMessage_one:"Stop all {{count}} {{columnLabel}} task{{plural}}?",stopAllMessage_other:"Stop all {{count}} {{columnLabel}} task{{plural}}?",stopAllTitle:"Stop All Tasks",stopPartialFailure:"Stopped {{paused}} of {{total}} tasks; {{failed}} failed",stoppedTasks_one:"Stopped {{count}} task{{plural}}",stoppedTasks_other:"Stopped {{count}} task{{plural}}"},L=JSON.parse('{"activity":{"activeAgents":"Active agents","activeNodes":"Active nodes","agentRunOutcomeShare":"Agent run outcome share","agentRuns":"Agent runs","agentRunsActive":"Active","agentRunsCompleted":"Completed","agentRunsFailed":"Failed","agentRunsPerDay":"Agent runs / day","agentsPerDay":"Active agents / day","messages":"Messages","messagesPerDay":"Messages / day","nodesPerDay":"Active nodes / day","rechartsLine":"Activity trend","sessions":"Sessions","stickiness":"Stickiness","stickinessHint":"DAU / MAU","summaryTitle":"Summary","throughput":"Throughput","throughputPerDay":"Throughput / day"},"area":{"empty":"No data for the selected range.","loading":"Loading…"},"areaPending":"This area renders once metrics data is available.","controls":{"concurrency":{"description":"Tune live scheduler capacity.","error":"Unable to load concurrency settings","maxConcurrent":"Max concurrent tasks","maxTriageConcurrent":"Max triage concurrent","maxWorktrees":"Max worktrees","title":"Concurrency"},"engine":{"description":"Stopping the engine halts all AI work.","title":"AI engine"},"heartbeat":{"description":"Pause or resume the scheduling heartbeat.","disabledByStop":"Start the AI engine before resuming the heartbeat.","pause":"Pause heartbeat","resume":"Resume heartbeat","title":"Heartbeat control"},"orgChart":{"empty":"No agents are reporting in yet.","error":"Unable to load org chart","loading":"Loading org chart…","title":"Agent org chart"},"status":{"error":"Unable to load live scheduler status","lastActivity":"Last activity","loading":"Loading…","maxConcurrent":"Max concurrent","noActivity":"No recent activity","paused":"Paused","ready":"Ready","running":"Running","saved":"Saved","saveError":"Save failed","saving":"Saving…","stopped":"Stopped"},"theme":{"description":"Switch the dashboard theme with live color previews.","title":"Theme"},"title":"Operator controls"},"ecosystem":{"breadthTitle":"Ecosystem breadth","empty":"No models or plugins active in the selected range.","modelShareTitle":"Task share by model","perModelTitle":"Tasks per model","plugins":"Plugin activations","pluginsUnavailable":"Plugin-activation metrics are not yet recorded","taskTrendSeries":"Tasks","tokenTrendSeries":"Tokens","trendTitle":"Ecosystem trend","uniqueModels":"Active models"},"empty":"No usage data yet. Run some agents to populate the Dashboard.","funnel":{"ariaLabel":"Tasks per workflow stage","completionRate":"Completion rate","completionRateAria":"Completion rate for in-range triage entrants","completionRateHint":"Done ÷ entered (in range)","doneInRange":"Reached done","empty":"No task transitions in the selected range.","enteredInRange":"Entered triage","rangeDays_one":"{{count}} day range","rangeDays_other":"{{count}} day range","stage":{"done":"Done","inProgress":"In progress","inReview":"In review","other":"Other","todo":"Todo","triage":"Triage"},"throughputPerDay":"Tasks done / day","throughputTitle":"Throughput","title":"SDLC funnel"},"github":{"backfillBusy":"Backfilling close times…","backfillButton":"Backfill exact close times","backfillFailed":"Failed to backfill GitHub source issue close times","backfillMaxBatches":"Backfill stopped after the safety limit; rerun after checking server logs.","backfillNothing":"Nothing to backfill. Scanned {{scanned}}, filled {{filled}}, skipped {{skipped}}, errors {{errors}}.","backfillPending":"Backfill is running in paginated batches.","backfillResult":"Backfill complete. Scanned {{scanned}}, filled {{filled}}, skipped {{skipped}}, errors {{errors}}.","byRepo":"By repository","dailyLine":"Filed vs fixed line","dailyTrend":"Filed vs fixed trend","empty":"No GitHub issue activity in the selected range.","filed":"Filed by Fusion","filedTrend":"Filed","fixed":"Fixed by Fusion","fixedApproximation":"Uses done tasks updated in range","fixedTrend":"Fixed","issueFlowShare":"Filed vs fixed share","net":"Net","repoValue":"{{filed}} filed / {{fixed}} fixed","totalsTitle":"GitHub issue flow"},"heading":"Dashboard","loading":"Loading dashboard...","missionControl":{"activeNodes":"Active nodes","activeRuns":"Active runs","activeSessions":"Active sessions","funnelTitle":"SDLC funnel (live)","idle":"No active sessions. Live updates resume when work starts.","inactive":"inactive","loading":"Loading live activity…","nodesTitle":"Nodes","noNodes":"No active nodes.","noSessions":"No active sessions.","sessionCount_one":"{{count}} session","sessionCount_other":"{{count}} session","sessionsTitle":"Sessions"},"overview":{"activeNodes":"Active nodes","agentRuns":"Agent runs","agentsWorking":"agents working","autonomy":"Autonomy ratio","dailyActivity":"Daily activity trend","dailyActivityAria":"Daily activity trend","dailyActivityHint":"Messages plus active agents per day","dailyActivityLine":"Daily activity line","dailyActivityLineHint":"Messages, agents, and runs by day","liveStrip":"Live activity","liveTokens":"tokens","openSignals":"Open signals","sessions":"Sessions","tasksDone":"Tasks done","tasksInProgress":"tasks in progress","throughputTrend":"throughput trend","throughputTrendAria":"Recent activity throughput trend","tokensByModel":"Tokens by model","tokensByModelHint":"Top model token consumers in this range","tokensByModelPie":"Token share by model","tokensByModelPieHint":"Top model token share in this range","tokensCost":"Tokens & cost","toolCategories":"Tool categories","toolCategoriesHint":"Autonomous work grouped by tool family","uniqueModels":"Unique models"},"productivity":{"averageDuration":"Average","backfillAppliedLabel":"Applied","backfillApply":"Apply backfill","backfillBusy":"Checking historical LOC…","backfillButton":"Preview LOC backfill","backfillConfirmMessage":"This will persist diff stats to task_commit_associations for historical commit associations. Review the dry-run counts before applying.","backfillConfirmTitle":"Apply LOC backfill?","backfillDistinctCommits":"Distinct commits","backfillFailed":"Failed to backfill historical LOC stats","backfillPending":"LOC backfill check is running.","backfillPreviewLabel":"Dry-run preview","backfillResult":"Backfill report","backfillScannedRows":"Scanned rows","backfillSkippedInvalidShas":"Skipped invalid SHAs","backfillSkippedUnavailableCommits":"Skipped unavailable commits","backfillUpdatedRows":"Updated rows","byLanguage":"Files by language","commits":"Commits","completedTasks":"Completed tasks","durationTitle":"Task duration","durationUnavailable":"Task duration is unavailable until completed tasks have active execution time recorded","hoursSaved":"Human hours saved","hoursSavedEstimate":"estimate from lines changed","hoursSavedUnavailable":"Estimated human hours saved is unavailable until commit diff stats exist","languagePie":"Language share","loc":"Lines changed","locUnavailable":"LOC is unavailable until commit diff stats are recorded","medianDuration":"Median","modifiedFiles":"Files modified","outcomesTitle":"Outcomes","p90Duration":"P90","pullRequests":"Pull requests","totalDuration":"Total active","volumeHint":"volume, not outcome","volumeTitle":"Volume (proxy)"},"range":{"custom":"Custom range","dialogLabel":"Select date range","from":"From","invalidRange":"Start date must be on or before end date","to":"To"},"signals":{"bySeverity":"By severity","bySource":"By source","empty":"No external signals yet. Connect a signal source (Sentry, Datadog, PagerDuty, webhook) to see incident metrics here.","mttr":"MTTR","mttrUnavailable":"MTTR is unavailable until incident data is recorded","mttrValue":"{{min}} min","open":"Open","resolved":"Resolved","statusShare":"Signal status share","summaryTitle":"Summary","total":"Total signals"},"system":{"cpuGauge":"App CPU usage","cpuSeries":"CPU","cpuTrend":"CPU over time","detailsTitle":"Runtime details","healthTitle":"Live system health","heapGauge":"Heap used","heapSeries":"Heap","heapTrend":"Heap over time","memoryGauge":"System memory used","memorySeries":"Memory","memoryTrend":"Memory over time","resourceTrend":"Resource trend","taskShare":"Task distribution","trendsTitle":"Live trends","workloadTitle":"Workload"},"tablistLabel":"Command Center sections","tabs":{"activity":"Activity","ecosystem":"Ecosystem","github":"GitHub","missionControl":"Mission Control","nodes":"Nodes","overview":"Overview","productivity":"Productivity","reliability":"Reliability","signals":"Signals","system":"System","team":"Team","tokens":"Tokens","tools":"Tools"},"team":{"agent":"Agent","completedByAgent":"Tasks done by agent","cost":"Cost","done":"Tasks done","empty":"No agents have reported team analytics yet.","files":"Files changed","filesChanged":"Files changed","inProgress":"In progress","noChartData":"No non-zero values for this chart yet.","spread":"Team spread","state":"Agent state: {{state}}","tableTitle":"Per-agent breakdown","tasksCompleted":"Tasks done","tokens":"Tokens","tokensByAgent":"Tokens by agent","tokenShareByAgent":"Token share by agent","totalCost":"Estimated cost","totalsTitle":"Team totals","totalTokens":"Total tokens","unknownAgent":"(unknown agent)","unknownRole":"Unknown role","unknownState":"unknown"},"tokens":{"byModelChart":"Tokens by model","cached":"Cached","cost":"Estimated cost","costCol":"Cost","costUnavailable":"No pricing for this model","granularity":"Token chart granularity","input":"Input","model":"Model","output":"Output","overTimeChart":"Tokens over time","pieChart":"Token share by model","rechartsLine":"Tokens trend","stalePricing":"pricing may be stale","tableTitle":"Per-model breakdown","tasks":"Tasks","total":"Total","totalsTitle":"Totals","totalTokens":"Total tokens","unknownModel":"(unknown)"},"tools":{"autonomyHint":"tool calls per human intervention","autonomyRatio":"Autonomy ratio","categoriesTitle":"Tool categories","interventionBreakdown":"{{approvals}} approvals · {{steers}} steers","interventions":"Interventions","pieChart":"Tool category share","ratioAutonomous":"{{ratio}} calls/session (fully autonomous)","sessions":"Sessions","summaryTitle":"Summary","toolCalls":"Tool calls"}}'),D={addButton:"Add Comment",addedSuccess:"Comment added",deletedSuccess:"Comment deleted",deletingButton:"Deleting…",editedSuffix:"(edited)",emptyState:"No comments yet.",heading:"Comments",placeholder:"Add a comment",postingButton:"Posting…",updatedSuccess:"Comment updated",aiGuidance:"AI Guidance"},M={filesChanged_one:"Files Changed ({{count}})",filesChanged_other:"Files Changed ({{count}})"},I={error:"Error loading commit diff: {{error}}",loadError:"Failed to load commit diff",loading:"Loading commit diff...",mergedOnly:"Commit diff is only available for tasks that were merged.",noFiles:"No files changed in this commit.",noSha:"No commit SHA available."},N={archive:"Archive",back:"Back",cancel:"Cancel",close:"Close",closeAriaLabel:"Close",collapse:"Collapse",continue:"Continue",delete:"Delete",dismiss:"Dismiss",edit:"Edit",editMode:"Edit",expand:"Expand",learnMore:"Learn more →",loading:"Loading...",no:"No",noDataAvailable:"No data available",nothingToShow:"There is nothing to show yet.",preview:"Preview",previewMode:"Preview",refresh:"Refresh",retry:"Retry",save:"Save",saveAndTest:"Save & Test",saving:"Saving...",skip:"Skip",somethingWentWrong:"Something went wrong while loading this view.",stop:"Stop",test:"Test",testing:"Testing…",total:"total",tryAgain:"Try Again",unableToLoadData:"Unable to load data",unknown:"Unknown",unsavedChanges:"Unsaved changes",yes:"Yes"},x={loadingAgents:"Loading agents…",messageId:"Message {{id}}",messageLabel:"Message:",messagePlaceholder:"Type your message…",newMessageTitle:"New Message",noAgentsAvailable:"No agents available",replyingToLabel:"Replying to:",replyTitle:"Reply",selectAgent:"Select agent…",sendingButton:"Sending…",toLabel:"To:",wakeAgentCheckbox:"Wake agent immediately",wakeAlwaysImmediate:"(agent is already set to immediate response mode)",wakeOneOff:"(one-off override for this message only)"},E={cancel:"Cancel",closeDialog:"Close confirmation dialog",confirm:"Confirm"},H={aiReasoning:"AI Reasoning",aiThinking:"AI thinking",confirm:{no:"No",yes:"Yes"},hide:"Hide {{type}}",show:"Show {{type}}",yourResponse:"Your response"},B={create:"Create room",creating:"Creating...",failedCreate:"Failed to create room.",failedLoadAgents:"Failed to load agents.",loadingAgents:"Loading agents...",members:"Members",nameLabel:"Room name",noAgents:"No agents in this project yet.",noMatch:"No agents match your search.",searchAgents:"Search agents",selectMember:"Select at least one member.",title:"Create room"},O={initializingDashboard:"Initializing dashboard...",loadingMessage:"Loading Fusion dashboard",loadingProgress:"Dashboard loading progress",title:"Project Dashboard",updatingMessage:"Updating Fusion dashboard",updatingVersion:"Updating to a new frontend version..."},U={body:"Fusion's background SQLite integrity check reported corruption. Review the failing objects below before continuing critical operations.",instructions:"Back up the project, try {{cmd}} if the database still opens cleanly, and restore from a known-good backup if corruption persists. See {{link}} for the storage layout and recovery guidance.",lastChecked:"Last checked: {{checkedAtLabel}}",refreshHealth:"Refresh health",refreshing:"Refreshing…",title:"Database corruption detected",whatToDo:"What to do:"},_={projectNotFound:"Project '{{id}}' not found",taskNotFound:"Task {{id}} not found"},j={chooseMode:"How do you want to run Fusion?",chooseModeDescription:"Run Fusion locally in this app, or connect to a Fusion server you're already running somewhere else.",connectRemoteButton:"Connect to Remote Fusion",couldNotStart:"Couldn't start local Fusion",loading:"Loading Fusion…",opening:"Opening…",retry:"Retry",runLocalButton:"Run Fusion Locally",settingUpRemote:"Setting up remote connection…",starting:"Starting…",startingLocalRuntime:"Starting local Fusion runtime…"},q={allSeverities:"All severities",auto:"Auto",autoDetected:"Auto-detected: {{url}}",change:"Change",clear:"Clear",command:"Command",configuration:"Configuration",configurationLabel:"Dev server configuration",controlsHeaderLabel:"Dev server controls header",embedded:"Embedded",embeddedPreviewDisabled:"Embedded preview is disabled. Open your app in a separate browser tab.",enterFullscreen:"Enter fullscreen logs",errBadge:"ERR",error:"Error",exitFullscreen:"Exit fullscreen logs",externalOnly:"External only",filterBySeverity:"Filter logs by severity",info:"Info",lines:"{{count}} lines",lines_one:"{{count}} lines",lines_other:"{{count}} lines",loading:"Loading...",loadingConfig:"Loading dev server configuration...",loadingLogs:"Loading logs…",loadingOlderLogs:"Loading older logs…",loadOlderLogs:"Load older logs",logs:"Logs",logsLabel:"Dev server logs",lostConnection:"Lost log stream connection.",manual:"Manual",matchCount_one:"{{count}} match",matchCount_other:"{{count}} matches",newLogs:"New logs",noLogsYet:"No logs yet. Start the dev server to see output.",noMatchesSearch:"No log lines match your search.",noMatchesSeverity:"No log lines match the selected severity.",noPreviewDetected:"No preview URL detected. Start the dev server or set a manual URL to preview your app.",noPreviewUrl:"No preview URL",noScriptsDetected:"No dev server scripts detected. Check that your project has a package.json with a dev, start, or similar script.",notAvailable:" · Not available",openInNewTab:"Open in new tab",openPreviewInNewTab:"Open preview in new tab",openPreviewOrRetry:"Open the preview in a new tab, or retry embedded mode after checking your server settings.",preview:"Preview",previewBlocked:"Preview blocked",previewFailed:"Preview failed",previewLabel:"Dev server preview",previewUrlOverride:"Preview URL Override",refreshPreview:"Refresh preview",restart:"Restart",restarting:"Restarting...",retry:"Retry",retryEmbeddedPreview:"Retry embedded preview",runningCommand:"Running command",save:"Save",scriptSelection:"Script Selection",searchLogs:"Search logs",start:"Start",startDevServer:"Start a dev server to see a live preview here.",starting:"Starting...",status:{failed:"Failed",running:"Running",starting:"Starting...",stopped:"Stopped",stopping:"Stopping..."},stop:"Stop",stopping:"Stopping...",title:"Dev Server",toast:{clearedScript:"Cleared selected dev server script.",enterCommand:"Enter a command before starting the dev server.",previewCleared:"Preview URL override cleared.",previewUpdated:"Preview URL updated.",restarted:"Dev server restarted.",selectedScript:"Selected {{name}} script.",started:"Dev server started.",stopped:"Dev server stopped."},warn:"Warn"},W={ariaLabel:"Directory browser",browse:"Browse",cancel:"Cancel",closeBrowser:"Close directory browser",createFolder:"New folder",createFolderAria:"Create new folder",createFolderConfirm:"Create",createFolderError:"Folder name cannot contain path separators or '..'",createFolderTitle:"Create folder",defaultPlaceholder:"/path/to/your/project",hideHidden:"Hide hidden",hideHiddenAria:"Hide hidden directories",hideHiddenTitle:"Hide hidden",loading:"Loading…",newFolderPlaceholder:"Folder name",noSubdirs:"No subdirectories",openBrowser:"Browse directories",parentDir:"Go to parent directory",parentDirTitle:"Parent directory",select:"Select",showHidden:"Show hidden",showHiddenAria:"Show hidden directories",showHiddenTitle:"Show hidden",up:"Up"},G={actions:{addMount:"Add mount",addVariable:"Add variable",cancel:"Cancel",createNode:"Create Docker Node"},ariaLabels:{closeModal:"Close onboarding modal",modal:"Docker node onboarding",removeMount:"Remove volume mount",removeVariable:"Remove environment variable"},available:"Docker is available{{version}}",caPath:"CA Certificate Path",certPath:"Client Certificate Path",connected:"Connected{{version}}",connectionFailed:"Connection failed",container:"Container:",context:"Docker Context",creatingNode:"Creating Docker node...",errors:{cpusMinimum:"CPUs must be at least 0.5",memoryMinimum:"Memory must be at least 512 MB",nameRequired:"Name is required and must be 64 characters or fewer",urlRequired:"URL is required"},failedAt:"Failed at: {{stage}}",failedMessage:"Provisioning failed",host:"Docker Host",hostPlaceholder:"tcp://host:2376",keyPath:"Client Key Path",labels:{apiKey:"API Key",cpus:"CPUs",image:"Image",memory:"Memory (MB)",nodeName:"Node Name",reachableUrl:"Reachable URL",tag:"Tag"},local:"Local Docker",notFound:"Docker not found{{error}}",notFoundError:"Docker not found: {{message}}",options:{autoGenerate:"Auto-generate",claudeCli:"Claude CLI",droidCli:"Droid CLI",persistentStorage:"Keep data across container recreations",provideManually:"Provide manually"},placeholders:{apiKey:"Enter API key",containerPath:"Container path",envVarKey:"KEY",envVarValue:"Value",hostPath:"Host path",image:"runfusion/fusion",nodeName:"my-docker-node",tag:"latest"},provisionedIn:"Provisioned in {{durationSec}}s",refreshContexts:"Refresh contexts",remote:"Remote Host",retry:"Retry",sections:{advanced:"Advanced",environmentVariables:"Environment Variables",requiredSettings:"Required Settings",volumeMounts:"Volume Mounts"},selectContext:"Select context",stage:{creatingContainer:"Creating container...",pullingImage:"Pulling image...",registeringNode:"Registering node...",startingContainer:"Starting container..."},states:{creating:"Creating..."},successMessage:"Node created successfully!",targetMode:"Docker target mode",testConnection:"Test Connection",testing:"Testing...",titles:{provisionNode:"Provision Docker Node"},useTls:"Use TLS",verifyTls:"Verify TLS Certificate",viewNode:"View Node"},V={backToFiles:"Back to files",backToFilesList:"Back to project files list",clearSearch:"Clear search",collapse:"Collapse",collapseContent:"Collapse content",docCount_one:"{{count}} doc{{plural}}",docCount_other:"{{count}} doc{{plural}}",documentsCreatedIn:"Documents are created in task detail tabs.",expand:"Expand",expandContent:"Expand content",failedToLoad:"Failed to load {{type}}: {{error}}",hideHidden:"Hide hidden project files",hideHiddenFiles:"Hide hidden files",hideHiddenLabel:"Hide Hidden",loadingFileContent:"Loading file content…",loadingProjectFiles:"Loading project markdown files…",loadingTaskDocuments:"Loading task documents…",markdown:"Markdown",noMarkdownFiles:"No Markdown files found in this project.",noMatchProject:'No project markdown files match "{{query}}".',noMatchTask:'No task documents match "{{query}}".',noTaskDocuments:"No task documents yet.",openTask:"Open task",plain:"Plain",projectFilePreviewLabel:"Project file content preview",projectFiles:"project files",projectFilesTab:"Project Files",projectMarkdownFilesLabel:"Project markdown files",resultCount_one:"{{count}} result{{plural}}",resultCount_other:"{{count}} result{{plural}}",retry:"Retry",retryLoading:"Retry loading documents",searchProjectFiles:"Search project markdown files…",searchTaskDocuments:"Search task documents…",sectionsLabel:"Documents sections",selectFile:"Select a Markdown file to view its content.",showHidden:"Show hidden project files",showHiddenFiles:"Show hidden files",showHiddenLabel:"Show Hidden",showProjectFiles:"Show project markdown files",showTaskDocuments:"Show task documents",switchToMarkdown:"Switch to markdown",switchToPlainText:"Switch to plain text",taskDocuments:"task documents",taskDocumentsTab:"Task Documents",title:"Artifacts",untitled:"Untitled",artifacts:"artifacts",artifactsCreatedBy:"Artifacts are created by agents, users, and system tools.",artifactsTab:"Artifacts",artifactAudioLabel:"Audio artifact: {{title}}",artifactCardLabel:"Artifact {{title}}",artifactTypeAudio:"Audio",artifactTypeDocument:"Document",artifactTypeImage:"Image",artifactTypeOther:"Other",artifactTypeVideo:"Video",artifactVideoLabel:"Video artifact: {{title}}",loadingArtifacts:"Loading artifacts…",noArtifactPreview:"No preview available.",noArtifacts:"No artifacts yet.",noMatchArtifacts:'No artifacts match "{{query}}".',openArtifactMedia:"Open artifact media",openTaskAria:"Open task {{taskId}}: {{title}}",searchArtifacts:"Search artifacts…",showArtifacts:"Show artifacts",untitledArtifact:"Untitled artifact",closeLightbox:"Close artifact preview",expandArtifact:"Expand {{title}}",expandArtifactHint:"Click to expand",lightboxLabel:"Artifact media preview"},z={active:"Active",cardTitle:"Factory AI — via Droid CLI",connectedVersion:"Connected{{version}}",description:"Route AI calls through your locally-installed droid CLI. Uses your existing Factory AI subscription / quota instead of an API key.",details:"Details",detected:"droid {{version}} detected{{path}}. Click Enable to route AI calls through it.",disable:"Disable",disabling:"Disabling…",droidNotFound:"droid not found on PATH",enable:"Enable",enabledValidating:"Enabled. Validating…",enabling:"Enabling…",extensionFailed:"Extension load failed: {{reason}}",modelsHidden:"Factory AI (via Droid CLI) models are hidden from the model picker.",modelsNowVisible:"Factory AI (via Droid CLI) models are now visible in the model picker.",notConnected:"Not connected",notInstalled:"Not installed",notOnPath:"droid binary not detected on PATH — install Droid CLI first.",probingCli:"Probing local CLI…",restartRequired:"Restart required: restart your active CLI/chat session for routing changes to take effect.",test:"Test",testing:"Testing…",toastDisabled:"Disabled",toastEnabled:"Enabled"},K={cancel:"Cancel",createAnyway:"Create anyway",message:"We found similar active tasks. Open an existing task or create this one anyway.",open:"Open",title:"Possible duplicates",untitledTask:"Untitled task"},Y={failedLoadFile:"Failed to load file",failedSaveFile:"Failed to save file",failedToLoadFile:"Failed to load file",failedToSaveFile:"Failed to save file"},Q={genericError:"Something went wrong",reloadPage:"Reload page",retry:"Retry",sectionError:"This section encountered an error"},J={allRuns:"All runs",disabledTitle:"Scheduled evals are disabled",empty:"No evals yet. Scheduled evals review tasks completed since the last run.",enablePrompt:"Enable Scheduled Evals to review scored tasks, evidence, and follow-up recommendations.",evidenceHeading:"Evidence",loading:"Loading evals…",maxScorePlaceholder:"Max score",minScorePlaceholder:"Min score",naPlaceholder:"n/a",noFollowups:"None",noRationale:"No rationale recorded.",openSettings:"Open Scheduled Evals Settings",overallScore:"Overall score: {{score}}",refreshAria:"Refresh evals",searchPlaceholder:"Search task or rationale",selectPrompt:"Select an evaluation to inspect scores, rationale, and evidence.",suggestedFollowupsHeading:"Suggested follow-up tasks"},Z={blocked:"Blocked",connecting:"Connecting…",daysAgo_one:"{{count}}d ago",daysAgo_other:"{{count}}d ago",escalated:"Escalated",escalatedSuffix:" (escalated)",engineControls:"Engine controls",hideProjectDir:"Hide project directory",hoursAgo_one:"{{count}}h ago",hoursAgo_other:"{{count}}h ago",inReview:"In Review",justNow:"just now",loading:"Loading...",minutesAgo_one:"{{count}}m ago",minutesAgo_other:"{{count}}m ago",noActivity:"no activity",overlapBottleneck_one:"{{status}} overlap bottleneck {{blockerId}}: {{count}} todo blocked via blockedBy (threshold {{threshold}})",overlapBottleneck_other:"{{status}} overlap bottleneck {{blockerId}}: {{count}} todo blocked via blockedBy (threshold {{threshold}})",openEngineControlsForState:"Open engine controls for {{state}} state",overlapQueue:"Overlap queue",overlapSummary_one:"{{blockerId}} · {{count}} todo",overlapSummary_other:"{{blockerId}} · {{count}} todo",queued:"Queued",running:"Running",secondsAgo_one:"{{count}}s ago",secondsAgo_other:"{{count}}s ago",showProjectDir:"Show project directory",stateIdle:"Idle",statePaused:"Paused",stateRunning:"Running",stateStopped:"Stopped",status:"Executor status",stuck:"Stuck",temporary:"Temporary",todoStatus:"todo",triageDisabledWhileStopped:"Start the AI engine before changing triage scheduling"},X={back:"Back to file list",binaryReadOnly:"Binary file — read only",contextCopy:"Copy",contextDelete:"Delete",contextDownload:"Download",contextDownloadZip:"Download as ZIP",contextMenuLabel:"File operations",contextMove:"Move",contextRename:"Rename",copy:"Copy",copyPlaceholder:"Destination path",copyTitle:"Copy",create:"Create",delete:"Delete",deleteConfirm:"Are you sure you want to delete {{name}}?",deleteRecursive:"This will delete all contents recursively.",deleteTitle:"Delete {{type}}",deleting:"Deleting...",emptyDirectory:"(empty directory)",error:"Error: {{message}}",fileNamePlaceholder:"File name",folderNamePlaceholder:"Folder name",loading:"Loading…",loadingFiles:"Loading files...",modalTitle:"Files — {{workspace}}",modified:"Modified: {{date}}",move:"Move",movePlaceholder:"Destination path",moveTitle:"Move",newFile:"New File",newFolder:"New Folder",operationFailed:"Operation failed",operationSuffix:"ing...",rename:"Rename",renamePlaceholder:"New name",renameTitle:"Rename",resizeSidebar:"Resize sidebar",root:"Root",saving:"Saving…",selectFileToEdit:"Select a file to edit",toggleEditorOptions:"Toggle editor options",typeFile:"File",typeFolder:"Folder",unsavedChanges:"Unsaved changes",upOneLevel:"Up one level",workspaceProject:"Project",previewOnly:"Preview only",previewTitle:"Preview for {{file}}"},$={edit:"Edit",editMode:"Edit mode",editorFor:"Editor for {{filePath}}",fileEditor:"File editor",lineNumber:"Line #",preview:"Preview",previewMode:"Preview mode",toggleLineNumbers:"Toggle line numbers",toggleOptions:"Toggle editor options",toggleWordWrap:"Toggle word wrap",wrap:"Wrap"},ee={empty:"No tasks or files found",fileHeader:"Files",fileMatches:"File matches",taskHeader:"Tasks",taskMatches:"Task matches"},te=JSON.parse(`{"add":"Add","addRemote":"Add Remote","advancesHelpFix":"<strong>Fix:</strong> Fusion only shows <em>Sync working tree</em> when at least one advance is genuinely <code>pending</code> and HEAD is not aligned with the integration tip. If entries are already handled (subsumed/orphaned/reachable/superseded), no sync action is offered.","advancesHelpIntro":"Each entry is a Fusion task whose squash commit advanced the integration branch ref (<branchCode>{{integrationBranch}}</branchCode>). The <em>auto-sync outcome</em> says whether your working tree was also fast-forwarded to that new tip.","advancesHelpItem1":"<c1>clean-sync</c1> / <c2>synced-with-edits-restored</c2> — working tree is in sync; nothing to do.","advancesHelpItem2":"<c1>reachable</c1> / <c2>subsumed</c2> / <c3>orphaned</c3> / <c4>superseded</c4> — already handled (including history rewrites where equivalent content already landed, original SHAs disappeared, or HEAD is already aligned to the rewritten integration tip).","advancesHelpItem3":"<c1>pending</c1> + <c2>off / not run</c2> — auto-sync is disabled in Settings; the branch ref moved but your worktree didn't follow.","advancesHelpItem4":"<c1>pending</c1> + <c2>stash-failed</c2> / <c3>would-conflict</c3> / similar — auto-sync tried but couldn't reconcile (usually local edits collide with the new commit).","advancesNeedAction_one":"{{count}} need action","advancesNeedAction_other":"{{count}} need action","aheadOfUpstream_one":"{{count}} commit(s) ahead of upstream","aheadOfUpstream_other":"{{count}} commit(s) ahead of upstream","aligned":"Aligned","apply":"Apply","applyStashKeep":"Apply stash (keep)","autoMergeDisabled":"Auto-merge disabled","autoMergeEnabled":"Auto-merge enabled","autoMergeUpdateFailed":"Failed to update auto-merge","autoMergeWhenGreen":"Auto-merge when green","autoMergeWillHandle":"Auto-merge will handle this task automatically.","autoMovedToTodo":"Auto-moved to Todo — reviewer feedback ready","autoSyncOffNotRun":"auto-sync: off / not run","autoSyncOutcome":"auto-sync: {{outcome}}","awaitingPrChecks":"Waiting for required checks or review feedback before auto-merge.","backToIssuesList":"Back to issues list","backToPullsList":"Back to pull requests list","baseHead":"Base: HEAD","behindUpstream_one":"{{count}} commit(s) behind upstream","behindUpstream_other":"{{count}} commit(s) behind upstream","branchLabel":"Branch:","cancel":"Cancel","capturedAt":"Captured:","changesStashed":"Changes stashed","checkout":"Checkout","chooseAnotherRepo":"Choose another repository.","clickToViewDiff":"Click to view diff","close":"Close","closeModalAriaLabel":"Close import modal","commentLast":"Last:","commit":"Commit","commitMessagePlaceholder":"Commit message...","commitsOnBranch":"Commits on {{name}}","commitStagedChanges":"Commit staged changes","commitsToPull_one":"{{count}} to pull","commitsToPull_other":"{{count}} to pull","commitsToPush_one":"{{count}} to push","commitsToPush_other":"{{count}} to push","commitsToPushHeader_one":"Commits to Push ({{count}})","commitsToPushHeader_other":"Commits to Push ({{count}})","committedHash":"Committed: {{hash}}","conflictedCount_one":"{{count}} conflicted","conflictedCount_other":"{{count}} conflicted","conflictReclaimFailed":"Failed to queue conflict reclaim","conflictReclaimQueued":"Conflict reclaim queued","conflictReclaimUnavailable":"Conflict reclaim unavailable","conflictsButton":"Conflicts","copiedButton":"Copied","copiedLabel":"Copied {{label}}","copiedToClipboard":"Copied to clipboard","copyButton":"Copy","copyCommitHashLabel":"commit hash","copyFetchUrl":"Copy fetch URL","copyFullCommitHashLabel":"full commit hash","copyFullHash":"Copy full hash","copyFullShaTitle":"Copy full 40-char SHA","copyPushUrl":"Copy push URL","copyShortHashTitle":"Copy short commit hash","copyShortHashTitleWithFull":"Copy short commit hash (use the full SHA below for git operations)","couldNotLoadIssues":"Could not load issues","couldNotLoadPulls":"Could not load pull requests","create":"Create","createdBranch":"Created branch {{name}}","createPrButton":"Create PR","createPrTitle":"Create a PR for this task","defaultBadge":"default","deleteBranch":"Delete","deleteBranchMessage":"Delete branch \\"{{name}}\\"?","deleteBranchTitle":"Delete Branch","deletedBranch":"Deleted branch {{name}}","detectingRemotes":"Detecting…","diffColon":"diff:","discardChangesMessage_one":"Discard changes to {{count}} file(s)? This cannot be undone.","discardChangesMessage_other":"Discard changes to {{count}} file(s)? This cannot be undone.","discardChangesTitle":"Discard Changes","discardedFiles_one":"Discarded changes to {{count}} file(s)","discardedFiles_other":"Discarded changes to {{count}} file(s)","discardSelected":"Discard selected","dismiss":"Dismiss","dismissPrError":"Dismiss PR error","dropStash":"Drop stash","dropStashMessage":"Drop stash@{{{index}}}? This cannot be undone.","dropStashTitle":"Drop Stash","editRemoteName":"Edit remote name","editRemoteUrl":"Edit remote URL","failedToAddRemote":"Failed to add remote","failedToApplyStash":"Failed to apply stash","failedToCheckoutBranch":"Failed to checkout branch","failedToCommit":"Failed to commit","failedToCopy":"Failed to copy","failedToCreateBranch":"Failed to create branch","failedToDeleteBranch":"Failed to delete branch","failedToDiscardChanges":"Failed to discard changes","failedToDropStash":"Failed to drop stash","failedToFetchData":"Failed to fetch git data","failedToFetchIssues":"Failed to fetch issues","failedToFetchPulls":"Failed to fetch pull requests","failedToImportIssue":"Failed to import issue","failedToImportPull":"Failed to import pull request","failedToLoadDiff":"Failed to load diff","failedToLoadFileDiff":"Failed to load file diff","failedToLoadRemoteCommits":"Failed to load remote commits","failedToLoadRemotes":"Failed to load remotes","failedToLoadStashDiff":"Failed to load stash diff","failedToRemoveRemote":"Failed to remove remote","failedToRenameRemote":"Failed to rename remote","failedToStageFiles":"Failed to stage files","failedToStashChanges":"Failed to stash changes","failedToUnstageFiles":"Failed to unstage files","failedToUpdateRemoteUrl":"Failed to update remote URL","fetch":"Fetch","fetchCompleted":"Fetch completed","fetchFailed":"Fetch failed","fetchingFromGitHub":"Fetching the latest list from GitHub.","fetchLabel":"Fetch:","fetchUrlLabel":"fetch URL","filterBranches":"Filter branches...","filterByLabelsLabel":"Filter by labels","filterByLabelsPlaceholder":"Filter: bug,enhancement…","filterIssuesByLabels":"Filter issues by labels","fnCreatingPr":"fn is creating a pull request automatically for this task.","fnMergingPr":"fn is merging this pull request automatically.","forceDeleteBranchMessage":"Branch has unmerged commits. Force delete?","forceDeleteBranchTitle":"Force Delete Branch","forceDeletedBranch":"Force deleted branch {{name}}","fullShaAbbrev":"full","ghAuthLoginHint":"Run {{code}} to enable PR creation.","headAheadOfIntegration_one":"HEAD has {{count}} commit(s) not on {{branch}}","headAheadOfIntegration_other":"HEAD has {{count}} commit(s) not on {{branch}}","headAheadOfOriginIntegration_one":"HEAD has {{count}} commit(s) not on origin/{{branch}}","headAheadOfOriginIntegration_other":"HEAD has {{count}} commit(s) not on origin/{{branch}}","headVsIntegration":"HEAD vs {{branch}}","headVsOriginIntegration":"HEAD vs origin/{{branch}}","hide":"Hide","hideExplanation":"Hide explanation","import":"Import","imported":"Imported","importedCount_one":"{{count}} imported","importedCount_other":"{{count}} imported","importFromGitHub":"Import from GitHub","importSubtitle":"Choose a detected remote, load open issues or pull requests, and import one into the board.","importTypeAriaLabel":"Import type","integrationAheadOfHead_one":"{{branch}} has {{count}} commit(s) HEAD doesn't","integrationAheadOfHead_other":"{{branch}} has {{count}} commit(s) HEAD doesn't","issueCount_one":"{{count}} issue","issueCount_other":"{{count}} issues","load":"Load","loadFromRepoAriaLabel":"Load {{tab}} from repository","loading":"Loading…","loadingAriaLabel":"Loading {{tab}}","loadingCommits":"Loading commits...","loadingDiff":"Loading diff...","loadingIssues":"Loading open issues…","loadingPulls":"Loading open pull requests…","loadingStashDiff":"Loading stash diff…","loadingTitle":"Loading…","loadMoreCommits":"Load more commits","loadTabTitle":"Load {{tab}}","localAheadOfOriginIntegration_one":"Local {{branch}} is {{count}} commit(s) ahead of origin/{{branch}}","localAheadOfOriginIntegration_other":"Local {{branch}} is {{count}} commit(s) ahead of origin/{{branch}}","localBehindOriginIntegration_one":"Local {{branch}} is {{count}} commit(s) behind origin/{{branch}}","localBehindOriginIntegration_other":"Local {{branch}} is {{count}} commit(s) behind origin/{{branch}}","localVsOrigin":"Local {{branch}} vs origin","manualPrFlowHint":"Use the footer action to run PR-first completion for this task.","mergeBadge":"merge","mergeConflictDetected":"Merge conflict detected. Resolve/rebase branch and retry reclaim.","mergedTaskDone":"Merged — task moved to Done","mergeLabel":"Merge","mergePrButton":"Merge pull request","mergeStrategyMerge":"merge","mergeStrategyRebase":"rebase","mergeStrategySquash":"squash","mergingPrHint":"Merging pull request…","mergingStatus":"Merging…","modalTitle":"Git Manager","modified":"Modified","modifiedCount_one":"{{count}} modified","modifiedCount_other":"{{count}} modified","newBranchName":"New branch name","noAheadCommitsFound":"No ahead commits found (may need to fetch first)","noBranchesFound":"No branches found","noCommitsFound":"No commits found","noCommitsOnRemote":"No commits found on {{remote}}. Try fetching first.","noDescription":"(no description)","noIssueSelected":"No issue selected","noIssueSelectedHint":"Choose an issue from the list to inspect its title and description.","noLocalRefTitle":"No local refs/heads/<branch> exists; nothing to compare against origin.","noLocalTracking":"no local tracking","noMatchingBranches":"No matching branches","noMatchingCommits":"No matching commits","noOpenIssues":"No open issues found","noOpenPulls":"No open pull requests found","noOriginTracking":"no origin tracking","noPullSelected":"No pull request selected","noPullSelectedHint":"Choose a pull request from the list to inspect its details.","noRefFound":"no ref found for {{branch}}","noRefFoundTitle":"Neither refs/heads nor refs/remotes/origin has this branch","noRemotes":"No remotes","noRemotesDetected":"No GitHub remotes detected","noRemotesInstructions":"Add a GitHub remote to this repository, then reopen the modal.","noReviewComments":"No review comments synced yet","noReviewsYet":"No reviews yet","noStagedChanges":"No staged changes","noStagedChangesToCommit":"No staged changes to commit","noStashes":"No stashes","nothingLoadedInstructions":"Select a repository and click Load to start reviewing import candidates.","nothingLoadedYet":"Nothing loaded yet","notOnIntegrationBranch":"(not on {{branch}})","notOnIntegrationBranchBtn":"Not on integration branch ({{branch}})","notOnIntegrationBranchTitle":"Currently on a non-integration branch","noUnstagedChanges":"No unstaged changes","openPullsFrom":"Open pull requests from {{remote}}","originIntegrationAheadOfHead_one":"origin/{{branch}} has {{count}} commit(s) HEAD doesn't","originIntegrationAheadOfHead_other":"origin/{{branch}} has {{count}} commit(s) HEAD doesn't","pop":"Pop","popStashTitle":"Pop stash (apply and drop)","prAuthUnavailable":"PR auth unavailable — run 'gh auth login'","prChecks":{"empty":"No checks reported yet","refreshAriaLabel":"Refresh checks","required":"Required","retry":"Retry","summary":"{{passing}} passing, {{failing}} failing, {{pending}} pending","viewDetails":"View details"},"previewHeading":"Preview","previewIssueMeta":"Issue #{{number}}","previewPullMeta":"Pull Request #{{number}}","prMerged":"Pull request merged","prMergeFailed":"Failed to merge pull request","projectRootNotAvailable":"Project root path not available","prRefreshFailed":"Failed to refresh PR","prStatusRefreshed":"PR status refreshed","prUnlinkConfirm":"Unlink PR #{{number}} from this task? The PR will not be closed.","prUnlinked":"Unlinked PR #{{number}}","pull":"Pull","pullCompleted":"Pull completed","pullCount_one":"{{count}} pull request","pullCount_other":"{{count}} pull requests","pullFailed":"Pull failed","pullOptions":"Pull options","pullOptionsMenu":"Pull options menu","pullRebase":"Pull --rebase","pullRebaseCompleted":"Pull --rebase completed","pullRequestHeading":"Pull Request","pullRequestsCount_one":"{{count}} pull requests","pullRequestsCount_other":"{{count}} pull requests","push":"Push","pushCompleted":"Push completed","pushFailed":"Push failed","pushLabel":"Push:","pushUrlLabel":"push URL","recentCommitsOnRemote":"Recent commits on {{remote}}","recentIntegrationAdvances":"Recent integration-branch advances","reCheckConflicts":"Re-check conflicts","refresh":"Refresh","refreshPrStatus":"Refresh PR status","refreshToCheckMerge":"Refresh PR status to check merge readiness","remoteAdded":"Remote '{{name}}' added successfully","remoteName":"Remote name","remoteOnlyIntegrationTipTitle":"No local refs/heads/<branch>; using refs/remotes/origin/<branch> as the integration tip.","remoteOnlyTrackLocally":"(remote-only — run git switch {{branch}} to track locally)","remoteRemoved":"Remote '{{name}}' removed","remoteRenamed":"Remote renamed to '{{name}}'","remoteUrlUpdated":"Remote URL updated","removeRemote":"Remove remote","removeRemoteMessage":"Are you sure you want to remove remote '{{name}}'?","removeRemoteTitle":"Remove Remote","repoMustBeSelected":"Repository must be selected","repositoryLabel":"Repository","repositoryStatus":"Repository Status","repositoryUrl":"Repository URL","resizeIssuesList":"Resize issues list","resolvedFrom":"Resolved from {{source}}","retry":"Retry","retryButton":"Retry","retryConflictReclaim":"Retry conflict reclaim","reviewLabel":"Review","reviewsLabel":"Reviews","searchCommits":"Search commits...","sectionBranches":"Branches","sectionChanges":"Changes","sectionCommits":"Commits","sectionRemotes":"Remotes","sectionStashes":"Stashes","sectionStatus":"Status","sectionWorktrees":"Worktrees","selectedRemote":"selected remote","selectFileToViewDiff":"Select a file to view its diff","selectIssueAriaLabel":"Select issue #{{number}}","selectPullAriaLabel":"Select pull request #{{number}}","selectRemoteAriaLabel":"Select Git remote","selectRemotePlaceholder":"Select remote…","selectRemoteToViewDetails":"Select a remote to view details","sidebarAriaLabel":"Git Manager Sections","stageAll":"Stage All","stageAllAndCommit":"Stage All & Commit","stageAllAndCommitTitle":"Stage all and commit","stageCount_one":"Stage ({{count}})","stageCount_other":"Stage ({{count}})","staged":"Staged","stagedChanges_one":"Staged Changes ({{count}})","stagedChanges_other":"Staged Changes ({{count}})","stagedCount_one":"{{count}} staged","stagedCount_other":"{{count}} staged","stagedFiles_one":"Staged {{count}} file(s)","stagedFiles_other":"Staged {{count}} file(s)","stageFile":"Stage file","stageSelected":"Stage selected","staleIndexWarning":"<strong>Stale index detected.</strong> HEAD has advanced (typically because Fusion's merger updated the integration-branch ref) but the index still reflects the previous tip — \`git status\` will report the new commits inverted as \\"staged changes.\\" Enable <mergeCode>mergeAdvanceAutoSync</mergeCode> in Settings to have the merger reconcile automatically, or run <resetCode>git reset --hard HEAD</resetCode> to snap forward manually.","stash":"Stash","stashApplied":"Stash applied","stashConflict":{"copied":"Stash SHA copied.","copyFailed":"Could not copy stash SHA.","dropStash":"Drop stash","failedWarning":"Automatic restore failed. Your changes are preserved in the stash above; use git stash apply <ref> to recover manually, or use Retry below.","keepIncoming":"Keep incoming","keepMine":"Keep mine","openInEditor":"Open in editor","retryRestore":"Retry restore","summary":"Pulled {{branch}}, but restoring local edits from stash produced conflicts.","title":"Resolve auto-stash conflicts"},"stashDropped":"Stash dropped","stashMessagePlaceholder":"Stash message (optional)","stashPopped":"Stash popped","stashRef":"stash@{{index}}","statusLabelBranch":"Branch","statusLabelCommit":"Commit","statusLabelIntegrationBranch":"Integration branch","statusLabelStashes":"Stashes","statusLabelVsOrigin":"vs origin","statusLabelWorkingTree":"Working Tree","switchedToBranch":"Switched to {{name}}","sync":"Sync","synced":"Synced","syncedWithOrigin":"Synced with origin (pull --rebase + push)","syncedWorktreeToIntegrationTip":"Synced worktree to local integration tip","syncFailed":"Sync failed","syncing":"Syncing…","syncLocalTip":"Sync local tip","syncLocalTipTitle":"Sync working tree to local integration tip (same as banner Pull)","syncOriginTitle":"Pull --rebase from origin, then push current branch","syncWithOriginFailed":"Sync with origin failed","syncWorkingTree":"Sync working tree","syncWorkingTreeTitle":"Pull the integration branch into your working tree (auto-stashes uncommitted edits and restores them)","tabIssues":"Issues","tabPullRequests":"Pull Requests","tip":"tip","toolbarAriaLabel":"GitHub import controls","tryDifferentFilter":"Try a different label filter or choose another repository.","unlinkButton":"Unlink","unresolvedMergeConflicts":"Unresolved merge conflicts","unstageAll":"Unstage All","unstageCount_one":"Unstage ({{count}})","unstageCount_other":"Unstage ({{count}})","unstaged":"Unstaged","unstagedChanges_one":"Unstaged Changes ({{count}})","unstagedChanges_other":"Unstaged Changes ({{count}})","unstagedFiles_one":"Unstaged {{count}} file(s)","unstagedFiles_other":"Unstaged {{count}} file(s)","unstageFile":"Unstage file","unstageSelected":"Unstage selected","untracked":"Untracked","untrackedCount_one":"{{count}} untracked","untrackedCount_other":"{{count}} untracked","upToDate":"Up to date","view":"View","viewOnGithub":"View on GitHub","waitingFor":"Waiting for: {{reasons}}","whatDoesThisMean":"What does this mean?","workingTreeClean":"Clean","workingTreeModified":"Modified","worktreeBadgeBare":"bare","worktreeBadgeMain":"main","worktreesInUse_one":"{{count}} in use","worktreesInUse_other":"{{count}} in use","worktreesTotal_one":"{{count}} total","worktreesTotal_other":"{{count}} total"}`),oe={body:"If Fusion has saved you time, a GitHub star goes a long way. It helps other developers discover the project and keeps the team motivated to ship improvements.",dismissLabel:"Dismiss GitHub star prompt",regionLabel:"GitHub star prompt",starOnGitHub:"Star on GitHub",title:"Enjoying Fusion?"},ae={activeCount_one:"{{count}} active goals",activeCount_other:"{{count}} active goals",addGoal:"Add Goal",archive:"Archive",capError:"Cannot activate more than 5 goals. Resolve an active goal before activating another.",capWarning:"Approaching the 5-active goal cap. Keep active goals focused.",createError:"Unable to create goal right now. Please try again.",drafting:"Drafting…",draftWithAi:"Draft with AI",emptyState:"No goals yet. Add one to begin tracking strategic outcomes.",labelDescription:"Description",labelTitle:"Title",linkedMissions:"Linked missions",linkedMissionsCount_one:"{{count}} linked",linkedMissionsCount_other:"{{count}} linked",linkedMissionsLoadError:"Unable to load linked missions right now. Please try again.",linkedMissionsTitle:"Linked Missions",linkingMission:"Linking…",linkMission:"Link mission",linkMissionError:"Unable to link mission right now. Please try again.",loadError:"Unable to load goals right now. Please try again.",loading:"Loading goals…",missionPicker:"Mission to link",missionsLoadError:"Unable to load missions right now. Please try again.",noLinkedMissions:"No linked missions.",saveError:"Unable to save goal right now. Please try again.",selectMission:"Select a mission",status:"Status",title:"Goals",titleRequired:"Title is required.",unarchive:"Unarchive",unlinkMission:"Unlink mission",unlinkMissionError:"Unable to unlink mission right now. Please try again.",updateError:"Unable to update goal status right now. Please try again."},ie={prLinkLabel:"PR #{{number}} ({{state}})"},ne={abandonGroup:"Abandon group",ariaLabel:"Branch group details",autoMergeEnabled:"Auto-merge enabled",completionText:"{{landed}} of {{total}} members finished",errorLoading:"Failed to load branch group",loading:"Loading branch group…",members:"Members",mergeIntoMain:"Merge group into main",openPR:"Open PR",openTask:"Open task",prClosed:"Group PR closed",prMerged:"Group PR merged",sharedBranch:"Shared branch",status:"Status",title:"Branch Group {{id}}",unavailable:"Branch group unavailable"},se={activePlanningSessions_one:"{{count}} active planning session",activePlanningSessions_other:"{{count}} active planning sessions",addFirstScript:"Add your first script",additionalHeaderActions:"Additional header actions",agentsView:"Agents view",allBaseBranches:"All base branches",allWorkingBranches:"All working branches",automation:"Automation",baseBranch:"Base branch",boardView:"Board view",browseFiles:"Browse Files",chatView:"Chat view",closeSearch:"Close search",commandCenterView:"Dashboard",createTaskWithPlanning:"Create a task with AI planning",devServerView:"Dev Server",documentsView:"Artifacts view",engineOptions:"Engine options",evalsView:"Evals",fusionLogo:"Fusion logo",gitManager:"Git Manager",goalsView:"Goals",importFromGitHub:"Import from GitHub",insightsView:"Insights",listView:"List view",loadingScripts:"Loading scripts...",localNode:"Local",mailbox:"Mailbox",mailboxView:"Mailbox view",mailboxWithCount_one:"Mailbox ({{count}})",mailboxWithCount_other:"Mailbox ({{count}})",manageProjects:"Manage Projects",manageScripts:"Manage Scripts...",memoryView:"Memory",missionsView:"Missions view",moreActions:"More actions",moreHeaderActions:"More header actions",moreViews:"More views",noBaseBranch:"No base branch",noScriptsAddOne:"No scripts — add one…",noScriptsConfigured:"No scripts configured",noWorkingBranch:"No working branch",openSearch:"Open search",openTerminal:"Open Terminal",pauseTriage:"Pause triage",pendingApprovals:"Pending approvals",projects:"Projects",quickScripts:"Quick scripts",researchView:"Research",resumePlanningSession:"Resume planning session",resumePlanningSessionCount_one:"Resume planning session ({{count}})",resumePlanningSessionCount_other:"Resume planning session ({{count}})",resumeScheduling:"Resume scheduling",scripts:"Scripts",scriptsSubmenu:"Scripts submenu",searchTasks:"Search tasks...",secretsView:"Secrets",selectNode:"Select node",selectProject:"Select project",settings:"Settings",showScripts:"Show scripts",skillsView:"Skills",startAiEngine:"Start AI engine",stashRecoveryView:"Stash Recovery",stopAiEngine:"Stop AI engine",switchNode:"Switch node",switchProject:"Switch project",terminal:"Terminal",todosView:"Todos",unreadChatResponse:"Unread chat response",unreadMessages_one:"{{count}} unread messages",unreadMessages_other:"{{count}} unread messages",viewActivityLog:"View Activity Log",viewProjects:"View Projects",viewUsage:"View usage",workflows:"Workflows",workingBranch:"Working branch"},re={activeTasks:"Active Tasks",anomalyBody:"Fusion found allocator state that can cause task IDs to be reused or overwrite live task records.",anomalyDetected:"Task ID integrity anomaly detected",completed:"Completed",failed:"Failed",inFlightAgents:"In-Flight Agents",lastError:"Last Error",metricsTitle:"Health Metrics",recheck:"Re-check",rechecking:"Re-checking…",refreshFailed:"Failed to refresh integrity status."},le={autoProfile:"Auto / use Hermes default",binaryPathHelp:"Leave blank to resolve {{cmd}} from your PATH.",binaryPathLabel:"Binary path",binaryPathPlaceholder:"hermes (defaults to PATH)",defaultProfile:" (default)",description:"Drives the local {{cmd}} CLI as a subprocess. Each Fusion prompt is sent as {{chatCmd}}; subsequent prompts resume the same hermes session via {{resumeFlag}}. Provider, model, and skills are configured inside hermes itself; this card only chooses overrides.",detected:"✓ hermes detected{{version}}{{path}}.",gitHubLink:"Hermes on GitHub",maxTurnsHelp:"Cap per Hermes turn. Hermes's own default is 90; we cap lower.",maxTurnsLabel:"Max turns",modelControlled:"Controlled by profile: {{profile}}",modelHelp:"Optional — overrides Hermes's configured default model.",modelLabel:"Model override",modelPlaceholder:"e.g. claude-sonnet-4-5, MiniMax-M3",notDetected:"{{cmd}} not detected. Install the upstream agent:",notFound:"✗ {{reason}}",probing:"Probing local hermes binary…",profileHelp:"Select a Hermes profile to use. Activates the profile by setting {{env}} to the profile directory when invoking {{cmd}}.",profileLabel:"Profile (optional)",profileModelSeparator:" — {{model}}",providerControlled:"Controlled by profile: {{profile}}",providerHelp:"Inference provider Hermes routes calls through (default: {{default}}).",providerLabel:"Provider",savedDetected:"Saved · ✓ hermes detected{{version}}.",savedNotFound:"Saved · ✗ {{reason}}",savedProbeFailed:"Saved, but probe failed.",settingsSaved:"Settings saved.",statusDetected:"✓ Detected{{version}}{{path}}",statusNotDetected:"✗ {{reason}}",subname:"by Nous Research",testFailed:"Test failed — see status above.",timeoutHelp:"Fusion-side hard cap. Default 5 min.",timeoutLabel:"CLI hard-kill timeout (ms)",yoloHelp:"Required for non-interactive sessions that trigger shell-style tools.",yoloLabel:"Auto-approve dangerous tool calls ({{flag}})"},de={agent:"Agent",breakDownSubtasks:"Break down into AI-generated subtasks",clearSelection:"Clear selection",collapse:"Collapse",collapseDescription:"Collapse description",collapseTaskOptions:"Collapse advanced task options",creating:"Creating...",custom:"Custom",deps:"Deps",editingDescription:"Editing Description",enterDescriptionFirst:"Enter a description first",expand:"Expand",expandDescription:"Expand description",expandTaskOptions:"Expand advanced task options",hintEnterEsc:"Enter to create · Esc to cancel",loadingAgents:"Loading agents...",model_one:"model",model_other:"model",models:"Models",noAgentsAvailable:"No agents available",node:"Node",noExistingTasks:"No existing tasks",openPlanningMode:"Open planning mode with current description",optionalWorkflowStepChecked:"{{name}} ✓",optionalWorkflowSteps:"Optional workflow steps",plan:"Plan",preset:"Preset",priority:"Priority",priorityLabel:"Priority: {{level}}",projectDefaultLocal:"Project default / local",removeImage:"Remove image",save:"Save",searchTasks:"Search tasks…",selectAgent:"Select agent",selectExecutionNode:"Select execution node",subtask:"Subtask",toggleOptionalWorkflowStep:"Toggle optional workflow step: {{name}}",useDefault:"Use default",whatNeedsToBeDone:"What needs to be done?"},ce={allInsights:"All Insights",alreadyRunning:"Insight generation is already running. Showing the active run.",alreadyRunningShort:"Insight generation is already running",archived:'Archived "{{title}}"',archivedMsg:"Insight archived: {{title}}",archiveLabel:"Archive this insight",archiveTitle:"Archive this insight",archiving:'Archiving "{{title}}"...',backlogHealth:"Backlog Health",categoriesLabel:"Insight categories",configureModel:"Configure insight generation model",configureModelTitle:"Configure model",createTaskLabel:"Create task from this insight",createTaskTitle:"Create task from this insight",creatingTask:'Creating task from "{{title}}"...',dismissed:'Dismissed "{{title}}"',dismissedMsg:"Insight dismissed: {{title}}",dismissing:'Dismissing "{{title}}"...',dismissLabel:"Dismiss this insight",dismissTitle:"Dismiss this insight",failedToArchive:"Failed to archive insight",failedToCreateTask:"Failed to create task",failedToDismiss:"Failed to dismiss insight",failedToPreparePayload:"Failed to prepare task payload from insight",failedToStart:"Failed to start generation",failedToUnarchive:"Failed to unarchive insight",generateDescription:"Generate insights to get AI-powered recommendations for your project.",generateFirst:"Generate First Insights",generateInsights:"Generate new insights",generateInsightsBtn:"Generate Insights",generating:"Generating...",generatingInsights:"Generating insights...",generationModel:"Insight generation model",generationStarted:"Insight generation started",hideArchived:"Hide archived insights",hideArchivedLabel:"Hide Archived",latestRun:"Latest run:",loading:"Loading insights...",model:"Model",modelConfigured:"Model: {{model}}",noInsightsYet:"No insights yet",runCompleted:"{{created}} created, {{updated}} updated",showAllInsights:"Show all insights",showArchived:"Show archived insights",showArchivedLabel_one:"Show Archived ({{count}})",showArchivedLabel_other:"Show Archived ({{count}})",showBacklogHealth:"Show only backlog health insights",taskCreated:'Task created from "{{title}}"',taskCreatedMsg:"Task created: {{title}}",taskCreationUnavailable:"Task creation is unavailable in this view",title:"Insights",unarchived:'Unarchived "{{title}}"',unarchivedMsg:"Insight unarchived: {{title}}",unarchiveLabel:"Unarchive this insight",unarchiveTitle:"Unarchive this insight",unarchiving:'Unarchiving "{{title}}"...',usePlanningDefault:"Use planning default"},ue={addContextDirection:"Add any extra context or direction...",additionalComments:"Additional comments (optional)",aiThinking:"AI is thinking...",appliedMessage:"The {{targetType}}'s scope and verification have been applied.",description:"Description",error:{failedToApply:"Failed to apply interview results",failedToRestoreQuestion:"Failed to restore session question.",failedToRestoreResult:"Failed to restore session result.",failedToResume:"Failed to resume session.",failedToSkip:"Failed to skip {{targetLabel}} interview",failedToStart:"Failed to start {{targetLabel}} interview",failedToSubmit:"Failed to submit response",sessionEncounteredError:"The session encountered an error.",sessionFailed:"Session failed while contacting the AI."},hideThinking:"Hide thinking",interviewDescription:"The AI will interview you to refine the {{targetType}}'s scope, acceptance criteria, and verification methods. Each {{targetType}} can have its own refined plan or inherit context from the mission level.",missionContext:"Mission context:",no:"No",noAdditionalDetails:"No additional details were generated for this item.",planningNotes:"Planning Notes",preparingQuestion:"Preparing next question...",progressText:"Question {{progress}} of ~6",reconnecting:"Reconnecting…",refinedScope:"Refined Scope",refineScope:"Refine {{label}} scope with AI",sendToBackground:"Send to background",sessionActiveAnotherTab:"Session is active in another tab.",showThinking:"Show thinking",startInterview:"Start Interview",targetLabel:{milestone:"Milestone",slice:"Slice"},typeAnswerHere:"Type your answer here...",updated:"{{label}} Updated",useMissionContext:"Use Mission Context",verificationCriteria:"Verification Criteria",yes:"Yes"},pe={noIssuesFound:"No issues found"},me={collapse:"Collapse {{name}} lane",expand:"Expand {{name}} lane"},ge={apply:"Apply",applying:"Applying...",archiveSelected:"Archive selected",archiveSelectedTitle:"Archive selected tasks that are in Done",archiveUnavailable:"Archive action is unavailable",archiveViaButton:"Tasks can only be archived via the archive button",bulkArchiveDone_one:"Archive {{count}} Done",bulkArchiveDone_other:"Archive {{count}} Done",bulkArchiveMessage_one:"Archive {{count}} selected task(s)?",bulkArchiveMessage_other:"Archive {{count}} selected task(s)?",bulkArchiveNoTasks:"No selected tasks can be archived (only done tasks)",bulkArchiveSummary:"Archived {{archived}} · {{skipped}} skipped · {{failed}} failed",bulkArchiveTitle:"Archive Selected Tasks",bulkDeleteAll:"Delete All",bulkDeleteArchiveSummary:"Archived {{archived}}, deleted {{deleted}}, failed {{failed}}",bulkDeleteMessage_one:"Delete {{count}} selected task(s)?",bulkDeleteMessage_other:"Delete {{count}} selected task(s)?",bulkDeleteNoTasks:"No selected tasks can be deleted (archived tasks are excluded)",bulkDeleteSummary_one:"Deleted {{count}} task · {{skipped}} archived skipped · {{failed}} failed",bulkDeleteSummary_other:"Deleted {{count}} tasks · {{skipped}} archived skipped · {{failed}} failed",bulkDeleteTitle:"Delete Selected Tasks",bulkDeleteWithDoneMessage:"Delete {{deletable}} task(s), or archive the {{done}} done task(s) and delete the rest?",bulkEdit:"Bulk Edit",bulkEditModelsLabel:"Bulk Edit Models & Node:",bulkNoChanges:"No changes to apply",bulkPauseNoTasks:"No selected tasks can be paused",bulkPauseSummary:"Paused {{paused}} · {{skipped}} skipped · {{failed}} failed",bulkUnpauseNoTasks:"No selected tasks can be unpaused",bulkUnpauseSummary:"Unpaused {{unpaused}} · {{skipped}} skipped · {{failed}} failed",bulkUpdateFailed:"Failed to update models",bulkUpdateNoTasks:"No valid tasks to update (archived tasks cannot be modified)",bulkUpdateSuccess_one:"Updated {{count}} task(s)",bulkUpdateSuccess_other:"Updated {{count}} task(s)",cancelMove:"Cancel Move",clear:"Clear",clearColumnFilter:"Clear column filter",colColumn:"Column",colDependencies:"Dependencies",colProgress:"Progress",colRetries:"Retries",colStatus:"Status",colTitle:"Title",deleteSelected:"Delete selected",deleteSelectedTitle:"Delete selected tasks",dependentsDeleteMessage:"Task {{taskId}} has dependents: {{dependents}}. Remove dependency references and force delete?",doneEditing:"Done Editing",doneHiddenChip:"Done hidden",executorModel:"Executor Model",fastMode:"Fast mode",filterChip:"Filter: {{column}}",forceDelete:"Force Delete",forceDeleteTitle:"Force Delete Task",hidden_one:"{{count}} hidden",hidden_other:"{{count}} hidden",hideDone:"Hide Done",hideDoneTitle:"Hide done tasks",keepProgress:"Keep Progress",lastColumnWarning:"At least one column must be visible",lineageArchiveMessage:`{{taskId}} has lineage children ({{children}}) that reference it as a source parent.
1
+ const e={add:"Add",apply:"Apply",back:"Back",cancel:"Cancel",close:"Close",closeInsightsView:"Close insights view",closeModal:"Close modal",confirm:"Confirm",continue:"Continue",create:"Create",delete:"Delete",discard:"Discard",dismiss:"Dismiss",dismissOAuth:"Dismiss OAuth re-login banner",done:"Done",edit:"Edit",no:"No",openSettings:"Open Settings",pull:"Pull",refresh:"Refresh",refreshInsights:"Refresh insights",retry:"Retry",run:"Run",save:"Save",search:"Search",send:"Send",showLess:"Show less",showMore:"Show more",update:"Update",yes:"Yes"},t={body:"The engine for this project is not running, so task automation and live updates may be paused. Start it now to reconnect the dashboard.",dashboardOnly:"This dashboard cannot start engines from the current process. Run `fn serve` for this project to enable task execution and live automation.",dashboardOnlyPrefix:"This dashboard cannot start engines from the current process. Run",dashboardOnlySuffix:"for this project to enable task execution and live automation.",error:"Start failed: {{message}}",startCta:"Start engine",starting:"Starting…",title:"Project engine is not connected"},o={emptyHint:"Activity will appear here when tasks are created, moved, or completed",eventCount_one:"{{count}} event",eventCount_other:"{{count}} events",noRecentActivity:"No recent activity"},a={activeFilters:"Active filters:",allEvents:"All Events",allProjects:"All Projects",clearFilters:"Clear all",clearFiltersBtnLabel:"Clear Filters",clearLog:"Clear Log",confirmClear:"Clear Activity Log?",confirmClearButton:"Clear Log",confirmClearMessage:"This will permanently delete all activity log entries. This action cannot be undone.",eventType:{autoArchivedDeterministicDuplicate:"Task Auto-Archived (Deterministic Duplicate)",autoArchivedDuplicate:"Task Auto-Archived (Duplicate)",autoArchivedGhostBug:"Task Auto-Archived (Ghost Bug)",autoArchivedNearDuplicate:"Task Auto-Archived (Near-Duplicate)",duplicateWarningOverridden:"Duplicate Warning Overridden",mergeWorktreeReacquired:"Merge Worktree Reacquired",nearDuplicateFlagged:"Near-Duplicate Flagged",projectIsolationTransition:"Project Isolation Transition",releaseAuthorizationRequired:"Release Authorization Required",settingsUpdated:"Settings Updated",taskCreated:"Task Created",taskDeleted:"Task Deleted",taskFailed:"Task Failed",taskMerged:"Task Merged",taskMoved:"Task Moved",taskUpdated:"Task Updated"},loadMore:"Load More",merged:"Merged",noActivityRecorded:"No activity recorded yet",noMatchingActivity:"No activity matches the current filters",notMerged:"Not merged",projectFilterBadge:"Project: {{project}}",refresh:"Refresh",time:{daysAgo_one:"{{count}}d ago",daysAgo_other:"{{count}}d ago",hoursAgo_one:"{{count}}h ago",hoursAgo_other:"{{count}}h ago",justNow:"Just now",minutesAgo_one:"{{count}}m ago",minutesAgo_other:"{{count}}m ago"},title:"Activity Log",typeFilterBadge:"Type: {{type}}"},n={copied:"Copied",copiedLabel:"Copied error to clipboard",copy:"Copy",copyLabel:"Copy error to clipboard",dialogLabel:"Agent error details",openDetails:"Open error details",reportOnGithub:"Report on GitHub",title:"Agent Error Details"},i={agentNameTriage:"Plan",collapseModelDetails:"Collapse model details",empty:"No agent output yet.",executor:"Executor",exitFullscreen:"Exit full screen",expandFullscreen:"Expand agent log to full screen",expandModelDetails:"Expand model details",hideOutput:"Hide output",hideToolCallsResults:"Hide tool calls and results",hideToolOutput:"Hide tool output",live:"Live",loading:"Loading agent logs…",loadingMore:"Loading…",loadMore:"Load More",markdown:"Markdown",plain:"Plain",planning:"Planning",reviewer:"Reviewer",showFormattedMarkdown:"Show formatted markdown",showing:"Showing {{visible}} of {{total}} entries",showOutput:"Show output",showRawText:"Show raw text",showToolCallsResults:"Show tool calls and results",showToolOutput:"Show tool output",switchMarkdown:"Switch to markdown mode",switchPlainText:"Switch to plain text mode",timeDaysAgo_one:"{{count}}d ago",timeDaysAgo_other:"{{count}}d ago",timeHoursAgo_one:"{{count}}h ago",timeHoursAgo_other:"{{count}}h ago",timeJustNow:"just now",timeMinutesAgo_one:"{{count}}m ago",timeMinutesAgo_other:"{{count}}m ago",toolEntriesHidden_one:"{{count}} tool entries hidden",toolEntriesHidden_other:"{{count}} tool entries hidden",toolsOff:"Tools: Off",toolsOn:"Tools: On",usingDefault:"Using default"},s={membersOf:"Members of #{{roomName}}",noAgentsFound:"No agents found",otherAgents:"Other agents",roomMemberBadge:"Room member",roomMembers:"Room members",suggestionsLabel:"Agent mention suggestions",typeToSearch:"Type to search other agents"},r={allow:"Allow",approvalRequired:"Approval Required",ariaLabel:"Permission policy categories",block:"Block",category:{commandExecution:{description:"Runs shell commands and scripts.",label:"Command execution"},fileWriteDelete:{description:"Create, edit, or remove files in the workspace.",label:"File writes/deletes"},gitWrite:{description:"Commits, branch updates, and merge-affecting git changes.",label:"Git writes"},networkApi:{description:"Outbound network or API access.",label:"Network/API"},taskAgentMutation:{description:"Task state changes, delegation, or agent lifecycle actions.",label:"Task/agent mutation"}},categoryExamples:"{{label}} examples",custom:"Custom",exemptTools:"Tools exempt from approval policy",exemptToolsDescription:"These coordination tools bypass approval policy so heartbeats and inter-agent messaging cannot deadlock. They are not user-configurable.",fromProjectDefault:"from project default",inherit:"Inherit",inheritDefault:"Inherit project default",lockedDown:"Locked Down",preset:"Preset",requireApproval:"Require approval",unrestricted:"Unrestricted"},l={actions:{addCustomTemplate:"Add Custom Template",cancel:"Cancel",collapse:"Collapse",create:"Create",delete:"Delete",reset:"Reset",save:"Save"},ariaLabels:{collapse:"Collapse",deleteTemplate:"Delete {{name}}",editTemplate:"Edit {{name}}",expand:"Expand",expandPrompt:"Expand prompt to fullscreen",expandToFullscreen:"Expand to fullscreen",promptOverride:"{{name}} prompt override ({{key}})",promptOverrideFullscreen:"{{name}} prompt override ({{key}}) - fullscreen",templatePromptFullscreen:"Template prompt - fullscreen",viewFullPromptFor:"View full prompt for {{name}}"},badges:{builtin:"Built-in",custom:"Custom",customized:"customized",overridesBuiltin:"Overrides built-in"},confirmations:{deleteTemplate:'Delete "{{name}}"?'},descriptions:{assignmentNote:"Role assignments are stored in the agentPrompts configuration. Custom templates override built-ins by ID.",assignments:"Assign specific templates to agent roles. When a role has an assignment, that template will be used instead of the default built-in.",builtinTemplates:"These templates are provided by Fusion and cannot be modified.",customTemplates:"Create custom templates to override built-in prompts for specific roles.",overrides:"Customize specific segments of AI agent prompts. Edits override built-in defaults. Use the Reset button to restore the original default for any prompt."},editor:{editTemplate:"Edit Custom Template",newTemplate:"New Custom Template"},emptyStates:{noCustomTemplates:"No custom templates yet. Create one to get started."},errors:{idConflict:'Template ID "{{templateId}}" conflicts with a built-in template. Please use a different name.',nameRequired:"Template name is required"},hints:{customOverrideActive:"Custom override active. Click Reset to restore default.",noOverrideSet:"No override set. Using built-in default ({{chars}} chars)."},labels:{builtIn:"built-in",custom:"Custom",description:"Description",name:"Name",note:"Note",overridesDefault:"overrides default",prompt:"Prompt",role:"Role"},options:{useDefault:"Use default"},placeholders:{description:"Brief description of this template",prompt:"Enter the system prompt for this template...",promptDefault:"Default: {{preview}}",templateName:"e.g. My Custom Executor"},sections:{builtinTemplates:"Built-in Templates",customTemplates:"Custom Templates"},tabs:{assignments:"Assignments",overrides:"Overrides",templates:"Templates"},titles:{delete:"Delete",edit:"Edit",editPrompt:"Edit Prompt",viewFullPrompt:"View full prompt"}},d={always:"Always require approval",alwaysApproveDelete:"Always require approval for fn_agent_delete",alwaysDesc:"All fn_agent_create/fn_agent_delete requests require approval unless caller is trusted.",approvalMode:"Approval mode",helpText:"These settings govern durable provisioning tools only: <code>fn_agent_create</code> and <code>fn_agent_delete</code>. Ephemeral <code2>fn_spawn_agent</code2> requests stay under the task/agent mutation approval gate (FN-3973).",never:"Never require approval",neverDesc:"Allow provisioning without approval for non-privileged callers.",trustedAgentIds:"Trusted agent IDs",trustedAgentIdsPlaceholder:"agent-abc123",trustedOnly:"Trusted-only",trustedOnlyDesc:"Trusted roles/agent IDs bypass approval; other callers require approval.",trustedRoles:"Trusted roles",trustedRolesPlaceholder:"reviewer, ceo"},c=JSON.parse(`{"activate":"Activate","activeAgents_one":"Active Agents ({{count}})","activeAgents_other":"Active Agents ({{count}})","activePrefix":"Active: ","advancedSettingsDesc":"Low-level configuration options for this agent.","advancedSettingsTitle":"Advanced Settings","agent":"Agent","agentControls":"Agent controls","agentLogs":"Agent Logs","agentMail":"Agent Mail","agentModelLabel":"Agent Model","agentPlural":"agents","agentsFound_one":"{{count}} agent{{plural}} found","agentsFound_other":"{{count}} agent{{plural}} found","agentSingular":"agent","agentsLabel":"Agents","agentSoulLabel":"Agent Soul","aiInterview":"AI Interview","allChangesSaved":"All changes saved","allowParallelExecution":"Allow Parallel Execution","allowParallelExecutionHint":"Allow this agent to run multiple heartbeats concurrently.","allTime":"All time","alreadyOnDefault":"Already on default","applyPreset":"Apply preset","assignedSkills":"Assigned Skills","auto":"Auto","autoClaimHint":"Agent will automatically claim tasks that match its skills.","autoClaimRelevantTasks":"Auto-claim relevant tasks","avatarLabel":"Avatar","avatarRemoved":"Avatar removed","avatarUploaded":"Avatar uploaded","back":"Back","backToAgents":"Back to Agents","backToInbox":"Back to Inbox","backToOrgChart":"Back to org chart","backToOutbox":"Back to Outbox","boardView":"Board view","browseCatalog":"Browse Catalog","budgetExhaustedBody":"This agent has exhausted its token budget and will not run until the budget resets.","budgetExhaustedTitle":"Budget Exhausted","budgetPeriodHint":"How often the token budget resets.","budgetPeriodLabel":"Budget Period","budgetResetFailed":"Failed to reset budget","budgetResetSuccess":"Budget reset successfully","budgetSettingsDesc":"Control token usage limits and reset schedule for this agent.","budgetSettingsTitle":"Budget Settings","budgetUsageDisplay":"{{used}} / {{limit}} tokens used","builtInModel":"Built-in model","bulkActionFailed":"Bulk action failed","bulkActions":"Bulk Actions","bulkActionsLoadFailed":"Failed to load bulk agent actions: {{error}}","bulkAgentActions":"Bulk agent actions","bulkConfirmMessage_one":"{{action}} {{count}} agent(s) in this project?","bulkConfirmMessage_other":"{{action}} {{count}} agent(s) in this project?","bulkNoEligible":"No eligible agents","bulkResult_one":"{{action}} {{successCount}} {{agentWord}}; skipped {{skippedCount}}","bulkResult_other":"{{action}} {{successCount}} {{agentWord}}; skipped {{skippedCount}}","bulkResultWithFailures":"{{action}} {{count}} agent(s), {{failed}} failed","bundleDescription":"Configure how this agent's code bundle is managed.","bundleEntryFileHint":"The entry file for the managed bundle.","bundleEntryFileLabel":"Entry File","bundleExternal":"External","bundleExternalHint":"Point to an externally managed bundle path.","bundleExternalPathHint":"Absolute path to the external bundle file.","bundleExternalPathLabel":"External Bundle Path","bundleExternalPathPlaceholder":"/path/to/bundle.js","bundleFilesHint":"Source files included in this agent's bundle.","bundleFilesLabel":"Bundle Files","bundleManaged":"Managed","bundleManagedHint":"Fusion manages the bundle automatically.","bundleModeLabel":"Bundle Mode","bundleNone":"None","bundleSelectMode":"Select a bundle mode","bundleTitle":"Bundle","cacheHitRatio":"Cache Hit Ratio","cacheReadTokens":"Cache Read","cacheWindowSummary":"{{percent}}% ({{cached}} / {{written}} / {{input}} / {{tasks}})","cacheWriteTokens":"Cache Write","cancel":"Cancel","cancelCustomInterval":"Cancel custom interval","center":"Center","chainOfCommand":"Chain of Command","change":"Change","changeRole":"Click to change role","charactersCount_one":"{{count}} characters","charactersCount_other":"{{count}} characters","chooseFile":"Choose File","clearAgents":"Clear agents","clearSkills":"Clear skills","clickToChangeRole":"Click to change role","close":"Close","closeAriaLabel":"Close","combinedTokens":"Combined Tokens","company":"Company","configDescription":"Configure this agent's identity, model, and behavior settings.","configTitle":"Configuration","connecting":"Connecting...","connectingStream":"Connecting to log stream...","connectionLost":"Connection lost. Retrying...","context":"Context","controls":"Controls","coordinationOnlyAgent":"Coordination-only agent","coordinationOnlyHint":"This agent coordinates work but does not execute tasks directly.","copyId":"Copy ID","create":"Create","createAgent":"Create agent","created":"Agent \\"{{name}}\\" created","createError":"Failed to create agent: {{error}}","createSuccess":"Agent \\"{{name}}\\" created","creating":"Creating...","creatingAgent":"Creating agent...","currentAgent":"Current agent","currentInput":"Current input: {{method}}","currentPath":"Current path","currentUsage":"Current Usage","currentWork":"Current Work","customHeartbeatAria":"Custom heartbeat interval in minutes for {{name}}","customHeartbeatOption":"Custom...","customizeForAgent":"Customize for this agent","daily":"Daily","dangerZone":"Danger Zone","dangerZoneDesc":"Irreversible actions — proceed with caution.","delete":"Delete","deleteAgent":"Delete Agent","deleteConfirm":"Are you sure you want to delete this agent? This cannot be undone.","deleted":"Agent deleted","deleteError":"Failed to delete agent: {{error}}","deleteFailed":"Failed to delete agent","deleteMessage":"Delete agent \\"{{name}}\\"? This cannot be undone.","deleteSuccess":"Agent \\"{{name}}\\" deleted","deleteTitle":"Delete Agent","deletionNotAvailable":"Deletion is not available while the agent is running.","deletionPermanent":"This will permanently delete the agent and all associated data.","detailLoadingLabel":"Agent detail loading","details":"Details","dialogAriaLabel":"Create new agent","dialogTitle":"New Agent","employeesTitle":"Employees","emptySubtitle":"Create an agent to get started","emptyTitle":"No agents found","engineerBacklogAutoClaim":"Engineer Backlog Auto-Claim","engineerBacklogAutoClaimHint":"Per-agent override of the project default. Allows this engineer-role agent to auto-claim unowned backlog tasks; explicit assignment and delegation are unchanged.","errors":"Errors","executionPrompt":"Execution Prompt","executionPromptNotCaptured":"Execution prompt not captured","failedToImport":"Failed to import agents","failedToLoadCompanies":"Failed to load companies","failedToParseDirectory":"Failed to parse AGENTS.md files from selected directory","failedToParseManifest":"Failed to parse manifest","failedToReadFile":"Failed to read file","fieldHeartbeatPath":"Heartbeat Procedure Path","fieldIcon":"Icon","fieldInstructionsPath":"Instructions Path","fieldInstructionsText":"Inline Instructions","fieldMaxTurns":"Max Turns","fieldMemory":"Agent Memory","fieldName":"Name","fieldReportsTo":"Reports To","fieldRole":"Role","fieldSkills":"Skills","fieldSoul":"Soul","fieldThinking":"Thinking","fieldThinkingLevel":"Thinking Level","fieldTitle":"Title","fileContentHint":"Edit the file contents directly.","fileContentLabel":"File Content","fileContentPlaceholder":"File content will appear here...","fileHint":".md and .txt files supported","fileLoadError":"Failed to load file","fileSaved":"File saved","filterAll":"All States","filterByState":"Filter agents by state","fit":"Fit","fixValidationErrors":"Fix validation errors before saving","fixValidationToSave":"Fix validation errors to save","from":"From","generateHint":"Describe your agent's role and let AI generate a specification","generateWithAI":"Generate with AI","generateWithAiLabel":"Generate agent with AI","generation":{"collapse":"Collapse","expand":"Expand","generate":"Generate","info":"Describe your agent's role and the AI will generate a complete specification including system prompt, suggested configuration, and more.","loading":"Generating agent specification…","previewDescription":"Description","previewMaxTurns":"Max Turns","previewRole":"Role","previewThinking":"Thinking","previewTitle":"Title","rateLimited":"Too many requests. Please wait a moment and try again.","regenerate":"Regenerate","roleHint":"Describe what your agent should do","roleLabel":"Role Description","rolePlaceholder":"e.g. \\"Senior frontend code reviewer who specializes in React accessibility\\"","systemPrompt":"System Prompt","title":"Generate Agent","useThis":"Use This"},"healthError":"Error","heartbeat":"Heartbeat:","heartbeatAndHealth":"Heartbeat & Health","heartbeatClampedToMin_one":"Heartbeat interval set to 5 minutes (minimum). {{count}} minute was below the 5-minute minimum.","heartbeatClampedToMin_other":"Heartbeat interval set to 5 minutes (minimum). {{count}} minutes was below the 5-minute minimum.","heartbeatCustom":"Custom heartbeat run","heartbeatEnabled":"Heartbeat Enabled","heartbeatEnabledHint":"Allow this agent to run on a scheduled heartbeat.","heartbeatEnterMinutes":"Please enter a heartbeat interval in minutes","heartbeatFileEditMode":"Edit mode","heartbeatFileEditorHint":"Edit the heartbeat procedure file directly.","heartbeatFileEmptyPreview":"Empty file — switch to edit mode to add content.","heartbeatFileLoadFailed":"Failed to load heartbeat file","heartbeatFilePlaceholder":"Heartbeat procedure content...","heartbeatFilePreviewMode":"Preview mode","heartbeatFileSaved":"Heartbeat file saved","heartbeatFileSaveFailed":"Failed to save heartbeat file","heartbeatIntervalHint":"How frequently the heartbeat runs, in seconds.","heartbeatIntervalLabel":"Heartbeat Interval (s)","heartbeatIntervalUpdated":"Heartbeat interval updated to {{interval}} for {{name}}","heartbeatIntervalUpdateFailed":"Failed to update heartbeat interval: {{error}}","heartbeatMustBeNumber":"Heartbeat interval must be a valid number","heartbeatMustBePositive":"Heartbeat interval must be greater than 0","heartbeatOverdue":"Heartbeat overdue {{elapsed}}","heartbeatPathHint":"Path to the agent's heartbeat procedure path, typically .fusion/agents/ceo-agent2736/HEARTBEAT.md. Legacy id-only default paths still work.","heartbeatPathPlaceholder":"e.g. .fusion/agents/ceo-agent2736/HEARTBEAT.md","heartbeatProcedureDesc":"The heartbeat procedure guides what this agent does on each scheduled run.","heartbeatProcedureDescSuffix":"You can customize it here or leave it on the built-in default.","heartbeatProcedureFileLabel":"Heartbeat Procedure File","heartbeatProcedureFileReady":"Heartbeat procedure file ready","heartbeatProcedurePathSet":"Heartbeat procedure path set","heartbeatProcedureTitle":"Heartbeat Procedure","heartbeatPromptTemplate":"Heartbeat Prompt Template","heartbeatRunFailed":"Failed to start heartbeat run: {{error}}","heartbeatRunStarted":"Heartbeat run started for {{name}}","heartbeatRunsWillAppear":"Heartbeat runs will appear here.","heartbeatScopeDiscipline":"Heartbeat Scope Discipline","heartbeatSettingsDesc":"Control the scheduling and behavior of this agent's heartbeat.","heartbeatSettingsTitle":"Heartbeat Settings","heartbeatSpeed":"Heartbeat Speed","heartbeatSpeedHint":"Scales all agent heartbeat intervals. ×0.5 = twice as fast, ×2.0 = twice as slow. Default: ×1.0","heartbeatSpeedPreset":"Heartbeat speed preset","heartbeatSpeedSaveFailed":"Failed to save heartbeat multiplier: {{error}}","heartbeatSpeedSet":"Heartbeat speed set to ×{{value}}","heartbeatStarted":"Heartbeat started","heartbeatStartFailed":"Failed to start heartbeat","heartbeatTimeoutHint":"Maximum time in seconds a heartbeat run may take before being killed.","heartbeatTimeoutLabel":"Heartbeat Timeout (s)","heartbeatUpgradeFailed":"Failed to upgrade heartbeat procedure","iconLabel":"Icon","iconPlaceholder":"e.g. 🤖","idCopied":"ID copied to clipboard","idleNoTask":"Idle — no task assigned","immediate":"Immediate","import":"Import","importAgents":"Import Agents","importButton":"Import {{label}}","importComplete":"Import Complete","importDescription":"Import agents from an Agent Companies package. Browse the companies.sh catalog to discover published agents, upload an AGENTS.md file, select a directory, or paste manifest content.","importingAgents_one":"Importing {{count}} agent{{plural}}...","importingAgents_other":"Importing {{count}} agent{{plural}}...","importingAgentsAndSkills":"Importing {{agentCount}} agent{{agentPlural}} and {{skillCount}} skill{{skillPlural}}...","importingSkills_one":"Importing {{count}} skill{{plural}}...","importingSkills_other":"Importing {{count}} skill{{plural}}...","importReportsTo":" · reports to {{agent}}","importSkills":" · skills: {{skills}}","inbox":"Inbox","inheritingProjectDefault":"Inheriting project default","inheritProjectDefault":"Inherit project default","inlineInstructions":"Inline Instructions","inlineMemoryFieldHint":"This memory is embedded directly in the agent's context.","inlineMemoryHint":"Short-form memory injected on every heartbeat.","inlineMemoryLabel":"Inline Memory","inProgress":"In progress","input":"Input","inputTokens":"Input","installs":"installs","instructionsDescription":"Persistent instructions that guide this agent's behavior.","instructionsEmptyPreview":"No instructions yet — switch to edit mode to add some.","instructionsFileEditorDesc":"Edit the linked instructions file directly.","instructionsFileEditorTitle":"Instructions File","instructionsFileSaved":"Instructions file saved","instructionsFileSaveFailed":"Failed to save instructions file","instructionsHint":"These instructions are prepended to every prompt this agent receives.","instructionsPathHint":"Path to a markdown file containing this agent's instructions.","instructionsPathLabel":"Instructions File Path","instructionsPathPlaceholder":"/path/to/instructions.md","instructionsPlaceholder":"Enter instructions for this agent...","instructionsSaved":"Instructions saved","instructionsSaveFailed":"Failed to save instructions","instructionsTextPlaceholder":"Add custom behavior instructions...","instructionsTitle":"Instructions","intentPrompt":"What do you want this agent to do?","interval":"Interval","interviewDraftApplied":"Interview draft applied","kTokens_one":"{{count}}k tokens","kTokens_other":"{{count}}k tokens","last24h":"Last 24h","last7d":"Last 7 days","lastHeartbeat":"Last heartbeat","lastHeartbeatAt":"Last: {{time}}","latestRunLabel":"Latest run","layoutAuto":"Auto","layoutAutoAria":"Automatic layout","layoutHorizontal":"Horizontal","layoutHorizontalAria":"Horizontal layout","layoutVertical":"Vertical","layoutVerticalAria":"Vertical layout","listView":"List view","lite":"Lite","live":"Live","liveLogs":"Live logs","liveRun":"Live run","loadError":"Failed to load agents: {{error}}","loading":"Loading agent...","loadingAgents":"Loading agents...","loadingCompanies":"Loading companies…","loadingDetails":"Loading run details...","loadingEligibility":"Loading eligibility…","loadingEligible":"Loading eligible agents...","loadingEmployees":"Loading employees...","loadingFile":"Loading file...","loadingFileContent":"Loading file content...","loadingLogs":"Loading logs...","loadingMailbox":"Loading mailbox...","loadingMemoryFiles":"Loading memory files...","loadingModels":"Loading models…","loadingOrgChart":"Loading org chart...","loadingReportingChain":"Loading reporting chain...","loadingRuns":"Loading runs...","loadingRuntimes":"Loading runtimes...","loadingSkillContent":"Loading skill content...","loadingTasks":"Loading tasks...","loadTasksFailed":"Failed to load tasks","logEntries_one":"{{count}} entries","logEntries_other":"{{count}} entries","logsWillAppear":"Logs will appear here once the agent starts running.","logsWillAppearActive":"Logs will appear here.","mailboxLoadFailed":"Failed to load mailbox","mailFrom":"From","mailSent":"Sent","mailTo":"To","mailToLabel":"To","mailType":"Type","manifestContent":"Manifest content","manifestPlaceholder":"---\\nname: CEO\\ntitle: Chief Executive Officer\\nreportsTo: null\\nskills:\\n - review\\n---\\nAgent instructions go here...","maxConcurrentRunsHint":"Maximum number of heartbeats that can run simultaneously.","maxConcurrentRunsLabel":"Max Concurrent Runs","maxTurns":"Max turns","memoryDescription":"Manage this agent's long-term and working memory.","memoryEmptyPreview":"No inline memory yet — switch to edit mode to add some.","memoryFileEditMode":"Edit mode","memoryFileEmptyPreview":"Empty file — switch to edit mode to add content.","memoryFileLoadFailed":"Failed to load memory file","memoryFileMeta":"{{size}} bytes · updated {{date}}","memoryFilePlaceholder":"Memory file content...","memoryFilePreviewMode":"Preview mode","memoryFileSaved":"Memory file saved","memoryFileSaveFailed":"Failed to save memory file","memoryFilesHint":"Files stored in the agent's memory layers.","memoryFilesHintSuffix":"Select a file to view or edit its contents.","memoryFilesLabel":"Memory Files","memoryFilesLoadFailed":"Failed to load memory files","memoryLayerDaily":"Daily","memoryLayerDailyDesc":"Short-term notes refreshed each day.","memoryLayerDreams":"Dreams","memoryLayerDreamsDesc":"Synthesized reflections from recent activity.","memoryLayerLongTerm":"Long-term","memoryLayerLongTermDesc":"Persistent facts and knowledge retained across sessions.","memoryPlaceholder":"Enter inline memory for this agent...","memoryReadOnly":"Read-only","memorySaved":"Memory saved","memorySaveFailed":"Failed to save memory","memoryTitle":"Memory","memoryTooLong":"Memory content is too long","messageResponseModeHint":"When this agent responds to incoming messages.","messageResponseModeLabel":"Message Response Mode","minutesUnit":"min","modalTitle":"Agents","model":"Model","modelDefault":"default","modelDescription":"Choose the AI model this agent uses for inference.","modelPlaceholder":"Select a model…","modelTitle":"Model","monthly":"Monthly","name":"Name","nameLabel":"Name","namePlaceholder":"Agent name...","never":"Never","newAgent":"New Agent","next":"Next","nextExpected":"Next expected","nextHeartbeat":"Next heartbeat in {{elapsed}}","nextHeartbeatAt":"Next: {{time}}","noActiveAssignment":"No active assignment","noActiveEligible":"No active agents eligible to pause","noActivityYet":"No activity yet","noAgentsFound":"No agents found in the manifest.","noAgentsMdFiles":"Selected directory has no AGENTS.md files","noAgentsToPause":"No agents eligible to pause","noAgentsToPauseHint":"No active or running project agents to pause","noAgentsToResume":"No agents eligible to resume","noAgentsToResumeHint":"No paused project agents to resume","noCompaniesAvailable":"No companies available","noCompaniesMatch":"No companies match your search","noEmployees":"No employees","noEmployeesDesc":"This agent has no direct reports.","noInboxMessages":"No messages in inbox","noInstructionsPath":"No instructions file path set","noLimit":"No limit","noLogEntriesYet":"No log entries yet","noLogsForRun":"No logs for this run","noManager":"No manager","noMemoryFiles":"No memory files","noneUsingBuiltIn":"None (using built-in)","noOutboxMessages":"No messages in outbox","noOutputCaptured":"No output captured","noPausedEligible":"No paused agents eligible to resume","noReportingChain":"No reporting chain","noReset":"No reset","noRunsYet":"No runs yet","noRuntimes":"No runtimes available","noSkillContent":"No skill content available","noSkillMd":"No skill documentation found","noSkillsInPackage":"No skills in package","noTasksAssigned":"No tasks assigned","noTokenUsageYet":"No token usage recorded yet. Token totals appear here once agents run.","notScheduled":"Not scheduled","notSelected":"Not selected","off":"Off","onboarding":{"applyDraftAgent":"Apply draft to agent form","applyDraftSettings":"Apply draft to settings form","continue":"Continue","dialogLabel":"AI Interview","draftIntro":"Review this generated draft. Nothing is applied until you confirm.","draftReady":"Draft ready for review","fieldAgentMemory":"Agent Memory","fieldHeartbeatEnabled":"Heartbeat Enabled","fieldHeartbeatInterval":"Heartbeat Interval","fieldHeartbeatPath":"Heartbeat Procedure Path","fieldIcon":"Icon","fieldInlineInstructions":"Inline Instructions","fieldMaxTurns":"Max Turns","fieldModelHint":"Model Hint","fieldName":"Name","fieldPatternAgent":"Pattern Agent","fieldReportsTo":"Reports To","fieldRole":"Role","fieldRuntimeHint":"Runtime Hint","fieldSkills":"Skills","fieldSoul":"Soul","fieldTemplate":"Template","fieldThinkingLevel":"Thinking Level","fieldTitle":"Title","intentLabelCreate":"What should this new agent own?","intentLabelEdit":"What should this agent change or improve?","no":"no","notSet":"Not set","sectionConfiguration":"Configuration","sectionIdentity":"Identity","sectionRationale":"Rationale","sectionRuntimeHints":"Runtime Hints","startInterview":"Start interview","startOnboarding":"Start onboarding","thinking":"Thinking...","title":"Agent Onboarding","updatedDraftReady":"Updated draft ready for review","yes":"yes"},"onHeartbeat":"On heartbeat","openDetails":"Open details for {{name}}","optional":"(optional)","orgChartCanvas":"Org chart canvas","orgChartCenter":"Center org chart","orgChartEmployees":"{{name}} employees","orgChartFit":"Fit org chart","orgChartLoadFailed":"Failed to load org chart: {{error}}","orgChartView":"Org Chart view","orgChartZoomIn":"Zoom in org chart","orgChartZoomOut":"Zoom out org chart","orPasteManifest":"or paste manifest content","outbox":"Outbox","output":"Output","outputTokens":"Output","overview":"Overview","overviewLabel":"Agents overview","parsing":"Parsing…","pause":"Pause","pauseAction":"Pause","pauseAgentsFailed":"Failed to pause agents: {{error}}","pauseAll":"Pause All","pauseAllAgents":"Pause All Agents","pauseAllConfirm_one":"Pause {{count}} agent in this project?","pauseAllConfirm_other":"Pause {{count}} agents in this project?","pauseAllTitle":"Pause All Agents","pauseCountHint_one":"Pause {{count}} active/running agent","pauseCountHint_other":"Pause {{count}} active/running agents","pauseCountHint_one_one":"","pauseCountHint_one_other":"","pauseCountHint_other_one":"","pauseCountHint_other_other":"","pausedPast":"paused","pausedSummary_one":"Paused {{count}} agent; skipped {{skipped}}","pausedSummary_other":"Paused {{count}} agents; skipped {{skipped}}","pendingApprovals":"Pending Approvals","pendingApprovalsCount_one":"{{count}} pending approvals","pendingApprovalsCount_other":"{{count}} pending approvals","performance":{"avgDuration":"Avg Duration","noData":"No performance data yet","reflections":"Reflections","successRate":"Success Rate","tasksCompleted":"Tasks Completed","tasksFailed":"Tasks Failed"},"permissionPolicyFailed":"Failed to update permission policy","permissionPolicyUpdated":"Permission policy updated","permissionsDescription":"Control what this agent is allowed to do.","permissionsTitle":"Permissions","pluginRuntime":"Plugin runtime","presetsHeader":"Choose a preset persona to prefill role, identity, soul, and instructions","preview":"Preview","promptSize":"Prompt size","promptSizeChart":"Prompt Size Chart","provideManifest":"Please provide manifest content","ratings":{"addError":"Failed to add rating: {{error}}","addRating":"Add Rating","addSuccess":"Rating added","categoryAverages":"Category Averages","categoryCommunication":"Communication","categoryOther":"Other","categoryQuality":"Quality","categoryReliability":"Reliability","categorySelect":"Select category...","categorySpeed":"Speed","commentPlaceholder":"Optional comment...","count_one":"{{count}} ratings","count_other":"{{count}} ratings","deleteError":"Failed to delete rating: {{error}}","deleteRating":"Delete rating","deleteSuccess":"Rating deleted","historyTitle":"Rating History","loadError":"Failed to load ratings: {{error}}","loading":"Loading ratings...","noRatings":"No ratings yet","starCount_one":"{{count}} star","starCount_other":"{{count}} stars","submitRating":"Submit Rating","submitting":"Submitting...","title":"User Ratings"},"recentRuns":"Recent Runs","reflections":{"agentNotFound":"This agent is no longer available. It may have been deleted.","generateError":"Failed to generate reflection: {{error}}","generateSuccess":"Reflection generated successfully","getStarted":"Trigger a reflection to get started","historyTitle":"Reflection History","insights":"Insights","insufficientHistory":"Not enough history to generate a reflection yet","loadError":"Failed to load reflections: {{error}}","loading":"Loading reflections...","loadingEvaluation":"Loading evaluation...","metricAvgDuration":"Avg Duration:","metricErrors":"Errors:","metricFailed":"Failed:","metrics":"Metrics","metricTasks":"Tasks:","noReflections":"No reflections yet","reflecting":"Reflecting...","reflectNow":"Reflect Now","reflectNowTitle":"Generate a manual reflection","sectionTitle":"Performance, Reflections & Ratings","suggestedImprovements":"Suggested Improvements"},"refresh":"Refresh","removeAvatar":"Remove avatar","replyingTo":"Replying to","reportsToLabel":"Reports to","resetBudgetUsage":"Reset Budget Usage","resetDayHint":"The day of the week or month when the budget resets.","resetDayLabel":"Reset Day","resetDayMonthly":"Day of month (1–28)","resetDayWeekly":"Day of week (0=Sun)","resetting":"Resetting...","resizeSidebar":"Resize agents sidebar","result":"Result","resultCreated_one":"{{count}} created","resultCreated_other":"{{count}} created","resultErrors_one":"{{count}} error{{plural}}","resultErrors_other":"{{count}} error{{plural}}","resultSkipped_one":"{{count}} skipped (already exist)","resultSkipped_other":"{{count}} skipped (already exist)","resume":"Resume","resumeAction":"Resume","resumeAgentsFailed":"Failed to resume agents: {{error}}","resumeAll":"Resume All","resumeAllAgents":"Resume All Agents","resumeAllConfirm_one":"Resume {{count}} agent in this project?","resumeAllConfirm_other":"Resume {{count}} agents in this project?","resumeAllTitle":"Resume All Agents","resumeCountHint_one":"Resume {{count}} paused agent","resumeCountHint_other":"Resume {{count}} paused agents","resumeCountHint_one_one":"","resumeCountHint_one_other":"","resumeCountHint_other_one":"","resumeCountHint_other_other":"","resumedPast":"resumed","resumedSummary_one":"Resumed {{count}} agent; skipped {{skipped}}","resumedSummary_other":"Resumed {{count}} agents; skipped {{skipped}}","retry":"Retry","reviewConfiguration":"Review generated configuration","reviewHint":"Review your agent configuration before creating.","role":"Role","roleCustom":"Custom","roleEngineer":"Engineer","roleExecutor":"Executor","roleLabel":"Role","roleLabel2":"Role","roleMerger":"Merger","roleReviewer":"Reviewer","roleScheduler":"Scheduler","roleTriage":"Triage","roleUpdated":"Agent role updated to {{role}}","roleUpdateError":"Failed to update role: {{error}}","roleUpdateFailed":"Failed to update role: {{error}}","roleUpdateSuccess":"Agent role updated to {{role}}","runAriaLabel":"Run {{id}}","runDetailsFailed":"Failed to load run details","runMissedHeartbeat":"Run missed heartbeat","runMissedHeartbeatHint":"Trigger a run if the agent misses a scheduled heartbeat.","running":"Running","runNow":"Run Now","runNowAria":"Run now for {{name}}","runNowFor":"Run now for {{name}}","runs":{"empty":"No runs yet","loading":"Loading runs…","stop":"Stop","stopAriaLabel":"Stop run","stopMessage":"Stop this run?","stopTitle":"Stop Run"},"runsCount_one":"{{count}} run","runsCount_other":"{{count}} runs","runsSuccessRate":"{{rate}}% success rate","runStarted":"Run started","runsToday":"Runs today","runStopped":"Run stopped","runtime":"Runtime","runtimeEmpty":"No plugin runtimes available","runtimeLabel":"Runtime","runtimeMode":"Runtime mode","runtimePlaceholder":"Select a plugin runtime…","runtimeSource":"Runtime Source","runtimeSourceBuiltIn":"Built-in Model","runtimeSourcePlugin":"Plugin Runtime","save":"Save","saveBeforeSwitch":"Save changes before switching files","saveCustomInterval":"Save custom interval","saveFailed":"Save failed","saveFile":"Save File","saveHeartbeatFile":"Save Heartbeat File","saveInstructions":"Save Instructions","saveMemory":"Save Memory","saveMemoryFile":"Save Memory File","saveSettings":"Save Settings","saveSoul":"Save Soul","saving":"Saving…","savingChanges":"Saving changes...","savingFile":"Saving file...","scopeDisciplineHint":"Controls how strictly the agent follows its scope during heartbeats.","searchCompanies":"Search companies…","sectionConfiguration":"Configuration","sectionIdentity":"Identity","sectionRuntime":"Runtime","selectAgent":"Select agent {{name}}","selectAgentHint":"Choose an agent from the sidebar to view details","selectAllAgents":"Select all agents","selectAllSkills":"Select all skills","selectAnAgent":"Select an agent","selectCompany":"Please select a company from the catalog","selectDirectory":"Select Directory","selected":"Selected:","selectedAgentLabel_one":"{{count}} Agent{{plural}}","selectedAgentLabel_other":"{{count}} Agent{{plural}}","selectedSkillLabel_one":"{{count}} Skill{{plural}}","selectedSkillLabel_other":"{{count}} Skill{{plural}}","selectMemoryFile":"Select a memory file","selectModel":"Model","selectModelPlaceholder":"Select a model…","selectRuntime":"Select a runtime","selectSkill":"Select skill {{name}}","setHeartbeatAria":"Set heartbeat interval for {{name}}","settingsSaved":"Settings saved","settingsSaveFailed":"Failed to save settings","setupModeAriaLabel":"Agent setup mode","showSystemAgents":"Show system agents","skills":"Skills","skillsDescription":"Manage the skills available to this agent.","skillsErrors_one":"{{count}} skill{{plural}} error{{pluralError}}","skillsErrors_other":"{{count}} skill{{plural}} error{{pluralError}}","skillsFound_one":"{{count}} skill{{plural}} found","skillsFound_other":"{{count}} skill{{plural}} found","skillsHint":"Optional skills to assign to this agent","skillsImported_one":"{{count}} skill{{plural}} imported","skillsImported_other":"{{count}} skill{{plural}} imported","skillsNone":"No skills assigned","skillsSelected_one":"{{count}} skill selected","skillsSelected_other":"{{count}} skills selected","skillsSkipped_one":"{{count}} skill{{plural}} skipped (already exist)","skillsSkipped_other":"{{count}} skill{{plural}} skipped (already exist)","skillsTitle":"Skills","skipHeartbeatWhenIdle":"Skip heartbeat when idle","skipHeartbeatWhenIdleHint":"Avoid running heartbeats when the agent has nothing to do.","soulDescription":"The soul defines this agent's personality, values, and communication style.","soulEmptyPreview":"No soul yet — switch to edit mode to add one.","soulHint":"Describe who this agent is — its character, tone, and values.","soulPlaceholder":"Describe this agent's soul...","soulSaved":"Soul saved","soulSaveFailed":"Failed to save soul","soulTitle":"Soul","soulTooLong":"Soul content is too long","start":"Start","starting":"Starting...","startOnboarding":"Start onboarding","stateActive":"Active","stateAll":"All States","stateError":"Error","stateIdle":"Idle","statePaused":"Paused","stateRunning":"Running","stateUpdated":"Agent state updated","stateUpdateError":"Failed to update state: {{error}}","stateUpdateFailed":"Failed to update agent state","stateUpdateSuccess":"Agent state updated to {{state}}","status":"Status","statusCount":"{{activeCount}} active · {{runningCount}} running","step":"Step {{number}}{{total}}: {{name}}","stepAriaLabel":"Step {{step}}","stop":"Stop","stopActiveRun":"Stop active run","stopActiveRunFor":"Stop active run for {{name}}","stopRun":"Stop Run","stopRunConfirm":"Are you sure you want to stop this run?","stopRunFailed":"Failed to stop run","stopRunTitle":"Stop Run","strict":"Strict","successRate":"Success rate","systemDefault":"System default","systemDefaultOnHeartbeat":"System default (on heartbeat)","systemPrompt":"System Prompt","systemPromptNotCaptured":"System prompt not captured","tabConfig":"Config","tabCustom":"Custom agent","tabDashboard":"Dashboard","tabEmployees":"Employees","tabInstructions":"Instructions","tabLogs":"Logs","tabMail":"Mail","tabMemory":"Memory","tabPresets":"Preset personas","tabReflections":"Reflections","tabRuns":"Runs","tabSoul":"Soul","tabTasks":"Tasks","taskUpdated":"Task updated","templateCompact":"Compact","templateDefault":"Default","thinkingHigh":"High","thinkingLevel":"Thinking level","thinkingLow":"Low","thinkingMedium":"Medium","thinkingMinimal":"Minimal","thinkingOff":"Off","thinkingXhigh":"Very High","throughput":"Throughput","timeSinceLastHeartbeat":"Time since last heartbeat","title":"Agents","titleLabel":"Title","titlePlaceholder":"e.g. Senior Engineer","tokenBudgetHint":"Maximum tokens this agent can use per budget period.","tokenBudgetLabel":"Token Budget","tokenStatistics":"Agent token usage statistics","tokenUsage":"Token Usage","tokenUsageByAgent":"Token Usage by Agent","tokenUsageTotals":"Token usage totals","total":"Total","totalRuns":"Total runs","unknownManager":"Unknown manager","unreadMessage":"Unread","upgradeHint":"Upgrade from","upgradeHintSuffix":"to the latest default.","upgradeHintTo":"to","upgradeToDefault":"Upgrade to default","upgradeToDefaultAriaLabel":"Upgrade heartbeat procedure to default","upgrading":"Upgrading...","uploadAvatar":"Upload avatar","usageThresholdHint":"Send a warning when usage reaches this percentage of the budget.","usageThresholdLabel":"Usage Warning Threshold (%)","useGlobalDefault":"Use global default","viewAgent":"View agent","viewDetailsFor":"View details for {{name}}","viewHeartbeatMarkdown":"View heartbeat markdown","viewLiveLogs":"View live run logs","viewLiveRun":"View live run details","viewLiveRunAria":"View live run details for {{name}}","viewLogsFor":"View live logs for {{taskId}}","viewSkillDetails":"View skill details","viewTask":"View task","waitingForActivity":"Waiting for activity...","waitingForQuestion":"Waiting for AI question...","waitingOutput":"Waiting for output...","weekly":"Weekly","workingOn":"Working on","zoomIn":"Zoom in","zoomOut":"Zoom out"}`),u={backendError:{failedFetch:"Failed to fetch projects"},testMode:"Test mode — no real AI calls"},p="Fusion",m={dismissBanner:"Dismiss approval notification banner",needAttention_one:"{{count}} approval {{noun}} need your attention",needAttention_other:"{{count}} approval {{noun}} need your attention",openMailbox:"Open Mailbox",requestPlural:"requests",requests:"Approval requests",requestSingular:"request"},g={clearAndRetry:"Clear token and retry",pasteToken:"Paste token",relogin:"Re-login",reloginRequired:"Re-login required: {{provider}}. Your {{provider}} session expired — sign in again to keep agents running.",reloginRequiredMultiple:"Re-login required: {{providers}}",replacementToken:"Replacement token",setAndReload:"Set token and reload",tokenRecoveryDescription:"This dashboard session can't authenticate with the daemon. Set a replacement token or clear the current token and retry.",tokenRequired:"Authentication token required"},h={changeLaunchMode:"Change Launch Mode…",connectionError:"Can't reach the Fusion backend",couldNotLoad:"Fusion couldn't load your projects right now. Please make sure the backend is running and try again.",error:"Error: {{error}}",manageConnection:"Manage Connection",retryConnection:"Retry Connection",retrying:"Retrying…"},f={confirmMessage:"This session is active in another tab. Open anyway?",confirmTitle:"Open Active Session",dismissButton:"Dismiss",pillLabel_one:"AI {{count}}",pillLabel_other:"AI {{count}}",pillTitle_one:"{{count}} background AI task",pillTitle_other:"{{count}} background AI task",pillTitleWithInput_one:"{{count}} background AI task ({{needsInput}} needs input)",pillTitleWithInput_other:"{{count}} background AI task ({{needsInput}} needs input)",popoverHeader:"Background Tasks",status:{activeElsewhere:"active in another tab",failed:"Failed",generating:"generating...",needsInput:"needs input"},typeLabel:{cliAgent:"CLI Agent",milestoneInterview:"Milestone Interview",missionInterview:"Mission Interview",planning:"Planning",sliceInterview:"Slice Interview",subtask:"Subtask Breakdown"}},b={archived:"Archived",done:"Done",inProgress:"In Progress",inReview:"In Review",rejection:{capacityExhausted:"That column is at capacity. Try again when a slot frees up.",guardRejected:"This move is not allowed by the workflow.",mergeBlocked:"This task is blocked from completing until its merge step finishes.",promoteRejected:"This card could not be promoted.",unknownColumn:"That column doesn't exist in this task's workflow.",workflowMismatch:"Drag can't move a card between workflows. Use the workflow switcher instead."},todo:"To Do",triage:"Triage",workflow:{edit:"Edit workflows",new:"New workflow"}},v={abandonGroup:"Abandon group",autoMergeEnabled:"Auto-merge enabled",collapseLabel:"Collapse branch group",completionText:"{{landed}} of {{total}} members finished",expandLabel:"Expand branch group",groupLabel:"Group {{id}}",loadError:"Failed to load branch group",loading:"Loading branch group…",mergeIntoMain:"Merge group into main",openPr:"Open PR",unavailable:"Branch group unavailable"},k={prNumber:"PR #{{number}}"},y={dismiss:"Dismiss capacity warning",risk:"Capacity risk:",status:"Todo {{todoCount}} (threshold {{threshold}}) · In Progress {{inProgress}} · In Review {{inReview}} · Idle agents {{idleAgents}}"},w={disableWrap:"Disable word wrap",enableWrap:"Enable word wrap",merged:"Merged {{date}}",nextFile:"Next file (Ctrl+↓)",nextFileAria:"Next file",noDiff:"No diff available for this file.",previousFile:"Previous file (Ctrl+↑)",previousFileAria:"Previous file",selectFile:"Select a file to view its diff",title:"Changes",toggleWrap:"Toggle word wrap"},A={archive:"Archive",attachFiles:"Attach files",cancel:"Cancel",cancelButton:"Cancel",clearConversationFailed:"Failed to clear conversation",closeQuickChat:"Close quick chat",conversationArchived:"Conversation archived",conversationDeleted:"Conversation deleted",conversationName:"Conversation name",conversationRenamed:"Conversation renamed",contextWindowAria:"Estimated {{used}} of {{total}} context tokens",copyFailed:"Copy failed",copyResponse:"Copy response",create:"Create",createButton:"Create",createRoom:"Create room",delete:"Delete",deleteConversation:"Delete conversation",deleteConversationBody:"This action cannot be undone. All messages in this conversation will be permanently deleted.",deleteConversationTitle:"Delete Conversation?",deleteRoom:"Delete room {{name}}",deleteRoomBody:"This action cannot be undone. This room and all its messages will be permanently deleted.",deleteRoomTitle:"Delete Room?",dismissQueuedMessage:"Dismiss queued message",failedToArchiveConversation:"Failed to archive conversation",failedToClearConversation:"Failed to clear conversation",failedToClearRoomConversation:"Failed to clear room conversation",failedToCreateSession:"Failed to create chat session",failedToDeleteConversation:"Failed to delete conversation",failedToDeleteRoom:"Failed to delete room",failedToRenameConversation:"Failed to rename conversation",failedToSendRoomMessage:"Failed to send room message",failureDetails:"Failure details",helpMessageContent:"Available commands:\n- `/new` or `/clear` — Clear conversation and start fresh\n- `/skill:{name}` — Use a specific skill\n- `/help` — Show this help",jumpToLatest:"Latest",latest:"Latest",loadingAgents:"Loading agents...",loadingConversation:"Loading conversation…",loadingConversations:"Loading...",loadingMessages:"Loading messages...",loadingModels:"Loading models...",loadingOlderMessages:"Loading older messages…",loadingSessions:"Loading sessions…",loadingSkills:"Loading skills…",mentionNonMember:"Not a member of {{roomName}}",messageAgentPlaceholder:"Message {{name}}",messageModelPlaceholder:"Message {{name}}",messageRoomPlaceholder:"Message #{{name}}",messageSentButReplyFailed:"Message sent, but assistant reply failed",messageSentButReplyFailedDetail:"Message sent, but assistant reply failed: {{detail}}",modeAgent:"Agent",modeModel:"Model",newChat:"New Chat",newChatModeAgent:"Agent",newChatModeModel:"Model",newChatTitle:"New Chat",noAgentsAvailable:"No agents available",noConversationsYet:"No conversations yet",noMessages:"No messages",noMessagesYet:"No messages yet. Start the conversation!",noRoomsYet:"No rooms yet.",noSkillsAvailable:"No skills available",noSkillsFound:"No skills found",openQuickChat:"Open quick chat",questionAnsweredLabel:"Answered",questionAnsweredWithoutContent:"A later user reply answered this question.",questionConfirmNo:"No",questionConfirmYes:"Yes",questionResponseEyebrow:"Assistant question",questionResponseLabel:"Question from assistant",questionSelectHint:"Answer all questions to continue the chat.",questionSubmit:"Send answer",questionSubmittedAnswerLabel:"Submitted answer",questionTextPlaceholder:"Type your answer here…",queuedMessage:"Queued: {{preview}}",quickChatTitle:"Quick Chat",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",removeAttachment:"Remove {{name}}",rename:"Rename",renameConversationAria:"Rename conversation {{title}}",renameConversationBody:"Choose a new name for this conversation. Leave it blank to show Untitled.",renameConversationTitle:"Rename Conversation",renamePlaceholder:"Untitled",resizePanelBottom:"Resize panel from bottom",resizePanelBottomLeft:"Resize panel from bottom-left corner",resizePanelBottomRight:"Resize panel from bottom-right corner",resizePanelLeft:"Resize panel from left",resizePanelRight:"Resize panel from right",resizePanelTop:"Resize panel from top",resizePanelTopLeft:"Resize panel from top-left corner",resizePanelTopRight:"Resize panel from top-right corner",resizeSidebar:"Resize chat sidebar",responseCopied:"Response copied",responseFailed:"Response failed",roomMemberCount_one:"{{count}} member",roomMemberCount_other:"{{count}} members",roomsGroupLabel:"Rooms",save:"Save",scopeDirect:"Direct",scopeRooms:"Rooms",scrollMessageToTop:"Scroll message to top",searchConversations:"Search conversations...",selectAgentForNewChat:"Select agent for new chat",selectAgentPlaceholder:"Select an agent to start chatting",selectModel:"Select a model",selectModelOverrideLabel:"Select model override",selectModelPlaceholder:"Select a model to start chatting",selectModelPlaceholder2:"Select a model",selectRoomOrCreate:"Select a room or create one",selectSession:"Select a session",selectSessionLabel:"Select session",sendMessageFailed:"Failed to send message",sendRoomMessageFailed:"Failed to send room message",sessionsGroupLabel:"Sessions",showPlainText:"Show all messages as plain text",showRenderedMarkdown:"Show all messages as rendered Markdown",skillSuggestions:"Skill suggestions",startNewChat:"Start a new chat",startNewConversation:"Start a new conversation",stopGeneration:"Stop generation",thinking:"Thinking",thinkingLabel:"Thinking",thinkingStatus:"Thinking…",toolArgsLabel:"args",toolArgsPreview:"args: {{summary}}",toolCalls:"Tool calls",toolCallsCount_one:"{{count}} tool calls",toolCallsCount_other:"{{count}} tool calls",toolResultLabel:"result",toolResultPreview:"result: {{summary}}",typeMessage:"Type a message...",unreadMessages:"Unread messages",untitledSession:"Untitled",workingStatus:"Working…",you:"You"},S={error:{deliveredButRefreshFailed:"Message delivered, but failed to refresh room replies",failedToLoad:"Failed to load chat rooms",failedToUpload:"Failed to upload attachment: {{filename}}",selectRoomFirst:"Select a room before sending a message"}},C={installBody:"Get the {{fn}} and {{fusion}} commands on your terminal so you can drive Fusion from anywhere. One click below or copy the command into your shell.",installButton:"Install with npm",installing:"Installing…",installTitle:"Install the Fusion CLI",openSettings:"Open Settings",updateButton:"Update with npm",updateTitle:"Update the Fusion CLI",updating:"Updating…",versionMismatchInfix:"but this dashboard expects",versionMismatchPrefix:"Your installed",versionMismatchSuffix:"Update to stay in sync."},T={binaryLabel:"Binary:",checking:"Checking…",copied:"Copied",copy:"Copy",expectedVersion:"(expected {{version}})",failedExit:"Install failed (exit {{code}})",heading:"CLI Binary",help:"Installing the global CLI lets you run fn and fusion from any terminal. Automations and scripts work without it via npx, but a global install is faster and more convenient.",installing:"Installing…",installWithNpm:"Install with npm",notOnPath:"Neither fn nor fusion was found on PATH.",orCopyLabel:"Or copy and run yourself:",pathLabel:"Path:",refresh:"Refresh",reinstall:"Reinstall",stateCheckDisabled:"Check disabled",stateInstalled:"Installed",stateMissing:"Not installed",stateVersionMismatch:"Version mismatch",succeededDuration:"Install succeeded in {{duration}}s",versionLabel:"Version:"},P={queued_one:"{{count}} message queued — will send when the agent is ready",queued_other:"{{count}} message queued — will send when the agent is ready",terminalTab:"Terminal",transcriptTab:"Transcript",viewToggleLabel:"Chat view"},R={adapterSettings:"Adapter settings",advance:"Advance",advancePrompt:"This session looks idle — advance to review?",mobileInputPlaceholder:"Type to send to the session…",mobileKeyArrowDown:"Cursor down",mobileKeyArrowLeft:"Cursor left",mobileKeyArrowRight:"Cursor right",mobileKeyArrowUp:"Cursor up",mobileKeyCtrl:"Sticky Ctrl modifier",mobileKeyCtrlC:"Send Ctrl-C",mobileKeyEsc:"Send Escape",mobileKeyTab:"Send Tab",mobileSend:"Send",notYet:"Not yet",postureBaseline:"Baseline",postureResolved:"Resolved posture",readOnly:"Read-only",replayEnded:"Session ended",replayIdle:"Session idle"},F={actionsAriaLabel:"{{columnLabel}} column actions",actionsTitle:"Column actions",archiveAllDoneAriaLabel:"Archive all done tasks",archiveAllDoneTitle:"Archive all done tasks",archiveAllMessage_one:"Archive all {{count}} done tasks?",archiveAllMessage_other:"Archive all {{count}} done tasks?",archiveAllTitle:"Archive All Done",archivedTasks_one:"Archived {{count}} tasks",archivedTasks_other:"Archived {{count}} tasks",autoMerge:"Auto-merge",autoMergeDisabled:"Auto-merge disabled",autoMergeEnabled:"Auto-merge enabled",cancelMove:"Cancel Move",collapseArchivedLabel:"Collapse archived tasks",collapseArchivedTitle:"Collapse archived tasks",expandArchivedLabel:"Expand archived tasks",expandArchivedTitle:"Expand archived tasks",failedToArchive:"Failed to archive tasks",keepProgress:"Keep Progress",loadMore_one:"Load {{count}} more ({{remaining}} remaining)",loadMore_other:"Load {{count}} more ({{remaining}} remaining)",moveAllToTodo:"Move All to Todo",moveAllToTodoMessage_one:"Move all {{count}} {{columnLabel}} task{{plural}} to Todo?",moveAllToTodoMessage_other:"Move all {{count}} {{columnLabel}} task{{plural}} to Todo?",moveAllToTodoTitle:"Move All to Todo",movedToPlanning_one:"Moved {{count}} task{{plural}} to planning for replanning",movedToPlanning_other:"Moved {{count}} task{{plural}} to planning for replanning",movedToTodo_one:"Moved {{count}} task{{plural}} to Todo",movedToTodo_other:"Moved {{count}} task{{plural}} to Todo",movePartialFailure:"Moved {{moved}} of {{total}} tasks; {{failed}} failed",moveToTodoHint_one:"Move {{count}} task{{plural}} to Todo",moveToTodoHint_other:"Move {{count}} task{{plural}} to Todo",moveToTodoPartialFailure:"Moved {{moved}} of {{total}} tasks to Todo; {{failed}} failed",newTask:"New Task",noManuallyPausableTasks:"No manually pausable tasks",noTasks:"No tasks",noTasksInColumn:"No tasks in this column",pauseHint_one:"Pause {{count}} active unassigned task{{plural}}",pauseHint_other:"Pause {{count}} active unassigned task{{plural}}",preserveProgressMessage:"This task has completed steps. Keep progress before moving?",preserveProgressMoveTodoMessage:"Some tasks have completed steps. Keep progress before moving to Todo?",preserveProgressTitle:"Preserve Progress?",replanAll:"Replan All",replanAllHint_one:"Move {{count}} task{{plural}} to Planning",replanAllHint_other:"Move {{count}} task{{plural}} to Planning",replanAllMessage_one:"Move all {{count}} todo task{{plural}} back to planning to be replanned?",replanAllMessage_other:"Move all {{count}} todo task{{plural}} back to planning to be replanned?",replanAllTitle:"Replan All Tasks",resetProgress:"Reset Progress",resetProgressConfirm:"Reset Progress",resetProgressMessage:"Reset all step progress before moving this task?",resetProgressMoveTodoMessage:"Reset step progress for tasks before moving to Todo?",resetProgressTitle:"Reset Progress?",stopAll:"Stop All",stopAllMessage_one:"Stop all {{count}} {{columnLabel}} task{{plural}}?",stopAllMessage_other:"Stop all {{count}} {{columnLabel}} task{{plural}}?",stopAllTitle:"Stop All Tasks",stopPartialFailure:"Stopped {{paused}} of {{total}} tasks; {{failed}} failed",stoppedTasks_one:"Stopped {{count}} task{{plural}}",stoppedTasks_other:"Stopped {{count}} task{{plural}}"},L=JSON.parse('{"activity":{"activeAgents":"Active agents","activeNodes":"Active nodes","agentRunOutcomeShare":"Agent run outcome share","agentRuns":"Agent runs","agentRunsActive":"Active","agentRunsCompleted":"Completed","agentRunsFailed":"Failed","agentRunsPerDay":"Agent runs / day","agentsPerDay":"Active agents / day","messages":"Messages","messagesPerDay":"Messages / day","nodesPerDay":"Active nodes / day","rechartsLine":"Activity trend","sessions":"Sessions","stickiness":"Stickiness","stickinessHint":"DAU / MAU","summaryTitle":"Summary","throughput":"Throughput","throughputPerDay":"Throughput / day"},"area":{"empty":"No data for the selected range.","loading":"Loading…"},"areaPending":"This area renders once metrics data is available.","controls":{"concurrency":{"description":"Tune live scheduler capacity.","error":"Unable to load concurrency settings","maxConcurrent":"Max concurrent tasks","maxTriageConcurrent":"Max triage concurrent","maxWorktrees":"Max worktrees","title":"Concurrency","runningGlobal":"{{count}} running (all projects)","runningProject":"{{count}} running (this project)"},"engine":{"description":"Stopping the engine halts all AI work.","title":"AI engine"},"heartbeat":{"description":"Pause or resume the scheduling heartbeat.","disabledByStop":"Start the AI engine before resuming the heartbeat.","pause":"Pause heartbeat","resume":"Resume heartbeat","title":"Heartbeat control"},"orgChart":{"empty":"No agents are reporting in yet.","error":"Unable to load org chart","loading":"Loading org chart…","title":"Agent org chart"},"status":{"error":"Unable to load live scheduler status","lastActivity":"Last activity","loading":"Loading…","maxConcurrent":"Max concurrent","noActivity":"No recent activity","paused":"Paused","ready":"Ready","running":"Running","saved":"Saved","saveError":"Save failed","saving":"Saving…","stopped":"Stopped"},"theme":{"description":"Switch the dashboard theme with live color previews.","title":"Theme"},"title":"Operator controls"},"ecosystem":{"breadthTitle":"Ecosystem breadth","empty":"No models or plugins active in the selected range.","modelShareTitle":"Task share by model","perModelTitle":"Tasks per model","plugins":"Plugin activations","pluginsUnavailable":"Plugin-activation metrics are not yet recorded","taskTrendSeries":"Tasks","tokenTrendSeries":"Tokens","trendTitle":"Ecosystem trend","uniqueModels":"Active models"},"empty":"No usage data yet. Run some agents to populate the Dashboard.","funnel":{"ariaLabel":"Tasks per workflow stage","completionRate":"Completion rate","completionRateAria":"Completion rate for in-range triage entrants","completionRateHint":"Done ÷ entered (in range)","doneInRange":"Reached done","empty":"No task transitions in the selected range.","enteredInRange":"Entered triage","rangeDays_one":"{{count}} day range","rangeDays_other":"{{count}} day range","stage":{"done":"Done","inProgress":"In progress","inReview":"In review","other":"Other","todo":"Todo","triage":"Triage"},"throughputPerDay":"Tasks done / day","throughputTitle":"Throughput","title":"SDLC funnel"},"github":{"backfillBusy":"Backfilling close times…","backfillButton":"Backfill exact close times","backfillFailed":"Failed to backfill GitHub source issue close times","backfillMaxBatches":"Backfill stopped after the safety limit; rerun after checking server logs.","backfillNothing":"Nothing to backfill. Scanned {{scanned}}, filled {{filled}}, skipped {{skipped}}, errors {{errors}}.","backfillPending":"Backfill is running in paginated batches.","backfillResult":"Backfill complete. Scanned {{scanned}}, filled {{filled}}, skipped {{skipped}}, errors {{errors}}.","byRepo":"By repository","dailyLine":"Filed vs fixed line","dailyTrend":"Filed vs fixed trend","empty":"No GitHub issue activity in the selected range.","filed":"Filed by Fusion","filedTrend":"Filed","fixed":"Fixed by Fusion","fixedApproximation":"Uses done tasks updated in range","fixedTrend":"Fixed","issueFlowShare":"Filed vs fixed share","net":"Net","repoValue":"{{filed}} filed / {{fixed}} fixed","totalsTitle":"GitHub issue flow"},"heading":"Dashboard","loading":"Loading dashboard...","missionControl":{"activeNodes":"Active nodes","activeRuns":"Active runs","activeSessions":"Active sessions","funnelTitle":"SDLC funnel (live)","idle":"No active sessions. Live updates resume when work starts.","inactive":"inactive","loading":"Loading live activity…","nodesTitle":"Nodes","noNodes":"No active nodes.","noSessions":"No active sessions.","sessionCount_one":"{{count}} session","sessionCount_other":"{{count}} session","sessionsTitle":"Sessions"},"overview":{"activeNodes":"Active nodes","agentRuns":"Agent runs","agentsWorking":"agents working","autonomy":"Autonomy ratio","dailyActivity":"Daily activity trend","dailyActivityAria":"Daily activity trend","dailyActivityHint":"Messages plus active agents per day","dailyActivityLine":"Daily activity line","dailyActivityLineHint":"Messages, agents, and runs by day","liveStrip":"Live activity","liveTokens":"tokens","openSignals":"Open signals","sessions":"Sessions","tasksDone":"Tasks done","tasksInProgress":"tasks in progress","throughputTrend":"throughput trend","throughputTrendAria":"Recent activity throughput trend","tokensByModel":"Tokens by model","tokensByModelHint":"Top model token consumers in this range","tokensByModelPie":"Token share by model","tokensByModelPieHint":"Top model token share in this range","tokensCost":"Tokens & cost","toolCategories":"Tool categories","toolCategoriesHint":"Autonomous work grouped by tool family","uniqueModels":"Unique models"},"productivity":{"averageDuration":"Average","backfillAppliedLabel":"Applied","backfillApply":"Apply backfill","backfillBusy":"Checking historical LOC…","backfillButton":"Preview LOC backfill","backfillConfirmMessage":"This will persist diff stats to task_commit_associations for historical commit associations. Review the dry-run counts before applying.","backfillConfirmTitle":"Apply LOC backfill?","backfillDistinctCommits":"Distinct commits","backfillFailed":"Failed to backfill historical LOC stats","backfillPending":"LOC backfill check is running.","backfillPreviewLabel":"Dry-run preview","backfillResult":"Backfill report","backfillScannedRows":"Scanned rows","backfillSkippedInvalidShas":"Skipped invalid SHAs","backfillSkippedUnavailableCommits":"Skipped unavailable commits","backfillUpdatedRows":"Updated rows","byLanguage":"Files by language","commits":"Commits","completedTasks":"Completed tasks","durationTitle":"Task duration","durationUnavailable":"Task duration is unavailable until completed tasks have active execution time recorded","hoursSaved":"Human hours saved","hoursSavedEstimate":"estimate from lines changed","hoursSavedUnavailable":"Estimated human hours saved is unavailable until commit diff stats exist","languagePie":"Language share","loc":"Lines changed","locUnavailable":"LOC is unavailable until commit diff stats are recorded","medianDuration":"Median","modifiedFiles":"Files modified","outcomesTitle":"Outcomes","p90Duration":"P90","pullRequests":"Pull requests","totalDuration":"Total active","volumeHint":"volume, not outcome","volumeTitle":"Volume (proxy)"},"range":{"custom":"Custom range","dialogLabel":"Select date range","from":"From","invalidRange":"Start date must be on or before end date","to":"To"},"signals":{"bySeverity":"By severity","bySource":"By source","empty":"No external signals yet. Connect a signal source (Sentry, Datadog, PagerDuty, webhook) to see incident metrics here.","mttr":"MTTR","mttrUnavailable":"MTTR is unavailable until incident data is recorded","mttrValue":"{{min}} min","open":"Open","resolved":"Resolved","statusShare":"Signal status share","summaryTitle":"Summary","total":"Total signals"},"system":{"cpuGauge":"App CPU usage","cpuSeries":"CPU","cpuTrend":"CPU over time","detailsTitle":"Runtime details","healthTitle":"Live system health","heapGauge":"Heap used","heapSeries":"Heap","heapTrend":"Heap over time","memoryGauge":"System memory used","memorySeries":"Memory","memoryTrend":"Memory over time","resourceTrend":"Resource trend","taskShare":"Task distribution","trendsTitle":"Live trends","workloadTitle":"Workload"},"tablistLabel":"Command Center sections","tabs":{"activity":"Activity","ecosystem":"Ecosystem","github":"GitHub","missionControl":"Mission Control","nodes":"Nodes","overview":"Overview","productivity":"Productivity","reliability":"Reliability","signals":"Signals","system":"System","team":"Team","workflows":"Workflows","tokens":"Tokens","tools":"Tools"},"team":{"agent":"Agent","completedByAgent":"Tasks done by agent","cost":"Cost","done":"Tasks done","empty":"No agents have reported team analytics yet.","files":"Files changed","filesChanged":"Files changed","inProgress":"In progress","noChartData":"No non-zero values for this chart yet.","spread":"Team spread","state":"Agent state: {{state}}","tableTitle":"Per-agent breakdown","tasksCompleted":"Tasks done","tokens":"Tokens","tokensByAgent":"Tokens by agent","tokenShareByAgent":"Token share by agent","totalCost":"Estimated cost","totalsTitle":"Team totals","totalTokens":"Total tokens","unknownAgent":"(unknown agent)","unknownRole":"Unknown role","unknownState":"unknown"},"workflows":{"completedByWorkflow":"Tasks done by workflow","cost":"Cost","done":"Tasks done","empty":"No workflow analytics have been recorded for this range yet.","files":"Files changed","filesChanged":"Files changed","inProgress":"In progress","inReview":"In review","noChartData":"No non-zero values for this chart yet.","tableTitle":"Per-workflow breakdown","tasksCompleted":"Tasks done","tokens":"Tokens","tokensByWorkflow":"Tokens by workflow","totalCost":"Estimated cost","totalsTitle":"Workflow totals","totalTokens":"Total tokens","unknownWorkflow":"(unknown workflow)","workflow":"Workflow"},"tokens":{"byModelChart":"Tokens by model","cached":"Cached","cost":"Estimated cost","costCol":"Cost","costUnavailable":"No pricing for this model","granularity":"Token chart granularity","input":"Input","model":"Model","output":"Output","overTimeChart":"Tokens over time","pieChart":"Token share by model","rechartsLine":"Tokens trend","stalePricing":"pricing may be stale","tableTitle":"Per-model breakdown","tasks":"Tasks","total":"Total","totalsTitle":"Totals","totalTokens":"Total tokens","unknownModel":"(unknown)"},"tools":{"autonomyHint":"tool calls per human intervention","autonomyRatio":"Autonomy ratio","categoriesTitle":"Tool categories","interventionBreakdown":"{{approvals}} approvals · {{steers}} steers","interventions":"Interventions","pieChart":"Tool category share","ratioAutonomous":"{{ratio}} calls/session (fully autonomous)","sessions":"Sessions","summaryTitle":"Summary","toolCalls":"Tool calls"}}'),M={addButton:"Add Comment",addedSuccess:"Comment added",deletedSuccess:"Comment deleted",deletingButton:"Deleting…",editedSuffix:"(edited)",emptyState:"No comments yet.",heading:"Comments",placeholder:"Add a comment",postingButton:"Posting…",updatedSuccess:"Comment updated",aiGuidance:"AI Guidance"},D={filesChanged_one:"Files Changed ({{count}})",filesChanged_other:"Files Changed ({{count}})"},I={error:"Error loading commit diff: {{error}}",loadError:"Failed to load commit diff",loading:"Loading commit diff...",mergedOnly:"Commit diff is only available for tasks that were merged.",noFiles:"No files changed in this commit.",noSha:"No commit SHA available."},N={archive:"Archive",back:"Back",cancel:"Cancel",close:"Close",closeAriaLabel:"Close",collapse:"Collapse",continue:"Continue",delete:"Delete",dismiss:"Dismiss",edit:"Edit",editMode:"Edit",expand:"Expand",learnMore:"Learn more →",loading:"Loading...",no:"No",noDataAvailable:"No data available",nothingToShow:"There is nothing to show yet.",preview:"Preview",previewMode:"Preview",refresh:"Refresh",retry:"Retry",save:"Save",saveAndTest:"Save & Test",saving:"Saving...",skip:"Skip",somethingWentWrong:"Something went wrong while loading this view.",stop:"Stop",test:"Test",testing:"Testing…",total:"total",tryAgain:"Try Again",unableToLoadData:"Unable to load data",unknown:"Unknown",unsavedChanges:"Unsaved changes",yes:"Yes"},x={loadingAgents:"Loading agents…",messageId:"Message {{id}}",messageLabel:"Message:",messagePlaceholder:"Type your message…",newMessageTitle:"New Message",noAgentsAvailable:"No agents available",replyingToLabel:"Replying to:",replyTitle:"Reply",selectAgent:"Select agent…",sendingButton:"Sending…",toLabel:"To:",wakeAgentCheckbox:"Wake agent immediately",wakeAlwaysImmediate:"(agent is already set to immediate response mode)",wakeOneOff:"(one-off override for this message only)"},E={cancel:"Cancel",closeDialog:"Close confirmation dialog",confirm:"Confirm"},H={aiReasoning:"AI Reasoning",aiThinking:"AI thinking",confirm:{no:"No",yes:"Yes"},hide:"Hide {{type}}",show:"Show {{type}}",yourResponse:"Your response"},B={create:"Create room",creating:"Creating...",failedCreate:"Failed to create room.",failedLoadAgents:"Failed to load agents.",loadingAgents:"Loading agents...",members:"Members",nameLabel:"Room name",noAgents:"No agents in this project yet.",noMatch:"No agents match your search.",searchAgents:"Search agents",selectMember:"Select at least one member.",title:"Create room"},O={initializingDashboard:"Initializing dashboard...",loadingMessage:"Loading Fusion dashboard",loadingProgress:"Dashboard loading progress",title:"Project Dashboard",updatingMessage:"Updating Fusion dashboard",updatingVersion:"Updating to a new frontend version..."},U={body:"Fusion's background SQLite integrity check reported corruption. Review the failing objects below before continuing critical operations.",instructions:"Back up the project, try {{cmd}} if the database still opens cleanly, and restore from a known-good backup if corruption persists. See {{link}} for the storage layout and recovery guidance.",lastChecked:"Last checked: {{checkedAtLabel}}",refreshHealth:"Refresh health",refreshing:"Refreshing…",title:"Database corruption detected",whatToDo:"What to do:"},_={projectNotFound:"Project '{{id}}' not found",taskNotFound:"Task {{id}} not found"},j={chooseMode:"How do you want to run Fusion?",chooseModeDescription:"Run Fusion locally in this app, or connect to a Fusion server you're already running somewhere else.",connectRemoteButton:"Connect to Remote Fusion",couldNotStart:"Couldn't start local Fusion",loading:"Loading Fusion…",opening:"Opening…",retry:"Retry",runLocalButton:"Run Fusion Locally",settingUpRemote:"Setting up remote connection…",starting:"Starting…",startingLocalRuntime:"Starting local Fusion runtime…"},q={allSeverities:"All severities",auto:"Auto",autoDetected:"Auto-detected: {{url}}",change:"Change",clear:"Clear",command:"Command",configuration:"Configuration",configurationLabel:"Dev server configuration",controlsHeaderLabel:"Dev server controls header",embedded:"Embedded",embeddedPreviewDisabled:"Embedded preview is disabled. Open your app in a separate browser tab.",enterFullscreen:"Enter fullscreen logs",errBadge:"ERR",error:"Error",exitFullscreen:"Exit fullscreen logs",externalOnly:"External only",filterBySeverity:"Filter logs by severity",info:"Info",lines:"{{count}} lines",lines_one:"{{count}} lines",lines_other:"{{count}} lines",loading:"Loading...",loadingConfig:"Loading dev server configuration...",loadingLogs:"Loading logs…",loadingOlderLogs:"Loading older logs…",loadOlderLogs:"Load older logs",logs:"Logs",logsLabel:"Dev server logs",lostConnection:"Lost log stream connection.",manual:"Manual",matchCount_one:"{{count}} match",matchCount_other:"{{count}} matches",newLogs:"New logs",noLogsYet:"No logs yet. Start the dev server to see output.",noMatchesSearch:"No log lines match your search.",noMatchesSeverity:"No log lines match the selected severity.",noPreviewDetected:"No preview URL detected. Start the dev server or set a manual URL to preview your app.",noPreviewUrl:"No preview URL",noScriptsDetected:"No dev server scripts detected. Check that your project has a package.json with a dev, start, or similar script.",notAvailable:" · Not available",openInNewTab:"Open in new tab",openPreviewInNewTab:"Open preview in new tab",openPreviewOrRetry:"Open the preview in a new tab, or retry embedded mode after checking your server settings.",preview:"Preview",previewBlocked:"Preview blocked",previewFailed:"Preview failed",previewLabel:"Dev server preview",previewUrlOverride:"Preview URL Override",refreshPreview:"Refresh preview",restart:"Restart",restarting:"Restarting...",retry:"Retry",retryEmbeddedPreview:"Retry embedded preview",runningCommand:"Running command",save:"Save",scriptSelection:"Script Selection",searchLogs:"Search logs",start:"Start",startDevServer:"Start a dev server to see a live preview here.",starting:"Starting...",status:{failed:"Failed",running:"Running",starting:"Starting...",stopped:"Stopped",stopping:"Stopping..."},stop:"Stop",stopping:"Stopping...",title:"Dev Server",toast:{clearedScript:"Cleared selected dev server script.",enterCommand:"Enter a command before starting the dev server.",previewCleared:"Preview URL override cleared.",previewUpdated:"Preview URL updated.",restarted:"Dev server restarted.",selectedScript:"Selected {{name}} script.",started:"Dev server started.",stopped:"Dev server stopped."},warn:"Warn"},W={ariaLabel:"Directory browser",browse:"Browse",cancel:"Cancel",closeBrowser:"Close directory browser",createFolder:"New folder",createFolderAria:"Create new folder",createFolderConfirm:"Create",createFolderError:"Folder name cannot contain path separators or '..'",createFolderTitle:"Create folder",defaultPlaceholder:"/path/to/your/project",hideHidden:"Hide hidden",hideHiddenAria:"Hide hidden directories",hideHiddenTitle:"Hide hidden",loading:"Loading…",newFolderPlaceholder:"Folder name",noSubdirs:"No subdirectories",openBrowser:"Browse directories",parentDir:"Go to parent directory",parentDirTitle:"Parent directory",select:"Select",showHidden:"Show hidden",showHiddenAria:"Show hidden directories",showHiddenTitle:"Show hidden",up:"Up"},G={actions:{addMount:"Add mount",addVariable:"Add variable",cancel:"Cancel",createNode:"Create Docker Node"},ariaLabels:{closeModal:"Close onboarding modal",modal:"Docker node onboarding",removeMount:"Remove volume mount",removeVariable:"Remove environment variable"},available:"Docker is available{{version}}",caPath:"CA Certificate Path",certPath:"Client Certificate Path",connected:"Connected{{version}}",connectionFailed:"Connection failed",container:"Container:",context:"Docker Context",creatingNode:"Creating Docker node...",errors:{cpusMinimum:"CPUs must be at least 0.5",memoryMinimum:"Memory must be at least 512 MB",nameRequired:"Name is required and must be 64 characters or fewer",urlRequired:"URL is required"},failedAt:"Failed at: {{stage}}",failedMessage:"Provisioning failed",host:"Docker Host",hostPlaceholder:"tcp://host:2376",keyPath:"Client Key Path",labels:{apiKey:"API Key",cpus:"CPUs",image:"Image",memory:"Memory (MB)",nodeName:"Node Name",reachableUrl:"Reachable URL",tag:"Tag"},local:"Local Docker",notFound:"Docker not found{{error}}",notFoundError:"Docker not found: {{message}}",options:{autoGenerate:"Auto-generate",claudeCli:"Claude CLI",droidCli:"Droid CLI",persistentStorage:"Keep data across container recreations",provideManually:"Provide manually"},placeholders:{apiKey:"Enter API key",containerPath:"Container path",envVarKey:"KEY",envVarValue:"Value",hostPath:"Host path",image:"runfusion/fusion",nodeName:"my-docker-node",tag:"latest"},provisionedIn:"Provisioned in {{durationSec}}s",refreshContexts:"Refresh contexts",remote:"Remote Host",retry:"Retry",sections:{advanced:"Advanced",environmentVariables:"Environment Variables",requiredSettings:"Required Settings",volumeMounts:"Volume Mounts"},selectContext:"Select context",stage:{creatingContainer:"Creating container...",pullingImage:"Pulling image...",registeringNode:"Registering node...",startingContainer:"Starting container..."},states:{creating:"Creating..."},successMessage:"Node created successfully!",targetMode:"Docker target mode",testConnection:"Test Connection",testing:"Testing...",titles:{provisionNode:"Provision Docker Node"},useTls:"Use TLS",verifyTls:"Verify TLS Certificate",viewNode:"View Node"},V={backToFiles:"Back to files",backToFilesList:"Back to project files list",clearSearch:"Clear search",collapse:"Collapse",collapseContent:"Collapse content",docCount_one:"{{count}} doc{{plural}}",docCount_other:"{{count}} doc{{plural}}",documentsCreatedIn:"Documents are created in task detail tabs.",expand:"Expand",expandContent:"Expand content",failedToLoad:"Failed to load {{type}}: {{error}}",hideHidden:"Hide hidden project files",hideHiddenFiles:"Hide hidden files",hideHiddenLabel:"Hide Hidden",loadingFileContent:"Loading file content…",loadingProjectFiles:"Loading project markdown files…",loadingTaskDocuments:"Loading task documents…",markdown:"Markdown",noMarkdownFiles:"No Markdown files found in this project.",noMatchProject:'No project markdown files match "{{query}}".',noMatchTask:'No task documents match "{{query}}".',noTaskDocuments:"No task documents yet.",openTask:"Open task",plain:"Plain",projectFilePreviewLabel:"Project file content preview",projectFiles:"project files",projectFilesTab:"Project Files",projectMarkdownFilesLabel:"Project markdown files",resultCount_one:"{{count}} result{{plural}}",resultCount_other:"{{count}} result{{plural}}",retry:"Retry",retryLoading:"Retry loading documents",searchProjectFiles:"Search project markdown files…",searchTaskDocuments:"Search task documents…",sectionsLabel:"Documents sections",selectFile:"Select a Markdown file to view its content.",showHidden:"Show hidden project files",showHiddenFiles:"Show hidden files",showHiddenLabel:"Show Hidden",showProjectFiles:"Show project markdown files",showTaskDocuments:"Show task documents",switchToMarkdown:"Switch to markdown",switchToPlainText:"Switch to plain text",taskDocuments:"task documents",taskDocumentsTab:"Task Documents",title:"Artifacts",untitled:"Untitled",artifacts:"artifacts",artifactsCreatedBy:"Artifacts are created by agents, users, and system tools.",artifactsTab:"Artifacts",artifactAudioLabel:"Audio artifact: {{title}}",artifactCardLabel:"Artifact {{title}}",artifactTypeAudio:"Audio",artifactTypeDocument:"Document",artifactTypeImage:"Image",artifactTypeOther:"Other",artifactTypeVideo:"Video",artifactVideoLabel:"Video artifact: {{title}}",loadingArtifacts:"Loading artifacts…",noArtifactPreview:"No preview available.",noArtifacts:"No artifacts yet.",noMatchArtifacts:'No artifacts match "{{query}}".',openArtifactMedia:"Open artifact media",openTaskAria:"Open task {{taskId}}: {{title}}",searchArtifacts:"Search artifacts…",showArtifacts:"Show artifacts",untitledArtifact:"Untitled artifact",closeLightbox:"Close artifact preview",expandArtifact:"Expand {{title}}",expandArtifactHint:"Click to expand",lightboxLabel:"Artifact media preview"},z={active:"Active",cardTitle:"Factory AI — via Droid CLI",connectedVersion:"Connected{{version}}",description:"Route AI calls through your locally-installed droid CLI. Uses your existing Factory AI subscription / quota instead of an API key.",details:"Details",detected:"droid {{version}} detected{{path}}. Click Enable to route AI calls through it.",disable:"Disable",disabling:"Disabling…",droidNotFound:"droid not found on PATH",enable:"Enable",enabledValidating:"Enabled. Validating…",enabling:"Enabling…",extensionFailed:"Extension load failed: {{reason}}",modelsHidden:"Factory AI (via Droid CLI) models are hidden from the model picker.",modelsNowVisible:"Factory AI (via Droid CLI) models are now visible in the model picker.",notConnected:"Not connected",notInstalled:"Not installed",notOnPath:"droid binary not detected on PATH — install Droid CLI first.",probingCli:"Probing local CLI…",restartRequired:"Restart required: restart your active CLI/chat session for routing changes to take effect.",test:"Test",testing:"Testing…",toastDisabled:"Disabled",toastEnabled:"Enabled"},K={cancel:"Cancel",createAnyway:"Create anyway",message:"We found similar active tasks. Open an existing task or create this one anyway.",open:"Open",title:"Possible duplicates",untitledTask:"Untitled task"},Y={failedLoadFile:"Failed to load file",failedSaveFile:"Failed to save file",failedToLoadFile:"Failed to load file",failedToSaveFile:"Failed to save file"},Q={genericError:"Something went wrong",reloadPage:"Reload page",retry:"Retry",sectionError:"This section encountered an error"},J={allRuns:"All runs",disabledTitle:"Scheduled evals are disabled",empty:"No evals yet. Scheduled evals review tasks completed since the last run.",enablePrompt:"Enable Scheduled Evals to review scored tasks, evidence, and follow-up recommendations.",evidenceHeading:"Evidence",loading:"Loading evals…",maxScorePlaceholder:"Max score",minScorePlaceholder:"Min score",naPlaceholder:"n/a",noFollowups:"None",noRationale:"No rationale recorded.",openSettings:"Open Scheduled Evals Settings",overallScore:"Overall score: {{score}}",refreshAria:"Refresh evals",searchPlaceholder:"Search task or rationale",selectPrompt:"Select an evaluation to inspect scores, rationale, and evidence.",suggestedFollowupsHeading:"Suggested follow-up tasks"},Z={blocked:"Blocked",connecting:"Connecting…",daysAgo_one:"{{count}}d ago",daysAgo_other:"{{count}}d ago",escalated:"Escalated",escalatedSuffix:" (escalated)",engineControls:"Engine controls",engineControlsClose:"Close engine controls",hideProjectDir:"Hide project directory",hoursAgo_one:"{{count}}h ago",hoursAgo_other:"{{count}}h ago",inReview:"In Review",justNow:"just now",loading:"Loading...",minutesAgo_one:"{{count}}m ago",minutesAgo_other:"{{count}}m ago",noActivity:"no activity",overlapBottleneck_one:"{{status}} overlap bottleneck {{blockerId}}: {{count}} todo blocked via blockedBy (threshold {{threshold}})",overlapBottleneck_other:"{{status}} overlap bottleneck {{blockerId}}: {{count}} todo blocked via blockedBy (threshold {{threshold}})",openEngineControlsForState:"Open engine controls for {{state}} state",overlapQueue:"Overlap queue",overlapSummary_one:"{{blockerId}} · {{count}} todo",overlapSummary_other:"{{blockerId}} · {{count}} todo",queued:"Queued",running:"Running",secondsAgo_one:"{{count}}s ago",secondsAgo_other:"{{count}}s ago",showProjectDir:"Show project directory",stateIdle:"Idle",statePaused:"Paused",stateRunning:"Running",stateStopped:"Stopped",status:"Executor status",stuck:"Stuck",temporary:"Temporary",todoStatus:"todo",triageDisabledWhileStopped:"Start the AI engine before changing triage scheduling"},X={back:"Back to file list",binaryReadOnly:"Binary file — read only",contextCopy:"Copy",contextDelete:"Delete",contextDownload:"Download",contextDownloadZip:"Download as ZIP",contextMenuLabel:"File operations",contextMove:"Move",contextRename:"Rename",copy:"Copy",copyPlaceholder:"Destination path",copyTitle:"Copy",create:"Create",delete:"Delete",deleteConfirm:"Are you sure you want to delete {{name}}?",deleteRecursive:"This will delete all contents recursively.",deleteTitle:"Delete {{type}}",deleting:"Deleting...",emptyDirectory:"(empty directory)",error:"Error: {{message}}",fileNamePlaceholder:"File name",folderNamePlaceholder:"Folder name",loading:"Loading…",loadingFiles:"Loading files...",modalTitle:"Files — {{workspace}}",modified:"Modified: {{date}}",move:"Move",movePlaceholder:"Destination path",moveTitle:"Move",newFile:"New File",newFolder:"New Folder",operationFailed:"Operation failed",operationSuffix:"ing...",rename:"Rename",renamePlaceholder:"New name",renameTitle:"Rename",resizeSidebar:"Resize sidebar",root:"Root",saving:"Saving…",selectFileToEdit:"Select a file to edit",toggleEditorOptions:"Toggle editor options",typeFile:"File",typeFolder:"Folder",unsavedChanges:"Unsaved changes",upOneLevel:"Up one level",workspaceProject:"Project",previewOnly:"Preview only",previewTitle:"Preview for {{file}}"},$={edit:"Edit",editMode:"Edit mode",editorFor:"Editor for {{filePath}}",fileEditor:"File editor",lineNumber:"Line #",preview:"Preview",previewMode:"Preview mode",toggleLineNumbers:"Toggle line numbers",toggleOptions:"Toggle editor options",toggleWordWrap:"Toggle word wrap",wrap:"Wrap"},ee={empty:"No tasks or files found",fileHeader:"Files",fileMatches:"File matches",taskHeader:"Tasks",taskMatches:"Task matches"},te=JSON.parse(`{"add":"Add","addRemote":"Add Remote","advancesHelpFix":"<strong>Fix:</strong> Fusion only shows <em>Sync working tree</em> when at least one advance is genuinely <code>pending</code> and HEAD is not aligned with the integration tip. If entries are already handled (subsumed/orphaned/reachable/superseded), no sync action is offered.","advancesHelpIntro":"Each entry is a Fusion task whose squash commit advanced the integration branch ref (<branchCode>{{integrationBranch}}</branchCode>). The <em>auto-sync outcome</em> says whether your working tree was also fast-forwarded to that new tip.","advancesHelpItem1":"<c1>clean-sync</c1> / <c2>synced-with-edits-restored</c2> — working tree is in sync; nothing to do.","advancesHelpItem2":"<c1>reachable</c1> / <c2>subsumed</c2> / <c3>orphaned</c3> / <c4>superseded</c4> — already handled (including history rewrites where equivalent content already landed, original SHAs disappeared, or HEAD is already aligned to the rewritten integration tip).","advancesHelpItem3":"<c1>pending</c1> + <c2>off / not run</c2> — auto-sync is disabled in Settings; the branch ref moved but your worktree didn't follow.","advancesHelpItem4":"<c1>pending</c1> + <c2>stash-failed</c2> / <c3>would-conflict</c3> / similar — auto-sync tried but couldn't reconcile (usually local edits collide with the new commit).","advancesNeedAction_one":"{{count}} need action","advancesNeedAction_other":"{{count}} need action","aheadOfUpstream_one":"{{count}} commit(s) ahead of upstream","aheadOfUpstream_other":"{{count}} commit(s) ahead of upstream","aligned":"Aligned","apply":"Apply","applyStashKeep":"Apply stash (keep)","autoMergeDisabled":"Auto-merge disabled","autoMergeEnabled":"Auto-merge enabled","autoMergeUpdateFailed":"Failed to update auto-merge","autoMergeWhenGreen":"Auto-merge when green","autoMergeWillHandle":"Auto-merge will handle this task automatically.","autoMovedToTodo":"Auto-moved to Todo — reviewer feedback ready","autoSyncOffNotRun":"auto-sync: off / not run","autoSyncOutcome":"auto-sync: {{outcome}}","awaitingPrChecks":"Waiting for required checks or review feedback before auto-merge.","backToIssuesList":"Back to issues list","backToPullsList":"Back to pull requests list","baseHead":"Base: HEAD","behindUpstream_one":"{{count}} commit(s) behind upstream","behindUpstream_other":"{{count}} commit(s) behind upstream","branchLabel":"Branch:","cancel":"Cancel","capturedAt":"Captured:","changesStashed":"Changes stashed","checkout":"Checkout","chooseAnotherRepo":"Choose another repository.","clickToViewDiff":"Click to view diff","close":"Close","closeModalAriaLabel":"Close import modal","commentLast":"Last:","commit":"Commit","commitMessagePlaceholder":"Commit message...","commitsOnBranch":"Commits on {{name}}","commitStagedChanges":"Commit staged changes","commitsToPull_one":"{{count}} to pull","commitsToPull_other":"{{count}} to pull","commitsToPush_one":"{{count}} to push","commitsToPush_other":"{{count}} to push","commitsToPushHeader_one":"Commits to Push ({{count}})","commitsToPushHeader_other":"Commits to Push ({{count}})","committedHash":"Committed: {{hash}}","conflictedCount_one":"{{count}} conflicted","conflictedCount_other":"{{count}} conflicted","conflictReclaimFailed":"Failed to queue conflict reclaim","conflictReclaimQueued":"Conflict reclaim queued","conflictReclaimUnavailable":"Conflict reclaim unavailable","conflictsButton":"Conflicts","copiedButton":"Copied","copiedLabel":"Copied {{label}}","copiedToClipboard":"Copied to clipboard","copyButton":"Copy","copyCommitHashLabel":"commit hash","copyFetchUrl":"Copy fetch URL","copyFullCommitHashLabel":"full commit hash","copyFullHash":"Copy full hash","copyFullShaTitle":"Copy full 40-char SHA","copyPushUrl":"Copy push URL","copyShortHashTitle":"Copy short commit hash","copyShortHashTitleWithFull":"Copy short commit hash (use the full SHA below for git operations)","couldNotLoadIssues":"Could not load issues","couldNotLoadPulls":"Could not load pull requests","create":"Create","createdBranch":"Created branch {{name}}","createPrButton":"Create PR","createPrTitle":"Create a PR for this task","defaultBadge":"default","deleteBranch":"Delete","deleteBranchMessage":"Delete branch \\"{{name}}\\"?","deleteBranchTitle":"Delete Branch","deletedBranch":"Deleted branch {{name}}","detectingRemotes":"Detecting…","diffColon":"diff:","discardChangesMessage_one":"Discard changes to {{count}} file(s)? This cannot be undone.","discardChangesMessage_other":"Discard changes to {{count}} file(s)? This cannot be undone.","discardChangesTitle":"Discard Changes","discardedFiles_one":"Discarded changes to {{count}} file(s)","discardedFiles_other":"Discarded changes to {{count}} file(s)","discardSelected":"Discard selected","dismiss":"Dismiss","dismissPrError":"Dismiss PR error","dropStash":"Drop stash","dropStashMessage":"Drop stash@{{{index}}}? This cannot be undone.","dropStashTitle":"Drop Stash","editRemoteName":"Edit remote name","editRemoteUrl":"Edit remote URL","failedToAddRemote":"Failed to add remote","failedToApplyStash":"Failed to apply stash","failedToCheckoutBranch":"Failed to checkout branch","failedToCommit":"Failed to commit","failedToCopy":"Failed to copy","failedToCreateBranch":"Failed to create branch","failedToDeleteBranch":"Failed to delete branch","failedToDiscardChanges":"Failed to discard changes","failedToDropStash":"Failed to drop stash","failedToFetchData":"Failed to fetch git data","failedToFetchIssues":"Failed to fetch issues","failedToFetchPulls":"Failed to fetch pull requests","failedToImportIssue":"Failed to import issue","failedToImportPull":"Failed to import pull request","failedToLoadDiff":"Failed to load diff","failedToLoadFileDiff":"Failed to load file diff","failedToLoadRemoteCommits":"Failed to load remote commits","failedToLoadRemotes":"Failed to load remotes","failedToLoadStashDiff":"Failed to load stash diff","failedToRemoveRemote":"Failed to remove remote","failedToRenameRemote":"Failed to rename remote","failedToStageFiles":"Failed to stage files","failedToStashChanges":"Failed to stash changes","failedToUnstageFiles":"Failed to unstage files","failedToUpdateRemoteUrl":"Failed to update remote URL","fetch":"Fetch","fetchCompleted":"Fetch completed","fetchFailed":"Fetch failed","fetchingFromGitHub":"Fetching the latest list from GitHub.","fetchLabel":"Fetch:","fetchUrlLabel":"fetch URL","filterBranches":"Filter branches...","filterByLabelsLabel":"Filter by labels","filterByLabelsPlaceholder":"Filter: bug,enhancement…","filterIssuesByLabels":"Filter issues by labels","fnCreatingPr":"fn is creating a pull request automatically for this task.","fnMergingPr":"fn is merging this pull request automatically.","forceDeleteBranchMessage":"Branch has unmerged commits. Force delete?","forceDeleteBranchTitle":"Force Delete Branch","forceDeletedBranch":"Force deleted branch {{name}}","fullShaAbbrev":"full","ghAuthLoginHint":"Run {{code}} to enable PR creation.","headAheadOfIntegration_one":"HEAD has {{count}} commit(s) not on {{branch}}","headAheadOfIntegration_other":"HEAD has {{count}} commit(s) not on {{branch}}","headAheadOfOriginIntegration_one":"HEAD has {{count}} commit(s) not on origin/{{branch}}","headAheadOfOriginIntegration_other":"HEAD has {{count}} commit(s) not on origin/{{branch}}","headVsIntegration":"HEAD vs {{branch}}","headVsOriginIntegration":"HEAD vs origin/{{branch}}","hide":"Hide","hideExplanation":"Hide explanation","import":"Import","imported":"Imported","importedCount_one":"{{count}} imported","importedCount_other":"{{count}} imported","importFromGitHub":"Import from GitHub","importSubtitle":"Choose a detected remote, load open issues or pull requests, and import one into the board.","importTypeAriaLabel":"Import type","integrationAheadOfHead_one":"{{branch}} has {{count}} commit(s) HEAD doesn't","integrationAheadOfHead_other":"{{branch}} has {{count}} commit(s) HEAD doesn't","issueCount_one":"{{count}} issue","issueCount_other":"{{count}} issues","load":"Load","loadFromRepoAriaLabel":"Load {{tab}} from repository","loading":"Loading…","loadingAriaLabel":"Loading {{tab}}","loadingCommits":"Loading commits...","loadingDiff":"Loading diff...","loadingIssues":"Loading open issues…","loadingPulls":"Loading open pull requests…","loadingStashDiff":"Loading stash diff…","loadingTitle":"Loading…","loadMoreCommits":"Load more commits","loadTabTitle":"Load {{tab}}","localAheadOfOriginIntegration_one":"Local {{branch}} is {{count}} commit(s) ahead of origin/{{branch}}","localAheadOfOriginIntegration_other":"Local {{branch}} is {{count}} commit(s) ahead of origin/{{branch}}","localBehindOriginIntegration_one":"Local {{branch}} is {{count}} commit(s) behind origin/{{branch}}","localBehindOriginIntegration_other":"Local {{branch}} is {{count}} commit(s) behind origin/{{branch}}","localVsOrigin":"Local {{branch}} vs origin","manualPrFlowHint":"Use the footer action to run PR-first completion for this task.","mergeBadge":"merge","mergeConflictDetected":"Merge conflict detected. Resolve/rebase branch and retry reclaim.","mergedTaskDone":"Merged — task moved to Done","mergeLabel":"Merge","mergePrButton":"Merge pull request","mergeStrategyMerge":"merge","mergeStrategyRebase":"rebase","mergeStrategySquash":"squash","mergingPrHint":"Merging pull request…","mergingStatus":"Merging…","modalTitle":"Git Manager","modified":"Modified","modifiedCount_one":"{{count}} modified","modifiedCount_other":"{{count}} modified","newBranchName":"New branch name","noAheadCommitsFound":"No ahead commits found (may need to fetch first)","noBranchesFound":"No branches found","noCommitsFound":"No commits found","noCommitsOnRemote":"No commits found on {{remote}}. Try fetching first.","noDescription":"(no description)","noIssueSelected":"No issue selected","noIssueSelectedHint":"Choose an issue from the list to inspect its title and description.","noLocalRefTitle":"No local refs/heads/<branch> exists; nothing to compare against origin.","noLocalTracking":"no local tracking","noMatchingBranches":"No matching branches","noMatchingCommits":"No matching commits","noOpenIssues":"No open issues found","noOpenPulls":"No open pull requests found","noOriginTracking":"no origin tracking","noPullSelected":"No pull request selected","noPullSelectedHint":"Choose a pull request from the list to inspect its details.","noRefFound":"no ref found for {{branch}}","noRefFoundTitle":"Neither refs/heads nor refs/remotes/origin has this branch","noRemotes":"No remotes","noRemotesDetected":"No GitHub remotes detected","noRemotesInstructions":"Add a GitHub remote to this repository, then reopen the modal.","noReviewComments":"No review comments synced yet","noReviewsYet":"No reviews yet","noStagedChanges":"No staged changes","noStagedChangesToCommit":"No staged changes to commit","noStashes":"No stashes","nothingLoadedInstructions":"Select a repository and click Load to start reviewing import candidates.","nothingLoadedYet":"Nothing loaded yet","notOnIntegrationBranch":"(not on {{branch}})","notOnIntegrationBranchBtn":"Not on integration branch ({{branch}})","notOnIntegrationBranchTitle":"Currently on a non-integration branch","noUnstagedChanges":"No unstaged changes","openPullsFrom":"Open pull requests from {{remote}}","originIntegrationAheadOfHead_one":"origin/{{branch}} has {{count}} commit(s) HEAD doesn't","originIntegrationAheadOfHead_other":"origin/{{branch}} has {{count}} commit(s) HEAD doesn't","pop":"Pop","popStashTitle":"Pop stash (apply and drop)","prAuthUnavailable":"PR auth unavailable — run 'gh auth login'","prChecks":{"empty":"No checks reported yet","refreshAriaLabel":"Refresh checks","required":"Required","retry":"Retry","summary":"{{passing}} passing, {{failing}} failing, {{pending}} pending","viewDetails":"View details"},"previewHeading":"Preview","previewIssueMeta":"Issue #{{number}}","previewPullMeta":"Pull Request #{{number}}","prMerged":"Pull request merged","prMergeFailed":"Failed to merge pull request","projectRootNotAvailable":"Project root path not available","prRefreshFailed":"Failed to refresh PR","prStatusRefreshed":"PR status refreshed","prUnlinkConfirm":"Unlink PR #{{number}} from this task? The PR will not be closed.","prUnlinked":"Unlinked PR #{{number}}","pull":"Pull","pullCompleted":"Pull completed","pullCount_one":"{{count}} pull request","pullCount_other":"{{count}} pull requests","pullFailed":"Pull failed","pullOptions":"Pull options","pullOptionsMenu":"Pull options menu","pullRebase":"Pull --rebase","pullRebaseCompleted":"Pull --rebase completed","pullRequestHeading":"Pull Request","pullRequestsCount_one":"{{count}} pull requests","pullRequestsCount_other":"{{count}} pull requests","push":"Push","pushCompleted":"Push completed","pushFailed":"Push failed","pushLabel":"Push:","pushUrlLabel":"push URL","recentCommitsOnRemote":"Recent commits on {{remote}}","recentIntegrationAdvances":"Recent integration-branch advances","reCheckConflicts":"Re-check conflicts","refresh":"Refresh","refreshPrStatus":"Refresh PR status","refreshToCheckMerge":"Refresh PR status to check merge readiness","remoteAdded":"Remote '{{name}}' added successfully","remoteName":"Remote name","remoteOnlyIntegrationTipTitle":"No local refs/heads/<branch>; using refs/remotes/origin/<branch> as the integration tip.","remoteOnlyTrackLocally":"(remote-only — run git switch {{branch}} to track locally)","remoteRemoved":"Remote '{{name}}' removed","remoteRenamed":"Remote renamed to '{{name}}'","remoteUrlUpdated":"Remote URL updated","removeRemote":"Remove remote","removeRemoteMessage":"Are you sure you want to remove remote '{{name}}'?","removeRemoteTitle":"Remove Remote","repoMustBeSelected":"Repository must be selected","repositoryLabel":"Repository","repositoryStatus":"Repository Status","repositoryUrl":"Repository URL","resizeIssuesList":"Resize issues list","resolvedFrom":"Resolved from {{source}}","retry":"Retry","retryButton":"Retry","retryConflictReclaim":"Retry conflict reclaim","reviewLabel":"Review","reviewsLabel":"Reviews","searchCommits":"Search commits...","sectionBranches":"Branches","sectionChanges":"Changes","sectionCommits":"Commits","sectionRemotes":"Remotes","sectionStashes":"Stashes","sectionStatus":"Status","sectionWorktrees":"Worktrees","selectedRemote":"selected remote","selectFileToViewDiff":"Select a file to view its diff","selectIssueAriaLabel":"Select issue #{{number}}","selectPullAriaLabel":"Select pull request #{{number}}","selectRemoteAriaLabel":"Select Git remote","selectRemotePlaceholder":"Select remote…","selectRemoteToViewDetails":"Select a remote to view details","sidebarAriaLabel":"Git Manager Sections","stageAll":"Stage All","stageAllAndCommit":"Stage All & Commit","stageAllAndCommitTitle":"Stage all and commit","stageCount_one":"Stage ({{count}})","stageCount_other":"Stage ({{count}})","staged":"Staged","stagedChanges_one":"Staged Changes ({{count}})","stagedChanges_other":"Staged Changes ({{count}})","stagedCount_one":"{{count}} staged","stagedCount_other":"{{count}} staged","stagedFiles_one":"Staged {{count}} file(s)","stagedFiles_other":"Staged {{count}} file(s)","stageFile":"Stage file","stageSelected":"Stage selected","staleIndexWarning":"<strong>Stale index detected.</strong> HEAD has advanced (typically because Fusion's merger updated the integration-branch ref) but the index still reflects the previous tip — \`git status\` will report the new commits inverted as \\"staged changes.\\" Enable <mergeCode>mergeAdvanceAutoSync</mergeCode> in Settings to have the merger reconcile automatically, or run <resetCode>git reset --hard HEAD</resetCode> to snap forward manually.","stash":"Stash","stashApplied":"Stash applied","stashConflict":{"copied":"Stash SHA copied.","copyFailed":"Could not copy stash SHA.","dropStash":"Drop stash","failedWarning":"Automatic restore failed. Your changes are preserved in the stash above; use git stash apply <ref> to recover manually, or use Retry below.","keepIncoming":"Keep incoming","keepMine":"Keep mine","openInEditor":"Open in editor","retryRestore":"Retry restore","summary":"Pulled {{branch}}, but restoring local edits from stash produced conflicts.","title":"Resolve auto-stash conflicts"},"stashDropped":"Stash dropped","stashMessagePlaceholder":"Stash message (optional)","stashPopped":"Stash popped","stashRef":"stash@{{index}}","statusLabelBranch":"Branch","statusLabelCommit":"Commit","statusLabelIntegrationBranch":"Integration branch","statusLabelStashes":"Stashes","statusLabelVsOrigin":"vs origin","statusLabelWorkingTree":"Working Tree","switchedToBranch":"Switched to {{name}}","sync":"Sync","synced":"Synced","syncedWithOrigin":"Synced with origin (pull --rebase + push)","syncedWorktreeToIntegrationTip":"Synced worktree to local integration tip","syncFailed":"Sync failed","syncing":"Syncing…","syncLocalTip":"Sync local tip","syncLocalTipTitle":"Sync working tree to local integration tip (same as banner Pull)","syncOriginTitle":"Pull --rebase from origin, then push current branch","syncWithOriginFailed":"Sync with origin failed","syncWorkingTree":"Sync working tree","syncWorkingTreeTitle":"Pull the integration branch into your working tree (auto-stashes uncommitted edits and restores them)","tabIssues":"Issues","tabPullRequests":"Pull Requests","tip":"tip","toolbarAriaLabel":"GitHub import controls","tryDifferentFilter":"Try a different label filter or choose another repository.","unlinkButton":"Unlink","unresolvedMergeConflicts":"Unresolved merge conflicts","unstageAll":"Unstage All","unstageCount_one":"Unstage ({{count}})","unstageCount_other":"Unstage ({{count}})","unstaged":"Unstaged","unstagedChanges_one":"Unstaged Changes ({{count}})","unstagedChanges_other":"Unstaged Changes ({{count}})","unstagedFiles_one":"Unstaged {{count}} file(s)","unstagedFiles_other":"Unstaged {{count}} file(s)","unstageFile":"Unstage file","unstageSelected":"Unstage selected","untracked":"Untracked","untrackedCount_one":"{{count}} untracked","untrackedCount_other":"{{count}} untracked","upToDate":"Up to date","view":"View","viewOnGithub":"View on GitHub","waitingFor":"Waiting for: {{reasons}}","whatDoesThisMean":"What does this mean?","workingTreeClean":"Clean","workingTreeModified":"Modified","worktreeBadgeBare":"bare","worktreeBadgeMain":"main","worktreesInUse_one":"{{count}} in use","worktreesInUse_other":"{{count}} in use","worktreesTotal_one":"{{count}} total","worktreesTotal_other":"{{count}} total"}`),oe={body:"If Fusion has saved you time, a GitHub star goes a long way. It helps other developers discover the project and keeps the team motivated to ship improvements.",dismissLabel:"Dismiss GitHub star prompt",regionLabel:"GitHub star prompt",starOnGitHub:"Star on GitHub",title:"Enjoying Fusion?"},ae={activeCount_one:"{{count}} active goals",activeCount_other:"{{count}} active goals",addGoal:"Add Goal",archive:"Archive",capError:"Cannot activate more than 5 goals. Resolve an active goal before activating another.",capWarning:"Approaching the 5-active goal cap. Keep active goals focused.",createError:"Unable to create goal right now. Please try again.",drafting:"Drafting…",draftWithAi:"Draft with AI",emptyState:"No goals yet. Add one to begin tracking strategic outcomes.",labelDescription:"Description",labelTitle:"Title",linkedMissions:"Linked missions",linkedMissionsCount_one:"{{count}} linked",linkedMissionsCount_other:"{{count}} linked",linkedMissionsLoadError:"Unable to load linked missions right now. Please try again.",linkedMissionsTitle:"Linked Missions",linkingMission:"Linking…",linkMission:"Link mission",linkMissionError:"Unable to link mission right now. Please try again.",loadError:"Unable to load goals right now. Please try again.",loading:"Loading goals…",missionPicker:"Mission to link",missionsLoadError:"Unable to load missions right now. Please try again.",noLinkedMissions:"No linked missions.",saveError:"Unable to save goal right now. Please try again.",selectMission:"Select a mission",status:"Status",title:"Goals",titleRequired:"Title is required.",unarchive:"Unarchive",unlinkMission:"Unlink mission",unlinkMissionError:"Unable to unlink mission right now. Please try again.",updateError:"Unable to update goal status right now. Please try again."},ne={prLinkLabel:"PR #{{number}} ({{state}})"},ie={abandonGroup:"Abandon group",ariaLabel:"Branch group details",autoMergeEnabled:"Auto-merge enabled",completionText:"{{landed}} of {{total}} members finished",errorLoading:"Failed to load branch group",loading:"Loading branch group…",members:"Members",mergeIntoMain:"Merge group into main",openPR:"Open PR",openTask:"Open task",prClosed:"Group PR closed",prMerged:"Group PR merged",sharedBranch:"Shared branch",status:"Status",title:"Branch Group {{id}}",unavailable:"Branch group unavailable"},se={activePlanningSessions_one:"{{count}} active planning session",activePlanningSessions_other:"{{count}} active planning sessions",addFirstScript:"Add your first script",additionalHeaderActions:"Additional header actions",agentsView:"Agents view",allBaseBranches:"All base branches",allWorkingBranches:"All working branches",automation:"Automation",baseBranch:"Base branch",boardView:"Board view",browseFiles:"Browse Files",chatView:"Chat view",closeSearch:"Close search",commandCenterView:"Dashboard",createTaskWithPlanning:"Create a task with AI planning",devServerView:"Dev Server",documentsView:"Artifacts view",engineOptions:"Engine options",evalsView:"Evals",fusionLogo:"Fusion logo",gitManager:"Git Manager",goalsView:"Goals",importFromGitHub:"Import from GitHub",insightsView:"Insights",listView:"List view",loadingScripts:"Loading scripts...",localNode:"Local",mailbox:"Mailbox",mailboxView:"Mailbox view",mailboxWithCount_one:"Mailbox ({{count}})",mailboxWithCount_other:"Mailbox ({{count}})",manageProjects:"Manage Projects",manageScripts:"Manage Scripts...",memoryView:"Memory",missionsView:"Missions view",moreActions:"More actions",moreHeaderActions:"More header actions",moreViews:"More views",noBaseBranch:"No base branch",noScriptsAddOne:"No scripts — add one…",noScriptsConfigured:"No scripts configured",noWorkingBranch:"No working branch",openSearch:"Open search",openTerminal:"Open Terminal",pauseTriage:"Pause triage",pendingApprovals:"Pending approvals",projects:"Projects",quickScripts:"Quick scripts",researchView:"Research",resumePlanningSession:"Resume planning session",resumePlanningSessionCount_one:"Resume planning session ({{count}})",resumePlanningSessionCount_other:"Resume planning session ({{count}})",resumeScheduling:"Resume scheduling",scripts:"Scripts",scriptsSubmenu:"Scripts submenu",searchTasks:"Search tasks...",secretsView:"Secrets",selectNode:"Select node",selectProject:"Select project",settings:"Settings",showScripts:"Show scripts",skillsView:"Skills",startAiEngine:"Start AI engine",stashRecoveryView:"Stash Recovery",stopAiEngine:"Stop AI engine",switchNode:"Switch node",switchProject:"Switch project",terminal:"Terminal",todosView:"Todos",unreadChatResponse:"Unread chat response",unreadMessages_one:"{{count}} unread messages",unreadMessages_other:"{{count}} unread messages",viewActivityLog:"View Activity Log",viewProjects:"View Projects",viewUsage:"View usage",workflows:"Workflows",workingBranch:"Working branch"},re={activeTasks:"Active Tasks",anomalyBody:"Fusion found allocator state that can cause task IDs to be reused or overwrite live task records.",anomalyDetected:"Task ID integrity anomaly detected",completed:"Completed",failed:"Failed",inFlightAgents:"In-Flight Agents",lastError:"Last Error",metricsTitle:"Health Metrics",recheck:"Re-check",rechecking:"Re-checking…",refreshFailed:"Failed to refresh integrity status."},le={autoProfile:"Auto / use Hermes default",binaryPathHelp:"Leave blank to resolve {{cmd}} from your PATH.",binaryPathLabel:"Binary path",binaryPathPlaceholder:"hermes (defaults to PATH)",defaultProfile:" (default)",description:"Drives the local {{cmd}} CLI as a subprocess. Each Fusion prompt is sent as {{chatCmd}}; subsequent prompts resume the same hermes session via {{resumeFlag}}. Provider, model, and skills are configured inside hermes itself; this card only chooses overrides.",detected:"✓ hermes detected{{version}}{{path}}.",gitHubLink:"Hermes on GitHub",maxTurnsHelp:"Cap per Hermes turn. Hermes's own default is 90; we cap lower.",maxTurnsLabel:"Max turns",modelControlled:"Controlled by profile: {{profile}}",modelHelp:"Optional — overrides Hermes's configured default model.",modelLabel:"Model override",modelPlaceholder:"e.g. claude-sonnet-4-5, MiniMax-M3",notDetected:"{{cmd}} not detected. Install the upstream agent:",notFound:"✗ {{reason}}",probing:"Probing local hermes binary…",profileHelp:"Select a Hermes profile to use. Activates the profile by setting {{env}} to the profile directory when invoking {{cmd}}.",profileLabel:"Profile (optional)",profileModelSeparator:" — {{model}}",providerControlled:"Controlled by profile: {{profile}}",providerHelp:"Inference provider Hermes routes calls through (default: {{default}}).",providerLabel:"Provider",savedDetected:"Saved · ✓ hermes detected{{version}}.",savedNotFound:"Saved · ✗ {{reason}}",savedProbeFailed:"Saved, but probe failed.",settingsSaved:"Settings saved.",statusDetected:"✓ Detected{{version}}{{path}}",statusNotDetected:"✗ {{reason}}",subname:"by Nous Research",testFailed:"Test failed — see status above.",timeoutHelp:"Fusion-side hard cap. Default 5 min.",timeoutLabel:"CLI hard-kill timeout (ms)",yoloHelp:"Required for non-interactive sessions that trigger shell-style tools.",yoloLabel:"Auto-approve dangerous tool calls ({{flag}})"},de={agent:"Agent",breakDownSubtasks:"Break down into AI-generated subtasks",clearSelection:"Clear selection",collapse:"Collapse",collapseDescription:"Collapse description",collapseTaskOptions:"Collapse advanced task options",creating:"Creating...",custom:"Custom",deps:"Deps",editingDescription:"Editing Description",enterDescriptionFirst:"Enter a description first",expand:"Expand",expandDescription:"Expand description",expandTaskOptions:"Expand advanced task options",hintEnterEsc:"Enter to create · Esc to cancel",loadingAgents:"Loading agents...",model_one:"model",model_other:"model",models:"Models",noAgentsAvailable:"No agents available",node:"Node",noExistingTasks:"No existing tasks",openPlanningMode:"Open planning mode with current description",optionalWorkflowStepChecked:"{{name}} ✓",optionalWorkflowSteps:"Optional workflow steps",plan:"Plan",preset:"Preset",priority:"Priority",priorityLabel:"Priority: {{level}}",projectDefaultLocal:"Project default / local",removeImage:"Remove image",save:"Save",searchTasks:"Search tasks…",selectAgent:"Select agent",selectExecutionNode:"Select execution node",subtask:"Subtask",toggleOptionalWorkflowStep:"Toggle optional workflow step: {{name}}",useDefault:"Use default",whatNeedsToBeDone:"What needs to be done?"},ce={allInsights:"All Insights",alreadyRunning:"Insight generation is already running. Showing the active run.",alreadyRunningShort:"Insight generation is already running",archived:'Archived "{{title}}"',archivedMsg:"Insight archived: {{title}}",archiveLabel:"Archive this insight",archiveTitle:"Archive this insight",archiving:'Archiving "{{title}}"...',backlogHealth:"Backlog Health",categoriesLabel:"Insight categories",configureModel:"Configure insight generation model",configureModelTitle:"Configure model",createTaskLabel:"Create task from this insight",createTaskTitle:"Create task from this insight",creatingTask:'Creating task from "{{title}}"...',dismissed:'Dismissed "{{title}}"',dismissedMsg:"Insight dismissed: {{title}}",dismissing:'Dismissing "{{title}}"...',dismissLabel:"Dismiss this insight",dismissTitle:"Dismiss this insight",failedToArchive:"Failed to archive insight",failedToCreateTask:"Failed to create task",failedToDismiss:"Failed to dismiss insight",failedToPreparePayload:"Failed to prepare task payload from insight",failedToStart:"Failed to start generation",failedToUnarchive:"Failed to unarchive insight",generateDescription:"Generate insights to get AI-powered recommendations for your project.",generateFirst:"Generate First Insights",generateInsights:"Generate new insights",generateInsightsBtn:"Generate Insights",generating:"Generating...",generatingInsights:"Generating insights...",generationModel:"Insight generation model",generationStarted:"Insight generation started",hideArchived:"Hide archived insights",hideArchivedLabel:"Hide Archived",latestRun:"Latest run:",loading:"Loading insights...",model:"Model",modelConfigured:"Model: {{model}}",noInsightsYet:"No insights yet",runCompleted:"{{created}} created, {{updated}} updated",showAllInsights:"Show all insights",showArchived:"Show archived insights",showArchivedLabel_one:"Show Archived ({{count}})",showArchivedLabel_other:"Show Archived ({{count}})",showBacklogHealth:"Show only backlog health insights",taskCreated:'Task created from "{{title}}"',taskCreatedMsg:"Task created: {{title}}",taskCreationUnavailable:"Task creation is unavailable in this view",title:"Insights",unarchived:'Unarchived "{{title}}"',unarchivedMsg:"Insight unarchived: {{title}}",unarchiveLabel:"Unarchive this insight",unarchiveTitle:"Unarchive this insight",unarchiving:'Unarchiving "{{title}}"...',usePlanningDefault:"Use planning default"},ue={addContextDirection:"Add any extra context or direction...",additionalComments:"Additional comments (optional)",aiThinking:"AI is thinking...",appliedMessage:"The {{targetType}}'s scope and verification have been applied.",description:"Description",error:{failedToApply:"Failed to apply interview results",failedToRestoreQuestion:"Failed to restore session question.",failedToRestoreResult:"Failed to restore session result.",failedToResume:"Failed to resume session.",failedToSkip:"Failed to skip {{targetLabel}} interview",failedToStart:"Failed to start {{targetLabel}} interview",failedToSubmit:"Failed to submit response",sessionEncounteredError:"The session encountered an error.",sessionFailed:"Session failed while contacting the AI."},hideThinking:"Hide thinking",interviewDescription:"The AI will interview you to refine the {{targetType}}'s scope, acceptance criteria, and verification methods. Each {{targetType}} can have its own refined plan or inherit context from the mission level.",missionContext:"Mission context:",no:"No",noAdditionalDetails:"No additional details were generated for this item.",planningNotes:"Planning Notes",preparingQuestion:"Preparing next question...",progressText:"Question {{progress}} of ~6",reconnecting:"Reconnecting…",refinedScope:"Refined Scope",refineScope:"Refine {{label}} scope with AI",sendToBackground:"Send to background",sessionActiveAnotherTab:"Session is active in another tab.",showThinking:"Show thinking",startInterview:"Start Interview",targetLabel:{milestone:"Milestone",slice:"Slice"},typeAnswerHere:"Type your answer here...",updated:"{{label}} Updated",useMissionContext:"Use Mission Context",verificationCriteria:"Verification Criteria",yes:"Yes"},pe={noIssuesFound:"No issues found"},me={collapse:"Collapse {{name}} lane",expand:"Expand {{name}} lane"},ge={apply:"Apply",applying:"Applying...",archiveSelected:"Archive selected",archiveSelectedTitle:"Archive selected tasks that are in Done",archiveUnavailable:"Archive action is unavailable",archiveViaButton:"Tasks can only be archived via the archive button",bulkArchiveDone_one:"Archive {{count}} Done",bulkArchiveDone_other:"Archive {{count}} Done",bulkArchiveMessage_one:"Archive {{count}} selected task(s)?",bulkArchiveMessage_other:"Archive {{count}} selected task(s)?",bulkArchiveNoTasks:"No selected tasks can be archived (only done tasks)",bulkArchiveSummary:"Archived {{archived}} · {{skipped}} skipped · {{failed}} failed",bulkArchiveTitle:"Archive Selected Tasks",bulkDeleteAll:"Delete All",bulkDeleteArchiveSummary:"Archived {{archived}}, deleted {{deleted}}, failed {{failed}}",bulkDeleteMessage_one:"Delete {{count}} selected task(s)?",bulkDeleteMessage_other:"Delete {{count}} selected task(s)?",bulkDeleteNoTasks:"No selected tasks can be deleted (archived tasks are excluded)",bulkDeleteSummary_one:"Deleted {{count}} task · {{skipped}} archived skipped · {{failed}} failed",bulkDeleteSummary_other:"Deleted {{count}} tasks · {{skipped}} archived skipped · {{failed}} failed",bulkDeleteTitle:"Delete Selected Tasks",bulkDeleteWithDoneMessage:"Delete {{deletable}} task(s), or archive the {{done}} done task(s) and delete the rest?",bulkEdit:"Bulk Edit",bulkEditModelsLabel:"Bulk Edit Models & Node:",bulkNoChanges:"No changes to apply",bulkPauseNoTasks:"No selected tasks can be paused",bulkPauseSummary:"Paused {{paused}} · {{skipped}} skipped · {{failed}} failed",bulkUnpauseNoTasks:"No selected tasks can be unpaused",bulkUnpauseSummary:"Unpaused {{unpaused}} · {{skipped}} skipped · {{failed}} failed",bulkUpdateFailed:"Failed to update models",bulkUpdateNoTasks:"No valid tasks to update (archived tasks cannot be modified)",bulkUpdateSuccess_one:"Updated {{count}} task(s)",bulkUpdateSuccess_other:"Updated {{count}} task(s)",cancelMove:"Cancel Move",clear:"Clear",clearColumnFilter:"Clear column filter",colColumn:"Column",colDependencies:"Dependencies",colProgress:"Progress",colRetries:"Retries",colStatus:"Status",colTitle:"Title",deleteSelected:"Delete selected",deleteSelectedTitle:"Delete selected tasks",dependentsDeleteMessage:"Task {{taskId}} has dependents: {{dependents}}. Remove dependency references and force delete?",doneEditing:"Done Editing",doneHiddenChip:"Done hidden",executorModel:"Executor Model",fastMode:"Fast mode",filterChip:"Filter: {{column}}",forceDelete:"Force Delete",forceDeleteTitle:"Force Delete Task",hidden_one:"{{count}} hidden",hidden_other:"{{count}} hidden",hideDone:"Hide Done",hideDoneTitle:"Hide done tasks",keepProgress:"Keep Progress",lastColumnWarning:"At least one column must be visible",lineageArchiveMessage:`{{taskId}} has lineage children ({{children}}) that reference it as a source parent.
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"},he={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"},fe={auditChecksTitle:"Audit Checks",autoSummarizeHint:"Automatically compact 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",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"},be={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"},ve={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"},ke=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?"}'),ye={createdFromPlanning:"Created {{id}} from planning mode",createdFromSubtask:"Created {{ids}} from subtask breakdown",createdMultipleFromPlanning:"Created {{ids}} from planning mode"},we={noChange:"No change",selectPlaceholder:"Select a model…"},Ae={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"},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"},Se={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…",title:"Select Models",useDefault:"Use default",usingDefault:"Using default"},Ce={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",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"},Te={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?"},Pe={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}}"},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"},Re={local:"Local"},Fe={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"}},Le={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"},De={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}}",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."},Me={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}}",statusProbing:"Probing Paperclip server…",statusUnreachable:"{{reason}}",tabApi:"API (URL + token)",tabCliAutoDerve:"Local CLI (auto-derive)",testFailed:"Test failed — see status above.",unreachable:"{{reason}}"},Ie={filterHint:"{{extensions}} ext, {{skills}} skill, {{prompts}} prompt, {{themes}} theme"},Ne={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}}"},xe={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..."},Ee={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",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"},He={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",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…"}},Be={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"},Oe={activeTasks:"Active Tasks",agents:"Agents",cannotPauseWhileInitializing:"Cannot pause 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:"Pause",pauseProject:"Pause project",removeProject:"Remove project",resume:"Resume",resumeProject:"Resume project"},Ue={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"},_e={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"},je={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"},qe={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."}},We={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"},Ge={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}}"},Ve={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"},ze={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"},Ke={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"},Ye={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"},summarySection:"Routing Summary",title:"Task Routing",unavailablePolicy:"Unavailable-node policy",unhealthy:"Unhealthy",useProjectDefault:"Use project default"},Qe={nousResearchLogoAlt:"Nous Research"},Je=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":"Triage","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":"Triage","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":"Triage","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"},Xe={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"},$e={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"},et={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"},tt={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"},ot=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). ","perAgentSettingsOverrideProjectDefaultsEachCategory":"Per-agent settings override project defaults. Each category controls a separate approval gate."},"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"},"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","directoryForMemoryBackupsRelativeToProjectRoot":"Directory for memory backups, relative to project root.","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.","numberOfMemoryBackupsToKeepOldestAre":"Number of memory backups to keep (oldest are deleted first). Range: 1-100.","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.","whenEnabledTheDatabaseIsBackedUpAutomatically":"When enabled, the database is backed up automatically on a schedule","createFailed":"Failed to create backup"},"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","commandUsedToRunTestsInjectedIntoGenerated":"Command used to run tests — injected into generated task specs","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. ","featureFlags":"Feature Flags"},"footer":{"help":"Help","version":"Version {{version}}","checkUpdates":"Check for updates","helpDiscussions":"Help and discussions"},"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)","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)","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.","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. ","workflowsOrChangelogModeWhenContributorsShouldUpdate":" workflows, or changelog mode when contributors should update an existing changelog file. "},"globalGeneral":{"andShowsUpdateNoticesInTheCLIAnd":" and shows update notices in the CLI and dashboard. Cadence is governed by the frequency below. ","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. ","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. ","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.","rowsAndDoesNotAffectAssistantTextOr":" rows and does not affect assistant text or tool rows. ","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. ","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. ","whenEnabledFusionChecksNpmForNewVersions":" When enabled, Fusion checks npm for new versions of","whenEnabledTheDashboardProbesForAGlobally":" When enabled, the dashboard probes for a globally-installed"},"globalModels":{"allow":"allow","commaSeparatedValuesSentToOpenRouterModelSync":"Comma-separated values sent to OpenRouter model sync.","controlsHowMuchReasoningEffortTheAIModel":"Controls how much reasoning effort the AI model uses. Higher levels produce better results but cost more.","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.","defaultModel":"Default Model","deny":"deny","fallbackModel":"Fallback Model","flowAndPublishesThemUnderTheOpencodeGo":" flow and publishes them under the opencode-go provider in model pickers. ","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. Default: Fusion.","leaveEmptyToOmitThisHeaderDefaultHttps":"Leave empty to omit this header. Default: https://runfusion.ai.","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.","useDefault":"Use default","whenEnabledStartupFetchesTheLatestAvailableModels":" When enabled, startup fetches the latest available models from the OpenRouter API so model pickers always include the newest catalog. ","whenEnabledStartupRefreshesModelsThroughTheLocal":" When enabled, startup refreshes models through the local "},"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.","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","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: daily at 3 AM)","cronExpressionForDreamProcessing":"Cron expression for dream processing.","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","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.","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","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. Leave off unless you explicitly want 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. ","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","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.","fusion":"Fusion","gitHubAuthentication":"GitHub Authentication","gitHubAuthMode":"GitHub auth mode","gitHubCLIGhAuth":"GitHub CLI (gh auth)","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.","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":" 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","trailerCreditingFusionRecognizedByGitHubForShared":" trailer crediting Fusion (recognized by GitHub for shared attribution). ","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.","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.","whenEnabledTasksThatPassReviewAreAutomatically":"When enabled, tasks that pass review are automatically merged into the main branch","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.","whenUsingSmartPreferMainAutomaticallyPreferThe":" When using smart-prefer-main, automatically prefer the branch side for files that main has recently modified to avoid silently discarding branch work. "},"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."},"nodeSync":{"alwaysAsk":"Always ask","automaticallySynchronizeSettingsBetweenThisNodeAndConnected":"Automatically synchronize settings between this node and connected remote nodes","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","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."},"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. ","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. ","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://. ","leaveBlankToPublishWithoutAuthenticationWhenSet":" Leave blank to publish without authentication. When set, Fusion sends an Authorization Bearer header with ntfy requests. ","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)."},"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.","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. ","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. "},"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.","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.","installationFailed":"Installation failed"},"researchGlobal":{"advancedExternalSearchProviders":"Advanced — external search providers","alwaysOn":"Always on","brave":"Brave","builtInUsesAgentWebTools":" Built-in (uses agent web tools) ","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. ","searchProvider":"Search Provider","searXNG":"SearXNG","searXNGURL":"SearXNG URL","tavily":"Tavily","webSearch":" Web Search "},"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. "},"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. ","openai":"openai","retentionDays":"Retention (days)","scheduledEvals":"Scheduled Evals","suggestOnly":"Suggest only"},"scheduling":{"addIgnoredPath":" Add ignored path ","archiveAgentLog":"Archive Agent Log","archiveCompletedTasksAfterDays":"Archive Completed Tasks After (days)","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.","compactSummaryAndRecentEntries":"Compact summary and recent entries","completedTasksOlderThanTheThresholdAreMoved":"Completed tasks older than the threshold are moved out of the active task database.","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.","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","maximumConcurrentPlanningAgents":"Maximum concurrent planning agents","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":" 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&apos;s agent session shows no activity for longer than this duration, the task is terminated and retried. Leave empty to disable. Suggested: 10.","whenEnabledTasksThatModifyTheSameFiles":"When enabled, tasks that modify the same files are queued serially to avoid merge conflicts","whenEnabledTasksWithStalePlansPROMPTMd":"When enabled, tasks with stale plans (PROMPT.md older than the threshold) are automatically sent back to planning for replanning","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."},"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. ","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","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","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.","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."},"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."}}`),at=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.","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.","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":"You won't be able to import issues from GitHub, but you can still create tasks manually.","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 your project","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.","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","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","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, pick an existing directory or paste a GitHub clone URL.","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.","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!"}`),it={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}}",editProfile:"Edit {{name}}",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}}"},nt={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}}"},st={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"},rt={copyReference:"Copy stash reference"},lt={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"},dt={aiPrompt:"AI Prompt",aiPromptStepTitle:"AI Prompt step",command:"Command",commandStepTitle:"Command step",createTask:"Create Task",createTaskStepTitle:"Create Task step"},ct={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..."},ut={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"},pt={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."},gt=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}}"},"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","standard":"Standard","updated":"Execution mode updated to {{mode}}"},"executionModeFast":"Fast","executionModeStandard":"Standard","executionStatsAria":"Task execution statistics","executionTiming":"Execution Timing","executionTimingMetricsAria":"Execution timing metrics","firstUsed":"First used","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"},"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","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"},"tabs":{"changes":"Changes","chat":"Chat","comments":"Comments","definition":"Definition","documents":"Artifacts","logs":"Logs","model":"Model","pullRequest":"Pull Request","review":"Review","routing":"Routing","stats":"Stats","terminal":"Terminal","workflow":"Workflow"},"terminal":{"loading":"Loading terminal…"},"timedDuration":"Timed duration","timestamps":{"ariaLabel":"Task timestamps","created":"Created","updated":"Updated"},"timingEvents":"Timing events","title":{"summarize":"Summarize as title","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"}`),ht={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."},ft={moreFields:"Additional fields",orphaned:"Orphaned fields",saveFailed:"Failed to save field",unset:"—"},bt={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"},vt={githubImported:"Imported {{id}} from GitHub"},kt={autoMergeOff:"Auto-merge off",autoMergeOn:"Auto-merge on",autoMergePreferenceUpdated:"Per-task auto-merge preference updated",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"},yt={addTaskPlaceholder:"Add a task...",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"},he={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"},fe={auditChecksTitle:"Audit Checks",autoSummarizeHint:"Automatically compact 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",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"},be={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"},ve={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"},ke=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?"}'),ye={createdFromPlanning:"Created {{id}} from planning mode",createdFromSubtask:"Created {{ids}} from subtask breakdown",createdMultipleFromPlanning:"Created {{ids}} from planning mode"},we={noChange:"No change",selectPlaceholder:"Select a model…"},Ae={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"},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"},Se={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…",title:"Select Models",useDefault:"Use default",usingDefault:"Using default"},Ce={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",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"},Te={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?"},Pe={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}}"},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"},Re={local:"Local"},Fe={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"}},Le={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}}",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."},De={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}}",statusProbing:"Probing Paperclip server…",statusUnreachable:"{{reason}}",tabApi:"API (URL + token)",tabCliAutoDerve:"Local CLI (auto-derive)",testFailed:"Test failed — see status above.",unreachable:"{{reason}}"},Ie={filterHint:"{{extensions}} ext, {{skills}} skill, {{prompts}} prompt, {{themes}} theme"},Ne={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}}"},xe={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..."},Ee={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",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"},He={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",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…"}},Be={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"},Oe={activeTasks:"Active Tasks",agents:"Agents",cannotPauseWhileInitializing:"Cannot pause 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:"Pause",pauseProject:"Pause project",removeProject:"Remove project",resume:"Resume",resumeProject:"Resume project"},Ue={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"},_e={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"},je={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"},qe={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."}},We={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"},Ge={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}}"},Ve={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"},ze={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"},Ke={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"},Ye={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"},summarySection:"Routing Summary",title:"Task Routing",unavailablePolicy:"Unavailable-node policy",unhealthy:"Unhealthy",useProjectDefault:"Use project default"},Qe={nousResearchLogoAlt:"Nous Research"},Je=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":"Triage","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":"Triage","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":"Triage","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"},Xe={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"},$e={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"},et={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"},tt={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"},ot=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). ","perAgentSettingsOverrideProjectDefaultsEachCategory":"Per-agent settings override project defaults. Each category controls a separate approval gate."},"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"},"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","directoryForMemoryBackupsRelativeToProjectRoot":"Directory for memory backups, relative to project root.","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.","numberOfMemoryBackupsToKeepOldestAre":"Number of memory backups to keep (oldest are deleted first). Range: 1-100.","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.","whenEnabledTheDatabaseIsBackedUpAutomatically":"When enabled, the database is backed up automatically on a schedule","createFailed":"Failed to create backup"},"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","commandUsedToRunTestsInjectedIntoGenerated":"Command used to run tests — injected into generated task specs","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. ","featureFlags":"Feature Flags"},"footer":{"help":"Help","version":"Version {{version}}","checkUpdates":"Check for updates","helpDiscussions":"Help and discussions"},"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)","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)","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.","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. ","workflowsOrChangelogModeWhenContributorsShouldUpdate":" workflows, or changelog mode when contributors should update an existing changelog file. "},"globalGeneral":{"andShowsUpdateNoticesInTheCLIAnd":" and shows update notices in the CLI and dashboard. Cadence is governed by the frequency below. ","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. ","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. ","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.","rowsAndDoesNotAffectAssistantTextOr":" rows and does not affect assistant text or tool rows. ","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. ","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. ","whenEnabledFusionChecksNpmForNewVersions":" When enabled, Fusion checks npm for new versions of","whenEnabledTheDashboardProbesForAGlobally":" When enabled, the dashboard probes for a globally-installed"},"globalModels":{"allow":"allow","commaSeparatedValuesSentToOpenRouterModelSync":"Comma-separated values sent to OpenRouter model sync.","controlsHowMuchReasoningEffortTheAIModel":"Controls how much reasoning effort the AI model uses. Higher levels produce better results but cost more.","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.","defaultModel":"Default Model","deny":"deny","fallbackModel":"Fallback Model","flowAndPublishesThemUnderTheOpencodeGo":" flow and publishes them under the opencode-go provider in model pickers. ","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. Default: Fusion.","leaveEmptyToOmitThisHeaderDefaultHttps":"Leave empty to omit this header. Default: https://runfusion.ai.","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.","useDefault":"Use default","whenEnabledStartupFetchesTheLatestAvailableModels":" When enabled, startup fetches the latest available models from the OpenRouter API so model pickers always include the newest catalog. ","whenEnabledStartupRefreshesModelsThroughTheLocal":" When enabled, startup refreshes models through the local "},"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.","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","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: daily at 3 AM)","cronExpressionForDreamProcessing":"Cron expression for dream processing.","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","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.","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","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. Leave off unless you explicitly want 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. ","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","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.","fusion":"Fusion","gitHubAuthentication":"GitHub Authentication","gitHubAuthMode":"GitHub auth mode","gitHubCLIGhAuth":"GitHub CLI (gh auth)","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","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":" 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","trailerCreditingFusionRecognizedByGitHubForShared":" trailer crediting Fusion (recognized by GitHub for shared attribution). ","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.","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.","whenEnabledTasksThatPassReviewAreAutomatically":"When enabled, tasks that pass review are automatically merged into the main branch","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.","whenUsingSmartPreferMainAutomaticallyPreferThe":" When using smart-prefer-main, automatically prefer the branch side for files that main has recently modified to avoid silently discarding branch work. "},"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."},"nodeSync":{"alwaysAsk":"Always ask","automaticallySynchronizeSettingsBetweenThisNodeAndConnected":"Automatically synchronize settings between this node and connected remote nodes","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","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."},"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. ","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. ","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://. ","leaveBlankToPublishWithoutAuthenticationWhenSet":" Leave blank to publish without authentication. When set, Fusion sends an Authorization Bearer header with ntfy requests. ","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)."},"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.","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. ","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. "},"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.","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.","installationFailed":"Installation failed"},"researchGlobal":{"advancedExternalSearchProviders":"Advanced — external search providers","alwaysOn":"Always on","brave":"Brave","builtInUsesAgentWebTools":" Built-in (uses agent web tools) ","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. ","searchProvider":"Search Provider","searXNG":"SearXNG","searXNGURL":"SearXNG URL","tavily":"Tavily","webSearch":" Web Search "},"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. "},"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. ","openai":"openai","retentionDays":"Retention (days)","scheduledEvals":"Scheduled Evals","suggestOnly":"Suggest only"},"scheduling":{"addIgnoredPath":" Add ignored path ","archiveAgentLog":"Archive Agent Log","archiveCompletedTasksAfterDays":"Archive Completed Tasks After (days)","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.","compactSummaryAndRecentEntries":"Compact summary and recent entries","completedTasksOlderThanTheThresholdAreMoved":"Completed tasks older than the threshold are moved out of the active task database.","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.","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","maximumConcurrentPlanningAgents":"Maximum concurrent planning agents","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":" 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&apos;s agent session shows no activity for longer than this duration, the task is terminated and retried. Leave empty to disable. Suggested: 10.","whenEnabledTasksThatModifyTheSameFiles":"When enabled, tasks that modify the same files are queued serially to avoid merge conflicts","whenEnabledTasksWithStalePlansPROMPTMd":"When enabled, tasks with stale plans (PROMPT.md older than the threshold) are automatically sent back to planning for replanning","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."},"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. ","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","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","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.","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."},"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."}}`),at=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.","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.","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":"You won't be able to import issues from GitHub, but you can still create tasks manually.","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 your project","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.","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","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","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, pick an existing directory or paste a GitHub clone URL.","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.","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!"}`),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}}",editProfile:"Edit {{name}}",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}}"},it={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}}"},st={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"},rt={copyReference:"Copy stash reference"},lt={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"},dt={aiPrompt:"AI Prompt",aiPromptStepTitle:"AI Prompt step",command:"Command",commandStepTitle:"Command step",createTask:"Create Task",createTaskStepTitle:"Create Task step"},ct={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..."},ut={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"},pt={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."},gt=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}}"},"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","standard":"Standard","updated":"Execution mode updated to {{mode}}"},"executionModeFast":"Fast","executionModeStandard":"Standard","executionStatsAria":"Task execution statistics","executionTiming":"Execution Timing","executionTimingMetricsAria":"Execution timing metrics","firstUsed":"First used","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"},"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","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":"Terminal","workflow":"Workflow"},"terminal":{"loading":"Loading terminal…"},"timedDuration":"Timed duration","timestamps":{"ariaLabel":"Task timestamps","created":"Created","updated":"Updated"},"timingEvents":"Timing events","title":{"summarize":"Summarize as title","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"}`),ht={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."},ft={moreFields:"Additional fields",orphaned:"Orphaned fields",saveFailed:"Failed to save field",unset:"—"},bt={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"},vt={githubImported:"Imported {{id}} from GitHub"},kt={autoMergeOff:"Auto-merge off",autoMergeOn:"Auto-merge on",autoMergePreferenceUpdated:"Per-task auto-merge preference updated",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"},yt={addTaskPlaceholder:"Add a task...",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
 
@@ -10,4 +10,4 @@ Delete anyway by removing these dependency references first?`,deps:"Deps",depsCo
10
10
 
11
11
  Delete anyway by unlinking these references first?`,linkedIssueChipAriaLabel:"Linked GitHub issue #{{number}}",linkedIssueChipTitle:"Linked GitHub issue: {{owner}}/{{repo}}#{{number}}",linkedIssueMessage:`Choose what to do with {{issueLabel}} when deleting {{taskId}}.
12
12
 
13
- Close the issue?`,linkedIssueTitle:"Linked GitHub Issue",loadAgentsFailed:"Failed to load agents: {{msg}}",loadAgentsFailedGeneric:"Failed to load agents",loadDependencyFailed:"Failed to load dependency {{depId}}",loadingAgents:"Loading agents...",loadModelsFailed:"Failed to load models",missionBadgeTitle:"Mission: {{name}}",modelExecutor:"Executor",modelPlan:"Plan",modelReviewer:"Reviewer",models:"Models",modelsCount_one:"{{count}} model",modelsCount_other:"{{count}} models",moreOptions:"More Options",move:"Move",moved:"Moved {{taskId}} to {{column}}",moveFailed:"Failed to move {{taskId}}: {{error}}",moveTask:"Move task",nearDuplicateTitle:"Potential near-duplicate of {{id}}",needsInput:"Needs input",noAgentsAvailable:"No agents available",node:"Node",noExistingTasks:"No existing tasks",openRetryBreakdown:"Open retry breakdown",paused:"paused",pausedByAgent:"paused by agent",plan:"Plan",planButtonTitle:"Open planning mode with current description",planModel:"Plan Model",prBadgeTitle:"PR #{{number}}: {{title}}",preserveProgressMessage:"This task has completed steps. Keep progress before moving?",preserveProgressTitle:"Preserve Progress?",prNodeFailed:"PR failed",prNodeFailedTitle:"PR creation failed — open the PR view",prNodeState:"PR · {{state}}",prNodeTitle:"PR {{state}} — open the PR view",prNodeWithNumber:"PR #{{number}} · {{state}}",projectDefaultLocal:"Project default / local",promote:"Promote",promoteTask:"Promote task",promoting:"Promoting…",queued:"Queued",refine:"Refine",refineAddDetails:"Add details",refineAddDetailsDesc:"Add implementation details and context",refineButtonTitle:"Refine description with AI",refineClarify:"Clarify",refineClarifyDesc:"Make the description clearer and more specific",refineExpand:"Expand",refineExpandDesc:"Expand into a more comprehensive description",refineSimplify:"Simplify",refineSimplifyDesc:"Simplify and make more concise",refining:"Refining...",removeImage:"Remove image",resetProgress:"Reset Progress",resetProgressMessage:"Reset all step progress before moving this task?",resetProgressTitle:"Reset Progress?",retriesAriaLabel_one:"{{count}} retries",retriesAriaLabel_other:"{{count}} retries",retry:"Retry",retryFailed:"Failed to retry {{taskId}}: {{error}}",retrying:"Retrying…",reviewerModel:"Reviewer Model",save:"Save",saving:"Saving...",searchTasksPlaceholder:"Search tasks…",selectAgent:"Select agent",selectExecutionNode:"Select execution node",selectPriority:"Select priority",sendBack:"Send back",sharedBranch:"Shared",showSteps:"Show steps",stalled:"Stalled",statusMergingFix:"Merging fixes…",stepCount_one:"{{count}} step",stepCount_other:"{{count}} steps",stuck:"Stuck",subtask:"Subtask",subtaskButtonTitle:"Break down into AI-generated subtasks",toggleFastMode:"Toggle fast execution mode",unarchive:"Unarchive",unarchived:"Unarchived {{taskId}}",unarchiveFailed:"Failed to unarchive {{taskId}}: {{error}}",unarchiveTask:"Unarchive task",updated:"Updated {{taskId}}",updateFailed:"Failed to update {{taskId}}: {{error}}",uploadFailed:"Failed to upload: {{files}}",usingDefault:"Using default",viewDependency:"Click to view {{depId}}",workflow:"workflow",workflowCheck:"Workflow check"},wt={arrowKeysLabel:"Terminal arrow keys",clear:"Clear",clearTerminal:"Clear terminal",closeTab:"Close tab",closeTerminal:"Close terminal",createScriptTabError:"Failed to create terminal tab for script: {{message}}",cursorBar:"Bar",cursorBlock:"Block",cursorUnderline:"Underline",decreaseFontSize:"Decrease terminal font size",exitLabel:"Exit: {{code}}",failedToStartTerminal:"Failed to start terminal: {{error}}",helpText:"Ctrl++/- zoom • ⌨ Shortcuts panel • Esc close",increaseFontSize:"Increase terminal font size",initializeError:"Terminal UI failed to initialize: {{error}}",newSession:"New Session",newTerminal:"New terminal",preferenceCursorBlink:"Blink cursor",preferenceCursorStyle:"Cursor style",preferenceFontFamily:"Font family",preferenceFontSize:"Font size",preferenceRenderer:"Renderer",preferences:"Preferences",reconnect:"Reconnect",refreshPage:"Refresh page",reinitialize:"Reinitialize",rendererAuto:"Auto (WebGL on desktop)",rendererCanvas:"Canvas/DOM",rendererReopenNote:"Reopen the terminal to apply renderer changes.",resetPreferences:"Reset to defaults",shortcuts:"Shortcuts",startingTerminal:"Starting terminal...",statusConnected:"Connected",statusConnecting:"Connecting...",statusDisconnected:"Disconnected",statusReconnecting:"Reconnecting..."},At={colorTheme:"Color Theme",colorThemeLabel:"Color theme",currentTheme:"Current theme",fontSize:"Font Size",fontSizeLabel:"Dashboard font size",modeLabel:"Theme mode",resetButton:"Reset to defaults",resetLabel:"Reset to default theme"},St={addItemPlaceholder:"Add a todo item",addList:"Add list",assignAgent:"Assign {{text}} to agent",cancelItemEdit:"Cancel item edit",cancelList:"Cancel list",cancelListRename:"Cancel list rename",createList:"Create List",createTaskFrom:"Create task from {{text}}",deleteItem:"Delete {{text}}",deleteList:"Delete {{title}}",deleteListConfirm:"Delete this list and all its items?",deleteListTitle:"Delete List",editItem:"Edit {{text}}",failedCreateItem:"Failed to create item",failedCreateItemToast:"Failed to create todo item",failedCreateList:"Failed to create list",failedCreateListToast:"Failed to create todo list",failedDeleteItem:"Failed to delete item",failedDeleteItemToast:"Failed to delete todo item",failedDeleteList:"Failed to delete list",failedDeleteListToast:"Failed to delete todo list",failedLoadLists:"Failed to load todo lists",failedRenameList:"Failed to rename list",failedRenameListToast:"Failed to rename todo list",failedReorderItems:"Failed to reorder items",failedReorderItemsToast:"Failed to reorder todo items",failedToCreateAndAssign:"Failed to create and assign task: {{error}}",failedToCreateTask:"Failed to create task: {{error}}",failedToLoadAgents:"Failed to load agents: {{error}}",failedUpdateItem:"Failed to update item",failedUpdateItemToast:"Failed to update todo item",itemsLabel:"Todo items",lists:"Lists",listsLabel:"Todo lists sidebar",loading:"Loading todos...",loadingAgents:"Loading agents...",manageDescription:"Manage reusable todo lists for your project.",moveItemDown:"Move {{text}} down",moveItemUp:"Move {{text}} up",newListTitle:"New list title",noAgentsAvailable:"No agents available",noItemsEmpty:"No items in this list. Add one above.",noListsEmpty:"No todo lists yet. Create one to get started.",renameList:"Rename {{title}}",saveItemEdit:"Save item edit",saveList:"Save list",saveListRename:"Save list rename",selectList:"Select list {{title}}",selectListEmpty:"Select a list from the sidebar",startPlanning:"Start planning from {{text}}",taskCreatedAndAssigned:"Created {{id}} and assigned to {{agent}}",taskCreatedFromTodo:"Created {{id}} from todo",todoListsLabel:"Todo lists",todos:"Todos"},Ct={customOption:"Custom…",loadingHint:"Loading detected GitHub remotes…"},Tt={dismissLabel:"Dismiss update notice",learnMore:"Learn more",message:"Update available: v{{latestVersion}} (current: v{{currentVersion}}). Run fn update for an installed CLI, or pull this source checkout.",releaseNotes:"Release notes",updateFailed:"Update failed",updateFailedWithMessage:"Update failed: {{message}}",updateNow:"Update now",updateSuccess:"Updated to v{{version}} — restart Fusion to apply",updating:"Updating…"},Pt={configureAuthHint:"Configure authentication in Settings to see usage data.",failedToLoad:"Failed to load usage data",hideWindow:"Hide {{label}}",lastUpdated:"Last updated: {{time}}",moveProviderDown:"Move {{provider}} down",moveProviderUp:"Move {{provider}} up",noDataAvailable:"No usage data available",noProvidersConfigured:"No AI providers configured",percentLeft:"{{percent}}% left",percentRemaining:"{{percent}}% remaining",percentUsed:"{{percent}}% used",reorderProvider:"Reorder {{provider}}",resetsInDays:"resets in {{days}}d",resetsInDaysHours:"resets in {{days}}d {{hours}}h",resetsInHours:"resets in {{hours}}h",resetsInMinutes:"resets in {{mins}}m",showHidden_one:"Show hidden ({{count}})",showHidden_other:"Show hidden ({{count}})",statusError:"Error",statusNotConfigured:"Not configured",title:"Usage",viewModeLabel:"Usage view mode",viewModeRemaining:"Remaining",viewModeUsed:"Used"},Rt={advisoryExplanation:"Advisory workflow steps flagged non-blocking improvements:",aggregateResult:"Aggregate result",configuredSteps:"Configured Workflow Steps",done:"Done",doneEditingAriaLabel:"Done editing workflow steps",edit:"Edit",editAriaLabel:"Edit workflow steps",editWorkflow:"Edit workflow",executionOrder:"Execution order:",executionPhase:"Execution phase",expandOutput:"Expand output",graph:"Workflow graph",graphUnavailable:"Workflow graph unavailable",hideOutput:"Hide output",loadingGraph:"Loading workflow graph…",loadingResults:"Loading workflow results…",markdown:"Markdown",modelSettings:"Model settings",moveDown:"Move down",moveUp:"Move up",needsReview:"Needs follow-up review.",noStepsConfigured:"No workflow steps configured for this task.",notes:"Notes:",noWorkflowAssigned:"No workflow assigned",output:"Output:",overview:"Workflow overview",plain:"Plain",polishNotes:"Polish notes",remove:"Remove",selectStepsDescription:"Select steps to run after task implementation completes",showOutput:"Show output",started:"Started:",stepCount_one:"{{count}} step",stepCount_other:"{{count}} steps",stepDefinitionNotFound:"Step definition not found.",stepProgress:"Step count",stepProgressValue:"{{completed}} of {{total}} steps completed",steps:"Workflow Steps",stepsExplanation:"Pre-merge steps run after implementation, before merge. Post-merge steps run after merge succeeds.",summaryAdvisory_one:"{{count}} advisory",summaryAdvisory_other:"{{count}} advisory",summaryFailed_one:"{{count}} failed",summaryFailed_other:"{{count}} failed",summaryPassed_one:"{{count}} passed",summaryPassed_other:"{{count}} passed",summaryRunning_one:"{{count}} running",summaryRunning_other:"{{count}} running",summarySeparator:" · ",summarySkipped_one:"{{count}} skipped",summarySkipped_other:"{{count}} skipped",summaryStepCount_one:"{{count}} step",summaryStepCount_other:"{{count}} steps",switchToMarkdown:"Switch to markdown",switchToPlain:"Switch to plain text",thinkingLevel:"Thinking level",workflowName:"Workflow",aggregateAdvisory:"Advisory",aggregateAllPassed:"All passed",aggregateInProgress:"In progress",aggregateNoResults:"No results",approveAndRun:"Approve & run",approveCommandError:"Failed to approve command",approving:"Approving…",awaitingInputTitle:"Waiting for your input",cliApprovalRejectHint:"To reject, keep the task paused and do not approve.",cliApprovalTitle:"Approve CLI command?",cliApprovalWarning:"This command will run in the task worktree. Approving trusts this exact command for future runs.",customWorkflowFallback:"Custom workflow",customWorkflowLabel:"Custom workflow",defaultWorkflow:"Default",executionAwaitingCliApproval:"Awaiting CLI approval",executionAwaitingInput:"Awaiting input",executionCompleted:"Completed",executionNotStarted:"Not started",executionPaused:"Paused",executionPostMerge:"Post-merge steps running",executionPreMerge:"Pre-merge steps running",inputPlaceholder:"Type your reply…",modelDefault:"Default",postMerge:"Post-merge",preMerge:"Pre-merge",replyInComments:"Reply in the comments and unpause the task to continue.",resumeTaskError:"Failed to resume task",resuming:"Resuming…",statusAdvisory:"Advisory failure",statusFailed:"Failed",statusPassed:"Passed",statusRunning:"Running…",statusSkipped:"Skipped",submitAndResume:"Submit & resume",submitting:"Submitting…",waitingForOutput:"Waiting for agent output…"},Ft={add:"Add column",agent:"Column agent",agentBadgeDefer:"Column agent (defer)",agentBadgeOverride:"Column agent (override)",agentFlagHint:"Workflow columns are available by default",agentLabel:"Column agent",agentMode:"Agent mode",agentModeDefer:"Defer",agentModeDeferHint:"Column agent applies only when the work carries no agent/model settings of its own",agentModeOverride:"Override",agentModeOverrideHint:"Column agent supersedes node- and task-level agent/model settings",agentNone:"(none)",agentNotFound:"Agent not found — {{id}}",agentsLoadFailed:"Failed to load agents",compositionBlocked:"Resolve trait conflicts on highlighted columns before saving",confirmPolicyEscalation:"Bind it anyway? The column agent will run with broader permissions than this project's default.",empty:"No columns yet. Add a column to place nodes into board lanes.",escalationDeclined:"Save cancelled — column agent binding not confirmed",moveDown:"Move column down",moveUp:"Move column up",nameLabel:"Column name",newColumnName:"New column",nodeUnplaced:"Not placed in a column",overriddenByColumnAgent:"Overridden by column agent {{name}} — this node's executor settings are superseded.",readOnlyHint:"Built-in workflows are read-only — duplicate to edit",remove:"Remove column",title:"Columns",traits:"Traits",traitsLoadFailed:"Failed to load traits",unplacedCount_one:"{{count}} nodes not placed in a column",unplacedCount_other:"{{count}} nodes not placed in a column"},Lt={cliAgent:{adapterLabel:"CLI adapter",adapterNote:"Drives a CLI coding agent in an engine-owned terminal for this step.",adapterPlaceholder:"— select adapter —",autonomyLabel:"Elevated autonomy (bypass approvals)",autonomyNote:"Elevated autonomy requires a per-project approval before the agent can launch. Until approved, launches with elevated posture fail.",executorOption:"CLI agent",notify:{banner:"In-app banner",bannerNotify:"Banner + push notification"},notifyLabel:"Waiting-on-input notification",notifyNote:"How you are alerted when the agent pauses waiting for input on this step."},collapsePrompt:"Collapse prompt editor",editingPrompt:"Editing Prompt",expandPrompt:"Expand prompt editor",agent:"Agent",agentsLoadFailed:"Failed to load agents",autoApproveRequests:"Auto-approve requests",autoApproveRequestsNote:"Runs without pausing for approval — e.g. a CLI command executes on its first run without waiting for your sign-off.",cliCommandNote:"Runs an arbitrary command in the task worktree. The first time this exact command runs, the task pauses for your approval. The node prompt is passed via FUSION_NODE_PROMPT.",cliMode:"CLI mode",cliScript:"CLI / script",command:"Command",executor:"Executor",maxRetries:"Max retries",model:"Model",modelsLoadFailed:"Failed to load models",namedScript:"Named script",namedScriptNote:"Named script from project settings. The node prompt is passed via FUSION_NODE_PROMPT.",prompt:"Prompt",scriptName:"Script name",selectAgent:"— select agent —",selectSkill:"— select skill —",skill:"Skill",skillsLoadFailed:"Failed to load skills",skipFirstRunApproval:"Skip first-run approval (runs without pausing)",waitForUserInput:"Wait for user input",waitForUserInputNote:"This node pauses the task until you reply in the task's comments and unpause. The Prompt field above is shown to the user as the question.",promptOverrideSaved:"Prompt override saved",promptOverrideSaveFailed:"Failed to save prompt override",promptOverrideReset:"Prompt reset to default",promptOverrideResetFailed:"Failed to reset prompt",promptOverridesLoadFailed:"Failed to load prompt overrides",promptOverridden:"Overridden",promptSaving:"Saving…",resetPromptDefault:"Reset to default"},Dt={add:"Add field",addOption:"Add option",badge:"Render as badge",default:"Default",defaultLabel:"Default value",defaultTrue:"Default on",duplicateId:"A field with that id already exists",editId:"Edit id",empty:"No custom fields yet. Add a field to extend the task form and cards.",idLabel:"Field id",idWarn:"Changing the id discards values stored under the old id (remove + add).",nameLabel:"Field name",newFieldName:"New field",newOptionLabel:"Option 1",noDefault:"— none —",optionColor:"Option color",optionLabel:"Option label",optionN:"Option {{n}}",options:"Options",optionValue:"Option value",placement:"Placement",placementCard:"Card badge",placementDetail:"Detail (inline)",placementSection:"Detail section",readOnlyHint:"Built-in workflows are read-only — duplicate to edit",remove:"Remove field",removeOption:"Remove option",required:"Required",title:"Fields",typeLabel:"Type",widget:"Widget",widgetDefault:"Default"},Mt={advisory:"Advisory",autoLayout:"Auto-layout",codeNote:"Runs sandboxed TypeScript. Syntax is validated at save.",codeSource:"Source (TypeScript)",codeTimeout:"Timeout (ms)",collapseInspector:"Collapse",cycleBlocked:"That connection would create a cycle — only rework edges inside a for-each template may loop back",deleteEdge:"Delete edge",deleteNode:"Delete node",duplicateBlocked:"That connection already exists",edgeCondition:"Condition",edgeConditionLabel:"Condition: {{condition}}",edgeInspector:"Edge",edgeNoVerdict:"— success (no verdict) —",edgeRework:"Rework edge (loop back, bounded)",edgeReworkNote:"Rework edges are the only legal cycles — they loop back within the for-each step instance, bounded by Max rework cycles.",edgeVerdict:"Review verdict",failureCollect:"Collect (wait for all)",failureFailFast:"Fail-fast (cancel siblings)",failurePolicy:"On branch failure",foreachConcurrency:"Concurrency",foreachEmptyHint:"Drag a step-execute node here",foreachIsolation:"Isolation",foreachMaxRework:"Max rework cycles",foreachMode:"Mode",foreachNote:"Expands once per planned step. Drop a step-execute node (and optional step-review) into the region.",foreachParallel:"Parallel",foreachSequential:"Sequential",foreachShared:"Shared worktree",foreachWorktree:"Per-step worktree",gateBadge:"gate",gateBlocks:"Gate (blocks)",gateMode:"Gate mode",insertTemplate:"Insert template {{name}}",interpreterOnly:"This workflow branches, so it runs on the graph interpreter — it can't compile to the linear step engine, but it will still run.",joinAll:"All branches",joinAny:"Any branch",joinMode:"Join mode",joinQuorum:"Quorum (n)",loopEmptyHint:"Drag loop steps here",loopExitType:"Exit condition",loopMaxIterations:"Max iterations",loopNodeId:"Watch node id (optional)",loopNodeIdPlaceholder:"Template exit node",loopNote:"Repeats the template until the selected output matches, an iteration limit is reached, or the timeout expires.",loopOutputContains:"Output contains",loopOutputMatches:"Output matches regex",loopPattern:"Pattern",loopStepLabel:"Loop step",loopTimeoutMs:"Timeout (ms)",loopValue:"Value",mergeBoundaryNote:"Steps before this marker run pre-merge; steps after run post-merge.",mobileActions:"Actions",mobileAdd:"Add",mobileConnect:"Connect",mobileConnectChooseTarget:"Choose a target…",mobileConnectTarget:"Target node",mobileGraph:"Graph",mobileGraphEmpty:"No graph nodes yet.",mobileMoveDown:"Move down",mobileMoveUp:"Move up",mobileNodeKinds:"Node types",notifyCustom:"Custom",notifyCustomEvent:"Custom event",notifyEvent:"Event type",notifyMessage:"Message (optional)",notifyNote:"Templates may use {{taskTitle}}, {{taskId}}, {{workflowName}}, and {{context:key}}.",notifyTitle:"Title (optional)",parseArtifact:"Artifact",parseParser:"Parser",quorumN:"Quorum count (n)",releaseCapacity:"Downstream capacity",releaseCondition:"Release condition",releaseDependency:"Dependency complete",releaseExternal:"External event",releaseManual:"Manual promote",releaseTimer:"Timer",reviewCode:"Code review",reviewModel:"Review model (optional)",reviewNote:"Verdicts route as outcome edges. Click an outgoing edge to set its verdict and rework behavior.",reviewPlan:"Plan review",reviewType:"Review type",showInspector:"Show node details",splitNote:"Branches run concurrently from this node. Execute and merge seams are not allowed inside a branch.",startEntryColumn:"Entry column",startEntryColumnAuto:"— Auto (first column)",startNote:"The start node marks where a task enters the workflow.",stepBadge:"step",stepExecuteLabel:"Step execute",templateFilterLabel:"Filter templates",templateFilterPlaceholder:"Filter templates",templatesBuiltinSteps:"Built-in steps",templateSeamConflict:`This fragment duplicates the "{{seam}}" seam already on the canvas, so it can't be inserted.`,templatesFragments:"Fragments",templatesPluginSteps:"Plugin steps",templatesSection:"Templates",timeoutMs:"{{timeout}}ms",trivialGraphHint:"This workflow only runs start → end. Add steps from the palette above to build it out.",conditionFailure:"failure",conditionSuccess:"success",nodeInspector:"Node",readOnlyDuplicateToEdit:"Built-in structure is read-only — prompts on prompt and gate nodes can be edited here."},It={aiEdit:"Design with AI",aiFailed:"Failed to design workflow",aiPromptPlaceholder:"e.g. Run lint and tests before merge, then post a changelog comment after merge",aiPromptRequired:"Describe the workflow you want",aiReplaceConfirm:"Replace the current graph with the AI design? Unsaved changes will be lost.",aiReplaceConfirmLabel:"Replace",aiReplaceTitle:"Replace graph?",aiStaleDiscarded:"Discarded AI design — you switched workflows",aiSubmit:"Design with AI",aiToggle:"Describe it instead",backToWorkflowList:"Back to workflows",clickToEditDescription:"Click to edit description",clickToRename:"Click to rename",created:'Created workflow "{{name}}"',createDescription:"Description (optional)",createFailed:"Failed to create workflow",createName:"Name",createNameRequired:"Enter a workflow name",createSubmit:"Create",createTitle:"New workflow",deleted:"Workflow deleted",deleteFailed:"Failed to delete workflow",deleteMessage:'Delete workflow "{{name}}"? This cannot be undone.',deleteTitle:"Delete workflow?",descriptionLabel:"Workflow description",descriptionPlaceholder:"Add a description",discardConfirm:"Discard",discardMessage:"You have unsaved changes to this workflow. Discard them?",discardTitle:"Discard unsaved changes?",duplicateToCustomize:"Duplicate to customize",emptyDescription:"Workflows orchestrate the steps and gates that run around task execution. Create one to start arranging that flow.",emptyTitle:"No workflow selected",export:"Export",exportDirtyTooltip:"Save before exporting",exportFailed:"Failed to export workflow",exportTooltip:"Download as JSON — contains your full prompt and command text",import:"Import",imported:'Imported workflow "{{name}}"',importFailed:"Import failed",importInvalidJson:"That file isn't valid JSON.",importStripped:"Auto-approval flags were removed from imported nodes",importTooltip:"Import a workflow from a JSON file",migrationNotice:'Your legacy workflow steps were converted — find them as templates in the palette and as the "Migrated steps" workflow.',mobileEditorNav:"Workflow editor sections",mobileSelectNote:"Select a workflow to edit.",nameLabel:"Workflow name",newWorkflow:"New workflow",readOnlyBuiltin:"Built-in workflow: structure is read-only, prompts are editable.",saved:"Workflow saved",savedNotCompilable:"Workflow saved but cannot be compiled",saveFailed:"Failed to save workflow",showCanvasEditor:"Show canvas editor",showSimpleEditor:"Show simple editor",templateBlank:"Blank",templateBlankDescription:"Start from an empty start → end graph.",templateCopyName:"{{name}} copy",templateNodeCount_one:"{{count}} nodes",templateNodeCount_other:"{{count}} nodes",templatePickerLabel:"Start from",templateSectionBuiltin:"Built-in workflows",templateSectionYours:"Your workflows",closeEditor:"Close workflow editor",duplicatedEditable:'Duplicated to "{{name}}" — editable',duplicateFailed:"Failed to duplicate workflow",loadFailed:"Failed to load workflows",loading:"Loading…",noneYet:"No workflows yet.",title:"Workflows"},Nt={switchActiveMessage:"This task has an active session. Switching workflows aborts it and re-homes the card into the new workflow's entry column. Continue?",switchActiveTitle:"Switch workflow?",switchCancel:"Cancel",switchConfirm:"Switch and abort",applyFailed:"Failed to apply workflow",defaultCleared:"Default workflow cleared",defaultSet:"Default workflow set",defaultWorkflowLabel:"Default workflow for new tasks",loadFailed:"Failed to load workflows",manage:"Manage…",none:"None"},xt={add:"Add setting",addOption:"Add option",builtinDefinitionsReadOnly:"Built-in workflow — declarations are read-only. Values are editable below.",clearHint:"Use the reset control on a row to clear a value back to its declaration default.",customized:"Customized",default:"Default",defaultLabel:"Default value",defaultTrue:"Default on",definitionsTab:"Definitions",deleteOrphan:"Delete orphaned value",description:"Description",descriptionLabel:"Setting description",duplicateId:"A setting with that id already exists",editId:"Edit id",empty:"No settings declared yet. Add a setting to expose a typed, per-project knob.",idLabel:"Setting id",idWarn:"Changing the id discards values stored under the old id (remove + add).",loadFailed:"Failed to load setting values",loading:"Loading…",modelsLoadFailed:"Failed to load available models",nameLabel:"Setting name",newOptionLabel:"Option 1",newSettingName:"New setting",noDeclarations:"This workflow declares no settings, so there are no values to edit.",noDefault:"— none —",noModelsAvailable:"No models are available. Configure authentication before selecting a workflow model.",optionColor:"Option color",optionLabel:"Option label",optionN:"Option {{n}}",options:"Options",optionValue:"Option value",orphanDeleted:"Orphaned value removed",orphanedNote:"These stored values no longer match a current declaration (the setting was retyped or removed). They are ignored by the engine; delete them to clean up.",orphanedTitle_one:"Orphaned values ({{count}})",orphanedTitle_other:"Orphaned values ({{count}})",readOnlyHint:"Built-in workflows are read-only — duplicate to edit",remove:"Remove setting",removeOption:"Remove option",requiresProject:"Open a project to view and edit per-project setting values.",saveFailed:"Failed to save setting values",saveValues:"Save values",selectModel:"Select a model…",staleContext:"Values shown are for project {{project}} — reopen the editor to edit values for the current project.",title:"Settings",typeLabel:"Type",useInheritedModel:"Use inherited/default model",valuesRejected:"Some values were rejected — see the highlighted fields",valuesSaved:"Setting values saved",valuesTab:"Values",widget:"Widget",widgetDefault:"Default"},Et={countsAria:"{{todoLabel}}: {{todo}}, {{inProgressLabel}}: {{inProgress}}, {{doneLabel}}: {{done}}{{mergingSuffix}}",done:"Done",inProgress:"In Progress",label:"Workflow",merging:"Merging",mergingTitle:"{{count}} merging task{{plural}}",todo:"Todo",triggerAria:"Select workflow. Current workflow: {{name}}",editWorkflow:"Edit workflow",newWorkflow:"New workflow"},Ht={projectRoot:"Project Root",selectWorkspace:"Select workspace",taskWorktrees:"Task Worktrees"},Bt={unassigned:"Unassigned",upNext:"Up Next"},Ot={assetUrl:"Asset URL",installPath:"Install path",installRequestTitle:"Worktrunk install request",sha256:"SHA-256",version:"Version"},Ut={activePlaceholder:"Steer the currently executing agent",agentMessages:"{{label}} messages",arguments:"Arguments",collapseChat:"Collapse chat",donePlaceholder:"Start a refinement task for this completed task",emptyAgentOutput:"No agent output yet. Live messages from Planner, Executor, Reviewer, and Merger agents will appear here.",entryCount_one:"{{count}} entry",entryCount_other:"{{count}} entries",error:"Error",errorCount_one:"{{count}} error",errorCount_other:"{{count}} errors",expandChat:"Expand chat to full modal",idleSessionHint:"No agent is working on this task right now. Your message is saved as guidance and will reach an agent the next time this task runs.",jumpToLatestMessage:"Jump to latest message",latest:"Latest",loadingAgentOutput:"Loading agent output…",loadingEarlierMessages:"Loading earlier messages…",loadPreviousMessages:"Load previous messages",message:"Message",messageActiveAgentSession:"Message active agent session",moreTools_one:", +{{count}} more",moreTools_other:", +{{count}} more",result:"Result",roles:{agent:"Agent",executor:"Executor",merger:"Merger",planner:"Planner",reviewer:"Reviewer"},sending:"Sending",thinking:"Thinking",toolCall:"Tool call",toolCallCount_one:"{{count}} tool call",toolCallCount_other:"{{count}} tool calls",toolCallTo:"Tool call → {{label}}",toolError:"Tool error",toolNames:"Tool names",toolResult:"Tool result",you:"You",youMessage:"You message"},_t={actions:e,engineBanner:t,activityFeed:o,activityLog:a,agentError:i,agentLog:n,agentMention:s,agentPolicy:r,agentPrompts:l,agentProvisioning:d,agents:c,app:u,appName:p,approval:m,auth:g,backend:h,backgroundTasks:f,board:b,branchGroup:v,branchGroups:k,capacity:y,changes:w,chat:A,chatRooms:S,cli:C,cliBinary:T,cliChat:P,cliTerminal:R,column:F,commandCenter:L,comments:D,commit:M,commitDiff:I,common:N,composer:x,confirm:E,conversation:H,createRoom:B,dashboard:O,dbBanner:U,deepLink:_,desktop:j,devserver:q,dirPicker:W,docker:G,documents:V,droidCli:z,duplicateWarning:K,editor:Y,errorBoundary:Q,evals:J,executor:Z,fileBrowser:X,fileEditor:$,fileMention:ee,git:te,githubStarPrompt:oe,goals:ae,groups:ie,groupTask:ne,header:se,health:re,hermes:le,inline:de,insights:ce,interview:ue,issues:pe,lane:me,listView:ge,mailbox:he,memory:fe,merge:be,mesh:ve,missions:ke,modalManager:ye,model:we,models:Ae,modelSelection:Se,nav:Ce,newTaskModal:Te,nodes:Pe,nodeStatus:Re,nodeSync:Fe,onboarding:Le,openclaw:De,paperclip:Me,piExtensions:Ie,piManager:Ne,planning:xe,plugins:Ee,pr:He,preview:Be,projectCard:Oe,projectDetection:Ue,projects:_e,projectSelector:je,providers:qe,quickChat:We,reliability:Ge,research:Ve,rightDock:ze,routine:Ke,routing:Ye,runtimes:Qe,schedule:Je,scripts:Ze,scriptsModal:Xe,secrets:$e,selectionComment:et,sessionBanner:tt,settings:ot,setup:at,shell:it,skills:nt,specEditor:st,stash:rt,stashRecovery:lt,stepType:dt,subtasks:ct,syncLog:ut,systemStats:pt,taskChanges:mt,taskDetail:gt,taskDocuments:ht,taskFields:ft,taskForm:bt,taskHandlers:vt,taskReview:kt,tasks:yt,terminal:wt,theme:At,todo:St,trackingRepoSelect:Ct,updateBanner:Tt,usage:Pt,workflow:Rt,workflowColumns:Ft,workflowEditor:Lt,workflowFields:Dt,workflowNodes:Mt,workflows:It,workflowSelector:Nt,workflowSettings:xt,workflowSwitcher:Et,workspace:Ht,worktree:Bt,worktrunk:Ot,taskChat:Ut};export{e as actions,o as activityFeed,a as activityLog,i as agentError,n as agentLog,s as agentMention,r as agentPolicy,l as agentPrompts,d as agentProvisioning,c as agents,u as app,p as appName,m as approval,g as auth,h as backend,f as backgroundTasks,b as board,v as branchGroup,k as branchGroups,y as capacity,w as changes,A as chat,S as chatRooms,C as cli,T as cliBinary,P as cliChat,R as cliTerminal,F as column,L as commandCenter,D as comments,M as commit,I as commitDiff,N as common,x as composer,E as confirm,H as conversation,B as createRoom,O as dashboard,U as dbBanner,_ as deepLink,_t as default,j as desktop,q as devserver,W as dirPicker,G as docker,V as documents,z as droidCli,K as duplicateWarning,Y as editor,t as engineBanner,Q as errorBoundary,J as evals,Z as executor,X as fileBrowser,$ as fileEditor,ee as fileMention,te as git,oe as githubStarPrompt,ae as goals,ne as groupTask,ie as groups,se as header,re as health,le as hermes,de as inline,ce as insights,ue as interview,pe as issues,me as lane,ge as listView,he as mailbox,fe as memory,be as merge,ve as mesh,ke as missions,ye as modalManager,we as model,Se as modelSelection,Ae as models,Ce as nav,Te as newTaskModal,Re as nodeStatus,Fe as nodeSync,Pe as nodes,Le as onboarding,De as openclaw,Me as paperclip,Ie as piExtensions,Ne as piManager,xe as planning,Ee as plugins,He as pr,Be as preview,Oe as projectCard,Ue as projectDetection,je as projectSelector,_e as projects,qe as providers,We as quickChat,Ge as reliability,Ve as research,ze as rightDock,Ke as routine,Ye as routing,Qe as runtimes,Je as schedule,Ze as scripts,Xe as scriptsModal,$e as secrets,et as selectionComment,tt as sessionBanner,ot as settings,at as setup,it as shell,nt as skills,st as specEditor,rt as stash,lt as stashRecovery,dt as stepType,ct as subtasks,ut as syncLog,pt as systemStats,mt as taskChanges,Ut as taskChat,gt as taskDetail,ht as taskDocuments,ft as taskFields,bt as taskForm,vt as taskHandlers,kt as taskReview,yt as tasks,wt as terminal,At as theme,St as todo,Ct as trackingRepoSelect,Tt as updateBanner,Pt as usage,Rt as workflow,Ft as workflowColumns,Lt as workflowEditor,Dt as workflowFields,Mt as workflowNodes,Nt as workflowSelector,xt as workflowSettings,Et as workflowSwitcher,It as workflows,Ht as workspace,Bt as worktree,Ot as worktrunk};
13
+ Close the issue?`,linkedIssueTitle:"Linked GitHub Issue",loadAgentsFailed:"Failed to load agents: {{msg}}",loadAgentsFailedGeneric:"Failed to load agents",loadDependencyFailed:"Failed to load dependency {{depId}}",loadingAgents:"Loading agents...",loadModelsFailed:"Failed to load models",missionBadgeTitle:"Mission: {{name}}",modelExecutor:"Executor",modelPlan:"Plan",modelReviewer:"Reviewer",models:"Models",modelsCount_one:"{{count}} model",modelsCount_other:"{{count}} models",moreOptions:"More Options",move:"Move",moved:"Moved {{taskId}} to {{column}}",moveFailed:"Failed to move {{taskId}}: {{error}}",moveTask:"Move task",nearDuplicateTitle:"Potential near-duplicate of {{id}}",needsInput:"Needs input",noAgentsAvailable:"No agents available",node:"Node",noExistingTasks:"No existing tasks",openRetryBreakdown:"Open retry breakdown",paused:"paused",pausedByAgent:"paused by agent",plan:"Plan",planButtonTitle:"Open planning mode with current description",planModel:"Plan Model",prBadgeTitle:"PR #{{number}}: {{title}}",preserveProgressMessage:"This task has completed steps. Keep progress before moving?",preserveProgressTitle:"Preserve Progress?",prNodeFailed:"PR failed",prNodeFailedTitle:"PR creation failed — open the PR view",prNodeState:"PR · {{state}}",prNodeTitle:"PR {{state}} — open the PR view",prNodeWithNumber:"PR #{{number}} · {{state}}",projectDefaultLocal:"Project default / local",promote:"Promote",promoteTask:"Promote task",promoting:"Promoting…",queued:"Queued",refine:"Refine",refineAddDetails:"Add details",refineAddDetailsDesc:"Add implementation details and context",refineButtonTitle:"Refine description with AI",refineClarify:"Clarify",refineClarifyDesc:"Make the description clearer and more specific",refineExpand:"Expand",refineExpandDesc:"Expand into a more comprehensive description",refineSimplify:"Simplify",refineSimplifyDesc:"Simplify and make more concise",refining:"Refining...",removeImage:"Remove image",resetProgress:"Reset Progress",resetProgressMessage:"Reset all step progress before moving this task?",resetProgressTitle:"Reset Progress?",retriesAriaLabel_one:"{{count}} retries",retriesAriaLabel_other:"{{count}} retries",retry:"Retry",retryFailed:"Failed to retry {{taskId}}: {{error}}",retrying:"Retrying…",reviewerModel:"Reviewer Model",save:"Save",saving:"Saving...",searchTasksPlaceholder:"Search tasks…",selectAgent:"Select agent",selectExecutionNode:"Select execution node",selectPriority:"Select priority",sendBack:"Send back",sharedBranch:"Shared",showSteps:"Show steps",stalled:"Stalled",statusMergingFix:"Merging fixes…",stepCount_one:"{{count}} step",stepCount_other:"{{count}} steps",stuck:"Stuck",subtask:"Subtask",subtaskButtonTitle:"Break down into AI-generated subtasks",toggleFastMode:"Toggle fast execution mode",unarchive:"Unarchive",unarchived:"Unarchived {{taskId}}",unarchiveFailed:"Failed to unarchive {{taskId}}: {{error}}",unarchiveTask:"Unarchive task",updated:"Updated {{taskId}}",updateFailed:"Failed to update {{taskId}}: {{error}}",uploadFailed:"Failed to upload: {{files}}",usingDefault:"Using default",viewDependency:"Click to view {{depId}}",workflow:"workflow",workflowCheck:"Workflow check"},wt={arrowKeysLabel:"Terminal arrow keys",clear:"Clear",clearTerminal:"Clear terminal",closeTab:"Close tab",closeTerminal:"Close terminal",createScriptTabError:"Failed to create terminal tab for script: {{message}}",cursorBar:"Bar",cursorBlock:"Block",cursorUnderline:"Underline",decreaseFontSize:"Decrease terminal font size",exitLabel:"Exit: {{code}}",failedToStartTerminal:"Failed to start terminal: {{error}}",helpText:"Ctrl++/- zoom • ⌨ Shortcuts panel • Esc close",increaseFontSize:"Increase terminal font size",initializeError:"Terminal UI failed to initialize: {{error}}",newSession:"New Session",newTerminal:"New terminal",preferenceCursorBlink:"Blink cursor",preferenceCursorStyle:"Cursor style",preferenceFontFamily:"Font family",preferenceFontSize:"Font size",preferenceRenderer:"Renderer",preferences:"Preferences",reconnect:"Reconnect",refreshPage:"Refresh page",reinitialize:"Reinitialize",rendererAuto:"Auto (WebGL on desktop)",rendererCanvas:"Canvas/DOM",rendererReopenNote:"Reopen the terminal to apply renderer changes.",resetPreferences:"Reset to defaults",shortcuts:"Shortcuts",startingTerminal:"Starting terminal...",statusConnected:"Connected",statusConnecting:"Connecting...",statusDisconnected:"Disconnected",statusReconnecting:"Reconnecting..."},At={colorTheme:"Color Theme",colorThemeLabel:"Color theme",currentTheme:"Current theme",fontSize:"Font Size",fontSizeLabel:"Dashboard font size",modeLabel:"Theme mode",resetButton:"Reset to defaults",resetLabel:"Reset to default theme"},St={addItemPlaceholder:"Add a todo item",addList:"Add list",assignAgent:"Assign {{text}} to agent",cancelItemEdit:"Cancel item edit",cancelList:"Cancel list",cancelListRename:"Cancel list rename",createList:"Create List",createTaskFrom:"Create task from {{text}}",deleteItem:"Delete {{text}}",deleteList:"Delete {{title}}",deleteListConfirm:"Delete this list and all its items?",deleteListTitle:"Delete List",editItem:"Edit {{text}}",failedCreateItem:"Failed to create item",failedCreateItemToast:"Failed to create todo item",failedCreateList:"Failed to create list",failedCreateListToast:"Failed to create todo list",failedDeleteItem:"Failed to delete item",failedDeleteItemToast:"Failed to delete todo item",failedDeleteList:"Failed to delete list",failedDeleteListToast:"Failed to delete todo list",failedLoadLists:"Failed to load todo lists",failedRenameList:"Failed to rename list",failedRenameListToast:"Failed to rename todo list",failedReorderItems:"Failed to reorder items",failedReorderItemsToast:"Failed to reorder todo items",failedToCreateAndAssign:"Failed to create and assign task: {{error}}",failedToCreateTask:"Failed to create task: {{error}}",failedToLoadAgents:"Failed to load agents: {{error}}",failedUpdateItem:"Failed to update item",failedUpdateItemToast:"Failed to update todo item",itemsLabel:"Todo items",lists:"Lists",listsLabel:"Todo lists sidebar",loading:"Loading todos...",loadingAgents:"Loading agents...",manageDescription:"Manage reusable todo lists for your project.",moveItemDown:"Move {{text}} down",moveItemUp:"Move {{text}} up",newListTitle:"New list title",noAgentsAvailable:"No agents available",noItemsEmpty:"No items in this list. Add one above.",noListsEmpty:"No todo lists yet. Create one to get started.",renameList:"Rename {{title}}",saveItemEdit:"Save item edit",saveList:"Save list",saveListRename:"Save list rename",selectList:"Select list {{title}}",selectListEmpty:"Select a list from the sidebar",startPlanning:"Start planning from {{text}}",taskCreatedAndAssigned:"Created {{id}} and assigned to {{agent}}",taskCreatedFromTodo:"Created {{id}} from todo",todoListsLabel:"Todo lists",todos:"Todos"},Ct={customOption:"Custom…",loadingHint:"Loading detected GitHub remotes…"},Tt={dismissLabel:"Dismiss update notice",learnMore:"Learn more",message:"Update available: v{{latestVersion}} (current: v{{currentVersion}}). Run fn update for an installed CLI, or pull this source checkout.",releaseNotes:"Release notes",updateFailed:"Update failed",updateFailedWithMessage:"Update failed: {{message}}",updateNow:"Update now",updateSuccess:"Updated to v{{version}} — restart Fusion to apply",updating:"Updating…"},Pt={configureAuthHint:"Configure authentication in Settings to see usage data.",failedToLoad:"Failed to load usage data",hideWindow:"Hide {{label}}",lastUpdated:"Last updated: {{time}}",moveProviderDown:"Move {{provider}} down",moveProviderUp:"Move {{provider}} up",noDataAvailable:"No usage data available",noProvidersConfigured:"No AI providers configured",percentLeft:"{{percent}}% left",percentRemaining:"{{percent}}% remaining",percentUsed:"{{percent}}% used",reorderProvider:"Reorder {{provider}}",resetsInDays:"resets in {{days}}d",resetsInDaysHours:"resets in {{days}}d {{hours}}h",resetsInHours:"resets in {{hours}}h",resetsInMinutes:"resets in {{mins}}m",showHidden_one:"Show hidden ({{count}})",showHidden_other:"Show hidden ({{count}})",statusError:"Error",statusNotConfigured:"Not configured",title:"Usage",viewModeLabel:"Usage view mode",viewModeRemaining:"Remaining",viewModeUsed:"Used"},Rt={advisoryExplanation:"Advisory workflow steps flagged non-blocking improvements:",aggregateResult:"Aggregate result",configuredSteps:"Configured Workflow Steps",done:"Done",doneEditingAriaLabel:"Done editing workflow steps",edit:"Edit",editAriaLabel:"Edit workflow steps",editWorkflow:"Edit workflow",executionOrder:"Execution order:",executionPhase:"Execution phase",expandOutput:"Expand output",graph:"Workflow graph",graphUnavailable:"Workflow graph unavailable",hideOutput:"Hide output",loadingGraph:"Loading workflow graph…",loadingResults:"Loading workflow results…",markdown:"Markdown",modelSettings:"Model settings",moveDown:"Move down",moveUp:"Move up",needsReview:"Needs follow-up review.",noStepsConfigured:"No workflow steps configured for this task.",notes:"Notes:",noWorkflowAssigned:"No workflow assigned",output:"Output:",overview:"Workflow overview",plain:"Plain",polishNotes:"Polish notes",remove:"Remove",selectStepsDescription:"Select steps to run after task implementation completes",showOutput:"Show output",started:"Started:",stepCount_one:"{{count}} step",stepCount_other:"{{count}} steps",stepDefinitionNotFound:"Step definition not found.",stepProgress:"Step count",stepProgressValue:"{{completed}} of {{total}} steps completed",steps:"Workflow Steps",stepsExplanation:"Pre-merge steps run after implementation, before merge. Post-merge steps run after merge succeeds.",summaryAdvisory_one:"{{count}} advisory",summaryAdvisory_other:"{{count}} advisory",summaryFailed_one:"{{count}} failed",summaryFailed_other:"{{count}} failed",summaryPassed_one:"{{count}} passed",summaryPassed_other:"{{count}} passed",summaryRunning_one:"{{count}} running",summaryRunning_other:"{{count}} running",summarySeparator:" · ",summarySkipped_one:"{{count}} skipped",summarySkipped_other:"{{count}} skipped",summaryStepCount_one:"{{count}} step",summaryStepCount_other:"{{count}} steps",switchToMarkdown:"Switch to markdown",switchToPlain:"Switch to plain text",thinkingLevel:"Thinking level",workflowName:"Workflow",aggregateAdvisory:"Advisory",aggregateAllPassed:"All passed",aggregateInProgress:"In progress",aggregateNoResults:"No results",approveAndRun:"Approve & run",approveCommandError:"Failed to approve command",approving:"Approving…",awaitingInputTitle:"Waiting for your input",cliApprovalRejectHint:"To reject, keep the task paused and do not approve.",cliApprovalTitle:"Approve CLI command?",cliApprovalWarning:"This command will run in the task worktree. Approving trusts this exact command for future runs.",customWorkflowFallback:"Custom workflow",customWorkflowLabel:"Custom workflow",defaultWorkflow:"Default",executionAwaitingCliApproval:"Awaiting CLI approval",executionAwaitingInput:"Awaiting input",executionCompleted:"Completed",executionNotStarted:"Not started",executionPaused:"Paused",executionPostMerge:"Post-merge steps running",executionPreMerge:"Pre-merge steps running",inputPlaceholder:"Type your reply…",modelDefault:"Default",postMerge:"Post-merge",preMerge:"Pre-merge",replyInComments:"Reply in the comments and unpause the task to continue.",resumeTaskError:"Failed to resume task",resuming:"Resuming…",statusAdvisory:"Advisory failure",statusFailed:"Failed",statusPassed:"Passed",statusRunning:"Running…",statusSkipped:"Skipped",submitAndResume:"Submit & resume",submitting:"Submitting…",waitingForOutput:"Waiting for agent output…"},Ft={add:"Add column",agent:"Column agent",agentBadgeDefer:"Column agent (defer)",agentBadgeOverride:"Column agent (override)",agentFlagHint:"Workflow columns are available by default",agentLabel:"Column agent",agentMode:"Agent mode",agentModeDefer:"Defer",agentModeDeferHint:"Column agent applies only when the work carries no agent/model settings of its own",agentModeOverride:"Override",agentModeOverrideHint:"Column agent supersedes node- and task-level agent/model settings",agentNone:"(none)",agentNotFound:"Agent not found — {{id}}",agentsLoadFailed:"Failed to load agents",compositionBlocked:"Resolve trait conflicts on highlighted columns before saving",confirmPolicyEscalation:"Bind it anyway? The column agent will run with broader permissions than this project's default.",empty:"No columns yet. Add a column to place nodes into board lanes.",escalationDeclined:"Save cancelled — column agent binding not confirmed",moveDown:"Move column down",moveUp:"Move column up",nameLabel:"Column name",newColumnName:"New column",nodeUnplaced:"Not placed in a column",overriddenByColumnAgent:"Overridden by column agent {{name}} — this node's executor settings are superseded.",readOnlyHint:"Built-in workflows are read-only — duplicate to edit",remove:"Remove column",title:"Columns",traits:"Traits",traitsLoadFailed:"Failed to load traits",unplacedCount_one:"{{count}} nodes not placed in a column",unplacedCount_other:"{{count}} nodes not placed in a column"},Lt={cliAgent:{adapterLabel:"CLI adapter",adapterNote:"Drives a CLI coding agent in an engine-owned terminal for this step.",adapterPlaceholder:"— select adapter —",autonomyLabel:"Elevated autonomy (bypass approvals)",autonomyNote:"Elevated autonomy requires a per-project approval before the agent can launch. Until approved, launches with elevated posture fail.",executorOption:"CLI agent",notify:{banner:"In-app banner",bannerNotify:"Banner + push notification"},notifyLabel:"Waiting-on-input notification",notifyNote:"How you are alerted when the agent pauses waiting for input on this step."},collapsePrompt:"Collapse prompt editor",editingPrompt:"Editing Prompt",expandPrompt:"Expand prompt editor",agent:"Agent",agentsLoadFailed:"Failed to load agents",autoApproveRequests:"Auto-approve requests",autoApproveRequestsNote:"Runs without pausing for approval — e.g. a CLI command executes on its first run without waiting for your sign-off.",cliCommandNote:"Runs an arbitrary command in the task worktree. The first time this exact command runs, the task pauses for your approval. The node prompt is passed via FUSION_NODE_PROMPT.",cliMode:"CLI mode",cliScript:"CLI / script",command:"Command",executor:"Executor",maxRetries:"Max retries",model:"Model",modelsLoadFailed:"Failed to load models",namedScript:"Named script",namedScriptNote:"Named script from project settings. The node prompt is passed via FUSION_NODE_PROMPT.",prompt:"Prompt",scriptName:"Script name",selectAgent:"— select agent —",selectSkill:"— select skill —",skill:"Skill",skillsLoadFailed:"Failed to load skills",skipFirstRunApproval:"Skip first-run approval (runs without pausing)",waitForUserInput:"Wait for user input",waitForUserInputNote:"This node pauses the task until you reply in the task's comments and unpause. The Prompt field above is shown to the user as the question.",promptOverrideSaved:"Prompt override saved",promptOverrideSaveFailed:"Failed to save prompt override",promptOverrideReset:"Prompt reset to default",promptOverrideResetFailed:"Failed to reset prompt",promptOverridesLoadFailed:"Failed to load prompt overrides",promptOverridden:"Overridden",promptSaving:"Saving…",resetPromptDefault:"Reset to default"},Mt={add:"Add field",addOption:"Add option",badge:"Render as badge",default:"Default",defaultLabel:"Default value",defaultTrue:"Default on",duplicateId:"A field with that id already exists",editId:"Edit id",empty:"No custom fields yet. Add a field to extend the task form and cards.",idLabel:"Field id",idWarn:"Changing the id discards values stored under the old id (remove + add).",nameLabel:"Field name",newFieldName:"New field",newOptionLabel:"Option 1",noDefault:"— none —",optionColor:"Option color",optionLabel:"Option label",optionN:"Option {{n}}",options:"Options",optionValue:"Option value",placement:"Placement",placementCard:"Card badge",placementDetail:"Detail (inline)",placementSection:"Detail section",readOnlyHint:"Built-in workflows are read-only — duplicate to edit",remove:"Remove field",removeOption:"Remove option",required:"Required",title:"Fields",typeLabel:"Type",widget:"Widget",widgetDefault:"Default"},Dt={advisory:"Advisory",autoLayout:"Auto-layout",codeNote:"Runs sandboxed TypeScript. Syntax is validated at save.",codeSource:"Source (TypeScript)",codeTimeout:"Timeout (ms)",collapseInspector:"Collapse",cycleBlocked:"That connection would create a cycle — only rework edges inside a for-each template may loop back",deleteEdge:"Delete edge",deleteNode:"Delete node",duplicateBlocked:"That connection already exists",edgeCondition:"Condition",edgeConditionLabel:"Condition: {{condition}}",edgeInspector:"Edge",edgeNoVerdict:"— success (no verdict) —",edgeRework:"Rework edge (loop back, bounded)",edgeReworkNote:"Rework edges are the only legal cycles — they loop back within the for-each step instance, bounded by Max rework cycles.",edgeVerdict:"Review verdict",failureCollect:"Collect (wait for all)",failureFailFast:"Fail-fast (cancel siblings)",failurePolicy:"On branch failure",foreachConcurrency:"Concurrency",foreachEmptyHint:"Drag a step-execute node here",foreachIsolation:"Isolation",foreachMaxRework:"Max rework cycles",foreachMode:"Mode",foreachNote:"Expands once per planned step. Drop a step-execute node (and optional step-review) into the region.",foreachParallel:"Parallel",foreachSequential:"Sequential",foreachShared:"Shared worktree",foreachWorktree:"Per-step worktree",gateBadge:"gate",gateBlocks:"Gate (blocks)",gateMode:"Gate mode",insertTemplate:"Insert template {{name}}",interpreterOnly:"This workflow branches, so it runs on the graph interpreter — it can't compile to the linear step engine, but it will still run.",joinAll:"All branches",joinAny:"Any branch",joinMode:"Join mode",joinQuorum:"Quorum (n)",loopEmptyHint:"Drag loop steps here",loopExitType:"Exit condition",loopMaxIterations:"Max iterations",loopNodeId:"Watch node id (optional)",loopNodeIdPlaceholder:"Template exit node",loopNote:"Repeats the template until the selected output matches, an iteration limit is reached, or the timeout expires.",loopOutputContains:"Output contains",loopOutputMatches:"Output matches regex",loopPattern:"Pattern",loopStepLabel:"Loop step",loopTimeoutMs:"Timeout (ms)",loopValue:"Value",mergeBoundaryNote:"Steps before this marker run pre-merge; steps after run post-merge.",mobileActions:"Actions",mobileAdd:"Add",mobileConnect:"Connect",mobileConnectChooseTarget:"Choose a target…",mobileConnectTarget:"Target node",mobileGraph:"Graph",mobileGraphEmpty:"No graph nodes yet.",mobileMoveDown:"Move down",mobileMoveUp:"Move up",mobileNodeKinds:"Node types",notifyCustom:"Custom",notifyCustomEvent:"Custom event",notifyEvent:"Event type",notifyMessage:"Message (optional)",notifyNote:"Templates may use {{taskTitle}}, {{taskId}}, {{workflowName}}, and {{context:key}}.",notifyTitle:"Title (optional)",parseArtifact:"Artifact",parseParser:"Parser",quorumN:"Quorum count (n)",releaseCapacity:"Downstream capacity",releaseCondition:"Release condition",releaseDependency:"Dependency complete",releaseExternal:"External event",releaseManual:"Manual promote",releaseTimer:"Timer",reviewCode:"Code review",reviewModel:"Review model (optional)",reviewNote:"Verdicts route as outcome edges. Click an outgoing edge to set its verdict and rework behavior.",reviewPlan:"Plan review",reviewType:"Review type",showInspector:"Show node details",splitNote:"Branches run concurrently from this node. Execute and merge seams are not allowed inside a branch.",startEntryColumn:"Entry column",startEntryColumnAuto:"— Auto (first column)",startNote:"The start node marks where a task enters the workflow.",stepBadge:"step",stepExecuteLabel:"Step execute",templateFilterLabel:"Filter templates",templateFilterPlaceholder:"Filter templates",templatesBuiltinSteps:"Built-in steps",templateSeamConflict:`This fragment duplicates the "{{seam}}" seam already on the canvas, so it can't be inserted.`,templatesFragments:"Fragments",templatesPluginSteps:"Plugin steps",templatesSection:"Templates",timeoutMs:"{{timeout}}ms",trivialGraphHint:"This workflow only runs start → end. Add steps from the palette above to build it out.",conditionFailure:"failure",conditionSuccess:"success",nodeInspector:"Node",readOnlyDuplicateToEdit:"Built-in structure is read-only — prompts on prompt and gate nodes can be edited here."},It={aiEdit:"Design with AI",aiFailed:"Failed to design workflow",aiPromptPlaceholder:"e.g. Run lint and tests before merge, then post a changelog comment after merge",aiPromptRequired:"Describe the workflow you want",aiReplaceConfirm:"Replace the current graph with the AI design? Unsaved changes will be lost.",aiReplaceConfirmLabel:"Replace",aiReplaceTitle:"Replace graph?",aiStaleDiscarded:"Discarded AI design — you switched workflows",aiSubmit:"Design with AI",aiToggle:"Describe it instead",backToWorkflowList:"Back to workflows",clickToEditDescription:"Click to edit description",clickToRename:"Click to rename",created:'Created workflow "{{name}}"',createDescription:"Description (optional)",createFailed:"Failed to create workflow",createName:"Name",createNameRequired:"Enter a workflow name",createSubmit:"Create",createTitle:"New workflow",deleted:"Workflow deleted",deleteFailed:"Failed to delete workflow",deleteMessage:'Delete workflow "{{name}}"? This cannot be undone.',deleteTitle:"Delete workflow?",descriptionLabel:"Workflow description",descriptionPlaceholder:"Add a description",discardConfirm:"Discard",discardMessage:"You have unsaved changes to this workflow. Discard them?",discardTitle:"Discard unsaved changes?",duplicateToCustomize:"Duplicate to customize",emptyDescription:"Workflows orchestrate the steps and gates that run around task execution. Create one to start arranging that flow.",emptyTitle:"No workflow selected",export:"Export",exportDirtyTooltip:"Save before exporting",exportFailed:"Failed to export workflow",exportTooltip:"Download as JSON — contains your full prompt and command text",import:"Import",imported:'Imported workflow "{{name}}"',importFailed:"Import failed",importInvalidJson:"That file isn't valid JSON.",importStripped:"Auto-approval flags were removed from imported nodes",importTooltip:"Import a workflow from a JSON file",migrationNotice:'Your legacy workflow steps were converted — find them as templates in the palette and as the "Migrated steps" workflow.',mobileEditorNav:"Workflow editor sections",mobileSelectNote:"Select a workflow to edit.",nameLabel:"Workflow name",newWorkflow:"New workflow",readOnlyBuiltin:"Built-in workflow: structure is read-only, prompts are editable.",saved:"Workflow saved",savedNotCompilable:"Workflow saved but cannot be compiled",saveFailed:"Failed to save workflow",showCanvasEditor:"Show canvas editor",showSimpleEditor:"Show simple editor",templateBlank:"Blank",templateBlankDescription:"Start from an empty start → end graph.",templateCopyName:"{{name}} copy",templateNodeCount_one:"{{count}} nodes",templateNodeCount_other:"{{count}} nodes",templatePickerLabel:"Start from",templateSectionBuiltin:"Built-in workflows",templateSectionYours:"Your workflows",closeEditor:"Close workflow editor",duplicatedEditable:'Duplicated to "{{name}}" — editable',duplicateFailed:"Failed to duplicate workflow",loadFailed:"Failed to load workflows",loading:"Loading…",noneYet:"No workflows yet.",title:"Workflows"},Nt={switchActiveMessage:"This task has an active session. Switching workflows aborts it and re-homes the card into the new workflow's entry column. Continue?",switchActiveTitle:"Switch workflow?",switchCancel:"Cancel",switchConfirm:"Switch and abort",applyFailed:"Failed to apply workflow",defaultCleared:"Default workflow cleared",defaultSet:"Default workflow set",defaultWorkflowLabel:"Default workflow for new tasks",loadFailed:"Failed to load workflows",manage:"Manage…",none:"None"},xt={add:"Add setting",addOption:"Add option",builtinDefinitionsReadOnly:"Built-in workflow — declarations are read-only. Values are editable below.",clearHint:"Use the reset control on a row to clear a value back to its declaration default.",customized:"Customized",default:"Default",defaultLabel:"Default value",defaultTrue:"Default on",definitionsTab:"Definitions",deleteOrphan:"Delete orphaned value",description:"Description",descriptionLabel:"Setting description",duplicateId:"A setting with that id already exists",editId:"Edit id",empty:"No settings declared yet. Add a setting to expose a typed, per-project knob.",idLabel:"Setting id",idWarn:"Changing the id discards values stored under the old id (remove + add).",loadFailed:"Failed to load setting values",loading:"Loading…",modelsLoadFailed:"Failed to load available models",nameLabel:"Setting name",newOptionLabel:"Option 1",newSettingName:"New setting",noDeclarations:"This workflow declares no settings, so there are no values to edit.",noDefault:"— none —",noModelsAvailable:"No models are available. Configure authentication before selecting a workflow model.",optionColor:"Option color",optionLabel:"Option label",optionN:"Option {{n}}",options:"Options",optionValue:"Option value",orphanDeleted:"Orphaned value removed",orphanedNote:"These stored values no longer match a current declaration (the setting was retyped or removed). They are ignored by the engine; delete them to clean up.",orphanedTitle_one:"Orphaned values ({{count}})",orphanedTitle_other:"Orphaned values ({{count}})",readOnlyHint:"Built-in workflows are read-only — duplicate to edit",remove:"Remove setting",removeOption:"Remove option",requiresProject:"Open a project to view and edit per-project setting values.",saveFailed:"Failed to save setting values",saveValues:"Save values",selectModel:"Select a model…",staleContext:"Values shown are for project {{project}} — reopen the editor to edit values for the current project.",title:"Settings",typeLabel:"Type",useInheritedModel:"Use inherited/default model",valuesRejected:"Some values were rejected — see the highlighted fields",valuesSaved:"Setting values saved",valuesTab:"Values",widget:"Widget",widgetDefault:"Default"},Et={countsAria:"{{todoLabel}}: {{todo}}, {{inProgressLabel}}: {{inProgress}}, {{doneLabel}}: {{done}}{{mergingSuffix}}",done:"Done",inProgress:"In Progress",label:"Workflow",merging:"Merging",mergingTitle:"{{count}} merging task{{plural}}",todo:"Todo",triggerAria:"Select workflow. Current workflow: {{name}}",editWorkflow:"Edit workflow",newWorkflow:"New workflow"},Ht={projectRoot:"Project Root",selectWorkspace:"Select workspace",taskWorktrees:"Task Worktrees"},Bt={unassigned:"Unassigned",upNext:"Up Next"},Ot={assetUrl:"Asset URL",installPath:"Install path",installRequestTitle:"Worktrunk install request",sha256:"SHA-256",version:"Version"},Ut={activePlaceholder:"Steer the currently executing agent",agentMessages:"{{label}} messages",arguments:"Arguments",collapseChat:"Collapse chat",donePlaceholder:"Start a refinement task for this completed task",emptyAgentOutput:"No agent output yet. Live messages from Planner, Executor, Reviewer, and Merger agents will appear here.",entryCount_one:"{{count}} entry",entryCount_other:"{{count}} entries",error:"Error",errorCount_one:"{{count}} error",errorCount_other:"{{count}} errors",expandChat:"Expand chat to full modal",idleSessionHint:"No agent is working on this task right now. Your message is saved as guidance and will reach an agent the next time this task runs.",jumpToLatestMessage:"Jump to latest message",latest:"Latest",loadingAgentOutput:"Loading agent output…",loadingEarlierMessages:"Loading earlier messages…",loadPreviousMessages:"Load previous messages",message:"Message",messageActiveAgentSession:"Message active agent session",moreTools_one:", +{{count}} more",moreTools_other:", +{{count}} more",result:"Result",roles:{agent:"Agent",executor:"Executor",merger:"Merger",planner:"Planner",reviewer:"Reviewer"},sending:"Sending",thinking:"Thinking",toolCall:"Tool call",toolCallCount_one:"{{count}} tool call",toolCallCount_other:"{{count}} tool calls",toolCallTo:"Tool call → {{label}}",toolError:"Tool error",toolNames:"Tool names",toolResult:"Tool result",you:"You",youMessage:"You message"},_t={actions:e,engineBanner:t,activityFeed:o,activityLog:a,agentError:n,agentLog:i,agentMention:s,agentPolicy:r,agentPrompts:l,agentProvisioning:d,agents:c,app:u,appName:p,approval:m,auth:g,backend:h,backgroundTasks:f,board:b,branchGroup:v,branchGroups:k,capacity:y,changes:w,chat:A,chatRooms:S,cli:C,cliBinary:T,cliChat:P,cliTerminal:R,column:F,commandCenter:L,comments:M,commit:D,commitDiff:I,common:N,composer:x,confirm:E,conversation:H,createRoom:B,dashboard:O,dbBanner:U,deepLink:_,desktop:j,devserver:q,dirPicker:W,docker:G,documents:V,droidCli:z,duplicateWarning:K,editor:Y,errorBoundary:Q,evals:J,executor:Z,fileBrowser:X,fileEditor:$,fileMention:ee,git:te,githubStarPrompt:oe,goals:ae,groups:ne,groupTask:ie,header:se,health:re,hermes:le,inline:de,insights:ce,interview:ue,issues:pe,lane:me,listView:ge,mailbox:he,memory:fe,merge:be,mesh:ve,missions:ke,modalManager:ye,model:we,models:Ae,modelSelection:Se,nav:Ce,newTaskModal:Te,nodes:Pe,nodeStatus:Re,nodeSync:Fe,onboarding:Le,openclaw:Me,paperclip:De,piExtensions:Ie,piManager:Ne,planning:xe,plugins:Ee,pr:He,preview:Be,projectCard:Oe,projectDetection:Ue,projects:_e,projectSelector:je,providers:qe,quickChat:We,reliability:Ge,research:Ve,rightDock:ze,routine:Ke,routing:Ye,runtimes:Qe,schedule:Je,scripts:Ze,scriptsModal:Xe,secrets:$e,selectionComment:et,sessionBanner:tt,settings:ot,setup:at,shell:nt,skills:it,specEditor:st,stash:rt,stashRecovery:lt,stepType:dt,subtasks:ct,syncLog:ut,systemStats:pt,taskChanges:mt,taskDetail:gt,taskDocuments:ht,taskFields:ft,taskForm:bt,taskHandlers:vt,taskReview:kt,tasks:yt,terminal:wt,theme:At,todo:St,trackingRepoSelect:Ct,updateBanner:Tt,usage:Pt,workflow:Rt,workflowColumns:Ft,workflowEditor:Lt,workflowFields:Mt,workflowNodes:Dt,workflows:It,workflowSelector:Nt,workflowSettings:xt,workflowSwitcher:Et,workspace:Ht,worktree:Bt,worktrunk:Ot,taskChat:Ut};export{e as actions,o as activityFeed,a as activityLog,n as agentError,i as agentLog,s as agentMention,r as agentPolicy,l as agentPrompts,d as agentProvisioning,c as agents,u as app,p as appName,m as approval,g as auth,h as backend,f as backgroundTasks,b as board,v as branchGroup,k as branchGroups,y as capacity,w as changes,A as chat,S as chatRooms,C as cli,T as cliBinary,P as cliChat,R as cliTerminal,F as column,L as commandCenter,M as comments,D as commit,I as commitDiff,N as common,x as composer,E as confirm,H as conversation,B as createRoom,O as dashboard,U as dbBanner,_ as deepLink,_t as default,j as desktop,q as devserver,W as dirPicker,G as docker,V as documents,z as droidCli,K as duplicateWarning,Y as editor,t as engineBanner,Q as errorBoundary,J as evals,Z as executor,X as fileBrowser,$ as fileEditor,ee as fileMention,te as git,oe as githubStarPrompt,ae as goals,ie as groupTask,ne as groups,se as header,re as health,le as hermes,de as inline,ce as insights,ue as interview,pe as issues,me as lane,ge as listView,he as mailbox,fe as memory,be as merge,ve as mesh,ke as missions,ye as modalManager,we as model,Se as modelSelection,Ae as models,Ce as nav,Te as newTaskModal,Re as nodeStatus,Fe as nodeSync,Pe as nodes,Le as onboarding,Me as openclaw,De as paperclip,Ie as piExtensions,Ne as piManager,xe as planning,Ee as plugins,He as pr,Be as preview,Oe as projectCard,Ue as projectDetection,je as projectSelector,_e as projects,qe as providers,We as quickChat,Ge as reliability,Ve as research,ze as rightDock,Ke as routine,Ye as routing,Qe as runtimes,Je as schedule,Ze as scripts,Xe as scriptsModal,$e as secrets,et as selectionComment,tt as sessionBanner,ot as settings,at as setup,nt as shell,it as skills,st as specEditor,rt as stash,lt as stashRecovery,dt as stepType,ct as subtasks,ut as syncLog,pt as systemStats,mt as taskChanges,Ut as taskChat,gt as taskDetail,ht as taskDocuments,ft as taskFields,bt as taskForm,vt as taskHandlers,kt as taskReview,yt as tasks,wt as terminal,At as theme,St as todo,Ct as trackingRepoSelect,Tt as updateBanner,Pt as usage,Rt as workflow,Ft as workflowColumns,Lt as workflowEditor,Mt as workflowFields,Dt as workflowNodes,Nt as workflowSelector,xt as workflowSettings,Et as workflowSwitcher,It as workflows,Ht as workspace,Bt as worktree,Ot as worktrunk};