@wrongstack/webui 0.284.1 → 0.285.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/dist/App.d.ts +2 -0
  2. package/dist/App.d.ts.map +1 -0
  3. package/dist/assets/{AnalyticsDashboard-BBoAzpgL.js → AnalyticsDashboard-Bn2wIgV0.js} +1 -1
  4. package/dist/assets/{AutoPhaseView-D053zOhN.js → AutoPhaseView-DWp3yHpI.js} +1 -1
  5. package/dist/assets/{ChangesView-4X9cQM4r.js → ChangesView-C_r4kccO.js} +1 -1
  6. package/dist/assets/{CodeEditor-C8hiA7LI.js → CodeEditor-DSpqZ-mS.js} +1 -1
  7. package/dist/assets/{DebugDashboard-DBPKvghW.js → DebugDashboard-DWKLI7lR.js} +1 -1
  8. package/dist/assets/{DesignGalleryView-CzF24Ppi.js → DesignGalleryView-Bk3HH3al.js} +1 -1
  9. package/dist/assets/KanbanView-CJqlvsbc.js +1 -0
  10. package/dist/assets/{MailboxDetailView-CCtq-c8u.js → MailboxDetailView-BwWagFay.js} +1 -1
  11. package/dist/assets/OfficeMapPanel-QFPaXTZ9.js +4 -0
  12. package/dist/assets/{ProcessMonitor-pm8Ih7-q.js → ProcessMonitor-dUyYv3Z4.js} +1 -1
  13. package/dist/assets/{QueuePanel-Lv54tvvk.js → QueuePanel-BdwvWRuB.js} +1 -1
  14. package/dist/assets/{RefreshDebugView-0VzJJqhZ.js → RefreshDebugView-eZwtZXgZ.js} +1 -1
  15. package/dist/assets/{SddBoardView-Q-k1UjLv.js → SddBoardView-OtKwEtAp.js} +1 -1
  16. package/dist/assets/{SddFlowGraph-BaWwH9Zc.js → SddFlowGraph-MVMUCMEy.js} +1 -1
  17. package/dist/assets/{SddWizard-C4wdyhYe.js → SddWizard-c7g68RFx.js} +1 -1
  18. package/dist/assets/SessionsDashboard-pMXfRTwN.js +1 -0
  19. package/dist/assets/{SkillDetailView-B4U0AtHj.js → SkillDetailView-CcdIF-85.js} +1 -1
  20. package/dist/assets/{SpecsView-QssXs9kF.js → SpecsView-yunV-Xfj.js} +1 -1
  21. package/dist/assets/{TerminalPanel-CSDEzJNZ.js → TerminalPanel-BIYT1IB3.js} +1 -1
  22. package/dist/assets/common-D8_r1x8x.js +1 -0
  23. package/dist/assets/common-suUxW9sA.js +1 -0
  24. package/dist/assets/{i18n-CkkVJCs9.js → i18n-BMePmaPJ.js} +2 -2
  25. package/dist/assets/index-CbrHWxbT.css +1 -0
  26. package/dist/assets/index-CyTNJHe8.js +154 -0
  27. package/dist/assets/local-prefs-BBMxai9I.js +1 -0
  28. package/dist/assets/settings-CKNx8p9I.js +1 -0
  29. package/dist/assets/settings-D-SHf0yS.js +1 -0
  30. package/dist/assets/ui-store-ComQYc5F.js +1 -0
  31. package/dist/assets/{ws-client-lDxBz-7w.js → ws-client-CwL51TNh.js} +1 -1
  32. package/dist/components/AgentTranscript.d.ts +13 -0
  33. package/dist/components/AgentTranscript.d.ts.map +1 -0
  34. package/dist/components/AgentsMonitor.d.ts +26 -0
  35. package/dist/components/AgentsMonitor.d.ts.map +1 -0
  36. package/dist/components/AgentsPage/format.d.ts +23 -0
  37. package/dist/components/AgentsPage/format.d.ts.map +1 -0
  38. package/dist/components/AgentsPage.d.ts +49 -0
  39. package/dist/components/AgentsPage.d.ts.map +1 -0
  40. package/dist/components/AnalyticsDashboard.d.ts +2 -0
  41. package/dist/components/AnalyticsDashboard.d.ts.map +1 -0
  42. package/dist/components/AutoPhaseView.d.ts +15 -0
  43. package/dist/components/AutoPhaseView.d.ts.map +1 -0
  44. package/dist/components/AutonomyPicker.d.ts +21 -0
  45. package/dist/components/AutonomyPicker.d.ts.map +1 -0
  46. package/dist/components/BoardView.d.ts +14 -0
  47. package/dist/components/BoardView.d.ts.map +1 -0
  48. package/dist/components/ChangesView.d.ts +10 -0
  49. package/dist/components/ChangesView.d.ts.map +1 -0
  50. package/dist/components/ChatInput/code-detect.d.ts +20 -0
  51. package/dist/components/ChatInput/code-detect.d.ts.map +1 -0
  52. package/dist/components/ChatInput/file-mention-picker.d.ts +15 -0
  53. package/dist/components/ChatInput/file-mention-picker.d.ts.map +1 -0
  54. package/dist/components/ChatInput/queued-messages.d.ts +9 -0
  55. package/dist/components/ChatInput/queued-messages.d.ts.map +1 -0
  56. package/dist/components/ChatInput/slash-commands.d.ts +17 -0
  57. package/dist/components/ChatInput/slash-commands.d.ts.map +1 -0
  58. package/dist/components/ChatInput/slash-routing.d.ts +79 -0
  59. package/dist/components/ChatInput/slash-routing.d.ts.map +1 -0
  60. package/dist/components/ChatInput/use-paste-drop.d.ts +29 -0
  61. package/dist/components/ChatInput/use-paste-drop.d.ts.map +1 -0
  62. package/dist/components/ChatInput.d.ts +5 -0
  63. package/dist/components/ChatInput.d.ts.map +1 -0
  64. package/dist/components/ChatView/ThinkingBubble.d.ts +8 -0
  65. package/dist/components/ChatView/ThinkingBubble.d.ts.map +1 -0
  66. package/dist/components/ChatView/index.d.ts +2 -0
  67. package/dist/components/ChatView/index.d.ts.map +1 -0
  68. package/dist/components/ChatView/utils.d.ts +44 -0
  69. package/dist/components/ChatView/utils.d.ts.map +1 -0
  70. package/dist/components/ChatView.d.ts +2 -0
  71. package/dist/components/ChatView.d.ts.map +1 -0
  72. package/dist/components/CheckpointTimeline.d.ts +7 -0
  73. package/dist/components/CheckpointTimeline.d.ts.map +1 -0
  74. package/dist/components/CodeEditor.d.ts +3 -0
  75. package/dist/components/CodeEditor.d.ts.map +1 -0
  76. package/dist/components/CollabPanel.d.ts +28 -0
  77. package/dist/components/CollabPanel.d.ts.map +1 -0
  78. package/dist/components/CommandPalette/export-utils.d.ts +10 -0
  79. package/dist/components/CommandPalette/export-utils.d.ts.map +1 -0
  80. package/dist/components/CommandPalette/index.d.ts +2 -0
  81. package/dist/components/CommandPalette/index.d.ts.map +1 -0
  82. package/dist/components/CommandPalette.d.ts +3 -0
  83. package/dist/components/CommandPalette.d.ts.map +1 -0
  84. package/dist/components/ConfirmDialog.d.ts +2 -0
  85. package/dist/components/ConfirmDialog.d.ts.map +1 -0
  86. package/dist/components/ConfirmModal.d.ts +59 -0
  87. package/dist/components/ConfirmModal.d.ts.map +1 -0
  88. package/dist/components/ConnectionBanner.d.ts +13 -0
  89. package/dist/components/ConnectionBanner.d.ts.map +1 -0
  90. package/dist/components/ContextBar.d.ts +35 -0
  91. package/dist/components/ContextBar.d.ts.map +1 -0
  92. package/dist/components/ContextBreakdownModal.d.ts +7 -0
  93. package/dist/components/ContextBreakdownModal.d.ts.map +1 -0
  94. package/dist/components/ContextModePicker.d.ts +2 -0
  95. package/dist/components/ContextModePicker.d.ts.map +1 -0
  96. package/dist/components/CostChip.d.ts +12 -0
  97. package/dist/components/CostChip.d.ts.map +1 -0
  98. package/dist/components/DebugDashboard.d.ts +2 -0
  99. package/dist/components/DebugDashboard.d.ts.map +1 -0
  100. package/dist/components/DependencyGraph.d.ts +13 -0
  101. package/dist/components/DependencyGraph.d.ts.map +1 -0
  102. package/dist/components/DesignGalleryView.d.ts +14 -0
  103. package/dist/components/DesignGalleryView.d.ts.map +1 -0
  104. package/dist/components/DiffView.d.ts +33 -0
  105. package/dist/components/DiffView.d.ts.map +1 -0
  106. package/dist/components/ErrorBoundary.d.ts +40 -0
  107. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  108. package/dist/components/FallbackEditor.d.ts +15 -0
  109. package/dist/components/FallbackEditor.d.ts.map +1 -0
  110. package/dist/components/FileExplorer.d.ts +2 -0
  111. package/dist/components/FileExplorer.d.ts.map +1 -0
  112. package/dist/components/FilePicker.d.ts +16 -0
  113. package/dist/components/FilePicker.d.ts.map +1 -0
  114. package/dist/components/FileReferenceChip.d.ts +8 -0
  115. package/dist/components/FileReferenceChip.d.ts.map +1 -0
  116. package/dist/components/FleetMonitor.d.ts +27 -0
  117. package/dist/components/FleetMonitor.d.ts.map +1 -0
  118. package/dist/components/FleetPanel.d.ts +17 -0
  119. package/dist/components/FleetPanel.d.ts.map +1 -0
  120. package/dist/components/GoalPanel.d.ts +7 -0
  121. package/dist/components/GoalPanel.d.ts.map +1 -0
  122. package/dist/components/InspectorPanel.d.ts +14 -0
  123. package/dist/components/InspectorPanel.d.ts.map +1 -0
  124. package/dist/components/KanbanView.d.ts +4 -0
  125. package/dist/components/KanbanView.d.ts.map +1 -0
  126. package/dist/components/MailboxDetailView.d.ts +8 -0
  127. package/dist/components/MailboxDetailView.d.ts.map +1 -0
  128. package/dist/components/MailboxPanel.d.ts +4 -0
  129. package/dist/components/MailboxPanel.d.ts.map +1 -0
  130. package/dist/components/MessageBubble/CopyButton.d.ts +6 -0
  131. package/dist/components/MessageBubble/CopyButton.d.ts.map +1 -0
  132. package/dist/components/MessageBubble/ErrorBody.d.ts +4 -0
  133. package/dist/components/MessageBubble/ErrorBody.d.ts.map +1 -0
  134. package/dist/components/MessageBubble/StreamingMarkdown.d.ts +24 -0
  135. package/dist/components/MessageBubble/StreamingMarkdown.d.ts.map +1 -0
  136. package/dist/components/MessageBubble/ToolInputView.d.ts +4 -0
  137. package/dist/components/MessageBubble/ToolInputView.d.ts.map +1 -0
  138. package/dist/components/MessageBubble/index.d.ts +9 -0
  139. package/dist/components/MessageBubble/index.d.ts.map +1 -0
  140. package/dist/components/MessageBubble/utils.d.ts +17 -0
  141. package/dist/components/MessageBubble/utils.d.ts.map +1 -0
  142. package/dist/components/MessageBubble.d.ts +2 -0
  143. package/dist/components/MessageBubble.d.ts.map +1 -0
  144. package/dist/components/ModePicker.d.ts +9 -0
  145. package/dist/components/ModePicker.d.ts.map +1 -0
  146. package/dist/components/ModelPicker.d.ts +18 -0
  147. package/dist/components/ModelPicker.d.ts.map +1 -0
  148. package/dist/components/MonacoDiffView.d.ts +13 -0
  149. package/dist/components/MonacoDiffView.d.ts.map +1 -0
  150. package/dist/components/NextStepsBar.d.ts +39 -0
  151. package/dist/components/NextStepsBar.d.ts.map +1 -0
  152. package/dist/components/OfficeMapCanvas/resolve.d.ts +48 -0
  153. package/dist/components/OfficeMapCanvas/resolve.d.ts.map +1 -0
  154. package/dist/components/OfficeMapCanvas/utils.d.ts +57 -0
  155. package/dist/components/OfficeMapCanvas/utils.d.ts.map +1 -0
  156. package/dist/components/OfficeMapCanvas.d.ts +10 -0
  157. package/dist/components/OfficeMapCanvas.d.ts.map +1 -0
  158. package/dist/components/OfficeMapPanel.d.ts +6 -0
  159. package/dist/components/OfficeMapPanel.d.ts.map +1 -0
  160. package/dist/components/OfficeMapSettingsPanel.d.ts +10 -0
  161. package/dist/components/OfficeMapSettingsPanel.d.ts.map +1 -0
  162. package/dist/components/PhasePanel.d.ts +42 -0
  163. package/dist/components/PhasePanel.d.ts.map +1 -0
  164. package/dist/components/PlanPanel.d.ts +14 -0
  165. package/dist/components/PlanPanel.d.ts.map +1 -0
  166. package/dist/components/ProcessMonitor.d.ts +7 -0
  167. package/dist/components/ProcessMonitor.d.ts.map +1 -0
  168. package/dist/components/PromptLibraryModal.d.ts +7 -0
  169. package/dist/components/PromptLibraryModal.d.ts.map +1 -0
  170. package/dist/components/QueuePanel.d.ts +11 -0
  171. package/dist/components/QueuePanel.d.ts.map +1 -0
  172. package/dist/components/QuickModelSwitcher.d.ts +10 -0
  173. package/dist/components/QuickModelSwitcher.d.ts.map +1 -0
  174. package/dist/components/QuickModelSwitcher.filter.d.ts +33 -0
  175. package/dist/components/QuickModelSwitcher.filter.d.ts.map +1 -0
  176. package/dist/components/RefinePanel.d.ts +24 -0
  177. package/dist/components/RefinePanel.d.ts.map +1 -0
  178. package/dist/components/RefreshDebugView.d.ts +32 -0
  179. package/dist/components/RefreshDebugView.d.ts.map +1 -0
  180. package/dist/components/SddActivityFeed.d.ts +11 -0
  181. package/dist/components/SddActivityFeed.d.ts.map +1 -0
  182. package/dist/components/SddBoardView.d.ts +9 -0
  183. package/dist/components/SddBoardView.d.ts.map +1 -0
  184. package/dist/components/SddDestroyDialog.d.ts +16 -0
  185. package/dist/components/SddDestroyDialog.d.ts.map +1 -0
  186. package/dist/components/SddFlowGraph.d.ts +23 -0
  187. package/dist/components/SddFlowGraph.d.ts.map +1 -0
  188. package/dist/components/SddKanbanView.d.ts +12 -0
  189. package/dist/components/SddKanbanView.d.ts.map +1 -0
  190. package/dist/components/SddTaskDrawer.d.ts +28 -0
  191. package/dist/components/SddTaskDrawer.d.ts.map +1 -0
  192. package/dist/components/SddWizard.d.ts +10 -0
  193. package/dist/components/SddWizard.d.ts.map +1 -0
  194. package/dist/components/SearchOverlay.d.ts +12 -0
  195. package/dist/components/SearchOverlay.d.ts.map +1 -0
  196. package/dist/components/SendButton.d.ts +2 -0
  197. package/dist/components/SendButton.d.ts.map +1 -0
  198. package/dist/components/SessionWatchPanel.d.ts +17 -0
  199. package/dist/components/SessionWatchPanel.d.ts.map +1 -0
  200. package/dist/components/SessionsDashboard.d.ts +3 -0
  201. package/dist/components/SessionsDashboard.d.ts.map +1 -0
  202. package/dist/components/SettingsPanel/BrainSection.d.ts +3 -0
  203. package/dist/components/SettingsPanel/BrainSection.d.ts.map +1 -0
  204. package/dist/components/SettingsPanel/ClearAllowlistDialog.d.ts +19 -0
  205. package/dist/components/SettingsPanel/ClearAllowlistDialog.d.ts.map +1 -0
  206. package/dist/components/SettingsPanel/MCPSection.d.ts +27 -0
  207. package/dist/components/SettingsPanel/MCPSection.d.ts.map +1 -0
  208. package/dist/components/SettingsPanel/ModelSection.d.ts +31 -0
  209. package/dist/components/SettingsPanel/ModelSection.d.ts.map +1 -0
  210. package/dist/components/SettingsPanel/OAuthLoginSection.d.ts +14 -0
  211. package/dist/components/SettingsPanel/OAuthLoginSection.d.ts.map +1 -0
  212. package/dist/components/SettingsPanel/PreferenceControls.d.ts +23 -0
  213. package/dist/components/SettingsPanel/PreferenceControls.d.ts.map +1 -0
  214. package/dist/components/SettingsPanel/PreferenceToggle.d.ts +25 -0
  215. package/dist/components/SettingsPanel/PreferenceToggle.d.ts.map +1 -0
  216. package/dist/components/SettingsPanel/ProviderModelsPanel.d.ts +46 -0
  217. package/dist/components/SettingsPanel/ProviderModelsPanel.d.ts.map +1 -0
  218. package/dist/components/SettingsPanel/ProviderModelsPanel.filter.d.ts +110 -0
  219. package/dist/components/SettingsPanel/ProviderModelsPanel.filter.d.ts.map +1 -0
  220. package/dist/components/SettingsPanel/ProviderSection.d.ts +63 -0
  221. package/dist/components/SettingsPanel/ProviderSection.d.ts.map +1 -0
  222. package/dist/components/SettingsPanel/ShadowSection.d.ts +3 -0
  223. package/dist/components/SettingsPanel/ShadowSection.d.ts.map +1 -0
  224. package/dist/components/SettingsPanel/ToolsSection.d.ts +12 -0
  225. package/dist/components/SettingsPanel/ToolsSection.d.ts.map +1 -0
  226. package/dist/components/SettingsPanel/index.d.ts +2 -0
  227. package/dist/components/SettingsPanel/index.d.ts.map +1 -0
  228. package/dist/components/SettingsPanel/local-presets.d.ts +31 -0
  229. package/dist/components/SettingsPanel/local-presets.d.ts.map +1 -0
  230. package/dist/components/SettingsPanel/official-servers.d.ts +30 -0
  231. package/dist/components/SettingsPanel/official-servers.d.ts.map +1 -0
  232. package/dist/components/SettingsPanel/settings-panel-reducers.d.ts +40 -0
  233. package/dist/components/SettingsPanel/settings-panel-reducers.d.ts.map +1 -0
  234. package/dist/components/SettingsPanel/undo-send-decision.d.ts +42 -0
  235. package/dist/components/SettingsPanel/undo-send-decision.d.ts.map +1 -0
  236. package/dist/components/SettingsPanel.d.ts +3 -0
  237. package/dist/components/SettingsPanel.d.ts.map +1 -0
  238. package/dist/components/SetupScreen.d.ts +2 -0
  239. package/dist/components/SetupScreen.d.ts.map +1 -0
  240. package/dist/components/ShortcutsOverlay.d.ts +2 -0
  241. package/dist/components/ShortcutsOverlay.d.ts.map +1 -0
  242. package/dist/components/SideEffectTimeline.d.ts +11 -0
  243. package/dist/components/SideEffectTimeline.d.ts.map +1 -0
  244. package/dist/components/SidePanel/AgentsPanel.d.ts +8 -0
  245. package/dist/components/SidePanel/AgentsPanel.d.ts.map +1 -0
  246. package/dist/components/SidePanel/ChangesPanel.d.ts +8 -0
  247. package/dist/components/SidePanel/ChangesPanel.d.ts.map +1 -0
  248. package/dist/components/SidePanel/DesignStudioPanel.d.ts +12 -0
  249. package/dist/components/SidePanel/DesignStudioPanel.d.ts.map +1 -0
  250. package/dist/components/SidePanel/HistoryPanel.d.ts +7 -0
  251. package/dist/components/SidePanel/HistoryPanel.d.ts.map +1 -0
  252. package/dist/components/SidePanel/SessionList.d.ts +24 -0
  253. package/dist/components/SidePanel/SessionList.d.ts.map +1 -0
  254. package/dist/components/SidePanel/SessionPanel.d.ts +10 -0
  255. package/dist/components/SidePanel/SessionPanel.d.ts.map +1 -0
  256. package/dist/components/SidePanel/SkillsList.d.ts +8 -0
  257. package/dist/components/SidePanel/SkillsList.d.ts.map +1 -0
  258. package/dist/components/SidePanel/WorktreesPanel.d.ts +8 -0
  259. package/dist/components/SidePanel/WorktreesPanel.d.ts.map +1 -0
  260. package/dist/components/SidePanel/index.d.ts +11 -0
  261. package/dist/components/SidePanel/index.d.ts.map +1 -0
  262. package/dist/components/SkillDetailView.d.ts +8 -0
  263. package/dist/components/SkillDetailView.d.ts.map +1 -0
  264. package/dist/components/SpecsView.d.ts +9 -0
  265. package/dist/components/SpecsView.d.ts.map +1 -0
  266. package/dist/components/TaskBoard.d.ts +20 -0
  267. package/dist/components/TaskBoard.d.ts.map +1 -0
  268. package/dist/components/TaskCard.d.ts +43 -0
  269. package/dist/components/TaskCard.d.ts.map +1 -0
  270. package/dist/components/TasksPanel.d.ts +14 -0
  271. package/dist/components/TasksPanel.d.ts.map +1 -0
  272. package/dist/components/TerminalPanel.d.ts +12 -0
  273. package/dist/components/TerminalPanel.d.ts.map +1 -0
  274. package/dist/components/ThemeProvider.d.ts +15 -0
  275. package/dist/components/ThemeProvider.d.ts.map +1 -0
  276. package/dist/components/Toaster.d.ts +40 -0
  277. package/dist/components/Toaster.d.ts.map +1 -0
  278. package/dist/components/TodosPanel.d.ts +14 -0
  279. package/dist/components/TodosPanel.d.ts.map +1 -0
  280. package/dist/components/ToolGroup.d.ts +18 -0
  281. package/dist/components/ToolGroup.d.ts.map +1 -0
  282. package/dist/components/ToolResult.d.ts +33 -0
  283. package/dist/components/ToolResult.d.ts.map +1 -0
  284. package/dist/components/WatchMessageBubble.d.ts +30 -0
  285. package/dist/components/WatchMessageBubble.d.ts.map +1 -0
  286. package/dist/components/WelcomeScreen.d.ts +2 -0
  287. package/dist/components/WelcomeScreen.d.ts.map +1 -0
  288. package/dist/components/WorkDashboard.d.ts +11 -0
  289. package/dist/components/WorkDashboard.d.ts.map +1 -0
  290. package/dist/components/WorkspaceDock.d.ts +16 -0
  291. package/dist/components/WorkspaceDock.d.ts.map +1 -0
  292. package/dist/components/WorktreeGraph.d.ts +21 -0
  293. package/dist/components/WorktreeGraph.d.ts.map +1 -0
  294. package/dist/components/WorktreeLanes.d.ts +11 -0
  295. package/dist/components/WorktreeLanes.d.ts.map +1 -0
  296. package/dist/components/WorktreeOrphans.d.ts +9 -0
  297. package/dist/components/WorktreeOrphans.d.ts.map +1 -0
  298. package/dist/components/activity-bar/index.d.ts +14 -0
  299. package/dist/components/activity-bar/index.d.ts.map +1 -0
  300. package/dist/components/activity-bar/nav.d.ts +17 -0
  301. package/dist/components/activity-bar/nav.d.ts.map +1 -0
  302. package/dist/components/dashboard-primitives.d.ts +22 -0
  303. package/dist/components/dashboard-primitives.d.ts.map +1 -0
  304. package/dist/components/index.d.ts +32 -0
  305. package/dist/components/index.d.ts.map +1 -0
  306. package/dist/components/monaco-theme.d.ts +6 -0
  307. package/dist/components/monaco-theme.d.ts.map +1 -0
  308. package/dist/components/toaster-helpers.d.ts +34 -0
  309. package/dist/components/toaster-helpers.d.ts.map +1 -0
  310. package/dist/components/ui/badge.d.ts +10 -0
  311. package/dist/components/ui/badge.d.ts.map +1 -0
  312. package/dist/components/ui/button.d.ts +12 -0
  313. package/dist/components/ui/button.d.ts.map +1 -0
  314. package/dist/components/ui/concurrency-gauge.d.ts +18 -0
  315. package/dist/components/ui/concurrency-gauge.d.ts.map +1 -0
  316. package/dist/components/ui/dialog.d.ts +29 -0
  317. package/dist/components/ui/dialog.d.ts.map +1 -0
  318. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  319. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  320. package/dist/components/ui/event-timeline.d.ts +15 -0
  321. package/dist/components/ui/event-timeline.d.ts.map +1 -0
  322. package/dist/components/ui/index.d.ts +11 -0
  323. package/dist/components/ui/index.d.ts.map +1 -0
  324. package/dist/components/ui/input.d.ts +6 -0
  325. package/dist/components/ui/input.d.ts.map +1 -0
  326. package/dist/components/ui/scroll-area.d.ts +6 -0
  327. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  328. package/dist/components/ui/sheet.d.ts +32 -0
  329. package/dist/components/ui/sheet.d.ts.map +1 -0
  330. package/dist/components/ui/sparkline.d.ts +16 -0
  331. package/dist/components/ui/sparkline.d.ts.map +1 -0
  332. package/dist/components/ui/tabs.d.ts +8 -0
  333. package/dist/components/ui/tabs.d.ts.map +1 -0
  334. package/dist/hooks/index.d.ts +2 -0
  335. package/dist/hooks/index.d.ts.map +1 -0
  336. package/dist/hooks/use-ws-handlers.d.ts +24 -0
  337. package/dist/hooks/use-ws-handlers.d.ts.map +1 -0
  338. package/dist/hooks/useGitInfo.d.ts +4 -0
  339. package/dist/hooks/useGitInfo.d.ts.map +1 -0
  340. package/dist/hooks/useProviderModels.d.ts +15 -0
  341. package/dist/hooks/useProviderModels.d.ts.map +1 -0
  342. package/dist/hooks/useWebSocket.d.ts +85 -0
  343. package/dist/hooks/useWebSocket.d.ts.map +1 -0
  344. package/dist/hooks/ws-handlers/chat-handlers.d.ts +21 -0
  345. package/dist/hooks/ws-handlers/chat-handlers.d.ts.map +1 -0
  346. package/dist/hooks/ws-handlers/coordinator-handlers.d.ts +3 -0
  347. package/dist/hooks/ws-handlers/coordinator-handlers.d.ts.map +1 -0
  348. package/dist/hooks/ws-handlers/files-mailbox-handlers.d.ts +15 -0
  349. package/dist/hooks/ws-handlers/files-mailbox-handlers.d.ts.map +1 -0
  350. package/dist/hooks/ws-handlers/fleet-handlers.d.ts +13 -0
  351. package/dist/hooks/ws-handlers/fleet-handlers.d.ts.map +1 -0
  352. package/dist/hooks/ws-handlers/misc-handlers.d.ts +21 -0
  353. package/dist/hooks/ws-handlers/misc-handlers.d.ts.map +1 -0
  354. package/dist/hooks/ws-handlers/session-handlers.d.ts +34 -0
  355. package/dist/hooks/ws-handlers/session-handlers.d.ts.map +1 -0
  356. package/dist/hooks/ws-handlers.d.ts +24 -0
  357. package/dist/hooks/ws-handlers.d.ts.map +1 -0
  358. package/dist/i18n/index.d.ts +12 -0
  359. package/dist/i18n/index.d.ts.map +1 -0
  360. package/dist/i18n/languages.d.ts +40 -0
  361. package/dist/i18n/languages.d.ts.map +1 -0
  362. package/dist/index.css +1 -1
  363. package/dist/index.css.map +7 -1
  364. package/dist/index.d.ts +1 -2
  365. package/dist/index.html +8 -8
  366. package/dist/index.js +2513 -2174
  367. package/dist/index.js.map +7 -1
  368. package/dist/lib/accent-colors.d.ts +136 -0
  369. package/dist/lib/accent-colors.d.ts.map +1 -0
  370. package/dist/lib/agent-status.d.ts +41 -0
  371. package/dist/lib/agent-status.d.ts.map +1 -0
  372. package/dist/lib/analytics.d.ts +36 -0
  373. package/dist/lib/analytics.d.ts.map +1 -0
  374. package/dist/lib/chime.d.ts +20 -0
  375. package/dist/lib/chime.d.ts.map +1 -0
  376. package/dist/lib/color.d.ts +15 -0
  377. package/dist/lib/color.d.ts.map +1 -0
  378. package/dist/lib/completion.d.ts +27 -0
  379. package/dist/lib/completion.d.ts.map +1 -0
  380. package/dist/lib/core-browser-shim.d.ts +22 -0
  381. package/dist/lib/core-browser-shim.d.ts.map +1 -0
  382. package/dist/lib/desktop-host.d.ts +24 -0
  383. package/dist/lib/desktop-host.d.ts.map +1 -0
  384. package/dist/lib/desktop-shell.d.ts +3 -0
  385. package/dist/lib/desktop-shell.d.ts.map +1 -0
  386. package/dist/lib/favicon.d.ts +21 -0
  387. package/dist/lib/favicon.d.ts.map +1 -0
  388. package/dist/lib/file-icons.d.ts +10 -0
  389. package/dist/lib/file-icons.d.ts.map +1 -0
  390. package/dist/lib/goal.d.ts +32 -0
  391. package/dist/lib/goal.d.ts.map +1 -0
  392. package/dist/lib/index.d.ts +4 -0
  393. package/dist/lib/index.d.ts.map +1 -0
  394. package/dist/lib/model-matrix-routes.d.ts +203 -0
  395. package/dist/lib/model-matrix-routes.d.ts.map +1 -0
  396. package/dist/lib/notify.d.ts +15 -0
  397. package/dist/lib/notify.d.ts.map +1 -0
  398. package/dist/lib/sdd-theme.d.ts +52 -0
  399. package/dist/lib/sdd-theme.d.ts.map +1 -0
  400. package/dist/lib/stream-coalescer.d.ts +46 -0
  401. package/dist/lib/stream-coalescer.d.ts.map +1 -0
  402. package/dist/lib/terminal-dock.d.ts +6 -0
  403. package/dist/lib/terminal-dock.d.ts.map +1 -0
  404. package/dist/lib/tool-icon.d.ts +19 -0
  405. package/dist/lib/tool-icon.d.ts.map +1 -0
  406. package/dist/lib/tool-summary.d.ts +2 -0
  407. package/dist/lib/tool-summary.d.ts.map +1 -0
  408. package/dist/lib/utils.d.ts +3 -0
  409. package/dist/lib/utils.d.ts.map +1 -0
  410. package/dist/lib/view-navigation.d.ts +15 -0
  411. package/dist/lib/view-navigation.d.ts.map +1 -0
  412. package/dist/lib/ws-client-helpers.d.ts +46 -0
  413. package/dist/lib/ws-client-helpers.d.ts.map +1 -0
  414. package/dist/lib/ws-client-utils.d.ts +87 -0
  415. package/dist/lib/ws-client-utils.d.ts.map +1 -0
  416. package/dist/lib/ws-client.d.ts +235 -0
  417. package/dist/lib/ws-client.d.ts.map +1 -0
  418. package/dist/main.d.ts +8 -0
  419. package/dist/main.d.ts.map +1 -0
  420. package/dist/server/index.d.ts.map +1 -0
  421. package/dist/stores/auto-submit-streak.d.ts +40 -0
  422. package/dist/stores/auto-submit-streak.d.ts.map +1 -0
  423. package/dist/stores/autophase-store.d.ts +50 -0
  424. package/dist/stores/autophase-store.d.ts.map +1 -0
  425. package/dist/stores/chat-store.d.ts +128 -0
  426. package/dist/stores/chat-store.d.ts.map +1 -0
  427. package/dist/stores/config-store.d.ts +67 -0
  428. package/dist/stores/config-store.d.ts.map +1 -0
  429. package/dist/stores/coordinator-monitor-store.d.ts +133 -0
  430. package/dist/stores/coordinator-monitor-store.d.ts.map +1 -0
  431. package/dist/stores/file-reference-store.d.ts +36 -0
  432. package/dist/stores/file-reference-store.d.ts.map +1 -0
  433. package/dist/stores/file-store.d.ts +40 -0
  434. package/dist/stores/file-store.d.ts.map +1 -0
  435. package/dist/stores/fleet-store.d.ts +29 -0
  436. package/dist/stores/fleet-store.d.ts.map +1 -0
  437. package/dist/stores/git-changes-store.d.ts +38 -0
  438. package/dist/stores/git-changes-store.d.ts.map +1 -0
  439. package/dist/stores/git-info-store.d.ts +18 -0
  440. package/dist/stores/git-info-store.d.ts.map +1 -0
  441. package/dist/stores/goal-store.d.ts +12 -0
  442. package/dist/stores/goal-store.d.ts.map +1 -0
  443. package/dist/stores/history-store.d.ts +15 -0
  444. package/dist/stores/history-store.d.ts.map +1 -0
  445. package/dist/stores/index.d.ts +36 -0
  446. package/dist/stores/index.d.ts.map +1 -0
  447. package/dist/stores/kanban-store.d.ts +22 -0
  448. package/dist/stores/kanban-store.d.ts.map +1 -0
  449. package/dist/stores/local-prefs.d.ts +117 -0
  450. package/dist/stores/local-prefs.d.ts.map +1 -0
  451. package/dist/stores/mailbox-store.d.ts +53 -0
  452. package/dist/stores/mailbox-store.d.ts.map +1 -0
  453. package/dist/stores/monitor-store.d.ts +116 -0
  454. package/dist/stores/monitor-store.d.ts.map +1 -0
  455. package/dist/stores/office-map-store.d.ts +47 -0
  456. package/dist/stores/office-map-store.d.ts.map +1 -0
  457. package/dist/stores/sdd-board-store.d.ts +88 -0
  458. package/dist/stores/sdd-board-store.d.ts.map +1 -0
  459. package/dist/stores/sdd-wizard-store.d.ts +64 -0
  460. package/dist/stores/sdd-wizard-store.d.ts.map +1 -0
  461. package/dist/stores/session-store.d.ts +125 -0
  462. package/dist/stores/session-store.d.ts.map +1 -0
  463. package/dist/stores/side-effect-store.d.ts +18 -0
  464. package/dist/stores/side-effect-store.d.ts.map +1 -0
  465. package/dist/stores/specs-store.d.ts +67 -0
  466. package/dist/stores/specs-store.d.ts.map +1 -0
  467. package/dist/stores/types.d.ts +240 -0
  468. package/dist/stores/types.d.ts.map +1 -0
  469. package/dist/stores/ui-store.d.ts +307 -0
  470. package/dist/stores/ui-store.d.ts.map +1 -0
  471. package/dist/stores/viz-store.d.ts +126 -0
  472. package/dist/stores/viz-store.d.ts.map +1 -0
  473. package/dist/stores/worktree-store.d.ts +47 -0
  474. package/dist/stores/worktree-store.d.ts.map +1 -0
  475. package/dist/types.d.ts +121 -118
  476. package/dist/types.d.ts.map +1 -0
  477. package/dist/types.js +1 -1
  478. package/dist/types.js.map +7 -1
  479. package/package.json +12 -13
  480. package/dist/assets/KanbanView-DWBGErwm.js +0 -1
  481. package/dist/assets/OfficeMapPanel-BBKsytG0.js +0 -4
  482. package/dist/assets/SessionsDashboard-CveBdrQJ.js +0 -1
  483. package/dist/assets/common-B28qhvZh.js +0 -1
  484. package/dist/assets/common-CeTsF3jX.js +0 -1
  485. package/dist/assets/index-BqAVsSCe.js +0 -154
  486. package/dist/assets/index-DTFjO9oF.css +0 -1
  487. package/dist/assets/local-prefs-C1YdbI5g.js +0 -1
  488. package/dist/assets/settings-Os0ifjjB.js +0 -1
  489. package/dist/assets/settings-UGa_oSYC.js +0 -1
  490. package/dist/assets/ui-store-FTgDlcX2.js +0 -1
