@wrongstack/webui 1.0.17 → 1.0.19
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-CV9MW-4M.js → AgentRosterView-D4TuVXe8.js} +1 -1
- package/dist/assets/{AnalyticsDashboard-30brLbuz.js → AnalyticsDashboard-DmQd0E0V.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-bKVydKg8.js → AudienceMemoryPanel-DHJM4rf1.js} +1 -1
- package/dist/assets/{ChangesView-Cv6svx-V.js → ChangesView-CZ-nCe26.js} +1 -1
- package/dist/assets/{ChimeraReviewsView-DLTrEJDS.js → ChimeraReviewsView-CNeRLesP.js} +1 -1
- package/dist/assets/{ChronicleDashboard-DhgWbaXj.js → ChronicleDashboard-CYELq7EO.js} +1 -1
- package/dist/assets/{CodeEditor-JlvMbECd.js → CodeEditor-CLscjkIR.js} +1 -1
- package/dist/assets/{CodeMap-4swT3FIw.js → CodeMap-CdVy9Q7V.js} +1 -1
- package/dist/assets/{CronJobsPanel-LSpFBceD.js → CronJobsPanel-TcZy_W2t.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-ZRNNV02b.js → DeadCodeScanPanel-BOD2JEyf.js} +1 -1
- package/dist/assets/{DebugDashboard-DlH0QNPX.js → DebugDashboard-DFPNPzQ_.js} +1 -1
- package/dist/assets/{DesignGalleryView-yZgVVEg9.js → DesignGalleryView-BXABwAji.js} +1 -1
- package/dist/assets/{GoalView-D1gxZre2.js → GoalView-Cepqrg9l.js} +1 -1
- package/dist/assets/KanbanView-FSePkLch.js +3 -0
- package/dist/assets/{MailboxDetailView-C4lEW3f8.js → MailboxDetailView-QyNmt1Gv.js} +1 -1
- package/dist/assets/{MemoryDrawer-arujfDSW.js → MemoryDrawer-BZsyD1dh.js} +1 -1
- package/dist/assets/{MemoryManager-BmQYIRhD.js → MemoryManager-IHmhWn4P.js} +1 -1
- package/dist/assets/{ProcessMonitor-ByW-VKsX.js → ProcessMonitor-Bz0jZvHJ.js} +1 -1
- package/dist/assets/{PromptJournalView-0cHPeYXa.js → PromptJournalView-Ct8cLcGU.js} +1 -1
- package/dist/assets/{ProviderTestView-CQlwC6HG.js → ProviderTestView-Dy3k2bVu.js} +1 -1
- package/dist/assets/{QueuePanel-DJeK7xCh.js → QueuePanel-oVkTB68Q.js} +1 -1
- package/dist/assets/{RefreshDebugView-BfOjHodq.js → RefreshDebugView-_XPrBDq3.js} +1 -1
- package/dist/assets/{RepositoryHistoryView-BYPPu5uv.js → RepositoryHistoryView-Wlnvi5r1.js} +1 -1
- package/dist/assets/RequirementIntakeView-Cj5arGFF.js +1 -0
- package/dist/assets/{SageTabs-Bt2kzPNB.js → SageTabs-qrBn3VQr.js} +2 -2
- package/dist/assets/{SddFlowGraph-CZSwcAtS.js → SddFlowGraph-DS8R2zEj.js} +1 -1
- package/dist/assets/{SddHub-Cc79Ob7A.js → SddHub-C8pHQYSM.js} +1 -1
- package/dist/assets/{SessionInspectView-BasxJ_5x.js → SessionInspectView-CuRk2DS0.js} +1 -1
- package/dist/assets/{SessionList-C9MRSj_-.js → SessionList-BgRb1Mp4.js} +1 -1
- package/dist/assets/{SessionsDashboard-BK95Zp6f.js → SessionsDashboard-CSkm28Bx.js} +1 -1
- package/dist/assets/{SetupScreen-rPKsBa9Z.js → SetupScreen-CNcJ_9O9.js} +1 -1
- package/dist/assets/{SkillDetailView-LkJyIBPb.js → SkillDetailView-Bc9owpaX.js} +1 -1
- package/dist/assets/{TechStackView-xVR5dsSn.js → TechStackView-BHiGCRBT.js} +1 -1
- package/dist/assets/{TerminalPanel-CBEZTuvV.js → TerminalPanel-7VeXK8LB.js} +1 -1
- package/dist/assets/{activity-E8vCWdG2.js → activity-1wlPY6yi.js} +1 -1
- package/dist/assets/{activity-CInOo57V.js → activity-BVbAv0x7.js} +1 -1
- package/dist/assets/{activity-e8OIpNGJ.js → activity-BmJTU8kX.js} +1 -1
- package/dist/assets/{activity-oTJsNfZu.js → activity-By_aWEsY.js} +1 -1
- package/dist/assets/{activity-DapbBEf6.js → activity-Cps_29WN.js} +1 -1
- package/dist/assets/{activity-D6XfckyA.js → activity-Du_fOnvF.js} +1 -1
- package/dist/assets/{activity-CDHIWIPJ.js → activity-p_2o4eC6.js} +1 -1
- package/dist/assets/{chat-store-BDVZSmod.js → chat-store-C-PKlsCR.js} +1 -1
- package/dist/assets/config-store-xSv1mChc.js +21 -0
- package/dist/assets/{i18n-CvJB4U4z.js → i18n--QdD6NCn.js} +1 -1
- package/dist/assets/{index-DLjaZSCH.js → index-FWwLmwjx.js} +35 -35
- package/dist/assets/{roster-ws-BRANim2Y.js → roster-ws-CxKDc-ET.js} +1 -1
- package/dist/assets/{stores-D5loyGLL.js → stores-2kakt8j9.js} +1 -1
- package/dist/components/KanbanColumnView.d.ts +13 -0
- package/dist/index.html +5 -5
- package/dist/index.js +195 -133
- package/dist/lib/kanban-cleaner.d.ts +1 -1
- package/dist/lib/ws-client-domain-methods.d.ts +1 -1
- package/dist/lib/ws-client-echo.d.ts +1 -1
- package/package.json +9 -9
- package/dist/assets/KanbanView-Bh0T3p3J.js +0 -3
- package/dist/assets/RequirementIntakeView-CEwUB7VD.js +0 -1
- package/dist/assets/config-store-mWuYCild.js +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
import{K as e}from"./config-store-
|
|
1
|
+
import{K as e}from"./config-store-xSv1mChc.js";var t=new Map,n=15e3;function r(e){return e.startsWith(`agent-roster.`)&&e.length>13?e.slice(13):void 0}function i(i,a,o){return new Promise((s,c)=>{let l=e(),u=!1,d=[],f=e=>{if(!u){u=!0;for(let e of d)e();d=[],t.delete(i),e()}},p=e=>{let t=e,n=t&&typeof t==`object`?t.payload??t:e;if(n&&typeof n==`object`&&`error`in n&&typeof n.error==`string`){f(()=>c(Error(n.error)));return}f(()=>s(n))};l.connect().then(()=>{if(u)return;let e=t.get(i);e&&(e.cleanup(),e.reject(Error(`Roster request "${i}" superseded by new request`)),t.delete(i)),t.set(i,{reject:e=>f(()=>c(e)),cleanup:()=>{for(let e of d)e();d=[],u||t.delete(i)}});let s=l.on(i,p);d.push(s);let m=r(i);if(m){let e=l.on(m,p);d.push(e)}if(o){if(o.aborted){f(()=>c(new DOMException(`Aborted`,`AbortError`)));return}let e=()=>f(()=>c(new DOMException(`Aborted`,`AbortError`)));o.addEventListener(`abort`,e,{once:!0}),d.push(()=>o.removeEventListener(`abort`,e))}let h=setTimeout(()=>f(()=>c(Error(`Roster request "${i}" timed out`))),n);d.push(()=>clearTimeout(h)),l.send({type:i,payload:a})}).catch(e=>f(()=>c(e)))})}export{i as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Dt as e,K as t,Nt as n,wt as r,zt as i}from"./config-store-mWuYCild.js";import{_o as a,bo as o,vo as s,yo as c}from"./vendor-V3ydTHqN.js";import"./i18n-CvJB4U4z.js";import"./mailbox-store-ZQO_Rv6E.js";import"./ui-store-DC3mkswy.js";import"./chat-store-BDVZSmod.js";import"./codemap-activity-store-Ha7XbGgq.js";var l=`__bug_hunt_continuation_pending__`,u=s()(a((e,t)=>({runs:{},start:(t,n)=>e(e=>({runs:{...e.runs,[t]:n}})),ownsRequest:(e,n)=>{let r=t().runs[e];return!!(r&&n!==void 0&&r.requestId!==null&&r.requestId!==l&&r.requestId===n)},advance:(n,r)=>{let i=t().runs[n];if(!i||i.requestId===l||r!==void 0&&i.requestId!==null&&i.requestId!==r)return null;if(i.currentRound>=i.totalRounds)return t().clear(n),null;let a={...i,currentRound:i.currentRound+1,requestId:l};return e(e=>({runs:{...e.runs,[n]:a}})),a},setRequestId:(t,n)=>e(e=>{let r=e.runs[t];return!r||r.requestId!==l?e:{runs:{...e.runs,[t]:{...r,requestId:n}}}}),stop:(e,n)=>{let r=t().runs[e];!r||n&&r.requestId!==null&&r.requestId!==n||t().clear(e)},recover:(t,n)=>e(e=>({runs:{...e.runs,[t]:{...n,requestId:null}}})),clear:t=>e(e=>{let{[t]:n,...r}=e.runs;return{runs:r}})}),{name:`wrongstack-bug-hunt-runs`,partialize:e=>({runs:e.runs})})),d=8;function f(t,a={}){let s=Math.max(1,a.max??d),l=new Map,u=e=>e&&e.length>0?e:r,f=e=>{let n=u(e),r=l.get(n);if(r)return r;for(;l.size>=s;){let e=[...l.keys()].find(e=>e!==n);if(e===void 0)break;l.delete(e)}let i=o(t);return l.set(n,i),i},p=(e=>{let t=c(i,e=>e.activeSessionId);return c(f(t),e)});return p.getState=()=>f(e()).getState(),p.setState=t=>f(e()).setState(t),p.subscribe=t=>f(e()).subscribe(t),p.for=f,p.dropSession=e=>{l.delete(u(e))},p.sessionIds=()=>[...l.keys()],n(e=>p.dropSession(e)),p}function p(e,t){return t>=100?`danger`:`warning`}function m(e,t){switch(e){case`budget.threshold_reached`:{let e=t,n=e.limit>0?Math.round(e.used/e.limit*100):0;return`${e.subagentId} [${e.kind}] ${n}% (${e.used}/${e.limit})`}case`budget.decision`:{let e=t;return`${e.subagentId} [${e.kind}] → ${e.decision}`}case`consensus.vote_initiated`:{let e=t;return`Vote: "${e.title}" — ${e.eligible.length} voters`}case`consensus.vote_cast`:{let e=t;return`${e.voterId} voted ${e.value}`}case`consensus.vote_resolved`:{let e=t;return`${e.result} — ✅${e.approveCount} ❌${e.rejectCount}`}case`task.pending`:return`Task queued: "${t.description.slice(0,60)}"`;case`task.started`:{let e=t;return`${e.subagentId} started ${e.taskId}`}case`task.completed`:{let e=t;return`Task ${e.taskId} ${e.status} (${e.durationMs}ms)`}case`task.failed`:{let e=t;return`Task ${e.taskId} failed: ${e.error.slice(0,60)}`}case`subagent.budget_extended`:{let e=t;return`${e.subagentId} [${e.kind}] extended → ${e.extendedTo}ms`}default:return e}}var h=200,ee=50,g=300,_=200,v=100;function y(e,t,n){if(!(e.size<=t)){if(n)for(let[r,i]of e){if(e.size<=t)break;n(i)&&e.delete(r)}for(let n of e.keys()){if(e.size<=t)break;e.delete(n)}}}var b=f(e=>({coordinatorStatus:`idle`,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now(),setCoordinatorStatus:(t,n)=>e(e=>({coordinatorStatus:t,coordinatorMode:n,lastUpdated:Date.now()})),updateCoordinatorStats:t=>e(e=>{let n=new Map(e.subagents);for(let e of t.subagentStatuses??[]){let t=n.get(e.id);n.set(e.id,{id:e.id,name:e.name,role:t?.role??`agent`,status:e.status,currentTask:e.currentTask,budgetLimits:t?.budgetLimits,budgetUsage:t?.budgetUsage,lastSeen:t?.lastSeen??Date.now()})}return y(n,_,e=>e.status===`stopped`),{subagents:n,taskCounts:{pending:t.pending,running:t.inFlight,completed:t.completed,failed:0},lastUpdated:Date.now()}}),updateSubagentBudget:(t,n)=>e(e=>{let r=new Map(e.subagents),i=r.get(t);return r.set(t,{id:t,name:i?.name??t,role:i?.role??`agent`,status:i?.status??`idle`,...i,...n,lastSeen:Date.now()}),y(r,_,e=>e.status===`stopped`),{subagents:r,lastUpdated:Date.now()}}),pushEvent:(t,n,r,i,a)=>e(e=>{let o=n.kind??t,s=(t.includes(`budget`)||t.includes(`threshold`))&&typeof n.limit==`number`&&n.limit>0?Math.round(n.used/n.limit*100):void 0,c=s===void 0?t.includes(`consensus.vote_resolved`)?`info`:t.includes(`consensus.vote_initiated`)?`warning`:`info`:s>=100?`danger`:s>=85?`warning`:`info`;return{events:[{id:`${r}-${t}`,ts:r,type:t,subagentId:i,taskId:a,payload:n,kind:o,level:c,message:m(t,n)},...e.events].slice(0,h),lastUpdated:Date.now()}}),pushConsensusVote:(t,n,r)=>e(e=>{let i=new Map(e.consensusVotes);return i.set(t,{changeId:t,title:n,status:`pending`,eligible:r,votes:[],approveCount:0,rejectCount:0,abstainCount:0,expiresAt:Date.now()+3e5}),y(i,v,e=>e.status!==`pending`),{consensusVotes:i,lastUpdated:Date.now()}}),recordConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);if(!o)return{};let s={...o,votes:[...o.votes.filter(e=>e.agentId!==n),{agentId:n,agentName:r,value:i,votedAt:Date.now()}],approveCount:i===`approve`?o.approveCount+1:o.approveCount,rejectCount:i===`reject`?o.rejectCount+1:o.rejectCount,abstainCount:i===`abstain`?o.abstainCount+1:o.abstainCount};return a.set(t,s),{consensusVotes:a,lastUpdated:Date.now()}}),resolveConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);return o?(a.set(t,{...o,status:n,approveCount:r,rejectCount:i,resolvedAt:Date.now()}),{consensusVotes:a,lastUpdated:Date.now()}):{}}),pushTaskPending:(t,n,r)=>e(e=>{let i=new Map(e.tasks);return i.set(t,{id:t,description:n,status:`pending`,priority:r,queuedAt:Date.now()}),y(i,g,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,pending:e.taskCounts.pending+1},lastUpdated:Date.now()}}),startTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i?r.set(t,{...i,status:`running`,subagentId:n,startedAt:Date.now()}):r.set(t,{id:t,description:``,status:`running`,subagentId:n,startedAt:Date.now()}),{tasks:r,taskCounts:{...e.taskCounts,pending:Math.max(0,e.taskCounts.pending-1),running:e.taskCounts.running+1},lastUpdated:Date.now()}}),completeTask:(t,n,r)=>e(e=>{let i=new Map(e.tasks),a=i.get(t);return a&&i.set(t,{...a,status:n,completedAt:Date.now(),durationMs:r}),y(i,g,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),completed:n===`completed`?e.taskCounts.completed+1:e.taskCounts.completed,failed:n===`failed`?e.taskCounts.failed+1:e.taskCounts.failed},lastUpdated:Date.now()}}),failTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i&&r.set(t,{...i,status:`failed`,error:n,completedAt:Date.now()}),y(r,g,e=>e.status===`completed`||e.status===`failed`),{tasks:r,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),failed:e.taskCounts.failed+1},lastUpdated:Date.now()}}),recordBudgetDecision:(t,n,r,i)=>e(e=>{let a=new Map;for(let t of e.budgetAlerts){let e=`${t.subagentId}:${t.kind}`;a.has(e)||a.set(e,t)}let o=`${t}:${n}`,s=a.get(o);return s&&a.set(o,{...s,decision:r,newLimit:i,level:r===`extend`?`warning`:`danger`}),{budgetAlerts:Array.from(a.values()),lastUpdated:Date.now()}}),recordBudgetAlert:(t,n,r,i)=>e(e=>{let a=`${Date.now()}-${t}-${n}`,o=i>0?Math.round(r/i*100):0;return{budgetAlerts:[{id:a,ts:Date.now(),subagentId:t,kind:n,level:p(n,o),used:r,limit:i,pct:o},...e.budgetAlerts].slice(0,ee),lastUpdated:Date.now()}}),recordBudgetExtended:(t,n,r)=>e(e=>{let i=new Map(e.subagents),a=i.get(t);if(a?.budgetLimits){let e={...a.budgetLimits};n===`timeout`&&r&&(e.timeoutMs=r),n===`iterations`&&(e.maxIterations=r),n===`tool_calls`&&(e.maxToolCalls=r),i.set(t,{...a,budgetLimits:e,lastSeen:Date.now()})}return{subagents:i,lastUpdated:Date.now()}}),clear:()=>e({coordinatorStatus:`idle`,coordinatorMode:void 0,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now()})}),{max:4});function x(e,t){return{seatId:C(e.seatId)??`seat`,persona:C(e.persona)??`voter`,status:C(e.status)??`valid`,optionId:C(e.optionId),stance:C(e.stance),rationale:C(e.rationale),providerId:C(e.providerId),model:C(e.model),veto:T(e.veto),weight:w(e.weight),durationMs:w(e.durationMs),error:C(e.error),round:w(e.round),changed:T(e.changed),at:w(e.at)??t}}function te(e){if(e.phase===`voting`){let t=e.seats.reduce((e,t)=>Math.max(e,t.round??1),1);return`voting${t>1?` r${t}`:``} · ${e.seats.length} seat${e.seats.length===1?``:`s`} in`}let t=e.configuredSeatCount??e.seats.length,n=[e.resolution??e.status??`resolved`,`${e.validVoteCount??e.seats.length}/${t} seats`,`${e.distinctTargetCount??0} distinct target${e.distinctTargetCount===1?``:`s`}`];if(e.rounds!==void 0&&e.rounds>1){let t=e.deliberationChanges??0;n.push(`${e.rounds} rounds${t>0?`, ${t} changed`:`, none changed`}`)}return e.judgeUsed&&n.push(`judge${e.judgeLabel?` ${e.judgeLabel}`:``}`+(e.judgeIsVoter?` (also a voter)`:``)),e.durationMs!==void 0&&n.push(`${Math.round(e.durationMs/100)/10}s`),e.totalTokens&&n.push(`${e.totalTokens} tok`),n.join(` · `)}function S(e,t,n,r){let i=e.findIndex(e=>e.requestId===t);if(i>=0){let t=e[i],n=[...e];return n[i]=r(t),n}return[r({requestId:t,phase:`voting`,startedAt:n,seats:[]}),...e].slice(0,50)}var ne=f(e=>({panels:[],recordVote:t=>{let n=C(t.requestId);if(!n)return;let r=Date.now();e(e=>({panels:S(e.panels,n,r,e=>{let n=C(t.seatId)??`seat`,i=x(t,r);return e.seats.some(e=>e.seatId===n)?{...e,seats:e.seats.map(e=>e.seatId===n?i:e)}:e.phase===`resolved`?{requestId:e.requestId,phase:`voting`,startedAt:r,seats:[i],question:e.question}:{...e,seats:[...e.seats,i]}})}))},recordResolution:t=>{let n=C(t.requestId);if(!n)return;let r=Date.now(),i=t.usage;e(e=>({panels:S(e.panels,n,r,e=>({...e,phase:`resolved`,resolvedAt:w(t.at)??r,status:C(t.status),resolution:C(t.resolution),optionId:C(t.optionId),reason:C(t.reason),configuredSeatCount:w(t.configuredSeatCount),validVoteCount:w(t.validVoteCount),distinctTargetCount:w(t.distinctTargetCount),judgeUsed:T(t.judgeUsed),judgeLabel:C(t.judgeLabel),judgeIsVoter:T(t.judgeIsVoter),rounds:w(t.rounds),deliberationChanges:w(t.deliberationChanges),totalTokens:w(i?.totalTokens),durationMs:w(i?.durationMs),warnings:Array.isArray(t.warnings)?t.warnings.filter(e=>typeof e==`string`):void 0}))}))},noteQuestion:(t,n)=>{let r=n.trim();t&&r&&e(e=>{let n=e.panels.findIndex(e=>e.requestId===t);if(n<0)return e;let i=e.panels[n];if(i.question===r)return e;let a=[...e.panels];return a[n]={...i,question:r},{panels:a}})},clear:()=>e({panels:[]})}));function C(e){return typeof e==`string`&&e.trim()?e:void 0}function w(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function T(e){return typeof e==`boolean`?e:void 0}var E=s()(e=>({snapshot:null,lastFiredAt:{},revision:0,setSnapshot:t=>e(e=>({snapshot:t,revision:e.revision+1})),recordFired:(t,n)=>e(e=>({lastFiredAt:{...e.lastFiredAt,[t]:n},revision:e.revision+1})),clear:()=>e({snapshot:null,lastFiredAt:{},revision:0})}));function D(){return`ref_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function O(e){switch(e.split(`.`).pop()?.toLowerCase()??``){case`ts`:case`tsx`:return`typescript`;case`js`:case`jsx`:return`javascript`;case`json`:return`json`;case`md`:case`mdx`:return`markdown`;case`css`:return`css`;case`scss`:return`scss`;case`html`:case`htm`:return`html`;case`py`:return`python`;case`rs`:return`rust`;case`go`:return`go`;case`rb`:return`ruby`;case`java`:return`java`;case`c`:return`c`;case`cpp`:case`hpp`:return`cpp`;case`h`:return`c`;case`sh`:case`bash`:return`bash`;case`sql`:return`sql`;case`yaml`:case`yml`:return`yaml`;case`toml`:return`toml`;default:return``}}function k(e,t=20,n=2e3){let r=e.split(`
|
|
1
|
+
import{Dt as e,K as t,Nt as n,wt as r,zt as i}from"./config-store-xSv1mChc.js";import{_o as a,bo as o,vo as s,yo as c}from"./vendor-V3ydTHqN.js";import"./i18n--QdD6NCn.js";import"./mailbox-store-ZQO_Rv6E.js";import"./ui-store-DC3mkswy.js";import"./chat-store-C-PKlsCR.js";import"./codemap-activity-store-Ha7XbGgq.js";var l=`__bug_hunt_continuation_pending__`,u=s()(a((e,t)=>({runs:{},start:(t,n)=>e(e=>({runs:{...e.runs,[t]:n}})),ownsRequest:(e,n)=>{let r=t().runs[e];return!!(r&&n!==void 0&&r.requestId!==null&&r.requestId!==l&&r.requestId===n)},advance:(n,r)=>{let i=t().runs[n];if(!i||i.requestId===l||r!==void 0&&i.requestId!==null&&i.requestId!==r)return null;if(i.currentRound>=i.totalRounds)return t().clear(n),null;let a={...i,currentRound:i.currentRound+1,requestId:l};return e(e=>({runs:{...e.runs,[n]:a}})),a},setRequestId:(t,n)=>e(e=>{let r=e.runs[t];return!r||r.requestId!==l?e:{runs:{...e.runs,[t]:{...r,requestId:n}}}}),stop:(e,n)=>{let r=t().runs[e];!r||n&&r.requestId!==null&&r.requestId!==n||t().clear(e)},recover:(t,n)=>e(e=>({runs:{...e.runs,[t]:{...n,requestId:null}}})),clear:t=>e(e=>{let{[t]:n,...r}=e.runs;return{runs:r}})}),{name:`wrongstack-bug-hunt-runs`,partialize:e=>({runs:e.runs})})),d=8;function f(t,a={}){let s=Math.max(1,a.max??d),l=new Map,u=e=>e&&e.length>0?e:r,f=e=>{let n=u(e),r=l.get(n);if(r)return r;for(;l.size>=s;){let e=[...l.keys()].find(e=>e!==n);if(e===void 0)break;l.delete(e)}let i=o(t);return l.set(n,i),i},p=(e=>{let t=c(i,e=>e.activeSessionId);return c(f(t),e)});return p.getState=()=>f(e()).getState(),p.setState=t=>f(e()).setState(t),p.subscribe=t=>f(e()).subscribe(t),p.for=f,p.dropSession=e=>{l.delete(u(e))},p.sessionIds=()=>[...l.keys()],n(e=>p.dropSession(e)),p}function p(e,t){return t>=100?`danger`:`warning`}function m(e,t){switch(e){case`budget.threshold_reached`:{let e=t,n=e.limit>0?Math.round(e.used/e.limit*100):0;return`${e.subagentId} [${e.kind}] ${n}% (${e.used}/${e.limit})`}case`budget.decision`:{let e=t;return`${e.subagentId} [${e.kind}] → ${e.decision}`}case`consensus.vote_initiated`:{let e=t;return`Vote: "${e.title}" — ${e.eligible.length} voters`}case`consensus.vote_cast`:{let e=t;return`${e.voterId} voted ${e.value}`}case`consensus.vote_resolved`:{let e=t;return`${e.result} — ✅${e.approveCount} ❌${e.rejectCount}`}case`task.pending`:return`Task queued: "${t.description.slice(0,60)}"`;case`task.started`:{let e=t;return`${e.subagentId} started ${e.taskId}`}case`task.completed`:{let e=t;return`Task ${e.taskId} ${e.status} (${e.durationMs}ms)`}case`task.failed`:{let e=t;return`Task ${e.taskId} failed: ${e.error.slice(0,60)}`}case`subagent.budget_extended`:{let e=t;return`${e.subagentId} [${e.kind}] extended → ${e.extendedTo}ms`}default:return e}}var h=200,ee=50,g=300,_=200,v=100;function y(e,t,n){if(!(e.size<=t)){if(n)for(let[r,i]of e){if(e.size<=t)break;n(i)&&e.delete(r)}for(let n of e.keys()){if(e.size<=t)break;e.delete(n)}}}var b=f(e=>({coordinatorStatus:`idle`,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now(),setCoordinatorStatus:(t,n)=>e(e=>({coordinatorStatus:t,coordinatorMode:n,lastUpdated:Date.now()})),updateCoordinatorStats:t=>e(e=>{let n=new Map(e.subagents);for(let e of t.subagentStatuses??[]){let t=n.get(e.id);n.set(e.id,{id:e.id,name:e.name,role:t?.role??`agent`,status:e.status,currentTask:e.currentTask,budgetLimits:t?.budgetLimits,budgetUsage:t?.budgetUsage,lastSeen:t?.lastSeen??Date.now()})}return y(n,_,e=>e.status===`stopped`),{subagents:n,taskCounts:{pending:t.pending,running:t.inFlight,completed:t.completed,failed:0},lastUpdated:Date.now()}}),updateSubagentBudget:(t,n)=>e(e=>{let r=new Map(e.subagents),i=r.get(t);return r.set(t,{id:t,name:i?.name??t,role:i?.role??`agent`,status:i?.status??`idle`,...i,...n,lastSeen:Date.now()}),y(r,_,e=>e.status===`stopped`),{subagents:r,lastUpdated:Date.now()}}),pushEvent:(t,n,r,i,a)=>e(e=>{let o=n.kind??t,s=(t.includes(`budget`)||t.includes(`threshold`))&&typeof n.limit==`number`&&n.limit>0?Math.round(n.used/n.limit*100):void 0,c=s===void 0?t.includes(`consensus.vote_resolved`)?`info`:t.includes(`consensus.vote_initiated`)?`warning`:`info`:s>=100?`danger`:s>=85?`warning`:`info`;return{events:[{id:`${r}-${t}`,ts:r,type:t,subagentId:i,taskId:a,payload:n,kind:o,level:c,message:m(t,n)},...e.events].slice(0,h),lastUpdated:Date.now()}}),pushConsensusVote:(t,n,r)=>e(e=>{let i=new Map(e.consensusVotes);return i.set(t,{changeId:t,title:n,status:`pending`,eligible:r,votes:[],approveCount:0,rejectCount:0,abstainCount:0,expiresAt:Date.now()+3e5}),y(i,v,e=>e.status!==`pending`),{consensusVotes:i,lastUpdated:Date.now()}}),recordConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);if(!o)return{};let s={...o,votes:[...o.votes.filter(e=>e.agentId!==n),{agentId:n,agentName:r,value:i,votedAt:Date.now()}],approveCount:i===`approve`?o.approveCount+1:o.approveCount,rejectCount:i===`reject`?o.rejectCount+1:o.rejectCount,abstainCount:i===`abstain`?o.abstainCount+1:o.abstainCount};return a.set(t,s),{consensusVotes:a,lastUpdated:Date.now()}}),resolveConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);return o?(a.set(t,{...o,status:n,approveCount:r,rejectCount:i,resolvedAt:Date.now()}),{consensusVotes:a,lastUpdated:Date.now()}):{}}),pushTaskPending:(t,n,r)=>e(e=>{let i=new Map(e.tasks);return i.set(t,{id:t,description:n,status:`pending`,priority:r,queuedAt:Date.now()}),y(i,g,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,pending:e.taskCounts.pending+1},lastUpdated:Date.now()}}),startTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i?r.set(t,{...i,status:`running`,subagentId:n,startedAt:Date.now()}):r.set(t,{id:t,description:``,status:`running`,subagentId:n,startedAt:Date.now()}),{tasks:r,taskCounts:{...e.taskCounts,pending:Math.max(0,e.taskCounts.pending-1),running:e.taskCounts.running+1},lastUpdated:Date.now()}}),completeTask:(t,n,r)=>e(e=>{let i=new Map(e.tasks),a=i.get(t);return a&&i.set(t,{...a,status:n,completedAt:Date.now(),durationMs:r}),y(i,g,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),completed:n===`completed`?e.taskCounts.completed+1:e.taskCounts.completed,failed:n===`failed`?e.taskCounts.failed+1:e.taskCounts.failed},lastUpdated:Date.now()}}),failTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i&&r.set(t,{...i,status:`failed`,error:n,completedAt:Date.now()}),y(r,g,e=>e.status===`completed`||e.status===`failed`),{tasks:r,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),failed:e.taskCounts.failed+1},lastUpdated:Date.now()}}),recordBudgetDecision:(t,n,r,i)=>e(e=>{let a=new Map;for(let t of e.budgetAlerts){let e=`${t.subagentId}:${t.kind}`;a.has(e)||a.set(e,t)}let o=`${t}:${n}`,s=a.get(o);return s&&a.set(o,{...s,decision:r,newLimit:i,level:r===`extend`?`warning`:`danger`}),{budgetAlerts:Array.from(a.values()),lastUpdated:Date.now()}}),recordBudgetAlert:(t,n,r,i)=>e(e=>{let a=`${Date.now()}-${t}-${n}`,o=i>0?Math.round(r/i*100):0;return{budgetAlerts:[{id:a,ts:Date.now(),subagentId:t,kind:n,level:p(n,o),used:r,limit:i,pct:o},...e.budgetAlerts].slice(0,ee),lastUpdated:Date.now()}}),recordBudgetExtended:(t,n,r)=>e(e=>{let i=new Map(e.subagents),a=i.get(t);if(a?.budgetLimits){let e={...a.budgetLimits};n===`timeout`&&r&&(e.timeoutMs=r),n===`iterations`&&(e.maxIterations=r),n===`tool_calls`&&(e.maxToolCalls=r),i.set(t,{...a,budgetLimits:e,lastSeen:Date.now()})}return{subagents:i,lastUpdated:Date.now()}}),clear:()=>e({coordinatorStatus:`idle`,coordinatorMode:void 0,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now()})}),{max:4});function x(e,t){return{seatId:C(e.seatId)??`seat`,persona:C(e.persona)??`voter`,status:C(e.status)??`valid`,optionId:C(e.optionId),stance:C(e.stance),rationale:C(e.rationale),providerId:C(e.providerId),model:C(e.model),veto:T(e.veto),weight:w(e.weight),durationMs:w(e.durationMs),error:C(e.error),round:w(e.round),changed:T(e.changed),at:w(e.at)??t}}function te(e){if(e.phase===`voting`){let t=e.seats.reduce((e,t)=>Math.max(e,t.round??1),1);return`voting${t>1?` r${t}`:``} · ${e.seats.length} seat${e.seats.length===1?``:`s`} in`}let t=e.configuredSeatCount??e.seats.length,n=[e.resolution??e.status??`resolved`,`${e.validVoteCount??e.seats.length}/${t} seats`,`${e.distinctTargetCount??0} distinct target${e.distinctTargetCount===1?``:`s`}`];if(e.rounds!==void 0&&e.rounds>1){let t=e.deliberationChanges??0;n.push(`${e.rounds} rounds${t>0?`, ${t} changed`:`, none changed`}`)}return e.judgeUsed&&n.push(`judge${e.judgeLabel?` ${e.judgeLabel}`:``}`+(e.judgeIsVoter?` (also a voter)`:``)),e.durationMs!==void 0&&n.push(`${Math.round(e.durationMs/100)/10}s`),e.totalTokens&&n.push(`${e.totalTokens} tok`),n.join(` · `)}function S(e,t,n,r){let i=e.findIndex(e=>e.requestId===t);if(i>=0){let t=e[i],n=[...e];return n[i]=r(t),n}return[r({requestId:t,phase:`voting`,startedAt:n,seats:[]}),...e].slice(0,50)}var ne=f(e=>({panels:[],recordVote:t=>{let n=C(t.requestId);if(!n)return;let r=Date.now();e(e=>({panels:S(e.panels,n,r,e=>{let n=C(t.seatId)??`seat`,i=x(t,r);return e.seats.some(e=>e.seatId===n)?{...e,seats:e.seats.map(e=>e.seatId===n?i:e)}:e.phase===`resolved`?{requestId:e.requestId,phase:`voting`,startedAt:r,seats:[i],question:e.question}:{...e,seats:[...e.seats,i]}})}))},recordResolution:t=>{let n=C(t.requestId);if(!n)return;let r=Date.now(),i=t.usage;e(e=>({panels:S(e.panels,n,r,e=>({...e,phase:`resolved`,resolvedAt:w(t.at)??r,status:C(t.status),resolution:C(t.resolution),optionId:C(t.optionId),reason:C(t.reason),configuredSeatCount:w(t.configuredSeatCount),validVoteCount:w(t.validVoteCount),distinctTargetCount:w(t.distinctTargetCount),judgeUsed:T(t.judgeUsed),judgeLabel:C(t.judgeLabel),judgeIsVoter:T(t.judgeIsVoter),rounds:w(t.rounds),deliberationChanges:w(t.deliberationChanges),totalTokens:w(i?.totalTokens),durationMs:w(i?.durationMs),warnings:Array.isArray(t.warnings)?t.warnings.filter(e=>typeof e==`string`):void 0}))}))},noteQuestion:(t,n)=>{let r=n.trim();t&&r&&e(e=>{let n=e.panels.findIndex(e=>e.requestId===t);if(n<0)return e;let i=e.panels[n];if(i.question===r)return e;let a=[...e.panels];return a[n]={...i,question:r},{panels:a}})},clear:()=>e({panels:[]})}));function C(e){return typeof e==`string`&&e.trim()?e:void 0}function w(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function T(e){return typeof e==`boolean`?e:void 0}var E=s()(e=>({snapshot:null,lastFiredAt:{},revision:0,setSnapshot:t=>e(e=>({snapshot:t,revision:e.revision+1})),recordFired:(t,n)=>e(e=>({lastFiredAt:{...e.lastFiredAt,[t]:n},revision:e.revision+1})),clear:()=>e({snapshot:null,lastFiredAt:{},revision:0})}));function D(){return`ref_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function O(e){switch(e.split(`.`).pop()?.toLowerCase()??``){case`ts`:case`tsx`:return`typescript`;case`js`:case`jsx`:return`javascript`;case`json`:return`json`;case`md`:case`mdx`:return`markdown`;case`css`:return`css`;case`scss`:return`scss`;case`html`:case`htm`:return`html`;case`py`:return`python`;case`rs`:return`rust`;case`go`:return`go`;case`rb`:return`ruby`;case`java`:return`java`;case`c`:return`c`;case`cpp`:case`hpp`:return`cpp`;case`h`:return`c`;case`sh`:case`bash`:return`bash`;case`sql`:return`sql`;case`yaml`:case`yml`:return`yaml`;case`toml`:return`toml`;default:return``}}function k(e,t=20,n=2e3){let r=e.split(`
|
|
2
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 A(e){return e.length===0?``:[`[File reference contract]`,`Before answering or modifying anything related to these references, use the available file-reading tools to read each complete project file:`,...e.map(e=>`- ${JSON.stringify(e)}`),`If a read is paginated or chunked, continue on the same path until EOF. Do not treat an inline preview as the complete file.`].join(`
|
|
@@ -23,6 +23,19 @@ export interface TaskCardIntelligence {
|
|
|
23
23
|
evidenceCount: number;
|
|
24
24
|
/** A decomposition proposal awaiting approval. */
|
|
25
25
|
pendingDecomposition: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Set once verification has spent its refusal budget on this card.
|
|
28
|
+
*
|
|
29
|
+
* Parking is deliberately not a status — a parked managed card stays in
|
|
30
|
+
* Review, a parked legacy card stays `blocked` — so without this the card
|
|
31
|
+
* looks exactly like one that is merely waiting, and the single most
|
|
32
|
+
* actionable fact about it (retrying it unchanged will refuse again) was
|
|
33
|
+
* readable only by opening the inspector.
|
|
34
|
+
*/
|
|
35
|
+
parked: {
|
|
36
|
+
reason: string;
|
|
37
|
+
attempts: number;
|
|
38
|
+
} | null;
|
|
26
39
|
}
|
|
27
40
|
export declare function deriveTaskCardIntelligence(board: KanbanBoard, task: KanbanTask, verificationActivity?: Record<string, {
|
|
28
41
|
startedAt: number;
|
package/dist/index.html
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
12
12
|
<meta name="apple-mobile-web-app-title" content="WrongStack" />
|
|
13
13
|
<title>WrongStack WebUI</title>
|
|
14
|
-
<script type="module" crossorigin src="/assets/index-
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-FWwLmwjx.js"></script>
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/react-core-wiHys0m2.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/xyflow-BqDBClm9.js">
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<link rel="modulepreload" crossorigin href="/assets/setup-qooXjj4V.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/toasts-DZ6HdKgG.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/vite-preload-BZ1Pz5am.js">
|
|
26
|
-
<link rel="modulepreload" crossorigin href="/assets/i18n
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/i18n--QdD6NCn.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/assets/utils-CKsqCaP8.js">
|
|
28
28
|
<link rel="modulepreload" crossorigin href="/assets/ui-store-DC3mkswy.js">
|
|
29
29
|
<link rel="modulepreload" crossorigin href="/assets/fonts-DRGbd-AM.js">
|
|
30
|
-
<link rel="modulepreload" crossorigin href="/assets/config-store-
|
|
30
|
+
<link rel="modulepreload" crossorigin href="/assets/config-store-xSv1mChc.js">
|
|
31
31
|
<link rel="modulepreload" crossorigin href="/assets/mailbox-store-ZQO_Rv6E.js">
|
|
32
32
|
<link rel="modulepreload" crossorigin href="/assets/view-navigation-DTs4cSQ6.js">
|
|
33
|
-
<link rel="modulepreload" crossorigin href="/assets/chat-store-
|
|
33
|
+
<link rel="modulepreload" crossorigin href="/assets/chat-store-C-PKlsCR.js">
|
|
34
34
|
<link rel="modulepreload" crossorigin href="/assets/codemap-activity-store-Ha7XbGgq.js">
|
|
35
|
-
<link rel="modulepreload" crossorigin href="/assets/stores-
|
|
35
|
+
<link rel="modulepreload" crossorigin href="/assets/stores-2kakt8j9.js">
|
|
36
36
|
<link rel="modulepreload" crossorigin href="/assets/dialog-b-Ai37sa.js">
|
|
37
37
|
<link rel="modulepreload" crossorigin href="/assets/button-BbeB5Qm8.js">
|
|
38
38
|
<link rel="modulepreload" crossorigin href="/assets/input-BA6D2L3K.js">
|