@wrongstack/webui 0.291.2 → 0.292.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 (162) hide show
  1. package/dist/assets/{AnalyticsDashboard-BBbdycai.js → AnalyticsDashboard-DausPJOP.js} +1 -1
  2. package/dist/assets/AudienceMemoryPanel-di7dxMBb.js +3 -0
  3. package/dist/assets/{ChangesView-Bwb4Qh4n.js → ChangesView-DPfs8VeV.js} +1 -1
  4. package/dist/assets/{ChronicleDashboard-oOlGTsm5.js → ChronicleDashboard-CMkQ7EBt.js} +1 -1
  5. package/dist/assets/CodeEditor-iYG6Q0ag.js +1 -0
  6. package/dist/assets/CodeMap-T1dsXVRH.js +1 -0
  7. package/dist/assets/{ConfirmModal-B9lFAAUO.js → ConfirmModal-Bm9f2Pg9.js} +1 -1
  8. package/dist/assets/CronJobsPanel-CKQw0vat.js +1 -0
  9. package/dist/assets/{DebugDashboard-CCe1PP60.js → DebugDashboard-BeDOPYmE.js} +1 -1
  10. package/dist/assets/DesignGalleryView-DY3atfBB.js +1 -0
  11. package/dist/assets/{GoalView-Ck6Oa8nh.js → GoalView-Dh27cG1z.js} +1 -1
  12. package/dist/assets/KanbanView-DYa0iSlV.js +2 -0
  13. package/dist/assets/{LazyMarkdown-CGMv69IJ.js → LazyMarkdown-C1a0wbAZ.js} +3 -3
  14. package/dist/assets/{MailboxDetailView-Dr3B9nM0.js → MailboxDetailView-DQpxIh_A.js} +1 -1
  15. package/dist/assets/MemoryManager-D1_0SW_m.js +1 -0
  16. package/dist/assets/{ModelPicker-DwoHlu_Q.js → ModelPicker-Cwa4UKNc.js} +1 -1
  17. package/dist/assets/OfficeMapPanel-DTQPdV7a.js +4 -0
  18. package/dist/assets/ProcessMonitor-DjO7eNsN.js +1 -0
  19. package/dist/assets/QueuePanel-lUChp6xi.js +1 -0
  20. package/dist/assets/RefreshDebugView-BNa6ehdH.js +1 -0
  21. package/dist/assets/SddHub-BW7ExYNe.js +2 -0
  22. package/dist/assets/{SessionsDashboard-yrSEaUdc.js → SessionsDashboard-Cf_67b9g.js} +1 -1
  23. package/dist/assets/SetupScreen-fu9Qr5Qj.js +1 -0
  24. package/dist/assets/SkillDetailView-DHcDX_1A.js +3 -0
  25. package/dist/assets/SpecsView-CNqNOKqo.js +1 -0
  26. package/dist/assets/{TechStackView-DPxBWfsU.js → TechStackView-CXE80hAc.js} +1 -1
  27. package/dist/assets/{TerminalPanel-B-BSGITg.js → TerminalPanel-KysALyRz.js} +1 -1
  28. package/dist/assets/{Toaster-CPO2WS96.js → Toaster-B1idXZ-O.js} +1 -1
  29. package/dist/assets/{activity-DX6l7wqU.js → activity-AfUMXtSI.js} +1 -1
  30. package/dist/assets/{activity-CCA6JsEh.js → activity-Bd_pRifE.js} +1 -1
  31. package/dist/assets/{activity-C8JKxa7u.js → activity-Ct_QOdtL.js} +1 -1
  32. package/dist/assets/{activity-B8Lz00d-.js → activity-Cyx4UukM.js} +1 -1
  33. package/dist/assets/{activity-BcdEzklN.js → activity-Dyikq8Zm.js} +1 -1
  34. package/dist/assets/{activity-CqPvl4kb.js → activity-Ukyu3lON.js} +1 -1
  35. package/dist/assets/{activity-5G605qiF.js → activity-gaWDc806.js} +1 -1
  36. package/dist/assets/{button-FFFZxxoZ.js → button-99L74zdE.js} +1 -1
  37. package/dist/assets/chat-store-Cunk1nDr.js +13 -0
  38. package/dist/assets/{codemap-activity-store-CfY_WBuV.js → codemap-activity-store-BIW6YPvC.js} +1 -1
  39. package/dist/assets/{dialog-DWvX4WNX.js → dialog-CNwwBFw3.js} +1 -1
  40. package/dist/assets/{i18n-VQ8IAWEk.js → i18n-DaR2GB_4.js} +2 -2
  41. package/dist/assets/index-BLAy5CKD.js +119 -0
  42. package/dist/assets/index-BlCmdyyZ.css +1 -0
  43. package/dist/assets/{input-BpQGvMAi.js → input-DXjUO_X9.js} +1 -1
  44. package/dist/assets/{mailbox-store-CibW8-D6.js → mailbox-store-Dq1wxCRt.js} +1 -1
  45. package/dist/assets/{pagination-D2oCHj95.js → pagination-Ktuov5iD.js} +1 -1
  46. package/dist/assets/{session-store-BZ4TsTBa.js → session-store-B8icONBU.js} +1 -1
  47. package/dist/assets/{shared-DykO0hB0.js → shared-aSCYBzAV.js} +1 -1
  48. package/dist/assets/stores-JSLvWOQY.js +6 -0
  49. package/dist/assets/ui-store-BepZz9CZ.js +1 -0
  50. package/dist/assets/useWebSocket-CRYUFxmO.js +27 -0
  51. package/dist/assets/{utils-Ca0_D_-X.js → utils-C4qVQ63O.js} +1 -1
  52. package/dist/assets/{vendor-BsMARlcy.js → vendor-Di1mdAi5.js} +27 -27
  53. package/dist/assets/{view-navigation-Dx54K1uS.js → view-navigation-BbHlzAQz.js} +1 -1
  54. package/dist/assets/{ws-client-BOKgdABR.js → ws-client-BWO_PH_X.js} +1 -1
  55. package/dist/components/AgentsMonitor.d.ts.map +1 -1
  56. package/dist/components/ChatInput.d.ts.map +1 -1
  57. package/dist/components/ContextBar.d.ts +14 -4
  58. package/dist/components/ContextBar.d.ts.map +1 -1
  59. package/dist/components/ContextDashboard.d.ts.map +1 -1
  60. package/dist/components/ContextMemoryMonitor.d.ts +2 -0
  61. package/dist/components/ContextMemoryMonitor.d.ts.map +1 -0
  62. package/dist/components/CronJobsPanel.d.ts.map +1 -1
  63. package/dist/components/DesignGalleryView.d.ts.map +1 -1
  64. package/dist/components/FleetMonitor.d.ts +0 -6
  65. package/dist/components/FleetMonitor.d.ts.map +1 -1
  66. package/dist/components/FleetPanel.d.ts.map +1 -1
  67. package/dist/components/GoalPanel.d.ts.map +1 -1
  68. package/dist/components/InspectorPanel.d.ts.map +1 -1
  69. package/dist/components/MemoryManager/MemoryDetail.d.ts +5 -2
  70. package/dist/components/MemoryManager/MemoryDetail.d.ts.map +1 -1
  71. package/dist/components/MemoryManager/MemoryGraph.d.ts +5 -2
  72. package/dist/components/MemoryManager/MemoryGraph.d.ts.map +1 -1
  73. package/dist/components/MemoryManager/MemoryInjectorTrace.d.ts +3 -0
  74. package/dist/components/MemoryManager/MemoryInjectorTrace.d.ts.map +1 -0
  75. package/dist/components/MemoryManager/MemoryLifecycleTrace.d.ts +2 -0
  76. package/dist/components/MemoryManager/MemoryLifecycleTrace.d.ts.map +1 -0
  77. package/dist/components/MemoryManager/index.d.ts.map +1 -1
  78. package/dist/components/MessageBubble/ToolLedgerCard.d.ts +13 -0
  79. package/dist/components/MessageBubble/ToolLedgerCard.d.ts.map +1 -0
  80. package/dist/components/MessageBubble/index.d.ts.map +1 -1
  81. package/dist/components/MessageBubble/utils.d.ts +8 -0
  82. package/dist/components/MessageBubble/utils.d.ts.map +1 -1
  83. package/dist/components/PlanPanel.d.ts.map +1 -1
  84. package/dist/components/ProcessMonitor.d.ts.map +1 -1
  85. package/dist/components/PromptLibraryModal.d.ts.map +1 -1
  86. package/dist/components/ProviderWaitingRoom.d.ts.map +1 -1
  87. package/dist/components/QueuePanel.d.ts.map +1 -1
  88. package/dist/components/RefreshDebugView.d.ts.map +1 -1
  89. package/dist/components/SddBoardView.d.ts.map +1 -1
  90. package/dist/components/SddTaskDrawer.d.ts.map +1 -1
  91. package/dist/components/SettingsPanel/ProviderSection.d.ts.map +1 -1
  92. package/dist/components/SettingsPanel/ToolsSection.d.ts.map +1 -1
  93. package/dist/components/SidePanel/AgentsPanel.d.ts.map +1 -1
  94. package/dist/components/SidePanel/ChangesPanel.d.ts.map +1 -1
  95. package/dist/components/SidePanel/index.d.ts.map +1 -1
  96. package/dist/components/SpecsView.d.ts.map +1 -1
  97. package/dist/components/TasksPanel.d.ts.map +1 -1
  98. package/dist/components/TechStackView/index.d.ts.map +1 -1
  99. package/dist/components/TodosPanel.d.ts.map +1 -1
  100. package/dist/components/WorktreeLanes.d.ts.map +1 -1
  101. package/dist/components/WorktreeOrphans.d.ts.map +1 -1
  102. package/dist/components/activity-bar/index.d.ts.map +1 -1
  103. package/dist/components/agents/AgentDetailSection.d.ts +17 -0
  104. package/dist/components/agents/AgentDetailSection.d.ts.map +1 -0
  105. package/dist/components/agents/AgentRosterCard.d.ts +28 -0
  106. package/dist/components/agents/AgentRosterCard.d.ts.map +1 -0
  107. package/dist/components/agents/FleetSummaryBar.d.ts +19 -0
  108. package/dist/components/agents/FleetSummaryBar.d.ts.map +1 -0
  109. package/dist/components/ui/fleet-agent-row.d.ts +24 -0
  110. package/dist/components/ui/fleet-agent-row.d.ts.map +1 -0
  111. package/dist/hooks/useFleetPolling.d.ts +35 -0
  112. package/dist/hooks/useFleetPolling.d.ts.map +1 -0
  113. package/dist/hooks/useWebSocket.d.ts +4 -0
  114. package/dist/hooks/useWebSocket.d.ts.map +1 -1
  115. package/dist/hooks/ws-handlers/chat-handlers.d.ts.map +1 -1
  116. package/dist/hooks/ws-handlers/misc-handlers.d.ts.map +1 -1
  117. package/dist/hooks/ws-handlers/session-handlers.d.ts.map +1 -1
  118. package/dist/index.css +99 -0
  119. package/dist/index.css.map +3 -3
  120. package/dist/index.html +23 -23
  121. package/dist/index.js +11129 -9610
  122. package/dist/index.js.map +4 -4
  123. package/dist/lib/agent-status.d.ts +61 -0
  124. package/dist/lib/agent-status.d.ts.map +1 -1
  125. package/dist/lib/ws-client.d.ts +4 -0
  126. package/dist/lib/ws-client.d.ts.map +1 -1
  127. package/dist/stores/chat-store.d.ts +21 -0
  128. package/dist/stores/chat-store.d.ts.map +1 -1
  129. package/dist/stores/fleet-store.d.ts +32 -0
  130. package/dist/stores/fleet-store.d.ts.map +1 -1
  131. package/dist/stores/index.d.ts +2 -1
  132. package/dist/stores/index.d.ts.map +1 -1
  133. package/dist/stores/memory-injector-store.d.ts +79 -0
  134. package/dist/stores/memory-injector-store.d.ts.map +1 -0
  135. package/dist/stores/memory-lifecycle-store.d.ts +23 -0
  136. package/dist/stores/memory-lifecycle-store.d.ts.map +1 -0
  137. package/dist/stores/ui-store.d.ts +3 -0
  138. package/dist/stores/ui-store.d.ts.map +1 -1
  139. package/dist/types.d.ts +27 -1
  140. package/dist/types.d.ts.map +1 -1
  141. package/package.json +6 -6
  142. package/dist/assets/AudienceMemoryPanel-BWcCpuCv.js +0 -3
  143. package/dist/assets/CodeEditor-Bt9fqzjU.js +0 -1
  144. package/dist/assets/CodeMap-BhJyDUAh.js +0 -1
  145. package/dist/assets/CronJobsPanel-i2-zcKIC.js +0 -1
  146. package/dist/assets/DesignGalleryView-BDxyVUoW.js +0 -1
  147. package/dist/assets/KanbanView-BSoNz6a-.js +0 -2
  148. package/dist/assets/MemoryManager-BQZeiYDi.js +0 -1
  149. package/dist/assets/OfficeMapPanel-CA-BmADR.js +0 -4
  150. package/dist/assets/ProcessMonitor-7mzC-JTl.js +0 -1
  151. package/dist/assets/QueuePanel-DNccWIKx.js +0 -1
  152. package/dist/assets/RefreshDebugView-2Ockf4po.js +0 -1
  153. package/dist/assets/SddHub-Cg63TJIL.js +0 -2
  154. package/dist/assets/SetupScreen-BFfYTt1L.js +0 -1
  155. package/dist/assets/SkillDetailView-Sqe-T3-x.js +0 -3
  156. package/dist/assets/SpecsView-DFj6_8G5.js +0 -1
  157. package/dist/assets/chat-store-BvxTrNjV.js +0 -13
  158. package/dist/assets/index-CuByAUEC.css +0 -1
  159. package/dist/assets/index-D_QeLLAg.js +0 -119
  160. package/dist/assets/stores-BazbaxhT.js +0 -6
  161. package/dist/assets/ui-store-D_s-_3Y6.js +0 -1
  162. package/dist/assets/useWebSocket-BEkBQAAR.js +0 -27
