@wrongstack/webui 1.0.17 → 1.0.24

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 (138) hide show
  1. package/dist/assets/{AgentRosterView-CV9MW-4M.js → AgentRosterView-Dq8Xa0WK.js} +4 -4
  2. package/dist/assets/{AnalyticsDashboard-30brLbuz.js → AnalyticsDashboard-DgqJODVI.js} +1 -1
  3. package/dist/assets/{AudienceMemoryPanel-bKVydKg8.js → AudienceMemoryPanel-BVGdDVTT.js} +1 -1
  4. package/dist/assets/{ChangesView-Cv6svx-V.js → ChangesView-BVyLENBb.js} +1 -1
  5. package/dist/assets/ChimeraReviewsView-CTuxzgTC.js +1 -0
  6. package/dist/assets/ChronicleDashboard-BRP7D6RZ.js +1 -0
  7. package/dist/assets/{CodeEditor-JlvMbECd.js → CodeEditor-k3z3M0NG.js} +1 -1
  8. package/dist/assets/{CodeMap-4swT3FIw.js → CodeMap-CvHNQZEF.js} +1 -1
  9. package/dist/assets/{CronJobsPanel-LSpFBceD.js → CronJobsPanel-GTK038V9.js} +1 -1
  10. package/dist/assets/{DeadCodeScanPanel-ZRNNV02b.js → DeadCodeScanPanel-DX4OEuyp.js} +1 -1
  11. package/dist/assets/{DebugDashboard-DlH0QNPX.js → DebugDashboard-CKp3sa_k.js} +1 -1
  12. package/dist/assets/{DesignGalleryView-yZgVVEg9.js → DesignGalleryView-DVUTYaP6.js} +1 -1
  13. package/dist/assets/{GoalView-D1gxZre2.js → GoalView-D8G8e8YG.js} +1 -1
  14. package/dist/assets/KanbanView-BMXGDqGo.js +3 -0
  15. package/dist/assets/{MailboxDetailView-C4lEW3f8.js → MailboxDetailView-CylnzTVc.js} +1 -1
  16. package/dist/assets/{MemoryDrawer-arujfDSW.js → MemoryDrawer-DJ0Y98Z8.js} +1 -1
  17. package/dist/assets/{MemoryManager-BmQYIRhD.js → MemoryManager-DfcsYPUB.js} +1 -1
  18. package/dist/assets/{ProcessMonitor-ByW-VKsX.js → ProcessMonitor-BnQ3vJtn.js} +1 -1
  19. package/dist/assets/{PromptJournalView-0cHPeYXa.js → PromptJournalView-D7k8Yh5a.js} +1 -1
  20. package/dist/assets/{ProviderTestView-CQlwC6HG.js → ProviderTestView-DSd6kkWT.js} +1 -1
  21. package/dist/assets/{QueuePanel-DJeK7xCh.js → QueuePanel-79KiyZWD.js} +1 -1
  22. package/dist/assets/{RefreshDebugView-BfOjHodq.js → RefreshDebugView-s6MyGpPq.js} +1 -1
  23. package/dist/assets/{RepositoryHistoryView-BYPPu5uv.js → RepositoryHistoryView-CWi_Zo3F.js} +1 -1
  24. package/dist/assets/RequirementIntakeView-D_Ea20fx.js +1 -0
  25. package/dist/assets/{SageTabs-Bt2kzPNB.js → SageTabs-D6eTg3ix.js} +2 -2
  26. package/dist/assets/SddFlowGraph-B-ptkFX6.js +1 -0
  27. package/dist/assets/SddHub-CSVfLGpr.js +2 -0
  28. package/dist/assets/{SessionInspectView-BasxJ_5x.js → SessionInspectView-NSpj5WEN.js} +1 -1
  29. package/dist/assets/{SessionList-C9MRSj_-.js → SessionList-BYRCs1AK.js} +1 -1
  30. package/dist/assets/{SessionsDashboard-BK95Zp6f.js → SessionsDashboard-mF4PzdKY.js} +1 -1
  31. package/dist/assets/{SetupScreen-rPKsBa9Z.js → SetupScreen-BUZeJSZi.js} +1 -1
  32. package/dist/assets/SkillDetailView-B9BFyB1i.js +3 -0
  33. package/dist/assets/{TechStackView-xVR5dsSn.js → TechStackView-CXJilX0M.js} +2 -2
  34. package/dist/assets/{TerminalPanel-CBEZTuvV.js → TerminalPanel-CAXevSAa.js} +1 -1
  35. package/dist/assets/{activity-CInOo57V.js → activity-B3wutYIE.js} +4 -4
  36. package/dist/assets/activity-Be03cc7g.js +10 -0
  37. package/dist/assets/activity-CiYZ3y4e.js +10 -0
  38. package/dist/assets/activity-CmIA2MhR.js +10 -0
  39. package/dist/assets/activity-Cp5GhldB.js +10 -0
  40. package/dist/assets/activity-DFCf7l5d.js +10 -0
  41. package/dist/assets/activity-EbNUY7Ci.js +10 -0
  42. package/dist/assets/{chat-store-BDVZSmod.js → chat-store-C7InoWAO.js} +1 -1
  43. package/dist/assets/common-Bjl7V12m.js +1 -0
  44. package/dist/assets/common-BtyQBZBN.js +1 -0
  45. package/dist/assets/common-D0QL7rwb.js +1 -0
  46. package/dist/assets/common-DJRPtYAt.js +1 -0
  47. package/dist/assets/common-DPPTV3yw.js +1 -0
  48. package/dist/assets/common-DvjdaRhB.js +1 -0
  49. package/dist/assets/common-opV6EoLd.js +1 -0
  50. package/dist/assets/config-store-BbL0WxLE.js +21 -0
  51. package/dist/assets/{i18n-CvJB4U4z.js → i18n-Dv97urcO.js} +3 -3
  52. package/dist/assets/index-CON0Nbm4.css +1 -0
  53. package/dist/assets/index-DX6tHUzs.js +177 -0
  54. package/dist/assets/roster-ws-Cv_PHlEV.js +1 -0
  55. package/dist/assets/settings-BCvuzOJ6.js +1 -0
  56. package/dist/assets/settings-DMPKd-4K.js +1 -0
  57. package/dist/assets/settings-DxQ2452f.js +1 -0
  58. package/dist/assets/settings-Dz3StaVx.js +1 -0
  59. package/dist/assets/settings-EBW1mlXc.js +1 -0
  60. package/dist/assets/settings-Er2LHp9d.js +1 -0
  61. package/dist/assets/settings-EzznCDaX.js +1 -0
  62. package/dist/assets/stores-DXn5tdr7.js +7 -0
  63. package/dist/assets/ui-store-DxDwFHNK.js +1 -0
  64. package/dist/assets/{view-navigation-DTs4cSQ6.js → view-navigation-CpIPxhZp.js} +1 -1
  65. package/dist/components/ChatInput/skill-mention-picker.d.ts +10 -0
  66. package/dist/components/CustomRosterPanel.d.ts +0 -1
  67. package/dist/components/KanbanColumnView.d.ts +13 -0
  68. package/dist/components/OfficeMapCanvas.d.ts +0 -7
  69. package/dist/components/SettingsPanel/BrainSection.d.ts +1 -1
  70. package/dist/components/SettingsPanel/JevSection.d.ts +4 -0
  71. package/dist/components/SettingsPanel/OAuthLoginSection.d.ts +2 -0
  72. package/dist/components/SettingsPanel/ProviderSection.d.ts +5 -5
  73. package/dist/components/SettingsPanel/brain-section-options.d.ts +1 -1
  74. package/dist/components/SettingsPanel/contracts.d.ts +1 -0
  75. package/dist/components/SettingsPanel/official-servers.d.ts +1 -0
  76. package/dist/components/SettingsPanel/use-brain-section.d.ts +28 -0
  77. package/dist/components/SkillDetailView.d.ts +1 -1
  78. package/dist/components/chronicle-event-detail.d.ts +51 -0
  79. package/dist/components/context-dashboard-sections.d.ts +79 -0
  80. package/dist/components/use-office-map-canvas.d.ts +42 -0
  81. package/dist/components/use-skill-detail.d.ts +177 -0
  82. package/dist/components/vector-memory-panel/model.d.ts +9 -0
  83. package/dist/hooks/useProviderModels.d.ts +2 -0
  84. package/dist/hooks/useWebSocket.d.ts +3 -3
  85. package/dist/hooks/ws-handlers/brain-handlers.d.ts +18 -0
  86. package/dist/hooks/ws-handlers/goal-handlers.d.ts +7 -0
  87. package/dist/hooks/ws-handlers/misc-handlers.d.ts +2 -21
  88. package/dist/index.html +9 -9
  89. package/dist/index.js +15586 -12891
  90. package/dist/lib/auth-operation.d.ts +5 -0
  91. package/dist/lib/kanban-cleaner.d.ts +1 -1
  92. package/dist/lib/sdd-theme.d.ts +2 -2
  93. package/dist/lib/ws-client-actions.d.ts +2 -0
  94. package/dist/lib/ws-client-domain-methods.d.ts +2 -2
  95. package/dist/lib/ws-client-echo.d.ts +1 -1
  96. package/dist/lib/ws-client-session-methods.d.ts +1 -1
  97. package/dist/lib/ws-client.d.ts +0 -3
  98. package/dist/stores/council-log-store.d.ts +4 -0
  99. package/dist/stores/ui-store-types.d.ts +1 -1
  100. package/dist/types/client-message.d.ts +13 -0
  101. package/dist/types/jev.d.ts +62 -0
  102. package/dist/types/runtime.d.ts +5 -3
  103. package/dist/types/server-message-system.d.ts +4 -0
  104. package/dist/types/system.d.ts +2 -0
  105. package/package.json +10 -10
  106. package/dist/assets/ChimeraReviewsView-DLTrEJDS.js +0 -1
  107. package/dist/assets/ChronicleDashboard-DhgWbaXj.js +0 -1
  108. package/dist/assets/KanbanView-Bh0T3p3J.js +0 -3
  109. package/dist/assets/RequirementIntakeView-CEwUB7VD.js +0 -1
  110. package/dist/assets/SddFlowGraph-CZSwcAtS.js +0 -1
  111. package/dist/assets/SddHub-Cc79Ob7A.js +0 -2
  112. package/dist/assets/SkillDetailView-LkJyIBPb.js +0 -3
  113. package/dist/assets/activity-CDHIWIPJ.js +0 -10
  114. package/dist/assets/activity-D6XfckyA.js +0 -10
  115. package/dist/assets/activity-DapbBEf6.js +0 -10
  116. package/dist/assets/activity-E8vCWdG2.js +0 -10
  117. package/dist/assets/activity-e8OIpNGJ.js +0 -10
  118. package/dist/assets/activity-oTJsNfZu.js +0 -10
  119. package/dist/assets/common-BXosnbIt.js +0 -1
  120. package/dist/assets/common-CzfPgMjC.js +0 -1
  121. package/dist/assets/common-DDDPz7Dv.js +0 -1
  122. package/dist/assets/common-DYx9oSoC.js +0 -1
  123. package/dist/assets/common-DZ-05t4z.js +0 -1
  124. package/dist/assets/common-MjX8fcng.js +0 -1
  125. package/dist/assets/common-ipsuLC3n.js +0 -1
  126. package/dist/assets/config-store-mWuYCild.js +0 -22
  127. package/dist/assets/index-DLjaZSCH.js +0 -177
  128. package/dist/assets/index-DiX5j910.css +0 -1
  129. package/dist/assets/roster-ws-BRANim2Y.js +0 -1
  130. package/dist/assets/settings-B5Jy-ObI.js +0 -1
  131. package/dist/assets/settings-BXTJJ4n-.js +0 -1
  132. package/dist/assets/settings-BcXAVecM.js +0 -1
  133. package/dist/assets/settings-ByPfZHGm.js +0 -1
  134. package/dist/assets/settings-CCe4iHcn.js +0 -1
  135. package/dist/assets/settings-D2GLiaDO.js +0 -1
  136. package/dist/assets/settings-gB9nKL3f.js +0 -1
  137. package/dist/assets/stores-D5loyGLL.js +0 -7
  138. package/dist/assets/ui-store-DC3mkswy.js +0 -1
