@wrongstack/webui 0.286.0 → 0.289.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 (340) hide show
  1. package/README.md +35 -0
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/assets/AnalyticsDashboard-qGVC0XiK.js +1 -0
  4. package/dist/assets/AudienceMemoryPanel-CxAGL0gP.js +3 -0
  5. package/dist/assets/ChangesView-Bc6demyA.js +1 -0
  6. package/dist/assets/ChronicleDashboard-CwWcOmB3.js +1 -0
  7. package/dist/assets/CodeEditor-JY7CfGGl.js +1 -0
  8. package/dist/assets/CodeMap-BDgG3Rjz.js +1 -0
  9. package/dist/assets/CronJobsPanel-CqA5Tmx-.js +1 -0
  10. package/dist/assets/DebugDashboard-DlSJuEnl.js +1 -0
  11. package/dist/assets/DesignGalleryView-Cw9pbmsU.js +1 -0
  12. package/dist/assets/GoalView-B9BA9Jlk.js +1 -0
  13. package/dist/assets/KanbanView-CvKWtMXO.js +1 -0
  14. package/dist/assets/MailboxDetailView-dtLgBAb5.js +1 -0
  15. package/dist/assets/MemoryManager-BX9vS8Sc.js +1 -0
  16. package/dist/assets/OfficeMapPanel-D87MJFyb.css +1 -0
  17. package/dist/assets/OfficeMapPanel-DBafq6N3.js +4 -0
  18. package/dist/assets/ProcessMonitor-B0wlr4xu.js +1 -0
  19. package/dist/assets/QueuePanel-Cbd6WEUu.js +1 -0
  20. package/dist/assets/RefreshDebugView-BU6_CzHg.js +1 -0
  21. package/dist/assets/SddBoardView-ChpDmoWH.js +2 -0
  22. package/dist/assets/SddFlowGraph-ZGRYKvG4.js +1 -0
  23. package/dist/assets/SddWizard-C9EU3uMP.js +1 -0
  24. package/dist/assets/SessionsDashboard-BZjGcI8m.js +1 -0
  25. package/dist/assets/SetupScreen-OLD-xwmi.js +1 -0
  26. package/dist/assets/SkillDetailView-cBe0gnN1.js +3 -0
  27. package/dist/assets/SpecsView-BXqQnduk.js +1 -0
  28. package/dist/assets/TechStackView-whP83IaE.js +1 -0
  29. package/dist/assets/TerminalPanel-DYJvz1GK.js +1 -0
  30. package/dist/assets/activity-B6TyDCwd.js +5 -0
  31. package/dist/assets/activity-BZm_Psbt.js +5 -0
  32. package/dist/assets/activity-Bhoxw076.js +5 -0
  33. package/dist/assets/activity-CWFY3Fhi.js +5 -0
  34. package/dist/assets/activity-DVZ7t5as.js +5 -0
  35. package/dist/assets/activity-DiuZra5w.js +5 -0
  36. package/dist/assets/activity-DkwwCy23.js +5 -0
  37. package/dist/assets/{chat-CmZiF8Sm.js → chat-BJzPxfyr.js} +1 -1
  38. package/dist/assets/{chat-eXJFi4bY.js → chat-BRBVFl4h.js} +1 -1
  39. package/dist/assets/{chat-C_9_T_Py.js → chat-Bkom8vQo.js} +1 -1
  40. package/dist/assets/{chat-DfjGjYKF.js → chat-C7ybebfi.js} +1 -1
  41. package/dist/assets/{chat-BNf8yQ-i.js → chat-Du7n7HZ7.js} +1 -1
  42. package/dist/assets/{chat-BwmYDkLr.js → chat-IRKmQ6we.js} +1 -1
  43. package/dist/assets/{chat-DW62ursN.js → chat-VkTBQmmx.js} +1 -1
  44. package/dist/assets/chat-store-BJ55HZKb.js +13 -0
  45. package/dist/assets/{commandPalette-C5U6qfth.js → commandPalette-CGMq-qlP.js} +1 -1
  46. package/dist/assets/{commandPalette-C4o2rUOp.js → commandPalette-CUh_kgfp.js} +1 -1
  47. package/dist/assets/{commandPalette-CBJfByB7.js → commandPalette-Dfk74u87.js} +1 -1
  48. package/dist/assets/{commandPalette-DUootORZ.js → commandPalette-DpaemFux.js} +1 -1
  49. package/dist/assets/{commandPalette-BcMV6x3_.js → commandPalette-Nlxs0V7J.js} +1 -1
  50. package/dist/assets/{commandPalette-CrYfIhnW.js → commandPalette-aaAou3Tl.js} +1 -1
  51. package/dist/assets/{commandPalette-Dgd8HfNm.js → commandPalette-tFxIIhvU.js} +1 -1
  52. package/dist/assets/i18n-BcnwAuXt.js +2 -0
  53. package/dist/assets/index-MIiPbE0D.js +151 -0
  54. package/dist/assets/index-dpcVzvHS.css +1 -0
  55. package/dist/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2 +0 -0
  56. package/dist/assets/manrope-greek-wght-normal-DL7QRZyv.woff2 +0 -0
  57. package/dist/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2 +0 -0
  58. package/dist/assets/manrope-latin-wght-normal-DHIcAJRg.woff2 +0 -0
  59. package/dist/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2 +0 -0
  60. package/dist/assets/markdown-CF2fGOZh.js +44 -0
  61. package/dist/assets/{monaco-MjnRih9i.js → monaco-BgFAljXl.js} +201 -201
  62. package/dist/assets/{monaco-theme-DhdHiZEb.js → monaco-theme-DxkhltWi.js} +1 -1
  63. package/dist/assets/{session-store-BOmBeF9r.js → session-store-CgCoJmdF.js} +1 -1
  64. package/dist/assets/settings-4BR882HN.js +1 -0
  65. package/dist/assets/settings-B5P4V9M6.js +1 -0
  66. package/dist/assets/settings-Cjxo5UVP.js +1 -0
  67. package/dist/assets/settings-CnViO4_M.js +1 -0
  68. package/dist/assets/settings-CyzkAhwD.js +1 -0
  69. package/dist/assets/settings-jrfJX8W2.js +1 -0
  70. package/dist/assets/settings-llUXRsji.js +1 -0
  71. package/dist/assets/shared-aqSRO8IM.js +1 -0
  72. package/dist/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2 +0 -0
  73. package/dist/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2 +0 -0
  74. package/dist/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2 +0 -0
  75. package/dist/assets/ui-store-lBwi9h6q.js +1 -0
  76. package/dist/assets/utils-BLVofF8S.js +1 -0
  77. package/dist/assets/vendor-BBksTEZc.css +1 -0
  78. package/dist/assets/vendor-JNPeA-SL.js +76 -0
  79. package/dist/assets/ws-client-3f38Kop2.js +1 -0
  80. package/dist/components/AgentOfficeView.d.ts +3 -0
  81. package/dist/components/AgentOfficeView.d.ts.map +1 -0
  82. package/dist/components/AnalyticsDashboard.d.ts.map +1 -1
  83. package/dist/components/AudienceMemoryPanel.d.ts +2 -0
  84. package/dist/components/AudienceMemoryPanel.d.ts.map +1 -0
  85. package/dist/components/BoardView.d.ts +2 -2
  86. package/dist/components/ChatInput/slash-routing.d.ts +4 -4
  87. package/dist/components/ChatInput/slash-routing.d.ts.map +1 -1
  88. package/dist/components/ChatInput/use-paste-drop.d.ts.map +1 -1
  89. package/dist/components/ChatInput.d.ts.map +1 -1
  90. package/dist/components/CheckpointTimeline.d.ts.map +1 -1
  91. package/dist/components/ChipMultiSelect.d.ts +20 -0
  92. package/dist/components/ChipMultiSelect.d.ts.map +1 -0
  93. package/dist/components/ChronicleDashboard.d.ts +2 -0
  94. package/dist/components/ChronicleDashboard.d.ts.map +1 -0
  95. package/dist/components/CodeEditor.d.ts.map +1 -1
  96. package/dist/components/CodeMap.d.ts +9 -0
  97. package/dist/components/CodeMap.d.ts.map +1 -0
  98. package/dist/components/CommandPalette/index.d.ts.map +1 -1
  99. package/dist/components/ContextDashboard.d.ts +13 -0
  100. package/dist/components/ContextDashboard.d.ts.map +1 -0
  101. package/dist/components/CronJobsPanel.d.ts +6 -0
  102. package/dist/components/CronJobsPanel.d.ts.map +1 -0
  103. package/dist/components/CronTrigger.d.ts +2 -0
  104. package/dist/components/CronTrigger.d.ts.map +1 -0
  105. package/dist/components/DebugDashboard.d.ts.map +1 -1
  106. package/dist/components/DesignGalleryView.d.ts.map +1 -1
  107. package/dist/components/FallbackEditor.d.ts.map +1 -1
  108. package/dist/components/FileReferenceChip.d.ts +2 -2
  109. package/dist/components/FileReferenceChip.d.ts.map +1 -1
  110. package/dist/components/FleetPanel.d.ts.map +1 -1
  111. package/dist/components/{AutoPhaseView.d.ts → GoalView.d.ts} +4 -4
  112. package/dist/components/GoalView.d.ts.map +1 -0
  113. package/dist/components/InspectorPanel.d.ts +9 -9
  114. package/dist/components/InspectorPanel.d.ts.map +1 -1
  115. package/dist/components/KanbanCleanerAlert.d.ts +6 -0
  116. package/dist/components/KanbanCleanerAlert.d.ts.map +1 -0
  117. package/dist/components/KanbanView.d.ts +14 -0
  118. package/dist/components/KanbanView.d.ts.map +1 -1
  119. package/dist/components/MailboxDetailView.d.ts.map +1 -1
  120. package/dist/components/MailboxPanel.d.ts.map +1 -1
  121. package/dist/components/MemoryManager/MemoryDetail.d.ts +17 -0
  122. package/dist/components/MemoryManager/MemoryDetail.d.ts.map +1 -0
  123. package/dist/components/MemoryManager/MemoryDrawer.d.ts +25 -0
  124. package/dist/components/MemoryManager/MemoryDrawer.d.ts.map +1 -0
  125. package/dist/components/MemoryManager/MemoryEditor.d.ts +12 -0
  126. package/dist/components/MemoryManager/MemoryEditor.d.ts.map +1 -0
  127. package/dist/components/MemoryManager/MemoryFilters.d.ts +19 -0
  128. package/dist/components/MemoryManager/MemoryFilters.d.ts.map +1 -0
  129. package/dist/components/MemoryManager/MemoryGraph.d.ts +9 -0
  130. package/dist/components/MemoryManager/MemoryGraph.d.ts.map +1 -0
  131. package/dist/components/MemoryManager/MemoryList.d.ts +13 -0
  132. package/dist/components/MemoryManager/MemoryList.d.ts.map +1 -0
  133. package/dist/components/MemoryManager/index.d.ts +2 -0
  134. package/dist/components/MemoryManager/index.d.ts.map +1 -0
  135. package/dist/components/MemoryManager/shared.d.ts +51 -0
  136. package/dist/components/MemoryManager/shared.d.ts.map +1 -0
  137. package/dist/components/MessageBubble/index.d.ts.map +1 -1
  138. package/dist/components/ModelSelectDialog.d.ts +47 -0
  139. package/dist/components/ModelSelectDialog.d.ts.map +1 -0
  140. package/dist/components/OfficeMapCanvas/edges.d.ts +15 -0
  141. package/dist/components/OfficeMapCanvas/edges.d.ts.map +1 -0
  142. package/dist/components/OfficeMapCanvas/nodes.d.ts +53 -0
  143. package/dist/components/OfficeMapCanvas/nodes.d.ts.map +1 -0
  144. package/dist/components/OfficeMapCanvas/resolve.d.ts +17 -2
  145. package/dist/components/OfficeMapCanvas/resolve.d.ts.map +1 -1
  146. package/dist/components/OfficeMapCanvas/utils.d.ts +28 -1
  147. package/dist/components/OfficeMapCanvas/utils.d.ts.map +1 -1
  148. package/dist/components/OfficeMapCanvas.d.ts.map +1 -1
  149. package/dist/components/OfficeMapPanel.d.ts.map +1 -1
  150. package/dist/components/PhasePanel.d.ts.map +1 -1
  151. package/dist/components/RefinePanel.d.ts +21 -1
  152. package/dist/components/RefinePanel.d.ts.map +1 -1
  153. package/dist/components/SddWizard.d.ts.map +1 -1
  154. package/dist/components/SessionsDashboard.d.ts.map +1 -1
  155. package/dist/components/SettingsPanel/BrainSection.d.ts.map +1 -1
  156. package/dist/components/SettingsPanel/ChimeraSettingsPanel.d.ts +10 -0
  157. package/dist/components/SettingsPanel/ChimeraSettingsPanel.d.ts.map +1 -0
  158. package/dist/components/SettingsPanel/ModelSection.d.ts.map +1 -1
  159. package/dist/components/SettingsPanel/PluginToggleList.d.ts +3 -0
  160. package/dist/components/SettingsPanel/PluginToggleList.d.ts.map +1 -0
  161. package/dist/components/SettingsPanel/RoutingSection.d.ts +8 -1
  162. package/dist/components/SettingsPanel/RoutingSection.d.ts.map +1 -1
  163. package/dist/components/SettingsPanel/index.d.ts.map +1 -1
  164. package/dist/components/SetupScreen.d.ts.map +1 -1
  165. package/dist/components/SidePanel/AgentsPanel.d.ts.map +1 -1
  166. package/dist/components/SidePanel/HistoryPanel.d.ts.map +1 -1
  167. package/dist/components/SidePanel/SessionList.d.ts +33 -5
  168. package/dist/components/SidePanel/SessionList.d.ts.map +1 -1
  169. package/dist/components/SidePanel/SessionPanel.d.ts.map +1 -1
  170. package/dist/components/SidePanel/index.d.ts.map +1 -1
  171. package/dist/components/SkillDetailView.d.ts.map +1 -1
  172. package/dist/components/TaskActivityTimeline.d.ts +31 -0
  173. package/dist/components/TaskActivityTimeline.d.ts.map +1 -0
  174. package/dist/components/TaskExecutionAttempts.d.ts +28 -0
  175. package/dist/components/TaskExecutionAttempts.d.ts.map +1 -0
  176. package/dist/components/TaskIntelligencePanel.d.ts +42 -0
  177. package/dist/components/TaskIntelligencePanel.d.ts.map +1 -0
  178. package/dist/components/TaskRiskPanel.d.ts +31 -0
  179. package/dist/components/TaskRiskPanel.d.ts.map +1 -0
  180. package/dist/components/TechStackView/DependencyDetail.d.ts +20 -0
  181. package/dist/components/TechStackView/DependencyDetail.d.ts.map +1 -0
  182. package/dist/components/TechStackView/DependencyTable.d.ts +17 -0
  183. package/dist/components/TechStackView/DependencyTable.d.ts.map +1 -0
  184. package/dist/components/TechStackView/FindingsPanel.d.ts +15 -0
  185. package/dist/components/TechStackView/FindingsPanel.d.ts.map +1 -0
  186. package/dist/components/TechStackView/TechStackToolbar.d.ts +26 -0
  187. package/dist/components/TechStackView/TechStackToolbar.d.ts.map +1 -0
  188. package/dist/components/TechStackView/index.d.ts +18 -0
  189. package/dist/components/TechStackView/index.d.ts.map +1 -0
  190. package/dist/components/TechStackView/shared.d.ts +73 -0
  191. package/dist/components/TechStackView/shared.d.ts.map +1 -0
  192. package/dist/components/TodosPanel.d.ts.map +1 -1
  193. package/dist/components/WelcomeScreen.d.ts +1 -8
  194. package/dist/components/WelcomeScreen.d.ts.map +1 -1
  195. package/dist/components/WorkspaceDock.d.ts +8 -9
  196. package/dist/components/WorkspaceDock.d.ts.map +1 -1
  197. package/dist/components/activity-bar/index.d.ts.map +1 -1
  198. package/dist/components/codemap-model.d.ts +64 -0
  199. package/dist/components/codemap-model.d.ts.map +1 -0
  200. package/dist/components/index.d.ts +3 -1
  201. package/dist/components/index.d.ts.map +1 -1
  202. package/dist/components/ui/PickerCardList.d.ts +52 -0
  203. package/dist/components/ui/PickerCardList.d.ts.map +1 -0
  204. package/dist/components/ui/sheet.d.ts +7 -1
  205. package/dist/components/ui/sheet.d.ts.map +1 -1
  206. package/dist/hooks/index.d.ts +1 -0
  207. package/dist/hooks/index.d.ts.map +1 -1
  208. package/dist/hooks/useDesktopBridge.d.ts +29 -0
  209. package/dist/hooks/useDesktopBridge.d.ts.map +1 -0
  210. package/dist/hooks/useF5Resilience.d.ts +16 -0
  211. package/dist/hooks/useF5Resilience.d.ts.map +1 -0
  212. package/dist/hooks/useGlobalKeyboardShortcuts.d.ts +25 -0
  213. package/dist/hooks/useGlobalKeyboardShortcuts.d.ts.map +1 -0
  214. package/dist/hooks/useHorizontalScroll.d.ts +17 -0
  215. package/dist/hooks/useHorizontalScroll.d.ts.map +1 -0
  216. package/dist/hooks/useKanbanMeta.d.ts +32 -0
  217. package/dist/hooks/useKanbanMeta.d.ts.map +1 -0
  218. package/dist/hooks/useMemoryForFile.d.ts +30 -0
  219. package/dist/hooks/useMemoryForFile.d.ts.map +1 -0
  220. package/dist/hooks/useScrollPosition.d.ts +16 -0
  221. package/dist/hooks/useScrollPosition.d.ts.map +1 -0
  222. package/dist/hooks/useWebSocket.d.ts +36 -13
  223. package/dist/hooks/useWebSocket.d.ts.map +1 -1
  224. package/dist/hooks/ws-handlers/fleet-handlers.d.ts.map +1 -1
  225. package/dist/hooks/ws-handlers/misc-handlers.d.ts +6 -4
  226. package/dist/hooks/ws-handlers/misc-handlers.d.ts.map +1 -1
  227. package/dist/hooks/ws-handlers/session-handlers.d.ts.map +1 -1
  228. package/dist/hooks/ws-handlers/techstack-handlers.d.ts +13 -0
  229. package/dist/hooks/ws-handlers/techstack-handlers.d.ts.map +1 -0
  230. package/dist/hooks/ws-handlers.d.ts +7 -0
  231. package/dist/hooks/ws-handlers.d.ts.map +1 -1
  232. package/dist/index.css +2881 -2
  233. package/dist/index.css.map +3 -3
  234. package/dist/index.html +16 -17
  235. package/dist/index.js +33292 -16587
  236. package/dist/index.js.map +4 -4
  237. package/dist/lib/agent-office.d.ts +96 -0
  238. package/dist/lib/agent-office.d.ts.map +1 -0
  239. package/dist/lib/desktop-host.d.ts.map +1 -1
  240. package/dist/lib/kanban-cleaner.d.ts +28 -0
  241. package/dist/lib/kanban-cleaner.d.ts.map +1 -0
  242. package/dist/lib/kanban-metadata.d.ts +7 -0
  243. package/dist/lib/kanban-metadata.d.ts.map +1 -0
  244. package/dist/lib/plugin-enablement.d.ts +37 -0
  245. package/dist/lib/plugin-enablement.d.ts.map +1 -0
  246. package/dist/lib/view-navigation.d.ts +1 -1
  247. package/dist/lib/view-navigation.d.ts.map +1 -1
  248. package/dist/lib/ws-client.d.ts +67 -10
  249. package/dist/lib/ws-client.d.ts.map +1 -1
  250. package/dist/main.d.ts +2 -0
  251. package/dist/main.d.ts.map +1 -1
  252. package/dist/providers.json +30 -0
  253. package/dist/stores/chat-store.d.ts.map +1 -1
  254. package/dist/stores/codemap-activity-store.d.ts +79 -0
  255. package/dist/stores/codemap-activity-store.d.ts.map +1 -0
  256. package/dist/stores/cron-store.d.ts +29 -0
  257. package/dist/stores/cron-store.d.ts.map +1 -0
  258. package/dist/stores/file-reference-store.d.ts +7 -1
  259. package/dist/stores/file-reference-store.d.ts.map +1 -1
  260. package/dist/stores/fleet-store.d.ts.map +1 -1
  261. package/dist/stores/{autophase-store.d.ts → goal-run-store.d.ts} +12 -12
  262. package/dist/stores/goal-run-store.d.ts.map +1 -0
  263. package/dist/stores/goal-state-store.d.ts +12 -0
  264. package/dist/stores/goal-state-store.d.ts.map +1 -0
  265. package/dist/stores/index.d.ts +7 -2
  266. package/dist/stores/index.d.ts.map +1 -1
  267. package/dist/stores/kanban-store.d.ts +2 -1
  268. package/dist/stores/kanban-store.d.ts.map +1 -1
  269. package/dist/stores/local-prefs.d.ts +32 -0
  270. package/dist/stores/local-prefs.d.ts.map +1 -1
  271. package/dist/stores/mailbox-store.d.ts +16 -0
  272. package/dist/stores/mailbox-store.d.ts.map +1 -1
  273. package/dist/stores/monitor-store.d.ts +61 -0
  274. package/dist/stores/monitor-store.d.ts.map +1 -1
  275. package/dist/stores/office-map-store.d.ts +4 -0
  276. package/dist/stores/office-map-store.d.ts.map +1 -1
  277. package/dist/stores/session-store.d.ts.map +1 -1
  278. package/dist/stores/techstack-store.d.ts +110 -0
  279. package/dist/stores/techstack-store.d.ts.map +1 -0
  280. package/dist/stores/types.d.ts +29 -3
  281. package/dist/stores/types.d.ts.map +1 -1
  282. package/dist/stores/ui-store.d.ts +44 -13
  283. package/dist/stores/ui-store.d.ts.map +1 -1
  284. package/dist/stores/viz-store.d.ts +6 -0
  285. package/dist/stores/viz-store.d.ts.map +1 -1
  286. package/dist/types.d.ts +672 -41
  287. package/dist/types.d.ts.map +1 -1
  288. package/package.json +16 -18
  289. package/dist/assets/AnalyticsDashboard-BDpQqHtX.js +0 -1
  290. package/dist/assets/AutoPhaseView-BL_RSAcj.js +0 -1
  291. package/dist/assets/ChangesView-Dqfa8YFA.js +0 -1
  292. package/dist/assets/CodeEditor-De8voGEi.js +0 -1
  293. package/dist/assets/DebugDashboard-D0C8_NWJ.js +0 -1
  294. package/dist/assets/DesignGalleryView-Dwn2JYAL.js +0 -1
  295. package/dist/assets/KanbanView-BUugea4e.js +0 -1
  296. package/dist/assets/MailboxDetailView-DCjSrQNI.js +0 -1
  297. package/dist/assets/OfficeMapPanel-Bqqys7xo.js +0 -4
  298. package/dist/assets/ProcessMonitor-CS1LSf39.js +0 -1
  299. package/dist/assets/QueuePanel-Cs7k3M-4.js +0 -1
  300. package/dist/assets/RefreshDebugView-Di0lyXKv.js +0 -1
  301. package/dist/assets/SddBoardView-Dv9R7tBM.js +0 -2
  302. package/dist/assets/SddFlowGraph-BGPIWq7W.js +0 -1
  303. package/dist/assets/SddWizard-BWaJb5ZH.js +0 -1
  304. package/dist/assets/SessionsDashboard-B1u7rjTK.js +0 -1
  305. package/dist/assets/SetupScreen-nZMY7jM6.js +0 -1
  306. package/dist/assets/SkillDetailView-CQevybc9.js +0 -3
  307. package/dist/assets/SpecsView-Xw9k8Llw.js +0 -1
  308. package/dist/assets/TerminalPanel-CPuqFiXC.js +0 -1
  309. package/dist/assets/activity-Bt5JliZ2.js +0 -5
  310. package/dist/assets/activity-DVbfo6OS.js +0 -5
  311. package/dist/assets/activity-DkmpcH1_.js +0 -5
  312. package/dist/assets/activity-HUfcj2wp.js +0 -5
  313. package/dist/assets/activity-lQ47COGt.js +0 -5
  314. package/dist/assets/activity-mgahm8RV.js +0 -5
  315. package/dist/assets/activity-naMKylQi.js +0 -5
  316. package/dist/assets/chat-store-Dy1m3oen.js +0 -5
  317. package/dist/assets/i18n-ClFSbktB.js +0 -2
  318. package/dist/assets/index-DGwt4pL3.js +0 -157
  319. package/dist/assets/index-pw_NYdQ9.css +0 -1
  320. package/dist/assets/local-prefs-DUm4LFyu.js +0 -1
  321. package/dist/assets/markdown-BRAejDWd.js +0 -44
  322. package/dist/assets/settings-BehzuKKh.js +0 -1
  323. package/dist/assets/settings-CO8sA1-8.js +0 -1
  324. package/dist/assets/settings-CSb_3QO0.js +0 -1
  325. package/dist/assets/settings-CVkZ15Hv.js +0 -1
  326. package/dist/assets/settings-DRDu_6WL.js +0 -1
  327. package/dist/assets/settings-Dj8eonZG.js +0 -1
  328. package/dist/assets/settings-DkZAyCk6.js +0 -1
  329. package/dist/assets/ui-store-LCpXBvQT.js +0 -1
  330. package/dist/assets/utils-Bl7Yr7Bw.js +0 -1
  331. package/dist/assets/vendor-C9iFsXuW.js +0 -70
  332. package/dist/assets/vendor-CcOzUMQS.css +0 -1
  333. package/dist/assets/ws-client-WVS5hdJj.js +0 -1
  334. package/dist/assets/xyflow-DtxX27Jz.css +0 -1
  335. package/dist/assets/xyflow-YzHYNDhB.js +0 -7
  336. package/dist/components/AutoPhaseView.d.ts.map +0 -1
  337. package/dist/lib/analytics.d.ts +0 -38
  338. package/dist/lib/analytics.d.ts.map +0 -1
  339. package/dist/server/index.d.ts.map +0 -1
  340. package/dist/stores/autophase-store.d.ts.map +0 -1
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-C9iFsXuW.js","assets/rolldown-runtime-QTnfLwEv.js","assets/markdown-BRAejDWd.js","assets/vendor-CcOzUMQS.css"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{c as t,m as n,p as r}from"./markdown-BRAejDWd.js";import{Ar as i,Bt as ee,Er as te,Hn as ne,Jn as re,Kr as a,Nn as ie,Sr as ae,Vr as oe,Yt as se,Z as o,Zt as ce,_i as s,br as le,dt as c,mi as l,rr as ue,ur as de,vr as u}from"./vendor-C9iFsXuW.js";import"./i18n-ClFSbktB.js";import{l as d}from"./monaco-MjnRih9i.js";import{t as f}from"./utils-Bl7Yr7Bw.js";import{n as fe}from"./ui-store-LCpXBvQT.js";import{C as pe,D as me,N as he,O as ge,j as _e,v as p,w as ve,x as ye}from"./index-DGwt4pL3.js";var m=e(n(),1),h=r(),be=(0,m.lazy)(()=>d(()=>import(`./vendor-C9iFsXuW.js`).then(e=>e.m),__vite__mapDeps([0,1,2,3])));function g(e){return e===`project`||e===`user`}function _(e){let t=e.match(/^(.+?)\/SKILL(?:\.save)?\.md$/);return t?t[1]:null}function xe({source:e}){let{t}=l(),n=e===`project`?`project`:e===`user`?`user`:`bundled`;return(0,h.jsx)(`span`,{className:f(`inline-flex items-center rounded-md border px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide`,n===`project`&&`border-success/25 bg-success/8 text-success`,n===`user`&&`border-primary/25 bg-primary/10 text-primary`,n===`bundled`&&`border-border/70 bg-muted/60 text-muted-foreground`),children:t(`activity:skillDetail.${{project:`scopeProject`,user:`scopeGlobal`,bundled:`scopeBundled`}[n]}`)})}function v({className:e}){let{t:n}=l(),{client:r}=_e(),d=fe(e=>e.skillsState),v=fe(e=>e.setSkillsState),y=d.selectedSkill,b=d.navHistory,x=d.historyIndex,[S,Se]=(0,m.useState)(null),[Ce,C]=(0,m.useState)(!1),[we,w]=(0,m.useState)(null),[T,E]=(0,m.useState)(!1),[D,O]=(0,m.useState)(``),[k,A]=(0,m.useState)(!1),[j,M]=(0,m.useState)(null),[N,P]=(0,m.useState)(!1),[F,I]=(0,m.useState)(null),[L,R]=(0,m.useState)(!1),z=(0,m.useRef)(``),[B,V]=(0,m.useState)(!1),[H,U]=(0,m.useState)(null),[Te,W]=(0,m.useState)(!1),[G,K]=(0,m.useState)(null),[q,Ee]=(0,m.useState)(!1),[De,Oe]=(0,m.useState)([]),J=(0,m.useRef)(d);J.current=d;let Y=(0,m.useRef)(!1),X=(0,m.useMemo)(()=>D?{lines:D.split(`
3
- `).length,words:D.trim()?D.trim().split(/\s+/).length:0,chars:D.length}:{lines:0,words:0,chars:0},[D]),Z=(0,m.useMemo)(()=>{if(!D)return null;let e=5*1024*1024,t=new Blob([D]).size;return t>=e?{level:`critical`,used:t,limit:e}:t>=4194304?{level:`warn`,used:t,limit:e}:null},[D]);(0,m.useEffect)(()=>{if(!F)return;let e=setTimeout(()=>I(null),2e3);return()=>clearTimeout(e)},[F]),(0,m.useEffect)(()=>{if(!T||!y)return;let e=setInterval(()=>{D&&D!==z.current&&(z.current=D,localStorage.setItem(`skills_draft_${y.name}`,JSON.stringify({content:D,savedAt:Date.now()})),I(Date.now()))},5e3);return()=>clearInterval(e)},[T,D,y]),(0,m.useEffect)(()=>{if(!y||!T)return;let e=localStorage.getItem(`skills_draft_${y.name}`);if(e)try{let{content:t}=JSON.parse(e);t&&t!==D&&t!==z.current&&(O(t),z.current=t,R(!0))}catch{}},[y?.name,T]),(0,m.useEffect)(()=>{if(!r||!y)return;C(!0),Se(null),w(null);let e=setTimeout(()=>{C(!1),w(s.t(`activity:skillDetail.timeoutError`))},1e4),t=t=>{clearTimeout(e);let n=t;n.payload.error?w(n.payload.error):n.payload.name&&Se(n.payload),C(!1)},n=e=>{let t=e;V(!1);let n=J.current;if(t.payload.success){let e={...n.knownRefs};for(let n of t.payload.updated??[])e[n.name]=n.newRef;v({...n,knownRefs:e,updateAvailableCount:0}),U({updated:t.payload.updated??[],unchanged:t.payload.unchanged??[],errors:t.payload.errors??[]}),r.send({type:`skills.list`})}else U({updated:[],unchanged:[],errors:[{name:``,error:t.payload.error??s.t(`activity:skillDetail.updateFailed`)}]})},i=e=>{let t=e;t.payload.skills&&Oe(t.payload.skills)};return r.on(`skills.content`,t),r.on(`skills.updated`,n),r.on(`skills.list`,i),r.send({type:`skills.content`,payload:{name:y.name,source:y.source}}),()=>{clearTimeout(e),r.off(`skills.content`,t),r.off(`skills.updated`,n),r.off(`skills.list`,i)}},[r,y?.name,y?.source]),(0,m.useEffect)(()=>{T&&(E(!1),O(``),M(null))},[y?.name]);let Q=(0,m.useCallback)(e=>De.find(t=>t.name.toLowerCase()===e.toLowerCase()),[De]),ke=(0,m.useCallback)(e=>{let t=Q(e);if(t){Y.current=!1;let e=b.slice(0,x+1);e.push(t),v({...J.current,selectedSkill:t,navHistory:e,historyIndex:e.length-1}),E(!1),O(``),U(null)}},[Q,b,x,v]),Ae=(0,m.useCallback)(()=>{if(x<=0)return;Y.current=!0;let e=x-1,t=b[e];v({...J.current,selectedSkill:t,historyIndex:e}),E(!1),O(``),U(null)},[x,b,v]),je=(0,m.useCallback)(()=>{if(x>=b.length-1)return;Y.current=!0;let e=x+1,t=b[e];v({...J.current,selectedSkill:t,historyIndex:e}),E(!1),O(``),U(null)},[x,b,v]),$=(0,m.useCallback)(()=>{he(`chat`)},[]),Me=(0,m.useCallback)(()=>{S&&(O(S.body),z.current=S.body,R(!1),M(null),E(!0),P(!1))},[S]),Ne=(0,m.useCallback)(()=>{E(!1),O(``),M(null),P(!1),R(!1),y&&localStorage.removeItem(`skills_draft_${y.name}`)},[y]),Pe=(0,m.useCallback)(()=>{!y||!S||(R(!1),O(S.body),z.current=S.body,y&&localStorage.removeItem(`skills_draft_${y.name}`))},[y,S]),Fe=(0,m.useCallback)(()=>{if(!r||!y||!D.trim())return;A(!0),M(null);let e=t=>{let n=t;A(!1),n.payload.success?(z.current=``,localStorage.removeItem(`skills_draft_${y.name}`),R(!1),E(!1),r.send({type:`skills.content`,payload:{name:y.name,source:y.source}}),r.send({type:`skills.list`})):M(n.payload.error??s.t(`activity:skillDetail.saveFailed`)),r.off(`skills.edited`,e)};r.on(`skills.edited`,e),r.editSkill(y.name,D)},[r,y,D]),Ie=(0,m.useCallback)(()=>{!r||!y||(V(!0),U(null),r.checkForUpdates(y.name,y.source===`user`))},[r,y]),Le=(0,m.useCallback)(()=>{y?.sourceUrl&&navigator.clipboard.writeText(y.sourceUrl).then(()=>{W(!0),setTimeout(()=>W(!1),2e3)})},[y]),Re=(0,m.useCallback)(()=>{if(!S?.body)return;let e=new Blob([S.body],{type:`text/markdown`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`${S.name.replace(/\//g,`_`)}-SKILL.md`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(t)},[S]),ze=(0,m.useCallback)(async e=>{if(!r||!e)return;Ee(!0);let t=e=>{let n=e;Ee(!1),n.payload.success?(K(null),r.send({type:`skills.list`}),$()):M(n.payload.error??s.t(`activity:skillDetail.uninstallFailed`)),r.off(`skills.uninstalled`,t)};r.on(`skills.uninstalled`,t),r.uninstallSkill(e.name,e.source===`user`)},[r,$]);return y?(0,h.jsxs)(`div`,{className:f(`flex h-full min-h-0 min-w-0 flex-col gap-3 overflow-hidden bg-[hsl(var(--surface-2)/0.45)] p-3`,e),children:[(0,h.jsxs)(`div`,{className:`shrink-0 rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:[(0,h.jsxs)(`div`,{className:`flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between`,children:[(0,h.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,h.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,h.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,children:(0,h.jsx)(oe,{className:`h-4 w-4`})}),(0,h.jsx)(`h1`,{className:`min-w-0 truncate text-base font-semibold`,children:y.name}),y.version&&(0,h.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`v`,y.version]}),(0,h.jsx)(xe,{source:y.source})]}),(0,h.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 line-clamp-2`,children:y.description||y.trigger}),y.sourceUrl&&(0,h.jsxs)(`div`,{className:`mt-2 flex min-w-0 items-center gap-1`,children:[(0,h.jsxs)(`a`,{href:`https://${y.sourceUrl.replace(`github:`,``)}`,target:`_blank`,rel:`noopener noreferrer`,className:`flex min-w-0 items-center gap-1 text-xs text-muted-foreground transition-colors hover:text-foreground`,title:n(`activity:skillDetail.openSourceRepo`),children:[(0,h.jsx)(ie,{className:`h-3 w-3 shrink-0`}),(0,h.jsx)(`span`,{className:`truncate font-mono`,children:y.sourceUrl})]}),(0,h.jsx)(`button`,{type:`button`,onClick:Le,className:`flex shrink-0 items-center text-muted-foreground transition-colors hover:text-foreground`,title:n(`activity:skillDetail.copySourceUrl`),children:Te?(0,h.jsx)(ae,{className:`h-3 w-3 text-success`}):(0,h.jsx)(de,{className:`h-3 w-3`})})]}),y.scope.length>0&&(0,h.jsx)(`div`,{className:`flex flex-wrap gap-1 mt-2`,children:y.scope.map(e=>(0,h.jsx)(`span`,{className:`px-1.5 py-0.5 text-[10px] rounded bg-muted text-muted-foreground`,children:e},e))}),H&&(0,h.jsxs)(`div`,{className:`mt-2 text-xs space-y-1`,children:[H.updated.length>0&&(0,h.jsx)(`div`,{className:`text-success`,children:n(`activity:skillDetail.updatedLabel`,{list:H.updated.map(e=>`${e.name} (${e.oldRef} → ${e.newRef})`).join(`, `)})}),H.unchanged.length>0&&(0,h.jsx)(`div`,{className:`text-muted-foreground`,children:n(`activity:skillDetail.upToDateLabel`,{list:H.unchanged.join(`, `)})}),H.errors.length>0&&(0,h.jsx)(`div`,{className:`text-destructive`,children:n(`activity:skillDetail.errorsLabel`,{list:H.errors.map(e=>`${e.name?`${e.name}: `:``}${e.error}`).join(`; `)})})]})]}),(0,h.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1 lg:ml-auto lg:shrink-0 lg:justify-end`,children:[g(y.source)&&y.sourceUrl&&(0,h.jsx)(`button`,{type:`button`,onClick:Ie,disabled:B,className:`flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:opacity-50`,title:n(`activity:skillDetail.checkUpdatesTitle`),children:B?(0,h.jsx)(a,{className:`h-3.5 w-3.5 animate-spin`}):(0,h.jsx)(ee,{className:`h-3.5 w-3.5`})}),y.source!==`bundled`&&!T&&(0,h.jsx)(`button`,{type:`button`,onClick:Re,className:`flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,title:n(`activity:skillDetail.exportTitle`),children:(0,h.jsx)(ue,{className:`h-3.5 w-3.5`})}),g(y.source)&&!T&&(0,h.jsx)(`button`,{type:`button`,onClick:Me,className:`flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,title:n(`activity:skillDetail.editTitle`),children:(0,h.jsx)(se,{className:`h-3.5 w-3.5`})}),g(y.source)&&(0,h.jsx)(`button`,{type:`button`,onClick:()=>K(y),className:`flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,title:n(`activity:skillDetail.uninstallTitle`),children:(0,h.jsx)(c,{className:`h-3.5 w-3.5`})}),(0,h.jsx)(`button`,{type:`button`,onClick:$,className:`flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground`,title:n(`activity:skillDetail.closeTitle`),children:(0,h.jsx)(o,{className:`h-4 w-4`})})]})]}),b.length>1&&(0,h.jsxs)(`div`,{className:`mt-3 flex min-w-0 items-center gap-1 rounded-lg border border-border/60 bg-muted/35 px-2 py-1`,children:[(0,h.jsx)(`button`,{type:`button`,onClick:Ae,disabled:x<=0,className:f(`rounded p-1 transition-colors`,x<=0?`text-muted-foreground/65 cursor-not-allowed`:`hover:bg-accent text-muted-foreground cursor-pointer`),title:n(`activity:skillDetail.backTitle`),children:(0,h.jsx)(le,{className:`h-4 w-4`})}),(0,h.jsx)(`button`,{type:`button`,onClick:je,disabled:x>=b.length-1,className:f(`rounded p-1 transition-colors`,x>=b.length-1?`text-muted-foreground/65 cursor-not-allowed`:`hover:bg-accent text-muted-foreground cursor-pointer`),title:n(`activity:skillDetail.forwardTitle`),children:(0,h.jsx)(u,{className:`h-4 w-4`})}),(0,h.jsx)(`div`,{className:`flex items-center gap-0.5 overflow-x-auto text-xs`,children:b.map((e,t)=>(0,h.jsxs)(`span`,{className:`flex items-center shrink-0`,children:[t>0&&(0,h.jsx)(u,{className:`h-3 w-3 text-muted-foreground/65 mx-0.5 shrink-0`}),(0,h.jsx)(`button`,{type:`button`,onClick:()=>{t<x&&(Y.current=!0,v({...J.current,selectedSkill:e,historyIndex:t}),E(!1),O(``),U(null))},className:f(`hover:text-primary cursor-pointer transition-colors`,t===x?`text-primary font-medium`:`text-muted-foreground`),children:e.name})]},e.name+t))})]})]}),S&&(S.relatedFiles.length>0||S.references.length>0)&&(0,h.jsxs)(`div`,{className:`shrink-0 space-y-2 rounded-xl border border-border/70 bg-card/70 px-4 py-3 shadow-sm`,children:[S.relatedFiles.length>0&&(0,h.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-1 text-[10px] text-muted-foreground`,children:[(0,h.jsx)(ne,{className:`h-3 w-3`}),(0,h.jsx)(`span`,{className:`font-medium uppercase tracking-wide`,children:n(`activity:skillDetail.relatedFiles`)})]}),S.relatedFiles.map(e=>{let t=_(e);return t&&Q(t)?(0,h.jsxs)(`button`,{type:`button`,onClick:()=>ke(t),className:`inline-flex min-w-0 items-center gap-1 rounded-md border border-border/70 bg-background/60 px-1.5 py-0.5 text-[10px] transition-colors hover:border-primary/40 hover:text-primary`,title:n(`activity:skillDetail.goToSkillTitle`,{name:t}),children:[(0,h.jsx)(i,{className:`h-2.5 w-2.5`}),e]},e):(0,h.jsx)(`span`,{className:`rounded-md border border-border/70 bg-background/60 px-1.5 py-0.5 text-[10px] text-muted-foreground`,children:e},e)})]}),S.references.length>0&&(0,h.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-1 text-[10px] text-muted-foreground`,children:[(0,h.jsx)(re,{className:`h-3 w-3`}),(0,h.jsx)(`span`,{className:`font-medium uppercase tracking-wide`,children:n(`activity:skillDetail.references`)})]}),S.references.map(e=>{let t=_(e)??e.replace(/\.md$/,``);return Q(t)?(0,h.jsxs)(`button`,{type:`button`,onClick:()=>ke(t),className:`inline-flex min-w-0 items-center gap-1 rounded-md border border-primary/20 bg-primary/5 px-1.5 py-0.5 text-[10px] text-primary transition-colors hover:border-primary/30 hover:bg-primary/10`,title:n(`activity:skillDetail.goToSkillTitle`,{name:t}),children:[(0,h.jsx)(i,{className:`h-2.5 w-2.5`}),t]},e):(0,h.jsx)(`span`,{className:`rounded-md bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground`,children:t},e)})]})]}),(0,h.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-hidden rounded-xl border border-border/70 bg-card/70 shadow-sm`,children:Ce?(0,h.jsxs)(`div`,{className:`flex h-full min-h-[16rem] flex-col items-center justify-center p-8 text-center text-muted-foreground`,children:[(0,h.jsx)(a,{className:`mx-auto mb-2 h-6 w-6 animate-spin text-primary`}),(0,h.jsx)(`p`,{children:n(`activity:skillDetail.loadingContent`)})]}):T?(0,h.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col`,children:[(0,h.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 border-b border-border/70 bg-muted/30 px-4 py-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,h.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,h.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n(`activity:skillDetail.editingLabel`,{name:y.name})}),(0,h.jsx)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,children:n(`activity:skillDetail.editStats`,{lines:X.lines,words:X.words,chars:X.chars})}),Z&&(0,h.jsx)(`span`,{className:`text-xs tabular-nums ${Z.level===`critical`?`font-medium text-destructive`:`text-warning`}`,children:n(`activity:skillDetail.charsWarningFmt`,{used:(Z.used/(1024*1024)).toFixed(1),limit:(Z.limit/(1024*1024)).toFixed(0)})}),F&&(0,h.jsx)(`span`,{className:`text-xs text-success animate-pulse`,children:n(`activity:skillDetail.draftSaved`)}),L&&(0,h.jsx)(`span`,{className:`animate-pulse text-xs text-warning`,children:n(`activity:skillDetail.draftRestored`)})]}),(0,h.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[j&&(0,h.jsx)(`span`,{className:`text-xs text-destructive`,children:j}),L&&(0,h.jsx)(`button`,{type:`button`,onClick:Pe,className:`rounded-md border border-warning/35 px-2 py-1 text-[10px] text-warning transition-colors hover:bg-warning/10`,children:n(`activity:skillDetail.discardDraft`)}),(0,h.jsx)(`button`,{type:`button`,onClick:Ne,className:`rounded-md border border-border/70 px-2 py-1 text-xs transition-colors hover:bg-accent`,children:n(`common:action.cancel`)}),(0,h.jsx)(`button`,{type:`button`,onClick:()=>P(e=>!e),title:n(N?`activity:skillDetail.hidePreviewTitle`:`activity:skillDetail.splitViewTitle`),className:`rounded-md border px-2 py-1 text-xs transition-colors ${N?`border-primary/40 bg-primary/10 text-primary`:`border-border/70 text-muted-foreground hover:bg-accent`}`,children:(0,h.jsx)(ce,{className:`h-3 w-3 inline`})}),(0,h.jsx)(`button`,{type:`button`,onClick:Fe,disabled:k||!D.trim(),className:`rounded-md bg-primary px-3 py-1 text-xs text-primary-foreground shadow-sm shadow-primary/15 transition-colors hover:bg-primary/90 disabled:opacity-50`,children:k?(0,h.jsx)(a,{className:`h-3 w-3 animate-spin inline`}):n(`common:action.save`)})]})]}),N?(0,h.jsxs)(`div`,{className:`flex flex-1 min-h-0 gap-0.5`,children:[(0,h.jsx)(`div`,{className:`flex-1 min-w-0 flex flex-col min-h-0`,children:(0,h.jsx)(m.Suspense,{fallback:null,children:(0,h.jsx)(be,{value:D,onChange:e=>O(e.target.value??``),language:`markdown`,className:`flex-1`,style:{fontSize:12,backgroundColor:`transparent`,minHeight:0},placeholder:n(`activity:skillDetail.contentPlaceholder`)})})}),(0,h.jsx)(`div`,{className:`w-px bg-border flex-shrink-0`}),(0,h.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto bg-background/45 p-4 prose prose-sm dark:prose-invert max-w-none`,children:(0,h.jsx)(ye,{rehypePlugins:[t],components:p,children:D})})]}):(0,h.jsx)(m.Suspense,{fallback:null,children:(0,h.jsx)(be,{value:D,onChange:e=>O(e.target.value??``),language:`markdown`,className:`flex-1`,style:{fontSize:12,backgroundColor:`transparent`,minHeight:0},placeholder:n(`activity:skillDetail.contentPlaceholder`)})})]}):S?(0,h.jsx)(`div`,{className:`h-full min-h-0 overflow-y-auto p-5 sm:p-6 prose prose-sm dark:prose-invert max-w-none`,children:(0,h.jsx)(ye,{rehypePlugins:[t],components:p,children:S.body})}):we?(0,h.jsxs)(`div`,{className:`flex h-full min-h-[16rem] flex-col items-center justify-center p-8 text-center`,children:[(0,h.jsx)(`p`,{className:`text-destructive mb-2`,children:n(`activity:skillDetail.loadFailed`)}),(0,h.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:we}),(0,h.jsx)(`button`,{type:`button`,onClick:()=>{r&&y&&(C(!0),w(null),r.send({type:`skills.content`,payload:{name:y.name,source:y.source}}))},className:`mt-4 rounded-md border border-border/70 px-3 py-1.5 text-xs transition-colors hover:bg-accent`,children:n(`common:action.retry`)})]}):(0,h.jsx)(`div`,{className:`flex h-full min-h-[16rem] items-center justify-center p-8 text-center text-muted-foreground`,children:n(`activity:skillDetail.noContent`)})}),(0,h.jsx)(pe,{open:!!G,onOpenChange:e=>{e||K(null)},children:(0,h.jsxs)(ve,{className:`flex max-h-[calc(100dvh-2rem)] w-[380px] max-w-[90vw] flex-col gap-0 overflow-hidden p-0`,showCloseButton:!1,children:[(0,h.jsxs)(me,{className:`flex shrink-0 items-center justify-between border-b border-border/70 p-4 sm:flex-row sm:justify-between sm:space-y-0`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,h.jsx)(c,{className:`h-4 w-4 text-destructive`}),(0,h.jsx)(ge,{className:`font-semibold text-sm`,children:n(`activity:skillDetail.uninstallSkillHeading`)})]}),(0,h.jsx)(`button`,{type:`button`,onClick:()=>K(null),"aria-label":n(`common:action.close`),className:`rounded p-1 text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,h.jsx)(o,{className:`h-4 w-4`})})]}),(0,h.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto p-4`,children:[(0,h.jsx)(`p`,{className:`text-sm`,children:G&&n(`activity:skillDetail.uninstallConfirm`,{name:G.name})}),(0,h.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:G&&n(`activity:skillDetail.uninstallRemovePath`,{path:G.source===`user`?`~/.wrongstack/skills`:`.wrongstack/skills`})})]}),(0,h.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-border/70 bg-muted/20 p-4`,children:[(0,h.jsx)(`button`,{type:`button`,onClick:()=>K(null),disabled:q,className:`rounded-md border border-border/70 px-3 py-1.5 text-xs transition-colors hover:bg-accent disabled:opacity-50`,children:n(`common:action.cancel`)}),(0,h.jsxs)(`button`,{type:`button`,onClick:()=>G&&ze(G),disabled:q,className:`flex items-center gap-1.5 rounded-md bg-destructive px-3 py-1.5 text-xs text-destructive-foreground transition-colors hover:bg-destructive/90 disabled:cursor-not-allowed disabled:opacity-50`,children:[q&&(0,h.jsx)(a,{className:`h-3 w-3 animate-spin`}),n(`activity:skillDetail.uninstallAction`)]})]})]})})]}):(0,h.jsx)(`div`,{className:f(`flex h-full min-h-0 flex-1 items-center justify-center bg-[hsl(var(--surface-2)/0.45)] p-4 text-muted-foreground`,e),children:(0,h.jsxs)(`div`,{className:`ws-surface flex max-w-md flex-col items-center gap-3 rounded-xl p-6 text-center`,children:[(0,h.jsx)(`span`,{className:`flex h-12 w-12 items-center justify-center rounded-xl bg-primary/10 text-primary`,children:(0,h.jsx)(te,{className:`h-6 w-6`})}),(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`p`,{className:`text-base font-medium text-foreground`,children:n(`activity:skillDetail.noSkillSelected`)}),(0,h.jsx)(`p`,{className:`mt-1 text-sm`,children:n(`activity:skillDetail.selectSkillHint`)})]}),(0,h.jsx)(`button`,{type:`button`,onClick:$,className:`mt-1 rounded-md border border-border/70 bg-card/70 px-4 py-2 text-sm text-foreground shadow-sm transition-colors hover:bg-accent`,children:n(`activity:skillDetail.goToChat`)})]})})}export{v as SkillDetailView};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{m as t,p as n}from"./markdown-BRAejDWd.js";import{It as r,Jn as i,Kr as a,Kt as o,Or as s,Z as c,en as l,fr as u,hn as d,ii as f,mi as p,mr as m,si as h,vr as g,xn as _,xr as v}from"./vendor-C9iFsXuW.js";import"./i18n-ClFSbktB.js";import{t as y}from"./utils-Bl7Yr7Bw.js";import{I as b,M as x,S,j as C}from"./index-DGwt4pL3.js";var w=e(t(),1),T=n(),E={completed:{icon:(0,T.jsx)(h,{className:`h-3.5 w-3.5`}),label:`Completed`,text:`text-success`,ring:`border-success/35`},in_progress:{icon:(0,T.jsx)(a,{className:`h-3.5 w-3.5 animate-spin`}),label:`Running`,text:`text-primary`,ring:`border-primary/45`},queued:{icon:(0,T.jsx)(u,{className:`h-3.5 w-3.5`}),label:`Queued`,text:`text-warning`,ring:`border-warning/35`},blocked:{icon:(0,T.jsx)(d,{className:`h-3.5 w-3.5`}),label:`Blocked`,text:`text-destructive`,ring:`border-destructive/30`},pending:{icon:(0,T.jsx)(m,{className:`h-3.5 w-3.5`}),label:`Pending`,text:`text-muted-foreground`,ring:`border-border/70`},review:{icon:(0,T.jsx)(r,{className:`h-3.5 w-3.5`}),label:`Review`,text:`text-primary`,ring:`border-primary/35`},failed:{icon:(0,T.jsx)(f,{className:`h-3.5 w-3.5`}),label:`Failed`,text:`text-destructive`,ring:`border-destructive/45`},cancelled:{icon:(0,T.jsx)(s,{className:`h-3.5 w-3.5`}),label:`Cancelled`,text:`text-muted-foreground`,ring:`border-border/70`}},D=[`completed`,`in_progress`,`queued`,`blocked`,`pending`,`failed`],O={critical:{label:`Crit`,cls:`bg-destructive/10 text-destructive`},high:{label:`High`,cls:`bg-destructive/10 text-destructive`},medium:{label:`Med`,cls:`bg-warning/12 text-warning`},low:{label:`Low`,cls:`bg-success/12 text-success`}};function k({columns:e,onTaskClick:t}){let{t:n}=p();return e.length===0?(0,T.jsx)(`div`,{className:`flex h-40 items-center justify-center text-sm text-muted-foreground`,children:n(`activity:board.emptySpec`)}):(0,T.jsxs)(`div`,{className:`rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:[(0,T.jsx)(`h3`,{className:`mb-3 text-sm font-semibold text-foreground`,children:n(`activity:board.depGraphHeading`)}),(0,T.jsx)(`div`,{className:`mb-4 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs`,children:D.map(e=>(0,T.jsxs)(`span`,{className:y(`inline-flex items-center gap-1.5`,E[e].text),children:[E[e].icon,(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:n(`activity:board.status.${e}`)})]},e))}),(0,T.jsx)(`div`,{className:`flex gap-3 overflow-x-auto pb-2`,children:e.map((n,r)=>(0,T.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,T.jsxs)(`div`,{className:`w-60 shrink-0`,children:[(0,T.jsx)(`div`,{className:`mb-2 border-b border-border/60 pb-1 text-center text-xs font-medium uppercase text-muted-foreground`,children:n.label}),(0,T.jsx)(`div`,{className:`space-y-2`,children:n.tasks.map(e=>(0,T.jsx)(A,{task:e,onClick:t},e.id))})]}),r<e.length-1&&(0,T.jsx)(`div`,{className:`flex h-full items-center pt-8 text-muted-foreground/75`,children:(0,T.jsx)(g,{className:`h-5 w-5`})})]},n.label))})]})}function A({task:e,onClick:t}){let n=E[e.displayStatus],r=O[e.priority],{t:i}=p();return(0,T.jsxs)(`button`,{type:`button`,onClick:()=>t?.(e.id),className:y(`w-full rounded-lg border bg-background/55 p-2.5 text-left shadow-sm transition-colors hover:border-primary/35 hover:bg-accent/35`,n.ring),children:[(0,T.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,T.jsxs)(`span`,{className:y(`inline-flex items-center gap-1.5 text-xs font-medium`,n.text),children:[n.icon,(0,T.jsx)(`span`,{className:`font-mono text-foreground`,children:e.shortId})]}),(0,T.jsx)(`span`,{className:y(`rounded px-1.5 py-0.5 text-[10px] font-medium`,r.cls),children:r.label})]}),(0,T.jsx)(`p`,{className:`mt-1.5 text-xs text-foreground`,children:e.title}),e.deps.length>0&&(0,T.jsxs)(`p`,{className:`mt-1 font-mono text-[10px] text-muted-foreground`,children:[`← `,e.deps.join(`, `)]}),e.agentName&&(0,T.jsxs)(`div`,{className:y(`mt-1.5 inline-flex items-center gap-1 rounded-full px-1.5 py-0.5 text-[10px]`,e.displayStatus===`in_progress`?`bg-primary/10 text-primary`:`bg-muted text-muted-foreground`),title:e.worktreeBranch?i(`activity:board.worktreePrefix`,{branch:e.worktreeBranch}):void 0,children:[e.displayStatus===`in_progress`&&(0,T.jsx)(a,{className:`h-3 w-3 animate-spin`}),(0,T.jsx)(`span`,{children:e.agentName})]})]})}function j(e){return e.columns.map(e=>({name:e.label,description:``,priority:`medium`,estimateHours:e.tasks.length,parallelizable:!1,taskTemplates:e.tasks.map(e=>({title:e.title,description:e.description,type:e.type,priority:e.priority,estimateHours:1}))}))}function M({onClose:e}){let{client:t}=C(),{t:n}=p(),r=b(e=>e.specs),a=b(e=>e.detail),s=b(e=>e.expandedSpecId),u=b(e=>e.setExpanded),[d,f]=(0,w.useState)(`graph`),m=(0,w.useCallback)(e=>{!a||a.specId!==e.id||(t?.send?.({type:`autophase.start`,payload:{title:e.title,phases:j(a),autonomous:!0}}),x(`autophase`))},[a,t]);(0,w.useEffect)(()=>{t?.send?.({type:`specs.list`})},[t]);let h=(0,w.useCallback)(e=>{s===e.id?u(null):(u(e.id),t?.send?.({type:`specs.get`,payload:{specId:e.id}}))},[s,u,t]),E=a?.columns.flatMap(e=>e.tasks)??[],D={done:E.filter(e=>e.status===`completed`).length,running:E.filter(e=>e.status===`in_progress`).length,pending:E.filter(e=>e.status===`pending`||e.displayStatus===`queued`).length};return(0,T.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col bg-background`,children:[(0,T.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between border-b bg-card px-4 py-2`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(i,{className:`h-5 w-5 text-warning`}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h1`,{className:`text-lg font-semibold`,children:n(`activity:specs.heading`)}),(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`activity:specs.subtitle`)})]})]}),(0,T.jsx)(S,{variant:`ghost`,size:`icon`,onClick:e,children:(0,T.jsx)(c,{className:`h-4 w-4`})})]}),(0,T.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-4`,children:r.length===0?(0,T.jsx)(`div`,{className:`flex h-40 items-center justify-center text-sm text-muted-foreground`,children:n(`activity:specs.empty`,{command:`/sdd`})}):(0,T.jsx)(`div`,{className:`space-y-3`,children:r.map(e=>{let t=s===e.id,r=e.total>0?Math.round(e.completed/e.total*100):0;return(0,T.jsxs)(`div`,{className:`rounded-lg border border-border bg-card/60`,children:[(0,T.jsxs)(`button`,{type:`button`,onClick:()=>h(e),className:`flex w-full items-start gap-3 p-4 text-left`,children:[(0,T.jsx)(`span`,{className:`mt-1 text-muted-foreground`,children:t?(0,T.jsx)(v,{className:`h-4 w-4`}):(0,T.jsx)(g,{className:`h-4 w-4`})}),(0,T.jsx)(i,{className:`mt-0.5 h-4 w-4 text-muted-foreground`}),(0,T.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.displayId}),(0,T.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 text-[10px] capitalize text-muted-foreground`,children:e.status})]}),(0,T.jsx)(`h2`,{className:`mt-1 text-base font-semibold`,children:e.title}),(0,T.jsxs)(`div`,{className:`mt-2 flex items-center gap-2`,children:[(0,T.jsx)(`div`,{className:`h-2 flex-1 overflow-hidden rounded-full bg-muted`,children:(0,T.jsx)(`div`,{className:`h-full rounded-full bg-success transition-all`,style:{width:`${r}%`}})}),(0,T.jsxs)(`span`,{className:`shrink-0 font-mono text-xs text-muted-foreground`,children:[e.completed,`/`,e.total]})]})]})]}),t&&(0,T.jsxs)(`div`,{className:`border-t border-border p-4`,children:[(0,T.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,T.jsxs)(`div`,{className:`text-sm font-medium`,children:[n(`activity:specs.tasks`,{count:a?.total??e.total}),a&&(0,T.jsxs)(`span`,{className:`ml-3 text-xs font-normal text-muted-foreground`,children:[(0,T.jsx)(`span`,{className:`text-success`,children:n(`activity:specs.doneCount`,{count:D.done})}),` `,(0,T.jsx)(`span`,{className:`text-primary`,children:n(`activity:specs.runningCount`,{count:D.running})}),` `,(0,T.jsx)(`span`,{children:n(`activity:specs.pendingCount`,{count:D.pending})})]})]}),(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsxs)(`button`,{type:`button`,disabled:!a||a.specId!==e.id,onClick:()=>m(e),title:n(`activity:specs.runTitle`),className:`inline-flex items-center gap-1 rounded-md bg-warning/15 px-2.5 py-1 text-xs font-medium text-warning transition-colors hover:bg-warning/25 disabled:opacity-40`,children:[(0,T.jsx)(o,{className:`h-3.5 w-3.5`}),` `,n(`activity:specs.run`)]}),(0,T.jsxs)(`div`,{className:`flex items-center gap-1 rounded-md border border-border p-0.5`,children:[(0,T.jsxs)(`button`,{type:`button`,onClick:()=>f(`list`),className:y(`inline-flex items-center gap-1 rounded px-2 py-1 text-xs`,d===`list`?`bg-primary/15 text-primary`:`text-muted-foreground`),children:[(0,T.jsx)(_,{className:`h-3.5 w-3.5`}),` `,n(`activity:specs.list`)]}),(0,T.jsxs)(`button`,{type:`button`,onClick:()=>f(`graph`),className:y(`inline-flex items-center gap-1 rounded px-2 py-1 text-xs`,d===`graph`?`bg-primary/15 text-primary`:`text-muted-foreground`),children:[(0,T.jsx)(l,{className:`h-3.5 w-3.5`}),` `,n(`activity:specs.graph`)]})]})]})]}),!a||a.specId!==e.id?(0,T.jsx)(`div`,{className:`flex h-24 items-center justify-center text-sm text-muted-foreground`,children:n(`activity:specs.loadingTasks`)}):d===`graph`?(0,T.jsx)(k,{columns:a.columns}):(0,T.jsx)(`div`,{className:`space-y-1.5`,children:E.map(e=>(0,T.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md border border-border bg-card px-3 py-2`,children:[(0,T.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.shortId}),(0,T.jsx)(`span`,{className:`flex-1 text-sm`,children:e.title}),(0,T.jsx)(`span`,{className:`text-xs capitalize text-muted-foreground`,children:e.displayStatus.replace(`_`,` `)})]},e.id))})]})]},e.id)})})})]})}export{M as SpecsView};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{m as t,p as n}from"./markdown-BRAejDWd.js";import{Br as r,Gt as i,It as a,Z as o,_i as s,dt as c,mi as l}from"./vendor-C9iFsXuW.js";import"./i18n-ClFSbktB.js";import{t as u}from"./ws-client-WVS5hdJj.js";import{t as d}from"./session-store-BOmBeF9r.js";import{n as f,t as p}from"./utils-Bl7Yr7Bw.js";import{n as m}from"./ui-store-LCpXBvQT.js";import{J as h}from"./index-DGwt4pL3.js";import{n as g,t as _}from"./xterm-B9RXJkIu.js";var v=e(t(),1),y=`wrongstack.terminalDockHeight`;function b(e){let t=typeof window>`u`?640:Math.max(140,Math.min(640,Math.floor(window.innerHeight*.55),window.innerHeight-260));return Math.min(Math.max(Math.round(e),140),t)}var x=n(),S={background:`#1e1e2e`,foreground:`#cdd6f4`,cursor:`#f5e0dc`,selectionBackground:`#585b70`,black:`#45475a`,red:`#f38ba8`,green:`#a6e3a1`,yellow:`#f9e2af`,blue:`#89b4fa`,magenta:`#f5c2e7`,cyan:`#94e2d5`,white:`#bac2de`,brightBlack:`#585b70`,brightRed:`#f38ba8`,brightGreen:`#a6e3a1`,brightYellow:`#f9e2af`,brightBlue:`#89b4fa`,brightMagenta:`#f5c2e7`,brightCyan:`#94e2d5`,brightWhite:`#a6adc8`},C=8;function w(e=!1){return typeof window>`u`?300:b(window.innerHeight*(e?.32:.4))}function T(e=!1){if(typeof window>`u`)return w(e);try{let t=window.localStorage.getItem(y),n=t?Number.parseInt(t,10):NaN;return Number.isFinite(n)?b(n):w(e)}catch{return w(e)}}function E(e){try{window.localStorage.setItem(y,String(b(e)))}catch{}}function D(){return f()}function O(e){return{id:D(),name:`Terminal ${e}`,status:`starting`}}function k({desktopShell:e=!1,onClose:t}){let n=(0,v.useRef)(null),{t:s}=l(),u=(0,v.useRef)(1),[f,h]=(0,v.useState)(()=>T(e)),[g,_]=(0,v.useState)(()=>[O(1)]),[y,S]=(0,v.useState)(()=>g[0]?.id??``),w=m(e=>e.terminalCreateNonce),k=(0,v.useRef)(w),j=d(e=>e.projectName),M=d(e=>e.cwd);(0,v.useEffect)(()=>{let e=()=>{h(e=>{let t=b(e);return E(t),t})};return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let N=e=>{e.preventDefault(),n.current?.();let t=e.clientY,r=f,i=document.body.style.cursor,a=document.body.style.userSelect;document.body.style.cursor=`ns-resize`,document.body.style.userSelect=`none`;let o=e=>{let n=b(r+t-e.clientY);h(n),E(n)},s=()=>{document.body.style.cursor=i,document.body.style.userSelect=a,window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,s),window.removeEventListener(`pointercancel`,s),n.current===s&&(n.current=null)};n.current=s,window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s,{once:!0}),window.addEventListener(`pointercancel`,s,{once:!0})};(0,v.useEffect)(()=>()=>n.current?.(),[]);let P=()=>{_(e=>{if(e.length>=C)return e;u.current+=1;let t=O(u.current);return S(t.id),[...e,t]})};(0,v.useEffect)(()=>{w!==k.current&&(k.current=w,P())},[w]);let F=e=>{_(n=>{let r=n.findIndex(t=>t.id===e);if(r===-1)return n;let i=n.filter(t=>t.id!==e);return i.length===0?(queueMicrotask(t),i):(y===e&&S(i[Math.max(0,r-1)]?.id??i[0]?.id??``),i)})},I=e=>{let t=D();_(n=>{let r=!1,i=n.map(n=>n.id===e?(r=!0,{...n,id:t,status:`starting`,exitCode:void 0}):n);return r&&S(t),i})},L=()=>{_([]),S(``),queueMicrotask(t)},R=(e,t)=>{_(n=>n.map(n=>n.id===e?{...n,...t}:n))},z=g.find(e=>e.id===y)??g[0]??null;return(0,x.jsxs)(`div`,{"data-terminal-dock":!0,style:{height:f},"data-shell":e?`desktop`:`browser`,className:p(`z-30 flex min-h-0 shrink-0 flex-col border-t border-border/70 bg-card shadow-2xl`,e&&`ws-terminal-desktop`),children:[(0,x.jsx)(`hr`,{"aria-orientation":`horizontal`,tabIndex:0,title:s(`activity:terminal.resize`),onPointerDown:N,className:`h-1.5 cursor-ns-resize bg-muted/70 transition-colors hover:bg-primary/35 border-0`}),(0,x.jsxs)(`div`,{className:p(`flex min-w-0 items-center justify-between gap-3 border-b border-border/70 bg-card/85`,e?`px-2 py-1`:`px-3 py-1.5`),children:[(0,x.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 text-xs text-foreground`,children:[(0,x.jsx)(r,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),(0,x.jsx)(`span`,{className:`font-medium`,children:s(e?`activity:terminal.labelSingular`:`activity:terminal.labelPlural`)}),(0,x.jsx)(`span`,{className:`min-w-0 truncate text-muted-foreground`,children:j||M||s(`activity:terminal.projectShell`)})]}),(0,x.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,x.jsx)(`button`,{type:`button`,onClick:P,disabled:g.length>=C,title:g.length>=C?s(`activity:terminal.maxTerminals`,{count:C}):s(`activity:terminal.newTerminal`),className:`inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:(0,x.jsx)(i,{className:`h-4 w-4`})}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>z&&I(z.id),disabled:!z,title:s(`activity:terminal.restart`),className:`inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:(0,x.jsx)(a,{className:`h-3.5 w-3.5`})}),(0,x.jsx)(`button`,{type:`button`,onClick:L,disabled:g.length===0,title:s(`activity:terminal.closeAll`),className:`inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:(0,x.jsx)(c,{className:`h-3.5 w-3.5`})}),(0,x.jsx)(`button`,{type:`button`,onClick:t,title:s(`activity:terminal.closeDock`),className:`inline-flex h-6 w-6 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-foreground`,children:(0,x.jsx)(o,{className:`h-4 w-4`})})]})]}),(0,x.jsx)(`div`,{className:p(`flex min-w-0 items-center gap-1 overflow-x-auto border-b border-border/70 bg-[hsl(var(--surface-2)/0.45)]`,e?`px-1.5 py-0.5`:`px-2 py-1`),children:g.map(t=>(0,x.jsxs)(`div`,{className:p(`group inline-flex items-center rounded border text-xs transition-colors`,e?`h-6 min-w-[92px] max-w-[148px]`:`h-7 min-w-[112px] max-w-[180px]`,y===t.id?`border-primary/35 bg-primary/10 text-primary`:`border-transparent bg-transparent text-muted-foreground hover:bg-accent hover:text-foreground`),children:[(0,x.jsxs)(`button`,{type:`button`,onClick:()=>S(t.id),title:t.status===`exited`?`${t.name} exited`:t.name,className:`inline-flex min-w-0 flex-1 items-center gap-2 px-2 text-left`,children:[(0,x.jsx)(`span`,{className:p(`h-1.5 w-1.5 shrink-0 rounded-full`,t.status===`running`&&`bg-success`,t.status===`starting`&&`bg-primary`,t.status===`exited`&&`bg-destructive`)}),(0,x.jsxs)(`span`,{className:`min-w-0 flex-1 truncate`,children:[t.name,t.status===`exited`&&typeof t.exitCode==`number`?` (${t.exitCode})`:``]})]}),(0,x.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),F(t.id)},className:`mr-1 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded text-muted-foreground opacity-70 hover:bg-accent hover:text-foreground hover:opacity-100`,title:s(`activity:terminal.closeTab`,{name:t.name}),children:(0,x.jsx)(o,{className:`h-3 w-3`})})]},t.id))}),M&&!e&&(0,x.jsx)(`div`,{className:`min-w-0 truncate border-b border-border/60 bg-muted/30 px-3 py-1 text-[11px] font-mono text-muted-foreground`,children:M}),(0,x.jsx)(`div`,{className:`relative min-h-0 min-w-0 flex-1 overflow-hidden`,children:g.map(e=>(0,x.jsx)(A,{id:e.id,active:e.id===y,onRunning:()=>R(e.id,{status:`running`}),onExit:t=>R(e.id,{status:`exited`,exitCode:t})},e.id))})]})}function A({id:e,active:t,onRunning:n,onExit:r}){let i=(0,v.useRef)(null),a=(0,v.useRef)(null),o=(0,v.useRef)(null),c=(0,v.useRef)(n),l=(0,v.useRef)(r),d=h(e=>e.wsConnected);return(0,v.useEffect)(()=>{c.current=n,l.current=r},[r,n]),(0,v.useEffect)(()=>{let t=i.current;if(!t)return;let n=new _({fontFamily:`"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace`,fontSize:13,cursorBlink:!0,theme:S,scrollback:5e3}),r=new g;a.current=n,o.current=r,n.loadAddon(r),n.open(t);try{r.fit()}catch{}let d=u(h.getState().wsUrl);d.send({type:`terminal.create`,payload:{id:e,cols:n.cols,rows:n.rows}});let f=!1,p=d.on(`terminal.output`,t=>{t.type===`terminal.output`&&t.payload.id===e&&(f||(f=!0,c.current()),n.write(t.payload.data))}),m=d.on(`terminal.exit`,t=>{t.type===`terminal.exit`&&t.payload.id===e&&(n.write(`\r\n\x1b[2m${s.t(`activity:terminal.processExited`,{code:t.payload.exitCode})}\x1b[0m\r\n`),l.current(t.payload.exitCode))}),v=n.onData(t=>{d.send({type:`terminal.input`,payload:{id:e,data:t}})}),y=new ResizeObserver(()=>{if(t.offsetParent)try{r.fit(),d.send({type:`terminal.resize`,payload:{id:e,cols:n.cols,rows:n.rows}})}catch{}});return y.observe(t),()=>{p(),m(),v.dispose(),y.disconnect(),d.send({type:`terminal.close`,payload:{id:e}}),n.dispose(),a.current=null,o.current=null}},[e,d]),(0,v.useEffect)(()=>{t&&window.requestAnimationFrame(()=>{try{o.current?.fit();let t=a.current;t&&(u(h.getState().wsUrl).send({type:`terminal.resize`,payload:{id:e,cols:t.cols,rows:t.rows}}),t.focus())}catch{}})},[t,e]),(0,x.jsx)(`div`,{ref:i,className:p(`absolute inset-0 min-h-0 min-w-0 overflow-hidden px-2 py-1`,t?`block`:`hidden`)})}export{k as TerminalPanel};
@@ -1,5 +0,0 @@
1
- import{n as ee}from"./rolldown-runtime-QTnfLwEv.js";var te=ee({agents:()=>o,agentsMonitor:()=>S,analytics:()=>ve,autoPhase:()=>A,autonomy:()=>J,board:()=>v,brand:()=>t,changes:()=>s,checkpoint:()=>X,codeEditor:()=>_e,collab:()=>j,connection:()=>M,context:()=>m,cost:()=>P,ctxMode:()=>K,debug:()=>y,default:()=>De,design:()=>k,designStudio:()=>we,diff:()=>re,dock:()=>x,errorBody:()=>se,fallback:()=>ie,fileExplorer:()=>ge,filePicker:()=>ne,fileRef:()=>V,fleet:()=>p,goal:()=>Z,history:()=>a,inspector:()=>c,liveSessions:()=>ae,mailbox:()=>u,menu:()=>r,message:()=>ue,mode:()=>N,model:()=>F,modelSwitcher:()=>I,monacoDiff:()=>oe,monitor:()=>E,nav:()=>e,nextSteps:()=>l,office:()=>xe,officeMap:()=>ce,officeSettings:()=>Ee,phase:()=>G,plan:()=>H,process:()=>$,promptLib:()=>ye,providerModels:()=>b,queue:()=>Y,refine:()=>h,refresh:()=>_,sdd:()=>D,sddBoard:()=>pe,sddTask:()=>me,sddWizard:()=>he,search:()=>W,sessionPanel:()=>f,sessionWatch:()=>w,sessions:()=>d,shortcuts:()=>fe,sideEffects:()=>T,sidePanel:()=>i,skillDetail:()=>be,skillsList:()=>Se,specs:()=>g,status:()=>n,task:()=>z,terminal:()=>C,timeline:()=>Ce,toast:()=>U,todos:()=>R,toolGroup:()=>B,toolInput:()=>le,toolResult:()=>O,transcript:()=>q,watch:()=>de,work:()=>L,worktree:()=>Q,worktrees:()=>Te}),e={chat:`Session`,agents:`Agents`,history:`History`,files:`Files`,changes:`Changes`,mailbox:`Mailbox`,skills:`Skills`,worktrees:`Worktrees`,design:`Design Studio`,officemap:`Office Map`,settings:`Settings`,sddwizard:`New SDD Project`,specs:`Specs`,sddboard:`Live Board`,autophase:`Phases`,fleet:`Fleet`,inspector:`Inspector`,prompts:`Prompts`},t={returnToChat:`{{name}} — return to chat`,returnToChatDefault:`WrongStack — return to chat`},n={connected:`Connected`,disconnected:`Disconnected`,idle:`Idle`,thinking:`Thinking`,running:`Running`,waiting:`Waiting`,done:`Done`,stopped:`Stopped`},r={moreWithHidden:`More, {{count}} hidden items`,moreOptions:`More options`,moreCompactHidden:`More — {{count}} hidden panels/views, palette, theme, monitors`,moreCompact:`More — palette, theme, monitors`,moreFull:`More — palette, theme, shortcuts, monitors`,commandPalette:`Command Palette`,keyboardShortcuts:`Keyboard Shortcuts`,panels:`Panels`,views:`Views`,theme:`Theme`,monitors:`Monitors`,fleetMonitor:`Fleet Monitor`,agentsMonitor:`Agents Monitor`},i={dragHint:`Drag to resize · double-click to reset`,collapse:`Collapse panel (Ctrl+\\)`},a={openDashboard:`Open sessions dashboard`},o={pending:`pending…`,empty:`No agents yet`,emptyHint:`Subagents appear here when the fleet is active.`,runningCount:`{{count}} running`,totalCount:`{{count}} total`,openFull:`Open full agents view`,agentsLive:`AGENTS · LIVE`,doneCount:`{{count}} done`,failedCount:`{{count}} failed`,modelsLabel:`models`,shownLabel:`shown`,totalLabel:`total`,leaderFleetTotals:`(leader {{leader}} · fleet {{fleet}})`,navHintJk:`j/k or ↑↓ to navigate`,escCloseDetail:`· Esc to close detail`,noAgentsRunning:`No agents running.`,contextUsage:`Context Usage`,lastToolLabel:`last:`,unknownSession:`Unknown session`,sessionCopyTitle:`Session: {{sid}} — click to copy ID`,sessionWord:`session`,agentsCountSuffix_one:`{{count}} agent`,agentsCountSuffix_other:`{{count}} agents`,sessionTitle:`Session: {{sid}}`,projectSuffix:` · Project: {{name}}`,statusIdle:`idle`},s={fileCount_one:`{{count}} file`,fileCount_other:`{{count}} files`,refreshTitle:`Refresh changes`,loading:`Loading changes…`,clean:`No changes — working tree is clean.`,selectPrompt:`Select a changed file to view its diff.`,unified:`Unified`,unifiedTitle:`Unified diff`,edit:`Edit`,editTitle:`Side-by-side editable diff`,loadingDiff:`Loading diff…`,diffTimeout:`The diff didn't arrive. The file may have changed or the connection dropped.`,binary:`Binary file — diff not shown.`,tooLarge:`File too large to diff.`},c={showPanel:`Show inspector panel (Fleet / Agents / Audit)`,hidePanel:`Hide inspector panel`,label:`Inspector`,openAudit:`Open Audit tab`,tabFleet:`Fleet`,tabAgents:`Agents`,tabAudit:`Audit`,collapseAria:`Collapse inspector panel`,collapseTitle:`Collapse (Esc)`,noAgentsActive:`No agents active`,agentsAppearHint:`Agents appear here when the fleet is active.`,selected:`{{name}} (selected)`},l={header:`Next steps`,autoSubmitting:`auto-submitting in`,clickToFill:`click to fill input`,clickToFillTitle:`Click to fill: {{text}}`,auto:`auto`,willAutoSubmit:`Will auto-submit after countdown`},u={onlineCount:`{{count}} online`,messages:`Messages`,deleteAllTitle:`Delete all messages`,deleteAll:`Delete all`,deleting:`Deleting…`,purgeTitle:`Purge stale/orphaned messages`,purge:`Purge`,purging:`Purging…`,compact:`Compact`,compacting:`Compacting…`,compactTitle:`Auto-compact: remove expired, read-by-all, and stale messages`,compactRemoved:`Removed {{count}}`,compactExpired:`{{count}} expired`,compactReadByAll:`{{count}} read-by-all`,compactStale:`{{count}} stale`,compactRemaining:`{{count}} remaining`,newLabel:`NEW`,empty:`No messages yet.`,offlineCount:`+{{count}} offline`,timeNow:`now`,deleteAllConfirmTitle_one:`Delete {{count}} message?`,deleteAllConfirmTitle_other:`Delete all {{count}} messages?`,deleteAllConfirmBody:`The mailbox file is truncated for every agent. This cannot be undone.`,purgeConfirmTitle:`Purge stale messages?`,purgeConfirmBody:`Removes completed messages older than 1 day and incomplete messages older than 7 days. Active messages are preserved.`,type:{note:`Note`,ask:`Question`,assign:`Assignment`,steer:`Steer`,btw:`By the way`,broadcast:`Broadcast`,status:`Status`,result:`Result`},emptyDetail:`No message selected`,emptyDetailHint:`Click a message in the Mailbox panel to view it here.`,readBy:`Read by`,backToChat:`Back to chat`,completed:`Completed`,everyone:`everyone`,closeTitle:`Close (Esc)`,replyTo:`In reply to: {{id}}`,completedBy:`Completed by {{name}}`,completedByAt:`Completed by {{name}} at {{time}}`,outcome:`Outcome:`,task:`Task:`,messageNotFound:`Message not found`,messageNotFoundHint:`This message may have been deleted or purged.`},d={recentSessions:`Recent sessions`,deleteEmptyTitle_one:`Delete {{count}} empty session?`,deleteEmptyTitle_other:`Delete {{count}} empty sessions?`,deleteEmptyConfirmBody:`Sessions without any token usage are removed from disk.`,filterPlaceholder:`Filter title, model, provider…`,clearFilter:`Clear filter`,noHistory:`No history yet`,noHistoryHint:`Your conversations will appear here`,noMatches:`No matches`,noMatchesHint:`Try a different filter`,group:{favorites:`Favorites`,today:`Today`,yesterday:`Yesterday`,thisWeek:`This week`,earlier:`Earlier`},nicknamePlaceholder:`Nickname`,empty:`(empty)`,resuming:`resuming…`,active:`active`,renameTitleNickname:`{{nickname}} — original: {{title}}`,renameTitle:`{{title}}
2
-
3
- Double-click to rename`,unfavorite:`Unfavorite`,markFavorite:`Mark as favorite`,deleteSessionConfirmTitle:`Delete session?`,deleteSessionConfirmBody:`"{{name}}" will be removed from disk. This cannot be undone.`,deleteSessionTitle:`Delete session`},f={actions:{abort:`Abort`,newSession:`New session`,export:`Export`,compact:`Compact`,newSessionTitle:`Start a new session (Ctrl+N)`,exportTitle:`Export chat as markdown (Ctrl+E)`,compactTitle:`Compact the context window`,clearTitle:`Clear context (Ctrl+L)`},model:`Model`,modelTitle:`Change model (Ctrl+M)`,context:`Context`,contextTitle:`Click for a context breakdown`,sessionLabel:`Session`,stats:{messages:`Messages`,elapsed:`Elapsed`,tokens:`Tokens`,cost:`Cost`,iteration:`Iteration`,agents:`Agents`,tokensSub:`{{in}} in / {{out}} out`,iterationOf:`of {{max}}`,agentsRunning:`{{count}} running`},plan:`Plan`,planComplete:`{{pct}}% complete`,pinned:`Pinned`,quickSettings:`Quick settings`,autonomy:`Autonomy`,autonomyOptions:{off:`Off`,suggest:`Suggest`,auto:`Auto`,eternal:`Eternal`,"eternal-parallel":`Eternal Parallel`},yolo:`YOLO mode`,yoloTitle:`Bypass tool confirmation prompts`,refine:`Refine prompts`,refineTitle:`Rewrite prompts before sending`,sound:`Sound on completion`,soundTitle:`Play a soft chime when a run finishes`,sessionId:`session {{id}}`},p={status:{running:`running`,done:`done`,failed:`failed`,timeout:`timeout`,stopped:`stopped`},leader:`leader`,providerModel:`Provider / Model`,elapsed:`Elapsed`,running:`running…`,iterations:`Iterations`,toolCalls:`Tool Calls`,cost:`Cost`,budgetExtensions:`Budget Extensions`,activity:`Activity`,budgetWarning:`budget warning`,contextWindow:`Context window`,tokensUsed:`{{used}} / {{max}} tokens`,toolRunning:`running…`,lastTool:`last tool`,error:`Error`,finalOutput:`Final Output`,copyOutput:`Copy output`,liveOutput:`Live Output`,waitingOutput:`Waiting for output…`,outputHint:`Output appears here as the agent streams text.`,toolLog:`Tool Log ({{count}} calls)`,fail:`fail`,moreTools:`+{{count}} more tools`,cardRunning:`running {{tool}}`,cardLastTool:`last: {{tool}}`,contextPercent:`Context {{pct}}%`,doneCount:`{{count}} done`,errCount:`{{count}} err`,statusRunning:`running`,statusDone:`done`,statusFailed:`failed`,statusTimeout:`timeout`,statusStopped:`stopped`,sessionPrefix:`session:`,currentTask:`Current Task`,performance:`Performance`,uniqueTools:`Unique Tools`,avgPerTool:`avg {{ms}}ms per tool`,context:`Context`,tokens:`Tokens`,ctxUsed:`{{pct}}% used`,completed:`completed`,budgetWarningTitle:`⚡ Budget Warning`,hittingLimit:`Hitting {{kind}} limit ({{used}}/{{limit}})`,hittingLimitTitle:`⚡ hitting {{kind}} limit ({{used}}/{{limit}})`,budgetExt_one:`{{count}} Budget Extension`,budgetExt_other:`{{count}} Budget Extensions`,extendedTimes_one:`Agent extended its budget {{count}} time due to long-running tasks`,extendedTimes_other:`Agent extended its budget {{count}} times due to long-running tasks`,errorLabel:`Error`,failureReason:`Failure Reason`,failed:`Failed`,fleetMonitor:`FLEET MONITOR`,runningCount:`{{count}} running`,totalAgents_one:`{{count}} total agent`,totalAgents_other:`{{count}} total agents`,noLeader:`no leader`,closeFleet:`Close fleet monitor`,colName:`Name`,colStatus:`Status`,colActivity:`Activity`,colIters:`Iters`,colTools:`Tools`,colCost:`Cost`,colCtx:`CTX`,colExt:`Ext`,colReason:`Reason`,noAgentsActive:`No agents active`,agentsAppear:`Agents appear here when the fleet is active.`,agentTimeline:`Agent Timeline`,noAgentEvents:`No agent conversation events yet.`,navHint:`↑↓ navigate`,selectDetailHint:`↵ select detail`,escHint:`Esc deselect / close`,detailedView:`detailed view`,closeBtn:`✕ close`,selectAgentDetail:`Select an agent to view detailed information`,selectAgentBody:`Click on any agent in the list to see detailed metrics, tool logs, streaming output, and more — similar to the chat history detailed view.`,navigateWord:`navigate`,selectWord:`select`,deselectWord:`deselect`},m={wsNotConnected:`WebSocket not connected`,noData:`No debug data received. The server may not support context debugging.`,title:`Context Breakdown`,windowUsage:`Window Usage`,contextMode:`Context Mode`,fetching:`Fetching context breakdown…`,systemPrompt:`System Prompt`,tools:`Tools`,messages:`Messages`,tokenAllocation:`Token Allocation`,systemTitle:`System: {{tokens}}`,toolsTitle:`Tools: {{tokens}}`,messagesTitle:`Messages: {{tokens}}`,system:`System`,toolBreakdown:`Tool Breakdown`,messagesSummary:`Messages ({{count}}) — {{total}} tok`,barWithTokens:`Context window: {{tokens}} / {{max}} tokens ({{pct}})`,barPct:`Context window: {{pct}}`,barClick:` — click for breakdown`},h={header:`✨ Refine Prompt`,autoSend:`auto-send in {{count}}s`,cancelTitle:`Cancel (Esc)`,editLabel:`Edit refined prompt:`,editPlaceholder:`Edit the refined prompt...`,useEdit:`Use Edit`,original:`Original`,refined:`Refined`,yourLanguage:`(your language)`,refinedTitle:`Click or press Enter to use this version`,english:`English`,englishTitle:`Press e to use English version`,hintRefined:`refined`,hintEnglish:`English`,hintOriginal:`original`,hintEdit:`edit`,edit:`Edit`,useRefined:`Use Refined`},g={heading:`Specifications`,subtitle:`View and manage specification-driven development`,empty:`No specs found. Use {{command}} to create one.`,tasks:`Tasks ({{count}})`,doneCount:`{{count}} done`,runningCount:`{{count}} running`,pendingCount:`{{count}} pending`,runTitle:`Run this spec as a live AutoPhase board`,run:`Run`,list:`List`,graph:`Graph`,loadingTasks:`Loading tasks…`},_={heading:`F5 Resilience Verifier`,subtitle:`Confirms the latest active session, transcript, and UI state survive a page refresh. Open this view, then press F5 — every green row should remain green.`,recordProbe:`Record probe`,latestSession:`Latest active session`,restoredLocal:`Restored from localStorage`,sessionIdExtra:`session id: {{id}}`,noSessionYet:`no session has been started yet`,activePointer:`Active session pointer`,lastVisited:`lastVisitedAt timestamp`,never:`never`,persistedEnv:`Persisted environment`,transcriptRehydrate:`Chat transcript rehydration`,localTranscript:`Local transcript recovered`,messagesExtra:`{{count}} messages, {{queued}} queued`,noMessages:`0 messages`,noBleed:`No cross-session bleed`,bleedExtra:`bound={{bound}} vs active={{active}}`,transcriptBinds:`transcript binds to the active session`,uiWorkspace:`UI workspace`,noneValue:`(none)`,payloadSize:`localStorage payload (4 keys): {{count}} chars`,probeLog:`Probe log`,noProbes:`No probes yet — press the "Record probe" button at the top, or press F5 in this view, to record a rehydration check.`,simulatedF5:`simulated F5: re-running persist rehydrate`},v={status:{pending:`Pending`,in_progress:`In Progress`,review:`Review`,failed:`Failed`,completed:`Done`,queued:`Queued`,blocked:`Blocked`,cancelled:`Cancelled`},newTaskTitle:`New task`,newTaskPlaceholder:`Task title…`,addTask:`Add task`,empty:`No phases yet — start an AutoPhase run to populate the board.`,summary:`{{phases}} phases · {{tasks}} tasks`,phases:`Phases`,statusTab:`Status`,dropHere:`Drop tasks here`,emptySpec:`No tasks in this spec yet.`,depGraphHeading:`Dependency Graph`,worktreePrefix:`worktree: {{branch}}`},y={trendUp:`Increasing`,trendDown:`Decreasing`,trendStable:`Stable`,heading:`Debug Dashboard`,subtitle:`Real-time monitoring for WrongStack WebUI`,refreshLabel:`Refresh:`,lastUpdated:`Last updated: {{time}}`,fetchFailed:`Failed to fetch metrics`,fileWatcher:`File Watcher`,watcherStatus:`Watcher Status`,running:`Running`,stopped:`Stopped`,activeProjects:`Active Projects`,projectsWatched:`Projects being watched`,fileChanges:`File Changes`,totalDetected:`Total detected`,filesProcessed:`Files Processed`,afterHash:`After hash filter`,broadcastsSent:`Broadcasts Sent`,toClients:`To WebUI clients`,debounceResets:`Debounce Resets`,rapidWrites:`Rapid successive writes`,avgDebounce:`Avg Debounce Delay`,actualDelay:`Actual delay applied`,totalDelay:`Total Delay`,sumDelays:`Sum of all delays`,browserPerf:`Browser Performance`,heapUsed:`Heap Used`,jsHeap:`JavaScript heap`,heapTotal:`Heap Total`,totalHeap:`Total heap size`,pageUptime:`Page Uptime`,sinceLoad:`Since page load`,rawData:`Raw Data`},b={allowlistTitle:`Model allowlist`,modelCount_one:`{{count}} model`,modelCount_other:`{{count}} models`,using:`Using`,noModelPicked:`(no model picked)`,clearAllowlist:`Clear allowlist`,clearAllowlistAria:`Clear saved allowlist for {{provider}}`,refresh:`Refresh from server`,refreshAria:`Refresh model list for {{provider}}`,probing:`Probing…`,use:`Use`,useModelAria:`Use model {{model}} for {{provider}}`,differsHint:`Probed list differs from the saved allowlist — re-run {{command}} to persist.`},x={expandChip:`Expand {{label}}`,collapseChip:`Collapse {{label}}`,ahead:`{{count}} ahead`,behind:`{{count}} behind`,linesAdded:`{{count}} lines added`,linesDeleted:`{{count}} lines deleted`,untrackedFiles:`{{count}} untracked files`,customizeTitle:`Customize dock chips`,dockChips:`Dock chips`,noActiveGoal:`No active goal`,noActiveGoalDetail:`Start a goal from chat or the goal command.`},S={leaderBadge:`LEADER`,iters:`Iters`,tools:`Tools`,activityBins:`Activity (12 bins)`,streamingOutput:`Streaming output`,recentTools:`Recent tools`,finalOutput:`Final output`,heading:`Agents Monitor`,prevAgent:`Previous agent`,nextAgent:`Next agent`,closeAria:`Close agents monitor`,hintPage:`←→ page`,hintNavigate:`↑↓ navigate list`,hintEsc:`Esc close`},C={resize:`Resize terminals`,labelSingular:`Terminal`,labelPlural:`Terminals`,projectShell:`Project shell`,maxTerminals:`Maximum {{count}} terminals`,newTerminal:`New terminal`,restart:`Restart active terminal`,closeAll:`Close all terminals`,closeDock:"Close terminal dock (Ctrl+`)",closeTab:`Close {{name}}`,processExited:`[process exited with code {{code}}]`},w={liveStream:`Live stream`,events_one:`{{count}} event`,events_other:`{{count}} events`,interruptTitle:`Cooperatively stop this agent at its next step (not a process kill)`,interrupt:`⏸ Interrupt`,interrupting:`…`,loading:`Loading session…`,done:`✓✓ done`,read:`✓ read`,delivered:`⏳ delivered`,agent:`Agent`,you:`You`,working:`{{name}} · working`,claude:`Claude`,priority:`Priority`,placeholder:`{{label}} → this session…`,send:`Send`,sendHint:`⌘/Ctrl+Enter to send · seen on the agent's next iteration`,msgType:{steerLabel:`🔄 Steer`,steerHint:`Adjust behavior mid-task`,askLabel:`❓ Ask`,askHint:`Question — expects a reply`,assignLabel:`📋 Assign`,assignHint:`A task to act on`,noteLabel:`💬 Note`,noteHint:`FYI, non-urgent`},sentRunning:`Delivered — the running agent sees it on its next step`,sentIdle:`Delivered — target is idle; appears in its mailbox, read when it next runs`,sentFailed:`Failed: {{error}}`,interruptReason:`Operator requested stop from Fleet HQ`,interruptSent:`Interrupt sent — agent stops at its next step (not a kill)`,interruptFailed:`Interrupt failed: {{error}}`},T={empty:`No side effects recorded yet.`,emptyHint:`Bash commands, package installs, and network requests will appear here.`,heading:`Side Effects`,exportTitle:`Export filtered side effects as CSV`,all:`All`,colTime:`Time`,colTool:`Tool`,colRisk:`Risk`,colDetail:`Detail`,colOutcome:`Outcome`},E={elapsedHm:`{{h}}h {{m}}m ago`,elapsedMs:`{{m}}m {{s}}s ago`,elapsedS:`{{s}}s ago`,heading:`Fleet Monitor`,clientsHeading:`Connected Clients`,terminal:`Terminal`,webui:`Web UI`,repl:`REPL`,totalConnected:`total connected`,mailQueue:`Mail Queue`,total:`Total`,open:`Open`,unread:`Unread`,agents:`Agents`,messagesSub:`messages`,uncompletedSub:`uncompleted`,waitingSub:`waiting`,ofTotal:`of {{count}} total`,agentRoster:`Agent Roster`,liveMailActivity:`Live Mail Activity`,noActivity:`No recent activity`,mailboxAgents:`Mailbox Agents`,noMailboxAgents:`No agents registered`,moreCount:`+{{count}} more`,agentFallback:`agent`,fleetAgents:`Fleet Agents`,noFleetAgents:`No fleet agents running`,iter:`iter`,mailType:{sent:`Sent`,delivered:`Delivered`,read:`Read`,completed:`Completed`}},D={status:{pending:`pending`,queued:`queued`,in_progress:`running`,blocked:`blocked`,review:`review`,failed:`failed`,completed:`done`,cancelled:`cancelled`},activityHeading:`Activity`,feedEmpty:`Nothing yet — events appear here as agents pick up and finish tasks.`,destroyTitle:`Destroy SDD project?`,destroyDesc:`This wipes the run and its work. It cannot be undone (the optional commit revert is history-preserving).`,stopRun:`Stop the run`,stopRunAgents_one:`Stop the run ({{count}} agent working)`,stopRunAgents_other:`Stop the run ({{count}} agents working)`,removeWorktreesAll:`Remove all git worktrees + wstack/ap/* branches — including un-merged work`,removeWorktreesCount_one:`Remove {{count}} git worktree + wstack/ap/* branches — including un-merged work`,removeWorktreesCount_other:`Remove {{count}} git worktrees + wstack/ap/* branches — including un-merged work`,deleteArtifacts:`Delete all SDD artifacts (specs, task graph, board, session)`,revertMerged_one:`Also revert {{count}} merged commit`,revertMerged_other:`Also revert {{count}} merged commits`,revertHint:`Adds revert commits (history preserved). Refused if the working tree is dirty.`,baseBranchFallback:`the base branch`,noteLeaveMerged:`Merged commits will be left on the base branch. Tick the box above to undo them too.`,noteAbandon:`Make sure you really want to abandon this run.`,destroying:`Destroying…`,destroyAll:`Destroy everything`,kanbanBacklog:`Backlog`,kanbanReady:`Ready`,kanbanRunning:`Running`,kanbanReview:`Review`,kanbanFailed:`Failed`,kanbanDone:`Done`,kanbanEmpty:`empty`},O={collapseToLines:`Collapse to first {{count}} lines`,showAllLines:`Show all {{total}} lines ({{more}} more)`,exitCode:`exit code:`,jsonLines:`JSON · {{count}} lines`,collapse:`collapse`,expand:`expand`},k={heading:`Design Studio — Gallery`,kitsCount:`{{count}} kits`,searchPlaceholder:`Search kits…`,stackTitle:`Stack for Use + Materialize`,wrote:`Wrote {{path}}`,materializeFailed:`Materialize failed: {{error}}`,verifyError:`Verify: {{error}}`,verifyOffPalette:`Verify: {{pct}}% on-palette — {{count}} off-palette in {{files}} file(s)`,verifyClean:`Verify: clean ✓ ({{files}} file(s) on-palette)`,writing:`Writing theme file…`,scanning:`Scanning UI files…`,active:`Active`,reapply:`Reapply`,use:`Use`,materializeTitle:`Write tokens to a {{stack}} theme file`,materialize:`Materialize`,verifyTitle:`Scan UI files for off-palette colors`,verify:`Verify`,colors:`Colors`},A={summary_one:`{{count}} phase · {{pct}}% complete`,summary_other:`{{count}} phases · {{pct}}% complete`,switchBoard:`Switch board`,boardsCount_one:`{{count}} board…`,boardsCount_other:`{{count}} boards…`,toggleAutonomousTitle:`Toggle autonomous mode`,autonomous:`Autonomous`,manual:`Manual`,resumeTitle:`Resume the run`,pauseTitle:`Pause the run`,resume:`Resume`,pause:`Pause`,stopTitle:`Stop the run — aborts in-flight agents immediately`,stop:`Stop`,newTitle:`Clear this board and start a new AutoPhase run`,newLabel:`New`,revertConfirm:`Revert run's commits?`,revertTitle:`Undo this run — git-revert the commits it landed and remove its worktrees`,revert:`Revert`,goal:`Goal`,planning:`Planning phases…`,planningBody:`Your goal was received. WrongStack is breaking it into phases and tasks — the board appears here the moment the plan is ready.`,startHeading:`Start a Phase Plan`,startBody:`Describe what you want to build. WrongStack will plan phases and tasks, then execute them — watch and steer the run on the board.`,startPlaceholder:`e.g. Build a REST API for user management with Express and SQLite...`,isolateLabel:`Isolate each phase in its own git worktree`,startButton:`Start AutoPhase`,ctrlHint:`Ctrl+Enter to start`,isolateOn:`phases run in isolated worktrees, squash-merged back`,isolateOff:`phases run directly on the current branch`,lanes:`Lanes`,graph:`Graph`,planningAck:`🚀 **AutoPhase** — got it. Planning phases for your goal now…`},j={noObservers:`No live observers`,observerTitle:`Join as a read-only observer (Phase 1)`,observerRole:`observer`,annotatorTitle:`Join as an annotator — leave inline notes on tool calls (Phase 2)`,annotatorRole:`annotator`,controllerTitle:`Join as a controller — can pause the agent loop (Phase 3)`,controllerRole:`controller`,errorPrefix:`Collab: {{error}}`,dismiss:`dismiss`,observers_one:`{{count}} observer`,observers_other:`{{count}} observers`,annotationsTitle:`{{count}} open annotation(s) — annotators reviewing this session`,notes_one:`{{count}} note`,notes_other:`{{count}} notes`,pausedTitle:`Agent loop is paused — a controller is reviewing`,paused:`paused`,joinedTitle:`Joined {{time}}`,grantTitle:`Grant control — promote this participant to controller`,injectTitle:`Inject a synthetic result for an in-flight tool call`,inject:`Inject`,resumeTitle:`Resume the agent loop`,resume:`Resume`,pauseTitle:`Pause the agent before the next tool call`,pauseAgent:`Pause agent`,leaveTitle:`Leave the observer session`,leave:`Leave`,injectToolResult:`Inject tool result`,close:`close`,targetTool:`Target tool_use id`,targetPlaceholder:`pick an in-flight call or type a tool_use id`,toolFallback:`tool`,noPendingTools:`No in-flight tool calls — type a tool_use id to pre-queue, or pause the agent first.`,resultContent:`Result content`,resultPlaceholder:`Synthetic tool result fed to the agent in place of running the tool`,markError:`mark as error`,reasonPlaceholder:`reason (audit log)`,queueInjection:`Queue injection`,controllerInjection:`controller injection`},M={reconnecting:`Reconnecting to backend (attempt {{attempt}}) — retrying in {{remaining}}s`,disconnected:`Disconnected from backend`,retry:`Retry now`,retryTitle:`Retry connection now`,dismissTitle:`Dismiss (chip in topbar still shows status)`},N={modePrefix:`mode:`,activeTitle:`Active mode`,heading:`Mode`,defaultName:`Default`,defaultDesc:`Standard agent behaviour`},P={clickTitle:`Click for per-turn cost breakdown`,heading:`Cost breakdown`,noPricing:`No pricing for the current model — cost figures are zero.`,noTurns:`No completed turns yet. Run a prompt to see per-turn cost here.`,topExpensive_one:`Top {{count}} expensive turn`,topExpensive_other:`Top {{count}} expensive turns`},F={runDefault:`Run default`,useRunDefault:`Use run default`,filterPlaceholder:`Filter models…`,loading:`Loading models…`,noMatch:`No match`},I={heading:`Switch model`,filterPlaceholder:`Filter providers and models…`,noSavedProviders:`No saved providers — register a key in Settings first.`,active:`active`},L={todos:`Todos`,tasks:`Tasks`,plan:`Plan`},R={toggleAria:`Toggle: {{content}}`,removeTitle:`Remove todo`,removeAria:`Remove "{{content}}"`,completedCount_one:`{{count}} completed`,completedCount_other:`{{count}} completed`},z={start:`Start`,complete:`Complete`,retry:`Retry`,assign:`Assign`,assignTitle:`Assign agent`,unassigned:`Unassigned`,statusPending:`Pending`,statusInProgress:`In Progress`,statusBlocked:`Blocked`,statusFailed:`Failed`,statusReview:`Review`,statusDone:`Done`,startTitle:`Start`,completeTitle:`Complete`,fail:`Fail`,failTitle:`Mark failed`,boardCount:`{{total}} tasks · {{done}} completed`},B={toolCalls_one:`{{count}} tool call`,toolCalls_other:`{{count}} tool calls`},V={removeTitle:`Remove reference`,linesCount_one:`{{count}} line`,linesCount_other:`{{count}} lines`},H={statusOpen:`Open`,statusInProgress:`In Progress`,statusDone:`Done`,startTitle:`Start`,doneTitle:`Mark done`,reopenTitle:`Reopen`,reopen:`Reopen`},ne={heading:`@ Files`,noMatch:`No files match "{{query}}"`,searching:`Searching project…`},U={dismiss:`Dismiss`},W={placeholder:`Search in chat…`,prevHit:`Previous hit`,nextHit:`Next hit`,close:`Close (Esc)`},G={statusPending:`Pending`,statusReady:`Ready`,statusRunning:`Running`,statusPaused:`Paused`,statusCompleted:`Completed`,statusFailed:`Failed`,statusSkipped:`Skipped`,heading:`Phases`,autonomousOn:`● Autonomous`,autonomousOff:`○ Manual`,autonomousOnTitle:`Autonomous mode active — click to pause`,autonomousOffTitle:`Manual mode — click to enable autonomous`,overallProgress:`Overall Progress`,tasksSuffix:`{{done}}/{{total}} tasks`,agentsSuffix_one:`{{count}} agent`,agentsSuffix_other:`{{count}} agents`},K={triggerTitle:`Context-window mode`,ctxPrefix:`ctx:`,opsHeading:`Context Operations`,compactNow:`Compact Now`,compactNowDesc:`Elide old tool output`,compactAggressive:`Compact Aggressive`,compactAggressiveDesc:`Maximum elision now`,repairContext:`Repair Context`,repairDesc:`Fix orphan tool-use blocks`,debugContext:`Debug Context`,debugDesc:`Size breakdown per section`,windowHeading:`Context Window`,keepElide:`keep {{k}} recent · elide {{t}}+ tokens`,fallbackName:`Balanced`,fallbackDesc:`Default rolling compaction`},q={kindAssistant:`Assistant`,kindThinking:`Thinking`,kindToolCall:`Tool call`,kindToolResult:`Tool result`,kindError:`Error`,kindStatus:`Status`,kindSystem:`System`,title:`Chat history`,copyTitle:`Copy agent chat history`,empty:`No chat history for this agent yet.`},J={heading:`Autonomy Mode`,titlePrefix:`Autonomy: {{label}}`,descOff:`Full manual control — agent waits for your input.`,descSuggest:`Agent suggests next steps but waits for approval.`,descAuto:`Agent auto-proceeds after brief confirmation delay.`,descEternal:`Agent runs autonomously until goal is complete.`,descEternalParallel:`Multi-agent autonomous execution — fleet mode.`},Y={heading:`Message Queue`,subtitle:`{{count}} queued · messages sent before the agent finishes`,btwTitle:`By-the-way — sent as follow-up without interrupting the running agent`,steerTitle:`Steer — interrupts the running agent and redirects it with this message`,queueTitle:`Queued — held until the current agent run completes, then sent in order`,sortNewestTitle:`Sorted newest first — click to sort oldest first`,sortOldestTitle:`Sorted oldest first — click to sort newest first`,newest:`Newest`,oldest:`Oldest`,clear:`Clear`,clearTitle:`Clear all queued messages`,closeTitle:`Close`,emptyTitle:`Queue is empty`,emptyBody:`Use the btw / steer / add queue buttons beside the input to add messages. Queued items are sent in order when the current agent run completes.`,removeTitle:`Remove from queue`,footer:`Messages are sent in arrival order when the current agent run completes. Use the sort toggle to view newest-first.`},X={heading:`Session Checkpoints`,countSuffix_one:`{{count}} checkpoint`,countSuffix_other:`{{count}} checkpoints`,description:`Rewind the session to any checkpoint. Messages and file changes revert to that point — the LLM continues from there as if nothing happened after.`,emptyTitle:`No checkpoints yet`,emptyBody:`Checkpoints are automatically created each time you send a message. Send a few messages and come back.`,latest:`latest`,msgSuffix_one:`{{count}} msg`,msgSuffix_other:`{{count}} msgs`,footerPre:`Click any checkpoint to rewind`,footerPost:`to close`},Z={statusActive:`Active`,statusPaused:`Paused`,statusDone:`Done`,statusFailed:`Failed`,statusAbandoned:`Abandoned`,heading:`Goal`,refined:`Refined`,progress:`Progress`,iterations:`iterations`,deliverables:`Deliverables`,recentActivity:`Recent Activity`},Q={cleanTitle_one:`Clean {{count}} orphaned worktree?`,cleanTitle_other:`Clean {{count}} orphaned worktrees?`,cleanMessage:`Force-removes every leftover git worktree + wstack/ap branch from previous runs. Un-merged work in them is discarded.`,cleanConfirm:`Clean orphans`,orphanCount_one:`{{count}} orphaned worktree from previous runs`,orphanCount_other:`{{count}} orphaned worktrees from previous runs`,andMore:`…and {{count}} more`,cleanButtonTitle:`Force-remove all orphaned worktrees + branches`,removed_one:`✓ Removed {{count}} orphaned worktree.`,removed_other:`✓ Removed {{count}} orphaned worktrees.`,cleanupFailed:`cleanup failed`,lanesHeading:`Worktrees`,base:`base`,isolatedCount_one:`{{count}} isolated`,isolatedCount_other:`{{count}} isolated`,statusAllocating:`allocating`,statusActive:`active`,statusCommitting:`committing`,statusMerging:`merging`,statusMerged:`merged`,statusConflict:`conflict`,statusFailed:`failed`,conflictBadge:`CONFLICT`,graphAria:`Worktree branch graph off {{base}}`,mergedLabel:`✓ merged → {{base}}`},$={heading:`Running Processes`,subtitle:`{{active}} active · {{total}} total`,killAll:`Kill All`,emptyTitle:`No processes tracked`,emptyBody:`Processes appear here when the agent runs bash or exec tools. Active processes show a pulsing LED.`,pidLabel:`PID {{pid}}`,protected:`protected`,protectedTitle:`Protected — survives kill/killAll`,killTitle:`Kill PID {{pid}}`},re={tooLarge:`Diff omitted (file too large to render inline).`},ie={placeholder:`Add a fallback model…`,emptyHint:`Tried in order when the primary model rate-limits or stalls.`,moveUp:`Move up`,moveDown:`Move down`,manualPlaceholder:`provider/model`,addTitle:`Add model reference`},ae={loading:`Loading sessions...`,apiUnavailable:`Session API unavailable:`,empty:`No live sessions. Open another wstack instance to see it here.`,heading:`Live Sessions ({{count}})`,autoRefresh:`auto-refresh every 5s`,pidLabel:`PID {{pid}}`,agentMeta:`{{iter}} iter · {{tools}} tools · {{ago}}`,andMore:`... and {{count}} more`,noAgents:`No agents`},oe={applyTitle:`Write the edited version back to disk`,applying:`Applying…`,applied:`Applied`,apply:`Apply`},se={showStack_one:`Show stack trace ({{count}} frame)`,showStack_other:`Show stack trace ({{count}} frames)`,hideStack_one:`Hide stack trace ({{count}} frame)`,hideStack_other:`Hide stack trace ({{count}} frames)`},ce={liveHeading:`Live`,clients:`Clients`,agents:`Agents`,model:`Model`,mode:`Mode`,toolCalls:`Tool calls`,displayHeading:`Display`,statsHud:`Stats HUD`,legends:`Legends`,minimap:`Minimap`,zoomControls:`Zoom controls`,animateWires:`Animate wires`,backgroundHeading:`Background`,bgDots:`Dots`,bgLines:`Lines`,bgCross:`Cross`,bgNone:`None`},le={noParams:`(no params)`,itemCount_one:`{{count}} item`,itemCount_other:`{{count}} items`,keyCount_one:`{{count}} key`,keyCount_other:`{{count}} keys`},ue={roleYou:`You`,roleTool:`Tool`,roleThinking:`Thinking`,roleAssistant:`Assistant`,inputLabel:`Input`,downloadTitle:`Download as file`,empty:`(empty)`,hideDetails:`Hide details`,showDetails:`Show details`,showDetailsLines_one:`Show details ({{count}} line)`,showDetailsLines_other:`Show details ({{count}} lines)`,editHint:`⌘/Ctrl+Enter to save · Esc to cancel`,saveResend:`Save & resend`,thinkingProcess:`Thinking process`,thinkingMeta:`iter {{iter}} · {{dur}} · {{lines}}`,replay:`replay`,linesSuffix_one:`{{count}} line`,linesSuffix_other:`{{count}} lines`,copyLog:`Copy log`,showFullLog:`Show full log`,typing:`Typing…`,noContent:`No content`,imageNotRetained:`Image preview not kept after refresh`,failedToSend:`⚠ Failed to send`,autoPaused:`⚠️ _Auto-proceed paused — maximum consecutive automatic turns reached. Type anything to continue (autonomy stays on)._`,rsIterations:`Iterations: {{n}}`,rsTools:`Tool calls: {{n}}`,rsElapsed:`Elapsed: {{s}}`,rsCost:`Cost: {{c}}`,useInput:`Input: {{n}}`,useOutput:`Output: {{n}}`,useCacheRead:`Cache read: {{n}}`,useCost:`Cost: {{c}}`,renderedLabel:`Rendered`,rawLabel:`Raw`,showRenderedTitle:`Show rendered markdown`,showRawTitle:`Show raw markdown source`,editTitle:`Edit & resend this prompt`,editLabel:`Edit`,unpinTitle:`Unpin`,pinTitle:`Pin this answer`,pinnedLabel:`Pinned`,pinLabel:`Pin`,regenerateTitle:`Regenerate this response`,retryLabel:`Retry`},de={toolFallback:`tool`,toolFailed:`Tool failed`},fe={heading:`Keyboard shortcuts`,footerPre:`Press`,footerPost:`any time to reopen this list.`,sectionGlobal:`Global`,sectionTuiParity:`TUI Panel Parity`,sectionFleet:`Fleet & Agents`,sectionChatInput:`Chat input`,sectionChat:`Chat`,sectionChatNav:`Chat navigation (when not typing)`,dCommandPalette:`Open command palette`,dShowOverlay:`Show this shortcuts overlay`,dToggleSidebar:`Toggle sidebar`,dOpenPanel:`Open side panel (Session, Agents, History, Files, Changes, Mailbox, Skills, Office Map)`,dDesignStudio:`Open Design Studio side panel`,dWorktrees:`Open Worktrees side panel`,dFocusInput:`Focus the message input`,dSessionPanel:`Session panel`,dFleetOverlay:`Fleet monitor overlay`,dAgentsOverlay:`Agents monitor overlay`,dWorktreeMonitor:`Worktree monitor`,dPlanPanel:`Plan panel`,dTodosPanel:`Todos panel`,dQueuePanel:`Queue panel`,dProcessMonitor:`Process monitor`,dGoalPanel:`Goal panel`,dSessionsDashboard:`Sessions dashboard`,dOfficeMap:`Coordinator office map`,dDockPicker:`Dock chip picker`,dOpenFleet:`Open Fleet Monitor overlay`,dOpenAgents:`Open Agents Monitor overlay`,dNavigateAgents:`Navigate agents in monitor`,dSelectAgent:`Select focused agent`,dCloseOverlay:`Close active overlay`,dSendMessage:`Send message`,dNewline:`Insert a newline`,dRecallPrev:`Recall previous prompt (in empty input)`,dRecallNext:`Recall next prompt`,dSlashPopup:`Open slash command popup`,dAutocomplete:`Autocomplete highlighted command`,dDismissPopup:`Dismiss popup / clear input`,dSearchChat:`Search within current chat`,dClearContext:`Clear context (same as /clear)`,dNewSession:`Start a new session (same as /new)`,dExportMarkdown:`Export chat as markdown`,dModelSwitcher:`Quick model switcher overlay`,dCompactDensity:`Toggle compact UI density`,dAbortRun:`Abort the current run (when running)`,dFocusNext:`Focus next message (alias: ↓)`,dFocusPrev:`Focus previous message (alias: ↑)`,dJumpFirst:`Jump to first message`,dJumpLast:`Jump to last message`,dCopyFocused:`Copy focused message text`,dClearFocused:`Clear focused message`},pe={titleFallback:`Live SDD Board`,defaultModelTitle:`Run-level default worker model (per-task overrides take precedence)`,graphLabel:`Graph`,kanbanLabel:`Kanban`,retryAllTitle:`Requeue every failed task to pending`,retryFailed:`Retry failed ({{count}})`,resume:`Resume`,pause:`Pause`,stop:`Stop`,cleanTitle:`Remove the run's git worktrees + wstack/ap branches`,cleanWorktrees:`Clean worktrees`,rollbackTitle:`Revert {{count}} merged commit(s) on {{base}}`,rollback:`Rollback ({{count}})`,stopping:`Stopping…`,destroying:`Destroying…`,destroyTitle:`Stop, remove all worktrees, optionally revert merged commits, and delete the SDD project`,destroy:`Destroy`,statDone:`done`,statRunning:`running`,statFailed:`failed`,statWave:`wave`,statElapsed:`elapsed`,noActiveWorkers:`no active workers`,deadlock:`Deadlock — tasks blocked by failed work:`,noRunTitle:`No active SDD run.`,noRunBody:`Start one from the New SDD Project wizard, or via /sdd execute in the CLI — agents appear here live, each working an isolated worktree.`,clickTaskHint:`click a task for details`,lcClean:`Clean`,lcRollback:`Rollback`,lcDestroy:`Destroy`,lcFailed:`{{op}} failed: {{reason}}`,lcUnknownError:`unknown error`,lcWorktrees_one:`{{count}} worktree removed`,lcWorktrees_other:`{{count}} worktrees removed`,lcCommits_one:`{{count}} commit reverted`,lcCommits_other:`{{count}} commits reverted`,lcDeleted:`deleted {{items}}`,lcNothing:`nothing to do`,lcNote:`{{op}}: {{body}} — note: {{reason}}`,lcOk:`{{op}}: {{body}}`},me={backTitle:`Back to activity`,workingOn:`working on this task`,assigned:`assigned`,metaPriority:`Priority`,metaType:`Type`,metaDuration:`Duration`,metaElapsed:`Elapsed`,metaRetries:`Retries`,metaWorktree:`Worktree`,workerModel:`Worker model`,runDefault:`run default: {{model}}`,runDefaultPlaceholder:`Run default`,runDefaultPlaceholderModel:`Run default ({{model}})`,verificationCmd:`Verification command`,gatesCompletion:`gates completion (exit 0)`,verifyPlaceholder:`e.g. pnpm vitest run path/to/file`,addVerify:`+ Add verification command`,description:`Description`,timeline:`Timeline`,dependsOn:`Depends on`,blocks:`Blocks`,newWorkerPlaceholder:`New worker name…`,confirmStop:`Stop this running task?`,confirmDelete:`Delete this task from the run?`,retryTitle:`Requeue this task to pending`,reassign:`Reassign`,stopTitle:`Abort the worker on this task`,splitTitle:`Split this task into sub-tasks delegated to separate workers`,split:`Split`,splitHint:`One sub-task per line — Title :: description (description optional)`,splitPlaceholder:`Write the data layer :: add the repository
4
- Wire the UI`,splitInto:`Split into sub-tasks`,deleteTitle:`Remove this not-started task from the run`},he={phaseStart:`Start`,phaseInterview:`Interview`,phaseSpecReview:`Spec Review`,phasePlanning:`Planning`,phaseTaskReview:`Task Review`,phaseRunning:`Running`,phaseDone:`Done`,titleFallback:`New SDD Project`,questionsSuffix:`{{cur}}/{{max}} questions`,tasksSuffix:`{{count}} tasks`,runCfgTitle:`Run config — default model + fallback chain`,modelsLabel:`Models`,startRun:`Start Run`,defaultWorkerModel:`Default worker model`,leaderDefaultPlaceholder:`Leader / session default`,useSessionDefault:`Use session default`,fallbackChain:`Fallback chain`,appliesToAll:`Applies to every task. Override per-task from the live board after the run starts.`,parallelAgents:`Parallel agents`,isolateWorktrees:`Isolate in git worktrees`,worktreeOn:`Each task runs in its own worktree, squash-merged back on completion.`,worktreeOff:`Tasks run directly on the current branch (no isolation).`,goalPrompt:`What do you want to build?`,goalPlaceholder:`e.g. Add OAuth login (Google + GitHub) with session management`,startingInterview:`Starting interview…`,startInterview:`Start Interview`,introBody:`An isolated agent interviews you to build a spec, decomposes it into a dependency-ordered task graph, then a real multi-agent fleet executes it — watch live on the board.`,taskGraphSummary:`Task graph · {{count}} tasks, dependency-ordered`,dragToExplore:`drag to explore`,show:`show`,goalLabel:`Goal`,implementationPlan:`Implementation plan`,approveSpec:`Approve spec → plan implementation`,approveTasks:`Approve tasks`,approvePlan:`Approve plan`,answerPlaceholder:`Answer the question…`,changePlaceholder:`Request a change…`},ge={emptyDir:`empty`,loadFailed:`Failed to load files: {{error}}`,expandAllTitle:`Expand all directories`,expandAll:`Expand all`,collapseAllTitle:`Collapse all directories`,collapse:`Collapse`,folders_one:`{{count}} folder`,folders_other:`{{count}} folders`,currentDirTitle:`Current directory: {{path}}`,navigateToTitle:`Navigate to {{path}}`,filesSuffix_one:`{{count}} file`,filesSuffix_other:`{{count}} files`,goToDir:`go to dir`,navigateParentTitle:`Navigate to parent directory of {{path}}`,parentDirectory:`parent directory`,noFiles:`No files found`,copyAbsPath:`Copy absolute path`,copyRelPath:`Copy relative path`,openInTerminal:`Open in terminal`,openInFileManager:`Open in file manager`,mentionInChat:`Mention in chat`,copyPath:`Copy path`},_e={sendSelectionAction:`Send selection to chat`,noFilesOpen:`No files open`,selectToEdit:`Select a file from the explorer to start editing`,sendSelectedTitle:`Send selected lines to chat`,mentionFileTitle:`Mention this file in chat`,sendToChat:`Send to chat`,mentionFile:`Mention file`,loadingEditor:`Loading editor…`,selectTab:`Select a tab to view its content`},ve={loading:`Loading analytics…`,heading:`Analytics Dashboard`,autoRefresh:`auto-refresh every 10s`,liveSessions:`Live Sessions`,agents:`Agents`,agentsActive:`{{count}} active`,totalEvents:`Total Events`,categoriesSub:`{{count}} categories`,toolCalls:`Tool Calls`,iterationsSub:`{{count}} iterations`,sessionCost:`Session Cost`,tokensSub:`{{input}} in / {{output}} out`,sessionDuration:`Session Duration`,messagesSub:`{{count}} messages`,eventsByCategory:`Events by Category`,noEvents:`No events recorded yet.`,topEvents:`Top Events`,activeSessionUsage:`Active Session Usage`,provider:`Provider`,model:`Model`,inputTokens:`Input Tokens`,outputTokens:`Output Tokens`,cacheRatio:`Cache Ratio`,filesRead:`Files Read`,noSession:`No active session or waiting for data…`,healthErrors:`Health & Errors`,errorEvents:`Error events`,warningEvents:`Warning events`,cacheHitRate:`Cache hit rate`,totalCategories:`Total categories`,waitingData:`Waiting for data…`,recentEvents:`Recent Events`,noRecentEvents:`No recent events. Interact with the UI to generate events.`},ye={heading:`Prompt library`,searchPlaceholder:`Search prompts…`,newPrompt:`+ New prompt`,all:`All`,recent:`🕘 Recent`,favorites:`★ Favorites`,noMatch:`No prompts match.`,newPromptHeading:`New prompt`,titlePlaceholder:`Title *`,descPlaceholder:`One-line description`,categoryPlaceholder:`Category`,tagsPlaceholder:`tags, comma, separated`,contentPlaceholder:`Prompt content * — use {{name}} for variables`,variables:`Variables`,addVar:`+ var`,varNamePlaceholder:`name`,varDescPlaceholder:`description`,removeVarTitle:`Remove variable`,required:`required`,multiline:`multiline`,enumPlaceholder:`enum: a, b, c`,savePrompt:`Save prompt`,saveFailed:`Could not save the prompt.`,titleContentRequired:`Title and content are required.`,toggleFavoriteTitle:`Toggle favorite`,selectOption:`— select —`,fillMissing:`Fill: {{missing}}`,insertIntoChat:`Insert into chat`,selectPromptHint:`Select a prompt to preview and insert.`},be={scopeProject:`Project`,scopeGlobal:`Global`,scopeBundled:`Bundled`,timeoutError:`Request timed out. Please try again.`,updateFailed:`Update failed`,saveFailed:`Save failed`,uninstallFailed:`Uninstall failed`,noSkillSelected:`No skill selected`,selectSkillHint:`Select a skill from the sidebar to view its documentation`,goToChat:`Go to chat`,openSourceRepo:`Open source repo`,copySourceUrl:`Copy source URL`,updatedLabel:`↑ Updated: {{list}}`,upToDateLabel:`— Up to date: {{list}}`,errorsLabel:`✗ {{list}}`,checkUpdatesTitle:`Check for updates`,exportTitle:`Export skill as .md`,editTitle:`Edit skill`,uninstallTitle:`Uninstall skill`,closeTitle:`Close and go to chat`,backTitle:`Go back`,forwardTitle:`Go forward`,relatedFiles:`Related Files`,references:`References`,goToSkillTitle:`Go to {{name}}`,loadingContent:`Loading skill content…`,editingLabel:`Editing {{name}}`,editStats:`{{lines}} lines · {{words}} words · {{chars}} chars`,charsWarningFmt:`⚠ {{used}} MB / {{limit}} MB`,draftSaved:`Draft saved`,draftRestored:`Draft restored`,discardDraft:`Discard draft`,splitViewTitle:`Split view`,hidePreviewTitle:`Hide preview`,contentPlaceholder:`Skill content (markdown)...`,loadFailed:`Failed to load skill content`,noContent:`No skill content available`,uninstallSkillHeading:`Uninstall Skill`,uninstallConfirm:`Uninstall {{name}}?`,uninstallRemovePath:`This will remove the skill from {{path}} and cannot be undone.`,uninstallAction:`Uninstall`},xe={sessionStats:`Session Stats`,clients:`Clients`,input:`Input`,output:`Output`,cost:`Cost`,agentsSuffix:`agents`,upPrefix:`up {{time}}`,webuiClient:`WebUI Client`,disconnected:`Disconnected`,connected:`Connected`,tuiClient:`TUI Client`,terminal:`Terminal`,repl:`REPL`,coordinator:`COORDINATOR`,fleetSummary:`Fleet summary`,toolCallsLabel:`Tool calls`,tokensLabel:`Tokens`,coordinatingFleet:`Coordinating fleet`,donePrefix:`✓ done ·`,failedPrefix:`✕ failed ·`,seenPrefix:`seen {{time}}`,availableDesk:`Available desk`,mailboxHub:`Mailbox Hub`,unreadSuffix_one:`{{count}} unread`,unreadSuffix_other:`{{count}} unread`,allClear:`All clear`,total:`Total`,unreadLabel:`Unread`,liveActivity:`Live activity`,waitingActivity:`Waiting for activity…`,now:`now`,fleetHq:`WrongStack Fleet HQ`,live:`LIVE`,legendStatus:`Status`,legendActive:`Active`,legendIdle:`Idle`,legendError:`Error`,legendConnections:`Connections`,legendMail:`Mail`,legendTask:`Task`,legendStatusConn:`Status`,arrange:`Arrange`,arrangeTitle:`Snap nodes back to the floor plan`,feed:`Feed`,feedTitle:`Toggle the live activity feed`,broadcast:`Broadcast`,broadcastTitle:`Broadcast a message to every live session in this project`,broadcastToAll:`Broadcast to all sessions`,broadcastPlaceholder:`Message every live agent in this project…`,broadcastSendHint:`⌘/Ctrl+Enter to send`,openFullView:`Open full operation view`,rowStatus:`Status`,rowModel:`Model`,rowTool:`Tool`,rowIterations:`Iterations`,rowToolCalls:`Tool calls`,rowTokensIn:`Tokens in`,rowTokensOut:`Tokens out`,rowTokensTotal:`Tokens total`,rowContext:`Context`,rowCost:`Cost`,rowLastSeen:`Last seen`,rowSurface:`Surface`,rowBranch:`Branch`,rowPid:`PID`,rowDir:`Dir`,rowAgents:`Agents`,rowUptime:`Uptime`,rowConnections:`Connections`,rowTotalMessages:`Total messages`,rowUnread:`Unread`,recent:`Recent`,noSubject:`(no subject)`,fullOperationStream:`Full operation stream`,closeEsc:`Close (Esc)`,idleDesk:`Idle desk`,fleetHqLabel:`Fleet HQ`,clientsSuffix_one:`{{count}} client`,clientsSuffix_other:`{{count}} clients`,taskFallback:`task`,controlLabel:`control`},Se={installTitle:`Install skill`,createTitle:`Create skill`,exportTitle:`Export all skills as .zip`,checkUpdatesTitle:`Check for updates (all skills)`,searchPlaceholder:`Search skills…`,loading:`Loading…`,noSkills:`No skills installed`,noMatch:`No skills match filter`,noDescription:`No description`,scopeForeign:`Foreign`,installHeading:`Install Skill`,installHint:`Enter a GitHub repository reference (owner/repo) or full URL.`,installPlaceholder:`e.g. wrongstack/skill-name or https://github.com/owner/repo`,installScope:`Install scope:`,installBtn:`Install`,installedMsg:`Installed: {{names}}`,installFailed:`Installation failed`,createHeading:`Create Skill`,createHint:`Scaffold a new skill. The first line is the trigger; additional lines form the description.`,nameLabel:`Name`,namePlaceholder:`e.g. my-new-skill`,descLabel:`Description / Trigger`,descPlaceholder:`Use this skill when <trigger situation>.
5
- Triggers: user says "keyword", "another".`,saveIn:`Save in:`,createBtn:`Create Skill`,createdMsg:`Created: {{name}}`,createFailed:`Creation failed`},Ce={noEvents:`No events yet.`},we={pickHint:`Pick a kit — the agent will adhere to it.`,gallery:`Gallery`,galleryTitle:`Open live preview gallery`,stackTitle:`Target stack`,loading:`Loading kits…`,notFound:`No design kits found.`,bestFor:`Best for:`,light:`Light`,dark:`Dark`},Te={detached:`(detached)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktrees`,baseSuffix:` · base {{base}}`,baseLabel:`base`,cleanOrphans:`Clean orphans`,cleanOrphansTitle:`Remove all orphaned worktrees`,liveBusyTitle:`A run is live — stop it first`,rescanTitle:`Rescan`,removed_one:`Removed {{count}} worktree.`,removed_other:`Removed {{count}} worktrees.`,failed:`Failed`,mergedIntoBase:`Merged {{branch}} into base.`,conflictMerge:`Conflict merging {{branch}}: {{files}}`,seeGit:`see git`,mergeFailed:`Merge failed: {{reason}}`,unknownReason:`unknown`,mergeConfirmTitle:`Merge {{branch}} into {{base}}?`,mergeConfirmMsg:`Squash-merges this branch onto the base branch. Aborts cleanly if it conflicts.`,mergeAction:`Merge`,removeConfirmTitle:`Remove {{branch}}?`,removeConfirmMsg:`Force-removes the worktree checkout and deletes its branch. Un-merged work is discarded.`,empty:`No worktrees.`,emptyHint:`SDD / AutoPhase runs create isolated worktrees here. Orphans from crashed runs show up too.`,actOpenTerm:`Open in terminal`,actOpenFolder:`Open folder`,actViewChanges:`View changes`,actMerge:`Merge to base`,actRemove:`Remove / discard`,live:`live`,noUncommitted:`No uncommitted changes`,commitsAhead_one:`{{count}} commit ahead`,commitsAhead_other:`{{count}} commits ahead`,more:`…{{count}} more`},Ee={heading:`Office Map`,headingHint:`Visualize your fleet as an office floor plan with live agent status.`,statAgents:`Agents`,statMail:`Mail`,unreadSuffix:` unread`,sectionView:`View`,sectionDisplay:`Display`,sectionBackground:`Background`,sectionRecent:`Recent Activity`,eventsTrackedSuffix:` events tracked`,recentHint:`Mail sends, agent spawns, and status changes appear here.`,sectionShortcuts:`Shortcuts`,sectionLegend:`Legend`,hudLabel:`HUD`,hudDesc:`Show real-time session stats overlay`,hudToggle:`Toggle HUD`,minimapLabel:`Minimap`,minimapDesc:`Show the overview minimap`,minimapToggle:`Toggle minimap`,controlsLabel:`Controls`,controlsDesc:`Show zoom and fit controls`,controlsToggle:`Toggle controls`,animateLabel:`Animate edges`,animateDesc:`Animate flow on active connections`,animateToggle:`Toggle edge animation`,legendLabel:`Show legend`,legendDesc:`Display status and connection legend`,legendToggle:`Toggle legend`,feedLabel:`Live feed`,feedDesc:`Bottom strip of recent cross-process activity`,feedToggle:`Toggle live feed`,fitView:`Fit view`,zoomIn:`Zoom in`,zoomOut:`Zoom out`,resetZoom:`Reset zoom`,legendActive:`Active (running)`,legendIdle:`Idle`,legendError:`Error`,legendOffline:`Offline`,bg:{dots:`Dots`,lines:`Lines`,cross:`Cross`,none:`None`}},De={nav:e,brand:t,status:n,menu:r,sidePanel:i,history:a,agents:o,changes:s,inspector:c,nextSteps:l,mailbox:u,sessions:d,sessionPanel:f,fleet:p,context:m,refine:h,specs:g,refresh:_,board:v,debug:y,providerModels:b,dock:x,agentsMonitor:S,terminal:C,sessionWatch:w,sideEffects:T,monitor:E,sdd:D,toolResult:O,design:k,autoPhase:A,collab:j,connection:M,mode:N,cost:P,model:F,modelSwitcher:I,work:L,todos:R,task:z,toolGroup:B,fileRef:V,plan:H,filePicker:ne,toast:U,search:W,phase:G,ctxMode:K,transcript:q,autonomy:J,queue:Y,checkpoint:X,goal:Z,worktree:Q,process:$,diff:re,fallback:ie,liveSessions:ae,monacoDiff:oe,errorBody:se,officeMap:ce,toolInput:le,message:ue,watch:de,shortcuts:fe,sddBoard:pe,sddTask:me,sddWizard:he,fileExplorer:ge,codeEditor:_e,analytics:ve,promptLib:ye,skillDetail:be,office:xe,skillsList:Se,timeline:Ce,designStudio:we,worktrees:Te,officeSettings:Ee};export{te as n,De as t};
@@ -1,5 +0,0 @@
1
- var e={chat:`Sitzung`,agents:`Agents`,history:`Verlauf`,files:`Dateien`,changes:`Änderungen`,mailbox:`Postfach`,skills:`Skills`,worktrees:`Worktrees`,design:`Design Studio`,officemap:`Bürokarte`,settings:`Einstellungen`,sddwizard:`Neues SDD-Projekt`,specs:`Spezifikationen`,sddboard:`Live-Board`,autophase:`Phasen`,fleet:`Fleet`,inspector:`Inspektor`,prompts:`Prompts`},t={returnToChat:`{{name}} — zurück zum Chat`,returnToChatDefault:`WrongStack — zurück zum Chat`},n={connected:`Verbunden`,disconnected:`Getrennt`,idle:`Inaktiv`,thinking:`Denkt nach`,running:`Läuft`,waiting:`Wartend`,done:`Fertig`,stopped:`Gestoppt`},r={moreWithHidden:`Mehr, {{count}} ausgeblendete Elemente`,moreOptions:`Weitere Optionen`,moreCompactHidden:`Mehr — {{count}} ausgeblendete Panels/Ansichten, Palette, Design, Monitore`,moreCompact:`Mehr — Palette, Design, Monitore`,moreFull:`Mehr — Palette, Design, Tastenkürzel, Monitore`,commandPalette:`Befehls-Palette`,keyboardShortcuts:`Tastenkürzel`,panels:`Panels`,views:`Ansichten`,theme:`Design`,monitors:`Monitore`,fleetMonitor:`Fleet-Monitor`,agentsMonitor:`Agents-Monitor`},i={dragHint:`Ziehen zum Skalieren · Doppelklick zum Zurücksetzen`,collapse:`Panel einklappen (Ctrl+\\)`},a={openDashboard:`Sitzungs-Dashboard öffnen`},o={pending:`ausstehend…`,empty:`Noch keine Agents`,emptyHint:`Subagents erscheinen hier, wenn die Fleet aktiv ist.`,runningCount:`{{count}} läuft`,totalCount:`{{count}} gesamt`,openFull:`Vollständige Agents-Ansicht öffnen`,agentsLive:`AGENTS · LIVE`,doneCount:`{{count}} fertig`,failedCount:`{{count}} fehlgeschlagen`,modelsLabel:`Modelle`,shownLabel:`angezeigt`,totalLabel:`gesamt`,leaderFleetTotals:`(Leader {{leader}} · Fleet {{fleet}})`,navHintJk:`j/k oder ↑↓ zum Navigieren`,escCloseDetail:`· Esc um Detail zu schließen`,noAgentsRunning:`Keine Agents aktiv.`,contextUsage:`Kontext-Nutzung`,lastToolLabel:`zuletzt:`,unknownSession:`Unbekannte Session`,sessionCopyTitle:`Session: {{sid}} — klicken zum Kopieren`,sessionWord:`Session`,agentsCountSuffix_one:`{{count}} Agent`,agentsCountSuffix_other:`{{count}} Agents`,sessionTitle:`Session: {{sid}}`,projectSuffix:` · Projekt: {{name}}`,statusIdle:`idle`},s={fileCount_one:`{{count}} Datei`,fileCount_other:`{{count}} Dateien`,refreshTitle:`Änderungen aktualisieren`,loading:`Änderungen werden geladen…`,clean:`Keine Änderungen — Arbeitsbaum ist sauber.`,selectPrompt:`Wähle eine geänderte Datei, um den Diff anzuzeigen.`,unified:`Vereinigt`,unifiedTitle:`Vereinigter Diff`,edit:`Bearbeiten`,editTitle:`Side-by-side bearbeitbarer Diff`,loadingDiff:`Diff wird geladen…`,diffTimeout:`Das Diff ist nicht angekommen. Die Datei wurde evtl. geändert oder die Verbindung getrennt.`,binary:`Binärdatei — Diff nicht angezeigt.`,tooLarge:`Datei zu groß für Diff.`},c={showPanel:`Inspektor-Panel anzeigen (Fleet / Agents / Audit)`,hidePanel:`Inspektor-Panel ausblenden`,label:`Inspektor`,openAudit:`Audit-Tab öffnen`,tabFleet:`Fleet`,tabAgents:`Agents`,tabAudit:`Audit`,collapseAria:`Inspektor-Panel einklappen`,collapseTitle:`Einklappen (Esc)`,noAgentsActive:`Keine Agents aktiv`,agentsAppearHint:`Agents erscheinen hier, wenn die Fleet aktiv ist.`,selected:`{{name}} (ausgewählt)`},l={header:`Nächste Schritte`,autoSubmitting:`automatisches Senden in`,clickToFill:`Klicken zum Ausfüllen`,clickToFillTitle:`Klicken zum Ausfüllen: {{text}}`,auto:`auto`,willAutoSubmit:`Wird nach Countdown automatisch gesendet`},u={onlineCount:`{{count}} online`,messages:`Nachrichten`,deleteAllTitle:`Alle Nachrichten löschen`,deleteAll:`Alle löschen`,deleting:`Wird gelöscht…`,purgeTitle:`Veraltete/verwaiste Nachrichten bereinigen`,purge:`Bereinigen`,purging:`Bereinige…`,compact:`Komprimieren`,compacting:`Komprimiere…`,compactTitle:`Auto-Komprimierung: abgelaufene, von allen gelesene und veraltete Nachrichten entfernen`,compactRemoved:`{{count}} entfernt`,compactExpired:`{{count}} abgelaufen`,compactReadByAll:`{{count}} von allen gelesen`,compactStale:`{{count}} veraltet`,compactRemaining:`{{count}} verbleibend`,newLabel:`NEU`,empty:`Noch keine Nachrichten.`,offlineCount:`+{{count}} offline`,timeNow:`jetzt`,deleteAllConfirmTitle_one:`{{count}} Nachricht löschen?`,deleteAllConfirmTitle_other:`Alle {{count}} Nachrichten löschen?`,deleteAllConfirmBody:`Die Mailbox-Datei wird für jeden Agent abgeschnitten. Dies kann nicht rückgängig gemacht werden.`,purgeConfirmTitle:`Veraltete Nachrichten bereinigen?`,purgeConfirmBody:`Entfernt abgeschlossene Nachrichten älter als 1 Tag und unvollständige Nachrichten älter als 7 Tage. Aktive Nachrichten bleiben erhalten.`,type:{note:`Notiz`,ask:`Frage`,assign:`Zuweisung`,steer:`Lenken`,btw:`Nebenbei`,broadcast:`Rundruf`,status:`Status`,result:`Ergebnis`},emptyDetail:`Keine Nachricht ausgewählt`,emptyDetailHint:`Klicke im Mailbox-Panel auf eine Nachricht, um sie hier anzuzeigen.`,readBy:`Gelesen von`,backToChat:`Zurück zum Chat`,completed:`Erledigt`,everyone:`alle`,closeTitle:`Schließen (Esc)`,replyTo:`Antwort auf: {{id}}`,completedBy:`Von {{name}} erledigt`,completedByAt:`Von {{name}} am {{time}} erledigt`,outcome:`Ergebnis:`,task:`Aufgabe:`,messageNotFound:`Nachricht nicht gefunden`,messageNotFoundHint:`Diese Nachricht wurde möglicherweise gelöscht oder bereinigt.`},d={recentSessions:`Letzte Sitzungen`,deleteEmptyTitle_one:`{{count}} leere Sitzung löschen?`,deleteEmptyTitle_other:`{{count}} leere Sitzungen löschen?`,deleteEmptyConfirmBody:`Sitzungen ohne Token-Nutzung werden von der Festplatte entfernt.`,filterPlaceholder:`Titel, Modell, Anbieter filtern…`,clearFilter:`Filter löschen`,noHistory:`Noch kein Verlauf`,noHistoryHint:`Deine Konversationen erscheinen hier`,noMatches:`Keine Treffer`,noMatchesHint:`Versuche einen anderen Filter`,group:{favorites:`Favoriten`,today:`Heute`,yesterday:`Gestern`,thisWeek:`Diese Woche`,earlier:`Früher`},nicknamePlaceholder:`Spitzname`,empty:`(leer)`,resuming:`wird fortgesetzt…`,active:`aktiv`,renameTitleNickname:`{{nickname}} — original: {{title}}`,renameTitle:`{{title}}
2
-
3
- Doppelklick zum Umbenennen`,unfavorite:`Aus Favoriten entfernen`,markFavorite:`Als Favorit markieren`,deleteSessionConfirmTitle:`Sitzung löschen?`,deleteSessionConfirmBody:`"{{name}}" wird von der Festplatte entfernt. Dies kann nicht rückgängig gemacht werden.`,deleteSessionTitle:`Sitzung löschen`},f={actions:{abort:`Abbrechen`,newSession:`Neue Sitzung`,export:`Export`,compact:`Komprimieren`,newSessionTitle:`Neue Sitzung starten (Ctrl+N)`,exportTitle:`Chat als Markdown exportieren (Ctrl+E)`,compactTitle:`Kontextfenster komprimieren`,clearTitle:`Kontext löschen (Ctrl+L)`},model:`Modell`,modelTitle:`Modell ändern (Ctrl+M)`,context:`Kontext`,contextTitle:`Klicken für eine Kontextaufschlüsselung`,sessionLabel:`Sitzung`,stats:{messages:`Nachrichten`,elapsed:`Verstrichen`,tokens:`Tokens`,cost:`Kosten`,iteration:`Iteration`,agents:`Agents`,tokensSub:`{{in}} rein / {{out}} raus`,iterationOf:`von {{max}}`,agentsRunning:`{{count}} läuft`},plan:`Plan`,planComplete:`{{pct}}% fertig`,pinned:`Angeheftet`,quickSettings:`Schnelleinstellungen`,autonomy:`Autonomie`,autonomyOptions:{off:`Aus`,suggest:`Vorschlagen`,auto:`Auto`,eternal:`Endlos`,"eternal-parallel":`Endlos Parallel`},yolo:`YOLO-Modus`,yoloTitle:`Tool-Bestätigungsdialoge überspringen`,refine:`Prompts verfeinern`,refineTitle:`Prompts vor dem Senden umschreiben`,sound:`Ton bei Fertigstellung`,soundTitle:`Sanften Gong abspielen, wenn ein Lauf endet`,sessionId:`Sitzung {{id}}`},p={status:{running:`läuft`,done:`fertig`,failed:`fehlgeschlagen`,timeout:`Zeitüberschreitung`,stopped:`gestoppt`},leader:`Leader`,providerModel:`Anbieter / Modell`,elapsed:`Verstrichen`,running:`läuft…`,iterations:`Iterationen`,toolCalls:`Tool-Aufrufe`,cost:`Kosten`,budgetExtensions:`Budget-Erweiterungen`,activity:`Aktivität`,budgetWarning:`Budget-Warnung`,contextWindow:`Kontextfenster`,tokensUsed:`{{used}} / {{max}} Tokens`,toolRunning:`läuft…`,lastTool:`letztes Tool`,error:`Fehler`,finalOutput:`Endgültige Ausgabe`,copyOutput:`Ausgabe kopieren`,liveOutput:`Live-Ausgabe`,waitingOutput:`Warte auf Ausgabe…`,outputHint:`Die Ausgabe erscheint hier, sobald der Agent Text streamt.`,toolLog:`Tool-Log ({{count}} Aufrufe)`,fail:`Fehlschlag`,moreTools:`+{{count}} weitere Tools`,cardRunning:`läuft {{tool}}`,cardLastTool:`zuletzt: {{tool}}`,contextPercent:`Kontext {{pct}}%`,doneCount:`{{count}} fertig`,errCount:`{{count}} Fehler`,statusRunning:`läuft`,statusDone:`fertig`,statusFailed:`fehlgeschlagen`,statusTimeout:`Timeout`,statusStopped:`gestoppt`,sessionPrefix:`Session:`,currentTask:`Aktuelle Task`,performance:`Performance`,uniqueTools:`Eindeutige Tools`,avgPerTool:`ø {{ms}}ms pro Tool`,context:`Kontext`,tokens:`Token`,ctxUsed:`{{pct}}% genutzt`,completed:`abgeschlossen`,budgetWarningTitle:`⚡ Budget-Warnung`,hittingLimit:`Erreicht {{kind}}-Limit ({{used}}/{{limit}})`,hittingLimitTitle:`⚡ erreicht {{kind}}-Limit ({{used}}/{{limit}})`,budgetExt_one:`{{count}} Budget-Erweiterung`,budgetExt_other:`{{count}} Budget-Erweiterungen`,extendedTimes_one:`Agent hat sein Budget {{count}}-mal wegen langer Tasks erweitert`,extendedTimes_other:`Agent hat sein Budget {{count}}-mal wegen langer Tasks erweitert`,errorLabel:`Fehler`,failureReason:`Fehlergrund`,failed:`Fehlgeschlagen`,fleetMonitor:`FLEET-MONITOR`,runningCount:`{{count}} läuft`,totalAgents_one:`{{count}} Agent gesamt`,totalAgents_other:`{{count}} Agents gesamt`,noLeader:`kein Leader`,closeFleet:`Fleet-Monitor schließen`,colName:`Name`,colStatus:`Status`,colActivity:`Aktivität`,colIters:`Iter.`,colTools:`Tools`,colCost:`Kosten`,colCtx:`CTX`,colExt:`Erw.`,colReason:`Grund`,noAgentsActive:`Keine Agents aktiv`,agentsAppear:`Agents erscheinen hier, wenn die Fleet aktiv ist.`,agentTimeline:`Agent-Zeitleiste`,noAgentEvents:`Noch keine Agent-Konversationsereignisse.`,navHint:`↑↓ navigieren`,selectDetailHint:`↵ Detail wählen`,escHint:`Esc Auswahl aufheben / schließen`,detailedView:`Detailansicht`,closeBtn:`✕ schließen`,selectAgentDetail:`Wähle einen Agent für detaillierte Informationen`,selectAgentBody:`Klicke einen Agent in der Liste für detaillierte Metriken, Tool-Logs, Streaming-Ausgabe und mehr — ähnlich der Chat-Verlauf-Detailansicht.`,navigateWord:`navigieren`,selectWord:`wählen`,deselectWord:`aufheben`},m={wsNotConnected:`WebSocket nicht verbunden`,noData:`Keine Debug-Daten empfangen. Der Server unterstützt möglicherweise kein Context-Debugging.`,title:`Kontext-Aufschlüsselung`,windowUsage:`Fensterauslastung`,contextMode:`Kontextmodus`,fetching:`Kontext-Aufschlüsselung wird geladen…`,systemPrompt:`System-Prompt`,tools:`Tools`,messages:`Nachrichten`,tokenAllocation:`Token-Verteilung`,systemTitle:`System: {{tokens}}`,toolsTitle:`Tools: {{tokens}}`,messagesTitle:`Nachrichten: {{tokens}}`,system:`System`,toolBreakdown:`Tool-Aufschlüsselung`,messagesSummary:`Nachrichten ({{count}}) — {{total}} Tok`,barWithTokens:`Kontextfenster: {{tokens}} / {{max}} Token ({{pct}})`,barPct:`Kontextfenster: {{pct}}`,barClick:` — für Aufschlüsselung klicken`},h={header:`✨ Prompt verfeinern`,autoSend:`Auto-Send in {{count}} s`,cancelTitle:`Abbrechen (Esc)`,editLabel:`Verfeinerten Prompt bearbeiten:`,editPlaceholder:`Verfeinerten Prompt bearbeiten ...`,useEdit:`Bearbeitung verwenden`,original:`Original`,refined:`Verfeinert`,yourLanguage:`(deine Sprache)`,refinedTitle:`Klicken oder Enter drücken, um diese Version zu verwenden`,english:`Englisch`,englishTitle:`e drücken, um die englische Version zu verwenden`,hintRefined:`verfeinert`,hintEnglish:`Englisch`,hintOriginal:`original`,hintEdit:`bearbeiten`,edit:`Bearbeiten`,useRefined:`Verfeinerte verwenden`},g={heading:`Spezifikationen`,subtitle:`Spezifikationsgetriebene Entwicklung anzeigen und verwalten`,empty:`Keine Specs gefunden. Mit {{command}} eine erstellen.`,tasks:`Aufgaben ({{count}})`,doneCount:`{{count}} erledigt`,runningCount:`{{count}} läuft`,pendingCount:`{{count}} ausstehend`,runTitle:`Dieses Spec als Live-AutoPhase-Board ausführen`,run:`Ausführen`,list:`Liste`,graph:`Graph`,loadingTasks:`Aufgaben werden geladen…`},_={heading:`F5-Resilienz-Prüfer`,subtitle:`Bestätigt, dass die letzte aktive Sitzung, das Transkript und der UI-Zustand einen Page-Refresh überstehen. Öffne diese Ansicht und drücke F5 — jede grüne Zeile sollte grün bleiben.`,recordProbe:`Probe aufzeichnen`,latestSession:`Letzte aktive Sitzung`,restoredLocal:`Aus localStorage wiederhergestellt`,sessionIdExtra:`Session-ID: {{id}}`,noSessionYet:`es wurde noch keine Sitzung gestartet`,activePointer:`Aktiver Session-Zeiger`,lastVisited:`lastVisitedAt-Zeitstempel`,never:`nie`,persistedEnv:`Persistierte Umgebung`,transcriptRehydrate:`Chat-Transkript-Rehydratation`,localTranscript:`Lokales Transkript wiederhergestellt`,messagesExtra:`{{count}} Nachrichten, {{queued}} in Warteschlange`,noMessages:`0 Nachrichten`,noBleed:`Kein Session-Übergriff`,bleedExtra:`gebunden={{bound}} vs aktiv={{active}}`,transcriptBinds:`Transkript bindet an die aktive Sitzung`,uiWorkspace:`UI-Workspace`,noneValue:`(keine)`,payloadSize:`localStorage-Payload (4 Schlüssel): {{count}} Zeichen`,probeLog:`Probe-Protokoll`,noProbes:`Noch keine Probes — drücke oben "Probe aufzeichnen" oder F5 in dieser Ansicht, um einen Rehydratations-Check aufzuzeichnen.`,simulatedF5:`simuliertes F5: persist rehydrate erneut ausführen`},v={status:{pending:`Ausstehend`,in_progress:`In Arbeit`,review:`Review`,failed:`Fehlgeschlagen`,completed:`Erledigt`,queued:`In Warteschlange`,blocked:`Blockiert`,cancelled:`Abgebrochen`},newTaskTitle:`Neue Aufgabe`,newTaskPlaceholder:`Aufgabentitel…`,addTask:`Aufgabe hinzufügen`,empty:`Noch keine Phasen — starte einen AutoPhase-Lauf, um das Board zu füllen.`,summary:`{{phases}} Phasen · {{tasks}} Aufgaben`,phases:`Phasen`,statusTab:`Status`,dropHere:`Aufgaben hier ablegen`,emptySpec:`Noch keine Aufgaben in dieser Spec.`,depGraphHeading:`Abhängigkeitsgraph`,worktreePrefix:`Worktree: {{branch}}`},y={trendUp:`Steigend`,trendDown:`Fallend`,trendStable:`Stabil`,heading:`Debug-Dashboard`,subtitle:`Echtzeit-Monitoring für WrongStack WebUI`,refreshLabel:`Aktualisieren:`,lastUpdated:`Zuletzt aktualisiert: {{time}}`,fetchFailed:`Metriken konnten nicht abgerufen werden`,fileWatcher:`File-Watcher`,watcherStatus:`Watcher-Status`,running:`Läuft`,stopped:`Gestoppt`,activeProjects:`Aktive Projekte`,projectsWatched:`Überwachte Projekte`,fileChanges:`Dateiänderungen`,totalDetected:`Gesamt erkannt`,filesProcessed:`Verarbeitete Dateien`,afterHash:`Nach Hash-Filter`,broadcastsSent:`Gesendete Broadcasts`,toClients:`An WebUI-Clients`,debounceResets:`Debounce-Zurücksetzungen`,rapidWrites:`Schnelle aufeinanderfolgende Schreibvorgänge`,avgDebounce:`Ø Debounce-Verzögerung`,actualDelay:`Tatsächliche Verzögerung`,totalDelay:`Gesamtverzögerung`,sumDelays:`Summe aller Verzögerungen`,browserPerf:`Browser-Leistung`,heapUsed:`Heap verwendet`,jsHeap:`JavaScript-Heap`,heapTotal:`Heap gesamt`,totalHeap:`Gesamte Heap-Größe`,pageUptime:`Seiten-Laufzeit`,sinceLoad:`Seit Seitenladung`,rawData:`Rohdaten`},b={allowlistTitle:`Modell-Allowlist`,modelCount_one:`{{count}} Modell`,modelCount_other:`{{count}} Modelle`,using:`Verwendet`,noModelPicked:`(kein Modell gewählt)`,clearAllowlist:`Allowlist löschen`,clearAllowlistAria:`Gespeicherte Allowlist für {{provider}} löschen`,refresh:`Vom Server aktualisieren`,refreshAria:`Modellliste für {{provider}} aktualisieren`,probing:`Prüfe…`,use:`Verwenden`,useModelAria:`Modell {{model}} für {{provider}} verwenden`,differsHint:`Die geprüfte Liste weicht von der gespeicherten Allowlist ab — führe {{command}} erneut aus, um zu speichern.`},x={expandChip:`{{label}} ausklappen`,collapseChip:`{{label}} einklappen`,ahead:`{{count}} voraus`,behind:`{{count}} hinterher`,linesAdded:`{{count}} Zeilen hinzugefügt`,linesDeleted:`{{count}} Zeilen gelöscht`,untrackedFiles:`{{count}} unversionierte Dateien`,customizeTitle:`Dock-Chips anpassen`,dockChips:`Dock-Chips`,noActiveGoal:`Kein aktives Ziel`,noActiveGoalDetail:`Starte ein Ziel aus dem Chat oder dem Goal-Befehl.`},S={leaderBadge:`LEADER`,iters:`Iter.`,tools:`Tools`,activityBins:`Aktivität (12 Bins)`,streamingOutput:`Streaming-Ausgabe`,recentTools:`Letzte Tools`,finalOutput:`Endgültige Ausgabe`,heading:`Agents-Monitor`,prevAgent:`Vorheriger Agent`,nextAgent:`Nächster Agent`,closeAria:`Agents-Monitor schließen`,hintPage:`←→ Seite`,hintNavigate:`↑↓ Liste navigieren`,hintEsc:`Esc schließen`},C={resize:`Terminals skalieren`,labelSingular:`Terminal`,labelPlural:`Terminals`,projectShell:`Projekt-Shell`,maxTerminals:`Maximal {{count}} Terminals`,newTerminal:`Neues Terminal`,restart:`Aktives Terminal neu starten`,closeAll:`Alle Terminals schließen`,closeDock:"Terminal-Dock schließen (Ctrl+`)",closeTab:`{{name}} schließen`,processExited:`[Prozess mit Code {{code}} beendet]`},w={liveStream:`Live-Stream`,events_one:`{{count}} Ereignis`,events_other:`{{count}} Ereignisse`,interruptTitle:`Diesen Agenten kooperativ beim nächsten Schritt stoppen (kein Process-Kill)`,interrupt:`⏸ Unterbrechen`,interrupting:`…`,loading:`Sitzung wird geladen…`,done:`✓✓ erledigt`,read:`✓ gelesen`,delivered:`⏳ zugestellt`,agent:`Agent`,you:`Du`,working:`{{name}} · arbeitet`,claude:`Claude`,priority:`Priorität`,placeholder:`{{label}} → an diese Sitzung…`,send:`Senden`,sendHint:`⌘/Ctrl+Enter zum Senden · beim nächsten Iterationsschritt des Agenten sichtbar`,msgType:{steerLabel:`🔄 Lenken`,steerHint:`Verhalten während der Aufgabe anpassen`,askLabel:`❓ Fragen`,askHint:`Frage — erwartet eine Antwort`,assignLabel:`📋 Zuweisen`,assignHint:`Eine zu erledigende Aufgabe`,noteLabel:`💬 Notiz`,noteHint:`Zur Info, nicht dringend`},sentRunning:`Zugestellt — der laufende Agent sieht es beim nächsten Schritt`,sentIdle:`Zugestellt — Ziel ist inaktiv; erscheint im Postfach, gelesen beim nächsten Lauf`,sentFailed:`Fehlgeschlagen: {{error}}`,interruptReason:`Operator hat Stopp aus Fleet HQ angefordert`,interruptSent:`Unterbrechung gesendet — Agent stoppt beim nächsten Schritt (kein Kill)`,interruptFailed:`Unterbrechung fehlgeschlagen: {{error}}`},T={empty:`Noch keine Seiteneffekte aufgezeichnet.`,emptyHint:`Bash-Befehle, Paketinstallationen und Netzwerkanfragen erscheinen hier.`,heading:`Seiteneffekte`,exportTitle:`Gefilterte Seiteneffekte als CSV exportieren`,all:`Alle`,colTime:`Zeit`,colTool:`Tool`,colRisk:`Risiko`,colDetail:`Detail`,colOutcome:`Ergebnis`},E={elapsedHm:`vor {{h}}h {{m}}m`,elapsedMs:`vor {{m}}m {{s}}s`,elapsedS:`vor {{s}}s`,heading:`Fleet-Monitor`,clientsHeading:`Verbundene Clients`,terminal:`Terminal`,webui:`Web-UI`,repl:`REPL`,totalConnected:`insgesamt verbunden`,mailQueue:`Mail-Warteschlange`,total:`Gesamt`,open:`Offen`,unread:`Ungelesen`,agents:`Agents`,messagesSub:`Nachrichten`,uncompletedSub:`unabgeschlossen`,waitingSub:`wartend`,ofTotal:`von {{count}} gesamt`,agentRoster:`Agenten-Roster`,liveMailActivity:`Live-Mail-Aktivität`,noActivity:`Keine aktuelle Aktivität`,mailboxAgents:`Mailbox-Agents`,noMailboxAgents:`Keine Agents registriert`,moreCount:`+{{count}} weitere`,agentFallback:`Agent`,fleetAgents:`Fleet-Agents`,noFleetAgents:`Keine Fleet-Agents aktiv`,iter:`Iter.`,mailType:{sent:`Gesendet`,delivered:`Zugestellt`,read:`Gelesen`,completed:`Abgeschlossen`}},D={status:{pending:`ausstehend`,queued:`in Warteschlange`,in_progress:`läuft`,blocked:`blockiert`,review:`Review`,failed:`fehlgeschlagen`,completed:`erledigt`,cancelled:`abgebrochen`},activityHeading:`Aktivität`,feedEmpty:`Noch nichts — Ereignisse erscheinen hier, sobald Agents Aufgaben übernehmen und abschließen.`,destroyTitle:`SDD-Projekt zerstören?`,destroyDesc:`Das löscht den Run und seine Arbeit. Nicht rückgängig zu machen (das optionale Commit-Revert ist historienwahrend).`,stopRun:`Run stoppen`,stopRunAgents_one:`Run stoppen ({{count}} Agent arbeitet)`,stopRunAgents_other:`Run stoppen ({{count}} Agents arbeiten)`,removeWorktreesAll:`Alle Git-Worktrees + wstack/ap/*-Branches entfernen — inklusive nicht gemergter Arbeit`,removeWorktreesCount_one:`{{count}} Git-Worktree + wstack/ap/*-Branches entfernen — inklusive nicht gemergter Arbeit`,removeWorktreesCount_other:`{{count}} Git-Worktrees + wstack/ap/*-Branches entfernen — inklusive nicht gemergter Arbeit`,deleteArtifacts:`Alle SDD-Artefakte löschen (Specs, Task-Graph, Board, Session)`,revertMerged_one:`Auch {{count}} gemergtes Commit revertieren`,revertMerged_other:`Auch {{count}} gemergte Commits revertieren`,revertHint:`Fügt Revert-Commits hinzu (Historie bleibt). Wird verweigert, wenn der Working Tree dirty ist.`,baseBranchFallback:`der Basis-Branch`,noteLeaveMerged:`Gemergte Commits bleiben auf dem Basis-Branch. Setze den Haken oben, um sie auch rückgängig zu machen.`,noteAbandon:`Stelle sicher, dass du diesen Run wirklich aufgeben willst.`,destroying:`Zerstöre…`,destroyAll:`Alles zerstören`,kanbanBacklog:`Backlog`,kanbanReady:`Bereit`,kanbanRunning:`Läuft`,kanbanReview:`Review`,kanbanFailed:`Fehlgeschlagen`,kanbanDone:`Erledigt`,kanbanEmpty:`leer`},O={collapseToLines:`Auf erste {{count}} Zeilen einklappen`,showAllLines:`Alle {{total}} Zeilen anzeigen ({{more}} mehr)`,exitCode:`Exit-Code:`,jsonLines:`JSON · {{count}} Zeilen`,collapse:`einklappen`,expand:`ausklappen`},k={heading:`Design Studio — Galerie`,kitsCount:`{{count}} Kits`,searchPlaceholder:`Kits suchen…`,stackTitle:`Stack für Use + Materialize`,wrote:`{{path}} geschrieben`,materializeFailed:`Materialize fehlgeschlagen: {{error}}`,verifyError:`Prüfen: {{error}}`,verifyOffPalette:`Prüfen: {{pct}}% on-palette — {{count}} off-palette in {{files}} Datei(en)`,verifyClean:`Prüfen: sauber ✓ ({{files}} Datei(en) on-palette)`,writing:`Theme-Datei wird geschrieben…`,scanning:`UI-Dateien werden gescannt…`,active:`Aktiv`,reapply:`Erneut anwenden`,use:`Verwenden`,materializeTitle:`Tokens in eine {{stack}}-Theme-Datei schreiben`,materialize:`Materialisieren`,verifyTitle:`UI-Dateien auf Off-Palette-Farben prüfen`,verify:`Prüfen`,colors:`Farben`},A={summary_one:`{{count}} Phase · {{pct}}% fertig`,summary_other:`{{count}} Phasen · {{pct}}% fertig`,switchBoard:`Board wechseln`,boardsCount_one:`{{count}} Board…`,boardsCount_other:`{{count}} Boards…`,toggleAutonomousTitle:`Autonomen Modus umschalten`,autonomous:`Autonom`,manual:`Manuell`,resumeTitle:`Lauf fortsetzen`,pauseTitle:`Lauf pausieren`,resume:`Fortsetzen`,pause:`Pausieren`,stopTitle:`Lauf stoppen — bricht laufende Agents sofort ab`,stop:`Stopp`,newTitle:`Dieses Board löschen und einen neuen AutoPhase-Lauf starten`,newLabel:`Neu`,revertConfirm:`Commits des Laufs zurücksetzen?`,revertTitle:`Diesen Lauf zurücknehmen — gelandete Commits per git-revert und Worktrees entfernen`,revert:`Zurücknehmen`,goal:`Ziel`,planning:`Phasen werden geplant…`,planningBody:`Dein Ziel wurde empfangen. WrongStack zerlegt es in Phasen und Aufgaben — das Board erscheint hier, sobald der Plan steht.`,startHeading:`Phasenplan starten`,startBody:`Beschreibe, was du bauen willst. WrongStack plant Phasen und Aufgaben und führt sie aus — beobachte und lenke den Lauf auf dem Board.`,startPlaceholder:`z.B. Eine REST-API für Benutzerverwaltung mit Express und SQLite bauen...`,isolateLabel:`Jede Phase im eigenen Git-Worktree isolieren`,startButton:`AutoPhase starten`,ctrlHint:`Ctrl+Enter zum Starten`,isolateOn:`Phasen laufen in isolierten Worktrees, squash-merged zurück`,isolateOff:`Phasen laufen direkt auf dem aktuellen Branch`,lanes:`Spuren`,graph:`Graph`,planningAck:`🚀 **AutoPhase** — verstanden. Plane Phasen für dein Ziel…`},j={noObservers:`Keine Live-Beobachter`,observerTitle:`Als nur-lesen-Beobachter beitreten (Phase 1)`,observerRole:`Beobachter`,annotatorTitle:`Als Annotator beitreten — hinterlasse Notizen zu Tool-Aufrufen (Phase 2)`,annotatorRole:`Annotator`,controllerTitle:`Als Controller beitreten — kann die Agent-Schleife pausieren (Phase 3)`,controllerRole:`Controller`,errorPrefix:`Collab: {{error}}`,dismiss:`verwerfen`,observers_one:`{{count}} Beobachter`,observers_other:`{{count}} Beobachter`,annotationsTitle:`{{count}} offene Anmerkung(en) — Annotatoren prüfen diese Sitzung`,notes_one:`{{count}} Notiz`,notes_other:`{{count}} Notizen`,pausedTitle:`Agent-Schleife pausiert — ein Controller prüft`,paused:`pausiert`,joinedTitle:`Beigetreten {{time}}`,grantTitle:`Kontrolle geben — diesen Teilnehmer zum Controller befördern`,injectTitle:`Ein synthetisches Ergebnis für einen laufenden Tool-Aufruf injizieren`,inject:`Injizieren`,resumeTitle:`Agent-Schleife fortsetzen`,resume:`Fortsetzen`,pauseTitle:`Agent vor dem nächsten Tool-Aufruf pausieren`,pauseAgent:`Agent pausieren`,leaveTitle:`Beobachter-Sitzung verlassen`,leave:`Verlassen`,injectToolResult:`Tool-Ergebnis injizieren`,close:`schließen`,targetTool:`Ziel-tool_use-id`,targetPlaceholder:`laufenden Aufruf wählen oder tool_use-id eingeben`,toolFallback:`Tool`,noPendingTools:`Keine laufenden Tool-Aufrufe — gib eine tool_use-id ein oder pausiere den Agent zuerst.`,resultContent:`Ergebnisinhalt`,resultPlaceholder:`Synthetisches Tool-Ergebnis, das dem Agent statt der Ausführung zugeführt wird`,markError:`als Fehler markieren`,reasonPlaceholder:`Grund (Audit-Log)`,queueInjection:`Injektion einreihen`,controllerInjection:`Controller-Injektion`},M={reconnecting:`Verbinde erneut mit Backend (Versuch {{attempt}}) — erneut in {{remaining}} s`,disconnected:`Verbindung zum Backend getrennt`,retry:`Jetzt erneut versuchen`,retryTitle:`Verbindung jetzt erneut versuchen`,dismissTitle:`Verwerfen (Chip in der Topbar zeigt weiterhin den Status)`},N={modePrefix:`Modus:`,activeTitle:`Aktiver Modus`,heading:`Modus`,defaultName:`Standard`,defaultDesc:`Standard-Agent-Verhalten`},P={clickTitle:`Klicken für Kostenaufschlüsselung pro Zug`,heading:`Kostenaufschlüsselung`,noPricing:`Keine Preisgebung für das aktuelle Modell — Kostenwerte sind null.`,noTurns:`Noch keine abgeschlossenen Züge. Führe einen Prompt aus, um hier die Kosten pro Zug zu sehen.`,topExpensive_one:`Teuerster Zug`,topExpensive_other:`Die {{count}} teuersten Züge`},F={runDefault:`Run-Standard`,useRunDefault:`Run-Standard verwenden`,filterPlaceholder:`Modelle filtern…`,loading:`Modelle werden geladen…`,noMatch:`Kein Treffer`},I={heading:`Modell wechseln`,filterPlaceholder:`Anbieter und Modelle filtern…`,noSavedProviders:`Keine gespeicherten Anbieter — zuerst einen Schlüssel in den Einstellungen registrieren.`,active:`aktiv`},L={todos:`Todos`,tasks:`Aufgaben`,plan:`Plan`},R={toggleAria:`Umschalten: {{content}}`,removeTitle:`Todo entfernen`,removeAria:`"{{content}}" entfernen`,completedCount_one:`{{count}} erledigt`,completedCount_other:`{{count}} erledigt`},z={start:`Starten`,complete:`Abschließen`,retry:`Erneut versuchen`,assign:`Zuweisen`,assignTitle:`Agent zuweisen`,unassigned:`Nicht zugewiesen`,statusPending:`Ausstehend`,statusInProgress:`In Arbeit`,statusBlocked:`Blockiert`,statusFailed:`Fehlgeschlagen`,statusReview:`Review`,statusDone:`Erledigt`,startTitle:`Starten`,completeTitle:`Abschließen`,fail:`Fehlschlagen`,failTitle:`Als fehlgeschlagen markieren`,boardCount:`{{total}} Aufgaben · {{done}} erledigt`},B={toolCalls_one:`{{count}} Werkzeugaufruf`,toolCalls_other:`{{count}} Werkzeugaufrufe`},V={removeTitle:`Referenz entfernen`,linesCount_one:`{{count}} Zeile`,linesCount_other:`{{count}} Zeilen`},H={statusOpen:`Offen`,statusInProgress:`In Arbeit`,statusDone:`Erledigt`,startTitle:`Starten`,doneTitle:`Als erledigt markieren`,reopenTitle:`Wieder öffnen`,reopen:`Wieder öffnen`},U={heading:`@ Dateien`,noMatch:`Keine Dateien passen zu „{{query}}“`,searching:`Projekt wird durchsucht…`},W={dismiss:`Verwerfen`},G={placeholder:`Im Chat suchen…`,prevHit:`Vorheriger Treffer`,nextHit:`Nächster Treffer`,close:`Schließen (Esc)`},K={statusPending:`Ausstehend`,statusReady:`Bereit`,statusRunning:`Läuft`,statusPaused:`Pausiert`,statusCompleted:`Abgeschlossen`,statusFailed:`Fehlgeschlagen`,statusSkipped:`Übersprungen`,heading:`Phasen`,autonomousOn:`● Autonom`,autonomousOff:`○ Manuell`,autonomousOnTitle:`Autonomer Modus aktiv — klicken zum Pausieren`,autonomousOffTitle:`Manueller Modus — klicken zum Aktivieren des autonomen Modus`,overallProgress:`Gesamtfortschritt`,tasksSuffix:`{{done}}/{{total}} Aufgaben`,agentsSuffix_one:`{{count}} Agent`,agentsSuffix_other:`{{count}} Agents`},q={triggerTitle:`Kontextfenster-Modus`,ctxPrefix:`ctx:`,opsHeading:`Kontextoperationen`,compactNow:`Jetzt komprimieren`,compactNowDesc:`Alte Tool-Ausgaben kürzen`,compactAggressive:`Aggressiv komprimieren`,compactAggressiveDesc:`Maximale Kürzung jetzt`,repairContext:`Kontext reparieren`,repairDesc:`Verwaiste Tool-Use-Blöcke beheben`,debugContext:`Kontext debuggen`,debugDesc:`Größenaufschlüsselung pro Abschnitt`,windowHeading:`Kontextfenster`,keepElide:`{{k}} letzte behalten · {{t}}+ Token kürzen`,fallbackName:`Ausgeglichen`,fallbackDesc:`Standard-Rolling-Komprimierung`},J={kindAssistant:`Assistent`,kindThinking:`Denken`,kindToolCall:`Werkzeugaufruf`,kindToolResult:`Werkzeugergebnis`,kindError:`Fehler`,kindStatus:`Status`,kindSystem:`System`,title:`Chat-Verlauf`,copyTitle:`Agenten-Chatverlauf kopieren`,empty:`Noch kein Chat-Verlauf für diesen Agenten.`},Y={heading:`Autonomiemodus`,titlePrefix:`Autonomie: {{label}}`,descOff:`Volle manuelle Kontrolle — Agent wartet auf deine Eingabe.`,descSuggest:`Agent schlägt nächste Schritte vor, wartet aber auf Genehmigung.`,descAuto:`Agent setzt nach kurzer Bestätigungsverzögerung automatisch fort.`,descEternal:`Agent läuft autonom, bis das Ziel erreicht ist.`,descEternalParallel:`Multi-Agenten autonome Ausführung — Fleet-Modus.`},X={heading:`Nachrichtenwarteschlange`,subtitle:`{{count}} in Warteschlange · Nachrichten werden gesendet, bevor der Agent fertig ist`,btwTitle:`Nebenbei — als Folgenachricht gesendet, ohne den laufenden Agent zu unterbrechen`,steerTitle:`Lenken — unterbricht den laufenden Agent und leitet ihn mit dieser Nachricht um`,queueTitle:`Eingereiht — zurückgehalten bis der aktuelle Agent-Lauf endet, dann in Reihenfolge gesendet`,sortNewestTitle:`Nach neuesten sortiert — klicken für älteste zuerst`,sortOldestTitle:`Nach ältesten sortiert — klicken für neueste zuerst`,newest:`Neueste`,oldest:`Älteste`,clear:`Leeren`,clearTitle:`Alle Nachrichten aus der Warteschlange löschen`,closeTitle:`Schließen`,emptyTitle:`Warteschlange ist leer`,emptyBody:`Nutze die btw-/steer-/„Zur Warteschlange“-Schaltflächen neben der Eingabe, um Nachrichten hinzuzufügen. Eingereihte Einträge werden in Reihenfolge gesendet, wenn der aktuelle Agent-Lauf endet.`,removeTitle:`Aus Warteschlange entfernen`,footer:`Nachrichten werden in Ankunftsreihenfolge gesendet, wenn der aktuelle Agent-Lauf endet. Nutze die Sortierung, um neueste zuerst zu sehen.`},Z={heading:`Sitzungs-Checkpoints`,countSuffix_one:`{{count}} Checkpoint`,countSuffix_other:`{{count}} Checkpoints`,description:`Sitzung zu einem beliebigen Checkpoint zurückspulen. Nachrichten und Dateiänderungen kehren zu diesem Punkt zurück — das LLM setzt von dort fort, als wäre nichts danach passiert.`,emptyTitle:`Noch keine Checkpoints`,emptyBody:`Checkpoints werden automatisch bei jeder gesendeten Nachricht erstellt. Sende ein paar Nachrichten und komme zurück.`,latest:`aktuell`,msgSuffix_one:`{{count}} Nachricht`,msgSuffix_other:`{{count}} Nachrichten`,footerPre:`Beliebigen Checkpoint zum Zurückspulen klicken`,footerPost:`zum Schließen`},Q={statusActive:`Aktiv`,statusPaused:`Pausiert`,statusDone:`Erledigt`,statusFailed:`Fehlgeschlagen`,statusAbandoned:`Aufgegeben`,heading:`Ziel`,refined:`Verfeinert`,progress:`Fortschritt`,iterations:`Iterationen`,deliverables:`Lieferobjekte`,recentActivity:`Letzte Aktivität`},$={cleanTitle_one:`{{count}} verwaisten Worktree entfernen?`,cleanTitle_other:`{{count}} verwaiste Worktrees entfernen?`,cleanMessage:`Entfernt jeden übriggebliebenen Git-Worktree + wstack/ap-Branch vorheriger Läufe zwangsweise. Nicht gemergte Arbeit darin geht verloren.`,cleanConfirm:`Verwaiste entfernen`,orphanCount_one:`{{count}} verwaister Worktree aus vorherigen Läufen`,orphanCount_other:`{{count}} verwaiste Worktrees aus vorherigen Läufen`,andMore:`…und {{count}} weitere`,cleanButtonTitle:`Alle verwaisten Worktrees + Branches zwangsweise entfernen`,removed_one:`✓ {{count}} verwaister Worktree entfernt.`,removed_other:`✓ {{count}} verwaiste Worktrees entfernt.`,cleanupFailed:`Bereinigung fehlgeschlagen`,lanesHeading:`Worktrees`,base:`Basis`,isolatedCount_one:`{{count}} isoliert`,isolatedCount_other:`{{count}} isoliert`,statusAllocating:`zuweisend`,statusActive:`aktiv`,statusCommitting:`committend`,statusMerging:`mergend`,statusMerged:`gemergt`,statusConflict:`Konflikt`,statusFailed:`fehlgeschlagen`,conflictBadge:`KONFLIKT`,graphAria:`Worktree-Branch-Graph ab {{base}}`,mergedLabel:`✓ gemergt → {{base}}`},ee={heading:`Laufende Prozesse`,subtitle:`{{active}} aktiv · {{total}} gesamt`,killAll:`Alle beenden`,emptyTitle:`Keine Prozesse verfolgt`,emptyBody:`Prozesse erscheinen hier, wenn der Agent bash- oder exec-Tools ausführt. Aktive Prozesse zeigen eine pulsierende LED.`,pidLabel:`PID {{pid}}`,protected:`geschützt`,protectedTitle:`Geschützt — überlebt kill/killAll`,killTitle:`PID {{pid}} beenden`},te={tooLarge:`Diff ausgelassen (Datei zu groß für die Inline-Darstellung).`},ne={placeholder:`Ausweichmodell hinzufügen…`,emptyHint:`Wird in Reihenfolge versucht, wenn das primäre Modell ratelimitiert oder hängt.`,moveUp:`Nach oben`,moveDown:`Nach unten`,manualPlaceholder:`anbieter/modell`,addTitle:`Modellreferenz hinzufügen`},re={loading:`Sitzungen werden geladen...`,apiUnavailable:`Sitzungs-API nicht verfügbar:`,empty:`Keine Live-Sitzungen. Öffne eine weitere wstack-Instanz, um sie hier zu sehen.`,heading:`Live-Sitzungen ({{count}})`,autoRefresh:`Auto-Aktualisierung alle 5 s`,pidLabel:`PID {{pid}}`,agentMeta:`{{iter}} Iterationen · {{tools}} Tools · {{ago}}`,andMore:`... und {{count}} weitere`,noAgents:`Keine Agents`},ie={applyTitle:`Die bearbeitete Version auf die Festplatte schreiben`,applying:`Anwenden…`,applied:`Angewandt`,apply:`Anwenden`},ae={showStack_one:`Stack-Trace zeigen ({{count}} Frame)`,showStack_other:`Stack-Trace zeigen ({{count}} Frames)`,hideStack_one:`Stack-Trace verbergen ({{count}} Frame)`,hideStack_other:`Stack-Trace verbergen ({{count}} Frames)`},oe={liveHeading:`Live`,clients:`Clients`,agents:`Agents`,model:`Modell`,mode:`Modus`,toolCalls:`Tool-Aufrufe`,displayHeading:`Anzeige`,statsHud:`Stats-HUD`,legends:`Legenden`,minimap:`Minimap`,zoomControls:`Zoom-Steuerung`,animateWires:`Kabel animieren`,backgroundHeading:`Hintergrund`,bgDots:`Punkte`,bgLines:`Linien`,bgCross:`Kreuz`,bgNone:`Keine`},se={noParams:`(keine Parameter)`,itemCount_one:`{{count}} Element`,itemCount_other:`{{count}} Elemente`,keyCount_one:`{{count}} Schlüssel`,keyCount_other:`{{count}} Schlüssel`},ce={roleYou:`Du`,roleTool:`Tool`,roleThinking:`Denken`,roleAssistant:`Assistent`,inputLabel:`Eingabe`,downloadTitle:`Als Datei herunterladen`,empty:`(leer)`,hideDetails:`Details verbergen`,showDetails:`Details zeigen`,showDetailsLines_one:`Details zeigen ({{count}} Zeile)`,showDetailsLines_other:`Details zeigen ({{count}} Zeilen)`,editHint:`⌘/Ctrl+Enter zum Speichern · Esc zum Abbrechen`,saveResend:`Speichern & erneut senden`,thinkingProcess:`Denkprozess`,thinkingMeta:`Iter {{iter}} · {{dur}} · {{lines}}`,replay:`Replay`,linesSuffix_one:`{{count}} Zeile`,linesSuffix_other:`{{count}} Zeilen`,copyLog:`Log kopieren`,showFullLog:`Vollständiges Log zeigen`,typing:`Tippt…`,noContent:`Kein Inhalt`,imageNotRetained:`Bildvorschau wird nach dem Neuladen nicht behalten`,failedToSend:`⚠ Senden fehlgeschlagen`,autoPaused:`⚠️ _Auto-Fortsetzen pausiert — maximale aufeinanderfolgende automatische Züge erreicht. Tippe etwas zum Fortfahren (Autonomie bleibt an)._`,rsIterations:`Iterationen: {{n}}`,rsTools:`Tool-Aufrufe: {{n}}`,rsElapsed:`Verstrichen: {{s}}`,rsCost:`Kosten: {{c}}`,useInput:`Eingabe: {{n}}`,useOutput:`Ausgabe: {{n}}`,useCacheRead:`Cache-Lesung: {{n}}`,useCost:`Kosten: {{c}}`,renderedLabel:`Gerendert`,rawLabel:`Raw`,showRenderedTitle:`Gerendertes Markdown zeigen`,showRawTitle:`Raw-Markdown-Quelle zeigen`,editTitle:`Diesen Prompt bearbeiten & erneut senden`,editLabel:`Bearbeiten`,unpinTitle:`Lösen`,pinTitle:`Diese Antwort anheften`,pinnedLabel:`Angeheftet`,pinLabel:`Anheften`,regenerateTitle:`Diese Antwort neu generieren`,retryLabel:`Erneut versuchen`},le={toolFallback:`Tool`,toolFailed:`Tool fehlgeschlagen`},ue={heading:`Tastaturkürzel`,footerPre:`Jederzeit`,footerPost:`drücken, um diese Liste wieder zu öffnen.`,sectionGlobal:`Global`,sectionTuiParity:`TUI-Panel-Parität`,sectionFleet:`Fleet & Agents`,sectionChatInput:`Chat-Eingabe`,sectionChat:`Chat`,sectionChatNav:`Chat-Navigation (beim Nicht-Tippen)`,dCommandPalette:`Befehls-Palette öffnen`,dShowOverlay:`Diese Kürzel-Overlay zeigen`,dToggleSidebar:`Seitenleiste umschalten`,dOpenPanel:`Seitenleiste öffnen (Session, Agents, Verlauf, Dateien, Changes, Mailbox, Skills, Office Map)`,dDesignStudio:`Design-Studio-Seitenleiste öffnen`,dWorktrees:`Worktree-Seitenleiste öffnen`,dFocusInput:`Nachrichteneingabe fokussieren`,dSessionPanel:`Session-Panel`,dFleetOverlay:`Fleet-Monitor-Overlay`,dAgentsOverlay:`Agents-Monitor-Overlay`,dWorktreeMonitor:`Worktree-Monitor`,dPlanPanel:`Plan-Panel`,dTodosPanel:`Todos-Panel`,dQueuePanel:`Queue-Panel`,dProcessMonitor:`Prozess-Monitor`,dGoalPanel:`Ziel-Panel`,dSessionsDashboard:`Session-Dashboard`,dOfficeMap:`Koordinator-Office-Map`,dDockPicker:`Dock-Chip-Wähler`,dOpenFleet:`Fleet-Monitor-Overlay öffnen`,dOpenAgents:`Agents-Monitor-Overlay öffnen`,dNavigateAgents:`Agents im Monitor navigieren`,dSelectAgent:`Fokussierten Agent wählen`,dCloseOverlay:`Aktives Overlay schließen`,dSendMessage:`Nachricht senden`,dNewline:`Zeilenumbruch einfügen`,dRecallPrev:`Vorherigen Prompt abrufen (bei leerer Eingabe)`,dRecallNext:`Nächsten Prompt abrufen`,dSlashPopup:`Slash-Befehl-Popup öffnen`,dAutocomplete:`Hervorgehobenen Befehl autovervollständigen`,dDismissPopup:`Popup schließen / Eingabe löschen`,dSearchChat:`Im aktuellen Chat suchen`,dClearContext:`Kontext löschen (wie /clear)`,dNewSession:`Neue Session starten (wie /new)`,dExportMarkdown:`Chat als Markdown exportieren`,dModelSwitcher:`Quick-Model-Switcher-Overlay`,dCompactDensity:`Kompakte UI-Dichte umschalten`,dAbortRun:`Aktuellen Run abbrechen (während läuft)`,dFocusNext:`Nächste Nachricht fokussieren (Alias: ↓)`,dFocusPrev:`Vorherige Nachricht fokussieren (Alias: ↑)`,dJumpFirst:`Zur ersten Nachricht springen`,dJumpLast:`Zur letzten Nachricht springen`,dCopyFocused:`Fokussierten Nachrichtentext kopieren`,dClearFocused:`Fokussierte Nachricht löschen`},de={titleFallback:`Live SDD Board`,defaultModelTitle:`Run-Standard-Workermodell (pro-Task-Overrides haben Vorrang)`,graphLabel:`Graph`,kanbanLabel:`Kanban`,retryAllTitle:`Jede fehlgeschlagene Task zurück in pending einreihen`,retryFailed:`Fehlgeschlagene erneut ({{count}})`,resume:`Fortsetzen`,pause:`Pausieren`,stop:`Stopp`,cleanTitle:`Git-Worktrees + wstack/ap-Branches des Runs entfernen`,cleanWorktrees:`Worktrees bereinigen`,rollbackTitle:`{{count}} gemergte(s) Commit(s) auf {{base}} revertieren`,rollback:`Rollback ({{count}})`,stopping:`Stoppt…`,destroying:`Zerstört…`,destroyTitle:`Stoppen, alle Worktrees entfernen, optional gemergte Commits revertieren und das SDD-Projekt löschen`,destroy:`Zerstören`,statDone:`fertig`,statRunning:`läuft`,statFailed:`fehlgeschlagen`,statWave:`welle`,statElapsed:`verstrichen`,noActiveWorkers:`keine aktiven Worker`,deadlock:`Deadlock — Tasks blockiert durch fehlgeschlagene Arbeit:`,noRunTitle:`Kein aktiver SDD-Run.`,noRunBody:`Starte einen im New-SDD-Project-Assistenten oder per /sdd execute in der CLI — Agents erscheinen hier live, jeder in einem isolierten Worktree.`,clickTaskHint:`Task für Details klicken`,lcClean:`Bereinigen`,lcRollback:`Rollback`,lcDestroy:`Zerstören`,lcFailed:`{{op}} fehlgeschlagen: {{reason}}`,lcUnknownError:`unbekannter Fehler`,lcWorktrees_one:`{{count}} Worktree entfernt`,lcWorktrees_other:`{{count}} Worktrees entfernt`,lcCommits_one:`{{count}} Commit revertiert`,lcCommits_other:`{{count}} Commits revertiert`,lcDeleted:`gelöscht {{items}}`,lcNothing:`nichts zu tun`,lcNote:`{{op}}: {{body}} — Hinweis: {{reason}}`,lcOk:`{{op}}: {{body}}`},fe={backTitle:`Zur Aktivität zurück`,workingOn:`arbeitet an dieser Task`,assigned:`zugewiesen`,metaPriority:`Priorität`,metaType:`Typ`,metaDuration:`Dauer`,metaElapsed:`Verstrichen`,metaRetries:`Versuche`,metaWorktree:`Worktree`,workerModel:`Worker-Modell`,runDefault:`Run-Standard: {{model}}`,runDefaultPlaceholder:`Run-Standard`,runDefaultPlaceholderModel:`Run-Standard ({{model}})`,verificationCmd:`Verifikationsbefehl`,gatesCompletion:`schließt Completion ab (exit 0)`,verifyPlaceholder:`z. B. pnpm vitest run path/to/file`,addVerify:`+ Verifikationsbefehl hinzufügen`,description:`Beschreibung`,timeline:`Zeitleiste`,dependsOn:`Hängt ab von`,blocks:`Blockiert`,newWorkerPlaceholder:`Neuer Worker-Name…`,confirmStop:`Diese laufende Task stoppen?`,confirmDelete:`Diese Task aus dem Run löschen?`,retryTitle:`Diese Task zurück in pending einreihen`,reassign:`Neu zuweisen`,stopTitle:`Den Worker auf dieser Task abbrechen`,splitTitle:`Diese Task in separate Worker-Sub-Tasks aufteilen`,split:`Aufteilen`,splitHint:`Eine Sub-Task pro Zeile — Titel :: Beschreibung (Beschreibung optional)`,splitPlaceholder:`Datenlayer schreiben :: Repository hinzufügen
4
- UI verdrahten`,splitInto:`In Sub-Tasks aufteilen`,deleteTitle:`Diese nicht gestartete Task aus dem Run entfernen`},pe={phaseStart:`Start`,phaseInterview:`Interview`,phaseSpecReview:`Spec-Review`,phasePlanning:`Planung`,phaseTaskReview:`Task-Review`,phaseRunning:`Läuft`,phaseDone:`Fertig`,titleFallback:`Neues SDD-Projekt`,questionsSuffix:`{{cur}}/{{max}} Fragen`,tasksSuffix:`{{count}} Tasks`,runCfgTitle:`Run-Konfiguration — Standardmodell + Fallback-Kette`,modelsLabel:`Modelle`,startRun:`Run starten`,defaultWorkerModel:`Standard-Worker-Modell`,leaderDefaultPlaceholder:`Leader / Session-Standard`,useSessionDefault:`Session-Standard verwenden`,fallbackChain:`Fallback-Kette`,appliesToAll:`Gilt für jede Task. Pro-Task vom Live-Board nach Run-Start überschreiben.`,parallelAgents:`Parallele Agents`,isolateWorktrees:`In Git-Worktrees isolieren`,worktreeOn:`Jede Task läuft im eigenen Worktree, bei Abschluss squash-gemergt.`,worktreeOff:`Tasks laufen direkt auf dem aktuellen Branch (keine Isolation).`,goalPrompt:`Was willst du bauen?`,goalPlaceholder:`z. B. OAuth-Login (Google + GitHub) mit Session-Management hinzufügen`,startingInterview:`Interview startet…`,startInterview:`Interview starten`,introBody:`Ein isolierter Agent interviewt dich, um eine Spec zu bauen, zerlegt sie in einen abhängigkeitsgeordneten Task-Graphen, dann führt eine echte Multi-Agenten-Fleet ihn aus — live auf dem Board schauen.`,taskGraphSummary:`Task-Graph · {{count}} Tasks, abhängigkeitsgeordnet`,dragToExplore:`ziehen zum Erkunden`,show:`zeigen`,goalLabel:`Ziel`,implementationPlan:`Implementationsplan`,approveSpec:`Spec genehmigen → Implementation planen`,approveTasks:`Tasks genehmigen`,approvePlan:`Plan genehmigen`,answerPlaceholder:`Frage beantworten…`,changePlaceholder:`Änderung anfordern…`},me={emptyDir:`leer`,loadFailed:`Dateien konnten nicht geladen werden: {{error}}`,expandAllTitle:`Alle Verzeichnisse aufklappen`,expandAll:`Alle aufklappen`,collapseAllTitle:`Alle Verzeichnisse zuklappen`,collapse:`Zuklappen`,folders_one:`{{count}} Ordner`,folders_other:`{{count}} Ordner`,currentDirTitle:`Aktuelles Verzeichnis: {{path}}`,navigateToTitle:`Nach {{path}} navigieren`,filesSuffix_one:`{{count}} Datei`,filesSuffix_other:`{{count}} Dateien`,goToDir:`zum Ordner`,navigateParentTitle:`Zum übergeordneten Ordner von {{path}} navigieren`,parentDirectory:`übergeordneter Ordner`,noFiles:`Keine Dateien gefunden`,copyAbsPath:`Absoluten Pfad kopieren`,copyRelPath:`Relativen Pfad kopieren`,openInTerminal:`Im Terminal öffnen`,openInFileManager:`Im Dateimanager öffnen`,mentionInChat:`Im Chat erwähnen`,copyPath:`Pfad kopieren`},he={sendSelectionAction:`Auswahl an Chat senden`,noFilesOpen:`Keine Dateien offen`,selectToEdit:`Wähle eine Datei aus dem Explorer zum Bearbeiten`,sendSelectedTitle:`Ausgewählte Zeilen an Chat senden`,mentionFileTitle:`Diese Datei im Chat erwähnen`,sendToChat:`An Chat senden`,mentionFile:`Datei erwähnen`,loadingEditor:`Editor wird geladen…`,selectTab:`Wähle einen Tab um den Inhalt zu sehen`},ge={loading:`Analytics werden geladen…`,heading:`Analytics-Dashboard`,autoRefresh:`Auto-Aktualisierung alle 10 s`,liveSessions:`Live-Sessions`,agents:`Agents`,agentsActive:`{{count}} aktiv`,totalEvents:`Ereignisse gesamt`,categoriesSub:`{{count}} Kategorien`,toolCalls:`Tool-Aufrufe`,iterationsSub:`{{count}} Iterationen`,sessionCost:`Session-Kosten`,tokensSub:`{{input}} rein / {{output}} raus`,sessionDuration:`Session-Dauer`,messagesSub:`{{count}} Nachrichten`,eventsByCategory:`Ereignisse nach Kategorie`,noEvents:`Noch keine Ereignisse aufgezeichnet.`,topEvents:`Top-Ereignisse`,activeSessionUsage:`Aktive Session-Nutzung`,provider:`Anbieter`,model:`Modell`,inputTokens:`Eingabe-Token`,outputTokens:`Ausgabe-Token`,cacheRatio:`Cache-Verhältnis`,filesRead:`Gelesene Dateien`,noSession:`Keine aktive Session oder warte auf Daten…`,healthErrors:`Health & Fehler`,errorEvents:`Fehler-Ereignisse`,warningEvents:`Warn-Ereignisse`,cacheHitRate:`Cache-Trefferquote`,totalCategories:`Kategorien gesamt`,waitingData:`Warte auf Daten…`,recentEvents:`Letzte Ereignisse`,noRecentEvents:`Keine aktuellen Ereignisse. Interagiere mit der UI um Ereignisse zu erzeugen.`},_e={heading:`Prompt-Bibliothek`,searchPlaceholder:`Prompts suchen…`,newPrompt:`+ Neues Prompt`,all:`Alle`,recent:`◷ Zuletzt`,favorites:`★ Favoriten`,noMatch:`Keine passenden Prompts.`,newPromptHeading:`Neues Prompt`,titlePlaceholder:`Titel *`,descPlaceholder:`Einzeilige Beschreibung`,categoryPlaceholder:`Kategorie`,tagsPlaceholder:`tags, kommasepariert`,contentPlaceholder:`Prompt-Inhalt * — {{name}} für Variablen`,variables:`Variablen`,addVar:`+ Var`,varNamePlaceholder:`Name`,varDescPlaceholder:`Beschreibung`,removeVarTitle:`Variable entfernen`,required:`erforderlich`,multiline:`mehrzeilig`,enumPlaceholder:`enum: a, b, c`,savePrompt:`Prompt speichern`,saveFailed:`Prompt konnte nicht gespeichert werden.`,titleContentRequired:`Titel und Inhalt sind erforderlich.`,toggleFavoriteTitle:`Favorit umschalten`,selectOption:`— wählen —`,fillMissing:`Ausfüllen: {{missing}}`,insertIntoChat:`In Chat einfügen`,selectPromptHint:`Prompt zum Vorschauen und Einfügen wählen.`},ve={scopeProject:`Projekt`,scopeGlobal:`Global`,scopeBundled:`Gebündelt`,timeoutError:`Zeitüberschreitung der Anfrage. Bitte erneut versuchen.`,updateFailed:`Update fehlgeschlagen`,saveFailed:`Speichern fehlgeschlagen`,uninstallFailed:`Deinstallation fehlgeschlagen`,noSkillSelected:`Kein Skill gewählt`,selectSkillHint:`Wähle einen Skill aus der Sidebar um die Doku zu sehen`,goToChat:`Zum Chat`,openSourceRepo:`Quell-Repo öffnen`,copySourceUrl:`Quell-URL kopieren`,updatedLabel:`↑ Aktualisiert: {{list}}`,upToDateLabel:`— Aktuell: {{list}}`,errorsLabel:`✗ {{list}}`,checkUpdatesTitle:`Auf Updates prüfen`,exportTitle:`Skill als .md exportieren`,editTitle:`Skill bearbeiten`,uninstallTitle:`Skill deinstallieren`,closeTitle:`Schließen und zum Chat`,backTitle:`Zurück`,forwardTitle:`Vor`,relatedFiles:`Verwandte Dateien`,references:`Referenzen`,goToSkillTitle:`Zu {{name}}`,loadingContent:`Skill-Inhalt wird geladen…`,editingLabel:`Bearbeite {{name}}`,editStats:`{{lines}} Zeilen · {{words}} Wörter · {{chars}} Zeichen`,charsWarningFmt:`⚠ {{used}} MB / {{limit}} MB`,draftSaved:`Entwurf gespeichert`,draftRestored:`Entwurf wiederhergestellt`,discardDraft:`Entwurf verwerfen`,splitViewTitle:`Geteilte Ansicht`,hidePreviewTitle:`Vorschau verbergen`,contentPlaceholder:`Skill-Inhalt (Markdown)...`,loadFailed:`Skill-Inhalt konnte nicht geladen werden`,noContent:`Kein Skill-Inhalt verfügbar`,uninstallSkillHeading:`Skill deinstallieren`,uninstallConfirm:`{{name}} deinstallieren?`,uninstallRemovePath:`Dies entfernt den Skill aus {{path}} und kann nicht rückgängig gemacht werden.`,uninstallAction:`Deinstallieren`},ye={sessionStats:`Session-Stats`,clients:`Clients`,input:`Eingabe`,output:`Ausgabe`,cost:`Kosten`,agentsSuffix:`Agents`,upPrefix:`seit {{time}}`,webuiClient:`WebUI-Client`,disconnected:`Getrennt`,connected:`Verbunden`,tuiClient:`TUI-Client`,terminal:`Terminal`,repl:`REPL`,coordinator:`KOORDINATOR`,fleetSummary:`Fleet-Zusammenfassung`,toolCallsLabel:`Tool-Aufrufe`,tokensLabel:`Token`,coordinatingFleet:`Koordiniert Fleet`,donePrefix:`✓ fertig ·`,failedPrefix:`✕ fehlgeschlagen ·`,seenPrefix:`vor {{time}} gesehen`,availableDesk:`Freier Schreibtisch`,mailboxHub:`Postfach-Zentrale`,unreadSuffix_one:`{{count}} ungelesen`,unreadSuffix_other:`{{count}} ungelesen`,allClear:`Alles erledigt`,total:`Gesamt`,unreadLabel:`Ungelesen`,liveActivity:`Live-Aktivität`,waitingActivity:`Warte auf Aktivität…`,now:`jetzt`,fleetHq:`WrongStack Fleet-Zentrale`,live:`LIVE`,legendStatus:`Status`,legendActive:`Aktiv`,legendIdle:`Idle`,legendError:`Fehler`,legendConnections:`Verbindungen`,legendMail:`Mail`,legendTask:`Task`,legendStatusConn:`Status`,arrange:`Anordnen`,arrangeTitle:`Knoten zurück zum Grundriss`,feed:`Feed`,feedTitle:`Live-Aktivitäts-Feed umschalten`,broadcast:`Broadcast`,broadcastTitle:`Nachricht an jede Live-Session im Projekt`,broadcastToAll:`An alle Sessions broadcasten`,broadcastPlaceholder:`Nachricht an jeden Live-Agent im Projekt…`,broadcastSendHint:`⌘/Ctrl+Enter zum Senden`,openFullView:`Vollständige Operationsansicht öffnen`,rowStatus:`Status`,rowModel:`Modell`,rowTool:`Tool`,rowIterations:`Iterationen`,rowToolCalls:`Tool-Aufrufe`,rowTokensIn:`Token rein`,rowTokensOut:`Token raus`,rowTokensTotal:`Token gesamt`,rowContext:`Kontext`,rowCost:`Kosten`,rowLastSeen:`Zuletzt gesehen`,rowSurface:`Oberfläche`,rowBranch:`Branch`,rowPid:`PID`,rowDir:`Verz.`,rowAgents:`Agents`,rowUptime:`Uptime`,rowConnections:`Verbindungen`,rowTotalMessages:`Nachrichten gesamt`,rowUnread:`Ungelesen`,recent:`Neueste`,noSubject:`(kein Betreff)`,fullOperationStream:`Vollständiger Operations-Stream`,closeEsc:`Schließen (Esc)`,idleDesk:`Freier Platz`,fleetHqLabel:`Fleet-Zentrale`,clientsSuffix_one:`{{count}} Client`,clientsSuffix_other:`{{count}} Clients`,taskFallback:`Task`,controlLabel:`Steuerung`},be={installTitle:`Skill installieren`,createTitle:`Skill erstellen`,exportTitle:`Alle Skills als .zip exportieren`,checkUpdatesTitle:`Auf Updates prüfen (alle Skills)`,searchPlaceholder:`Skills suchen…`,loading:`Lädt…`,noSkills:`Keine Skills installiert`,noMatch:`Keine Skills passen zum Filter`,noDescription:`Keine Beschreibung`,scopeForeign:`Fremd`,installHeading:`Skill Installieren`,installHint:`GitHub-Repo-Referenz (owner/repo) oder vollständige URL eingeben.`,installPlaceholder:`z. B. wrongstack/skill-name oder https://github.com/owner/repo`,installScope:`Installations-Scope:`,installBtn:`Installieren`,installedMsg:`Installiert: {{names}}`,installFailed:`Installation fehlgeschlagen`,createHeading:`Skill Erstellen`,createHint:`Neuen Skill scaffolding. Erste Zeile ist der Trigger; weitere Zeilen die Beschreibung.`,nameLabel:`Name`,namePlaceholder:`z. B. mein-neuer-skill`,descLabel:`Beschreibung / Trigger`,descPlaceholder:`Verwende diesen Skill bei <Trigger-Situation>.
5
- Trigger: User sagt "Schlüsselwort", "anderes".`,saveIn:`Speichern in:`,createBtn:`Skill Erstellen`,createdMsg:`Erstellt: {{name}}`,createFailed:`Erstellung fehlgeschlagen`},xe={noEvents:`Noch keine Ereignisse.`},Se={pickHint:`Kit wählen — der Agent hält sich daran.`,gallery:`Galerie`,galleryTitle:`Live-Vorschau-Galerie öffnen`,stackTitle:`Ziel-Stack`,loading:`Kits werden geladen…`,notFound:`Keine Design-Kits gefunden.`,bestFor:`Am besten für:`,light:`Hell`,dark:`Dunkel`},Ce={detached:`(losgelöst)`,count_one:`{{count}} Worktree`,count_other:`{{count}} Worktrees`,baseSuffix:` · Basis {{base}}`,baseLabel:`Basis`,cleanOrphans:`Verwaiste entfernen`,cleanOrphansTitle:`Alle verwaisten Worktrees entfernen`,liveBusyTitle:`Ein Lauf ist aktiv — zuerst stoppen`,rescanTitle:`Neu scannen`,removed_one:`{{count}} Worktree entfernt.`,removed_other:`{{count}} Worktrees entfernt.`,failed:`Fehlgeschlagen`,mergedIntoBase:`{{branch}} in Basis zusammengeführt.`,conflictMerge:`Konflikt beim Zusammenführen von {{branch}}: {{files}}`,seeGit:`siehe git`,mergeFailed:`Zusammenführen fehlgeschlagen: {{reason}}`,unknownReason:`unbekannt`,mergeConfirmTitle:`{{branch}} in {{base}} zusammenführen?`,mergeConfirmMsg:`Squash-merged diesen Branch auf den Basis-Branch. Bricht sauber ab bei Konflikten.`,mergeAction:`Zusammenführen`,removeConfirmTitle:`{{branch}} entfernen?`,removeConfirmMsg:`Entfernt das Worktree-Checkout und löscht seinen Branch. Nicht zusammengeführte Arbeit geht verloren.`,empty:`Keine Worktrees.`,emptyHint:`SDD-/AutoPhase-Läufe erstellen hier isolierte Worktrees. Verwaiste abgestürzter Läufe erscheinen ebenfalls.`,actOpenTerm:`Im Terminal öffnen`,actOpenFolder:`Ordner öffnen`,actViewChanges:`Änderungen ansehen`,actMerge:`In Basis zusammenführen`,actRemove:`Entfernen / verwerfen`,live:`live`,noUncommitted:`Keine ungespeicherten Änderungen`,commitsAhead_one:`{{count}} Commit voraus`,commitsAhead_other:`{{count}} Commits voraus`,more:`…{{count}} mehr`},we={heading:`Bürokarte`,headingHint:`Visualisieren Sie Ihre Flotte als Bürogrundriss mit Live-Agent-Status.`,statAgents:`Agenten`,statMail:`Post`,unreadSuffix:` ungelesen`,sectionView:`Ansicht`,sectionDisplay:`Anzeige`,sectionBackground:`Hintergrund`,sectionRecent:`Letzte Aktivität`,eventsTrackedSuffix:` Ereignisse verfolgt`,recentHint:`Post-Sends, Agent-Spawns und Statusänderungen erscheinen hier.`,sectionShortcuts:`Tastenkürzel`,sectionLegend:`Legende`,hudLabel:`HUD`,hudDesc:`Echtzeit-Sitzungsstatistik-Overlay anzeigen`,hudToggle:`HUD umschalten`,minimapLabel:`Minimap`,minimapDesc:`Übersichts-Minimap anzeigen`,minimapToggle:`Minimap umschalten`,controlsLabel:`Steuerung`,controlsDesc:`Zoom- und Fit-Steuerung anzeigen`,controlsToggle:`Steuerung umschalten`,animateLabel:`Kanten animieren`,animateDesc:`Fluss auf aktiven Verbindungen animieren`,animateToggle:`Kantenanimation umschalten`,legendLabel:`Legende anzeigen`,legendDesc:`Status- und Verbindungslegende anzeigen`,legendToggle:`Legende umschalten`,feedLabel:`Live-Feed`,feedDesc:`Unterer Streifen mit letzter prozessübergreifender Aktivität`,feedToggle:`Live-Feed umschalten`,fitView:`Anpassen`,zoomIn:`Vergrößern`,zoomOut:`Verkleinern`,resetZoom:`Zoom zurücksetzen`,legendActive:`Aktiv (läuft)`,legendIdle:`Inaktiv`,legendError:`Fehler`,legendOffline:`Offline`,bg:{dots:`Punkte`,lines:`Linien`,cross:`Kreuz`,none:`Keine`}},Te={nav:e,brand:t,status:n,menu:r,sidePanel:i,history:a,agents:o,changes:s,inspector:c,nextSteps:l,mailbox:u,sessions:d,sessionPanel:f,fleet:p,context:m,refine:h,specs:g,refresh:_,board:v,debug:y,providerModels:b,dock:x,agentsMonitor:S,terminal:C,sessionWatch:w,sideEffects:T,monitor:E,sdd:D,toolResult:O,design:k,autoPhase:A,collab:j,connection:M,mode:N,cost:P,model:F,modelSwitcher:I,work:L,todos:R,task:z,toolGroup:B,fileRef:V,plan:H,filePicker:U,toast:W,search:G,phase:K,ctxMode:q,transcript:J,autonomy:Y,queue:X,checkpoint:Z,goal:Q,worktree:$,process:ee,diff:te,fallback:ne,liveSessions:re,monacoDiff:ie,errorBody:ae,officeMap:oe,toolInput:se,message:ce,watch:le,shortcuts:ue,sddBoard:de,sddTask:fe,sddWizard:pe,fileExplorer:me,codeEditor:he,analytics:ge,promptLib:_e,skillDetail:ve,office:ye,skillsList:be,timeline:xe,designStudio:Se,worktrees:Ce,officeSettings:we};export{o as agents,S as agentsMonitor,ge as analytics,A as autoPhase,Y as autonomy,v as board,t as brand,s as changes,Z as checkpoint,he as codeEditor,j as collab,M as connection,m as context,P as cost,q as ctxMode,y as debug,Te as default,k as design,Se as designStudio,te as diff,x as dock,ae as errorBody,ne as fallback,me as fileExplorer,U as filePicker,V as fileRef,p as fleet,Q as goal,a as history,c as inspector,re as liveSessions,u as mailbox,r as menu,ce as message,N as mode,F as model,I as modelSwitcher,ie as monacoDiff,E as monitor,e as nav,l as nextSteps,ye as office,oe as officeMap,we as officeSettings,K as phase,H as plan,ee as process,_e as promptLib,b as providerModels,X as queue,h as refine,_ as refresh,D as sdd,de as sddBoard,fe as sddTask,pe as sddWizard,G as search,f as sessionPanel,w as sessionWatch,d as sessions,ue as shortcuts,T as sideEffects,i as sidePanel,ve as skillDetail,be as skillsList,g as specs,n as status,z as task,C as terminal,xe as timeline,W as toast,R as todos,B as toolGroup,se as toolInput,O as toolResult,J as transcript,le as watch,L as work,$ as worktree,Ce as worktrees};
@@ -1,5 +0,0 @@
1
- var e={chat:`Sesión`,agents:`Agentes`,history:`Historial`,files:`Archivos`,changes:`Cambios`,mailbox:`Buzón`,skills:`Habilidades`,worktrees:`Worktrees`,design:`Estudio de diseño`,officemap:`Mapa de oficinas`,settings:`Ajustes`,sddwizard:`Nuevo proyecto SDD`,specs:`Especificaciones`,sddboard:`Tablero en vivo`,autophase:`Fases`,fleet:`Flota`,inspector:`Inspector`,prompts:`Prompts`},t={returnToChat:`{{name}} — volver al chat`,returnToChatDefault:`WrongStack — volver al chat`},n={connected:`Conectado`,disconnected:`Desconectado`,idle:`Inactivo`,thinking:`Pensando`,running:`En ejecución`,waiting:`En espera`,done:`Completado`,stopped:`Detenido`},r={moreWithHidden:`Más, {{count}} elementos ocultos`,moreOptions:`Más opciones`,moreCompactHidden:`Más — {{count}} paneles/vistas ocultos, paleta, tema, monitores`,moreCompact:`Más — paleta, tema, monitores`,moreFull:`Más — paleta, tema, atajos, monitores`,commandPalette:`Paleta de comandos`,keyboardShortcuts:`Atajos de teclado`,panels:`Paneles`,views:`Vistas`,theme:`Tema`,monitors:`Monitores`,fleetMonitor:`Monitor de flota`,agentsMonitor:`Monitor de agentes`},i={dragHint:`Arrastra para cambiar el tamaño · doble clic para restablecer`,collapse:`Contraer panel (Ctrl+\\)`},a={openDashboard:`Abrir panel de sesiones`},o={pending:`pendiente…`,empty:`Aún no hay agentes`,emptyHint:`Los subagentes aparecen aquí cuando la flota está activa.`,runningCount:`{{count}} en ejecución`,totalCount:`{{count}} en total`,openFull:`Abrir vista completa de agentes`,agentsLive:`AGENTES · LIVE`,doneCount:`{{count}} hechos`,failedCount:`{{count}} fallidos`,modelsLabel:`modelos`,shownLabel:`mostrados`,totalLabel:`total`,leaderFleetTotals:`(líder {{leader}} · flota {{fleet}})`,navHintJk:`j/k o ↑↓ para navegar`,escCloseDetail:`· Esc para cerrar el detalle`,noAgentsRunning:`Sin agentes en ejecución.`,contextUsage:`Uso de contexto`,lastToolLabel:`último:`,unknownSession:`Sesión desconocida`,sessionCopyTitle:`Sesión: {{sid}} — clic para copiar`,sessionWord:`sesión`,agentsCountSuffix_one:`{{count}} agente`,agentsCountSuffix_other:`{{count}} agentes`,sessionTitle:`Sesión: {{sid}}`,projectSuffix:` · Proyecto: {{name}}`,statusIdle:`inactivo`},s={fileCount_one:`{{count}} archivo`,fileCount_other:`{{count}} archivos`,refreshTitle:`Actualizar cambios`,loading:`Cargando cambios…`,clean:`Sin cambios — el árbol de trabajo está limpio.`,selectPrompt:`Selecciona un archivo modificado para ver su diff.`,unified:`Unificado`,unifiedTitle:`Diff unificado`,edit:`Editar`,editTitle:`Diff lado a lado editable`,loadingDiff:`Cargando diff…`,diffTimeout:`El diff no llegó. Puede que el archivo haya cambiado o que se perdiera la conexión.`,binary:`Archivo binario — diff no mostrado.`,tooLarge:`Archivo demasiado grande para diff.`},c={showPanel:`Mostrar panel Inspector (Flota / Agentes / Auditoría)`,hidePanel:`Ocultar panel Inspector`,label:`Inspector`,openAudit:`Abrir pestaña Auditoría`,tabFleet:`Flota`,tabAgents:`Agentes`,tabAudit:`Auditoría`,collapseAria:`Contraer panel Inspector`,collapseTitle:`Contraer (Esc)`,noAgentsActive:`Ningún agente activo`,agentsAppearHint:`Los agentes aparecen aquí cuando la flota está activa.`,selected:`{{name}} (seleccionado)`},l={header:`Próximos pasos`,autoSubmitting:`envío automático en`,clickToFill:`clic para rellenar`,clickToFillTitle:`Clic para rellenar: {{text}}`,auto:`auto`,willAutoSubmit:`Envio automático tras la cuenta atrás`},u={onlineCount:`{{count}} en línea`,messages:`Mensajes`,deleteAllTitle:`Eliminar todos los mensajes`,deleteAll:`Eliminar todo`,deleting:`Eliminando…`,purgeTitle:`Purgar mensajes obsoletos/huérfanos`,purge:`Purgar`,purging:`Purgando…`,compact:`Compactar`,compacting:`Compactando…`,compactTitle:`Compactación automática: eliminar caducados, leídos por todos y obsoletos`,compactRemoved:`{{count}} eliminados`,compactExpired:`{{count}} caducados`,compactReadByAll:`{{count}} leídos por todos`,compactStale:`{{count}} obsoletos`,compactRemaining:`{{count}} restantes`,newLabel:`NUEVO`,empty:`Aún no hay mensajes.`,offlineCount:`+{{count}} sin conexión`,timeNow:`ahora`,deleteAllConfirmTitle_one:`¿Eliminar {{count}} mensaje?`,deleteAllConfirmTitle_other:`¿Eliminar todos los {{count}} mensajes?`,deleteAllConfirmBody:`El archivo del buzón se trunca para cada agente. Esto no se puede deshacer.`,purgeConfirmTitle:`¿Purgar mensajes obsoletos?`,purgeConfirmBody:`Elimina los mensajes completados de más de 1 día y los incompletos de más de 7 días. Los mensajes activos se conservan.`,type:{note:`Nota`,ask:`Pregunta`,assign:`Asignación`,steer:`Dirigir`,btw:`Por cierto`,broadcast:`Difusión`,status:`Estado`,result:`Resultado`},emptyDetail:`Ningún mensaje seleccionado`,emptyDetailHint:`Haz clic en un mensaje del panel Buzón para verlo aquí.`,readBy:`Leído por`,backToChat:`Volver al chat`,completed:`Completado`,everyone:`todos`,closeTitle:`Cerrar (Esc)`,replyTo:`En respuesta a: {{id}}`,completedBy:`Completado por {{name}}`,completedByAt:`Completado por {{name}} el {{time}}`,outcome:`Resultado:`,task:`Tarea:`,messageNotFound:`Mensaje no encontrado`,messageNotFoundHint:`Este mensaje puede haber sido eliminado o purgado.`},d={recentSessions:`Sesiones recientes`,deleteEmptyTitle_one:`¿Eliminar {{count}} sesión vacía?`,deleteEmptyTitle_other:`¿Eliminar {{count}} sesiones vacías?`,deleteEmptyConfirmBody:`Las sesiones sin uso de tokens se eliminan del disco.`,filterPlaceholder:`Filtrar por título, modelo, proveedor…`,clearFilter:`Borrar filtro`,noHistory:`Aún no hay historial`,noHistoryHint:`Tus conversaciones aparecerán aquí`,noMatches:`Sin resultados`,noMatchesHint:`Prueba un filtro distinto`,group:{favorites:`Favoritos`,today:`Hoy`,yesterday:`Ayer`,thisWeek:`Esta semana`,earlier:`Anteriores`},nicknamePlaceholder:`Apodo`,empty:`(vacío)`,resuming:`reanudando…`,active:`activa`,renameTitleNickname:`{{nickname}} — original: {{title}}`,renameTitle:`{{title}}
2
-
3
- Doble clic para renombrar`,unfavorite:`Quitar de favoritos`,markFavorite:`Marcar como favorito`,deleteSessionConfirmTitle:`¿Eliminar la sesión?`,deleteSessionConfirmBody:`"{{name}}" se eliminará del disco. Esto no se puede deshacer.`,deleteSessionTitle:`Eliminar sesión`},f={actions:{abort:`Detener`,newSession:`Nueva sesión`,export:`Exportar`,compact:`Comprimir`,newSessionTitle:`Iniciar una nueva sesión (Ctrl+N)`,exportTitle:`Exportar el chat como markdown (Ctrl+E)`,compactTitle:`Comprimir la ventana de contexto`,clearTitle:`Borrar el contexto (Ctrl+L)`},model:`Modelo`,modelTitle:`Cambiar de modelo (Ctrl+M)`,context:`Contexto`,contextTitle:`Haz clic para un desglose del contexto`,sessionLabel:`Sesión`,stats:{messages:`Mensajes`,elapsed:`Transcurrido`,tokens:`Tokens`,cost:`Coste`,iteration:`Iteración`,agents:`Agentes`,tokensSub:`{{in}} entra / {{out}} sale`,iterationOf:`de {{max}}`,agentsRunning:`{{count}} en ejecución`},plan:`Plan`,planComplete:`{{pct}}% completado`,pinned:`Fijados`,quickSettings:`Ajustes rápidos`,autonomy:`Autonomía`,autonomyOptions:{off:`Desactivado`,suggest:`Sugerir`,auto:`Auto`,eternal:`Perpetuo`,"eternal-parallel":`Perpetuo Paralelo`},yolo:`Modo YOLO`,yoloTitle:`Omitir los diálogos de confirmación de herramientas`,refine:`Refinar prompts`,refineTitle:`Reescribir los prompts antes de enviar`,sound:`Sonido al completar`,soundTitle:`Reproducir un suave tono al terminar una ejecución`,sessionId:`sesión {{id}}`},p={status:{running:`en ejecución`,done:`hecho`,failed:`fallido`,timeout:`tiempo agotado`,stopped:`detenido`},leader:`líder`,providerModel:`Proveedor / Modelo`,elapsed:`Transcurrido`,running:`en ejecución…`,iterations:`Iteraciones`,toolCalls:`Llamadas`,cost:`Coste`,budgetExtensions:`Ampliaciones de presupuesto`,activity:`Actividad`,budgetWarning:`aviso de presupuesto`,contextWindow:`Ventana de contexto`,tokensUsed:`{{used}} / {{max}} tokens`,toolRunning:`en ejecución…`,lastTool:`última herramienta`,error:`Error`,finalOutput:`Salida final`,copyOutput:`Copiar salida`,liveOutput:`Salida en vivo`,waitingOutput:`Esperando salida…`,outputHint:`La salida aparece aquí a medida que el agente transmite texto.`,toolLog:`Registro de herramientas ({{count}} llamadas)`,fail:`fallo`,moreTools:`+{{count}} herramientas más`,cardRunning:`en ejecución {{tool}}`,cardLastTool:`última: {{tool}}`,contextPercent:`Contexto {{pct}}%`,doneCount:`{{count}} hechos`,errCount:`{{count}} err`,statusRunning:`en ejecución`,statusDone:`completado`,statusFailed:`fallido`,statusTimeout:`tiempo agotado`,statusStopped:`detenido`,sessionPrefix:`sesión:`,currentTask:`Tarea actual`,performance:`Rendimiento`,uniqueTools:`Herramientas únicas`,avgPerTool:`media {{ms}}ms por herramienta`,context:`Contexto`,tokens:`Tokens`,ctxUsed:`{{pct}}% usado`,completed:`completado`,budgetWarningTitle:`⚡ Aviso de presupuesto`,hittingLimit:`Alcanza el límite {{kind}} ({{used}}/{{limit}})`,hittingLimitTitle:`⚡ alcanza el límite {{kind}} ({{used}}/{{limit}})`,budgetExt_one:`{{count}} extensión de presupuesto`,budgetExt_other:`{{count}} extensiones de presupuesto`,extendedTimes_one:`El agente amplió su presupuesto {{count}} vez por tareas largas`,extendedTimes_other:`El agente amplió su presupuesto {{count}} veces por tareas largas`,errorLabel:`Error`,failureReason:`Motivo de fallo`,failed:`Fallido`,fleetMonitor:`MONITOR DE FLOTA`,runningCount:`{{count}} en ejecución`,totalAgents_one:`{{count}} agente en total`,totalAgents_other:`{{count}} agentes en total`,noLeader:`sin líder`,closeFleet:`Cerrar monitor de flota`,colName:`Nombre`,colStatus:`Estado`,colActivity:`Actividad`,colIters:`Iter.`,colTools:`Herram.`,colCost:`Coste`,colCtx:`CTX`,colExt:`Ext.`,colReason:`Motivo`,noAgentsActive:`Sin agentes activos`,agentsAppear:`Los agentes aparecen aquí cuando la flota está activa.`,agentTimeline:`Cronología de agentes`,noAgentEvents:`Aún no hay eventos de conversación de agentes.`,navHint:`↑↓ navegar`,selectDetailHint:`↵ seleccionar detalle`,escHint:`Esc deseleccionar / cerrar`,detailedView:`vista detallada`,closeBtn:`✕ cerrar`,selectAgentDetail:`Selecciona un agente para información detallada`,selectAgentBody:`Haz clic en un agente de la lista para métricas detalladas, registros, salida en streaming y más — similar a la vista detallada del historial.`,navigateWord:`navegar`,selectWord:`seleccionar`,deselectWord:`deseleccionar`},m={wsNotConnected:`WebSocket no conectado`,noData:`No se recibieron datos de depuración. El servidor podría no admitir depuración de contexto.`,title:`Desglose del contexto`,windowUsage:`Uso de ventana`,contextMode:`Modo de contexto`,fetching:`Obteniendo el desglose del contexto…`,systemPrompt:`Prompt del sistema`,tools:`Herramientas`,messages:`Mensajes`,tokenAllocation:`Asignación de tokens`,systemTitle:`Sistema: {{tokens}}`,toolsTitle:`Herramientas: {{tokens}}`,messagesTitle:`Mensajes: {{tokens}}`,system:`Sistema`,toolBreakdown:`Desglose de herramientas`,messagesSummary:`Mensajes ({{count}}) — {{total}} tok`,barWithTokens:`Ventana de contexto: {{tokens}} / {{max}} tokens ({{pct}})`,barPct:`Ventana de contexto: {{pct}}`,barClick:` — clic para el desglose`},h={header:`✨ Refinar prompt`,autoSend:`envío automático en {{count}} s`,cancelTitle:`Cancelar (Esc)`,editLabel:`Editar el prompt refinado:`,editPlaceholder:`Editar el prompt refinado...`,useEdit:`Usar edición`,original:`Original`,refined:`Refinado`,yourLanguage:`(tu idioma)`,refinedTitle:`Haz clic o pulsa Intro para usar esta versión`,english:`Inglés`,englishTitle:`Pulsa e para la versión en inglés`,hintRefined:`refinado`,hintEnglish:`Inglés`,hintOriginal:`original`,hintEdit:`editar`,edit:`Editar`,useRefined:`Usar refinado`},g={heading:`Especificaciones`,subtitle:`Ver y gestionar el desarrollo guiado por especificaciones`,empty:`No se encontraron specs. Usa {{command}} para crear una.`,tasks:`Tareas ({{count}})`,doneCount:`{{count}} hechas`,runningCount:`{{count}} en ejecución`,pendingCount:`{{count}} pendientes`,runTitle:`Ejecutar esta spec como un tablero AutoPhase en vivo`,run:`Ejecutar`,list:`Lista`,graph:`Grafo`,loadingTasks:`Cargando tareas…`},_={heading:`Verificador de resiliencia F5`,subtitle:`Confirma que la última sesión activa, la transcripción y el estado de la UI sobreviven a una recarga de página. Abre esta vista y pulsa F5 — cada fila verde debe seguir verde.`,recordProbe:`Registrar sonda`,latestSession:`Última sesión activa`,restoredLocal:`Restaurado desde localStorage`,sessionIdExtra:`id de sesión: {{id}}`,noSessionYet:`todavía no se ha iniciado ninguna sesión`,activePointer:`Puntero de sesión activa`,lastVisited:`marca de tiempo lastVisitedAt`,never:`nunca`,persistedEnv:`Entorno persistido`,transcriptRehydrate:`Rehidratación de transcripción`,localTranscript:`Transcripción local recuperada`,messagesExtra:`{{count}} mensajes, {{queued}} en cola`,noMessages:`0 mensajes`,noBleed:`Sin fuga entre sesiones`,bleedExtra:`ligado={{bound}} vs activo={{active}}`,transcriptBinds:`la transcripción se liga a la sesión activa`,uiWorkspace:`Espacio de trabajo UI`,noneValue:`(ninguno)`,payloadSize:`Carga de localStorage (4 claves): {{count}} caracteres`,probeLog:`Registro de sondas`,noProbes:`Aún no hay sondas — pulsa el botón "Registrar sonda" arriba, o F5 en esta vista, para registrar una comprobación de rehidratación.`,simulatedF5:`F5 simulado: reejecutar persist rehydrate`},v={status:{pending:`Pendiente`,in_progress:`En progreso`,review:`Revisión`,failed:`Fallido`,completed:`Hecho`,queued:`En cola`,blocked:`Bloqueado`,cancelled:`Cancelado`},newTaskTitle:`Nueva tarea`,newTaskPlaceholder:`Título de tarea…`,addTask:`Añadir tarea`,empty:`Aún no hay fases — inicia una ejecución AutoPhase para rellenar el tablero.`,summary:`{{phases}} fases · {{tasks}} tareas`,phases:`Fases`,statusTab:`Estado`,dropHere:`Suelta las tareas aquí`,emptySpec:`Aún no hay tareas en esta spec.`,depGraphHeading:`Grafo de dependencias`,worktreePrefix:`worktree: {{branch}}`},y={trendUp:`Aumentando`,trendDown:`Disminuyendo`,trendStable:`Estable`,heading:`Panel de depuración`,subtitle:`Monitorización en tiempo real para WrongStack WebUI`,refreshLabel:`Actualizar:`,lastUpdated:`Última actualización: {{time}}`,fetchFailed:`Error al obtener las métricas`,fileWatcher:`Observador de archivos`,watcherStatus:`Estado del observador`,running:`En ejecución`,stopped:`Detenido`,activeProjects:`Proyectos activos`,projectsWatched:`Proyectos observados`,fileChanges:`Cambios de archivos`,totalDetected:`Total detectado`,filesProcessed:`Archivos procesados`,afterHash:`Tras filtro hash`,broadcastsSent:`Difusiones enviadas`,toClients:`A clientes WebUI`,debounceResets:`Reinicios de antirrebote`,rapidWrites:`Escrituras rápidas sucesivas`,avgDebounce:`Retardo antirrebote medio`,actualDelay:`Retardo real aplicado`,totalDelay:`Retardo total`,sumDelays:`Suma de todos los retardos`,browserPerf:`Rendimiento del navegador`,heapUsed:`Memoria usada`,jsHeap:`Memoria JavaScript`,heapTotal:`Memoria total`,totalHeap:`Tamaño total de memoria`,pageUptime:`Tiempo de actividad`,sinceLoad:`Desde la carga`,rawData:`Datos sin procesar`},b={allowlistTitle:`Lista de modelos permitidos`,modelCount_one:`{{count}} modelo`,modelCount_other:`{{count}} modelos`,using:`En uso`,noModelPicked:`(ningún modelo elegido)`,clearAllowlist:`Borrar lista permitida`,clearAllowlistAria:`Borrar la lista permitida guardada para {{provider}}`,refresh:`Actualizar del servidor`,refreshAria:`Actualizar la lista de modelos para {{provider}}`,probing:`Comprobando…`,use:`Usar`,useModelAria:`Usar el modelo {{model}} para {{provider}}`,differsHint:`La lista comprobada difiere de la lista guardada — vuelve a ejecutar {{command}} para persistir.`},x={expandChip:`Expandir {{label}}`,collapseChip:`Contraer {{label}}`,ahead:`{{count}} por delante`,behind:`{{count}} por detrás`,linesAdded:`{{count}} líneas añadidas`,linesDeleted:`{{count}} líneas eliminadas`,untrackedFiles:`{{count}} archivos sin rastrear`,customizeTitle:`Personalizar chips del dock`,dockChips:`Chips del dock`,noActiveGoal:`Ningún objetivo activo`,noActiveGoalDetail:`Inicia un objetivo desde el chat o el comando goal.`},S={leaderBadge:`LÍDER`,iters:`Iter.`,tools:`Herramientas`,activityBins:`Actividad (12 contenedores)`,streamingOutput:`Salida en streaming`,recentTools:`Herramientas recientes`,finalOutput:`Salida final`,heading:`Monitor de agentes`,prevAgent:`Agente anterior`,nextAgent:`Agente siguiente`,closeAria:`Cerrar monitor de agentes`,hintPage:`←→ página`,hintNavigate:`↑↓ navegar lista`,hintEsc:`Esc cerrar`},C={resize:`Cambiar tamaño de terminales`,labelSingular:`Terminal`,labelPlural:`Terminales`,projectShell:`Shell del proyecto`,maxTerminals:`Máximo {{count}} terminales`,newTerminal:`Nuevo terminal`,restart:`Reiniciar terminal activo`,closeAll:`Cerrar todos los terminales`,closeDock:"Cerrar el dock de terminal (Ctrl+`)",closeTab:`Cerrar {{name}}`,processExited:`[proceso terminado con código {{code}}]`},w={liveStream:`Transmisión en vivo`,events_one:`{{count}} evento`,events_other:`{{count}} eventos`,interruptTitle:`Detener cooperativamente a este agente en su próximo paso (no es un kill)`,interrupt:`⏸ Interrumpir`,interrupting:`…`,loading:`Cargando sesión…`,done:`✓✓ hecho`,read:`✓ leído`,delivered:`⏳ entregado`,agent:`Agente`,you:`Tú`,working:`{{name}} · trabajando`,claude:`Claude`,priority:`Prioridad`,placeholder:`{{label}} → esta sesión…`,send:`Enviar`,sendHint:`⌘/Ctrl+Enter para enviar · visible en la próxima iteración del agente`,msgType:{steerLabel:`🔄 Dirigir`,steerHint:`Ajustar el comportamiento durante la tarea`,askLabel:`❓ Preguntar`,askHint:`Pregunta — espera respuesta`,assignLabel:`📋 Asignar`,assignHint:`Una tarea en la que actuar`,noteLabel:`💬 Nota`,noteHint:`Para tu información, no urgente`},sentRunning:`Entregado — el agente en ejecución lo verá en su próximo paso`,sentIdle:`Entregado — el objetivo está inactivo; aparece en su buzón, leído en su próxima ejecución`,sentFailed:`Falló: {{error}}`,interruptReason:`El operador solicitó la detención desde Fleet HQ`,interruptSent:`Interrupción enviada — el agente se detiene en su próximo paso (no es un kill)`,interruptFailed:`Interrupción fallida: {{error}}`},T={empty:`Aún no se han registrado efectos secundarios.`,emptyHint:`Los comandos bash, las instalaciones de paquetes y las solicitudes de red aparecerán aquí.`,heading:`Efectos secundarios`,exportTitle:`Exportar los efectos secundarios filtrados como CSV`,all:`Todos`,colTime:`Hora`,colTool:`Herramienta`,colRisk:`Riesgo`,colDetail:`Detalle`,colOutcome:`Resultado`},E={elapsedHm:`hace {{h}}h {{m}}m`,elapsedMs:`hace {{m}}m {{s}}s`,elapsedS:`hace {{s}}s`,heading:`Monitor de flota`,clientsHeading:`Clientes conectados`,terminal:`Terminal`,webui:`IU Web`,repl:`REPL`,totalConnected:`conectados en total`,mailQueue:`Cola de correo`,total:`Total`,open:`Abiertos`,unread:`No leídos`,agents:`Agentes`,messagesSub:`mensajes`,uncompletedSub:`sin completar`,waitingSub:`en espera`,ofTotal:`de {{count}} en total`,agentRoster:`Lista de agentes`,liveMailActivity:`Actividad de correo en vivo`,noActivity:`Sin actividad reciente`,mailboxAgents:`Agentes del buzón`,noMailboxAgents:`Ningún agente registrado`,moreCount:`+{{count}} más`,agentFallback:`agente`,fleetAgents:`Agentes de la flota`,noFleetAgents:`Ningún agente de flota en ejecución`,iter:`iter.`,mailType:{sent:`Enviado`,delivered:`Entregado`,read:`Leído`,completed:`Completado`}},D={status:{pending:`pendiente`,queued:`en cola`,in_progress:`en ejecución`,blocked:`bloqueado`,review:`revisión`,failed:`fallido`,completed:`hecho`,cancelled:`cancelado`},activityHeading:`Actividad`,feedEmpty:`Aún nada — los eventos aparecen aquí a medida que los agentes toman y completan tareas.`,destroyTitle:`¿Destruir el proyecto SDD?`,destroyDesc:`Esto borra el run y su trabajo. No se puede deshacer (el revert opcional preserva el historial).`,stopRun:`Detener el run`,stopRunAgents_one:`Detener el run ({{count}} agente activo)`,stopRunAgents_other:`Detener el run ({{count}} agentes activos)`,removeWorktreesAll:`Eliminar todos los worktrees git + ramas wstack/ap/* — incluido el trabajo sin mergear`,removeWorktreesCount_one:`Eliminar {{count}} worktree git + ramas wstack/ap/* — incluido el trabajo sin mergear`,removeWorktreesCount_other:`Eliminar {{count}} worktrees git + ramas wstack/ap/* — incluido el trabajo sin mergear`,deleteArtifacts:`Eliminar todos los artefactos SDD (specs, grafo de tareas, board, sesión)`,revertMerged_one:`Revertir también {{count}} commit mergeado`,revertMerged_other:`Revertir también {{count}} commits mergeados`,revertHint:`Añade commits de revert (historial preservado). Se rechaza si el árbol de trabajo está sucio.`,baseBranchFallback:`la rama base`,noteLeaveMerged:`Los commits mergeados quedarán en la rama base. Marca la casilla de arriba para deshacerlos también.`,noteAbandon:`Asegúrate de que realmente quieres abandonar este run.`,destroying:`Destruyendo…`,destroyAll:`Destruir todo`,kanbanBacklog:`Backlog`,kanbanReady:`Listo`,kanbanRunning:`En ejecución`,kanbanReview:`Revisión`,kanbanFailed:`Fallido`,kanbanDone:`Completado`,kanbanEmpty:`vacío`},O={collapseToLines:`Contraer a las primeras {{count}} líneas`,showAllLines:`Mostrar las {{total}} líneas ({{more}} más)`,exitCode:`código de salida:`,jsonLines:`JSON · {{count}} líneas`,collapse:`contraer`,expand:`expandir`},k={heading:`Design Studio — Galería`,kitsCount:`{{count}} kits`,searchPlaceholder:`Buscar kits…`,stackTitle:`Stack para Use + Materialize`,wrote:`Escrito {{path}}`,materializeFailed:`Materialize falló: {{error}}`,verifyError:`Verificar: {{error}}`,verifyOffPalette:`Verificar: {{pct}}% en paleta — {{count}} fuera de paleta en {{files}} archivo(s)`,verifyClean:`Verificar: limpio ✓ ({{files}} archivo(s) en paleta)`,writing:`Escribiendo archivo de tema…`,scanning:`Escaneando archivos de UI…`,active:`Activo`,reapply:`Reaplicar`,use:`Usar`,materializeTitle:`Escribir tokens en un archivo de tema {{stack}}`,materialize:`Materializar`,verifyTitle:`Escanear archivos de UI en busca de colores fuera de paleta`,verify:`Verificar`,colors:`Colores`},A={summary_one:`{{count}} fase · {{pct}}% completado`,summary_other:`{{count}} fases · {{pct}}% completado`,switchBoard:`Cambiar tablero`,boardsCount_one:`{{count}} tablero…`,boardsCount_other:`{{count}} tableros…`,toggleAutonomousTitle:`Activar/desactivar modo autónomo`,autonomous:`Autónomo`,manual:`Manual`,resumeTitle:`Reanudar la ejecución`,pauseTitle:`Pausar la ejecución`,resume:`Reanudar`,pause:`Pausar`,stopTitle:`Detener la ejecución — aborta los agentes en vuelo inmediatamente`,stop:`Detener`,newTitle:`Limpiar este tablero e iniciar una nueva ejecución AutoPhase`,newLabel:`Nuevo`,revertConfirm:`¿Revertir los commits de la ejecución?`,revertTitle:`Deshacer esta ejecución — git-revert de los commits y eliminar sus worktrees`,revert:`Revertir`,goal:`Objetivo`,planning:`Planificando fases…`,planningBody:`Tu objetivo fue recibido. WrongStack lo desglosa en fases y tareas — el tablero aparece aquí en cuanto el plan está listo.`,startHeading:`Iniciar un plan de fases`,startBody:`Describe lo que quieres construir. WrongStack planificará fases y tareas, luego las ejecutará — observa y dirige la ejecución en el tablero.`,startPlaceholder:`p.ej. Crea una API REST de gestión de usuarios con Express y SQLite...`,isolateLabel:`Aislar cada fase en su propio worktree de git`,startButton:`Iniciar AutoPhase`,ctrlHint:`Ctrl+Enter para iniciar`,isolateOn:`las fases se ejecutan en worktrees aislados, fusionados con squash`,isolateOff:`las fases se ejecutan directamente en la rama actual`,lanes:`Carriles`,graph:`Grafo`,planningAck:`🚀 **AutoPhase** — entendido. Planificando fases para tu objetivo…`},j={noObservers:`Sin observadores en vivo`,observerTitle:`Unirse como observador de solo lectura (Fase 1)`,observerRole:`observador`,annotatorTitle:`Unirse como anotador — deja notas en las llamadas (Fase 2)`,annotatorRole:`anotador`,controllerTitle:`Unirse como controlador — puede pausar el agente (Fase 3)`,controllerRole:`controlador`,errorPrefix:`Collab: {{error}}`,dismiss:`cerrar`,observers_one:`{{count}} observador`,observers_other:`{{count}} observadores`,annotationsTitle:`{{count}} anotación(es) abierta(s) — anotadores revisando`,notes_one:`{{count}} nota`,notes_other:`{{count}} notas`,pausedTitle:`El agente está en pausa — un controlador está revisando`,paused:`en pausa`,joinedTitle:`Se unió {{time}}`,grantTitle:`Ceder control — promocionar a este participante a controlador`,injectTitle:`Inyectar un resultado sintético para una llamada en curso`,inject:`Inyectar`,resumeTitle:`Reanudar el agente`,resume:`Reanudar`,pauseTitle:`Pausar el agente antes de la próxima llamada`,pauseAgent:`Pausar agente`,leaveTitle:`Salir de la sesión de observación`,leave:`Salir`,injectToolResult:`Inyectar resultado`,close:`cerrar`,targetTool:`id tool_use objetivo`,targetPlaceholder:`elige una llamada en curso o escribe un id tool_use`,toolFallback:`herramienta`,noPendingTools:`Sin llamadas en curso — escribe un id tool_use o pausa el agente primero.`,resultContent:`Contenido del resultado`,resultPlaceholder:`Resultado sintético dado al agente en lugar de ejecutar la herramienta`,markError:`marcar como error`,reasonPlaceholder:`razón (registro de auditoría)`,queueInjection:`Encolar inyección`,controllerInjection:`inyección controlador`},M={reconnecting:`Reconectando al backend (intento {{attempt}}) — reintentando en {{remaining}} s`,disconnected:`Desconectado del backend`,retry:`Reintentar ahora`,retryTitle:`Reintentar conexión ahora`,dismissTitle:`Cerrar (el chip de la barra superior sigue mostrando el estado)`},N={modePrefix:`modo:`,activeTitle:`Modo activo`,heading:`Modo`,defaultName:`Predeterminado`,defaultDesc:`Comportamiento estándar del agente`},P={clickTitle:`Haz clic para el desglose de costes por turno`,heading:`Desglose de costes`,noPricing:`Sin tarifa para el modelo actual — los valores de coste son cero.`,noTurns:`Aún no hay turnos completados. Ejecuta un prompt para ver el coste por turno aquí.`,topExpensive_one:`Turno más caro`,topExpensive_other:`Los {{count}} turnos más caros`},F={runDefault:`Predeterminado del run`,useRunDefault:`Usar predeterminado del run`,filterPlaceholder:`Filtrar modelos…`,loading:`Cargando modelos…`,noMatch:`Sin coincidencias`},I={heading:`Cambiar modelo`,filterPlaceholder:`Filtrar proveedores y modelos…`,noSavedProviders:`Sin proveedores guardados — registra primero una clave en Ajustes.`,active:`activo`},L={todos:`Por hacer`,tasks:`Tareas`,plan:`Plan`},R={toggleAria:`Alternar: {{content}}`,removeTitle:`Eliminar tarea`,removeAria:`Eliminar "{{content}}"`,completedCount_one:`{{count}} completada`,completedCount_other:`{{count}} completadas`},z={start:`Iniciar`,complete:`Completar`,retry:`Reintentar`,assign:`Asignar`,assignTitle:`Asignar agente`,unassigned:`Sin asignar`,statusPending:`Pendiente`,statusInProgress:`En curso`,statusBlocked:`Bloqueado`,statusFailed:`Fallido`,statusReview:`Revisión`,statusDone:`Completado`,startTitle:`Iniciar`,completeTitle:`Completar`,fail:`Fallar`,failTitle:`Marcar como fallido`,boardCount:`{{total}} tareas · {{done}} completadas`},B={toolCalls_one:`{{count}} llamada`,toolCalls_other:`{{count}} llamadas`},V={removeTitle:`Eliminar referencia`,linesCount_one:`{{count}} línea`,linesCount_other:`{{count}} líneas`},H={statusOpen:`Abierto`,statusInProgress:`En curso`,statusDone:`Completado`,startTitle:`Iniciar`,doneTitle:`Marcar como completado`,reopenTitle:`Reabrir`,reopen:`Reabrir`},U={heading:`@ Archivos`,noMatch:`Ningún archivo coincide con "{{query}}"`,searching:`Buscando en el proyecto…`},W={dismiss:`Cerrar`},G={placeholder:`Buscar en el chat…`,prevHit:`Coincidencia anterior`,nextHit:`Coincidencia siguiente`,close:`Cerrar (Esc)`},K={statusPending:`Pendiente`,statusReady:`Listo`,statusRunning:`En ejecución`,statusPaused:`En pausa`,statusCompleted:`Completado`,statusFailed:`Fallido`,statusSkipped:`Omitido`,heading:`Fases`,autonomousOn:`● Autónomo`,autonomousOff:`○ Manual`,autonomousOnTitle:`Modo autónomo activo — clic para pausar`,autonomousOffTitle:`Modo manual — clic para activar el autónomo`,overallProgress:`Progreso general`,tasksSuffix:`{{done}}/{{total}} tareas`,agentsSuffix_one:`{{count}} agente`,agentsSuffix_other:`{{count}} agentes`},q={triggerTitle:`Modo de ventana de contexto`,ctxPrefix:`ctx:`,opsHeading:`Operaciones de contexto`,compactNow:`Compactar ahora`,compactNowDesc:`Elidir salida de herramienta antigua`,compactAggressive:`Compactación agresiva`,compactAggressiveDesc:`Elisión máxima ahora`,repairContext:`Reparar contexto`,repairDesc:`Corregir bloques tool-use huérfanos`,debugContext:`Depurar contexto`,debugDesc:`Desglose de tamaño por sección`,windowHeading:`Ventana de contexto`,keepElide:`mantener {{k}} recientes · elidir {{t}}+ tokens`,fallbackName:`Equilibrado`,fallbackDesc:`Compacción rolling por defecto`},J={kindAssistant:`Asistente`,kindThinking:`Pensando`,kindToolCall:`Llamada de herramienta`,kindToolResult:`Resultado de herramienta`,kindError:`Error`,kindStatus:`Estado`,kindSystem:`Sistema`,title:`Historial del chat`,copyTitle:`Copiar historial de chat del agente`,empty:`Aún no hay historial de chat para este agente.`},Y={heading:`Modo de autonomía`,titlePrefix:`Autonomía: {{label}}`,descOff:`Control manual total — el agente espera tu entrada.`,descSuggest:`El agente sugiere los siguientes pasos pero espera aprobación.`,descAuto:`El agente continúa automáticamente tras una breve espera de confirmación.`,descEternal:`El agente funciona de forma autónoma hasta completar el objetivo.`,descEternalParallel:`Ejecución autónoma multi-agente — modo flota.`},X={heading:`Cola de mensajes`,subtitle:`{{count}} en cola · mensajes enviados antes de que el agente termine`,btwTitle:`Por cierto — enviado como seguimiento sin interrumpir el agente en ejecución`,steerTitle:`Guiar — interrumpe el agente en ejecución y lo redirige con este mensaje`,queueTitle:`En cola — retenido hasta que termine el run del agente, luego enviado en orden`,sortNewestTitle:`Ordenado del más reciente — clic para ordenar del más antiguo`,sortOldestTitle:`Ordenado del más antiguo — clic para ordenar del más reciente`,newest:`Más reciente`,oldest:`Más antiguo`,clear:`Vaciar`,clearTitle:`Borrar todos los mensajes en cola`,closeTitle:`Cerrar`,emptyTitle:`La cola está vacía`,emptyBody:`Usa los botones btw / steer / añadir a cola junto a la entrada para añadir mensajes. Los elementos en cola se envían en orden cuando termina el run del agente.`,removeTitle:`Quitar de la cola`,footer:`Los mensajes se envían en orden de llegada cuando termina el run del agente. Usa el orden para ver los más recientes primero.`},Z={heading:`Puntos de control de sesión`,countSuffix_one:`{{count}} punto de control`,countSuffix_other:`{{count}} puntos de control`,description:`Rebobina la sesión a cualquier punto de control. Los mensajes y cambios de archivos revierten a ese punto — el LLM continúa desde allí como si nada hubiera pasado después.`,emptyTitle:`Aún no hay puntos de control`,emptyBody:`Los puntos de control se crean automáticamente cada vez que envías un mensaje. Envía algunos mensajes y vuelve.`,latest:`reciente`,msgSuffix_one:`{{count}} msg`,msgSuffix_other:`{{count}} msgs`,footerPre:`Clic en cualquier punto de control para rebobinar`,footerPost:`para cerrar`},Q={statusActive:`Activo`,statusPaused:`En pausa`,statusDone:`Completado`,statusFailed:`Fallido`,statusAbandoned:`Abandonado`,heading:`Objetivo`,refined:`Refinado`,progress:`Progreso`,iterations:`iteraciones`,deliverables:`Entregables`,recentActivity:`Actividad reciente`},$={cleanTitle_one:`¿Limpiar {{count}} worktree huérfano?`,cleanTitle_other:`¿Limpiar {{count}} worktrees huérfanos?`,cleanMessage:`Elimina a la fuerza cada worktree git + rama wstack/ap sobrante de runs anteriores. El trabajo sin mergear en ellos se pierde.`,cleanConfirm:`Limpiar huérfanos`,orphanCount_one:`{{count}} worktree huérfano de runs anteriores`,orphanCount_other:`{{count}} worktrees huérfanos de runs anteriores`,andMore:`…y {{count}} más`,cleanButtonTitle:`Eliminar a la fuerza todos los worktrees + ramas huérfanos`,removed_one:`✓ {{count}} worktree huérfano eliminado.`,removed_other:`✓ {{count}} worktrees huérfanos eliminados.`,cleanupFailed:`limpieza fallida`,lanesHeading:`Worktrees`,base:`base`,isolatedCount_one:`{{count}} aislado`,isolatedCount_other:`{{count}} aislados`,statusAllocating:`asignando`,statusActive:`activo`,statusCommitting:`commitiendo`,statusMerging:`mergeando`,statusMerged:`mergeado`,statusConflict:`conflicto`,statusFailed:`fallido`,conflictBadge:`CONFLICTO`,graphAria:`Grafo de ramas worktree desde {{base}}`,mergedLabel:`✓ mergeado → {{base}}`},ee={heading:`Procesos en ejecución`,subtitle:`{{active}} activos · {{total}} total`,killAll:`Matar todos`,emptyTitle:`Sin procesos rastreados`,emptyBody:`Los procesos aparecen aquí cuando el agente ejecuta herramientas bash o exec. Los procesos activos muestran un LED pulsante.`,pidLabel:`PID {{pid}}`,protected:`protegido`,protectedTitle:`Protegido — sobrevive a kill/killAll`,killTitle:`Matar PID {{pid}}`},te={tooLarge:`Diff omitido (archivo demasiado grande para mostrar en línea).`},ne={placeholder:`Añadir modelo de respaldo…`,emptyHint:`Se prueban en orden cuando el modelo principal limita o se atasca.`,moveUp:`Subir`,moveDown:`Bajar`,manualPlaceholder:`proveedor/modelo`,addTitle:`Añadir referencia de modelo`},re={loading:`Cargando sesiones...`,apiUnavailable:`API de sesión no disponible:`,empty:`Sin sesiones en vivo. Abre otra instancia wstack para verla aquí.`,heading:`Sesiones en vivo ({{count}})`,autoRefresh:`actualización cada 5 s`,pidLabel:`PID {{pid}}`,agentMeta:`{{iter}} iter · {{tools}} herramientas · {{ago}}`,andMore:`... y {{count}} más`,noAgents:`Sin agentes`},ie={applyTitle:`Escribir la versión editada al disco`,applying:`Aplicando…`,applied:`Aplicado`,apply:`Aplicar`},ae={showStack_one:`Mostrar rastreo de pila ({{count}} marco)`,showStack_other:`Mostrar rastreo de pila ({{count}} marcos)`,hideStack_one:`Ocultar rastreo de pila ({{count}} marco)`,hideStack_other:`Ocultar rastreo de pila ({{count}} marcos)`},oe={liveHeading:`Live`,clients:`Clientes`,agents:`Agentes`,model:`Modelo`,mode:`Modo`,toolCalls:`Llamadas`,displayHeading:`Visualización`,statsHud:`HUD de stats`,legends:`Leyendas`,minimap:`Minimapa`,zoomControls:`Controles de zoom`,animateWires:`Animar cables`,backgroundHeading:`Fondo`,bgDots:`Puntos`,bgLines:`Líneas`,bgCross:`Cruz`,bgNone:`Ninguno`},se={noParams:`(sin parámetros)`,itemCount_one:`{{count}} elemento`,itemCount_other:`{{count}} elementos`,keyCount_one:`{{count}} clave`,keyCount_other:`{{count}} claves`},ce={roleYou:`Tú`,roleTool:`Herramienta`,roleThinking:`Pensando`,roleAssistant:`Asistente`,inputLabel:`Entrada`,downloadTitle:`Descargar como archivo`,empty:`(vacío)`,hideDetails:`Ocultar detalles`,showDetails:`Mostrar detalles`,showDetailsLines_one:`Mostrar detalles ({{count}} línea)`,showDetailsLines_other:`Mostrar detalles ({{count}} líneas)`,editHint:`⌘/Ctrl+Enter para guardar · Esc para cancelar`,saveResend:`Guardar y reenviar`,thinkingProcess:`Proceso de pensamiento`,thinkingMeta:`iter {{iter}} · {{dur}} · {{lines}}`,replay:`repetición`,linesSuffix_one:`{{count}} línea`,linesSuffix_other:`{{count}} líneas`,copyLog:`Copiar registro`,showFullLog:`Mostrar registro completo`,typing:`Escribiendo…`,noContent:`Sin contenido`,imageNotRetained:`La vista previa de la imagen no se conserva tras recargar`,failedToSend:`⚠ Error al enviar`,autoPaused:`⚠️ _Avance automático en pausa — alcanzado el máximo de turnos automáticos consecutivos. Escribe algo para continuar (la autonomía permanece activa)._`,rsIterations:`Iteraciones: {{n}}`,rsTools:`Llamadas: {{n}}`,rsElapsed:`Transcurrido: {{s}}`,rsCost:`Coste: {{c}}`,useInput:`Entrada: {{n}}`,useOutput:`Salida: {{n}}`,useCacheRead:`Lectura cache: {{n}}`,useCost:`Coste: {{c}}`,renderedLabel:`Renderizado`,rawLabel:`Raw`,showRenderedTitle:`Mostrar markdown renderizado`,showRawTitle:`Mostrar fuente markdown pura`,editTitle:`Editar y reenviar este prompt`,editLabel:`Editar`,unpinTitle:`Desfijar`,pinTitle:`Fijar esta respuesta`,pinnedLabel:`Fijado`,pinLabel:`Fijar`,regenerateTitle:`Regenerar esta respuesta`,retryLabel:`Reintentar`},le={toolFallback:`herramienta`,toolFailed:`Herramienta fallida`},ue={heading:`Atajos de teclado`,footerPre:`Pulsa`,footerPost:`en cualquier momento para reabrir esta lista.`,sectionGlobal:`Global`,sectionTuiParity:`Paridad de panel TUI`,sectionFleet:`Flota y agentes`,sectionChatInput:`Entrada del chat`,sectionChat:`Chat`,sectionChatNav:`Navegación del chat (al no escribir)`,dCommandPalette:`Abrir paleta de comandos`,dShowOverlay:`Mostrar este overlay de atajos`,dToggleSidebar:`Alternar barra lateral`,dOpenPanel:`Abrir panel lateral (Sesión, Agentes, Historial, Archivos, Cambios, Buzón, Skills, Office Map)`,dDesignStudio:`Abrir panel de Design Studio`,dWorktrees:`Abrir panel de Worktrees`,dFocusInput:`Focalizar la entrada de mensajes`,dSessionPanel:`Panel de sesión`,dFleetOverlay:`Overlay del monitor de flota`,dAgentsOverlay:`Overlay del monitor de agentes`,dWorktreeMonitor:`Monitor de worktrees`,dPlanPanel:`Panel de plan`,dTodosPanel:`Panel de tareas`,dQueuePanel:`Panel de cola`,dProcessMonitor:`Monitor de procesos`,dGoalPanel:`Panel de objetivo`,dSessionsDashboard:`Panel de sesiones`,dOfficeMap:`Office map del coordinador`,dDockPicker:`Selector de chips del dock`,dOpenFleet:`Abrir overlay del monitor de flota`,dOpenAgents:`Abrir overlay del monitor de agentes`,dNavigateAgents:`Navegar agentes en el monitor`,dSelectAgent:`Seleccionar agente focalizado`,dCloseOverlay:`Cerrar overlay activo`,dSendMessage:`Enviar mensaje`,dNewline:`Insertar salto de línea`,dRecallPrev:`Recuperar prompt anterior (entrada vacía)`,dRecallNext:`Recuperar prompt siguiente`,dSlashPopup:`Abrir popup de comandos slash`,dAutocomplete:`Autocompletar comando resaltado`,dDismissPopup:`Cerrar popup / limpiar entrada`,dSearchChat:`Buscar en el chat actual`,dClearContext:`Limpiar contexto (igual que /clear)`,dNewSession:`Iniciar nueva sesión (igual que /new)`,dExportMarkdown:`Exportar chat como markdown`,dModelSwitcher:`Overlay selector rápido de modelo`,dCompactDensity:`Alternar densidad UI compacta`,dAbortRun:`Abortar el run actual (durante ejecución)`,dFocusNext:`Focalizar mensaje siguiente (alias: ↓)`,dFocusPrev:`Focalizar mensaje anterior (alias: ↑)`,dJumpFirst:`Ir al primer mensaje`,dJumpLast:`Ir al último mensaje`,dCopyFocused:`Copiar texto del mensaje focalizado`,dClearFocused:`Borrar mensaje focalizado`},de={titleFallback:`Board SDD en vivo`,defaultModelTitle:`Modelo worker por defecto del run (los overrides por tarea tienen prioridad)`,graphLabel:`Grafo`,kanbanLabel:`Kanban`,retryAllTitle:`Volver a poner cada tarea fallida en pending`,retryFailed:`Reintentar fallidas ({{count}})`,resume:`Reanudar`,pause:`Pausar`,stop:`Detener`,cleanTitle:`Eliminar los worktrees git + ramas wstack/ap del run`,cleanWorktrees:`Limpiar worktrees`,rollbackTitle:`Revertir {{count}} commit(s) mergeado(s) en {{base}}`,rollback:`Rollback ({{count}})`,stopping:`Deteniendo…`,destroying:`Destruyendo…`,destroyTitle:`Detener, eliminar todos los worktrees, revertir opcionalmente los commits mergeados y borrar el proyecto SDD`,destroy:`Destruir`,statDone:`hechos`,statRunning:`en curso`,statFailed:`fallidos`,statWave:`oleada`,statElapsed:`transcurrido`,noActiveWorkers:`sin workers activos`,deadlock:`Interbloqueo — tareas bloqueadas por trabajo fallido:`,noRunTitle:`Sin run SDD activo.`,noRunBody:`Inicia uno desde el asistente New SDD Project o vía /sdd execute en la CLI — los agentes aparecen aquí en vivo, cada uno en un worktree aislado.`,clickTaskHint:`clic en una tarea para detalles`,lcClean:`Limpieza`,lcRollback:`Rollback`,lcDestroy:`Destrucción`,lcFailed:`{{op}} falló: {{reason}}`,lcUnknownError:`error desconocido`,lcWorktrees_one:`{{count}} worktree eliminado`,lcWorktrees_other:`{{count}} worktrees eliminados`,lcCommits_one:`{{count}} commit revertido`,lcCommits_other:`{{count}} commits revertidos`,lcDeleted:`borrado {{items}}`,lcNothing:`nada que hacer`,lcNote:`{{op}}: {{body}} — nota: {{reason}}`,lcOk:`{{op}}: {{body}}`},fe={backTitle:`Volver a la actividad`,workingOn:`trabajando en esta tarea`,assigned:`asignado`,metaPriority:`Prioridad`,metaType:`Tipo`,metaDuration:`Duración`,metaElapsed:`Transcurrido`,metaRetries:`Reintentos`,metaWorktree:`Worktree`,workerModel:`Modelo worker`,runDefault:`predeterminado del run: {{model}}`,runDefaultPlaceholder:`Predeterminado del run`,runDefaultPlaceholderModel:`Predeterminado del run ({{model}})`,verificationCmd:`Comando de verificación`,gatesCompletion:`valida la finalización (exit 0)`,verifyPlaceholder:`ej. pnpm vitest run path/to/file`,addVerify:`+ Añadir comando de verificación`,description:`Descripción`,timeline:`Cronología`,dependsOn:`Depende de`,blocks:`Bloquea`,newWorkerPlaceholder:`Nombre del nuevo worker…`,confirmStop:`¿Detener esta tarea en ejecución?`,confirmDelete:`¿Eliminar esta tarea del run?`,retryTitle:`Volver a poner esta tarea en pending`,reassign:`Reasignar`,stopTitle:`Abortar el worker en esta tarea`,splitTitle:`Dividir esta tarea en subtareas delegadas a workers separados`,split:`Dividir`,splitHint:`Una subtarea por línea — Título :: descripción (descripción opcional)`,splitPlaceholder:`Escribe la capa de datos :: añade el repositorio
4
- Conecta la UI`,splitInto:`Dividir en subtareas`,deleteTitle:`Quitar esta tarea no iniciada del run`},pe={phaseStart:`Iniciar`,phaseInterview:`Entrevista`,phaseSpecReview:`Revisión spec`,phasePlanning:`Planificación`,phaseTaskReview:`Revisión tareas`,phaseRunning:`En ejecución`,phaseDone:`Completado`,titleFallback:`Nuevo proyecto SDD`,questionsSuffix:`{{cur}}/{{max}} preguntas`,tasksSuffix:`{{count}} tareas`,runCfgTitle:`Config del run — modelo por defecto + cadena de respaldo`,modelsLabel:`Modelos`,startRun:`Iniciar run`,defaultWorkerModel:`Modelo worker por defecto`,leaderDefaultPlaceholder:`Leader / defecto de sesión`,useSessionDefault:`Usar defecto de sesión`,fallbackChain:`Cadena de respaldo`,appliesToAll:`Se aplica a cada tarea. Override por tarea desde el board live tras iniciar.`,parallelAgents:`Agentes paralelos`,isolateWorktrees:`Aislar en worktrees git`,worktreeOn:`Cada tarea corre en su propio worktree, squash-mergeado al completar.`,worktreeOff:`Las tareas corren directamente en la rama actual (sin aislamiento).`,goalPrompt:`¿Qué quieres construir?`,goalPlaceholder:`ej. Añadir login OAuth (Google + GitHub) con gestión de sesión`,startingInterview:`Iniciando entrevista…`,startInterview:`Iniciar entrevista`,introBody:`Un agente aislado te entrevista para construir una spec, la descompone en un grafo de tareas ordenado por dependencias, luego una flota multi-agente real lo ejecuta — síguelo en vivo en el board.`,taskGraphSummary:`Grafo de tareas · {{count}} tareas, ordenadas por dependencias`,dragToExplore:`arrastra para explorar`,show:`mostrar`,goalLabel:`Objetivo`,implementationPlan:`Plan de implementación`,approveSpec:`Aprobar spec → planificar implementación`,approveTasks:`Aprobar tareas`,approvePlan:`Aprobar plan`,answerPlaceholder:`Responde a la pregunta…`,changePlaceholder:`Pedir un cambio…`},me={emptyDir:`vacío`,loadFailed:`Error al cargar archivos: {{error}}`,expandAllTitle:`Expandir todas las carpetas`,expandAll:`Expandir todo`,collapseAllTitle:`Contraer todas las carpetas`,collapse:`Contraer`,folders_one:`{{count}} carpeta`,folders_other:`{{count}} carpetas`,currentDirTitle:`Directorio actual: {{path}}`,navigateToTitle:`Navegar a {{path}}`,filesSuffix_one:`{{count}} archivo`,filesSuffix_other:`{{count}} archivos`,goToDir:`ir al directorio`,navigateParentTitle:`Navegar al directorio padre de {{path}}`,parentDirectory:`directorio padre`,noFiles:`No se encontraron archivos`,copyAbsPath:`Copiar ruta absoluta`,copyRelPath:`Copiar ruta relativa`,openInTerminal:`Abrir en terminal`,openInFileManager:`Abrir en gestor de archivos`,mentionInChat:`Mencionar en el chat`,copyPath:`Copiar ruta`},he={sendSelectionAction:`Enviar selección al chat`,noFilesOpen:`Sin archivos abiertos`,selectToEdit:`Selecciona un archivo del explorador para editar`,sendSelectedTitle:`Enviar líneas seleccionadas al chat`,mentionFileTitle:`Mencionar este archivo en el chat`,sendToChat:`Enviar al chat`,mentionFile:`Mencionar archivo`,loadingEditor:`Cargando editor…`,selectTab:`Selecciona una pestaña para ver su contenido`},ge={loading:`Cargando analíticas…`,heading:`Panel de analíticas`,autoRefresh:`actualización cada 10 s`,liveSessions:`Sesiones en vivo`,agents:`Agentes`,agentsActive:`{{count}} activos`,totalEvents:`Eventos totales`,categoriesSub:`{{count}} categorías`,toolCalls:`Llamadas`,iterationsSub:`{{count}} iteraciones`,sessionCost:`Coste de sesión`,tokensSub:`{{input}} entrada / {{output}} salida`,sessionDuration:`Duración de sesión`,messagesSub:`{{count}} mensajes`,eventsByCategory:`Eventos por categoría`,noEvents:`Aún no hay eventos registrados.`,topEvents:`Eventos principales`,activeSessionUsage:`Uso de sesión activa`,provider:`Proveedor`,model:`Modelo`,inputTokens:`Tokens de entrada`,outputTokens:`Tokens de salida`,cacheRatio:`Ratio de caché`,filesRead:`Archivos leídos`,noSession:`Sin sesión activa o esperando datos…`,healthErrors:`Salud y errores`,errorEvents:`Eventos de error`,warningEvents:`Eventos de aviso`,cacheHitRate:`Tasa de aciertos de caché`,totalCategories:`Categorías totales`,waitingData:`Esperando datos…`,recentEvents:`Eventos recientes`,noRecentEvents:`Sin eventos recientes. Interactúa con la UI para generar eventos.`},_e={heading:`Biblioteca de prompts`,searchPlaceholder:`Buscar prompts…`,newPrompt:`+ Nuevo prompt`,all:`Todos`,recent:`🕘 Recientes`,favorites:`★ Favoritos`,noMatch:`Ningún prompt coincide.`,newPromptHeading:`Nuevo prompt`,titlePlaceholder:`Título *`,descPlaceholder:`Descripción de una línea`,categoryPlaceholder:`Categoría`,tagsPlaceholder:`etiquetas, separadas, por coma`,contentPlaceholder:`Contenido del prompt * — usa {{name}} para variables`,variables:`Variables`,addVar:`+ var`,varNamePlaceholder:`nombre`,varDescPlaceholder:`descripción`,removeVarTitle:`Eliminar variable`,required:`obligatorio`,multiline:`multilínea`,enumPlaceholder:`enum: a, b, c`,savePrompt:`Guardar prompt`,saveFailed:`No se pudo guardar el prompt.`,titleContentRequired:`El título y el contenido son obligatorios.`,toggleFavoriteTitle:`Alternar favorito`,selectOption:`— elegir —`,fillMissing:`Rellenar: {{missing}}`,insertIntoChat:`Insertar en el chat`,selectPromptHint:`Selecciona un prompt para previsualizar e insertar.`},ve={scopeProject:`Proyecto`,scopeGlobal:`Global`,scopeBundled:`Integrado`,timeoutError:`Tiempo de espera agotado. Inténtalo de nuevo.`,updateFailed:`Actualización fallida`,saveFailed:`Guardado fallido`,uninstallFailed:`Desinstalación fallida`,noSkillSelected:`Ninguna habilidad seleccionada`,selectSkillHint:`Selecciona una habilidad de la barra lateral para ver su documentación`,goToChat:`Ir al chat`,openSourceRepo:`Abrir repo de origen`,copySourceUrl:`Copiar URL de origen`,updatedLabel:`↑ Actualizado: {{list}}`,upToDateLabel:`— Actualizado: {{list}}`,errorsLabel:`✗ {{list}}`,checkUpdatesTitle:`Buscar actualizaciones`,exportTitle:`Exportar habilidad como .md`,editTitle:`Editar habilidad`,uninstallTitle:`Desinstalar habilidad`,closeTitle:`Cerrar e ir al chat`,backTitle:`Atrás`,forwardTitle:`Adelante`,relatedFiles:`Archivos relacionados`,references:`Referencias`,goToSkillTitle:`Ir a {{name}}`,loadingContent:`Cargando contenido…`,editingLabel:`Editando {{name}}`,editStats:`{{lines}} líneas · {{words}} palabras · {{chars}} caracteres`,charsWarningFmt:`⚠ {{used}} MB / {{limit}} MB`,draftSaved:`Borrador guardado`,draftRestored:`Borrador restaurado`,discardDraft:`Descartar borrador`,splitViewTitle:`Vista dividida`,hidePreviewTitle:`Ocultar vista previa`,contentPlaceholder:`Contenido de la habilidad (markdown)...`,loadFailed:`Error al cargar el contenido`,noContent:`Sin contenido disponible`,uninstallSkillHeading:`Desinstalar habilidad`,uninstallConfirm:`¿Desinstalar {{name}}?`,uninstallRemovePath:`Esto eliminará la habilidad de {{path}} y no se puede deshacer.`,uninstallAction:`Desinstalar`},ye={sessionStats:`Estadísticas de sesión`,clients:`Clientes`,input:`Entrada`,output:`Salida`,cost:`Coste`,agentsSuffix:`agentes`,upPrefix:`activo {{time}}`,webuiClient:`Cliente WebUI`,disconnected:`Desconectado`,connected:`Conectado`,tuiClient:`Cliente TUI`,terminal:`Terminal`,repl:`REPL`,coordinator:`COORDINADOR`,fleetSummary:`Resumen de flota`,toolCallsLabel:`Llamadas`,tokensLabel:`Tokens`,coordinatingFleet:`Coordinando flota`,donePrefix:`✓ hecho ·`,failedPrefix:`✕ fallido ·`,seenPrefix:`visto hace {{time}}`,availableDesk:`Escritorio disponible`,mailboxHub:`Centro de correo`,unreadSuffix_one:`{{count}} sin leer`,unreadSuffix_other:`{{count}} sin leer`,allClear:`Todo leído`,total:`Total`,unreadLabel:`Sin leer`,liveActivity:`Actividad en vivo`,waitingActivity:`Esperando actividad…`,now:`ahora`,fleetHq:`Cuartel General de Flota WrongStack`,live:`EN VIVO`,legendStatus:`Estado`,legendActive:`Activo`,legendIdle:`Inactivo`,legendError:`Error`,legendConnections:`Conexiones`,legendMail:`Correo`,legendTask:`Tarea`,legendStatusConn:`Estado`,arrange:`Organizar`,arrangeTitle:`Volver los nodos al plano`,feed:`Feed`,feedTitle:`Alternar el feed de actividad en vivo`,broadcast:`Difundir`,broadcastTitle:`Difundir un mensaje a cada sesión en vivo del proyecto`,broadcastToAll:`Difundir a todas las sesiones`,broadcastPlaceholder:`Mensaje a cada agente en vivo del proyecto…`,broadcastSendHint:`⌘/Ctrl+Enter para enviar`,openFullView:`Abrir vista completa de operaciones`,rowStatus:`Estado`,rowModel:`Modelo`,rowTool:`Herramienta`,rowIterations:`Iteraciones`,rowToolCalls:`Llamadas`,rowTokensIn:`Tokens entrada`,rowTokensOut:`Tokens salida`,rowTokensTotal:`Tokens totales`,rowContext:`Contexto`,rowCost:`Coste`,rowLastSeen:`Visto por última vez`,rowSurface:`Superficie`,rowBranch:`Rama`,rowPid:`PID`,rowDir:`Dir.`,rowAgents:`Agentes`,rowUptime:`Tiempo activo`,rowConnections:`Conexiones`,rowTotalMessages:`Mensajes totales`,rowUnread:`Sin leer`,recent:`Recientes`,noSubject:`(sin asunto)`,fullOperationStream:`Flujo completo de operaciones`,closeEsc:`Cerrar (Esc)`,idleDesk:`Escritorio inactivo`,fleetHqLabel:`Cuartel General de Flota`,clientsSuffix_one:`{{count}} cliente`,clientsSuffix_other:`{{count}} clientes`,taskFallback:`tarea`,controlLabel:`control`},be={installTitle:`Instalar habilidad`,createTitle:`Crear habilidad`,exportTitle:`Exportar todas las habilidades como .zip`,checkUpdatesTitle:`Buscar actualizaciones (todas)`,searchPlaceholder:`Buscar habilidades…`,loading:`Cargando…`,noSkills:`Sin habilidades instaladas`,noMatch:`Ninguna habilidad coincide con el filtro`,noDescription:`Sin descripción`,scopeForeign:`Externa`,installHeading:`Instalar Habilidad`,installHint:`Introduce una referencia de repo GitHub (owner/repo) o URL completa.`,installPlaceholder:`ej. wrongstack/skill-name o https://github.com/owner/repo`,installScope:`Ámbito de instalación:`,installBtn:`Instalar`,installedMsg:`Instalada: {{names}}`,installFailed:`Instalación fallida`,createHeading:`Crear Habilidad`,createHint:`Scaffold una nueva habilidad. La primera línea es el trigger.`,nameLabel:`Nombre`,namePlaceholder:`ej. mi-nueva-habilidad`,descLabel:`Descripción / Trigger`,descPlaceholder:`Usa esta habilidad cuando <situación>.
5
- Triggers: el usuario dice "palabra clave", "otra".`,saveIn:`Guardar en:`,createBtn:`Crear Habilidad`,createdMsg:`Creada: {{name}}`,createFailed:`Creación fallida`},xe={noEvents:`Sin eventos.`},Se={pickHint:`Elige un kit — el agente se ceñirá a él.`,gallery:`Galería`,galleryTitle:`Abrir galería de vista previa en vivo`,stackTitle:`Stack objetivo`,loading:`Cargando kits…`,notFound:`No se encontraron kits de diseño.`,bestFor:`Ideal para:`,light:`Claro`,dark:`Oscuro`},Ce={detached:`(separado)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktrees`,baseSuffix:` · base {{base}}`,baseLabel:`base`,cleanOrphans:`Limpiar huérfanos`,cleanOrphansTitle:`Eliminar todos los worktrees huérfanos`,liveBusyTitle:`Un run está activo — deténlo primero`,rescanTitle:`Re-escanear`,removed_one:`Eliminado {{count}} worktree.`,removed_other:`Eliminados {{count}} worktrees.`,failed:`Falló`,mergedIntoBase:`{{branch}} fusionado en la base.`,conflictMerge:`Conflicto al fusionar {{branch}}: {{files}}`,seeGit:`ver git`,mergeFailed:`Fusión fallida: {{reason}}`,unknownReason:`desconocido`,mergeConfirmTitle:`¿Fusionar {{branch}} en {{base}}?`,mergeConfirmMsg:`Squash-fusiona este branch al branch base. Se cancela limpiamente si hay conflicto.`,mergeAction:`Fusionar`,removeConfirmTitle:`¿Eliminar {{branch}}?`,removeConfirmMsg:`Elimina forzosamente el checkout del worktree y borra su branch. El trabajo sin fusionar se descarta.`,empty:`Sin worktrees.`,emptyHint:`Los runs SDD / AutoPhase crean worktrees aislados aquí. Los huérfanos de runs caídos también aparecen.`,actOpenTerm:`Abrir en terminal`,actOpenFolder:`Abrir carpeta`,actViewChanges:`Ver cambios`,actMerge:`Fusionar a la base`,actRemove:`Eliminar / descartar`,live:`activo`,noUncommitted:`Sin cambios sin confirmar`,commitsAhead_one:`{{count}} commit adelante`,commitsAhead_other:`{{count}} commits adelante`,more:`…{{count}} más`},we={heading:`Mapa de Oficina`,headingHint:`Visualiza tu flota como un plano de oficina con el estado de los agentes en vivo.`,statAgents:`Agentes`,statMail:`Correo`,unreadSuffix:` sin leer`,sectionView:`Vista`,sectionDisplay:`Visualización`,sectionBackground:`Fondo`,sectionRecent:`Actividad Reciente`,eventsTrackedSuffix:` eventos rastreados`,recentHint:`Envíos de correo, spawns de agentes y cambios de estado aparecen aquí.`,sectionShortcuts:`Atajos`,sectionLegend:`Leyenda`,hudLabel:`HUD`,hudDesc:`Mostrar overlay de estadísticas de sesión en tiempo real`,hudToggle:`Activar HUD`,minimapLabel:`Minimapa`,minimapDesc:`Mostrar el minimapa de resumen`,minimapToggle:`Activar minimapa`,controlsLabel:`Controles`,controlsDesc:`Mostrar controles de zoom y ajuste`,controlsToggle:`Activar controles`,animateLabel:`Animar aristas`,animateDesc:`Animar el flujo en conexiones activas`,animateToggle:`Activar animación de aristas`,legendLabel:`Mostrar leyenda`,legendDesc:`Mostrar leyenda de estado y conexión`,legendToggle:`Activar leyenda`,feedLabel:`Feed en vivo`,feedDesc:`Banda inferior de actividad reciente entre procesos`,feedToggle:`Activar feed en vivo`,fitView:`Ajustar`,zoomIn:`Acercar`,zoomOut:`Alejar`,resetZoom:`Reiniciar zoom`,legendActive:`Activo (en ejecución)`,legendIdle:`Inactivo`,legendError:`Error`,legendOffline:`Desconectado`,bg:{dots:`Puntos`,lines:`Líneas`,cross:`Cruz`,none:`Ninguno`}},Te={nav:e,brand:t,status:n,menu:r,sidePanel:i,history:a,agents:o,changes:s,inspector:c,nextSteps:l,mailbox:u,sessions:d,sessionPanel:f,fleet:p,context:m,refine:h,specs:g,refresh:_,board:v,debug:y,providerModels:b,dock:x,agentsMonitor:S,terminal:C,sessionWatch:w,sideEffects:T,monitor:E,sdd:D,toolResult:O,design:k,autoPhase:A,collab:j,connection:M,mode:N,cost:P,model:F,modelSwitcher:I,work:L,todos:R,task:z,toolGroup:B,fileRef:V,plan:H,filePicker:U,toast:W,search:G,phase:K,ctxMode:q,transcript:J,autonomy:Y,queue:X,checkpoint:Z,goal:Q,worktree:$,process:ee,diff:te,fallback:ne,liveSessions:re,monacoDiff:ie,errorBody:ae,officeMap:oe,toolInput:se,message:ce,watch:le,shortcuts:ue,sddBoard:de,sddTask:fe,sddWizard:pe,fileExplorer:me,codeEditor:he,analytics:ge,promptLib:_e,skillDetail:ve,office:ye,skillsList:be,timeline:xe,designStudio:Se,worktrees:Ce,officeSettings:we};export{o as agents,S as agentsMonitor,ge as analytics,A as autoPhase,Y as autonomy,v as board,t as brand,s as changes,Z as checkpoint,he as codeEditor,j as collab,M as connection,m as context,P as cost,q as ctxMode,y as debug,Te as default,k as design,Se as designStudio,te as diff,x as dock,ae as errorBody,ne as fallback,me as fileExplorer,U as filePicker,V as fileRef,p as fleet,Q as goal,a as history,c as inspector,re as liveSessions,u as mailbox,r as menu,ce as message,N as mode,F as model,I as modelSwitcher,ie as monacoDiff,E as monitor,e as nav,l as nextSteps,ye as office,oe as officeMap,we as officeSettings,K as phase,H as plan,ee as process,_e as promptLib,b as providerModels,X as queue,h as refine,_ as refresh,D as sdd,de as sddBoard,fe as sddTask,pe as sddWizard,G as search,f as sessionPanel,w as sessionWatch,d as sessions,ue as shortcuts,T as sideEffects,i as sidePanel,ve as skillDetail,be as skillsList,g as specs,n as status,z as task,C as terminal,xe as timeline,W as toast,R as todos,B as toolGroup,se as toolInput,O as toolResult,J as transcript,le as watch,L as work,$ as worktree,Ce as worktrees};