@cleocode/cleo 2026.9.4 → 2026.9.5

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.
Files changed (78) hide show
  1. package/dist/cli/index.js +94 -22
  2. package/dist/cli/index.js.map +1 -1
  3. package/package.json +13 -13
  4. package/studio-dist/client/_app/immutable/chunks/9yrFrmKZ.js +1 -0
  5. package/studio-dist/client/_app/immutable/chunks/{CfaaCiec.js → C7UP-KLT.js} +1 -1
  6. package/studio-dist/client/_app/immutable/chunks/{wIquQ8oS.js → CKXdW4mW.js} +1 -1
  7. package/studio-dist/client/_app/immutable/chunks/DrfFUIvQ.js +3 -0
  8. package/studio-dist/client/_app/immutable/entry/{app.DmCNBm9N.js → app.BwkUGH1B.js} +2 -2
  9. package/studio-dist/client/_app/immutable/entry/start.BcsID0Sf.js +1 -0
  10. package/studio-dist/client/_app/immutable/nodes/{0.CgZmurcA.js → 0.DcUJW-xi.js} +1 -1
  11. package/studio-dist/client/_app/immutable/nodes/{1.1dbkrilf.js → 1.DyTt_cQs.js} +1 -1
  12. package/studio-dist/client/_app/immutable/nodes/{15.Bz_Nz80F.js → 15.LRqqoueS.js} +1 -1
  13. package/studio-dist/client/_app/immutable/nodes/{16.D6pij0yb.js → 16.-hGPNXOI.js} +1 -1
  14. package/studio-dist/client/_app/immutable/nodes/{17.DJb8ywg2.js → 17.ChMxgTIY.js} +1 -1
  15. package/studio-dist/client/_app/immutable/nodes/{18.D3v2MpXF.js → 18.B9zeITVb.js} +1 -1
  16. package/studio-dist/client/_app/immutable/nodes/{20.KY914NXe.js → 20.BHg5roNq.js} +1 -1
  17. package/studio-dist/client/_app/immutable/nodes/{24.CZxqm68e.js → 24.B_s9aY5m.js} +1 -1
  18. package/studio-dist/client/_app/immutable/nodes/{25.olJPvxdc.js → 25.DZXkDxw_.js} +1 -1
  19. package/studio-dist/client/_app/immutable/nodes/{26.e4ryC6oN.js → 26.BBRbdwIG.js} +1 -1
  20. package/studio-dist/client/_app/immutable/nodes/{3.DywBpwr0.js → 3.DMYcrZeG.js} +1 -1
  21. package/studio-dist/client/_app/version.json +1 -1
  22. package/studio-dist/server/chunks/{0-DwFPJnkU.js → 0-CM4iQVYP.js} +3 -3
  23. package/studio-dist/server/chunks/{0-DwFPJnkU.js.map → 0-CM4iQVYP.js.map} +1 -1
  24. package/studio-dist/server/chunks/{1-CG5_Q8zX.js → 1-BQFD-dx6.js} +3 -3
  25. package/studio-dist/server/chunks/{1-CG5_Q8zX.js.map → 1-BQFD-dx6.js.map} +1 -1
  26. package/studio-dist/server/chunks/{15-CZZGY2wS.js → 15-Cng10n82.js} +3 -3
  27. package/studio-dist/server/chunks/{15-CZZGY2wS.js.map → 15-Cng10n82.js.map} +1 -1
  28. package/studio-dist/server/chunks/{16-i0yNeXoO.js → 16-u3KwU3N4.js} +3 -3
  29. package/studio-dist/server/chunks/{16-i0yNeXoO.js.map → 16-u3KwU3N4.js.map} +1 -1
  30. package/studio-dist/server/chunks/{17-DpnTEz3y.js → 17-BDtxQX9n.js} +3 -3
  31. package/studio-dist/server/chunks/{17-DpnTEz3y.js.map → 17-BDtxQX9n.js.map} +1 -1
  32. package/studio-dist/server/chunks/{18-BlVCh80I.js → 18-wwUoSO4F.js} +3 -3
  33. package/studio-dist/server/chunks/{18-BlVCh80I.js.map → 18-wwUoSO4F.js.map} +1 -1
  34. package/studio-dist/server/chunks/{20-DuPsaTgc.js → 20-B-0CBvqY.js} +3 -3
  35. package/studio-dist/server/chunks/{20-DuPsaTgc.js.map → 20-B-0CBvqY.js.map} +1 -1
  36. package/studio-dist/server/chunks/{24-NxmS9Pgy.js → 24-BeVcofpU.js} +3 -3
  37. package/studio-dist/server/chunks/{24-NxmS9Pgy.js.map → 24-BeVcofpU.js.map} +1 -1
  38. package/studio-dist/server/chunks/{25-mYlhGw4v.js → 25-DIuzTPOu.js} +3 -3
  39. package/studio-dist/server/chunks/{25-mYlhGw4v.js.map → 25-DIuzTPOu.js.map} +1 -1
  40. package/studio-dist/server/chunks/{26-HWQ-Ern5.js → 26-CY8x0KNI.js} +3 -3
  41. package/studio-dist/server/chunks/{26-HWQ-Ern5.js.map → 26-CY8x0KNI.js.map} +1 -1
  42. package/studio-dist/server/chunks/{3-ByOeP3Gf.js → 3-p3RwD-FY.js} +3 -3
  43. package/studio-dist/server/chunks/{3-ByOeP3Gf.js.map → 3-p3RwD-FY.js.map} +1 -1
  44. package/studio-dist/server/chunks/{_layout.svelte-DHjtdIgc.js → _layout.svelte-rswfOTDe.js} +4 -4
  45. package/studio-dist/server/chunks/{_layout.svelte-DHjtdIgc.js.map → _layout.svelte-rswfOTDe.js.map} +1 -1
  46. package/studio-dist/server/chunks/{_page.svelte-94NcV7tl.js → _page.svelte-BT1YF8j2.js} +4 -4
  47. package/studio-dist/server/chunks/{_page.svelte-94NcV7tl.js.map → _page.svelte-BT1YF8j2.js.map} +1 -1
  48. package/studio-dist/server/chunks/{_page.svelte-Bts_IhOg.js → _page.svelte-C9twD2l1.js} +3 -3
  49. package/studio-dist/server/chunks/{_page.svelte-Bts_IhOg.js.map → _page.svelte-C9twD2l1.js.map} +1 -1
  50. package/studio-dist/server/chunks/{_page.svelte-JjbfOpHp.js → _page.svelte-CHH1vmfg.js} +3 -3
  51. package/studio-dist/server/chunks/{_page.svelte-JjbfOpHp.js.map → _page.svelte-CHH1vmfg.js.map} +1 -1
  52. package/studio-dist/server/chunks/{_page.svelte-veJzLVtt.js → _page.svelte-CiIYIPG9.js} +3 -3
  53. package/studio-dist/server/chunks/{_page.svelte-veJzLVtt.js.map → _page.svelte-CiIYIPG9.js.map} +1 -1
  54. package/studio-dist/server/chunks/{_page.svelte-BDSxuyHW.js → _page.svelte-D8NhlkPD.js} +3 -3
  55. package/studio-dist/server/chunks/{_page.svelte-BDSxuyHW.js.map → _page.svelte-D8NhlkPD.js.map} +1 -1
  56. package/studio-dist/server/chunks/{_page.svelte-CvTF_ebH.js → _page.svelte-DKVwBmIp.js} +4 -4
  57. package/studio-dist/server/chunks/{_page.svelte-CvTF_ebH.js.map → _page.svelte-DKVwBmIp.js.map} +1 -1
  58. package/studio-dist/server/chunks/{_page.svelte-huH3MwZ_.js → _page.svelte-DZEnHo1L.js} +3 -3
  59. package/studio-dist/server/chunks/{_page.svelte-huH3MwZ_.js.map → _page.svelte-DZEnHo1L.js.map} +1 -1
  60. package/studio-dist/server/chunks/{_page.svelte-CGOmwPIU.js → _page.svelte-DaYxqOUS.js} +3 -3
  61. package/studio-dist/server/chunks/{_page.svelte-CGOmwPIU.js.map → _page.svelte-DaYxqOUS.js.map} +1 -1
  62. package/studio-dist/server/chunks/{_page.svelte-CBAVKefr.js → _page.svelte-DmTXiXKT.js} +3 -3
  63. package/studio-dist/server/chunks/{_page.svelte-CBAVKefr.js.map → _page.svelte-DmTXiXKT.js.map} +1 -1
  64. package/studio-dist/server/chunks/{client-CnSSIJRB.js → client-ym-URLFs.js} +2 -2
  65. package/studio-dist/server/chunks/{client-CnSSIJRB.js.map → client-ym-URLFs.js.map} +1 -1
  66. package/studio-dist/server/chunks/{error.svelte-BLSLV0aG.js → error.svelte-Bt1EbBZe.js} +3 -3
  67. package/studio-dist/server/chunks/{error.svelte-BLSLV0aG.js.map → error.svelte-Bt1EbBZe.js.map} +1 -1
  68. package/studio-dist/server/chunks/{internal-Cs1b0-2z.js → internal-D3i_4gCl.js} +2 -2
  69. package/studio-dist/server/chunks/{internal-Cs1b0-2z.js.map → internal-D3i_4gCl.js.map} +1 -1
  70. package/studio-dist/server/chunks/{stores-ye7Cop_n.js → stores-ByevKXL9.js} +2 -2
  71. package/studio-dist/server/chunks/{stores-ye7Cop_n.js.map → stores-ByevKXL9.js.map} +1 -1
  72. package/studio-dist/server/index.js +1 -1
  73. package/studio-dist/server/index.js.map +1 -1
  74. package/studio-dist/server/manifest.js +12 -12
  75. package/studio-dist/server/manifest.js.map +1 -1
  76. package/studio-dist/client/_app/immutable/chunks/BKR-sjxJ.js +0 -3
  77. package/studio-dist/client/_app/immutable/chunks/CifRJkIA.js +0 -1
  78. package/studio-dist/client/_app/immutable/entry/start.znBlkFx8.js +0 -1
