signetai 0.98.8 → 0.98.9
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/{jVMgkj9T.js → 30-og8mV.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DeURf8kl.js → 4p78tMRG.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BP8rtJ3G.js → B3yr-GRF.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CJurkM4a.js → B4NdlOPP.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CEVzfObE.js → BD-cOqOz.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Dx726L-S.js → BNgMC9bh.js} +1 -1
- package/dashboard/_app/immutable/chunks/{pkgXnRzN.js → BPU6xJSh.js} +3 -3
- package/dashboard/_app/immutable/chunks/{DlGNrG3u.js → BS6Az2yq.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Ck4Lgr1z.js → BmAxcwlN.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DoC62kYv.js → Bn8w6fh0.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Bnt9vcuf.js → BopaWGdz.js} +1 -1
- package/dashboard/_app/immutable/chunks/{C39nf7jZ.js → BqZVfy0E.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CHc85ZvC.js → BsecRIye.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Db7ak8Gl.js → Bu1Hr4gp.js} +1 -1
- package/dashboard/_app/immutable/chunks/{onn-nZWc.js → Bu4SFjLj.js} +1 -1
- package/dashboard/_app/immutable/chunks/{pFyicxLN.js → C3YPJPoz.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BUSUESoi.js → CDFy_BH_.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CIdIL4b0.js → CDKOYfcW.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DFAV_3B_.js → CEbpGSd1.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CbnVc45v.js → CGZ_1Bdb.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CcJSlN6E.js → CHJqZvl3.js} +2 -2
- package/dashboard/_app/immutable/chunks/{B7KEMFIz.js → CKfb1qTZ.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DkVUTzms.js → CPAf2L2e.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Bp4KEDuj.js → C_T-aGUl.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Bfr5gxEp.js → Ccpfyo4U.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DxMUJRtV.js → Cef_dkm5.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CDk3p5Mv.js → Cme7Vasi.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Zj4js3vm.js → CoZevT_m.js} +2 -2
- package/dashboard/_app/immutable/chunks/{CSpFfXzo.js → CpLbhz2I.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CIdHWyP7.js → CpehaGS4.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DZoYjLWT.js → D6JFmRPV.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DvPIbmoh.js → D9IMDq0B.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CLkWdVXo.js → DGTr1Mjx.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DKpFJVqS.js → DQ8Bewng.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CeTzBz3S.js → D_D-m2P8.js} +1 -1
- package/dashboard/_app/immutable/chunks/{wKa5LZFG.js → D_Y2wYvO.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CKh-IxuE.js → DozAXhMv.js} +1 -1
- package/dashboard/_app/immutable/chunks/{QWvt362d.js → DsWTkxoS.js} +1 -1
- package/dashboard/_app/immutable/chunks/{YoZotDVb.js → F8HGKIRJ.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BnXwFclk.js → Ic6lrInx.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DAqHboa5.js → JzXIhDgT.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DCeXdp0F.js → XNJku-Oo.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Bvv93Z6n.js → XhbVLrCV.js} +1 -1
- package/dashboard/_app/immutable/chunks/{AwLBiVgt.js → Y5StIyyA.js} +1 -1
- package/dashboard/_app/immutable/chunks/{5Mftjbb2.js → _JhUTpwc.js} +1 -1
- package/dashboard/_app/immutable/chunks/{0qaXsCwe.js → eUpM60ZJ.js} +1 -1
- package/dashboard/_app/immutable/chunks/{D8nzdotv.js → jkKYENyL.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BgtV99vb.js → ngfQIo04.js} +1 -1
- package/dashboard/_app/immutable/entry/{app.Bi0tswfR.js → app.D_B4_6Os.js} +2 -2
- package/dashboard/_app/immutable/entry/start.DKjxjbOf.js +1 -0
- package/dashboard/_app/immutable/nodes/{1.82S2YUXh.js → 1.CMDkYKQT.js} +1 -1
- package/dashboard/_app/immutable/nodes/2.BAZG7A_r.js +1 -0
- package/dashboard/_app/version.json +1 -1
- package/dashboard/index.html +6 -6
- package/package.json +4 -2
- package/dashboard/_app/immutable/entry/start.CFGP3h29.js +0 -1
- package/dashboard/_app/immutable/nodes/2.Duq8efcV.js +0 -1
|
@@ -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"./BD-cOqOz.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"./BPU6xJSh.js";import{b as ya,C as ha,a as ba}from"./BVExryab.js";import{I as Gt}from"./D_Y2wYvO.js";import{c as ra,S as la,a as sa,b as rt}from"./Bu1Hr4gp.js";import{T as Ka}from"./BopaWGdz.js";import{C as xa}from"./_JhUTpwc.js";import{L as na}from"./Cef_dkm5.js";import{B as ga}from"./Ic6lrInx.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 +1 @@
|
|
|
1
|
-
import{p as n,s as d,c,f as h,a as i,n as f,b as l,d as m,r as u}from"./o6XZc-z-.js";import{I as $}from"./
|
|
1
|
+
import{p as n,s as d,c,f as h,a as i,n as f,b as l,d as m,r as u}from"./o6XZc-z-.js";import{I as $}from"./BPU6xJSh.js";function g(e,s){n(s,!0);let t=u(s,["$$slots","$$events","$$legacy"]);const r=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"}],["path",{d:"M21 3v5h-5"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"}],["path",{d:"M8 16H3v5"}]];$(e,d({name:"refresh-cw"},()=>t,{get iconNode(){return r},children:(o,v)=>{var a=c(),p=h(a);i(p,()=>s.children??f),l(o,a)},$$slots:{default:!0}})),m()}export{g 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"./BPU6xJSh.js";import{C as I}from"./XNJku-Oo.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 +1 @@
|
|
|
1
|
-
import{p as ie,s as ye,c as ce,f as de,a as Ee,n as Pe,b as v,d as ve,r as xe,o as h,e as ne,q as Ut,N as oe,$ as Vt,j as n,t as i,l as r,w as Fe,k as $,i as e,y as q,z as N,D as et,aa as zt,O as M,v as s,ak as U,u as le,A as tt,B as Kt,K as st,m as b,P as qt,x as at}from"./o6XZc-z-.js";import{I as Se,af as Gt,ag as Bt,ah as jt,n as Xt,ai as G,aj as Wt,t as S,ak as Jt,al as Qt,am as Yt,an as Zt}from"./pkgXnRzN.js";import{C as rt}from"./BP8rtJ3G.js";import{I as be}from"./wKa5LZFG.js";import{P as es}from"./DvPIbmoh.js";import{R as ts}from"./DeURf8kl.js";import{T as ss}from"./DFAV_3B_.js";import{C as as}from"./5Mftjbb2.js";import{C as rs}from"./DKpFJVqS.js";function ns(L,m){ie(m,!0);let d=xe(m,["$$slots","$$events","$$legacy"]);const D=[["path",{d:"M12 3v12"}],["path",{d:"m8 11 4 4 4-4"}],["path",{d:"M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4"}]];Se(L,ye({name:"import"},()=>d,{get iconNode(){return D},children:(w,O)=>{var _=ce(),E=de(_);Ee(E,()=>m.children??Pe),v(w,_)},$$slots:{default:!0}})),ve()}function os(L,m){ie(m,!0);let d=xe(m,["$$slots","$$events","$$legacy"]);const D=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor"}]];Se(L,ye({name:"key-round"},()=>d,{get iconNode(){return D},children:(w,O)=>{var _=ce(),E=de(_);Ee(E,()=>m.children??Pe),v(w,_)},$$slots:{default:!0}})),ve()}function ls(L,m){ie(m,!0);let d=xe(m,["$$slots","$$events","$$legacy"]);const D=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}]];Se(L,ye({name:"link"},()=>d,{get iconNode(){return D},children:(w,O)=>{var _=ce(),E=de(_);Ee(E,()=>m.children??Pe),v(w,_)},$$slots:{default:!0}})),ve()}function is(L,m){ie(m,!0);let d=xe(m,["$$slots","$$events","$$legacy"]);const D=[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16"}]];Se(L,ye({name:"unlink"},()=>d,{get iconNode(){return D},children:(w,O)=>{var _=ce(),E=de(_);Ee(E,()=>m.children??Pe),v(w,_)},$$slots:{default:!0}})),ve()}var cs=b('<div class="add-form svelte-k8hi4h"><div class="add-form-row svelte-k8hi4h"><!> <!> <button class="add-submit svelte-k8hi4h"> </button></div></div>'),ds=b('<div class="panel-empty svelte-k8hi4h">LOADING</div>'),vs=b('<div class="panel-empty svelte-k8hi4h"><span>NO SECRETS STORED</span> <span class="panel-empty-hint svelte-k8hi4h">PRESS N TO ADD ONE</span></div>'),us=b('<span class="secret-delete-text svelte-k8hi4h">...</span>'),ps=b('<div tabindex="0" role="listitem"><!> <span class="secret-name svelte-k8hi4h"> </span> <span class="secret-mask svelte-k8hi4h">········</span> <button class="secret-delete svelte-k8hi4h"><!></button></div>'),fs=b('<div class="op-status op-status--ok svelte-k8hi4h">Connected<!></div>'),hs=b('<div class="op-status op-status--warn svelte-k8hi4h">Token saved but unreachable<!></div>'),ms=b('<div class="op-status svelte-k8hi4h">Connect a 1Password service account to import secrets</div>'),ks=b('<label class="op-vault svelte-k8hi4h"><!> <span class="op-vault-name svelte-k8hi4h"> </span></label>'),_s=b('<div class="op-vaults svelte-k8hi4h"><span class="op-vaults-label svelte-k8hi4h">VAULTS</span> <div class="op-vault-list svelte-k8hi4h"></div></div>'),ws=b('<div class="op-vaults-empty svelte-k8hi4h">NO ACCESSIBLE VAULTS</div>'),gs=b('<div class="onepassword-panel svelte-k8hi4h"><!> <div class="op-row svelte-k8hi4h"><!> <button class="op-btn svelte-k8hi4h" data-focus-index="2"><!> <span> </span></button></div> <div class="op-options svelte-k8hi4h"><div class="op-option svelte-k8hi4h"><span class="op-option-label svelte-k8hi4h">PREFIX</span> <!></div> <label class="op-option op-option--check svelte-k8hi4h" for="op-overwrite"><!> <span class="op-option-label svelte-k8hi4h">OVERWRITE</span></label></div> <!> <div class="op-actions svelte-k8hi4h"><button class="op-btn svelte-k8hi4h" data-focus-index="3"><!> <span> </span></button> <button class="op-btn op-btn--danger svelte-k8hi4h" data-focus-index="4"><!> <span> </span></button></div> <div class="op-tip svelte-k8hi4h">TIP: MAP DIRECT REFS AS <code class="svelte-k8hi4h">op://vault/item/field</code></div></div>'),bs=b('<span class="shortcut svelte-k8hi4h"><kbd class="svelte-k8hi4h">N</kbd> ADD</span>'),ys=b('<span class="shortcut svelte-k8hi4h"><kbd class="svelte-k8hi4h">ESC</kbd> CANCEL</span>'),Es=b('<div class="secrets-page svelte-k8hi4h"><div class="tab-header svelte-k8hi4h"><div class="tab-header-left svelte-k8hi4h"><span class="tab-header-title svelte-k8hi4h">SECRETS</span> <span class="tab-header-count svelte-k8hi4h"> </span></div> <button class="new-secret-btn svelte-k8hi4h"><!> <span>ADD SECRET</span></button></div> <!> <div class="secrets-content svelte-k8hi4h"><div class="panel svelte-k8hi4h"><div class="panel-header svelte-k8hi4h"><span class="panel-pip svelte-k8hi4h" style="background: var(--sig-highlight)"></span> <span class="panel-label svelte-k8hi4h">Stored Secrets</span> <span class="panel-count svelte-k8hi4h"> </span></div> <div class="panel-body svelte-k8hi4h"><!></div></div> <div class="panel svelte-k8hi4h" role="group" aria-label="1Password integration"><div class="panel-header-row svelte-k8hi4h"><button class="panel-header panel-header--toggle svelte-k8hi4h"><!> <span class="panel-label svelte-k8hi4h">1Password</span> <span class="panel-status svelte-k8hi4h"> </span></button> <button class="panel-action svelte-k8hi4h" aria-label="Refresh 1Password status"><!></button></div> <!></div></div> <div class="shortcut-bar svelte-k8hi4h"><!></div></div>');function Os(L,m){ie(m,!0);let d=h(ne([])),D=h(!1),w=h(""),O=h(""),_=h(!1),E=h(null),R=h(!1),ue=h(!1),p=h(ne({configured:!1,connected:!1,vaults:[]})),Y=h(ne([])),B=h("");const j=ne({prefix:"OP",overwrite:!1});let pe=h(!1),fe=h(!1),he=h(!1),C=h(ne([])),X=h(!1),l=h(-1),f=h("list"),o=h(-1);async function me(){s(D,!0),s(d,await Gt(),!0),s(D,!1)}function nt(t){if(e(C).includes(t)){s(C,e(C).filter(a=>a!==t),!0);return}s(C,[...e(C),t],!0)}async function ke(){s(ue,!0);try{if(s(p,await Bt(),!0),e(p).connected){const a=await jt();s(Y,a.length>0?a:e(p).vaults,!0)}else s(Y,[],!0),s(C,[],!0);const t=new Set(e(Y).map(a=>a.id));s(C,e(C).filter(a=>t.has(a)),!0)}finally{s(ue,!1)}}async function ot(){if(!e(w).trim()||!e(O).trim())return;s(_,!0),await Wt(e(w).trim(),e(O))?(S(`Secret ${e(w).trim()} added`,"success"),s(w,""),s(O,""),s(R,!1),await me()):S("Failed to add secret","error"),s(_,!1)}async function lt(t){s(E,t,!0),await Jt(t)?(S(`Secret ${t} deleted`,"success"),await me()):S("Failed to delete secret","error"),s(E,null)}async function it(){if(!e(B).trim()){S("Service account token is required","error");return}s(pe,!0);const t=await Qt(e(B).trim());if(s(pe,!1),!t.success){S(t.error??"Failed to connect 1Password","error");return}s(B,""),await ke(),S("Connected to 1Password","success")}async function ct(){s(fe,!0);const t=await Zt();if(s(fe,!1),!t.success){S(t.error??"Failed to disconnect 1Password","error");return}await ke(),S("Disconnected 1Password","success")}async function dt(){if(!e(p).connected){S("Connect 1Password first","error");return}s(he,!0);const t=await Yt({vaults:e(C).length>0?e(C):void 0,prefix:j.prefix.trim()||"OP",overwrite:j.overwrite});if(s(he,!1),!t.success){S(t.error??"Failed to import from 1Password","error");return}await me();const a=t.importedCount??0,u=t.skippedCount??0,g=t.errorCount??0;S(`Imported ${a} secrets (skipped ${u}, errors ${g})`,"success")}function vt(t){if(Xt.activeTab!=="secrets"||t.defaultPrevented)return;const a=t.target,u=a.tagName==="INPUT"||a.tagName==="TEXTAREA"||a.isContentEditable;if(t.key==="Escape"){if(e(R)){t.preventDefault(),s(R,!1);return}if(e(f)==="1password"){t.preventDefault(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(l,-1),s(o,-1);return}t.preventDefault(),G();return}if(!u){if((t.key==="n"||t.key==="N")&&!e(R)){t.preventDefault(),s(R,!0);return}if(t.key==="ArrowRight"&&e(f)==="list"&&e(l)===-1&&(t.preventDefault(),e(d).length>0?(s(l,0),V(0)):(s(f,"1password"),s(o,0),z(0))),t.key==="ArrowUp"&&e(f)==="list"&&e(l)>=0&&(t.preventDefault(),e(l)>0?(U(l,-1),V(e(l))):(s(l,-1),G())),t.key==="ArrowDown"&&e(f)==="list"){if(t.preventDefault(),e(l)<e(d).length-1)U(l),V(e(l));else if(e(l)===e(d).length-1){const g=document.querySelectorAll(".secret-item");g[e(l)]instanceof HTMLElement&&g[e(l)].blur(),s(f,"1password"),s(l,-1),s(o,0),z(0)}}if(t.key==="ArrowUp"&&e(f)==="1password"&&(t.preventDefault(),e(o)>0?(U(o,-1),z(e(o))):e(o)===0&&e(d).length>0?(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(l,e(d).length-1),s(o,-1),V(e(l))):e(o)===0&&e(d).length===0&&(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(o,-1),G())),t.key==="ArrowDown"&&e(f)==="1password"){t.preventDefault();const g=_e(),y=Math.max(0,g.length-1);e(o)<y&&(U(o),z(e(o)))}t.key==="ArrowLeft"&&e(f)==="list"&&e(l)===-1&&(t.preventDefault(),G())}}function V(t){const a=document.querySelectorAll(".secret-item");a[t]instanceof HTMLElement&&a[t].focus()}function _e(){const t=document.querySelector(".onepassword-panel");if(!t)return[];const a=t.querySelectorAll("[data-focus-index]");return Array.from(a).filter(u=>!u.disabled).sort((u,g)=>{const y=Number.parseInt(u.getAttribute("data-focus-index")??"0",10),P=Number.parseInt(g.getAttribute("data-focus-index")??"0",10);return y-P})}function z(t){const a=_e();if(a.length===0)return;const u=Math.min(t,a.length-1);a[u]?.focus()}function ut(t){if(t.key==="ArrowUp"&&(t.preventDefault(),e(o)>0?(U(o,-1),z(e(o))):e(o)===0&&e(d).length>0?(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(l,e(d).length-1),s(o,-1),V(e(l))):e(o)===0&&e(d).length===0&&(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(o,-1),G())),t.key==="ArrowDown"){t.preventDefault();const a=_e(),u=Math.max(0,a.length-1);e(o)<u&&(U(o),z(e(o)))}if(t.key==="Escape"&&(t.preventDefault(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(l,-1),s(o,-1)),t.key==="Tab"){const a=_e(),u=Math.max(0,a.length-1);t.shiftKey&&e(o)>0?U(o,-1):!t.shiftKey&&e(o)<u&&U(o)}}function Z(t){s(o,t,!0),s(f,"1password")}function pt(t){s(l,t,!0),s(f,"list")}function ft(t,a){t.key==="ArrowDown"?(t.preventDefault(),t.stopPropagation(),a<e(d).length-1?(s(l,a+1),V(e(l))):(t.target.blur(),s(f,"1password"),s(l,-1),s(o,0),z(0))):t.key==="ArrowUp"?(t.preventDefault(),t.stopPropagation(),a>0?(s(l,a-1),V(e(l))):a===0&&(s(l,-1),t.target instanceof HTMLElement&&t.target.blur(),G())):t.key==="ArrowLeft"&&(t.preventDefault(),t.stopPropagation(),s(l,-1),t.target instanceof HTMLElement&&t.target.blur(),G())}const ht=le(()=>e(p).connected?"CONNECTED":e(p).configured?"UNREACHABLE":"NOT CONFIGURED"),mt=le(()=>e(p).connected?"var(--sig-success)":e(p).configured?"var(--sig-warning)":"var(--sig-text-muted)");Ut(()=>{me(),ke()});var De=Es();oe("keydown",Vt,vt);var Ce=n(De),Ae=n(Ce),He=i(n(Ae),2),kt=n(He);r(He),r(Ae);var Te=i(Ae,2),_t=n(Te);es(_t,{class:"size-3"}),Fe(2),r(Te),r(Ce);var Ue=i(Ce,2);{var wt=t=>{var a=cs(),u=n(a),g=n(u);be(g,{type:"text",class:"secrets-add-input",placeholder:"SECRET_NAME",get value(){return e(w)},set value(A){s(w,A,!0)}});var y=i(g,2);be(y,{type:"password",class:"secrets-add-input",placeholder:"value",get value(){return e(O)},set value(A){s(O,A,!0)}});var P=i(y,2),x=n(P,!0);r(P),r(u),r(a),q(A=>{P.disabled=A,N(x,e(_)?"ADDING...":"ADD")},[()=>e(_)||!e(w).trim()||!e(O).trim()]),M("click",P,ot),v(t,a)};$(Ue,t=>{e(R)&&t(wt)})}var Ie=i(Ue,2),Ne=n(Ie),Oe=n(Ne),Ve=i(n(Oe),4),gt=n(Ve,!0);r(Ve),r(Oe);var ze=i(Oe,2),bt=n(ze);{var yt=t=>{var a=ds();v(t,a)},Et=t=>{var a=vs();v(t,a)},Pt=t=>{var a=ce(),u=de(a);tt(u,17,()=>e(d),st,(g,y,P)=>{var x=ps();let A;var H=n(x);os(H,{class:"secrets-secret-icon"});var W=i(H,2),ge=n(W,!0);r(W);var K=i(W,4),te=n(K);{var se=T=>{var Re=us();v(T,Re)},Le=T=>{ss(T,{class:"size-3"})};$(te,T=>{e(E)===e(y)?T(se):T(Le,-1)})}r(K),r(x),q(()=>{A=Kt(x,1,"secret-item svelte-k8hi4h",null,A,{"secret-item--focused":e(f)==="list"&&e(l)===P}),N(ge,e(y)),K.disabled=e(E)===e(y),et(K,"aria-label",`Delete secret ${e(y)}`)}),M("keydown",x,T=>ft(T,P)),oe("focus",x,()=>pt(P)),M("click",K,()=>lt(e(y))),v(g,x)}),v(t,a)};$(bt,t=>{e(D)?t(yt):e(d).length===0?t(Et,1):t(Pt,-1)})}r(ze),r(Ne);var Ke=i(Ne,2),$e=n(Ke),ee=n($e),qe=n(ee);{var xt=t=>{as(t,{class:"secrets-panel-chevron"})},St=t=>{rs(t,{class:"secrets-panel-chevron"})};$(qe,t=>{e(X)?t(xt):t(St,-1)})}var Me=i(qe,4),Dt=n(Me,!0);r(Me),r(ee);var we=i(ee,2),Ct=n(we);{let t=le(()=>`size-3${e(ue)?" op-spin":""}`);ts(Ct,{get class(){return e(t)}})}r(we),r($e);var At=i($e,2);{var Tt=t=>{var a=gs(),u=n(a);{var g=c=>{var k=fs(),Q=i(n(k));{var re=I=>{var F=at();q(()=>N(F,`· ${e(p).vaultCount??""} vaults`)),v(I,F)};$(Q,I=>{typeof e(p).vaultCount=="number"&&I(re)})}r(k),v(c,k)},y=c=>{var k=hs(),Q=i(n(k));{var re=I=>{var F=at();q(()=>N(F,`· ${e(p).error??""}`)),v(I,F)};$(Q,I=>{e(p).error&&I(re)})}r(k),v(c,k)},P=c=>{var k=ms();v(c,k)};$(u,c=>{e(p).connected?c(g):e(p).configured?c(y,1):c(P,-1)})}var x=i(u,2),A=n(x);{let c=le(()=>e(p).connected?"Replace service account token":"Service account token");be(A,{type:"password","data-focus-index":"0",class:"secrets-op-input",get placeholder(){return e(c)},onfocus:()=>Z(0),get value(){return e(B)},set value(k){s(B,k,!0)}})}var H=i(A,2),W=n(H);ls(W,{class:"size-3"});var ge=i(W,2),K=n(ge,!0);r(ge),r(H),r(x);var te=i(x,2),se=n(te),Le=i(n(se),2);be(Le,{type:"text","data-focus-index":"1",class:"secrets-op-input-sm",placeholder:"OP",onfocus:()=>Z(1),get value(){return j.prefix},set value(c){j.prefix=c}}),r(se);var T=i(se,2),Re=n(T);rt(Re,{id:"op-overwrite",class:"secrets-op-checkbox",get checked(){return j.overwrite},set checked(c){j.overwrite=c}}),Fe(2),r(T),r(te);var Be=i(te,2);{var $t=c=>{var k=_s(),Q=i(n(k),2);tt(Q,21,()=>e(Y),st,(re,I)=>{var F=ks(),Ye=n(F);{let Ht=le(()=>e(C).includes(e(I).id));rt(Ye,{get checked(){return e(Ht)},onCheckedChange:()=>nt(e(I).id),class:"secrets-op-checkbox"})}var Ze=i(Ye,2),Ft=n(Ze,!0);r(Ze),r(F),q(()=>N(Ft,e(I).name)),v(re,F)}),r(Q),r(k),v(c,k)},Mt=c=>{var k=ws();v(c,k)};$(Be,c=>{e(p).connected&&e(Y).length>0?c($t):e(p).connected&&c(Mt,1)})}var je=i(Be,2),J=n(je),Xe=n(J);ns(Xe,{class:"size-3"});var We=i(Xe,2),Lt=n(We,!0);r(We),r(J);var ae=i(J,2),Je=n(ae);is(Je,{class:"size-3"});var Qe=i(Je,2),Rt=n(Qe,!0);r(Qe),r(ae),r(je),Fe(2),r(a),q(c=>{H.disabled=c,N(K,e(pe)?"...":e(p).connected?"UPDATE":"CONNECT"),J.disabled=e(he)||!e(p).connected,N(Lt,e(he)?"IMPORTING...":"IMPORT"),ae.disabled=e(fe)||!e(p).configured,N(Rt,e(fe)?"...":"DISCONNECT")},[()=>e(pe)||!e(B).trim()]),M("keydown",a,ut),M("click",H,it),oe("focus",H,()=>Z(2)),M("click",J,dt),oe("focus",J,()=>Z(3)),M("click",ae,ct),oe("focus",ae,()=>Z(4)),v(t,a)};$(At,t=>{e(X)&&t(Tt)})}r(Ke),r(Ie);var Ge=i(Ie,2),It=n(Ge);{var Nt=t=>{var a=bs();v(t,a)},Ot=t=>{var a=ys();v(t,a)};$(It,t=>{e(R)?t(Ot,-1):t(Nt)})}r(Ge),r(De),q(()=>{N(kt,`${e(d).length??""} STORED`),N(gt,e(d).length),et(ee,"aria-expanded",e(X)),zt(Me,`color: ${e(mt)??""}`),N(Dt,e(ht)),we.disabled=e(ue)}),M("click",Te,()=>{s(R,!e(R))}),M("click",ee,()=>{s(X,!e(X)),e(X)||(s(o,-1),s(f,"list"))}),M("click",we,()=>ke()),v(L,De),ve()}qt(["click","keydown"]);export{Os as default};
|
|
1
|
+
import{p as ie,s as ye,c as ce,f as de,a as Ee,n as Pe,b as v,d as ve,r as xe,o as h,e as ne,q as Ut,N as oe,$ as Vt,j as n,t as i,l as r,w as Fe,k as $,i as e,y as q,z as N,D as et,aa as zt,O as M,v as s,ak as U,u as le,A as tt,B as Kt,K as st,m as b,P as qt,x as at}from"./o6XZc-z-.js";import{I as Se,af as Gt,ag as Bt,ah as jt,n as Xt,ai as G,aj as Wt,t as S,ak as Jt,al as Qt,am as Yt,an as Zt}from"./BPU6xJSh.js";import{C as rt}from"./B3yr-GRF.js";import{I as be}from"./D_Y2wYvO.js";import{P as es}from"./D9IMDq0B.js";import{R as ts}from"./4p78tMRG.js";import{T as ss}from"./CEbpGSd1.js";import{C as as}from"./_JhUTpwc.js";import{C as rs}from"./DQ8Bewng.js";function ns(L,m){ie(m,!0);let d=xe(m,["$$slots","$$events","$$legacy"]);const D=[["path",{d:"M12 3v12"}],["path",{d:"m8 11 4 4 4-4"}],["path",{d:"M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4"}]];Se(L,ye({name:"import"},()=>d,{get iconNode(){return D},children:(w,O)=>{var _=ce(),E=de(_);Ee(E,()=>m.children??Pe),v(w,_)},$$slots:{default:!0}})),ve()}function os(L,m){ie(m,!0);let d=xe(m,["$$slots","$$events","$$legacy"]);const D=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor"}]];Se(L,ye({name:"key-round"},()=>d,{get iconNode(){return D},children:(w,O)=>{var _=ce(),E=de(_);Ee(E,()=>m.children??Pe),v(w,_)},$$slots:{default:!0}})),ve()}function ls(L,m){ie(m,!0);let d=xe(m,["$$slots","$$events","$$legacy"]);const D=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"}]];Se(L,ye({name:"link"},()=>d,{get iconNode(){return D},children:(w,O)=>{var _=ce(),E=de(_);Ee(E,()=>m.children??Pe),v(w,_)},$$slots:{default:!0}})),ve()}function is(L,m){ie(m,!0);let d=xe(m,["$$slots","$$events","$$legacy"]);const D=[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16"}]];Se(L,ye({name:"unlink"},()=>d,{get iconNode(){return D},children:(w,O)=>{var _=ce(),E=de(_);Ee(E,()=>m.children??Pe),v(w,_)},$$slots:{default:!0}})),ve()}var cs=b('<div class="add-form svelte-k8hi4h"><div class="add-form-row svelte-k8hi4h"><!> <!> <button class="add-submit svelte-k8hi4h"> </button></div></div>'),ds=b('<div class="panel-empty svelte-k8hi4h">LOADING</div>'),vs=b('<div class="panel-empty svelte-k8hi4h"><span>NO SECRETS STORED</span> <span class="panel-empty-hint svelte-k8hi4h">PRESS N TO ADD ONE</span></div>'),us=b('<span class="secret-delete-text svelte-k8hi4h">...</span>'),ps=b('<div tabindex="0" role="listitem"><!> <span class="secret-name svelte-k8hi4h"> </span> <span class="secret-mask svelte-k8hi4h">········</span> <button class="secret-delete svelte-k8hi4h"><!></button></div>'),fs=b('<div class="op-status op-status--ok svelte-k8hi4h">Connected<!></div>'),hs=b('<div class="op-status op-status--warn svelte-k8hi4h">Token saved but unreachable<!></div>'),ms=b('<div class="op-status svelte-k8hi4h">Connect a 1Password service account to import secrets</div>'),ks=b('<label class="op-vault svelte-k8hi4h"><!> <span class="op-vault-name svelte-k8hi4h"> </span></label>'),_s=b('<div class="op-vaults svelte-k8hi4h"><span class="op-vaults-label svelte-k8hi4h">VAULTS</span> <div class="op-vault-list svelte-k8hi4h"></div></div>'),ws=b('<div class="op-vaults-empty svelte-k8hi4h">NO ACCESSIBLE VAULTS</div>'),gs=b('<div class="onepassword-panel svelte-k8hi4h"><!> <div class="op-row svelte-k8hi4h"><!> <button class="op-btn svelte-k8hi4h" data-focus-index="2"><!> <span> </span></button></div> <div class="op-options svelte-k8hi4h"><div class="op-option svelte-k8hi4h"><span class="op-option-label svelte-k8hi4h">PREFIX</span> <!></div> <label class="op-option op-option--check svelte-k8hi4h" for="op-overwrite"><!> <span class="op-option-label svelte-k8hi4h">OVERWRITE</span></label></div> <!> <div class="op-actions svelte-k8hi4h"><button class="op-btn svelte-k8hi4h" data-focus-index="3"><!> <span> </span></button> <button class="op-btn op-btn--danger svelte-k8hi4h" data-focus-index="4"><!> <span> </span></button></div> <div class="op-tip svelte-k8hi4h">TIP: MAP DIRECT REFS AS <code class="svelte-k8hi4h">op://vault/item/field</code></div></div>'),bs=b('<span class="shortcut svelte-k8hi4h"><kbd class="svelte-k8hi4h">N</kbd> ADD</span>'),ys=b('<span class="shortcut svelte-k8hi4h"><kbd class="svelte-k8hi4h">ESC</kbd> CANCEL</span>'),Es=b('<div class="secrets-page svelte-k8hi4h"><div class="tab-header svelte-k8hi4h"><div class="tab-header-left svelte-k8hi4h"><span class="tab-header-title svelte-k8hi4h">SECRETS</span> <span class="tab-header-count svelte-k8hi4h"> </span></div> <button class="new-secret-btn svelte-k8hi4h"><!> <span>ADD SECRET</span></button></div> <!> <div class="secrets-content svelte-k8hi4h"><div class="panel svelte-k8hi4h"><div class="panel-header svelte-k8hi4h"><span class="panel-pip svelte-k8hi4h" style="background: var(--sig-highlight)"></span> <span class="panel-label svelte-k8hi4h">Stored Secrets</span> <span class="panel-count svelte-k8hi4h"> </span></div> <div class="panel-body svelte-k8hi4h"><!></div></div> <div class="panel svelte-k8hi4h" role="group" aria-label="1Password integration"><div class="panel-header-row svelte-k8hi4h"><button class="panel-header panel-header--toggle svelte-k8hi4h"><!> <span class="panel-label svelte-k8hi4h">1Password</span> <span class="panel-status svelte-k8hi4h"> </span></button> <button class="panel-action svelte-k8hi4h" aria-label="Refresh 1Password status"><!></button></div> <!></div></div> <div class="shortcut-bar svelte-k8hi4h"><!></div></div>');function Os(L,m){ie(m,!0);let d=h(ne([])),D=h(!1),w=h(""),O=h(""),_=h(!1),E=h(null),R=h(!1),ue=h(!1),p=h(ne({configured:!1,connected:!1,vaults:[]})),Y=h(ne([])),B=h("");const j=ne({prefix:"OP",overwrite:!1});let pe=h(!1),fe=h(!1),he=h(!1),C=h(ne([])),X=h(!1),l=h(-1),f=h("list"),o=h(-1);async function me(){s(D,!0),s(d,await Gt(),!0),s(D,!1)}function nt(t){if(e(C).includes(t)){s(C,e(C).filter(a=>a!==t),!0);return}s(C,[...e(C),t],!0)}async function ke(){s(ue,!0);try{if(s(p,await Bt(),!0),e(p).connected){const a=await jt();s(Y,a.length>0?a:e(p).vaults,!0)}else s(Y,[],!0),s(C,[],!0);const t=new Set(e(Y).map(a=>a.id));s(C,e(C).filter(a=>t.has(a)),!0)}finally{s(ue,!1)}}async function ot(){if(!e(w).trim()||!e(O).trim())return;s(_,!0),await Wt(e(w).trim(),e(O))?(S(`Secret ${e(w).trim()} added`,"success"),s(w,""),s(O,""),s(R,!1),await me()):S("Failed to add secret","error"),s(_,!1)}async function lt(t){s(E,t,!0),await Jt(t)?(S(`Secret ${t} deleted`,"success"),await me()):S("Failed to delete secret","error"),s(E,null)}async function it(){if(!e(B).trim()){S("Service account token is required","error");return}s(pe,!0);const t=await Qt(e(B).trim());if(s(pe,!1),!t.success){S(t.error??"Failed to connect 1Password","error");return}s(B,""),await ke(),S("Connected to 1Password","success")}async function ct(){s(fe,!0);const t=await Zt();if(s(fe,!1),!t.success){S(t.error??"Failed to disconnect 1Password","error");return}await ke(),S("Disconnected 1Password","success")}async function dt(){if(!e(p).connected){S("Connect 1Password first","error");return}s(he,!0);const t=await Yt({vaults:e(C).length>0?e(C):void 0,prefix:j.prefix.trim()||"OP",overwrite:j.overwrite});if(s(he,!1),!t.success){S(t.error??"Failed to import from 1Password","error");return}await me();const a=t.importedCount??0,u=t.skippedCount??0,g=t.errorCount??0;S(`Imported ${a} secrets (skipped ${u}, errors ${g})`,"success")}function vt(t){if(Xt.activeTab!=="secrets"||t.defaultPrevented)return;const a=t.target,u=a.tagName==="INPUT"||a.tagName==="TEXTAREA"||a.isContentEditable;if(t.key==="Escape"){if(e(R)){t.preventDefault(),s(R,!1);return}if(e(f)==="1password"){t.preventDefault(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(l,-1),s(o,-1);return}t.preventDefault(),G();return}if(!u){if((t.key==="n"||t.key==="N")&&!e(R)){t.preventDefault(),s(R,!0);return}if(t.key==="ArrowRight"&&e(f)==="list"&&e(l)===-1&&(t.preventDefault(),e(d).length>0?(s(l,0),V(0)):(s(f,"1password"),s(o,0),z(0))),t.key==="ArrowUp"&&e(f)==="list"&&e(l)>=0&&(t.preventDefault(),e(l)>0?(U(l,-1),V(e(l))):(s(l,-1),G())),t.key==="ArrowDown"&&e(f)==="list"){if(t.preventDefault(),e(l)<e(d).length-1)U(l),V(e(l));else if(e(l)===e(d).length-1){const g=document.querySelectorAll(".secret-item");g[e(l)]instanceof HTMLElement&&g[e(l)].blur(),s(f,"1password"),s(l,-1),s(o,0),z(0)}}if(t.key==="ArrowUp"&&e(f)==="1password"&&(t.preventDefault(),e(o)>0?(U(o,-1),z(e(o))):e(o)===0&&e(d).length>0?(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(l,e(d).length-1),s(o,-1),V(e(l))):e(o)===0&&e(d).length===0&&(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(o,-1),G())),t.key==="ArrowDown"&&e(f)==="1password"){t.preventDefault();const g=_e(),y=Math.max(0,g.length-1);e(o)<y&&(U(o),z(e(o)))}t.key==="ArrowLeft"&&e(f)==="list"&&e(l)===-1&&(t.preventDefault(),G())}}function V(t){const a=document.querySelectorAll(".secret-item");a[t]instanceof HTMLElement&&a[t].focus()}function _e(){const t=document.querySelector(".onepassword-panel");if(!t)return[];const a=t.querySelectorAll("[data-focus-index]");return Array.from(a).filter(u=>!u.disabled).sort((u,g)=>{const y=Number.parseInt(u.getAttribute("data-focus-index")??"0",10),P=Number.parseInt(g.getAttribute("data-focus-index")??"0",10);return y-P})}function z(t){const a=_e();if(a.length===0)return;const u=Math.min(t,a.length-1);a[u]?.focus()}function ut(t){if(t.key==="ArrowUp"&&(t.preventDefault(),e(o)>0?(U(o,-1),z(e(o))):e(o)===0&&e(d).length>0?(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(l,e(d).length-1),s(o,-1),V(e(l))):e(o)===0&&e(d).length===0&&(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(o,-1),G())),t.key==="ArrowDown"){t.preventDefault();const a=_e(),u=Math.max(0,a.length-1);e(o)<u&&(U(o),z(e(o)))}if(t.key==="Escape"&&(t.preventDefault(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s(f,"list"),s(l,-1),s(o,-1)),t.key==="Tab"){const a=_e(),u=Math.max(0,a.length-1);t.shiftKey&&e(o)>0?U(o,-1):!t.shiftKey&&e(o)<u&&U(o)}}function Z(t){s(o,t,!0),s(f,"1password")}function pt(t){s(l,t,!0),s(f,"list")}function ft(t,a){t.key==="ArrowDown"?(t.preventDefault(),t.stopPropagation(),a<e(d).length-1?(s(l,a+1),V(e(l))):(t.target.blur(),s(f,"1password"),s(l,-1),s(o,0),z(0))):t.key==="ArrowUp"?(t.preventDefault(),t.stopPropagation(),a>0?(s(l,a-1),V(e(l))):a===0&&(s(l,-1),t.target instanceof HTMLElement&&t.target.blur(),G())):t.key==="ArrowLeft"&&(t.preventDefault(),t.stopPropagation(),s(l,-1),t.target instanceof HTMLElement&&t.target.blur(),G())}const ht=le(()=>e(p).connected?"CONNECTED":e(p).configured?"UNREACHABLE":"NOT CONFIGURED"),mt=le(()=>e(p).connected?"var(--sig-success)":e(p).configured?"var(--sig-warning)":"var(--sig-text-muted)");Ut(()=>{me(),ke()});var De=Es();oe("keydown",Vt,vt);var Ce=n(De),Ae=n(Ce),He=i(n(Ae),2),kt=n(He);r(He),r(Ae);var Te=i(Ae,2),_t=n(Te);es(_t,{class:"size-3"}),Fe(2),r(Te),r(Ce);var Ue=i(Ce,2);{var wt=t=>{var a=cs(),u=n(a),g=n(u);be(g,{type:"text",class:"secrets-add-input",placeholder:"SECRET_NAME",get value(){return e(w)},set value(A){s(w,A,!0)}});var y=i(g,2);be(y,{type:"password",class:"secrets-add-input",placeholder:"value",get value(){return e(O)},set value(A){s(O,A,!0)}});var P=i(y,2),x=n(P,!0);r(P),r(u),r(a),q(A=>{P.disabled=A,N(x,e(_)?"ADDING...":"ADD")},[()=>e(_)||!e(w).trim()||!e(O).trim()]),M("click",P,ot),v(t,a)};$(Ue,t=>{e(R)&&t(wt)})}var Ie=i(Ue,2),Ne=n(Ie),Oe=n(Ne),Ve=i(n(Oe),4),gt=n(Ve,!0);r(Ve),r(Oe);var ze=i(Oe,2),bt=n(ze);{var yt=t=>{var a=ds();v(t,a)},Et=t=>{var a=vs();v(t,a)},Pt=t=>{var a=ce(),u=de(a);tt(u,17,()=>e(d),st,(g,y,P)=>{var x=ps();let A;var H=n(x);os(H,{class:"secrets-secret-icon"});var W=i(H,2),ge=n(W,!0);r(W);var K=i(W,4),te=n(K);{var se=T=>{var Re=us();v(T,Re)},Le=T=>{ss(T,{class:"size-3"})};$(te,T=>{e(E)===e(y)?T(se):T(Le,-1)})}r(K),r(x),q(()=>{A=Kt(x,1,"secret-item svelte-k8hi4h",null,A,{"secret-item--focused":e(f)==="list"&&e(l)===P}),N(ge,e(y)),K.disabled=e(E)===e(y),et(K,"aria-label",`Delete secret ${e(y)}`)}),M("keydown",x,T=>ft(T,P)),oe("focus",x,()=>pt(P)),M("click",K,()=>lt(e(y))),v(g,x)}),v(t,a)};$(bt,t=>{e(D)?t(yt):e(d).length===0?t(Et,1):t(Pt,-1)})}r(ze),r(Ne);var Ke=i(Ne,2),$e=n(Ke),ee=n($e),qe=n(ee);{var xt=t=>{as(t,{class:"secrets-panel-chevron"})},St=t=>{rs(t,{class:"secrets-panel-chevron"})};$(qe,t=>{e(X)?t(xt):t(St,-1)})}var Me=i(qe,4),Dt=n(Me,!0);r(Me),r(ee);var we=i(ee,2),Ct=n(we);{let t=le(()=>`size-3${e(ue)?" op-spin":""}`);ts(Ct,{get class(){return e(t)}})}r(we),r($e);var At=i($e,2);{var Tt=t=>{var a=gs(),u=n(a);{var g=c=>{var k=fs(),Q=i(n(k));{var re=I=>{var F=at();q(()=>N(F,`· ${e(p).vaultCount??""} vaults`)),v(I,F)};$(Q,I=>{typeof e(p).vaultCount=="number"&&I(re)})}r(k),v(c,k)},y=c=>{var k=hs(),Q=i(n(k));{var re=I=>{var F=at();q(()=>N(F,`· ${e(p).error??""}`)),v(I,F)};$(Q,I=>{e(p).error&&I(re)})}r(k),v(c,k)},P=c=>{var k=ms();v(c,k)};$(u,c=>{e(p).connected?c(g):e(p).configured?c(y,1):c(P,-1)})}var x=i(u,2),A=n(x);{let c=le(()=>e(p).connected?"Replace service account token":"Service account token");be(A,{type:"password","data-focus-index":"0",class:"secrets-op-input",get placeholder(){return e(c)},onfocus:()=>Z(0),get value(){return e(B)},set value(k){s(B,k,!0)}})}var H=i(A,2),W=n(H);ls(W,{class:"size-3"});var ge=i(W,2),K=n(ge,!0);r(ge),r(H),r(x);var te=i(x,2),se=n(te),Le=i(n(se),2);be(Le,{type:"text","data-focus-index":"1",class:"secrets-op-input-sm",placeholder:"OP",onfocus:()=>Z(1),get value(){return j.prefix},set value(c){j.prefix=c}}),r(se);var T=i(se,2),Re=n(T);rt(Re,{id:"op-overwrite",class:"secrets-op-checkbox",get checked(){return j.overwrite},set checked(c){j.overwrite=c}}),Fe(2),r(T),r(te);var Be=i(te,2);{var $t=c=>{var k=_s(),Q=i(n(k),2);tt(Q,21,()=>e(Y),st,(re,I)=>{var F=ks(),Ye=n(F);{let Ht=le(()=>e(C).includes(e(I).id));rt(Ye,{get checked(){return e(Ht)},onCheckedChange:()=>nt(e(I).id),class:"secrets-op-checkbox"})}var Ze=i(Ye,2),Ft=n(Ze,!0);r(Ze),r(F),q(()=>N(Ft,e(I).name)),v(re,F)}),r(Q),r(k),v(c,k)},Mt=c=>{var k=ws();v(c,k)};$(Be,c=>{e(p).connected&&e(Y).length>0?c($t):e(p).connected&&c(Mt,1)})}var je=i(Be,2),J=n(je),Xe=n(J);ns(Xe,{class:"size-3"});var We=i(Xe,2),Lt=n(We,!0);r(We),r(J);var ae=i(J,2),Je=n(ae);is(Je,{class:"size-3"});var Qe=i(Je,2),Rt=n(Qe,!0);r(Qe),r(ae),r(je),Fe(2),r(a),q(c=>{H.disabled=c,N(K,e(pe)?"...":e(p).connected?"UPDATE":"CONNECT"),J.disabled=e(he)||!e(p).connected,N(Lt,e(he)?"IMPORTING...":"IMPORT"),ae.disabled=e(fe)||!e(p).configured,N(Rt,e(fe)?"...":"DISCONNECT")},[()=>e(pe)||!e(B).trim()]),M("keydown",a,ut),M("click",H,it),oe("focus",H,()=>Z(2)),M("click",J,dt),oe("focus",J,()=>Z(3)),M("click",ae,ct),oe("focus",ae,()=>Z(4)),v(t,a)};$(At,t=>{e(X)&&t(Tt)})}r(Ke),r(Ie);var Ge=i(Ie,2),It=n(Ge);{var Nt=t=>{var a=bs();v(t,a)},Ot=t=>{var a=ys();v(t,a)};$(It,t=>{e(R)?t(Ot,-1):t(Nt)})}r(Ge),r(De),q(()=>{N(kt,`${e(d).length??""} STORED`),N(gt,e(d).length),et(ee,"aria-expanded",e(X)),zt(Me,`color: ${e(mt)??""}`),N(Dt,e(ht)),we.disabled=e(ue)}),M("click",Te,()=>{s(R,!e(R))}),M("click",ee,()=>{s(X,!e(X)),e(X)||(s(o,-1),s(f,"list"))}),M("click",we,()=>ke()),v(L,De),ve()}qt(["click","keydown"]);export{Os as default};
|
|
@@ -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"./BPU6xJSh.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 as Wt,o as $,e as Z,q as Gt,N as Yt,$ as Zt,j as r,t as c,k as R,i as t,l as a,F as Jt,v as b,b as _,d as Vt,u as P,A as G,y as F,B as Xt,D as Xe,z as u,O as Qt,w as J,m as T,c as be,f as xe,K as _e,P as ea}from"./o6XZc-z-.js";import{h as ta,n as Qe,i as aa,j as ra,k as sa,l as ia,m as na,B as he}from"./pkgXnRzN.js";import{P as oa}from"./DiLyuexf.js";import{T as la}from"./BBTUzYSt.js";import{C as ca}from"./C39nf7jZ.js";import{C as da}from"./DKpFJVqS.js";import{R as va}from"./B7KEMFIz.js";var ma=T('<div class="flex flex-1 items-center justify-center sig-label">Loading timeline...</div>'),pa=T('<div class="flex flex-1 items-center justify-center sig-label text-[var(--sig-text-muted)]">No timeline data yet.</div>'),ua=T('<button role="tab"> </button>'),fa=T('<p class="sig-label text-[var(--sig-text-muted)]">No type signals</p>'),ga=T('<div class="flex w-full items-center justify-between text-[11px] text-[var(--sig-text)]"><span> </span> <span class="text-[var(--sig-text-muted)]"> </span></div>'),ba=T('<p class="sig-label text-[var(--sig-text-muted)]">No source signals</p>'),xa=T('<div class="flex w-full items-center justify-between text-[11px] text-[var(--sig-text)]"><span> </span> <span class="text-[var(--sig-text-muted)]"> </span></div>'),_a=T('<p class="sig-label text-[var(--sig-text-muted)]">No tags this era</p>'),ha=T('<div class="flex w-full items-center justify-between text-[11px] text-[var(--sig-text)]"><span> </span> <span class="text-[var(--sig-text-muted)]"> </span></div>'),ya=T('<p class="mt-2 sig-label text-[var(--sig-text-muted)]">No memories saved in this era yet.</p>'),Ma=T('<article class="timeline-top-card rounded-lg border border-[var(--sig-border-strong)] bg-[var(--sig-surface-raised)] p-2 svelte-1acbaf"><div class="timeline-top-card-head svelte-1acbaf"><div class="timeline-top-card-icon svelte-1acbaf"> </div> <div class="timeline-top-card-title-wrap svelte-1acbaf"><p class="timeline-top-card-title svelte-1acbaf"> </p> <p class="timeline-top-card-subtitle svelte-1acbaf"> </p></div></div> <p class="timeline-top-card-content mt-1 text-[11px] leading-relaxed text-[var(--sig-text)] line-clamp-4 svelte-1acbaf"> </p> <div class="timeline-top-card-meta mt-auto flex items-center justify-between gap-2 pt-2 text-[11px] text-[var(--sig-text-muted)] svelte-1acbaf"><p class="timeline-top-card-badge svelte-1acbaf"> </p> <p> </p></div></article>'),wa=T('<div class="timeline-top-card-grid mt-2 svelte-1acbaf"></div>'),ka=T('<div class="timeline-stack flex flex-1 min-h-0 flex-col gap-3 svelte-1acbaf"><section class="timeline-hero rounded-xl border border-[var(--sig-border)] p-3 overflow-hidden svelte-1acbaf"><div class="timeline-hero-grid svelte-1acbaf"><div class="min-w-0"><h2 class="timeline-hero-title svelte-1acbaf">Signet Evolution Timeline</h2> <p class="timeline-hero-subtitle svelte-1acbaf">Track added, evolved, and pinned memories across recap eras.</p></div> <div class="timeline-hero-metrics svelte-1acbaf"><div class="timeline-hero-metric svelte-1acbaf"><span class="timeline-hero-metric-label svelte-1acbaf">Agent skills used</span> <strong class="timeline-hero-metric-display svelte-1acbaf"> </strong></div> <div class="timeline-hero-metric svelte-1acbaf"><span class="timeline-hero-metric-label svelte-1acbaf">MCP servers used</span> <strong class="timeline-hero-metric-display svelte-1acbaf"> </strong></div> <div class="timeline-hero-metric svelte-1acbaf"><span class="timeline-hero-metric-label svelte-1acbaf">Average importance</span> <strong class="timeline-hero-metric-display svelte-1acbaf"> </strong></div> <div class="timeline-hero-metric svelte-1acbaf"><span class="timeline-hero-metric-label svelte-1acbaf">Pinned</span> <strong class="timeline-hero-metric-display svelte-1acbaf"> </strong></div></div></div></section> <div class="timeline-content-split flex-1 min-h-0 gap-3 svelte-1acbaf"><section class="timeline-detail-panel flex min-h-0 flex-col gap-3 overflow-x-hidden overflow-y-auto rounded-[10.5px] border-2 border-[var(--sig-border-strong)] bg-[var(--sig-surface)] p-3 svelte-1acbaf" style="--panel-pad: 0.75rem;"><div class="timeline-era-head svelte-1acbaf"><div class="timeline-era-title-row svelte-1acbaf"><p class="sig-heading timeline-era-title svelte-1acbaf"> <span class="timeline-era-title-range svelte-1acbaf"> </span></p> <div class="timeline-era-controls flex items-center gap-1 svelte-1acbaf"><!> <div role="tablist" aria-orientation="horizontal" class="flex items-center gap-1"></div> <!> <!></div></div></div> <div class="timeline-summary-grid svelte-1acbaf"><div class="flex min-h-[56px] items-center justify-center rounded-[6.5px] p-2" style="border: 0.87px solid var(--sig-border-strong); background: var(--sig-surface)"><p class="timeline-summary-line svelte-1acbaf"><span class="sig-heading leading-none"> </span> <span class="timeline-summary-copy svelte-1acbaf">- Added</span></p></div> <div class="flex min-h-[56px] items-center justify-center rounded-[6.5px] p-2" style="border: 0.87px solid var(--sig-border-strong); background: var(--sig-surface)"><p class="timeline-summary-line svelte-1acbaf"><span class="sig-heading leading-none"> </span> <span class="timeline-summary-copy svelte-1acbaf">- Tracked events captured</span></p></div> <div class="flex min-h-[56px] items-center justify-center rounded-[6.5px] p-2" style="border: 0.87px solid var(--sig-border-strong); background: var(--sig-surface)"><p class="timeline-summary-line svelte-1acbaf"><span class="sig-heading leading-none"> </span> <span class="timeline-summary-copy svelte-1acbaf">- Evolved</span></p></div> <div class="flex min-h-[56px] items-center justify-center rounded-[6.5px] p-2" style="border: 0.87px solid var(--sig-border-strong); background: var(--sig-surface)"><p class="timeline-summary-line svelte-1acbaf"><span class="sig-heading leading-none"> </span> <span class="timeline-summary-copy svelte-1acbaf">- Strengthened</span></p></div></div> <div class="timeline-mix-grid svelte-1acbaf"><div class="timeline-mix-card timeline-mix-card--type p-2 svelte-1acbaf"><p class="timeline-mix-header mb-1 svelte-1acbaf">Type mix</p> <!></div> <div class="timeline-mix-card timeline-mix-card--source p-2 svelte-1acbaf"><p class="timeline-mix-header mb-1 svelte-1acbaf">Source mix</p> <!></div> <div class="timeline-mix-card timeline-mix-card--tags p-2 svelte-1acbaf"><p class="timeline-mix-header mb-1 svelte-1acbaf">Top tags</p> <!></div></div></section> <section class="timeline-top-panel rounded-[10.5px] bg-[var(--sig-surface)] p-3 svelte-1acbaf" style="border: 0.87px solid var(--sig-border);"><div class="flex items-center justify-between gap-2"><p class="sig-label text-[var(--sig-text-bright)]">Top Four Memories</p> <p class="text-[11px] text-[var(--sig-text-bright)]"> </p></div> <!></section></div></div>'),Ta=T('<p class="sig-label text-[var(--sig-danger)]"> </p>'),Sa=T('<div class="timeline-shell flex flex-col flex-1 min-h-0 overflow-hidden bg-[var(--sig-bg)] svelte-1acbaf" role="region" aria-label="Memory timeline. Use left and right arrows to move through eras."><!> <div class="flex flex-1 min-h-0 flex-col gap-3 p-3 bg-[var(--sig-bg)]"><!> <!></div></div>');function $a(et,V){Wt(V,!0);const tt="h-8 px-3 rounded-lg border text-[10px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] transition-colors";let X=$(!1),z=$(null),N=$(Z([])),S=$(0),Q=$(Z({})),ee=$(Z({})),te=$(Z({})),I=$(null);const p=P(()=>t(N)[t(S)]??null),ye=P(()=>t(p)?t(Q)[t(p).rangeKey]??0:0);function at(e){return e.sourceBreakdown.filter(l=>Me(l.key)).length}function Me(e){const s=e.trim().toLowerCase();return s?!!(/\bmcp\b/.test(s)||/\btool[-\s]?servers?\b/.test(s)||s.includes("model context protocol")||s.includes("model-context-protocol")||s.includes("modelcontextprotocol")):!1}const we=P(()=>t(p)?Math.max(t(ee)[t(p).rangeKey]??0,at(t(p))):0),ke=P(()=>t(p)?t(te)[t(p).rangeKey]??[]:[]);function Te(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function rt(e){if(Array.isArray(e))return e.filter(s=>typeof s=="string").map(s=>s.trim()).filter(s=>s.length>0);if(typeof e=="string"){const s=e.trim();if(!s)return[];if(s.startsWith("[")&&s.endsWith("]"))try{const l=JSON.parse(s);if(Array.isArray(l))return l.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0)}catch{}return s.split(",").map(l=>l.trim()).filter(l=>l.length>0)}return[]}function st(e,s,l,n){const A=l.map(i=>i.name.trim().toLowerCase()).filter(i=>i.length>0).map(i=>({name:i,pattern:new RegExp(`\\b${Te(i)}\\b`,"i")})),D=n.flatMap(i=>{const m=[];for(const y of[i.name,i.id]){const M=y.trim().toLowerCase();M.length>0&&m.push({serverId:i.id,pattern:new RegExp(`\\b${Te(M)}\\b`,"i")})}return m}),U=e.map(i=>({bucket:i,skillSet:new Set,mcpSet:new Set,hasMcpSignal:!1,startMs:Date.parse(i.start),endMs:Date.parse(i.end)}));for(const i of s){const m=Date.parse(i.created_at);if(!Number.isFinite(m))continue;const y=rt(i.tags).join(" "),M=[i.content,i.who,i.type,y].filter(g=>typeof g=="string").join(" ").toLowerCase(),L=[i.who,i.type,y].filter(g=>typeof g=="string").join(" ").toLowerCase();for(const g of U){if(m<g.startMs||m>g.endMs)continue;for(const C of A)C.pattern.test(M)&&g.skillSet.add(C.name);let W=!1;for(const C of D)C.pattern.test(M)&&(g.mcpSet.add(C.serverId),W=!0);!W&&Me(L)&&(g.hasMcpSignal=!0)}}const K={},v={};for(const i of U)K[i.bucket.rangeKey]=i.skillSet.size,v[i.bucket.rangeKey]=i.mcpSet.size>0?i.mcpSet.size:i.hasMcpSignal?1:0;return{skillUsage:K,mcpUsage:v}}function H(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?0:e>=1?1:e}function it(e,s){const l=new Map;for(const v of e){const i=Date.parse(v.start),m=Date.parse(v.end);!Number.isFinite(i)||!Number.isFinite(m)||l.set(v.rangeKey,{startMs:i,endMs:m})}const n=l.get("today")??null,A=l.get("last_week")??null;function D(v){const i=l.get(v.rangeKey),m=Date.parse(v.start),y=Date.parse(v.end),M={startMs:Number.isFinite(m)?m:Number.NEGATIVE_INFINITY,endMs:Number.isFinite(y)?y:Number.POSITIVE_INFINITY};if(!i)return M;const L=i.startMs;let g=i.endMs;return v.rangeKey==="last_week"&&n?g=Math.min(g,n.startMs-1):v.rangeKey==="one_month"&&(A?g=Math.min(g,A.startMs-1):n&&(g=Math.min(g,n.startMs-1))),g<L?M:{startMs:L,endMs:g}}const U=e.map(v=>{const i=D(v);return{bucket:v,startMs:i.startMs,endMs:i.endMs,candidates:[]}});for(const v of s){const i=Date.parse(v.created_at);if(Number.isFinite(i))for(const m of U){if(i<m.startMs||i>m.endMs)continue;const y=Math.max(1,m.endMs-m.startMs),M=Math.max(0,Math.min(1,(i-m.startMs)/y)),L=H(v.importance)*100+(v.pinned?24:0)+M*8;m.candidates.push({memory:v,score:L,createdAt:i})}}const K={};for(const v of U)v.candidates.sort((i,m)=>{if(m.score!==i.score)return m.score-i.score;const y=H(i.memory.importance),M=H(m.memory.importance);return M!==y?M-y:m.createdAt!==i.createdAt?m.createdAt-i.createdAt:i.memory.id.localeCompare(m.memory.id)}),K[v.bucket.rangeKey]=v.candidates.slice(0,4).map(i=>i.memory);return K}function q(e=1){t(N).length!==0&&b(S,Math.min(t(N).length-1,t(S)+e),!0)}function O(e=1){t(N).length!==0&&b(S,Math.max(0,t(S)-e),!0)}function ae(e){V.ontimelinegeneratedforchange&&V.ontimelinegeneratedforchange(e)}async function nt(){b(X,!0),b(z,null);try{const e=ra(5e3,0),[s,l,n,A]=await Promise.all([sa({fallbackMemories:e.then(U=>U.memories)}),ia(),na(),e]);b(N,s.buckets,!0),ae(s.generatedFor);const D=st(s.buckets,A.memories,l,n.servers);b(Q,D.skillUsage,!0),b(ee,D.mcpUsage,!0),b(te,it(s.buckets,A.memories),!0),b(S,0),s.error&&b(z,s.error,!0)}catch{b(z,"Failed to load timeline."),b(N,[],!0),ae(""),b(Q,{},!0),b(ee,{},!0),b(te,{},!0)}finally{b(X,!1)}}function ot(e,s){const l={month:"short",day:"numeric",timeZone:"UTC"},n=new Date(e).toLocaleDateString("en-US",l),A=new Date(s).toLocaleDateString("en-US",{...l,year:"numeric"});return`${n} - ${A}`}function lt(e,s){const l=Date.parse(e);if(!Number.isFinite(l))return"Unknown";const n=new Date(l);return s==="today"?n.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",timeZone:"UTC"}):n.toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",timeZone:"UTC"})}function ct(e){return`${Math.round(H(e)*100)}%`}function re(e,s,l){return e===1?s:l}function dt(e){const s=e.split(/[-_.\s]+/).map(l=>l.trim()).filter(l=>l.length>0);return s.length>=2?`${s[0]?.[0]??""}${s[1]?.[0]??""}`.toUpperCase():e.slice(0,2).toUpperCase()||"M"}function vt(e){return e.rangeKey==="last_week"?"Week":e.rangeKey==="one_month"?"Month":"Today"}function mt(e){if(Qe.activeTab!=="timeline")return;const s=e.target;if(s instanceof HTMLElement){const n=s.tagName;if(n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||s.isContentEditable)return}if(s instanceof HTMLElement&&s.hasAttribute("data-memory-tab")){if(e.key==="ArrowDown"){e.preventDefault();const n=t(I)?.querySelector('.timeline-era-controls [role="tablist"] button[aria-selected="true"]');n instanceof HTMLElement&&n.focus()}return}if(s instanceof HTMLElement&&s.closest('.timeline-era-controls [role="tablist"]')){if(e.key==="ArrowUp"){e.preventDefault(),O(e.shiftKey?3:1);const n=t(I)?.querySelector('.timeline-era-controls [role="tablist"] button[aria-selected="true"]');n instanceof HTMLElement&&n.focus();return}if(e.key==="ArrowDown"){e.preventDefault(),q(e.shiftKey?3:1);const n=t(I)?.querySelector('.timeline-era-controls [role="tablist"] button[aria-selected="true"]');n instanceof HTMLElement&&n.focus();return}if(e.key==="ArrowRight"){e.preventDefault(),q(e.shiftKey?3:1);const n=t(I)?.querySelector('.timeline-era-controls [role="tablist"] button[aria-selected="true"]');n instanceof HTMLElement&&n.focus();return}if(e.key==="ArrowLeft"){e.preventDefault(),O(e.shiftKey?3:1);const n=t(I)?.querySelector('.timeline-era-controls [role="tablist"] button[aria-selected="true"]');n instanceof HTMLElement&&n.focus();return}return}if(e.key==="ArrowRight"){e.preventDefault(),q(e.shiftKey?3:1);return}if(e.key==="ArrowLeft"){e.preventDefault(),O(e.shiftKey?3:1);return}if(e.key==="PageDown"){e.preventDefault(),q(3);return}if(e.key==="PageUp"){e.preventDefault(),O(3);return}}Gt(()=>(nt(),()=>{ae("")}));var Y=Sa();Yt("keydown",Zt,mt);var Se=r(Y);oa(Se,{title:"Timeline",children:(e,s)=>{la(e,{group:"memory",get tabs(){return aa},get activeTab(){return Qe.activeTab},onselect:(l,n)=>ta(n)})}});var Ae=c(Se,2),Ee=r(Ae);{var pt=e=>{var s=ma();_(e,s)},ut=e=>{var s=pa();_(e,s)},ft=e=>{var s=ka(),l=r(s),n=r(l),A=c(r(n),2),D=r(A),U=c(r(D),2),K=r(U);a(U),a(D);var v=c(D,2),i=c(r(v),2),m=r(i);a(i),a(v);var y=c(v,2),M=c(r(y),2),L=r(M);a(M),a(y);var g=c(y,2),W=c(r(g),2),C=r(W);a(W),a(g),a(A),a(n),a(l);var De=c(l,2),se=r(De),ie=r(se),Ue=r(ie),ne=r(Ue),Ne=r(ne),Be=c(Ne),xt=r(Be,!0);a(Be),a(ne);var Le=c(ne,2),$e=r(Le);{let o=P(()=>t(S)<=0);he($e,{variant:"outline",size:"sm",class:"h-8 px-2",onclick:()=>O(),get disabled(){return t(o)},title:"Move to newer era",children:(d,x)=>{ca(d,{class:"size-3.5"})},$$slots:{default:!0}})}var oe=c($e,2);G(oe,23,()=>t(N),o=>o.eraIndex,(o,d,x)=>{var f=ua(),w=r(f,!0);a(f),F(h=>{Xt(f,1,`${tt} ${t(x)===t(S)?"border-[var(--sig-accent)] bg-[color-mix(in_srgb,var(--sig-surface-raised)_76%,transparent)] text-[var(--sig-text-bright)]":"border-[var(--sig-border-strong)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text-bright)]"}`,"svelte-1acbaf"),Xe(f,"aria-selected",t(x)===t(S)),Xe(f,"tabindex",t(x)===t(S)?0:-1),u(w,h)},[()=>vt(t(d))]),Qt("click",f,()=>{b(S,t(x),!0)}),_(o,f)}),a(oe);var Ie=c(oe,2);{let o=P(()=>t(S)>=t(N).length-1);he(Ie,{variant:"outline",size:"sm",class:"h-8 px-2",onclick:()=>q(),get disabled(){return t(o)},title:"Move to older era",children:(d,x)=>{da(d,{class:"size-3.5"})},$$slots:{default:!0}})}var _t=c(Ie,2);he(_t,{variant:"ghost",size:"sm",class:"h-8 px-2 sig-label",onclick:()=>{b(S,0)},title:"Jump to today",children:(o,d)=>{va(o,{class:"size-3.5"})},$$slots:{default:!0}}),a(Le),a(Ue),a(ie);var le=c(ie,2),ce=r(le),Ke=r(ce),Ce=r(Ke),ht=r(Ce,!0);a(Ce),J(2),a(Ke),a(ce);var de=c(ce,2),je=r(de),Fe=r(je),yt=r(Fe,!0);a(Fe),J(2),a(je),a(de);var ve=c(de,2),Re=r(ve),Pe=r(Re),Mt=r(Pe,!0);a(Pe),J(2),a(Re),a(ve);var ze=c(ve,2),He=r(ze),qe=r(He),wt=r(qe,!0);a(qe),J(2),a(He),a(ze),a(le);var Oe=c(le,2),me=r(Oe),kt=c(r(me),2);{var Tt=o=>{var d=fa();_(o,d)},St=o=>{var d=be(),x=xe(d);G(x,17,()=>t(p).typeBreakdown,_e,(f,w)=>{var h=ga(),k=r(h),j=r(k,!0);a(k);var E=c(k,2),B=r(E,!0);a(E),a(h),F(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};R(kt,o=>{t(p).typeBreakdown.length===0?o(Tt):o(St,-1)})}a(me);var pe=c(me,2),At=c(r(pe),2);{var Et=o=>{var d=ba();_(o,d)},Dt=o=>{var d=be(),x=xe(d);G(x,17,()=>t(p).sourceBreakdown,_e,(f,w)=>{var h=xa(),k=r(h),j=r(k,!0);a(k);var E=c(k,2),B=r(E,!0);a(E),a(h),F(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};R(At,o=>{t(p).sourceBreakdown.length===0?o(Et):o(Dt,-1)})}a(pe);var We=c(pe,2),Ut=c(r(We),2);{var Nt=o=>{var d=_a();_(o,d)},Bt=o=>{var d=be(),x=xe(d);G(x,17,()=>t(p).topTags,_e,(f,w)=>{var h=ha(),k=r(h),j=r(k,!0);a(k);var E=c(k,2),B=r(E,!0);a(E),a(h),F(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};R(Ut,o=>{t(p).topTags.length===0?o(Nt):o(Bt,-1)})}a(We),a(Oe),a(se);var Ge=c(se,2),ue=r(Ge),Ye=c(r(ue),2),Lt=r(Ye,!0);a(Ye),a(ue);var $t=c(ue,2);{var It=o=>{var d=ya();_(o,d)},Kt=o=>{var d=wa();G(d,21,()=>t(ke),x=>x.id,(x,f)=>{var w=Ma(),h=r(w),k=r(h),j=r(k,!0);a(k);var E=c(k,2),B=r(E),Ct=r(B,!0);a(B);var Ze=c(B,2),jt=r(Ze,!0);a(Ze),a(E),a(h);var fe=c(h,2),Ft=r(fe,!0);a(fe);var Je=c(fe,2),ge=r(Je),Rt=r(ge);a(ge);var Ve=c(ge,2),Pt=r(Ve,!0);a(Ve),a(Je),a(w),F((zt,Ht,qt,Ot)=>{u(j,zt),u(Ct,t(f).who||"Unknown source"),u(jt,Ht),u(Ft,t(f).content),u(Rt,`imp ${qt??""}`),u(Pt,Ot)},[()=>dt(t(f).who||t(f).type||"memory"),()=>t(f).type?.trim()||"memory",()=>ct(t(f).importance),()=>lt(t(f).created_at,t(p).rangeKey)]),_(x,w)}),a(d),_(o,d)};R($t,o=>{t(ke).length===0?o(It):o(Kt,-1)})}a(Ge),a(De),a(s),F((o,d,x,f,w)=>{u(K,`${t(ye)??""} ${o??""}`),u(m,`${t(we)??""} ${d??""}`),u(L,`${x??""}% avg`),u(C,`${t(p).pinned??""} ${f??""}`),u(Ne,`${t(p).label??""}: `),u(xt,w),u(ht,t(p).memoriesAdded),u(yt,t(p).trackedEvents),u(Mt,t(p).evolved),u(wt,t(p).strengthened),u(Lt,t(p).label)},[()=>re(t(ye),"skill","skills"),()=>re(t(we),"server","servers"),()=>Math.round(H(t(p).avgImportance)*100),()=>re(t(p).pinned,"card","cards"),()=>ot(t(p).start,t(p).end)]),_(e,s)};R(Ee,e=>{t(X)?e(pt):t(N).length===0?e(ut,1):t(p)&&e(ft,2)})}var gt=c(Ee,2);{var bt=e=>{var s=Ta(),l=r(s,!0);a(s),F(()=>u(l,t(z))),_(e,s)};R(gt,e=>{t(z)&&e(bt)})}a(Ae),a(Y),Jt(Y,e=>b(I,e),()=>t(I)),_(et,Y),Vt()}ea(["click"]);export{$a as default};
|
|
1
|
+
import{p as Wt,o as $,e as Z,q as Gt,N as Yt,$ as Zt,j as r,t as c,k as R,i as t,l as a,F as Jt,v as b,b as _,d as Vt,u as P,A as G,y as F,B as Xt,D as Xe,z as u,O as Qt,w as J,m as T,c as be,f as xe,K as _e,P as ea}from"./o6XZc-z-.js";import{h as ta,n as Qe,i as aa,j as ra,k as sa,l as ia,m as na,B as he}from"./BPU6xJSh.js";import{P as oa}from"./DiLyuexf.js";import{T as la}from"./BBTUzYSt.js";import{C as ca}from"./BqZVfy0E.js";import{C as da}from"./DQ8Bewng.js";import{R as va}from"./CKfb1qTZ.js";var ma=T('<div class="flex flex-1 items-center justify-center sig-label">Loading timeline...</div>'),pa=T('<div class="flex flex-1 items-center justify-center sig-label text-[var(--sig-text-muted)]">No timeline data yet.</div>'),ua=T('<button role="tab"> </button>'),fa=T('<p class="sig-label text-[var(--sig-text-muted)]">No type signals</p>'),ga=T('<div class="flex w-full items-center justify-between text-[11px] text-[var(--sig-text)]"><span> </span> <span class="text-[var(--sig-text-muted)]"> </span></div>'),ba=T('<p class="sig-label text-[var(--sig-text-muted)]">No source signals</p>'),xa=T('<div class="flex w-full items-center justify-between text-[11px] text-[var(--sig-text)]"><span> </span> <span class="text-[var(--sig-text-muted)]"> </span></div>'),_a=T('<p class="sig-label text-[var(--sig-text-muted)]">No tags this era</p>'),ha=T('<div class="flex w-full items-center justify-between text-[11px] text-[var(--sig-text)]"><span> </span> <span class="text-[var(--sig-text-muted)]"> </span></div>'),ya=T('<p class="mt-2 sig-label text-[var(--sig-text-muted)]">No memories saved in this era yet.</p>'),Ma=T('<article class="timeline-top-card rounded-lg border border-[var(--sig-border-strong)] bg-[var(--sig-surface-raised)] p-2 svelte-1acbaf"><div class="timeline-top-card-head svelte-1acbaf"><div class="timeline-top-card-icon svelte-1acbaf"> </div> <div class="timeline-top-card-title-wrap svelte-1acbaf"><p class="timeline-top-card-title svelte-1acbaf"> </p> <p class="timeline-top-card-subtitle svelte-1acbaf"> </p></div></div> <p class="timeline-top-card-content mt-1 text-[11px] leading-relaxed text-[var(--sig-text)] line-clamp-4 svelte-1acbaf"> </p> <div class="timeline-top-card-meta mt-auto flex items-center justify-between gap-2 pt-2 text-[11px] text-[var(--sig-text-muted)] svelte-1acbaf"><p class="timeline-top-card-badge svelte-1acbaf"> </p> <p> </p></div></article>'),wa=T('<div class="timeline-top-card-grid mt-2 svelte-1acbaf"></div>'),ka=T('<div class="timeline-stack flex flex-1 min-h-0 flex-col gap-3 svelte-1acbaf"><section class="timeline-hero rounded-xl border border-[var(--sig-border)] p-3 overflow-hidden svelte-1acbaf"><div class="timeline-hero-grid svelte-1acbaf"><div class="min-w-0"><h2 class="timeline-hero-title svelte-1acbaf">Signet Evolution Timeline</h2> <p class="timeline-hero-subtitle svelte-1acbaf">Track added, evolved, and pinned memories across recap eras.</p></div> <div class="timeline-hero-metrics svelte-1acbaf"><div class="timeline-hero-metric svelte-1acbaf"><span class="timeline-hero-metric-label svelte-1acbaf">Agent skills used</span> <strong class="timeline-hero-metric-display svelte-1acbaf"> </strong></div> <div class="timeline-hero-metric svelte-1acbaf"><span class="timeline-hero-metric-label svelte-1acbaf">MCP servers used</span> <strong class="timeline-hero-metric-display svelte-1acbaf"> </strong></div> <div class="timeline-hero-metric svelte-1acbaf"><span class="timeline-hero-metric-label svelte-1acbaf">Average importance</span> <strong class="timeline-hero-metric-display svelte-1acbaf"> </strong></div> <div class="timeline-hero-metric svelte-1acbaf"><span class="timeline-hero-metric-label svelte-1acbaf">Pinned</span> <strong class="timeline-hero-metric-display svelte-1acbaf"> </strong></div></div></div></section> <div class="timeline-content-split flex-1 min-h-0 gap-3 svelte-1acbaf"><section class="timeline-detail-panel flex min-h-0 flex-col gap-3 overflow-x-hidden overflow-y-auto rounded-[10.5px] border-2 border-[var(--sig-border-strong)] bg-[var(--sig-surface)] p-3 svelte-1acbaf" style="--panel-pad: 0.75rem;"><div class="timeline-era-head svelte-1acbaf"><div class="timeline-era-title-row svelte-1acbaf"><p class="sig-heading timeline-era-title svelte-1acbaf"> <span class="timeline-era-title-range svelte-1acbaf"> </span></p> <div class="timeline-era-controls flex items-center gap-1 svelte-1acbaf"><!> <div role="tablist" aria-orientation="horizontal" class="flex items-center gap-1"></div> <!> <!></div></div></div> <div class="timeline-summary-grid svelte-1acbaf"><div class="flex min-h-[56px] items-center justify-center rounded-[6.5px] p-2" style="border: 0.87px solid var(--sig-border-strong); background: var(--sig-surface)"><p class="timeline-summary-line svelte-1acbaf"><span class="sig-heading leading-none"> </span> <span class="timeline-summary-copy svelte-1acbaf">- Added</span></p></div> <div class="flex min-h-[56px] items-center justify-center rounded-[6.5px] p-2" style="border: 0.87px solid var(--sig-border-strong); background: var(--sig-surface)"><p class="timeline-summary-line svelte-1acbaf"><span class="sig-heading leading-none"> </span> <span class="timeline-summary-copy svelte-1acbaf">- Tracked events captured</span></p></div> <div class="flex min-h-[56px] items-center justify-center rounded-[6.5px] p-2" style="border: 0.87px solid var(--sig-border-strong); background: var(--sig-surface)"><p class="timeline-summary-line svelte-1acbaf"><span class="sig-heading leading-none"> </span> <span class="timeline-summary-copy svelte-1acbaf">- Evolved</span></p></div> <div class="flex min-h-[56px] items-center justify-center rounded-[6.5px] p-2" style="border: 0.87px solid var(--sig-border-strong); background: var(--sig-surface)"><p class="timeline-summary-line svelte-1acbaf"><span class="sig-heading leading-none"> </span> <span class="timeline-summary-copy svelte-1acbaf">- Strengthened</span></p></div></div> <div class="timeline-mix-grid svelte-1acbaf"><div class="timeline-mix-card timeline-mix-card--type p-2 svelte-1acbaf"><p class="timeline-mix-header mb-1 svelte-1acbaf">Type mix</p> <!></div> <div class="timeline-mix-card timeline-mix-card--source p-2 svelte-1acbaf"><p class="timeline-mix-header mb-1 svelte-1acbaf">Source mix</p> <!></div> <div class="timeline-mix-card timeline-mix-card--tags p-2 svelte-1acbaf"><p class="timeline-mix-header mb-1 svelte-1acbaf">Top tags</p> <!></div></div></section> <section class="timeline-top-panel rounded-[10.5px] bg-[var(--sig-surface)] p-3 svelte-1acbaf" style="border: 0.87px solid var(--sig-border);"><div class="flex items-center justify-between gap-2"><p class="sig-label text-[var(--sig-text-bright)]">Top Four Memories</p> <p class="text-[11px] text-[var(--sig-text-bright)]"> </p></div> <!></section></div></div>'),Ta=T('<p class="sig-label text-[var(--sig-danger)]"> </p>'),Sa=T('<div class="timeline-shell flex flex-col flex-1 min-h-0 overflow-hidden bg-[var(--sig-bg)] svelte-1acbaf" role="region" aria-label="Memory timeline. Use left and right arrows to move through eras."><!> <div class="flex flex-1 min-h-0 flex-col gap-3 p-3 bg-[var(--sig-bg)]"><!> <!></div></div>');function $a(et,V){Wt(V,!0);const tt="h-8 px-3 rounded-lg border text-[10px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] transition-colors";let X=$(!1),z=$(null),N=$(Z([])),S=$(0),Q=$(Z({})),ee=$(Z({})),te=$(Z({})),I=$(null);const p=P(()=>t(N)[t(S)]??null),ye=P(()=>t(p)?t(Q)[t(p).rangeKey]??0:0);function at(e){return e.sourceBreakdown.filter(l=>Me(l.key)).length}function Me(e){const s=e.trim().toLowerCase();return s?!!(/\bmcp\b/.test(s)||/\btool[-\s]?servers?\b/.test(s)||s.includes("model context protocol")||s.includes("model-context-protocol")||s.includes("modelcontextprotocol")):!1}const we=P(()=>t(p)?Math.max(t(ee)[t(p).rangeKey]??0,at(t(p))):0),ke=P(()=>t(p)?t(te)[t(p).rangeKey]??[]:[]);function Te(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function rt(e){if(Array.isArray(e))return e.filter(s=>typeof s=="string").map(s=>s.trim()).filter(s=>s.length>0);if(typeof e=="string"){const s=e.trim();if(!s)return[];if(s.startsWith("[")&&s.endsWith("]"))try{const l=JSON.parse(s);if(Array.isArray(l))return l.filter(n=>typeof n=="string").map(n=>n.trim()).filter(n=>n.length>0)}catch{}return s.split(",").map(l=>l.trim()).filter(l=>l.length>0)}return[]}function st(e,s,l,n){const A=l.map(i=>i.name.trim().toLowerCase()).filter(i=>i.length>0).map(i=>({name:i,pattern:new RegExp(`\\b${Te(i)}\\b`,"i")})),D=n.flatMap(i=>{const m=[];for(const y of[i.name,i.id]){const M=y.trim().toLowerCase();M.length>0&&m.push({serverId:i.id,pattern:new RegExp(`\\b${Te(M)}\\b`,"i")})}return m}),U=e.map(i=>({bucket:i,skillSet:new Set,mcpSet:new Set,hasMcpSignal:!1,startMs:Date.parse(i.start),endMs:Date.parse(i.end)}));for(const i of s){const m=Date.parse(i.created_at);if(!Number.isFinite(m))continue;const y=rt(i.tags).join(" "),M=[i.content,i.who,i.type,y].filter(g=>typeof g=="string").join(" ").toLowerCase(),L=[i.who,i.type,y].filter(g=>typeof g=="string").join(" ").toLowerCase();for(const g of U){if(m<g.startMs||m>g.endMs)continue;for(const C of A)C.pattern.test(M)&&g.skillSet.add(C.name);let W=!1;for(const C of D)C.pattern.test(M)&&(g.mcpSet.add(C.serverId),W=!0);!W&&Me(L)&&(g.hasMcpSignal=!0)}}const K={},v={};for(const i of U)K[i.bucket.rangeKey]=i.skillSet.size,v[i.bucket.rangeKey]=i.mcpSet.size>0?i.mcpSet.size:i.hasMcpSignal?1:0;return{skillUsage:K,mcpUsage:v}}function H(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?0:e>=1?1:e}function it(e,s){const l=new Map;for(const v of e){const i=Date.parse(v.start),m=Date.parse(v.end);!Number.isFinite(i)||!Number.isFinite(m)||l.set(v.rangeKey,{startMs:i,endMs:m})}const n=l.get("today")??null,A=l.get("last_week")??null;function D(v){const i=l.get(v.rangeKey),m=Date.parse(v.start),y=Date.parse(v.end),M={startMs:Number.isFinite(m)?m:Number.NEGATIVE_INFINITY,endMs:Number.isFinite(y)?y:Number.POSITIVE_INFINITY};if(!i)return M;const L=i.startMs;let g=i.endMs;return v.rangeKey==="last_week"&&n?g=Math.min(g,n.startMs-1):v.rangeKey==="one_month"&&(A?g=Math.min(g,A.startMs-1):n&&(g=Math.min(g,n.startMs-1))),g<L?M:{startMs:L,endMs:g}}const U=e.map(v=>{const i=D(v);return{bucket:v,startMs:i.startMs,endMs:i.endMs,candidates:[]}});for(const v of s){const i=Date.parse(v.created_at);if(Number.isFinite(i))for(const m of U){if(i<m.startMs||i>m.endMs)continue;const y=Math.max(1,m.endMs-m.startMs),M=Math.max(0,Math.min(1,(i-m.startMs)/y)),L=H(v.importance)*100+(v.pinned?24:0)+M*8;m.candidates.push({memory:v,score:L,createdAt:i})}}const K={};for(const v of U)v.candidates.sort((i,m)=>{if(m.score!==i.score)return m.score-i.score;const y=H(i.memory.importance),M=H(m.memory.importance);return M!==y?M-y:m.createdAt!==i.createdAt?m.createdAt-i.createdAt:i.memory.id.localeCompare(m.memory.id)}),K[v.bucket.rangeKey]=v.candidates.slice(0,4).map(i=>i.memory);return K}function q(e=1){t(N).length!==0&&b(S,Math.min(t(N).length-1,t(S)+e),!0)}function O(e=1){t(N).length!==0&&b(S,Math.max(0,t(S)-e),!0)}function ae(e){V.ontimelinegeneratedforchange&&V.ontimelinegeneratedforchange(e)}async function nt(){b(X,!0),b(z,null);try{const e=ra(5e3,0),[s,l,n,A]=await Promise.all([sa({fallbackMemories:e.then(U=>U.memories)}),ia(),na(),e]);b(N,s.buckets,!0),ae(s.generatedFor);const D=st(s.buckets,A.memories,l,n.servers);b(Q,D.skillUsage,!0),b(ee,D.mcpUsage,!0),b(te,it(s.buckets,A.memories),!0),b(S,0),s.error&&b(z,s.error,!0)}catch{b(z,"Failed to load timeline."),b(N,[],!0),ae(""),b(Q,{},!0),b(ee,{},!0),b(te,{},!0)}finally{b(X,!1)}}function ot(e,s){const l={month:"short",day:"numeric",timeZone:"UTC"},n=new Date(e).toLocaleDateString("en-US",l),A=new Date(s).toLocaleDateString("en-US",{...l,year:"numeric"});return`${n} - ${A}`}function lt(e,s){const l=Date.parse(e);if(!Number.isFinite(l))return"Unknown";const n=new Date(l);return s==="today"?n.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",timeZone:"UTC"}):n.toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",timeZone:"UTC"})}function ct(e){return`${Math.round(H(e)*100)}%`}function re(e,s,l){return e===1?s:l}function dt(e){const s=e.split(/[-_.\s]+/).map(l=>l.trim()).filter(l=>l.length>0);return s.length>=2?`${s[0]?.[0]??""}${s[1]?.[0]??""}`.toUpperCase():e.slice(0,2).toUpperCase()||"M"}function vt(e){return e.rangeKey==="last_week"?"Week":e.rangeKey==="one_month"?"Month":"Today"}function mt(e){if(Qe.activeTab!=="timeline")return;const s=e.target;if(s instanceof HTMLElement){const n=s.tagName;if(n==="INPUT"||n==="TEXTAREA"||n==="SELECT"||s.isContentEditable)return}if(s instanceof HTMLElement&&s.hasAttribute("data-memory-tab")){if(e.key==="ArrowDown"){e.preventDefault();const n=t(I)?.querySelector('.timeline-era-controls [role="tablist"] button[aria-selected="true"]');n instanceof HTMLElement&&n.focus()}return}if(s instanceof HTMLElement&&s.closest('.timeline-era-controls [role="tablist"]')){if(e.key==="ArrowUp"){e.preventDefault(),O(e.shiftKey?3:1);const n=t(I)?.querySelector('.timeline-era-controls [role="tablist"] button[aria-selected="true"]');n instanceof HTMLElement&&n.focus();return}if(e.key==="ArrowDown"){e.preventDefault(),q(e.shiftKey?3:1);const n=t(I)?.querySelector('.timeline-era-controls [role="tablist"] button[aria-selected="true"]');n instanceof HTMLElement&&n.focus();return}if(e.key==="ArrowRight"){e.preventDefault(),q(e.shiftKey?3:1);const n=t(I)?.querySelector('.timeline-era-controls [role="tablist"] button[aria-selected="true"]');n instanceof HTMLElement&&n.focus();return}if(e.key==="ArrowLeft"){e.preventDefault(),O(e.shiftKey?3:1);const n=t(I)?.querySelector('.timeline-era-controls [role="tablist"] button[aria-selected="true"]');n instanceof HTMLElement&&n.focus();return}return}if(e.key==="ArrowRight"){e.preventDefault(),q(e.shiftKey?3:1);return}if(e.key==="ArrowLeft"){e.preventDefault(),O(e.shiftKey?3:1);return}if(e.key==="PageDown"){e.preventDefault(),q(3);return}if(e.key==="PageUp"){e.preventDefault(),O(3);return}}Gt(()=>(nt(),()=>{ae("")}));var Y=Sa();Yt("keydown",Zt,mt);var Se=r(Y);oa(Se,{title:"Timeline",children:(e,s)=>{la(e,{group:"memory",get tabs(){return aa},get activeTab(){return Qe.activeTab},onselect:(l,n)=>ta(n)})}});var Ae=c(Se,2),Ee=r(Ae);{var pt=e=>{var s=ma();_(e,s)},ut=e=>{var s=pa();_(e,s)},ft=e=>{var s=ka(),l=r(s),n=r(l),A=c(r(n),2),D=r(A),U=c(r(D),2),K=r(U);a(U),a(D);var v=c(D,2),i=c(r(v),2),m=r(i);a(i),a(v);var y=c(v,2),M=c(r(y),2),L=r(M);a(M),a(y);var g=c(y,2),W=c(r(g),2),C=r(W);a(W),a(g),a(A),a(n),a(l);var De=c(l,2),se=r(De),ie=r(se),Ue=r(ie),ne=r(Ue),Ne=r(ne),Be=c(Ne),xt=r(Be,!0);a(Be),a(ne);var Le=c(ne,2),$e=r(Le);{let o=P(()=>t(S)<=0);he($e,{variant:"outline",size:"sm",class:"h-8 px-2",onclick:()=>O(),get disabled(){return t(o)},title:"Move to newer era",children:(d,x)=>{ca(d,{class:"size-3.5"})},$$slots:{default:!0}})}var oe=c($e,2);G(oe,23,()=>t(N),o=>o.eraIndex,(o,d,x)=>{var f=ua(),w=r(f,!0);a(f),F(h=>{Xt(f,1,`${tt} ${t(x)===t(S)?"border-[var(--sig-accent)] bg-[color-mix(in_srgb,var(--sig-surface-raised)_76%,transparent)] text-[var(--sig-text-bright)]":"border-[var(--sig-border-strong)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text-bright)]"}`,"svelte-1acbaf"),Xe(f,"aria-selected",t(x)===t(S)),Xe(f,"tabindex",t(x)===t(S)?0:-1),u(w,h)},[()=>vt(t(d))]),Qt("click",f,()=>{b(S,t(x),!0)}),_(o,f)}),a(oe);var Ie=c(oe,2);{let o=P(()=>t(S)>=t(N).length-1);he(Ie,{variant:"outline",size:"sm",class:"h-8 px-2",onclick:()=>q(),get disabled(){return t(o)},title:"Move to older era",children:(d,x)=>{da(d,{class:"size-3.5"})},$$slots:{default:!0}})}var _t=c(Ie,2);he(_t,{variant:"ghost",size:"sm",class:"h-8 px-2 sig-label",onclick:()=>{b(S,0)},title:"Jump to today",children:(o,d)=>{va(o,{class:"size-3.5"})},$$slots:{default:!0}}),a(Le),a(Ue),a(ie);var le=c(ie,2),ce=r(le),Ke=r(ce),Ce=r(Ke),ht=r(Ce,!0);a(Ce),J(2),a(Ke),a(ce);var de=c(ce,2),je=r(de),Fe=r(je),yt=r(Fe,!0);a(Fe),J(2),a(je),a(de);var ve=c(de,2),Re=r(ve),Pe=r(Re),Mt=r(Pe,!0);a(Pe),J(2),a(Re),a(ve);var ze=c(ve,2),He=r(ze),qe=r(He),wt=r(qe,!0);a(qe),J(2),a(He),a(ze),a(le);var Oe=c(le,2),me=r(Oe),kt=c(r(me),2);{var Tt=o=>{var d=fa();_(o,d)},St=o=>{var d=be(),x=xe(d);G(x,17,()=>t(p).typeBreakdown,_e,(f,w)=>{var h=ga(),k=r(h),j=r(k,!0);a(k);var E=c(k,2),B=r(E,!0);a(E),a(h),F(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};R(kt,o=>{t(p).typeBreakdown.length===0?o(Tt):o(St,-1)})}a(me);var pe=c(me,2),At=c(r(pe),2);{var Et=o=>{var d=ba();_(o,d)},Dt=o=>{var d=be(),x=xe(d);G(x,17,()=>t(p).sourceBreakdown,_e,(f,w)=>{var h=xa(),k=r(h),j=r(k,!0);a(k);var E=c(k,2),B=r(E,!0);a(E),a(h),F(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};R(At,o=>{t(p).sourceBreakdown.length===0?o(Et):o(Dt,-1)})}a(pe);var We=c(pe,2),Ut=c(r(We),2);{var Nt=o=>{var d=_a();_(o,d)},Bt=o=>{var d=be(),x=xe(d);G(x,17,()=>t(p).topTags,_e,(f,w)=>{var h=ha(),k=r(h),j=r(k,!0);a(k);var E=c(k,2),B=r(E,!0);a(E),a(h),F(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};R(Ut,o=>{t(p).topTags.length===0?o(Nt):o(Bt,-1)})}a(We),a(Oe),a(se);var Ge=c(se,2),ue=r(Ge),Ye=c(r(ue),2),Lt=r(Ye,!0);a(Ye),a(ue);var $t=c(ue,2);{var It=o=>{var d=ya();_(o,d)},Kt=o=>{var d=wa();G(d,21,()=>t(ke),x=>x.id,(x,f)=>{var w=Ma(),h=r(w),k=r(h),j=r(k,!0);a(k);var E=c(k,2),B=r(E),Ct=r(B,!0);a(B);var Ze=c(B,2),jt=r(Ze,!0);a(Ze),a(E),a(h);var fe=c(h,2),Ft=r(fe,!0);a(fe);var Je=c(fe,2),ge=r(Je),Rt=r(ge);a(ge);var Ve=c(ge,2),Pt=r(Ve,!0);a(Ve),a(Je),a(w),F((zt,Ht,qt,Ot)=>{u(j,zt),u(Ct,t(f).who||"Unknown source"),u(jt,Ht),u(Ft,t(f).content),u(Rt,`imp ${qt??""}`),u(Pt,Ot)},[()=>dt(t(f).who||t(f).type||"memory"),()=>t(f).type?.trim()||"memory",()=>ct(t(f).importance),()=>lt(t(f).created_at,t(p).rangeKey)]),_(x,w)}),a(d),_(o,d)};R($t,o=>{t(ke).length===0?o(It):o(Kt,-1)})}a(Ge),a(De),a(s),F((o,d,x,f,w)=>{u(K,`${t(ye)??""} ${o??""}`),u(m,`${t(we)??""} ${d??""}`),u(L,`${x??""}% avg`),u(C,`${t(p).pinned??""} ${f??""}`),u(Ne,`${t(p).label??""}: `),u(xt,w),u(ht,t(p).memoriesAdded),u(yt,t(p).trackedEvents),u(Mt,t(p).evolved),u(wt,t(p).strengthened),u(Lt,t(p).label)},[()=>re(t(ye),"skill","skills"),()=>re(t(we),"server","servers"),()=>Math.round(H(t(p).avgImportance)*100),()=>re(t(p).pinned,"card","cards"),()=>ot(t(p).start,t(p).end)]),_(e,s)};R(Ee,e=>{t(X)?e(pt):t(N).length===0?e(ut,1):t(p)&&e(ft,2)})}var gt=c(Ee,2);{var bt=e=>{var s=Ta(),l=r(s,!0);a(s),F(()=>u(l,t(z))),_(e,s)};R(gt,e=>{t(z)&&e(bt)})}a(Ae),a(Y),Jt(Y,e=>b(I,e),()=>t(I)),_(et,Y),Vt()}ea(["click"]);export{$a as default};
|