@@ -0,0 +1,7 @@
1
+ import{Dt as e,K as t,Nt as n,wt as r,zt as i}from"./config-store-BbL0WxLE.js";import{_o as a,bo as o,vo as s,yo as c}from"./vendor-V3ydTHqN.js";import"./i18n-Dv97urcO.js";import"./mailbox-store-ZQO_Rv6E.js";import"./ui-store-DxDwFHNK.js";import"./chat-store-C7InoWAO.js";import"./codemap-activity-store-Ha7XbGgq.js";var l=`__bug_hunt_continuation_pending__`,u=s()(a((e,t)=>({runs:{},start:(t,n)=>e(e=>({runs:{...e.runs,[t]:n}})),ownsRequest:(e,n)=>{let r=t().runs[e];return!!(r&&n!==void 0&&r.requestId!==null&&r.requestId!==l&&r.requestId===n)},advance:(n,r)=>{let i=t().runs[n];if(!i||i.requestId===l||r!==void 0&&i.requestId!==null&&i.requestId!==r)return null;if(i.currentRound>=i.totalRounds)return t().clear(n),null;let a={...i,currentRound:i.currentRound+1,requestId:l};return e(e=>({runs:{...e.runs,[n]:a}})),a},setRequestId:(t,n)=>e(e=>{let r=e.runs[t];return!r||r.requestId!==l?e:{runs:{...e.runs,[t]:{...r,requestId:n}}}}),stop:(e,n)=>{let r=t().runs[e];!r||n&&r.requestId!==null&&r.requestId!==n||t().clear(e)},recover:(t,n)=>e(e=>({runs:{...e.runs,[t]:{...n,requestId:null}}})),clear:t=>e(e=>{let{[t]:n,...r}=e.runs;return{runs:r}})}),{name:`wrongstack-bug-hunt-runs`,partialize:e=>({runs:e.runs})})),d=8;function f(t,a={}){let s=Math.max(1,a.max??d),l=new Map,u=e=>e&&e.length>0?e:r,f=e=>{let n=u(e),r=l.get(n);if(r)return r;for(;l.size>=s;){let e=[...l.keys()].find(e=>e!==n);if(e===void 0)break;l.delete(e)}let i=o(t);return l.set(n,i),i},p=(e=>{let t=c(i,e=>e.activeSessionId);return c(f(t),e)});return p.getState=()=>f(e()).getState(),p.setState=t=>f(e()).setState(t),p.subscribe=t=>f(e()).subscribe(t),p.for=f,p.dropSession=e=>{l.delete(u(e))},p.sessionIds=()=>[...l.keys()],n(e=>p.dropSession(e)),p}function p(e,t){return t>=100?`danger`:`warning`}function m(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 h=200,ee=50,g=300,_=200,v=100;function y(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 b=f(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 y(n,_,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()}),y(r,_,e=>e.status===`stopped`),{subagents:r,lastUpdated:Date.now()}}),pushEvent:(t,n,r,i,a)=>e(e=>{let o=n.kind??t,s=(t.includes(`budget`)||t.includes(`threshold`))&&typeof n.limit==`number`&&n.limit>0?Math.round(n.used/n.limit*100):void 0,c=s===void 0?t.includes(`consensus.vote_resolved`)?`info`:t.includes(`consensus.vote_initiated`)?`warning`:`info`:s>=100?`danger`:s>=85?`warning`:`info`;return{events:[{id:`${r}-${t}`,ts:r,type:t,subagentId:i,taskId:a,payload:n,kind:o,level:c,message:m(t,n)},...e.events].slice(0,h),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()+3e5}),y(i,v,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()}),y(i,g,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}),y(i,g,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()}),y(r,g,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;for(let t of e.budgetAlerts){let e=`${t.subagentId}:${t.kind}`;a.has(e)||a.set(e,t)}let 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}`,o=i>0?Math.round(r/i*100):0;return{budgetAlerts:[{id:a,ts:Date.now(),subagentId:t,kind:n,level:p(n,o),used:r,limit:i,pct:o},...e.budgetAlerts].slice(0,ee),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()})}),{max:4});function x(e,t){return{seatId:C(e.seatId)??`seat`,persona:C(e.persona)??`voter`,status:C(e.status)??`valid`,optionId:C(e.optionId),stance:C(e.stance),rationale:C(e.rationale),providerId:C(e.providerId),model:C(e.model),veto:T(e.veto),weight:w(e.weight),durationMs:w(e.durationMs),error:C(e.error),round:w(e.round),changed:T(e.changed),at:w(e.at)??t}}function te(e){if(e.phase===`voting`){let t=e.seats.reduce((e,t)=>Math.max(e,t.round??1),1),n=e.seats.filter(e=>(e.round??1)===t).length;return`voting${t>1?` r${t}`:``} · ${n} seat${n===1?``:`s`} in`}let t=e.configuredSeatCount??e.seats.length,n=[e.resolution??e.status??`resolved`,`${e.validVoteCount??e.seats.length}/${t} seats`,`${e.distinctTargetCount??0} distinct target${e.distinctTargetCount===1?``:`s`}`];if(e.rounds!==void 0&&e.rounds>1){let t=e.deliberationChanges??0;n.push(`${e.rounds} rounds${t>0?`, ${t} changed`:`, none changed`}`)}return e.judgeUsed&&n.push(`judge${e.judgeLabel?` ${e.judgeLabel}`:``}`+(e.judgeIsVoter?` (also a voter)`:``)),e.durationMs!==void 0&&n.push(`${Math.round(e.durationMs/100)/10}s`),e.totalTokens&&n.push(`${e.totalTokens} tok`),n.join(` · `)}function S(e,t,n,r){let i=e.findIndex(e=>e.requestId===t);if(i>=0){let t=e[i],n=r(t);if(n===t)return e;let a=[...e];return a[i]=n,a}return[r({requestId:t,phase:`voting`,startedAt:n,seats:[]}),...e].slice(0,50)}var ne=f(e=>({panels:[],questions:new Map,recordVote:t=>{let n=C(t.requestId);if(!n)return;let r=w(t.at),i=r??Date.now();e(e=>({panels:S(e.panels,n,i,a=>{let o=C(t.seatId)??`seat`,s=x(t,i),c=a.seats.find(e=>e.seatId===o),l=a.question??e.questions.get(n);return a.phase===`resolved`&&(r===void 0?!c:r>(a.resolvedAt??a.startedAt))?{requestId:n,phase:`voting`,startedAt:i,seats:[s],question:l}:a.phase===`resolved`&&a.hasFinalVotes?a:c?(s.round??1)<(c.round??1)||(s.round??1)===(c.round??1)&&s.at<c.at?a:{...a,question:l,seats:a.seats.map(e=>e.seatId===o?s:e)}:{...a,question:l,seats:[...a.seats,s]}})}))},recordResolution:t=>{let n=C(t.requestId);if(!n)return;let r=w(t.at),i=r??Date.now(),a=t.usage;e(e=>({panels:S(e.panels,n,i,o=>r!==void 0&&(r<o.startedAt||o.resolvedAt!==void 0&&r<=o.resolvedAt)?o:{...o,question:o.question??e.questions.get(n),phase:`resolved`,hasFinalVotes:Array.isArray(t.votes),seats:Array.isArray(t.votes)?t.votes.filter(e=>e&&typeof e==`object`&&!Array.isArray(e)).map(e=>x(e,i)):o.seats,resolvedAt:w(t.at)??i,status:C(t.status),resolution:C(t.resolution),optionId:C(t.optionId),reason:C(t.reason),configuredSeatCount:w(t.configuredSeatCount),validVoteCount:w(t.validVoteCount),distinctTargetCount:w(t.distinctTargetCount),judgeUsed:T(t.judgeUsed),judgeLabel:C(t.judgeLabel),judgeIsVoter:T(t.judgeIsVoter),rounds:w(t.rounds),deliberationChanges:w(t.deliberationChanges),totalTokens:w(a?.totalTokens),durationMs:w(a?.durationMs),warnings:Array.isArray(t.warnings)?t.warnings.filter(e=>typeof e==`string`):void 0})}))},noteQuestion:(t,n)=>{let r=n.trim();t&&r&&e(e=>{let n=e.panels.findIndex(e=>e.requestId===t);if(n<0){if(e.questions.get(t)===r)return e;let n=new Map(e.questions);for(n.delete(t),n.set(t,r);n.size>50;)n.delete(n.keys().next().value);return{questions:n}}let i=e.panels[n];if(i.question===r)return e;let a=[...e.panels];return a[n]={...i,question:r},{panels:a}})},clear:()=>e({panels:[],questions:new Map})}));function C(e){return typeof e==`string`&&e.trim()?e:void 0}function w(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function T(e){return typeof e==`boolean`?e:void 0}var E=s()(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 D(){return`ref_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function O(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 k(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
+ …`),{text:a,truncated:i}}function A(e){return e.length===0?``:[`[File reference contract]`,`Before answering or modifying anything related to these references, use the available file-reading tools to read each complete project file:`,...e.map(e=>`- ${JSON.stringify(e)}`),`If a read is paginated or chunked, continue on the same path until EOF. Do not treat an inline preview as the complete file.`].join(`
5
+ `)}function j(e,t){if(e.length===0)return``;let n=[],r=new Set;for(let i of e){if(i.kind===`file`){let e=t?.[i.path];if(e){let t=O(i.path),a=t?`\`\`\`${t}`:"```",o=k(e),s=o.truncated?`preview; complete read required`:`entire file`;n.push(`${a}\n// ${i.path} (${s})\n${o.text}\n\`\`\``),o.truncated&&r.add(i.path)}else n.push(`@${i.path}`),r.add(i.path);continue}let e=O(i.path),a=e?`\`\`\`${e}`:"```",o=`// ${i.path}:${i.startLine}-${i.endLine}`,s=k(i.kind===`snippet`?i.content:i.preview);n.push(`${a}\n${o}\n${s.text}\n\`\`\``),s.truncated&&r.add(i.path)}let i=A([...r]);return[...n,i].filter(Boolean).join(`
6
+
7
+ `)}var re=s()((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:D()};e({refs:[...r.refs,i]})},removeRef:t=>{e(e=>({refs:e.refs.filter(e=>e.id!==t)}))},clearRefs:()=>e({refs:[]})})),ie=s()(e=>({info:null,setInfo:t=>e({info:t}),clear:()=>e({info:null})})),ae=s()((e,t)=>({result:null,loading:!1,currentSeq:0,setResult:t=>e(e=>t.reqSeq===e.currentSeq?{result:t,loading:!1}:{}),setLoading:()=>e({loading:!0,result:null}),clear:()=>e({result:null,loading:!1}),nextSeq:()=>{let n=t().currentSeq+1;return e({currentSeq:n}),n}})),M=s()(e=>({phases:[],activePhaseId:null,overallPercent:0,autonomous:!1,title:null,goal:null,status:`idle`,multiBoard:!1,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,multiBoard:t.multiBoard??e.multiBoard,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`,multiBoard:!1,lastEvent:null,lastError:null,graphs:[],progress:null}),hydrateFromServer:e=>{e({type:`goal.list`}),e({type:`goal.state`})}}));function N(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 P(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(N):void 0,lastTask:typeof e.lastTask==`string`?e.lastTask:void 0,lastStatus:typeof e.lastStatus==`string`?e.lastStatus:void 0}}var F=s()(e=>({goal:null,setGoal:t=>e({goal:P(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{t()?.send?.({type:`goal-state.get`})}catch{}}}));function I(e,t){return e.presence?.some(e=>e.active)===!0||e.tags?.some(e=>e.startsWith(`session:`)&&t.includes(e.slice(8)))===!0}var L=3e5,R=s()((e,t)=>({boards:[],boardTotal:0,activeBoardTotal:0,orphanedBoardTotal:0,activeBoardId:null,activeBoard:null,loading:!1,lastOutboundAction:null,error:null,queueHealth:null,supervisorSnapshot:null,workbench:null,verificationActivity:{},boardHistory:[],fetchBoardHistory:e=>{t().sendKanban(`kanban.board.history`,{boardId:e})},setLoading:t=>e({loading:t}),sendKanban:(t,n)=>(e({loading:!0,lastOutboundAction:t}),t),transitionTask:(t,n,r,i)=>{let a=`kanban.task.transition`;return e({loading:!0,lastOutboundAction:a}),a},dispatchTask:(t,n,r)=>{let i=`kanban.task.dispatch`;return e({loading:!0,lastOutboundAction:i}),i},moveTask:(t,n,r)=>{let i=`kanban.task.move`;return e({loading:!0,lastOutboundAction:i}),i},removeTask:(t,n)=>{let r=`kanban.task.remove`;return e({loading:!0,lastOutboundAction:r}),r},setActiveBoardId:t=>e({activeBoardId:t,queueHealth:null,supervisorSnapshot:null,verificationActivity:{}}),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.workbench`&&r.data){e({workbench: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=>{let t=a?e.boards.find(e=>e.id===o):void 0,n=t?W(t):void 0;return{boards:a?e.boards.filter(e=>e.id!==o):e.boards,boardTotal:a?Math.max(0,e.boardTotal-1):e.boardTotal,activeBoardTotal:n===!0?Math.max(0,e.activeBoardTotal-1):e.activeBoardTotal,orphanedBoardTotal:n===!1?Math.max(0,e.orphanedBoardTotal-1):e.orphanedBoardTotal,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.board.history`){Array.isArray(i)&&e({boardHistory:i});return}if(n===`kanban.task.verification_started`){let t=i;if(t?.boardId&&t.taskId){let n=`${t.boardId}:${t.taskId}`;e(e=>{let t=Date.now(),r=Object.fromEntries(Object.entries(e.verificationActivity).filter(([,e])=>t-e.startedAt<L));return r[n]={startedAt:t},{verificationActivity:r,loading:!1,error:null}})}return}if(n===`kanban.task.verification_completed`&&V(i)){let t=`${i.boardId}:${i.task.id}`;e(e=>{let n={...e.verificationActivity};if(delete n[t],e.activeBoard&&e.activeBoard.id===i.boardId){let t=J(e.activeBoard,i.task);return{verificationActivity:n,boards:q(e.boards,K(t)),activeBoard:t,loading:!1,error:null}}return{verificationActivity:n,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.create`&&n!==`kanban.duplicate`&&n!==`kanban.generate`){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 I(e,[])}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 oe(e){switch(e){case`tui`:return`tui`;case`cli`:case`repl`:return`repl`;case`webui`:return`webui`;default:return`webui`}}function se(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[oe(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 ce(e){if(e!==void 0)return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function le(e){return e.map(e=>({...e,agents:e.agents.map(e=>({...e,ctxPct:ce(e.ctxPct)}))}))}var ue=0,Y=s()(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=le(t),r=Y.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].tokensIn!==s[t].tokensIn||o[t].tokensOut!==s[t].tokensOut||o[t].costUsd!==s[t].costUsd||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,...se(n),lastUpdated:Date.now()})},addMailActivity:t=>e(e=>({mailActivity:[{...t,seq:t.seq??++ue},...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:{...Y.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()})})),de=[3e4,6e4,12e4,3e5,6e5],X=12e4,fe=s()(a(e=>({viewMode:`office`,showHud:!0,showLegend:!0,showMinimap:!0,showControls:!0,animateEdges:!0,showFeed:!0,background:`dots`,waitThresholdMs:X,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}),setWaitThresholdMs:t=>e({waitThresholdMs:Number.isFinite(t)&&t>0?Math.round(t):X})}),{name:`wrongstack-officemap`}));function Z(e){return`${e.providerId}\u0000${e.meterId}`}function pe(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.providerId==`string`&&typeof t.meterId==`string`&&Array.isArray(t.windows)&&typeof t.capturedAt==`number`}var me=s(e=>({meters:{},apply:t=>e(e=>{let n={...e.meters};for(let e of t){if(!pe(e))continue;let t=n[Z(e)];n[Z(e)]={...e,...e.planLabel===void 0&&t?.planLabel!==void 0?{planLabel:t.planLabel}:{},...e.meterLabel===void 0&&t?.meterLabel!==void 0?{meterLabel:t.meterLabel}:{}}}return{meters:n}}),clear:()=>e({meters:{}})}));function he(e){let t;for(let n of Object.values(e))for(let e of n.windows){if(!t||e.usedPercent>t.window.usedPercent){t={snapshot:n,window:e};continue}if(e.usedPercent===t.window.usedPercent){let r=e.resetsAt,i=t.window.resetsAt;r!==void 0&&(i===void 0||r<i)&&(t={snapshot:n,window:e})}}return t}function ge(e){if(e.label)return e.label;let t=e.windowMinutes;return t!==void 0&&Number.isFinite(t)&&t>0?t%1440==0?`${t/1440}d`:t%60==0?`${t/60}h`:`${t}m`:e.id}function _e(e,t=Date.now()){if(e?.resetsAt===void 0)return;let n=e.resetsAt*1e3-t;if(n<=0)return;let r=Math.floor(n/6e4);if(r<1)return`${Math.max(1,Math.round(n/1e3))}s`;let i=Math.floor(r/1440),a=Math.floor(r%1440/60),o=r%60;return i>0?a>0?`${i}d ${a}h`:`${i}d`:a>0?o>0?`${a}h ${o}m`:`${a}h`:`${o}m`}var Q=e=>`${e.providerId}\u0000${e.model}`,ve=s(e=>({entries:{},audit:[],summary:null,loading:!1,error:null,update:t=>e(e=>{let n={...e.entries},r=Q(t);if(t.state===`healthy`)delete n[r];else{let e=n[r],i=Object.fromEntries(Object.entries(t).filter(e=>e[1]!==void 0));n[r]={...e,...i}}return{entries:n}}),hydrate:t=>e({entries:Object.fromEntries(t.filter(e=>e.state!==`healthy`).map(e=>[Q(e),e]))}),applySnapshot:t=>{let n=t.statuses;if(!Array.isArray(n)){e({error:`Invalid snapshot from server`,loading:!1});return}let r={};for(let e of n){if(!e||typeof e!=`object`)continue;let t=e,n=typeof t.providerId==`string`?t.providerId:``,i=typeof t.model==`string`?t.model:``;if(!n||!i)continue;let a=t.state;(a===`healthy`||a===`degraded`||a===`blocked`)&&(r[`${n}\u0000${i}`]={providerId:n,model:i,state:a,reason:(typeof t.lastErrorKind==`string`?t.lastErrorKind:``)||a,updatedAt:typeof t.lastFailureAt==`number`?t.lastFailureAt:Date.now(),...typeof t.stateExpiresAt==`number`?{stateExpiresAt:t.stateExpiresAt}:{},...typeof t.consecutiveFailures==`number`?{consecutiveFailures:t.consecutiveFailures}:{},...typeof t.totalFailures==`number`?{totalFailures:t.totalFailures}:{},...typeof t.rateLimitHits==`number`?{rateLimitHits:t.rateLimitHits}:{},...typeof t.lastErrorMessage==`string`?{lastErrorMessage:t.lastErrorMessage}:{},...typeof t.lastErrorKind==`string`?{lastErrorKind:t.lastErrorKind}:{},...typeof t.lastErrorStatus==`number`?{lastErrorStatus:t.lastErrorStatus}:{},...Array.isArray(t.recentErrors)?{recentErrors:t.recentErrors.slice(0,20)}:{},...typeof t.lastSessionId==`string`?{lastSessionId:t.lastSessionId}:{},...typeof t.lastAgentId==`string`?{lastAgentId:t.lastAgentId}:{},...typeof t.lastFailureAt==`number`?{lastFailureAt:t.lastFailureAt}:{}})}let i=t;e({entries:r,summary:{totalPairs:typeof i.totalPairs==`number`?i.totalPairs:0,healthy:typeof i.healthy==`number`?i.healthy:0,degraded:typeof i.degraded==`number`?i.degraded:0,blocked:typeof i.blocked==`number`?i.blocked:0,totalFailures:typeof i.totalFailures==`number`?i.totalFailures:0,totalRateLimits:typeof i.totalRateLimits==`number`?i.totalRateLimits:0},error:null,loading:!1})},setAudit:t=>e({audit:t}),setLoading:t=>e({loading:t}),setError:t=>e({error:t,loading:!1}),removeEntry:(t,n)=>e(e=>{let r={...e.entries};return delete r[Q({providerId:t,model:n})],{entries:r}}),clear:()=>e({entries:{},audit:[],summary:null,error:null})})),ye=s()(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})})),be=f(e=>({sideEffects:[],loading:!1,setSideEffects:t=>e({sideEffects:t,loading:!1}),setLoading:t=>e({loading:t}),clear:()=>e({sideEffects:[],loading:!1})})),xe=s()(e=>({specs:[],detail:null,expandedSpecId:null,setSpecs:t=>e({specs:t}),setDetail:t=>e({detail:t}),setExpanded:t=>e({expandedSpecId:t,detail:null})})),Se=new Set([`idle`,`queued`,`discovering`,`inventorying`,`enriching`,`researching`,`synthesizing`,`completed`,`failed`,`cancelled`]);function Ce(e){return Se.has(e)?e:void 0}var $={snapshot:null,stale:!1,loading:!1,error:null,activeJob:null,lastWorkspaceId:null,reportId:null},we=s()(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=Ce(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($)})),Te=s()(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{te as C,u as D,f as E,E as S,b as T,M as _,ye as a,j as b,ge as c,de as d,fe as f,F as g,I as h,be as i,he as l,R as m,we as n,ve as o,Y as p,xe as r,_e as s,Te as t,me as u,ae as v,ne as w,re as x,ie as y};
@@ -0,0 +1 @@
1
+ import{_o as e,vo as t}from"./vendor-V3ydTHqN.js";var n=[`chat`,`agents`,`files`,`changes`,`mailbox`,`skills`,`design`];function r(e){return n.includes(e)?e:e===`context`||e===`history`||e===`sessions`||e===`projects`?`chat`:e===`worktrees`?`changes`:`chat`}var i=`chat.settings.provider-test.memory.roster.context.goal.kanban.sddhub.files.changes.history.sessions.session-inspect.setup.skill.mailbox.debug.design-gallery.refresh-debug.analytics.codemap.techstack.chronicle.intake.deadcode.prompts.chimera`.split(`.`);function a(e){return i.includes(e)?e:`chat`}var o=[`goal`,`goal-state`,`fleet`,`work`,`worktrees`,`collab`];function s(e){return e==null||!o.includes(e)?null:e}var c=[`general`,`fonts`,`provider`,`jev`,`connection`,`agent`,`execution`,`fallbacks`,`routing`,`fleet`,`integrations`,`chimera`,`context`,`logs`,`security`,`display`];function l(e){return c.includes(e)?e:`general`}function u(){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 d(e={}){return{currentView:`chat`,activeActivity:`chat`,sidebarOpen:e.sidebarOpen??!1,dockSection:null,chromeSessionId:null,chromeBySession:{},dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,terminalOpen:!1,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,selectedMailMessage:null,refinePanel:null,skillsState:f(),chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function f(){return{selectedSkill:null,navHistory:[],historyIndex:-1,detailOpen:!1,knownRefs:{},updateAvailableCount:0}}function p(){return{sidebarOpen:!0,activeActivity:`chat`,currentView:`chat`,inspectSessionId:null,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,promptInsertRequest:null,refinePanel:null,draftInput:``,draftImages:[],processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,terminalOpen:!1,dockSection:null,workDashboardTab:`todos`,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,agentRosterActiveTab:`live`,changesPanelTab:`changes`,dockCustomizeOpen:!1,skillsState:f(),selectedMailMessage:null,scrollPositions:{},chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function m(e){return{sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,currentView:e.currentView,inspectSessionId:e.inspectSessionId,searchOpen:e.searchOpen,searchQuery:e.searchQuery,searchActiveMessageId:e.searchActiveMessageId,scrollTarget:e.scrollTarget,modelSwitcherOpen:e.modelSwitcherOpen,promptLibraryOpen:e.promptLibraryOpen,promptInsertRequest:e.promptInsertRequest,refinePanel:e.refinePanel,draftInput:e.draftInput,draftImages:e.draftImages,processMonitorOpen:e.processMonitorOpen,queuePanelOpen:e.queuePanelOpen,cronJobsOpen:e.cronJobsOpen,sideContextBreakdownOpen:e.sideContextBreakdownOpen,terminalOpen:e.terminalOpen,dockSection:e.dockSection,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,inspectorTarget:e.inspectorTarget,inspectorFocusedAgentId:e.inspectorFocusedAgentId,agentRosterActiveTab:e.agentRosterActiveTab,changesPanelTab:e.changesPanelTab,dockCustomizeOpen:e.dockCustomizeOpen,skillsState:e.skillsState,selectedMailMessage:e.selectedMailMessage,scrollPositions:e.scrollPositions,chatSwitcherOpen:e.chatSwitcherOpen,chatCheckpointOpen:e.chatCheckpointOpen,chatMemoryPanelOpen:e.chatMemoryPanelOpen,chatContextBreakdownOpen:e.chatContextBreakdownOpen,chatContextEditorOpen:e.chatContextEditorOpen,chatToolStatsOpen:e.chatToolStatsOpen,chatInputCollapsed:e.chatInputCollapsed}}function h(e,t){return e.chromeSessionId?{chromeBySession:{...e.chromeBySession,[e.chromeSessionId]:{...m(e),...t}}}:{}}var g={name:`wrongstack-ui`,version:8,migrate:(e,t)=>{let i=e??{};if(i.activeActivity=r(i.activeActivity),typeof i.sidebarWidth==`number`&&(i.sidebarWidth=Math.max(240,Math.min(560,i.sidebarWidth))),t<2&&(delete i.fleetDrawerOpen,delete i.agentsDrawerOpen),`currentView`in i&&(i.currentView=a(i.currentView)),`dockSection`in i&&(i.dockSection=s(i.dockSection)),`settingsActiveTab`in i&&(i.settingsActiveTab=l(i.settingsActiveTab)),`activityBarOrder`in i&&i.activityBarOrder!=null){let e=i.activityBarOrder,t=new Set(n),r=Array.isArray(e.panels)?Array.from(new Set(e.panels.filter(e=>typeof e==`string`&&t.has(e)))):[],o=Array.isArray(e.views)?Array.from(new Set(e.views.map(a))):[];i.activityBarOrder=r.length||o.length?{panels:r,views:o}:null}return t<6&&delete i.draftInput,t<7&&(delete i.chromeSessionId,delete i.chromeBySession),i},merge:(e,t)=>{let n={...t,...e??{}};return n.activeActivity=r(n.activeActivity),n.currentView=a(n.currentView),n.dockSection=s(n.dockSection),n.settingsActiveTab=l(n.settingsActiveTab),typeof n.chromeSessionId!=`string`&&(n.chromeSessionId=null),(typeof n.chromeBySession!=`object`||n.chromeBySession===null)&&(n.chromeBySession={}),n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth)),u()?{...n,...d({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,activityBarOrder:e.activityBarOrder,currentView:e.currentView,dockSection:e.dockSection,settingsActiveTab:e.settingsActiveTab,scrollPositions:e.scrollPositions})},_=2048,v=2097152,y=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),b=class extends Error{reason;constructor(e,t){super(e),this.reason=t,this.name=`ImageAttachmentError`}};function x(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function S(e){let t=e.indexOf(`,`),n=t>=0?e.length-t-1:e.length;return Math.floor(n*3/4)}function C(e){return/^data:([^;,]+)/.exec(e)?.[1]??`image/png`}async function w(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 T(e,t,n,r,i){let a=document.createElement(`canvas`);a.width=t,a.height=n;let o=a.getContext(`2d`);if(!o)throw new b(`canvas 2d context unavailable`,`decode_failed`);o.drawImage(e,0,0,t,n);let s=a.toDataURL(`image/webp`,i);return s.startsWith(`data:image/webp`)?s:r?a.toDataURL(`image/png`):a.toDataURL(`image/jpeg`,i)}var E=0;function D(){return E+=1,`img_${Date.now()}_${E}`}async function O(e){let t=y.has(e.type),n;try{n=await w(e)}catch{throw new b(`Could not decode image "${e.name}"`,`decode_failed`)}let r=n.width,i=n.height,a=Math.max(r,i);if(!(!t||a>_||e.size>v)){let t=await x(e);return{id:D(),dataUrl:t,mediaType:e.type,bytes:S(t),name:e.name||void 0,width:r,height:i}}let o=e.type!==`image/jpeg`,s=Math.min(1,_/a),c=.85,l=T(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c);S(l)>4194304&&(s=Math.min(s,1280/a),c=.7,l=T(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c)),`close`in n&&n.close();let u=S(l);if(u>4194304)throw new b(`Image "${e.name}" is too large after compression`,`too_large`);return{id:D(),dataUrl:l,mediaType:C(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 k(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 A=t()(e(e=>({sidebarOpen:!0,activeActivity:`chat`,settingsOpen:!1,currentView:`chat`,showConfirmDialog:!1,confirmInfo:null,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,promptHistory:[],sidebarWidth:304,pinnedIds:[],compactMode:!1,modelSwitcherOpen:!1,favoriteSessionIds:[],sessionNicknames:{},fileExplorerWidth:220,refineEnabled:!0,refinePanel:null,promptLibraryOpen:!1,promptInsertRequest:null,dockSection:null,workDashboardTab:`todos`,chromeSessionId:null,chromeBySession:{},hiddenChips:[],dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,inspectSessionId:null,terminalOpen:!1,terminalCreateNonce:0,agentRosterActiveTab:`live`,changesPanelTab:`changes`,settingsActiveTab:`general`,scrollPositions:{},activityBarOrder:null,draftInput:``,draftImages:[],sideContextBreakdownOpen:!1,chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1,selectedMailMessage:null,skillsState:f(),selectActivity:t=>e(e=>({activeActivity:t,...h(e,{activeActivity:t})})),toggleSidebar:()=>e(e=>{let t=!e.sidebarOpen;return{sidebarOpen:t,...h(e,{sidebarOpen:t})}}),setSidebarOpen:t=>e(e=>({sidebarOpen:t,...h(e,{sidebarOpen:t})})),setSettingsOpen:t=>e({settingsOpen:t}),setCurrentView:t=>e(e=>{let n=a(t);return{currentView:n,...h(e,{currentView:n})}}),showConfirm:t=>e({showConfirmDialog:!0,confirmInfo:t}),hideConfirm:()=>e({showConfirmDialog:!1,confirmInfo:null}),setPaletteOpen:t=>e({paletteOpen:t}),setShortcutsOpen:t=>e({shortcutsOpen:t}),setSearchOpen:t=>e(e=>({searchOpen:t,searchQuery:``,searchActiveMessageId:null,...h(e,{searchOpen:t,searchQuery:``,searchActiveMessageId:null})})),setSearchQuery:t=>e(e=>({searchQuery:t,...h(e,{searchQuery:t})})),setSearchActiveMessageId:t=>e(e=>({searchActiveMessageId:t,...h(e,{searchActiveMessageId:t})})),requestScrollToMessage:t=>e(e=>{let n={id:t,nonce:(e.scrollTarget?.nonce??0)+1};return{scrollTarget:n,...h(e,{scrollTarget:n})}}),pushPrompt:t=>e(e=>{let n=t.trim();return n?{promptHistory:[n,...e.promptHistory.filter(e=>e!==n)].slice(0,50)}:e}),setSidebarWidth:t=>e({sidebarWidth:Math.max(240,Math.min(560,Math.round(t)))}),togglePin:t=>e(e=>({pinnedIds:e.pinnedIds.includes(t)?e.pinnedIds.filter(e=>e!==t):[...e.pinnedIds,t]})),unpinAll:()=>e({pinnedIds:[]}),toggleCompactMode:()=>e(e=>({compactMode:!e.compactMode})),setModelSwitcherOpen:t=>e(e=>({modelSwitcherOpen:t,...h(e,{modelSwitcherOpen:t})})),toggleFavoriteSession:t=>e(e=>({favoriteSessionIds:e.favoriteSessionIds.includes(t)?e.favoriteSessionIds.filter(e=>e!==t):[...e.favoriteSessionIds,t]})),setSessionNickname:(t,n)=>e(e=>{let r=n.trim(),i={...e.sessionNicknames};return r?i[t]=r:delete i[t],{sessionNicknames:i}}),setFileExplorerWidth:t=>e({fileExplorerWidth:Math.max(160,Math.min(400,Math.round(t)))}),toggleRefineEnabled:()=>e(e=>({refineEnabled:!e.refineEnabled})),setRefinePanel:t=>e(e=>({refinePanel:t,...h(e,{refinePanel:t})})),setPromptLibraryOpen:t=>e(e=>({promptLibraryOpen:t,...h(e,{promptLibraryOpen:t})})),requestPromptInsert:t=>e(e=>({promptInsertRequest:t,promptLibraryOpen:!1,...h(e,{promptInsertRequest:t,promptLibraryOpen:!1})})),clearPromptInsert:()=>e(e=>({promptInsertRequest:null,...h(e,{promptInsertRequest:null})})),setDockSection:t=>e(e=>({dockSection:t,...h(e,{dockSection:t,inspectorOpen:!t&&e.inspectorOpen}),...t?{inspectorOpen:!1}:{}})),setWorkDashboardTab:t=>e(e=>({workDashboardTab:t,...h(e,{workDashboardTab:t})})),bindSessionChrome:t=>e(e=>{if(e.chromeSessionId===t)return{};let n={...e.chromeBySession};if(e.chromeSessionId){let t=m(e);n[e.chromeSessionId]=t.refinePanel?{...t,refinePanel:null,draftInput:t.refinePanel.original}:t}let r=(t?n[t]:void 0)??p();return{chromeSessionId:t,chromeBySession:n,subagentChatFocusId:null,subagentChatFocusSessionId:t,sidebarOpen:r.sidebarOpen??p().sidebarOpen,activeActivity:r.activeActivity,currentView:r.currentView,inspectSessionId:r.inspectSessionId,searchOpen:r.searchOpen,searchQuery:r.searchQuery,searchActiveMessageId:r.searchActiveMessageId,scrollTarget:r.scrollTarget,modelSwitcherOpen:r.modelSwitcherOpen,promptLibraryOpen:r.promptLibraryOpen,promptInsertRequest:r.promptInsertRequest,refinePanel:r.refinePanel,draftInput:r.draftInput,draftImages:r.draftImages,processMonitorOpen:r.processMonitorOpen,queuePanelOpen:r.queuePanelOpen,cronJobsOpen:r.cronJobsOpen,sideContextBreakdownOpen:r.sideContextBreakdownOpen,terminalOpen:r.terminalOpen,dockSection:r.dockSection,workDashboardTab:r.workDashboardTab,inspectorOpen:r.inspectorOpen,inspectorTab:r.inspectorTab,inspectorTarget:r.inspectorTarget,inspectorFocusedAgentId:r.inspectorFocusedAgentId,agentRosterActiveTab:r.agentRosterActiveTab,changesPanelTab:r.changesPanelTab,dockCustomizeOpen:r.dockCustomizeOpen??!1,skillsState:r.skillsState??f(),selectedMailMessage:r.selectedMailMessage??null,scrollPositions:r.scrollPositions??{},chatSwitcherOpen:r.chatSwitcherOpen??!1,chatCheckpointOpen:r.chatCheckpointOpen??!1,chatMemoryPanelOpen:r.chatMemoryPanelOpen??!1,chatContextBreakdownOpen:r.chatContextBreakdownOpen??!1,chatContextEditorOpen:r.chatContextEditorOpen??!1,chatInputCollapsed:r.chatInputCollapsed??!1}}),toggleDockSection:t=>e(e=>{let n=e.dockSection===t?null:t;return{dockSection:n,...h(e,{dockSection:n,inspectorOpen:!n&&e.inspectorOpen}),...n?{inspectorOpen:!1}:{}}}),toggleChipHidden:t=>e(e=>{let n=e.hiddenChips.includes(t),r=!n&&e.dockSection===t?null:e.dockSection;return{hiddenChips:n?e.hiddenChips.filter(e=>e!==t):[...e.hiddenChips,t],dockSection:r,...h(e,{dockSection:r})}}),showDockChip:t=>e(e=>({hiddenChips:e.hiddenChips.filter(e=>e!==t)})),setDockCustomizeOpen:t=>e(e=>({dockCustomizeOpen:t,...h(e,{dockCustomizeOpen:t})})),setAgentRosterActiveTab:t=>e(e=>({agentRosterActiveTab:t,...h(e,{agentRosterActiveTab:t})})),setChangesPanelTab:t=>e(e=>({changesPanelTab:t,...h(e,{changesPanelTab:t})})),setFleetMonitorOpen:t=>e(e=>({fleetMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,...h(e,{inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setAgentsMonitorOpen:t=>e(e=>({agentsMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,...h(e,{inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setInspectorOpen:t=>e(e=>({inspectorOpen:t,...t?{dockSection:null}:{inspectorTarget:null},...h(e,{inspectorOpen:t,dockSection:t?null:e.dockSection,inspectorTarget:t?e.inspectorTarget:null})})),setInspectorTab:t=>e(e=>({inspectorTab:t,...h(e,{inspectorTab:t})})),openInspectorTarget:t=>e(e=>{let n=e.inspectorTab,r=e.inspectorFocusedAgentId;return t.kind===`fleet`?n=t.tab??`fleet`:t.kind===`agent`?(n=`agents`,r=t.agentId):t.kind===`sideEffects`?n=`sideEffects`:t.kind===`council`&&(n=`council`),{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null,...h(e,{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null})}}),closeInspector:()=>e(e=>({inspectorOpen:!1,inspectorTarget:null,...h(e,{inspectorOpen:!1,inspectorTarget:null})})),setInspectorFocusedAgentId:t=>e(e=>({inspectorFocusedAgentId:t,...h(e,{inspectorFocusedAgentId:t})})),setSubagentChatFocus:(t,n)=>e(e=>({subagentChatFocusId:t,subagentChatFocusSessionId:(n===``?null:n)??e.chromeSessionId??e.subagentChatFocusSessionId??null})),forgetSession:t=>e(e=>{let n=e.subagentChatFocusSessionId===t,r=t in e.chromeBySession||e.chromeSessionId===t;if(!n&&!r)return e;let i={...e.chromeBySession};delete i[t];let a=e.subagentChatFocusSessionId===t,o=e.chromeSessionId===t;return{chromeBySession:i,...a?{subagentChatFocusId:null,subagentChatFocusSessionId:null}:{},...o?{chromeSessionId:null,...p()}:{}}}),toggleInspector:()=>e(e=>{let t=!e.inspectorOpen,n=t?null:e.dockSection;return{inspectorOpen:t,dockSection:n,...h(e,{inspectorOpen:t,dockSection:n})}}),setProcessMonitorOpen:t=>e(e=>({processMonitorOpen:t,...h(e,{processMonitorOpen:t})})),setQueuePanelOpen:t=>e(e=>({queuePanelOpen:t,...h(e,{queuePanelOpen:t})})),setCronJobsOpen:t=>e(e=>({cronJobsOpen:t,...h(e,{cronJobsOpen:t})})),setInspectSession:t=>e(e=>({inspectSessionId:t,currentView:`session-inspect`,...h(e,{inspectSessionId:t,currentView:`session-inspect`})})),clearInspectSession:()=>e(e=>({inspectSessionId:null,currentView:`chat`,...h(e,{inspectSessionId:null,currentView:`chat`})})),setTerminalOpen:t=>e(e=>({terminalOpen:t,...h(e,{terminalOpen:t})})),toggleTerminal:()=>e(e=>{let t=!e.terminalOpen;return{terminalOpen:t,...h(e,{terminalOpen:t})}}),requestTerminalCreate:()=>e(e=>({terminalCreateNonce:e.terminalCreateNonce+1})),setSettingsActiveTab:t=>e({settingsActiveTab:l(t)}),setScrollPosition:(t,n)=>e(e=>{let r={...e.scrollPositions,[t]:n};return{scrollPositions:r,...h(e,{scrollPositions:r})}}),setActivityBarOrder:t=>e({activityBarOrder:t}),setDraftInput:t=>e(e=>({draftInput:t,...h(e,{draftInput:t})})),setDraftImages:t=>e(e=>{let n=t.slice(-8);return{draftImages:n,...h(e,{draftImages:n})}}),setSideContextBreakdownOpen:t=>e(e=>({sideContextBreakdownOpen:t,...h(e,{sideContextBreakdownOpen:t})})),setChatSwitcherOpen:t=>e(e=>({chatSwitcherOpen:t,...h(e,{chatSwitcherOpen:t})})),setChatCheckpointOpen:t=>e(e=>({chatCheckpointOpen:t,...h(e,{chatCheckpointOpen:t})})),setChatMemoryPanelOpen:t=>e(e=>({chatMemoryPanelOpen:t,...h(e,{chatMemoryPanelOpen:t})})),setChatContextBreakdownOpen:t=>e(e=>({chatContextBreakdownOpen:t,...h(e,{chatContextBreakdownOpen:t})})),setChatToolStatsOpen:t=>e(e=>({chatToolStatsOpen:t,...h(e,{chatToolStatsOpen:t})})),setChatContextEditorOpen:t=>e(e=>({chatContextEditorOpen:t,...h(e,{chatContextEditorOpen:t})})),setChatInputCollapsed:t=>e(e=>({chatInputCollapsed:t,...h(e,{chatInputCollapsed:t})})),setSkillsState:t=>e(e=>({skillsState:t,...h(e,{skillsState:t})})),setSelectedMailMessage:t=>e(e=>({selectedMailMessage:t,...h(e,{selectedMailMessage:t})}))}),g));function j(e={}){A.setState(d(e))}export{k as a,O as i,A as n,b as r,j as t};
@@ -1 +1 @@
1
- import{i as e}from"./mailbox-store-ZQO_Rv6E.js";import{n as t}from"./ui-store-DC3mkswy.js";var n=(()=>{try{if(typeof navigator>`u`)return!1;let e=navigator.userAgentData?.platform??navigator.platform??``;return/mac|iphone|ipad|ipod/i.test(e)}catch{return!1}})(),r=n?`⌘`:`Ctrl`,i=n?`⌥`:`Alt`,a=n?`⇧`:`Shift`;function o(e){switch(e){case`Ctrl`:return r;case`Alt`:return i;case`Shift`:return a;default:return e}}var s={chat:`chat`,agents:`chat`,files:`files`,changes:`changes`,mailbox:`mailbox`,skills:`skill`,design:`design-gallery`},c={chat:`chat`,files:`files`,changes:`changes`,mailbox:`mailbox`,skill:`skills`,"design-gallery":`design`},l={1:`chat`,2:`files`,3:`changes`,4:`mailbox`,5:`skills`,0:`design`},u=Object.entries(l).reduce((e,[t,n])=>(e[n]=`${r}+${t}`,e),{chat:``,agents:``,files:``,changes:``,mailbox:``,skills:``,design:``});function d(e){return s[e]??`chat`}function f(e){return u[e]??``}function p(e){let n=t.getState();n.currentView!==e&&n.setCurrentView(e)}function m(e){let n=t.getState();n.setSidebarOpen(!0),n.selectActivity(e),p(d(e))}function h(e){let n=t.getState();if(!n.sidebarOpen)n.setSidebarOpen(!0),n.selectActivity(e);else if(n.activeActivity===e){n.setSidebarOpen(!1);return}else n.activeActivity===`agents`&&n.setSidebarOpen(!0),n.selectActivity(e);p(d(e))}function g(e){let n=t.getState();if(n.currentView===e){m(`chat`);return}n.setSidebarOpen(!1),p(e)}function _(n){if(n===`intake`){e.getState().setActiveHubTab(`requirements`),g(`sddhub`);return}let r=c[n];if(r){m(r);return}t.getState().setSidebarOpen(!1),p(n)}export{f as a,h as i,_ as n,m as o,g as r,o as s,l as t};
1
+ import{i as e}from"./mailbox-store-ZQO_Rv6E.js";import{n as t}from"./ui-store-DxDwFHNK.js";var n=(()=>{try{if(typeof navigator>`u`)return!1;let e=navigator.userAgentData?.platform??navigator.platform??``;return/mac|iphone|ipad|ipod/i.test(e)}catch{return!1}})(),r=n?`⌘`:`Ctrl`,i=n?`⌥`:`Alt`,a=n?`⇧`:`Shift`;function o(e){switch(e){case`Ctrl`:return r;case`Alt`:return i;case`Shift`:return a;default:return e}}var s={chat:`chat`,agents:`chat`,files:`files`,changes:`changes`,mailbox:`mailbox`,skills:`skill`,design:`design-gallery`},c={chat:`chat`,files:`files`,changes:`changes`,mailbox:`mailbox`,skill:`skills`,"design-gallery":`design`},l={1:`chat`,2:`files`,3:`changes`,4:`mailbox`,5:`skills`,0:`design`},u=Object.entries(l).reduce((e,[t,n])=>(e[n]=`${r}+${t}`,e),{chat:``,agents:``,files:``,changes:``,mailbox:``,skills:``,design:``});function d(e){return s[e]??`chat`}function f(e){return u[e]??``}function p(e){let n=t.getState();n.currentView!==e&&n.setCurrentView(e)}function m(e){let n=t.getState();n.setSidebarOpen(!0),n.selectActivity(e),p(d(e))}function h(e){let n=t.getState();if(!n.sidebarOpen)n.setSidebarOpen(!0),n.selectActivity(e);else if(n.activeActivity===e){n.setSidebarOpen(!1);return}else n.activeActivity===`agents`&&n.setSidebarOpen(!0),n.selectActivity(e);p(d(e))}function g(e){let n=t.getState();if(n.currentView===e){m(`chat`);return}n.setSidebarOpen(!1),p(e)}function _(n){if(n===`intake`){e.getState().setActiveHubTab(`requirements`),g(`sddhub`);return}let r=c[n];if(r){m(r);return}t.getState().setSidebarOpen(!1),p(n)}export{f as a,h as i,_ as n,m as o,g as r,o as s,l as t};
@@ -0,0 +1,10 @@
1
+ import type { WrongStackWebSocketClient } from '@/lib/ws-client';
2
+ export declare function useSkillMentionPicker(input: string, setInput: (text: string) => void, textarea: React.RefObject<HTMLTextAreaElement | null>, client: WrongStackWebSocketClient | null | undefined, sessionId: string | null | undefined): {
3
+ open: boolean;
4
+ popup: import("react").JSX.Element | null;
5
+ onKeyDown: (event: React.KeyboardEvent<HTMLTextAreaElement>) => boolean;
6
+ setCursor: import("react").Dispatch<import("react").SetStateAction<number>>;
7
+ listId: string;
8
+ activeId: string | undefined;
9
+ };
10
+ //# sourceMappingURL=skill-mention-picker.d.ts.map
@@ -29,7 +29,6 @@ export interface ProjectAgentLearnStats {
29
29
  sharedLearnedExists?: boolean;
30
30
  sharedIdentityExists?: boolean;
31
31
  }
32
- export declare function setCustomRosterWS(ws: WebSocket | null): void;
33
32
  interface CustomRosterPanelProps {
34
33
  projectRoot?: string;
35
34
  }
@@ -23,6 +23,19 @@ export interface TaskCardIntelligence {
23
23
  evidenceCount: number;
24
24
  /** A decomposition proposal awaiting approval. */
25
25
  pendingDecomposition: boolean;
26
+ /**
27
+ * Set once verification has spent its refusal budget on this card.
28
+ *
29
+ * Parking is deliberately not a status — a parked managed card stays in
30
+ * Review, a parked legacy card stays `blocked` — so without this the card
31
+ * looks exactly like one that is merely waiting, and the single most
32
+ * actionable fact about it (retrying it unchanged will refuse again) was
33
+ * readable only by opening the inspector.
34
+ */
35
+ parked: {
36
+ reason: string;
37
+ attempts: number;
38
+ } | null;
26
39
  }
27
40
  export declare function deriveTaskCardIntelligence(board: KanbanBoard, task: KanbanTask, verificationActivity?: Record<string, {
28
41
  startedAt: number;
@@ -1,10 +1,3 @@
1
- /**
2
- * OfficeMapCanvas — React Flow canvas with real-time office environment visualization.
3
- *
4
- * Displays all connected clients (WebUI, TUI, REPL, etc.) as nodes in an office floor plan.
5
- * Shows live status (mail read, mail sent, idle, active, error) with animated wire connections.
6
- * Uses viz store for real-time events and fleet store for agent status.
7
- */
8
1
  import '@xyflow/react/dist/style.css';
9
2
  export declare function OfficeMapCanvas(): import("react").JSX.Element;
10
3
  //# sourceMappingURL=OfficeMapCanvas.d.ts.map
@@ -1,3 +1,3 @@
1
- import { type ReactElement } from 'react';
1
+ import type { ReactElement } from 'react';
2
2
  export declare function BrainSection(): ReactElement;
3
3
  //# sourceMappingURL=BrainSection.d.ts.map
@@ -0,0 +1,4 @@
1
+ export declare function JevSection({ syncPref, }?: {
2
+ syncPref?: (key: string, value: unknown) => void;
3
+ }): import("react").JSX.Element;
4
+ //# sourceMappingURL=JevSection.d.ts.map
@@ -2,6 +2,8 @@ import type { WrongStackWebSocketClient } from '@/lib/ws-client';
2
2
  /** A saved subscription provider profile as seen by the OAuth section. */
3
3
  interface SavedProfileInfo {
4
4
  id: string;
5
+ type?: string | undefined;
6
+ family?: string | undefined;
5
7
  hasActiveKey: boolean;
6
8
  }
7
9
  interface OAuthLoginSectionProps {
@@ -55,19 +55,19 @@ interface ProviderSectionProps {
55
55
  /** Called when a catalog provider is selected. */
56
56
  onSelectProvider: (id: string) => void;
57
57
  /** Called to add an API key. */
58
- onAddKey: (providerId: string, label: string, value: string) => void;
58
+ onAddKey: (providerId: string, label: string, value: string) => Promise<boolean> | void;
59
59
  /** Called to delete an API key. */
60
- onDeleteKey: (providerId: string, label: string) => void;
60
+ onDeleteKey: (providerId: string, label: string) => Promise<boolean> | void;
61
61
  /** Called to set a key as active. */
62
- onSetActiveKey: (providerId: string, label: string) => void;
62
+ onSetActiveKey: (providerId: string, label: string) => Promise<boolean> | void;
63
63
  /** Called to add a custom provider. */
64
64
  onAddProvider: (id: string, family: string, baseUrl?: string | undefined, apiKey?: string, models?: string[] | undefined, customModels?: Record<string, {
65
65
  name?: string | undefined;
66
66
  maxOutput?: number | undefined;
67
67
  capabilities?: Record<string, unknown> | undefined;
68
- }> | undefined) => void;
68
+ }> | undefined, providerType?: string | undefined) => Promise<boolean> | void;
69
69
  /** Called to remove a saved provider. */
70
- onRemoveProvider: (providerId: string) => void;
70
+ onRemoveProvider: (providerId: string) => Promise<boolean> | void;
71
71
  /** Called when a saved provider model is picked. */
72
72
  onPickProviderModel: (providerId: string, modelId: string) => void;
73
73
  /** WebSocket client used for saved-provider model probing/clearing. */
@@ -4,7 +4,7 @@ export type RiskLevel = (typeof RISK_LEVELS)[number];
4
4
  export declare const RISK_COLORS: Record<RiskLevel, string>;
5
5
  export declare const RISK_COPY: Record<RiskLevel, string>;
6
6
  /** One entry of the lens picker. */
7
- interface CouncilPersonaOption {
7
+ export interface CouncilPersonaOption {
8
8
  id: string;
9
9
  name: string;
10
10
  description?: string | undefined;
@@ -24,6 +24,7 @@ export interface MCPServerConfig {
24
24
  command?: string;
25
25
  args?: string[];
26
26
  env?: Record<string, string>;
27
+ bearerTokenEnv?: string;
27
28
  allowedTools?: string[];
28
29
  url?: string;
29
30
  lazy?: boolean;
@@ -7,6 +7,7 @@ export interface OfficialServer {
7
7
  args?: string[];
8
8
  url?: string;
9
9
  env?: Record<string, string>;
10
+ bearerTokenEnv?: string;
10
11
  allowedTools?: string[];
11
12
  requiresEnvVars?: string[];
12
13
  badge?: string;
@@ -0,0 +1,28 @@
1
+ import type { BrainConfigPatchWire, BrainConfigWire, BrainCouncilVoterWire } from '@/types';
2
+ import { type PickTarget, type RiskLevel } from './brain-section-options';
3
+ export declare function useBrainSection(): {
4
+ pickTarget: PickTarget;
5
+ t: import("i18next").TFunction<"translation", undefined>;
6
+ handleModelPicked: (candidate: {
7
+ provider: string;
8
+ model: string;
9
+ }) => boolean | undefined;
10
+ setPickTarget: import("react").Dispatch<import("react").SetStateAction<PickTarget>>;
11
+ loading: boolean;
12
+ busy: boolean;
13
+ persistError: string | null;
14
+ riskLevel: "all" | "high" | "low" | "medium" | "off";
15
+ handleRiskChange: (level: RiskLevel) => void;
16
+ config: BrainConfigWire | null;
17
+ sendPatch: (patch: BrainConfigPatchWire) => void;
18
+ voters: BrainCouncilVoterWire[];
19
+ personaOptions: import("./brain-section-options").CouncilPersonaOption[];
20
+ setVoters: (next: BrainCouncilVoterWire[]) => void;
21
+ log: {
22
+ kind: string;
23
+ question: string;
24
+ outcome: string;
25
+ age: string;
26
+ }[];
27
+ };
28
+ //# sourceMappingURL=use-brain-section.d.ts.map
@@ -2,7 +2,7 @@
2
2
  * SkillDetailView — displays the selected skill's content in the main content area.
3
3
  * Shown when currentView === 'skill'.
4
4
  */
5
- export declare function SkillDetailView({ className }: {
5
+ export declare function SkillDetailView(props0: {
6
6
  className?: string;
7
7
  }): import("react").JSX.Element;
8
8
  //# sourceMappingURL=SkillDetailView.d.ts.map
@@ -0,0 +1,51 @@
1
+ import type { ChronicleEventView, ChronicleGraphResult, ChronicleSummary } from '@/types';
2
+ export type Health = {
3
+ eventLoop?: {
4
+ utilization?: number;
5
+ delayP95Ms?: number;
6
+ };
7
+ memory?: {
8
+ heapUsedBytes?: number;
9
+ };
10
+ chronicle?: {
11
+ pendingEvents?: number;
12
+ rejectedEvents?: number;
13
+ largestBatch?: number;
14
+ };
15
+ };
16
+ export declare const emptySummary: ChronicleSummary;
17
+ export declare function signalTotal(summary: ChronicleSummary, signal: Signal, total: number): number;
18
+ export declare function cacheRatio(summary: ChronicleSummary): number;
19
+ export declare function matchesSignal(event: ChronicleEventView, signal: Signal): boolean;
20
+ export declare function formatMilliseconds(ms: number): string;
21
+ export declare function Field({ placeholder, value, onChange, onEnter, icon, }: {
22
+ placeholder: string;
23
+ value: string;
24
+ onChange: (v: string) => void;
25
+ onEnter: () => void;
26
+ icon?: React.ReactNode;
27
+ }): import("react").JSX.Element;
28
+ export declare function Insight({ icon, label, value, detail, tone, }: {
29
+ icon: React.ReactNode;
30
+ label: string;
31
+ value: number | string;
32
+ detail: string;
33
+ tone?: 'normal' | 'danger';
34
+ }): import("react").JSX.Element;
35
+ export declare function RuntimeStrip({ health }: {
36
+ health: Health;
37
+ }): import("react").JSX.Element;
38
+ export declare function EventRow({ event, active, onClick, }: {
39
+ event: ChronicleEventView;
40
+ active: boolean;
41
+ onClick: () => void;
42
+ }): import("react").JSX.Element;
43
+ export declare function Detail({ event, graph, }: {
44
+ event: ChronicleEventView;
45
+ graph: ChronicleGraphResult | null;
46
+ }): import("react").JSX.Element;
47
+ export declare function Empty({ text }: {
48
+ text: string;
49
+ }): import("react").JSX.Element;
50
+ export type Signal = 'all' | 'llm' | 'agents' | 'tools' | 'files' | 'failures';
51
+ //# sourceMappingURL=chronicle-event-detail.d.ts.map
@@ -0,0 +1,79 @@
1
+ import type { SubagentView } from '@/stores';
2
+ export interface ContextDebugPayload {
3
+ total: number;
4
+ mode?: string | undefined;
5
+ policy?: unknown | undefined;
6
+ systemPrompt: number;
7
+ tools: {
8
+ total: number;
9
+ count: number;
10
+ breakdown: Array<{
11
+ name: string;
12
+ tokens: number;
13
+ }>;
14
+ };
15
+ messages: {
16
+ total: number;
17
+ count: number;
18
+ breakdown: Array<{
19
+ index: number;
20
+ role: string;
21
+ tokens: number;
22
+ preview: string;
23
+ }>;
24
+ };
25
+ }
26
+ interface ZoneConfig {
27
+ labelKey: string;
28
+ emoji: string;
29
+ color: string;
30
+ bg: string;
31
+ text: string;
32
+ cssColor: string;
33
+ from: number;
34
+ to: number;
35
+ descKey: string;
36
+ }
37
+ export declare function zoneFor(pct: number): ZoneConfig;
38
+ export declare function fmtDuration(startedAt: number | null): string;
39
+ export declare function PressureSection({ pct, tokens, maxTokens, }: {
40
+ pct: number;
41
+ tokens: number;
42
+ maxTokens: number;
43
+ }): import("react").JSX.Element;
44
+ export declare function CompositionSection({ data, loading, }: {
45
+ data: ContextDebugPayload | null;
46
+ loading: boolean;
47
+ }): import("react").JSX.Element;
48
+ export declare function ThresholdSection({ pct }: {
49
+ pct: number;
50
+ }): import("react").JSX.Element;
51
+ export declare function CompactionSection({ pct, maxTokens }: {
52
+ pct: number;
53
+ maxTokens: number;
54
+ }): import("react").JSX.Element;
55
+ export declare function AgentFootprintSection({ agents }: {
56
+ agents: SubagentView[];
57
+ }): import("react").JSX.Element | null;
58
+ export declare function MetricsSection({ tokens, maxTokens, pct, model, provider, mode, uptime, iteration, contextMode, }: {
59
+ tokens: number;
60
+ maxTokens: number;
61
+ pct: number;
62
+ model: string;
63
+ provider: string;
64
+ mode: string;
65
+ uptime: string;
66
+ iteration: string;
67
+ contextMode: string;
68
+ }): import("react").JSX.Element;
69
+ export declare function SessionSection({ model, provider, mode, uptime, projectName, cwd, contextMode, }: {
70
+ model: string;
71
+ provider: string;
72
+ mode: string;
73
+ uptime: string;
74
+ projectName: string;
75
+ cwd: string;
76
+ contextMode: string;
77
+ }): import("react").JSX.Element;
78
+ export {};
79
+ //# sourceMappingURL=context-dashboard-sections.d.ts.map
@@ -0,0 +1,42 @@
1
+ import { type Connection, type Edge, type Node } from '@xyflow/react';
2
+ import '@xyflow/react/dist/style.css';
3
+ import { type OfficeNodeData } from './OfficeMapCanvas/utils.js';
4
+ export declare function useOfficeMapCanvas(): {
5
+ canvasRef: import("react").RefObject<HTMLDivElement | null>;
6
+ showHud: boolean;
7
+ t: import("i18next").TFunction<"translation", undefined>;
8
+ showLegend: boolean;
9
+ nodes: Node<OfficeNodeData>[];
10
+ edges: Edge[];
11
+ onNodesChange: import("@xyflow/react").OnNodesChange<Node<OfficeNodeData>>;
12
+ onEdgesChange: import("@xyflow/react").OnEdgesChange<Edge>;
13
+ onConnect: (params: Connection) => void;
14
+ onNodeClick: (_: React.MouseEvent, node: Node) => void;
15
+ onPaneClick: () => void;
16
+ broadcastOpen: boolean;
17
+ onArrange: () => void;
18
+ setBroadcastOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
19
+ setShowFeed: (v: boolean) => void;
20
+ showFeed: boolean;
21
+ background: import("@/stores").BackgroundStyle;
22
+ showControls: boolean;
23
+ showMinimap: boolean;
24
+ vizEvents: import("@/stores").VizEvent[];
25
+ broadcastDraft: string;
26
+ broadcasting: boolean;
27
+ broadcastResult: string | null;
28
+ setBroadcastDraft: import("react").Dispatch<import("react").SetStateAction<string>>;
29
+ sendBroadcast: () => Promise<void>;
30
+ selectedNode: Node<OfficeNodeData> | null;
31
+ selectedAgentTranscript: import("@/stores").AgentTranscriptEntry[];
32
+ mailboxMessages: import("@/stores").MailboxMessage[];
33
+ setWatch: import("react").Dispatch<import("react").SetStateAction<{
34
+ sessionId: string;
35
+ label: string;
36
+ } | null>>;
37
+ watch: {
38
+ sessionId: string;
39
+ label: string;
40
+ } | null;
41
+ };
42
+ //# sourceMappingURL=use-office-map-canvas.d.ts.map