@wrongstack/webui 0.313.1 → 0.316.2

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 (362) hide show
  1. package/dist/assets/AgentRosterView-CESYPVXA.js +9 -0
  2. package/dist/assets/AnalyticsDashboard-zDBIqTxO.js +1 -0
  3. package/dist/assets/AudienceMemoryPanel-BnNJ0EhQ.js +3 -0
  4. package/dist/assets/ChangesView-CGwCocSR.js +1 -0
  5. package/dist/assets/ChimeraReviewsView-CFxZwJBI.js +1 -0
  6. package/dist/assets/ChronicleDashboard-DKiMK5nl.js +1 -0
  7. package/dist/assets/CodeEditor-CZcMPNTH.js +2 -0
  8. package/dist/assets/CodeMap-zPUlmh5G.js +1 -0
  9. package/dist/assets/ConfirmModal-CUGk-0lT.js +1 -0
  10. package/dist/assets/{CronJobsPanel-BzH_InFe.js → CronJobsPanel-C_wutCVP.js} +1 -1
  11. package/dist/assets/{DeadCodeScanPanel-Dj-5SAEE.js → DeadCodeScanPanel-DCCjg17Q.js} +2 -2
  12. package/dist/assets/{DebugDashboard-C-lpnxsJ.js → DebugDashboard-D-ogYAbO.js} +1 -1
  13. package/dist/assets/DesignGalleryView-CtlHZWOn.js +1 -0
  14. package/dist/assets/GoalView-Czksj2nD.js +1 -0
  15. package/dist/assets/KanbanView-C5_GD0qk.js +3 -0
  16. package/dist/assets/MailboxDetailView-2rWp3cTv.js +1 -0
  17. package/dist/assets/MemoryDrawer-D9Chtt6v.js +1 -0
  18. package/dist/assets/MemoryManager-Bj41s3KW.js +1 -0
  19. package/dist/assets/ModelPicker-vwrqLOL4.js +1 -0
  20. package/dist/assets/OfficeMapPanel-BfuePIGH.js +4 -0
  21. package/dist/assets/ProcessMonitor-CHPTCtyu.js +1 -0
  22. package/dist/assets/PromptJournalView-tOTjKpi8.js +1 -0
  23. package/dist/assets/QueuePanel-BIwoG-tG.js +1 -0
  24. package/dist/assets/RefreshDebugView-DesPEAAq.js +1 -0
  25. package/dist/assets/RequirementIntakeView-BonXC1a5.js +1 -0
  26. package/dist/assets/SageTabs-82lpgRh-.js +2 -0
  27. package/dist/assets/SddFlowGraph-CMedulJi.js +1 -0
  28. package/dist/assets/SddHub-D3Gm4Io2.js +2 -0
  29. package/dist/assets/SessionInspectView-BUs2B4mF.js +1 -0
  30. package/dist/assets/SessionList-DxQgJqgl.js +1 -0
  31. package/dist/assets/SessionsDashboard-JtwQf-N5.js +1 -0
  32. package/dist/assets/SetupScreen-XFBFjPbd.js +1 -0
  33. package/dist/assets/SkillDetailView-C_P_-783.js +3 -0
  34. package/dist/assets/{SpecsView-B9Aj1qpe.js → SpecsView-D6GqoZ2L.js} +1 -1
  35. package/dist/assets/TechStackView-BE4tdEYZ.js +2 -0
  36. package/dist/assets/TerminalPanel-BcizpYrZ.js +1 -0
  37. package/dist/assets/activity-B2_Vr2oD.js +10 -0
  38. package/dist/assets/activity-BF1idM4Y.js +10 -0
  39. package/dist/assets/activity-C-kOJZXC.js +10 -0
  40. package/dist/assets/activity-DPpMW8BU.js +10 -0
  41. package/dist/assets/activity-DYMBKGt0.js +10 -0
  42. package/dist/assets/activity-IxgYWPDt.js +10 -0
  43. package/dist/assets/activity-q85HXQNv.js +10 -0
  44. package/dist/assets/{button-Dhmop_yM.js → button-C_EYpeP-.js} +1 -1
  45. package/dist/assets/{chat-CR2B97dj.js → chat-B5a3cvps.js} +1 -1
  46. package/dist/assets/{chat-DResBrkV.js → chat-B60h8Cji.js} +1 -1
  47. package/dist/assets/{chat-BnkVCZ3Q.js → chat-BNWqeV-N.js} +1 -1
  48. package/dist/assets/chat-BlllxfpP.js +1 -0
  49. package/dist/assets/{chat-BfQBSiII.js → chat-BvKkSd09.js} +1 -1
  50. package/dist/assets/{chat-BPuAsrkF.js → chat-DTI7lNDx.js} +1 -1
  51. package/dist/assets/{chat-Di8o0wDz.js → chat-DlhXGxxi.js} +1 -1
  52. package/dist/assets/chat-store-x5w4ss_D.js +1 -0
  53. package/dist/assets/{codemap-activity-store-BWt_a7Gs.js → codemap-activity-store-ZCXcHlwd.js} +1 -1
  54. package/dist/assets/codemap-index-store-Cb5mn74P.js +1 -0
  55. package/dist/assets/{dialog-DPl7DolS.js → dialog-9eW9sG90.js} +1 -1
  56. package/dist/assets/{empty-state-IT10GzRA.js → empty-state-DJb_tw7Q.js} +1 -1
  57. package/dist/assets/i18n-DkMSw3tI.js +2 -0
  58. package/dist/assets/index-BSpLtv9S.css +1 -0
  59. package/dist/assets/index-CTyM4bm8.js +137 -0
  60. package/dist/assets/{input-C3rIQ26u.js → input-CsEvo8Oo.js} +1 -1
  61. package/dist/assets/{mailbox-store-DhAVkVJQ.js → mailbox-store-KHcrg_Fm.js} +1 -1
  62. package/dist/assets/{roster-ws-Ch6O90eT.js → roster-ws-CXnrEaEu.js} +1 -1
  63. package/dist/assets/settings-1o1gooaL.js +1 -0
  64. package/dist/assets/settings-BGvRM3vJ.js +1 -0
  65. package/dist/assets/{settings-BV1_j8_-.js → settings-BV8EFmpH.js} +1 -1
  66. package/dist/assets/settings-Ci_RMpCQ.js +1 -0
  67. package/dist/assets/settings-Cy_xp4Jt.js +1 -0
  68. package/dist/assets/settings-D-LlBmzO.js +1 -0
  69. package/dist/assets/settings-nWMBX3xS.js +1 -0
  70. package/dist/assets/{shared-BUXBOqyO.js → shared-sYlGVRJI.js} +1 -1
  71. package/dist/assets/stores-5ynEAenb.js +7 -0
  72. package/dist/assets/toasts-BsmyGP95.js +1 -0
  73. package/dist/assets/toasts-CgXHu8ZB.js +1 -0
  74. package/dist/assets/toasts-DZ6HdKgG.js +1 -0
  75. package/dist/assets/toasts-DizCJjAR.js +1 -0
  76. package/dist/assets/toasts-NC2MT4uN.js +1 -0
  77. package/dist/assets/toasts-bPl097de.js +1 -0
  78. package/dist/assets/toasts-tCVo15mP.js +1 -0
  79. package/dist/assets/ui-store-9b7zzi3V.js +1 -0
  80. package/dist/assets/useWebSocket-1kxFH7f8.js +27 -0
  81. package/dist/assets/utils-DIo8iytt.js +1 -0
  82. package/dist/assets/{vector-memory-panel-CBA4CK6N.js → vector-memory-panel-Dd3jXXYA.js} +1 -1
  83. package/dist/assets/{vendor-DZ9_OO6N.js → vendor-UFryhfbN.js} +30 -30
  84. package/dist/assets/view-navigation-ICwpL9qw.js +1 -0
  85. package/dist/assets/ws-client-Ccf_VLRQ.js +22 -0
  86. package/dist/components/AgentOfficeView/model.d.ts +4 -3
  87. package/dist/components/AgentRosterView.d.ts +8 -1
  88. package/dist/components/ChatInput/composer-button-bar.d.ts +6 -2
  89. package/dist/components/ChatInput/image-attachments.d.ts +2 -1
  90. package/dist/components/ChatInput/next-steps-helpers.d.ts +0 -16
  91. package/dist/components/ChatInput/refine-panel-host.d.ts +2 -2
  92. package/dist/components/ChatInput/session-effort-select.d.ts +16 -0
  93. package/dist/components/ChatInput/slash-commands.d.ts +2 -1
  94. package/dist/components/ChatInput/slash-routing.d.ts +8 -0
  95. package/dist/components/ChatInput/use-chat-input-mcp.d.ts +2 -1
  96. package/dist/components/ChatInput/use-paste-drop.d.ts +2 -1
  97. package/dist/components/ChatInput/use-refine-timeout.d.ts +2 -1
  98. package/dist/components/ChatInput/use-speech-recognition.d.ts +9 -0
  99. package/dist/components/ChatView/AgentTabs.d.ts +1 -1
  100. package/dist/components/ChatView/BrainDecisionCard.d.ts +9 -0
  101. package/dist/components/ChatView/ChatHeader.d.ts +3 -3
  102. package/dist/components/ChatView/ChatRowView.d.ts +3 -1
  103. package/dist/components/ChatView/ChimeraReportCard.d.ts +22 -0
  104. package/dist/components/ChatView/CouncilDecisionCard.d.ts +9 -0
  105. package/dist/components/ChatView/auto-collapse.d.ts +2 -1
  106. package/dist/components/ChatView/useChatViewState.d.ts +14 -28
  107. package/dist/components/ChatView/utils.d.ts +2 -1
  108. package/dist/components/ChimeraReviewsView.d.ts +2 -0
  109. package/dist/components/CodeMapActivityStreamPanel.d.ts +2 -1
  110. package/dist/components/CodeMapDirectoryTree.d.ts +2 -1
  111. package/dist/components/CodeMapLiveOverlay.d.ts +0 -3
  112. package/dist/components/CodeMapSelectedNodeSummary.d.ts +2 -1
  113. package/dist/components/CollabPanel.d.ts +2 -7
  114. package/dist/components/ConfirmModal.d.ts +6 -13
  115. package/dist/components/CronJobsPanel.d.ts +2 -1
  116. package/dist/components/CustomRosterPanel.d.ts +0 -1
  117. package/dist/components/DependencyGraph.d.ts +2 -1
  118. package/dist/components/FileActivityDrawer.d.ts +2 -2
  119. package/dist/components/FileExplorer/FileExplorerModals.d.ts +11 -6
  120. package/dist/components/FileExplorer/TreeRow.d.ts +2 -6
  121. package/dist/components/FileExplorer/tree-helpers.d.ts +7 -0
  122. package/dist/components/FleetPanel.d.ts +4 -13
  123. package/dist/components/InspectorPanel.d.ts +6 -1
  124. package/dist/components/KanbanBoardSidebar.d.ts +2 -1
  125. package/dist/components/KanbanBoardState.d.ts +1 -1
  126. package/dist/components/KanbanContractGraphView.d.ts +3 -2
  127. package/dist/components/KanbanQueueHealthBar.d.ts +2 -1
  128. package/dist/components/KanbanTaskActivityRecorder.d.ts +2 -1
  129. package/dist/components/MemoryManager/MemoryDetail.d.ts +2 -1
  130. package/dist/components/MemoryManager/MemoryEditor.d.ts +2 -1
  131. package/dist/components/MemoryManager/MemoryFilters.d.ts +2 -1
  132. package/dist/components/MemoryManager/MemoryList.d.ts +2 -1
  133. package/dist/components/MemoryManager/MemorySearchBreakdown.d.ts +2 -1
  134. package/dist/components/MemoryManager/ReviewQueue.d.ts +2 -1
  135. package/dist/components/MemoryManager/SageTabs.d.ts +2 -1
  136. package/dist/components/MemoryManager/shared.d.ts +0 -1
  137. package/dist/components/MessageBubble/FailedRunContinue.d.ts +12 -0
  138. package/dist/components/MessageBubble/utils.d.ts +6 -0
  139. package/dist/components/ModelPickDialog.d.ts +1 -1
  140. package/dist/components/ModelSelectDialog.d.ts +4 -3
  141. package/dist/components/NextStepsBar.d.ts +1 -6
  142. package/dist/components/NotificationMenu.d.ts +6 -0
  143. package/dist/components/OfficeMapCanvas/edges.d.ts +0 -6
  144. package/dist/components/OfficeMapCanvas/nodes.d.ts +0 -32
  145. package/dist/components/OfficeMapCanvas/use-recently-finished.d.ts +2 -1
  146. package/dist/components/OfficeMapCanvas/utils.d.ts +4 -10
  147. package/dist/components/ProcessMonitor.d.ts +2 -1
  148. package/dist/components/ProviderWaitingRoom.d.ts +8 -0
  149. package/dist/components/QueuePanel.d.ts +1 -1
  150. package/dist/components/QuickModelSwitcher.filter.d.ts +23 -7
  151. package/dist/components/RestoreTabsModal.d.ts +20 -0
  152. package/dist/components/SddFlowGraph.d.ts +3 -2
  153. package/dist/components/SessionTabBar/TabMap.d.ts +19 -0
  154. package/dist/components/SessionTabBar/summaries.d.ts +39 -0
  155. package/dist/components/SessionTabBar.d.ts +14 -0
  156. package/dist/components/SettingsPanel/ClearAllowlistDialog.d.ts +2 -1
  157. package/dist/components/SettingsPanel/ModelCatalogPicker.d.ts +2 -14
  158. package/dist/components/SettingsPanel/ModelEffortSelect.d.ts +12 -0
  159. package/dist/components/SettingsPanel/ModelListEditor.d.ts +2 -1
  160. package/dist/components/SettingsPanel/ModelSchemaEditor.d.ts +2 -1
  161. package/dist/components/SettingsPanel/ModelSection.d.ts +3 -1
  162. package/dist/components/SettingsPanel/ModelTiersSection.d.ts +7 -0
  163. package/dist/components/SettingsPanel/OAuthLoginSection.d.ts +2 -2
  164. package/dist/components/SettingsPanel/PluginToggleList.d.ts +3 -1
  165. package/dist/components/SettingsPanel/ProviderModelsPanel.d.ts +2 -1
  166. package/dist/components/SettingsPanel/ProviderModelsPanel.filter.d.ts +2 -1
  167. package/dist/components/SettingsPanel/ProviderSection.d.ts +2 -2
  168. package/dist/components/SettingsPanel/ToolsSection.d.ts +0 -10
  169. package/dist/components/SettingsPanel/brain-section-options.d.ts +3 -10
  170. package/dist/components/SettingsPanel/contracts.d.ts +5 -3
  171. package/dist/components/SettingsPanel/sync-settings-preference.d.ts +8 -0
  172. package/dist/components/SettingsPanel/undo-send-decision.d.ts +2 -1
  173. package/dist/components/SidePanel/ChangesPanel.d.ts +0 -6
  174. package/dist/components/SidePanel/DesignStudioPanel.d.ts +7 -0
  175. package/dist/components/SidePanel/SessionList.d.ts +6 -6
  176. package/dist/components/SystemPromptDialog.d.ts +18 -0
  177. package/dist/components/TaskActivityTimeline.d.ts +3 -3
  178. package/dist/components/TaskBoard.d.ts +1 -1
  179. package/dist/components/TaskCard.d.ts +2 -7
  180. package/dist/components/TaskExecutionAttempts.d.ts +2 -1
  181. package/dist/components/TaskIntelligencePanel.d.ts +1 -1
  182. package/dist/components/TaskRiskPanel.d.ts +4 -3
  183. package/dist/components/TechStackView/DependencyDetail.d.ts +2 -1
  184. package/dist/components/TechStackView/DependencyTable.d.ts +2 -1
  185. package/dist/components/TechStackView/FindingsPanel.d.ts +2 -1
  186. package/dist/components/TechStackView/TechStackToolbar.d.ts +2 -1
  187. package/dist/components/TechStackView/shared.d.ts +5 -5
  188. package/dist/components/Toaster.d.ts +3 -31
  189. package/dist/components/ToolStatsModal.d.ts +15 -0
  190. package/dist/components/UpdateBanner.d.ts +6 -4
  191. package/dist/components/WorkbenchTopbar.d.ts +1 -3
  192. package/dist/components/agent-roster-data.d.ts +1 -1
  193. package/dist/components/agents/AgentDetailSection.d.ts +2 -1
  194. package/dist/components/agents/AgentRosterCard.d.ts +2 -1
  195. package/dist/components/agents/FleetSummaryBar.d.ts +6 -3
  196. package/dist/components/codemap-model.d.ts +3 -2
  197. package/dist/components/ui/PickerCardList.d.ts +3 -2
  198. package/dist/components/ui/badge.d.ts +2 -2
  199. package/dist/components/ui/button.d.ts +2 -2
  200. package/dist/components/ui/concurrency-gauge.d.ts +2 -1
  201. package/dist/components/ui/dialog.d.ts +5 -5
  202. package/dist/components/ui/dropdown-menu.d.ts +8 -8
  203. package/dist/components/ui/event-timeline.d.ts +2 -1
  204. package/dist/components/ui/fleet-agent-row.d.ts +2 -7
  205. package/dist/components/ui/scroll-area.d.ts +2 -2
  206. package/dist/components/ui/sheet.d.ts +2 -2
  207. package/dist/components/ui/sparkline.d.ts +2 -1
  208. package/dist/components/vector-memory-panel/model.d.ts +2 -7
  209. package/dist/hooks/index.d.ts +1 -0
  210. package/dist/hooks/useDesktopBridge.d.ts +2 -1
  211. package/dist/hooks/useF5Resilience.d.ts +0 -14
  212. package/dist/hooks/useFleetPolling.d.ts +2 -1
  213. package/dist/hooks/useGlobalKeyboardShortcuts.d.ts +4 -1
  214. package/dist/hooks/useIntegrationStatus.d.ts +10 -0
  215. package/dist/hooks/useKanbanMeta.d.ts +4 -3
  216. package/dist/hooks/useLiveContextDebug.d.ts +4 -3
  217. package/dist/hooks/useMemoryForFile.d.ts +3 -2
  218. package/dist/hooks/usePagination.d.ts +2 -1
  219. package/dist/hooks/useProviderModels.d.ts +1 -0
  220. package/dist/hooks/useSessionSubscription.d.ts +15 -0
  221. package/dist/hooks/useViewport.d.ts +2 -3
  222. package/dist/hooks/useWebSocket.d.ts +6 -1
  223. package/dist/hooks/ws-handlers/chat-handlers.d.ts +22 -10
  224. package/dist/hooks/ws-handlers/coordinator-handlers.d.ts +7 -0
  225. package/dist/hooks/ws-handlers/files-mailbox-handlers.d.ts +1 -3
  226. package/dist/hooks/ws-handlers/misc-handlers.d.ts +22 -0
  227. package/dist/hooks/ws-handlers/session-context-handlers.d.ts +24 -2
  228. package/dist/hooks/ws-handlers/session-execution-handlers.d.ts +12 -0
  229. package/dist/hooks/ws-handlers/session-handlers.d.ts +3 -3
  230. package/dist/hooks/ws-handlers/session-replay-handlers.d.ts +31 -2
  231. package/dist/hooks/ws-handlers/techstack-handlers.d.ts +0 -3
  232. package/dist/index.html +30 -26
  233. package/dist/index.js +77572 -66789
  234. package/dist/lib/agent-office.d.ts +3 -3
  235. package/dist/lib/agent-session.d.ts +19 -0
  236. package/dist/lib/agent-status.d.ts +5 -4
  237. package/dist/lib/completion.d.ts +3 -2
  238. package/dist/lib/delegate-format.d.ts +33 -0
  239. package/dist/lib/favicon.d.ts +2 -1
  240. package/dist/lib/kanban-verification.d.ts +3 -2
  241. package/dist/lib/model-matrix-routes.d.ts +3 -3
  242. package/dist/lib/plugin-enablement.d.ts +1 -1
  243. package/dist/lib/reasoning-effort.d.ts +76 -0
  244. package/dist/lib/sdd-theme.d.ts +4 -3
  245. package/dist/lib/task-brief-preview.d.ts +5 -0
  246. package/dist/lib/terminal-dock.d.ts +0 -1
  247. package/dist/lib/view-navigation.d.ts +2 -2
  248. package/dist/lib/ws-client-actions.d.ts +1 -0
  249. package/dist/lib/ws-client-domain-methods.d.ts +45 -5
  250. package/dist/lib/ws-client-utils.d.ts +33 -0
  251. package/dist/lib/ws-client.d.ts +135 -6
  252. package/dist/manifest.json +17 -0
  253. package/dist/protocol-compatibility.d.ts +0 -10
  254. package/dist/stores/auto-submit-streak.d.ts +3 -1
  255. package/dist/stores/chat-lanes.d.ts +279 -0
  256. package/dist/stores/chat-retention.d.ts +2 -4
  257. package/dist/stores/chat-store-types.d.ts +1 -0
  258. package/dist/stores/chat-store.d.ts +46 -25
  259. package/dist/stores/chimera-hub-store.d.ts +140 -0
  260. package/dist/stores/chimera-reports-store.d.ts +45 -0
  261. package/dist/stores/codemap-activity-store.d.ts +4 -4
  262. package/dist/stores/context-editor-store.d.ts +4 -5
  263. package/dist/stores/coordinator-monitor-store.d.ts +3 -2
  264. package/dist/stores/council-log-store.d.ts +6 -20
  265. package/dist/stores/file-store.d.ts +32 -13
  266. package/dist/stores/fleet-store.d.ts +49 -5
  267. package/dist/stores/git-changes-store.d.ts +25 -1
  268. package/dist/stores/goal-run-store.d.ts +2 -2
  269. package/dist/stores/history-store.d.ts +11 -0
  270. package/dist/stores/index.d.ts +17 -9
  271. package/dist/stores/local-prefs.d.ts +87 -0
  272. package/dist/stores/mailbox-store.d.ts +2 -2
  273. package/dist/stores/memory-injector-store.d.ts +2 -2
  274. package/dist/stores/memory-lifecycle-store.d.ts +6 -2
  275. package/dist/stores/monitor-store.d.ts +3 -2
  276. package/dist/stores/notification-store.d.ts +141 -0
  277. package/dist/stores/provider-status-store.d.ts +19 -0
  278. package/dist/stores/restore-tabs-store.d.ts +29 -0
  279. package/dist/stores/resume-progress-store.d.ts +58 -0
  280. package/dist/stores/session-inspect-store.d.ts +1 -1
  281. package/dist/stores/session-lanes.d.ts +242 -0
  282. package/dist/stores/session-scoped-store.d.ts +56 -0
  283. package/dist/stores/session-store.d.ts +97 -154
  284. package/dist/stores/session-tab-store.d.ts +197 -0
  285. package/dist/stores/side-effect-store.d.ts +9 -1
  286. package/dist/stores/system-prompt-store.d.ts +48 -0
  287. package/dist/stores/tool-stats-store.d.ts +52 -0
  288. package/dist/stores/types.d.ts +81 -4
  289. package/dist/stores/ui-store.d.ts +113 -11
  290. package/dist/types/brain.d.ts +17 -16
  291. package/dist/types/chronicle.d.ts +3 -2
  292. package/dist/types/client-message.d.ts +139 -23
  293. package/dist/types/collab.d.ts +0 -2
  294. package/dist/types/protocol-core.d.ts +62 -6
  295. package/dist/types/server-message.d.ts +204 -3
  296. package/dist/types/skills-design.d.ts +2 -1
  297. package/package.json +11 -11
  298. package/dist/assets/AgentRosterView-p5iiedCA.js +0 -9
  299. package/dist/assets/AnalyticsDashboard-B0sbSAxw.js +0 -1
  300. package/dist/assets/AudienceMemoryPanel-DcDONq7t.js +0 -3
  301. package/dist/assets/ChangesView-CD3JR3qY.js +0 -1
  302. package/dist/assets/ChronicleDashboard-3tJUiU7K.js +0 -1
  303. package/dist/assets/CodeEditor-0RJa9mSq.js +0 -2
  304. package/dist/assets/CodeMap-BvqQN6MG.js +0 -1
  305. package/dist/assets/ConfirmModal-CRSE2t_c.js +0 -1
  306. package/dist/assets/DesignGalleryView-BKl6Ce71.js +0 -1
  307. package/dist/assets/GoalView-Db55m-Nq.js +0 -1
  308. package/dist/assets/KanbanView-BQ7duNsz.js +0 -3
  309. package/dist/assets/MailboxDetailView-CgHzqllF.js +0 -1
  310. package/dist/assets/MemoryDrawer-BNTsi4jl.js +0 -1
  311. package/dist/assets/MemoryManager-B4NAvfYx.js +0 -1
  312. package/dist/assets/ModelPicker-BtK3pwfC.js +0 -1
  313. package/dist/assets/OfficeMapPanel-Bk9q12hP.js +0 -4
  314. package/dist/assets/ProcessMonitor-BTndLGIV.js +0 -1
  315. package/dist/assets/PromptJournalView-DbwN6AWe.js +0 -1
  316. package/dist/assets/QueuePanel-Cb1mIIuO.js +0 -1
  317. package/dist/assets/RefreshDebugView-CzGncYqB.js +0 -1
  318. package/dist/assets/RequirementIntakeView-BgKJbUlD.js +0 -1
  319. package/dist/assets/SageTabs-mB6lxkdD.js +0 -2
  320. package/dist/assets/SddFlowGraph-C484p5L9.js +0 -1
  321. package/dist/assets/SddHub-DsD8ORZo.js +0 -2
  322. package/dist/assets/SessionInspectView-DtM6MBbL.js +0 -1
  323. package/dist/assets/SessionList-CCaEa3iW.js +0 -1
  324. package/dist/assets/SessionsDashboard-CxatSEv6.js +0 -1
  325. package/dist/assets/SetupScreen-CBkuOnoN.js +0 -1
  326. package/dist/assets/SkillDetailView-DKVIAnwb.js +0 -3
  327. package/dist/assets/TechStackView-B6WDU-tt.js +0 -2
  328. package/dist/assets/TerminalPanel-Dfkt3xtA.js +0 -1
  329. package/dist/assets/Toaster-CcgCyzaU.js +0 -1
  330. package/dist/assets/activity-BA8C9ueU.js +0 -9
  331. package/dist/assets/activity-BYnOci5N.js +0 -9
  332. package/dist/assets/activity-COQ9xSFu.js +0 -9
  333. package/dist/assets/activity-CuJqhGz7.js +0 -9
  334. package/dist/assets/activity-D3ZccGOh.js +0 -9
  335. package/dist/assets/activity-YMES6OPI.js +0 -9
  336. package/dist/assets/activity-zlMMaNE1.js +0 -9
  337. package/dist/assets/chat-CzaGXz_W.js +0 -1
  338. package/dist/assets/chat-store-BiEXyguk.js +0 -17
  339. package/dist/assets/codemap-index-store-CDhApwWQ.js +0 -1
  340. package/dist/assets/i18n-BeHaHx3x.js +0 -2
  341. package/dist/assets/index-B8J_xxU5.css +0 -1
  342. package/dist/assets/index-BLI23QVE.js +0 -134
  343. package/dist/assets/session-store-CKpAwNIm.js +0 -1
  344. package/dist/assets/settings-BNbqEBSr.js +0 -1
  345. package/dist/assets/settings-BsZgLIo2.js +0 -1
  346. package/dist/assets/settings-C3OnmFrY.js +0 -1
  347. package/dist/assets/settings-C3bNf1Bx.js +0 -1
  348. package/dist/assets/settings-C9FOpDBt.js +0 -1
  349. package/dist/assets/settings-oeXlO4HA.js +0 -1
  350. package/dist/assets/stores-BskP1BVl.js +0 -7
  351. package/dist/assets/toasts-BCDGDcyq.js +0 -1
  352. package/dist/assets/toasts-BwQJwYLe.js +0 -1
  353. package/dist/assets/toasts-CFzweRH5.js +0 -1
  354. package/dist/assets/toasts-DDYQsJV8.js +0 -1
  355. package/dist/assets/toasts-DOfXc7Rt.js +0 -1
  356. package/dist/assets/toasts-Dm12Nq8t.js +0 -1
  357. package/dist/assets/toasts-frBt6fvE.js +0 -1
  358. package/dist/assets/ui-store-3HoYrTu5.js +0 -1
  359. package/dist/assets/useWebSocket-6jp275vG.js +0 -29
  360. package/dist/assets/utils-BecmXwgG.js +0 -1
  361. package/dist/assets/view-navigation-C1UDTk5R.js +0 -1
  362. package/dist/assets/ws-client-C6jAU4nL.js +0 -1
