signetai 0.98.7 → 0.98.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/_app/immutable/chunks/{Brv2zCfv.js → 0qaXsCwe.js} +1 -1
- package/dashboard/_app/immutable/chunks/{nIYI0t2j.js → 5Mftjbb2.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DF-wgPV9.js → AwLBiVgt.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Cf6Uft0K.js → B7KEMFIz.js} +1 -1
- package/dashboard/_app/immutable/chunks/{C2JXbYDm.js → BP8rtJ3G.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DLv_8o7I.js → BUSUESoi.js} +1 -1
- package/dashboard/_app/immutable/chunks/{lWQ1C4GP.js → Bfr5gxEp.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CDl2nsvo.js → BgtV99vb.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DnOsfr5c.js → BnXwFclk.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BQ_GbIFD.js → Bnt9vcuf.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BcsPrQYj.js → Bp4KEDuj.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Diduz0Qw.js → Bvv93Z6n.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CS_Aprwf.js → C39nf7jZ.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BUxQeMBz.js → CDk3p5Mv.js} +1 -1
- package/dashboard/_app/immutable/chunks/{cPIZm3yU.js → CEVzfObE.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BhEjTSAu.js → CHc85ZvC.js} +1 -1
- package/dashboard/_app/immutable/chunks/{ekGanUuS.js → CIdHWyP7.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DG7xpkji.js → CIdIL4b0.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Dw8QACQ1.js → CJurkM4a.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DSpJaEkf.js → CKh-IxuE.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BSSNVYz6.js → CLkWdVXo.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BNlmCANW.js → CSpFfXzo.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Dzf82B63.js → CbnVc45v.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Bc65FgmJ.js → CcJSlN6E.js} +2 -2
- package/dashboard/_app/immutable/chunks/{qHwBsfR-.js → CeTzBz3S.js} +1 -1
- package/dashboard/_app/immutable/chunks/{C_ojB6yJ.js → Ck4Lgr1z.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Cb59DrYp.js → D8nzdotv.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Bc_vjAO4.js → DAqHboa5.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BW6d6UX6.js → DCeXdp0F.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DUPcIJwI.js → DFAV_3B_.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DnZzVSEG.js → DKpFJVqS.js} +1 -1
- package/dashboard/_app/immutable/chunks/{OpTDAuBi.js → DZoYjLWT.js} +1 -1
- package/dashboard/_app/immutable/chunks/{L0EahLQi.js → Db7ak8Gl.js} +1 -1
- package/dashboard/_app/immutable/chunks/{0Z8E_sIc.js → DeURf8kl.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BfHmUueN.js → DkVUTzms.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Ce3PsPnN.js → DlGNrG3u.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DcHGNDmv.js → DoC62kYv.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Ct-soRJt.js → DvPIbmoh.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DtBlYPIT.js → Dx726L-S.js} +1 -1
- package/dashboard/_app/immutable/chunks/{PsHbQ44H.js → DxMUJRtV.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Cn2Xp9t7.js → QWvt362d.js} +1 -1
- package/dashboard/_app/immutable/chunks/{7gX3clVU.js → YoZotDVb.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DF_uUWNY.js → Zj4js3vm.js} +2 -2
- package/dashboard/_app/immutable/chunks/{xsN1pRd4.js → jVMgkj9T.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DHTZZK1H.js → onn-nZWc.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CSdWfBZr.js → pFyicxLN.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BUIJHD1H.js → pkgXnRzN.js} +3 -3
- package/dashboard/_app/immutable/chunks/{OIpa7l7a.js → wKa5LZFG.js} +1 -1
- package/dashboard/_app/immutable/entry/{app.ltWmIExE.js → app.Bi0tswfR.js} +2 -2
- package/dashboard/_app/immutable/entry/start.CFGP3h29.js +1 -0
- package/dashboard/_app/immutable/nodes/{1.D4mBwkXq.js → 1.82S2YUXh.js} +1 -1
- package/dashboard/_app/immutable/nodes/2.Duq8efcV.js +1 -0
- package/dashboard/_app/version.json +1 -1
- package/dashboard/index.html +6 -6
- package/dist/cli.js +25487 -3732
- package/dist/daemon.js +148 -145
- package/dist/mcp-stdio.js +2 -2
- package/package.json +2 -1
- package/dashboard/_app/immutable/entry/start.CK1qUJ1O.js +0 -1
- package/dashboard/_app/immutable/nodes/2.C_P3cS-G.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as n,s as l,c,f as d,a as i,n as m,b as f,d as h,r as u}from"./o6XZc-z-.js";import{I as $}from"./
|
|
1
|
+
import{p as n,s as l,c,f as d,a as i,n as m,b as f,d as h,r as u}from"./o6XZc-z-.js";import{I as $}from"./pkgXnRzN.js";function z(e,a){n(a,!0);let o=u(a,["$$slots","$$events","$$legacy"]);const t=[["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"}]];$(e,l({name:"zap"},()=>o,{get iconNode(){return t},children:(r,_)=>{var s=c(),p=d(s);i(p,()=>a.children??m),f(r,s)},$$slots:{default:!0}})),h()}export{z as Z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p,s as d,c,f as i,a as l,n as m,b as f,d as h,r as u}from"./o6XZc-z-.js";import{I as $}from"./
|
|
1
|
+
import{p,s as d,c,f as i,a as l,n as m,b as f,d as h,r as u}from"./o6XZc-z-.js";import{I as $}from"./pkgXnRzN.js";function w(e,o){p(o,!0);let n=u(o,["$$slots","$$events","$$legacy"]);const r=[["path",{d:"m6 9 6 6 6-6"}]];$(e,d({name:"chevron-down"},()=>n,{get iconNode(){return r},children:(a,v)=>{var s=c(),t=i(s);l(t,()=>o.children??m),f(a,s)},$$slots:{default:!0}})),h()}export{w as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as n,g as o,E as d,j as c,a as f,n as p,l as m,F as v,b as h,d as u,r as _,m as b}from"./o6XZc-z-.js";import{c as g}from"./
|
|
1
|
+
import{p as n,g as o,E as d,j as c,a as f,n as p,l as m,F as v,b as h,d as u,r as _,m as b}from"./o6XZc-z-.js";import{c as g}from"./pkgXnRzN.js";var C=b("<div><!></div>");function y(r,a){n(a,!0);let t=o(a,"ref",15,null),l=_(a,["$$slots","$$events","$$legacy","ref","class","children"]);var s=C();d(s,e=>({"data-slot":"card-title",class:e,...l}),[()=>g("leading-none font-semibold",a.class)]);var i=c(s);f(i,()=>a.children??p),m(s),v(s,e=>t(e),()=>t()),h(r,s),u()}export{y as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p,s as c,c as d,f as i,a as l,n as m,b as f,d as h,r as u}from"./o6XZc-z-.js";import{I as $}from"./
|
|
1
|
+
import{p,s as c,c as d,f as i,a as l,n as m,b as f,d as h,r as u}from"./o6XZc-z-.js";import{I as $}from"./pkgXnRzN.js";function w(a,s){p(s,!0);let e=u(s,["$$slots","$$events","$$legacy"]);const o=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}],["path",{d:"M3 3v5h5"}]];$(a,c({name:"rotate-ccw"},()=>e,{get iconNode(){return o},children:(r,_)=>{var t=d(),n=i(t);l(n,()=>s.children??m),f(r,t)},$$slots:{default:!0}})),h()}export{w as R};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as _,g as d,c as y,f as C,h as w,s as z,i as j,C as M,b as u,d as P,r as q,j as A,k as B,l as D,u as E,m as F}from"./o6XZc-z-.js";import{c as G,M as H}from"./
|
|
1
|
+
import{p as _,g as d,c as y,f as C,h as w,s as z,i as j,C as M,b as u,d as P,r as q,j as A,k as B,l as D,u as E,m as F}from"./o6XZc-z-.js";import{c as G,M as H}from"./pkgXnRzN.js";import{C as I}from"./DCeXdp0F.js";var J=F('<div data-slot="checkbox-indicator" class="text-current transition-none"><!></div>');function O(f,t){_(t,!0);let n=d(t,"ref",15,null),c=d(t,"checked",15,!1),o=d(t,"indeterminate",15,!1),h=q(t,["$$slots","$$events","$$legacy","ref","checked","indeterminate","class"]);var l=y(),m=C(l);{const k=(s,a)=>{let e=()=>a?.().checked,b=()=>a?.().indeterminate;var i=J(),p=A(i);{var g=r=>{I(r,{class:"size-3.5"})},x=r=>{H(r,{class:"size-3.5"})};B(p,r=>{e()?r(g):b()&&r(x,1)})}D(i),u(s,i)};let v=E(()=>G("border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive peer flex size-4 shrink-0 items-center justify-center rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t.class));w(m,()=>M,(s,a)=>{a(s,z({"data-slot":"checkbox",get class(){return j(v)}},()=>h,{get ref(){return n()},set ref(e){n(e)},get checked(){return c()},set checked(e){c(e)},get indeterminate(){return o()},set indeterminate(e){o(e)},children:k,$$slots:{default:!0}}))})}u(f,l),P()}export{O as C};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as re,c as Ut,f as C,k as nt,i as t,b as s,d as se,u as I,D as o,j as r,A as Bt,t as e,l as a,y as N,z as d,K as ce,N as Se,v as b,m as v,ag as ie,o as V,B as ke,g as Ee,h as L,w as vt,x as $t,s as Re,a as Be,n as De,r as Le,aa as Ne,ac as Ce,ad as je,O as we,P as Oe,e as Kt,q as ze}from"./o6XZc-z-.js";import{P as We}from"./DiLyuexf.js";import{T as He}from"./BBTUzYSt.js";import{Y as ue,Z as ge,_ as pe,I as Ge,B as Ke,f as qe,n as Je,E as Ve}from"./BUIJHD1H.js";import{B as xe}from"./DnOsfr5c.js";import{a as Ye,C as Ze}from"./DSpJaEkf.js";import{C as Qe}from"./OpTDAuBi.js";import{C as Ue}from"./DF-wgPV9.js";import{C as Xe,a as ta,b as ea}from"./BVExryab.js";import{P as aa,a as ra,b as sa}from"./ekGanUuS.js";import{Z as ia}from"./Brv2zCfv.js";import{R as na}from"./0Z8E_sIc.js";import{C as oa}from"./nIYI0t2j.js";var la=v('<div class="flex items-center justify-center h-full"><span class="sig-label text-[var(--sig-text-muted)]">no comparison data yet</span></div>'),da=ie('<line stroke="var(--sig-border)" stroke-width="0.5" stroke-dasharray="4,4"></line><text text-anchor="end" fill="var(--sig-text-muted)" font-size="11" font-family="var(--font-mono)"> </text>',1),va=ie('<circle r="3"></circle>'),ca=ie('<line stroke="var(--sig-border)" stroke-width="0.5" stroke-dasharray="3,3"></line><circle r="4" fill="var(--sig-text-muted)" stroke="var(--sig-bg)" stroke-width="1.5"></circle><circle r="4" fill="var(--sig-success)" stroke="var(--sig-bg)" stroke-width="1.5"></circle>',1),ua=ie('<rect fill="transparent"></rect><!>',1),ga=v('<div class="sig-meta text-[var(--sig-text-muted)] mt-0.5"> </div>'),pa=v('<div class="absolute z-10 bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] rounded px-2 py-1.5 shadow-md pointer-events-none" style="top: 4px; right: 8px;"><div class="sig-label text-[var(--sig-text-muted)]"> </div> <div class="flex gap-3 mt-0.5"><span class="sig-label"><span class="text-[var(--sig-text-muted)]">base</span> <span class="text-[var(--sig-text)] ml-1"> </span></span> <span class="sig-label"><span class="text-[var(--sig-success)]">pred</span> <span class="text-[var(--sig-text)] ml-1"> </span></span> <span> </span></div> <!></div>'),xa=ie('<svg width="100%" height="100%" preserveAspectRatio="xMidYMid meet" class="select-none"><!><text text-anchor="end" fill="var(--sig-text-muted)" font-size="11" font-family="var(--font-mono)">1.00</text><text text-anchor="end" fill="var(--sig-text-muted)" font-size="11" font-family="var(--font-mono)">0.00</text><polyline fill="none" stroke="var(--sig-text-muted)" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round" opacity="0.5"></polyline><polyline fill="none" stroke="var(--sig-success)" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"></polyline><!><!><line stroke="var(--sig-text-muted)" stroke-width="1.5" opacity="0.5"></line><text fill="var(--sig-text-muted)" font-size="11" font-family="var(--font-mono)">baseline</text><line stroke="var(--sig-success)" stroke-width="2"></line><text fill="var(--sig-success)" font-size="11" font-family="var(--font-mono)">predictor</text></svg><!>',1);function fa(wt,c){re(c,!0);const p={top:12,right:12,bottom:20,left:32},T=1200,$=200,x=T-p.left-p.right,rt=$-p.top-p.bottom,j=I(()=>[...c.comparisons].reverse());function Y(n){return t(j).length<=1?p.left+x/2:p.left+n/(t(j).length-1)*x}function O(n){return p.top+(1-n)*rt}function st(n){return t(j).map((u,w)=>`${Y(w).toFixed(1)},${O(n(u)).toFixed(1)}`).join(" ")}const Pt=I(()=>st(n=>n.baselineNdcg)),M=I(()=>st(n=>n.predictorNdcg)),Z=[.25,.5,.75];let A=V(null);function mt(n){const u=new Date(n);return Number.isNaN(u.getTime())?n:u.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var K=Ut(),Q=C(K);{var m=n=>{var u=la();s(n,u)},g=n=>{var u=xa(),w=C(u);o(w,"viewBox","0 0 1200 200");var h=r(w);Bt(h,17,()=>Z,ce,(B,f)=>{var S=da(),k=C(S),G=e(k),lt=r(G,!0);a(G),N((ft,ut,yt,gt)=>{o(k,"x1",p.left),o(k,"y1",ft),o(k,"x2",T-p.right),o(k,"y2",ut),o(G,"x",p.left-6),o(G,"y",yt),d(lt,gt)},[()=>O(t(f)),()=>O(t(f)),()=>O(t(f))+4,()=>t(f).toFixed(2)]),s(B,S)});var y=e(h),P=e(y),R=e(P),H=e(R),X=e(H);Bt(X,17,()=>t(j),ce,(B,f,S)=>{var k=va();o(k,"cy",$-6),N(G=>{o(k,"cx",G),o(k,"fill",t(f).predictorWon?"var(--sig-success)":"var(--sig-danger)"),o(k,"opacity",t(f).predictorWon?.8:.5)},[()=>Y(S)]),s(B,k)});var z=e(X);Bt(z,17,()=>t(j),ce,(B,f,S)=>{var k=ua(),G=C(k);o(G,"y",0),o(G,"height",$);var lt=e(G);{var ft=ut=>{var yt=ca(),gt=C(yt),Ct=e(gt),qt=e(Ct);N((Dt,i,l,W,F,U)=>{o(gt,"x1",Dt),o(gt,"y1",p.top),o(gt,"x2",i),o(gt,"y2",$-p.bottom),o(Ct,"cx",l),o(Ct,"cy",W),o(qt,"cx",F),o(qt,"cy",U)},[()=>Y(S),()=>Y(S),()=>Y(S),()=>O(t(f).baselineNdcg),()=>Y(S),()=>O(t(f).predictorNdcg)]),s(ut,yt)};nt(lt,ut=>{t(A)===S&&ut(ft)})}N((ut,yt)=>{o(G,"x",ut),o(G,"width",yt)},[()=>Y(S)-Math.max(x/t(j).length,16)/2,()=>Math.max(x/t(j).length,16)]),Se("mouseenter",G,()=>b(A,S,!0)),Se("mouseleave",G,()=>b(A,null)),s(B,k)});var at=e(z);o(at,"y1",10),o(at,"y2",10);var ct=e(at);o(ct,"y",14);var ot=e(ct);o(ot,"y1",10),o(ot,"y2",10);var St=e(ot);o(St,"y",14),a(w);var pt=e(w);{var xt=B=>{const f=I(()=>t(j)[t(A)]);var S=pa(),k=r(S),G=r(k,!0);a(k);var lt=e(k,2),ft=r(lt),ut=e(r(ft),2),yt=r(ut,!0);a(ut),a(ft);var gt=e(ft,2),Ct=e(r(gt),2),qt=r(Ct,!0);a(Ct),a(gt);var Dt=e(gt,2);let i;var l=r(Dt);a(Dt),a(lt);var W=e(lt,2);{var F=U=>{var q=ga(),_=r(q,!0);a(q),N(()=>d(_,t(f).project)),s(U,q)};nt(W,U=>{t(f).project&&U(F)})}a(S),N((U,q,_,tt)=>{d(G,U),d(yt,q),d(qt,_),i=ke(Dt,1,"sig-label",null,i,{"text-[var(--sig-success)]":t(f).margin>0,"text-[var(--sig-danger)]":t(f).margin<0}),d(l,`${t(f).margin>0?"+":""}${tt??""}`)},[()=>mt(t(f).createdAt),()=>t(f).baselineNdcg.toFixed(3),()=>t(f).predictorNdcg.toFixed(3),()=>t(f).margin.toFixed(3)]),s(B,S)};nt(pt,B=>{t(A)!==null&&t(j)[t(A)]&&B(xt)})}N((B,f)=>{o(y,"x",p.left-6),o(y,"y",B),o(P,"x",p.left-6),o(P,"y",f),o(R,"points",t(Pt)),o(H,"points",t(M)),o(at,"x1",T-p.right-160),o(at,"x2",T-p.right-146),o(ct,"x",T-p.right-142),o(ot,"x1",T-p.right-80),o(ot,"x2",T-p.right-66),o(St,"x",T-p.right-62)},[()=>O(1)+4,()=>O(0)+4]),s(n,u)};nt(Q,n=>{t(j).length===0?n(m):n(g,-1)})}s(wt,K),se()}var ma=v('<div class="flex items-baseline gap-2"><span class="text-2xl font-display font-bold text-foreground"> </span> <span class="sig-label text-[var(--sig-text-muted)]">ranking quality</span></div>'),_a=v("<!> <!>",1),ha=v('<div class="sig-label text-[var(--sig-text)] truncate pl-2 border-l border-[var(--sig-border)]"> </div>'),ba=v('<div class="sig-label text-[var(--sig-text-muted)] pl-2 italic">no ranking data yet</div>'),ya=v('<div class="flex justify-between sig-label"><span class="text-[var(--sig-text-muted)]"> </span> <span class="text-[var(--sig-text)]"> </span></div>'),$a=v("<!> <!>",1),wa=v('<div class="flex justify-between sig-label"><span class="text-[var(--sig-text-muted)]"> </span> <span class="text-[var(--sig-text)]"> </span></div>'),Pa=v('<div class="flex flex-col gap-2 p-3 bg-card rounded-lg border border-border min-w-0"><div class="flex items-center gap-2"><span class="sig-eyebrow tracking-wider text-[var(--sig-text-muted)]"> </span> <!></div> <!> <div class="space-y-1"><span class="sig-label text-[var(--sig-text-muted)]">recent top picks:</span> <!></div> <div class="mt-auto space-y-1 pt-2 border-t border-[var(--sig-border)]"></div></div>');function Pe(wt,c){re(c,!0);let p=Ee(c,"offline",3,!1);const T=I(()=>Math.round(c.ndcg*100)),$=I(()=>c.side==="baseline"?"Heuristic Baseline":"Predictor Model"),x=I(()=>`How well this system ranks memories. NDCG@10 = ${c.ndcg.toFixed(3)}`);var rt=Pa(),j=r(rt),Y=r(j),O=r(Y,!0);a(Y);var st=e(Y,2);{var Pt=m=>{xe(m,{variant:"destructive",class:"text-[8px] px-1.5 py-0",children:(g,n)=>{vt();var u=$t("OFFLINE");s(g,u)},$$slots:{default:!0}})};nt(st,m=>{p()&&m(Pt)})}a(j);var M=e(j,2);L(M,()=>pe,(m,g)=>{g(m,{children:(n,u)=>{var w=_a(),h=C(w);L(h,()=>ue,(P,R)=>{R(P,{class:"text-left",children:(H,X)=>{var z=ma(),at=r(z),ct=r(at);a(at),vt(2),a(z),N(()=>d(ct,`${t(T)??""}%`)),s(H,z)},$$slots:{default:!0}})});var y=e(h,2);L(y,()=>ge,(P,R)=>{R(P,{class:"bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] text-[var(--sig-text)] px-2 py-1 rounded text-xs",children:(H,X)=>{vt();var z=$t();N(()=>d(z,t(x))),s(H,z)},$$slots:{default:!0}})}),s(n,w)},$$slots:{default:!0}})});var Z=e(M,2),A=e(r(Z),2);{var mt=m=>{var g=Ut(),n=C(g);Bt(n,17,()=>c.topPicks.slice(0,3),u=>u.id,(u,w)=>{var h=ha(),y=r(h);a(h),N(P=>{o(h,"title",t(w).content),d(y,`${P??""}${t(w).content.length>60?"...":""}`)},[()=>t(w).content.slice(0,60)]),s(u,h)}),s(m,g)},K=m=>{var g=ba();s(m,g)};nt(A,m=>{c.topPicks.length>0?m(mt):m(K,-1)})}a(Z);var Q=e(Z,2);Bt(Q,21,()=>c.stats,m=>m.label,(m,g)=>{var n=Ut(),u=C(n);{var w=y=>{var P=Ut(),R=C(P);L(R,()=>pe,(H,X)=>{X(H,{children:(z,at)=>{var ct=$a(),ot=C(ct);L(ot,()=>ue,(pt,xt)=>{xt(pt,{class:"w-full text-left",children:(B,f)=>{var S=ya(),k=r(S),G=r(k,!0);a(k);var lt=e(k,2),ft=r(lt,!0);a(lt),a(S),N(()=>{d(G,t(g).label),d(ft,t(g).value)}),s(B,S)},$$slots:{default:!0}})});var St=e(ot,2);L(St,()=>ge,(pt,xt)=>{xt(pt,{class:"bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] text-[var(--sig-text)] px-2 py-1 rounded text-xs",children:(B,f)=>{vt();var S=$t();N(()=>d(S,t(g).tooltip)),s(B,S)},$$slots:{default:!0}})}),s(z,ct)},$$slots:{default:!0}})}),s(y,P)},h=y=>{var P=wa(),R=r(P),H=r(R,!0);a(R);var X=e(R,2),z=r(X,!0);a(X),a(P),N(()=>{d(H,t(g).label),d(z,t(g).value)}),s(y,P)};nt(u,y=>{t(g).tooltip?y(w):y(h,-1)})}s(m,n)}),a(Q),a(rt),N(()=>d(O,t($))),s(wt,rt),se()}function ka(wt,c){re(c,!0);let p=Le(c,["$$slots","$$events","$$legacy"]);const T=[["path",{d:"M14 17H5"}],["path",{d:"M19 7h-9"}],["circle",{cx:"17",cy:"17",r:"3"}],["circle",{cx:"7",cy:"7",r:"3"}]];Ge(wt,Re({name:"settings-2"},()=>p,{get iconNode(){return T},children:($,x)=>{var rt=Ut(),j=C(rt);Be(j,()=>c.children??De),s($,rt)},$$slots:{default:!0}})),se()}var Na=v('<span class="sig-meta text-[var(--sig-text-muted)] shrink-0">alpha</span> <div class="flex gap-px h-2.5 flex-1 rounded overflow-hidden"><div class="bg-[var(--sig-text-muted)] transition-all duration-300"></div> <div class="bg-[var(--sig-accent)] transition-all duration-300"></div></div> <span class="sig-meta text-[var(--sig-text)] font-mono"> </span>',1),Ta=v("<!> <!>",1),Sa=v('<span class="sig-label text-[var(--sig-text)]">win rate: <span class="font-bold"> </span></span>'),Ca=v("<!> <!>",1),ja=v('<div class="sig-eyebrow text-[var(--sig-text-muted)]">training config</div> <div class="space-y-1"><div class="flex justify-between items-center"><span class="sig-label text-[var(--sig-text-muted)]">epochs per run</span> <input type="number" min="1" max="20" class="w-14 bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] rounded px-1.5 py-0.5 text-center sig-label text-[var(--sig-text)] focus:outline-none focus:border-[var(--sig-accent)]"/></div> <span class="sig-meta text-[var(--sig-text-muted)]">more epochs = longer but more thorough</span></div> <div class="space-y-1"><div class="flex justify-between items-center"><span class="sig-label text-[var(--sig-text-muted)]">max samples</span> <input type="number" min="100" max="50000" step="500" class="w-20 bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] rounded px-1.5 py-0.5 text-center sig-label text-[var(--sig-text)] focus:outline-none focus:border-[var(--sig-accent)]"/></div> <span class="sig-meta text-[var(--sig-text-muted)]">training pairs to use per run</span></div> <div class="space-y-1"><div class="flex justify-between items-center"><span class="sig-label text-[var(--sig-text-muted)]">auto-trains every</span> <span class="sig-label text-[var(--sig-text)]"> </span></div> <span class="sig-meta text-[var(--sig-text-muted)]">change in settings</span></div> <div class="pt-1 border-t border-[var(--sig-border)]"><span class="sig-meta text-[var(--sig-text-muted)]"> </span></div>',1),Ma=v("<!> <!>",1),Fa=v("<!> <!>",1),Ia=v('<div class="flex items-center gap-3 px-3 py-2 bg-card rounded-lg border border-border"><!> <!> <!> <div class="flex-1"></div> <!> <!> <button class="flex items-center p-1 rounded text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] hover:bg-[var(--sig-surface-raised)] transition-colors disabled:opacity-40"><!></button></div>');function Aa(wt,c){re(c,!0);const p=I(()=>{switch(c.healthStatus){case"healthy":return"default";case"degraded":case"cold_start":return"secondary";case"unhealthy":return"destructive";default:return"outline"}});let T=V(!1);var $=Ia(),x=r($);xe(x,{get variant(){return t(p)},class:"text-[9px] shrink-0",children:(M,Z)=>{vt();var A=$t();N(()=>d(A,c.healthStatus)),s(M,A)},$$slots:{default:!0}});var rt=e(x,2);L(rt,()=>pe,(M,Z)=>{Z(M,{children:(A,mt)=>{var K=Ta(),Q=C(K);L(Q,()=>ue,(g,n)=>{n(g,{class:"flex items-center gap-2 min-w-[120px]",children:(u,w)=>{var h=Na(),y=e(C(h),2),P=r(y),R=e(P,2);a(y);var H=e(y,2),X=r(H,!0);a(H),N(z=>{Ne(P,`width: ${c.alpha*100}%`),Ne(R,`width: ${(1-c.alpha)*100}%`),d(X,z)},[()=>c.alpha.toFixed(2)]),s(u,h)},$$slots:{default:!0}})});var m=e(Q,2);L(m,()=>ge,(g,n)=>{n(g,{class:"bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] text-[var(--sig-text)] px-2 py-1 rounded text-xs max-w-[240px]",children:(u,w)=>{vt();var h=$t("Baseline weight in scoring. Shifts toward predictor as it proves itself.");s(u,h)},$$slots:{default:!0}})}),s(A,K)},$$slots:{default:!0}})});var j=e(rt,2);L(j,()=>pe,(M,Z)=>{Z(M,{children:(A,mt)=>{var K=Ca(),Q=C(K);L(Q,()=>ue,(g,n)=>{n(g,{children:(u,w)=>{var h=Sa(),y=e(r(h)),P=r(y);a(y),a(h),N(R=>d(P,`${R??""}%`),[()=>Math.round(c.winRate*100)]),s(u,h)},$$slots:{default:!0}})});var m=e(Q,2);L(m,()=>ge,(g,n)=>{n(g,{class:"bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] text-[var(--sig-text)] px-2 py-1 rounded text-xs max-w-[240px]",children:(u,w)=>{vt();var h=$t("Sessions where predictor ranked better than heuristic baseline.");s(u,h)},$$slots:{default:!0}})}),s(A,K)},$$slots:{default:!0}})});var Y=e(j,4);L(Y,()=>sa,(M,Z)=>{Z(M,{get open(){return t(T)},set open(A){b(T,A,!0)},children:(A,mt)=>{var K=Ma(),Q=C(K);L(Q,()=>aa,(g,n)=>{n(g,{class:"flex items-center gap-1 sig-label text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] transition-colors p-1 rounded hover:bg-[var(--sig-surface-raised)]",children:(u,w)=>{ka(u,{class:"w-3.5 h-3.5"})},$$slots:{default:!0}})});var m=e(Q,2);L(m,()=>ra,(g,n)=>{n(g,{class:"w-[260px] bg-[var(--sig-surface)] border border-[var(--sig-border)] rounded-lg shadow-lg p-3 space-y-3",side:"bottom",align:"end",children:(u,w)=>{var h=ja(),y=e(C(h),2),P=r(y),R=e(r(P),2);Ce(R),a(P),vt(2),a(y);var H=e(y,2),X=r(H),z=e(r(X),2);Ce(z),a(X),vt(2),a(H);var at=e(H,2),ct=r(at),ot=e(r(ct),2),St=r(ot);a(ot),a(ct),vt(2),a(at);var pt=e(at,2),xt=r(pt),B=r(xt);a(xt),a(pt),N(f=>{je(R,c.trainEpochs),je(z,c.trainLimit),d(St,`${c.trainInterval??""} sessions`),d(B,`${f??""} training pairs available`)},[()=>c.trainingPairs.toLocaleString()]),we("input",R,f=>c.onEpochsChange(Number(f.currentTarget.value))),we("input",z,f=>c.onLimitChange(Number(f.currentTarget.value))),s(u,h)},$$slots:{default:!0}})}),s(A,K)},$$slots:{default:!0}})});var O=e(Y,2);{let M=I(()=>c.training||!c.sidecarAlive);Ke(O,{variant:"default",size:"sm",class:"sig-label gap-1.5",get onclick(){return c.onTrain},get disabled(){return t(M)},children:(Z,A)=>{var mt=Fa(),K=C(mt);ia(K,{class:"w-3.5 h-3.5"});var Q=e(K,2);{var m=n=>{var u=$t("training...");s(n,u)},g=n=>{var u=$t("train now");s(n,u)};nt(Q,n=>{c.training?n(m):n(g,-1)})}s(Z,mt)},$$slots:{default:!0}})}var st=e(O,2),Pt=r(st);{let M=I(()=>c.loading?"animate-spin":"");na(Pt,{get class(){return`w-3.5 h-3.5 ${t(M)??""}`}})}a(st),a($),N(()=>st.disabled=c.loading),we("click",st,function(...M){c.onRefresh?.apply(this,M)}),s(wt,$),se()}Oe(["input","click"]);var Ea=v('<div class="flex items-center justify-center col-span-full row-span-full"><span class="sig-label text-[var(--sig-text-muted)]">loading predictor data...</span></div>'),Ra=v('<div class="flex items-center justify-center col-span-full row-span-full"><span class="sig-label text-[var(--sig-text-muted)]">unable to reach predictor -- check daemon status</span></div>'),Ba=v("Predictor <!>",1),Da=v(`<p class="sig-label text-[var(--sig-text-muted)]">The predictive memory scorer learns which memories matter most for each
|
|
1
|
+
import{p as re,c as Ut,f as C,k as nt,i as t,b as s,d as se,u as I,D as o,j as r,A as Bt,t as e,l as a,y as N,z as d,K as ce,N as Se,v as b,m as v,ag as ie,o as V,B as ke,g as Ee,h as L,w as vt,x as $t,s as Re,a as Be,n as De,r as Le,aa as Ne,ac as Ce,ad as je,O as we,P as Oe,e as Kt,q as ze}from"./o6XZc-z-.js";import{P as We}from"./DiLyuexf.js";import{T as He}from"./BBTUzYSt.js";import{Y as ue,Z as ge,_ as pe,I as Ge,B as Ke,f as qe,n as Je,E as Ve}from"./pkgXnRzN.js";import{B as xe}from"./BnXwFclk.js";import{a as Ye,C as Ze}from"./CKh-IxuE.js";import{C as Qe}from"./DZoYjLWT.js";import{C as Ue}from"./AwLBiVgt.js";import{C as Xe,a as ta,b as ea}from"./BVExryab.js";import{P as aa,a as ra,b as sa}from"./CIdHWyP7.js";import{Z as ia}from"./0qaXsCwe.js";import{R as na}from"./DeURf8kl.js";import{C as oa}from"./5Mftjbb2.js";var la=v('<div class="flex items-center justify-center h-full"><span class="sig-label text-[var(--sig-text-muted)]">no comparison data yet</span></div>'),da=ie('<line stroke="var(--sig-border)" stroke-width="0.5" stroke-dasharray="4,4"></line><text text-anchor="end" fill="var(--sig-text-muted)" font-size="11" font-family="var(--font-mono)"> </text>',1),va=ie('<circle r="3"></circle>'),ca=ie('<line stroke="var(--sig-border)" stroke-width="0.5" stroke-dasharray="3,3"></line><circle r="4" fill="var(--sig-text-muted)" stroke="var(--sig-bg)" stroke-width="1.5"></circle><circle r="4" fill="var(--sig-success)" stroke="var(--sig-bg)" stroke-width="1.5"></circle>',1),ua=ie('<rect fill="transparent"></rect><!>',1),ga=v('<div class="sig-meta text-[var(--sig-text-muted)] mt-0.5"> </div>'),pa=v('<div class="absolute z-10 bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] rounded px-2 py-1.5 shadow-md pointer-events-none" style="top: 4px; right: 8px;"><div class="sig-label text-[var(--sig-text-muted)]"> </div> <div class="flex gap-3 mt-0.5"><span class="sig-label"><span class="text-[var(--sig-text-muted)]">base</span> <span class="text-[var(--sig-text)] ml-1"> </span></span> <span class="sig-label"><span class="text-[var(--sig-success)]">pred</span> <span class="text-[var(--sig-text)] ml-1"> </span></span> <span> </span></div> <!></div>'),xa=ie('<svg width="100%" height="100%" preserveAspectRatio="xMidYMid meet" class="select-none"><!><text text-anchor="end" fill="var(--sig-text-muted)" font-size="11" font-family="var(--font-mono)">1.00</text><text text-anchor="end" fill="var(--sig-text-muted)" font-size="11" font-family="var(--font-mono)">0.00</text><polyline fill="none" stroke="var(--sig-text-muted)" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round" opacity="0.5"></polyline><polyline fill="none" stroke="var(--sig-success)" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"></polyline><!><!><line stroke="var(--sig-text-muted)" stroke-width="1.5" opacity="0.5"></line><text fill="var(--sig-text-muted)" font-size="11" font-family="var(--font-mono)">baseline</text><line stroke="var(--sig-success)" stroke-width="2"></line><text fill="var(--sig-success)" font-size="11" font-family="var(--font-mono)">predictor</text></svg><!>',1);function fa(wt,c){re(c,!0);const p={top:12,right:12,bottom:20,left:32},T=1200,$=200,x=T-p.left-p.right,rt=$-p.top-p.bottom,j=I(()=>[...c.comparisons].reverse());function Y(n){return t(j).length<=1?p.left+x/2:p.left+n/(t(j).length-1)*x}function O(n){return p.top+(1-n)*rt}function st(n){return t(j).map((u,w)=>`${Y(w).toFixed(1)},${O(n(u)).toFixed(1)}`).join(" ")}const Pt=I(()=>st(n=>n.baselineNdcg)),M=I(()=>st(n=>n.predictorNdcg)),Z=[.25,.5,.75];let A=V(null);function mt(n){const u=new Date(n);return Number.isNaN(u.getTime())?n:u.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}var K=Ut(),Q=C(K);{var m=n=>{var u=la();s(n,u)},g=n=>{var u=xa(),w=C(u);o(w,"viewBox","0 0 1200 200");var h=r(w);Bt(h,17,()=>Z,ce,(B,f)=>{var S=da(),k=C(S),G=e(k),lt=r(G,!0);a(G),N((ft,ut,yt,gt)=>{o(k,"x1",p.left),o(k,"y1",ft),o(k,"x2",T-p.right),o(k,"y2",ut),o(G,"x",p.left-6),o(G,"y",yt),d(lt,gt)},[()=>O(t(f)),()=>O(t(f)),()=>O(t(f))+4,()=>t(f).toFixed(2)]),s(B,S)});var y=e(h),P=e(y),R=e(P),H=e(R),X=e(H);Bt(X,17,()=>t(j),ce,(B,f,S)=>{var k=va();o(k,"cy",$-6),N(G=>{o(k,"cx",G),o(k,"fill",t(f).predictorWon?"var(--sig-success)":"var(--sig-danger)"),o(k,"opacity",t(f).predictorWon?.8:.5)},[()=>Y(S)]),s(B,k)});var z=e(X);Bt(z,17,()=>t(j),ce,(B,f,S)=>{var k=ua(),G=C(k);o(G,"y",0),o(G,"height",$);var lt=e(G);{var ft=ut=>{var yt=ca(),gt=C(yt),Ct=e(gt),qt=e(Ct);N((Dt,i,l,W,F,U)=>{o(gt,"x1",Dt),o(gt,"y1",p.top),o(gt,"x2",i),o(gt,"y2",$-p.bottom),o(Ct,"cx",l),o(Ct,"cy",W),o(qt,"cx",F),o(qt,"cy",U)},[()=>Y(S),()=>Y(S),()=>Y(S),()=>O(t(f).baselineNdcg),()=>Y(S),()=>O(t(f).predictorNdcg)]),s(ut,yt)};nt(lt,ut=>{t(A)===S&&ut(ft)})}N((ut,yt)=>{o(G,"x",ut),o(G,"width",yt)},[()=>Y(S)-Math.max(x/t(j).length,16)/2,()=>Math.max(x/t(j).length,16)]),Se("mouseenter",G,()=>b(A,S,!0)),Se("mouseleave",G,()=>b(A,null)),s(B,k)});var at=e(z);o(at,"y1",10),o(at,"y2",10);var ct=e(at);o(ct,"y",14);var ot=e(ct);o(ot,"y1",10),o(ot,"y2",10);var St=e(ot);o(St,"y",14),a(w);var pt=e(w);{var xt=B=>{const f=I(()=>t(j)[t(A)]);var S=pa(),k=r(S),G=r(k,!0);a(k);var lt=e(k,2),ft=r(lt),ut=e(r(ft),2),yt=r(ut,!0);a(ut),a(ft);var gt=e(ft,2),Ct=e(r(gt),2),qt=r(Ct,!0);a(Ct),a(gt);var Dt=e(gt,2);let i;var l=r(Dt);a(Dt),a(lt);var W=e(lt,2);{var F=U=>{var q=ga(),_=r(q,!0);a(q),N(()=>d(_,t(f).project)),s(U,q)};nt(W,U=>{t(f).project&&U(F)})}a(S),N((U,q,_,tt)=>{d(G,U),d(yt,q),d(qt,_),i=ke(Dt,1,"sig-label",null,i,{"text-[var(--sig-success)]":t(f).margin>0,"text-[var(--sig-danger)]":t(f).margin<0}),d(l,`${t(f).margin>0?"+":""}${tt??""}`)},[()=>mt(t(f).createdAt),()=>t(f).baselineNdcg.toFixed(3),()=>t(f).predictorNdcg.toFixed(3),()=>t(f).margin.toFixed(3)]),s(B,S)};nt(pt,B=>{t(A)!==null&&t(j)[t(A)]&&B(xt)})}N((B,f)=>{o(y,"x",p.left-6),o(y,"y",B),o(P,"x",p.left-6),o(P,"y",f),o(R,"points",t(Pt)),o(H,"points",t(M)),o(at,"x1",T-p.right-160),o(at,"x2",T-p.right-146),o(ct,"x",T-p.right-142),o(ot,"x1",T-p.right-80),o(ot,"x2",T-p.right-66),o(St,"x",T-p.right-62)},[()=>O(1)+4,()=>O(0)+4]),s(n,u)};nt(Q,n=>{t(j).length===0?n(m):n(g,-1)})}s(wt,K),se()}var ma=v('<div class="flex items-baseline gap-2"><span class="text-2xl font-display font-bold text-foreground"> </span> <span class="sig-label text-[var(--sig-text-muted)]">ranking quality</span></div>'),_a=v("<!> <!>",1),ha=v('<div class="sig-label text-[var(--sig-text)] truncate pl-2 border-l border-[var(--sig-border)]"> </div>'),ba=v('<div class="sig-label text-[var(--sig-text-muted)] pl-2 italic">no ranking data yet</div>'),ya=v('<div class="flex justify-between sig-label"><span class="text-[var(--sig-text-muted)]"> </span> <span class="text-[var(--sig-text)]"> </span></div>'),$a=v("<!> <!>",1),wa=v('<div class="flex justify-between sig-label"><span class="text-[var(--sig-text-muted)]"> </span> <span class="text-[var(--sig-text)]"> </span></div>'),Pa=v('<div class="flex flex-col gap-2 p-3 bg-card rounded-lg border border-border min-w-0"><div class="flex items-center gap-2"><span class="sig-eyebrow tracking-wider text-[var(--sig-text-muted)]"> </span> <!></div> <!> <div class="space-y-1"><span class="sig-label text-[var(--sig-text-muted)]">recent top picks:</span> <!></div> <div class="mt-auto space-y-1 pt-2 border-t border-[var(--sig-border)]"></div></div>');function Pe(wt,c){re(c,!0);let p=Ee(c,"offline",3,!1);const T=I(()=>Math.round(c.ndcg*100)),$=I(()=>c.side==="baseline"?"Heuristic Baseline":"Predictor Model"),x=I(()=>`How well this system ranks memories. NDCG@10 = ${c.ndcg.toFixed(3)}`);var rt=Pa(),j=r(rt),Y=r(j),O=r(Y,!0);a(Y);var st=e(Y,2);{var Pt=m=>{xe(m,{variant:"destructive",class:"text-[8px] px-1.5 py-0",children:(g,n)=>{vt();var u=$t("OFFLINE");s(g,u)},$$slots:{default:!0}})};nt(st,m=>{p()&&m(Pt)})}a(j);var M=e(j,2);L(M,()=>pe,(m,g)=>{g(m,{children:(n,u)=>{var w=_a(),h=C(w);L(h,()=>ue,(P,R)=>{R(P,{class:"text-left",children:(H,X)=>{var z=ma(),at=r(z),ct=r(at);a(at),vt(2),a(z),N(()=>d(ct,`${t(T)??""}%`)),s(H,z)},$$slots:{default:!0}})});var y=e(h,2);L(y,()=>ge,(P,R)=>{R(P,{class:"bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] text-[var(--sig-text)] px-2 py-1 rounded text-xs",children:(H,X)=>{vt();var z=$t();N(()=>d(z,t(x))),s(H,z)},$$slots:{default:!0}})}),s(n,w)},$$slots:{default:!0}})});var Z=e(M,2),A=e(r(Z),2);{var mt=m=>{var g=Ut(),n=C(g);Bt(n,17,()=>c.topPicks.slice(0,3),u=>u.id,(u,w)=>{var h=ha(),y=r(h);a(h),N(P=>{o(h,"title",t(w).content),d(y,`${P??""}${t(w).content.length>60?"...":""}`)},[()=>t(w).content.slice(0,60)]),s(u,h)}),s(m,g)},K=m=>{var g=ba();s(m,g)};nt(A,m=>{c.topPicks.length>0?m(mt):m(K,-1)})}a(Z);var Q=e(Z,2);Bt(Q,21,()=>c.stats,m=>m.label,(m,g)=>{var n=Ut(),u=C(n);{var w=y=>{var P=Ut(),R=C(P);L(R,()=>pe,(H,X)=>{X(H,{children:(z,at)=>{var ct=$a(),ot=C(ct);L(ot,()=>ue,(pt,xt)=>{xt(pt,{class:"w-full text-left",children:(B,f)=>{var S=ya(),k=r(S),G=r(k,!0);a(k);var lt=e(k,2),ft=r(lt,!0);a(lt),a(S),N(()=>{d(G,t(g).label),d(ft,t(g).value)}),s(B,S)},$$slots:{default:!0}})});var St=e(ot,2);L(St,()=>ge,(pt,xt)=>{xt(pt,{class:"bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] text-[var(--sig-text)] px-2 py-1 rounded text-xs",children:(B,f)=>{vt();var S=$t();N(()=>d(S,t(g).tooltip)),s(B,S)},$$slots:{default:!0}})}),s(z,ct)},$$slots:{default:!0}})}),s(y,P)},h=y=>{var P=wa(),R=r(P),H=r(R,!0);a(R);var X=e(R,2),z=r(X,!0);a(X),a(P),N(()=>{d(H,t(g).label),d(z,t(g).value)}),s(y,P)};nt(u,y=>{t(g).tooltip?y(w):y(h,-1)})}s(m,n)}),a(Q),a(rt),N(()=>d(O,t($))),s(wt,rt),se()}function ka(wt,c){re(c,!0);let p=Le(c,["$$slots","$$events","$$legacy"]);const T=[["path",{d:"M14 17H5"}],["path",{d:"M19 7h-9"}],["circle",{cx:"17",cy:"17",r:"3"}],["circle",{cx:"7",cy:"7",r:"3"}]];Ge(wt,Re({name:"settings-2"},()=>p,{get iconNode(){return T},children:($,x)=>{var rt=Ut(),j=C(rt);Be(j,()=>c.children??De),s($,rt)},$$slots:{default:!0}})),se()}var Na=v('<span class="sig-meta text-[var(--sig-text-muted)] shrink-0">alpha</span> <div class="flex gap-px h-2.5 flex-1 rounded overflow-hidden"><div class="bg-[var(--sig-text-muted)] transition-all duration-300"></div> <div class="bg-[var(--sig-accent)] transition-all duration-300"></div></div> <span class="sig-meta text-[var(--sig-text)] font-mono"> </span>',1),Ta=v("<!> <!>",1),Sa=v('<span class="sig-label text-[var(--sig-text)]">win rate: <span class="font-bold"> </span></span>'),Ca=v("<!> <!>",1),ja=v('<div class="sig-eyebrow text-[var(--sig-text-muted)]">training config</div> <div class="space-y-1"><div class="flex justify-between items-center"><span class="sig-label text-[var(--sig-text-muted)]">epochs per run</span> <input type="number" min="1" max="20" class="w-14 bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] rounded px-1.5 py-0.5 text-center sig-label text-[var(--sig-text)] focus:outline-none focus:border-[var(--sig-accent)]"/></div> <span class="sig-meta text-[var(--sig-text-muted)]">more epochs = longer but more thorough</span></div> <div class="space-y-1"><div class="flex justify-between items-center"><span class="sig-label text-[var(--sig-text-muted)]">max samples</span> <input type="number" min="100" max="50000" step="500" class="w-20 bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] rounded px-1.5 py-0.5 text-center sig-label text-[var(--sig-text)] focus:outline-none focus:border-[var(--sig-accent)]"/></div> <span class="sig-meta text-[var(--sig-text-muted)]">training pairs to use per run</span></div> <div class="space-y-1"><div class="flex justify-between items-center"><span class="sig-label text-[var(--sig-text-muted)]">auto-trains every</span> <span class="sig-label text-[var(--sig-text)]"> </span></div> <span class="sig-meta text-[var(--sig-text-muted)]">change in settings</span></div> <div class="pt-1 border-t border-[var(--sig-border)]"><span class="sig-meta text-[var(--sig-text-muted)]"> </span></div>',1),Ma=v("<!> <!>",1),Fa=v("<!> <!>",1),Ia=v('<div class="flex items-center gap-3 px-3 py-2 bg-card rounded-lg border border-border"><!> <!> <!> <div class="flex-1"></div> <!> <!> <button class="flex items-center p-1 rounded text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] hover:bg-[var(--sig-surface-raised)] transition-colors disabled:opacity-40"><!></button></div>');function Aa(wt,c){re(c,!0);const p=I(()=>{switch(c.healthStatus){case"healthy":return"default";case"degraded":case"cold_start":return"secondary";case"unhealthy":return"destructive";default:return"outline"}});let T=V(!1);var $=Ia(),x=r($);xe(x,{get variant(){return t(p)},class:"text-[9px] shrink-0",children:(M,Z)=>{vt();var A=$t();N(()=>d(A,c.healthStatus)),s(M,A)},$$slots:{default:!0}});var rt=e(x,2);L(rt,()=>pe,(M,Z)=>{Z(M,{children:(A,mt)=>{var K=Ta(),Q=C(K);L(Q,()=>ue,(g,n)=>{n(g,{class:"flex items-center gap-2 min-w-[120px]",children:(u,w)=>{var h=Na(),y=e(C(h),2),P=r(y),R=e(P,2);a(y);var H=e(y,2),X=r(H,!0);a(H),N(z=>{Ne(P,`width: ${c.alpha*100}%`),Ne(R,`width: ${(1-c.alpha)*100}%`),d(X,z)},[()=>c.alpha.toFixed(2)]),s(u,h)},$$slots:{default:!0}})});var m=e(Q,2);L(m,()=>ge,(g,n)=>{n(g,{class:"bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] text-[var(--sig-text)] px-2 py-1 rounded text-xs max-w-[240px]",children:(u,w)=>{vt();var h=$t("Baseline weight in scoring. Shifts toward predictor as it proves itself.");s(u,h)},$$slots:{default:!0}})}),s(A,K)},$$slots:{default:!0}})});var j=e(rt,2);L(j,()=>pe,(M,Z)=>{Z(M,{children:(A,mt)=>{var K=Ca(),Q=C(K);L(Q,()=>ue,(g,n)=>{n(g,{children:(u,w)=>{var h=Sa(),y=e(r(h)),P=r(y);a(y),a(h),N(R=>d(P,`${R??""}%`),[()=>Math.round(c.winRate*100)]),s(u,h)},$$slots:{default:!0}})});var m=e(Q,2);L(m,()=>ge,(g,n)=>{n(g,{class:"bg-[var(--sig-surface-raised)] border border-[var(--sig-border)] text-[var(--sig-text)] px-2 py-1 rounded text-xs max-w-[240px]",children:(u,w)=>{vt();var h=$t("Sessions where predictor ranked better than heuristic baseline.");s(u,h)},$$slots:{default:!0}})}),s(A,K)},$$slots:{default:!0}})});var Y=e(j,4);L(Y,()=>sa,(M,Z)=>{Z(M,{get open(){return t(T)},set open(A){b(T,A,!0)},children:(A,mt)=>{var K=Ma(),Q=C(K);L(Q,()=>aa,(g,n)=>{n(g,{class:"flex items-center gap-1 sig-label text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] transition-colors p-1 rounded hover:bg-[var(--sig-surface-raised)]",children:(u,w)=>{ka(u,{class:"w-3.5 h-3.5"})},$$slots:{default:!0}})});var m=e(Q,2);L(m,()=>ra,(g,n)=>{n(g,{class:"w-[260px] bg-[var(--sig-surface)] border border-[var(--sig-border)] rounded-lg shadow-lg p-3 space-y-3",side:"bottom",align:"end",children:(u,w)=>{var h=ja(),y=e(C(h),2),P=r(y),R=e(r(P),2);Ce(R),a(P),vt(2),a(y);var H=e(y,2),X=r(H),z=e(r(X),2);Ce(z),a(X),vt(2),a(H);var at=e(H,2),ct=r(at),ot=e(r(ct),2),St=r(ot);a(ot),a(ct),vt(2),a(at);var pt=e(at,2),xt=r(pt),B=r(xt);a(xt),a(pt),N(f=>{je(R,c.trainEpochs),je(z,c.trainLimit),d(St,`${c.trainInterval??""} sessions`),d(B,`${f??""} training pairs available`)},[()=>c.trainingPairs.toLocaleString()]),we("input",R,f=>c.onEpochsChange(Number(f.currentTarget.value))),we("input",z,f=>c.onLimitChange(Number(f.currentTarget.value))),s(u,h)},$$slots:{default:!0}})}),s(A,K)},$$slots:{default:!0}})});var O=e(Y,2);{let M=I(()=>c.training||!c.sidecarAlive);Ke(O,{variant:"default",size:"sm",class:"sig-label gap-1.5",get onclick(){return c.onTrain},get disabled(){return t(M)},children:(Z,A)=>{var mt=Fa(),K=C(mt);ia(K,{class:"w-3.5 h-3.5"});var Q=e(K,2);{var m=n=>{var u=$t("training...");s(n,u)},g=n=>{var u=$t("train now");s(n,u)};nt(Q,n=>{c.training?n(m):n(g,-1)})}s(Z,mt)},$$slots:{default:!0}})}var st=e(O,2),Pt=r(st);{let M=I(()=>c.loading?"animate-spin":"");na(Pt,{get class(){return`w-3.5 h-3.5 ${t(M)??""}`}})}a(st),a($),N(()=>st.disabled=c.loading),we("click",st,function(...M){c.onRefresh?.apply(this,M)}),s(wt,$),se()}Oe(["input","click"]);var Ea=v('<div class="flex items-center justify-center col-span-full row-span-full"><span class="sig-label text-[var(--sig-text-muted)]">loading predictor data...</span></div>'),Ra=v('<div class="flex items-center justify-center col-span-full row-span-full"><span class="sig-label text-[var(--sig-text-muted)]">unable to reach predictor -- check daemon status</span></div>'),Ba=v("Predictor <!>",1),Da=v(`<p class="sig-label text-[var(--sig-text-muted)]">The predictive memory scorer learns which memories matter most for each
|
|
2
2
|
session. Enable it in your pipeline configuration to start training.</p>`),La=v("<!> <!>",1),Oa=v('<div class="flex items-center justify-center col-span-full row-span-full"><!></div>'),za=v('<!> <div class="flex flex-col items-center justify-center gap-2 p-3 bg-card rounded-lg border border-border border-dashed"><span class="sig-eyebrow tracking-wider text-[var(--sig-text-muted)]">predictor model</span> <span class="sig-label text-[var(--sig-text-muted)]">collecting training data</span> <div class="w-full max-w-[180px] space-y-1"><div class="flex justify-between sig-meta text-[var(--sig-text-muted)]"><span> </span> <span> </span></div> <div class="w-full h-1.5 rounded-full bg-[var(--sig-surface-raised)] overflow-hidden"><div class="h-full rounded-full bg-[var(--sig-accent)] transition-all duration-300 animate-pulse"></div></div></div> <span class="sig-meta text-[var(--sig-text-muted)] max-w-[200px] text-center">needs more sessions before it can start ranking</span></div>',1),Wa=v("<!> <!>",1),Ha=v('<div class="sig-label text-[var(--sig-success)]"> </div>'),Ga=v('<div class="sig-label text-[var(--sig-danger)]"> </div>'),Ka=v("<!> details <!>",1),qa=v('<tr class="border-b border-[var(--sig-border)] border-opacity-30"><td class="py-1 pr-3"><span></span> </td><td class="text-right py-1 px-2"> </td><td class="text-right py-1 px-2"> </td><td> </td><td class="py-1 px-2 max-w-[120px] truncate"> </td><td class="py-1 pl-2 text-[var(--sig-text-muted)]"> </td></tr>'),Ja=v('<div><span class="sig-eyebrow text-[var(--sig-text-muted)]">recent comparisons</span> <table class="w-full sig-label mt-1"><thead><tr class="text-[var(--sig-text-muted)] border-b border-[var(--sig-border)]"><th class="text-left py-1 pr-3">session</th><th class="text-right py-1 px-2">pred</th><th class="text-right py-1 px-2">base</th><th class="text-right py-1 px-2">margin</th><th class="text-left py-1 px-2">project</th><th class="text-left py-1 pl-2">time</th></tr></thead><tbody></tbody></table></div>'),Va=v('<tr class="border-b border-[var(--sig-border)] border-opacity-30"><td class="py-1 pr-3"> </td><td class="text-right py-1 px-2"> </td><td class="text-right py-1 px-2"> </td><td class="text-right py-1 px-2"> </td><td class="text-right py-1 px-2"> </td><td class="py-1 pl-2 text-[var(--sig-text-muted)]"> </td></tr>'),Ya=v('<div><span class="sig-eyebrow text-[var(--sig-text-muted)]">training history</span> <table class="w-full sig-label mt-1"><thead><tr class="text-[var(--sig-text-muted)] border-b border-[var(--sig-border)]"><th class="text-left py-1 pr-3">version</th><th class="text-right py-1 px-2">loss</th><th class="text-right py-1 px-2">samples</th><th class="text-right py-1 px-2">duration</th><th class="text-right py-1 px-2">canary</th><th class="text-left py-1 pl-2">time</th></tr></thead><tbody></tbody></table></div>'),Za=v('<div class="flex items-start gap-2 sig-label"><span class="text-[var(--sig-text-muted)] shrink-0"> </span> <span class="text-[var(--sig-danger)] font-mono"> </span> <span class="text-[var(--sig-text)] truncate"> </span></div>'),Qa=v('<div><span class="sig-eyebrow text-[var(--sig-text-muted)]">errors</span> <div class="space-y-1 mt-1"></div></div>'),Ua=v('<div class="mt-2 max-h-[200px] overflow-y-auto space-y-3 pr-1"><!> <!> <!></div>'),Xa=v("<!> <!>",1),tr=v('<!> <div class="grid grid-cols-2 gap-3"><!></div> <div class="relative min-h-0"><!></div> <div class="space-y-1.5"><!> <!></div>',1),er=v('<div class="flex flex-col flex-1 min-h-0 overflow-hidden"><!> <div class="grid flex-1 min-h-0 overflow-y-auto gap-3 p-3" style="grid-template-rows: auto auto auto 1fr auto;"><!></div></div>');function xr(wt,c){re(c,!0);const p="";let T=V(null),$=V(null),x=V(Kt([])),rt=V(Kt([])),j=V(!0),Y=V(!1),O=V(null),st=V(null),Pt=V(0),M=V(Kt([])),Z=V(!1);const A="signet-predictor-train-config";function mt(){try{const i=localStorage.getItem(A);if(i)return JSON.parse(i)}catch{}return{epochs:3,limit:5e3}}function K(i,l){localStorage.setItem(A,JSON.stringify({epochs:i,limit:l}))}const Q=mt();let m=V(Kt(Q.epochs)),g=V(Kt(Q.limit)),n=10,u=V(Kt([])),w=V(Kt([]));const h=I(()=>t(T)!==null&&!t(T).enabled),y=I(()=>t($)!==null&&!t($).coldStartExited&&t($).sidecarAlive),P=I(()=>t($)!==null&&!t($).sidecarAlive&&t(T)!==null&&t(T).enabled),R=10,H=I(()=>Math.min(1,t(x).length/R)),X=I(()=>t(x).length===0?0:t(x).filter(l=>l.predictorWon).length/t(x).length),z=I(()=>t(x).length===0?0:t(x).reduce((i,l)=>i+l.predictorNdcg,0)/t(x).length),at=I(()=>t(x).length===0?0:t(x).reduce((i,l)=>i+l.baselineNdcg,0)/t(x).length),ct=I(()=>t(x).length===0?0:t(x).reduce((i,l)=>i+l.scorerConfidence,0)/t(x).length),ot=I(()=>[{label:"sessions evaluated",value:`${t(x).length}`},{label:"avg confidence",value:t(ct).toFixed(2)}]),St=I(()=>[{label:"win rate",value:`${Math.round(t(X)*100)}%`,tooltip:"Sessions where predictor ranked better than heuristic baseline."},{label:"training pairs",value:t(Pt).toLocaleString(),tooltip:"Memory-relevance examples the model has learned from."},{label:"model",value:t($)?`v${t($).modelVersion} ${t($).lastTrainedAt?`· ${G(t($).lastTrainedAt)}`:""}`:"-"}]);let pt=V(!1),xt=V(!1);async function B(){if(!t(pt)){b(pt,!0),b(j,t(T)===null);try{const[i,l,W,F,U,q]=await Promise.allSettled([fetch(`${p}/api/predictor/status`),fetch(`${p}/api/diagnostics/predictor`),fetch(`${p}/api/predictor/comparisons?limit=50`),fetch(`${p}/api/predictor/training?limit=10`),fetch(`${p}/api/analytics/errors`),fetch(`${p}/api/predictor/training-pairs-count`)]);if(i.status==="fulfilled"&&i.value.ok&&b(T,await i.value.json(),!0),l.status==="fulfilled"&&l.value.ok&&b($,await l.value.json(),!0),W.status==="fulfilled"&&W.value.ok){const _=await W.value.json();b(x,_.items??[],!0)}if(F.status==="fulfilled"&&F.value.ok){const _=await F.value.json();b(rt,_.items??[],!0)}if(U.status==="fulfilled"&&U.value.ok){const tt=(await U.value.json()).errors??[];b(M,tt.filter(Jt=>Jt.stage==="predictor"),!0)}if(q.status==="fulfilled"&&q.value.ok){const _=await q.value.json();b(Pt,_.count??0,!0)}}catch{}t(T)===null&&b(xt,!0),b(j,!1),b(pt,!1),f().catch(()=>{})}}async function f(){try{if(t(x).length===0)return;const i=t(x)[0],l=i.predictorTopIds??[],W=i.baselineTopIds??[],F=[...new Set([...l.slice(0,5),...W.slice(0,5)])];if(F.length===0)return;const U=await Promise.allSettled(F.map(_=>fetch(`${p}/api/memory/${_}`).then(tt=>tt.ok?tt.json():null))),q=new Map;for(let _=0;_<F.length;_++){const tt=U[_];tt.status==="fulfilled"&&tt.value!==null&&q.set(F[_],tt.value.content??"")}b(u,l.slice(0,5).filter(_=>q.has(_)).map(_=>({id:_,content:q.get(_)??""})),!0),b(w,W.slice(0,5).filter(_=>q.has(_)).map(_=>({id:_,content:q.get(_)??""})),!0)}catch{b(u,[],!0),b(w,[],!0)}}async function S(){b(Y,!0),b(O,null),b(st,null);try{const i=await fetch(`${p}/api/predictor/train`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({epochs:t(m),limit:t(g)})}),l=await i.json();i.ok?(b(O,l,!0),await B()):b(st,l.error??`HTTP ${i.status}`,!0)}catch(i){b(st,String(i),!0)}b(Y,!1)}function k(i){const l=new Date(i);return Number.isNaN(l.getTime())?i:l.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function G(i){const l=Date.now()-new Date(i).getTime();if(Number.isNaN(l))return i;const W=Math.floor(l/6e4);if(W<1)return"just now";if(W<60)return`${W}m ago`;const F=Math.floor(W/60);return F<24?`${F}h ago`:`${Math.floor(F/24)}d ago`}ze(()=>{B();const i=setInterval(B,15e3);return()=>clearInterval(i)});var lt=er(),ft=r(lt);We(ft,{title:"Predictor",children:(i,l)=>{He(i,{group:"engine",get tabs(){return Ve},get activeTab(){return Je.activeTab},onselect:(W,F)=>qe(F)})}});var ut=e(ft,2),yt=r(ut);{var gt=i=>{var l=Ea();s(i,l)},Ct=i=>{var l=Ra();s(i,l)},qt=i=>{var l=Oa(),W=r(l);L(W,()=>Ze,(F,U)=>{U(F,{class:"max-w-md",children:(q,_)=>{var tt=La(),Jt=C(tt);L(Jt,()=>Qe,(Vt,Xt)=>{Xt(Vt,{children:(te,fe)=>{var D=Ut(),J=C(D);L(J,()=>Ue,(et,it)=>{it(et,{class:"flex items-center gap-2 text-sm",children:(kt,Lt)=>{vt();var jt=Ba(),Ot=e(C(jt));xe(Ot,{variant:"outline",children:(Mt,Yt)=>{vt();var Zt=$t("disabled");s(Mt,Zt)},$$slots:{default:!0}}),s(kt,jt)},$$slots:{default:!0}})}),s(te,D)},$$slots:{default:!0}})});var ne=e(Jt,2);L(ne,()=>Ye,(Vt,Xt)=>{Xt(Vt,{children:(te,fe)=>{var D=Da();s(te,D)},$$slots:{default:!0}})}),s(q,tt)},$$slots:{default:!0}})}),a(l),s(i,l)},Dt=i=>{var l=tr(),W=C(l);{let D=I(()=>t($)?.status??"unknown"),J=I(()=>t($)?.alpha??1),et=I(()=>t($)?.sidecarAlive??!1);Aa(W,{get healthStatus(){return t(D)},get alpha(){return t(J)},get winRate(){return t(X)},get sidecarAlive(){return t(et)},get training(){return t(Y)},get loading(){return t(j)},get trainingPairs(){return t(Pt)},get trainEpochs(){return t(m)},get trainLimit(){return t(g)},trainInterval:n,onTrain:S,onRefresh:B,onEpochsChange:it=>{b(m,it,!0),K(it,t(g))},onLimitChange:it=>{b(g,it,!0),K(t(m),it)}})}var F=e(W,2),U=r(F);{var q=D=>{var J=za(),et=C(J);Pe(et,{side:"baseline",get ndcg(){return t(at)},get topPicks(){return t(w)},get stats(){return t(ot)}});var it=e(et,2),kt=e(r(it),4),Lt=r(kt),jt=r(Lt),Ot=r(jt);a(jt);var Mt=e(jt,2),Yt=r(Mt);a(Mt),a(Lt);var Zt=e(Lt,2),Ft=r(Zt);a(Zt),a(kt),vt(2),a(it),N(zt=>{d(Ot,`${t(x).length??""} / 10 sessions`),d(Yt,`${zt??""}%`),Ne(Ft,`width: ${t(H)*100}%`)},[()=>Math.round(t(H)*100)]),s(D,J)},_=D=>{var J=Wa(),et=C(J);Pe(et,{side:"baseline",get ndcg(){return t(at)},get topPicks(){return t(w)},get stats(){return t(ot)}});var it=e(et,2);Pe(it,{side:"predictor",get ndcg(){return t(z)},get topPicks(){return t(u)},get stats(){return t(St)},get offline(){return t(P)}}),s(D,J)};nt(U,D=>{t(y)?D(q):D(_,-1)})}a(F);var tt=e(F,2),Jt=r(tt);fa(Jt,{get comparisons(){return t(x)}}),a(tt);var ne=e(tt,2),Vt=r(ne);{var Xt=D=>{var J=Ha(),et=r(J);a(J),N((it,kt)=>d(et,`trained v${t(O).step??""} -- ${t(O).samples_used??""} samples, loss ${it??""}, ${kt??""}s`),[()=>t(O).loss.toFixed(4),()=>(t(O).duration_ms/1e3).toFixed(1)]),s(D,J)},te=D=>{var J=Ga(),et=r(J,!0);a(J),N(()=>d(et,t(st))),s(D,J)};nt(Vt,D=>{t(O)?D(Xt):t(st)&&D(te,1)})}var fe=e(Vt,2);L(fe,()=>ea,(D,J)=>{J(D,{get open(){return t(Z)},set open(et){b(Z,et,!0)},children:(et,it)=>{var kt=Xa(),Lt=C(kt);L(Lt,()=>Xe,(Ot,Mt)=>{Mt(Ot,{class:"flex items-center gap-1.5 sig-label text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] transition-colors",children:(Yt,Zt)=>{var Ft=Ka(),zt=C(Ft);{let Wt=I(()=>t(Z)?"0deg":"-90deg");oa(zt,{class:"w-3 h-3 transition-transform duration-200",get style(){return`transform: rotate(${t(Wt)??""})`}})}var me=e(zt,2);{var oe=Wt=>{xe(Wt,{variant:"destructive",class:"text-[8px] px-1 py-0 ml-1",children:(_e,Te)=>{vt();var dt=$t();N(()=>d(dt,t(M).length)),s(_e,dt)},$$slots:{default:!0}})};nt(me,Wt=>{t(M).length>0&&Wt(oe)})}s(Yt,Ft)},$$slots:{default:!0}})});var jt=e(Lt,2);L(jt,()=>ta,(Ot,Mt)=>{Mt(Ot,{children:(Yt,Zt)=>{var Ft=Ua(),zt=r(Ft);{var me=dt=>{var _t=Ja(),It=e(r(_t),2),Ht=e(r(It));Bt(Ht,21,()=>t(x).slice(0,15),ht=>ht.sessionKey,(ht,E)=>{var bt=qa(),Nt=r(bt),At=r(Nt);let Et;var Qt=e(At);a(Nt);var Tt=e(Nt),ee=r(Tt,!0);a(Tt);var Gt=e(Tt),he=r(Gt,!0);a(Gt);var Rt=e(Gt);let le;var de=r(Rt);a(Rt);var ae=e(Rt),be=r(ae,!0);a(ae);var ve=e(ae),ye=r(ve,!0);a(ve),a(bt),N(($e,Me,Fe,Ie,Ae)=>{Et=ke(At,1,"w-2 h-2 inline-block rounded-full mr-1",null,Et,{"bg-[var(--sig-success)]":t(E).predictorWon,"bg-[var(--sig-danger)]":!t(E).predictorWon}),d(Qt,` ${$e??""}`),d(ee,Me),d(he,Fe),le=ke(Rt,1,"text-right py-1 px-2",null,le,{"text-[var(--sig-success)]":t(E).margin>0,"text-[var(--sig-danger)]":t(E).margin<0}),d(de,`${t(E).margin>0?"+":""}${Ie??""}`),d(be,t(E).project??"-"),d(ye,Ae)},[()=>t(E).sessionKey.slice(0,8),()=>t(E).predictorNdcg.toFixed(3),()=>t(E).baselineNdcg.toFixed(3),()=>t(E).margin.toFixed(3),()=>k(t(E).createdAt)]),s(ht,bt)}),a(Ht),a(It),a(_t),s(dt,_t)};nt(zt,dt=>{t(x).length>0&&dt(me)})}var oe=e(zt,2);{var Wt=dt=>{var _t=Ya(),It=e(r(_t),2),Ht=e(r(It));Bt(Ht,21,()=>t(rt),ht=>ht.id,(ht,E)=>{var bt=Va(),Nt=r(bt),At=r(Nt);a(Nt);var Et=e(Nt),Qt=r(Et,!0);a(Et);var Tt=e(Et),ee=r(Tt,!0);a(Tt);var Gt=e(Tt),he=r(Gt);a(Gt);var Rt=e(Gt),le=r(Rt,!0);a(Rt);var de=e(Rt),ae=r(de,!0);a(de),a(bt),N((be,ve,ye,$e)=>{d(At,`v${t(E).modelVersion??""}`),d(Qt,be),d(ee,t(E).sampleCount),d(he,`${ve??""}s`),d(le,ye),d(ae,$e)},[()=>t(E).loss.toFixed(4),()=>(t(E).durationMs/1e3).toFixed(1),()=>t(E).canaryNdcg!==null?t(E).canaryNdcg.toFixed(3):"-",()=>k(t(E).createdAt)]),s(ht,bt)}),a(Ht),a(It),a(_t),s(dt,_t)};nt(oe,dt=>{t(rt).length>0&&dt(Wt)})}var _e=e(oe,2);{var Te=dt=>{var _t=Qa(),It=e(r(_t),2);Bt(It,21,()=>t(M).slice(0,10),ce,(Ht,ht)=>{var E=Za(),bt=r(E),Nt=r(bt,!0);a(bt);var At=e(bt,2),Et=r(At,!0);a(At);var Qt=e(At,2),Tt=r(Qt,!0);a(Qt),a(E),N(ee=>{d(Nt,ee),d(Et,t(ht).code),d(Tt,t(ht).message)},[()=>k(t(ht).timestamp)]),s(Ht,E)}),a(It),a(_t),s(dt,_t)};nt(_e,dt=>{t(M).length>0&&dt(Te)})}a(Ft),s(Yt,Ft)},$$slots:{default:!0}})}),s(et,kt)},$$slots:{default:!0}})}),a(ne),s(i,l)};nt(yt,i=>{t(j)&&!t(T)&&!t(xt)?i(gt):t(xt)&&!t(T)?i(Ct,1):t(h)?i(qt,2):i(Dt,-1)})}a(ut),a(lt),s(wt,lt),se()}export{xr as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as qe,g as Mt,q as Sr,i as e,v as k,Q as yt,F as sr,b as n,d as He,o as de,m as c,s as Gt,c as Ne,f as $,a as Ct,n as Jt,r as Wt,j as m,t as s,l as g,k as z,w as De,y as ee,z as Z,B as Ft,x as nt,u,a3 as kr,e as Kt,N as yr,$ as xr,O as We,h as Y,ac as wr,A as Fe,I as Pr,E as Cr,aa as ir,P as Lt,_ as It,D as Er,aR as Nr,aS as ce,aT as Ar,R as Mr}from"./o6XZc-z-.js";import{i as Tr}from"./
|
|
1
|
+
import{p as qe,g as Mt,q as Sr,i as e,v as k,Q as yt,F as sr,b as n,d as He,o as de,m as c,s as Gt,c as Ne,f as $,a as Ct,n as Jt,r as Wt,j as m,t as s,l as g,k as z,w as De,y as ee,z as Z,B as Ft,x as nt,u,a3 as kr,e as Kt,N as yr,$ as xr,O as We,h as Y,ac as wr,A as Fe,I as Pr,E as Cr,aa as ir,P as Lt,_ as It,D as Er,aR as Nr,aS as ce,aT as Ar,R as Mr}from"./o6XZc-z-.js";import{i as Tr}from"./onn-nZWc.js";import{I as Yt,B as er,b5 as Fr,b6 as ar,t as At,b7 as Ir,b8 as Or,b9 as Ut,ba as Vr,bb as Dr,bc as Lr,bd as Rr,be as Br,bf as dr}from"./pkgXnRzN.js";import{E as tr,a as cr,C as zr,y as ur,m as vr,k as gr,l as jr,h as Ur,b as qr,c as Hr,f as Kr,d as Gr,e as Jr,g as Wr,s as Yr,i as Zr,j as Xr,n as Qr,o as ea,p as ta,q as ra}from"./G7hc92us.js";import{g as aa,p as mr,s as pr}from"./Cik1Y8bQ.js";import{P as na}from"./QWvt362d.js";import{P as sa,a as oa,b as la}from"./CIdHWyP7.js";import{L as ia}from"./DxMUJRtV.js";import{C as fr}from"./BP8rtJ3G.js";import{I as _e}from"./wKa5LZFG.js";import{T as da}from"./Bnt9vcuf.js";import{R as ca}from"./B7KEMFIz.js";import{c as vt,S as gt,a as mt,b as be}from"./Db7ak8Gl.js";import{C as ua}from"./DKpFJVqS.js";import{S as ut}from"./CeTzBz3S.js";var va=c('<div class="code-editor svelte-c4vs74"></div>');function ga(f,t){qe(t,!0);let r=Mt(t,"readonly",3,!1),l=de(void 0),o=de(void 0);const N=new zr;function v(){return tr.theme({"&":{backgroundColor:"var(--sig-bg)",color:"var(--sig-text-bright)",fontFamily:"var(--font-mono)",fontSize:"13px",height:"100%"},".cm-content":{caretColor:"var(--sig-text-bright)",fontFamily:"var(--font-mono)",lineHeight:"1.8",padding:"var(--space-md) 0"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--sig-text-bright)"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground":{backgroundColor:"rgba(255, 255, 255, 0.08) !important"},".cm-activeLine":{backgroundColor:"rgba(255, 255, 255, 0.03)"},".cm-gutters":{backgroundColor:"var(--sig-surface)",color:"var(--sig-text-muted)",border:"none",borderRight:"1px solid var(--sig-border)",fontFamily:"var(--font-mono)",fontSize:"11px"},".cm-activeLineGutter":{backgroundColor:"rgba(255, 255, 255, 0.04)",color:"var(--sig-text)"},".cm-foldGutter":{color:"var(--sig-text-muted)"},"&.cm-focused":{outline:"none"},".cm-matchingBracket":{backgroundColor:"rgba(255, 255, 255, 0.1)",color:"var(--sig-text-bright)"},".cm-searchMatch":{backgroundColor:"rgba(255, 255, 255, 0.12)"},".cm-selectionMatch":{backgroundColor:"rgba(255, 255, 255, 0.06)"},".cm-line":{padding:"0 var(--space-md)"},".cm-scroller":{overflow:"auto"}},{dark:!0})}function _(){return t.language==="yaml"?ur():t.language==="markdown"?vr():[]}function S(){const y=gr.of([{key:"Mod-s",run:()=>(t.onsave?.(),!0)}]);return[jr(),Ur(),qr(),Hr(),Kr(),Gr(),Jr(),Wr(),Yr(ra,{fallback:!0}),gr.of([...Zr,...Xr,...Qr,...ea,...ta]),v(),N.of(_()),y,tr.updateListener.of(b=>{b.docChanged&&t.onchange?.(b.state.doc.toString())}),...r()?[cr.readOnly.of(!0)]:[]]}Sr(()=>{if(e(l))return k(o,new tr({state:cr.create({doc:t.value,extensions:S()}),parent:e(l)}),!0),()=>{e(o)?.destroy(),k(o,void 0)}}),yt(()=>{if(!e(o))return;const y=e(o).state.doc.toString();t.value!==y&&e(o).dispatch({changes:{from:0,to:y.length,insert:t.value}})}),yt(()=>{const y=t.language;e(o)&&e(o).dispatch({effects:N.reconfigure(y==="yaml"?ur():y==="markdown"?vr():[])})});var p=va();sr(p,y=>k(l,y),()=>e(l)),n(f,p),He()}function ma(f,t){qe(t,!0);let r=Wt(t,["$$slots","$$events","$$legacy"]);const l=[["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"}]];Yt(f,Gt({name:"eye"},()=>r,{get iconNode(){return l},children:(o,N)=>{var v=Ne(),_=$(v);Ct(_,()=>t.children??Jt),n(o,v)},$$slots:{default:!0}})),He()}var pa=c('<span> <span class="md-viewer-budget-pct svelte-ebmw30"> </span></span>'),fa=c('<span class="md-viewer-budget svelte-ebmw30"> </span>'),ha=c('<span class="md-viewer-save-meta svelte-ebmw30"> </span>'),ba=c('<span class="md-viewer-save-meta svelte-ebmw30"> </span>'),_a=c("<!> <span>Preview</span>",1),ya=c("<!> <span>Edit</span>",1),xa=c('<div class="md-viewer-prose prose svelte-ebmw30"></div>'),$a=c('<div class="md-viewer svelte-ebmw30"><div class="md-viewer-toolbar svelte-ebmw30"><span class="md-viewer-filename svelte-ebmw30"><span class="md-viewer-path svelte-ebmw30">~/.agents/</span> </span> <!> <div class="md-viewer-actions svelte-ebmw30"><!> <!> <span> </span> <!> <!> <!></div></div> <!></div>');function Sa(f,t){qe(t,!0);let r=Mt(t,"dirty",3,!1),l=Mt(t,"saving",3,!1),o=Mt(t,"saveDisabled",3,!1);function N(A){const j=A.match(/\sclass=(['"])(.*?)\1/i);if(!j)return`${A} class="md-boxed-heading"`;const re=j[1],H=j[2].split(/\s+/).filter(Boolean);return H.includes("md-boxed-heading")||H.push("md-boxed-heading"),A.replace(/\sclass=(['"])(.*?)\1/i,` class=${re}${H.join(" ")}${re}`)}function v(A){return A.replace(/<h([1-6])(\s[^>]*)?>([\s\S]*?)<\/h\1>/gi,(j,re,H="",ue="")=>{const he=N(H);return`<h${re}${he}>${ue}</h${re}>`})}const _=u(()=>t.content?.length??0),S=u(()=>t.charBudget?Math.round(e(_)/t.charBudget*100):0);let p=de(!1);const y=u(()=>{if(!t.content)return"";const A=aa.parse(t.content,{async:!1});return v(A)});var b=$a(),K=m(b),M=m(K),E=s(m(M),1,!0);g(M);var I=s(M,2);{var D=A=>{var j=pa();let re;var H=m(j),ue=s(H),he=m(ue);g(ue),g(j),ee((Se,xe)=>{re=Ft(j,1,"md-viewer-budget svelte-ebmw30",null,re,{"over-budget":e(_)>t.charBudget,"near-budget":e(S)>=80&&e(_)<=t.charBudget}),Z(H,`${Se??""} / ${xe??""} chars `),Z(he,`(${e(S)??""}%)`)},[()=>e(_).toLocaleString(),()=>t.charBudget.toLocaleString()]),n(A,j)},U=A=>{var j=fa(),re=m(j);g(j),ee(H=>Z(re,`${H??""} chars`),[()=>e(_).toLocaleString()]),n(A,j)};z(I,A=>{t.charBudget?A(D):A(U,-1)})}var q=s(I,2),O=m(q);{var G=A=>{var j=ha(),re=m(j,!0);g(j),ee(()=>Z(re,t.lastSavedText)),n(A,j)};z(O,A=>{t.lastSavedText&&A(G)})}var i=s(O,2);{var P=A=>{var j=ba(),re=m(j,!0);g(j),ee(()=>Z(re,t.saveFeedback)),n(A,j)};z(i,A=>{t.saveFeedback&&A(P)})}var T=s(i,2);let C;var X=m(T,!0);g(T);var ae=s(T,2);{var ye=A=>{er(A,{variant:"outline",size:"sm",class:`h-auto rounded-lg gap-1 font-[family-name:var(--font-mono)] text-[10px]
|
|
2
2
|
font-medium uppercase tracking-[0.1em] px-2 py-[3px]
|
|
3
3
|
text-[var(--sig-text-muted)] border-[var(--sig-border)]
|
|
4
4
|
hover:text-[var(--sig-text)] hover:border-[var(--sig-border-strong)]`,get onclick(){return t.ondiscard},children:(j,re)=>{De();var H=nt("DISCARD");n(j,H)},$$slots:{default:!0}})};z(ae,A=>{e(p)&&r()&&t.ondiscard&&A(ye)})}var le=s(ae,2);{var te=A=>{er(A,{variant:"outline",size:"sm",class:`h-auto rounded-lg gap-1 font-[family-name:var(--font-mono)] text-[10px]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as Le,g as Ue,E as We,j as v,a as Qe,n as Xe,l as s,F as Ye,b as t,d as Ne,r as Ze,m as c,q as ea,t as e,k as I,i as a,O as te,o as Y,v as z,y as p,z as y,u as ze,f as P,A as ce,K as fe,w as G,x as B,D as ue,c as pe,a3 as me,B as ge,P as aa}from"./o6XZc-z-.js";import{c as ra,D as ta,F as sa,G as oa,S as x,H as _e,J as he}from"./
|
|
1
|
+
import{p as Le,g as Ue,E as We,j as v,a as Qe,n as Xe,l as s,F as Ye,b as t,d as Ne,r as Ze,m as c,q as ea,t as e,k as I,i as a,O as te,o as Y,v as z,y as p,z as y,u as ze,f as P,A as ce,K as fe,w as G,x as B,D as ue,c as pe,a3 as me,B as ge,P as aa}from"./o6XZc-z-.js";import{c as ra,D as ta,F as sa,G as oa,S as x,H as _e,J as he}from"./pkgXnRzN.js";import{P as la}from"./DiLyuexf.js";import{C as xe,a as be}from"./CKh-IxuE.js";import{C as $e}from"./CDk3p5Mv.js";import{C as we}from"./DZoYjLWT.js";import{C as ye}from"./AwLBiVgt.js";import{R as ia}from"./DeURf8kl.js";var na=c("<div><!></div>");function Pe(Ae,q){Le(q,!0);let M=Ue(q,"ref",15,null),S=Ze(q,["$$slots","$$events","$$legacy","ref","class","children"]);var k=na();We(k,H=>({"data-slot":"card-action",class:H,...S}),[()=>ra("col-start-2 row-span-2 row-start-1 self-start justify-self-end",q.class)]);var _=v(k);Qe(_,()=>q.children??Xe),s(k),Ye(k,H=>M(H),()=>M()),t(Ae,k),Ne()}var da=c('<span class="sig-meta whitespace-nowrap text-[var(--sig-text-muted)]"> </span>'),va=c('<div class="hidden h-full min-h-0 gap-4 2xl:flex"><div class="w-[21rem] min-w-[21rem] border border-[var(--sig-border)] bg-[var(--sig-surface)] p-4"><!> <!> <!> <div class="space-y-2"></div></div> <div class="min-w-0 flex-1 border border-[var(--sig-border)] bg-[var(--sig-surface)] p-4"><!> <!> <!> <div class="space-y-2"></div></div> <div class="min-w-0 flex-1 border border-[var(--sig-border)] bg-[var(--sig-surface)] p-4"><!> <!> <!> <div class="space-y-2"></div></div></div> <div class="flex h-full min-h-0 flex-col gap-3 2xl:hidden"><div class="flex gap-2 border-b border-[var(--sig-border)] pb-3"><!> <!> <!></div> <div class="border border-[var(--sig-border)] bg-[var(--sig-surface)] p-4"><!> <!> <!> <div class="space-y-2"></div></div></div>',1),ca=c(`<div class="flex h-full min-h-0 items-center justify-center"><div class="border border-[var(--sig-border-strong)] bg-[var(--sig-surface)]
|
|
2
2
|
px-6 py-5 text-center"><div class="sig-heading text-[var(--sig-text-bright)]">Project Unavailable</div> <p class="mt-2 max-w-md font-[family-name:var(--font-mono)] text-[11px]
|
|
3
3
|
leading-5 text-[var(--sig-text-muted)]">Couldn't load README, roadmap, or changelog.</p> <button class="mt-4 text-[11px] uppercase tracking-[0.08em]
|
|
4
4
|
font-[family-name:var(--font-mono)] text-[var(--sig-accent)]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as h,g as s,c as o,f as d,M as p,F as m,E as x,a as y,n as w,b as c,d as _,r as k}from"./o6XZc-z-.js";import{c as B,e as V}from"./
|
|
1
|
+
import{p as h,g as s,c as o,f as d,M as p,F as m,E as x,a as y,n as w,b as c,d as _,r as k}from"./o6XZc-z-.js";import{c as B,e as V}from"./pkgXnRzN.js";const j=V({base:"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90 border-transparent",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 border-transparent",destructive:"bg-destructive [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/70 border-transparent text-white",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function F(v,e){h(e,!0);let a=s(e,"ref",15,null),f=s(e,"variant",3,"default"),l=k(e,["$$slots","$$events","$$legacy","ref","href","class","variant","children"]);var t=o(),u=d(t);p(u,()=>e.href?"a":"span",!1,(i,g)=>{m(i,r=>a(r),()=>a()),x(i,r=>({"data-slot":"badge",href:e.href,class:r,...l}),[()=>B(j({variant:f()}),e.class)]);var n=o(),b=d(n);y(b,()=>e.children??w),c(g,n)}),c(v,t),_()}export{F as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as n,g as r,H as u,E as c,F as b,I as v,b as f,d as x,r as m,m as g}from"./o6XZc-z-.js";import{c as p}from"./
|
|
1
|
+
import{p as n,g as r,H as u,E as c,F as b,I as v,b as f,d as x,r as m,m as g}from"./o6XZc-z-.js";import{c as p}from"./pkgXnRzN.js";var h=g("<textarea></textarea>");function y(i,a){n(a,!0);let s=r(a,"ref",15,null),o=r(a,"value",15),d=r(a,"data-slot",3,"textarea"),l=m(a,["$$slots","$$events","$$legacy","ref","value","class","data-slot"]);var e=h();u(e),c(e,t=>({"data-slot":d(),class:t,...l}),[()=>p("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a.class)]),b(e,t=>s(t),()=>s()),v(e,o),f(i,e),x()}export{y as T};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as se,s as be,c as C,f as w,a as fe,n as ge,b as c,d as re,r as ke,e as pe,o as me,j as u,A as Y,h as G,i as s,t as y,l as p,k as A,w as ue,x as Z,y as z,z as H,u as ee,aa as Je,O as he,ab as We,a3 as Fe,K as Ue,m as T,v as te,U as Ve,P as Qe}from"./o6XZc-z-.js";import{I as ye,K as Xe,o as ae}from"./
|
|
1
|
+
import{p as se,s as be,c as C,f as w,a as fe,n as ge,b as c,d as re,r as ke,e as pe,o as me,j as u,A as Y,h as G,i as s,t as y,l as p,k as A,w as ue,x as Z,y as z,z as H,u as ee,aa as Je,O as he,ab as We,a3 as Fe,K as Ue,m as T,v as te,U as Ve,P as Qe}from"./o6XZc-z-.js";import{I as ye,K as Xe,o as ae}from"./pkgXnRzN.js";import{S as Ye,a as Ze,b as et,c as tt}from"./Db7ak8Gl.js";import{W as at,L as ve}from"./DkVUTzms.js";import{T as st}from"./DFAV_3B_.js";function rt(P,f){se(f,!0);let _=ke(f,["$$slots","$$events","$$legacy"]);const g=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"}]];ye(P,be({name:"activity"},()=>_,{get iconNode(){return g},children:(h,O)=>{var x=C(),E=w(x);fe(E,()=>f.children??ge),c(h,x)},$$slots:{default:!0}})),re()}function nt(P,f){se(f,!0);let _=ke(f,["$$slots","$$events","$$legacy"]);const g=[["path",{d:"M12 19h8"}],["path",{d:"m4 17 6-6-6-6"}]];ye(P,be({name:"terminal"},()=>_,{get iconNode(){return g},children:(h,O)=>{var x=C(),E=w(x);fe(E,()=>f.children??ge),c(h,x)},$$slots:{default:!0}})),re()}var it=T('<span class="ts-panel-count svelte-c36e65"> </span>'),lt=T("<!> <!>",1),ot=T('<div class="ts-control svelte-c36e65"><div class="ts-control-head svelte-c36e65"><div class="ts-control-title-wrap svelte-c36e65"><!> <span class="ts-control-title svelte-c36e65"> </span> <!></div> <!></div> <div class="ts-action-bar svelte-c36e65"><!> <button class="ts-run svelte-c36e65"><!></button></div></div>'),ct=T('<button class="ts-clear svelte-c36e65" title="Clear output"><!></button>'),dt=T('<div class="ts-empty svelte-c36e65">no output yet</div>'),pt=T('<div class="ts-line svelte-c36e65"></div>'),mt=T('<div class="ts-root svelte-c36e65"><div class="ts-controls svelte-c36e65"></div> <div class="ts-terminal-wrap svelte-c36e65"><div class="ts-terminal-head svelte-c36e65"><span class="ts-control-title svelte-c36e65">Terminal</span> <!></div> <div class="ts-term svelte-c36e65" role="log"><!></div></div></div>');function yt(P,f){se(f,!0);const _=[{id:"cli",title:"CLI",icon:nt,color:"var(--sig-highlight)",commands:[{label:"Status",kind:"cli",key:"status"},{label:"Daemon Status",kind:"cli",key:"daemon-status"},{label:"Daemon Logs",kind:"cli",key:"daemon-logs"},{label:"Sync",kind:"cli",key:"sync"},{label:"Embed Audit",kind:"cli",key:"embed-audit"},{label:"Skill List",kind:"cli",key:"skill-list"},{label:"Secret List",kind:"cli",key:"secret-list"},{label:"Recall Test",kind:"cli",key:"recall-test"}]},{id:"status",title:"Status",icon:rt,color:"var(--sig-highlight)",commands:[{label:"Health",kind:"api",method:"GET",path:"/health"},{label:"Diagnostics",kind:"api",method:"GET",path:"/api/diagnostics"},{label:"Pipeline",kind:"api",method:"GET",path:"/api/pipeline/status"},{label:"Predictor",kind:"api",method:"GET",path:"/api/predictor/status"},{label:"Git",kind:"api",method:"GET",path:"/api/git/status"},{label:"Embeddings",kind:"api",method:"GET",path:"/api/embeddings/health"}]},{id:"info",title:"Info",icon:Xe,color:"var(--sig-highlight)",commands:[{label:"Embed Gaps",kind:"api",method:"GET",path:"/api/repair/embedding-gaps"},{label:"Dedup Stats",kind:"api",method:"GET",path:"/api/repair/dedup-stats"},{label:"Cold Stats",kind:"api",method:"GET",path:"/api/repair/cold-stats"}]},{id:"repair",title:"Repair",icon:at,color:"var(--sig-highlight)",commands:[{label:"Check FTS",kind:"api",method:"POST",path:"/api/repair/check-fts"},{label:"Re-embed",kind:"api",method:"POST",path:"/api/repair/re-embed"},{label:"Resync Vec",kind:"api",method:"POST",path:"/api/repair/resync-vec"},{label:"Clean Orphans",kind:"api",method:"POST",path:"/api/repair/clean-orphans"},{label:"Deduplicate",kind:"api",method:"POST",path:"/api/repair/deduplicate"},{label:"Retention",kind:"api",method:"POST",path:"/api/repair/retention-sweep"},{label:"Requeue Dead",kind:"api",method:"POST",path:"/api/repair/requeue-dead"},{label:"Release Leases",kind:"api",method:"POST",path:"/api/repair/release-leases"},{label:"Backfill Skipped",kind:"api",method:"POST",path:"/api/repair/backfill-skipped"},{label:"Reclassify",kind:"api",method:"POST",path:"/api/repair/reclassify-entities"},{label:"Prune Chunks",kind:"api",method:"POST",path:"/api/repair/prune-chunk-groups"},{label:"Prune Singletons",kind:"api",method:"POST",path:"/api/repair/prune-singleton-entities"},{label:"Stop Daemon",kind:"cli",key:"daemon-stop"},{label:"Restart Daemon",kind:"cli",key:"daemon-restart"},{label:"Update Signet",kind:"cli",key:"update"}]}],g=pe(Object.fromEntries(_.map(e=>[e.id,{lines:[],running:!1,selected:0}])));let h=me(pe([])),O=me(void 0);const x=Object.fromEntries(_.map(e=>[e.id,e]));function E(e){te(O,e,!0)}async function v(e){await Ve(),s(O)?.scrollTo({top:s(O).scrollHeight,behavior:"smooth"})}function o(e,t){const a=g[e];if(!a)return;a.lines=[...a.lines,t];const i=x[e]?.title??e;te(h,[...s(h),t?`[${i}] ${t}`:""],!0)}function _e(){te(h,[],!0);for(const e of _)g[e.id].lines=[]}async function xe(e,t){const a=g[e];if(!a||a.running||!t.key)return;a.running=!0,o(e,`\x1B[32m$\x1B[0m signet ${t.key.replace(/-/g," ")}`),await v();const i=new AbortController;let r=!1;try{const n=await fetch(`${ae}/api/troubleshoot/exec`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({key:t.key}),signal:i.signal});if(!n.ok){const D=await n.json().catch(()=>({error:"request failed"}));o(e,`\x1B[31merror:\x1B[0m ${D.error??n.statusText}`),a.running=!1,await v(e);return}const d=n.body?.getReader();if(!d){o(e,"\x1B[31merror:\x1B[0m no stream"),a.running=!1;return}t.key==="daemon-restart"&&(r=!0);const b=new TextDecoder;let $="";try{for(;;){const{done:D,value:W}=await d.read();if(D)break;$+=b.decode(W,{stream:!0});const N=$.split(`
|
|
2
2
|
|
|
3
3
|
`);$=N.pop()??"";for(const F of N){const R=F.match(/^data:\s*(.+)$/m);if(R)try{const m=JSON.parse(R[1]);if(m.type==="started"&&(r=!0),m.type==="stdout"||m.type==="stderr"){const S=String(m.data).replace(/\n$/,"");if(S){for(const I of S.split(`
|
|
4
4
|
`))o(e,m.type==="stderr"?`\x1B[33m${I}\x1B[0m`:I);await v(e)}}else m.type==="exit"?(o(e,m.code===0?"\x1B[32m✓ exit 0\x1B[0m":`\x1B[31m✗ exit ${m.code}\x1B[0m`),await v(e)):m.type==="error"&&(o(e,`\x1B[31merror:\x1B[0m ${m.message}`),await v(e))}catch{}}}}finally{d.releaseLock()}}catch(n){i.signal.aborted||(t.key==="daemon-stop"||t.key==="daemon-restart"?o(e,"\x1B[33mDaemon process ended\x1B[0m"):o(e,`\x1B[31merror:\x1B[0m ${n instanceof Error?n.message:"fetch failed"}`))}if(t.key==="daemon-restart"&&r){o(e,"\x1B[90mWaiting for daemon to restart...\x1B[0m"),await v();let n=!1;for(let d=0;d<15;d++){await new Promise(b=>setTimeout(b,1e3));try{if((await fetch(`${ae}/health`)).ok){n=!0;break}}catch{}}o(e,n?"\x1B[32m✓ Daemon restarted\x1B[0m":"\x1B[31m✗ Daemon did not restart within 15s\x1B[0m"),await v()}o(e,""),a.running=!1,await v()}async function $e(e,t){const a=g[e];if(!a||a.running||!t.path||!t.method)return;a.running=!0;const i=performance.now();o(e,`\x1B[32m$\x1B[0m ${t.method} ${t.path}`),await v();try{const r=await fetch(`${ae}${t.path}`,{method:t.method}),n=Math.round(performance.now()-i),b=(r.headers.get("content-type")??"").includes("json")?JSON.stringify(await r.json(),null,2):await r.text();o(e,r.ok?`\x1B[32m${r.status} OK\x1B[0m \x1B[90m${n}ms\x1B[0m`:`\x1B[31m${r.status} FAILED\x1B[0m \x1B[90m${n}ms\x1B[0m`);for(const $ of b.split(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as et,s as Ht,c as ue,f as h,a as Ft,n as Wt,b as a,d as tt,r as Ut,g as kt,j as l,l as s,t as r,k as A,i as e,y as k,B as Dt,D as yt,z as f,O as We,u as B,m as i,P as ft,A as Me,aa as Et,Q as $t,h as p,w as m,x as I,v,o as oe,U as qt,F as Vt,a3 as wt,K as Pt,e as Gt,N as Qt,q as Zt}from"./o6XZc-z-.js";import{I as Jt,$ as It,a0 as Nt,a1 as Lt,a2 as Ot,B as ot,a3 as Mt,l as Xt,aG as Yt,a6 as ea,aH as zt,aI as ta,aJ as Ct,o as aa,aK as St,aL as sa,aM as xe,aN as ra,aO as jt,aP as Tt,aQ as na}from"./
|
|
1
|
+
import{p as et,s as Ht,c as ue,f as h,a as Ft,n as Wt,b as a,d as tt,r as Ut,g as kt,j as l,l as s,t as r,k as A,i as e,y as k,B as Dt,D as yt,z as f,O as We,u as B,m as i,P as ft,A as Me,aa as Et,Q as $t,h as p,w as m,x as I,v,o as oe,U as qt,F as Vt,a3 as wt,K as Pt,e as Gt,N as Qt,q as Zt}from"./o6XZc-z-.js";import{I as Jt,$ as It,a0 as Nt,a1 as Lt,a2 as Ot,B as ot,a3 as Mt,l as Xt,aG as Yt,a6 as ea,aH as zt,aI as ta,aJ as Ct,o as aa,aK as St,aL as sa,aM as xe,aN as ra,aO as jt,aP as Tt,aQ as na}from"./pkgXnRzN.js";import{S as la}from"./CeTzBz3S.js";import{B as _t}from"./BnXwFclk.js";import{S as oa,a as ia}from"./D8nzdotv.js";import{C as da,a as va}from"./CKh-IxuE.js";import{P as ca}from"./QWvt362d.js";import{T as ua}from"./DFAV_3B_.js";import{I as bt}from"./wKa5LZFG.js";import{L as Ye}from"./DxMUJRtV.js";import{c as ct,S as ut,a as gt,b as Oe}from"./Db7ak8Gl.js";import{T as ga}from"./Bnt9vcuf.js";import{P as _a}from"./DvPIbmoh.js";import{Z as fa}from"./0qaXsCwe.js";function At(ke,t){et(t,!0);let N=Ut(t,["$$slots","$$events","$$legacy"]);const y=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"}]];Jt(ke,Ht({name:"play"},()=>N,{get iconNode(){return y},children:(H,D)=>{var T=ue(),L=h(T);Ft(L,()=>t.children??Wt),a(H,T)},$$slots:{default:!0}})),tt()}var xa=i("<span> </span>"),ma=i('<span class="task-status-running svelte-1lta2hw">running</span>'),pa=i("<span> </span>"),ha=i('<span class="task-status-failed svelte-1lta2hw"> </span>'),ba=i('<div tabindex="0" role="button"><div class="task-top svelte-1lta2hw"><span class="task-name svelte-1lta2hw"> </span> <span class="task-harness svelte-1lta2hw"> </span></div> <div class="task-meta svelte-1lta2hw"><span> </span> <!></div> <div class="task-actions svelte-1lta2hw"><div><!></div> <button class="trigger-btn svelte-1lta2hw"><!></button></div></div>');function Rt(ke,t){et(t,!0);let N=kt(t,"isSelected",3,!1);function y(n){if(!n)return"--";const o=new Date(n).getTime()-Date.now(),C=Math.abs(o);if(C<6e4)return o>0?"< 1m":"just now";if(C<36e5){const he=Math.round(C/6e4);return o>0?`${he}m`:`${he}m ago`}if(C<864e5){const he=Math.round(C/36e5);return o>0?`${he}h`:`${he}h ago`}const pe=Math.round(C/864e5);return o>0?`${pe}d`:`${pe}d ago`}const H=B(()=>t.task.harness==="claude-code"?"claude":t.task.harness==="codex"?"codex":"opencode"),D=B(()=>y(t.task.next_run_at)),T=B(()=>y(t.task.last_run_at));var L=ba();let R;var ae=l(L),E=l(ae),se=l(E,!0);s(E);var ie=r(E,2),ge=l(ie,!0);s(ie),s(ae);var O=r(ae,2),M=l(O),c=l(M,!0);s(M);var $=r(M,2);{var re=n=>{var o=xa(),C=l(o);s(o),k(()=>f(C,`next: ${e(D)??""}`)),a(n,o)},_e=n=>{var o=ma();a(n,o)},me=n=>{var o=pa(),C=l(o);s(o),k(()=>f(C,`exit 0 · ${e(T)??""}`)),a(n,o)},Z=n=>{var o=ha(),C=l(o);s(o),k(()=>f(C,`exit ${t.task.last_run_exit_code??"?"??""} · ${e(T)??""}`)),a(n,o)};A($,n=>{t.columnKey==="scheduled"?n(re):t.columnKey==="running"?n(_e,1):t.columnKey==="completed"?n(me,2):t.columnKey==="failed"&&n(Z,3)})}s(O);var b=r(O,2),w=l(b),J=l(w);{let n=B(()=>!!t.task.enabled);la(J,{get checked(){return e(n)},onCheckedChange:o=>t.ontoggle(o===!0),class:"scale-75 origin-left"})}s(w);var F=r(w,2),u=l(F);At(u,{class:"size-3"}),s(F),s(b),s(L),k(()=>{R=Dt(L,1,"task-card svelte-1lta2hw",null,R,{"task-card--selected":N(),"task-card--disabled":!t.task.enabled}),yt(L,"data-task-id",t.task.id),yt(L,"data-column",t.columnKey),f(se,t.task.name),f(ge,e(H)),f(c,t.task.cron_expression)}),We("click",L,function(...n){t.onclick?.apply(this,n)}),We("keydown",L,n=>{(n.key==="Enter"||n.key===" ")&&(n.preventDefault(),t.onclick())}),We("click",w,n=>n.stopPropagation()),We("click",F,n=>{n.stopPropagation(),t.ontrigger()}),a(ke,L),tt()}ft(["click","keydown"]);var ka=i('<div class="empty-state svelte-10pk3oi">LOADING</div>'),ya=i('<div class="empty-state svelte-10pk3oi"><span>NO SCHEDULED TASKS</span> <span class="empty-hint svelte-10pk3oi">PRESS N TO CREATE ONE</span></div>'),wa=i('<div class="column-empty svelte-10pk3oi">NO TASKS</div>'),Pa=i('<div class="column svelte-10pk3oi"><div class="column-header svelte-10pk3oi"><span class="column-pip svelte-10pk3oi"></span> <span class="column-label svelte-10pk3oi"> </span> <span class="column-count svelte-10pk3oi"> </span></div> <div class="column-body svelte-10pk3oi"><!> <!></div></div>'),Ca=i('<div class="disabled-section svelte-10pk3oi"><div class="column svelte-10pk3oi"><div class="column-header svelte-10pk3oi"><span class="column-pip svelte-10pk3oi" style="background: var(--sig-text-muted)"></span> <span class="column-label svelte-10pk3oi">Disabled</span> <span class="column-count svelte-10pk3oi"> </span></div> <div class="disabled-cards svelte-10pk3oi"></div></div></div>'),Sa=i('<div class="board-grid svelte-10pk3oi"></div> <!>',1);function ja(ke,t){et(t,!0);let N=kt(t,"selectedColumn",3,0),y=kt(t,"selectedTaskInColumn",3,0);const H=B(()=>t.tasks.filter(c=>c.enabled&&c.last_run_status!=="running")),D=B(()=>t.tasks.filter(c=>c.last_run_status==="running")),T=B(()=>t.tasks.filter(c=>c.last_run_status==="completed"&&!e(D).some($=>$.id===c.id))),L=B(()=>t.tasks.filter(c=>c.last_run_status==="failed"&&!e(D).some($=>$.id===c.id))),R=B(()=>t.tasks.filter(c=>!c.enabled)),ae=[{key:"scheduled",label:"Scheduled",color:"var(--sig-highlight)"},{key:"running",label:"Running",color:"var(--sig-warning)"},{key:"completed",label:"Completed",color:"var(--sig-success)"},{key:"failed",label:"Failed",color:"var(--sig-danger)"}];function E(c){switch(c){case"scheduled":return e(H);case"running":return e(D);case"completed":return e(T);case"failed":return e(L);default:return[]}}var se=ue(),ie=h(se);{var ge=c=>{var $=ka();a(c,$)},O=c=>{var $=ya();a(c,$)},M=c=>{var $=Sa(),re=h($);Me(re,23,()=>ae,Z=>Z.key,(Z,b,w)=>{const J=B(()=>E(e(b).key));var F=Pa(),u=l(F),n=l(u),o=r(n,2),C=l(o,!0);s(o);var pe=r(o,2),he=l(pe,!0);s(pe),s(u);var Ie=r(u,2),Ne=l(Ie);Me(Ne,19,()=>e(J),fe=>fe.id,(fe,ye,K)=>{{let X=B(()=>e(w)===N()&&e(K)===y());Rt(fe,{get task(){return e(ye)},get columnKey(){return e(b).key},get isSelected(){return e(X)},onclick:()=>t.onopendetail(e(ye).id,e(w),e(K)),ontrigger:()=>t.ontrigger(e(ye).id),ontoggle:be=>t.ontoggle(e(ye).id,be)})}});var ze=r(Ne,2);{var Ae=fe=>{var ye=wa();a(fe,ye)};A(ze,fe=>{e(J).length===0&&fe(Ae)})}s(Ie),s(F),k(()=>{yt(F,"data-column-idx",e(w)),Et(n,`background: ${e(b).color??""}`),f(C,e(b).label),f(he,e(J).length)}),a(Z,F)}),s(re);var _e=r(re,2);{var me=Z=>{var b=Ca(),w=l(b),J=l(w),F=r(l(J),4),u=l(F,!0);s(F),s(J);var n=r(J,2);Me(n,21,()=>e(R),o=>o.id,(o,C)=>{Rt(o,{get task(){return e(C)},columnKey:"disabled",isSelected:!1,onclick:()=>t.onopendetail(e(C).id,-1,-1),ontrigger:()=>t.ontrigger(e(C).id),ontoggle:pe=>t.ontoggle(e(C).id,pe)})}),s(n),s(w),s(b),k(()=>f(u,e(R).length)),a(Z,b)};A(_e,Z=>{e(R).length>0&&Z(me)})}a(c,$)};A(ie,c=>{t.loading&&t.tasks.length===0?c(ge):t.tasks.length===0?c(O,1):c(M,-1)})}a(ke,se),tt()}var Ta=i('<span class="text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-text-muted)]"> </span>'),Ra=i('<span class="text-[10px] text-[var(--sig-text-muted)] mt-2 block">No output captured</span>'),Da=i('<div class="text-[var(--sig-error,#ef4444)] mb-1"> </div>'),Ea=i('<div class="whitespace-pre-wrap break-words min-h-[1em] text-[var(--sig-warning,#e8a832)]"></div>'),$a=i('<div class="whitespace-pre-wrap break-words min-h-[1em]"></div>'),Ia=i(`<div class="mt-2 bg-[var(--sig-bg)] border border-[var(--sig-border)]
|
|
2
2
|
rounded max-h-[280px] overflow-y-auto
|
|
3
3
|
font-[family-name:var(--font-mono)] text-[10px] leading-[1.55]
|
|
4
4
|
text-[var(--sig-text)] p-2.5" role="log"><!> <!> <!></div>`),Na=i('<span class="text-[10px] text-[var(--sig-accent)] mt-0.5 block">Click to expand output</span>'),La=i('<div class="flex items-center justify-between gap-2"><div class="flex items-center gap-2"><span class="inline-block w-1.5 h-1.5"></span> <!> <!></div> <span class="text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-text-muted)]"> </span></div> <div class="text-[10px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)]"> </div> <!>',1),Oa=i('<button class="w-full text-left cursor-pointer bg-transparent border-none p-0"><!></button>');function Ma(ke,t){et(t,!0);let N=oe(!1),y=oe(void 0);function H(O){return O?new Date(O).toLocaleString():"—"}function D(O,M){if(!M)return"running...";const c=new Date(M).getTime()-new Date(O).getTime();if(c<1e3)return`${c}ms`;if(c<6e4)return`${(c/1e3).toFixed(1)}s`;const $=Math.floor(c/6e4),re=Math.round(c%6e4/1e3);return`${$}m ${re}s`}const T={pending:"var(--sig-text-muted)",running:"var(--sig-warning, #f59e0b)",completed:"var(--sig-success)",failed:"var(--sig-error, #ef4444)"};function L(O){return O.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}const R={31:"var(--sig-error, #ef4444)",32:"var(--sig-success)",33:"var(--sig-warning, #e8a832)",90:"var(--sig-text-muted)",36:"var(--sig-accent)",34:"var(--sig-highlight)",35:"var(--sig-accent)"};function ae(O){let M=L(O);return M=M.replace(/\x1b\[(\d+(?:;\d+)*)m([\s\S]*?)\x1b\[0m/g,(c,$,re)=>{const _e=$.split(";"),me=_e.includes("1"),Z=_e.map(w=>R[w]).find(Boolean);let b=re;return Z&&(b=`<span style="color:${Z}">${b}</span>`),me&&(b=`<strong>${b}</strong>`),b}),M.replace(/\x1b\[\d+(?:;\d+)*m/g,"")}function E(O){return O?O.split(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p,s as c,c as d,f as l,a as i,n as f,b as m,d as h,r as u}from"./o6XZc-z-.js";import{I as $}from"./
|
|
1
|
+
import{p,s as c,c as d,f as l,a as i,n as f,b as m,d as h,r as u}from"./o6XZc-z-.js";import{I as $}from"./pkgXnRzN.js";function C(o,e){p(e,!0);let t=u(e,["$$slots","$$events","$$legacy"]);const r=[["path",{d:"m15 18-6-6 6-6"}]];$(o,c({name:"chevron-left"},()=>t,{get iconNode(){return r},children:(a,v)=>{var s=d(),n=l(s);i(n,()=>e.children??f),m(a,s)},$$slots:{default:!0}})),h()}export{C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as c,g as d,E as i,j as l,a as p,n as f,l as m,F as u,b as h,d as _,r as v,m as b}from"./o6XZc-z-.js";import{c as g}from"./
|
|
1
|
+
import{p as c,g as d,E as i,j as l,a as p,n as f,l as m,F as u,b as h,d as _,r as v,m as b}from"./o6XZc-z-.js";import{c as g}from"./pkgXnRzN.js";var x=b("<p><!></p>");function y(r,s){c(s,!0);let e=d(s,"ref",15,null),o=v(s,["$$slots","$$events","$$legacy","ref","class","children"]);var a=x();i(a,t=>({"data-slot":"card-description",class:t,...o}),[()=>g("text-muted-foreground text-sm",s.class)]);var n=l(a);p(n,()=>s.children??f),m(a),u(a,t=>e(t),()=>e()),h(r,a),_()}export{y as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as d,i as S,u as M}from"./o6XZc-z-.js";import{p as k,m as L,q as I,u as b,t as n,v as T,w as f,l as A,x as B,y as O,z as F,C as E}from"./
|
|
1
|
+
import{e as d,i as S,u as M}from"./o6XZc-z-.js";import{p as k,m as L,q as I,u as b,t as n,v as T,w as f,l as A,x as B,y as O,z as F,C as E}from"./pkgXnRzN.js";const u=["var(--sig-icon-bg-1)","var(--sig-icon-bg-2)","var(--sig-icon-bg-3)","var(--sig-icon-bg-4)","var(--sig-icon-bg-5)","var(--sig-icon-bg-6)"];function R(t){let e=0;for(const l of t)e=e*31+l.charCodeAt(0)&65535;return e}function J(t){const e=t.split(/[-_.\s]+/).filter(Boolean);return e.length>=2?`${e[0]?.[0]??""}${e[1]?.[0]??""}`.toUpperCase():t.slice(0,2).toUpperCase()}function j(t){return u[Math.abs(R(t))%u.length]??u[0]}function Q(t){if(!t)return null;const e=t.match(/^https?:\/\/(?:www\.)?github\.com\/([a-zA-Z0-9._-]+)/);return e?.[1]?`https://github.com/${e[1]}.png?size=40`:null}function Y(t,e){return t?t==="modelcontextprotocol/servers"?"https://github.com/modelcontextprotocol.png?size=40":t==="github"&&e?.includes("/")?`https://github.com/${e.split("/")[0]}.png?size=40`:null:null}const r=d({installed:[],loadingInstalled:!1,catalog:[],catalogTotal:0,catalogLoaded:!1,catalogLoading:!1,catalogDetail:!1,query:"",view:"browse",category:"all",source:"all",sortBy:"popularity",tools:[],serverHealth:[],toolsLoading:!1,installingId:null,togglingId:null,removingId:null,installedError:null,catalogError:null,toolsError:null});function i(t){return t instanceof Error&&t.message?t.message:String(t)}function N(t,e){const l=[...t];switch(e){case"name":return l.sort((o,s)=>o.name.localeCompare(s.name));case"official":return l.sort((o,s)=>o.official&&!s.official?-1:!o.official&&s.official?1:o.popularityRank-s.popularityRank);default:return l.sort((o,s)=>o.popularityRank-s.popularityRank)}}function $(t){const e=r.query.trim().toLowerCase();return t.filter(l=>r.category!=="all"&&l.category!==r.category||r.source!=="all"&&l.source!==r.source?!1:e?l.name.toLowerCase().includes(e)||l.description.toLowerCase().includes(e)||l.id.toLowerCase().includes(e):!0)}function Z(){const t=new Set(["all"]);for(const e of r.catalog)t.add(e.category);return Array.from(t)}function K(){return["all","mcpservers.org","modelcontextprotocol/servers","github"]}function V(){return N($(r.catalog),r.sortBy)}async function q(){r.loadingInstalled=!0,r.installedError=null;try{const t=await L();r.installed=t.servers}catch(t){r.installed=[],r.installedError=i(t)}finally{r.loadingInstalled=!1}}async function W(t=5){if(!r.catalogLoaded){r.catalogLoading=!0,r.catalogError=null;try{const e=await k(t);r.catalog=e.results,r.catalogTotal=e.total,r.catalogLoaded=!0}catch(e){r.catalogError=i(e)}finally{r.catalogLoading=!1}}}async function p(t=!1){r.toolsLoading=!0,r.toolsError=null;try{const e=await I(t);r.tools=e.tools,r.serverHealth=e.servers}catch(e){r.tools=[],r.serverHealth=[],r.toolsError=i(e)}finally{r.toolsLoading=!1}}async function X(t,e){r.installingId=t.id;try{const l=await T({id:t.catalogId,source:t.source,alias:e?.alias,config:e?.config});return l.success?(n("Tool Server installed","success"),await Promise.all([q(),p(!0)]),r.catalog=r.catalog.map(o=>o.id===t.id?{...o,installed:!0}:o),!0):(n(l.error??"Install failed","error"),!1)}catch(l){return n(i(l),"error"),!1}finally{r.installingId=null}}async function tt(t){r.removingId=t;try{const e=r.installed.find(o=>o.id===t),l=await b(t);if(l.success){n("Tool Server removed","success"),r.installed=r.installed.filter(s=>s.id!==t),await p(!0);const o=e?.catalogId&&e.source!=="manual"?`${e.source}:${e.catalogId}`:null;o&&(r.catalog=r.catalog.map(s=>s.id===o?{...s,installed:!1}:s))}else n(l.error??"Remove failed","error")}catch(e){n(i(e),"error")}finally{r.removingId=null}}const m="signet:skills:catalog:v1",_=300*1e3;function x(){try{const t=localStorage.getItem(m);if(!t)return null;const e=JSON.parse(t);return typeof e.ts!="number"||!Array.isArray(e.results)||typeof e.total!="number"?null:e}catch{return null}}function y(t,e){try{const l={ts:Date.now(),results:t,total:e};localStorage.setItem(m,JSON.stringify(l))}catch{}}async function z(){try{const t=await f();a.catalog=t.results,a.catalogTotal=t.total,y(t.results,t.total)}catch{}}const a=d({view:"browse",installed:[],loading:!1,catalog:[],catalogTotal:0,catalogLoading:!1,catalogLoaded:!1,query:"",results:[],searching:!1,sortBy:"popularity",providerFilter:"all",categoryFilter:"all",compareSelected:[],selectedName:null,detailOpen:!1,detailContent:"",detailMeta:null,detailLoading:!1,detailSource:null,installing:null,uninstalling:null}),D=M(()=>new Map(a.catalog.map(t=>[t.name,t])));function at(){return S(D)}let g=null;function h(t,e){const l=[...t];switch(e){case"popularity":return l.sort((o,s)=>(s.popularityScore??s.installsRaw??0)-(o.popularityScore??o.installsRaw??0));case"installs":return l.sort((o,s)=>(s.installsRaw??0)-(o.installsRaw??0));case"stars":return l.sort((o,s)=>(s.stars??0)-(o.stars??0));case"name":return l.sort((o,s)=>o.name.localeCompare(s.name));case"newest":return l;default:return l}}function v(t,e){return e==="all"?[...t]:t.filter(l=>l.provider===e)}function w(t,e){return e==="all"?[...t]:t.filter(l=>(l.category??"Other")===e)}function et(){const t=new Set(["all"]);for(const e of[...a.catalog,...a.results])t.add(e.category??"Other");return Array.from(t)}function lt(){const t=v(a.catalog,a.providerFilter),e=w(t,a.categoryFilter);return h(e,a.sortBy)}function rt(){const t=v(a.results,a.providerFilter),e=w(t,a.categoryFilter);return h(e,a.sortBy)}function ot(){a.sortBy="popularity",a.providerFilter="all",a.categoryFilter="all"}function st(){a.compareSelected=[]}function nt(t){if(a.compareSelected.includes(t)){a.compareSelected=a.compareSelected.filter(l=>l!==t);return}a.compareSelected.length>=3||(a.compareSelected=[...a.compareSelected,t])}async function C(){a.loading=!0,a.installed=await A(),a.loading=!1}async function it(){if(a.catalogLoaded)return;const t=x();if(t){a.catalog=t.results,a.catalogTotal=t.total,a.catalogLoaded=!0,a.catalogLoading=!1,Date.now()-t.ts>_&&z();return}a.catalogLoading=!0;const e=await f();a.catalog=e.results,a.catalogTotal=e.total,a.catalogLoaded=!0,a.catalogLoading=!1,y(e.results,e.total)}function ct(t){if(a.query=t,g&&clearTimeout(g),!t.trim()){a.results=[],a.searching=!1;return}a.searching=!0,g=setTimeout(()=>H(),250)}async function H(){const t=a.query.trim();if(!t){a.results=[],a.searching=!1;return}a.searching=!0,a.results=await B(t),a.searching=!1}async function ut(t){a.selectedName=t,a.detailOpen=!0,a.detailLoading=!0,a.detailContent="",a.detailMeta=null;const e=a.results.find(s=>s.name===t)||a.catalog.find(s=>s.name===t);a.detailSource=e??null;const l=e?.fullName||void 0,o=await E(t,l);o&&(a.detailMeta=o,a.detailContent=o.content??""),a.detailLoading=!1}function P(){a.detailOpen=!1,a.selectedName=null,a.detailContent="",a.detailMeta=null,a.detailSource=null}async function gt(t){a.installing=t;const l=(a.results.find(s=>s.name===t)||a.catalog.find(s=>s.name===t))?.fullName||void 0;if((await F(t,l)).success){n(`Skill ${t} installed`,"success"),await C();const s=c=>c.name===t?{...c,installed:!0}:c;a.results=a.results.map(s),a.catalog=a.catalog.map(s)}else n(`Failed to install ${t}`,"error");a.installing=null}async function dt(t){if(a.uninstalling=t,(await O(t)).success){n(`Skill ${t} uninstalled`,"success"),await C();const l=o=>o.name===t?{...o,installed:!1}:o;a.results=a.results.map(l),a.catalog=a.catalog.map(l),a.selectedName===t&&P()}else n(`Failed to uninstall ${t}`,"error");a.uninstalling=null}export{et as A,Z as B,W as a,J as b,Y as c,Q as d,q as e,it as f,j as g,V as h,X as i,tt as j,K as k,P as l,r as m,dt as n,gt as o,at as p,C as q,p as r,a as s,ct as t,st as u,nt as v,ut as w,rt as x,lt as y,ot as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p,s as d,c as i,f as c,a as l,n as m,b as f,d as h,r as u}from"./o6XZc-z-.js";import{I as $}from"./
|
|
1
|
+
import{p,s as d,c as i,f as c,a as l,n as m,b as f,d as h,r as u}from"./o6XZc-z-.js";import{I as $}from"./pkgXnRzN.js";function P(e,a){p(a,!0);let o=u(a,["$$slots","$$events","$$legacy"]);const t=[["path",{d:"M12 17v5"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z"}]];$(e,d({name:"pin"},()=>o,{get iconNode(){return t},children:(n,v)=>{var s=i(),r=c(s);l(r,()=>a.children??m),f(n,s)},$$slots:{default:!0}})),h()}export{P};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as p,f as g,h as c,a6 as x,s as i,b as u,r as v,p as P,g as l,a7 as j,i as _,u as b,d as $,a8 as k,a9 as q}from"./o6XZc-z-.js";import{c as h}from"./
|
|
1
|
+
import{c as p,f as g,h as c,a6 as x,s as i,b as u,r as v,p as P,g as l,a7 as j,i as _,u as b,d as $,a8 as k,a9 as q}from"./o6XZc-z-.js";import{c as h}from"./pkgXnRzN.js";function A(r,e){let t=v(e,["$$slots","$$events","$$legacy"]);var o=p(),a=g(o);c(a,()=>x,(s,n)=>{n(s,i(()=>t))}),u(r,o)}function D(r,e){P(e,!0);let t=l(e,"ref",15,null),o=l(e,"sideOffset",3,4),a=l(e,"align",3,"center"),s=v(e,["$$slots","$$events","$$legacy","ref","class","sideOffset","align","portalProps"]);A(r,i(()=>e.portalProps,{children:(n,f)=>{var d=p(),m=g(d);{let y=b(()=>h("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--bits-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",e.class));c(m,()=>j,(O,z)=>{z(O,i({"data-slot":"popover-content",get sideOffset(){return o()},get align(){return a()},get class(){return _(y)}},()=>s,{get ref(){return t()},set ref(w){t(w)}}))})}u(n,d)},$$slots:{default:!0}})),$()}function E(r,e){P(e,!0);let t=l(e,"ref",15,null),o=v(e,["$$slots","$$events","$$legacy","ref","class"]);var a=p(),s=g(a);{let n=b(()=>h("",e.class));c(s,()=>k,(f,d)=>{d(f,i({"data-slot":"popover-trigger",get class(){return _(n)}},()=>o,{get ref(){return t()},set ref(m){t(m)}}))})}u(r,a),$()}function F(r,e){P(e,!0);let t=l(e,"open",15,!1),o=v(e,["$$slots","$$events","$$legacy","open"]);var a=p(),s=g(a);c(s,()=>q,(n,f)=>{f(n,i(()=>o,{get open(){return t()},set open(d){t(d)}}))}),u(r,a),$()}export{E as P,D as a,F as b};
|