@@ -1 +1 @@
1
- import{$ as e,A as t,B as n,D as r,E as i,H as a,I as o,J as s,K as c,M as l,N as u,O as d,P as f,Q as p,U as m,X as h,Y as g,a as _,at as v,d as y,et as b,k as x,lt as S,nt as C,ot as w,tt as ee,ut as T,v as E,w as D,x as O,z as k}from"../chunks/DyGQ_VXC.js";import{r as A}from"../chunks/BKR-sjxJ.js";import"../chunks/CQCxd1p9.js";import{t as j}from"../chunks/CfaaCiec.js";import{a as te}from"../chunks/CEqOYim7.js";import"../chunks/CqF5Lomf.js";import{C as M,S as N,f as P,i as F}from"../chunks/DhhrVdfi.js";import"../chunks/CifRJkIA.js";import{n as I,t as L}from"../chunks/DvxYFW4C.js";var R=t(`· scoped to <code class="svelte-1lzd0zi"> </code>`,1),z=t(`for <code class="svelte-1lzd0zi"> </code>`,1),B=t(`<div class="empty-state svelte-1lzd0zi"><p>No tasks in this workgraph <!>.</p></div>`),V=t(`<div class="workgraph-view svelte-1lzd0zi"><div class="workgraph-meta svelte-1lzd0zi"><span class="count svelte-1lzd0zi"><strong class="svelte-1lzd0zi"> </strong> nodes · <strong class="svelte-1lzd0zi"> </strong> edges <!></span> <span class="legend-hint svelte-1lzd0zi">containment · depends · blocks</span></div> <div class="workgraph-body svelte-1lzd0zi"><div class="graph-wrap svelte-1lzd0zi"><!></div> <!></div></div>`);function H(e,t){w(t,!0);let n=_(t,`sagaId`,3,null),c=_(t,`includeCancelled`,3,!1),l=_(t,`selectedId`,15,null),u=b(()=>M(t.tasks,t.deps,{epicScope:n(),includeCancelled:c(),includeArchived:!1})),f=new Set([`parent`,`blocks`,`depends`]),p=b(()=>new Map(t.tasks.map(e=>[e.id,e]))),m=b(()=>l()?o(p).get(l())??null:null),y=b(()=>{if(!o(m))return[];let e=[];for(let n of t.deps){if(n.taskId!==o(m).id)continue;let t=o(p).get(n.dependsOn);t&&e.push({id:t.id,title:t.title,status:t.status,priority:t.priority})}return e}),x=b(()=>{if(!o(m))return[];let e=[];for(let n of t.deps){if(n.dependsOn!==o(m).id)continue;let t=o(p).get(n.taskId);t&&e.push({id:t.id,title:t.title,status:t.status,priority:t.priority})}return e}),C=b(()=>{if(!o(m))return[];let e=[],t=o(m).parentId?o(p).get(o(m).parentId):void 0,n=new Set;for(;t&&!n.has(t.id);)n.add(t.id),e.unshift({id:t.id,title:t.title,type:t.type}),t=t.parentId?o(p).get(t.parentId):void 0;return e});function ee(e){l(e.id)}function E(){l(null)}function D(e){l(e)}var O=V(),k=s(O),A=s(k),j=s(A),te=s(j,!0);T(j);var F=h(j,2),I=s(F,!0);T(F);var L=h(F,2),H=e=>{var t=R(),i=h(g(t)),o=s(i,!0);T(i),a(()=>r(o,n())),d(e,t)};i(L,e=>{n()&&e(H)}),T(A),S(2),T(k);var U=h(k,2),W=s(U),G=s(W),K=e=>{var t=B(),o=s(t),c=h(s(o)),l=e=>{var t=z(),i=h(g(t)),o=s(i,!0);T(i),a(()=>r(o,n())),d(e,t)};i(c,e=>{n()&&e(l)}),S(),T(o),T(t),d(e,t)},q=e=>{N(e,{get nodes(){return o(u).nodes},get edges(){return o(u).edges},get clusters(){return o(u).clusters},get visibleEdgeKinds(){return f},get selectedNodeId(){return l()},onNodeClick:ee,showLabels:`id-only`,nodeRenderer:`pill`,showToolbar:!0,showLegend:!0,ariaLabel:`Saga workgraph — containment and dependency edges`})};i(G,e=>{o(u).nodes.length===0?e(K):e(q,-1)}),T(W);var J=h(W,2),Y=e=>{P(e,{get task(){return o(m)},get upstream(){return o(y)},get downstream(){return o(x)},get parentChain(){return o(C)},onClose:E,onSelectDep:D})};i(J,e=>{o(m)&&e(Y)}),T(U),T(O),a(()=>{r(te,o(u).nodes.length),r(I,o(u).edges.length)}),d(e,O),v()}var U=[`hermes`,`nous`,`bronze`,`slate`,`mono`],W={hermes:`Hermes`,nous:`Nous`,bronze:`Bronze`,slate:`Slate`,mono:`Mono`},G=`hermes`,K=`cleo-studio-theme`,q=`cleo-studio-theme-mode`;function J(e){return U.includes(e??``)?e:G}var Y=class{#e=e(G);#t=e(!1);constructor(e){e&&p(this.#e,e,!0)}get active(){return o(this.#e)}get light(){return o(this.#t)}get themes(){return U}hydrate(){typeof localStorage<`u`&&(p(this.#e,J(localStorage.getItem(K)),!0),p(this.#t,localStorage.getItem(q)===`light`)),this.apply()}set(e){p(this.#e,e,!0),typeof localStorage<`u`&&localStorage.setItem(K,e),this.apply()}toggleLight(){p(this.#t,!o(this.#t)),typeof localStorage<`u`&&localStorage.setItem(q,o(this.#t)?`light`:`dark`),this.apply()}apply(){if(typeof document>`u`)return;let e=document.documentElement;e.setAttribute(`data-theme`,o(this.#e)),e.classList.toggle(`light`,o(this.#t))}};function ne(e){return new Y(e)}var X=t(`<button type="button" role="radio"><span class="swatch svelte-2szurj" aria-hidden="true"></span> </button>`),Z=t(`<div class="theme-switcher svelte-2szurj" role="group" aria-label="Operator console theme"><div class="seg svelte-2szurj" role="radiogroup" aria-label="Theme palette"></div> <button type="button" class="mode-btn svelte-2szurj" title="Toggle light operator console"> </button></div>`);function re(e,t){w(t,!0);function n(e){t.theme.set(e)}var i=Z(),o=s(i);D(o,20,()=>t.theme.themes,e=>e,(e,i)=>{var o=X();let c;var l=s(o),u=h(l);T(o),a(()=>{c=E(o,1,`seg-btn svelte-2szurj`,null,c,{active:t.theme.active===i}),y(o,`aria-checked`,t.theme.active===i),y(o,`title`,`${W[i]} theme`),y(l,`data-theme`,i),r(u,` ${W[i]??``}`)}),f(`click`,o,()=>n(i)),d(e,o)}),T(o);var c=h(o,2),l=s(c,!0);T(c),T(i),a(()=>{y(c,`aria-pressed`,t.theme.light),r(l,t.theme.light?`Light`:`Dark`)}),f(`click`,c,()=>t.theme.toggleLight()),d(e,i),v()}u([`click`]);var Q=t(`<div class="empty-state svelte-62ic89"><p class="svelte-62ic89">No active cards in <code class="svelte-62ic89"> </code>.</p></div>`),ie=t(`<div class="board-host svelte-62ic89"><!></div>`),ae=t(`<div role="status" aria-live="polite"> </div>`),$=t(`<div class="saga-kanban-pane svelte-62ic89"><div class="pane-meta svelte-62ic89"><span class="count svelte-62ic89"><strong class="svelte-62ic89"> </strong> cards in saga</span> <span><span class="live-dot svelte-62ic89" aria-hidden="true"></span> </span></div> <!></div> <!> <!>`,1);function oe(t,n){w(n,!0);let c=L({root:k(()=>n.sagaId)}),l=e(!1);m(()=>(c.hydrate().then(()=>{p(l,!0)}),c.connect(),()=>c.disconnect()));let u=b(()=>c.lanes),f=b(()=>c.columns.flatMap(e=>e.cards.filter(e=>n.subtreeIds.has(e.id)).map(e=>({...e,__lane:e.lane}))));function _(e){return e.__lane??`backlog`}let y=e(null),x=b(()=>o(y)?o(f).find(e=>e.id===o(y))??null:null),C=b(()=>o(x)?{id:o(x).id,title:o(x).title,description:o(x).title,status:o(x).status,priority:o(x).priority,size:o(x).size??void 0,createdAt:new Date().toISOString()}:null);function ee(e){p(y,e,!0)}function D(){p(y,null)}let O=e(null),A=null;function j(e,t){p(O,{kind:e,message:t},!0),A&&clearTimeout(A),A=setTimeout(()=>{p(O,null)},4200)}async function te(e,t,n){let r=t,i=n,a=F(e,r,i);if(!a.ok){j(`err`,a.message);return}let o=await c.move(e,r,i);if(!o.ok){j(`err`,o.message);return}j(`ok`,a.plan.summary)}let M=b(()=>o(l)&&c.connected),N=b(()=>o(f).length);var R=$(),z=g(R),B=s(z),V=s(B),H=s(V),U=s(H,!0);T(H),S(),T(V);var W=h(V,2);let G;var K=h(s(W));T(W),T(B);var q=h(B,2),J=e=>{var t=Q(),i=s(t),o=h(s(i)),c=s(o,!0);T(o),S(),T(i),T(t),a(()=>r(c,n.sagaId)),d(e,t)},Y=e=>{var t=ie();I(s(t),{get lanes(){return o(u)},get cards(){return o(f)},laneResolver:_,onSelect:ee,onMove:te}),T(t),d(e,t)};i(q,e=>{o(l)&&o(N)===0?e(J):e(Y,-1)}),T(z);var ne=h(z,2),X=e=>{var t=ae();let n;var i=s(t,!0);T(t),a(()=>{n=E(t,1,`toast svelte-62ic89`,null,n,{err:o(O).kind===`err`}),r(i,o(O).message)}),d(e,t)};i(ne,e=>{o(O)&&e(X)});var Z=h(ne,2),re=e=>{P(e,{get task(){return o(C)},onClose:D})};i(Z,e=>{o(C)&&e(re)}),a(()=>{r(U,o(N)),G=E(W,1,`live svelte-62ic89`,null,G,{connected:o(M)}),r(K,` ${o(M)?`live`:`connecting…`}`)}),d(t,R),v()}var se=t(`<meta name="robots" content="noindex"/>`),ce=t(`<span class="crumb-title svelte-b7bs0"> </span>`),le=t(`<div class="shell-error svelte-b7bs0" role="alert"><p> </p></div>`),ue=t(`<div class="shell-error svelte-b7bs0" role="alert"><p>No workgraph bundle available for this saga.</p></div>`);t(`<div class="ssr-placeholder svelte-b7bs0"><p>Loading the live board…</p></div>`);var de=t(`<section class="saga-shell svelte-b7bs0"><header class="command-bar svelte-b7bs0"><nav class="crumbs svelte-b7bs0" aria-label="Breadcrumb"><a class="crumb svelte-b7bs0" href="/projects"> </a> <span class="sep svelte-b7bs0" aria-hidden="true">▸</span> <span class="crumb current svelte-b7bs0"><code class="svelte-b7bs0"> </code> <!></span> <!></nav> <div class="toggle svelte-b7bs0" role="tablist" aria-label="Saga view"><button type="button" role="tab">Workgraph</button> <button type="button" role="tab">Kanban</button></div> <div class="bar-right svelte-b7bs0"><!></div></header> <div class="canvas svelte-b7bs0"><!></div> <footer class="shell-foot svelte-b7bs0"><span class="hint svelte-b7bs0"> </span></footer></section>`);function fe(e,t){w(t,!0);let u=()=>C(j,`$page`,p),[p,_]=ee(),D=ne();m(()=>{D.hydrate()});let k=b(()=>u().url.searchParams.get(`view`)===`kanban`?`kanban`:`workgraph`);function M(e){let t=new URL(u().url);t.searchParams.set(`view`,e),A(t.pathname+t.search,{replaceState:!0,noScroll:!0,keepFocus:!0})}let N=b(()=>{let e=new Set([t.data.sagaId]),n=t.data.explorer?.tasks??[],r=!0;for(;r;){r=!1;for(let t of n)e.has(t.id)||t.parentId&&e.has(t.parentId)&&(e.add(t.id),r=!0)}return e}),P=b(()=>t.data.saga?.title??t.data.sagaId),F=b(()=>t.data.explorer?.tasks.length??0);var I=de();O(`b7bs0`,e=>{var r=se();n(()=>{c.title=`${t.data.sagaId??``} · ${t.data.projectName??``} — CLEO Studio`}),d(e,r)});var L=s(I),R=s(L),z=s(R),B=s(z,!0);T(z);var V=h(z,4),U=s(V),W=s(U,!0);T(U);var G=h(U,2),K=e=>{var n=ce(),i=s(n,!0);T(n),a(()=>r(i,t.data.saga.title)),d(e,n)};i(G,e=>{t.data.saga&&e(K)}),T(V);var q=h(V,2),J=e=>{te(e,{tone:`info`,size:`sm`,children:(e,n)=>{S();var i=l();a(()=>r(i,t.data.saga.type)),d(e,i)},$$slots:{default:!0}})};i(q,e=>{t.data.saga&&e(J)}),T(R);var Y=h(R,2),X=s(Y);let Z;var Q=h(X,2);let ie;T(Y);var ae=h(Y,2);re(s(ae),{get theme(){return D}}),T(ae),T(L);var $=h(L,2),fe=s($),pe=e=>{var n=le(),i=s(n),o=s(i,!0);T(i),T(n),a(()=>r(o,t.data.error)),d(e,n)},me=e=>{d(e,ue())},he=e=>{H(e,{get tasks(){return t.data.explorer.tasks},get deps(){return t.data.explorer.deps},get sagaId(){return t.data.sagaId}})},ge=e=>{var n=x(),r=g(n),a=e=>{oe(e,{get sagaId(){return t.data.sagaId},get subtreeIds(){return o(N)}})};i(r,e=>{e(a)}),d(e,n)};i(fe,e=>{t.data.error?e(pe):t.data.explorer?o(k)===`workgraph`?e(he,2):e(ge,-1):e(me,1)}),T($);var _e=h($,2),ve=s(_e),ye=s(ve);T(ve),T(_e),T(I),a(()=>{y(I,`data-view`,o(k)),r(B,t.data.projectName),y(V,`title`,o(P)),r(W,t.data.sagaId),Z=E(X,1,`toggle-btn svelte-b7bs0`,null,Z,{active:o(k)===`workgraph`}),y(X,`aria-selected`,o(k)===`workgraph`),ie=E(Q,1,`toggle-btn svelte-b7bs0`,null,ie,{active:o(k)===`kanban`}),y(Q,`aria-selected`,o(k)===`kanban`),r(ye,`${o(F)??``} tasks in bundle · containment + depends · operator console`)}),f(`click`,X,()=>M(`workgraph`)),f(`click`,Q,()=>M(`kanban`)),d(e,I),v(),_()}u([`click`]);export{fe as component};
1
+ import{$ as e,A as t,B as n,D as r,E as i,H as a,I as o,J as s,K as c,M as l,N as u,O as d,P as f,Q as p,U as m,X as h,Y as g,a as _,at as v,d as y,et as b,k as x,lt as S,nt as C,ot as w,tt as ee,ut as T,v as E,w as D,x as O,z as k}from"../chunks/DyGQ_VXC.js";import{r as A}from"../chunks/DrfFUIvQ.js";import"../chunks/CQCxd1p9.js";import{t as j}from"../chunks/C7UP-KLT.js";import{a as te}from"../chunks/CEqOYim7.js";import"../chunks/CqF5Lomf.js";import{C as M,S as N,f as P,i as F}from"../chunks/DhhrVdfi.js";import"../chunks/9yrFrmKZ.js";import{n as I,t as L}from"../chunks/DvxYFW4C.js";var R=t(`· scoped to <code class="svelte-1lzd0zi"> </code>`,1),z=t(`for <code class="svelte-1lzd0zi"> </code>`,1),B=t(`<div class="empty-state svelte-1lzd0zi"><p>No tasks in this workgraph <!>.</p></div>`),V=t(`<div class="workgraph-view svelte-1lzd0zi"><div class="workgraph-meta svelte-1lzd0zi"><span class="count svelte-1lzd0zi"><strong class="svelte-1lzd0zi"> </strong> nodes · <strong class="svelte-1lzd0zi"> </strong> edges <!></span> <span class="legend-hint svelte-1lzd0zi">containment · depends · blocks</span></div> <div class="workgraph-body svelte-1lzd0zi"><div class="graph-wrap svelte-1lzd0zi"><!></div> <!></div></div>`);function H(e,t){w(t,!0);let n=_(t,`sagaId`,3,null),c=_(t,`includeCancelled`,3,!1),l=_(t,`selectedId`,15,null),u=b(()=>M(t.tasks,t.deps,{epicScope:n(),includeCancelled:c(),includeArchived:!1})),f=new Set([`parent`,`blocks`,`depends`]),p=b(()=>new Map(t.tasks.map(e=>[e.id,e]))),m=b(()=>l()?o(p).get(l())??null:null),y=b(()=>{if(!o(m))return[];let e=[];for(let n of t.deps){if(n.taskId!==o(m).id)continue;let t=o(p).get(n.dependsOn);t&&e.push({id:t.id,title:t.title,status:t.status,priority:t.priority})}return e}),x=b(()=>{if(!o(m))return[];let e=[];for(let n of t.deps){if(n.dependsOn!==o(m).id)continue;let t=o(p).get(n.taskId);t&&e.push({id:t.id,title:t.title,status:t.status,priority:t.priority})}return e}),C=b(()=>{if(!o(m))return[];let e=[],t=o(m).parentId?o(p).get(o(m).parentId):void 0,n=new Set;for(;t&&!n.has(t.id);)n.add(t.id),e.unshift({id:t.id,title:t.title,type:t.type}),t=t.parentId?o(p).get(t.parentId):void 0;return e});function ee(e){l(e.id)}function E(){l(null)}function D(e){l(e)}var O=V(),k=s(O),A=s(k),j=s(A),te=s(j,!0);T(j);var F=h(j,2),I=s(F,!0);T(F);var L=h(F,2),H=e=>{var t=R(),i=h(g(t)),o=s(i,!0);T(i),a(()=>r(o,n())),d(e,t)};i(L,e=>{n()&&e(H)}),T(A),S(2),T(k);var U=h(k,2),W=s(U),G=s(W),K=e=>{var t=B(),o=s(t),c=h(s(o)),l=e=>{var t=z(),i=h(g(t)),o=s(i,!0);T(i),a(()=>r(o,n())),d(e,t)};i(c,e=>{n()&&e(l)}),S(),T(o),T(t),d(e,t)},q=e=>{N(e,{get nodes(){return o(u).nodes},get edges(){return o(u).edges},get clusters(){return o(u).clusters},get visibleEdgeKinds(){return f},get selectedNodeId(){return l()},onNodeClick:ee,showLabels:`id-only`,nodeRenderer:`pill`,showToolbar:!0,showLegend:!0,ariaLabel:`Saga workgraph — containment and dependency edges`})};i(G,e=>{o(u).nodes.length===0?e(K):e(q,-1)}),T(W);var J=h(W,2),Y=e=>{P(e,{get task(){return o(m)},get upstream(){return o(y)},get downstream(){return o(x)},get parentChain(){return o(C)},onClose:E,onSelectDep:D})};i(J,e=>{o(m)&&e(Y)}),T(U),T(O),a(()=>{r(te,o(u).nodes.length),r(I,o(u).edges.length)}),d(e,O),v()}var U=[`hermes`,`nous`,`bronze`,`slate`,`mono`],W={hermes:`Hermes`,nous:`Nous`,bronze:`Bronze`,slate:`Slate`,mono:`Mono`},G=`hermes`,K=`cleo-studio-theme`,q=`cleo-studio-theme-mode`;function J(e){return U.includes(e??``)?e:G}var Y=class{#e=e(G);#t=e(!1);constructor(e){e&&p(this.#e,e,!0)}get active(){return o(this.#e)}get light(){return o(this.#t)}get themes(){return U}hydrate(){typeof localStorage<`u`&&(p(this.#e,J(localStorage.getItem(K)),!0),p(this.#t,localStorage.getItem(q)===`light`)),this.apply()}set(e){p(this.#e,e,!0),typeof localStorage<`u`&&localStorage.setItem(K,e),this.apply()}toggleLight(){p(this.#t,!o(this.#t)),typeof localStorage<`u`&&localStorage.setItem(q,o(this.#t)?`light`:`dark`),this.apply()}apply(){if(typeof document>`u`)return;let e=document.documentElement;e.setAttribute(`data-theme`,o(this.#e)),e.classList.toggle(`light`,o(this.#t))}};function ne(e){return new Y(e)}var X=t(`<button type="button" role="radio"><span class="swatch svelte-2szurj" aria-hidden="true"></span> </button>`),Z=t(`<div class="theme-switcher svelte-2szurj" role="group" aria-label="Operator console theme"><div class="seg svelte-2szurj" role="radiogroup" aria-label="Theme palette"></div> <button type="button" class="mode-btn svelte-2szurj" title="Toggle light operator console"> </button></div>`);function re(e,t){w(t,!0);function n(e){t.theme.set(e)}var i=Z(),o=s(i);D(o,20,()=>t.theme.themes,e=>e,(e,i)=>{var o=X();let c;var l=s(o),u=h(l);T(o),a(()=>{c=E(o,1,`seg-btn svelte-2szurj`,null,c,{active:t.theme.active===i}),y(o,`aria-checked`,t.theme.active===i),y(o,`title`,`${W[i]} theme`),y(l,`data-theme`,i),r(u,` ${W[i]??``}`)}),f(`click`,o,()=>n(i)),d(e,o)}),T(o);var c=h(o,2),l=s(c,!0);T(c),T(i),a(()=>{y(c,`aria-pressed`,t.theme.light),r(l,t.theme.light?`Light`:`Dark`)}),f(`click`,c,()=>t.theme.toggleLight()),d(e,i),v()}u([`click`]);var Q=t(`<div class="empty-state svelte-62ic89"><p class="svelte-62ic89">No active cards in <code class="svelte-62ic89"> </code>.</p></div>`),ie=t(`<div class="board-host svelte-62ic89"><!></div>`),ae=t(`<div role="status" aria-live="polite"> </div>`),$=t(`<div class="saga-kanban-pane svelte-62ic89"><div class="pane-meta svelte-62ic89"><span class="count svelte-62ic89"><strong class="svelte-62ic89"> </strong> cards in saga</span> <span><span class="live-dot svelte-62ic89" aria-hidden="true"></span> </span></div> <!></div> <!> <!>`,1);function oe(t,n){w(n,!0);let c=L({root:k(()=>n.sagaId)}),l=e(!1);m(()=>(c.hydrate().then(()=>{p(l,!0)}),c.connect(),()=>c.disconnect()));let u=b(()=>c.lanes),f=b(()=>c.columns.flatMap(e=>e.cards.filter(e=>n.subtreeIds.has(e.id)).map(e=>({...e,__lane:e.lane}))));function _(e){return e.__lane??`backlog`}let y=e(null),x=b(()=>o(y)?o(f).find(e=>e.id===o(y))??null:null),C=b(()=>o(x)?{id:o(x).id,title:o(x).title,description:o(x).title,status:o(x).status,priority:o(x).priority,size:o(x).size??void 0,createdAt:new Date().toISOString()}:null);function ee(e){p(y,e,!0)}function D(){p(y,null)}let O=e(null),A=null;function j(e,t){p(O,{kind:e,message:t},!0),A&&clearTimeout(A),A=setTimeout(()=>{p(O,null)},4200)}async function te(e,t,n){let r=t,i=n,a=F(e,r,i);if(!a.ok){j(`err`,a.message);return}let o=await c.move(e,r,i);if(!o.ok){j(`err`,o.message);return}j(`ok`,a.plan.summary)}let M=b(()=>o(l)&&c.connected),N=b(()=>o(f).length);var R=$(),z=g(R),B=s(z),V=s(B),H=s(V),U=s(H,!0);T(H),S(),T(V);var W=h(V,2);let G;var K=h(s(W));T(W),T(B);var q=h(B,2),J=e=>{var t=Q(),i=s(t),o=h(s(i)),c=s(o,!0);T(o),S(),T(i),T(t),a(()=>r(c,n.sagaId)),d(e,t)},Y=e=>{var t=ie();I(s(t),{get lanes(){return o(u)},get cards(){return o(f)},laneResolver:_,onSelect:ee,onMove:te}),T(t),d(e,t)};i(q,e=>{o(l)&&o(N)===0?e(J):e(Y,-1)}),T(z);var ne=h(z,2),X=e=>{var t=ae();let n;var i=s(t,!0);T(t),a(()=>{n=E(t,1,`toast svelte-62ic89`,null,n,{err:o(O).kind===`err`}),r(i,o(O).message)}),d(e,t)};i(ne,e=>{o(O)&&e(X)});var Z=h(ne,2),re=e=>{P(e,{get task(){return o(C)},onClose:D})};i(Z,e=>{o(C)&&e(re)}),a(()=>{r(U,o(N)),G=E(W,1,`live svelte-62ic89`,null,G,{connected:o(M)}),r(K,` ${o(M)?`live`:`connecting…`}`)}),d(t,R),v()}var se=t(`<meta name="robots" content="noindex"/>`),ce=t(`<span class="crumb-title svelte-b7bs0"> </span>`),le=t(`<div class="shell-error svelte-b7bs0" role="alert"><p> </p></div>`),ue=t(`<div class="shell-error svelte-b7bs0" role="alert"><p>No workgraph bundle available for this saga.</p></div>`);t(`<div class="ssr-placeholder svelte-b7bs0"><p>Loading the live board…</p></div>`);var de=t(`<section class="saga-shell svelte-b7bs0"><header class="command-bar svelte-b7bs0"><nav class="crumbs svelte-b7bs0" aria-label="Breadcrumb"><a class="crumb svelte-b7bs0" href="/projects"> </a> <span class="sep svelte-b7bs0" aria-hidden="true">▸</span> <span class="crumb current svelte-b7bs0"><code class="svelte-b7bs0"> </code> <!></span> <!></nav> <div class="toggle svelte-b7bs0" role="tablist" aria-label="Saga view"><button type="button" role="tab">Workgraph</button> <button type="button" role="tab">Kanban</button></div> <div class="bar-right svelte-b7bs0"><!></div></header> <div class="canvas svelte-b7bs0"><!></div> <footer class="shell-foot svelte-b7bs0"><span class="hint svelte-b7bs0"> </span></footer></section>`);function fe(e,t){w(t,!0);let u=()=>C(j,`$page`,p),[p,_]=ee(),D=ne();m(()=>{D.hydrate()});let k=b(()=>u().url.searchParams.get(`view`)===`kanban`?`kanban`:`workgraph`);function M(e){let t=new URL(u().url);t.searchParams.set(`view`,e),A(t.pathname+t.search,{replaceState:!0,noScroll:!0,keepFocus:!0})}let N=b(()=>{let e=new Set([t.data.sagaId]),n=t.data.explorer?.tasks??[],r=!0;for(;r;){r=!1;for(let t of n)e.has(t.id)||t.parentId&&e.has(t.parentId)&&(e.add(t.id),r=!0)}return e}),P=b(()=>t.data.saga?.title??t.data.sagaId),F=b(()=>t.data.explorer?.tasks.length??0);var I=de();O(`b7bs0`,e=>{var r=se();n(()=>{c.title=`${t.data.sagaId??``} · ${t.data.projectName??``} — CLEO Studio`}),d(e,r)});var L=s(I),R=s(L),z=s(R),B=s(z,!0);T(z);var V=h(z,4),U=s(V),W=s(U,!0);T(U);var G=h(U,2),K=e=>{var n=ce(),i=s(n,!0);T(n),a(()=>r(i,t.data.saga.title)),d(e,n)};i(G,e=>{t.data.saga&&e(K)}),T(V);var q=h(V,2),J=e=>{te(e,{tone:`info`,size:`sm`,children:(e,n)=>{S();var i=l();a(()=>r(i,t.data.saga.type)),d(e,i)},$$slots:{default:!0}})};i(q,e=>{t.data.saga&&e(J)}),T(R);var Y=h(R,2),X=s(Y);let Z;var Q=h(X,2);let ie;T(Y);var ae=h(Y,2);re(s(ae),{get theme(){return D}}),T(ae),T(L);var $=h(L,2),fe=s($),pe=e=>{var n=le(),i=s(n),o=s(i,!0);T(i),T(n),a(()=>r(o,t.data.error)),d(e,n)},me=e=>{d(e,ue())},he=e=>{H(e,{get tasks(){return t.data.explorer.tasks},get deps(){return t.data.explorer.deps},get sagaId(){return t.data.sagaId}})},ge=e=>{var n=x(),r=g(n),a=e=>{oe(e,{get sagaId(){return t.data.sagaId},get subtreeIds(){return o(N)}})};i(r,e=>{e(a)}),d(e,n)};i(fe,e=>{t.data.error?e(pe):t.data.explorer?o(k)===`workgraph`?e(he,2):e(ge,-1):e(me,1)}),T($);var _e=h($,2),ve=s(_e),ye=s(ve);T(ve),T(_e),T(I),a(()=>{y(I,`data-view`,o(k)),r(B,t.data.projectName),y(V,`title`,o(P)),r(W,t.data.sagaId),Z=E(X,1,`toggle-btn svelte-b7bs0`,null,Z,{active:o(k)===`workgraph`}),y(X,`aria-selected`,o(k)===`workgraph`),ie=E(Q,1,`toggle-btn svelte-b7bs0`,null,ie,{active:o(k)===`kanban`}),y(Q,`aria-selected`,o(k)===`kanban`),r(ye,`${o(F)??``} tasks in bundle · containment + depends · operator console`)}),f(`click`,X,()=>M(`workgraph`)),f(`click`,Q,()=>M(`kanban`)),d(e,I),v(),_()}u([`click`]);export{fe as component};
@@ -1 +1 @@
1
- import{$ as e,A as t,D as n,E as r,F as i,H as a,I as o,J as s,K as c,N as l,O as u,P as d,Q as f,U as p,V as m,X as h,Y as g,Z as _,_ as ee,at as v,c as y,d as b,et as x,ft as te,lt as S,nt as C,ot as w,q as T,r as ne,tt as E,u as re,ut as D,v as O,w as ie,x as ae,z as k}from"../chunks/DyGQ_VXC.js";import{r as A}from"../chunks/BKR-sjxJ.js";import"../chunks/CQCxd1p9.js";import{t as j}from"../chunks/CfaaCiec.js";import{a as oe,c as se,d as ce,f as le,l as M,n as ue,o as de,r as fe,u as N}from"../chunks/DhhrVdfi.js";import"../chunks/CifRJkIA.js";import{Ct as P}from"../chunks/CdqDTozW.js";var F=`hierarchy`,I=new Set([`hierarchy`,`graph`,`kanban`]),L=new Set([`critical`,`high`,`medium`,`low`]),R=150,z=!1;function B(e,t){if(!e)return[];let n=e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0),r=[],i=new Set;for(let e of n)t(e)&&!i.has(e)&&(r.push(e),i.add(e));return r}function pe(e){return P.includes(e)}function V(e){return L.has(e)}function H(e){return I.has(e)}function U(e){return e.length>0}function W(e){let t=e.searchParams,n=t.get(`cancelled`)===`1`,r=t.get(`deferred`)===`1`;r&&!z&&(z=!0,console.warn(`[task-filters] ?deferred=1 is deprecated; use ?cancelled=1. Alias removal tracked by T958.`));let i=t.get(`view`),a=i&&H(i)?i:F;return{query:t.get(`q`)??``,status:B(t.get(`status`),pe),priority:B(t.get(`priority`),V),labels:B(t.get(`labels`),U),epic:t.get(`epic`),selected:t.get(`selected`),cancelled:n||r,view:a}}function G(e,t){let n=new URL(e.toString()),r=n.searchParams;return r.delete(`deferred`),K(r,`q`,t.query||null),K(r,`status`,t.status.length?t.status.join(`,`):null),K(r,`priority`,t.priority.length?t.priority.join(`,`):null),K(r,`labels`,t.labels.length?t.labels.join(`,`):null),K(r,`epic`,t.epic),K(r,`selected`,t.selected),K(r,`cancelled`,t.cancelled?`1`:null),K(r,`view`,t.view===F?null:t.view),n}function K(e,t,n){n===null||n===``?e.delete(t):e.set(t,n)}function q(e){let t=_(W(e)),n=null,r=null;function i(){if(typeof window>`u`)return;let e=G(new URL(window.location.href),t);e.search!==window.location.search&&window.history.replaceState(window.history.state,``,e.toString())}function a(){typeof window>`u`||(n!==null&&clearTimeout(n),n=setTimeout(()=>{n=null,i()},R))}function o(){if(typeof window>`u`)return;let e=W(new URL(window.location.href));t.query=e.query,t.status=e.status,t.priority=e.priority,t.labels=e.labels,t.epic=e.epic,t.selected=e.selected,t.cancelled=e.cancelled,t.view=e.view}typeof window<`u`&&(r=o,window.addEventListener(`popstate`,r));function s(e,t){let n=e.indexOf(t);return n===-1?[...e,t]:[...e.slice(0,n),...e.slice(n+1)]}return{get state(){return t},setQuery(e){t.query=e,a()},toggleStatus(e){t.status=s(t.status,e),i()},togglePriority(e){t.priority=s(t.priority,e),i()},toggleLabel(e){t.labels=s(t.labels,e),i()},setEpic(e){t.epic=e,i()},setSelected(e){t.selected=e,i()},setCancelled(e){t.cancelled=e,i()},setView(e){t.view=e,i()},clear(){t.query=``,t.status=[],t.priority=[],t.labels=[],t.epic=null,t.selected=null,t.cancelled=!1,t.view=F,n!==null&&(clearTimeout(n),n=null),i()},dispose(){n!==null&&(clearTimeout(n),n=null),r!==null&&typeof window<`u`&&(window.removeEventListener(`popstate`,r),r=null)}}}function me(e){let t=e.trim();if(t.length===0)return{kind:`empty`};let n=/^[Tt]?(\d+)$/.exec(t);return n?{kind:`id`,id:`T${n[1]}`}:{kind:`title`,query:t}}var he=t(`<span class="live-ts svelte-1pluywh"> </span>`),ge=t(`<button class="search-clear svelte-1pluywh" aria-label="Clear search">✕</button>`),_e=t(`<div class="search-error svelte-1pluywh"> </div>`),ve=t(`<div class="search-empty svelte-1pluywh"> </div>`),ye=t(`<div class="search-empty svelte-1pluywh"> </div>`),be=t(`<span class="result-type svelte-1pluywh"> </span>`),xe=t(`<a class="search-result-row svelte-1pluywh"><span> </span> <div class="result-info svelte-1pluywh"><span class="result-id svelte-1pluywh"> </span> <!> <span class="result-title svelte-1pluywh"> </span></div> <div class="result-meta svelte-1pluywh"><span> </span> <span class="result-time svelte-1pluywh"> </span></div></a>`),Se=t(`<div class="search-results-header svelte-1pluywh"><span class="results-count svelte-1pluywh"> </span> <button class="results-close svelte-1pluywh" aria-label="Close results">✕</button></div> <div class="search-results-list svelte-1pluywh"></div>`,1),Ce=t(`<div class="search-results-panel svelte-1pluywh"><!></div>`),we=t(`<div class="priority-row svelte-1pluywh"><span> </span> <div class="priority-bar-track svelte-1pluywh"><div></div></div> <span class="priority-count svelte-1pluywh"> </span></div>`),Te=t(`<section class="rail-card svelte-1pluywh" aria-label="Task counts"><header class="rail-head svelte-1pluywh"><span class="rail-eyebrow svelte-1pluywh">Overview</span> <span class="rail-total svelte-1pluywh"> <span class="rail-total-lbl svelte-1pluywh">tasks</span></span></header> <div class="stat-grid svelte-1pluywh"><span class="stat-card status-active-card svelte-1pluywh"><span class="stat-num svelte-1pluywh"> </span> <span class="stat-lbl svelte-1pluywh">Active</span></span> <span class="stat-card svelte-1pluywh"><span class="stat-num svelte-1pluywh"> </span> <span class="stat-lbl svelte-1pluywh">Pending</span></span> <span class="stat-card status-done-card svelte-1pluywh"><span class="stat-num svelte-1pluywh"> </span> <span class="stat-lbl svelte-1pluywh">Done</span></span> <span class="stat-card status-cancelled-card svelte-1pluywh"><span class="stat-num svelte-1pluywh"> </span> <span class="stat-lbl svelte-1pluywh">Cancelled</span></span> <span class="stat-card muted svelte-1pluywh"><span class="stat-num svelte-1pluywh"> </span> <span class="stat-lbl svelte-1pluywh">Archived</span></span></div> <div class="priority-block svelte-1pluywh"><div class="section-label svelte-1pluywh">Priority</div> <div class="priority-bars svelte-1pluywh"></div></div> <div class="type-block svelte-1pluywh"><div class="section-label svelte-1pluywh">Type</div> <div class="type-chips svelte-1pluywh"><span class="type-chip svelte-1pluywh">Epics <strong class="svelte-1pluywh"> </strong></span> <span class="type-chip svelte-1pluywh">Tasks <strong class="svelte-1pluywh"> </strong></span> <span class="type-chip svelte-1pluywh">Subtasks <strong class="svelte-1pluywh"> </strong></span></div></div> <div class="filter-bar svelte-1pluywh" aria-label="Dashboard filters"><a data-sveltekit-noscroll="" title="Include cancelled epics in the Epic Progress panel"><span class="chip-check svelte-1pluywh"> </span> Cancelled epics</a> <a data-sveltekit-noscroll="" title="Include archived tasks in Recent Activity"><span class="chip-check svelte-1pluywh"> </span> Archived</a></div></section>`),Ee=t(`<div class="no-db svelte-1pluywh">tasks.db not found — start CLEO in the project directory</div>`),De=t(`<div class="command-surface svelte-1pluywh"><section class="task-explorer svelte-1pluywh" aria-label="Task Explorer"><header class="explorer-header svelte-1pluywh"><div class="tabs svelte-1pluywh" role="tablist" aria-label="Task Explorer views"><button type="button" role="tab"><span class="tab-key svelte-1pluywh" aria-hidden="true">1</span> Hierarchy</button> <button type="button" role="tab"><span class="tab-key svelte-1pluywh" aria-hidden="true">2</span> Graph</button> <button type="button" role="tab"><span class="tab-key svelte-1pluywh" aria-hidden="true">3</span> Kanban</button></div> <div class="toolbar svelte-1pluywh"><!> <!> <!> <!></div></header> <div class="explorer-body svelte-1pluywh"><!></div></section> <aside class="side-rail svelte-1pluywh" aria-label="Dashboard summary"><!> <!> <!></aside></div> <!>`,1),Oe=t(`<div class="tasks-page svelte-1pluywh"><div class="page-header svelte-1pluywh"><div class="header-left svelte-1pluywh"><h1 class="page-title svelte-1pluywh">Tasks</h1> <nav class="tasks-nav svelte-1pluywh"><a href="/tasks" class="nav-tab active svelte-1pluywh">Dashboard</a> <a href="/tasks/pipeline" class="nav-tab svelte-1pluywh">Pipeline</a> <a href="/tasks/sessions" class="nav-tab svelte-1pluywh">Sessions</a></nav></div> <div><span class="live-dot svelte-1pluywh"></span> <span class="live-label svelte-1pluywh"> </span> <!></div></div> <div class="search-section svelte-1pluywh"><div><span class="search-icon svelte-1pluywh" aria-hidden="true">⌕</span> <input class="search-input svelte-1pluywh" type="text" placeholder="Search by ID (T663, t663, 663) or title..." autocomplete="off" spellcheck="false"/> <!></div> <!></div> <!> <!></div>`);function ke(t,l){w(l,!0);let P=()=>C(j,`$page`,F),[F,I]=E(),L=x(()=>l.data.stats),R=x(()=>l.data.recentTasks??[]),z=x(()=>l.data.epicProgress??[]),B=x(()=>l.data.filters??{showCancelled:!1,showArchived:!1});function pe(e){let t=new URL(P().url);return t.searchParams.get(e)===`1`?t.searchParams.delete(e):t.searchParams.set(e,`1`),e===`cancelled`&&t.searchParams.delete(`deferred`),t.pathname+(t.search?t.search:``)}let V=e(_(q(new URL(P().url))));p(()=>{let e=new URL(P().url),{next:t,old:n}=k(()=>{let t=q(e),n=o(V);return f(V,t,!0),{next:t,old:n}});return()=>{t.dispose(),n?.dispose()}});function H(e){let t=e.replace(/^#/,``).toLowerCase();return t===`hierarchy`||t===`graph`||t===`kanban`?t:null}ne(()=>{function e(){if(!o(V))return;let e=H(window.location.hash);e&&e!==o(V).state.view&&o(V).setView(e)}return e(),window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)});function U(e){if(o(V)&&(o(V).setView(e),typeof window<`u`&&window.location.hash!==`#${e}`)){let t=`${window.location.pathname}${window.location.search}#${e}`;window.history.replaceState(window.history.state,``,t)}}let W=x(()=>l.data.explorer?.tasks??[]),G=x(()=>l.data.explorer?.deps??[]),K=x(()=>l.data.explorer?.labels??[]),ke=x(()=>l.data.explorer?.epicProgress??{}),Ae=x(()=>(()=>{if(!o(V))return null;let e=o(V).state.selected;return e?o(W).find(t=>t.id===e)??null:null})()),je=[{value:`pending`,label:`Pending`,tint:`var(--status-pending)`},{value:`active`,label:`Active`,tint:`var(--status-active)`},{value:`blocked`,label:`Blocked`,tint:`var(--status-blocked)`},{value:`done`,label:`Done`,tint:`var(--status-done)`},{value:`cancelled`,label:`Cancelled`,tint:`var(--status-cancelled)`}],Me=[{value:`critical`,label:`Critical`,tint:`var(--priority-critical)`},{value:`high`,label:`High`,tint:`var(--priority-high)`},{value:`medium`,label:`Medium`,tint:`var(--priority-medium)`},{value:`low`,label:`Low`,tint:`var(--priority-low)`}],Ne=x(()=>o(K).map(e=>({value:e,label:e})));function Pe(e,t,n){let r=new Set(e),i=new Set(t);for(let e of r)i.has(e)||n(e);for(let e of i)r.has(e)||n(e)}let J=e(``),Y=e(!1),X=e(null),Z=e(_([])),Fe=e(!1),Ie=e(null),Le=e(!1),Q=e(!1);p(()=>{let e=o(J);if(me(e).kind===`empty`){f(Z,[],!0),f(Fe,!1),f(Ie,null),f(Le,!1),f(Q,!1);return}let t=new AbortController,n=setTimeout(async()=>{f(Y,!0),f(X,null),f(Fe,!1),f(Le,!1),f(Ie,null);try{let n=await fetch(`/api/tasks/search?q=${encodeURIComponent(e)}`,{signal:t.signal});if(!n.ok){f(X,`Search failed (${n.status})`),f(Y,!1);return}let r=await n.json();if(`error`in r){f(X,r.error,!0),f(Y,!1);return}if(r.kind===`id`)if(r.task)A(`/tasks/${r.task.id}`);else{f(Fe,!0);let t=me(e);f(Ie,t.kind===`id`?t.id:null,!0),f(Q,!0)}else r.kind===`title`?(f(Z,r.tasks,!0),f(Le,r.total===0),f(Q,!0)):f(Q,!1)}catch(e){e.name!==`AbortError`&&f(X,String(e),!0)}finally{f(Y,!1)}},250);return()=>{clearTimeout(n),t.abort()}});function Re(){f(J,``)}function ze(e){return e===`critical`?`priority-critical`:e===`high`?`priority-high`:e===`medium`?`priority-medium`:`priority-low`}function Be(e){return e===`done`?`✓`:e===`active`?`●`:e===`blocked`?`✗`:`○`}function Ve(e){return e===`done`?`status-done`:e===`active`?`status-active`:e===`blocked`?`status-blocked`:`status-pending`}function He(e){try{let t=new Date(e),n=Date.now()-t.getTime(),r=Math.floor(n/6e4);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}catch{return e}}let $=e(!1),Ue=e(``);p(()=>{let e=new EventSource(`/api/tasks/events`);return e.addEventListener(`connected`,()=>{f($,!0)}),e.addEventListener(`task-updated`,e=>{f(Ue,JSON.parse(e.data).ts,!0)}),e.addEventListener(`heartbeat`,()=>{f($,!0)}),e.onerror=()=>{f($,!1)},()=>e.close()});function We(e){if(!o(V))return;let t=e.target;if(t instanceof HTMLElement){let e=t.tagName;if(e===`INPUT`||e===`TEXTAREA`||t.isContentEditable)return}e.key===`1`?(e.preventDefault(),U(`hierarchy`)):e.key===`2`?(e.preventDefault(),U(`graph`)):e.key===`3`&&(e.preventDefault(),U(`kanban`))}var Ge=Oe();ae(`1pluywh`,e=>{m(()=>{c.title=`Tasks — CLEO Studio`})}),i(`keydown`,T,We);var Ke=s(Ge),qe=h(s(Ke),2);let Je;var Ye=h(s(qe),2),Xe=s(Ye,!0);D(Ye);var Ze=h(Ye,2),Qe=e=>{var t=he(),r=s(t);D(t),a(e=>n(r,`updated ${e??``}`),[()=>He(o(Ue))]),u(e,t)};r(Ze,e=>{o(Ue)&&e(Qe)}),D(qe),D(Ke);var $e=h(Ke,2),et=s($e);let tt;var nt=h(s(et),2);re(nt);var rt=h(nt,2),it=e=>{var t=ge();d(`click`,t,Re),u(e,t)};r(rt,e=>{o(J).length>0&&e(it)}),D(et);var at=h(et,2),ot=e=>{var t=_e(),r=s(t,!0);D(t),a(()=>n(r,o(X))),u(e,t)};r(at,e=>{o(X)&&e(ot)}),D($e);var st=h($e,2),ct=e=>{var t=Ce(),i=s(t),c=e=>{var t=ve(),r=s(t);D(t),a(()=>n(r,`Task ${o(Ie)??o(J)??``} not found.`)),u(e,t)},l=e=>{var t=ye(),r=s(t);D(t),a(()=>n(r,`No tasks match "${o(J)??``}".`)),u(e,t)},f=e=>{var t=Se(),i=g(t),c=s(i),l=s(c);D(c);var f=h(c,2);D(i);var p=h(i,2);ie(p,21,()=>o(Z),e=>e.id,(e,t)=>{var i=xe(),c=s(i),l=s(c,!0);D(c);var f=h(c,2),p=s(f),m=s(p,!0);D(p);var g=h(p,2),_=e=>{var r=be(),i=s(r,!0);D(r),a(()=>n(i,o(t).type)),u(e,r)};r(g,e=>{o(t).type!==`task`&&e(_)});var ee=h(g,2),v=s(ee,!0);D(ee),D(f);var y=h(f,2),x=s(y),te=s(x,!0);D(x);var S=h(x,2),C=s(S,!0);D(S),D(y),D(i),a((e,r,a,s)=>{b(i,`href`,`/tasks/${o(t).id??``}`),O(c,1,`result-status-icon ${e??``}`,`svelte-1pluywh`),n(l,r),n(m,o(t).id),n(v,o(t).title),O(x,1,`result-priority ${a??``}`,`svelte-1pluywh`),n(te,o(t).priority),n(C,s)},[()=>Ve(o(t).status),()=>Be(o(t).status),()=>ze(o(t).priority),()=>He(o(t).updated_at)]),d(`click`,i,Re),u(e,i)}),D(p),a(()=>n(l,`${o(Z).length??``} result${o(Z).length===1?``:`s`}`)),d(`click`,f,Re),u(e,t)};r(i,e=>{o(Fe)?e(c):o(Le)?e(l,1):e(f,-1)}),D(t),u(e,t)};r(st,e=>{o(Q)&&e(ct)});var lt=h(st,2),ut=e=>{var t=De(),i=g(t),c=s(i),l=s(c),f=s(l),p=s(f);let m;var _=h(p,2);let v;var y=h(_,2);let C;D(f);var w=h(f,2),T=s(w);ue(T,{get value(){return o(V).state.query},onChange:e=>o(V)?.setQuery(e),placeholder:`Filter explorer by id or title...`,registerSlashShortcut:!0});var ne=h(T,2);N(ne,{label:`Status`,get options(){return je},get selected(){return o(V).state.status},onChange:e=>{o(V)&&Pe(o(V).state.status,e,e=>o(V)?.toggleStatus(e))}});var E=h(ne,2);N(E,{label:`Priority`,get options(){return Me},get selected(){return o(V).state.priority},onChange:e=>{o(V)&&Pe(o(V).state.priority,e,e=>o(V)?.togglePriority(e))}});var re=h(E,2),ae=e=>{oe(e,{get options(){return o(Ne)},get selected(){return o(V).state.labels},onChange:e=>{o(V)&&Pe(o(V).state.labels,e,e=>o(V)?.toggleLabel(e))}})};r(re,e=>{o(Ne).length>0&&e(ae)}),D(w),D(l);var k=h(l,2),A=s(k),j=e=>{se(e,{get tasks(){return o(W)},get deps(){return o(G)},get epicProgress(){return o(ke)},get filters(){return o(V)}})},F=e=>{{let t=x(()=>P().data.activeProjectId??null);M(e,{get tasks(){return o(W)},get deps(){return o(G)},get filters(){return o(V)},get labels(){return o(K)},get activeProjectId(){return o(t)}})}},I=e=>{de(e,{get tasks(){return o(W)},get deps(){return o(G)},get filters(){return o(V)}})};r(A,e=>{o(V).state.view===`hierarchy`?e(j):o(V).state.view===`graph`?e(F,1):e(I,-1)}),D(k),D(c);var H=h(c,2),q=s(H),me=e=>{var t=Te(),r=s(t),i=h(s(r),2),c=s(i);S(),D(i),D(r);var l=h(r,2),d=s(l),f=s(d),p=s(f,!0);D(f),S(2),D(d);var m=h(d,2),g=s(m),_=s(g,!0);D(g),S(2),D(m);var v=h(m,2),y=s(v),C=s(y,!0);D(y),S(2),D(v);var w=h(v,2),T=s(w),ne=s(T,!0);D(T),S(2),D(w);var E=h(w,2),re=s(E),ae=s(re,!0);D(re),S(2),D(E),D(l);var k=h(l,2),A=h(s(k),2);ie(A,21,()=>[[`critical`,o(L).critical],[`high`,o(L).high],[`medium`,o(L).medium],[`low`,o(L).low]],([e,t])=>e,(e,t)=>{var r=x(()=>te(o(t),2));let i=()=>o(r)[0],c=()=>o(r)[1],l=x(()=>o(L).critical+o(L).high+o(L).medium+o(L).low),d=x(()=>o(l)>0?Math.round(Number(c())/o(l)*100):0);var f=we(),p=s(f),m=s(p,!0);D(p);var g=h(p,2),_=s(g);D(g);var v=h(g,2),y=s(v,!0);D(v),D(f),a((e,t)=>{O(p,1,`priority-label ${e??``}`,`svelte-1pluywh`),n(m,i()),O(_,1,`priority-bar-fill ${t??``}`,`svelte-1pluywh`),ee(_,`width:${o(d)??``}%`),n(y,c())},[()=>ze(String(i())),()=>ze(String(i()))]),u(e,f)}),D(A),D(k);var j=h(k,2),oe=h(s(j),2),se=s(oe),ce=h(s(se)),le=s(ce,!0);D(ce),D(se);var M=h(se,2),ue=h(s(M)),de=s(ue,!0);D(ue),D(M);var fe=h(M,2),N=h(s(fe)),P=s(N,!0);D(N),D(fe),D(oe),D(j);var F=h(j,2),I=s(F);let R;var z=s(I),V=s(z,!0);D(z),S(),D(I);var H=h(I,2);let U;var W=s(H),G=s(W,!0);D(W),S(),D(H),D(F),D(t),a((e,t)=>{n(c,`${o(L).total??``} `),n(p,o(L).active),n(_,o(L).pending),n(C,o(L).done),n(ne,o(L).cancelled),n(ae,o(L).archived),n(le,o(L).epics),n(de,o(L).tasks),n(P,o(L).subtasks),b(I,`href`,e),R=O(I,1,`filter-chip svelte-1pluywh`,null,R,{active:o(B).showCancelled}),n(V,o(B).showCancelled?`✓`:` `),b(H,`href`,t),U=O(H,1,`filter-chip svelte-1pluywh`,null,U,{active:o(B).showArchived}),n(G,o(B).showArchived?`✓`:` `)},[()=>pe(`cancelled`),()=>pe(`archived`)]),u(e,t)},he=e=>{u(e,Ee())};r(q,e=>{o(L)?e(me):e(he,-1)});var ge=h(q,2),_e=e=>{ce(e,{get epics(){return o(z)},get includingDeferred(){return o(B).showCancelled}})};r(ge,e=>{o(z).length>0&&e(_e)});var ve=h(ge,2),ye=e=>{fe(e,{get tasks(){return o(R)}})};r(ve,e=>{o(R).length>0&&e(ye)}),D(H),D(i),le(h(i,2),{get task(){return o(Ae)},onClose:()=>o(V)?.setSelected(null)}),a(()=>{m=O(p,1,`tab svelte-1pluywh`,null,m,{active:o(V).state.view===`hierarchy`}),b(p,`aria-selected`,o(V).state.view===`hierarchy`),v=O(_,1,`tab svelte-1pluywh`,null,v,{active:o(V).state.view===`graph`}),b(_,`aria-selected`,o(V).state.view===`graph`),C=O(y,1,`tab svelte-1pluywh`,null,C,{active:o(V).state.view===`kanban`}),b(y,`aria-selected`,o(V).state.view===`kanban`)}),d(`click`,p,()=>U(`hierarchy`)),d(`click`,_,()=>U(`graph`)),d(`click`,y,()=>U(`kanban`)),u(e,t)};r(lt,e=>{o(V)&&e(ut)}),D(Ge),a(()=>{Je=O(qe,1,`live-indicator svelte-1pluywh`,null,Je,{connected:o($)}),n(Xe,o($)?`Live`:`Connecting...`),tt=O(et,1,`search-box svelte-1pluywh`,null,tt,{loading:o(Y)})}),y(nt,()=>o(J),e=>f(J,e)),u(t,Ge),v(),I()}l([`click`]);export{ke as component};
1
+ import{$ as e,A as t,D as n,E as r,F as i,H as a,I as o,J as s,K as c,N as l,O as u,P as d,Q as f,U as p,V as m,X as h,Y as g,Z as _,_ as ee,at as v,c as y,d as b,et as x,ft as te,lt as S,nt as C,ot as w,q as T,r as ne,tt as E,u as re,ut as D,v as O,w as ie,x as ae,z as k}from"../chunks/DyGQ_VXC.js";import{r as A}from"../chunks/DrfFUIvQ.js";import"../chunks/CQCxd1p9.js";import{t as j}from"../chunks/C7UP-KLT.js";import{a as oe,c as se,d as ce,f as le,l as M,n as ue,o as de,r as fe,u as N}from"../chunks/DhhrVdfi.js";import"../chunks/9yrFrmKZ.js";import{Ct as P}from"../chunks/CdqDTozW.js";var F=`hierarchy`,I=new Set([`hierarchy`,`graph`,`kanban`]),L=new Set([`critical`,`high`,`medium`,`low`]),R=150,z=!1;function B(e,t){if(!e)return[];let n=e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0),r=[],i=new Set;for(let e of n)t(e)&&!i.has(e)&&(r.push(e),i.add(e));return r}function pe(e){return P.includes(e)}function V(e){return L.has(e)}function H(e){return I.has(e)}function U(e){return e.length>0}function W(e){let t=e.searchParams,n=t.get(`cancelled`)===`1`,r=t.get(`deferred`)===`1`;r&&!z&&(z=!0,console.warn(`[task-filters] ?deferred=1 is deprecated; use ?cancelled=1. Alias removal tracked by T958.`));let i=t.get(`view`),a=i&&H(i)?i:F;return{query:t.get(`q`)??``,status:B(t.get(`status`),pe),priority:B(t.get(`priority`),V),labels:B(t.get(`labels`),U),epic:t.get(`epic`),selected:t.get(`selected`),cancelled:n||r,view:a}}function G(e,t){let n=new URL(e.toString()),r=n.searchParams;return r.delete(`deferred`),K(r,`q`,t.query||null),K(r,`status`,t.status.length?t.status.join(`,`):null),K(r,`priority`,t.priority.length?t.priority.join(`,`):null),K(r,`labels`,t.labels.length?t.labels.join(`,`):null),K(r,`epic`,t.epic),K(r,`selected`,t.selected),K(r,`cancelled`,t.cancelled?`1`:null),K(r,`view`,t.view===F?null:t.view),n}function K(e,t,n){n===null||n===``?e.delete(t):e.set(t,n)}function q(e){let t=_(W(e)),n=null,r=null;function i(){if(typeof window>`u`)return;let e=G(new URL(window.location.href),t);e.search!==window.location.search&&window.history.replaceState(window.history.state,``,e.toString())}function a(){typeof window>`u`||(n!==null&&clearTimeout(n),n=setTimeout(()=>{n=null,i()},R))}function o(){if(typeof window>`u`)return;let e=W(new URL(window.location.href));t.query=e.query,t.status=e.status,t.priority=e.priority,t.labels=e.labels,t.epic=e.epic,t.selected=e.selected,t.cancelled=e.cancelled,t.view=e.view}typeof window<`u`&&(r=o,window.addEventListener(`popstate`,r));function s(e,t){let n=e.indexOf(t);return n===-1?[...e,t]:[...e.slice(0,n),...e.slice(n+1)]}return{get state(){return t},setQuery(e){t.query=e,a()},toggleStatus(e){t.status=s(t.status,e),i()},togglePriority(e){t.priority=s(t.priority,e),i()},toggleLabel(e){t.labels=s(t.labels,e),i()},setEpic(e){t.epic=e,i()},setSelected(e){t.selected=e,i()},setCancelled(e){t.cancelled=e,i()},setView(e){t.view=e,i()},clear(){t.query=``,t.status=[],t.priority=[],t.labels=[],t.epic=null,t.selected=null,t.cancelled=!1,t.view=F,n!==null&&(clearTimeout(n),n=null),i()},dispose(){n!==null&&(clearTimeout(n),n=null),r!==null&&typeof window<`u`&&(window.removeEventListener(`popstate`,r),r=null)}}}function me(e){let t=e.trim();if(t.length===0)return{kind:`empty`};let n=/^[Tt]?(\d+)$/.exec(t);return n?{kind:`id`,id:`T${n[1]}`}:{kind:`title`,query:t}}var he=t(`<span class="live-ts svelte-1pluywh"> </span>`),ge=t(`<button class="search-clear svelte-1pluywh" aria-label="Clear search">✕</button>`),_e=t(`<div class="search-error svelte-1pluywh"> </div>`),ve=t(`<div class="search-empty svelte-1pluywh"> </div>`),ye=t(`<div class="search-empty svelte-1pluywh"> </div>`),be=t(`<span class="result-type svelte-1pluywh"> </span>`),xe=t(`<a class="search-result-row svelte-1pluywh"><span> </span> <div class="result-info svelte-1pluywh"><span class="result-id svelte-1pluywh"> </span> <!> <span class="result-title svelte-1pluywh"> </span></div> <div class="result-meta svelte-1pluywh"><span> </span> <span class="result-time svelte-1pluywh"> </span></div></a>`),Se=t(`<div class="search-results-header svelte-1pluywh"><span class="results-count svelte-1pluywh"> </span> <button class="results-close svelte-1pluywh" aria-label="Close results">✕</button></div> <div class="search-results-list svelte-1pluywh"></div>`,1),Ce=t(`<div class="search-results-panel svelte-1pluywh"><!></div>`),we=t(`<div class="priority-row svelte-1pluywh"><span> </span> <div class="priority-bar-track svelte-1pluywh"><div></div></div> <span class="priority-count svelte-1pluywh"> </span></div>`),Te=t(`<section class="rail-card svelte-1pluywh" aria-label="Task counts"><header class="rail-head svelte-1pluywh"><span class="rail-eyebrow svelte-1pluywh">Overview</span> <span class="rail-total svelte-1pluywh"> <span class="rail-total-lbl svelte-1pluywh">tasks</span></span></header> <div class="stat-grid svelte-1pluywh"><span class="stat-card status-active-card svelte-1pluywh"><span class="stat-num svelte-1pluywh"> </span> <span class="stat-lbl svelte-1pluywh">Active</span></span> <span class="stat-card svelte-1pluywh"><span class="stat-num svelte-1pluywh"> </span> <span class="stat-lbl svelte-1pluywh">Pending</span></span> <span class="stat-card status-done-card svelte-1pluywh"><span class="stat-num svelte-1pluywh"> </span> <span class="stat-lbl svelte-1pluywh">Done</span></span> <span class="stat-card status-cancelled-card svelte-1pluywh"><span class="stat-num svelte-1pluywh"> </span> <span class="stat-lbl svelte-1pluywh">Cancelled</span></span> <span class="stat-card muted svelte-1pluywh"><span class="stat-num svelte-1pluywh"> </span> <span class="stat-lbl svelte-1pluywh">Archived</span></span></div> <div class="priority-block svelte-1pluywh"><div class="section-label svelte-1pluywh">Priority</div> <div class="priority-bars svelte-1pluywh"></div></div> <div class="type-block svelte-1pluywh"><div class="section-label svelte-1pluywh">Type</div> <div class="type-chips svelte-1pluywh"><span class="type-chip svelte-1pluywh">Epics <strong class="svelte-1pluywh"> </strong></span> <span class="type-chip svelte-1pluywh">Tasks <strong class="svelte-1pluywh"> </strong></span> <span class="type-chip svelte-1pluywh">Subtasks <strong class="svelte-1pluywh"> </strong></span></div></div> <div class="filter-bar svelte-1pluywh" aria-label="Dashboard filters"><a data-sveltekit-noscroll="" title="Include cancelled epics in the Epic Progress panel"><span class="chip-check svelte-1pluywh"> </span> Cancelled epics</a> <a data-sveltekit-noscroll="" title="Include archived tasks in Recent Activity"><span class="chip-check svelte-1pluywh"> </span> Archived</a></div></section>`),Ee=t(`<div class="no-db svelte-1pluywh">tasks.db not found — start CLEO in the project directory</div>`),De=t(`<div class="command-surface svelte-1pluywh"><section class="task-explorer svelte-1pluywh" aria-label="Task Explorer"><header class="explorer-header svelte-1pluywh"><div class="tabs svelte-1pluywh" role="tablist" aria-label="Task Explorer views"><button type="button" role="tab"><span class="tab-key svelte-1pluywh" aria-hidden="true">1</span> Hierarchy</button> <button type="button" role="tab"><span class="tab-key svelte-1pluywh" aria-hidden="true">2</span> Graph</button> <button type="button" role="tab"><span class="tab-key svelte-1pluywh" aria-hidden="true">3</span> Kanban</button></div> <div class="toolbar svelte-1pluywh"><!> <!> <!> <!></div></header> <div class="explorer-body svelte-1pluywh"><!></div></section> <aside class="side-rail svelte-1pluywh" aria-label="Dashboard summary"><!> <!> <!></aside></div> <!>`,1),Oe=t(`<div class="tasks-page svelte-1pluywh"><div class="page-header svelte-1pluywh"><div class="header-left svelte-1pluywh"><h1 class="page-title svelte-1pluywh">Tasks</h1> <nav class="tasks-nav svelte-1pluywh"><a href="/tasks" class="nav-tab active svelte-1pluywh">Dashboard</a> <a href="/tasks/pipeline" class="nav-tab svelte-1pluywh">Pipeline</a> <a href="/tasks/sessions" class="nav-tab svelte-1pluywh">Sessions</a></nav></div> <div><span class="live-dot svelte-1pluywh"></span> <span class="live-label svelte-1pluywh"> </span> <!></div></div> <div class="search-section svelte-1pluywh"><div><span class="search-icon svelte-1pluywh" aria-hidden="true">⌕</span> <input class="search-input svelte-1pluywh" type="text" placeholder="Search by ID (T663, t663, 663) or title..." autocomplete="off" spellcheck="false"/> <!></div> <!></div> <!> <!></div>`);function ke(t,l){w(l,!0);let P=()=>C(j,`$page`,F),[F,I]=E(),L=x(()=>l.data.stats),R=x(()=>l.data.recentTasks??[]),z=x(()=>l.data.epicProgress??[]),B=x(()=>l.data.filters??{showCancelled:!1,showArchived:!1});function pe(e){let t=new URL(P().url);return t.searchParams.get(e)===`1`?t.searchParams.delete(e):t.searchParams.set(e,`1`),e===`cancelled`&&t.searchParams.delete(`deferred`),t.pathname+(t.search?t.search:``)}let V=e(_(q(new URL(P().url))));p(()=>{let e=new URL(P().url),{next:t,old:n}=k(()=>{let t=q(e),n=o(V);return f(V,t,!0),{next:t,old:n}});return()=>{t.dispose(),n?.dispose()}});function H(e){let t=e.replace(/^#/,``).toLowerCase();return t===`hierarchy`||t===`graph`||t===`kanban`?t:null}ne(()=>{function e(){if(!o(V))return;let e=H(window.location.hash);e&&e!==o(V).state.view&&o(V).setView(e)}return e(),window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)});function U(e){if(o(V)&&(o(V).setView(e),typeof window<`u`&&window.location.hash!==`#${e}`)){let t=`${window.location.pathname}${window.location.search}#${e}`;window.history.replaceState(window.history.state,``,t)}}let W=x(()=>l.data.explorer?.tasks??[]),G=x(()=>l.data.explorer?.deps??[]),K=x(()=>l.data.explorer?.labels??[]),ke=x(()=>l.data.explorer?.epicProgress??{}),Ae=x(()=>(()=>{if(!o(V))return null;let e=o(V).state.selected;return e?o(W).find(t=>t.id===e)??null:null})()),je=[{value:`pending`,label:`Pending`,tint:`var(--status-pending)`},{value:`active`,label:`Active`,tint:`var(--status-active)`},{value:`blocked`,label:`Blocked`,tint:`var(--status-blocked)`},{value:`done`,label:`Done`,tint:`var(--status-done)`},{value:`cancelled`,label:`Cancelled`,tint:`var(--status-cancelled)`}],Me=[{value:`critical`,label:`Critical`,tint:`var(--priority-critical)`},{value:`high`,label:`High`,tint:`var(--priority-high)`},{value:`medium`,label:`Medium`,tint:`var(--priority-medium)`},{value:`low`,label:`Low`,tint:`var(--priority-low)`}],Ne=x(()=>o(K).map(e=>({value:e,label:e})));function Pe(e,t,n){let r=new Set(e),i=new Set(t);for(let e of r)i.has(e)||n(e);for(let e of i)r.has(e)||n(e)}let J=e(``),Y=e(!1),X=e(null),Z=e(_([])),Fe=e(!1),Ie=e(null),Le=e(!1),Q=e(!1);p(()=>{let e=o(J);if(me(e).kind===`empty`){f(Z,[],!0),f(Fe,!1),f(Ie,null),f(Le,!1),f(Q,!1);return}let t=new AbortController,n=setTimeout(async()=>{f(Y,!0),f(X,null),f(Fe,!1),f(Le,!1),f(Ie,null);try{let n=await fetch(`/api/tasks/search?q=${encodeURIComponent(e)}`,{signal:t.signal});if(!n.ok){f(X,`Search failed (${n.status})`),f(Y,!1);return}let r=await n.json();if(`error`in r){f(X,r.error,!0),f(Y,!1);return}if(r.kind===`id`)if(r.task)A(`/tasks/${r.task.id}`);else{f(Fe,!0);let t=me(e);f(Ie,t.kind===`id`?t.id:null,!0),f(Q,!0)}else r.kind===`title`?(f(Z,r.tasks,!0),f(Le,r.total===0),f(Q,!0)):f(Q,!1)}catch(e){e.name!==`AbortError`&&f(X,String(e),!0)}finally{f(Y,!1)}},250);return()=>{clearTimeout(n),t.abort()}});function Re(){f(J,``)}function ze(e){return e===`critical`?`priority-critical`:e===`high`?`priority-high`:e===`medium`?`priority-medium`:`priority-low`}function Be(e){return e===`done`?`✓`:e===`active`?`●`:e===`blocked`?`✗`:`○`}function Ve(e){return e===`done`?`status-done`:e===`active`?`status-active`:e===`blocked`?`status-blocked`:`status-pending`}function He(e){try{let t=new Date(e),n=Date.now()-t.getTime(),r=Math.floor(n/6e4);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);return i<24?`${i}h ago`:`${Math.floor(i/24)}d ago`}catch{return e}}let $=e(!1),Ue=e(``);p(()=>{let e=new EventSource(`/api/tasks/events`);return e.addEventListener(`connected`,()=>{f($,!0)}),e.addEventListener(`task-updated`,e=>{f(Ue,JSON.parse(e.data).ts,!0)}),e.addEventListener(`heartbeat`,()=>{f($,!0)}),e.onerror=()=>{f($,!1)},()=>e.close()});function We(e){if(!o(V))return;let t=e.target;if(t instanceof HTMLElement){let e=t.tagName;if(e===`INPUT`||e===`TEXTAREA`||t.isContentEditable)return}e.key===`1`?(e.preventDefault(),U(`hierarchy`)):e.key===`2`?(e.preventDefault(),U(`graph`)):e.key===`3`&&(e.preventDefault(),U(`kanban`))}var Ge=Oe();ae(`1pluywh`,e=>{m(()=>{c.title=`Tasks — CLEO Studio`})}),i(`keydown`,T,We);var Ke=s(Ge),qe=h(s(Ke),2);let Je;var Ye=h(s(qe),2),Xe=s(Ye,!0);D(Ye);var Ze=h(Ye,2),Qe=e=>{var t=he(),r=s(t);D(t),a(e=>n(r,`updated ${e??``}`),[()=>He(o(Ue))]),u(e,t)};r(Ze,e=>{o(Ue)&&e(Qe)}),D(qe),D(Ke);var $e=h(Ke,2),et=s($e);let tt;var nt=h(s(et),2);re(nt);var rt=h(nt,2),it=e=>{var t=ge();d(`click`,t,Re),u(e,t)};r(rt,e=>{o(J).length>0&&e(it)}),D(et);var at=h(et,2),ot=e=>{var t=_e(),r=s(t,!0);D(t),a(()=>n(r,o(X))),u(e,t)};r(at,e=>{o(X)&&e(ot)}),D($e);var st=h($e,2),ct=e=>{var t=Ce(),i=s(t),c=e=>{var t=ve(),r=s(t);D(t),a(()=>n(r,`Task ${o(Ie)??o(J)??``} not found.`)),u(e,t)},l=e=>{var t=ye(),r=s(t);D(t),a(()=>n(r,`No tasks match "${o(J)??``}".`)),u(e,t)},f=e=>{var t=Se(),i=g(t),c=s(i),l=s(c);D(c);var f=h(c,2);D(i);var p=h(i,2);ie(p,21,()=>o(Z),e=>e.id,(e,t)=>{var i=xe(),c=s(i),l=s(c,!0);D(c);var f=h(c,2),p=s(f),m=s(p,!0);D(p);var g=h(p,2),_=e=>{var r=be(),i=s(r,!0);D(r),a(()=>n(i,o(t).type)),u(e,r)};r(g,e=>{o(t).type!==`task`&&e(_)});var ee=h(g,2),v=s(ee,!0);D(ee),D(f);var y=h(f,2),x=s(y),te=s(x,!0);D(x);var S=h(x,2),C=s(S,!0);D(S),D(y),D(i),a((e,r,a,s)=>{b(i,`href`,`/tasks/${o(t).id??``}`),O(c,1,`result-status-icon ${e??``}`,`svelte-1pluywh`),n(l,r),n(m,o(t).id),n(v,o(t).title),O(x,1,`result-priority ${a??``}`,`svelte-1pluywh`),n(te,o(t).priority),n(C,s)},[()=>Ve(o(t).status),()=>Be(o(t).status),()=>ze(o(t).priority),()=>He(o(t).updated_at)]),d(`click`,i,Re),u(e,i)}),D(p),a(()=>n(l,`${o(Z).length??``} result${o(Z).length===1?``:`s`}`)),d(`click`,f,Re),u(e,t)};r(i,e=>{o(Fe)?e(c):o(Le)?e(l,1):e(f,-1)}),D(t),u(e,t)};r(st,e=>{o(Q)&&e(ct)});var lt=h(st,2),ut=e=>{var t=De(),i=g(t),c=s(i),l=s(c),f=s(l),p=s(f);let m;var _=h(p,2);let v;var y=h(_,2);let C;D(f);var w=h(f,2),T=s(w);ue(T,{get value(){return o(V).state.query},onChange:e=>o(V)?.setQuery(e),placeholder:`Filter explorer by id or title...`,registerSlashShortcut:!0});var ne=h(T,2);N(ne,{label:`Status`,get options(){return je},get selected(){return o(V).state.status},onChange:e=>{o(V)&&Pe(o(V).state.status,e,e=>o(V)?.toggleStatus(e))}});var E=h(ne,2);N(E,{label:`Priority`,get options(){return Me},get selected(){return o(V).state.priority},onChange:e=>{o(V)&&Pe(o(V).state.priority,e,e=>o(V)?.togglePriority(e))}});var re=h(E,2),ae=e=>{oe(e,{get options(){return o(Ne)},get selected(){return o(V).state.labels},onChange:e=>{o(V)&&Pe(o(V).state.labels,e,e=>o(V)?.toggleLabel(e))}})};r(re,e=>{o(Ne).length>0&&e(ae)}),D(w),D(l);var k=h(l,2),A=s(k),j=e=>{se(e,{get tasks(){return o(W)},get deps(){return o(G)},get epicProgress(){return o(ke)},get filters(){return o(V)}})},F=e=>{{let t=x(()=>P().data.activeProjectId??null);M(e,{get tasks(){return o(W)},get deps(){return o(G)},get filters(){return o(V)},get labels(){return o(K)},get activeProjectId(){return o(t)}})}},I=e=>{de(e,{get tasks(){return o(W)},get deps(){return o(G)},get filters(){return o(V)}})};r(A,e=>{o(V).state.view===`hierarchy`?e(j):o(V).state.view===`graph`?e(F,1):e(I,-1)}),D(k),D(c);var H=h(c,2),q=s(H),me=e=>{var t=Te(),r=s(t),i=h(s(r),2),c=s(i);S(),D(i),D(r);var l=h(r,2),d=s(l),f=s(d),p=s(f,!0);D(f),S(2),D(d);var m=h(d,2),g=s(m),_=s(g,!0);D(g),S(2),D(m);var v=h(m,2),y=s(v),C=s(y,!0);D(y),S(2),D(v);var w=h(v,2),T=s(w),ne=s(T,!0);D(T),S(2),D(w);var E=h(w,2),re=s(E),ae=s(re,!0);D(re),S(2),D(E),D(l);var k=h(l,2),A=h(s(k),2);ie(A,21,()=>[[`critical`,o(L).critical],[`high`,o(L).high],[`medium`,o(L).medium],[`low`,o(L).low]],([e,t])=>e,(e,t)=>{var r=x(()=>te(o(t),2));let i=()=>o(r)[0],c=()=>o(r)[1],l=x(()=>o(L).critical+o(L).high+o(L).medium+o(L).low),d=x(()=>o(l)>0?Math.round(Number(c())/o(l)*100):0);var f=we(),p=s(f),m=s(p,!0);D(p);var g=h(p,2),_=s(g);D(g);var v=h(g,2),y=s(v,!0);D(v),D(f),a((e,t)=>{O(p,1,`priority-label ${e??``}`,`svelte-1pluywh`),n(m,i()),O(_,1,`priority-bar-fill ${t??``}`,`svelte-1pluywh`),ee(_,`width:${o(d)??``}%`),n(y,c())},[()=>ze(String(i())),()=>ze(String(i()))]),u(e,f)}),D(A),D(k);var j=h(k,2),oe=h(s(j),2),se=s(oe),ce=h(s(se)),le=s(ce,!0);D(ce),D(se);var M=h(se,2),ue=h(s(M)),de=s(ue,!0);D(ue),D(M);var fe=h(M,2),N=h(s(fe)),P=s(N,!0);D(N),D(fe),D(oe),D(j);var F=h(j,2),I=s(F);let R;var z=s(I),V=s(z,!0);D(z),S(),D(I);var H=h(I,2);let U;var W=s(H),G=s(W,!0);D(W),S(),D(H),D(F),D(t),a((e,t)=>{n(c,`${o(L).total??``} `),n(p,o(L).active),n(_,o(L).pending),n(C,o(L).done),n(ne,o(L).cancelled),n(ae,o(L).archived),n(le,o(L).epics),n(de,o(L).tasks),n(P,o(L).subtasks),b(I,`href`,e),R=O(I,1,`filter-chip svelte-1pluywh`,null,R,{active:o(B).showCancelled}),n(V,o(B).showCancelled?`✓`:` `),b(H,`href`,t),U=O(H,1,`filter-chip svelte-1pluywh`,null,U,{active:o(B).showArchived}),n(G,o(B).showArchived?`✓`:` `)},[()=>pe(`cancelled`),()=>pe(`archived`)]),u(e,t)},he=e=>{u(e,Ee())};r(q,e=>{o(L)?e(me):e(he,-1)});var ge=h(q,2),_e=e=>{ce(e,{get epics(){return o(z)},get includingDeferred(){return o(B).showCancelled}})};r(ge,e=>{o(z).length>0&&e(_e)});var ve=h(ge,2),ye=e=>{fe(e,{get tasks(){return o(R)}})};r(ve,e=>{o(R).length>0&&e(ye)}),D(H),D(i),le(h(i,2),{get task(){return o(Ae)},onClose:()=>o(V)?.setSelected(null)}),a(()=>{m=O(p,1,`tab svelte-1pluywh`,null,m,{active:o(V).state.view===`hierarchy`}),b(p,`aria-selected`,o(V).state.view===`hierarchy`),v=O(_,1,`tab svelte-1pluywh`,null,v,{active:o(V).state.view===`graph`}),b(_,`aria-selected`,o(V).state.view===`graph`),C=O(y,1,`tab svelte-1pluywh`,null,C,{active:o(V).state.view===`kanban`}),b(y,`aria-selected`,o(V).state.view===`kanban`)}),d(`click`,p,()=>U(`hierarchy`)),d(`click`,_,()=>U(`graph`)),d(`click`,y,()=>U(`kanban`)),u(e,t)};r(lt,e=>{o(V)&&e(ut)}),D(Ge),a(()=>{Je=O(qe,1,`live-indicator svelte-1pluywh`,null,Je,{connected:o($)}),n(Xe,o($)?`Live`:`Connecting...`),tt=O(et,1,`search-box svelte-1pluywh`,null,tt,{loading:o(Y)})}),y(nt,()=>o(J),e=>f(J,e)),u(t,Ge),v(),I()}l([`click`]);export{ke as component};
@@ -1 +1 @@
1
- import{A as e,B as t,D as n,E as r,H as i,I as a,J as o,K as s,M as c,O as l,T as u,X as d,Y as f,_ as p,a as m,at as h,d as g,dt as _,et as v,lt as y,ot as b,ut as x,v as S,w as C,x as w}from"../chunks/DyGQ_VXC.js";import{r as T}from"../chunks/BKR-sjxJ.js";import"../chunks/CQCxd1p9.js";import{t as E}from"../chunks/wI_OOyoh.js";import{a as D,i as O,r as k}from"../chunks/CEqOYim7.js";import{l as A}from"../chunks/CqF5Lomf.js";import{S as j,g as M,h as ee,m as te,p as N}from"../chunks/DhhrVdfi.js";import"../chunks/CifRJkIA.js";var P=e(`<div class="dep-graph-empty svelte-1ytw5n2">No dependencies</div>`),F=e(`<div class="dep-graph-wrap svelte-1ytw5n2"><!></div>`);function ne(e,t){b(t,!0);let n=m(t,`height`,3,`260px`),s=v(()=>t.nodes.map(e=>({id:e.id,substrate:`tasks`,kind:e.type||`task`,label:e.title,category:null,weight:e.isFocus?1:.6,meta:{status:e.status,priority:e.priority,focal:e.isFocus}}))),c=v(()=>t.edges.filter(e=>e.source!==e.target).map((e,t)=>({id:`dep-${t}:${e.source}->${e.target}`,source:e.source,target:e.target,kind:`depends`,directional:!0,weight:.6})));function u(e){T(`/tasks/${e.id}`)}var d=F(),f=o(d),g=e=>{l(e,P())},_=e=>{j(e,{get nodes(){return a(s)},get edges(){return a(c)},showLabels:`full`,nodeRenderer:`circle`,onNodeClick:u,ariaLabel:`Task dependency neighbourhood`})};r(f,e=>{t.nodes.length===0?e(g):e(_,-1)}),x(d),i(()=>p(d,`--dep-graph-height: ${n()??``};`)),l(e,d),h()}var re=e(`<!> <!> <!>`,1),ie=e(`<div><span class="gate-key svelte-13zy71l"> </span> <span class="gate-label svelte-13zy71l"> </span> <span class="gate-icon svelte-13zy71l" aria-hidden="true"> </span></div>`),ae=e(`<section class="prose-section svelte-13zy71l"><span class="section-label svelte-13zy71l">Description</span> <div class="prose svelte-13zy71l"> </div></section>`),oe=e(`<li><span class="ac-check svelte-13zy71l" aria-hidden="true"> </span> <span class="ac-text svelte-13zy71l"> </span></li>`),se=e(`<section class="ac-section svelte-13zy71l"><span class="section-label svelte-13zy71l">Acceptance criteria <span class="section-meta svelte-13zy71l"> </span></span> <ul class="ac-list svelte-13zy71l"></ul></section>`),ce=e(`<li class="note-item svelte-13zy71l"><span class="note-index svelte-13zy71l"></span> <span class="note-text svelte-13zy71l"> </span></li>`),le=e(`<section class="prose-section svelte-13zy71l"><span class="section-label svelte-13zy71l">Notes <span class="section-meta svelte-13zy71l"> </span></span> <ol class="notes-list svelte-13zy71l"></ol></section>`),ue=e(`<time class="artifact-date svelte-13zy71l"> </time>`),de=e(`<h3 class="artifact-title svelte-13zy71l"> </h3>`),fe=e(`<p class="artifact-summary svelte-13zy71l"> </p>`),pe=e(`<div class="artifact-output svelte-13zy71l"><span class="artifact-output-label svelte-13zy71l">output:</span> <code class="artifact-output-path svelte-13zy71l"> </code></div>`),me=e(`<code class="artifact-file svelte-13zy71l"> </code>`),he=e(`<div class="artifact-files svelte-13zy71l"></div>`),ge=e(`<article class="artifact svelte-13zy71l"><header class="artifact-head svelte-13zy71l"><!> <!> <!> <code class="artifact-id svelte-13zy71l"> </code></header> <!> <!> <!> <!></article>`),_e=e(`<section class="artifacts-section svelte-13zy71l"><span class="section-label svelte-13zy71l">Agent artifacts <span class="section-meta svelte-13zy71l"> </span></span> <div class="artifact-list svelte-13zy71l"></div></section>`),ve=e(`<time class="commit-date svelte-13zy71l"> </time>`),ye=e(`<code class="commit-file svelte-13zy71l"> </code>`),be=e(`<span class="commit-files-more svelte-13zy71l"> </span>`),xe=e(`<div class="commit-files svelte-13zy71l"><!> <!></div>`),Se=e(`<li class="commit-item svelte-13zy71l"><code class="commit-sha svelte-13zy71l"> </code> <span class="commit-subject svelte-13zy71l"> </span> <!> <!></li>`),Ce=e(`<section class="commits-section"><span class="section-label svelte-13zy71l">Git commits <span class="section-meta svelte-13zy71l"> </span></span> <ol class="commits-list svelte-13zy71l"></ol></section>`),we=e(`<span class="dep-row svelte-13zy71l"><!> <span class="dep-id svelte-13zy71l"> </span> <span class="dep-title svelte-13zy71l"> </span> <!></span>`),Te=e(`<section class="side-section svelte-13zy71l"><span class="section-label svelte-13zy71l">Dependency graph</span> <!></section>`),Ee=e(`<li><a class="dep svelte-13zy71l"> </a></li>`),De=e(`<section class="side-section svelte-13zy71l"><span class="section-label dep-label dep-blocked svelte-13zy71l">↑ Blocked by <span class="section-meta svelte-13zy71l"> </span></span> <ul class="dep-list svelte-13zy71l"></ul></section>`),Oe=e(`<li><a class="dep svelte-13zy71l"> </a></li>`),ke=e(`<section class="side-section svelte-13zy71l"><span class="section-label dep-label dep-blocking svelte-13zy71l">↓ Blocking <span class="section-meta svelte-13zy71l"> </span></span> <ul class="dep-list svelte-13zy71l"></ul></section>`),Ae=e(`<li><a class="subtask svelte-13zy71l"><!> <span class="subtask-id svelte-13zy71l"> </span> <span class="subtask-title svelte-13zy71l"> </span> <span class="subtask-gates svelte-13zy71l" aria-hidden="true"><span>I</span> <span>T</span> <span>Q</span></span></a></li>`),je=e(`<section class="side-section svelte-13zy71l"><span class="section-label svelte-13zy71l"> <span class="section-meta svelte-13zy71l"> </span></span> <div class="subtask-progress svelte-13zy71l" aria-hidden="true"><div class="subtask-progress-fill svelte-13zy71l"></div></div> <ul class="subtask-list svelte-13zy71l"></ul></section>`),Me=e(`<div class="meta-row svelte-13zy71l"><dt class="svelte-13zy71l">Completed</dt> <dd class="svelte-13zy71l"> </dd></div>`),Ne=e(`<div class="meta-row svelte-13zy71l"><dt class="svelte-13zy71l">Phase</dt> <dd class="svelte-13zy71l"> </dd></div>`),Pe=e(`<div class="meta-row svelte-13zy71l"><dt class="svelte-13zy71l">Labels</dt> <dd class="svelte-13zy71l"><div class="label-chips svelte-13zy71l"></div></dd></div>`),Fe=e(`<dl class="meta-list svelte-13zy71l"><div class="meta-row svelte-13zy71l"><dt class="svelte-13zy71l">Created</dt> <dd class="svelte-13zy71l"> </dd></div> <div class="meta-row svelte-13zy71l"><dt class="svelte-13zy71l">Updated</dt> <dd class="svelte-13zy71l"> </dd></div> <!> <!> <!></dl>`),Ie=e(`<div class="task-detail svelte-13zy71l"><!> <!> <div class="detail-layout svelte-13zy71l"><div class="detail-main svelte-13zy71l"><section class="gate-section svelte-13zy71l"><div class="gate-head svelte-13zy71l"><span class="section-label svelte-13zy71l">Verification gates</span> <span class="gate-counter svelte-13zy71l"> </span> <!></div> <div class="gate-strip svelte-13zy71l"></div></section> <!> <!> <!> <!> <!></div> <aside class="detail-side svelte-13zy71l"><!> <!> <!> <!> <!> <div class="sidebar-nav svelte-13zy71l"><!> <!></div></aside></div></div>`);function I(e,m){b(m,!0);let T=new Set([`pending`,`active`,`blocked`,`done`,`cancelled`,`archived`,`proposed`]),j=new Set([`low`,`medium`,`high`,`critical`]);function P(e){return T.has(e)?e:`pending`}function F(e){return j.has(e)?e:`medium`}let I=v(()=>m.data.task),L=v(()=>m.data.subtasks),R=v(()=>m.data.parent),z=v(()=>m.data.manifestEntries),B=v(()=>m.data.linkedCommits),Le=v(()=>[{label:`Tasks`,href:`/tasks`},...a(R)?[{label:a(R).id,href:`/tasks/${a(R).id}`}]:[],{label:a(I).id}]);function V(e){if(!e)return`—`;try{return new Date(e).toLocaleString(`en-US`,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}catch{return e}}function H(e){if(!e)return`—`;try{return new Date(e).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}catch{return e}}function Re(e,t){return e?e.length<=t?e:`${e.slice(0,t)}…`:``}function ze(e){return e.split(`/`).pop()??e}let U=v(()=>[{key:`I`,label:`Implemented`,passed:a(I).verification?.gates.implemented??!1},{key:`T`,label:`Tests`,passed:a(I).verification?.gates.testsPassed??!1},{key:`Q`,label:`QA`,passed:a(I).verification?.gates.qaPassed??!1},{key:`D`,label:`Documented`,passed:!1},{key:`S`,label:`Security`,passed:!1},{key:`C`,label:`Cleanup`,passed:!1}]),Be=v(()=>a(U).filter(e=>e.passed).length);function Ve(e){return ee(e.verification_json)}let W=v(()=>a(L).filter(e=>e.status===`done`).length),G=v(()=>a(L).length>0?Math.round(a(W)/a(L).length*100):0),He=v(()=>[a(I).pipeline_stage?`stage: ${a(I).pipeline_stage}`:null,a(I).size?`size: ${a(I).size}`:null,a(I).assignee?`assigned: ${a(I).assignee}`:null,`updated ${te(a(I).updated_at)}`].filter(e=>e!==null).join(` · `));function Ue(e){return e===`critical`||e===`high`?`danger`:e===`medium`?`warning`:e===`low`?`neutral`:`info`}function We(e){return e===`complete`?`success`:e===`partial`?`warning`:e===`blocked`?`danger`:`neutral`}function Ge(){let e=[{id:a(I).id,title:a(I).title,status:a(I).status,priority:a(I).priority,type:a(I).type,isFocus:!0}];for(let t of a(I).upstream)e.push({id:t.id,title:t.title,status:t.status,priority:t.priority,type:`task`,isFocus:!1});for(let t of a(I).downstream)e.push({id:t.id,title:t.title,status:t.status,priority:t.priority,type:`task`,isFocus:!1});return e}function Ke(){let e=[];for(let t of a(I).upstream)e.push({source:a(I).id,target:t.id});for(let t of a(I).downstream)e.push({source:t.id,target:a(I).id});return e}var K=Ie();w(`13zy71l`,e=>{t(()=>{s.title=`${a(I).id??``} — ${a(I).title??``} — CLEO Studio`})});var q=o(K);O(q,{get items(){return a(Le)}});var qe=d(q,2);{let e=e=>{var t=re(),o=f(t);{let e=v(()=>P(a(I).status));N(o,{get status(){return a(e)}})}var s=d(o,2);{let e=v(()=>F(a(I).priority));M(s,{get priority(){return a(e)}})}var u=d(s,2),p=e=>{D(e,{tone:`neutral`,size:`sm`,children:(e,t)=>{y();var r=c();i(()=>n(r,a(I).size)),l(e,r)},$$slots:{default:!0}})};r(u,e=>{a(I).size&&e(p)}),l(e,t)},t=v(()=>a(I).type.toUpperCase());E(qe,{get eyebrow(){return a(t)},get title(){return a(I).title},get meta(){return a(He)},actions:e,$$slots:{actions:!0}})}var Je=d(qe,2),J=o(Je),Y=o(J),X=o(Y),Z=d(o(X),2),Ye=o(Z);x(Z);var Xe=d(Z,2),Ze=e=>{D(e,{tone:`success`,size:`sm`,children:(e,t)=>{y(),l(e,c(`ALL PASSED`))},$$slots:{default:!0}})},Qe=e=>{D(e,{tone:`warning`,size:`sm`,children:(e,t)=>{y();var r=c();i(()=>n(r,`Round ${a(I).verification.round??``}`)),l(e,r)},$$slots:{default:!0}})};r(Xe,e=>{a(I).verification?.passed?e(Ze):a(I).verification&&e(Qe,1)}),x(X);var $e=d(X,2);C($e,21,()=>a(U),u,(e,t)=>{var r=ie();let s;var c=o(r),u=o(c,!0);x(c);var f=d(c,2),p=o(f,!0);x(f);var m=d(f,2),h=o(m,!0);x(m),x(r),i(()=>{s=S(r,1,`gate svelte-13zy71l`,null,s,{passed:a(t).passed}),g(r,`title`,a(t).label),n(u,a(t).key),n(p,a(t).label),n(h,a(t).passed?`✓`:`·`)}),l(e,r)}),x($e),x(Y);var et=d(Y,2),tt=e=>{var t=ae(),r=d(o(t),2),s=o(r,!0);x(r),x(t),i(()=>n(s,a(I).description)),l(e,t)};r(et,e=>{a(I).description&&e(tt)});var nt=d(et,2),rt=e=>{var t=se(),r=o(t),s=d(o(r)),c=o(s);x(s),x(r);var f=d(r,2);C(f,21,()=>a(I).acceptance,u,(e,t)=>{let r=v(()=>a(I).verification?.passed??!1);var s=oe();let c;var u=o(s),f=o(u,!0);x(u);var p=d(u,2),m=o(p,!0);x(p),x(s),i(()=>{c=S(s,1,`ac-item svelte-13zy71l`,null,c,{passed:a(r)}),n(f,a(r)?`✓`:`○`),n(m,a(t))}),l(e,s)}),x(f),x(t),i(()=>n(c,`${a(I).acceptance.length??``} criteria`)),l(e,t)};r(nt,e=>{a(I).acceptance&&a(I).acceptance.length>0&&e(rt)});var it=d(nt,2),at=e=>{var t=le(),r=o(t),s=d(o(r)),c=o(s);x(s),x(r);var f=d(r,2);C(f,21,()=>a(I).notes,u,(e,t,r)=>{var s=ce(),c=o(s);c.textContent=`#${r+1}`;var u=d(c,2),f=o(u,!0);x(u),x(s),i(()=>n(f,a(t))),l(e,s)}),x(f),x(t),i(()=>n(c,`${a(I).notes.length??``} entries`)),l(e,t)};r(it,e=>{a(I).notes&&a(I).notes.length>0&&e(at)});var Q=d(it,2),ot=e=>{var t=_e(),s=o(t),f=d(o(s)),p=o(f,!0);x(f),x(s);var m=d(s,2);C(m,21,()=>a(z),e=>e.id,(e,t)=>{var s=ge(),f=o(s),p=o(f);D(p,{tone:`accent`,size:`sm`,children:(e,r)=>{y();var o=c();i(()=>n(o,a(t).type)),l(e,o)},$$slots:{default:!0}});var m=d(p,2);{let e=v(()=>We(a(t).status));D(m,{get tone(){return a(e)},size:`sm`,children:(e,r)=>{y();var o=c();i(()=>n(o,a(t).status)),l(e,o)},$$slots:{default:!0}})}var h=d(m,2),_=e=>{var r=ue(),s=o(r,!0);x(r),i(e=>n(s,e),[()=>H(a(t).date)]),l(e,r)};r(h,e=>{a(t).date&&e(_)});var b=d(h,2),S=o(b,!0);x(b),x(f);var w=d(f,2),T=e=>{var r=de(),s=o(r,!0);x(r),i(()=>n(s,a(t).title)),l(e,r)};r(w,e=>{a(t).title&&e(T)});var E=d(w,2),O=e=>{var r=fe(),s=o(r,!0);x(r),i(e=>n(s,e),[()=>Re(a(t).summary,300)]),l(e,r)};r(E,e=>{a(t).summary&&e(O)});var k=d(E,2),A=e=>{var r=pe(),s=d(o(r),2),c=o(s,!0);x(s),x(r),i(()=>n(c,a(t).output)),l(e,r)};r(k,e=>{a(t).output&&e(A)});var j=d(k,2),M=e=>{var r=he();C(r,21,()=>a(t).files,u,(e,t)=>{var r=me(),s=o(r,!0);x(r),i(e=>n(s,e),[()=>ze(a(t))]),l(e,r)}),x(r),l(e,r)};r(j,e=>{a(t).files&&a(t).files.length>0&&e(M)}),x(s),i(()=>{g(s,`data-status`,a(t).status),n(S,a(t).id)}),l(e,s)}),x(m),x(t),i(()=>n(p,a(z).length)),l(e,t)};r(Q,e=>{a(z)&&a(z).length>0&&e(ot)});var st=d(Q,2),ct=e=>{var t=Ce(),s=o(t),c=d(o(s)),f=o(c,!0);x(c),x(s);var p=d(s,2);C(p,21,()=>a(B),u,(e,t)=>{var s=Se(),c=o(s),f=o(c,!0);x(c);var p=d(c,2),m=o(p,!0);x(p);var h=d(p,2),g=e=>{var r=ve(),s=o(r,!0);x(r),i(e=>n(s,e),[()=>H(a(t).date)]),l(e,r)};r(h,e=>{a(t).date&&e(g)});var _=d(h,2),v=e=>{var s=xe(),c=o(s);C(c,17,()=>a(t).files.slice(0,6),u,(e,t)=>{var r=ye(),s=o(r,!0);x(r),i(()=>n(s,a(t))),l(e,r)});var f=d(c,2),p=e=>{var r=be(),s=o(r);x(r),i(()=>n(s,`+${a(t).files.length-6}`)),l(e,r)};r(f,e=>{a(t).files.length>6&&e(p)}),x(s),l(e,s)};r(_,e=>{a(t).files&&a(t).files.length>0&&e(v)}),x(s),i(()=>{n(f,a(t).sha),n(m,a(t).subject)}),l(e,s)}),x(p),x(t),i(()=>n(f,a(B).length)),l(e,t)};r(st,e=>{a(B)&&a(B).length>0&&e(ct)}),x(J);var lt=d(J,2);{let e=(e,t=_)=>{var r=we(),s=o(r);{let e=v(()=>P(t().status));N(s,{get status(){return a(e)},compact:!0})}var u=d(s,2),f=o(u,!0);x(u);var p=d(u,2),m=o(p,!0);x(p);var h=d(p,2);{let e=v(()=>Ue(t().priority));D(h,{get tone(){return a(e)},size:`sm`,subtle:!0,children:(e,r)=>{y();var a=c();i(()=>n(a,t().priority)),l(e,a)},$$slots:{default:!0}})}x(r),i(()=>{n(f,t().id),n(m,t().title)}),l(e,r)};var ut=o(lt),dt=e=>{let t=v(Ge),n=v(Ke);var r=Te();k(d(o(r),2),{padding:`cozy`,elevation:0,children:(e,r)=>{ne(e,{get nodes(){return a(t)},get edges(){return a(n)},height:`260px`})},$$slots:{default:!0}}),x(r),l(e,r)};r(ut,e=>{(a(I).upstream.length>0||a(I).downstream.length>0)&&e(dt)});var ft=d(ut,2),pt=t=>{var r=De(),s=o(r),c=d(o(s)),f=o(c,!0);x(c),x(s);var p=d(s,2);C(p,21,()=>a(I).upstream,u,(t,r)=>{var s=Ee(),c=o(s),u=o(c,!0);x(c),x(s),i(e=>{g(c,`href`,`/tasks/${a(r).id}`),n(u,e)},[()=>e(a(r))]),l(t,s)}),x(p),x(r),i(()=>n(f,a(I).upstream.length)),l(t,r)};r(ft,e=>{a(I).upstream.length>0&&e(pt)});var mt=d(ft,2),ht=t=>{var r=ke(),s=o(r),c=d(o(s)),f=o(c,!0);x(c),x(s);var p=d(s,2);C(p,21,()=>a(I).downstream,u,(t,r)=>{var s=Oe(),c=o(s),u=o(c,!0);x(c),x(s),i(e=>{g(c,`href`,`/tasks/${a(r).id}`),n(u,e)},[()=>e(a(r))]),l(t,s)}),x(p),x(r),i(()=>n(f,a(I).downstream.length)),l(t,r)};r(mt,e=>{a(I).downstream.length>0&&e(ht)});var gt=d(mt,2),_t=e=>{var t=je(),r=o(t),s=o(r),c=d(s),f=o(c);x(c),x(r);var m=d(r,2),h=o(m);x(m);var _=d(m,2);C(_,21,()=>a(L),u,(e,t)=>{let r=v(()=>Ve(a(t)));var s=Ae(),c=o(s),u=o(c);{let e=v(()=>P(a(t).status));N(u,{get status(){return a(e)},compact:!0})}var f=d(u,2),p=o(f,!0);x(f);var m=d(f,2),h=o(m,!0);x(m);var _=d(m,2),y=o(_);let b;var C=d(y,2);let w;var T=d(C,2);let E;x(_),x(c),x(s),i(()=>{g(c,`href`,`/tasks/${a(t).id}`),n(p,a(t).id),n(h,a(t).title),b=S(y,1,`g-dot svelte-13zy71l`,null,b,{"g-pass":a(r).implemented}),w=S(C,1,`g-dot svelte-13zy71l`,null,w,{"g-pass":a(r).testsPassed}),E=S(T,1,`g-dot svelte-13zy71l`,null,E,{"g-pass":a(r).qaPassed})}),l(e,s)}),x(_),x(t),i(()=>{n(s,`${a(I).type===`epic`?`Children`:`Subtasks`} `),n(f,`${a(W)??``}/${a(L).length??``} · ${a(G)??``}%`),p(h,`width: ${a(G)}%`)}),l(e,t)};r(gt,e=>{a(L).length>0&&e(_t)});var vt=d(gt,2);k(vt,{padding:`cozy`,elevation:1,children:(e,t)=>{var s=Fe(),f=o(s),p=d(o(f),2),m=o(p,!0);x(p),x(f);var h=d(f,2),g=d(o(h),2),_=o(g,!0);x(g),x(h);var v=d(h,2),b=e=>{var t=Me(),r=d(o(t),2),s=o(r,!0);x(r),x(t),i(e=>n(s,e),[()=>V(a(I).completed_at)]),l(e,t)};r(v,e=>{a(I).completed_at&&e(b)});var S=d(v,2),w=e=>{var t=Ne(),r=d(o(t),2),s=o(r,!0);x(r),x(t),i(()=>n(s,a(I).phase)),l(e,t)};r(S,e=>{a(I).phase&&e(w)});var T=d(S,2),E=e=>{var t=Pe(),r=d(o(t),2),s=o(r);C(s,21,()=>a(I).labels,u,(e,t)=>{D(e,{tone:`neutral`,size:`sm`,children:(e,r)=>{y();var o=c();i(()=>n(o,a(t))),l(e,o)},$$slots:{default:!0}})}),x(s),x(r),x(t),l(e,t)};r(T,e=>{a(I).labels&&a(I).labels.length>0&&e(E)}),x(s),i((e,t)=>{n(m,e),n(_,t)},[()=>V(a(I).created_at),()=>V(a(I).updated_at)]),l(e,s)},$$slots:{default:!0}});var yt=d(vt,2),$=o(yt);A($,{variant:`ghost`,size:`sm`,href:`/tasks`,block:!0,children:(e,t)=>{y(),l(e,c(`← All Tasks`))},$$slots:{default:!0}});var bt=d($,2),xt=e=>{{let t=v(()=>`/tasks?hierarchy=${a(I).id}`);A(e,{variant:`ghost`,size:`sm`,get href(){return a(t)},block:!0,children:(e,t)=>{y(),l(e,c(`View as tree`))},$$slots:{default:!0}})}};r(bt,e=>{a(I).type===`epic`&&e(xt)}),x(yt),x(lt)}x(Je),x(K),i(()=>n(Ye,`${a(Be)??``}/${a(U).length??``}`)),l(e,K),h()}export{I as component};
1
+ import{A as e,B as t,D as n,E as r,H as i,I as a,J as o,K as s,M as c,O as l,T as u,X as d,Y as f,_ as p,a as m,at as h,d as g,dt as _,et as v,lt as y,ot as b,ut as x,v as S,w as C,x as w}from"../chunks/DyGQ_VXC.js";import{r as T}from"../chunks/DrfFUIvQ.js";import"../chunks/CQCxd1p9.js";import{t as E}from"../chunks/wI_OOyoh.js";import{a as D,i as O,r as k}from"../chunks/CEqOYim7.js";import{l as A}from"../chunks/CqF5Lomf.js";import{S as j,g as M,h as ee,m as te,p as N}from"../chunks/DhhrVdfi.js";import"../chunks/9yrFrmKZ.js";var P=e(`<div class="dep-graph-empty svelte-1ytw5n2">No dependencies</div>`),F=e(`<div class="dep-graph-wrap svelte-1ytw5n2"><!></div>`);function ne(e,t){b(t,!0);let n=m(t,`height`,3,`260px`),s=v(()=>t.nodes.map(e=>({id:e.id,substrate:`tasks`,kind:e.type||`task`,label:e.title,category:null,weight:e.isFocus?1:.6,meta:{status:e.status,priority:e.priority,focal:e.isFocus}}))),c=v(()=>t.edges.filter(e=>e.source!==e.target).map((e,t)=>({id:`dep-${t}:${e.source}->${e.target}`,source:e.source,target:e.target,kind:`depends`,directional:!0,weight:.6})));function u(e){T(`/tasks/${e.id}`)}var d=F(),f=o(d),g=e=>{l(e,P())},_=e=>{j(e,{get nodes(){return a(s)},get edges(){return a(c)},showLabels:`full`,nodeRenderer:`circle`,onNodeClick:u,ariaLabel:`Task dependency neighbourhood`})};r(f,e=>{t.nodes.length===0?e(g):e(_,-1)}),x(d),i(()=>p(d,`--dep-graph-height: ${n()??``};`)),l(e,d),h()}var re=e(`<!> <!> <!>`,1),ie=e(`<div><span class="gate-key svelte-13zy71l"> </span> <span class="gate-label svelte-13zy71l"> </span> <span class="gate-icon svelte-13zy71l" aria-hidden="true"> </span></div>`),ae=e(`<section class="prose-section svelte-13zy71l"><span class="section-label svelte-13zy71l">Description</span> <div class="prose svelte-13zy71l"> </div></section>`),oe=e(`<li><span class="ac-check svelte-13zy71l" aria-hidden="true"> </span> <span class="ac-text svelte-13zy71l"> </span></li>`),se=e(`<section class="ac-section svelte-13zy71l"><span class="section-label svelte-13zy71l">Acceptance criteria <span class="section-meta svelte-13zy71l"> </span></span> <ul class="ac-list svelte-13zy71l"></ul></section>`),ce=e(`<li class="note-item svelte-13zy71l"><span class="note-index svelte-13zy71l"></span> <span class="note-text svelte-13zy71l"> </span></li>`),le=e(`<section class="prose-section svelte-13zy71l"><span class="section-label svelte-13zy71l">Notes <span class="section-meta svelte-13zy71l"> </span></span> <ol class="notes-list svelte-13zy71l"></ol></section>`),ue=e(`<time class="artifact-date svelte-13zy71l"> </time>`),de=e(`<h3 class="artifact-title svelte-13zy71l"> </h3>`),fe=e(`<p class="artifact-summary svelte-13zy71l"> </p>`),pe=e(`<div class="artifact-output svelte-13zy71l"><span class="artifact-output-label svelte-13zy71l">output:</span> <code class="artifact-output-path svelte-13zy71l"> </code></div>`),me=e(`<code class="artifact-file svelte-13zy71l"> </code>`),he=e(`<div class="artifact-files svelte-13zy71l"></div>`),ge=e(`<article class="artifact svelte-13zy71l"><header class="artifact-head svelte-13zy71l"><!> <!> <!> <code class="artifact-id svelte-13zy71l"> </code></header> <!> <!> <!> <!></article>`),_e=e(`<section class="artifacts-section svelte-13zy71l"><span class="section-label svelte-13zy71l">Agent artifacts <span class="section-meta svelte-13zy71l"> </span></span> <div class="artifact-list svelte-13zy71l"></div></section>`),ve=e(`<time class="commit-date svelte-13zy71l"> </time>`),ye=e(`<code class="commit-file svelte-13zy71l"> </code>`),be=e(`<span class="commit-files-more svelte-13zy71l"> </span>`),xe=e(`<div class="commit-files svelte-13zy71l"><!> <!></div>`),Se=e(`<li class="commit-item svelte-13zy71l"><code class="commit-sha svelte-13zy71l"> </code> <span class="commit-subject svelte-13zy71l"> </span> <!> <!></li>`),Ce=e(`<section class="commits-section"><span class="section-label svelte-13zy71l">Git commits <span class="section-meta svelte-13zy71l"> </span></span> <ol class="commits-list svelte-13zy71l"></ol></section>`),we=e(`<span class="dep-row svelte-13zy71l"><!> <span class="dep-id svelte-13zy71l"> </span> <span class="dep-title svelte-13zy71l"> </span> <!></span>`),Te=e(`<section class="side-section svelte-13zy71l"><span class="section-label svelte-13zy71l">Dependency graph</span> <!></section>`),Ee=e(`<li><a class="dep svelte-13zy71l"> </a></li>`),De=e(`<section class="side-section svelte-13zy71l"><span class="section-label dep-label dep-blocked svelte-13zy71l">↑ Blocked by <span class="section-meta svelte-13zy71l"> </span></span> <ul class="dep-list svelte-13zy71l"></ul></section>`),Oe=e(`<li><a class="dep svelte-13zy71l"> </a></li>`),ke=e(`<section class="side-section svelte-13zy71l"><span class="section-label dep-label dep-blocking svelte-13zy71l">↓ Blocking <span class="section-meta svelte-13zy71l"> </span></span> <ul class="dep-list svelte-13zy71l"></ul></section>`),Ae=e(`<li><a class="subtask svelte-13zy71l"><!> <span class="subtask-id svelte-13zy71l"> </span> <span class="subtask-title svelte-13zy71l"> </span> <span class="subtask-gates svelte-13zy71l" aria-hidden="true"><span>I</span> <span>T</span> <span>Q</span></span></a></li>`),je=e(`<section class="side-section svelte-13zy71l"><span class="section-label svelte-13zy71l"> <span class="section-meta svelte-13zy71l"> </span></span> <div class="subtask-progress svelte-13zy71l" aria-hidden="true"><div class="subtask-progress-fill svelte-13zy71l"></div></div> <ul class="subtask-list svelte-13zy71l"></ul></section>`),Me=e(`<div class="meta-row svelte-13zy71l"><dt class="svelte-13zy71l">Completed</dt> <dd class="svelte-13zy71l"> </dd></div>`),Ne=e(`<div class="meta-row svelte-13zy71l"><dt class="svelte-13zy71l">Phase</dt> <dd class="svelte-13zy71l"> </dd></div>`),Pe=e(`<div class="meta-row svelte-13zy71l"><dt class="svelte-13zy71l">Labels</dt> <dd class="svelte-13zy71l"><div class="label-chips svelte-13zy71l"></div></dd></div>`),Fe=e(`<dl class="meta-list svelte-13zy71l"><div class="meta-row svelte-13zy71l"><dt class="svelte-13zy71l">Created</dt> <dd class="svelte-13zy71l"> </dd></div> <div class="meta-row svelte-13zy71l"><dt class="svelte-13zy71l">Updated</dt> <dd class="svelte-13zy71l"> </dd></div> <!> <!> <!></dl>`),Ie=e(`<div class="task-detail svelte-13zy71l"><!> <!> <div class="detail-layout svelte-13zy71l"><div class="detail-main svelte-13zy71l"><section class="gate-section svelte-13zy71l"><div class="gate-head svelte-13zy71l"><span class="section-label svelte-13zy71l">Verification gates</span> <span class="gate-counter svelte-13zy71l"> </span> <!></div> <div class="gate-strip svelte-13zy71l"></div></section> <!> <!> <!> <!> <!></div> <aside class="detail-side svelte-13zy71l"><!> <!> <!> <!> <!> <div class="sidebar-nav svelte-13zy71l"><!> <!></div></aside></div></div>`);function I(e,m){b(m,!0);let T=new Set([`pending`,`active`,`blocked`,`done`,`cancelled`,`archived`,`proposed`]),j=new Set([`low`,`medium`,`high`,`critical`]);function P(e){return T.has(e)?e:`pending`}function F(e){return j.has(e)?e:`medium`}let I=v(()=>m.data.task),L=v(()=>m.data.subtasks),R=v(()=>m.data.parent),z=v(()=>m.data.manifestEntries),B=v(()=>m.data.linkedCommits),Le=v(()=>[{label:`Tasks`,href:`/tasks`},...a(R)?[{label:a(R).id,href:`/tasks/${a(R).id}`}]:[],{label:a(I).id}]);function V(e){if(!e)return`—`;try{return new Date(e).toLocaleString(`en-US`,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}catch{return e}}function H(e){if(!e)return`—`;try{return new Date(e).toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}catch{return e}}function Re(e,t){return e?e.length<=t?e:`${e.slice(0,t)}…`:``}function ze(e){return e.split(`/`).pop()??e}let U=v(()=>[{key:`I`,label:`Implemented`,passed:a(I).verification?.gates.implemented??!1},{key:`T`,label:`Tests`,passed:a(I).verification?.gates.testsPassed??!1},{key:`Q`,label:`QA`,passed:a(I).verification?.gates.qaPassed??!1},{key:`D`,label:`Documented`,passed:!1},{key:`S`,label:`Security`,passed:!1},{key:`C`,label:`Cleanup`,passed:!1}]),Be=v(()=>a(U).filter(e=>e.passed).length);function Ve(e){return ee(e.verification_json)}let W=v(()=>a(L).filter(e=>e.status===`done`).length),G=v(()=>a(L).length>0?Math.round(a(W)/a(L).length*100):0),He=v(()=>[a(I).pipeline_stage?`stage: ${a(I).pipeline_stage}`:null,a(I).size?`size: ${a(I).size}`:null,a(I).assignee?`assigned: ${a(I).assignee}`:null,`updated ${te(a(I).updated_at)}`].filter(e=>e!==null).join(` · `));function Ue(e){return e===`critical`||e===`high`?`danger`:e===`medium`?`warning`:e===`low`?`neutral`:`info`}function We(e){return e===`complete`?`success`:e===`partial`?`warning`:e===`blocked`?`danger`:`neutral`}function Ge(){let e=[{id:a(I).id,title:a(I).title,status:a(I).status,priority:a(I).priority,type:a(I).type,isFocus:!0}];for(let t of a(I).upstream)e.push({id:t.id,title:t.title,status:t.status,priority:t.priority,type:`task`,isFocus:!1});for(let t of a(I).downstream)e.push({id:t.id,title:t.title,status:t.status,priority:t.priority,type:`task`,isFocus:!1});return e}function Ke(){let e=[];for(let t of a(I).upstream)e.push({source:a(I).id,target:t.id});for(let t of a(I).downstream)e.push({source:t.id,target:a(I).id});return e}var K=Ie();w(`13zy71l`,e=>{t(()=>{s.title=`${a(I).id??``} — ${a(I).title??``} — CLEO Studio`})});var q=o(K);O(q,{get items(){return a(Le)}});var qe=d(q,2);{let e=e=>{var t=re(),o=f(t);{let e=v(()=>P(a(I).status));N(o,{get status(){return a(e)}})}var s=d(o,2);{let e=v(()=>F(a(I).priority));M(s,{get priority(){return a(e)}})}var u=d(s,2),p=e=>{D(e,{tone:`neutral`,size:`sm`,children:(e,t)=>{y();var r=c();i(()=>n(r,a(I).size)),l(e,r)},$$slots:{default:!0}})};r(u,e=>{a(I).size&&e(p)}),l(e,t)},t=v(()=>a(I).type.toUpperCase());E(qe,{get eyebrow(){return a(t)},get title(){return a(I).title},get meta(){return a(He)},actions:e,$$slots:{actions:!0}})}var Je=d(qe,2),J=o(Je),Y=o(J),X=o(Y),Z=d(o(X),2),Ye=o(Z);x(Z);var Xe=d(Z,2),Ze=e=>{D(e,{tone:`success`,size:`sm`,children:(e,t)=>{y(),l(e,c(`ALL PASSED`))},$$slots:{default:!0}})},Qe=e=>{D(e,{tone:`warning`,size:`sm`,children:(e,t)=>{y();var r=c();i(()=>n(r,`Round ${a(I).verification.round??``}`)),l(e,r)},$$slots:{default:!0}})};r(Xe,e=>{a(I).verification?.passed?e(Ze):a(I).verification&&e(Qe,1)}),x(X);var $e=d(X,2);C($e,21,()=>a(U),u,(e,t)=>{var r=ie();let s;var c=o(r),u=o(c,!0);x(c);var f=d(c,2),p=o(f,!0);x(f);var m=d(f,2),h=o(m,!0);x(m),x(r),i(()=>{s=S(r,1,`gate svelte-13zy71l`,null,s,{passed:a(t).passed}),g(r,`title`,a(t).label),n(u,a(t).key),n(p,a(t).label),n(h,a(t).passed?`✓`:`·`)}),l(e,r)}),x($e),x(Y);var et=d(Y,2),tt=e=>{var t=ae(),r=d(o(t),2),s=o(r,!0);x(r),x(t),i(()=>n(s,a(I).description)),l(e,t)};r(et,e=>{a(I).description&&e(tt)});var nt=d(et,2),rt=e=>{var t=se(),r=o(t),s=d(o(r)),c=o(s);x(s),x(r);var f=d(r,2);C(f,21,()=>a(I).acceptance,u,(e,t)=>{let r=v(()=>a(I).verification?.passed??!1);var s=oe();let c;var u=o(s),f=o(u,!0);x(u);var p=d(u,2),m=o(p,!0);x(p),x(s),i(()=>{c=S(s,1,`ac-item svelte-13zy71l`,null,c,{passed:a(r)}),n(f,a(r)?`✓`:`○`),n(m,a(t))}),l(e,s)}),x(f),x(t),i(()=>n(c,`${a(I).acceptance.length??``} criteria`)),l(e,t)};r(nt,e=>{a(I).acceptance&&a(I).acceptance.length>0&&e(rt)});var it=d(nt,2),at=e=>{var t=le(),r=o(t),s=d(o(r)),c=o(s);x(s),x(r);var f=d(r,2);C(f,21,()=>a(I).notes,u,(e,t,r)=>{var s=ce(),c=o(s);c.textContent=`#${r+1}`;var u=d(c,2),f=o(u,!0);x(u),x(s),i(()=>n(f,a(t))),l(e,s)}),x(f),x(t),i(()=>n(c,`${a(I).notes.length??``} entries`)),l(e,t)};r(it,e=>{a(I).notes&&a(I).notes.length>0&&e(at)});var Q=d(it,2),ot=e=>{var t=_e(),s=o(t),f=d(o(s)),p=o(f,!0);x(f),x(s);var m=d(s,2);C(m,21,()=>a(z),e=>e.id,(e,t)=>{var s=ge(),f=o(s),p=o(f);D(p,{tone:`accent`,size:`sm`,children:(e,r)=>{y();var o=c();i(()=>n(o,a(t).type)),l(e,o)},$$slots:{default:!0}});var m=d(p,2);{let e=v(()=>We(a(t).status));D(m,{get tone(){return a(e)},size:`sm`,children:(e,r)=>{y();var o=c();i(()=>n(o,a(t).status)),l(e,o)},$$slots:{default:!0}})}var h=d(m,2),_=e=>{var r=ue(),s=o(r,!0);x(r),i(e=>n(s,e),[()=>H(a(t).date)]),l(e,r)};r(h,e=>{a(t).date&&e(_)});var b=d(h,2),S=o(b,!0);x(b),x(f);var w=d(f,2),T=e=>{var r=de(),s=o(r,!0);x(r),i(()=>n(s,a(t).title)),l(e,r)};r(w,e=>{a(t).title&&e(T)});var E=d(w,2),O=e=>{var r=fe(),s=o(r,!0);x(r),i(e=>n(s,e),[()=>Re(a(t).summary,300)]),l(e,r)};r(E,e=>{a(t).summary&&e(O)});var k=d(E,2),A=e=>{var r=pe(),s=d(o(r),2),c=o(s,!0);x(s),x(r),i(()=>n(c,a(t).output)),l(e,r)};r(k,e=>{a(t).output&&e(A)});var j=d(k,2),M=e=>{var r=he();C(r,21,()=>a(t).files,u,(e,t)=>{var r=me(),s=o(r,!0);x(r),i(e=>n(s,e),[()=>ze(a(t))]),l(e,r)}),x(r),l(e,r)};r(j,e=>{a(t).files&&a(t).files.length>0&&e(M)}),x(s),i(()=>{g(s,`data-status`,a(t).status),n(S,a(t).id)}),l(e,s)}),x(m),x(t),i(()=>n(p,a(z).length)),l(e,t)};r(Q,e=>{a(z)&&a(z).length>0&&e(ot)});var st=d(Q,2),ct=e=>{var t=Ce(),s=o(t),c=d(o(s)),f=o(c,!0);x(c),x(s);var p=d(s,2);C(p,21,()=>a(B),u,(e,t)=>{var s=Se(),c=o(s),f=o(c,!0);x(c);var p=d(c,2),m=o(p,!0);x(p);var h=d(p,2),g=e=>{var r=ve(),s=o(r,!0);x(r),i(e=>n(s,e),[()=>H(a(t).date)]),l(e,r)};r(h,e=>{a(t).date&&e(g)});var _=d(h,2),v=e=>{var s=xe(),c=o(s);C(c,17,()=>a(t).files.slice(0,6),u,(e,t)=>{var r=ye(),s=o(r,!0);x(r),i(()=>n(s,a(t))),l(e,r)});var f=d(c,2),p=e=>{var r=be(),s=o(r);x(r),i(()=>n(s,`+${a(t).files.length-6}`)),l(e,r)};r(f,e=>{a(t).files.length>6&&e(p)}),x(s),l(e,s)};r(_,e=>{a(t).files&&a(t).files.length>0&&e(v)}),x(s),i(()=>{n(f,a(t).sha),n(m,a(t).subject)}),l(e,s)}),x(p),x(t),i(()=>n(f,a(B).length)),l(e,t)};r(st,e=>{a(B)&&a(B).length>0&&e(ct)}),x(J);var lt=d(J,2);{let e=(e,t=_)=>{var r=we(),s=o(r);{let e=v(()=>P(t().status));N(s,{get status(){return a(e)},compact:!0})}var u=d(s,2),f=o(u,!0);x(u);var p=d(u,2),m=o(p,!0);x(p);var h=d(p,2);{let e=v(()=>Ue(t().priority));D(h,{get tone(){return a(e)},size:`sm`,subtle:!0,children:(e,r)=>{y();var a=c();i(()=>n(a,t().priority)),l(e,a)},$$slots:{default:!0}})}x(r),i(()=>{n(f,t().id),n(m,t().title)}),l(e,r)};var ut=o(lt),dt=e=>{let t=v(Ge),n=v(Ke);var r=Te();k(d(o(r),2),{padding:`cozy`,elevation:0,children:(e,r)=>{ne(e,{get nodes(){return a(t)},get edges(){return a(n)},height:`260px`})},$$slots:{default:!0}}),x(r),l(e,r)};r(ut,e=>{(a(I).upstream.length>0||a(I).downstream.length>0)&&e(dt)});var ft=d(ut,2),pt=t=>{var r=De(),s=o(r),c=d(o(s)),f=o(c,!0);x(c),x(s);var p=d(s,2);C(p,21,()=>a(I).upstream,u,(t,r)=>{var s=Ee(),c=o(s),u=o(c,!0);x(c),x(s),i(e=>{g(c,`href`,`/tasks/${a(r).id}`),n(u,e)},[()=>e(a(r))]),l(t,s)}),x(p),x(r),i(()=>n(f,a(I).upstream.length)),l(t,r)};r(ft,e=>{a(I).upstream.length>0&&e(pt)});var mt=d(ft,2),ht=t=>{var r=ke(),s=o(r),c=d(o(s)),f=o(c,!0);x(c),x(s);var p=d(s,2);C(p,21,()=>a(I).downstream,u,(t,r)=>{var s=Oe(),c=o(s),u=o(c,!0);x(c),x(s),i(e=>{g(c,`href`,`/tasks/${a(r).id}`),n(u,e)},[()=>e(a(r))]),l(t,s)}),x(p),x(r),i(()=>n(f,a(I).downstream.length)),l(t,r)};r(mt,e=>{a(I).downstream.length>0&&e(ht)});var gt=d(mt,2),_t=e=>{var t=je(),r=o(t),s=o(r),c=d(s),f=o(c);x(c),x(r);var m=d(r,2),h=o(m);x(m);var _=d(m,2);C(_,21,()=>a(L),u,(e,t)=>{let r=v(()=>Ve(a(t)));var s=Ae(),c=o(s),u=o(c);{let e=v(()=>P(a(t).status));N(u,{get status(){return a(e)},compact:!0})}var f=d(u,2),p=o(f,!0);x(f);var m=d(f,2),h=o(m,!0);x(m);var _=d(m,2),y=o(_);let b;var C=d(y,2);let w;var T=d(C,2);let E;x(_),x(c),x(s),i(()=>{g(c,`href`,`/tasks/${a(t).id}`),n(p,a(t).id),n(h,a(t).title),b=S(y,1,`g-dot svelte-13zy71l`,null,b,{"g-pass":a(r).implemented}),w=S(C,1,`g-dot svelte-13zy71l`,null,w,{"g-pass":a(r).testsPassed}),E=S(T,1,`g-dot svelte-13zy71l`,null,E,{"g-pass":a(r).qaPassed})}),l(e,s)}),x(_),x(t),i(()=>{n(s,`${a(I).type===`epic`?`Children`:`Subtasks`} `),n(f,`${a(W)??``}/${a(L).length??``} · ${a(G)??``}%`),p(h,`width: ${a(G)}%`)}),l(e,t)};r(gt,e=>{a(L).length>0&&e(_t)});var vt=d(gt,2);k(vt,{padding:`cozy`,elevation:1,children:(e,t)=>{var s=Fe(),f=o(s),p=d(o(f),2),m=o(p,!0);x(p),x(f);var h=d(f,2),g=d(o(h),2),_=o(g,!0);x(g),x(h);var v=d(h,2),b=e=>{var t=Me(),r=d(o(t),2),s=o(r,!0);x(r),x(t),i(e=>n(s,e),[()=>V(a(I).completed_at)]),l(e,t)};r(v,e=>{a(I).completed_at&&e(b)});var S=d(v,2),w=e=>{var t=Ne(),r=d(o(t),2),s=o(r,!0);x(r),x(t),i(()=>n(s,a(I).phase)),l(e,t)};r(S,e=>{a(I).phase&&e(w)});var T=d(S,2),E=e=>{var t=Pe(),r=d(o(t),2),s=o(r);C(s,21,()=>a(I).labels,u,(e,t)=>{D(e,{tone:`neutral`,size:`sm`,children:(e,r)=>{y();var o=c();i(()=>n(o,a(t))),l(e,o)},$$slots:{default:!0}})}),x(s),x(r),x(t),l(e,t)};r(T,e=>{a(I).labels&&a(I).labels.length>0&&e(E)}),x(s),i((e,t)=>{n(m,e),n(_,t)},[()=>V(a(I).created_at),()=>V(a(I).updated_at)]),l(e,s)},$$slots:{default:!0}});var yt=d(vt,2),$=o(yt);A($,{variant:`ghost`,size:`sm`,href:`/tasks`,block:!0,children:(e,t)=>{y(),l(e,c(`← All Tasks`))},$$slots:{default:!0}});var bt=d($,2),xt=e=>{{let t=v(()=>`/tasks?hierarchy=${a(I).id}`);A(e,{variant:`ghost`,size:`sm`,get href(){return a(t)},block:!0,children:(e,t)=>{y(),l(e,c(`View as tree`))},$$slots:{default:!0}})}};r(bt,e=>{a(I).type===`epic`&&e(xt)}),x(yt),x(lt)}x(Je),x(K),i(()=>n(Ye,`${a(Be)??``}/${a(U).length??``}`)),l(e,K),h()}export{I as component};
@@ -1,4 +1,4 @@
1
- import{$ as e,A as t,D as n,E as r,F as i,H as a,I as o,J as s,K as c,M as l,N as u,O as d,P as f,Q as p,T as m,U as h,V as g,X as _,Y as v,Z as y,_ as b,a as x,at as S,c as C,d as w,et as T,ft as E,k as D,lt as O,m as k,n as A,o as j,ot as M,q as N,r as P,u as F,ut as I,v as L,w as R,x as z}from"../chunks/DyGQ_VXC.js";import"../chunks/CQCxd1p9.js";import{t as B}from"../chunks/wIquQ8oS.js";import{a as V,i as H,n as U,r as W,t as G}from"../chunks/CEqOYim7.js";import{n as ee}from"../chunks/o1PZ6Kzq.js";import{a as te,i as ne,r as re,s as K}from"../chunks/RptFUp2P.js";import{n as q,t as ie}from"../chunks/Bxz2A0ZC.js";function ae(e){let t=e.url??`/api/brain/stream`,n=e.initialReconnectMs??2e3,r=e.maxReconnectMs??3e4,i=e.callbacks,a=null,o=!1,s=n,c=null,l=`connecting`,u=e=>{l!==e&&(l=e,i.onStatus?.(e))},d=()=>{o||c===null&&(c=setTimeout(()=>{c=null,!o&&(s=Math.min(s*2,r),p())},s))},f=e=>{let t;try{t=JSON.parse(e)}catch(e){i.onError?.(e instanceof Error?e:Error(`Malformed SSE payload`));return}switch(t.type){case`hello`:u(`connected`),i.onConnect?.();return;case`heartbeat`:i.onHeartbeat?.(t);return;case`node.create`:i.onNodeCreate?.(t);return;case`edge.strengthen`:i.onEdgeStrengthen?.(t);return;case`task.status`:i.onTaskStatus?.(t);return;case`message.send`:i.onMessageSend?.(t);return}},p=()=>{if(o)return;if(typeof EventSource>`u`){i.onError?.(Error(`EventSource is not available in this environment`));return}u(`connecting`);let e=new EventSource(t);a=e,e.onopen=()=>{if(o){e.close();return}s=n,u(`connected`)},e.onmessage=e=>{o||f(e.data)},e.onerror=()=>{e.close(),a=null,!o&&(u(`error`),d())}};return p(),{dispose:()=>{o||(o=!0,c!==null&&(clearTimeout(c),c=null),a?.close(),a=null,u(`disconnected`))},status:()=>l}}function oe(e){let t=e>>>0;return t===0&&(t=2654435761),()=>(t^=t<<13,t^=t>>>17,t^=t<<5,t>>>=0,t/4294967295)}var se={brain:[`observation`,`decision`,`pattern`,`learning`],nexus:[`symbol`,`file`,`community`],tasks:[`task`,`session`],conduit:[`message`],"agent-registry":[`agent`]},ce={brain:[`supersedes`,`contradicts`,`derived_from`,`cites`,`references`,`documents`],nexus:[`calls`,`extends`,`implements`,`imports`,`accesses`,`defines`,`contains`,`has_method`,`has_property`],tasks:[`blocks`,`depends`,`parent`],conduit:[`messages`,`fires`],"agent-registry":[`messages`,`co_fires`]},J=[`references`,`relates_to`,`documents`,`informed_by`,`produced_by`];function le(e=400,t=600,n=3252719635){let r=oe(n),i=[],a=[],o={brain:Math.round(e*.3),nexus:Math.round(e*.35),tasks:Math.round(e*.15),conduit:Math.round(e*.12),"agent-registry":0},s=o.brain+o.nexus+o.tasks+o.conduit;o[`agent-registry`]=Math.max(0,e-s);for(let e of q){let t=o[e],s=se[e],c=ue(e,Math.min(5,Math.max(1,Math.floor(t/30)))),l=Object.fromEntries(c.map(e=>[e.id,[]]));for(let a=0;a<t;a++){let t=s[Math.floor(r()*s.length)],o=Math.floor(r()*c.length),u=c[o]?.id,d=`${e}:${t}-${a.toString(36)}-${n.toString(36).slice(-3)}`,f=Z(r()*.85+.1,3),p=Z(r(),3),m=a<c.length||r()>.95,h=de(e,t,a);i.push({id:d,substrate:e,kind:t,label:h,category:u,weight:m?Math.max(.82,f):f,freshness:p,meta:{isHub:m,clusterLabel:c[o]?.label??null}}),u&&l[u]?.push(d)}for(let t of c)a.push({id:t.id,label:t.label,substrate:e,memberIds:l[t.id]??[]})}let c=[],l=new Set,u=fe(i),d=0,f=t*4;for(;c.length<t&&d<f;){d++;let e=i[Math.floor(r()*i.length)],t=r()<.25,n,a;if(t){let t=e.substrate;for(;t===e.substrate;)t=q[Math.floor(r()*q.length)];let i=u[t];if(!i||i.length===0)continue;n=i[Math.floor(r()*i.length)],a=J[Math.floor(r()*J.length)]}else if(n=i[Math.floor(r()*i.length)],n.substrate!==e.substrate)a=J[Math.floor(r()*J.length)];else{let t=ce[e.substrate];a=t[Math.floor(r()*t.length)]}if(n.id===e.id)continue;let o=`${e.id}>${n.id}:${a}`;l.has(o)||(l.add(o),c.push({id:`e${c.length.toString(36)}`,source:e.id,target:n.id,kind:a,weight:Z(r()*.7+.15,3),directional:!0,meta:{crossSubstrate:t}}))}return{nodes:i,edges:c,clusters:a}}function ue(e,t){let n={brain:[`Cortex`,`Hippocampus`,`Reflexes`,`Lineage`,`Atlas`],nexus:[`Core`,`Dispatch`,`Memory Bridge`,`Session Runtime`,`Brain Adapter`],tasks:[`Epic`,`Backlog`,`In Flight`,`Release`],conduit:[`Agent Chatter`,`System Events`,`Broadcast`],"agent-registry":[`Orchestrators`,`Leads`,`Workers`]}[e];return Array.from({length:t},(t,r)=>({id:`${e}:cluster:${n[r%n.length]}:${r}`,label:`${n[r%n.length]}`}))}function de(e,t,n){let r=n.toString(36);switch(e){case`brain`:return t===`decision`?`D-${r}: canonicalise ${Y([`envelope`,`registry`,`cluster`],n)}`:t===`pattern`?`P-${r}: ${Y([`rate-limit`,`cache-warm`,`retry-backoff`],n)}`:t===`learning`?`L-${r}: ${Y([`ssoT drift`,`flake source`,`slow path`],n)}`:`O-${r}: ${Y([`observed`,`resolved`,`noted`],n)} ${Y([`fix`,`regression`,`pattern`],n)}`;case`nexus`:return t===`file`?`src/${Y([`dispatch`,`engines`,`adapters`,`stores`],n)}/${Y([`index`,`bridge`,`harness`,`runtime`],n)}.ts`:t===`community`?`cluster-${r}`:`${Y([`register`,`resolve`,`build`,`spawn`,`emit`],n)}${X(Y([`Provider`,`Engine`,`Adapter`,`Bridge`,`Session`],n))}`;case`tasks`:return t===`session`?`ses_${r}`:`T${(n+100).toString(10)}: ${Y([`wire`,`ship`,`audit`,`repair`],n)} ${Y([`brain`,`nexus`,`harness`,`payload`],n)}`;case`conduit`:return`msg_${r} → ${Y([`orchestrator`,`worker-a`,`worker-b`],n)}`;case`agent-registry`:return`${Y([`orc`,`lead`,`wk`],n)}-${r}`}}function Y(e,t){return e[t%e.length]}function X(e){return e.length===0?e:e[0].toUpperCase()+e.slice(1)}function Z(e,t){let n=10**t;return Math.round(e*n)/n}function fe(e){let t={brain:[],nexus:[],tasks:[],conduit:[],"agent-registry":[]};for(let n of e)t[n.substrate].push(n);return t}var pe=t(`<span class="lbc-fallback-reason svelte-1fx55sa"> </span>`),me=t(`<div class="lbc-fallback svelte-1fx55sa"><span class="lbc-fallback-icon svelte-1fx55sa">!</span> <span class="lbc-fallback-msg">GPU renderer unavailable — using 3D <!></span></div>`),he=t(`<div class="lbc-empty svelte-1fx55sa">No data to display</div>`),ge=t(`<div class="lbc-canvas svelte-1fx55sa"></div> <!> <div class="lbc-badge svelte-1fx55sa" aria-label="GPU-accelerated renderer active">GPU</div>`,1),_e=t(`<div class="lbc-wrap svelte-1fx55sa"><!></div>`);function ve(t,i){M(i,!0);let c=x(i,`height`,3,`100%`),l=x(i,`pulsingNodes`,19,()=>new Set),u={brain:`var(--info)`,nexus:`var(--success)`,tasks:`var(--warning)`,conduit:`var(--accent)`,"agent-registry":`var(--danger)`};function f(e,t=.9){if(typeof document>`u`||typeof window>`u`)return[.5,.5,.5,t];let n=document.createElement(`span`);n.style.color=e,n.style.position=`absolute`,n.style.visibility=`hidden`,document.body.appendChild(n);let r=window.getComputedStyle(n).color;document.body.removeChild(n);let i=/rgba?\(([^)]+)\)/i.exec(r);if(!i)return[1,1,1,t];let a=i[1].split(/[,\s/]+/).filter(e=>e.length>0);return[Number.parseFloat(a[0])/255,Number.parseFloat(a[1])/255,Number.parseFloat(a[2])/255,t]}let m=new Map;function g(e){return 4+(e.weight??.3)*14}let y=e(null),C=null,w=e(!1),T=e(``),E=!1,D=!1,k=null,N=[],F=[],L=-1,R=-1;function z(){let e=new Map,t=[],n=[];i.nodes.forEach((r,i)=>{e.set(r.id,i),t.push(r.id),n.push(r)});let r=4096,a=r/2,o=r*.01,s=new Float32Array(i.nodes.length*2);for(let e=0;e<i.nodes.length;e++)s[e*2]=a+(Math.random()-.5)*o,s[e*2+1]=a+(Math.random()-.5)*o;let c=new Float32Array(i.nodes.length*4);for(let e=0;e<i.nodes.length;e++){let t=m.get(i.nodes[e].substrate)??[.5,.5,.5,.9];c[e*4]=t[0],c[e*4+1]=t[1],c[e*4+2]=t[2],c[e*4+3]=t[3]}let l=new Float32Array(i.nodes.length);for(let e=0;e<i.nodes.length;e++)l[e]=g(i.nodes[e]);let u=[],d=new Set;for(let t of i.edges){if(t.source===t.target||!e.has(t.source)||!e.has(t.target))continue;let n=`${t.source}|${t.target}`;d.has(n)||(d.add(n),u.push(t))}let f=new Float32Array(u.length*2),p=new Float32Array(u.length*4),h=new Float32Array(u.length);for(let t=0;t<u.length;t++){let n=u[t],r=e.get(n.source)??0,i=e.get(n.target)??0;f[t*2]=r,f[t*2+1]=i;let a=K(n.kind);p[t*4]=a[0],p[t*4+1]=a[1],p[t*4+2]=a[2],p[t*4+3]=.7,h[t]=.5+(n.weight??.5)*2.5}return{positions:s,colors:c,sizes:l,links:f,linkColors:p,linkWidths:h,idToIndex:e,idxToId:t,idxToNode:n}}function B(e){if(!C||l().size===0)return;let t=f(`var(--text)`,1),n=new Float32Array(i.nodes.length*4);for(let e=0;e<i.nodes.length;e++){let r=l().has(i.nodes[e].id),a=r?t:m.get(i.nodes[e].substrate)??[.5,.5,.5,.9];n[e*4]=a[0],n[e*4+1]=a[1],n[e*4+2]=a[2],n[e*4+3]=r?1:a[3]}C.setPointColors(n);let r=[...l()][0];if(r!==void 0){let t=e.get(r);t!==void 0&&C.zoomToPointByIndex(t,500,2,!1)}setTimeout(()=>{if(!C)return;let e=new Float32Array(i.nodes.length*4);for(let t=0;t<i.nodes.length;t++){let n=m.get(i.nodes[t].substrate)??[.5,.5,.5,.9];e[t*4]=n[0],e[t*4+1]=n[1],e[t*4+2]=n[2],e[t*4+3]=n[3]}C.setPointColors(e)},1500)}function V(){try{let e=document.createElement(`canvas`);return(e.getContext(`webgl2`)??e.getContext(`webgl`))!==null}catch{return!1}}function H(){if(!(!E||!o(y))){if(C&&=(C.destroy(),null),!V()){p(w,!0),p(T,`WebGL not available in this browser`),i.onInitFailed?.(`WebGL not available in this browser`);return}m.clear();for(let e of q)m.set(e,f(u[e],.9));try{let{positions:e,colors:t,sizes:n,links:r,linkColors:a,linkWidths:s,idToIndex:c,idxToId:u,idxToNode:d}=z();N=u,F=d;let f=U(`--bg`,`black`),m=U(`--text-dim`,`gray`),h=U(`--border-strong`,`gray`),g={backgroundColor:f,spaceSize:4096,pointColor:m,pointSize:4,renderHoveredPointRing:!0,hoveredPointRingColor:U(`--text`,`white`),hoveredPointCursor:`pointer`,linkColor:h,linkWidth:.1,linkGreyoutOpacity:0,renderLinks:!0,curvedLinks:!0,simulationLinkDistance:1,simulationLinkSpring:2,simulationRepulsion:.2,simulationGravity:.1,simulationDecay:1e5,onClick:e=>{if(e===void 0){i.onCanvasClear?.();return}let t=F[e];t!==void 0&&i.onNodeSelect?.(t)}};if(C=new ee(o(y),g),C.setPointPositions(e),C.setPointColors(t),C.setPointSizes(n),C.setLinks(r),C.setLinkColors(a),C.setLinkWidths(s),C.zoom(.9),C.render(),D=!0,l().size>0){let e=new Map;for(let t=0;t<u.length;t++){let n=u[t];n!==void 0&&e.set(n,t)}B(e)}setTimeout(()=>{C&&C.fitView(800,.18)},3e3),p(w,!1),p(T,``)}catch(e){C=null,D=!1,p(w,!0);let t=e instanceof Error?e.message:`cosmos.gl renderer failed to initialise`;p(T,t,!0),i.onInitFailed?.(t)}}}function U(e,t){return typeof document>`u`||typeof window>`u`?t:window.getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t}function W(){if(!o(y))return;let e=o(y);if(e.clientWidth>0&&e.clientHeight>0){H();return}k?.disconnect(),k=new ResizeObserver(e=>{for(let t of e){let{width:e,height:n}=t.contentRect;if(e>0&&n>0){k?.disconnect(),k=null,H();return}}}),k.observe(e)}P(()=>{E=!0,requestAnimationFrame(()=>{requestAnimationFrame(()=>{E&&W()})})}),A(()=>{E=!1,D=!1,k?.disconnect(),k=null,C?.destroy(),C=null}),h(()=>{let e=i.nodes.length,t=i.edges.length;D&&(e===L&&t===R||(L=e,R=t,H()))}),h(()=>{if(l().size===0||!D)return;let e=new Map;for(let t=0;t<N.length;t++){let n=N[t];n!==void 0&&e.set(n,t)}B(e)});var G=_e(),te=s(G),ne=e=>{var t=me(),i=_(s(t),2),c=_(s(i)),l=e=>{var t=pe(),r=s(t);I(t),a(()=>n(r,`(${o(T)??``})`)),d(e,t)};r(c,e=>{o(T)&&e(l)}),I(i),I(t),d(e,t)},re=e=>{var t=ge(),n=v(t);j(n,e=>p(y,e),()=>o(y));var a=_(n,2),s=e=>{d(e,he())};r(a,e=>{i.nodes.length===0&&e(s)}),O(2),d(e,t)};r(te,e=>{o(w)?e(ne):e(re,-1)}),I(G),a(()=>b(G,`height: ${c()??``}; position: relative;`)),d(t,G),S()}var Q=t(`<button type="button"><span aria-hidden="true"></span> <span class="edge-name svelte-xiv1be"> </span></button>`),ye=t(`<footer class="controls-dock svelte-xiv1be" aria-label="Canvas controls"><div class="dock-section controls-toggles svelte-xiv1be"><span class="dock-eyebrow svelte-xiv1be">Canvas</span> <div class="toggle-group svelte-xiv1be" role="group" aria-label="Canvas visibility toggles"><button type="button" title="Toggle synapse edge lines (s)"><span aria-hidden="true"></span> synapses <kbd class="shortcut-hint svelte-xiv1be" aria-hidden="true">s</kbd></button> <button type="button" title="Show only cross-substrate bridge edges (b)"><span aria-hidden="true"></span> bridges only <kbd class="shortcut-hint svelte-xiv1be" aria-hidden="true">b</kbd></button> <button type="button" title="Pause ambient simulation breathing"><span aria-hidden="true"></span> </button></div></div> <div class="dock-divider svelte-xiv1be" aria-hidden="true"></div> <div class="dock-section edge-section svelte-xiv1be"><span class="dock-eyebrow svelte-xiv1be">Edge taxonomy — toggle to filter</span> <div class="edge-grid svelte-xiv1be"></div></div> <div class="dock-actions svelte-xiv1be"><button type="button" class="reset-btn svelte-xiv1be" title="Fit camera to graph (f)" aria-label="Reset camera view to fit the graph">fit view <kbd class="shortcut-hint svelte-xiv1be" aria-hidden="true">f</kbd></button></div></footer>`);function be(e,t){M(t,!0);var r=ye(),i=s(r),c=_(s(i),2),l=s(c);let u;var p=s(l);let m;O(2),I(l);var h=_(l,2);let g;var v=s(h);let y;O(2),I(h);var x=_(h,2);let C;var E=s(x);let D;var k=_(E);I(x),I(c),I(i);var A=_(i,4),j=_(s(A),2);R(j,20,()=>re,e=>e,(e,r)=>{let i=T(()=>ne[r]);var c=Q();let l;var u=s(c);let p;var m=_(u,2),h=s(m,!0);I(m),I(c),a((e,t,a,s)=>{l=L(c,1,`edge-kind svelte-xiv1be`,null,l,e),w(c,`aria-pressed`,t),w(c,`title`,a),p=L(u,1,`edge-swatch svelte-xiv1be`,null,p,s),b(u,`--swatch-color: ${o(i).color??``};`),n(h,r)},[()=>({active:t.enabledKinds.has(r)}),()=>t.enabledKinds.has(r),()=>te(r),()=>({dashed:!!o(i).dash})]),f(`click`,c,()=>t.onToggleKind?.(r)),d(e,c)}),I(j),I(A);var N=_(A,2),P=s(N);I(N),I(r),a(()=>{u=L(l,1,`dock-toggle svelte-xiv1be`,null,u,{active:t.showSynapses}),w(l,`aria-pressed`,t.showSynapses),m=L(p,1,`toggle-dot svelte-xiv1be`,null,m,{on:t.showSynapses}),g=L(h,1,`dock-toggle svelte-xiv1be`,null,g,{active:t.showBridgesOnly}),w(h,`aria-pressed`,t.showBridgesOnly),y=L(v,1,`toggle-dot svelte-xiv1be`,null,y,{on:t.showBridgesOnly}),C=L(x,1,`dock-toggle svelte-xiv1be`,null,C,{active:t.breathingPaused}),w(x,`aria-pressed`,t.breathingPaused),D=L(E,1,`toggle-dot svelte-xiv1be`,null,D,{on:t.breathingPaused}),n(k,` ${t.breathingPaused?`paused`:`breathing`}`)}),f(`click`,l,function(...e){t.onToggleSynapses?.apply(this,e)}),f(`click`,h,function(...e){t.onToggleBridgesOnly?.apply(this,e)}),f(`click`,x,function(...e){t.onToggleBreathing?.apply(this,e)}),f(`click`,P,function(...e){t.onResetView?.apply(this,e)}),d(e,r),S()}u([`click`]);var xe=t(`<div class="ghost-cluster svelte-trzjgq"><div class="ghost-label svelte-trzjgq"><span class="ghost-substrate svelte-trzjgq"> </span> <span class="ghost-dash svelte-trzjgq">·</span> <span class="ghost-count svelte-trzjgq">—</span> <span class="ghost-dash svelte-trzjgq">·</span> <span class="ghost-count svelte-trzjgq">—</span></div> <div class="shimmer-overlay svelte-trzjgq"></div></div>`),Se=t(`<div class="ghost-dot svelte-trzjgq"></div>`),Ce=t(`<div class="skeleton-canvas svelte-trzjgq" aria-hidden="true" data-brain-skeleton=""><div class="ambient-glow svelte-trzjgq"></div> <!> <div class="ghost-dots svelte-trzjgq" aria-hidden="true"></div> <div class="scan-line svelte-trzjgq"></div></div>`);function we(e,t){let i=x(t,`visible`,3,!0),c=x(t,`height`,3,`100%`),l=[{id:`brain`,label:`BRAIN`,cssVar:`var(--info)`,top:`18%`,left:`22%`,width:`22%`,height:`14%`},{id:`nexus`,label:`NEXUS`,cssVar:`var(--success)`,top:`42%`,left:`52%`,width:`26%`,height:`16%`},{id:`tasks`,label:`TASKS`,cssVar:`var(--warning)`,top:`62%`,left:`20%`,width:`20%`,height:`12%`},{id:`conduit`,label:`CONDUIT`,cssVar:`var(--accent)`,top:`28%`,left:`58%`,width:`16%`,height:`10%`},{id:`agent-registry`,label:`SIGNALDOCK`,cssVar:`var(--danger)`,top:`70%`,left:`55%`,width:`18%`,height:`10%`}];var u=D(),f=v(u),p=e=>{var t=Ce(),r=_(s(t),2);R(r,17,()=>l,e=>e.id,(e,t)=>{var r=xe(),i=s(r),c=s(i),l=s(c,!0);I(c),O(8),I(i),O(2),I(r),a(()=>{b(r,`
1
+ import{$ as e,A as t,D as n,E as r,F as i,H as a,I as o,J as s,K as c,M as l,N as u,O as d,P as f,Q as p,T as m,U as h,V as g,X as _,Y as v,Z as y,_ as b,a as x,at as S,c as C,d as w,et as T,ft as E,k as D,lt as O,m as k,n as A,o as j,ot as M,q as N,r as P,u as F,ut as I,v as L,w as R,x as z}from"../chunks/DyGQ_VXC.js";import"../chunks/CQCxd1p9.js";import{t as B}from"../chunks/CKXdW4mW.js";import{a as V,i as H,n as U,r as W,t as G}from"../chunks/CEqOYim7.js";import{n as ee}from"../chunks/o1PZ6Kzq.js";import{a as te,i as ne,r as re,s as K}from"../chunks/RptFUp2P.js";import{n as q,t as ie}from"../chunks/Bxz2A0ZC.js";function ae(e){let t=e.url??`/api/brain/stream`,n=e.initialReconnectMs??2e3,r=e.maxReconnectMs??3e4,i=e.callbacks,a=null,o=!1,s=n,c=null,l=`connecting`,u=e=>{l!==e&&(l=e,i.onStatus?.(e))},d=()=>{o||c===null&&(c=setTimeout(()=>{c=null,!o&&(s=Math.min(s*2,r),p())},s))},f=e=>{let t;try{t=JSON.parse(e)}catch(e){i.onError?.(e instanceof Error?e:Error(`Malformed SSE payload`));return}switch(t.type){case`hello`:u(`connected`),i.onConnect?.();return;case`heartbeat`:i.onHeartbeat?.(t);return;case`node.create`:i.onNodeCreate?.(t);return;case`edge.strengthen`:i.onEdgeStrengthen?.(t);return;case`task.status`:i.onTaskStatus?.(t);return;case`message.send`:i.onMessageSend?.(t);return}},p=()=>{if(o)return;if(typeof EventSource>`u`){i.onError?.(Error(`EventSource is not available in this environment`));return}u(`connecting`);let e=new EventSource(t);a=e,e.onopen=()=>{if(o){e.close();return}s=n,u(`connected`)},e.onmessage=e=>{o||f(e.data)},e.onerror=()=>{e.close(),a=null,!o&&(u(`error`),d())}};return p(),{dispose:()=>{o||(o=!0,c!==null&&(clearTimeout(c),c=null),a?.close(),a=null,u(`disconnected`))},status:()=>l}}function oe(e){let t=e>>>0;return t===0&&(t=2654435761),()=>(t^=t<<13,t^=t>>>17,t^=t<<5,t>>>=0,t/4294967295)}var se={brain:[`observation`,`decision`,`pattern`,`learning`],nexus:[`symbol`,`file`,`community`],tasks:[`task`,`session`],conduit:[`message`],"agent-registry":[`agent`]},ce={brain:[`supersedes`,`contradicts`,`derived_from`,`cites`,`references`,`documents`],nexus:[`calls`,`extends`,`implements`,`imports`,`accesses`,`defines`,`contains`,`has_method`,`has_property`],tasks:[`blocks`,`depends`,`parent`],conduit:[`messages`,`fires`],"agent-registry":[`messages`,`co_fires`]},J=[`references`,`relates_to`,`documents`,`informed_by`,`produced_by`];function le(e=400,t=600,n=3252719635){let r=oe(n),i=[],a=[],o={brain:Math.round(e*.3),nexus:Math.round(e*.35),tasks:Math.round(e*.15),conduit:Math.round(e*.12),"agent-registry":0},s=o.brain+o.nexus+o.tasks+o.conduit;o[`agent-registry`]=Math.max(0,e-s);for(let e of q){let t=o[e],s=se[e],c=ue(e,Math.min(5,Math.max(1,Math.floor(t/30)))),l=Object.fromEntries(c.map(e=>[e.id,[]]));for(let a=0;a<t;a++){let t=s[Math.floor(r()*s.length)],o=Math.floor(r()*c.length),u=c[o]?.id,d=`${e}:${t}-${a.toString(36)}-${n.toString(36).slice(-3)}`,f=Z(r()*.85+.1,3),p=Z(r(),3),m=a<c.length||r()>.95,h=de(e,t,a);i.push({id:d,substrate:e,kind:t,label:h,category:u,weight:m?Math.max(.82,f):f,freshness:p,meta:{isHub:m,clusterLabel:c[o]?.label??null}}),u&&l[u]?.push(d)}for(let t of c)a.push({id:t.id,label:t.label,substrate:e,memberIds:l[t.id]??[]})}let c=[],l=new Set,u=fe(i),d=0,f=t*4;for(;c.length<t&&d<f;){d++;let e=i[Math.floor(r()*i.length)],t=r()<.25,n,a;if(t){let t=e.substrate;for(;t===e.substrate;)t=q[Math.floor(r()*q.length)];let i=u[t];if(!i||i.length===0)continue;n=i[Math.floor(r()*i.length)],a=J[Math.floor(r()*J.length)]}else if(n=i[Math.floor(r()*i.length)],n.substrate!==e.substrate)a=J[Math.floor(r()*J.length)];else{let t=ce[e.substrate];a=t[Math.floor(r()*t.length)]}if(n.id===e.id)continue;let o=`${e.id}>${n.id}:${a}`;l.has(o)||(l.add(o),c.push({id:`e${c.length.toString(36)}`,source:e.id,target:n.id,kind:a,weight:Z(r()*.7+.15,3),directional:!0,meta:{crossSubstrate:t}}))}return{nodes:i,edges:c,clusters:a}}function ue(e,t){let n={brain:[`Cortex`,`Hippocampus`,`Reflexes`,`Lineage`,`Atlas`],nexus:[`Core`,`Dispatch`,`Memory Bridge`,`Session Runtime`,`Brain Adapter`],tasks:[`Epic`,`Backlog`,`In Flight`,`Release`],conduit:[`Agent Chatter`,`System Events`,`Broadcast`],"agent-registry":[`Orchestrators`,`Leads`,`Workers`]}[e];return Array.from({length:t},(t,r)=>({id:`${e}:cluster:${n[r%n.length]}:${r}`,label:`${n[r%n.length]}`}))}function de(e,t,n){let r=n.toString(36);switch(e){case`brain`:return t===`decision`?`D-${r}: canonicalise ${Y([`envelope`,`registry`,`cluster`],n)}`:t===`pattern`?`P-${r}: ${Y([`rate-limit`,`cache-warm`,`retry-backoff`],n)}`:t===`learning`?`L-${r}: ${Y([`ssoT drift`,`flake source`,`slow path`],n)}`:`O-${r}: ${Y([`observed`,`resolved`,`noted`],n)} ${Y([`fix`,`regression`,`pattern`],n)}`;case`nexus`:return t===`file`?`src/${Y([`dispatch`,`engines`,`adapters`,`stores`],n)}/${Y([`index`,`bridge`,`harness`,`runtime`],n)}.ts`:t===`community`?`cluster-${r}`:`${Y([`register`,`resolve`,`build`,`spawn`,`emit`],n)}${X(Y([`Provider`,`Engine`,`Adapter`,`Bridge`,`Session`],n))}`;case`tasks`:return t===`session`?`ses_${r}`:`T${(n+100).toString(10)}: ${Y([`wire`,`ship`,`audit`,`repair`],n)} ${Y([`brain`,`nexus`,`harness`,`payload`],n)}`;case`conduit`:return`msg_${r} → ${Y([`orchestrator`,`worker-a`,`worker-b`],n)}`;case`agent-registry`:return`${Y([`orc`,`lead`,`wk`],n)}-${r}`}}function Y(e,t){return e[t%e.length]}function X(e){return e.length===0?e:e[0].toUpperCase()+e.slice(1)}function Z(e,t){let n=10**t;return Math.round(e*n)/n}function fe(e){let t={brain:[],nexus:[],tasks:[],conduit:[],"agent-registry":[]};for(let n of e)t[n.substrate].push(n);return t}var pe=t(`<span class="lbc-fallback-reason svelte-1fx55sa"> </span>`),me=t(`<div class="lbc-fallback svelte-1fx55sa"><span class="lbc-fallback-icon svelte-1fx55sa">!</span> <span class="lbc-fallback-msg">GPU renderer unavailable — using 3D <!></span></div>`),he=t(`<div class="lbc-empty svelte-1fx55sa">No data to display</div>`),ge=t(`<div class="lbc-canvas svelte-1fx55sa"></div> <!> <div class="lbc-badge svelte-1fx55sa" aria-label="GPU-accelerated renderer active">GPU</div>`,1),_e=t(`<div class="lbc-wrap svelte-1fx55sa"><!></div>`);function ve(t,i){M(i,!0);let c=x(i,`height`,3,`100%`),l=x(i,`pulsingNodes`,19,()=>new Set),u={brain:`var(--info)`,nexus:`var(--success)`,tasks:`var(--warning)`,conduit:`var(--accent)`,"agent-registry":`var(--danger)`};function f(e,t=.9){if(typeof document>`u`||typeof window>`u`)return[.5,.5,.5,t];let n=document.createElement(`span`);n.style.color=e,n.style.position=`absolute`,n.style.visibility=`hidden`,document.body.appendChild(n);let r=window.getComputedStyle(n).color;document.body.removeChild(n);let i=/rgba?\(([^)]+)\)/i.exec(r);if(!i)return[1,1,1,t];let a=i[1].split(/[,\s/]+/).filter(e=>e.length>0);return[Number.parseFloat(a[0])/255,Number.parseFloat(a[1])/255,Number.parseFloat(a[2])/255,t]}let m=new Map;function g(e){return 4+(e.weight??.3)*14}let y=e(null),C=null,w=e(!1),T=e(``),E=!1,D=!1,k=null,N=[],F=[],L=-1,R=-1;function z(){let e=new Map,t=[],n=[];i.nodes.forEach((r,i)=>{e.set(r.id,i),t.push(r.id),n.push(r)});let r=4096,a=r/2,o=r*.01,s=new Float32Array(i.nodes.length*2);for(let e=0;e<i.nodes.length;e++)s[e*2]=a+(Math.random()-.5)*o,s[e*2+1]=a+(Math.random()-.5)*o;let c=new Float32Array(i.nodes.length*4);for(let e=0;e<i.nodes.length;e++){let t=m.get(i.nodes[e].substrate)??[.5,.5,.5,.9];c[e*4]=t[0],c[e*4+1]=t[1],c[e*4+2]=t[2],c[e*4+3]=t[3]}let l=new Float32Array(i.nodes.length);for(let e=0;e<i.nodes.length;e++)l[e]=g(i.nodes[e]);let u=[],d=new Set;for(let t of i.edges){if(t.source===t.target||!e.has(t.source)||!e.has(t.target))continue;let n=`${t.source}|${t.target}`;d.has(n)||(d.add(n),u.push(t))}let f=new Float32Array(u.length*2),p=new Float32Array(u.length*4),h=new Float32Array(u.length);for(let t=0;t<u.length;t++){let n=u[t],r=e.get(n.source)??0,i=e.get(n.target)??0;f[t*2]=r,f[t*2+1]=i;let a=K(n.kind);p[t*4]=a[0],p[t*4+1]=a[1],p[t*4+2]=a[2],p[t*4+3]=.7,h[t]=.5+(n.weight??.5)*2.5}return{positions:s,colors:c,sizes:l,links:f,linkColors:p,linkWidths:h,idToIndex:e,idxToId:t,idxToNode:n}}function B(e){if(!C||l().size===0)return;let t=f(`var(--text)`,1),n=new Float32Array(i.nodes.length*4);for(let e=0;e<i.nodes.length;e++){let r=l().has(i.nodes[e].id),a=r?t:m.get(i.nodes[e].substrate)??[.5,.5,.5,.9];n[e*4]=a[0],n[e*4+1]=a[1],n[e*4+2]=a[2],n[e*4+3]=r?1:a[3]}C.setPointColors(n);let r=[...l()][0];if(r!==void 0){let t=e.get(r);t!==void 0&&C.zoomToPointByIndex(t,500,2,!1)}setTimeout(()=>{if(!C)return;let e=new Float32Array(i.nodes.length*4);for(let t=0;t<i.nodes.length;t++){let n=m.get(i.nodes[t].substrate)??[.5,.5,.5,.9];e[t*4]=n[0],e[t*4+1]=n[1],e[t*4+2]=n[2],e[t*4+3]=n[3]}C.setPointColors(e)},1500)}function V(){try{let e=document.createElement(`canvas`);return(e.getContext(`webgl2`)??e.getContext(`webgl`))!==null}catch{return!1}}function H(){if(!(!E||!o(y))){if(C&&=(C.destroy(),null),!V()){p(w,!0),p(T,`WebGL not available in this browser`),i.onInitFailed?.(`WebGL not available in this browser`);return}m.clear();for(let e of q)m.set(e,f(u[e],.9));try{let{positions:e,colors:t,sizes:n,links:r,linkColors:a,linkWidths:s,idToIndex:c,idxToId:u,idxToNode:d}=z();N=u,F=d;let f=U(`--bg`,`black`),m=U(`--text-dim`,`gray`),h=U(`--border-strong`,`gray`),g={backgroundColor:f,spaceSize:4096,pointColor:m,pointSize:4,renderHoveredPointRing:!0,hoveredPointRingColor:U(`--text`,`white`),hoveredPointCursor:`pointer`,linkColor:h,linkWidth:.1,linkGreyoutOpacity:0,renderLinks:!0,curvedLinks:!0,simulationLinkDistance:1,simulationLinkSpring:2,simulationRepulsion:.2,simulationGravity:.1,simulationDecay:1e5,onClick:e=>{if(e===void 0){i.onCanvasClear?.();return}let t=F[e];t!==void 0&&i.onNodeSelect?.(t)}};if(C=new ee(o(y),g),C.setPointPositions(e),C.setPointColors(t),C.setPointSizes(n),C.setLinks(r),C.setLinkColors(a),C.setLinkWidths(s),C.zoom(.9),C.render(),D=!0,l().size>0){let e=new Map;for(let t=0;t<u.length;t++){let n=u[t];n!==void 0&&e.set(n,t)}B(e)}setTimeout(()=>{C&&C.fitView(800,.18)},3e3),p(w,!1),p(T,``)}catch(e){C=null,D=!1,p(w,!0);let t=e instanceof Error?e.message:`cosmos.gl renderer failed to initialise`;p(T,t,!0),i.onInitFailed?.(t)}}}function U(e,t){return typeof document>`u`||typeof window>`u`?t:window.getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t}function W(){if(!o(y))return;let e=o(y);if(e.clientWidth>0&&e.clientHeight>0){H();return}k?.disconnect(),k=new ResizeObserver(e=>{for(let t of e){let{width:e,height:n}=t.contentRect;if(e>0&&n>0){k?.disconnect(),k=null,H();return}}}),k.observe(e)}P(()=>{E=!0,requestAnimationFrame(()=>{requestAnimationFrame(()=>{E&&W()})})}),A(()=>{E=!1,D=!1,k?.disconnect(),k=null,C?.destroy(),C=null}),h(()=>{let e=i.nodes.length,t=i.edges.length;D&&(e===L&&t===R||(L=e,R=t,H()))}),h(()=>{if(l().size===0||!D)return;let e=new Map;for(let t=0;t<N.length;t++){let n=N[t];n!==void 0&&e.set(n,t)}B(e)});var G=_e(),te=s(G),ne=e=>{var t=me(),i=_(s(t),2),c=_(s(i)),l=e=>{var t=pe(),r=s(t);I(t),a(()=>n(r,`(${o(T)??``})`)),d(e,t)};r(c,e=>{o(T)&&e(l)}),I(i),I(t),d(e,t)},re=e=>{var t=ge(),n=v(t);j(n,e=>p(y,e),()=>o(y));var a=_(n,2),s=e=>{d(e,he())};r(a,e=>{i.nodes.length===0&&e(s)}),O(2),d(e,t)};r(te,e=>{o(w)?e(ne):e(re,-1)}),I(G),a(()=>b(G,`height: ${c()??``}; position: relative;`)),d(t,G),S()}var Q=t(`<button type="button"><span aria-hidden="true"></span> <span class="edge-name svelte-xiv1be"> </span></button>`),ye=t(`<footer class="controls-dock svelte-xiv1be" aria-label="Canvas controls"><div class="dock-section controls-toggles svelte-xiv1be"><span class="dock-eyebrow svelte-xiv1be">Canvas</span> <div class="toggle-group svelte-xiv1be" role="group" aria-label="Canvas visibility toggles"><button type="button" title="Toggle synapse edge lines (s)"><span aria-hidden="true"></span> synapses <kbd class="shortcut-hint svelte-xiv1be" aria-hidden="true">s</kbd></button> <button type="button" title="Show only cross-substrate bridge edges (b)"><span aria-hidden="true"></span> bridges only <kbd class="shortcut-hint svelte-xiv1be" aria-hidden="true">b</kbd></button> <button type="button" title="Pause ambient simulation breathing"><span aria-hidden="true"></span> </button></div></div> <div class="dock-divider svelte-xiv1be" aria-hidden="true"></div> <div class="dock-section edge-section svelte-xiv1be"><span class="dock-eyebrow svelte-xiv1be">Edge taxonomy — toggle to filter</span> <div class="edge-grid svelte-xiv1be"></div></div> <div class="dock-actions svelte-xiv1be"><button type="button" class="reset-btn svelte-xiv1be" title="Fit camera to graph (f)" aria-label="Reset camera view to fit the graph">fit view <kbd class="shortcut-hint svelte-xiv1be" aria-hidden="true">f</kbd></button></div></footer>`);function be(e,t){M(t,!0);var r=ye(),i=s(r),c=_(s(i),2),l=s(c);let u;var p=s(l);let m;O(2),I(l);var h=_(l,2);let g;var v=s(h);let y;O(2),I(h);var x=_(h,2);let C;var E=s(x);let D;var k=_(E);I(x),I(c),I(i);var A=_(i,4),j=_(s(A),2);R(j,20,()=>re,e=>e,(e,r)=>{let i=T(()=>ne[r]);var c=Q();let l;var u=s(c);let p;var m=_(u,2),h=s(m,!0);I(m),I(c),a((e,t,a,s)=>{l=L(c,1,`edge-kind svelte-xiv1be`,null,l,e),w(c,`aria-pressed`,t),w(c,`title`,a),p=L(u,1,`edge-swatch svelte-xiv1be`,null,p,s),b(u,`--swatch-color: ${o(i).color??``};`),n(h,r)},[()=>({active:t.enabledKinds.has(r)}),()=>t.enabledKinds.has(r),()=>te(r),()=>({dashed:!!o(i).dash})]),f(`click`,c,()=>t.onToggleKind?.(r)),d(e,c)}),I(j),I(A);var N=_(A,2),P=s(N);I(N),I(r),a(()=>{u=L(l,1,`dock-toggle svelte-xiv1be`,null,u,{active:t.showSynapses}),w(l,`aria-pressed`,t.showSynapses),m=L(p,1,`toggle-dot svelte-xiv1be`,null,m,{on:t.showSynapses}),g=L(h,1,`dock-toggle svelte-xiv1be`,null,g,{active:t.showBridgesOnly}),w(h,`aria-pressed`,t.showBridgesOnly),y=L(v,1,`toggle-dot svelte-xiv1be`,null,y,{on:t.showBridgesOnly}),C=L(x,1,`dock-toggle svelte-xiv1be`,null,C,{active:t.breathingPaused}),w(x,`aria-pressed`,t.breathingPaused),D=L(E,1,`toggle-dot svelte-xiv1be`,null,D,{on:t.breathingPaused}),n(k,` ${t.breathingPaused?`paused`:`breathing`}`)}),f(`click`,l,function(...e){t.onToggleSynapses?.apply(this,e)}),f(`click`,h,function(...e){t.onToggleBridgesOnly?.apply(this,e)}),f(`click`,x,function(...e){t.onToggleBreathing?.apply(this,e)}),f(`click`,P,function(...e){t.onResetView?.apply(this,e)}),d(e,r),S()}u([`click`]);var xe=t(`<div class="ghost-cluster svelte-trzjgq"><div class="ghost-label svelte-trzjgq"><span class="ghost-substrate svelte-trzjgq"> </span> <span class="ghost-dash svelte-trzjgq">·</span> <span class="ghost-count svelte-trzjgq">—</span> <span class="ghost-dash svelte-trzjgq">·</span> <span class="ghost-count svelte-trzjgq">—</span></div> <div class="shimmer-overlay svelte-trzjgq"></div></div>`),Se=t(`<div class="ghost-dot svelte-trzjgq"></div>`),Ce=t(`<div class="skeleton-canvas svelte-trzjgq" aria-hidden="true" data-brain-skeleton=""><div class="ambient-glow svelte-trzjgq"></div> <!> <div class="ghost-dots svelte-trzjgq" aria-hidden="true"></div> <div class="scan-line svelte-trzjgq"></div></div>`);function we(e,t){let i=x(t,`visible`,3,!0),c=x(t,`height`,3,`100%`),l=[{id:`brain`,label:`BRAIN`,cssVar:`var(--info)`,top:`18%`,left:`22%`,width:`22%`,height:`14%`},{id:`nexus`,label:`NEXUS`,cssVar:`var(--success)`,top:`42%`,left:`52%`,width:`26%`,height:`16%`},{id:`tasks`,label:`TASKS`,cssVar:`var(--warning)`,top:`62%`,left:`20%`,width:`20%`,height:`12%`},{id:`conduit`,label:`CONDUIT`,cssVar:`var(--accent)`,top:`28%`,left:`58%`,width:`16%`,height:`10%`},{id:`agent-registry`,label:`SIGNALDOCK`,cssVar:`var(--danger)`,top:`70%`,left:`55%`,width:`18%`,height:`10%`}];var u=D(),f=v(u),p=e=>{var t=Ce(),r=_(s(t),2);R(r,17,()=>l,e=>e.id,(e,t)=>{var r=xe(),i=s(r),c=s(i),l=s(c,!0);I(c),O(8),I(i),O(2),I(r),a(()=>{b(r,`
2
2
  top: ${o(t).top??``};
3
3
  left: ${o(t).left??``};
4
4
  width: ${o(t).width??``};
@@ -1 +1 @@
1
- {"version":"1789451725755"}
1
+ {"version":"1789603115069"}
@@ -116,11 +116,11 @@ var _layout_server_ts = /*#__PURE__*/Object.freeze({
116
116
 
117
117
  const index = 0;
118
118
  let component_cache;
119
- const component = async () => component_cache ??= (await import('./_layout.svelte-DHjtdIgc.js')).default;
119
+ const component = async () => component_cache ??= (await import('./_layout.svelte-rswfOTDe.js')).default;
120
120
  const server_id = "src/routes/+layout.server.ts";
121
- const imports = ["_app/immutable/nodes/0.CgZmurcA.js","_app/immutable/chunks/CfaaCiec.js","_app/immutable/chunks/BKR-sjxJ.js","_app/immutable/chunks/DyGQ_VXC.js","_app/immutable/chunks/DrKWWDpL.js","_app/immutable/chunks/CQCxd1p9.js"];
121
+ const imports = ["_app/immutable/nodes/0.DcUJW-xi.js","_app/immutable/chunks/C7UP-KLT.js","_app/immutable/chunks/DrfFUIvQ.js","_app/immutable/chunks/DyGQ_VXC.js","_app/immutable/chunks/DrKWWDpL.js","_app/immutable/chunks/CQCxd1p9.js"];
122
122
  const stylesheets = ["_app/immutable/assets/0.BAKYIbXL.css"];
123
123
  const fonts = ["_app/immutable/assets/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2","_app/immutable/assets/inter-cyrillic-wght-normal.DqGufNeO.woff2","_app/immutable/assets/inter-greek-ext-wght-normal.DlzME5K_.woff2","_app/immutable/assets/inter-greek-wght-normal.CkhJZR-_.woff2","_app/immutable/assets/inter-vietnamese-wght-normal.CBcvBZtf.woff2","_app/immutable/assets/inter-latin-ext-wght-normal.DO1Apj_S.woff2","_app/immutable/assets/inter-latin-wght-normal.Dx4kXJAl.woff2","_app/immutable/assets/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2","_app/immutable/assets/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2","_app/immutable/assets/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2","_app/immutable/assets/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2","_app/immutable/assets/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2"];
124
124
 
125
125
  export { component, fonts, imports, index, _layout_server_ts as server, server_id, stylesheets };
126
- //# sourceMappingURL=0-DwFPJnkU.js.map
126
+ //# sourceMappingURL=0-CM4iQVYP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"0-DwFPJnkU.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.server.ts.js","../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["import { i as listRegisteredProjects, r as getActiveProjectId } from \"../../chunks/project-context.js\";\n//#region src/routes/+layout.server.ts\n/**\n* Root layout server load — supplies active project context and full project\n* list to every page in CLEO Studio so the header ProjectSelector has data\n* without requiring a per-page load function.\n*\n* @task T646\n*/\nvar load = ({ cookies }) => {\n\tconst activeProjectId = getActiveProjectId(cookies);\n\treturn {\n\t\tprojects: listRegisteredProjects(),\n\t\tactiveProjectId\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/_layout.server.ts.js';\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+layout.server.ts\";\nexport const imports = [\"_app/immutable/nodes/0.CgZmurcA.js\",\"_app/immutable/chunks/CfaaCiec.js\",\"_app/immutable/chunks/BKR-sjxJ.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/CQCxd1p9.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.BAKYIbXL.css\"];\nexport const fonts = [\"_app/immutable/assets/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2\",\"_app/immutable/assets/inter-cyrillic-wght-normal.DqGufNeO.woff2\",\"_app/immutable/assets/inter-greek-ext-wght-normal.DlzME5K_.woff2\",\"_app/immutable/assets/inter-greek-wght-normal.CkhJZR-_.woff2\",\"_app/immutable/assets/inter-vietnamese-wght-normal.CBcvBZtf.woff2\",\"_app/immutable/assets/inter-latin-ext-wght-normal.DO1Apj_S.woff2\",\"_app/immutable/assets/inter-latin-wght-normal.Dx4kXJAl.woff2\",\"_app/immutable/assets/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2\",\"_app/immutable/assets/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2\",\"_app/immutable/assets/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2\",\"_app/immutable/assets/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2\",\"_app/immutable/assets/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2\"];\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK;AAC5B,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC;AACpD,CAAC,OAAO;AACR,EAAE,QAAQ,EAAE,sBAAsB,EAAE;AACpC,EAAE;AACF,EAAE;AACF,CAAC;;;;;;;ACbW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE;AAElG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG,CAAC,qEAAqE,CAAC,iEAAiE,CAAC,kEAAkE,CAAC,8DAA8D,CAAC,mEAAmE,CAAC,kEAAkE,CAAC,8DAA8D,CAAC,0EAA0E,CAAC,uEAAuE,CAAC,4EAA4E,CAAC,2EAA2E,CAAC,uEAAuE;;;;"}
1
+ {"version":3,"file":"0-CM4iQVYP.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.server.ts.js","../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["import { i as listRegisteredProjects, r as getActiveProjectId } from \"../../chunks/project-context.js\";\n//#region src/routes/+layout.server.ts\n/**\n* Root layout server load — supplies active project context and full project\n* list to every page in CLEO Studio so the header ProjectSelector has data\n* without requiring a per-page load function.\n*\n* @task T646\n*/\nvar load = ({ cookies }) => {\n\tconst activeProjectId = getActiveProjectId(cookies);\n\treturn {\n\t\tprojects: listRegisteredProjects(),\n\t\tactiveProjectId\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/_layout.server.ts.js';\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+layout.server.ts\";\nexport const imports = [\"_app/immutable/nodes/0.DcUJW-xi.js\",\"_app/immutable/chunks/C7UP-KLT.js\",\"_app/immutable/chunks/DrfFUIvQ.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/CQCxd1p9.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.BAKYIbXL.css\"];\nexport const fonts = [\"_app/immutable/assets/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2\",\"_app/immutable/assets/inter-cyrillic-wght-normal.DqGufNeO.woff2\",\"_app/immutable/assets/inter-greek-ext-wght-normal.DlzME5K_.woff2\",\"_app/immutable/assets/inter-greek-wght-normal.CkhJZR-_.woff2\",\"_app/immutable/assets/inter-vietnamese-wght-normal.CBcvBZtf.woff2\",\"_app/immutable/assets/inter-latin-ext-wght-normal.DO1Apj_S.woff2\",\"_app/immutable/assets/inter-latin-wght-normal.Dx4kXJAl.woff2\",\"_app/immutable/assets/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2\",\"_app/immutable/assets/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2\",\"_app/immutable/assets/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2\",\"_app/immutable/assets/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2\",\"_app/immutable/assets/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2\"];\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK;AAC5B,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC;AACpD,CAAC,OAAO;AACR,EAAE,QAAQ,EAAE,sBAAsB,EAAE;AACpC,EAAE;AACF,EAAE;AACF,CAAC;;;;;;;ACbW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE;AAElG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG,CAAC,qEAAqE,CAAC,iEAAiE,CAAC,kEAAkE,CAAC,8DAA8D,CAAC,mEAAmE,CAAC,kEAAkE,CAAC,8DAA8D,CAAC,0EAA0E,CAAC,uEAAuE,CAAC,4EAA4E,CAAC,2EAA2E,CAAC,uEAAuE;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 1;
2
2
  let component_cache;
3
- const component = async () => component_cache ??= (await import('./error.svelte-BLSLV0aG.js')).default;
4
- const imports = ["_app/immutable/nodes/1.1dbkrilf.js","_app/immutable/chunks/wIquQ8oS.js","_app/immutable/chunks/BKR-sjxJ.js","_app/immutable/chunks/DyGQ_VXC.js","_app/immutable/chunks/DrKWWDpL.js","_app/immutable/chunks/CQCxd1p9.js"];
3
+ const component = async () => component_cache ??= (await import('./error.svelte-Bt1EbBZe.js')).default;
4
+ const imports = ["_app/immutable/nodes/1.DyTt_cQs.js","_app/immutable/chunks/CKXdW4mW.js","_app/immutable/chunks/DrfFUIvQ.js","_app/immutable/chunks/DyGQ_VXC.js","_app/immutable/chunks/DrKWWDpL.js","_app/immutable/chunks/CQCxd1p9.js"];
5
5
  const stylesheets = [];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=1-CG5_Q8zX.js.map
9
+ //# sourceMappingURL=1-BQFD-dx6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1-CG5_Q8zX.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.1dbkrilf.js\",\"_app/immutable/chunks/wIquQ8oS.js\",\"_app/immutable/chunks/BKR-sjxJ.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/CQCxd1p9.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"1-BQFD-dx6.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.DyTt_cQs.js\",\"_app/immutable/chunks/CKXdW4mW.js\",\"_app/immutable/chunks/DrfFUIvQ.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/CQCxd1p9.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -27,11 +27,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
27
27
 
28
28
  const index = 15;
29
29
  let component_cache;
30
- const component = async () => component_cache ??= (await import('./_page.svelte-veJzLVtt.js')).default;
30
+ const component = async () => component_cache ??= (await import('./_page.svelte-CiIYIPG9.js')).default;
31
31
  const server_id = "src/routes/code/+page.server.ts";
32
- const imports = ["_app/immutable/nodes/15.Bz_Nz80F.js","_app/immutable/chunks/BKR-sjxJ.js","_app/immutable/chunks/DyGQ_VXC.js","_app/immutable/chunks/DrKWWDpL.js","_app/immutable/chunks/CifRJkIA.js","_app/immutable/chunks/CQCxd1p9.js","_app/immutable/chunks/D8NsLz6i.js","_app/immutable/chunks/o1PZ6Kzq.js","_app/immutable/chunks/RptFUp2P.js","_app/immutable/chunks/CEqOYim7.js","_app/immutable/chunks/CqF5Lomf.js"];
32
+ const imports = ["_app/immutable/nodes/15.LRqqoueS.js","_app/immutable/chunks/DrfFUIvQ.js","_app/immutable/chunks/DyGQ_VXC.js","_app/immutable/chunks/DrKWWDpL.js","_app/immutable/chunks/9yrFrmKZ.js","_app/immutable/chunks/CQCxd1p9.js","_app/immutable/chunks/D8NsLz6i.js","_app/immutable/chunks/o1PZ6Kzq.js","_app/immutable/chunks/RptFUp2P.js","_app/immutable/chunks/CEqOYim7.js","_app/immutable/chunks/CqF5Lomf.js"];
33
33
  const stylesheets = ["_app/immutable/assets/cluster-label-layer.aRgASjnn.css","_app/immutable/assets/no-face-up.BlswZ73M.css","_app/immutable/assets/nexus-adapter.DuSZKvuH.css","_app/immutable/assets/Tabs.CU9_rsWl.css","_app/immutable/assets/ui.CH-9N9-0.css","_app/immutable/assets/15.CdtiwMjj.css"];
34
34
  const fonts = [];
35
35
 
36
36
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
37
- //# sourceMappingURL=15-CZZGY2wS.js.map
37
+ //# sourceMappingURL=15-Cng10n82.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"15-CZZGY2wS.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/code/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/15.js"],"sourcesContent":["//#region src/routes/code/+page.server.ts\nvar load = async ({ fetch }) => {\n\tconst resp = await fetch(\"/api/nexus\");\n\tif (!resp.ok) return {\n\t\tcommunities: [],\n\t\tedges: [],\n\t\ttotalNodes: 0,\n\t\ttotalRelations: 0,\n\t\tempty: true,\n\t\temptyReason: resp.status === 503 ? \"nexus.db not available\" : `API error ${resp.status}`\n\t};\n\tconst payload = await resp.json();\n\treturn {\n\t\tcommunities: payload.communities,\n\t\tedges: payload.edges,\n\t\ttotalNodes: payload.totalNodes,\n\t\ttotalRelations: payload.totalRelations,\n\t\tempty: payload.communities.length === 0,\n\t\temptyReason: payload.communities.length === 0 ? \"No communities indexed yet. Run `cleo nexus analyze` to populate nexus.db.\" : null\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/code/_page.server.ts.js';\n\nexport const index = 15;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/code/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/code/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/15.Bz_Nz80F.js\",\"_app/immutable/chunks/BKR-sjxJ.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/CifRJkIA.js\",\"_app/immutable/chunks/CQCxd1p9.js\",\"_app/immutable/chunks/D8NsLz6i.js\",\"_app/immutable/chunks/o1PZ6Kzq.js\",\"_app/immutable/chunks/RptFUp2P.js\",\"_app/immutable/chunks/CEqOYim7.js\",\"_app/immutable/chunks/CqF5Lomf.js\"];\nexport const stylesheets = [\"_app/immutable/assets/cluster-label-layer.aRgASjnn.css\",\"_app/immutable/assets/no-face-up.BlswZ73M.css\",\"_app/immutable/assets/nexus-adapter.DuSZKvuH.css\",\"_app/immutable/assets/Tabs.CU9_rsWl.css\",\"_app/immutable/assets/ui.CH-9N9-0.css\",\"_app/immutable/assets/15.CdtiwMjj.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAAA;AACA,IAAI,IAAI,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK;AAChC,CAAC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC;AACvC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO;AACtB,EAAE,WAAW,EAAE,EAAE;AACjB,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,UAAU,EAAE,CAAC;AACf,EAAE,cAAc,EAAE,CAAC;AACnB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,KAAK,GAAG,GAAG,wBAAwB,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;AACzF,EAAE;AACF,CAAC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AAClC,CAAC,OAAO;AACR,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW;AAClC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;AACtB,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;AAChC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc;AACxC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;AACzC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,GAAG,4EAA4E,GAAG;AACjI,EAAE;AACF,CAAC;;;;;;;AClBW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAuC,CAAC,EAAE;AAErG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACzZ,MAAC,WAAW,GAAG,CAAC,wDAAwD,CAAC,+CAA+C,CAAC,kDAAkD,CAAC,yCAAyC,CAAC,uCAAuC,CAAC,uCAAuC;AACrS,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"15-Cng10n82.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/code/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/15.js"],"sourcesContent":["//#region src/routes/code/+page.server.ts\nvar load = async ({ fetch }) => {\n\tconst resp = await fetch(\"/api/nexus\");\n\tif (!resp.ok) return {\n\t\tcommunities: [],\n\t\tedges: [],\n\t\ttotalNodes: 0,\n\t\ttotalRelations: 0,\n\t\tempty: true,\n\t\temptyReason: resp.status === 503 ? \"nexus.db not available\" : `API error ${resp.status}`\n\t};\n\tconst payload = await resp.json();\n\treturn {\n\t\tcommunities: payload.communities,\n\t\tedges: payload.edges,\n\t\ttotalNodes: payload.totalNodes,\n\t\ttotalRelations: payload.totalRelations,\n\t\tempty: payload.communities.length === 0,\n\t\temptyReason: payload.communities.length === 0 ? \"No communities indexed yet. Run `cleo nexus analyze` to populate nexus.db.\" : null\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/code/_page.server.ts.js';\n\nexport const index = 15;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/code/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/code/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/15.LRqqoueS.js\",\"_app/immutable/chunks/DrfFUIvQ.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/9yrFrmKZ.js\",\"_app/immutable/chunks/CQCxd1p9.js\",\"_app/immutable/chunks/D8NsLz6i.js\",\"_app/immutable/chunks/o1PZ6Kzq.js\",\"_app/immutable/chunks/RptFUp2P.js\",\"_app/immutable/chunks/CEqOYim7.js\",\"_app/immutable/chunks/CqF5Lomf.js\"];\nexport const stylesheets = [\"_app/immutable/assets/cluster-label-layer.aRgASjnn.css\",\"_app/immutable/assets/no-face-up.BlswZ73M.css\",\"_app/immutable/assets/nexus-adapter.DuSZKvuH.css\",\"_app/immutable/assets/Tabs.CU9_rsWl.css\",\"_app/immutable/assets/ui.CH-9N9-0.css\",\"_app/immutable/assets/15.CdtiwMjj.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAAA;AACA,IAAI,IAAI,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK;AAChC,CAAC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC;AACvC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO;AACtB,EAAE,WAAW,EAAE,EAAE;AACjB,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,UAAU,EAAE,CAAC;AACf,EAAE,cAAc,EAAE,CAAC;AACnB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,KAAK,GAAG,GAAG,wBAAwB,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;AACzF,EAAE;AACF,CAAC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AAClC,CAAC,OAAO;AACR,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW;AAClC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK;AACtB,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;AAChC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc;AACxC,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;AACzC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,GAAG,4EAA4E,GAAG;AACjI,EAAE;AACF,CAAC;;;;;;;AClBW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAuC,CAAC,EAAE;AAErG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACzZ,MAAC,WAAW,GAAG,CAAC,wDAAwD,CAAC,+CAA+C,CAAC,kDAAkD,CAAC,yCAAyC,CAAC,uCAAuC,CAAC,uCAAuC;AACrS,MAAC,KAAK,GAAG;;;;"}
@@ -53,11 +53,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
53
53
 
54
54
  const index = 16;
55
55
  let component_cache;
56
- const component = async () => component_cache ??= (await import('./_page.svelte-BDSxuyHW.js')).default;
56
+ const component = async () => component_cache ??= (await import('./_page.svelte-D8NhlkPD.js')).default;
57
57
  const server_id = "src/routes/code/community/[id]/+page.server.ts";
58
- const imports = ["_app/immutable/nodes/16.D6pij0yb.js","_app/immutable/chunks/BKR-sjxJ.js","_app/immutable/chunks/DyGQ_VXC.js","_app/immutable/chunks/DrKWWDpL.js","_app/immutable/chunks/CifRJkIA.js","_app/immutable/chunks/CQCxd1p9.js","_app/immutable/chunks/D8NsLz6i.js","_app/immutable/chunks/o1PZ6Kzq.js","_app/immutable/chunks/RptFUp2P.js","_app/immutable/chunks/CEqOYim7.js","_app/immutable/chunks/CqF5Lomf.js"];
58
+ const imports = ["_app/immutable/nodes/16.-hGPNXOI.js","_app/immutable/chunks/DrfFUIvQ.js","_app/immutable/chunks/DyGQ_VXC.js","_app/immutable/chunks/DrKWWDpL.js","_app/immutable/chunks/9yrFrmKZ.js","_app/immutable/chunks/CQCxd1p9.js","_app/immutable/chunks/D8NsLz6i.js","_app/immutable/chunks/o1PZ6Kzq.js","_app/immutable/chunks/RptFUp2P.js","_app/immutable/chunks/CEqOYim7.js","_app/immutable/chunks/CqF5Lomf.js"];
59
59
  const stylesheets = ["_app/immutable/assets/cluster-label-layer.aRgASjnn.css","_app/immutable/assets/no-face-up.BlswZ73M.css","_app/immutable/assets/nexus-adapter.DuSZKvuH.css","_app/immutable/assets/Tabs.CU9_rsWl.css","_app/immutable/assets/ui.CH-9N9-0.css","_app/immutable/assets/16.BzOs0cg_.css"];
60
60
  const fonts = [];
61
61
 
62
62
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
63
- //# sourceMappingURL=16-i0yNeXoO.js.map
63
+ //# sourceMappingURL=16-u3KwU3N4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"16-i0yNeXoO.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/code/community/_id_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/16.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\n//#region src/routes/code/community/[id]/+page.server.ts\n/**\n* /code/community/[id] — server load.\n*\n* Wires through `/api/nexus/community/[id]` to retire the direct DB\n* call flagged by the T990 code audit. The API payload is passed to\n* the adapter on the client, so this loader stays thin.\n*\n* @task T990\n* @wave 1B\n*/\nvar load = async ({ params, fetch }) => {\n\tconst communityId = decodeURIComponent(params.id);\n\tconst [detailResp, listResp] = await Promise.all([fetch(`/api/nexus/community/${encodeURIComponent(communityId)}`), fetch(\"/api/nexus?only=communities\")]);\n\tif (!detailResp.ok) {\n\t\tif (detailResp.status === 404) error(404, `Community ${communityId} not found`);\n\t\tif (detailResp.status === 503) error(503, \"nexus.db not available\");\n\t\terror(detailResp.status, \"Failed to load community\");\n\t}\n\tconst detail = await detailResp.json();\n\tlet communityLabel = communityId.replace(\"comm_\", \"Cluster \");\n\tif (listResp.ok) {\n\t\tconst match = (await listResp.json()).communities.find((c) => c.id === communityId);\n\t\tif (match?.rawLabel) communityLabel = match.rawLabel;\n\t}\n\tconst kindHisto = /* @__PURE__ */ new Map();\n\tfor (const n of detail.nodes) kindHisto.set(n.kind, (kindHisto.get(n.kind) ?? 0) + 1);\n\tlet topKind = \"function\";\n\tlet topCount = 0;\n\tfor (const [k, c] of kindHisto) if (c > topCount) {\n\t\ttopKind = k;\n\t\ttopCount = c;\n\t}\n\treturn {\n\t\tcommunityId,\n\t\tcommunityLabel,\n\t\tnodes: detail.nodes,\n\t\tedges: detail.edges,\n\t\tsummary: {\n\t\t\tmemberCount: detail.nodes.length,\n\t\t\ttopKind,\n\t\t\tinternalEdgeCount: detail.edges.length\n\t\t}\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/code/community/_id_/_page.server.ts.js';\n\nexport const index = 16;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/code/community/_id_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/code/community/[id]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/16.D6pij0yb.js\",\"_app/immutable/chunks/BKR-sjxJ.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/CifRJkIA.js\",\"_app/immutable/chunks/CQCxd1p9.js\",\"_app/immutable/chunks/D8NsLz6i.js\",\"_app/immutable/chunks/o1PZ6Kzq.js\",\"_app/immutable/chunks/RptFUp2P.js\",\"_app/immutable/chunks/CEqOYim7.js\",\"_app/immutable/chunks/CqF5Lomf.js\"];\nexport const stylesheets = [\"_app/immutable/assets/cluster-label-layer.aRgASjnn.css\",\"_app/immutable/assets/no-face-up.BlswZ73M.css\",\"_app/immutable/assets/nexus-adapter.DuSZKvuH.css\",\"_app/immutable/assets/Tabs.CU9_rsWl.css\",\"_app/immutable/assets/ui.CH-9N9-0.css\",\"_app/immutable/assets/16.BzOs0cg_.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"16-u3KwU3N4.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/code/community/_id_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/16.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\n//#region src/routes/code/community/[id]/+page.server.ts\n/**\n* /code/community/[id] — server load.\n*\n* Wires through `/api/nexus/community/[id]` to retire the direct DB\n* call flagged by the T990 code audit. The API payload is passed to\n* the adapter on the client, so this loader stays thin.\n*\n* @task T990\n* @wave 1B\n*/\nvar load = async ({ params, fetch }) => {\n\tconst communityId = decodeURIComponent(params.id);\n\tconst [detailResp, listResp] = await Promise.all([fetch(`/api/nexus/community/${encodeURIComponent(communityId)}`), fetch(\"/api/nexus?only=communities\")]);\n\tif (!detailResp.ok) {\n\t\tif (detailResp.status === 404) error(404, `Community ${communityId} not found`);\n\t\tif (detailResp.status === 503) error(503, \"nexus.db not available\");\n\t\terror(detailResp.status, \"Failed to load community\");\n\t}\n\tconst detail = await detailResp.json();\n\tlet communityLabel = communityId.replace(\"comm_\", \"Cluster \");\n\tif (listResp.ok) {\n\t\tconst match = (await listResp.json()).communities.find((c) => c.id === communityId);\n\t\tif (match?.rawLabel) communityLabel = match.rawLabel;\n\t}\n\tconst kindHisto = /* @__PURE__ */ new Map();\n\tfor (const n of detail.nodes) kindHisto.set(n.kind, (kindHisto.get(n.kind) ?? 0) + 1);\n\tlet topKind = \"function\";\n\tlet topCount = 0;\n\tfor (const [k, c] of kindHisto) if (c > topCount) {\n\t\ttopKind = k;\n\t\ttopCount = c;\n\t}\n\treturn {\n\t\tcommunityId,\n\t\tcommunityLabel,\n\t\tnodes: detail.nodes,\n\t\tedges: detail.edges,\n\t\tsummary: {\n\t\t\tmemberCount: detail.nodes.length,\n\t\t\ttopKind,\n\t\t\tinternalEdgeCount: detail.edges.length\n\t\t}\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/code/community/_id_/_page.server.ts.js';\n\nexport const index = 16;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/code/community/_id_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/code/community/[id]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/16.-hGPNXOI.js\",\"_app/immutable/chunks/DrfFUIvQ.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/9yrFrmKZ.js\",\"_app/immutable/chunks/CQCxd1p9.js\",\"_app/immutable/chunks/D8NsLz6i.js\",\"_app/immutable/chunks/o1PZ6Kzq.js\",\"_app/immutable/chunks/RptFUp2P.js\",\"_app/immutable/chunks/CEqOYim7.js\",\"_app/immutable/chunks/CqF5Lomf.js\"];\nexport const stylesheets = [\"_app/immutable/assets/cluster-label-layer.aRgASjnn.css\",\"_app/immutable/assets/no-face-up.BlswZ73M.css\",\"_app/immutable/assets/nexus-adapter.DuSZKvuH.css\",\"_app/immutable/assets/Tabs.CU9_rsWl.css\",\"_app/immutable/assets/ui.CH-9N9-0.css\",\"_app/immutable/assets/16.BzOs0cg_.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
@@ -223,11 +223,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
223
223
 
224
224
  const index = 17;
225
225
  let component_cache;
226
- const component = async () => component_cache ??= (await import('./_page.svelte-JjbfOpHp.js')).default;
226
+ const component = async () => component_cache ??= (await import('./_page.svelte-CHH1vmfg.js')).default;
227
227
  const server_id = "src/routes/code/flows/+page.server.ts";
228
- const imports = ["_app/immutable/nodes/17.DJb8ywg2.js","_app/immutable/chunks/BKR-sjxJ.js","_app/immutable/chunks/DyGQ_VXC.js","_app/immutable/chunks/DrKWWDpL.js","_app/immutable/chunks/CifRJkIA.js","_app/immutable/chunks/CQCxd1p9.js","_app/immutable/chunks/D8NsLz6i.js","_app/immutable/chunks/o1PZ6Kzq.js","_app/immutable/chunks/RptFUp2P.js","_app/immutable/chunks/CEqOYim7.js","_app/immutable/chunks/CqF5Lomf.js"];
228
+ const imports = ["_app/immutable/nodes/17.ChMxgTIY.js","_app/immutable/chunks/DrfFUIvQ.js","_app/immutable/chunks/DyGQ_VXC.js","_app/immutable/chunks/DrKWWDpL.js","_app/immutable/chunks/9yrFrmKZ.js","_app/immutable/chunks/CQCxd1p9.js","_app/immutable/chunks/D8NsLz6i.js","_app/immutable/chunks/o1PZ6Kzq.js","_app/immutable/chunks/RptFUp2P.js","_app/immutable/chunks/CEqOYim7.js","_app/immutable/chunks/CqF5Lomf.js"];
229
229
  const stylesheets = ["_app/immutable/assets/cluster-label-layer.aRgASjnn.css","_app/immutable/assets/no-face-up.BlswZ73M.css","_app/immutable/assets/nexus-adapter.DuSZKvuH.css","_app/immutable/assets/Tabs.CU9_rsWl.css","_app/immutable/assets/ui.CH-9N9-0.css","_app/immutable/assets/17.C-9c74gE.css"];
230
230
  const fonts = [];
231
231
 
232
232
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
233
- //# sourceMappingURL=17-DpnTEz3y.js.map
233
+ //# sourceMappingURL=17-BDtxQX9n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"17-DpnTEz3y.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/code/flows/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/17.js"],"sourcesContent":["import { a as getNexusDb } from \"../../../../chunks/connections2.js\";\n//#region src/routes/code/flows/+page.server.ts\n/**\n* /code/flows — execution-flow tracer.\n*\n* Surfaces entry-points + their fanout computed from `calls` edges.\n* If nexus.db contains process / flow-step rows we use them directly;\n* otherwise we compute a synthetic \"flow\" per entry-point by BFS-ing\n* `calls` edges up to `MAX_DEPTH` hops.\n*\n* @task T990\n* @wave 1B\n*/\n/** How deep the synthetic call-graph BFS traces. */\nvar MAX_DEPTH = 3;\n/** How many fanout nodes we emit per flow before truncation. */\nvar MAX_FANOUT = 60;\n/** How many entry points we surface in the side list. */\nvar MAX_FLOWS = 64;\nvar load = () => {\n\tconst db = getNexusDb();\n\tif (!db) return {\n\t\tflows: [],\n\t\tnodes: [],\n\t\tedges: [],\n\t\thasProcesses: false,\n\t\tempty: true\n\t};\n\tconst entryRows = db.prepare(`SELECT DISTINCT n.id, n.label, n.kind, n.file_path\n FROM nexus_relations r\n JOIN nexus_nodes n ON r.source_id = n.id\n WHERE r.type = 'entry_point_of'\n LIMIT ?`).all(MAX_FLOWS);\n\tlet finalEntries = entryRows;\n\tif (entryRows.length === 0) finalEntries = db.prepare(`SELECT n.id, n.label, n.kind, n.file_path, COUNT(*) AS out_deg\n FROM nexus_relations r\n JOIN nexus_nodes n ON n.id = r.source_id\n WHERE r.type = 'calls'\n GROUP BY n.id\n ORDER BY out_deg DESC\n LIMIT ?`).all(MAX_FLOWS).map(({ id, label, kind, file_path }) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tfile_path\n\t}));\n\tconst hasProcesses = entryRows.length > 0;\n\tconst reach = /* @__PURE__ */ new Map();\n\tconst allNodeIds = /* @__PURE__ */ new Set();\n\tfor (const entry of finalEntries) {\n\t\tconst reached = [entry.id];\n\t\tconst seen = new Set([entry.id]);\n\t\tconst queue = [{\n\t\t\tid: entry.id,\n\t\t\tdepth: 0\n\t\t}];\n\t\twhile (queue.length > 0 && reached.length < MAX_FANOUT) {\n\t\t\tconst cur = queue.shift();\n\t\t\tif (!cur) break;\n\t\t\tif (cur.depth >= MAX_DEPTH) continue;\n\t\t\tconst rows = db.prepare(`SELECT target_id\n FROM nexus_relations\n WHERE source_id = ?\n AND type IN ('calls','step_in_process','handles_route','handles_tool','fetches')\n LIMIT 20`).all(cur.id);\n\t\t\tfor (const row of rows) {\n\t\t\t\tif (seen.has(row.target_id)) continue;\n\t\t\t\tseen.add(row.target_id);\n\t\t\t\treached.push(row.target_id);\n\t\t\t\tqueue.push({\n\t\t\t\t\tid: row.target_id,\n\t\t\t\t\tdepth: cur.depth + 1\n\t\t\t\t});\n\t\t\t\tif (reached.length >= MAX_FANOUT) break;\n\t\t\t}\n\t\t}\n\t\treach.set(entry.id, reached);\n\t\tfor (const id of reached) allNodeIds.add(id);\n\t}\n\tconst nodes = [];\n\tif (allNodeIds.size > 0) {\n\t\tconst idList = [...allNodeIds];\n\t\tconst placeholders = idList.map(() => \"?\").join(\",\");\n\t\tconst rows = db.prepare(`SELECT id, label, kind, file_path, community_id\n FROM nexus_nodes\n WHERE id IN (${placeholders})`).all(...idList);\n\t\tfor (const row of rows) nodes.push({\n\t\t\tid: row.id,\n\t\t\tlabel: row.label,\n\t\t\tkind: row.kind,\n\t\t\tfilePath: row.file_path ?? \"\",\n\t\t\tcommunityId: row.community_id\n\t\t});\n\t}\n\tconst edges = [];\n\tif (allNodeIds.size > 0) {\n\t\tconst idList = [...allNodeIds];\n\t\tconst placeholders = idList.map(() => \"?\").join(\",\");\n\t\tconst rows = db.prepare(`SELECT source_id, target_id, type, step\n FROM nexus_relations\n WHERE source_id IN (${placeholders}) AND target_id IN (${placeholders})\n LIMIT 2000`).all(...idList, ...idList);\n\t\tfor (const row of rows) edges.push({\n\t\t\tsource: row.source_id,\n\t\t\ttarget: row.target_id,\n\t\t\ttype: row.type,\n\t\t\tstepIndex: row.step ?? void 0\n\t\t});\n\t}\n\tconst flows = finalEntries.map((entry) => ({\n\t\tid: entry.id,\n\t\tlabel: entry.label,\n\t\tkind: entry.kind,\n\t\tfilePath: entry.file_path ?? \"\",\n\t\treachIds: reach.get(entry.id) ?? [entry.id]\n\t}));\n\treturn {\n\t\tflows,\n\t\tnodes,\n\t\tedges,\n\t\thasProcesses,\n\t\tempty: flows.length === 0\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/code/flows/_page.server.ts.js';\n\nexport const index = 17;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/code/flows/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/code/flows/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/17.DJb8ywg2.js\",\"_app/immutable/chunks/BKR-sjxJ.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/CifRJkIA.js\",\"_app/immutable/chunks/CQCxd1p9.js\",\"_app/immutable/chunks/D8NsLz6i.js\",\"_app/immutable/chunks/o1PZ6Kzq.js\",\"_app/immutable/chunks/RptFUp2P.js\",\"_app/immutable/chunks/CEqOYim7.js\",\"_app/immutable/chunks/CqF5Lomf.js\"];\nexport const stylesheets = [\"_app/immutable/assets/cluster-label-layer.aRgASjnn.css\",\"_app/immutable/assets/no-face-up.BlswZ73M.css\",\"_app/immutable/assets/nexus-adapter.DuSZKvuH.css\",\"_app/immutable/assets/Tabs.CU9_rsWl.css\",\"_app/immutable/assets/ui.CH-9N9-0.css\",\"_app/immutable/assets/17.C-9c74gE.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"17-BDtxQX9n.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/code/flows/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/17.js"],"sourcesContent":["import { a as getNexusDb } from \"../../../../chunks/connections2.js\";\n//#region src/routes/code/flows/+page.server.ts\n/**\n* /code/flows — execution-flow tracer.\n*\n* Surfaces entry-points + their fanout computed from `calls` edges.\n* If nexus.db contains process / flow-step rows we use them directly;\n* otherwise we compute a synthetic \"flow\" per entry-point by BFS-ing\n* `calls` edges up to `MAX_DEPTH` hops.\n*\n* @task T990\n* @wave 1B\n*/\n/** How deep the synthetic call-graph BFS traces. */\nvar MAX_DEPTH = 3;\n/** How many fanout nodes we emit per flow before truncation. */\nvar MAX_FANOUT = 60;\n/** How many entry points we surface in the side list. */\nvar MAX_FLOWS = 64;\nvar load = () => {\n\tconst db = getNexusDb();\n\tif (!db) return {\n\t\tflows: [],\n\t\tnodes: [],\n\t\tedges: [],\n\t\thasProcesses: false,\n\t\tempty: true\n\t};\n\tconst entryRows = db.prepare(`SELECT DISTINCT n.id, n.label, n.kind, n.file_path\n FROM nexus_relations r\n JOIN nexus_nodes n ON r.source_id = n.id\n WHERE r.type = 'entry_point_of'\n LIMIT ?`).all(MAX_FLOWS);\n\tlet finalEntries = entryRows;\n\tif (entryRows.length === 0) finalEntries = db.prepare(`SELECT n.id, n.label, n.kind, n.file_path, COUNT(*) AS out_deg\n FROM nexus_relations r\n JOIN nexus_nodes n ON n.id = r.source_id\n WHERE r.type = 'calls'\n GROUP BY n.id\n ORDER BY out_deg DESC\n LIMIT ?`).all(MAX_FLOWS).map(({ id, label, kind, file_path }) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tfile_path\n\t}));\n\tconst hasProcesses = entryRows.length > 0;\n\tconst reach = /* @__PURE__ */ new Map();\n\tconst allNodeIds = /* @__PURE__ */ new Set();\n\tfor (const entry of finalEntries) {\n\t\tconst reached = [entry.id];\n\t\tconst seen = new Set([entry.id]);\n\t\tconst queue = [{\n\t\t\tid: entry.id,\n\t\t\tdepth: 0\n\t\t}];\n\t\twhile (queue.length > 0 && reached.length < MAX_FANOUT) {\n\t\t\tconst cur = queue.shift();\n\t\t\tif (!cur) break;\n\t\t\tif (cur.depth >= MAX_DEPTH) continue;\n\t\t\tconst rows = db.prepare(`SELECT target_id\n FROM nexus_relations\n WHERE source_id = ?\n AND type IN ('calls','step_in_process','handles_route','handles_tool','fetches')\n LIMIT 20`).all(cur.id);\n\t\t\tfor (const row of rows) {\n\t\t\t\tif (seen.has(row.target_id)) continue;\n\t\t\t\tseen.add(row.target_id);\n\t\t\t\treached.push(row.target_id);\n\t\t\t\tqueue.push({\n\t\t\t\t\tid: row.target_id,\n\t\t\t\t\tdepth: cur.depth + 1\n\t\t\t\t});\n\t\t\t\tif (reached.length >= MAX_FANOUT) break;\n\t\t\t}\n\t\t}\n\t\treach.set(entry.id, reached);\n\t\tfor (const id of reached) allNodeIds.add(id);\n\t}\n\tconst nodes = [];\n\tif (allNodeIds.size > 0) {\n\t\tconst idList = [...allNodeIds];\n\t\tconst placeholders = idList.map(() => \"?\").join(\",\");\n\t\tconst rows = db.prepare(`SELECT id, label, kind, file_path, community_id\n FROM nexus_nodes\n WHERE id IN (${placeholders})`).all(...idList);\n\t\tfor (const row of rows) nodes.push({\n\t\t\tid: row.id,\n\t\t\tlabel: row.label,\n\t\t\tkind: row.kind,\n\t\t\tfilePath: row.file_path ?? \"\",\n\t\t\tcommunityId: row.community_id\n\t\t});\n\t}\n\tconst edges = [];\n\tif (allNodeIds.size > 0) {\n\t\tconst idList = [...allNodeIds];\n\t\tconst placeholders = idList.map(() => \"?\").join(\",\");\n\t\tconst rows = db.prepare(`SELECT source_id, target_id, type, step\n FROM nexus_relations\n WHERE source_id IN (${placeholders}) AND target_id IN (${placeholders})\n LIMIT 2000`).all(...idList, ...idList);\n\t\tfor (const row of rows) edges.push({\n\t\t\tsource: row.source_id,\n\t\t\ttarget: row.target_id,\n\t\t\ttype: row.type,\n\t\t\tstepIndex: row.step ?? void 0\n\t\t});\n\t}\n\tconst flows = finalEntries.map((entry) => ({\n\t\tid: entry.id,\n\t\tlabel: entry.label,\n\t\tkind: entry.kind,\n\t\tfilePath: entry.file_path ?? \"\",\n\t\treachIds: reach.get(entry.id) ?? [entry.id]\n\t}));\n\treturn {\n\t\tflows,\n\t\tnodes,\n\t\tedges,\n\t\thasProcesses,\n\t\tempty: flows.length === 0\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/code/flows/_page.server.ts.js';\n\nexport const index = 17;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/code/flows/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/code/flows/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/17.ChMxgTIY.js\",\"_app/immutable/chunks/DrfFUIvQ.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/9yrFrmKZ.js\",\"_app/immutable/chunks/CQCxd1p9.js\",\"_app/immutable/chunks/D8NsLz6i.js\",\"_app/immutable/chunks/o1PZ6Kzq.js\",\"_app/immutable/chunks/RptFUp2P.js\",\"_app/immutable/chunks/CEqOYim7.js\",\"_app/immutable/chunks/CqF5Lomf.js\"];\nexport const stylesheets = [\"_app/immutable/assets/cluster-label-layer.aRgASjnn.css\",\"_app/immutable/assets/no-face-up.BlswZ73M.css\",\"_app/immutable/assets/nexus-adapter.DuSZKvuH.css\",\"_app/immutable/assets/Tabs.CU9_rsWl.css\",\"_app/immutable/assets/ui.CH-9N9-0.css\",\"_app/immutable/assets/17.C-9c74gE.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}