@wrongstack/webui 0.293.0 → 0.295.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 (207) hide show
  1. package/dist/App.d.ts.map +1 -1
  2. package/dist/assets/AgentRosterView-y-MCHghy.js +7 -0
  3. package/dist/assets/AnalyticsDashboard-tGlXeqV5.js +1 -0
  4. package/dist/assets/AudienceMemoryPanel-D45M-Fr6.js +3 -0
  5. package/dist/assets/ChangesView-Otr6kwYr.js +1 -0
  6. package/dist/assets/ChronicleDashboard-BvsfI25e.js +1 -0
  7. package/dist/assets/CodeEditor-DtD0-wwy.js +1 -0
  8. package/dist/assets/CodeMap-CVmu16Ec.js +1 -0
  9. package/dist/assets/ConfirmModal-C7H16wDN.js +1 -0
  10. package/dist/assets/{CronJobsPanel-ByJqIjCv.js → CronJobsPanel-CT6XRgmQ.js} +1 -1
  11. package/dist/assets/{DebugDashboard-B0pikasm.js → DebugDashboard-DZy3VUpn.js} +1 -1
  12. package/dist/assets/DesignGalleryView-CQkuFsfj.js +1 -0
  13. package/dist/assets/{GoalView-DXO9txQs.js → GoalView-CTqdYc-z.js} +1 -1
  14. package/dist/assets/KanbanView-DryFcAzY.js +3 -0
  15. package/dist/assets/{LazyMarkdown-BHoUIDge.js → LazyMarkdown-DWlQpo_8.js} +3 -3
  16. package/dist/assets/MailboxDetailView-CsI_6HsE.js +1 -0
  17. package/dist/assets/MemoryManager-D_bjR09v.js +1 -0
  18. package/dist/assets/{ModelPicker-CEZN673P.js → ModelPicker-fGNsJUXK.js} +1 -1
  19. package/dist/assets/{OfficeMapPanel-B0j4e2O1.css → OfficeMapPanel-BFIF-EMt.css} +1 -1
  20. package/dist/assets/OfficeMapPanel-KRrwpmvi.js +4 -0
  21. package/dist/assets/ProcessMonitor-BtgVvQgx.js +1 -0
  22. package/dist/assets/{QueuePanel-DMXksqFS.js → QueuePanel-BGSxmdqf.js} +1 -1
  23. package/dist/assets/{RefreshDebugView-D08bCHA4.js → RefreshDebugView-B_wCBpFb.js} +1 -1
  24. package/dist/assets/SddHub-BryXNdFd.js +2 -0
  25. package/dist/assets/{SessionsDashboard-BY77vax1.js → SessionsDashboard-DLOhC9JZ.js} +1 -1
  26. package/dist/assets/SetupScreen-DsXgzxA1.js +1 -0
  27. package/dist/assets/SkillDetailView-ChyQLtrl.js +3 -0
  28. package/dist/assets/{SpecsView-CZg7e2ml.js → SpecsView-Dh9YG8Id.js} +1 -1
  29. package/dist/assets/TechStackView-RJGVF44_.js +1 -0
  30. package/dist/assets/{TerminalPanel-SnRvUh6N.js → TerminalPanel-3rZfmUfb.js} +1 -1
  31. package/dist/assets/Toaster-BzC_AdG5.js +1 -0
  32. package/dist/assets/activity-7VmgGy-T.js +5 -0
  33. package/dist/assets/activity-BzwApar4.js +5 -0
  34. package/dist/assets/activity-CCUWlVKh.js +5 -0
  35. package/dist/assets/activity-DAHFiOfU.js +5 -0
  36. package/dist/assets/activity-DkkpH2Tf.js +5 -0
  37. package/dist/assets/activity-DqsX-GMs.js +5 -0
  38. package/dist/assets/{activity-Cyx4UukM.js → activity-t0PmZ94i.js} +3 -3
  39. package/dist/assets/{button-Dy0bAtEY.js → button-GVbauxIJ.js} +1 -1
  40. package/dist/assets/{chat-store-CUODHW6c.js → chat-store-BEcTB7SD.js} +7 -7
  41. package/dist/assets/{codemap-activity-store-CgtLR4PV.js → codemap-activity-store-DrrI6G7M.js} +1 -1
  42. package/dist/assets/{dialog-CBgO-uqz.js → dialog-BjPQYovj.js} +1 -1
  43. package/dist/assets/empty-state-DJc37Wg1.js +1 -0
  44. package/dist/assets/{i18n-Dk35g-uV.js → i18n-c37VNlP9.js} +2 -2
  45. package/dist/assets/index-196U0qsu.js +125 -0
  46. package/dist/assets/index-n_-BWskP.css +1 -0
  47. package/dist/assets/{input-B6FY_vtB.js → input-BVi5hYQz.js} +1 -1
  48. package/dist/assets/{mailbox-store-BY2SVw-s.js → mailbox-store-DSvN5ZEo.js} +1 -1
  49. package/dist/assets/roster-ws-BD-ATeja.js +1 -0
  50. package/dist/assets/{session-store-Coiik-Ib.js → session-store-K_ozfq0o.js} +1 -1
  51. package/dist/assets/{settings-C65WW7Jn.js → settings-24NUQrlz.js} +1 -1
  52. package/dist/assets/{settings-Dp5NIt-h.js → settings-BcyGqyX3.js} +1 -1
  53. package/dist/assets/{settings-B9dVH8oJ.js → settings-BhEHLxqK.js} +1 -1
  54. package/dist/assets/{settings-BBR9xBqW.js → settings-C67tfoiy.js} +1 -1
  55. package/dist/assets/{settings-BaZcBGA7.js → settings-CvkIXOQE.js} +1 -1
  56. package/dist/assets/{settings-BXWyZpz5.js → settings-DGTQ4aKo.js} +1 -1
  57. package/dist/assets/{settings-BK1-R1dO.js → settings-i7lxRYZu.js} +1 -1
  58. package/dist/assets/shared-BQ9yQXDx.js +1 -0
  59. package/dist/assets/{stores-CUp_ut8r.js → stores-DVhvmaer.js} +2 -2
  60. package/dist/assets/ui-store-DxFtiYFb.js +1 -0
  61. package/dist/assets/useWebSocket-kb2VPjLc.js +28 -0
  62. package/dist/assets/{utils-DEzFewqr.js → utils-DvgvNCoT.js} +1 -1
  63. package/dist/assets/{vendor-DffL_bim.js → vendor-BmsAdDhb.js} +30 -30
  64. package/dist/assets/{view-navigation-BjlXpDXc.js → view-navigation-D8lN47bJ.js} +1 -1
  65. package/dist/assets/ws-client-BydCS6yi.js +1 -0
  66. package/dist/components/AgentOfficeView.d.ts.map +1 -1
  67. package/dist/components/AgentRosterView.d.ts +16 -0
  68. package/dist/components/AgentRosterView.d.ts.map +1 -0
  69. package/dist/components/AgentRuntimePolicyEditor.d.ts +8 -0
  70. package/dist/components/AgentRuntimePolicyEditor.d.ts.map +1 -0
  71. package/dist/components/AvailabilityCalendarEditor.d.ts +1 -1
  72. package/dist/components/AvailabilityCalendarEditor.d.ts.map +1 -1
  73. package/dist/components/ChangesView.d.ts.map +1 -1
  74. package/dist/components/ChatInput/slash-commands.d.ts.map +1 -1
  75. package/dist/components/ChatInput/slash-routing.d.ts +2 -0
  76. package/dist/components/ChatInput/slash-routing.d.ts.map +1 -1
  77. package/dist/components/ChatInput.d.ts.map +1 -1
  78. package/dist/components/ChatView/index.d.ts.map +1 -1
  79. package/dist/components/ChronicleDashboard.d.ts.map +1 -1
  80. package/dist/components/CodeEditor.d.ts.map +1 -1
  81. package/dist/components/CodeMap.d.ts.map +1 -1
  82. package/dist/components/CustomRosterPanel.d.ts +38 -0
  83. package/dist/components/CustomRosterPanel.d.ts.map +1 -0
  84. package/dist/components/DesignGalleryView.d.ts.map +1 -1
  85. package/dist/components/KanbanView.d.ts.map +1 -1
  86. package/dist/components/MailboxDetailView.d.ts.map +1 -1
  87. package/dist/components/MailboxPanel.d.ts.map +1 -1
  88. package/dist/components/MemoryManager/MemoryDetail.d.ts +4 -4
  89. package/dist/components/MemoryManager/MemoryDetail.d.ts.map +1 -1
  90. package/dist/components/MemoryManager/MemoryEditor.d.ts.map +1 -1
  91. package/dist/components/MemoryManager/MemoryFilters.d.ts +4 -4
  92. package/dist/components/MemoryManager/MemoryFilters.d.ts.map +1 -1
  93. package/dist/components/MemoryManager/MemoryGraph.d.ts +4 -4
  94. package/dist/components/MemoryManager/MemoryGraph.d.ts.map +1 -1
  95. package/dist/components/MemoryManager/MemoryList.d.ts +3 -3
  96. package/dist/components/MemoryManager/MemoryList.d.ts.map +1 -1
  97. package/dist/components/MemoryManager/index.d.ts.map +1 -1
  98. package/dist/components/MemoryManager/shared.d.ts +15 -15
  99. package/dist/components/MemoryManager/shared.d.ts.map +1 -1
  100. package/dist/components/MessageBubble/index.d.ts.map +1 -1
  101. package/dist/components/OfficeMapCanvas/resolve.d.ts +17 -1
  102. package/dist/components/OfficeMapCanvas/resolve.d.ts.map +1 -1
  103. package/dist/components/OfficeMapCanvas/use-recently-finished.d.ts +21 -0
  104. package/dist/components/OfficeMapCanvas/use-recently-finished.d.ts.map +1 -0
  105. package/dist/components/OfficeMapCanvas.d.ts.map +1 -1
  106. package/dist/components/ProcessMonitor.d.ts.map +1 -1
  107. package/dist/components/SettingsPanel/BrainSection.d.ts.map +1 -1
  108. package/dist/components/SettingsPanel/MCPSection.d.ts +4 -0
  109. package/dist/components/SettingsPanel/MCPSection.d.ts.map +1 -1
  110. package/dist/components/SettingsPanel/PluginToggleList.d.ts.map +1 -1
  111. package/dist/components/SettingsPanel/PreferenceControls.d.ts +3 -1
  112. package/dist/components/SettingsPanel/PreferenceControls.d.ts.map +1 -1
  113. package/dist/components/SettingsPanel/PreferenceToggle.d.ts +3 -1
  114. package/dist/components/SettingsPanel/PreferenceToggle.d.ts.map +1 -1
  115. package/dist/components/SettingsPanel/ProviderModelsPanel.d.ts.map +1 -1
  116. package/dist/components/SettingsPanel/ProviderSection.d.ts.map +1 -1
  117. package/dist/components/SettingsPanel/local-presets.d.ts +2 -29
  118. package/dist/components/SettingsPanel/local-presets.d.ts.map +1 -1
  119. package/dist/components/SetupScreen.d.ts.map +1 -1
  120. package/dist/components/ShortcutsOverlay.d.ts.map +1 -1
  121. package/dist/components/SidePanel/SkillsList.d.ts.map +1 -1
  122. package/dist/components/SkillDetailView.d.ts.map +1 -1
  123. package/dist/components/TechStackView/index.d.ts.map +1 -1
  124. package/dist/components/VerificationReportPanel.d.ts +15 -0
  125. package/dist/components/VerificationReportPanel.d.ts.map +1 -0
  126. package/dist/components/activity-bar/index.d.ts.map +1 -1
  127. package/dist/components/ui/api-key-display.d.ts +14 -0
  128. package/dist/components/ui/api-key-display.d.ts.map +1 -0
  129. package/dist/components/ui/empty-state.d.ts +29 -0
  130. package/dist/components/ui/empty-state.d.ts.map +1 -0
  131. package/dist/hooks/useGlobalKeyboardShortcuts.d.ts +1 -1
  132. package/dist/hooks/useGlobalKeyboardShortcuts.d.ts.map +1 -1
  133. package/dist/hooks/useWebSocket.d.ts +13 -13
  134. package/dist/hooks/useWebSocket.d.ts.map +1 -1
  135. package/dist/hooks/ws-handlers/chat-handlers.d.ts.map +1 -1
  136. package/dist/hooks/ws-handlers/fleet-handlers.d.ts.map +1 -1
  137. package/dist/hooks/ws-handlers/session-handlers.d.ts.map +1 -1
  138. package/dist/hooks/ws-handlers.d.ts +8 -7
  139. package/dist/hooks/ws-handlers.d.ts.map +1 -1
  140. package/dist/index.css +251 -0
  141. package/dist/index.css.map +2 -2
  142. package/dist/index.html +23 -23
  143. package/dist/index.js +11542 -7712
  144. package/dist/index.js.map +4 -4
  145. package/dist/lib/agent-office.d.ts +22 -0
  146. package/dist/lib/agent-office.d.ts.map +1 -1
  147. package/dist/lib/model-calendar.d.ts +1 -1
  148. package/dist/lib/model-calendar.d.ts.map +1 -1
  149. package/dist/lib/model-matrix-routes.d.ts +2 -191
  150. package/dist/lib/model-matrix-routes.d.ts.map +1 -1
  151. package/dist/lib/plugin-enablement.d.ts +1 -1
  152. package/dist/lib/plugin-enablement.d.ts.map +1 -1
  153. package/dist/lib/roster-ws.d.ts +48 -0
  154. package/dist/lib/roster-ws.d.ts.map +1 -0
  155. package/dist/lib/view-navigation.d.ts +1 -1
  156. package/dist/lib/view-navigation.d.ts.map +1 -1
  157. package/dist/lib/ws-client-utils.d.ts +1 -2
  158. package/dist/lib/ws-client-utils.d.ts.map +1 -1
  159. package/dist/lib/ws-client.d.ts +30 -22
  160. package/dist/lib/ws-client.d.ts.map +1 -1
  161. package/dist/protocol-compatibility.d.ts +12 -0
  162. package/dist/protocol-compatibility.d.ts.map +1 -0
  163. package/dist/providers.json +105 -85
  164. package/dist/stores/local-prefs.d.ts +2 -2
  165. package/dist/stores/local-prefs.d.ts.map +1 -1
  166. package/dist/stores/mailbox-store.d.ts +2 -0
  167. package/dist/stores/mailbox-store.d.ts.map +1 -1
  168. package/dist/stores/session-store.d.ts +1 -1
  169. package/dist/stores/session-store.d.ts.map +1 -1
  170. package/dist/stores/types.d.ts +1 -1
  171. package/dist/stores/types.d.ts.map +1 -1
  172. package/dist/stores/ui-store.d.ts +3 -3
  173. package/dist/stores/ui-store.d.ts.map +1 -1
  174. package/dist/stores/viz-store.d.ts.map +1 -1
  175. package/dist/types.d.ts +363 -68
  176. package/dist/types.d.ts.map +1 -1
  177. package/package.json +7 -6
  178. package/dist/assets/AnalyticsDashboard--x-f8QI-.js +0 -1
  179. package/dist/assets/AudienceMemoryPanel-j9I0RvhP.js +0 -3
  180. package/dist/assets/ChangesView-Bb5LXWiI.js +0 -1
  181. package/dist/assets/ChronicleDashboard-D34oKMQ_.js +0 -1
  182. package/dist/assets/CodeEditor-BkIIR8EU.js +0 -1
  183. package/dist/assets/CodeMap-Ej4UNFUm.js +0 -1
  184. package/dist/assets/ConfirmModal-4l0Tyazp.js +0 -1
  185. package/dist/assets/DesignGalleryView-CgLsdzTx.js +0 -1
  186. package/dist/assets/KanbanView--bFrj9Xa.js +0 -2
  187. package/dist/assets/MailboxDetailView-C-Vf3h1d.js +0 -1
  188. package/dist/assets/MemoryManager-DoHNBnKd.js +0 -1
  189. package/dist/assets/OfficeMapPanel-BMf4PTWo.js +0 -4
  190. package/dist/assets/ProcessMonitor-BtfARuHq.js +0 -1
  191. package/dist/assets/SddHub-QgMFn_rC.js +0 -2
  192. package/dist/assets/SetupScreen-CU7Mq-5T.js +0 -1
  193. package/dist/assets/SkillDetailView-6ZIVx1BG.js +0 -3
  194. package/dist/assets/TechStackView-9hfnNKx-.js +0 -1
  195. package/dist/assets/Toaster-BNdKxZ1U.js +0 -1
  196. package/dist/assets/activity-AfUMXtSI.js +0 -5
  197. package/dist/assets/activity-Bd_pRifE.js +0 -5
  198. package/dist/assets/activity-Ct_QOdtL.js +0 -5
  199. package/dist/assets/activity-Dyikq8Zm.js +0 -5
  200. package/dist/assets/activity-Ukyu3lON.js +0 -5
  201. package/dist/assets/activity-gaWDc806.js +0 -5
  202. package/dist/assets/index-DGX8tPCe.css +0 -1
  203. package/dist/assets/index-OmSX-BAb.js +0 -124
  204. package/dist/assets/shared-CpXz-tzA.js +0 -1
  205. package/dist/assets/ui-store-CwOvhFZG.js +0 -1
  206. package/dist/assets/useWebSocket-BJorYmOi.js +0 -27
  207. package/dist/assets/ws-client-Fnmzo7vN.js +0 -1
