@kynetic-ai/spec 0.10.0 → 0.11.0

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 (145) hide show
  1. package/dist/agent-runtime/dispatch.d.ts +31 -0
  2. package/dist/agent-runtime/dispatch.d.ts.map +1 -1
  3. package/dist/agent-runtime/dispatch.js +102 -33
  4. package/dist/agent-runtime/dispatch.js.map +1 -1
  5. package/dist/agent-runtime/invocation.js +1 -1
  6. package/dist/agent-runtime/invocation.js.map +1 -1
  7. package/dist/cli/commands/meta.d.ts.map +1 -1
  8. package/dist/cli/commands/meta.js +10 -1
  9. package/dist/cli/commands/meta.js.map +1 -1
  10. package/dist/daemon/routes/agent-dispatch.ts +9 -2
  11. package/dist/daemon/routes/items.ts +22 -0
  12. package/dist/daemon/routes/meta.ts +141 -1
  13. package/dist/daemon/routes/plans.ts +147 -0
  14. package/dist/daemon/routes/sessions.ts +180 -0
  15. package/dist/daemon/routes/tasks.ts +198 -0
  16. package/dist/daemon/routes/validation.ts +1 -1
  17. package/dist/daemon/server.ts +22 -1
  18. package/dist/parser/alignment.d.ts.map +1 -1
  19. package/dist/parser/alignment.js +4 -2
  20. package/dist/parser/alignment.js.map +1 -1
  21. package/dist/schema/meta.d.ts +15 -0
  22. package/dist/schema/meta.d.ts.map +1 -1
  23. package/dist/schema/meta.js +1 -0
  24. package/dist/schema/meta.js.map +1 -1
  25. package/dist/sessions/store.d.ts +14 -0
  26. package/dist/sessions/store.d.ts.map +1 -1
  27. package/dist/sessions/store.js +26 -0
  28. package/dist/sessions/store.js.map +1 -1
  29. package/dist/web-ui/_app/immutable/assets/0.BJaYkGW2.css +1 -0
  30. package/dist/web-ui/_app/immutable/assets/9.SzGLxi4x.css +1 -0
  31. package/dist/web-ui/_app/immutable/chunks/-lc0BifF.js +1 -0
  32. package/dist/web-ui/_app/immutable/chunks/62JVKtnb.js +1 -0
  33. package/dist/web-ui/_app/immutable/chunks/8RBjHMN1.js +1 -0
  34. package/dist/web-ui/_app/immutable/chunks/B5LJFxqa.js +1 -0
  35. package/dist/web-ui/_app/immutable/chunks/B5wTVqxm.js +1 -0
  36. package/dist/web-ui/_app/immutable/chunks/B6VSmczZ.js +1 -0
  37. package/dist/web-ui/_app/immutable/chunks/B8a0xDxR.js +1 -0
  38. package/dist/web-ui/_app/immutable/chunks/BEOQc37C.js +1 -0
  39. package/dist/web-ui/_app/immutable/chunks/BHtYorjv.js +1 -0
  40. package/dist/web-ui/_app/immutable/chunks/BJ0JX3ea.js +1 -0
  41. package/dist/web-ui/_app/immutable/chunks/BMuCqDX8.js +1 -0
  42. package/dist/web-ui/_app/immutable/chunks/{i-XnOIX0.js → BP352uRn.js} +1 -1
  43. package/dist/web-ui/_app/immutable/chunks/BUZujXJ2.js +1 -0
  44. package/dist/web-ui/_app/immutable/chunks/BVA9Exy-.js +1 -0
  45. package/dist/web-ui/_app/immutable/chunks/BWET-efb.js +1 -0
  46. package/dist/web-ui/_app/immutable/chunks/BXkNecpt.js +1 -0
  47. package/dist/web-ui/_app/immutable/chunks/BYzrIfX8.js +1 -0
  48. package/dist/web-ui/_app/immutable/chunks/BkOJ8DkV.js +1 -0
  49. package/dist/web-ui/_app/immutable/chunks/BpuwufMc.js +1 -0
  50. package/dist/web-ui/_app/immutable/chunks/BwMO4RrG.js +1 -0
  51. package/dist/web-ui/_app/immutable/chunks/BysXJlZb.js +1 -0
  52. package/dist/web-ui/_app/immutable/chunks/C076q4JN.js +1 -0
  53. package/dist/web-ui/_app/immutable/chunks/C33JaVbg.js +1 -0
  54. package/dist/web-ui/_app/immutable/chunks/CGtqifKp.js +1 -0
  55. package/dist/web-ui/_app/immutable/chunks/CHDZZ7OG.js +1 -0
  56. package/dist/web-ui/_app/immutable/chunks/CPPfDSei.js +5 -0
  57. package/dist/web-ui/_app/immutable/chunks/CUir3f4J.js +60 -0
  58. package/dist/web-ui/_app/immutable/chunks/Cncwi6fQ.js +1 -0
  59. package/dist/web-ui/_app/immutable/chunks/CrCIbn0C.js +1 -0
  60. package/dist/web-ui/_app/immutable/chunks/CwELQvbx.js +1 -0
  61. package/dist/web-ui/_app/immutable/chunks/D3vxvonu.js +1 -0
  62. package/dist/web-ui/_app/immutable/chunks/D6TVmR9T.js +1 -0
  63. package/dist/web-ui/_app/immutable/chunks/D7LTux4W.js +1 -0
  64. package/dist/web-ui/_app/immutable/chunks/{D28BF5MJ.js → D82RulSH.js} +1 -1
  65. package/dist/web-ui/_app/immutable/chunks/D9QNBZM2.js +2 -0
  66. package/dist/web-ui/_app/immutable/chunks/DAMmvwn4.js +1 -0
  67. package/dist/web-ui/_app/immutable/chunks/DAh4Wfku.js +1 -0
  68. package/dist/web-ui/_app/immutable/chunks/DAx07bEQ.js +1 -0
  69. package/dist/web-ui/_app/immutable/chunks/DBYE9jOd.js +1 -0
  70. package/dist/web-ui/_app/immutable/chunks/DOno4cA2.js +1 -0
  71. package/dist/web-ui/_app/immutable/chunks/DQA8NZIH.js +2 -0
  72. package/dist/web-ui/_app/immutable/chunks/DRfPm2bo.js +1 -0
  73. package/dist/web-ui/_app/immutable/chunks/DhQhksaB.js +1 -0
  74. package/dist/web-ui/_app/immutable/chunks/DjG7s6hm.js +1 -0
  75. package/dist/web-ui/_app/immutable/chunks/DjcCz-PU.js +2 -0
  76. package/dist/web-ui/_app/immutable/chunks/DkltRNvh.js +1 -0
  77. package/dist/web-ui/_app/immutable/chunks/DlaTnPKL.js +1 -0
  78. package/dist/web-ui/_app/immutable/chunks/DvA-KON-.js +1 -0
  79. package/dist/web-ui/_app/immutable/chunks/{D1ArdqNb.js → DxCk-KHc.js} +1 -1
  80. package/dist/web-ui/_app/immutable/chunks/DzO4hlg9.js +1 -0
  81. package/dist/web-ui/_app/immutable/chunks/{BCkp8Hs8.js → Eo4gF7ih.js} +1 -1
  82. package/dist/web-ui/_app/immutable/chunks/ExCq5swK.js +1 -0
  83. package/dist/web-ui/_app/immutable/chunks/T3zZGv51.js +1 -0
  84. package/dist/web-ui/_app/immutable/chunks/XZumBYeP.js +1 -0
  85. package/dist/web-ui/_app/immutable/chunks/_ySfNjkF.js +1 -0
  86. package/dist/web-ui/_app/immutable/chunks/iEtR5cV6.js +1 -0
  87. package/dist/web-ui/_app/immutable/chunks/k_Qegko0.js +1 -0
  88. package/dist/web-ui/_app/immutable/chunks/pE6cYWlS.js +1 -0
  89. package/dist/web-ui/_app/immutable/entry/app.Cgu6uKeS.js +2 -0
  90. package/dist/web-ui/_app/immutable/entry/start.9XifnLoB.js +1 -0
  91. package/dist/web-ui/_app/immutable/nodes/0.DISwcKSK.js +1 -0
  92. package/dist/web-ui/_app/immutable/nodes/1.Cx2Ufqp1.js +1 -0
  93. package/dist/web-ui/_app/immutable/nodes/10.C3z8ijXL.js +1 -0
  94. package/dist/web-ui/_app/immutable/nodes/11.DZdIjZmM.js +1 -0
  95. package/dist/web-ui/_app/immutable/nodes/12.FsIGfAOa.js +1 -0
  96. package/dist/web-ui/_app/immutable/nodes/13.DZoFwagf.js +1 -0
  97. package/dist/web-ui/_app/immutable/nodes/14.DaIzDKbQ.js +1 -0
  98. package/dist/web-ui/_app/immutable/nodes/15.BYyt4XWF.js +2 -0
  99. package/dist/web-ui/_app/immutable/nodes/16.CQkSqpOe.js +1 -0
  100. package/dist/web-ui/_app/immutable/nodes/2.Bkf_j2UJ.js +1 -0
  101. package/dist/web-ui/_app/immutable/nodes/3.kaMCurJG.js +1 -0
  102. package/dist/web-ui/_app/immutable/nodes/4.BSsFPTHG.js +2 -0
  103. package/dist/web-ui/_app/immutable/nodes/5.CpPlcCEZ.js +1 -0
  104. package/dist/web-ui/_app/immutable/nodes/6.BN4FqQmY.js +1 -0
  105. package/dist/web-ui/_app/immutable/nodes/7.9kBYIZik.js +1 -0
  106. package/dist/web-ui/_app/immutable/nodes/8.BuijtZ6B.js +1 -0
  107. package/dist/web-ui/_app/immutable/nodes/9.C-Weba8R.js +1 -0
  108. package/dist/web-ui/_app/version.json +1 -1
  109. package/dist/web-ui/index.html +14 -11
  110. package/package.json +3 -2
  111. package/plugin/.claude-plugin/marketplace.json +1 -1
  112. package/plugin/.claude-plugin/plugin.json +1 -1
  113. package/dist/web-ui/_app/immutable/assets/0.BxCxvrZR.css +0 -1
  114. package/dist/web-ui/_app/immutable/chunks/B-CZR0q8.js +0 -1
  115. package/dist/web-ui/_app/immutable/chunks/B1IR5Su5.js +0 -1
  116. package/dist/web-ui/_app/immutable/chunks/B_Cvvtc4.js +0 -1
  117. package/dist/web-ui/_app/immutable/chunks/BtFaGGII.js +0 -1
  118. package/dist/web-ui/_app/immutable/chunks/Bu8JVsCH.js +0 -1
  119. package/dist/web-ui/_app/immutable/chunks/C87u-CNA.js +0 -1
  120. package/dist/web-ui/_app/immutable/chunks/CrFkBTYp.js +0 -1
  121. package/dist/web-ui/_app/immutable/chunks/D6RtLpzL.js +0 -1
  122. package/dist/web-ui/_app/immutable/chunks/D7FHSgx2.js +0 -1
  123. package/dist/web-ui/_app/immutable/chunks/DBXrsxZQ.js +0 -2
  124. package/dist/web-ui/_app/immutable/chunks/Da_hHMuA.js +0 -1
  125. package/dist/web-ui/_app/immutable/chunks/Do6LchSF.js +0 -1
  126. package/dist/web-ui/_app/immutable/chunks/DoNPtcAw.js +0 -1
  127. package/dist/web-ui/_app/immutable/chunks/DtUbXRZz.js +0 -1
  128. package/dist/web-ui/_app/immutable/chunks/DyFPRlLl.js +0 -1
  129. package/dist/web-ui/_app/immutable/chunks/DzAP8lRM.js +0 -1
  130. package/dist/web-ui/_app/immutable/chunks/DzVXElzN.js +0 -2
  131. package/dist/web-ui/_app/immutable/chunks/aoPBFken.js +0 -1
  132. package/dist/web-ui/_app/immutable/chunks/laxtrUO3.js +0 -1
  133. package/dist/web-ui/_app/immutable/chunks/q1nIWgqB.js +0 -1
  134. package/dist/web-ui/_app/immutable/chunks/sTLbk5Nm.js +0 -1
  135. package/dist/web-ui/_app/immutable/chunks/vwKgQu5P.js +0 -5
  136. package/dist/web-ui/_app/immutable/entry/app.BCwMcqnT.js +0 -2
  137. package/dist/web-ui/_app/immutable/entry/start.wKCQH-tt.js +0 -1
  138. package/dist/web-ui/_app/immutable/nodes/0.CjGVMG74.js +0 -1
  139. package/dist/web-ui/_app/immutable/nodes/1.B6_AIPan.js +0 -1
  140. package/dist/web-ui/_app/immutable/nodes/2.q4oCS7Ws.js +0 -1
  141. package/dist/web-ui/_app/immutable/nodes/3.rTKZf9o2.js +0 -1
  142. package/dist/web-ui/_app/immutable/nodes/4.DVIDRu1d.js +0 -1
  143. package/dist/web-ui/_app/immutable/nodes/5.8PtPXIOd.js +0 -1
  144. package/dist/web-ui/_app/immutable/nodes/6.ZZrTemy_.js +0 -1
  145. package/dist/web-ui/_app/immutable/nodes/7.IP-gxCxi.js +0 -1
