@wrongstack/webui 0.295.0 → 0.295.1
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/App.d.ts.map +1 -1
- package/dist/assets/AgentRosterView-C7u9H5Jp.js +11 -0
- package/dist/assets/{AnalyticsDashboard-tGlXeqV5.js → AnalyticsDashboard-CZ8KAg7h.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-D45M-Fr6.js → AudienceMemoryPanel-N6ErXDAb.js} +2 -2
- package/dist/assets/{ChangesView-Otr6kwYr.js → ChangesView-fVxtWQ07.js} +1 -1
- package/dist/assets/ChronicleDashboard-C-NQsArq.js +1 -0
- package/dist/assets/CodeEditor-B9k1HwTM.js +1 -0
- package/dist/assets/CodeMap-CZ7wFa8f.js +1 -0
- package/dist/assets/{ConfirmModal-C7H16wDN.js → ConfirmModal-BvW6_eIc.js} +1 -1
- package/dist/assets/{CronJobsPanel-CT6XRgmQ.js → CronJobsPanel-C4zvyecc.js} +1 -1
- package/dist/assets/{DebugDashboard-DZy3VUpn.js → DebugDashboard-Z7ZFkSFX.js} +1 -1
- package/dist/assets/{DesignGalleryView-CQkuFsfj.js → DesignGalleryView-DIsg05FX.js} +1 -1
- package/dist/assets/{GoalView-CTqdYc-z.js → GoalView-pBKJcLBt.js} +1 -1
- package/dist/assets/KanbanView-qzKvGeMx.js +3 -0
- package/dist/assets/{LazyMarkdown-DWlQpo_8.js → LazyMarkdown-Cpjlf6IL.js} +3 -3
- package/dist/assets/MailboxDetailView-BKxA4wf_.js +1 -0
- package/dist/assets/MemoryManager-DO_Z8Scl.js +1 -0
- package/dist/assets/{ModelPicker-fGNsJUXK.js → ModelPicker-DOXb0iz4.js} +1 -1
- package/dist/assets/OfficeMapPanel-BVDeIWuD.js +4 -0
- package/dist/assets/{ProcessMonitor-BtgVvQgx.js → ProcessMonitor-Ci000o1n.js} +1 -1
- package/dist/assets/{QueuePanel-BGSxmdqf.js → QueuePanel-63vvbJOy.js} +1 -1
- package/dist/assets/{RefreshDebugView-B_wCBpFb.js → RefreshDebugView-8Sivo34V.js} +1 -1
- package/dist/assets/SddHub-DW97GpcS.js +2 -0
- package/dist/assets/{SessionsDashboard-DLOhC9JZ.js → SessionsDashboard-DhNaepDJ.js} +1 -1
- package/dist/assets/SetupScreen-BewutFxF.js +1 -0
- package/dist/assets/SkillDetailView-d39kknmg.js +3 -0
- package/dist/assets/{SpecsView-Dh9YG8Id.js → SpecsView-BOp0sUME.js} +1 -1
- package/dist/assets/TechStackView-DfFfTJVR.js +1 -0
- package/dist/assets/{TerminalPanel-3rZfmUfb.js → TerminalPanel-663hC2Jc.js} +1 -1
- package/dist/assets/Toaster-YMBi0Ssd.js +1 -0
- package/dist/assets/activity-3HtRx2SK.js +5 -0
- package/dist/assets/activity-BGlYr63p.js +5 -0
- package/dist/assets/activity-BolwRvqr.js +5 -0
- package/dist/assets/activity-C8BMSvRx.js +5 -0
- package/dist/assets/activity-CM8z-okz.js +5 -0
- package/dist/assets/activity-HfL12UVp.js +5 -0
- package/dist/assets/activity-Xd77MZv_.js +5 -0
- package/dist/assets/{button-GVbauxIJ.js → button-5TIs9T5p.js} +1 -1
- package/dist/assets/{chat-store-BEcTB7SD.js → chat-store-fBghgjNK.js} +2 -2
- package/dist/assets/{codemap-activity-store-DrrI6G7M.js → codemap-activity-store-C5DyqUoZ.js} +1 -1
- package/dist/assets/codemap-index-store-p2tz1Laz.js +1 -0
- package/dist/assets/{dialog-BjPQYovj.js → dialog-BkCs93Vo.js} +1 -1
- package/dist/assets/{empty-state-DJc37Wg1.js → empty-state-DrJ4uVh8.js} +1 -1
- package/dist/assets/{i18n-c37VNlP9.js → i18n-Cjk0Ya0G.js} +2 -2
- package/dist/assets/index-D0zt9ziw.css +1 -0
- package/dist/assets/index-HYvJnpTs.js +126 -0
- package/dist/assets/{input-BVi5hYQz.js → input-dEFwkTqb.js} +1 -1
- package/dist/assets/{mailbox-store-DSvN5ZEo.js → mailbox-store-DC7x_eml.js} +1 -1
- package/dist/assets/progress-ring-CGN0o9DE.js +1 -0
- package/dist/assets/{roster-ws-BD-ATeja.js → roster-ws-GsDcHg-w.js} +1 -1
- package/dist/assets/{session-store-K_ozfq0o.js → session-store-DGtTSpPv.js} +1 -1
- package/dist/assets/{shared-BQ9yQXDx.js → shared-C_yjayIp.js} +1 -1
- package/dist/assets/stores-BSWgxKNz.js +6 -0
- package/dist/assets/{ui-store-DxFtiYFb.js → ui-store-DPNSalc-.js} +1 -1
- package/dist/assets/useWebSocket-BBOEYTRy.js +28 -0
- package/dist/assets/{utils-DvgvNCoT.js → utils-YTsIExHc.js} +1 -1
- package/dist/assets/{vendor-BmsAdDhb.js → vendor-B8C0AAAG.js} +27 -27
- package/dist/assets/{view-navigation-D8lN47bJ.js → view-navigation-CV5XT76I.js} +1 -1
- package/dist/assets/ws-client-Cc6w_0zh.js +1 -0
- package/dist/components/AgentRosterView.d.ts.map +1 -1
- package/dist/components/ChatInput.d.ts.map +1 -1
- package/dist/components/ChronicleDashboard.d.ts.map +1 -1
- package/dist/components/CodeMap.d.ts +6 -0
- package/dist/components/CodeMap.d.ts.map +1 -1
- package/dist/components/ContextDashboard.d.ts.map +1 -1
- package/dist/components/CronTrigger.d.ts +1 -1
- package/dist/components/CronTrigger.d.ts.map +1 -1
- package/dist/components/FileActivityDrawer.d.ts +14 -0
- package/dist/components/FileActivityDrawer.d.ts.map +1 -1
- package/dist/components/FleetMonitor.d.ts.map +1 -1
- package/dist/components/KanbanDecompositionPanel.d.ts +28 -0
- package/dist/components/KanbanDecompositionPanel.d.ts.map +1 -0
- package/dist/components/KanbanTaskTree.d.ts +13 -0
- package/dist/components/KanbanTaskTree.d.ts.map +1 -0
- package/dist/components/KanbanVerificationDashboard.d.ts +12 -0
- package/dist/components/KanbanVerificationDashboard.d.ts.map +1 -0
- package/dist/components/KanbanView.d.ts +17 -1
- package/dist/components/KanbanView.d.ts.map +1 -1
- package/dist/components/OfficeMapCanvas.d.ts.map +1 -1
- package/dist/components/QueuePanel.d.ts.map +1 -1
- package/dist/components/RefinePanel.d.ts +10 -3
- package/dist/components/RefinePanel.d.ts.map +1 -1
- package/dist/components/SddBoardView.d.ts.map +1 -1
- package/dist/components/SddTaskDrawer.d.ts.map +1 -1
- package/dist/components/SearchOverlay.d.ts.map +1 -1
- package/dist/components/SettingsPanel/BrainSection.d.ts.map +1 -1
- package/dist/components/SettingsPanel/ChimeraSettingsPanel.d.ts.map +1 -1
- package/dist/components/SettingsPanel/index.d.ts.map +1 -1
- package/dist/components/SidePanel/AgentsPanel.d.ts.map +1 -1
- package/dist/components/SidePanel/SessionPanel.d.ts.map +1 -1
- package/dist/components/TaskVerificationSection.d.ts +15 -0
- package/dist/components/TaskVerificationSection.d.ts.map +1 -0
- package/dist/components/TechStackView/DependencyDetail.d.ts +2 -1
- package/dist/components/TechStackView/DependencyDetail.d.ts.map +1 -1
- package/dist/components/TechStackView/DependencyTable.d.ts +2 -1
- package/dist/components/TechStackView/DependencyTable.d.ts.map +1 -1
- package/dist/components/TechStackView/index.d.ts.map +1 -1
- package/dist/components/TechStackView/shared.d.ts +37 -4
- package/dist/components/TechStackView/shared.d.ts.map +1 -1
- package/dist/components/activity-bar/index.d.ts.map +1 -1
- package/dist/components/agents/AgentDetailSection.d.ts.map +1 -1
- package/dist/components/agents/AgentRosterCard.d.ts.map +1 -1
- package/dist/components/agents/FleetSummaryBar.d.ts.map +1 -1
- package/dist/components/codemap-model.d.ts +9 -0
- package/dist/components/codemap-model.d.ts.map +1 -1
- package/dist/components/ui/progress-ring.d.ts +10 -0
- package/dist/components/ui/progress-ring.d.ts.map +1 -0
- package/dist/hooks/ws-handlers/session-handlers.d.ts.map +1 -1
- package/dist/hooks/ws-handlers.d.ts.map +1 -1
- package/dist/index.css +7 -7
- package/dist/index.css.map +1 -1
- package/dist/index.html +23 -22
- package/dist/index.js +6176 -4279
- package/dist/index.js.map +4 -4
- package/dist/lib/kanban-verification.d.ts +52 -0
- package/dist/lib/kanban-verification.d.ts.map +1 -0
- package/dist/stores/codemap-index-store.d.ts +9 -0
- package/dist/stores/codemap-index-store.d.ts.map +1 -0
- package/dist/stores/kanban-store.d.ts +4 -0
- package/dist/stores/kanban-store.d.ts.map +1 -1
- package/dist/stores/local-prefs.d.ts.map +1 -1
- package/dist/stores/specs-store.d.ts +4 -0
- package/dist/stores/specs-store.d.ts.map +1 -1
- package/dist/stores/ui-store.d.ts +3 -1
- package/dist/stores/ui-store.d.ts.map +1 -1
- package/dist/types.d.ts +120 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/assets/AgentRosterView-y-MCHghy.js +0 -7
- package/dist/assets/ChronicleDashboard-BvsfI25e.js +0 -1
- package/dist/assets/CodeEditor-DtD0-wwy.js +0 -1
- package/dist/assets/CodeMap-CVmu16Ec.js +0 -1
- package/dist/assets/KanbanView-DryFcAzY.js +0 -3
- package/dist/assets/MailboxDetailView-CsI_6HsE.js +0 -1
- package/dist/assets/MemoryManager-D_bjR09v.js +0 -1
- package/dist/assets/OfficeMapPanel-KRrwpmvi.js +0 -4
- package/dist/assets/SddHub-BryXNdFd.js +0 -2
- package/dist/assets/SetupScreen-DsXgzxA1.js +0 -1
- package/dist/assets/SkillDetailView-ChyQLtrl.js +0 -3
- package/dist/assets/TechStackView-RJGVF44_.js +0 -1
- package/dist/assets/Toaster-BzC_AdG5.js +0 -1
- package/dist/assets/activity-7VmgGy-T.js +0 -5
- package/dist/assets/activity-BzwApar4.js +0 -5
- package/dist/assets/activity-CCUWlVKh.js +0 -5
- package/dist/assets/activity-DAHFiOfU.js +0 -5
- package/dist/assets/activity-DkkpH2Tf.js +0 -5
- package/dist/assets/activity-DqsX-GMs.js +0 -5
- package/dist/assets/activity-t0PmZ94i.js +0 -5
- package/dist/assets/index-196U0qsu.js +0 -125
- package/dist/assets/index-n_-BWskP.css +0 -1
- package/dist/assets/stores-DVhvmaer.js +0 -6
- package/dist/assets/useWebSocket-kb2VPjLc.js +0 -28
- package/dist/assets/ws-client-BydCS6yi.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./ui-store-
|
|
1
|
+
import{n as e}from"./ui-store-DPNSalc-.js";var t={chat:`chat`,agents:`chat`,history:`sessions`,files:`files`,changes:`changes`,mailbox:`mailbox`,skills:`skill`,worktrees:`chat`,design:`design-gallery`,officemap:`officemap`},n={chat:`chat`,files:`files`,changes:`changes`,sessions:`history`,mailbox:`mailbox`,skill:`skills`,officemap:`officemap`,"design-gallery":`design`},r={1:`chat`,2:`agents`,3:`history`,4:`files`,5:`changes`,6:`mailbox`,7:`skills`,8:`officemap`,0:`design`},i={chat:`Ctrl+1`,agents:`Ctrl+2`,history:`Ctrl+3`,files:`Ctrl+4`,changes:`Ctrl+5`,mailbox:`Ctrl+6`,skills:`Ctrl+7`,worktrees:`Ctrl+Shift+W`,design:`Ctrl+0`,officemap:`Ctrl+8`};function a(e){return t[e]??`chat`}function o(e){return i[e]??``}function s(t){let n=e.getState();n.currentView!==t&&n.setCurrentView(t)}function c(t){let n=e.getState();n.setSidebarOpen(!0),n.selectActivity(t),s(a(t))}function l(t){let n=e.getState();if(!n.sidebarOpen)n.setSidebarOpen(!0),n.selectActivity(t);else if(n.activeActivity===t){n.setSidebarOpen(!1);return}else if(n.activeActivity===`agents`){n.setSidebarOpen(!1);return}else n.selectActivity(t);s(a(t))}function u(t){let n=e.getState();if(n.currentView===t){c(`chat`);return}n.setSidebarOpen(!1),s(t)}function d(t){let r=n[t];if(r){c(r);return}e.getState().setSidebarOpen(!1),s(t)}export{a,l as i,d as n,o,u as r,c as s,r as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-QTnfLwEv.js";import{ua as t}from"./vendor-B8C0AAAG.js";import{n}from"./utils-YTsIExHc.js";import{t as r}from"./session-store-DGtTSpPv.js";function i(e){typeof requestAnimationFrame==`function`?requestAnimationFrame(e):queueMicrotask(e)}var a=new class{pending=new Map;scheduled=!1;push(e,t,n){if(!t)return;let r=this.pending.get(e);r?(r.buffer+=t,r.flush=n):this.pending.set(e,{buffer:t,flush:n}),this.schedule()}schedule(){this.scheduled||(this.scheduled=!0,i(()=>{this.scheduled=!1,this.drain()}))}drain(){if(this.pending.size===0)return;let e=Array.from(this.pending.entries());this.pending.clear();for(let[t,n]of e)n.buffer&&n.flush(t,n.buffer)}drop(e){this.pending.delete(e)}dropAll(){this.pending.clear()}flush(e){let t=this.pending.get(e);t&&(this.pending.delete(e),t.buffer&&t.flush(e,t.buffer))}flushAll(){this.drain()}},o={maxReconnectAttempts:10,initialBackoffMs:1e3,maxBackoffMs:3e4,backoffMultiplier:2,jitterRatio:0,queueLimit:1e3,heartbeatIntervalMs:0,heartbeatTimeoutMs:0};function s(){return{phase:`idle`,reconnectAttempt:0,lastActivityAt:null,stopped:!1}}function c(e){return e.stopped?e:{...e,phase:`connecting`}}function l(e,t=Date.now()){return{...e,phase:`open`,reconnectAttempt:0,lastActivityAt:t,stopped:!1}}function u(e,t=Date.now()){return{...e,lastActivityAt:t}}function d(e){return{...e,phase:`closed`,stopped:!0}}function f(e){return{...e,phase:`idle`,reconnectAttempt:0,stopped:!1}}function p(e,t,n=Date.now(),r=Math.random){if(e.stopped||e.reconnectAttempt>=t.maxReconnectAttempts)return{state:{...e,phase:`closed`},plan:null};let i=e.reconnectAttempt+1,a=Math.min(t.initialBackoffMs*t.backoffMultiplier**(i-1),t.maxBackoffMs),o=(r()*2-1)*t.jitterRatio,s=Math.max(0,Math.round(a*(1+o)));return{state:{...e,phase:`reconnecting`,reconnectAttempt:i},plan:{attempt:i,delayMs:s,retryAt:n+s}}}function m(e,t,n){return n<=0?{queue:[],dropped:t}:e.length<n?{queue:[...e,t],dropped:null}:{queue:[...e.slice(e.length-n+1),t],dropped:e[0]??null}}var h=`abort,ping,user_message,tool.confirm_result,completion.request,model.switch,model.refine,autonomy.switch,context.clear,context.compact,context.debug,context.mode.create,context.mode.delete,context.mode.switch,context.mode.update,context.modes.list,context.repair,mode.switch,modes.list,session.checkpoints,session.delete,session.new,session.rename,session.resume,session.rewind,session.save,sessions.list,side_effects.list,stats.get,todo.update,todos.clear,todos.get,todos.remove`.split(`,`),g=[`collab.join`,`collab.leave`,`collab.annotate`,`collab.resolve`,`collab.request_pause`,`collab.resume`,`collab.grant_control`,`collab.inject_tool`,`mailbox.agents`,`mailbox.clear`,`mailbox.compact`,`mailbox.messages`,`mailbox.purge`,`mailbox.send`],_=`brain.ask,brain.config.get,brain.config.set,brain.risk,brain.status,chronicle.facet,chronicle.facets,chronicle.graph,chronicle.metrics,chronicle.query,config.doctor,design.list,design.materialize,design.set,design.state,design.swap,design.tune,design.use,design.verify,memory.list,memory.sage.backfillRecoverable,memory.sage.candidateResolve,memory.sage.delete,memory.sage.forFile,memory.sage.get,memory.sage.graph,memory.sage.list,memory.sage.listPage,memory.sage.recover,memory.sage.remember,memory.sage.update`.split(`,`),v=`auth.oauth.cancel,auth.oauth.code,auth.oauth.start,mcp.add,mcp.disable,mcp.discover,mcp.enable,mcp.list,mcp.prompt.get,mcp.prompts,mcp.remove,mcp.resource.read,mcp.resources,mcp.restart,mcp.sleep,mcp.update,mcp.wake,prompts.content,prompts.create,prompts.favorite,prompts.list,prompts.recent,prompts.search,prompts.used,skills.content,skills.create,skills.edit,skills.export,skills.install,skills.list,skills.uninstall,skills.update`.split(`,`),ee=`goal-state.get,goal.addTask,goal.assignTask,goal.clear,goal.get,goal.list,goal.load,goal.moveTask,goal.pause,goal.resume,goal.retryTask,goal.revert,goal.runTask,goal.save,goal.selectPhase,goal.start,goal.state,goal.status,goal.stop,goal.taskStatus,goal.toggleAutonomous,plan.get,plan.item.update,plan.template_use,task.update,tasks.get`.split(`,`),te=[`sdd.board.cancel_task`,`sdd.board.cleanup_worktrees`,`sdd.board.delete_task`,`sdd.board.destroy`,`sdd.board.get`,`sdd.board.list`,`sdd.board.pause`,`sdd.board.reassign`,`sdd.board.resume`,`sdd.board.retry`,`sdd.board.retry_all_failed`,`sdd.board.rollback`,`sdd.board.set_task_fallbacks`,`sdd.board.set_task_model`,`sdd.board.set_task_verification`,`sdd.board.split_task`,`sdd.board.stop`,`sdd.run.start`,`sdd.spec.approve`,`sdd.spec.get`,`sdd.spec.message`,`sdd.spec.start`,`specs.get`,`specs.list`,`specs.taskStatus`],ne=[`files.list`,`files.read`,`files.tree`,`files.write`,`git.changes`,`git.diff`,`git.info`,`projects.add`,`projects.list`,`projects.select`,`working_dir.set`,`worktree.cleanup`,`worktree.diff`,`worktree.merge`,`worktree.remove`,`worktree.scan`,`shell.open`,`process.kill`,`process.killAll`,`process.list`,`terminal.close`,`terminal.create`,`terminal.input`,`terminal.resize`],y=[`diag.get`,`key.add`,`key.delete`,`key.set_active`,`key.update`,`prefs.get`,`prefs.update`,`provider.add`,`provider.clear_models`,`provider.models`,`provider.probe`,`provider.remove`,`provider.undo_clear`,`provider.update`,`providers.list`,`providers.saved`,`tool.disable`,`tool.enable`,`tools.list`,`webui.shutdown`],re=`error,log,pong,side_effects,agent.status_changed,agent.timeline.message,client.status_update,compaction.failed,completion.result,context.compacted,context.debug,context.mode.changed,context.modes.list,context.repaired,ctx.max_context,ctx.pct,delegate.completed,delegate.started,iteration.completed,iteration.limit_reached,iteration.started,model.refine_result,modes.list,provider.active_blocked,provider.error,provider.fallback,provider.response,provider.retry,provider.status_changed,provider.stream_error,provider.text_delta,provider.thinking_delta,run.result,session.checkpoints,session.damaged,session.end,session.rewound,session.start,session.stats,sessions.list,sessions.status_update,stats.get,token.cost_estimate_unavailable,token.threshold,tool.confirm_needed,tool.disabled,tool.enabled,tool.executed,tool.loop_detected,tool.progress,tool.started,tools.list,trust.persisted`.split(`,`),ie=[`collab.annotation.added`,`collab.annotation.resolved`,`collab.event`,`collab.injection.granted`,`collab.participant.joined`,`collab.participant.left`,`collab.pause.granted`,`collab.pause.released`,`collab.state`,`mailbox.agent_registered`,`mailbox.agents`,`mailbox.cleared`,`mailbox.compacted`,`mailbox.event`,`mailbox.messages`,`mailbox.sent`,`mailbox.purged`,`mailbox.received`,`subagent.budget_extended`,`subagent.event`],ae=`brain.answer,brain.config,brain.event,brain.status,chronicle.error,chronicle.facet_result,chronicle.facets_result,chronicle.graph_result,chronicle.metrics_result,chronicle.query_result,config.doctor.result,design.list,design.materialize,design.set,design.state,design.swap,design.tune,design.use,design.verify,memory.event,memory.list,memory.sage.backfillRecoverable,memory.sage.candidateResolve,memory.sage.delete,memory.sage.forFile,memory.sage.get,memory.sage.graph,memory.sage.list,memory.sage.listPage,memory.sage.recover,memory.sage.remember,memory.sage.update`.split(`,`),oe=`mcp.content.error,mcp.content.selected,mcp.list,mcp.operation_result,mcp.prompts,mcp.resources,mcp.server.added,mcp.server.connected,mcp.server.disconnected,mcp.server.discovered,mcp.server.error,mcp.server.reconnected,mcp.server.removed,mcp.server.sleeping,mcp.server.updated,mcp.server.waking,prompts.content,prompts.created,prompts.favorite,prompts.list,prompts.recent,prompts.search,prompts.used,skills.content,skills.created,skills.edited,skills.exported,skills.installed,skills.list,skills.uninstalled,skills.updated`.split(`,`),se=`budget.decision,budget.threshold_reached,coordinator.stats,coordinator.status,eternal.iteration,fleet.concurrency_update,goal-state.updated,goal.list,goal.paused,goal.resumed,goal.saved,goal.error,goal.stopped,goal.failed,goal.completed,goal.cleared,goal.reverted,goal.progress,goal.state,in_flight.ended,in_flight.started,plan.updated,task.completed,task.failed,task.pending,task.started,tasks.updated,todos.cleared,todos.updated`.split(`,`),ce=[`kanban.task.activity`,`sdd.board.lifecycle_result`,`sdd.board.list`,`sdd.board.snapshot`,`sdd.run.started`,`sdd.spec.agent_text`,`sdd.spec.error`,`sdd.spec.snapshot`,`specs.detail`,`specs.list`],le=[`consensus.vote_cast`,`consensus.vote_initiated`,`consensus.vote_resolved`,`cron.job_fired`,`cron.snapshot`,`techstack.job.cancelled`,`techstack.job.failed`,`techstack.job.progress`,`techstack.job.started`,`techstack.report.delivered`,`techstack.report.ready`,`techstack.snapshot.updated`,`techstack.workspace.completed`],ue=`checkpoint.written,codemap.file_event,codemap.index_updated,codemap.tool_executed,codemap.tool_started,file.saved,files.list,files.read,files.tree,files.written,git.changes,git.diff,git.info,process.list,projects.added,projects.list,projects.selected,terminal.exit,terminal.output,working_dir.changed,worktree.cleanup_result,worktree.diff_result,worktree.event,worktree.merge_result,worktree.orphans,worktree.state`.split(`,`),de=[`auth.oauth.status`,`diag.get`,`key.operation_result`,`prefs.updated`,`provider.catalog`,`provider.models`,`provider.probe`,`providers.saved`],fe=[...h,...g,...ne,...y,...ee,...te,..._,...v],b=[...re,...ie,...ue,...de,...se,...ce,...le,...ae,...oe],pe=new Set(fe),me=new Set(b);function he(e,t){return(t===`client`?pe:me).has(e)||e.startsWith(`kanban.`)&&e.length>7||e.startsWith(`agent-roster.`)&&e.length>13}var ge=new Set([`__proto__`,`constructor`,`prototype`]),_e=32;function x(e,t,n){if(n>_e)return{code:`too_deep`,message:`Protocol payload exceeds the nesting limit`,path:t};if(typeof e!=`object`||!e)return null;for(let r of Object.keys(e)){let i=`${t}.${r}`;if(ge.has(r))return{code:`unsafe_key`,message:`Unsafe protocol key: ${r}`,path:i};let a=x(e[r],i,n+1);if(a)return a}return null}function S(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return{ok:!1,issue:{code:`invalid_envelope`,message:`Protocol message must be an object`}};let n=e;if(typeof n.type!=`string`||n.type.length===0)return{ok:!1,issue:{code:`invalid_type`,message:`Protocol message type must be a non-empty string`}};if(!he(n.type,t))return{ok:!1,issue:{code:`unknown_type`,message:`Unknown ${t} message: ${n.type}`}};if(t===`server`&&!Object.hasOwn(n,`payload`))return{ok:!1,issue:{code:`invalid_envelope`,message:`Server protocol messages require a payload`}};let r=x(n,`$`,0);return r?{ok:!1,issue:r}:{ok:!0,message:e}}function ve(e,t){try{return S(JSON.parse(e),t)}catch{return{ok:!1,issue:{code:`invalid_envelope`,message:`Protocol frame is not valid JSON`}}}}function C(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function w(e,t=``){return typeof e==`string`?e:t}function T(e,t=0){return typeof e==`number`&&Number.isFinite(e)?e:t}function E(e){let t=C(e.payload);if(!t)return null;switch(e.type){case`provider.thinking_delta`:{let e=w(t.text);return e?{kind:`thinking-delta`,text:e}:null}case`provider.text_delta`:{let e=w(t.text);return e?{kind:`text-delta`,text:e,messageId:w(t.messageId)}:null}case`provider.response`:return{kind:`response`,content:t.content};case`run.result`:return{kind:`run-result`,status:w(t.status),iterations:T(t.iterations,1),...typeof t.finalText==`string`?{finalText:t.finalText}:{}};case`error`:return{kind:`error`,message:w(t.message,`Run failed`)};default:return null}}function D(e){let t=C(e.payload);if(!t)return null;if(e.type===`tool.started`){let e=w(t.name,`tool`);return{kind:`started`,id:w(t.id,e),name:e,input:t.input,messageId:w(t.messageId)}}if(e.type===`tool.progress`){let e=C(t.event);return{kind:`progress`,id:w(t.id),name:w(t.name,`tool`),eventType:w(e?.type),text:w(e?.text).trim()}}return e.type===`tool.executed`?{kind:`executed`,id:w(t.id),name:w(t.name),ok:t.ok!==!1,durationMs:T(t.durationMs),...typeof t.output==`string`?{output:t.output}:{}}:null}function O(e){let t=C(e.payload);if(!t)return null;switch(e.type){case`fleet.concurrency_update`:return{kind:`concurrency`,active:T(t.fleetConcurrency),maximum:T(t.fleetConcurrencyMax)};case`client.status_update`:return{kind:`client-status`,status:t};case`sessions.status_update`:return{kind:`sessions`,sessions:Array.isArray(t.sessions)?t.sessions:[]};case`coordinator.stats`:return{kind:`coordinator`,agents:Array.isArray(t.subagentStatuses)?t.subagentStatuses.filter(e=>C(e)!==null):[]};default:return null}}var k=[`protocol.directional-decoder`,`protocol.recursive-key-safety`,`chronicle.query`,`chronicle.facet`,`chronicle.facets`,`chronicle.graph`,`chronicle.metrics`];function A(e){let t=e.protocolVersion,n=t===void 0,r=n?1:Math.min(t,1),i=n||Number.isInteger(t)&&t>=1,a=new Set(e.protocolCapabilities??[]);return{compatible:i,legacyPeer:n,version:r,capabilities:k.filter(e=>a.has(e))}}function j(e){return{type:`provider.clear_models`,payload:{providerId:e}}}function M(e,t){return{type:`provider.undo_clear`,payload:{providerId:e,previousModels:[...t]}}}function N(e){return{type:`provider.update`,payload:e}}function P(e){return Math.max(0,Math.min(100,Math.round((typeof e==`number`&&Number.isFinite(e)?e:0)*100)))}function F(e,t=!1){if(t&&e.target){if(e.kind===`agent:tool`||e.kind===`tool:executed`||e.kind===`tool:started`)return`tool`;if(e.source===`leader`||e.source===`coordinator`)return`coordinator`;if(e.kind.startsWith(`provider:`))return`provider`;if(e.kind.startsWith(`mailbox:`))return`mailbox`}switch(e.kind){case`provider:call`:case`provider:delta`:case`provider:response`:return`provider`;case`agent:spawned`:case`agent:tool`:case`agent:status`:case`agent:text`:case`agent:ctx`:case`budget:warning`:case`budget:extended`:return`agent`;case`tool:started`:case`tool:executed`:case`tool:progress`:return`tool`;case`mailbox:send`:case`mailbox:deliver`:return`mailbox`;case`collab:event`:return`system`;case`session:start`:case`session:end`:case`iteration:start`:case`iteration:end`:case`eternal:iteration`:case`fleet:snapshot`:return`session`;case`context:compacted`:case`context:repaired`:case`cost:update`:return`system`;case`error`:return`error`;default:return`system`}}function I(e){switch(e){case`provider:call`:case`provider:delta`:case`agent:tool`:case`tool:started`:case`tool:progress`:case`iteration:start`:case`agent:text`:return`streaming`;case`agent:status`:case`iteration:end`:return`completed`;case`error`:return`error`;case`tool:executed`:return`completed`;case`session:end`:return`idle`;default:return`active`}}var ye=0;function L(){return`viz_${Date.now()}_${++ye}`}function R(e,t){if(e===t)return!0;if(!e||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n){let n=e[r],i=t[r];if(n!==i){if(n==null||i==null||typeof n!=typeof i)return!1;if(typeof n==`object`){if(Array.isArray(n)||Array.isArray(i)||!R(n,i))return!1;continue}return!1}}return!0}var z={provider:`hsl(var(--info))`,agent:`hsl(var(--primary))`,tool:`hsl(var(--warning))`,mailbox:`hsl(var(--success))`,session:`hsl(var(--primary))`,system:`hsl(var(--muted-foreground))`,success:`hsl(var(--success))`,error:`hsl(var(--destructive))`},B={"provider:call":`hsl(var(--info))`,"provider:delta":`hsl(var(--primary))`,"agent:tool":`hsl(var(--warning))`,"mailbox:send":`hsl(var(--success))`,default:`hsl(var(--muted-foreground))`},V=t()((e,t)=>({events:[],toolEvents:[],nodes:new Map,edges:new Map,isActive:!1,maxEvents:2e3,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0},pushEvent:t=>e(e=>{let n={...t,id:t.id??L(),timestamp:t.timestamp||Date.now()},r=[n,...e.events];r.length>e.maxEvents&&(r.length=e.maxEvents);let i=t.kind===`agent:tool`||t.kind===`tool:started`||t.kind===`tool:progress`||t.kind===`tool:executed`?[n,...e.toolEvents].slice(0,600):e.toolEvents,a=Date.now(),o=t.source,s={id:o,kind:F(t),label:t.label,status:I(t.kind),activity:1,color:t.color??z[F(t)],lastSeenAt:a},c=e.nodes.get(o),l=c?{...c,...s}:s,u=!R(c,l),d,f=!1,p;if(t.target){p=t.target;let n={id:p,kind:F(t,!0),label:p,status:I(t.kind),activity:.8,color:t.color??z[F(t,!0)],lastSeenAt:a},r=e.nodes.get(p);d=r?{...r,...n}:n,f=!R(r,d)}let m,h=!1,g;if(t.target&&o){g=`${o}->${t.target}`;let n=e.edges.get(g),r={id:g,source:o,target:t.target,kind:t.kind,label:t.label,intensity:n?Math.min(1,n.intensity+.3):.7,color:t.color??z[F(t)]??z.agent,lastActiveAt:a,totalMagnitude:(n?.totalMagnitude??0)+(t.magnitude??0)};m=n?{...n,...r}:r,h=!R(n,m)}let _=e.nodes,v=e.edges;return(u||f)&&(_=new Map(e.nodes),u&&_.set(o,l),f&&d&&p&&_.set(p,d)),h&&m&&g&&(v=new Map(e.edges),v.set(g,m)),{events:r,toolEvents:i,nodes:_,edges:v}}),upsertNode:t=>e(e=>{let n=new Map(e.nodes),r=n.get(t.id);return n.set(t.id,{...r,...t,lastSeenAt:t.lastSeenAt===void 0?Date.now():t.lastSeenAt}),{nodes:n}}),removeNode:t=>e(e=>{let n=new Map(e.nodes);n.delete(t);let r=new Map(e.edges);for(let[e,n]of r)(n.source===t||n.target===t)&&r.delete(e);return{nodes:n,edges:r}}),upsertEdge:t=>e(e=>{let n=new Map(e.edges),r=n.get(t.id);return n.set(t.id,{...r,...t,lastActiveAt:t.lastActiveAt===void 0?Date.now():t.lastActiveAt,intensity:t.intensity??r?.intensity??.5,color:t.color??B[t.kind]??B.default,totalMagnitude:(r?.totalMagnitude??0)+(t.totalMagnitude??0)}),{edges:n}}),removeEdge:t=>e(e=>{let n=new Map(e.edges);return n.delete(t),{edges:n}}),clear:()=>e({events:[],toolEvents:[],nodes:new Map,edges:new Map,counters:{totalTokens:0,totalCost:0,totalToolCalls:0,activeAgents:0,completedTasks:0,errors:0,mailboxMessages:0}}),setActive:t=>e({isActive:t}),decayActivity:()=>e(e=>{let t=new Map(e.nodes);for(let[e,n]of t)if(n.activity>=.01){let r=n.activity*.92;t.set(e,{...n,activity:r<.01?0:r})}let n=new Map(e.edges);for(let[e,t]of n)if(t.intensity>=.01){let r=t.intensity*.9;n.set(e,{...t,intensity:r<.01?0:r})}return{nodes:t,edges:n}}),prunesStale:t=>e(e=>{let n=Date.now()-t,r=new Map(e.nodes);for(let[e,t]of r)t.lastSeenAt<n&&t.status!==void 0&&t.status!==`active`&&r.delete(e);let i=new Map(e.edges);for(let[e,t]of i)t.lastActiveAt<n&&i.delete(e);return{nodes:r,edges:i,events:e.events.filter(e=>e.timestamp>n)}})}));function H(e,t){switch(e){case`provider.text_delta`:{let e=t.text??``;return{id:L(),kind:`provider:delta`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,60),magnitude:e.length,data:{text:e},color:z.provider,flowGroup:`provider`}}case`provider.response`:{let e=t.usage,n=(e?.input??0)+(e?.output??0);return{id:L(),kind:`provider:response`,timestamp:Date.now(),source:`provider`,target:`leader`,label:`${(e?.input??0).toLocaleString(`en-US`)} in / ${(e?.output??0).toLocaleString(`en-US`)} out`,magnitude:n,data:t,color:z.provider,flowGroup:`provider`}}case`provider.stream_error`:{let e=t.message??`Provider stream error`;return{id:L(),kind:`error`,timestamp:Date.now(),source:`provider`,target:`leader`,label:e.slice(0,80),magnitude:1,data:t,color:z.error,flowGroup:`provider`}}case`tool.started`:{let e=t.name??`tool`;return{id:L(),kind:`tool:started`,timestamp:Date.now(),source:e,target:`filesystem`,label:e,magnitude:1,data:t,color:z.tool,flowGroup:`tool:${e}`}}case`tool.executed`:{let e=t.name??`tool`,n=t.ok??!0;return{id:L(),kind:`tool:executed`,timestamp:Date.now(),source:e,target:`leader`,label:`${e} ${n?`✓`:`✗`} (${t.durationMs??0}ms)`,magnitude:t.durationMs??0,data:t,color:n?z.tool:z.error,flowGroup:`tool:${e}`}}case`tool.progress`:{let e=t.name??`tool`,n=t.event?.text??``;return{id:L(),kind:`tool:progress`,timestamp:Date.now(),source:e,target:`leader`,label:n.slice(0,60)||e,magnitude:n.length,data:t,color:z.tool,flowGroup:`tool:${e}`}}case`codemap.tool_started`:{let e=t.name??`tool`,n=t.agentId??`subagent`;return{id:L(),kind:`tool:started`,timestamp:Date.now(),source:n,target:e,label:e,magnitude:1,data:t,color:z.tool,flowGroup:`agent:${n}`}}case`codemap.tool_executed`:{let e=t.name??`tool`,n=t.agentId??`subagent`,r=t.ok??!0;return{id:L(),kind:`tool:executed`,timestamp:Date.now(),source:n,target:e,label:`${e} ${r?`✓`:`✗`} (${t.durationMs??0}ms)`,magnitude:t.durationMs??0,data:t,color:r?z.tool:z.error,flowGroup:`agent:${n}`}}case`tool.loop_detected`:{let e=t.tools??``,n=t.kind??`loop`,r=t.action===`steer`;return{id:L(),kind:r?`agent:status`:`error`,timestamp:Date.now(),source:e||n,target:`leader`,label:`${n} loop x${t.repeatCount??0}`,magnitude:t.repeatCount??1,data:t,color:r?z.agent:z.error,flowGroup:`tool`}}case`delegate.started`:{let e=t.target??`delegate`,n=t.task??``;return{id:L(),kind:`agent:status`,timestamp:Date.now(),source:`leader`,target:e,label:n.slice(0,80)||`Delegating to ${e}`,magnitude:1,data:t,color:z.agent,flowGroup:`delegate:${e}`}}case`delegate.completed`:{let e=t.subagentId??t.target??`delegate`,n=t.ok??!1;return{id:L(),kind:n?`agent:status`:`error`,timestamp:Date.now(),source:e,target:`leader`,label:(t.summary??t.status??`delegate completed`).slice(0,80),magnitude:t.durationMs??1,data:t,color:n?z.agent:z.error,flowGroup:`delegate:${e}`}}case`subagent.event`:{let e=t.kind,n=t.subagentId??`unknown`,r=t.name??n;switch(e){case`spawned`:return{id:L(),kind:`agent:spawned`,timestamp:Date.now(),source:n,target:`session`,label:`${r} spawned`,magnitude:1,data:t,color:z.agent,flowGroup:`agent:${n}`};case`tool_executed`:{let e=t.toolName??`tool`,r=t.ok??!0;return{id:L(),kind:`agent:tool`,timestamp:Date.now(),source:n,target:e,label:e,magnitude:t.durationMs??0,data:t,color:r?z.tool:z.error,flowGroup:`agent:${n}`}}case`task_completed`:{let e=t.status??`completed`;return{id:L(),kind:`agent:status`,timestamp:Date.now(),source:n,target:`session`,label:`${r} ${e}`,magnitude:1,data:t,color:e===`success`?z.success:z.error,flowGroup:`agent:${n}`}}case`ctx_pct`:return{id:L(),kind:`agent:ctx`,timestamp:Date.now(),source:n,target:`session`,label:`ctx ${P(t.load)}%`,magnitude:t.tokens??0,data:t,color:z.agent,flowGroup:`agent:${n}`};case`iteration_summary`:return{id:L(),kind:`agent:text`,timestamp:Date.now(),source:n,target:`session`,label:(t.partialText??``).slice(0,80)||`iter ${t.iteration??0}`,magnitude:t.costUsd??0,data:t,color:z.agent,flowGroup:`agent:${n}`};case`budget_extended`:return{id:L(),kind:`budget:extended`,timestamp:Date.now(),source:n,target:`session`,label:`${r} extended budget`,magnitude:t.totalExtensions??1,data:t,color:z.tool,flowGroup:`agent:${n}`};case`budget_warning`:return{id:L(),kind:`budget:warning`,timestamp:Date.now(),source:n,target:`session`,label:`${r} hit ${t.budgetKind??`budget`} ${t.used??0}/${t.limit??0}`,magnitude:t.used??1,data:t,color:z.error,flowGroup:`agent:${n}`}}return null}case`mailbox.event`:{let e=t.event,n=t.from??`?`,r=t.to??`?`,i=t.subject??``,a=e===`mailbox.sent`;return{id:L(),kind:a?`mailbox:send`:`mailbox:deliver`,timestamp:Date.now(),source:n,target:r,label:i||(a?`→ ${r}`:`← ${n}`),magnitude:1,data:t,color:z.mailbox,flowGroup:`mailbox`}}case`iteration.started`:{let e=t.index??0;return{id:L(),kind:`iteration:start`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e}`,magnitude:e,data:t,color:z.agent,flowGroup:`iteration`}}case`iteration.completed`:{let e=t.index??0;return{id:L(),kind:`iteration:end`,timestamp:Date.now(),source:`leader`,target:`session`,label:`Iteration ${e} done`,magnitude:e,data:t,color:z.session,flowGroup:`iteration`}}case`ctx.pct`:{let e=t.tokens??0;return{id:L(),kind:`agent:ctx`,timestamp:Date.now(),source:`leader`,target:`session`,label:`ctx ${P(t.load)}%`,magnitude:e,data:t,color:z.agent,flowGroup:`leader`}}case`error`:{let e=t.message??`Error`;return{id:L(),kind:`error`,timestamp:Date.now(),source:t.phase??`system`,target:`session`,label:e,magnitude:1,data:t,color:z.error,flowGroup:`error`}}case`context.compacted`:return{id:L(),kind:`context:compacted`,timestamp:Date.now(),source:`system`,target:`session`,label:`Compacted: ${(t.saved??0).toLocaleString(`en-US`)} tokens`,magnitude:t.saved??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`compaction.failed`:{let e=t.message??`Compaction failed`;return{id:L(),kind:`error`,timestamp:Date.now(),source:`compactor`,target:`session`,label:e.slice(0,80),magnitude:t.tokens??1,data:t,color:z.error,flowGroup:`context`}}case`context.repaired`:return{id:L(),kind:`context:repaired`,timestamp:Date.now(),source:`system`,target:`session`,label:`Repaired: ${t.removedMessages??0} msgs`,magnitude:t.removedMessages??0,data:t,color:`hsl(220, 60%, 50%)`,flowGroup:`context`};case`session.start`:{let e=t.sessionId??`?`,n=t.projectName??``;return{id:L(),kind:`session:start`,timestamp:Date.now(),source:`session`,target:`leader`,label:n||e.slice(0,12),magnitude:1,data:t,color:z.session,flowGroup:`session`}}case`sessions.status_update`:{let e=t.sessions??[];return{id:L(),kind:`fleet:snapshot`,timestamp:Date.now(),source:`system`,target:`session`,label:`${e.length} session(s)`,magnitude:e.length,data:t,color:z.system,flowGroup:`fleet`}}default:return null}}function be(e){let t=e.payload?.sessionId,n=r.getState().session?.id;return!t||!n||t===n}function xe(e){let t=H(e.type,e.payload);t&&(V.getState().pushEvent(t),V.getState().setActive(!0))}function Se(e,t,n){let r=e.payload??{};for(let[e,n]of Object.entries(t)){let t=r[e];if(!U(t,n))return null}if(n)for(let[e,t]of Object.entries(n)){let n=r[e];if(n!=null&&!U(n,t))return null}return r}function U(e,t){switch(t){case`string`:return typeof e==`string`;case`number`:return typeof e==`number`;case`boolean`:return typeof e==`boolean`;case`object`:return typeof e==`object`&&!!e&&!Array.isArray(e);case`array`:return Array.isArray(e);default:return!1}}function Ce(e){try{return new URL(e).searchParams.get(`token`)}catch{return null}}function W(){if(typeof window>`u`||!window.location)return null;try{let e=window.location.search??``;return new URLSearchParams(e).get(`token`)}catch{return null}}function G(e){try{let t=new URL(e);return t.searchParams.delete(`token`),t.toString()}catch{return e}}function K(){if(!(typeof window>`u`||!window.location||!window.history?.replaceState))try{let e=window.location.href;if(!e)return;let t=new URL(e);if(!t.searchParams.has(`token`))return;t.searchParams.delete(`token`),window.history.replaceState(window.history.state,document.title,t.toString())}catch{}}function q(){if(typeof document>`u`)return null;let e=document.querySelector(`meta[name="wrongstack-ws-url"]`)?.getAttribute(`content`)?.trim();if(!e)return null;try{let t=new URL(e);if(t.protocol!==`ws:`&&t.protocol!==`wss:`)return null;let n=W();return n&&!t.searchParams.has(`token`)&&t.searchParams.set(`token`,n),t.toString()}catch{return null}}function J(){let e=q();if(e)return e;if(typeof window>`u`||!window.location?.hostname)return`ws://127.0.0.1:3456`;let t=window.location.protocol===`https:`?`wss`:`ws`,n=window.location.hostname.toLowerCase(),r=window.location.port,i=W(),a=i?`?token=${encodeURIComponent(i)}`:``;return`${t}://${n===`localhost`||n===`127.0.0.1`||n===`[::1]`||n===`::1`?`127.0.0.1`:n}${r?`:${r}`:``}${a}`}function Y(){if(typeof window>`u`||!window.location?.hostname)return`http://127.0.0.1:3456`;let e=window.location.protocol===`https:`?`https`:`http`,t=window.location.hostname.toLowerCase(),n=window.location.port?`:${window.location.port}`:``;return t===`localhost`||t===`127.0.0.1`||t===`[::1]`||t===`::1`?`${e}://127.0.0.1${n}`:`${e}://${window.location.hostname}${n}`}var we=e({WrongStackWebSocketClient:()=>Z,getWSClient:()=>$}),Te={"context.debug":`context.debug`,"diag.get":`diag.get`,"memory.list":`memory.list`,"memory.sage.get":`memory.sage.get`,"memory.sage.graph":`memory.sage.graph`,"memory.sage.list":`memory.sage.list`,"memory.sage.listPage":`memory.sage.listPage`,"memory.sage.remember":`memory.sage.remember`,"memory.sage.update":`memory.sage.update`,"skills.list":`skills.list`,"stats.get":`stats.get`,"tools.list":`tools.list`},Ee=3e4;function X(e){try{let t=new URL(e),n=new URL(Y());return t.hostname===n.hostname}catch{return!0}}var Z=class e{ws=null;url;handlers=new Map;maxReconnectAttempts=10;shouldReconnect=!0;reconnectTimer=null;connectPromise=null;socketGeneration=0;messageQueue=[];connectionState=s();static MAX_QUEUED_MESSAGES=1e3;pendingConfirms=new Map;sessionId=null;lastErrorText;statusListeners=new Set;currentStatus={state:`connecting`};suppressedChatEchoes=new Map;protocolCapabilities=new Set;protocolVersion=null;supportsCapability(e){return this.protocolCapabilities.has(e)}get negotiatedProtocolVersion(){return this.protocolVersion}onStatus(e){return this.statusListeners.add(e),e(this.currentStatus),()=>this.statusListeners.delete(e)}get status(){return this.currentStatus}setStatus(e){this.currentStatus=e;for(let t of this.statusListeners)try{t(e)}catch{}}constructor(e){this.url=e??J()}withSession(e){return this.sessionId?{...e,sessionId:this.sessionId}:e}async ensureAuthCookie(){if(typeof window>`u`)return;if(document.cookie.split(`;`).some(e=>e.trim().startsWith(`ws_token=`))){X(this.url)&&(this.url=G(this.url)),K();return}let e=Ce(this.url)??W();if(!e)return;let t=Y()+`/ws-auth?token=${encodeURIComponent(e)}`;try{let e=await fetch(t,{method:`GET`,credentials:`same-origin`,cache:`no-store`});e.ok?(X(this.url)&&(this.url=G(this.url)),K()):console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_failed`,status:e.status,timestamp:new Date().toISOString()}))}catch(e){console.warn(JSON.stringify({level:`warn`,event:`ws_client.ws_auth_error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}}connect(){return this.ws?.readyState===WebSocket.OPEN?Promise.resolve():(this.connectPromise||=this.openSocket().finally(()=>{this.connectPromise=null}),this.connectPromise)}async openSocket(){return await this.ensureAuthCookie(),this.connectionState=c(this.connectionState),new Promise((e,t)=>{if(this.ws?.readyState===WebSocket.OPEN){e();return}this.setStatus({state:`connecting`});let n=++this.socketGeneration;try{let r=new WebSocket(this.url);this.ws=r,r.binaryType=`arraybuffer`;let i=setTimeout(()=>{if(this.ws===r){try{r.close()}catch{}this.ws===r&&(this.ws=null)}this.lastErrorText=`Connection timeout`,t(Error(`Connection timeout`)),s()},3e4),a=!1,o=!1,s=()=>{o||(o=!0,this.attemptReconnect())};r.onopen=()=>{this.socketGeneration===n&&(clearTimeout(i),a=!0,this.connectionState=l(this.connectionState),this.lastErrorText=void 0,this.setStatus({state:`open`}),this.flushMessageQueue(),e())},r.onmessage=e=>{if(this.socketGeneration!==n)return;this.connectionState=u(this.connectionState);let t=ve(String(e.data),`server`);t.ok?this.handleMessage(t.message):console.error(JSON.stringify({level:`error`,event:`ws_client.message_rejected`,code:t.issue.code,message:t.issue.message,timestamp:new Date().toISOString()}))},r.onerror=e=>{this.socketGeneration===n&&(console.error(JSON.stringify({level:`error`,event:`ws_client.error`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()})),this.lastErrorText=`Connection error (see browser devtools)`,a||(clearTimeout(i),t(Error(this.lastErrorText)),s()))},r.onclose=e=>{if(this.socketGeneration===n){if(!a){clearTimeout(i);let n=e.reason||`Closed with code ${e.code}`;this.lastErrorText=n,t(Error(n)),s();return}e.reason&&!this.lastErrorText?this.lastErrorText=`${e.reason} (code ${e.code})`:!this.lastErrorText&&e.code!==1e3&&(this.lastErrorText=`Closed with code ${e.code}`),this.attemptReconnect()}}}catch(e){if(this.socketGeneration!==n)return;this.lastErrorText=e instanceof Error?e.message:String(e),this.setStatus({state:`closed`,error:this.lastErrorText}),t(e)}})}attemptReconnect(){if(!this.shouldReconnect){this.connectionState=d(this.connectionState),this.reconnectTimer=null,this.setStatus({state:`closed`,error:this.lastErrorText??`Disconnected`});return}let t=p(this.connectionState,{...o,maxReconnectAttempts:this.maxReconnectAttempts,queueLimit:e.MAX_QUEUED_MESSAGES});if(this.connectionState=t.state,!t.plan){this.reconnectTimer=null,this.setStatus({state:`closed`,error:this.lastErrorText??`Disconnected`});return}this.setStatus({state:`reconnecting`,attempt:t.plan.attempt,nextRetryAt:t.plan.retryAt,lastError:this.lastErrorText}),this.reconnectTimer=setTimeout(async()=>{if(this.reconnectTimer=null,this.shouldReconnect)try{await this.connect()}catch(e){console.error(JSON.stringify({level:`error`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))}},t.plan.delayMs)}retryNow(){this.currentStatus.state!==`open`&&(this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.connectionState=f(this.connectionState),this.connect().catch(e=>console.warn(JSON.stringify({level:`warn`,event:`ws_client.reconnect_failed`,message:e instanceof Error?e.message:String(e),timestamp:new Date().toISOString()}))))}flushMessageQueue(){for(;this.messageQueue.length>0;){let e=this.messageQueue.shift();e&&this.send(e)}}handleMessage(e){if(e.type===`tool.confirm_needed`){let t=e.payload;this.pendingConfirms.set(t.id,{}),this.emit(e);return}if(e.type===`session.start`){let t=e.payload,n=A(t);this.sessionId=t.sessionId,this.protocolVersion=n.version,this.protocolCapabilities=new Set(n.capabilities)}this.emit(e)}emit(e){let t=this.handlers.get(e.type);if(t)for(let n of t)try{n(e)}catch(t){console.error(JSON.stringify({level:`error`,event:`ws_client.handler_error`,messageType:e.type,message:t instanceof Error?t.message:String(t),timestamp:new Date().toISOString()}))}}send(t,n={}){let r=S(t,`client`);if(!r.ok){console.error(JSON.stringify({level:`error`,event:`ws_client.outbound_message_rejected`,code:r.issue.code,message:r.issue.message,timestamp:new Date().toISOString()}));return}if(n.echoToChat===!1){let e=Te[t.type];if(e){let t=this.suppressedChatEchoes.get(e)??[];t.push(Date.now()+Ee),this.suppressedChatEchoes.set(e,t)}}if((t.type===`context.clear`||t.type===`session.new`||t.type===`session.resume`)&&a.dropAll(),this.ws?.readyState===WebSocket.OPEN)this.ws.send(JSON.stringify(r.message));else{let n=m(this.messageQueue,t,e.MAX_QUEUED_MESSAGES);n.dropped&&console.warn(JSON.stringify({level:`warn`,event:`ws_client.message_queue_full`,cap:e.MAX_QUEUED_MESSAGES,droppedType:n.dropped.type,timestamp:new Date().toISOString()})),this.messageQueue=n.queue}}consumeSuppressedChatEcho(e){let t=this.suppressedChatEchoes.get(e);if(!t)return!1;let n=Date.now();for(;t.length>0&&t[0]<=n;)t.shift();return t.length===0?(this.suppressedChatEchoes.delete(e),!1):(t.shift(),t.length===0&&this.suppressedChatEchoes.delete(e),!0)}on(e,t){let n=this.handlers.get(e);return n||(n=new Set,this.handlers.set(e,n)),n.add(t),()=>n?.delete(t)}off(e,t){this.handlers.get(e)?.delete(t)}sendMessage(e,t){let r=`msg_${Date.now()}_${n().slice(0,8)}`;return this.send({type:`user_message`,payload:this.withSession({id:r,content:e,timestamp:Date.now(),...t&&t.length>0?{images:t}:{}})}),r}sendAbort(){this.send({type:`abort`,payload:this.withSession({})})}getGitInfo(){this.send({type:`git.info`})}getGitChanges(){this.send({type:`git.changes`})}getGitDiff(e){this.send({type:`git.diff`,payload:{path:e}})}sendConfirm(e,t){this.pendingConfirms.has(e)&&this.pendingConfirms.delete(e),this.send({type:`tool.confirm_result`,payload:this.withSession({id:e,decision:t})})}switchModel(e,t){this.send({type:`model.switch`,payload:{provider:e,model:t}})}newSession(){this.send({type:`session.new`,payload:this.withSession({})})}listProviders(){this.send({type:`providers.list`})}listProviderModels(e){this.send({type:`provider.models`,payload:{providerId:e}})}listSavedProviders(){this.send({type:`providers.saved`})}addKey(e,t,n){this.send({type:`key.add`,payload:{providerId:e,label:t,apiKey:n}})}updateKey(e,t,n){this.send({type:`key.update`,payload:{providerId:e,label:t,apiKey:n}})}deleteKey(e,t){this.send({type:`key.delete`,payload:{providerId:e,label:t}})}setActiveKey(e,t){this.send({type:`key.set_active`,payload:{providerId:e,label:t}})}addProvider(e,t,n,r){this.send({type:`provider.add`,payload:{id:e,family:t,baseUrl:n,apiKey:r}})}removeProvider(e){this.send({type:`provider.remove`,payload:{providerId:e}})}startOAuth(e,t){this.send({type:`auth.oauth.start`,payload:t?{kind:e,providerId:t}:{kind:e}})}submitOAuthCode(e,t){this.send({type:`auth.oauth.code`,payload:{kind:e,input:t}})}cancelOAuth(e){this.send({type:`auth.oauth.cancel`,payload:{kind:e}})}probeProvider(e,t){this.send({type:`provider.probe`,payload:t===void 0?{providerId:e}:{providerId:e,timeoutMs:t}})}clearProviderModels(e){this.send(j(e))}undoProviderClear(e,t){this.send(M(e,t))}updateProvider(e){this.send(N(e))}clearContext(){this.send({type:`context.clear`,payload:this.withSession({})})}compactContext(e=!1){this.send({type:`context.compact`,payload:this.withSession({aggressive:e})})}repairContext(){this.send({type:`context.repair`,payload:this.withSession({})})}debugContext(e){this.send({type:`context.debug`,payload:this.withSession({})},e)}listContextModes(){this.send({type:`context.modes.list`,payload:this.withSession({})})}switchContextMode(e){this.send({type:`context.mode.switch`,payload:this.withSession({id:e})})}createContextMode(e){this.send({type:`context.mode.create`,payload:this.withSession(e)})}updateContextMode(e,t){this.send({type:`context.mode.update`,payload:this.withSession({id:e,...t})})}deleteContextMode(e){this.send({type:`context.mode.delete`,payload:this.withSession({id:e})})}switchAutonomy(e){this.send({type:`autonomy.switch`,payload:{mode:e}})}updatePrefs(e){this.send({type:`prefs.update`,payload:e})}getPrefs(){this.send({type:`prefs.get`})}listTools(e){this.send({type:`tools.list`},e)}listMemory(e){this.send({type:`memory.list`},e)}listSageMemories(e){this.send({type:`memory.sage.list`},e)}listSageMemoriesPage(e,t){this.send({type:`memory.sage.listPage`,payload:{...e}},t)}getSage(e,t){this.send({type:`memory.sage.get`,payload:{id:e}},t)}getSageGraph(e,t,n){this.send({type:`memory.sage.graph`,payload:{query:e,...t}},n)}updateSage(e,t,n){this.send({type:`memory.sage.update`,payload:{id:e,...t}},n)}deleteSage(e,t){this.send({type:`memory.sage.delete`,payload:{id:e,...t===void 0?{}:{reason:t}}})}rememberSage(e,t){this.send({type:`memory.sage.remember`,payload:e},t)}findMemoriesForFile(e,t){this.send({type:`memory.sage.forFile`,payload:e},t)}recoverSage(e,t){this.send({type:`memory.sage.recover`,payload:e},t)}resolveMemoryCandidate(e,t){this.send({type:`memory.sage.candidateResolve`,payload:e},t)}backfillRecoverable(e,t){this.send({type:`memory.sage.backfillRecoverable`,payload:e},t)}listMcpServers(){this.send({type:`mcp.list`})}addMcpServer(e){this.send({type:`mcp.add`,payload:e})}removeMcpServer(e){this.send({type:`mcp.remove`,payload:{name:e}})}updateMcpServer(e){this.send({type:`mcp.update`,payload:e})}wakeMcpServer(e){this.send({type:`mcp.wake`,payload:{name:e}})}sleepMcpServer(e){this.send({type:`mcp.sleep`,payload:{name:e}})}discoverMcpServer(e){this.send({type:`mcp.discover`,payload:{name:e}})}listMcpResources(e,t=!1){this.send({type:`mcp.resources`,payload:{name:e,refresh:t}})}listMcpPrompts(e,t=!1){this.send({type:`mcp.prompts`,payload:{name:e,refresh:t}})}readMcpResource(e,t){this.send({type:`mcp.resource.read`,payload:{name:e,uri:t}})}getMcpPrompt(e,t,n){this.send({type:`mcp.prompt.get`,payload:{name:e,prompt:t,...n===void 0?{}:{arguments:n}}})}enableMcpServer(e){this.send({type:`mcp.enable`,payload:{name:e}})}disableMcpServer(e){this.send({type:`mcp.disable`,payload:{name:e}})}restartMcpServer(e){this.send({type:`mcp.restart`,payload:{name:e}})}listSkills(e){this.send({type:`skills.list`},e)}getSkillContent(e,t){this.send({type:`skills.content`,payload:{name:e,source:t}})}installSkill(e,t){this.send({type:`skills.install`,payload:{ref:e,global:t}})}uninstallSkill(e,t){this.send({type:`skills.uninstall`,payload:{name:e,global:t}})}checkForUpdates(e,t){this.send({type:`skills.update`,payload:{name:e,global:t}})}createSkill(e,t,n){this.send({type:`skills.create`,payload:{name:e,description:t,scope:n}})}editSkill(e,t){this.send({type:`skills.edit`,payload:{name:e,body:t}})}exportAllSkills(){this.send({type:`skills.export`})}getDiag(e){this.send({type:`diag.get`,payload:this.withSession({})},e)}getStats(e){this.send({type:`stats.get`,payload:this.withSession({})},e)}saveSession(){this.send({type:`session.save`,payload:this.withSession({})})}resumeSessionById(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}listModes(){this.send({type:`modes.list`})}switchMode(e){this.send({type:`mode.switch`,payload:{id:e}})}listFiles(e,t,n){this.send({type:`files.list`,payload:{query:e,limit:t,path:n}})}requestCompletion(e){this.send({type:`completion.request`,payload:e})}getTodos(){this.send({type:`todos.get`,payload:this.withSession({})})}clearTodos(){this.send({type:`todos.clear`,payload:this.withSession({})})}removeTodo(e){let t=typeof e==`number`?{index:e}:{id:e};this.send({type:`todos.remove`,payload:this.withSession(t)})}updateTodoStatus(e,t){this.send({type:`todo.update`,payload:this.withSession({id:e,status:t})})}getTasks(){this.send({type:`tasks.get`,payload:this.withSession({})})}updateTaskStatus(e,t){this.send({type:`task.update`,payload:this.withSession({id:e,status:t})})}getPlan(){this.send({type:`plan.get`,payload:this.withSession({})})}updatePlanItem(e,t){this.send({type:`plan.item.update`,payload:this.withSession({target:e,status:t})})}listSessions(e=50){this.send({type:`sessions.list`,payload:this.withSession({limit:e})})}deleteSession(e){this.send({type:`session.delete`,payload:{id:e}})}renameSession(e,t){this.send({type:`session.rename`,payload:{id:e,name:t}})}setWorkingDir(e){this.send({type:`working_dir.set`,payload:{path:e}})}resumeSession(e){this.send({type:`session.resume`,payload:this.withSession({id:e})})}ping(){this.send({type:`ping`})}refineModel(e,t){this.send({type:`model.refine`,payload:{text:e,...t?.timeoutMs===void 0?{}:{timeoutMs:t.timeoutMs},...t?.provider===void 0?{}:{provider:t.provider},...t?.model===void 0?{}:{model:t.model},...t?.previousRefined===void 0?{}:{previousRefined:t.previousRefined},...t?.previousEnglish===void 0?{}:{previousEnglish:t.previousEnglish},...t?.retryFeedback===void 0?{}:{retryFeedback:t.retryFeedback}}})}disconnect(){this.shouldReconnect=!1,this.connectionState=d(this.connectionState),this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.messageQueue.length=0,this.ws?.close(),this.ws=null}get isConnected(){return this.ws?.readyState===WebSocket.OPEN}get currentSessionId(){return this.sessionId}},Q=null;function $(e){return Q||=new Z(e),Q}export{xe as a,H as c,D as d,a as f,be as i,E as l,we as n,Se as o,J as r,V as s,$ as t,O as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentRosterView.d.ts","sourceRoot":"","sources":["../../src/components/AgentRosterView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"AgentRosterView.d.ts","sourceRoot":"","sources":["../../src/components/AgentRosterView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA4hEH,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,+BAsHhF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../src/components/ChatInput.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,wBAAgB,SAAS,CAAC,EACxB,eAAe,GAChB,GAAE;IACD,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACvC,
|
|
1
|
+
{"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../src/components/ChatInput.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,wBAAgB,SAAS,CAAC,EACxB,eAAe,GAChB,GAAE;IACD,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACvC,qBAq0CL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChronicleDashboard.d.ts","sourceRoot":"","sources":["../../src/components/ChronicleDashboard.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ChronicleDashboard.d.ts","sourceRoot":"","sources":["../../src/components/ChronicleDashboard.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,kBAAkB,gCA0JjC"}
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The explorer never disappears while the user moves package → file → symbol.
|
|
5
5
|
* A graph click focuses relationships; explicit open actions change scope.
|
|
6
|
+
*
|
|
7
|
+
* Performance notes:
|
|
8
|
+
* - Activity store is subscribed via selectors (not the whole store).
|
|
9
|
+
* - React Flow rebuilds are immediate for structural changes and throttled for
|
|
10
|
+
* telemetry-only updates (see FLOW_ACTIVITY_THROTTLE_MS).
|
|
11
|
+
* - SMART mode caps canvas nodes; MiniMap is gated by node count.
|
|
6
12
|
*/
|
|
7
13
|
import '@xyflow/react/dist/style.css';
|
|
8
14
|
export declare function CodeMap(): React.ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeMap.d.ts","sourceRoot":"","sources":["../../src/components/CodeMap.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"CodeMap.d.ts","sourceRoot":"","sources":["../../src/components/CodeMap.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA4BH,OAAO,8BAA8B,CAAC;AAukFtC,wBAAgB,OAAO,IAAI,KAAK,CAAC,YAAY,CAM5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextDashboard.d.ts","sourceRoot":"","sources":["../../src/components/ContextDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"ContextDashboard.d.ts","sourceRoot":"","sources":["../../src/components/ContextDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA+pBH,wBAAgB,gBAAgB,gCA4M/B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function CronTrigger(): React.ReactElement;
|
|
1
|
+
export declare function CronTrigger(): React.ReactElement | null;
|
|
2
2
|
//# sourceMappingURL=CronTrigger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CronTrigger.d.ts","sourceRoot":"","sources":["../../src/components/CronTrigger.tsx"],"names":[],"mappings":"AAWA,wBAAgB,WAAW,IAAI,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"CronTrigger.d.ts","sourceRoot":"","sources":["../../src/components/CronTrigger.tsx"],"names":[],"mappings":"AAWA,wBAAgB,WAAW,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAkCvD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type OpenFile } from '@/stores';
|
|
2
|
+
import type { ChronicleFileLineageRow } from '@/types';
|
|
2
3
|
interface ActivityRecord {
|
|
3
4
|
id: string;
|
|
4
5
|
at: number;
|
|
@@ -21,6 +22,19 @@ export interface FileActivityAnalysis {
|
|
|
21
22
|
actorCount: number;
|
|
22
23
|
taskCount: number;
|
|
23
24
|
}
|
|
25
|
+
/** Full-history rollup of a file's mutation lineage, sourced from the Chronicle
|
|
26
|
+
* metrics store (indexed by path) rather than a bounded event scan. */
|
|
27
|
+
export interface FileLineageSummary {
|
|
28
|
+
mutations: number;
|
|
29
|
+
sessions: number;
|
|
30
|
+
tasks: number;
|
|
31
|
+
boards: number;
|
|
32
|
+
tools: string[];
|
|
33
|
+
models: string[];
|
|
34
|
+
firstAt?: string | undefined;
|
|
35
|
+
lastAt?: string | undefined;
|
|
36
|
+
}
|
|
37
|
+
export declare function summarizeLineage(rows: ChronicleFileLineageRow[]): FileLineageSummary;
|
|
24
38
|
export declare function normalizeTrackedPath(value: string): string;
|
|
25
39
|
export declare function pathsReferToSameFile(left: string, right: string): boolean;
|
|
26
40
|
export declare function analyzeFileActivity(records: Array<Pick<ActivityRecord, 'at' | 'action' | 'actor' | 'sessionId' | 'taskId'>>, now?: number): FileActivityAnalysis;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileActivityDrawer.d.ts","sourceRoot":"","sources":["../../src/components/FileActivityDrawer.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAEL,KAAK,QAAQ,EAKd,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"FileActivityDrawer.d.ts","sourceRoot":"","sources":["../../src/components/FileActivityDrawer.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAEL,KAAK,QAAQ,EAKd,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAsB,uBAAuB,EAAmB,MAAM,SAAS,CAAC;AAK5F,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;wEACwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,EAAE,GAAG,kBAAkB,CA2BpF;AAOD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAIzE;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAC,EACxF,GAAG,SAAa,GACf,oBAAoB,CAatB;AAgGD,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,+BAkU9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FleetMonitor.d.ts","sourceRoot":"","sources":["../../src/components/FleetMonitor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"FleetMonitor.d.ts","sourceRoot":"","sources":["../../src/components/FleetMonitor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA2BH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,uDAAuD;IACvD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAmVD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,aAAa,GACd,EAAE,iBAAiB,+BAkRnB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decomposition surfaces:
|
|
3
|
+
*
|
|
4
|
+
* KanbanDecompositionApprovalCard — alert strip above the board (the
|
|
5
|
+
* KanbanCleanerAlert pattern) listing every task whose proposal awaits
|
|
6
|
+
* approval, with inline Approve/Reject.
|
|
7
|
+
*
|
|
8
|
+
* KanbanDecompositionPanel — task-inspector section showing the proposal
|
|
9
|
+
* lifecycle as a stage strip (assessed → proposed → approval → applied), the
|
|
10
|
+
* proposed subtask DAG rendered with the reused SddFlowGraph, and
|
|
11
|
+
* approve/reject actions while pending. Applied children deep-link back
|
|
12
|
+
* into the inspector.
|
|
13
|
+
*/
|
|
14
|
+
import type { KanbanBoard, KanbanTask } from '@wrongstack/kanban';
|
|
15
|
+
type SendKanban = (type: `kanban.${string}`, payload?: Record<string, unknown>) => void;
|
|
16
|
+
export declare function KanbanDecompositionApprovalCard({ board, sendKanban, onSelectTask, }: {
|
|
17
|
+
board: KanbanBoard;
|
|
18
|
+
sendKanban: SendKanban;
|
|
19
|
+
onSelectTask: (id: string) => void;
|
|
20
|
+
}): import("react").JSX.Element | null;
|
|
21
|
+
export declare function KanbanDecompositionPanel({ board, task, sendKanban, onSelectTask, }: {
|
|
22
|
+
board: KanbanBoard;
|
|
23
|
+
task: KanbanTask;
|
|
24
|
+
sendKanban: SendKanban;
|
|
25
|
+
onSelectTask: (id: string) => void;
|
|
26
|
+
}): import("react").JSX.Element | null;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=KanbanDecompositionPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KanbanDecompositionPanel.d.ts","sourceRoot":"","sources":["../../src/components/KanbanDecompositionPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMlE,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAExF,wBAAgB,+BAA+B,CAAC,EAC9C,KAAK,EACL,UAAU,EACV,YAAY,GACb,EAAE;IACD,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,sCA8DA;AAaD,wBAAgB,wBAAwB,CAAC,EACvC,KAAK,EACL,IAAI,EACJ,UAAU,EACV,YAAY,GACb,EAAE;IACD,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,sCAsLA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KanbanTaskTree — the task hierarchy + verification tree view.
|
|
3
|
+
* Renders the parent/child forest (parentTaskId/childTaskIds) as indented
|
|
4
|
+
* rows: status icon, atomicity badge, verification state chip. Clicking a row
|
|
5
|
+
* opens the task inspector.
|
|
6
|
+
*/
|
|
7
|
+
import type { KanbanBoard } from '@wrongstack/kanban';
|
|
8
|
+
export declare function KanbanTaskTree({ board, selectedTaskId, onSelectTask, }: {
|
|
9
|
+
board: KanbanBoard;
|
|
10
|
+
selectedTaskId: string | null;
|
|
11
|
+
onSelectTask: (id: string) => void;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=KanbanTaskTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KanbanTaskTree.d.ts","sourceRoot":"","sources":["../../src/components/KanbanTaskTree.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,oBAAoB,CAAC;AA8ClE,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,cAAc,EACd,YAAY,GACb,EAAE;IACD,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,+BAqFA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KanbanVerificationDashboard — board-wide Definition-of-Done quality view:
|
|
3
|
+
* verified/unverified/failed counts, failing checks, missing evidence, and
|
|
4
|
+
* atomicity debt (tasks needing decomposition, pending proposals).
|
|
5
|
+
* Every row clicks through to the task inspector.
|
|
6
|
+
*/
|
|
7
|
+
import type { KanbanBoard } from '@wrongstack/kanban';
|
|
8
|
+
export declare function KanbanVerificationDashboard({ board, onSelectTask, }: {
|
|
9
|
+
board: KanbanBoard;
|
|
10
|
+
onSelectTask: (id: string) => void;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=KanbanVerificationDashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KanbanVerificationDashboard.d.ts","sourceRoot":"","sources":["../../src/components/KanbanVerificationDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA6EtD,wBAAgB,2BAA2B,CAAC,EAC1C,KAAK,EACL,YAAY,GACb,EAAE;IACD,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,+BA0FA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { KanbanBoard, KanbanTask } from '@wrongstack/kanban';
|
|
2
|
+
import { type TaskVerificationState } from '@/lib/kanban-verification';
|
|
2
3
|
export declare const TASK_ACTIVITY_LOAD_LIMIT = 5000;
|
|
3
4
|
export declare function KanbanView({ onClose }: {
|
|
4
5
|
onClose?: (() => void) | undefined;
|
|
@@ -13,6 +14,21 @@ export interface TaskCardIntelligence {
|
|
|
13
14
|
failed: boolean;
|
|
14
15
|
criticalRisks: number;
|
|
15
16
|
warningRisks: number;
|
|
17
|
+
/** Verification display state derived from the persisted report. */
|
|
18
|
+
verification: TaskVerificationState;
|
|
19
|
+
/** Completed/total resolved child tasks, or null for leaf tasks. */
|
|
20
|
+
subtaskCounts: {
|
|
21
|
+
done: number;
|
|
22
|
+
total: number;
|
|
23
|
+
} | null;
|
|
24
|
+
/** Atomicity verdict when an assessment exists. */
|
|
25
|
+
atomicityVerdict: 'atomic' | 'borderline' | 'needs_decomposition' | 'composite' | null;
|
|
26
|
+
/** Evidence attachments on the verification report. */
|
|
27
|
+
evidenceCount: number;
|
|
28
|
+
/** A decomposition proposal awaiting approval. */
|
|
29
|
+
pendingDecomposition: boolean;
|
|
16
30
|
}
|
|
17
|
-
export declare function deriveTaskCardIntelligence(board: KanbanBoard, task: KanbanTask
|
|
31
|
+
export declare function deriveTaskCardIntelligence(board: KanbanBoard, task: KanbanTask, verificationActivity?: Record<string, {
|
|
32
|
+
startedAt: number;
|
|
33
|
+
}>): TaskCardIntelligence;
|
|
18
34
|
//# sourceMappingURL=KanbanView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KanbanView.d.ts","sourceRoot":"","sources":["../../src/components/KanbanView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAQX,UAAU,EACX,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"KanbanView.d.ts","sourceRoot":"","sources":["../../src/components/KanbanView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAQX,UAAU,EACX,MAAM,oBAAoB,CAAC;AAkC5B,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAiC5F,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAkQ9C,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;CAAE,+BAouB7E;AAuMD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,YAAY,EAAE,qBAAqB,CAAC;IACpC,oEAAoE;IACpE,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACtD,mDAAmD;IACnD,gBAAgB,EAAE,QAAQ,GAAG,YAAY,GAAG,qBAAqB,GAAG,WAAW,GAAG,IAAI,CAAC;IACvF,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,UAAU,EAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3D,oBAAoB,CA0DtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfficeMapCanvas.d.ts","sourceRoot":"","sources":["../../src/components/OfficeMapCanvas.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"OfficeMapCanvas.d.ts","sourceRoot":"","sources":["../../src/components/OfficeMapCanvas.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,OAAO,8BAA8B,CAAC;AA0QtC,wBAAgB,eAAe,gCAmvC9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueuePanel.d.ts","sourceRoot":"","sources":["../../src/components/QueuePanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,qBAAqB,CAAC;AAuBjE;6EAC6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,SAAS,GACV,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"QueuePanel.d.ts","sourceRoot":"","sources":["../../src/components/QueuePanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,qBAAqB,CAAC;AAuBjE;6EAC6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,SAAS,GACV,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA6J7C;AAID,YAAY,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -6,12 +6,19 @@ interface RefinePanelProps {
|
|
|
6
6
|
onDecision: (decision: RefineDecision) => void;
|
|
7
7
|
/** Auto-send countdown in ms. Default 0 (no auto-send). */
|
|
8
8
|
autoSendDelayMs?: number;
|
|
9
|
+
/**
|
|
10
|
+
* Fired when the pre-refine countdown elapses and the refine request
|
|
11
|
+
* should actually start. The parent owns the refineModel call so it can
|
|
12
|
+
* resolve provider/model preferences.
|
|
13
|
+
*/
|
|
14
|
+
onStartRefine?: (() => void) | undefined;
|
|
9
15
|
/**
|
|
10
16
|
* Lifecycle of the refine round-trip. 'ready' (or undefined) shows the
|
|
11
17
|
* comparison; 'refining' shows an in-flight indicator; 'failed' shows the
|
|
12
|
-
* recovery options
|
|
18
|
+
* recovery options; 'countdown' shows a 3-2-1 grace period before
|
|
19
|
+
* refining starts (with a "send as-is" skip option).
|
|
13
20
|
*/
|
|
14
|
-
status?: 'refining' | 'ready' | 'failed' | undefined;
|
|
21
|
+
status?: 'countdown' | 'refining' | 'ready' | 'failed' | undefined;
|
|
15
22
|
/** Failure reason shown in the recovery state. */
|
|
16
23
|
error?: string | undefined;
|
|
17
24
|
/** One-key "retry with another model" offer (provider/model), if any. */
|
|
@@ -39,6 +46,6 @@ interface RefinePanelProps {
|
|
|
39
46
|
* - t → edit the refined version
|
|
40
47
|
* - Esc → cancel and send original
|
|
41
48
|
*/
|
|
42
|
-
export declare function RefinePanel({ original, refined, english, onDecision, autoSendDelayMs, status, error, fallbackRef, onRetry, onRetryFallback, onPickModel, provider, model, }: RefinePanelProps): import("react").JSX.Element;
|
|
49
|
+
export declare function RefinePanel({ original, refined, english, onDecision, autoSendDelayMs, onStartRefine, status, error, fallbackRef, onRetry, onRetryFallback, onPickModel, provider, model, }: RefinePanelProps): import("react").JSX.Element;
|
|
43
50
|
export {};
|
|
44
51
|
//# sourceMappingURL=RefinePanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefinePanel.d.ts","sourceRoot":"","sources":["../../src/components/RefinePanel.tsx"],"names":[],"mappings":"AASA,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzE,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"RefinePanel.d.ts","sourceRoot":"","sources":["../../src/components/RefinePanel.tsx"],"names":[],"mappings":"AASA,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzE,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACzC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnE,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,kDAAkD;IAClD,eAAe,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,iEAAiE;IACjE,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACvC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAO,EACP,OAAO,EACP,UAAU,EACV,eAAmB,EACnB,aAAa,EACb,MAAgB,EAChB,KAAK,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,WAAW,EACX,QAAQ,EACR,KAAK,GACN,EAAE,gBAAgB,+BAgjBlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SddBoardView.d.ts","sourceRoot":"","sources":["../../src/components/SddBoardView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SddBoardView.d.ts","sourceRoot":"","sources":["../../src/components/SddBoardView.tsx"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CA6frF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SddTaskDrawer.d.ts","sourceRoot":"","sources":["../../src/components/SddTaskDrawer.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGjE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,GACb,EAAE;IACD,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3F,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACjF,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACvF,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,GAAG,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"SddTaskDrawer.d.ts","sourceRoot":"","sources":["../../src/components/SddTaskDrawer.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGjE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,GACb,EAAE;IACD,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3F,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACjF,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI,CAAC;IACvF,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,GAAG,KAAK,CAAC,YAAY,CA2drB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchOverlay.d.ts","sourceRoot":"","sources":["../../src/components/SearchOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AActE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAYxD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,
|
|
1
|
+
{"version":3,"file":"SearchOverlay.d.ts","sourceRoot":"","sources":["../../src/components/SearchOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AActE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAYxD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,uCA0N5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrainSection.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/BrainSection.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAA6C,MAAM,OAAO,CAAC;AAqLrF,wBAAgB,YAAY,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"BrainSection.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/BrainSection.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAA6C,MAAM,OAAO,CAAC;AAqLrF,wBAAgB,YAAY,IAAI,YAAY,CAg3B3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChimeraSettingsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/ChimeraSettingsPanel.tsx"],"names":[],"mappings":"AAyBA,UAAU,yBAAyB;IACjC,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,eAAe,EACf,YAAY,GACb,EAAE,yBAAyB,+
|
|
1
|
+
{"version":3,"file":"ChimeraSettingsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/ChimeraSettingsPanel.tsx"],"names":[],"mappings":"AAyBA,UAAU,yBAAyB;IACjC,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,eAAe,EACf,YAAY,GACb,EAAE,yBAAyB,+BAmU3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsPanel/index.tsx"],"names":[],"mappings":"AAiEA,wBAAgB,aAAa,gCA6mC5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SidePanel/AgentsPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"AgentsPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SidePanel/AgentsPanel.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,wBAAgB,WAAW,gCA+P1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SidePanel/SessionPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"SessionPanel.d.ts","sourceRoot":"","sources":["../../../src/components/SidePanel/SessionPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0KH,wBAAgB,YAAY,gCAiZ3B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TaskVerificationSection — the verification surface rendered for EVERY task
|
|
3
|
+
* (not only those that already carry a report):
|
|
4
|
+
* - report present → the existing VerificationReportPanel, unchanged;
|
|
5
|
+
* - verification running → spinner state;
|
|
6
|
+
* - no report → explicit "Unverified" empty state + a "Run
|
|
7
|
+
* verification" action (kanban.task.verify round-trip).
|
|
8
|
+
*/
|
|
9
|
+
import type { KanbanTask } from '@wrongstack/kanban';
|
|
10
|
+
export declare function TaskVerificationSection({ boardId, task, sendKanban, }: {
|
|
11
|
+
boardId: string;
|
|
12
|
+
task: KanbanTask;
|
|
13
|
+
sendKanban: (type: `kanban.${string}`, payload?: Record<string, unknown>) => void;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=TaskVerificationSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskVerificationSection.d.ts","sourceRoot":"","sources":["../../src/components/TaskVerificationSection.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMrD,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACP,IAAI,EACJ,UAAU,GACX,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACnF,+BA8CA"}
|
|
@@ -15,6 +15,7 @@ export interface DependencyDetailProps {
|
|
|
15
15
|
};
|
|
16
16
|
onDeepDive: (dependency: TechStackDependency) => void;
|
|
17
17
|
onBack: () => void;
|
|
18
|
+
coverage?: string | undefined;
|
|
18
19
|
}
|
|
19
|
-
export declare function DependencyDetail({ dependency, findings, deepDive, onDeepDive, onBack, }: DependencyDetailProps): import("react").JSX.Element;
|
|
20
|
+
export declare function DependencyDetail({ dependency, findings, deepDive, onDeepDive, onBack, coverage, }: DependencyDetailProps): import("react").JSX.Element;
|
|
20
21
|
//# sourceMappingURL=DependencyDetail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyDetail.d.ts","sourceRoot":"","sources":["../../../src/components/TechStackView/DependencyDetail.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"DependencyDetail.d.ts","sourceRoot":"","sources":["../../../src/components/TechStackView/DependencyDetail.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAetE,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACtC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACzE,UAAU,EAAE,CAAC,UAAU,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACtD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,GACT,EAAE,qBAAqB,+BA0LvB"}
|
|
@@ -11,7 +11,8 @@ export interface DependencyTableProps {
|
|
|
11
11
|
dependencies: readonly TechStackDependency[];
|
|
12
12
|
selectedId: string | null;
|
|
13
13
|
hasDependencies: boolean;
|
|
14
|
+
coverageByWorkspaceId?: ReadonlyMap<string, string> | undefined;
|
|
14
15
|
onSelect: (dependency: TechStackDependency) => void;
|
|
15
16
|
}
|
|
16
|
-
export declare function DependencyTable({ dependencies, selectedId, hasDependencies, onSelect, }: DependencyTableProps): import("react").JSX.Element;
|
|
17
|
+
export declare function DependencyTable({ dependencies, selectedId, hasDependencies, coverageByWorkspaceId, onSelect, }: DependencyTableProps): import("react").JSX.Element;
|
|
17
18
|
//# sourceMappingURL=DependencyTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyTable.d.ts","sourceRoot":"","sources":["../../../src/components/TechStackView/DependencyTable.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAKpD,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,CAAC,UAAU,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACrD;AAID,wBAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,UAAU,EACV,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,+
|
|
1
|
+
{"version":3,"file":"DependencyTable.d.ts","sourceRoot":"","sources":["../../../src/components/TechStackView/DependencyTable.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAKpD,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAChE,QAAQ,EAAE,CAAC,UAAU,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACrD;AAID,wBAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,QAAQ,GACT,EAAE,oBAAoB,+BAmDtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TechStackView/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TechStackView/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAqFH,wBAAgB,aAAa,gCA8d5B"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @see docs/specs/techstack-sdd.md §6
|
|
5
5
|
*/
|
|
6
|
+
import type { ComponentType } from 'react';
|
|
6
7
|
import type { TechStackCoverage, TechStackDependency, TechStackFinding, TechStackFindingSeverity } from '@/stores';
|
|
7
8
|
export interface StatusMeta {
|
|
8
9
|
readonly label: string;
|
|
@@ -23,6 +24,33 @@ export interface StatusMeta {
|
|
|
23
24
|
*/
|
|
24
25
|
export declare const STATUS_META: Record<string, StatusMeta>;
|
|
25
26
|
export declare function statusMeta(status: string): StatusMeta;
|
|
27
|
+
export interface EcosystemMeta {
|
|
28
|
+
/** Human-readable display name for the ecosystem. */
|
|
29
|
+
readonly label: string;
|
|
30
|
+
/** Optional lucide-react icon component for visual identification. */
|
|
31
|
+
readonly icon?: ComponentType<{
|
|
32
|
+
className?: string;
|
|
33
|
+
}> | undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* One entry per `EcosystemId` in the TechStack type system.
|
|
37
|
+
*
|
|
38
|
+
* Every label is an explicit literal — computed at read-time from the
|
|
39
|
+
* ecosystem string received from the server, so adding a new ecosystem
|
|
40
|
+
* to `packages/techstack/src/types.ts` requires a matching entry here
|
|
41
|
+
* for the UI to display a human-readable label.
|
|
42
|
+
*/
|
|
43
|
+
export declare const ECOSYSTEM_META: Record<string, EcosystemMeta>;
|
|
44
|
+
export declare function ecosystemMeta(ecosystem: string): EcosystemMeta;
|
|
45
|
+
/**
|
|
46
|
+
* Renders the ecosystem icon if one is registered, or nothing.
|
|
47
|
+
* Use in list rows, detail headers, and dropdown options where
|
|
48
|
+
* space permits a small visual cue.
|
|
49
|
+
*/
|
|
50
|
+
export declare function EcosystemIcon({ ecosystem, className, }: {
|
|
51
|
+
ecosystem: string;
|
|
52
|
+
className?: string;
|
|
53
|
+
}): import("react").JSX.Element | null;
|
|
26
54
|
/** Statuses that mean "someone should look at this". Drives the metrics strip. */
|
|
27
55
|
export declare function needsAttention(dep: TechStackDependency): boolean;
|
|
28
56
|
export declare const SEVERITY_ORDER: readonly TechStackFindingSeverity[];
|
|
@@ -31,10 +59,15 @@ export declare const SEVERITY_META: Record<TechStackFindingSeverity, {
|
|
|
31
59
|
badge: string;
|
|
32
60
|
}>;
|
|
33
61
|
export declare const ACTION_LABELS: Record<string, string>;
|
|
34
|
-
export
|
|
35
|
-
label: string;
|
|
36
|
-
badge: string;
|
|
37
|
-
|
|
62
|
+
export interface CoverageMeta {
|
|
63
|
+
readonly label: string;
|
|
64
|
+
readonly badge: string;
|
|
65
|
+
/** Short inline text for the dependency row subtitle (e.g. "limited", "best-effort"). */
|
|
66
|
+
readonly note: string | undefined;
|
|
67
|
+
}
|
|
68
|
+
export declare const COVERAGE_META: Record<TechStackCoverage, CoverageMeta>;
|
|
69
|
+
/** Lookup helper that returns the FALLBACK for unknown coverage strings. */
|
|
70
|
+
export declare function coverageMeta(coverage: string): CoverageMeta;
|
|
38
71
|
export interface VersionDrift {
|
|
39
72
|
/** Whole major versions behind latest stable. `0` when on the latest major. */
|
|
40
73
|
readonly majorsBehind: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/components/TechStackView/shared.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CA+ElD,CAAC;AASF,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAErD;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAEhE;AAID,eAAO,MAAM,cAAc,EAAE,SAAS,wBAAwB,EAM7D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,wBAAwB,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAM5F,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQhD,CAAC;AAIF,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/components/TechStackView/shared.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAe3C,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CA+ElD,CAAC;AASF,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAErD;AAID,MAAM,WAAW,aAAa;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;CACnE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAcxD,CAAC;AAIF,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,SAA+B,GAChC,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,sCAKA;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAEhE;AAID,eAAO,MAAM,cAAc,EAAE,SAAS,wBAAwB,EAM7D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,wBAAwB,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAM5F,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQhD,CAAC;AAIF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAYjE,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAE3D;AAqBD,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,mBAAmB,GAAG,YAAY,CAWnE;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAExE;AAID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAEnE;AAID,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,+BAW9F;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAgB,GACjB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,CAAC;CACnE,+BAoBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/activity-bar/index.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAOtD,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,UAAU,CAAC;AA+ElB,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAK/E;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC9D,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAC7B,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,eAAe,EAAE,QAAQ,EAAE,CAAC;CAC7B,CAYA;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,QAAQ,EAA4B,CAAC;AAyBxE,wBAAgB,WAAW,CAAC,EAAE,YAAoB,EAAE,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,+
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/activity-bar/index.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAOtD,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,UAAU,CAAC;AA+ElB,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAK/E;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC9D,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAC7B,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,eAAe,EAAE,QAAQ,EAAE,CAAC;CAC7B,CAYA;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,QAAQ,EAA4B,CAAC;AAyBxE,wBAAgB,WAAW,CAAC,EAAE,YAAoB,EAAE,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,+BAuK3F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDetailSection.d.ts","sourceRoot":"","sources":["../../../src/components/agents/AgentDetailSection.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC;CAC1C;
|
|
1
|
+
{"version":3,"file":"AgentDetailSection.d.ts","sourceRoot":"","sources":["../../../src/components/agents/AgentDetailSection.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC;CAC1C;AAED,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,UAAU,EACV,eAAe,GAChB,EAAE,uBAAuB,+BAqPzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentRosterCard.d.ts","sourceRoot":"","sources":["../../../src/components/agents/AgentRosterCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC;IAClC,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC;IACzC,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAUD,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,oBAAoB,+
|
|
1
|
+
{"version":3,"file":"AgentRosterCard.d.ts","sourceRoot":"","sources":["../../../src/components/agents/AgentRosterCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC;IAClC,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC;IACzC,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAUD,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,oBAAoB,+BAqI5I"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FleetSummaryBar.d.ts","sourceRoot":"","sources":["../../../src/components/agents/FleetSummaryBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,oBAAoB,+
|
|
1
|
+
{"version":3,"file":"FleetSummaryBar.d.ts","sourceRoot":"","sources":["../../../src/components/agents/FleetSummaryBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,oBAAoB,+BA6H9E"}
|
|
@@ -59,6 +59,15 @@ export declare function scopeUrl(scope: CodeMapScope): string;
|
|
|
59
59
|
export declare function relationItems(graph: CodeMapGraphResponse, nodeId: string, direction: 'incoming' | 'outgoing'): RelationItem[];
|
|
60
60
|
export declare function connectedNodeIds(graph: CodeMapGraphResponse, nodeId: string): Set<string>;
|
|
61
61
|
export declare function layoutGraph(graph: CodeMapGraphResponse, layout: CodeMapLayout, focusId?: string): PositionedGraphNode[];
|
|
62
|
+
/** Default SMART canvas node budget — keeps React Flow DOM under control. */
|
|
63
|
+
export declare const SMART_CANVAS_NODE_LIMIT = 96;
|
|
64
|
+
/** SMART mode also caps edges; dense graphs otherwise paint thousands of SVG paths. */
|
|
65
|
+
export declare const SMART_CANVAS_EDGE_LIMIT = 180;
|
|
66
|
+
/**
|
|
67
|
+
* Reduce a scope graph to a renderable SMART subset: strongest nodes, selected
|
|
68
|
+
* neighbourhood, and a capped edge set so React Flow stays interactive.
|
|
69
|
+
*/
|
|
70
|
+
export declare function smartCanvasGraph(graph: CodeMapGraphResponse, selectedId: string | null, mode: 'smart' | 'all'): CodeMapGraphResponse;
|
|
62
71
|
export declare function relativeFilePath(node: GraphNodeData): string;
|
|
63
72
|
export declare function buildDirectoryTree(nodes: GraphNodeData[]): DirectoryNode;
|
|
64
73
|
//# sourceMappingURL=codemap-model.d.ts.map
|