@cleocode/cleo 2026.9.26 → 2026.10.2

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 (61) hide show
  1. package/bin/cleo.js +17 -1
  2. package/dist/cli/hook-entry.js +372 -0
  3. package/dist/cli/index.js +2487 -369
  4. package/package.json +13 -13
  5. package/studio-dist/client/_app/immutable/chunks/{BhOwHRY9.js → BJp57kf2.js} +1 -1
  6. package/studio-dist/client/_app/immutable/chunks/{CobI0XAU.js → Buaay_Q8.js} +1 -1
  7. package/studio-dist/client/_app/immutable/chunks/C3l-lTkq.js +1 -0
  8. package/studio-dist/client/_app/immutable/chunks/CLP4JZvZ.js +3 -0
  9. package/studio-dist/client/_app/immutable/entry/{app.DaDdqQTe.js → app.CczVILch.js} +2 -2
  10. package/studio-dist/client/_app/immutable/entry/start.D7gHmBNS.js +1 -0
  11. package/studio-dist/client/_app/immutable/nodes/{0.CKHiZeuP.js → 0.Zy2IsLEl.js} +1 -1
  12. package/studio-dist/client/_app/immutable/nodes/{1.CmaYPYrk.js → 1.DJN1QI3l.js} +1 -1
  13. package/studio-dist/client/_app/immutable/nodes/{15.D23qtyoz.js → 15.B4rwqbHV.js} +1 -1
  14. package/studio-dist/client/_app/immutable/nodes/{16.Dtt6exbd.js → 16.jn-5BG_L.js} +1 -1
  15. package/studio-dist/client/_app/immutable/nodes/{17.CPZ22rBo.js → 17.DnWGC4t9.js} +1 -1
  16. package/studio-dist/client/_app/immutable/nodes/{18.Qm_fekS5.js → 18.0zddLZOY.js} +1 -1
  17. package/studio-dist/client/_app/immutable/nodes/{20.DjGgB4KD.js → 20.DEKHq9Tc.js} +1 -1
  18. package/studio-dist/client/_app/immutable/nodes/{24.CgMoobl_.js → 24.CQB9KP-p.js} +1 -1
  19. package/studio-dist/client/_app/immutable/nodes/25.BaqToZD-.js +39 -0
  20. package/studio-dist/client/_app/immutable/nodes/{26.C1oRqB1b.js → 26.BiE1i4iE.js} +1 -1
  21. package/studio-dist/client/_app/immutable/nodes/{3.Cy4T6zbv.js → 3.BObAOu_-.js} +1 -1
  22. package/studio-dist/client/_app/version.json +1 -1
  23. package/studio-dist/server/chunks/{0-G8NhADpo.js → 0-BmUoS2yd.js} +3 -3
  24. package/studio-dist/server/chunks/1-CTjj2MYz.js +9 -0
  25. package/studio-dist/server/chunks/{15-o63WM4MZ.js → 15-Dt4kqUxW.js} +3 -3
  26. package/studio-dist/server/chunks/{16-7h8G4VoG.js → 16-kgTLJvbO.js} +3 -3
  27. package/studio-dist/server/chunks/{17-DcShICKv.js → 17-mRYB5141.js} +3 -3
  28. package/studio-dist/server/chunks/{18-BER3ZYEh.js → 18-BjZ325q5.js} +3 -3
  29. package/studio-dist/server/chunks/{20-DErTM2qU.js → 20-DQ2Vrujq.js} +3 -3
  30. package/studio-dist/server/chunks/{24-BZh7ZC1u.js → 24-DAeuAfXN.js} +3 -3
  31. package/studio-dist/server/chunks/{25-qqsEYb5C.js → 25-DGCNmzAS.js} +4 -4
  32. package/studio-dist/server/chunks/{26-C424QBHc.js → 26-CiN6bbmR.js} +3 -3
  33. package/studio-dist/server/chunks/{3-DDisSHuV.js → 3-BS2FXYjP.js} +3 -3
  34. package/studio-dist/server/chunks/{_layout.svelte-DcfphVWO.js → _layout.svelte-DJ_UWmGp.js} +4 -4
  35. package/studio-dist/server/chunks/{_page.svelte-DuD1vdhl.js → _page.svelte-BUq8_eQH.js} +3 -3
  36. package/studio-dist/server/chunks/{_page.svelte-CPdHIklX.js → _page.svelte-CRnYa4cW.js} +5 -5
  37. package/studio-dist/server/chunks/{_page.svelte-B4hg1b3p.js → _page.svelte-Ca7x-ZvH.js} +4 -4
  38. package/studio-dist/server/chunks/{_page.svelte-DBbdqQsp.js → _page.svelte-CcP_KW3Y.js} +3 -3
  39. package/studio-dist/server/chunks/{_page.svelte-EPu-M4nY.js → _page.svelte-Cfv9tDBA.js} +3 -3
  40. package/studio-dist/server/chunks/{_page.svelte-C8Ybsn2v.js → _page.svelte-D8dLEr7O.js} +3 -3
  41. package/studio-dist/server/chunks/{_page.svelte-DdaHffLO.js → _page.svelte-Dk0znswQ.js} +3 -3
  42. package/studio-dist/server/chunks/{_page.svelte-CWNRWa2L.js → _page.svelte-J4HjPhfO.js} +3 -3
  43. package/studio-dist/server/chunks/{_page.svelte-BjX_VPfv.js → _page.svelte-WR6jUiQE.js} +3 -3
  44. package/studio-dist/server/chunks/{_server.ts-wZKCwtFH.js → _server.ts-2BazvYRP.js} +3 -3
  45. package/studio-dist/server/chunks/{_server.ts-BjIJy4O3.js → _server.ts-Bih2-_5O.js} +2 -2
  46. package/studio-dist/server/chunks/{_server.ts-CmiJfYD5.js → _server.ts-C0evMKCk.js} +3 -3
  47. package/studio-dist/server/chunks/{_server.ts-C4WHkBZ_.js → _server.ts-Cr57EKWf.js} +3 -3
  48. package/studio-dist/server/chunks/{_server.ts-BGuhOntH.js → _server.ts-P4wVVksg.js} +3 -3
  49. package/studio-dist/server/chunks/{client-ARinjJG0.js → client-Cl295FWH.js} +2 -2
  50. package/studio-dist/server/chunks/{dist-CLTFgJWk.js → dist-CdoCt9zT.js} +314 -4
  51. package/studio-dist/server/chunks/{error.svelte-m5N9iUFN.js → error.svelte-ajn1HNOb.js} +3 -3
  52. package/studio-dist/server/chunks/{http-DKP1pqq1.js → http-BiQjEmVU.js} +2 -2
  53. package/studio-dist/server/chunks/{internal-BF6KxfEH.js → internal-D9MtKHIF.js} +2 -2
  54. package/studio-dist/server/chunks/{stores-UvZbmzhQ.js → stores-BlknvZ80.js} +2 -2
  55. package/studio-dist/server/index.js +1 -1
  56. package/studio-dist/server/manifest.js +17 -17
  57. package/studio-dist/client/_app/immutable/chunks/B2oT_qgu.js +0 -3
  58. package/studio-dist/client/_app/immutable/chunks/B7RPHy-R.js +0 -1
  59. package/studio-dist/client/_app/immutable/entry/start.BjuNqpl1.js +0 -1
  60. package/studio-dist/client/_app/immutable/nodes/25.DkFAoI4l.js +0 -39
  61. package/studio-dist/server/chunks/1-CfXNxnLm.js +0 -9