@@ -0,0 +1,235 @@
1
+ import type { WSClientMessage, WSCompletionRequest, WSServerMessage } from '../types';
2
+ import { type EventHandler, type WsStatus } from './ws-client-utils';
3
+ export type { WsStatus };
4
+ export declare class WrongStackWebSocketClient {
5
+ private ws;
6
+ private url;
7
+ private handlers;
8
+ private reconnectAttempts;
9
+ private maxReconnectAttempts;
10
+ private reconnectDelay;
11
+ private shouldReconnect;
12
+ private reconnectTimer;
13
+ private connectPromise;
14
+ /** Monotonic generation counter. Each openSocket() call increments it;
15
+ * event handlers capture the generation at creation time and ignore
16
+ * events from older sockets (e.g. a timed-out socket that fires onopen
17
+ * late). */
18
+ private socketGeneration;
19
+ private messageQueue;
20
+ private static readonly MAX_QUEUED_MESSAGES;
21
+ private pendingConfirms;
22
+ private sessionId;
23
+ /** Stored last close reason / error message so the UI can show "what
24
+ * went wrong" while reconnecting instead of a generic spinner. */
25
+ private lastErrorText;
26
+ private statusListeners;
27
+ private currentStatus;
28
+ onStatus(fn: (s: WsStatus) => void): () => void;
29
+ get status(): WsStatus;
30
+ private setStatus;
31
+ constructor(url?: string);
32
+ private withSession;
33
+ /**
34
+ * Exchange a stored token for an HttpOnly auth cookie via `/ws-auth`.
35
+ * Called once before the first connect so subsequent reconnections can
36
+ * drop the `?token=` from the WS URL (C-2 fix — token-in-URL closes
37
+ * the C-598 query-string exposure class). No-op when the cookie is
38
+ * already set, when the server is on a loopback bind (no token
39
+ * required), or when no token is available yet.
40
+ *
41
+ * Failure is non-fatal only for local loopback or explicit public-WS URL
42
+ * flows. Normal remote browser clients need the cookie path so the token does
43
+ * not remain in the WebSocket URL.
44
+ */
45
+ ensureAuthCookie(): Promise<void>;
46
+ connect(): Promise<void>;
47
+ private openSocket;
48
+ private attemptReconnect;
49
+ /** Force an immediate reconnect attempt, bypassing the backoff timer. */
50
+ retryNow(): void;
51
+ private flushMessageQueue;
52
+ private handleMessage;
53
+ private emit;
54
+ send(message: WSClientMessage): void;
55
+ /**
56
+ * Register a handler for a server message type. Two overloads:
57
+ * - `on('text_delta', (msg) => …)` — msg is narrowed to the matching union
58
+ * member, so `msg.payload` is statically typed. No cast needed.
59
+ * - `on(someString, handler)` — for runtime-computed type names; the
60
+ * handler receives the wider `WSServerMessage`. Backwards compatible.
61
+ */
62
+ on<K extends WSServerMessage['type']>(eventType: K, handler: (msg: Extract<WSServerMessage, {
63
+ type: K;
64
+ }>) => void): () => void;
65
+ on(eventType: string, handler: EventHandler): () => void;
66
+ off<K extends WSServerMessage['type']>(eventType: K, handler: (msg: Extract<WSServerMessage, {
67
+ type: K;
68
+ }>) => void): void;
69
+ off(eventType: string, handler: EventHandler): void;
70
+ sendMessage(content: string, imageBase64?: string): string;
71
+ sendAbort(): void;
72
+ getGitInfo(): void;
73
+ /** Request the working-tree change set (file list for the Changes panel). */
74
+ getGitChanges(): void;
75
+ /** Request the before/after content for one changed file. */
76
+ getGitDiff(path: string): void;
77
+ sendConfirm(id: string, decision: 'yes' | 'no' | 'always' | 'deny'): void;
78
+ switchModel(provider: string, model: string): void;
79
+ newSession(): void;
80
+ listProviders(): void;
81
+ listProviderModels(providerId: string): void;
82
+ listSavedProviders(): void;
83
+ addKey(providerId: string, label: string, apiKey: string): void;
84
+ updateKey(providerId: string, label: string, apiKey: string): void;
85
+ deleteKey(providerId: string, label: string): void;
86
+ setActiveKey(providerId: string, label: string): void;
87
+ addProvider(id: string, family: string, baseUrl?: string | undefined, apiKey?: string): void;
88
+ removeProvider(providerId: string): void;
89
+ /** Begin a subscription sign-in; progress arrives as `auth.oauth.status`. */
90
+ startOAuth(kind: 'chatgpt' | 'claude' | 'copilot'): void;
91
+ /** Manual-paste fallback for loopback flows (port busy / remote browser). */
92
+ submitOAuthCode(kind: 'chatgpt' | 'claude' | 'copilot', input: string): void;
93
+ /** Cancel an in-flight subscription sign-in. */
94
+ cancelOAuth(kind: 'chatgpt' | 'claude' | 'copilot'): void;
95
+ /** Run a health probe against a saved provider's `/v1/models`. */
96
+ probeProvider(providerId: string, timeoutMs?: number): void;
97
+ /** Remove the saved model allowlist for a provider. */
98
+ clearProviderModels(providerId: string): void;
99
+ /** Restore a previously-cleared model allowlist (pairs with clear). */
100
+ undoProviderClear(providerId: string, previousModels: string[]): void;
101
+ /** Update a saved provider's wire config (family / baseUrl / envVars / models). */
102
+ updateProvider(payload: {
103
+ id: string;
104
+ family?: string | undefined;
105
+ baseUrl?: string | undefined;
106
+ envVars?: string[] | undefined;
107
+ models?: string[] | undefined;
108
+ }): void;
109
+ clearContext(): void;
110
+ compactContext(aggressive?: boolean): void;
111
+ repairContext(): void;
112
+ debugContext(): void;
113
+ listContextModes(): void;
114
+ switchContextMode(id: string): void;
115
+ createContextMode(mode: {
116
+ id: string;
117
+ name: string;
118
+ description: string;
119
+ thresholds: {
120
+ warn: number;
121
+ soft: number;
122
+ hard: number;
123
+ };
124
+ preserveK: number;
125
+ eliseThreshold: number;
126
+ }): void;
127
+ updateContextMode(id: string, patch: {
128
+ name?: string | undefined;
129
+ description?: string | undefined;
130
+ thresholds?: {
131
+ warn?: number | undefined;
132
+ soft?: number | undefined;
133
+ hard?: number | undefined;
134
+ } | undefined;
135
+ preserveK?: number | undefined;
136
+ eliseThreshold?: number | undefined;
137
+ }): void;
138
+ deleteContextMode(id: string): void;
139
+ switchAutonomy(mode: string): void;
140
+ updatePrefs(prefs: Record<string, unknown>): void;
141
+ getPrefs(): void;
142
+ listTools(): void;
143
+ listMemory(): void;
144
+ remember(text: string, scope?: 'project-agents' | 'project-memory' | 'user-memory'): void;
145
+ forget(text: string, scope?: 'project-agents' | 'project-memory' | 'user-memory'): void;
146
+ listMcpServers(): void;
147
+ addMcpServer(config: {
148
+ name: string;
149
+ transport: string;
150
+ description?: string;
151
+ enabled?: boolean;
152
+ command?: string;
153
+ args?: string[];
154
+ env?: Record<string, string>;
155
+ allowedTools?: string[];
156
+ url?: string;
157
+ headers?: Record<string, string>;
158
+ lazy?: boolean;
159
+ }): void;
160
+ removeMcpServer(name: string): void;
161
+ updateMcpServer(config: {
162
+ name: string;
163
+ transport?: string;
164
+ description?: string;
165
+ enabled?: boolean;
166
+ command?: string;
167
+ args?: string[];
168
+ env?: Record<string, string>;
169
+ allowedTools?: string[];
170
+ url?: string;
171
+ headers?: Record<string, string>;
172
+ lazy?: boolean;
173
+ }): void;
174
+ wakeMcpServer(name: string): void;
175
+ sleepMcpServer(name: string): void;
176
+ discoverMcpServer(name: string): void;
177
+ enableMcpServer(name: string): void;
178
+ disableMcpServer(name: string): void;
179
+ restartMcpServer(name: string): void;
180
+ listSkills(): void;
181
+ getSkillContent(name: string, source: string): void;
182
+ installSkill(ref: string, global?: boolean): void;
183
+ uninstallSkill(name: string, global?: boolean): void;
184
+ checkForUpdates(name?: string, global?: boolean): void;
185
+ createSkill(name: string, description: string, scope: 'project' | 'global'): void;
186
+ editSkill(name: string, body: string): void;
187
+ exportAllSkills(): void;
188
+ getDiag(): void;
189
+ getStats(): void;
190
+ saveSession(): void;
191
+ resumeSessionById(id: string): void;
192
+ listModes(): void;
193
+ switchMode(id: string): void;
194
+ listFiles(query?: string, limit?: number, path?: string): void;
195
+ requestCompletion(payload: WSCompletionRequest['payload']): void;
196
+ getTodos(): void;
197
+ clearTodos(): void;
198
+ removeTodo(idOrIndex: string | number): void;
199
+ updateTodoStatus(id: string, status: 'pending' | 'in_progress' | 'completed'): void;
200
+ getTasks(): void;
201
+ updateTaskStatus(id: string, status: string): void;
202
+ getPlan(): void;
203
+ updatePlanItem(target: string, status: 'open' | 'in_progress' | 'done'): void;
204
+ listSessions(limit?: number): void;
205
+ deleteSession(id: string): void;
206
+ renameSession(id: string, name: string): void;
207
+ setWorkingDir(path: string): void;
208
+ resumeSession(sessionId: string): void;
209
+ ping(): void;
210
+ refineModel(text: string): void;
211
+ disconnect(): void;
212
+ get isConnected(): boolean;
213
+ get currentSessionId(): string | null;
214
+ }
215
+ /**
216
+ * Default WS URL derived from the page's host.
217
+ *
218
+ * Subtle gotcha on Windows: when the page is loaded from `http://localhost:3456`,
219
+ * the browser resolves `localhost` *itself* and on Windows it tries IPv6 `[::1]`
220
+ * before IPv4 `127.0.0.1`. If the backend listens only on `127.0.0.1`, every
221
+ * connection attempt to `ws://localhost:3457` first hits the IPv6 socket
222
+ * (refused) and then either gives up or flaps — symptom: "ws disconnect hep".
223
+ *
224
+ * Fix: when the page is on a loopback host (`localhost` / `127.0.0.1` / `::1`),
225
+ * force the WS URL to use the literal IPv4 loopback address. That bypasses the
226
+ * DNS dance entirely. For any other hostname (LAN IP, custom WS_HOST override)
227
+ * we keep the page's hostname so things still "just work".
228
+ *
229
+ * The WS port is NOT hardcoded: the HTTP server stamps the live port into the
230
+ * served HTML as `<meta name="wrongstack-ws-port">` (see http-server.ts), so
231
+ * several WebUI instances can run on different PORT/WS_PORT pairs at once. We
232
+ * fall back to 3457 only when the tag is absent (e.g. the vite dev server).
233
+ */
234
+ export declare function getWSClient(url?: string): WrongStackWebSocketClient;
235
+ //# sourceMappingURL=ws-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../../src/lib/ws-client.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import '@fontsource-variable/ibm-plex-sans';
2
+ import '@fontsource/ibm-plex-mono/400.css';
3
+ import '@fontsource/ibm-plex-mono/500.css';
4
+ import '@fontsource/ibm-plex-mono/600.css';
5
+ import './i18n';
6
+ import './index.css';
7
+ import './syntax-highlight.css';
8
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.tsx"],"names":[],"mappings":"AAMA,OAAO,oCAAoC,CAAC;AAC5C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,mCAAmC,CAAC;AAC3C,OAAO,QAAQ,CAAC;AAEhB,OAAO,aAAa,CAAC;AACrB,OAAO,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Auto-submit streak tracking for YOLO+auto mode.
3
+ *
4
+ * Tracks how many consecutive automatic next-step submissions have occurred
5
+ * since the last manual user input. When the streak hits autoProceedMaxIterations,
6
+ * auto-submit pauses and a warning is shown — the autonomy mode stays on; only
7
+ * the automatic submission is paused until the user types something.
8
+ *
9
+ * Reset on:
10
+ * - Manual user input (any submit via ChatInput)
11
+ * - Autonomy mode change
12
+ *
13
+ * Increment on:
14
+ * - Every successful auto-submit (countdown fires and suggestion is sent)
15
+ */
16
+ interface UseAutoSubmitStreak {
17
+ /** Current streak count */
18
+ streak: number;
19
+ /** Whether the cap warning has been shown */
20
+ capWarned: boolean;
21
+ /**
22
+ * Check if auto-submit is allowed right now (streak < cap).
23
+ * Call this BEFORE showing the countdown — returns false when the cap
24
+ * is already at the limit, so the countdown should not start.
25
+ */
26
+ canAutoSubmit: () => boolean;
27
+ /**
28
+ * Record a successful auto-submit. Increments the streak.
29
+ * Returns true if submitted, false if capped (caller should show warning).
30
+ */
31
+ recordAutoSubmit: () => boolean;
32
+ /** Reset the streak to 0 — call on every manual user submit */
33
+ reset: () => void;
34
+ /** Reset the cap-warning flag — call when autonomy mode changes */
35
+ resetCapWarned: () => void;
36
+ }
37
+ /** Module-level streak — reset when the page hard-reloads (acceptable tradeoff) */
38
+ export declare function useAutoSubmitStreak(): UseAutoSubmitStreak;
39
+ export {};
40
+ //# sourceMappingURL=auto-submit-streak.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-submit-streak.d.ts","sourceRoot":"","sources":["../../src/stores/auto-submit-streak.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AAEH,UAAU,mBAAmB;IAC3B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC,+DAA+D;IAC/D,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,mEAAmE;IACnE,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAOD,mFAAmF;AACnF,wBAAgB,mBAAmB,IAAI,mBAAmB,CAmEzD"}
@@ -0,0 +1,50 @@
1
+ import type { PhaseItem } from '@/components/PhasePanel';
2
+ export type AutoPhaseStatus = 'idle' | 'running' | 'paused' | 'completed' | 'failed' | 'stopped';
3
+ /** A persisted kanban board (one AutoPhase graph JSON per board on disk). */
4
+ export interface AutoPhaseBoardSummary {
5
+ id: string;
6
+ title: string;
7
+ updatedAt: number;
8
+ status: string;
9
+ }
10
+ interface AutoPhaseState {
11
+ phases: PhaseItem[];
12
+ activePhaseId: string | null;
13
+ overallPercent: number;
14
+ autonomous: boolean;
15
+ title: string | null;
16
+ /** Full operator prompt that started the run (title is only a short heading). */
17
+ goal: string | null;
18
+ status: AutoPhaseStatus;
19
+ lastEvent: string | null;
20
+ lastError: string | null;
21
+ /** All persisted boards for this project (from autophase.list). */
22
+ graphs: AutoPhaseBoardSummary[];
23
+ progress: {
24
+ totalPhases: number;
25
+ completed: number;
26
+ failed: number;
27
+ totalTasks: number;
28
+ completedTasks: number;
29
+ failedTasks: number;
30
+ } | null;
31
+ setState: (s: {
32
+ phases?: PhaseItem[] | undefined;
33
+ activePhaseId?: string | null | undefined;
34
+ overallPercent?: number | undefined;
35
+ autonomous?: boolean | undefined;
36
+ title?: string | null | undefined;
37
+ goal?: string | null | undefined;
38
+ status?: AutoPhaseStatus | undefined;
39
+ lastEvent?: string | null | undefined;
40
+ lastError?: string | null | undefined;
41
+ graphs?: AutoPhaseBoardSummary[] | undefined;
42
+ progress?: AutoPhaseState['progress'] | undefined;
43
+ }) => void;
44
+ clear: () => void;
45
+ /** Request state from server on mount. */
46
+ hydrateFromServer: (send: (msg: unknown) => void) => void;
47
+ }
48
+ export declare const useAutoPhaseStore: import("zustand").UseBoundStore<import("zustand").StoreApi<AutoPhaseState>>;
49
+ export {};
50
+ //# sourceMappingURL=autophase-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autophase-store.d.ts","sourceRoot":"","sources":["../../src/stores/autophase-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIzD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjG,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iFAAiF;IACjF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mEAAmE;IACnE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI,CAAC;IAET,QAAQ,EAAE,CAAC,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;QACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QAC1C,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACjC,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;QACrC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACtC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;QACtC,MAAM,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;QAC7C,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;KACnD,KAAK,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,0CAA0C;IAC1C,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;CAC3D;AAED,eAAO,MAAM,iBAAiB,6EAiD3B,CAAC"}
@@ -0,0 +1,128 @@
1
+ import type { ChatMessage } from './types.js';
2
+ /** Submit mode for a queued/typed message. Drives whether the message
3
+ * interrupts the running agent (`steer`), rides alongside without
4
+ * interrupting (`btw`), or is held for after the run completes (`queue`). */
5
+ export type QueueMode = 'btw' | 'steer' | 'queue';
6
+ /** One entry in the message queue — the text plus how it was added.
7
+ * `addedAt` powers the optional sort-by-newest toggle. */
8
+ export interface QueuedItem {
9
+ text: string;
10
+ mode: QueueMode;
11
+ addedAt: number;
12
+ }
13
+ interface ChatState {
14
+ messages: ChatMessage[];
15
+ currentAssistantMessageId: string | null;
16
+ currentToolId: string | null;
17
+ isLoading: boolean;
18
+ abortController: AbortController | null;
19
+ executions: Map<string, ToolExecution>;
20
+ toolMessageIdsByUseId: Map<string, string>;
21
+ /** Messages typed while the agent was running. Drained one-at-a-time
22
+ * after run.result lands so the user can stack up follow-ups without
23
+ * waiting for each turn to finish. Each item carries the submit mode
24
+ * so the queue panel can render the appropriate label. */
25
+ queue: QueuedItem[];
26
+ /** Snapshot taken at the start of the current run (first iteration.started
27
+ * after idle). Used by run.result to compute the per-turn summary —
28
+ * duration is now-at minus this `at`, cost delta is the difference
29
+ * between the session's current cost and the cost captured here. Null
30
+ * while idle. */
31
+ runStart: {
32
+ at: number;
33
+ cost: number;
34
+ } | null;
35
+ /** Transient extended-thinking buffer. Populated by provider.thinking_delta
36
+ * events and shown as a soft, ephemeral bubble below the chat tail while
37
+ * the model is reasoning. Cleared the moment the model produces user-
38
+ * facing output (text_delta) or starts a tool — and at provider.response /
39
+ * run.result. The archive buffer below is what eventually lands in
40
+ * `messages`; this live buffer is only for the temporary bubble. */
41
+ thinkingBuffer: string;
42
+ /** Wall-clock ms when the current thinking burst started, for the chip's
43
+ * elapsed timer. Reset alongside `thinkingBuffer`. */
44
+ thinkingStartedAt: number | null;
45
+ /** Full thinking text accumulated for the current iteration. Unlike the
46
+ * live chip buffer, this survives text/tool events until iteration end. */
47
+ thinkingLogBuffer: string;
48
+ /** Wall-clock ms when the archived thinking text for this iteration began. */
49
+ thinkingLogStartedAt: number | null;
50
+ /** Id of the session whose transcript is currently in `messages`. The
51
+ * verifier view compares this to the server-reported active session id
52
+ * on every `session.start` — a mismatch means the user switched sessions
53
+ * without an explicit clear, and we drop the local transcript rather
54
+ * than render it. Persisted alongside `messages` so the cross-session
55
+ * bleed check survives F5. */
56
+ boundSessionId: string | null;
57
+ addMessage: (msg: Omit<ChatMessage, 'id' | 'timestamp'> & {
58
+ timestamp?: number;
59
+ }) => string;
60
+ setMessages: (messages: ChatMessage[]) => void;
61
+ updateMessage: (id: string, updates: Partial<ChatMessage>) => void;
62
+ appendToMessage: (id: string, text: string) => void;
63
+ finalizeMessage: (id: string) => void;
64
+ setToolResult: (id: string, result: string, ok: boolean) => void;
65
+ appendToolProgress: (id: string, line: string) => void;
66
+ appendToolProgressLines: (id: string, lines: string[]) => void;
67
+ getToolMessageId: (toolUseId: string) => string | undefined;
68
+ setToolResultByUseId: (toolUseId: string, result: string, ok: boolean) => void;
69
+ appendToolProgressLinesByUseId: (toolUseId: string, lines: string[]) => void;
70
+ setLoading: (loading: boolean) => void;
71
+ setAbortController: (ctrl: AbortController | null) => void;
72
+ clearMessages: () => void;
73
+ /** Bind the current transcript to a session id. See boundSessionId above
74
+ * for why this is a separate action. */
75
+ setBoundSessionId: (id: string | null) => void;
76
+ setCurrentAssistantMessage: (id: string | null) => void;
77
+ setCurrentToolId: (id: string | null) => void;
78
+ truncateAfter: (id: string) => void;
79
+ addExecution: (exec: ToolExecution) => void;
80
+ updateExecution: (id: string, updates: Partial<ToolExecution>) => void;
81
+ enqueue: (text: string, mode?: QueueMode) => void;
82
+ dequeue: () => QueuedItem | null;
83
+ removeQueued: (idx: number) => void;
84
+ clearQueue: () => void;
85
+ setRunStart: (s: {
86
+ at: number;
87
+ cost: number;
88
+ } | null) => void;
89
+ appendThinking: (text: string) => void;
90
+ clearThinking: () => void;
91
+ flushThinkingLog: (iteration: number) => void;
92
+ clearThinkingLog: () => void;
93
+ }
94
+ interface ToolExecution {
95
+ id: string;
96
+ name: string;
97
+ input?: unknown | undefined;
98
+ output?: string | undefined;
99
+ durationMs?: number | undefined;
100
+ ok: boolean;
101
+ startedAt: number;
102
+ completedAt?: number | undefined;
103
+ }
104
+ export declare const useChatStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<ChatState>, "persist" | "setState"> & {
105
+ setState(partial: ChatState | Partial<ChatState> | ((state: ChatState) => ChatState | Partial<ChatState>), replace?: false | undefined): unknown;
106
+ setState(state: ChatState | ((state: ChatState) => ChatState), replace: true): unknown;
107
+ persist: {
108
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ChatState, {
109
+ messages: ChatState['messages'];
110
+ queue: ChatState['queue'];
111
+ boundSessionId: string | null;
112
+ thinkingLogBuffer: string;
113
+ }, unknown>>) => void;
114
+ clearStorage: () => void;
115
+ rehydrate: () => Promise<void> | void;
116
+ hasHydrated: () => boolean;
117
+ onHydrate: (fn: (state: ChatState) => void) => () => void;
118
+ onFinishHydration: (fn: (state: ChatState) => void) => () => void;
119
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<ChatState, {
120
+ messages: ChatState['messages'];
121
+ queue: ChatState['queue'];
122
+ boundSessionId: string | null;
123
+ thinkingLogBuffer: string;
124
+ }, unknown>>;
125
+ };
126
+ }>;
127
+ export {};
128
+ //# sourceMappingURL=chat-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-store.d.ts","sourceRoot":"","sources":["../../src/stores/chat-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ export interface ConfigState {
2
+ provider: string;
3
+ model: string;
4
+ baseUrl?: string | undefined;
5
+ apiKey?: string | undefined;
6
+ wsUrl: string;
7
+ wsConnected: boolean;
8
+ /** Fine-grained connection state from the WS client. Drives the topbar's
9
+ * reconnect indicator. */
10
+ wsStatus: {
11
+ state: 'connecting';
12
+ } | {
13
+ state: 'open';
14
+ } | {
15
+ state: 'closed';
16
+ error?: string | undefined;
17
+ } | {
18
+ state: 'reconnecting';
19
+ attempt: number;
20
+ nextRetryAt: number;
21
+ lastError?: string | undefined;
22
+ };
23
+ theme: 'light' | 'dark' | 'system';
24
+ autoConnect: boolean;
25
+ /** Play a soft synthesized chime when run.result lands with status=done.
26
+ * Off by default — opt-in via the Command Palette. Persisted so the
27
+ * preference survives reloads. Actual playback only fires after the
28
+ * user has interacted with the page (Web Audio autoplay policy). */
29
+ soundOnComplete: boolean;
30
+ setProvider: (provider: string) => void;
31
+ setModel: (model: string) => void;
32
+ setConfig: (config: Partial<Omit<ConfigState, 'setProvider' | 'setModel' | 'setConfig' | 'setTheme'>>) => void;
33
+ setTheme: (theme: 'light' | 'dark' | 'system') => void;
34
+ setWsConnected: (connected: boolean) => void;
35
+ setWsStatus: (s: ConfigState['wsStatus']) => void;
36
+ setSoundOnComplete: (on: boolean) => void;
37
+ }
38
+ export declare const useConfigStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<ConfigState>, "persist" | "setState"> & {
39
+ setState(partial: ConfigState | Partial<ConfigState> | ((state: ConfigState) => ConfigState | Partial<ConfigState>), replace?: false | undefined): unknown;
40
+ setState(state: ConfigState | ((state: ConfigState) => ConfigState), replace: true): unknown;
41
+ persist: {
42
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ConfigState, {
43
+ provider: string;
44
+ model: string;
45
+ baseUrl: string | undefined;
46
+ apiKey: string | undefined;
47
+ theme: "dark" | "light" | "system";
48
+ autoConnect: boolean;
49
+ soundOnComplete: boolean;
50
+ }, unknown>>) => void;
51
+ clearStorage: () => void;
52
+ rehydrate: () => Promise<void> | void;
53
+ hasHydrated: () => boolean;
54
+ onHydrate: (fn: (state: ConfigState) => void) => () => void;
55
+ onFinishHydration: (fn: (state: ConfigState) => void) => () => void;
56
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<ConfigState, {
57
+ provider: string;
58
+ model: string;
59
+ baseUrl: string | undefined;
60
+ apiKey: string | undefined;
61
+ theme: "dark" | "light" | "system";
62
+ autoConnect: boolean;
63
+ soundOnComplete: boolean;
64
+ }, unknown>>;
65
+ };
66
+ }>;
67
+ //# sourceMappingURL=config-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/stores/config-store.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB;+BAC2B;IAC3B,QAAQ,EACJ;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,GACvB;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GACjB;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAC/C;QAAE,KAAK,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpG,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB;;;yEAGqE;IACrE,eAAe,EAAE,OAAO,CAAC;IAEzB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CACT,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,KACtF,IAAI,CAAC;IACV,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,KAAK,IAAI,CAAC;IACvD,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAClD,kBAAkB,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuC1B,CAAC"}