@wrongstack/webui 0.297.0 → 0.298.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 (530) hide show
  1. package/dist/assets/AgentRosterView-C8j2NuD1.js +11 -0
  2. package/dist/assets/{AnalyticsDashboard-CkceglT6.js → AnalyticsDashboard-D2_HYmYw.js} +1 -1
  3. package/dist/assets/AudienceMemoryPanel-SzXptIQj.js +3 -0
  4. package/dist/assets/{ChangesView-DouwIaDk.js → ChangesView-D31wr7_h.js} +1 -1
  5. package/dist/assets/ChronicleDashboard-B7P4f1hr.js +1 -0
  6. package/dist/assets/CodeEditor-BRDwx8Y-.js +1 -0
  7. package/dist/assets/CodeMap-uabWaeJH.js +1 -0
  8. package/dist/assets/{CronJobsPanel-CAImDL8t.js → CronJobsPanel-C9shS0P2.js} +1 -1
  9. package/dist/assets/DeadCodeScanPanel-CHud_Ugp.js +2 -0
  10. package/dist/assets/{DebugDashboard-DLNPZIEI.js → DebugDashboard-DmqpGXnx.js} +1 -1
  11. package/dist/assets/{DesignGalleryView-D0azMq2e.js → DesignGalleryView-CnAHpKa1.js} +1 -1
  12. package/dist/assets/GoalView-DaptZIKr.js +1 -0
  13. package/dist/assets/KanbanView-DA5Ulb8C.js +3 -0
  14. package/dist/assets/MailboxDetailView-CQtHeWVs.js +1 -0
  15. package/dist/assets/MemoryManager-BWuSS0Pg.js +1 -0
  16. package/dist/assets/{ModelPicker-CN-UD3lc.js → ModelPicker-Dt0wCi90.js} +1 -1
  17. package/dist/assets/OfficeMapPanel-CUNRI3X7.js +4 -0
  18. package/dist/assets/{ProcessMonitor-ButM8C0T.js → ProcessMonitor-Dq760Vqm.js} +1 -1
  19. package/dist/assets/QueuePanel-ZcJliKcY.js +1 -0
  20. package/dist/assets/{RefreshDebugView-DVvWsh9A.js → RefreshDebugView-SivBV0LN.js} +1 -1
  21. package/dist/assets/SageTabs-CGrc4PuM.js +2 -0
  22. package/dist/assets/SddHub-oU47Hv8Y.js +2 -0
  23. package/dist/assets/SessionsDashboard-Dp-Mr844.js +1 -0
  24. package/dist/assets/SetupScreen-BWA_dTU0.js +1 -0
  25. package/dist/assets/SkillDetailView-DmRgd_uu.js +3 -0
  26. package/dist/assets/{SpecsView-BJs_okSx.js → SpecsView-CzYtHNbj.js} +1 -1
  27. package/dist/assets/TechStackView-p9PKj9pQ.js +1 -0
  28. package/dist/assets/{TerminalPanel-W2V0X7b9.js → TerminalPanel-BRSYloOD.js} +1 -1
  29. package/dist/assets/{Toaster-CbcX_Cou.js → Toaster-Bd6ckyrP.js} +1 -1
  30. package/dist/assets/{activity-CbbZyUMG.js → activity-Bo6DncWg.js} +1 -1
  31. package/dist/assets/{activity-C4z6-WoZ.js → activity-C34aPcFU.js} +1 -1
  32. package/dist/assets/{activity-B4Ngvkan.js → activity-CBdzUJQ_.js} +1 -1
  33. package/dist/assets/{activity-B8uejnae.js → activity-CLYyxeC6.js} +1 -1
  34. package/dist/assets/{activity-qoJ3grs0.js → activity-Cv_EIWjY.js} +1 -1
  35. package/dist/assets/{activity-B5MvPWYV.js → activity-Wr0_Gb8A.js} +1 -1
  36. package/dist/assets/{activity-D57y5l1T.js → activity-kCY0dGRC.js} +1 -1
  37. package/dist/assets/{button-uGqXvobk.js → button-Clh96jMK.js} +1 -1
  38. package/dist/assets/chat-store-CWhuSNod.js +17 -0
  39. package/dist/assets/{codemap-activity-store-DP3mCZu1.js → codemap-activity-store-C1XWbXeZ.js} +1 -1
  40. package/dist/assets/codemap-index-store-DDT3gP6t.js +1 -0
  41. package/dist/assets/common-BfVFjVhf.js +1 -0
  42. package/dist/assets/common-C5hY-d_0.js +1 -0
  43. package/dist/assets/{dialog-CT1PTjzK.js → dialog-DYJUM0p1.js} +1 -1
  44. package/dist/assets/{empty-state-CdyXy96A.js → empty-state-BV-Y8c35.js} +1 -1
  45. package/dist/assets/{i18n-1BkaqMgr.js → i18n-DOuSY1L8.js} +2 -2
  46. package/dist/assets/index-C09Opuro.css +1 -0
  47. package/dist/assets/index-DxZTscTk.js +132 -0
  48. package/dist/assets/{input-B-VCX2sG.js → input-CW-Yw2Wu.js} +1 -1
  49. package/dist/assets/{mailbox-store-DVoNbOZr.js → mailbox-store-_8voaug1.js} +1 -1
  50. package/dist/assets/markdown-sSmz-Ua_.js +44 -0
  51. package/dist/assets/{progress-ring-CFOvGxw7.js → progress-ring-DPV94fM-.js} +1 -1
  52. package/dist/assets/{roster-ws-DXm0krqH.js → roster-ws-q8Cp6us7.js} +1 -1
  53. package/dist/assets/session-store-D4JWBP5w.js +1 -0
  54. package/dist/assets/settings-B9EPDhAL.js +1 -0
  55. package/dist/assets/{settings-DEmKlLmn.js → settings-BBNOO9wC.js} +1 -1
  56. package/dist/assets/settings-BoXoFVdx.js +1 -0
  57. package/dist/assets/settings-CkXKHC77.js +1 -0
  58. package/dist/assets/settings-DWIDXI2K.js +1 -0
  59. package/dist/assets/settings-r_KOGrbF.js +1 -0
  60. package/dist/assets/settings-tyKsHhya.js +1 -0
  61. package/dist/assets/{shared-jvJxtKc5.js → shared-DidGznBo.js} +1 -1
  62. package/dist/assets/stores-CpZiOiOP.js +7 -0
  63. package/dist/assets/ui-store-C-oyG_br.js +1 -0
  64. package/dist/assets/useWebSocket-BTXT0rOW.js +28 -0
  65. package/dist/assets/{utils-CN2sfDVP.js → utils-DxDx8yib.js} +1 -1
  66. package/dist/assets/{vendor-2VBBgNb5.js → vendor-BTDGplXK.js} +28 -28
  67. package/dist/assets/{view-navigation-Cgy5xh9q.js → view-navigation-BRtuAwZo.js} +1 -1
  68. package/dist/assets/ws-client-DqIqzkfU.js +1 -0
  69. package/dist/components/ChatInput/refine-panel-host.d.ts +9 -1
  70. package/dist/components/DeadCodeScanPanel/DeadCodeScanPanel.d.ts +1 -3
  71. package/dist/components/PanelSuspense.d.ts +8 -0
  72. package/dist/components/SettingsPanel/DisplaySection.d.ts +20 -0
  73. package/dist/components/ViewRouter.d.ts +12 -0
  74. package/dist/components/WorkbenchTopbar.d.ts +53 -0
  75. package/dist/components/codemap-model.d.ts +2 -0
  76. package/dist/hooks/useViewport.d.ts +38 -0
  77. package/dist/hooks/useWebSocket.d.ts +1 -0
  78. package/dist/index.html +24 -25
  79. package/dist/index.js +55560 -54349
  80. package/dist/lib/view-navigation.d.ts +1 -1
  81. package/dist/lib/ws-client.d.ts +16 -8
  82. package/dist/providers.json +10 -0
  83. package/dist/stores/chat-store.d.ts +36 -3
  84. package/dist/stores/config-store.d.ts +0 -2
  85. package/dist/stores/local-prefs.d.ts +20 -0
  86. package/dist/stores/session-store.d.ts +3 -0
  87. package/dist/stores/ui-store.d.ts +8 -1
  88. package/dist/types/client-message.d.ts +1 -0
  89. package/dist/types/connections.d.ts +7 -1
  90. package/dist/types/system.d.ts +4 -0
  91. package/package.json +8 -7
  92. package/dist/App.d.ts.map +0 -1
  93. package/dist/assets/AgentRosterView-Cje2NBtU.js +0 -11
  94. package/dist/assets/AudienceMemoryPanel-DB-8ISNP.js +0 -3
  95. package/dist/assets/ChronicleDashboard-B4Khm6hu.js +0 -1
  96. package/dist/assets/CodeEditor-CrKbA5s8.js +0 -1
  97. package/dist/assets/CodeMap-Dz8yNlUe.js +0 -1
  98. package/dist/assets/DeadCodeScanPanel-C5ehBTQF.js +0 -2
  99. package/dist/assets/GoalView-gtQRK78W.js +0 -1
  100. package/dist/assets/KanbanView-BXKe19EI.js +0 -3
  101. package/dist/assets/LazyMarkdown-BGwFjYKr.js +0 -3
  102. package/dist/assets/MailboxDetailView-D4fXipos.js +0 -1
  103. package/dist/assets/MemoryManager-D_rquas9.js +0 -1
  104. package/dist/assets/OfficeMapPanel-CJFrTNmg.js +0 -4
  105. package/dist/assets/QueuePanel-C5oihwYM.js +0 -1
  106. package/dist/assets/SageTabs-C9vAgvCD.js +0 -2
  107. package/dist/assets/SddHub-D_nsWjuM.js +0 -2
  108. package/dist/assets/SessionsDashboard-DdwU3Ma5.js +0 -1
  109. package/dist/assets/SetupScreen-CQCfLdPI.js +0 -1
  110. package/dist/assets/SkillDetailView-mVxi-9jo.js +0 -3
  111. package/dist/assets/TechStackView-BZ4M7TYc.js +0 -1
  112. package/dist/assets/chat-store-CM1dMeuY.js +0 -17
  113. package/dist/assets/codemap-index-store-DyAe3ZYJ.js +0 -1
  114. package/dist/assets/common-D8_r1x8x.js +0 -1
  115. package/dist/assets/common-suUxW9sA.js +0 -1
  116. package/dist/assets/index-BPfIz78e.js +0 -131
  117. package/dist/assets/index-BlceaIyu.css +0 -1
  118. package/dist/assets/markdown-L6DLSM7f.js +0 -44
  119. package/dist/assets/session-store-BsNYnfOc.js +0 -1
  120. package/dist/assets/settings-C5F2tQ7C.js +0 -1
  121. package/dist/assets/settings-Cdk8i_p6.js +0 -1
  122. package/dist/assets/settings-D6wFOw5n.js +0 -1
  123. package/dist/assets/settings-DCEOkxYE.js +0 -1
  124. package/dist/assets/settings-DsflqNn0.js +0 -1
  125. package/dist/assets/settings-skShEZ2B.js +0 -1
  126. package/dist/assets/stores-mpa0202y.js +0 -6
  127. package/dist/assets/ui-store-CS-njcmT.js +0 -1
  128. package/dist/assets/useWebSocket-Dh3aAFDE.js +0 -28
  129. package/dist/assets/ws-client-WVGn8ORh.js +0 -1
  130. package/dist/components/AgentOfficeDetails.d.ts.map +0 -1
  131. package/dist/components/AgentOfficeView/model.d.ts.map +0 -1
  132. package/dist/components/AgentOfficeView.d.ts.map +0 -1
  133. package/dist/components/AgentRosterCatalogTab.d.ts.map +0 -1
  134. package/dist/components/AgentRosterChrome.d.ts.map +0 -1
  135. package/dist/components/AgentRosterLiveTab.d.ts.map +0 -1
  136. package/dist/components/AgentRosterSelfLearningTab.d.ts.map +0 -1
  137. package/dist/components/AgentRosterView.d.ts.map +0 -1
  138. package/dist/components/AgentRuntimePolicyEditor.d.ts.map +0 -1
  139. package/dist/components/AgentTranscript.d.ts.map +0 -1
  140. package/dist/components/AgentsMonitor.d.ts.map +0 -1
  141. package/dist/components/AgentsPage/format.d.ts.map +0 -1
  142. package/dist/components/AgentsPage.d.ts.map +0 -1
  143. package/dist/components/AnalyticsDashboard.d.ts.map +0 -1
  144. package/dist/components/AudienceMemoryPanel.d.ts.map +0 -1
  145. package/dist/components/AutonomyPicker.d.ts.map +0 -1
  146. package/dist/components/AvailabilityCalendarEditor.d.ts.map +0 -1
  147. package/dist/components/BoardView.d.ts.map +0 -1
  148. package/dist/components/ChangesView.d.ts.map +0 -1
  149. package/dist/components/ChatInput/code-detect.d.ts.map +0 -1
  150. package/dist/components/ChatInput/draft-token-counter.d.ts.map +0 -1
  151. package/dist/components/ChatInput/file-mention-picker.d.ts.map +0 -1
  152. package/dist/components/ChatInput/image-attach-control.d.ts.map +0 -1
  153. package/dist/components/ChatInput/image-attachments.d.ts.map +0 -1
  154. package/dist/components/ChatInput/queued-messages.d.ts.map +0 -1
  155. package/dist/components/ChatInput/refine-panel-host.d.ts.map +0 -1
  156. package/dist/components/ChatInput/slash-commands.d.ts.map +0 -1
  157. package/dist/components/ChatInput/slash-popup.d.ts.map +0 -1
  158. package/dist/components/ChatInput/slash-routing.d.ts.map +0 -1
  159. package/dist/components/ChatInput/stop-controls.d.ts.map +0 -1
  160. package/dist/components/ChatInput/use-paste-drop.d.ts.map +0 -1
  161. package/dist/components/ChatInput.d.ts.map +0 -1
  162. package/dist/components/ChatView/ThinkingBubble.d.ts.map +0 -1
  163. package/dist/components/ChatView/index.d.ts.map +0 -1
  164. package/dist/components/ChatView/utils.d.ts.map +0 -1
  165. package/dist/components/ChatView.d.ts.map +0 -1
  166. package/dist/components/CheckpointTimeline.d.ts.map +0 -1
  167. package/dist/components/ChipMultiSelect.d.ts.map +0 -1
  168. package/dist/components/ChronicleDashboard.d.ts.map +0 -1
  169. package/dist/components/ChroniclePipelineStrip.d.ts.map +0 -1
  170. package/dist/components/CodeEditor.d.ts.map +0 -1
  171. package/dist/components/CodeMap.d.ts.map +0 -1
  172. package/dist/components/CodeMapActivityDrawer.d.ts.map +0 -1
  173. package/dist/components/CodeMapActivityHelpers.d.ts.map +0 -1
  174. package/dist/components/CodeMapActivityStreamPanel.d.ts.map +0 -1
  175. package/dist/components/CodeMapCanvasSurface.d.ts.map +0 -1
  176. package/dist/components/CodeMapCanvasToolbar.d.ts.map +0 -1
  177. package/dist/components/CodeMapConfig.d.ts.map +0 -1
  178. package/dist/components/CodeMapDirectoryTree.d.ts.map +0 -1
  179. package/dist/components/CodeMapFlowState.d.ts.map +0 -1
  180. package/dist/components/CodeMapHeader.d.ts.map +0 -1
  181. package/dist/components/CodeMapLiveOverlay.d.ts.map +0 -1
  182. package/dist/components/CodeMapRelationInspector.d.ts.map +0 -1
  183. package/dist/components/CodeMapRelations.d.ts.map +0 -1
  184. package/dist/components/CodeMapSearchResults.d.ts.map +0 -1
  185. package/dist/components/CodeMapSelectedNodeSummary.d.ts.map +0 -1
  186. package/dist/components/CodeMapTreeSidebar.d.ts.map +0 -1
  187. package/dist/components/CodeMapVisuals.d.ts.map +0 -1
  188. package/dist/components/CollabPanel.d.ts.map +0 -1
  189. package/dist/components/CommandPalette/export-utils.d.ts.map +0 -1
  190. package/dist/components/CommandPalette/index.d.ts.map +0 -1
  191. package/dist/components/CommandPalette.d.ts.map +0 -1
  192. package/dist/components/ConfirmDialog.d.ts.map +0 -1
  193. package/dist/components/ConfirmModal.d.ts.map +0 -1
  194. package/dist/components/ConnectionBanner.d.ts.map +0 -1
  195. package/dist/components/ContextBar.d.ts.map +0 -1
  196. package/dist/components/ContextBreakdownModal.d.ts.map +0 -1
  197. package/dist/components/ContextDashboard.d.ts.map +0 -1
  198. package/dist/components/ContextMemoryMonitor.d.ts.map +0 -1
  199. package/dist/components/ContextModePicker.d.ts.map +0 -1
  200. package/dist/components/CostChip.d.ts.map +0 -1
  201. package/dist/components/CronJobsPanel.d.ts.map +0 -1
  202. package/dist/components/CronTrigger.d.ts.map +0 -1
  203. package/dist/components/CustomRosterPanel.d.ts.map +0 -1
  204. package/dist/components/DeadCodeScanPanel/DeadCodeScanPanel.d.ts.map +0 -1
  205. package/dist/components/DebugDashboard.d.ts.map +0 -1
  206. package/dist/components/DependencyGraph.d.ts.map +0 -1
  207. package/dist/components/DesignGalleryView.d.ts.map +0 -1
  208. package/dist/components/DiffView.d.ts.map +0 -1
  209. package/dist/components/ErrorBoundary.d.ts.map +0 -1
  210. package/dist/components/FallbackEditor.d.ts.map +0 -1
  211. package/dist/components/FileActivityDrawer.d.ts.map +0 -1
  212. package/dist/components/FileExplorer.d.ts.map +0 -1
  213. package/dist/components/FilePicker.d.ts.map +0 -1
  214. package/dist/components/FileReferenceChip.d.ts.map +0 -1
  215. package/dist/components/FleetMonitor.d.ts.map +0 -1
  216. package/dist/components/FleetPanel.d.ts.map +0 -1
  217. package/dist/components/GoalPanel.d.ts.map +0 -1
  218. package/dist/components/GoalView.d.ts.map +0 -1
  219. package/dist/components/InspectorPanel.d.ts.map +0 -1
  220. package/dist/components/KanbanAgentRunPanel.d.ts.map +0 -1
  221. package/dist/components/KanbanBoardChrome.d.ts.map +0 -1
  222. package/dist/components/KanbanBoardSidebar.d.ts.map +0 -1
  223. package/dist/components/KanbanBoardState.d.ts.map +0 -1
  224. package/dist/components/KanbanBoundaryEditor.d.ts.map +0 -1
  225. package/dist/components/KanbanCleanerAlert.d.ts.map +0 -1
  226. package/dist/components/KanbanColumnView.d.ts.map +0 -1
  227. package/dist/components/KanbanDecompositionPanel.d.ts.map +0 -1
  228. package/dist/components/KanbanQueueHealthBar.d.ts.map +0 -1
  229. package/dist/components/KanbanRunControls.d.ts.map +0 -1
  230. package/dist/components/KanbanTaskActivityRecorder.d.ts.map +0 -1
  231. package/dist/components/KanbanTaskCompletionChecks.d.ts.map +0 -1
  232. package/dist/components/KanbanTaskFields.d.ts.map +0 -1
  233. package/dist/components/KanbanTaskInspector.d.ts.map +0 -1
  234. package/dist/components/KanbanTaskOptions.d.ts.map +0 -1
  235. package/dist/components/KanbanTaskTree.d.ts.map +0 -1
  236. package/dist/components/KanbanVerificationDashboard.d.ts.map +0 -1
  237. package/dist/components/KanbanView.d.ts.map +0 -1
  238. package/dist/components/KanbanViewModeTabs.d.ts.map +0 -1
  239. package/dist/components/MailboxDetailView.d.ts.map +0 -1
  240. package/dist/components/MailboxPanel.d.ts.map +0 -1
  241. package/dist/components/MemoryManager/DeleteMemoryDialog.d.ts.map +0 -1
  242. package/dist/components/MemoryManager/MemoryDetail.d.ts.map +0 -1
  243. package/dist/components/MemoryManager/MemoryDrawer.d.ts.map +0 -1
  244. package/dist/components/MemoryManager/MemoryEditor.d.ts.map +0 -1
  245. package/dist/components/MemoryManager/MemoryFilters.d.ts.map +0 -1
  246. package/dist/components/MemoryManager/MemoryGraph.d.ts.map +0 -1
  247. package/dist/components/MemoryManager/MemoryInjectorTrace.d.ts.map +0 -1
  248. package/dist/components/MemoryManager/MemoryLifecycleTrace.d.ts.map +0 -1
  249. package/dist/components/MemoryManager/MemoryList.d.ts.map +0 -1
  250. package/dist/components/MemoryManager/MemoryManagerEmpty.d.ts.map +0 -1
  251. package/dist/components/MemoryManager/SageTabs.d.ts.map +0 -1
  252. package/dist/components/MemoryManager/index.d.ts.map +0 -1
  253. package/dist/components/MemoryManager/selectors.d.ts.map +0 -1
  254. package/dist/components/MemoryManager/shared.d.ts.map +0 -1
  255. package/dist/components/MessageBubble/AttachmentGallery.d.ts.map +0 -1
  256. package/dist/components/MessageBubble/CopyButton.d.ts.map +0 -1
  257. package/dist/components/MessageBubble/ErrorBody.d.ts.map +0 -1
  258. package/dist/components/MessageBubble/LazyMarkdown.d.ts.map +0 -1
  259. package/dist/components/MessageBubble/StreamingMarkdown.d.ts.map +0 -1
  260. package/dist/components/MessageBubble/ToolInputView.d.ts.map +0 -1
  261. package/dist/components/MessageBubble/ToolLedgerCard.d.ts.map +0 -1
  262. package/dist/components/MessageBubble/index.d.ts.map +0 -1
  263. package/dist/components/MessageBubble/utils.d.ts.map +0 -1
  264. package/dist/components/MessageBubble.d.ts.map +0 -1
  265. package/dist/components/ModePicker.d.ts.map +0 -1
  266. package/dist/components/ModelPickDialog.d.ts.map +0 -1
  267. package/dist/components/ModelPicker.d.ts.map +0 -1
  268. package/dist/components/ModelSelectDialog.d.ts.map +0 -1
  269. package/dist/components/MonacoDiffView.d.ts.map +0 -1
  270. package/dist/components/NextStepsBar.d.ts.map +0 -1
  271. package/dist/components/OfficeMapCanvas/CanvasPanels.d.ts.map +0 -1
  272. package/dist/components/OfficeMapCanvas/Hud.d.ts.map +0 -1
  273. package/dist/components/OfficeMapCanvas/Overlays.d.ts.map +0 -1
  274. package/dist/components/OfficeMapCanvas/SelectedNodeDetailPanel.d.ts.map +0 -1
  275. package/dist/components/OfficeMapCanvas/edges.d.ts.map +0 -1
  276. package/dist/components/OfficeMapCanvas/nodes.d.ts.map +0 -1
  277. package/dist/components/OfficeMapCanvas/resolve.d.ts.map +0 -1
  278. package/dist/components/OfficeMapCanvas/use-recently-finished.d.ts.map +0 -1
  279. package/dist/components/OfficeMapCanvas/utils.d.ts.map +0 -1
  280. package/dist/components/OfficeMapCanvas.d.ts.map +0 -1
  281. package/dist/components/OfficeMapPanel.d.ts.map +0 -1
  282. package/dist/components/OfficeMapSettingsPanel.d.ts.map +0 -1
  283. package/dist/components/PhasePanel.d.ts.map +0 -1
  284. package/dist/components/PlanPanel.d.ts.map +0 -1
  285. package/dist/components/ProcessMonitor.d.ts.map +0 -1
  286. package/dist/components/PromptLibraryModal.d.ts.map +0 -1
  287. package/dist/components/ProviderWaitingRoom.d.ts.map +0 -1
  288. package/dist/components/QueuePanel.d.ts.map +0 -1
  289. package/dist/components/QuickModelSwitcher.d.ts.map +0 -1
  290. package/dist/components/QuickModelSwitcher.filter.d.ts.map +0 -1
  291. package/dist/components/RefinePanel.d.ts.map +0 -1
  292. package/dist/components/RefreshDebugView.d.ts.map +0 -1
  293. package/dist/components/SageMemoryCard.d.ts.map +0 -1
  294. package/dist/components/SddActivityFeed.d.ts.map +0 -1
  295. package/dist/components/SddBoardView.d.ts.map +0 -1
  296. package/dist/components/SddDestroyDialog.d.ts.map +0 -1
  297. package/dist/components/SddFlowGraph.d.ts.map +0 -1
  298. package/dist/components/SddHub.d.ts.map +0 -1
  299. package/dist/components/SddKanbanView.d.ts.map +0 -1
  300. package/dist/components/SddTaskDrawer.d.ts.map +0 -1
  301. package/dist/components/SddWizard.d.ts.map +0 -1
  302. package/dist/components/SearchOverlay.d.ts.map +0 -1
  303. package/dist/components/SendButton.d.ts.map +0 -1
  304. package/dist/components/SessionWatchPanel.d.ts.map +0 -1
  305. package/dist/components/SessionsDashboard.d.ts.map +0 -1
  306. package/dist/components/SettingsPanel/BasicSettingsTabs.d.ts.map +0 -1
  307. package/dist/components/SettingsPanel/BrainSection.d.ts.map +0 -1
  308. package/dist/components/SettingsPanel/ChimeraSettingsPanel.d.ts.map +0 -1
  309. package/dist/components/SettingsPanel/ClearAllowlistDialog.d.ts.map +0 -1
  310. package/dist/components/SettingsPanel/ConnectionsHealthSection.d.ts.map +0 -1
  311. package/dist/components/SettingsPanel/FallbacksSection.d.ts.map +0 -1
  312. package/dist/components/SettingsPanel/FleetSection.d.ts.map +0 -1
  313. package/dist/components/SettingsPanel/IntegrationsSection.d.ts.map +0 -1
  314. package/dist/components/SettingsPanel/MCPSection.d.ts.map +0 -1
  315. package/dist/components/SettingsPanel/ModelSection.d.ts.map +0 -1
  316. package/dist/components/SettingsPanel/OAuthLoginSection.d.ts.map +0 -1
  317. package/dist/components/SettingsPanel/PluginToggleList.d.ts.map +0 -1
  318. package/dist/components/SettingsPanel/PreferenceControls.d.ts.map +0 -1
  319. package/dist/components/SettingsPanel/PreferenceToggle.d.ts.map +0 -1
  320. package/dist/components/SettingsPanel/ProviderModelsPanel.d.ts.map +0 -1
  321. package/dist/components/SettingsPanel/ProviderModelsPanel.filter.d.ts.map +0 -1
  322. package/dist/components/SettingsPanel/ProviderSection.d.ts.map +0 -1
  323. package/dist/components/SettingsPanel/RoutingSection.d.ts.map +0 -1
  324. package/dist/components/SettingsPanel/SecuritySection.d.ts.map +0 -1
  325. package/dist/components/SettingsPanel/ShadowSection.d.ts.map +0 -1
  326. package/dist/components/SettingsPanel/ToolsSection.d.ts.map +0 -1
  327. package/dist/components/SettingsPanel/brain-section-options.d.ts.map +0 -1
  328. package/dist/components/SettingsPanel/index.d.ts.map +0 -1
  329. package/dist/components/SettingsPanel/local-presets.d.ts.map +0 -1
  330. package/dist/components/SettingsPanel/official-servers.d.ts.map +0 -1
  331. package/dist/components/SettingsPanel/settings-panel-reducers.d.ts.map +0 -1
  332. package/dist/components/SettingsPanel/undo-send-decision.d.ts.map +0 -1
  333. package/dist/components/SettingsPanel.d.ts.map +0 -1
  334. package/dist/components/SetupScreen/CustomProviderSection.d.ts.map +0 -1
  335. package/dist/components/SetupScreen/ModelEditor.d.ts.map +0 -1
  336. package/dist/components/SetupScreen/ProviderKeyCard.d.ts.map +0 -1
  337. package/dist/components/SetupScreen/key-operation.d.ts.map +0 -1
  338. package/dist/components/SetupScreen/popular-providers.d.ts.map +0 -1
  339. package/dist/components/SetupScreen/relative-time.d.ts.map +0 -1
  340. package/dist/components/SetupScreen/types.d.ts.map +0 -1
  341. package/dist/components/SetupScreen.d.ts.map +0 -1
  342. package/dist/components/ShortcutsOverlay.d.ts.map +0 -1
  343. package/dist/components/SideEffectTimeline.d.ts.map +0 -1
  344. package/dist/components/SidePanel/AgentsPanel.d.ts.map +0 -1
  345. package/dist/components/SidePanel/ChangesPanel.d.ts.map +0 -1
  346. package/dist/components/SidePanel/DesignStudioPanel.d.ts.map +0 -1
  347. package/dist/components/SidePanel/SessionList.d.ts.map +0 -1
  348. package/dist/components/SidePanel/SessionPanel.d.ts.map +0 -1
  349. package/dist/components/SidePanel/SkillsList.d.ts.map +0 -1
  350. package/dist/components/SidePanel/WorktreesPanel.d.ts.map +0 -1
  351. package/dist/components/SidePanel/index.d.ts.map +0 -1
  352. package/dist/components/SkillDetailView.d.ts.map +0 -1
  353. package/dist/components/SpecsView.d.ts.map +0 -1
  354. package/dist/components/TaskActivityTimeline.d.ts.map +0 -1
  355. package/dist/components/TaskBoard.d.ts.map +0 -1
  356. package/dist/components/TaskCard.d.ts.map +0 -1
  357. package/dist/components/TaskExecutionAttempts.d.ts.map +0 -1
  358. package/dist/components/TaskIntelligencePanel.d.ts.map +0 -1
  359. package/dist/components/TaskRiskPanel.d.ts.map +0 -1
  360. package/dist/components/TaskVerificationSection.d.ts.map +0 -1
  361. package/dist/components/TasksPanel.d.ts.map +0 -1
  362. package/dist/components/TechStackView/DependencyDetail.d.ts.map +0 -1
  363. package/dist/components/TechStackView/DependencyTable.d.ts.map +0 -1
  364. package/dist/components/TechStackView/FindingsPanel.d.ts.map +0 -1
  365. package/dist/components/TechStackView/TechStackToolbar.d.ts.map +0 -1
  366. package/dist/components/TechStackView/index.d.ts.map +0 -1
  367. package/dist/components/TechStackView/shared.d.ts.map +0 -1
  368. package/dist/components/TerminalPanel.d.ts.map +0 -1
  369. package/dist/components/ThemeProvider.d.ts.map +0 -1
  370. package/dist/components/Toaster.d.ts.map +0 -1
  371. package/dist/components/TodosPanel.d.ts.map +0 -1
  372. package/dist/components/ToolGroup.d.ts.map +0 -1
  373. package/dist/components/ToolResult.d.ts.map +0 -1
  374. package/dist/components/UpdateBanner.d.ts.map +0 -1
  375. package/dist/components/VerificationReportPanel.d.ts.map +0 -1
  376. package/dist/components/WatchMessageBubble.d.ts.map +0 -1
  377. package/dist/components/WelcomeScreen.d.ts.map +0 -1
  378. package/dist/components/WorkDashboard.d.ts.map +0 -1
  379. package/dist/components/WorkspaceDock.d.ts.map +0 -1
  380. package/dist/components/WorktreeGraph.d.ts.map +0 -1
  381. package/dist/components/WorktreeLanes.d.ts.map +0 -1
  382. package/dist/components/WorktreeOrphans.d.ts.map +0 -1
  383. package/dist/components/activity-bar/index.d.ts.map +0 -1
  384. package/dist/components/activity-bar/nav.d.ts.map +0 -1
  385. package/dist/components/agent-roster-data.d.ts.map +0 -1
  386. package/dist/components/agents/AgentDetailSection.d.ts.map +0 -1
  387. package/dist/components/agents/AgentRosterCard.d.ts.map +0 -1
  388. package/dist/components/agents/FleetSummaryBar.d.ts.map +0 -1
  389. package/dist/components/codemap-model.d.ts.map +0 -1
  390. package/dist/components/context-editor/ContextWindowEditor.d.ts.map +0 -1
  391. package/dist/components/dashboard-primitives.d.ts.map +0 -1
  392. package/dist/components/index.d.ts.map +0 -1
  393. package/dist/components/monaco-theme.d.ts.map +0 -1
  394. package/dist/components/toaster-helpers.d.ts.map +0 -1
  395. package/dist/components/ui/PickerCardList.d.ts.map +0 -1
  396. package/dist/components/ui/api-key-display.d.ts.map +0 -1
  397. package/dist/components/ui/badge.d.ts.map +0 -1
  398. package/dist/components/ui/button.d.ts.map +0 -1
  399. package/dist/components/ui/concurrency-gauge.d.ts.map +0 -1
  400. package/dist/components/ui/dialog.d.ts.map +0 -1
  401. package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
  402. package/dist/components/ui/empty-state.d.ts.map +0 -1
  403. package/dist/components/ui/event-timeline.d.ts.map +0 -1
  404. package/dist/components/ui/fleet-agent-row.d.ts.map +0 -1
  405. package/dist/components/ui/index.d.ts.map +0 -1
  406. package/dist/components/ui/input.d.ts.map +0 -1
  407. package/dist/components/ui/pagination.d.ts.map +0 -1
  408. package/dist/components/ui/progress-ring.d.ts.map +0 -1
  409. package/dist/components/ui/scroll-area.d.ts.map +0 -1
  410. package/dist/components/ui/sheet.d.ts.map +0 -1
  411. package/dist/components/ui/sparkline.d.ts.map +0 -1
  412. package/dist/components/ui/tabs.d.ts.map +0 -1
  413. package/dist/components/useAgentRosterData.d.ts.map +0 -1
  414. package/dist/components/useKanbanRegistrySessionIds.d.ts.map +0 -1
  415. package/dist/hooks/index.d.ts.map +0 -1
  416. package/dist/hooks/use-ws-handlers.d.ts.map +0 -1
  417. package/dist/hooks/useDesktopBridge.d.ts.map +0 -1
  418. package/dist/hooks/useF5Resilience.d.ts.map +0 -1
  419. package/dist/hooks/useFieldKeyboardNav.d.ts.map +0 -1
  420. package/dist/hooks/useFleetPolling.d.ts.map +0 -1
  421. package/dist/hooks/useGitInfo.d.ts.map +0 -1
  422. package/dist/hooks/useGlobalKeyboardShortcuts.d.ts.map +0 -1
  423. package/dist/hooks/useHorizontalScroll.d.ts.map +0 -1
  424. package/dist/hooks/useKanbanMeta.d.ts.map +0 -1
  425. package/dist/hooks/useMemoryForFile.d.ts.map +0 -1
  426. package/dist/hooks/usePagination.d.ts.map +0 -1
  427. package/dist/hooks/useProviderModels.d.ts.map +0 -1
  428. package/dist/hooks/useScrollPosition.d.ts.map +0 -1
  429. package/dist/hooks/useWebSocket.d.ts.map +0 -1
  430. package/dist/hooks/ws-handlers/chat-handlers.d.ts.map +0 -1
  431. package/dist/hooks/ws-handlers/coordinator-handlers.d.ts.map +0 -1
  432. package/dist/hooks/ws-handlers/files-mailbox-handlers.d.ts.map +0 -1
  433. package/dist/hooks/ws-handlers/fleet-handlers.d.ts.map +0 -1
  434. package/dist/hooks/ws-handlers/misc-handlers.d.ts.map +0 -1
  435. package/dist/hooks/ws-handlers/session-handlers.d.ts.map +0 -1
  436. package/dist/hooks/ws-handlers/techstack-handlers.d.ts.map +0 -1
  437. package/dist/hooks/ws-handlers.d.ts.map +0 -1
  438. package/dist/i18n/index.d.ts.map +0 -1
  439. package/dist/i18n/languages.d.ts.map +0 -1
  440. package/dist/index.css.map +0 -7
  441. package/dist/index.js.map +0 -7
  442. package/dist/lib/accent-colors.d.ts.map +0 -1
  443. package/dist/lib/agent-office.d.ts.map +0 -1
  444. package/dist/lib/agent-status.d.ts.map +0 -1
  445. package/dist/lib/chime.d.ts.map +0 -1
  446. package/dist/lib/color.d.ts.map +0 -1
  447. package/dist/lib/completion.d.ts.map +0 -1
  448. package/dist/lib/core-browser-shim.d.ts.map +0 -1
  449. package/dist/lib/default-prompt-pools.d.ts.map +0 -1
  450. package/dist/lib/desktop-host.d.ts.map +0 -1
  451. package/dist/lib/desktop-shell.d.ts.map +0 -1
  452. package/dist/lib/fallback-ref.d.ts.map +0 -1
  453. package/dist/lib/favicon.d.ts.map +0 -1
  454. package/dist/lib/file-icons.d.ts.map +0 -1
  455. package/dist/lib/goal.d.ts.map +0 -1
  456. package/dist/lib/index.d.ts.map +0 -1
  457. package/dist/lib/kanban-cleaner.d.ts.map +0 -1
  458. package/dist/lib/kanban-metadata.d.ts.map +0 -1
  459. package/dist/lib/kanban-verification.d.ts.map +0 -1
  460. package/dist/lib/model-calendar.d.ts.map +0 -1
  461. package/dist/lib/model-matrix-routes.d.ts.map +0 -1
  462. package/dist/lib/notify.d.ts.map +0 -1
  463. package/dist/lib/plugin-enablement.d.ts.map +0 -1
  464. package/dist/lib/roster-ws.d.ts.map +0 -1
  465. package/dist/lib/sage-block.d.ts.map +0 -1
  466. package/dist/lib/sdd-theme.d.ts.map +0 -1
  467. package/dist/lib/stream-coalescer.d.ts.map +0 -1
  468. package/dist/lib/terminal-dock.d.ts.map +0 -1
  469. package/dist/lib/tool-icon.d.ts.map +0 -1
  470. package/dist/lib/tool-summary.d.ts.map +0 -1
  471. package/dist/lib/utils.d.ts.map +0 -1
  472. package/dist/lib/view-navigation.d.ts.map +0 -1
  473. package/dist/lib/ws-client-actions.d.ts.map +0 -1
  474. package/dist/lib/ws-client-contracts.d.ts.map +0 -1
  475. package/dist/lib/ws-client-helpers.d.ts.map +0 -1
  476. package/dist/lib/ws-client-utils.d.ts.map +0 -1
  477. package/dist/lib/ws-client.d.ts.map +0 -1
  478. package/dist/main.d.ts.map +0 -1
  479. package/dist/protocol-compatibility.d.ts.map +0 -1
  480. package/dist/stores/auto-submit-streak.d.ts.map +0 -1
  481. package/dist/stores/chat-store.d.ts.map +0 -1
  482. package/dist/stores/codemap-activity-store.d.ts.map +0 -1
  483. package/dist/stores/codemap-index-store.d.ts.map +0 -1
  484. package/dist/stores/config-store.d.ts.map +0 -1
  485. package/dist/stores/context-editor-store.d.ts.map +0 -1
  486. package/dist/stores/coordinator-monitor-store.d.ts.map +0 -1
  487. package/dist/stores/cron-store.d.ts.map +0 -1
  488. package/dist/stores/file-reference-store.d.ts.map +0 -1
  489. package/dist/stores/file-store.d.ts.map +0 -1
  490. package/dist/stores/fleet-store.d.ts.map +0 -1
  491. package/dist/stores/git-changes-store.d.ts.map +0 -1
  492. package/dist/stores/git-info-store.d.ts.map +0 -1
  493. package/dist/stores/goal-assess-store.d.ts.map +0 -1
  494. package/dist/stores/goal-run-store.d.ts.map +0 -1
  495. package/dist/stores/goal-state-store.d.ts.map +0 -1
  496. package/dist/stores/goal-store.d.ts.map +0 -1
  497. package/dist/stores/history-store.d.ts.map +0 -1
  498. package/dist/stores/index.d.ts.map +0 -1
  499. package/dist/stores/kanban-store.d.ts.map +0 -1
  500. package/dist/stores/local-prefs.d.ts.map +0 -1
  501. package/dist/stores/mailbox-store.d.ts.map +0 -1
  502. package/dist/stores/memory-injector-store.d.ts.map +0 -1
  503. package/dist/stores/memory-lifecycle-store.d.ts.map +0 -1
  504. package/dist/stores/monitor-store.d.ts.map +0 -1
  505. package/dist/stores/office-map-store.d.ts.map +0 -1
  506. package/dist/stores/provider-status-store.d.ts.map +0 -1
  507. package/dist/stores/sdd-board-store.d.ts.map +0 -1
  508. package/dist/stores/sdd-wizard-store.d.ts.map +0 -1
  509. package/dist/stores/session-store.d.ts.map +0 -1
  510. package/dist/stores/side-effect-store.d.ts.map +0 -1
  511. package/dist/stores/specs-store.d.ts.map +0 -1
  512. package/dist/stores/techstack-store.d.ts.map +0 -1
  513. package/dist/stores/types.d.ts.map +0 -1
  514. package/dist/stores/ui-store.d.ts.map +0 -1
  515. package/dist/stores/viz-store.d.ts.map +0 -1
  516. package/dist/stores/worktree-store.d.ts.map +0 -1
  517. package/dist/types/brain.d.ts.map +0 -1
  518. package/dist/types/chronicle.d.ts.map +0 -1
  519. package/dist/types/client-message.d.ts.map +0 -1
  520. package/dist/types/collab.d.ts.map +0 -1
  521. package/dist/types/connections.d.ts.map +0 -1
  522. package/dist/types/goal-kanban-worktree.d.ts.map +0 -1
  523. package/dist/types/protocol-core.d.ts.map +0 -1
  524. package/dist/types/runtime.d.ts.map +0 -1
  525. package/dist/types/sage.d.ts.map +0 -1
  526. package/dist/types/server-message.d.ts.map +0 -1
  527. package/dist/types/skills-design.d.ts.map +0 -1
  528. package/dist/types/system.d.ts.map +0 -1
  529. package/dist/types.d.ts.map +0 -1
  530. package/dist/types.js.map +0 -7