@@ -0,0 +1 @@
1
+ import{f as _,a,t as p,c as Te}from"../chunks/DvA-KON-.js";import{c as Ze,o as et,a as tt}from"../chunks/CwELQvbx.js";import{p as de,a as ie,s as l,c as $,f as M,n as m,t as I,g as e,h as le,r as g,i as ge,D as Ne,q as N,a9 as Se,b as Z,d as ze,u as Ce,e as y}from"../chunks/D3vxvonu.js";import{s as U,d as at}from"../chunks/D9QNBZM2.js";import{i as oe,p as ne,r as _e,b as pe}from"../chunks/BysXJlZb.js";import{l as me,m as he,k as be,e as De,B as Pe,h as Ue,p as st,q as Ae,g as rt,i as lt,o as ot,T as Le}from"../chunks/DQA8NZIH.js";import{s as Ge,a as He}from"../chunks/pE6cYWlS.js";import{p as Je}from"../chunks/D82RulSH.js";import{b as ke}from"../chunks/D7LTux4W.js";import{g as je}from"../chunks/B8a0xDxR.js";import{I as Oe}from"../chunks/Eo4gF7ih.js";import{B as Ee}from"../chunks/BkOJ8DkV.js";import{S as Me,a as Ve,b as qe,c as O}from"../chunks/DzO4hlg9.js";import"../chunks/BUZujXJ2.js";import{i as nt}from"../chunks/BVA9Exy-.js";import{R as dt}from"../chunks/Cncwi6fQ.js";import{T as it,L as ut,b as ct}from"../chunks/DOno4cA2.js";import{s as vt,o as ft,a as $t,u as gt}from"../chunks/BP352uRn.js";import{S as _t,a as pt,b as mt,c as ht,d as bt}from"../chunks/C33JaVbg.js";const xt=!1,xa=Object.freeze(Object.defineProperty({__proto__:null,ssr:xt},Symbol.toStringTag,{value:"Module"}));var Pt=_("<!> <!> <!> <!> <!> <!> <!> <!>",1),kt=_("<!> <!>",1),wt=_("<!> <!> <!> <!>",1),yt=_("<!> <!>",1),Tt=_('<div class="flex items-end"><!></div>'),St=_('<div class="flex flex-wrap gap-4 p-4 bg-muted/50 rounded-lg" data-testid="filter-controls"><div class="flex-1 min-w-[140px]"><label for="status-filter" class="text-sm font-medium mb-2 block">Status</label> <!></div> <div class="flex-1 min-w-[140px]"><label for="automation-filter" class="text-sm font-medium mb-2 block">Automation</label> <!></div> <div class="flex-1 min-w-[140px]"><label for="tag-filter" class="text-sm font-medium mb-2 block">Tag</label> <!></div> <div class="flex-1 min-w-[140px]"><label for="assignee-filter" class="text-sm font-medium mb-2 block">Assignee</label> <!></div> <!></div>');function Ct(L,r){de(r,!0);const d=()=>He(Je,"$page",T),[T,n]=Ge(),P={"":"All Statuses",all:"All Statuses",pending:"Pending",in_progress:"In Progress",pending_review:"Pending Review",needs_work:"Needs Work",blocked:"Blocked",completed:"Completed",cancelled:"Cancelled"},v={"":"All",all:"All",eligible:"Eligible",needs_review:"Needs Review",manual_only:"Manual Only"};let z=le(()=>d().url.searchParams.get("status")||""),ee=le(()=>d().url.searchParams.get("tag")||""),j=le(()=>d().url.searchParams.get("assignee")||""),V=le(()=>d().url.searchParams.get("automation")||""),S=le(()=>e(z)||e(ee)||e(j)||e(V));function b(s,c){let i;Array.isArray(c)?i=c.length>0?c[c.length-1]:void 0:i=c;const f=new URLSearchParams(d().url.searchParams);!i||i==="all"?f.delete(s):f.set(s,i),f.delete("offset");const G=`${ke}/tasks?${f.toString()}`;je(G,{replaceState:!1,keepFocus:!0})}function H(){je(`${ke}/tasks`,{replaceState:!1})}let J=le(()=>e(z)||"all"),te=le(()=>e(V)||"all");var ae=St(),q=$(ae),xe=l($(q),2);Me(xe,{get value(){return e(J)},onValueChange:s=>b("status",s),children:(s,c)=>{var i=kt(),f=M(i);Ve(f,{id:"status-filter","data-testid":"filter-status",children:(F,re)=>{m();var E=p();I(()=>U(E,P[e(J)]||"All Statuses")),a(F,E)},$$slots:{default:!0}});var G=l(f,2);qe(G,{children:(F,re)=>{var E=Pt(),Y=M(E);O(Y,{value:"all",children:(u,B)=>{m();var x=p("All Statuses");a(u,x)},$$slots:{default:!0}});var w=l(Y,2);O(w,{value:"pending",children:(u,B)=>{m();var x=p("Pending");a(u,x)},$$slots:{default:!0}});var R=l(w,2);O(R,{value:"in_progress",children:(u,B)=>{m();var x=p("In Progress");a(u,x)},$$slots:{default:!0}});var k=l(R,2);O(k,{value:"pending_review",children:(u,B)=>{m();var x=p("Pending Review");a(u,x)},$$slots:{default:!0}});var h=l(k,2);O(h,{value:"needs_work",children:(u,B)=>{m();var x=p("Needs Work");a(u,x)},$$slots:{default:!0}});var C=l(h,2);O(C,{value:"blocked",children:(u,B)=>{m();var x=p("Blocked");a(u,x)},$$slots:{default:!0}});var t=l(C,2);O(t,{value:"completed",children:(u,B)=>{m();var x=p("Completed");a(u,x)},$$slots:{default:!0}});var o=l(t,2);O(o,{value:"cancelled",children:(u,B)=>{m();var x=p("Cancelled");a(u,x)},$$slots:{default:!0}}),a(F,E)},$$slots:{default:!0}}),a(s,i)},$$slots:{default:!0}}),g(q);var K=l(q,2),ue=l($(K),2);Me(ue,{get value(){return e(te)},onValueChange:s=>b("automation",s),children:(s,c)=>{var i=yt(),f=M(i);Ve(f,{id:"automation-filter","data-testid":"filter-automation",children:(F,re)=>{m();var E=p();I(()=>U(E,v[e(te)]||"All")),a(F,E)},$$slots:{default:!0}});var G=l(f,2);qe(G,{children:(F,re)=>{var E=wt(),Y=M(E);O(Y,{value:"all",children:(h,C)=>{m();var t=p("All");a(h,t)},$$slots:{default:!0}});var w=l(Y,2);O(w,{value:"eligible",children:(h,C)=>{m();var t=p("Eligible");a(h,t)},$$slots:{default:!0}});var R=l(w,2);O(R,{value:"needs_review",children:(h,C)=>{m();var t=p("Needs Review");a(h,t)},$$slots:{default:!0}});var k=l(R,2);O(k,{value:"manual_only",children:(h,C)=>{m();var t=p("Manual Only");a(h,t)},$$slots:{default:!0}}),a(F,E)},$$slots:{default:!0}}),a(s,i)},$$slots:{default:!0}}),g(K);var Q=l(K,2),se=l($(Q),2);Oe(se,{id:"tag-filter","data-testid":"filter-tag",type:"text",placeholder:"Filter by tag...",get value(){return e(ee)},oninput:s=>b("tag",s.target.value)}),g(Q);var A=l(Q,2),D=l($(A),2);Oe(D,{id:"assignee-filter","data-testid":"filter-assignee",type:"text",placeholder:"Filter by assignee...",get value(){return e(j)},oninput:s=>b("assignee",s.target.value)}),g(A);var W=l(A,2);{var X=s=>{var c=Tt(),i=$(c);Ee(i,{variant:"outline",onclick:H,children:(f,G)=>{m();var F=p("Clear Filters");a(f,F)},$$slots:{default:!0}}),g(c),a(s,c)};oe(W,s=>{e(S)&&s(X)})}g(ae),a(L,ae),ie(),n()}var Lt=_('<div data-slot="table-container" class="relative w-full overflow-x-auto"><table><!></table></div>');function At(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=Lt(),P=$(n);me(P,z=>({"data-slot":"table",class:z,...T}),[()=>he("w-full caption-bottom text-sm",r.class)]);var v=$(P);be(v,()=>r.children??ge),g(P),pe(P,z=>d(z),()=>d()),g(n),a(L,n),ie()}var Et=_("<tbody><!></tbody>");function Ft(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=Et();me(n,v=>({"data-slot":"table-body",class:v,...T}),[()=>he("[&_tr:last-child]:border-0",r.class)]);var P=$(n);be(P,()=>r.children??ge),g(n),pe(n,v=>d(v),()=>d()),a(L,n),ie()}var It=_("<td><!></td>");function ce(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=It();me(n,v=>({"data-slot":"table-cell",class:v,...T}),[()=>he("bg-clip-padding p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pe-0",r.class)]);var P=$(n);be(P,()=>r.children??ge),g(n),pe(n,v=>d(v),()=>d()),a(L,n),ie()}var Rt=_("<th><!></th>");function $e(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=Rt();me(n,v=>({"data-slot":"table-head",class:v,...T}),[()=>he("text-foreground h-10 bg-clip-padding px-2 text-start align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pe-0",r.class)]);var P=$(n);be(P,()=>r.children??ge),g(n),pe(n,v=>d(v),()=>d()),a(L,n),ie()}var Bt=_("<thead><!></thead>");function Nt(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=Bt();me(n,v=>({"data-slot":"table-header",class:v,...T}),[()=>he("[&_tr]:border-b",r.class)]);var P=$(n);be(P,()=>r.children??ge),g(n),pe(n,v=>d(v),()=>d()),a(L,n),ie()}var zt=_("<tr><!></tr>");function We(L,r){de(r,!0);let d=ne(r,"ref",15,null),T=_e(r,["$$slots","$$events","$$legacy","ref","class","children"]);var n=zt();me(n,v=>({"data-slot":"table-row",class:v,...T}),[()=>he("hover:[&,&>svelte-css-wrapper]:[&>th,td]:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",r.class)]);var P=$(n);be(P,()=>r.children??ge),g(n),pe(n,v=>d(v),()=>d()),a(L,n),ie()}var Dt=_("<!> <!> <!> <!> <!> <!>",1),Ut=_('<span data-testid="task-title" class="truncate"> </span>'),jt=_('<span data-testid="task-priority"> </span>'),Ot=_('<span class="text-muted-foreground text-sm">—</span>'),Mt=_('<div class="flex flex-wrap gap-1"><!> <!></div>'),Vt=_('<tr data-testid="task-list-item" role="button" tabindex="0"><!><!><!><!><!><!></tr>'),qt=_("<!> <!>",1),Wt=_('<div class="rounded-md border overflow-hidden" data-testid="task-list"><!></div>');function Gt(L,r){de(r,!1);let d=ne(r,"tasks",8),T=ne(r,"updatedTaskIds",24,()=>new Set),n=ne(r,"onSelectTask",8,void 0);const P=Ze();function v(b){console.log("[TaskList] selectTask called for:",b._ulid,b.title),n()&&(console.log("[TaskList] Calling onSelectTask callback"),n()(b._ulid)),P("select",b._ulid)}function z(b){return{pending:"bg-status-pending text-status-pending-fg",in_progress:"bg-status-in-progress text-status-in-progress-fg",pending_review:"bg-status-pending-review text-status-pending-review-fg",needs_work:"bg-status-needs-work text-status-needs-work-fg",blocked:"bg-status-blocked text-status-blocked-fg",completed:"bg-status-completed text-status-completed-fg",cancelled:"bg-status-cancelled text-status-cancelled-fg"}[b]||"bg-status-cancelled text-status-cancelled-fg"}function ee(b){return{pending:"Pending",in_progress:"In Progress",pending_review:"Pending Review",needs_work:"Needs Work",blocked:"Blocked",completed:"Completed",cancelled:"Cancelled"}[b]||b}function j(b){return b===1?"text-red-600 font-bold":b===2?"text-orange-600 font-semibold":b===3?"text-yellow-600":"text-gray-600"}nt();var V=Wt(),S=$(V);At(S,{class:"table-fixed",children:(b,H)=>{var J=qt(),te=M(J);Nt(te,{children:(q,xe)=>{We(q,{children:(K,ue)=>{var Q=Dt(),se=M(Q);$e(se,{class:"w-[40%]",children:(c,i)=>{m();var f=p("Title");a(c,f)},$$slots:{default:!0}});var A=l(se,2);$e(A,{class:"w-[12%]",children:(c,i)=>{m();var f=p("Status");a(c,f)},$$slots:{default:!0}});var D=l(A,2);$e(D,{class:"w-[8%]",children:(c,i)=>{m();var f=p("Priority");a(c,f)},$$slots:{default:!0}});var W=l(D,2);$e(W,{class:"w-[15%]",children:(c,i)=>{m();var f=p("Spec");a(c,f)},$$slots:{default:!0}});var X=l(W,2);$e(X,{class:"w-[7%]",children:(c,i)=>{m();var f=p("Notes");a(c,f)},$$slots:{default:!0}});var s=l(X,2);$e(s,{class:"w-[18%]",children:(c,i)=>{m();var f=p("Tags");a(c,f)},$$slots:{default:!0}}),a(K,Q)},$$slots:{default:!0}})},$$slots:{default:!0}});var ae=l(te,2);Ft(ae,{children:(q,xe)=>{var K=Te(),ue=M(K);{var Q=A=>{We(A,{children:(D,W)=>{ce(D,{colspan:6,class:"text-center text-muted-foreground",children:(X,s)=>{m();var c=p("No tasks found");a(X,c)},$$slots:{default:!0}})},$$slots:{default:!0}})},se=A=>{var D=Te(),W=M(D);De(W,1,d,Ue,(X,s)=>{const c=Se(()=>(Ne(T()),e(s),N(()=>T().has(e(s)._ulid))));var i=Vt();i.__click=()=>v(e(s)),i.__keydown=w=>w.key==="Enter"&&v(e(s));var f=$(i);ce(f,{class:"font-medium truncate",children:(w,R)=>{var k=Ut(),h=$(k,!0);g(k),I(()=>U(h,(e(s),N(()=>e(s).title)))),a(w,k)},$$slots:{default:!0}});var G=l(f);ce(G,{children:(w,R)=>{{let k=Se(()=>(e(s),N(()=>z(e(s).status))));Pe(w,{"data-testid":"task-status-badge",get class(){return e(k)},children:(h,C)=>{m();var t=p();I(o=>U(t,o),[()=>(e(s),N(()=>ee(e(s).status)))]),a(h,t)},$$slots:{default:!0}})}},$$slots:{default:!0}});var F=l(G);{let w=Se(()=>(e(s),N(()=>j(e(s).priority))));ce(F,{get class(){return e(w)},children:(R,k)=>{var h=jt(),C=$(h);g(h),I(()=>U(C,`P${e(s),N(()=>e(s).priority)??""}`)),a(R,h)},$$slots:{default:!0}})}var re=l(F);ce(re,{"data-testid":"task-spec-ref",class:"truncate",children:(w,R)=>{var k=Te(),h=M(k);{var C=o=>{dt(o,{get ref(){return e(s),N(()=>e(s).spec_ref)},type:"spec",stopPropagation:!0,class:"text-sm truncate"})},t=o=>{var u=Ot();a(o,u)};oe(h,o=>{e(s),N(()=>e(s).spec_ref)?o(C):o(t,!1)})}a(w,k)},$$slots:{default:!0}});var E=l(re);ce(E,{children:(w,R)=>{Pe(w,{"data-testid":"task-notes-count",variant:"secondary",children:(k,h)=>{m();var C=p();I(()=>U(C,(e(s),N(()=>e(s).notes_count)))),a(k,C)},$$slots:{default:!0}})},$$slots:{default:!0}});var Y=l(E);ce(Y,{"data-testid":"task-tags",children:(w,R)=>{var k=Mt(),h=$(k);De(h,1,()=>(e(s),N(()=>e(s).tags.slice(0,3))),Ue,(o,u)=>{Pe(o,{variant:"outline",class:"text-xs",children:(B,x)=>{m();var ve=p();I(()=>U(ve,e(u))),a(B,ve)},$$slots:{default:!0}})});var C=l(h,2);{var t=o=>{Pe(o,{variant:"outline",class:"text-xs",children:(u,B)=>{m();var x=p();I(()=>U(x,`+${e(s),N(()=>e(s).tags.length-3)??""}`)),a(u,x)},$$slots:{default:!0}})};oe(C,o=>{e(s),N(()=>e(s).tags.length>3)&&o(t)})}g(k),a(w,k)},$$slots:{default:!0}}),g(i),I(()=>{st(i,1,`cursor-pointer hover:bg-muted/50 transition-colors duration-300 border-b ${e(c)?"bg-primary/10 animate-pulse":""}`),Ae(i,"data-task-ref",(e(s),N(()=>e(s).slugs?.[0]||e(s)._ulid)))}),a(X,i)}),a(A,D)};oe(ue,A=>{Ne(d()),N(()=>d().length===0)?A(Q):A(se,!1)})}a(q,K)},$$slots:{default:!0}}),a(b,J)},$$slots:{default:!0}}),g(V),a(L,V),ie()}at(["click","keydown"]);var Ht=_('<p class="text-muted-foreground"> </p>'),Jt=_('<div class="flex items-center gap-2 text-sm text-muted-foreground bg-muted/50 rounded-md px-3 py-2" data-testid="plan-filter-banner">Filtered by plan: <code class="bg-muted px-1 py-0.5 rounded text-xs"> </code> <a class="ml-auto text-primary hover:underline text-xs">Clear filter</a></div>'),Kt=_('<div class="bg-destructive/10 text-destructive p-4 rounded-lg" data-testid="error-message" role="alert"> </div>'),Qt=_('<div class="flex justify-center items-center py-12"><p class="text-muted-foreground">Loading tasks...</p></div>'),Xt=_('<span class="font-mono text-xs"> </span>'),Yt=_("<!> <!>",1),Zt=_("<!> <!>",1),ea=_('<div class="flex flex-col gap-6 p-6 min-w-0"><div class="flex items-center justify-between"><div><h1 class="text-3xl font-bold mb-2">Tasks</h1> <!></div> <div class="flex items-center gap-1 border rounded-lg p-0.5"><a title="Board view"><!></a> <!></div></div> <!> <!> <!> <!></div> <!>',1);function Pa(L,r){de(r,!0);const d=()=>He(Je,"$page",T),[T,n]=Ge();let P=Z(ze([])),v=Z(0),z=Z(!0),ee=Z(""),j=Z(ze(new Set)),V=Z(!1),S=Z(null),b=Z(!1),H=Z(""),J=le(()=>({status:d().url.searchParams.get("status")||void 0,tag:d().url.searchParams.get("tag")||void 0,assignee:d().url.searchParams.get("assignee")||void 0,automation:d().url.searchParams.get("automation")||void 0,plan:d().url.searchParams.get("plan")||void 0,limit:50,offset:0})),te=Z("");Ce(()=>{const{status:t,tag:o,assignee:u,automation:B,plan:x,limit:ve,offset:Fe}=e(J);rt(),lt()&&ae()}),Ce(()=>{const t=d().url.searchParams.get("ref");t&&t!==e(te)&&(y(te,t,!0),q(t))});async function ae(){y(z,!0),y(ee,"");try{const t=await ot(e(J));y(P,t.items,!0),y(v,t.total,!0)}catch(t){y(ee,t instanceof Error?t.message:"Failed to load tasks",!0),console.error("Error loading tasks:",t)}finally{y(z,!1)}}async function q(t){y(b,!0),y(H,""),y(V,!0);try{y(S,await Le(t),!0)}catch(o){y(H,o instanceof Error?o.message:"Failed to load task details",!0),console.error("Error loading task:",o)}finally{y(b,!1)}}function xe(t){q(t.detail)}async function K(){if(e(S))try{y(S,await Le(e(S)._ulid),!0)}catch(t){console.error("Error reloading task:",t)}ae()}Ce(()=>{e(V)||(y(S,null),y(H,""),y(te,""))});function ue(t){t.data?.ulid&&(e(j).add(t.data.ulid),y(j,new Set(e(j)),!0),setTimeout(()=>{e(j).delete(t.data.ulid),y(j,new Set(e(j)),!0)},3e3)),ae(),e(S)&&t.data?.ulid===e(S)._ulid&&Le(e(S)._ulid).then(o=>{y(S,o,!0)}).catch(o=>{console.error("Error reloading task:",o)})}et(()=>{vt(["tasks"]),ft("tasks",ue)}),tt(()=>{$t("tasks",ue),gt(["tasks"])});let Q=le(()=>e(S)?.slugs?.[0]??e(S)?._ulid?.slice(0,8)??"");var se=ea(),A=M(se),D=$(A),W=$(D),X=l($(W),2);{var s=t=>{var o=Ht(),u=$(o);g(o),I(()=>U(u,`Showing ${e(P).length??""} of ${e(v)??""} tasks`)),a(t,o)};oe(X,t=>{e(z)||t(s)})}g(W);var c=l(W,2),i=$(c),f=$(i);Ee(f,{variant:"ghost",size:"icon-sm","aria-pressed":"false",children:(t,o)=>{ut(t,{class:"size-4"})},$$slots:{default:!0}}),g(i);var G=l(i,2);Ee(G,{variant:"ghost",size:"icon-sm",class:"bg-accent",title:"List view","aria-pressed":"true",children:(t,o)=>{ct(t,{class:"size-4"})},$$slots:{default:!0}}),g(c),g(D);var F=l(D,2);Ct(F,{});var re=l(F,2);{var E=t=>{var o=Jt(),u=l($(o)),B=$(u);g(u);var x=l(u,2);g(o),I(()=>{U(B,`@${e(J).plan??""}`),Ae(x,"href",`${ke??""}/tasks`)}),a(t,o)};oe(re,t=>{e(J).plan&&t(E)})}var Y=l(re,2);{var w=t=>{var o=Kt(),u=$(o,!0);g(o),I(()=>U(u,e(ee))),a(t,o)};oe(Y,t=>{e(ee)&&t(w)})}var R=l(Y,2);{var k=t=>{var o=Qt();a(t,o)},h=t=>{Gt(t,{get tasks(){return e(P)},get updatedTaskIds(){return e(j)},onSelectTask:q,$$events:{select:xe}})};oe(R,t=>{e(z)?t(k):t(h,!1)})}g(A);var C=l(A,2);_t(C,{get open(){return e(V)},set open(t){y(V,t,!0)},children:(t,o)=>{pt(t,{class:"sm:max-w-2xl overflow-y-auto","data-testid":"task-detail-panel",children:(u,B)=>{var x=Zt(),ve=M(x);{var Fe=we=>{mt(we,{children:(Ke,ta)=>{var Re=Yt(),Be=M(Re);ht(Be,{"data-testid":"task-detail-title",children:(ye,Xe)=>{m();var fe=p();I(()=>U(fe,e(S).title)),a(ye,fe)},$$slots:{default:!0}});var Qe=l(Be,2);bt(Qe,{children:(ye,Xe)=>{var fe=Xt(),Ye=$(fe);g(fe),I(()=>U(Ye,`@${e(Q)??""}`)),a(ye,fe)},$$slots:{default:!0}}),a(Ke,Re)},$$slots:{default:!0}})};oe(ve,we=>{e(S)&&!e(b)&&!e(H)&&we(Fe)})}var Ie=l(ve,2);it(Ie,{get task(){return e(S)},get loading(){return e(b)},get error(){return e(H)},onTaskUpdated:K}),a(u,x)},$$slots:{default:!0}})},$$slots:{default:!0}}),I(()=>Ae(i,"href",`${ke??""}/tasks/board`)),a(L,se),ie(),n()}export{Pa as component,xa as universal};
@@ -0,0 +1 @@
1
+ import{c as se,a as o,f as v,t as be}from"../chunks/DvA-KON-.js";import{o as je,a as Re}from"../chunks/CwELQvbx.js";import{p as ne,f as G,i as Ne,a as de,c as r,r as s,s as i,g as a,h as K,t as Q,n as $,u as fe,e as g,b as ae,d as pe}from"../chunks/D3vxvonu.js";import{d as De,s as S}from"../chunks/D9QNBZM2.js";import{s as Le,r as Oe,i as A,p as me}from"../chunks/BysXJlZb.js";import{k as Ie,p as xe,q as oe,e as ie,B as Ce,h as ge,T as ye,g as Me,i as Ue,o as Ee,A as ke}from"../chunks/DQA8NZIH.js";import{a as Fe,s as qe}from"../chunks/pE6cYWlS.js";import{p as Ve}from"../chunks/D82RulSH.js";import{s as Ge,o as we,a as Te,u as He}from"../chunks/BP352uRn.js";import{f as Je,g as Ke,a as Qe,T as We,d as Xe,L as ze,b as Ye}from"../chunks/DOno4cA2.js";import{R as Be}from"../chunks/Cncwi6fQ.js";import{I as Ze}from"../chunks/B5wTVqxm.js";import{G as $e}from"../chunks/BYzrIfX8.js";import{T as et,B as tt,c as at,p as st}from"../chunks/DjcCz-PU.js";import{A as rt}from"../chunks/DBYE9jOd.js";import{B as ot}from"../chunks/iEtR5cV6.js";import{T as it}from"../chunks/CrCIbn0C.js";import{c as ce}from"../chunks/DAx07bEQ.js";import{a as lt,b as nt,c as dt,d as vt,D as ct}from"../chunks/DkltRNvh.js";import"../chunks/BUZujXJ2.js";import{S as te}from"../chunks/DAMmvwn4.js";import{B as Pe}from"../chunks/BkOJ8DkV.js";import{b as ut}from"../chunks/D7LTux4W.js";const ft=!1,ba=Object.freeze(Object.defineProperty({__proto__:null,ssr:ft},Symbol.toStringTag,{value:"Module"}));function mt(W,t){ne(t,!0);let b=Oe(t,["$$slots","$$events","$$legacy"]);const D=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"}]];Ze(W,Le({name:"message-square"},()=>b,{get iconNode(){return D},children:(u,h)=>{var c=se(),y=G(c);Ie(y,()=>t.children??Ne),o(u,c)},$$slots:{default:!0}})),de()}var gt=v('<span class="ml-auto flex items-center gap-0.5 text-[10px] text-status-blocked"><!> Blocked</span>'),_t=v('<span class="ml-auto flex items-center gap-0.5 text-[10px] text-status-cancelled"><!> Cancelled</span>'),pt=v('<span class="text-[10px] text-muted-foreground"> </span>'),xt=v('<div class="flex flex-wrap gap-1 mb-2" data-testid="task-tags"><!> <!></div>'),kt=v('<div class="mb-2" data-testid="spec-ref-link"><!></div>'),bt=v('<button data-testid="task-card"><div class="flex items-center gap-1.5 mb-1.5"><span data-testid="priority-badge"> </span> <span class="flex items-center gap-1 text-[10px] text-muted-foreground"><span aria-hidden="true"></span> </span> <!> <!></div> <p class="text-sm font-medium leading-snug line-clamp-2 mb-1" data-testid="task-title"> </p> <p class="text-[11px] font-mono text-muted-foreground mb-1.5" data-testid="task-slug"> </p> <!> <!> <div class="flex items-center gap-3 text-[10px] text-muted-foreground pt-1.5 border-t border-border/50" data-testid="task-metadata"><span class="flex items-center gap-0.5"><!> </span> <span class="flex items-center gap-0.5"><!> </span> <span class="ml-auto"> </span></div></button>');function ht(W,t){ne(t,!0);let b=K(()=>Ke(t.task.status)),D=K(()=>t.task.status==="blocked"),u=K(()=>t.task.status==="cancelled"),h=K(()=>t.task.slugs?.[0]??t.task._ulid.slice(0,8));var c=bt();c.__click=()=>t.onclick(t.task);var y=r(c),P=r(y),H=r(P);s(P);var _=i(P,2),X=r(_),C=i(X);s(_);var p=i(_,2);{var w=l=>{var n=gt(),x=r(n);et(x,{class:"size-3"}),$(),s(n),o(l,n)};A(p,l=>{a(D)&&l(w)})}var j=i(p,2);{var k=l=>{var n=_t(),x=r(n);tt(x,{class:"size-3"}),$(),s(n),o(l,n)};A(j,l=>{a(u)&&l(k)})}s(y);var f=i(y,2),B=r(f,!0);s(f);var R=i(f,2),L=r(R);s(R);var O=i(R,2);{var T=l=>{var n=xt(),x=r(n);ie(x,17,()=>t.task.tags.slice(0,3),ge,(d,m)=>{Ce(d,{variant:"secondary",class:"text-[10px] px-1.5 py-0",children:(E,ue)=>{$();var ee=be();Q(()=>S(ee,a(m))),o(E,ee)},$$slots:{default:!0}})});var U=i(x,2);{var e=d=>{var m=pt(),E=r(m);s(m),Q(()=>S(E,`+${t.task.tags.length-3}`)),o(d,m)};A(U,d=>{t.task.tags.length>3&&d(e)})}s(n),o(l,n)};A(O,l=>{t.task.tags?.length>0&&l(T)})}var z=i(O,2);{var F=l=>{var n=kt(),x=r(n);Be(x,{get ref(){return t.task.spec_ref},type:"spec",inline:!0,class:"text-[11px]"}),s(n),o(l,n)};A(z,l=>{t.task.spec_ref&&l(F)})}var q=i(z,2),N=r(q),I=r(N);mt(I,{class:"size-3"});var V=i(I);s(N);var J=i(N,2),Z=r(J);$e(Z,{class:"size-3"});var re=i(Z);s(J);var M=i(J,2),Y=r(M,!0);s(M),s(q),s(c),Q(l=>{xe(c,1,`group w-full text-left rounded-lg border bg-card p-3 shadow-sm transition-colors hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ${a(D)?"border-status-blocked/50":a(u)?"border-status-cancelled/50 opacity-60":"border-border"}`),oe(c,"data-task-id",t.task._ulid),xe(P,1,`inline-flex items-center justify-center size-5 rounded-full text-[10px] font-bold leading-none ${t.task.priority===1?"bg-destructive text-primary-foreground":t.task.priority===2?"bg-status-in-progress text-status-in-progress-fg":"bg-muted text-muted-foreground"}`),oe(P,"title",`Priority ${t.task.priority??""}`),S(H,`P${t.task.priority??""}`),xe(X,1,`size-2 rounded-full ${a(b).bg??""}`),S(C,` ${a(b).label??""}`),S(B,t.task.title),S(L,`@${a(h)??""}`),oe(N,"title",`${t.task.notes_count??""} notes`),S(V,` ${t.task.notes_count??""}`),oe(J,"title",`${t.task.depends_on?.length??0??""} dependencies`),S(re,` ${t.task.depends_on?.length??0??""}`),oe(M,"title",t.task.created_at),S(Y,l)},[()=>Je(t.task.created_at)]),o(W,c),de()}De(["click"]);var yt=v('<p>No backlog tasks.</p> <p class="mt-1">Create tasks with <code class="bg-muted px-1 rounded">kspec task add</code></p>',1),wt=v('<p>No tasks ready for work.</p> <p class="mt-1">Mark tasks eligible with <code class="bg-muted px-1 rounded">kspec task set --automation eligible</code></p>',1),Tt=v('<p>No active work.</p> <p class="mt-1">Start a task with <code class="bg-muted px-1 rounded">kspec task start</code></p>',1),zt=v('<p>Nothing awaiting review.</p> <p class="mt-1">Submit work with <code class="bg-muted px-1 rounded">kspec task submit</code></p>',1),Pt=v('<p>No completed tasks yet.</p> <p class="mt-1">Tasks appear here after completion.</p>',1),Ct=v("<p>No tasks in this column.</p>"),Bt=v('<div class="flex flex-col items-center justify-center py-8 text-muted-foreground text-xs text-center px-2" data-testid="column-empty"><!></div>'),St=v('<div class="flex flex-col min-w-0" data-testid="board-column"><div class="flex items-center gap-2 mb-3 px-1"><h2 class="text-sm font-semibold"> </h2> <span class="inline-flex items-center justify-center min-w-[20px] h-5 rounded-full bg-muted px-1.5 text-[10px] font-medium text-muted-foreground"> </span></div> <div class="flex flex-col gap-2 overflow-y-auto flex-1 pb-4 pr-1"><!></div></div>');function At(W,t){ne(t,!0);var b=St(),D=r(b),u=r(D),h=r(u,!0);s(u);var c=i(u,2),y=r(c,!0);s(c),s(D);var P=i(D,2),H=r(P);{var _=C=>{var p=Bt(),w=r(p);{var j=f=>{var B=yt();$(2),o(f,B)},k=f=>{var B=se(),R=G(B);{var L=T=>{var z=wt();$(2),o(T,z)},O=T=>{var z=se(),F=G(z);{var q=I=>{var V=Tt();$(2),o(I,V)},N=I=>{var V=se(),J=G(V);{var Z=M=>{var Y=zt();$(2),o(M,Y)},re=M=>{var Y=se(),l=G(Y);{var n=U=>{var e=Pt();$(2),o(U,e)},x=U=>{var e=Ct();o(U,e)};A(l,U=>{t.column.id==="done"?U(n):U(x,!1)},!0)}o(M,Y)};A(J,M=>{t.column.id==="review"?M(Z):M(re,!1)},!0)}o(I,V)};A(F,I=>{t.column.id==="in_progress"?I(q):I(N,!1)},!0)}o(T,z)};A(R,T=>{t.column.id==="ready"?T(L):T(O,!1)},!0)}o(f,B)};A(w,f=>{t.column.id==="backlog"?f(j):f(k,!1)})}s(p),o(C,p)},X=C=>{var p=se(),w=G(p);ie(w,17,()=>t.column.tasks,j=>j._ulid,(j,k)=>{ht(j,{get task(){return a(k)},get onclick(){return t.onCardClick}})}),o(C,p)};A(H,C=>{t.column.tasks.length===0?C(_):C(X,!1)})}s(P),s(b),Q(()=>{oe(b,"data-column-id",t.column.id),S(h,t.column.label),S(y,t.column.tasks.length)}),o(W,b),de()}var jt=v('<div class="truncate mb-1" data-testid="fleet-task-title"><!></div>'),Rt=v('<div class="truncate"> </div>'),Nt=v('<div class="mt-1.5 rounded bg-muted/50 p-1.5 font-mono text-[10px] leading-tight text-muted-foreground overflow-hidden max-h-14" aria-live="polite" data-testid="fleet-output"></div>'),Dt=v('<div class="mt-1.5 flex items-center gap-1 text-[10px] text-muted-foreground/50" aria-live="polite" data-testid="fleet-output-empty"><!> <span>Awaiting output...</span></div>'),Lt=v('<div class="flex-shrink-0 w-72 rounded-lg border bg-card p-3 ds-breathe" data-testid="fleet-card"><div class="flex items-center gap-2 mb-1.5"><!> <span class="text-xs font-medium truncate" data-testid="fleet-agent-name"> </span></div> <!> <div class="flex items-center gap-1.5 text-[10px] text-muted-foreground mb-1.5"><span class="relative flex size-2"><span class="absolute inline-flex h-full w-full rounded-full bg-status-in-progress opacity-75 ds-breathe"></span> <span class="relative inline-flex size-2 rounded-full bg-status-in-progress"></span></span> <span> </span></div> <!></div>'),Ot=v('<div class="mb-4" data-testid="active-fleet-row"><div class="flex items-center gap-2 mb-2"><!> <h3 class="text-sm font-medium">Active Fleet</h3> <!></div> <div class="flex gap-3 overflow-x-auto pb-2"></div></div>');function It(W,t){ne(t,!0);let b=me(t,"outputLines",19,()=>({})),D=me(t,"taskTitles",19,()=>({})),u=K(()=>t.status?.active_invocations??[]),h=K(()=>t.status?.dispatch_enabled&&a(u).length>0),c=K(()=>Object.fromEntries((t.status?.agent_definitions??[]).map(_=>[_.id,_.name])));var y=se(),P=G(y);{var H=_=>{var X=Ot(),C=r(X),p=r(C);rt(p,{class:"size-4 text-status-in-progress"});var w=i(p,4);Ce(w,{variant:"secondary",class:"text-[10px]",children:(k,f)=>{$();var B=be();Q(()=>S(B,`${a(u).length??""} running`)),o(k,B)},$$slots:{default:!0}}),s(C);var j=i(C,2);ie(j,21,()=>a(u),k=>k.session_id,(k,f)=>{const B=K(()=>b()[a(f).session_id]??[]),R=K(()=>a(f).task_ref?D()[a(f).task_ref]:void 0),L=K(()=>a(c)[a(f).agent_id]??a(f).agent_id);var O=Lt(),T=r(O),z=r(T);ot(z,{class:"size-4 text-muted-foreground"});var F=i(z,2),q=r(F,!0);s(F),s(T);var N=i(T,2);{var I=l=>{var n=jt(),x=r(n);Be(x,{get ref(){return a(f).task_ref},type:"task",get title(){return a(R)},class:"text-xs"}),s(n),o(l,n)};A(N,l=>{a(f).task_ref&&l(I)})}var V=i(N,2),J=i(r(V),2),Z=r(J,!0);s(J),s(V);var re=i(V,2);{var M=l=>{var n=Nt();ie(n,21,()=>a(B),ge,(x,U)=>{var e=Rt(),d=r(e,!0);s(e),Q(()=>S(d,a(U))),o(x,e)}),s(n),Q(()=>oe(n,"aria-label",`Agent output for ${a(R)??a(L)??""}`)),o(l,n)},Y=l=>{var n=Dt(),x=r(n);it(x,{class:"size-3"}),$(2),s(n),Q(()=>oe(n,"aria-label",`Agent output for ${a(R)??a(L)??""}`)),o(l,n)};A(re,l=>{a(B).length>0?l(M):l(Y,!1)})}s(O),Q(l=>{S(q,a(L)),S(Z,l)},[()=>Qe(a(f).elapsed_ms)]),o(k,O)}),s(j),s(X),o(_,X)};A(P,_=>{a(h)&&_(H)})}o(W,y),de()}var Mt=v('<span class="font-mono text-xs"> </span>'),Ut=v("<!> <!>",1),Et=v("<!> <!>",1);function Ft(W,t){ne(t,!0);let b=me(t,"open",15,!1),D=me(t,"taskRef",11,null),u=ae(null),h=ae(!1),c=ae("");fe(()=>{b()&&D()?y(D()):b()||(g(u,null),g(c,""))});async function y(C){g(h,!0),g(c,"");try{g(u,await ye(C),!0)}catch(p){g(c,p instanceof Error?p.message:"Failed to load task",!0)}finally{g(h,!1)}}async function P(){a(u)&&g(u,await ye(a(u)._ulid),!0),t.onTaskUpdated?.()}let H=K(()=>a(u)?.slugs?.[0]??a(u)?._ulid?.slice(0,8)??"");var _=se(),X=G(_);ce(X,()=>ct,(C,p)=>{p(C,{get open(){return b()},set open(w){b(w)},children:(w,j)=>{var k=se(),f=G(k);ce(f,()=>lt,(B,R)=>{R(B,{class:"max-w-2xl max-h-[85vh] overflow-y-auto","data-testid":"task-detail-modal",children:(L,O)=>{var T=Et(),z=G(T);{var F=N=>{var I=se(),V=G(I);ce(V,()=>nt,(J,Z)=>{Z(J,{children:(re,M)=>{var Y=Ut(),l=G(Y);ce(l,()=>dt,(x,U)=>{U(x,{"data-testid":"task-detail-title",children:(e,d)=>{$();var m=be();Q(()=>S(m,a(u).title)),o(e,m)},$$slots:{default:!0}})});var n=i(l,2);ce(n,()=>vt,(x,U)=>{U(x,{children:(e,d)=>{var m=Mt(),E=r(m);s(m),Q(()=>S(E,`@${a(H)??""}`)),o(e,m)},$$slots:{default:!0}})}),o(re,Y)},$$slots:{default:!0}})}),o(N,I)};A(z,N=>{a(u)&&!a(h)&&!a(c)&&N(F)})}var q=i(z,2);We(q,{get task(){return a(u)},get loading(){return a(h)},get error(){return a(c)},onTaskUpdated:P}),o(L,T)},$$slots:{default:!0}})}),o(w,k)},$$slots:{default:!0}})}),o(W,_),de()}var qt=v('<div class="rounded-lg border bg-card p-3 mb-2"><div class="flex items-center gap-1.5 mb-1.5"><!> <!></div> <!> <!> <div class="flex gap-1 mb-2"><!> <!></div> <div class="flex items-center gap-3 pt-1.5 border-t border-border/50"><!> <!> <!></div></div>'),Vt=v('<div class="flex flex-col min-w-0"><div class="flex items-center gap-2 mb-3 px-1"><!> <!></div> <!></div>'),Gt=v('<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5 gap-4 p-6" data-testid="board-skeleton"></div>');function Ht(W){var t=Gt();ie(t,4,()=>Array(5),ge,(b,D,u)=>{var h=Vt(),c=r(h),y=r(c);te(y,{class:"h-4 w-20 ds-shimmer"});var P=i(y,2);te(P,{class:"size-5 rounded-full ds-shimmer"}),s(c);var H=i(c,2);ie(H,1,()=>Array(u===0?3:u===4?2:1),ge,(_,X,C,p)=>{var w=qt(),j=r(w),k=r(j);te(k,{class:"size-5 rounded-full ds-shimmer"});var f=i(k,2);te(f,{class:"h-3 w-16 ds-shimmer"}),s(j);var B=i(j,2);te(B,{class:"h-4 w-full mb-1 ds-shimmer"});var R=i(B,2);te(R,{class:"h-3 w-24 mb-1.5 ds-shimmer"});var L=i(R,2),O=r(L);te(O,{class:"h-4 w-10 rounded-full ds-shimmer"});var T=i(O,2);te(T,{class:"h-4 w-12 rounded-full ds-shimmer"}),s(L);var z=i(L,2),F=r(z);te(F,{class:"h-3 w-8 ds-shimmer"});var q=i(F,2);te(q,{class:"h-3 w-8 ds-shimmer"});var N=i(q,2);te(N,{class:"h-3 w-6 ml-auto ds-shimmer"}),s(z),s(w),o(_,w)}),s(h),o(b,h)}),s(t),o(W,t)}var Jt=v('<p class="text-sm text-muted-foreground"> </p>'),Kt=v('<div class="mx-6 mt-4 bg-destructive/10 text-destructive p-4 rounded-lg" role="alert" data-testid="board-error"> </div>'),Qt=v('<div class="flex flex-col items-center justify-center flex-1 py-16" data-testid="board-empty"><!> <h2 class="text-lg font-medium text-muted-foreground mb-1">No tasks yet</h2> <p class="text-sm text-muted-foreground">Create tasks using <code class="bg-muted px-1 rounded text-xs">kspec task add</code></p></div>'),Wt=v('<div class="px-6 pt-4"><!></div> <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5 gap-4 p-6 pt-2 flex-1 min-h-0" data-testid="board-columns"></div>',1),Xt=v('<div class="flex flex-col h-full min-w-0"><div class="flex items-center justify-between p-6 pb-0"><div><h1 class="text-2xl font-bold">Task Board</h1> <!></div> <div class="flex items-center gap-1 border rounded-lg p-0.5"><!> <a title="List view"><!></a></div></div> <!> <!></div> <!>',1);function ha(W,t){ne(t,!0);const b=()=>Fe(Ve,"$page",D),[D,u]=qe();let h=ae(pe([])),c=ae(pe([])),y=ae(!0),P=ae(""),H=ae(null),_=pe({}),X=K(()=>Object.fromEntries(Object.entries(_).map(([e,d])=>[e,d.lines]))),C=K(()=>Object.fromEntries(a(h).flatMap(e=>{const d=[[`@${e._ulid}`,e.title]];for(const m of e.slugs)d.push([`@${m}`,e.title]);return d}))),p=ae(!1),w=ae(null),j=ae("");fe(()=>{g(c,Xe(a(h)),!0)}),fe(()=>{Me(),Ue()&&k()}),fe(()=>{const e=b().url.searchParams.get("ref");e&&e!==a(j)&&(g(j,e,!0),g(w,e,!0),g(p,!0))});async function k(){g(y,!0),g(P,"");try{const[e,d]=await Promise.all([Ee({limit:500}),ke().catch(()=>null)]);g(h,e.items,!0),g(H,d,!0)}catch(e){g(P,e instanceof Error?e.message:"Failed to load board",!0)}finally{g(y,!1)}}function f(e){g(w,e._ulid,!0),g(p,!0)}function B(){k()}function R(e){k()}function L(e){if(e.event==="agent_text_chunk"&&e.data?.session_id&&e.data?.text){const d=e.data.session_id,m=e.data.text,E=_[d]??at();_[d]=st(E,m);return}ke().then(d=>{g(H,d,!0);const m=new Set(d.active_invocations.map(E=>E.session_id));for(const E of Object.keys(_))m.has(E)||delete _[E]}).catch(()=>{})}let O;je(()=>{Ge(["tasks","agents"]),we("tasks",R),we("agents",L),O=setInterval(()=>{ke().then(e=>{g(H,e,!0)}).catch(()=>{})},5e3)}),Re(()=>{Te("tasks",R),Te("agents",L),He(["tasks","agents"]),O&&clearInterval(O)});var T=Xt(),z=G(T),F=r(z),q=r(F),N=i(r(q),2);{var I=e=>{const d=K(()=>a(c).reduce((ue,ee)=>ue+ee.tasks.length,0));var m=Jt(),E=r(m);s(m),Q(()=>S(E,`${a(d)??""} tasks`)),o(e,m)};A(N,e=>{!a(y)&&a(c).length>0&&e(I)})}s(q);var V=i(q,2),J=r(V);Pe(J,{variant:"ghost",size:"icon-sm",class:"bg-accent",title:"Board view","aria-pressed":"true",children:(e,d)=>{ze(e,{class:"size-4"})},$$slots:{default:!0}});var Z=i(J,2),re=r(Z);Pe(re,{variant:"ghost",size:"icon-sm","aria-pressed":"false",children:(e,d)=>{Ye(e,{class:"size-4"})},$$slots:{default:!0}}),s(Z),s(V),s(F);var M=i(F,2);{var Y=e=>{var d=Kt(),m=r(d,!0);s(d),Q(()=>S(m,a(P))),o(e,d)};A(M,e=>{a(P)&&e(Y)})}var l=i(M,2);{var n=e=>{Ht(e)},x=e=>{var d=se(),m=G(d);{var E=ee=>{var le=Qt(),ve=r(le);ze(ve,{class:"size-12 text-muted-foreground/30 mb-4"}),$(4),s(le),o(ee,le)},ue=ee=>{var le=Wt(),ve=G(le),Se=r(ve);It(Se,{get status(){return a(H)},get outputLines(){return a(X)},get taskTitles(){return a(C)}}),s(ve);var he=i(ve,2);ie(he,21,()=>a(c),_e=>_e.id,(_e,Ae)=>{At(_e,{get column(){return a(Ae)},onCardClick:f})}),s(he),o(ee,le)};A(m,ee=>{a(h).length===0?ee(E):ee(ue,!1)},!0)}o(e,d)};A(l,e=>{a(y)?e(n):e(x,!1)})}s(z);var U=i(z,2);Ft(U,{onTaskUpdated:B,get open(){return a(p)},set open(e){g(p,e,!0)},get taskRef(){return a(w)},set taskRef(e){g(w,e,!0)}}),Q(()=>oe(Z,"href",`${ut??""}/tasks`)),o(W,T),de(),u()}export{ha as component,ba as universal};
@@ -0,0 +1 @@
1
+ import{c as ce,a as r,f as v,t as N}from"../chunks/DvA-KON-.js";import{o as Ht,a as Kt}from"../chunks/CwELQvbx.js";import{p as xt,f as y,i as Qt,a as bt,b as H,d as vt,u as ut,e as d,g as e,h as b,c as n,s as o,t as f,$ as Wt,r as s,P as We,Q as gt,n as K}from"../chunks/D3vxvonu.js";import{d as Xt,e as Jt,s as _}from"../chunks/D9QNBZM2.js";import{s as Yt,r as Zt,i as u}from"../chunks/BysXJlZb.js";import{k as ea,g as ta,i as aa,f as ra,a as ft,b as Xe,e as Se,c as le,h as Ce,s as Je,r as oa,B as _t,u as ia,v as sa,R as pt,w as na}from"../chunks/DQA8NZIH.js";import{s as da,a as la}from"../chunks/pE6cYWlS.js";import{g as ca}from"../chunks/B8a0xDxR.js";import{b as mt}from"../chunks/D7LTux4W.js";import{p as va}from"../chunks/D82RulSH.js";import{s as ua,o as ga,a as fa,u as _a}from"../chunks/BP352uRn.js";import{B as be}from"../chunks/BkOJ8DkV.js";import{C as pa}from"../chunks/CGtqifKp.js";import{C as ma}from"../chunks/DjG7s6hm.js";import{C as xa}from"../chunks/BEOQc37C.js";import{C as ba}from"../chunks/DhQhksaB.js";import{T as ha}from"../chunks/k_Qegko0.js";import{S as $a}from"../chunks/8RBjHMN1.js";import{I as ya}from"../chunks/B5wTVqxm.js";import{C as wa}from"../chunks/BWET-efb.js";function Ta(ke,ve){xt(ve,!0);let re=Zt(ve,["$$slots","$$events","$$legacy"]);const Re=[["path",{d:"m15 18-6-6 6-6"}]];ya(ke,Yt({name:"chevron-left"},()=>re,{get iconNode(){return Re},children:(Ee,he)=>{var oe=ce(),Q=y(oe);ea(Q,()=>ve.children??Qt),r(Ee,oe)},$$slots:{default:!0}})),bt()}var Aa=v('<p class="text-muted-foreground" data-testid="triage-progress"> <!></p>'),Pa=v("<option> </option>"),Sa=v("<option> </option>"),Ca=v('<select class="rounded-md border bg-background px-3 py-1.5 text-sm" data-testid="triage-tag-filter"><option>All Tags</option><!></select>'),ka=v('<div class="w-full bg-muted rounded-full h-2" data-testid="triage-progress-bar"><div class="bg-primary rounded-full h-2 transition-all duration-300"></div></div>'),Ra=v('<div class="rounded-md bg-red-50 p-4 text-sm text-red-800 dark:bg-red-900/20 dark:text-red-200" data-testid="triage-error" role="alert"> </div>'),Ea=v('<div class="rounded-md bg-amber-50 p-3 text-sm text-amber-800 dark:bg-amber-900/20 dark:text-amber-200" data-testid="triage-static-notice">Triage decisions are not included in static snapshots. Browse inbox items below; use the daemon for full triage functionality.</div>'),Ia=v('<div class="text-center text-muted-foreground py-12">Loading triage data...</div>'),Da=v('<p>No inbox items to triage.</p> <p class="text-sm mt-1">Add items to your inbox first.</p>',1),Na=v("<p>No items match the current filters.</p>"),Oa=v('<div class="text-center text-muted-foreground py-12"><!></div>'),La=v("<!> Previous",1),ja=v("Next <!>",1),Ua=v('<span>&middot;</span> <div class="flex gap-1" data-testid="triage-card-tags"></div>',1),Ma=v('<div class="flex items-start justify-between gap-4"><!> <!></div> <div class="flex items-center gap-2 text-xs text-muted-foreground mt-2" data-testid="triage-card-meta"><span data-testid="triage-card-age"> </span> <span>&middot;</span> <span data-testid="triage-card-added-by"> </span> <!></div>',1),Fa=v('<p data-testid="triage-rec-evidence"><span class="font-medium">Evidence:</span> </p>'),za=v('<div class="rounded-md bg-muted p-4 mb-4" data-testid="triage-agent-recommendation"><p class="text-sm font-medium mb-2"><!></p> <div class="space-y-1 text-sm"><p data-testid="triage-rec-action"><span class="font-medium">Action:</span> </p> <p data-testid="triage-rec-reasoning"><span class="font-medium">Reasoning:</span> </p> <!> <p class="text-xs text-muted-foreground"> </p></div></div>'),Ba=v('<!> <div class="space-y-4" data-testid="triage-action-form"><div><p class="text-sm font-medium mb-2"> </p> <div class="flex flex-wrap gap-2" data-testid="triage-action-buttons"></div></div> <div><p class="text-sm font-medium mb-2">Reasoning</p> <!></div> <div class="flex gap-2"><!> <!></div></div>',1),Ga=v('<p class="text-sm text-muted-foreground mt-4">No triage decision recorded. Use the CLI or daemon to triage items.</p>'),Va=v("<!> <!>",1),qa=v("<!> <!>",1),Ha=v('<div class="flex items-center justify-between mb-2"><!> <span class="text-sm text-muted-foreground" data-testid="triage-position"> </span> <!></div> <!>',1),Ka=v('<div class="flex flex-col gap-4 p-6"><div class="flex items-center justify-between"><div><h1 class="text-3xl font-bold">Triage</h1> <!></div> <div class="flex gap-2 items-center" data-testid="triage-filters"><select class="rounded-md border bg-background px-3 py-1.5 text-sm" data-testid="triage-status-filter"><option>All</option><option>Untriaged</option><option>Triaged</option><option>Acted On</option></select> <select class="rounded-md border bg-background px-3 py-1.5 text-sm" data-testid="triage-action-filter"><option>All Actions</option><!></select> <!></div></div> <!> <!> <!> <!></div>');function fr(ke,ve){xt(ve,!0);const re=()=>la(va,"$page",Re),[Re,Ee]=da();let he=H(vt([])),oe=H(vt([])),Q=H(!0),w=H(""),k=H(0),O=H(!1),W=H(""),X=H("");const ue={promote:"Promote to Task",delete:"Delete",defer:"Defer","spec-gap":"Spec Gap",duplicate:"Duplicate"},ht={promote:"bg-green-500",delete:"bg-red-500",defer:"bg-yellow-500","spec-gap":"bg-purple-500",duplicate:"bg-gray-500"},$t=["all","untriaged","triaged","acted_on"],yt=Object.keys(ue);let ie=b(()=>re().url.searchParams.get("tag")||""),J=b(()=>{const t=re().url.searchParams.get("status");return t&&$t.includes(t)?t:"all"}),se=b(()=>{const t=re().url.searchParams.get("action");return t&&yt.includes(t)?t:""}),ge=b(()=>e(he).map(a=>{const l=e(oe).find(p=>p.inbox_ref===a._ulid)??null;return{inbox:a,record:l}})),M=b(()=>{let t=e(ge);return e(ie)&&(t=t.filter(a=>a.inbox.tags.includes(e(ie)))),e(J)==="untriaged"?t=t.filter(a=>!a.record||a.record.status==="pending"):e(J)==="triaged"?t=t.filter(a=>a.record?.status==="triaged"):e(J)==="acted_on"&&(t=t.filter(a=>a.record?.status==="acted_on")),e(se)&&(t=t.filter(a=>a.record?.action===e(se))),t}),i=b(()=>e(M)[e(k)]??null),Ye=b(()=>e(ge).filter(t=>t.record&&t.record.status!=="pending").length),Ie=b(()=>e(ge).length),Ze=b(()=>{const t=new Set;return e(he).forEach(a=>a.tags.forEach(l=>t.add(l))),Array.from(t).sort()});Ht(()=>{le()||(ua(["triage:updates"]),ga("triage:updates",et))}),Kt(()=>{le()||(fa("triage:updates",et),_a(["triage:updates"]))}),ut(()=>{ta(),aa()&&wt()});function et(t){De()}async function wt(){try{d(Q,!0),d(w,"");const[t,a]=await Promise.all([ra({limit:1e3}),ft({limit:1e3})]);d(he,t.items,!0),d(oe,a.items,!0)}catch(t){d(w,t instanceof Error?t.message:"Failed to load triage data",!0)}finally{d(Q,!1)}}async function De(){try{const t=await ft({limit:1e3});d(oe,t.items,!0)}catch(t){console.error("Failed to reload triage records:",t)}}function Ne(t,a){const l=new URLSearchParams(re().url.searchParams);!a||a==="all"?l.delete(t):l.set(t,a);const p=l.toString(),h=p?`${mt}/triage?${p}`:`${mt}/triage`;ca(h,{replaceState:!1,keepFocus:!0,noScroll:!0})}function tt(){e(k)<e(M).length-1&&(We(k),$e())}function at(){e(k)>0&&(We(k,-1),$e())}function $e(){d(W,""),d(X,""),d(w,"")}function Tt(t){const a=t.target;a.tagName==="INPUT"||a.tagName==="TEXTAREA"||a.isContentEditable||(t.key==="ArrowLeft"?at():t.key==="ArrowRight"&&tt())}async function At(){if(!(!e(i)||!e(W)||!e(X).trim())){if(le()){d(w,"Cannot submit triage decisions in read-only mode.");return}try{d(O,!0),d(w,"");const t=e(i).record;t&&t.status!=="pending"?await ia(t._ulid,{action:e(W),reasoning:e(X).trim()}):await sa({inbox_ref:e(i).inbox._ulid,action:e(W),reasoning:e(X).trim()}),await De(),e(k)<e(M).length-1&&We(k),$e()}catch(t){t instanceof pt?d(w,t.message,!0):d(w,t instanceof Error?t.message:"Failed to submit triage decision",!0)}finally{d(O,!1)}}}async function Pt(){if(e(i)?.record){if(le()){d(w,"Cannot execute triage actions in read-only mode.");return}try{d(O,!0),d(w,""),await na(e(i).record._ulid),await De()}catch(t){t instanceof pt?d(w,t.message,!0):d(w,t instanceof Error?t.message:"Failed to execute triage action",!0)}finally{d(O,!1)}}}function St(t){const a=new Date(t),p=new Date().getTime()-a.getTime(),h=Math.floor(p/6e4),c=Math.floor(p/36e5),g=Math.floor(p/864e5);return h<1?"just now":h<60?`${h}m ago`:c<24?`${c}h ago`:g<7?`${g}d ago`:a.toLocaleDateString()}ut(()=>{e(ie),e(J),e(se),d(k,0),$e()});var Oe=Ka();Jt("keydown",Wt,Tt);var Le=n(Oe),je=n(Le),Ct=o(n(je),2);{var kt=t=>{var a=Aa(),l=n(a),p=o(l);{var h=c=>{var g=N();f(()=>_(g,`· Showing ${e(M).length??""} filtered`)),r(c,g)};u(p,c=>{e(M).length!==e(ge).length&&c(h)})}s(a),f(()=>_(l,`${e(Ye)??""} of ${e(Ie)??""} triaged `)),r(t,a)};u(Ct,t=>{e(Q)||t(kt)})}s(je);var rt=o(je,2),F=n(rt);F.__change=t=>Ne("status",t.currentTarget.value);var Ue=n(F);Ue.value=Ue.__value="all";var Me=o(Ue);Me.value=Me.__value="untriaged";var Fe=o(Me);Fe.value=Fe.__value="triaged";var ot=o(Fe);ot.value=ot.__value="acted_on",s(F);var it;Xe(F);var z=o(F,2);z.__change=t=>Ne("action",t.currentTarget.value);var ze=n(z);ze.value=ze.__value="";var Rt=o(ze);Se(Rt,17,()=>Object.entries(ue),Ce,(t,a)=>{var l=b(()=>gt(e(a),2));let p=()=>e(l)[0],h=()=>e(l)[1];var c=Pa(),g=n(c,!0);s(c);var A={};f(()=>{_(g,h()),A!==(A=p())&&(c.value=(c.__value=p())??"")}),r(t,c)}),s(z);var st;Xe(z);var Et=o(z,2);{var It=t=>{var a=Ca();a.__change=c=>Ne("tag",c.currentTarget.value);var l=n(a);l.value=l.__value="";var p=o(l);Se(p,17,()=>e(Ze),Ce,(c,g)=>{var A=Sa(),fe=n(A,!0);s(A);var B={};f(()=>{_(fe,e(g)),B!==(B=e(g))&&(A.value=(A.__value=e(g))??"")}),r(c,A)}),s(a);var h;Xe(a),f(()=>{h!==(h=e(ie))&&(a.value=(a.__value=e(ie))??"",Je(a,e(ie)))}),r(t,a)};u(Et,t=>{e(Ze).length>0&&t(It)})}s(rt),s(Le);var nt=o(Le,2);{var Dt=t=>{var a=ka(),l=n(a);s(a),f(()=>oa(l,`width: ${e(Ye)/e(Ie)*100}%`)),r(t,a)};u(nt,t=>{e(Ie)>0&&t(Dt)})}var dt=o(nt,2);{var Nt=t=>{var a=Ra(),l=n(a,!0);s(a),f(()=>_(l,e(w))),r(t,a)};u(dt,t=>{e(w)&&t(Nt)})}var lt=o(dt,2);{var Ot=t=>{var a=Ea();r(t,a)};u(lt,t=>{le()&&!e(Q)&&t(Ot)})}var Lt=o(lt,2);{var jt=t=>{var a=Ia();r(t,a)},Ut=t=>{var a=ce(),l=y(a);{var p=c=>{var g=Oa(),A=n(g);{var fe=L=>{var Y=Da();K(2),r(L,Y)},B=L=>{var Y=Na();r(L,Y)};u(A,L=>{e(ge).length===0?L(fe):L(B,!1)})}s(g),r(c,g)},h=c=>{var g=ce(),A=y(g);{var fe=B=>{var L=Ha(),Y=y(L),ct=n(Y);{let _e=b(()=>e(k)===0);be(ct,{variant:"outline",size:"sm",onclick:at,get disabled(){return e(_e)},"data-testid":"triage-prev",children:(ye,we)=>{var G=La(),pe=y(G);Ta(pe,{class:"size-4 mr-1"}),K(),r(ye,G)},$$slots:{default:!0}})}var Be=o(ct,2),Mt=n(Be);s(Be);var Ft=o(Be,2);{let _e=b(()=>e(k)===e(M).length-1);be(Ft,{variant:"outline",size:"sm",onclick:tt,get disabled(){return e(_e)},"data-testid":"triage-next",children:(ye,we)=>{K();var G=ja(),pe=o(y(G));wa(pe,{class:"size-4 ml-1"}),r(ye,G)},$$slots:{default:!0}})}s(Y);var zt=o(Y,2);pa(zt,{class:"transition-all duration-200","data-testid":"triage-card",children:(_e,ye)=>{var we=qa(),G=y(we);xa(G,{children:(Ge,Bt)=>{var me=Ma(),ne=y(me),Te=n(ne);ba(Te,{class:"text-lg leading-relaxed","data-testid":"triage-card-text",children:(m,S)=>{K();var T=N();f(()=>_(T,e(i).inbox.text)),r(m,T)},$$slots:{default:!0}});var Ve=o(Te,2);{var qe=m=>{{let S=b(()=>e(i).record.action?ht[e(i).record.action]:"bg-gray-500");_t(m,{get class(){return e(S)},"data-testid":"triage-card-status",children:(T,q)=>{K();var U=N();f(()=>_(U,e(i).record.status==="acted_on"?"Acted":"Triaged")),r(T,U)},$$slots:{default:!0}})}};u(Ve,m=>{e(i).record&&e(i).record.status!=="pending"&&m(qe)})}s(ne);var Ae=o(ne,2),$=n(Ae),R=n($,!0);s($);var P=o($,4),V=n(P,!0);s(P);var E=o(P,2);{var j=m=>{var S=Ua(),T=o(y(S),2);Se(T,21,()=>e(i).inbox.tags,Ce,(q,U)=>{_t(q,{variant:"secondary",class:"text-xs",children:(Z,Pe)=>{K();var ee=N();f(()=>_(ee,e(U))),r(Z,ee)},$$slots:{default:!0}})}),s(T),r(m,S)};u(E,m=>{e(i).inbox.tags.length>0&&m(j)})}s(Ae),f(m=>{_(R,m),_(V,e(i).inbox.added_by)},[()=>St(e(i).inbox.created_at)]),r(Ge,me)},$$slots:{default:!0}});var pe=o(G,2);ma(pe,{children:(Ge,Bt)=>{var me=Va(),ne=y(me);{var Te=$=>{var R=za(),P=n(R),V=n(P);{var E=x=>{var C=N("Override Decision");r(x,C)},j=x=>{var C=N("Agent Recommendation");r(x,C)};u(V,x=>{e(i).record.override_by?x(E):x(j,!1)})}s(P);var m=o(P,2),S=n(m),T=o(n(S));s(S);var q=o(S,2),U=o(n(q));s(q);var Z=o(q,2);{var Pe=x=>{var C=Fa(),D=o(n(C));s(C),f(xe=>_(D,` ${xe??""}`),[()=>e(i).record.evidence_refs.join(", ")]),r(x,C)};u(Z,x=>{e(i).record.evidence_refs.length>0&&x(Pe)})}var ee=o(Z,2),I=n(ee);s(ee),s(m),s(R),f(()=>{_(T,` ${(e(i).record.action?ue[e(i).record.action]:"None")??""}`),_(U,` ${(e(i).record.override_reasoning||e(i).record.reasoning)??""}`),_(I,`Decided by: ${(e(i).record.override_by||e(i).record.decided_by)??""}`)}),r($,R)};u(ne,$=>{e(i).record&&e(i).record.status!=="pending"&&$(Te)})}var Ve=o(ne,2);{var qe=$=>{var R=Ba(),P=y(R);$a(P,{class:"my-4"});var V=o(P,2),E=n(V),j=n(E),m=n(j,!0);s(j);var S=o(j,2);Se(S,21,()=>Object.entries(ue),Ce,(I,x)=>{var C=b(()=>gt(e(x),2));let D=()=>e(C)[0],xe=()=>e(C)[1];{let He=b(()=>e(W)===D()?"default":"outline");be(I,{get variant(){return e(He)},size:"sm",onclick:()=>d(W,D(),!0),get"data-testid"(){return`triage-action-${D()??""}`},children:(Ke,te)=>{K();var ae=N();f(()=>_(ae,xe())),r(Ke,ae)},$$slots:{default:!0}})}}),s(S),s(E);var T=o(E,2),q=o(n(T),2);ha(q,{placeholder:"Why are you choosing this action?",rows:3,get disabled(){return e(O)},"data-testid":"triage-reasoning",get value(){return e(X)},set value(I){d(X,I,!0)}}),s(T);var U=o(T,2),Z=n(U);{let I=b(()=>e(O)||!e(W)||!e(X).trim());be(Z,{onclick:At,get disabled(){return e(I)},"data-testid":"triage-submit",children:(x,C)=>{var D=ce(),xe=y(D);{var He=te=>{var ae=N("Submitting...");r(te,ae)},Ke=te=>{var ae=ce(),Gt=y(ae);{var Vt=de=>{var Qe=N("Override Decision");r(de,Qe)},qt=de=>{var Qe=N("Submit Decision");r(de,Qe)};u(Gt,de=>{e(i).record&&e(i).record.status!=="pending"?de(Vt):de(qt,!1)},!0)}r(te,ae)};u(xe,te=>{e(O)?te(He):te(Ke,!1)})}r(x,D)},$$slots:{default:!0}})}var Pe=o(Z,2);{var ee=I=>{be(I,{variant:"secondary",onclick:Pt,get disabled(){return e(O)},"data-testid":"triage-act",children:(x,C)=>{K();var D=N();f(()=>_(D,e(O)?"Executing...":`Execute: ${e(i).record.action?ue[e(i).record.action]:""}`)),r(x,D)},$$slots:{default:!0}})};u(Pe,I=>{e(i).record?.status==="triaged"&&I(ee)})}s(U),s(V),f(()=>_(m,e(i).record&&e(i).record.status!=="pending"?"Override Action":"Select Action")),r($,R)},Ae=$=>{var R=ce(),P=y(R);{var V=E=>{var j=Ga();r(E,j)};u(P,E=>{e(i).record||E(V)})}r($,R)};u(Ve,$=>{le()?$(Ae,!1):$(qe)})}r(Ge,me)},$$slots:{default:!0}}),r(_e,we)},$$slots:{default:!0}}),f(()=>_(Mt,`${e(k)+1} / ${e(M).length??""}`)),r(B,L)};u(A,B=>{e(i)&&B(fe)},!0)}r(c,g)};u(l,c=>{e(M).length===0?c(p):c(h,!1)},!0)}r(t,a)};u(Lt,t=>{e(Q)?t(jt):t(Ut,!1)})}s(Oe),f(()=>{it!==(it=e(J))&&(F.value=(F.__value=e(J))??"",Je(F,e(J))),st!==(st=e(se))&&(z.value=(z.__value=e(se))??"",Je(z,e(se)))}),r(ke,Oe),bt(),Ee()}Xt(["change"]);export{fr as component};
@@ -0,0 +1,2 @@
1
+ import{c as ae,a as o,f as n,t as pe}from"../chunks/DvA-KON-.js";import{f as c,p as ct,u as ft,e as de,b as fe,a as ut,s as i,c as r,g as e,r as s,h as re,n as N,t as P}from"../chunks/D3vxvonu.js";import{d as mt,s as m}from"../chunks/D9QNBZM2.js";import{l as he,s as $e,i as W}from"../chunks/BysXJlZb.js";import{g as _t,i as pt,z as gt,P as ht,Q as $t,o as xt,e as Ce,h as ke,B as Se,p as Ie,r as Xe}from"../chunks/DQA8NZIH.js";import{C as ue}from"../chunks/CGtqifKp.js";import{C as me}from"../chunks/DjG7s6hm.js";import{C as ge}from"../chunks/BEOQc37C.js";import{C as Me}from"../chunks/DhQhksaB.js";import{R as yt,S as wt}from"../chunks/C076q4JN.js";import"../chunks/BUZujXJ2.js";import{I as xe,s as ye}from"../chunks/BHtYorjv.js";import{T as Fe}from"../chunks/B5LJFxqa.js";function Oe(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["circle",{cx:"12",cy:"12",r:"10"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16"}]];xe(O,$e({name:"circle-alert"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}function Ue(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"m9 12 2 2 4-4"}]];xe(O,$e({name:"circle-check"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}function bt(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}],["path",{d:"M12 9v4"}],["path",{d:"M12 17h.01"}]];xe(O,$e({name:"file-exclamation-point"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}function Ye(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["circle",{cx:"12",cy:"12",r:"10"}],["path",{d:"M12 16v-4"}],["path",{d:"M12 8h.01"}]];xe(O,$e({name:"info"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}function Pt(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["path",{d:"M9 17H7A5 5 0 0 1 7 7"}],["path",{d:"M15 7h2a5 5 0 0 1 4 8"}],["line",{x1:"8",x2:"12",y1:"12",y2:"12"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22"}]];xe(O,$e({name:"link-2-off"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}function Ct(O,$){const d=he($,["children","$$slots","$$events","$$legacy"]);const v=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"}],["path",{d:"M12 8v4"}],["path",{d:"M12 16h.01"}]];xe(O,$e({name:"shield-alert"},()=>d,{get iconNode(){return v},children:(z,B)=>{var g=ae(),C=c(g);ye(C,$,"default",{}),o(z,g)},$$slots:{default:!0}}))}var kt=n("<!> Valid",1),St=n("<!> Issues Found",1),It=n(`<button class="inline-flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-sm
2
+ text-muted-foreground transition-colors hover:bg-muted/50" data-testid="refresh-btn"><!> Refresh</button>`),Mt=n('<div class="rounded-md bg-severity-error-muted p-4 text-sm text-severity-error-muted-fg" role="alert" data-testid="error"> </div>'),At=n('<div class="h-4 w-24 rounded bg-muted ds-shimmer"></div>'),Nt=n('<div class="h-8 w-16 rounded bg-muted ds-shimmer"></div>'),zt=n("<!> <!>",1),Tt=n('<div class="h-4 w-32 rounded bg-muted ds-shimmer"></div>'),Et=n('<div class="h-4 w-full rounded bg-muted ds-shimmer"></div>'),Rt=n("<!> <!>",1),Wt=n('<div class="space-y-4" data-testid="loading"><div class="grid gap-4 md:grid-cols-3"></div> <!></div>'),Vt=n('<div class="text-center text-muted-foreground py-12" data-testid="empty"><!> <p>No validation data available.</p> <p class="text-sm">Connect to a running daemon to run validation.</p></div>'),jt=n("<!> <!>",1),Ft=n('<div> </div> <p class="text-xs text-muted-foreground">Schema, reference, and trait cycle errors</p>',1),Ot=n("<!> <!>",1),Ut=n("<!> <!>",1),Lt=n('<div> </div> <p class="text-xs text-muted-foreground">Completeness, orphans, and reference warnings</p>',1),Bt=n("<!> <!>",1),Dt=n("<!> <!>",1),Ht=n('<div class="text-2xl font-bold" data-testid="valid-item-count"> </div> <p class="text-xs text-muted-foreground"> </p>',1),Qt=n("<!> <!>",1),qt=n("<!> Alignment",1),Gt=n('<div class="grid gap-4 sm:grid-cols-2 lg:grid-cols-4"><div class="space-y-1" data-testid="spec-coverage"><p class="text-sm text-muted-foreground">Spec Coverage</p> <div class="flex items-baseline gap-2"><span class="text-2xl font-bold"> </span> <span class="text-xs text-muted-foreground"> </span></div> <div class="h-2 w-full rounded-full bg-muted overflow-hidden"><div class="h-full rounded-full transition-all bg-severity-success"></div></div></div> <div class="space-y-1" data-testid="ac-coverage"><p class="text-sm text-muted-foreground">AC Coverage</p> <div class="flex items-baseline gap-2"><span class="text-2xl font-bold"> </span> <span class="text-xs text-muted-foreground"> </span></div> <div class="h-2 w-full rounded-full bg-muted overflow-hidden"><div class="h-full rounded-full transition-all bg-severity-info"></div></div></div> <div class="space-y-1" data-testid="orphaned-tasks"><p class="text-sm text-muted-foreground">Orphaned Tasks</p> <div class="flex items-baseline gap-2"><span> </span> <span class="text-xs text-muted-foreground">tasks without linked specs</span></div></div> <div class="space-y-1" data-testid="orphaned-specs"><p class="text-sm text-muted-foreground">Orphaned Specs</p> <div class="flex items-baseline gap-2"><span> </span> <span class="text-xs text-muted-foreground">specs without linked tasks</span></div></div></div>'),Jt=n("<!> <!>",1),Kt=n('<p class="text-xs text-muted-foreground mt-1 font-mono truncate"> </p>'),Xt=n('<div class="rounded-md border p-3 bg-severity-error-muted border-severity-error-border" data-testid="issue-error"><div class="flex items-start gap-2"><!> <div class="min-w-0"><div class="flex items-center gap-2 flex-wrap"><!> <span class="text-sm font-medium"> </span></div> <!></div></div></div>'),Yt=n('<div data-testid="error-issues"><h3 class="text-sm font-medium text-severity-error mb-2 flex items-center gap-1.5"><!> </h3> <div class="space-y-2"></div></div>'),Zt=n('<p class="text-xs text-muted-foreground mt-1 font-mono truncate"> </p>'),es=n('<div class="rounded-md border p-3 bg-severity-warning-muted border-severity-warning-border" data-testid="issue-warning"><div class="flex items-start gap-2"><!> <div class="min-w-0"><div class="flex items-center gap-2 flex-wrap"><!> <span class="text-sm font-medium"> </span></div> <!></div></div></div>'),ts=n('<div data-testid="warning-issues"><h3 class="text-sm font-medium text-severity-warning-muted-fg mb-2 flex items-center gap-1.5"><!> </h3> <div class="space-y-2"></div></div>'),ss=n('<p class="text-xs text-muted-foreground mt-1 font-mono truncate"> </p>'),rs=n('<div class="rounded-md border p-3 bg-severity-info-muted border-severity-info-border" data-testid="issue-info"><div class="flex items-start gap-2"><!> <div class="min-w-0"><div class="flex items-center gap-2 flex-wrap"><!> <span class="text-sm font-medium"> </span></div> <!></div></div></div>'),as=n('<div data-testid="info-issues"><h3 class="text-sm font-medium text-severity-info mb-2 flex items-center gap-1.5"><!> </h3> <div class="space-y-2"></div></div>'),os=n('<div class="space-y-4" data-testid="issues-list"><h2 class="text-xl font-semibold flex items-center gap-2"><!> </h2> <!> <!> <!></div>'),is=n('<div class="text-center text-muted-foreground"><!> <p class="font-medium">No issues found</p> <p class="text-sm">All validation checks passed.</p></div>'),ds=n('<div class="grid gap-4 md:grid-cols-3" data-testid="summary-cards"><!> <!> <!></div> <!> <!>',1),ns=n('<div class="flex flex-col gap-6" data-testid="validate-page"><div class="flex items-center justify-between"><div class="flex items-center gap-3"><h1 class="text-3xl font-bold">Validate</h1> <!></div> <!></div> <!> <!></div>');function ws(O,$){ct($,!0);let d=fe(null),v=fe(null),z=fe(0),B=fe(0),g=fe(0),C=fe(!0),_e=fe(""),Ae=re(()=>e(d)?e(d).schemaErrors.length+e(d).refErrors.length+e(d).traitCycles.length:0),Le=re(()=>e(d)?e(d).refWarnings.length+e(d).completenessWarnings.length+e(d).orphans.length:0),Be=re(()=>{if(!e(d))return 0;const a=new Set;for(const t of e(d).schemaErrors)t.file&&a.add(t.file);for(const t of e(d).refErrors){const h=t.sourceUlid??t.sourceFile;h&&a.add(h)}for(const t of e(d).traitCycles)t.traitRef&&a.add(t.traitRef);return Math.max(0,e(z)-a.size)}),De=re(()=>!e(v)||e(v).stats.totalSpecs===0?0:Math.round(e(v).stats.specsWithTasks/e(v).stats.totalSpecs*100)),He=re(()=>e(d)?et(e(d).completenessWarnings):0),Qe=re(()=>{if(e(B)===0)return 100;const a=e(B)-e(He);return Math.round(a/e(B)*100)}),we=re(()=>{if(!e(d)&&!e(v))return[];const a=[];if(e(d)){for(const t of e(d).schemaErrors)a.push({severity:"error",category:"Schema",message:t.message,detail:t.file+(t.path?` (${t.path})`:"")});for(const t of e(d).refErrors)a.push({severity:"error",category:"Reference",message:t.message,detail:`${t.ref} in ${t.field}`});for(const t of e(d).traitCycles)a.push({severity:"error",category:"Trait Cycle",message:t.message,detail:t.cycle.join(" → ")});for(const t of e(d).refWarnings)a.push({severity:"warning",category:"Reference",message:t.message,detail:`${t.ref} in ${t.field}`});for(const t of e(d).completenessWarnings)a.push({severity:"warning",category:Ze(t.type),message:t.message,detail:t.details??`${t.itemRef} — ${t.itemTitle}`});for(const t of e(d).orphans)a.push({severity:"info",category:"Orphan",message:`${t.title} (${t.type})`,detail:t.file??t.ulid})}if(e(v))for(const t of e(v).warnings)a.push({severity:t.type==="status_mismatch"?"warning":"info",category:tt(t.type),message:t.message,detail:t.specTitle??t.specUlid});return a}),Ne=re(()=>e(we).filter(a=>a.severity==="error")),ze=re(()=>e(we).filter(a=>a.severity==="warning")),Te=re(()=>e(we).filter(a=>a.severity==="info"));ft(()=>{_t(),pt()&&qe()});async function qe(){try{de(C,!0),de(_e,"");const[a,t,h,X]=await Promise.all([gt(),ht(),$t({limit:999}),xt({limit:999})]);de(d,a,!0),de(v,t,!0),de(z,h.total,!0),de(B,h.items.reduce((Q,k)=>Q+(k.acceptance_criteria_count??0),0),!0),de(g,X.items.filter(Q=>!Q.spec_ref).length,!0)}catch(a){de(_e,a instanceof Error?a.message:"Failed to load validation data",!0)}finally{de(C,!1)}}function Ze(a){return{missing_acceptance_criteria:"Missing AC",missing_description:"Missing Description",status_inconsistency:"Status Inconsistency",missing_test_coverage:"Test Coverage",automation_eligible_no_spec:"No Spec",ac_schema_field_mismatch:"AC Schema Mismatch"}[a]??a}function et(a){let t=0;for(const h of a)if(h.type==="missing_test_coverage"&&h.details){const X=h.details.match(/^Uncovered(?:\s+trait\s+ACs)?:\s*(.+)$/);X&&(t+=X[1].split(",").length)}return t}function tt(a){return{orphaned_spec:"Orphaned Spec",status_mismatch:"Status Mismatch",stale_implementation:"Stale Implementation"}[a]??a}var Ee=ns(),Re=r(Ee),We=r(Re),st=i(r(We),2);{var rt=a=>{var t=ae(),h=c(t);{var X=k=>{Se(k,{class:"bg-severity-success text-severity-success-fg","data-testid":"status-valid",children:(T,q)=>{var U=kt(),L=c(U);Ue(L,{class:"mr-1 h-3 w-3"}),N(),o(T,U)},$$slots:{default:!0}})},Q=k=>{Se(k,{class:"bg-severity-error text-severity-error-fg","data-testid":"status-invalid",children:(T,q)=>{var U=St(),L=c(U);Ct(L,{class:"mr-1 h-3 w-3"}),N(),o(T,U)},$$slots:{default:!0}})};W(h,k=>{e(d).valid&&e(Ae)===0?k(X):k(Q,!1)})}o(a,t)};W(st,a=>{!e(C)&&e(d)&&a(rt)})}s(We);var at=i(We,2);{var ot=a=>{var t=It();t.__click=qe;var h=r(t);yt(h,{class:"h-3.5 w-3.5"}),N(),s(t),o(a,t)};W(at,a=>{e(C)||a(ot)})}s(Re);var Ge=i(Re,2);{var it=a=>{var t=Mt(),h=r(t,!0);s(t),P(()=>m(h,e(_e))),o(a,t)};W(Ge,a=>{e(_e)&&a(it)})}var dt=i(Ge,2);{var nt=a=>{var t=Wt(),h=r(t);Ce(h,20,()=>Array(3),ke,(Q,k)=>{ue(Q,{children:(T,q)=>{var U=zt(),L=c(U);ge(L,{class:"pb-2",children:(G,Pe)=>{var ce=At();o(G,ce)},$$slots:{default:!0}});var be=i(L,2);me(be,{children:(G,Pe)=>{var ce=Nt();o(G,ce)},$$slots:{default:!0}}),o(T,U)},$$slots:{default:!0}})}),s(h);var X=i(h,2);ue(X,{children:(Q,k)=>{var T=Rt(),q=c(T);ge(q,{class:"pb-2",children:(L,be)=>{var G=Tt();o(L,G)},$$slots:{default:!0}});var U=i(q,2);me(U,{class:"space-y-3",children:(L,be)=>{var G=ae(),Pe=c(G);Ce(Pe,16,()=>Array(3),ke,(ce,Je)=>{var Ve=Et();o(ce,Ve)}),o(L,G)},$$slots:{default:!0}}),o(Q,T)},$$slots:{default:!0}}),s(t),o(a,t)},lt=a=>{var t=ae(),h=c(t);{var X=k=>{var T=Vt(),q=r(T);wt(q,{class:"mx-auto h-12 w-12 mb-4 opacity-50"}),N(4),s(T),o(k,T)},Q=k=>{var T=ds(),q=c(T),U=r(q);ue(U,{"data-testid":"error-count-card",children:(M,J)=>{var E=Ot(),A=c(E);ge(A,{class:"flex flex-row items-center justify-between pb-2 space-y-0",children:(w,D)=>{var f=jt(),l=c(f);Me(l,{class:"text-sm font-medium",children:(_,p)=>{N();var x=pe("Errors");o(_,x)},$$slots:{default:!0}});var u=i(l,2);Oe(u,{class:"h-4 w-4 text-severity-error"}),o(w,f)},$$slots:{default:!0}});var V=i(A,2);me(V,{children:(w,D)=>{var f=Ft(),l=c(f);let u;var _=r(l,!0);s(l),N(2),P(()=>{u=Ie(l,1,"text-2xl font-bold",null,u,{"text-severity-error":e(Ae)>0}),m(_,e(Ae))}),o(w,f)},$$slots:{default:!0}}),o(M,E)},$$slots:{default:!0}});var L=i(U,2);ue(L,{"data-testid":"warning-count-card",children:(M,J)=>{var E=Bt(),A=c(E);ge(A,{class:"flex flex-row items-center justify-between pb-2 space-y-0",children:(w,D)=>{var f=Ut(),l=c(f);Me(l,{class:"text-sm font-medium",children:(_,p)=>{N();var x=pe("Warnings");o(_,x)},$$slots:{default:!0}});var u=i(l,2);Fe(u,{class:"h-4 w-4 text-severity-warning"}),o(w,f)},$$slots:{default:!0}});var V=i(A,2);me(V,{children:(w,D)=>{var f=Lt(),l=c(f);let u;var _=r(l,!0);s(l),N(2),P(()=>{u=Ie(l,1,"text-2xl font-bold",null,u,{"text-severity-warning":e(Le)>0}),m(_,e(Le))}),o(w,f)},$$slots:{default:!0}}),o(M,E)},$$slots:{default:!0}});var be=i(L,2);ue(be,{"data-testid":"valid-count-card",children:(M,J)=>{var E=Qt(),A=c(E);ge(A,{class:"flex flex-row items-center justify-between pb-2 space-y-0",children:(w,D)=>{var f=Dt(),l=c(f);Me(l,{class:"text-sm font-medium",children:(_,p)=>{N();var x=pe("Valid Items");o(_,x)},$$slots:{default:!0}});var u=i(l,2);Ue(u,{class:"h-4 w-4 text-severity-success"}),o(w,f)},$$slots:{default:!0}});var V=i(A,2);me(V,{children:(w,D)=>{var f=Ht(),l=c(f),u=r(l,!0);s(l);var _=i(l,2),p=r(_);s(_),P(()=>{m(u,e(Be)),m(p,`${e(Be)??""} of ${e(z)??""} items passing validation`)}),o(w,f)},$$slots:{default:!0}}),o(M,E)},$$slots:{default:!0}}),s(q);var G=i(q,2);{var Pe=M=>{ue(M,{"data-testid":"alignment-section",children:(J,E)=>{var A=Jt(),V=c(A);ge(V,{children:(D,f)=>{Me(D,{class:"flex items-center gap-2",children:(l,u)=>{var _=qt(),p=c(_);Pt(p,{class:"h-5 w-5"}),N(),o(l,_)},$$slots:{default:!0}})},$$slots:{default:!0}});var w=i(V,2);me(w,{children:(D,f)=>{var l=Gt(),u=r(l),_=i(r(u),2),p=r(_),x=r(p);s(p);var j=i(p,2),Y=r(j);s(j),s(_);var ne=i(_,2),Z=r(ne);s(ne),s(u);var oe=i(u,2),b=i(r(oe),2),R=r(b),ee=r(R);s(R);var K=i(R,2),te=r(K);s(K),s(b);var F=i(b,2),se=r(F);s(F),s(oe);var H=i(oe,2),le=i(r(H),2),ie=r(le);let ve;var y=r(ie,!0);s(ie),N(2),s(le),s(H);var S=i(H,2),I=i(r(S),2),je=r(I);let Ke;var vt=r(je,!0);s(je),N(2),s(I),s(S),s(l),P(()=>{m(x,`${e(De)??""}%`),m(Y,`${e(v).stats.specsWithTasks??""}/${e(v).stats.totalSpecs??""} specs with tasks`),Xe(Z,`width: ${e(De)??""}%`),m(ee,`${e(Qe)??""}%`),m(te,`${e(B)-e(He)}/${e(B)??""} ACs with tests`),Xe(se,`width: ${e(Qe)??""}%`),ve=Ie(ie,1,"text-2xl font-bold",null,ve,{"text-severity-warning":e(g)>0}),m(y,e(g)),Ke=Ie(je,1,"text-2xl font-bold",null,Ke,{"text-severity-warning":e(v).stats.orphanedSpecs>0}),m(vt,e(v).stats.orphanedSpecs)}),o(D,l)},$$slots:{default:!0}}),o(J,A)},$$slots:{default:!0}})};W(G,M=>{e(v)&&M(Pe)})}var ce=i(G,2);{var Je=M=>{var J=os(),E=r(J),A=r(E);bt(A,{class:"h-5 w-5"});var V=i(A);s(E);var w=i(E,2);{var D=p=>{var x=Yt(),j=r(x),Y=r(j);Oe(Y,{class:"h-4 w-4"});var ne=i(Y);s(j);var Z=i(j,2);Ce(Z,21,()=>e(Ne),ke,(oe,b)=>{var R=Xt(),ee=r(R),K=r(ee);Oe(K,{class:"h-4 w-4 mt-0.5 text-severity-error shrink-0"});var te=i(K,2),F=r(te),se=r(F);Se(se,{variant:"outline",class:"text-xs",children:(y,S)=>{N();var I=pe();P(()=>m(I,e(b).category)),o(y,I)},$$slots:{default:!0}});var H=i(se,2),le=r(H,!0);s(H),s(F);var ie=i(F,2);{var ve=y=>{var S=Kt(),I=r(S,!0);s(S),P(()=>m(I,e(b).detail)),o(y,S)};W(ie,y=>{e(b).detail&&y(ve)})}s(te),s(ee),s(R),P(()=>m(le,e(b).message)),o(oe,R)}),s(Z),s(x),P(()=>m(ne,` Errors (${e(Ne).length??""})`)),o(p,x)};W(w,p=>{e(Ne).length>0&&p(D)})}var f=i(w,2);{var l=p=>{var x=ts(),j=r(x),Y=r(j);Fe(Y,{class:"h-4 w-4"});var ne=i(Y);s(j);var Z=i(j,2);Ce(Z,21,()=>e(ze),ke,(oe,b)=>{var R=es(),ee=r(R),K=r(ee);Fe(K,{class:"h-4 w-4 mt-0.5 text-severity-warning-muted-fg shrink-0"});var te=i(K,2),F=r(te),se=r(F);Se(se,{variant:"outline",class:"text-xs",children:(y,S)=>{N();var I=pe();P(()=>m(I,e(b).category)),o(y,I)},$$slots:{default:!0}});var H=i(se,2),le=r(H,!0);s(H),s(F);var ie=i(F,2);{var ve=y=>{var S=Zt(),I=r(S,!0);s(S),P(()=>m(I,e(b).detail)),o(y,S)};W(ie,y=>{e(b).detail&&y(ve)})}s(te),s(ee),s(R),P(()=>m(le,e(b).message)),o(oe,R)}),s(Z),s(x),P(()=>m(ne,` Warnings (${e(ze).length??""})`)),o(p,x)};W(f,p=>{e(ze).length>0&&p(l)})}var u=i(f,2);{var _=p=>{var x=as(),j=r(x),Y=r(j);Ye(Y,{class:"h-4 w-4"});var ne=i(Y);s(j);var Z=i(j,2);Ce(Z,21,()=>e(Te),ke,(oe,b)=>{var R=rs(),ee=r(R),K=r(ee);Ye(K,{class:"h-4 w-4 mt-0.5 text-severity-info shrink-0"});var te=i(K,2),F=r(te),se=r(F);Se(se,{variant:"outline",class:"text-xs",children:(y,S)=>{N();var I=pe();P(()=>m(I,e(b).category)),o(y,I)},$$slots:{default:!0}});var H=i(se,2),le=r(H,!0);s(H),s(F);var ie=i(F,2);{var ve=y=>{var S=ss(),I=r(S,!0);s(S),P(()=>m(I,e(b).detail)),o(y,S)};W(ie,y=>{e(b).detail&&y(ve)})}s(te),s(ee),s(R),P(()=>m(le,e(b).message)),o(oe,R)}),s(Z),s(x),P(()=>m(ne,` Info (${e(Te).length??""})`)),o(p,x)};W(u,p=>{e(Te).length>0&&p(_)})}s(J),P(()=>m(V,` Issues (${e(we).length??""})`)),o(M,J)},Ve=M=>{var J=ae(),E=c(J);{var A=V=>{ue(V,{"data-testid":"no-issues",children:(w,D)=>{me(w,{class:"py-8",children:(f,l)=>{var u=is(),_=r(u);Ue(_,{class:"mx-auto h-12 w-12 mb-4 text-severity-success opacity-75"}),N(4),s(u),o(f,u)},$$slots:{default:!0}})},$$slots:{default:!0}})};W(E,V=>{e(_e)||V(A)},!0)}o(M,J)};W(ce,M=>{e(we).length>0?M(Je):M(Ve,!1)})}o(k,T)};W(h,k=>{!e(d)&&!e(v)&&!e(_e)?k(X):k(Q,!1)},!0)}o(a,t)};W(dt,a=>{e(C)?a(nt):a(lt,!1)})}s(Ee),o(O,Ee),ut()}mt(["click"]);export{ws as component};
@@ -0,0 +1 @@
1
+ import{c as D,a as e,f as o,t as pt}from"../chunks/DvA-KON-.js";import{o as Ht,a as Rt}from"../chunks/CwELQvbx.js";import{p as Y,f as _,i as ot,a as q,b as mt,d as Ut,u as Yt,e as L,s as d,c as i,g as t,r,t as b,n as O}from"../chunks/D3vxvonu.js";import{s as k}from"../chunks/D9QNBZM2.js";import{s as it,r as lt,i as f}from"../chunks/BysXJlZb.js";import{k as nt,g as qt,i as Gt,S as Jt,c as _t,e as rt,h as xt,B as st}from"../chunks/DQA8NZIH.js";import{s as Kt,o as Qt,a as Xt,u as te}from"../chunks/BP352uRn.js";import{C as ee}from"../chunks/CGtqifKp.js";import{C as ae}from"../chunks/DjG7s6hm.js";import{C as re}from"../chunks/BEOQc37C.js";import{B as se}from"../chunks/BkOJ8DkV.js";import{I as dt}from"../chunks/B5wTVqxm.js";import{Z as oe}from"../chunks/ExCq5swK.js";import{P as ie}from"../chunks/BwMO4RrG.js";import{C as le}from"../chunks/BpuwufMc.js";const ne=!1,Qe=Object.freeze(Object.defineProperty({__proto__:null,ssr:ne},Symbol.toStringTag,{value:"Module"}));function de(P,l){Y(l,!0);let m=lt(l,["$$slots","$$events","$$legacy"]);const x=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2"}]];dt(P,it({name:"workflow"},()=>m,{get iconNode(){return x},children:(g,T)=>{var c=D(),y=_(c);nt(y,()=>l.children??ot),e(g,c)},$$slots:{default:!0}})),q()}function ce(P,l){Y(l,!0);let m=lt(l,["$$slots","$$events","$$legacy"]);const x=[["path",{d:"m17 2 4 4-4 4"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14"}],["path",{d:"m7 22-4-4 4-4"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3"}]];dt(P,it({name:"repeat"},()=>m,{get iconNode(){return x},children:(g,T)=>{var c=D(),y=_(c);nt(y,()=>l.children??ot),e(g,c)},$$slots:{default:!0}})),q()}function ve(P,l){Y(l,!0);let m=lt(l,["$$slots","$$events","$$legacy"]);const x=[["circle",{cx:"12",cy:"12",r:"10"}],["circle",{cx:"12",cy:"12",r:"1"}]];dt(P,it({name:"circle-dot"},()=>m,{get iconNode(){return x},children:(g,T)=>{var c=D(),y=_(c);nt(y,()=>l.children??ot),e(g,c)},$$slots:{default:!0}})),q()}function fe(P,l){Y(l,!0);let m=lt(l,["$$slots","$$events","$$legacy"]);const x=[["circle",{cx:"12",cy:"12",r:"10"}]];dt(P,it({name:"circle"},()=>m,{get iconNode(){return x},children:(g,T)=>{var c=D(),y=_(c);nt(y,()=>l.children??ot),e(g,c)},$$slots:{default:!0}})),q()}function ue(P,l){Y(l,!0);let m=lt(l,["$$slots","$$events","$$legacy"]);const x=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"}]];dt(P,it({name:"copy"},()=>m,{get iconNode(){return x},children:(g,T)=>{var c=D(),y=_(c);nt(y,()=>l.children??ot),e(g,c)},$$slots:{default:!0}})),q()}var pe=o('<p class="text-sm text-muted-foreground" data-testid="workflows-summary"> </p>'),me=o('<div class="bg-destructive/10 text-destructive p-4 rounded-lg text-sm" data-testid="workflows-error" role="alert"> </div>'),_e=o('<div class="h-36 rounded-lg bg-muted ds-shimmer"></div>'),xe=o('<div class="flex flex-col gap-3" data-testid="workflows-loading"></div>'),ge=o('Define workflows in <code class="text-xs bg-muted px-1 py-0.5 rounded">kynetic.meta.yaml</code> to see them here.',1),he=o('<div class="flex flex-col items-center justify-center py-16" data-testid="workflows-empty"><!> <h2 class="text-lg font-medium text-muted-foreground mb-1">No workflows defined</h2> <p class="text-sm text-muted-foreground"><!></p></div>'),$e=o("<!> ",1),ye=o("<!> Loop",1),we=o('<p class="text-sm text-muted-foreground whitespace-pre-line" data-testid="workflow-description"> </p>'),be=o("<!> Copied!",1),ke=o("<!> Start",1),Pe=o('<div class="flex items-start justify-between gap-4"><div class="flex-1 min-w-0"><div class="flex items-center gap-2 mb-1 flex-wrap"><h3 class="text-sm font-semibold" data-testid="workflow-id"> </h3> <!> <!> <!> <!></div> <!></div> <!></div>'),Ce=o('<span class="text-xs text-destructive/80 ml-1"> </span>'),Ne=o('<li class="text-xs text-muted-foreground list-disc"> </li>'),Se=o('<ul class="mt-1 ml-4 space-y-0.5"></ul>'),ze=o('<li class="flex items-start gap-2 text-sm" data-testid="workflow-step"><span class="flex items-center gap-1.5 shrink-0 mt-0.5"><span class="text-xs text-muted-foreground font-mono w-4 text-right"></span> <!></span> <span class="min-w-0"><span class="text-muted-foreground"> </span> <!> <!></span></li>'),Me=o('<div class="flex flex-col gap-1.5" data-testid="workflow-steps"><h4 class="text-xs font-medium text-muted-foreground uppercase tracking-wider"> </h4> <ol class="flex flex-col gap-1"></ol></div>'),je=o('<p class="text-xs text-muted-foreground italic">No steps defined</p>'),Te=o("<span>&middot;</span> <!>",1),Be=o('<!> <div class="flex items-center gap-2 text-xs text-muted-foreground mt-3 pt-3 border-t"><code class="bg-muted px-1 py-0.5 rounded" data-testid="workflow-ulid"> </code> <!></div>',1),De=o("<!> <!>",1),Ee=o('<div class="flex flex-col gap-3" data-testid="workflows-list"></div>'),Ie=o('<div class="flex flex-col gap-4 p-6"><div class="flex items-center justify-between"><div><h1 class="text-2xl font-bold">Workflows</h1> <!></div></div> <!> <!></div>');function Xe(P,l){Y(l,!0);let m=mt(Ut([])),x=mt(!0),g=mt(""),T=mt(null);const c={action:"text-severity-success",check:"text-severity-info",decision:"text-severity-warning"};Ht(()=>{_t()||(Kt(["files:updates"]),Qt("files:updates",Nt))}),Rt(()=>{_t()||(Xt("files:updates",Nt),te(["files:updates"]))}),Yt(()=>{qt(),Gt()&&y()});async function y(){try{L(x,!0),L(g,"");const s=await Jt();L(m,s.items,!0)}catch(s){L(g,s instanceof Error?s.message:"Failed to load workflows",!0)}finally{L(x,!1)}}function Nt(){y()}async function Bt(s){const u=`kspec workflow start @${s}`;try{await navigator.clipboard.writeText(u),L(T,s,!0),setTimeout(()=>{L(T,null)},2e3)}catch{}}var gt=Ie(),ht=i(gt),St=i(ht),Dt=d(i(St),2);{var Et=s=>{var u=pe(),E=i(u);r(u),b(()=>k(E,`${t(m).length??""} workflow${t(m).length===1?"":"s"} defined`)),e(s,u)};f(Dt,s=>{t(x)||s(Et)})}r(St),r(ht);var zt=d(ht,2);{var It=s=>{var u=me(),E=i(u,!0);r(u),b(()=>k(E,t(g))),e(s,u)};f(zt,s=>{t(g)&&s(It)})}var Wt=d(zt,2);{var At=s=>{var u=xe();rt(u,20,()=>Array(3),xt,(E,Mt)=>{var $t=_e();e(E,$t)}),r(u),e(s,u)},Lt=s=>{var u=D(),E=_(u);{var Mt=V=>{var I=he(),Z=i(I);de(Z,{class:"size-12 text-muted-foreground/30 mb-4"});var n=d(Z,4),yt=i(n);{var jt=z=>{var G=pt("No workflow data available in the snapshot.");e(z,G)},ct=z=>{var G=ge();O(2),e(z,G)};f(yt,z=>{_t()?z(jt):z(ct,!1)})}r(n),r(I),e(V,I)},$t=V=>{var I=Ee();rt(I,21,()=>t(m),Z=>Z._ulid,(Z,n)=>{ee(Z,{class:"transition-all duration-200 hover:shadow-md","data-testid":"workflow-card",children:(yt,jt)=>{var ct=De(),z=_(ct);re(z,{class:"pb-3",children:(wt,Ot)=>{var F=Pe(),H=i(F),J=i(H),K=i(J),vt=i(K,!0);r(K);var R=d(K,2);st(R,{variant:"secondary",class:"text-xs gap-1","data-testid":"workflow-trigger",children:(a,p)=>{var w=$e(),v=_(w);oe(v,{class:"h-3 w-3"});var A=d(v);b(()=>k(A,` ${t(n).trigger??""}`)),e(a,w)},$$slots:{default:!0}});var ft=d(R,2);{var bt=a=>{st(a,{variant:"outline",class:"text-xs gap-1","data-testid":"workflow-loop",children:(p,w)=>{var v=ye(),A=_(v);ce(A,{class:"h-3 w-3"}),O(),e(p,v)},$$slots:{default:!0}})};f(ft,a=>{t(n).mode==="loop"&&a(bt)})}var ut=d(ft,2);{var h=a=>{st(a,{variant:"outline",class:"text-xs gap-1","data-testid":"workflow-variant",children:(p,w)=>{O();var v=pt();b(()=>k(v,`variant of @${t(n).based_on??""}`)),e(p,v)},$$slots:{default:!0}})};f(ut,a=>{t(n).based_on&&a(h)})}var N=d(ut,2);{var W=a=>{st(a,{class:"text-xs bg-status-blocked text-status-blocked-fg",children:(p,w)=>{O();var v=pt("Strict");e(p,v)},$$slots:{default:!0}})};f(N,a=>{t(n).enforcement==="strict"&&a(W)})}r(J);var Q=d(J,2);{var U=a=>{var p=we(),w=i(p,!0);r(p),b(v=>k(w,v),[()=>t(n).description.trim()]),e(a,p)};f(Q,a=>{t(n).description&&a(U)})}r(H);var X=d(H,2);{var C=a=>{se(a,{variant:"outline",size:"sm",class:"h-8 gap-1.5 text-xs shrink-0","data-testid":"workflow-start-btn",onclick:()=>Bt(t(n).id),children:(p,w)=>{var v=D(),A=_(v);{var kt=M=>{var j=be(),tt=_(j);ue(tt,{class:"size-3.5"}),O(),e(M,j)},Pt=M=>{var j=ke(),tt=_(j);ie(tt,{class:"size-3.5"}),O(),e(M,j)};f(A,M=>{t(T)===t(n).id?M(kt):M(Pt,!1)})}e(p,v)},$$slots:{default:!0}})};f(X,a=>{_t()||a(C)})}r(F),b(()=>k(vt,t(n).id)),e(wt,F)},$$slots:{default:!0}});var G=d(z,2);ae(G,{class:"pt-0",children:(wt,Ot)=>{var F=Be(),H=_(F);{var J=h=>{var N=Me(),W=i(N),Q=i(W);r(W);var U=d(W,2);rt(U,21,()=>t(n).steps,xt,(X,C,a)=>{var p=ze(),w=i(p),v=i(w);v.textContent=`${a+1}.`;var A=d(v,2);{var kt=$=>{le($,{get class(){return`size-3.5 ${c.check}`}})},Pt=$=>{var S=D(),et=_(S);{var Ct=B=>{ve(B,{get class(){return`size-3.5 ${c.decision}`}})},at=B=>{fe(B,{get class(){return`size-3.5 ${c.action}`}})};f(et,B=>{t(C).type==="decision"?B(Ct):B(at,!1)},!0)}e($,S)};f(A,$=>{t(C).type==="check"?$(kt):$(Pt,!1)})}r(w);var M=d(w,2),j=i(M),tt=i(j,!0);r(j);var Tt=d(j,2);{var Vt=$=>{var S=Ce(),et=i(S);r(S),b(()=>k(et,`(on fail: ${t(C).on_fail??""})`)),e($,S)};f(Tt,$=>{t(C).on_fail&&$(Vt)})}var Zt=d(Tt,2);{var Ft=$=>{var S=Se();rt(S,21,()=>t(C).options,xt,(et,Ct)=>{var at=Ne(),B=i(at,!0);r(at),b(()=>k(B,t(Ct))),e(et,at)}),r(S),e($,S)};f(Zt,$=>{t(C).options&&t(C).options.length>0&&$(Ft)})}r(M),r(p),b(()=>k(tt,t(C).content)),e(X,p)}),r(U),r(N),b(()=>k(Q,`Steps (${t(n).steps.length??""})`)),e(h,N)},K=h=>{var N=je();e(h,N)};f(H,h=>{t(n).steps.length>0?h(J):h(K,!1)})}var vt=d(H,2),R=i(vt),ft=i(R,!0);r(R);var bt=d(R,2);{var ut=h=>{var N=Te(),W=d(_(N),2);rt(W,17,()=>t(n).tags,xt,(Q,U)=>{st(Q,{variant:"secondary",class:"text-xs",children:(X,C)=>{O();var a=pt();b(()=>k(a,t(U))),e(X,a)},$$slots:{default:!0}})}),e(h,N)};f(bt,h=>{t(n).tags&&t(n).tags.length>0&&h(ut)})}r(vt),b(h=>k(ft,h),[()=>t(n)._ulid.slice(0,8)]),e(wt,F)},$$slots:{default:!0}}),e(yt,ct)},$$slots:{default:!0}})}),r(I),e(V,I)};f(E,V=>{t(m).length===0?V(Mt):V($t,!1)},!0)}e(s,u)};f(Wt,s=>{t(x)?s(At):s(Lt,!1)})}r(gt),e(P,gt),q()}export{Xe as component,Qe as universal};
@@ -0,0 +1 @@
1
+ import{c as Ce,a as o,f,t as $e}from"../chunks/DvA-KON-.js";import{o as rt,a as ot}from"../chunks/CwELQvbx.js";import{p as Se,f as q,i as De,a as Ae,b as T,d as ye,u as nt,e as k,s as a,c as s,g as e,r as t,t as h,h as K,n as le}from"../chunks/D3vxvonu.js";import{d as it,s as S}from"../chunks/D9QNBZM2.js";import{s as We,r as je,i as N}from"../chunks/BysXJlZb.js";import{k as Ve,g as dt,i as lt,o as ct,f as vt,y as ut,z as ft,A as Te,c as we,e as Q,h as ce,p as pt,q as X,B as Ie}from"../chunks/DQA8NZIH.js";import{c as mt}from"../chunks/DAx07bEQ.js";import{g as _t}from"../chunks/B8a0xDxR.js";import{b as Y}from"../chunks/D7LTux4W.js";import{T as gt,c as bt,p as ht,B as xt}from"../chunks/DjcCz-PU.js";import{C as Me}from"../chunks/CGtqifKp.js";import{C as Be}from"../chunks/DjG7s6hm.js";import{C as kt}from"../chunks/BEOQc37C.js";import{C as $t}from"../chunks/DhQhksaB.js";import{S as Z}from"../chunks/DAMmvwn4.js";import{R as yt}from"../chunks/Cncwi6fQ.js";import{s as wt,o as Ee,a as Ne,u as Ct}from"../chunks/BP352uRn.js";import{A as Ue}from"../chunks/DBYE9jOd.js";import{B as St}from"../chunks/iEtR5cV6.js";import{E as At}from"../chunks/B6VSmczZ.js";import{T as Pt}from"../chunks/CrCIbn0C.js";import{I as zt}from"../chunks/BJ0JX3ea.js";import{I as Fe}from"../chunks/B5wTVqxm.js";function Rt(ee,A){Se(A,!0);let U=je(A,["$$slots","$$events","$$legacy"]);const I=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"}],["circle",{cx:"12",cy:"12",r:"3"}]];Fe(ee,We({name:"eye"},()=>U,{get iconNode(){return I},children:(L,M)=>{var B=Ce(),P=q(B);Ve(P,()=>A.children??De),o(L,B)},$$slots:{default:!0}})),Ae()}function Tt(ee,A){Se(A,!0);let U=je(A,["$$slots","$$events","$$legacy"]);const I=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"}],["path",{d:"M12 8v4"}],["path",{d:"M12 16h.01"}]];Fe(ee,We({name:"shield-alert"},()=>U,{get iconNode(){return I},children:(L,M)=>{var B=Ce(),P=q(B);Ve(P,()=>A.children??De),o(L,B)},$$slots:{default:!0}})),Ae()}var It=f('<div class="flex items-center gap-3 rounded-lg border border-destructive/50 bg-destructive/10 p-4" role="alert" data-testid="dashboard-error"><!> <div><p class="text-sm font-medium text-destructive">Failed to load dashboard</p> <p class="text-xs text-muted-foreground"> </p></div> <button class="ml-auto text-xs text-muted-foreground underline hover:text-foreground">Retry</button></div>'),Mt=f('<div data-testid="dashboard-skeleton"><div class="mb-6"><!> <div class="flex gap-3"><!></div></div> <div class="mb-6"><!> <div class="grid gap-4 md:grid-cols-4 lg:grid-cols-7"></div></div> <div><!> <div class="grid gap-3 md:grid-cols-2 lg:grid-cols-4"></div></div></div>'),Bt=f('<div class="truncate mb-1"><!></div>'),Et=f('<div class="truncate"> </div>'),Nt=f('<div class="mt-1.5 rounded bg-muted/50 p-1.5 font-mono text-[10px] leading-tight text-muted-foreground overflow-hidden max-h-10" aria-live="polite" data-testid="fleet-output"></div>'),Ut=f('<div class="mt-1.5 flex items-center gap-1 text-[10px] text-muted-foreground/50" aria-live="polite" data-testid="fleet-output-empty"><!> <span>Awaiting output...</span></div>'),Dt=f('<div class="flex-shrink-0 w-72 rounded-lg border bg-card p-3 ds-breathe" data-testid="fleet-card"><div class="flex items-center gap-2 mb-1.5"><!> <span class="text-xs font-medium truncate"> </span></div> <!> <div class="flex items-center justify-between text-[10px] text-muted-foreground"><div class="flex items-center gap-1.5"><span class="relative flex size-2"><span class="absolute inline-flex h-full w-full rounded-full bg-status-in-progress opacity-75 ds-breathe"></span> <span class="relative inline-flex size-2 rounded-full bg-status-in-progress"></span></span> <span> </span></div> <a class="inline-flex items-center gap-1 text-primary hover:underline">Stream <!></a></div> <!></div>'),Wt=f('<div class="mb-4"><div class="flex items-center gap-2 mb-2"><!> <h2 class="text-sm font-medium">Active Fleet</h2> <!></div> <div class="flex gap-3 overflow-x-auto pb-2" data-testid="active-fleet-row"></div></div>'),jt=f('<div class="flex items-center gap-2 rounded-lg border border-dashed p-4 text-sm text-muted-foreground" data-testid="no-active-work"><!> <span>No agents currently running</span></div>'),Vt=f("<!> <span></span>",1),Ft=f('<div class="text-2xl font-bold tabular-nums"> </div>'),Ot=f("<!> <!>",1),qt=f('<button class="text-left"><!></button>'),Lt=f('<div class="flex items-center gap-2 rounded-lg border border-dashed p-4 text-sm text-muted-foreground" data-testid="no-attention-needed"><span>Nothing needs attention right now</span></div>'),Gt=f('<div class="rounded-md bg-muted p-2"><!></div> <div><p class="text-2xl font-bold tabular-nums"> </p> <p class="text-xs text-muted-foreground"> </p></div>',1),Ht=f('<a class="block"><!></a>'),Jt=f('<div class="grid gap-3 md:grid-cols-2 lg:grid-cols-4" data-testid="attention-cards"></div>'),Kt=f('<section data-testid="active-work-section"><!></section> <section data-testid="status-summary-section"><h2 class="mb-3 text-sm font-medium text-muted-foreground">Status Summary</h2> <div class="grid gap-3 md:grid-cols-4 lg:grid-cols-7" data-testid="dashboard-counts"></div></section> <section data-testid="needs-attention-section"><div class="mb-3 flex items-center gap-2"><h2 class="text-sm font-medium text-muted-foreground">Needs Attention</h2> <!></div> <!></section>',1),Qt=f('<div class="flex flex-col gap-6 p-6" data-testid="dashboard"><h1 class="text-2xl font-bold">Dashboard</h1> <!> <!></div>');function xs(ee,A){Se(A,!0);let U=T(!0),I=T(null),L=T(ye({ready:0,in_progress:0,needs_work:0,pending_review:0,blocked:0,completed:0,cancelled:0})),M=T(null),B=T(ye({})),P=ye({}),Oe=K(()=>e(M)?.dispatch_enabled&&(e(M)?.active_invocations?.length??0)>0),ue=T(0),fe=T(0),pe=T(0),me=T(0),_e=K(()=>e(ue)+e(fe)+e(pe)+e(me));const qe=[{key:"ready",label:"Ready",dotClass:"bg-status-pending",filterStatus:"pending"},{key:"in_progress",label:"In Progress",dotClass:"bg-status-in-progress",filterStatus:"in_progress"},{key:"needs_work",label:"Needs Work",dotClass:"bg-status-needs-work",filterStatus:"needs_work"},{key:"pending_review",label:"Review",dotClass:"bg-status-pending-review",filterStatus:"pending_review"},{key:"blocked",label:"Blocked",dotClass:"bg-status-blocked",filterStatus:"blocked"},{key:"completed",label:"Completed",dotClass:"bg-status-completed",filterStatus:"completed"},{key:"cancelled",label:"Cancelled",dotClass:"bg-status-cancelled",filterStatus:"cancelled"}],Le=K(()=>[{key:"inbox",label:"Untriaged inbox",count:e(ue),icon:zt,href:`${Y}/inbox`,colorClass:"text-status-pending-review"},{key:"observations",label:"Unresolved observations",count:e(fe),icon:Rt,href:`${Y}/observations`,colorClass:"text-status-in-progress"},{key:"validation",label:"Validation warnings",count:e(pe),icon:Tt,href:`${Y}/validate`,colorClass:"text-status-needs-work"},{key:"blocked",label:"Blocked tasks",count:e(me),icon:xt,href:`${Y}/tasks?status=blocked`,colorClass:"text-status-blocked"}]);function Ge(r){const i=Math.floor(r/1e3),d=Math.floor(i/60),n=Math.floor(d/60);return n>0?`${n}h ${d%60}m`:d>0?`${d}m ${i%60}s`:`${i}s`}async function ge(){k(U,!0),k(I,null);try{const[r,i,d,n,y]=await Promise.all([ct({limit:1e3}),vt({limit:0}),ut({resolved:!1}),ft().catch(()=>null),we()?Promise.resolve(null):Te().catch(()=>null)]),E=r.items,c={ready:0,in_progress:0,needs_work:0,pending_review:0,blocked:0,completed:0,cancelled:0},D=new Set(E.filter(v=>v.status==="completed").flatMap(v=>[v._ulid,...v.slugs||[]])),z={};for(const v of E){if(v.slugs?.length)for(const W of v.slugs)z[`@${W}`]=v.title;switch(z[`@${v._ulid}`]=v.title,v.status){case"completed":c.completed++;break;case"in_progress":c.in_progress++;break;case"pending_review":c.pending_review++;break;case"blocked":c.blocked++;break;case"needs_work":c.needs_work++;break;case"cancelled":c.cancelled++;break;case"pending":{(v.depends_on||[]).some(R=>{const se=R.startsWith("@")?R.slice(1):R;return!D.has(se)})||c.ready++;break}}}k(L,c,!0),k(B,z,!0),k(me,c.blocked,!0),k(ue,i.total,!0),k(fe,d.total,!0),n&&k(pe,n.refWarnings.length+n.completenessWarnings.length+n.schemaErrors.length+n.refErrors.length),y&&k(M,y,!0)}catch(r){k(I,r instanceof Error?r.message:"Failed to load dashboard data",!0),console.error("Dashboard load error:",r)}finally{k(U,!1)}}function He(r){_t(`${Y}/tasks?status=${r}`)}function Pe(){ge()}function ze(r){if(r.event==="agent_text_chunk"&&r.data?.session_id&&r.data?.text){const i=r.data.session_id,d=r.data.text,n=P[i]??bt();P[i]=ht(n,d);return}Te().then(i=>{k(M,i,!0);const d=new Set(i.active_invocations.map(n=>n.session_id));for(const n of Object.keys(P))d.has(n)||delete P[n]}).catch(()=>{})}rt(()=>{we()||(wt(["tasks","agents"]),Ee("tasks",Pe),Ee("agents",ze))}),ot(()=>{we()||(Ne("tasks",Pe),Ne("agents",ze),Ct(["tasks","agents"]))}),nt(()=>{dt(),lt()&&ge()});var be=Qt(),Re=a(s(be),2);{var Je=r=>{var i=It(),d=s(i);gt(d,{class:"size-5 text-destructive"});var n=a(d,2),y=a(s(n),2),E=s(y,!0);t(y),t(n);var c=a(n,2);c.__click=ge,t(i),h(()=>S(E,e(I))),o(r,i)};N(Re,r=>{e(I)&&r(Je)})}var Ke=a(Re,2);{var Qe=r=>{var i=Mt(),d=s(i),n=s(d);Z(n,{class:"mb-2 h-5 w-32 ds-shimmer"});var y=a(n,2),E=s(y);Z(E,{class:"h-20 w-72 ds-shimmer"}),t(y),t(d);var c=a(d,2),D=s(c);Z(D,{class:"mb-3 h-5 w-40 ds-shimmer"});var z=a(D,2);Q(z,20,()=>Array(7),ce,(R,se)=>{Z(R,{class:"h-24 ds-shimmer"})}),t(z),t(c);var v=a(c,2),W=s(v);Z(W,{class:"mb-3 h-5 w-40 ds-shimmer"});var te=a(W,2);Q(te,20,()=>Array(4),ce,(R,se)=>{Z(R,{class:"h-20 ds-shimmer"})}),t(te),t(v),t(i),o(r,i)},Xe=r=>{var i=Kt(),d=q(i),n=s(d);{var y=u=>{var l=Wt(),_=s(l),m=s(_);Ue(m,{class:"size-4 text-status-in-progress"});var G=a(m,4);Ie(G,{variant:"secondary",class:"text-[10px]",children:(w,p)=>{le();var g=$e();h(()=>S(g,`${e(M)?.active_invocations.length??""} running`)),o(w,g)},$$slots:{default:!0}}),t(_);var ae=a(_,2);Q(ae,21,()=>e(M)?.active_invocations??[],w=>w.session_id,(w,p)=>{const g=K(()=>e(p).task_ref?e(B)[e(p).task_ref]:void 0),j=K(()=>P[e(p).session_id]),H=K(()=>e(j)?.lines??[]);var $=Dt(),C=s($),re=s(C);St(re,{class:"size-4 text-muted-foreground"});var V=a(re,2),J=s(V,!0);t(V),t(C);var F=a(C,2);{var ve=x=>{var b=Bt(),de=s(b);yt(de,{get ref(){return e(p).task_ref},type:"task",get title(){return e(g)},class:"text-xs"}),t(b),o(x,b)};N(F,x=>{e(p).task_ref&&x(ve)})}var O=a(F,2),oe=s(O),ne=a(s(oe),2),he=s(ne,!0);t(ne),t(oe);var ie=a(oe,2),xe=a(s(ie));At(xe,{class:"size-3"}),t(ie),t(O);var Ze=a(O,2);{var et=x=>{var b=Nt();Q(b,21,()=>e(H).slice(-2),ce,(de,st)=>{var ke=Et(),at=s(ke,!0);t(ke),h(()=>S(at,e(st))),o(de,ke)}),t(b),h(()=>X(b,"aria-label",`Agent output for ${e(g)??e(p).agent_id??""}`)),o(x,b)},tt=x=>{var b=Ut(),de=s(b);Pt(de,{class:"size-3"}),le(2),t(b),h(()=>X(b,"aria-label",`Agent output for ${e(g)??e(p).agent_id??""}`)),o(x,b)};N(Ze,x=>{e(H).length>0?x(et):x(tt,!1)})}t($),h(x=>{S(J,e(p).agent_id),S(he,x),X(ie,"href",`${Y??""}/sessions/${e(p).session_id??""}`)},[()=>Ge(e(p).elapsed_ms)]),o(w,$)}),t(ae),t(l),o(u,l)},E=u=>{var l=jt(),_=s(l);Ue(_,{class:"size-4"}),le(2),t(l),o(u,l)};N(n,u=>{e(Oe)?u(y):u(E,!1)})}t(d);var c=a(d,2),D=a(s(c),2);Q(D,21,()=>qe,ce,(u,l)=>{var _=qt();_.__click=()=>He(e(l).filterStatus);var m=s(_);Me(m,{class:"transition-colors hover:bg-muted/50 cursor-pointer h-full",children:(G,ae)=>{var w=Ot(),p=q(w);kt(p,{class:"flex flex-row items-center justify-between pb-1 pt-3 px-3 space-y-0",children:(j,H)=>{var $=Vt(),C=q($);$t(C,{class:"text-xs font-medium text-muted-foreground",children:(V,J)=>{le();var F=$e();h(()=>S(F,e(l).label)),o(V,F)},$$slots:{default:!0}});var re=a(C,2);h(()=>pt(re,1,`inline-block size-2.5 rounded-full ${e(l).dotClass??""}`)),o(j,$)},$$slots:{default:!0}});var g=a(p,2);Be(g,{class:"px-3 pb-3",children:(j,H)=>{var $=Ft(),C=s($,!0);t($),h(()=>S(C,e(L)[e(l).key])),o(j,$)},$$slots:{default:!0}}),o(G,w)},$$slots:{default:!0}}),t(_),h(()=>X(_,"data-testid",`task-count-${e(l).key??""}`)),o(u,_)}),t(D),t(c);var z=a(c,2),v=s(z),W=a(s(v),2);{var te=u=>{Ie(u,{variant:"secondary",class:"text-[10px]",children:(l,_)=>{le();var m=$e();h(()=>S(m,e(_e))),o(l,m)},$$slots:{default:!0}})};N(W,u=>{e(_e)>0&&u(te)})}t(v);var R=a(v,2);{var se=u=>{var l=Lt();o(u,l)},Ye=u=>{var l=Jt();Q(l,21,()=>e(Le),ce,(_,m)=>{var G=Ce(),ae=q(G);{var w=p=>{var g=Ht(),j=s(g);Me(j,{class:"transition-colors hover:bg-muted/50 cursor-pointer h-full",children:(H,$)=>{Be(H,{class:"flex items-center gap-3 p-4",children:(C,re)=>{var V=Gt(),J=q(V),F=s(J);mt(F,()=>e(m).icon,(ie,xe)=>{xe(ie,{get class(){return`size-4 ${e(m).colorClass??""}`}})}),t(J);var ve=a(J,2),O=s(ve),oe=s(O,!0);t(O);var ne=a(O,2),he=s(ne,!0);t(ne),t(ve),h(()=>{S(oe,e(m).count),S(he,e(m).label)}),o(C,V)},$$slots:{default:!0}})},$$slots:{default:!0}}),t(g),h(()=>{X(g,"href",e(m).href),X(g,"data-testid",`attention-${e(m).key??""}`)}),o(p,g)};N(ae,p=>{e(m).count>0&&p(w)})}o(_,G)}),t(l),o(u,l)};N(R,u=>{e(_e)===0?u(se):u(Ye,!1)})}t(z),o(r,i)};N(Ke,r=>{e(U)?r(Qe):r(Xe,!1)})}t(be),o(ee,be),Ae()}it(["click"]);export{xs as component};
@@ -0,0 +1 @@
1
+ import{c as lt,a as d,f as m,t as nt}from"../chunks/DvA-KON-.js";import{o as qe,a as Be}from"../chunks/CwELQvbx.js";import{p as pt,f as P,i as Ut,a as _t,c as o,s as e,r as s,t as F,g as t,b as S,d as $t,u as ye,e as a,n as z,h as ut}from"../chunks/D3vxvonu.js";import{s as E,d as je}from"../chunks/D9QNBZM2.js";import{s as zt,r as Vt,i as I,p as $e}from"../chunks/BysXJlZb.js";import{k as Ot,c as Lt,e as bt,h as St,B as kt,q as Tt,U as Fe,V as Le,R as ne,g as Ue,i as Ve,A as jt,W as Oe,o as Xe,X as he}from"../chunks/DQA8NZIH.js";import{s as Ze,o as Ge,a as He,u as We}from"../chunks/BP352uRn.js";import{B as ct}from"../chunks/BkOJ8DkV.js";import{C as Je}from"../chunks/CGtqifKp.js";import{B as we}from"../chunks/iEtR5cV6.js";import{I as Xt}from"../chunks/B5wTVqxm.js";import{Z as Pe}from"../chunks/ExCq5swK.js";import{c as mt}from"../chunks/DAx07bEQ.js";import{c as Ke}from"../chunks/BXkNecpt.js";import{a as Qe,b as Ye,c as ta,d as ea,D as aa}from"../chunks/DkltRNvh.js";import{D as ra}from"../chunks/-lc0BifF.js";import{I as ft}from"../chunks/Eo4gF7ih.js";import{T as be}from"../chunks/k_Qegko0.js";import{S as Dt}from"../chunks/8RBjHMN1.js";import{X as Ft}from"../chunks/DAh4Wfku.js";import{T as sa,a as na,b as ia}from"../chunks/DRfPm2bo.js";import{P as oa}from"../chunks/BwMO4RrG.js";import{b as da}from"../chunks/D7LTux4W.js";import{R as la}from"../chunks/Cncwi6fQ.js";import{C as va}from"../chunks/DlaTnPKL.js";import{E as ca}from"../chunks/B6VSmczZ.js";import{S as se}from"../chunks/DAMmvwn4.js";function ua(G,r){pt(r,!0);let $=Vt(r,["$$slots","$$events","$$legacy"]);const _=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"}],["path",{d:"m15 5 4 4"}]];Xt(G,zt({name:"pencil"},()=>$,{get iconNode(){return _},children:(D,M)=>{var c=lt(),h=P(c);Ot(h,()=>r.children??Ut),d(D,c)},$$slots:{default:!0}})),_t()}var ga=m('<span class="ds-breathe inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium bg-status-in-progress text-status-in-progress-fg" data-testid="agent-active-badge"> </span>'),fa=m('<p class="text-sm text-muted-foreground"> </p>'),ma=m("<!> ",1),pa=m('<span class="text-xs text-muted-foreground">No triggers configured</span>'),_a=m('<div class="flex items-start justify-between gap-2"><div class="flex items-center gap-2 min-w-0"><!> <div class="min-w-0"><h3 class="font-semibold truncate" data-testid="agent-name"> </h3> <p class="text-xs text-muted-foreground font-mono" data-testid="agent-id"> </p></div></div> <div class="flex items-center gap-1.5 shrink-0"><!> <!></div></div> <!> <div class="flex flex-wrap gap-1.5"><!></div> <div class="flex items-center gap-4 text-sm border-t pt-3 mt-auto"><div class="flex items-center gap-1.5" data-testid="agent-active-count"><span class="inline-block h-2 w-2 rounded-full bg-status-in-progress"></span> <span class="text-muted-foreground">Active:</span> <span class="font-medium"> </span></div> <div class="flex items-center gap-1.5" data-testid="agent-completed-count"><span class="inline-block h-2 w-2 rounded-full bg-status-completed"></span> <span class="text-muted-foreground">Completed:</span> <span class="font-medium"> </span></div></div>',1);function xa(G,r){pt(r,!0),Je(G,{class:"p-4 flex flex-col gap-3",get"data-testid"(){return`agent-card-${r.agent.id??""}`},children:($,_)=>{var D=_a(),M=P(D),c=o(M),h=o(c);we(h,{class:"h-5 w-5 shrink-0 text-muted-foreground"});var B=e(h,2),q=o(B),H=o(q,!0);s(q);var L=e(q,2),Q=o(L,!0);s(L),s(B),s(c);var Y=e(c,2),w=o(Y);{var A=v=>{var u=ga(),J=o(u);s(u),F(()=>E(J,`${r.activeCount??""} active`)),d(v,u)};I(w,v=>{r.activeCount>0&&v(A)})}var N=e(w,2);{var b=v=>{ct(v,{size:"sm",variant:"ghost",class:"h-7 w-7 p-0",get onclick(){return r.onEdit},get"aria-label"(){return`Edit agent ${r.agent.name??""}`},get"data-testid"(){return`agent-edit-button-${r.agent.id??""}`},children:(u,J)=>{ua(u,{class:"h-4 w-4"})},$$slots:{default:!0}})};I(N,v=>{!Lt()&&r.onEdit&&v(b)})}s(Y),s(M);var x=e(M,2);{var g=v=>{var u=fa(),J=o(u,!0);s(u),F(()=>E(J,r.agent.description)),d(v,u)};I(x,v=>{r.agent.description&&v(g)})}var C=e(x,2),et=o(C);{var W=v=>{var u=lt(),J=P(u);bt(J,17,()=>r.agent.dispatch,St,(tt,Ct)=>{kt(tt,{variant:"secondary",class:"text-xs gap-1","data-testid":"agent-trigger",children:(wt,Nt)=>{var xt=ma(),Et=P(xt);Pe(Et,{class:"h-3 w-3"});var Pt=e(Et);F(At=>E(Pt,` ${At??""}`),[()=>t(Ct).on.replace("task.","")]),d(wt,xt)},$$slots:{default:!0}})}),d(v,u)},it=v=>{var u=pa();d(v,u)};I(et,v=>{r.agent.dispatch.length>0?v(W):v(it,!1)})}s(C);var U=e(C,2),V=o(U),T=e(o(V),4),n=o(T,!0);s(T),s(V);var l=e(V,2),j=e(o(l),4),p=o(j,!0);s(j),s(l),s(U),F(()=>{E(H,r.agent.name),E(Q,r.agent.id),E(n,r.activeCount),E(p,r.completedCount)}),d($,D)},$$slots:{default:!0}}),_t()}const ha=["task.in_progress","task.ready","task.needs_work","task.pending_review"];function ba(G,r){pt(r,!0);let $=Vt(r,["$$slots","$$events","$$legacy"]);const _=[["path",{d:"M5 12h14"}],["path",{d:"M12 5v14"}]];Xt(G,zt({name:"plus"},()=>$,{get iconNode(){return _},children:(D,M)=>{var c=lt(),h=P(c);Ot(h,()=>r.children??Ut),d(D,c)},$$slots:{default:!0}})),_t()}var ka=m("<!> <!>",1),ya=m('<div class="bg-destructive/10 text-destructive p-3 rounded-lg text-sm" data-testid="agent-edit-error" role="alert"> </div>'),$a=m(' <button type="button" class="ml-0.5 rounded-full p-0.5 hover:bg-muted-foreground/20"><!></button>',1),wa=m("<!> ",1),Pa=m('<div class="flex flex-wrap gap-1.5" data-testid="agent-edit-available-triggers"></div>'),Aa=m(' <button type="button" class="ml-0.5 rounded-full p-0.5 hover:bg-muted-foreground/20"><!></button>',1),Sa=m(' <button type="button" class="ml-0.5 rounded-full p-0.5 hover:bg-muted-foreground/20"><!></button>',1),Ta=m(' <button type="button" class="ml-0.5 rounded-full p-0.5 hover:bg-muted-foreground/20"><!></button>',1),Da=m("<!> <!>",1),Ca=m('<!> <!> <div class="flex flex-col gap-4"><div><label for="agent-name" class="text-sm font-medium">Name</label> <!></div> <div><label for="agent-description" class="text-sm font-medium">Description</label> <!></div> <div><label for="agent-adapter" class="text-sm font-medium">Adapter</label> <!></div> <!> <div><p class="text-sm font-medium mb-2">Dispatch Triggers</p> <div class="flex flex-wrap gap-1.5 mb-2" data-testid="agent-edit-triggers"></div> <!></div> <!> <div><p class="text-sm font-medium mb-1">Capabilities</p> <div class="flex flex-wrap gap-1 mb-2" data-testid="agent-edit-capabilities"></div> <div class="flex gap-2"><!> <!></div></div> <div><p class="text-sm font-medium mb-1">Tools</p> <div class="flex flex-wrap gap-1 mb-2" data-testid="agent-edit-tools"></div> <div class="flex gap-2"><!> <!></div></div> <div><p class="text-sm font-medium mb-1">Skills</p> <div class="flex flex-wrap gap-1 mb-2" data-testid="agent-edit-skills"></div> <div class="flex gap-2"><!> <!></div></div> <!> <div><p class="text-sm font-medium mb-2">Budget</p> <div class="grid grid-cols-3 gap-3"><div><label for="agent-max-tasks" class="text-xs text-muted-foreground">Max Tasks</label> <!></div> <div><label for="agent-max-retries" class="text-xs text-muted-foreground">Max Retries</label> <!></div> <div><label for="agent-timeout" class="text-xs text-muted-foreground">Timeout (min)</label> <!></div></div></div> <div><label for="agent-concurrency" class="text-sm font-medium">Max Concurrent</label> <!></div> <div class="flex items-center gap-3"><input id="agent-auto-approve" type="checkbox" class="h-4 w-4 rounded border-input" data-testid="agent-edit-auto-approve"/> <label for="agent-auto-approve" class="text-sm font-medium">Auto Approve</label></div> <!> <div><label for="agent-prompt-template" class="text-sm font-medium">Prompt Template</label> <!></div></div> <!>',1);function Na(G,r){pt(r,!0);let $=$e(r,"open",15,!1),_=S(""),D=S(""),M=S(""),c=S($t([])),h=S($t([])),B=S($t([])),q=S($t([])),H=S(void 0),L=S(void 0),Q=S(void 0),Y=S(1),w=S(!1),A=S(""),N=S(!1),b=S(""),x=S(""),g=S(""),C=S("");ye(()=>{$()&&r.agent&&(a(_,r.agent.name,!0),a(D,r.agent.description??"",!0),a(M,r.agent.adapter??"",!0),a(c,r.agent.dispatch.map(p=>({...p,filter:p.filter?{...p.filter}:void 0})),!0),a(h,[...r.agent.capabilities],!0),a(B,[...r.agent.tools],!0),a(q,[...r.agent.skills],!0),a(H,r.agent.budget?.max_tasks,!0),a(L,r.agent.budget?.max_retries,!0),a(Q,r.agent.budget?.timeout_minutes,!0),a(Y,r.agent.concurrency?.max_concurrent??1,!0),a(w,r.agent.auto_approve,!0),a(A,r.agent.prompt_template??"",!0),a(b,""),a(x,""),a(g,""),a(C,""))});let et=ut(()=>ha.filter(p=>!t(c).some(v=>v.on===p)));function W(p){a(c,[...t(c),{on:p}],!0)}function it(p){a(c,t(c).filter((v,u)=>u!==p),!0)}function U(p,v,u,J){const tt=v.trim();tt&&!p.includes(tt)&&(u([...p,tt]),J())}function V(p,v,u){u(p.filter((J,tt)=>tt!==v))}async function T(){a(N,!0),a(b,"");const p={name:t(_),description:t(D)||void 0,adapter:t(M)||void 0,dispatch:t(c),capabilities:t(h),tools:t(B),skills:t(q),budget:t(H)!==void 0||t(L)!==void 0||t(Q)!==void 0?{max_tasks:t(H),max_retries:t(L),timeout_minutes:t(Q)}:void 0,concurrency:{max_concurrent:t(Y)},auto_approve:t(w),prompt_template:t(A)||void 0};try{const v=await Le(r.agent.id,p);r.onSaved?.(v),$(!1)}catch(v){v instanceof ne?a(b,v.message,!0):a(b,v instanceof Error?v.message:"Failed to save agent",!0)}finally{a(N,!1)}}function n(){$(!1)}var l=lt(),j=P(l);mt(j,()=>aa,(p,v)=>{v(p,{get open(){return $()},set open(u){$(u)},children:(u,J)=>{var tt=lt(),Ct=P(tt);mt(Ct,()=>Qe,(wt,Nt)=>{Nt(wt,{class:"max-w-2xl max-h-[85vh] overflow-y-auto","data-testid":"agent-edit-dialog",children:(xt,Et)=>{var Pt=Ca(),At=P(Pt);mt(At,()=>Ye,(i,f)=>{f(i,{children:(y,at)=>{var dt=ka(),X=P(dt);mt(X,()=>ta,(k,K)=>{K(k,{"data-testid":"agent-edit-title",children:(st,qt)=>{z();var Bt=nt();F(()=>E(Bt,`Edit Agent: ${r.agent.id??""}`)),d(st,Bt)},$$slots:{default:!0}})});var Z=e(X,2);mt(Z,()=>ea,(k,K)=>{K(k,{children:(st,qt)=>{z();var Bt=nt("Modify agent definition fields. Changes are persisted to kynetic.meta.yaml.");d(st,Bt)},$$slots:{default:!0}})}),d(y,dt)},$$slots:{default:!0}})});var It=e(At,2);{var Zt=i=>{var f=ya(),y=o(f,!0);s(f),F(()=>E(y,t(b))),d(i,f)};I(It,i=>{t(b)&&i(Zt)})}var R=e(It,2),O=o(R),ot=e(o(O),2);ft(ot,{id:"agent-name",placeholder:"Agent name","data-testid":"agent-edit-name",get value(){return t(_)},set value(i){a(_,i,!0)}}),s(O);var vt=e(O,2),Mt=e(o(vt),2);be(Mt,{id:"agent-description",placeholder:"Agent description",rows:2,"data-testid":"agent-edit-description",get value(){return t(D)},set value(i){a(D,i,!0)}}),s(vt);var rt=e(vt,2),gt=e(o(rt),2);ft(gt,{id:"agent-adapter",placeholder:"e.g. claude-code","data-testid":"agent-edit-adapter",get value(){return t(M)},set value(i){a(M,i,!0)}}),s(rt);var ht=e(rt,2);Dt(ht,{});var yt=e(ht,2),Rt=e(o(yt),2);bt(Rt,21,()=>t(c),St,(i,f,y)=>{kt(i,{variant:"secondary",class:"gap-1 pr-1",children:(at,dt)=>{z();var X=$a(),Z=P(X),k=e(Z);k.__click=()=>it(y);var K=o(k);Ft(K,{class:"h-3 w-3"}),s(k),F(()=>{E(Z,`${t(f).on??""} `),Tt(k,"aria-label",`Remove trigger ${t(f).on??""}`),Tt(k,"data-testid",`remove-trigger-${t(f).on??""}`)}),d(at,X)},$$slots:{default:!0}})}),s(Rt);var Ae=e(Rt,2);{var Se=i=>{var f=Pa();bt(f,21,()=>t(et),St,(y,at)=>{ct(y,{size:"sm",variant:"outline",class:"text-xs gap-1",onclick:()=>W(t(at)),get"data-testid"(){return`add-trigger-${t(at)??""}`},children:(dt,X)=>{var Z=wa(),k=P(Z);ba(k,{class:"h-3 w-3"});var K=e(k);F(()=>E(K,` ${t(at)??""}`)),d(dt,Z)},$$slots:{default:!0}})}),s(f),d(i,f)};I(Ae,i=>{t(et).length>0&&i(Se)})}s(yt);var ie=e(yt,2);Dt(ie,{});var Gt=e(ie,2),Ht=e(o(Gt),2);bt(Ht,21,()=>t(h),St,(i,f,y)=>{kt(i,{variant:"outline",class:"gap-1 pr-1",children:(at,dt)=>{z();var X=Aa(),Z=P(X),k=e(Z);k.__click=()=>V(t(h),y,st=>a(h,st,!0));var K=o(k);Ft(K,{class:"h-3 w-3"}),s(k),F(()=>{E(Z,`${t(f)??""} `),Tt(k,"aria-label",`Remove capability ${t(f)??""}`)}),d(at,X)},$$slots:{default:!0}})}),s(Ht);var oe=e(Ht,2),de=o(oe);ft(de,{placeholder:"Add capability...",class:"flex-1",onkeydown:i=>{i.key==="Enter"&&(i.preventDefault(),U(t(h),t(x),f=>a(h,f,!0),()=>a(x,"")))},"data-testid":"agent-edit-capability-input",get value(){return t(x)},set value(i){a(x,i,!0)}});var Te=e(de,2);ct(Te,{size:"sm",variant:"outline",onclick:()=>U(t(h),t(x),i=>a(h,i,!0),()=>a(x,"")),children:(i,f)=>{z();var y=nt("Add");d(i,y)},$$slots:{default:!0}}),s(oe),s(Gt);var Wt=e(Gt,2),Jt=e(o(Wt),2);bt(Jt,21,()=>t(B),St,(i,f,y)=>{kt(i,{variant:"outline",class:"gap-1 pr-1",children:(at,dt)=>{z();var X=Sa(),Z=P(X),k=e(Z);k.__click=()=>V(t(B),y,st=>a(B,st,!0));var K=o(k);Ft(K,{class:"h-3 w-3"}),s(k),F(()=>{E(Z,`${t(f)??""} `),Tt(k,"aria-label",`Remove tool ${t(f)??""}`)}),d(at,X)},$$slots:{default:!0}})}),s(Jt);var le=e(Jt,2),ve=o(le);ft(ve,{placeholder:"Add tool...",class:"flex-1",onkeydown:i=>{i.key==="Enter"&&(i.preventDefault(),U(t(B),t(g),f=>a(B,f,!0),()=>a(g,"")))},"data-testid":"agent-edit-tool-input",get value(){return t(g)},set value(i){a(g,i,!0)}});var De=e(ve,2);ct(De,{size:"sm",variant:"outline",onclick:()=>U(t(B),t(g),i=>a(B,i,!0),()=>a(g,"")),children:(i,f)=>{z();var y=nt("Add");d(i,y)},$$slots:{default:!0}}),s(le),s(Wt);var Kt=e(Wt,2),Qt=e(o(Kt),2);bt(Qt,21,()=>t(q),St,(i,f,y)=>{kt(i,{variant:"outline",class:"gap-1 pr-1",children:(at,dt)=>{z();var X=Ta(),Z=P(X),k=e(Z);k.__click=()=>V(t(q),y,st=>a(q,st,!0));var K=o(k);Ft(K,{class:"h-3 w-3"}),s(k),F(()=>{E(Z,`${t(f)??""} `),Tt(k,"aria-label",`Remove skill ${t(f)??""}`)}),d(at,X)},$$slots:{default:!0}})}),s(Qt);var ce=e(Qt,2),ue=o(ce);ft(ue,{placeholder:"Add skill...",class:"flex-1",onkeydown:i=>{i.key==="Enter"&&(i.preventDefault(),U(t(q),t(C),f=>a(q,f,!0),()=>a(C,"")))},"data-testid":"agent-edit-skill-input",get value(){return t(C)},set value(i){a(C,i,!0)}});var Ce=e(ue,2);ct(Ce,{size:"sm",variant:"outline",onclick:()=>U(t(q),t(C),i=>a(q,i,!0),()=>a(C,"")),children:(i,f)=>{z();var y=nt("Add");d(i,y)},$$slots:{default:!0}}),s(ce),s(Kt);var ge=e(Kt,2);Dt(ge,{});var Yt=e(ge,2),fe=e(o(Yt),2),te=o(fe),Ne=e(o(te),2);{let i=ut(()=>t(H)??"");ft(Ne,{id:"agent-max-tasks",type:"number",min:1,get value(){return t(i)},oninput:f=>{const y=f.target.valueAsNumber;a(H,Number.isNaN(y)?void 0:y,!0)},placeholder:"—","data-testid":"agent-edit-max-tasks"})}s(te);var ee=e(te,2),Ee=e(o(ee),2);{let i=ut(()=>t(L)??"");ft(Ee,{id:"agent-max-retries",type:"number",min:0,get value(){return t(i)},oninput:f=>{const y=f.target.valueAsNumber;a(L,Number.isNaN(y)?void 0:y,!0)},placeholder:"—","data-testid":"agent-edit-max-retries"})}s(ee);var me=e(ee,2),Me=e(o(me),2);{let i=ut(()=>t(Q)??"");ft(Me,{id:"agent-timeout",type:"number",min:1,get value(){return t(i)},oninput:f=>{const y=f.target.valueAsNumber;a(Q,Number.isNaN(y)?void 0:y,!0)},placeholder:"—","data-testid":"agent-edit-timeout"})}s(me),s(fe),s(Yt);var ae=e(Yt,2),Re=e(o(ae),2);ft(Re,{id:"agent-concurrency",type:"number",min:1,"data-testid":"agent-edit-concurrency",get value(){return t(Y)},set value(i){a(Y,i,!0)}}),s(ae);var re=e(ae,2),pe=o(re);Fe(pe),z(2),s(re);var _e=e(re,2);Dt(_e,{});var xe=e(_e,2),ze=e(o(xe),2);be(ze,{id:"agent-prompt-template",placeholder:"Agent prompt template...",rows:4,class:"font-mono text-xs","data-testid":"agent-edit-prompt-template",get value(){return t(A)},set value(i){a(A,i,!0)}}),s(xe),s(R);var Ie=e(R,2);mt(Ie,()=>ra,(i,f)=>{f(i,{class:"mt-4",children:(y,at)=>{var dt=Da(),X=P(dt);ct(X,{variant:"ghost",onclick:n,get disabled(){return t(N)},"data-testid":"agent-edit-cancel",children:(k,K)=>{z();var st=nt("Cancel");d(k,st)},$$slots:{default:!0}});var Z=e(X,2);{let k=ut(()=>t(N)||!t(_).trim());ct(Z,{onclick:T,get disabled(){return t(k)},"data-testid":"agent-edit-save",children:(K,st)=>{z();var qt=nt();F(()=>E(qt,t(N)?"Saving...":"Save")),d(K,qt)},$$slots:{default:!0}})}d(y,dt)},$$slots:{default:!0}})}),Ke(pe,()=>t(w),i=>a(w,i)),d(xt,Pt)},$$slots:{default:!0}})}),d(u,tt)},$$slots:{default:!0}})}),d(G,l),_t()}je(["click"]);function Ea(G,r){pt(r,!0);let $=Vt(r,["$$slots","$$events","$$legacy"]);const _=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}]];Xt(G,zt({name:"square"},()=>$,{get iconNode(){return _},children:(D,M)=>{var c=lt(),h=P(c);Ot(h,()=>r.children??Ut),d(D,c)},$$slots:{default:!0}})),_t()}function ke(G,r){pt(r,!0);let $=Vt(r,["$$slots","$$events","$$legacy"]);const _=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56"}]];Xt(G,zt({name:"loader-circle"},()=>$,{get iconNode(){return _},children:(D,M)=>{var c=lt(),h=P(c);Ot(h,()=>r.children??Ut),d(D,c)},$$slots:{default:!0}})),_t()}var Ma=m('<span class="relative flex h-3 w-3" data-testid="dispatch-indicator-running"><span class="absolute inline-flex h-full w-full animate-ping motion-reduce:animate-none rounded-full bg-status-completed opacity-75"></span> <span class="relative inline-flex h-3 w-3 rounded-full bg-status-completed"></span></span> <!>',1),Ra=m('<span class="inline-flex h-3 w-3 rounded-full bg-status-cancelled" data-testid="dispatch-indicator-stopped"></span> <!>',1),za=m('<span class="text-sm text-muted-foreground" data-testid="dispatch-counts"> <!></span>'),Ia=m("<p>Read-only mode - use CLI to control dispatch</p>"),qa=m("<!> <!>",1),Ba=m("<!> Stopping...",1),ja=m("<!> Stop",1),Fa=m("<!> Starting...",1),La=m("<!> Start",1),Ua=m('<div class="flex items-center justify-between rounded-lg border p-4" data-testid="dispatch-status"><div class="flex items-center gap-3"><div class="flex items-center gap-2"><!></div> <!></div> <div><!></div></div>');function Va(G,r){pt(r,!0);var $=Ua(),_=o($),D=o(_),M=o(D);{var c=w=>{var A=Ma(),N=e(P(A),2);kt(N,{class:"bg-status-completed text-status-completed-fg","data-testid":"dispatch-status-badge",children:(b,x)=>{z();var g=nt("Running");d(b,g)},$$slots:{default:!0}}),d(w,A)},h=w=>{var A=Ra(),N=e(P(A),2);kt(N,{variant:"secondary","data-testid":"dispatch-status-badge",children:(b,x)=>{z();var g=nt("Stopped");d(b,g)},$$slots:{default:!0}}),d(w,A)};I(M,w=>{r.enabled?w(c):w(h,!1)})}s(D);var B=e(D,2);{var q=w=>{var A=za(),N=o(A),b=e(N);{var x=g=>{var C=nt();F(()=>E(C,`, ${r.queueDepth??""} queued`)),d(g,C)};I(b,g=>{r.queueDepth>0&&g(x)})}s(A),F(()=>E(N,`${r.activeCount??""} active`)),d(w,A)};I(B,w=>{r.enabled&&w(q)})}s(_);var H=e(_,2),L=o(H);{var Q=w=>{var A=lt(),N=P(A);mt(N,()=>ia,(b,x)=>{x(b,{children:(g,C)=>{var et=qa(),W=P(et);{const U=(V,T)=>{ct(V,zt(()=>T?.().props,{size:"sm",variant:"outline",disabled:!0,"data-testid":"dispatch-toggle-button",children:(l,j)=>{z();var p=nt();F(()=>E(p,r.enabled?"Stop":"Start")),d(l,p)},$$slots:{default:!0}}))};mt(W,()=>sa,(V,T)=>{T(V,{child:U,$$slots:{child:!0}})})}var it=e(W,2);mt(it,()=>na,(U,V)=>{V(U,{children:(T,n)=>{var l=Ia();d(T,l)},$$slots:{default:!0}})}),d(g,et)},$$slots:{default:!0}})}),d(w,A)},Y=w=>{var A=lt(),N=P(A);{var b=g=>{ct(g,{size:"sm",variant:"destructive",get onclick(){return r.onStop},get disabled(){return r.isToggling},"data-testid":"dispatch-toggle-button",children:(C,et)=>{var W=lt(),it=P(W);{var U=T=>{var n=Ba(),l=P(n);ke(l,{class:"h-4 w-4 animate-spin motion-reduce:animate-none mr-1"}),z(),d(T,n)},V=T=>{var n=ja(),l=P(n);Ea(l,{class:"h-4 w-4 mr-1"}),z(),d(T,n)};I(it,T=>{r.isToggling?T(U):T(V,!1)})}d(C,W)},$$slots:{default:!0}})},x=g=>{ct(g,{size:"sm",get onclick(){return r.onStart},get disabled(){return r.isToggling},"data-testid":"dispatch-toggle-button",children:(C,et)=>{var W=lt(),it=P(W);{var U=T=>{var n=Fa(),l=P(n);ke(l,{class:"h-4 w-4 animate-spin motion-reduce:animate-none mr-1"}),z(),d(T,n)},V=T=>{var n=La(),l=P(n);oa(l,{class:"h-4 w-4 mr-1"}),z(),d(T,n)};I(it,T=>{r.isToggling?T(U):T(V,!1)})}d(C,W)},$$slots:{default:!0}})};I(N,g=>{r.enabled?g(b):g(x,!1)},!0)}d(w,A)};I(L,w=>{Lt()?w(Q):w(Y,!1)})}s(H),s($),d(G,$),_t()}var Oa=m('<span data-testid="invocation-task-ref"><!></span>'),Xa=m('<span class="text-sm text-muted-foreground italic">No task</span>'),Za=m('<div class="flex items-center justify-between rounded-md border px-3 py-2 ds-breathe" data-testid="active-invocation-row"><div class="flex items-center gap-3 min-w-0"><!> <!></div> <div class="flex items-center gap-3 shrink-0"><span class="flex items-center gap-1 text-xs text-muted-foreground" data-testid="invocation-elapsed"><!> </span> <a class="inline-flex items-center gap-1 text-xs text-primary hover:underline" data-testid="invocation-session-link">Stream <!></a></div></div>');function Ga(G,r){pt(r,!0);let $=$e(r,"taskTitle",3,null),_=ut(()=>D(r.invocation.elapsed_ms));function D(b){const x=Math.floor(b/1e3);if(x<60)return`${x}s`;const g=Math.floor(x/60),C=x%60;if(g<60)return`${g}m ${C}s`;const et=Math.floor(g/60),W=g%60;return`${et}h ${W}m`}var M=Za(),c=o(M),h=o(c);kt(h,{class:"bg-status-in-progress text-status-in-progress-fg shrink-0",children:(b,x)=>{z();var g=nt();F(()=>E(g,r.invocation.agent_id)),d(b,g)},$$slots:{default:!0}});var B=e(h,2);{var q=b=>{var x=Oa(),g=o(x);la(g,{get ref(){return r.invocation.task_ref},type:"task",get title(){return $()},class:"text-sm"}),s(x),d(b,x)},H=b=>{var x=Xa();d(b,x)};I(B,b=>{r.invocation.task_ref?b(q):b(H,!1)})}s(c);var L=e(c,2),Q=o(L),Y=o(Q);va(Y,{class:"h-3 w-3"});var w=e(Y);s(Q);var A=e(Q,2),N=e(o(A));ca(N,{class:"h-3 w-3"}),s(A),s(L),s(M),F(()=>{E(w,` ${t(_)??""}`),Tt(A,"href",`${da??""}/sessions/${r.invocation.session_id??""}`)}),d(G,M),_t()}var Ha=m('<div class="bg-destructive/10 text-destructive p-4 rounded-lg" data-testid="error-message" role="alert"> </div>'),Wa=m('<div class="flex flex-col gap-4" data-testid="agents-loading"><!> <!> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"><!> <!></div></div>'),Ja=m('<div class="flex flex-col gap-2"></div>'),Ka=m('<div class="flex flex-col items-center justify-center py-8 text-center border rounded-lg" data-testid="active-invocations-empty"><!> <h3 class="text-sm font-medium mb-1">No active invocations</h3> <p class="text-xs text-muted-foreground max-w-sm">Dispatch is running and waiting for eligible tasks. Use <code class="bg-muted px-1 py-0.5 rounded">kspec tasks ready --eligible</code> to check for work.</p></div>'),Qa=m('<section data-testid="active-invocations-section" aria-live="polite" aria-relevant="additions removals"><h2 class="text-lg font-semibold mb-3">Active Invocations</h2> <!></section>'),Ya=m('<span class="text-sm font-normal text-muted-foreground"> </span>'),tr=m('<div class="flex flex-col items-center justify-center py-12 text-center border rounded-lg" data-testid="agents-empty-state"><!> <h3 class="text-lg font-medium mb-1">No agents defined</h3> <p class="text-sm text-muted-foreground max-w-sm">Agent definitions are configured in kynetic.meta.yaml. Use <code class="text-xs bg-muted px-1 py-0.5 rounded">kspec setup</code> to create default agent definitions.</p></div>'),er=m('<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"></div>'),ar=m('<section data-testid="dispatch-section"><h2 class="text-lg font-semibold mb-3">Dispatch Engine</h2> <!></section> <!> <div class="sr-only" aria-live="assertive" aria-atomic="true" data-testid="invocation-live-region"> </div> <!> <section data-testid="agent-definitions-section"><h2 class="text-lg font-semibold mb-3">Agent Definitions <!></h2> <!></section>',1),rr=m('<div class="flex flex-col gap-6 p-6"><div><h1 class="text-3xl font-bold mb-2">Agents</h1> <p class="text-muted-foreground">Agent definitions and dispatch engine status.</p></div> <!> <!> <!></div>');function Nr(G,r){pt(r,!0);let $=S($t([])),_=S(null),D=S($t({})),M=S(!0),c=S(""),h=S(!1),B=S(!1),q=S(null),H=S(""),L=S($t({})),Q=ut(()=>{const n={};if(t(_)?.active_invocations)for(const l of t(_).active_invocations)n[l.agent_id]=(n[l.agent_id]||0)+1;return n});ye(()=>{Ue(),Ve()&&Y()});async function Y(){a(M,!0),a(c,"");try{const[n,l,j]=await Promise.all([jt(),Oe(),Xe({limit:1e3})]);a(_,n,!0),a($,l.items,!0);const p={};for(const u of j.items){if(u.slugs?.length)for(const J of u.slugs)p[`@${J}`]=u.title;p[`@${u._ulid}`]=u.title}a(D,p,!0);const v={};for(const u of n.agent_definitions)u.completed_sessions!=null&&u.completed_sessions>0&&(v[u.id]=u.completed_sessions);a(L,v,!0)}catch(n){a(c,n instanceof Error?n.message:"Failed to load agent data",!0),console.error("Error loading agent data:",n)}finally{a(M,!1)}}async function w(){if(!Lt()){a(h,!0),a(c,"");try{const n=await he("start");a(_,await jt(),!0)}catch(n){n instanceof ne?a(c,n.message,!0):a(c,n instanceof Error?n.message:"Failed to start dispatch",!0)}finally{a(h,!1)}}}async function A(){if(!Lt()){a(h,!0),a(c,"");try{const n=await he("stop");a(_,await jt(),!0)}catch(n){n instanceof ne?a(c,n.message,!0):a(c,n instanceof Error?n.message:"Failed to stop dispatch",!0)}finally{a(h,!1)}}}function N(n){if(n.event==="agent_invocation"){const l=n.data;(l.status==="completed"||l.status==="failed")&&a(L,{...t(L),[l.agent_id]:(t(L)[l.agent_id]||0)+1},!0);const j=l.agent_id||"Agent";l.status==="started"?a(H,`${j} invocation started`):l.status==="completed"?a(H,`${j} invocation completed`):l.status==="failed"&&a(H,`${j} invocation failed`),jt().then(p=>{a(_,p,!0)}).catch(p=>console.error("Error refreshing agent status:",p))}}function b(n){a(q,n,!0),a(B,!0)}function x(n){a($,t($).map(l=>l.id===n.id?n:l),!0)}qe(()=>{Ze(["agents"]),Ge("agents",N)}),Be(()=>{He("agents",N),We(["agents"])});var g=rr(),C=e(o(g),2);{var et=n=>{var l=Ha(),j=o(l,!0);s(l),F(()=>E(j,t(c))),d(n,l)};I(C,n=>{t(c)&&n(et)})}var W=e(C,2);{var it=n=>{var l=Wa(),j=o(l);se(j,{class:"h-16 w-full rounded-lg"});var p=e(j,2);Dt(p,{});var v=e(p,2),u=o(v);se(u,{class:"h-40 rounded-lg"});var J=e(u,2);se(J,{class:"h-40 rounded-lg"}),s(v),s(l),d(n,l)},U=n=>{var l=ar(),j=P(l),p=e(o(j),2);{var v=R=>{Va(R,{get enabled(){return t(_).dispatch_enabled},get activeCount(){return t(_).active_invocations.length},get queueDepth(){return t(_).queue_depth},onStart:w,onStop:A,get isToggling(){return t(h)}})};I(p,R=>{t(_)&&R(v)})}s(j);var u=e(j,2);{var J=R=>{var O=Qa(),ot=e(o(O),2);{var vt=rt=>{var gt=Ja();bt(gt,21,()=>t(_).active_invocations,ht=>ht.session_id,(ht,yt)=>{{let Rt=ut(()=>t(yt).task_ref?t(D)[t(yt).task_ref]:null);Ga(ht,{get invocation(){return t(yt)},get taskTitle(){return t(Rt)}})}}),s(gt),d(rt,gt)},Mt=rt=>{var gt=Ka(),ht=o(gt);Pe(ht,{class:"h-10 w-10 text-muted-foreground mb-3"}),z(4),s(gt),d(rt,gt)};I(ot,rt=>{t(_).active_invocations.length>0?rt(vt):rt(Mt,!1)})}s(O),d(R,O)};I(u,R=>{t(_)?.dispatch_enabled&&R(J)})}var tt=e(u,2),Ct=o(tt,!0);s(tt);var wt=e(tt,2);Dt(wt,{});var Nt=e(wt,2),xt=o(Nt),Et=e(o(xt));{var Pt=R=>{var O=Ya(),ot=o(O);s(O),F(()=>E(ot,`(${t($).length??""})`)),d(R,O)};I(Et,R=>{t($).length>0&&R(Pt)})}s(xt);var At=e(xt,2);{var It=R=>{var O=tr(),ot=o(O);we(ot,{class:"h-12 w-12 text-muted-foreground mb-4"}),z(4),s(O),d(R,O)},Zt=R=>{var O=er();bt(O,21,()=>t($),ot=>ot.id,(ot,vt)=>{{let Mt=ut(()=>t(Q)[t(vt).id]||0),rt=ut(()=>t(L)[t(vt).id]||0);xa(ot,{get agent(){return t(vt)},get activeCount(){return t(Mt)},get completedCount(){return t(rt)},onEdit:()=>b(t(vt))})}}),s(O),d(R,O)};I(At,R=>{t($).length===0?R(It):R(Zt,!1)})}s(Nt),F(()=>E(Ct,t(H))),d(n,l)};I(W,n=>{t(M)?n(it):n(U,!1)})}var V=e(W,2);{var T=n=>{Na(n,{get agent(){return t(q)},onSaved:x,get open(){return t(B)},set open(l){a(B,l,!0)}})};I(V,n=>{t(q)&&n(T)})}s(g),d(G,g),_t()}export{Nr as component};
@@ -0,0 +1,2 @@
1
+ import{f as g,a as r,t as T,c as we}from"../chunks/DvA-KON-.js";import{o as Ie,a as Te}from"../chunks/CwELQvbx.js";import{p as De,b as k,d as Kt,u as Pe,e as s,f as F,c as v,s as o,t as b,a as Ae,g as e,r as n,h as A,n as C}from"../chunks/D3vxvonu.js";import{d as Ce,s as S}from"../chunks/D9QNBZM2.js";import{i as h}from"../chunks/BysXJlZb.js";import{g as ke,i as Ee,f as Ue,a as Vt,b as Tt,c as O,s as Dt,d as Le,R as qt,e as dt,h as Pt,j as Re,B as Ht}from"../chunks/DQA8NZIH.js";import{g as Me}from"../chunks/B8a0xDxR.js";import{b as At}from"../chunks/D7LTux4W.js";import{p as lt}from"../chunks/62JVKtnb.js";import{s as je,o as Jt,a as Qt,u as Fe}from"../chunks/BP352uRn.js";import{B as W}from"../chunks/BkOJ8DkV.js";import{I as Oe}from"../chunks/Eo4gF7ih.js";import{C as Wt}from"../chunks/CGtqifKp.js";import{C as Xt}from"../chunks/DjG7s6hm.js";import{C as Be}from"../chunks/BEOQc37C.js";import{D as ze,a as Ge,b as Ne,c as Ke,d as Ve}from"../chunks/DkltRNvh.js";import{D as qe}from"../chunks/-lc0BifF.js";import{I as He}from"../chunks/BJ0JX3ea.js";var Je=g('<p class="text-sm text-muted-foreground" data-testid="inbox-summary"> <!></p>'),Qe=g("<option> </option>"),We=g('<select class="rounded-md border bg-background px-3 py-1.5 text-sm" data-testid="inbox-tag-filter"><option>All Tags</option><!></select>'),Xe=g('<div class="bg-destructive/10 text-destructive p-4 rounded-lg text-sm" data-testid="error-message" role="alert"> </div>'),Ye=g('<div class="flex gap-2"><!> <!></div>'),Ze=g('<div class="h-20 rounded-lg bg-muted ds-shimmer"></div>'),ta=g('<div class="space-y-2" data-testid="inbox-loading"></div>'),ea=g('<h2 class="text-lg font-medium text-muted-foreground mb-1">No inbox items</h2> <p class="text-sm text-muted-foreground"><!></p>',1),aa=g('<h2 class="text-lg font-medium text-muted-foreground mb-1">No matching items</h2> <p class="text-sm text-muted-foreground">Try adjusting the filters above.</p>',1),ra=g('<div class="flex flex-col items-center justify-center py-16" data-testid="inbox-empty"><!> <!></div>'),sa=g('<span class="text-xs text-muted-foreground" data-testid="inbox-triage-action"> </span>'),oa=g('<div class="flex items-start justify-between gap-4"><div class="flex-1 min-w-0"><div class="flex items-center gap-2 mb-1"><!> <!></div> <p class="text-sm leading-relaxed" data-testid="inbox-text"> </p></div> <div class="flex items-center gap-1 flex-shrink-0"><!> <!></div></div>'),ia=g('<span>&middot;</span> <div class="flex gap-1" data-testid="inbox-tags"></div>',1),na=g('<div class="flex items-center gap-2 text-xs text-muted-foreground"><span data-testid="inbox-created-at"> </span> <span>&middot;</span> <span data-testid="inbox-added-by"> </span> <!></div>'),da=g("<!> <!>",1),la=g('<div class="flex flex-col gap-3" data-testid="inbox-list"></div>'),ua=g("<!> <!>",1),va=g('<div class="rounded-md bg-muted p-3 text-sm"> </div>'),ca=g("<!> <!>",1),fa=g("<!> <!> <!>",1),ga=g('<div class="flex flex-col gap-4 p-6"><div class="flex items-center justify-between"><div><h1 class="text-2xl font-bold">Inbox</h1> <!></div> <!></div> <div class="flex flex-wrap gap-2 items-center" data-testid="inbox-filters"><select class="rounded-md border bg-background px-3 py-1.5 text-sm" data-testid="inbox-status-filter"><option>All Status</option><option>Untriaged</option><option>Triaged</option><option>Acted On</option></select> <!> <select class="rounded-md border bg-background px-3 py-1.5 text-sm" data-testid="inbox-age-filter"><option>Any Age</option><option>Last 24 hours</option><option>Last 7 days</option><option>Last 30 days</option></select></div> <!> <!> <!></div> <!>',1);function Ua(Yt,Zt){De(Zt,!0);let B=k(Kt([])),rt=k(Kt([])),st=k(!0),D=k(""),K=k(!1),V=k(""),X=k(!1),q=k(!1),L=k(null),Y=k(!1);const te={untriaged:"Untriaged",triaged:"Triaged",acted_on:"Acted On"},Ct={untriaged:"bg-status-pending text-status-pending-fg",triaged:"bg-status-pending-review text-status-pending-review-fg",acted_on:"bg-status-completed text-status-completed-fg"},ee=["all","untriaged","triaged","acted_on"];let H=A(()=>{const t=lt.url.searchParams.get("status");return t&&ee.includes(t)?t:"all"}),Z=A(()=>lt.url.searchParams.get("tag")||""),tt=A(()=>lt.url.searchParams.get("age")||""),R=A(()=>e(B).map(t=>{const a=e(rt).find(c=>c.inbox_ref===t._ulid)??null,i=a?a.status==="pending"?"untriaged":a.status:"untriaged";return{inbox:t,record:a,triageStatus:i}})),ot=A(()=>{let t=e(R);if(e(H)==="untriaged"?t=t.filter(a=>a.triageStatus==="untriaged"):e(H)==="triaged"?t=t.filter(a=>a.triageStatus==="triaged"):e(H)==="acted_on"&&(t=t.filter(a=>a.triageStatus==="acted_on")),e(Z)&&(t=t.filter(a=>a.inbox.tags.includes(e(Z)))),e(tt)){const a=Date.now(),c={"1d":864e5,"7d":6048e5,"30d":2592e6}[e(tt)];c&&(t=t.filter(l=>a-new Date(l.inbox.created_at).getTime()<=c))}return t}),kt=A(()=>{const t=new Set;return e(B).forEach(a=>a.tags.forEach(i=>t.add(i))),Array.from(t).sort()}),ae=A(()=>e(R).filter(t=>t.triageStatus==="untriaged").length),re=A(()=>e(R).filter(t=>t.triageStatus==="triaged").length),se=A(()=>e(R).filter(t=>t.triageStatus==="acted_on").length);Ie(()=>{O()||(je(["inbox:updates","triage:updates"]),Jt("inbox:updates",Ut),Jt("triage:updates",Lt))}),Te(()=>{O()||(Qt("inbox:updates",Ut),Qt("triage:updates",Lt),Fe(["inbox:updates","triage:updates"]))}),Pe(()=>{ke(),Ee()&&Et()});async function Et(){try{s(st,!0),s(D,"");const t=await Ue({limit:1e3});s(B,t.items,!0);try{const a=await Vt({limit:1e3});s(rt,a.items,!0)}catch{s(rt,[],!0)}}catch(t){s(D,t instanceof Error?t.message:"Failed to load inbox",!0)}finally{s(st,!1)}}function Ut(t){Et()}function Lt(t){oe()}async function oe(){try{const t=await Vt({limit:1e3});s(rt,t.items,!0)}catch(t){console.error("Failed to reload triage records:",t)}}function ut(t,a){const i=new URLSearchParams(lt.url.searchParams);!a||a==="all"?i.delete(t):i.set(t,a);const c=i.toString(),l=c?`${At}/inbox?${c}`:`${At}/inbox`;Me(l,{replaceState:!1,keepFocus:!0,noScroll:!0})}async function Rt(){if(e(V).trim()){if(O()){s(D,"Cannot add items in read-only mode. Use the kspec CLI.");return}try{s(X,!0),s(D,"");const t=await Re(e(V).trim());s(B,[t,...e(B)],!0),s(V,""),s(K,!1)}catch(t){t instanceof qt?s(D,t.message,!0):s(D,t instanceof Error?t.message:"Failed to add item",!0)}finally{s(X,!1)}}}function ie(t){t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),Rt())}function ne(t){s(L,t,!0),s(q,!0)}async function de(){if(e(L)){if(O()){s(D,"Cannot delete items in read-only mode. Use the kspec CLI."),s(q,!1),s(L,null);return}try{s(Y,!0),s(D,""),await Le(e(L)._ulid),s(B,e(B).filter(t=>t._ulid!==e(L)._ulid),!0),s(q,!1),s(L,null)}catch(t){t instanceof qt?s(D,t.message,!0):s(D,t instanceof Error?t.message:"Failed to delete item",!0)}finally{s(Y,!1)}}}function le(t){const a=new Date(t),c=new Date().getTime()-a.getTime(),l=Math.floor(c/6e4),d=Math.floor(c/36e5),u=Math.floor(c/864e5);return l<1?"just now":l<60?`${l}m ago`:d<24?`${d}h ago`:u<7?`${u}d ago`:a.toLocaleDateString()}function ue(t){return te[t.triageStatus]||"Untriaged"}function ve(t){return Ct[t.triageStatus]||Ct.untriaged}var Mt=ga(),vt=F(Mt),ct=v(vt),ft=v(ct),ce=o(v(ft),2);{var fe=t=>{var a=Je(),i=v(a),c=o(i);{var l=d=>{var u=T();b(()=>S(u,`· Showing ${e(ot).length??""} filtered`)),r(d,u)};h(c,d=>{e(ot).length!==e(R).length&&d(l)})}n(a),b(()=>S(i,`${e(R).length??""} item${e(R).length===1?"":"s"}
2
+ · ${e(ae)??""} untriaged, ${e(re)??""} triaged, ${e(se)??""} acted on `)),r(t,a)};h(ce,t=>{e(st)||t(fe)})}n(ft);var ge=o(ft,2);{var _e=t=>{{let a=A(()=>e(K)?"secondary":"default");W(t,{"data-testid":"add-inbox-button",onclick:()=>s(K,!e(K)),get variant(){return e(a)},children:(i,c)=>{C();var l=T();b(()=>S(l,e(K)?"Cancel":"Add Item")),r(i,l)},$$slots:{default:!0}})}};h(ge,t=>{O()||t(_e)})}n(ct);var gt=o(ct,2),M=v(gt);M.__change=t=>ut("status",t.currentTarget.value);var _t=v(M);_t.value=_t.__value="all";var pt=o(_t);pt.value=pt.__value="untriaged";var mt=o(pt);mt.value=mt.__value="triaged";var jt=o(mt);jt.value=jt.__value="acted_on",n(M);var Ft;Tt(M);var Ot=o(M,2);{var pe=t=>{var a=We();a.__change=d=>ut("tag",d.currentTarget.value);var i=v(a);i.value=i.__value="";var c=o(i);dt(c,17,()=>e(kt),Pt,(d,u)=>{var m=Qe(),f=v(m,!0);n(m);var x={};b(()=>{S(f,e(u)),x!==(x=e(u))&&(m.value=(m.__value=e(u))??"")}),r(d,m)}),n(a);var l;Tt(a),b(()=>{l!==(l=e(Z))&&(a.value=(a.__value=e(Z))??"",Dt(a,e(Z)))}),r(t,a)};h(Ot,t=>{e(kt).length>0&&t(pe)})}var z=o(Ot,2);z.__change=t=>ut("age",t.currentTarget.value);var xt=v(z);xt.value=xt.__value="";var bt=o(xt);bt.value=bt.__value="1d";var ht=o(bt);ht.value=ht.__value="7d";var Bt=o(ht);Bt.value=Bt.__value="30d",n(z);var zt;Tt(z),n(gt);var Gt=o(gt,2);{var me=t=>{var a=Xe(),i=v(a,!0);n(a),b(()=>S(i,e(D))),r(t,a)};h(Gt,t=>{e(D)&&t(me)})}var Nt=o(Gt,2);{var xe=t=>{Wt(t,{"data-testid":"inbox-add-form",children:(a,i)=>{Xt(a,{class:"pt-6",children:(c,l)=>{var d=Ye(),u=v(d);Oe(u,{"data-testid":"inbox-input",placeholder:"Enter inbox item text (press Enter to submit)",onkeydown:ie,get disabled(){return e(X)},class:"flex-1",get value(){return e(V)},set value(f){s(V,f,!0)}});var m=o(u,2);{let f=A(()=>e(X)||!e(V).trim());W(m,{"data-testid":"inbox-submit",onclick:Rt,get disabled(){return e(f)},children:(x,E)=>{C();var _=T();b(()=>S(_,e(X)?"Adding...":"Add")),r(x,_)},$$slots:{default:!0}})}n(d),r(c,d)},$$slots:{default:!0}})},$$slots:{default:!0}})};h(Nt,t=>{e(K)&&t(xe)})}var be=o(Nt,2);{var he=t=>{var a=ta();dt(a,20,()=>Array(5),Pt,(i,c)=>{var l=Ze();r(i,l)}),n(a),r(t,a)},$e=t=>{var a=we(),i=F(a);{var c=d=>{var u=ra(),m=v(u);He(m,{class:"size-12 text-muted-foreground/30 mb-4"});var f=o(m,2);{var x=_=>{var w=ea(),j=o(F(w),2),I=v(j);{var G=$=>{var U=T("No inbox items in the snapshot.");r($,U)},p=$=>{var U=T('Click "Add Item" to capture ideas and thoughts.');r($,U)};h(I,$=>{O()?$(G):$(p,!1)})}n(j),r(_,w)},E=_=>{var w=aa();C(2),r(_,w)};h(f,_=>{e(R).length===0?_(x):_(E,!1)})}n(u),r(d,u)},l=d=>{var u=la();dt(u,21,()=>e(ot),m=>m.inbox._ulid,(m,f)=>{Wt(m,{class:"transition-all duration-200 hover:shadow-md","data-testid":"inbox-item",children:(x,E)=>{var _=da(),w=F(_);Be(w,{class:"pb-3",children:(I,G)=>{var p=oa(),$=v(p),U=v($),J=v(U);{let y=A(()=>ve(e(f)));Ht(J,{get class(){return e(y)},"data-testid":"inbox-triage-status",children:(P,nt)=>{C();var Q=T();b(Se=>S(Q,Se),[()=>ue(e(f))]),r(P,Q)},$$slots:{default:!0}})}var $t=o(J,2);{var yt=y=>{var P=sa(),nt=v(P,!0);n(P),b(()=>S(nt,e(f).record.action)),r(y,P)};h($t,y=>{e(f).record?.action&&y(yt)})}n(U);var it=o(U,2),N=v(it,!0);n(it),n($);var et=o($,2),at=v(et);{var St=y=>{W(y,{variant:"ghost",size:"sm",get href(){return`${At??""}/triage?status=untriaged`},"data-testid":"inbox-triage-link",class:"text-xs",children:(P,nt)=>{C();var Q=T("Triage");r(P,Q)},$$slots:{default:!0}})};h(at,y=>{!O()&&e(f).triageStatus==="untriaged"&&y(St)})}var wt=o(at,2);{var It=y=>{W(y,{"data-testid":"delete-inbox-button",variant:"ghost",size:"sm",onclick:()=>ne(e(f).inbox),class:"text-destructive hover:text-destructive hover:bg-destructive/10",children:(P,nt)=>{C();var Q=T("Delete");r(P,Q)},$$slots:{default:!0}})};h(wt,y=>{O()||y(It)})}n(et),n(p),b(()=>S(N,e(f).inbox.text)),r(I,p)},$$slots:{default:!0}});var j=o(w,2);Xt(j,{class:"pt-0",children:(I,G)=>{var p=na(),$=v(p),U=v($,!0);n($);var J=o($,4),$t=v(J,!0);n(J);var yt=o(J,2);{var it=N=>{var et=ia(),at=o(F(et),2);dt(at,21,()=>e(f).inbox.tags,Pt,(St,wt)=>{Ht(St,{variant:"secondary",class:"text-xs",children:(It,y)=>{C();var P=T();b(()=>S(P,e(wt))),r(It,P)},$$slots:{default:!0}})}),n(at),r(N,et)};h(yt,N=>{e(f).inbox.tags.length>0&&N(it)})}n(p),b(N=>{S(U,N),S($t,e(f).inbox.added_by)},[()=>le(e(f).inbox.created_at)]),r(I,p)},$$slots:{default:!0}}),r(x,_)},$$slots:{default:!0}})}),n(u),r(d,u)};h(i,d=>{e(ot).length===0?d(c):d(l,!1)},!0)}r(t,a)};h(be,t=>{e(st)?t(he):t($e,!1)})}n(vt);var ye=o(vt,2);ze(ye,{get open(){return e(q)},set open(t){s(q,t,!0)},children:(t,a)=>{Ge(t,{"data-testid":"confirm-delete-dialog",children:(i,c)=>{var l=fa(),d=F(l);Ne(d,{children:(x,E)=>{var _=ua(),w=F(_);Ke(w,{children:(I,G)=>{C();var p=T("Delete Inbox Item?");r(I,p)},$$slots:{default:!0}});var j=o(w,2);Ve(j,{children:(I,G)=>{C();var p=T("Are you sure you want to delete this inbox item? This action cannot be undone.");r(I,p)},$$slots:{default:!0}}),r(x,_)},$$slots:{default:!0}});var u=o(d,2);{var m=x=>{var E=va(),_=v(E,!0);n(E),b(()=>S(_,e(L).text)),r(x,E)};h(u,x=>{e(L)&&x(m)})}var f=o(u,2);qe(f,{children:(x,E)=>{var _=ca(),w=F(_);W(w,{"data-testid":"confirm-delete-no",variant:"outline",onclick:()=>s(q,!1),get disabled(){return e(Y)},children:(I,G)=>{C();var p=T("Cancel");r(I,p)},$$slots:{default:!0}});var j=o(w,2);W(j,{"data-testid":"confirm-delete-yes",variant:"destructive",onclick:de,get disabled(){return e(Y)},children:(I,G)=>{C();var p=T();b(()=>S(p,e(Y)?"Deleting...":"Delete")),r(I,p)},$$slots:{default:!0}}),r(x,_)},$$slots:{default:!0}}),r(i,l)},$$slots:{default:!0}})},$$slots:{default:!0}}),b(()=>{Ft!==(Ft=e(H))&&(M.value=(M.__value=e(H))??"",Dt(M,e(H))),zt!==(zt=e(tt))&&(z.value=(z.__value=e(tt))??"",Dt(z,e(tt)))}),r(Yt,Mt),Ae()}Ce(["change"]);export{Ua as component};
@@ -0,0 +1 @@
1
+ import{f as m,a as i}from"../chunks/DvA-KON-.js";import"../chunks/BUZujXJ2.js";import{o as n}from"../chunks/CwELQvbx.js";import{p as c,a as f}from"../chunks/D3vxvonu.js";import{i as u}from"../chunks/BVA9Exy-.js";import{s as g,a as l}from"../chunks/pE6cYWlS.js";import{g as $}from"../chunks/B8a0xDxR.js";import{b as d}from"../chunks/D7LTux4W.js";import{p as v}from"../chunks/D82RulSH.js";var h=m('<div class="flex items-center justify-center h-32"><span class="text-muted-foreground">Redirecting to Specs...</span></div>');function k(o,t){c(t,!1);const s=()=>l(v,"$page",r),[r,e]=g();n(()=>{const p=s().url.search;$(`${d}/specs${p}`,{replaceState:!0})}),u();var a=h();i(o,a),f(),e()}export{k as component};
@@ -0,0 +1 @@
1
+ import{c as A,a as s,f as g,t as Q}from"../chunks/DvA-KON-.js";import{f as B,p as ct,b as k,d as vt,u as ft,e as M,a as pt,s as _,c as o,n as V,t as C,g as e,r}from"../chunks/D3vxvonu.js";import{s as $}from"../chunks/D9QNBZM2.js";import{l as G,s as J,i as D}from"../chunks/BysXJlZb.js";import{g as ut,i as mt,y as _t,B as Z,e as gt,p as xt}from"../chunks/DQA8NZIH.js";import{c as $t}from"../chunks/DAx07bEQ.js";import{C as ht}from"../chunks/CGtqifKp.js";import{C as bt}from"../chunks/BEOQc37C.js";import"../chunks/BUZujXJ2.js";import{I as K,s as R}from"../chunks/BHtYorjv.js";import{C as yt}from"../chunks/DxCk-KHc.js";import{T as wt}from"../chunks/B5LJFxqa.js";function Mt(h,v){const d=G(v,["children","$$slots","$$events","$$legacy"]);const f=[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"}],["path",{d:"M9 18h6"}],["path",{d:"M10 22h4"}]];K(h,J({name:"lightbulb"},()=>d,{get iconNode(){return f},children:(l,I)=>{var p=A(),b=B(p);R(b,v,"default",{}),s(l,p)},$$slots:{default:!0}}))}function Ct(h,v){const d=G(v,["children","$$slots","$$events","$$legacy"]);const f=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"}]];K(h,J({name:"zap"},()=>d,{get iconNode(){return f},children:(l,I)=>{var p=A(),b=B(p);R(b,v,"default",{}),s(l,p)},$$slots:{default:!0}}))}var Pt=g('<div class="rounded-md bg-red-50 p-4 text-sm text-red-800" data-testid="error"> </div>'),zt=g('<div class="text-center text-muted-foreground" data-testid="loading">Loading observations...</div>'),Dt=g('<div class="text-center text-muted-foreground" data-testid="observations-empty"><p>No unresolved observations.</p> <p class="text-sm">Observations are captured during work sessions.</p></div>'),It=g('<p class="mt-2 text-xs text-muted-foreground border-l-2 border-muted pl-3"> </p>'),Nt=g('<div class="flex items-start gap-3"><div data-testid="observation-type-icon"><!></div> <div class="flex-1"><div class="flex items-center gap-2 mb-2"><!> <span class="text-xs text-muted-foreground"> </span></div> <p class="text-sm leading-relaxed" data-testid="observation-content"> </p> <!></div></div>'),qt=g('<div class="flex flex-col gap-3"></div>'),Lt=g('<div class="flex flex-col gap-4" data-testid="observations-panel"><div class="flex items-center justify-between"><h1 class="text-3xl font-bold">Observations</h1> <!></div> <!> <!></div>');function Jt(h,v){ct(v,!0);let d=k(vt([])),f=k(!0),l=k("");const I={friction:wt,success:Ct,question:yt,idea:Mt},p={friction:"text-red-600",success:"text-green-600",question:"text-blue-600",idea:"text-yellow-600"},b={friction:"Friction",success:"Success",question:"Question",idea:"Idea"};ft(()=>{ut(),mt()&&U()});async function U(){try{M(f,!0),M(l,"");const t=await _t({resolved:!1});M(d,t.items,!0)}catch(t){M(l,t instanceof Error?t.message:"Failed to load observations",!0)}finally{M(f,!1)}}function W(t){const a=new Date(t),y=new Date().getTime()-a.getTime(),w=Math.floor(y/6e4),i=Math.floor(y/36e5),c=Math.floor(y/864e5);return w<1?"just now":w<60?`${w}m ago`:i<24?`${i}h ago`:c<7?`${c}d ago`:a.toLocaleDateString()}var N=Lt(),q=o(N),X=_(o(q),2);Z(X,{variant:"secondary","data-testid":"observations-count",children:(t,a)=>{V();var u=Q();C(()=>$(u,`${e(d).length??""} unresolved`)),s(t,u)},$$slots:{default:!0}}),r(q);var F=_(q,2);{var Y=t=>{var a=Pt(),u=o(a,!0);r(a),C(()=>$(u,e(l))),s(t,a)};D(F,t=>{e(l)&&t(Y)})}var tt=_(F,2);{var et=t=>{var a=zt();s(t,a)},at=t=>{var a=A(),u=B(a);{var y=i=>{var c=Dt();s(i,c)},w=i=>{var c=qt();gt(c,21,()=>e(d),L=>L._ulid,(L,m)=>{ht(L,{"data-testid":"observation-item",children:(st,Ot)=>{bt(st,{class:"pb-3",children:(rt,Tt)=>{var O=Nt(),P=o(O),ot=o(P);$t(ot,()=>I[e(m).type],(n,x)=>{x(n,{class:"h-5 w-5"})}),r(P);var S=_(P,2),T=o(S),E=o(T);Z(E,{variant:"outline","data-testid":"observation-type",children:(n,x)=>{V();var z=Q();C(()=>$(z,b[e(m).type])),s(n,z)},$$slots:{default:!0}});var H=_(E,2),it=o(H,!0);r(H),r(T);var j=_(T,2),nt=o(j,!0);r(j);var dt=_(j,2);{var lt=n=>{var x=It(),z=o(x,!0);r(x),C(()=>$(z,e(m).context)),s(n,x)};D(dt,n=>{e(m).context&&n(lt)})}r(S),r(O),C(n=>{xt(P,1,`mt-0.5 ${p[e(m).type]}`),$(it,n),$(nt,e(m).content)},[()=>W(e(m).created_at)]),s(rt,O)},$$slots:{default:!0}})},$$slots:{default:!0}})}),r(c),s(i,c)};D(u,i=>{e(d).length===0?i(y):i(w,!1)},!0)}s(t,a)};D(tt,t=>{e(f)?t(et):t(at,!1)})}r(N),s(h,N),pt()}export{Jt as component};
@@ -0,0 +1 @@
1
+ import{c as st,a as r,f as d,t as mt}from"../chunks/DvA-KON-.js";import{o as he,a as $e}from"../chunks/CwELQvbx.js";import{p as Tt,f as x,i as Kt,a as Ot,b as Q,d as xt,u as be,e as y,c as n,s,g as t,r as o,h as T,t as g,n as K,Q as ke}from"../chunks/D3vxvonu.js";import{s as _}from"../chunks/D9QNBZM2.js";import{s as Wt,r as Xt,i as v}from"../chunks/BysXJlZb.js";import{k as Yt,g as we,i as ye,C as Ce,E as Pe,c as ht,e as Dt,h as Gt,B as Se,r as Me,q as je,F as ze}from"../chunks/DQA8NZIH.js";import{F as Ae,h as Ne,r as De}from"../chunks/CUir3f4J.js";import{b as Jt}from"../chunks/D7LTux4W.js";import{s as Le,o as Te,a as Oe,u as Ie}from"../chunks/BP352uRn.js";import{C as Re}from"../chunks/CGtqifKp.js";import{C as Be}from"../chunks/DjG7s6hm.js";import{C as Ee}from"../chunks/BEOQc37C.js";import{B as Lt}from"../chunks/BkOJ8DkV.js";import{S as ct}from"../chunks/DAMmvwn4.js";import{I as Zt}from"../chunks/B5wTVqxm.js";import{C as Fe}from"../chunks/T3zZGv51.js";const Ue=!1,Ta=Object.freeze(Object.defineProperty({__proto__:null,ssr:Ue},Symbol.toStringTag,{value:"Module"}));function Ve(rt,O){Tt(O,!0);let C=Xt(O,["$$slots","$$events","$$legacy"]);const U=[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z"}],["path",{d:"M15 5.764v15"}],["path",{d:"M9 3.236v15"}]];Zt(rt,Wt({name:"map"},()=>C,{get iconNode(){return U},children:(V,W)=>{var w=st(),D=x(w);Yt(D,()=>O.children??Kt),r(V,w)},$$slots:{default:!0}})),Ot()}function He(rt,O){Tt(O,!0);let C=Xt(O,["$$slots","$$events","$$legacy"]);const U=[["path",{d:"M13 5h8"}],["path",{d:"M13 12h8"}],["path",{d:"M13 19h8"}],["path",{d:"m3 17 2 2 4-4"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1"}]];Zt(rt,Wt({name:"list-todo"},()=>C,{get iconNode(){return U},children:(V,W)=>{var w=st(),D=x(w);Yt(D,()=>O.children??Kt),r(V,w)},$$slots:{default:!0}})),Ot()}var qe=d("&middot; <!>",1),Qe=d('<p class="text-sm text-muted-foreground" data-testid="plans-summary"> <!> <!></p>'),Ge=d('<div class="bg-destructive/10 text-destructive p-4 rounded-lg text-sm" data-testid="error-message" role="alert"> </div>'),Je=d('<div class="h-28 rounded-lg bg-muted ds-shimmer"></div>'),Ke=d('<div class="space-y-2" data-testid="plans-loading"></div>'),We=d('Create plans with <code class="text-xs bg-muted px-1 py-0.5 rounded">kspec plan add</code> to track implementation progress.',1),Xe=d('<h2 class="text-lg font-medium text-muted-foreground mb-1">No plans yet</h2> <p class="text-sm text-muted-foreground"><!></p>',1),Ye=d('<h2 class="text-lg font-medium text-muted-foreground mb-1">No matching plans</h2> <p class="text-sm text-muted-foreground">Try adjusting the filter above.</p>',1),Ze=d('<div class="flex flex-col items-center justify-center py-16" data-testid="plans-empty"><!> <!></div>'),ta=d('<div class="flex items-start justify-between gap-4"><div class="flex-1 min-w-0"><div class="flex items-center gap-2 mb-1"><!> <h3 class="text-sm font-semibold truncate" data-testid="plan-title"> </h3></div></div></div>'),ea=d('<span class="inline-flex items-center gap-1"><span class="inline-block size-2 rounded-full bg-[var(--design-status-completed)]"></span> </span>'),aa=d('<span class="inline-flex items-center gap-1"><span class="inline-block size-2 rounded-full bg-[var(--design-status-in-progress)]"></span> </span>'),sa=d('<span class="inline-flex items-center gap-1"><span class="inline-block size-2 rounded-full bg-[var(--design-status-pending)]"></span> </span>'),ra=d('<span class="inline-flex items-center gap-1"><span class="inline-block size-2 rounded-full bg-[var(--design-status-blocked)]"></span> </span>'),oa=d('<div class="flex items-center gap-3"><div class="flex-1 h-2 rounded-full bg-muted overflow-hidden" data-testid="plan-progress-bar"><div class="h-full rounded-full transition-all duration-300 bg-[var(--design-status-completed)]"></div></div> <span class="text-xs font-medium text-muted-foreground whitespace-nowrap" data-testid="plan-progress-text"> </span></div> <div class="flex flex-wrap gap-2 text-xs text-muted-foreground" data-testid="plan-task-breakdown"><!> <!> <!> <!></div>',1),na=d('<span>&middot;</span> <code class="text-xs bg-muted px-1 py-0.5 rounded" data-testid="plan-slug"> </code>',1),da=d("<!> View Specs",1),ia=d("<!> View Tasks",1),la=d(" <!>",1),va=d('<div class="space-y-2" data-testid="plan-content-loading"><!> <!> <!> <!> <!></div>'),ua=d('<div class="text-sm text-destructive bg-destructive/10 p-3 rounded" role="alert" data-testid="plan-content-error"> </div>'),ca=d('<div class="prose prose-sm dark:prose-invert max-w-none" data-testid="plan-content-rendered"><!></div>'),pa=d('<p class="text-sm text-muted-foreground italic" data-testid="plan-content-empty">No content available for this plan.</p>'),_a=d('<div class="mt-3 border-t pt-3" data-testid="plan-content-section"><!></div>'),fa=d('<div class="flex flex-col gap-3"><!> <div class="flex items-center gap-2 text-xs text-muted-foreground"><span data-testid="plan-created-at"> </span> <span>&middot;</span> <span data-testid="plan-spec-count"> </span> <span>&middot;</span> <span data-testid="plan-task-count"> </span> <!></div></div> <div class="flex items-center gap-2 pt-1" data-testid="plan-actions"><!> <!> <!></div> <!>',1),ga=d("<!> <!>",1),ma=d('<div class="flex flex-col gap-3" data-testid="plans-list"></div>'),xa=d('<div class="flex flex-col gap-4 p-6"><div class="flex items-center justify-between"><div><h1 class="text-2xl font-bold">Plans</h1> <!></div></div> <div class="flex flex-wrap gap-2 items-center" data-testid="plans-filters"><label for="plans-status-filter" class="text-sm font-medium text-muted-foreground">Status</label> <select id="plans-status-filter" class="rounded-md border bg-background px-3 py-1.5 text-sm" data-testid="plans-status-filter"><option>All Status</option><option>Draft</option><option>Approved</option><option>Active</option><option>Completed</option><option>Rejected</option></select></div> <!> <!></div>');function Oa(rt,O){Tt(O,!0);let C=Q(xt([])),U=Q(!0),V=Q(""),W=Q("all"),w=Q(null),D=Q(xt({})),X=Q(xt({})),Y=Q(xt({}));const It={draft:"Draft",approved:"Approved",active:"Active",completed:"Completed",rejected:"Rejected"},te={draft:"bg-status-pending text-status-pending-fg",approved:"bg-status-pending-review text-status-pending-review-fg",active:"bg-status-in-progress text-status-in-progress-fg",completed:"bg-status-completed text-status-completed-fg",rejected:"bg-status-blocked text-status-blocked-fg"};let pt=T(()=>t(W)==="all"?t(C):t(C).filter(a=>a.status===t(W))),$t=T(()=>{const a={};for(const l of t(C))a[l.status]=(a[l.status]??0)+1;return a});he(()=>{ht()||(Le(["tasks:updates"]),Te("tasks:updates",Bt))}),$e(()=>{ht()||(Oe("tasks:updates",Bt),Ie(["tasks:updates"]))}),be(()=>{we(),ye()&&Rt()});async function Rt(){try{y(U,!0),y(V,"");const a=await Ce();y(C,a.items,!0)}catch(a){y(V,a instanceof Error?a.message:"Failed to load plans",!0)}finally{y(U,!1)}}function Bt(){Rt()}async function ee(a){const l=a.slugs[0]??a._ulid;if(t(w)===a._ulid){y(w,null);return}if(y(w,a._ulid,!0),t(D)[a._ulid]===void 0&&!t(X)[a._ulid]){y(X,{...t(X),[a._ulid]:!0},!0),y(Y,{...t(Y),[a._ulid]:""},!0);try{const h=await ze(l);y(D,{...t(D),[a._ulid]:h.content},!0)}catch(h){y(Y,{...t(Y),[a._ulid]:h instanceof Error?h.message:"Failed to load plan content"},!0)}finally{y(X,{...t(X),[a._ulid]:!1},!0)}}}function ae(a){const l=new Date(a),I=new Date().getTime()-l.getTime(),R=Math.floor(I/6e4),j=Math.floor(I/36e5),P=Math.floor(I/864e5);return R<1?"just now":R<60?`${R}m ago`:j<24?`${j}h ago`:P<7?`${P}d ago`:l.toLocaleDateString()}function Et(a){return a.task_progress.total===0?0:Math.round(a.task_progress.completed/a.task_progress.total*100)}var bt=xa(),kt=n(bt),Ft=n(kt),se=s(n(Ft),2);{var re=a=>{var l=Qe(),h=n(l),I=s(h);{var R=$=>{var e=qe(),ot=s(x(e));Dt(ot,17,()=>Object.entries(t($t)),Gt,(_t,z,B)=>{var G=T(()=>ke(t(z),2));let H=()=>t(G)[0],nt=()=>t(G)[1];K();var A=mt();g((m,N)=>_(A,`${nt()??""} ${m??""}${N??""}`),[()=>It[H()]?.toLowerCase()??H(),()=>B<Object.entries(t($t)).length-1?", ":""]),r(_t,A)}),r($,e)};v(I,$=>{Object.keys(t($t)).length>0&&$(R)})}var j=s(I,2);{var P=$=>{var e=mt();g(()=>_(e,`· Showing ${t(pt).length??""} filtered`)),r($,e)};v(j,$=>{t(pt).length!==t(C).length&&$(P)})}o(l),g(()=>_(h,`${t(C).length??""} plan${t(C).length===1?"":"s"} `)),r(a,l)};v(se,a=>{t(U)||a(re)})}o(Ft),o(kt);var wt=s(kt,2),yt=s(n(wt),2),Ct=n(yt);Ct.value=Ct.__value="all";var Pt=s(Ct);Pt.value=Pt.__value="draft";var St=s(Pt);St.value=St.__value="approved";var Mt=s(St);Mt.value=Mt.__value="active";var jt=s(Mt);jt.value=jt.__value="completed";var Ut=s(jt);Ut.value=Ut.__value="rejected",o(yt),o(wt);var Vt=s(wt,2);{var oe=a=>{var l=Ge(),h=n(l,!0);o(l),g(()=>_(h,t(V))),r(a,l)};v(Vt,a=>{t(V)&&a(oe)})}var ne=s(Vt,2);{var de=a=>{var l=Ke();Dt(l,20,()=>Array(3),Gt,(h,I)=>{var R=Je();r(h,R)}),o(l),r(a,l)},ie=a=>{var l=st(),h=x(l);{var I=j=>{var P=Ze(),$=n(P);Ve($,{class:"size-12 text-muted-foreground/30 mb-4"});var e=s($,2);{var ot=z=>{var B=Xe(),G=s(x(B),2),H=n(G);{var nt=m=>{var N=mt("No plan data available in the snapshot.");r(m,N)},A=m=>{var N=We();K(2),r(m,N)};v(H,m=>{ht()?m(nt):m(A,!1)})}o(G),r(z,B)},_t=z=>{var B=Ye();K(2),r(z,B)};v(e,z=>{t(C).length===0?z(ot):z(_t,!1)})}o(P),r(j,P)},R=j=>{var P=ma();Dt(P,21,()=>t(pt),$=>$._ulid,($,e)=>{Re($,{class:"transition-all duration-200 hover:shadow-md","data-testid":"plan-card",children:(ot,_t)=>{var z=ga(),B=x(z);Ee(B,{class:"pb-3",children:(H,nt)=>{var A=ta(),m=n(A),N=n(m),ft=n(N);{let zt=T(()=>te[t(e).status]??"bg-muted text-muted-foreground");Se(ft,{get class(){return t(zt)},"data-testid":"plan-status",children:(lt,Ht)=>{K();var Z=mt();g(()=>_(Z,It[t(e).status]??t(e).status)),r(lt,Z)},$$slots:{default:!0}})}var dt=s(ft,2),it=n(dt,!0);o(dt),o(N),o(m),o(A),g(()=>_(it,t(e).title)),r(H,A)},$$slots:{default:!0}});var G=s(B,2);Be(G,{class:"pt-0",children:(H,nt)=>{var A=fa(),m=x(A),N=n(m);{var ft=i=>{var f=oa(),b=x(f),S=n(b),q=n(S);o(S);var p=s(S,2),k=n(p);o(p),o(b);var E=s(b,2),J=n(E);{var tt=u=>{var c=ea(),F=s(n(c));o(c),g(()=>_(F,` ${t(e).task_progress.completed??""} completed`)),r(u,c)};v(J,u=>{t(e).task_progress.completed>0&&u(tt)})}var M=s(J,2);{var L=u=>{var c=aa(),F=s(n(c));o(c),g(()=>_(F,` ${t(e).task_progress.in_progress??""} in progress`)),r(u,c)};v(M,u=>{t(e).task_progress.in_progress>0&&u(L)})}var et=s(M,2);{var Nt=u=>{var c=sa(),F=s(n(c));o(c),g(()=>_(F,` ${t(e).task_progress.pending??""} pending`)),r(u,c)};v(et,u=>{t(e).task_progress.pending>0&&u(Nt)})}var vt=s(et,2);{var gt=u=>{var c=ra(),F=s(n(c));o(c),g(()=>_(F,` ${t(e).task_progress.blocked??""} blocked`)),r(u,c)};v(vt,u=>{t(e).task_progress.blocked>0&&u(gt)})}o(E),g((u,c)=>{Me(q,`width: ${u??""}%`),_(k,`${c??""}% (${t(e).task_progress.completed??""}/${t(e).task_progress.total??""} tasks)`)},[()=>Et(t(e)),()=>Et(t(e))]),r(i,f)};v(N,i=>{t(e).task_progress.total>0&&i(ft)})}var dt=s(N,2),it=n(dt),zt=n(it,!0);o(it);var lt=s(it,4),Ht=n(lt);o(lt);var Z=s(lt,4),le=n(Z);o(Z);var ve=s(Z,2);{var ue=i=>{var f=na(),b=s(x(f),2),S=n(b);o(b),g(()=>_(S,`@${t(e).slugs[0]??""}`)),r(i,f)};v(ve,i=>{t(e).slugs.length>0&&i(ue)})}o(dt),o(m);var At=s(m,2),qt=n(At);{var ce=i=>{{let f=T(()=>Jt),b=T(()=>encodeURIComponent(t(e).slugs[0]??t(e)._ulid));Lt(i,{variant:"outline",size:"sm",get href(){return`${t(f)??""}/items?plan=${t(b)??""}`},class:"h-7 gap-1.5 text-xs","data-testid":"plan-view-specs",children:(S,q)=>{var p=da(),k=x(p);Ae(k,{class:"size-3.5"}),K(),r(S,p)},$$slots:{default:!0}})}};v(qt,i=>{t(e).spec_count>0&&i(ce)})}var Qt=s(qt,2);{var pe=i=>{{let f=T(()=>Jt),b=T(()=>encodeURIComponent(t(e).slugs[0]??t(e)._ulid));Lt(i,{variant:"outline",size:"sm",get href(){return`${t(f)??""}/tasks?plan=${t(b)??""}`},class:"h-7 gap-1.5 text-xs","data-testid":"plan-view-tasks",children:(S,q)=>{var p=ia(),k=x(p);He(k,{class:"size-3.5"}),K(),r(S,p)},$$slots:{default:!0}})}};v(Qt,i=>{t(e).task_count>0&&i(pe)})}var _e=s(Qt,2);{var fe=i=>{{let f=T(()=>t(w)===t(e)._ulid);Lt(i,{variant:"ghost",size:"sm",class:"h-7 gap-1.5 text-xs ml-auto",onclick:()=>ee(t(e)),get"aria-expanded"(){return t(f)},get"aria-controls"(){return`plan-content-${t(e)._ulid??""}`},"data-testid":"plan-expand-toggle",children:(b,S)=>{K();var q=la(),p=x(q),k=s(p);{let E=T(()=>t(w)===t(e)._ulid?"rotate-180":"");Fe(k,{get class(){return`size-3.5 transition-transform duration-200 ${t(E)??""}`}})}g(()=>_(p,`${t(w)===t(e)._ulid?"Hide Content":"Show Content"} `)),r(b,q)},$$slots:{default:!0}})}};v(_e,i=>{ht()||i(fe)})}o(At);var ge=s(At,2);{var me=i=>{var f=_a(),b=n(f);{var S=p=>{var k=va(),E=n(k);ct(E,{class:"h-4 w-full"});var J=s(E,2);ct(J,{class:"h-4 w-5/6"});var tt=s(J,2);ct(tt,{class:"h-4 w-4/6"});var M=s(tt,2);ct(M,{class:"h-4 w-full"});var L=s(M,2);ct(L,{class:"h-4 w-3/6"}),o(k),r(p,k)},q=p=>{var k=st(),E=x(k);{var J=M=>{var L=ua(),et=n(L,!0);o(L),g(()=>_(et,t(Y)[t(e)._ulid])),r(M,L)},tt=M=>{var L=st(),et=x(L);{var Nt=vt=>{var gt=st(),u=x(gt);{var c=at=>{var ut=ca(),xe=n(ut);Ne(xe,()=>De(t(D)[t(e)._ulid])),o(ut),r(at,ut)},F=at=>{var ut=pa();r(at,ut)};v(u,at=>{t(D)[t(e)._ulid]?at(c):at(F,!1)})}r(vt,gt)};v(et,vt=>{t(D)[t(e)._ulid]!==void 0&&vt(Nt)},!0)}r(M,L)};v(E,M=>{t(Y)[t(e)._ulid]?M(J):M(tt,!1)},!0)}r(p,k)};v(b,p=>{t(X)[t(e)._ulid]?p(S):p(q,!1)})}o(f),g(()=>je(f,"id",`plan-content-${t(e)._ulid??""}`)),r(i,f)};v(ge,i=>{t(w)===t(e)._ulid&&i(me)})}g(i=>{_(zt,i),_(Ht,`${t(e).spec_count??""} spec${t(e).spec_count===1?"":"s"}`),_(le,`${t(e).task_count??""} task${t(e).task_count===1?"":"s"}`)},[()=>ae(t(e).created_at)]),r(H,A)},$$slots:{default:!0}}),r(ot,z)},$$slots:{default:!0}})}),o(P),r(j,P)};v(h,j=>{t(pt).length===0?j(I):j(R,!1)},!0)}r(a,l)};v(ne,a=>{t(U)?a(de):a(ie,!1)})}o(bt),Pe(yt,()=>t(W),a=>y(W,a)),r(rt,bt),Ot()}export{Oa as component,Ta as universal};
@@ -0,0 +1 @@
1
+ import{f as p,a as d,c as nt,t as j}from"../chunks/DvA-KON-.js";import{p as Zt,b as D,d as dt,u as qt,a as Ct,e as h,s as n,c as r,g as t,r as a,t as $,h as O,n as Q,f as U}from"../chunks/D3vxvonu.js";import{d as It,s as f}from"../chunks/D9QNBZM2.js";import{i as m}from"../chunks/BysXJlZb.js";import{g as Vt,i as Gt,n as Ht,o as Jt,p as W,e as lt,h as Kt,c as Ot,B as Qt,q as X}from"../chunks/DQA8NZIH.js";import{b as Ut}from"../chunks/D7LTux4W.js";import{i as Y,g as vt,f as Wt,a as Xt}from"../chunks/_ySfNjkF.js";import{R as Yt}from"../chunks/Cncwi6fQ.js";import{T as ct}from"../chunks/CrCIbn0C.js";import{Z as ut}from"../chunks/ExCq5swK.js";import{A as ft}from"../chunks/DBYE9jOd.js";var te=p('<p class="text-sm text-muted-foreground"> </p>'),ee=p('<div class="flex gap-1" data-testid="trigger-filter"><button>All</button> <button><!> Manual</button> <button><!> Dispatched</button></div>'),se=p('<div class="bg-destructive/10 text-destructive p-4 rounded-lg" role="alert" data-testid="sessions-error"> </div>'),ae=p('<div class="h-16 rounded-lg bg-muted ds-shimmer"></div>'),re=p('<div class="space-y-2" data-testid="sessions-loading"></div>'),ie=p('<div class="flex flex-col items-center justify-center py-16" data-testid="sessions-empty"><!> <h2 class="text-lg font-medium text-muted-foreground mb-1">No sessions yet</h2> <p class="text-sm text-muted-foreground"><!></p></div>'),oe=p('<div class="flex flex-col items-center justify-center py-16" data-testid="sessions-filter-empty"><!> <h2 class="text-lg font-medium text-muted-foreground mb-1">No matching sessions</h2> <p class="text-sm text-muted-foreground"> </p></div>'),ne=p('<span class="text-xs text-muted-foreground">&middot;</span> <span data-testid="session-task-ref"><!></span>',1),de=p('<a class="flex items-center gap-4 p-3 rounded-lg border hover:bg-accent/30 transition-colors" data-testid="session-row"><!> <span class="flex-shrink-0" data-testid="session-trigger-icon"><!></span> <div class="flex-1 min-w-0"><div class="flex items-center gap-2"><span class="text-sm font-medium"> </span> <span class="text-xs text-muted-foreground font-mono" data-testid="session-id"> </span> <!></div> <div class="text-xs text-muted-foreground"><span data-testid="session-trigger-label"> </span> <!> <!></div></div> <div class="text-right flex-shrink-0"><p class="text-xs font-mono text-muted-foreground" data-testid="session-duration"> </p> <p class="text-[10px] text-muted-foreground/60" data-testid="session-age"> </p></div></a>'),le=p('<div class="space-y-2" data-testid="sessions-list"></div>'),ve=p('<div class="flex flex-col gap-4 p-6"><div class="flex items-end justify-between gap-4"><div><h1 class="text-2xl font-bold">Sessions</h1> <!></div> <!></div> <!> <!></div>');function ke(gt,mt){Zt(mt,!0);let _=D(dt([])),F=D(dt({})),A=D(!0),N=D(""),x=D("all"),L=O(()=>t(x)==="all"?t(_):t(x)==="manual"?t(_).filter(e=>!Y(e.trigger)):t(_).filter(e=>Y(e.trigger)));async function pt(){h(A,!0),h(N,"");try{const[e,o]=await Promise.all([Ht(),Jt({limit:1e3})]);h(_,e.items,!0);const l={};for(const v of o.items){if(v.slugs?.length)for(const w of v.slugs)l[`@${w}`]=v.title;l[`@${v._ulid}`]=v.title}h(F,l,!0)}catch(e){h(N,e instanceof Error?e.message:"Failed to load sessions",!0)}finally{h(A,!1)}}function _t(e){switch(e){case"active":return"bg-status-in-progress text-status-in-progress-fg";case"completed":return"bg-status-completed text-status-completed-fg";case"failed":return"bg-status-blocked text-status-blocked-fg";case"abandoned":return"bg-status-needs-work text-status-needs-work-fg";case"timed_out":return"bg-status-pending text-status-pending-fg";default:return"bg-status-cancelled text-status-cancelled-fg"}}qt(()=>{Vt(),Gt()&&pt()});var M=ve(),R=r(M),Z=r(R),xt=n(r(Z),2);{var bt=e=>{var o=te(),l=r(o);a(o),$(()=>f(l,`${t(L).length??""} of ${t(_).length??""} session${t(_).length===1?"":"s"}`)),d(e,o)};m(xt,e=>{!t(A)&&t(_).length>0&&e(bt)})}a(Z);var ht=n(Z,2);{var yt=e=>{var o=ee(),l=r(o);l.__click=()=>h(x,"all");var v=n(l,2);v.__click=()=>h(x,"manual");var w=r(v);ct(w,{class:"size-3"}),Q(),a(v);var g=n(v,2);g.__click=()=>h(x,"dispatched");var y=r(g);ut(y,{class:"size-3"}),Q(),a(g),a(o),$(()=>{W(l,1,`px-2.5 py-1 text-xs rounded-md transition-colors ${t(x)==="all"?"bg-primary text-primary-foreground":"bg-secondary text-muted-foreground hover:bg-accent"}`),W(v,1,`px-2.5 py-1 text-xs rounded-md transition-colors inline-flex items-center gap-1 ${t(x)==="manual"?"bg-primary text-primary-foreground":"bg-secondary text-muted-foreground hover:bg-accent"}`),W(g,1,`px-2.5 py-1 text-xs rounded-md transition-colors inline-flex items-center gap-1 ${t(x)==="dispatched"?"bg-primary text-primary-foreground":"bg-secondary text-muted-foreground hover:bg-accent"}`)}),d(e,o)};m(ht,e=>{!t(A)&&t(_).length>0&&e(yt)})}a(R);var tt=n(R,2);{var kt=e=>{var o=se(),l=r(o,!0);a(o),$(()=>f(l,t(N))),d(e,o)};m(tt,e=>{t(N)&&e(kt)})}var $t=n(tt,2);{var wt=e=>{var o=re();lt(o,20,()=>Array(5),Kt,(l,v)=>{var w=ae();d(l,w)}),a(o),d(e,o)},St=e=>{var o=nt(),l=U(o);{var v=g=>{var y=ie(),P=r(y);ft(P,{class:"size-12 text-muted-foreground/30 mb-4"});var B=n(P,4),q=r(B);{var k=c=>{var s=j("Session data is not available in static mode.");d(c,s)},b=c=>{var s=j("Sessions are created when agents run tasks.");d(c,s)};m(q,c=>{Ot()?c(k):c(b,!1)})}a(B),a(y),d(g,y)},w=g=>{var y=nt(),P=U(y);{var B=k=>{var b=oe(),c=r(b);ft(c,{class:"size-12 text-muted-foreground/30 mb-4"});var s=n(c,4),S=r(s);a(s),a(b),$(()=>f(S,`No sessions match the "${t(x)??""}" filter.`)),d(k,b)},q=k=>{var b=le();lt(b,21,()=>t(L),c=>c.id,(c,s)=>{var S=de(),et=r(S);{let i=O(()=>_t(t(s).status));Qt(et,{get class(){return t(i)},children:(u,T)=>{Q();var z=j();$(()=>f(z,t(s).status)),d(u,z)},$$slots:{default:!0}})}var E=n(et,2),zt=r(E);{var At=i=>{ut(i,{class:"size-3.5 text-status-in-progress"})},Tt=i=>{ct(i,{class:"size-3.5 text-muted-foreground"})};m(zt,i=>{Y(t(s).trigger)?i(At):i(Tt,!1)})}a(E);var C=n(E,2),I=r(C),V=r(I),jt=r(V,!0);a(V);var G=n(V,2),Dt=r(G,!0);a(G);var Nt=n(G,2);{var Pt=i=>{var u=ne(),T=n(U(u),2),z=r(T);{let K=O(()=>t(F)[t(s).task_id]||t(F)[`@${t(s).task_id}`]);Yt(z,{get ref(){return t(s).task_id},type:"task",get title(){return t(K)},inline:!0,class:"text-xs"})}a(T),d(i,u)};m(Nt,i=>{t(s).task_id&&i(Pt)})}a(I);var st=n(I,2),H=r(st),Bt=r(H,!0);a(H);var at=n(H),rt=n(at);{var Et=i=>{var u=j();$(()=>f(u,`· ${t(s).iteration_count??""} iterations`)),d(i,u)};m(rt,i=>{t(s).iteration_count>0&&i(Et)})}var Ft=n(rt,2);{var Lt=i=>{var u=j();$(()=>f(u,`· ${t(s).tasks_completed??""} tasks`)),d(i,u)};m(Ft,i=>{t(s).tasks_completed>0&&i(Lt)})}a(st),a(C);var it=n(C,2),J=r(it),Mt=r(J,!0);a(J);var ot=n(J,2),Rt=r(ot,!0);a(ot),a(it),a(S),$((i,u,T,z,K)=>{X(S,"href",`${Ut??""}/sessions/${t(s).id??""}`),X(S,"data-session-id",t(s).id),X(E,"title",i),f(jt,t(s).agent_type),f(Dt,u),f(Bt,T),f(at,` · ${t(s).event_count??""} events `),f(Mt,z),f(Rt,K)},[()=>vt(t(s).trigger),()=>t(s).id.slice(0,8),()=>vt(t(s).trigger),()=>Wt(t(s).duration_ms),()=>Xt(t(s).started_at)]),d(c,S)}),a(b),d(k,b)};m(P,k=>{t(L).length===0?k(B):k(q,!1)},!0)}d(g,y)};m(l,g=>{t(_).length===0?g(v):g(w,!1)},!0)}d(e,o)};m($t,e=>{t(A)?e(wt):e(St,!1)})}a(M),d(gt,M),Ct()}It(["click"]);export{ke as component};
@@ -0,0 +1 @@
1
+ import{f,a as i,c as X,t as De}from"../chunks/DvA-KON-.js";import{o as St,a as Mt}from"../chunks/CwELQvbx.js";import{p as $,c as s,s as r,r as t,g as a,h as V,t as C,a as ee,f as J,i as ye,e as D,b as Q,n as Ae,u as Ct,d as st}from"../chunks/D3vxvonu.js";import{s as x,d as Je,e as zt}from"../chunks/D9QNBZM2.js";import{s as we,r as Te,i as m,p as Le,b as Nt}from"../chunks/BysXJlZb.js";import{k as Se,p as at,q as xe,e as Fe,B as At,r as Bt,h as ut,a0 as rt,a1 as it,o as jt}from"../chunks/DQA8NZIH.js";import{s as Dt,a as Lt}from"../chunks/pE6cYWlS.js";import{p as Ft}from"../chunks/D82RulSH.js";import{s as Ht,o as It,a as Ot,u as Pt}from"../chunks/BP352uRn.js";import{b as He,c as Et,d as qt,e as Jt,s as Vt,h as Wt,i as nt,f as ot,j as dt,g as Rt,k as Zt,p as lt,l as vt,m as Xt}from"../chunks/_ySfNjkF.js";import{h as Gt,r as Kt,F as Qt}from"../chunks/CUir3f4J.js";import{C as mt}from"../chunks/BWET-efb.js";import{I as Me}from"../chunks/B5wTVqxm.js";import{C as Ut}from"../chunks/D6TVmR9T.js";import{X as Yt}from"../chunks/DAh4Wfku.js";import{S as Ne}from"../chunks/8RBjHMN1.js";import{R as ct}from"../chunks/Cncwi6fQ.js";import{B as $t}from"../chunks/iEtR5cV6.js";import{C as es}from"../chunks/DlaTnPKL.js";import{Z as ts}from"../chunks/ExCq5swK.js";import{T as ss}from"../chunks/CrCIbn0C.js";import{C as as}from"../chunks/BpuwufMc.js";import"../chunks/BUZujXJ2.js";import{b as rs}from"../chunks/D7LTux4W.js";var is=f('<div class="py-2" data-testid="message-block"><div class="flex items-start gap-3"><div class="flex-shrink-0 w-7 h-7 rounded-full bg-primary/10 flex items-center justify-center"><span class="text-xs font-bold text-primary">A</span></div> <div class="flex-1 min-w-0"><div class="flex items-center gap-2 mb-1"><span class="text-xs font-medium text-muted-foreground">Agent</span> <span class="text-[10px] text-muted-foreground/60 font-mono"> </span></div> <div class="text-sm break-words leading-relaxed prose prose-sm prose-invert max-w-none" data-testid="message-content"><!></div></div></div></div>');function ns(T,e){$(e,!0);const d=V(()=>Kt(e.block.content));var p=is(),v=s(p),g=r(s(v),2),n=s(g),_=r(s(n),2),z=s(_,!0);t(_),t(n);var F=r(n,2),S=s(F);Gt(S,()=>a(d)),t(F),t(g),t(v),t(p),C(b=>x(z,b),[()=>He(e.block.timestamp)]),i(T,p),ee()}function os(T,e){$(e,!0);let d=Te(e,["$$slots","$$events","$$legacy"]);const p=[["path",{d:"M12 2v4"}],["path",{d:"m16.2 7.8 2.9-2.9"}],["path",{d:"M18 12h4"}],["path",{d:"m16.2 16.2 2.9 2.9"}],["path",{d:"M12 18v4"}],["path",{d:"m4.9 19.1 2.9-2.9"}],["path",{d:"M2 12h4"}],["path",{d:"m4.9 4.9 2.9 2.9"}]];Me(T,we({name:"loader"},()=>d,{get iconNode(){return p},children:(v,g)=>{var n=X(),_=J(n);Se(_,()=>e.children??ye),i(v,n)},$$slots:{default:!0}})),ee()}var ds=f('<span class="text-xs text-muted-foreground truncate min-w-0"> </span>'),ls=f('<span class="text-[10px] text-muted-foreground font-mono ml-auto flex-shrink-0 whitespace-nowrap"> </span>'),vs=f('<div><p class="text-[10px] font-medium text-muted-foreground uppercase tracking-wide mb-1">Input</p> <pre class="text-xs font-mono bg-secondary/50 rounded p-2 overflow-x-auto max-h-60 whitespace-pre-wrap break-words"> </pre></div>'),cs=f('<span class="text-destructive">(error)</span>'),us=f('<button class="text-xs text-primary hover:underline mt-1"> </button>'),ms=f('<div><p class="text-[10px] font-medium text-muted-foreground uppercase tracking-wide mb-1">Output <!></p> <pre> </pre> <!></div>'),fs=f('<div class="px-3 pb-3 space-y-2"><!> <!></div>'),xs=f('<div data-testid="tool-call-block"><button class="flex items-center gap-2 w-full px-3 py-2 text-left text-sm hover:bg-accent/30 transition-colors overflow-hidden"><!> <span class="text-xs text-muted-foreground font-mono flex-shrink-0 whitespace-nowrap"> </span> <span class="inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono bg-secondary min-w-0 max-w-[40%]"><span class="flex-shrink-0"> </span> <span class="truncate"> </span></span> <!> <!> <!></button> <!></div>');function gs(T,e){$(e,!0);let d=Q(!1),p=V(()=>e.block.status==="completed"?"border-l-status-completed":e.block.status==="failed"?"border-l-status-blocked":"border-l-status-pending-review"),v=V(()=>Et(e.block.toolName)),g=V(()=>qt(e.block.toolName,e.block.input));function n(l){if(typeof l=="string")return l;try{return JSON.stringify(l,null,2)}catch{return String(l)}}function _(l){if(typeof l=="string")return l;try{return JSON.stringify(l,null,2)}catch{return String(l)}}let z=V(()=>e.block.output?n(e.block.output):""),F=V(()=>a(z).length>1e3?a(z).slice(0,1e3):a(z)),S=V(()=>a(z).length>1e3),b=Q(!1);var N=xs(),I=s(N);I.__click=()=>D(d,!a(d));var A=s(I);{let l=V(()=>a(d)?"rotate-90":"");mt(A,{get class(){return`size-3.5 flex-shrink-0 text-muted-foreground transition-transform ${a(l)??""}`}})}var M=r(A,2),W=s(M,!0);t(M);var U=r(M,2),te=s(U),re=s(te,!0);t(te);var k=r(te,2),h=s(k,!0);t(k),t(U);var O=r(U,2);{var G=l=>{os(l,{class:"size-3.5 flex-shrink-0 text-status-pending-review ds-tool-spin"})},K=l=>{var P=X(),Z=J(P);{var se=u=>{Ut(u,{class:"size-3.5 flex-shrink-0 text-status-completed"})},o=u=>{var y=X(),B=J(y);{var E=L=>{Yt(L,{class:"size-3.5 flex-shrink-0 text-status-blocked"})};m(B,L=>{e.block.status==="failed"&&L(E)},!0)}i(u,y)};m(Z,u=>{e.block.status==="completed"?u(se):u(o,!1)},!0)}i(l,P)};m(O,l=>{e.block.status==="running"?l(G):l(K,!1)})}var H=r(O,2);{var q=l=>{var P=ds(),Z=s(P,!0);t(P),C(()=>x(Z,a(g))),i(l,P)};m(H,l=>{!a(d)&&a(g)&&l(q)})}var ue=r(H,2);{var ge=l=>{var P=ls(),Z=s(P,!0);t(P),C(se=>x(Z,se),[()=>Jt(e.block.durationMs)]),i(l,P)};m(ue,l=>{e.block.durationMs!==void 0&&l(ge)})}t(I);var de=r(I,2);{var le=l=>{var P=fs(),Z=s(P);{var se=y=>{var B=vs(),E=r(s(B),2),L=s(E,!0);t(E),t(B),C(ae=>x(L,ae),[()=>_(e.block.input)]),i(y,B)};m(Z,y=>{e.block.input&&y(se)})}var o=r(Z,2);{var u=y=>{var B=ms(),E=s(B),L=r(s(E));{var ae=ne=>{var me=cs();i(ne,me)};m(L,ne=>{e.block.status==="failed"&&ne(ae)})}t(E);var ie=r(E,2),Be=s(ie,!0);t(ie);var Ie=r(ie,2);{var Ce=ne=>{var me=us();me.__click=()=>D(b,!0);var ze=s(me);t(me),C(je=>x(ze,`Show full output (${je??""} chars)`),[()=>a(z).length.toLocaleString()]),i(ne,me)};m(Ie,ne=>{a(S)&&!a(b)&&ne(Ce)})}t(B),C(()=>{at(ie,1,`text-xs font-mono bg-secondary/50 rounded p-2 overflow-x-auto max-h-80 whitespace-pre-wrap break-words ${e.block.status==="failed"?"text-destructive":""}`),x(Be,a(b)?a(z):a(F))}),i(y,B)};m(o,y=>{e.block.output!==void 0&&y(u)})}t(P),i(l,P)};m(de,l=>{a(d)&&l(le)})}t(N),C(l=>{at(N,1,`border-l-2 ${a(p)??""} rounded-r-md bg-card/50`),xe(N,"data-tool-call-id",e.block.toolCallId),xe(I,"aria-expanded",a(d)),x(W,l),x(re,a(v)),x(h,e.block.toolName)},[()=>He(e.block.startedAt)]),i(T,N),ee()}Je(["click"]);function _s(T,e){$(e,!0);let d=Te(e,["$$slots","$$events","$$legacy"]);const p=[["path",{d:"M12 18V5"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77"}]];Me(T,we({name:"brain"},()=>d,{get iconNode(){return p},children:(v,g)=>{var n=X(),_=J(n);Se(_,()=>e.children??ye),i(v,n)},$$slots:{default:!0}})),ee()}var ps=f('<span class="text-xs text-muted-foreground/60 truncate flex-1 italic"> </span>'),hs=f('<div class="px-3 pb-3"><pre class="text-xs font-mono text-muted-foreground/80 whitespace-pre-wrap break-words max-h-96 overflow-y-auto"> </pre></div>'),bs=f('<div class="border-l-2 border-l-design-ring rounded-r-md bg-card/30" data-testid="thinking-block"><button class="flex items-center gap-2 w-full px-3 py-2 text-left text-sm hover:bg-accent/30 transition-colors"><!> <span class="text-xs text-muted-foreground font-mono"> </span> <!> <span class="text-xs text-design-muted-fg">Thinking</span> <!></button> <!></div>');function ks(T,e){$(e,!0);let d=Q(!1),p=V(()=>e.block.content.length>80?e.block.content.slice(0,80)+"…":e.block.content);var v=bs(),g=s(v);g.__click=()=>D(d,!a(d));var n=s(g);{let A=V(()=>a(d)?"rotate-90":"");mt(n,{get class(){return`size-3.5 text-muted-foreground transition-transform ${a(A)??""}`}})}var _=r(n,2),z=s(_,!0);t(_);var F=r(_,2);_s(F,{class:"size-3.5 text-design-ring"});var S=r(F,4);{var b=A=>{var M=ps(),W=s(M,!0);t(M),C(()=>x(W,a(p))),i(A,M)};m(S,A=>{a(d)||A(b)})}t(g);var N=r(g,2);{var I=A=>{var M=hs(),W=s(M),U=s(W,!0);t(W),t(M),C(()=>x(U,e.block.content)),i(A,M)};m(N,A=>{a(d)&&A(I)})}t(v),C(A=>{xe(g,"aria-expanded",a(d)),x(z,A)},[()=>He(e.block.timestamp)]),i(T,v),ee()}Je(["click"]);var ys=f('<span class="text-muted-foreground/50"> </span>'),ws=f('<div class="flex items-center gap-2 py-1.5" data-testid="system-block"><div class="flex-1 h-px bg-border"></div> <div class="flex items-center gap-2 px-2 py-0.5 text-[10px] text-muted-foreground/70 font-mono"><span> </span> <span class="font-medium"> </span> <!></div> <div class="flex-1 h-px bg-border"></div></div>');function Ts(T,e){$(e,!0);var d=ws(),p=r(s(d),2),v=s(p),g=s(v,!0);t(v);var n=r(v,2),_=s(n,!0);t(n);var z=r(n,2);{var F=S=>{var b=ys(),N=s(b,!0);t(b),C(()=>x(N,e.block.detail)),i(S,b)};m(z,S=>{e.block.detail&&S(F)})}t(p),Ae(2),t(d),C(S=>{x(g,S),x(_,e.block.label)},[()=>He(e.block.timestamp)]),i(T,d),ee()}function Ss(T,e){$(e,!0);let d=Te(e,["$$slots","$$events","$$legacy"]);const p=[["path",{d:"M12 5v14"}],["path",{d:"m19 12-7 7-7-7"}]];Me(T,we({name:"arrow-down"},()=>d,{get iconNode(){return p},children:(v,g)=>{var n=X(),_=J(n);Se(_,()=>e.children??ye),i(v,n)},$$slots:{default:!0}})),ee()}var Ms=f('<div class="py-2 svelte-1wb6lxb" data-testid="streaming-text"><div class="flex items-start gap-3 svelte-1wb6lxb"><div class="flex-shrink-0 w-7 h-7 rounded-full bg-primary/10 flex items-center justify-center svelte-1wb6lxb"><span class="text-xs font-bold text-primary svelte-1wb6lxb">A</span></div> <div class="flex-1 min-w-0 svelte-1wb6lxb"><div class="text-sm whitespace-pre-wrap break-words leading-relaxed svelte-1wb6lxb"> <span class="ds-streaming-cursor svelte-1wb6lxb"></span></div></div></div></div>'),Cs=f('<div class="flex items-center justify-center h-full text-muted-foreground/50 text-sm svelte-1wb6lxb" data-testid="stream-empty"><!></div>'),zs=f('<button class="absolute bottom-4 right-6 flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-primary text-primary-foreground text-xs font-medium shadow-lg hover:bg-primary/90 transition-colors svelte-1wb6lxb" data-testid="jump-to-bottom"><!> Jump to bottom</button>'),Ns=f('<div class="relative flex-1 min-h-0 svelte-1wb6lxb"><div class="absolute inset-0 overflow-y-auto px-4 py-2 svelte-1wb6lxb" data-testid="session-stream" aria-label="Session event stream" role="log"><!> <!> <!></div> <!></div>');function As(T,e){$(e,!0);let d=Le(e,"isLive",3,!1),p=Le(e,"streamingText",3,""),v=Q(void 0),g=Q(!0),n=Q(!1),_;function z(){if(!a(v))return;const{scrollHeight:k,scrollTop:h,clientHeight:O}=a(v);_&&clearTimeout(_),D(n,!0),_=setTimeout(()=>{D(n,!1)},150),D(g,Vt(k,h,O),!0)}Ct(()=>{e.blocks.length,p(),a(g)&&!a(n)&&a(v)&&requestAnimationFrame(()=>{a(v)&&a(v).scrollTo({top:a(v).scrollHeight,behavior:"auto"})})});function F(){D(g,!0),a(v)&&a(v).scrollTo({top:a(v).scrollHeight,behavior:"smooth"})}let S=V(()=>Wt(a(g),d(),e.blocks.length));var b=Ns(),N=s(b),I=s(N);Fe(I,17,()=>e.blocks,k=>k.seq,(k,h)=>{var O=X(),G=J(O);{var K=q=>{ns(q,{get block(){return a(h)}})},H=q=>{var ue=X(),ge=J(ue);{var de=l=>{gs(l,{get block(){return a(h)}})},le=l=>{var P=X(),Z=J(P);{var se=u=>{ks(u,{get block(){return a(h)}})},o=u=>{var y=X(),B=J(y);{var E=L=>{Ts(L,{get block(){return a(h)}})};m(B,L=>{a(h).type==="system"&&L(E)},!0)}i(u,y)};m(Z,u=>{a(h).type==="thinking"?u(se):u(o,!1)},!0)}i(l,P)};m(ge,l=>{a(h).type==="tool_call"?l(de):l(le,!1)},!0)}i(q,ue)};m(G,q=>{a(h).type==="message"?q(K):q(H,!1)})}i(k,O)});var A=r(I,2);{var M=k=>{var h=Ms(),O=s(h),G=r(s(O),2),K=s(G),H=s(K,!0),q=r(H);q.textContent="▊",t(K),t(G),t(O),t(h),C(()=>x(H,p())),i(k,h)};m(A,k=>{d()&&p()&&k(M)})}var W=r(A,2);{var U=k=>{var h=Cs(),O=s(h);{var G=H=>{var q=De("Waiting for agent output...");i(H,q)},K=H=>{var q=De("No events recorded for this session.");i(H,q)};m(O,H=>{d()?H(G):H(K,!1)})}t(h),i(k,h)};m(W,k=>{e.blocks.length===0&&!p()&&k(U)})}t(N),Nt(N,k=>D(v,k),()=>a(v));var te=r(N,2);{var re=k=>{var h=zs();h.__click=F;var O=s(h);Ss(O,{class:"size-3.5"}),Ae(),t(h),i(k,h)};m(te,k=>{a(S)&&k(re)})}t(b),C(()=>xe(N,"aria-live",d()?"polite":void 0)),zt("scroll",N,z),i(T,b),ee()}Je(["click"]);function Bs(T,e){$(e,!0);let d=Te(e,["$$slots","$$events","$$legacy"]);const p=[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4"}]];Me(T,we({name:"wallet"},()=>d,{get iconNode(){return p},children:(v,g)=>{var n=X(),_=J(n);Se(_,()=>e.children??ye),i(v,n)},$$slots:{default:!0}})),ee()}function js(T,e){$(e,!0);let d=Te(e,["$$slots","$$events","$$legacy"]);const p=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"}]];Me(T,we({name:"folder-open"},()=>d,{get iconNode(){return p},children:(v,g)=>{var n=X(),_=J(n);Se(_,()=>e.children??ye),i(v,n)},$$slots:{default:!0}})),ee()}var Ds=f('<span class="text-muted-foreground/50 svelte-ceuut8"> </span>'),Ls=f('<span class="ds-session-active-dot size-1.5 rounded-full bg-status-completed inline-block svelte-ceuut8"></span>'),Fs=f('<div class="flex items-center gap-2 text-xs svelte-ceuut8"><!> <!></div>'),Hs=f('<div class="flex items-start gap-1.5 text-[10px] svelte-ceuut8"><!> <span class="text-muted-foreground svelte-ceuut8"><span class="font-mono font-medium svelte-ceuut8"> </span> <!></span></div>'),Is=f('<div class="space-y-1 svelte-ceuut8" data-testid="ac-checklist"></div>'),Os=f('<div data-testid="spec-context-section" class="svelte-ceuut8"><h3 class="text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2 svelte-ceuut8">Spec Context</h3> <div class="space-y-2 svelte-ceuut8"><div class="text-xs svelte-ceuut8"><!></div> <!></div></div> <!>',1),Ps=f('<div data-testid="budget-section" class="svelte-ceuut8"><h3 class="text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2 svelte-ceuut8"><span class="inline-flex items-center gap-1.5 svelte-ceuut8"><!> Budget</span></h3> <div class="space-y-1 text-xs text-muted-foreground svelte-ceuut8"><div class="flex justify-between svelte-ceuut8"><span class="svelte-ceuut8">Tasks started</span> <span class="font-mono svelte-ceuut8"> </span></div> <div class="w-full bg-secondary rounded-full h-1.5 svelte-ceuut8"><div class="bg-primary rounded-full h-1.5 transition-all svelte-ceuut8"></div></div></div></div> <!>',1),Es=f('<div class="text-[10px] font-mono text-muted-foreground truncate svelte-ceuut8"> </div>'),qs=f('<div data-testid="files-changed-section" class="svelte-ceuut8"><h3 class="text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2 svelte-ceuut8"><span class="inline-flex items-center gap-1.5 svelte-ceuut8"><!> </span></h3> <div class="space-y-0.5 max-h-40 overflow-y-auto svelte-ceuut8"></div></div> <!>',1),Js=f('<div class="flex justify-between svelte-ceuut8"><span class="svelte-ceuut8">Ended</span> <span class="font-mono svelte-ceuut8"> </span></div>'),Vs=f('<div class="w-72 border-r bg-card/50 overflow-y-auto flex-shrink-0 svelte-ceuut8" data-testid="session-context-panel"><div class="p-4 space-y-4 svelte-ceuut8"><div class="svelte-ceuut8"><h3 class="text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2 svelte-ceuut8">Session</h3> <div class="space-y-2 svelte-ceuut8"><div class="flex items-center justify-between svelte-ceuut8"><!> <span class="text-[10px] font-mono text-muted-foreground svelte-ceuut8"> </span></div> <div class="flex items-center gap-2 text-xs text-muted-foreground svelte-ceuut8"><!> <span class="svelte-ceuut8"> </span> <!></div> <div class="flex items-center gap-2 text-xs text-muted-foreground svelte-ceuut8"><!> <span class="svelte-ceuut8"> </span> <!></div> <div class="flex items-center gap-2 text-xs text-muted-foreground svelte-ceuut8"><!> <span class="svelte-ceuut8"> </span></div> <!></div></div> <!> <!> <div class="svelte-ceuut8"><h3 class="text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2 svelte-ceuut8">Stats</h3> <div class="grid grid-cols-2 gap-2 svelte-ceuut8"><div class="bg-secondary/50 rounded-md px-2.5 py-1.5 svelte-ceuut8"><p class="text-[10px] text-muted-foreground svelte-ceuut8">Events</p> <p class="text-sm font-medium svelte-ceuut8"> </p></div> <div class="bg-secondary/50 rounded-md px-2.5 py-1.5 svelte-ceuut8"><p class="text-[10px] text-muted-foreground svelte-ceuut8">Iterations</p> <p class="text-sm font-medium svelte-ceuut8"> </p></div> <div class="bg-secondary/50 rounded-md px-2.5 py-1.5 svelte-ceuut8"><p class="text-[10px] text-muted-foreground svelte-ceuut8">Tasks Done</p> <p class="text-sm font-medium svelte-ceuut8"> </p></div> <div class="bg-secondary/50 rounded-md px-2.5 py-1.5 svelte-ceuut8"><p class="text-[10px] text-muted-foreground svelte-ceuut8">Origin</p> <p class="text-sm font-medium svelte-ceuut8"> </p></div></div></div> <!> <!> <!> <div class="svelte-ceuut8"><h3 class="text-xs font-medium text-muted-foreground uppercase tracking-wide mb-2 svelte-ceuut8">Timeline</h3> <div class="space-y-1 text-xs text-muted-foreground svelte-ceuut8"><div class="flex justify-between svelte-ceuut8"><span class="svelte-ceuut8">Started</span> <span class="font-mono svelte-ceuut8"> </span></div> <!> <div class="flex justify-between svelte-ceuut8"><span class="svelte-ceuut8">Duration</span> <span class="font-mono svelte-ceuut8"> </span></div></div></div></div></div>');function Ws(T,e){$(e,!0);let d=Le(e,"blocks",19,()=>[]),p=Le(e,"taskTitle",3,null),v=V(()=>e.session.status==="active"?"bg-status-in-progress text-status-in-progress-fg":e.session.status==="completed"?"bg-status-completed text-status-completed-fg":e.session.status==="failed"?"bg-status-blocked text-status-blocked-fg":"bg-status-cancelled text-status-cancelled-fg"),g=V(()=>e.session.status==="active"?"Active":e.session.status==="completed"?"Completed":e.session.status==="abandoned"?"Abandoned":e.session.status==="timed_out"?"Timed Out":e.session.status==="failed"?"Failed":e.session.status),n=V(()=>Rt(e.session.trigger)),_=V(()=>Zt(d()));function z(c){const w=c.split("/");return w.length>2?".../"+w.slice(-2).join("/"):c}var F=Vs(),S=s(F),b=s(S),N=r(s(b),2),I=s(N),A=s(I);At(A,{get class(){return a(v)},children:(c,w)=>{Ae();var j=De();C(()=>x(j,a(g))),i(c,j)},$$slots:{default:!0}});var M=r(A,2),W=s(M,!0);t(M),t(I);var U=r(I,2),te=s(U);$t(te,{class:"size-3.5"});var re=r(te,2),k=s(re,!0);t(re);var h=r(re,2);{var O=c=>{var w=Ds(),j=s(w);t(w),C(()=>x(j,`(${e.session.agent_id??""})`)),i(c,w)};m(h,c=>{e.session.agent_id&&e.session.agent_id!==e.session.agent_type&&c(O)})}t(U);var G=r(U,2),K=s(G);es(K,{class:"size-3.5"});var H=r(K,2),q=s(H,!0);t(H);var ue=r(H,2);{var ge=c=>{var w=Ls();i(c,w)};m(ue,c=>{e.session.status==="active"&&c(ge)})}t(G);var de=r(G,2),le=s(de);{var l=c=>{ts(c,{class:"size-3.5 text-status-in-progress"})},P=c=>{ss(c,{class:"size-3.5"})};m(le,c=>{nt(e.session.trigger)?c(l):c(P,!1)})}var Z=r(le,2),se=s(Z,!0);t(Z),t(de);var o=r(de,2);{var u=c=>{var w=Fs(),j=s(w);Qt(j,{class:"size-3.5 text-muted-foreground"});var R=r(j,2);ct(R,{get ref(){return e.session.task_id},type:"task",get title(){return p()},class:"text-xs"}),t(w),i(c,w)};m(o,c=>{e.session.task_id&&c(u)})}t(N),t(b);var y=r(b,2);Ne(y,{});var B=r(y,2);{var E=c=>{var w=Os(),j=J(w),R=r(s(j),2),Y=s(R),he=s(Y);ct(he,{get ref(){return e.session.spec_context.spec_ref},type:"spec",get title(){return e.session.spec_context.title},class:"text-xs"}),t(Y);var be=r(Y,2);{var fe=_e=>{var ve=Is();Fe(ve,21,()=>e.session.spec_context.acceptance_criteria,oe=>oe.id,(oe,ce)=>{var pe=Hs(),$e=s(pe);as($e,{class:"size-3 text-muted-foreground/50 flex-shrink-0 mt-0.5"});var et=r($e,2),Ee=s(et),kt=s(Ee,!0);t(Ee);var yt=r(Ee,2);{var wt=qe=>{var tt=De();C(Tt=>x(tt,`— ${Tt??""}`),[()=>a(ce).description.length>60?a(ce).description.slice(0,60)+"…":a(ce).description]),i(qe,tt)};m(yt,qe=>{a(ce).description&&qe(wt)})}t(et),t(pe),C(()=>x(kt,a(ce).id)),i(oe,pe)}),t(ve),i(_e,ve)};m(be,_e=>{e.session.spec_context.acceptance_criteria.length>0&&_e(fe)})}t(R),t(j);var ke=r(j,2);Ne(ke,{}),i(c,w)};m(B,c=>{e.session.spec_context&&c(E)})}var L=r(B,2),ae=r(s(L),2),ie=s(ae),Be=r(s(ie),2),Ie=s(Be,!0);t(Be),t(ie);var Ce=r(ie,2),ne=r(s(Ce),2),me=s(ne,!0);t(ne),t(Ce);var ze=r(Ce,2),je=r(s(ze),2),ft=s(je,!0);t(je),t(ze);var Ve=r(ze,2),We=r(s(Ve),2),xt=s(We,!0);t(We),t(Ve),t(ae),t(L);var Re=r(L,2);Ne(Re,{});var Ze=r(Re,2);{var gt=c=>{var w=Ps(),j=J(w),R=s(j),Y=s(R),he=s(Y);Bs(he,{class:"size-3"}),Ae(),t(Y),t(R);var be=r(R,2),fe=s(be),ke=r(s(fe),2),_e=s(ke);t(ke),t(fe);var ve=r(fe,2),oe=s(ve);t(ve),t(be),t(j);var ce=r(j,2);Ne(ce,{}),C(pe=>{x(_e,`${e.session.budget.started_this_cycle??""} / ${e.session.budget.max_per_cycle??""}`),Bt(oe,`width: ${pe??""}%`)},[()=>Math.min(100,e.session.budget.started_this_cycle/e.session.budget.max_per_cycle*100)]),i(c,w)};m(Ze,c=>{e.session.budget&&c(gt)})}var Xe=r(Ze,2);{var _t=c=>{var w=qs(),j=J(w),R=s(j),Y=s(R),he=s(Y);js(he,{class:"size-3"});var be=r(he);t(Y),t(R);var fe=r(R,2);Fe(fe,21,()=>a(_),ut,(_e,ve)=>{var oe=Es(),ce=s(oe,!0);t(oe),C(pe=>{xe(oe,"title",a(ve)),x(ce,pe)},[()=>z(a(ve))]),i(_e,oe)}),t(fe),t(j);var ke=r(j,2);Ne(ke,{}),C(()=>x(be,` Files Changed (${a(_).length??""})`)),i(c,w)};m(Xe,c=>{a(_).length>0&&c(_t)})}var Ge=r(Xe,2),Ke=r(s(Ge),2),Oe=s(Ke),Pe=r(s(Oe),2),pt=s(Pe,!0);t(Pe),t(Oe);var Qe=r(Oe,2);{var ht=c=>{var w=Js(),j=r(s(w),2),R=s(j,!0);t(j),t(w),C(Y=>{xe(j,"title",e.session.ended_at),x(R,Y)},[()=>dt(e.session.ended_at)]),i(c,w)};m(Qe,c=>{e.session.ended_at&&c(ht)})}var Ue=r(Qe,2),Ye=r(s(Ue),2),bt=s(Ye,!0);t(Ye),t(Ue),t(Ke),t(Ge),t(S),t(F),C((c,w,j,R,Y)=>{x(W,c),x(k,e.session.agent_type),x(q,w),x(se,a(n)),x(Ie,e.session.event_count),x(me,e.session.iteration_count),x(ft,e.session.tasks_completed),x(xt,j),xe(Pe,"title",e.session.started_at),x(pt,R),x(bt,Y)},[()=>e.session.id.slice(0,8),()=>ot(e.session.duration_ms),()=>nt(e.session.trigger)?"Dispatched":"Manual",()=>dt(e.session.started_at),()=>ot(e.session.duration_ms)]),i(T,F),ee()}var Rs=f('<div class="flex gap-3"><div class="size-7 rounded-full bg-muted ds-shimmer flex-shrink-0"></div> <div class="flex-1 space-y-2"><div class="h-3 w-24 rounded bg-muted ds-shimmer"></div> <div class="h-4 w-full rounded bg-muted ds-shimmer"></div> <div class="h-4 w-3/4 rounded bg-muted ds-shimmer"></div></div></div>'),Zs=f('<div class="border-l-2 border-muted rounded-r-md p-3 space-y-1"><div class="h-4 w-48 rounded bg-muted ds-shimmer"></div></div>'),Xs=f('<div class="flex items-center gap-2"><div class="flex-1 h-px bg-border"></div> <div class="h-3 w-32 rounded bg-muted ds-shimmer"></div> <div class="flex-1 h-px bg-border"></div></div>'),Gs=f('<div class="flex h-full" data-testid="session-skeleton"><div class="w-72 border-r bg-card/50 p-4 space-y-4 flex-shrink-0"><div class="space-y-2"><div class="h-3 w-16 rounded bg-muted ds-shimmer"></div> <div class="h-6 w-20 rounded bg-muted ds-shimmer"></div> <div class="h-4 w-32 rounded bg-muted ds-shimmer"></div> <div class="h-4 w-28 rounded bg-muted ds-shimmer"></div> <div class="h-4 w-36 rounded bg-muted ds-shimmer"></div></div> <div class="h-px bg-border"></div> <div class="space-y-2"><div class="h-3 w-12 rounded bg-muted ds-shimmer"></div> <div class="grid grid-cols-2 gap-2"><div class="h-12 rounded bg-muted ds-shimmer"></div> <div class="h-12 rounded bg-muted ds-shimmer"></div> <div class="h-12 rounded bg-muted ds-shimmer"></div> <div class="h-12 rounded bg-muted ds-shimmer"></div></div></div></div> <div class="flex-1 p-4 space-y-4"></div></div>');function Ks(T){var e=Gs(),d=r(s(e),2);Fe(d,4,()=>Array(6),ut,(p,v,g)=>{var n=X(),_=J(n);{var z=S=>{var b=Rs();i(S,b)},F=S=>{var b=X(),N=J(b);{var I=M=>{var W=Zs();i(M,W)},A=M=>{var W=Xs();i(M,W)};m(N,M=>{g%3===1?M(I):M(A,!1)},!0)}i(S,b)};m(_,S=>{g%3===0?S(z):S(F,!1)})}i(p,n)}),t(d),t(e),i(T,e)}function Qs(T,e){$(e,!0);let d=Te(e,["$$slots","$$events","$$legacy"]);const p=[["path",{d:"m12 19-7-7 7-7"}],["path",{d:"M19 12H5"}]];Me(T,we({name:"arrow-left"},()=>d,{get iconNode(){return p},children:(v,g)=>{var n=X(),_=J(n);Se(_,()=>e.children??ye),i(v,n)},$$slots:{default:!0}})),ee()}var Us=f('<span class="font-mono text-sm text-muted-foreground ml-1 svelte-y7akim"> </span>'),Ys=f('<span class="ds-session-active-dot size-1.5 rounded-full bg-status-completed inline-block ml-1 svelte-y7akim"></span> <span class="text-status-completed svelte-y7akim">Live</span>',1),$s=f('<p class="text-xs text-muted-foreground svelte-y7akim"> <!></p>'),ea=f('<div class="mx-4 mt-4 bg-destructive/10 text-destructive p-4 rounded-lg svelte-y7akim" role="alert" data-testid="session-error"> </div>'),ta=f('<div class="flex flex-1 min-h-0 svelte-y7akim"><!> <!></div>'),sa=f('<div class="flex flex-col h-full svelte-y7akim"><div class="flex items-center gap-3 px-4 py-3 border-b flex-shrink-0 svelte-y7akim"><a class="text-muted-foreground hover:text-foreground transition-colors svelte-y7akim" title="Back to sessions"><!></a> <div class="svelte-y7akim"><h1 class="text-lg font-semibold svelte-y7akim">Session <!></h1> <!></div></div> <!> <!></div>');function Ca(T,e){$(e,!0);const d=()=>Lt(Ft,"$page",p),[p,v]=Dt();let g=V(()=>d().params.id),n=Q(null),_=Q(null),z=Q(st([])),F=Q(st([])),S=Q(!0),b=Q(""),N=Q(""),I=V(()=>a(n)?.status==="active"),A=Q(-1),M;async function W(){D(S,!0),D(b,"");try{const[o,u]=await Promise.all([rt(a(g)),it(a(g))]);D(n,o,!0),D(z,u.events,!0),D(F,lt(a(z)),!0),D(A,vt(a(z)),!0),o.task_id&&U(o.task_id)}catch(o){D(b,o instanceof Error?o.message:"Failed to load session",!0)}finally{D(S,!1)}}async function U(o){try{const u=await jt({limit:1e3}),y=o.startsWith("@")?o:`@${o}`;for(const B of u.items){if(`@${B._ulid}`===y){D(_,B.title,!0);return}for(const E of B.slugs||[])if(`@${E}`===y){D(_,B.title,!0);return}}}catch{}}async function te(){if(a(I))try{const o=await it(a(g),a(A));o.events.length>0&&(D(z,[...a(z),...o.events],!0),D(F,lt(a(z)),!0),D(A,vt(a(z)),!0),D(N,""));const u=await rt(a(g));D(n,u,!0)}catch{}}function re(o){D(N,Xt(a(N),o,a(g)),!0),o.event==="agent_invocation"&&o.data.session_id===a(g)&&te()}St(()=>{W(),Ht(["agents"]),It("agents",re),M=setInterval(()=>{a(I)&&te()},3e3)}),Mt(()=>{Ot("agents",re),Pt(["agents"]),M&&clearInterval(M)});var k=sa(),h=s(k),O=s(h),G=s(O);Qs(G,{class:"size-4"}),t(O);var K=r(O,2),H=s(K),q=r(s(H));{var ue=o=>{var u=Us(),y=s(u,!0);t(u),C(B=>x(y,B),[()=>a(n).id.slice(0,8)]),i(o,u)};m(q,o=>{a(n)&&o(ue)})}t(H);var ge=r(H,2);{var de=o=>{var u=$s(),y=s(u),B=r(y);{var E=L=>{var ae=Ys();Ae(2),i(L,ae)};m(B,L=>{a(I)&&L(E)})}t(u),C(()=>x(y,`${a(n).agent_type??""} `)),i(o,u)};m(ge,o=>{a(n)&&o(de)})}t(K),t(h);var le=r(h,2);{var l=o=>{var u=ea(),y=s(u,!0);t(u),C(()=>x(y,a(b))),i(o,u)};m(le,o=>{a(b)&&o(l)})}var P=r(le,2);{var Z=o=>{Ks(o)},se=o=>{var u=X(),y=J(u);{var B=E=>{var L=ta(),ae=s(L);Ws(ae,{get session(){return a(n)},get blocks(){return a(F)},get taskTitle(){return a(_)}});var ie=r(ae,2);As(ie,{get blocks(){return a(F)},get isLive(){return a(I)},get streamingText(){return a(N)}}),t(L),i(E,L)};m(y,E=>{a(n)&&E(B)},!0)}i(o,u)};m(P,o=>{a(S)?o(Z):o(se,!1)})}t(k),C(()=>xe(O,"href",`${rs??""}/sessions`)),i(T,k),ee(),v()}export{Ca as component};