@@ -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/DGftG5oL.js";import{r as A}from"../chunks/B2oT_qgu.js";import"../chunks/B8WnZMYa.js";import{t as j}from"../chunks/CobI0XAU.js";import{a as te}from"../chunks/DZrdToAH.js";import"../chunks/CTLGzgdN.js";import{f as M,i as N,v as P,y as F}from"../chunks/EZwHPWle.js";import"../chunks/B7RPHy-R.js";import{n as I,t as L}from"../chunks/C87Q3uxm.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(()=>F(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 N=h(j,2),I=s(N,!0);T(N);var L=h(N,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=>{P(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=>{M(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=N(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 P=b(()=>o(l)&&c.connected),F=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(F)===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=>{M(e,{get task(){return o(C)},onClose:D})};i(Z,e=>{o(C)&&e(re)}),a(()=>{r(U,o(F)),G=E(W,1,`live svelte-62ic89`,null,G,{connected:o(P)}),r(K,` ${o(P)?`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/DGftG5oL.js";import{r as A}from"../chunks/CLP4JZvZ.js";import"../chunks/B8WnZMYa.js";import{t as j}from"../chunks/Buaay_Q8.js";import{a as te}from"../chunks/DZrdToAH.js";import"../chunks/CTLGzgdN.js";import{f as M,i as N,v as P,y as F}from"../chunks/EZwHPWle.js";import"../chunks/C3l-lTkq.js";import{n as I,t as L}from"../chunks/C87Q3uxm.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(()=>F(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 N=h(j,2),I=s(N,!0);T(N);var L=h(N,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=>{P(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=>{M(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=N(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 P=b(()=>o(l)&&c.connected),F=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(F)===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=>{M(e,{get task(){return o(C)},onClose:D})};i(Z,e=>{o(C)&&e(re)}),a(()=>{r(U,o(F)),G=E(W,1,`live svelte-62ic89`,null,G,{connected:o(P)}),r(K,` ${o(P)?`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};