signetai 0.98.17 → 0.98.18
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/{BuXJFnpN.js → 9jHCk3Vr.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Ddz-YDdL.js → AXGDeQS3.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CXlArR71.js → B5VLh7mX.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BMhAdjcU.js → B8zmKrnj.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BRDRXnUb.js → B9rletYu.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BOOg0C6I.js → BHFIqUkC.js} +1 -1
- package/dashboard/_app/immutable/chunks/{B16Z6AVJ.js → BPoT6VYS.js} +1 -1
- package/dashboard/_app/immutable/chunks/{C6uwJHTf.js → BR4YP3Up.js} +1 -1
- package/dashboard/_app/immutable/chunks/{B5-t8bCb.js → BVHUVZ9n.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BFljIup3.js → Bam600ra.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DTSWkCJy.js → Bh61ZDtb.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CdRSSR3i.js → BmPbT9hL.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Dzza5xI9.js → BmmuRFfE.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Dvz4W1G6.js → BoeyAUe7.js} +1 -1
- package/dashboard/_app/immutable/chunks/{B9Cg2RE0.js → ByLiSP33.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Bk1bjQMp.js → C1LlE9BG.js} +1 -1
- package/dashboard/_app/immutable/chunks/{C1lJ0fF-.js → C3BUlWCi.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BI94tdCz.js → C3H5cQgF.js} +1 -1
- package/dashboard/_app/immutable/chunks/{SZnf9Cha.js → C4V8h42T.js} +1 -1
- package/dashboard/_app/immutable/chunks/{C40UXuZh.js → CHbH9KqO.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DGvlGUjN.js → CWZoQ0I-.js} +1 -1
- package/dashboard/_app/immutable/chunks/{D1RSSq4V.js → CXOdu166.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CbIfAiKQ.js → C_tlvSMG.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CB69KjHd.js → CaYPVNVU.js} +3 -3
- package/dashboard/_app/immutable/chunks/{mtdAJJYY.js → CbByb_Pg.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DPnSqfah.js → CdffL3G_.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Dt1M5dLH.js → Chfn0CwD.js} +2 -2
- package/dashboard/_app/immutable/chunks/{5iJZpU91.js → Cqa76had.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BAhNJm1J.js → D8BKruXg.js} +1 -1
- package/dashboard/_app/immutable/chunks/{EvyjMp7g.js → DNoRGzrl.js} +1 -1
- package/dashboard/_app/immutable/chunks/{h1I8KqFP.js → DT3DYX8N.js} +1 -1
- package/dashboard/_app/immutable/chunks/{dqK73kGq.js → DXBCWJ65.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DHEkOgKI.js → DZNEQJqL.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BuvHhc6z.js → DlthvWxH.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DJrj-QKk.js → DrFmw8-I.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BgD55sPY.js → DzmAPVu9.js} +1 -1
- package/dashboard/_app/immutable/chunks/{D-210n0g.js → O6W675k1.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BxliiKLc.js → S5Xt0pja.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Bm-WGiZ_.js → YFQfp92z.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DB_o7JMQ.js → ZcL_cNAz.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BvJt1pYa.js → bbVjg7yF.js} +1 -1
- package/dashboard/_app/immutable/chunks/{zcgRZK1O.js → cPPL26t_.js} +1 -1
- package/dashboard/_app/immutable/chunks/{B3ma08pp.js → dCbxa2-e.js} +1 -1
- package/dashboard/_app/immutable/chunks/{NAruik9h.js → fyByP9My.js} +2 -2
- package/dashboard/_app/immutable/chunks/{BKX4cUn2.js → i0rtw8xU.js} +1 -1
- package/dashboard/_app/immutable/chunks/{C49Cy2Zb.js → qHyeCld_.js} +1 -1
- package/dashboard/_app/immutable/chunks/v249Zu7U.js +1 -0
- package/dashboard/_app/immutable/chunks/{BhWTDscU.js → vKH6weN_.js} +1 -1
- package/dashboard/_app/immutable/entry/{app.BadH9CAW.js → app.Bd8fun6V.js} +2 -2
- package/dashboard/_app/immutable/entry/start.D_tl8ntE.js +1 -0
- package/dashboard/_app/immutable/nodes/{1.B8fwr14d.js → 1.Cyi6si0J.js} +1 -1
- package/dashboard/_app/immutable/nodes/2.CNb6PEY6.js +1 -0
- package/dashboard/_app/version.json +1 -1
- package/dashboard/index.html +6 -6
- package/dist/cli.js +63 -0
- package/dist/daemon.js +58 -4
- package/package.json +1 -1
- package/dashboard/_app/immutable/chunks/BLAJ_X3f.js +0 -1
- package/dashboard/_app/immutable/entry/start.CoTRQm3M.js +0 -1
- package/dashboard/_app/immutable/nodes/2.BSXVTHMH.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as _,g as o,c as w,f as k,k as I,b as s,d as E,E as c,F as f,J as F,I as v,m as g,r as J}from"./o6XZc-z-.js";import{c as b}from"./
|
|
1
|
+
import{p as _,g as o,c as w,f as k,k as I,b as s,d as E,E as c,F as f,J as F,I as v,m as g,r as J}from"./o6XZc-z-.js";import{c as b}from"./CaYPVNVU.js";var P=g("<input/>"),S=g("<input/>");function z(p,i){_(i,!0);let a=o(i,"ref",15,null),d=o(i,"value",15),m=o(i,"files",15),n=o(i,"data-slot",3,"input"),l=J(i,["$$slots","$$events","$$legacy","ref","value","type","files","class","data-slot"]);var u=w(),x=k(u);{var y=t=>{var e=P();c(e,r=>({"data-slot":n(),class:r,type:"file",...l}),[()=>b("selection:bg-primary dark:bg-input/30 selection:text-primary-foreground border-input ring-offset-background placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 pt-1.5 text-sm font-medium shadow-xs transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",i.class)],void 0,void 0,void 0,!0),f(e,r=>a(r),()=>a()),F(e,m),v(e,d),s(t,e)},h=t=>{var e=S();c(e,r=>({"data-slot":n(),class:r,type:i.type,...l}),[()=>b("border-input bg-background selection:bg-primary dark:bg-input/30 selection:text-primary-foreground ring-offset-background placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-md border px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",i.class)],void 0,void 0,void 0,!0),f(e,r=>a(r),()=>a()),v(e,d),s(t,e)};I(x,t=>{i.type==="file"?t(y):t(h,-1)})}s(p,u),E()}export{z as I};
|
|
@@ -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"./CaYPVNVU.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 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"./CaYPVNVU.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,4 +1,4 @@
|
|
|
1
|
-
import{p as Wt,g as Ct,o as B,e as aa,Q as Jt,v as i,c as yt,f as I,h as y,j as l,l as r,t,k as C,y as m,z as d,b as a,i as e,w as z,x as D,B as zt,O as ct,d as Yt,u,D as Y,A as Lt,m as v,P as ia,aL as Wa,aM as Ya,K as Xt,q as Pa,ag as wa,aa as $a,aN as pr,s as ja,r as Ba,aO as _r,aP as yr,as as Qa,ac as ma,ad as Fa,N as _a,at as Ma,a3 as hr,$ as lr,aQ as br,I as xr,ak as ka}from"./o6XZc-z-.js";import{i as wr,m as T,e as La,a as Aa,r as Ta,h as kr,j as Ca,g as Na,d as $r,b as Ea,k as Sr,c as Pr,s as c,l as sr,n as ir,o as nr,p as Cr,q as Da,f as da,t as pa,u as Ir,v as Za,w as Rr,x as Mr,y as Ia,z as Lr,A as Ar,B as Tr}from"./
|
|
1
|
+
import{p as Wt,g as Ct,o as B,e as aa,Q as Jt,v as i,c as yt,f as I,h as y,j as l,l as r,t,k as C,y as m,z as d,b as a,i as e,w as z,x as D,B as zt,O as ct,d as Yt,u,D as Y,A as Lt,m as v,P as ia,aL as Wa,aM as Ya,K as Xt,q as Pa,ag as wa,aa as $a,aN as pr,s as ja,r as Ba,aO as _r,aP as yr,as as Qa,ac as ma,ad as Fa,N as _a,at as Ma,a3 as hr,$ as lr,aQ as br,I as xr,ak as ka}from"./o6XZc-z-.js";import{i as wr,m as T,e as La,a as Aa,r as Ta,h as kr,j as Ca,g as Na,d as $r,b as Ea,k as Sr,c as Pr,s as c,l as sr,n as ir,o as nr,p as Cr,q as Da,f as da,t as pa,u as Ir,v as Za,w as Rr,x as Mr,y as Ia,z as Lr,A as Ar,B as Tr}from"./BR4YP3Up.js";import{a_ as Ua,$ as qa,B as pt,a3 as Oa,t as Ut,a$ as or,b0 as Nr,af as Er,b1 as Dr,aS as zr,c as Va,b2 as jr,b3 as Br,b4 as Fr,n as Ur,ai as Ra}from"./CaYPVNVU.js";import{b as ya,C as ha,a as ba}from"./BVExryab.js";import{I as Gt}from"./9jHCk3Vr.js";import{c as ra,S as la,a as sa,b as rt}from"./bbVjg7yF.js";import{T as Ka}from"./BPoT6VYS.js";import{C as xa}from"./AXGDeQS3.js";import{L as na}from"./DlthvWxH.js";import{B as ga}from"./B5VLh7mX.js";import{g as qr}from"./Cik1Y8bQ.js";var Or=v('<span class="detail-badge detail-badge-official svelte-4mjdk4">official</span>'),Vr=v('<span class="detail-rank svelte-4mjdk4"> </span>'),Kr=v('<div class="detail-badges svelte-4mjdk4"><span class="detail-badge svelte-4mjdk4"> </span> <span class="detail-badge svelte-4mjdk4"> </span> <!> <!></div>'),Hr=v('<div class="detail-action svelte-4mjdk4"><!></div>'),Gr=v('<a class="detail-link svelte-4mjdk4" target="_blank" rel="noopener">View source</a>'),Wr=v("<span>Signet Reviews</span> <!>",1),Yr=v("<!> <!> <!> <!> <!>",1),Qr=v("<!> <!>",1),Zr=v('<p class="review-muted svelte-4mjdk4">Loading reviews...</p>'),Xr=v('<p class="review-muted svelte-4mjdk4">No reviews yet for this app.</p>'),Jr=v('<article class="review-item svelte-4mjdk4"><div class="review-title svelte-4mjdk4"> </div> <div class="review-meta svelte-4mjdk4"> </div> <p class="review-body svelte-4mjdk4"> </p></article>'),el=v('<div class="review-list svelte-4mjdk4"></div>'),tl=v('<div class="reviews-content svelte-4mjdk4"><div class="review-form svelte-4mjdk4"><!> <div class="review-row svelte-4mjdk4"><!> <!></div> <!> <div class="review-actions svelte-4mjdk4"><span class="review-gate svelte-4mjdk4">Install or use this app before leaving a review.</span> <!></div></div> <div class="reviews-filters svelte-4mjdk4"><button>Top comments</button> <button>Good</button> <button>Bad</button> <button>All</button></div> <!></div>'),al=v("<!> <!>",1),rl=v('<p class="detail-description svelte-4mjdk4"> </p> <!> <!>',1),ll=v('<p class="review-muted svelte-4mjdk4">Select a server to view details.</p>'),sl=v('<div class="detail-header svelte-4mjdk4"><div class="detail-title-wrap svelte-4mjdk4"><h2 class="detail-title svelte-4mjdk4"> </h2> <!></div> <!></div> <div class="detail-body svelte-4mjdk4"><!></div>',1);function il(f,s){Wt(s,!0);const p="signet:marketplace:reviews:display-name";let j=Ct(s,"canInstall",3,!0),F=Ct(s,"installBusy",3,!1),se=Ct(s,"removeBusy",3,!1),L=B("top"),V=B(!1),H=B(aa([])),ee=B(!0),Ne=B(aa(fe())),ke=B(5),me=B(""),Se=B(""),G=B(!1);const N=u(()=>`${e(ke)}/5`),ie=u(()=>{const U=[...e(H)];return e(L)==="top"?U.sort((te,Pe)=>Pe.rating===te.rating?Pe.updatedAt.localeCompare(te.updatedAt):Pe.rating-te.rating):e(L)==="good"?U.filter(te=>te.rating>=4).sort((te,Pe)=>Pe.updatedAt.localeCompare(te.updatedAt)):e(L)==="bad"?U.filter(te=>te.rating<=2).sort((te,Pe)=>Pe.updatedAt.localeCompare(te.updatedAt)):U.sort((te,Pe)=>Pe.updatedAt.localeCompare(te.updatedAt))});Jt(()=>{if(!s.open||!s.item?.targetId){i(H,[],!0);return}i(L,"top"),Ue(s.item.targetId)});function fe(){try{return localStorage.getItem(p)??""}catch{return""}}function Q(U){try{localStorage.setItem(p,U)}catch{}}function Fe(U){return U==="1"?1:U==="2"?2:U==="3"?3:U==="4"?4:5}async function Ue(U){i(V,!0);try{const te=await Ua({targetType:"mcp",targetId:U,limit:100});i(H,te.reviews,!0)}finally{i(V,!1)}}async function Je(){if(!s.item?.targetId)return;if(!s.canReview){Ut("Install or use this app before leaving a review.","error");return}const U=e(Ne).trim(),te=e(me).trim(),Pe=e(Se).trim();if(!U||!te||!Pe){Ut("Display name, title, and review are required","error");return}i(G,!0);try{const Ce=await or({targetType:"mcp",targetId:s.item.targetId,displayName:U,rating:e(ke),title:te,body:Pe});if(!Ce.success){Ut(Ce.error??"Failed to submit review","error");return}Q(U),i(me,""),i(Se,""),Ut("Review posted","success"),await Ue(s.item.targetId)}finally{i(G,!1)}}var pe=yt(),Ee=I(pe);y(Ee,()=>Oa,(U,te)=>{te(U,{get open(){return s.open},onOpenChange:Pe=>{Pe||s.onclose()},children:(Pe,Ce)=>{var _e=yt(),et=I(_e);y(et,()=>qa,(ht,wt)=>{wt(ht,{side:"right",showClose:!1,class:`!w-[520px] !max-w-[90vw] !bg-[var(--sig-surface)]
|
|
2
2
|
!border-l !border-l-[var(--sig-border)] !p-0 flex flex-col`,children:(g,R)=>{var qe=sl(),ot=I(qe),St=l(ot),it=l(St),Oe=l(it,!0);r(it);var ut=t(it,2);{var At=E=>{var ye=Kr(),ce=l(ye),Qe=l(ce,!0);r(ce);var De=t(ce,2),Re=l(De,!0);r(De);var Ie=t(De,2);{var ue=S=>{var ne=Or();a(S,ne)};C(Ie,S=>{s.item.official&&S(ue)})}var tt=t(Ie,2);{var _=S=>{var ne=Vr(),o=l(ne);r(ne),m(()=>d(o,`#${s.item.popularityRank??""}`)),a(S,ne)};C(tt,S=>{s.item.popularityRank!==null&&S(_)})}r(ye),m(()=>{d(Qe,s.item.sourceLabel),d(Re,s.item.category)}),a(E,ye)};C(ut,E=>{s.item&&E(At)})}r(St);var Tt=t(St,2);{var Mt=E=>{var ye=Hr(),ce=l(ye);{var Qe=Ie=>{pt(Ie,{variant:"outline",size:"sm",class:"rounded-lg font-[family-name:var(--font-mono)] text-[10px] uppercase tracking-[0.08em] border-[var(--sig-danger)] text-[var(--sig-danger)] hover:bg-[var(--sig-danger)] hover:text-[var(--sig-text-bright)]",onclick:()=>s.item.serverId&&s.onuninstall?.(s.item.serverId),get disabled(){return se()},children:(ue,tt)=>{z();var _=D();m(()=>d(_,se()?"...":"Remove")),a(ue,_)},$$slots:{default:!0}})},De=Ie=>{pt(Ie,{variant:"outline",size:"sm",class:"rounded-lg font-[family-name:var(--font-mono)] text-[10px] uppercase tracking-[0.08em] border-[var(--sig-text-bright)] text-[var(--sig-text-bright)] hover:bg-[var(--sig-text-bright)] hover:text-[var(--sig-bg)]",onclick:()=>s.item.catalogEntry&&s.oninstall?.(s.item.catalogEntry),get disabled(){return F()},children:(ue,tt)=>{z();var _=D();m(()=>d(_,F()?"...":"Install")),a(ue,_)},$$slots:{default:!0}})},Re=Ie=>{pt(Ie,{variant:"outline",size:"sm",class:"rounded-lg font-[family-name:var(--font-mono)] text-[10px] uppercase tracking-[0.08em] border-[var(--sig-border-strong)] text-[var(--sig-text-muted)]",disabled:!0,title:"MCP installs are temporarily disabled",children:(ue,tt)=>{z();var _=D("Install disabled");a(ue,_)},$$slots:{default:!0}})};C(ce,Ie=>{s.item.serverId?Ie(Qe):s.item.catalogEntry&&j()?Ie(De,1):s.item.catalogEntry&&Ie(Re,2)})}r(ye),a(E,ye)};C(Tt,E=>{s.item&&E(Mt)})}r(ot);var $e=t(ot,2),Z=l($e);{var h=E=>{var ye=rl(),ce=I(ye),Qe=l(ce,!0);r(ce);var De=t(ce,2);{var Re=ue=>{var tt=Gr();m(()=>Y(tt,"href",s.item.sourceUrl)),a(ue,tt)};C(De,ue=>{s.item.sourceUrl&&ue(Re)})}var Ie=t(De,2);y(Ie,()=>ya,(ue,tt)=>{tt(ue,{class:"reviews-section",get open(){return e(ee)},set open(_){i(ee,_,!0)},children:(_,S)=>{var ne=al(),o=I(ne);y(o,()=>ha,(oe,He)=>{He(oe,{class:"reviews-trigger",children:(ge,X)=>{var M=Wr(),ve=t(I(M),2);{let ze=u(()=>`size-3 text-[var(--sig-text-muted)] transition-transform ${e(ee)?"rotate-180":""}`);xa(ve,{get class(){return e(ze)}})}a(ge,M)},$$slots:{default:!0}})});var $=t(o,2);y($,()=>ba,(oe,He)=>{He(oe,{children:(ge,X)=>{var M=tl(),ve=l(M),ze=l(ve);Gt(ze,{class:"review-input",placeholder:"Display name",get value(){return e(Ne)},oninput:w=>{i(Ne,w.currentTarget.value,!0)}});var gt=t(ze,2),Ve=l(gt);{let w=u(()=>String(e(ke)));y(Ve,()=>ra,(W,je)=>{je(W,{type:"single",get value(){return e(w)},onValueChange:Le=>{i(ke,Fe(Le??"5"),!0)},children:(Le,Ze)=>{var he=Qr(),J=I(he);y(J,()=>la,(vt,lt)=>{lt(vt,{class:"review-rating",children:(at,nt)=>{z();var P=D();m(()=>d(P,e(N))),a(at,P)},$$slots:{default:!0}})});var de=t(J,2);y(de,()=>sa,(vt,lt)=>{lt(vt,{class:"review-rating-content",children:(at,nt)=>{var P=Yr(),We=I(P);y(We,()=>rt,(_t,K)=>{K(_t,{value:"5",label:"5/5",class:"review-rating-item"})});var Ye=t(We,2);y(Ye,()=>rt,(_t,K)=>{K(_t,{value:"4",label:"4/5",class:"review-rating-item"})});var Dt=t(Ye,2);y(Dt,()=>rt,(_t,K)=>{K(_t,{value:"3",label:"3/5",class:"review-rating-item"})});var qt=t(Dt,2);y(qt,()=>rt,(_t,K)=>{K(_t,{value:"2",label:"2/5",class:"review-rating-item"})});var It=t(qt,2);y(It,()=>rt,(_t,K)=>{K(_t,{value:"1",label:"1/5",class:"review-rating-item"})}),a(at,P)},$$slots:{default:!0}})}),a(Le,he)},$$slots:{default:!0}})})}var kt=t(Ve,2);Gt(kt,{class:"review-input",placeholder:"Review title",get value(){return e(me)},oninput:w=>{i(me,w.currentTarget.value,!0)}}),r(gt);var bt=t(gt,2);Ka(bt,{class:"review-textarea",rows:3,placeholder:"What worked? What should improve?",get value(){return e(Se)},oninput:w=>{i(Se,w.currentTarget.value,!0)}});var be=t(bt,2),n=t(l(be),2);{let w=u(()=>e(G)||!s.canReview);pt(n,{variant:"outline",size:"sm",class:"review-submit",onclick:()=>{Je()},get disabled(){return e(w)},children:(W,je)=>{z();var Le=D();m(()=>d(Le,e(G)?"Posting...":"Post review")),a(W,Le)},$$slots:{default:!0}})}r(be),r(ve);var q=t(ve,2),ae=l(q);let x;var b=t(ae,2);let k;var O=t(b,2);let re;var Ge=t(O,2);let st;r(q);var ft=t(q,2);{var xe=w=>{var W=Zr();a(w,W)},Me=w=>{var W=Xr();a(w,W)},we=w=>{var W=el();Lt(W,21,()=>e(ie),je=>je.id,(je,Le)=>{var Ze=Jr(),he=l(Ze),J=l(he,!0);r(he);var de=t(he,2),vt=l(de);r(de);var lt=t(de,2),at=l(lt,!0);r(lt),r(Ze),m(()=>{d(J,e(Le).title),d(vt,`${e(Le).displayName??""} · ${e(Le).rating??""}/5`),d(at,e(Le).body)}),a(je,Ze)}),r(W),a(w,W)};C(ft,w=>{e(V)?w(xe):e(ie).length===0?w(Me,1):w(we,-1)})}r(M),m(()=>{x=zt(ae,1,"review-filter svelte-4mjdk4",null,x,{active:e(L)==="top"}),k=zt(b,1,"review-filter svelte-4mjdk4",null,k,{active:e(L)==="good"}),re=zt(O,1,"review-filter svelte-4mjdk4",null,re,{active:e(L)==="bad"}),st=zt(Ge,1,"review-filter svelte-4mjdk4",null,st,{active:e(L)==="all"})}),ct("click",ae,()=>i(L,"top")),ct("click",b,()=>i(L,"good")),ct("click",O,()=>i(L,"bad")),ct("click",Ge,()=>i(L,"all")),a(ge,M)},$$slots:{default:!0}})}),a(_,ne)},$$slots:{default:!0}})}),m(()=>d(Qe,s.item.description||"No description available.")),a(E,ye)},A=E=>{var ye=ll();a(E,ye)};C(Z,E=>{s.item?E(h):E(A,-1)})}r($e),m(()=>d(Oe,s.item?.name??"Tool Server")),a(g,qe)},$$slots:{default:!0}})}),a(Pe,_e)},$$slots:{default:!0}})}),a(f,pe),Yt()}ia(["click"]);var nl=v('<p class="sheet-subtitle svelte-1n2gzyy"> </p>'),ol=v('<p class="muted svelte-1n2gzyy">Select a server to configure.</p>'),vl=v('<p class="muted svelte-1n2gzyy">Loading recommended configuration...</p>'),cl=v('<a class="source-link svelte-1n2gzyy" target="_blank" rel="noopener">View source README</a>'),dl=v('<div class="inline-alert svelte-1n2gzyy"> </div>'),ul=v("<!> <!>",1),fl=v("<!> <!>",1),gl=v("<option> </option>"),ml=v('<div class="row-item svelte-1n2gzyy"><!> <!> <select class="field-select row-secret"><option>Plain value</option><!></select> <!></div>'),pl=v('<div class="inline-hint svelte-1n2gzyy">No secrets found. Add secrets in the Secrets tab to map sensitive values.</div>'),_l=v('<div class="field-group svelte-1n2gzyy"><!> <!></div> <div class="field-group svelte-1n2gzyy"><!> <!></div> <div class="field-group svelte-1n2gzyy"><!> <!></div> <div class="field-group svelte-1n2gzyy"><div class="row-head svelte-1n2gzyy"><!> <!></div> <div class="row-list svelte-1n2gzyy"></div> <!></div>',1),yl=v("<option> </option>"),hl=v('<div class="row-item svelte-1n2gzyy"><!> <!> <select class="field-select row-secret"><option>Plain value</option><!></select> <!></div>'),bl=v('<div class="field-group svelte-1n2gzyy"><!> <!></div> <div class="field-group svelte-1n2gzyy"><div class="row-head svelte-1n2gzyy"><!> <!></div> <div class="row-list svelte-1n2gzyy"></div></div>',1),xl=v('<div class="inline-alert svelte-1n2gzyy"> </div>'),wl=v('<div class="test-tools svelte-1n2gzyy"> </div>'),kl=v('<p class="server-description svelte-1n2gzyy"> </p> <!> <!> <div class="config-card svelte-1n2gzyy"><div class="field-group svelte-1n2gzyy"><!> <!></div> <div class="field-row two-col svelte-1n2gzyy"><div class="field-group svelte-1n2gzyy"><!> <!></div> <div class="field-group svelte-1n2gzyy"><!> <!></div></div> <!></div> <!> <div class="test-panel svelte-1n2gzyy"><div class="test-head svelte-1n2gzyy">Connection test</div> <p class="test-message svelte-1n2gzyy"> </p> <!></div>',1),$l=v('<div class="sheet-header svelte-1n2gzyy"><div><h2 class="sheet-title svelte-1n2gzyy">Install Tool Server</h2> <!></div></div> <div class="sheet-body svelte-1n2gzyy"><!></div> <div class="sheet-footer svelte-1n2gzyy"><div class="footer-hint svelte-1n2gzyy"><!></div> <div class="footer-actions svelte-1n2gzyy"><!> <!></div></div>',1);function Sl(f,s){Wt(s,!0);const p="secret://";let j=B(!1),F=B(null),se=B(""),L=B(""),V=B(""),H=B(!1),ee=B(""),Ne=B("stdio"),ke=B("20000"),me=B(""),Se=B(""),G=B(""),N=B(aa([])),ie=B(""),fe=B(aa([])),Q=B(aa([])),Fe=B(!1),Ue=B("idle"),Je=B(""),pe=B(aa([])),Ee=B(!1),U=B(null);const te=u(()=>e(Ne)==="http"?"http":"stdio"),Pe=u(()=>s.entry?s.entry.source==="modelcontextprotocol/servers"?"MCP GitHub":"MCP Registry":"");Jt(()=>{!s.open||!s.entry||e(se)!==s.entry.id&&(i(se,s.entry.id,!0),g(s.entry))}),Jt(()=>{s.open||(i(se,""),i(j,!1),i(F,null),i(Ue,"idle"),i(Je,""),i(pe,[],!0),i(U,null))});function Ce(h){return h.startsWith(p)?h.slice(p.length).trim():""}function _e(h,A){const E=Ce(A);return E?{key:h,value:"",secretName:E}:{key:h,value:A,secretName:""}}function et(h){return h.secretName.trim().length>0?`${p}${h.secretName.trim()}`:h.value}function ht(h){const A=Object.entries(h).map(([E,ye])=>_e(E,ye));return A.length>0?A:[{key:"",value:"",secretName:""}]}function wt(h){if(i(Ne,h.transport,!0),i(ke,String(h.timeoutMs),!0),h.transport==="stdio"){i(me,h.command,!0),i(Se,h.args.join(`
|
|
3
3
|
`),!0),i(G,h.cwd??"",!0),i(N,ht(h.env),!0),i(ie,""),i(fe,[{key:"",value:"",secretName:""}],!0);return}i(ie,h.url,!0),i(fe,ht(h.headers),!0),i(me,""),i(Se,""),i(G,""),i(N,[{key:"",value:"",secretName:""}],!0)}async function g(h){i(j,!0),i(F,null),i(U,null),i(Ue,"idle"),i(Je,""),i(pe,[],!0),i(ee,h.name,!0),i(L,h.description,!0),i(V,""),i(H,!1),i(Ne,"stdio"),i(ke,"20000"),i(me,""),i(Se,""),i(G,""),i(N,[{key:"",value:"",secretName:""}],!0),i(ie,""),i(fe,[{key:"",value:"",secretName:""}],!0),i(Fe,!0);const[A,E]=await Promise.all([Nr(h.catalogId,h.source),Er()]);if(i(Q,E,!0),i(Fe,!1),!A){i(F,"Failed to load recommended config for this server."),i(j,!1);return}i(L,A.description||h.description,!0),i(V,A.githubUrl??"",!0),A.defaultConfig?(i(H,!0),wt(A.defaultConfig)):i(F,"No standard config was found. You can still set one manually below."),i(j,!1)}function R(h){const A={};for(const E of h){const ye=E.key.trim();if(ye.length===0)continue;const ce=et(E).trim();ce.length!==0&&(A[ye]=ce)}return A}function qe(){const h=Number(e(ke));if(!Number.isFinite(h)||h<=0)return{config:null,error:"Timeout must be a positive number."};if(e(Ne)==="stdio"){const E=e(me).trim();if(E.length===0)return{config:null,error:"Command is required for stdio transport."};const ye=e(Se).split(`
|
|
4
4
|
`).map(ce=>ce.trim()).filter(ce=>ce.length>0);return{config:{transport:"stdio",command:E,args:ye,env:R(e(N)),cwd:e(G).trim()||void 0,timeoutMs:h}}}const A=e(ie).trim();if(A.length===0)return{config:null,error:"URL is required for HTTP transport."};try{new URL(A)}catch{return{config:null,error:"URL must be a valid absolute URL."}}return{config:{transport:"http",url:A,headers:R(e(fe)),timeoutMs:h}}}function ot(h){return h==="http"?"http":"stdio"}function St(h,A,E){const ye=h[A];ye&&(ye.value=E,E.trim().length>0&&(ye.secretName=""))}function it(){i(N,[...e(N),{key:"",value:"",secretName:""}],!0)}function Oe(h){i(N,e(N).filter((A,E)=>E!==h),!0),e(N).length===0&&i(N,[{key:"",value:"",secretName:""}],!0)}function ut(){i(fe,[...e(fe),{key:"",value:"",secretName:""}],!0)}function At(h){i(fe,e(fe).filter((A,E)=>E!==h),!0),e(fe).length===0&&i(fe,[{key:"",value:"",secretName:""}],!0)}async function Tt(){i(U,null),i(Ue,"running"),i(Je,"Testing MCP server connection..."),i(pe,[],!0);const h=qe();if(!h.config){i(Ue,"error"),i(Je,h.error??"Invalid config.",!0),i(U,h.error??"Invalid config.",!0);return}const A=await Dr({config:h.config});if(A.success){i(Ue,"success"),i(pe,A.tools??[],!0),i(Je,`Connection succeeded${typeof A.toolCount=="number"?` (${A.toolCount} tools)`:""}.`);return}i(Ue,"error"),i(Je,A.error??"Connection test failed.",!0)}async function Mt(){if(!s.entry)return;i(U,null);const h=qe();if(!h.config){i(U,h.error??"Invalid config.",!0);return}i(Ee,!0);const A=await wr(s.entry,{alias:e(ee).trim()||void 0,config:h.config});i(Ee,!1),A&&s.onclose()}var $e=yt(),Z=I($e);y(Z,()=>Oa,(h,A)=>{A(h,{get open(){return s.open},onOpenChange:E=>{E||s.onclose()},children:(E,ye)=>{var ce=yt(),Qe=I(ce);y(Qe,()=>qa,(De,Re)=>{Re(De,{side:"right",class:`!w-[560px] !max-w-[96vw] !bg-[var(--sig-surface)]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as ir,o as S,e as cr,q as dr,v as s,Q as vr,i as t,j as n,t as l,h as T,f as z,w as oe,x as M,y as O,z as u,b as i,A as we,c as $e,K as Ve,u as J,l as o,k as K,B as ge,O as gr,d as ur,U as ht,m as x,P as fr}from"./o6XZc-z-.js";import{f as mr,n as pr,E as xr,B as qe,A as Lt,o as wt}from"./CB69KjHd.js";import{P as _r}from"./DiLyuexf.js";import{T as br}from"./BBTUzYSt.js";import{C as yr}from"./5iJZpU91.js";import{S as hr}from"./CbIfAiKQ.js";import{S as Me,a as Ge,b as le,c as He}from"./BvJt1pYa.js";var Lr=x("<!> <!>",1),wr=x("<!> <!>",1),$r=x("<!> <!>",1),Sr=x("<!> <!>",1),kr=x("<!> <!> <!>",1),Er=x("<!> <!>",1),Pr=x('<span class="sig-eyebrow truncate max-w-[220px]"> </span>'),Tr=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-text-muted)] font-[family-name:var(--font-display)] text-[length:var(--font-size-base)]">Loading logs...</div>'),Or=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-danger)] font-[family-name:var(--font-display)] text-[length:var(--font-size-base)]"> </div>'),Rr=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-text-muted)] font-[family-name:var(--font-display)] text-[length:var(--font-size-base)]">No logs found</div>'),Ar=x('<span class="text-[var(--sig-text-muted)]"> </span>'),Cr=x('<div class="mt-1 text-[11px] text-[var(--sig-text-muted)] whitespace-pre-wrap break-words"> </div>'),Nr=x('<button type="button"><div class="flex flex-wrap items-baseline gap-[var(--space-xs)]"><span class="text-[var(--sig-text-muted)] shrink-0"> </span> <span> </span> <span> </span> <span class="text-[var(--sig-text-bright)] break-all"> </span> <!></div> <!></button>'),Dr=x('<div class="font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)] leading-relaxed"><!></div>'),zr=x('<div class="text-[var(--sig-text-muted)]">Duration</div> <div class="text-[var(--sig-text-bright)]"> </div>',1),Ir=x('<details class="mb-1 border border-[var(--sig-border)] bg-[var(--sig-surface)] rounded-lg"><summary class="cursor-pointer px-2 py-1 text-[10px] text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] select-none"><span class="font-semibold text-[var(--sig-text)]"> </span> <span class="ml-1 opacity-60"> </span> <span class="ml-1 opacity-40"> </span></summary> <pre class="m-0 px-2 py-1 text-[10px] leading-relaxed whitespace-pre-wrap break-words text-[var(--sig-text)]"> </pre></details>'),jr=x('<div class="mb-1"><div class="text-[10px] text-[var(--sig-text-muted)] font-semibold mb-0.5"> </div> <pre class="m-0 p-2 text-[10px] leading-relaxed whitespace-pre-wrap break-words border border-[var(--sig-border)] rounded-lg bg-[var(--sig-surface)] text-[var(--sig-text)]"> </pre></div>'),Br=x('<div class="mb-[var(--space-sm)]"><div class="text-[var(--sig-text-muted)] text-[length:var(--font-size-xs)] uppercase tracking-[0.08em] mb-1">Readable output</div> <!></div>'),Fr=x('<div class="grid grid-cols-[80px_1fr] gap-y-1 gap-x-2 mb-[var(--space-sm)]"><div class="text-[var(--sig-text-muted)]">Time</div> <div class="text-[var(--sig-text-bright)] break-all"> </div> <div class="text-[var(--sig-text-muted)]">Level</div> <div> </div> <div class="text-[var(--sig-text-muted)]">Category</div> <div> </div> <div class="text-[var(--sig-text-muted)]">Message</div> <div class="text-[var(--sig-text-bright)] break-all"> </div> <!></div> <!> <div class="rounded-lg border border-[var(--sig-border)] bg-[var(--sig-surface)] overflow-hidden"><div class="flex items-center justify-between gap-2 px-2 py-1 border-b border-[var(--sig-border)]"><div class="sig-eyebrow tracking-[0.08em]">Log details</div> <!></div> <pre class="m-0 p-2 text-[10px] leading-relaxed whitespace-pre-wrap break-all text-[var(--sig-text-muted)]"> </pre></div>',1),Vr=x('<div class="text-[var(--sig-text-muted)]">Select a log entry to inspect details.</div>'),qr=x('<div class="flex flex-col flex-1 min-h-0 overflow-hidden"><!> <div class="flex flex-col flex-1 min-h-0 p-[var(--space-sm)] lg:p-[var(--space-md)]"><div class="flex-1 min-h-0 grid grid-cols-1 gap-[var(--space-md)] lg:grid-cols-[minmax(0,1.55fr)_minmax(0,1fr)]"><section class="min-h-0 flex flex-col rounded-lg border border-[var(--sig-border-strong)] bg-[var(--sig-surface-raised)] overflow-hidden"><div class="flex flex-wrap items-center gap-[var(--space-sm)] px-[var(--space-md)] py-[var(--space-sm)] border-b border-[var(--sig-border)] shrink-0"><!> <!> <!> <label class="flex items-center gap-1.5 sig-label text-[var(--sig-text)] cursor-pointer"><!> Auto-scroll</label> <div class="ml-auto flex items-center gap-[var(--space-sm)] min-w-0"><!> <span><!></span> <!> <!></div></div> <!></section> <section class="log-details-window min-h-0 overflow-auto rounded-lg border border-[var(--sig-border-strong)] p-[var(--space-md)] font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)] svelte-q4aevr"><!></section></div></div></div>');function Qr($t,St){ir(St,!0);const kt=2e3,Et=3e4,Se="signet-dashboard-log-order",Je="desc",Ke="List order",Ue={debug:0,info:1,warn:2,error:3},ke={desc:"Newest first",asc:"Oldest first"};let I=S(cr([])),Ee=S(!1),me=S(""),ie=S(!1),W=S(!1),U=S(!1),Z=S(""),D=null,X=S(!0),ee=0,j=null,Q=S(""),te=S(""),Y=S(null),B=S(!1),ue=S(!1),Xe=S(!1),ce=S(null),re=S(null),pe=S(!1),de=null,Pe=0;const Qe=24,Pt=["daemon","api","memory","sync","git","watcher","embedding","embedding-tracker","harness","system","hooks","pipeline","skills","secrets","auth","session-tracker","summary-worker","document-worker","maintenance","scheduler","retention","llm"],Tt=["debug","info","warn","error"],ae=J(()=>t(Y)??Je);function Ye(e){return e==="desc"||e==="asc"}function We(e){return e==="debug"||e==="info"||e==="warn"||e==="error"}function xe(e){return typeof e=="object"&&e!==null}function Ot(e){return xe(e)&&e.type==="connected"}function Ze(e){if(!xe(e)||typeof e.timestamp!="string"||typeof e.category!="string"||typeof e.message!="string"||typeof e.level!="string"||!We(e.level))return null;const r={timestamp:e.timestamp,level:e.level,category:e.category,message:e.message};return xe(e.data)&&(r.data=e.data),typeof e.duration=="number"&&Number.isFinite(e.duration)&&(r.duration=e.duration),xe(e.error)&&typeof e.error.name=="string"&&typeof e.error.message=="string"&&(r.error={name:e.error.name,message:e.error.message}),r}function _e(e){const r=Date.parse(e);return Number.isNaN(r)?0:r}function Rt(e,r,a){const c=a==="desc"?_e(r.entry.timestamp)-_e(e.entry.timestamp):_e(e.entry.timestamp)-_e(r.entry.timestamp);return c!==0?c:a==="desc"?r.id-e.id:e.id-r.id}function et(e,r=0){const a=e.map((c,f)=>{const v=r+f;return{id:v,key:`log-${v}`,entry:c}});return{entries:a,nextId:r+a.length}}function Te(e,r){return[...e].sort((a,c)=>Rt(a,c,r))}function Oe(e,r){return e.length===0?null:r==="desc"?e[0]??null:e[e.length-1]??null}function At(e,r,a,c,f=500){const v=et([r],a),p=Te([...e,...v.entries],c);return{entries:c==="desc"?p.slice(0,f):p.slice(-f),nextId:v.nextId}}function Ct(){try{const e=localStorage.getItem(Se);if(e&&Ye(e))return e}catch{return null}return null}function Nt(e){try{if(e===null){localStorage.removeItem(Se);return}localStorage.setItem(Se,e)}catch{return}}function Dt(){return t(Y)===null?Ke:ke[t(Y)]}function Re(e){switch(e){case"error":return"log-level--error";case"warn":return"log-level--warn";case"debug":return"log-level--debug";default:return"log-level--info"}}function tt(e){switch(e.toLowerCase()){case"watcher":return"log-category--watcher";case"daemon":return"log-category--daemon";case"pipeline":return"log-category--pipeline";case"system":return"log-category--system";case"embeding-tracker":case"embedding-tracker":return"log-category--embedding-tracker";case"document-worker":return"log-category--document-worker";case"maintenance":return"log-category--maintenance";case"git":return"log-category--git";case"schedular":case"scheduler":return"log-category--scheduler";case"retention":return"log-category--retention";default:return"log-category--default"}}function rt(){const e=Oe(t(I),t(ae));return!e||!t(re)?!0:t(re)===e.key}function Ae(){s(re,Oe(t(I),t(ae))?.key??null,!0)}function zt(){const e=Oe(t(I),t(ae))?.entry??null;if(!t(re))return e;for(const r of t(I))if(r.key===t(re))return r.entry;return e}const A=J(zt);function at(e="smooth"){t(ce)&&t(ce).scrollTo({top:t(ae)==="desc"?0:t(ce).scrollHeight,behavior:e})}function be(e="auto"){de===null&&ht().then(()=>{de===null&&(de=requestAnimationFrame(()=>{de=null,t(B)&&at(e)}))})}function It(e){return e?t(ae)==="desc"?e.scrollTop<=Qe:e.scrollHeight-e.clientHeight-e.scrollTop<=Qe:!0}function jt(e){const r=e&&Ye(e)?e:null;if(r===t(Y))return;const a=rt();s(Y,r,!0),s(I,Te(t(I),r??Je),!0),a&&Ae(),t(B)&&(s(ue,!1),be("auto")),Nt(r)}async function ye(){s(Ee,!0),s(me,"");try{const e=new URLSearchParams({limit:"200"});t(Q)&&e.set("level",t(Q)),t(te)&&e.set("category",t(te));const a=await(await fetch(`${wt}/api/logs?${e}`)).json(),c=Array.isArray(a.logs)?a.logs.map(v=>Ze(v)).filter(v=>v!==null):[],f=et(c);Pe=f.nextId,s(I,Te(f.entries,t(ae)),!0),Ae(),t(Xe)?t(B)&&be("auto"):(s(Xe,!0),ht().then(()=>at("auto")))}catch{s(me,"Failed to fetch logs")}finally{s(Ee,!1)}}function st(){t(X)&&(j!==null&&(clearTimeout(j),j=null),D&&D.close(),s(U,!0),ee===0&&(s(W,!1),s(Z,"")),D=new EventSource(`${wt}/api/logs/stream`),D.onmessage=e=>{try{const r=JSON.parse(e.data);if(Ot(r)){ee=0,s(W,!1),s(U,!1),s(ie,!0),s(Z,"");return}const a=Ze(r);if(!a)return;t(U)&&(s(U,!1),s(ie,!0));const c=Ue[a.level],f=We(t(Q))?Ue[t(Q)]:void 0;if(t(Q)&&(c??-1)<(f??-1)||t(te)&&a.category!==t(te))return;const v=rt(),p=At(t(I),a,Pe,t(ae));Pe=p.nextId,s(I,p.entries,!0),v&&Ae(),t(B)&&be("auto")}catch{}},D.onerror=()=>{if(!t(X)||(s(ie,!1),s(U,!1),D?.close(),D=null,j!==null))return;const e=Math.min(kt*2**Math.min(ee,10),Et);ee=Math.min(ee+1,10),s(W,!0),s(Z,`Stream lost — reconnecting in ${e/1e3}s`),j=setTimeout(()=>{j=null,st()},e)})}function Bt(){s(X,!1),s(ie,!1),s(U,!1),s(W,!1),s(Z,""),ee=0,j!==null&&(clearTimeout(j),j=null),D&&(D.close(),D=null)}function nt(){s(X,!0),ee=0,s(W,!1),s(Z,""),st()}function Ft(){if(t(X)){Bt();return}nt()}function Vt(e){return e.split("T")[1]?.slice(0,8)||""}function qt(e){try{return new Date(e).toLocaleString()}catch{return e}}function ot(e){return JSON.stringify(e,null,2)}function q(e){return typeof e=="string"&&e.length>0?e:null}function Mt(e){return Array.isArray(e)?e.filter(r=>typeof r=="string"&&r.length>0):[]}function lt(e){const r=e.data;if(!r)return[];const a=[],c=q(r.inject)??q(r.injectPreview);c&&a.push({label:"Inject",content:c});const f=q(r.prompt)??q(r.promptPreview);f&&a.push({label:"Prompt",content:f});const v=q(r.summaryPrompt)??q(r.summaryPromptPreview);v&&a.push({label:"Summary Prompt",content:v});const p=q(r.summary)??q(r.summaryPreview);p&&a.push({label:"Summary",content:p});const k=q(r.transcript)??q(r.transcriptPreview);k&&a.push({label:"Transcript",content:k});const d=Mt(r.factsPreview);if(d.length>0){const g=d.map(L=>`- ${L}`).join(`
|
|
1
|
+
import{p as ir,o as S,e as cr,q as dr,v as s,Q as vr,i as t,j as n,t as l,h as T,f as z,w as oe,x as M,y as O,z as u,b as i,A as we,c as $e,K as Ve,u as J,l as o,k as K,B as ge,O as gr,d as ur,U as ht,m as x,P as fr}from"./o6XZc-z-.js";import{f as mr,n as pr,E as xr,B as qe,A as Lt,o as wt}from"./CaYPVNVU.js";import{P as _r}from"./DiLyuexf.js";import{T as br}from"./BBTUzYSt.js";import{C as yr}from"./Cqa76had.js";import{S as hr}from"./C_tlvSMG.js";import{S as Me,a as Ge,b as le,c as He}from"./bbVjg7yF.js";var Lr=x("<!> <!>",1),wr=x("<!> <!>",1),$r=x("<!> <!>",1),Sr=x("<!> <!>",1),kr=x("<!> <!> <!>",1),Er=x("<!> <!>",1),Pr=x('<span class="sig-eyebrow truncate max-w-[220px]"> </span>'),Tr=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-text-muted)] font-[family-name:var(--font-display)] text-[length:var(--font-size-base)]">Loading logs...</div>'),Or=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-danger)] font-[family-name:var(--font-display)] text-[length:var(--font-size-base)]"> </div>'),Rr=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-text-muted)] font-[family-name:var(--font-display)] text-[length:var(--font-size-base)]">No logs found</div>'),Ar=x('<span class="text-[var(--sig-text-muted)]"> </span>'),Cr=x('<div class="mt-1 text-[11px] text-[var(--sig-text-muted)] whitespace-pre-wrap break-words"> </div>'),Nr=x('<button type="button"><div class="flex flex-wrap items-baseline gap-[var(--space-xs)]"><span class="text-[var(--sig-text-muted)] shrink-0"> </span> <span> </span> <span> </span> <span class="text-[var(--sig-text-bright)] break-all"> </span> <!></div> <!></button>'),Dr=x('<div class="font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)] leading-relaxed"><!></div>'),zr=x('<div class="text-[var(--sig-text-muted)]">Duration</div> <div class="text-[var(--sig-text-bright)]"> </div>',1),Ir=x('<details class="mb-1 border border-[var(--sig-border)] bg-[var(--sig-surface)] rounded-lg"><summary class="cursor-pointer px-2 py-1 text-[10px] text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] select-none"><span class="font-semibold text-[var(--sig-text)]"> </span> <span class="ml-1 opacity-60"> </span> <span class="ml-1 opacity-40"> </span></summary> <pre class="m-0 px-2 py-1 text-[10px] leading-relaxed whitespace-pre-wrap break-words text-[var(--sig-text)]"> </pre></details>'),jr=x('<div class="mb-1"><div class="text-[10px] text-[var(--sig-text-muted)] font-semibold mb-0.5"> </div> <pre class="m-0 p-2 text-[10px] leading-relaxed whitespace-pre-wrap break-words border border-[var(--sig-border)] rounded-lg bg-[var(--sig-surface)] text-[var(--sig-text)]"> </pre></div>'),Br=x('<div class="mb-[var(--space-sm)]"><div class="text-[var(--sig-text-muted)] text-[length:var(--font-size-xs)] uppercase tracking-[0.08em] mb-1">Readable output</div> <!></div>'),Fr=x('<div class="grid grid-cols-[80px_1fr] gap-y-1 gap-x-2 mb-[var(--space-sm)]"><div class="text-[var(--sig-text-muted)]">Time</div> <div class="text-[var(--sig-text-bright)] break-all"> </div> <div class="text-[var(--sig-text-muted)]">Level</div> <div> </div> <div class="text-[var(--sig-text-muted)]">Category</div> <div> </div> <div class="text-[var(--sig-text-muted)]">Message</div> <div class="text-[var(--sig-text-bright)] break-all"> </div> <!></div> <!> <div class="rounded-lg border border-[var(--sig-border)] bg-[var(--sig-surface)] overflow-hidden"><div class="flex items-center justify-between gap-2 px-2 py-1 border-b border-[var(--sig-border)]"><div class="sig-eyebrow tracking-[0.08em]">Log details</div> <!></div> <pre class="m-0 p-2 text-[10px] leading-relaxed whitespace-pre-wrap break-all text-[var(--sig-text-muted)]"> </pre></div>',1),Vr=x('<div class="text-[var(--sig-text-muted)]">Select a log entry to inspect details.</div>'),qr=x('<div class="flex flex-col flex-1 min-h-0 overflow-hidden"><!> <div class="flex flex-col flex-1 min-h-0 p-[var(--space-sm)] lg:p-[var(--space-md)]"><div class="flex-1 min-h-0 grid grid-cols-1 gap-[var(--space-md)] lg:grid-cols-[minmax(0,1.55fr)_minmax(0,1fr)]"><section class="min-h-0 flex flex-col rounded-lg border border-[var(--sig-border-strong)] bg-[var(--sig-surface-raised)] overflow-hidden"><div class="flex flex-wrap items-center gap-[var(--space-sm)] px-[var(--space-md)] py-[var(--space-sm)] border-b border-[var(--sig-border)] shrink-0"><!> <!> <!> <label class="flex items-center gap-1.5 sig-label text-[var(--sig-text)] cursor-pointer"><!> Auto-scroll</label> <div class="ml-auto flex items-center gap-[var(--space-sm)] min-w-0"><!> <span><!></span> <!> <!></div></div> <!></section> <section class="log-details-window min-h-0 overflow-auto rounded-lg border border-[var(--sig-border-strong)] p-[var(--space-md)] font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)] svelte-q4aevr"><!></section></div></div></div>');function Qr($t,St){ir(St,!0);const kt=2e3,Et=3e4,Se="signet-dashboard-log-order",Je="desc",Ke="List order",Ue={debug:0,info:1,warn:2,error:3},ke={desc:"Newest first",asc:"Oldest first"};let I=S(cr([])),Ee=S(!1),me=S(""),ie=S(!1),W=S(!1),U=S(!1),Z=S(""),D=null,X=S(!0),ee=0,j=null,Q=S(""),te=S(""),Y=S(null),B=S(!1),ue=S(!1),Xe=S(!1),ce=S(null),re=S(null),pe=S(!1),de=null,Pe=0;const Qe=24,Pt=["daemon","api","memory","sync","git","watcher","embedding","embedding-tracker","harness","system","hooks","pipeline","skills","secrets","auth","session-tracker","summary-worker","document-worker","maintenance","scheduler","retention","llm"],Tt=["debug","info","warn","error"],ae=J(()=>t(Y)??Je);function Ye(e){return e==="desc"||e==="asc"}function We(e){return e==="debug"||e==="info"||e==="warn"||e==="error"}function xe(e){return typeof e=="object"&&e!==null}function Ot(e){return xe(e)&&e.type==="connected"}function Ze(e){if(!xe(e)||typeof e.timestamp!="string"||typeof e.category!="string"||typeof e.message!="string"||typeof e.level!="string"||!We(e.level))return null;const r={timestamp:e.timestamp,level:e.level,category:e.category,message:e.message};return xe(e.data)&&(r.data=e.data),typeof e.duration=="number"&&Number.isFinite(e.duration)&&(r.duration=e.duration),xe(e.error)&&typeof e.error.name=="string"&&typeof e.error.message=="string"&&(r.error={name:e.error.name,message:e.error.message}),r}function _e(e){const r=Date.parse(e);return Number.isNaN(r)?0:r}function Rt(e,r,a){const c=a==="desc"?_e(r.entry.timestamp)-_e(e.entry.timestamp):_e(e.entry.timestamp)-_e(r.entry.timestamp);return c!==0?c:a==="desc"?r.id-e.id:e.id-r.id}function et(e,r=0){const a=e.map((c,f)=>{const v=r+f;return{id:v,key:`log-${v}`,entry:c}});return{entries:a,nextId:r+a.length}}function Te(e,r){return[...e].sort((a,c)=>Rt(a,c,r))}function Oe(e,r){return e.length===0?null:r==="desc"?e[0]??null:e[e.length-1]??null}function At(e,r,a,c,f=500){const v=et([r],a),p=Te([...e,...v.entries],c);return{entries:c==="desc"?p.slice(0,f):p.slice(-f),nextId:v.nextId}}function Ct(){try{const e=localStorage.getItem(Se);if(e&&Ye(e))return e}catch{return null}return null}function Nt(e){try{if(e===null){localStorage.removeItem(Se);return}localStorage.setItem(Se,e)}catch{return}}function Dt(){return t(Y)===null?Ke:ke[t(Y)]}function Re(e){switch(e){case"error":return"log-level--error";case"warn":return"log-level--warn";case"debug":return"log-level--debug";default:return"log-level--info"}}function tt(e){switch(e.toLowerCase()){case"watcher":return"log-category--watcher";case"daemon":return"log-category--daemon";case"pipeline":return"log-category--pipeline";case"system":return"log-category--system";case"embeding-tracker":case"embedding-tracker":return"log-category--embedding-tracker";case"document-worker":return"log-category--document-worker";case"maintenance":return"log-category--maintenance";case"git":return"log-category--git";case"schedular":case"scheduler":return"log-category--scheduler";case"retention":return"log-category--retention";default:return"log-category--default"}}function rt(){const e=Oe(t(I),t(ae));return!e||!t(re)?!0:t(re)===e.key}function Ae(){s(re,Oe(t(I),t(ae))?.key??null,!0)}function zt(){const e=Oe(t(I),t(ae))?.entry??null;if(!t(re))return e;for(const r of t(I))if(r.key===t(re))return r.entry;return e}const A=J(zt);function at(e="smooth"){t(ce)&&t(ce).scrollTo({top:t(ae)==="desc"?0:t(ce).scrollHeight,behavior:e})}function be(e="auto"){de===null&&ht().then(()=>{de===null&&(de=requestAnimationFrame(()=>{de=null,t(B)&&at(e)}))})}function It(e){return e?t(ae)==="desc"?e.scrollTop<=Qe:e.scrollHeight-e.clientHeight-e.scrollTop<=Qe:!0}function jt(e){const r=e&&Ye(e)?e:null;if(r===t(Y))return;const a=rt();s(Y,r,!0),s(I,Te(t(I),r??Je),!0),a&&Ae(),t(B)&&(s(ue,!1),be("auto")),Nt(r)}async function ye(){s(Ee,!0),s(me,"");try{const e=new URLSearchParams({limit:"200"});t(Q)&&e.set("level",t(Q)),t(te)&&e.set("category",t(te));const a=await(await fetch(`${wt}/api/logs?${e}`)).json(),c=Array.isArray(a.logs)?a.logs.map(v=>Ze(v)).filter(v=>v!==null):[],f=et(c);Pe=f.nextId,s(I,Te(f.entries,t(ae)),!0),Ae(),t(Xe)?t(B)&&be("auto"):(s(Xe,!0),ht().then(()=>at("auto")))}catch{s(me,"Failed to fetch logs")}finally{s(Ee,!1)}}function st(){t(X)&&(j!==null&&(clearTimeout(j),j=null),D&&D.close(),s(U,!0),ee===0&&(s(W,!1),s(Z,"")),D=new EventSource(`${wt}/api/logs/stream`),D.onmessage=e=>{try{const r=JSON.parse(e.data);if(Ot(r)){ee=0,s(W,!1),s(U,!1),s(ie,!0),s(Z,"");return}const a=Ze(r);if(!a)return;t(U)&&(s(U,!1),s(ie,!0));const c=Ue[a.level],f=We(t(Q))?Ue[t(Q)]:void 0;if(t(Q)&&(c??-1)<(f??-1)||t(te)&&a.category!==t(te))return;const v=rt(),p=At(t(I),a,Pe,t(ae));Pe=p.nextId,s(I,p.entries,!0),v&&Ae(),t(B)&&be("auto")}catch{}},D.onerror=()=>{if(!t(X)||(s(ie,!1),s(U,!1),D?.close(),D=null,j!==null))return;const e=Math.min(kt*2**Math.min(ee,10),Et);ee=Math.min(ee+1,10),s(W,!0),s(Z,`Stream lost — reconnecting in ${e/1e3}s`),j=setTimeout(()=>{j=null,st()},e)})}function Bt(){s(X,!1),s(ie,!1),s(U,!1),s(W,!1),s(Z,""),ee=0,j!==null&&(clearTimeout(j),j=null),D&&(D.close(),D=null)}function nt(){s(X,!0),ee=0,s(W,!1),s(Z,""),st()}function Ft(){if(t(X)){Bt();return}nt()}function Vt(e){return e.split("T")[1]?.slice(0,8)||""}function qt(e){try{return new Date(e).toLocaleString()}catch{return e}}function ot(e){return JSON.stringify(e,null,2)}function q(e){return typeof e=="string"&&e.length>0?e:null}function Mt(e){return Array.isArray(e)?e.filter(r=>typeof r=="string"&&r.length>0):[]}function lt(e){const r=e.data;if(!r)return[];const a=[],c=q(r.inject)??q(r.injectPreview);c&&a.push({label:"Inject",content:c});const f=q(r.prompt)??q(r.promptPreview);f&&a.push({label:"Prompt",content:f});const v=q(r.summaryPrompt)??q(r.summaryPromptPreview);v&&a.push({label:"Summary Prompt",content:v});const p=q(r.summary)??q(r.summaryPreview);p&&a.push({label:"Summary",content:p});const k=q(r.transcript)??q(r.transcriptPreview);k&&a.push({label:"Transcript",content:k});const d=Mt(r.factsPreview);if(d.length>0){const g=d.map(L=>`- ${L}`).join(`
|
|
2
2
|
`);a.push({label:"Facts",content:g})}return a}function it(e){const r=lt(e);if(r.length===0)return"";const a=r.map(c=>c.content).join(`
|
|
3
3
|
|
|
4
4
|
`).trim();return a.length<=220?a:`${a.slice(0,220)}...`}async function Gt(){if(t(A))try{await navigator.clipboard.writeText(ot(t(A))),s(pe,!0),setTimeout(()=>{s(pe,!1)},1200)}catch{s(pe,!1)}}dr(()=>(s(Y,Ct(),!0),ye(),nt(),()=>{s(X,!1),de!==null&&cancelAnimationFrame(de),j!==null&&clearTimeout(j),D&&D.close()})),vr(()=>{const e=t(ce);if(!e)return;const r=()=>{const a=It(e);if(t(B)&&!a){s(B,!1),s(ue,!0);return}!t(B)&&t(ue)&&a&&(s(B,!0),s(ue,!1))};return e.addEventListener("scroll",r,{passive:!0}),r(),()=>{e.removeEventListener("scroll",r)}});var Ce=qr(),ct=n(Ce);_r(ct,{title:"Logs",children:(e,r)=>{br(e,{group:"engine",get tabs(){return xr},get activeTab(){return pr.activeTab},onselect:(a,c)=>mr(c)})}});var dt=l(ct,2),vt=n(dt),Ne=n(vt),De=n(Ne),gt=n(De);T(gt,()=>He,(e,r)=>{r(e,{type:"single",get value(){return t(Q)},onValueChange:a=>{s(Q,a??"",!0),ye()},children:(a,c)=>{var f=wr(),v=z(f);T(v,()=>Me,(k,d)=>{d(k,{class:"font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)] bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] text-[var(--sig-text-bright)] rounded-lg h-auto py-1 px-2 min-w-[100px]",children:(g,L)=>{oe();var _=M();O(()=>u(_,t(Q)||"All levels")),i(g,_)},$$slots:{default:!0}})});var p=l(v,2);T(p,()=>Ge,(k,d)=>{d(k,{class:"bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] rounded-lg",children:(g,L)=>{var _=Lr(),R=z(_);T(R,()=>le,(y,b)=>{b(y,{value:"",label:"All levels"})});var m=l(R,2);we(m,17,()=>Tt,Ve,(y,b)=>{var h=$e(),w=z(h);T(w,()=>le,(se,F)=>{F(se,{get value(){return t(b)},get label(){return t(b)}})}),i(y,h)}),i(g,_)},$$slots:{default:!0}})}),i(a,f)},$$slots:{default:!0}})});var ut=l(gt,2);T(ut,()=>He,(e,r)=>{r(e,{type:"single",get value(){return t(te)},onValueChange:a=>{s(te,a??"",!0),ye()},children:(a,c)=>{var f=Sr(),v=z(f);T(v,()=>Me,(k,d)=>{d(k,{class:"font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)] bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] text-[var(--sig-text-bright)] rounded-lg h-auto py-1 px-2 min-w-[100px]",children:(g,L)=>{oe();var _=M();O(()=>u(_,t(te)||"All categories")),i(g,_)},$$slots:{default:!0}})});var p=l(v,2);T(p,()=>Ge,(k,d)=>{d(k,{class:"bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] rounded-lg",children:(g,L)=>{var _=$r(),R=z(_);T(R,()=>le,(y,b)=>{b(y,{value:"",label:"All categories"})});var m=l(R,2);we(m,17,()=>Pt,Ve,(y,b)=>{var h=$e(),w=z(h);T(w,()=>le,(se,F)=>{F(se,{get value(){return t(b)},get label(){return t(b)}})}),i(y,h)}),i(g,_)},$$slots:{default:!0}})}),i(a,f)},$$slots:{default:!0}})});var ft=l(ut,2);{let e=J(()=>t(Y)??"");T(ft,()=>He,(r,a)=>{a(r,{type:"single",get value(){return t(e)},onValueChange:jt,children:(c,f)=>{var v=Er(),p=z(v);{let d=J(()=>t(Y)===null?"":void 0);T(p,()=>Me,(g,L)=>{L(g,{get"data-placeholder"(){return t(d)},class:"font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)] bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] text-[var(--sig-text-bright)] data-[placeholder]:text-[var(--sig-text-muted)] rounded-lg h-auto py-1 px-2 min-w-[124px]",children:(_,R)=>{oe();var m=M();O(y=>u(m,y),[Dt]),i(_,m)},$$slots:{default:!0}})})}var k=l(p,2);T(k,()=>Ge,(d,g)=>{g(d,{class:"bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] rounded-lg",children:(L,_)=>{var R=kr(),m=z(R);T(m,()=>le,(h,w)=>{w(h,{value:"",label:Ke})});var y=l(m,2);T(y,()=>le,(h,w)=>{w(h,{value:"desc",get label(){return ke.desc}})});var b=l(y,2);T(b,()=>le,(h,w)=>{w(h,{value:"asc",get label(){return ke.asc}})}),i(L,R)},$$slots:{default:!0}})}),i(c,v)},$$slots:{default:!0}})})}var ze=l(ft,2),Ht=n(ze);yr(Ht,{get checked(){return t(B)},onCheckedChange:e=>{s(B,e===!0),s(ue,!1),t(B)&&be("auto")},class:"rounded-lg"}),oe(),o(ze);var mt=l(ze,2),pt=n(mt);{var Jt=e=>{var r=Pr(),a=n(r,!0);o(r),O(()=>u(a,t(Z))),i(e,r)};K(pt,e=>{t(Z)&&e(Jt)})}var he=l(pt,2),Kt=n(he);{var Ut=e=>{var r=M("● Live");i(e,r)},Xt=e=>{var r=M("↺ Reconnecting");i(e,r)},Qt=e=>{var r=M("◌ Connecting");i(e,r)},Yt=e=>{var r=M("● Offline");i(e,r)};K(Kt,e=>{t(ie)?e(Ut):t(W)?e(Xt,1):t(U)?e(Qt,2):e(Yt,-1)})}o(he);var xt=l(he,2);{let e=J(()=>t(X)?"Disconnect stream":"Reconnect stream");qe(xt,{variant:"outline",size:"sm",class:"sig-label px-2 py-1 h-auto hover:border-[var(--sig-border-strong)] hover:text-[var(--sig-text-bright)]",onclick:Ft,get title(){return t(e)},children:(r,a)=>{oe();var c=M();O(()=>u(c,t(X)?"Disconnect":"Reconnect")),i(r,c)},$$slots:{default:!0}})}var Wt=l(xt,2);qe(Wt,{variant:"outline",size:"sm",class:"sig-label px-2 py-1 h-auto hover:border-[var(--sig-border-strong)] hover:text-[var(--sig-text-bright)]",onclick:ye,title:"Reload logs",children:(e,r)=>{oe();var a=M();O(()=>u(a,Lt.Refresh)),i(e,a)},$$slots:{default:!0}}),o(mt),o(De);var Zt=l(De,2);hr(Zt,{class:"min-h-0 flex-1",get viewportRef(){return t(ce)},set viewportRef(e){s(ce,e,!0)},children:(e,r)=>{var a=Dr(),c=n(a);{var f=d=>{var g=Tr();i(d,g)},v=d=>{var g=Or(),L=n(g,!0);o(g),O(()=>u(L,t(me))),i(d,g)},p=d=>{var g=Rr();i(d,g)},k=d=>{var g=$e(),L=z(g);we(L,17,()=>t(I),_=>_.key,(_,R)=>{const m=J(()=>t(R).entry),y=J(()=>t(R).key);var b=Nr(),h=n(b),w=n(h),se=n(w,!0);o(w);var F=l(w,2),Ie=n(F,!0);o(F);var E=l(F,2),V=n(E);o(E);var C=l(E,2),ne=n(C,!0);o(C);var G=l(C,2);{var Le=P=>{var $=Ar(),N=n($);o($),O(()=>u(N,`(${t(m).duration??""}ms)`)),i(P,$)};K(G,P=>{t(m).duration!==void 0&&P(Le)})}o(h);var je=l(h,2);{var Be=P=>{var $=Cr(),N=n($,!0);o($),O(H=>u(N,H),[()=>it(t(m))]),i(P,$)},Fe=J(()=>it(t(m)));K(je,P=>{t(Fe)&&P(Be)})}o(b),O((P,$,N,H,ve)=>{ge(b,1,P,"svelte-q4aevr"),u(se,$),ge(F,1,N,"svelte-q4aevr"),u(Ie,H),ge(E,1,ve,"svelte-q4aevr"),u(V,`[${t(m).category??""}]`),u(ne,t(m).message)},[()=>`log-row ${Re(t(m).level)} w-full text-left px-[var(--space-md)] py-1.5 border-b border-[var(--sig-border)] hover:bg-[var(--sig-surface)] cursor-pointer ${t(re)===t(y)?"bg-[var(--sig-surface)] border-[var(--sig-border-strong)]":""}`,()=>Vt(t(m).timestamp),()=>`font-semibold shrink-0 min-w-[40px] ${Re(t(m).level)}`,()=>t(m).level.toUpperCase(),()=>`log-category ${tt(t(m).category)} shrink-0`]),gr("click",b,()=>{s(re,t(y),!0)}),i(_,b)}),i(d,g)};K(c,d=>{t(Ee)?d(f):t(me)?d(v,1):t(I).length===0?d(p,2):d(k,-1)})}o(a),i(e,a)},$$slots:{default:!0}}),o(Ne);var _t=l(Ne,2),er=n(_t);{var tr=e=>{const r=J(()=>lt(t(A)));var a=Fr(),c=z(a),f=l(n(c),2),v=n(f,!0);o(f);var p=l(f,4),k=n(p,!0);o(p);var d=l(p,4),g=n(d,!0);o(d);var L=l(d,4),_=n(L,!0);o(L);var R=l(L,2);{var m=E=>{var V=zr(),C=l(z(V),2),ne=n(C);o(C),O(()=>u(ne,`${t(A).duration??""}ms`)),i(E,V)};K(R,E=>{t(A).duration!==void 0&&E(m)})}o(c);var y=l(c,2);{var b=E=>{var V=Br(),C=l(n(V),2);we(C,17,()=>t(r),Ve,(ne,G)=>{var Le=$e(),je=z(Le);{var Be=P=>{var $=Ir(),N=n($),H=n(N),ve=n(H,!0);o(H);var fe=l(H,2),ar=n(fe);o(fe);var bt=l(fe,2),sr=n(bt);o(bt),o(N);var yt=l(N,2),nr=n(yt,!0);o(yt),o($),O((or,lr)=>{u(ve,t(G).label),u(ar,`(${or??""} chars)`),u(sr,`${lr??""}...`),u(nr,t(G).content)},[()=>t(G).content.length.toLocaleString(),()=>t(G).content.slice(0,100).replace(/\n/g," ")]),i(P,$)},Fe=P=>{var $=jr(),N=n($),H=n(N,!0);o(N);var ve=l(N,2),fe=n(ve,!0);o(ve),o($),O(()=>{u(H,t(G).label),u(fe,t(G).content)}),i(P,$)};K(je,P=>{t(G).content.length>500?P(Be):P(Fe,-1)})}i(ne,Le)}),o(V),i(E,V)};K(y,E=>{t(r).length>0&&E(b)})}var h=l(y,2),w=n(h),se=l(n(w),2);qe(se,{variant:"outline",size:"sm",class:"sig-eyebrow px-2 py-1 h-auto hover:border-[var(--sig-border-strong)] hover:text-[var(--sig-text-bright)]",onclick:Gt,children:(E,V)=>{oe();var C=M();O(()=>u(C,t(pe)?"Copied":Lt.CopyJson)),i(E,C)},$$slots:{default:!0}}),o(w);var F=l(w,2),Ie=n(F,!0);o(F),o(h),O((E,V,C,ne)=>{u(v,E),ge(p,1,V,"svelte-q4aevr"),u(k,t(A).level),ge(d,1,C,"svelte-q4aevr"),u(g,t(A).category),u(_,t(A).message),u(Ie,ne)},[()=>qt(t(A).timestamp),()=>`uppercase ${Re(t(A).level)}`,()=>`log-category ${tt(t(A).category)}`,()=>ot(t(A))]),i(e,a)},rr=e=>{var r=Vr();i(e,r)};K(er,e=>{t(A)?e(tr):e(rr,-1)})}o(_t),o(vt),o(dt),o(Ce),O(()=>ge(he,1,`sig-label font-medium ${t(ie)?"text-[var(--sig-success)] [animation:pulse_2s_infinite]":t(W)||t(U)?"text-[var(--sig-accent)] [animation:pulse_2s_infinite]":"text-[var(--sig-danger)]"}`,"svelte-q4aevr")),i($t,Ce),ur()}fr(["click"]);export{Qr as default};
|
|
@@ -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"./CaYPVNVU.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 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"./CaYPVNVU.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 +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"./CaYPVNVU.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};
|