@@ -0,0 +1 @@
1
+ var e={saved:`Sitzung gespeichert`,loaded:`Sitzung geladen`,deleted:`Sitzung gelöscht`},t={generic:`Etwas ist schiefgelaufen.`,connectionLost:`Verbindung verloren. Verbindung wird wiederhergestellt…`,reconnected:`Verbindung wiederhergestellt.`},n={title:`Benachrichtigungen`,unreadCount:`{{count}} ungelesen`,allRead:`Alles gelesen`,markAllRead:`Alle als gelesen markieren`,clearAll:`Alle löschen`,tabAll:`Alle`,tabUnread:`Ungelesen`,empty:`Keine Benachrichtigungen`,emptyHint:`Benachrichtigungen und Systemmeldungen werden hier angezeigt.`,markAsRead:`Als gelesen markieren`,remove:`Benachrichtigung entfernen`,justNow:`Gerade eben`,secondsAgo:`vor {{count}} s`,minutesAgo:`vor {{count}} Min.`,hoursAgo:`vor {{count}} Std.`,daysAgo:`vor {{count}} T.`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
@@ -0,0 +1 @@
1
+ var e={saved:`Session enregistrée`,loaded:`Session chargée`,deleted:`Session supprimée`},t={generic:`Une erreur est survenue.`,connectionLost:`Connexion perdue. Reconnexion…`,reconnected:`Reconnecté.`},n={title:`Notifications`,unreadCount:`{{count}} non lue(s)`,allRead:`Tout est à jour`,markAllRead:`Tout marquer comme lu`,clearAll:`Tout effacer`,tabAll:`Toutes`,tabUnread:`Non lues`,empty:`Aucune notification`,emptyHint:`Les notifications système apparaîtront ici.`,markAsRead:`Marquer comme lu`,remove:`Supprimer la notification`,justNow:`À l'instant`,secondsAgo:`il y a {{count}} s`,minutesAgo:`il y a {{count}} min`,hoursAgo:`il y a {{count}} h`,daysAgo:`il y a {{count}} j`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
@@ -0,0 +1 @@
1
+ import{n as e}from"./rolldown-runtime-hePW80VL.js";var t=e({default:()=>a,error:()=>r,menu:()=>i,session:()=>n}),n={saved:`Session saved`,loaded:`Session loaded`,deleted:`Session deleted`},r={generic:`Something went wrong.`,connectionLost:`Connection lost. Reconnecting…`,reconnected:`Reconnected.`},i={title:`Notifications`,unreadCount:`{{count}} unread`,allRead:`All caught up`,markAllRead:`Mark all as read`,clearAll:`Clear all`,tabAll:`All`,tabUnread:`Unread`,empty:`No notifications`,emptyHint:`Toasts and system notifications will appear here.`,markAsRead:`Mark as read`,remove:`Remove notification`,justNow:`Just now`,secondsAgo:`{{count}}s ago`,minutesAgo:`{{count}}m ago`,hoursAgo:`{{count}}h ago`,daysAgo:`{{count}}d ago`},a={session:n,error:r,menu:i};export{t as n,a as t};
@@ -0,0 +1 @@
1
+ var e={saved:`Sesión guardada`,loaded:`Sesión cargada`,deleted:`Sesión eliminada`},t={generic:`Algo salió mal.`,connectionLost:`Conexión perdida. Reconectando…`,reconnected:`Reconectado.`},n={title:`Notificaciones`,unreadCount:`{{count}} sin leer`,allRead:`Todo al día`,markAllRead:`Marcar todo como leído`,clearAll:`Borrar todo`,tabAll:`Todas`,tabUnread:`Sin leer`,empty:`No hay notificaciones`,emptyHint:`Las notificaciones y avisos del sistema aparecerán aquí.`,markAsRead:`Marcar como leído`,remove:`Eliminar notificación`,justNow:`Ahora mismo`,secondsAgo:`hace {{count}} s`,minutesAgo:`hace {{count}} m`,hoursAgo:`hace {{count}} h`,daysAgo:`hace {{count}} d`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
@@ -0,0 +1 @@
1
+ var e={saved:`Sessão salva`,loaded:`Sessão carregada`,deleted:`Sessão excluída`},t={generic:`Algo deu errado.`,connectionLost:`Conexão perdida. Reconectando…`,reconnected:`Reconectado.`},n={title:`Notificações`,unreadCount:`{{count}} não lidas`,allRead:`Tudo em dia`,markAllRead:`Marcar todas como lidas`,clearAll:`Limpar tudo`,tabAll:`Todas`,tabUnread:`Não lidas`,empty:`Nenhuma notificação`,emptyHint:`As notificações do sistema aparecerão aqui.`,markAsRead:`Marcar como lida`,remove:`Remover notificação`,justNow:`Agora mesmo`,secondsAgo:`há {{count}} s`,minutesAgo:`há {{count}} min`,hoursAgo:`há {{count}} h`,daysAgo:`há {{count}} d`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
@@ -0,0 +1 @@
1
+ var e={saved:`Sessione salvata`,loaded:`Sessione caricata`,deleted:`Sessione eliminata`},t={generic:`Qualcosa è andato storto.`,connectionLost:`Connessione persa. Riconnessione…`,reconnected:`Riconnesso.`},n={title:`Notifiche`,unreadCount:`{{count}} non lette`,allRead:`Tutto in pari`,markAllRead:`Segna tutte come lette`,clearAll:`Cancella tutto`,tabAll:`Tutte`,tabUnread:`Non lette`,empty:`Nessuna notifica`,emptyHint:`Le notifiche di sistema appariranno qui.`,markAsRead:`Segna come letta`,remove:`Rimuovi notifica`,justNow:`Proprio ora`,secondsAgo:`{{count}}s fa`,minutesAgo:`{{count}} min fa`,hoursAgo:`{{count}} ore fa`,daysAgo:`{{count}} gg fa`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
@@ -0,0 +1 @@
1
+ var e={saved:`Oturum kaydedildi`,loaded:`Oturum yüklendi`,deleted:`Oturum silindi`},t={generic:`Bir şeyler ters gitti.`,connectionLost:`Bağlantı koptu. Yeniden bağlanıyor…`,reconnected:`Yeniden bağlandı.`},n={title:`Bildirimler`,unreadCount:`{{count}} okunmamış`,allRead:`Tümü okundu`,markAllRead:`Tümünü okundu işaretle`,clearAll:`Tümünü temizle`,tabAll:`Tümü`,tabUnread:`Okunmamış`,empty:`Henüz bildirim yok`,emptyHint:`Sistem bildirimleri ve uyarılar burada listelenir.`,markAsRead:`Okundu olarak işaretle`,remove:`Bildirimi kaldır`,justNow:`Az önce`,secondsAgo:`{{count}} sn önce`,minutesAgo:`{{count}} dk önce`,hoursAgo:`{{count}} sa önce`,daysAgo:`{{count}} gün önce`},r={session:e,error:t,menu:n};export{r as default,t as error,n as menu,e as session};
@@ -0,0 +1 @@
1
+ import{Xa as e,Za as t}from"./vendor-UFryhfbN.js";var n=2048,r=2097152,i=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),a=class extends Error{reason;constructor(e,t){super(e),this.reason=t,this.name=`ImageAttachmentError`}};function o(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function s(e){let t=e.indexOf(`,`),n=t>=0?e.length-t-1:e.length;return Math.floor(n*3/4)}function c(e){return/^data:([^;,]+)/.exec(e)?.[1]??`image/png`}async function l(e){try{return await createImageBitmap(e)}catch{let t=URL.createObjectURL(e);try{return await new Promise((e,n)=>{let r=new Image;r.onload=()=>e(r),r.onerror=()=>n(Error(`image decode failed`)),r.src=t})}finally{URL.revokeObjectURL(t)}}}function u(e,t,n,r,i){let o=document.createElement(`canvas`);o.width=t,o.height=n;let s=o.getContext(`2d`);if(!s)throw new a(`canvas 2d context unavailable`,`decode_failed`);s.drawImage(e,0,0,t,n);let c=o.toDataURL(`image/webp`,i);return c.startsWith(`data:image/webp`)?c:r?o.toDataURL(`image/png`):o.toDataURL(`image/jpeg`,i)}var d=0;function f(){return d+=1,`img_${Date.now()}_${d}`}async function p(e){let t=i.has(e.type),d;try{d=await l(e)}catch{throw new a(`Could not decode image "${e.name}"`,`decode_failed`)}let p=d.width,m=d.height,h=Math.max(p,m);if(!(!t||h>n||e.size>r)){let t=await o(e);return{id:f(),dataUrl:t,mediaType:e.type,bytes:s(t),name:e.name||void 0,width:p,height:m}}let g=e.type!==`image/jpeg`,_=Math.min(1,n/h),v=.85,y=u(d,Math.max(1,Math.round(p*_)),Math.max(1,Math.round(m*_)),g,v);s(y)>4194304&&(_=Math.min(_,1280/h),v=.7,y=u(d,Math.max(1,Math.round(p*_)),Math.max(1,Math.round(m*_)),g,v)),`close`in d&&d.close();let b=s(y);if(b>4194304)throw new a(`Image "${e.name}" is too large after compression`,`too_large`);return{id:f(),dataUrl:y,mediaType:c(y),bytes:b,name:e.name||void 0,width:Math.max(1,Math.round(p*_)),height:Math.max(1,Math.round(m*_))}}function m(e){return e.map(e=>{let t=e.dataUrl.indexOf(`,`);return{data:t>=0?e.dataUrl.slice(t+1):e.dataUrl,mediaType:e.mediaType,...e.name?{name:e.name}:{}}})}var h=[`chat`,`agents`,`files`,`changes`,`mailbox`,`skills`,`design`];function g(e){return h.includes(e)?e:e===`context`||e===`history`||e===`sessions`||e===`projects`?`chat`:e===`worktrees`?`changes`:`chat`}var _=`chat.settings.memory.roster.context.goal.kanban.sddhub.files.changes.sessions.session-inspect.setup.skill.mailbox.debug.design-gallery.refresh-debug.analytics.codemap.techstack.chronicle.intake.deadcode.prompts.chimera`.split(`.`);function v(e){return _.includes(e)?e:`chat`}var y=[`goal`,`goal-state`,`fleet`,`work`,`worktrees`,`collab`];function b(e){return e==null||!y.includes(e)?null:e}var x=[`general`,`provider`,`connection`,`agent`,`execution`,`fallbacks`,`routing`,`fleet`,`integrations`,`chimera`,`context`,`logs`,`security`,`display`];function S(e){return x.includes(e)?e:`general`}function C(){if(typeof window>`u`)return!1;if(window.wrongstackDesktopHost)return!0;try{return new URLSearchParams(window.location.search).get(`shell`)===`desktop`}catch{return!1}}function w(e={}){return{currentView:`chat`,activeActivity:`chat`,sidebarOpen:e.sidebarOpen??!1,dockSection:null,chromeSessionId:null,chromeBySession:{},dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,subagentChatFocusBySession:{},terminalOpen:!1,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,selectedMailMessage:null,refinePanel:null,skillsState:T(),chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function T(){return{selectedSkill:null,navHistory:[],historyIndex:-1,detailOpen:!1,knownRefs:{},updateAvailableCount:0}}function E(){return{sidebarOpen:!0,activeActivity:`chat`,currentView:`chat`,inspectSessionId:null,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,promptInsertRequest:null,refinePanel:null,draftInput:``,draftImages:[],processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,terminalOpen:!1,dockSection:null,workDashboardTab:`todos`,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,agentRosterActiveTab:`live`,changesPanelTab:`changes`,dockCustomizeOpen:!1,skillsState:T(),selectedMailMessage:null,scrollPositions:{},chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function D(e){return{sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,currentView:e.currentView,inspectSessionId:e.inspectSessionId,searchOpen:e.searchOpen,searchQuery:e.searchQuery,searchActiveMessageId:e.searchActiveMessageId,scrollTarget:e.scrollTarget,modelSwitcherOpen:e.modelSwitcherOpen,promptLibraryOpen:e.promptLibraryOpen,promptInsertRequest:e.promptInsertRequest,refinePanel:e.refinePanel,draftInput:e.draftInput,draftImages:e.draftImages,processMonitorOpen:e.processMonitorOpen,queuePanelOpen:e.queuePanelOpen,cronJobsOpen:e.cronJobsOpen,sideContextBreakdownOpen:e.sideContextBreakdownOpen,terminalOpen:e.terminalOpen,dockSection:e.dockSection,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,inspectorTarget:e.inspectorTarget,inspectorFocusedAgentId:e.inspectorFocusedAgentId,agentRosterActiveTab:e.agentRosterActiveTab,changesPanelTab:e.changesPanelTab,dockCustomizeOpen:e.dockCustomizeOpen,skillsState:e.skillsState,selectedMailMessage:e.selectedMailMessage,scrollPositions:e.scrollPositions,chatSwitcherOpen:e.chatSwitcherOpen,chatCheckpointOpen:e.chatCheckpointOpen,chatMemoryPanelOpen:e.chatMemoryPanelOpen,chatContextBreakdownOpen:e.chatContextBreakdownOpen,chatContextEditorOpen:e.chatContextEditorOpen,chatToolStatsOpen:e.chatToolStatsOpen,chatInputCollapsed:e.chatInputCollapsed}}function O(e,t){return e.chromeSessionId?{chromeBySession:{...e.chromeBySession,[e.chromeSessionId]:{...D(e),...t}}}:{}}var k=t()(e(e=>({sidebarOpen:!0,activeActivity:`chat`,settingsOpen:!1,currentView:`chat`,showConfirmDialog:!1,confirmInfo:null,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,promptHistory:[],sidebarWidth:304,pinnedIds:[],compactMode:!1,modelSwitcherOpen:!1,favoriteSessionIds:[],sessionNicknames:{},fileExplorerWidth:220,refineEnabled:!0,refinePanel:null,promptLibraryOpen:!1,promptInsertRequest:null,dockSection:null,workDashboardTab:`todos`,chromeSessionId:null,chromeBySession:{},hiddenChips:[],dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,subagentChatFocusBySession:{},processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,inspectSessionId:null,terminalOpen:!1,terminalCreateNonce:0,agentRosterActiveTab:`live`,changesPanelTab:`changes`,settingsActiveTab:`general`,scrollPositions:{},draftInput:``,draftImages:[],sideContextBreakdownOpen:!1,chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1,selectedMailMessage:null,skillsState:T(),selectActivity:t=>e(e=>({activeActivity:t,...O(e,{activeActivity:t})})),toggleSidebar:()=>e(e=>{let t=!e.sidebarOpen;return{sidebarOpen:t,...O(e,{sidebarOpen:t})}}),setSidebarOpen:t=>e(e=>({sidebarOpen:t,...O(e,{sidebarOpen:t})})),setSettingsOpen:t=>e({settingsOpen:t}),setCurrentView:t=>e(e=>{let n=v(t);return{currentView:n,...O(e,{currentView:n})}}),showConfirm:t=>e({showConfirmDialog:!0,confirmInfo:t}),hideConfirm:()=>e({showConfirmDialog:!1,confirmInfo:null}),setPaletteOpen:t=>e({paletteOpen:t}),setShortcutsOpen:t=>e({shortcutsOpen:t}),setSearchOpen:t=>e(e=>({searchOpen:t,searchQuery:``,searchActiveMessageId:null,...O(e,{searchOpen:t,searchQuery:``,searchActiveMessageId:null})})),setSearchQuery:t=>e(e=>({searchQuery:t,...O(e,{searchQuery:t})})),setSearchActiveMessageId:t=>e(e=>({searchActiveMessageId:t,...O(e,{searchActiveMessageId:t})})),requestScrollToMessage:t=>e(e=>{let n={id:t,nonce:(e.scrollTarget?.nonce??0)+1};return{scrollTarget:n,...O(e,{scrollTarget:n})}}),pushPrompt:t=>e(e=>{let n=t.trim();return n?{promptHistory:[n,...e.promptHistory.filter(e=>e!==n)].slice(0,50)}:e}),setSidebarWidth:t=>e({sidebarWidth:Math.max(240,Math.min(560,Math.round(t)))}),togglePin:t=>e(e=>({pinnedIds:e.pinnedIds.includes(t)?e.pinnedIds.filter(e=>e!==t):[...e.pinnedIds,t]})),unpinAll:()=>e({pinnedIds:[]}),toggleCompactMode:()=>e(e=>({compactMode:!e.compactMode})),setModelSwitcherOpen:t=>e(e=>({modelSwitcherOpen:t,...O(e,{modelSwitcherOpen:t})})),toggleFavoriteSession:t=>e(e=>({favoriteSessionIds:e.favoriteSessionIds.includes(t)?e.favoriteSessionIds.filter(e=>e!==t):[...e.favoriteSessionIds,t]})),setSessionNickname:(t,n)=>e(e=>{let r=n.trim(),i={...e.sessionNicknames};return r?i[t]=r:delete i[t],{sessionNicknames:i}}),setFileExplorerWidth:t=>e({fileExplorerWidth:Math.max(160,Math.min(400,Math.round(t)))}),toggleRefineEnabled:()=>e(e=>({refineEnabled:!e.refineEnabled})),setRefinePanel:t=>e(e=>({refinePanel:t,...O(e,{refinePanel:t})})),setPromptLibraryOpen:t=>e(e=>({promptLibraryOpen:t,...O(e,{promptLibraryOpen:t})})),requestPromptInsert:t=>e(e=>({promptInsertRequest:t,promptLibraryOpen:!1,...O(e,{promptInsertRequest:t,promptLibraryOpen:!1})})),clearPromptInsert:()=>e(e=>({promptInsertRequest:null,...O(e,{promptInsertRequest:null})})),setDockSection:t=>e(e=>({dockSection:t,...O(e,{dockSection:t,inspectorOpen:!t&&e.inspectorOpen}),...t?{inspectorOpen:!1}:{}})),setWorkDashboardTab:t=>e(e=>({workDashboardTab:t,...O(e,{workDashboardTab:t})})),bindSessionChrome:t=>e(e=>{if(e.chromeSessionId===t)return{};let n={...e.chromeBySession};if(e.chromeSessionId){let t=D(e);n[e.chromeSessionId]=t.refinePanel?{...t,refinePanel:null,draftInput:t.refinePanel.original}:t}let r=(t?n[t]:void 0)??E();return{chromeSessionId:t,chromeBySession:n,subagentChatFocusId:t?e.subagentChatFocusBySession[t]??null:null,subagentChatFocusSessionId:t,sidebarOpen:r.sidebarOpen??E().sidebarOpen,activeActivity:r.activeActivity,currentView:r.currentView,inspectSessionId:r.inspectSessionId,searchOpen:r.searchOpen,searchQuery:r.searchQuery,searchActiveMessageId:r.searchActiveMessageId,scrollTarget:r.scrollTarget,modelSwitcherOpen:r.modelSwitcherOpen,promptLibraryOpen:r.promptLibraryOpen,promptInsertRequest:r.promptInsertRequest,refinePanel:r.refinePanel,draftInput:r.draftInput,draftImages:r.draftImages,processMonitorOpen:r.processMonitorOpen,queuePanelOpen:r.queuePanelOpen,cronJobsOpen:r.cronJobsOpen,sideContextBreakdownOpen:r.sideContextBreakdownOpen,terminalOpen:r.terminalOpen,dockSection:r.dockSection,workDashboardTab:r.workDashboardTab,inspectorOpen:r.inspectorOpen,inspectorTab:r.inspectorTab,inspectorTarget:r.inspectorTarget,inspectorFocusedAgentId:r.inspectorFocusedAgentId,agentRosterActiveTab:r.agentRosterActiveTab,changesPanelTab:r.changesPanelTab,dockCustomizeOpen:r.dockCustomizeOpen??!1,skillsState:r.skillsState??T(),selectedMailMessage:r.selectedMailMessage??null,scrollPositions:r.scrollPositions??{},chatSwitcherOpen:r.chatSwitcherOpen??!1,chatCheckpointOpen:r.chatCheckpointOpen??!1,chatMemoryPanelOpen:r.chatMemoryPanelOpen??!1,chatContextBreakdownOpen:r.chatContextBreakdownOpen??!1,chatContextEditorOpen:r.chatContextEditorOpen??!1,chatInputCollapsed:r.chatInputCollapsed??!1}}),toggleDockSection:t=>e(e=>{let n=e.dockSection===t?null:t;return{dockSection:n,...O(e,{dockSection:n,inspectorOpen:!n&&e.inspectorOpen}),...n?{inspectorOpen:!1}:{}}}),toggleChipHidden:t=>e(e=>{let n=e.hiddenChips.includes(t),r=!n&&e.dockSection===t?null:e.dockSection;return{hiddenChips:n?e.hiddenChips.filter(e=>e!==t):[...e.hiddenChips,t],dockSection:r,...O(e,{dockSection:r})}}),showDockChip:t=>e(e=>({hiddenChips:e.hiddenChips.filter(e=>e!==t)})),setDockCustomizeOpen:t=>e(e=>({dockCustomizeOpen:t,...O(e,{dockCustomizeOpen:t})})),setAgentRosterActiveTab:t=>e(e=>({agentRosterActiveTab:t,...O(e,{agentRosterActiveTab:t})})),setChangesPanelTab:t=>e(e=>({changesPanelTab:t,...O(e,{changesPanelTab:t})})),setFleetMonitorOpen:t=>e(e=>({fleetMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,...O(e,{inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setAgentsMonitorOpen:t=>e(e=>({agentsMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,...O(e,{inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setInspectorOpen:t=>e(e=>({inspectorOpen:t,...t?{dockSection:null}:{inspectorTarget:null},...O(e,{inspectorOpen:t,dockSection:t?null:e.dockSection,inspectorTarget:t?e.inspectorTarget:null})})),setInspectorTab:t=>e(e=>({inspectorTab:t,...O(e,{inspectorTab:t})})),openInspectorTarget:t=>e(e=>{let n=e.inspectorTab,r=e.inspectorFocusedAgentId;return t.kind===`fleet`?n=t.tab??`fleet`:t.kind===`agent`?(n=`agents`,r=t.agentId):t.kind===`sideEffects`?n=`sideEffects`:t.kind===`council`&&(n=`council`),{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null,...O(e,{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null})}}),closeInspector:()=>e(e=>({inspectorOpen:!1,inspectorTarget:null,...O(e,{inspectorOpen:!1,inspectorTarget:null})})),setInspectorFocusedAgentId:t=>e(e=>({inspectorFocusedAgentId:t,...O(e,{inspectorFocusedAgentId:t})})),setSubagentChatFocus:(t,n)=>e(e=>{let r=(n===``?null:n)??e.chromeSessionId??e.subagentChatFocusSessionId;return{subagentChatFocusId:t,subagentChatFocusSessionId:r??null,subagentChatFocusBySession:r?{...e.subagentChatFocusBySession,[r]:t}:e.subagentChatFocusBySession}}),forgetSession:t=>e(e=>{let n=t in e.subagentChatFocusBySession||e.subagentChatFocusSessionId===t,r=t in e.chromeBySession||e.chromeSessionId===t;if(!n&&!r)return e;let i={...e.subagentChatFocusBySession};delete i[t];let a={...e.chromeBySession};delete a[t];let o=e.subagentChatFocusSessionId===t,s=e.chromeSessionId===t;return{subagentChatFocusBySession:i,chromeBySession:a,...o?{subagentChatFocusId:null,subagentChatFocusSessionId:null}:{},...s?{chromeSessionId:null,...E()}:{}}}),toggleInspector:()=>e(e=>{let t=!e.inspectorOpen,n=t?null:e.dockSection;return{inspectorOpen:t,dockSection:n,...O(e,{inspectorOpen:t,dockSection:n})}}),setProcessMonitorOpen:t=>e(e=>({processMonitorOpen:t,...O(e,{processMonitorOpen:t})})),setQueuePanelOpen:t=>e(e=>({queuePanelOpen:t,...O(e,{queuePanelOpen:t})})),setCronJobsOpen:t=>e(e=>({cronJobsOpen:t,...O(e,{cronJobsOpen:t})})),setInspectSession:t=>e(e=>({inspectSessionId:t,currentView:`session-inspect`,...O(e,{inspectSessionId:t,currentView:`session-inspect`})})),clearInspectSession:()=>e(e=>({inspectSessionId:null,currentView:`chat`,...O(e,{inspectSessionId:null,currentView:`chat`})})),setTerminalOpen:t=>e(e=>({terminalOpen:t,...O(e,{terminalOpen:t})})),toggleTerminal:()=>e(e=>{let t=!e.terminalOpen;return{terminalOpen:t,...O(e,{terminalOpen:t})}}),requestTerminalCreate:()=>e(e=>({terminalCreateNonce:e.terminalCreateNonce+1})),setSettingsActiveTab:t=>e({settingsActiveTab:S(t)}),setScrollPosition:(t,n)=>e(e=>{let r={...e.scrollPositions,[t]:n};return{scrollPositions:r,...O(e,{scrollPositions:r})}}),setDraftInput:t=>e(e=>({draftInput:t,...O(e,{draftInput:t})})),setDraftImages:t=>e(e=>{let n=t.slice(-8);return{draftImages:n,...O(e,{draftImages:n})}}),setSideContextBreakdownOpen:t=>e(e=>({sideContextBreakdownOpen:t,...O(e,{sideContextBreakdownOpen:t})})),setChatSwitcherOpen:t=>e(e=>({chatSwitcherOpen:t,...O(e,{chatSwitcherOpen:t})})),setChatCheckpointOpen:t=>e(e=>({chatCheckpointOpen:t,...O(e,{chatCheckpointOpen:t})})),setChatMemoryPanelOpen:t=>e(e=>({chatMemoryPanelOpen:t,...O(e,{chatMemoryPanelOpen:t})})),setChatContextBreakdownOpen:t=>e(e=>({chatContextBreakdownOpen:t,...O(e,{chatContextBreakdownOpen:t})})),setChatToolStatsOpen:t=>e(e=>({chatToolStatsOpen:t,...O(e,{chatToolStatsOpen:t})})),setChatContextEditorOpen:t=>e(e=>({chatContextEditorOpen:t,...O(e,{chatContextEditorOpen:t})})),setChatInputCollapsed:t=>e(e=>({chatInputCollapsed:t,...O(e,{chatInputCollapsed:t})})),setSkillsState:t=>e(e=>({skillsState:t,...O(e,{skillsState:t})})),setSelectedMailMessage:t=>e(e=>({selectedMailMessage:t,...O(e,{selectedMailMessage:t})}))}),{name:`wrongstack-ui`,version:7,migrate:(e,t)=>{let n=e??{};return n.activeActivity=g(n.activeActivity),typeof n.sidebarWidth==`number`&&(n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth))),t<2&&(delete n.fleetDrawerOpen,delete n.agentsDrawerOpen),`currentView`in n&&(n.currentView=v(n.currentView)),`dockSection`in n&&(n.dockSection=b(n.dockSection)),`settingsActiveTab`in n&&(n.settingsActiveTab=S(n.settingsActiveTab)),t<6&&delete n.draftInput,t<7&&(delete n.chromeSessionId,delete n.chromeBySession),n},merge:(e,t)=>{let n={...t,...e??{}};return n.activeActivity=g(n.activeActivity),n.currentView=v(n.currentView),n.dockSection=b(n.dockSection),n.settingsActiveTab=S(n.settingsActiveTab),typeof n.chromeSessionId!=`string`&&(n.chromeSessionId=null),(typeof n.chromeBySession!=`object`||n.chromeBySession===null)&&(n.chromeBySession={}),n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth)),C()?{...n,...w({sidebarOpen:!1})}:n},partialize:e=>({sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,sidebarWidth:e.sidebarWidth,promptHistory:e.promptHistory,pinnedIds:e.pinnedIds,compactMode:e.compactMode,favoriteSessionIds:e.favoriteSessionIds,sessionNicknames:e.sessionNicknames,fileExplorerWidth:e.fileExplorerWidth,refineEnabled:e.refineEnabled,hiddenChips:e.hiddenChips,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,skillsState:e.skillsState,currentView:e.currentView,dockSection:e.dockSection,settingsActiveTab:e.settingsActiveTab,scrollPositions:e.scrollPositions})}));function A(e={}){k.setState(w(e))}export{m as a,p as i,k as n,a as r,A as t};
@@ -0,0 +1,27 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{$ as t,At as n,Bt as r,Ct as i,D as a,Et as o,Ft as s,H as c,Ht as l,It as u,J as d,K as f,Lt as p,Nt as m,Ot as h,Q as g,Rt as _,St as v,T as ee,Tt as te,V as y,Vt as b,X as x,Z as S,a as ne,c as C,ct as re,d as ie,dt as ae,ft as oe,g as w,gt as se,h as ce,ht as le,i as ue,j as T,jt as E,l as D,lt as O,o as k,pt as de,r as A,s as j,t as M,u as N,ut as fe,wt as pe,x as P,xt as F,y as I,zt as L}from"./ws-client-Ccf_VLRQ.js";import{ao as me,ro as R}from"./vendor-UFryhfbN.js";import{n as he,t as ge}from"./i18n-DkMSw3tI.js";import{a as _e,n as z,t as ve}from"./ui-store-9b7zzi3V.js";import{i as B,n as V}from"./codemap-activity-store-ZCXcHlwd.js";import{C as ye,S as be,a as xe,d as Se,g as Ce,h as we,i as Te,m as H,n as U,o as Ee,p as De,r as Oe,s as ke,t as W,u as Ae,x as je,y as Me}from"./stores-5ynEAenb.js";import{r as Ne}from"./mailbox-store-KHcrg_Fm.js";import{n as Pe,o as Fe}from"./view-navigation-ICwpL9qw.js";import{t as Ie}from"./codemap-index-store-Cb5mn74P.js";var G=e(me(),1);function Le(e,t){if(t)return!0;try{return new URLSearchParams(e).get(`shell`)===`desktop`}catch{return!1}}function Re(){return typeof window>`u`?!1:Le(window.location.search,!!window.wrongstackDesktopHost)}var ze=new Set([`mode_changed`,`compaction`,`checkpoint`,`skill_activated`,`skill_deactivated`,`agent_spawned`,`agent_session_linked`,`agent_stopped`,`agent_error`,`delegate_started`,`delegate_completed`,`loop_detected`,`model_switched`,`error`,`provider_retry`,`provider_error`,`message_truncated`]),Be=new Set([`checkpoint`,`agent_spawned`,`agent_session_linked`,`agent_stopped`,`agent_error`,`delegate_started`,`delegate_completed`]);new Set([...ze].filter(e=>!Be.has(e)));function Ve(e){switch(e.type){case`compaction`:{let t=(e.before/1e3).toFixed(0),n=(e.after/1e3).toFixed(0),r=e.level?` (${e.level})`:``,i=e.reductions&&e.reductions.length>0?` [${e.reductions.map(e=>`${e.phase}: \u2212${e.saved}`).join(`, `)}]`:``;return{ts:e.ts,source:e.type,level:`info`,text:`\u27F2 context compacted${r}: ${t}K \u2192 ${n}K tokens${i}`}}case`error`:return{ts:e.ts,source:e.type,level:`error`,text:e.phase?`[${e.phase}] ${e.message}`:e.message};case`provider_retry`:{let t=(e.delayMs/1e3).toFixed(e.delayMs>=1e3?1:2);return{ts:e.ts,source:e.type,level:`warn`,text:e.status?`\u27F3 retry ${e.attempt} (HTTP ${e.status}) after ${t}s \u2014 ${e.description}`:`\u27F3 retry ${e.attempt} after ${t}s \u2014 ${e.description}`}}case`provider_error`:return{ts:e.ts,source:e.type,level:`error`,text:e.status?`provider error (HTTP ${e.status}, ${e.retryable?`retryable`:`fatal`}): ${e.description}`:`provider error (${e.retryable?`retryable`:`fatal`}): ${e.description}`};case`checkpoint`:return{ts:e.ts,source:e.type,level:`info`,text:`\u2713 checkpoint #${e.promptIndex}: "${e.promptPreview.slice(0,60)}"`};case`agent_spawned`:return{ts:e.ts,source:e.type,level:`info`,text:`spawned as ${e.role}`,agentId:e.agentId};case`agent_session_linked`:return{ts:e.ts,source:e.type,level:`info`,text:`transcript \u2192 ${e.transcriptPath??e.agentSessionId}`,agentId:e.agentId};case`agent_stopped`:return{ts:e.ts,source:e.type,level:`info`,text:`stopped`,agentId:e.agentId};case`delegate_started`:return{ts:e.ts,source:e.type,level:`info`,text:`\u{1F91D} delegating \u2192 ${e.target}: ${e.task.length>100?`${e.task.slice(0,99)}\u2026`:e.task}`,agentId:e.subagentId,detail:{kind:`delegate_started`,target:e.target,task:e.task}};case`delegate_completed`:{let t=e.costUsd&&e.costUsd>0?` \xB7 $${e.costUsd.toFixed(4)}`:``;return{ts:e.ts,source:e.type,level:e.ok?`info`:`error`,text:`${e.ok?`✅`:`❌`} ${e.summary}${t}`,agentId:e.subagentId,detail:{kind:`delegate_completed`,target:e.target,task:e.task,ok:e.ok,status:e.status,summary:e.summary,durationMs:e.durationMs,iterations:e.iterations,toolCalls:e.toolCalls,costUsd:e.costUsd}}}case`loop_detected`:{let t=e.kind===`message`?`the same reply`:e.tools?`\`${e.tools}\``:`the same step`;return{ts:e.ts,source:e.type,level:`warn`,text:e.action===`steer`?`\u{1F501} Loop detected \u2014 ${t} repeated ${e.repeatCount}\xD7 ; the run was steered.`:`\u{1F501} Loop detected \u2014 ${t} repeated ${e.repeatCount}\xD7 ; the run was stopped.`}}case`model_switched`:{let t=`${e.to.providerId}/${e.to.model}`,n=e.from?`${e.from.providerId}/${e.from.model} \u2192 `:``;return{ts:e.ts,source:e.type,level:e.reason===`fallback`?`warn`:`info`,text:e.reason===`fallback`?`\u26A0 fallback${e.status?` (HTTP ${e.status})`:``}: ${n}${t}`:`model: ${n}${t}`}}case`agent_error`:return{ts:e.ts,source:e.type,level:`error`,text:`error: ${e.error.slice(0,80)}`,agentId:e.agentId};case`mode_changed`:return{ts:e.ts,source:e.type,level:`info`,text:`mode: ${e.from} \u2192 ${e.to}`};case`skill_activated`:return{ts:e.ts,source:e.type,level:`info`,text:`skill activated: ${e.skillName}`};case`skill_deactivated`:return{ts:e.ts,source:e.type,level:`info`,text:`skill deactivated: ${e.skillName}`};case`message_truncated`:return{ts:e.ts,source:e.type,level:`warn`,text:e.after<e.before?`message truncated: ${e.before} \u2192 ${e.after} tokens`:`message truncated at ${e.after} tokens`};default:return null}}function He(e,t=ze){let n=[];for(let r of e){if(!t.has(r.type))continue;let e=Ve(r);e&&n.push(e)}return n}var Ue=[`[MAILBOX]`,`[MAILBOX BTW]`,`[BY THE WAY —`,`[QUEUED MESSAGES —`,`[FLEET PULSE]`,`[loop-detector]`,`[tool_history_digest:`,`[session.resume] Request targeted session`];function We(e){let t=e.trimStart();for(let e of Ue)if(t.startsWith(e))return!0;return!1}function Ge(e){let t=[];for(let n of e)n.type===`tool_call_end`&&t.push({id:n.id,name:n.name,durationMs:n.durationMs,outputBytes:n.outputBytes??n.outputSize,outputTokens:n.outputTokens,outputLines:n.outputLines,ok:n.ok,agentId:n.agentId});return t}function Ke(e){let t=new Map;if(!e)return t;for(let n of e)t.set(n.id,n);return t}function qe(e){let t=[];for(let n of e)n.type===`image`&&t.push({mediaType:n.source.media_type,data:n.source.data,url:n.source.url});return t.length>0?t:void 0}function Je(e){return typeof e==`string`?e:JSON.stringify(e)}function Ye(e){let{messages:t,events:n,thinkingPlacement:r=`inline`,textBlocks:i=`split`,textSeparator:a=``,hideSystemInjections:o=!0}=e,s=e.markers??(n?He(n,e.markerSources??ze):[]),c=Ke(e.toolMeta??(n?Ge(n):void 0)),l=[],u=new Map,d=0,f=``,p=(e,t,n,r)=>{let i=t.trim();i&&(o&&We(i)||(e===`assistant`?l.push({kind:`assistant`,ts:n,text:i,final:r}):e===`system`?l.push({kind:`system`,ts:n,text:i}):l.push({kind:`user`,ts:n,text:i})))},m=(e,t)=>{e.trim()&&(d+=1,l.push({kind:`thinking`,ts:t,text:e,index:d}))};for(let e of t){let t=e.ts??f;if(e.ts&&(f=e.ts),typeof e.content==`string`){p(e.role,e.content,t,!0);continue}let n=e.content;if(r===`inline`)for(let e of n)e.type===`thinking`&&m(e.thinking,t);let o=e.role===`user`?qe(n):void 0,s=!n.some(e=>e.type===`tool_use`),d=[],h=()=>{if(i===`join`)return;let n=d.join(a).trim();n&&p(e.role,n,t,s),d.length=0};if(i===`join`){let r=n.filter(e=>e.type===`text`).map(e=>e.text).join(a).trim();r&&p(e.role,r,t,s)}for(let e of n){if(e.type===`text`){d.push(e.text);continue}if(e.type===`tool_use`){h();let n=c.get(e.id),r={kind:`tool`,ts:t,toolUseId:e.id,name:e.name,input:e.input,ok:n?.ok,durationMs:n?.durationMs,outputBytes:n?.outputBytes,outputTokens:n?.outputTokens,outputLines:n?.outputLines,agentId:n?.agentId};l.push(r),u.set(e.id,r);continue}if(e.type!==`tool_result`)continue;h();let n=u.get(e.tool_use_id);if(n){n.output=Je(e.content),n.ok=!e.is_error,u.delete(e.tool_use_id);continue}let r=c.get(e.tool_use_id);l.push({kind:`tool`,ts:t,toolUseId:e.tool_use_id,name:e.name??r?.name??e.tool_use_id,output:Je(e.content),ok:!e.is_error,durationMs:r?.durationMs,outputBytes:r?.outputBytes,outputTokens:r?.outputTokens,outputLines:r?.outputLines,agentId:r?.agentId})}if(h(),r===`merged-after`&&m(n.filter(e=>e.type===`thinking`).map(e=>e.thinking).join(`
2
+
3
+ `).trim(),t),o){let e=l[l.length-1];e?.kind===`user`&&e.ts===t?e.images=o:l.push({kind:`user`,ts:t,text:``,images:o})}}let h=[],g=0,_=0;for(;g<l.length&&_<s.length;){let e=s[_];e.ts<l[g].ts?(h.push(Xe(e)),_+=1):(h.push(l[g]),g+=1)}for(;g<l.length;)h.push(l[g++]);for(;_<s.length;)h.push(Xe(s[_++]));return h}function Xe(e){return{kind:`marker`,ts:e.ts,source:e.source,level:e.level,text:e.text,agentId:e.agentId,detail:e.detail}}function Ze(e){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
4
+ <rect width="64" height="64" fill="#121210" />
5
+ <path fill="#FD9F02" d="M5 27h10v10H5zM27 27h10v10H27zM38 27h10v10H38zM49 27h10v10H49z" />
6
+ <path fill="#FE2E5F" d="M16 32h10v10H16z" />
7
+ ${e===`ready`?`<circle cx="50" cy="14" r="14" fill="#22c55e" stroke="#fff" stroke-width="3" />`:e===`error`?`<circle cx="50" cy="14" r="14" fill="#ef4444" stroke="#fff" stroke-width="3" />`:e===`running`?`<circle cx="50" cy="14" r="14" fill="#f59e0b" stroke="#fff" stroke-width="3" />`:e===`attention`?`<circle cx="50" cy="14" r="14" fill="#eab308" stroke="#fff" stroke-width="3"><animate attributeName="opacity" values="1;0.3;1" dur="1s" repeatCount="indefinite"/></circle>`:``}
8
+ </svg>`}function Qe(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}function $e(){if(typeof document>`u`)return null;let e=document.querySelector(`link[rel="icon"]`);return e||(e=document.createElement(`link`),e.rel=`icon`,e.type=`image/svg+xml`,document.head.appendChild(e)),e}var et=`idle`;function K(e){et=e;let t=$e();t&&(t.href=Qe(Ze(e)))}var tt=!1;function nt(){tt||typeof document>`u`||(tt=!0,document.addEventListener(`visibilitychange`,()=>{!document.hidden&&(et===`ready`||et===`error`||et===`attention`)&&K(`idle`)}))}var rt=null;function it(){if(typeof window>`u`)return null;if(rt)return rt;let e=window.AudioContext||window.webkitAudioContext;if(!e)return null;try{rt=new e}catch{return null}return rt}function at(e,t,n){let r=it();if(!r)return;let i=r.currentTime+t,a=r.createOscillator(),o=r.createGain();a.type=`sine`,a.frequency.value=e,o.gain.setValueAtTime(0,i),o.gain.linearRampToValueAtTime(.18,i+.01),o.gain.exponentialRampToValueAtTime(1e-4,i+n),a.connect(o).connect(r.destination),a.start(i),a.stop(i+n+.02)}function ot(){at(659.25,0,.18),at(880,.12,.24)}function st(){at(523.25,0,.15),at(659.25,.1,.15),at(783.99,.2,.25)}var q=`default`;q=typeof window<`u`&&`Notification`in window?Notification.permission:`unsupported`;async function ct(){if(q===`unsupported`||q===`granted`||q===`denied`)return q;try{let e=await Notification.requestPermission();return q=e,e}catch{return`denied`}}function lt(e,t,n){if(!(typeof document>`u`||!document.hidden)&&q===`granted`)try{let r=new Notification(e,{body:t,icon:`/wrongstack.svg`,tag:n??`wrongstack-run`,requireInteraction:n===`wrongstack-confirm`});r.onclick=()=>{window.focus(),r.close()}}catch{}}function ut(e){let t=e.payload;return typeof t?.agentName==`string`&&t.agentName.length>0?t.agentName:void 0}var dt={"iteration.started":bt,"provider.text_delta":xt,"provider.thinking_delta":St,"tool.started":Ct,"tool.progress":wt,"tool.executed":Tt,"tool.confirm_needed":Et,"run.result":Ot,"session.run_state":Dt},ft=new Map,pt=new Map;function mt(e){let t=ft.get(e);return t||(t=new Map,ft.set(e,t)),t}function ht(e){return`__thinking__:${e}`}function gt(e){return e.sessionId===v()}function _t(e){return z.getState().sessionNicknames[e]??`session ${e.slice(0,8)}`}function vt(e){return`wrongstack-run:${e}`}function yt(e){ft.delete(e),pt.delete(e),b.drop(ht(e))}h(yt);function bt(e){let t=A(e);if(!t)return;j(e),e.payload.index===1&&(ft.delete(t.sessionId),pt.delete(t.sessionId));let n=e.payload,r=D(e);r?.setIteration({index:n.index,max:n.maxIterations??0}),t.setLoading(!0),typeof document<`u`&&document.hidden&&gt(t)&&K(`running`),t.runStart===null&&t.setRunStart({at:Date.now(),cost:r?.data.cost??0}),t.setCurrentAssistantMessage(null)}function xt(e){let t=A(e);if(!t)return;let n=_(e);if(n?.kind!==`text-delta`)return;b.flush(ht(t.sessionId)),t.clearThinking();let r=t.currentAssistantMessageId;r||(r=t.addMessage({role:`assistant`,content:``,streaming:!0}),t.setCurrentAssistantMessage(r)),b.push(r,n.text,(e,n)=>t.appendToMessage(e,n))}function St(e){let t=A(e);if(!t)return;let n=_(e);n?.kind===`thinking-delta`&&b.push(ht(t.sessionId),n.text,(e,n)=>t.appendThinking(n))}function Ct(e){let t=A(e);if(!t)return;j(e);let n=r(e);if(n?.kind!==`started`)return;n.name===`nextsteps`&&n.id&&mt(t.sessionId).set(n.id,p(n.input));let i=t.getToolMessageId(n.id);if(i){t.setCurrentToolId(i);return}b.flushAll(),t.clearThinking();let a=t.currentAssistantMessageId;a&&t.finalizeMessage(a,{final:!1}),t.setCurrentAssistantMessage(null);let o=t.addMessage({role:`tool`,content:``,toolName:n.name,toolInput:n.input,toolUseId:n.id});t.setCurrentToolId(o),t.addExecution({id:n.id,name:n.name,input:n.input,ok:!0,startedAt:Date.now()}),I.getState().recordToolStarted(t.sessionId,{name:n.name,agentName:ut(e)})}function wt(e){let t=A(e);if(!t)return;let n=r(e);if(n?.kind!==`progress`)return;let i=n.text;if(!i)return;let a=t.getToolMessageId(n.id);if(!a)return;let o=n.eventType===`warning`?`⚠ `:``;b.push(a,`${o}${i}\n`,(e,r)=>t.appendToolProgressLinesByUseId(n.id,r.split(`
9
+ `).filter(e=>e.length>0)))}function Tt(e){let t=A(e);if(!t)return;j(e);let n=r(e);if(n?.kind!==`executed`)return;if(n.name===`nextsteps`&&n.id){let e=mt(t.sessionId),r=e.get(n.id)??[];e.delete(n.id),n.ok&&r.length>0&&pt.set(t.sessionId,r)}let{currentToolId:i}=t,a=n.id?t.getToolMessageId(n.id):i;a&&(b.drop(a),n.id?t.setToolResultByUseId(n.id,n.output??``,n.ok):t.setToolResult(a,n.output??``,n.ok),t.updateMessage(a,{toolDurationMs:n.durationMs,...n.sage&&n.sage.length>0?{sageLines:n.sage}:{}})),n.id&&t.updateExecution(n.id,{completedAt:Date.now(),durationMs:n.durationMs,output:n.output,ok:n.ok}),I.getState().recordToolExecuted(t.sessionId,{name:n.name,ok:n.ok,durationMs:n.durationMs,agentName:ut(e)}),i&&a===i&&t.setCurrentToolId(null)}function Et(e){let n=A(e);if(!n)return;let r=e.payload;if(ge(n.sessionId,`yolo`)===!0&&!r.boundaryReason){M(t.getState().wsUrl).sendConfirm(r.id,`yes`),z.getState().hideConfirm();return}if(!gt(n)){n.setPendingConfirm(r),w.getState().setAttention(n.sessionId,!0),ct(),lt(`${x.getState().projectName||`Agent`} needs approval`,`Another tab is waiting on "${r.toolName}".`,`agent-confirm`);return}n.setPendingConfirm(r),z.getState().showConfirm({id:r.id,toolName:r.toolName,input:r.input,suggestedPattern:r.suggestedPattern,decisionSource:r.decisionSource,riskTier:r.riskTier,boundaryReason:r.boundaryReason});try{st()}catch{}ct(),lt(`${x.getState().projectName||`Agent`} needs approval`,`Tool "${r.toolName}" is waiting for your decision.`,`agent-confirm`),typeof document<`u`&&document.hidden&&K(`attention`)}function Dt(e){let t=A(e);if(!t)return;let n=C(e,{isRunning:`boolean`},{});n&&t.isLoading!==n.isRunning&&(t.setLoading(n.isRunning),n.isRunning||(b.flushAll(),t.flushThinkingLog(1),D(e)?.setIteration(null),t.clearThinking(),t.setRunStart(null)))}function Ot(e){let n=A(e);if(!n)return;let r=C(e,{status:`string`},{requestId:`string`,iterations:`number`,finalText:`string`,error:`object`});if(!r)return;let i=r.iterations??1;b.flushAll(),n.flushThinkingLog(Math.max(1,i));let a=D(e);a?.setIteration(null),n.setLoading(!1);let o=n.currentAssistantMessageId,s=r.status===`done`?r.finalText?.trim():void 0;if(o){let e=n.messages.find(e=>e.id===o);n.updateMessage(o,{content:e?.content?.trim()?e.content:s??e?.content??``}),n.finalizeMessage(o,{final:!0})}else if(s){let e=n.runStart,t=u(s).stripped.trim(),r=n.messages,i;for(let t=r.length-1;t>=0;t--){let n=r[t];if(n?.role===`assistant`&&(!e||n.timestamp>=e.at)){i=n;break}}let a=i?.content.trim();if(a===void 0||a!==s&&a!==t){let e=n.addMessage({role:`assistant`,content:s});n.finalizeMessage(e,{final:!0})}}let c=pt.get(n.sessionId)??[];r.status===`done`&&c.length>0&&(n.messages.some(e=>e.role===`assistant`&&(e.nextSteps?.steps.length??0)>0)||n.addMessage({role:`assistant`,content:``,nextSteps:{steps:c}}),pt.delete(n.sessionId)),n.setCurrentAssistantMessage(null),n.clearThinking();let d=n.runStart;if(d&&r.status===`done`){let e=n.messages,t=-1,r=0;for(let n=e.length-1;n>=0;n--){let i=l(e[n]);if(i.role===`assistant`&&t===-1&&i.content&&(t=n),i.role===`tool`&&i.timestamp>=d.at&&(r+=1),i.role===`user`&&i.timestamp<=d.at)break}if(t!==-1){let o=a?.data.cost??0;n.updateMessage(e[t]?.id,{runSummary:{iterations:i,tools:r,durationMs:Date.now()-d.at,costDelta:Math.max(0,o-d.cost)}})}}if(n.setRunStart(null),r.status!==`done`&&r.error){r.requestId&&n.updateMessage(r.requestId,{status:`failed`}),n.addMessage({role:`assistant`,content:`Error: ${r.error.message}`,isError:!0});let e=r.error.message===`User aborted`||r.error.message===`aborted`,t=gt(n);e||(t?f.error(`Run ended: ${r.error.message}`):w.getState().setAttention(n.sessionId,!0)),lt(t?`${x.getState().projectName||`Agent`} run failed`:`${_t(n.sessionId)} run failed`,r.error.message,vt(n.sessionId)),typeof document<`u`&&document.hidden&&gt(n)&&K(`error`)}else if(r.status===`done`){if(typeof document<`u`&&document.hidden){let e=gt(n);e?f.success(`Run completed in ${i} iteration${i===1?``:`s`}`):w.getState().setAttention(n.sessionId,!0),lt(e?`${x.getState().projectName||`Agent`} run finished`:`${_t(n.sessionId)} run finished`,`Completed in ${i} iteration${i===1?``:`s`}.`,vt(n.sessionId)),e&&K(`ready`)}if(ct(),t.getState().soundOnComplete)try{ot()}catch{}typeof document<`u`&&gt(n)&&document.dispatchEvent(new CustomEvent(`chat:next-step-countdown`))}let p=n,m=p.queue[0];if(!m)return;if(m.alreadyDispatched===!0){kt(n,m);let e=p.dequeueDrainable();return e?At(n,e):void 0}let h=p.dequeue();if(h)return At(n,h)}function kt(e,t){if(t.bubbleAdded===!0)return;let n=t.images??[];e.addMessage({role:`user`,content:t.text,...n.length>0?{attachments:n.map(e=>({id:e.id,kind:`image`,dataUrl:e.dataUrl,mediaType:e.mediaType,bytes:e.bytes,name:e.name}))}:{}}),t.bubbleAdded=!0}function At(e,n){let r=M(t.getState().wsUrl),i=n.images??[];if(e.addMessage({role:`user`,content:n.text,...i.length>0?{attachments:i.map(e=>({id:e.id,kind:`image`,dataUrl:e.dataUrl,mediaType:e.mediaType,bytes:e.bytes,name:e.name}))}:{}}),n.mode===`btw`){n.alreadyDispatched!==!0&&r.sendMailboxMessage({type:`btw`,to:`leader`,subject:`btw from WebUI`,body:n.text,priority:`normal`,audience:`all`},e.sessionId);return}e.setLoading(!0),r.sendMessage(n.text,i.length>0?_e(i):void 0,!1,e.sessionId)}function J(e){return be.for(k(e)).getState()}function jt(e){let t=k(e);return!t||t===v()}var Mt={"coordinator.status":e=>{let t=e.payload;J(e).setCoordinatorStatus(t.status,t.mode),t.taskQueue&&J(e).updateCoordinatorStats({total:t.subagentCount??0,running:0,idle:0,stopped:0,inFlight:t.taskQueue.running,pending:t.taskQueue.pending,completed:t.taskQueue.completed})},"coordinator.stats":e=>{let t=e.payload;J(e).updateCoordinatorStats(t)},"budget.threshold_reached":e=>{let t=e.payload;J(e).pushEvent(`budget.threshold_reached`,t,t.ts??Date.now(),t.subagentId,t.taskId),t.limit>0&&t.used/t.limit*100>=85&&J(e).recordBudgetAlert(t.subagentId,t.kind,t.used,t.limit),J(e).updateSubagentBudget(t.subagentId,{budgetUsage:{iterations:0,toolCalls:0,tokens:0,costUsd:0,elapsedMs:t.used??0}})},"budget.decision":e=>{let t=e.payload,n=t.extended?.timeoutMs??t.extended?.maxIterations??t.extended?.maxToolCalls;J(e).recordBudgetDecision(t.subagentId,t.kind,t.decision,n),J(e).pushEvent(`budget.decision`,{subagentId:t.subagentId,kind:t.kind,decision:t.decision,newLimit:n},Date.now(),t.subagentId)},"subagent.budget_extended":e=>{let t=e.payload;J(e).recordBudgetExtended(t.subagentId,t.kind,t.extendedTo),J(e).pushEvent(`subagent.budget_extended`,t,Date.now(),t.subagentId)},"consensus.vote_initiated":e=>{let t=e.payload;J(e).pushConsensusVote(t.changeId,t.title,t.eligible),J(e).pushEvent(`consensus.vote_initiated`,t,Date.now()),jt(e)&&f.info(`Vote started: `+t.title)},"consensus.vote_cast":e=>{let t=e.payload,n=J(e).consensusVotes.get(t.changeId)?.eligible.find(e=>e.agentId===t.voterId);J(e).recordConsensusVote(t.changeId,t.voterId,n?.agentName??t.voterId,t.value),J(e).pushEvent(`consensus.vote_cast`,t,Date.now(),t.voterId)},"consensus.vote_resolved":e=>{let t=e.payload;J(e).resolveConsensusVote(t.changeId,t.result,t.approveCount,t.rejectCount),J(e).pushEvent(`consensus.vote_resolved`,t,Date.now()),jt(e)&&f.info(`Vote resolved: `+t.result+` (y`+t.approveCount+` n`+t.rejectCount+`)`)},"task.pending":e=>{let t=e.payload;J(e).pushTaskPending(t.taskId,t.description,t.priority),J(e).pushEvent(`task.pending`,t,Date.now())},"task.started":e=>{let t=e.payload;J(e).startTask(t.taskId,t.subagentId),J(e).pushEvent(`task.started`,t,Date.now(),t.subagentId)},"task.completed":e=>{let t=e.payload;J(e).completeTask(t.taskId,t.status,t.durationMs),J(e).pushEvent(`task.completed`,t,Date.now(),t.subagentId)},"task.failed":e=>{let t=e.payload;J(e).failTask(t.taskId,t.error),J(e).pushEvent(`task.failed`,{taskId:t.taskId,subagentId:t.subagentId,error:String(t.error).slice(0,120)},Date.now(),t.subagentId),jt(e)&&f.error(`Task failed: `+String(t.error).slice(0,80))}};function Nt(){let e=M();e?.send?.({type:`mailbox.messages`,payload:{limit:30,incompleteOnly:!0}}),e?.send?.({type:`mailbox.agents`,payload:{}})}var Pt=null;function Ft(){Pt!==null&&clearTimeout(Pt),Pt=setTimeout(()=>{Pt=null,Nt()},300)}function It(e,t){return t?{...e,sessionId:t}:e}function Lt(e,t){let n=g.getState();return t&&n.fileSessionId!==t?n.filesBySession[t]?.hydratingPaths.has(e)??!1:n.hydratingPaths.has(e)}function Rt(e,t=O()??x.getState().session?.id??null){let n=g.getState(),r=t&&n.fileSessionId!==t?n.filesBySession[t]:n,i=r?.openFiles??[],a=r?.projectIdentity??``;if(i.length===0){n.setProjectIdentity(e,t);return}if(a&&a!==e){n.clearOpenTabs(t),n.setProjectIdentity(e,t);return}n.setProjectIdentity(e,t);let o=i.filter(e=>e.content===``&&!e.dirty).map(e=>e.path);if(o.length===0)return;g.getState().setHydratingPaths(o,t);let s=M();for(let e of o)s?.send?.({type:`files.read`,payload:It({filePath:e},t)})}function zt(e){let t=e.payload,n=k(e);if(t.error){g.getState().setError(t.error,n);return}g.getState().setTree(t.root,t.tree,n)}function Bt(e){let t=e.payload,n=k(e),r=g.getState();if(t.error){if(Lt(t.filePath,n)){r.hydrateFileFailed(t.filePath,n);return}r.setError(t.error,n);return}if(t.binary||t.tooLarge){if(Lt(t.filePath,n)){r.hydrateFileFailed(t.filePath,n);return}r.setError(t.binary?`Binary file not displayed: ${t.filePath}`:`File exceeds the 2 MB display limit: ${t.filePath}`,n);return}if(Lt(t.filePath,n)){r.hydrateFileContent(t.filePath,t.content,n);return}r.openFile(t.filePath,t.content,n),z.getState().setCurrentView(`files`)}function Vt(e){let t=e.payload,n=k(e);t.success?g.getState().markSaved(t.filePath,n):t.error&&g.getState().setError(`Save failed: ${t.error}`,n)}function Ht(e){let t=e.payload;!t.success&&t.error&&g.getState().setError(`Create failed: ${t.error}`,k(e))}function Ut(e){let t=e.payload,n=k(e);t.success?g.getState().closeFile(t.filePath,n):t.error&&g.getState().setError(`Delete failed: ${t.error}`,n)}function Wt(e){let t=e.payload,n=k(e);t.success?g.getState().closeFile(t.oldPath,n):t.error&&g.getState().setError(`Rename failed: ${t.error}`,n)}function Gt(e){let t=e.payload,n=k(e);t.success?g.getState().closeFile(t.srcPath,n):t.error&&g.getState().setError(`Move failed: ${t.error}`,n)}var Kt=null,qt=500;function Jt(e){let t=k(e);Kt&&clearTimeout(Kt),Kt=setTimeout(()=>{Kt=null;let e=x.getState().cwd;g.getState().setTreeLoading(!0,t),M().send({type:`files.tree`,payload:It({path:e},t)})},qt)}function Yt(e){let t=ie(`mailbox.event`,e.payload);t&&(N.getState().pushEvent(t),N.getState().setActive(!0)),Ft()}function Xt(e){let t=e.payload;t?.messages&&Ne.getState().setMessages(t.messages)}function Zt(e){let t=e.payload;t?.agents&&Ne.getState().setAgents(t.agents)}function Qt(e){let t=ie(`mailbox.received`,e.payload);t&&(N.getState().pushEvent(t),N.getState().setActive(!0)),Ft()}function $t(e){Ft()}function en(e){let t=e.payload;t?.agentId&&Ne.getState().removeAgent(t.agentId)}function tn(e){Ne.getState().setMessages([]),Nt()}function nn(e){Ft()}function rn(e){let t=e.payload;t&&typeof t.totalRemoved==`number`&&Ne.getState().setLastCompaction({readByAllRemoved:t.readByAllRemoved??0,expiredRemoved:t.expiredRemoved??0,stalePurged:t.stalePurged??0,totalRemoved:t.totalRemoved,remaining:t.remaining??0}),Ft()}function an(e){let t=e.payload;if(t?.success){Ft();return}f.error(`Mailbox action failed: ${t?.error??`unknown error`}`)}var on={"files.tree":zt,"files.tree.changed":Jt,"files.read":Bt,"files.written":Vt,"files.created":Ht,"files.deleted":Ut,"files.renamed":Wt,"files.moved":Gt,"mailbox.event":Yt,"mailbox.messages":Xt,"mailbox.agents":Zt,"mailbox.received":Qt,"mailbox.agent_registered":$t,"mailbox.agent_deregistered":en,"mailbox.cleared":tn,"mailbox.purged":nn,"mailbox.compacted":rn,"mailbox.action_result":an};function sn(e){let t=e.payload;W.getState().setSnapshot(t.worktrees??[],t.baseBranch??``)}function cn(e){let t=e.payload;W.getState().pushEvent(t)}function ln(e){let t=e.payload;W.getState().setOrphans(t.orphans??[],t.canClean??!1,t.reason)}function un(e){let t=e.payload;W.getState().setCleanResult({...t,at:Date.now()})}function dn(e){let t=e.payload;W.getState().setMergeResult({...t,at:Date.now()})}function fn(e){let t=e.payload;W.getState().setDiff(t.dir,t.summary)}function pn(e){T.getState().applyEvent(e.payload);let t=ie(`subagent.event`,e.payload);t&&(N.getState().pushEvent(t),N.getState().setActive(!0))}function mn(e){let t=L(e);t?.kind===`concurrency`&&T.setState({fleetConcurrency:t.active,fleetConcurrencyMax:t.maximum,...t.maxSpawns===void 0?{}:{fleetMaxSpawns:t.maxSpawns},...t.usedSpawns===void 0?{}:{fleetUsedSpawns:t.usedSpawns},...t.remainingSpawns===void 0?{}:{fleetRemainingSpawns:t.remainingSpawns},...t.effectiveSource===void 0?{}:{fleetBudgetSource:t.effectiveSource},...t.checkpointMaxSpawns===void 0?{}:{fleetCheckpointMaxSpawns:t.checkpointMaxSpawns},...t.ceilingMismatch===void 0?{}:{fleetCeilingMismatch:t.ceilingMismatch}})}function hn(e){let t=L(e);if(t?.kind!==`client-status`)return;let n=t.status;Ae.getState().setCurrentSession({clientType:n.clientType,clientId:n.clientId,agentCount:n.agentCount,model:n.model,mode:n.mode,toolCalls:n.toolCalls,inputTokens:n.inputTokens,outputTokens:n.outputTokens,cacheTokens:n.cacheTokens,costUsd:n.costUsd,timestamp:n.timestamp})}function gn(e){let t=L(e);if(t?.kind!==`sessions`)return;Ae.getState().setLiveSessions(t.sessions);let n=Date.now();if(n-vn>=5e3&&(vn=n,Nt()),n-_n<1e3)return;_n=n;let r=ie(`sessions.status_update`,e.payload);r&&(N.getState().pushEvent(r),N.getState().setActive(!0))}var _n=0,vn=0,yn={"worktree.state":sn,"worktree.event":cn,"worktree.orphans":ln,"worktree.cleanup_result":un,"worktree.merge_result":dn,"worktree.diff_result":fn,"subagent.event":pn,"fleet.concurrency_update":mn,"client.status_update":hn,"sessions.status_update":gn};function bn(e,t){let n=e=>e.trim().replace(/\s+/g,` `).toLowerCase();return n(e)===n(t)}var xn=50,Sn=200;function Cn(e){return e.length<=300?e:`${e.slice(0,299)}…`}function wn(e){return{...e,text:Cn(e.text)}}function Tn(e){let t=[];for(let n of Object.values(e))n.state===`exited`&&t.push(n);if(t.length<=Sn)return e;t.sort((e,t)=>(t.exitedAt??t.lastSeenAt).localeCompare(e.exitedAt??e.lastSeenAt));let n={...e};for(let e of t.slice(Sn))delete n[e.id];return n}var En=ye(e=>({traces:[],contextMemories:{},transitions:[],pushTrace:t=>e(e=>{let n={...e.contextMemories},r=[...e.transitions],i=t.injected.map(wn),a=t.activated.map(wn);for(let e of i){let i=n[e.id];n[e.id]={...e,state:i?.state===`active`?`active`:`injected`,trigger:t.trigger,enteredAt:i?.enteredAt??t.at,lastSeenAt:t.at};let a=`${t.at}_injected_${e.id}`;r.some(e=>e.id===a)||r.unshift({id:a,at:t.at,memoryId:e.id,action:`injected`,reason:`${t.trigger} · score ${e.score.toFixed(2)}`})}return{traces:[{...t,activated:a,injected:i},...e.traces.filter(e=>e.runId!==t.runId)].slice(0,xn),contextMemories:Tn(n),transitions:r.slice(0,100)}}),applyContextSnapshot:t=>e(e=>{let n={...e.contextMemories},r=[...e.transitions],i=new Set(t.activeMemoryIds);for(let e of t.activeMemoryIds){let r=n[e];n[e]=r?{...r,state:`active`,lastSeenAt:t.at,exitedAt:void 0}:Dn(e,t.at,`active`)}for(let e of t.enteredMemoryIds){let n=`${t.at}_entered_${e}`;r.some(e=>e.id===n)||r.unshift({id:n,at:t.at,memoryId:e,action:`entered`,reason:`present in provider request`})}for(let e of t.exitedMemoryIds){let i=n[e];i&&(n[e]={...i,state:`exited`,exitedAt:t.at});let a=`${t.at}_exited_${e}`;r.some(e=>e.id===a)||r.unshift({id:a,at:t.at,memoryId:e,action:`exited`,reason:`absent from provider request`})}for(let[e,a]of Object.entries(n))if((a.state===`injected`||a.state===`active`)&&!i.has(e)&&(n[e]={...a,state:`exited`,exitedAt:t.at},!t.exitedMemoryIds.includes(e))){let n=`${t.at}_exited_before_provider_${e}`;r.some(e=>e.id===n)||r.unshift({id:n,at:t.at,memoryId:e,action:`exited`,reason:a.state===`injected`?`removed before provider request`:`absent from provider context snapshot`})}return{contextMemories:Tn(n),transitions:r.slice(0,100)}}),resetContext:()=>e({contextMemories:{},transitions:[]}),clear:()=>e({traces:[],contextMemories:{},transitions:[]})}));function Dn(e,t,n){return{id:e,kind:`unknown`,text:`Memory details were not present in this UI process.`,score:0,relationStrength:0,anchors:[],tags:[],activationReasons:[],importance:0,confidence:0,freshness:0,persistence:`unknown`,state:n,trigger:`context snapshot`,enteredAt:t,lastSeenAt:t,isPlaceholder:!0}}var On=100,kn=new Set([`exited`,`superseded`,`archived`,`staled`,`contradicted`]);function An(e,t=new Date){let n=e.event,r=Y(e.memoryId),i=Y(e.at)??t.toISOString(),a={id:`${n}_${t.getTime()}_${Math.random().toString(36).slice(2,7)}`,at:i,event:n};if(n===`memory.accepted`&&r)return{...a,action:`entered`,memoryId:r,label:`${r} entered memory`,detail:Nn(e)};if(n===`memory.merged`&&r){let t=Array.isArray(e.mergedIds)?e.mergedIds.length:0;return{...a,action:`merged`,memoryId:r,label:`${r} merged`,detail:t>0?`${t} records folded in`:void 0}}if(n===`memory.recovered`&&r)return{...a,action:`recovered`,memoryId:r,label:`${r} recovered`,detail:Y(e.reason)};if(n===`memory.deleted`&&r)return{...a,action:`exited`,memoryId:r,label:`${r} exited memory`,detail:Pn(e)};if(n===`memory.updated`&&r){let t=Y(e.status)??`updated`;return{...a,action:t===`deleted`?`exited`:`updated`,memoryId:r,label:t===`deleted`?`${r} exited memory`:`${r} updated → ${t}`,detail:Nn(e)}}if(n===`memory.graph_edge_added`){let t=Y(e.from),n=Y(e.to);if(!t?.startsWith(`mem:`)||!n?.startsWith(`mem:`))return null;let r=Y(e.relation)??`related_to`,i=Mn(e.weight),o=Array.isArray(e.evidence)?e.evidence.filter(e=>typeof e==`string`):[];return{...a,action:`related`,memoryId:t.startsWith(`mem:`)?t.slice(4):void 0,label:`${Fn(t)} ↔ ${Fn(n)}`,detail:[r,i===void 0?void 0:`weight ${i.toFixed(2)}`,o.length>0?`why: ${o.join(`, `)}`:void 0].filter(Boolean).join(` · `)}}return n===`memory.relationships_rebuilt`?{...a,action:`related`,label:`Memory relationships rebuilt`,detail:`${Mn(e.added)??0} added / ${Mn(e.proposed)??0} proposed`}:n===`memory.superseded`&&r?{...a,action:`superseded`,memoryId:r,label:`${r} → superseded`,detail:Y(e.reason)??Nn(e)}:n===`memory.archived`&&r?{...a,action:`archived`,memoryId:r,label:`${r} → archived`,detail:Y(e.reason)}:n===`memory.staled`&&r?{...a,action:`staled`,memoryId:r,label:`${r} → staled`,detail:Y(e.reason)??`anchor drift detected`}:n===`memory.contradicted`&&r?{...a,action:`contradicted`,memoryId:r,label:`${r} → contradicted`,detail:Y(e.reason)??`conflicting evidence`}:null}var jn=ye(e=>({items:[],pushEvent:t=>e(e=>{let n=An(t);return n?{items:[n,...kn.has(n.action)?e.items.filter(e=>!(kn.has(e.action)&&e.memoryId===n.memoryId)):e.items].slice(0,On)}:e}),clear:()=>e({items:[]})}));function Y(e){return typeof e==`string`&&e.length>0?e:void 0}function Mn(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function Nn(e){let t=[Y(e.kind),Y(e.persistence)],n=Mn(e.confidence),r=Mn(e.freshness);return n!==void 0&&t.push(`confidence ${n.toFixed(2)}`),r!==void 0&&t.push(`freshness ${r.toFixed(2)}`),t.filter(Boolean).join(` · `)||void 0}function Pn(e){let t=Y(e.reason),n=Mn(e.removedEdges);return[t,n===void 0?void 0:`${n} edges removed`].filter(Boolean).join(` · `)||void 0}function Fn(e){let t=e.replace(/^mem:/,``);return t.length>26?`${t.slice(0,23)}…`:t}function In(e){return je.for(k(e)).getState()}function Ln(e){if(!e||e.length===0)return;let t=e.map(e=>e.status);return t.some(e=>e===`failed`)?`failed`:t.every(e=>e===`completed`||e===`skipped`)?`completed`:t.some(e=>e===`paused`)?`paused`:`running`}function Rn(e){let t=e.payload,n=Array.isArray(t.phases)?t.phases:void 0,r=Ln(n);H.getState().setState({phases:n,activePhaseId:typeof t.activePhaseId==`string`?t.activePhaseId:void 0,overallPercent:typeof t.overallPercent==`number`?t.overallPercent:void 0,autonomous:typeof t.autonomous==`boolean`?t.autonomous:void 0,title:typeof t.title==`string`?t.title:void 0,goal:typeof t.goal==`string`?t.goal:void 0,status:r,multiBoard:t.multiBoard===!0,lastError:r===`failed`?H.getState().lastError:null})}function zn(e){let t=e.payload,n={totalPhases:typeof t.totalPhases==`number`?t.totalPhases:0,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,totalTasks:typeof t.totalTasks==`number`?t.totalTasks:0,completedTasks:typeof t.completedTasks==`number`?t.completedTasks:0,failedTasks:typeof t.failedTasks==`number`?t.failedTasks:0};H.getState().setState({progress:n,overallPercent:typeof t.percentComplete==`number`?Math.round(t.percentComplete):void 0,status:n.failed>0||n.failedTasks>0?`failed`:`running`,lastEvent:`progress`})}function X(e){let t=e.payload,n=typeof t.title==`string`&&t.title?t.title:`Goal`,r=typeof t.error==`string`&&t.error?t.error:void 0;if(e.type===`goal.paused`){H.getState().setState({status:`paused`,autonomous:!1,lastEvent:`paused`}),f.info(`Goal paused`);return}if(e.type===`goal.resumed`){H.getState().setState({status:`running`,autonomous:!0,lastEvent:`resumed`}),f.info(`Goal resumed`);return}if(e.type===`goal.stopped`){H.getState().setState({status:`stopped`,autonomous:!1,lastEvent:`stopped`}),f.warn(`Goal stopped`);return}if(e.type===`goal.cleared`){H.getState().clear();return}if(e.type===`goal.reverted`){let e=t.ok===!0,n=typeof t.reverted==`number`?t.reverted:0,r=typeof t.reason==`string`?t.reason:void 0;e?f.success(n>0?`Reverted ${n} commit${n===1?``:`s`}`:`Nothing to revert`):f.error(`Revert failed: ${r??`unknown error`}`),H.getState().setState({lastEvent:`reverted`});return}if(e.type===`goal.saved`){H.getState().setState({lastEvent:`saved`}),f.success(`Goal graph saved`);return}if(e.type===`goal.completed`){H.getState().setState({status:`completed`,autonomous:!1,overallPercent:100,lastEvent:`completed`,lastError:null}),f.success(`${n} completed`);return}if(e.type===`goal.failed`||e.type===`goal.error`){let e=r??(typeof t.message==`string`?t.message:`${n} failed`);H.getState().setState({status:`failed`,autonomous:!1,lastEvent:`failed`,lastError:e}),f.error(e)}}function Bn(e){let t=e.payload;H.getState().setState({lastEvent:`list`,graphs:Array.isArray(t.graphs)?t.graphs:[]})}function Vn(e){let t=e.payload;De.getState().setGoal(t)}function Hn(e){let t=e.payload,n=k(e);if(he.getState().applyRemote(t,n??void 0),t.yolo!==!0||n&&n!==he.getState().activeSessionId)return;let r=z.getState().confirmInfo;r&&(E(r.id),z.getState().hideConfirm())}function Un(e){let t=e.payload;!t||!Array.isArray(t.variants)||P.getState().setInfo(t,t.sessionId)}function Wn(e){let t=A(e)??F(),n=e.payload,r;if(n.decision.type===`answer`){let e=n.decision.rationale&&n.decision.rationale!==n.decision.text?`\n\n_${n.decision.rationale}_`:``;r=`🧠 ${n.decision.text??``}${e}`}else r=n.decision.type===`deny`?`🧠 Denied: ${n.decision.reason??``}`:`🧠 The Brain escalated this question back to you — it needs human judgement.`;let i={kind:n.decision.type===`answer`?`answered`:n.decision.type===`deny`?`denied`:`ask_human`,question:n.question,decisionType:n.decision.type,text:n.decision.text,rationale:n.decision.rationale,reason:n.decision.reason,optionId:n.decision.optionId,at:Date.now()};t.addMessage({role:`assistant`,content:r,brainDecision:i})}function Gn(e){let t=A(e)??F(),n=e.payload,r=n.requestId??n.request?.id;if(r&&n.request?.question&&In(e).noteQuestion(r,n.request.question),n.event===`brain.council_vote`){In(e).recordVote(n);let t=n.requestId??`unknown`;N.getState().pushEvent({id:`council_${t}_${n.seatId??`seat-${Date.now()}`}`,kind:`brain:council_vote`,timestamp:Date.now(),source:n.model??n.persona??`seat`,target:`brain`,label:`${n.persona??`voter`} → ${n.status===`valid`?n.optionId??`stance`:n.status??`failed`}`,data:n,color:`#38bdf8`,flowGroup:`brain`});return}if(n.event===`brain.council_resolved`){In(e).recordResolution(n);let r=n.requestId??`unknown`,i=In(e).panels.find(e=>e.requestId===r),a=i?.seats??[],o=a.map(e=>`- **${e.persona}**${e.veto?` (veto)`:``} → ${e.status===`valid`?e.optionId??`stance`:e.status}${e.model?` · \`${e.model}\``:``}`),s=[`⚖️ **Council ${n.resolution??`resolved`}**`,`${n.validVoteCount??a.length}/${n.configuredSeatCount??a.length} seats`,`${n.distinctTargetCount??0} distinct target${n.distinctTargetCount===1?``:`s`}`,n.judgeUsed?`judge used`:void 0,n.usage?.totalTokens?`${n.usage.totalTokens} tok`:void 0].filter(Boolean).join(` · `),c={requestId:r,status:n.status??i?.status??`decided`,resolution:n.resolution??i?.resolution??`decided`,optionId:n.optionId??i?.optionId,question:i?.question??n.request?.question,reason:n.reason??i?.reason,configuredSeatCount:n.configuredSeatCount??i?.configuredSeatCount??a.length,validVoteCount:n.validVoteCount??i?.validVoteCount??a.length,distinctTargetCount:n.distinctTargetCount??i?.distinctTargetCount??new Set(a.map(e=>e.model||e.persona)).size,judgeUsed:!!(n.judgeUsed??i?.judgeUsed),totalTokens:n.usage?.totalTokens??i?.totalTokens,durationMs:n.usage?.durationMs??i?.durationMs,warnings:n.warnings??i?.warnings,seats:a.length>0?a:i?.seats??[]};t.addMessage({role:`assistant`,content:[s,...o,...(n.warnings??[]).map(e=>`> ⚠ ${e}`)].filter(Boolean).join(`
10
+ `),councilDecision:c});for(let e of n.warnings??[])f.warn(e);return}if(n.event===`brain.intervention`){let e=n.decision?.rationale??n.decision?.text??``,r=n.intervened?`🧠 **Brain intervention** — corrective guidance was sent to the agent.`:`🧠 **Brain check** — a distress signal was reviewed; no action needed.`,i={id:n.requestId??n.request?.id,kind:n.intervened?`intervention`:`check`,intervened:!!n.intervened,question:n.request?.question,source:n.request?.source,risk:n.request?.risk,decisionType:n.decision?.type??(n.intervened?`steer`:`observe`),optionId:n.decision?.optionId,text:n.decision?.text,rationale:e,reason:n.decision?.reason,at:Date.now()};t.addMessage({role:`assistant`,content:[r,n.request?.question??``,e?`_${e}_`:``].filter(Boolean).join(`
11
+
12
+ `),brainDecision:i}),n.intervened&&f.info(`Brain intervened: agent steered`)}else if(n.event===`brain.decision_denied`){let e=n.decision?.reason??n.request?.question??`request`,r={id:n.requestId??n.request?.id,kind:`denied`,question:n.request?.question,source:n.request?.source,risk:n.request?.risk,decisionType:`deny`,reason:e,rationale:n.decision?.rationale,at:Date.now()};t.addMessage({role:`assistant`,content:`🧠 Denied: ${e}`,brainDecision:r}),f.warn(`Brain denied: ${e}`)}else if(n.event===`brain.decision_answered`){let e=n.decision?.text??n.decision?.optionId??``,r=n.decision?.rationale??``,i={id:n.requestId??n.request?.id,kind:`answered`,question:n.request?.question,source:n.request?.source,risk:n.request?.risk,decisionType:n.decision?.type??`answer`,optionId:n.decision?.optionId,text:e,rationale:r,reason:n.decision?.reason,at:Date.now()};t.addMessage({role:`assistant`,content:`🧠 ${e}${r?`\n\n_${r}_`:``}`,brainDecision:i})}else if(n.event===`brain.decision_ask_human`){let e={id:n.requestId??n.request?.id,kind:`ask_human`,question:n.request?.question,source:n.request?.source,risk:n.request?.risk,decisionType:`ask_human`,rationale:n.decision?.rationale,reason:n.decision?.reason,at:Date.now()};t.addMessage({role:`assistant`,content:`🧠 The Brain escalated this question back to you — it needs human judgement.`,brainDecision:e})}}function Kn(e){let t=En.for(k(e)),n=jn.for(k(e)),r=e.payload;N.getState().pushEvent({id:`memory_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,kind:`memory:event`,timestamp:Date.now(),source:`sage`,target:`leader`,label:r.event.replace(/^memory\./,``),data:r,color:`#a78bfa`,flowGroup:`memory`}),r.event===`memory.injector_run`&&t.getState().pushTrace(r),r.event===`memory.context_snapshot`&&t.getState().applyContextSnapshot(r),n.getState().pushEvent(r),r.event===`memory.staled`?f.warn(`Memory became stale: ${String(r.memoryId??``)}`):r.event===`memory.contradicted`?f.warn(`Memory contradicted: ${String(r.memoryId??``)}`):r.event===`memory.hygiene_completed`&&f.info(`SAGE hygiene completed`)}function qn(e){let t=e.payload,n=typeof t.kind==`string`?t.kind:typeof t.event==`string`?t.event:`collab.event`;N.getState().pushEvent({id:`collab_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,kind:`collab:event`,timestamp:Date.now(),source:`collab`,target:typeof t.sessionId==`string`?t.sessionId:`session`,label:n,magnitude:1,data:t,raw:e.payload,color:`hsl(200, 70%, 55%)`,flowGroup:`collab`}),N.getState().setActive(!0)}function Jn(e){qn(e);let t=e.payload;t?.phase===`consumed`?f.success(`Tool injection applied${t.toolName?` to ${t.toolName}`:``}`):f.info(`Collab tool injection queued`)}function Yn(e){let t=e.payload?.entry;if(!t)return;let n=typeof t.iteration==`number`?t.iteration:0,r=typeof t.task==`string`?t.task:void 0,i=typeof t.status==`string`?t.status:void 0,a=typeof t.at==`string`?t.at:new Date().toISOString();De.getState().appendJournalEntry({iteration:n,task:r,status:i,timestamp:a}),N.getState().pushEvent({id:`eternal_${Date.now()}_${n}`,kind:`eternal:iteration`,timestamp:Date.now(),source:`eternal`,target:`goal`,label:r?`L${n}: ${r}`:`Eternal iteration ${n}`,magnitude:typeof t.costUsd==`number`?t.costUsd:1,data:t,raw:e.payload,color:i===`failure`?`hsl(0, 80%, 55%)`:`hsl(220, 80%, 60%)`,flowGroup:`eternal`}),N.getState().setActive(!0)}function Xn(e){let t=e.payload,n=k(e);x.getState().setEnv({cwd:t.cwd,projectRoot:t.projectRoot,projectName:t.projectRoot.split(/[/\\]/).pop()||t.projectRoot}),g.getState().setTreeLoading(!0,n),Rt(t.projectRoot,n),M().send({type:`files.tree`,payload:n?{path:t.cwd,sessionId:n}:{path:t.cwd}})}function Zn(e){let t=e.payload,n=z.getState().refinePanel,r=k(e)??n?.sessionId??null,i=A(e)??(r?pe(r):null),a=i?.pendingRefinement??null;if(n?.sessionId&&r&&n.sessionId!==r||n?.sessionId&&!i)return;if(!n&&a&&i){i.setRefining(!1);let e=a.text,n=a.images?.length?a.images.map((e,t)=>({id:`pr_${Date.now()}_${t}`,dataUrl:`data:${e.mime};base64,${e.data}`,mediaType:e.mime,bytes:Math.round(e.data.length*3/4)})):void 0,r=n&&n.length>0&&a.mode===`btw`?`queue`:a.mode??`queue`;if(t.error){i.setPendingRefinement(null),i.enqueue(e,r,n);return}let o=t.refined??``;if(!o||bn(o,e)){i.setPendingRefinement(null),i.enqueue(e,r,n);return}i.setPendingRefinement(null),z.getState().setRefinePanel({original:e,refined:o,english:t.english||o,status:`ready`,mode:n&&n.length>0&&a.mode===`btw`?`queue`:a.mode,images:n,...t.refinedWith?{provider:t.refinedWith.provider,model:t.refinedWith.model}:{},error:void 0,errorKind:void 0,sessionId:i.sessionId,resolve:()=>{}});return}if(!n)return;if(t.error){if(t.errorKind===`timeout`&&!n.retried&&t.retryTimeoutMs){z.getState().setRefinePanel({...n,status:`refining`,retried:!0}),M().refineModel(n.original,{timeoutMs:t.retryTimeoutMs});return}z.getState().setRefinePanel({...n,status:`failed`,error:t.error,errorKind:t.errorKind,fallbackRef:t.fallbackRef});return}let o=n.original;if(bn(t.refined,o)){z.getState().setRefinePanel(null);let e=i??F();e.addMessage({role:`user`,content:o}),e.setLoading(!0);let t=e.sessionId===`__unbound__`?void 0:e.sessionId;M().sendMessage(o,void 0,!1,t);return}z.getState().setRefinePanel({...n,status:`ready`,refined:t.refined,english:t.english,...t.refinedWith?{provider:t.refinedWith.provider,model:t.refinedWith.model}:{},error:void 0,errorKind:void 0})}function Qn(e){let t=e.payload;Ce.getState().setInfo({...t,fetchedAt:Date.now()})}function $n(e){let t=e.payload;S.getState().setFiles(t.files??[],t.error??null,t.repoPrefix??``,t.dirs??{})}function er(e){let t=e.payload;S.getState().selectedPath===t.path&&S.getState().setDiff({path:t.path,oldText:t.oldText??``,newText:t.newText??``,binary:t.binary,tooLarge:t.tooLarge,error:t.error})}function tr(e){let t=e.payload;if(!t.ok){f.error(t.error??`Git ${t.action} failed`);return}let n=M();n.getGitChanges(),n.getGitInfo()}function nr(e){let t=e.payload;Me.getState().setSnapshot({count:t.count,maxConcurrent:t.maxConcurrent,jobs:t.jobs??[]})}function rr(e){let t=e.payload;Me.getState().recordFired(t.name,t.ts)}function ir(e){let t=e.payload;f.info(t.message??`🦂 Chimera report ready. No follow-up started; open the mailbox to inspect it.`,8e3);let n=k(e);!t.reportId||!n||!c.getState().recordReport({reportId:t.reportId,sessionId:n,message:t.message??``,findingCount:t.findingCount??0,fileCount:t.fileCount??0,hasActionableFindings:t.hasActionableFindings===!0,receivedAt:Date.now(),actionedAt:null,source:`event`})||t.hasActionableFindings!==!0||A(e)?.addMessage({role:`system`,content:t.message??`🦂 Chimera report ${t.reportId} is ready — findings await review.`,chimeraReport:{reportId:t.reportId,actionable:!0,actionedAt:null}})}function ar(e){let t=k(e);if(!t)return;let n=e.payload.reports??[];c.getState().hydrateReports(t,n.filter(e=>e.reportId&&e.totalFindings>0&&e.lifecycleStatus!==`completed`&&e.lifecycleStatus!==`skipped`).map(e=>{let n=Date.parse(e.reviewedAt);return{reportId:e.reportId,sessionId:t,message:`🦂 Chimera report ready — ${e.totalFindings} finding(s) recorded for this session.`,findingCount:e.totalFindings,fileCount:0,hasActionableFindings:e.hasActionableFindings===!0,receivedAt:Number.isFinite(n)?n:Date.now(),actionedAt:null,source:`hydrate`}}))}var or={"goal-state.updated":Vn,"prefs.updated":Hn,"system_prompt.info":Un,"goal.state":Rn,"goal.progress":zn,"goal.paused":X,"goal.resumed":X,"goal.stopped":X,"goal.cleared":X,"goal.reverted":X,"goal.saved":X,"goal.completed":X,"goal.failed":X,"goal.error":X,"goal.list":Bn,"brain.answer":Wn,"brain.event":Gn,"memory.event":Kn,"collab.event":qn,"collab.injection.granted":Jn,"eternal.iteration":Yn,"working_dir.changed":Xn,"model.refine_result":Zn,"git.info":Qn,"git.changes":$n,"git.diff":er,"git.action_result":tr,"cron.snapshot":nr,"cron.job_fired":rr,"chimera.report_available":ir,"chimera.reports":ar},sr=new Map;function cr(e){let t=e??`__unbound__`,n=sr.get(t);if(n)return n;let r=new Set;return sr.set(t,r),r}function lr(e=F()){b.flush(`__thinking__:${e.sessionId}`);let t=oe(e.sessionId).iteration;e.flushThinkingLog(Math.max(1,t?.index??1)),e.clearThinking()}function ur(e){let t=A(e);if(!t)return;let n=e.payload,r=e=>e.toLocaleString(),i=[...n.tools.breakdown].sort((e,t)=>t.tokens-e.tokens).slice(0,8),a=[...n.messages.breakdown].sort((e,t)=>t.tokens-e.tokens).slice(0,8);t.addMessage({role:`assistant`,content:[`📊 **Context breakdown** (heuristic — 4 chars/token)`,``,`**Total estimate:** ${r(n.total)} tokens`,`• System prompt: ${r(n.systemPrompt)}`,`• Tool schemas: ${r(n.tools.total)} (${n.tools.count} tools)`,`• Messages: ${r(n.messages.total)} (${n.messages.count} messages)`,``,`**Top tool schemas:**`,...i.map(e=>` · ${e.name}: ${r(e.tokens)}`),``,`**Top messages:**`,...a.map(e=>` · #${e.index} ${e.role}: ${r(e.tokens)} — ${e.preview||`(empty)`}`)].join(`
13
+ `)})}function dr(e){let n=e.payload;!n||typeof n.message!=`string`||n.message.startsWith(`Resumed session`)||n.message.includes(`Session is already active`)||n.message.startsWith(`Swapped session`)||(n.success?f.success(n.message):f.error(n.message),M(t.getState().wsUrl).listSavedProviders())}function fr(e){let n=e.payload;if(!n.success||!n.provider||!n.model)return;let r=A(e),i=D(e);if(!r||!i)return;let a=i.data.session;i.setSession({id:a?.id??r.sessionId,startedAt:a?.startedAt??Date.now(),provider:n.provider,model:n.model,...a?.title?{title:a.title}:{}}),r.sessionId===v()&&(t.getState().setProvider(n.provider),t.getState().setModel(n.model));let o=n.previousProvider&&n.previousModel?`${n.previousProvider} / ${n.previousModel}`:R.t(`settings:toast.previousModel`),s=`${n.provider} / ${n.model}`;r.addMessage({role:`system`,content:R.t(n.runActive?`settings:toast.modelSwitchedRunActive`:`settings:toast.modelSwitchedNextRequest`,{from:o,to:s})})}function pr(e){let t=A(e);if(!t)return;j(e);let n=e.payload,r=n.reductions.length?n.reductions.map(e=>`${e.phase}: ${e.saved}`).join(`, `):`no-op`;n.repaired&&(r+=`; repaired ${n.repaired.removedToolUses?.length??0} tool_use, ${n.repaired.removedToolResults?.length??0} tool_result, ${n.repaired.removedMessages} empty messages`),t.addMessage({role:`system`,content:`🗜️ Context compacted: ${n.before} → ${n.after} tokens (saved ~${n.saved}). ${r}`}),D(e)?.patch({lastInputTokens:n.after})}function mr(e){let t=A(e);if(!t)return;j(e);let n=e.payload,r,i;n.budget&&n.budget.availableInputTokens>0?(r=Math.min(100,Math.max(0,Math.round(n.budget.load*100))),i=`input budget`):(r=n.maxContext>0?Math.min(100,Math.max(0,Math.round(n.tokens/n.maxContext*100))):0,i=`context`),t.addMessage({role:`assistant`,content:`Compaction failed at ${n.level} (${r}% ${i}): ${n.message}`,isError:n.fatal}),t.sessionId===v()&&f.error(`Compaction failed: ${n.message}`)}function hr(e){if(!ne(e))return;let t=e.payload,n=`${t.tool}: ${t.pattern}`;t.decision===`always`?f.success(`Always allowed ${n}`):f.warn(`Denied ${n}`)}function gr(e){let t=A(e);if(!t)return;j(e);let n=e.payload,r=n.removedToolUses.length+n.removedToolResults.length+n.removedMessages,i=n.beforeMessages!==void 0&&n.afterMessages!==void 0?` Messages: ${n.beforeMessages} -> ${n.afterMessages}.`:``;t.addMessage({role:`assistant`,content:`Context repaired: removed ${r} orphan protocol item(s).${i} tool_use ${n.removedToolUses.length}, tool_result ${n.removedToolResults.length}.`})}function _r(e){let t=D(e);if(!t)return;j(e);let n=e.payload;t.setContextUsage(n.tokens,n.maxContext)}function vr(e){let t=D(e);if(!t)return;let n=e.payload;t.setEnvRates({maxContext:n.maxContext});let r=t.data;n.source===`provider`&&n.decreased===!0&&typeof n.previousMaxContext==`number`&&n.previousMaxContext>n.maxContext?t.setContextLimitWarning({previousMaxContext:n.previousMaxContext,maxContext:n.maxContext,providerId:n.providerId??r.session?.provider??`provider`,modelId:n.modelId??r.session?.model??`model`}):(n.decreased===!1||n.source===`configured`)&&t.setContextLimitWarning(null)}function yr(e){let t=D(e);if(!t)return;let n=e.payload;t.setContextUsage(n.used,n.limit);let r=n.limit>0?Math.round(n.used/n.limit*100):0;t.sessionId===v()&&f.warn(`Token threshold reached (${r}%)`)}function br(e){let t=k(e),n=e.payload.model||`<unknown>`,r=cr(t);r.has(n)||(r.add(n),(!t||t===v())&&f.warn(`Cost estimate unavailable for ${n}`))}function xr(e){let t=e.payload;se({contextModes:t.modes.map(e=>({id:e.id,name:e.name,description:e.description,thresholds:e.thresholds,preserveK:e.preserveK,eliseThreshold:e.eliseThreshold,custom:e.custom}))}),(D(e)??null)?.setEnvRates({contextMode:t.activeId})}function Sr(e){let t=D(e);if(!t)return;let n=e.payload;t.setEnvRates({contextMode:n.id})}function Cr(e){let t=e.payload;typeof t.sessionId==`string`&&t.sessionId.length!==0&&ee.getState().update(t.sessionId,{stage:typeof t.stage==`string`?t.stage:`open_journal`,loadedBytes:typeof t.loadedBytes==`number`?t.loadedBytes:0,totalBytes:typeof t.totalBytes==`number`?t.totalBytes:0})}function wr(e){let t=e.payload;if(t.phase===`session.resume`||t.phase===`session.focus`){let n=typeof t.requestedSessionId==`string`?t.requestedSessionId:k(e);n&&ee.getState().end(n)}if(t.phase===`todos.get`||typeof t.requestedSessionId==`string`)return;if(t.code===`session_not_ready`){let n=k(e),r=typeof t.content==`string`?t.content:``;if(n&&r){let i=Array.isArray(t.images)?t.images:void 0,a=M();if(a.armNotReadyResend(n,{content:r,freshContext:t.freshContext===!0,...i?{images:i}:{}})){a.resumeSession(n);let t=A(e);t?.addMessage({role:`assistant`,content:`ℹ️ Session is reopening — your message will be resent automatically.`}),t?.setLoading(!1);return}}}let n=A(e)??F();lr(n),n.addMessage({role:`assistant`,content:`[${t.phase}] ${t.message}`,isError:!0}),n.setLoading(!1)}function Tr(e,t=180){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}var Er=640;function Dr(){let[e,t]=(0,G.useState)({isMobile:!1,isSmall:!1,width:0});return(0,G.useEffect)(()=>{if(typeof window>`u`)return;let e=window.matchMedia(`(max-width: 768px)`),n=window.matchMedia(`(max-width: ${Er}px)`),r=()=>{t({isMobile:e.matches,isSmall:n.matches,width:window.innerWidth})};return r(),e.addEventListener(`change`,r),n.addEventListener(`change`,r),()=>{e.removeEventListener(`change`,r),n.removeEventListener(`change`,r)}},[]),e}function Or(){return typeof window>`u`?!1:window.matchMedia(`(max-width: 768px)`).matches}function kr(e){if(typeof e!=`string`)return Date.now();let t=Date.parse(e);return Number.isFinite(t)?t:Date.now()}function Ar(e){return`replay_${Date.now()}_${e}`}function jr(){return typeof window>`u`?!1:window.location.pathname===`/debug`||window.location.pathname===`/analytics`||window.location.pathname===`/refresh-debug`}function Mr(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>!!e&&typeof e==`object`&&e.type===`text`&&typeof e.text==`string`).map(e=>e.text).join(`
14
+ `):``}function Nr(e){if(typeof e==`string`)return e.trim();if(!e||typeof e!=`object`||Array.isArray(e))return``;let t=e;for(let e of[`id`,`name`,`type`]){let n=t[e];if(typeof n==`string`&&n.trim())return n.trim()}return``}function Pr(e,t=[],n=[]){let r=Ye({messages:(Array.isArray(e)?e:[]).filter(e=>!!(e&&typeof e==`object`&&typeof e.role==`string`&&(e.role===`user`||e.role===`assistant`||e.role===`system`))),markers:t.filter(e=>!Ir(e.source)),toolMeta:n,thinkingPlacement:`merged-after`}),i=[];for(let e of r){let t=kr(e.ts),n=Ar(i.length);switch(e.kind){case`user`:i.push({id:n,role:`user`,content:e.text,timestamp:t,...e.images?{attachments:Lr(e.images,n)}:{}});break;case`assistant`:i.push({id:n,role:`assistant`,content:e.text,timestamp:t});break;case`system`:i.push({id:n,role:`system`,content:e.text,timestamp:t});break;case`thinking`:i.push({id:n,role:`system`,content:``,timestamp:t,thinkingLog:{iteration:e.index,text:e.text,startedAt:t,durationMs:0,replayed:!0}});break;case`tool`:i.push({id:n,role:`tool`,content:``,toolName:e.name,toolInput:e.input,toolUseId:e.toolUseId,timestamp:t,...e.output===void 0?{}:{toolResult:e.output},...e.ok===void 0?{}:{isError:!e.ok},...e.durationMs===void 0?{}:{toolDurationMs:e.durationMs}});break;case`marker`:i.push({id:n,role:`system`,content:e.text,timestamp:t,isError:e.level===`error`||void 0})}}return i}var Fr=new Set([`agent_spawned`,`agent_session_linked`,`agent_stopped`,`agent_error`,`delegate_started`,`delegate_completed`]);function Ir(e){return Fr.has(e)}function Lr(e,t){return e.map((e,n)=>{let r=e.mediaType??`image/png`,i=e.data?`data:${r};base64,${e.data}`:e.url;return{id:`${t}_img_${n}`,kind:`image`,mediaType:r,bytes:e.data?Math.floor(e.data.length*3/4):0,...i?{dataUrl:i}:{}}})}function Rr(e){let n=ie(`session.start`,e.payload);n&&(N.getState().pushEvent(n),N.getState().setActive(!0));let r=e?.payload&&typeof e.payload==`object`?e.payload:{},a=r.sessionId;if(!a)return;ee.getState().end(a),`openSessionIds`in r&&ce(Array.isArray(r.openSessionIds)?r.openSessionIds.filter(e=>typeof e==`string`):[]),(r.appVersion||r.latestVersion)&&se({appVersion:String(r.appVersion??``),latestVersion:String(r.latestVersion??``),updateAvailable:!!r.updateAvailable}),Array.isArray(r.providerStatuses)&&ke.getState().hydrate(r.providerStatuses.map(e=>({providerId:e.providerId,model:e.model,state:e.state,reason:e.lastErrorKind??e.state,updatedAt:e.lastFailureAt??Date.now(),stateExpiresAt:e.stateExpiresAt??void 0}))),r.needsSetup&&Pe(`setup`);let s={};r.projectRoot!==void 0&&(s.projectRoot=r.projectRoot),r.projectName!==void 0&&(s.projectName=r.projectName),r.cwd!==void 0&&(s.cwd=r.cwd),Object.keys(s).length>0&&se(s);let c=!o(a);i(a),fe(a),te(a),ae(a);let l=pe(a),u=de(a),f=t.getState(),p=u.data.session,h=Nr(r.provider),_=Nr(r.model),y=h||p?.provider||f.provider||``,b=_||p?.model||f.model||``,S=typeof r.startedAt==`string`?Date.parse(r.startedAt):NaN,ne=Number.isFinite(S)?S:Date.now(),C=!!r.isRunning,re=zr(a),oe=r.replayReason===`focus`,ue=!c&&(oe||v()!==a),E=c||r.reset===!0&&!ue;E?(u.startSession({id:a,startedAt:ne,model:b,provider:y}),En.for(a).getState().clear()):u.setSession({id:a,startedAt:p?.startedAt??ne,model:b,provider:y,...p?.title?{title:p.title}:{}}),u.setEnvRates({maxContext:r.maxContext,mode:r.mode,contextMode:r.contextMode,inputCost:r.inputCost,outputCost:r.outputCost,cacheReadCost:r.cacheReadCost,reasoningEffortLevels:r.reasoningEffortLevels,hasReasoningEffortKey:`reasoningEffortLevels`in r,effortSupported:r.effortSupported===!0||r.effortSupported===!1?r.effortSupported:void 0,hasEffortSupportedKey:`effortSupported`in r,projectReasoningEffort:typeof r.projectReasoningEffort==`string`?r.projectReasoningEffort:void 0,hasProjectEffortKey:`projectReasoningEffort`in r});let D=r.replayMessages,O=Array.isArray(D)&&D.length>0,k=O?Pr(D,r.replayMarkers??[],r.replayToolMeta??[]):[],A=l.messages.length>0,j=A&&(C||ue&&!re);if(r.replayReason===`redisplay`&&A&&k.length>0){let e=l.messages[0]?.timestamp??0,t=k.filter(t=>t.timestamp<e);t.length>0&&l.setMessages([...t,...l.messages])}else k.length>0&&!j?l.setMessages(k):E&&r.reset===!0&&k.length===0&&!C&&l.clearMessages();C||l.clearThinking(),l.setLoading(C);let P=r.replayUsage;if(D&&P){let e=u.data,t=P.input??0,n=P.output??0,r=P.cacheRead??0,i=P.cacheWrite??0;u.patch({totalTokens:{input:t,output:n,cacheRead:r,cacheWrite:i},cost:((t+i)*e.inputCost+n*e.outputCost+r*e.cacheReadCost)/1e6})}let F=r.lastInputTokens;typeof F==`number`&&F>0&&u.patch({lastInputTokens:F});let I=r.clearedSessionId;if(I){let e=new Map;for(let[t,n]of T.getState().agents)n.sessionId!==I&&e.set(t,n);T.setState({agents:e})}Array.isArray(r.agentSessions)&&r.agentSessions.length>0&&T.getState().hydrateAgentSessions(r.agentSessions,a);let L=v(),me=L===`__unbound__`||!o(L),R=w.getState(),he=E&&!O&&!r.needsSetup&&!Re()&&!jr()?{currentView:z.getState().currentView,activeActivity:z.getState().activeActivity,sidebarOpen:z.getState().sidebarOpen}:null;!re&&!me&&L!==a||(R.openTabIds.includes(a)?(m(a),le(a),d(a),R.markSeen(a)):R.openTab(a,{}),y&&b?t.getState().setConfig({provider:y,model:b}):y&&t.getState().setConfig({provider:y}),K(C?`running`:`ready`),E&&(!r.needsSetup&&Re()&&!jr()&&ve({sidebarOpen:!1}),z.getState().setSearchActiveMessageId(null),g.getState().setTreeLoading(!0,a),Rt(x.getState().projectRoot,a),M().send({type:`files.tree`,payload:{path:x.getState().cwd,sessionId:a}})),he&&z.setState(he),O&&!r.needsSetup&&!jr()&&(Re()?ve({sidebarOpen:!1}):z.getState().currentView!==`chat`&&Fe(`chat`)),O&&Or()&&z.getState().setSidebarOpen(!1))}function zr(e){try{return M().consumeRequestedSwitch(e)}catch{return!1}}function Z(e,t){e.sessionId===v()&&t()}function Br(e){let t=A(e),n=D(e);if(!t||!n)return;j(e);let r=e.payload&&typeof e.payload==`object`?e.payload:{},i=Mr(r.content),a=r.usage,o=(a?.input??0)+(a?.cacheRead??0)+(a?.cacheWrite??0);if(o>0&&n.patch({lastInputTokens:o}),r.usage){n.updateUsage(r.usage,r.provider);let{inputCost:e,outputCost:t,cacheReadCost:i}=n.data,a=((r.usage.input??0)*e+(r.usage.cacheWrite??0)*e+(r.usage.output??0)*t+(r.usage.cacheRead??0)*i)/1e6;a>0&&n.addCost(a)}let c=s(r.stopReason);c&&t.setLoading(!1);let l=t.currentAssistantMessageId;if(l){b.flush(l);let e=t.messages.find(e=>e.id===l)?.content??``;i.trim()&&(e.trim()?i.startsWith(e)&&i.length>e.length&&t.updateMessage(l,{content:i}):t.updateMessage(l,{content:i})),t.finalizeMessage(l,{final:c}),r.usage&&(r.usage.output??0)>0&&t.updateMessage(l,{usage:r.usage})}else if(i.trim()){let e=t.addMessage({role:`assistant`,content:i,usage:r.usage&&(r.usage.output??0)>0?r.usage:void 0});t.finalizeMessage(e,{final:c})}t.setCurrentAssistantMessage(null),b.flush(`__thinking__:${t.sessionId}`),t.clearThinking()}function Vr(e){let t=A(e);if(!t)return;j(e);let n=e.payload;b.flush(`__thinking__:${t.sessionId}`),t.flushThinkingLog(n.index),t.clearThinking();let r=D(e),i=r?.data.iteration;r&&i&&r.setIteration({index:n.index,max:i.max})}function Hr(e){let t=A(e);if(!t)return;let n=e.payload;t.addMessage({role:`assistant`,content:`Iteration limit reached: ${n.currentIterations}/${n.currentLimit}.`,isError:!0}),Z(t,()=>f.warn(`Iteration limit reached (${n.currentIterations}/${n.currentLimit})`))}function Ur(e){let t=A(e);if(!t)return;let n=e.payload,r=Math.max(0,Math.round(n.delayMs/100)/10);Z(t,()=>f.warn(`${n.providerId} retry ${n.attempt} after ${r}s (${n.status})`))}function Wr(e){let t=A(e);if(!t)return;let n=e.payload;t.addMessage({role:`assistant`,content:[`Provider error from \`${n.providerId}\` (${n.status}).`,n.description,n.retryable?`_Retryable; WrongStack may recover automatically._`:``].filter(Boolean).join(`
15
+
16
+ `),isError:!0}),Z(t,()=>f.error(`${n.providerId} provider error (${n.status})`))}function Gr(e,n,r){let i=D(n),a=i?.data.session;i&&a&&i.setSession({...a,provider:r.providerId,model:r.model}),e.sessionId===v()&&t.getState().setConfig({provider:r.providerId,model:r.model})}function Kr(e){let t=A(e);if(!t)return;let r=e.payload,i=`${r.from.providerId}/${r.from.model}`,a=`${r.to.providerId}/${r.to.model}`;Gr(t,e,r.to),t.addMessage({role:`assistant`,content:`Provider fallback: \`${i}\` returned ${r.status}; switching to \`${a}\`${r.providerSwitched?` with provider change`:``}.`}),Z(t,()=>f.warn(`Fallback to ${a}`)),n(t.sessionId).pendingFallback&&t.setPendingFallback(null);let o=y.getState().pending;o&&t.sessionId===v()&&o.from.providerId===r.from.providerId&&o.from.model===r.from.model&&(typeof r.requestId==`string`&&r.requestId.length>0&&o.requestId!==r.requestId||y.getState().clear())}function qr(e){let t=A(e);if(!t)return;let n=e.payload,r=`${n.to.providerId}/${n.to.model}`,i=n.from?`${n.from.providerId}/${n.from.model}`:``;Gr(t,e,n.to),t.addMessage({role:`assistant`,content:i?`Model switched: \`${i}\` → \`${r}\``:`Model switched to \`${r}\``}),Z(t,()=>f.info(`Model: ${r}`))}function Jr(e){let t=A(e);if(!t)return;let n=e.payload,r={requestId:n.requestId,from:n.from,status:n.status,candidates:n.candidates,autoSwitchSeconds:n.autoSwitchSeconds,timestamp:Date.now()};if(t.setPendingFallback(r),t.sessionId===v()){y.getState().setPending(r);return}w.getState().setAttention(t.sessionId,!0)}function Yr(e){let t=e.payload;ke.getState().update({providerId:t.providerId,model:t.model,state:t.newState,reason:t.reason,updatedAt:t.timestamp,stateExpiresAt:t.stateExpiresAt,lastErrorKind:t.lastErrorKind,lastErrorStatus:t.lastErrorStatus??void 0,lastErrorMessage:t.lastErrorMessage??void 0,lastSessionId:t.lastSessionId??void 0,lastAgentId:t.lastAgentId??void 0});let n=`${t.providerId}/${t.model}`;t.newState===`blocked`&&t.oldState!==`blocked`?f.warn(`${n} entered the limit-reset waiting room`):t.newState===`healthy`&&t.oldState!==`healthy`&&f.success(`${n} recovered and rejoined model routing`)}function Xr(e){let t=e.payload;if(t&&typeof t==`object`&&`error`in t){ke.getState().setError(`Provider status tracking not available`);return}ke.getState().applySnapshot(t)}function Zr(e){let t=e.payload,n=Array.isArray(t?.lines)?t.lines:[],r=[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=e,n=typeof t.providerId==`string`?t.providerId:``,i=typeof t.model==`string`?t.model:``,a=t.from,o=t.to;if(!n||!i||a!==`healthy`&&a!==`degraded`&&a!==`blocked`||o!==`healthy`&&o!==`degraded`&&o!==`blocked`)continue;let s=t.error??null;r.push({ts:typeof t.ts==`number`?t.ts:0,providerId:n,model:i,from:a,to:o,reason:typeof t.reason==`string`?t.reason:``,expiresAt:typeof t.expiresAt==`number`?t.expiresAt:null,error:s})}ke.getState().setAudit(r)}function Qr(e){let t=A(e);if(!t)return;let n=e.payload;t.addMessage({role:`assistant`,content:`Waiting room skipped \`${n.providerId}/${n.model}\`. ${n.lastError}`})}function $r(e){let t=A(e);if(!t)return;j(e);let n=e.payload;Z(t,()=>f.warn(`Provider stream event skipped: ${n.eventType}`)),t.addMessage({role:`assistant`,content:`Provider stream warning (${n.eventType}): ${n.message}`,isError:!0})}function ei(e){let t=A(e);if(!t)return;j(e);let n=e.payload,r=n.tools||n.kind||`assistant response`;if(n.action===`steer`){Z(t,()=>f.info(`Possible repetition noticed for ${r}; changing approach.`));return}t.addMessage({role:`assistant`,content:`Loop guard stopped the turn: ${r} made no progress ${n.repeatCount} time(s) (iteration ${n.iteration+1}).`,isError:!0}),Z(t,()=>f.warn(`Loop guard stopped the turn`))}function ti(e){let t=A(e);if(!t)return;j(e);let n=e.payload,r=Tr(n.task),i=n.subagentId??n.target,a=T.getState();a.applyEvent({kind:`spawned`,subagentId:i,name:n.target,description:r,sessionId:t.sessionId}),I.getState().recordDelegateStarted(t.sessionId,{target:n.target}),a.applyEvent({kind:`task_started`,subagentId:i,name:n.target,description:r,sessionId:t.sessionId}),a.pushAgentTimelineEntry({subagentId:i,agentName:n.target,content:r,kind:`status`,iteration:0,ts:new Date().toISOString(),status:`delegating`,sessionId:t.sessionId})}function ni(e){let t=A(e);if(!t)return;j(e);let n=e.payload,r=T.getState(),i=n.subagentId??n.target;r.applyEvent({kind:`task_completed`,subagentId:i,name:n.target,sessionId:t.sessionId,status:n.ok?`success`:n.status===`timeout`||n.status===`host_timeout`?`timeout`:`failed`,iterations:n.iterations,toolCalls:n.toolCalls,finalText:n.summary,...n.ok?{}:{failureReason:n.status??`failed`}}),I.getState().recordDelegateCompleted(t.sessionId,{target:n.target,ok:n.ok,toolCalls:n.toolCalls}),r.pushAgentTimelineEntry({subagentId:i,agentName:n.target,content:n.summary,kind:n.ok?`status`:`error`,iteration:n.iterations,ts:new Date().toISOString(),status:n.status??(n.ok?`completed`:`failed`),sessionId:t.sessionId}),n.ok||Z(t,()=>f.warn(`Delegate failed: ${n.target}`))}function ri(e){let t=A(e);if(!t)return;let n=e.payload;t.addMessage({role:`assistant`,content:`Session ${n.sessionId} is damaged: ${n.detail}`,isError:!0}),Z(t,()=>f.error(`Session damage detected`))}function ii(e){let t=A(e);if(!t)return;let n=e.payload;t.addMessage({role:`assistant`,content:`Session rewound to prompt #${n.toPromptIndex}. Removed ${n.removedEvents} event(s); reverted ${n.revertedFiles.length} file(s).`}),Z(t,()=>f.info(`Session rewound`))}function ai(e){let t=A(e);if(!t)return;let n=e.payload;Z(t,()=>f.success(`Checkpoint #${n.promptIndex} written (${n.fileCount} file(s))`))}function oi(e){if(!ne(e))return;let t=e.payload;N.getState().pushEvent({id:`inflight_${Date.now()}`,kind:`session:start`,timestamp:Date.now(),source:`session`,target:`leader`,label:`In-flight: ${t.context}`,magnitude:1,data:t,raw:e.payload,flowGroup:`session`})}function si(e){ne(e)&&e.payload.reason===`recovered`&&f.info(`Recovered previous in-flight operation`)}function ci(){typeof document<`u`&&document.dispatchEvent(new CustomEvent(`chat:session-end`))}function li(e){let t=e.payload,n=O(),r=n&&n!==`__unbound__`?n:null,i=(t.sessions??[]).map(e=>({...e,isCurrent:r?e.id===r:e.isCurrent}));a.getState().setEntries(i,t.error??null)}var ui={"context.debug":ur,"key.operation_result":dr,"model.switch_result":fr,"context.compacted":pr,"compaction.failed":mr,"provider.response":Br,"iteration.completed":Vr,"iteration.limit_reached":Hr,"provider.retry":Ur,"provider.error":Wr,"provider.fallback":Kr,"provider.fallback_pending":Jr,"provider.model_switched":qr,"provider.status_changed":Yr,"provider.active_blocked":Qr,"provider.stream_error":$r,"tool.loop_detected":ei,"delegate.started":ti,"delegate.completed":ni,"trust.persisted":hr,"context.repaired":gr,"ctx.pct":_r,"ctx.max_context":vr,"token.threshold":yr,"token.cost_estimate_unavailable":br,"session.end":ci,"session.resume_progress":Cr,"session.damaged":ri,"session.rewound":ii,"checkpoint.written":ai,"in_flight.started":oi,"in_flight.ended":si,"context.modes.list":xr,"context.mode.changed":Sr,"sessions.list":li,"provider.status.snapshot":Xr,"provider.audit.history":Zr,error:wr};function di(e){let t=e.payload;!t.jobId||!t.kind||U.getState().jobStarted(t.jobId,t.kind)}function fi(e){let t=e.payload;!t.jobId||!t.phase||!Number.isFinite(t.completed)||!Number.isFinite(t.total)||U.getState().jobProgress(t.jobId,{phase:t.phase,completed:t.completed??0,total:t.total??0})}function pi(e){let t=e.payload;t.workspaceId&&U.getState().workspaceCompleted(t.workspaceId)}function mi(e){let t=e.payload;t.snapshot&&U.getState().setSnapshot(t.snapshot,t.stale??!1)}function hi(e){let t=e.payload;t.reportId&&U.getState().reportReady(t.reportId)}function gi(e){let t=e.payload;t.jobId&&U.getState().jobFailed(t.jobId,t.error??`TechStack job failed`)}function _i(e){let t=e.payload;t.jobId&&U.getState().jobCancelled(t.jobId)}var vi={"techstack.job.started":di,"techstack.job.progress":fi,"techstack.workspace.completed":pi,"techstack.snapshot.updated":mi,"techstack.report.ready":hi,"techstack.job.failed":gi,"techstack.job.cancelled":_i};function Q(e){return A(e)??F()}function yi(e){return D(e)??re()}function bi(e){let t=e.payload;Q(e).addMessage({role:`assistant`,content:[`🛠️ **Registered tools** (${t.tools.length})`,``,...t.tools.map(e=>`• \`${e.name}\`${e.params.length?` (${e.params.join(`, `)})`:``} — ${e.description||`_no description_`}`)].join(`
17
+ `)})}function xi(e){let t=e.payload,n=t.text?.trim();Q(e).addMessage({role:`assistant`,content:t.error?`Memory read failed: ${t.error}`:n?`🧠 **Memory** \n\n${n}`:`🧠 **Memory**
18
+
19
+ _empty — nothing remembered yet_`})}function Si(e){let t=e.payload,n=Q(e);if(!t.success){n.addMessage({role:`assistant`,content:`❌ **Config Doctor failed**\n\n${t.error??`Unknown config error.`}`,isError:!0});return}if(!t.changed){n.addMessage({role:`assistant`,content:`✅ **Config Doctor** — active profile config is healthy.\n\n\`${t.configPath}\``});return}let r=t.changes.slice(0,40),i=[t.applied?`✅ **Config Doctor** — repaired ${t.changes.length} field(s).`:`🩺 **Config Doctor** — found ${t.changes.length} repairable field(s).`,``,...r.map(e=>`- \`${e.path}\` — ${e.action===`added`?`missing default`:`invalid shape; default required`}`)];t.changes.length>r.length&&i.push(`- _…and ${t.changes.length-r.length} more_`),i.push(``,`Config: \`${t.configPath}\``),t.applied&&t.backupPath&&i.push(`Backup: \`${t.backupPath}\``),t.applied||i.push(``,"Run `/doctor fix` to apply these repairs."),n.addMessage({role:`assistant`,content:i.join(`
20
+ `)})}function Ci(e){let t=e.payload;if(t.error){Q(e).addMessage({role:`assistant`,content:`❌ ${t.error}`});return}let n=t.memories??[],r=t.stats,i=[`## 🧠 SAGE`];if(r){let e=r.byStatus.active??0,t=r.byStatus.stale??0,n=r.byStatus.archived??0;i.push(`**Total:** ${r.total} · Active: ${e} · Stale: ${t} · Archived: ${n} · Graph edges: ${r.edges}`);let a=Object.entries(r.byKind).filter(([,e])=>e>0).map(([e,t])=>`${e}=${t}`).join(`, `);a&&i.push(`**Kinds:** ${a}`),i.push(``)}if(n.length===0)i.push(`_No entries to display._`);else{for(let e of n.slice(0,20)){let t=e.text.length>80?`${e.text.slice(0,78)}…`:e.text,n=e.tags.length>0?e.tags.map(e=>`\`${e}\``).join(` `):``,r=e.createdAt.slice(0,10);i.push(`- \`${e.id.slice(0,12)}…\` [${e.kind}|${e.status}] ${r} — ${t}${n?` ${n}`:``}`)}n.length>20&&i.push(`_…and ${n.length-20} more_`)}i.push(``),i.push("*Use `/memory` in the TUI or build a Memory Manager panel for full editing.*"),Q(e).addMessage({role:`assistant`,content:i.join(`
21
+ `)})}function wi(e){let t=e.payload;if(t.error){Q(e).addMessage({role:`assistant`,content:`❌ ${t.error}`});return}if(!t.memory){Q(e).addMessage({role:`assistant`,content:`❌ Memory not found.`});return}let n=t.memory,r=n.tags.length>0?n.tags.map(e=>`\`${e}\``).join(` `):`—`,i=n.anchors.length>0?n.anchors.map(e=>e.path??e.type).join(`, `):`—`,a=[`## 🧠 Memory: \`${n.id}\``,``,`**Text:** ${n.text}`,`**Kind:** \`${n.kind}\` · **Status:** \`${n.status}\``,`**Created:** ${n.createdAt.slice(0,10)} · **Updated:** ${n.updatedAt.slice(0,10)}`,`**Importance:** ${n.importance} · **Confidence:** ${n.confidence}`,`**Tags:** ${r}`,`**Anchors:** ${i}`];Q(e).addMessage({role:`assistant`,content:a.join(`
22
+ `)})}function Ti(e){let t=e.payload;if(t.error){Q(e).addMessage({role:`assistant`,content:`❌ Update failed: ${t.error}`});return}if(t.memory){let n=String(t.memory.id??``);Q(e).addMessage({role:`assistant`,content:`✅ Memory \`${n}\` updated.`})}}function Ei(e){let t=e.payload;if(t.error){Q(e).addMessage({role:`assistant`,content:`❌ Failed to create memory: ${t.error}`});return}if(t.memory){let n=String(t.memory.id??``);Q(e).addMessage({role:`assistant`,content:`✅ Memory \`${n}\` created.`})}}function Di(e){let t=e.payload,n=Q(e);if(t.error){n.addMessage({role:`assistant`,content:`❌ Recover failed: ${t.error}`});return}if(!t.memory)return;let r=String(t.memory.id??``);if(t.noop){let e=t.activeId??r;n.addMessage({role:`assistant`,content:`ℹ️ Nothing to recover — \`${e}\` is already the active version.`});return}n.addMessage({role:`assistant`,content:`✅ Memory \`${r}\` recovered.`})}function Oi(e){let t=e.payload,n=Q(e);if(t.error){n.addMessage({role:`assistant`,content:`❌ Candidate resolve failed: ${t.error}`});return}if(!t.candidate)return;let r=t.resolvedAction===`reject`?`rejected`:`accepted`;n.addMessage({role:`assistant`,content:`✅ Candidate \`${t.candidate.id}\` ${r}.`})}function ki(e){let t=e.payload,n=Q(e);if(t.error){n.addMessage({role:`assistant`,content:`❌ Backfill failed: ${t.error}`});return}let r=`examined ${t.examined??0} · recoverable ${t.recoverable??0} · recovered ${t.recovered??0}`;n.addMessage({role:`assistant`,content:t.dryRun?`ℹ️ Backfill preview (dry-run) — ${r}. Re-run with apply to write.`:`✅ Backfill applied — ${r}.`})}function Ai(e){let t=e.payload;if(!t.enabled){Q(e).addMessage({role:`assistant`,content:`🎯 **Skills**
23
+
24
+ _disabled (config.features.skills = false)_`});return}let n=[`🎯 **Skills** (${t.skills.length})`,``,...t.skills.length===0?[`_none registered_`]:t.skills.map(e=>`• \`${e.name}\`${e.version?` v${e.version}`:``} _(${e.source})_ — ${e.description||e.trigger||`_no description_`}`)];t.error&&n.push(``,`⚠ ${t.error}`),Q(e).addMessage({role:`assistant`,content:n.join(`
25
+ `)})}function ji(e){let t=e.payload;yi(e).setDroppedTools((t.maxTools??0)>0?t.droppedTools??0:0),Q(e).addMessage({role:`assistant`,content:[`🩺 **Runtime diagnostics**`,``,`**Provider:** \`${t.provider}\` / \`${t.model}\``,`**Mode:** \`${t.mode}\``,`**Session:** \`${t.sessionId}\``,`**CWD:** \`${t.cwd}\``,``,`**Tools:** ${t.tools.count}`,`**Messages:** ${t.messages} · **Todos:** ${t.todos}`,`**Usage:** ${t.usage.input.toLocaleString()} in · ${t.usage.output.toLocaleString()} out${t.usage.cacheRead?` · ${t.usage.cacheRead.toLocaleString()} cache`:``}`,``,`**Features:** memory=${t.features.memory?`✓`:`✗`} · skills=${t.features.skills?`✓`:`✗`} · modelsRegistry=${t.features.modelsRegistry?`✓`:`✗`}`].join(`
26
+ `)})}function Mi(e){let t=e.payload,n=Math.floor(t.elapsedMs/1e3),r=n<60?`${n}s`:n<3600?`${Math.floor(n/60)}m ${n%60}s`:`${Math.floor(n/3600)}h ${Math.floor(n%3600/60)}m`,i=yi(e).data.lastInputTokens,a=t.currentRequest?.cacheRead??0;yi(e).setCacheStats(t.cache?{readTokens:t.cache.readTokens,writeTokens:t.cache.writeTokens,hitRatio:t.cache.hitRatio,providers:t.cache.providers??[],coverageTokens:Math.max(0,Math.min(i,a))}:null),Q(e).addMessage({role:`assistant`,content:[`📈 **Session stats**`,``,`**Session:** \`${t.sessionId}\``,`**Provider/Model:** \`${t.provider}\` / \`${t.model}\``,`**Elapsed:** ${r}`,``,`**Usage:** ${t.usage.input.toLocaleString()} in · ${t.usage.output.toLocaleString()} out`,...t.cache&&t.cache.readTokens>0?[`**Cache:** ${t.cache.readTokens.toLocaleString()} read · ${t.cache.writeTokens.toLocaleString()} write · hit ratio ${(t.cache.hitRatio*100).toFixed(1)}%`]:[],`**Cost:** ${t.cost.toFixed(4)}`,``,`**Messages:** ${t.messages} · **Files read:** ${t.readFiles} · **Tools available:** ${t.tools}`,...t.sideEffectCount?[`**Side effects:** ⚠ ${t.sideEffectCount}`]:[]].join(`
27
+ `)})}function Ni(e){let t=e.payload,n=D(e);n&&n.setTodos(t.todos??[])}function Pi(e){let t=e.payload;x.getState().setModes(t.modes.map(e=>({id:e.id,name:e.name,description:e.description}))),yi(e).setEnvRates({mode:t.activeId})}function $(e){Se.getState().handleResult(e.type,e.payload)}var Fi={...dt,...ui,...yn,...on,...or,...Mt,...vi,"config.doctor.result":Si,"session.start":e=>{Rr(e),Nt()},"specs.list":e=>{let t=e.payload;Oe.getState().setSpecs(t.specs??[])},"specs.detail":e=>{Oe.getState().setDetail(e.payload)},"sdd.board.snapshot":e=>{Ee.getState().setSnapshot(e.payload)},"sdd.board.list":e=>{let t=e.payload;Ee.getState().setBoards(t.boards??[])},"sdd.board.lifecycle_result":e=>{let t=e.payload,n=Ee.getState();n.setLifecycleResult({...t,at:Date.now()}),n.setDestroying(!1),t.op===`destroy`&&t.ok&&xe.getState().reset()},"sdd.spec.snapshot":e=>{xe.getState().setSnapshot(e.payload)},"sdd.spec.agent_text":e=>{xe.getState().setAgentText(e.payload.text??``)},"sdd.spec.error":e=>{xe.getState().setError(e.payload.message??`Error`)},"sdd.run.started":e=>{xe.getState().setStartedRunId(e.payload.runId??null)},"goal.assess.result":e=>{let t=e.payload;we.getState().setResult({realistic:t.realistic,durationClaimed:t.durationClaimed,explanation:t.explanation,recommendedDuration:t.recommendedDuration,concerns:t.concerns,parseFailed:t.parseFailed,parseError:t.parseError,reqSeq:t.reqSeq??0})},"kanban.list":$,"kanban.get":$,"kanban.health":$,"kanban.workbench":$,"kanban.create":$,"kanban.duplicate":$,"kanban.update":$,"kanban.delete":$,"kanban.generate":$,"kanban.snapshot":$,"kanban.taskgraph.export":$,"kanban.taskgraph.sync":$,"kanban.task.ready":$,"kanban.task.add":$,"kanban.task.split":$,"kanban.task.merge":$,"kanban.task.update":$,"kanban.task.move":$,"kanban.task.copy":$,"kanban.task.transfer":$,"kanban.task.transition":$,"kanban.task.chain":$,"kanban.task.chain.get":$,"kanban.task.claim":$,"kanban.task.release":$,"kanban.task.metric.add":$,"kanban.task.metric.update":$,"kanban.task.check.add":$,"kanban.task.check.update":$,"kanban.task.note.add":$,"kanban.task.assign":$,"kanban.task.dispatch":$,"kanban.task.remove":$,"kanban.task.get":$,"kanban.board.history":$,"kanban.run.start":$,"kanban.supervisor.status":$,"kanban.supervisor.audit":$,"kanban.task.verify":$,"kanban.task.verification_started":$,"kanban.task.verification_completed":$,"kanban.decomposition.approve":$,"kanban.decomposition.reject":$,"kanban.decomposition.resolved":$,"kanban.decomposition.applied":$,"tools.list":bi,"memory.list":xi,"memory.sage.list":Ci,"memory.sage.get":wi,"memory.sage.update":Ti,"memory.sage.remember":Ei,"memory.sage.recover":Di,"memory.sage.candidateResolve":Oi,"memory.sage.backfillRecoverable":ki,"skills.list":Ai,"diag.get":ji,"stats.get":Mi,side_effects:e=>{let t=e.payload;Te.for(k(e)).getState().setSideEffects(t.sideEffects??[])},"todos.updated":Ni,"todos.cleared":e=>{let t=D(e);t&&t.setTodos([])},"agent.timeline.message":e=>{let t=e.payload;T.getState().pushAgentTimelineEntry({subagentId:t.subagentId,sessionId:k(e)??void 0,agentName:t.agentName,content:t.content,kind:t.kind,iteration:t.iteration,ts:t.ts,toolName:t.toolName,toolOk:t.toolOk,costUsd:t.costUsd})},"agent.status_changed":e=>{let t=e.payload;T.getState().pushAgentTimelineEntry({subagentId:t.subagentId,sessionId:k(e)??void 0,agentName:t.agentName,content:t.summary??t.status,kind:`status`,iteration:0,ts:t.ts,status:t.status})},"tasks.updated":e=>{},"plan.updated":e=>{},"modes.list":Pi,"session.checkpoints":e=>{},"process.list":e=>{},"projects.list":e=>{},"projects.added":e=>{},"projects.selected":e=>{},"tool.disabled":e=>{},"tool.enabled":e=>{},"provider.response":e=>{Br(e)},"tool.progress":e=>{wt(e);let t=V(e),n=B.getState();for(let e of t)n.recordFileEvent(e)},"tool.started":e=>{Ct(e);let t=V(e);t.length>0&&B.getState().startActivities(t)},"tool.executed":e=>{Tt(e);let t=e.payload;t.id&&B.getState().finishTool(t.id,{durationMs:t.durationMs,ok:t.ok!==!1})},"codemap.tool_started":e=>{j(e);let t=V(e);t.length>0&&B.getState().startActivities(t)},"codemap.tool_executed":e=>{j(e);let t=e.payload;t.id&&B.getState().finishTool(t.id,{durationMs:t.durationMs,ok:t.ok!==!1})},"codemap.file_event":e=>{let t=V(e),n=B.getState();for(let e of t)n.recordFileEvent(e)},"codemap.index_updated":e=>{let t=e.payload;Ie.getState().notifyIndexUpdated(t?.at)},"file.saved":e=>{let t=V(e);if(t.length>0){let e=B.getState();for(let n of t)e.recordFileEvent(n)}},"memory.event":e=>{Kn(e);let t=V(e);if(t.length>0){let e=B.getState();for(let n of t)e.recordActivity(n)}}};function Ii(e){let t=[];for(let[n,r]of Object.entries(Fi))r&&t.push(e.on(n,t=>{e.consumeSuppressedChatEcho(n)||r(t)}));return()=>{for(let e of t)e()}}function Li(){let{autoConnect:e,wsUrl:n}=t(),r=t(e=>e.setWsStatus);(0,G.useEffect)(()=>{if(!e)return;nt();let t=M(n),i=!1,a=t.onStatus(e=>{i||r(e)});t.connect().then(()=>{if(!i){try{let e=new URLSearchParams(window.location.search).get(`session`);e&&t.resumeSessionById(e)}catch{}t.getPrefs(ue()??void 0),t.getSystemPrompt()}}).catch(e=>{i||console.warn(JSON.stringify({level:`warn`,event:`webui.ws_connection_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))});let o=Ii(t);return()=>{i=!0,o(),a()}},[e,n,r])}function Ri(){let{wsUrl:e}=t(),n=M(e),r=(0,G.useCallback)((e,t,r=!1)=>n.isConnected?r?n.sendMessage(e,t,!0):n.sendMessage(e,t):null,[n]),i=(0,G.useCallback)(()=>n.sendAbort(),[n]),o=(0,G.useCallback)(e=>n.adviseTopic(e),[n]),s=(0,G.useCallback)(e=>n.sendMailboxMessage(e),[n]),{hideConfirm:c}=z(),l=(0,G.useCallback)((e,t)=>{n.sendConfirm(e,t),E(e),c()},[n,c]),u=(0,G.useCallback)((e,t)=>n.switchModel(e,t),[n]),d=(0,G.useCallback)(()=>n.listProviders(),[n]),f=(0,G.useCallback)(e=>n.listProviderModels(e),[n]),p=(0,G.useCallback)(()=>n.listSavedProviders(),[n]),m=(0,G.useCallback)((e,t,r)=>n.addKey(e,t,r),[n]),h=(0,G.useCallback)((e,t,r)=>n.updateKey(e,t,r),[n]),g=(0,G.useCallback)((e,t)=>n.deleteKey(e,t),[n]),_=(0,G.useCallback)((e,t)=>n.setActiveKey(e,t),[n]),v=(0,G.useCallback)((e,t,r,i,a,o)=>n.addProvider(e,t,r,i,a,o),[n]),ee=(0,G.useCallback)(e=>n.removeProvider(e),[n]),te=(0,G.useCallback)(e=>{a.getState().setLoading(!0),n.listSessions(e)},[n]),y=(0,G.useCallback)(e=>n.deleteSession(e),[n]),b=(0,G.useCallback)((e,t)=>{a.getState().updateEntryName(e,t),n.renameSession(e,t)},[n]),x=(0,G.useCallback)(e=>n.resumeSessionById(e),[n]),S=(0,G.useCallback)(()=>n.newSession(),[n]),ne=(0,G.useCallback)(e=>n.inspectSession(e),[n]),C=(0,G.useCallback)(()=>n.saveSession(),[n]),re=(0,G.useCallback)(e=>n.listTools(e),[n]),ie=(0,G.useCallback)(e=>n.listMemory(e),[n]),ae=(0,G.useCallback)(e=>n.listSageMemories(e),[n]),oe=(0,G.useCallback)((e,t)=>n.listSageMemoriesPage(e,t),[n]),w=(0,G.useCallback)((e,t)=>n.searchSageBreakdown(e,t),[n]),se=(0,G.useCallback)((e,t)=>n.listMemoryCandidates(e,t),[n]),ce=(0,G.useCallback)((e,t)=>n.getSage(e,t),[n]),le=(0,G.useCallback)((e,t,r)=>n.getSageGraph(e,t,r),[n]),ue=(0,G.useCallback)((e,t,r)=>n.updateSage(e,t,r),[n]),T=(0,G.useCallback)((e,t)=>n.deleteSage(e,t),[n]),D=(0,G.useCallback)((e,t)=>n.rememberSage(e,t),[n]),O=(0,G.useCallback)((e,t)=>n.findMemoriesForFile(e,t),[n]),k=(0,G.useCallback)((e,t)=>n.recoverSage(e,t),[n]),de=(0,G.useCallback)((e,t)=>n.resolveMemoryCandidate(e,t),[n]),A=(0,G.useCallback)((e,t)=>n.backfillRecoverable(e,t),[n]),j=(0,G.useCallback)(e=>n.listSkills(e),[n]),N=(0,G.useCallback)(e=>n.getDiag(e),[n]),fe=(0,G.useCallback)(e=>n.getStats(e),[n]),pe=(0,G.useCallback)(()=>n.getPlan(),[n]),P=(0,G.useCallback)(()=>n.listModes(),[n]),F=(0,G.useCallback)(e=>n.switchMode(e),[n]),I=(0,G.useCallback)(()=>n.listContextModes(),[n]),L=(0,G.useCallback)(e=>n.switchContextMode(e),[n]),me=(0,G.useCallback)(e=>n.createContextMode(e),[n]),R=(0,G.useCallback)((e,t)=>n.updateContextMode(e,t),[n]),he=(0,G.useCallback)(e=>n.deleteContextMode(e),[n]),ge=(0,G.useCallback)(()=>n.repairContext(),[n]),_e=(0,G.useCallback)((e,t)=>n.refineModel(e,t),[n]),ve=(0,G.useCallback)(e=>n.switchAutonomy(e),[n]),B=(0,G.useCallback)(e=>n.updatePrefs(e),[n]);return{client:n,sendMessage:r,adviseTopic:o,sendAbort:i,sendMailboxMessage:s,sendConfirm:l,switchModel:u,listProviders:d,listProviderModels:f,listSavedProviders:p,addKey:m,updateKey:h,deleteKey:g,setActiveKey:_,addProvider:v,removeProvider:ee,listSessions:te,deleteSession:y,renameSession:b,resumeSession:x,newSession:S,inspectSession:ne,saveSession:C,listTools:re,listMemory:ie,listSageMemories:ae,listSageMemoriesPage:oe,searchSageBreakdown:w,listMemoryCandidates:se,getSage:ce,getSageGraph:le,updateSage:ue,deleteSage:T,rememberSage:D,findMemoriesForFile:O,recoverSage:k,resolveMemoryCandidate:de,backfillRecoverable:A,listSkills:j,getDiag:N,getStats:fe,getPlan:pe,listModes:P,switchMode:F,listContextModes:I,switchContextMode:L,createContextMode:me,updateContextMode:R,deleteContextMode:he,repairContext:ge,toggleGoalAutonomous:(0,G.useCallback)(e=>{n.send({type:`goal.toggleAutonomous`,payload:{autonomous:e}})},[n]),startGoal:(0,G.useCallback)((e,t,r=!0)=>{n.send({type:`goal.start`,payload:{title:e,phases:t,autonomous:r}})},[n]),pauseGoal:(0,G.useCallback)(()=>{n.send({type:`goal.pause`,payload:{}})},[n]),resumeGoal:(0,G.useCallback)(()=>{n.send({type:`goal.resume`,payload:{}})},[n]),stopGoal:(0,G.useCallback)(()=>{n.send({type:`goal.stop`,payload:{}})},[n]),selectGoal:(0,G.useCallback)(e=>{n.send({type:`goal.selectPhase`,payload:{phaseId:e}})},[n]),switchAutonomy:ve,updatePrefs:B,refineModel:_e,stageGit:(0,G.useCallback)(e=>n.stageGit(e),[n]),unstageGit:(0,G.useCallback)(e=>n.unstageGit(e),[n]),discardGit:(0,G.useCallback)(e=>n.discardGit(e),[n]),commitGit:(0,G.useCallback)(e=>n.commitGit(e),[n])}}export{En as a,jn as i,Li as n,ot as o,Dr as r,Re as s,Ri as t};
@@ -0,0 +1 @@
1
+ import{Ja as e,qa as t}from"./vendor-UFryhfbN.js";function n(...n){return t(e(n))}function r(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`}export{r as n,n as t};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ga as t,jt as n,lt as r,or as i,ta as a}from"./vendor-DZ9_OO6N.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./dialog-DPl7DolS.js";import{t as f}from"./button-Dhmop_yM.js";var p=e(t(),1);async function m(e=``){let t=await fetch(`${e}/api/vector-memory/status`,{credentials:`include`});if(!t.ok)throw Error(`status failed: HTTP ${t.status}`);return await t.json()}async function h(e,t={}){let n=new URLSearchParams;n.set(`q`,e),t.limit!==void 0&&n.set(`limit`,String(t.limit)),t.threshold!==void 0&&n.set(`threshold`,String(t.threshold)),t.similarity===!0&&n.set(`similarity`,`1`);let r=await fetch(`${t.baseUrl??``}/api/vector-memory/search?${n.toString()}`,{credentials:`include`});if(!r.ok)throw Error(`search failed: HTTP ${r.status}`);return await r.json()}function g(e,t=170){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}async function _(e,t={}){let n=await fetch(`${t.baseUrl??``}/api/vector-memory/store/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`});if(!n.ok)throw Error(`forget failed: HTTP ${n.status}`);return await n.json()}var v=r();function y({hit:e,busy:t,error:r,onCancel:a,onConfirm:p,onOpenChange:m}){return(0,v.jsx)(d,{open:e!==null,onOpenChange:m,children:(0,v.jsxs)(c,{className:`max-w-md`,children:[(0,v.jsxs)(o,{children:[(0,v.jsx)(`span`,{className:`mb-2 flex size-10 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,v.jsx)(n,{className:`size-4`})}),(0,v.jsx)(l,{children:`Forget this vector memory?`}),(0,v.jsx)(u,{className:`leading-6`,children:`This removes the entry and its embedding from the vector memory store.`})]}),(0,v.jsx)(`div`,{className:`border border-border/70 bg-background/45 p-3 text-xs text-muted-foreground`,children:g(e?.text??``,180)}),r===void 0?null:(0,v.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,children:r}),(0,v.jsxs)(s,{children:[(0,v.jsx)(f,{variant:`outline`,onClick:a,disabled:t,children:`Cancel`}),(0,v.jsxs)(f,{variant:`destructive`,onClick:p,disabled:t,children:[t?(0,v.jsx)(i,{className:`size-4 animate-spin`}):(0,v.jsx)(n,{className:`size-4`}),t?`Forgetting…`:`Forget memory`]})]})]})})}function b({baseUrl:e=``}={}){let[t,n]=(0,p.useState)(),[r,i]=(0,p.useState)(),[o,s]=(0,p.useState)(``),[c,l]=(0,p.useState)(10),[u,d]=(0,p.useState)(void 0),[f,b]=(0,p.useState)([]),[S,C]=(0,p.useState)(),[w,T]=(0,p.useState)(),[E,D]=(0,p.useState)(!1),[O,k]=(0,p.useState)(null),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)(!1),[P,F]=(0,p.useState)(),[I,L]=(0,p.useState)(0),R=(0,p.useRef)(0),z=(0,p.useRef)(!1),B=(0,p.useRef)(e);(0,p.useEffect)(()=>{let t=!1;return B.current!==e&&(B.current=e,z.current=!1,n(void 0),i(void 0)),m(e).then(e=>{t||(z.current=!0,n(e),i(void 0))}).catch(e=>{t||z.current||(n(void 0),i(e instanceof Error?e.message:String(e)))}),()=>{t=!0}},[e,I]);let V=async()=>{let t=o.trim();if(t.length!==0){D(!0),T(void 0),k(null),j(null),F(void 0);try{let n=await h(t,{limit:c,...u===void 0?{}:{threshold:u},similarity:!0,baseUrl:e});b(n.hits),C(n.similarity)}catch(e){b([]),C(void 0),T(e instanceof Error?e.message:String(e))}finally{R.current+=1,D(!1)}}},H=async()=>{if(A===null)return;let t=A.id,n=R.current,r=f,i=S;N(!0),F(void 0);try{let{removed:a}=await _(t,{baseUrl:e});if(a){if(R.current===n){let e=r.findIndex(e=>e.id===t);b(r.filter(e=>e.id!==t)),i!==void 0&&e>=0&&C(i.filter((t,n)=>n!==e).map(t=>t.filter((t,n)=>n!==e))),O===t&&k(null)}j(e=>e?.id===t?null:e),L(e=>e+1)}else F(`The store reported the entry was not removed.`)}catch(e){F(e instanceof Error?e.message:String(e))}finally{N(!1)}};return r===void 0?t===void 0?(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--loading`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsx)(`p`,{children:`Loading status…`})]}):t.enabled?(0,v.jsxs)(`div`,{className:`vector-memory-panel`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsxs)(`dl`,{className:`vector-memory-panel__status`,children:[(0,v.jsx)(`dt`,{children:`Active provider`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.providerId??`unknown`})}),(0,v.jsx)(`dt`,{children:`Model`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.modelId??`unknown`})}),(0,v.jsx)(`dt`,{children:`Dimensions`}),(0,v.jsx)(`dd`,{children:t.dimensions??`unknown`}),(0,v.jsx)(`dt`,{children:`Entries / vectors`}),(0,v.jsxs)(`dd`,{children:[t.entries??0,` / `,t.vectors??0]}),(0,v.jsx)(`dt`,{children:`Store path`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.storePath??`(project root)`})}),(0,v.jsx)(`dt`,{children:`Model cache`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.modelCacheDir??`(project root)`})}),(0,v.jsx)(`dt`,{children:`Providers`}),(0,v.jsx)(`dd`,{children:t.providers?.join(`, `)??``}),t.cache?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`dt`,{children:`Embedding cache`}),(0,v.jsxs)(`dd`,{children:[t.cache.entries,` entries · `,t.cache.providers,` provider`,t.cache.providers===1?``:`s`,` · `,t.cache.totalUseCount,` hits`]})]}):null]}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__search`,children:[(0,v.jsx)(`label`,{htmlFor:`vm-query`,children:`Query`}),(0,v.jsx)(`input`,{id:`vm-query`,type:`text`,value:o,onChange:e=>s(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&V()},placeholder:`apple banana`}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__controls`,children:[(0,v.jsxs)(`label`,{children:[`limit`,(0,v.jsx)(`input`,{type:`number`,min:1,max:50,value:c,onChange:e=>l(Math.max(1,Math.min(50,Number(e.currentTarget.value)||10)))})]}),(0,v.jsxs)(`label`,{children:[`threshold`,(0,v.jsx)(`input`,{type:`number`,min:0,max:1,step:.05,value:u??``,onChange:e=>{let t=e.currentTarget.value;d(t===``?void 0:Number.parseFloat(t))}})]}),(0,v.jsx)(`button`,{type:`button`,onClick:()=>void V(),disabled:E,children:E?`Searching…`:`Search`})]})]}),w===void 0?null:(0,v.jsxs)(`p`,{className:`vector-memory-panel__error`,children:[`Search error: `,w]}),(0,v.jsxs)(`ol`,{className:`vector-memory-panel__hits`,children:[f.map(e=>{let t=O===e.id;return(0,v.jsxs)(`li`,{className:t?`vector-memory-panel__hit vector-memory-panel__hit--expanded`:`vector-memory-panel__hit`,children:[(0,v.jsxs)(`button`,{type:`button`,className:`vector-memory-panel__hit-toggle`,"aria-expanded":t,onClick:()=>k(t?null:e.id),children:[(0,v.jsx)(a,{"aria-hidden":`true`,className:t?`vector-memory-panel__hit-chevron vector-memory-panel__hit-chevron--open`:`vector-memory-panel__hit-chevron`}),(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-score`,children:e.score.toFixed(3)}),e.summary?(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-summary`,children:e.summary}):null]}),(0,v.jsx)(`p`,{className:`vector-memory-panel__hit-text`,children:t?e.text:g(e.text)}),e.tags.length>0?(0,v.jsx)(`p`,{className:`vector-memory-panel__hit-tags`,children:e.tags.map(e=>(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-tag`,children:e},e))}):null,t?(0,v.jsxs)(`div`,{className:`vector-memory-panel__hit-detail`,children:[(0,v.jsxs)(`dl`,{className:`vector-memory-panel__hit-fields`,children:[(0,v.jsx)(`dt`,{children:`id`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:e.id})}),(0,v.jsx)(`dt`,{children:`score`}),(0,v.jsx)(`dd`,{children:e.score.toFixed(3)}),e.summary?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`dt`,{children:`summary`}),(0,v.jsx)(`dd`,{children:e.summary})]}):null]}),(0,v.jsx)(`div`,{className:`vector-memory-panel__hit-actions`,children:(0,v.jsx)(`button`,{type:`button`,className:`vector-memory-panel__forget`,onClick:()=>{F(void 0),j(e)},children:`Forget`})})]}):null]},e.id)}),f.length===0&&E===!1&&o.trim().length>0?(0,v.jsx)(`li`,{className:`vector-memory-panel__no-hits`,children:`No results.`}):null]}),S!==void 0&&S.length>1?(0,v.jsxs)(`div`,{className:`vector-memory-panel__heatmap`,"data-testid":`vector-memory-heatmap`,children:[(0,v.jsx)(`h4`,{children:`Result similarity`}),(0,v.jsx)(`p`,{className:`vector-memory-panel__heatmap-hint`,children:`Pairwise cosine similarity between returned hits. Darker cells = more similar. A bright diagonal with mostly dark off-diagonals means results form a tight cluster; a noisy grid means the search returned mixed topics.`}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__heatmap-grid`,style:{gridTemplateColumns:`auto repeat(${S.length}, minmax(20px, 1fr))`},role:`table`,"aria-label":`Pairwise cosine similarity between returned hits`,children:[(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-corner`}),S.map((e,t)=>(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-col-label`,children:t+1},`col-${t}`)),S.map((e,t)=>(0,v.jsx)(x,{row:e,index:t},`row-${t}`))]})]}):null,(0,v.jsx)(y,{hit:A,busy:M,error:P,onCancel:()=>j(null),onConfirm:()=>void H(),onOpenChange:e=>{!e&&!M&&j(null)}})]}):(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--disabled`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsx)(`p`,{children:`Disabled — the webui-server host does not have a vector memory store wired.`})]}):(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--error`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsxs)(`p`,{children:[`Status unavailable: `,r]})]})}function x({row:e,index:t}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-row-label`,children:t+1}),e.map((e,n)=>{let r=t===n,i=Math.max(0,Math.min(1,e)),a=95-i*60,o=`hsl(220, ${r?0:35}%, ${a}%)`;return(0,v.jsx)(`div`,{className:r?`vector-memory-panel__heatmap-cell vector-memory-panel__heatmap-cell--diagonal`:`vector-memory-panel__heatmap-cell`,style:{background:o},role:`cell`,"aria-label":`hit ${t+1} vs hit ${n+1}: ${i.toFixed(2)}`,title:`hit ${t+1} ↔ hit ${n+1}: ${i.toFixed(3)}`,children:i>=.5?i.toFixed(2):``},`cell-${t}-${n}`)})]})}export{b as VectorMemoryPanel};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Mt as t,ao as n,fr as r,ua as i,ut as a}from"./vendor-UFryhfbN.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./dialog-9eW9sG90.js";import{t as f}from"./button-C_EYpeP-.js";var p=e(n(),1);async function m(e=``){let t=await fetch(`${e}/api/vector-memory/status`,{credentials:`include`});if(!t.ok)throw Error(`status failed: HTTP ${t.status}`);return await t.json()}async function h(e,t={}){let n=new URLSearchParams;n.set(`q`,e),t.limit!==void 0&&n.set(`limit`,String(t.limit)),t.threshold!==void 0&&n.set(`threshold`,String(t.threshold)),t.similarity===!0&&n.set(`similarity`,`1`);let r=await fetch(`${t.baseUrl??``}/api/vector-memory/search?${n.toString()}`,{credentials:`include`});if(!r.ok)throw Error(`search failed: HTTP ${r.status}`);return await r.json()}function g(e,t=170){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}async function _(e,t={}){let n=await fetch(`${t.baseUrl??``}/api/vector-memory/store/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`});if(!n.ok)throw Error(`forget failed: HTTP ${n.status}`);return await n.json()}var v=a();function y({hit:e,busy:n,error:i,onCancel:a,onConfirm:p,onOpenChange:m}){return(0,v.jsx)(d,{open:e!==null,onOpenChange:m,children:(0,v.jsxs)(c,{className:`max-w-md`,children:[(0,v.jsxs)(o,{children:[(0,v.jsx)(`span`,{className:`mb-2 flex size-10 items-center justify-center border border-destructive/35 bg-destructive/10 text-destructive`,children:(0,v.jsx)(t,{className:`size-4`})}),(0,v.jsx)(l,{children:`Forget this vector memory?`}),(0,v.jsx)(u,{className:`leading-6`,children:`This removes the entry and its embedding from the vector memory store.`})]}),(0,v.jsx)(`div`,{className:`border border-border/70 bg-background/45 p-3 text-xs text-muted-foreground`,children:g(e?.text??``,180)}),i===void 0?null:(0,v.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,children:i}),(0,v.jsxs)(s,{children:[(0,v.jsx)(f,{variant:`outline`,onClick:a,disabled:n,children:`Cancel`}),(0,v.jsxs)(f,{variant:`destructive`,onClick:p,disabled:n,children:[n?(0,v.jsx)(r,{className:`size-4 animate-spin`}):(0,v.jsx)(t,{className:`size-4`}),n?`Forgetting…`:`Forget memory`]})]})]})})}function b({baseUrl:e=``}={}){let[t,n]=(0,p.useState)(),[r,a]=(0,p.useState)(),[o,s]=(0,p.useState)(``),[c,l]=(0,p.useState)(10),[u,d]=(0,p.useState)(void 0),[f,b]=(0,p.useState)([]),[S,C]=(0,p.useState)(),[w,T]=(0,p.useState)(),[E,D]=(0,p.useState)(!1),[O,k]=(0,p.useState)(null),[A,j]=(0,p.useState)(null),[M,N]=(0,p.useState)(!1),[P,F]=(0,p.useState)(),[I,L]=(0,p.useState)(0),R=(0,p.useRef)(0),z=(0,p.useRef)(!1),B=(0,p.useRef)(e);(0,p.useEffect)(()=>{let t=!1;return B.current!==e&&(B.current=e,z.current=!1,n(void 0),a(void 0)),m(e).then(e=>{t||(z.current=!0,n(e),a(void 0))}).catch(e=>{t||z.current||(n(void 0),a(e instanceof Error?e.message:String(e)))}),()=>{t=!0}},[e,I]);let V=async()=>{let t=o.trim();if(t.length!==0){D(!0),T(void 0),k(null),j(null),F(void 0);try{let n=await h(t,{limit:c,...u===void 0?{}:{threshold:u},similarity:!0,baseUrl:e});b(n.hits),C(n.similarity)}catch(e){b([]),C(void 0),T(e instanceof Error?e.message:String(e))}finally{R.current+=1,D(!1)}}},H=async()=>{if(A===null)return;let t=A.id,n=R.current,r=f,i=S;N(!0),F(void 0);try{let{removed:a}=await _(t,{baseUrl:e});if(a){if(R.current===n){let e=r.findIndex(e=>e.id===t);b(r.filter(e=>e.id!==t)),i!==void 0&&e>=0&&C(i.filter((t,n)=>n!==e).map(t=>t.filter((t,n)=>n!==e))),O===t&&k(null)}j(e=>e?.id===t?null:e),L(e=>e+1)}else F(`The store reported the entry was not removed.`)}catch(e){F(e instanceof Error?e.message:String(e))}finally{N(!1)}};return r===void 0?t===void 0?(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--loading`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsx)(`p`,{children:`Loading status…`})]}):t.enabled?(0,v.jsxs)(`div`,{className:`vector-memory-panel`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsxs)(`dl`,{className:`vector-memory-panel__status`,children:[(0,v.jsx)(`dt`,{children:`Active provider`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.providerId??`unknown`})}),(0,v.jsx)(`dt`,{children:`Model`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.modelId??`unknown`})}),(0,v.jsx)(`dt`,{children:`Dimensions`}),(0,v.jsx)(`dd`,{children:t.dimensions??`unknown`}),(0,v.jsx)(`dt`,{children:`Entries / vectors`}),(0,v.jsxs)(`dd`,{children:[t.entries??0,` / `,t.vectors??0]}),(0,v.jsx)(`dt`,{children:`Store path`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.storePath??`(project root)`})}),(0,v.jsx)(`dt`,{children:`Model cache`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:t.modelCacheDir??`(project root)`})}),(0,v.jsx)(`dt`,{children:`Providers`}),(0,v.jsx)(`dd`,{children:t.providers?.join(`, `)??``}),t.cache?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`dt`,{children:`Embedding cache`}),(0,v.jsxs)(`dd`,{children:[t.cache.entries,` entries · `,t.cache.providers,` provider`,t.cache.providers===1?``:`s`,` · `,t.cache.totalUseCount,` hits`]})]}):null]}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__search`,children:[(0,v.jsx)(`label`,{htmlFor:`vm-query`,children:`Query`}),(0,v.jsx)(`input`,{id:`vm-query`,type:`text`,value:o,onChange:e=>s(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&V()},placeholder:`apple banana`}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__controls`,children:[(0,v.jsxs)(`label`,{children:[`limit`,(0,v.jsx)(`input`,{type:`number`,min:1,max:50,value:c,onChange:e=>l(Math.max(1,Math.min(50,Number(e.currentTarget.value)||10)))})]}),(0,v.jsxs)(`label`,{children:[`threshold`,(0,v.jsx)(`input`,{type:`number`,min:0,max:1,step:.05,value:u??``,onChange:e=>{let t=e.currentTarget.value;d(t===``?void 0:Number.parseFloat(t))}})]}),(0,v.jsx)(`button`,{type:`button`,onClick:()=>void V(),disabled:E,children:E?`Searching…`:`Search`})]})]}),w===void 0?null:(0,v.jsxs)(`p`,{className:`vector-memory-panel__error`,children:[`Search error: `,w]}),(0,v.jsxs)(`ol`,{className:`vector-memory-panel__hits`,children:[f.map(e=>{let t=O===e.id;return(0,v.jsxs)(`li`,{className:t?`vector-memory-panel__hit vector-memory-panel__hit--expanded`:`vector-memory-panel__hit`,children:[(0,v.jsxs)(`button`,{type:`button`,className:`vector-memory-panel__hit-toggle`,"aria-expanded":t,onClick:()=>k(t?null:e.id),children:[(0,v.jsx)(i,{"aria-hidden":`true`,className:t?`vector-memory-panel__hit-chevron vector-memory-panel__hit-chevron--open`:`vector-memory-panel__hit-chevron`}),(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-score`,children:e.score.toFixed(3)}),e.summary?(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-summary`,children:e.summary}):null]}),(0,v.jsx)(`p`,{className:`vector-memory-panel__hit-text`,children:t?e.text:g(e.text)}),e.tags.length>0?(0,v.jsx)(`p`,{className:`vector-memory-panel__hit-tags`,children:e.tags.map(e=>(0,v.jsx)(`span`,{className:`vector-memory-panel__hit-tag`,children:e},e))}):null,t?(0,v.jsxs)(`div`,{className:`vector-memory-panel__hit-detail`,children:[(0,v.jsxs)(`dl`,{className:`vector-memory-panel__hit-fields`,children:[(0,v.jsx)(`dt`,{children:`id`}),(0,v.jsx)(`dd`,{children:(0,v.jsx)(`code`,{children:e.id})}),(0,v.jsx)(`dt`,{children:`score`}),(0,v.jsx)(`dd`,{children:e.score.toFixed(3)}),e.summary?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`dt`,{children:`summary`}),(0,v.jsx)(`dd`,{children:e.summary})]}):null]}),(0,v.jsx)(`div`,{className:`vector-memory-panel__hit-actions`,children:(0,v.jsx)(`button`,{type:`button`,className:`vector-memory-panel__forget`,onClick:()=>{F(void 0),j(e)},children:`Forget`})})]}):null]},e.id)}),f.length===0&&E===!1&&o.trim().length>0?(0,v.jsx)(`li`,{className:`vector-memory-panel__no-hits`,children:`No results.`}):null]}),S!==void 0&&S.length>1?(0,v.jsxs)(`div`,{className:`vector-memory-panel__heatmap`,"data-testid":`vector-memory-heatmap`,children:[(0,v.jsx)(`h4`,{children:`Result similarity`}),(0,v.jsx)(`p`,{className:`vector-memory-panel__heatmap-hint`,children:`Pairwise cosine similarity between returned hits. Darker cells = more similar. A bright diagonal with mostly dark off-diagonals means results form a tight cluster; a noisy grid means the search returned mixed topics.`}),(0,v.jsxs)(`div`,{className:`vector-memory-panel__heatmap-grid`,style:{gridTemplateColumns:`auto repeat(${S.length}, minmax(20px, 1fr))`},role:`table`,"aria-label":`Pairwise cosine similarity between returned hits`,children:[(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-corner`}),S.map((e,t)=>(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-col-label`,children:t+1},`col-${t}`)),S.map((e,t)=>(0,v.jsx)(x,{row:e,index:t},`row-${t}`))]})]}):null,(0,v.jsx)(y,{hit:A,busy:M,error:P,onCancel:()=>j(null),onConfirm:()=>void H(),onOpenChange:e=>{!e&&!M&&j(null)}})]}):(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--disabled`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsx)(`p`,{children:`Disabled — the webui-server host does not have a vector memory store wired.`})]}):(0,v.jsxs)(`div`,{className:`vector-memory-panel vector-memory-panel--error`,children:[(0,v.jsx)(`h3`,{children:`Vector Memory`}),(0,v.jsxs)(`p`,{children:[`Status unavailable: `,r]})]})}function x({row:e,index:t}){return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`div`,{className:`vector-memory-panel__heatmap-row-label`,children:t+1}),e.map((e,n)=>{let r=t===n,i=Math.max(0,Math.min(1,e)),a=95-i*60,o=`hsl(220, ${r?0:35}%, ${a}%)`;return(0,v.jsx)(`div`,{className:r?`vector-memory-panel__heatmap-cell vector-memory-panel__heatmap-cell--diagonal`:`vector-memory-panel__heatmap-cell`,style:{background:o},role:`cell`,"aria-label":`hit ${t+1} vs hit ${n+1}: ${i.toFixed(2)}`,title:`hit ${t+1} ↔ hit ${n+1}: ${i.toFixed(3)}`,children:i>=.5?i.toFixed(2):``},`cell-${t}-${n}`)})]})}export{b as VectorMemoryPanel};