@@ -0,0 +1,4 @@
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{$r as t,Ai as n,An as r,Ca as i,Ct as a,Dr as o,En as s,Fn as c,Hi as l,Hn as u,In as d,Jt as f,Kn as p,Li as m,Ln as h,Lr as g,Mr as _,Oi as v,Or as y,Rn as b,Xt as x,Yt as S,_ as C,a as ee,at as w,c as T,d as te,di as E,dt as D,et as O,f as k,fa as A,fi as j,fr as M,h as ne,ha as re,hi as ie,i as ae,ii as oe,it as N,jt as P,l as se,la as ce,lt as le,m as ue,mi as de,nt as F,o as fe,p as pe,pr as me,qi as I,r as he,s as L,sr as R,ti as ge,tr as _e,tt as ve,u as ye,v as be,va as z,vn as xe,xa as B}from"./vendor-BTDGplXK.js";import"./i18n-DOuSY1L8.js";import{s as Se}from"./ws-client-DqIqzkfU.js";import{t as V}from"./utils-DxDx8yib.js";import{t as Ce}from"./session-store-D4JWBP5w.js";import{_ as we,c as H,l as Te,x as Ee}from"./stores-CpZiOiOP.js";import{r as De}from"./mailbox-store-_8voaug1.js";import{d as Oe}from"./markdown-sSmz-Ua_.js";import{_ as ke,d as Ae,f as je,g as Me,l as Ne,u as Pe,w as Fe}from"./index-DxZTscTk.js";var U=e(i(),1);function Ie(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function Le(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function W(e){return typeof e==`string`&&e.trim()?e.trim():void 0}function G(e,t){for(let n of t){let t=W(e[n]);if(t)return t}}function K(e,t){for(let n of t){let t=Le(e[n]);if(t!==void 0)return t}}function Re(e){return e.split(/[\\/]/).filter(Boolean).pop()??e}function ze(e){return e?e.split(/\r?\n/).length:0}function Be(e){let t=0,n=0;for(let r of e.split(/\r?\n/))r.startsWith(`+++`)||r.startsWith(`---`)||(r.startsWith(`+`)&&(t+=1),r.startsWith(`-`)&&(n+=1));return t||n?{added:t,removed:n}:null}function Ve(e){let t=e.split(/\r?\n/,1)[0]?.trim()??e;return t.length>72?`${t.slice(0,69)}…`:t}function He(e){let t=e.toLowerCase().replace(/[.:/-]+/g,`_`);return/^(read|view|open_file|read_file)|file_read/.test(t)?`read`:/^(write|create|save)|file_write/.test(t)?`write`:/edit|update|patch|replace|apply_patch/.test(t)?`edit`:/bash|shell|terminal|exec|command|powershell|cmd/.test(t)?`terminal`:/fetch|browser|browse|http|url|web/.test(t)?`web`:/search|grep|find|glob|query/.test(t)?`search`:/memory|recall|remember/.test(t)?`memory`:`other`}function Ue(e,t){let n=(Array.isArray(e.fileTargets)?e.fileTargets:[]).flatMap(e=>{let t=Ie(e),n=G(t,[`filePath`,`file_path`,`path`]);return n?[{filePath:n,operation:W(t.operation),line:K(t,[`line`,`startLine`,`start_line`]),endLine:K(t,[`endLine`,`end_line`])}]:[]});if(n.length>0)return n;let r=G(t,[`file_path`,`filePath`,`path`,`filename`,`target_file`,`targetFile`]);return r?[{filePath:r,line:K(t,[`line`,`start_line`,`startLine`,`offset`]),endLine:K(t,[`end_line`,`endLine`])}]:[]}function We(e,t){let n=e?.line??K(t,[`line`,`start_line`,`startLine`,`offset`]),r=e?.endLine??K(t,[`end_line`,`endLine`]),i=K(t,[`limit`,`line_count`,`lineCount`]);return r===void 0&&n!==void 0&&i!==void 0&&i>0&&(r=n+i-1),n!==void 0&&r!==void 0?{start:n,end:r,label:`L${n}–${r}`}:n===void 0?{}:{start:n,label:`L${n}`}}function Ge(e,t,n,r,i,a){let o=We(a,n),s=a?.filePath??G(n,[`file_path`,`filePath`,`path`,`filename`]),c=s?Re(s):void 0;if(e===`read`)return{target:s,summary:i===void 0?o.label?`${o.label} queued to read`:`Reading file`:`${i.toLocaleString()} lines read`,lineLabel:o.label};if(e===`write`){let e=G(n,[`content`,`text`,`data`]),t=K(r,[`inputLines`])??(e?ze(e):void 0);return{target:s,summary:t===void 0?`Writing file`:`${t.toLocaleString()} lines written`,lineLabel:o.label}}if(e===`edit`){let e=G(n,[`patch`,`diff`]),t=e?Be(e):null,i=G(n,[`old_string`,`oldString`,`search`]),a=G(n,[`new_string`,`newString`,`replacement`]),c=K(r,[`addedLines`]),l=K(r,[`removedLines`]),u=K(r,[`oldLines`]),d=K(r,[`newLines`]);return{target:s,summary:t||c!==void 0||l!==void 0?`+${t?.added??c??0} / −${t?.removed??l??0} lines`:i!==void 0||a!==void 0||u!==void 0||d!==void 0?`${i?ze(i):u??0} → ${a?ze(a):d??0} lines`:o.label?`${o.label} updated`:`Updating file`,lineLabel:o.label}}if(e===`terminal`){let e=G(n,[`command`,`cmd`,`script`,`shell`])??t;return{summary:Ve(e),target:e}}if(e===`web`){let e=G(n,[`url`,`href`,`uri`]),t=G(n,[`query`,`q`,`search`]);return{target:e??t,summary:e?`Fetched ${e}`:t?`Looked up “${t}”`:`Went online`}}if(e===`search`){let e=G(n,[`query`,`pattern`,`q`,`search`])??c;return{target:s??e,summary:e?`Searched “${e}”`:`Searching project`}}if(e===`memory`){let e=G(n,[`query`,`text`,`key`]);return{target:e,summary:e?`Recalled “${e}”`:`Checking memory`}}return{target:s,summary:c?`${t} · ${c}`:t}}function Ke(e,t){let n=W(t.name)??W(t.toolName);if(n)return n;if(e.kind===`agent:tool`)return e.target??void 0;if(e.kind.startsWith(`tool:`))return e.source}function qe(e,t,n){return W(t.agentId)??W(t.subagentId)??(e.kind===`agent:tool`?e.source:void 0)??(e.source!==n&&e.source!==`filesystem`?e.source:void 0)??`leader`}function Je(e){return W(e.parentSessionId)??W(e.sessionId)}function Ye(e,t){return e.kind===`tool:started`||e.kind===`tool:progress`?`running`:t.ok===!1?`failed`:`succeeded`}function Xe(e){if(![`tool:started`,`tool:progress`,`tool:executed`,`agent:tool`].includes(e.kind))return null;let t=Ie(e.data),n=Ke(e,t);if(!n)return null;let r=qe(e,t,n),i=t.input,a=Ie(i),o=Ue(t,a),s=Le(t.outputLines),c=He(n),l=Ge(c,n,a,t,s,o[0]),u=W(t.id),d=Math.floor(e.timestamp/2e3),f=Ye(e,t),p=Le(t.durationMs);return{id:u?`${r}:${u}`:`${r}:${n}:${d}`,agentId:r,agentName:W(t.agentName),sessionId:Je(t),toolName:n,kind:c,status:f,startedAt:f===`running`?e.timestamp:Math.max(0,e.timestamp-(p??0)),...f===`running`?{}:{completedAt:e.timestamp},durationMs:p,target:l.target,summary:l.summary,lineLabel:l.lineLabel,outputLines:s,outputBytes:Le(t.outputBytes),outputTokens:Le(t.outputTokens),input:i,output:W(t.output),fileTargets:o,raw:e.raw??t}}function Ze(e,t,n){return e?.length?nt(e.map(e=>({id:`snapshot:${n??`session`}:${t}:${e.id}`,kind:`tool:executed`,timestamp:e.completedAt,source:t,target:e.name,label:e.name,data:{...e,agentId:t,sessionId:n},flowGroup:`agent:${t}`})),t,n):[]}function Qe(e){return e?.length?e.map(e=>({id:e.id,direction:e.direction,from:e.from,to:e.to,type:e.type,subject:e.subject,body:``,priority:`normal`,timestamp:new Date(e.at).toISOString(),timestampMs:e.at,unread:e.direction===`incoming`})).sort((e,t)=>t.timestampMs-e.timestampMs).slice(0,12):[]}function $e(e,t,n=3e4){let r=new Map;e.forEach((e,t)=>{for(let n of[e.agent.serverId,e.agent.mailboxId,e.agent.name]){let e=q(n);e&&!r.has(e)&&r.set(e,t)}});let i=new Set,a=[];for(let o of e){let e=o.mail[0];if(!e||i.has(e.id)||t-e.timestampMs>n)continue;let s=r.get(q(e.from)),c=r.get(q(e.to));s===void 0||c===void 0||s===c||(i.add(e.id),a.push({id:e.id,mail:e,fromIndex:s,toIndex:c}))}return a}function et(e,t){return e.toLowerCase()===t.toLowerCase()}function q(e){return e?.trim().toLowerCase()??``}function tt(e,t,n){let r=new Set([t.serverId,t.mailboxId,t.name].map(q).filter(e=>e.length>0)),i=n?`@session:${q(n)}`:``,a=q(t.role),o=q(t.serverId)===`leader`||q(t.serverId).startsWith(`leader@`)||a===`lead`||a===`leader`;return e.flatMap(e=>{let t=q(e.from),n=q(e.to),a=r.has(t),s=n===`*`||n===`all`||i.length>0&&n===i,c=(e.audience!==`leaders`||o)&&(r.has(n)||o&&s);if(!c&&!a)return[];let l=Date.parse(e.timestamp);return[{...e,direction:c?`incoming`:`outgoing`,timestampMs:Number.isFinite(l)?l:0,unread:c&&!Object.keys(e.readBy??{}).some(e=>r.has(q(e)))}]}).sort((e,t)=>t.timestampMs-e.timestampMs).slice(0,8)}function nt(e,t,n){let r=new Map;for(let i=e.length-1;i>=0;--i){let a=e[i];if(!a)continue;let o=Xe(a);if(!o||!et(o.agentId,t)||n&&o.sessionId&&o.sessionId!==n)continue;let s=r.get(o.id);r.set(o.id,s?{...s,...o,startedAt:Math.min(s.startedAt,o.startedAt),fileTargets:o.fileTargets.length>0?o.fileTargets:s.fileTargets,input:o.input??s.input,output:o.output??s.output,raw:o.raw??s.raw}:o)}let i=[...r.values()].sort((e,t)=>(t.completedAt??t.startedAt)-(e.completedAt??e.startedAt));return i.filter((e,t)=>e.input!==void 0||e.fileTargets.length>0||e.output!==void 0||!i.some((n,r)=>r!==t&&n.toolName===e.toolName&&(n.input!==void 0||n.fileTargets.length>0||n.output!==void 0)&&Math.abs((n.completedAt??n.startedAt)-(e.completedAt??e.startedAt))<2500))}function rt(e,t,n){let r=He(t),i={read:`Reading a file`,write:`Writing a file`,edit:`Updating code`,terminal:`Running a command`,web:`Working online`,search:`Searching project`,memory:`Checking memory`,other:t};return{id:`${e}:live:${t}`,agentId:e,sessionId:n,toolName:t,kind:r,status:`running`,startedAt:Date.now(),summary:i[r],fileTargets:[]}}var J=O(),it={read:S,write:g,edit:g,terminal:P,web:t,search:o,memory:d,other:E};function at(e,t=46){if(!e||e.length<=t)return e;let n=e.split(/[\\/]/).slice(-2).join(`/`);return n.length<=t?`…/${n}`:`…${e.slice(-(t-1))}`}function ot(e){return e===void 0?`—`:e<1e3?`${Math.round(e)} ms`:`${(e/1e3).toFixed(+(e<1e4))} s`}function st(e){if(e===void 0)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function Y({label:e,value:t}){return(0,J.jsxs)(`div`,{className:`agent-office__detail-row`,children:[(0,J.jsx)(`span`,{children:e}),(0,J.jsx)(`strong`,{children:t})]})}function ct({selected:e,onClose:t}){let{t:n}=z(),{call:r,agentName:i}=e,a=it[r.kind],o=st(r.input),s=st(r.output);return(0,J.jsxs)(`aside`,{className:`agent-office__detail`,"aria-label":`${r.toolName} details`,children:[(0,J.jsxs)(`div`,{className:`agent-office__detail-header`,children:[(0,J.jsx)(`div`,{className:V(`agent-office__detail-icon`,`is-${r.kind}`),children:(0,J.jsx)(a,{"aria-hidden":`true`})}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`span`,{children:n(`activity:agentOffice.toolCall`)}),(0,J.jsx)(`h2`,{children:r.toolName})]}),(0,J.jsx)(`button`,{type:`button`,onClick:t,"aria-label":`Close details`,children:(0,J.jsx)(F,{})})]}),(0,J.jsxs)(`div`,{className:`agent-office__detail-status`,children:[(0,J.jsx)(`span`,{className:V(`agent-office__status-dot`,r.status===`running`&&`is-active`,r.status===`failed`&&`is-failed`)}),(0,J.jsx)(`strong`,{children:r.summary}),(0,J.jsx)(`span`,{children:r.status})]}),(0,J.jsxs)(`section`,{className:`agent-office__detail-section`,children:[(0,J.jsx)(`h3`,{children:n(`activity:agentOffice.execution`)}),(0,J.jsx)(Y,{label:n(`activity:agentOffice.agent`),value:i}),(0,J.jsx)(Y,{label:n(`activity:agentOffice.started`),value:new Date(r.startedAt).toLocaleTimeString()}),(0,J.jsx)(Y,{label:n(`activity:agentOffice.duration`),value:ot(r.durationMs)}),r.sessionId&&(0,J.jsx)(Y,{label:n(`activity:agentOffice.session`),value:at(r.sessionId,28)})]}),(r.target||r.fileTargets.length>0)&&(0,J.jsxs)(`section`,{className:`agent-office__detail-section`,children:[(0,J.jsx)(`h3`,{children:n(`activity:agentOffice.target`)}),r.target&&(0,J.jsx)(`code`,{className:`agent-office__target-code`,children:r.target}),r.fileTargets.map((e,t)=>(0,J.jsxs)(`div`,{className:`agent-office__file-target`,children:[(0,J.jsx)(_,{"aria-hidden":`true`}),(0,J.jsx)(`span`,{children:e.filePath}),(e.line||e.endLine)&&(0,J.jsxs)(`strong`,{children:[`L`,e.line??1,e.endLine?`–${e.endLine}`:``]})]},`${e.filePath}:${t}`))]}),(r.outputLines!==void 0||r.outputBytes!==void 0||r.outputTokens!==void 0)&&(0,J.jsxs)(`section`,{className:`agent-office__detail-section`,children:[(0,J.jsx)(`h3`,{children:n(`activity:agentOffice.resultSize`)}),(0,J.jsxs)(`div`,{className:`agent-office__metric-grid`,children:[r.outputLines!==void 0&&(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`strong`,{children:r.outputLines.toLocaleString()}),(0,J.jsx)(`span`,{children:n(`activity:agentOffice.lines`)})]}),r.outputBytes!==void 0&&(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`strong`,{children:r.outputBytes.toLocaleString()}),(0,J.jsx)(`span`,{children:n(`activity:agentOffice.bytes`)})]}),r.outputTokens!==void 0&&(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(`strong`,{children:[`≈`,r.outputTokens.toLocaleString()]}),(0,J.jsx)(`span`,{children:n(`activity:agentOffice.tokens`)})]})]})]}),o&&(0,J.jsxs)(`section`,{className:`agent-office__detail-section`,children:[(0,J.jsx)(`h3`,{children:n(`activity:agentOffice.input`)}),(0,J.jsx)(`pre`,{children:(0,J.jsx)(`code`,{children:o})})]}),s&&(0,J.jsxs)(`section`,{className:`agent-office__detail-section`,children:[(0,J.jsx)(`h3`,{children:n(`activity:agentOffice.outputPreview`)}),(0,J.jsx)(`pre`,{children:(0,J.jsx)(`code`,{children:s})})]})]})}function lt({selected:e,onClose:t}){let{t:n}=z(),{mail:r,agentName:i}=e;return(0,J.jsxs)(`aside`,{className:`agent-office__detail`,"aria-label":`${r.subject} details`,children:[(0,J.jsxs)(`div`,{className:`agent-office__detail-header`,children:[(0,J.jsx)(`div`,{className:`agent-office__detail-icon is-mail`,children:(0,J.jsx)(b,{"aria-hidden":`true`})}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`span`,{children:r.direction===`incoming`?`INCOMING MAIL`:`OUTGOING MAIL`}),(0,J.jsx)(`h2`,{children:r.subject})]}),(0,J.jsx)(`button`,{type:`button`,onClick:t,"aria-label":`Close mail details`,children:(0,J.jsx)(F,{})})]}),(0,J.jsxs)(`div`,{className:`agent-office__detail-status`,children:[(0,J.jsx)(`span`,{className:V(`agent-office__status-dot`,r.unread&&`is-active`)}),(0,J.jsxs)(`strong`,{children:[r.from,` → `,r.to]}),(0,J.jsx)(`span`,{children:r.type}),r.audience===`leaders`&&(0,J.jsxs)(`span`,{children:[(0,J.jsx)(u,{className:`h-3 w-3`}),` `,n(`activity:mailbox.audienceLeaders`)]})]}),(0,J.jsxs)(`section`,{className:`agent-office__detail-section`,children:[(0,J.jsx)(`h3`,{children:n(`activity:mailbox.messages`)}),(0,J.jsx)(Y,{label:n(`activity:agentOffice.agent`),value:i}),(0,J.jsx)(Y,{label:n(`activity:agentOffice.started`),value:new Date(r.timestampMs).toLocaleTimeString()}),(0,J.jsx)(Y,{label:`Priority`,value:r.priority}),(0,J.jsx)(Y,{label:`Route`,value:`${r.from} → ${r.to}`})]}),(0,J.jsxs)(`section`,{className:`agent-office__detail-section`,children:[(0,J.jsx)(`h3`,{children:r.subject}),(0,J.jsx)(`div`,{className:`agent-office__mail-body`,children:r.body})]})]})}function ut({selected:e,onClose:t}){let{t:n}=z();return(0,J.jsxs)(`aside`,{className:`agent-office__detail`,"aria-label":`${e.agentName} task details`,children:[(0,J.jsxs)(`div`,{className:`agent-office__detail-header`,children:[(0,J.jsx)(`div`,{className:`agent-office__detail-icon is-task`,children:(0,J.jsx)(p,{"aria-hidden":`true`})}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`span`,{children:n(`activity:agentOffice.currentTask`)}),(0,J.jsx)(`h2`,{children:e.agentName})]}),(0,J.jsx)(`button`,{type:`button`,onClick:t,"aria-label":`Close task details`,children:(0,J.jsx)(F,{})})]}),(0,J.jsxs)(`section`,{className:`agent-office__detail-section`,children:[(0,J.jsx)(`h3`,{children:n(`activity:agentOffice.task`)}),e.taskId&&(0,J.jsx)(Y,{label:`ID`,value:e.taskId}),(0,J.jsx)(`div`,{className:`agent-office__task-body`,children:e.task})]})]})}function dt({selected:e,onClose:t}){let{t:n}=z(),r=e.todos.filter(e=>e.status!==`completed`).length;return(0,J.jsxs)(`aside`,{className:`agent-office__detail`,"aria-label":`${e.officeLabel} briefing`,children:[(0,J.jsxs)(`div`,{className:`agent-office__detail-header`,children:[(0,J.jsx)(`div`,{className:`agent-office__detail-icon is-briefing`,children:(0,J.jsx)(c,{"aria-hidden":`true`})}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`span`,{children:e.instructionActive?n(`activity:agentOffice.activeInstruction`):n(`activity:agentOffice.officeBriefing`)}),(0,J.jsx)(`h2`,{children:e.officeLabel})]}),(0,J.jsx)(`button`,{type:`button`,onClick:t,"aria-label":`Close office briefing`,children:(0,J.jsx)(F,{})})]}),(0,J.jsxs)(`div`,{className:`agent-office__detail-status`,children:[(0,J.jsx)(`span`,{className:V(`agent-office__status-dot`,(e.instructionActive||r>0)&&`is-active`)}),(0,J.jsx)(`strong`,{children:e.telemetryConnected?n(`activity:agentOffice.activeTodos`):n(`activity:agentOffice.telemetryWaiting`)}),(0,J.jsx)(`span`,{children:e.telemetryConnected?r:`—`})]}),(0,J.jsxs)(`section`,{className:`agent-office__detail-section`,children:[(0,J.jsx)(`h3`,{children:e.instructionActive?n(`activity:agentOffice.activeInstruction`):n(`activity:agentOffice.leaderPrompt`)}),e.promptAt!==void 0&&(0,J.jsx)(Y,{label:n(`activity:agentOffice.promptReceived`),value:new Date(e.promptAt).toLocaleString()}),(0,J.jsx)(`div`,{className:`agent-office__task-body`,children:e.prompt??(e.telemetryConnected?n(`activity:agentOffice.noPrompt`):n(`activity:agentOffice.telemetryWaiting`))})]}),(0,J.jsxs)(`section`,{className:`agent-office__detail-section`,children:[(0,J.jsx)(`h3`,{children:n(`activity:agentOffice.todos`)}),(0,J.jsx)(`div`,{className:`agent-office__todo-detail-list`,children:e.telemetryConnected?e.todos.length>0?e.todos.map(e=>(0,J.jsxs)(`div`,{className:V(`agent-office__todo-detail`,`is-${e.status}`),children:[(0,J.jsx)(`span`,{"aria-hidden":`true`}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`strong`,{children:e.content}),(0,J.jsx)(`small`,{children:n(`activity:agentOffice.todoStatus.${e.status}`)})]})]},e.id)):(0,J.jsx)(`span`,{className:`agent-office__history-empty`,children:n(`activity:agentOffice.noActiveTodos`)}):(0,J.jsx)(`span`,{className:`agent-office__history-empty`,children:n(`activity:agentOffice.todoTelemetryWaiting`)})})]})]})}function ft({selected:e,onClose:t}){return e.kind===`tool`?(0,J.jsx)(ct,{selected:e,onClose:t}):e.kind===`mail`?(0,J.jsx)(lt,{selected:e,onClose:t}):e.kind===`task`?(0,J.jsx)(ut,{selected:e,onClose:t}):(0,J.jsx)(dt,{selected:e,onClose:t})}function pt(e){return e==null||!Number.isFinite(e)?`0`:e<1e3?String(Math.round(e)):e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function mt(e,t){if(!e)return`never`;let n=Date.parse(e);if(!Number.isFinite(n))return`never`;let r=Math.max(0,Math.round((t-n)/1e3));return r<60?`${r}s ago`:r<3600?`${Math.round(r/60)}m ago`:r<86400?`${Math.round(r/3600)}h ago`:`${Math.round(r/86400)}d ago`}function ht(e,t){if(!e)return``;let n=Date.parse(e);if(!Number.isFinite(n))return``;let r=Math.max(0,Math.round((t-n)/1e3));return r<60?`${r}s`:r<3600?`${Math.round(r/60)}m`:`${Math.round(r/3600)}h`}function gt(e){if(!e)return;let t=e.split(`/`);return t[t.length-1]?.slice(0,18)}function _t(e,t=56){if(!e)return;let n=e.replace(/\s+/g,` `).trim();if(n)return n.length<=t?n:t<=1?`…`:`${n.slice(0,t-1).trimEnd()}…`}function vt(e,t){if(e.length===0)return{positions:new Map,columns:0,rows:0,columnWidth:380};let n=Math.max(1,...e.map(e=>e.agentCount)),r=Math.max(380,Math.min(3,n)*190+80),i=e=>270+Math.max(1,...e.map(e=>Math.ceil(Math.max(1,e.agentCount)/3)))*150,a=Math.max(320,t.width),o=Math.max(240,t.height),s=1,c=-1/0,l=1/0;for(let t=1;t<=e.length;t+=1){let n=[];for(let r=0;r<e.length;r+=t)n.push(i(e.slice(r,r+t)));let u=n.length,d=Math.max(660,Math.min(t,e.length)*r),f=320+n.reduce((e,t)=>e+t,0)+Math.max(0,u-1)*100,p=Math.min(a/d,o/f),m=Math.abs(Math.log(d/f/(a/o)));(p>c+1e-9||Math.abs(p-c)<=1e-9&&m<l)&&(s=t,c=p,l=m)}let u=new Map,d=370;for(let t=0;t<e.length;t+=s){let n=e.slice(t,t+s);n.forEach((e,t)=>{u.set(e.id,{x:600+(t-(n.length-1)/2)*r,y:d})}),d+=i(n)+100}return{positions:u,columns:s,rows:Math.ceil(e.length/s),columnWidth:r}}function yt(e,t,n,r=640){let i=Math.min(3,n),a=Math.floor(t/i),o=t%i;return{x:e-(Math.min(i,n-a*i)-1)*190/2+o*190,y:r+a*150}}function bt(e){return e===`tui`?`tui`:e===`repl`||e===`cli`?`repl`:`webui`}function xt(e){return e===`tui`?`TUI`:e===`repl`?`REPL`:`WebUI`}function St(e){switch(e){case`running`:case`active`:return`active`;case`idle`:return`idle`;case`completed`:return`completed`;case`failed`:case`error`:return`error`;case`stopped`:return`offline`;default:return`idle`}}function Ct(e){if(e)return e.split(`/`).filter(Boolean).pop()??e}function wt(e){let t=Ct(e)??e??``;return t.length>10?`…${t.slice(-8)}`:t}function Tt(e,t){let n=Ct(t);if(n)return e.find(e=>Ct(e.sessionId)===n)}function Et(e,t){let n=St(t.status);return{officeId:`${e}__agent-${t.id}`,serverId:t.id,name:t.name??t.id,status:n,iteration:t.iteration??0,toolCalls:t.toolCalls??0,costUsd:t.costUsd??0,tokensIn:t.tokensIn??0,tokensOut:t.tokensOut??0,ctxPct:t.ctxPct,model:t.model,currentTool:t.currentTool,currentTask:t.description,taskId:t.taskId,presenceSource:`fleet`}}function Dt(e,t){return e===`cli`?`CLI`:e===`repl`?`REPL`:xt(t)}function Ot(e,t,n=[],r=new Map,i=Date.now()){let a=new Set,o=[];for(let n of e){let e=bt(n.clientType),r=Dt(n.clientType,e),i=`client-${n.pid??n.sessionId}`,s=[],c=!1;for(let e of n.agents){a.add(e.id);let n=t.get(e.id),r=St(n?.status??e.status);(r===`active`||r===`streaming`)&&(c=!0),s.push({officeId:`${i}__agent-${e.id}`,serverId:e.id,name:n?.name??e.name??e.id,status:r,iteration:n?.iteration??e.iterations??0,toolCalls:n?.toolCalls??e.toolCalls??0,costUsd:n?.costUsd??e.costUsd??0,tokensIn:n?.tokensIn??e.tokensIn??0,tokensOut:n?.tokensOut??e.tokensOut??0,ctxPct:n?.ctxPct??e.ctxPct,model:n?.model??e.model,lastActivityAt:e.lastActivityAt,currentTool:n?.currentTool??e.currentTool,currentTask:e.currentTask??n?.description,taskId:e.taskId??n?.taskId,recentTools:e.recentTools,recentMail:e.recentMail,activity:e.activity,presenceSource:`registry`})}let l=n.status===`closing`||n.status===`stale`||n.status===`lost`?`offline`:c?`active`:`idle`,u=n.agents.find(e=>e.id===`leader`);o.push({id:i,type:e,label:`${r} · ${n.pid?`PID ${n.pid}`:wt(n.sessionId)}`,sublabel:[`session ${wt(n.sessionId)}`,n.gitBranch?`⎇ ${n.gitBranch}`:``,n.workingDir?n.workingDir.split(/[\\/]/).filter(Boolean).pop():``].filter(Boolean).join(` · `),status:l,sessionId:n.sessionId,pid:n.pid,branch:n.gitBranch,workingDir:n.workingDir,startedAt:n.startedAt,lastHeartbeatAt:n.lastHeartbeatAt,latestPrompt:u?.latestPrompt,latestPromptAt:u?.latestPromptAt,activeInstruction:u?.status===`running`||u?.status===`streaming`?u.latestPrompt??u.currentTask:void 0,todos:u?.todos,agents:s})}for(let e of n.filter(e=>e.online)){let t=Tt(o,e.sessionId);if(!t)continue;let n=e.name.trim().toLowerCase(),r=t.agents.find(t=>t.serverId===e.agentId||t.name.trim().toLowerCase()===n);r&&(a.add(e.agentId),r.mailboxId=e.agentId,r.role=e.role,r.currentTask=r.currentTask??e.currentTask,r.currentTool=r.currentTool??e.currentTool)}let s=[...t.values()].filter(e=>!a.has(e.id)),c,l=()=>{if(c)return c;let e=o.find(e=>e.type===`webui`);return e?(c=e,e):(c={id:`client-self`,type:`webui`,label:`This WebUI`,sublabel:`Web UI`,status:`idle`,agents:[]},o.push(c),c)};for(let e of s){let t=Tt(o,e.sessionId)??l(),n=Et(t.id,e);(n.status===`active`||n.status===`streaming`)&&t.status!==`offline`&&(t.status=`active`),t.agents.push(n),a.add(e.id)}for(let[e,t]of r){if(a.has(e)||i-t.finishedAt>9e5)continue;let n=Tt(o,t.agent.sessionId);n&&n.agents.push(Et(n.id,t.agent))}return o.length===0&&o.push({id:`client-self`,type:`webui`,label:`This WebUI`,sublabel:`Web UI · connecting…`,status:`idle`,agents:[]}),o}function kt(e){return e.startsWith(`tool`)?`hsl(var(--warning))`:e.startsWith(`mailbox`)?`hsl(var(--info))`:e.startsWith(`provider`)?`hsl(var(--primary))`:e.startsWith(`agent`)||e.startsWith(`subagent`)?`hsl(var(--success))`:e.includes(`error`)?`hsl(var(--destructive))`:`hsl(var(--primary))`}var At=new Set([`completed`,`failed`,`timeout`,`stopped`]);function jt(e){let t=(0,U.useRef)(new Map).current;return(0,U.useMemo)(()=>{let n=Date.now(),r=new Set;for(let i of e.values())if(r.add(i.id),At.has(i.status)){let e=t.get(i.id);e?e.agent=i:t.set(i.id,{agent:i,finishedAt:i.completedAt??n})}else t.delete(i.id);for(let[e,n]of[...t.entries()])!r.has(e)&&!At.has(n.agent.status)&&t.set(e,{agent:{...n.agent,status:`stopped`},finishedAt:n.finishedAt});for(let[e,r]of t)n-r.finishedAt>9e5&&t.delete(e);return{map:t,now:n}},[e,t])}var Mt=[`bot`,`cactus`,`duck`,`radio`],Nt={leader:`plum`,builder:`ocean`,researcher:`mint`,reviewer:`rose`,planner:`amber`,operator:`graphite`},Pt={leader:0,builder:1,researcher:2,reviewer:3,planner:4,operator:5},Ft={read:S,write:g,edit:g,terminal:P,web:t,search:o,memory:d,other:E},It={leader:l,builder:E,researcher:S,reviewer:m,planner:p,operator:P};function Lt(e){if(e.serverId===`leader`||e.serverId.startsWith(`leader@`))return`leader`;let t=[e.role,e.name,e.currentTask].filter(Boolean).join(` `).toLowerCase();return/review|critic|audit|security|test|qa|verify|checker/.test(t)?`reviewer`:/research|analyst|explor|investig|search|hunter|recon/.test(t)?`researcher`:/plan|architect|design|coordinat|strateg|spec/.test(t)?`planner`:/build|implement|code|develop|engineer|refactor|fix|frontend|backend/.test(t)?`builder`:`operator`}function Rt(e,t){let n=2166136261;for(let t=0;t<e.length;t+=1)n^=e.charCodeAt(t),n=Math.imul(n,16777619);let r=n>>>0;return{palette:Nt[t],layout:r%4,clutter:Math.floor(r/4)%3,avatar:Pt[t],motion:Math.floor(r/31)%4,charm:Mt[Math.floor(r/47)%Mt.length]}}function zt(e,t=22){let n=e.split(`/`).filter(Boolean).pop()??e;return n.length>t?`${n.slice(0,t-1)}…`:n}function Bt(e,t=46){if(!e||e.length<=t)return e;let n=e.split(/[\\/]/).slice(-2).join(`/`);return n.length<=t?`…/${n}`:`…${e.slice(-(t-1))}`}function Vt(e,t){let n=Math.max(0,Math.floor((t-e)/1e3));if(n<5)return`now`;if(n<60)return`${n}s`;let r=Math.floor(n/60);return r<60?`${r}m`:`${Math.floor(r/60)}h`}function Ht(e,t){if(!e)return`—`;let n=Date.parse(e);if(!Number.isFinite(n))return`—`;let r=Math.max(0,Math.floor((t-n)/1e3));return r<60?`${r}s`:r<3600?`${Math.floor(r/60)}m`:r<86400?`${Math.floor(r/3600)}h`:`${Math.floor(r/86400)}d`}function Ut(e){let t=new Set,n=new Set,r=new Set,i=0,a=0,o={files:0,reads:0,writes:0,edits:0,linesAdded:0,linesRemoved:0,terminalCalls:0,incomingMail:0,outgoingMail:0};for(let s of e){let e=s.agent.activity;for(let n of e?.filesTouched??[])t.add(n);o.reads+=e?.reads??0,o.writes+=e?.writes??0,o.edits+=e?.edits??0,o.linesAdded+=e?.linesAdded??0,o.linesRemoved+=e?.linesRemoved??0,o.terminalCalls+=e?.terminalCalls??0,i+=e?.mailReceived??0,a+=e?.mailSent??0;for(let e of s.mail)(e.direction===`incoming`?n:r).add(e.id)}return o.files=t.size,o.incomingMail=Math.max(i,n.size),o.outgoingMail=Math.max(a,r.size),o}function Wt(e,t,n){return n.map((n,r)=>({...rt(e.serverId,n.name,t.sessionId),id:`${e.serverId}:log:${n.at}:${r}`,kind:He(n.name),status:n.ok?`succeeded`:`failed`,startedAt:Math.max(0,n.at-n.durationMs),completedAt:n.at,durationMs:n.durationMs,summary:n.ok?`${n.name} completed`:`${n.name} failed`}))}function Gt(...e){let t=[];for(let n of e.flat()){let e=n.completedAt??n.startedAt;t.some(t=>(t.id===n.id||t.toolName===n.toolName)&&Math.abs((t.completedAt??t.startedAt)-e)<2500)||t.push(n)}return t.sort((e,t)=>(t.completedAt??t.startedAt)-(e.completedAt??e.startedAt))}function Kt(...e){let t=new Map;for(let n of e.flat())t.set(n.id,n);return[...t.values()].sort((e,t)=>t.timestampMs-e.timestampMs).slice(0,12)}function qt({kind:e,active:t}){let n=Ft[e];return(0,J.jsxs)(`span`,{className:V(`agent-office__tool-glyph`,`is-${e}`,t&&`is-active`),children:[e===`read`&&(0,J.jsx)(_,{className:`agent-office__file-underlay`,"aria-hidden":`true`}),(0,J.jsx)(n,{"aria-hidden":`true`})]})}function Jt({active:e,failed:t,role:n,variant:r,motion:i}){let a=It[n];return(0,J.jsxs)(`div`,{className:V(`agent-office__avatar`,`is-${n}`,`is-avatar-${r}`,`is-motion-${i}`,e&&`is-active`,!e&&!t&&`is-idle`,t&&`is-failed`),"aria-hidden":`true`,children:[(0,J.jsx)(`span`,{className:`agent-office__avatar-chair`}),(0,J.jsx)(`span`,{className:`agent-office__avatar-body`}),(0,J.jsxs)(`span`,{className:`agent-office__avatar-head`,children:[(0,J.jsx)(`span`,{className:`agent-office__avatar-hair`}),(0,J.jsx)(`span`,{className:`agent-office__avatar-face`}),(0,J.jsx)(`span`,{className:`agent-office__avatar-mouth`}),(0,J.jsx)(`span`,{className:`agent-office__avatar-headset`})]}),(0,J.jsx)(`span`,{className:`agent-office__avatar-arm`}),(0,J.jsx)(`span`,{className:`agent-office__avatar-prop`}),(0,J.jsx)(`span`,{className:`agent-office__avatar-role-badge`,children:(0,J.jsx)(a,{})})]})}function Yt({call:e,compact:t=!1,onSelect:n}){let r=e.status===`running`;return(0,J.jsxs)(`button`,{type:`button`,className:V(`agent-office__parcel`,`is-${e.kind}`,t&&`is-compact`,r&&`is-running`,e.status===`failed`&&`is-failed`),onClick:n,"aria-label":`${e.toolName}: ${e.summary}`,children:[(0,J.jsx)(qt,{kind:e.kind,active:r}),(0,J.jsxs)(`span`,{className:`agent-office__parcel-copy`,children:[(0,J.jsxs)(`span`,{className:`agent-office__parcel-topline`,children:[(0,J.jsx)(`strong`,{children:e.toolName}),e.lineLabel&&(0,J.jsx)(`span`,{className:`agent-office__line-chip`,children:e.lineLabel})]}),!t&&e.target&&(0,J.jsx)(`span`,{className:`agent-office__parcel-target`,children:Bt(e.target)}),(0,J.jsx)(`span`,{className:`agent-office__parcel-summary`,children:e.summary})]}),(0,J.jsx)(`span`,{className:`agent-office__parcel-state`,"aria-hidden":`true`,children:r?(0,J.jsx)(`span`,{className:`agent-office__pulse-dot`}):e.status===`failed`?(0,J.jsx)(F,{}):(0,J.jsx)(m,{})})]})}function Xt({mail:e,compact:t=!1,onSelect:n}){let r=e.direction===`incoming`;return(0,J.jsxs)(`button`,{type:`button`,className:V(`agent-office__mail-parcel`,t&&`is-compact`,r?`is-incoming`:`is-outgoing`,e.unread&&`is-unread`),onClick:n,"aria-label":`${r?`Incoming`:`Outgoing`} mail: ${e.subject}`,children:[(0,J.jsx)(`span`,{className:`agent-office__mail-icon`,children:r?(0,J.jsx)(R,{"aria-hidden":`true`}):(0,J.jsx)(f,{"aria-hidden":`true`})}),(0,J.jsxs)(`span`,{className:`agent-office__parcel-copy`,children:[(0,J.jsx)(`strong`,{children:r?`${e.from} →`:`→ ${e.to}`}),(0,J.jsx)(`span`,{className:`agent-office__parcel-summary`,children:e.subject})]}),(0,J.jsx)(b,{"aria-hidden":`true`})]})}function Zt({office:e,now:t}){let{t:n}=z(),{client:r,agents:i,stats:a}=e,o=r.lastHeartbeatAt?Date.parse(r.lastHeartbeatAt):NaN,s=Number.isFinite(o)&&t-o<2e4,c=Number.isFinite(o)&&!s,u=i.some(({agent:e})=>e.presenceSource===`registry`),d=s?`VERIFIED`:c?`DELAYED`:u?`REGISTRY`:`LOCAL`,f=i.some(({agent:e})=>e.recentTools!==void 0||e.activity!==void 0),p=i.some(({agent:e})=>e.toolCalls>0&&e.recentTools===void 0&&e.activity===void 0);return(0,J.jsxs)(`header`,{className:`agent-office__client-header`,children:[(0,J.jsxs)(`div`,{className:`agent-office__client-title`,children:[(0,J.jsx)(`span`,{className:`agent-office__client-icon`,children:(0,J.jsx)(l,{"aria-hidden":`true`})}),(0,J.jsxs)(`div`,{className:`agent-office__client-copy`,children:[(0,J.jsx)(`strong`,{children:r.label}),(0,J.jsx)(`span`,{children:r.sublabel||r.sessionId})]}),(0,J.jsxs)(`div`,{className:`agent-office__client-presence`,children:[(0,J.jsxs)(`span`,{className:`agent-office__client-agent-count`,children:[i.length,` `,n(`activity:agentOffice.agents`)]}),(0,J.jsxs)(`span`,{className:V(`agent-office__presence-chip`,!c&&`is-live`,c&&`is-legacy`),children:[(0,J.jsx)(N,{"aria-hidden":`true`}),` `,d]}),(0,J.jsxs)(`span`,{className:`agent-office__presence-chip`,children:[(0,J.jsx)(ie,{"aria-hidden":`true`}),` `,Ht(r.startedAt,t),` UP`]}),(0,J.jsxs)(`span`,{className:V(`agent-office__presence-chip`,p?`is-legacy`:f&&`is-telemetry`),children:[(0,J.jsx)(A,{"aria-hidden":`true`}),p?`RECONNECT`:f?`TOOLS LIVE`:`READY`]})]})]}),(0,J.jsxs)(`fieldset`,{className:`agent-office__client-stats`,"aria-label":`Session activity totals`,children:[(0,J.jsxs)(`span`,{title:`Unique files touched`,children:[(0,J.jsx)(y,{}),` `,(0,J.jsx)(`strong`,{children:a.files}),` FILES`]}),(0,J.jsxs)(`span`,{title:`File reads`,children:[(0,J.jsx)(S,{}),` `,(0,J.jsx)(`strong`,{children:a.reads}),` READ`]}),(0,J.jsxs)(`span`,{title:`Files written`,children:[(0,J.jsx)(g,{}),` `,(0,J.jsx)(`strong`,{children:a.writes}),` WRITE`]}),(0,J.jsxs)(`span`,{title:`Files edited`,children:[(0,J.jsx)(g,{}),` `,(0,J.jsx)(`strong`,{children:a.edits}),` EDIT`]}),(0,J.jsxs)(`span`,{className:`agent-office__client-delta`,title:`Lines added and removed`,children:[(0,J.jsxs)(`strong`,{children:[`+`,a.linesAdded]}),` / `,(0,J.jsxs)(`b`,{children:[`−`,a.linesRemoved]})]}),(0,J.jsxs)(`span`,{title:`Terminal commands`,children:[(0,J.jsx)(P,{}),` `,(0,J.jsx)(`strong`,{children:a.terminalCalls}),` TERM`]}),(0,J.jsxs)(`span`,{title:`Incoming and outgoing mail`,children:[(0,J.jsx)(b,{}),` `,(0,J.jsx)(`strong`,{children:a.incomingMail}),`↓ `,(0,J.jsx)(`strong`,{children:a.outgoingMail}),`↑`]})]})]})}function Qt({office:e,now:t,onSelect:n}){let{t:r}=z(),{client:i}=e,a=i.todos!==void 0,o=i.todos??[],s=o.filter(e=>e.status!==`completed`),l=o.length-s.length,u=!!i.activeInstruction,d=i.activeInstruction??i.latestPrompt,f=i.latestPromptAt!==void 0&&t-i.latestPromptAt<3e4,m=()=>n({kind:`briefing`,officeLabel:i.label,prompt:d,promptAt:i.latestPromptAt,instructionActive:u,telemetryConnected:a,todos:o});return(0,J.jsxs)(`section`,{className:`agent-office__briefing`,"aria-label":r(`activity:agentOffice.officeBriefing`),children:[(0,J.jsxs)(`button`,{type:`button`,className:V(`agent-office__prompt-card`,u&&`is-active`,f&&`is-fresh`,!a&&`is-waiting`),onClick:m,children:[(0,J.jsx)(`span`,{className:`agent-office__briefing-icon is-prompt`,children:(0,J.jsx)(c,{"aria-hidden":`true`})}),(0,J.jsxs)(`span`,{className:`agent-office__briefing-copy`,children:[(0,J.jsx)(`span`,{children:r(u?`activity:agentOffice.activeInstruction`:`activity:agentOffice.leaderPrompt`)}),(0,J.jsx)(`strong`,{children:d??r(a?`activity:agentOffice.noPrompt`:`activity:agentOffice.telemetryWaiting`)})]}),u&&(0,J.jsxs)(`span`,{className:`agent-office__instruction-live`,children:[(0,J.jsx)(`i`,{"aria-hidden":`true`}),` LIVE`]}),i.latestPromptAt!==void 0&&(0,J.jsx)(`time`,{dateTime:new Date(i.latestPromptAt).toISOString(),children:Vt(i.latestPromptAt,t)})]}),(0,J.jsxs)(`button`,{type:`button`,className:V(`agent-office__todo-board`,s.length>0&&`has-active`,!a&&`is-waiting`),onClick:m,children:[(0,J.jsxs)(`span`,{className:`agent-office__todo-heading`,children:[(0,J.jsxs)(`span`,{children:[(0,J.jsx)(p,{"aria-hidden":`true`}),` `,r(`activity:agentOffice.activeTodos`)]}),(0,J.jsx)(`strong`,{children:a?r(`activity:agentOffice.todoProgress`,{done:l,total:o.length}):r(`activity:agentOffice.syncWaiting`)})]}),(0,J.jsxs)(`span`,{className:`agent-office__todo-preview`,children:[a?s.length>0?s.slice(0,3).map(e=>(0,J.jsxs)(`span`,{className:V(`agent-office__todo-line`,`is-${e.status}`),children:[(0,J.jsx)(`i`,{"aria-hidden":`true`}),(0,J.jsx)(`span`,{children:e.activeForm||e.content})]},e.id)):(0,J.jsxs)(`span`,{className:`agent-office__todo-empty`,children:[(0,J.jsx)(v,{"aria-hidden":`true`}),o.length>0?r(`activity:agentOffice.allTodosDone`):r(`activity:agentOffice.noActiveTodos`)]}):(0,J.jsxs)(`span`,{className:`agent-office__todo-empty is-waiting`,children:[(0,J.jsx)(A,{"aria-hidden":`true`}),r(`activity:agentOffice.todoTelemetryWaiting`)]}),s.length>3&&(0,J.jsx)(`span`,{className:`agent-office__todo-more`,children:r(`activity:agentOffice.moreTodos`,{count:s.length-3})})]})]})]})}function $t({active:e}){let{t}=z();return(0,J.jsxs)(`div`,{className:`agent-office__parcel agent-office__parcel--empty`,children:[(0,J.jsx)(`span`,{className:`agent-office__tool-glyph`,children:(0,J.jsx)(I,{"aria-hidden":`true`})}),(0,J.jsxs)(`span`,{className:`agent-office__parcel-copy`,children:[(0,J.jsx)(`strong`,{children:t(e?`activity:agentOffice.thinking`:`activity:agentOffice.waiting`)}),(0,J.jsx)(`span`,{children:t(e?`activity:agentOffice.preparing`:`activity:agentOffice.deskReady`)})]})]})}function en({model:e,now:t,onSelect:n,routedMailIds:r}){let{t:i}=z(),{agent:a,client:o,current:s,display:c,history:l,mail:u}=e,d=a.status===`active`||a.status===`streaming`,f=a.status===`error`,h=u[0],g=Lt(a),_=Rt(`${o.sessionId}:${a.serverId}:${a.name}`,g),v=h&&t-h.timestampMs<3e4&&!r?.has(h.id),y=l.slice(0,6),x=y[0]?.completedAt??y[0]?.startedAt??c?.completedAt??c?.startedAt,S=s?`is-tool-${s.kind}`:void 0;return(0,J.jsxs)(`article`,{className:V(`agent-office__lane`,`is-desk-${_.palette}`,`is-layout-${_.layout}`,`is-clutter-${_.clutter}`,d&&`is-active`,f&&`is-failed`),children:[(0,J.jsxs)(`div`,{className:`agent-office__identity`,children:[(0,J.jsxs)(`div`,{className:`agent-office__identity-line`,children:[(0,J.jsx)(`span`,{className:V(`agent-office__status-dot`,d&&`is-active`,f&&`is-failed`)}),(0,J.jsx)(`strong`,{title:a.name,children:a.name}),(0,J.jsxs)(`span`,{className:`agent-office__agent-verified`,title:a.presenceSource===`registry`?`Verified by live session registry`:`Verified by local fleet state`,children:[(0,J.jsx)(m,{"aria-hidden":`true`}),a.presenceSource===`registry`?`LIVE`:`LOCAL`]})]}),(0,J.jsx)(`span`,{className:`agent-office__role`,children:a.role??(a.serverId===`leader`||a.serverId.startsWith(`leader@`)?i(`activity:agentOffice.leadAgent`):i(`activity:agentOffice.agent`))}),(0,J.jsxs)(`div`,{className:`agent-office__agent-meta`,children:[(0,J.jsx)(`span`,{children:o.branch?`⎇ ${o.branch}`:o.type.toUpperCase()}),(0,J.jsx)(`span`,{children:i(`activity:agentOffice.callsCount`,{count:a.toolCalls})}),a.model&&(0,J.jsx)(`span`,{className:`agent-office__model-chip`,title:a.model,children:zt(a.model)})]}),a.currentTask&&(0,J.jsxs)(`button`,{type:`button`,className:`agent-office__agent-task`,onClick:()=>n({kind:`task`,task:a.currentTask??``,taskId:a.taskId,agentName:a.name}),children:[(0,J.jsx)(p,{"aria-hidden":`true`}),(0,J.jsxs)(`span`,{children:[(0,J.jsx)(`strong`,{children:i(`activity:agentOffice.currentTask`)}),(0,J.jsx)(`small`,{children:a.currentTask})]})]}),!a.currentTask&&d&&(0,J.jsxs)(`div`,{className:`agent-office__agent-task is-missing`,children:[(0,J.jsx)(A,{"aria-hidden":`true`}),(0,J.jsxs)(`span`,{children:[(0,J.jsx)(`strong`,{children:i(`activity:agentOffice.currentTask`)}),(0,J.jsx)(`small`,{children:o.todos===void 0?i(`activity:agentOffice.telemetryWaiting`):i(`activity:agentOffice.taskNotReported`)})]})]}),h&&(0,J.jsxs)(`button`,{type:`button`,className:V(`agent-office__identity-mail`,h.unread&&`is-unread`),onClick:()=>n({kind:`mail`,mail:h,agentName:a.name}),"aria-label":`${u.length} mail messages. Latest: ${h.subject}`,children:[(0,J.jsx)(b,{"aria-hidden":`true`}),(0,J.jsxs)(`span`,{children:[(0,J.jsxs)(`strong`,{children:[u.length,` MAIL`]}),(0,J.jsx)(`small`,{children:h.subject})]})]})]}),(0,J.jsxs)(`div`,{className:V(`agent-office__scene`,S),children:[(0,J.jsxs)(`div`,{className:`agent-office__window`,"aria-hidden":`true`,children:[(0,J.jsx)(`span`,{}),(0,J.jsx)(`span`,{}),(0,J.jsx)(`span`,{})]}),(0,J.jsxs)(`div`,{className:`agent-office__plant`,"aria-hidden":`true`,children:[(0,J.jsx)(`span`,{}),(0,J.jsx)(`i`,{}),(0,J.jsx)(`b`,{})]}),(0,J.jsxs)(`div`,{className:`agent-office__desk-zone`,"aria-hidden":`true`,children:[(0,J.jsx)(Jt,{active:d,failed:f,role:g,variant:_.avatar,motion:_.motion}),(0,J.jsx)(`span`,{className:`agent-office__monitor`,children:c?(0,J.jsx)(qt,{kind:c.kind,active:s!==void 0}):(0,J.jsx)(E,{})}),(0,J.jsxs)(`span`,{className:`agent-office__activity-fx`,children:[(0,J.jsx)(`span`,{}),(0,J.jsx)(`i`,{}),(0,J.jsx)(`b`,{})]}),(0,J.jsx)(`span`,{className:`agent-office__desk`}),(0,J.jsx)(`span`,{className:`agent-office__desk-lamp`}),(0,J.jsxs)(`span`,{className:`agent-office__desk-clutter`,children:[(0,J.jsx)(`i`,{}),(0,J.jsx)(`b`,{})]}),(0,J.jsxs)(`span`,{className:V(`agent-office__desk-charm`,`is-${_.charm}`),children:[(0,J.jsx)(`i`,{}),(0,J.jsx)(`b`,{})]}),(0,J.jsxs)(`span`,{className:V(`agent-office__mug`,`is-${g}`),children:[(0,J.jsx)(`i`,{"aria-hidden":`true`}),(0,J.jsx)(`b`,{"aria-hidden":`true`})]})]}),v&&(0,J.jsx)(`div`,{className:V(`agent-office__mail-flyby`,`is-${h.direction}`),children:(0,J.jsx)(Xt,{mail:h,compact:!0,onSelect:()=>n({kind:`mail`,mail:h,agentName:a.name})},h.id)}),(0,J.jsxs)(`div`,{className:V(`agent-office__conveyor`,s&&`is-moving`),children:[(0,J.jsxs)(`div`,{className:`agent-office__belt`,"aria-hidden":`true`,children:[(0,J.jsx)(`span`,{}),(0,J.jsx)(`span`,{}),(0,J.jsx)(`span`,{}),(0,J.jsx)(`span`,{}),(0,J.jsx)(`span`,{}),(0,J.jsx)(`span`,{})]}),(0,J.jsx)(`div`,{className:`agent-office__current-action`,children:c?(0,J.jsx)(Yt,{call:c,onSelect:()=>n({kind:`tool`,call:c,agentName:a.name})},c.id):(0,J.jsx)($t,{active:d})})]})]}),(0,J.jsxs)(`div`,{className:`agent-office__history`,children:[(0,J.jsxs)(`div`,{className:`agent-office__history-heading`,children:[(0,J.jsx)(`span`,{children:i(`activity:agentOffice.recent`)}),x!==void 0&&(0,J.jsx)(`span`,{children:Vt(x,t)})]}),(0,J.jsx)(`div`,{className:`agent-office__history-list`,children:y.length>0?y.map(e=>(0,J.jsx)(Yt,{call:e,compact:!0,onSelect:()=>n({kind:`tool`,call:e,agentName:a.name})},`tool:${e.id}`)):(0,J.jsx)(`span`,{className:`agent-office__history-empty`,children:a.toolCalls>0&&a.recentTools===void 0&&a.activity===void 0?i(`activity:agentOffice.telemetryReconnect`):i(`activity:agentOffice.noCalls`)})})]})]})}function tn(e){return e.agent.status===`active`||e.agent.status===`streaming`||e.agent.status===`error`}function nn({agents:e,now:t,onSelect:n}){let{t:r}=z();return(0,J.jsxs)(`section`,{className:`agent-office__lounge`,"aria-label":r(`activity:agentOffice.breakRoom`),children:[(0,J.jsxs)(`header`,{className:`agent-office__lounge-heading`,children:[(0,J.jsx)(j,{"aria-hidden":`true`}),(0,J.jsx)(`strong`,{children:r(`activity:agentOffice.breakRoom`)}),(0,J.jsx)(`span`,{children:r(`activity:agentOffice.onBreak`,{count:e.length})})]}),(0,J.jsx)(`div`,{className:`agent-office__lounge-seats`,children:e.map(e=>{let{agent:i,history:a,mail:o}=e,s=Lt(i),c=It[s],l=o.filter(e=>e.unread).length,u=a[0]?.completedAt??a[0]?.startedAt,d=o[0],f=()=>{i.currentTask?n({kind:`task`,task:i.currentTask,taskId:i.taskId,agentName:i.name}):d&&n({kind:`mail`,mail:d,agentName:i.name})},p=!!i.currentTask||!!d;return(0,J.jsxs)(`button`,{type:`button`,className:V(`agent-office__lounge-seat`,`is-${s}`),onClick:f,disabled:!p,children:[(0,J.jsx)(`span`,{className:`agent-office__lounge-avatar`,children:(0,J.jsx)(c,{"aria-hidden":`true`})}),(0,J.jsxs)(`span`,{className:`agent-office__lounge-copy`,children:[(0,J.jsx)(`strong`,{children:i.name}),(0,J.jsx)(`small`,{children:i.role??r(`activity:agentOffice.agent`)})]}),(0,J.jsxs)(`span`,{className:`agent-office__lounge-meta`,children:[u!==void 0&&(0,J.jsx)(`span`,{children:Vt(u,t)}),l>0&&(0,J.jsxs)(`span`,{className:`agent-office__lounge-mail`,children:[(0,J.jsx)(b,{"aria-hidden":`true`}),` `,l]})]})]},e.key)})})]})}function rn(){let{t:e}=z(),t=Te(e=>e.liveSessions),n=Te(e=>e.aggregate),r=Ee(e=>e.agents),i=De(e=>e.agents),a=De(e=>e.messages),o=Se(e=>e.toolEvents),s=Ce(e=>e.projectName),c=jt(r),[u,d]=(0,U.useState)(null),f=(0,U.useMemo)(()=>Ot(t,r,i,c.map,c.now),[t,r,i,c]),p=(0,U.useMemo)(()=>f.flatMap(e=>e.agents.map(t=>{let n=Gt(nt(o,t.serverId,e.sessionId),Ze(t.recentTools,t.serverId,e.sessionId),Wt(t,e,r.get(t.serverId)?.toolLog??[])),i=t.status===`active`||t.status===`streaming`,s=n.find(e=>e.status===`running`);!s&&i&&t.currentTool&&(s=rt(t.serverId,t.currentTool,e.sessionId));let c=s??n[0],l=n.filter(e=>e.status!==`running`).slice(0,6),u=Kt(Qe(t.recentMail),tt(a,t,e.sessionId));return{key:t.officeId,client:e,agent:t,calls:n,current:s,display:c,history:l,mail:u}})),[f,r,a,o]),m=(0,U.useMemo)(()=>f.map(e=>{let t=p.filter(t=>t.client.id===e.id);return{client:e,agents:t,stats:Ut(t)}}).filter(e=>e.agents.length>0),[f,p]),h=p.filter(({agent:e})=>e.status===`active`||e.status===`streaming`).length,g=s||t.find(e=>e.projectName)?.projectName||e(`activity:office.fleetHq`),_=Date.now();return(0,J.jsxs)(`div`,{className:`agent-office`,children:[(0,J.jsxs)(`header`,{className:`agent-office__header`,children:[(0,J.jsxs)(`div`,{className:`agent-office__title`,children:[(0,J.jsx)(`span`,{className:`agent-office__brand-mark`,children:(0,J.jsx)(l,{"aria-hidden":`true`})}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`span`,{children:e(`activity:agentOffice.liveProjectOffice`)}),(0,J.jsx)(`h1`,{children:g})]})]}),(0,J.jsxs)(`div`,{className:`agent-office__live-pill`,children:[(0,J.jsx)(`span`,{}),` LIVE`]}),(0,J.jsxs)(`div`,{className:`agent-office__summary`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(I,{}),(0,J.jsx)(`strong`,{children:p.length}),(0,J.jsx)(`span`,{children:e(`activity:agentOffice.agents`)})]}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(ve,{}),(0,J.jsx)(`strong`,{children:h}),(0,J.jsx)(`span`,{children:e(`activity:agentOffice.working`)})]}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(A,{}),(0,J.jsx)(`strong`,{children:n.toolCalls.toLocaleString()}),(0,J.jsx)(`span`,{children:e(`activity:agentOffice.toolCalls`)})]})]})]}),(0,J.jsx)(`main`,{className:`agent-office__floor`,children:p.length>0?m.map(t=>{let n=t.agents.filter(tn),r=t.agents.filter(e=>!tn(e)),i=$e(n,_),a=new Set(i.map(e=>e.id));return(0,J.jsxs)(`section`,{className:`agent-office__client-office`,children:[(0,J.jsx)(Zt,{office:t,now:_}),(0,J.jsx)(Qt,{office:t,now:_,onSelect:d}),n.length>0&&(0,J.jsxs)(`div`,{className:`agent-office__column-headings`,"aria-hidden":`true`,children:[(0,J.jsx)(`span`,{children:e(`activity:agentOffice.team`)}),(0,J.jsx)(`span`,{children:e(`activity:agentOffice.liveDesk`)}),(0,J.jsx)(`span`,{children:e(`activity:agentOffice.lastActions`)})]}),(0,J.jsxs)(`div`,{className:`agent-office__client-desks`,children:[n.map(e=>(0,J.jsx)(en,{model:e,now:_,onSelect:d,routedMailIds:a},e.key)),i.length>0&&(0,J.jsx)(`div`,{className:`agent-office__mail-routes`,"aria-hidden":`true`,children:i.map(e=>(0,J.jsx)(`div`,{className:`agent-office__mail-route`,style:{"--from":`${(e.fromIndex+.5)/n.length*100}%`,"--to":`${(e.toIndex+.5)/n.length*100}%`},children:(0,J.jsx)(`span`,{className:`agent-office__mail-route-parcel`,children:(0,J.jsx)(b,{"aria-hidden":`true`})})},e.id))}),n.length===0&&(0,J.jsxs)(`div`,{className:`agent-office__desks-empty`,children:[(0,J.jsx)(j,{"aria-hidden":`true`}),e(`activity:agentOffice.desksEmpty`)]})]}),r.length>0&&(0,J.jsx)(nn,{agents:r,now:_,onSelect:d})]},t.client.id)}):(0,J.jsxs)(`div`,{className:`agent-office__empty-state`,children:[(0,J.jsx)(`span`,{children:(0,J.jsx)(N,{"aria-hidden":`true`})}),(0,J.jsx)(`h2`,{children:e(`activity:agentOffice.readyTitle`)}),(0,J.jsx)(`p`,{children:e(`activity:agentOffice.readyBody`)})]})}),(0,J.jsxs)(`footer`,{className:`agent-office__footer`,children:[(0,J.jsxs)(`span`,{children:[(0,J.jsx)(`span`,{className:`agent-office__status-dot is-active`}),` `,e(`activity:agentOffice.liveEvent`)]}),(0,J.jsxs)(`span`,{children:[(0,J.jsx)(me,{}),` `,e(`activity:agentOffice.connectedSessions`,{count:t.length})]}),(0,J.jsxs)(`span`,{children:[(0,J.jsx)(ie,{}),` `,e(`activity:agentOffice.detailHint`)]})]}),u&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`button`,{type:`button`,className:`agent-office__detail-backdrop`,onClick:()=>d(null),"aria-label":`Close tool details`}),(0,J.jsx)(ft,{selected:u,onClose:()=>d(null)})]})]})}function an(){let{t:e}=z(),{clientCounts:t,currentSession:n,totalAgents:i,activeAgents:o,aggregate:s}=Te(re(e=>({clientCounts:e.clientCounts,currentSession:e.currentSession,totalAgents:e.totalAgents,activeAgents:e.activeAgents,aggregate:e.aggregate}))),c=t.tui+t.webui+t.repl,l=e=>e?.toLocaleString()??`0`;return(0,J.jsxs)(`div`,{className:`absolute left-4 top-20 z-10 rounded-xl border border-border/70 bg-card/90 p-3 text-foreground shadow-xl backdrop-blur`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,J.jsx)(A,{className:`h-3.5 w-3.5 text-success`}),(0,J.jsx)(`span`,{className:`text-[10px] font-bold uppercase text-muted-foreground`,children:e(`activity:office.sessionStats`)})]}),(0,J.jsxs)(`div`,{className:`space-y-1.5 text-[10px]`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(le,{className:`h-3 w-3 text-muted-foreground`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.clients`)})]}),(0,J.jsxs)(`span`,{className:`font-mono text-foreground`,children:[o,` `,(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`/`}),` `,(0,J.jsx)(`span`,{className:`text-success`,children:c})]})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-3 pl-4 text-[9px]`,children:[t.tui>0&&(0,J.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(a,{className:`h-2.5 w-2.5 text-success`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`TUI`}),(0,J.jsx)(`span`,{className:`font-mono text-success`,children:t.tui})]}),t.webui>0&&(0,J.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(r,{className:`h-2.5 w-2.5 text-primary`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`WebUI`}),(0,J.jsx)(`span`,{className:`font-mono text-primary`,children:t.webui})]}),t.repl>0&&(0,J.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(a,{className:`h-2.5 w-2.5 text-warning`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`REPL`}),(0,J.jsx)(`span`,{className:`font-mono text-warning`,children:t.repl})]})]}),(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(I,{className:`h-3 w-3 text-muted-foreground`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:officeMap.agents`)})]}),(0,J.jsxs)(`span`,{className:`font-mono text-foreground`,children:[o,` `,(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`/`}),` `,(0,J.jsx)(`span`,{className:`text-primary`,children:i})]})]}),n.model&&(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(oe,{className:`h-3 w-3 text-muted-foreground`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:officeMap.model`)})]}),(0,J.jsx)(`span`,{className:`max-w-[120px] truncate font-mono text-primary`,title:n.model,children:n.model.split(`/`).pop()?.slice(0,16)})]}),n.mode&&(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(ve,{className:`h-3 w-3 text-muted-foreground`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:officeMap.mode`)})]}),(0,J.jsx)(`span`,{className:V(`font-mono uppercase text-[9px] px-1.5 py-0.5 rounded`,n.mode===`auto`&&`bg-primary/10 text-primary`,n.mode===`suggest`&&`bg-success/10 text-success`,n.mode===`off`&&`bg-muted text-muted-foreground`,![`auto`,`suggest`,`off`].includes(n.mode||``)&&`bg-muted text-muted-foreground`),children:n.mode})]}),(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(M,{className:`h-3 w-3 text-muted-foreground`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.toolCallsLabel`)})]}),(0,J.jsx)(`span`,{className:`font-mono text-warning`,children:l(s.toolCalls)})]}),(0,J.jsxs)(`div`,{className:`mt-1.5 space-y-1 border-t border-border/70 pt-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`text-[8px] text-muted-foreground`,children:`IN`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.input`)})]}),(0,J.jsx)(`span`,{className:`font-mono text-[9px] text-foreground`,children:l(s.tokensIn)})]}),(0,J.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`text-[8px] text-muted-foreground`,children:`OUT`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.output`)})]}),(0,J.jsx)(`span`,{className:`font-mono text-[9px] text-foreground`,children:l(s.tokensOut)})]})]}),(0,J.jsxs)(`div`,{className:`mt-1.5 flex items-center justify-between gap-4 border-t border-border/70 pt-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(ge,{className:`h-3 w-3 text-muted-foreground`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.cost`)})]}),(0,J.jsx)(`span`,{className:`font-mono font-medium text-success`,children:(e=>e==null?`$0.0000`:`$${e.toFixed(4)}`)(s.costUsd)})]})]})]})}function on({events:e,now:t}){let{t:n}=z(),r=e.slice(0,14);return(0,J.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 z-10 pointer-events-none px-3 pb-3`,children:(0,J.jsxs)(`div`,{className:`pointer-events-auto mx-auto max-w-3xl rounded-lg border border-border/70 bg-card/90 px-3 py-2 shadow-xl backdrop-blur`,children:[(0,J.jsxs)(`div`,{className:`mb-1.5 flex items-center gap-1.5 text-[10px] uppercase text-primary`,children:[(0,J.jsx)(A,{className:`h-3 w-3`}),n(`activity:office.liveActivity`)]}),r.length===0?(0,J.jsx)(`div`,{className:`text-[11px] italic text-muted-foreground`,children:n(`activity:office.waitingActivity`)}):(0,J.jsx)(`div`,{className:`flex flex-col gap-0.5 max-h-32 overflow-hidden`,children:r.map(e=>{let r=Math.max(0,Math.round((t-e.timestamp)/1e3));return(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] leading-tight`,children:[(0,J.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full shrink-0`,style:{backgroundColor:kt(e.kind)}}),(0,J.jsx)(`span`,{className:`flex-1 truncate text-foreground`,children:e.label}),(0,J.jsx)(`span`,{className:`shrink-0 tabular-nums text-muted-foreground`,children:r<1?n(`activity:office.now`):`${r}s`})]},e.id)})})]})})}function sn(e){if(e<1e3)return`${e}ms`;let t=Math.round(e/100);return t<600?`${(t/10).toFixed(1)}s`:`${Math.floor(t/600)}m ${Math.round(t%600/10)}s`}var cn={user:{Icon:D,labelKey:`activity:message.roleYou`,avatarBg:`bg-primary`,avatarColor:`text-primary-foreground`,avatarRing:`ring-2 ring-offset-2 ring-offset-background ring-primary/20`,bubbleBg:`bg-transparent`,bubbleBorder:`border-primary/40`,textColor:`text-foreground`},assistant:{Icon:I,labelKey:`activity:message.roleAssistant`,avatarBg:`bg-accent`,avatarColor:`text-accent-foreground`,avatarRing:`ring-2 ring-offset-2 ring-offset-background ring-accent/20`,bubbleBg:`bg-card`,bubbleBorder:`border-border`,textColor:`text-foreground`},tool:{Icon:a,labelKey:`activity:message.roleTool`,avatarBg:`bg-secondary`,avatarColor:`text-secondary-foreground`,avatarRing:`ring-2 ring-offset-2 ring-offset-background ring-secondary/20`,bubbleBg:`bg-muted/80`,bubbleBorder:`border-border`,textColor:`text-foreground`},system:{Icon:I,labelKey:`activity:transcript.kindSystem`,avatarBg:`bg-muted`,avatarColor:`text-muted-foreground`,avatarRing:`ring-2 ring-offset-2 ring-offset-background ring-muted/20`,bubbleBg:`bg-muted/50`,bubbleBorder:`border-border`,textColor:`text-muted-foreground`},error:{Icon:n,labelKey:`activity:transcript.kindError`,avatarBg:`bg-destructive`,avatarColor:`text-destructive-foreground`,avatarRing:`ring-2 ring-offset-2 ring-offset-background ring-destructive/20`,bubbleBg:`bg-destructive/5`,bubbleBorder:`border-destructive/20`,textColor:`text-destructive`}};function ln({entry:e}){let{t}=z();return e.role===`error`?(0,J.jsx)(Ae,{text:e.text}):e.role===`tool`?(0,J.jsxs)(`div`,{className:`flex flex-col gap-1.5 tool-details`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm font-medium text-foreground`,children:[(0,J.jsx)(a,{className:`h-3 w-3`}),(0,J.jsx)(`span`,{className:`font-mono`,children:e.tool??t(`activity:watch.toolFallback`)}),e.durationMs!==void 0&&(0,J.jsxs)(`span`,{className:`ml-auto text-[10px] text-muted-foreground font-normal tabular-nums`,children:[(0,J.jsx)(de,{className:`h-3 w-3 inline mr-0.5 align-text-bottom`}),sn(e.durationMs)]})]}),e.input!==void 0&&e.input!==null&&(0,J.jsx)(`div`,{className:`p-3 bg-muted/50 rounded-lg overflow-x-auto`,children:(0,J.jsx)(Ne,{input:e.input})}),e.output!==void 0&&e.output!==null?(0,J.jsx)(`div`,{className:`text-sm leading-relaxed markdown-content`,children:typeof e.output==`string`?(0,J.jsx)(Pe,{remarkPlugins:[Oe],rehypePlugins:ke,components:Me,children:e.output}):(0,J.jsx)(`pre`,{className:`whitespace-pre-wrap font-mono text-xs bg-card rounded-lg p-2 border border-border overflow-x-auto`,children:JSON.stringify(e.output,null,2)})}):e.text?(0,J.jsx)(`div`,{className:`text-sm leading-relaxed markdown-content`,children:(0,J.jsx)(Pe,{remarkPlugins:[Oe],rehypePlugins:ke,components:Me,children:e.text})}):null,e.isError&&(0,J.jsxs)(`div`,{className:`rounded-lg border border-destructive/30 bg-destructive/5 px-3 py-2`,children:[(0,J.jsx)(`span`,{className:`text-xs font-medium text-destructive`,children:t(`activity:watch.toolFailed`)}),e.text&&(0,J.jsx)(`pre`,{className:`mt-1 text-xs whitespace-pre-wrap text-destructive/80`,children:e.text})]})]}):(0,J.jsx)(`div`,{className:`text-sm leading-relaxed markdown-content`,children:(0,J.jsx)(Pe,{remarkPlugins:[Oe],rehypePlugins:ke,components:Me,children:e.text})})}function un({entry:e,isContinuation:t=!1}){let{t:n}=z(),r=cn[e.role],i=r.Icon;return(0,J.jsxs)(`div`,{className:`group flex gap-3 animate-message msg-bubble rounded-lg transition-shadow`,children:[t?(0,J.jsx)(`div`,{className:`flex-shrink-0 w-8`}):(0,J.jsx)(`div`,{className:V(`flex-shrink-0 w-8 h-8 rounded-full flex items-center justify-center`,r.avatarBg,r.avatarColor,r.avatarRing),children:(0,J.jsx)(i,{className:`h-4 w-4`})}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1.5 min-w-0 flex-1`,children:[!t&&(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:V(`text-xs font-medium`,r.textColor),children:e.role===`tool`&&e.tool?e.tool:n(r.labelKey)}),(0,J.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:new Date(e.ts).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}),e.role===`tool`&&e.durationMs!==void 0&&(0,J.jsxs)(`span`,{className:`text-[10px] text-muted-foreground tabular-nums`,children:[`· `,sn(e.durationMs)]})]}),(0,J.jsx)(`div`,{className:V(`rounded-2xl px-4 py-3 border`,e.role===`user`&&`rounded-br-md`,e.role===`assistant`&&`rounded-bl-md`,e.role===`tool`&&`rounded-bl-sm`,e.role===`system`&&`rounded-bl-sm opacity-70`,e.role===`error`&&`rounded-bl-sm`,r.bubbleBg,r.bubbleBorder),children:(0,J.jsx)(`div`,{className:V(`text-sm leading-relaxed markdown-content`,r.textColor),children:(0,J.jsx)(ln,{entry:e})})}),e.text&&e.role!==`error`&&(0,J.jsx)(`div`,{className:`opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,J.jsx)(je,{text:e.text,label:n(`common:action.copy`)})})]})]})}var dn=[`steer`,`ask`,`assign`,`note`],fn=2500;function pn({sessionId:e,limit:t=200}){let[n,r]=(0,U.useState)(null),{t:i}=z(),[a,o]=(0,U.useState)(null),[s,c]=(0,U.useState)(``),[l,u]=(0,U.useState)(!1),[d,f]=(0,U.useState)(null),[p,m]=(0,U.useState)(`steer`),[h,g]=(0,U.useState)(`high`),[_,v]=(0,U.useState)([]),[y,b]=(0,U.useState)(!1),x=(0,U.useRef)(null),S=(0,U.useRef)(!0),C=(0,U.useRef)(!0),ee=Te(e=>e.liveSessions),w=(0,U.useMemo)(()=>ee.find(t=>t.sessionId===e),[ee,e]),T=(0,U.useMemo)(()=>{let e=w;return e?`${e.status}|${e.agents.map(e=>`${e.id}:${e.status}:${e.toolCalls??0}:${e.iterations??0}`).join(`,`)}`:``},[w]),te=w?.status===`active`||(w?.agents.some(e=>e.status===`running`||e.status===`streaming`)??!1),E=(0,U.useMemo)(()=>{if(!w)return null;let e=w.agents.find(e=>e.status===`running`||e.status===`streaming`);return e?.currentTool?`🔧 ${e.currentTool}`:e?i(`activity:sessionWatch.working`,{name:e.name??e.id}):null},[w,i]),D=(0,U.useMemo)(()=>{if(!w)return null;let e=w.agents.find(e=>e.partialText&&(e.status===`streaming`||e.status===`running`))??w.agents.find(e=>e.partialText);return e?.partialText?{label:e.id===`leader`?i(`activity:sessionWatch.claude`):e.name||e.id,text:e.partialText}:null},[w,i]),O=(0,U.useCallback)(async()=>{try{let n=await fetch(`/api/sessions/${encodeURIComponent(e)}/events?limit=${t}`);if(!n.ok)throw Error(`HTTP ${n.status}`);let i=await n.json();C.current&&(r(i),o(null))}catch(e){C.current&&o(e instanceof Error?e.message:String(e))}},[e,t]),k=(0,U.useCallback)(async()=>{try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/mailbox`);if(!t.ok)return;let n=await t.json();C.current&&Array.isArray(n.thread)&&v(n.thread)}catch{}},[e]);(0,U.useEffect)(()=>{C.current=!0,r(null),o(null),v([]),O(),k();let e=setInterval(()=>{document.hidden||(O(),k())},fn);return()=>{C.current=!1,clearInterval(e)}},[O,k]),(0,U.useEffect)(()=>{T&&O()},[T,O]),(0,U.useEffect)(()=>{S.current&&x.current&&(x.current.scrollTop=x.current.scrollHeight)},[n,D]);let A=()=>{let e=x.current;e&&(S.current=e.scrollHeight-e.scrollTop-e.clientHeight<40)},j=async()=>{let t=s.trim();if(!(!t||l)){u(!0),f(null);try{let n=await fetch(`/api/sessions/${encodeURIComponent(e)}/message`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({text:t,type:p,priority:h})});if(!n.ok)throw Error(`HTTP ${n.status}`);c(``),f(te?B.t(`activity:sessionWatch.sentRunning`):B.t(`activity:sessionWatch.sentIdle`)),k()}catch(e){f(B.t(`activity:sessionWatch.sentFailed`,{error:e instanceof Error?e.message:String(e)}))}finally{u(!1)}}},M=async()=>{if(!y){b(!0),f(null);try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/interrupt`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({reason:B.t(`activity:sessionWatch.interruptReason`)})});if(!t.ok)throw Error(`HTTP ${t.status}`);f(B.t(`activity:sessionWatch.interruptSent`)),k()}catch(e){f(B.t(`activity:sessionWatch.interruptFailed`,{error:e instanceof Error?e.message:String(e)}))}finally{b(!1)}}},ne=n?.entries??[];return(0,J.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between mb-1.5 shrink-0`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] uppercase tracking-wide text-muted-foreground`,children:[(0,J.jsx)(`span`,{className:V(`h-1.5 w-1.5 rounded-full`,te?`bg-success animate-pulse`:`bg-muted-foreground`)}),i(`activity:sessionWatch.liveStream`)]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n&&(0,J.jsxs)(`div`,{className:`text-[10px] text-muted-foreground`,children:[i(`activity:sessionWatch.events`,{count:n.total}),` · `,n.status]}),te&&(0,J.jsx)(`button`,{type:`button`,onClick:()=>void M(),disabled:y,title:i(`activity:sessionWatch.interruptTitle`),className:`rounded border border-destructive/40 bg-destructive/15 px-1.5 py-0.5 text-[10px] text-destructive hover:bg-destructive/25 disabled:opacity-40 transition-colors`,children:i(y?`activity:sessionWatch.interrupting`:`activity:sessionWatch.interrupt`)})]})]}),E&&(0,J.jsxs)(`div`,{className:`mb-1.5 shrink-0 text-[10px] text-foreground truncate`,children:[`▶ `,E]}),a&&(0,J.jsxs)(`div`,{className:`text-[11px] text-destructive mb-1 shrink-0`,children:[`· `,a]}),(0,J.jsxs)(`div`,{ref:x,onScroll:A,className:`min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain space-y-1.5 pr-1`,children:[ne.length===0&&!a&&(0,J.jsx)(`div`,{className:`text-[11px] text-muted-foreground italic`,children:i(`activity:sessionWatch.loading`)}),ne.map((e,t)=>(0,J.jsx)(un,{entry:e,isContinuation:t>0&&ne[t-1].role===e.role},`${e.ts}-${t}`)),D&&(0,J.jsxs)(`div`,{className:`flex gap-3 animate-message`,children:[(0,J.jsx)(`div`,{className:`flex-shrink-0 w-8 h-8 rounded-full flex items-center justify-center bg-accent text-accent-foreground ring-2 ring-offset-2 ring-offset-background ring-accent/20`,children:(0,J.jsx)(I,{className:`h-4 w-4 animate-pulse`})}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1.5 max-w-[85%] min-w-0`,children:[(0,J.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground px-1`,children:D.label}),(0,J.jsx)(`div`,{className:`rounded-2xl rounded-bl-md px-4 py-3 bg-card border border-border`,children:(0,J.jsxs)(`span`,{className:`text-sm leading-relaxed text-foreground whitespace-pre-wrap break-words`,children:[D.text,(0,J.jsx)(`span`,{className:`animate-pulse text-primary`,children:`▋`})]})})]})]})]}),_.length>0&&(0,J.jsxs)(`div`,{className:`mt-2 pt-2 border-t border-border shrink-0 max-h-28 overflow-y-auto space-y-1`,children:[(0,J.jsx)(`div`,{className:`text-[9px] uppercase tracking-wide text-muted-foreground`,children:i(`activity:mailbox.messages`)}),_.slice(-6).map(e=>{let t=e.completed?i(`activity:sessionWatch.done`):e.readByLeader?i(`activity:sessionWatch.read`):i(`activity:sessionWatch.delivered`);return(0,J.jsxs)(`div`,{className:`text-[10px] leading-snug`,children:[(0,J.jsx)(`span`,{className:V(`font-semibold mr-1.5`,e.fromLeader?`text-accent`:`text-primary`),children:e.fromLeader?i(`activity:sessionWatch.agent`):i(`activity:sessionWatch.you`)}),(0,J.jsx)(`span`,{className:`text-foreground whitespace-pre-wrap break-words`,children:e.body}),!e.fromLeader&&(0,J.jsx)(`span`,{className:V(`ml-1.5 text-[9px]`,e.completed?`text-success`:e.readByLeader?`text-primary`:`text-muted-foreground`),children:t})]},e.id)})]}),(0,J.jsxs)(`div`,{className:`mt-2 pt-2 border-t border-border shrink-0`,children:[(0,J.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5`,children:[(0,J.jsx)(`select`,{value:p,onChange:e=>m(e.target.value),title:i(`activity:sessionWatch.msgType.${p}Hint`),className:`rounded bg-muted border border-border px-1.5 py-0.5 text-[10px] text-foreground focus:outline-none focus:ring-1 focus:ring-ring`,children:dn.map(e=>(0,J.jsx)(`option`,{value:e,children:i(`activity:sessionWatch.msgType.${e}Label`)},e))}),(0,J.jsxs)(`select`,{value:h,onChange:e=>g(e.target.value),title:i(`activity:sessionWatch.priority`),className:`rounded bg-muted border border-border px-1.5 py-0.5 text-[10px] text-foreground focus:outline-none focus:ring-1 focus:ring-ring`,children:[(0,J.jsx)(`option`,{value:`high`,children:`high`}),(0,J.jsx)(`option`,{value:`normal`,children:`normal`}),(0,J.jsx)(`option`,{value:`low`,children:`low`})]})]}),(0,J.jsxs)(`div`,{className:`flex items-end gap-1.5`,children:[(0,J.jsx)(`textarea`,{value:s,onChange:e=>c(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),j())},rows:2,placeholder:i(`activity:sessionWatch.placeholder`,{label:i(`activity:sessionWatch.msgType.${p}Label`)}),className:`flex-1 resize-none rounded-md bg-muted border border-border px-2 py-1 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring`}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>void j(),disabled:l||!s.trim(),className:`shrink-0 rounded-md bg-primary text-primary-foreground px-2.5 py-1.5 text-xs hover:bg-primary/90 disabled:opacity-40 disabled:cursor-not-allowed transition-colors`,children:l?`…`:i(`activity:sessionWatch.send`)})]}),d&&(0,J.jsx)(`div`,{className:`mt-1 text-[10px] text-muted-foreground`,children:d}),(0,J.jsx)(`div`,{className:`mt-0.5 text-[9px] text-muted-foreground`,children:i(`activity:sessionWatch.sendHint`)})]})]})}var X={primary:`hsl(var(--primary))`,info:`hsl(var(--info))`,success:`hsl(var(--success))`,warning:`hsl(var(--warning))`,destructive:`hsl(var(--destructive))`,muted:`hsl(var(--muted-foreground))`},mn=.12;function hn(e){return Math.min(100,Math.max(0,e??0))}function Z({status:e,small:t,activity:n=0}){let r=t?`w-2 h-2`:`w-3 h-3`,i=t?4+n*4:6+n*6,a={idle:`bg-muted-foreground`,active:`bg-success`,streaming:`bg-primary`,completed:`bg-primary`,error:`bg-destructive`,offline:`bg-muted-foreground/60`},o={idle:X.muted,active:X.success,streaming:X.primary,completed:X.primary,error:X.destructive,offline:X.muted};return(0,J.jsx)(`span`,{className:V(`rounded-full`,r,n>0&&`animate-pulse`,a[e]),style:{boxShadow:n>0?`0 0 ${i}px ${o[e]}`:void 0}})}function Q(){let e={opacity:0,width:1,height:1,minWidth:0,border:`none`,background:`transparent`};return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(L,{type:`target`,position:C.Top,style:e,isConnectable:!1}),(0,J.jsx)(L,{type:`source`,position:C.Bottom,style:e,isConnectable:!1})]})}function gn({data:e}){let{t}=z();return(0,J.jsxs)(`div`,{className:`mt-2 flex items-center justify-between border-t border-border/60 pt-1.5 text-[10px] text-muted-foreground`,children:[(0,J.jsxs)(`span`,{children:[(0,J.jsx)(`span`,{className:`font-mono text-foreground`,children:e.agentCount??0}),` `,t(`activity:office.agentsSuffix`)]}),e.startedAt&&(0,J.jsx)(`span`,{children:t(`activity:office.upPrefix`,{time:ht(e.startedAt,Date.now())})})]})}function _n({data:e}){let{t}=z(),n=e.status===`active`||e.status===`streaming`,i=e.status===`error`,a=e.status===`offline`,o=e.color||X.info;return(0,J.jsxs)(`div`,{className:V(`rounded-xl border-2 p-4 min-w-[180px] transition-all backdrop-blur-sm`,n&&`shadow-lg shadow-primary/15`,i&&`border-destructive/50 bg-destructive/10`,a&&`border-border/70 bg-muted/35 opacity-60`,!n&&!i&&!a&&`border-primary/30 bg-primary/10`),children:[(0,J.jsx)(Q,{}),(0,J.jsxs)(`div`,{className:`flex items-center gap-3 mb-3`,children:[(0,J.jsx)(`div`,{className:V(`flex items-center justify-center w-10 h-10 rounded-lg`,n?`bg-primary/15`:`bg-primary/10`),children:(0,J.jsx)(r,{className:`h-5 w-5`,style:{color:o}})}),(0,J.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,J.jsx)(`div`,{className:`text-xs font-bold truncate`,style:{color:o},children:e.label}),(0,J.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:t(`activity:office.webuiClient`)})]}),(0,J.jsx)(Z,{status:e.status,activity:e.vizActivity??0})]}),e.sublabel&&(0,J.jsx)(`div`,{className:`mb-2 truncate text-[10px] text-muted-foreground`,children:e.sublabel}),(0,J.jsx)(`div`,{className:`flex items-center gap-2 text-[10px] text-muted-foreground`,children:a?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(w,{className:`h-3 w-3 text-muted-foreground`}),(0,J.jsx)(`span`,{children:t(`activity:office.disconnected`)})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(N,{className:`h-3 w-3 text-success`}),(0,J.jsx)(`span`,{children:t(`activity:office.connected`)})]})}),n&&(0,J.jsx)(`div`,{className:`mt-2 h-1 overflow-hidden rounded-full bg-primary/20`,children:(0,J.jsx)(`div`,{className:`h-full animate-pulse bg-primary`,style:{width:`60%`}})}),(0,J.jsx)(gn,{data:e})]})}function vn({data:e}){let{t}=z(),n=e.status===`active`||e.status===`streaming`,r=e.status===`error`,i=e.color||X.success;return(0,J.jsxs)(`div`,{className:V(`rounded-xl border-2 p-4 min-w-[180px] transition-all backdrop-blur-sm`,n&&`shadow-lg shadow-success/15`,r&&`border-destructive/50 bg-destructive/10`,!n&&!r&&`border-success/30 bg-success/10`),children:[(0,J.jsx)(Q,{}),(0,J.jsxs)(`div`,{className:`flex items-center gap-3 mb-3`,children:[(0,J.jsx)(`div`,{className:V(`flex items-center justify-center w-10 h-10 rounded-lg`,n?`bg-success/15`:`bg-success/10`),children:(0,J.jsx)(a,{className:`h-5 w-5`,style:{color:i}})}),(0,J.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,J.jsx)(`div`,{className:`text-xs font-bold truncate`,style:{color:i},children:e.label}),(0,J.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:t(`activity:office.tuiClient`)})]}),(0,J.jsx)(Z,{status:e.status,activity:e.vizActivity??0})]}),e.sublabel&&(0,J.jsx)(`div`,{className:`mb-2 truncate text-[10px] text-muted-foreground`,children:e.sublabel}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-[10px] text-muted-foreground`,children:[(0,J.jsx)(a,{className:`h-3 w-3 text-success`}),(0,J.jsx)(`span`,{children:t(`activity:office.terminal`)})]}),(0,J.jsx)(gn,{data:e})]})}function yn({data:e}){let{t}=z(),n=e.status===`active`||e.status===`streaming`,r=e.color||X.warning;return(0,J.jsxs)(`div`,{className:V(`rounded-xl border-2 p-4 min-w-[160px] transition-all backdrop-blur-sm`,n&&`shadow-lg shadow-warning/15`,!n&&`border-warning/30 bg-warning/10`),children:[(0,J.jsx)(Q,{}),(0,J.jsxs)(`div`,{className:`flex items-center gap-3 mb-3`,children:[(0,J.jsx)(`div`,{className:V(`flex items-center justify-center w-10 h-10 rounded-lg`,n?`bg-warning/15`:`bg-warning/10`),children:(0,J.jsx)(a,{className:`h-5 w-5`,style:{color:r}})}),(0,J.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,J.jsx)(`div`,{className:`text-xs font-bold truncate`,style:{color:r},children:e.label}),(0,J.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:t(`activity:office.repl`)})]}),(0,J.jsx)(Z,{status:e.status,activity:e.vizActivity??0})]}),e.sublabel&&(0,J.jsx)(`div`,{className:`mb-1 truncate text-[10px] text-muted-foreground`,children:e.sublabel}),(0,J.jsx)(gn,{data:e})]})}function bn({data:e}){let{t}=z(),n=e.status===`active`||e.status===`streaming`,r=e.color||X.primary;return(0,J.jsxs)(`div`,{className:`relative min-w-[200px] rounded-xl border-2 border-border/70 bg-card/90 p-4 shadow-lg backdrop-blur-sm transition-all`,children:[(0,J.jsx)(Q,{}),(0,J.jsx)(`div`,{className:`absolute -top-3 left-1/2 -translate-x-1/2 rounded-full bg-primary px-2 py-0.5 text-[11px] font-bold text-primary-foreground`,children:t(`activity:office.coordinator`)}),(0,J.jsxs)(`div`,{className:`flex items-center gap-3 mb-3 mt-2`,children:[(0,J.jsx)(`div`,{className:V(`flex items-center justify-center w-12 h-12 rounded-xl`,n?`bg-primary/15`:`bg-primary/10`),children:(0,J.jsx)(oe,{className:`h-6 w-6`,style:{color:r}})}),(0,J.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,J.jsx)(`div`,{className:`text-sm font-bold truncate`,style:{color:r},children:e.label}),(0,J.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:e.sublabel||t(`activity:office.fleetSummary`)})]}),(0,J.jsx)(Z,{status:e.status,activity:e.vizActivity??0})]}),(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 text-[10px] mb-2`,children:[(0,J.jsxs)(`div`,{className:`rounded bg-muted/40 p-1.5 text-center`,children:[(0,J.jsxs)(`div`,{className:`font-mono`,children:[(0,J.jsx)(`span`,{className:`text-success`,children:e.agentsActive||0}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:` / `}),(0,J.jsx)(`span`,{className:`text-primary`,children:e.agentsTotal||0})]}),(0,J.jsx)(`div`,{className:`text-muted-foreground`,children:t(`activity:officeMap.agents`)})]}),(0,J.jsxs)(`div`,{className:`rounded bg-muted/40 p-1.5 text-center`,children:[(0,J.jsx)(`div`,{className:`font-mono text-warning`,children:(e.toolCalls||0).toLocaleString()}),(0,J.jsx)(`div`,{className:`text-muted-foreground`,children:t(`activity:office.toolCallsLabel`)})]}),(0,J.jsxs)(`div`,{className:`rounded bg-muted/40 p-1.5 text-center`,children:[(0,J.jsx)(`div`,{className:`font-mono text-foreground`,children:pt(e.tokensIn)}),(0,J.jsx)(`div`,{className:`text-muted-foreground`,children:t(`activity:office.tokensLabel`)})]}),(0,J.jsxs)(`div`,{className:`rounded bg-muted/40 p-1.5 text-center`,children:[(0,J.jsxs)(`div`,{className:`font-mono text-success`,children:[`$`,(e.costUsd||0).toFixed(3)]}),(0,J.jsx)(`div`,{className:`text-muted-foreground`,children:t(`activity:office.cost`)})]})]}),n&&(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-[10px] text-primary`,children:[(0,J.jsx)(`span`,{className:`h-2 w-2 animate-pulse rounded-full bg-primary`}),t(`activity:office.coordinatingFleet`)]})]})}function xn({data:e}){let{t}=z(),n=e.status===`active`||e.status===`streaming`,r=e.status===`error`,i=e.status===`completed`,a=e.color||X.primary,o=hn(e.ctxPct);return(0,J.jsxs)(`div`,{className:V(`w-[170px] min-w-0 max-w-[170px] overflow-hidden rounded-lg border p-3 transition-all backdrop-blur-sm`,n&&`border-primary/50 bg-primary/10 shadow-lg shadow-primary/10`,r&&`border-destructive/50 bg-destructive/10`,i&&`border-border/70 bg-muted/35`,!n&&!r&&!i&&`border-primary/30 bg-primary/10`),children:[(0,J.jsx)(Q,{}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,J.jsx)(I,{className:`h-4 w-4 shrink-0`,style:{color:a}}),(0,J.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,J.jsx)(`div`,{className:`text-[11px] font-bold truncate`,style:{color:a},children:e.label}),e.model&&(0,J.jsx)(`div`,{className:`truncate text-[10px] text-muted-foreground`,children:gt(e.model)})]}),(0,J.jsx)(Z,{status:e.status,small:!0,activity:e.vizActivity??0})]}),e.currentTask&&(0,J.jsxs)(`div`,{className:`mb-1.5 flex min-w-0 items-center gap-1 overflow-hidden text-[11px] text-primary`,children:[(0,J.jsx)(`span`,{className:V(`h-1.5 w-1.5 shrink-0 rounded-full bg-primary`,n&&`animate-pulse`)}),(0,J.jsx)(`span`,{className:`min-w-0 truncate font-mono`,title:e.currentTask,children:_t(e.currentTask,72)})]}),(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-2 gap-y-0.5 text-[11px] mb-1.5`,children:[(0,J.jsxs)(`div`,{className:`flex justify-between`,children:[(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`iter`}),(0,J.jsx)(`span`,{className:`font-mono text-foreground`,children:e.iteration||0})]}),(0,J.jsxs)(`div`,{className:`flex justify-between`,children:[(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`tools`}),(0,J.jsx)(`span`,{className:`font-mono text-warning`,children:e.toolCalls||0})]}),(0,J.jsxs)(`div`,{className:`flex justify-between`,children:[(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`tok`}),(0,J.jsx)(`span`,{className:`font-mono text-foreground`,children:pt((e.tokensIn||0)+(e.tokensOut||0))})]}),(0,J.jsxs)(`div`,{className:`flex justify-between`,children:[(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:`cost`}),(0,J.jsxs)(`span`,{className:`font-mono text-success`,children:[`$`,(e.costUsd||0).toFixed(3)]})]})]}),o>0&&(0,J.jsxs)(`div`,{className:`mb-1`,children:[(0,J.jsxs)(`div`,{className:`mb-0.5 flex justify-between text-[10px] text-muted-foreground`,children:[(0,J.jsx)(`span`,{children:`ctx`}),(0,J.jsxs)(`span`,{className:V(`font-mono`,o>=90?`text-destructive`:o>=70?`text-warning`:`text-muted-foreground`),children:[o,`%`]})]}),(0,J.jsx)(`div`,{className:`h-1 overflow-hidden rounded-full bg-muted`,children:(0,J.jsx)(`div`,{className:V(`h-full`,o>=90?`bg-destructive`:o>=70?`bg-warning`:`bg-primary`),style:{width:`${o}%`}})})]}),e.lastActivityAt&&(0,J.jsxs)(`div`,{className:V(`flex items-center gap-1 text-[10px]`,n?`text-muted-foreground/70`:`text-muted-foreground`),children:[i&&(0,J.jsx)(`span`,{className:`text-success`,children:t(`activity:office.donePrefix`)}),r&&(0,J.jsx)(`span`,{className:`text-destructive`,children:t(`activity:office.failedPrefix`)}),(0,J.jsx)(`span`,{children:t(`activity:office.seenPrefix`,{time:mt(e.lastActivityAt,Date.now())})})]})]})}function Sn({data:e}){let{t}=z();return(0,J.jsxs)(`div`,{className:V(`rounded-lg border border-dashed p-3 min-w-[120px] transition-all opacity-40`,`border-border/70 bg-muted/30`),children:[(0,J.jsx)(Q,{}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,J.jsx)(ce,{className:`h-4 w-4 text-muted-foreground`}),(0,J.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,J.jsx)(`div`,{className:`truncate text-[10px] text-muted-foreground`,children:e.label})}),(0,J.jsx)(Z,{status:e.status,small:!0,activity:e.vizActivity??0})]}),(0,J.jsx)(`div`,{className:`text-[11px] text-muted-foreground`,children:t(`activity:office.availableDesk`)})]})}function Cn({data:e}){let{t}=z(),n=e.color||X.warning,r=(e.unreadCount||0)>0;return(0,J.jsxs)(`div`,{className:V(`rounded-xl border-2 p-4 min-w-[160px] transition-all backdrop-blur-sm`,r&&`border-warning/50 bg-warning/10 shadow-lg shadow-warning/10`,!r&&`border-warning/30 bg-warning/6`),children:[(0,J.jsx)(Q,{}),(0,J.jsxs)(`div`,{className:`flex items-center gap-3 mb-3`,children:[(0,J.jsx)(`div`,{className:V(`flex items-center justify-center w-10 h-10 rounded-lg`,r?`bg-warning/18`:`bg-warning/10`),children:(0,J.jsx)(b,{className:`h-5 w-5`,style:{color:n}})}),(0,J.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,J.jsx)(`div`,{className:`text-xs font-bold`,style:{color:n},children:t(`activity:office.mailboxHub`)}),(0,J.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:r?t(`activity:office.unreadSuffix`,{count:e.unreadCount||0}):t(`activity:office.allClear`)})]}),r&&(0,J.jsx)(`div`,{className:`flex h-5 w-5 items-center justify-center rounded-full bg-warning text-[10px] font-bold text-background`,children:e.unreadCount})]}),(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 text-[10px]`,children:[(0,J.jsxs)(`div`,{className:`rounded bg-muted/40 p-1.5 text-center`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-center gap-1 text-warning`,children:[(0,J.jsx)(f,{className:`h-3 w-3`}),(0,J.jsx)(`span`,{children:e.messageCount||0})]}),(0,J.jsx)(`div`,{className:`text-muted-foreground`,children:t(`activity:office.total`)})]}),(0,J.jsxs)(`div`,{className:`rounded bg-muted/40 p-1.5 text-center`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-center gap-1 text-success`,children:[(0,J.jsx)(R,{className:`h-3 w-3`}),(0,J.jsx)(`span`,{children:e.unreadCount||0})]}),(0,J.jsx)(`div`,{className:`text-muted-foreground`,children:t(`activity:office.unreadLabel`)})]})]}),e.sublabel&&(0,J.jsxs)(`div`,{className:`mt-2 truncate border-t border-border/60 pt-1.5 text-[11px] text-muted-foreground`,children:[`✉ `,e.sublabel]})]})}var wn={webui:_n,tui:vn,repl:yn,coordinator:bn,agent:xn,mailbox:Cn,desk:Sn};function $({k:e,v:t,accent:n}){return(0,J.jsxs)(`div`,{className:`flex justify-between gap-3`,children:[(0,J.jsx)(`span`,{className:`text-muted-foreground shrink-0`,children:e}),(0,J.jsx)(`span`,{className:V(`font-mono truncate text-right`,n??`text-foreground/80`),children:t})]})}function Tn({selectedNode:e,selectedAgentTranscript:t,mailboxMessages:n,onClose:i,onOpenWatch:o}){let{t:s}=z(),c=e.data,l=Date.now(),u=c.kind===`agent`,d=c.kind===`webui`||c.kind===`tui`||c.kind===`repl`,f=(c.tokensIn||0)+(c.tokensOut||0),p=hn(c.ctxPct);return(0,J.jsxs)(`div`,{className:V(`absolute top-20 right-4 bg-background border border-border rounded-lg p-4 shadow-xl z-20`,c.kind===`agent`?`w-[28rem] max-w-[calc(100%-2rem)]`:c.sessionId?`w-80`:`w-64`),children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[c.kind===`webui`&&(0,J.jsx)(r,{className:`h-4 w-4 text-info`}),c.kind===`tui`&&(0,J.jsx)(a,{className:`h-4 w-4 text-success`}),c.kind===`coordinator`&&(0,J.jsx)(oe,{className:`h-4 w-4 text-primary`}),c.kind===`agent`&&(0,J.jsx)(I,{className:`h-4 w-4 text-primary`}),c.kind===`mailbox`&&(0,J.jsx)(b,{className:`h-4 w-4 text-warning`}),(0,J.jsx)(`span`,{className:`text-sm font-bold text-foreground`,children:c.label})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[c.sessionId&&(0,J.jsx)(`button`,{type:`button`,title:s(`activity:office.openFullView`),onClick:()=>o({sessionId:c.sessionId,label:c.label}),className:`text-muted-foreground hover:text-primary`,children:(0,J.jsx)(h,{className:`h-3.5 w-3.5`})}),(0,J.jsx)(`button`,{type:`button`,onClick:i,className:`text-muted-foreground hover:text-foreground text-lg leading-none`,children:`×`})]})]}),(0,J.jsxs)(`div`,{className:`space-y-1.5 text-xs`,children:[(0,J.jsx)($,{k:`Status`,v:String(c.status).toUpperCase(),accent:V(c.status===`active`&&`text-success`,c.status===`streaming`&&`text-primary`,c.status===`error`&&`text-destructive`,c.status===`idle`&&`text-muted-foreground`,c.status===`offline`&&`text-muted-foreground/70`)}),u&&(0,J.jsxs)(J.Fragment,{children:[c.model&&(0,J.jsx)($,{k:`Model`,v:gt(c.model),accent:`text-primary`}),c.currentTask&&(0,J.jsxs)(`div`,{className:`pt-1`,children:[(0,J.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-muted-foreground`,children:s(`activity:agentOffice.currentTask`)}),(0,J.jsx)(`div`,{className:`mt-1 max-h-32 overflow-y-auto whitespace-pre-wrap break-words font-mono text-[10px] text-primary`,children:c.currentTask})]}),(0,J.jsx)($,{k:`Iterations`,v:c.iteration||0,accent:`text-primary`}),(0,J.jsx)($,{k:`Tool calls`,v:c.toolCalls||0,accent:`text-warning`}),(0,J.jsx)($,{k:`Tokens in`,v:pt(c.tokensIn)}),(0,J.jsx)($,{k:`Tokens out`,v:pt(c.tokensOut)}),(0,J.jsx)($,{k:`Tokens total`,v:pt(f)}),p>0&&(0,J.jsx)($,{k:`Context`,v:`${p}%`,accent:p>=90?`text-destructive`:p>=70?`text-warning`:`text-foreground/70`}),(0,J.jsx)($,{k:`Cost`,v:`$${(c.costUsd||0).toFixed(4)}`,accent:`text-success`}),c.lastActivityAt&&(0,J.jsx)($,{k:`Last seen`,v:mt(c.lastActivityAt,l),accent:`text-muted-foreground`}),(0,J.jsx)(`div`,{className:`pt-2`,children:(0,J.jsx)(Fe,{entries:t,agentName:c.label,compact:!0,maxHeightClassName:`max-h-64`})})]}),d&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)($,{k:`Surface`,v:xt(c.kind),accent:`text-foreground/80`}),c.branch&&(0,J.jsx)($,{k:`Branch`,v:`⎇ ${c.branch}`,accent:`text-foreground/70`}),c.pid!=null&&(0,J.jsx)($,{k:`PID`,v:c.pid}),c.workingDir&&(0,J.jsx)($,{k:`Dir`,v:c.workingDir,accent:`text-muted-foreground`}),(0,J.jsx)($,{k:`Agents`,v:c.agentCount??0,accent:`text-primary`}),c.startedAt&&(0,J.jsx)($,{k:`Uptime`,v:ht(c.startedAt,l),accent:`text-foreground/70`})]}),c.kind===`mailbox`&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)($,{k:`Total messages`,v:c.messageCount||0,accent:`text-warning`}),(0,J.jsx)($,{k:`Unread`,v:c.unreadCount||0,accent:`text-warning`}),n.length>0&&(0,J.jsxs)(`div`,{className:`mt-1 space-y-1 border-t border-border pt-2`,children:[(0,J.jsx)(`div`,{className:`text-[10px] uppercase tracking-wide text-muted-foreground`,children:s(`activity:office.recent`)}),[...n].sort((e,t)=>Date.parse(t.timestamp)-Date.parse(e.timestamp)).slice(0,6).map(e=>(0,J.jsxs)(`div`,{className:`flex items-start gap-1.5 text-[10px]`,children:[(0,J.jsx)(`span`,{className:V(`mt-1 h-1.5 w-1.5 shrink-0 rounded-full`,!e.completed&&(e.readByCount??0)===0?`bg-warning`:e.completed?`bg-success`:`bg-muted`)}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`div`,{className:`truncate text-foreground/80`,children:e.subject||s(`activity:office.noSubject`)}),(0,J.jsxs)(`div`,{className:`truncate font-mono text-[9px] text-muted-foreground`,children:[e.from,` → `,e.to,` · `,mt(e.timestamp,l),e.audience===`leaders`?` · ${s(`activity:mailbox.audienceLeaders`)}`:``]})]})]},e.id))]})]}),c.kind===`coordinator`&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)($,{k:`Connections`,v:c.connections||0,accent:`text-primary`}),(0,J.jsx)($,{k:`Iterations`,v:c.iteration||0,accent:`text-primary`})]}),(u||d)&&c.sessionId&&(0,J.jsx)(`div`,{className:`mt-2 border-t border-border pt-2 h-72`,children:(0,J.jsx)(pn,{sessionId:c.sessionId})})]})]})}var En={wire:({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:i,targetPosition:a,data:o,selected:s})=>{let c=o?.color||X.primary,l=H(e=>e.animateEdges),u=o?.animated&&l?Math.max(.15,o?.intensity??.6):0,[d,f,p]=be({sourceX:e,sourceY:t,sourcePosition:i??C.Bottom,targetX:n,targetY:r,targetPosition:a??C.Top,curvature:.28}),m=5+u*7,h=5+u*4,g=m+h,_=`${Math.max(.5,1.6-u).toFixed(2)}s`;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`path`,{d,fill:`none`,stroke:c,strokeWidth:s?2.5:1.4,strokeOpacity:s?.9:.28,className:`react-flow__edge-path`}),u>.05&&(0,J.jsx)(`path`,{d,fill:`none`,stroke:c,strokeWidth:2.2,strokeOpacity:.45+u*.5,strokeDasharray:`${m} ${h}`,strokeLinecap:`round`,style:{filter:`drop-shadow(0 0 ${2+u*4}px ${c})`},children:(0,J.jsx)(`animate`,{attributeName:`stroke-dashoffset`,from:g,to:`0`,dur:_,repeatCount:`indefinite`})}),o?.label&&u>.1&&(0,J.jsx)(fe,{children:(0,J.jsx)(`div`,{style:{position:`absolute`,transform:`translate(-50%, -50%) translate(${f}px, ${p}px)`},className:`pointer-events-none max-w-[220px] truncate whitespace-nowrap rounded-full border border-border/70 bg-card/90 px-1.5 py-0.5 text-[8px] font-medium text-foreground backdrop-blur-sm`,children:o.label})})]})}};function Dn(){let{t:e}=z();return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`absolute bottom-4 left-4 z-10 rounded-lg border border-border/70 bg-card/90 p-3 text-[10px] shadow-xl backdrop-blur`,children:[(0,J.jsx)(`div`,{className:`mb-2 font-bold text-foreground`,children:e(`activity:office.legendStatus`)}),(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`h-2 w-2 animate-pulse rounded-full bg-success`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.legendActive`)})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`h-2 w-2 rounded-full bg-muted-foreground`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.legendIdle`)})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`h-2 w-2 animate-pulse rounded-full bg-destructive`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.legendError`)})]})]})]}),(0,J.jsxs)(`div`,{className:`absolute bottom-4 right-4 z-10 rounded-lg border border-border/70 bg-card/90 p-3 text-[10px] shadow-xl backdrop-blur`,children:[(0,J.jsx)(`div`,{className:`mb-2 font-bold text-foreground`,children:e(`activity:office.legendConnections`)}),(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`text-warning`,children:`✉`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.legendMail`)})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`text-primary`,children:`→`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.legendTask`)})]}),(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`text-success`,children:`●`}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e(`activity:office.legendStatusConn`)})]})]})]})]})}function On({draft:e,isSending:t,result:n,onClose:r,onDraftChange:i,onSend:a}){let{t:o}=z();return(0,J.jsxs)(`div`,{className:`absolute right-4 top-16 z-30 w-80 rounded-xl border border-warning/35 bg-card/95 p-3 shadow-2xl backdrop-blur`,children:[(0,J.jsxs)(`div`,{className:`mb-1.5 flex items-center justify-between`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[11px] font-semibold text-warning`,children:[(0,J.jsx)(f,{className:`h-3.5 w-3.5`}),` `,o(`activity:office.broadcastToAll`)]}),(0,J.jsx)(`button`,{type:`button`,onClick:r,className:`text-base leading-none text-muted-foreground hover:text-foreground`,children:`×`})]}),(0,J.jsx)(`textarea`,{value:e,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),a())},rows:3,placeholder:o(`activity:office.broadcastPlaceholder`),className:`w-full resize-none rounded-md border border-border/70 bg-background/70 px-2 py-1 text-[11px] text-foreground placeholder:text-muted-foreground focus:border-warning/45 focus:outline-none`}),(0,J.jsxs)(`div`,{className:`mt-1.5 flex items-center justify-between`,children:[(0,J.jsx)(`span`,{className:`text-[9px] text-muted-foreground`,children:o(`activity:office.broadcastSendHint`)}),(0,J.jsx)(`button`,{type:`button`,onClick:a,disabled:t||!e.trim(),className:`rounded-md border border-warning/35 bg-warning/12 px-2.5 py-1 text-[11px] text-warning transition-colors hover:bg-warning/18 disabled:cursor-not-allowed disabled:opacity-40`,children:t?`…`:o(`activity:office.broadcast`)})]}),n&&(0,J.jsx)(`div`,{className:`mt-1 text-[10px] text-muted-foreground`,children:n})]})}function kn({broadcastOpen:e,labels:t,onArrange:n,onBroadcastToggle:r,onFeedToggle:i,showFeed:a}){return(0,J.jsxs)(se,{position:`top-right`,className:`flex items-center gap-2`,children:[(0,J.jsxs)(`button`,{type:`button`,onClick:n,title:t.arrangeTitle,className:`flex items-center gap-1.5 rounded-md border border-border/70 bg-card/90 px-2.5 py-1.5 text-xs text-foreground shadow-sm transition-colors hover:bg-accent`,children:[(0,J.jsx)(_e,{className:`h-3.5 w-3.5`}),t.arrange]}),(0,J.jsxs)(`button`,{type:`button`,onClick:i,title:t.feedTitle,className:V(`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-xs transition-colors`,a?`border-primary/35 bg-primary/10 text-primary`:`border-border/70 bg-card/90 text-muted-foreground hover:bg-accent hover:text-foreground`),children:[(0,J.jsx)(x,{className:`h-3.5 w-3.5`}),t.feed]}),(0,J.jsxs)(`button`,{type:`button`,onClick:r,title:t.broadcastTitle,className:V(`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md border text-xs transition-colors`,e?`border-warning/35 bg-warning/10 text-warning`:`border-border/70 bg-card/90 text-muted-foreground hover:bg-accent hover:text-foreground`),children:[(0,J.jsx)(f,{className:`h-3.5 w-3.5`}),t.broadcast]})]})}function An(){return(0,J.jsx)(T,{className:`rounded-lg border border-border/70 bg-card/90`,nodeColor:e=>{switch(e.data.kind){case`coordinator`:return X.primary;case`webui`:return X.info;case`tui`:return X.success;case`repl`:case`mailbox`:return X.warning;default:return X.primary}},maskColor:`hsl(var(--background) / 0.72)`})}function jn({closeTitle:e,label:t,onClose:n,sessionId:r,streamTitle:i}){return(0,J.jsxs)(`div`,{className:`absolute inset-y-0 right-0 z-30 flex w-[min(680px,92%)] flex-col border-l border-border bg-background shadow-2xl`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-4 py-2.5 shrink-0 bg-card`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,J.jsx)(I,{className:`h-4 w-4 text-primary shrink-0`}),(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(`div`,{className:`truncate text-sm font-bold text-foreground`,children:t}),(0,J.jsx)(`div`,{className:`text-[10px] uppercase tracking-wide text-muted-foreground`,children:i})]})]}),(0,J.jsx)(`button`,{type:`button`,onClick:n,title:e,className:`text-muted-foreground hover:text-foreground text-xl leading-none shrink-0`,children:`×`})]}),(0,J.jsx)(`div`,{className:`flex-1 min-h-0 p-4`,children:(0,J.jsx)(pn,{sessionId:r,limit:500})})]})}function Mn(){let{t:e}=z(),{fitView:t}=ne(),n=(0,U.useRef)(null),[r,i]=(0,U.useState)({width:1280,height:720});(0,U.useEffect)(()=>{let e=n.current;if(!e)return;let t=()=>{let{width:t,height:n}=e.getBoundingClientRect();t<1||n<1||i(e=>Math.abs(e.width-t)<2&&Math.abs(e.height-n)<2?e:{width:t,height:n})};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[]);let a=Se(e=>e.events),o=Ee(e=>e.agents),s=Ee(e=>e.agentTranscripts),c=Ee(e=>e.leaderId),u=Te(e=>e.liveSessions),d=De(e=>e.messages),f=De(e=>e.agents),p=Ce(e=>e.session),m=jt(o),h=(0,U.useMemo)(()=>Ot(u,o,f,m.map,m.now),[u,o,f,m]),g=H(e=>e.showHud),_=H(e=>e.showLegend),v=H(e=>e.showMinimap),y=H(e=>e.showControls),b=H(e=>e.showFeed),x=H(e=>e.setShowFeed),S=H(e=>e.background),[C,w,T]=ue([]),[E,D,O]=pe([]),[A,j]=(0,U.useState)(null),[M,re]=(0,U.useState)(null),[ie,oe]=(0,U.useState)(!1),[N,P]=(0,U.useState)(``),[se,ce]=(0,U.useState)(!1),[le,de]=(0,U.useState)(null),F=(0,U.useMemo)(()=>{if(A?.data.kind!==`agent`)return we;let e=A.data.serverId??(A.id.includes(`__agent-`)?A.id.split(`__agent-`).pop():A.id.replace(/^agent-/,``));return e?s.get(e)??we:we},[s,A]),fe=(0,U.useCallback)(async()=>{let e=N.trim();if(!(!e||se)){ce(!0),de(null);try{let t=await fetch(`/api/fleet/broadcast`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({text:e})});if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();P(``),de(`Delivered to ${n.delivered??0}/${n.targets??0} session(s)`)}catch(e){de(`Failed: ${e instanceof Error?e.message:String(e)}`)}finally{ce(!1)}}},[N,se]),me=(0,U.useRef)(new Map),I=4e3,L=(0,U.useRef)(new Map),R=(0,U.useRef)(new Map),ge=(0,U.useRef)(new Map),_e=(0,U.useRef)(new Map),ve=(0,U.useRef)(``);(0,U.useEffect)(()=>{let n=[],i=[],a=Date.now(),s=vt(h.map(e=>({id:e.id,agentCount:e.agents.length})),r),l=d.filter(e=>!e.completed&&(e.readByCount??0)===0).length,u=d.length?[...d].sort((e,t)=>Date.parse(t.timestamp)-Date.parse(e.timestamp))[0]:void 0;n.push({id:`mailbox`,type:`mailbox`,position:{x:830,y:50},data:{label:e(`activity:office.mailboxHub`),kind:`mailbox`,status:l>0?`active`:`idle`,unreadCount:l,messageCount:d.length,sublabel:u?`${u.from} → ${u.to}: ${u.subject}`:void 0,color:X.warning}});let f=0,p=0,m=0,g=0,_=0;for(let e of h)for(let t of e.agents)p+=1,(t.status===`active`||t.status===`streaming`)&&(f+=1),m+=t.toolCalls,g+=t.costUsd,_+=t.tokensIn+t.tokensOut;let v=c?o.get(c):null,y=f>0;n.push({id:`coordinator`,type:`coordinator`,position:{x:370,y:50},data:{label:e(`activity:office.fleetHqLabel`),sublabel:e(`activity:office.clientsSuffix`,{count:h.length}),kind:`coordinator`,status:v?.status===`failed`?`error`:y?`active`:`idle`,connections:h.length,agentsActive:f,agentsTotal:p,toolCalls:m,costUsd:g,tokensIn:_,color:X.primary}});let b={tui:X.success,webui:X.info,repl:X.warning};for(let t of h){let r=s.positions.get(t.id)??{x:600,y:370},o=r.x,c=r.y,u=b[t.type],d=t.status===`active`;if(n.push({id:t.id,type:t.type,position:{x:o,y:c},data:{label:t.label,sublabel:t.sublabel,kind:t.type,status:t.status,sessionId:t.sessionId,pid:t.pid,branch:t.branch,workingDir:t.workingDir,startedAt:t.startedAt,agentCount:t.agents.length,color:u}}),i.push({id:`${t.id}->coordinator`,source:t.id,target:`coordinator`,type:`wire`,animated:d,data:{color:u,animated:d,label:e(`activity:office.controlLabel`),flowType:`task`}}),i.push({id:`mailbox->${t.id}`,source:`mailbox`,target:t.id,type:`wire`,animated:l>0,data:{color:X.warning,animated:l>0,label:l>0?`${l}`:void 0,flowType:`mail`}}),t.agents.length===0){n.push({id:`desk-${t.id}`,type:`desk`,position:{x:o,y:c+270},data:{label:e(`activity:office.idleDesk`),kind:`agent`,status:`idle`,color:X.muted}});continue}t.agents.forEach((r,s)=>{let l=r.status===`active`||r.status===`streaming`,u=_e.current.get(r.serverId);if(u&&(r.toolCalls>u.toolCalls||r.iteration>u.iteration)||l){me.current.set(r.officeId,a+I);let e=R.current.get(r.officeId)??0;R.current.set(r.officeId,Math.min(1,e+(1-e)*.5));for(let e of[`${t.id}->${r.officeId}`,`${t.id}->coordinator`]){let t=L.current.get(e)??0;L.current.set(e,Math.min(1,t+.5))}}_e.current.set(r.serverId,{toolCalls:r.toolCalls,iteration:r.iteration}),n.push({id:r.officeId,type:`agent`,position:yt(o,s,t.agents.length,c+270),data:{label:r.name,kind:`agent`,status:r.status,serverId:r.serverId,sessionId:t.sessionId,currentTask:r.currentTask,iteration:r.iteration,toolCalls:r.toolCalls,costUsd:r.costUsd,tokensIn:r.tokensIn,tokensOut:r.tokensOut,ctxPct:r.ctxPct,model:r.model,lastActivityAt:r.lastActivityAt,color:X.primary}}),i.push({id:`${t.id}->${r.officeId}`,source:t.id,target:r.officeId,type:`wire`,animated:l,data:{color:X.primary,animated:l,label:l?_t(r.currentTask,48)??e(`activity:office.taskFallback`):void 0,flowType:`task`}})})}let x=new Set(h.flatMap(e=>e.agents.map(e=>e.serverId)));for(let e of[..._e.current.keys()])x.has(e)||_e.current.delete(e);let S=n.map(e=>{let t=me.current.get(e.id),n=R.current.get(e.id)??0;return t&&t>a&&e.data.status!==`error`&&e.data.status!==`offline`?{...e,data:{...e.data,status:`active`,vizActivity:n}}:{...e,data:{...e.data,vizActivity:n}}}),C=i.map(e=>{let t=L.current.get(e.id)??0;return t>.05?{...e,animated:!0,data:{...e.data,animated:!0,intensity:t}}:e}),ee=new Map;for(let e of S)ee.set(e.id,{...e.position});ge.current=ee,w(S),D(C);let T=[`${Math.round(r.width)}x${Math.round(r.height)}`,`${s.columns}x${s.rows}`,h.map(e=>`${e.id}:${e.agents.length}`).join(`|`),S.map(e=>e.id).sort().join(`|`)].join(`:`);if(T!==ve.current){ve.current=T;let e=setTimeout(()=>t({padding:mn,duration:300}),50);return()=>clearTimeout(e)}},[h,c,o,d,p,r,I,w,D,t]);let ye=h.flatMap(e=>e.agents.map(t=>({clientId:e.id,clientType:e.type,officeId:t.officeId,serverId:t.serverId}))),be=h.map(e=>e.id),xe=new Map;for(let e of ye)(!xe.has(e.serverId)||e.clientType===`webui`)&&xe.set(e.serverId,e.officeId);function B(e){return xe.get(e)??`agent-${e}`}function V(e){let t=e.split(`__agent-`)[0];return t&&t!==e?`${t}->${e}`:`coordinator->${e}`}function Oe(e){switch(e.kind){case`mailbox:send`:case`mailbox:deliver`:return{nodes:[`mailbox`],edges:e.kind===`mailbox:send`?be.map(e=>`mailbox->${e}`):[],status:`active`};case`agent:spawned`:{let t=B(e.source);return{nodes:[`coordinator`,t],edges:[V(t)],status:`active`}}case`agent:tool`:case`tool:started`:case`tool:progress`:{let t=B(e.source);return{nodes:[`coordinator`,t],edges:[V(t)],status:e.kind===`tool:progress`||e.kind===`tool:started`?`streaming`:`active`}}case`tool:executed`:{let t=B(e.target??e.source);return{nodes:[t],edges:[V(t)],status:`active`}}case`provider:call`:case`provider:delta`:case`provider:response`:return{nodes:[`coordinator`],edges:[],status:e.kind===`provider:delta`?`streaming`:`active`};case`iteration:start`:case`iteration:end`:return{nodes:[`coordinator`],edges:ye.map(e=>V(e.officeId)),status:e.kind===`iteration:start`?`streaming`:`active`};case`agent:text`:{let t=B(e.source);return{nodes:[t],edges:[V(t)],status:`streaming`}}case`agent:status`:{let t=B(e.source);return{nodes:[`coordinator`,t],edges:[V(t)],status:e.data&&typeof e.data==`object`&&`status`in e.data&&String(e.data.status)===`failed`?`error`:`completed`}}case`agent:ctx`:return{nodes:[B(e.source)],edges:[],status:`active`};case`budget:extended`:return{nodes:[`coordinator`,B(e.source)],edges:[],status:`active`};case`context:compacted`:case`context:repaired`:return{nodes:[`coordinator`],edges:[],status:`active`};case`error`:return{nodes:e.source?[B(e.source)]:[],edges:[],status:`error`};case`cost:update`:return{nodes:[`coordinator`],edges:[],status:`active`};case`fleet:snapshot`:{let t=e.data?.sessions??[],n=[`coordinator`];for(let e of t)if(e.agents)for(let t of e.agents){let e=B(t.id);n.includes(e)||n.push(e)}return{nodes:n,edges:[],status:`active`}}default:return{nodes:[],edges:[],status:`idle`}}}(0,U.useEffect)(()=>{if(a.length===0)return;let e=a[0];if(!e)return;let{nodes:t,edges:n,status:r}=Oe(e),i=Date.now();t.length>0&&(t.forEach(e=>{me.current.set(e,i+I);let t=R.current.get(e)??0;R.current.set(e,Math.min(1,t+(1-t)*.5))}),w(e=>e.map(e=>t.includes(e.id)?{...e,data:{...e.data,status:r,vizActivity:R.current.get(e.id)??0}}:e))),n.length>0&&(n.forEach(e=>{let t=L.current.get(e)??0;L.current.set(e,Math.min(1,t+.5))}),D(e=>e.map(e=>n.includes(e.id)?{...e,animated:!0,data:{...e.data,animated:!0,intensity:L.current.get(e.id)??1}}:e)))},[a,w,D,I,o]),(0,U.useEffect)(()=>{let e=setInterval(()=>{let e=new Map,t=!1;for(let[n,r]of L.current){let i=r*.85;i<.05?(L.current.delete(n),e.set(n,{intensity:0,animated:!1}),t=!0):(L.current.set(n,i),e.set(n,{intensity:i,animated:!0}),t=!0)}t&&D(t=>t.map(t=>{let n=e.get(t.id);return n?{...t,animated:n.animated,data:{...t.data,animated:n.animated,intensity:n.intensity}}:t}));let n=new Map,r=!1;for(let[e,t]of R.current){let i=t*.9;i<.03?(R.current.delete(e),n.set(e,0),r=!0):(R.current.set(e,i),n.set(e,i),r=!0)}r&&w(e=>e.map(e=>{let t=n.get(e.id);return t===void 0?e:{...e,data:{...e.data,vizActivity:t}}}))},1e3);return()=>clearInterval(e)},[D,w]);let ke=(0,U.useCallback)(e=>D(t=>te({...e,type:`wire`},t)),[D]),Ae=(0,U.useCallback)((e,t)=>{j(t)},[]),je=(0,U.useCallback)(()=>{j(null)},[]);(0,U.useEffect)(()=>{if(!M)return;let e=e=>{e.key===`Escape`&&re(null)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[M]);let Me=(0,U.useCallback)(()=>{w(e=>e.map(e=>{let t=ge.current.get(e.id);return t?{...e,position:{...t}}:e})),setTimeout(()=>t({padding:mn,duration:300}),50)},[w,t]),[,Ne]=(0,U.useState)(0);return(0,U.useEffect)(()=>{let e=setInterval(()=>{document.hidden||Ne(e=>e+1)},2e3);return()=>clearInterval(e)},[]),(0,J.jsxs)(`div`,{ref:n,className:`relative h-full w-full overflow-hidden bg-[hsl(var(--surface-2)/0.55)]`,children:[(0,J.jsx)(`div`,{className:`absolute inset-0 opacity-[0.03]`,style:{backgroundImage:`
2
+ linear-gradient(rgba(255,255,255,0.1) 1px, transparent 1px),
3
+ linear-gradient(90deg, rgba(255,255,255,0.1) 1px, transparent 1px)
4
+ `,backgroundSize:`40px 40px`}}),g&&(0,J.jsx)(an,{}),(0,J.jsx)(`div`,{className:`absolute top-3 left-1/2 -translate-x-1/2 z-10`,children:(0,J.jsx)(`div`,{className:`rounded-lg border border-border/70 bg-card/90 px-4 py-2 shadow-xl backdrop-blur`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-bold text-foreground`,children:[(0,J.jsx)(l,{className:`h-4 w-4 text-primary`}),e(`activity:office.fleetHq`),(0,J.jsx)(`span`,{className:`ml-2 h-2 w-2 animate-pulse rounded-full bg-success`}),(0,J.jsx)(`span`,{className:`text-[10px] font-normal text-muted-foreground`,children:e(`activity:office.live`)})]})})}),_&&(0,J.jsx)(Dn,{}),(0,J.jsxs)(k,{nodes:C,edges:E,onNodesChange:T,onEdgesChange:O,onConnect:ke,onNodeClick:Ae,onPaneClick:je,nodeTypes:wn,edgeTypes:En,fitView:!0,fitViewOptions:{padding:mn},minZoom:.15,maxZoom:1.5,defaultEdgeOptions:{type:`wire`},proOptions:{hideAttribution:!0},children:[(0,J.jsx)(kn,{broadcastOpen:ie,labels:{arrange:e(`activity:office.arrange`),arrangeTitle:e(`activity:office.arrangeTitle`),broadcast:e(`activity:office.broadcast`),broadcastTitle:e(`activity:office.broadcastTitle`),feed:e(`activity:office.feed`),feedTitle:e(`activity:office.feedTitle`)},onArrange:Me,onBroadcastToggle:()=>oe(e=>!e),onFeedToggle:()=>x(!b),showFeed:b}),S!==`none`&&(0,J.jsx)(he,{variant:S===`lines`?ae.Lines:S===`cross`?ae.Cross:ae.Dots,gap:20,size:1,color:`hsl(var(--border) / 0.35)`}),y&&(0,J.jsx)(ee,{className:`rounded-lg border border-border/70 bg-card/90 [&>button]:bg-card [&>button]:text-foreground`}),v&&(0,J.jsx)(An,{})]}),b&&(0,J.jsx)(on,{events:a,now:Date.now()}),ie&&(0,J.jsx)(On,{draft:N,isSending:se,result:le,onClose:()=>oe(!1),onDraftChange:P,onSend:()=>void fe()}),A&&(0,J.jsx)(Tn,{selectedNode:A,selectedAgentTranscript:F,mailboxMessages:d,onClose:je,onOpenWatch:re}),M&&(0,J.jsx)(jn,{closeTitle:e(`activity:office.closeEsc`),label:M.label,onClose:()=>re(null),sessionId:M.sessionId,streamTitle:e(`activity:office.fullOperationStream`)})]})}function Nn(){let{t:e}=z(),t=H(e=>e.viewMode),n=H(e=>e.setViewMode),r=[{id:`office`,label:e(`activity:agentOffice.office`),description:e(`activity:agentOffice.officeDescription`),icon:xe},{id:`topology`,label:e(`activity:agentOffice.topology`),description:e(`activity:agentOffice.topologyDescription`),icon:s}],i=(e,t)=>{let i;if(e.key===`ArrowLeft`&&(i=(t-1+r.length)%r.length),e.key===`ArrowRight`&&(i=(t+1)%r.length),e.key===`Home`&&(i=0),e.key===`End`&&(i=r.length-1),i===void 0)return;e.preventDefault();let a=r[i];a&&(n(a.id),e.currentTarget.parentElement?.querySelectorAll(`[role="tab"]`)[i]?.focus())};return(0,J.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-col bg-background`,children:[(0,J.jsx)(`nav`,{"aria-label":`${e(`activity:agentOffice.office`)} / ${e(`activity:agentOffice.topology`)}`,className:`relative z-[60] shrink-0 border-b border-border bg-card/95 px-3 pt-2 shadow-[0_8px_28px_hsl(var(--shadow-color)/0.1)] backdrop-blur-xl sm:px-5`,children:(0,J.jsx)(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:`mx-auto grid w-full max-w-3xl grid-cols-2 gap-1`,children:r.map((e,r)=>{let a=e.icon,o=t===e.id;return(0,J.jsxs)(`button`,{id:`office-map-tab-${e.id}`,type:`button`,role:`tab`,"aria-selected":o,"aria-controls":`office-map-view-panel`,tabIndex:o?0:-1,onClick:()=>n(e.id),onKeyDown:e=>i(e,r),className:V(`group relative flex min-w-0 items-center gap-2.5 border-b-2 px-3 py-2.5 text-left transition-all duration-200 sm:gap-3 sm:px-5`,o?`border-primary bg-primary/[0.07] text-foreground`:`border-transparent text-muted-foreground hover:border-border hover:bg-accent/60 hover:text-foreground`),children:[(0,J.jsx)(`span`,{className:V(`grid h-8 w-8 shrink-0 place-items-center rounded-lg border transition-colors`,o?`border-primary/35 bg-primary/15 text-primary`:`border-border bg-background/70 text-muted-foreground group-hover:text-foreground`),children:(0,J.jsx)(a,{className:`h-4 w-4`,"aria-hidden":`true`})}),(0,J.jsxs)(`span`,{className:`min-w-0`,children:[(0,J.jsx)(`strong`,{className:`block truncate font-display text-xs font-semibold sm:text-sm`,children:e.label}),(0,J.jsx)(`small`,{className:`hidden truncate font-mono text-[9px] font-normal text-muted-foreground sm:block`,children:e.description})]}),(0,J.jsx)(`span`,{"aria-hidden":`true`,className:V(`ml-auto h-1.5 w-1.5 shrink-0 rounded-full transition-all`,o?`bg-primary shadow-[0_0_0_4px_hsl(var(--primary)/0.12)]`:`bg-border`)})]},e.id)})})}),(0,J.jsx)(`div`,{id:`office-map-view-panel`,role:`tabpanel`,"aria-labelledby":`office-map-tab-${t}`,className:`relative min-h-0 flex-1`,children:t===`office`?(0,J.jsx)(rn,{}):(0,J.jsx)(ye,{children:(0,J.jsx)(Mn,{})})})]})}export{Nn as OfficeMapPanel};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{Bt as t,Mt as n,Sa as r,Tt as i,_a as a,et as o}from"./vendor-2VBBgNb5.js";import"./i18n-1BkaqMgr.js";import{t as s}from"./useWebSocket-Dh3aAFDE.js";import{t as c}from"./utils-CN2sfDVP.js";import{M as l}from"./stores-mpa0202y.js";import{n as u,o as d,r as f,t as p}from"./dialog-CT1PTjzK.js";var m=e(r(),1),h=o();function g({open:e,onClose:r,className:o}){let{t:g}=a(),[_,v]=(0,m.useState)([]),y=s(),b=l(e=>e.wsConnected),x=(0,m.useRef)(null),S=(0,m.useRef)(null);(0,m.useEffect)(()=>{if(!(!e||!b||!y.client?.isConnected))return y.client.send?.({type:`process.list`}),x.current=y.client.on?.(`process.list`,e=>{let t=e?.payload;t?.processes&&v(t.processes)})??null,S.current=setInterval(()=>{y.client.send?.({type:`process.list`})},3e3),()=>{x.current?.(),S.current&&clearInterval(S.current)}},[e,b,y.client]);let C=_.filter(e=>e.status===`running`),w=(0,m.useCallback)(e=>{e.background&&!window.confirm(g(`activity:process.confirmKillBackground`,{pid:e.pid,defaultValue:`Terminate detached background process ${e.pid}?`}))||y.client.send?.({type:`process.kill`,payload:{pid:e.pid}})},[g,y.client]),T=(0,m.useCallback)(()=>{window.confirm(g(`activity:process.confirmKillAll`,{count:C.length,defaultValue:`Terminate all ${C.length} running processes?`}))&&y.client.send?.({type:`process.killAll`})},[C.length,g,y.client]);return(0,h.jsx)(p,{open:e,onOpenChange:e=>{e||r()},children:(0,h.jsxs)(u,{className:c(`max-w-lg gap-0 p-0 overflow-hidden flex flex-col max-h-[75dvh] pt-[10dvh]`,o),showCloseButton:!1,children:[(0,h.jsx)(d,{className:`sr-only`,children:g(`activity:process.heading`)}),(0,h.jsx)(f,{className:`sr-only`,children:g(`activity:process.subtitle`,{active:C.length,total:_.length})}),(0,h.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b shrink-0`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,h.jsx)(`span`,{className:`flex items-center justify-center w-8 h-8 rounded-lg bg-warning/10 text-warning`,children:(0,h.jsx)(i,{className:`h-4 w-4`})}),(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`h2`,{className:`text-sm font-semibold`,children:g(`activity:process.heading`)}),(0,h.jsx)(`span`,{className:`text-[10px] text-muted-foreground tabular-nums`,children:g(`activity:process.subtitle`,{active:C.length,total:_.length})})]})]}),(0,h.jsx)(`div`,{className:`flex items-center gap-1`,children:C.length>0&&(0,h.jsxs)(`button`,{type:`button`,onClick:T,className:`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs text-destructive hover:bg-destructive/10 transition-colors font-medium`,children:[(0,h.jsx)(n,{className:`h-3 w-3 fill-current`}),g(`activity:process.killAll`)]})})]}),(0,h.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain`,children:_.length===0?(0,h.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 gap-3 text-muted-foreground`,children:[(0,h.jsx)(i,{className:`h-10 w-10 opacity-15`}),(0,h.jsx)(`p`,{className:`text-sm font-medium`,children:g(`activity:process.emptyTitle`)}),(0,h.jsx)(`p`,{className:`text-xs text-center max-w-xs`,children:g(`activity:process.emptyBody`)})]}):(0,h.jsx)(`div`,{className:`divide-y`,children:_.map(e=>{let r=e.status===`running`?Math.floor((Date.now()-e.startedAt)/1e3):null,i=r?r<60?`${r}s`:`${Math.floor(r/60)}m ${r%60}s`:null,a=e.protected===!0,o=e.background===!0;return(0,h.jsxs)(`div`,{className:c(`flex items-center justify-between px-4 py-3 text-xs transition-colors`,e.status===`running`?`bg-background hover:bg-muted/30`:`bg-muted/20 text-muted-foreground`),children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[(0,h.jsx)(`span`,{className:c(`led shrink-0`,e.status===`running`?a?`text-info`:`text-success led-pulse`:`text-muted-foreground`)}),(0,h.jsxs)(`div`,{className:`min-w-0`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,h.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground shrink-0`,children:g(`activity:process.pidLabel`,{pid:e.pid})}),(0,h.jsx)(`span`,{className:`font-medium truncate`,children:e.tool}),a&&(0,h.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 px-1 py-0.5 rounded text-[9px] bg-info/10 text-info font-medium shrink-0`,title:g(`activity:process.protectedTitle`),children:[(0,h.jsx)(t,{className:`h-2.5 w-2.5`}),g(`activity:process.protected`)]}),o&&(0,h.jsx)(`span`,{className:`inline-flex items-center px-1 py-0.5 rounded text-[9px] bg-success/10 text-success font-medium shrink-0`,title:g(`activity:process.backgroundTitle`),children:g(`activity:process.background`)})]}),(0,h.jsx)(`code`,{className:`text-[10px] text-muted-foreground/70 truncate block mt-0.5 font-mono`,children:e.command})]})]}),(0,h.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0 ml-3`,children:[i&&(0,h.jsx)(`span`,{className:`text-[10px] text-muted-foreground tabular-nums`,children:i}),e.status===`running`&&!a&&(0,h.jsx)(`button`,{type:`button`,onClick:()=>w(e),className:`p-1.5 rounded-md hover:bg-destructive/10 hover:text-destructive transition-colors`,title:g(`activity:process.killTitle`,{pid:e.pid}),children:(0,h.jsx)(n,{className:`h-3.5 w-3.5 fill-current`})})]})]},e.pid)})})})]})})}export{g as ProcessMonitor};
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{At as t,Ca as n,Ct as r,Rt as i,et as a,va as o}from"./vendor-BTDGplXK.js";import"./i18n-DOuSY1L8.js";import{t as s}from"./useWebSocket-BTXT0rOW.js";import{t as c}from"./utils-DxDx8yib.js";import{M as l}from"./stores-CpZiOiOP.js";import{n as u,o as d,r as f,t as p}from"./dialog-DYJUM0p1.js";var m=e(n(),1),h=a();function g({open:e,onClose:n,className:a}){let{t:g}=o(),[_,v]=(0,m.useState)([]),y=s(),b=l(e=>e.wsConnected),x=(0,m.useRef)(null),S=(0,m.useRef)(null);(0,m.useEffect)(()=>{if(!(!e||!b||!y.client?.isConnected))return y.client.send?.({type:`process.list`}),x.current=y.client.on?.(`process.list`,e=>{let t=e?.payload;t?.processes&&v(t.processes)})??null,S.current=setInterval(()=>{y.client.send?.({type:`process.list`})},3e3),()=>{x.current?.(),S.current&&clearInterval(S.current)}},[e,b,y.client]);let C=_.filter(e=>e.status===`running`),w=(0,m.useCallback)(e=>{e.background&&!window.confirm(g(`activity:process.confirmKillBackground`,{pid:e.pid,defaultValue:`Terminate detached background process ${e.pid}?`}))||y.client.send?.({type:`process.kill`,payload:{pid:e.pid}})},[g,y.client]),T=(0,m.useCallback)(()=>{window.confirm(g(`activity:process.confirmKillAll`,{count:C.length,defaultValue:`Terminate all ${C.length} running processes?`}))&&y.client.send?.({type:`process.killAll`})},[C.length,g,y.client]);return(0,h.jsx)(p,{open:e,onOpenChange:e=>{e||n()},children:(0,h.jsxs)(u,{className:c(`max-w-lg gap-0 p-0 overflow-hidden flex flex-col max-h-[75dvh] pt-[10dvh]`,a),showCloseButton:!1,children:[(0,h.jsx)(d,{className:`sr-only`,children:g(`activity:process.heading`)}),(0,h.jsx)(f,{className:`sr-only`,children:g(`activity:process.subtitle`,{active:C.length,total:_.length})}),(0,h.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b shrink-0`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,h.jsx)(`span`,{className:`flex items-center justify-center w-8 h-8 rounded-lg bg-warning/10 text-warning`,children:(0,h.jsx)(r,{className:`h-4 w-4`})}),(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`h2`,{className:`text-sm font-semibold`,children:g(`activity:process.heading`)}),(0,h.jsx)(`span`,{className:`text-[10px] text-muted-foreground tabular-nums`,children:g(`activity:process.subtitle`,{active:C.length,total:_.length})})]})]}),(0,h.jsx)(`div`,{className:`flex items-center gap-1`,children:C.length>0&&(0,h.jsxs)(`button`,{type:`button`,onClick:T,className:`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs text-destructive hover:bg-destructive/10 transition-colors font-medium`,children:[(0,h.jsx)(t,{className:`h-3 w-3 fill-current`}),g(`activity:process.killAll`)]})})]}),(0,h.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain`,children:_.length===0?(0,h.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 gap-3 text-muted-foreground`,children:[(0,h.jsx)(r,{className:`h-10 w-10 opacity-15`}),(0,h.jsx)(`p`,{className:`text-sm font-medium`,children:g(`activity:process.emptyTitle`)}),(0,h.jsx)(`p`,{className:`text-xs text-center max-w-xs`,children:g(`activity:process.emptyBody`)})]}):(0,h.jsx)(`div`,{className:`divide-y`,children:_.map(e=>{let n=e.status===`running`?Math.floor((Date.now()-e.startedAt)/1e3):null,r=n?n<60?`${n}s`:`${Math.floor(n/60)}m ${n%60}s`:null,a=e.protected===!0,o=e.background===!0;return(0,h.jsxs)(`div`,{className:c(`flex items-center justify-between px-4 py-3 text-xs transition-colors`,e.status===`running`?`bg-background hover:bg-muted/30`:`bg-muted/20 text-muted-foreground`),children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[(0,h.jsx)(`span`,{className:c(`led shrink-0`,e.status===`running`?a?`text-info`:`text-success led-pulse`:`text-muted-foreground`)}),(0,h.jsxs)(`div`,{className:`min-w-0`,children:[(0,h.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,h.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground shrink-0`,children:g(`activity:process.pidLabel`,{pid:e.pid})}),(0,h.jsx)(`span`,{className:`font-medium truncate`,children:e.tool}),a&&(0,h.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 px-1 py-0.5 rounded text-[9px] bg-info/10 text-info font-medium shrink-0`,title:g(`activity:process.protectedTitle`),children:[(0,h.jsx)(i,{className:`h-2.5 w-2.5`}),g(`activity:process.protected`)]}),o&&(0,h.jsx)(`span`,{className:`inline-flex items-center px-1 py-0.5 rounded text-[9px] bg-success/10 text-success font-medium shrink-0`,title:g(`activity:process.backgroundTitle`),children:g(`activity:process.background`)})]}),(0,h.jsx)(`code`,{className:`text-[10px] text-muted-foreground/70 truncate block mt-0.5 font-mono`,children:e.command})]})]}),(0,h.jsxs)(`div`,{className:`flex items-center gap-3 shrink-0 ml-3`,children:[r&&(0,h.jsx)(`span`,{className:`text-[10px] text-muted-foreground tabular-nums`,children:r}),e.status===`running`&&!a&&(0,h.jsx)(`button`,{type:`button`,onClick:()=>w(e),className:`p-1.5 rounded-md hover:bg-destructive/10 hover:text-destructive transition-colors`,title:g(`activity:process.killTitle`,{pid:e.pid}),children:(0,h.jsx)(t,{className:`h-3.5 w-3.5 fill-current`})})]})]},e.pid)})})})]})})}export{g as ProcessMonitor};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./chat-store-CWhuSNod.js";import{Ca as n,Jn as r,Li as i,ca as a,et as o,na as s,nt as c,va as l,xt as u}from"./vendor-BTDGplXK.js";import"./i18n-DOuSY1L8.js";import{t as d}from"./utils-DxDx8yib.js";import"./stores-CpZiOiOP.js";import{n as f,o as p,r as m,t as h}from"./dialog-DYJUM0p1.js";var g=e(n(),1),_=o(),v={btw:{label:`btw`,titleKey:`btwTitle`,tone:`bg-primary/10 text-primary border-primary/30`},steer:{label:`steer`,titleKey:`steerTitle`,tone:`bg-warning/10 text-warning border-warning/35`},queue:{label:`queue`,titleKey:`queueTitle`,tone:`bg-info/10 text-info border-info/30`}};function y({open:e,onClose:n,className:o}){let{t:y}=l(),b=t(e=>e.queue),x=t(e=>e.removeQueued),S=t(e=>e.clearQueue),[C,w]=(0,g.useState)(`oldest`),T=(0,g.useCallback)(e=>{x(e)},[x]),E=(0,g.useMemo)(()=>{let e=b.map((e,t)=>({item:e,sourceIdx:t}));return e.sort((e,t)=>C===`newest`?t.item.addedAt-e.item.addedAt:e.item.addedAt-t.item.addedAt),e},[b,C]),D=b.length>0&&b.every(e=>e.alreadyDispatched);return(0,_.jsx)(h,{open:e,onOpenChange:e=>{e||n()},children:(0,_.jsxs)(f,{className:d(`max-w-lg gap-0 overflow-hidden border-border/80 bg-card p-0 pt-[10dvh] flex flex-col max-h-[70dvh]`,o),showCloseButton:!1,children:[(0,_.jsx)(p,{className:`sr-only`,children:y(`activity:queue.heading`)}),(0,_.jsx)(m,{className:`sr-only`,children:y(`activity:queue.subtitle`,{count:b.length})}),(0,_.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/70 bg-card/95 px-4 py-3 shrink-0`,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,_.jsx)(`span`,{className:`flex items-center justify-center w-8 h-8 rounded-md border border-primary/20 bg-primary/10 text-primary`,children:(0,_.jsx)(r,{className:`h-4 w-4`})}),(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`h2`,{className:`text-sm font-semibold`,children:y(`activity:queue.heading`)}),(0,_.jsx)(`span`,{className:`text-[10px] text-muted-foreground tabular-nums`,children:y(`activity:queue.subtitle`,{count:b.length})})]})]}),(0,_.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,_.jsxs)(`button`,{type:`button`,onClick:()=>w(e=>e===`newest`?`oldest`:`newest`),className:d(`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs transition-colors font-medium`,`text-muted-foreground hover:bg-muted hover:text-foreground`),title:y(C===`newest`?`activity:queue.sortNewestTitle`:`activity:queue.sortOldestTitle`),"data-testid":`queue-sort-toggle`,children:[C===`newest`?(0,_.jsx)(a,{className:`h-3 w-3`}):(0,_.jsx)(s,{className:`h-3 w-3`}),y(C===`newest`?`activity:queue.newest`:`activity:queue.oldest`)]}),b.length>0&&!D&&(0,_.jsxs)(`button`,{type:`button`,onClick:()=>S(),className:`flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-xs text-destructive hover:bg-destructive/10 transition-colors font-medium`,title:y(`activity:queue.clearDispatchedTitle`),"data-testid":`queue-clear-all`,children:[(0,_.jsx)(u,{className:`h-3 w-3`}),y(`activity:queue.clear`)]})]})]}),(0,_.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain`,children:b.length===0?(0,_.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-16 gap-3 text-muted-foreground`,children:[(0,_.jsx)(r,{className:`h-10 w-10 opacity-15`}),(0,_.jsx)(`p`,{className:`text-sm font-medium`,children:y(`activity:queue.emptyTitle`)}),(0,_.jsx)(`p`,{className:`text-xs text-center max-w-xs`,children:y(`activity:queue.emptyBody`)})]}):(0,_.jsx)(`ul`,{className:`divide-y divide-border/60`,"data-testid":`queue-list`,children:E.map(({item:e,sourceIdx:t},n)=>{let r=v[e.mode],a=e.alreadyDispatched===!0;return(0,_.jsxs)(`li`,{className:d(`flex items-start justify-between gap-3 px-4 py-3 text-xs transition-colors`,a?`bg-muted/30 text-muted-foreground hover:bg-muted/40`:`hover:bg-muted/35`),"data-testid":`queue-item`,"data-dispatched":a?`true`:void 0,children:[(0,_.jsxs)(`div`,{className:`flex items-start gap-3 min-w-0 flex-1`,children:[(0,_.jsxs)(`span`,{className:`mt-1 text-[10px] font-mono text-muted-foreground shrink-0 w-5 text-right tabular-nums`,children:[n+1,`.`]}),(0,_.jsx)(`span`,{className:d(`shrink-0 inline-flex items-center justify-center rounded border px-1.5 py-0.5 text-[10px] font-semibold uppercase`,r.tone,a&&`opacity-60`),title:y(`activity:queue.${r.titleKey}`),"data-testid":`queue-mode-${e.mode}`,children:r.label}),(0,_.jsx)(`p`,{className:`text-sm leading-relaxed min-w-0 break-words flex-1`,children:e.text.length>120?`${e.text.slice(0,117)}…`:e.text}),a&&(0,_.jsxs)(`span`,{className:`shrink-0 mt-0.5 inline-flex items-center gap-1 text-[10px] font-semibold uppercase text-success`,title:y(`activity:queue.dispatchedTitle`),"data-testid":`queue-dispatched-${t}`,children:[(0,_.jsx)(i,{className:`h-3 w-3`}),y(`activity:queue.dispatchedLabel`)]})]}),!a&&(0,_.jsx)(`button`,{type:`button`,onClick:()=>T(t),className:`ml-1 p-1.5 rounded-md shrink-0 hover:bg-destructive/10 hover:text-destructive transition-colors`,title:y(`activity:queue.removeTitle`),"data-testid":`queue-remove-${t}`,children:(0,_.jsx)(c,{className:`h-3.5 w-3.5`})})]},`${e.addedAt}-${t}`)})})}),b.length>0&&(0,_.jsx)(`div`,{className:`border-t border-border/70 bg-muted/20 px-4 py-2.5 shrink-0`,children:(0,_.jsx)(`p`,{className:`text-[10px] text-muted-foreground text-center`,children:y(`activity:queue.footer`)})})]})})}export{y as QueuePanel};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./chat-store-CM1dMeuY.js";import{Ai as n,Sa as r,Yt as i,_a as a,bt as o,et as s,ii as c,ma as l,pr as u,rn as d}from"./vendor-2VBBgNb5.js";import"./i18n-1BkaqMgr.js";import{n as f}from"./ui-store-CS-njcmT.js";import{t as p}from"./session-store-BsNYnfOc.js";var m=e(r(),1),h=s();function g(){let e=p(e=>e.session),{t:r}=a(),s=p.getState().session?.id,g=p(e=>e.projectName),x=p(e=>e.cwd),S=p(e=>e.mode),C=p(e=>e.contextMode),w=p(e=>e.lastVisitedAt),T=t(e=>e.messages),E=t(e=>e.queue.length),D=t(e=>e.boundSessionId),O=f(e=>e.currentView),k=f(e=>e.dockSection),[A,j]=(0,m.useState)([]),M=(0,m.useMemo)(()=>{if(typeof window>`u`)return 0;let e=0;for(let t of[`wrongstack-session`,`wrongstack-chat`,`wrongstack-ui`,`wrongstack-config`]){let n=window.localStorage.getItem(t);typeof n==`string`&&(e+=n.length)}return e},[T.length]),N=typeof window<`u`&&!!window.__wrongstackSessionRehydrated,P=typeof window<`u`&&!!window.__wrongstackChatRehydrated;function F(e,t){j(n=>[{ts:Date.now(),note:e,ok:t},...n].slice(0,20))}function I(){F(r(`activity:refresh.simulatedF5`),!0)}let L=D!==null&&s!==void 0&&D!==s;return(0,h.jsx)(`div`,{className:`h-full min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain bg-[hsl(var(--surface-2)/0.45)] p-4 sm:p-6`,children:(0,h.jsxs)(`div`,{className:`mx-auto max-w-5xl space-y-5 sm:space-y-6`,children:[(0,h.jsx)(`header`,{className:`rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:(0,h.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,h.jsxs)(`div`,{className:`min-w-0`,children:[(0,h.jsxs)(`h1`,{className:`flex min-w-0 items-center gap-2 text-xl font-bold sm:text-2xl`,children:[(0,h.jsx)(d,{className:`h-6 w-6 shrink-0 text-primary sm:h-7 sm:w-7`}),r(`activity:refresh.heading`)]}),(0,h.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:r(`activity:refresh.subtitle`)})]}),(0,h.jsx)(`button`,{type:`button`,onClick:I,className:`inline-flex h-9 w-full items-center justify-center rounded-md bg-primary px-3 text-sm font-medium text-primary-foreground shadow-sm shadow-primary/15 hover:bg-primary/90 sm:w-auto`,children:r(`activity:refresh.recordProbe`)})]})}),(0,h.jsxs)(`section`,{className:`space-y-3`,children:[(0,h.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,h.jsx)(l,{className:`w-5 h-5`}),r(`activity:refresh.latestSession`)]}),(0,h.jsx)(_,{label:r(`activity:refresh.restoredLocal`),ok:N,extra:s?r(`activity:refresh.sessionIdExtra`,{id:s}):r(`activity:refresh.noSessionYet`)}),(0,h.jsx)(_,{label:r(`activity:refresh.activePointer`),ok:!!e?.id,extra:e?y(e):`null`}),(0,h.jsx)(_,{label:r(`activity:refresh.lastVisited`),ok:w>0,extra:w>0?new Date(w).toISOString():r(`activity:refresh.never`)})]}),(0,h.jsxs)(`section`,{className:`space-y-3`,children:[(0,h.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,h.jsx)(c,{className:`w-5 h-5`}),r(`activity:refresh.persistedEnv`)]}),(0,h.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,h.jsx)(v,{label:`projectName`,value:g||`∅`}),(0,h.jsx)(v,{label:`cwd`,value:x||`∅`,mono:!0}),(0,h.jsx)(v,{label:`mode`,value:S,mono:!0}),(0,h.jsx)(v,{label:`contextMode`,value:C,mono:!0})]})]}),(0,h.jsxs)(`section`,{className:`space-y-3`,children:[(0,h.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,h.jsx)(u,{className:`w-5 h-5`}),r(`activity:refresh.transcriptRehydrate`)]}),(0,h.jsx)(_,{label:r(`activity:refresh.localTranscript`),ok:P&&(T.length>0||D===null),extra:T.length===0?r(`activity:refresh.noMessages`):r(`activity:refresh.messagesExtra`,{count:T.length,queued:E})}),(0,h.jsx)(_,{label:r(`activity:refresh.noBleed`),ok:!L,extra:L?r(`activity:refresh.bleedExtra`,{bound:D??`∅`,active:s??`∅`}):r(`activity:refresh.transcriptBinds`),warn:L}),T.length>0&&(0,h.jsxs)(`div`,{className:`space-y-1 rounded-lg border border-border/70 bg-card/65 p-3 text-xs font-mono`,children:[(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`span`,{className:`text-muted-foreground`,children:`first:`}),` `,b(T[0])]}),(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`span`,{className:`text-muted-foreground`,children:`last:`}),` `,b(T[T.length-1]??T[0])]})]})]}),(0,h.jsxs)(`section`,{className:`space-y-3`,children:[(0,h.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,h.jsx)(i,{className:`w-5 h-5`}),r(`activity:refresh.uiWorkspace`)]}),(0,h.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,h.jsx)(v,{label:`currentView`,value:O,mono:!0}),(0,h.jsx)(v,{label:`dockSection`,value:k??r(`activity:refresh.noneValue`),mono:!0})]}),(0,h.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`activity:refresh.payloadSize`,{count:M})})]}),(0,h.jsxs)(`section`,{className:`space-y-2`,children:[(0,h.jsx)(`h2`,{className:`text-lg font-semibold`,children:r(`activity:refresh.probeLog`)}),A.length===0?(0,h.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r(`activity:refresh.noProbes`)}):(0,h.jsx)(`ul`,{className:`space-y-1 text-xs font-mono`,children:A.map((e,t)=>(0,h.jsxs)(`li`,{className:`flex items-center gap-2`,children:[e.ok?(0,h.jsx)(n,{className:`w-4 h-4 text-success shrink-0`}):(0,h.jsx)(o,{className:`w-4 h-4 text-warning shrink-0`}),(0,h.jsx)(`span`,{className:`text-muted-foreground`,children:new Date(e.ts).toLocaleTimeString()}),(0,h.jsx)(`span`,{children:e.note})]},`${e.ts}-${t}`))})]})]})})}function _({label:e,extra:t,ok:r,warn:i}){return(0,h.jsxs)(`div`,{className:`rounded-lg border px-3 py-2 ${i?`border-warning/40 bg-warning/10 text-warning`:r?`border-success/40 bg-success/10 text-success`:`border-border bg-muted/40 text-muted-foreground`}`,children:[(0,h.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 text-xs font-medium`,children:[r&&!i?(0,h.jsx)(n,{className:`h-4 w-4 shrink-0`}):(0,h.jsx)(o,{className:`h-4 w-4 shrink-0`}),(0,h.jsx)(`span`,{className:`min-w-0 break-words`,children:e})]}),(0,h.jsx)(`div`,{className:`text-xs font-mono mt-1 break-all`,children:t})]})}function v({label:e,value:t,mono:n}){return(0,h.jsxs)(`div`,{className:`min-w-0 rounded-lg border border-border/70 bg-card/75 p-3 shadow-sm`,children:[(0,h.jsx)(`p`,{className:`text-xs uppercase tracking-wide text-muted-foreground`,children:e}),(0,h.jsx)(`p`,{className:`mt-1 text-sm break-all `+(n?`font-mono`:`font-medium`),children:t})]})}function y(e){let t=e.title?.trim();return t?`${e.id} — "${t}" (${e.provider}/${e.model})`:`${e.id} (${e.provider}/${e.model})`}function b(e){let t=(e.content??``).trim().replace(/\s+/g,` `);return`[${e.role}] ${t.length>100?`${t.slice(0,99)}…`:t}`}export{g as RefreshDebugView};
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{t}from"./chat-store-CWhuSNod.js";import{Ca as n,Oi as r,dr as i,et as a,fa as o,ni as s,qt as c,tn as l,va as u,vt as d}from"./vendor-BTDGplXK.js";import"./i18n-DOuSY1L8.js";import{n as f}from"./ui-store-C-oyG_br.js";import{t as p}from"./session-store-D4JWBP5w.js";var m=e(n(),1),h=a();function g(){let e=p(e=>e.session),{t:n}=u(),a=p.getState().session?.id,g=p(e=>e.projectName),x=p(e=>e.cwd),S=p(e=>e.mode),C=p(e=>e.contextMode),w=p(e=>e.lastVisitedAt),T=t(e=>e.messages),E=t(e=>e.queue.length),D=t(e=>e.boundSessionId),O=f(e=>e.currentView),k=f(e=>e.dockSection),[A,j]=(0,m.useState)([]),M=(0,m.useMemo)(()=>{if(typeof window>`u`)return 0;let e=0;for(let t of[`wrongstack-session`,`wrongstack-chat`,`wrongstack-ui`,`wrongstack-config`]){let n=window.localStorage.getItem(t);typeof n==`string`&&(e+=n.length)}return e},[T.length]),N=typeof window<`u`&&!!window.__wrongstackSessionRehydrated,P=typeof window<`u`&&!!window.__wrongstackChatRehydrated;function F(e,t){j(n=>[{ts:Date.now(),note:e,ok:t},...n].slice(0,20))}function I(){F(n(`activity:refresh.simulatedF5`),!0)}let L=D!==null&&a!==void 0&&D!==a;return(0,h.jsx)(`div`,{className:`h-full min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain bg-[hsl(var(--surface-2)/0.45)] p-4 sm:p-6`,children:(0,h.jsxs)(`div`,{className:`mx-auto max-w-5xl space-y-5 sm:space-y-6`,children:[(0,h.jsx)(`header`,{className:`rounded-xl border border-border/70 bg-card/75 p-4 shadow-sm`,children:(0,h.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,h.jsxs)(`div`,{className:`min-w-0`,children:[(0,h.jsxs)(`h1`,{className:`flex min-w-0 items-center gap-2 text-xl font-bold sm:text-2xl`,children:[(0,h.jsx)(l,{className:`h-6 w-6 shrink-0 text-primary sm:h-7 sm:w-7`}),n(`activity:refresh.heading`)]}),(0,h.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:n(`activity:refresh.subtitle`)})]}),(0,h.jsx)(`button`,{type:`button`,onClick:I,className:`inline-flex h-9 w-full items-center justify-center rounded-md bg-primary px-3 text-sm font-medium text-primary-foreground shadow-sm shadow-primary/15 hover:bg-primary/90 sm:w-auto`,children:n(`activity:refresh.recordProbe`)})]})}),(0,h.jsxs)(`section`,{className:`space-y-3`,children:[(0,h.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,h.jsx)(o,{className:`w-5 h-5`}),n(`activity:refresh.latestSession`)]}),(0,h.jsx)(_,{label:n(`activity:refresh.restoredLocal`),ok:N,extra:a?n(`activity:refresh.sessionIdExtra`,{id:a}):n(`activity:refresh.noSessionYet`)}),(0,h.jsx)(_,{label:n(`activity:refresh.activePointer`),ok:!!e?.id,extra:e?y(e):`null`}),(0,h.jsx)(_,{label:n(`activity:refresh.lastVisited`),ok:w>0,extra:w>0?new Date(w).toISOString():n(`activity:refresh.never`)})]}),(0,h.jsxs)(`section`,{className:`space-y-3`,children:[(0,h.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,h.jsx)(s,{className:`w-5 h-5`}),n(`activity:refresh.persistedEnv`)]}),(0,h.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,h.jsx)(v,{label:`projectName`,value:g||`∅`}),(0,h.jsx)(v,{label:`cwd`,value:x||`∅`,mono:!0}),(0,h.jsx)(v,{label:`mode`,value:S,mono:!0}),(0,h.jsx)(v,{label:`contextMode`,value:C,mono:!0})]})]}),(0,h.jsxs)(`section`,{className:`space-y-3`,children:[(0,h.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,h.jsx)(i,{className:`w-5 h-5`}),n(`activity:refresh.transcriptRehydrate`)]}),(0,h.jsx)(_,{label:n(`activity:refresh.localTranscript`),ok:P&&(T.length>0||D===null),extra:T.length===0?n(`activity:refresh.noMessages`):n(`activity:refresh.messagesExtra`,{count:T.length,queued:E})}),(0,h.jsx)(_,{label:n(`activity:refresh.noBleed`),ok:!L,extra:L?n(`activity:refresh.bleedExtra`,{bound:D??`∅`,active:a??`∅`}):n(`activity:refresh.transcriptBinds`),warn:L}),T.length>0&&(0,h.jsxs)(`div`,{className:`space-y-1 rounded-lg border border-border/70 bg-card/65 p-3 text-xs font-mono`,children:[(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`span`,{className:`text-muted-foreground`,children:`first:`}),` `,b(T[0])]}),(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`span`,{className:`text-muted-foreground`,children:`last:`}),` `,b(T[T.length-1]??T[0])]})]})]}),(0,h.jsxs)(`section`,{className:`space-y-3`,children:[(0,h.jsxs)(`h2`,{className:`text-lg font-semibold flex items-center gap-2`,children:[(0,h.jsx)(c,{className:`w-5 h-5`}),n(`activity:refresh.uiWorkspace`)]}),(0,h.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,h.jsx)(v,{label:`currentView`,value:O,mono:!0}),(0,h.jsx)(v,{label:`dockSection`,value:k??n(`activity:refresh.noneValue`),mono:!0})]}),(0,h.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`activity:refresh.payloadSize`,{count:M})})]}),(0,h.jsxs)(`section`,{className:`space-y-2`,children:[(0,h.jsx)(`h2`,{className:`text-lg font-semibold`,children:n(`activity:refresh.probeLog`)}),A.length===0?(0,h.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`activity:refresh.noProbes`)}):(0,h.jsx)(`ul`,{className:`space-y-1 text-xs font-mono`,children:A.map((e,t)=>(0,h.jsxs)(`li`,{className:`flex items-center gap-2`,children:[e.ok?(0,h.jsx)(r,{className:`w-4 h-4 text-success shrink-0`}):(0,h.jsx)(d,{className:`w-4 h-4 text-warning shrink-0`}),(0,h.jsx)(`span`,{className:`text-muted-foreground`,children:new Date(e.ts).toLocaleTimeString()}),(0,h.jsx)(`span`,{children:e.note})]},`${e.ts}-${t}`))})]})]})})}function _({label:e,extra:t,ok:n,warn:i}){return(0,h.jsxs)(`div`,{className:`rounded-lg border px-3 py-2 ${i?`border-warning/40 bg-warning/10 text-warning`:n?`border-success/40 bg-success/10 text-success`:`border-border bg-muted/40 text-muted-foreground`}`,children:[(0,h.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 text-xs font-medium`,children:[n&&!i?(0,h.jsx)(r,{className:`h-4 w-4 shrink-0`}):(0,h.jsx)(d,{className:`h-4 w-4 shrink-0`}),(0,h.jsx)(`span`,{className:`min-w-0 break-words`,children:e})]}),(0,h.jsx)(`div`,{className:`text-xs font-mono mt-1 break-all`,children:t})]})}function v({label:e,value:t,mono:n}){return(0,h.jsxs)(`div`,{className:`min-w-0 rounded-lg border border-border/70 bg-card/75 p-3 shadow-sm`,children:[(0,h.jsx)(`p`,{className:`text-xs uppercase tracking-wide text-muted-foreground`,children:e}),(0,h.jsx)(`p`,{className:`mt-1 text-sm break-all `+(n?`font-mono`:`font-medium`),children:t})]})}function y(e){let t=e.title?.trim();return t?`${e.id} — "${t}" (${e.provider}/${e.model})`:`${e.id} (${e.provider}/${e.model})`}function b(e){let t=(e.content??``).trim().replace(/\s+/g,` `);return`[${e.role}] ${t.length>100?`${t.slice(0,99)}…`:t}`}export{g as RefreshDebugView};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MemoryManager-BWuSS0Pg.js","assets/rolldown-runtime-QTnfLwEv.js","assets/vendor-BTDGplXK.js","assets/monaco-BLUV5g0U.js","assets/monaco-Bowa0-zp.css","assets/markdown-sSmz-Ua_.js","assets/vendor-BMdWcCR4.css","assets/ui-store-C-oyG_br.js","assets/useWebSocket-BTXT0rOW.js","assets/chat-store-CWhuSNod.js","assets/utils-DxDx8yib.js","assets/i18n-DOuSY1L8.js","assets/activity-Cv_EIWjY.js","assets/chat-BJzPxfyr.js","assets/commandPalette-DpaemFux.js","assets/common-BfVFjVhf.js","assets/settings-r_KOGrbF.js","assets/setup-BFcmn89w.js","assets/toasts-BL_8kH4B.js","assets/ws-client-DqIqzkfU.js","assets/session-store-D4JWBP5w.js","assets/codemap-activity-store-C1XWbXeZ.js","assets/stores-CpZiOiOP.js","assets/mailbox-store-_8voaug1.js","assets/view-navigation-BRtuAwZo.js","assets/codemap-index-store-DDT3gP6t.js","assets/Toaster-Bd6ckyrP.js","assets/dialog-DYJUM0p1.js","assets/button-Clh96jMK.js","assets/input-CW-Yw2Wu.js","assets/index-DxZTscTk.js","assets/ModelPicker-Dt0wCi90.js","assets/index-C09Opuro.css","assets/roster-ws-q8Cp6us7.js","assets/shared-DidGznBo.js","assets/AudienceMemoryPanel-SzXptIQj.js"])))=>i.map(i=>d[i]);
2
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{Ca as t,Yn as n,et as r,ut as i}from"./vendor-BTDGplXK.js";import{s as a}from"./monaco-BLUV5g0U.js";import{t as o}from"./utils-DxDx8yib.js";import{D as s,E as c,O as l,T as u}from"./index-DxZTscTk.js";var d=e(t(),1),f=r(),p=(0,d.lazy)(()=>a(()=>import(`./MemoryManager-BWuSS0Pg.js`).then(e=>({default:e.MemoryManager})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]))),m=(0,d.lazy)(()=>a(()=>import(`./AudienceMemoryPanel-SzXptIQj.js`).then(e=>({default:e.AudienceMemoryPanel})),__vite__mapDeps([35,1,2,3,4,5,6,8,9,10,11,7,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34])));function h({label:e}){return(0,f.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center bg-background text-xs text-muted-foreground`,"aria-busy":`true`,children:(0,f.jsxs)(`span`,{className:`font-mono uppercase tracking-wide`,children:[e,`…`]})})}var g=[{value:`all`,label:`All memories`,hint:`Inspect, curate, retire`,Icon:n},{value:`audience`,label:`Audience-scoped`,hint:`Guidance routed to agents`,Icon:i}];function _({defaultValue:e=`all`}={}){return(0,f.jsxs)(u,{defaultValue:e,className:`flex h-full min-h-0 min-w-0 flex-1 flex-col`,children:[(0,f.jsx)(`div`,{className:`flex shrink-0 items-center justify-between gap-3 border-b border-border/70 bg-card/55 px-4 py-2 sm:px-5`,role:`presentation`,children:(0,f.jsx)(s,{"aria-label":`SAGE memory lenses`,className:`h-9 bg-muted/40 p-1 shadow-none`,children:g.map(({value:e,label:t,hint:n,Icon:r})=>(0,f.jsxs)(l,{value:e,className:o(`h-7 gap-2 px-3 text-[11px] font-semibold uppercase tracking-wide`,`data-[state=active]:bg-background data-[state=active]:text-foreground`,`data-[state=active]:shadow-[0_0_0_1px_hsl(var(--border)/0.7)]`),children:[(0,f.jsx)(r,{className:`size-3.5`}),(0,f.jsx)(`span`,{children:t}),(0,f.jsx)(`span`,{className:`hidden font-mono text-[9px] font-normal normal-case text-muted-foreground sm:inline`,children:n})]},e))})}),(0,f.jsx)(c,{value:`all`,className:`mt-0 flex-1 overflow-hidden ring-offset-0 focus-visible:ring-0`,children:(0,f.jsx)(d.Suspense,{fallback:(0,f.jsx)(h,{label:`Loading SAGE`}),children:(0,f.jsx)(p,{})})}),(0,f.jsx)(c,{value:`audience`,className:`mt-0 flex-1 overflow-hidden ring-offset-0 focus-visible:ring-0`,children:(0,f.jsx)(d.Suspense,{fallback:(0,f.jsx)(h,{label:`Loading audience memories`}),children:(0,f.jsx)(m,{})})})]})}export{_ as SageTabs};
@@ -0,0 +1,2 @@
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{At as t,Ca as n,Ct as r,En as i,Ft as a,Ii as o,Jt as s,Li as c,Ln as l,Mn as u,Nt as d,Oi as f,Pi as p,Pr as m,Pt as h,Wn as g,Zr as _,_n as ee,aa as v,bi as y,dt as b,et as x,fa as S,fn as C,gt as te,ii as w,mi as T,nn as E,nt as D,pt as O,qi as k,rn as ne,tt as A,va as j,vr as re,vt as M,wt as ie,xa as N,xt as P}from"./vendor-BTDGplXK.js";import"./i18n-DOuSY1L8.js";import{n as F}from"./ui-store-C-oyG_br.js";import{t as ae}from"./useWebSocket-BTXT0rOW.js";import{t as I}from"./utils-DxDx8yib.js";import{a as L,o as R,u as z}from"./stores-CpZiOiOP.js";import{o as B}from"./view-navigation-BRtuAwZo.js";import{a as V,i as H,n as U,o as W,r as G,t as K}from"./dialog-DYJUM0p1.js";import{t as q}from"./button-Clh96jMK.js";import{n as oe,t as se}from"./ModelPicker-Dt0wCi90.js";import{c as ce,s as le}from"./index-DxZTscTk.js";import{a as J,c as ue,i as Y,l as X,n as de,o as fe,r as pe,s as me,t as he,u as ge}from"./progress-ring-DPV94fM-.js";import{SpecsView as _e}from"./SpecsView-CzYtHNbj.js";var Z=e(n(),1),Q=x();function ve({feed:e,now:t}){let{t:n}=j();return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5 border-b border-border px-3 py-2 text-xs font-semibold text-foreground`,children:[(0,Q.jsx)(S,{className:`h-3.5 w-3.5 text-warning`}),n(`activity:sdd.activityHeading`)]}),(0,Q.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 space-y-1 overflow-auto overscroll-contain p-2`,children:e.length===0?(0,Q.jsx)(`p`,{className:`px-1 pt-4 text-center text-[11px] text-muted-foreground`,children:n(`activity:sdd.feedEmpty`)}):e.map((e,n)=>{let r=Y[e.kind]??Y.started,i=r.icon;return(0,Q.jsxs)(`div`,{className:I(`sdd-rise flex items-start gap-2 rounded-md px-2 py-1.5 text-[11px]`,n===0?`bg-muted`:`hover:bg-muted`),children:[(0,Q.jsx)(i,{className:I(`mt-0.5 h-3.5 w-3.5 shrink-0`,r.color)}),(0,Q.jsx)(`span`,{className:`flex-1 leading-snug text-foreground`,children:e.text}),(0,Q.jsx)(`span`,{className:`shrink-0 tabular-nums text-[10px] text-muted-foreground`,children:me(e.ts,t)})]},`${e.ts}-${n}`)})})]})}function ye({open:e,onOpenChange:t,snapshot:n,busy:r,onConfirm:i}){let{t:a}=j(),o=n?.mergedCommits?.length??0,s=n?.baseBranch,[c,l]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{e&&l(!1)},[e]);let u=n?.status===`running`||n?.status===`paused`,d=(0,Z.useMemo)(()=>{let e=new Set;for(let t of n?.tasks??[])t.worktreeBranch&&e.add(t.worktreeBranch);return e.size},[n?.tasks]),f=(0,Z.useMemo)(()=>{let e=new Set;for(let t of n?.tasks??[])t.displayStatus===`in_progress`&&t.agentName&&e.add(t.agentName);return e.size},[n?.tasks]);return(0,Q.jsx)(K,{open:e,onOpenChange:e=>!r&&t(e),children:(0,Q.jsxs)(U,{className:`sm:max-w-lg border-destructive/50`,children:[(0,Q.jsxs)(V,{children:[(0,Q.jsxs)(W,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(P,{className:`h-5 w-5 text-destructive`}),a(`activity:sdd.destroyTitle`)]}),(0,Q.jsx)(G,{children:a(`activity:sdd.destroyDesc`)})]}),(0,Q.jsxs)(`ul`,{className:`space-y-1.5 py-1 text-sm`,children:[u&&(0,Q.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,Q.jsx)(`span`,{className:`mt-0.5 text-destructive`,children:`■`}),(0,Q.jsx)(`span`,{children:f>0?a(`activity:sdd.stopRunAgents`,{count:f}):a(`activity:sdd.stopRun`)})]}),(0,Q.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,Q.jsx)(`span`,{className:`mt-0.5 text-destructive`,children:`■`}),(0,Q.jsx)(`span`,{children:d>0?a(`activity:sdd.removeWorktreesCount`,{count:d}):a(`activity:sdd.removeWorktreesAll`)})]}),(0,Q.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,Q.jsx)(`span`,{className:`mt-0.5 text-destructive`,children:`■`}),(0,Q.jsx)(`span`,{children:a(`activity:sdd.deleteArtifacts`)})]})]}),o>0&&(0,Q.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-2 rounded-md border border-warning/30 bg-warning/5 p-2.5 text-sm`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>l(e.target.checked),className:`mt-0.5 h-4 w-4 accent-warning`}),(0,Q.jsxs)(`span`,{children:[(0,Q.jsx)(`span`,{className:`font-medium`,children:a(`activity:sdd.revertMerged`,{count:o})}),` `,`on `,(0,Q.jsx)(`code`,{className:`text-xs`,children:s??a(`activity:sdd.baseBranchFallback`)}),(0,Q.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:a(`activity:sdd.revertHint`)})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md bg-muted/50 p-2 text-xs text-muted-foreground`,children:[(0,Q.jsx)(M,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-warning`}),a(o>0&&!c?`activity:sdd.noteLeaveMerged`:`activity:sdd.noteAbandon`)]}),(0,Q.jsxs)(H,{className:`gap-2 sm:gap-2`,children:[(0,Q.jsx)(q,{variant:`outline`,size:`sm`,disabled:r,onClick:()=>t(!1),children:a(`common:action.cancel`)}),(0,Q.jsx)(q,{size:`sm`,disabled:r,onClick:()=>i(c),className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:r?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(g,{className:`mr-1 h-3.5 w-3.5 animate-spin`}),` `,a(`activity:sdd.destroying`)]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(P,{className:`mr-1 h-3.5 w-3.5`}),` `,a(`activity:sdd.destroyAll`)]})})]})]})})}var be=[{key:`pending`,labelKey:`kanbanBacklog`,accent:`border-border/70`,head:`text-muted-foreground`},{key:`queued`,labelKey:`kanbanReady`,accent:`border-primary/35`,head:`text-primary`},{key:`in_progress`,labelKey:`kanbanRunning`,accent:`border-warning/45`,head:`text-warning`},{key:`review`,labelKey:`kanbanReview`,accent:`border-primary/35`,head:`text-primary`},{key:`failed`,labelKey:`kanbanFailed`,accent:`border-destructive/35`,head:`text-destructive`},{key:`completed`,labelKey:`kanbanDone`,accent:`border-success/35`,head:`text-success`}];function xe({tasks:e,selectedId:t,onTaskClick:n}){let{t:r}=j(),i=(0,Z.useMemo)(()=>{let t=new Map;for(let e of be)t.set(e.key,[]);for(let n of e){let e=n.displayStatus===`blocked`?`pending`:n.displayStatus===`cancelled`?`failed`:n.displayStatus;(t.get(e)??t.get(`pending`))?.push(n)}return t},[e]);return(0,Q.jsx)(`div`,{className:`flex h-full min-h-0 min-w-0 gap-3 overflow-x-auto p-4`,children:be.map(e=>{let a=i.get(e.key)??[];return(0,Q.jsxs)(`div`,{className:`flex min-h-0 w-64 shrink-0 flex-col`,children:[(0,Q.jsxs)(`div`,{className:I(`mb-2 flex items-center gap-2 border-b-2 pb-1.5`,e.accent),children:[(0,Q.jsx)(`span`,{className:I(`text-xs font-bold uppercase tracking-wide`,e.head),children:r(`activity:sdd.${e.labelKey}`)}),(0,Q.jsx)(`span`,{className:`rounded-full bg-muted px-1.5 text-[10px] text-muted-foreground`,children:a.length})]}),(0,Q.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto overscroll-contain pr-1`,children:[a.map(e=>(0,Q.jsx)(Se,{task:e,selected:e.id===t,onClick:()=>n(e.id)},e.id)),a.length===0&&(0,Q.jsx)(`div`,{className:`rounded-md border border-dashed border-border py-6 text-center text-[10px] text-muted-foreground`,children:r(`activity:sdd.kanbanEmpty`)})]})]},e.key)})})}function Se({task:e,selected:t,onClick:n}){let r=e.displayStatus===`in_progress`;return(0,Q.jsxs)(`button`,{type:`button`,onClick:n,className:I(`sdd-node-enter w-full rounded-lg border bg-card/85 p-2 text-left shadow-sm transition hover:border-primary/35 hover:bg-accent/35`,t?`border-primary/55 ring-1 ring-primary/35`:`border-border/70`,r&&`sdd-node-running`,e.displayStatus===`completed`&&`sdd-node-complete`,e.displayStatus===`failed`&&`sdd-node-failed`),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[r&&(0,Q.jsx)(g,{className:`h-3 w-3 animate-spin text-warning`}),e.displayStatus===`completed`&&(0,Q.jsx)(c,{className:`h-3 w-3 text-success`}),e.displayStatus===`failed`&&(0,Q.jsx)(D,{className:`h-3 w-3 text-destructive`}),(0,Q.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:e.shortId}),(0,Q.jsx)(`span`,{className:I(`ml-auto rounded px-1.5 text-[9px] font-bold uppercase`,X(e.priority).chip),children:e.priority})]}),(0,Q.jsx)(`p`,{className:`mt-1 line-clamp-2 text-[11px] leading-snug text-foreground`,children:e.title}),(e.agentName||e.worktreeBranch||e.retries)&&(0,Q.jsxs)(`div`,{className:`mt-1.5 flex items-center gap-1.5`,children:[e.agentName&&(0,Q.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Q.jsx)(`span`,{className:I(`flex h-4 w-4 items-center justify-center rounded-full text-[8px] font-bold text-white`,r?`bg-warning sdd-agent-live`:`bg-muted-foreground`),children:fe(e.agentName)}),(0,Q.jsx)(`span`,{className:`max-w-[80px] truncate text-[10px] text-muted-foreground`,children:e.agentName})]}),e.retries?(0,Q.jsxs)(`span`,{className:`flex items-center gap-0.5 text-[9px] text-destructive`,children:[(0,Q.jsx)(E,{className:`h-2.5 w-2.5`}),e.retries]}):null,e.worktreeBranch&&(0,Q.jsx)(re,{className:`ml-auto h-2.5 w-2.5 text-muted-foreground`})]})]})}function Ce({task:e,allTasks:n,feed:r,now:i,expanded:a,modelCandidates:o,defaultModel:s,onClose:f,onToggleExpanded:p,onRetry:m,onReassign:h,onSetModel:g,onSetVerification:_,onCancel:ee,onDelete:y,onSplit:b,onSelectTask:x}){let{t:S}=j(),C=ge(e.displayStatus),te=C.icon,w=e.displayStatus===`in_progress`,k=e.displayStatus===`pending`||e.displayStatus===`blocked`||e.displayStatus===`queued`,[ne,A]=(0,Z.useState)(!1),[M,ie]=(0,Z.useState)(``),[N,F]=(0,Z.useState)(null),[ae,L]=(0,Z.useState)(!1),[R,z]=(0,Z.useState)(``),[B,V]=(0,Z.useState)(!1),[H,U]=(0,Z.useState)(e.verificationCommand??``),W=()=>{M.trim()&&(h(e.id,M.trim()),A(!1),ie(``))},G=()=>{let t=R.split(`
2
+ `).map(e=>e.trim()).filter(Boolean).map(e=>{let[t,...n]=e.split(`::`),r=(t??``).trim();return{title:r,description:n.join(`::`).trim()||r}}).filter(e=>e.title);t.length&&(b(e.id,t),L(!1),z(``))},K=(0,Z.useMemo)(()=>new Map(n.map(e=>[e.shortId,e])),[n]),q=(0,Z.useMemo)(()=>n.filter(t=>t.deps.includes(e.shortId)),[n,e.shortId]),oe=(0,Z.useMemo)(()=>r.filter(t=>t.taskId===e.id||t.taskShortId===e.shortId),[r,e.id,e.shortId]),ce=e.startedAt&&!e.completedAt?ue(i-e.startedAt):e.startedAt&&e.completedAt?ue(e.completedAt-e.startedAt):null;return(0,Q.jsxs)(`div`,{className:`sdd-rise flex h-full min-h-0 min-w-0 flex-col`,children:[(0,Q.jsxs)(`div`,{className:I(`flex items-center gap-2 border-b border-border/70 bg-card/70 px-3 py-2`,a&&`px-5 py-3`),children:[(0,Q.jsx)(`button`,{type:`button`,onClick:f,className:`text-muted-foreground hover:text-foreground`,title:S(`activity:sddTask.backTitle`),children:(0,Q.jsx)(v,{className:`h-4 w-4`})}),(0,Q.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground`,children:e.shortId}),p&&(0,Q.jsx)(`button`,{type:`button`,onClick:p,className:`ml-1 inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition hover:bg-muted hover:text-foreground`,title:S(a?`activity:sddTask.collapseTitle`:`activity:sddTask.expandTitle`),"aria-label":S(a?`activity:sddTask.collapseTitle`:`activity:sddTask.expandTitle`),"aria-pressed":a,children:a?(0,Q.jsx)(u,{className:`h-4 w-4`}):(0,Q.jsx)(l,{className:`h-4 w-4`})}),(0,Q.jsxs)(`span`,{className:I(`ml-auto flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px]`,C.ring,C.text),children:[(0,Q.jsx)(te,{className:I(`h-3 w-3`,w&&`animate-spin`)}),C.label]})]}),(0,Q.jsxs)(`div`,{className:I(`min-h-0 min-w-0 flex-1 overflow-auto overscroll-contain`,a?`grid grid-cols-2 content-start gap-4 p-5`:`space-y-3 p-3`),children:[(0,Q.jsx)(`h3`,{className:I(`text-sm font-semibold leading-snug text-foreground`,a&&`col-span-2 text-lg`),children:e.title}),e.agentName&&(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border/70 bg-muted/45 p-2`,children:[(0,Q.jsx)(`span`,{className:I(`flex h-7 w-7 items-center justify-center rounded-full text-[10px] font-bold text-white`,w?`bg-warning sdd-agent-live`:`bg-muted-foreground`),children:fe(e.agentName)}),(0,Q.jsxs)(`div`,{className:`leading-tight`,children:[(0,Q.jsx)(`div`,{className:`text-xs font-medium text-foreground`,children:e.agentName}),(0,Q.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:S(w?`activity:sddTask.workingOn`:`activity:sddTask.assigned`)})]})]}),(0,Q.jsxs)(`div`,{className:`grid grid-cols-2 gap-1.5 text-[11px]`,children:[(0,Q.jsx)(Te,{label:S(`activity:sddTask.metaPriority`),children:(0,Q.jsx)(`span`,{className:I(`font-medium uppercase`,X(e.priority).text),children:e.priority})}),(0,Q.jsx)(Te,{label:S(`activity:sddTask.metaType`),children:e.type}),ce&&(0,Q.jsx)(Te,{label:e.completedAt?S(`activity:sddTask.metaDuration`):S(`activity:sddTask.metaElapsed`),children:(0,Q.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Q.jsx)(T,{className:`h-3 w-3 text-muted-foreground`}),ce]})}),e.retries?(0,Q.jsx)(Te,{label:S(`activity:sddTask.metaRetries`),children:(0,Q.jsxs)(`span`,{className:`flex items-center gap-1 text-destructive`,children:[(0,Q.jsx)(E,{className:`h-3 w-3`}),e.retries]})}):null,e.worktreeBranch&&(0,Q.jsx)(Te,{label:S(`activity:sddTask.metaWorktree`),full:!0,children:(0,Q.jsxs)(`span`,{className:`flex items-center gap-1 font-mono text-foreground`,title:e.worktreeBranch,children:[(0,Q.jsx)(re,{className:`h-3 w-3 text-muted-foreground`}),(0,Q.jsx)(`span`,{className:`truncate`,children:e.worktreeBranch})]})})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[S(`activity:sddTask.workerModel`),!e.model&&s&&(0,Q.jsxs)(`span`,{className:`font-normal normal-case text-muted-foreground`,children:[`· `,S(`activity:sddTask.runDefault`,{model:s})]})]}),(0,Q.jsx)(se,{value:e.model,provider:e.provider,candidates:o,placeholder:s?S(`activity:sddTask.runDefaultPlaceholderModel`,{model:s}):S(`activity:sddTask.runDefaultPlaceholder`),onPick:(t,n)=>g(e.id,t,n),onReset:e.model?()=>g(e.id,void 0,void 0):void 0}),e.fallbackModels&&e.fallbackModels.length>0&&(0,Q.jsx)(`div`,{className:`mt-1 flex flex-wrap gap-1`,children:e.fallbackModels.map(e=>(0,Q.jsxs)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 font-mono text-[9px] text-muted-foreground`,children:[`↳ `,e]},e))})]}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[S(`activity:sddTask.verificationCmd`),(0,Q.jsxs)(`span`,{className:`font-normal normal-case text-muted-foreground`,children:[`· `,S(`activity:sddTask.gatesCompletion`)]})]}),B?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`input`,{value:H,onChange:e=>U(e.target.value),onKeyDown:t=>{t.key===`Enter`?(_(e.id,H.trim()||void 0),V(!1)):t.key===`Escape`&&(U(e.verificationCommand??``),V(!1))},placeholder:S(`activity:sddTask.verifyPlaceholder`),className:`w-full rounded border border-border bg-background px-2 py-1 font-mono text-[11px] text-foreground`}),(0,Q.jsxs)(`div`,{className:`flex gap-1`,children:[(0,Q.jsx)(`button`,{type:`button`,onClick:()=>{_(e.id,H.trim()||void 0),V(!1)},className:`rounded bg-primary px-2 py-0.5 text-[10px] text-primary-foreground hover:opacity-90`,children:S(`common:action.save`)}),(0,Q.jsx)(`button`,{type:`button`,onClick:()=>{U(e.verificationCommand??``),V(!1)},className:`rounded bg-muted px-2 py-0.5 text-[10px] text-muted-foreground hover:bg-muted/80`,children:S(`common:action.cancel`)})]})]}):e.verificationCommand?(0,Q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[e.verificationState&&(0,Q.jsx)(`span`,{title:e.verificationDetail,className:e.verificationState===`passed`?`rounded bg-success/10 px-1.5 py-0.5 text-[10px] text-success`:`rounded bg-destructive/10 px-1.5 py-0.5 text-[10px] text-destructive`,children:e.verificationState===`passed`?`✓ verified`:`✗ failed`}),(0,Q.jsx)(`code`,{className:`flex-1 truncate rounded bg-muted px-1.5 py-0.5 font-mono text-[10px] text-foreground`,children:e.verificationCommand}),(0,Q.jsx)(`button`,{type:`button`,onClick:()=>V(!0),className:`rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground hover:bg-muted/80`,children:S(`common:action.edit`)}),(0,Q.jsx)(`button`,{type:`button`,onClick:()=>_(e.id,void 0),className:`rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground hover:bg-muted/80`,children:S(`common:action.clear`)})]}):(0,Q.jsx)(`button`,{type:`button`,onClick:()=>V(!0),className:`rounded border border-dashed border-border px-2 py-1 text-[10px] text-muted-foreground hover:bg-muted`,children:S(`activity:sddTask.addVerify`)})]}),e.description&&(0,Q.jsxs)(`div`,{className:I(a&&`col-span-2`),children:[(0,Q.jsx)(`div`,{className:`mb-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:S(`activity:sddTask.description`)}),(0,Q.jsx)(`p`,{className:`whitespace-pre-wrap rounded-md bg-muted p-2 text-[11px] leading-relaxed text-foreground`,children:e.description})]}),(0,Q.jsx)(we,{events:oe,expanded:a}),e.deps.length>0&&(0,Q.jsx)(Ee,{title:S(`activity:sddTask.dependsOn`),shortIds:e.deps,byShort:K,onSelectTask:x}),q.length>0&&(0,Q.jsx)(Ee,{title:S(`activity:sddTask.blocks`),shortIds:q.map(e=>e.shortId),byShort:K,onSelectTask:x})]}),(0,Q.jsxs)(`div`,{className:I(`border-t border-border p-2`,a&&`px-5 py-3`),children:[ne?(0,Q.jsxs)(`div`,{className:`sdd-rise flex items-center gap-1.5`,children:[(0,Q.jsx)(`input`,{value:M,onChange:e=>ie(e.target.value),onKeyDown:e=>{e.key===`Enter`&&W(),e.key===`Escape`&&A(!1)},placeholder:S(`activity:sddTask.newWorkerPlaceholder`),className:`min-w-0 flex-1 rounded-md border border-border/70 bg-background px-2 py-1.5 text-xs outline-none focus:border-primary/60`}),(0,Q.jsx)(`button`,{type:`button`,onClick:W,disabled:!M.trim(),className:`rounded-md bg-primary/10 px-2 py-1.5 text-xs font-medium text-primary hover:bg-primary/15 disabled:opacity-40`,children:(0,Q.jsx)(c,{className:`h-3.5 w-3.5`})}),(0,Q.jsx)(`button`,{type:`button`,onClick:()=>A(!1),className:`rounded-md bg-muted px-2 py-1.5 text-xs text-muted-foreground hover:bg-muted`,children:(0,Q.jsx)(D,{className:`h-3.5 w-3.5`})})]}):N?(0,Q.jsxs)(`div`,{className:`sdd-rise flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`flex-1 text-xs text-foreground`,children:S(N===`stop`?`activity:sddTask.confirmStop`:`activity:sddTask.confirmDelete`)}),(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>{N===`stop`?ee(e.id):y(e.id),F(null)},className:`inline-flex items-center gap-1 rounded-md bg-destructive/10 px-2.5 py-1.5 text-xs font-medium text-destructive hover:bg-destructive/15`,children:[(0,Q.jsx)(c,{className:`h-3.5 w-3.5`}),` `,S(N===`stop`?`common:action.stop`:`common:action.delete`)]}),(0,Q.jsx)(`button`,{type:`button`,onClick:()=>F(null),className:`rounded-md bg-muted px-2 py-1.5 text-xs text-muted-foreground hover:bg-muted`,children:(0,Q.jsx)(D,{className:`h-3.5 w-3.5`})})]}):(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>m(e.id),title:S(`activity:sddTask.retryTitle`),className:`inline-flex flex-1 items-center justify-center gap-1 rounded-md bg-warning/12 py-1.5 text-xs font-medium text-warning hover:bg-warning/18`,children:[(0,Q.jsx)(E,{className:`h-3.5 w-3.5`}),` `,S(`common:action.retry`)]}),(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>A(!0),className:`inline-flex flex-1 items-center justify-center gap-1 rounded-md bg-primary/10 py-1.5 text-xs font-medium text-primary hover:bg-primary/15`,children:[(0,Q.jsx)(O,{className:`h-3.5 w-3.5`}),` `,S(`activity:sddTask.reassign`)]}),w&&(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>F(`stop`),title:S(`activity:sddTask.stopTitle`),className:`inline-flex flex-1 items-center justify-center gap-1 rounded-md bg-destructive/10 py-1.5 text-xs font-medium text-destructive hover:bg-destructive/15`,children:[(0,Q.jsx)(t,{className:`h-3.5 w-3.5`}),` `,S(`common:action.stop`)]}),!w&&(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>L(!0),title:S(`activity:sddTask.splitTitle`),className:`inline-flex flex-1 items-center justify-center gap-1 rounded-md bg-primary/10 py-1.5 text-xs font-medium text-primary hover:bg-primary/15`,children:[(0,Q.jsx)(d,{className:`h-3.5 w-3.5`}),` `,S(`activity:sddTask.split`)]}),k&&(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>F(`delete`),title:S(`activity:sddTask.deleteTitle`),className:`inline-flex flex-1 items-center justify-center gap-1 rounded-md bg-destructive/10 py-1.5 text-xs font-medium text-destructive hover:bg-destructive/15`,children:[(0,Q.jsx)(P,{className:`h-3.5 w-3.5`}),` `,S(`common:action.delete`)]})]}),ae&&(0,Q.jsxs)(`div`,{className:`mt-2 flex flex-col gap-2`,children:[(0,Q.jsx)(`label`,{className:`text-[11px] text-muted-foreground`,htmlFor:`sdd-split-input`,children:S(`activity:sddTask.splitHint`)}),(0,Q.jsx)(`textarea`,{id:`sdd-split-input`,rows:3,value:R,onChange:e=>z(e.target.value),placeholder:S(`activity:sddTask.splitPlaceholder`),className:`w-full resize-y rounded-md border border-border/70 bg-background px-2 py-1.5 text-xs text-foreground focus:outline-none focus:ring-1 focus:ring-ring`}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:G,className:`inline-flex flex-1 items-center justify-center gap-1 rounded-md bg-primary/10 py-1.5 text-xs font-medium text-primary hover:bg-primary/15`,children:[(0,Q.jsx)(d,{className:`h-3.5 w-3.5`}),` `,S(`activity:sddTask.splitInto`)]}),(0,Q.jsx)(`button`,{type:`button`,onClick:()=>{L(!1),z(``)},className:`rounded-md bg-muted px-2 py-1.5 text-xs text-muted-foreground hover:bg-muted`,children:(0,Q.jsx)(D,{className:`h-3.5 w-3.5`})})]})]})]})]})}function we({events:e,expanded:t}){let{t:n}=j();return(0,Q.jsxs)(`section`,{className:I(`rounded-lg border border-border/70 bg-background/45`,t&&`col-span-2`),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 border-b border-border/60 px-3 py-2.5`,children:[(0,Q.jsx)(S,{className:`h-4 w-4 text-primary`}),(0,Q.jsx)(`h4`,{className:`text-xs font-semibold text-foreground`,children:n(`activity:sddTask.eventLog`)}),(0,Q.jsx)(`span`,{className:`rounded-full bg-muted px-2 py-0.5 text-[10px] text-muted-foreground`,children:e.length}),(0,Q.jsx)(`span`,{className:`ml-auto text-[10px] text-muted-foreground`,children:n(`activity:sddTask.newestFirst`)})]}),e.length===0?(0,Q.jsx)(`p`,{className:`px-3 py-5 text-center text-[11px] text-muted-foreground`,children:n(`activity:sddTask.noEvents`)}):(0,Q.jsx)(`div`,{className:I(`divide-y divide-border/45 overflow-auto`,t?`max-h-[32rem]`:`max-h-72`),children:e.map((e,t)=>{let n=e.kind===`file`,i=e.kind===`tool`,a=e.ok===!1||e.kind===`failed`||e.kind===`verification_failed`,o=n?m:i?r:S;return(0,Q.jsxs)(`div`,{className:I(`grid grid-cols-[4.75rem_1rem_minmax(0,1fr)] gap-2 px-3 py-2.5 text-[11px]`,a&&`bg-destructive/[0.035]`),children:[(0,Q.jsx)(`time`,{dateTime:new Date(e.ts).toISOString(),className:`font-mono text-[10px] text-muted-foreground`,title:new Date(e.ts).toLocaleString(),children:new Date(e.ts).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}),(0,Q.jsx)(o,{className:I(`mt-0.5 h-3.5 w-3.5`,a?`text-destructive`:n?`text-info`:i?`text-warning`:`text-primary`)}),(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[e.action&&(0,Q.jsx)(`span`,{className:`rounded bg-muted px-1.5 py-0.5 font-mono text-[10px] font-medium text-foreground`,children:e.action}),e.agentName&&(0,Q.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:e.agentName}),e.durationMs!==void 0&&(0,Q.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:e.durationMs<1e3?`${Math.round(e.durationMs)}ms`:`${(e.durationMs/1e3).toFixed(1)}s`})]}),e.filePath?(0,Q.jsx)(`code`,{className:`mt-1 block break-all font-mono text-[10px] leading-relaxed text-foreground`,children:e.filePath}):e.detail?(0,Q.jsx)(`code`,{className:`mt-1 block break-words font-mono text-[10px] leading-relaxed text-muted-foreground`,children:e.detail}):(0,Q.jsx)(`p`,{className:`mt-1 break-words leading-relaxed text-foreground`,children:e.text})]})]},`${e.ts}-${e.kind}-${t}`)})})]})}function Te({label:e,children:t,full:n}){return(0,Q.jsxs)(`div`,{className:I(`rounded-md border border-border bg-muted/50 px-2 py-1`,n&&`col-span-2`),children:[(0,Q.jsx)(`div`,{className:`text-[9px] uppercase tracking-wide text-muted-foreground`,children:e}),(0,Q.jsx)(`div`,{className:`text-foreground`,children:t})]})}function Ee({title:e,shortIds:t,byShort:n,onSelectTask:r}){return(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{className:`mb-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:e}),(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.map(e=>{let t=n.get(e);return(0,Q.jsxs)(`button`,{type:`button`,disabled:!t,onClick:()=>t&&r(t.id),className:`flex items-center gap-1 rounded-full border border-border bg-muted px-2 py-0.5 text-[10px] text-foreground hover:bg-muted disabled:opacity-50`,title:t?.title,children:[(0,Q.jsx)(`span`,{className:I(`h-1.5 w-1.5 rounded-full`,ge(t?.displayStatus??`pending`).dot)}),(0,Q.jsx)(`span`,{className:`font-mono`,children:e})]},e)})})]})}function De({onClose:e}){let{t:n}=j(),{client:r}=ae(),i=R(e=>e.snapshot),a=R(e=>e.lifecycleResult),o=R(e=>e.destroying),s=R(e=>e.setDestroying),c=R(e=>e.setLifecycleResult),[l,u]=(0,Z.useState)(()=>Date.now()),[d,f]=(0,Z.useState)(null),[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(`graph`),[v,y]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{r?.send?.({type:`sdd.board.get`})},[r]);let b=i&&(i.status===`running`||i.status===`paused`);(0,Z.useEffect)(()=>{if(!b)return;let e=setInterval(()=>u(Date.now()),1e3);return u(Date.now()),()=>clearInterval(e)},[b]);let x=(0,Z.useCallback)(e=>r?.send?.(e),[r]),T=(0,Z.useRef)(null),O=(0,Z.useCallback)(e=>{T.current=null,x({type:`sdd.board.destroy`,payload:{revertMerged:e}})},[x]),k=(0,Z.useCallback)(e=>{y(!1),c(null),s(!0),b?(x({type:`sdd.board.stop`,payload:{}}),T.current={revertMerged:e,deadline:Date.now()+2e4}):O(e)},[b,x,O,s,c]);(0,Z.useEffect)(()=>{let e=T.current;e&&(!b||Date.now()>=e.deadline)&&O(e.revertMerged)},[b,i,O]);let ne=(0,Z.useCallback)(()=>{c(null),x({type:`sdd.board.cleanup_worktrees`,payload:{}})},[x,c]),re=(0,Z.useCallback)(()=>{c(null),x({type:`sdd.board.rollback`,payload:{}})},[x,c]),ie=(0,Z.useMemo)(()=>(i?.tasks??[]).map(e=>({id:e.id,shortId:e.shortId,title:e.title,displayStatus:e.displayStatus,priority:e.priority,deps:e.deps,agentName:e.agentName,worktreeBranch:e.worktreeBranch})),[i?.tasks]),N=(0,Z.useMemo)(()=>{let e=new Map;for(let t of i?.tasks??[])t.displayStatus===`in_progress`&&t.agentName&&e.set(t.agentName,{name:t.agentName,task:t.title});return[...e.values()]},[i?.tasks]),L=(0,Z.useCallback)(e=>f(e),[]),B=(0,Z.useCallback)(()=>{f(null),m(!1)},[]),V=(0,Z.useCallback)(e=>x({type:`sdd.board.retry`,payload:{taskId:e}}),[x]),H=(0,Z.useCallback)(()=>x({type:`sdd.board.retry_all_failed`,payload:{}}),[x]),U=(0,Z.useCallback)((e,t)=>{let n=t.trim();n&&x({type:`sdd.board.reassign`,payload:{taskId:e,agentName:n}})},[x]),W=(0,Z.useCallback)((e,t,n)=>x({type:`sdd.board.set_task_model`,payload:{taskId:e,model:t,provider:n}}),[x]),G=(0,Z.useCallback)((e,t)=>x({type:`sdd.board.set_task_verification`,payload:{taskId:e,verificationCommand:t}}),[x]),K=(0,Z.useCallback)(e=>x({type:`sdd.board.cancel_task`,payload:{taskId:e}}),[x]),se=(0,Z.useCallback)(e=>{x({type:`sdd.board.delete_task`,payload:{taskId:e}}),f(null),m(!1)},[x]),ce=(0,Z.useCallback)((e,t)=>{x({type:`sdd.board.split_task`,payload:{taskId:e,subtasks:t}}),f(null),m(!1)},[x]),le=oe(d!==null),Y=(0,Z.useMemo)(()=>i?.tasks.find(e=>e.id===d)??null,[i?.tasks,d]),X=i?.progress,me=i?.diagnostics?.deadlockChains??[];return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col bg-background`,children:[(0,Q.jsxs)(`header`,{className:`sdd-sheen shrink-0 border-b border-border px-4 pb-3 pt-2.5`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(S,{className:`h-5 w-5 text-warning`}),(0,Q.jsx)(`h1`,{className:`text-lg font-semibold text-foreground`,children:i?.title??n(`activity:sddBoard.titleFallback`)}),i&&(0,Q.jsx)(`span`,{className:I(`rounded-full border px-2 py-0.5 text-[11px] font-medium capitalize`,J[i.status]??J.idle),children:i.status}),i?.defaultModel&&(0,Q.jsxs)(`span`,{className:`flex items-center gap-1 rounded-full border border-border bg-muted px-2 py-0.5 text-[10px] text-muted-foreground`,title:n(`activity:sddBoard.defaultModelTitle`),children:[(0,Q.jsx)(w,{className:`h-3 w-3 text-primary`}),i.defaultModel]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i&&(0,Q.jsxs)(`button`,{type:`button`,title:`Open the mirrored kanban board(s) for this run (one per dependency wave)`,onClick:()=>{let e=`run:${i.runId}`,t=z.getState().boards.filter(t=>t.tags?.includes(e)),n=t.find(e=>e.tags?.includes(`phase:wave-0`))??t[0];n&&z.getState().setActiveBoardId(n.id),F.getState().setCurrentView(`kanban`)},className:`inline-flex items-center gap-1 rounded-md border border-border px-2.5 py-1 text-xs font-medium text-muted-foreground hover:bg-muted`,children:[(0,Q.jsx)(S,{className:`h-3.5 w-3.5`}),` Kanban`]}),i&&(0,Q.jsx)(`div`,{className:`flex items-center rounded-md border border-border bg-muted p-0.5 text-[11px]`,children:[`graph`,`kanban`].map(e=>(0,Q.jsx)(`button`,{type:`button`,onClick:()=>g(e),className:I(`rounded px-2 py-0.5 capitalize transition`,h===e?`bg-primary/12 text-primary`:`text-muted-foreground hover:text-foreground`),children:n(e===`graph`?`activity:sddBoard.graphLabel`:`activity:sddBoard.kanbanLabel`)},e))}),b&&(X?.failed??0)>0&&(0,Q.jsxs)(`button`,{type:`button`,onClick:H,title:n(`activity:sddBoard.retryAllTitle`),className:`inline-flex items-center gap-1 rounded-md bg-warning/15 px-2.5 py-1 text-xs font-medium text-warning hover:bg-warning/25`,children:[(0,Q.jsx)(E,{className:`h-3.5 w-3.5`}),` `,n(`activity:sddBoard.retryFailed`,{count:X?.failed??0})]}),b&&(0,Q.jsxs)(Q.Fragment,{children:[i?.status===`paused`?(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>x({type:`sdd.board.resume`,payload:{}}),className:`inline-flex items-center gap-1 rounded-md bg-success/15 px-2.5 py-1 text-xs font-medium text-success hover:bg-success/25`,children:[(0,Q.jsx)(C,{className:`h-3.5 w-3.5`}),` `,n(`activity:sddBoard.resume`)]}):(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>x({type:`sdd.board.pause`,payload:{}}),className:`inline-flex items-center gap-1 rounded-md bg-warning/15 px-2.5 py-1 text-xs font-medium text-warning hover:bg-warning/25`,children:[(0,Q.jsx)(ee,{className:`h-3.5 w-3.5`}),` `,n(`activity:sddBoard.pause`)]}),(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>x({type:`sdd.board.stop`,payload:{}}),className:`inline-flex items-center gap-1 rounded-md bg-destructive/15 px-2.5 py-1 text-xs font-medium text-destructive hover:bg-destructive/25`,children:[(0,Q.jsx)(t,{className:`h-3.5 w-3.5`}),` `,n(`activity:sddBoard.stop`)]})]}),i&&!b&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:ne,title:n(`activity:sddBoard.cleanTitle`),className:`inline-flex items-center gap-1 rounded-md bg-muted px-2.5 py-1 text-xs font-medium text-muted-foreground hover:bg-muted/80`,children:[(0,Q.jsx)(_,{className:`h-3.5 w-3.5`}),` `,n(`activity:sddBoard.cleanWorktrees`)]}),(i.mergedCommits?.length??0)>0&&(0,Q.jsxs)(`button`,{type:`button`,onClick:re,title:n(`activity:sddBoard.rollbackTitle`,{count:i.mergedCommits?.length??0,base:i.baseBranch??n(`activity:sdd.baseBranchFallback`)}),className:`inline-flex items-center gap-1 rounded-md bg-warning/15 px-2.5 py-1 text-xs font-medium text-warning hover:bg-warning/25`,children:[(0,Q.jsx)(te,{className:`h-3.5 w-3.5`}),` `,n(`activity:sddBoard.rollback`,{count:i.mergedCommits?.length??0})]})]}),i&&(o?(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md bg-destructive/15 px-2.5 py-1 text-xs font-medium text-destructive`,children:[(0,Q.jsx)(E,{className:`h-3.5 w-3.5 animate-spin`}),` `,n(b?`activity:sddBoard.stopping`:`activity:sddBoard.destroying`)]}):(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>y(!0),title:n(`activity:sddBoard.destroyTitle`),className:`inline-flex items-center gap-1 rounded-md bg-destructive px-2.5 py-1 text-xs font-medium text-destructive-foreground hover:bg-destructive/90`,children:[(0,Q.jsx)(P,{className:`h-3.5 w-3.5`}),` `,n(`activity:sddBoard.destroy`)]})),(0,Q.jsx)(q,{variant:`ghost`,size:`icon`,onClick:e,children:(0,Q.jsx)(D,{className:`h-4 w-4`})})]})]}),i&&X&&(0,Q.jsxs)(`div`,{className:`mt-2.5 flex items-center gap-5`,children:[(0,Q.jsx)(he,{pct:X.percentComplete}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-3 text-xs`,children:[(0,Q.jsx)(Ae,{label:n(`activity:sddBoard.statDone`),value:`${X.completed}/${X.total}`,color:`text-success`}),X.inProgress>0&&(0,Q.jsx)(Ae,{label:n(`activity:sddBoard.statRunning`),value:X.inProgress,color:`text-warning`}),X.failed>0&&(0,Q.jsx)(Ae,{label:n(`activity:sddBoard.statFailed`),value:X.failed,color:`text-destructive`}),(0,Q.jsx)(Ae,{label:n(`activity:sddBoard.statWave`),value:i.wave+1,color:`text-primary`}),b&&i.startedAt>0&&(0,Q.jsx)(Ae,{label:n(`activity:sddBoard.statElapsed`),value:ue(l-i.startedAt),color:`text-foreground`})]}),(0,Q.jsx)(`div`,{className:`flex min-h-[24px] items-center gap-1.5`,children:N.length===0?(0,Q.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:n(`activity:sddBoard.noActiveWorkers`)}):N.map((e,t)=>(0,Q.jsxs)(`span`,{title:`${e.name} → ${e.task}`,className:`flex items-center gap-1 rounded-full bg-muted py-0.5 pl-0.5 pr-2`,children:[(0,Q.jsx)(`span`,{className:I(`sdd-agent-live flex h-5 w-5 items-center justify-center rounded-full text-[9px] font-bold text-white`,pe[t%pe.length]),children:fe(e.name)}),(0,Q.jsx)(`span`,{className:`max-w-[90px] truncate text-[11px] text-foreground`,children:e.name})]},e.name))})]})]})]}),a&&(0,Q.jsx)(ke,{result:a,onDismiss:()=>c(null)}),me.length>0&&(0,Q.jsxs)(`div`,{className:`flex items-start gap-2 border-b border-destructive/30 bg-destructive/5 px-4 py-2 text-xs text-destructive`,children:[(0,Q.jsx)(M,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`div`,{className:`font-semibold`,children:n(`activity:sddBoard.deadlock`)}),me.map(e=>(0,Q.jsxs)(`div`,{className:`font-mono`,children:[e.blocked,` ← `,e.blockedBy.join(`, `)]},e.blocked))]})]}),(0,Q.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`relative min-h-0 min-w-0 flex-1 overflow-hidden`,children:i?h===`graph`?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(de,{tasks:ie,columns:i.columns,onTaskClick:L}),(0,Q.jsx)(`div`,{className:`pointer-events-none absolute bottom-2 left-1/2 -translate-x-1/2 rounded-full bg-black/40 px-2 py-0.5 text-[10px] text-muted-foreground backdrop-blur`,children:n(`activity:sddBoard.clickTaskHint`)})]}):(0,Q.jsx)(xe,{tasks:i.tasks,selectedId:d,onTaskClick:L}):(0,Q.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3 text-sm text-muted-foreground`,children:[(0,Q.jsx)(A,{className:`h-10 w-10 text-primary/40`}),(0,Q.jsx)(`p`,{className:`text-foreground`,children:n(`activity:sddBoard.noRunTitle`)}),(0,Q.jsx)(`p`,{className:`max-w-sm text-center text-xs text-muted-foreground`,children:n(`activity:sddBoard.noRunBody`)})]})}),i&&(0,Q.jsx)(`aside`,{"data-testid":`sdd-task-panel`,"data-expanded":p&&Y?`true`:`false`,className:I(`shrink-0 border-l border-border bg-card transition-[width] duration-200 ease-out`,p&&Y?`w-[min(72rem,72vw)]`:`w-80`),children:Y?(0,Q.jsx)(Ce,{task:Y,allTasks:i.tasks,feed:i.taskEvents?.[Y.id]??i.feed??[],now:l,expanded:p,modelCandidates:le,defaultModel:i.defaultModel,onClose:B,onToggleExpanded:()=>m(e=>!e),onRetry:V,onReassign:U,onSetModel:W,onSetVerification:G,onCancel:K,onDelete:se,onSplit:ce,onSelectTask:f},Y.id):(0,Q.jsx)(ve,{feed:i.feed??[],now:l})})]}),(0,Q.jsx)(ye,{open:v,onOpenChange:y,snapshot:i,busy:o,onConfirm:k})]})}function Oe(e){let t=e.op===`cleanup_worktrees`?`lcClean`:e.op===`rollback`?`lcRollback`:`lcDestroy`,n=N.t(`activity:sddBoard.${t}`);if(!e.ok)return N.t(`activity:sddBoard.lcFailed`,{op:n,reason:e.reason??N.t(`activity:sddBoard.lcUnknownError`)});let r=[];typeof e.removed==`number`&&r.push(N.t(`activity:sddBoard.lcWorktrees`,{count:e.removed})),typeof e.reverted==`number`&&e.reverted>0&&r.push(N.t(`activity:sddBoard.lcCommits`,{count:e.reverted})),e.deleted?.length&&r.push(N.t(`activity:sddBoard.lcDeleted`,{items:e.deleted.join(`, `)}));let i=r.length?r.join(` · `):N.t(`activity:sddBoard.lcNothing`);return e.reason?N.t(`activity:sddBoard.lcNote`,{op:n,body:i,reason:e.reason}):N.t(`activity:sddBoard.lcOk`,{op:n,body:i})}function ke({result:e,onDismiss:t}){let n=!e.ok||!!e.reason;return(0,Q.jsxs)(`div`,{className:I(`flex items-start gap-2 border-b px-4 py-2 text-xs`,n?`border-warning/30 bg-warning/5 text-warning`:`border-success/30 bg-success/5 text-success`),children:[n?(0,Q.jsx)(y,{className:`mt-0.5 h-4 w-4 shrink-0`}):(0,Q.jsx)(f,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,Q.jsx)(`span`,{className:`flex-1`,children:Oe(e)}),(0,Q.jsx)(`button`,{type:`button`,onClick:t,className:`shrink-0 opacity-60 hover:opacity-100`,children:(0,Q.jsx)(D,{className:`h-3.5 w-3.5`})})]})}function Ae({label:e,value:t,color:n}){return(0,Q.jsxs)(`span`,{className:`flex items-baseline gap-1`,children:[(0,Q.jsx)(`span`,{className:I(`font-semibold tabular-nums`,n),children:t}),(0,Q.jsx)(`span`,{className:`text-[10px] uppercase tracking-wide text-muted-foreground`,children:e})]})}var je={idle:`phaseStart`,questioning:`phaseInterview`,spec_review:`phaseSpecReview`,implementation:`phasePlanning`,task_review:`phaseTaskReview`,executing:`phaseRunning`,done:`phaseDone`},Me=[`questioning`,`spec_review`,`implementation`,`task_review`,`executing`];function Ne({onClose:e,onRunStarted:t}){let{t:n}=j(),{client:r}=ae(),l=L(e=>e.snapshot),u=L(e=>e.agentText),d=L(e=>e.error),f=L(e=>e.startedRunId),m=L(e=>e.setStartedRunId),[_,ee]=(0,Z.useState)(``),[v,y]=(0,Z.useState)(``),[b,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(!0),[te,w]=(0,Z.useState)(!0),[T,E]=(0,Z.useState)(!1),[O,k]=(0,Z.useState)(void 0),[A,re]=(0,Z.useState)(void 0),[M,N]=(0,Z.useState)([]),[P,F]=(0,Z.useState)(4),[R,z]=(0,Z.useState)(!0),[B,V]=(0,Z.useState)(!1),H=oe(T),U=(0,Z.useCallback)(e=>r?.send?.(e),[r]),W=(0,Z.useRef)(null);(0,Z.useEffect)(()=>{U({type:`sdd.spec.get`})},[U]),(0,Z.useEffect)(()=>{W.current?.scrollIntoView({behavior:`smooth`,block:`end`})},[l?.answers.length??0,u]),(0,Z.useEffect)(()=>{f&&(m(null),t?.())},[t,m,f]);let G=l?.busy??!1,K=l?.phase??`idle`,J=!!l?.sessionId,ue=!!l?.resumed,Y=l?.lastRunId;(0,Z.useEffect)(()=>{J&&x(!1)},[J]);let fe=l?.answers[l.answers.length-1]?.question??``,pe=!!l&&(l.taskCount>0||!!l.graphId||K===`task_review`||K===`executing`),me=()=>{let e=_.trim();!e||G||b||(x(!0),U({type:`sdd.spec.start`,payload:{goal:e}}))},he=()=>{let e=v.trim();!e||G||(U({type:`sdd.spec.message`,payload:{text:e}}),y(``))},ge=()=>!G&&U({type:`sdd.spec.approve`,payload:{}}),_e=()=>{U({type:`sdd.run.start`,payload:{parallelSlots:P,worktrees:R,planDecompose:B,...O?{model:O,provider:A}:{},...M.length?{fallbackModels:M}:{}}}),E(!1)},ve=()=>{G||U({type:`sdd.spec.discard`,payload:{}})},ye=(0,Z.useMemo)(()=>(l?.board?.tasks??[]).map(e=>({id:e.id,shortId:e.shortId,title:e.title,displayStatus:e.displayStatus,priority:e.priority,deps:e.deps,agentName:e.agentName,worktreeBranch:e.worktreeBranch,retries:e.retries})),[l?.board]),be=ye.length>0;return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col bg-background`,children:[(0,Q.jsxs)(`header`,{className:`sdd-sheen flex shrink-0 items-center justify-between border-b border-border px-4 py-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(h,{className:`h-5 w-5 text-primary`}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h1`,{className:`text-lg font-semibold`,children:l?.title||n(`activity:sddWizard.titleFallback`)}),J&&(0,Q.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[n(`activity:sddWizard.${je[K]??`phaseStart`}`),K===`questioning`&&` · ${n(`activity:sddWizard.questionsSuffix`,{cur:l?.questionCount??0,max:l?.maxQuestions??0})}`,l&&l.taskCount>0?` · ${n(`activity:sddWizard.tasksSuffix`,{count:l.taskCount})}`:``]})]}),G&&(0,Q.jsx)(g,{className:`h-4 w-4 animate-spin text-muted-foreground`})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Y&&(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>t?.(),className:`inline-flex items-center gap-1 rounded-md border border-border px-2 py-1 text-xs font-medium text-muted-foreground hover:bg-muted`,children:[(0,Q.jsx)(ne,{className:`h-3.5 w-3.5`}),` `,n(`activity:sddWizard.openLiveBoard`)]}),J&&(0,Q.jsx)(`button`,{type:`button`,onClick:ve,disabled:G,title:n(`activity:sddWizard.discardTitle`),className:`inline-flex items-center gap-1 rounded-md border border-border px-2 py-1 text-xs font-medium text-muted-foreground hover:bg-destructive/10 hover:text-destructive disabled:opacity-50`,children:n(`activity:sddWizard.discardInterview`)}),pe&&(0,Q.jsxs)(`div`,{className:`relative flex items-center gap-1.5`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>E(e=>!e),title:n(`activity:sddWizard.runCfgTitle`),className:I(`inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs font-medium`,O||M.length||B?`border-primary/40 bg-primary/10 text-primary`:`border-border bg-muted text-muted-foreground hover:text-foreground`),children:[(0,Q.jsx)(a,{className:`h-3.5 w-3.5`}),O||n(`activity:sddWizard.modelsLabel`)]}),(0,Q.jsxs)(`button`,{type:`button`,onClick:_e,className:`inline-flex items-center gap-1 rounded-md bg-success/15 px-2.5 py-1 text-xs font-medium text-success hover:bg-success/25`,children:[(0,Q.jsx)(ne,{className:`h-3.5 w-3.5`}),` `,n(`activity:sddWizard.startRun`)]}),T&&(0,Q.jsxs)(`div`,{className:`sdd-rise absolute right-0 top-9 z-50 w-72 rounded-lg border border-border bg-popover p-3 shadow-xl`,children:[(0,Q.jsx)(`div`,{className:`mb-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:n(`activity:sddWizard.defaultWorkerModel`)}),(0,Q.jsx)(se,{value:O,provider:A,candidates:H,placeholder:n(`activity:sddWizard.leaderDefaultPlaceholder`),resetLabel:n(`activity:sddWizard.useSessionDefault`),onPick:(e,t)=>{k(e),re(t)},onReset:O?()=>{k(void 0),re(void 0)}:void 0}),(0,Q.jsx)(`div`,{className:`mb-1 mt-3 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:n(`activity:sddWizard.fallbackChain`)}),(0,Q.jsx)(le,{value:M,candidates:H,onChange:N}),(0,Q.jsx)(`p`,{className:`mt-2 text-[10px] text-muted-foreground`,children:n(`activity:sddWizard.appliesToAll`)}),(0,Q.jsxs)(`div`,{className:`mt-3 flex items-center justify-between gap-2`,children:[(0,Q.jsx)(`label`,{htmlFor:`sdd-slots`,className:`text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:n(`activity:sddWizard.parallelAgents`)}),(0,Q.jsx)(`input`,{id:`sdd-slots`,type:`number`,min:1,max:16,value:P,onChange:e=>{let t=Number.parseInt(e.target.value,10);F(Number.isFinite(t)?Math.min(16,Math.max(1,t)):1)},className:`w-16 rounded-md border border-border bg-background px-2 py-1 text-right text-xs outline-none focus:border-primary`})]}),(0,Q.jsxs)(`label`,{className:`mt-2 flex cursor-pointer items-center justify-between gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:n(`activity:sddWizard.isolateWorktrees`)}),(0,Q.jsx)(`input`,{type:`checkbox`,checked:R,onChange:e=>z(e.target.checked),className:`h-3.5 w-3.5 accent-primary`})]}),(0,Q.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:n(R?`activity:sddWizard.worktreeOn`:`activity:sddWizard.worktreeOff`)}),(0,Q.jsxs)(`label`,{className:`mt-2 flex cursor-pointer items-center justify-between gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:n(`activity:sddWizard.planDecompose`)}),(0,Q.jsx)(`input`,{type:`checkbox`,checked:B,onChange:e=>V(e.target.checked),className:`h-3.5 w-3.5 accent-primary`})]}),(0,Q.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground`,children:n(B?`activity:sddWizard.planDecomposeOn`:`activity:sddWizard.planDecomposeOff`)})]})]}),(0,Q.jsx)(q,{variant:`ghost`,size:`icon`,onClick:e,children:(0,Q.jsx)(D,{className:`h-4 w-4`})})]})]}),J&&(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center gap-1 border-b bg-card/50 px-4 py-1.5 text-[11px]`,children:Me.map((e,t)=>{let r=e===K,i=Me.indexOf(K)>t;return(0,Q.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,Q.jsxs)(`span`,{className:I(`rounded-full px-2 py-0.5`,r?`bg-primary/15 text-primary`:i?`text-success`:`text-muted-foreground`),children:[i&&(0,Q.jsx)(c,{className:`mr-0.5 inline h-3 w-3`}),n(`activity:sddWizard.${je[e]}`)]}),t<Me.length-1&&(0,Q.jsx)(`span`,{className:`text-muted-foreground/65`,children:`→`})]},e)})}),(0,Q.jsxs)(`div`,{ref:ce(`sdd-wizard`),className:`min-h-0 flex-1 overflow-auto overscroll-contain p-4`,children:[d&&(0,Q.jsx)(`div`,{className:`mb-3 rounded-md border border-destructive/40 bg-destructive/5 p-2 text-xs text-destructive`,children:d}),ue&&J&&(0,Q.jsx)(`div`,{className:`mb-3 rounded-md border border-primary/30 bg-primary/5 px-3 py-2 text-xs text-primary`,children:n(`activity:sddWizard.resumeBanner`)}),J?(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[be&&(0,Q.jsxs)(`div`,{className:`sdd-rise overflow-hidden rounded-lg border border-primary/20 bg-[hsl(var(--surface-2)/0.85)]`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>C(e=>!e),className:`flex w-full items-center gap-1.5 border-b border-border/60 px-3 py-1.5 text-[11px] font-medium text-primary hover:bg-muted/40`,children:[S?(0,Q.jsx)(o,{className:`h-3.5 w-3.5`}):(0,Q.jsx)(p,{className:`h-3.5 w-3.5`}),(0,Q.jsx)(i,{className:`h-3.5 w-3.5`}),n(`activity:sddWizard.taskGraphSummary`,{count:l?.taskCount??0}),(0,Q.jsx)(`span`,{className:`ml-auto text-muted-foreground`,children:n(S?`activity:sddWizard.dragToExplore`:`activity:sddWizard.show`)})]}),S&&(0,Q.jsx)(`div`,{className:`h-[32dvh] min-h-[200px]`,children:(0,Q.jsx)(de,{tasks:ye,columns:l?.board?.columns??[]})})]}),(0,Q.jsxs)(`div`,{className:`mx-auto max-w-2xl space-y-3`,children:[l?.goal&&(0,Q.jsxs)(`div`,{className:`rounded-md border border-border bg-muted/30 px-3 py-2`,children:[(0,Q.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,Q.jsx)(ie,{className:`h-3 w-3`}),` `,n(`activity:sddWizard.goalLabel`)]}),(0,Q.jsx)(`p`,{className:`whitespace-pre-wrap text-sm leading-relaxed text-foreground/90`,children:l.goal})]}),l?.answers.length||u&&K===`questioning`||G?(0,Q.jsxs)(`div`,{className:`space-y-2.5`,children:[l?.answers.map(e=>(0,Q.jsxs)(`div`,{className:`space-y-2.5`,children:[(0,Q.jsx)(Fe,{speaker:`assistant`,text:e.question}),(0,Q.jsx)(Fe,{speaker:`user`,text:e.answer})]},e.question.slice(0,64))),u&&K===`questioning`&&u!==fe&&(0,Q.jsx)(Fe,{speaker:`assistant`,text:u}),G&&(0,Q.jsx)(Fe,{speaker:`assistant`,text:``,thinking:!0})]}):null,l?.spec&&(0,Q.jsxs)(`div`,{className:`sdd-rise rounded-md border border-border bg-card p-3`,children:[(0,Q.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-sm font-semibold`,children:[(0,Q.jsx)(h,{className:`h-3.5 w-3.5 text-primary`}),l.spec.title]}),(0,Q.jsx)(`p`,{className:`mb-2 text-xs text-muted-foreground`,children:l.spec.overview}),(0,Q.jsx)(`ul`,{className:`space-y-0.5 text-xs`,children:l.spec.requirements.map(e=>(0,Q.jsxs)(`li`,{className:`flex gap-1.5`,children:[(0,Q.jsx)(`span`,{className:I(`shrink-0 font-mono uppercase`,X(e.priority).text),children:e.priority[0]}),(0,Q.jsx)(`span`,{children:e.description})]},`${e.priority}-${e.description.slice(0,32)}`))})]}),u&&(K===`implementation`||K===`task_review`)&&(0,Q.jsxs)(`div`,{className:`sdd-rise rounded-md border border-border bg-card`,children:[(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>w(e=>!e),className:`flex w-full items-center gap-1.5 border-b border-border/60 px-3 py-2 text-sm font-semibold hover:bg-muted/40`,children:[te?(0,Q.jsx)(o,{className:`h-3.5 w-3.5`}):(0,Q.jsx)(p,{className:`h-3.5 w-3.5`}),(0,Q.jsx)(h,{className:`h-3.5 w-3.5 text-primary`}),` `,n(`activity:sddWizard.implementationPlan`)]}),te&&(0,Q.jsx)(`div`,{className:`max-h-[40dvh] overflow-auto px-3 py-2`,children:(0,Q.jsx)(`p`,{className:`whitespace-pre-wrap text-sm leading-relaxed text-foreground/90`,children:Pe(u)})})]}),u&&K!==`questioning`&&K!==`implementation`&&K!==`task_review`&&!l?.spec&&(0,Q.jsx)(Fe,{speaker:`assistant`,text:u}),(K===`spec_review`||K===`implementation`||K===`task_review`)&&(0,Q.jsxs)(q,{variant:`secondary`,onClick:ge,disabled:G,children:[(0,Q.jsx)(c,{className:`mr-1.5 h-4 w-4`}),n(K===`spec_review`?`activity:sddWizard.approveSpec`:K===`task_review`?`activity:sddWizard.approveTasks`:`activity:sddWizard.approvePlan`)]}),(0,Q.jsx)(`div`,{ref:W})]})]}):(0,Q.jsxs)(`div`,{className:`mx-auto mt-8 max-w-xl`,children:[(0,Q.jsx)(`label`,{className:`mb-2 block text-sm font-medium`,htmlFor:`sdd-goal`,children:n(`activity:sddWizard.goalPrompt`)}),(0,Q.jsx)(`textarea`,{id:`sdd-goal`,value:_,onChange:e=>ee(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&me()},rows:4,placeholder:n(`activity:sddWizard.goalPlaceholder`),className:`w-full resize-none rounded-md border border-border bg-card px-3 py-2 text-sm outline-none focus:border-primary`}),(0,Q.jsx)(q,{className:`mt-3`,onClick:me,disabled:!_.trim()||b,children:b?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(g,{className:`mr-1.5 h-4 w-4 animate-spin`}),` `,n(`activity:sddWizard.startingInterview`)]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(h,{className:`mr-1.5 h-4 w-4`}),` `,n(`activity:sddWizard.startInterview`)]})}),(0,Q.jsx)(`p`,{className:`mt-3 text-xs text-muted-foreground`,children:n(`activity:sddWizard.introBody`)})]})]}),J&&K!==`executing`&&K!==`done`&&(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-end gap-2 border-t bg-card px-4 py-2`,children:[(0,Q.jsx)(`textarea`,{value:v,onChange:e=>y(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),he())},rows:1,placeholder:n(K===`questioning`?`activity:sddWizard.answerPlaceholder`:`activity:sddWizard.changePlaceholder`),disabled:G,className:`max-h-32 flex-1 resize-none rounded-md border border-border bg-background px-3 py-2 text-sm outline-none focus:border-primary disabled:opacity-50`}),(0,Q.jsx)(q,{size:`icon`,onClick:he,disabled:G||!v.trim(),children:(0,Q.jsx)(s,{className:`h-4 w-4`})})]})]})}function Pe(e){let t=e.replace(/```json[\s\S]*?```/gi,``).trim();return t.length>0?t:e.trim()}function Fe({speaker:e,text:t,live:n,thinking:r}){let i=e===`user`;return(0,Q.jsxs)(`div`,{className:I(`sdd-rise flex items-start gap-2`,i&&`flex-row-reverse`),children:[(0,Q.jsx)(`span`,{className:I(`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full`,i?`bg-info/15 text-info`:`bg-primary/15 text-primary`,(n||r)&&`sdd-agent-live`),children:i?(0,Q.jsx)(b,{className:`h-3.5 w-3.5`}):(0,Q.jsx)(k,{className:`h-3.5 w-3.5`})}),(0,Q.jsx)(`div`,{className:I(`max-w-[80%] whitespace-pre-wrap rounded-2xl px-3 py-2 text-sm leading-relaxed text-foreground`,i?`rounded-tr-sm bg-info/10`:`rounded-tl-sm bg-muted`),children:r?(0,Q.jsxs)(`span`,{className:`flex items-center gap-1 py-0.5`,children:[(0,Q.jsx)(`span`,{className:`h-1.5 w-1.5 animate-bounce rounded-full bg-muted-foreground [animation-delay:-200ms]`}),(0,Q.jsx)(`span`,{className:`h-1.5 w-1.5 animate-bounce rounded-full bg-muted-foreground [animation-delay:-100ms]`}),(0,Q.jsx)(`span`,{className:`h-1.5 w-1.5 animate-bounce rounded-full bg-muted-foreground`})]}):t})]})}var $=[{id:`project`,labelKey:`activity:sddhub.tabProject`},{id:`board`,labelKey:`activity:sddhub.tabBoard`},{id:`specs`,labelKey:`activity:sddhub.tabSpecs`}];function Ie(){let{t:e}=j(),[t,n]=(0,Z.useState)(`project`),r=L(e=>e.startedRunId),i=L(e=>e.setStartedRunId),a=()=>B(`chat`),o=(0,Z.useCallback)(()=>n(`board`),[]);(0,Z.useEffect)(()=>{r&&(n(`board`),i(null))},[r,i]);let s=(e,t)=>{let r;if(e.key===`ArrowLeft`&&(r=(t-1+$.length)%$.length),e.key===`ArrowRight`&&(r=(t+1)%$.length),e.key===`Home`&&(r=0),e.key===`End`&&(r=$.length-1),r===void 0)return;e.preventDefault();let i=$[r];i&&(n(i.id),e.currentTarget.parentElement?.querySelectorAll(`[role="tab"]`)[r]?.focus())};return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col bg-background`,children:[(0,Q.jsx)(`div`,{role:`tablist`,"aria-orientation":`horizontal`,className:`flex shrink-0 items-end border-b border-border/70 bg-card px-4`,children:$.map((r,i)=>{let a=t===r.id;return(0,Q.jsxs)(`button`,{id:`sdd-hub-tab-${r.id}`,type:`button`,role:`tab`,"aria-selected":a,"aria-controls":`sdd-hub-panel-${r.id}`,tabIndex:a?0:-1,onClick:()=>n(r.id),onKeyDown:e=>s(e,i),className:I(`relative px-4 py-2.5 text-sm font-medium transition-colors`,a?`text-foreground`:`text-muted-foreground hover:text-foreground`),children:[e(r.labelKey),a&&(0,Q.jsx)(`span`,{"aria-hidden":`true`,className:`absolute bottom-0 left-0 right-0 h-0.5 bg-primary`})]},r.id)})}),(0,Q.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:[(0,Q.jsx)(`div`,{id:`sdd-hub-panel-project`,role:`tabpanel`,"aria-labelledby":`sdd-hub-tab-project`,hidden:t!==`project`,className:`h-full overflow-y-auto overscroll-contain`,children:(0,Q.jsx)(Ne,{onClose:a,onRunStarted:o})}),(0,Q.jsx)(`div`,{id:`sdd-hub-panel-board`,role:`tabpanel`,"aria-labelledby":`sdd-hub-tab-board`,hidden:t!==`board`,className:`h-full overflow-y-auto overscroll-contain`,children:(0,Q.jsx)(De,{onClose:a})}),(0,Q.jsx)(`div`,{id:`sdd-hub-panel-specs`,role:`tabpanel`,"aria-labelledby":`sdd-hub-tab-specs`,hidden:t!==`specs`,className:`h-full overflow-y-auto overscroll-contain`,children:(0,Q.jsx)(_e,{onClose:a,onRunStarted:o})})]})]})}export{Ie as SddHub};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{Ai as t,Ar as n,Ca as r,Oi as i,Si as a,Ti as o,Wn as s,Wr as c,Yt as l,at as u,dr as d,et as f,fa as p,fn as m,ha as h,hi as g,hn as _,ii as v,it as y,kt as b,mi as x,nt as ee,on as te,rt as ne,sn as S,va as C,vt as w,xa as T,xt as E}from"./vendor-BTDGplXK.js";import"./i18n-DOuSY1L8.js";import{n as D}from"./ui-store-C-oyG_br.js";import{t as re}from"./useWebSocket-BTXT0rOW.js";import{t as O}from"./utils-DxDx8yib.js";import{t as k}from"./session-store-D4JWBP5w.js";import{M as A,d as j}from"./stores-CpZiOiOP.js";import{D as M,E as N,O as P,S as F,T as I,c as L,v as ie}from"./index-DxZTscTk.js";var R=e(r(),1),z=f(),ae=10,oe=20,B=e=>{if(!e)return 0;let t=Date.parse(e);return Number.isNaN(t)?0:t},V=e=>(e.iterationCount??0)+(e.toolCallCount??0)+(e.fileChangeCount??0),se=e=>{let t=Date.parse(e);if(Number.isNaN(t))return``;let n=Math.max(0,Date.now()-t);if(n<6e4)return T.t(`common:time.justNow`);if(n<36e5)return T.t(`common:time.minutesAgo`,{count:Math.floor(n/6e4)});if(n<864e5)return T.t(`common:time.hoursAgo`,{count:Math.floor(n/36e5)});let r=Math.floor(n/864e5);return r<7?T.t(`common:time.daysAgo`,{count:r}):new Date(t).toLocaleDateString()},H=e=>e.lastActivityAt??e.endedAt??e.startedAt;function ce(e){let t=B(e.startedAt);if(!t)return``;let n=e.isCurrent?Date.now():B(e.endedAt)||t,r=Math.max(0,Math.floor((n-t)/6e4));if(r<1)return`<1m`;if(r<60)return`${r}m`;let i=Math.floor(r/60);return i<24?`${i}h ${r%60}m`:`${Math.floor(i/24)}d ${i%24}h`}function U(e){return new Intl.NumberFormat(void 0,{notation:e>=1e3?`compact`:`standard`,maximumFractionDigits:1}).format(e)}function le(e){return e.filter(e=>e.tokenTotal===0&&!e.isCurrent).map(e=>e.id)}function ue(e,t){let n=t.query.trim().toLocaleLowerCase(),r=new Set(t.favoriteIds);return[...e.filter(e=>{if(!(!n||[e.name,e.title,e.lastUserMessage,e.model,e.provider,e.id,...Object.keys(e.toolBreakdown??{})].some(e=>e?.toLocaleLowerCase().includes(n))))return!1;switch(t.filter){case`favorites`:return r.has(e.id);case`active`:return e.isCurrent;case`completed`:return!e.isCurrent&&(e.outcome===`completed`||e.outcome===void 0&&!!e.endedAt);case`issues`:return e.outcome===`error`||e.outcome===`timeout`||e.outcome===`aborted`||(e.toolErrorCount??0)>0;default:return!0}})].sort((e,n)=>{if(t.sort===`tokens`&&n.tokenTotal!==e.tokenTotal)return n.tokenTotal-e.tokenTotal;if(t.sort===`activity`){let t=V(n)-V(e);if(t!==0)return t}return B(H(n))-B(H(e))})}function de(e,t,n=Date.now()){let r=new Date(n);r.setHours(0,0,0,0);let i=r.getTime(),a=i-864e5,o=i-6*864e5,s=new Set(t),c=e.filter(e=>s.has(e.id)),l={today:[],yesterday:[],thisWeek:[],earlier:[]};for(let t of e){if(s.has(t.id))continue;let e=B(H(t));e>=i?l.today.push(t):e>=a?l.yesterday.push(t):e>=o?l.thisWeek.push(t):l.earlier.push(t)}let u=[];c.length>0&&u.push({label:`favorites`,rows:c,favorite:!0});for(let e of[`today`,`yesterday`,`thisWeek`,`earlier`])l[e].length>0&&u.push({label:e,rows:l[e]});return u}function fe(e){return e.reduce((e,t)=>({sessions:e.sessions+1,active:e.active+ +!!t.isCurrent,tokens:e.tokens+t.tokenTotal,tools:e.tools+(t.toolCallCount??0),files:e.files+(t.fileChangeCount??0),errors:e.errors+(t.toolErrorCount??0)+ +(t.outcome===`error`)}),{sessions:0,active:0,tokens:0,tools:0,files:0,errors:0})}function pe(e){if(e.isCurrent)return{icon:p,label:`active`,defaultLabel:`Active`,className:`text-primary`};switch(e.outcome){case`completed`:return{icon:i,label:`completed`,defaultLabel:`Completed`,className:`text-success`};case`error`:return{icon:w,label:`error`,defaultLabel:`Error`,className:`text-destructive`};case`timeout`:return{icon:g,label:`timeout`,defaultLabel:`Timed out`,className:`text-warning`};case`aborted`:return{icon:a,label:`aborted`,defaultLabel:`Aborted`,className:`text-muted-foreground`};default:return e.endedAt?{icon:i,label:`completed`,defaultLabel:`Completed`,className:`text-success`}:{icon:d,label:`saved`,defaultLabel:`Saved session`,className:`text-muted-foreground`}}}function me({stats:e}){let{t}=C();return(0,z.jsx)(`div`,{className:`grid grid-cols-2 border-b border-border/75 bg-card md:grid-cols-5`,children:[{label:t(`activity:sessions.stats.sessions`,{defaultValue:`Sessions`}),value:e.sessions,icon:d},{label:t(`activity:sessions.stats.tokens`,{defaultValue:`Tokens`}),value:e.tokens,icon:p},{label:t(`activity:sessions.stats.tools`,{defaultValue:`Tool calls`}),value:e.tools,icon:ne},{label:t(`activity:sessions.stats.files`,{defaultValue:`Files changed`}),value:e.files,icon:c},{label:t(`activity:sessions.stats.errors`,{defaultValue:`Errors`}),value:e.errors,icon:w}].map(e=>{let t=e.icon;return(0,z.jsxs)(`div`,{className:`border-b border-r border-border/75 px-4 py-3 md:border-b-0`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-[0.12em] text-muted-foreground`,children:[(0,z.jsx)(t,{className:`h-3 w-3`}),e.label]}),(0,z.jsx)(`div`,{className:`mt-1 font-mono text-xl font-semibold tabular-nums`,children:U(e.value)})]},e.label)})})}function W({historyQuery:e,setHistoryQuery:t,historyEntries:n,historyLoading:r,historyError:i,wsConnected:a,listSessions:o,resumeSession:u,deleteSession:f,renameSession:p,variant:h=`sidebar`}){let{t:g}=C(),v=D(e=>e.favoriteSessionIds),y=D(e=>e.toggleFavoriteSession),x=D(e=>e.sessionNicknames),S=D(e=>e.setSessionNickname),[T,re]=(0,R.useState)(`all`),[k,A]=(0,R.useState)(`recent`),[j,M]=(0,R.useState)(null),[N,P]=(0,R.useState)(``),[I,L]=(0,R.useState)(null),[B,V]=(0,R.useState)(1),W=(0,R.useRef)(null),G=(0,R.useRef)(null),K=h===`workspace`,q=(0,R.useCallback)(e=>e.name||x[e.id]||e.title||g(`activity:sessions.empty`),[x,g]),J=(0,R.useCallback)(e=>{M(e.id),P(e.name??x[e.id]??e.title??``)},[x]),Y=(0,R.useCallback)(e=>{M(null),S(e,N),p(e,N)},[N,p,S]);(0,R.useEffect)(()=>{I&&n.some(e=>e.id===I&&e.isCurrent)&&(L(null),W.current&&clearTimeout(W.current))},[n,I]),(0,R.useEffect)(()=>{j&&(G.current?.focus(),G.current?.select())},[j]),(0,R.useEffect)(()=>()=>{W.current&&clearTimeout(W.current)},[]);let X=(0,R.useCallback)(e=>{L(e),u(e),W.current&&clearTimeout(W.current),W.current=setTimeout(()=>L(null),1e4)},[u]),Z=(0,R.useMemo)(()=>le(n),[n]),Q=(0,R.useMemo)(()=>ue(n,{query:e,filter:T,sort:k,favoriteIds:v}),[v,T,n,e,k]),$=K?oe:ae,he=(0,R.useMemo)(()=>Q.slice((B-1)*$,B*$),[B,$,Q]),ge=(0,R.useMemo)(()=>de(he,v),[v,he]),_e=(0,R.useMemo)(()=>fe(n),[n]);(0,R.useEffect)(()=>{V(1)},[T,e,k]),(0,R.useEffect)(()=>{let e=Math.max(1,Math.ceil(Q.length/$));B>e&&V(e)},[B,$,Q.length]);let ve=(0,R.useCallback)(async()=>{if(Z.length!==0&&await ie({title:g(`activity:sessions.deleteEmptyTitle`,{count:Z.length}),message:g(`activity:sessions.deleteEmptyConfirmBody`),confirmLabel:g(`common:action.delete`),danger:!0}))for(let e of Z)f(e)},[f,Z,g]),ye=[{id:`all`,label:g(`activity:sessions.filters.all`,{defaultValue:`All`})},{id:`favorites`,label:g(`activity:sessions.filters.favorites`,{defaultValue:`Pinned`})},{id:`active`,label:g(`activity:sessions.filters.active`,{defaultValue:`Active`})},{id:`completed`,label:g(`activity:sessions.filters.completed`,{defaultValue:`Completed`})},{id:`issues`,label:g(`activity:sessions.filters.issues`,{defaultValue:`Issues`})}];return(0,z.jsxs)(`div`,{className:O(`flex min-h-0 min-w-0 flex-1 flex-col bg-background`,K&&`h-full`),"data-history-variant":h,children:[K?(0,z.jsx)(me,{stats:_e}):null,(0,z.jsxs)(`div`,{className:O(`border-b border-border/75 bg-card`,K?`px-4 py-3`:`px-3 py-2`),children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`div`,{className:`text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:g(`activity:sessions.recentSessions`)}),K?(0,z.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:g(`activity:sessions.workspaceHint`,{defaultValue:`Search, inspect, pin and resume every project conversation.`})}):null]}),(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center border border-border/75`,children:[Z.length>0?(0,z.jsxs)(`button`,{type:`button`,className:`inline-flex h-8 items-center justify-center gap-1 border-r border-border/75 px-2 text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive disabled:opacity-40`,onClick:ve,disabled:!a,title:g(`activity:sessions.deleteEmptyTitle`,{count:Z.length}),children:[(0,z.jsx)(E,{className:`h-3.5 w-3.5`}),K?(0,z.jsx)(`span`,{className:`text-[10px]`,children:Z.length}):null]}):null,(0,z.jsx)(`button`,{type:`button`,className:`inline-flex h-8 w-8 items-center justify-center text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:opacity-40`,onClick:()=>o(200),disabled:!a,title:g(`common:action.refresh`),children:r?(0,z.jsx)(s,{className:`h-3.5 w-3.5 animate-spin`}):(0,z.jsx)(te,{className:`h-3.5 w-3.5`})})]})]}),(0,z.jsxs)(`div`,{className:O(`grid gap-2`,K?`mt-3 lg:grid-cols-[minmax(18rem,1fr)_auto_auto]`:`mt-2`),children:[(0,z.jsxs)(`div`,{className:`relative min-w-0`,children:[(0,z.jsx)(l,{className:`pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground`}),(0,z.jsx)(`input`,{type:`search`,value:e,onChange:e=>t(e.target.value),placeholder:g(`activity:sessions.filterPlaceholder`),"aria-label":g(`activity:sessions.filterPlaceholder`),className:`h-9 w-full border border-border/75 bg-background pl-8 pr-8 text-xs outline-none transition-colors placeholder:text-muted-foreground/70 focus:border-primary focus:ring-1 focus:ring-primary`}),e?(0,z.jsx)(`button`,{type:`button`,onClick:()=>t(``),className:`absolute right-0 top-0 inline-flex h-9 w-8 items-center justify-center text-muted-foreground hover:text-foreground`,title:g(`activity:sessions.clearFilter`),children:(0,z.jsx)(ee,{className:`h-3.5 w-3.5`})}):null]}),(0,z.jsxs)(`fieldset`,{className:`flex min-w-0 overflow-x-auto border border-border/75`,children:[(0,z.jsx)(`legend`,{className:`sr-only`,children:`History filters`}),ye.map(e=>(0,z.jsx)(`button`,{type:`button`,onClick:()=>re(e.id),"aria-pressed":T===e.id,className:O(`h-9 shrink-0 border-r border-border/75 px-2.5 text-[10px] font-semibold uppercase tracking-[0.08em] transition-colors last:border-r-0`,T===e.id?`bg-foreground text-background`:`bg-background text-muted-foreground hover:bg-muted hover:text-foreground`),children:e.label},e.id))]}),(0,z.jsxs)(`select`,{value:k,onChange:e=>A(e.target.value),"aria-label":g(`activity:sessions.sort.label`,{defaultValue:`Sort sessions`}),className:`h-9 border border-border/75 bg-background px-2 text-[10px] font-semibold uppercase tracking-[0.08em] text-muted-foreground outline-none focus:border-primary`,children:[(0,z.jsx)(`option`,{value:`recent`,children:g(`activity:sessions.sort.recent`,{defaultValue:`Recent`})}),(0,z.jsx)(`option`,{value:`tokens`,children:g(`activity:sessions.sort.tokens`,{defaultValue:`Most tokens`})}),(0,z.jsx)(`option`,{value:`activity`,children:g(`activity:sessions.sort.activity`,{defaultValue:`Most activity`})})]})]})]}),i?(0,z.jsx)(`div`,{className:`border-b border-destructive/30 bg-destructive/5 px-4 py-2 text-xs text-destructive`,children:i}):null,(0,z.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain overflow-x-hidden [scrollbar-gutter:stable]`,children:n.length===0&&!r?(0,z.jsxs)(`div`,{className:`flex min-h-56 flex-col items-center justify-center px-4 py-10 text-center text-muted-foreground`,children:[(0,z.jsx)(d,{className:`h-9 w-9 opacity-25`}),(0,z.jsx)(`p`,{className:`mt-3 text-sm font-medium text-foreground`,children:g(`activity:sessions.noHistory`)}),(0,z.jsx)(`p`,{className:`mt-1 text-xs`,children:g(`activity:sessions.noHistoryHint`)})]}):ge.length===0?(0,z.jsxs)(`div`,{className:`flex min-h-56 flex-col items-center justify-center px-4 py-10 text-center text-muted-foreground`,children:[(0,z.jsx)(l,{className:`h-9 w-9 opacity-25`}),(0,z.jsx)(`p`,{className:`mt-3 text-sm font-medium text-foreground`,children:g(`activity:sessions.noMatches`)}),(0,z.jsx)(`p`,{className:`mt-1 text-xs`,children:g(`activity:sessions.noMatchesHint`)})]}):(0,z.jsxs)(`div`,{className:O(K?`mx-auto w-full max-w-7xl p-4 lg:p-6`:`p-2`),children:[(0,z.jsx)(`div`,{className:O(`space-y-5`,K&&`grid gap-x-5 space-y-0 xl:grid-cols-2`),children:ge.map(e=>(0,z.jsxs)(`section`,{className:`min-w-0`,children:[(0,z.jsxs)(`div`,{className:O(`sticky top-0 z-[1] flex items-center gap-1 border-b border-border/75 bg-background/95 px-1 py-2 text-[10px] font-semibold uppercase tracking-[0.14em] backdrop-blur-sm`,e.favorite?`text-warning`:`text-muted-foreground`),children:[e.favorite?(0,z.jsx)(b,{className:`h-3 w-3 fill-current`}):null,g(`activity:sessions.group.${e.label}`),(0,z.jsx)(`span`,{className:`ml-1 font-mono font-normal text-muted-foreground`,children:e.rows.length})]}),(0,z.jsx)(`div`,{className:`divide-y divide-border/75 border-x border-b border-border/75`,children:e.rows.map(e=>{let t=v.includes(e.id),n=pe(e),r=n.icon,i=j===e.id,a=I===e.id;return(0,z.jsxs)(`article`,{className:O(`group grid min-w-0 grid-cols-[minmax(0,1fr)_auto] bg-card transition-colors`,e.isCurrent?`border-l-2 border-l-primary bg-primary/5`:`border-l-2 border-l-transparent hover:bg-muted/45`),"data-session-id":e.id,children:[i?(0,z.jsxs)(`div`,{className:`min-w-0 px-3 py-3`,children:[(0,z.jsx)(`label`,{className:`block text-[10px] font-semibold uppercase tracking-[0.1em] text-muted-foreground`,htmlFor:`session-name-${e.id}`,children:g(`activity:sessions.rename`,{defaultValue:`Session name`})}),(0,z.jsx)(`input`,{ref:G,id:`session-name-${e.id}`,value:N,onChange:e=>P(e.target.value),onBlur:()=>Y(e.id),onKeyDown:t=>{t.key===`Enter`?(t.preventDefault(),Y(e.id)):t.key===`Escape`&&(t.preventDefault(),M(null))},placeholder:e.title||g(`activity:sessions.nicknamePlaceholder`),className:`mt-1 h-8 w-full border border-primary bg-background px-2 text-sm outline-none ring-1 ring-primary`})]}):(0,z.jsx)(`button`,{type:`button`,disabled:e.isCurrent||I!==null,onClick:()=>X(e.id),onDoubleClick:()=>J(e),"aria-current":e.isCurrent?`page`:void 0,className:`min-w-0 px-3 py-3 text-left outline-none focus-visible:bg-muted focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary disabled:cursor-default`,children:(0,z.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,z.jsx)(`span`,{className:O(`mt-0.5 shrink-0`,n.className),title:g(`activity:sessions.status.${n.label}`,{defaultValue:n.defaultLabel}),children:(0,z.jsx)(r,{className:O(`h-3.5 w-3.5`,e.isCurrent&&`animate-pulse`)})}),(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsx)(`div`,{className:`truncate text-sm font-semibold text-foreground`,title:q(e),children:q(e)}),(0,z.jsxs)(`div`,{className:`mt-0.5 truncate font-mono text-[10px] text-muted-foreground`,children:[e.provider,`/`,e.model]}),e.lastUserMessage?(0,z.jsx)(`div`,{className:`mt-1 truncate text-xs text-muted-foreground`,title:e.lastUserMessage,children:e.lastUserMessage}):null,(0,z.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-x-2 gap-y-1 font-mono text-[10px] text-muted-foreground`,children:[a?(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1 font-sans font-semibold text-primary`,children:[(0,z.jsx)(s,{className:`h-3 w-3 animate-spin`}),g(`activity:sessions.resuming`)]}):(0,z.jsx)(`span`,{title:new Date(H(e)).toLocaleString(),children:se(H(e))}),(0,z.jsx)(`span`,{"aria-hidden":`true`,children:`·`}),(0,z.jsx)(`span`,{children:ce(e)}),e.tokenTotal>0?(0,z.jsxs)(`span`,{children:[U(e.tokenTotal),` tok`]}):null,(e.messageCount??0)>0?(0,z.jsxs)(`span`,{children:[U(e.messageCount??0),` msg`]}):null,(e.toolCallCount??0)>0?(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,z.jsx)(ne,{className:`h-3 w-3`}),e.toolCallCount]}):null,(e.fileChangeCount??0)>0?(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,z.jsx)(c,{className:`h-3 w-3`}),e.fileChangeCount]}):null,(e.toolErrorCount??0)>0?(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-destructive`,children:[(0,z.jsx)(w,{className:`h-3 w-3`}),e.toolErrorCount]}):null]})]})]})}),(0,z.jsxs)(`div`,{className:`flex items-start gap-0.5 p-2`,children:[!e.isCurrent&&K&&!i?(0,z.jsxs)(`button`,{type:`button`,onClick:()=>X(e.id),disabled:I!==null,className:`inline-flex h-7 items-center gap-1 border border-border/75 px-2 text-[10px] font-semibold uppercase tracking-[0.08em] text-muted-foreground hover:border-primary hover:text-primary disabled:opacity-40`,title:g(`activity:sessions.resume`,{defaultValue:`Resume session`}),children:[(0,z.jsx)(m,{className:`h-3 w-3`}),g(`activity:sessions.resumeShort`,{defaultValue:`Resume`})]}):null,(0,z.jsx)(`button`,{type:`button`,onClick:()=>y(e.id),"aria-pressed":t,className:O(`inline-flex h-7 w-7 items-center justify-center transition-colors hover:bg-warning/10 hover:text-warning`,t?`text-warning`:`text-muted-foreground`),title:g(t?`activity:sessions.unfavorite`:`activity:sessions.markFavorite`),children:(0,z.jsx)(b,{className:O(`h-3.5 w-3.5`,t&&`fill-current`)})}),i?null:(0,z.jsx)(`button`,{type:`button`,onClick:()=>J(e),className:`inline-flex h-7 w-7 items-center justify-center text-muted-foreground transition-colors hover:bg-primary/10 hover:text-primary`,title:g(`activity:sessions.renameAction`,{defaultValue:`Rename`}),children:(0,z.jsx)(_,{className:`h-3.5 w-3.5`})}),e.isCurrent?null:(0,z.jsx)(`button`,{type:`button`,onClick:async()=>{await ie({title:g(`activity:sessions.deleteSessionConfirmTitle`),message:g(`activity:sessions.deleteSessionConfirmBody`,{name:q(e)}),confirmLabel:g(`common:action.delete`),danger:!0})&&f(e.id)},className:`inline-flex h-7 w-7 items-center justify-center text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,title:g(`activity:sessions.deleteSessionTitle`),children:(0,z.jsx)(E,{className:`h-3.5 w-3.5`})})]})]},e.id)})})]},e.label))}),(0,z.jsx)(F,{page:B,pageSize:$,totalItems:Q.length,onPageChange:V,compact:!K,itemLabel:`sessions`})]})})]})}var G=12;async function K(e){try{let t=await e.clone().json(),n=typeof t.error==`string`?t.error:t.message;if(typeof n==`string`&&n.trim())return n}catch{try{let t=await e.text();if(t.trim())return t.trim()}catch{}}return e.statusText||`HTTP ${e.status}`}function q(e){switch(e){case`running`:return{icon:(0,z.jsx)(p,{className:`h-3.5 w-3.5`}),cls:`text-success`};case`streaming`:return{icon:(0,z.jsx)(S,{className:`h-3.5 w-3.5`}),cls:`text-primary`};case`waiting_user`:return{icon:(0,z.jsx)(x,{className:`h-3.5 w-3.5`}),cls:`text-warning`};case`error`:return{icon:(0,z.jsx)(t,{className:`h-3.5 w-3.5`}),cls:`text-destructive`};case`idle`:return{icon:(0,z.jsx)(o,{className:`h-3.5 w-3.5`}),cls:`text-muted-foreground`};default:return{icon:(0,z.jsx)(i,{className:`h-3.5 w-3.5`}),cls:`text-muted-foreground`}}}function J(e){switch(e){case`active`:return{icon:(0,z.jsx)(y,{className:`h-3.5 w-3.5`}),cls:`text-success`,badge:`border-success/25 bg-success/8 text-success`};case`idle`:return{icon:(0,z.jsx)(u,{className:`h-3.5 w-3.5`}),cls:`text-primary`,badge:`border-primary/25 bg-primary/10 text-primary`};case`closing`:return{icon:(0,z.jsx)(x,{className:`h-3.5 w-3.5`}),cls:`text-warning`,badge:`border-warning/25 bg-warning/10 text-warning`};case`lost`:return{icon:(0,z.jsx)(u,{className:`h-3.5 w-3.5`}),cls:`text-destructive/60`,badge:`border-destructive/15 bg-destructive/5 text-destructive/70`};default:return{icon:(0,z.jsx)(u,{className:`h-3.5 w-3.5`}),cls:`text-muted-foreground`,badge:`border-border bg-muted text-muted-foreground`}}}function Y(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return`<1m`;if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d`}function X(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/1e3);if(n<10)return T.t(`common:time.justNow`);if(n<60)return T.t(`common:time.secondsAgo`,{count:n});let r=Math.floor(n/60);return r<60?T.t(`common:time.minutesAgo`,{count:r}):T.t(`common:time.hoursAgo`,{count:Math.floor(r/60)})}function Z(){let e=A(e=>e.wsConnected),t=k(e=>e.session?.id),{entries:n,loading:r,error:i}=j(h(e=>({entries:e.entries,loading:e.loading,error:e.error}))),{listSessions:a,resumeSession:o,deleteSession:s,renameSession:c}=re(),[l,u]=(0,R.useState)(``);return(0,R.useEffect)(()=>{e&&a(200)},[t,a,e]),(0,z.jsx)(W,{historyQuery:l,setHistoryQuery:u,historyEntries:n,historyLoading:r,historyError:i,wsConnected:e,listSessions:a,resumeSession:o,deleteSession:s,renameSession:c,variant:`workspace`})}function Q(){let{t:e}=C();return(0,z.jsxs)(I,{defaultValue:`history`,className:`flex h-full min-h-0 flex-col bg-background`,"data-testid":`sessions-workspace`,children:[(0,z.jsxs)(`header`,{className:`flex shrink-0 flex-col gap-3 border-b border-border/75 bg-card px-4 py-3 lg:flex-row lg:items-center lg:justify-between`,children:[(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`div`,{className:`text-[10px] font-semibold uppercase tracking-[0.16em] text-primary`,children:e(`activity:sessions.workspaceEyebrow`,{defaultValue:`Conversation control`})}),(0,z.jsx)(`h1`,{className:`mt-0.5 text-lg font-semibold tracking-tight`,children:e(`activity:sessions.workspaceTitle`,{defaultValue:`Sessions`})})]}),(0,z.jsxs)(M,{className:`h-9 min-h-9 justify-start border-border/75 bg-background p-0 shadow-none`,children:[(0,z.jsxs)(P,{value:`history`,className:`h-9 gap-1.5 border-r border-border/75 px-3 text-xs shadow-none data-[state=active]:bg-foreground data-[state=active]:text-background data-[state=active]:ring-0`,children:[(0,z.jsx)(d,{className:`h-3.5 w-3.5`}),e(`activity:sessions.tabs.history`,{defaultValue:`History`})]}),(0,z.jsxs)(P,{value:`live`,className:`h-9 gap-1.5 px-3 text-xs shadow-none data-[state=active]:bg-foreground data-[state=active]:text-background data-[state=active]:ring-0`,children:[(0,z.jsx)(S,{className:`h-3.5 w-3.5`}),e(`activity:sessions.tabs.live`,{defaultValue:`Live sessions`})]})]})]}),(0,z.jsx)(N,{value:`history`,className:`mt-0 min-h-0 flex-1 overflow-hidden ring-0`,children:(0,z.jsx)(Z,{})}),(0,z.jsx)(N,{value:`live`,className:`mt-0 min-h-0 flex-1 overflow-hidden ring-0`,children:(0,z.jsx)($,{})})]})}function $(){let{t:e}=C(),[r,i]=(0,R.useState)([]),[a,o]=(0,R.useState)(!0),[c,l]=(0,R.useState)(null),[d,f]=(0,R.useState)(1),p=L(`sessions`,!a&&!c&&r.length>0),m=(0,R.useCallback)(async()=>{try{let e=await fetch(`/api/sessions`);if(!e.ok){if(e.status===404){l(null),i([]);return}throw Error(`HTTP ${e.status}: ${await K(e)}`)}if(!(e.headers.get(`content-type`)?.toLowerCase()??``).includes(`application/json`)){l(null),i([]);return}let t=await e.json();if(!Array.isArray(t)){l(null),i([]);return}i(e=>{let n=t;if(e.length===n.length){let t=!0;for(let r=0;r<n.length;r++){let i=n[r],a=e[r];if(i.sessionId!==a.sessionId||i.status!==a.status||i.agentCount!==a.agentCount||i.startedAt!==a.startedAt){t=!1;break}}if(t)return e}return n}),l(null)}catch(e){if(e instanceof SyntaxError){l(null),i([]);return}l(e instanceof Error?e.message:String(e))}finally{o(!1)}},[]);(0,R.useEffect)(()=>{m();let e=setInterval(m,5e3);return()=>clearInterval(e)},[m]);let h=r.filter(e=>e.status===`active`).length,g=r.reduce((e,t)=>e+t.agentCount,0),_=r.slice((d-1)*G,d*G);return(0,R.useEffect)(()=>{let e=Math.max(1,Math.ceil(r.length/G));d>e&&f(e)},[d,r.length]),a?(0,z.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center bg-[hsl(var(--surface-2)/0.45)] p-4`,children:(0,z.jsxs)(`div`,{className:`ws-surface flex items-center gap-2 px-4 py-3 text-sm text-muted-foreground`,children:[(0,z.jsx)(s,{className:`h-4 w-4 animate-spin text-primary`}),e(`activity:liveSessions.loading`)]})}):c?(0,z.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center bg-[hsl(var(--surface-2)/0.45)] p-4`,children:(0,z.jsxs)(`div`,{className:`ws-surface max-w-lg p-5 text-center`,children:[(0,z.jsx)(t,{className:`mx-auto h-8 w-8 text-warning`}),(0,z.jsx)(`p`,{className:`mt-3 text-sm font-medium`,children:e(`activity:liveSessions.apiUnavailable`)}),(0,z.jsx)(`p`,{className:`mt-1 break-words text-xs text-muted-foreground`,children:c})]})}):r.length===0?(0,z.jsx)(`div`,{className:`flex h-full min-h-0 items-center justify-center bg-[hsl(var(--surface-2)/0.45)] p-4`,children:(0,z.jsxs)(`div`,{className:`ws-surface max-w-md p-6 text-center text-muted-foreground`,children:[(0,z.jsx)(u,{className:`mx-auto h-9 w-9 opacity-50`}),(0,z.jsx)(`p`,{className:`mt-3 text-sm font-medium text-foreground`,children:e(`activity:liveSessions.empty`)}),(0,z.jsx)(`p`,{className:`mt-1 text-xs`,children:e(`activity:liveSessions.autoRefresh`)})]})}):(0,z.jsx)(`div`,{ref:p,className:`h-full min-h-0 overflow-y-auto overscroll-contain bg-[hsl(var(--surface-2)/0.45)] p-4 sm:p-6`,children:(0,z.jsxs)(`div`,{className:`mx-auto flex w-full max-w-6xl flex-col gap-4`,children:[(0,z.jsx)(`header`,{className:`border border-border/70 bg-card/75 p-4`,children:(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,z.jsx)(y,{className:`h-4 w-4 text-primary`}),(0,z.jsx)(`h2`,{className:`text-base font-semibold`,children:e(`activity:liveSessions.heading`,{count:r.length})})]}),(0,z.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:e(`activity:liveSessions.autoRefresh`)})]}),(0,z.jsxs)(`div`,{className:`grid grid-cols-3 gap-2 text-center sm:min-w-[22rem]`,children:[(0,z.jsxs)(`div`,{className:`border border-border/70 bg-background/60 px-3 py-2`,children:[(0,z.jsx)(`div`,{className:`text-lg font-semibold tabular-nums`,children:r.length}),(0,z.jsx)(`div`,{className:`text-[10px] uppercase text-muted-foreground`,children:`Sessions`})]}),(0,z.jsxs)(`div`,{className:`border border-border/70 bg-background/60 px-3 py-2`,children:[(0,z.jsx)(`div`,{className:`text-lg font-semibold tabular-nums text-success`,children:h}),(0,z.jsx)(`div`,{className:`text-[10px] uppercase text-muted-foreground`,children:`Active`})]}),(0,z.jsxs)(`div`,{className:`border border-border/70 bg-background/60 px-3 py-2`,children:[(0,z.jsx)(`div`,{className:`text-lg font-semibold tabular-nums`,children:g}),(0,z.jsx)(`div`,{className:`text-[10px] uppercase text-muted-foreground`,children:`Agents`})]})]})]})}),(0,z.jsx)(`div`,{className:`grid gap-3`,children:_.map(t=>{let r=J(t.status);return(0,z.jsxs)(`article`,{className:`border border-border/70 bg-card/75 p-3 sm:p-4`,children:[(0,z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 lg:flex-row lg:items-start lg:justify-between`,children:[(0,z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,z.jsx)(`span`,{className:r.cls,children:r.icon}),(0,z.jsx)(`h3`,{className:`min-w-0 truncate text-sm font-semibold`,title:t.projectName,children:t.projectName}),(0,z.jsx)(`span`,{className:`bg-muted px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground`,children:t.projectSlug}),(0,z.jsx)(`span`,{className:`inline-flex items-center border px-1.5 py-0.5 text-[10px] font-semibold uppercase ${r.badge}`,children:t.status})]}),(0,z.jsxs)(`div`,{className:`mt-2 grid gap-1.5 text-xs text-muted-foreground md:grid-cols-[minmax(0,1fr)_auto]`,children:[(0,z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,z.jsx)(v,{className:`h-3.5 w-3.5 shrink-0`}),(0,z.jsx)(`span`,{className:`min-w-0 truncate font-mono`,title:t.workingDir,children:t.workingDir})]}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[t.gitBranch?(0,z.jsxs)(`span`,{className:`inline-flex min-w-0 max-w-full items-center gap-1 text-primary`,children:[(0,z.jsx)(n,{className:`h-3.5 w-3.5 shrink-0`}),(0,z.jsx)(`span`,{className:`truncate font-mono`,children:t.gitBranch})]}):null,(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,z.jsx)(x,{className:`h-3.5 w-3.5`}),Y(t.startedAt)]}),(0,z.jsx)(`span`,{className:`font-mono`,children:e(`activity:liveSessions.pidLabel`,{pid:t.pid})})]})]})]}),(0,z.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 text-xs sm:grid-cols-3 lg:w-64`,children:[(0,z.jsxs)(`div`,{className:`border border-border/70 bg-background/50 px-2 py-1.5`,children:[(0,z.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:`Agents`}),(0,z.jsx)(`div`,{className:`font-semibold tabular-nums`,children:t.agentCount})]}),(0,z.jsxs)(`div`,{className:`border border-border/70 bg-background/50 px-2 py-1.5`,children:[(0,z.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:`Status`}),(0,z.jsx)(`div`,{className:`truncate font-mono font-semibold`,children:t.status})]}),(0,z.jsxs)(`div`,{className:`border border-border/70 bg-background/50 px-2 py-1.5`,children:[(0,z.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:`Runtime`}),(0,z.jsx)(`div`,{className:`font-mono font-semibold`,children:Y(t.startedAt)})]})]})]}),(0,z.jsxs)(`div`,{className:`mt-3 overflow-hidden border border-border/70 bg-background/45`,children:[t.agents.length===0?(0,z.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground`,children:e(`activity:liveSessions.noAgents`)}):(0,z.jsx)(`div`,{className:`divide-y divide-border/60`,children:t.agents.slice(0,5).map(t=>{let n=q(t.status);return(0,z.jsxs)(`div`,{className:`grid min-w-0 grid-cols-[auto_minmax(0,1fr)] gap-x-2 gap-y-1 px-3 py-2 text-xs sm:grid-cols-[auto_minmax(0,1fr)_minmax(0,14rem)_auto]`,children:[(0,z.jsx)(`span`,{className:O(`mt-0.5 shrink-0`,n.cls),children:n.icon}),(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`div`,{className:`truncate font-medium`,title:t.name,children:t.name}),(0,z.jsx)(`div`,{className:`font-mono text-[10px] text-muted-foreground`,children:e(`activity:liveSessions.agentMeta`,{iter:t.iterations,tools:t.toolCalls,ago:X(t.lastActivityAt)})})]}),(0,z.jsx)(`div`,{className:`min-w-0 font-mono text-[10px] text-muted-foreground sm:text-xs`,children:t.currentTool?(0,z.jsx)(`span`,{className:`block truncate`,title:t.currentTool,children:t.currentTool}):(0,z.jsx)(`span`,{className:`text-muted-foreground/75`,children:t.status})}),(0,z.jsx)(`span`,{className:`hidden font-mono text-[10px] text-muted-foreground sm:block`,children:X(t.lastActivityAt)})]},t.id)})}),t.agents.length>5?(0,z.jsx)(`div`,{className:`border-t border-border/60 px-3 py-2 text-xs text-muted-foreground`,children:e(`activity:liveSessions.andMore`,{count:t.agents.length-5})}):null]})]},t.sessionId)})}),(0,z.jsx)(F,{page:d,pageSize:G,totalItems:r.length,onPageChange:f,itemLabel:`sessions`})]})})}export{Q as SessionsDashboard};