@@ -1,6 +0,0 @@
1
- import{r as e}from"./chat-store-BvxTrNjV.js";import{Xi as t,Yi as n}from"./vendor-BsMARlcy.js";import"./ui-store-D_s-_3Y6.js";import{r,t as i}from"./ws-client-BOKgdABR.js";import"./session-store-BZ4TsTBa.js";import"./codemap-activity-store-CfY_WBuV.js";import"./mailbox-store-CibW8-D6.js";var a=t()(n(e=>({provider:``,model:``,wsUrl:r(),wsConnected:!1,wsStatus:{state:`connecting`},theme:`system`,autoConnect:!0,soundOnComplete:!1,setProvider:t=>e({provider:t}),setModel:t=>e({model:t}),setConfig:t=>e(t),setTheme:t=>e({theme:t}),setWsConnected:t=>e({wsConnected:t}),setWsStatus:t=>e({wsStatus:t,wsConnected:t.state===`open`}),setSoundOnComplete:t=>e({soundOnComplete:t})}),{name:`wrongstack-config`,partialize:e=>({provider:e.provider,model:e.model,baseUrl:e.baseUrl,apiKey:e.apiKey,theme:e.theme,autoConnect:e.autoConnect,soundOnComplete:e.soundOnComplete}),merge:(e,t)=>({...t,...e,wsUrl:r(),wsConnected:!1,wsStatus:{state:`connecting`}})}));function o(e,t){return t>=100?`danger`:`warning`}function s(e,t){switch(e){case`budget.threshold_reached`:{let e=t,n=e.limit>0?Math.round(e.used/e.limit*100):0;return`${e.subagentId} [${e.kind}] ${n}% (${e.used}/${e.limit})`}case`budget.decision`:{let e=t;return`${e.subagentId} [${e.kind}] → ${e.decision}`}case`consensus.vote_initiated`:{let e=t;return`Vote: "${e.title}" — ${e.eligible.length} voters`}case`consensus.vote_cast`:{let e=t;return`${e.voterId} voted ${e.value}`}case`consensus.vote_resolved`:{let e=t;return`${e.result} — ✅${e.approveCount} ❌${e.rejectCount}`}case`task.pending`:return`Task queued: "${t.description.slice(0,60)}"`;case`task.started`:{let e=t;return`${e.subagentId} started ${e.taskId}`}case`task.completed`:{let e=t;return`Task ${e.taskId} ${e.status} (${e.durationMs}ms)`}case`task.failed`:{let e=t;return`Task ${e.taskId} failed: ${e.error.slice(0,60)}`}case`subagent.budget_extended`:{let e=t;return`${e.subagentId} [${e.kind}] extended → ${e.extendedTo}ms`}default:return e}}var c=200,l=50,u=300,d=200,f=100;function p(e,t,n){if(!(e.size<=t)){if(n)for(let[r,i]of e){if(e.size<=t)break;n(i)&&e.delete(r)}for(let n of e.keys()){if(e.size<=t)break;e.delete(n)}}}var ee=t()(e=>({coordinatorStatus:`idle`,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now(),setCoordinatorStatus:(t,n)=>e(e=>({coordinatorStatus:t,coordinatorMode:n,lastUpdated:Date.now()})),updateCoordinatorStats:t=>e(e=>{let n=new Map(e.subagents);for(let e of t.subagentStatuses??[]){let t=n.get(e.id);n.set(e.id,{id:e.id,name:e.name,role:t?.role??`agent`,status:e.status,currentTask:e.currentTask,budgetLimits:t?.budgetLimits,budgetUsage:t?.budgetUsage,lastSeen:t?.lastSeen??Date.now()})}return p(n,d,e=>e.status===`stopped`),{subagents:n,taskCounts:{pending:t.pending,running:t.inFlight,completed:t.completed,failed:0},lastUpdated:Date.now()}}),updateSubagentBudget:(t,n)=>e(e=>{let r=new Map(e.subagents),i=r.get(t);return r.set(t,{id:t,name:i?.name??t,role:i?.role??`agent`,status:i?.status??`idle`,...i,...n,lastSeen:Date.now()}),p(r,d,e=>e.status===`stopped`),{subagents:r,lastUpdated:Date.now()}}),pushEvent:(t,n,r,i,a)=>e(e=>{let o=n.kind??t,l=(t.includes(`budget`)||t.includes(`threshold`))&&typeof n.limit==`number`&&n.limit>0?Math.round(n.used/n.limit*100):void 0,u=l===void 0?t.includes(`consensus.vote_resolved`)?`info`:t.includes(`consensus.vote_initiated`)?`warning`:`info`:l>=100?`danger`:l>=85?`warning`:`info`;return{events:[{id:`${r}-${t}`,ts:r,type:t,subagentId:i,taskId:a,payload:n,kind:o,level:u,message:s(t,n)},...e.events].slice(0,c),lastUpdated:Date.now()}}),pushConsensusVote:(t,n,r)=>e(e=>{let i=new Map(e.consensusVotes);return i.set(t,{changeId:t,title:n,status:`pending`,eligible:r,votes:[],approveCount:0,rejectCount:0,abstainCount:0,expiresAt:Date.now()+300*1e3}),p(i,f,e=>e.status!==`pending`),{consensusVotes:i,lastUpdated:Date.now()}}),recordConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);if(!o)return{};let s={...o,votes:[...o.votes.filter(e=>e.agentId!==n),{agentId:n,agentName:r,value:i,votedAt:Date.now()}],approveCount:i===`approve`?o.approveCount+1:o.approveCount,rejectCount:i===`reject`?o.rejectCount+1:o.rejectCount,abstainCount:i===`abstain`?o.abstainCount+1:o.abstainCount};return a.set(t,s),{consensusVotes:a,lastUpdated:Date.now()}}),resolveConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);return o?(a.set(t,{...o,status:n,approveCount:r,rejectCount:i,resolvedAt:Date.now()}),{consensusVotes:a,lastUpdated:Date.now()}):{}}),pushTaskPending:(t,n,r)=>e(e=>{let i=new Map(e.tasks);return i.set(t,{id:t,description:n,status:`pending`,priority:r,queuedAt:Date.now()}),p(i,u,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,pending:e.taskCounts.pending+1},lastUpdated:Date.now()}}),startTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i?r.set(t,{...i,status:`running`,subagentId:n,startedAt:Date.now()}):r.set(t,{id:t,description:``,status:`running`,subagentId:n,startedAt:Date.now()}),{tasks:r,taskCounts:{...e.taskCounts,pending:Math.max(0,e.taskCounts.pending-1),running:e.taskCounts.running+1},lastUpdated:Date.now()}}),completeTask:(t,n,r)=>e(e=>{let i=new Map(e.tasks),a=i.get(t);return a&&i.set(t,{...a,status:n,completedAt:Date.now(),durationMs:r}),p(i,u,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),completed:n===`completed`?e.taskCounts.completed+1:e.taskCounts.completed,failed:n===`failed`?e.taskCounts.failed+1:e.taskCounts.failed},lastUpdated:Date.now()}}),failTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i&&r.set(t,{...i,status:`failed`,error:n,completedAt:Date.now()}),p(r,u,e=>e.status===`completed`||e.status===`failed`),{tasks:r,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),failed:e.taskCounts.failed+1},lastUpdated:Date.now()}}),recordBudgetDecision:(t,n,r,i)=>e(e=>{let a=new Map(e.budgetAlerts.reduce((e,r)=>(r.subagentId===t&&r.kind===n||e.set(`${r.subagentId}:${r.kind}`,r),e),new Map)),o=`${t}:${n}`,s=a.get(o);return s&&a.set(o,{...s,decision:r,newLimit:i,level:r===`extend`?`warning`:`danger`}),{budgetAlerts:Array.from(a.values()),lastUpdated:Date.now()}}),recordBudgetAlert:(t,n,r,i)=>e(e=>{let a=`${Date.now()}-${t}-${n}`,s=i>0?Math.round(r/i*100):0;return{budgetAlerts:[{id:a,ts:Date.now(),subagentId:t,kind:n,level:o(n,s),used:r,limit:i,pct:s},...e.budgetAlerts].slice(0,l),lastUpdated:Date.now()}}),recordBudgetExtended:(t,n,r)=>e(e=>{let i=new Map(e.subagents),a=i.get(t);if(a?.budgetLimits){let e={...a.budgetLimits};n===`timeout`&&r&&(e.timeoutMs=r),n===`iterations`&&(e.maxIterations=r),n===`tool_calls`&&(e.maxToolCalls=r),i.set(t,{...a,budgetLimits:e,lastSeen:Date.now()})}return{subagents:i,lastUpdated:Date.now()}}),clear:()=>e({coordinatorStatus:`idle`,coordinatorMode:void 0,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now()})})),m=t()(e=>({snapshot:null,lastFiredAt:{},revision:0,setSnapshot:t=>e(e=>({snapshot:t,revision:e.revision+1})),recordFired:(t,n)=>e(e=>({lastFiredAt:{...e.lastFiredAt,[t]:n},revision:e.revision+1})),clear:()=>e({snapshot:null,lastFiredAt:{},revision:0})}));function h(){return`ref_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function g(e){switch(e.split(`.`).pop()?.toLowerCase()??``){case`ts`:case`tsx`:return`typescript`;case`js`:case`jsx`:return`javascript`;case`json`:return`json`;case`md`:case`mdx`:return`markdown`;case`css`:return`css`;case`scss`:return`scss`;case`html`:case`htm`:return`html`;case`py`:return`python`;case`rs`:return`rust`;case`go`:return`go`;case`rb`:return`ruby`;case`java`:return`java`;case`c`:return`c`;case`cpp`:case`hpp`:return`cpp`;case`h`:return`c`;case`sh`:case`bash`:return`bash`;case`sql`:return`sql`;case`yaml`:case`yml`:return`yaml`;case`toml`:return`toml`;default:return``}}function _(e,t=20,n=2e3){let r=e.split(`
2
- `),i=!1,a=e;return r.length>t&&(a=r.slice(0,t).join(`
3
- `),i=!0),a.length>n&&(a=a.slice(0,n),i=!0),i&&(a=a.replace(/\s+$/,``)+`
4
- …`),a}function te(e,t){if(e.length===0)return``;let n=[];for(let r of e){if(r.kind===`file`){let e=t?.[r.path];if(e){let t=g(r.path),i=t?`\`\`\`${t}`:"```";n.push(`${i}\n// ${r.path} (entire file)\n${_(e)}\n\`\`\``)}else n.push(`@${r.path}`);continue}let e=g(r.path),i=e?`\`\`\`${e}`:"```",a=`// ${r.path}:${r.startLine}-${r.endLine}`,o=r.kind===`snippet`?_(r.content):_(r.preview);n.push(`${i}\n${a}\n${o}\n\`\`\``)}return n.join(`
5
-
6
- `)}var v=t()((e,t)=>({refs:[],addRef:n=>{let r=t();if(n.kind===`file`&&r.refs.find(e=>e.kind===`file`&&e.path===n.path))return;let i={...n,id:h()};e({refs:[...r.refs,i]})},removeRef:t=>{e(e=>({refs:e.refs.filter(e=>e.id!==t)}))},clearRefs:()=>e({refs:[]})})),y=t()((e,t)=>({projectRoot:``,tree:[],openFiles:[],activeFilePath:null,treeLoading:!1,error:null,setTree:(t,n)=>e({projectRoot:t,tree:n,treeLoading:!1,error:null}),openFile:(n,r)=>{let i=t();if(i.openFiles.find(e=>e.path===n)){e({openFiles:i.openFiles.map(e=>e.path===n?{...e,content:r,dirty:!1,savedContent:r}:e),activeFilePath:n});return}e({openFiles:[...i.openFiles,{path:n,content:r,dirty:!1,savedContent:r}],activeFilePath:n})},closeFile:n=>{let r=t(),i=r.openFiles.findIndex(e=>e.path===n);if(i===-1)return;let a=[...r.openFiles];a.splice(i,1);let o=r.activeFilePath;r.activeFilePath===n&&(o=a.length===0?null:i<a.length?a[i].path:a[a.length-1].path),e({openFiles:a,activeFilePath:o})},setActiveFile:t=>e({activeFilePath:t}),updateContent:(t,n)=>{e(e=>({openFiles:e.openFiles.map(e=>e.path===t?{...e,content:n,dirty:n!==e.savedContent}:e)}))},markSaved:t=>{e(e=>({openFiles:e.openFiles.map(e=>e.path===t?{...e,dirty:!1,savedContent:e.content}:e)}))},setTreeLoading:t=>e({treeLoading:t}),setError:t=>e({error:t})})),b=12,x=20,ne=500,S=[];function C(e,t,n){return{id:e,name:t?.trim()||e,sessionId:n,status:`running`,iteration:0,toolCalls:0,costUsd:0,ctxPct:0,ctxTokens:0,maxContext:0,extensions:0,startedAt:Date.now(),toolLog:[],sparklineBins:Array(b).fill(0)}}var re=0;function w(){return`tl_${Date.now()}_${++re}`}function T(e,t){return[t,...e].slice(0,x)}function ie(e){switch(e){case`text`:case`thinking`:case`tool_use`:case`tool_result`:case`error`:case`status`:case`system`:return e;default:return`status`}}function E(e,t){return e.subagentId!==t.subagentId||e.kind!==t.kind||e.iteration!==t.iteration||e.toolName!==t.toolName||e.toolOk!==t.toolOk?!1:e.kind===`text`||e.kind===`thinking`}function D(e,t){let n=e[e.length-1];return n&&E(n,t)?[...e.slice(0,-1),{...n,content:`${n.content}${t.content}`,ts:t.ts}].slice(-1e3):[...e,t].slice(-1e3)}function O(e){return[e[0]+1,...e.slice(0,b-1)]}function k(e){return Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}var A=t()((t,n)=>({agents:new Map,leaderId:void 0,fleetTokensIn:0,fleetTokensOut:0,fleetConcurrency:0,fleetConcurrencyMax:4,eventTimeline:[],agentTimeline:[],agentTranscripts:new Map,pushAgentTimelineEntry:e=>t(t=>{let n={id:`agent_tl_${Date.now()}_${Math.random().toString(36).slice(2,6)}`,...e,kind:ie(e.kind)},r=new Map(t.agentTranscripts);return r.set(n.subagentId,D(r.get(n.subagentId)??[],n)),{agentTimeline:[n,...t.agentTimeline].slice(0,ne),agentTranscripts:r}}),clear:()=>t({agents:new Map,leaderId:void 0,fleetTokensIn:0,fleetTokensOut:0,fleetConcurrency:0,eventTimeline:[],agentTimeline:[],agentTranscripts:new Map}),getAgentsBySession:e=>{let t=[];for(let r of n().agents.values())r.sessionId===e&&t.push(r);return t},getAgentTranscript:e=>n().agentTranscripts.get(e)??S,applyEvent:n=>t(t=>{let r=new Map(t.agents),i=new Map(t.agentTranscripts),a=t.eventTimeline,o=t.leaderId,s=t.fleetTokensIn,c=t.fleetTokensOut;if(n.kind===`session_stopped`&&n.sessionId){let e=new Set;for(let[t,a]of r)a.sessionId===n.sessionId&&(r.delete(t),i.delete(t),e.add(t));return{agents:r,agentTranscripts:i,agentTimeline:t.agentTimeline.filter(t=>!e.has(t.subagentId)),leaderId:void 0,fleetTokensIn:0,fleetTokensOut:0}}if(n.kind===`removed`&&n.subagentId)return r.delete(n.subagentId),i.delete(n.subagentId),{agents:r,agentTranscripts:i,agentTimeline:t.agentTimeline.filter(e=>e.subagentId!==n.subagentId),eventTimeline:t.eventTimeline.filter(e=>e.agentId!==n.subagentId),leaderId:t.leaderId===n.subagentId?void 0:t.leaderId};if(n.kind===`leader_updated`&&n.subagentId){let e=t.leaderId;if(e&&e!==n.subagentId){let t=r.get(e);t&&r.set(e,{...t,isLeader:!1})}o=n.subagentId;let i=r.get(n.subagentId)??C(n.subagentId,n.name,n.sessionId);return r.set(n.subagentId,{...i,isLeader:!0,name:n.name?.trim()||i.name}),a=T(a,{id:w(),kind:`leader_updated`,agentId:n.subagentId,agentName:n.name??o,timestamp:Date.now(),message:`${n.name??n.subagentId} became leader`}),{agents:r,leaderId:o,eventTimeline:a}}if(!n.subagentId)return t;let l=r.get(n.subagentId)??C(n.subagentId,n.name,n.sessionId),u={...l},d=Date.now();switch(n.kind){case`spawned`:u.name=n.name?.trim()||u.name,u.provider=n.provider??u.provider,u.model=n.model??u.model,u.description=n.description??u.description,u.taskId=n.taskId??u.taskId,u.sessionId=n.sessionId??u.sessionId,u.status=`running`,u.sparklineBins=Array(b).fill(0),a=T(a,{id:w(),kind:`spawned`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} spawned`});break;case`task_started`:u.description=n.description??u.description,u.taskId=n.taskId??u.taskId,u.status=`running`,a=T(a,{id:w(),kind:`task_started`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} started: ${n.description??`new task`}`});break;case`tool_executed`:{let e=typeof n.ok!=`boolean`||n.ok,t=typeof n.durationMs==`number`?n.durationMs:0;u.lastTool=n.toolName??u.lastTool,u.toolCalls+=1,u.toolLog=[{name:n.toolName??`unknown`,ok:e,durationMs:t,at:d},...u.toolLog].slice(0,50),u.sparklineBins=O(u.sparklineBins),a=T(a,{id:w(),kind:`tool_executed`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} ${e?`✓`:`✗`} ${n.toolName??`tool`}`,value:t});break}case`iteration_summary`:u.iteration=n.iteration??u.iteration,typeof n.toolCalls==`number`&&(u.toolCalls=n.toolCalls),typeof n.costUsd==`number`&&(u.costUsd=n.costUsd),u.currentTool=n.currentTool??u.currentTool,typeof n.partialText==`string`&&n.partialText&&(u.partialText=n.partialText),u.sparklineBins=O(u.sparklineBins),a=T(a,{id:w(),kind:`iteration_summary`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} iter ${n.iteration??u.iteration} · ${n.currentTool?`${n.currentTool}`:``}`,value:n.costUsd});break;case`budget_warning`:{let e=n.budgetKind??`budget`,t=typeof n.used==`number`?n.used:0,r=typeof n.limit==`number`?n.limit:0;u.budgetWarning={kind:e,used:t,limit:r},a=T(a,{id:w(),kind:`budget_warning`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} hit ${e} budget ${t}/${r}`,value:t});break}case`budget_extended`:u.extensions=n.totalExtensions??u.extensions+1,u.budgetWarning=void 0,a=T(a,{id:w(),kind:`budget_extended`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} extended budget ⚡×${u.extensions}`});break;case`ctx_pct`:u.ctxPct=k(Math.round(Math.max(0,n.load??0)*100)),u.ctxTokens=n.tokens??u.ctxTokens,u.maxContext=n.maxContext??u.maxContext,u.ctxPct>=80&&!u.budgetWarning&&(u.budgetWarning=u.ctxPct>=100?{kind:`hard`,used:u.ctxPct,limit:100}:{kind:`soft`,used:u.ctxPct,limit:100}),typeof n.costUsd==`number`&&(u.costUsd=n.costUsd),typeof n.tokensIn==`number`&&(u.tokensIn=n.tokensIn,s=s-(l.tokensIn??0)+n.tokensIn),typeof n.tokensOut==`number`&&(u.tokensOut=n.tokensOut,c=c-(l.tokensOut??0)+n.tokensOut),a=T(a,{id:w(),kind:`ctx_pct`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} ctx ${u.ctxPct}%`,value:u.ctxPct});break;case`task_completed`:{u.status=n.status===`success`?`completed`:n.status??`completed`,typeof n.iterations==`number`&&(u.iteration=n.iterations),typeof n.toolCalls==`number`&&(u.toolCalls=n.toolCalls),u.error=n.error,u.currentTool=void 0,u.completedAt=d,u.failureReason=n.failureReason??u.failureReason,typeof n.finalText==`string`&&n.finalText&&(u.finalText=e(n.finalText));let t=n.status===`success`?`✓ completed`:n.status===`failed`?`✗ failed${n.failureReason?` (${n.failureReason})`:``}`:n.status===`timeout`?`⏱ timeout${n.failureReason?` (${n.failureReason})`:``}`:`stopped`;a=T(a,{id:w(),kind:`task_completed`,agentId:n.subagentId,agentName:u.name,timestamp:d,message:`${u.name} ${t}`,value:u.costUsd});break}}return r.set(n.subagentId,u),{agents:r,leaderId:o,fleetTokensIn:s,fleetTokensOut:c,eventTimeline:a}})})),j=t()(e=>({files:[],error:null,loadingList:!1,selectedPath:null,diff:null,loadingDiff:!1,setFiles:(t,n)=>e({files:t,error:n,loadingList:!1}),setListLoading:t=>e({loadingList:t}),select:t=>e({selectedPath:t,diff:null,loadingDiff:!!t}),setDiff:t=>e({diff:t,loadingDiff:!1}),setDiffLoading:t=>e({loadingDiff:t}),clear:()=>e({files:[],error:null,selectedPath:null,diff:null,loadingDiff:!1})})),M=t()(e=>({info:null,setInfo:t=>e({info:t}),clear:()=>e({info:null})})),N=t()(e=>({phases:[],activePhaseId:null,overallPercent:0,autonomous:!1,title:null,goal:null,status:`idle`,lastEvent:null,lastError:null,graphs:[],progress:null,setState:t=>e(e=>({phases:t.phases??e.phases,activePhaseId:t.activePhaseId===void 0?e.activePhaseId:t.activePhaseId,overallPercent:t.overallPercent??e.overallPercent,autonomous:t.autonomous??e.autonomous,title:t.title===void 0?e.title:t.title,goal:t.goal===void 0?e.goal:t.goal,status:t.status??e.status,lastEvent:t.lastEvent===void 0?e.lastEvent:t.lastEvent,lastError:t.lastError===void 0?e.lastError:t.lastError,graphs:t.graphs??e.graphs,progress:t.progress===void 0?e.progress:t.progress})),clear:()=>e({phases:[],activePhaseId:null,overallPercent:0,autonomous:!1,title:null,goal:null,status:`idle`,lastEvent:null,lastError:null,graphs:[],progress:null}),hydrateFromServer:e=>{e({type:`goal.list`}),e({type:`goal.state`})}}));function P(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!(typeof t.iteration!=`number`||!Number.isFinite(t.iteration)||t.task!==void 0&&typeof t.task!=`string`||t.status!==void 0&&typeof t.status!=`string`||t.progress!==void 0&&(typeof t.progress!=`number`||!Number.isFinite(t.progress))||t.progressNote!==void 0&&typeof t.progressNote!=`string`||t.timestamp!==void 0&&typeof t.timestamp!=`string`)}function F(e){return!e||typeof e.goal!=`string`||!e.goal.trim()?null:{goal:e.goal,refinedGoal:typeof e.refinedGoal==`string`?e.refinedGoal:void 0,goalState:[`active`,`paused`,`completed`,`failed`,`abandoned`].includes(e.goalState)?e.goalState:`active`,iterations:typeof e.iterations==`number`?e.iterations:0,progress:typeof e.progress==`number`?e.progress:0,progressNote:typeof e.progressNote==`string`?e.progressNote:void 0,progressTrend:e.progressTrend===`accelerating`?`up`:e.progressTrend===`stalling`?`down`:e.progressTrend===`steady`?`stable`:void 0,deliverables:Array.isArray(e.deliverables)?e.deliverables.map((e,t)=>typeof e==`string`?{id:`d${t}`,text:e,status:/^\[[x✓]\]|✅|\(done\)/i.test(e)?`done`:`pending`}:e):void 0,journal:Array.isArray(e.journal)?e.journal.filter(P):void 0,lastTask:typeof e.lastTask==`string`?e.lastTask:void 0,lastStatus:typeof e.lastStatus==`string`?e.lastStatus:void 0}}var I=t()(e=>({goal:null,setGoal:t=>e({goal:F(t)}),clear:()=>e({goal:null}),appendJournalEntry:t=>e(e=>e.goal?{goal:{...e.goal,iterations:Math.max(e.goal.iterations,t.iteration),lastTask:t.task??e.goal.lastTask,lastStatus:t.status??e.goal.lastStatus,journal:[t,...e.goal.journal??[]].slice(0,200)}}:e),refresh:()=>{try{i()?.send?.({type:`goal-state.get`})}catch{}}})),L=t()(e=>({entries:[],loading:!1,error:null,setEntries:(t,n=null)=>e({entries:t,error:n,loading:!1}),setLoading:t=>e({loading:t}),removeEntry:t=>e(e=>({entries:e.entries.filter(e=>e.id!==t)})),updateEntryName:(t,n)=>e(e=>({entries:e.entries.map(e=>{if(e.id!==t)return e;let r=n.trim();if(!r){let{name:t,...n}=e;return n}return{...e,name:r}})})),clearHistory:()=>e({entries:[]})})),R=t()((e,t)=>({boards:[],boardTotal:0,activeBoardTotal:0,orphanedBoardTotal:0,activeBoardId:null,activeBoard:null,loading:!1,error:null,queueHealth:null,supervisorSnapshot:null,setLoading:t=>e({loading:t}),setActiveBoardId:t=>e({activeBoardId:t,queueHealth:null,supervisorSnapshot:null}),setError:t=>e({error:t}),setQueueHealth:t=>e({queueHealth:t}),handleResult:(n,r)=>{if(!r.success){e({loading:!1,error:r.error??`Kanban request failed`});return}let i=r.data;if((n===`kanban.supervisor.status`||n===`kanban.supervisor.audit`)&&i){e({supervisorSnapshot:i,loading:!1,error:null});return}if(n===`kanban.health`&&r.data){e({queueHealth:r.data,loading:!1,error:null});return}if(n===`kanban.list`){let t=U(i)?i:null,n=t?t.items:Array.isArray(i)?i:[];e({boards:n,boardTotal:t?.total??n.length,activeBoardTotal:t?.activeTotal??n.filter(e=>W(e)).length,orphanedBoardTotal:t?.orphanedTotal??n.filter(e=>!W(e)).length,loading:!1,error:null});return}if(n===`kanban.delete`){let n=t().activeBoardId,r=i,a=r?.removed===!0,o=r?.boardId??n;e(e=>({boards:a?e.boards.filter(e=>e.id!==o):e.boards,activeBoardId:a&&e.activeBoardId===o?null:e.activeBoardId,activeBoard:a&&e.activeBoard?.id===o?null:e.activeBoard,loading:!1,error:null}));return}if(n===`kanban.task.remove`){let t=i;e(e=>{let n=z(t?.board)?t.board:null;if(n&&e.activeBoardId===n.id)return{boards:q(e.boards,K(n)),activeBoard:n,loading:!1,error:null};let r=t?.boardId,i=t?.taskId,a=t?.removed===!0&&i&&e.activeBoard&&(!r||e.activeBoard.id===r)?{...e.activeBoard,tasks:e.activeBoard.tasks.filter(e=>e.id!==i)}:e.activeBoard;return{activeBoard:a,boards:a?q(e.boards,K(a)):e.boards,loading:!1,error:null}});return}if(n===`kanban.column.remove`){let t=i;if(z(t?.board)){let n=t.board;e(e=>({boards:q(e.boards,K(n)),activeBoard:e.activeBoardId===n.id?n:e.activeBoard,loading:!1,error:null}));return}}if(H(i)){let t=i.board;e(e=>({boards:q(e.boards,K(t)),activeBoard:e.activeBoardId===t.id?t:e.activeBoard,loading:!1,error:null}));return}if(V(i)){e(e=>{if(e.activeBoard&&e.activeBoard.id===i.boardId){let t=J(e.activeBoard,i.task);return{boards:q(e.boards,K(t)),activeBoard:t,loading:!1,error:null}}return{loading:!1,error:null}});return}if(z(i)){let t=K(i);if(n===`kanban.get`){e(e=>({boards:q(e.boards,t),activeBoard:e.activeBoardId===i.id?i:e.activeBoard,loading:!1,error:null}));return}e(e=>({boards:q(e.boards,t),activeBoardId:i.id,activeBoard:i,loading:!1,error:null}));return}if(B(i)){e(e=>({...e.activeBoard?(()=>{let t=J(e.activeBoard,i);return{activeBoard:t,boards:q(e.boards,K(t))}})():{activeBoard:e.activeBoard},loading:!1,error:null}));return}if(Array.isArray(i)&&i.every(G)){e(e=>({...e.activeBoard?(()=>{let t={...e.activeBoard,columns:i};return{activeBoard:t,boards:q(e.boards,K(t))}})():{activeBoard:e.activeBoard},loading:!1,error:null}));return}e({loading:!1,error:null})}}));function z(e){return!!e&&typeof e==`object`&&Array.isArray(e.columns)&&Array.isArray(e.tasks)}function B(e){return!!e&&typeof e==`object`&&typeof e.title==`string`}function V(e){return!!e&&typeof e==`object`&&typeof e.boardId==`string`&&B(e.task)}function H(e){return!!e&&typeof e==`object`&&z(e.board)}function U(e){return!!e&&typeof e==`object`&&Array.isArray(e.items)&&typeof e.total==`number`}function W(e){return e.presence?.some(e=>e.active)===!0}function G(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function K(e){return{id:e.id,title:e.title,description:e.description,tags:e.tags,presence:e.presence,createdAt:e.createdAt,updatedAt:e.updatedAt,columnCount:e.columns.length,taskCount:e.tasks.length,completedTaskCount:e.tasks.filter(e=>e.status===`completed`).length}}function q(e,t){return[t,...e.filter(e=>e.id!==t.id)].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt))}function J(e,t){let n=e.tasks.some(e=>e.id===t.id)?e.tasks.map(e=>e.id===t.id?t:e):[...e.tasks,t];return{...e,tasks:n}}function Y(e){switch(e){case`tui`:return`tui`;case`cli`:case`repl`:return`repl`;case`webui`:return`webui`;default:return`webui`}}function ae(e){let t={tui:0,webui:0,repl:0},n=0,r=0,i={toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0};for(let a of e){t[Y(a.clientType)]+=1;for(let e of a.agents)n+=1,(e.status===`running`||e.status===`streaming`)&&(r+=1),i.toolCalls+=e.toolCalls??0,i.costUsd+=e.costUsd??0,i.tokensIn+=e.tokensIn??0,i.tokensOut+=e.tokensOut??0}return{clientCounts:t,totalAgents:n,activeAgents:r,aggregate:i}}function oe(e){if(e!==void 0)return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function se(e){return e.map(e=>({...e,agents:e.agents.map(e=>({...e,ctxPct:oe(e.ctxPct)}))}))}var ce=0,X=t()(e=>({clientCounts:{tui:0,webui:0,repl:0},mailActivity:[],totalMessages:0,openMessages:0,unreadMessages:0,totalAgents:0,activeAgents:0,currentSession:{},liveSessions:[],aggregate:{toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0},lastUpdated:Date.now(),setClientCounts:t=>e({clientCounts:t,lastUpdated:Date.now()}),setLiveSessions:t=>{let n=se(t),r=X.getState().liveSessions;if(r.length===n.length){let e=!0;for(let t=0;t<n.length;t++){let i=n[t],a=r[t];if(i.sessionId!==a.sessionId||i.status!==a.status||i.agentCount!==a.agentCount||i.startedAt!==a.startedAt||i.lastHeartbeatAt!==a.lastHeartbeatAt){e=!1;break}let o=i.agents??[],s=a.agents??[];if(o.length!==s.length){e=!1;break}for(let t=0;t<o.length;t++)if(o[t].id!==s[t].id||o[t].name!==s[t].name||o[t].status!==s[t].status||o[t].currentTool!==s[t].currentTool||o[t].iterations!==s[t].iterations||o[t].toolCalls!==s[t].toolCalls||o[t].ctxPct!==s[t].ctxPct||o[t].recentTools?.[0]?.id!==s[t].recentTools?.[0]?.id||o[t].recentMail?.[0]?.id!==s[t].recentMail?.[0]?.id||o[t].activity?.reads!==s[t].activity?.reads||o[t].activity?.writes!==s[t].activity?.writes||o[t].activity?.edits!==s[t].activity?.edits||o[t].activity?.terminalCalls!==s[t].activity?.terminalCalls||o[t].activity?.mailReceived!==s[t].activity?.mailReceived||o[t].activity?.mailSent!==s[t].activity?.mailSent||o[t].activity?.linesAdded!==s[t].activity?.linesAdded||o[t].activity?.linesRemoved!==s[t].activity?.linesRemoved){e=!1;break}if(!e)break}if(e)return}e({liveSessions:n,...ae(n),lastUpdated:Date.now()})},addMailActivity:t=>e(e=>({mailActivity:[{...t,seq:t.seq??++ce},...e.mailActivity].slice(0,50),lastUpdated:Date.now()})),setMailStats:(t,n,r)=>e({totalMessages:t,openMessages:n,unreadMessages:r,lastUpdated:Date.now()}),setAgentStats:(t,n)=>e({totalAgents:t,activeAgents:n,lastUpdated:Date.now()}),setCurrentSession:t=>e({currentSession:{...X.getState().currentSession,...t},lastUpdated:Date.now()}),clear:()=>e({clientCounts:{tui:0,webui:0,repl:0},mailActivity:[],totalMessages:0,openMessages:0,unreadMessages:0,totalAgents:0,activeAgents:0,currentSession:{},liveSessions:[],aggregate:{toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0},lastUpdated:Date.now()})})),le=t()(n(e=>({viewMode:`office`,showHud:!0,showLegend:!0,showMinimap:!0,showControls:!0,animateEdges:!0,showFeed:!0,background:`dots`,setViewMode:t=>e({viewMode:t}),setShowHud:t=>e({showHud:t}),setShowLegend:t=>e({showLegend:t}),setShowMinimap:t=>e({showMinimap:t}),setShowControls:t=>e({showControls:t}),setAnimateEdges:t=>e({animateEdges:t}),setShowFeed:t=>e({showFeed:t}),setBackground:t=>e({background:t})}),{name:`wrongstack-officemap`})),Z=e=>`${e.providerId}\u0000${e.model}`,ue=t()(e=>({entries:{},update:t=>e(e=>{let n={...e.entries},r=Z(t);return t.state===`healthy`?delete n[r]:n[r]=t,{entries:n}}),hydrate:t=>e({entries:Object.fromEntries(t.filter(e=>e.state!==`healthy`).map(e=>[Z(e),e]))}),clear:()=>e({entries:{}})})),de=t()(e=>({snapshot:null,boards:[],lifecycleResult:null,destroying:!1,setSnapshot:t=>e({snapshot:t}),setBoards:t=>e({boards:t}),setLifecycleResult:t=>e({lifecycleResult:t}),setDestroying:t=>e({destroying:t})})),fe=t()(e=>({snapshot:null,agentText:``,error:null,startedRunId:null,setSnapshot:t=>e({snapshot:t,error:null}),setAgentText:t=>e({agentText:t}),setError:t=>e({error:t}),setStartedRunId:t=>e({startedRunId:t}),reset:()=>e({snapshot:null,agentText:``,error:null,startedRunId:null})})),pe=t(e=>({sideEffects:[],loading:!1,setSideEffects:t=>e({sideEffects:t,loading:!1}),setLoading:t=>e({loading:t}),clear:()=>e({sideEffects:[],loading:!1})})),me=t()(e=>({specs:[],detail:null,expandedSpecId:null,setSpecs:t=>e({specs:t}),setDetail:t=>e({detail:t}),setExpanded:t=>e({expandedSpecId:t,detail:null})})),Q=new Set([`idle`,`queued`,`discovering`,`inventorying`,`enriching`,`researching`,`synthesizing`,`completed`,`failed`,`cancelled`]);function he(e){return Q.has(e)?e:void 0}var $={snapshot:null,stale:!1,loading:!1,error:null,activeJob:null,lastWorkspaceId:null,reportId:null},ge=t()(e=>({...$,setSnapshot:(t,n=!1)=>e(e=>({snapshot:t,stale:n,loading:!1,error:null,activeJob:e.activeJob?{...e.activeJob,status:`completed`,error:null}:null})),setLoading:t=>e({loading:t}),setError:t=>e({error:t,loading:!1}),jobStarted:(t,n)=>e({activeJob:{id:t,kind:n,status:`queued`,progress:null,error:null},error:null,loading:!0}),jobProgress:(t,n)=>e(e=>{if(e.activeJob?.id!==t)return e;let r=he(n.phase);return r?{activeJob:{...e.activeJob,status:r,progress:n},loading:!0}:e}),jobFailed:(t,n)=>e(e=>e.activeJob?.id===t?{activeJob:{...e.activeJob,status:`failed`,error:n},error:n,loading:!1}:e),jobCancelled:t=>e(e=>({activeJob:e.activeJob?.id===t?{...e.activeJob,status:`cancelled`,error:null}:e.activeJob,loading:!1})),workspaceCompleted:t=>e({lastWorkspaceId:t}),reportReady:t=>e({reportId:t}),clear:()=>e($)})),_e=t()(e=>({worktrees:[],baseBranch:``,activity:[],orphans:[],canClean:!1,cleanResult:null,mergeResult:null,diffByDir:{},setSnapshot:(t,n)=>e({worktrees:t,baseBranch:n}),pushEvent:t=>e(e=>({activity:[...e.activity,t].slice(-40)})),setOrphans:(t,n,r)=>e({orphans:t,canClean:n,cleanBlockedReason:r}),setCleanResult:t=>e({cleanResult:t}),setMergeResult:t=>e({mergeResult:t}),setDiff:(t,n)=>e(e=>({diffByDir:{...e.diffByDir,[t]:n}}))}));export{a as C,ee as S,A as _,fe as a,v as b,le as c,L as d,I as f,S as g,j as h,pe as i,X as l,M as m,ge as n,de as o,N as p,me as r,ue as s,_e as t,R as u,y as v,m as x,te as y};
@@ -1 +0,0 @@
1
- import{Xi as e,Yi as t}from"./vendor-BsMARlcy.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,streamFleet:!0,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=e()(t(e=>({...c,set:t=>e(t),reset:()=>e(c)}),{name:`wrongstack-local-prefs`,version:9,migrate:e=>{let t=e??{};return[`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,terminalOpen:!1,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,selectedMailMessage:null,refinePanel:null}}var v=e()(t(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`,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}),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-BvxTrNjV.js";import{na as i}from"./vendor-BsMARlcy.js";import{n as a,r as o,t as s}from"./ui-store-D_s-_3Y6.js";import{a as c,c as l,i as u,l as d,o as f,s as p,t as m}from"./ws-client-BOKgdABR.js";import{t as h}from"./session-store-BZ4TsTBa.js";import{i as g,n as _}from"./codemap-activity-store-CfY_WBuV.js";import{C as v,S as y,_ as b,a as x,d as S,f as C,h as w,i as ee,l as T,m as te,n as E,o as D,p as O,r as k,s as A,t as j,u as ne,v as M,x as N}from"./stores-BazbaxhT.js";import{r as P}from"./mailbox-store-CibW8-D6.js";import{n as re,s as ie}from"./view-navigation-Dx54K1uS.js";import{n as F}from"./Toaster-CPO2WS96.js";var I=e(i(),1);function ae(e,t){if(t)return!0;try{return new URLSearchParams(e).get(`shell`)===`desktop`}catch{return!1}}function L(){return typeof window>`u`?!1:ae(window.location.search,!!window.wrongstackDesktopHost)}function oe(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 se(e){return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}function ce(){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 R=`idle`;function z(e){R=e;let t=ce();t&&(t.href=se(oe(e)))}var B=!1;function le(){B||typeof document>`u`||(B=!0,document.addEventListener(`visibilitychange`,()=>{!document.hidden&&(R===`ready`||R===`error`||R===`attention`)&&z(`idle`)}))}var V=2048,ue=2*1024*1024,de=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),H=class extends Error{reason;constructor(e,t){super(e),this.reason=t,this.name=`ImageAttachmentError`}};function fe(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function U(e){let t=e.indexOf(`,`),n=t>=0?e.length-t-1:e.length;return Math.floor(n*3/4)}function pe(e){return/^data:([^;,]+)/.exec(e)?.[1]??`image/png`}async function me(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 he(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 H(`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 ge=0;function _e(){return ge+=1,`img_${Date.now()}_${ge}`}async function ve(e){let t=de.has(e.type),n;try{n=await me(e)}catch{throw new H(`Could not decode image "${e.name}"`,`decode_failed`)}let r=n.width,i=n.height,a=Math.max(r,i);if(!(!t||a>V||e.size>ue)){let t=await fe(e);return{id:_e(),dataUrl:t,mediaType:e.type,bytes:U(t),name:e.name||void 0,width:r,height:i}}let o=e.type!==`image/jpeg`,s=Math.min(1,V/a),c=.85,l=he(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c);U(l)>4194304&&(s=Math.min(s,1280/a),c=.7,l=he(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c)),`close`in n&&n.close();let u=U(l);if(u>4194304)throw new H(`Image "${e.name}" is too large after compression`,`too_large`);return{id:_e(),dataUrl:l,mediaType:pe(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 ye(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 W=null;function be(){if(typeof window>`u`)return null;if(W)return W;let e=window.AudioContext||window.webkitAudioContext;if(!e)return null;try{W=new e}catch{return null}return W}function G(e,t,n){let r=be();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 xe(){G(659.25,0,.18),G(880,.12,.24)}function Se(){G(523.25,0,.15),G(659.25,.1,.15),G(783.99,.2,.25)}var K=`default`;K=typeof window<`u`&&`Notification`in window?Notification.permission:`unsupported`;async function Ce(){if(K===`unsupported`||K===`granted`||K===`denied`)return K;try{let e=await Notification.requestPermission();return K=e,e}catch{return`denied`}}function q(e,t,n){if(!(typeof document>`u`||!document.hidden)&&K===`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 we={"iteration.started":Te,"provider.text_delta":Ee,"provider.thinking_delta":De,"tool.started":Oe,"tool.progress":ke,"tool.executed":Ae,"tool.confirm_needed":je,"run.result":Me};function Te(e){if(!u(e))return;c(e);let t=e.payload;h.getState().setIteration({index:t.index,max:t.maxIterations??0}),r.getState().setLoading(!0),typeof document<`u`&&document.hidden&&z(`running`),r.getState().runStart===null&&r.getState().setRunStart({at:Date.now(),cost:h.getState().cost}),r.getState().setCurrentAssistantMessage(null)}function Ee(e){if(!u(e))return;let t=f(e,{text:`string`,messageId:`string`});if(!t)return;d.flush(`__thinking__`),r.getState().clearThinking();let n=r.getState().currentAssistantMessageId;n||(n=r.getState().addMessage({role:`assistant`,content:``,streaming:!0}),r.getState().setCurrentAssistantMessage(n)),d.push(n,t.text,(e,t)=>r.getState().appendToMessage(e,t))}function De(e){if(!u(e))return;let t=e.payload;t.text&&d.push(`__thinking__`,t.text,(e,t)=>r.getState().appendThinking(t))}function Oe(e){if(!u(e))return;c(e);let t=e.payload,n=r.getState().getToolMessageId(t.id);if(n){r.getState().setCurrentToolId(n);return}d.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 ke(e){if(!u(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`?`⚠ `:``;d.push(i,`${a}${n}\n`,(e,n)=>r.getState().appendToolProgressLinesByUseId(t.id,n.split(`
7
- `).filter(e=>e.length>0)))}function Ae(e){if(!u(e))return;c(e);let t=e.payload,{currentToolId:n}=r.getState(),i=t.id?r.getState().getToolMessageId(t.id):n;i&&(d.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 je(e){if(!u(e))return;let t=e.payload;if(o.getState().yolo===!0&&!t.boundaryReason){m(v.getState().wsUrl).sendConfirm(t.id,`yes`),a.getState().hideConfirm();return}a.getState().showConfirm({id:t.id,toolName:t.toolName,input:t.input,suggestedPattern:t.suggestedPattern,decisionSource:t.decisionSource,riskTier:t.riskTier,boundaryReason:t.boundaryReason});try{Se()}catch{}Ce(),q(`${h.getState().projectName||`Agent`} needs approval`,`Tool "${t.toolName}" is waiting for your decision.`,`agent-confirm`),typeof document<`u`&&document.hidden&&z(`attention`)}function Me(e){if(!u(e))return;let t=f(e,{status:`string`},{iterations:`number`,finalText:`string`,error:`object`});if(!t)return;let i=t.iterations??1;d.flushAll(),r.getState().flushThinkingLog(Math.max(1,i)),h.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=h.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}),F.error(`Run ended: ${t.error.message}`),q(`${h.getState().projectName||`Agent`} run failed`,t.error.message),typeof document<`u`&&document.hidden&&z(`error`);else if(t.status===`done`&&(typeof document<`u`&&document.hidden&&(F.success(`Run completed in ${i} iteration${i===1?``:`s`}`),q(`${h.getState().projectName||`Agent`} run finished`,`Completed in ${i} iteration${i===1?``:`s`}.`),z(`ready`)),Ce(),v.getState().soundOnComplete))try{xe()}catch{}let c=r.getState().dequeue();if(c){let e=m(v.getState().wsUrl),t=c.images??[];r.getState().addMessage({role:`user`,content:c.text,...t.length>0?{attachments:t.map(e=>({id:e.id,kind:`image`,dataUrl:e.dataUrl,mediaType:e.mediaType,bytes:e.bytes,name:e.name}))}:{}}),r.getState().setLoading(!0),e.sendMessage(c.text,t.length>0?ye(t):void 0)}}var Ne={"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()),F.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()),F.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),F.error(`Task failed: `+String(t.error).slice(0,80))}};function J(){let e=m();e?.send?.({type:`mailbox.messages`,payload:{limit:30,incompleteOnly:!0}}),e?.send?.({type:`mailbox.agents`,payload:{}})}var Y=null;function X(){Y!==null&&clearTimeout(Y),Y=setTimeout(()=>{Y=null,J()},300)}function Pe(e){let t=e.payload;if(t.error){M.getState().setError(t.error);return}M.getState().setTree(t.root,t.tree)}function Fe(e){let t=e.payload;if(t.error){M.getState().setError(t.error);return}M.getState().openFile(t.filePath,t.content)}function Ie(e){let t=e.payload;t.success?M.getState().markSaved(t.filePath):t.error&&M.getState().setError(`Save failed: ${t.error}`)}function Le(e){let t=l(`mailbox.event`,e.payload);t&&(p.getState().pushEvent(t),p.getState().setActive(!0)),X()}function Re(e){let t=e.payload;t?.messages&&P.getState().setMessages(t.messages)}function ze(e){let t=e.payload;t?.agents&&P.getState().setAgents(t.agents)}function Be(e){let t=l(`mailbox.received`,e.payload);t&&(p.getState().pushEvent(t),p.getState().setActive(!0)),X()}function Ve(e){X()}function He(e){P.getState().setMessages([]),J()}function Ue(e){X()}function We(e){let t=e.payload;t&&typeof t.totalRemoved==`number`&&P.getState().setLastCompaction({readByAllRemoved:t.readByAllRemoved??0,expiredRemoved:t.expiredRemoved??0,stalePurged:t.stalePurged??0,totalRemoved:t.totalRemoved,remaining:t.remaining??0}),X()}var Ge={"files.tree":Pe,"files.read":Fe,"files.written":Ie,"mailbox.event":Le,"mailbox.messages":Re,"mailbox.agents":ze,"mailbox.received":Be,"mailbox.agent_registered":Ve,"mailbox.cleared":He,"mailbox.purged":Ue,"mailbox.compacted":We};function Ke(e){let t=e.payload;j.getState().setSnapshot(t.worktrees??[],t.baseBranch??``)}function qe(e){let t=e.payload;j.getState().pushEvent(t)}function Je(e){let t=e.payload;j.getState().setOrphans(t.orphans??[],t.canClean??!1,t.reason)}function Ye(e){let t=e.payload;j.getState().setCleanResult({...t,at:Date.now()})}function Xe(e){let t=e.payload;j.getState().setMergeResult({...t,at:Date.now()})}function Ze(e){let t=e.payload;j.getState().setDiff(t.dir,t.summary)}function Qe(e){b.getState().applyEvent(e.payload);let t=l(`subagent.event`,e.payload);t&&(p.getState().pushEvent(t),p.getState().setActive(!0))}function $e(e){let t=e.payload;b.setState({fleetConcurrency:t.fleetConcurrency,fleetConcurrencyMax:t.fleetConcurrencyMax})}function et(e){let t=e.payload;T.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 tt(e){let t=e.payload;T.getState().setLiveSessions(t?.sessions??[]);let n=Date.now();if(n-rt>=5e3&&(rt=n,J()),n-nt<1e3)return;nt=n;let r=l(`sessions.status_update`,e.payload);r&&(p.getState().pushEvent(r),p.getState().setActive(!0))}var nt=0,rt=0,it={"worktree.state":Ke,"worktree.event":qe,"worktree.orphans":Je,"worktree.cleanup_result":Ye,"worktree.merge_result":Xe,"worktree.diff_result":Ze,"subagent.event":Qe,"fleet.concurrency_update":$e,"client.status_update":et,"sessions.status_update":tt};function at(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 ot(e){let t=e.payload,n=Array.isArray(t.phases)?t.phases:void 0,r=at(n);O.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`?O.getState().lastError:null})}function st(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};O.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 Z(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`){O.getState().setState({status:`paused`,autonomous:!1,lastEvent:`paused`}),F.info(`Goal paused`);return}if(e.type===`goal.resumed`){O.getState().setState({status:`running`,autonomous:!0,lastEvent:`resumed`}),F.info(`Goal resumed`);return}if(e.type===`goal.stopped`){O.getState().setState({status:`stopped`,autonomous:!1,lastEvent:`stopped`}),F.warn(`Goal stopped`);return}if(e.type===`goal.cleared`){O.getState().clear();return}if(e.type===`goal.reverted`){let e=t.ok===!0,n=typeof t.reverted==`number`?t.reverted:0,r=typeof t.reason==`string`?t.reason:void 0;e?F.success(n>0?`Reverted ${n} commit${n===1?``:`s`}`:`Nothing to revert`):F.error(`Revert failed: ${r??`unknown error`}`),O.getState().setState({lastEvent:`reverted`});return}if(e.type===`goal.saved`){O.getState().setState({lastEvent:`saved`}),F.success(`Goal graph saved`);return}if(e.type===`goal.completed`){O.getState().setState({status:`completed`,autonomous:!1,overallPercent:100,lastEvent:`completed`,lastError:null}),F.success(`${n} completed`);return}if(e.type===`goal.failed`||e.type===`goal.error`){let e=r??(typeof t.message==`string`?t.message:`${n} failed`);O.getState().setState({status:`failed`,autonomous:!1,lastEvent:`failed`,lastError:e}),F.error(e)}}function ct(e){let t=e.payload;O.getState().setState({lastEvent:`list`,graphs:Array.isArray(t.graphs)?t.graphs:[]})}function lt(e){let t=e.payload;C.getState().setGoal(t)}function ut(e){let t=e.payload;o.getState().set(t),t.yolo===!0&&a.getState().confirmInfo&&a.getState().hideConfirm()}function dt(e){if(!u(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 ft(e){if(!u(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&&F.info(`Brain intervened: agent steered`)}else t.event===`brain.decision_denied`&&F.warn(`Brain denied: ${t.decision?.reason??t.request?.question??`request`}`)}function pt(e){if(!u(e))return;let t=e.payload;p.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.staled`?F.warn(`Memory became stale: ${String(t.memoryId??``)}`):t.event===`memory.contradicted`?F.warn(`Memory contradicted: ${String(t.memoryId??``)}`):t.event===`memory.hygiene_completed`&&F.info(`Super Memory hygiene completed`)}function mt(e){let t=e.payload,n=typeof t.kind==`string`?t.kind:typeof t.event==`string`?t.event:`collab.event`;p.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`}),p.getState().setActive(!0)}function ht(e){mt(e);let t=e.payload;t?.phase===`consumed`?F.success(`Tool injection applied${t.toolName?` to ${t.toolName}`:``}`):F.info(`Collab tool injection queued`)}function gt(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();C.getState().appendJournalEntry({iteration:n,task:r,status:i,timestamp:a}),p.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`}),p.getState().setActive(!0)}function _t(e){let t=e.payload;h.getState().setEnv({cwd:t.cwd,projectRoot:t.projectRoot,projectName:t.projectRoot.split(/[/\\]/).pop()||t.projectRoot}),M.getState().setTreeLoading(!0),m().send({type:`files.tree`,payload:{path:t.cwd}})}function vt(e){let n=e.payload,i=a.getState().refinePanel;if(!i)return;if(n.error){if(n.errorKind===`timeout`&&!i.retried&&n.retryTimeoutMs){a.getState().setRefinePanel({...i,status:`refining`,retried:!0}),m().refineModel(i.original,{timeoutMs:n.retryTimeoutMs});return}a.getState().setRefinePanel({...i,status:`failed`,error:n.error,errorKind:n.errorKind,fallbackRef:n.fallbackRef});return}let o=i.original;if(t(n.refined,o)){a.getState().setRefinePanel(null),r.getState().addMessage({role:`user`,content:o}),r.getState().setLoading(!0),m().sendMessage(o);return}a.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 yt(e){let t=e.payload;te.getState().setInfo({...t,fetchedAt:Date.now()})}function bt(e){let t=e.payload;w.getState().setFiles(t.files??[],t.error??null)}function xt(e){let t=e.payload;w.getState().selectedPath===t.path&&w.getState().setDiff({path:t.path,oldText:t.oldText??``,newText:t.newText??``,binary:t.binary,tooLarge:t.tooLarge,error:t.error})}function St(e){let t=e.payload;N.getState().setSnapshot({count:t.count,maxConcurrent:t.maxConcurrent,jobs:t.jobs??[]})}function Ct(e){let t=e.payload;N.getState().recordFired(t.name,t.ts)}var wt={"goal-state.updated":lt,"prefs.updated":ut,"goal.state":ot,"goal.progress":st,"goal.paused":Z,"goal.resumed":Z,"goal.stopped":Z,"goal.cleared":Z,"goal.reverted":Z,"goal.saved":Z,"goal.completed":Z,"goal.failed":Z,"goal.error":Z,"goal.list":ct,"brain.answer":dt,"brain.event":ft,"memory.event":pt,"collab.event":mt,"collab.injection.granted":ht,"eternal.iteration":gt,"working_dir.changed":_t,"model.refine_result":vt,"git.info":yt,"git.changes":bt,"git.diff":xt,"cron.snapshot":St,"cron.job_fired":Ct};function Tt(e){let t=e.payload;!t.jobId||!t.kind||E.getState().jobStarted(t.jobId,t.kind)}function Et(e){let t=e.payload;!t.jobId||!t.phase||!Number.isFinite(t.completed)||!Number.isFinite(t.total)||E.getState().jobProgress(t.jobId,{phase:t.phase,completed:t.completed??0,total:t.total??0})}function Dt(e){let t=e.payload;t.workspaceId&&E.getState().workspaceCompleted(t.workspaceId)}function Ot(e){let t=e.payload;t.snapshot&&E.getState().setSnapshot(t.snapshot,t.stale??!1)}function kt(e){let t=e.payload;t.reportId&&E.getState().reportReady(t.reportId)}function At(e){let t=e.payload;t.jobId&&E.getState().jobFailed(t.jobId,t.error??`TechStack job failed`)}function jt(e){let t=e.payload;t.jobId&&E.getState().jobCancelled(t.jobId)}var Mt={"techstack.job.started":Tt,"techstack.job.progress":Et,"techstack.workspace.completed":Dt,"techstack.snapshot.updated":Ot,"techstack.report.ready":kt,"techstack.job.failed":At,"techstack.job.cancelled":jt};function Nt(e){if(typeof e!=`string`)return Date.now();let t=Date.parse(e);return Number.isFinite(t)?t:Date.now()}function Q(e){return`replay_${Date.now()}_${e}`}function Pt(){return typeof window>`u`?!1:window.location.pathname===`/debug`||window.location.pathname===`/analytics`||window.location.pathname===`/refresh-debug`}function Ft(e){return typeof e==`string`?e:JSON.stringify(e)}function It(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 Lt(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 Rt(e){let t=[],n=new Map,r=0,i=(e,n,r)=>{n&&t.push({id:Q(t.length),role:e,content:n,timestamp:r})},a=(e,n)=>{let i=e.trim();i&&(r+=1,t.push({id:Q(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=Nt(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:Q(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=Ft(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 zt=new Set;function Bt(e,t=140){return e.length>t?`${e.slice(0,t-1)}…`:e}function Vt(){d.flush(`__thinking__`);let e=h.getState().iteration;r.getState().flushThinkingLog(Math.max(1,e?.index??1)),r.getState().clearThinking()}function Ht(e){let t=l(`session.start`,e.payload);t&&(p.getState().pushEvent(t),p.getState().setActive(!0));let n=e.payload,i=Lt(n.provider),o=Lt(n.model),c=h.getState().session?.id,u=!c||c!==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&&re(`setup`),u?h.getState().startSession({id:n.sessionId,startedAt:Date.now(),model:o,provider:i}):h.getState().setSession({id:n.sessionId,startedAt:h.getState().session?.startedAt??Date.now(),model:o,provider:i}),h.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}),v.getState().setConfig({provider:i,model:o}),u){!n.needsSetup&&L()&&!Pt()&&s({sidebarOpen:!1}),d.dropAll(),r.getState().clearMessages(),r.getState().setBoundSessionId(n.sessionId),a.getState().setSearchActiveMessageId(null),r.getState().setLoading(!1),h.setState({todos:[]}),z(`ready`);let e=b.getState();if(n.clearedSessionId){let t=new Map;for(let[r,i]of e.agents)i.sessionId!==n.clearedSessionId&&t.set(r,i);b.setState({agents:t})}else e.clear();M.getState().setTreeLoading(!0),m().send({type:`files.tree`,payload:{path:h.getState().cwd}})}let f=n.replayMessages;if(f&&f.length>0){let e=r.getState();(u||e.messages.length===0||e.boundSessionId!==n.sessionId||e.isLoading)&&(e.setMessages(Rt(f)),e.setBoundSessionId(n.sessionId))}if(f){let e=n.replayUsage;if(e){let t=h.getState(),n=e.input??0,r=e.output??0,i=e.cacheRead??0,a=e.cacheWrite??0;h.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&&h.setState({lastInputTokens:t}),u&&!n.needsSetup&&(Pt()||(L()?s({sidebarOpen:!1}):a.getState().currentView!==`chat`&&ie(`chat`))),typeof window<`u`&&window.matchMedia?.(`(max-width: 768px)`).matches&&a.getState().setSidebarOpen(!1)}}function Ut(e){if(!u(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 Wt(e){let t=e.payload;t.success?F.success(t.message):F.error(t.message),m(v.getState().wsUrl).listSavedProviders()}function Gt(e){if(!u(e))return;c(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:`assistant`,content:`🗜️ Context compacted: ${t.before} → ${t.after} tokens (saved ~${t.saved}). ${n}`}),h.setState({lastInputTokens:t.after})}function Kt(e){if(!u(e))return;c(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}),F.error(`Compaction failed: ${t.message}`)}function qt(e){if(!u(e))return;c(e);let t=e.payload,n=It(t.content),i=t.usage,a=(i.input??0)+(i.cacheWrite??0)-(i.cacheRead??0);a>0&&h.setState({lastInputTokens:a}),h.getState().updateUsage(t.usage);let{inputCost:o,outputCost:s,cacheReadCost:l}=h.getState(),f=(t.usage.input*o+t.usage.output*s+(t.usage.cacheRead??0)*l)/1e6;f>0&&h.getState().addCost(f),t.stopReason!==`tool_use`&&t.stopReason!==`tool_call`&&r.getState().setLoading(!1);let p=r.getState().currentAssistantMessageId;if(p){d.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),d.flush(`__thinking__`),r.getState().clearThinking()}function Jt(e){if(!u(e))return;c(e);let t=e.payload;d.flush(`__thinking__`),r.getState().flushThinkingLog(t.index),r.getState().clearThinking();let n=h.getState().iteration;n&&h.getState().setIteration({index:t.index,max:n.max})}function Yt(e){if(!u(e))return;let t=e.payload;r.getState().addMessage({role:`assistant`,content:`Iteration limit reached: ${t.currentIterations}/${t.currentLimit}.`,isError:!0}),F.warn(`Iteration limit reached (${t.currentIterations}/${t.currentLimit})`)}function Xt(e){if(!u(e))return;let t=e.payload,n=Math.max(0,Math.round(t.delayMs/100)/10);F.warn(`${t.providerId} retry ${t.attempt} after ${n}s (${t.status})`)}function Zt(e){if(!u(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}),F.error(`${t.providerId} provider error (${t.status})`)}function Qt(e){if(!u(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`:``}.`}),F.warn(`Fallback to ${i}`)}function $t(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`?F.warn(`${n} entered the limit-reset waiting room`):t.newState===`healthy`&&t.oldState!==`healthy`&&F.success(`${n} recovered and rejoined model routing`)}function en(e){if(!u(e))return;let t=e.payload;r.getState().addMessage({role:`assistant`,content:`Waiting room skipped \`${t.providerId}/${t.model}\`. ${t.lastError}`})}function tn(e){if(!u(e))return;c(e);let t=e.payload;F.warn(`Provider stream event skipped: ${t.eventType}`),r.getState().addMessage({role:`assistant`,content:`Provider stream warning (${t.eventType}): ${t.message}`,isError:!0})}function nn(e){if(!u(e))return;c(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}),F.warn(`Loop guard triggered`)}function rn(e){if(!u(e))return;c(e);let t=e.payload,n=Bt(t.task,180);r.getState().addMessage({role:`assistant`,content:`Delegating to \`${t.target}\`: ${n}`}),b.getState().pushAgentTimelineEntry({subagentId:t.target,agentName:t.target,content:n,kind:`status`,iteration:0,ts:new Date().toISOString(),status:`delegating`})}function an(e){if(!u(e))return;c(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}),b.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||F.warn(`Delegate failed: ${t.target}`)}function on(e){if(!u(e))return;let t=e.payload,n=`${t.tool}: ${t.pattern}`;t.decision===`always`?F.success(`Always allowed ${n}`):F.warn(`Denied ${n}`)}function sn(e){if(!u(e))return;c(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 cn(e){if(!u(e))return;c(e);let t=e.payload;h.getState().setContextUsage(t.tokens,t.maxContext)}function ln(e){if(!u(e))return;let t=e.payload;h.getState().setEnv({maxContext:t.maxContext})}function un(e){if(!u(e))return;let t=e.payload;h.getState().setContextUsage(t.used,t.limit);let n=t.limit>0?Math.round(t.used/t.limit*100):0;F.warn(`Token threshold reached (${n}%)`)}function dn(e){if(!u(e))return;let t=e.payload.model||`<unknown>`;zt.has(t)||(zt.add(t),F.warn(`Cost estimate unavailable for ${t}`))}function fn(e){if(!u(e))return;let t=e.payload;r.getState().addMessage({role:`assistant`,content:`Session ${t.sessionId} is damaged: ${t.detail}`,isError:!0}),F.error(`Session damage detected`)}function pn(e){if(!u(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).`}),F.info(`Session rewound`)}function mn(e){if(!u(e))return;let t=e.payload;F.success(`Checkpoint #${t.promptIndex} written (${t.fileCount} file(s))`)}function hn(e){if(!u(e))return;let t=e.payload;p.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 gn(e){u(e)&&e.payload.reason===`recovered`&&F.info(`Recovered previous in-flight operation`)}function _n(){v.getState().setWsConnected(!1)}function vn(e){if(!u(e))return;let t=e.payload;h.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}))),h.getState().setEnv({contextMode:t.activeId})}function yn(e){if(!u(e))return;let t=e.payload;h.getState().setEnv({contextMode:t.id})}function bn(e){let t=e.payload;S.getState().setEntries(t.sessions??[],t.error??null)}function xn(e){if(!u(e))return;let t=e.payload;Vt(),r.getState().addMessage({role:`assistant`,content:`[${t.phase}] ${t.message}`,isError:!0}),r.getState().setLoading(!1)}var Sn={"context.debug":Ut,"key.operation_result":Wt,"context.compacted":Gt,"compaction.failed":Kt,"provider.response":qt,"iteration.completed":Jt,"iteration.limit_reached":Yt,"provider.retry":Xt,"provider.error":Zt,"provider.fallback":Qt,"provider.status_changed":$t,"provider.active_blocked":en,"provider.stream_error":tn,"tool.loop_detected":nn,"delegate.started":rn,"delegate.completed":an,"trust.persisted":on,"context.repaired":sn,"ctx.pct":cn,"ctx.max_context":ln,"token.threshold":un,"token.cost_estimate_unavailable":dn,"session.end":_n,"session.damaged":fn,"session.rewound":pn,"checkpoint.written":mn,"in_flight.started":hn,"in_flight.ended":gn,"context.modes.list":vn,"context.mode.changed":yn,"sessions.list":bn,error:xn};function Cn(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 wn(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 Tn(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 En(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 Dn(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 On(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 kn(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 An(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 jn(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 Mn(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 Nn(e){if(!u(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 Pn(e){if(!u(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 Fn(e){if(!u(e))return;let t=e.payload;h.getState().setTodos(t.todos??[])}function In(e){let t=e.payload;h.getState().setModes(t.modes.map(e=>({id:e.id,name:e.name,description:e.description}))),h.getState().setEnv({mode:t.activeId})}function $(e){ne.getState().handleResult(e.type,e.payload)}var Ln={...we,...Sn,...it,...Ge,...wt,...Ne,...Mt,"session.start":e=>{Ht(e),J()},"specs.list":e=>{let t=e.payload;k.getState().setSpecs(t.specs??[])},"specs.detail":e=>{k.getState().setDetail(e.payload)},"sdd.board.snapshot":e=>{D.getState().setSnapshot(e.payload)},"sdd.board.list":e=>{let t=e.payload;D.getState().setBoards(t.boards??[])},"sdd.board.lifecycle_result":e=>{let t=e.payload,n=D.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":Cn,"memory.list":wn,"memory.super.list":Tn,"memory.super.get":En,"memory.super.update":Dn,"memory.super.remember":On,"memory.super.recover":kn,"memory.super.candidateResolve":An,"memory.super.backfillRecoverable":jn,"skills.list":Mn,"diag.get":Nn,"stats.get":Pn,side_effects:e=>{if(!u(e))return;let t=e.payload;ee.getState().setSideEffects(t.sideEffects??[])},"todos.updated":Fn,"todos.cleared":e=>{u(e)&&h.getState().setTodos([])},"agent.timeline.message":e=>{if(!u(e))return;let t=e.payload;b.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(!u(e))return;let t=e.payload;b.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":In,"session.checkpoints":e=>{},"process.list":e=>{},"projects.list":e=>{},"projects.added":e=>{},"projects.selected":e=>{},"tool.disabled":e=>{},"tool.enabled":e=>{},"provider.response":e=>{qt(e)},"tool.progress":e=>{ke(e);let t=_(e),n=g.getState();for(let e of t)n.recordFileEvent(e)},"tool.started":e=>{Oe(e);let t=_(e);t.length>0&&g.getState().startActivities(t)},"tool.executed":e=>{Ae(e);let t=e.payload;t.id&&g.getState().finishTool(t.id,{durationMs:t.durationMs,ok:t.ok!==!1})},"codemap.tool_started":e=>{c(e);let t=_(e);t.length>0&&g.getState().startActivities(t)},"codemap.tool_executed":e=>{c(e);let t=e.payload;t.id&&g.getState().finishTool(t.id,{durationMs:t.durationMs,ok:t.ok!==!1})},"codemap.file_event":e=>{let t=_(e),n=g.getState();for(let e of t)n.recordFileEvent(e)},"file.saved":e=>{let t=_(e);if(t.length>0){let e=g.getState();for(let n of t)e.recordFileEvent(n)}},"memory.event":e=>{pt(e);let t=_(e);if(t.length>0){let e=g.getState();for(let n of t)e.recordActivity(n)}}};function Rn(e){let t=[];for(let[n,r]of Object.entries(Ln))r&&t.push(e.on(n,t=>{e.consumeSuppressedChatEcho(n)||r(t)}));return()=>{for(let e of t)e()}}function zn(){let{autoConnect:e,wsUrl:t}=v(),n=v(e=>e.setWsStatus);(0,I.useEffect)(()=>{if(!e)return;le();let r=m(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=Rn(r);return()=>{i=!0,o(),a()}},[e,t,n])}function Bn(){let{wsUrl:e}=v(),t=m(e),n=(0,I.useCallback)((e,n)=>t.isConnected?t.sendMessage(e,n):null,[t]),r=(0,I.useCallback)(()=>t.sendAbort(),[t]),{hideConfirm:i}=a(),o=(0,I.useCallback)((e,n)=>{t.sendConfirm(e,n),i()},[t,i]),s=(0,I.useCallback)((e,n)=>t.switchModel(e,n),[t]),c=(0,I.useCallback)(()=>t.listProviders(),[t]),l=(0,I.useCallback)(e=>t.listProviderModels(e),[t]),u=(0,I.useCallback)(()=>t.listSavedProviders(),[t]),d=(0,I.useCallback)((e,n,r)=>t.addKey(e,n,r),[t]),f=(0,I.useCallback)((e,n,r)=>t.updateKey(e,n,r),[t]),p=(0,I.useCallback)((e,n)=>t.deleteKey(e,n),[t]),h=(0,I.useCallback)((e,n)=>t.setActiveKey(e,n),[t]),g=(0,I.useCallback)((e,n,r,i)=>t.addProvider(e,n,r,i),[t]),_=(0,I.useCallback)(e=>t.removeProvider(e),[t]),y=(0,I.useCallback)(e=>{S.getState().setLoading(!0),t.listSessions(e)},[t]),b=(0,I.useCallback)(e=>t.deleteSession(e),[t]),x=(0,I.useCallback)((e,n)=>{S.getState().updateEntryName(e,n),t.renameSession(e,n)},[t]),C=(0,I.useCallback)(e=>t.resumeSessionById(e),[t]),w=(0,I.useCallback)(()=>t.saveSession(),[t]),ee=(0,I.useCallback)(e=>t.listTools(e),[t]),T=(0,I.useCallback)(e=>t.listMemory(e),[t]),te=(0,I.useCallback)(e=>t.listSuperMemories(e),[t]),E=(0,I.useCallback)((e,n)=>t.listSuperMemoriesPage(e,n),[t]),D=(0,I.useCallback)((e,n)=>t.getSuperMemory(e,n),[t]),O=(0,I.useCallback)((e,n,r)=>t.updateSuperMemory(e,n,r),[t]),k=(0,I.useCallback)((e,n)=>t.deleteSuperMemory(e,n),[t]),A=(0,I.useCallback)((e,n)=>t.rememberSuperMemory(e,n),[t]),j=(0,I.useCallback)((e,n)=>t.findMemoriesForFile(e,n),[t]),ne=(0,I.useCallback)((e,n)=>t.recoverSuperMemory(e,n),[t]),M=(0,I.useCallback)((e,n)=>t.resolveMemoryCandidate(e,n),[t]),N=(0,I.useCallback)((e,n)=>t.backfillRecoverable(e,n),[t]),P=(0,I.useCallback)(e=>t.listSkills(e),[t]),re=(0,I.useCallback)(e=>t.getDiag(e),[t]),ie=(0,I.useCallback)(e=>t.getStats(e),[t]),F=(0,I.useCallback)(()=>t.getPlan(),[t]),ae=(0,I.useCallback)(()=>t.listModes(),[t]),L=(0,I.useCallback)(e=>t.switchMode(e),[t]),oe=(0,I.useCallback)(()=>t.listContextModes(),[t]),se=(0,I.useCallback)(e=>t.switchContextMode(e),[t]),ce=(0,I.useCallback)(e=>t.createContextMode(e),[t]),R=(0,I.useCallback)((e,n)=>t.updateContextMode(e,n),[t]),z=(0,I.useCallback)(e=>t.deleteContextMode(e),[t]),B=(0,I.useCallback)(()=>t.repairContext(),[t]),le=(0,I.useCallback)((e,n)=>t.refineModel(e,n),[t]),V=(0,I.useCallback)(e=>t.switchAutonomy(e),[t]),ue=(0,I.useCallback)(e=>t.updatePrefs(e),[t]);return{client:t,sendMessage:n,sendAbort:r,sendConfirm:o,switchModel:s,listProviders:c,listProviderModels:l,listSavedProviders:u,addKey:d,updateKey:f,deleteKey:p,setActiveKey:h,addProvider:g,removeProvider:_,listSessions:y,deleteSession:b,renameSession:x,resumeSession:C,saveSession:w,listTools:ee,listMemory:T,listSuperMemories:te,listSuperMemoriesPage:E,getSuperMemory:D,updateSuperMemory:O,deleteSuperMemory:k,rememberSuperMemory:A,findMemoriesForFile:j,recoverSuperMemory:ne,resolveMemoryCandidate:M,backfillRecoverable:N,listSkills:P,getDiag:re,getStats:ie,getPlan:F,listModes:ae,switchMode:L,listContextModes:oe,switchContextMode:se,createContextMode:ce,updateContextMode:R,deleteContextMode:z,repairContext:B,toggleGoalAutonomous:(0,I.useCallback)(e=>{t.send({type:`goal.toggleAutonomous`,payload:{autonomous:e}})},[t]),startGoal:(0,I.useCallback)((e,n,r=!0)=>{t.send({type:`goal.start`,payload:{title:e,phases:n,autonomous:r}})},[t]),pauseGoal:(0,I.useCallback)(()=>{t.send({type:`goal.pause`,payload:{}})},[t]),resumeGoal:(0,I.useCallback)(()=>{t.send({type:`goal.resume`,payload:{}})},[t]),stopGoal:(0,I.useCallback)(()=>{t.send({type:`goal.stop`,payload:{}})},[t]),selectGoal:(0,I.useCallback)(e=>{t.send({type:`goal.selectPhase`,payload:{phaseId:e}})},[t]),switchAutonomy:V,updatePrefs:ue,refineModel:le}}export{ve as a,H as i,zn as n,ye as o,xe as r,L as s,Bn as t};