signetai 0.115.9 → 0.115.10
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/{BwyxZb5o.js → BCd-PvSp.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DZGIgjAl.js → BKbBtrgJ.js} +1 -1
- package/dashboard/_app/immutable/chunks/{19iX1bp-.js → BLMUE2qb.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BQVc7qHI.js → BLMvDy5P.js} +1 -1
- package/dashboard/_app/immutable/chunks/{f5ttx84o.js → BRkZzqTZ.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BLK9IgCn.js → BTu_CY7r.js} +2 -2
- package/dashboard/_app/immutable/chunks/{YEuLvD5u.js → BYKIa_09.js} +1 -1
- package/dashboard/_app/immutable/chunks/{ch-8x2L8.js → BZrHYGwj.js} +1 -1
- package/dashboard/_app/immutable/chunks/{B5Pfpxwf.js → B_mSOUsF.js} +1 -1
- package/dashboard/_app/immutable/chunks/{L9-VTOak.js → BbttA9f6.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DnfdgoiR.js → BdGdyYKO.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BAgkxg4R.js → BlLws3Vq.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DbikDzsi.js → BmU8gAGu.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CpSJBnLl.js → BvDrzbO0.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DoJDbXBk.js → CD6ERZNE.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CidcdTE0.js → CDR_XOkN.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BZ7NnuGc.js → CEe-JjKs.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DfAbgayc.js → CJhkQMLy.js} +2 -2
- package/dashboard/_app/immutable/chunks/{CFKZwAMg.js → C_BuvAks.js} +1 -1
- package/dashboard/_app/immutable/chunks/{xBABAPdx.js → CjJAIUBo.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BueBss19.js → Cm8VB2RJ.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CRC1vwZF.js → CnYmpBRx.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CMSsIgwa.js → CnumUHFA.js} +1 -1
- package/dashboard/_app/immutable/chunks/{D5WRUL3G.js → CxYi9MIC.js} +1 -1
- package/dashboard/_app/immutable/chunks/{D9pOVy_T.js → D-J53IxA.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CHQDG4XD.js → D3ZJgYKx.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CU5n_zQM.js → D8kmoPDE.js} +1 -1
- package/dashboard/_app/immutable/chunks/{dd3xCvNI.js → DDhnMV_u.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DMR6P2Mn.js → DE7ORnI5.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CrEMchup.js → DFvaomsT.js} +1 -1
- package/dashboard/_app/immutable/chunks/{L1pu-U9z.js → DPzis50U.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Co2iV68L.js → DQTEYCC2.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BMEWpomg.js → Dj_gooHS.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DPi0ebwx.js → DjmC2qz8.js} +1 -1
- package/dashboard/_app/immutable/chunks/{D9GTXta6.js → DpyXIAgh.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BJn8FzvA.js → DrHcFsIP.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Mviyxtvu.js → DvCAVmB4.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Dj_nUmAt.js → Tl8l9n8c.js} +1 -1
- package/dashboard/_app/immutable/chunks/{Ei0Ugvt1.js → UQxmF9ZU.js} +1 -1
- package/dashboard/_app/immutable/chunks/{GTFO4PKz.js → UmECauCP.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DRwzTSt-.js → XjqEWidT.js} +1 -1
- package/dashboard/_app/immutable/chunks/{nXQVsJ8u.js → cuUS9hz6.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CWGvexsg.js → eOLQZRXf.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DyRCS2ka.js → f4eGBcuM.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CSc0Ojrx.js → oLP5ZJ3g.js} +3 -3
- package/dashboard/_app/immutable/chunks/{eXRoPraj.js → vc0f6S63.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CoeNiH1V.js → w1Z1qSFt.js} +1 -1
- package/dashboard/_app/immutable/entry/{app.jDfQc0UW.js → app.gq48lr-V.js} +2 -2
- package/dashboard/_app/immutable/entry/start.D3ZyMNjJ.js +1 -0
- package/dashboard/_app/immutable/nodes/{1.BuCmtngW.js → 1.lXbTDoEE.js} +1 -1
- package/dashboard/_app/immutable/nodes/2.Dz5xGsCy.js +1 -0
- package/dashboard/_app/version.json +1 -1
- package/dashboard/index.html +6 -6
- package/package.json +1 -1
- package/dashboard/_app/immutable/entry/start.BUcW9Ejz.js +0 -1
- package/dashboard/_app/immutable/nodes/2.BUw014V7.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as oa,g as Kt,o as Q,e as ma,Q as _a,v as n,c as Rt,f as E,h as I,j as r,l as t,t as a,k as $,y as m,z as u,b as l,i as e,w as D,x as H,B as Ut,O as dt,d as va,u as p,D as de,A as $t,m as c,P as xa,aN as Kr,aO as Wr,K as ba,q as tr,ag as ar,a9 as mr,aP as Is,s as zr,r as qr,aQ as Cs,aR as Ls,aS as Yr,ab as Fa,ac as jr,N as Oa,aT as Rr,n as Ka,I as ss,a2 as Ts,$ as ls,ak as cr,aU as Ms}from"./BvuHLZ8E.js";import{b4 as Br,W as Ur,B as vt,$ as Fr,t as Dt,b5 as is,m as Rs,b6 as As,b7 as Es,b8 as Ns,b9 as Ds,ba as zs,ab as qs,bb as js,bc as Bs,c as Or,bd as Us,be as Fs,bf as Os,bg as Vs,bh as Gs,bi as Hs,bj as Ks,bk as Ws,bl as Ys,l as Qs,bm as ns,bn as Zs,bo as Xs,bp as Js,bq as el,br as tl,bs as al,bt as rl,n as sl,ae as Ir}from"./
|
|
1
|
+
import{p as oa,g as Kt,o as Q,e as ma,Q as _a,v as n,c as Rt,f as E,h as I,j as r,l as t,t as a,k as $,y as m,z as u,b as l,i as e,w as D,x as H,B as Ut,O as dt,d as va,u as p,D as de,A as $t,m as c,P as xa,aN as Kr,aO as Wr,K as ba,q as tr,ag as ar,a9 as mr,aP as Is,s as zr,r as qr,aQ as Cs,aR as Ls,aS as Yr,ab as Fa,ac as jr,N as Oa,aT as Rr,n as Ka,I as ss,a2 as Ts,$ as ls,ak as cr,aU as Ms}from"./BvuHLZ8E.js";import{b4 as Br,W as Ur,B as vt,$ as Fr,t as Dt,b5 as is,m as Rs,b6 as As,b7 as Es,b8 as Ns,b9 as Ds,ba as zs,ab as qs,bb as js,bc as Bs,c as Or,bd as Us,be as Fs,bf as Os,bg as Vs,bh as Gs,bi as Hs,bj as Ks,bk as Ws,bl as Ys,l as Qs,bm as ns,bn as Zs,bo as Xs,bp as Js,bq as el,br as tl,bs as al,bt as rl,n as sl,ae as Ir}from"./oLP5ZJ3g.js";import{b as Qa,C as Za,a as Xa}from"./B356XG_V.js";import{I as pa}from"./CxYi9MIC.js";import{c as $a,S as Sa,a as Pa,b as pt}from"./UmECauCP.js";import{T as Vr}from"./BYKIa_09.js";import{C as Da}from"./vc0f6S63.js";import{L as Ra}from"./BmU8gAGu.js";import{R as Qr}from"./CEe-JjKs.js";import{B as Wa}from"./CnYmpBRx.js";import{g as ll}from"./CppT_YPm.js";const Cr=["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 il(i){let s=0;for(const o of i)s=s*31+o.charCodeAt(0)&65535;return s}function Ar(i){const s=i.split(/[-_.\s]+/).filter(Boolean);return s.length>=2?`${s[0]?.[0]??""}${s[1]?.[0]??""}`.toUpperCase():i.slice(0,2).toUpperCase()}function Er(i){return Cr[Math.abs(il(i))%Cr.length]??Cr[0]}function nl(i){if(!i)return null;const s=i.match(/^https?:\/\/(?:www\.)?github\.com\/([a-zA-Z0-9._-]+)/);return s?.[1]?`https://github.com/${s[1]}.png?size=40`:null}function ol(i,s){return i?i==="modelcontextprotocol/servers"?"https://github.com/modelcontextprotocol.png?size=40":i==="github"&&s?.includes("/")?`https://github.com/${s.split("/")[0]}.png?size=40`:null:null}var vl=c('<span class="detail-badge detail-badge-official svelte-4mjdk4">official</span>'),dl=c('<span class="detail-rank svelte-4mjdk4"> </span>'),cl=c('<div class="detail-badges svelte-4mjdk4"><span class="detail-badge svelte-4mjdk4"> </span> <span class="detail-badge svelte-4mjdk4"> </span> <!> <!></div>'),ul=c('<div class="detail-action svelte-4mjdk4"><!></div>'),fl=c('<a class="detail-link svelte-4mjdk4" target="_blank" rel="noopener">View source</a>'),gl=c("<span>Signet Reviews</span> <!>",1),pl=c("<!> <!> <!> <!> <!>",1),ml=c("<!> <!>",1),_l=c('<p class="review-muted svelte-4mjdk4">Loading reviews...</p>'),hl=c('<p class="review-muted svelte-4mjdk4">No reviews yet for this app.</p>'),yl=c('<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>'),bl=c('<div class="review-list svelte-4mjdk4"></div>'),xl=c('<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>'),wl=c("<!> <!>",1),kl=c('<p class="detail-description svelte-4mjdk4"> </p> <!> <!>',1),$l=c('<p class="review-muted svelte-4mjdk4">Select a server to view details.</p>'),Sl=c('<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 Pl(i,s){oa(s,!0);const o="signet:marketplace:reviews:display-name";let x=Kt(s,"canInstall",3,!0),w=Kt(s,"installBusy",3,!1),X=Kt(s,"removeBusy",3,!1),M=Q("top"),U=Q(!1),L=Q(ma([])),ie=Q(!0),J=Q(ma(we())),Z=Q(5),ue=Q(""),z=Q(""),ee=Q(!1);const F=p(()=>`${e(Z)}/5`),ve=p(()=>{const ae=[...e(L)];return e(M)==="top"?ae.sort((ke,ge)=>ge.rating===ke.rating?ge.updatedAt.localeCompare(ke.updatedAt):ge.rating-ke.rating):e(M)==="good"?ae.filter(ke=>ke.rating>=4).sort((ke,ge)=>ge.updatedAt.localeCompare(ke.updatedAt)):e(M)==="bad"?ae.filter(ke=>ke.rating<=2).sort((ke,ge)=>ge.updatedAt.localeCompare(ke.updatedAt)):ae.sort((ke,ge)=>ge.updatedAt.localeCompare(ke.updatedAt))});_a(()=>{if(!s.open||!s.item?.targetId){n(L,[],!0);return}n(M,"top"),Ke(s.item.targetId)});function we(){try{return localStorage.getItem(o)??""}catch{return""}}function fe(ae){try{localStorage.setItem(o,ae)}catch{}}function Me(ae){return ae==="1"?1:ae==="2"?2:ae==="3"?3:ae==="4"?4:5}async function Ke(ae){n(U,!0);try{const ke=await Br({targetType:"mcp",targetId:ae,limit:100});n(L,ke.reviews,!0)}finally{n(U,!1)}}async function Ze(){if(!s.item?.targetId)return;if(!s.canReview){Dt("Install or use this app before leaving a review.","error");return}const ae=e(J).trim(),ke=e(ue).trim(),ge=e(z).trim();if(!ae||!ke||!ge){Dt("Display name, title, and review are required","error");return}n(ee,!0);try{const je=await is({targetType:"mcp",targetId:s.item.targetId,displayName:ae,rating:e(Z),title:ke,body:ge});if(!je.success){Dt(je.error??"Failed to submit review","error");return}fe(ae),n(ue,""),n(z,""),Dt("Review posted","success"),await Ke(s.item.targetId)}finally{n(ee,!1)}}var De=Rt(),ze=E(De);I(ze,()=>Fr,(ae,ke)=>{ke(ae,{get open(){return s.open},onOpenChange:ge=>{ge||s.onclose()},children:(ge,je)=>{var Ce=Rt(),nt=E(Ce);I(nt,()=>Ur,(Lt,Ft)=>{Ft(Lt,{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:(h,O)=>{var Oe=Sl(),_t=E(Oe),zt=r(_t),Qt=r(zt),bt=r(Qt,!0);t(Qt);var qe=a(Qt,2);{var ht=Y=>{var pe=cl(),me=r(pe),Je=r(me,!0);t(me);var Ve=a(me,2),We=r(Ve,!0);t(Ve);var Re=a(Ve,2);{var $e=N=>{var _e=vl();l(N,_e)};$(Re,N=>{s.item.official&&N($e)})}var tt=a(Re,2);{var k=N=>{var _e=dl(),g=r(_e);t(_e),m(()=>u(g,`#${s.item.popularityRank??""}`)),l(N,_e)};$(tt,N=>{s.item.popularityRank!==null&&N(k)})}t(pe),m(()=>{u(Je,s.item.sourceLabel),u(We,s.item.category)}),l(Y,pe)};$(qe,Y=>{s.item&&Y(ht)})}t(zt);var Zt=a(zt,2);{var St=Y=>{var pe=ul(),me=r(pe);{var Je=Re=>{vt(Re,{variant:"outline",size:"sm",class:"rounded-lg 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 X()},children:($e,tt)=>{D();var k=H();m(()=>u(k,X()?"...":"Remove")),l($e,k)},$$slots:{default:!0}})},Ve=Re=>{vt(Re,{variant:"outline",size:"sm",class:"rounded-lg 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 w()},children:($e,tt)=>{D();var k=H();m(()=>u(k,w()?"...":"Install")),l($e,k)},$$slots:{default:!0}})},We=Re=>{vt(Re,{variant:"outline",size:"sm",class:"rounded-lg 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:($e,tt)=>{D();var k=H("Install disabled");l($e,k)},$$slots:{default:!0}})};$(me,Re=>{s.item.serverId?Re(Je):s.item.catalogEntry&&x()?Re(Ve,1):s.item.catalogEntry&&Re(We,2)})}t(pe),l(Y,pe)};$(Zt,Y=>{s.item&&Y(St)})}t(_t);var it=a(_t,2),te=r(it);{var S=Y=>{var pe=kl(),me=E(pe),Je=r(me,!0);t(me);var Ve=a(me,2);{var We=$e=>{var tt=fl();m(()=>de(tt,"href",s.item.sourceUrl)),l($e,tt)};$(Ve,$e=>{s.item.sourceUrl&&$e(We)})}var Re=a(Ve,2);I(Re,()=>Qa,($e,tt)=>{tt($e,{class:"reviews-section",get open(){return e(ie)},set open(k){n(ie,k,!0)},children:(k,N)=>{var _e=wl(),g=E(_e);I(g,()=>Za,(be,Xe)=>{Xe(be,{class:"reviews-trigger",children:(Le,f)=>{var _=gl(),B=a(E(_),2);{let V=p(()=>`size-3 text-[var(--sig-text-muted)] transition-transform ${e(ie)?"rotate-180":""}`);Da(B,{get class(){return e(V)}})}l(Le,_)},$$slots:{default:!0}})});var A=a(g,2);I(A,()=>Xa,(be,Xe)=>{Xe(be,{children:(Le,f)=>{var _=xl(),B=r(_),V=r(B);pa(V,{class:"review-input",placeholder:"Display name",get value(){return e(J)},oninput:P=>{n(J,P.currentTarget.value,!0)}});var Ae=a(V,2),Se=r(Ae);{let P=p(()=>String(e(Z)));I(Se,()=>$a,(re,Ue)=>{Ue(re,{type:"single",get value(){return e(P)},onValueChange:ct=>{n(Z,Me(ct??"5"),!0)},children:(ct,At)=>{var Pe=ml(),oe=E(Pe);I(oe,()=>Sa,(Pt,mt)=>{mt(Pt,{class:"review-rating",children:(Et,Wt)=>{D();var ut=H();m(()=>u(ut,e(F))),l(Et,ut)},$$slots:{default:!0}})});var se=a(oe,2);I(se,()=>Pa,(Pt,mt)=>{mt(Pt,{class:"review-rating-content",children:(Et,Wt)=>{var ut=pl(),yt=E(ut);I(yt,()=>pt,(Gt,ce)=>{ce(Gt,{value:"5",label:"5/5",class:"review-rating-item"})});var rt=a(yt,2);I(rt,()=>pt,(Gt,ce)=>{ce(Gt,{value:"4",label:"4/5",class:"review-rating-item"})});var G=a(rt,2);I(G,()=>pt,(Gt,ce)=>{ce(Gt,{value:"3",label:"3/5",class:"review-rating-item"})});var ot=a(G,2);I(ot,()=>pt,(Gt,ce)=>{ce(Gt,{value:"2",label:"2/5",class:"review-rating-item"})});var ft=a(ot,2);I(ft,()=>pt,(Gt,ce)=>{ce(Gt,{value:"1",label:"1/5",class:"review-rating-item"})}),l(Et,ut)},$$slots:{default:!0}})}),l(ct,Pe)},$$slots:{default:!0}})})}var et=a(Se,2);pa(et,{class:"review-input",placeholder:"Review title",get value(){return e(ue)},oninput:P=>{n(ue,P.currentTarget.value,!0)}}),t(Ae);var at=a(Ae,2);Vr(at,{class:"review-textarea",rows:3,placeholder:"What worked? What should improve?",get value(){return e(z)},oninput:P=>{n(z,P.currentTarget.value,!0)}});var d=a(at,2),R=a(r(d),2);{let P=p(()=>e(ee)||!s.canReview);vt(R,{variant:"outline",size:"sm",class:"review-submit",onclick:()=>{Ze()},get disabled(){return e(P)},children:(re,Ue)=>{D();var ct=H();m(()=>u(ct,e(ee)?"Posting...":"Post review")),l(re,ct)},$$slots:{default:!0}})}t(d),t(B);var q=a(B,2),j=r(q);let y;var C=a(j,2);let T;var K=a(C,2);let le;var Ie=a(K,2);let Ge;t(q);var Ee=a(q,2);{var xe=P=>{var re=_l();l(P,re)},He=P=>{var re=hl();l(P,re)},Be=P=>{var re=bl();$t(re,21,()=>e(ve),Ue=>Ue.id,(Ue,ct)=>{var At=yl(),Pe=r(At),oe=r(Pe,!0);t(Pe);var se=a(Pe,2),Pt=r(se);t(se);var mt=a(se,2),Et=r(mt,!0);t(mt),t(At),m(()=>{u(oe,e(ct).title),u(Pt,`${e(ct).displayName??""} · ${e(ct).rating??""}/5`),u(Et,e(ct).body)}),l(Ue,At)}),t(re),l(P,re)};$(Ee,P=>{e(U)?P(xe):e(ve).length===0?P(He,1):P(Be,-1)})}t(_),m(()=>{y=Ut(j,1,"review-filter svelte-4mjdk4",null,y,{active:e(M)==="top"}),T=Ut(C,1,"review-filter svelte-4mjdk4",null,T,{active:e(M)==="good"}),le=Ut(K,1,"review-filter svelte-4mjdk4",null,le,{active:e(M)==="bad"}),Ge=Ut(Ie,1,"review-filter svelte-4mjdk4",null,Ge,{active:e(M)==="all"})}),dt("click",j,()=>n(M,"top")),dt("click",C,()=>n(M,"good")),dt("click",K,()=>n(M,"bad")),dt("click",Ie,()=>n(M,"all")),l(Le,_)},$$slots:{default:!0}})}),l(k,_e)},$$slots:{default:!0}})}),m(()=>u(Je,s.item.description||"No description available.")),l(Y,pe)},W=Y=>{var pe=$l();l(Y,pe)};$(te,Y=>{s.item?Y(S):Y(W,-1)})}t(it),m(()=>u(bt,s.item?.name??"Tool Server")),l(h,Oe)},$$slots:{default:!0}})}),l(ge,Ce)},$$slots:{default:!0}})}),l(i,De),va()}xa(["click"]);const b=ma({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 rr(i){return i instanceof Error&&i.message?i.message:String(i)}function Il(i,s){const o=[...i];switch(s){case"name":return o.sort((x,w)=>x.name.localeCompare(w.name));case"official":return o.sort((x,w)=>x.official&&!w.official?-1:!x.official&&w.official?1:x.popularityRank-w.popularityRank);default:return o.sort((x,w)=>x.popularityRank-w.popularityRank)}}function Cl(i){const s=b.query.trim().toLowerCase();return i.filter(o=>b.category!=="all"&&o.category!==b.category||b.source!=="all"&&o.source!==b.source?!1:s?o.name.toLowerCase().includes(s)||o.description.toLowerCase().includes(s)||o.id.toLowerCase().includes(s):!0)}function Ll(){const i=new Set(["all"]);for(const s of b.catalog)i.add(s.category);return Array.from(i)}function Tl(){return["all","mcpservers.org","modelcontextprotocol/servers","github"]}function Ml(){return Il(Cl(b.catalog),b.sortBy)}async function _r(){b.loadingInstalled=!0,b.installedError=null;try{const i=await Rs();b.installed=i.servers}catch(i){b.installed=[],b.installedError=rr(i)}finally{b.loadingInstalled=!1}}async function Nr(i=5){if(!b.catalogLoaded){b.catalogLoading=!0,b.catalogError=null;try{const s=await As(i);b.catalog=s.results,b.catalogTotal=s.total,b.catalogLoaded=!0}catch(s){b.catalogError=rr(s)}finally{b.catalogLoading=!1}}}async function Ja(i=!1){b.toolsLoading=!0,b.toolsError=null;try{const s=await Es(i);b.tools=s.tools,b.serverHealth=s.servers}catch(s){b.tools=[],b.serverHealth=[],b.toolsError=rr(s)}finally{b.toolsLoading=!1}}async function Rl(i,s){b.installingId=i.id;try{const o=await Ds({id:i.catalogId,source:i.source,alias:s?.alias,config:s?.config});return o.success?(Dt("Tool Server installed","success"),await Promise.all([_r(),Ja(!0)]),b.catalog=b.catalog.map(x=>x.id===i.id?{...x,installed:!0}:x),!0):(Dt(o.error??"Install failed","error"),!1)}catch(o){return Dt(rr(o),"error"),!1}finally{b.installingId=null}}async function Lr(i){b.removingId=i;try{const s=b.installed.find(x=>x.id===i),o=await Ns(i);if(o.success){Dt("Tool Server removed","success"),b.installed=b.installed.filter(w=>w.id!==i),await Ja(!0);const x=s?.catalogId&&s.source!=="manual"?`${s.source}:${s.catalogId}`:null;x&&(b.catalog=b.catalog.map(w=>w.id===x?{...w,installed:!1}:w))}else Dt(o.error??"Remove failed","error")}catch(s){Dt(rr(s),"error")}finally{b.removingId=null}}var Al=c('<p class="sheet-subtitle svelte-1n2gzyy"> </p>'),El=c('<p class="muted svelte-1n2gzyy">Select a server to configure.</p>'),Nl=c('<p class="muted svelte-1n2gzyy">Loading recommended configuration...</p>'),Dl=c('<a class="source-link svelte-1n2gzyy" target="_blank" rel="noopener">View source README</a>'),zl=c('<div class="inline-alert svelte-1n2gzyy"> </div>'),ql=c("<!> <!>",1),jl=c("<!> <!>",1),Bl=c("<option> </option>"),Ul=c('<div class="row-item svelte-1n2gzyy"><!> <!> <select class="field-select row-secret"><option>Plain value</option><!></select> <!></div>'),Fl=c('<div class="inline-hint svelte-1n2gzyy">No secrets found. Add secrets in the Secrets tab to map sensitive values.</div>'),Ol=c('<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),Vl=c("<option> </option>"),Gl=c('<div class="row-item svelte-1n2gzyy"><!> <!> <select class="field-select row-secret"><option>Plain value</option><!></select> <!></div>'),Hl=c('<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),Kl=c('<div class="inline-alert svelte-1n2gzyy"> </div>'),Wl=c('<div class="test-tools svelte-1n2gzyy"> </div>'),Yl=c('<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),Ql=c('<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 Zl(i,s){oa(s,!0);const o="secret://";let x=Q(!1),w=Q(null),X=Q(""),M=Q(""),U=Q(""),L=Q(!1),ie=Q(""),J=Q("stdio"),Z=Q("20000"),ue=Q(""),z=Q(""),ee=Q(""),F=Q(ma([])),ve=Q(""),we=Q(ma([])),fe=Q(ma([])),Me=Q(!1),Ke=Q("idle"),Ze=Q(""),De=Q(ma([])),ze=Q(!1),ae=Q(null);const ke=p(()=>e(J)==="http"?"http":"stdio"),ge=p(()=>s.entry?s.entry.source==="modelcontextprotocol/servers"?"MCP GitHub":"MCP Registry":"");_a(()=>{!s.open||!s.entry||e(X)!==s.entry.id&&(n(X,s.entry.id,!0),h(s.entry))}),_a(()=>{s.open||(n(X,""),n(x,!1),n(w,null),n(Ke,"idle"),n(Ze,""),n(De,[],!0),n(ae,null))});function je(S){return S.startsWith(o)?S.slice(o.length).trim():""}function Ce(S,W){const Y=je(W);return Y?{key:S,value:"",secretName:Y}:{key:S,value:W,secretName:""}}function nt(S){return S.secretName.trim().length>0?`${o}${S.secretName.trim()}`:S.value}function Lt(S){const W=Object.entries(S).map(([Y,pe])=>Ce(Y,pe));return W.length>0?W:[{key:"",value:"",secretName:""}]}function Ft(S){if(n(J,S.transport,!0),n(Z,String(S.timeoutMs),!0),S.transport==="stdio"){n(ue,S.command,!0),n(z,S.args.join(`
|
|
3
3
|
`),!0),n(ee,S.cwd??"",!0),n(F,Lt(S.env),!0),n(ve,""),n(we,[{key:"",value:"",secretName:""}],!0);return}n(ve,S.url,!0),n(we,Lt(S.headers),!0),n(ue,""),n(z,""),n(ee,""),n(F,[{key:"",value:"",secretName:""}],!0)}async function h(S){n(x,!0),n(w,null),n(ae,null),n(Ke,"idle"),n(Ze,""),n(De,[],!0),n(ie,S.name,!0),n(M,S.description,!0),n(U,""),n(L,!1),n(J,"stdio"),n(Z,"20000"),n(ue,""),n(z,""),n(ee,""),n(F,[{key:"",value:"",secretName:""}],!0),n(ve,""),n(we,[{key:"",value:"",secretName:""}],!0),n(Me,!0);const[W,Y]=await Promise.all([zs(S.catalogId,S.source),qs()]);if(n(fe,Y,!0),n(Me,!1),!W){n(w,"Failed to load recommended config for this server."),n(x,!1);return}n(M,W.description||S.description,!0),n(U,W.githubUrl??"",!0),W.defaultConfig?(n(L,!0),Ft(W.defaultConfig)):n(w,"No standard config was found. You can still set one manually below."),n(x,!1)}function O(S){const W={};for(const Y of S){const pe=Y.key.trim();if(pe.length===0)continue;const me=nt(Y).trim();me.length!==0&&(W[pe]=me)}return W}function Oe(){const S=Number(e(Z));if(!Number.isFinite(S)||S<=0)return{config:null,error:"Timeout must be a positive number."};if(e(J)==="stdio"){const Y=e(ue).trim();if(Y.length===0)return{config:null,error:"Command is required for stdio transport."};const pe=e(z).split(`
|
|
4
4
|
`).map(me=>me.trim()).filter(me=>me.length>0);return{config:{transport:"stdio",command:Y,args:pe,env:O(e(F)),cwd:e(ee).trim()||void 0,timeoutMs:S}}}const W=e(ve).trim();if(W.length===0)return{config:null,error:"URL is required for HTTP transport."};try{new URL(W)}catch{return{config:null,error:"URL must be a valid absolute URL."}}return{config:{transport:"http",url:W,headers:O(e(we)),timeoutMs:S}}}function _t(S){return S==="http"?"http":"stdio"}function zt(S,W,Y){const pe=S[W];pe&&(pe.value=Y,Y.trim().length>0&&(pe.secretName=""))}function Qt(){n(F,[...e(F),{key:"",value:"",secretName:""}],!0)}function bt(S){n(F,e(F).filter((W,Y)=>Y!==S),!0),e(F).length===0&&n(F,[{key:"",value:"",secretName:""}],!0)}function qe(){n(we,[...e(we),{key:"",value:"",secretName:""}],!0)}function ht(S){n(we,e(we).filter((W,Y)=>Y!==S),!0),e(we).length===0&&n(we,[{key:"",value:"",secretName:""}],!0)}async function Zt(){n(ae,null),n(Ke,"running"),n(Ze,"Testing MCP server connection..."),n(De,[],!0);const S=Oe();if(!S.config){n(Ke,"error"),n(Ze,S.error??"Invalid config.",!0),n(ae,S.error??"Invalid config.",!0);return}const W=await js({config:S.config});if(W.success){n(Ke,"success"),n(De,W.tools??[],!0),n(Ze,`Connection succeeded${typeof W.toolCount=="number"?` (${W.toolCount} tools)`:""}.`);return}n(Ke,"error"),n(Ze,W.error??"Connection test failed.",!0)}async function St(){if(!s.entry)return;n(ae,null);const S=Oe();if(!S.config){n(ae,S.error??"Invalid config.",!0);return}n(ze,!0);const W=await Rl(s.entry,{alias:e(ie).trim()||void 0,config:S.config});n(ze,!1),W&&s.onclose()}var it=Rt(),te=E(it);I(te,()=>Fr,(S,W)=>{W(S,{get open(){return s.open},onOpenChange:Y=>{Y||s.onclose()},children:(Y,pe)=>{var me=Rt(),Je=E(me);I(Je,()=>Ur,(Ve,We)=>{We(Ve,{side:"right",class:`!w-[560px] !max-w-[96vw] !bg-[var(--sig-surface)]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p,s as c,c as i,f as d,a as h,n as l,b as m,d as f,r as u}from"./BvuHLZ8E.js";import{I as $}from"./
|
|
1
|
+
import{p,s as c,c as i,f as d,a as h,n as l,b as m,d as f,r as u}from"./BvuHLZ8E.js";import{I as $}from"./oLP5ZJ3g.js";function C(o,s){p(s,!0);let r=u(s,["$$slots","$$events","$$legacy"]);const t=[["path",{d:"m9 18 6-6-6-6"}]];$(o,c({name:"chevron-right"},()=>r,{get iconNode(){return t},children:(a,g)=>{var e=i(),n=d(e);h(n,()=>s.children??l),m(a,e)},$$slots:{default:!0}})),f()}export{C};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as ir,o as S,e as cr,q as dr,v as s,Q as vr,i as t,j as n,t as l,h as T,f as z,w as oe,x as M,y as O,z as u,b as i,A as we,c as $e,K as Ve,u as J,l as o,k as K,B as ge,O as gr,d as ur,U as yt,m as x,P as fr}from"./BvuHLZ8E.js";import{f as mr,n as pr,E as xr,B as qe,A as Lt,o as wt}from"./CSc0Ojrx.js";import{P as _r}from"./BEjeM6IF.js";import{T as br}from"./Cz09eUOk.js";import{C as hr}from"./BQVc7qHI.js";import{S as yr}from"./D9pOVy_T.js";import{S as Me,a as Ge,b as le,c as He}from"./GTFO4PKz.js";var Lr=x("<!> <!>",1),wr=x("<!> <!>",1),$r=x("<!> <!>",1),Sr=x("<!> <!>",1),kr=x("<!> <!> <!>",1),Er=x("<!> <!>",1),Pr=x('<span class="sig-eyebrow truncate max-w-[220px]"> </span>'),Tr=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-text-muted)] font-display text-[length:var(--font-size-base)]">Loading logs...</div>'),Or=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-danger)] font-display text-[length:var(--font-size-base)]"> </div>'),Rr=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-text-muted)] font-display text-[length:var(--font-size-base)]">No logs found</div>'),Ar=x('<span class="text-[var(--sig-text-muted)]"> </span>'),Cr=x('<div class="mt-1 text-[11px] text-[var(--sig-text-muted)] whitespace-pre-wrap break-words"> </div>'),Nr=x('<button type="button"><div class="flex flex-wrap items-baseline gap-[var(--space-xs)]"><span class="text-[var(--sig-text-muted)] shrink-0"> </span> <span> </span> <span> </span> <span class="text-[var(--sig-text-bright)] break-all"> </span> <!></div> <!></button>'),Dr=x('<div class="font-mono text-[length:var(--font-size-sm)] leading-relaxed"><!></div>'),zr=x('<div class="text-[var(--sig-text-muted)]">Duration</div> <div class="text-[var(--sig-text-bright)]"> </div>',1),Ir=x('<details class="mb-1 border border-[var(--sig-border)] bg-[var(--sig-surface)] rounded-lg"><summary class="cursor-pointer px-2 py-1 text-[10px] text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] select-none"><span class="font-semibold text-[var(--sig-text)]"> </span> <span class="ml-1 opacity-60"> </span> <span class="ml-1 opacity-40"> </span></summary> <pre class="m-0 px-2 py-1 text-[10px] leading-relaxed whitespace-pre-wrap break-words text-[var(--sig-text)]"> </pre></details>'),jr=x('<div class="mb-1"><div class="text-[10px] text-[var(--sig-text-muted)] font-semibold mb-0.5"> </div> <pre class="m-0 p-2 text-[10px] leading-relaxed whitespace-pre-wrap break-words border border-[var(--sig-border)] rounded-lg bg-[var(--sig-surface)] text-[var(--sig-text)]"> </pre></div>'),Br=x('<div class="mb-[var(--space-sm)]"><div class="text-[var(--sig-text-muted)] text-[length:var(--font-size-xs)] uppercase tracking-[0.08em] mb-1">Readable output</div> <!></div>'),Fr=x('<div class="grid grid-cols-[80px_1fr] gap-y-1 gap-x-2 mb-[var(--space-sm)]"><div class="text-[var(--sig-text-muted)]">Time</div> <div class="text-[var(--sig-text-bright)] break-all"> </div> <div class="text-[var(--sig-text-muted)]">Level</div> <div> </div> <div class="text-[var(--sig-text-muted)]">Category</div> <div> </div> <div class="text-[var(--sig-text-muted)]">Message</div> <div class="text-[var(--sig-text-bright)] break-all"> </div> <!></div> <!> <div class="rounded-lg border border-[var(--sig-border)] bg-[var(--sig-surface)] overflow-hidden"><div class="flex items-center justify-between gap-2 px-2 py-1 border-b border-[var(--sig-border)]"><div class="sig-eyebrow tracking-[0.08em]">Log details</div> <!></div> <pre class="m-0 p-2 text-[10px] leading-relaxed whitespace-pre-wrap break-all text-[var(--sig-text-muted)]"> </pre></div>',1),Vr=x('<div class="text-[var(--sig-text-muted)]">Select a log entry to inspect details.</div>'),qr=x('<div class="flex flex-col flex-1 min-h-0 overflow-hidden"><!> <div class="flex flex-col flex-1 min-h-0 p-[var(--space-sm)] lg:p-[var(--space-md)]"><div class="flex-1 min-h-0 grid grid-cols-1 gap-[var(--space-md)] lg:grid-cols-[minmax(0,1.55fr)_minmax(0,1fr)]"><section class="min-h-0 flex flex-col rounded-lg border border-[var(--sig-border-strong)] bg-[var(--sig-surface-raised)] overflow-hidden"><div class="flex flex-wrap items-center gap-[var(--space-sm)] px-[var(--space-md)] py-[var(--space-sm)] border-b border-[var(--sig-border)] shrink-0"><!> <!> <!> <label class="flex items-center gap-1.5 sig-label text-[var(--sig-text)] cursor-pointer"><!> Auto-scroll</label> <div class="ml-auto flex items-center gap-[var(--space-sm)] min-w-0"><!> <span><!></span> <!> <!></div></div> <!></section> <section class="log-details-window min-h-0 overflow-auto rounded-lg border border-[var(--sig-border-strong)] p-[var(--space-md)] font-mono text-[length:var(--font-size-sm)] svelte-q4aevr"><!></section></div></div></div>');function Qr($t,St){ir(St,!0);const kt=2e3,Et=3e4,Se="signet-dashboard-log-order",Je="desc",Ke="List order",Ue={debug:0,info:1,warn:2,error:3},ke={desc:"Newest first",asc:"Oldest first"};let I=S(cr([])),Ee=S(!1),me=S(""),ie=S(!1),W=S(!1),U=S(!1),Z=S(""),D=null,X=S(!0),ee=0,j=null,Q=S(""),te=S(""),Y=S(null),B=S(!1),ue=S(!1),Xe=S(!1),ce=S(null),re=S(null),pe=S(!1),de=null,Pe=0;const Qe=24,Pt=["daemon","api","memory","sync","git","watcher","embedding","embedding-tracker","harness","system","hooks","pipeline","skills","secrets","auth","session-tracker","summary-worker","document-worker","maintenance","scheduler","retention","llm"],Tt=["debug","info","warn","error"],ae=J(()=>t(Y)??Je);function Ye(e){return e==="desc"||e==="asc"}function We(e){return e==="debug"||e==="info"||e==="warn"||e==="error"}function xe(e){return typeof e=="object"&&e!==null}function Ot(e){return xe(e)&&e.type==="connected"}function Ze(e){if(!xe(e)||typeof e.timestamp!="string"||typeof e.category!="string"||typeof e.message!="string"||typeof e.level!="string"||!We(e.level))return null;const r={timestamp:e.timestamp,level:e.level,category:e.category,message:e.message};return xe(e.data)&&(r.data=e.data),typeof e.duration=="number"&&Number.isFinite(e.duration)&&(r.duration=e.duration),xe(e.error)&&typeof e.error.name=="string"&&typeof e.error.message=="string"&&(r.error={name:e.error.name,message:e.error.message}),r}function _e(e){const r=Date.parse(e);return Number.isNaN(r)?0:r}function Rt(e,r,a){const c=a==="desc"?_e(r.entry.timestamp)-_e(e.entry.timestamp):_e(e.entry.timestamp)-_e(r.entry.timestamp);return c!==0?c:a==="desc"?r.id-e.id:e.id-r.id}function et(e,r=0){const a=e.map((c,f)=>{const v=r+f;return{id:v,key:`log-${v}`,entry:c}});return{entries:a,nextId:r+a.length}}function Te(e,r){return[...e].sort((a,c)=>Rt(a,c,r))}function Oe(e,r){return e.length===0?null:r==="desc"?e[0]??null:e[e.length-1]??null}function At(e,r,a,c,f=500){const v=et([r],a),p=Te([...e,...v.entries],c);return{entries:c==="desc"?p.slice(0,f):p.slice(-f),nextId:v.nextId}}function Ct(){try{const e=localStorage.getItem(Se);if(e&&Ye(e))return e}catch{return null}return null}function Nt(e){try{if(e===null){localStorage.removeItem(Se);return}localStorage.setItem(Se,e)}catch{return}}function Dt(){return t(Y)===null?Ke:ke[t(Y)]}function Re(e){switch(e){case"error":return"log-level--error";case"warn":return"log-level--warn";case"debug":return"log-level--debug";default:return"log-level--info"}}function tt(e){switch(e.toLowerCase()){case"watcher":return"log-category--watcher";case"daemon":return"log-category--daemon";case"pipeline":return"log-category--pipeline";case"system":return"log-category--system";case"embeding-tracker":case"embedding-tracker":return"log-category--embedding-tracker";case"document-worker":return"log-category--document-worker";case"maintenance":return"log-category--maintenance";case"git":return"log-category--git";case"schedular":case"scheduler":return"log-category--scheduler";case"retention":return"log-category--retention";default:return"log-category--default"}}function rt(){const e=Oe(t(I),t(ae));return!e||!t(re)?!0:t(re)===e.key}function Ae(){s(re,Oe(t(I),t(ae))?.key??null,!0)}function zt(){const e=Oe(t(I),t(ae))?.entry??null;if(!t(re))return e;for(const r of t(I))if(r.key===t(re))return r.entry;return e}const A=J(zt);function at(e="smooth"){t(ce)&&t(ce).scrollTo({top:t(ae)==="desc"?0:t(ce).scrollHeight,behavior:e})}function be(e="auto"){de===null&&yt().then(()=>{de===null&&(de=requestAnimationFrame(()=>{de=null,t(B)&&at(e)}))})}function It(e){return e?t(ae)==="desc"?e.scrollTop<=Qe:e.scrollHeight-e.clientHeight-e.scrollTop<=Qe:!0}function jt(e){const r=e&&Ye(e)?e:null;if(r===t(Y))return;const a=rt();s(Y,r,!0),s(I,Te(t(I),r??Je),!0),a&&Ae(),t(B)&&(s(ue,!1),be("auto")),Nt(r)}async function he(){s(Ee,!0),s(me,"");try{const e=new URLSearchParams({limit:"200"});t(Q)&&e.set("level",t(Q)),t(te)&&e.set("category",t(te));const a=await(await fetch(`${wt}/api/logs?${e}`)).json(),c=Array.isArray(a.logs)?a.logs.map(v=>Ze(v)).filter(v=>v!==null):[],f=et(c);Pe=f.nextId,s(I,Te(f.entries,t(ae)),!0),Ae(),t(Xe)?t(B)&&be("auto"):(s(Xe,!0),yt().then(()=>at("auto")))}catch{s(me,"Failed to fetch logs")}finally{s(Ee,!1)}}function st(){t(X)&&(j!==null&&(clearTimeout(j),j=null),D&&D.close(),s(U,!0),ee===0&&(s(W,!1),s(Z,"")),D=new EventSource(`${wt}/api/logs/stream`),D.onmessage=e=>{try{const r=JSON.parse(e.data);if(Ot(r)){ee=0,s(W,!1),s(U,!1),s(ie,!0),s(Z,"");return}const a=Ze(r);if(!a)return;t(U)&&(s(U,!1),s(ie,!0));const c=Ue[a.level],f=We(t(Q))?Ue[t(Q)]:void 0;if(t(Q)&&(c??-1)<(f??-1)||t(te)&&a.category!==t(te))return;const v=rt(),p=At(t(I),a,Pe,t(ae));Pe=p.nextId,s(I,p.entries,!0),v&&Ae(),t(B)&&be("auto")}catch{}},D.onerror=()=>{if(!t(X)||(s(ie,!1),s(U,!1),D?.close(),D=null,j!==null))return;const e=Math.min(kt*2**Math.min(ee,10),Et);ee=Math.min(ee+1,10),s(W,!0),s(Z,`Stream lost — reconnecting in ${e/1e3}s`),j=setTimeout(()=>{j=null,st()},e)})}function Bt(){s(X,!1),s(ie,!1),s(U,!1),s(W,!1),s(Z,""),ee=0,j!==null&&(clearTimeout(j),j=null),D&&(D.close(),D=null)}function nt(){s(X,!0),ee=0,s(W,!1),s(Z,""),st()}function Ft(){if(t(X)){Bt();return}nt()}function Vt(e){return e.split("T")[1]?.slice(0,8)||""}function qt(e){try{return new Date(e).toLocaleString()}catch{return e}}function ot(e){return JSON.stringify(e,null,2)}function q(e){return typeof e=="string"&&e.length>0?e:null}function Mt(e){return Array.isArray(e)?e.filter(r=>typeof r=="string"&&r.length>0):[]}function lt(e){const r=e.data;if(!r)return[];const a=[],c=q(r.inject)??q(r.injectPreview);c&&a.push({label:"Inject",content:c});const f=q(r.prompt)??q(r.promptPreview);f&&a.push({label:"Prompt",content:f});const v=q(r.summaryPrompt)??q(r.summaryPromptPreview);v&&a.push({label:"Summary Prompt",content:v});const p=q(r.summary)??q(r.summaryPreview);p&&a.push({label:"Summary",content:p});const k=q(r.transcript)??q(r.transcriptPreview);k&&a.push({label:"Transcript",content:k});const d=Mt(r.factsPreview);if(d.length>0){const g=d.map(L=>`- ${L}`).join(`
|
|
1
|
+
import{p as ir,o as S,e as cr,q as dr,v as s,Q as vr,i as t,j as n,t as l,h as T,f as z,w as oe,x as M,y as O,z as u,b as i,A as we,c as $e,K as Ve,u as J,l as o,k as K,B as ge,O as gr,d as ur,U as yt,m as x,P as fr}from"./BvuHLZ8E.js";import{f as mr,n as pr,E as xr,B as qe,A as Lt,o as wt}from"./oLP5ZJ3g.js";import{P as _r}from"./BEjeM6IF.js";import{T as br}from"./Cz09eUOk.js";import{C as hr}from"./BLMvDy5P.js";import{S as yr}from"./D-J53IxA.js";import{S as Me,a as Ge,b as le,c as He}from"./UmECauCP.js";var Lr=x("<!> <!>",1),wr=x("<!> <!>",1),$r=x("<!> <!>",1),Sr=x("<!> <!>",1),kr=x("<!> <!> <!>",1),Er=x("<!> <!>",1),Pr=x('<span class="sig-eyebrow truncate max-w-[220px]"> </span>'),Tr=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-text-muted)] font-display text-[length:var(--font-size-base)]">Loading logs...</div>'),Or=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-danger)] font-display text-[length:var(--font-size-base)]"> </div>'),Rr=x('<div class="py-[var(--space-xl)] text-center text-[var(--sig-text-muted)] font-display text-[length:var(--font-size-base)]">No logs found</div>'),Ar=x('<span class="text-[var(--sig-text-muted)]"> </span>'),Cr=x('<div class="mt-1 text-[11px] text-[var(--sig-text-muted)] whitespace-pre-wrap break-words"> </div>'),Nr=x('<button type="button"><div class="flex flex-wrap items-baseline gap-[var(--space-xs)]"><span class="text-[var(--sig-text-muted)] shrink-0"> </span> <span> </span> <span> </span> <span class="text-[var(--sig-text-bright)] break-all"> </span> <!></div> <!></button>'),Dr=x('<div class="font-mono text-[length:var(--font-size-sm)] leading-relaxed"><!></div>'),zr=x('<div class="text-[var(--sig-text-muted)]">Duration</div> <div class="text-[var(--sig-text-bright)]"> </div>',1),Ir=x('<details class="mb-1 border border-[var(--sig-border)] bg-[var(--sig-surface)] rounded-lg"><summary class="cursor-pointer px-2 py-1 text-[10px] text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] select-none"><span class="font-semibold text-[var(--sig-text)]"> </span> <span class="ml-1 opacity-60"> </span> <span class="ml-1 opacity-40"> </span></summary> <pre class="m-0 px-2 py-1 text-[10px] leading-relaxed whitespace-pre-wrap break-words text-[var(--sig-text)]"> </pre></details>'),jr=x('<div class="mb-1"><div class="text-[10px] text-[var(--sig-text-muted)] font-semibold mb-0.5"> </div> <pre class="m-0 p-2 text-[10px] leading-relaxed whitespace-pre-wrap break-words border border-[var(--sig-border)] rounded-lg bg-[var(--sig-surface)] text-[var(--sig-text)]"> </pre></div>'),Br=x('<div class="mb-[var(--space-sm)]"><div class="text-[var(--sig-text-muted)] text-[length:var(--font-size-xs)] uppercase tracking-[0.08em] mb-1">Readable output</div> <!></div>'),Fr=x('<div class="grid grid-cols-[80px_1fr] gap-y-1 gap-x-2 mb-[var(--space-sm)]"><div class="text-[var(--sig-text-muted)]">Time</div> <div class="text-[var(--sig-text-bright)] break-all"> </div> <div class="text-[var(--sig-text-muted)]">Level</div> <div> </div> <div class="text-[var(--sig-text-muted)]">Category</div> <div> </div> <div class="text-[var(--sig-text-muted)]">Message</div> <div class="text-[var(--sig-text-bright)] break-all"> </div> <!></div> <!> <div class="rounded-lg border border-[var(--sig-border)] bg-[var(--sig-surface)] overflow-hidden"><div class="flex items-center justify-between gap-2 px-2 py-1 border-b border-[var(--sig-border)]"><div class="sig-eyebrow tracking-[0.08em]">Log details</div> <!></div> <pre class="m-0 p-2 text-[10px] leading-relaxed whitespace-pre-wrap break-all text-[var(--sig-text-muted)]"> </pre></div>',1),Vr=x('<div class="text-[var(--sig-text-muted)]">Select a log entry to inspect details.</div>'),qr=x('<div class="flex flex-col flex-1 min-h-0 overflow-hidden"><!> <div class="flex flex-col flex-1 min-h-0 p-[var(--space-sm)] lg:p-[var(--space-md)]"><div class="flex-1 min-h-0 grid grid-cols-1 gap-[var(--space-md)] lg:grid-cols-[minmax(0,1.55fr)_minmax(0,1fr)]"><section class="min-h-0 flex flex-col rounded-lg border border-[var(--sig-border-strong)] bg-[var(--sig-surface-raised)] overflow-hidden"><div class="flex flex-wrap items-center gap-[var(--space-sm)] px-[var(--space-md)] py-[var(--space-sm)] border-b border-[var(--sig-border)] shrink-0"><!> <!> <!> <label class="flex items-center gap-1.5 sig-label text-[var(--sig-text)] cursor-pointer"><!> Auto-scroll</label> <div class="ml-auto flex items-center gap-[var(--space-sm)] min-w-0"><!> <span><!></span> <!> <!></div></div> <!></section> <section class="log-details-window min-h-0 overflow-auto rounded-lg border border-[var(--sig-border-strong)] p-[var(--space-md)] font-mono text-[length:var(--font-size-sm)] svelte-q4aevr"><!></section></div></div></div>');function Qr($t,St){ir(St,!0);const kt=2e3,Et=3e4,Se="signet-dashboard-log-order",Je="desc",Ke="List order",Ue={debug:0,info:1,warn:2,error:3},ke={desc:"Newest first",asc:"Oldest first"};let I=S(cr([])),Ee=S(!1),me=S(""),ie=S(!1),W=S(!1),U=S(!1),Z=S(""),D=null,X=S(!0),ee=0,j=null,Q=S(""),te=S(""),Y=S(null),B=S(!1),ue=S(!1),Xe=S(!1),ce=S(null),re=S(null),pe=S(!1),de=null,Pe=0;const Qe=24,Pt=["daemon","api","memory","sync","git","watcher","embedding","embedding-tracker","harness","system","hooks","pipeline","skills","secrets","auth","session-tracker","summary-worker","document-worker","maintenance","scheduler","retention","llm"],Tt=["debug","info","warn","error"],ae=J(()=>t(Y)??Je);function Ye(e){return e==="desc"||e==="asc"}function We(e){return e==="debug"||e==="info"||e==="warn"||e==="error"}function xe(e){return typeof e=="object"&&e!==null}function Ot(e){return xe(e)&&e.type==="connected"}function Ze(e){if(!xe(e)||typeof e.timestamp!="string"||typeof e.category!="string"||typeof e.message!="string"||typeof e.level!="string"||!We(e.level))return null;const r={timestamp:e.timestamp,level:e.level,category:e.category,message:e.message};return xe(e.data)&&(r.data=e.data),typeof e.duration=="number"&&Number.isFinite(e.duration)&&(r.duration=e.duration),xe(e.error)&&typeof e.error.name=="string"&&typeof e.error.message=="string"&&(r.error={name:e.error.name,message:e.error.message}),r}function _e(e){const r=Date.parse(e);return Number.isNaN(r)?0:r}function Rt(e,r,a){const c=a==="desc"?_e(r.entry.timestamp)-_e(e.entry.timestamp):_e(e.entry.timestamp)-_e(r.entry.timestamp);return c!==0?c:a==="desc"?r.id-e.id:e.id-r.id}function et(e,r=0){const a=e.map((c,f)=>{const v=r+f;return{id:v,key:`log-${v}`,entry:c}});return{entries:a,nextId:r+a.length}}function Te(e,r){return[...e].sort((a,c)=>Rt(a,c,r))}function Oe(e,r){return e.length===0?null:r==="desc"?e[0]??null:e[e.length-1]??null}function At(e,r,a,c,f=500){const v=et([r],a),p=Te([...e,...v.entries],c);return{entries:c==="desc"?p.slice(0,f):p.slice(-f),nextId:v.nextId}}function Ct(){try{const e=localStorage.getItem(Se);if(e&&Ye(e))return e}catch{return null}return null}function Nt(e){try{if(e===null){localStorage.removeItem(Se);return}localStorage.setItem(Se,e)}catch{return}}function Dt(){return t(Y)===null?Ke:ke[t(Y)]}function Re(e){switch(e){case"error":return"log-level--error";case"warn":return"log-level--warn";case"debug":return"log-level--debug";default:return"log-level--info"}}function tt(e){switch(e.toLowerCase()){case"watcher":return"log-category--watcher";case"daemon":return"log-category--daemon";case"pipeline":return"log-category--pipeline";case"system":return"log-category--system";case"embeding-tracker":case"embedding-tracker":return"log-category--embedding-tracker";case"document-worker":return"log-category--document-worker";case"maintenance":return"log-category--maintenance";case"git":return"log-category--git";case"schedular":case"scheduler":return"log-category--scheduler";case"retention":return"log-category--retention";default:return"log-category--default"}}function rt(){const e=Oe(t(I),t(ae));return!e||!t(re)?!0:t(re)===e.key}function Ae(){s(re,Oe(t(I),t(ae))?.key??null,!0)}function zt(){const e=Oe(t(I),t(ae))?.entry??null;if(!t(re))return e;for(const r of t(I))if(r.key===t(re))return r.entry;return e}const A=J(zt);function at(e="smooth"){t(ce)&&t(ce).scrollTo({top:t(ae)==="desc"?0:t(ce).scrollHeight,behavior:e})}function be(e="auto"){de===null&&yt().then(()=>{de===null&&(de=requestAnimationFrame(()=>{de=null,t(B)&&at(e)}))})}function It(e){return e?t(ae)==="desc"?e.scrollTop<=Qe:e.scrollHeight-e.clientHeight-e.scrollTop<=Qe:!0}function jt(e){const r=e&&Ye(e)?e:null;if(r===t(Y))return;const a=rt();s(Y,r,!0),s(I,Te(t(I),r??Je),!0),a&&Ae(),t(B)&&(s(ue,!1),be("auto")),Nt(r)}async function he(){s(Ee,!0),s(me,"");try{const e=new URLSearchParams({limit:"200"});t(Q)&&e.set("level",t(Q)),t(te)&&e.set("category",t(te));const a=await(await fetch(`${wt}/api/logs?${e}`)).json(),c=Array.isArray(a.logs)?a.logs.map(v=>Ze(v)).filter(v=>v!==null):[],f=et(c);Pe=f.nextId,s(I,Te(f.entries,t(ae)),!0),Ae(),t(Xe)?t(B)&&be("auto"):(s(Xe,!0),yt().then(()=>at("auto")))}catch{s(me,"Failed to fetch logs")}finally{s(Ee,!1)}}function st(){t(X)&&(j!==null&&(clearTimeout(j),j=null),D&&D.close(),s(U,!0),ee===0&&(s(W,!1),s(Z,"")),D=new EventSource(`${wt}/api/logs/stream`),D.onmessage=e=>{try{const r=JSON.parse(e.data);if(Ot(r)){ee=0,s(W,!1),s(U,!1),s(ie,!0),s(Z,"");return}const a=Ze(r);if(!a)return;t(U)&&(s(U,!1),s(ie,!0));const c=Ue[a.level],f=We(t(Q))?Ue[t(Q)]:void 0;if(t(Q)&&(c??-1)<(f??-1)||t(te)&&a.category!==t(te))return;const v=rt(),p=At(t(I),a,Pe,t(ae));Pe=p.nextId,s(I,p.entries,!0),v&&Ae(),t(B)&&be("auto")}catch{}},D.onerror=()=>{if(!t(X)||(s(ie,!1),s(U,!1),D?.close(),D=null,j!==null))return;const e=Math.min(kt*2**Math.min(ee,10),Et);ee=Math.min(ee+1,10),s(W,!0),s(Z,`Stream lost — reconnecting in ${e/1e3}s`),j=setTimeout(()=>{j=null,st()},e)})}function Bt(){s(X,!1),s(ie,!1),s(U,!1),s(W,!1),s(Z,""),ee=0,j!==null&&(clearTimeout(j),j=null),D&&(D.close(),D=null)}function nt(){s(X,!0),ee=0,s(W,!1),s(Z,""),st()}function Ft(){if(t(X)){Bt();return}nt()}function Vt(e){return e.split("T")[1]?.slice(0,8)||""}function qt(e){try{return new Date(e).toLocaleString()}catch{return e}}function ot(e){return JSON.stringify(e,null,2)}function q(e){return typeof e=="string"&&e.length>0?e:null}function Mt(e){return Array.isArray(e)?e.filter(r=>typeof r=="string"&&r.length>0):[]}function lt(e){const r=e.data;if(!r)return[];const a=[],c=q(r.inject)??q(r.injectPreview);c&&a.push({label:"Inject",content:c});const f=q(r.prompt)??q(r.promptPreview);f&&a.push({label:"Prompt",content:f});const v=q(r.summaryPrompt)??q(r.summaryPromptPreview);v&&a.push({label:"Summary Prompt",content:v});const p=q(r.summary)??q(r.summaryPreview);p&&a.push({label:"Summary",content:p});const k=q(r.transcript)??q(r.transcriptPreview);k&&a.push({label:"Transcript",content:k});const d=Mt(r.factsPreview);if(d.length>0){const g=d.map(L=>`- ${L}`).join(`
|
|
2
2
|
`);a.push({label:"Facts",content:g})}return a}function it(e){const r=lt(e);if(r.length===0)return"";const a=r.map(c=>c.content).join(`
|
|
3
3
|
|
|
4
4
|
`).trim();return a.length<=220?a:`${a.slice(0,220)}...`}async function Gt(){if(t(A))try{await navigator.clipboard.writeText(ot(t(A))),s(pe,!0),setTimeout(()=>{s(pe,!1)},1200)}catch{s(pe,!1)}}dr(()=>(s(Y,Ct(),!0),he(),nt(),()=>{s(X,!1),de!==null&&cancelAnimationFrame(de),j!==null&&clearTimeout(j),D&&D.close()})),vr(()=>{const e=t(ce);if(!e)return;const r=()=>{const a=It(e);if(t(B)&&!a){s(B,!1),s(ue,!0);return}!t(B)&&t(ue)&&a&&(s(B,!0),s(ue,!1))};return e.addEventListener("scroll",r,{passive:!0}),r(),()=>{e.removeEventListener("scroll",r)}});var Ce=qr(),ct=n(Ce);_r(ct,{title:"Logs",children:(e,r)=>{br(e,{group:"engine",get tabs(){return xr},get activeTab(){return pr.activeTab},onselect:(a,c)=>mr(c)})}});var dt=l(ct,2),vt=n(dt),Ne=n(vt),De=n(Ne),gt=n(De);T(gt,()=>He,(e,r)=>{r(e,{type:"single",get value(){return t(Q)},onValueChange:a=>{s(Q,a??"",!0),he()},children:(a,c)=>{var f=wr(),v=z(f);T(v,()=>Me,(k,d)=>{d(k,{class:"font-mono text-[length:var(--font-size-sm)] bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] text-[var(--sig-text-bright)] rounded-lg h-auto py-1 px-2 min-w-[100px]",children:(g,L)=>{oe();var _=M();O(()=>u(_,t(Q)||"All levels")),i(g,_)},$$slots:{default:!0}})});var p=l(v,2);T(p,()=>Ge,(k,d)=>{d(k,{class:"bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] rounded-lg",children:(g,L)=>{var _=Lr(),R=z(_);T(R,()=>le,(h,b)=>{b(h,{value:"",label:"All levels"})});var m=l(R,2);we(m,17,()=>Tt,Ve,(h,b)=>{var y=$e(),w=z(y);T(w,()=>le,(se,F)=>{F(se,{get value(){return t(b)},get label(){return t(b)}})}),i(h,y)}),i(g,_)},$$slots:{default:!0}})}),i(a,f)},$$slots:{default:!0}})});var ut=l(gt,2);T(ut,()=>He,(e,r)=>{r(e,{type:"single",get value(){return t(te)},onValueChange:a=>{s(te,a??"",!0),he()},children:(a,c)=>{var f=Sr(),v=z(f);T(v,()=>Me,(k,d)=>{d(k,{class:"font-mono text-[length:var(--font-size-sm)] bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] text-[var(--sig-text-bright)] rounded-lg h-auto py-1 px-2 min-w-[100px]",children:(g,L)=>{oe();var _=M();O(()=>u(_,t(te)||"All categories")),i(g,_)},$$slots:{default:!0}})});var p=l(v,2);T(p,()=>Ge,(k,d)=>{d(k,{class:"bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] rounded-lg",children:(g,L)=>{var _=$r(),R=z(_);T(R,()=>le,(h,b)=>{b(h,{value:"",label:"All categories"})});var m=l(R,2);we(m,17,()=>Pt,Ve,(h,b)=>{var y=$e(),w=z(y);T(w,()=>le,(se,F)=>{F(se,{get value(){return t(b)},get label(){return t(b)}})}),i(h,y)}),i(g,_)},$$slots:{default:!0}})}),i(a,f)},$$slots:{default:!0}})});var ft=l(ut,2);{let e=J(()=>t(Y)??"");T(ft,()=>He,(r,a)=>{a(r,{type:"single",get value(){return t(e)},onValueChange:jt,children:(c,f)=>{var v=Er(),p=z(v);{let d=J(()=>t(Y)===null?"":void 0);T(p,()=>Me,(g,L)=>{L(g,{get"data-placeholder"(){return t(d)},class:"font-mono text-[length:var(--font-size-sm)] bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] text-[var(--sig-text-bright)] data-[placeholder]:text-[var(--sig-text-muted)] rounded-lg h-auto py-1 px-2 min-w-[124px]",children:(_,R)=>{oe();var m=M();O(h=>u(m,h),[()=>Dt()]),i(_,m)},$$slots:{default:!0}})})}var k=l(p,2);T(k,()=>Ge,(d,g)=>{g(d,{class:"bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] rounded-lg",children:(L,_)=>{var R=kr(),m=z(R);T(m,()=>le,(y,w)=>{w(y,{value:"",label:Ke})});var h=l(m,2);T(h,()=>le,(y,w)=>{w(y,{value:"desc",get label(){return ke.desc}})});var b=l(h,2);T(b,()=>le,(y,w)=>{w(y,{value:"asc",get label(){return ke.asc}})}),i(L,R)},$$slots:{default:!0}})}),i(c,v)},$$slots:{default:!0}})})}var ze=l(ft,2),Ht=n(ze);hr(Ht,{get checked(){return t(B)},onCheckedChange:e=>{s(B,e===!0),s(ue,!1),t(B)&&be("auto")},class:"rounded-lg"}),oe(),o(ze);var mt=l(ze,2),pt=n(mt);{var Jt=e=>{var r=Pr(),a=n(r,!0);o(r),O(()=>u(a,t(Z))),i(e,r)};K(pt,e=>{t(Z)&&e(Jt)})}var ye=l(pt,2),Kt=n(ye);{var Ut=e=>{var r=M("● Live");i(e,r)},Xt=e=>{var r=M("↺ Reconnecting");i(e,r)},Qt=e=>{var r=M("◌ Connecting");i(e,r)},Yt=e=>{var r=M("● Offline");i(e,r)};K(Kt,e=>{t(ie)?e(Ut):t(W)?e(Xt,1):t(U)?e(Qt,2):e(Yt,-1)})}o(ye);var xt=l(ye,2);{let e=J(()=>t(X)?"Disconnect stream":"Reconnect stream");qe(xt,{variant:"outline",size:"sm",class:"sig-label px-2 py-1 h-auto hover:border-[var(--sig-border-strong)] hover:text-[var(--sig-text-bright)]",onclick:Ft,get title(){return t(e)},children:(r,a)=>{oe();var c=M();O(()=>u(c,t(X)?"Disconnect":"Reconnect")),i(r,c)},$$slots:{default:!0}})}var Wt=l(xt,2);qe(Wt,{variant:"outline",size:"sm",class:"sig-label px-2 py-1 h-auto hover:border-[var(--sig-border-strong)] hover:text-[var(--sig-text-bright)]",onclick:he,title:"Reload logs",children:(e,r)=>{oe();var a=M();O(()=>u(a,Lt.Refresh)),i(e,a)},$$slots:{default:!0}}),o(mt),o(De);var Zt=l(De,2);yr(Zt,{class:"min-h-0 flex-1",get viewportRef(){return t(ce)},set viewportRef(e){s(ce,e,!0)},children:(e,r)=>{var a=Dr(),c=n(a);{var f=d=>{var g=Tr();i(d,g)},v=d=>{var g=Or(),L=n(g,!0);o(g),O(()=>u(L,t(me))),i(d,g)},p=d=>{var g=Rr();i(d,g)},k=d=>{var g=$e(),L=z(g);we(L,17,()=>t(I),_=>_.key,(_,R)=>{const m=J(()=>t(R).entry),h=J(()=>t(R).key);var b=Nr(),y=n(b),w=n(y),se=n(w,!0);o(w);var F=l(w,2),Ie=n(F,!0);o(F);var E=l(F,2),V=n(E);o(E);var C=l(E,2),ne=n(C,!0);o(C);var G=l(C,2);{var Le=P=>{var $=Ar(),N=n($);o($),O(()=>u(N,`(${t(m).duration??""}ms)`)),i(P,$)};K(G,P=>{t(m).duration!==void 0&&P(Le)})}o(y);var je=l(y,2);{var Be=P=>{var $=Cr(),N=n($,!0);o($),O(H=>u(N,H),[()=>it(t(m))]),i(P,$)},Fe=J(()=>it(t(m)));K(je,P=>{t(Fe)&&P(Be)})}o(b),O((P,$,N,H,ve)=>{ge(b,1,P,"svelte-q4aevr"),u(se,$),ge(F,1,N,"svelte-q4aevr"),u(Ie,H),ge(E,1,ve,"svelte-q4aevr"),u(V,`[${t(m).category??""}]`),u(ne,t(m).message)},[()=>`log-row ${Re(t(m).level)} w-full text-left px-[var(--space-md)] py-1.5 border-b border-[var(--sig-border)] hover:bg-[var(--sig-surface)] cursor-pointer ${t(re)===t(h)?"bg-[var(--sig-surface)] border-[var(--sig-border-strong)]":""}`,()=>Vt(t(m).timestamp),()=>`font-semibold shrink-0 min-w-[40px] ${Re(t(m).level)}`,()=>t(m).level.toUpperCase(),()=>`log-category ${tt(t(m).category)} shrink-0`]),gr("click",b,()=>{s(re,t(h),!0)}),i(_,b)}),i(d,g)};K(c,d=>{t(Ee)?d(f):t(me)?d(v,1):t(I).length===0?d(p,2):d(k,-1)})}o(a),i(e,a)},$$slots:{default:!0}}),o(Ne);var _t=l(Ne,2),er=n(_t);{var tr=e=>{const r=J(()=>lt(t(A)));var a=Fr(),c=z(a),f=l(n(c),2),v=n(f,!0);o(f);var p=l(f,4),k=n(p,!0);o(p);var d=l(p,4),g=n(d,!0);o(d);var L=l(d,4),_=n(L,!0);o(L);var R=l(L,2);{var m=E=>{var V=zr(),C=l(z(V),2),ne=n(C);o(C),O(()=>u(ne,`${t(A).duration??""}ms`)),i(E,V)};K(R,E=>{t(A).duration!==void 0&&E(m)})}o(c);var h=l(c,2);{var b=E=>{var V=Br(),C=l(n(V),2);we(C,17,()=>t(r),Ve,(ne,G)=>{var Le=$e(),je=z(Le);{var Be=P=>{var $=Ir(),N=n($),H=n(N),ve=n(H,!0);o(H);var fe=l(H,2),ar=n(fe);o(fe);var bt=l(fe,2),sr=n(bt);o(bt),o(N);var ht=l(N,2),nr=n(ht,!0);o(ht),o($),O((or,lr)=>{u(ve,t(G).label),u(ar,`(${or??""} chars)`),u(sr,`${lr??""}...`),u(nr,t(G).content)},[()=>t(G).content.length.toLocaleString(),()=>t(G).content.slice(0,100).replace(/\n/g," ")]),i(P,$)},Fe=P=>{var $=jr(),N=n($),H=n(N,!0);o(N);var ve=l(N,2),fe=n(ve,!0);o(ve),o($),O(()=>{u(H,t(G).label),u(fe,t(G).content)}),i(P,$)};K(je,P=>{t(G).content.length>500?P(Be):P(Fe,-1)})}i(ne,Le)}),o(V),i(E,V)};K(h,E=>{t(r).length>0&&E(b)})}var y=l(h,2),w=n(y),se=l(n(w),2);qe(se,{variant:"outline",size:"sm",class:"sig-eyebrow px-2 py-1 h-auto hover:border-[var(--sig-border-strong)] hover:text-[var(--sig-text-bright)]",onclick:Gt,children:(E,V)=>{oe();var C=M();O(()=>u(C,t(pe)?"Copied":Lt.CopyJson)),i(E,C)},$$slots:{default:!0}}),o(w);var F=l(w,2),Ie=n(F,!0);o(F),o(y),O((E,V,C,ne)=>{u(v,E),ge(p,1,V,"svelte-q4aevr"),u(k,t(A).level),ge(d,1,C,"svelte-q4aevr"),u(g,t(A).category),u(_,t(A).message),u(Ie,ne)},[()=>qt(t(A).timestamp),()=>`uppercase ${Re(t(A).level)}`,()=>`log-category ${tt(t(A).category)}`,()=>ot(t(A))]),i(e,a)},rr=e=>{var r=Vr();i(e,r)};K(er,e=>{t(A)?e(tr):e(rr,-1)})}o(_t),o(vt),o(dt),o(Ce),O(()=>ge(ye,1,`sig-label font-medium ${t(ie)?"text-[var(--sig-success)] [animation:pulse_2s_infinite]":t(W)||t(U)?"text-[var(--sig-accent)] [animation:pulse_2s_infinite]":"text-[var(--sig-danger)]"}`,"svelte-q4aevr")),i($t,Ce),ur()}fr(["click"]);export{Qr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p 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"./BvuHLZ8E.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"./BvuHLZ8E.js";import{c as G,M as H}from"./oLP5ZJ3g.js";import{C as I}from"./CD6ERZNE.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 Wt,o as $,e as Z,q as Gt,N as Yt,$ as Zt,j as r,t as c,k as F,i as t,l as a,H as Jt,v as b,b as _,d as Vt,u as P,A as G,y as R,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"./BvuHLZ8E.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"./CSc0Ojrx.js";import{P as oa}from"./BEjeM6IF.js";import{T as la}from"./Cz09eUOk.js";import{C as ca}from"./CidcdTE0.js";import{C as da}from"./DZGIgjAl.js";import{R as va}from"./DMR6P2Mn.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-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),R(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),Re=r(je),yt=r(Re,!0);a(Re),J(2),a(je),a(de);var ve=c(de,2),Fe=r(ve),Pe=r(Fe),Mt=r(Pe,!0);a(Pe),J(2),a(Fe),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),R(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};F(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),R(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};F(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),R(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};F(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),Rt=r(fe,!0);a(fe);var Je=c(fe,2),ge=r(Je),Ft=r(ge);a(ge);var Ve=c(ge,2),Pt=r(Ve,!0);a(Ve),a(Je),a(w),R((zt,Ht,qt,Ot)=>{u(j,zt),u(Ct,t(f).who||"Unknown source"),u(jt,Ht),u(Rt,t(f).content),u(Ft,`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)};F($t,o=>{t(ke).length===0?o(It):o(Kt,-1)})}a(Ge),a(De),a(s),R((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)};F(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),R(()=>u(l,t(z))),_(e,s)};F(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 F,i as t,l as a,H as Jt,v as b,b as _,d as Vt,u as P,A as G,y as R,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"./BvuHLZ8E.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"./oLP5ZJ3g.js";import{P as oa}from"./BEjeM6IF.js";import{T as la}from"./Cz09eUOk.js";import{C as ca}from"./CDR_XOkN.js";import{C as da}from"./BKbBtrgJ.js";import{R as va}from"./DE7ORnI5.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-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),R(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),Re=r(je),yt=r(Re,!0);a(Re),J(2),a(je),a(de);var ve=c(de,2),Fe=r(ve),Pe=r(Fe),Mt=r(Pe,!0);a(Pe),J(2),a(Fe),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),R(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};F(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),R(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};F(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),R(()=>{u(j,t(w).key),u(B,t(w).count)}),_(f,h)}),_(o,d)};F(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),Rt=r(fe,!0);a(fe);var Je=c(fe,2),ge=r(Je),Ft=r(ge);a(ge);var Ve=c(ge,2),Pt=r(Ve,!0);a(Ve),a(Je),a(w),R((zt,Ht,qt,Ot)=>{u(j,zt),u(Ct,t(f).who||"Unknown source"),u(jt,Ht),u(Rt,t(f).content),u(Ft,`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)};F($t,o=>{t(ke).length===0?o(It):o(Kt,-1)})}a(Ge),a(De),a(s),R((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)};F(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),R(()=>u(l,t(z))),_(e,s)};F(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};
|