@wrongstack/webui 0.285.0 → 0.287.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 (261) hide show
  1. package/README.md +35 -0
  2. package/dist/App.d.ts.map +1 -1
  3. package/dist/assets/AnalyticsDashboard-Lwr7vcaY.js +1 -0
  4. package/dist/assets/AutoPhaseView-Dm2ALbiB.js +1 -0
  5. package/dist/assets/ChangesView-CVcdAOd0.js +1 -0
  6. package/dist/assets/CodeEditor-DJCl9lsb.js +1 -0
  7. package/dist/assets/CronJobsPanel-B21inkB5.js +1 -0
  8. package/dist/assets/DebugDashboard-BppNFFs9.js +1 -0
  9. package/dist/assets/{DesignGalleryView-Bk3HH3al.js → DesignGalleryView-BKfKAS1f.js} +1 -1
  10. package/dist/assets/KanbanView-Bc2UIVD2.js +1 -0
  11. package/dist/assets/MailboxDetailView-b8e-UFpl.js +1 -0
  12. package/dist/assets/OfficeMapPanel-DmW-omSm.js +4 -0
  13. package/dist/assets/ProcessMonitor-4Il_i86w.js +1 -0
  14. package/dist/assets/{QueuePanel-BdwvWRuB.js → QueuePanel-Ikqk4oth.js} +1 -1
  15. package/dist/assets/{RefreshDebugView-eZwtZXgZ.js → RefreshDebugView-BQ7J1C4N.js} +1 -1
  16. package/dist/assets/SddBoardView-B2ECODCt.js +2 -0
  17. package/dist/assets/SddFlowGraph-DmZbA2K1.js +1 -0
  18. package/dist/assets/SddWizard-CPYgixwo.js +1 -0
  19. package/dist/assets/SessionsDashboard-DZ2kQo_0.js +1 -0
  20. package/dist/assets/SetupScreen-CnfDy-Zu.js +1 -0
  21. package/dist/assets/SkillDetailView-Df1mNWLj.js +3 -0
  22. package/dist/assets/{SpecsView-yunV-Xfj.js → SpecsView-C0zbOk7n.js} +1 -1
  23. package/dist/assets/TerminalPanel-B-fOpicS.js +1 -0
  24. package/dist/assets/activity-BlfRLrUt.js +5 -0
  25. package/dist/assets/activity-C6fV-S38.js +5 -0
  26. package/dist/assets/activity-Csy0Hk3h.js +5 -0
  27. package/dist/assets/activity-DEmOOQMt.js +5 -0
  28. package/dist/assets/activity-DFMWzed9.js +5 -0
  29. package/dist/assets/activity-Dn9wzdq-.js +5 -0
  30. package/dist/assets/activity-GAfT06yP.js +5 -0
  31. package/dist/assets/chat-BJzPxfyr.js +1 -0
  32. package/dist/assets/chat-BRBVFl4h.js +1 -0
  33. package/dist/assets/chat-Bkom8vQo.js +1 -0
  34. package/dist/assets/chat-C7ybebfi.js +1 -0
  35. package/dist/assets/chat-Du7n7HZ7.js +1 -0
  36. package/dist/assets/chat-IRKmQ6we.js +1 -0
  37. package/dist/assets/chat-VkTBQmmx.js +1 -0
  38. package/dist/assets/chat-store-CQq9AeA9.js +5 -0
  39. package/dist/assets/commandPalette-BcMV6x3_.js +1 -0
  40. package/dist/assets/commandPalette-C4o2rUOp.js +1 -0
  41. package/dist/assets/commandPalette-C5U6qfth.js +1 -0
  42. package/dist/assets/commandPalette-CBJfByB7.js +1 -0
  43. package/dist/assets/commandPalette-CrYfIhnW.js +1 -0
  44. package/dist/assets/commandPalette-Dgd8HfNm.js +1 -0
  45. package/dist/assets/i18n-CLLrYq46.js +2 -0
  46. package/dist/assets/index-BwLKTDt1.js +159 -0
  47. package/dist/assets/index-Dk3-IFDU.css +1 -0
  48. package/dist/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2 +0 -0
  49. package/dist/assets/manrope-greek-wght-normal-DL7QRZyv.woff2 +0 -0
  50. package/dist/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2 +0 -0
  51. package/dist/assets/manrope-latin-wght-normal-DHIcAJRg.woff2 +0 -0
  52. package/dist/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2 +0 -0
  53. package/dist/assets/markdown-BRAejDWd.js +44 -0
  54. package/dist/assets/{monaco-XnLmrAXJ.js → monaco-MjnRih9i.js} +1 -1
  55. package/dist/assets/{monaco-theme-Lsd14tM-.js → monaco-theme-DhdHiZEb.js} +1 -1
  56. package/dist/assets/{session-store-P-JnaPPK.js → session-store-zbDVE9MI.js} +1 -1
  57. package/dist/assets/settings-Bc58aJZk.js +1 -0
  58. package/dist/assets/settings-Bp9YKTVi.js +1 -0
  59. package/dist/assets/settings-C5VZmgTv.js +1 -0
  60. package/dist/assets/settings-CPPzs9tv.js +1 -0
  61. package/dist/assets/settings-D97B_3tS.js +1 -0
  62. package/dist/assets/settings-DLpAN_Sw.js +1 -0
  63. package/dist/assets/settings-KWv7WsjE.js +1 -0
  64. package/dist/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2 +0 -0
  65. package/dist/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2 +0 -0
  66. package/dist/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2 +0 -0
  67. package/dist/assets/ui-store-Dm48nEb1.js +1 -0
  68. package/dist/assets/utils-C9L1kxOy.js +1 -0
  69. package/dist/assets/{vendor-CyLvG8N0.js → vendor-B51hXwIj.js} +30 -30
  70. package/dist/assets/vendor-BShi5_Dg.css +1 -0
  71. package/dist/assets/ws-client-Bbu1u6TM.js +1 -0
  72. package/dist/assets/{xyflow-oYDGUYW6.js → xyflow-BDdNcuaV.js} +3 -3
  73. package/dist/components/ChatInput/image-attachments.d.ts +58 -0
  74. package/dist/components/ChatInput/image-attachments.d.ts.map +1 -0
  75. package/dist/components/ChatInput/slash-routing.d.ts +8 -0
  76. package/dist/components/ChatInput/slash-routing.d.ts.map +1 -1
  77. package/dist/components/ChatInput/use-paste-drop.d.ts +14 -4
  78. package/dist/components/ChatInput/use-paste-drop.d.ts.map +1 -1
  79. package/dist/components/ChatInput.d.ts.map +1 -1
  80. package/dist/components/ChatView/index.d.ts.map +1 -1
  81. package/dist/components/ChipMultiSelect.d.ts +20 -0
  82. package/dist/components/ChipMultiSelect.d.ts.map +1 -0
  83. package/dist/components/CodeEditor.d.ts.map +1 -1
  84. package/dist/components/CommandPalette/index.d.ts.map +1 -1
  85. package/dist/components/ContextDashboard.d.ts +13 -0
  86. package/dist/components/ContextDashboard.d.ts.map +1 -0
  87. package/dist/components/CronJobsPanel.d.ts +6 -0
  88. package/dist/components/CronJobsPanel.d.ts.map +1 -0
  89. package/dist/components/CronTrigger.d.ts +2 -0
  90. package/dist/components/CronTrigger.d.ts.map +1 -0
  91. package/dist/components/FallbackEditor.d.ts.map +1 -1
  92. package/dist/components/FileReferenceChip.d.ts +2 -2
  93. package/dist/components/FileReferenceChip.d.ts.map +1 -1
  94. package/dist/components/InspectorPanel.d.ts +9 -9
  95. package/dist/components/InspectorPanel.d.ts.map +1 -1
  96. package/dist/components/KanbanView.d.ts.map +1 -1
  97. package/dist/components/MailboxPanel.d.ts.map +1 -1
  98. package/dist/components/MemoryManager/MemoryGraph.d.ts +40 -0
  99. package/dist/components/MemoryManager/MemoryGraph.d.ts.map +1 -0
  100. package/dist/components/MemoryManager/index.d.ts +15 -0
  101. package/dist/components/MemoryManager/index.d.ts.map +1 -0
  102. package/dist/components/MessageBubble/AttachmentGallery.d.ts +12 -0
  103. package/dist/components/MessageBubble/AttachmentGallery.d.ts.map +1 -0
  104. package/dist/components/MessageBubble/LazyMarkdown.d.ts +27 -0
  105. package/dist/components/MessageBubble/LazyMarkdown.d.ts.map +1 -0
  106. package/dist/components/MessageBubble/ToolInputView.d.ts.map +1 -1
  107. package/dist/components/MessageBubble/index.d.ts.map +1 -1
  108. package/dist/components/ModelPickDialog.d.ts +22 -0
  109. package/dist/components/ModelPickDialog.d.ts.map +1 -0
  110. package/dist/components/ModelPicker.d.ts.map +1 -1
  111. package/dist/components/ModelSelectDialog.d.ts +47 -0
  112. package/dist/components/ModelSelectDialog.d.ts.map +1 -0
  113. package/dist/components/RefinePanel.d.ts +17 -1
  114. package/dist/components/RefinePanel.d.ts.map +1 -1
  115. package/dist/components/SddFlowGraph.d.ts.map +1 -1
  116. package/dist/components/SddTaskDrawer.d.ts.map +1 -1
  117. package/dist/components/SearchOverlay.d.ts.map +1 -1
  118. package/dist/components/SessionsDashboard.d.ts.map +1 -1
  119. package/dist/components/SettingsPanel/BrainSection.d.ts.map +1 -1
  120. package/dist/components/SettingsPanel/MCPSection.d.ts +21 -0
  121. package/dist/components/SettingsPanel/MCPSection.d.ts.map +1 -1
  122. package/dist/components/SettingsPanel/ModelSection.d.ts.map +1 -1
  123. package/dist/components/SettingsPanel/PluginToggleList.d.ts +3 -0
  124. package/dist/components/SettingsPanel/PluginToggleList.d.ts.map +1 -0
  125. package/dist/components/SettingsPanel/PreferenceControls.d.ts.map +1 -1
  126. package/dist/components/SettingsPanel/PreferenceToggle.d.ts.map +1 -1
  127. package/dist/components/SettingsPanel/RoutingSection.d.ts +13 -0
  128. package/dist/components/SettingsPanel/RoutingSection.d.ts.map +1 -0
  129. package/dist/components/SettingsPanel/ShadowSection.d.ts.map +1 -1
  130. package/dist/components/SettingsPanel/ToolsSection.d.ts.map +1 -1
  131. package/dist/components/SettingsPanel/index.d.ts.map +1 -1
  132. package/dist/components/SidePanel/HistoryPanel.d.ts.map +1 -1
  133. package/dist/components/SidePanel/SessionList.d.ts +33 -5
  134. package/dist/components/SidePanel/SessionList.d.ts.map +1 -1
  135. package/dist/components/SidePanel/SkillsList.d.ts.map +1 -1
  136. package/dist/components/SidePanel/index.d.ts.map +1 -1
  137. package/dist/components/SkillDetailView.d.ts.map +1 -1
  138. package/dist/components/TaskCard.d.ts.map +1 -1
  139. package/dist/components/TerminalPanel.d.ts.map +1 -1
  140. package/dist/components/Toaster.d.ts +0 -7
  141. package/dist/components/Toaster.d.ts.map +1 -1
  142. package/dist/components/TodosPanel.d.ts.map +1 -1
  143. package/dist/components/WelcomeScreen.d.ts.map +1 -1
  144. package/dist/components/WorkspaceDock.d.ts +8 -9
  145. package/dist/components/WorkspaceDock.d.ts.map +1 -1
  146. package/dist/components/activity-bar/index.d.ts.map +1 -1
  147. package/dist/components/index.d.ts +2 -0
  148. package/dist/components/index.d.ts.map +1 -1
  149. package/dist/components/ui/PickerCardList.d.ts +52 -0
  150. package/dist/components/ui/PickerCardList.d.ts.map +1 -0
  151. package/dist/components/ui/sheet.d.ts +7 -1
  152. package/dist/components/ui/sheet.d.ts.map +1 -1
  153. package/dist/components/ui/sparkline.d.ts.map +1 -1
  154. package/dist/hooks/useDesktopBridge.d.ts +29 -0
  155. package/dist/hooks/useDesktopBridge.d.ts.map +1 -0
  156. package/dist/hooks/useF5Resilience.d.ts +16 -0
  157. package/dist/hooks/useF5Resilience.d.ts.map +1 -0
  158. package/dist/hooks/useGlobalKeyboardShortcuts.d.ts +25 -0
  159. package/dist/hooks/useGlobalKeyboardShortcuts.d.ts.map +1 -0
  160. package/dist/hooks/useKanbanMeta.d.ts +32 -0
  161. package/dist/hooks/useKanbanMeta.d.ts.map +1 -0
  162. package/dist/hooks/useWebSocket.d.ts +17 -2
  163. package/dist/hooks/useWebSocket.d.ts.map +1 -1
  164. package/dist/hooks/ws-handlers/chat-handlers.d.ts.map +1 -1
  165. package/dist/hooks/ws-handlers/files-mailbox-handlers.d.ts +3 -1
  166. package/dist/hooks/ws-handlers/files-mailbox-handlers.d.ts.map +1 -1
  167. package/dist/hooks/ws-handlers/misc-handlers.d.ts +2 -0
  168. package/dist/hooks/ws-handlers/misc-handlers.d.ts.map +1 -1
  169. package/dist/hooks/ws-handlers.d.ts +4 -0
  170. package/dist/hooks/ws-handlers.d.ts.map +1 -1
  171. package/dist/index.css +1 -1
  172. package/dist/index.css.map +1 -1
  173. package/dist/index.html +17 -16
  174. package/dist/index.js +26302 -20824
  175. package/dist/index.js.map +4 -4
  176. package/dist/lib/analytics.d.ts +2 -0
  177. package/dist/lib/analytics.d.ts.map +1 -1
  178. package/dist/lib/default-prompt-pools.d.ts +27 -0
  179. package/dist/lib/default-prompt-pools.d.ts.map +1 -0
  180. package/dist/lib/utils.d.ts +7 -0
  181. package/dist/lib/utils.d.ts.map +1 -1
  182. package/dist/lib/view-navigation.d.ts +1 -1
  183. package/dist/lib/view-navigation.d.ts.map +1 -1
  184. package/dist/lib/ws-client.d.ts +22 -5
  185. package/dist/lib/ws-client.d.ts.map +1 -1
  186. package/dist/main.d.ts +2 -0
  187. package/dist/main.d.ts.map +1 -1
  188. package/dist/stores/chat-store.d.ts +10 -1
  189. package/dist/stores/chat-store.d.ts.map +1 -1
  190. package/dist/stores/cron-store.d.ts +29 -0
  191. package/dist/stores/cron-store.d.ts.map +1 -0
  192. package/dist/stores/file-reference-store.d.ts +7 -1
  193. package/dist/stores/file-reference-store.d.ts.map +1 -1
  194. package/dist/stores/index.d.ts +2 -0
  195. package/dist/stores/index.d.ts.map +1 -1
  196. package/dist/stores/kanban-store.d.ts +2 -1
  197. package/dist/stores/kanban-store.d.ts.map +1 -1
  198. package/dist/stores/local-prefs.d.ts +24 -0
  199. package/dist/stores/local-prefs.d.ts.map +1 -1
  200. package/dist/stores/mailbox-store.d.ts +10 -0
  201. package/dist/stores/mailbox-store.d.ts.map +1 -1
  202. package/dist/stores/types.d.ts +24 -3
  203. package/dist/stores/types.d.ts.map +1 -1
  204. package/dist/stores/ui-store.d.ts +28 -9
  205. package/dist/stores/ui-store.d.ts.map +1 -1
  206. package/dist/types.d.ts +391 -7
  207. package/dist/types.d.ts.map +1 -1
  208. package/package.json +16 -19
  209. package/dist/assets/AnalyticsDashboard-Bn2wIgV0.js +0 -1
  210. package/dist/assets/AutoPhaseView-DWp3yHpI.js +0 -1
  211. package/dist/assets/ChangesView-C_r4kccO.js +0 -1
  212. package/dist/assets/CodeEditor-DSpqZ-mS.js +0 -1
  213. package/dist/assets/DebugDashboard-DWKLI7lR.js +0 -1
  214. package/dist/assets/KanbanView-CJqlvsbc.js +0 -1
  215. package/dist/assets/MailboxDetailView-BwWagFay.js +0 -1
  216. package/dist/assets/OfficeMapPanel-QFPaXTZ9.js +0 -4
  217. package/dist/assets/ProcessMonitor-dUyYv3Z4.js +0 -1
  218. package/dist/assets/SddBoardView-OtKwEtAp.js +0 -2
  219. package/dist/assets/SddFlowGraph-MVMUCMEy.js +0 -1
  220. package/dist/assets/SddWizard-c7g68RFx.js +0 -1
  221. package/dist/assets/SessionsDashboard-pMXfRTwN.js +0 -1
  222. package/dist/assets/SkillDetailView-CcdIF-85.js +0 -2
  223. package/dist/assets/TerminalPanel-BIYT1IB3.js +0 -1
  224. package/dist/assets/activity-3lpGdUIy.js +0 -5
  225. package/dist/assets/activity-Bi6wI_Cg.js +0 -5
  226. package/dist/assets/activity-CSPSX--m.js +0 -5
  227. package/dist/assets/activity-CcEdxJjx.js +0 -5
  228. package/dist/assets/activity-Cv0CmTyM.js +0 -5
  229. package/dist/assets/activity-Doy5Yots.js +0 -5
  230. package/dist/assets/activity-T9kySYDT.js +0 -5
  231. package/dist/assets/chat--Zry3Atx.js +0 -1
  232. package/dist/assets/chat-0DeGMNFQ.js +0 -1
  233. package/dist/assets/chat-BErfSQjE.js +0 -1
  234. package/dist/assets/chat-CX5cjaC-.js +0 -1
  235. package/dist/assets/chat-CibJIps5.js +0 -1
  236. package/dist/assets/chat-Dr5SJikx.js +0 -1
  237. package/dist/assets/chat-Siz8aWTB.js +0 -1
  238. package/dist/assets/chat-store-De7J1E26.js +0 -5
  239. package/dist/assets/commandPalette-2M1hYRuH.js +0 -1
  240. package/dist/assets/commandPalette-BE_ljQwl.js +0 -1
  241. package/dist/assets/commandPalette-BYf22WAi.js +0 -1
  242. package/dist/assets/commandPalette-BZhacjvy.js +0 -1
  243. package/dist/assets/commandPalette-CTE9ITWg.js +0 -1
  244. package/dist/assets/commandPalette-RxWSjQIg.js +0 -1
  245. package/dist/assets/i18n-BMePmaPJ.js +0 -2
  246. package/dist/assets/index-CbrHWxbT.css +0 -1
  247. package/dist/assets/index-CyTNJHe8.js +0 -154
  248. package/dist/assets/local-prefs-BBMxai9I.js +0 -1
  249. package/dist/assets/markdown-D0X23O-i.js +0 -44
  250. package/dist/assets/settings-BVvx94WK.js +0 -1
  251. package/dist/assets/settings-CKNx8p9I.js +0 -1
  252. package/dist/assets/settings-CQ4x-iFD.js +0 -1
  253. package/dist/assets/settings-CmHCQRVI.js +0 -1
  254. package/dist/assets/settings-D-SHf0yS.js +0 -1
  255. package/dist/assets/settings-DgGu17XI.js +0 -1
  256. package/dist/assets/settings-TqprB9wO.js +0 -1
  257. package/dist/assets/ui-store-ComQYc5F.js +0 -1
  258. package/dist/assets/utils-CU_o9ioU.js +0 -1
  259. package/dist/assets/vendor-CcOzUMQS.css +0 -1
  260. package/dist/assets/ws-client-CwL51TNh.js +0 -1
  261. package/dist/server/index.d.ts.map +0 -1
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Client-side image attachment processing for the chat composer.
3
+ *
4
+ * Every image (pasted, dropped, or picked) passes through `processImageFile`
5
+ * before it becomes a pending attachment:
6
+ *
7
+ * - oversized or exotic formats are rasterized onto a canvas and re-encoded
8
+ * (WebP where the browser supports it, PNG/JPEG fallback), so what goes
9
+ * over the wire is always a provider-accepted media type at a sane size;
10
+ * - dimensions are capped at `MAX_DIMENSION` on the long edge — vision
11
+ * providers downscale past that anyway, so bigger is pure wire waste;
12
+ * - small images in an accepted format pass through untouched (GIFs keep
13
+ * their animation this way).
14
+ *
15
+ * The server re-validates independently (`parseIncomingImages` in core) —
16
+ * this module is about UX and payload size, not trust.
17
+ */
18
+ export interface ImageAttachment {
19
+ id: string;
20
+ /** Full data URL — used for the thumbnail preview and the wire payload. */
21
+ dataUrl: string;
22
+ mediaType: string;
23
+ /** Approximate decoded size in bytes. */
24
+ bytes: number;
25
+ /** Original filename when the image came from a picker or drop. */
26
+ name?: string | undefined;
27
+ width?: number | undefined;
28
+ height?: number | undefined;
29
+ }
30
+ /** Max images per message — mirrors core's MAX_INCOMING_IMAGES. */
31
+ export declare const MAX_ATTACHED_IMAGES = 8;
32
+ /** Hard per-image cap after processing. Mirrors nothing server-side exactly
33
+ * (the server allows 8 MB) — the tighter client cap keeps multi-image
34
+ * messages inside the WS payload budget. */
35
+ export declare const MAX_PROCESSED_IMAGE_BYTES: number;
36
+ export declare class ImageAttachmentError extends Error {
37
+ /** i18n key the caller can surface; message is the English fallback. */
38
+ readonly reason: 'decode_failed' | 'too_large';
39
+ constructor(message: string,
40
+ /** i18n key the caller can surface; message is the English fallback. */
41
+ reason: 'decode_failed' | 'too_large');
42
+ }
43
+ /**
44
+ * Normalize one image file into a pending attachment: decode, downscale to
45
+ * `MAX_DIMENSION`, re-encode when the source is oversized or in a format
46
+ * providers don't accept. Throws {@link ImageAttachmentError} when the file
47
+ * can't be decoded or can't be squeezed under the size cap.
48
+ */
49
+ export declare function processImageFile(file: File): Promise<ImageAttachment>;
50
+ /** Wire shape sent inside the `user_message` payload (`images` field). */
51
+ export interface WireImage {
52
+ data: string;
53
+ mediaType: string;
54
+ name?: string | undefined;
55
+ }
56
+ /** Strip the data-URL prefix — the wire carries bare base64 + mediaType. */
57
+ export declare function toWireImages(attachments: readonly ImageAttachment[]): WireImage[];
58
+ //# sourceMappingURL=image-attachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-attachments.d.ts","sourceRoot":"","sources":["../../../src/components/ChatInput/image-attachments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AASrC;;6CAE6C;AAC7C,eAAO,MAAM,yBAAyB,QAAkB,CAAC;AAMzD,qBAAa,oBAAqB,SAAQ,KAAK;IAG3C,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW;IAHhD,YACE,OAAO,EAAE,MAAM;IACf,wEAAwE;IAC/D,MAAM,EAAE,eAAe,GAAG,WAAW,EAI/C;CACF;AAsED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAyE3E;AAED,0EAA0E;AAC1E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,EAAE,CASjF"}
@@ -22,6 +22,14 @@ type SlashRoutingClientMessage = Extract<WSClientMessage, {
22
22
  type: 'modes.list';
23
23
  } | {
24
24
  type: 'mcp.list';
25
+ } | {
26
+ type: 'mcp.resources';
27
+ } | {
28
+ type: 'mcp.prompts';
29
+ } | {
30
+ type: 'mcp.resource.read';
31
+ } | {
32
+ type: 'mcp.prompt.get';
25
33
  } | {
26
34
  type: 'working_dir.set';
27
35
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"slash-routing.d.ts","sourceRoot":"","sources":["../../../src/components/ChatInput/slash-routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slash-routing.d.ts","sourceRoot":"","sources":["../../../src/components/ChatInput/slash-routing.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type React from 'react';
2
+ import { type ImageAttachment } from './image-attachments.js';
2
3
  export interface PasteHintState {
3
4
  chars: number;
4
5
  lines: number;
@@ -11,8 +12,15 @@ interface UsePasteDropOptions {
11
12
  input: string;
12
13
  textareaRef: React.RefObject<HTMLTextAreaElement | null>;
13
14
  setInput: (value: string) => void;
15
+ /** i18n error strings, resolved by the component so the hook stays free of
16
+ * the translation context. */
17
+ errorText: {
18
+ tooManyImages: (max: number) => string;
19
+ imageProcessFailed: (name: string) => string;
20
+ imageTooLarge: (name: string) => string;
21
+ };
14
22
  }
15
- export declare function usePasteDrop({ input, textareaRef, setInput }: UsePasteDropOptions): {
23
+ export declare function usePasteDrop({ input, textareaRef, setInput, errorText }: UsePasteDropOptions): {
16
24
  draggingOver: boolean;
17
25
  onDragEnter: (event: React.DragEvent<HTMLFormElement>) => void;
18
26
  onDragLeave: (event: React.DragEvent<HTMLFormElement>) => void;
@@ -20,9 +28,11 @@ export declare function usePasteDrop({ input, textareaRef, setInput }: UsePasteD
20
28
  onDrop: (event: React.DragEvent<HTMLFormElement>) => void;
21
29
  onTextPaste: (event: React.ClipboardEvent<HTMLTextAreaElement>) => void;
22
30
  pasteHint: PasteHintState | null;
23
- pendingImageRef: React.RefObject<string | null>;
24
- pendingImage: string | null;
25
- clearPendingImage: () => void;
31
+ pendingImagesRef: React.RefObject<ImageAttachment[]>;
32
+ pendingImages: ImageAttachment[];
33
+ addImageFiles: (files: File[]) => Promise<void>;
34
+ removeImage: (id: string) => void;
35
+ clearPendingImages: () => void;
26
36
  setPasteHint: React.Dispatch<React.SetStateAction<PasteHintState | null>>;
27
37
  };
28
38
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"use-paste-drop.d.ts","sourceRoot":"","sources":["../../../src/components/ChatInput/use-paste-drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,kEAAkE;IAClE,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACtC;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACzD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAYD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,mBAAmB;;yBA+CpD,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAG,IAAI;yBAgBvC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAG,IAAI;wBARxC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAG,IAAI;oBAe3C,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAG,IAAI;yBAiClC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAG,IAAI;;;;;;EA8D7E"}
1
+ {"version":3,"file":"use-paste-drop.d.ts","sourceRoot":"","sources":["../../../src/components/ChatInput/use-paste-drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,kEAAkE;IAClE,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACtC;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACzD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;mCAC+B;IAC/B,SAAS,EAAE;QACT,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;QACvC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAC7C,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KACzC,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,mBAAmB;;yBA2E/D,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAG,IAAI;yBAgBvC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAG,IAAI;wBARxC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAG,IAAI;oBAe3C,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,KAAG,IAAI;yBA4BlC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAG,IAAI;;;;2BAxGxC,IAAI,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;sBAoBjC,MAAM;;;EAoJhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../src/components/ChatInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2B/B,wBAAgB,SAAS,CAAC,EACxB,eAAe,GAChB,GAAE;IACD,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACvC,qBAg+BL"}
1
+ {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../src/components/ChatInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8B/B,wBAAgB,SAAS,CAAC,EACxB,eAAe,GAChB,GAAE;IACD,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACvC,qBAgsCL"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ChatView/index.tsx"],"names":[],"mappings":"AAsKA,wBAAgB,QAAQ,gCA8nBvB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ChatView/index.tsx"],"names":[],"mappings":"AAsKA,wBAAgB,QAAQ,gCAooBvB"}
@@ -0,0 +1,20 @@
1
+ export interface ChipOption {
2
+ value: string;
3
+ label: string;
4
+ description?: string | undefined;
5
+ /** Optional right-aligned tag (e.g. provider name). */
6
+ tag?: string | undefined;
7
+ }
8
+ /**
9
+ * ChipMultiSelect — a compact searchable multi-select. Selected values render
10
+ * as removable chips; the dropdown lists real options to toggle. Used for
11
+ * fallback models, tools, and capabilities so nothing is hand-typed.
12
+ */
13
+ export declare function ChipMultiSelect({ options, selected, onChange, placeholder, emptyLabel, }: {
14
+ options: ChipOption[];
15
+ selected: string[];
16
+ onChange: (next: string[]) => void;
17
+ placeholder?: string;
18
+ emptyLabel?: string;
19
+ }): React.ReactElement;
20
+ //# sourceMappingURL=ChipMultiSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChipMultiSelect.d.ts","sourceRoot":"","sources":["../../src/components/ChipMultiSelect.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,GACX,EAAE;IACD,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,KAAK,CAAC,YAAY,CAgIrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../src/components/CodeEditor.tsx"],"names":[],"mappings":"AA2BA,OAAO,gBAAgB,CAAC;AAuGxB,wBAAgB,UAAU,gCAwWzB"}
1
+ {"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../src/components/CodeEditor.tsx"],"names":[],"mappings":"AA2BA,OAAO,gBAAgB,CAAC;AAuGxB,wBAAgB,UAAU,gCAsWzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CommandPalette/index.tsx"],"names":[],"mappings":"AA6DA,wBAAgB,cAAc,gCA6S7B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CommandPalette/index.tsx"],"names":[],"mappings":"AA6DA,wBAAgB,cAAc,gCAkT7B"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ContextDashboard — a full-page context-window telemetry dashboard for the WebUI.
3
+ *
4
+ * Mirrors the TUI `/context window` panel: pressure bar, source breakdown,
5
+ * threshold map, compaction engine, per-agent footprints, token metrics.
6
+ *
7
+ * Data sources:
8
+ * - session-store: lastInputTokens, maxContext, mode, model, uptime, iteration
9
+ * - fleet-store: per-agent ctxPct/ctxTokens for per-agent footprint
10
+ * - context.debug WS: detailed breakdown (system prompt, tools, messages)
11
+ */
12
+ export declare function ContextDashboard(): import("react").JSX.Element;
13
+ //# sourceMappingURL=ContextDashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextDashboard.d.ts","sourceRoot":"","sources":["../../src/components/ContextDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA4cH,wBAAgB,gBAAgB,gCAoL/B"}
@@ -0,0 +1,6 @@
1
+ export interface CronJobsPanelProps {
2
+ open: boolean;
3
+ onClose: () => void;
4
+ }
5
+ export declare function CronJobsPanel({ open, onClose }: CronJobsPanelProps): React.ReactElement | null;
6
+ //# sourceMappingURL=CronJobsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronJobsPanel.d.ts","sourceRoot":"","sources":["../../src/components/CronJobsPanel.tsx"],"names":[],"mappings":"AAqBA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA2CD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAoH9F"}
@@ -0,0 +1,2 @@
1
+ export declare function CronTrigger(): React.ReactElement;
2
+ //# sourceMappingURL=CronTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CronTrigger.d.ts","sourceRoot":"","sources":["../../src/components/CronTrigger.tsx"],"names":[],"mappings":"AAWA,wBAAgB,WAAW,IAAI,KAAK,CAAC,YAAY,CAkChD"}
@@ -1 +1 @@
1
- {"version":3,"file":"FallbackEditor.d.ts","sourceRoot":"","sources":["../../src/components/FallbackEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKhE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,GAAG,KAAK,CAAC,YAAY,CA0FrB"}
1
+ {"version":3,"file":"FallbackEditor.d.ts","sourceRoot":"","sources":["../../src/components/FallbackEditor.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,GAAG,KAAK,CAAC,YAAY,CAgErB"}
@@ -1,8 +1,8 @@
1
1
  import type { FileReference } from '@/stores/file-reference-store';
2
2
  interface FileReferenceChipProps {
3
- ref: FileReference;
3
+ reference: FileReference;
4
4
  onRemove: () => void;
5
5
  }
6
- export declare function FileReferenceChip({ ref, onRemove }: FileReferenceChipProps): import("react").JSX.Element;
6
+ export declare function FileReferenceChip({ reference, onRemove }: FileReferenceChipProps): import("react").JSX.Element;
7
7
  export {};
8
8
  //# sourceMappingURL=FileReferenceChip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileReferenceChip.d.ts","sourceRoot":"","sources":["../../src/components/FileReferenceChip.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGnE,UAAU,sBAAsB;IAC9B,GAAG,EAAE,aAAa,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAaD,wBAAgB,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,sBAAsB,+BAiC1E"}
1
+ {"version":3,"file":"FileReferenceChip.d.ts","sourceRoot":"","sources":["../../src/components/FileReferenceChip.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGnE,UAAU,sBAAsB;IAC9B,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAaD,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,sBAAsB,+BAiChF"}
@@ -1,14 +1,14 @@
1
1
  /**
2
- * InspectorPanel — a DevTools-style bottom dock that slides up/down.
2
+ * InspectorPanel — the global right-side workbench inspector.
3
3
  *
4
- * Replaces the old fixed BottomDock (which floated over and blocked the chat
5
- * input) and the two modal FleetDrawer/AgentsDrawer overlays. The panel
6
- * participates in normal flex layout: when collapsed only a slim handle bar is
7
- * visible; when expanded it takes a fixed slice of the main column and the
8
- * chat transcript above shrinks to fit. No backdrop, no modal the chat
9
- * input stays fully usable while the panel is open.
10
- *
11
- * Tabs: Fleet (agent list + stats) | Agents (per-agent detail card).
4
+ * It is intentionally a non-modal Radix Sheet on desktop-sized workspaces:
5
+ * the drawer overlays the main surface instead of shrinking chat/editor/board
6
+ * layout, while the rest of the workbench stays visible and interactive.
7
+ * Fleet, agent detail and side-effect audit are the first migrated targets;
8
+ * task, node and message detail surfaces can join the same shell next.
12
9
  */
10
+ /** Compact shell action used by the top bar. Keeping its subscriptions here
11
+ * avoids making the App root re-render for every fleet/audit counter update. */
12
+ export declare function InspectorTrigger(): React.ReactElement;
13
13
  export declare function InspectorPanel(): import("react").JSX.Element;
14
14
  //# sourceMappingURL=InspectorPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InspectorPanel.d.ts","sourceRoot":"","sources":["../../src/components/InspectorPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA4CH,wBAAgB,cAAc,gCA8L7B"}
1
+ {"version":3,"file":"InspectorPanel.d.ts","sourceRoot":"","sources":["../../src/components/InspectorPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyDH;gFACgF;AAChF,wBAAgB,gBAAgB,IAAI,KAAK,CAAC,YAAY,CAkCrD;AAED,wBAAgB,cAAc,gCA4J7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanView.d.ts","sourceRoot":"","sources":["../../src/components/KanbanView.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;CAAE,+BA0W7E"}
1
+ {"version":3,"file":"KanbanView.d.ts","sourceRoot":"","sources":["../../src/components/KanbanView.tsx"],"names":[],"mappings":"AA6PA,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;CAAE,+BA4b7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"MailboxPanel.d.ts","sourceRoot":"","sources":["../../src/components/MailboxPanel.tsx"],"names":[],"mappings":"AAiDA,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAkNjE"}
1
+ {"version":3,"file":"MailboxPanel.d.ts","sourceRoot":"","sources":["../../src/components/MailboxPanel.tsx"],"names":[],"mappings":"AAkDA,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAyPjE"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * MemoryGraph — a compact React Flow graph showing relationship edges
3
+ * (supersedes, contradicts, supersededBy) AND file/symbol/command anchor
4
+ * connections for a selected SuperMemory entry.
5
+ *
6
+ * Layout:
7
+ * - Center: the selected memory
8
+ * - Above: memory that supersedes this one (if any)
9
+ * - Below-left: memories this one supersedes
10
+ * - Below-right: memories this one contradicts
11
+ * - Right: file/symbol/command anchors
12
+ */
13
+ import '@xyflow/react/dist/style.css';
14
+ interface MemoryEntry {
15
+ id: string;
16
+ kind: string;
17
+ status: string;
18
+ text: string;
19
+ tags: string[];
20
+ createdAt: string;
21
+ importance: number;
22
+ confidence: number;
23
+ supersedes?: string[] | undefined;
24
+ supersededBy?: string | undefined;
25
+ contradicts?: string[] | undefined;
26
+ anchors?: Array<{
27
+ type: string;
28
+ path?: string;
29
+ symbol?: string;
30
+ command?: string;
31
+ }>;
32
+ }
33
+ interface MemoryGraphProps {
34
+ centerMemory: MemoryEntry;
35
+ allMemories: MemoryEntry[];
36
+ onSelectMemory: (id: string) => void;
37
+ }
38
+ export declare function MemoryGraph({ centerMemory, allMemories, onSelectMemory }: MemoryGraphProps): import("react").JSX.Element | null;
39
+ export {};
40
+ //# sourceMappingURL=MemoryGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryGraph.d.ts","sourceRoot":"","sources":["../../../src/components/MemoryManager/MemoryGraph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH,OAAO,8BAA8B,CAAC;AAItC,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF;AAED,UAAU,gBAAgB;IACxB,YAAY,EAAE,WAAW,CAAC;IAC1B,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAsHD,wBAAgB,WAAW,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,gBAAgB,sCAoK1F"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * MemoryManager — a full memory management panel for the WebUI.
3
+ *
4
+ * Provides:
5
+ * - Stats overview (total, by status, by kind, graph edges)
6
+ * - Filter by tag and status
7
+ * - Searchable memory list with compact cards
8
+ * - Detail/edit view for a selected memory
9
+ * - Delete with cascade cleanup
10
+ *
11
+ * All data flows through the SuperMemory WebSocket commands wired in
12
+ * earlier phases (memory.super.list/get/update/delete).
13
+ */
14
+ export declare function MemoryManager(): import("react").JSX.Element;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MemoryManager/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAgGH,wBAAgB,aAAa,gCA+xB5B"}
@@ -0,0 +1,12 @@
1
+ import type { ChatMessageAttachment } from '@/stores/types.js';
2
+ /**
3
+ * Thumbnail strip for images attached to a user message. Click toggles a
4
+ * thumbnail between compact and full-size. Attachments rehydrated from
5
+ * localStorage arrive without `dataUrl` (stripped to protect the quota) and
6
+ * degrade to a name/size placeholder chip.
7
+ */
8
+ export declare function AttachmentGallery({ attachments, notRetainedLabel, }: {
9
+ attachments: readonly ChatMessageAttachment[];
10
+ notRetainedLabel: string;
11
+ }): import("react").JSX.Element;
12
+ //# sourceMappingURL=AttachmentGallery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentGallery.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/AttachmentGallery.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,gBAAgB,GACjB,EAAE;IACD,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC9C,gBAAgB,EAAE,MAAM,CAAC;CAC1B,+BAuCA"}
@@ -0,0 +1,27 @@
1
+ import { type ComponentProps } from 'react';
2
+ /**
3
+ * Lazy-loaded wrapper around ReactMarkdown + remark-gfm.
4
+ *
5
+ * react-markdown, remark-gfm, and rehype-highlight together pull in
6
+ * ~536KB (166KB gzipped). Loading them eagerly puts the entire markdown
7
+ * pipeline in the initial bundle — even before the user sees a single
8
+ * chat message. By deferring to a lazy chunk, the initial load is
9
+ * smaller and the markdown pipeline is fetched on first render of a
10
+ * message that actually contains markdown.
11
+ *
12
+ * The `components` and `rehypePlugins` props are passed through
13
+ * unchanged so callers (MessageBubble, StreamingMarkdown, etc.) keep
14
+ * their custom renderers and syntax-highlighting plugins.
15
+ */
16
+ declare const ReactMarkdownLazy: import("react").LazyExoticComponent<typeof import("react-markdown").default>;
17
+ /**
18
+ * Drop-in replacement for `<ReactMarkdown>` that splits the heavy
19
+ * markdown dependencies into a separate lazy chunk.
20
+ *
21
+ * A `<Suspense>` fallback of `null` is used because the parent
22
+ * component already handles the empty/loading state — when markdown is
23
+ * streaming, the tail renders as plain text (see StreamingMarkdown).
24
+ */
25
+ export declare function LazyMarkdown(props: ComponentProps<typeof ReactMarkdownLazy>): import("react").JSX.Element;
26
+ export {};
27
+ //# sourceMappingURL=LazyMarkdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyMarkdown.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/LazyMarkdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,QAAA,MAAM,iBAAiB,8EAAuC,CAAC;AAE/D;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,iBAAiB,CAAC,+BAM3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolInputView.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/ToolInputView.tsx"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,+BA+D1D"}
1
+ {"version":3,"file":"ToolInputView.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/ToolInputView.tsx"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,+BAgE1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAmC5C,UAAU,kBAAkB;IAC1B,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED,eAAO,MAAM,aAAa,8EAIvB,kBAAkB,iCAoZnB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAqC5C,UAAU,kBAAkB;IAC1B,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED,eAAO,MAAM,aAAa,8EAIvB,kBAAkB,iCAkbnB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { type ReactElement } from 'react';
2
+ import { type ModelCandidate } from '@/hooks/useProviderModels';
3
+ export type { ModelCandidate } from '@/hooks/useProviderModels';
4
+ export interface ModelPickDialogProps {
5
+ open: boolean;
6
+ /** Dialog title — say what the model is FOR ("Add council voter"). */
7
+ title: string;
8
+ /** Optional subtitle/hint under the title. */
9
+ hint?: string | undefined;
10
+ /** Called with the chosen candidate. Return `true` to KEEP the dialog open (multi-add flows). */
11
+ onPick: (candidate: ModelCandidate) => boolean | undefined | void;
12
+ onClose: () => void;
13
+ }
14
+ /**
15
+ * Reusable provider+model picker — the WebUI counterpart of the TUI's
16
+ * shared /model overlay in 'pick' mode. Searchable, keyboard-navigable
17
+ * (↑/↓ + Enter), grouped by provider, fed by the same saved-provider
18
+ * catalog every other picker uses. Callers just receive the selection;
19
+ * nothing here switches the session model.
20
+ */
21
+ export declare function ModelPickDialog({ open, title, hint, onPick, onClose, }: ModelPickDialogProps): ReactElement;
22
+ //# sourceMappingURL=ModelPickDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelPickDialog.d.ts","sourceRoot":"","sources":["../../src/components/ModelPickDialog.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAwC,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,2BAA2B,CAAC;AAInF,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,iGAAiG;IACjG,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,OAAO,GACR,EAAE,oBAAoB,GAAG,YAAY,CAuGrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModelPicker.d.ts","sourceRoot":"","sources":["../../src/components/ModelPicker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,EACP,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,KAAK,CAAC,YAAY,CAuHrB"}
1
+ {"version":3,"file":"ModelPicker.d.ts","sourceRoot":"","sources":["../../src/components/ModelPicker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,MAAM,EACN,OAAO,EACP,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,KAAK,CAAC,YAAY,CAsHrB"}
@@ -0,0 +1,47 @@
1
+ import { type ReactElement } from 'react';
2
+ /**
3
+ * What the dialog lets the user pick: provider/model, fallback profile, or both.
4
+ * - 'provider-model': searchable provider+model list (existing ModelPickDialog behaviour)
5
+ * - 'fallback': fallback profile name from the named profiles
6
+ * - 'both': tabs — first tab shows fallback profiles, second shows provider/model
7
+ */
8
+ export type ModelSelectMode = 'provider-model' | 'fallback' | 'both';
9
+ /** The value the user picked. */
10
+ export type ModelSelectResult = {
11
+ type: 'provider-model';
12
+ provider: string;
13
+ model: string;
14
+ label: string;
15
+ } | {
16
+ type: 'fallback-profile';
17
+ name: string;
18
+ } | {
19
+ type: 'clear';
20
+ };
21
+ export interface ModelSelectDialogProps {
22
+ open: boolean;
23
+ /** What selection modes to offer. */
24
+ mode: ModelSelectMode;
25
+ /** Dialog title. */
26
+ title: string;
27
+ /** Optional hint below the title. */
28
+ hint?: string | undefined;
29
+ /** Fallback profiles to choose from (required when mode includes fallback). */
30
+ fallbackProfiles?: Record<string, string[]> | undefined;
31
+ /** Called when the user picks. Return `true` to KEEP the dialog open (multi-add). */
32
+ onPick: (result: ModelSelectResult) => boolean | undefined | void;
33
+ onClose: () => void;
34
+ /** Label for the "clear" button (default: "Clear"). */
35
+ clearLabel?: string;
36
+ }
37
+ /**
38
+ * Unified model/provider/fallback-profile selection dialog.
39
+ * Replaces one-off patterns with a single searchable, keyboard-navigable modal
40
+ * that adapts to what the caller needs.
41
+ *
42
+ * - `mode="provider-model"` → searchable model list (same as ModelPickDialog)
43
+ * - `mode="fallback"` → fallback profile card list
44
+ * - `mode="both"` → tabs with profiles first, then models
45
+ */
46
+ export declare function ModelSelectDialog({ open, mode, title, hint, fallbackProfiles, onPick, onClose, clearLabel, }: ModelSelectDialogProps): ReactElement;
47
+ //# sourceMappingURL=ModelSelectDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelSelectDialog.d.ts","sourceRoot":"","sources":["../../src/components/ModelSelectDialog.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAwC,MAAM,OAAO,CAAC;AAMhF;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,UAAU,GAAG,MAAM,CAAC;AAErE,iCAAiC;AACjC,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,qCAAqC;IACrC,IAAI,EAAE,eAAe,CAAC;IACtB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;IACxD,qFAAqF;IACrF,MAAM,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,gBAAgB,EAChB,MAAM,EACN,OAAO,EACP,UAAoB,GACrB,EAAE,sBAAsB,GAAG,YAAY,CA2NvC"}
@@ -6,6 +6,22 @@ interface RefinePanelProps {
6
6
  onDecision: (decision: RefineDecision) => void;
7
7
  /** Auto-send countdown in ms. Default 0 (no auto-send). */
8
8
  autoSendDelayMs?: number;
9
+ /**
10
+ * Lifecycle of the refine round-trip. 'ready' (or undefined) shows the
11
+ * comparison; 'refining' shows an in-flight indicator; 'failed' shows the
12
+ * recovery options.
13
+ */
14
+ status?: 'refining' | 'ready' | 'failed' | undefined;
15
+ /** Failure reason shown in the recovery state. */
16
+ error?: string | undefined;
17
+ /** One-key "retry with another model" offer (provider/model), if any. */
18
+ fallbackRef?: string | undefined;
19
+ /** Retry on the same model with more time. */
20
+ onRetry?: (() => void) | undefined;
21
+ /** Retry on the configured fallback model ref. */
22
+ onRetryFallback?: ((ref: string) => void) | undefined;
23
+ /** Open the model picker to retry on a chosen provider/model. */
24
+ onPickModel?: (() => void) | undefined;
9
25
  }
10
26
  /**
11
27
  * Prompt-refinement preview ("did you mean this?").
@@ -19,6 +35,6 @@ interface RefinePanelProps {
19
35
  * - t → edit the refined version
20
36
  * - Esc → cancel and send original
21
37
  */
22
- export declare function RefinePanel({ original, refined, english, onDecision, autoSendDelayMs, }: RefinePanelProps): import("react").JSX.Element;
38
+ export declare function RefinePanel({ original, refined, english, onDecision, autoSendDelayMs, status, error, fallbackRef, onRetry, onRetryFallback, onPickModel, }: RefinePanelProps): import("react").JSX.Element;
23
39
  export {};
24
40
  //# sourceMappingURL=RefinePanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RefinePanel.d.ts","sourceRoot":"","sources":["../../src/components/RefinePanel.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzE,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAO,EACP,OAAO,EACP,UAAU,EACV,eAAmB,GACpB,EAAE,gBAAgB,+BA6QlB"}
1
+ {"version":3,"file":"RefinePanel.d.ts","sourceRoot":"","sources":["../../src/components/RefinePanel.tsx"],"names":[],"mappings":"AASA,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzE,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrD,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,kDAAkD;IAClD,eAAe,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,iEAAiE;IACjE,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACxC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAO,EACP,OAAO,EACP,UAAU,EACV,eAAmB,EACnB,MAAgB,EAChB,KAAK,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,WAAW,GACZ,EAAE,gBAAgB,+BAialB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SddFlowGraph.d.ts","sourceRoot":"","sources":["../../src/components/SddFlowGraph.tsx"],"names":[],"mappings":"AAsBA,OAAO,8BAA8B,CAAC;AAMtC,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,QAAQ,GACR,aAAa,GACb,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,UAAU,CAAC;IAC1B,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA6OD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAClD,GAAG,KAAK,CAAC,YAAY,CAMrB"}
1
+ {"version":3,"file":"SddFlowGraph.d.ts","sourceRoot":"","sources":["../../src/components/SddFlowGraph.tsx"],"names":[],"mappings":"AAsBA,OAAO,8BAA8B,CAAC;AAMtC,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,QAAQ,GACR,aAAa,GACb,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,UAAU,CAAC;IAC1B,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA4OD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAClD,GAAG,KAAK,CAAC,YAAY,CAMrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SddTaskDrawer.d.ts","sourceRoot":"","sources":["../../src/components/SddTaskDrawer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGjE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,eAAe,EACf,YAAY,EACZ,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,GACb,EAAE;IACD,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3F,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACjF,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACvF,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,GAAG,KAAK,CAAC,YAAY,CAkdrB"}
1
+ {"version":3,"file":"SddTaskDrawer.d.ts","sourceRoot":"","sources":["../../src/components/SddTaskDrawer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGjE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,eAAe,EACf,YAAY,EACZ,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,GACb,EAAE;IACD,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3F,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACjF,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACvF,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,GAAG,KAAK,CAAC,YAAY,CA+crB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchOverlay.d.ts","sourceRoot":"","sources":["../../src/components/SearchOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AActE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAYxD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,uCAgN5B"}
1
+ {"version":3,"file":"SearchOverlay.d.ts","sourceRoot":"","sources":["../../src/components/SearchOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AActE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAYxD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,uCAmN5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SessionsDashboard.d.ts","sourceRoot":"","sources":["../../src/components/SessionsDashboard.tsx"],"names":[],"mappings":"AAoDA,wBAAsB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAcpE;AAgGD,wBAAgB,iBAAiB,gCAyQhC"}
1
+ {"version":3,"file":"SessionsDashboard.d.ts","sourceRoot":"","sources":["../../src/components/SessionsDashboard.tsx"],"names":[],"mappings":"AA0DA,wBAAsB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAcpE;AAmID,wBAAgB,iBAAiB,gCA2ChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BrainSection.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/BrainSection.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAoC,MAAM,OAAO,CAAC;AA+B5E,wBAAgB,YAAY,IAAI,YAAY,CAgH3C"}
1
+ {"version":3,"file":"BrainSection.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/BrainSection.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAA6C,MAAM,OAAO,CAAC;AAkFrF,wBAAgB,YAAY,IAAI,YAAY,CAqf3C"}
@@ -10,6 +10,27 @@ export interface MCPServer {
10
10
  lastError?: string;
11
11
  pid?: number;
12
12
  lazy?: boolean;
13
+ health?: {
14
+ healthState: 'disabled' | 'dormant' | 'connecting' | 'healthy' | 'degraded' | 'failed';
15
+ consecutiveFailures: number;
16
+ failures: {
17
+ transport: number;
18
+ protocol: number;
19
+ tool: number;
20
+ };
21
+ reconnectCount: number;
22
+ wakeCount: number;
23
+ sleepCount: number;
24
+ restartCount: number;
25
+ inFlightCalls: number;
26
+ peakInFlightCalls: number;
27
+ callLatency: {
28
+ count: number;
29
+ lastMs?: number;
30
+ p50Ms?: number;
31
+ p95Ms?: number;
32
+ };
33
+ };
13
34
  }
14
35
  export interface MCPServerConfig {
15
36
  name: string;