@@ -1 +0,0 @@
1
- import{tt as e}from"./vendor-DffL_bim.js";import{t}from"./utils-DEzFewqr.js";var n=e(),r=[`fact`,`decision`,`convention`,`preference`,`warning`,`anti_pattern`,`workflow`,`bug_root_cause`,`file_note`,`symbol_note`,`command_note`,`summary`],i=[`active`,`stale`,`superseded`,`contradicted`,`archived`,`deleted`],a=[`active`,`stale`,`superseded`,`contradicted`,`archived`],o=[`project`,`user`,`session`,`file`,`symbol`],s=[`file`,`directory`,`symbol`,`package`,`command`,`test`,`git`],c={fact:`Fact`,decision:`Decision`,convention:`Convention`,preference:`Preference`,warning:`Warning`,anti_pattern:`Anti-pattern`,workflow:`Workflow`,bug_root_cause:`Root cause`,file_note:`File note`,symbol_note:`Symbol note`,command_note:`Command note`,summary:`Summary`};function l(e){let t=[];return e.roles?.length&&t.push(`roles: ${e.roles.join(`, `)}`),e.taskTypes?.length&&t.push(`tasks: ${e.taskTypes.join(`, `)}`),e.modes?.length&&t.push(`modes: ${e.modes.join(`, `)}`),t.join(` · `)}function u(){return{text:``,kind:`fact`,status:`active`,scope:`project`,tags:``,importance:.5,confidence:.8,freshness:1,anchors:[],audienceRoles:``,audienceTaskTypes:``,audienceModes:``,supersedes:``,contradicts:``}}function d(e){return{text:e.text,kind:e.kind,status:e.status,scope:e.scope,tags:e.tags.join(`, `),importance:e.importance,confidence:e.confidence,freshness:e.freshness,anchors:e.anchors.map(e=>({...e})),audienceRoles:(e.audience?.roles??[]).join(`, `),audienceTaskTypes:(e.audience?.taskTypes??[]).join(`, `),audienceModes:(e.audience?.modes??[]).join(`, `),supersedes:(e.supersedes??[]).join(`, `),contradicts:(e.contradicts??[]).join(`, `)}}function f(e){return[...new Set(e.split(`,`).map(e=>e.trim()).filter(Boolean))]}function p(e,t=170){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t-1)}…`:n}function m(e){if(!e)return`Never`;let t=Date.parse(e);return Number.isFinite(t)?new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t):`Unknown`}function h(e){if(!e)return`never`;let t=Date.parse(e);if(!Number.isFinite(t))return`unknown`;let n=Math.max(0,Math.round((Date.now()-t)/1e3));return n<60?`just now`:n<3600?`${Math.round(n/60)}m ago`:n<86400?`${Math.round(n/3600)}h ago`:n<604800?`${Math.round(n/86400)}d ago`:m(e)}function g(e){return e>=.85?`high`:e>=.55?`medium`:`low`}function _(e){switch(e){case`active`:return`border-success/35 bg-success/10 text-success`;case`stale`:return`border-warning/40 bg-warning/10 text-warning`;case`contradicted`:return`border-destructive/40 bg-destructive/10 text-destructive`;case`superseded`:return`border-warning/30 bg-warning/5 text-warning`;case`archived`:return`border-info/35 bg-info/10 text-info`;case`deleted`:return`border-border bg-muted text-muted-foreground`}}function v(e){return e===`warning`||e===`anti_pattern`||e===`bug_root_cause`?`text-destructive`:e===`decision`||e===`workflow`?`text-warning`:e===`convention`||e===`preference`?`text-success`:e===`file_note`||e===`symbol_note`||e===`command_note`?`text-info`:`text-foreground`}function y(e){return e.path??e.command??``}function b(e,t){return e.type===`command`?{type:e.type,command:t}:{type:e.type,path:t,...e.type===`symbol`&&e.symbol?{symbol:e.symbol}:{}}}function x(e){let t=[];for(let n of e){let e=y(n).trim(),r=n.symbol?.trim();if(!(!e&&!r)){if(n.type===`command`){t.push({type:`command`,command:e});continue}t.push({type:n.type,...e?{path:e}:{},...r?{symbol:r}:{}})}}return t}function S({status:e}){return(0,n.jsxs)(`span`,{className:t(`inline-flex items-center gap-1 border px-2 py-0.5 text-[10px] font-bold uppercase`,_(e)),children:[(0,n.jsx)(`span`,{className:`size-1.5 bg-current`,"aria-hidden":`true`}),e]})}function C({label:e,value:r,hint:i,tone:a=`default`}){return(0,n.jsxs)(`div`,{className:`border border-border/70 bg-card/55 px-3 py-2.5 shadow-[inset_0_1px_0_hsl(var(--foreground)/0.035)]`,children:[(0,n.jsx)(`p`,{className:`text-[9px] font-bold uppercase tracking-[0.16em] text-muted-foreground`,children:e}),(0,n.jsxs)(`div`,{className:`mt-1 flex items-end justify-between gap-2`,children:[(0,n.jsx)(`p`,{className:t(`font-mono text-xl font-bold tabular-nums`,a===`success`?`text-success`:a===`warning`?`text-warning`:a===`info`?`text-info`:`text-foreground`),children:r}),(0,n.jsx)(`p`,{className:`truncate text-[9px] text-muted-foreground`,children:i})]})]})}function w({id:e,label:t,value:r,onChange:i}){return(0,n.jsxs)(`div`,{className:`border border-border/65 bg-background/35 p-3`,children:[(0,n.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,n.jsx)(`label`,{htmlFor:e,className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:t}),(0,n.jsxs)(`span`,{className:`font-mono text-xs font-bold tabular-nums text-info`,children:[Math.round(r*100),`% · `,g(r)]})]}),(0,n.jsx)(`input`,{id:e,type:`range`,min:`0`,max:`1`,step:`0.05`,value:r,onChange:e=>i(Number.parseFloat(e.target.value)),className:`mt-3 h-1.5 w-full cursor-pointer accent-[hsl(var(--info))]`})]})}export{x as _,o as a,b,w as c,d,u as f,p as g,v as h,r as i,S as l,m,a as n,i as o,l as p,c as r,C as s,s as t,y as u,h as v,f as y};
@@ -1 +0,0 @@
1
- import{$i as e,ea as t}from"./vendor-DffL_bim.js";var n=[`en`,`tr`,`de`,`fr`,`it`,`es`,`pt-BR`],r=[{code:`en`,name:`English`},{code:`tr`,name:`Türkçe`},{code:`de`,name:`Deutsch`},{code:`fr`,name:`Français`},{code:`it`,name:`Italiano`},{code:`es`,name:`Español`},{code:`pt-BR`,name:`Português (Brasil)`}],i=new Set(n);function a(){return typeof navigator>`u`||!navigator.language?`en`:s(navigator.language)}function o(e){return!e||typeof e!=`string`?a():s(e)}function s(e){let t=e.trim().toLowerCase();if(!t)return`en`;if(i.has(t))return t;let n=t.split(`-`)[0];return n&&i.has(n)?n:n===`pt`?`pt-BR`:`en`}var c={autonomy:`auto`,autonomyDelayMs:45e3,autoProceedMaxIterations:50,yolo:!0,maxIterations:500,chime:!1,confirmExit:!0,fleetChatVerbosity:`off`,nextPrediction:!1,fallbackModels:[],fallbackProfiles:{},favoriteModels:[],favoriteModelsOnly:!1,modelMatrix:{},fallbackAuto:!0,modelAvailabilitySchedule:[],featureMcp:!0,featurePlugins:!0,featureMemory:!0,featureSkills:!0,featureModelsRegistry:!0,indexOnStart:!0,contextAutoCompact:!0,contextStrategy:`hybrid`,contextMode:`balanced`,tokenSavingTier:`off`,maxConcurrent:10,titleAnimation:!0,logLevel:`info`,auditLevel:`standard`,enhanceEnabled:!0,enhanceDelayMs:6e4,enhanceLanguage:`original`,refinerProvider:``,refinerModel:``,refinerFallbackProfile:``,thinkingWord:`thinking`,statuslineMode:`detailed`,animationStyle:`rainbow`,showThinkingLogs:!0,groupToolCalls:!0,reasoningMode:`auto`,reasoningEffort:`high`,reasoningPreserve:!1,cacheTtl:`default`,breakerEnabled:!1,breakerAutoKillResetMs:6e4,fsAccess:`unrestricted`,debugStream:!1,hqEnabled:!1,hqUrl:``,hqToken:``,hqRawContent:!1,tgConfigured:!1,tgSessionEnd:!1,tgDelegate:!0,tgLongToolMs:3e4,uiLocale:a(),chimeraAutoFix:`off`,chimeraEnabled:!0,chimeraProvider:``,chimeraModel:``,chimeraMaxFiles:15,autoReviewEnabled:!1,autoReviewProvider:``,autoReviewModel:``,autoReviewFallbackProfile:``,autoReviewFallbackModels:[],autoReviewDebounceMs:5e3,autoReviewMaxFilesPerBatch:15,autoReviewMaxConcurrentReviews:2,autoReviewCascadeOn:`off`,pluginsEnabled:{}},l=t()(e(e=>({...c,set:t=>e(t),reset:()=>e(c)}),{name:`wrongstack-local-prefs`,version:10,migrate:e=>{let t=e??{};return typeof t.fleetChatVerbosity!=`string`&&(t.streamFleet===!0?t.fleetChatVerbosity=`full`:(t.streamFleet,t.fleetChatVerbosity=`off`),delete t.streamFleet),t.fleetChatVerbosity!==`off`&&t.fleetChatVerbosity!==`full`&&(t.fleetChatVerbosity=`off`),[`hybrid`,`intelligent`,`selective`].includes(t.contextStrategy)||(t.contextStrategy=`hybrid`),t.auditLevel===`verbose`&&(t.auditLevel=`full`),[`minimal`,`standard`,`full`].includes(t.auditLevel)||(t.auditLevel=`standard`),typeof t.autoProceedMaxIterations!=`number`&&(t.autoProceedMaxIterations=50),(!t.fallbackProfiles||typeof t.fallbackProfiles!=`object`||Array.isArray(t.fallbackProfiles))&&(t.fallbackProfiles={}),Array.isArray(t.favoriteModels)||(t.favoriteModels=[]),typeof t.favoriteModelsOnly!=`boolean`&&(t.favoriteModelsOnly=!1),Array.isArray(t.modelAvailabilitySchedule)||(t.modelAvailabilitySchedule=[]),(!t.modelMatrix||typeof t.modelMatrix!=`object`||Array.isArray(t.modelMatrix))&&(t.modelMatrix={}),(typeof t.uiLocale!=`string`||!t.uiLocale)&&(t.uiLocale=a()),typeof t.breakerEnabled!=`boolean`&&(t.breakerEnabled=!1),typeof t.breakerAutoKillResetMs!=`number`&&(t.breakerAutoKillResetMs=6e4),t.fsAccess!==`unrestricted`&&t.fsAccess!==`project`&&(t.fsAccess=`unrestricted`),typeof t.debugStream!=`boolean`&&(t.debugStream=!1),typeof t.chimeraEnabled!=`boolean`&&(t.chimeraEnabled=!0),typeof t.chimeraProvider!=`string`&&(t.chimeraProvider=``),typeof t.chimeraModel!=`string`&&(t.chimeraModel=``),t.chimeraAutoFix!==`off`&&t.chimeraAutoFix!==`ask`&&t.chimeraAutoFix!==`auto`&&(t.chimeraAutoFix=`off`),(typeof t.chimeraMaxFiles!=`number`||!Number.isFinite(t.chimeraMaxFiles)||t.chimeraMaxFiles<1)&&(t.chimeraMaxFiles=15),typeof t.autoReviewEnabled!=`boolean`&&(t.autoReviewEnabled=!1),typeof t.autoReviewProvider!=`string`&&(t.autoReviewProvider=``),typeof t.autoReviewModel!=`string`&&(t.autoReviewModel=``),typeof t.autoReviewFallbackProfile!=`string`&&(t.autoReviewFallbackProfile=``),Array.isArray(t.autoReviewFallbackModels)||(t.autoReviewFallbackModels=[]),(typeof t.autoReviewDebounceMs!=`number`||!Number.isFinite(t.autoReviewDebounceMs)||t.autoReviewDebounceMs<0)&&(t.autoReviewDebounceMs=5e3),(typeof t.autoReviewMaxFilesPerBatch!=`number`||!Number.isFinite(t.autoReviewMaxFilesPerBatch)||t.autoReviewMaxFilesPerBatch<1)&&(t.autoReviewMaxFilesPerBatch=15),(typeof t.autoReviewMaxConcurrentReviews!=`number`||!Number.isFinite(t.autoReviewMaxConcurrentReviews)||t.autoReviewMaxConcurrentReviews<1)&&(t.autoReviewMaxConcurrentReviews=2),t.autoReviewCascadeOn!==`off`&&t.autoReviewCascadeOn!==`critical`&&t.autoReviewCascadeOn!==`high`&&(t.autoReviewCascadeOn=`off`),t}})),u=[`chat`,`agents`,`history`,`files`,`changes`,`mailbox`,`skills`,`design`,`worktrees`,`officemap`];function d(e){return u.includes(e)?e:e===`context`?`chat`:e===`sessions`?`history`:e===`projects`?`chat`:e===`officemap`?`officemap`:`chat`}var f=[`chat`,`settings`,`memory`,`context`,`goal`,`kanban`,`sddhub`,`files`,`changes`,`sessions`,`setup`,`skill`,`officemap`,`mailbox`,`debug`,`design-gallery`,`refresh-debug`,`analytics`,`codemap`,`techstack`,`chronicle`];function p(e){return f.includes(e)?e:`chat`}var m=[`goal`,`goal-state`,`fleet`,`work`,`worktrees`,`collab`];function h(e){return e==null||!m.includes(e)?null:e}function g(){if(typeof window>`u`)return!1;if(window.wrongstackDesktopHost)return!0;try{return new URLSearchParams(window.location.search).get(`shell`)===`desktop`}catch{return!1}}function _(e={}){return{currentView:`chat`,activeActivity:`chat`,sidebarOpen:e.sidebarOpen??!1,dockSection:null,dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorFocusedAgentId:null,terminalOpen:!1,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,selectedMailMessage:null,refinePanel:null}}var v=t()(e(e=>({sidebarOpen:!0,activeActivity:`chat`,settingsOpen:!1,currentView:`chat`,showConfirmDialog:!1,confirmInfo:null,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,promptHistory:[],sidebarWidth:304,pinnedIds:[],compactMode:!1,modelSwitcherOpen:!1,favoriteSessionIds:[],sessionNicknames:{},fileExplorerWidth:220,refineEnabled:!0,refinePanel:null,promptLibraryOpen:!1,promptInsertRequest:null,dockSection:null,workDashboardTab:`todos`,hiddenChips:[],dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorFocusedAgentId:null,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,terminalOpen:!1,terminalCreateNonce:0,settingsActiveTab:`provider`,scrollPositions:{},sideContextBreakdownOpen:!1,selectedMailMessage:null,skillsState:{selectedSkill:null,navHistory:[],historyIndex:-1,detailOpen:!1,knownRefs:{},updateAvailableCount:0},selectActivity:t=>e({activeActivity:t}),toggleSidebar:()=>e(e=>({sidebarOpen:!e.sidebarOpen})),setSidebarOpen:t=>e({sidebarOpen:t}),setSettingsOpen:t=>e({settingsOpen:t}),setCurrentView:t=>e({currentView:p(t)}),showConfirm:t=>e({showConfirmDialog:!0,confirmInfo:t}),hideConfirm:()=>e({showConfirmDialog:!1,confirmInfo:null}),setPaletteOpen:t=>e({paletteOpen:t}),setShortcutsOpen:t=>e({shortcutsOpen:t}),setSearchOpen:t=>e({searchOpen:t,searchQuery:``,searchActiveMessageId:null}),setSearchQuery:t=>e({searchQuery:t}),setSearchActiveMessageId:t=>e({searchActiveMessageId:t}),requestScrollToMessage:t=>e(e=>({scrollTarget:{id:t,nonce:(e.scrollTarget?.nonce??0)+1}})),pushPrompt:t=>e(e=>{let n=t.trim();return n?{promptHistory:[n,...e.promptHistory.filter(e=>e!==n)].slice(0,50)}:e}),setSidebarWidth:t=>e({sidebarWidth:Math.max(240,Math.min(560,Math.round(t)))}),togglePin:t=>e(e=>({pinnedIds:e.pinnedIds.includes(t)?e.pinnedIds.filter(e=>e!==t):[...e.pinnedIds,t]})),unpinAll:()=>e({pinnedIds:[]}),toggleCompactMode:()=>e(e=>({compactMode:!e.compactMode})),setModelSwitcherOpen:t=>e({modelSwitcherOpen:t}),toggleFavoriteSession:t=>e(e=>({favoriteSessionIds:e.favoriteSessionIds.includes(t)?e.favoriteSessionIds.filter(e=>e!==t):[...e.favoriteSessionIds,t]})),setSessionNickname:(t,n)=>e(e=>{let r=n.trim(),i={...e.sessionNicknames};return r?i[t]=r:delete i[t],{sessionNicknames:i}}),setFileExplorerWidth:t=>e({fileExplorerWidth:Math.max(160,Math.min(400,Math.round(t)))}),toggleRefineEnabled:()=>e(e=>({refineEnabled:!e.refineEnabled})),setRefinePanel:t=>e({refinePanel:t}),setPromptLibraryOpen:t=>e({promptLibraryOpen:t}),requestPromptInsert:t=>e({promptInsertRequest:t,promptLibraryOpen:!1}),clearPromptInsert:()=>e({promptInsertRequest:null}),setDockSection:t=>e({dockSection:t,...t?{inspectorOpen:!1}:{}}),setWorkDashboardTab:t=>e({workDashboardTab:t}),toggleDockSection:t=>e(e=>{let n=e.dockSection===t?null:t;return{dockSection:n,...n?{inspectorOpen:!1}:{}}}),toggleChipHidden:t=>e(e=>{let n=e.hiddenChips.includes(t);return{hiddenChips:n?e.hiddenChips.filter(e=>e!==t):[...e.hiddenChips,t],dockSection:!n&&e.dockSection===t?null:e.dockSection}}),showDockChip:t=>e(e=>({hiddenChips:e.hiddenChips.filter(e=>e!==t)})),setDockCustomizeOpen:t=>e({dockCustomizeOpen:t}),setFleetMonitorOpen:t=>e(e=>({fleetMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,...t?{dockSection:null}:{}})),setAgentsMonitorOpen:t=>e(e=>({agentsMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,...t?{dockSection:null}:{}})),setInspectorOpen:t=>e({inspectorOpen:t,...t?{dockSection:null}:{}}),setInspectorTab:t=>e({inspectorTab:t}),setInspectorFocusedAgentId:t=>e({inspectorFocusedAgentId:t}),toggleInspector:()=>e(e=>({inspectorOpen:!e.inspectorOpen,...e.inspectorOpen?{}:{dockSection:null}})),setProcessMonitorOpen:t=>e({processMonitorOpen:t}),setQueuePanelOpen:t=>e({queuePanelOpen:t}),setCronJobsOpen:t=>e({cronJobsOpen:t}),setTerminalOpen:t=>e({terminalOpen:t}),toggleTerminal:()=>e(e=>({terminalOpen:!e.terminalOpen})),requestTerminalCreate:()=>e(e=>({terminalCreateNonce:e.terminalCreateNonce+1})),setSettingsActiveTab:t=>e({settingsActiveTab:t}),setScrollPosition:(t,n)=>e(e=>({scrollPositions:{...e.scrollPositions,[t]:n}})),setSideContextBreakdownOpen:t=>e({sideContextBreakdownOpen:t}),setSkillsState:t=>e({skillsState:t}),setSelectedMailMessage:t=>e({selectedMailMessage:t})}),{name:`wrongstack-ui`,version:5,migrate:(e,t)=>{let n=e??{};return n.activeActivity=d(n.activeActivity),typeof n.sidebarWidth==`number`&&(n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth))),t<2&&(delete n.fleetDrawerOpen,delete n.agentsDrawerOpen),`currentView`in n&&(n.currentView=p(n.currentView)),`dockSection`in n&&(n.dockSection=h(n.dockSection)),n},merge:(e,t)=>{let n={...t,...e??{}};return n.activeActivity=d(n.activeActivity),n.currentView=p(n.currentView),n.dockSection=h(n.dockSection),n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth)),g()?{...n,..._({sidebarOpen:!1})}:n},partialize:e=>({sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,sidebarWidth:e.sidebarWidth,promptHistory:e.promptHistory,pinnedIds:e.pinnedIds,compactMode:e.compactMode,favoriteSessionIds:e.favoriteSessionIds,sessionNicknames:e.sessionNicknames,fileExplorerWidth:e.fileExplorerWidth,refineEnabled:e.refineEnabled,hiddenChips:e.hiddenChips,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,skillsState:e.skillsState,currentView:e.currentView,dockSection:e.dockSection,settingsActiveTab:e.settingsActiveTab,scrollPositions:e.scrollPositions})}));function y(e={}){v.setState(_(e))}export{n as a,r as i,v as n,o,l as r,y as t};
@@ -1,27 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,i as n,t as r}from"./chat-store-CUODHW6c.js";import{ea as i,oa as a}from"./vendor-DffL_bim.js";import{n as o,r as s,t as c}from"./ui-store-CwOvhFZG.js";import{a as l,c as u,i as d,l as f,o as p,s as m,t as h}from"./ws-client-Fnmzo7vN.js";import{t as g}from"./session-store-Coiik-Ib.js";import{i as _,n as v}from"./codemap-activity-store-CgtLR4PV.js";import{A as y,E as b,a as x,b as S,d as ee,f as te,h as C,i as ne,j as w,k as T,l as E,m as re,n as D,o as O,p as k,r as ie,s as A,t as j,u as ae}from"./stores-CUp_ut8r.js";import{r as M}from"./mailbox-store-BY2SVw-s.js";import{n as oe,s as se}from"./view-navigation-BjlXpDXc.js";import{n as N}from"./Toaster-BNdKxZ1U.js";var P=e(a(),1);function ce(e,t){if(t)return!0;try{return new URLSearchParams(e).get(`shell`)===`desktop`}catch{return!1}}function F(){return typeof window>`u`?!1:ce(window.location.search,!!window.wrongstackDesktopHost)}function le(e){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
2
- <rect width="64" height="64" fill="#121210" />
3
- <path fill="#FD9F02" d="M5 27h10v10H5zM27 27h10v10H27zM38 27h10v10H38zM49 27h10v10H49z" />
4
- <path fill="#FE2E5F" d="M16 32h10v10H16z" />
5
- ${e===`ready`?`<circle cx="50" cy="14" r="14" fill="#22c55e" stroke="#fff" stroke-width="3" />`:e===`error`?`<circle cx="50" cy="14" r="14" fill="#ef4444" stroke="#fff" stroke-width="3" />`:e===`running`?`<circle cx="50" cy="14" r="14" fill="#f59e0b" stroke="#fff" stroke-width="3" />`:e===`attention`?`<circle cx="50" cy="14" r="14" fill="#eab308" stroke="#fff" stroke-width="3"><animate attributeName="opacity" values="1;0.3;1" dur="1s" repeatCount="indefinite"/></circle>`:``}
6
- </svg>`}function ue(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}function de(){if(typeof document>`u`)return null;let e=document.querySelector(`link[rel="icon"]`);return e||(e=document.createElement(`link`),e.rel=`icon`,e.type=`image/svg+xml`,document.head.appendChild(e)),e}var I=`idle`;function L(e){I=e;let t=de();t&&(t.href=ue(le(e)))}var R=!1;function fe(){R||typeof document>`u`||(R=!0,document.addEventListener(`visibilitychange`,()=>{!document.hidden&&(I===`ready`||I===`error`||I===`attention`)&&L(`idle`)}))}var z=2048,pe=2*1024*1024,me=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),B=class extends Error{reason;constructor(e,t){super(e),this.reason=t,this.name=`ImageAttachmentError`}};function he(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function V(e){let t=e.indexOf(`,`),n=t>=0?e.length-t-1:e.length;return Math.floor(n*3/4)}function ge(e){return/^data:([^;,]+)/.exec(e)?.[1]??`image/png`}async function _e(e){try{return await createImageBitmap(e)}catch{let t=URL.createObjectURL(e);try{return await new Promise((e,n)=>{let r=new Image;r.onload=()=>e(r),r.onerror=()=>n(Error(`image decode failed`)),r.src=t})}finally{URL.revokeObjectURL(t)}}}function ve(e,t,n,r,i){let a=document.createElement(`canvas`);a.width=t,a.height=n;let o=a.getContext(`2d`);if(!o)throw new B(`canvas 2d context unavailable`,`decode_failed`);o.drawImage(e,0,0,t,n);let s=a.toDataURL(`image/webp`,i);return s.startsWith(`data:image/webp`)?s:r?a.toDataURL(`image/png`):a.toDataURL(`image/jpeg`,i)}var ye=0;function be(){return ye+=1,`img_${Date.now()}_${ye}`}async function xe(e){let t=me.has(e.type),n;try{n=await _e(e)}catch{throw new B(`Could not decode image "${e.name}"`,`decode_failed`)}let r=n.width,i=n.height,a=Math.max(r,i);if(!(!t||a>z||e.size>pe)){let t=await he(e);return{id:be(),dataUrl:t,mediaType:e.type,bytes:V(t),name:e.name||void 0,width:r,height:i}}let o=e.type!==`image/jpeg`,s=Math.min(1,z/a),c=.85,l=ve(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c);V(l)>4194304&&(s=Math.min(s,1280/a),c=.7,l=ve(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c)),`close`in n&&n.close();let u=V(l);if(u>4194304)throw new B(`Image "${e.name}" is too large after compression`,`too_large`);return{id:be(),dataUrl:l,mediaType:ge(l),bytes:u,name:e.name||void 0,width:Math.max(1,Math.round(r*s)),height:Math.max(1,Math.round(i*s))}}function Se(e){return e.map(e=>{let t=e.dataUrl.indexOf(`,`);return{data:t>=0?e.dataUrl.slice(t+1):e.dataUrl,mediaType:e.mediaType,...e.name?{name:e.name}:{}}})}var H=null;function Ce(){if(typeof window>`u`)return null;if(H)return H;let e=window.AudioContext||window.webkitAudioContext;if(!e)return null;try{H=new e}catch{return null}return H}function U(e,t,n){let r=Ce();if(!r)return;let i=r.currentTime+t,a=r.createOscillator(),o=r.createGain();a.type=`sine`,a.frequency.value=e,o.gain.setValueAtTime(0,i),o.gain.linearRampToValueAtTime(.18,i+.01),o.gain.exponentialRampToValueAtTime(1e-4,i+n),a.connect(o).connect(r.destination),a.start(i),a.stop(i+n+.02)}function we(){U(659.25,0,.18),U(880,.12,.24)}function Te(){U(523.25,0,.15),U(659.25,.1,.15),U(783.99,.2,.25)}var W=`default`;W=typeof window<`u`&&`Notification`in window?Notification.permission:`unsupported`;async function Ee(){if(W===`unsupported`||W===`granted`||W===`denied`)return W;try{let e=await Notification.requestPermission();return W=e,e}catch{return`denied`}}function G(e,t,n){if(!(typeof document>`u`||!document.hidden)&&W===`granted`)try{let r=new Notification(e,{body:t,icon:`/wrongstack.svg`,tag:n??`wrongstack-run`,requireInteraction:n===`wrongstack-confirm`});r.onclick=()=>{window.focus(),r.close()}}catch{}}var De={"iteration.started":Oe,"provider.text_delta":ke,"provider.thinking_delta":Ae,"tool.started":je,"tool.progress":Me,"tool.executed":Ne,"tool.confirm_needed":Pe,"run.result":Fe};function Oe(e){if(!d(e))return;l(e);let t=e.payload;g.getState().setIteration({index:t.index,max:t.maxIterations??0}),r.getState().setLoading(!0),typeof document<`u`&&document.hidden&&L(`running`),r.getState().runStart===null&&r.getState().setRunStart({at:Date.now(),cost:g.getState().cost}),r.getState().setCurrentAssistantMessage(null)}function ke(e){if(!d(e))return;let t=p(e,{text:`string`,messageId:`string`});if(!t)return;f.flush(`__thinking__`),r.getState().clearThinking();let n=r.getState().currentAssistantMessageId;n||(n=r.getState().addMessage({role:`assistant`,content:``,streaming:!0}),r.getState().setCurrentAssistantMessage(n)),f.push(n,t.text,(e,t)=>r.getState().appendToMessage(e,t))}function Ae(e){if(!d(e))return;let t=e.payload;t.text&&f.push(`__thinking__`,t.text,(e,t)=>r.getState().appendThinking(t))}function je(e){if(!d(e))return;l(e);let t=e.payload,n=r.getState().getToolMessageId(t.id);if(n){r.getState().setCurrentToolId(n);return}f.flushAll(),r.getState().clearThinking();let i=r.getState().currentAssistantMessageId;i&&r.getState().finalizeMessage(i),r.getState().setCurrentAssistantMessage(null);let a=r.getState().addMessage({role:`tool`,content:``,toolName:t.name,toolInput:t.input,toolUseId:t.id});r.getState().setCurrentToolId(a),r.getState().addExecution({id:t.id,name:t.name,input:t.input,ok:!0,startedAt:Date.now()})}function Me(e){if(!d(e))return;let t=e.payload,n=(t.event?.text??``).trim();if(!n)return;let i=r.getState().getToolMessageId(t.id);if(!i)return;let a=t.event?.type===`warning`?`⚠ `:``;f.push(i,`${a}${n}\n`,(e,n)=>r.getState().appendToolProgressLinesByUseId(t.id,n.split(`
7
- `).filter(e=>e.length>0)))}function Ne(e){if(!d(e))return;l(e);let t=e.payload,{currentToolId:n}=r.getState(),i=t.id?r.getState().getToolMessageId(t.id):n;i&&(f.drop(i),t.id?r.getState().setToolResultByUseId(t.id,t.output??``,t.ok):r.getState().setToolResult(i,t.output??``,t.ok),r.getState().updateMessage(i,{toolDurationMs:t.durationMs})),t.id&&r.getState().updateExecution(t.id,{completedAt:Date.now(),durationMs:t.durationMs,output:t.output,ok:t.ok}),n&&i===n&&r.getState().setCurrentToolId(null)}function Pe(e){if(!d(e))return;let t=e.payload;if(s.getState().yolo===!0&&!t.boundaryReason){h(w.getState().wsUrl).sendConfirm(t.id,`yes`),o.getState().hideConfirm();return}o.getState().showConfirm({id:t.id,toolName:t.toolName,input:t.input,suggestedPattern:t.suggestedPattern,decisionSource:t.decisionSource,riskTier:t.riskTier,boundaryReason:t.boundaryReason});try{Te()}catch{}Ee(),G(`${g.getState().projectName||`Agent`} needs approval`,`Tool "${t.toolName}" is waiting for your decision.`,`agent-confirm`),typeof document<`u`&&document.hidden&&L(`attention`)}function Fe(e){if(!d(e))return;let t=p(e,{status:`string`},{iterations:`number`,finalText:`string`,error:`object`});if(!t)return;let i=t.iterations??1;f.flushAll(),r.getState().flushThinkingLog(Math.max(1,i)),g.getState().setIteration(null),r.getState().setLoading(!1);let a=r.getState().currentAssistantMessageId,o=t.status===`done`?t.finalText?.trim():void 0;if(a){let e=r.getState().messages.find(e=>e.id===a);r.getState().updateMessage(a,{content:e?.content?.trim()?e.content:o??e?.content??``,streaming:!1})}else if(o){let e=r.getState().runStart;r.getState().messages.some(t=>t.role===`assistant`&&(!e||t.timestamp>=e.at)&&t.content.trim()===o)||r.getState().addMessage({role:`assistant`,content:o})}r.getState().setCurrentAssistantMessage(null),r.getState().clearThinking();let s=r.getState().runStart;if(s&&t.status===`done`){let e=r.getState().messages,t=-1,a=0;for(let r=e.length-1;r>=0;r--){let i=n(e[r]);if(i.role===`assistant`&&t===-1&&i.content&&(t=r),i.role===`tool`&&i.timestamp>=s.at&&(a+=1),i.role===`user`&&i.timestamp<=s.at)break}if(t!==-1){let n=g.getState().cost;r.getState().updateMessage(e[t]?.id,{runSummary:{iterations:i,tools:a,durationMs:Date.now()-s.at,costDelta:Math.max(0,n-s.cost)}})}}if(r.getState().setRunStart(null),t.status!==`done`&&t.error)r.getState().addMessage({role:`assistant`,content:`Error: ${t.error.message}`,isError:!0}),N.error(`Run ended: ${t.error.message}`),G(`${g.getState().projectName||`Agent`} run failed`,t.error.message),typeof document<`u`&&document.hidden&&L(`error`);else if(t.status===`done`&&(typeof document<`u`&&document.hidden&&(N.success(`Run completed in ${i} iteration${i===1?``:`s`}`),G(`${g.getState().projectName||`Agent`} run finished`,`Completed in ${i} iteration${i===1?``:`s`}.`),L(`ready`)),Ee(),w.getState().soundOnComplete))try{we()}catch{}let c=r.getState().dequeue();if(!c)return;let l=h(w.getState().wsUrl),u=c.images??[];r.getState().addMessage({role:`user`,content:c.text,...u.length>0?{attachments:u.map(e=>({id:e.id,kind:`image`,dataUrl:e.dataUrl,mediaType:e.mediaType,bytes:e.bytes,name:e.name}))}:{}}),r.getState().setLoading(!0),l.sendMessage(c.text,u.length>0?Se(u):void 0)}var Ie={"coordinator.status":e=>{let t=e.payload;y.getState().setCoordinatorStatus(t.status,t.mode),t.taskQueue&&y.getState().updateCoordinatorStats({total:t.subagentCount??0,running:0,idle:0,stopped:0,inFlight:t.taskQueue.running,pending:t.taskQueue.pending,completed:t.taskQueue.completed})},"coordinator.stats":e=>{let t=e.payload;y.getState().updateCoordinatorStats(t)},"budget.threshold_reached":e=>{let t=e.payload;y.getState().pushEvent(`budget.threshold_reached`,t,t.ts??Date.now(),t.subagentId,t.taskId),t.limit>0&&t.used/t.limit*100>=85&&y.getState().recordBudgetAlert(t.subagentId,t.kind,t.used,t.limit),y.getState().updateSubagentBudget(t.subagentId,{budgetUsage:{iterations:0,toolCalls:0,tokens:0,costUsd:0,elapsedMs:t.used??0}})},"budget.decision":e=>{let t=e.payload,n=t.extended?.timeoutMs??t.extended?.maxIterations??t.extended?.maxToolCalls;y.getState().recordBudgetDecision(t.subagentId,t.kind,t.decision,n),y.getState().pushEvent(`budget.decision`,{subagentId:t.subagentId,kind:t.kind,decision:t.decision,newLimit:n},Date.now(),t.subagentId)},"subagent.budget_extended":e=>{let t=e.payload;y.getState().recordBudgetExtended(t.subagentId,t.kind,t.extendedTo),y.getState().pushEvent(`subagent.budget_extended`,t,Date.now(),t.subagentId)},"consensus.vote_initiated":e=>{let t=e.payload;y.getState().pushConsensusVote(t.changeId,t.title,t.eligible),y.getState().pushEvent(`consensus.vote_initiated`,t,Date.now()),N.info(`Vote started: `+t.title)},"consensus.vote_cast":e=>{let t=e.payload,n=y.getState().consensusVotes.get(t.changeId)?.eligible.find(e=>e.agentId===t.voterId);y.getState().recordConsensusVote(t.changeId,t.voterId,n?.agentName??t.voterId,t.value),y.getState().pushEvent(`consensus.vote_cast`,t,Date.now(),t.voterId)},"consensus.vote_resolved":e=>{let t=e.payload;y.getState().resolveConsensusVote(t.changeId,t.result,t.approveCount,t.rejectCount),y.getState().pushEvent(`consensus.vote_resolved`,t,Date.now()),N.info(`Vote resolved: `+t.result+` (y`+t.approveCount+` n`+t.rejectCount+`)`)},"task.pending":e=>{let t=e.payload;y.getState().pushTaskPending(t.taskId,t.description,t.priority),y.getState().pushEvent(`task.pending`,t,Date.now())},"task.started":e=>{let t=e.payload;y.getState().startTask(t.taskId,t.subagentId),y.getState().pushEvent(`task.started`,t,Date.now(),t.subagentId)},"task.completed":e=>{let t=e.payload;y.getState().completeTask(t.taskId,t.status,t.durationMs),y.getState().pushEvent(`task.completed`,t,Date.now(),t.subagentId)},"task.failed":e=>{let t=e.payload;y.getState().failTask(t.taskId,t.error),y.getState().pushEvent(`task.failed`,{taskId:t.taskId,subagentId:t.subagentId,error:String(t.error).slice(0,120)},Date.now(),t.subagentId),N.error(`Task failed: `+String(t.error).slice(0,80))}};function K(){let e=h();e?.send?.({type:`mailbox.messages`,payload:{limit:30,incompleteOnly:!0}}),e?.send?.({type:`mailbox.agents`,payload:{}})}var q=null;function J(){q!==null&&clearTimeout(q),q=setTimeout(()=>{q=null,K()},300)}function Le(e){let t=e.payload;if(t.error){b.getState().setError(t.error);return}b.getState().setTree(t.root,t.tree)}function Re(e){let t=e.payload;if(t.error){b.getState().setError(t.error);return}b.getState().openFile(t.filePath,t.content)}function ze(e){let t=e.payload;t.success?b.getState().markSaved(t.filePath):t.error&&b.getState().setError(`Save failed: ${t.error}`)}function Be(e){let t=u(`mailbox.event`,e.payload);t&&(m.getState().pushEvent(t),m.getState().setActive(!0)),J()}function Ve(e){let t=e.payload;t?.messages&&M.getState().setMessages(t.messages)}function He(e){let t=e.payload;t?.agents&&M.getState().setAgents(t.agents)}function Ue(e){let t=u(`mailbox.received`,e.payload);t&&(m.getState().pushEvent(t),m.getState().setActive(!0)),J()}function We(e){J()}function Ge(e){M.getState().setMessages([]),K()}function Ke(e){J()}function qe(e){let t=e.payload;t&&typeof t.totalRemoved==`number`&&M.getState().setLastCompaction({readByAllRemoved:t.readByAllRemoved??0,expiredRemoved:t.expiredRemoved??0,stalePurged:t.stalePurged??0,totalRemoved:t.totalRemoved,remaining:t.remaining??0}),J()}var Je={"files.tree":Le,"files.read":Re,"files.written":ze,"mailbox.event":Be,"mailbox.messages":Ve,"mailbox.agents":He,"mailbox.received":Ue,"mailbox.agent_registered":We,"mailbox.cleared":Ge,"mailbox.purged":Ke,"mailbox.compacted":qe};function Ye(e){let t=e.payload;j.getState().setSnapshot(t.worktrees??[],t.baseBranch??``)}function Xe(e){let t=e.payload;j.getState().pushEvent(t)}function Ze(e){let t=e.payload;j.getState().setOrphans(t.orphans??[],t.canClean??!1,t.reason)}function Qe(e){let t=e.payload;j.getState().setCleanResult({...t,at:Date.now()})}function $e(e){let t=e.payload;j.getState().setMergeResult({...t,at:Date.now()})}function et(e){let t=e.payload;j.getState().setDiff(t.dir,t.summary)}function tt(e){S.getState().applyEvent(e.payload);let t=u(`subagent.event`,e.payload);t&&(m.getState().pushEvent(t),m.getState().setActive(!0))}function nt(e){let t=e.payload;S.setState({fleetConcurrency:t.fleetConcurrency,fleetConcurrencyMax:t.fleetConcurrencyMax})}function rt(e){let t=e.payload;E.getState().setCurrentSession({clientType:t.clientType,clientId:t.clientId,agentCount:t.agentCount,model:t.model,mode:t.mode,toolCalls:t.toolCalls,inputTokens:t.inputTokens,outputTokens:t.outputTokens,cacheTokens:t.cacheTokens,costUsd:t.costUsd,timestamp:t.timestamp})}function it(e){let t=e.payload;E.getState().setLiveSessions(t?.sessions??[]);let n=Date.now();if(n-ot>=5e3&&(ot=n,K()),n-at<1e3)return;at=n;let r=u(`sessions.status_update`,e.payload);r&&(m.getState().pushEvent(r),m.getState().setActive(!0))}var at=0,ot=0,st={"worktree.state":Ye,"worktree.event":Xe,"worktree.orphans":Ze,"worktree.cleanup_result":Qe,"worktree.merge_result":$e,"worktree.diff_result":et,"subagent.event":tt,"fleet.concurrency_update":nt,"client.status_update":rt,"sessions.status_update":it},ct=50,Y=i()(e=>({traces:[],contextMemories:{},transitions:[],pushTrace:t=>e(e=>{let n={...e.contextMemories},r=[...e.transitions];for(let e of t.injected){let i=n[e.id];n[e.id]={...e,state:i?.state===`active`?`active`:`injected`,trigger:t.trigger,enteredAt:i?.enteredAt??t.at,lastSeenAt:t.at};let a=`${t.at}_injected_${e.id}`;r.some(e=>e.id===a)||r.unshift({id:a,at:t.at,memoryId:e.id,action:`injected`,reason:`${t.trigger} · score ${e.score.toFixed(2)}`})}return{traces:[t,...e.traces.filter(e=>e.runId!==t.runId)].slice(0,ct),contextMemories:n,transitions:r.slice(0,100)}}),applyContextSnapshot:t=>e(e=>{let n={...e.contextMemories},r=[...e.transitions],i=new Set(t.activeMemoryIds);for(let e of t.activeMemoryIds){let r=n[e];n[e]=r?{...r,state:`active`,lastSeenAt:t.at,exitedAt:void 0}:lt(e,t.at,`active`)}for(let e of t.enteredMemoryIds){let n=`${t.at}_entered_${e}`;r.some(e=>e.id===n)||r.unshift({id:n,at:t.at,memoryId:e,action:`entered`,reason:`present in provider request`})}for(let e of t.exitedMemoryIds){let i=n[e];i&&(n[e]={...i,state:`exited`,exitedAt:t.at});let a=`${t.at}_exited_${e}`;r.some(e=>e.id===a)||r.unshift({id:a,at:t.at,memoryId:e,action:`exited`,reason:`absent from provider request`})}for(let[e,a]of Object.entries(n))if((a.state===`injected`||a.state===`active`)&&!i.has(e)&&(n[e]={...a,state:`exited`,exitedAt:t.at},!t.exitedMemoryIds.includes(e))){let n=`${t.at}_exited_before_provider_${e}`;r.some(e=>e.id===n)||r.unshift({id:n,at:t.at,memoryId:e,action:`exited`,reason:a.state===`injected`?`removed before provider request`:`absent from provider context snapshot`})}return{contextMemories:n,transitions:r.slice(0,100)}}),resetContext:()=>e({contextMemories:{},transitions:[]}),clear:()=>e({traces:[],contextMemories:{},transitions:[]})}));function lt(e,t,n){return{id:e,kind:`unknown`,text:`Memory details were not present in this UI process.`,score:0,relationStrength:0,anchors:[],tags:[],activationReasons:[],importance:0,confidence:0,freshness:0,persistence:`unknown`,state:n,trigger:`context snapshot`,enteredAt:t,lastSeenAt:t,isPlaceholder:!0}}var ut=100,dt=new Set([`exited`,`superseded`,`archived`,`staled`,`contradicted`]);function ft(e,t=new Date){let n=e.event,r=X(e.memoryId),i=X(e.at)??t.toISOString(),a={id:`${n}_${t.getTime()}_${Math.random().toString(36).slice(2,7)}`,at:i,event:n};if(n===`memory.accepted`&&r)return{...a,action:`entered`,memoryId:r,label:`${r} entered memory`,detail:mt(e)};if(n===`memory.merged`&&r){let t=Array.isArray(e.mergedIds)?e.mergedIds.length:0;return{...a,action:`merged`,memoryId:r,label:`${r} merged`,detail:t>0?`${t} records folded in`:void 0}}if(n===`memory.recovered`&&r)return{...a,action:`recovered`,memoryId:r,label:`${r} recovered`,detail:X(e.reason)};if(n===`memory.deleted`&&r)return{...a,action:`exited`,memoryId:r,label:`${r} exited memory`,detail:ht(e)};if(n===`memory.updated`&&r){let t=X(e.status)??`updated`;return{...a,action:t===`deleted`?`exited`:`updated`,memoryId:r,label:t===`deleted`?`${r} exited memory`:`${r} updated → ${t}`,detail:mt(e)}}if(n===`memory.graph_edge_added`){let t=X(e.from),n=X(e.to);if(!t?.startsWith(`mem:`)||!n?.startsWith(`mem:`))return null;let r=X(e.relation)??`related_to`,i=Z(e.weight),o=Array.isArray(e.evidence)?e.evidence.filter(e=>typeof e==`string`):[];return{...a,action:`related`,memoryId:t.startsWith(`mem:`)?t.slice(4):void 0,label:`${gt(t)} ↔ ${gt(n)}`,detail:[r,i===void 0?void 0:`weight ${i.toFixed(2)}`,o.length>0?`why: ${o.join(`, `)}`:void 0].filter(Boolean).join(` · `)}}return n===`memory.relationships_rebuilt`?{...a,action:`related`,label:`Memory relationships rebuilt`,detail:`${Z(e.added)??0} added / ${Z(e.proposed)??0} proposed`}:n===`memory.superseded`&&r?{...a,action:`superseded`,memoryId:r,label:`${r} → superseded`,detail:X(e.reason)??mt(e)}:n===`memory.archived`&&r?{...a,action:`archived`,memoryId:r,label:`${r} → archived`,detail:X(e.reason)}:n===`memory.staled`&&r?{...a,action:`staled`,memoryId:r,label:`${r} → staled`,detail:X(e.reason)??`anchor drift detected`}:n===`memory.contradicted`&&r?{...a,action:`contradicted`,memoryId:r,label:`${r} → contradicted`,detail:X(e.reason)??`conflicting evidence`}:null}var pt=i()(e=>({items:[],pushEvent:t=>e(e=>{let n=ft(t);return n?{items:[n,...dt.has(n.action)?e.items.filter(e=>!(dt.has(e.action)&&e.memoryId===n.memoryId)):e.items].slice(0,ut)}:e}),clear:()=>e({items:[]})}));function X(e){return typeof e==`string`&&e.length>0?e:void 0}function Z(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function mt(e){let t=[X(e.kind),X(e.persistence)],n=Z(e.confidence),r=Z(e.freshness);return n!==void 0&&t.push(`confidence ${n.toFixed(2)}`),r!==void 0&&t.push(`freshness ${r.toFixed(2)}`),t.filter(Boolean).join(` · `)||void 0}function ht(e){let t=X(e.reason),n=Z(e.removedEdges);return[t,n===void 0?void 0:`${n} edges removed`].filter(Boolean).join(` · `)||void 0}function gt(e){let t=e.replace(/^mem:/,``);return t.length>26?`${t.slice(0,23)}…`:t}function _t(e){if(!e||e.length===0)return;let t=e.map(e=>e.status);return t.some(e=>e===`failed`)?`failed`:t.every(e=>e===`completed`||e===`skipped`)?`completed`:t.some(e=>e===`paused`)?`paused`:`running`}function vt(e){let t=e.payload,n=Array.isArray(t.phases)?t.phases:void 0,r=_t(n);k.getState().setState({phases:n,activePhaseId:typeof t.activePhaseId==`string`?t.activePhaseId:void 0,overallPercent:typeof t.overallPercent==`number`?t.overallPercent:void 0,autonomous:typeof t.autonomous==`boolean`?t.autonomous:void 0,title:typeof t.title==`string`?t.title:void 0,goal:typeof t.goal==`string`?t.goal:void 0,status:r,lastError:r===`failed`?k.getState().lastError:null})}function yt(e){let t=e.payload,n={totalPhases:typeof t.totalPhases==`number`?t.totalPhases:0,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,totalTasks:typeof t.totalTasks==`number`?t.totalTasks:0,completedTasks:typeof t.completedTasks==`number`?t.completedTasks:0,failedTasks:typeof t.failedTasks==`number`?t.failedTasks:0};k.getState().setState({progress:n,overallPercent:typeof t.percentComplete==`number`?Math.round(t.percentComplete):void 0,status:n.failed>0||n.failedTasks>0?`failed`:`running`,lastEvent:`progress`})}function Q(e){let t=e.payload,n=typeof t.title==`string`&&t.title?t.title:`Goal`,r=typeof t.error==`string`&&t.error?t.error:void 0;if(e.type===`goal.paused`){k.getState().setState({status:`paused`,autonomous:!1,lastEvent:`paused`}),N.info(`Goal paused`);return}if(e.type===`goal.resumed`){k.getState().setState({status:`running`,autonomous:!0,lastEvent:`resumed`}),N.info(`Goal resumed`);return}if(e.type===`goal.stopped`){k.getState().setState({status:`stopped`,autonomous:!1,lastEvent:`stopped`}),N.warn(`Goal stopped`);return}if(e.type===`goal.cleared`){k.getState().clear();return}if(e.type===`goal.reverted`){let e=t.ok===!0,n=typeof t.reverted==`number`?t.reverted:0,r=typeof t.reason==`string`?t.reason:void 0;e?N.success(n>0?`Reverted ${n} commit${n===1?``:`s`}`:`Nothing to revert`):N.error(`Revert failed: ${r??`unknown error`}`),k.getState().setState({lastEvent:`reverted`});return}if(e.type===`goal.saved`){k.getState().setState({lastEvent:`saved`}),N.success(`Goal graph saved`);return}if(e.type===`goal.completed`){k.getState().setState({status:`completed`,autonomous:!1,overallPercent:100,lastEvent:`completed`,lastError:null}),N.success(`${n} completed`);return}if(e.type===`goal.failed`||e.type===`goal.error`){let e=r??(typeof t.message==`string`?t.message:`${n} failed`);k.getState().setState({status:`failed`,autonomous:!1,lastEvent:`failed`,lastError:e}),N.error(e)}}function bt(e){let t=e.payload;k.getState().setState({lastEvent:`list`,graphs:Array.isArray(t.graphs)?t.graphs:[]})}function xt(e){let t=e.payload;te.getState().setGoal(t)}function St(e){let t=e.payload;s.getState().set(t),t.yolo===!0&&o.getState().confirmInfo&&o.getState().hideConfirm()}function Ct(e){if(!d(e))return;let t=e.payload,n;if(t.decision.type===`answer`){let e=t.decision.rationale&&t.decision.rationale!==t.decision.text?`\n\n_${t.decision.rationale}_`:``;n=`🧠 ${t.decision.text??``}${e}`}else n=t.decision.type===`deny`?`🧠 Denied: ${t.decision.reason??``}`:`🧠 The Brain escalated this question back to you — it needs human judgement.`;r.getState().addMessage({role:`assistant`,content:n})}function wt(e){if(!d(e))return;let t=e.payload;if(t.event===`brain.intervention`){let e=t.decision?.rationale??t.decision?.text??``,n=t.intervened?`🧠 **Brain intervention** — corrective guidance was sent to the agent.`:`🧠 **Brain check** — a distress signal was reviewed; no action needed.`;r.getState().addMessage({role:`assistant`,content:[n,t.request?.question??``,e?`_${e}_`:``].filter(Boolean).join(`
8
-
9
- `)}),t.intervened&&N.info(`Brain intervened: agent steered`)}else t.event===`brain.decision_denied`&&N.warn(`Brain denied: ${t.decision?.reason??t.request?.question??`request`}`)}function Tt(e){if(!d(e))return;let t=e.payload;m.getState().pushEvent({id:`memory_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,kind:`memory:event`,timestamp:Date.now(),source:`super-memory`,target:`leader`,label:t.event.replace(/^memory\./,``),data:t,color:`#a78bfa`,flowGroup:`memory`}),t.event===`memory.injector_run`&&Y.getState().pushTrace(t),t.event===`memory.context_snapshot`&&Y.getState().applyContextSnapshot(t),pt.getState().pushEvent(t),t.event===`memory.staled`?N.warn(`Memory became stale: ${String(t.memoryId??``)}`):t.event===`memory.contradicted`?N.warn(`Memory contradicted: ${String(t.memoryId??``)}`):t.event===`memory.hygiene_completed`&&N.info(`Super Memory hygiene completed`)}function Et(e){let t=e.payload,n=typeof t.kind==`string`?t.kind:typeof t.event==`string`?t.event:`collab.event`;m.getState().pushEvent({id:`collab_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,kind:`collab:event`,timestamp:Date.now(),source:`collab`,target:typeof t.sessionId==`string`?t.sessionId:`session`,label:n,magnitude:1,data:t,raw:e.payload,color:`hsl(200, 70%, 55%)`,flowGroup:`collab`}),m.getState().setActive(!0)}function Dt(e){Et(e);let t=e.payload;t?.phase===`consumed`?N.success(`Tool injection applied${t.toolName?` to ${t.toolName}`:``}`):N.info(`Collab tool injection queued`)}function Ot(e){let t=e.payload?.entry;if(!t)return;let n=typeof t.iteration==`number`?t.iteration:0,r=typeof t.task==`string`?t.task:void 0,i=typeof t.status==`string`?t.status:void 0,a=typeof t.at==`string`?t.at:new Date().toISOString();te.getState().appendJournalEntry({iteration:n,task:r,status:i,timestamp:a}),m.getState().pushEvent({id:`eternal_${Date.now()}_${n}`,kind:`eternal:iteration`,timestamp:Date.now(),source:`eternal`,target:`goal`,label:r?`L${n}: ${r}`:`Eternal iteration ${n}`,magnitude:typeof t.costUsd==`number`?t.costUsd:1,data:t,raw:e.payload,color:i===`failure`?`hsl(0, 80%, 55%)`:`hsl(220, 80%, 60%)`,flowGroup:`eternal`}),m.getState().setActive(!0)}function kt(e){let t=e.payload;g.getState().setEnv({cwd:t.cwd,projectRoot:t.projectRoot,projectName:t.projectRoot.split(/[/\\]/).pop()||t.projectRoot}),b.getState().setTreeLoading(!0),h().send({type:`files.tree`,payload:{path:t.cwd}})}function At(e){let n=e.payload,i=o.getState().refinePanel,a=r.getState().pendingRefinement;if(!i&&a){r.getState().setRefining(!1);let e=a.text,i=a.images?.length?a.images.map((e,t)=>({id:`pr_${Date.now()}_${t}`,dataUrl:`data:${e.mime};base64,${e.data}`,mediaType:e.mime,bytes:Math.round(e.data.length*3/4)})):void 0;if(n.error){r.getState().setPendingRefinement(null),r.getState().enqueue(e,`queue`,i);return}let s=n.refined??``;if(!s||t(s,e)){r.getState().setPendingRefinement(null),r.getState().enqueue(e,`queue`,i);return}r.getState().setPendingRefinement(null),o.getState().setRefinePanel({original:e,refined:s,english:n.english||s,status:`ready`,...n.refinedWith?{provider:n.refinedWith.provider,model:n.refinedWith.model}:{},error:void 0,errorKind:void 0,resolve:()=>{}});return}if(!i)return;if(n.error){if(n.errorKind===`timeout`&&!i.retried&&n.retryTimeoutMs){o.getState().setRefinePanel({...i,status:`refining`,retried:!0}),h().refineModel(i.original,{timeoutMs:n.retryTimeoutMs});return}o.getState().setRefinePanel({...i,status:`failed`,error:n.error,errorKind:n.errorKind,fallbackRef:n.fallbackRef});return}let s=i.original;if(t(n.refined,s)){o.getState().setRefinePanel(null),r.getState().addMessage({role:`user`,content:s}),r.getState().setLoading(!0),h().sendMessage(s);return}o.getState().setRefinePanel({...i,status:`ready`,refined:n.refined,english:n.english,...n.refinedWith?{provider:n.refinedWith.provider,model:n.refinedWith.model}:{},error:void 0,errorKind:void 0})}function jt(e){let t=e.payload;re.getState().setInfo({...t,fetchedAt:Date.now()})}function Mt(e){let t=e.payload;C.getState().setFiles(t.files??[],t.error??null)}function Nt(e){let t=e.payload;C.getState().selectedPath===t.path&&C.getState().setDiff({path:t.path,oldText:t.oldText??``,newText:t.newText??``,binary:t.binary,tooLarge:t.tooLarge,error:t.error})}function Pt(e){let t=e.payload;T.getState().setSnapshot({count:t.count,maxConcurrent:t.maxConcurrent,jobs:t.jobs??[]})}function Ft(e){let t=e.payload;T.getState().recordFired(t.name,t.ts)}var It={"goal-state.updated":xt,"prefs.updated":St,"goal.state":vt,"goal.progress":yt,"goal.paused":Q,"goal.resumed":Q,"goal.stopped":Q,"goal.cleared":Q,"goal.reverted":Q,"goal.saved":Q,"goal.completed":Q,"goal.failed":Q,"goal.error":Q,"goal.list":bt,"brain.answer":Ct,"brain.event":wt,"memory.event":Tt,"collab.event":Et,"collab.injection.granted":Dt,"eternal.iteration":Ot,"working_dir.changed":kt,"model.refine_result":At,"git.info":jt,"git.changes":Mt,"git.diff":Nt,"cron.snapshot":Pt,"cron.job_fired":Ft};function Lt(e){let t=e.payload;!t.jobId||!t.kind||D.getState().jobStarted(t.jobId,t.kind)}function Rt(e){let t=e.payload;!t.jobId||!t.phase||!Number.isFinite(t.completed)||!Number.isFinite(t.total)||D.getState().jobProgress(t.jobId,{phase:t.phase,completed:t.completed??0,total:t.total??0})}function zt(e){let t=e.payload;t.workspaceId&&D.getState().workspaceCompleted(t.workspaceId)}function Bt(e){let t=e.payload;t.snapshot&&D.getState().setSnapshot(t.snapshot,t.stale??!1)}function Vt(e){let t=e.payload;t.reportId&&D.getState().reportReady(t.reportId)}function Ht(e){let t=e.payload;t.jobId&&D.getState().jobFailed(t.jobId,t.error??`TechStack job failed`)}function Ut(e){let t=e.payload;t.jobId&&D.getState().jobCancelled(t.jobId)}var Wt={"techstack.job.started":Lt,"techstack.job.progress":Rt,"techstack.workspace.completed":zt,"techstack.snapshot.updated":Bt,"techstack.report.ready":Vt,"techstack.job.failed":Ht,"techstack.job.cancelled":Ut};function Gt(e){if(typeof e!=`string`)return Date.now();let t=Date.parse(e);return Number.isFinite(t)?t:Date.now()}function Kt(e){return`replay_${Date.now()}_${e}`}function qt(){return typeof window>`u`?!1:window.location.pathname===`/debug`||window.location.pathname===`/analytics`||window.location.pathname===`/refresh-debug`}function Jt(e){return typeof e==`string`?e:JSON.stringify(e)}function Yt(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>!!e&&typeof e==`object`&&e.type===`text`&&typeof e.text==`string`).map(e=>e.text).join(`
10
- `):``}function Xt(e){if(typeof e==`string`)return e.trim();if(!e||typeof e!=`object`||Array.isArray(e))return``;let t=e;for(let e of[`id`,`name`,`type`]){let n=t[e];if(typeof n==`string`&&n.trim())return n.trim()}return``}function Zt(e){let t=[],n=new Map,r=0,i=(e,n,r)=>{n&&t.push({id:Kt(t.length),role:e,content:n,timestamp:r})},a=(e,n)=>{let i=e.trim();i&&(r+=1,t.push({id:Kt(t.length),role:`system`,content:``,timestamp:n,thinkingLog:{iteration:r,text:i,startedAt:n,durationMs:0,replayed:!0}}))};for(let r of e){if(r.role!==`user`&&r.role!==`assistant`&&r.role!==`system`)continue;let e=r.role,o=Gt(r.ts);if(typeof r.content==`string`){i(e,r.content,o);continue}if(!Array.isArray(r.content))continue;let s=``,c=[];for(let a of r.content){if(a.type===`thinking`&&typeof a.thinking==`string`){c.push(a.thinking);continue}if(a.type===`text`&&typeof a.text==`string`){s+=(s?`
11
- `:``)+a.text;continue}if(a.type===`tool_use`){i(e,s,o),s=``;let r=String(a.id??``),c={id:Kt(t.length),role:`tool`,content:``,toolName:String(a.name??`tool`),toolInput:a.input,toolUseId:r,timestamp:o};t.push(c),r&&n.set(r,c);continue}if(a.type===`tool_result`){let e=String(a.tool_use_id??``),t=n.get(e);t&&(t.toolResult=Jt(a.content),t.isError=!!a.is_error)}}i(e,s,o),e===`assistant`&&c.length>0&&a(c.join(`
12
-
13
- `),o)}return t}var Qt=new Set;function $t(e,t=140){return e.length>t?`${e.slice(0,t-1)}…`:e}function en(){f.flush(`__thinking__`);let e=g.getState().iteration;r.getState().flushThinkingLog(Math.max(1,e?.index??1)),r.getState().clearThinking()}function tn(e){let t=u(`session.start`,e.payload);t&&(m.getState().pushEvent(t),m.getState().setActive(!0));let n=e.payload,i=Xt(n.provider),a=Xt(n.model),s=g.getState().session?.id,l=!s||s!==n.sessionId||n.reset;if(Array.isArray(n.providerStatuses)&&A.getState().hydrate(n.providerStatuses.map(e=>({providerId:e.providerId,model:e.model,state:e.state,reason:e.lastErrorKind??e.state,updatedAt:e.lastFailureAt??Date.now(),stateExpiresAt:e.stateExpiresAt??void 0}))),n.needsSetup&&oe(`setup`),l?(Y.getState().resetContext(),g.getState().startSession({id:n.sessionId,startedAt:Date.now(),model:a,provider:i})):g.getState().setSession({id:n.sessionId,startedAt:g.getState().session?.startedAt??Date.now(),model:a,provider:i}),g.getState().setEnv({maxContext:n.maxContext,projectRoot:n.projectRoot??``,projectName:n.projectName,cwd:n.cwd,mode:n.mode,contextMode:n.contextMode,inputCost:n.inputCost,outputCost:n.outputCost,cacheReadCost:n.cacheReadCost}),w.getState().setConfig({provider:i,model:a}),l){!n.needsSetup&&F()&&!qt()&&c({sidebarOpen:!1}),f.dropAll(),r.getState().clearMessages(),r.getState().setBoundSessionId(n.sessionId),o.getState().setSearchActiveMessageId(null),r.getState().setLoading(!1),g.setState({todos:[]}),L(`ready`);let e=S.getState();if(n.clearedSessionId){let t=new Map;for(let[r,i]of e.agents)i.sessionId!==n.clearedSessionId&&t.set(r,i);S.setState({agents:t})}else e.clear();b.getState().setTreeLoading(!0),h().send({type:`files.tree`,payload:{path:g.getState().cwd}})}let d=n.replayMessages;if(d&&d.length>0){let e=r.getState();(l||e.messages.length===0||e.boundSessionId!==n.sessionId||e.isLoading)&&(e.setMessages(Zt(d)),e.setBoundSessionId(n.sessionId))}if(d){let e=n.replayUsage;if(e){let t=g.getState(),n=e.input??0,r=e.output??0,i=e.cacheRead??0,a=e.cacheWrite??0;g.setState({totalTokens:{input:n,output:r,cacheRead:i,cacheWrite:a},cost:(n*t.inputCost+r*t.outputCost+i*t.cacheReadCost)/1e6})}let t=n.lastInputTokens;typeof t==`number`&&t>0&&g.setState({lastInputTokens:t}),l&&!n.needsSetup&&(qt()||(F()?c({sidebarOpen:!1}):o.getState().currentView!==`chat`&&se(`chat`))),typeof window<`u`&&window.matchMedia?.(`(max-width: 768px)`).matches&&o.getState().setSidebarOpen(!1)}}function nn(e){if(!d(e))return;let t=e.payload,n=e=>e.toLocaleString(),i=[...t.tools.breakdown].sort((e,t)=>t.tokens-e.tokens).slice(0,8),a=[...t.messages.breakdown].sort((e,t)=>t.tokens-e.tokens).slice(0,8);r.getState().addMessage({role:`assistant`,content:[`📊 **Context breakdown** (heuristic — 4 chars/token)`,``,`**Total estimate:** ${n(t.total)} tokens`,`• System prompt: ${n(t.systemPrompt)}`,`• Tool schemas: ${n(t.tools.total)} (${t.tools.count} tools)`,`• Messages: ${n(t.messages.total)} (${t.messages.count} messages)`,``,`**Top tool schemas:**`,...i.map(e=>` · ${e.name}: ${n(e.tokens)}`),``,`**Top messages:**`,...a.map(e=>` · #${e.index} ${e.role}: ${n(e.tokens)} — ${e.preview||`(empty)`}`)].join(`
14
- `)})}function rn(e){let t=e.payload;t.success?N.success(t.message):N.error(t.message),h(w.getState().wsUrl).listSavedProviders()}function an(e){if(!d(e))return;l(e);let t=e.payload,n=t.reductions.length?t.reductions.map(e=>`${e.phase}: ${e.saved}`).join(`, `):`no-op`;t.repaired&&(n+=`; repaired ${t.repaired.removedToolUses?.length??0} tool_use, ${t.repaired.removedToolResults?.length??0} tool_result, ${t.repaired.removedMessages} empty messages`),r.getState().addMessage({role:`system`,content:`🗜️ Context compacted: ${t.before} → ${t.after} tokens (saved ~${t.saved}). ${n}`}),g.setState({lastInputTokens:t.after})}function on(e){if(!d(e))return;l(e);let t=e.payload,n,i;t.budget&&t.budget.availableInputTokens>0?(n=Math.min(100,Math.max(0,Math.round(t.budget.load*100))),i=`input budget`):(n=t.maxContext>0?Math.min(100,Math.max(0,Math.round(t.tokens/t.maxContext*100))):0,i=`context`),r.getState().addMessage({role:`assistant`,content:`Compaction failed at ${t.level} (${n}% ${i}): ${t.message}`,isError:t.fatal}),N.error(`Compaction failed: ${t.message}`)}function sn(e){if(!d(e))return;l(e);let t=e.payload,n=Yt(t.content),i=t.usage,a=(i.input??0)+(i.cacheWrite??0)-(i.cacheRead??0);a>0&&g.setState({lastInputTokens:a}),g.getState().updateUsage(t.usage);let{inputCost:o,outputCost:s,cacheReadCost:c}=g.getState(),u=(t.usage.input*o+t.usage.output*s+(t.usage.cacheRead??0)*c)/1e6;u>0&&g.getState().addCost(u),t.stopReason!==`tool_use`&&t.stopReason!==`tool_call`&&r.getState().setLoading(!1);let p=r.getState().currentAssistantMessageId;if(p){f.flush(p);let e=r.getState().messages.find(e=>e.id===p)?.content??``;n.trim()&&(e.trim()?n.startsWith(e)&&n.length>e.length&&r.getState().updateMessage(p,{content:n}):r.getState().updateMessage(p,{content:n})),r.getState().finalizeMessage(p),t.usage.output>0&&r.getState().updateMessage(p,{usage:t.usage})}else if(n.trim()){let e=r.getState().addMessage({role:`assistant`,content:n,usage:t.usage.output>0?t.usage:void 0});r.getState().finalizeMessage(e)}r.getState().setCurrentAssistantMessage(null),f.flush(`__thinking__`),r.getState().clearThinking()}function cn(e){if(!d(e))return;l(e);let t=e.payload;f.flush(`__thinking__`),r.getState().flushThinkingLog(t.index),r.getState().clearThinking();let n=g.getState().iteration;n&&g.getState().setIteration({index:t.index,max:n.max})}function ln(e){if(!d(e))return;let t=e.payload;r.getState().addMessage({role:`assistant`,content:`Iteration limit reached: ${t.currentIterations}/${t.currentLimit}.`,isError:!0}),N.warn(`Iteration limit reached (${t.currentIterations}/${t.currentLimit})`)}function un(e){if(!d(e))return;let t=e.payload,n=Math.max(0,Math.round(t.delayMs/100)/10);N.warn(`${t.providerId} retry ${t.attempt} after ${n}s (${t.status})`)}function dn(e){if(!d(e))return;let t=e.payload;r.getState().addMessage({role:`assistant`,content:[`Provider error from \`${t.providerId}\` (${t.status}).`,t.description,t.retryable?`_Retryable; WrongStack may recover automatically._`:``].filter(Boolean).join(`
15
-
16
- `),isError:!0}),N.error(`${t.providerId} provider error (${t.status})`)}function fn(e){if(!d(e))return;let t=e.payload,n=`${t.from.providerId}/${t.from.model}`,i=`${t.to.providerId}/${t.to.model}`;r.getState().addMessage({role:`assistant`,content:`Provider fallback: \`${n}\` returned ${t.status}; switching to \`${i}\`${t.providerSwitched?` with provider change`:``}.`}),N.warn(`Fallback to ${i}`)}function pn(e){let t=e.payload;A.getState().update({providerId:t.providerId,model:t.model,state:t.newState,reason:t.reason,updatedAt:t.timestamp,stateExpiresAt:t.stateExpiresAt});let n=`${t.providerId}/${t.model}`;t.newState===`blocked`&&t.oldState!==`blocked`?N.warn(`${n} entered the limit-reset waiting room`):t.newState===`healthy`&&t.oldState!==`healthy`&&N.success(`${n} recovered and rejoined model routing`)}function mn(e){if(!d(e))return;let t=e.payload;r.getState().addMessage({role:`assistant`,content:`Waiting room skipped \`${t.providerId}/${t.model}\`. ${t.lastError}`})}function hn(e){if(!d(e))return;l(e);let t=e.payload;N.warn(`Provider stream event skipped: ${t.eventType}`),r.getState().addMessage({role:`assistant`,content:`Provider stream warning (${t.eventType}): ${t.message}`,isError:!0})}function gn(e){if(!d(e))return;l(e);let t=e.payload,n=t.tools||t.kind||`assistant response`;r.getState().addMessage({role:`assistant`,content:`Loop guard triggered: ${n} repeated ${t.repeatCount} time(s) at iteration ${t.iteration}.`,isError:!0}),N.warn(`Loop guard triggered`)}function _n(e){if(!d(e))return;l(e);let t=e.payload,n=$t(t.task,180);r.getState().addMessage({role:`assistant`,content:`Delegating to \`${t.target}\`: ${n}`}),S.getState().pushAgentTimelineEntry({subagentId:t.target,agentName:t.target,content:n,kind:`status`,iteration:0,ts:new Date().toISOString(),status:`delegating`})}function vn(e){if(!d(e))return;l(e);let t=e.payload,n=Math.max(0,Math.round(t.durationMs/100)/10),i=typeof t.costUsd==`number`&&t.costUsd>0?` · $${t.costUsd.toFixed(4)}`:``,a=`${t.iterations} iteration(s), ${t.toolCalls} tool call(s), ${n}s${i}`;r.getState().addMessage({role:`assistant`,content:[`Delegate ${t.ok?`completed`:`failed`} for \`${t.target}\`${t.status?` (${t.status})`:``}.`,t.summary,a].join(`
17
- `),isError:!t.ok}),S.getState().pushAgentTimelineEntry({subagentId:t.subagentId??t.target,agentName:t.target,content:t.summary,kind:t.ok?`status`:`error`,iteration:t.iterations,ts:new Date().toISOString(),status:t.status??(t.ok?`completed`:`failed`)}),t.ok||N.warn(`Delegate failed: ${t.target}`)}function yn(e){if(!d(e))return;let t=e.payload,n=`${t.tool}: ${t.pattern}`;t.decision===`always`?N.success(`Always allowed ${n}`):N.warn(`Denied ${n}`)}function bn(e){if(!d(e))return;l(e);let t=e.payload,n=t.removedToolUses.length+t.removedToolResults.length+t.removedMessages,i=t.beforeMessages!==void 0&&t.afterMessages!==void 0?` Messages: ${t.beforeMessages} -> ${t.afterMessages}.`:``;r.getState().addMessage({role:`assistant`,content:`Context repaired: removed ${n} orphan protocol item(s).${i} tool_use ${t.removedToolUses.length}, tool_result ${t.removedToolResults.length}.`})}function xn(e){if(!d(e))return;l(e);let t=e.payload;g.getState().setContextUsage(t.tokens,t.maxContext)}function Sn(e){if(!d(e))return;let t=e.payload;g.getState().setEnv({maxContext:t.maxContext})}function Cn(e){if(!d(e))return;let t=e.payload;g.getState().setContextUsage(t.used,t.limit);let n=t.limit>0?Math.round(t.used/t.limit*100):0;N.warn(`Token threshold reached (${n}%)`)}function wn(e){if(!d(e))return;let t=e.payload.model||`<unknown>`;Qt.has(t)||(Qt.add(t),N.warn(`Cost estimate unavailable for ${t}`))}function Tn(e){if(!d(e))return;let t=e.payload;r.getState().addMessage({role:`assistant`,content:`Session ${t.sessionId} is damaged: ${t.detail}`,isError:!0}),N.error(`Session damage detected`)}function En(e){if(!d(e))return;let t=e.payload;r.getState().addMessage({role:`assistant`,content:`Session rewound to prompt #${t.toPromptIndex}. Removed ${t.removedEvents} event(s); reverted ${t.revertedFiles.length} file(s).`}),N.info(`Session rewound`)}function Dn(e){if(!d(e))return;let t=e.payload;N.success(`Checkpoint #${t.promptIndex} written (${t.fileCount} file(s))`)}function On(e){if(!d(e))return;let t=e.payload;m.getState().pushEvent({id:`inflight_${Date.now()}`,kind:`session:start`,timestamp:Date.now(),source:`session`,target:`leader`,label:`In-flight: ${t.context}`,magnitude:1,data:t,raw:e.payload,flowGroup:`session`})}function kn(e){d(e)&&e.payload.reason===`recovered`&&N.info(`Recovered previous in-flight operation`)}function An(){w.getState().setWsConnected(!1)}function jn(e){if(!d(e))return;let t=e.payload;g.getState().setContextModes(t.modes.map(e=>({id:e.id,name:e.name,description:e.description,thresholds:e.thresholds,preserveK:e.preserveK,eliseThreshold:e.eliseThreshold,custom:e.custom}))),g.getState().setEnv({contextMode:t.activeId})}function Mn(e){if(!d(e))return;let t=e.payload;g.getState().setEnv({contextMode:t.id})}function Nn(e){let t=e.payload;ee.getState().setEntries(t.sessions??[],t.error??null)}function Pn(e){if(!d(e))return;let t=e.payload;en(),r.getState().addMessage({role:`assistant`,content:`[${t.phase}] ${t.message}`,isError:!0}),r.getState().setLoading(!1)}var Fn={"context.debug":nn,"key.operation_result":rn,"context.compacted":an,"compaction.failed":on,"provider.response":sn,"iteration.completed":cn,"iteration.limit_reached":ln,"provider.retry":un,"provider.error":dn,"provider.fallback":fn,"provider.status_changed":pn,"provider.active_blocked":mn,"provider.stream_error":hn,"tool.loop_detected":gn,"delegate.started":_n,"delegate.completed":vn,"trust.persisted":yn,"context.repaired":bn,"ctx.pct":xn,"ctx.max_context":Sn,"token.threshold":Cn,"token.cost_estimate_unavailable":wn,"session.end":An,"session.damaged":Tn,"session.rewound":En,"checkpoint.written":Dn,"in_flight.started":On,"in_flight.ended":kn,"context.modes.list":jn,"context.mode.changed":Mn,"sessions.list":Nn,error:Pn};function In(e){let t=e.payload;r.getState().addMessage({role:`assistant`,content:[`🛠️ **Registered tools** (${t.tools.length})`,``,...t.tools.map(e=>`• \`${e.name}\`${e.params.length?` (${e.params.join(`, `)})`:``} — ${e.description||`_no description_`}`)].join(`
18
- `)})}function Ln(e){let t=e.payload,n=t.text?.trim();r.getState().addMessage({role:`assistant`,content:t.error?`Memory read failed: ${t.error}`:n?`🧠 **Memory** \n\n${n}`:`🧠 **Memory**
19
-
20
- _empty — nothing remembered yet_`})}function Rn(e){let t=e.payload;if(t.error){r.getState().addMessage({role:`assistant`,content:`❌ ${t.error}`});return}let n=t.memories??[],i=t.stats,a=[`## 🧠 Super Memory`];if(i){let e=i.byStatus.active??0,t=i.byStatus.stale??0,n=i.byStatus.archived??0;a.push(`**Total:** ${i.total} · Active: ${e} · Stale: ${t} · Archived: ${n} · Graph edges: ${i.edges}`);let r=Object.entries(i.byKind).filter(([,e])=>e>0).map(([e,t])=>`${e}=${t}`).join(`, `);r&&a.push(`**Kinds:** ${r}`),a.push(``)}if(n.length===0)a.push(`_No entries to display._`);else{for(let e of n.slice(0,20)){let t=e.text.length>80?`${e.text.slice(0,78)}…`:e.text,n=e.tags.length>0?e.tags.map(e=>`\`${e}\``).join(` `):``,r=e.createdAt.slice(0,10);a.push(`- \`${e.id.slice(0,12)}…\` [${e.kind}|${e.status}] ${r} — ${t}${n?` ${n}`:``}`)}n.length>20&&a.push(`_…and ${n.length-20} more_`)}a.push(``),a.push("*Use `/memory` in the TUI or build a Memory Manager panel for full editing.*"),r.getState().addMessage({role:`assistant`,content:a.join(`
21
- `)})}function zn(e){let t=e.payload;if(t.error){r.getState().addMessage({role:`assistant`,content:`❌ ${t.error}`});return}if(!t.memory){r.getState().addMessage({role:`assistant`,content:`❌ Memory not found.`});return}let n=t.memory,i=n.tags.length>0?n.tags.map(e=>`\`${e}\``).join(` `):`—`,a=n.anchors.length>0?n.anchors.map(e=>e.path??e.type).join(`, `):`—`,o=[`## 🧠 Memory: \`${n.id}\``,``,`**Text:** ${n.text}`,`**Kind:** \`${n.kind}\` · **Status:** \`${n.status}\``,`**Created:** ${n.createdAt.slice(0,10)} · **Updated:** ${n.updatedAt.slice(0,10)}`,`**Importance:** ${n.importance} · **Confidence:** ${n.confidence}`,`**Tags:** ${i}`,`**Anchors:** ${a}`];r.getState().addMessage({role:`assistant`,content:o.join(`
22
- `)})}function Bn(e){let t=e.payload;if(t.error){r.getState().addMessage({role:`assistant`,content:`❌ Update failed: ${t.error}`});return}if(t.memory){let e=String(t.memory.id??``);r.getState().addMessage({role:`assistant`,content:`✅ Memory \`${e}\` updated.`})}}function Vn(e){let t=e.payload;if(t.error){r.getState().addMessage({role:`assistant`,content:`❌ Failed to create memory: ${t.error}`});return}if(t.memory){let e=String(t.memory.id??``);r.getState().addMessage({role:`assistant`,content:`✅ Memory \`${e}\` created.`})}}function Hn(e){let t=e.payload,n=r.getState();if(t.error){n.addMessage({role:`assistant`,content:`❌ Recover failed: ${t.error}`});return}if(!t.memory)return;let i=String(t.memory.id??``);if(t.noop){let e=t.activeId??i;n.addMessage({role:`assistant`,content:`ℹ️ Nothing to recover — \`${e}\` is already the active version.`});return}n.addMessage({role:`assistant`,content:`✅ Memory \`${i}\` recovered.`})}function Un(e){let t=e.payload,n=r.getState();if(t.error){n.addMessage({role:`assistant`,content:`❌ Candidate resolve failed: ${t.error}`});return}if(!t.candidate)return;let i=t.resolvedAction===`reject`?`rejected`:`accepted`;n.addMessage({role:`assistant`,content:`✅ Candidate \`${t.candidate.id}\` ${i}.`})}function Wn(e){let t=e.payload,n=r.getState();if(t.error){n.addMessage({role:`assistant`,content:`❌ Backfill failed: ${t.error}`});return}let i=`examined ${t.examined??0} · recoverable ${t.recoverable??0} · recovered ${t.recovered??0}`;n.addMessage({role:`assistant`,content:t.dryRun?`ℹ️ Backfill preview (dry-run) — ${i}. Re-run with apply to write.`:`✅ Backfill applied — ${i}.`})}function Gn(e){let t=e.payload;if(!t.enabled){r.getState().addMessage({role:`assistant`,content:`🎯 **Skills**
23
-
24
- _disabled (config.features.skills = false)_`});return}let n=[`🎯 **Skills** (${t.skills.length})`,``,...t.skills.length===0?[`_none registered_`]:t.skills.map(e=>`• \`${e.name}\`${e.version?` v${e.version}`:``} _(${e.source})_ — ${e.description||e.trigger||`_no description_`}`)];t.error&&n.push(``,`⚠ ${t.error}`),r.getState().addMessage({role:`assistant`,content:n.join(`
25
- `)})}function Kn(e){if(!d(e))return;let t=e.payload;r.getState().addMessage({role:`assistant`,content:[`🩺 **Runtime diagnostics**`,``,`**Provider:** \`${t.provider}\` / \`${t.model}\``,`**Mode:** \`${t.mode}\``,`**Session:** \`${t.sessionId}\``,`**CWD:** \`${t.cwd}\``,``,`**Tools:** ${t.tools.count}`,`**Messages:** ${t.messages} · **Todos:** ${t.todos}`,`**Usage:** ${t.usage.input.toLocaleString()} in · ${t.usage.output.toLocaleString()} out${t.usage.cacheRead?` · ${t.usage.cacheRead.toLocaleString()} cache`:``}`,``,`**Features:** memory=${t.features.memory?`✓`:`✗`} · skills=${t.features.skills?`✓`:`✗`} · modelsRegistry=${t.features.modelsRegistry?`✓`:`✗`}`].join(`
26
- `)})}function qn(e){if(!d(e))return;let t=e.payload,n=Math.floor(t.elapsedMs/1e3),i=n<60?`${n}s`:n<3600?`${Math.floor(n/60)}m ${n%60}s`:`${Math.floor(n/3600)}h ${Math.floor(n%3600/60)}m`;r.getState().addMessage({role:`assistant`,content:[`📈 **Session stats**`,``,`**Session:** \`${t.sessionId}\``,`**Provider/Model:** \`${t.provider}\` / \`${t.model}\``,`**Elapsed:** ${i}`,``,`**Usage:** ${t.usage.input.toLocaleString()} in · ${t.usage.output.toLocaleString()} out`,...t.cache&&t.cache.readTokens>0?[`**Cache:** ${t.cache.readTokens.toLocaleString()} read · ${t.cache.writeTokens.toLocaleString()} write · hit ratio ${(t.cache.hitRatio*100).toFixed(1)}%`]:[],`**Cost:** ${t.cost.toFixed(4)}`,``,`**Messages:** ${t.messages} · **Files read:** ${t.readFiles} · **Tools available:** ${t.tools}`,...t.sideEffectCount?[`**Side effects:** ⚠ ${t.sideEffectCount}`]:[]].join(`
27
- `)})}function Jn(e){if(!d(e))return;let t=e.payload;g.getState().setTodos(t.todos??[])}function Yn(e){let t=e.payload;g.getState().setModes(t.modes.map(e=>({id:e.id,name:e.name,description:e.description}))),g.getState().setEnv({mode:t.activeId})}function $(e){ae.getState().handleResult(e.type,e.payload)}var Xn={...De,...Fn,...st,...Je,...It,...Ie,...Wt,"session.start":e=>{tn(e),K()},"specs.list":e=>{let t=e.payload;ie.getState().setSpecs(t.specs??[])},"specs.detail":e=>{ie.getState().setDetail(e.payload)},"sdd.board.snapshot":e=>{O.getState().setSnapshot(e.payload)},"sdd.board.list":e=>{let t=e.payload;O.getState().setBoards(t.boards??[])},"sdd.board.lifecycle_result":e=>{let t=e.payload,n=O.getState();n.setLifecycleResult({...t,at:Date.now()}),n.setDestroying(!1)},"sdd.spec.snapshot":e=>{x.getState().setSnapshot(e.payload)},"sdd.spec.agent_text":e=>{x.getState().setAgentText(e.payload.text??``)},"sdd.spec.error":e=>{x.getState().setError(e.payload.message??`Error`)},"sdd.run.started":e=>{x.getState().setStartedRunId(e.payload.runId??null)},"kanban.list":$,"kanban.get":$,"kanban.create":$,"kanban.duplicate":$,"kanban.update":$,"kanban.delete":$,"kanban.generate":$,"kanban.snapshot":$,"kanban.taskgraph.export":$,"kanban.taskgraph.sync":$,"kanban.task.ready":$,"kanban.task.add":$,"kanban.task.split":$,"kanban.task.merge":$,"kanban.task.update":$,"kanban.task.move":$,"kanban.task.copy":$,"kanban.task.transfer":$,"kanban.task.chain":$,"kanban.task.chain.get":$,"kanban.task.claim":$,"kanban.task.release":$,"kanban.task.metric.add":$,"kanban.task.metric.update":$,"kanban.task.check.add":$,"kanban.task.check.update":$,"kanban.task.note.add":$,"kanban.task.assign":$,"kanban.task.dispatch":$,"kanban.task.remove":$,"kanban.task.get":$,"kanban.column.add":$,"kanban.column.remove":$,"kanban.run.start":$,"kanban.supervisor.status":$,"kanban.supervisor.audit":$,"tools.list":In,"memory.list":Ln,"memory.super.list":Rn,"memory.super.get":zn,"memory.super.update":Bn,"memory.super.remember":Vn,"memory.super.recover":Hn,"memory.super.candidateResolve":Un,"memory.super.backfillRecoverable":Wn,"skills.list":Gn,"diag.get":Kn,"stats.get":qn,side_effects:e=>{if(!d(e))return;let t=e.payload;ne.getState().setSideEffects(t.sideEffects??[])},"todos.updated":Jn,"todos.cleared":e=>{d(e)&&g.getState().setTodos([])},"agent.timeline.message":e=>{if(!d(e))return;let t=e.payload;S.getState().pushAgentTimelineEntry({subagentId:t.subagentId,agentName:t.agentName,content:t.content,kind:t.kind,iteration:t.iteration,ts:t.ts,toolName:t.toolName,toolOk:t.toolOk,costUsd:t.costUsd})},"agent.status_changed":e=>{if(!d(e))return;let t=e.payload;S.getState().pushAgentTimelineEntry({subagentId:t.subagentId,agentName:t.agentName,content:t.summary??t.status,kind:`status`,iteration:0,ts:t.ts,status:t.status})},"tasks.updated":e=>{},"plan.updated":e=>{},"modes.list":Yn,"session.checkpoints":e=>{},"process.list":e=>{},"projects.list":e=>{},"projects.added":e=>{},"projects.selected":e=>{},"tool.disabled":e=>{},"tool.enabled":e=>{},"provider.response":e=>{sn(e)},"tool.progress":e=>{Me(e);let t=v(e),n=_.getState();for(let e of t)n.recordFileEvent(e)},"tool.started":e=>{je(e);let t=v(e);t.length>0&&_.getState().startActivities(t)},"tool.executed":e=>{Ne(e);let t=e.payload;t.id&&_.getState().finishTool(t.id,{durationMs:t.durationMs,ok:t.ok!==!1})},"codemap.tool_started":e=>{l(e);let t=v(e);t.length>0&&_.getState().startActivities(t)},"codemap.tool_executed":e=>{l(e);let t=e.payload;t.id&&_.getState().finishTool(t.id,{durationMs:t.durationMs,ok:t.ok!==!1})},"codemap.file_event":e=>{let t=v(e),n=_.getState();for(let e of t)n.recordFileEvent(e)},"file.saved":e=>{let t=v(e);if(t.length>0){let e=_.getState();for(let n of t)e.recordFileEvent(n)}},"memory.event":e=>{Tt(e);let t=v(e);if(t.length>0){let e=_.getState();for(let n of t)e.recordActivity(n)}}};function Zn(e){let t=[];for(let[n,r]of Object.entries(Xn))r&&t.push(e.on(n,t=>{e.consumeSuppressedChatEcho(n)||r(t)}));return()=>{for(let e of t)e()}}function Qn(){let{autoConnect:e,wsUrl:t}=w(),n=w(e=>e.setWsStatus);(0,P.useEffect)(()=>{if(!e)return;fe();let r=h(t),i=!1,a=r.onStatus(e=>{i||n(e)});r.connect().then(()=>{i||r.getPrefs()}).catch(e=>{i||console.warn(JSON.stringify({level:`warn`,event:`webui.ws_connection_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))});let o=Zn(r);return()=>{i=!0,o(),a()}},[e,t,n])}function $n(){let{wsUrl:e}=w(),t=h(e),n=(0,P.useCallback)((e,n)=>t.isConnected?t.sendMessage(e,n):null,[t]),r=(0,P.useCallback)(()=>t.sendAbort(),[t]),{hideConfirm:i}=o(),a=(0,P.useCallback)((e,n)=>{t.sendConfirm(e,n),i()},[t,i]),s=(0,P.useCallback)((e,n)=>t.switchModel(e,n),[t]),c=(0,P.useCallback)(()=>t.listProviders(),[t]),l=(0,P.useCallback)(e=>t.listProviderModels(e),[t]),u=(0,P.useCallback)(()=>t.listSavedProviders(),[t]),d=(0,P.useCallback)((e,n,r)=>t.addKey(e,n,r),[t]),f=(0,P.useCallback)((e,n,r)=>t.updateKey(e,n,r),[t]),p=(0,P.useCallback)((e,n)=>t.deleteKey(e,n),[t]),m=(0,P.useCallback)((e,n)=>t.setActiveKey(e,n),[t]),g=(0,P.useCallback)((e,n,r,i)=>t.addProvider(e,n,r,i),[t]),_=(0,P.useCallback)(e=>t.removeProvider(e),[t]),v=(0,P.useCallback)(e=>{ee.getState().setLoading(!0),t.listSessions(e)},[t]),y=(0,P.useCallback)(e=>t.deleteSession(e),[t]),b=(0,P.useCallback)((e,n)=>{ee.getState().updateEntryName(e,n),t.renameSession(e,n)},[t]),x=(0,P.useCallback)(e=>t.resumeSessionById(e),[t]),S=(0,P.useCallback)(()=>t.saveSession(),[t]),te=(0,P.useCallback)(e=>t.listTools(e),[t]),C=(0,P.useCallback)(e=>t.listMemory(e),[t]),ne=(0,P.useCallback)(e=>t.listSuperMemories(e),[t]),T=(0,P.useCallback)((e,n)=>t.listSuperMemoriesPage(e,n),[t]),E=(0,P.useCallback)((e,n)=>t.getSuperMemory(e,n),[t]),re=(0,P.useCallback)((e,n,r)=>t.getSuperMemoryGraph(e,n,r),[t]),D=(0,P.useCallback)((e,n,r)=>t.updateSuperMemory(e,n,r),[t]),O=(0,P.useCallback)((e,n)=>t.deleteSuperMemory(e,n),[t]),k=(0,P.useCallback)((e,n)=>t.rememberSuperMemory(e,n),[t]),ie=(0,P.useCallback)((e,n)=>t.findMemoriesForFile(e,n),[t]),A=(0,P.useCallback)((e,n)=>t.recoverSuperMemory(e,n),[t]),j=(0,P.useCallback)((e,n)=>t.resolveMemoryCandidate(e,n),[t]),ae=(0,P.useCallback)((e,n)=>t.backfillRecoverable(e,n),[t]),M=(0,P.useCallback)(e=>t.listSkills(e),[t]),oe=(0,P.useCallback)(e=>t.getDiag(e),[t]),se=(0,P.useCallback)(e=>t.getStats(e),[t]),N=(0,P.useCallback)(()=>t.getPlan(),[t]),ce=(0,P.useCallback)(()=>t.listModes(),[t]),F=(0,P.useCallback)(e=>t.switchMode(e),[t]),le=(0,P.useCallback)(()=>t.listContextModes(),[t]),ue=(0,P.useCallback)(e=>t.switchContextMode(e),[t]),de=(0,P.useCallback)(e=>t.createContextMode(e),[t]),I=(0,P.useCallback)((e,n)=>t.updateContextMode(e,n),[t]),L=(0,P.useCallback)(e=>t.deleteContextMode(e),[t]),R=(0,P.useCallback)(()=>t.repairContext(),[t]),fe=(0,P.useCallback)((e,n)=>t.refineModel(e,n),[t]),z=(0,P.useCallback)(e=>t.switchAutonomy(e),[t]),pe=(0,P.useCallback)(e=>t.updatePrefs(e),[t]);return{client:t,sendMessage:n,sendAbort:r,sendConfirm:a,switchModel:s,listProviders:c,listProviderModels:l,listSavedProviders:u,addKey:d,updateKey:f,deleteKey:p,setActiveKey:m,addProvider:g,removeProvider:_,listSessions:v,deleteSession:y,renameSession:b,resumeSession:x,saveSession:S,listTools:te,listMemory:C,listSuperMemories:ne,listSuperMemoriesPage:T,getSuperMemory:E,getSuperMemoryGraph:re,updateSuperMemory:D,deleteSuperMemory:O,rememberSuperMemory:k,findMemoriesForFile:ie,recoverSuperMemory:A,resolveMemoryCandidate:j,backfillRecoverable:ae,listSkills:M,getDiag:oe,getStats:se,getPlan:N,listModes:ce,switchMode:F,listContextModes:le,switchContextMode:ue,createContextMode:de,updateContextMode:I,deleteContextMode:L,repairContext:R,toggleGoalAutonomous:(0,P.useCallback)(e=>{t.send({type:`goal.toggleAutonomous`,payload:{autonomous:e}})},[t]),startGoal:(0,P.useCallback)((e,n,r=!0)=>{t.send({type:`goal.start`,payload:{title:e,phases:n,autonomous:r}})},[t]),pauseGoal:(0,P.useCallback)(()=>{t.send({type:`goal.pause`,payload:{}})},[t]),resumeGoal:(0,P.useCallback)(()=>{t.send({type:`goal.resume`,payload:{}})},[t]),stopGoal:(0,P.useCallback)(()=>{t.send({type:`goal.stop`,payload:{}})},[t]),selectGoal:(0,P.useCallback)(e=>{t.send({type:`goal.selectPhase`,payload:{phaseId:e}})},[t]),switchAutonomy:z,updatePrefs:pe,refineModel:fe}}export{we as a,Se as c,Y as i,F as l,Qn as n,B as o,pt as r,xe as s,$n as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-QTnfLwEv.js";import{ea as t}from"./vendor-DffL_bim.js";import{n}from"./utils-DEzFewqr.js";import{t as r}from"./session-store-Coiik-Ib.js";function i(e){typeof requestAnimationFrame==`function`?requestAnimationFrame(e):queueMicrotask(e)}var a=new class{pending=new Map;scheduled=!1;push(e,t,n){if(!t)return;let r=this.pending.get(e);r?(r.buffer+=t,r.flush=n):this.pending.set(e,{buffer:t,flush:n}),this.schedule()}schedule(){this.scheduled||(this.scheduled=!0,i(()=>{this.scheduled=!1,this.drain()}))}drain(){if(this.pending.size===0)return;let e=Array.from(this.pending.entries());this.pending.clear();for(let[t,n]of e)n.buffer&&n.flush(t,n.buffer)}drop(e){this.pending.delete(e)}dropAll(){this.pending.clear()}flush(e){let t=this.pending.get(e);t&&(this.pending.delete(e),t.buffer&&t.flush(e,t.buffer))}flushAll(){this.drain()}};function o(e){return{type:`provider.clear_models`,payload:{providerId:e}}}function s(e,t){return{type:`provider.undo_clear`,payload:{providerId:e,previousModels:[...t]}}}function c(e){return{type:`provider.update`,payload:e}}function l(e){return Math.max(0,Math.min(100,Math.round((typeof e==`number`&&Number.isFinite(e)?e:0)*100)))}function u(e,t=!1){if(t&&e.target){if(e.kind===`agent:tool`||e.kind===`tool:executed`||e.kind===`tool:started`)return`tool`;if(e.source===`leader`||e.source===`coordinator`)return`coordinator`;if(e.kind.startsWith(`provider:`))return`provider`;if(e.kind.startsWith(`mailbox:`))return`mailbox`}switch(e.kind){case`provider:call`:case`provider:delta`:case`provider:response`:return`provider`;case`agent:spawned`:case`agent:tool`:case`agent:status`:case`agent:text`:case`agent:ctx`:case`budget:warning`:case`budget:extended`:return`agent`;case`tool:started`:case`tool:executed`:case`tool:progress`:return`tool`;case`mailbox:send`:case`mailbox:deliver`:return`mailbox`;case`collab:event`:return`system`;case`session:start`:case`session:end`:case`iteration:start`:case`iteration:end`:case`eternal:iteration`:case`fleet:snapshot`:return`session`;case`context:compacted`:case`context:repaired`:case`cost:update`:return`system`;case`error`:return`error`;default:return`system`}}function d(e){switch(e){case`provider:call`:case`provider:delta`:case`agent:tool`:case`tool:started`:case`tool:progress`:case`iteration:start`:case`agent:text`:return`streaming`;case`agent:status`:case`iteration:end`:return`completed`;case`error`:return`error`;case`tool:executed`:return`completed`;case`session:end`:return`idle`;default:return`active`}}var f=0;function p(){return`viz_${Date.now()}_${++f}`}function m(e,t){if(e===t)return!0;if(!e||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n){let n=e[r],i=t[r];if(n!==i){if(n==null||i==null||typeof n!=typeof i)return!1;if(typeof n==`object`){if(Array.isArray(n)||Array.isArray(i)||!m(n,i))return!1;continue}return!1}}return!0}var h={provider:`hsl(var(--info))`,agent:`hsl(var(--primary))`,tool:`hsl(var(--warning))`,mailbox:`hsl(var(--success))`,session:`hsl(var(--primary))`,system:`hsl(var(--muted-foreground))`,success:`hsl(var(--success))`,error:`hsl(var(--destructive))`},g={"provider:call":`hsl(var(--info))`,"provider:delta":`hsl(var(--primary))`,"agent:tool":`hsl(var(--warning))`,"mailbox:send":`hsl(var(--success))`,default:`hsl(var(--muted-foreground))`},_=t()((e,t)=>({events:[],toolEvents:[],nodes:new Map,edges:new Map,isActive:!1,maxEvents:2e3,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0},pushEvent:t=>e(e=>{let n={...t,id:t.id??p(),timestamp:t.timestamp||Date.now()},r=[n,...e.events];r.length>e.maxEvents&&(r.length=e.maxEvents);let i=t.kind===`agent:tool`||t.kind===`tool:started`||t.kind===`tool:progress`||t.kind===`tool:executed`?[n,...e.toolEvents].slice(0,600):e.toolEvents,a=Date.now(),o=t.source,s={id:o,kind:u(t),label:t.label,status:d(t.kind),activity:1,color:t.color??h[u(t)],lastSeenAt:a},c=e.nodes.get(o),l=c?{...c,...s}:s,f=!m(c,l),g,_=!1,v;if(t.target){v=t.target;let n={id:v,kind:u(t,!0),label:v,status:d(t.kind),activity:.8,color:t.color??h[u(t,!0)],lastSeenAt:a},r=e.nodes.get(v);g=r?{...r,...n}:n,_=!m(r,g)}let y,b=!1,x;if(t.target&&o){x=`${o}->${t.target}`;let n=e.edges.get(x),r={id:x,source:o,target:t.target,kind:t.kind,label:t.label,intensity:n?Math.min(1,n.intensity+.3):.7,color:t.color??h[u(t)]??h.agent,lastActiveAt:a,totalMagnitude:(n?.totalMagnitude??0)+(t.magnitude??0)};y=n?{...n,...r}:r,b=!m(n,y)}let S=e.nodes,C=e.edges;return(f||_)&&(S=new Map(e.nodes),f&&S.set(o,l),_&&g&&v&&S.set(v,g)),b&&y&&x&&(C=new Map(e.edges),C.set(x,y)),{events:r,toolEvents:i,nodes:S,edges:C}}),upsertNode:t=>e(e=>{let n=new Map(e.nodes),r=n.get(t.id);return n.set(t.id,{...r,...t,lastSeenAt:t.lastSeenAt===void 0?Date.now():t.lastSeenAt}),{nodes:n}}),removeNode:t=>e(e=>{let n=new Map(e.nodes);n.delete(t);let r=new Map(e.edges);for(let[e,n]of r)(n.source===t||n.target===t)&&r.delete(e);return{nodes:n,edges:r}}),upsertEdge:t=>e(e=>{let n=new Map(e.edges),r=n.get(t.id);return n.set(t.id,{...r,...t,lastActiveAt:t.lastActiveAt===void 0?Date.now():t.lastActiveAt,intensity:t.intensity??r?.intensity??.5,color:t.color??g[t.kind]??g.default,totalMagnitude:(r?.totalMagnitude??0)+(t.totalMagnitude??0)}),{edges:n}}),removeEdge:t=>e(e=>{let n=new Map(e.edges);return n.delete(t),{edges:n}}),clear:()=>e({events:[],toolEvents:[],nodes:new Map,edges:new Map,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0}}),setActive:t=>e({isActive:t}),decayActivity:()=>e(e=>{let t=new Map(e.nodes);for(let[e,n]of t)if(n.activity>=.01){let r=n.activity*.92;t.set(e,{...n,activity:r<.01?0:r})}let n=new Map(e.edges);for(let[e,t]of n)if(t.intensity>=.01){let r=t.intensity*.9;n.set(e,{...t,intensity:r<.01?0:r})}return{nodes:t,edges:n}}),prunesStale:t=>e(e=>{let n=Date.now()-t,r=new Map(e.nodes);for(let[e,t]of r)t.lastSeenAt<n&&t.status!==void 0&&t.status!==`active`&&r.delete(e);let i=new Map(e.edges);for(let[e,t]of i)t.lastActiveAt<n&&i.delete(e);return{nodes:r,edges:i,events:e.events.filter(e=>e.timestamp>n)}})}));function v(e,t){switch(e){case`provider.text_delta`:{let e=t.text??``;return{id:p(),kind:`provider:delta`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,60),magnitude:e.length,data:{text:e},color:h.provider,flowGroup:`provider`}}case`provider.response`:{let e=t.usage,n=(e?.input??0)+(e?.output??0);return{id:p(),kind:`provider:response`,timestamp:Date.now(),source:`provider`,target:`leader`,label:`${(e?.input??0).toLocaleString(`en-US`)} in / ${(e?.output??0).toLocaleString(`en-US`)} out`,magnitude:n,data:t,color:h.provider,flowGroup:`provider`}}case`provider.stream_error`:{let e=t.message??`Provider stream error`;return{id:p(),kind:`error`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,80),magnitude:1,data:t,color:h.error,flowGroup:`provider`}}case`tool.started`:{let e=t.name??`tool`;return{id:p(),kind:`tool:started`,timestamp:Date.now(),source:e,target:`filesystem`,label:e,magnitude:1,data:t,color:h.tool,flowGroup:`tool:${e}`}}case`tool.executed`:{let e=t.name??`tool`,n=t.ok??!0;return{id:p(),kind:`tool:executed`,timestamp:Date.now(),source:e,target:`leader`,label:`${e} ${n?`✓`:`✗`} (${t.durationMs??0}ms)`,magnitude:t.durationMs??0,data:t,color:n?h.tool:h.error,flowGroup:`tool:${e}`}}case`tool.progress`:{let e=t.name??`tool`,n=t.event?.text??``;return{id:p(),kind:`tool:progress`,timestamp:Date.now(),source:e,target:`leader`,label:n.slice(0,60)||e,magnitude:n.length,data:t,color:h.tool,flowGroup:`tool:${e}`}}case`codemap.tool_started`:{let e=t.name??`tool`,n=t.agentId??`subagent`;return{id:p(),kind:`tool:started`,timestamp:Date.now(),source:n,target:e,label:e,magnitude:1,data:t,color:h.tool,flowGroup:`agent:${n}`}}case`codemap.tool_executed`:{let e=t.name??`tool`,n=t.agentId??`subagent`,r=t.ok??!0;return{id:p(),kind:`tool:executed`,timestamp:Date.now(),source:n,target:e,label:`${e} ${r?`✓`:`✗`} (${t.durationMs??0}ms)`,magnitude:t.durationMs??0,data:t,color:r?h.tool:h.error,flowGroup:`agent:${n}`}}case`tool.loop_detected`:{let e=t.tools??``,n=t.kind??`loop`;return{id:p(),kind:`error`,timestamp:Date.now(),source:e||n,target:`leader`,label:`${n} loop x${t.repeatCount??0}`,magnitude:t.repeatCount??1,data:t,color:h.error,flowGroup:`tool`}}case`delegate.started`:{let e=t.target??`delegate`,n=t.task??``;return{id:p(),kind:`agent:status`,timestamp:Date.now(),source:`leader`,target:e,label:n.slice(0,80)||`Delegating to ${e}`,magnitude:1,data:t,color:h.agent,flowGroup:`delegate:${e}`}}case`delegate.completed`:{let e=t.subagentId??t.target??`delegate`,n=t.ok??!1;return{id:p(),kind:n?`agent:status`:`error`,timestamp:Date.now(),source:e,target:`leader`,label:(t.summary??t.status??`delegate completed`).slice(0,80),magnitude:t.durationMs??1,data:t,color:n?h.agent:h.error,flowGroup:`delegate:${e}`}}case`subagent.event`:{let e=t.kind,n=t.subagentId??`unknown`,r=t.name??n;switch(e){case`spawned`:return{id:p(),kind:`agent:spawned`,timestamp:Date.now(),source:n,target:`session`,label:`${r} spawned`,magnitude:1,data:t,color:h.agent,flowGroup:`agent:${n}`};case`tool_executed`:{let e=t.toolName??`tool`,r=t.ok??!0;return{id:p(),kind:`agent:tool`,timestamp:Date.now(),source:n,target:e,label:e,magnitude:t.durationMs??0,data:t,color:r?h.tool:h.error,flowGroup:`agent:${n}`}}case`task_completed`:{let e=t.status??`completed`;return{id:p(),kind:`agent:status`,timestamp:Date.now(),source:n,target:`session`,label:`${r} ${e}`,magnitude:1,data:t,color:e===`success`?h.success:h.error,flowGroup:`agent:${n}`}}case`ctx_pct`:return{id:p(),kind:`agent:ctx`,timestamp:Date.now(),source:n,target:`session`,label:`ctx ${l(t.load)}%`,magnitude:t.tokens??0,data:t,color:h.agent,flowGroup:`agent:${n}`};case`iteration_summary`:return{id:p(),kind:`agent:text`,timestamp:Date.now(),source:n,target:`session`,label:(t.partialText??``).slice(0,80)||`iter ${t.iteration??0}`,magnitude:t.costUsd??0,data:t,color:h.agent,flowGroup:`agent:${n}`};case`budget_extended`:return{id:p(),kind:`budget:extended`,timestamp:Date.now(),source:n,target:`session`,label:`${r} extended budget`,magnitude:t.totalExtensions??1,data:t,color:h.tool,flowGroup:`agent:${n}`};case`budget_warning`:return{id:p(),kind:`budget:warning`,timestamp:Date.now(),source:n,target:`session`,label:`${r} hit ${t.budgetKind??`budget`} ${t.used??0}/${t.limit??0}`,magnitude:t.used??1,data:t,color:h.error,flowGroup:`agent:${n}`}}return null}case`mailbox.event`:{let e=t.event,n=t.from??`?`,r=t.to??`?`,i=t.subject??``,a=e===`mailbox.sent`;return{id:p(),kind:a?`mailbox:send`:`mailbox:deliver`,timestamp:Date.now(),source:n,target:r,label:i||(a?`→ ${r}`:`← ${n}`),magnitude:1,data:t,color:h.mailbox,flowGroup:`mailbox`}}case`iteration.started`:{let e=t.index??0;return{id:p(),kind:`iteration:start`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e}`,magnitude:e,data:t,color:h.agent,flowGroup:`iteration`}}case`iteration.completed`:{let e=t.index??0;return{id:p(),kind:`iteration:end`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e} done`,magnitude:e,data:t,color:h.session,flowGroup:`iteration`}}case`ctx.pct`:{let e=t.tokens??0;return{id:p(),kind:`agent:ctx`,timestamp:Date.now(),source:`leader`,target:`session`,label:`ctx ${l(t.load)}%`,magnitude:e,data:t,color:h.agent,flowGroup:`leader`}}case`error`:{let e=t.message??`Error`;return{id:p(),kind:`error`,timestamp:Date.now(),source:t.phase??`system`,target:`session`,label:e,magnitude:1,data:t,color:h.error,flowGroup:`error`}}case`context.compacted`:return{id:p(),kind:`context:compacted`,timestamp:Date.now(),source:`system`,target:`session`,label:`Compacted: ${(t.saved??0).toLocaleString(`en-US`)} tokens`,magnitude:t.saved??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`compaction.failed`:{let e=t.message??`Compaction failed`;return{id:p(),kind:`error`,timestamp:Date.now(),source:`compactor`,target:`session`,label:e.slice(0,80),magnitude:t.tokens??1,data:t,color:h.error,flowGroup:`context`}}case`context.repaired`:return{id:p(),kind:`context:repaired`,timestamp:Date.now(),source:`system`,target:`session`,label:`Repaired: ${t.removedMessages??0} msgs`,magnitude:t.removedMessages??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`session.start`:{let e=t.sessionId??`?`,n=t.projectName??``;return{id:p(),kind:`session:start`,timestamp:Date.now(),source:`session`,target:`leader`,label:n||e.slice(0,12),magnitude:1,data:t,color:h.session,flowGroup:`session`}}case`sessions.status_update`:{let e=t.sessions??[];return{id:p(),kind:`fleet:snapshot`,timestamp:Date.now(),source:`system`,target:`session`,label:`${e.length} session(s)`,magnitude:e.length,data:t,color:h.system,flowGroup:`fleet`}}default:return null}}function y(e){let t=e.payload?.sessionId,n=r.getState().session?.id;return!t||!n||t===n}function b(e){let t=v(e.type,e.payload);t&&(_.getState().pushEvent(t),_.getState().setActive(!0))}function x(e,t,n){let r=e.payload??{};for(let[e,n]of Object.entries(t)){let t=r[e];if(!S(t,n))return null}if(n)for(let[e,t]of Object.entries(n)){let n=r[e];if(n!=null&&!S(n,t))return null}return r}function S(e,t){switch(t){case`string`:return typeof e==`string`;case`number`:return typeof e==`number`;case`boolean`:return typeof e==`boolean`;case`object`:return typeof e==`object`&&!!e&&!Array.isArray(e);case`array`:return Array.isArray(e);default:return!1}}function C(e){try{return new URL(e).searchParams.get(`token`)}catch{return null}}function w(){if(typeof window>`u`||!window.location)return null;try{let e=window.location.search??``;return new URLSearchParams(e).get(`token`)}catch{return null}}function T(e){try{let t=new URL(e);return t.searchParams.delete(`token`),t.toString()}catch{return e}}function E(){if(!(typeof window>`u`||!window.location||!window.history?.replaceState))try{let e=window.location.href;if(!e)return;let t=new URL(e);if(!t.searchParams.has(`token`))return;t.searchParams.delete(`token`),window.history.replaceState(window.history.state,document.title,t.toString())}catch{}}var D=3457;function O(){if(typeof document>`u`)return D;let e=document.querySelector(`meta[name="wrongstack-ws-port"]`)?.getAttribute(`content`),t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0&&t<65536?t:D}function k(){if(typeof document>`u`)return null;let e=document.querySelector(`meta[name="wrongstack-ws-url"]`)?.getAttribute(`content`)?.trim();if(!e)return null;try{let t=new URL(e);if(t.protocol!==`ws:`&&t.protocol!==`wss:`)return null;let n=w();return n&&!t.searchParams.has(`token`)&&t.searchParams.set(`token`,n),t.toString()}catch{return null}}function A(){let e=k();if(e)return e;let t=O();if(typeof window>`u`||!window.location?.hostname)return`ws://127.0.0.1:${t}`;let n=window.location.protocol===`https:`?`wss`:`ws`,r=window.location.hostname.toLowerCase(),i=w(),a=i?`?token=${encodeURIComponent(i)}`:``;return r===`localhost`||r===`127.0.0.1`||r===`[::1]`||r===`::1`?`${n}://127.0.0.1:${t}${a}`:`${n}://${window.location.hostname}:${t}${a}`}function j(){if(typeof window>`u`||!window.location?.hostname)return`http://127.0.0.1:3456`;let e=window.location.protocol===`https:`?`https`:`http`,t=window.location.hostname.toLowerCase(),n=window.location.port?`:${window.location.port}`:``;return t===`localhost`||t===`127.0.0.1`||t===`[::1]`||t===`::1`?`${e}://127.0.0.1${n}`:`${e}://${window.location.hostname}${n}`}var M=e({WrongStackWebSocketClient:()=>I,getWSClient:()=>R}),N={"context.debug":`context.debug`,"diag.get":`diag.get`,"memory.list":`memory.list`,"memory.super.get":`memory.super.get`,"memory.super.graph":`memory.super.graph`,"memory.super.list":`memory.super.list`,"memory.super.listPage":`memory.super.listPage`,"memory.super.remember":`memory.super.remember`,"memory.super.update":`memory.super.update`,"skills.list":`skills.list`,"stats.get":`stats.get`,"tools.list":`tools.list`},P=3e4;function F(e){try{let t=new URL(e),n=new URL(j());return t.hostname===n.hostname}catch{return!0}}var I=class e{ws=null;url;handlers=new Map;reconnectAttempts=0;maxReconnectAttempts=10;reconnectDelay=1e3;shouldReconnect=!0;reconnectTimer=null;connectPromise=null;socketGeneration=0;messageQueue=[];static MAX_QUEUED_MESSAGES=1e3;pendingConfirms=new Map;sessionId=null;lastErrorText;statusListeners=new Set;currentStatus={state:`connecting`};suppressedChatEchoes=new Map;protocolCapabilities=new Set;supportsCapability(e){return this.protocolCapabilities.has(e)}onStatus(e){return this.statusListeners.add(e),e(this.currentStatus),()=>this.statusListeners.delete(e)}get status(){return this.currentStatus}setStatus(e){this.currentStatus=e;for(let t of this.statusListeners)try{t(e)}catch{}}constructor(e){this.url=e??A()}withSession(e){return this.sessionId?{...e,sessionId:this.sessionId}:e}async ensureAuthCookie(){if(typeof window>`u`)return;if(document.cookie.split(`;`).some(e=>e.trim().startsWith(`ws_token=`))){F(this.url)&&(this.url=T(this.url)),E();return}let e=C(this.url)??w();if(!e)return;let t=j()+`/ws-auth?token=${encodeURIComponent(e)}`;try{let e=await fetch(t,{method:`GET`,credentials:`same-origin`,cache:`no-store`});e.ok?(F(this.url)&&(this.url=T(this.url)),E()):console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_failed`,status:e.status,timestamp:new Date().toISOString()}))}catch(e){console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}}connect(){return this.ws?.readyState===WebSocket.OPEN?Promise.resolve():(this.connectPromise||=this.openSocket().finally(()=>{this.connectPromise=null}),this.connectPromise)}async openSocket(){return await this.ensureAuthCookie(),new Promise((e,t)=>{if(this.ws?.readyState===WebSocket.OPEN){e();return}this.setStatus({state:`connecting`});let n=++this.socketGeneration;try{let r=new WebSocket(this.url);this.ws=r,r.binaryType=`arraybuffer`;let i=setTimeout(()=>{if(this.ws===r){try{r.close()}catch{}this.ws===r&&(this.ws=null)}this.lastErrorText=`Connection timeout`,t(Error(`Connection timeout`)),s()},3e4),a=!1,o=!1,s=()=>{o||(o=!0,this.attemptReconnect())};r.onopen=()=>{this.socketGeneration===n&&(clearTimeout(i),a=!0,this.reconnectAttempts=0,this.lastErrorText=void 0,this.setStatus({state:`open`}),this.flushMessageQueue(),e())},r.onmessage=e=>{if(this.socketGeneration===n)try{let t=JSON.parse(e.data);this.handleMessage(t)}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.message_parse_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},r.onerror=e=>{this.socketGeneration===n&&(console.error(JSON.stringify({level:`error`,event:`ws_client.error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()})),this.lastErrorText=`Connection error (see browser devtools)`,a||(clearTimeout(i),t(Error(this.lastErrorText)),s()))},r.onclose=e=>{if(this.socketGeneration===n){if(!a){clearTimeout(i);let n=e.reason||`Closed with code ${e.code}`;this.lastErrorText=n,t(Error(n)),s();return}e.reason&&!this.lastErrorText?this.lastErrorText=`${e.reason} (code ${e.code})`:!this.lastErrorText&&e.code!==1e3&&(this.lastErrorText=`Closed with code ${e.code}`),this.attemptReconnect()}}}catch(e){if(this.socketGeneration!==n)return;this.lastErrorText=e instanceof Error?e.message:String(e),this.setStatus({state:`closed`,error:this.lastErrorText}),t(e)}})}attemptReconnect(){if(!this.shouldReconnect||this.reconnectAttempts>=this.maxReconnectAttempts){this.reconnectTimer=null,this.setStatus({state:`closed`,error:this.lastErrorText??`Disconnected`});return}this.reconnectAttempts++;let e=Math.min(this.reconnectDelay*2**(this.reconnectAttempts-1),3e4),t=Date.now()+e;this.setStatus({state:`reconnecting`,attempt:this.reconnectAttempts,nextRetryAt:t,lastError:this.lastErrorText}),this.reconnectTimer=setTimeout(async()=>{if(this.reconnectTimer=null,this.shouldReconnect)try{await this.connect()}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},e)}retryNow(){this.currentStatus.state!==`open`&&(this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.reconnectAttempts=0,this.connect().catch(e=>console.warn(JSON.stringify({level:`warn`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))))}flushMessageQueue(){for(;this.messageQueue.length>0;){let e=this.messageQueue.shift();e&&this.send(e)}}handleMessage(e){if(e.type===`tool.confirm_needed`){let t=e.payload;this.pendingConfirms.set(t.id,{}),this.emit(e);return}if(e.type===`session.start`){let t=e.payload;this.sessionId=t.sessionId,this.protocolCapabilities=new Set(t.protocolCapabilities??[])}this.emit(e)}emit(e){let t=this.handlers.get(e.type);if(t)for(let n of t)try{n(e)}catch(t){console.error(JSON.stringify({level:`error`,event:`ws_client.handler_error`,messageType:e.type,message:t instanceof Error?t.message:String(t),timestamp:new Date().toISOString()}))}}send(t,n={}){if(n.echoToChat===!1){let e=N[t.type];if(e){let t=this.suppressedChatEchoes.get(e)??[];t.push(Date.now()+P),this.suppressedChatEchoes.set(e,t)}}if((t.type===`context.clear`||t.type===`session.new`||t.type===`session.resume`)&&a.dropAll(),this.ws?.readyState===WebSocket.OPEN)this.ws.send(JSON.stringify(t));else{if(this.messageQueue.length>=e.MAX_QUEUED_MESSAGES){let t=this.messageQueue.shift();t&&console.warn(JSON.stringify({level:`warn`,event:`ws_client.message_queue_full`,cap:e.MAX_QUEUED_MESSAGES,droppedType:t.type,timestamp:new Date().toISOString()}))}this.messageQueue.push(t)}}consumeSuppressedChatEcho(e){let t=this.suppressedChatEchoes.get(e);if(!t)return!1;let n=Date.now();for(;t.length>0&&t[0]<=n;)t.shift();return t.length===0?(this.suppressedChatEchoes.delete(e),!1):(t.shift(),t.length===0&&this.suppressedChatEchoes.delete(e),!0)}on(e,t){let n=this.handlers.get(e);return n||(n=new Set,this.handlers.set(e,n)),n.add(t),()=>n?.delete(t)}off(e,t){this.handlers.get(e)?.delete(t)}sendMessage(e,t){let r=`msg_${Date.now()}_${n().slice(0,8)}`;return this.send({type:`user_message`,payload:this.withSession({id:r,content:e,timestamp:Date.now(),...t&&t.length>0?{images:t}:{}})}),r}sendAbort(){this.send({type:`abort`,payload:this.withSession({})})}getGitInfo(){this.send({type:`git.info`})}getGitChanges(){this.send({type:`git.changes`})}getGitDiff(e){this.send({type:`git.diff`,payload:{path:e}})}sendConfirm(e,t){this.pendingConfirms.has(e)&&this.pendingConfirms.delete(e),this.send({type:`tool.confirm_result`,payload:this.withSession({id:e,decision:t})})}switchModel(e,t){this.send({type:`model.switch`,payload:{provider:e,model:t}})}newSession(){this.send({type:`session.new`,payload:this.withSession({})})}listProviders(){this.send({type:`providers.list`})}listProviderModels(e){this.send({type:`provider.models`,payload:{providerId:e}})}listSavedProviders(){this.send({type:`providers.saved`})}addKey(e,t,n){this.send({type:`key.add`,payload:{providerId:e,label:t,apiKey:n}})}updateKey(e,t,n){this.send({type:`key.update`,payload:{providerId:e,label:t,apiKey:n}})}deleteKey(e,t){this.send({type:`key.delete`,payload:{providerId:e,label:t}})}setActiveKey(e,t){this.send({type:`key.set_active`,payload:{providerId:e,label:t}})}addProvider(e,t,n,r){this.send({type:`provider.add`,payload:{id:e,family:t,baseUrl:n,apiKey:r}})}removeProvider(e){this.send({type:`provider.remove`,payload:{providerId:e}})}startOAuth(e,t){this.send({type:`auth.oauth.start`,payload:t?{kind:e,providerId:t}:{kind:e}})}submitOAuthCode(e,t){this.send({type:`auth.oauth.code`,payload:{kind:e,input:t}})}cancelOAuth(e){this.send({type:`auth.oauth.cancel`,payload:{kind:e}})}probeProvider(e,t){this.send({type:`provider.probe`,payload:t===void 0?{providerId:e}:{providerId:e,timeoutMs:t}})}clearProviderModels(e){this.send(o(e))}undoProviderClear(e,t){this.send(s(e,t))}updateProvider(e){this.send(c(e))}clearContext(){this.send({type:`context.clear`,payload:this.withSession({})})}compactContext(e=!1){this.send({type:`context.compact`,payload:this.withSession({aggressive:e})})}repairContext(){this.send({type:`context.repair`,payload:this.withSession({})})}debugContext(e){this.send({type:`context.debug`,payload:this.withSession({})},e)}listContextModes(){this.send({type:`context.modes.list`,payload:this.withSession({})})}switchContextMode(e){this.send({type:`context.mode.switch`,payload:this.withSession({id:e})})}createContextMode(e){this.send({type:`context.mode.create`,payload:this.withSession(e)})}updateContextMode(e,t){this.send({type:`context.mode.update`,payload:this.withSession({id:e,...t})})}deleteContextMode(e){this.send({type:`context.mode.delete`,payload:this.withSession({id:e})})}switchAutonomy(e){this.send({type:`autonomy.switch`,payload:{mode:e}})}updatePrefs(e){this.send({type:`prefs.update`,payload:e})}getPrefs(){this.send({type:`prefs.get`})}listTools(e){this.send({type:`tools.list`},e)}listMemory(e){this.send({type:`memory.list`},e)}listSuperMemories(e){this.send({type:`memory.super.list`},e)}listSuperMemoriesPage(e,t){this.send({type:`memory.super.listPage`,payload:{...e}},t)}getSuperMemory(e,t){this.send({type:`memory.super.get`,payload:{id:e}},t)}getSuperMemoryGraph(e,t,n){this.send({type:`memory.super.graph`,payload:{query:e,...t}},n)}updateSuperMemory(e,t,n){this.send({type:`memory.super.update`,payload:{id:e,...t}},n)}deleteSuperMemory(e,t){this.send({type:`memory.super.delete`,payload:{id:e,reason:t}})}rememberSuperMemory(e,t){this.send({type:`memory.super.remember`,payload:e},t)}findMemoriesForFile(e,t){this.send({type:`memory.super.forFile`,payload:e},t)}recoverSuperMemory(e,t){this.send({type:`memory.super.recover`,payload:e},t)}resolveMemoryCandidate(e,t){this.send({type:`memory.super.candidateResolve`,payload:e},t)}backfillRecoverable(e,t){this.send({type:`memory.super.backfillRecoverable`,payload:e},t)}listMcpServers(){this.send({type:`mcp.list`})}addMcpServer(e){this.send({type:`mcp.add`,payload:e})}removeMcpServer(e){this.send({type:`mcp.remove`,payload:{name:e}})}updateMcpServer(e){this.send({type:`mcp.update`,payload:e})}wakeMcpServer(e){this.send({type:`mcp.wake`,payload:{name:e}})}sleepMcpServer(e){this.send({type:`mcp.sleep`,payload:{name:e}})}discoverMcpServer(e){this.send({type:`mcp.discover`,payload:{name:e}})}listMcpResources(e,t=!1){this.send({type:`mcp.resources`,payload:{name:e,refresh:t}})}listMcpPrompts(e,t=!1){this.send({type:`mcp.prompts`,payload:{name:e,refresh:t}})}readMcpResource(e,t){this.send({type:`mcp.resource.read`,payload:{name:e,uri:t}})}getMcpPrompt(e,t,n){this.send({type:`mcp.prompt.get`,payload:{name:e,prompt:t,...n===void 0?{}:{arguments:n}}})}enableMcpServer(e){this.send({type:`mcp.enable`,payload:{name:e}})}disableMcpServer(e){this.send({type:`mcp.disable`,payload:{name:e}})}restartMcpServer(e){this.send({type:`mcp.restart`,payload:{name:e}})}listSkills(e){this.send({type:`skills.list`},e)}getSkillContent(e,t){this.send({type:`skills.content`,payload:{name:e,source:t}})}installSkill(e,t){this.send({type:`skills.install`,payload:{ref:e,global:t}})}uninstallSkill(e,t){this.send({type:`skills.uninstall`,payload:{name:e,global:t}})}checkForUpdates(e,t){this.send({type:`skills.update`,payload:{name:e,global:t}})}createSkill(e,t,n){this.send({type:`skills.create`,payload:{name:e,description:t,scope:n}})}editSkill(e,t){this.send({type:`skills.edit`,payload:{name:e,body:t}})}exportAllSkills(){this.send({type:`skills.export`})}getDiag(e){this.send({type:`diag.get`,payload:this.withSession({})},e)}getStats(e){this.send({type:`stats.get`,payload:this.withSession({})},e)}saveSession(){this.send({type:`session.save`,payload:this.withSession({})})}resumeSessionById(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}listModes(){this.send({type:`modes.list`})}switchMode(e){this.send({type:`mode.switch`,payload:{id:e}})}listFiles(e,t,n){this.send({type:`files.list`,payload:{query:e,limit:t,path:n}})}requestCompletion(e){this.send({type:`completion.request`,payload:e})}getTodos(){this.send({type:`todos.get`,payload:this.withSession({})})}clearTodos(){this.send({type:`todos.clear`,payload:this.withSession({})})}removeTodo(e){let t=typeof e==`number`?{index:e}:{id:e};this.send({type:`todos.remove`,payload:this.withSession(t)})}updateTodoStatus(e,t){this.send({type:`todo.update`,payload:this.withSession({id:e,status:t})})}getTasks(){this.send({type:`tasks.get`,payload:this.withSession({})})}updateTaskStatus(e,t){this.send({type:`task.update`,payload:this.withSession({id:e,status:t})})}getPlan(){this.send({type:`plan.get`,payload:this.withSession({})})}updatePlanItem(e,t){this.send({type:`plan.item.update`,payload:this.withSession({target:e,status:t})})}listSessions(e=50){this.send({type:`sessions.list`,payload:this.withSession({limit:e})})}deleteSession(e){this.send({type:`session.delete`,payload:{id:e}})}renameSession(e,t){this.send({type:`session.rename`,payload:{id:e,name:t}})}setWorkingDir(e){this.send({type:`working_dir.set`,payload:{path:e}})}resumeSession(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}ping(){this.send({type:`ping`})}refineModel(e,t){this.send({type:`model.refine`,payload:{text:e,...t?.timeoutMs===void 0?{}:{timeoutMs:t.timeoutMs},...t?.provider===void 0?{}:{provider:t.provider},...t?.model===void 0?{}:{model:t.model},...t?.previousRefined===void 0?{}:{previousRefined:t.previousRefined},...t?.previousEnglish===void 0?{}:{previousEnglish:t.previousEnglish},...t?.retryFeedback===void 0?{}:{retryFeedback:t.retryFeedback}}})}disconnect(){this.shouldReconnect=!1,this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.messageQueue.length=0,this.ws?.close(),this.ws=null}get isConnected(){return this.ws?.readyState===WebSocket.OPEN}get currentSessionId(){return this.sessionId}},L=null;function R(e){return L||=new I(e),L}export{b as a,v as c,y as i,a as l,M as n,x as o,A as r,_ as s,R as t};