@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.
- package/dist/assets/{AnalyticsDashboard-BBbdycai.js → AnalyticsDashboard-DausPJOP.js} +1 -1
- package/dist/assets/AudienceMemoryPanel-di7dxMBb.js +3 -0
- package/dist/assets/{ChangesView-Bwb4Qh4n.js → ChangesView-DPfs8VeV.js} +1 -1
- package/dist/assets/{ChronicleDashboard-oOlGTsm5.js → ChronicleDashboard-CMkQ7EBt.js} +1 -1
- package/dist/assets/CodeEditor-iYG6Q0ag.js +1 -0
- package/dist/assets/CodeMap-T1dsXVRH.js +1 -0
- package/dist/assets/{ConfirmModal-B9lFAAUO.js → ConfirmModal-Bm9f2Pg9.js} +1 -1
- package/dist/assets/CronJobsPanel-CKQw0vat.js +1 -0
- package/dist/assets/{DebugDashboard-CCe1PP60.js → DebugDashboard-BeDOPYmE.js} +1 -1
- package/dist/assets/DesignGalleryView-DY3atfBB.js +1 -0
- package/dist/assets/{GoalView-Ck6Oa8nh.js → GoalView-Dh27cG1z.js} +1 -1
- package/dist/assets/KanbanView-DYa0iSlV.js +2 -0
- package/dist/assets/{LazyMarkdown-CGMv69IJ.js → LazyMarkdown-C1a0wbAZ.js} +3 -3
- package/dist/assets/{MailboxDetailView-Dr3B9nM0.js → MailboxDetailView-DQpxIh_A.js} +1 -1
- package/dist/assets/MemoryManager-D1_0SW_m.js +1 -0
- package/dist/assets/{ModelPicker-DwoHlu_Q.js → ModelPicker-Cwa4UKNc.js} +1 -1
- package/dist/assets/OfficeMapPanel-DTQPdV7a.js +4 -0
- package/dist/assets/ProcessMonitor-DjO7eNsN.js +1 -0
- package/dist/assets/QueuePanel-lUChp6xi.js +1 -0
- package/dist/assets/RefreshDebugView-BNa6ehdH.js +1 -0
- package/dist/assets/SddHub-BW7ExYNe.js +2 -0
- package/dist/assets/{SessionsDashboard-yrSEaUdc.js → SessionsDashboard-Cf_67b9g.js} +1 -1
- package/dist/assets/SetupScreen-fu9Qr5Qj.js +1 -0
- package/dist/assets/SkillDetailView-DHcDX_1A.js +3 -0
- package/dist/assets/SpecsView-CNqNOKqo.js +1 -0
- package/dist/assets/{TechStackView-DPxBWfsU.js → TechStackView-CXE80hAc.js} +1 -1
- package/dist/assets/{TerminalPanel-B-BSGITg.js → TerminalPanel-KysALyRz.js} +1 -1
- package/dist/assets/{Toaster-CPO2WS96.js → Toaster-B1idXZ-O.js} +1 -1
- package/dist/assets/{activity-DX6l7wqU.js → activity-AfUMXtSI.js} +1 -1
- package/dist/assets/{activity-CCA6JsEh.js → activity-Bd_pRifE.js} +1 -1
- package/dist/assets/{activity-C8JKxa7u.js → activity-Ct_QOdtL.js} +1 -1
- package/dist/assets/{activity-B8Lz00d-.js → activity-Cyx4UukM.js} +1 -1
- package/dist/assets/{activity-BcdEzklN.js → activity-Dyikq8Zm.js} +1 -1
- package/dist/assets/{activity-CqPvl4kb.js → activity-Ukyu3lON.js} +1 -1
- package/dist/assets/{activity-5G605qiF.js → activity-gaWDc806.js} +1 -1
- package/dist/assets/{button-FFFZxxoZ.js → button-99L74zdE.js} +1 -1
- package/dist/assets/chat-store-Cunk1nDr.js +13 -0
- package/dist/assets/{codemap-activity-store-CfY_WBuV.js → codemap-activity-store-BIW6YPvC.js} +1 -1
- package/dist/assets/{dialog-DWvX4WNX.js → dialog-CNwwBFw3.js} +1 -1
- package/dist/assets/{i18n-VQ8IAWEk.js → i18n-DaR2GB_4.js} +2 -2
- package/dist/assets/index-BLAy5CKD.js +119 -0
- package/dist/assets/index-BlCmdyyZ.css +1 -0
- package/dist/assets/{input-BpQGvMAi.js → input-DXjUO_X9.js} +1 -1
- package/dist/assets/{mailbox-store-CibW8-D6.js → mailbox-store-Dq1wxCRt.js} +1 -1
- package/dist/assets/{pagination-D2oCHj95.js → pagination-Ktuov5iD.js} +1 -1
- package/dist/assets/{session-store-BZ4TsTBa.js → session-store-B8icONBU.js} +1 -1
- package/dist/assets/{shared-DykO0hB0.js → shared-aSCYBzAV.js} +1 -1
- package/dist/assets/stores-JSLvWOQY.js +6 -0
- package/dist/assets/ui-store-BepZz9CZ.js +1 -0
- package/dist/assets/useWebSocket-CRYUFxmO.js +27 -0
- package/dist/assets/{utils-Ca0_D_-X.js → utils-C4qVQ63O.js} +1 -1
- package/dist/assets/{vendor-BsMARlcy.js → vendor-Di1mdAi5.js} +27 -27
- package/dist/assets/{view-navigation-Dx54K1uS.js → view-navigation-BbHlzAQz.js} +1 -1
- package/dist/assets/{ws-client-BOKgdABR.js → ws-client-BWO_PH_X.js} +1 -1
- package/dist/components/AgentsMonitor.d.ts.map +1 -1
- package/dist/components/ChatInput.d.ts.map +1 -1
- package/dist/components/ContextBar.d.ts +14 -4
- package/dist/components/ContextBar.d.ts.map +1 -1
- package/dist/components/ContextDashboard.d.ts.map +1 -1
- package/dist/components/ContextMemoryMonitor.d.ts +2 -0
- package/dist/components/ContextMemoryMonitor.d.ts.map +1 -0
- package/dist/components/CronJobsPanel.d.ts.map +1 -1
- package/dist/components/DesignGalleryView.d.ts.map +1 -1
- package/dist/components/FleetMonitor.d.ts +0 -6
- package/dist/components/FleetMonitor.d.ts.map +1 -1
- package/dist/components/FleetPanel.d.ts.map +1 -1
- package/dist/components/GoalPanel.d.ts.map +1 -1
- package/dist/components/InspectorPanel.d.ts.map +1 -1
- package/dist/components/MemoryManager/MemoryDetail.d.ts +5 -2
- package/dist/components/MemoryManager/MemoryDetail.d.ts.map +1 -1
- package/dist/components/MemoryManager/MemoryGraph.d.ts +5 -2
- package/dist/components/MemoryManager/MemoryGraph.d.ts.map +1 -1
- package/dist/components/MemoryManager/MemoryInjectorTrace.d.ts +3 -0
- package/dist/components/MemoryManager/MemoryInjectorTrace.d.ts.map +1 -0
- package/dist/components/MemoryManager/MemoryLifecycleTrace.d.ts +2 -0
- package/dist/components/MemoryManager/MemoryLifecycleTrace.d.ts.map +1 -0
- package/dist/components/MemoryManager/index.d.ts.map +1 -1
- package/dist/components/MessageBubble/ToolLedgerCard.d.ts +13 -0
- package/dist/components/MessageBubble/ToolLedgerCard.d.ts.map +1 -0
- package/dist/components/MessageBubble/index.d.ts.map +1 -1
- package/dist/components/MessageBubble/utils.d.ts +8 -0
- package/dist/components/MessageBubble/utils.d.ts.map +1 -1
- package/dist/components/PlanPanel.d.ts.map +1 -1
- package/dist/components/ProcessMonitor.d.ts.map +1 -1
- package/dist/components/PromptLibraryModal.d.ts.map +1 -1
- package/dist/components/ProviderWaitingRoom.d.ts.map +1 -1
- package/dist/components/QueuePanel.d.ts.map +1 -1
- package/dist/components/RefreshDebugView.d.ts.map +1 -1
- package/dist/components/SddBoardView.d.ts.map +1 -1
- package/dist/components/SddTaskDrawer.d.ts.map +1 -1
- package/dist/components/SettingsPanel/ProviderSection.d.ts.map +1 -1
- package/dist/components/SettingsPanel/ToolsSection.d.ts.map +1 -1
- package/dist/components/SidePanel/AgentsPanel.d.ts.map +1 -1
- package/dist/components/SidePanel/ChangesPanel.d.ts.map +1 -1
- package/dist/components/SidePanel/index.d.ts.map +1 -1
- package/dist/components/SpecsView.d.ts.map +1 -1
- package/dist/components/TasksPanel.d.ts.map +1 -1
- package/dist/components/TechStackView/index.d.ts.map +1 -1
- package/dist/components/TodosPanel.d.ts.map +1 -1
- package/dist/components/WorktreeLanes.d.ts.map +1 -1
- package/dist/components/WorktreeOrphans.d.ts.map +1 -1
- package/dist/components/activity-bar/index.d.ts.map +1 -1
- package/dist/components/agents/AgentDetailSection.d.ts +17 -0
- package/dist/components/agents/AgentDetailSection.d.ts.map +1 -0
- package/dist/components/agents/AgentRosterCard.d.ts +28 -0
- package/dist/components/agents/AgentRosterCard.d.ts.map +1 -0
- package/dist/components/agents/FleetSummaryBar.d.ts +19 -0
- package/dist/components/agents/FleetSummaryBar.d.ts.map +1 -0
- package/dist/components/ui/fleet-agent-row.d.ts +24 -0
- package/dist/components/ui/fleet-agent-row.d.ts.map +1 -0
- package/dist/hooks/useFleetPolling.d.ts +35 -0
- package/dist/hooks/useFleetPolling.d.ts.map +1 -0
- package/dist/hooks/useWebSocket.d.ts +4 -0
- package/dist/hooks/useWebSocket.d.ts.map +1 -1
- package/dist/hooks/ws-handlers/chat-handlers.d.ts.map +1 -1
- package/dist/hooks/ws-handlers/misc-handlers.d.ts.map +1 -1
- package/dist/hooks/ws-handlers/session-handlers.d.ts.map +1 -1
- package/dist/index.css +99 -0
- package/dist/index.css.map +3 -3
- package/dist/index.html +23 -23
- package/dist/index.js +11129 -9610
- package/dist/index.js.map +4 -4
- package/dist/lib/agent-status.d.ts +61 -0
- package/dist/lib/agent-status.d.ts.map +1 -1
- package/dist/lib/ws-client.d.ts +4 -0
- package/dist/lib/ws-client.d.ts.map +1 -1
- package/dist/stores/chat-store.d.ts +21 -0
- package/dist/stores/chat-store.d.ts.map +1 -1
- package/dist/stores/fleet-store.d.ts +32 -0
- package/dist/stores/fleet-store.d.ts.map +1 -1
- package/dist/stores/index.d.ts +2 -1
- package/dist/stores/index.d.ts.map +1 -1
- package/dist/stores/memory-injector-store.d.ts +79 -0
- package/dist/stores/memory-injector-store.d.ts.map +1 -0
- package/dist/stores/memory-lifecycle-store.d.ts +23 -0
- package/dist/stores/memory-lifecycle-store.d.ts.map +1 -0
- package/dist/stores/ui-store.d.ts +3 -0
- package/dist/stores/ui-store.d.ts.map +1 -1
- package/dist/types.d.ts +27 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/dist/assets/AudienceMemoryPanel-BWcCpuCv.js +0 -3
- package/dist/assets/CodeEditor-Bt9fqzjU.js +0 -1
- package/dist/assets/CodeMap-BhJyDUAh.js +0 -1
- package/dist/assets/CronJobsPanel-i2-zcKIC.js +0 -1
- package/dist/assets/DesignGalleryView-BDxyVUoW.js +0 -1
- package/dist/assets/KanbanView-BSoNz6a-.js +0 -2
- package/dist/assets/MemoryManager-BQZeiYDi.js +0 -1
- package/dist/assets/OfficeMapPanel-CA-BmADR.js +0 -4
- package/dist/assets/ProcessMonitor-7mzC-JTl.js +0 -1
- package/dist/assets/QueuePanel-DNccWIKx.js +0 -1
- package/dist/assets/RefreshDebugView-2Ockf4po.js +0 -1
- package/dist/assets/SddHub-Cg63TJIL.js +0 -2
- package/dist/assets/SetupScreen-BFfYTt1L.js +0 -1
- package/dist/assets/SkillDetailView-Sqe-T3-x.js +0 -3
- package/dist/assets/SpecsView-DFj6_8G5.js +0 -1
- package/dist/assets/chat-store-BvxTrNjV.js +0 -13
- package/dist/assets/index-CuByAUEC.css +0 -1
- package/dist/assets/index-D_QeLLAg.js +0 -119
- package/dist/assets/stores-BazbaxhT.js +0 -6
- package/dist/assets/ui-store-D_s-_3Y6.js +0 -1
- package/dist/assets/useWebSocket-BEkBQAAR.js +0 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./ui-store-
|
|
1
|
+
import{n as e}from"./ui-store-BepZz9CZ.js";var t={chat:`chat`,agents:`chat`,history:`sessions`,files:`files`,changes:`changes`,mailbox:`mailbox`,skills:`skill`,worktrees:`chat`,design:`design-gallery`,officemap:`officemap`},n={chat:`chat`,files:`files`,changes:`changes`,sessions:`history`,mailbox:`mailbox`,skill:`skills`,officemap:`officemap`,"design-gallery":`design`},r={1:`chat`,2:`agents`,3:`history`,4:`files`,5:`changes`,6:`mailbox`,7:`skills`,8:`officemap`,0:`design`},i={chat:`Ctrl+1`,agents:`Ctrl+2`,history:`Ctrl+3`,files:`Ctrl+4`,changes:`Ctrl+5`,mailbox:`Ctrl+6`,skills:`Ctrl+7`,worktrees:`Ctrl+Shift+W`,design:`Ctrl+0`,officemap:`Ctrl+8`};function a(e){return t[e]??`chat`}function o(e){return i[e]??``}function s(t){let n=e.getState();n.currentView!==t&&n.setCurrentView(t)}function c(t){let n=e.getState();n.setSidebarOpen(!0),n.selectActivity(t),s(a(t))}function l(t){let n=e.getState();if(!n.sidebarOpen)n.setSidebarOpen(!0),n.selectActivity(t);else if(n.activeActivity===t){n.setSidebarOpen(!1);return}else n.selectActivity(t);s(a(t))}function u(t){let n=e.getState();if(n.currentView===t){c(`chat`);return}n.setSidebarOpen(!1),s(t)}function d(t){let r=n[t];if(r){c(r);return}e.getState().setSidebarOpen(!1),s(t)}export{a,l as i,d as n,o,u as r,c as s,r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-QTnfLwEv.js";import{Xi as t}from"./vendor-BsMARlcy.js";import{n}from"./utils-Ca0_D_-X.js";import{t as r}from"./session-store-BZ4TsTBa.js";function i(e){typeof requestAnimationFrame==`function`?requestAnimationFrame(e):queueMicrotask(e)}var a=new class{pending=new Map;scheduled=!1;push(e,t,n){if(!t)return;let r=this.pending.get(e);r?(r.buffer+=t,r.flush=n):this.pending.set(e,{buffer:t,flush:n}),this.schedule()}schedule(){this.scheduled||(this.scheduled=!0,i(()=>{this.scheduled=!1,this.drain()}))}drain(){if(this.pending.size===0)return;let e=Array.from(this.pending.entries());this.pending.clear();for(let[t,n]of e)n.buffer&&n.flush(t,n.buffer)}drop(e){this.pending.delete(e)}dropAll(){this.pending.clear()}flush(e){let t=this.pending.get(e);t&&(this.pending.delete(e),t.buffer&&t.flush(e,t.buffer))}flushAll(){this.drain()}};function o(e){return{type:`provider.clear_models`,payload:{providerId:e}}}function s(e,t){return{type:`provider.undo_clear`,payload:{providerId:e,previousModels:[...t]}}}function c(e){return{type:`provider.update`,payload:e}}function l(e){return Math.max(0,Math.min(100,Math.round((typeof e==`number`&&Number.isFinite(e)?e:0)*100)))}function u(e,t=!1){if(t&&e.target){if(e.kind===`agent:tool`||e.kind===`tool:executed`||e.kind===`tool:started`)return`tool`;if(e.source===`leader`||e.source===`coordinator`)return`coordinator`;if(e.kind.startsWith(`provider:`))return`provider`;if(e.kind.startsWith(`mailbox:`))return`mailbox`}switch(e.kind){case`provider:call`:case`provider:delta`:case`provider:response`:return`provider`;case`agent:spawned`:case`agent:tool`:case`agent:status`:case`agent:text`:case`agent:ctx`:case`budget:warning`:case`budget:extended`:return`agent`;case`tool:started`:case`tool:executed`:case`tool:progress`:return`tool`;case`mailbox:send`:case`mailbox:deliver`:return`mailbox`;case`collab:event`:return`system`;case`session:start`:case`session:end`:case`iteration:start`:case`iteration:end`:case`eternal:iteration`:case`fleet:snapshot`:return`session`;case`context:compacted`:case`context:repaired`:case`cost:update`:return`system`;case`error`:return`error`;default:return`system`}}function d(e){switch(e){case`provider:call`:case`provider:delta`:case`agent:tool`:case`tool:started`:case`tool:progress`:case`iteration:start`:case`agent:text`:return`streaming`;case`agent:status`:case`iteration:end`:return`completed`;case`error`:return`error`;case`tool:executed`:return`completed`;case`session:end`:return`idle`;default:return`active`}}var f=0;function p(){return`viz_${Date.now()}_${++f}`}function m(e,t){if(e===t)return!0;if(!e||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n){let n=e[r],i=t[r];if(n!==i){if(n==null||i==null||typeof n!=typeof i)return!1;if(typeof n==`object`){if(Array.isArray(n)||Array.isArray(i)||!m(n,i))return!1;continue}return!1}}return!0}var h={provider:`hsl(var(--info))`,agent:`hsl(var(--primary))`,tool:`hsl(var(--warning))`,mailbox:`hsl(var(--success))`,session:`hsl(var(--primary))`,system:`hsl(var(--muted-foreground))`,success:`hsl(var(--success))`,error:`hsl(var(--destructive))`},g={"provider:call":`hsl(var(--info))`,"provider:delta":`hsl(var(--primary))`,"agent:tool":`hsl(var(--warning))`,"mailbox:send":`hsl(var(--success))`,default:`hsl(var(--muted-foreground))`},_=t()((e,t)=>({events:[],toolEvents:[],nodes:new Map,edges:new Map,isActive:!1,maxEvents:2e3,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0},pushEvent:t=>e(e=>{let n={...t,id:t.id??p(),timestamp:t.timestamp||Date.now()},r=[n,...e.events];r.length>e.maxEvents&&(r.length=e.maxEvents);let i=t.kind===`agent:tool`||t.kind===`tool:started`||t.kind===`tool:progress`||t.kind===`tool:executed`?[n,...e.toolEvents].slice(0,600):e.toolEvents,a=Date.now(),o=t.source,s={id:o,kind:u(t),label:t.label,status:d(t.kind),activity:1,color:t.color??h[u(t)],lastSeenAt:a},c=e.nodes.get(o),l=c?{...c,...s}:s,f=!m(c,l),g,_=!1,v;if(t.target){v=t.target;let n={id:v,kind:u(t,!0),label:v,status:d(t.kind),activity:.8,color:t.color??h[u(t,!0)],lastSeenAt:a},r=e.nodes.get(v);g=r?{...r,...n}:n,_=!m(r,g)}let y,b=!1,x;if(t.target&&o){x=`${o}->${t.target}`;let n=e.edges.get(x),r={id:x,source:o,target:t.target,kind:t.kind,label:t.label,intensity:n?Math.min(1,n.intensity+.3):.7,color:t.color??h[u(t)]??h.agent,lastActiveAt:a,totalMagnitude:(n?.totalMagnitude??0)+(t.magnitude??0)};y=n?{...n,...r}:r,b=!m(n,y)}let S=e.nodes,C=e.edges;return(f||_)&&(S=new Map(e.nodes),f&&S.set(o,l),_&&g&&v&&S.set(v,g)),b&&y&&x&&(C=new Map(e.edges),C.set(x,y)),{events:r,toolEvents:i,nodes:S,edges:C}}),upsertNode:t=>e(e=>{let n=new Map(e.nodes),r=n.get(t.id);return n.set(t.id,{...r,...t,lastSeenAt:t.lastSeenAt===void 0?Date.now():t.lastSeenAt}),{nodes:n}}),removeNode:t=>e(e=>{let n=new Map(e.nodes);n.delete(t);let r=new Map(e.edges);for(let[e,n]of r)(n.source===t||n.target===t)&&r.delete(e);return{nodes:n,edges:r}}),upsertEdge:t=>e(e=>{let n=new Map(e.edges),r=n.get(t.id);return n.set(t.id,{...r,...t,lastActiveAt:t.lastActiveAt===void 0?Date.now():t.lastActiveAt,intensity:t.intensity??r?.intensity??.5,color:t.color??g[t.kind]??g.default,totalMagnitude:(r?.totalMagnitude??0)+(t.totalMagnitude??0)}),{edges:n}}),removeEdge:t=>e(e=>{let n=new Map(e.edges);return n.delete(t),{edges:n}}),clear:()=>e({events:[],toolEvents:[],nodes:new Map,edges:new Map,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0}}),setActive:t=>e({isActive:t}),decayActivity:()=>e(e=>{let t=new Map(e.nodes);for(let[e,n]of t)if(n.activity>=.01){let r=n.activity*.92;t.set(e,{...n,activity:r<.01?0:r})}let n=new Map(e.edges);for(let[e,t]of n)if(t.intensity>=.01){let r=t.intensity*.9;n.set(e,{...t,intensity:r<.01?0:r})}return{nodes:t,edges:n}}),prunesStale:t=>e(e=>{let n=Date.now()-t,r=new Map(e.nodes);for(let[e,t]of r)t.lastSeenAt<n&&t.status!==void 0&&t.status!==`active`&&r.delete(e);let i=new Map(e.edges);for(let[e,t]of i)t.lastActiveAt<n&&i.delete(e);return{nodes:r,edges:i,events:e.events.filter(e=>e.timestamp>n)}})}));function v(e,t){switch(e){case`provider.text_delta`:{let e=t.text??``;return{id:p(),kind:`provider:delta`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,60),magnitude:e.length,data:{text:e},color:h.provider,flowGroup:`provider`}}case`provider.response`:{let e=t.usage,n=(e?.input??0)+(e?.output??0);return{id:p(),kind:`provider:response`,timestamp:Date.now(),source:`provider`,target:`leader`,label:`${(e?.input??0).toLocaleString(`en-US`)} in / ${(e?.output??0).toLocaleString(`en-US`)} out`,magnitude:n,data:t,color:h.provider,flowGroup:`provider`}}case`provider.stream_error`:{let e=t.message??`Provider stream error`;return{id:p(),kind:`error`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,80),magnitude:1,data:t,color:h.error,flowGroup:`provider`}}case`tool.started`:{let e=t.name??`tool`;return{id:p(),kind:`tool:started`,timestamp:Date.now(),source:e,target:`filesystem`,label:e,magnitude:1,data:t,color:h.tool,flowGroup:`tool:${e}`}}case`tool.executed`:{let e=t.name??`tool`,n=t.ok??!0;return{id:p(),kind:`tool:executed`,timestamp:Date.now(),source:e,target:`leader`,label:`${e} ${n?`✓`:`✗`} (${t.durationMs??0}ms)`,magnitude:t.durationMs??0,data:t,color:n?h.tool:h.error,flowGroup:`tool:${e}`}}case`tool.progress`:{let e=t.name??`tool`,n=t.event?.text??``;return{id:p(),kind:`tool:progress`,timestamp:Date.now(),source:e,target:`leader`,label:n.slice(0,60)||e,magnitude:n.length,data:t,color:h.tool,flowGroup:`tool:${e}`}}case`codemap.tool_started`:{let e=t.name??`tool`,n=t.agentId??`subagent`;return{id:p(),kind:`tool:started`,timestamp:Date.now(),source:n,target:e,label:e,magnitude:1,data:t,color:h.tool,flowGroup:`agent:${n}`}}case`codemap.tool_executed`:{let e=t.name??`tool`,n=t.agentId??`subagent`,r=t.ok??!0;return{id:p(),kind:`tool:executed`,timestamp:Date.now(),source:n,target:e,label:`${e} ${r?`✓`:`✗`} (${t.durationMs??0}ms)`,magnitude:t.durationMs??0,data:t,color:r?h.tool:h.error,flowGroup:`agent:${n}`}}case`tool.loop_detected`:{let e=t.tools??``,n=t.kind??`loop`;return{id:p(),kind:`error`,timestamp:Date.now(),source:e||n,target:`leader`,label:`${n} loop x${t.repeatCount??0}`,magnitude:t.repeatCount??1,data:t,color:h.error,flowGroup:`tool`}}case`delegate.started`:{let e=t.target??`delegate`,n=t.task??``;return{id:p(),kind:`agent:status`,timestamp:Date.now(),source:`leader`,target:e,label:n.slice(0,80)||`Delegating to ${e}`,magnitude:1,data:t,color:h.agent,flowGroup:`delegate:${e}`}}case`delegate.completed`:{let e=t.subagentId??t.target??`delegate`,n=t.ok??!1;return{id:p(),kind:n?`agent:status`:`error`,timestamp:Date.now(),source:e,target:`leader`,label:(t.summary??t.status??`delegate completed`).slice(0,80),magnitude:t.durationMs??1,data:t,color:n?h.agent:h.error,flowGroup:`delegate:${e}`}}case`subagent.event`:{let e=t.kind,n=t.subagentId??`unknown`,r=t.name??n;switch(e){case`spawned`:return{id:p(),kind:`agent:spawned`,timestamp:Date.now(),source:n,target:`session`,label:`${r} spawned`,magnitude:1,data:t,color:h.agent,flowGroup:`agent:${n}`};case`tool_executed`:{let e=t.toolName??`tool`,r=t.ok??!0;return{id:p(),kind:`agent:tool`,timestamp:Date.now(),source:n,target:e,label:e,magnitude:t.durationMs??0,data:t,color:r?h.tool:h.error,flowGroup:`agent:${n}`}}case`task_completed`:{let e=t.status??`completed`;return{id:p(),kind:`agent:status`,timestamp:Date.now(),source:n,target:`session`,label:`${r} ${e}`,magnitude:1,data:t,color:e===`success`?h.success:h.error,flowGroup:`agent:${n}`}}case`ctx_pct`:return{id:p(),kind:`agent:ctx`,timestamp:Date.now(),source:n,target:`session`,label:`ctx ${l(t.load)}%`,magnitude:t.tokens??0,data:t,color:h.agent,flowGroup:`agent:${n}`};case`iteration_summary`:return{id:p(),kind:`agent:text`,timestamp:Date.now(),source:n,target:`session`,label:(t.partialText??``).slice(0,80)||`iter ${t.iteration??0}`,magnitude:t.costUsd??0,data:t,color:h.agent,flowGroup:`agent:${n}`};case`budget_extended`:return{id:p(),kind:`budget:extended`,timestamp:Date.now(),source:n,target:`session`,label:`${r} extended budget`,magnitude:t.totalExtensions??1,data:t,color:h.tool,flowGroup:`agent:${n}`};case`budget_warning`:return{id:p(),kind:`budget:warning`,timestamp:Date.now(),source:n,target:`session`,label:`${r} hit ${t.budgetKind??`budget`} ${t.used??0}/${t.limit??0}`,magnitude:t.used??1,data:t,color:h.error,flowGroup:`agent:${n}`}}return null}case`mailbox.event`:{let e=t.event,n=t.from??`?`,r=t.to??`?`,i=t.subject??``,a=e===`mailbox.sent`;return{id:p(),kind:a?`mailbox:send`:`mailbox:deliver`,timestamp:Date.now(),source:n,target:r,label:i||(a?`→ ${r}`:`← ${n}`),magnitude:1,data:t,color:h.mailbox,flowGroup:`mailbox`}}case`iteration.started`:{let e=t.index??0;return{id:p(),kind:`iteration:start`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e}`,magnitude:e,data:t,color:h.agent,flowGroup:`iteration`}}case`iteration.completed`:{let e=t.index??0;return{id:p(),kind:`iteration:end`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e} done`,magnitude:e,data:t,color:h.session,flowGroup:`iteration`}}case`ctx.pct`:{let e=t.tokens??0;return{id:p(),kind:`agent:ctx`,timestamp:Date.now(),source:`leader`,target:`session`,label:`ctx ${l(t.load)}%`,magnitude:e,data:t,color:h.agent,flowGroup:`leader`}}case`error`:{let e=t.message??`Error`;return{id:p(),kind:`error`,timestamp:Date.now(),source:t.phase??`system`,target:`session`,label:e,magnitude:1,data:t,color:h.error,flowGroup:`error`}}case`context.compacted`:return{id:p(),kind:`context:compacted`,timestamp:Date.now(),source:`system`,target:`session`,label:`Compacted: ${(t.saved??0).toLocaleString(`en-US`)} tokens`,magnitude:t.saved??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`compaction.failed`:{let e=t.message??`Compaction failed`;return{id:p(),kind:`error`,timestamp:Date.now(),source:`compactor`,target:`session`,label:e.slice(0,80),magnitude:t.tokens??1,data:t,color:h.error,flowGroup:`context`}}case`context.repaired`:return{id:p(),kind:`context:repaired`,timestamp:Date.now(),source:`system`,target:`session`,label:`Repaired: ${t.removedMessages??0} msgs`,magnitude:t.removedMessages??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`session.start`:{let e=t.sessionId??`?`,n=t.projectName??``;return{id:p(),kind:`session:start`,timestamp:Date.now(),source:`session`,target:`leader`,label:n||e.slice(0,12),magnitude:1,data:t,color:h.session,flowGroup:`session`}}case`sessions.status_update`:{let e=t.sessions??[];return{id:p(),kind:`fleet:snapshot`,timestamp:Date.now(),source:`system`,target:`session`,label:`${e.length} session(s)`,magnitude:e.length,data:t,color:h.system,flowGroup:`fleet`}}default:return null}}function y(e){let t=e.payload?.sessionId,n=r.getState().session?.id;return!t||!n||t===n}function b(e){let t=v(e.type,e.payload);t&&(_.getState().pushEvent(t),_.getState().setActive(!0))}function x(e,t,n){let r=e.payload??{};for(let[e,n]of Object.entries(t)){let t=r[e];if(!S(t,n))return null}if(n)for(let[e,t]of Object.entries(n)){let n=r[e];if(n!=null&&!S(n,t))return null}return r}function S(e,t){switch(t){case`string`:return typeof e==`string`;case`number`:return typeof e==`number`;case`boolean`:return typeof e==`boolean`;case`object`:return typeof e==`object`&&!!e&&!Array.isArray(e);case`array`:return Array.isArray(e);default:return!1}}function C(e){try{return new URL(e).searchParams.get(`token`)}catch{return null}}function w(){if(typeof window>`u`||!window.location)return null;try{let e=window.location.search??``;return new URLSearchParams(e).get(`token`)}catch{return null}}function T(e){try{let t=new URL(e);return t.searchParams.delete(`token`),t.toString()}catch{return e}}function E(){if(!(typeof window>`u`||!window.location||!window.history?.replaceState))try{let e=window.location.href;if(!e)return;let t=new URL(e);if(!t.searchParams.has(`token`))return;t.searchParams.delete(`token`),window.history.replaceState(window.history.state,document.title,t.toString())}catch{}}var D=3457;function O(){if(typeof document>`u`)return D;let e=document.querySelector(`meta[name="wrongstack-ws-port"]`)?.getAttribute(`content`),t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0&&t<65536?t:D}function k(){if(typeof document>`u`)return null;let e=document.querySelector(`meta[name="wrongstack-ws-url"]`)?.getAttribute(`content`)?.trim();if(!e)return null;try{let t=new URL(e);if(t.protocol!==`ws:`&&t.protocol!==`wss:`)return null;let n=w();return n&&!t.searchParams.has(`token`)&&t.searchParams.set(`token`,n),t.toString()}catch{return null}}function A(){let e=k();if(e)return e;let t=O();if(typeof window>`u`||!window.location?.hostname)return`ws://127.0.0.1:${t}`;let n=window.location.protocol===`https:`?`wss`:`ws`,r=window.location.hostname.toLowerCase(),i=w(),a=i?`?token=${encodeURIComponent(i)}`:``;return r===`localhost`||r===`127.0.0.1`||r===`[::1]`||r===`::1`?`${n}://127.0.0.1:${t}${a}`:`${n}://${window.location.hostname}:${t}${a}`}function j(){if(typeof window>`u`||!window.location?.hostname)return`http://127.0.0.1:3456`;let e=window.location.protocol===`https:`?`https`:`http`,t=window.location.hostname.toLowerCase(),n=window.location.port?`:${window.location.port}`:``;return t===`localhost`||t===`127.0.0.1`||t===`[::1]`||t===`::1`?`${e}://127.0.0.1${n}`:`${e}://${window.location.hostname}${n}`}var M=e({WrongStackWebSocketClient:()=>I,getWSClient:()=>R}),N={"context.debug":`context.debug`,"diag.get":`diag.get`,"memory.list":`memory.list`,"memory.super.get":`memory.super.get`,"memory.super.list":`memory.super.list`,"memory.super.listPage":`memory.super.listPage`,"memory.super.remember":`memory.super.remember`,"memory.super.update":`memory.super.update`,"skills.list":`skills.list`,"stats.get":`stats.get`,"tools.list":`tools.list`},P=3e4;function F(e){try{let t=new URL(e),n=new URL(j());return t.hostname===n.hostname}catch{return!0}}var I=class e{ws=null;url;handlers=new Map;reconnectAttempts=0;maxReconnectAttempts=10;reconnectDelay=1e3;shouldReconnect=!0;reconnectTimer=null;connectPromise=null;socketGeneration=0;messageQueue=[];static MAX_QUEUED_MESSAGES=1e3;pendingConfirms=new Map;sessionId=null;lastErrorText;statusListeners=new Set;currentStatus={state:`connecting`};suppressedChatEchoes=new Map;protocolCapabilities=new Set;supportsCapability(e){return this.protocolCapabilities.has(e)}onStatus(e){return this.statusListeners.add(e),e(this.currentStatus),()=>this.statusListeners.delete(e)}get status(){return this.currentStatus}setStatus(e){this.currentStatus=e;for(let t of this.statusListeners)try{t(e)}catch{}}constructor(e){this.url=e??A()}withSession(e){return this.sessionId?{...e,sessionId:this.sessionId}:e}async ensureAuthCookie(){if(typeof window>`u`)return;if(document.cookie.split(`;`).some(e=>e.trim().startsWith(`ws_token=`))){F(this.url)&&(this.url=T(this.url)),E();return}let e=C(this.url)??w();if(!e)return;let t=j()+`/ws-auth?token=${encodeURIComponent(e)}`;try{let e=await fetch(t,{method:`GET`,credentials:`same-origin`,cache:`no-store`});e.ok?(F(this.url)&&(this.url=T(this.url)),E()):console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_failed`,status:e.status,timestamp:new Date().toISOString()}))}catch(e){console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}}connect(){return this.ws?.readyState===WebSocket.OPEN?Promise.resolve():(this.connectPromise||=this.openSocket().finally(()=>{this.connectPromise=null}),this.connectPromise)}async openSocket(){return await this.ensureAuthCookie(),new Promise((e,t)=>{if(this.ws?.readyState===WebSocket.OPEN){e();return}this.setStatus({state:`connecting`});let n=++this.socketGeneration;try{let r=new WebSocket(this.url);this.ws=r,r.binaryType=`arraybuffer`;let i=setTimeout(()=>{if(this.ws===r){try{r.close()}catch{}this.ws===r&&(this.ws=null)}this.lastErrorText=`Connection timeout`,t(Error(`Connection timeout`)),s()},3e4),a=!1,o=!1,s=()=>{o||(o=!0,this.attemptReconnect())};r.onopen=()=>{this.socketGeneration===n&&(clearTimeout(i),a=!0,this.reconnectAttempts=0,this.lastErrorText=void 0,this.setStatus({state:`open`}),this.flushMessageQueue(),e())},r.onmessage=e=>{if(this.socketGeneration===n)try{let t=JSON.parse(e.data);this.handleMessage(t)}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.message_parse_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},r.onerror=e=>{this.socketGeneration===n&&(console.error(JSON.stringify({level:`error`,event:`ws_client.error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()})),this.lastErrorText=`Connection error (see browser devtools)`,a||(clearTimeout(i),t(Error(this.lastErrorText)),s()))},r.onclose=e=>{if(this.socketGeneration===n){if(!a){clearTimeout(i);let n=e.reason||`Closed with code ${e.code}`;this.lastErrorText=n,t(Error(n)),s();return}e.reason&&!this.lastErrorText?this.lastErrorText=`${e.reason} (code ${e.code})`:!this.lastErrorText&&e.code!==1e3&&(this.lastErrorText=`Closed with code ${e.code}`),this.attemptReconnect()}}}catch(e){if(this.socketGeneration!==n)return;this.lastErrorText=e instanceof Error?e.message:String(e),this.setStatus({state:`closed`,error:this.lastErrorText}),t(e)}})}attemptReconnect(){if(!this.shouldReconnect||this.reconnectAttempts>=this.maxReconnectAttempts){this.reconnectTimer=null,this.setStatus({state:`closed`,error:this.lastErrorText??`Disconnected`});return}this.reconnectAttempts++;let e=Math.min(this.reconnectDelay*2**(this.reconnectAttempts-1),3e4),t=Date.now()+e;this.setStatus({state:`reconnecting`,attempt:this.reconnectAttempts,nextRetryAt:t,lastError:this.lastErrorText}),this.reconnectTimer=setTimeout(async()=>{if(this.reconnectTimer=null,this.shouldReconnect)try{await this.connect()}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},e)}retryNow(){this.currentStatus.state!==`open`&&(this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.reconnectAttempts=0,this.connect().catch(e=>console.warn(JSON.stringify({level:`warn`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))))}flushMessageQueue(){for(;this.messageQueue.length>0;){let e=this.messageQueue.shift();e&&this.send(e)}}handleMessage(e){if(e.type===`tool.confirm_needed`){let t=e.payload;this.pendingConfirms.set(t.id,{}),this.emit(e);return}if(e.type===`session.start`){let t=e.payload;this.sessionId=t.sessionId,this.protocolCapabilities=new Set(t.protocolCapabilities??[])}this.emit(e)}emit(e){let t=this.handlers.get(e.type);if(t)for(let n of t)try{n(e)}catch(t){console.error(JSON.stringify({level:`error`,event:`ws_client.handler_error`,messageType:e.type,message:t instanceof Error?t.message:String(t),timestamp:new Date().toISOString()}))}}send(t,n={}){if(n.echoToChat===!1){let e=N[t.type];if(e){let t=this.suppressedChatEchoes.get(e)??[];t.push(Date.now()+P),this.suppressedChatEchoes.set(e,t)}}if((t.type===`context.clear`||t.type===`session.new`||t.type===`session.resume`)&&a.dropAll(),this.ws?.readyState===WebSocket.OPEN)this.ws.send(JSON.stringify(t));else{if(this.messageQueue.length>=e.MAX_QUEUED_MESSAGES){let t=this.messageQueue.shift();t&&console.warn(JSON.stringify({level:`warn`,event:`ws_client.message_queue_full`,cap:e.MAX_QUEUED_MESSAGES,droppedType:t.type,timestamp:new Date().toISOString()}))}this.messageQueue.push(t)}}consumeSuppressedChatEcho(e){let t=this.suppressedChatEchoes.get(e);if(!t)return!1;let n=Date.now();for(;t.length>0&&t[0]<=n;)t.shift();return t.length===0?(this.suppressedChatEchoes.delete(e),!1):(t.shift(),t.length===0&&this.suppressedChatEchoes.delete(e),!0)}on(e,t){let n=this.handlers.get(e);return n||(n=new Set,this.handlers.set(e,n)),n.add(t),()=>n?.delete(t)}off(e,t){this.handlers.get(e)?.delete(t)}sendMessage(e,t){let r=`msg_${Date.now()}_${n().slice(0,8)}`;return this.send({type:`user_message`,payload:this.withSession({id:r,content:e,timestamp:Date.now(),...t&&t.length>0?{images:t}:{}})}),r}sendAbort(){this.send({type:`abort`,payload:this.withSession({})})}getGitInfo(){this.send({type:`git.info`})}getGitChanges(){this.send({type:`git.changes`})}getGitDiff(e){this.send({type:`git.diff`,payload:{path:e}})}sendConfirm(e,t){this.pendingConfirms.has(e)&&this.pendingConfirms.delete(e),this.send({type:`tool.confirm_result`,payload:this.withSession({id:e,decision:t})})}switchModel(e,t){this.send({type:`model.switch`,payload:{provider:e,model:t}})}newSession(){this.send({type:`session.new`,payload:this.withSession({})})}listProviders(){this.send({type:`providers.list`})}listProviderModels(e){this.send({type:`provider.models`,payload:{providerId:e}})}listSavedProviders(){this.send({type:`providers.saved`})}addKey(e,t,n){this.send({type:`key.add`,payload:{providerId:e,label:t,apiKey:n}})}updateKey(e,t,n){this.send({type:`key.update`,payload:{providerId:e,label:t,apiKey:n}})}deleteKey(e,t){this.send({type:`key.delete`,payload:{providerId:e,label:t}})}setActiveKey(e,t){this.send({type:`key.set_active`,payload:{providerId:e,label:t}})}addProvider(e,t,n,r){this.send({type:`provider.add`,payload:{id:e,family:t,baseUrl:n,apiKey:r}})}removeProvider(e){this.send({type:`provider.remove`,payload:{providerId:e}})}startOAuth(e){this.send({type:`auth.oauth.start`,payload:{kind:e}})}submitOAuthCode(e,t){this.send({type:`auth.oauth.code`,payload:{kind:e,input:t}})}cancelOAuth(e){this.send({type:`auth.oauth.cancel`,payload:{kind:e}})}probeProvider(e,t){this.send({type:`provider.probe`,payload:t===void 0?{providerId:e}:{providerId:e,timeoutMs:t}})}clearProviderModels(e){this.send(o(e))}undoProviderClear(e,t){this.send(s(e,t))}updateProvider(e){this.send(c(e))}clearContext(){this.send({type:`context.clear`,payload:this.withSession({})})}compactContext(e=!1){this.send({type:`context.compact`,payload:this.withSession({aggressive:e})})}repairContext(){this.send({type:`context.repair`,payload:this.withSession({})})}debugContext(e){this.send({type:`context.debug`,payload:this.withSession({})},e)}listContextModes(){this.send({type:`context.modes.list`,payload:this.withSession({})})}switchContextMode(e){this.send({type:`context.mode.switch`,payload:this.withSession({id:e})})}createContextMode(e){this.send({type:`context.mode.create`,payload:this.withSession(e)})}updateContextMode(e,t){this.send({type:`context.mode.update`,payload:this.withSession({id:e,...t})})}deleteContextMode(e){this.send({type:`context.mode.delete`,payload:this.withSession({id:e})})}switchAutonomy(e){this.send({type:`autonomy.switch`,payload:{mode:e}})}updatePrefs(e){this.send({type:`prefs.update`,payload:e})}getPrefs(){this.send({type:`prefs.get`})}listTools(e){this.send({type:`tools.list`},e)}listMemory(e){this.send({type:`memory.list`},e)}listSuperMemories(e){this.send({type:`memory.super.list`},e)}listSuperMemoriesPage(e,t){this.send({type:`memory.super.listPage`,payload:{...e}},t)}getSuperMemory(e,t){this.send({type:`memory.super.get`,payload:{id:e}},t)}updateSuperMemory(e,t,n){this.send({type:`memory.super.update`,payload:{id:e,...t}},n)}deleteSuperMemory(e,t){this.send({type:`memory.super.delete`,payload:{id:e,reason:t}})}rememberSuperMemory(e,t){this.send({type:`memory.super.remember`,payload:e},t)}findMemoriesForFile(e,t){this.send({type:`memory.super.forFile`,payload:e},t)}recoverSuperMemory(e,t){this.send({type:`memory.super.recover`,payload:e},t)}resolveMemoryCandidate(e,t){this.send({type:`memory.super.candidateResolve`,payload:e},t)}backfillRecoverable(e,t){this.send({type:`memory.super.backfillRecoverable`,payload:e},t)}listMcpServers(){this.send({type:`mcp.list`})}addMcpServer(e){this.send({type:`mcp.add`,payload:e})}removeMcpServer(e){this.send({type:`mcp.remove`,payload:{name:e}})}updateMcpServer(e){this.send({type:`mcp.update`,payload:e})}wakeMcpServer(e){this.send({type:`mcp.wake`,payload:{name:e}})}sleepMcpServer(e){this.send({type:`mcp.sleep`,payload:{name:e}})}discoverMcpServer(e){this.send({type:`mcp.discover`,payload:{name:e}})}listMcpResources(e,t=!1){this.send({type:`mcp.resources`,payload:{name:e,refresh:t}})}listMcpPrompts(e,t=!1){this.send({type:`mcp.prompts`,payload:{name:e,refresh:t}})}readMcpResource(e,t){this.send({type:`mcp.resource.read`,payload:{name:e,uri:t}})}getMcpPrompt(e,t,n){this.send({type:`mcp.prompt.get`,payload:{name:e,prompt:t,...n===void 0?{}:{arguments:n}}})}enableMcpServer(e){this.send({type:`mcp.enable`,payload:{name:e}})}disableMcpServer(e){this.send({type:`mcp.disable`,payload:{name:e}})}restartMcpServer(e){this.send({type:`mcp.restart`,payload:{name:e}})}listSkills(e){this.send({type:`skills.list`},e)}getSkillContent(e,t){this.send({type:`skills.content`,payload:{name:e,source:t}})}installSkill(e,t){this.send({type:`skills.install`,payload:{ref:e,global:t}})}uninstallSkill(e,t){this.send({type:`skills.uninstall`,payload:{name:e,global:t}})}checkForUpdates(e,t){this.send({type:`skills.update`,payload:{name:e,global:t}})}createSkill(e,t,n){this.send({type:`skills.create`,payload:{name:e,description:t,scope:n}})}editSkill(e,t){this.send({type:`skills.edit`,payload:{name:e,body:t}})}exportAllSkills(){this.send({type:`skills.export`})}getDiag(e){this.send({type:`diag.get`,payload:this.withSession({})},e)}getStats(e){this.send({type:`stats.get`,payload:this.withSession({})},e)}saveSession(){this.send({type:`session.save`,payload:this.withSession({})})}resumeSessionById(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}listModes(){this.send({type:`modes.list`})}switchMode(e){this.send({type:`mode.switch`,payload:{id:e}})}listFiles(e,t,n){this.send({type:`files.list`,payload:{query:e,limit:t,path:n}})}requestCompletion(e){this.send({type:`completion.request`,payload:e})}getTodos(){this.send({type:`todos.get`,payload:this.withSession({})})}clearTodos(){this.send({type:`todos.clear`,payload:this.withSession({})})}removeTodo(e){let t=typeof e==`number`?{index:e}:{id:e};this.send({type:`todos.remove`,payload:this.withSession(t)})}updateTodoStatus(e,t){this.send({type:`todo.update`,payload:this.withSession({id:e,status:t})})}getTasks(){this.send({type:`tasks.get`,payload:this.withSession({})})}updateTaskStatus(e,t){this.send({type:`task.update`,payload:this.withSession({id:e,status:t})})}getPlan(){this.send({type:`plan.get`,payload:this.withSession({})})}updatePlanItem(e,t){this.send({type:`plan.item.update`,payload:this.withSession({target:e,status:t})})}listSessions(e=50){this.send({type:`sessions.list`,payload:this.withSession({limit:e})})}deleteSession(e){this.send({type:`session.delete`,payload:{id:e}})}renameSession(e,t){this.send({type:`session.rename`,payload:{id:e,name:t}})}setWorkingDir(e){this.send({type:`working_dir.set`,payload:{path:e}})}resumeSession(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}ping(){this.send({type:`ping`})}refineModel(e,t){this.send({type:`model.refine`,payload:{text:e,...t?.timeoutMs===void 0?{}:{timeoutMs:t.timeoutMs},...t?.provider===void 0?{}:{provider:t.provider},...t?.model===void 0?{}:{model:t.model},...t?.previousRefined===void 0?{}:{previousRefined:t.previousRefined},...t?.previousEnglish===void 0?{}:{previousEnglish:t.previousEnglish},...t?.retryFeedback===void 0?{}:{retryFeedback:t.retryFeedback}}})}disconnect(){this.shouldReconnect=!1,this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.messageQueue.length=0,this.ws?.close(),this.ws=null}get isConnected(){return this.ws?.readyState===WebSocket.OPEN}get currentSessionId(){return this.sessionId}},L=null;function R(e){return L||=new I(e),L}export{b as a,v as c,y as i,a as l,M as n,x as o,A as r,_ as s,R as t};
|
|
1
|
+
import{n as e}from"./rolldown-runtime-QTnfLwEv.js";import{$i as t}from"./vendor-Di1mdAi5.js";import{n}from"./utils-C4qVQ63O.js";import{t as r}from"./session-store-B8icONBU.js";function i(e){typeof requestAnimationFrame==`function`?requestAnimationFrame(e):queueMicrotask(e)}var a=new class{pending=new Map;scheduled=!1;push(e,t,n){if(!t)return;let r=this.pending.get(e);r?(r.buffer+=t,r.flush=n):this.pending.set(e,{buffer:t,flush:n}),this.schedule()}schedule(){this.scheduled||(this.scheduled=!0,i(()=>{this.scheduled=!1,this.drain()}))}drain(){if(this.pending.size===0)return;let e=Array.from(this.pending.entries());this.pending.clear();for(let[t,n]of e)n.buffer&&n.flush(t,n.buffer)}drop(e){this.pending.delete(e)}dropAll(){this.pending.clear()}flush(e){let t=this.pending.get(e);t&&(this.pending.delete(e),t.buffer&&t.flush(e,t.buffer))}flushAll(){this.drain()}};function o(e){return{type:`provider.clear_models`,payload:{providerId:e}}}function s(e,t){return{type:`provider.undo_clear`,payload:{providerId:e,previousModels:[...t]}}}function c(e){return{type:`provider.update`,payload:e}}function l(e){return Math.max(0,Math.min(100,Math.round((typeof e==`number`&&Number.isFinite(e)?e:0)*100)))}function u(e,t=!1){if(t&&e.target){if(e.kind===`agent:tool`||e.kind===`tool:executed`||e.kind===`tool:started`)return`tool`;if(e.source===`leader`||e.source===`coordinator`)return`coordinator`;if(e.kind.startsWith(`provider:`))return`provider`;if(e.kind.startsWith(`mailbox:`))return`mailbox`}switch(e.kind){case`provider:call`:case`provider:delta`:case`provider:response`:return`provider`;case`agent:spawned`:case`agent:tool`:case`agent:status`:case`agent:text`:case`agent:ctx`:case`budget:warning`:case`budget:extended`:return`agent`;case`tool:started`:case`tool:executed`:case`tool:progress`:return`tool`;case`mailbox:send`:case`mailbox:deliver`:return`mailbox`;case`collab:event`:return`system`;case`session:start`:case`session:end`:case`iteration:start`:case`iteration:end`:case`eternal:iteration`:case`fleet:snapshot`:return`session`;case`context:compacted`:case`context:repaired`:case`cost:update`:return`system`;case`error`:return`error`;default:return`system`}}function d(e){switch(e){case`provider:call`:case`provider:delta`:case`agent:tool`:case`tool:started`:case`tool:progress`:case`iteration:start`:case`agent:text`:return`streaming`;case`agent:status`:case`iteration:end`:return`completed`;case`error`:return`error`;case`tool:executed`:return`completed`;case`session:end`:return`idle`;default:return`active`}}var f=0;function p(){return`viz_${Date.now()}_${++f}`}function m(e,t){if(e===t)return!0;if(!e||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n){let n=e[r],i=t[r];if(n!==i){if(n==null||i==null||typeof n!=typeof i)return!1;if(typeof n==`object`){if(Array.isArray(n)||Array.isArray(i)||!m(n,i))return!1;continue}return!1}}return!0}var h={provider:`hsl(var(--info))`,agent:`hsl(var(--primary))`,tool:`hsl(var(--warning))`,mailbox:`hsl(var(--success))`,session:`hsl(var(--primary))`,system:`hsl(var(--muted-foreground))`,success:`hsl(var(--success))`,error:`hsl(var(--destructive))`},g={"provider:call":`hsl(var(--info))`,"provider:delta":`hsl(var(--primary))`,"agent:tool":`hsl(var(--warning))`,"mailbox:send":`hsl(var(--success))`,default:`hsl(var(--muted-foreground))`},_=t()((e,t)=>({events:[],toolEvents:[],nodes:new Map,edges:new Map,isActive:!1,maxEvents:2e3,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0},pushEvent:t=>e(e=>{let n={...t,id:t.id??p(),timestamp:t.timestamp||Date.now()},r=[n,...e.events];r.length>e.maxEvents&&(r.length=e.maxEvents);let i=t.kind===`agent:tool`||t.kind===`tool:started`||t.kind===`tool:progress`||t.kind===`tool:executed`?[n,...e.toolEvents].slice(0,600):e.toolEvents,a=Date.now(),o=t.source,s={id:o,kind:u(t),label:t.label,status:d(t.kind),activity:1,color:t.color??h[u(t)],lastSeenAt:a},c=e.nodes.get(o),l=c?{...c,...s}:s,f=!m(c,l),g,_=!1,v;if(t.target){v=t.target;let n={id:v,kind:u(t,!0),label:v,status:d(t.kind),activity:.8,color:t.color??h[u(t,!0)],lastSeenAt:a},r=e.nodes.get(v);g=r?{...r,...n}:n,_=!m(r,g)}let y,b=!1,x;if(t.target&&o){x=`${o}->${t.target}`;let n=e.edges.get(x),r={id:x,source:o,target:t.target,kind:t.kind,label:t.label,intensity:n?Math.min(1,n.intensity+.3):.7,color:t.color??h[u(t)]??h.agent,lastActiveAt:a,totalMagnitude:(n?.totalMagnitude??0)+(t.magnitude??0)};y=n?{...n,...r}:r,b=!m(n,y)}let S=e.nodes,C=e.edges;return(f||_)&&(S=new Map(e.nodes),f&&S.set(o,l),_&&g&&v&&S.set(v,g)),b&&y&&x&&(C=new Map(e.edges),C.set(x,y)),{events:r,toolEvents:i,nodes:S,edges:C}}),upsertNode:t=>e(e=>{let n=new Map(e.nodes),r=n.get(t.id);return n.set(t.id,{...r,...t,lastSeenAt:t.lastSeenAt===void 0?Date.now():t.lastSeenAt}),{nodes:n}}),removeNode:t=>e(e=>{let n=new Map(e.nodes);n.delete(t);let r=new Map(e.edges);for(let[e,n]of r)(n.source===t||n.target===t)&&r.delete(e);return{nodes:n,edges:r}}),upsertEdge:t=>e(e=>{let n=new Map(e.edges),r=n.get(t.id);return n.set(t.id,{...r,...t,lastActiveAt:t.lastActiveAt===void 0?Date.now():t.lastActiveAt,intensity:t.intensity??r?.intensity??.5,color:t.color??g[t.kind]??g.default,totalMagnitude:(r?.totalMagnitude??0)+(t.totalMagnitude??0)}),{edges:n}}),removeEdge:t=>e(e=>{let n=new Map(e.edges);return n.delete(t),{edges:n}}),clear:()=>e({events:[],toolEvents:[],nodes:new Map,edges:new Map,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0}}),setActive:t=>e({isActive:t}),decayActivity:()=>e(e=>{let t=new Map(e.nodes);for(let[e,n]of t)if(n.activity>=.01){let r=n.activity*.92;t.set(e,{...n,activity:r<.01?0:r})}let n=new Map(e.edges);for(let[e,t]of n)if(t.intensity>=.01){let r=t.intensity*.9;n.set(e,{...t,intensity:r<.01?0:r})}return{nodes:t,edges:n}}),prunesStale:t=>e(e=>{let n=Date.now()-t,r=new Map(e.nodes);for(let[e,t]of r)t.lastSeenAt<n&&t.status!==void 0&&t.status!==`active`&&r.delete(e);let i=new Map(e.edges);for(let[e,t]of i)t.lastActiveAt<n&&i.delete(e);return{nodes:r,edges:i,events:e.events.filter(e=>e.timestamp>n)}})}));function v(e,t){switch(e){case`provider.text_delta`:{let e=t.text??``;return{id:p(),kind:`provider:delta`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,60),magnitude:e.length,data:{text:e},color:h.provider,flowGroup:`provider`}}case`provider.response`:{let e=t.usage,n=(e?.input??0)+(e?.output??0);return{id:p(),kind:`provider:response`,timestamp:Date.now(),source:`provider`,target:`leader`,label:`${(e?.input??0).toLocaleString(`en-US`)} in / ${(e?.output??0).toLocaleString(`en-US`)} out`,magnitude:n,data:t,color:h.provider,flowGroup:`provider`}}case`provider.stream_error`:{let e=t.message??`Provider stream error`;return{id:p(),kind:`error`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,80),magnitude:1,data:t,color:h.error,flowGroup:`provider`}}case`tool.started`:{let e=t.name??`tool`;return{id:p(),kind:`tool:started`,timestamp:Date.now(),source:e,target:`filesystem`,label:e,magnitude:1,data:t,color:h.tool,flowGroup:`tool:${e}`}}case`tool.executed`:{let e=t.name??`tool`,n=t.ok??!0;return{id:p(),kind:`tool:executed`,timestamp:Date.now(),source:e,target:`leader`,label:`${e} ${n?`✓`:`✗`} (${t.durationMs??0}ms)`,magnitude:t.durationMs??0,data:t,color:n?h.tool:h.error,flowGroup:`tool:${e}`}}case`tool.progress`:{let e=t.name??`tool`,n=t.event?.text??``;return{id:p(),kind:`tool:progress`,timestamp:Date.now(),source:e,target:`leader`,label:n.slice(0,60)||e,magnitude:n.length,data:t,color:h.tool,flowGroup:`tool:${e}`}}case`codemap.tool_started`:{let e=t.name??`tool`,n=t.agentId??`subagent`;return{id:p(),kind:`tool:started`,timestamp:Date.now(),source:n,target:e,label:e,magnitude:1,data:t,color:h.tool,flowGroup:`agent:${n}`}}case`codemap.tool_executed`:{let e=t.name??`tool`,n=t.agentId??`subagent`,r=t.ok??!0;return{id:p(),kind:`tool:executed`,timestamp:Date.now(),source:n,target:e,label:`${e} ${r?`✓`:`✗`} (${t.durationMs??0}ms)`,magnitude:t.durationMs??0,data:t,color:r?h.tool:h.error,flowGroup:`agent:${n}`}}case`tool.loop_detected`:{let e=t.tools??``,n=t.kind??`loop`;return{id:p(),kind:`error`,timestamp:Date.now(),source:e||n,target:`leader`,label:`${n} loop x${t.repeatCount??0}`,magnitude:t.repeatCount??1,data:t,color:h.error,flowGroup:`tool`}}case`delegate.started`:{let e=t.target??`delegate`,n=t.task??``;return{id:p(),kind:`agent:status`,timestamp:Date.now(),source:`leader`,target:e,label:n.slice(0,80)||`Delegating to ${e}`,magnitude:1,data:t,color:h.agent,flowGroup:`delegate:${e}`}}case`delegate.completed`:{let e=t.subagentId??t.target??`delegate`,n=t.ok??!1;return{id:p(),kind:n?`agent:status`:`error`,timestamp:Date.now(),source:e,target:`leader`,label:(t.summary??t.status??`delegate completed`).slice(0,80),magnitude:t.durationMs??1,data:t,color:n?h.agent:h.error,flowGroup:`delegate:${e}`}}case`subagent.event`:{let e=t.kind,n=t.subagentId??`unknown`,r=t.name??n;switch(e){case`spawned`:return{id:p(),kind:`agent:spawned`,timestamp:Date.now(),source:n,target:`session`,label:`${r} spawned`,magnitude:1,data:t,color:h.agent,flowGroup:`agent:${n}`};case`tool_executed`:{let e=t.toolName??`tool`,r=t.ok??!0;return{id:p(),kind:`agent:tool`,timestamp:Date.now(),source:n,target:e,label:e,magnitude:t.durationMs??0,data:t,color:r?h.tool:h.error,flowGroup:`agent:${n}`}}case`task_completed`:{let e=t.status??`completed`;return{id:p(),kind:`agent:status`,timestamp:Date.now(),source:n,target:`session`,label:`${r} ${e}`,magnitude:1,data:t,color:e===`success`?h.success:h.error,flowGroup:`agent:${n}`}}case`ctx_pct`:return{id:p(),kind:`agent:ctx`,timestamp:Date.now(),source:n,target:`session`,label:`ctx ${l(t.load)}%`,magnitude:t.tokens??0,data:t,color:h.agent,flowGroup:`agent:${n}`};case`iteration_summary`:return{id:p(),kind:`agent:text`,timestamp:Date.now(),source:n,target:`session`,label:(t.partialText??``).slice(0,80)||`iter ${t.iteration??0}`,magnitude:t.costUsd??0,data:t,color:h.agent,flowGroup:`agent:${n}`};case`budget_extended`:return{id:p(),kind:`budget:extended`,timestamp:Date.now(),source:n,target:`session`,label:`${r} extended budget`,magnitude:t.totalExtensions??1,data:t,color:h.tool,flowGroup:`agent:${n}`};case`budget_warning`:return{id:p(),kind:`budget:warning`,timestamp:Date.now(),source:n,target:`session`,label:`${r} hit ${t.budgetKind??`budget`} ${t.used??0}/${t.limit??0}`,magnitude:t.used??1,data:t,color:h.error,flowGroup:`agent:${n}`}}return null}case`mailbox.event`:{let e=t.event,n=t.from??`?`,r=t.to??`?`,i=t.subject??``,a=e===`mailbox.sent`;return{id:p(),kind:a?`mailbox:send`:`mailbox:deliver`,timestamp:Date.now(),source:n,target:r,label:i||(a?`→ ${r}`:`← ${n}`),magnitude:1,data:t,color:h.mailbox,flowGroup:`mailbox`}}case`iteration.started`:{let e=t.index??0;return{id:p(),kind:`iteration:start`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e}`,magnitude:e,data:t,color:h.agent,flowGroup:`iteration`}}case`iteration.completed`:{let e=t.index??0;return{id:p(),kind:`iteration:end`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e} done`,magnitude:e,data:t,color:h.session,flowGroup:`iteration`}}case`ctx.pct`:{let e=t.tokens??0;return{id:p(),kind:`agent:ctx`,timestamp:Date.now(),source:`leader`,target:`session`,label:`ctx ${l(t.load)}%`,magnitude:e,data:t,color:h.agent,flowGroup:`leader`}}case`error`:{let e=t.message??`Error`;return{id:p(),kind:`error`,timestamp:Date.now(),source:t.phase??`system`,target:`session`,label:e,magnitude:1,data:t,color:h.error,flowGroup:`error`}}case`context.compacted`:return{id:p(),kind:`context:compacted`,timestamp:Date.now(),source:`system`,target:`session`,label:`Compacted: ${(t.saved??0).toLocaleString(`en-US`)} tokens`,magnitude:t.saved??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`compaction.failed`:{let e=t.message??`Compaction failed`;return{id:p(),kind:`error`,timestamp:Date.now(),source:`compactor`,target:`session`,label:e.slice(0,80),magnitude:t.tokens??1,data:t,color:h.error,flowGroup:`context`}}case`context.repaired`:return{id:p(),kind:`context:repaired`,timestamp:Date.now(),source:`system`,target:`session`,label:`Repaired: ${t.removedMessages??0} msgs`,magnitude:t.removedMessages??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`session.start`:{let e=t.sessionId??`?`,n=t.projectName??``;return{id:p(),kind:`session:start`,timestamp:Date.now(),source:`session`,target:`leader`,label:n||e.slice(0,12),magnitude:1,data:t,color:h.session,flowGroup:`session`}}case`sessions.status_update`:{let e=t.sessions??[];return{id:p(),kind:`fleet:snapshot`,timestamp:Date.now(),source:`system`,target:`session`,label:`${e.length} session(s)`,magnitude:e.length,data:t,color:h.system,flowGroup:`fleet`}}default:return null}}function y(e){let t=e.payload?.sessionId,n=r.getState().session?.id;return!t||!n||t===n}function b(e){let t=v(e.type,e.payload);t&&(_.getState().pushEvent(t),_.getState().setActive(!0))}function x(e,t,n){let r=e.payload??{};for(let[e,n]of Object.entries(t)){let t=r[e];if(!S(t,n))return null}if(n)for(let[e,t]of Object.entries(n)){let n=r[e];if(n!=null&&!S(n,t))return null}return r}function S(e,t){switch(t){case`string`:return typeof e==`string`;case`number`:return typeof e==`number`;case`boolean`:return typeof e==`boolean`;case`object`:return typeof e==`object`&&!!e&&!Array.isArray(e);case`array`:return Array.isArray(e);default:return!1}}function C(e){try{return new URL(e).searchParams.get(`token`)}catch{return null}}function w(){if(typeof window>`u`||!window.location)return null;try{let e=window.location.search??``;return new URLSearchParams(e).get(`token`)}catch{return null}}function T(e){try{let t=new URL(e);return t.searchParams.delete(`token`),t.toString()}catch{return e}}function E(){if(!(typeof window>`u`||!window.location||!window.history?.replaceState))try{let e=window.location.href;if(!e)return;let t=new URL(e);if(!t.searchParams.has(`token`))return;t.searchParams.delete(`token`),window.history.replaceState(window.history.state,document.title,t.toString())}catch{}}var D=3457;function O(){if(typeof document>`u`)return D;let e=document.querySelector(`meta[name="wrongstack-ws-port"]`)?.getAttribute(`content`),t=e?Number.parseInt(e,10):NaN;return Number.isFinite(t)&&t>0&&t<65536?t:D}function k(){if(typeof document>`u`)return null;let e=document.querySelector(`meta[name="wrongstack-ws-url"]`)?.getAttribute(`content`)?.trim();if(!e)return null;try{let t=new URL(e);if(t.protocol!==`ws:`&&t.protocol!==`wss:`)return null;let n=w();return n&&!t.searchParams.has(`token`)&&t.searchParams.set(`token`,n),t.toString()}catch{return null}}function A(){let e=k();if(e)return e;let t=O();if(typeof window>`u`||!window.location?.hostname)return`ws://127.0.0.1:${t}`;let n=window.location.protocol===`https:`?`wss`:`ws`,r=window.location.hostname.toLowerCase(),i=w(),a=i?`?token=${encodeURIComponent(i)}`:``;return r===`localhost`||r===`127.0.0.1`||r===`[::1]`||r===`::1`?`${n}://127.0.0.1:${t}${a}`:`${n}://${window.location.hostname}:${t}${a}`}function j(){if(typeof window>`u`||!window.location?.hostname)return`http://127.0.0.1:3456`;let e=window.location.protocol===`https:`?`https`:`http`,t=window.location.hostname.toLowerCase(),n=window.location.port?`:${window.location.port}`:``;return t===`localhost`||t===`127.0.0.1`||t===`[::1]`||t===`::1`?`${e}://127.0.0.1${n}`:`${e}://${window.location.hostname}${n}`}var M=e({WrongStackWebSocketClient:()=>I,getWSClient:()=>R}),N={"context.debug":`context.debug`,"diag.get":`diag.get`,"memory.list":`memory.list`,"memory.super.get":`memory.super.get`,"memory.super.graph":`memory.super.graph`,"memory.super.list":`memory.super.list`,"memory.super.listPage":`memory.super.listPage`,"memory.super.remember":`memory.super.remember`,"memory.super.update":`memory.super.update`,"skills.list":`skills.list`,"stats.get":`stats.get`,"tools.list":`tools.list`},P=3e4;function F(e){try{let t=new URL(e),n=new URL(j());return t.hostname===n.hostname}catch{return!0}}var I=class e{ws=null;url;handlers=new Map;reconnectAttempts=0;maxReconnectAttempts=10;reconnectDelay=1e3;shouldReconnect=!0;reconnectTimer=null;connectPromise=null;socketGeneration=0;messageQueue=[];static MAX_QUEUED_MESSAGES=1e3;pendingConfirms=new Map;sessionId=null;lastErrorText;statusListeners=new Set;currentStatus={state:`connecting`};suppressedChatEchoes=new Map;protocolCapabilities=new Set;supportsCapability(e){return this.protocolCapabilities.has(e)}onStatus(e){return this.statusListeners.add(e),e(this.currentStatus),()=>this.statusListeners.delete(e)}get status(){return this.currentStatus}setStatus(e){this.currentStatus=e;for(let t of this.statusListeners)try{t(e)}catch{}}constructor(e){this.url=e??A()}withSession(e){return this.sessionId?{...e,sessionId:this.sessionId}:e}async ensureAuthCookie(){if(typeof window>`u`)return;if(document.cookie.split(`;`).some(e=>e.trim().startsWith(`ws_token=`))){F(this.url)&&(this.url=T(this.url)),E();return}let e=C(this.url)??w();if(!e)return;let t=j()+`/ws-auth?token=${encodeURIComponent(e)}`;try{let e=await fetch(t,{method:`GET`,credentials:`same-origin`,cache:`no-store`});e.ok?(F(this.url)&&(this.url=T(this.url)),E()):console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_failed`,status:e.status,timestamp:new Date().toISOString()}))}catch(e){console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}}connect(){return this.ws?.readyState===WebSocket.OPEN?Promise.resolve():(this.connectPromise||=this.openSocket().finally(()=>{this.connectPromise=null}),this.connectPromise)}async openSocket(){return await this.ensureAuthCookie(),new Promise((e,t)=>{if(this.ws?.readyState===WebSocket.OPEN){e();return}this.setStatus({state:`connecting`});let n=++this.socketGeneration;try{let r=new WebSocket(this.url);this.ws=r,r.binaryType=`arraybuffer`;let i=setTimeout(()=>{if(this.ws===r){try{r.close()}catch{}this.ws===r&&(this.ws=null)}this.lastErrorText=`Connection timeout`,t(Error(`Connection timeout`)),s()},3e4),a=!1,o=!1,s=()=>{o||(o=!0,this.attemptReconnect())};r.onopen=()=>{this.socketGeneration===n&&(clearTimeout(i),a=!0,this.reconnectAttempts=0,this.lastErrorText=void 0,this.setStatus({state:`open`}),this.flushMessageQueue(),e())},r.onmessage=e=>{if(this.socketGeneration===n)try{let t=JSON.parse(e.data);this.handleMessage(t)}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.message_parse_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},r.onerror=e=>{this.socketGeneration===n&&(console.error(JSON.stringify({level:`error`,event:`ws_client.error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()})),this.lastErrorText=`Connection error (see browser devtools)`,a||(clearTimeout(i),t(Error(this.lastErrorText)),s()))},r.onclose=e=>{if(this.socketGeneration===n){if(!a){clearTimeout(i);let n=e.reason||`Closed with code ${e.code}`;this.lastErrorText=n,t(Error(n)),s();return}e.reason&&!this.lastErrorText?this.lastErrorText=`${e.reason} (code ${e.code})`:!this.lastErrorText&&e.code!==1e3&&(this.lastErrorText=`Closed with code ${e.code}`),this.attemptReconnect()}}}catch(e){if(this.socketGeneration!==n)return;this.lastErrorText=e instanceof Error?e.message:String(e),this.setStatus({state:`closed`,error:this.lastErrorText}),t(e)}})}attemptReconnect(){if(!this.shouldReconnect||this.reconnectAttempts>=this.maxReconnectAttempts){this.reconnectTimer=null,this.setStatus({state:`closed`,error:this.lastErrorText??`Disconnected`});return}this.reconnectAttempts++;let e=Math.min(this.reconnectDelay*2**(this.reconnectAttempts-1),3e4),t=Date.now()+e;this.setStatus({state:`reconnecting`,attempt:this.reconnectAttempts,nextRetryAt:t,lastError:this.lastErrorText}),this.reconnectTimer=setTimeout(async()=>{if(this.reconnectTimer=null,this.shouldReconnect)try{await this.connect()}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},e)}retryNow(){this.currentStatus.state!==`open`&&(this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.reconnectAttempts=0,this.connect().catch(e=>console.warn(JSON.stringify({level:`warn`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))))}flushMessageQueue(){for(;this.messageQueue.length>0;){let e=this.messageQueue.shift();e&&this.send(e)}}handleMessage(e){if(e.type===`tool.confirm_needed`){let t=e.payload;this.pendingConfirms.set(t.id,{}),this.emit(e);return}if(e.type===`session.start`){let t=e.payload;this.sessionId=t.sessionId,this.protocolCapabilities=new Set(t.protocolCapabilities??[])}this.emit(e)}emit(e){let t=this.handlers.get(e.type);if(t)for(let n of t)try{n(e)}catch(t){console.error(JSON.stringify({level:`error`,event:`ws_client.handler_error`,messageType:e.type,message:t instanceof Error?t.message:String(t),timestamp:new Date().toISOString()}))}}send(t,n={}){if(n.echoToChat===!1){let e=N[t.type];if(e){let t=this.suppressedChatEchoes.get(e)??[];t.push(Date.now()+P),this.suppressedChatEchoes.set(e,t)}}if((t.type===`context.clear`||t.type===`session.new`||t.type===`session.resume`)&&a.dropAll(),this.ws?.readyState===WebSocket.OPEN)this.ws.send(JSON.stringify(t));else{if(this.messageQueue.length>=e.MAX_QUEUED_MESSAGES){let t=this.messageQueue.shift();t&&console.warn(JSON.stringify({level:`warn`,event:`ws_client.message_queue_full`,cap:e.MAX_QUEUED_MESSAGES,droppedType:t.type,timestamp:new Date().toISOString()}))}this.messageQueue.push(t)}}consumeSuppressedChatEcho(e){let t=this.suppressedChatEchoes.get(e);if(!t)return!1;let n=Date.now();for(;t.length>0&&t[0]<=n;)t.shift();return t.length===0?(this.suppressedChatEchoes.delete(e),!1):(t.shift(),t.length===0&&this.suppressedChatEchoes.delete(e),!0)}on(e,t){let n=this.handlers.get(e);return n||(n=new Set,this.handlers.set(e,n)),n.add(t),()=>n?.delete(t)}off(e,t){this.handlers.get(e)?.delete(t)}sendMessage(e,t){let r=`msg_${Date.now()}_${n().slice(0,8)}`;return this.send({type:`user_message`,payload:this.withSession({id:r,content:e,timestamp:Date.now(),...t&&t.length>0?{images:t}:{}})}),r}sendAbort(){this.send({type:`abort`,payload:this.withSession({})})}getGitInfo(){this.send({type:`git.info`})}getGitChanges(){this.send({type:`git.changes`})}getGitDiff(e){this.send({type:`git.diff`,payload:{path:e}})}sendConfirm(e,t){this.pendingConfirms.has(e)&&this.pendingConfirms.delete(e),this.send({type:`tool.confirm_result`,payload:this.withSession({id:e,decision:t})})}switchModel(e,t){this.send({type:`model.switch`,payload:{provider:e,model:t}})}newSession(){this.send({type:`session.new`,payload:this.withSession({})})}listProviders(){this.send({type:`providers.list`})}listProviderModels(e){this.send({type:`provider.models`,payload:{providerId:e}})}listSavedProviders(){this.send({type:`providers.saved`})}addKey(e,t,n){this.send({type:`key.add`,payload:{providerId:e,label:t,apiKey:n}})}updateKey(e,t,n){this.send({type:`key.update`,payload:{providerId:e,label:t,apiKey:n}})}deleteKey(e,t){this.send({type:`key.delete`,payload:{providerId:e,label:t}})}setActiveKey(e,t){this.send({type:`key.set_active`,payload:{providerId:e,label:t}})}addProvider(e,t,n,r){this.send({type:`provider.add`,payload:{id:e,family:t,baseUrl:n,apiKey:r}})}removeProvider(e){this.send({type:`provider.remove`,payload:{providerId:e}})}startOAuth(e){this.send({type:`auth.oauth.start`,payload:{kind:e}})}submitOAuthCode(e,t){this.send({type:`auth.oauth.code`,payload:{kind:e,input:t}})}cancelOAuth(e){this.send({type:`auth.oauth.cancel`,payload:{kind:e}})}probeProvider(e,t){this.send({type:`provider.probe`,payload:t===void 0?{providerId:e}:{providerId:e,timeoutMs:t}})}clearProviderModels(e){this.send(o(e))}undoProviderClear(e,t){this.send(s(e,t))}updateProvider(e){this.send(c(e))}clearContext(){this.send({type:`context.clear`,payload:this.withSession({})})}compactContext(e=!1){this.send({type:`context.compact`,payload:this.withSession({aggressive:e})})}repairContext(){this.send({type:`context.repair`,payload:this.withSession({})})}debugContext(e){this.send({type:`context.debug`,payload:this.withSession({})},e)}listContextModes(){this.send({type:`context.modes.list`,payload:this.withSession({})})}switchContextMode(e){this.send({type:`context.mode.switch`,payload:this.withSession({id:e})})}createContextMode(e){this.send({type:`context.mode.create`,payload:this.withSession(e)})}updateContextMode(e,t){this.send({type:`context.mode.update`,payload:this.withSession({id:e,...t})})}deleteContextMode(e){this.send({type:`context.mode.delete`,payload:this.withSession({id:e})})}switchAutonomy(e){this.send({type:`autonomy.switch`,payload:{mode:e}})}updatePrefs(e){this.send({type:`prefs.update`,payload:e})}getPrefs(){this.send({type:`prefs.get`})}listTools(e){this.send({type:`tools.list`},e)}listMemory(e){this.send({type:`memory.list`},e)}listSuperMemories(e){this.send({type:`memory.super.list`},e)}listSuperMemoriesPage(e,t){this.send({type:`memory.super.listPage`,payload:{...e}},t)}getSuperMemory(e,t){this.send({type:`memory.super.get`,payload:{id:e}},t)}getSuperMemoryGraph(e,t,n){this.send({type:`memory.super.graph`,payload:{query:e,...t}},n)}updateSuperMemory(e,t,n){this.send({type:`memory.super.update`,payload:{id:e,...t}},n)}deleteSuperMemory(e,t){this.send({type:`memory.super.delete`,payload:{id:e,reason:t}})}rememberSuperMemory(e,t){this.send({type:`memory.super.remember`,payload:e},t)}findMemoriesForFile(e,t){this.send({type:`memory.super.forFile`,payload:e},t)}recoverSuperMemory(e,t){this.send({type:`memory.super.recover`,payload:e},t)}resolveMemoryCandidate(e,t){this.send({type:`memory.super.candidateResolve`,payload:e},t)}backfillRecoverable(e,t){this.send({type:`memory.super.backfillRecoverable`,payload:e},t)}listMcpServers(){this.send({type:`mcp.list`})}addMcpServer(e){this.send({type:`mcp.add`,payload:e})}removeMcpServer(e){this.send({type:`mcp.remove`,payload:{name:e}})}updateMcpServer(e){this.send({type:`mcp.update`,payload:e})}wakeMcpServer(e){this.send({type:`mcp.wake`,payload:{name:e}})}sleepMcpServer(e){this.send({type:`mcp.sleep`,payload:{name:e}})}discoverMcpServer(e){this.send({type:`mcp.discover`,payload:{name:e}})}listMcpResources(e,t=!1){this.send({type:`mcp.resources`,payload:{name:e,refresh:t}})}listMcpPrompts(e,t=!1){this.send({type:`mcp.prompts`,payload:{name:e,refresh:t}})}readMcpResource(e,t){this.send({type:`mcp.resource.read`,payload:{name:e,uri:t}})}getMcpPrompt(e,t,n){this.send({type:`mcp.prompt.get`,payload:{name:e,prompt:t,...n===void 0?{}:{arguments:n}}})}enableMcpServer(e){this.send({type:`mcp.enable`,payload:{name:e}})}disableMcpServer(e){this.send({type:`mcp.disable`,payload:{name:e}})}restartMcpServer(e){this.send({type:`mcp.restart`,payload:{name:e}})}listSkills(e){this.send({type:`skills.list`},e)}getSkillContent(e,t){this.send({type:`skills.content`,payload:{name:e,source:t}})}installSkill(e,t){this.send({type:`skills.install`,payload:{ref:e,global:t}})}uninstallSkill(e,t){this.send({type:`skills.uninstall`,payload:{name:e,global:t}})}checkForUpdates(e,t){this.send({type:`skills.update`,payload:{name:e,global:t}})}createSkill(e,t,n){this.send({type:`skills.create`,payload:{name:e,description:t,scope:n}})}editSkill(e,t){this.send({type:`skills.edit`,payload:{name:e,body:t}})}exportAllSkills(){this.send({type:`skills.export`})}getDiag(e){this.send({type:`diag.get`,payload:this.withSession({})},e)}getStats(e){this.send({type:`stats.get`,payload:this.withSession({})},e)}saveSession(){this.send({type:`session.save`,payload:this.withSession({})})}resumeSessionById(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}listModes(){this.send({type:`modes.list`})}switchMode(e){this.send({type:`mode.switch`,payload:{id:e}})}listFiles(e,t,n){this.send({type:`files.list`,payload:{query:e,limit:t,path:n}})}requestCompletion(e){this.send({type:`completion.request`,payload:e})}getTodos(){this.send({type:`todos.get`,payload:this.withSession({})})}clearTodos(){this.send({type:`todos.clear`,payload:this.withSession({})})}removeTodo(e){let t=typeof e==`number`?{index:e}:{id:e};this.send({type:`todos.remove`,payload:this.withSession(t)})}updateTodoStatus(e,t){this.send({type:`todo.update`,payload:this.withSession({id:e,status:t})})}getTasks(){this.send({type:`tasks.get`,payload:this.withSession({})})}updateTaskStatus(e,t){this.send({type:`task.update`,payload:this.withSession({id:e,status:t})})}getPlan(){this.send({type:`plan.get`,payload:this.withSession({})})}updatePlanItem(e,t){this.send({type:`plan.item.update`,payload:this.withSession({target:e,status:t})})}listSessions(e=50){this.send({type:`sessions.list`,payload:this.withSession({limit:e})})}deleteSession(e){this.send({type:`session.delete`,payload:{id:e}})}renameSession(e,t){this.send({type:`session.rename`,payload:{id:e,name:t}})}setWorkingDir(e){this.send({type:`working_dir.set`,payload:{path:e}})}resumeSession(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}ping(){this.send({type:`ping`})}refineModel(e,t){this.send({type:`model.refine`,payload:{text:e,...t?.timeoutMs===void 0?{}:{timeoutMs:t.timeoutMs},...t?.provider===void 0?{}:{provider:t.provider},...t?.model===void 0?{}:{model:t.model},...t?.previousRefined===void 0?{}:{previousRefined:t.previousRefined},...t?.previousEnglish===void 0?{}:{previousEnglish:t.previousEnglish},...t?.retryFeedback===void 0?{}:{retryFeedback:t.retryFeedback}}})}disconnect(){this.shouldReconnect=!1,this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.messageQueue.length=0,this.ws?.close(),this.ws=null}get isConnected(){return this.ws?.readyState===WebSocket.OPEN}get currentSessionId(){return this.sessionId}},L=null;function R(e){return L||=new I(e),L}export{b as a,v as c,y as i,a as l,M as n,x as o,A as r,_ as s,R as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentsMonitor.d.ts","sourceRoot":"","sources":["../../src/components/AgentsMonitor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"AgentsMonitor.d.ts","sourceRoot":"","sources":["../../src/components/AgentsMonitor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA0CD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,+BA2MxF;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,+BAkK5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../src/components/ChatInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,wBAAgB,SAAS,CAAC,EACxB,eAAe,GAChB,GAAE;IACD,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACvC,
|
|
1
|
+
{"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../src/components/ChatInput.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,wBAAgB,SAAS,CAAC,EACxB,eAAe,GAChB,GAAE;IACD,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACvC,qBA2zCL"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* The bar uses 10 segments with 3 sub-segments each (matching the TUI's
|
|
11
11
|
* 1/8-block precision: ▏▎▍▌▋▊▉█). Each segment is 3.33% of the bar.
|
|
12
12
|
*/
|
|
13
|
-
|
|
13
|
+
interface ContextBarProps {
|
|
14
14
|
/** Context fill percentage 0–100. Values above 100 are displayed as 100. */
|
|
15
15
|
pct: number;
|
|
16
16
|
/** Current token count (raw number). */
|
|
@@ -25,11 +25,21 @@ export interface ContextBarProps {
|
|
|
25
25
|
className?: string | undefined;
|
|
26
26
|
/** Click handler — use to show a breakdown modal. */
|
|
27
27
|
onClick?: (() => void) | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Visual variant for the filled segments.
|
|
30
|
+
* - `solid` (default) — single zone color per segment (green/yellow/red).
|
|
31
|
+
* - `iridescent` — per-segment hue gradient across the full spectrum:
|
|
32
|
+
* each segment's color is derived from its position along the fill
|
|
33
|
+
* (green → cyan → amber → orange → red → magenta), producing a
|
|
34
|
+
* smooth rainbow transition instead of flat zone colors.
|
|
35
|
+
*/
|
|
36
|
+
variant?: 'solid' | 'iridescent' | undefined;
|
|
28
37
|
}
|
|
29
|
-
export declare function ContextBar({ pct, tokens, maxTokens, segments, showTokens, className, onClick, }: ContextBarProps): React.ReactElement;
|
|
38
|
+
export declare function ContextBar({ pct, tokens, maxTokens, segments, showTokens, className, onClick, variant, }: ContextBarProps): React.ReactElement;
|
|
30
39
|
/**
|
|
31
|
-
* Horizontal CSS-based context fill bar —
|
|
32
|
-
*
|
|
40
|
+
* Horizontal CSS-based context fill bar — a smooth, gradient-filled
|
|
41
|
+
* progress indicator with glow effects and animated stripes.
|
|
33
42
|
*/
|
|
34
43
|
export declare function ContextFillBar({ pct, tokens, maxTokens, showTokens, className, onClick, }: Omit<ContextBarProps, 'segments'>): React.ReactElement;
|
|
44
|
+
export {};
|
|
35
45
|
//# sourceMappingURL=ContextBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextBar.d.ts","sourceRoot":"","sources":["../../src/components/ContextBar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ContextBar.d.ts","sourceRoot":"","sources":["../../src/components/ContextBar.tsx"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,UAAU,eAAe;IACvB,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,wDAAwD;IACxD,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,qDAAqD;IACrD,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;CAC9C;AA4FD,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,MAAM,EACN,SAAS,EACT,QAAa,EACb,UAAiB,EACjB,SAAS,EACT,OAAO,EACP,OAAiB,GAClB,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAqFtC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,MAAM,EACN,SAAS,EACT,UAAiB,EACjB,SAAS,EACT,OAAO,GACR,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY,CAqFxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextDashboard.d.ts","sourceRoot":"","sources":["../../src/components/ContextDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"ContextDashboard.d.ts","sourceRoot":"","sources":["../../src/components/ContextDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAweH,wBAAgB,gBAAgB,gCAuL/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextMemoryMonitor.d.ts","sourceRoot":"","sources":["../../src/components/ContextMemoryMonitor.tsx"],"names":[],"mappings":"AAIA,wBAAgB,oBAAoB,gCAuHnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CronJobsPanel.d.ts","sourceRoot":"","sources":["../../src/components/CronJobsPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CronJobsPanel.d.ts","sourceRoot":"","sources":["../../src/components/CronJobsPanel.tsx"],"names":[],"mappings":"AAsBA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA2CD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAkH9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DesignGalleryView.d.ts","sourceRoot":"","sources":["../../src/components/DesignGalleryView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"DesignGalleryView.d.ts","sourceRoot":"","sources":["../../src/components/DesignGalleryView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoKH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAyPtE"}
|
|
@@ -17,11 +17,5 @@ export interface FleetMonitorProps {
|
|
|
17
17
|
/** Optional: open agent detail for a specific agent */
|
|
18
18
|
onSelectAgent?: (agent: SubagentView) => void;
|
|
19
19
|
}
|
|
20
|
-
export declare function FleetAgentRow({ agent, isSelected, isLeader, onClick, }: {
|
|
21
|
-
agent: SubagentView;
|
|
22
|
-
isSelected: boolean;
|
|
23
|
-
isLeader: boolean;
|
|
24
|
-
onClick: () => void;
|
|
25
|
-
}): import("react").JSX.Element;
|
|
26
20
|
export declare function FleetMonitor({ onClose, onSelectAgent, }: FleetMonitorProps): import("react").JSX.Element;
|
|
27
21
|
//# sourceMappingURL=FleetMonitor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FleetMonitor.d.ts","sourceRoot":"","sources":["../../src/components/FleetMonitor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"FleetMonitor.d.ts","sourceRoot":"","sources":["../../src/components/FleetMonitor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA4BH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,uDAAuD;IACvD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAmVD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,aAAa,GACd,EAAE,iBAAiB,+BAkRnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FleetPanel.d.ts","sourceRoot":"","sources":["../../src/components/FleetPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,YAAY,EAAiB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"FleetPanel.d.ts","sourceRoot":"","sources":["../../src/components/FleetPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,YAAY,EAAiB,MAAM,UAAU,CAAC;AAuBpF,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAO,GACR,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,GAAG,KAAK,CAAC,YAAY,CAmQrB;AAwGD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,SAAS,GACV,EAAE;IACD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAqG5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoalPanel.d.ts","sourceRoot":"","sources":["../../src/components/GoalPanel.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"GoalPanel.d.ts","sourceRoot":"","sources":["../../src/components/GoalPanel.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAyC5C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAsLxF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InspectorPanel.d.ts","sourceRoot":"","sources":["../../src/components/InspectorPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"InspectorPanel.d.ts","sourceRoot":"","sources":["../../src/components/InspectorPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwDH;gFACgF;AAChF,wBAAgB,gBAAgB,IAAI,KAAK,CAAC,YAAY,CAkCrD;AAED,wBAAgB,cAAc,gCAiK7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SuperMemoryEntry } from '@/types';
|
|
1
|
+
import type { SuperMemoryEntry, SuperMemoryGraphEdge } from '@/types';
|
|
2
2
|
export interface MemoryDetailProps {
|
|
3
3
|
memory: SuperMemoryEntry;
|
|
4
4
|
allMemories: SuperMemoryEntry[];
|
|
@@ -6,6 +6,9 @@ export interface MemoryDetailProps {
|
|
|
6
6
|
relation: string;
|
|
7
7
|
id: string;
|
|
8
8
|
}>;
|
|
9
|
+
graphEdges: SuperMemoryGraphEdge[];
|
|
10
|
+
graphLoading: boolean;
|
|
11
|
+
graphError: string | null;
|
|
9
12
|
onClose: () => void;
|
|
10
13
|
onOpenMemory: (id: string) => void;
|
|
11
14
|
onEdit: () => void;
|
|
@@ -13,5 +16,5 @@ export interface MemoryDetailProps {
|
|
|
13
16
|
onTagSelect: (tag: string) => void;
|
|
14
17
|
onNotice: (message: string) => void;
|
|
15
18
|
}
|
|
16
|
-
export declare function MemoryDetail({ memory, allMemories, relatedMemories, onClose, onOpenMemory, onEdit, onDelete, onTagSelect, onNotice, }: MemoryDetailProps): import("react").JSX.Element;
|
|
19
|
+
export declare function MemoryDetail({ memory, allMemories, relatedMemories, graphEdges, graphLoading, graphError, onClose, onOpenMemory, onEdit, onDelete, onTagSelect, onNotice, }: MemoryDetailProps): import("react").JSX.Element;
|
|
17
20
|
//# sourceMappingURL=MemoryDetail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryDetail.d.ts","sourceRoot":"","sources":["../../../src/components/MemoryManager/MemoryDetail.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryDetail.d.ts","sourceRoot":"","sources":["../../../src/components/MemoryManager/MemoryDetail.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAWtE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,eAAe,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,WAAW,EACX,eAAe,EACf,UAAU,EACV,YAAY,EACZ,UAAU,EACV,OAAO,EACP,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,QAAQ,GACT,EAAE,iBAAiB,+BA8FnB"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import '@xyflow/react/dist/style.css';
|
|
2
|
-
import type { SuperMemoryEntry } from '@/types';
|
|
2
|
+
import type { SuperMemoryEntry, SuperMemoryGraphEdge } from '@/types';
|
|
3
3
|
interface MemoryGraphProps {
|
|
4
4
|
centerMemory: SuperMemoryEntry;
|
|
5
5
|
allMemories: SuperMemoryEntry[];
|
|
6
|
+
graphEdges: SuperMemoryGraphEdge[];
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
error?: string | null;
|
|
6
9
|
}
|
|
7
|
-
export declare function MemoryGraph({ centerMemory, allMemories }: MemoryGraphProps): import("react").JSX.Element | null;
|
|
10
|
+
export declare function MemoryGraph({ centerMemory, allMemories, graphEdges, loading, error, }: MemoryGraphProps): import("react").JSX.Element | null;
|
|
8
11
|
export {};
|
|
9
12
|
//# sourceMappingURL=MemoryGraph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryGraph.d.ts","sourceRoot":"","sources":["../../../src/components/MemoryManager/MemoryGraph.tsx"],"names":[],"mappings":"AAWA,OAAO,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAqB,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryGraph.d.ts","sourceRoot":"","sources":["../../../src/components/MemoryManager/MemoryGraph.tsx"],"names":[],"mappings":"AAWA,OAAO,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAqB,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEzF,UAAU,gBAAgB;IACxB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAiHD,wBAAgB,WAAW,CAAC,EAC1B,YAAY,EACZ,WAAW,EACX,UAAU,EACV,OAAe,EACf,KAAY,GACb,EAAE,gBAAgB,sCAgLlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryInjectorTrace.d.ts","sourceRoot":"","sources":["../../../src/components/MemoryManager/MemoryInjectorTrace.tsx"],"names":[],"mappings":"AAIA,qEAAqE;AACrE,wBAAgB,mBAAmB,gCAuClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryLifecycleTrace.d.ts","sourceRoot":"","sources":["../../../src/components/MemoryManager/MemoryLifecycleTrace.tsx"],"names":[],"mappings":"AAQA,wBAAgB,oBAAoB,gCAsDnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MemoryManager/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MemoryManager/index.tsx"],"names":[],"mappings":"AAgDA,wBAAgB,aAAa,gCA2/B5B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ChatMessage } from '@/stores';
|
|
2
|
+
import './ledger.css';
|
|
3
|
+
/**
|
|
4
|
+
* A single tool call rendered as a Terminal Ledger card: a colored status rail,
|
|
5
|
+
* a monospace header row (dot · icon · name · summary · meta · exit code), a
|
|
6
|
+
* line-numbered console body (via {@link ToolResult}), and a hairline action
|
|
7
|
+
* footer. Sharp corners by design — the identity is the rail + hairline, not
|
|
8
|
+
* rounding. Replaces the old two-part "chevron button + gray box" layout.
|
|
9
|
+
*/
|
|
10
|
+
export declare const ToolLedgerCard: import("react").MemoExoticComponent<({ message, }: {
|
|
11
|
+
message: ChatMessage;
|
|
12
|
+
}) => import("react").JSX.Element>;
|
|
13
|
+
//# sourceMappingURL=ToolLedgerCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolLedgerCard.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/ToolLedgerCard.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAK5C,OAAO,cAAc,CAAC;AAsBtB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,qDAExB;IACD,OAAO,EAAE,WAAW,CAAC;CACtB,iCAuLC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/index.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAkB5C,UAAU,kBAAkB;IAC1B,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED,eAAO,MAAM,aAAa,8EAIvB,kBAAkB,iCA2mBnB,CAAC"}
|
|
@@ -5,6 +5,14 @@ declare function copyToClipboard(text: string): Promise<boolean>;
|
|
|
5
5
|
export declare function downloadTextFile(filename: string, text: string): void;
|
|
6
6
|
export declare function fileExtensionFor(toolName: string | undefined): string;
|
|
7
7
|
export declare function formatToolDuration(ms: number): string;
|
|
8
|
+
/**
|
|
9
|
+
* Pull a trailing exit code out of a tool result for the ledger header chip.
|
|
10
|
+
* Matches the same shapes the ToolResult shell parses ("exit code: N",
|
|
11
|
+
* "[exit 1]", "exit=0"). Returns undefined when none is present so the chip
|
|
12
|
+
* is only shown when it carries real information — a bash command that
|
|
13
|
+
* succeeded quietly gets a green status dot, not a redundant "exit 0".
|
|
14
|
+
*/
|
|
15
|
+
export declare function extractExitCode(result: string | undefined): number | undefined;
|
|
8
16
|
/** Rehype plugins for react-markdown — syntax highlighting via highlight.js. */
|
|
9
17
|
export declare const rehypePlugins: (typeof rehypeHighlight)[];
|
|
10
18
|
export declare const markdownComponents: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/utils.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAI/C,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,iBAAe,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsB7D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAWrE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKrE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,gFAAgF;AAChF,eAAO,MAAM,aAAa,4BAAoB,CAAC;AA6C/C,eAAO,MAAM,kBAAkB;IAa7B,IAAI,4CAKD;QACD,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;KACxC;CAuEF,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble/utils.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAI/C,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,iBAAe,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsB7D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAWrE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKrE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAI9E;AAED,gFAAgF;AAChF,eAAO,MAAM,aAAa,4BAAoB,CAAC;AA6C/C,eAAO,MAAM,kBAAkB;IAa7B,IAAI,4CAKD;QACD,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;KACxC;CAuEF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanPanel.d.ts","sourceRoot":"","sources":["../../src/components/PlanPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlanPanel.d.ts","sourceRoot":"","sources":["../../src/components/PlanPanel.tsx"],"names":[],"mappings":"AAmBA;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAiIrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessMonitor.d.ts","sourceRoot":"","sources":["../../src/components/ProcessMonitor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProcessMonitor.d.ts","sourceRoot":"","sources":["../../src/components/ProcessMonitor.tsx"],"names":[],"mappings":"AAuBA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,OAAO,EACP,SAAS,GACV,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAgLjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromptLibraryModal.d.ts","sourceRoot":"","sources":["../../src/components/PromptLibraryModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PromptLibraryModal.d.ts","sourceRoot":"","sources":["../../src/components/PromptLibraryModal.tsx"],"names":[],"mappings":"AA0EA;;;;GAIG;AACH,wBAAgB,kBAAkB,gCAgjBjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderWaitingRoom.d.ts","sourceRoot":"","sources":["../../src/components/ProviderWaitingRoom.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProviderWaitingRoom.d.ts","sourceRoot":"","sources":["../../src/components/ProviderWaitingRoom.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,mBAAmB,uCAiFlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueuePanel.d.ts","sourceRoot":"","sources":["../../src/components/QueuePanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QueuePanel.d.ts","sourceRoot":"","sources":["../../src/components/QueuePanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,qBAAqB,CAAC;AAuBjE;6EAC6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,SAAS,GACV,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA+J7C;AAID,YAAY,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefreshDebugView.d.ts","sourceRoot":"","sources":["../../src/components/RefreshDebugView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RefreshDebugView.d.ts","sourceRoot":"","sources":["../../src/components/RefreshDebugView.tsx"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,gBAAgB,gCAsN/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SddBoardView.d.ts","sourceRoot":"","sources":["../../src/components/SddBoardView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SddBoardView.d.ts","sourceRoot":"","sources":["../../src/components/SddBoardView.tsx"],"names":[],"mappings":"AAkEA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CA2erF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SddTaskDrawer.d.ts","sourceRoot":"","sources":["../../src/components/SddTaskDrawer.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"SddTaskDrawer.d.ts","sourceRoot":"","sources":["../../src/components/SddTaskDrawer.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGjE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,GACb,EAAE;IACD,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3F,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACjF,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACvF,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,GAAG,KAAK,CAAC,YAAY,CA+crB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderSection.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/ProviderSection.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProviderSection.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/ProviderSection.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAWjE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9B,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9C,eAAO,MAAM,iBAAiB,YAAI,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAU,CAAC;AAIjG,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,8BAA8B;IAC9B,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,oBAAoB;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,4BAA4B;IAC5B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,oBAAoB;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,+BAA+B;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,kDAAkD;IAClD,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gCAAgC;IAChC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,mCAAmC;IACnC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,qCAAqC;IACrC,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,uCAAuC;IACvC,aAAa,EAAE,CACb,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,CAAC,EAAE,MAAM,KACZ,IAAI,CAAC;IACV,yCAAyC;IACzC,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,oDAAoD;IACpD,mBAAmB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,uEAAuE;IACvE,EAAE,EAAE,yBAAyB,CAAC;IAC9B,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAID,wBAAgB,eAAe,CAAC,EAC9B,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,EAAE,EACF,YAAY,EACZ,eAAe,GAChB,EAAE,oBAAoB,+BA4qBtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolsSection.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/ToolsSection.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAoC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolsSection.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/ToolsSection.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAoC,MAAM,OAAO,CAAC;AAQ5E,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAqFD,wBAAgB,YAAY,IAAI,YAAY,CA2H3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SidePanel/AgentsPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"AgentsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SidePanel/AgentsPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,wBAAgB,WAAW,gCA+P1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangesPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SidePanel/ChangesPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"ChangesPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SidePanel/ChangesPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoEH,wBAAgB,YAAY,gCAgF3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SidePanel/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SidePanel/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyCH,wBAAgB,SAAS,CAAC,EAAE,YAAoB,EAAE,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,+BAgJzF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpecsView.d.ts","sourceRoot":"","sources":["../../src/components/SpecsView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SpecsView.d.ts","sourceRoot":"","sources":["../../src/components/SpecsView.tsx"],"names":[],"mappings":"AA8BA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CA8LlF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TasksPanel.d.ts","sourceRoot":"","sources":["../../src/components/TasksPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TasksPanel.d.ts","sourceRoot":"","sources":["../../src/components/TasksPanel.tsx"],"names":[],"mappings":"AA4CA;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAwItD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TechStackView/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TechStackView/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA+BH,wBAAgB,aAAa,gCA+Z5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TodosPanel.d.ts","sourceRoot":"","sources":["../../src/components/TodosPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TodosPanel.d.ts","sourceRoot":"","sources":["../../src/components/TodosPanel.tsx"],"names":[],"mappings":"AAoBA;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CA4JtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorktreeLanes.d.ts","sourceRoot":"","sources":["../../src/components/WorktreeLanes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"WorktreeLanes.d.ts","sourceRoot":"","sources":["../../src/components/WorktreeLanes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAoBlD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,UAAU,GACX,EAAE;IACD,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAkE5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorktreeOrphans.d.ts","sourceRoot":"","sources":["../../src/components/WorktreeOrphans.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorktreeOrphans.d.ts","sourceRoot":"","sources":["../../src/components/WorktreeOrphans.tsx"],"names":[],"mappings":"AASA;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAgF3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/activity-bar/index.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAOtD,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,UAAU,CAAC;AA8ElB,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAK/E;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC9D,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAC7B,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,eAAe,EAAE,QAAQ,EAAE,CAAC;CAC7B,CAYA;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,QAAQ,EAA4B,CAAC;AAyBxE,wBAAgB,WAAW,CAAC,EAAE,YAAoB,EAAE,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,+
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/activity-bar/index.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAOtD,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,UAAU,CAAC;AA8ElB,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAK/E;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC9D,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAC7B,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,eAAe,EAAE,QAAQ,EAAE,CAAC;CAC7B,CAYA;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,QAAQ,EAA4B,CAAC;AAyBxE,wBAAgB,WAAW,CAAC,EAAE,YAAoB,EAAE,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,+BAgK3F"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentDetailSection — expandable detail panel for an agent card.
|
|
3
|
+
*
|
|
4
|
+
* Shows when a card is expanded:
|
|
5
|
+
* - Tool execution log (last 10, with ok/fail icon + duration)
|
|
6
|
+
* - Current streaming output (partialText)
|
|
7
|
+
* - Configuration block (provider, model, description, taskId)
|
|
8
|
+
*/
|
|
9
|
+
import type { SubagentView } from '@/stores';
|
|
10
|
+
export interface AgentDetailSectionProps {
|
|
11
|
+
agent: SubagentView;
|
|
12
|
+
isExpanded: boolean;
|
|
13
|
+
/** Called when user clicks "Open in Inspector". */
|
|
14
|
+
onOpenInspector?: () => void | undefined;
|
|
15
|
+
}
|
|
16
|
+
export declare function AgentDetailSection({ agent, isExpanded, onOpenInspector, }: AgentDetailSectionProps): import("react").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=AgentDetailSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentDetailSection.d.ts","sourceRoot":"","sources":["../../../src/components/agents/AgentDetailSection.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC;CAC1C;AAKD,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,UAAU,EACV,eAAe,GAChB,EAAE,uBAAuB,+BAqPzB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentRosterCard — compact card for an agent in the fleet roster.
|
|
3
|
+
*
|
|
4
|
+
* Shows in a condensed card layout:
|
|
5
|
+
* - Status LED + name + leader crown
|
|
6
|
+
* - Model/provider badge
|
|
7
|
+
* - Iterations + tool calls + cost
|
|
8
|
+
* - Activity sparkline
|
|
9
|
+
* - Context fill bar with percentage
|
|
10
|
+
* - Current/last tool name
|
|
11
|
+
* - Budget warning badge
|
|
12
|
+
*
|
|
13
|
+
* Uses computeAgentStats for all formatted display values.
|
|
14
|
+
*/
|
|
15
|
+
import type { SubagentView } from '@/stores';
|
|
16
|
+
export interface AgentRosterCardProps {
|
|
17
|
+
agent: SubagentView;
|
|
18
|
+
isLeader?: boolean | undefined;
|
|
19
|
+
isExpanded?: boolean | undefined;
|
|
20
|
+
isFocused?: boolean | undefined;
|
|
21
|
+
onToggle?: () => void | undefined;
|
|
22
|
+
/** Opens the fleet inspector for this agent. */
|
|
23
|
+
onOpenInspector?: () => void | undefined;
|
|
24
|
+
/** Timestamp for computing live elapsed time (pass useFleetPolling().now). */
|
|
25
|
+
now?: number | undefined;
|
|
26
|
+
}
|
|
27
|
+
export declare function AgentRosterCard({ agent, isLeader, isExpanded, isFocused, onToggle, onOpenInspector, now: externalNow }: AgentRosterCardProps): import("react").JSX.Element;
|
|
28
|
+
//# sourceMappingURL=AgentRosterCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentRosterCard.d.ts","sourceRoot":"","sources":["../../../src/components/agents/AgentRosterCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC;IAClC,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC;IACzC,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAUD,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,oBAAoB,+BAsI5I"}
|