@wrongstack/webui 0.301.0 → 0.302.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/{AgentRosterView-BV6ysoGs.js → AgentRosterView-PafACoYi.js} +1 -1
- package/dist/assets/{AnalyticsDashboard-UWNP8zjE.js → AnalyticsDashboard-D5lvkaiF.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-DwDKbvSA.js → AudienceMemoryPanel-DUXllPor.js} +1 -1
- package/dist/assets/{ChangesView-DuVlGWkD.js → ChangesView-CKLN6MLR.js} +1 -1
- package/dist/assets/{ChronicleDashboard-cs16n708.js → ChronicleDashboard-B8OyHq18.js} +1 -1
- package/dist/assets/{CodeEditor-sr50ljZN.js → CodeEditor-BtAkdKFs.js} +1 -1
- package/dist/assets/{CodeMap-CtK-C8gK.js → CodeMap-6L-z-L7d.js} +1 -1
- package/dist/assets/{ConfirmModal-ndS17YwF.js → ConfirmModal-B0BCqW4j.js} +1 -1
- package/dist/assets/{CronJobsPanel-Dovomns5.js → CronJobsPanel-B-rRYNgE.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-DjR4LLMs.js → DeadCodeScanPanel-CDbBO9Ic.js} +1 -1
- package/dist/assets/{DebugDashboard-jK1yp3qS.js → DebugDashboard-RAxaJDNV.js} +1 -1
- package/dist/assets/{DesignGalleryView-CqXlEUzE.js → DesignGalleryView-4kdGN1D5.js} +1 -1
- package/dist/assets/{GoalView-CGNLrnA4.js → GoalView-By18NfaK.js} +1 -1
- package/dist/assets/KanbanView-dyfUjpC5.js +3 -0
- package/dist/assets/{MailboxDetailView-0TBzZTdN.js → MailboxDetailView-BNyJNz-3.js} +1 -1
- package/dist/assets/{MemoryManager-CDK_MO8A.js → MemoryManager-BbZ-1pfr.js} +1 -1
- package/dist/assets/{ModelPicker-BbBZuQwR.js → ModelPicker-DwNrO_jw.js} +1 -1
- package/dist/assets/{OfficeMapPanel-68sVzHRD.js → OfficeMapPanel-Bo-cCLV7.js} +1 -1
- package/dist/assets/{ProcessMonitor-gFwiF8gX.js → ProcessMonitor-DPEMjjVq.js} +1 -1
- package/dist/assets/{QueuePanel-Cx-isRGl.js → QueuePanel-Dx9n4NZB.js} +1 -1
- package/dist/assets/{RefreshDebugView-C9tdu6Ld.js → RefreshDebugView-On6-vb92.js} +1 -1
- package/dist/assets/{RequirementIntakeView-cPEw-RpV.js → RequirementIntakeView-DpnZRVDz.js} +1 -1
- package/dist/assets/{SageTabs-BbK6VFO0.js → SageTabs-D5CzIKGe.js} +2 -2
- package/dist/assets/{SddHub-NKvDRECi.js → SddHub-BMedBDDs.js} +1 -1
- package/dist/assets/{SessionInspectView-DPG5qWhj.js → SessionInspectView-Crs1g_xM.js} +1 -1
- package/dist/assets/{SessionList-ncl-20X_.js → SessionList-SsEjoeJF.js} +1 -1
- package/dist/assets/{SessionsDashboard-D23UVLr4.js → SessionsDashboard-DYw9vuIv.js} +1 -1
- package/dist/assets/{SetupScreen-D3XQ8MGk.js → SetupScreen-Mr604Nx3.js} +1 -1
- package/dist/assets/{SkillDetailView-DDPhVFet.js → SkillDetailView-gt-Nm_ZI.js} +1 -1
- package/dist/assets/{SpecsView-afIS0QpX.js → SpecsView-CVVQSIZZ.js} +1 -1
- package/dist/assets/{TechStackView-kQ2OGxxw.js → TechStackView-BNen0ZpH.js} +1 -1
- package/dist/assets/{TerminalPanel-GcJWeldW.js → TerminalPanel-BByD75cu.js} +1 -1
- package/dist/assets/{Toaster-CgQA9256.js → Toaster-Cz-_rtgo.js} +1 -1
- package/dist/assets/{activity-DxDRJ8kN.js → activity-B0cam54R.js} +1 -1
- package/dist/assets/{activity-Ba3aMzvo.js → activity-B3FDXYFE.js} +1 -1
- package/dist/assets/{activity-DsSuflRW.js → activity-D7dMY0Jm.js} +1 -1
- package/dist/assets/{activity-VI776bUZ.js → activity-DXNwLcwn.js} +1 -1
- package/dist/assets/{activity-CRTVZ5A4.js → activity-DmdoxMAj.js} +1 -1
- package/dist/assets/{activity-B-cvKIfT.js → activity-IZoezahu.js} +1 -1
- package/dist/assets/{activity-nVmsmqAI.js → activity-jOHsoosT.js} +1 -1
- package/dist/assets/{i18n-COgumVF5.js → i18n-ags7mYPP.js} +2 -2
- package/dist/assets/index-Cw20Xg0d.css +1 -0
- package/dist/assets/{index-CtpViiZy.js → index-Doa2aJ1A.js} +4 -4
- package/dist/assets/{progress-ring-D_48qsBl.js → progress-ring-BxJsZCnD.js} +1 -1
- package/dist/assets/{stores-ChEnUmic.js → stores-Bz5nhi7q.js} +1 -1
- package/dist/assets/{useWebSocket-_gk4MRJz.js → useWebSocket-BHzEXXna.js} +1 -1
- package/dist/components/KanbanBoardState.d.ts +0 -1
- package/dist/components/KanbanTaskInspector.d.ts +1 -2
- package/dist/index.html +9 -9
- package/dist/index.js +646 -480
- package/dist/lib/kanban-cleaner.d.ts +7 -1
- package/package.json +8 -8
- package/dist/assets/KanbanView--tAf_K7N.js +0 -3
- package/dist/assets/index-fIsq43fR.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{$i as t,Nr as n,Ot as r,Pa as i,Qt as a,Ui as o,Ut as s,_ as c,a as l,aa as u,c as d,dt as f,f as p,gr as m,h,i as g,ir as _,jr as v,lt as y,ma as b,mn as x,r as S,s as C,u as w,wn as T,za as E}from"./vendor-BuarzSSb.js";import"./i18n-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{$i as t,Nr as n,Ot as r,Pa as i,Qt as a,Ui as o,Ut as s,_ as c,a as l,aa as u,c as d,dt as f,f as p,gr as m,h,i as g,ir as _,jr as v,lt as y,ma as b,mn as x,r as S,s as C,u as w,wn as T,za as E}from"./vendor-BuarzSSb.js";import"./i18n-ags7mYPP.js";import{t as D}from"./utils-B-9lSDIn.js";var O=e(E(),1),k={pending:{label:`Pending`,icon:o,text:`text-muted-foreground`,ring:`border-border/70 bg-muted/45`,dot:`bg-muted-foreground`,hex:`hsl(var(--muted-foreground))`},queued:{label:`Ready`,icon:o,text:`text-primary`,ring:`border-primary/35 bg-primary/10`,dot:`bg-primary`,hex:`hsl(var(--primary))`},in_progress:{label:`Running`,icon:_,spin:!0,text:`text-warning`,ring:`border-warning/45 bg-warning/10`,dot:`bg-warning`,hex:`hsl(var(--warning))`},blocked:{label:`Blocked`,icon:o,text:`text-destructive`,ring:`border-destructive/30 bg-destructive/10`,dot:`bg-destructive`,hex:`hsl(var(--destructive))`},review:{label:`Review`,icon:o,text:`text-primary`,ring:`border-primary/35 bg-primary/10`,dot:`bg-primary`,hex:`hsl(var(--info))`},failed:{label:`Failed`,icon:f,text:`text-destructive`,ring:`border-destructive/45 bg-destructive/10`,dot:`bg-destructive`,hex:`hsl(var(--destructive))`},completed:{label:`Done`,icon:t,text:`text-success`,ring:`border-success/35 bg-success/10`,dot:`bg-success`,hex:`hsl(var(--success))`},cancelled:{label:`Cancelled`,icon:b,text:`text-muted-foreground`,ring:`border-border/70 bg-muted/45`,dot:`bg-muted-foreground`,hex:`hsl(var(--muted-foreground))`}};function A(e){return k[e]??k.pending}var j={critical:{text:`text-destructive`,chip:`bg-destructive/10 text-destructive`},high:{text:`text-warning`,chip:`bg-warning/12 text-warning`},medium:{text:`text-primary`,chip:`bg-primary/10 text-primary`},low:{text:`text-muted-foreground`,chip:`bg-muted text-muted-foreground`}};function M(e){return j[e]??j.medium}var N={running:`border-primary/35 bg-primary/10 text-primary`,paused:`border-warning/35 bg-warning/10 text-warning`,stopped:`border-border/70 bg-muted text-muted-foreground`,completed:`border-success/35 bg-success/10 text-success`,failed:`border-destructive/35 bg-destructive/10 text-destructive`,deadlocked:`border-destructive/35 bg-destructive/10 text-destructive`,idle:`border-border bg-muted text-muted-foreground`},P=[`bg-warning`,`bg-primary`,`bg-success`,`bg-destructive`,`bg-secondary`,`bg-muted-foreground`,`bg-accent`],F={started:{icon:T,color:`text-warning`},completed:{icon:t,color:`text-success`},failed:{icon:f,color:`text-destructive`},retrying:{icon:x,color:`text-warning`},wave:{icon:m,color:`text-primary`},deadlock:{icon:r,color:`text-destructive`},verification_failed:{icon:a,color:`text-destructive`},conflict:{icon:v,color:`text-warning`},split:{icon:s,color:`text-primary`},supervisor:{icon:u,color:`text-primary`}};function I(e){let t=e.trim().split(/\s+/);return((t[0]?.[0]??``)+(t[1]?.[0]??``)).toUpperCase()||`·`}function L(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?t%60?`${n}m ${t%60}s`:`${n}m`:`${Math.floor(n/60)}h ${n%60}m`}function R(e,t){let n=Math.max(0,Math.floor((t-e)/1e3));if(n<60)return`${n}s`;let r=Math.floor(n/60);return r<60?`${r}m`:`${Math.floor(r/60)}h`}var z=y(),B=300,V=128,H=240,U={pending:{ring:`border-border/70`,chip:`bg-muted text-muted-foreground`,dot:`bg-muted-foreground`},queued:{ring:`border-primary/35`,chip:`bg-primary/10 text-primary`,dot:`bg-primary`},in_progress:{ring:`border-warning/45`,chip:`bg-warning/12 text-warning`,dot:`bg-warning`},blocked:{ring:`border-destructive/30`,chip:`bg-destructive/10 text-destructive`,dot:`bg-destructive`},review:{ring:`border-primary/35`,chip:`bg-primary/10 text-primary`,dot:`bg-primary`},failed:{ring:`border-destructive/45`,chip:`bg-destructive/10 text-destructive`,dot:`bg-destructive`},completed:{ring:`border-success/35`,chip:`bg-success/12 text-success`,dot:`bg-success`},cancelled:{ring:`border-border/70`,chip:`bg-muted text-muted-foreground`,dot:`bg-muted-foreground`}};function W({data:e}){let r=e.task,{t:a}=i(),s=U[r.displayStatus],l=r.displayStatus===`in_progress`,u=r.displayStatus===`completed`?t:r.displayStatus===`failed`?f:l?_:o;return(0,z.jsxs)(`div`,{className:D(`sdd-node-enter group relative rounded-lg border bg-card/95 px-2.5 py-2 text-left shadow-lg backdrop-blur`,s.ring,l&&`sdd-node-running`,r.displayStatus===`completed`&&`sdd-node-complete`,r.displayStatus===`failed`&&`sdd-node-failed`,e.onTaskClick&&`hover:brightness-125`),style:{width:H,animationDelay:`${Math.min(e.index*45,600)}ms`},children:[e.onTaskClick&&(0,z.jsx)(`button`,{type:`button`,"aria-label":a(`activity:sdd.openTask`,{title:r.title,defaultValue:`Open task: ${r.title}`}),className:`absolute inset-0 z-10 cursor-pointer rounded-lg`,onClick:()=>e.onTaskClick?.(r.id)}),(0,z.jsx)(C,{type:`target`,position:c.Left,isConnectable:!1,className:`!h-1.5 !w-1.5 !border-0 !bg-border`}),(0,z.jsx)(C,{type:`source`,position:c.Right,isConnectable:!1,className:`!h-1.5 !w-1.5 !border-0 !bg-border`}),(0,z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,z.jsx)(u,{className:D(`h-3.5 w-3.5`,l&&`animate-spin`,s.chip.split(` `).find(e=>e.startsWith(`text`)))}),(0,z.jsx)(`span`,{className:`font-mono text-[10px] text-muted-foreground`,children:r.shortId}),(0,z.jsx)(`span`,{className:D(`font-mono text-[10px] font-bold uppercase`,M(r.priority).text),children:r.priority[0]}),(0,z.jsx)(`span`,{className:D(`ml-auto rounded px-1.5 py-px text-[9px] font-medium`,s.chip),children:a(`activity:sdd.status.${r.displayStatus}`)})]}),(0,z.jsx)(`p`,{className:`mt-1 line-clamp-2 text-[11px] leading-snug text-foreground`,children:r.title}),(r.agentName||r.worktreeBranch)&&(0,z.jsxs)(`div`,{className:`mt-1.5 flex items-center gap-1.5`,children:[r.agentName&&(0,z.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,z.jsx)(`span`,{className:D(`flex h-4 w-4 items-center justify-center rounded-full text-[8px] font-bold text-white`,l?`bg-warning sdd-agent-live`:`bg-muted-foreground`),children:I(r.agentName)}),(0,z.jsx)(`span`,{className:`max-w-[88px] truncate text-[10px] text-muted-foreground`,children:r.agentName})]}),r.retries?(0,z.jsxs)(`span`,{className:`flex items-center gap-0.5 text-[9px] text-destructive`,children:[(0,z.jsx)(x,{className:`h-2.5 w-2.5`}),r.retries]}):null,r.worktreeBranch&&(0,z.jsxs)(`span`,{className:`ml-auto flex items-center gap-0.5 text-[9px] text-muted-foreground`,title:r.worktreeBranch,children:[(0,z.jsx)(n,{className:`h-2.5 w-2.5`}),(0,z.jsx)(`span`,{className:`max-w-[70px] truncate`,children:r.worktreeBranch.replace(/^.*\//,``)})]})]})]})}function G({data:e}){return(0,z.jsx)(`div`,{className:`whitespace-nowrap text-[11px] font-bold uppercase text-muted-foreground`,children:e.label})}var K={task:W,colLabel:G};function q(e,t,n){let r=new Map(e.map(e=>[e.shortId,e])),i=[],a=0;t.forEach((e,t)=>{i.push({id:`__col_${t}`,position:{x:t*B,y:-52},data:{label:e.label},draggable:!1,selectable:!1,type:`colLabel`,style:{pointerEvents:`none`}}),e.taskIds.forEach((e,o)=>{let s=r.get(e);s&&i.push({id:s.id,position:{x:t*B,y:o*V},data:{task:s,index:a++,onTaskClick:n},type:`task`,draggable:!0})})});let o=[];for(let t of e)for(let e of t.deps){let n=r.get(e);if(!n)continue;let i=n.displayStatus===`completed`&&(t.displayStatus===`in_progress`||t.displayStatus===`queued`);o.push({id:`${n.id}->${t.id}`,source:n.id,target:t.id,animated:i,className:i?`sdd-edge-flow`:void 0,style:{stroke:A(t.displayStatus).hex,strokeWidth:i?2.2:1.4,opacity:t.displayStatus===`pending`?.4:.85}})}return{nodes:i,edges:o}}function J({tasks:e,columns:t,onTaskClick:n}){let{fitView:r}=h(),{nodes:i,edges:a}=(0,O.useMemo)(()=>q(e,t,n),[e,t,n]),o=e.length;return(0,O.useEffect)(()=>{let e=setTimeout(()=>r({padding:.18,duration:400}),60);return()=>clearTimeout(e)},[o,r]),(0,z.jsxs)(p,{nodes:i,edges:a,nodeTypes:K,fitView:!0,fitViewOptions:{padding:.18},minZoom:.2,maxZoom:1.6,proOptions:{hideAttribution:!0},nodesConnectable:!1,elementsSelectable:!!n,children:[(0,z.jsx)(S,{variant:g.Dots,gap:22,size:1,color:`hsl(var(--border))`}),(0,z.jsx)(l,{showInteractive:!1,className:`!bottom-2 !left-2`}),(0,z.jsx)(d,{pannable:!0,zoomable:!0,nodeStrokeWidth:2,maskColor:`hsl(var(--background) / 0.65)`,nodeColor:e=>{let t=e.data?.task?.displayStatus;return t?A(t).hex:`hsl(var(--muted-foreground))`},className:`!bottom-2 !right-2 !h-24 !w-40 overflow-hidden rounded-md border border-border/70 bg-card`})]})}function Y({tasks:e,columns:t,onTaskClick:n}){return(0,z.jsx)(w,{children:(0,z.jsx)(J,{tasks:e,columns:t,onTaskClick:n})})}function X({pct:e}){let{t}=i(),n=(0,O.useId)(),r=2*Math.PI*26,a=r-Math.max(0,Math.min(100,e))/100*r;return(0,z.jsxs)(`div`,{className:`relative h-16 w-16 shrink-0`,children:[(0,z.jsxs)(`svg`,{viewBox:`0 0 64 64`,className:`h-16 w-16 -rotate-90`,role:`img`,"aria-label":t(`activity:progressring.progress`),children:[(0,z.jsx)(`circle`,{cx:`32`,cy:`32`,r:26,fill:`none`,stroke:`hsl(var(--muted))`,strokeWidth:`6`}),(0,z.jsx)(`circle`,{cx:`32`,cy:`32`,r:26,fill:`none`,stroke:`url(#${n})`,strokeWidth:`6`,strokeLinecap:`round`,strokeDasharray:r,strokeDashoffset:a,style:{transition:`stroke-dashoffset 0.6s cubic-bezier(0.16,1,0.3,1)`}}),(0,z.jsx)(`defs`,{children:(0,z.jsxs)(`linearGradient`,{id:n,x1:`0`,y1:`0`,x2:`1`,y2:`1`,children:[(0,z.jsx)(`stop`,{offset:`0%`,stopColor:`hsl(var(--primary))`}),(0,z.jsx)(`stop`,{offset:`100%`,stopColor:`hsl(var(--info))`})]})})]}),(0,z.jsxs)(`div`,{className:`absolute inset-0 flex items-center justify-center text-sm font-bold text-foreground`,children:[Math.round(e),`%`]})]})}export{N as a,L as c,F as i,M as l,Y as n,I as o,P as r,R as s,X as t,A as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./chat-store-DbxFVDwi.js";import{Ma as t,Na as n}from"./vendor-BuarzSSb.js";import"./i18n-
|
|
1
|
+
import{i as e}from"./chat-store-DbxFVDwi.js";import{Ma as t,Na as n}from"./vendor-BuarzSSb.js";import"./i18n-ags7mYPP.js";import{r,t as i}from"./ws-client-TTMa0XaT.js";import"./session-store-Df7_hhe9.js";import"./codemap-activity-store-DQfjo7-j.js";import"./mailbox-store-C1mzoSqJ.js";import"./ui-store-CE4-TlwB.js";var a=`signal`,o=`wrongstack-palette`,s=[{id:`signal`,labelKey:`settings:general.paletteSignal`,swatch:`hsl(345.9 99% 58.8%)`,swatchSecondary:`hsl(37.5 98.4% 50%)`},{id:`emerald-gold`,labelKey:`settings:general.paletteEmeraldGold`,swatch:`hsl(152 66% 48%)`,swatchSecondary:`hsl(42 96% 54%)`},{id:`blue-navy`,labelKey:`settings:general.paletteBlueNavy`,swatch:`hsl(213 90% 60%)`,swatchSecondary:`hsl(36 96% 54%)`},{id:`purple-pink`,labelKey:`settings:general.palettePurplePink`,swatch:`hsl(263 82% 66%)`,swatchSecondary:`hsl(332 94% 62%)`},{id:`cyan-teal`,labelKey:`settings:general.paletteCyanTeal`,swatch:`hsl(180 76% 46%)`,swatchSecondary:`hsl(36 96% 54%)`},{id:`rose-copper`,labelKey:`settings:general.paletteRoseCopper`,swatch:`hsl(14 82% 56%)`,swatchSecondary:`hsl(34 96% 54%)`},{id:`indigo-amber`,labelKey:`settings:general.paletteIndigoAmber`,swatch:`hsl(233 74% 58%)`,swatchSecondary:`hsl(38 96% 54%)`}];function c(e){return typeof e==`string`&&s.some(t=>t.id===e)}function l(e){return s.find(t=>t.id===e)??s[0]}function u(e,t){if(typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);return c(n)?n:t}catch{return t}}function d(e,t){t===`signal`?e.removeAttribute(`data-palette`):e.setAttribute(`data-palette`,t)}var f=n()(t(e=>({provider:``,model:``,wsUrl:r(),wsConnected:!1,wsStatus:{state:`connecting`},theme:`system`,palette:`signal`,autoConnect:!0,soundOnComplete:!1,setProvider:t=>e({provider:t}),setModel:t=>e({model:t}),setConfig:t=>e(t),setTheme:t=>e({theme:t}),setPalette:t=>e({palette:t}),setWsConnected:t=>e({wsConnected:t}),setWsStatus:t=>e({wsStatus:t,wsConnected:t.state===`open`}),setSoundOnComplete:t=>e({soundOnComplete:t})}),{name:`wrongstack-config`,partialize:e=>({provider:e.provider,model:e.model,baseUrl:e.baseUrl,theme:e.theme,palette:e.palette,autoConnect:e.autoConnect,soundOnComplete:e.soundOnComplete}),merge:(e,t)=>{let{apiKey:n,...i}=e??{};return{...t,...i,wsUrl:r(),wsConnected:!1,wsStatus:{state:`connecting`},palette:c(i.palette)?i.palette:u(o,t.palette)}}}));function ee(e,t){return t>=100?`danger`:`warning`}function te(e,t){switch(e){case`budget.threshold_reached`:{let e=t,n=e.limit>0?Math.round(e.used/e.limit*100):0;return`${e.subagentId} [${e.kind}] ${n}% (${e.used}/${e.limit})`}case`budget.decision`:{let e=t;return`${e.subagentId} [${e.kind}] → ${e.decision}`}case`consensus.vote_initiated`:{let e=t;return`Vote: "${e.title}" — ${e.eligible.length} voters`}case`consensus.vote_cast`:{let e=t;return`${e.voterId} voted ${e.value}`}case`consensus.vote_resolved`:{let e=t;return`${e.result} — ✅${e.approveCount} ❌${e.rejectCount}`}case`task.pending`:return`Task queued: "${t.description.slice(0,60)}"`;case`task.started`:{let e=t;return`${e.subagentId} started ${e.taskId}`}case`task.completed`:{let e=t;return`Task ${e.taskId} ${e.status} (${e.durationMs}ms)`}case`task.failed`:{let e=t;return`Task ${e.taskId} failed: ${e.error.slice(0,60)}`}case`subagent.budget_extended`:{let e=t;return`${e.subagentId} [${e.kind}] extended → ${e.extendedTo}ms`}default:return e}}var ne=200,re=50,p=300,m=200,ie=100;function h(e,t,n){if(!(e.size<=t)){if(n)for(let[r,i]of e){if(e.size<=t)break;n(i)&&e.delete(r)}for(let n of e.keys()){if(e.size<=t)break;e.delete(n)}}}var ae=n()(e=>({coordinatorStatus:`idle`,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now(),setCoordinatorStatus:(t,n)=>e(e=>({coordinatorStatus:t,coordinatorMode:n,lastUpdated:Date.now()})),updateCoordinatorStats:t=>e(e=>{let n=new Map(e.subagents);for(let e of t.subagentStatuses??[]){let t=n.get(e.id);n.set(e.id,{id:e.id,name:e.name,role:t?.role??`agent`,status:e.status,currentTask:e.currentTask,budgetLimits:t?.budgetLimits,budgetUsage:t?.budgetUsage,lastSeen:t?.lastSeen??Date.now()})}return h(n,m,e=>e.status===`stopped`),{subagents:n,taskCounts:{pending:t.pending,running:t.inFlight,completed:t.completed,failed:0},lastUpdated:Date.now()}}),updateSubagentBudget:(t,n)=>e(e=>{let r=new Map(e.subagents),i=r.get(t);return r.set(t,{id:t,name:i?.name??t,role:i?.role??`agent`,status:i?.status??`idle`,...i,...n,lastSeen:Date.now()}),h(r,m,e=>e.status===`stopped`),{subagents:r,lastUpdated:Date.now()}}),pushEvent:(t,n,r,i,a)=>e(e=>{let o=n.kind??t,s=(t.includes(`budget`)||t.includes(`threshold`))&&typeof n.limit==`number`&&n.limit>0?Math.round(n.used/n.limit*100):void 0,c=s===void 0?t.includes(`consensus.vote_resolved`)?`info`:t.includes(`consensus.vote_initiated`)?`warning`:`info`:s>=100?`danger`:s>=85?`warning`:`info`;return{events:[{id:`${r}-${t}`,ts:r,type:t,subagentId:i,taskId:a,payload:n,kind:o,level:c,message:te(t,n)},...e.events].slice(0,ne),lastUpdated:Date.now()}}),pushConsensusVote:(t,n,r)=>e(e=>{let i=new Map(e.consensusVotes);return i.set(t,{changeId:t,title:n,status:`pending`,eligible:r,votes:[],approveCount:0,rejectCount:0,abstainCount:0,expiresAt:Date.now()+300*1e3}),h(i,ie,e=>e.status!==`pending`),{consensusVotes:i,lastUpdated:Date.now()}}),recordConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);if(!o)return{};let s={...o,votes:[...o.votes.filter(e=>e.agentId!==n),{agentId:n,agentName:r,value:i,votedAt:Date.now()}],approveCount:i===`approve`?o.approveCount+1:o.approveCount,rejectCount:i===`reject`?o.rejectCount+1:o.rejectCount,abstainCount:i===`abstain`?o.abstainCount+1:o.abstainCount};return a.set(t,s),{consensusVotes:a,lastUpdated:Date.now()}}),resolveConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);return o?(a.set(t,{...o,status:n,approveCount:r,rejectCount:i,resolvedAt:Date.now()}),{consensusVotes:a,lastUpdated:Date.now()}):{}}),pushTaskPending:(t,n,r)=>e(e=>{let i=new Map(e.tasks);return i.set(t,{id:t,description:n,status:`pending`,priority:r,queuedAt:Date.now()}),h(i,p,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,pending:e.taskCounts.pending+1},lastUpdated:Date.now()}}),startTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i?r.set(t,{...i,status:`running`,subagentId:n,startedAt:Date.now()}):r.set(t,{id:t,description:``,status:`running`,subagentId:n,startedAt:Date.now()}),{tasks:r,taskCounts:{...e.taskCounts,pending:Math.max(0,e.taskCounts.pending-1),running:e.taskCounts.running+1},lastUpdated:Date.now()}}),completeTask:(t,n,r)=>e(e=>{let i=new Map(e.tasks),a=i.get(t);return a&&i.set(t,{...a,status:n,completedAt:Date.now(),durationMs:r}),h(i,p,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),completed:n===`completed`?e.taskCounts.completed+1:e.taskCounts.completed,failed:n===`failed`?e.taskCounts.failed+1:e.taskCounts.failed},lastUpdated:Date.now()}}),failTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i&&r.set(t,{...i,status:`failed`,error:n,completedAt:Date.now()}),h(r,p,e=>e.status===`completed`||e.status===`failed`),{tasks:r,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),failed:e.taskCounts.failed+1},lastUpdated:Date.now()}}),recordBudgetDecision:(t,n,r,i)=>e(e=>{let a=new Map;for(let t of e.budgetAlerts){let e=`${t.subagentId}:${t.kind}`;a.has(e)||a.set(e,t)}let o=`${t}:${n}`,s=a.get(o);return s&&a.set(o,{...s,decision:r,newLimit:i,level:r===`extend`?`warning`:`danger`}),{budgetAlerts:Array.from(a.values()),lastUpdated:Date.now()}}),recordBudgetAlert:(t,n,r,i)=>e(e=>{let a=`${Date.now()}-${t}-${n}`,o=i>0?Math.round(r/i*100):0;return{budgetAlerts:[{id:a,ts:Date.now(),subagentId:t,kind:n,level:ee(n,o),used:r,limit:i,pct:o},...e.budgetAlerts].slice(0,re),lastUpdated:Date.now()}}),recordBudgetExtended:(t,n,r)=>e(e=>{let i=new Map(e.subagents),a=i.get(t);if(a?.budgetLimits){let e={...a.budgetLimits};n===`timeout`&&r&&(e.timeoutMs=r),n===`iterations`&&(e.maxIterations=r),n===`tool_calls`&&(e.maxToolCalls=r),i.set(t,{...a,budgetLimits:e,lastSeen:Date.now()})}return{subagents:i,lastUpdated:Date.now()}}),clear:()=>e({coordinatorStatus:`idle`,coordinatorMode:void 0,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now()})})),oe=n()(e=>({snapshot:null,lastFiredAt:{},revision:0,setSnapshot:t=>e(e=>({snapshot:t,revision:e.revision+1})),recordFired:(t,n)=>e(e=>({lastFiredAt:{...e.lastFiredAt,[t]:n},revision:e.revision+1})),clear:()=>e({snapshot:null,lastFiredAt:{},revision:0})}));function se(){return`ref_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function g(e){switch(e.split(`.`).pop()?.toLowerCase()??``){case`ts`:case`tsx`:return`typescript`;case`js`:case`jsx`:return`javascript`;case`json`:return`json`;case`md`:case`mdx`:return`markdown`;case`css`:return`css`;case`scss`:return`scss`;case`html`:case`htm`:return`html`;case`py`:return`python`;case`rs`:return`rust`;case`go`:return`go`;case`rb`:return`ruby`;case`java`:return`java`;case`c`:return`c`;case`cpp`:case`hpp`:return`cpp`;case`h`:return`c`;case`sh`:case`bash`:return`bash`;case`sql`:return`sql`;case`yaml`:case`yml`:return`yaml`;case`toml`:return`toml`;default:return``}}function _(e,t=20,n=2e3){let r=e.split(`
|
|
2
2
|
`),i=!1,a=e;return r.length>t&&(a=r.slice(0,t).join(`
|
|
3
3
|
`),i=!0),a.length>n&&(a=a.slice(0,n),i=!0),i&&(a=a.replace(/\s+$/,``)+`
|
|
4
4
|
…`),{text:a,truncated:i}}function v(e){return e.length===0?``:[`[File reference contract]`,`Before answering or modifying anything related to these references, use the available file-reading tools to read each complete project file:`,...e.map(e=>`- ${JSON.stringify(e)}`),`If a read is paginated or chunked, continue on the same path until EOF. Do not treat an inline preview as the complete file.`].join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,n,r,t as i}from"./chat-store-DbxFVDwi.js";import{La as a,Na as o,za as s}from"./vendor-BuarzSSb.js";import{t as c}from"./i18n-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{a as t,n,r,t as i}from"./chat-store-DbxFVDwi.js";import{La as a,Na as o,za as s}from"./vendor-BuarzSSb.js";import{t as c}from"./i18n-ags7mYPP.js";import{a as l,c as u,i as d,l as f,o as p,s as m,t as h}from"./ws-client-TTMa0XaT.js";import{t as g}from"./session-store-Df7_hhe9.js";import{i as _,n as v}from"./codemap-activity-store-DQfjo7-j.js";import{F as y,I as b,P as ee,T as x,_ as S,a as te,b as ne,c as re,f as ie,g as ae,h as oe,i as C,j as w,l as T,o as se,p as ce,r as E,s as D,t as O,u as k,v as le,y as ue}from"./stores-Bz5nhi7q.js";import{r as A}from"./mailbox-store-C1mzoSqJ.js";import{n as j,t as de}from"./ui-store-CE4-TlwB.js";import{n as fe,o as pe}from"./view-navigation-DIDEcp4V.js";import{t as me}from"./codemap-index-store-COStDU-8.js";import{n as M}from"./Toaster-Cz-_rtgo.js";var N=e(s(),1);function he(e,t){if(t)return!0;try{return new URLSearchParams(e).get(`shell`)===`desktop`}catch{return!1}}function P(){return typeof window>`u`?!1:he(window.location.search,!!window.wrongstackDesktopHost)}function F(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function I(e,t=``){return typeof e==`string`?e:t}function L(e,t=0){return typeof e==`number`&&Number.isFinite(e)?e:t}function ge(e){let t=F(e.payload);if(!t)return null;switch(e.type){case`provider.thinking_delta`:{let e=I(t.text);return e?{kind:`thinking-delta`,text:e}:null}case`provider.text_delta`:{let e=I(t.text);return e?{kind:`text-delta`,text:e,messageId:I(t.messageId)}:null}case`provider.response`:return{kind:`response`,content:t.content,stopReason:I(t.stopReason)};case`run.result`:return{kind:`run-result`,status:I(t.status),iterations:L(t.iterations,1),...typeof t.finalText==`string`?{finalText:t.finalText}:{}};case`error`:return{kind:`error`,message:I(t.message,`Run failed`)};default:return null}}function R(e){let t=F(e.payload);if(!t)return null;if(e.type===`tool.started`){let e=I(t.name,`tool`);return{kind:`started`,id:I(t.id,e),name:e,input:t.input,messageId:I(t.messageId)}}if(e.type===`tool.progress`){let e=F(t.event);return{kind:`progress`,id:I(t.id),name:I(t.name,`tool`),eventType:I(e?.type),text:I(e?.text).trim()}}return e.type===`tool.executed`?{kind:`executed`,id:I(t.id),name:I(t.name),ok:t.ok!==!1,durationMs:L(t.durationMs),...typeof t.output==`string`?{output:t.output}:{},...Array.isArray(t.sage)?{sage:t.sage.filter(e=>typeof e==`string`)}:{}}:null}function z(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return e}function _e(e){return typeof e==`string`&&e.length>0?e:void 0}function ve(e){let t=F(e.payload);if(!t)return null;switch(e.type){case`fleet.concurrency_update`:return{kind:`concurrency`,active:L(t.fleetConcurrency),maximum:L(t.fleetConcurrencyMax),maxSpawns:z(t.maxSpawns),usedSpawns:z(t.usedSpawns),remainingSpawns:z(t.remainingSpawns),maxSpawnsSource:_e(t.maxSpawnsSource),maxConcurrentSource:_e(t.maxConcurrentSource),effectiveSource:_e(t.effectiveSource),checkpointMaxSpawns:z(t.checkpointMaxSpawns),ceilingMismatch:t.ceilingMismatch===!0||void 0};case`client.status_update`:return{kind:`client-status`,status:t};case`sessions.status_update`:return{kind:`sessions`,sessions:Array.isArray(t.sessions)?t.sessions:[]};case`coordinator.stats`:return{kind:`coordinator`,agents:Array.isArray(t.subagentStatuses)?t.subagentStatuses.filter(e=>F(e)!==null):[]};default:return null}}function ye(e){return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
|
2
2
|
<rect width="64" height="64" fill="#121210" />
|
|
3
3
|
<path fill="#FD9F02" d="M5 27h10v10H5zM27 27h10v10H27zM38 27h10v10H38zM49 27h10v10H49z" />
|
|
4
4
|
<path fill="#FE2E5F" d="M16 32h10v10H16z" />
|
|
@@ -6,7 +6,6 @@ export interface FleetAgentLike {
|
|
|
6
6
|
status: string;
|
|
7
7
|
sessionId?: string | undefined;
|
|
8
8
|
}
|
|
9
|
-
export declare function collectLiveAgentIdentities(agents: Iterable<FleetAgentLike>): Set<string>;
|
|
10
9
|
export declare function collectActiveSessionIds(input: {
|
|
11
10
|
sessionId: string | null;
|
|
12
11
|
registrySessionIds: readonly string[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { KanbanBoard, KanbanBoardPresence, KanbanEvent, KanbanTask } from '@wrongstack/kanban';
|
|
2
2
|
import { type RunLink } from './KanbanRunControls.js';
|
|
3
|
-
export declare function KanbanTaskInspector({ boards, board, task, runLink, onClose, onSelectTask, sendKanban, sendRaw,
|
|
3
|
+
export declare function KanbanTaskInspector({ boards, board, task, runLink, onClose, onSelectTask, sendKanban, sendRaw, activityEvents, activityPresence, activityLoading, activityError, activitySessionId, refreshActivity, }: {
|
|
4
4
|
boards: Array<{
|
|
5
5
|
id: string;
|
|
6
6
|
title: string;
|
|
@@ -12,7 +12,6 @@ export declare function KanbanTaskInspector({ boards, board, task, runLink, onCl
|
|
|
12
12
|
onSelectTask: (id: string) => void;
|
|
13
13
|
sendKanban: (type: `kanban.${string}`, payload?: Record<string, unknown>) => void;
|
|
14
14
|
sendRaw: (type: string, payload?: Record<string, unknown>) => void;
|
|
15
|
-
refreshBoard: (boardId?: string | null) => void;
|
|
16
15
|
activityEvents: KanbanEvent[];
|
|
17
16
|
activityPresence?: KanbanBoardPresence[] | undefined;
|
|
18
17
|
activityLoading: boolean;
|
package/dist/index.html
CHANGED
|
@@ -5,39 +5,39 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/wrongstack.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>WrongStack WebUI</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-Doa2aJ1A.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/monaco-BLUV5g0U.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/markdown-sSmz-Ua_.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/vendor-BuarzSSb.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="/assets/utils-B-9lSDIn.js">
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assets/chat-store-DbxFVDwi.js">
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/activity-
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/activity-jOHsoosT.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/chat-CdiY7G6Z.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/commandPalette-DpaemFux.js">
|
|
18
18
|
<link rel="modulepreload" crossorigin href="/assets/common-COVxQ0FV.js">
|
|
19
19
|
<link rel="modulepreload" crossorigin href="/assets/settings-zIY9-ivF.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="/assets/setup-BFcmn89w.js">
|
|
21
21
|
<link rel="modulepreload" crossorigin href="/assets/toasts-BL_8kH4B.js">
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/assets/i18n-
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/i18n-ags7mYPP.js">
|
|
23
23
|
<link rel="modulepreload" crossorigin href="/assets/session-store-Df7_hhe9.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/ws-client-TTMa0XaT.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/codemap-activity-store-DQfjo7-j.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/assets/mailbox-store-C1mzoSqJ.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/assets/ui-store-CE4-TlwB.js">
|
|
28
|
-
<link rel="modulepreload" crossorigin href="/assets/stores-
|
|
28
|
+
<link rel="modulepreload" crossorigin href="/assets/stores-Bz5nhi7q.js">
|
|
29
29
|
<link rel="modulepreload" crossorigin href="/assets/view-navigation-DIDEcp4V.js">
|
|
30
30
|
<link rel="modulepreload" crossorigin href="/assets/codemap-index-store-COStDU-8.js">
|
|
31
|
-
<link rel="modulepreload" crossorigin href="/assets/Toaster-
|
|
32
|
-
<link rel="modulepreload" crossorigin href="/assets/useWebSocket-
|
|
31
|
+
<link rel="modulepreload" crossorigin href="/assets/Toaster-Cz-_rtgo.js">
|
|
32
|
+
<link rel="modulepreload" crossorigin href="/assets/useWebSocket-BHzEXXna.js">
|
|
33
33
|
<link rel="modulepreload" crossorigin href="/assets/dialog-ftgTihmF.js">
|
|
34
34
|
<link rel="modulepreload" crossorigin href="/assets/button-Dcy288Mc.js">
|
|
35
35
|
<link rel="modulepreload" crossorigin href="/assets/input-fo9-BPBC.js">
|
|
36
|
-
<link rel="modulepreload" crossorigin href="/assets/ConfirmModal-
|
|
37
|
-
<link rel="modulepreload" crossorigin href="/assets/ModelPicker-
|
|
36
|
+
<link rel="modulepreload" crossorigin href="/assets/ConfirmModal-B0BCqW4j.js">
|
|
37
|
+
<link rel="modulepreload" crossorigin href="/assets/ModelPicker-DwNrO_jw.js">
|
|
38
38
|
<link rel="stylesheet" crossorigin href="/assets/monaco-Bowa0-zp.css">
|
|
39
39
|
<link rel="stylesheet" crossorigin href="/assets/vendor-BMdWcCR4.css">
|
|
40
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
40
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Cw20Xg0d.css">
|
|
41
41
|
</head>
|
|
42
42
|
<body>
|
|
43
43
|
<div id="root"></div>
|