@wrongstack/webui 1.0.19 → 1.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AgentRosterView-D4TuVXe8.js → AgentRosterView-Dq8Xa0WK.js} +4 -4
- package/dist/assets/{AnalyticsDashboard-DmQd0E0V.js → AnalyticsDashboard-DgqJODVI.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-DHJM4rf1.js → AudienceMemoryPanel-BVGdDVTT.js} +1 -1
- package/dist/assets/{ChangesView-CZ-nCe26.js → ChangesView-BVyLENBb.js} +1 -1
- package/dist/assets/ChimeraReviewsView-CTuxzgTC.js +1 -0
- package/dist/assets/ChronicleDashboard-BRP7D6RZ.js +1 -0
- package/dist/assets/{CodeEditor-CLscjkIR.js → CodeEditor-k3z3M0NG.js} +1 -1
- package/dist/assets/{CodeMap-CdVy9Q7V.js → CodeMap-CvHNQZEF.js} +1 -1
- package/dist/assets/{CronJobsPanel-TcZy_W2t.js → CronJobsPanel-GTK038V9.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-BOD2JEyf.js → DeadCodeScanPanel-DX4OEuyp.js} +1 -1
- package/dist/assets/{DebugDashboard-DFPNPzQ_.js → DebugDashboard-CKp3sa_k.js} +1 -1
- package/dist/assets/{DesignGalleryView-BXABwAji.js → DesignGalleryView-DVUTYaP6.js} +1 -1
- package/dist/assets/{GoalView-Cepqrg9l.js → GoalView-D8G8e8YG.js} +1 -1
- package/dist/assets/{KanbanView-FSePkLch.js → KanbanView-BMXGDqGo.js} +2 -2
- package/dist/assets/{MailboxDetailView-QyNmt1Gv.js → MailboxDetailView-CylnzTVc.js} +1 -1
- package/dist/assets/{MemoryDrawer-BZsyD1dh.js → MemoryDrawer-DJ0Y98Z8.js} +1 -1
- package/dist/assets/{MemoryManager-IHmhWn4P.js → MemoryManager-DfcsYPUB.js} +1 -1
- package/dist/assets/{ProcessMonitor-Bz0jZvHJ.js → ProcessMonitor-BnQ3vJtn.js} +1 -1
- package/dist/assets/{PromptJournalView-Ct8cLcGU.js → PromptJournalView-D7k8Yh5a.js} +1 -1
- package/dist/assets/{ProviderTestView-Dy3k2bVu.js → ProviderTestView-DSd6kkWT.js} +1 -1
- package/dist/assets/{QueuePanel-oVkTB68Q.js → QueuePanel-79KiyZWD.js} +1 -1
- package/dist/assets/{RefreshDebugView-_XPrBDq3.js → RefreshDebugView-s6MyGpPq.js} +1 -1
- package/dist/assets/{RepositoryHistoryView-Wlnvi5r1.js → RepositoryHistoryView-CWi_Zo3F.js} +1 -1
- package/dist/assets/{RequirementIntakeView-Cj5arGFF.js → RequirementIntakeView-D_Ea20fx.js} +1 -1
- package/dist/assets/{SageTabs-qrBn3VQr.js → SageTabs-D6eTg3ix.js} +2 -2
- package/dist/assets/SddFlowGraph-B-ptkFX6.js +1 -0
- package/dist/assets/SddHub-CSVfLGpr.js +2 -0
- package/dist/assets/{SessionInspectView-CuRk2DS0.js → SessionInspectView-NSpj5WEN.js} +1 -1
- package/dist/assets/{SessionList-BgRb1Mp4.js → SessionList-BYRCs1AK.js} +1 -1
- package/dist/assets/{SessionsDashboard-CSkm28Bx.js → SessionsDashboard-mF4PzdKY.js} +1 -1
- package/dist/assets/{SetupScreen-CNcJ_9O9.js → SetupScreen-BUZeJSZi.js} +1 -1
- package/dist/assets/SkillDetailView-B9BFyB1i.js +3 -0
- package/dist/assets/{TechStackView-BHiGCRBT.js → TechStackView-CXJilX0M.js} +2 -2
- package/dist/assets/{TerminalPanel-7VeXK8LB.js → TerminalPanel-CAXevSAa.js} +1 -1
- package/dist/assets/{activity-BVbAv0x7.js → activity-B3wutYIE.js} +4 -4
- package/dist/assets/activity-Be03cc7g.js +10 -0
- package/dist/assets/activity-CiYZ3y4e.js +10 -0
- package/dist/assets/activity-CmIA2MhR.js +10 -0
- package/dist/assets/activity-Cp5GhldB.js +10 -0
- package/dist/assets/activity-DFCf7l5d.js +10 -0
- package/dist/assets/{activity-Du_fOnvF.js → activity-EbNUY7Ci.js} +4 -4
- package/dist/assets/{chat-store-C-PKlsCR.js → chat-store-C7InoWAO.js} +1 -1
- package/dist/assets/common-Bjl7V12m.js +1 -0
- package/dist/assets/common-BtyQBZBN.js +1 -0
- package/dist/assets/common-D0QL7rwb.js +1 -0
- package/dist/assets/common-DJRPtYAt.js +1 -0
- package/dist/assets/common-DPPTV3yw.js +1 -0
- package/dist/assets/common-DvjdaRhB.js +1 -0
- package/dist/assets/common-opV6EoLd.js +1 -0
- package/dist/assets/config-store-BbL0WxLE.js +21 -0
- package/dist/assets/{i18n--QdD6NCn.js → i18n-Dv97urcO.js} +3 -3
- package/dist/assets/index-CON0Nbm4.css +1 -0
- package/dist/assets/index-DX6tHUzs.js +177 -0
- package/dist/assets/roster-ws-Cv_PHlEV.js +1 -0
- package/dist/assets/settings-BCvuzOJ6.js +1 -0
- package/dist/assets/settings-DMPKd-4K.js +1 -0
- package/dist/assets/settings-DxQ2452f.js +1 -0
- package/dist/assets/settings-Dz3StaVx.js +1 -0
- package/dist/assets/settings-EBW1mlXc.js +1 -0
- package/dist/assets/settings-Er2LHp9d.js +1 -0
- package/dist/assets/settings-EzznCDaX.js +1 -0
- package/dist/assets/stores-DXn5tdr7.js +7 -0
- package/dist/assets/ui-store-DxDwFHNK.js +1 -0
- package/dist/assets/{view-navigation-DTs4cSQ6.js → view-navigation-CpIPxhZp.js} +1 -1
- package/dist/components/ChatInput/skill-mention-picker.d.ts +10 -0
- package/dist/components/CustomRosterPanel.d.ts +0 -1
- package/dist/components/OfficeMapCanvas.d.ts +0 -7
- package/dist/components/SettingsPanel/BrainSection.d.ts +1 -1
- package/dist/components/SettingsPanel/JevSection.d.ts +4 -0
- package/dist/components/SettingsPanel/OAuthLoginSection.d.ts +2 -0
- package/dist/components/SettingsPanel/ProviderSection.d.ts +5 -5
- package/dist/components/SettingsPanel/brain-section-options.d.ts +1 -1
- package/dist/components/SettingsPanel/contracts.d.ts +1 -0
- package/dist/components/SettingsPanel/official-servers.d.ts +1 -0
- package/dist/components/SettingsPanel/use-brain-section.d.ts +28 -0
- package/dist/components/SkillDetailView.d.ts +1 -1
- package/dist/components/chronicle-event-detail.d.ts +51 -0
- package/dist/components/context-dashboard-sections.d.ts +79 -0
- package/dist/components/use-office-map-canvas.d.ts +42 -0
- package/dist/components/use-skill-detail.d.ts +177 -0
- package/dist/components/vector-memory-panel/model.d.ts +9 -0
- package/dist/hooks/useProviderModels.d.ts +2 -0
- package/dist/hooks/useWebSocket.d.ts +3 -3
- package/dist/hooks/ws-handlers/brain-handlers.d.ts +18 -0
- package/dist/hooks/ws-handlers/goal-handlers.d.ts +7 -0
- package/dist/hooks/ws-handlers/misc-handlers.d.ts +2 -21
- package/dist/index.html +9 -9
- package/dist/index.js +15497 -12864
- package/dist/lib/auth-operation.d.ts +5 -0
- package/dist/lib/sdd-theme.d.ts +2 -2
- package/dist/lib/ws-client-actions.d.ts +2 -0
- package/dist/lib/ws-client-domain-methods.d.ts +1 -1
- package/dist/lib/ws-client-session-methods.d.ts +1 -1
- package/dist/lib/ws-client.d.ts +0 -3
- package/dist/stores/council-log-store.d.ts +4 -0
- package/dist/stores/ui-store-types.d.ts +1 -1
- package/dist/types/client-message.d.ts +13 -0
- package/dist/types/jev.d.ts +62 -0
- package/dist/types/runtime.d.ts +5 -3
- package/dist/types/server-message-system.d.ts +4 -0
- package/dist/types/system.d.ts +2 -0
- package/package.json +10 -10
- package/dist/assets/ChimeraReviewsView-CNeRLesP.js +0 -1
- package/dist/assets/ChronicleDashboard-CYELq7EO.js +0 -1
- package/dist/assets/SddFlowGraph-DS8R2zEj.js +0 -1
- package/dist/assets/SddHub-C8pHQYSM.js +0 -2
- package/dist/assets/SkillDetailView-Bc9owpaX.js +0 -3
- package/dist/assets/activity-1wlPY6yi.js +0 -10
- package/dist/assets/activity-BmJTU8kX.js +0 -10
- package/dist/assets/activity-By_aWEsY.js +0 -10
- package/dist/assets/activity-Cps_29WN.js +0 -10
- package/dist/assets/activity-p_2o4eC6.js +0 -10
- package/dist/assets/common-BXosnbIt.js +0 -1
- package/dist/assets/common-CzfPgMjC.js +0 -1
- package/dist/assets/common-DDDPz7Dv.js +0 -1
- package/dist/assets/common-DYx9oSoC.js +0 -1
- package/dist/assets/common-DZ-05t4z.js +0 -1
- package/dist/assets/common-MjX8fcng.js +0 -1
- package/dist/assets/common-ipsuLC3n.js +0 -1
- package/dist/assets/config-store-xSv1mChc.js +0 -21
- package/dist/assets/index-DiX5j910.css +0 -1
- package/dist/assets/index-FWwLmwjx.js +0 -177
- package/dist/assets/roster-ws-CxKDc-ET.js +0 -1
- package/dist/assets/settings-B5Jy-ObI.js +0 -1
- package/dist/assets/settings-BXTJJ4n-.js +0 -1
- package/dist/assets/settings-BcXAVecM.js +0 -1
- package/dist/assets/settings-ByPfZHGm.js +0 -1
- package/dist/assets/settings-CCe4iHcn.js +0 -1
- package/dist/assets/settings-D2GLiaDO.js +0 -1
- package/dist/assets/settings-gB9nKL3f.js +0 -1
- package/dist/assets/stores-2kakt8j9.js +0 -7
- package/dist/assets/ui-store-DC3mkswy.js +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{Dt as e,K as t,Nt as n,wt as r,zt as i}from"./config-store-BbL0WxLE.js";import{_o as a,bo as o,vo as s,yo as c}from"./vendor-V3ydTHqN.js";import"./i18n-Dv97urcO.js";import"./mailbox-store-ZQO_Rv6E.js";import"./ui-store-DxDwFHNK.js";import"./chat-store-C7InoWAO.js";import"./codemap-activity-store-Ha7XbGgq.js";var l=`__bug_hunt_continuation_pending__`,u=s()(a((e,t)=>({runs:{},start:(t,n)=>e(e=>({runs:{...e.runs,[t]:n}})),ownsRequest:(e,n)=>{let r=t().runs[e];return!!(r&&n!==void 0&&r.requestId!==null&&r.requestId!==l&&r.requestId===n)},advance:(n,r)=>{let i=t().runs[n];if(!i||i.requestId===l||r!==void 0&&i.requestId!==null&&i.requestId!==r)return null;if(i.currentRound>=i.totalRounds)return t().clear(n),null;let a={...i,currentRound:i.currentRound+1,requestId:l};return e(e=>({runs:{...e.runs,[n]:a}})),a},setRequestId:(t,n)=>e(e=>{let r=e.runs[t];return!r||r.requestId!==l?e:{runs:{...e.runs,[t]:{...r,requestId:n}}}}),stop:(e,n)=>{let r=t().runs[e];!r||n&&r.requestId!==null&&r.requestId!==n||t().clear(e)},recover:(t,n)=>e(e=>({runs:{...e.runs,[t]:{...n,requestId:null}}})),clear:t=>e(e=>{let{[t]:n,...r}=e.runs;return{runs:r}})}),{name:`wrongstack-bug-hunt-runs`,partialize:e=>({runs:e.runs})})),d=8;function f(t,a={}){let s=Math.max(1,a.max??d),l=new Map,u=e=>e&&e.length>0?e:r,f=e=>{let n=u(e),r=l.get(n);if(r)return r;for(;l.size>=s;){let e=[...l.keys()].find(e=>e!==n);if(e===void 0)break;l.delete(e)}let i=o(t);return l.set(n,i),i},p=(e=>{let t=c(i,e=>e.activeSessionId);return c(f(t),e)});return p.getState=()=>f(e()).getState(),p.setState=t=>f(e()).setState(t),p.subscribe=t=>f(e()).subscribe(t),p.for=f,p.dropSession=e=>{l.delete(u(e))},p.sessionIds=()=>[...l.keys()],n(e=>p.dropSession(e)),p}function p(e,t){return t>=100?`danger`:`warning`}function m(e,t){switch(e){case`budget.threshold_reached`:{let e=t,n=e.limit>0?Math.round(e.used/e.limit*100):0;return`${e.subagentId} [${e.kind}] ${n}% (${e.used}/${e.limit})`}case`budget.decision`:{let e=t;return`${e.subagentId} [${e.kind}] → ${e.decision}`}case`consensus.vote_initiated`:{let e=t;return`Vote: "${e.title}" — ${e.eligible.length} voters`}case`consensus.vote_cast`:{let e=t;return`${e.voterId} voted ${e.value}`}case`consensus.vote_resolved`:{let e=t;return`${e.result} — ✅${e.approveCount} ❌${e.rejectCount}`}case`task.pending`:return`Task queued: "${t.description.slice(0,60)}"`;case`task.started`:{let e=t;return`${e.subagentId} started ${e.taskId}`}case`task.completed`:{let e=t;return`Task ${e.taskId} ${e.status} (${e.durationMs}ms)`}case`task.failed`:{let e=t;return`Task ${e.taskId} failed: ${e.error.slice(0,60)}`}case`subagent.budget_extended`:{let e=t;return`${e.subagentId} [${e.kind}] extended → ${e.extendedTo}ms`}default:return e}}var h=200,ee=50,g=300,_=200,v=100;function y(e,t,n){if(!(e.size<=t)){if(n)for(let[r,i]of e){if(e.size<=t)break;n(i)&&e.delete(r)}for(let n of e.keys()){if(e.size<=t)break;e.delete(n)}}}var b=f(e=>({coordinatorStatus:`idle`,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now(),setCoordinatorStatus:(t,n)=>e(e=>({coordinatorStatus:t,coordinatorMode:n,lastUpdated:Date.now()})),updateCoordinatorStats:t=>e(e=>{let n=new Map(e.subagents);for(let e of t.subagentStatuses??[]){let t=n.get(e.id);n.set(e.id,{id:e.id,name:e.name,role:t?.role??`agent`,status:e.status,currentTask:e.currentTask,budgetLimits:t?.budgetLimits,budgetUsage:t?.budgetUsage,lastSeen:t?.lastSeen??Date.now()})}return y(n,_,e=>e.status===`stopped`),{subagents:n,taskCounts:{pending:t.pending,running:t.inFlight,completed:t.completed,failed:0},lastUpdated:Date.now()}}),updateSubagentBudget:(t,n)=>e(e=>{let r=new Map(e.subagents),i=r.get(t);return r.set(t,{id:t,name:i?.name??t,role:i?.role??`agent`,status:i?.status??`idle`,...i,...n,lastSeen:Date.now()}),y(r,_,e=>e.status===`stopped`),{subagents:r,lastUpdated:Date.now()}}),pushEvent:(t,n,r,i,a)=>e(e=>{let o=n.kind??t,s=(t.includes(`budget`)||t.includes(`threshold`))&&typeof n.limit==`number`&&n.limit>0?Math.round(n.used/n.limit*100):void 0,c=s===void 0?t.includes(`consensus.vote_resolved`)?`info`:t.includes(`consensus.vote_initiated`)?`warning`:`info`:s>=100?`danger`:s>=85?`warning`:`info`;return{events:[{id:`${r}-${t}`,ts:r,type:t,subagentId:i,taskId:a,payload:n,kind:o,level:c,message:m(t,n)},...e.events].slice(0,h),lastUpdated:Date.now()}}),pushConsensusVote:(t,n,r)=>e(e=>{let i=new Map(e.consensusVotes);return i.set(t,{changeId:t,title:n,status:`pending`,eligible:r,votes:[],approveCount:0,rejectCount:0,abstainCount:0,expiresAt:Date.now()+3e5}),y(i,v,e=>e.status!==`pending`),{consensusVotes:i,lastUpdated:Date.now()}}),recordConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);if(!o)return{};let s={...o,votes:[...o.votes.filter(e=>e.agentId!==n),{agentId:n,agentName:r,value:i,votedAt:Date.now()}],approveCount:i===`approve`?o.approveCount+1:o.approveCount,rejectCount:i===`reject`?o.rejectCount+1:o.rejectCount,abstainCount:i===`abstain`?o.abstainCount+1:o.abstainCount};return a.set(t,s),{consensusVotes:a,lastUpdated:Date.now()}}),resolveConsensusVote:(t,n,r,i)=>e(e=>{let a=new Map(e.consensusVotes),o=a.get(t);return o?(a.set(t,{...o,status:n,approveCount:r,rejectCount:i,resolvedAt:Date.now()}),{consensusVotes:a,lastUpdated:Date.now()}):{}}),pushTaskPending:(t,n,r)=>e(e=>{let i=new Map(e.tasks);return i.set(t,{id:t,description:n,status:`pending`,priority:r,queuedAt:Date.now()}),y(i,g,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,pending:e.taskCounts.pending+1},lastUpdated:Date.now()}}),startTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i?r.set(t,{...i,status:`running`,subagentId:n,startedAt:Date.now()}):r.set(t,{id:t,description:``,status:`running`,subagentId:n,startedAt:Date.now()}),{tasks:r,taskCounts:{...e.taskCounts,pending:Math.max(0,e.taskCounts.pending-1),running:e.taskCounts.running+1},lastUpdated:Date.now()}}),completeTask:(t,n,r)=>e(e=>{let i=new Map(e.tasks),a=i.get(t);return a&&i.set(t,{...a,status:n,completedAt:Date.now(),durationMs:r}),y(i,g,e=>e.status===`completed`||e.status===`failed`),{tasks:i,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),completed:n===`completed`?e.taskCounts.completed+1:e.taskCounts.completed,failed:n===`failed`?e.taskCounts.failed+1:e.taskCounts.failed},lastUpdated:Date.now()}}),failTask:(t,n)=>e(e=>{let r=new Map(e.tasks),i=r.get(t);return i&&r.set(t,{...i,status:`failed`,error:n,completedAt:Date.now()}),y(r,g,e=>e.status===`completed`||e.status===`failed`),{tasks:r,taskCounts:{...e.taskCounts,running:Math.max(0,e.taskCounts.running-1),failed:e.taskCounts.failed+1},lastUpdated:Date.now()}}),recordBudgetDecision:(t,n,r,i)=>e(e=>{let a=new Map;for(let t of e.budgetAlerts){let e=`${t.subagentId}:${t.kind}`;a.has(e)||a.set(e,t)}let o=`${t}:${n}`,s=a.get(o);return s&&a.set(o,{...s,decision:r,newLimit:i,level:r===`extend`?`warning`:`danger`}),{budgetAlerts:Array.from(a.values()),lastUpdated:Date.now()}}),recordBudgetAlert:(t,n,r,i)=>e(e=>{let a=`${Date.now()}-${t}-${n}`,o=i>0?Math.round(r/i*100):0;return{budgetAlerts:[{id:a,ts:Date.now(),subagentId:t,kind:n,level:p(n,o),used:r,limit:i,pct:o},...e.budgetAlerts].slice(0,ee),lastUpdated:Date.now()}}),recordBudgetExtended:(t,n,r)=>e(e=>{let i=new Map(e.subagents),a=i.get(t);if(a?.budgetLimits){let e={...a.budgetLimits};n===`timeout`&&r&&(e.timeoutMs=r),n===`iterations`&&(e.maxIterations=r),n===`tool_calls`&&(e.maxToolCalls=r),i.set(t,{...a,budgetLimits:e,lastSeen:Date.now()})}return{subagents:i,lastUpdated:Date.now()}}),clear:()=>e({coordinatorStatus:`idle`,coordinatorMode:void 0,subagents:new Map,events:[],consensusVotes:new Map,tasks:new Map,taskCounts:{pending:0,running:0,completed:0,failed:0},budgetAlerts:[],lastUpdated:Date.now()})}),{max:4});function x(e,t){return{seatId:C(e.seatId)??`seat`,persona:C(e.persona)??`voter`,status:C(e.status)??`valid`,optionId:C(e.optionId),stance:C(e.stance),rationale:C(e.rationale),providerId:C(e.providerId),model:C(e.model),veto:T(e.veto),weight:w(e.weight),durationMs:w(e.durationMs),error:C(e.error),round:w(e.round),changed:T(e.changed),at:w(e.at)??t}}function te(e){if(e.phase===`voting`){let t=e.seats.reduce((e,t)=>Math.max(e,t.round??1),1),n=e.seats.filter(e=>(e.round??1)===t).length;return`voting${t>1?` r${t}`:``} · ${n} seat${n===1?``:`s`} in`}let t=e.configuredSeatCount??e.seats.length,n=[e.resolution??e.status??`resolved`,`${e.validVoteCount??e.seats.length}/${t} seats`,`${e.distinctTargetCount??0} distinct target${e.distinctTargetCount===1?``:`s`}`];if(e.rounds!==void 0&&e.rounds>1){let t=e.deliberationChanges??0;n.push(`${e.rounds} rounds${t>0?`, ${t} changed`:`, none changed`}`)}return e.judgeUsed&&n.push(`judge${e.judgeLabel?` ${e.judgeLabel}`:``}`+(e.judgeIsVoter?` (also a voter)`:``)),e.durationMs!==void 0&&n.push(`${Math.round(e.durationMs/100)/10}s`),e.totalTokens&&n.push(`${e.totalTokens} tok`),n.join(` · `)}function S(e,t,n,r){let i=e.findIndex(e=>e.requestId===t);if(i>=0){let t=e[i],n=r(t);if(n===t)return e;let a=[...e];return a[i]=n,a}return[r({requestId:t,phase:`voting`,startedAt:n,seats:[]}),...e].slice(0,50)}var ne=f(e=>({panels:[],questions:new Map,recordVote:t=>{let n=C(t.requestId);if(!n)return;let r=w(t.at),i=r??Date.now();e(e=>({panels:S(e.panels,n,i,a=>{let o=C(t.seatId)??`seat`,s=x(t,i),c=a.seats.find(e=>e.seatId===o),l=a.question??e.questions.get(n);return a.phase===`resolved`&&(r===void 0?!c:r>(a.resolvedAt??a.startedAt))?{requestId:n,phase:`voting`,startedAt:i,seats:[s],question:l}:a.phase===`resolved`&&a.hasFinalVotes?a:c?(s.round??1)<(c.round??1)||(s.round??1)===(c.round??1)&&s.at<c.at?a:{...a,question:l,seats:a.seats.map(e=>e.seatId===o?s:e)}:{...a,question:l,seats:[...a.seats,s]}})}))},recordResolution:t=>{let n=C(t.requestId);if(!n)return;let r=w(t.at),i=r??Date.now(),a=t.usage;e(e=>({panels:S(e.panels,n,i,o=>r!==void 0&&(r<o.startedAt||o.resolvedAt!==void 0&&r<=o.resolvedAt)?o:{...o,question:o.question??e.questions.get(n),phase:`resolved`,hasFinalVotes:Array.isArray(t.votes),seats:Array.isArray(t.votes)?t.votes.filter(e=>e&&typeof e==`object`&&!Array.isArray(e)).map(e=>x(e,i)):o.seats,resolvedAt:w(t.at)??i,status:C(t.status),resolution:C(t.resolution),optionId:C(t.optionId),reason:C(t.reason),configuredSeatCount:w(t.configuredSeatCount),validVoteCount:w(t.validVoteCount),distinctTargetCount:w(t.distinctTargetCount),judgeUsed:T(t.judgeUsed),judgeLabel:C(t.judgeLabel),judgeIsVoter:T(t.judgeIsVoter),rounds:w(t.rounds),deliberationChanges:w(t.deliberationChanges),totalTokens:w(a?.totalTokens),durationMs:w(a?.durationMs),warnings:Array.isArray(t.warnings)?t.warnings.filter(e=>typeof e==`string`):void 0})}))},noteQuestion:(t,n)=>{let r=n.trim();t&&r&&e(e=>{let n=e.panels.findIndex(e=>e.requestId===t);if(n<0){if(e.questions.get(t)===r)return e;let n=new Map(e.questions);for(n.delete(t),n.set(t,r);n.size>50;)n.delete(n.keys().next().value);return{questions:n}}let i=e.panels[n];if(i.question===r)return e;let a=[...e.panels];return a[n]={...i,question:r},{panels:a}})},clear:()=>e({panels:[],questions:new Map})}));function C(e){return typeof e==`string`&&e.trim()?e:void 0}function w(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function T(e){return typeof e==`boolean`?e:void 0}var E=s()(e=>({snapshot:null,lastFiredAt:{},revision:0,setSnapshot:t=>e(e=>({snapshot:t,revision:e.revision+1})),recordFired:(t,n)=>e(e=>({lastFiredAt:{...e.lastFiredAt,[t]:n},revision:e.revision+1})),clear:()=>e({snapshot:null,lastFiredAt:{},revision:0})}));function D(){return`ref_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function O(e){switch(e.split(`.`).pop()?.toLowerCase()??``){case`ts`:case`tsx`:return`typescript`;case`js`:case`jsx`:return`javascript`;case`json`:return`json`;case`md`:case`mdx`:return`markdown`;case`css`:return`css`;case`scss`:return`scss`;case`html`:case`htm`:return`html`;case`py`:return`python`;case`rs`:return`rust`;case`go`:return`go`;case`rb`:return`ruby`;case`java`:return`java`;case`c`:return`c`;case`cpp`:case`hpp`:return`cpp`;case`h`:return`c`;case`sh`:case`bash`:return`bash`;case`sql`:return`sql`;case`yaml`:case`yml`:return`yaml`;case`toml`:return`toml`;default:return``}}function k(e,t=20,n=2e3){let r=e.split(`
|
|
2
|
+
`),i=!1,a=e;return r.length>t&&(a=r.slice(0,t).join(`
|
|
3
|
+
`),i=!0),a.length>n&&(a=a.slice(0,n),i=!0),i&&(a=a.replace(/\s+$/,``)+`
|
|
4
|
+
…`),{text:a,truncated:i}}function A(e){return e.length===0?``:[`[File reference contract]`,`Before answering or modifying anything related to these references, use the available file-reading tools to read each complete project file:`,...e.map(e=>`- ${JSON.stringify(e)}`),`If a read is paginated or chunked, continue on the same path until EOF. Do not treat an inline preview as the complete file.`].join(`
|
|
5
|
+
`)}function j(e,t){if(e.length===0)return``;let n=[],r=new Set;for(let i of e){if(i.kind===`file`){let e=t?.[i.path];if(e){let t=O(i.path),a=t?`\`\`\`${t}`:"```",o=k(e),s=o.truncated?`preview; complete read required`:`entire file`;n.push(`${a}\n// ${i.path} (${s})\n${o.text}\n\`\`\``),o.truncated&&r.add(i.path)}else n.push(`@${i.path}`),r.add(i.path);continue}let e=O(i.path),a=e?`\`\`\`${e}`:"```",o=`// ${i.path}:${i.startLine}-${i.endLine}`,s=k(i.kind===`snippet`?i.content:i.preview);n.push(`${a}\n${o}\n${s.text}\n\`\`\``),s.truncated&&r.add(i.path)}let i=A([...r]);return[...n,i].filter(Boolean).join(`
|
|
6
|
+
|
|
7
|
+
`)}var re=s()((e,t)=>({refs:[],addRef:n=>{let r=t();if(n.kind===`file`&&r.refs.find(e=>e.kind===`file`&&e.path===n.path))return;let i={...n,id:D()};e({refs:[...r.refs,i]})},removeRef:t=>{e(e=>({refs:e.refs.filter(e=>e.id!==t)}))},clearRefs:()=>e({refs:[]})})),ie=s()(e=>({info:null,setInfo:t=>e({info:t}),clear:()=>e({info:null})})),ae=s()((e,t)=>({result:null,loading:!1,currentSeq:0,setResult:t=>e(e=>t.reqSeq===e.currentSeq?{result:t,loading:!1}:{}),setLoading:()=>e({loading:!0,result:null}),clear:()=>e({result:null,loading:!1}),nextSeq:()=>{let n=t().currentSeq+1;return e({currentSeq:n}),n}})),M=s()(e=>({phases:[],activePhaseId:null,overallPercent:0,autonomous:!1,title:null,goal:null,status:`idle`,multiBoard:!1,lastEvent:null,lastError:null,graphs:[],progress:null,setState:t=>e(e=>({phases:t.phases??e.phases,activePhaseId:t.activePhaseId===void 0?e.activePhaseId:t.activePhaseId,overallPercent:t.overallPercent??e.overallPercent,autonomous:t.autonomous??e.autonomous,title:t.title===void 0?e.title:t.title,goal:t.goal===void 0?e.goal:t.goal,status:t.status??e.status,multiBoard:t.multiBoard??e.multiBoard,lastEvent:t.lastEvent===void 0?e.lastEvent:t.lastEvent,lastError:t.lastError===void 0?e.lastError:t.lastError,graphs:t.graphs??e.graphs,progress:t.progress===void 0?e.progress:t.progress})),clear:()=>e({phases:[],activePhaseId:null,overallPercent:0,autonomous:!1,title:null,goal:null,status:`idle`,multiBoard:!1,lastEvent:null,lastError:null,graphs:[],progress:null}),hydrateFromServer:e=>{e({type:`goal.list`}),e({type:`goal.state`})}}));function N(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return!(typeof t.iteration!=`number`||!Number.isFinite(t.iteration)||t.task!==void 0&&typeof t.task!=`string`||t.status!==void 0&&typeof t.status!=`string`||t.progress!==void 0&&(typeof t.progress!=`number`||!Number.isFinite(t.progress))||t.progressNote!==void 0&&typeof t.progressNote!=`string`||t.timestamp!==void 0&&typeof t.timestamp!=`string`)}function P(e){return!e||typeof e.goal!=`string`||!e.goal.trim()?null:{goal:e.goal,refinedGoal:typeof e.refinedGoal==`string`?e.refinedGoal:void 0,goalState:[`active`,`paused`,`completed`,`failed`,`abandoned`].includes(e.goalState)?e.goalState:`active`,iterations:typeof e.iterations==`number`?e.iterations:0,progress:typeof e.progress==`number`?e.progress:0,progressNote:typeof e.progressNote==`string`?e.progressNote:void 0,progressTrend:e.progressTrend===`accelerating`?`up`:e.progressTrend===`stalling`?`down`:e.progressTrend===`steady`?`stable`:void 0,deliverables:Array.isArray(e.deliverables)?e.deliverables.map((e,t)=>typeof e==`string`?{id:`d${t}`,text:e,status:/^\[[x✓]\]|✅|\(done\)/i.test(e)?`done`:`pending`}:e):void 0,journal:Array.isArray(e.journal)?e.journal.filter(N):void 0,lastTask:typeof e.lastTask==`string`?e.lastTask:void 0,lastStatus:typeof e.lastStatus==`string`?e.lastStatus:void 0}}var F=s()(e=>({goal:null,setGoal:t=>e({goal:P(t)}),clear:()=>e({goal:null}),appendJournalEntry:t=>e(e=>e.goal?{goal:{...e.goal,iterations:Math.max(e.goal.iterations,t.iteration),lastTask:t.task??e.goal.lastTask,lastStatus:t.status??e.goal.lastStatus,journal:[t,...e.goal.journal??[]].slice(0,200)}}:e),refresh:()=>{try{t()?.send?.({type:`goal-state.get`})}catch{}}}));function I(e,t){return e.presence?.some(e=>e.active)===!0||e.tags?.some(e=>e.startsWith(`session:`)&&t.includes(e.slice(8)))===!0}var L=3e5,R=s()((e,t)=>({boards:[],boardTotal:0,activeBoardTotal:0,orphanedBoardTotal:0,activeBoardId:null,activeBoard:null,loading:!1,lastOutboundAction:null,error:null,queueHealth:null,supervisorSnapshot:null,workbench:null,verificationActivity:{},boardHistory:[],fetchBoardHistory:e=>{t().sendKanban(`kanban.board.history`,{boardId:e})},setLoading:t=>e({loading:t}),sendKanban:(t,n)=>(e({loading:!0,lastOutboundAction:t}),t),transitionTask:(t,n,r,i)=>{let a=`kanban.task.transition`;return e({loading:!0,lastOutboundAction:a}),a},dispatchTask:(t,n,r)=>{let i=`kanban.task.dispatch`;return e({loading:!0,lastOutboundAction:i}),i},moveTask:(t,n,r)=>{let i=`kanban.task.move`;return e({loading:!0,lastOutboundAction:i}),i},removeTask:(t,n)=>{let r=`kanban.task.remove`;return e({loading:!0,lastOutboundAction:r}),r},setActiveBoardId:t=>e({activeBoardId:t,queueHealth:null,supervisorSnapshot:null,verificationActivity:{}}),setError:t=>e({error:t}),setQueueHealth:t=>e({queueHealth:t}),handleResult:(n,r)=>{if(!r.success){e({loading:!1,error:r.error??`Kanban request failed`});return}let i=r.data;if((n===`kanban.supervisor.status`||n===`kanban.supervisor.audit`)&&i){e({supervisorSnapshot:i,loading:!1,error:null});return}if(n===`kanban.health`&&r.data){e({queueHealth:r.data,loading:!1,error:null});return}if(n===`kanban.workbench`&&r.data){e({workbench:r.data,loading:!1,error:null});return}if(n===`kanban.list`){let t=U(i)?i:null,n=t?t.items:Array.isArray(i)?i:[];e({boards:n,boardTotal:t?.total??n.length,activeBoardTotal:t?.activeTotal??n.filter(e=>W(e)).length,orphanedBoardTotal:t?.orphanedTotal??n.filter(e=>!W(e)).length,loading:!1,error:null});return}if(n===`kanban.delete`){let n=t().activeBoardId,r=i,a=r?.removed===!0,o=r?.boardId??n;e(e=>{let t=a?e.boards.find(e=>e.id===o):void 0,n=t?W(t):void 0;return{boards:a?e.boards.filter(e=>e.id!==o):e.boards,boardTotal:a?Math.max(0,e.boardTotal-1):e.boardTotal,activeBoardTotal:n===!0?Math.max(0,e.activeBoardTotal-1):e.activeBoardTotal,orphanedBoardTotal:n===!1?Math.max(0,e.orphanedBoardTotal-1):e.orphanedBoardTotal,activeBoardId:a&&e.activeBoardId===o?null:e.activeBoardId,activeBoard:a&&e.activeBoard?.id===o?null:e.activeBoard,loading:!1,error:null}});return}if(n===`kanban.task.remove`){let t=i;e(e=>{let n=z(t?.board)?t.board:null;if(n&&e.activeBoardId===n.id)return{boards:q(e.boards,K(n)),activeBoard:n,loading:!1,error:null};let r=t?.boardId,i=t?.taskId,a=t?.removed===!0&&i&&e.activeBoard&&(!r||e.activeBoard.id===r)?{...e.activeBoard,tasks:e.activeBoard.tasks.filter(e=>e.id!==i)}:e.activeBoard;return{activeBoard:a,boards:a?q(e.boards,K(a)):e.boards,loading:!1,error:null}});return}if(n===`kanban.board.history`){Array.isArray(i)&&e({boardHistory:i});return}if(n===`kanban.task.verification_started`){let t=i;if(t?.boardId&&t.taskId){let n=`${t.boardId}:${t.taskId}`;e(e=>{let t=Date.now(),r=Object.fromEntries(Object.entries(e.verificationActivity).filter(([,e])=>t-e.startedAt<L));return r[n]={startedAt:t},{verificationActivity:r,loading:!1,error:null}})}return}if(n===`kanban.task.verification_completed`&&V(i)){let t=`${i.boardId}:${i.task.id}`;e(e=>{let n={...e.verificationActivity};if(delete n[t],e.activeBoard&&e.activeBoard.id===i.boardId){let t=J(e.activeBoard,i.task);return{verificationActivity:n,boards:q(e.boards,K(t)),activeBoard:t,loading:!1,error:null}}return{verificationActivity:n,loading:!1,error:null}});return}if(H(i)){let t=i.board;e(e=>({boards:q(e.boards,K(t)),activeBoard:e.activeBoardId===t.id?t:e.activeBoard,loading:!1,error:null}));return}if(V(i)){e(e=>{if(e.activeBoard&&e.activeBoard.id===i.boardId){let t=J(e.activeBoard,i.task);return{boards:q(e.boards,K(t)),activeBoard:t,loading:!1,error:null}}return{loading:!1,error:null}});return}if(z(i)){let t=K(i);if(n!==`kanban.create`&&n!==`kanban.duplicate`&&n!==`kanban.generate`){e(e=>({boards:q(e.boards,t),activeBoard:e.activeBoardId===i.id?i:e.activeBoard,loading:!1,error:null}));return}e(e=>({boards:q(e.boards,t),activeBoardId:i.id,activeBoard:i,loading:!1,error:null}));return}if(B(i)){e(e=>({...e.activeBoard?(()=>{let t=J(e.activeBoard,i);return{activeBoard:t,boards:q(e.boards,K(t))}})():{activeBoard:e.activeBoard},loading:!1,error:null}));return}if(Array.isArray(i)&&i.every(G)){e(e=>({...e.activeBoard?(()=>{let t={...e.activeBoard,columns:i};return{activeBoard:t,boards:q(e.boards,K(t))}})():{activeBoard:e.activeBoard},loading:!1,error:null}));return}e({loading:!1,error:null})}}));function z(e){return!!e&&typeof e==`object`&&Array.isArray(e.columns)&&Array.isArray(e.tasks)}function B(e){return!!e&&typeof e==`object`&&typeof e.title==`string`}function V(e){return!!e&&typeof e==`object`&&typeof e.boardId==`string`&&B(e.task)}function H(e){return!!e&&typeof e==`object`&&z(e.board)}function U(e){return!!e&&typeof e==`object`&&Array.isArray(e.items)&&typeof e.total==`number`}function W(e){return I(e,[])}function G(e){return!!e&&typeof e==`object`&&typeof e.id==`string`}function K(e){return{id:e.id,title:e.title,description:e.description,tags:e.tags,presence:e.presence,createdAt:e.createdAt,updatedAt:e.updatedAt,columnCount:e.columns.length,taskCount:e.tasks.length,completedTaskCount:e.tasks.filter(e=>e.status===`completed`).length}}function q(e,t){return[t,...e.filter(e=>e.id!==t.id)].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt))}function J(e,t){let n=e.tasks.some(e=>e.id===t.id)?e.tasks.map(e=>e.id===t.id?t:e):[...e.tasks,t];return{...e,tasks:n}}function oe(e){switch(e){case`tui`:return`tui`;case`cli`:case`repl`:return`repl`;case`webui`:return`webui`;default:return`webui`}}function se(e){let t={tui:0,webui:0,repl:0},n=0,r=0,i={toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0};for(let a of e){t[oe(a.clientType)]+=1;for(let e of a.agents)n+=1,(e.status===`running`||e.status===`streaming`)&&(r+=1),i.toolCalls+=e.toolCalls??0,i.costUsd+=e.costUsd??0,i.tokensIn+=e.tokensIn??0,i.tokensOut+=e.tokensOut??0}return{clientCounts:t,totalAgents:n,activeAgents:r,aggregate:i}}function ce(e){if(e!==void 0)return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function le(e){return e.map(e=>({...e,agents:e.agents.map(e=>({...e,ctxPct:ce(e.ctxPct)}))}))}var ue=0,Y=s()(e=>({clientCounts:{tui:0,webui:0,repl:0},mailActivity:[],totalMessages:0,openMessages:0,unreadMessages:0,totalAgents:0,activeAgents:0,currentSession:{},liveSessions:[],aggregate:{toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0},lastUpdated:Date.now(),setClientCounts:t=>e({clientCounts:t,lastUpdated:Date.now()}),setLiveSessions:t=>{let n=le(t),r=Y.getState().liveSessions;if(r.length===n.length){let e=!0;for(let t=0;t<n.length;t++){let i=n[t],a=r[t];if(i.sessionId!==a.sessionId||i.status!==a.status||i.agentCount!==a.agentCount||i.startedAt!==a.startedAt||i.lastHeartbeatAt!==a.lastHeartbeatAt){e=!1;break}let o=i.agents??[],s=a.agents??[];if(o.length!==s.length){e=!1;break}for(let t=0;t<o.length;t++)if(o[t].id!==s[t].id||o[t].name!==s[t].name||o[t].status!==s[t].status||o[t].currentTool!==s[t].currentTool||o[t].iterations!==s[t].iterations||o[t].toolCalls!==s[t].toolCalls||o[t].ctxPct!==s[t].ctxPct||o[t].tokensIn!==s[t].tokensIn||o[t].tokensOut!==s[t].tokensOut||o[t].costUsd!==s[t].costUsd||o[t].recentTools?.[0]?.id!==s[t].recentTools?.[0]?.id||o[t].recentMail?.[0]?.id!==s[t].recentMail?.[0]?.id||o[t].activity?.reads!==s[t].activity?.reads||o[t].activity?.writes!==s[t].activity?.writes||o[t].activity?.edits!==s[t].activity?.edits||o[t].activity?.terminalCalls!==s[t].activity?.terminalCalls||o[t].activity?.mailReceived!==s[t].activity?.mailReceived||o[t].activity?.mailSent!==s[t].activity?.mailSent||o[t].activity?.linesAdded!==s[t].activity?.linesAdded||o[t].activity?.linesRemoved!==s[t].activity?.linesRemoved){e=!1;break}if(!e)break}if(e)return}e({liveSessions:n,...se(n),lastUpdated:Date.now()})},addMailActivity:t=>e(e=>({mailActivity:[{...t,seq:t.seq??++ue},...e.mailActivity].slice(0,50),lastUpdated:Date.now()})),setMailStats:(t,n,r)=>e({totalMessages:t,openMessages:n,unreadMessages:r,lastUpdated:Date.now()}),setAgentStats:(t,n)=>e({totalAgents:t,activeAgents:n,lastUpdated:Date.now()}),setCurrentSession:t=>e({currentSession:{...Y.getState().currentSession,...t},lastUpdated:Date.now()}),clear:()=>e({clientCounts:{tui:0,webui:0,repl:0},mailActivity:[],totalMessages:0,openMessages:0,unreadMessages:0,totalAgents:0,activeAgents:0,currentSession:{},liveSessions:[],aggregate:{toolCalls:0,costUsd:0,tokensIn:0,tokensOut:0},lastUpdated:Date.now()})})),de=[3e4,6e4,12e4,3e5,6e5],X=12e4,fe=s()(a(e=>({viewMode:`office`,showHud:!0,showLegend:!0,showMinimap:!0,showControls:!0,animateEdges:!0,showFeed:!0,background:`dots`,waitThresholdMs:X,setViewMode:t=>e({viewMode:t}),setShowHud:t=>e({showHud:t}),setShowLegend:t=>e({showLegend:t}),setShowMinimap:t=>e({showMinimap:t}),setShowControls:t=>e({showControls:t}),setAnimateEdges:t=>e({animateEdges:t}),setShowFeed:t=>e({showFeed:t}),setBackground:t=>e({background:t}),setWaitThresholdMs:t=>e({waitThresholdMs:Number.isFinite(t)&&t>0?Math.round(t):X})}),{name:`wrongstack-officemap`}));function Z(e){return`${e.providerId}\u0000${e.meterId}`}function pe(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.providerId==`string`&&typeof t.meterId==`string`&&Array.isArray(t.windows)&&typeof t.capturedAt==`number`}var me=s(e=>({meters:{},apply:t=>e(e=>{let n={...e.meters};for(let e of t){if(!pe(e))continue;let t=n[Z(e)];n[Z(e)]={...e,...e.planLabel===void 0&&t?.planLabel!==void 0?{planLabel:t.planLabel}:{},...e.meterLabel===void 0&&t?.meterLabel!==void 0?{meterLabel:t.meterLabel}:{}}}return{meters:n}}),clear:()=>e({meters:{}})}));function he(e){let t;for(let n of Object.values(e))for(let e of n.windows){if(!t||e.usedPercent>t.window.usedPercent){t={snapshot:n,window:e};continue}if(e.usedPercent===t.window.usedPercent){let r=e.resetsAt,i=t.window.resetsAt;r!==void 0&&(i===void 0||r<i)&&(t={snapshot:n,window:e})}}return t}function ge(e){if(e.label)return e.label;let t=e.windowMinutes;return t!==void 0&&Number.isFinite(t)&&t>0?t%1440==0?`${t/1440}d`:t%60==0?`${t/60}h`:`${t}m`:e.id}function _e(e,t=Date.now()){if(e?.resetsAt===void 0)return;let n=e.resetsAt*1e3-t;if(n<=0)return;let r=Math.floor(n/6e4);if(r<1)return`${Math.max(1,Math.round(n/1e3))}s`;let i=Math.floor(r/1440),a=Math.floor(r%1440/60),o=r%60;return i>0?a>0?`${i}d ${a}h`:`${i}d`:a>0?o>0?`${a}h ${o}m`:`${a}h`:`${o}m`}var Q=e=>`${e.providerId}\u0000${e.model}`,ve=s(e=>({entries:{},audit:[],summary:null,loading:!1,error:null,update:t=>e(e=>{let n={...e.entries},r=Q(t);if(t.state===`healthy`)delete n[r];else{let e=n[r],i=Object.fromEntries(Object.entries(t).filter(e=>e[1]!==void 0));n[r]={...e,...i}}return{entries:n}}),hydrate:t=>e({entries:Object.fromEntries(t.filter(e=>e.state!==`healthy`).map(e=>[Q(e),e]))}),applySnapshot:t=>{let n=t.statuses;if(!Array.isArray(n)){e({error:`Invalid snapshot from server`,loading:!1});return}let r={};for(let e of n){if(!e||typeof e!=`object`)continue;let t=e,n=typeof t.providerId==`string`?t.providerId:``,i=typeof t.model==`string`?t.model:``;if(!n||!i)continue;let a=t.state;(a===`healthy`||a===`degraded`||a===`blocked`)&&(r[`${n}\u0000${i}`]={providerId:n,model:i,state:a,reason:(typeof t.lastErrorKind==`string`?t.lastErrorKind:``)||a,updatedAt:typeof t.lastFailureAt==`number`?t.lastFailureAt:Date.now(),...typeof t.stateExpiresAt==`number`?{stateExpiresAt:t.stateExpiresAt}:{},...typeof t.consecutiveFailures==`number`?{consecutiveFailures:t.consecutiveFailures}:{},...typeof t.totalFailures==`number`?{totalFailures:t.totalFailures}:{},...typeof t.rateLimitHits==`number`?{rateLimitHits:t.rateLimitHits}:{},...typeof t.lastErrorMessage==`string`?{lastErrorMessage:t.lastErrorMessage}:{},...typeof t.lastErrorKind==`string`?{lastErrorKind:t.lastErrorKind}:{},...typeof t.lastErrorStatus==`number`?{lastErrorStatus:t.lastErrorStatus}:{},...Array.isArray(t.recentErrors)?{recentErrors:t.recentErrors.slice(0,20)}:{},...typeof t.lastSessionId==`string`?{lastSessionId:t.lastSessionId}:{},...typeof t.lastAgentId==`string`?{lastAgentId:t.lastAgentId}:{},...typeof t.lastFailureAt==`number`?{lastFailureAt:t.lastFailureAt}:{}})}let i=t;e({entries:r,summary:{totalPairs:typeof i.totalPairs==`number`?i.totalPairs:0,healthy:typeof i.healthy==`number`?i.healthy:0,degraded:typeof i.degraded==`number`?i.degraded:0,blocked:typeof i.blocked==`number`?i.blocked:0,totalFailures:typeof i.totalFailures==`number`?i.totalFailures:0,totalRateLimits:typeof i.totalRateLimits==`number`?i.totalRateLimits:0},error:null,loading:!1})},setAudit:t=>e({audit:t}),setLoading:t=>e({loading:t}),setError:t=>e({error:t,loading:!1}),removeEntry:(t,n)=>e(e=>{let r={...e.entries};return delete r[Q({providerId:t,model:n})],{entries:r}}),clear:()=>e({entries:{},audit:[],summary:null,error:null})})),ye=s()(e=>({snapshot:null,boards:[],lifecycleResult:null,destroying:!1,setSnapshot:t=>e({snapshot:t}),setBoards:t=>e({boards:t}),setLifecycleResult:t=>e({lifecycleResult:t}),setDestroying:t=>e({destroying:t})})),be=f(e=>({sideEffects:[],loading:!1,setSideEffects:t=>e({sideEffects:t,loading:!1}),setLoading:t=>e({loading:t}),clear:()=>e({sideEffects:[],loading:!1})})),xe=s()(e=>({specs:[],detail:null,expandedSpecId:null,setSpecs:t=>e({specs:t}),setDetail:t=>e({detail:t}),setExpanded:t=>e({expandedSpecId:t,detail:null})})),Se=new Set([`idle`,`queued`,`discovering`,`inventorying`,`enriching`,`researching`,`synthesizing`,`completed`,`failed`,`cancelled`]);function Ce(e){return Se.has(e)?e:void 0}var $={snapshot:null,stale:!1,loading:!1,error:null,activeJob:null,lastWorkspaceId:null,reportId:null},we=s()(e=>({...$,setSnapshot:(t,n=!1)=>e(e=>({snapshot:t,stale:n,loading:!1,error:null,activeJob:e.activeJob?{...e.activeJob,status:`completed`,error:null}:null})),setLoading:t=>e({loading:t}),setError:t=>e({error:t,loading:!1}),jobStarted:(t,n)=>e({activeJob:{id:t,kind:n,status:`queued`,progress:null,error:null},error:null,loading:!0}),jobProgress:(t,n)=>e(e=>{if(e.activeJob?.id!==t)return e;let r=Ce(n.phase);return r?{activeJob:{...e.activeJob,status:r,progress:n},loading:!0}:e}),jobFailed:(t,n)=>e(e=>e.activeJob?.id===t?{activeJob:{...e.activeJob,status:`failed`,error:n},error:n,loading:!1}:e),jobCancelled:t=>e(e=>({activeJob:e.activeJob?.id===t?{...e.activeJob,status:`cancelled`,error:null}:e.activeJob,loading:!1})),workspaceCompleted:t=>e({lastWorkspaceId:t}),reportReady:t=>e({reportId:t}),clear:()=>e($)})),Te=s()(e=>({worktrees:[],baseBranch:``,activity:[],orphans:[],canClean:!1,cleanResult:null,mergeResult:null,diffByDir:{},setSnapshot:(t,n)=>e({worktrees:t,baseBranch:n}),pushEvent:t=>e(e=>({activity:[...e.activity,t].slice(-40)})),setOrphans:(t,n,r)=>e({orphans:t,canClean:n,cleanBlockedReason:r}),setCleanResult:t=>e({cleanResult:t}),setMergeResult:t=>e({mergeResult:t}),setDiff:(t,n)=>e(e=>({diffByDir:{...e.diffByDir,[t]:n}}))}));export{te as C,u as D,f as E,E as S,b as T,M as _,ye as a,j as b,ge as c,de as d,fe as f,F as g,I as h,be as i,he as l,R as m,we as n,ve as o,Y as p,xe as r,_e as s,Te as t,me as u,ae as v,ne as w,re as x,ie as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_o as e,vo as t}from"./vendor-V3ydTHqN.js";var n=[`chat`,`agents`,`files`,`changes`,`mailbox`,`skills`,`design`];function r(e){return n.includes(e)?e:e===`context`||e===`history`||e===`sessions`||e===`projects`?`chat`:e===`worktrees`?`changes`:`chat`}var i=`chat.settings.provider-test.memory.roster.context.goal.kanban.sddhub.files.changes.history.sessions.session-inspect.setup.skill.mailbox.debug.design-gallery.refresh-debug.analytics.codemap.techstack.chronicle.intake.deadcode.prompts.chimera`.split(`.`);function a(e){return i.includes(e)?e:`chat`}var o=[`goal`,`goal-state`,`fleet`,`work`,`worktrees`,`collab`];function s(e){return e==null||!o.includes(e)?null:e}var c=[`general`,`fonts`,`provider`,`jev`,`connection`,`agent`,`execution`,`fallbacks`,`routing`,`fleet`,`integrations`,`chimera`,`context`,`logs`,`security`,`display`];function l(e){return c.includes(e)?e:`general`}function u(){if(typeof window>`u`)return!1;if(window.wrongstackDesktopHost)return!0;try{return new URLSearchParams(window.location.search).get(`shell`)===`desktop`}catch{return!1}}function d(e={}){return{currentView:`chat`,activeActivity:`chat`,sidebarOpen:e.sidebarOpen??!1,dockSection:null,chromeSessionId:null,chromeBySession:{},dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,terminalOpen:!1,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,selectedMailMessage:null,refinePanel:null,skillsState:f(),chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function f(){return{selectedSkill:null,navHistory:[],historyIndex:-1,detailOpen:!1,knownRefs:{},updateAvailableCount:0}}function p(){return{sidebarOpen:!0,activeActivity:`chat`,currentView:`chat`,inspectSessionId:null,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,modelSwitcherOpen:!1,promptLibraryOpen:!1,promptInsertRequest:null,refinePanel:null,draftInput:``,draftImages:[],processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,sideContextBreakdownOpen:!1,terminalOpen:!1,dockSection:null,workDashboardTab:`todos`,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,agentRosterActiveTab:`live`,changesPanelTab:`changes`,dockCustomizeOpen:!1,skillsState:f(),selectedMailMessage:null,scrollPositions:{},chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1}}function m(e){return{sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,currentView:e.currentView,inspectSessionId:e.inspectSessionId,searchOpen:e.searchOpen,searchQuery:e.searchQuery,searchActiveMessageId:e.searchActiveMessageId,scrollTarget:e.scrollTarget,modelSwitcherOpen:e.modelSwitcherOpen,promptLibraryOpen:e.promptLibraryOpen,promptInsertRequest:e.promptInsertRequest,refinePanel:e.refinePanel,draftInput:e.draftInput,draftImages:e.draftImages,processMonitorOpen:e.processMonitorOpen,queuePanelOpen:e.queuePanelOpen,cronJobsOpen:e.cronJobsOpen,sideContextBreakdownOpen:e.sideContextBreakdownOpen,terminalOpen:e.terminalOpen,dockSection:e.dockSection,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,inspectorTarget:e.inspectorTarget,inspectorFocusedAgentId:e.inspectorFocusedAgentId,agentRosterActiveTab:e.agentRosterActiveTab,changesPanelTab:e.changesPanelTab,dockCustomizeOpen:e.dockCustomizeOpen,skillsState:e.skillsState,selectedMailMessage:e.selectedMailMessage,scrollPositions:e.scrollPositions,chatSwitcherOpen:e.chatSwitcherOpen,chatCheckpointOpen:e.chatCheckpointOpen,chatMemoryPanelOpen:e.chatMemoryPanelOpen,chatContextBreakdownOpen:e.chatContextBreakdownOpen,chatContextEditorOpen:e.chatContextEditorOpen,chatToolStatsOpen:e.chatToolStatsOpen,chatInputCollapsed:e.chatInputCollapsed}}function h(e,t){return e.chromeSessionId?{chromeBySession:{...e.chromeBySession,[e.chromeSessionId]:{...m(e),...t}}}:{}}var g={name:`wrongstack-ui`,version:8,migrate:(e,t)=>{let i=e??{};if(i.activeActivity=r(i.activeActivity),typeof i.sidebarWidth==`number`&&(i.sidebarWidth=Math.max(240,Math.min(560,i.sidebarWidth))),t<2&&(delete i.fleetDrawerOpen,delete i.agentsDrawerOpen),`currentView`in i&&(i.currentView=a(i.currentView)),`dockSection`in i&&(i.dockSection=s(i.dockSection)),`settingsActiveTab`in i&&(i.settingsActiveTab=l(i.settingsActiveTab)),`activityBarOrder`in i&&i.activityBarOrder!=null){let e=i.activityBarOrder,t=new Set(n),r=Array.isArray(e.panels)?Array.from(new Set(e.panels.filter(e=>typeof e==`string`&&t.has(e)))):[],o=Array.isArray(e.views)?Array.from(new Set(e.views.map(a))):[];i.activityBarOrder=r.length||o.length?{panels:r,views:o}:null}return t<6&&delete i.draftInput,t<7&&(delete i.chromeSessionId,delete i.chromeBySession),i},merge:(e,t)=>{let n={...t,...e??{}};return n.activeActivity=r(n.activeActivity),n.currentView=a(n.currentView),n.dockSection=s(n.dockSection),n.settingsActiveTab=l(n.settingsActiveTab),typeof n.chromeSessionId!=`string`&&(n.chromeSessionId=null),(typeof n.chromeBySession!=`object`||n.chromeBySession===null)&&(n.chromeBySession={}),n.sidebarWidth=Math.max(240,Math.min(560,n.sidebarWidth)),u()?{...n,...d({sidebarOpen:!1})}:n},partialize:e=>({sidebarOpen:e.sidebarOpen,activeActivity:e.activeActivity,sidebarWidth:e.sidebarWidth,promptHistory:e.promptHistory,pinnedIds:e.pinnedIds,compactMode:e.compactMode,favoriteSessionIds:e.favoriteSessionIds,sessionNicknames:e.sessionNicknames,fileExplorerWidth:e.fileExplorerWidth,refineEnabled:e.refineEnabled,hiddenChips:e.hiddenChips,workDashboardTab:e.workDashboardTab,inspectorOpen:e.inspectorOpen,inspectorTab:e.inspectorTab,skillsState:e.skillsState,activityBarOrder:e.activityBarOrder,currentView:e.currentView,dockSection:e.dockSection,settingsActiveTab:e.settingsActiveTab,scrollPositions:e.scrollPositions})},_=2048,v=2097152,y=new Set([`image/png`,`image/jpeg`,`image/webp`,`image/gif`]),b=class extends Error{reason;constructor(e,t){super(e),this.reason=t,this.name=`ImageAttachmentError`}};function x(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}function S(e){let t=e.indexOf(`,`),n=t>=0?e.length-t-1:e.length;return Math.floor(n*3/4)}function C(e){return/^data:([^;,]+)/.exec(e)?.[1]??`image/png`}async function w(e){try{return await createImageBitmap(e)}catch{let t=URL.createObjectURL(e);try{return await new Promise((e,n)=>{let r=new Image;r.onload=()=>e(r),r.onerror=()=>n(Error(`image decode failed`)),r.src=t})}finally{URL.revokeObjectURL(t)}}}function T(e,t,n,r,i){let a=document.createElement(`canvas`);a.width=t,a.height=n;let o=a.getContext(`2d`);if(!o)throw new b(`canvas 2d context unavailable`,`decode_failed`);o.drawImage(e,0,0,t,n);let s=a.toDataURL(`image/webp`,i);return s.startsWith(`data:image/webp`)?s:r?a.toDataURL(`image/png`):a.toDataURL(`image/jpeg`,i)}var E=0;function D(){return E+=1,`img_${Date.now()}_${E}`}async function O(e){let t=y.has(e.type),n;try{n=await w(e)}catch{throw new b(`Could not decode image "${e.name}"`,`decode_failed`)}let r=n.width,i=n.height,a=Math.max(r,i);if(!(!t||a>_||e.size>v)){let t=await x(e);return{id:D(),dataUrl:t,mediaType:e.type,bytes:S(t),name:e.name||void 0,width:r,height:i}}let o=e.type!==`image/jpeg`,s=Math.min(1,_/a),c=.85,l=T(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c);S(l)>4194304&&(s=Math.min(s,1280/a),c=.7,l=T(n,Math.max(1,Math.round(r*s)),Math.max(1,Math.round(i*s)),o,c)),`close`in n&&n.close();let u=S(l);if(u>4194304)throw new b(`Image "${e.name}" is too large after compression`,`too_large`);return{id:D(),dataUrl:l,mediaType:C(l),bytes:u,name:e.name||void 0,width:Math.max(1,Math.round(r*s)),height:Math.max(1,Math.round(i*s))}}function k(e){return e.map(e=>{let t=e.dataUrl.indexOf(`,`);return{data:t>=0?e.dataUrl.slice(t+1):e.dataUrl,mediaType:e.mediaType,...e.name?{name:e.name}:{}}})}var A=t()(e(e=>({sidebarOpen:!0,activeActivity:`chat`,settingsOpen:!1,currentView:`chat`,showConfirmDialog:!1,confirmInfo:null,paletteOpen:!1,shortcutsOpen:!1,searchOpen:!1,searchQuery:``,searchActiveMessageId:null,scrollTarget:null,promptHistory:[],sidebarWidth:304,pinnedIds:[],compactMode:!1,modelSwitcherOpen:!1,favoriteSessionIds:[],sessionNicknames:{},fileExplorerWidth:220,refineEnabled:!0,refinePanel:null,promptLibraryOpen:!1,promptInsertRequest:null,dockSection:null,workDashboardTab:`todos`,chromeSessionId:null,chromeBySession:{},hiddenChips:[],dockCustomizeOpen:!1,fleetMonitorOpen:!1,agentsMonitorOpen:!1,inspectorOpen:!1,inspectorTab:`fleet`,inspectorTarget:null,inspectorFocusedAgentId:null,subagentChatFocusId:null,subagentChatFocusSessionId:null,processMonitorOpen:!1,queuePanelOpen:!1,cronJobsOpen:!1,inspectSessionId:null,terminalOpen:!1,terminalCreateNonce:0,agentRosterActiveTab:`live`,changesPanelTab:`changes`,settingsActiveTab:`general`,scrollPositions:{},activityBarOrder:null,draftInput:``,draftImages:[],sideContextBreakdownOpen:!1,chatSwitcherOpen:!1,chatCheckpointOpen:!1,chatMemoryPanelOpen:!1,chatContextBreakdownOpen:!1,chatContextEditorOpen:!1,chatToolStatsOpen:!1,chatInputCollapsed:!1,selectedMailMessage:null,skillsState:f(),selectActivity:t=>e(e=>({activeActivity:t,...h(e,{activeActivity:t})})),toggleSidebar:()=>e(e=>{let t=!e.sidebarOpen;return{sidebarOpen:t,...h(e,{sidebarOpen:t})}}),setSidebarOpen:t=>e(e=>({sidebarOpen:t,...h(e,{sidebarOpen:t})})),setSettingsOpen:t=>e({settingsOpen:t}),setCurrentView:t=>e(e=>{let n=a(t);return{currentView:n,...h(e,{currentView:n})}}),showConfirm:t=>e({showConfirmDialog:!0,confirmInfo:t}),hideConfirm:()=>e({showConfirmDialog:!1,confirmInfo:null}),setPaletteOpen:t=>e({paletteOpen:t}),setShortcutsOpen:t=>e({shortcutsOpen:t}),setSearchOpen:t=>e(e=>({searchOpen:t,searchQuery:``,searchActiveMessageId:null,...h(e,{searchOpen:t,searchQuery:``,searchActiveMessageId:null})})),setSearchQuery:t=>e(e=>({searchQuery:t,...h(e,{searchQuery:t})})),setSearchActiveMessageId:t=>e(e=>({searchActiveMessageId:t,...h(e,{searchActiveMessageId:t})})),requestScrollToMessage:t=>e(e=>{let n={id:t,nonce:(e.scrollTarget?.nonce??0)+1};return{scrollTarget:n,...h(e,{scrollTarget:n})}}),pushPrompt:t=>e(e=>{let n=t.trim();return n?{promptHistory:[n,...e.promptHistory.filter(e=>e!==n)].slice(0,50)}:e}),setSidebarWidth:t=>e({sidebarWidth:Math.max(240,Math.min(560,Math.round(t)))}),togglePin:t=>e(e=>({pinnedIds:e.pinnedIds.includes(t)?e.pinnedIds.filter(e=>e!==t):[...e.pinnedIds,t]})),unpinAll:()=>e({pinnedIds:[]}),toggleCompactMode:()=>e(e=>({compactMode:!e.compactMode})),setModelSwitcherOpen:t=>e(e=>({modelSwitcherOpen:t,...h(e,{modelSwitcherOpen:t})})),toggleFavoriteSession:t=>e(e=>({favoriteSessionIds:e.favoriteSessionIds.includes(t)?e.favoriteSessionIds.filter(e=>e!==t):[...e.favoriteSessionIds,t]})),setSessionNickname:(t,n)=>e(e=>{let r=n.trim(),i={...e.sessionNicknames};return r?i[t]=r:delete i[t],{sessionNicknames:i}}),setFileExplorerWidth:t=>e({fileExplorerWidth:Math.max(160,Math.min(400,Math.round(t)))}),toggleRefineEnabled:()=>e(e=>({refineEnabled:!e.refineEnabled})),setRefinePanel:t=>e(e=>({refinePanel:t,...h(e,{refinePanel:t})})),setPromptLibraryOpen:t=>e(e=>({promptLibraryOpen:t,...h(e,{promptLibraryOpen:t})})),requestPromptInsert:t=>e(e=>({promptInsertRequest:t,promptLibraryOpen:!1,...h(e,{promptInsertRequest:t,promptLibraryOpen:!1})})),clearPromptInsert:()=>e(e=>({promptInsertRequest:null,...h(e,{promptInsertRequest:null})})),setDockSection:t=>e(e=>({dockSection:t,...h(e,{dockSection:t,inspectorOpen:!t&&e.inspectorOpen}),...t?{inspectorOpen:!1}:{}})),setWorkDashboardTab:t=>e(e=>({workDashboardTab:t,...h(e,{workDashboardTab:t})})),bindSessionChrome:t=>e(e=>{if(e.chromeSessionId===t)return{};let n={...e.chromeBySession};if(e.chromeSessionId){let t=m(e);n[e.chromeSessionId]=t.refinePanel?{...t,refinePanel:null,draftInput:t.refinePanel.original}:t}let r=(t?n[t]:void 0)??p();return{chromeSessionId:t,chromeBySession:n,subagentChatFocusId:null,subagentChatFocusSessionId:t,sidebarOpen:r.sidebarOpen??p().sidebarOpen,activeActivity:r.activeActivity,currentView:r.currentView,inspectSessionId:r.inspectSessionId,searchOpen:r.searchOpen,searchQuery:r.searchQuery,searchActiveMessageId:r.searchActiveMessageId,scrollTarget:r.scrollTarget,modelSwitcherOpen:r.modelSwitcherOpen,promptLibraryOpen:r.promptLibraryOpen,promptInsertRequest:r.promptInsertRequest,refinePanel:r.refinePanel,draftInput:r.draftInput,draftImages:r.draftImages,processMonitorOpen:r.processMonitorOpen,queuePanelOpen:r.queuePanelOpen,cronJobsOpen:r.cronJobsOpen,sideContextBreakdownOpen:r.sideContextBreakdownOpen,terminalOpen:r.terminalOpen,dockSection:r.dockSection,workDashboardTab:r.workDashboardTab,inspectorOpen:r.inspectorOpen,inspectorTab:r.inspectorTab,inspectorTarget:r.inspectorTarget,inspectorFocusedAgentId:r.inspectorFocusedAgentId,agentRosterActiveTab:r.agentRosterActiveTab,changesPanelTab:r.changesPanelTab,dockCustomizeOpen:r.dockCustomizeOpen??!1,skillsState:r.skillsState??f(),selectedMailMessage:r.selectedMailMessage??null,scrollPositions:r.scrollPositions??{},chatSwitcherOpen:r.chatSwitcherOpen??!1,chatCheckpointOpen:r.chatCheckpointOpen??!1,chatMemoryPanelOpen:r.chatMemoryPanelOpen??!1,chatContextBreakdownOpen:r.chatContextBreakdownOpen??!1,chatContextEditorOpen:r.chatContextEditorOpen??!1,chatInputCollapsed:r.chatInputCollapsed??!1}}),toggleDockSection:t=>e(e=>{let n=e.dockSection===t?null:t;return{dockSection:n,...h(e,{dockSection:n,inspectorOpen:!n&&e.inspectorOpen}),...n?{inspectorOpen:!1}:{}}}),toggleChipHidden:t=>e(e=>{let n=e.hiddenChips.includes(t),r=!n&&e.dockSection===t?null:e.dockSection;return{hiddenChips:n?e.hiddenChips.filter(e=>e!==t):[...e.hiddenChips,t],dockSection:r,...h(e,{dockSection:r})}}),showDockChip:t=>e(e=>({hiddenChips:e.hiddenChips.filter(e=>e!==t)})),setDockCustomizeOpen:t=>e(e=>({dockCustomizeOpen:t,...h(e,{dockCustomizeOpen:t})})),setAgentRosterActiveTab:t=>e(e=>({agentRosterActiveTab:t,...h(e,{agentRosterActiveTab:t})})),setChangesPanelTab:t=>e(e=>({changesPanelTab:t,...h(e,{changesPanelTab:t})})),setFleetMonitorOpen:t=>e(e=>({fleetMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,...h(e,{inspectorOpen:t?!0:e.inspectorTab!==`fleet`&&e.inspectorOpen,inspectorTab:t?`fleet`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setAgentsMonitorOpen:t=>e(e=>({agentsMonitorOpen:!1,inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,...h(e,{inspectorOpen:t?!0:e.inspectorTab!==`agents`&&e.inspectorOpen,inspectorTab:t?`agents`:e.inspectorTab,dockSection:t?null:e.dockSection}),...t?{dockSection:null}:{}})),setInspectorOpen:t=>e(e=>({inspectorOpen:t,...t?{dockSection:null}:{inspectorTarget:null},...h(e,{inspectorOpen:t,dockSection:t?null:e.dockSection,inspectorTarget:t?e.inspectorTarget:null})})),setInspectorTab:t=>e(e=>({inspectorTab:t,...h(e,{inspectorTab:t})})),openInspectorTarget:t=>e(e=>{let n=e.inspectorTab,r=e.inspectorFocusedAgentId;return t.kind===`fleet`?n=t.tab??`fleet`:t.kind===`agent`?(n=`agents`,r=t.agentId):t.kind===`sideEffects`?n=`sideEffects`:t.kind===`council`&&(n=`council`),{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null,...h(e,{inspectorOpen:!0,inspectorTarget:t,inspectorTab:n,inspectorFocusedAgentId:r,dockSection:null})}}),closeInspector:()=>e(e=>({inspectorOpen:!1,inspectorTarget:null,...h(e,{inspectorOpen:!1,inspectorTarget:null})})),setInspectorFocusedAgentId:t=>e(e=>({inspectorFocusedAgentId:t,...h(e,{inspectorFocusedAgentId:t})})),setSubagentChatFocus:(t,n)=>e(e=>({subagentChatFocusId:t,subagentChatFocusSessionId:(n===``?null:n)??e.chromeSessionId??e.subagentChatFocusSessionId??null})),forgetSession:t=>e(e=>{let n=e.subagentChatFocusSessionId===t,r=t in e.chromeBySession||e.chromeSessionId===t;if(!n&&!r)return e;let i={...e.chromeBySession};delete i[t];let a=e.subagentChatFocusSessionId===t,o=e.chromeSessionId===t;return{chromeBySession:i,...a?{subagentChatFocusId:null,subagentChatFocusSessionId:null}:{},...o?{chromeSessionId:null,...p()}:{}}}),toggleInspector:()=>e(e=>{let t=!e.inspectorOpen,n=t?null:e.dockSection;return{inspectorOpen:t,dockSection:n,...h(e,{inspectorOpen:t,dockSection:n})}}),setProcessMonitorOpen:t=>e(e=>({processMonitorOpen:t,...h(e,{processMonitorOpen:t})})),setQueuePanelOpen:t=>e(e=>({queuePanelOpen:t,...h(e,{queuePanelOpen:t})})),setCronJobsOpen:t=>e(e=>({cronJobsOpen:t,...h(e,{cronJobsOpen:t})})),setInspectSession:t=>e(e=>({inspectSessionId:t,currentView:`session-inspect`,...h(e,{inspectSessionId:t,currentView:`session-inspect`})})),clearInspectSession:()=>e(e=>({inspectSessionId:null,currentView:`chat`,...h(e,{inspectSessionId:null,currentView:`chat`})})),setTerminalOpen:t=>e(e=>({terminalOpen:t,...h(e,{terminalOpen:t})})),toggleTerminal:()=>e(e=>{let t=!e.terminalOpen;return{terminalOpen:t,...h(e,{terminalOpen:t})}}),requestTerminalCreate:()=>e(e=>({terminalCreateNonce:e.terminalCreateNonce+1})),setSettingsActiveTab:t=>e({settingsActiveTab:l(t)}),setScrollPosition:(t,n)=>e(e=>{let r={...e.scrollPositions,[t]:n};return{scrollPositions:r,...h(e,{scrollPositions:r})}}),setActivityBarOrder:t=>e({activityBarOrder:t}),setDraftInput:t=>e(e=>({draftInput:t,...h(e,{draftInput:t})})),setDraftImages:t=>e(e=>{let n=t.slice(-8);return{draftImages:n,...h(e,{draftImages:n})}}),setSideContextBreakdownOpen:t=>e(e=>({sideContextBreakdownOpen:t,...h(e,{sideContextBreakdownOpen:t})})),setChatSwitcherOpen:t=>e(e=>({chatSwitcherOpen:t,...h(e,{chatSwitcherOpen:t})})),setChatCheckpointOpen:t=>e(e=>({chatCheckpointOpen:t,...h(e,{chatCheckpointOpen:t})})),setChatMemoryPanelOpen:t=>e(e=>({chatMemoryPanelOpen:t,...h(e,{chatMemoryPanelOpen:t})})),setChatContextBreakdownOpen:t=>e(e=>({chatContextBreakdownOpen:t,...h(e,{chatContextBreakdownOpen:t})})),setChatToolStatsOpen:t=>e(e=>({chatToolStatsOpen:t,...h(e,{chatToolStatsOpen:t})})),setChatContextEditorOpen:t=>e(e=>({chatContextEditorOpen:t,...h(e,{chatContextEditorOpen:t})})),setChatInputCollapsed:t=>e(e=>({chatInputCollapsed:t,...h(e,{chatInputCollapsed:t})})),setSkillsState:t=>e(e=>({skillsState:t,...h(e,{skillsState:t})})),setSelectedMailMessage:t=>e(e=>({selectedMailMessage:t,...h(e,{selectedMailMessage:t})}))}),g));function j(e={}){A.setState(d(e))}export{k as a,O as i,A as n,b as r,j as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./mailbox-store-ZQO_Rv6E.js";import{n as t}from"./ui-store-
|
|
1
|
+
import{i as e}from"./mailbox-store-ZQO_Rv6E.js";import{n as t}from"./ui-store-DxDwFHNK.js";var n=(()=>{try{if(typeof navigator>`u`)return!1;let e=navigator.userAgentData?.platform??navigator.platform??``;return/mac|iphone|ipad|ipod/i.test(e)}catch{return!1}})(),r=n?`⌘`:`Ctrl`,i=n?`⌥`:`Alt`,a=n?`⇧`:`Shift`;function o(e){switch(e){case`Ctrl`:return r;case`Alt`:return i;case`Shift`:return a;default:return e}}var s={chat:`chat`,agents:`chat`,files:`files`,changes:`changes`,mailbox:`mailbox`,skills:`skill`,design:`design-gallery`},c={chat:`chat`,files:`files`,changes:`changes`,mailbox:`mailbox`,skill:`skills`,"design-gallery":`design`},l={1:`chat`,2:`files`,3:`changes`,4:`mailbox`,5:`skills`,0:`design`},u=Object.entries(l).reduce((e,[t,n])=>(e[n]=`${r}+${t}`,e),{chat:``,agents:``,files:``,changes:``,mailbox:``,skills:``,design:``});function d(e){return s[e]??`chat`}function f(e){return u[e]??``}function p(e){let n=t.getState();n.currentView!==e&&n.setCurrentView(e)}function m(e){let n=t.getState();n.setSidebarOpen(!0),n.selectActivity(e),p(d(e))}function h(e){let n=t.getState();if(!n.sidebarOpen)n.setSidebarOpen(!0),n.selectActivity(e);else if(n.activeActivity===e){n.setSidebarOpen(!1);return}else n.activeActivity===`agents`&&n.setSidebarOpen(!0),n.selectActivity(e);p(d(e))}function g(e){let n=t.getState();if(n.currentView===e){m(`chat`);return}n.setSidebarOpen(!1),p(e)}function _(n){if(n===`intake`){e.getState().setActiveHubTab(`requirements`),g(`sddhub`);return}let r=c[n];if(r){m(r);return}t.getState().setSidebarOpen(!1),p(n)}export{f as a,h as i,_ as n,m as o,g as r,o as s,l as t};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { WrongStackWebSocketClient } from '@/lib/ws-client';
|
|
2
|
+
export declare function useSkillMentionPicker(input: string, setInput: (text: string) => void, textarea: React.RefObject<HTMLTextAreaElement | null>, client: WrongStackWebSocketClient | null | undefined, sessionId: string | null | undefined): {
|
|
3
|
+
open: boolean;
|
|
4
|
+
popup: import("react").JSX.Element | null;
|
|
5
|
+
onKeyDown: (event: React.KeyboardEvent<HTMLTextAreaElement>) => boolean;
|
|
6
|
+
setCursor: import("react").Dispatch<import("react").SetStateAction<number>>;
|
|
7
|
+
listId: string;
|
|
8
|
+
activeId: string | undefined;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=skill-mention-picker.d.ts.map
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OfficeMapCanvas — React Flow canvas with real-time office environment visualization.
|
|
3
|
-
*
|
|
4
|
-
* Displays all connected clients (WebUI, TUI, REPL, etc.) as nodes in an office floor plan.
|
|
5
|
-
* Shows live status (mail read, mail sent, idle, active, error) with animated wire connections.
|
|
6
|
-
* Uses viz store for real-time events and fleet store for agent status.
|
|
7
|
-
*/
|
|
8
1
|
import '@xyflow/react/dist/style.css';
|
|
9
2
|
export declare function OfficeMapCanvas(): import("react").JSX.Element;
|
|
10
3
|
//# sourceMappingURL=OfficeMapCanvas.d.ts.map
|
|
@@ -2,6 +2,8 @@ import type { WrongStackWebSocketClient } from '@/lib/ws-client';
|
|
|
2
2
|
/** A saved subscription provider profile as seen by the OAuth section. */
|
|
3
3
|
interface SavedProfileInfo {
|
|
4
4
|
id: string;
|
|
5
|
+
type?: string | undefined;
|
|
6
|
+
family?: string | undefined;
|
|
5
7
|
hasActiveKey: boolean;
|
|
6
8
|
}
|
|
7
9
|
interface OAuthLoginSectionProps {
|
|
@@ -55,19 +55,19 @@ interface ProviderSectionProps {
|
|
|
55
55
|
/** Called when a catalog provider is selected. */
|
|
56
56
|
onSelectProvider: (id: string) => void;
|
|
57
57
|
/** Called to add an API key. */
|
|
58
|
-
onAddKey: (providerId: string, label: string, value: string) => void;
|
|
58
|
+
onAddKey: (providerId: string, label: string, value: string) => Promise<boolean> | void;
|
|
59
59
|
/** Called to delete an API key. */
|
|
60
|
-
onDeleteKey: (providerId: string, label: string) => void;
|
|
60
|
+
onDeleteKey: (providerId: string, label: string) => Promise<boolean> | void;
|
|
61
61
|
/** Called to set a key as active. */
|
|
62
|
-
onSetActiveKey: (providerId: string, label: string) => void;
|
|
62
|
+
onSetActiveKey: (providerId: string, label: string) => Promise<boolean> | void;
|
|
63
63
|
/** Called to add a custom provider. */
|
|
64
64
|
onAddProvider: (id: string, family: string, baseUrl?: string | undefined, apiKey?: string, models?: string[] | undefined, customModels?: Record<string, {
|
|
65
65
|
name?: string | undefined;
|
|
66
66
|
maxOutput?: number | undefined;
|
|
67
67
|
capabilities?: Record<string, unknown> | undefined;
|
|
68
|
-
}> | undefined) => void;
|
|
68
|
+
}> | undefined, providerType?: string | undefined) => Promise<boolean> | void;
|
|
69
69
|
/** Called to remove a saved provider. */
|
|
70
|
-
onRemoveProvider: (providerId: string) => void;
|
|
70
|
+
onRemoveProvider: (providerId: string) => Promise<boolean> | void;
|
|
71
71
|
/** Called when a saved provider model is picked. */
|
|
72
72
|
onPickProviderModel: (providerId: string, modelId: string) => void;
|
|
73
73
|
/** WebSocket client used for saved-provider model probing/clearing. */
|
|
@@ -4,7 +4,7 @@ export type RiskLevel = (typeof RISK_LEVELS)[number];
|
|
|
4
4
|
export declare const RISK_COLORS: Record<RiskLevel, string>;
|
|
5
5
|
export declare const RISK_COPY: Record<RiskLevel, string>;
|
|
6
6
|
/** One entry of the lens picker. */
|
|
7
|
-
interface CouncilPersonaOption {
|
|
7
|
+
export interface CouncilPersonaOption {
|
|
8
8
|
id: string;
|
|
9
9
|
name: string;
|
|
10
10
|
description?: string | undefined;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { BrainConfigPatchWire, BrainConfigWire, BrainCouncilVoterWire } from '@/types';
|
|
2
|
+
import { type PickTarget, type RiskLevel } from './brain-section-options';
|
|
3
|
+
export declare function useBrainSection(): {
|
|
4
|
+
pickTarget: PickTarget;
|
|
5
|
+
t: import("i18next").TFunction<"translation", undefined>;
|
|
6
|
+
handleModelPicked: (candidate: {
|
|
7
|
+
provider: string;
|
|
8
|
+
model: string;
|
|
9
|
+
}) => boolean | undefined;
|
|
10
|
+
setPickTarget: import("react").Dispatch<import("react").SetStateAction<PickTarget>>;
|
|
11
|
+
loading: boolean;
|
|
12
|
+
busy: boolean;
|
|
13
|
+
persistError: string | null;
|
|
14
|
+
riskLevel: "all" | "high" | "low" | "medium" | "off";
|
|
15
|
+
handleRiskChange: (level: RiskLevel) => void;
|
|
16
|
+
config: BrainConfigWire | null;
|
|
17
|
+
sendPatch: (patch: BrainConfigPatchWire) => void;
|
|
18
|
+
voters: BrainCouncilVoterWire[];
|
|
19
|
+
personaOptions: import("./brain-section-options").CouncilPersonaOption[];
|
|
20
|
+
setVoters: (next: BrainCouncilVoterWire[]) => void;
|
|
21
|
+
log: {
|
|
22
|
+
kind: string;
|
|
23
|
+
question: string;
|
|
24
|
+
outcome: string;
|
|
25
|
+
age: string;
|
|
26
|
+
}[];
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=use-brain-section.d.ts.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SkillDetailView — displays the selected skill's content in the main content area.
|
|
3
3
|
* Shown when currentView === 'skill'.
|
|
4
4
|
*/
|
|
5
|
-
export declare function SkillDetailView(
|
|
5
|
+
export declare function SkillDetailView(props0: {
|
|
6
6
|
className?: string;
|
|
7
7
|
}): import("react").JSX.Element;
|
|
8
8
|
//# sourceMappingURL=SkillDetailView.d.ts.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { ChronicleEventView, ChronicleGraphResult, ChronicleSummary } from '@/types';
|
|
2
|
+
export type Health = {
|
|
3
|
+
eventLoop?: {
|
|
4
|
+
utilization?: number;
|
|
5
|
+
delayP95Ms?: number;
|
|
6
|
+
};
|
|
7
|
+
memory?: {
|
|
8
|
+
heapUsedBytes?: number;
|
|
9
|
+
};
|
|
10
|
+
chronicle?: {
|
|
11
|
+
pendingEvents?: number;
|
|
12
|
+
rejectedEvents?: number;
|
|
13
|
+
largestBatch?: number;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare const emptySummary: ChronicleSummary;
|
|
17
|
+
export declare function signalTotal(summary: ChronicleSummary, signal: Signal, total: number): number;
|
|
18
|
+
export declare function cacheRatio(summary: ChronicleSummary): number;
|
|
19
|
+
export declare function matchesSignal(event: ChronicleEventView, signal: Signal): boolean;
|
|
20
|
+
export declare function formatMilliseconds(ms: number): string;
|
|
21
|
+
export declare function Field({ placeholder, value, onChange, onEnter, icon, }: {
|
|
22
|
+
placeholder: string;
|
|
23
|
+
value: string;
|
|
24
|
+
onChange: (v: string) => void;
|
|
25
|
+
onEnter: () => void;
|
|
26
|
+
icon?: React.ReactNode;
|
|
27
|
+
}): import("react").JSX.Element;
|
|
28
|
+
export declare function Insight({ icon, label, value, detail, tone, }: {
|
|
29
|
+
icon: React.ReactNode;
|
|
30
|
+
label: string;
|
|
31
|
+
value: number | string;
|
|
32
|
+
detail: string;
|
|
33
|
+
tone?: 'normal' | 'danger';
|
|
34
|
+
}): import("react").JSX.Element;
|
|
35
|
+
export declare function RuntimeStrip({ health }: {
|
|
36
|
+
health: Health;
|
|
37
|
+
}): import("react").JSX.Element;
|
|
38
|
+
export declare function EventRow({ event, active, onClick, }: {
|
|
39
|
+
event: ChronicleEventView;
|
|
40
|
+
active: boolean;
|
|
41
|
+
onClick: () => void;
|
|
42
|
+
}): import("react").JSX.Element;
|
|
43
|
+
export declare function Detail({ event, graph, }: {
|
|
44
|
+
event: ChronicleEventView;
|
|
45
|
+
graph: ChronicleGraphResult | null;
|
|
46
|
+
}): import("react").JSX.Element;
|
|
47
|
+
export declare function Empty({ text }: {
|
|
48
|
+
text: string;
|
|
49
|
+
}): import("react").JSX.Element;
|
|
50
|
+
export type Signal = 'all' | 'llm' | 'agents' | 'tools' | 'files' | 'failures';
|
|
51
|
+
//# sourceMappingURL=chronicle-event-detail.d.ts.map
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { SubagentView } from '@/stores';
|
|
2
|
+
export interface ContextDebugPayload {
|
|
3
|
+
total: number;
|
|
4
|
+
mode?: string | undefined;
|
|
5
|
+
policy?: unknown | undefined;
|
|
6
|
+
systemPrompt: number;
|
|
7
|
+
tools: {
|
|
8
|
+
total: number;
|
|
9
|
+
count: number;
|
|
10
|
+
breakdown: Array<{
|
|
11
|
+
name: string;
|
|
12
|
+
tokens: number;
|
|
13
|
+
}>;
|
|
14
|
+
};
|
|
15
|
+
messages: {
|
|
16
|
+
total: number;
|
|
17
|
+
count: number;
|
|
18
|
+
breakdown: Array<{
|
|
19
|
+
index: number;
|
|
20
|
+
role: string;
|
|
21
|
+
tokens: number;
|
|
22
|
+
preview: string;
|
|
23
|
+
}>;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
interface ZoneConfig {
|
|
27
|
+
labelKey: string;
|
|
28
|
+
emoji: string;
|
|
29
|
+
color: string;
|
|
30
|
+
bg: string;
|
|
31
|
+
text: string;
|
|
32
|
+
cssColor: string;
|
|
33
|
+
from: number;
|
|
34
|
+
to: number;
|
|
35
|
+
descKey: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function zoneFor(pct: number): ZoneConfig;
|
|
38
|
+
export declare function fmtDuration(startedAt: number | null): string;
|
|
39
|
+
export declare function PressureSection({ pct, tokens, maxTokens, }: {
|
|
40
|
+
pct: number;
|
|
41
|
+
tokens: number;
|
|
42
|
+
maxTokens: number;
|
|
43
|
+
}): import("react").JSX.Element;
|
|
44
|
+
export declare function CompositionSection({ data, loading, }: {
|
|
45
|
+
data: ContextDebugPayload | null;
|
|
46
|
+
loading: boolean;
|
|
47
|
+
}): import("react").JSX.Element;
|
|
48
|
+
export declare function ThresholdSection({ pct }: {
|
|
49
|
+
pct: number;
|
|
50
|
+
}): import("react").JSX.Element;
|
|
51
|
+
export declare function CompactionSection({ pct, maxTokens }: {
|
|
52
|
+
pct: number;
|
|
53
|
+
maxTokens: number;
|
|
54
|
+
}): import("react").JSX.Element;
|
|
55
|
+
export declare function AgentFootprintSection({ agents }: {
|
|
56
|
+
agents: SubagentView[];
|
|
57
|
+
}): import("react").JSX.Element | null;
|
|
58
|
+
export declare function MetricsSection({ tokens, maxTokens, pct, model, provider, mode, uptime, iteration, contextMode, }: {
|
|
59
|
+
tokens: number;
|
|
60
|
+
maxTokens: number;
|
|
61
|
+
pct: number;
|
|
62
|
+
model: string;
|
|
63
|
+
provider: string;
|
|
64
|
+
mode: string;
|
|
65
|
+
uptime: string;
|
|
66
|
+
iteration: string;
|
|
67
|
+
contextMode: string;
|
|
68
|
+
}): import("react").JSX.Element;
|
|
69
|
+
export declare function SessionSection({ model, provider, mode, uptime, projectName, cwd, contextMode, }: {
|
|
70
|
+
model: string;
|
|
71
|
+
provider: string;
|
|
72
|
+
mode: string;
|
|
73
|
+
uptime: string;
|
|
74
|
+
projectName: string;
|
|
75
|
+
cwd: string;
|
|
76
|
+
contextMode: string;
|
|
77
|
+
}): import("react").JSX.Element;
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=context-dashboard-sections.d.ts.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type Connection, type Edge, type Node } from '@xyflow/react';
|
|
2
|
+
import '@xyflow/react/dist/style.css';
|
|
3
|
+
import { type OfficeNodeData } from './OfficeMapCanvas/utils.js';
|
|
4
|
+
export declare function useOfficeMapCanvas(): {
|
|
5
|
+
canvasRef: import("react").RefObject<HTMLDivElement | null>;
|
|
6
|
+
showHud: boolean;
|
|
7
|
+
t: import("i18next").TFunction<"translation", undefined>;
|
|
8
|
+
showLegend: boolean;
|
|
9
|
+
nodes: Node<OfficeNodeData>[];
|
|
10
|
+
edges: Edge[];
|
|
11
|
+
onNodesChange: import("@xyflow/react").OnNodesChange<Node<OfficeNodeData>>;
|
|
12
|
+
onEdgesChange: import("@xyflow/react").OnEdgesChange<Edge>;
|
|
13
|
+
onConnect: (params: Connection) => void;
|
|
14
|
+
onNodeClick: (_: React.MouseEvent, node: Node) => void;
|
|
15
|
+
onPaneClick: () => void;
|
|
16
|
+
broadcastOpen: boolean;
|
|
17
|
+
onArrange: () => void;
|
|
18
|
+
setBroadcastOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
19
|
+
setShowFeed: (v: boolean) => void;
|
|
20
|
+
showFeed: boolean;
|
|
21
|
+
background: import("@/stores").BackgroundStyle;
|
|
22
|
+
showControls: boolean;
|
|
23
|
+
showMinimap: boolean;
|
|
24
|
+
vizEvents: import("@/stores").VizEvent[];
|
|
25
|
+
broadcastDraft: string;
|
|
26
|
+
broadcasting: boolean;
|
|
27
|
+
broadcastResult: string | null;
|
|
28
|
+
setBroadcastDraft: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
29
|
+
sendBroadcast: () => Promise<void>;
|
|
30
|
+
selectedNode: Node<OfficeNodeData> | null;
|
|
31
|
+
selectedAgentTranscript: import("@/stores").AgentTranscriptEntry[];
|
|
32
|
+
mailboxMessages: import("@/stores").MailboxMessage[];
|
|
33
|
+
setWatch: import("react").Dispatch<import("react").SetStateAction<{
|
|
34
|
+
sessionId: string;
|
|
35
|
+
label: string;
|
|
36
|
+
} | null>>;
|
|
37
|
+
watch: {
|
|
38
|
+
sessionId: string;
|
|
39
|
+
label: string;
|
|
40
|
+
} | null;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=use-office-map-canvas.d.ts.map
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
export declare function useSkillDetail({ className }: {
|
|
2
|
+
className?: string;
|
|
3
|
+
}): {
|
|
4
|
+
selectedSkill: {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
version: string;
|
|
8
|
+
source: string;
|
|
9
|
+
sourceUrl: string;
|
|
10
|
+
ref: string;
|
|
11
|
+
path: string;
|
|
12
|
+
trigger: string;
|
|
13
|
+
scope: string[];
|
|
14
|
+
} | null;
|
|
15
|
+
t: import("i18next").TFunction<"translation", undefined>;
|
|
16
|
+
handleClose: () => void;
|
|
17
|
+
className: string | undefined;
|
|
18
|
+
handleCopySourceUrl: () => void;
|
|
19
|
+
copiedSourceUrl: boolean;
|
|
20
|
+
updateResult: {
|
|
21
|
+
updated: Array<{
|
|
22
|
+
name: string;
|
|
23
|
+
oldRef: string;
|
|
24
|
+
newRef: string;
|
|
25
|
+
}>;
|
|
26
|
+
unchanged: string[];
|
|
27
|
+
errors: Array<{
|
|
28
|
+
name: string;
|
|
29
|
+
error: string;
|
|
30
|
+
}>;
|
|
31
|
+
} | null;
|
|
32
|
+
handleCheckForUpdates: () => void;
|
|
33
|
+
checkingForUpdates: boolean;
|
|
34
|
+
editMode: boolean;
|
|
35
|
+
handleExportSkill: () => void;
|
|
36
|
+
handleStartEdit: () => void;
|
|
37
|
+
setUninstallConfirmSkill: import("react").Dispatch<import("react").SetStateAction<{
|
|
38
|
+
name: string;
|
|
39
|
+
description: string;
|
|
40
|
+
version: string;
|
|
41
|
+
source: string;
|
|
42
|
+
sourceUrl: string;
|
|
43
|
+
ref: string;
|
|
44
|
+
path: string;
|
|
45
|
+
trigger: string;
|
|
46
|
+
scope: string[];
|
|
47
|
+
} | null>>;
|
|
48
|
+
navHistory: {
|
|
49
|
+
name: string;
|
|
50
|
+
description: string;
|
|
51
|
+
version: string;
|
|
52
|
+
source: string;
|
|
53
|
+
sourceUrl: string;
|
|
54
|
+
ref: string;
|
|
55
|
+
path: string;
|
|
56
|
+
trigger: string;
|
|
57
|
+
scope: string[];
|
|
58
|
+
}[];
|
|
59
|
+
handleBreadcrumbBack: () => void;
|
|
60
|
+
historyIndex: number;
|
|
61
|
+
handleBreadcrumbForward: () => void;
|
|
62
|
+
isNavigatingBack: import("react").RefObject<boolean>;
|
|
63
|
+
setSkillsState: (state: import("@/stores/ui-store").UIState['skillsState']) => void;
|
|
64
|
+
skillsStateRef: import("react").RefObject<{
|
|
65
|
+
selectedSkill: {
|
|
66
|
+
name: string;
|
|
67
|
+
description: string;
|
|
68
|
+
version: string;
|
|
69
|
+
source: string;
|
|
70
|
+
sourceUrl: string;
|
|
71
|
+
ref: string;
|
|
72
|
+
path: string;
|
|
73
|
+
trigger: string;
|
|
74
|
+
scope: string[];
|
|
75
|
+
} | null;
|
|
76
|
+
navHistory: {
|
|
77
|
+
name: string;
|
|
78
|
+
description: string;
|
|
79
|
+
version: string;
|
|
80
|
+
source: string;
|
|
81
|
+
sourceUrl: string;
|
|
82
|
+
ref: string;
|
|
83
|
+
path: string;
|
|
84
|
+
trigger: string;
|
|
85
|
+
scope: string[];
|
|
86
|
+
}[];
|
|
87
|
+
historyIndex: number;
|
|
88
|
+
detailOpen: boolean;
|
|
89
|
+
knownRefs: Record<string, string>;
|
|
90
|
+
updateAvailableCount: number;
|
|
91
|
+
}>;
|
|
92
|
+
setEditMode: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
93
|
+
setEditContent: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
94
|
+
setUpdateResult: import("react").Dispatch<import("react").SetStateAction<{
|
|
95
|
+
updated: Array<{
|
|
96
|
+
name: string;
|
|
97
|
+
oldRef: string;
|
|
98
|
+
newRef: string;
|
|
99
|
+
}>;
|
|
100
|
+
unchanged: string[];
|
|
101
|
+
errors: Array<{
|
|
102
|
+
name: string;
|
|
103
|
+
error: string;
|
|
104
|
+
}>;
|
|
105
|
+
} | null>>;
|
|
106
|
+
skillContent: SkillContent | null;
|
|
107
|
+
findSkillByName: (name: string) => {
|
|
108
|
+
name: string;
|
|
109
|
+
description: string;
|
|
110
|
+
version: string;
|
|
111
|
+
source: string;
|
|
112
|
+
sourceUrl: string;
|
|
113
|
+
ref: string;
|
|
114
|
+
path: string;
|
|
115
|
+
trigger: string;
|
|
116
|
+
scope: string[];
|
|
117
|
+
} | undefined;
|
|
118
|
+
handleNavigateToSkill: (name: string) => void;
|
|
119
|
+
contentLoading: boolean;
|
|
120
|
+
editStats: {
|
|
121
|
+
lines: number;
|
|
122
|
+
words: number;
|
|
123
|
+
chars: number;
|
|
124
|
+
};
|
|
125
|
+
charsWarning: {
|
|
126
|
+
level: 'warn' | 'critical';
|
|
127
|
+
used: number;
|
|
128
|
+
limit: number;
|
|
129
|
+
} | null;
|
|
130
|
+
draftSavedAt: number | null;
|
|
131
|
+
draftRestored: boolean;
|
|
132
|
+
editError: string | null;
|
|
133
|
+
handleDiscardDraft: () => void;
|
|
134
|
+
handleCancelEdit: () => void;
|
|
135
|
+
setSplitPreview: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
136
|
+
splitPreview: boolean;
|
|
137
|
+
handleSaveEdit: () => void;
|
|
138
|
+
editSaving: boolean;
|
|
139
|
+
editContent: string;
|
|
140
|
+
skillScrollRef: import("react").RefObject<HTMLDivElement | null>;
|
|
141
|
+
contentError: string | null;
|
|
142
|
+
client: import("../lib").WrongStackWebSocketClient;
|
|
143
|
+
setContentLoading: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
144
|
+
setContentError: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
145
|
+
uninstallConfirmSkill: {
|
|
146
|
+
name: string;
|
|
147
|
+
description: string;
|
|
148
|
+
version: string;
|
|
149
|
+
source: string;
|
|
150
|
+
sourceUrl: string;
|
|
151
|
+
ref: string;
|
|
152
|
+
path: string;
|
|
153
|
+
trigger: string;
|
|
154
|
+
scope: string[];
|
|
155
|
+
} | null;
|
|
156
|
+
uninstalling: boolean;
|
|
157
|
+
handleUninstallSkill: (skill: {
|
|
158
|
+
name: string;
|
|
159
|
+
description: string;
|
|
160
|
+
version: string;
|
|
161
|
+
source: string;
|
|
162
|
+
sourceUrl: string;
|
|
163
|
+
ref: string;
|
|
164
|
+
path: string;
|
|
165
|
+
trigger: string;
|
|
166
|
+
scope: string[];
|
|
167
|
+
} | null) => Promise<void>;
|
|
168
|
+
};
|
|
169
|
+
export interface SkillContent {
|
|
170
|
+
name: string;
|
|
171
|
+
body: string;
|
|
172
|
+
path: string;
|
|
173
|
+
source: string;
|
|
174
|
+
relatedFiles: string[];
|
|
175
|
+
references: string[];
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=use-skill-detail.d.ts.map
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vector Memory panel — minimal visibility surface for the WebUI.
|
|
3
|
+
*
|
|
4
|
+
* Fetches `/api/vector-memory/status` and `/api/vector-memory/search` to
|
|
5
|
+
* show the active store/provider, model cache location, entry counts, and
|
|
6
|
+
* a search UI with ranked results. When the route is disabled (the
|
|
7
|
+
* webui-server host doesn't wire a vector store), the panel renders a
|
|
8
|
+
* disabled placeholder.
|
|
9
|
+
*/
|
|
1
10
|
interface VectorMemoryCacheStats {
|
|
2
11
|
entries: number;
|
|
3
12
|
providers: number;
|