signetai 0.32.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/_app/immutable/chunks/{4YYweyGm.js → 48jzs9Gr.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CEqtwWaM.js → 4WgQnwqw.js} +1 -1
- package/dashboard/_app/immutable/chunks/{B_i2KdJn.js → BGtA5G0C.js} +1 -1
- package/dashboard/_app/immutable/chunks/{C_ujLxZT.js → BUO0EiZX.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DBx-q8bX.js → Bvq5nor8.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BtCblF-S.js → BwTl86BP.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CuTc5pjv.js → CCUVqCS4.js} +1 -1
- package/dashboard/_app/immutable/chunks/{H4FiarMs.js → CRNKcIYA.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DvO8kR9B.js → CTappC2L.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DSgXy7PJ.js → CkhlVB35.js} +1 -1
- package/dashboard/_app/immutable/chunks/{bS8WHAQ8.js → Cnx2RroT.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DTeJnpXk.js → Cu4vu2mh.js} +1 -1
- package/dashboard/_app/immutable/chunks/{2FRCM0ay.js → CvvlFEen.js} +1 -1
- package/dashboard/_app/immutable/chunks/{C1UyeZ4G.js → DV5sVIyK.js} +2 -2
- package/dashboard/_app/immutable/chunks/{D6nkRVqL.js → DdvRwCbh.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CWNO9SlZ.js → DhkIBys_.js} +1 -1
- package/dashboard/_app/immutable/chunks/{DY9VFYVp.js → DnPQ8YoS.js} +1 -1
- package/dashboard/_app/immutable/chunks/{0RYWBNXA.js → DqdbNUYA.js} +1 -1
- package/dashboard/_app/immutable/chunks/{CcaoDHI8.js → TxL_3T9D.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BaGKka5t.js → _lxxQgjj.js} +1 -1
- package/dashboard/_app/immutable/chunks/{BZY4kOaH.js → cTwyaKWC.js} +1 -1
- package/dashboard/_app/immutable/chunks/q_Ro6z9H.js +5 -0
- package/dashboard/_app/immutable/entry/{app.6tE4Oqi6.js → app.DDzQTIS1.js} +2 -2
- package/dashboard/_app/immutable/entry/start.DpfeXZck.js +1 -0
- package/dashboard/_app/immutable/nodes/{1.DDmFC2k-.js → 1.BwHx955a.js} +1 -1
- package/dashboard/_app/immutable/nodes/2.W-4liTzg.js +1 -0
- package/dashboard/_app/version.json +1 -1
- package/dashboard/index.html +6 -6
- package/dist/cli.js +19 -4
- package/dist/daemon.js +33312 -63
- package/package.json +1 -1
- package/dashboard/_app/immutable/chunks/HxCavKme.js +0 -5
- package/dashboard/_app/immutable/entry/start.CSrpHd0E.js +0 -1
- package/dashboard/_app/immutable/nodes/2.BFAAtblJ.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as p,B as d,m as c,q as i,C as l,D as m,h,l as f,E as u}from"./cZT7cFE6.js";import{I as $}from"./
|
|
1
|
+
import{a as p,B as d,m as c,q as i,C as l,D as m,h,l as f,E as u}from"./cZT7cFE6.js";import{I as $}from"./DV5sVIyK.js";function C(e,o){p(o,!0);let a=u(o,["$$slots","$$events","$$legacy"]);const n=[["path",{d:"m6 9 6 6 6-6"}]];$(e,d({name:"chevron-down"},()=>a,{get iconNode(){return n},children:(r,v)=>{var s=c(),t=i(s);l(t,()=>o.children??m),h(r,s)},$$slots:{default:!0}})),f()}export{C};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{p as tr,a as vt,P as Xt,g as e,b as h,c as a,i as O,d as i,r as t,e as b,M as $e,N as d,f as m,y as De,h as f,l as ft,u as C,s as U,al as ae,A as Rt,q as re,v as Ne,w as lt,a6 as kt,am as Nt,m as st,G as Ee,n as dt,t as At,z as M,o as rr,I as ar,ab as qt,J as or}from"./cZT7cFE6.js";import{B as zt}from"./H4FiarMs.js";import{S as nr}from"./DBx-q8bX.js";import{P as ir,a as sr,b as lr}from"./0RYWBNXA.js";import{D as dr,S as cr,E as vr,F as fr,G as ur,H as mr}from"./C1UyeZ4G.js";import{w as wt,s as Gt}from"./Br6JlEV2.js";const ye={harness:"#4dabf7",daemon:"#ff922b",pipeline:"#da77f2",db:"#ffd43b",search:"#da77f2",files:"#20c997",configs:"#4dabf7",llm:"#fcc419"},Oe={harness:"AI Harness",daemon:"Signet Daemon",pipeline:"Pipeline Workers",db:"memories.db",search:"Hybrid Recall",files:"~/.agents/",configs:"Harness Configs",llm:"LLM Provider"},gr={harness:{x:20,y:20,w:240,h:120,label:Oe.harness,color:ye.harness},daemon:{x:300,y:20,w:340,h:280,label:Oe.daemon,color:ye.daemon},pipeline:{x:20,y:360,w:620,h:140,label:Oe.pipeline,color:ye.pipeline},db:{x:680,y:160,w:200,h:200,label:Oe.db,color:ye.db},search:{x:920,y:160,w:200,h:140,label:Oe.search,color:ye.search},files:{x:680,y:400,w:200,h:100,label:Oe.files,color:ye.files},configs:{x:920,y:400,w:200,h:100,label:Oe.configs,color:ye.configs},llm:{x:680,y:540,w:200,h:80,label:Oe.llm,color:ye.llm}},Ue=[{id:"harness",label:"AI Client",group:"harness",x:40,y:55,w:200,h:50,logCategories:["hooks","session-tracker"],icon:"terminal",description:"Claude Code / OpenCode / OpenClaw — sends session hooks"},{id:"hooks",label:"Hook Handlers",group:"daemon",x:320,y:50,w:140,h:40,logCategories:["hooks"],icon:"webhook",description:"Session lifecycle hooks (start, submit, remember, recall, end)"},{id:"mutex",label:"Session Mutex",group:"daemon",x:320,y:110,w:140,h:40,logCategories:["session-tracker"],icon:"lock",description:"Plugin vs legacy runtime path enforcement"},{id:"queue",label:"Job Queues",group:"daemon",x:320,y:170,w:140,h:40,logCategories:["pipeline"],diagnosticDomain:"queue",icon:"layers",description:"memory_jobs + summary_jobs durable queues"},{id:"watcher",label:"File Watcher",group:"daemon",x:490,y:110,w:130,h:40,logCategories:["watcher"],icon:"eye",description:"Chokidar file change detection on ~/.agents/"},{id:"sync",label:"Harness Sync",group:"daemon",x:490,y:170,w:130,h:40,logCategories:["sync"],diagnosticDomain:"connector",icon:"refresh-cw",description:"Generate CLAUDE.md, AGENTS.md from identity files"},{id:"extraction",label:"Extraction",group:"pipeline",x:40,y:395,w:110,h:40,logCategories:["pipeline"],diagnosticDomain:"queue",icon:"cpu",description:"LLM extracts facts + entities (2s poll)"},{id:"summary",label:"Summary",group:"pipeline",x:165,y:395,w:100,h:40,logCategories:["summary-worker"],icon:"file-text",description:"Session-end transcript summarizer (5s poll)"},{id:"document",label:"Document",group:"pipeline",x:280,y:395,w:100,h:40,logCategories:["document-worker"],icon:"file-plus",description:"Chunk + embed documents (10s poll)"},{id:"retention",label:"Retention",group:"pipeline",x:395,y:395,w:100,h:40,logCategories:["retention"],diagnosticDomain:"mutation",icon:"trash-2",description:"Purge expired data (6h interval)"},{id:"maintenance",label:"Maintenance",group:"pipeline",x:510,y:395,w:110,h:40,logCategories:["maintenance"],icon:"wrench",description:"Self-repair + diagnostics (30min interval)"},{id:"database",label:"SQLite",group:"db",x:710,y:220,w:140,h:80,logCategories:["memory","embedding"],diagnosticDomain:"storage",icon:"database",description:"memories, embeddings, entities, relations, history"},{id:"search",label:"Hybrid Recall",group:"search",x:940,y:200,w:160,h:60,logCategories:["memory"],diagnosticDomain:"index",icon:"search",description:"BM25 + vector similarity + graph boost"},{id:"files",label:"Identity Files",group:"files",x:710,y:430,w:140,h:40,logCategories:["sync"],icon:"folder",description:"AGENTS.md, SOUL.md, IDENTITY.md, USER.md, MEMORY.md"},{id:"configs",label:"CLAUDE.md",group:"configs",x:950,y:430,w:140,h:40,logCategories:["harness"],icon:"file-code",description:"Generated harness config files"},{id:"llm",label:"LLM Provider",group:"llm",x:710,y:560,w:140,h:40,logCategories:["llm"],diagnosticDomain:"provider",icon:"brain",description:"Ollama qwen3:4b (or configured provider)"}],It=new Map(Ue.map(u=>[u.id,u])),pr=[{from:"harness",to:"hooks",label:"POST"},{from:"hooks",to:"mutex"},{from:"hooks",to:"queue",label:"enqueue"},{from:"queue",to:"extraction"},{from:"queue",to:"summary"},{from:"queue",to:"document"},{from:"extraction",to:"database",label:"write"},{from:"summary",to:"database"},{from:"document",to:"database"},{from:"retention",to:"database"},{from:"maintenance",to:"database"},{from:"extraction",to:"llm"},{from:"summary",to:"llm"},{from:"database",to:"search"},{from:"search",to:"harness",dashed:!0,label:"recall"},{from:"watcher",to:"sync"},{from:"files",to:"watcher"},{from:"sync",to:"configs"},{from:"files",to:"sync"},{from:"summary",to:"files",label:".md"},{from:"configs",to:"harness",dashed:!0,label:"next session"}];function xr(){return{health:"unknown",score:0,lastActivity:null,pulseCount:0,queueDepth:0,processingRate:0,errorCount:0,recentLogs:[],metrics:{}}}const $t=new Map;for(const u of Ue)for(const o of u.logCategories){const l=$t.get(o);l?l.push(u.id):$t.set(o,[u.id])}const Ht=20;function hr(){const u={};for(const o of Ue)u[o.id]=xr();return u}const Ft=50,_=tr({nodes:hr(),mode:"unknown",connected:!1,lastPoll:null,selectedNodeId:null,feed:[]});let fe=null;function Bt(){fe&&(fe.close(),fe=null);const u="";fe=new EventSource(`${u}/api/logs/stream`),fe.onopen=()=>{_.connected=!0},fe.onmessage=o=>{try{const l=JSON.parse(o.data);if(l.type==="connected"){_.connected=!0;return}const s=[..._.feed,l];_.feed=s.length>Ft?s.slice(-Ft):s;const c=$t.get(l.category);if(!c)return;for(const N of c){const D=_.nodes[N];if(!D)continue;D.pulseCount+=1,D.lastActivity=l.timestamp;const L=[...D.recentLogs,l];D.recentLogs=L.length>Ht?L.slice(-Ht):L,l.level==="error"&&(D.errorCount+=1)}}catch{}},fe.onerror=()=>{_.connected=!1,fe?.close(),fe=null,setTimeout(()=>{fe||Bt()},3e3)}}function br(){_.connected=!1,fe?.close(),fe=null}let ct=null;function yr(u){return u>=.8?"healthy":u>=.5?"degraded":u>0?"unhealthy":"unknown"}function _r(u){for(const o of Ue){if(!o.diagnosticDomain)continue;const l=u[o.diagnosticDomain];if(!l)continue;const s=_.nodes[o.id];if(!s)continue;const c=typeof l.score=="number"?l.score:0;s.score=c,s.health=yr(c),s.metrics=l}}function wr(u){const o=_.nodes.queue;if(o){const c=u.memory,N=u.summary;o.queueDepth=c.pending+c.leased+N.pending+N.leased,o.metrics={memory:c,summary:N}}const l=_.nodes.extraction;l&&(l.queueDepth=u.memory.pending);const s=_.nodes.summary;s&&(s.queueDepth=u.summary.pending)}async function Yt(){try{const u=await dr();if(!u)return;if(_.mode=u.mode,_.lastPoll=new Date().toISOString(),u.diagnostics&&_r(u.diagnostics),u.queues&&wr(u.queues),u.workers)for(const[o,l]of Object.entries(u.workers)){const s=_.nodes[o];s&&l.running&&s.health==="unknown"&&(s.health="healthy",s.score=1)}if(u.errorSummary)for(const[o,l]of Object.entries(u.errorSummary)){const s=o==="extraction"||o==="decision"?"extraction":o==="embedding"||o==="mutation"?"database":o==="connector"?"sync":null;if(s){const c=_.nodes[s];c&&(c.errorCount=l)}}}catch{}}function kr(u=5e3){ct||(Yt(),ct=setInterval(Yt,u))}function Sr(){ct&&(clearInterval(ct),ct=null)}function Ut(u){_.selectedNodeId=u}var Cr=ae('<rect class="glow-bg svelte-1tib701" x="-6" y="-6" rx="10" ry="10" opacity="0.12"></rect>'),Pr=ae('<rect class="pulse-ring svelte-1tib701" x="-4" y="-4" rx="10" ry="10" fill="none"></rect>'),Er=ae('<rect class="flash-overlay svelte-1tib701" rx="6" ry="6"></rect>'),Dr=ae('<animate attributeName="opacity" values="1;0.4;1" dur="1.5s" repeatCount="indefinite" class="svelte-1tib701"></animate>'),Mr=ae('<g class="svelte-1tib701"><rect x="-12" y="-7" width="24" height="14" rx="7" opacity="0.95" class="svelte-1tib701"></rect><text x="0" y="1" text-anchor="middle" dominant-baseline="middle" fill="#fff" font-size="9" font-weight="600" font-family="var(--font-mono)" class="svelte-1tib701"> </text></g>'),Lr=ae('<g transform="translate(8, -6)" class="svelte-1tib701"><rect x="-12" y="-7" width="24" height="14" rx="7" fill="#ef4444" opacity="0.95" class="svelte-1tib701"></rect><text x="0" y="1" text-anchor="middle" dominant-baseline="middle" fill="#fff" font-size="9" font-weight="600" font-family="var(--font-mono)" class="svelte-1tib701"> </text></g>'),Tr=ae('<g style="cursor: pointer"><!><!><rect class="node-rect svelte-1tib701" rx="6" ry="6"></rect><!><circle cx="10" class="svelte-1tib701"><!></circle><text text-anchor="middle" dominant-baseline="middle" font-size="11" font-family="var(--font-mono)" class="svelte-1tib701"> </text><!><!></g>');function Or(u,o){vt(o,!0);let l=C(()=>ye[o.def.group]);const s={healthy:"#4ade80",degraded:"#fbbf24",unhealthy:"#f87171",unknown:"#6b6b76"};let c=C(()=>s[o.nodeState.health]),N=C(()=>o.nodeState.health==="unknown"?e(l)+"88":e(c)),D=U(0),L=U(!1),y=U(!1),k=null;Xt(()=>{if(o.nodeState.pulseCount>e(D)){h(D,o.nodeState.pulseCount,!0),h(L,!0);const p=setTimeout(()=>{h(L,!1)},1200);return h(y,!0),k&&clearTimeout(k),k=setTimeout(()=>{h(y,!1)},3e3),()=>{clearTimeout(p),k&&clearTimeout(k)}}});function oe(){o.onselectnode(o.def.id)}var G=Tr();let A;var V=a(G);{var _e=p=>{var x=Cr();b(()=>{d(x,"width",o.def.w+12),d(x,"height",o.def.h+12),d(x,"fill",e(l))}),f(p,x)};O(V,p=>{e(y)&&p(_e)})}var de=i(V);{var ue=p=>{var x=Pr();b(()=>{d(x,"width",o.def.w+8),d(x,"height",o.def.h+8),d(x,"stroke",e(l))}),f(p,x)};O(de,p=>{e(L)&&p(ue)})}var E=i(de),S=i(E);{var P=p=>{var x=Er();b(()=>{d(x,"width",o.def.w),d(x,"height",o.def.h),d(x,"fill",e(l))}),f(p,x)};O(S,p=>{e(L)&&p(P)})}var T=i(S),Q=a(T);{var F=p=>{var x=Dr();f(p,x)};O(Q,p=>{e(y)&&p(F)})}t(T);var $=i(T),v=a($,!0);t($);var w=i($);{var H=p=>{var x=Mr(),z=a(x),ne=i(z),Re=a(ne,!0);t(ne),t(x),b(()=>{d(x,"transform",`translate(${o.def.w-8}, -6)`),d(z,"fill",e(l)),m(Re,o.nodeState.queueDepth)}),f(p,x)};O(w,p=>{o.nodeState.queueDepth>0&&p(H)})}var R=i(w);{var W=p=>{var x=Lr(),z=i(a(x)),ne=a(z,!0);t(z),t(x),b(()=>m(ne,o.nodeState.errorCount)),f(p,x)};O(R,p=>{o.nodeState.errorCount>0&&p(W)})}t(G),b(()=>{A=$e(G,0,"pipeline-node svelte-1tib701",null,A,{"pipeline-node--selected":o.selected,"pipeline-node--active":e(y)}),d(G,"transform",`translate(${o.def.x??""}, ${o.def.y??""})`),d(E,"width",o.def.w),d(E,"height",o.def.h),d(E,"fill",e(y)?e(l)+"18":"var(--sig-surface-raised)"),d(E,"stroke",e(y)?e(l):e(N)),d(E,"stroke-width",o.selected?2.5:e(y)?1.5:1),d(T,"cy",o.def.h/2),d(T,"r",e(y)?4:3),d(T,"fill",e(y)?e(l):e(c)),d(T,"opacity",e(y)?1:.7),d($,"x",o.def.w/2),d($,"y",o.def.h/2+1),d($,"fill",e(y)?e(l):"var(--sig-text-bright)"),d($,"font-weight",e(y)?"600":"400"),m(v,o.def.label)}),De("click",G,oe),f(u,G),ft()}Rt(["click"]);var Nr=ae('<path fill="none" stroke-width="4" opacity="0.15" class="edge-glow svelte-kl8ook"></path>'),Ar=ae('<circle r="2" opacity="0.6" class="svelte-kl8ook"><animateMotion repeatCount="indefinite" begin="0.5s" class="svelte-kl8ook"></animateMotion></circle>'),Ir=ae('<circle class="svelte-kl8ook"><animateMotion repeatCount="indefinite" class="svelte-kl8ook"></animateMotion></circle><!>',1),$r=ae('<text text-anchor="middle" font-size="9" font-family="var(--font-mono)" class="svelte-kl8ook"> </text>'),Rr=ae('<g class="pipeline-edge svelte-kl8ook"><path fill="none"></path><!><!><!></g>');function jr(u,o){vt(o,!0);let l=C(()=>It.get(o.edge.from)),s=C(()=>It.get(o.edge.to)),c=C(()=>e(l)?ye[e(l).group]:"#6b6b76"),N=C(()=>{if(!e(l)||!e(s))return"";const E=e(l).x+e(l).w/2,S=e(l).y+e(l).h/2,P=e(s).x+e(s).w/2,T=e(s).y+e(s).h/2,Q=(E+P)/2,F=(S+T)/2,$=Math.abs(P-E),v=Math.abs(T-S);return $>v?`M ${E} ${S} Q ${Q} ${S}, ${Q} ${F} Q ${Q} ${T}, ${P} ${T}`:`M ${E} ${S} Q ${E} ${F}, ${Q} ${F} Q ${P} ${F}, ${P} ${T}`}),D=C(()=>!e(l)||!e(s)?{x:0,y:0}:{x:(e(l).x+e(l).w/2+e(s).x+e(s).w/2)/2,y:(e(l).y+e(l).h/2+e(s).y+e(s).h/2)/2-8}),L=C(()=>o.active?"1s":"3s");var y=Rr(),k=a(y);let oe;var G=i(k);{var A=E=>{var S=Nr();b(()=>{d(S,"d",e(N)),d(S,"stroke",e(c))}),f(E,S)};O(G,E=>{o.active&&!o.edge.dashed&&E(A)})}var V=i(G);{var _e=E=>{var S=Ir(),P=re(S),T=a(P);t(P);var Q=i(P);{var F=$=>{var v=Ar(),w=a(v);t(v),b(()=>{d(v,"fill",e(c)),d(w,"dur",e(L)),d(w,"path",e(N))}),f($,v)};O(Q,$=>{o.active&&$(F)})}b(()=>{d(P,"r",o.active?3.5:2),d(P,"fill",o.active?e(c):"var(--sig-border)"),d(P,"opacity",o.active?1:.3),d(T,"dur",e(L)),d(T,"path",e(N))}),f(E,S)};O(V,E=>{o.edge.dashed||E(_e)})}var de=i(V);{var ue=E=>{var S=$r(),P=a(S,!0);t(S),b(()=>{d(S,"x",e(D).x),d(S,"y",e(D).y),d(S,"fill",o.active?e(c):"var(--sig-text-muted)"),d(S,"opacity",o.active?.9:.45),m(P,o.edge.label)}),f(E,S)};O(de,E=>{o.edge.label&&E(ue)})}t(y),b(()=>{d(k,"d",e(N)),d(k,"stroke",o.active?e(c):"var(--sig-border)"),d(k,"stroke-width",o.active?1.5:.8),d(k,"stroke-dasharray",o.edge.dashed?"6 4":"none"),d(k,"opacity",o.active?.8:.25),oe=$e(k,0,"svelte-kl8ook",null,oe,{"edge-active":o.active})}),f(u,y),ft()}var qr=ae('<g><rect rx="8" ry="8" fill-opacity="0.06" stroke-opacity="0.25" stroke-width="1" stroke-dasharray="4 3"></rect><text font-size="9" font-family="var(--font-mono)" opacity="0.6" letter-spacing="0.08em"> </text></g>'),Gr=ae('<svg viewBox="0 0 1160 650" preserveAspectRatio="xMidYMid meet" class="w-full h-full select-none" xmlns="http://www.w3.org/2000/svg" role="application" aria-label="Pipeline graph. Use mouse wheel to zoom, drag background to pan, double-click to reset."><defs><filter id="glow" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="3" result="blur"></feGaussianBlur><feMerge><feMergeNode in="blur"></feMergeNode><feMergeNode in="SourceGraphic"></feMergeNode></feMerge></filter><marker id="arrow" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="var(--sig-border-strong)"></path></marker></defs><g><!><!><!></g></svg>');function Hr(u,o){vt(o,!0);const l=Object.entries(gr),s=.7,c=2.4,N=.12;let D=U(1),L=U(0),y=U(0),k=U(!1),oe=U(0),G=U(0);function A(v){const w=_.nodes[v];return w?.lastActivity?Date.now()-new Date(w.lastActivity).getTime()<5e3:!1}function V(v){return Math.min(c,Math.max(s,v))}function _e(){h(D,1),h(L,0),h(y,0)}function de(v){v.preventDefault();const w=v.currentTarget;if(!(w instanceof SVGSVGElement))return;const H=w.getBoundingClientRect(),R=v.clientX-H.left,W=v.clientY-H.top,p=v.deltaY<0?1:-1,x=V(e(D)+p*N);if(x===e(D))return;const z=(R-e(L))/e(D),ne=(W-e(y))/e(D);h(D,x,!0),h(L,R-z*x),h(y,W-ne*x)}function ue(v){if(v.button!==0||v.target!==v.currentTarget)return;const w=v.currentTarget;w instanceof SVGSVGElement&&w.setPointerCapture(v.pointerId),h(k,!0),h(oe,v.clientX,!0),h(G,v.clientY,!0)}function E(v){if(!e(k))return;const w=v.clientX-e(oe),H=v.clientY-e(G);h(oe,v.clientX,!0),h(G,v.clientY,!0),h(L,e(L)+w),h(y,e(y)+H)}function S(v){if(!e(k))return;const w=v.currentTarget;w instanceof SVGSVGElement&&w.releasePointerCapture(v.pointerId),h(k,!1)}var P=Gr(),T=i(a(P)),Q=a(T);Ne(Q,17,()=>l,lt,(v,w)=>{var H=C(()=>Nt(e(w),2));let R=()=>e(H)[1];var W=qr(),p=a(W),x=i(p),z=a(x,!0);t(x),t(W),b(ne=>{d(p,"x",R().x),d(p,"y",R().y),d(p,"width",R().w),d(p,"height",R().h),d(p,"fill",R().color),d(p,"stroke",R().color),d(x,"x",R().x+8),d(x,"y",R().y+14),d(x,"fill",R().color),m(z,ne)},[()=>R().label.toUpperCase()]),f(v,W)});var F=i(Q);Ne(F,17,()=>pr,v=>v.from+"-"+v.to,(v,w)=>{{let H=C(()=>A(e(w).from));jr(v,{get edge(){return e(w)},get active(){return e(H)}})}});var $=i(F);Ne($,17,()=>Ue,v=>v.id,(v,w)=>{{let H=C(()=>_.selectedNodeId===e(w).id);Or(v,{get def(){return e(w)},get nodeState(){return _.nodes[e(w).id]},get selected(){return e(H)},get onselectnode(){return o.onselectnode}})}}),t(T),t(P),b(()=>d(T,"transform",`translate(${e(L)} ${e(y)}) scale(${e(D)})`)),kt("wheel",P,de),De("pointerdown",P,ue),De("pointermove",P,E),De("pointerup",P,S),kt("pointercancel",P,S),kt("pointerleave",P,S),De("dblclick",P,_e),f(u,P),ft()}Rt(["pointerdown","pointermove","pointerup","dblclick"]);var Fr=M(" <!>",1),Yr=M("<!> <!>",1),Xr=M('<div class="flex justify-between px-2"><span class="text-[var(--sig-text-muted)]"> </span> <span class="text-[var(--sig-text-bright)]"> </span></div>'),zr=M('<div class="text-[var(--sig-text-muted)] mt-1"> </div> <!>',1),Br=M('<div class="flex justify-between"><span class="text-[var(--sig-text-muted)]"> </span> <span class="text-[var(--sig-text-bright)]"> </span></div>'),Ur=M('<section><h4 class="text-[10px] uppercase tracking-[0.1em] text-[var(--sig-text-muted)] mb-2 font-[family-name:var(--font-display)]">Queue Details</h4> <div class="space-y-1 text-[11px] font-[family-name:var(--font-mono)]"></div></section>'),Vr=M('<section><h4 class="text-[10px] uppercase tracking-[0.1em] text-[var(--sig-text-muted)] mb-1 font-[family-name:var(--font-display)]">Last Activity</h4> <span class="text-[11px] text-[var(--sig-text)] font-[family-name:var(--font-mono)]"> </span></section>'),Qr=M('<div class="flex gap-2 py-1 px-1 text-[10px] font-[family-name:var(--font-mono)] hover:bg-[var(--sig-surface-raised)] rounded"><span class="text-[var(--sig-text-muted)] shrink-0 w-[52px]"> </span> <span> </span> <span class="text-[var(--sig-text)] truncate"> </span></div>'),Wr=M('<div class="text-[10px] text-[var(--sig-text-muted)] italic py-2">No recent activity</div>'),Zr=M('<!> <div class="mt-4 space-y-4 overflow-y-auto pr-2" style="max-height: calc(100vh - 140px);"><section><h4 class="text-[10px] uppercase tracking-[0.1em] text-[var(--sig-text-muted)] mb-2 font-[family-name:var(--font-display)]">Metrics</h4> <div class="grid grid-cols-3 gap-2"><div class="p-2 rounded bg-[var(--sig-surface)] border border-[var(--sig-border)]"><div class="text-[9px] text-[var(--sig-text-muted)] uppercase">Score</div> <div class="text-[15px] text-[var(--sig-text-bright)] font-[family-name:var(--font-mono)]"> </div></div> <div class="p-2 rounded bg-[var(--sig-surface)] border border-[var(--sig-border)]"><div class="text-[9px] text-[var(--sig-text-muted)] uppercase">Queue</div> <div class="text-[15px] text-[var(--sig-text-bright)] font-[family-name:var(--font-mono)]"> </div></div> <div class="p-2 rounded bg-[var(--sig-surface)] border border-[var(--sig-border)]"><div class="text-[9px] text-[var(--sig-text-muted)] uppercase">Errors</div> <div> </div></div></div></section> <!> <!> <section><h4 class="text-[10px] uppercase tracking-[0.1em] text-[var(--sig-text-muted)] mb-2 font-[family-name:var(--font-display)]"> </h4> <div class="space-y-px max-h-[300px] overflow-y-auto"><!> <!></div></section></div>',1);function Jr(u,o){vt(o,!0);let l=C(()=>_.selectedNodeId),s=C(()=>e(l)?It.get(e(l))??null:null),c=C(()=>e(l)?_.nodes[e(l)]??null:null),N=C(()=>e(l)!==null);function D(A){A||Ut(null)}function L(A){try{return new Date(A).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return A}}function y(A){switch(A){case"error":return"text-[#e06c75]";case"warn":return"text-[#e5c07b]";case"debug":return"text-[#6b6b76]";default:return"text-[var(--sig-text)]"}}let k=C(()=>{if(!e(c)?.metrics)return null;const A=e(c).metrics;return A.memory||A.summary||typeof A.depth=="number"?A:null});var oe=st(),G=re(oe);Ee(G,()=>ur,(A,V)=>{V(A,{get open(){return e(N)},onOpenChange:D,children:(_e,de)=>{var ue=st(),E=re(ue);Ee(E,()=>cr,(S,P)=>{P(S,{side:"right",class:"w-[380px] bg-[var(--sig-bg)] border-l border-[var(--sig-border)]",children:(T,Q)=>{var F=st(),$=re(F);{var v=w=>{var H=Zr(),R=re(H);Ee(R,()=>vr,(I,j)=>{j(I,{children:(Z,ce)=>{var pe=Yr(),J=re(pe);Ee(J,()=>fr,(ie,ve)=>{ve(ie,{class:"flex items-center gap-2 font-[family-name:var(--font-display)] text-[var(--sig-text-bright)]",children:(ke,Me)=>{dt();var X=Fr(),se=re(X),K=i(se);{let xe=C(()=>e(c).health==="healthy"?"border-[#4a7a5e] text-[#4a7a5e]":e(c).health==="degraded"?"border-[#b8860b] text-[#b8860b]":e(c).health==="unhealthy"?"border-[#8a4a48] text-[#8a4a48]":"border-[var(--sig-border)] text-[var(--sig-text-muted)]");zt(K,{variant:"outline",get class(){return`text-[9px] px-1.5 py-0 font-[family-name:var(--font-mono)]
|
|
1
|
+
import{p as tr,a as vt,P as Xt,g as e,b as h,c as a,i as O,d as i,r as t,e as b,M as $e,N as d,f as m,y as De,h as f,l as ft,u as C,s as U,al as ae,A as Rt,q as re,v as Ne,w as lt,a6 as kt,am as Nt,m as st,G as Ee,n as dt,t as At,z as M,o as rr,I as ar,ab as qt,J as or}from"./cZT7cFE6.js";import{B as zt}from"./CRNKcIYA.js";import{S as nr}from"./Bvq5nor8.js";import{P as ir,a as sr,b as lr}from"./DqdbNUYA.js";import{D as dr,S as cr,E as vr,F as fr,G as ur,H as mr}from"./DV5sVIyK.js";import{w as wt,s as Gt}from"./Br6JlEV2.js";const ye={harness:"#4dabf7",daemon:"#ff922b",pipeline:"#da77f2",db:"#ffd43b",search:"#da77f2",files:"#20c997",configs:"#4dabf7",llm:"#fcc419"},Oe={harness:"AI Harness",daemon:"Signet Daemon",pipeline:"Pipeline Workers",db:"memories.db",search:"Hybrid Recall",files:"~/.agents/",configs:"Harness Configs",llm:"LLM Provider"},gr={harness:{x:20,y:20,w:240,h:120,label:Oe.harness,color:ye.harness},daemon:{x:300,y:20,w:340,h:280,label:Oe.daemon,color:ye.daemon},pipeline:{x:20,y:360,w:620,h:140,label:Oe.pipeline,color:ye.pipeline},db:{x:680,y:160,w:200,h:200,label:Oe.db,color:ye.db},search:{x:920,y:160,w:200,h:140,label:Oe.search,color:ye.search},files:{x:680,y:400,w:200,h:100,label:Oe.files,color:ye.files},configs:{x:920,y:400,w:200,h:100,label:Oe.configs,color:ye.configs},llm:{x:680,y:540,w:200,h:80,label:Oe.llm,color:ye.llm}},Ue=[{id:"harness",label:"AI Client",group:"harness",x:40,y:55,w:200,h:50,logCategories:["hooks","session-tracker"],icon:"terminal",description:"Claude Code / OpenCode / OpenClaw — sends session hooks"},{id:"hooks",label:"Hook Handlers",group:"daemon",x:320,y:50,w:140,h:40,logCategories:["hooks"],icon:"webhook",description:"Session lifecycle hooks (start, submit, remember, recall, end)"},{id:"mutex",label:"Session Mutex",group:"daemon",x:320,y:110,w:140,h:40,logCategories:["session-tracker"],icon:"lock",description:"Plugin vs legacy runtime path enforcement"},{id:"queue",label:"Job Queues",group:"daemon",x:320,y:170,w:140,h:40,logCategories:["pipeline"],diagnosticDomain:"queue",icon:"layers",description:"memory_jobs + summary_jobs durable queues"},{id:"watcher",label:"File Watcher",group:"daemon",x:490,y:110,w:130,h:40,logCategories:["watcher"],icon:"eye",description:"Chokidar file change detection on ~/.agents/"},{id:"sync",label:"Harness Sync",group:"daemon",x:490,y:170,w:130,h:40,logCategories:["sync"],diagnosticDomain:"connector",icon:"refresh-cw",description:"Generate CLAUDE.md, AGENTS.md from identity files"},{id:"extraction",label:"Extraction",group:"pipeline",x:40,y:395,w:110,h:40,logCategories:["pipeline"],diagnosticDomain:"queue",icon:"cpu",description:"LLM extracts facts + entities (2s poll)"},{id:"summary",label:"Summary",group:"pipeline",x:165,y:395,w:100,h:40,logCategories:["summary-worker"],icon:"file-text",description:"Session-end transcript summarizer (5s poll)"},{id:"document",label:"Document",group:"pipeline",x:280,y:395,w:100,h:40,logCategories:["document-worker"],icon:"file-plus",description:"Chunk + embed documents (10s poll)"},{id:"retention",label:"Retention",group:"pipeline",x:395,y:395,w:100,h:40,logCategories:["retention"],diagnosticDomain:"mutation",icon:"trash-2",description:"Purge expired data (6h interval)"},{id:"maintenance",label:"Maintenance",group:"pipeline",x:510,y:395,w:110,h:40,logCategories:["maintenance"],icon:"wrench",description:"Self-repair + diagnostics (30min interval)"},{id:"database",label:"SQLite",group:"db",x:710,y:220,w:140,h:80,logCategories:["memory","embedding"],diagnosticDomain:"storage",icon:"database",description:"memories, embeddings, entities, relations, history"},{id:"search",label:"Hybrid Recall",group:"search",x:940,y:200,w:160,h:60,logCategories:["memory"],diagnosticDomain:"index",icon:"search",description:"BM25 + vector similarity + graph boost"},{id:"files",label:"Identity Files",group:"files",x:710,y:430,w:140,h:40,logCategories:["sync"],icon:"folder",description:"AGENTS.md, SOUL.md, IDENTITY.md, USER.md, MEMORY.md"},{id:"configs",label:"CLAUDE.md",group:"configs",x:950,y:430,w:140,h:40,logCategories:["harness"],icon:"file-code",description:"Generated harness config files"},{id:"llm",label:"LLM Provider",group:"llm",x:710,y:560,w:140,h:40,logCategories:["llm"],diagnosticDomain:"provider",icon:"brain",description:"Ollama qwen3:4b (or configured provider)"}],It=new Map(Ue.map(u=>[u.id,u])),pr=[{from:"harness",to:"hooks",label:"POST"},{from:"hooks",to:"mutex"},{from:"hooks",to:"queue",label:"enqueue"},{from:"queue",to:"extraction"},{from:"queue",to:"summary"},{from:"queue",to:"document"},{from:"extraction",to:"database",label:"write"},{from:"summary",to:"database"},{from:"document",to:"database"},{from:"retention",to:"database"},{from:"maintenance",to:"database"},{from:"extraction",to:"llm"},{from:"summary",to:"llm"},{from:"database",to:"search"},{from:"search",to:"harness",dashed:!0,label:"recall"},{from:"watcher",to:"sync"},{from:"files",to:"watcher"},{from:"sync",to:"configs"},{from:"files",to:"sync"},{from:"summary",to:"files",label:".md"},{from:"configs",to:"harness",dashed:!0,label:"next session"}];function xr(){return{health:"unknown",score:0,lastActivity:null,pulseCount:0,queueDepth:0,processingRate:0,errorCount:0,recentLogs:[],metrics:{}}}const $t=new Map;for(const u of Ue)for(const o of u.logCategories){const l=$t.get(o);l?l.push(u.id):$t.set(o,[u.id])}const Ht=20;function hr(){const u={};for(const o of Ue)u[o.id]=xr();return u}const Ft=50,_=tr({nodes:hr(),mode:"unknown",connected:!1,lastPoll:null,selectedNodeId:null,feed:[]});let fe=null;function Bt(){fe&&(fe.close(),fe=null);const u="";fe=new EventSource(`${u}/api/logs/stream`),fe.onopen=()=>{_.connected=!0},fe.onmessage=o=>{try{const l=JSON.parse(o.data);if(l.type==="connected"){_.connected=!0;return}const s=[..._.feed,l];_.feed=s.length>Ft?s.slice(-Ft):s;const c=$t.get(l.category);if(!c)return;for(const N of c){const D=_.nodes[N];if(!D)continue;D.pulseCount+=1,D.lastActivity=l.timestamp;const L=[...D.recentLogs,l];D.recentLogs=L.length>Ht?L.slice(-Ht):L,l.level==="error"&&(D.errorCount+=1)}}catch{}},fe.onerror=()=>{_.connected=!1,fe?.close(),fe=null,setTimeout(()=>{fe||Bt()},3e3)}}function br(){_.connected=!1,fe?.close(),fe=null}let ct=null;function yr(u){return u>=.8?"healthy":u>=.5?"degraded":u>0?"unhealthy":"unknown"}function _r(u){for(const o of Ue){if(!o.diagnosticDomain)continue;const l=u[o.diagnosticDomain];if(!l)continue;const s=_.nodes[o.id];if(!s)continue;const c=typeof l.score=="number"?l.score:0;s.score=c,s.health=yr(c),s.metrics=l}}function wr(u){const o=_.nodes.queue;if(o){const c=u.memory,N=u.summary;o.queueDepth=c.pending+c.leased+N.pending+N.leased,o.metrics={memory:c,summary:N}}const l=_.nodes.extraction;l&&(l.queueDepth=u.memory.pending);const s=_.nodes.summary;s&&(s.queueDepth=u.summary.pending)}async function Yt(){try{const u=await dr();if(!u)return;if(_.mode=u.mode,_.lastPoll=new Date().toISOString(),u.diagnostics&&_r(u.diagnostics),u.queues&&wr(u.queues),u.workers)for(const[o,l]of Object.entries(u.workers)){const s=_.nodes[o];s&&l.running&&s.health==="unknown"&&(s.health="healthy",s.score=1)}if(u.errorSummary)for(const[o,l]of Object.entries(u.errorSummary)){const s=o==="extraction"||o==="decision"?"extraction":o==="embedding"||o==="mutation"?"database":o==="connector"?"sync":null;if(s){const c=_.nodes[s];c&&(c.errorCount=l)}}}catch{}}function kr(u=5e3){ct||(Yt(),ct=setInterval(Yt,u))}function Sr(){ct&&(clearInterval(ct),ct=null)}function Ut(u){_.selectedNodeId=u}var Cr=ae('<rect class="glow-bg svelte-1tib701" x="-6" y="-6" rx="10" ry="10" opacity="0.12"></rect>'),Pr=ae('<rect class="pulse-ring svelte-1tib701" x="-4" y="-4" rx="10" ry="10" fill="none"></rect>'),Er=ae('<rect class="flash-overlay svelte-1tib701" rx="6" ry="6"></rect>'),Dr=ae('<animate attributeName="opacity" values="1;0.4;1" dur="1.5s" repeatCount="indefinite" class="svelte-1tib701"></animate>'),Mr=ae('<g class="svelte-1tib701"><rect x="-12" y="-7" width="24" height="14" rx="7" opacity="0.95" class="svelte-1tib701"></rect><text x="0" y="1" text-anchor="middle" dominant-baseline="middle" fill="#fff" font-size="9" font-weight="600" font-family="var(--font-mono)" class="svelte-1tib701"> </text></g>'),Lr=ae('<g transform="translate(8, -6)" class="svelte-1tib701"><rect x="-12" y="-7" width="24" height="14" rx="7" fill="#ef4444" opacity="0.95" class="svelte-1tib701"></rect><text x="0" y="1" text-anchor="middle" dominant-baseline="middle" fill="#fff" font-size="9" font-weight="600" font-family="var(--font-mono)" class="svelte-1tib701"> </text></g>'),Tr=ae('<g style="cursor: pointer"><!><!><rect class="node-rect svelte-1tib701" rx="6" ry="6"></rect><!><circle cx="10" class="svelte-1tib701"><!></circle><text text-anchor="middle" dominant-baseline="middle" font-size="11" font-family="var(--font-mono)" class="svelte-1tib701"> </text><!><!></g>');function Or(u,o){vt(o,!0);let l=C(()=>ye[o.def.group]);const s={healthy:"#4ade80",degraded:"#fbbf24",unhealthy:"#f87171",unknown:"#6b6b76"};let c=C(()=>s[o.nodeState.health]),N=C(()=>o.nodeState.health==="unknown"?e(l)+"88":e(c)),D=U(0),L=U(!1),y=U(!1),k=null;Xt(()=>{if(o.nodeState.pulseCount>e(D)){h(D,o.nodeState.pulseCount,!0),h(L,!0);const p=setTimeout(()=>{h(L,!1)},1200);return h(y,!0),k&&clearTimeout(k),k=setTimeout(()=>{h(y,!1)},3e3),()=>{clearTimeout(p),k&&clearTimeout(k)}}});function oe(){o.onselectnode(o.def.id)}var G=Tr();let A;var V=a(G);{var _e=p=>{var x=Cr();b(()=>{d(x,"width",o.def.w+12),d(x,"height",o.def.h+12),d(x,"fill",e(l))}),f(p,x)};O(V,p=>{e(y)&&p(_e)})}var de=i(V);{var ue=p=>{var x=Pr();b(()=>{d(x,"width",o.def.w+8),d(x,"height",o.def.h+8),d(x,"stroke",e(l))}),f(p,x)};O(de,p=>{e(L)&&p(ue)})}var E=i(de),S=i(E);{var P=p=>{var x=Er();b(()=>{d(x,"width",o.def.w),d(x,"height",o.def.h),d(x,"fill",e(l))}),f(p,x)};O(S,p=>{e(L)&&p(P)})}var T=i(S),Q=a(T);{var F=p=>{var x=Dr();f(p,x)};O(Q,p=>{e(y)&&p(F)})}t(T);var $=i(T),v=a($,!0);t($);var w=i($);{var H=p=>{var x=Mr(),z=a(x),ne=i(z),Re=a(ne,!0);t(ne),t(x),b(()=>{d(x,"transform",`translate(${o.def.w-8}, -6)`),d(z,"fill",e(l)),m(Re,o.nodeState.queueDepth)}),f(p,x)};O(w,p=>{o.nodeState.queueDepth>0&&p(H)})}var R=i(w);{var W=p=>{var x=Lr(),z=i(a(x)),ne=a(z,!0);t(z),t(x),b(()=>m(ne,o.nodeState.errorCount)),f(p,x)};O(R,p=>{o.nodeState.errorCount>0&&p(W)})}t(G),b(()=>{A=$e(G,0,"pipeline-node svelte-1tib701",null,A,{"pipeline-node--selected":o.selected,"pipeline-node--active":e(y)}),d(G,"transform",`translate(${o.def.x??""}, ${o.def.y??""})`),d(E,"width",o.def.w),d(E,"height",o.def.h),d(E,"fill",e(y)?e(l)+"18":"var(--sig-surface-raised)"),d(E,"stroke",e(y)?e(l):e(N)),d(E,"stroke-width",o.selected?2.5:e(y)?1.5:1),d(T,"cy",o.def.h/2),d(T,"r",e(y)?4:3),d(T,"fill",e(y)?e(l):e(c)),d(T,"opacity",e(y)?1:.7),d($,"x",o.def.w/2),d($,"y",o.def.h/2+1),d($,"fill",e(y)?e(l):"var(--sig-text-bright)"),d($,"font-weight",e(y)?"600":"400"),m(v,o.def.label)}),De("click",G,oe),f(u,G),ft()}Rt(["click"]);var Nr=ae('<path fill="none" stroke-width="4" opacity="0.15" class="edge-glow svelte-kl8ook"></path>'),Ar=ae('<circle r="2" opacity="0.6" class="svelte-kl8ook"><animateMotion repeatCount="indefinite" begin="0.5s" class="svelte-kl8ook"></animateMotion></circle>'),Ir=ae('<circle class="svelte-kl8ook"><animateMotion repeatCount="indefinite" class="svelte-kl8ook"></animateMotion></circle><!>',1),$r=ae('<text text-anchor="middle" font-size="9" font-family="var(--font-mono)" class="svelte-kl8ook"> </text>'),Rr=ae('<g class="pipeline-edge svelte-kl8ook"><path fill="none"></path><!><!><!></g>');function jr(u,o){vt(o,!0);let l=C(()=>It.get(o.edge.from)),s=C(()=>It.get(o.edge.to)),c=C(()=>e(l)?ye[e(l).group]:"#6b6b76"),N=C(()=>{if(!e(l)||!e(s))return"";const E=e(l).x+e(l).w/2,S=e(l).y+e(l).h/2,P=e(s).x+e(s).w/2,T=e(s).y+e(s).h/2,Q=(E+P)/2,F=(S+T)/2,$=Math.abs(P-E),v=Math.abs(T-S);return $>v?`M ${E} ${S} Q ${Q} ${S}, ${Q} ${F} Q ${Q} ${T}, ${P} ${T}`:`M ${E} ${S} Q ${E} ${F}, ${Q} ${F} Q ${P} ${F}, ${P} ${T}`}),D=C(()=>!e(l)||!e(s)?{x:0,y:0}:{x:(e(l).x+e(l).w/2+e(s).x+e(s).w/2)/2,y:(e(l).y+e(l).h/2+e(s).y+e(s).h/2)/2-8}),L=C(()=>o.active?"1s":"3s");var y=Rr(),k=a(y);let oe;var G=i(k);{var A=E=>{var S=Nr();b(()=>{d(S,"d",e(N)),d(S,"stroke",e(c))}),f(E,S)};O(G,E=>{o.active&&!o.edge.dashed&&E(A)})}var V=i(G);{var _e=E=>{var S=Ir(),P=re(S),T=a(P);t(P);var Q=i(P);{var F=$=>{var v=Ar(),w=a(v);t(v),b(()=>{d(v,"fill",e(c)),d(w,"dur",e(L)),d(w,"path",e(N))}),f($,v)};O(Q,$=>{o.active&&$(F)})}b(()=>{d(P,"r",o.active?3.5:2),d(P,"fill",o.active?e(c):"var(--sig-border)"),d(P,"opacity",o.active?1:.3),d(T,"dur",e(L)),d(T,"path",e(N))}),f(E,S)};O(V,E=>{o.edge.dashed||E(_e)})}var de=i(V);{var ue=E=>{var S=$r(),P=a(S,!0);t(S),b(()=>{d(S,"x",e(D).x),d(S,"y",e(D).y),d(S,"fill",o.active?e(c):"var(--sig-text-muted)"),d(S,"opacity",o.active?.9:.45),m(P,o.edge.label)}),f(E,S)};O(de,E=>{o.edge.label&&E(ue)})}t(y),b(()=>{d(k,"d",e(N)),d(k,"stroke",o.active?e(c):"var(--sig-border)"),d(k,"stroke-width",o.active?1.5:.8),d(k,"stroke-dasharray",o.edge.dashed?"6 4":"none"),d(k,"opacity",o.active?.8:.25),oe=$e(k,0,"svelte-kl8ook",null,oe,{"edge-active":o.active})}),f(u,y),ft()}var qr=ae('<g><rect rx="8" ry="8" fill-opacity="0.06" stroke-opacity="0.25" stroke-width="1" stroke-dasharray="4 3"></rect><text font-size="9" font-family="var(--font-mono)" opacity="0.6" letter-spacing="0.08em"> </text></g>'),Gr=ae('<svg viewBox="0 0 1160 650" preserveAspectRatio="xMidYMid meet" class="w-full h-full select-none" xmlns="http://www.w3.org/2000/svg" role="application" aria-label="Pipeline graph. Use mouse wheel to zoom, drag background to pan, double-click to reset."><defs><filter id="glow" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="3" result="blur"></feGaussianBlur><feMerge><feMergeNode in="blur"></feMergeNode><feMergeNode in="SourceGraphic"></feMergeNode></feMerge></filter><marker id="arrow" viewBox="0 0 10 10" refX="10" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="var(--sig-border-strong)"></path></marker></defs><g><!><!><!></g></svg>');function Hr(u,o){vt(o,!0);const l=Object.entries(gr),s=.7,c=2.4,N=.12;let D=U(1),L=U(0),y=U(0),k=U(!1),oe=U(0),G=U(0);function A(v){const w=_.nodes[v];return w?.lastActivity?Date.now()-new Date(w.lastActivity).getTime()<5e3:!1}function V(v){return Math.min(c,Math.max(s,v))}function _e(){h(D,1),h(L,0),h(y,0)}function de(v){v.preventDefault();const w=v.currentTarget;if(!(w instanceof SVGSVGElement))return;const H=w.getBoundingClientRect(),R=v.clientX-H.left,W=v.clientY-H.top,p=v.deltaY<0?1:-1,x=V(e(D)+p*N);if(x===e(D))return;const z=(R-e(L))/e(D),ne=(W-e(y))/e(D);h(D,x,!0),h(L,R-z*x),h(y,W-ne*x)}function ue(v){if(v.button!==0||v.target!==v.currentTarget)return;const w=v.currentTarget;w instanceof SVGSVGElement&&w.setPointerCapture(v.pointerId),h(k,!0),h(oe,v.clientX,!0),h(G,v.clientY,!0)}function E(v){if(!e(k))return;const w=v.clientX-e(oe),H=v.clientY-e(G);h(oe,v.clientX,!0),h(G,v.clientY,!0),h(L,e(L)+w),h(y,e(y)+H)}function S(v){if(!e(k))return;const w=v.currentTarget;w instanceof SVGSVGElement&&w.releasePointerCapture(v.pointerId),h(k,!1)}var P=Gr(),T=i(a(P)),Q=a(T);Ne(Q,17,()=>l,lt,(v,w)=>{var H=C(()=>Nt(e(w),2));let R=()=>e(H)[1];var W=qr(),p=a(W),x=i(p),z=a(x,!0);t(x),t(W),b(ne=>{d(p,"x",R().x),d(p,"y",R().y),d(p,"width",R().w),d(p,"height",R().h),d(p,"fill",R().color),d(p,"stroke",R().color),d(x,"x",R().x+8),d(x,"y",R().y+14),d(x,"fill",R().color),m(z,ne)},[()=>R().label.toUpperCase()]),f(v,W)});var F=i(Q);Ne(F,17,()=>pr,v=>v.from+"-"+v.to,(v,w)=>{{let H=C(()=>A(e(w).from));jr(v,{get edge(){return e(w)},get active(){return e(H)}})}});var $=i(F);Ne($,17,()=>Ue,v=>v.id,(v,w)=>{{let H=C(()=>_.selectedNodeId===e(w).id);Or(v,{get def(){return e(w)},get nodeState(){return _.nodes[e(w).id]},get selected(){return e(H)},get onselectnode(){return o.onselectnode}})}}),t(T),t(P),b(()=>d(T,"transform",`translate(${e(L)} ${e(y)}) scale(${e(D)})`)),kt("wheel",P,de),De("pointerdown",P,ue),De("pointermove",P,E),De("pointerup",P,S),kt("pointercancel",P,S),kt("pointerleave",P,S),De("dblclick",P,_e),f(u,P),ft()}Rt(["pointerdown","pointermove","pointerup","dblclick"]);var Fr=M(" <!>",1),Yr=M("<!> <!>",1),Xr=M('<div class="flex justify-between px-2"><span class="text-[var(--sig-text-muted)]"> </span> <span class="text-[var(--sig-text-bright)]"> </span></div>'),zr=M('<div class="text-[var(--sig-text-muted)] mt-1"> </div> <!>',1),Br=M('<div class="flex justify-between"><span class="text-[var(--sig-text-muted)]"> </span> <span class="text-[var(--sig-text-bright)]"> </span></div>'),Ur=M('<section><h4 class="text-[10px] uppercase tracking-[0.1em] text-[var(--sig-text-muted)] mb-2 font-[family-name:var(--font-display)]">Queue Details</h4> <div class="space-y-1 text-[11px] font-[family-name:var(--font-mono)]"></div></section>'),Vr=M('<section><h4 class="text-[10px] uppercase tracking-[0.1em] text-[var(--sig-text-muted)] mb-1 font-[family-name:var(--font-display)]">Last Activity</h4> <span class="text-[11px] text-[var(--sig-text)] font-[family-name:var(--font-mono)]"> </span></section>'),Qr=M('<div class="flex gap-2 py-1 px-1 text-[10px] font-[family-name:var(--font-mono)] hover:bg-[var(--sig-surface-raised)] rounded"><span class="text-[var(--sig-text-muted)] shrink-0 w-[52px]"> </span> <span> </span> <span class="text-[var(--sig-text)] truncate"> </span></div>'),Wr=M('<div class="text-[10px] text-[var(--sig-text-muted)] italic py-2">No recent activity</div>'),Zr=M('<!> <div class="mt-4 space-y-4 overflow-y-auto pr-2" style="max-height: calc(100vh - 140px);"><section><h4 class="text-[10px] uppercase tracking-[0.1em] text-[var(--sig-text-muted)] mb-2 font-[family-name:var(--font-display)]">Metrics</h4> <div class="grid grid-cols-3 gap-2"><div class="p-2 rounded bg-[var(--sig-surface)] border border-[var(--sig-border)]"><div class="text-[9px] text-[var(--sig-text-muted)] uppercase">Score</div> <div class="text-[15px] text-[var(--sig-text-bright)] font-[family-name:var(--font-mono)]"> </div></div> <div class="p-2 rounded bg-[var(--sig-surface)] border border-[var(--sig-border)]"><div class="text-[9px] text-[var(--sig-text-muted)] uppercase">Queue</div> <div class="text-[15px] text-[var(--sig-text-bright)] font-[family-name:var(--font-mono)]"> </div></div> <div class="p-2 rounded bg-[var(--sig-surface)] border border-[var(--sig-border)]"><div class="text-[9px] text-[var(--sig-text-muted)] uppercase">Errors</div> <div> </div></div></div></section> <!> <!> <section><h4 class="text-[10px] uppercase tracking-[0.1em] text-[var(--sig-text-muted)] mb-2 font-[family-name:var(--font-display)]"> </h4> <div class="space-y-px max-h-[300px] overflow-y-auto"><!> <!></div></section></div>',1);function Jr(u,o){vt(o,!0);let l=C(()=>_.selectedNodeId),s=C(()=>e(l)?It.get(e(l))??null:null),c=C(()=>e(l)?_.nodes[e(l)]??null:null),N=C(()=>e(l)!==null);function D(A){A||Ut(null)}function L(A){try{return new Date(A).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return A}}function y(A){switch(A){case"error":return"text-[#e06c75]";case"warn":return"text-[#e5c07b]";case"debug":return"text-[#6b6b76]";default:return"text-[var(--sig-text)]"}}let k=C(()=>{if(!e(c)?.metrics)return null;const A=e(c).metrics;return A.memory||A.summary||typeof A.depth=="number"?A:null});var oe=st(),G=re(oe);Ee(G,()=>ur,(A,V)=>{V(A,{get open(){return e(N)},onOpenChange:D,children:(_e,de)=>{var ue=st(),E=re(ue);Ee(E,()=>cr,(S,P)=>{P(S,{side:"right",class:"w-[380px] bg-[var(--sig-bg)] border-l border-[var(--sig-border)]",children:(T,Q)=>{var F=st(),$=re(F);{var v=w=>{var H=Zr(),R=re(H);Ee(R,()=>vr,(I,j)=>{j(I,{children:(Z,ce)=>{var pe=Yr(),J=re(pe);Ee(J,()=>fr,(ie,ve)=>{ve(ie,{class:"flex items-center gap-2 font-[family-name:var(--font-display)] text-[var(--sig-text-bright)]",children:(ke,Me)=>{dt();var X=Fr(),se=re(X),K=i(se);{let xe=C(()=>e(c).health==="healthy"?"border-[#4a7a5e] text-[#4a7a5e]":e(c).health==="degraded"?"border-[#b8860b] text-[#b8860b]":e(c).health==="unhealthy"?"border-[#8a4a48] text-[#8a4a48]":"border-[var(--sig-border)] text-[var(--sig-text-muted)]");zt(K,{variant:"outline",get class(){return`text-[9px] px-1.5 py-0 font-[family-name:var(--font-mono)]
|
|
2
2
|
${e(xe)??""}`},children:(Se,Fe)=>{dt();var Ce=At();b(()=>m(Ce,e(c).health)),f(Se,Ce)},$$slots:{default:!0}})}b(()=>m(se,`${e(s).label??""} `)),f(ke,X)},$$slots:{default:!0}})});var we=i(J,2);{var me=ie=>{var ve=st(),ke=re(ve);Ee(ke,()=>mr,(Me,X)=>{X(Me,{class:"text-[11px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)]",children:(se,K)=>{dt();var xe=At();b(()=>m(xe,e(s).description)),f(se,xe)},$$slots:{default:!0}})}),f(ie,ve)};O(we,ie=>{e(s).description&&ie(me)})}f(Z,pe)},$$slots:{default:!0}})});var W=i(R,2),p=a(W),x=i(a(p),2),z=a(x),ne=i(a(z),2),Re=a(ne,!0);t(ne),t(z);var Ae=i(z,2),je=i(a(Ae),2),Ve=a(je,!0);t(je),t(Ae);var qe=i(Ae,2),Ge=i(a(qe),2);let Qe;var ut=a(Ge,!0);t(Ge),t(qe),t(x),t(p);var mt=i(p,2);{var gt=I=>{var j=Ur(),Z=i(a(j),2);Ne(Z,21,()=>Object.entries(e(k)),lt,(ce,pe)=>{var J=C(()=>Nt(e(pe),2));let we=()=>e(J)[0],me=()=>e(J)[1];var ie=st(),ve=re(ie);{var ke=X=>{var se=zr(),K=re(se),xe=a(K,!0);t(K);var Se=i(K,2);Ne(Se,17,()=>Object.entries(me()),lt,(Fe,Ce)=>{var et=C(()=>Nt(e(Ce),2));let Et=()=>e(et)[0],Dt=()=>e(et)[1];var tt=Xr(),r=a(tt),n=a(r,!0);t(r);var g=i(r,2),q=a(g,!0);t(g),t(tt),b(()=>{m(n,Et()),m(q,Dt())}),f(Fe,tt)}),b(()=>m(xe,we())),f(X,se)},Me=X=>{var se=Br(),K=a(se),xe=a(K,!0);t(K);var Se=i(K,2),Fe=a(Se,!0);t(Se),t(se),b(()=>{m(xe,we()),m(Fe,me())}),f(X,se)};O(ve,X=>{typeof me()=="object"&&me()!==null?X(ke):X(Me,!1)})}f(ce,ie)}),t(Z),t(j),f(I,j)};O(mt,I=>{e(k)&&I(gt)})}var pt=i(mt,2);{var St=I=>{var j=Vr(),Z=i(a(j),2),ce=a(Z,!0);t(Z),t(j),b(pe=>m(ce,pe),[()=>L(e(c).lastActivity)]),f(I,j)};O(pt,I=>{e(c).lastActivity&&I(St)})}var We=i(pt,2),Ze=a(We),Ct=a(Ze);t(Ze);var Je=i(Ze,2),He=a(Je);Ne(He,17,()=>e(c).recentLogs,lt,(I,j)=>{var Z=Qr(),ce=a(Z),pe=a(ce,!0);t(ce);var J=i(ce,2),we=a(J,!0);t(J);var me=i(J,2),ie=a(me,!0);t(me),t(Z),b((ve,ke)=>{m(pe,ve),$e(J,1,`${ke??""} shrink-0 w-[34px] uppercase`),m(we,e(j).level),m(ie,e(j).message)},[()=>L(e(j).timestamp),()=>y(e(j).level)]),f(I,Z)});var Pt=i(He,2);{var Ke=I=>{var j=Wr();f(I,j)};O(Pt,I=>{e(c).recentLogs.length===0&&I(Ke)})}t(Je),t(We),t(W),b(I=>{m(Re,I),m(Ve,e(c).queueDepth),Qe=$e(Ge,1,"text-[15px] font-[family-name:var(--font-mono)]",null,Qe,{"text-[#8a4a48]":e(c).errorCount>0,"text-[var(--sig-text-bright)]":e(c).errorCount===0}),m(ut,e(c).errorCount),m(Ct,`Recent Logs (${e(c).recentLogs.length??""})`)},[()=>e(c).score>0?(e(c).score*100).toFixed(0)+"%":"--"]),f(w,H)};O($,w=>{e(s)&&e(c)&&w(v)})}f(T,F)},$$slots:{default:!0}})}),f(_e,ue)},$$slots:{default:!0}})}),f(u,oe),ft()}var Kr=M('<span class="text-[10px] text-[#4ade80] font-[family-name:var(--font-mono)]"> </span>'),ea=M('<span class="text-[9px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)]"> </span>'),ta=M("<button>Feed actions</button>"),ra=M('<div class="flex flex-col gap-1"><button type="button" class="w-full text-left px-2 py-1 text-[10px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] border border-[var(--sig-border)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] hover:border-[var(--sig-border-strong)]"> </button> <button type="button" class="w-full text-left px-2 py-1 text-[10px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] border border-[var(--sig-border)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] hover:border-[var(--sig-border-strong)]"> </button></div>'),aa=M("<!> <!>",1),oa=M('<div class="flex items-start justify-between gap-2 border-b border-[var(--sig-border)]/30 pb-[1px]"><span class="text-[var(--sig-text-muted)] uppercase tracking-[0.05em]"> </span> <span class="text-[var(--sig-text)] break-all text-right"> </span></div>'),na=M('<div class="mt-1 pl-[56px] text-[8px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)] uppercase tracking-[0.05em]"> </div>'),ia=M('<div class="mt-1 pl-[56px] text-[9px] text-[#f87171] font-[family-name:var(--font-mono)] whitespace-pre-wrap break-words"> </div>'),sa=M('<details class="mt-1 pl-[56px]"><summary class="cursor-pointer text-[8px] text-[var(--sig-text-muted)] uppercase tracking-[0.05em] font-[family-name:var(--font-mono)]">Raw payload</summary> <pre class="mt-1 p-2 border border-[var(--sig-border)] bg-[var(--sig-surface)] text-[8px] text-[var(--sig-text)] whitespace-pre-wrap break-words font-[family-name:var(--font-mono)]"> </pre></details>'),la=M('<div class="mt-1 pl-[56px] inline-flex items-center gap-2 text-[8px] uppercase tracking-[0.06em] font-[family-name:var(--font-mono)]"><span class="px-1 py-[1px] border border-[var(--sig-border)] text-[var(--sig-text-muted)]"> </span> <span class="text-[var(--sig-text-muted)]"> </span></div> <div class="text-[10px] text-[var(--sig-text)] font-[family-name:var(--font-mono)] mt-0.5 pl-[56px] whitespace-pre-wrap break-words"> </div> <div class="mt-1 pl-[56px] grid grid-cols-1 md:grid-cols-2 gap-x-3 gap-y-1 text-[8px] font-[family-name:var(--font-mono)]"></div> <!> <!> <!>',1),da=M('<details class="mt-0.5 pl-[56px] group"><summary class="list-none cursor-pointer text-[10px] text-[var(--sig-text)] font-[family-name:var(--font-mono)] line-clamp-2 break-words [&::-webkit-details-marker]:hidden"> </summary> <div class="mt-1 text-[10px] text-[var(--sig-text)] font-[family-name:var(--font-mono)] whitespace-pre-wrap break-words"> </div></details>'),ca=M('<div class="text-[10px] text-[var(--sig-text)] font-[family-name:var(--font-mono)] mt-0.5 pl-[56px] whitespace-pre-wrap break-words"> </div>'),va=M('<span class="text-[8px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)] pl-[56px]"> </span>'),fa=M("<!> <!>",1),ua=M('<div class="feed-entry px-2 py-1.5 rounded hover:bg-[var(--sig-surface-raised)] transition-colors svelte-1kgvdra"><div class="flex items-center gap-1.5"><span class="text-[9px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)] shrink-0 w-[48px]"> </span> <span class="inline-block w-1.5 h-1.5 rounded-full shrink-0"></span> <span class="text-[9px] font-[family-name:var(--font-mono)] shrink-0"> </span></div> <!></div>'),ma=M('<div class="flex items-center justify-center h-full text-[11px] text-[var(--sig-text-muted)] italic">Waiting for events...</div>'),ga=M('<div class="flex flex-col h-full overflow-hidden"><div class="flex items-center justify-between px-4 py-2 border-b border-[var(--sig-border)] shrink-0"><div class="flex items-center gap-3"><div class="flex items-center gap-1.5"><span></span> <span class="text-[10px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)]"> </span></div> <!> <!></div> <div class="flex items-center gap-3"><!></div></div> <div class="flex flex-1 min-h-0 flex-col lg:flex-row"><div class="flex-1 min-w-0 min-h-[46vh] lg:min-h-0 p-4 overflow-auto"><!></div> <div><div class="px-3 py-2 border-b border-[var(--sig-border)] space-y-2"><div class="flex items-center justify-between gap-2"><span class="text-[10px] uppercase tracking-[0.1em] text-[var(--sig-text-muted)] font-[family-name:var(--font-display)]">Live Feed</span> <div class="flex items-center gap-2"><span class="text-[9px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)]"> </span> <span> </span></div></div> <div class="flex items-center justify-between gap-2 min-w-0"><label class="inline-flex items-center gap-1.5 text-[10px] text-[var(--sig-text)] font-[family-name:var(--font-mono)] cursor-pointer min-w-0"><!> <span>Auto-scroll</span></label> <div class="hidden lg:flex items-center gap-1.5 shrink-0"><button type="button" class="px-2 py-[3px] text-[9px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] border border-[var(--sig-border)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] hover:border-[var(--sig-border-strong)]"> </button> <button type="button" class="px-2 py-[3px] text-[9px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] border border-[var(--sig-border)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] hover:border-[var(--sig-border-strong)]"> </button></div> <div class="lg:hidden shrink-0"><!></div></div></div> <div class="flex-1 overflow-y-auto px-1 py-1"><!> <!></div></div></div></div> <!>',1);function wa(u,o){vt(o,!0);function l(r){Ut(_.selectedNodeId===r?null:r)}let s=U(null),c=U(!0),N=U(!1),D=U(!1);const L=24;let y=U(!0),k=U(!0),oe=C(()=>e(N)?"lg:w-[420px]":"lg:w-[320px]"),G=C(()=>e(y)?"Latest":"Oldest"),A=C(()=>e(N)?"Expanded":"Compact");function V(r="smooth"){e(s)&&e(s).scrollTo({top:e(s).scrollHeight,behavior:r})}function _e(){return e(s)?e(s).scrollHeight-e(s).scrollTop-e(s).clientHeight<=L:!0}function de(){if(!(!e(s)||(h(k,_e(),!0),!(e(s).scrollHeight-e(s).clientHeight>L)))){if(e(k)){h(y,!0);return}e(s).scrollTop<=L&&h(y,!1)}}function ue(r){e(s)&&(e(y)?(h(c,!1),h(k,!1),h(y,!1),e(s).scrollTo({top:0,behavior:"smooth"})):(h(c,!0),h(k,!0),h(y,!0),V("auto")),r?.currentTarget instanceof HTMLElement&&r.currentTarget.blur(),h(D,!1))}function E(r){h(c,r,!0),wt.pipeline.autoScroll=r,Gt(),r&&(h(k,!0),h(y,!0),requestAnimationFrame(()=>{V("auto"),de()}))}function S(r){h(N,!e(N)),wt.pipeline.feedExpanded=e(N),Gt(),r?.currentTarget instanceof HTMLElement&&r.currentTarget.blur(),h(D,!1)}function P(r){if(!r)return"";const n=Object.keys(r);if(n.length===0)return"";const g=n.slice(0,4).join(", ");return n.length>4?`${g} +${n.length-4}`:g}Xt(()=>{if(_.feed.length,de(),e(c)&&e(s)){if(!e(k))return;requestAnimationFrame(()=>{V("auto"),h(k,!0),h(y,!0),de()})}}),rr(()=>(Bt(),kr(),h(c,wt.pipeline.autoScroll,!0),h(N,wt.pipeline.feedExpanded,!0),()=>{br(),Sr()}));const T={"controlled-write":"border-[#4ade80] text-[#4ade80]",shadow:"border-[#fbbf24] text-[#fbbf24]",frozen:"border-[#94a3b8] text-[#94a3b8]",disabled:"border-[#f87171] text-[#f87171]",unknown:"border-[var(--sig-border)] text-[var(--sig-text-muted)]"};let Q=C(()=>T[_.mode]??T.unknown),F=C(()=>Ue.filter(r=>{const n=_.nodes[r.id];return n?.lastActivity?Date.now()-new Date(n.lastActivity).getTime()<5e3:!1}).length);function $(r){try{return new Date(r).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return r}}const v={error:"#f87171",warn:"#fbbf24",info:"#4ade80",debug:"#6b6b76"},w={hooks:"#4dabf7","session-tracker":"#4dabf7",pipeline:"#da77f2","summary-worker":"#da77f2","document-worker":"#da77f2",retention:"#da77f2",maintenance:"#da77f2",memory:"#ffd43b",embedding:"#ffd43b",sync:"#ff922b",watcher:"#ff922b",harness:"#4dabf7",llm:"#fcc419"},H=["jobId","memoryId","sessionKey","project","attempt","maxRetries","mode","provider","model","facts","entities","proposals","added","updated","deleted","deduped","skippedLowConfidence","blockedDestructive","runId","taskId","path","port","pid","error"];function R(r){const n=Date.now()-new Date(r).getTime();if(!Number.isFinite(n)||n<0)return"just now";const g=Math.floor(n/1e3);if(g<60)return`${g}s ago`;const q=Math.floor(g/60);if(q<60)return`${q}m ago`;const Y=Math.floor(q/60);return Y<24?`${Y}h ago`:`${Math.floor(Y/24)}d ago`}function W(r){return r.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/^./,n=>n.toUpperCase())}function p(r){return r===null?"null":r===void 0?"undefined":typeof r=="string"?r:typeof r=="number"||typeof r=="boolean"?String(r):Array.isArray(r)?`[${r.length} items]`:typeof r=="object"?"{object}":String(r)}function x(r){const n=r.message.toLowerCase(),g=r.category.replace(/-/g," ");if(n.includes("job failed")){const q=r.data?.attempt;return typeof q=="number"?`${g} failed (attempt ${q})`:`${g} failed`}return n.includes("completed")?`${g} completed`:n.includes("started")||n.includes("starting")?`${g} started`:n.includes("enqueued")?`${g} queued`:n.includes("failed")?`${g} warning`:n.includes("file changed")?"watcher detected file change":`${g} event`}function z(r){const n=[{label:"Level",value:r.level},{label:"Category",value:r.category}];r.duration!==void 0&&n.push({label:"Duration",value:`${r.duration} ms`});const g=r.data;if(!g)return n;const q=new Set;for(const Y of H)Y in g&&(n.push({label:W(Y),value:p(g[Y])}),q.add(Y));for(const Y of Object.keys(g).sort())q.has(Y)||n.push({label:W(Y),value:p(g[Y])});return n}function ne(r){const n={};if(r.data&&(n.data=r.data),r.error&&(n.error=r.error),Object.keys(n).length===0)return"";const g=JSON.stringify(n,null,2);if(!g)return"";const q=3200;return g.length<=q?g:`${g.slice(0,q)}
|
|
3
3
|
...truncated`}var Re=ga(),Ae=re(Re),je=a(Ae),Ve=a(je),qe=a(Ve),Ge=a(qe);let Qe;var ut=i(Ge,2),mt=a(ut,!0);t(ut),t(qe);var gt=i(qe,2);zt(gt,{variant:"outline",get class(){return`text-[9px] px-1.5 py-0 font-[family-name:var(--font-mono)] ${e(Q)??""}`},children:(r,n)=>{dt();var g=At();b(()=>m(g,_.mode)),f(r,g)},$$slots:{default:!0}});var pt=i(gt,2);{var St=r=>{var n=Kr(),g=a(n);t(n),b(()=>m(g,`${e(F)??""} active`)),f(r,n)};O(pt,r=>{e(F)>0&&r(St)})}t(Ve);var We=i(Ve,2),Ze=a(We);{var Ct=r=>{var n=ea(),g=a(n);t(n),b(q=>m(g,`polled ${q??""}`),[()=>$(_.lastPoll)]),f(r,n)};O(Ze,r=>{_.lastPoll&&r(Ct)})}t(We),t(je);var Je=i(je,2),He=a(Je),Pt=a(He);Hr(Pt,{onselectnode:l}),t(He);var Ke=i(He,2),I=a(Ke),j=a(I),Z=i(a(j),2),ce=a(Z),pe=a(ce);t(ce);var J=i(ce,2);let we;var me=a(J,!0);t(J),t(Z),t(j);var ie=i(j,2),ve=a(ie),ke=a(ve);Ee(ke,()=>nr,(r,n)=>{n(r,{get checked(){return e(c)},onCheckedChange:g=>E(g),class:"scale-90"})}),dt(2),t(ve);var Me=i(ve,2),X=a(Me),se=a(X,!0);t(X);var K=i(X,2),xe=a(K,!0);t(K),t(Me);var Se=i(Me,2),Fe=a(Se);Ee(Fe,()=>lr,(r,n)=>{n(r,{get open(){return e(D)},set open(g){h(D,g,!0)},children:(g,q)=>{var Y=aa(),Ye=re(Y);{const rt=(Le,Pe)=>{let Xe=()=>Pe?.().props;var he=ta();ar(he,()=>({...Xe(),type:"button",class:"px-2 py-[3px] text-[9px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] border border-[var(--sig-border)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text)] hover:border-[var(--sig-border-strong)]"}),void 0,void 0,void 0,"svelte-1kgvdra"),f(Le,he)};Ee(Ye,()=>ir,(Le,Pe)=>{Pe(Le,{child:rt,$$slots:{child:!0}})})}var Mt=i(Ye,2);Ee(Mt,()=>sr,(rt,Le)=>{Le(rt,{align:"end",side:"bottom",class:"w-[170px] p-1 bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] rounded-none",children:(Pe,Xe)=>{var he=ra(),ze=a(he),xt=a(ze,!0);t(ze);var Ie=i(ze,2),Lt=a(Ie,!0);t(Ie),t(he),b(()=>{m(xt,e(G)),m(Lt,e(A))}),De("click",ze,at=>ue(at)),De("click",Ie,at=>S(at)),f(Pe,he)},$$slots:{default:!0}})}),f(g,Y)},$$slots:{default:!0}})}),t(Se),t(ie),t(I);var Ce=i(I,2),et=a(Ce);Ne(et,19,()=>_.feed,(r,n)=>r.timestamp+"-"+n,(r,n)=>{const g=C(()=>w[e(n).category]??"var(--sig-text-muted)"),q=C(()=>v[e(n).level]??"#6b6b76"),Y=C(()=>e(n).message.length>72),Ye=C(()=>P(e(n).data)),Mt=C(()=>x(e(n))),rt=C(()=>z(e(n))),Le=C(()=>ne(e(n)));var Pe=ua(),Xe=a(Pe),he=a(Xe),ze=a(he,!0);t(he);var xt=i(he,2),Ie=i(xt,2),Lt=a(Ie,!0);t(Ie),t(Xe);var at=i(Xe,2);{var Vt=Te=>{var ot=la(),Be=re(ot),nt=a(Be),Tt=a(nt,!0);t(nt);var ht=i(nt,2),Ot=a(ht,!0);t(ht),t(Be);var ee=i(Be,2),le=a(ee,!0);t(ee);var ge=i(ee,2);Ne(ge,21,()=>e(rt),lt,(B,te)=>{var be=oa(),it=a(be),Kt=a(it,!0);t(it);var jt=i(it,2),er=a(jt,!0);t(jt),t(be),b(()=>{m(Kt,e(te).label),m(er,e(te).value)}),f(B,be)}),t(ge);var bt=i(ge,2);{var yt=B=>{var te=na(),be=a(te);t(te),b(()=>m(be,`Data keys: ${e(Ye)??""}`)),f(B,te)};O(bt,B=>{e(Ye)&&B(yt)})}var _t=i(bt,2);{var Wt=B=>{var te=ia(),be=a(te);t(te),b(()=>m(be,`${e(n).error.name??""}: ${e(n).error.message??""}`)),f(B,te)};O(_t,B=>{e(n).error&&B(Wt)})}var Zt=i(_t,2);{var Jt=B=>{var te=sa(),be=i(a(te),2),it=a(be,!0);t(be),t(te),b(()=>m(it,e(Le))),f(B,te)};O(Zt,B=>{e(Le)&&B(Jt)})}b(B=>{m(Tt,e(Mt)),m(Ot,B),m(le,e(n).message)},[()=>R(e(n).timestamp)]),f(Te,ot)},Qt=Te=>{var ot=fa(),Be=re(ot);{var nt=ee=>{var le=da(),ge=a(le),bt=a(ge,!0);t(ge);var yt=i(ge,2),_t=a(yt,!0);t(yt),t(le),b(()=>{m(bt,e(n).message),m(_t,e(n).message)}),f(ee,le)},Tt=ee=>{var le=ca(),ge=a(le,!0);t(le),b(()=>m(ge,e(n).message)),f(ee,le)};O(Be,ee=>{e(Y)?ee(nt):ee(Tt,!1)})}var ht=i(Be,2);{var Ot=ee=>{var le=va(),ge=a(le);t(le),b(()=>m(ge,`${e(n).duration??""}ms`)),f(ee,le)};O(ht,ee=>{e(n).duration&&ee(Ot)})}f(Te,ot)};O(at,Te=>{e(N)?Te(Vt):Te(Qt,!1)})}t(Pe),b(Te=>{m(ze,Te),qt(xt,`background-color: ${e(q)??""}`),qt(Ie,`color: ${e(g)??""}`),m(Lt,e(n).category)},[()=>$(e(n).timestamp)]),f(r,Pe)});var Et=i(et,2);{var Dt=r=>{var n=ma();f(r,n)};O(Et,r=>{_.feed.length===0&&r(Dt)})}t(Ce),or(Ce,r=>h(s,r),()=>e(s)),t(Ke),t(Je),t(Ae);var tt=i(Ae,2);Jr(tt,{}),b(()=>{Qe=$e(Ge,1,"inline-block w-2 h-2 rounded-full",null,Qe,{"bg-[#4ade80]":_.connected,"bg-[#f87171]":!_.connected,"animate-pulse":_.connected}),m(mt,_.connected?"LIVE":"DISCONNECTED"),$e(Ke,1,`w-full shrink-0 border-t lg:border-t-0 border-[var(--sig-border)] flex flex-col bg-[var(--sig-bg)] min-h-[220px] max-h-[40vh] lg:max-h-none ${e(oe)}`,"svelte-1kgvdra"),m(pe,`${_.feed.length??""} events`),we=$e(J,1,"text-[9px] font-[family-name:var(--font-mono)]",null,we,{"text-[#4ade80]":e(c)&&e(k),"text-[var(--sig-text-muted)]":!e(c)||!e(k)}),m(me,e(c)&&e(k)?"following":"paused"),m(se,e(G)),m(xe,e(A))}),De("click",X,r=>ue(r)),De("click",K,r=>S(r)),kt("scroll",Ce,de),f(u,Re),ft()}Rt(["click"]);export{wa as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ba as be,o as Ne,s as A,g as U,b as T,$ as ee,bb as pt}from"./cZT7cFE6.js";class ke{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Ee{constructor(t,n){this.status=t,this.location=n}}class Se extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function gt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function mt(e){return e.split("%25").map(decodeURI).join("%25")}function _t(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function de({href:e}){return e.split("#")[0]}function vt(e,t,n,r=!1){const a=new URL(e);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(s,o){if(o==="get"||o==="getAll"||o==="has")return(c,...d)=>(n(c),s[o](c,...d));t();const l=Reflect.get(s,o);return typeof l=="function"?l.bind(s):l}}),enumerable:!0,configurable:!0});const i=["href","pathname","search","toString","toJSON"];r&&i.push("hash");for(const s of i)Object.defineProperty(a,s,{get(){return t(),e[s]},enumerable:!0,configurable:!0});return a}function wt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function yt(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const bt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&G.delete(Re(e)),bt(e,t));const G=new Map;function kt(e,t){const n=Re(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...i}=JSON.parse(r.textContent);const s=r.getAttribute("data-ttl");return s&&G.set(n,{body:a,init:i,ttl:1e3*Number(s)}),r.getAttribute("data-b64")!==null&&(a=yt(a)),Promise.resolve(new Response(a,i))}return window.fetch(e,t)}function Et(e,t,n){if(G.size>0){const r=Re(e,n),a=G.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);G.delete(r)}}return window.fetch(t,n)}function Re(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${wt(...a)}"]`}return r}const St=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Rt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Lt(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return he(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return he(String.fromCharCode(...l.slice(2).split("-").map(v=>parseInt(v,16))));const d=St.exec(l),[,p,f,u,h]=d;return t.push({name:u,matcher:h,optional:!!p,rest:!!f,chained:f?c===1&&s[0]==="":!1}),f?"([^]*?)":p?"([^/]*)?":"([^/]+?)"}return he(l)}).join("")}).join("")}/?$`),params:t}}function xt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Lt(e){return e.slice(1).split("/").filter(xt)}function At(e,t,n){const r={},a=e.slice(1),i=a.filter(o=>o!==void 0);let s=0;for(let o=0;o<t.length;o+=1){const l=t[o];let c=a[o-s];if(l.chained&&l.rest&&s&&(c=a.slice(o-s,o+1).filter(d=>d).join("/"),s=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){r[l.name]=c;const d=t[o+1],p=a[o+1];d&&!d.rest&&d.optional&&p&&l.chained&&(s=0),!d&&!p&&Object.keys(r).length===i.length&&(s=0);continue}if(l.optional&&l.chained){s++;continue}return}if(!s)return r}function he(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Ut({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([o,[l,c,d]])=>{const{pattern:p,params:f}=Rt(o),u={id:o,exec:h=>{const v=p.exec(h);if(v)return At(v,f,r)},errors:[1,...d||[]].map(h=>e[h]),layouts:[0,...c||[]].map(s),leaf:i(l)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function i(o){const l=o<0;return l&&(o=~o),[l,e[o]]}function s(o){return o===void 0?o:[a.has(o),e[o]]}}function Me(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function je(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const x=globalThis.__sveltekit_1ppldg8?.base??"",Tt=globalThis.__sveltekit_1ppldg8?.assets??x??"",Pt="1772539592179",He="sveltekit:snapshot",We="sveltekit:scroll",Je="sveltekit:states",It="sveltekit:pageurl",K="sveltekit:history",H="sveltekit:navigation",N={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},xe=location.origin;function Ye(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function D(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const De={...N,"":N.hover};function ze(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Xe(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=ze(e)}}function me(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,i=!r||!!a||ce(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),s=r?.origin===xe&&e.hasAttribute("download");return{url:r,external:i,target:a,download:s}}function te(e){let t=null,n=null,r=null,a=null,i=null,s=null,o=e;for(;o&&o!==document.documentElement;)r===null&&(r=V(o,"preload-code")),a===null&&(a=V(o,"preload-data")),t===null&&(t=V(o,"keepfocus")),n===null&&(n=V(o,"noscroll")),i===null&&(i=V(o,"reload")),s===null&&(s=V(o,"replacestate")),o=ze(o);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:De[r??"off"],preload_data:De[a??"off"],keepfocus:l(t),noscroll:l(n),reload:l(i),replace_state:l(s)}}function qe(e){const t=be(e);let n=!0;function r(){n=!0,t.update(s=>s)}function a(s){n=!1,t.set(s)}function i(s){let o;return t.subscribe(l=>{(o===void 0||n&&l!==o)&&s(o=l)})}return{notify:r,set:a,subscribe:i}}const Qe={v:()=>{}};function Ot(){const{set:e,subscribe:t}=be(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Tt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const s=(await a.json()).version!==Pt;return s&&(e(!0),Qe.v(),clearTimeout(n)),s}catch{return!1}}return{subscribe:t,check:r}}function ce(e,t,n){return e.origin!==xe||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function sn(e){}const Ze=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...Ze];const $t=new Set([...Ze]);[...$t];function Ct(e){return e.filter(t=>t!=null)}function Le(e){return e instanceof ke||e instanceof Se?e.status:500}function Nt(e){return e instanceof Se?e.text:"Internal Error"}let k,W,pe;const jt=Ne.toString().includes("$$")||/function \w+\(\) \{\}/.test(Ne.toString());jt?(k={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},W={current:null},pe={current:!1}):(k=new class{#e=A({});get data(){return U(this.#e)}set data(t){T(this.#e,t)}#t=A(null);get form(){return U(this.#t)}set form(t){T(this.#t,t)}#n=A(null);get error(){return U(this.#n)}set error(t){T(this.#n,t)}#r=A({});get params(){return U(this.#r)}set params(t){T(this.#r,t)}#a=A({id:null});get route(){return U(this.#a)}set route(t){T(this.#a,t)}#o=A({});get state(){return U(this.#o)}set state(t){T(this.#o,t)}#s=A(-1);get status(){return U(this.#s)}set status(t){T(this.#s,t)}#i=A(new URL("https://example.com"));get url(){return U(this.#i)}set url(t){T(this.#i,t)}},W=new class{#e=A(null);get current(){return U(this.#e)}set current(t){T(this.#e,t)}},pe=new class{#e=A(!1);get current(){return U(this.#e)}set current(t){T(this.#e,t)}},Qe.v=()=>pe.current=!0);function Dt(e){Object.assign(k,e)}const Ve={spanContext(){return qt},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},qt={traceId:"",spanId:"",traceFlags:0},Vt=new Set(["icon","shortcut icon","apple-touch-icon"]),C=Me(We)??{},J=Me(He)??{},$={url:qe({}),page:qe({}),navigating:be(null),updated:Ot()};function Ae(e){C[e]=D()}function Kt(e,t){let n=e+1;for(;C[n];)delete C[n],n+=1;for(n=t+1;J[n];)delete J[n],n+=1}function Y(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function et(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(x||"/");e&&await e.update()}}function Ke(){}let Ue,_e,ne,P,ve,w;const re=[],ae=[];let L=null;function we(){L?.fork?.then(e=>e?.discard()),L=null}const Z=new Map,tt=new Set,Bt=new Set,M=new Set;let _={branch:[],error:null,url:null},nt=!1,oe=!1,Be=!0,z=!1,F=!1,rt=!1,Te=!1,at,y,R,j;const se=new Set,Fe=new Map;async function fn(e,t,n){globalThis.__sveltekit_1ppldg8?.data&&globalThis.__sveltekit_1ppldg8.data,document.URL!==location.href&&(location.href=location.href),w=e,await e.hooks.init?.(),Ue=Ut(e),P=document.documentElement,ve=t,_e=e.nodes[0],ne=e.nodes[1],_e(),ne(),y=history.state?.[K],R=history.state?.[H],y||(y=R=Date.now(),history.replaceState({...history.state,[K]:y,[H]:R},""));const r=C[y];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await tn(ve,n)):(await B({type:"enter",url:Ye(w.hash?an(new URL(location.href)):location.href),replace_state:!0}),a()),en()}function Ft(){re.length=0,Te=!1}function ot(e){ae.some(t=>t?.snapshot)&&(J[e]=ae.map(t=>t?.snapshot?.capture()))}function st(e){J[e]?.forEach((t,n)=>{ae[n]?.snapshot?.restore(t)})}function Ge(){Ae(y),je(We,C),ot(R),je(He,J)}async function Gt(e,t,n,r){let a;t.invalidateAll&&we(),await B({type:"goto",url:Ye(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(Te=!0,a=[...Fe.keys()]),t.invalidate&&t.invalidate.forEach(Zt)}}),t.invalidateAll&&ee().then(ee).then(()=>{Fe.forEach(({resource:i},s)=>{a?.includes(s)&&i.refresh?.()})})}async function Mt(e){if(e.id!==L?.id){we();const t={};se.add(t),L={id:e.id,token:t,promise:ct({...e,preload:t}).then(n=>(se.delete(t),n.type==="loaded"&&n.state.error&&we(),n)),fork:null}}return L.promise}async function ge(e){const t=(await ue(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].map(n=>n?.[1]()))}async function it(e,t,n){_=e.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(k,e.props.page),at=new w.root({target:t,props:{...e.props,stores:$,components:ae},hydrate:n,sync:!1}),await Promise.resolve(),st(R),n){const a={from:null,to:{params:_.params,route:{id:_.route?.id??null},url:new URL(location.href),scroll:C[y]??D()},willUnload:!1,type:"enter",complete:Promise.resolve()};M.forEach(i=>i(a))}oe=!0}function ie({url:e,params:t,branch:n,status:r,error:a,route:i,form:s}){let o="never";if(x&&(e.pathname===x||e.pathname===x+"/"))o="always";else for(const u of n)u?.slash!==void 0&&(o=u.slash);e.pathname=gt(e.pathname,o),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:n,error:a,route:i},props:{constructors:Ct(n).map(u=>u.node.component),page:Ce(k)}};s!==void 0&&(l.props.form=s);let c={},d=!k,p=0;for(let u=0;u<Math.max(n.length,_.branch.length);u+=1){const h=n[u],v=_.branch[u];h?.data!==v?.data&&(d=!0),h&&(c={...c,...h.data},d&&(l.props[`data_${p}`]=c),p+=1)}return(!_.url||e.href!==_.url.href||_.error!==a||s!==void 0&&s!==k.form||d)&&(l.props.page={error:a,params:t,route:{id:i?.id??null},state:{},status:r,url:new URL(e),form:s??null,data:d?c:k.data}),l}async function Pe({loader:e,parent:t,url:n,params:r,route:a,server_data_node:i}){let s=null,o=!0;const l={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},c=await e();if(c.universal?.load){let d=function(...f){for(const u of f){const{href:h}=new URL(u,n);l.dependencies.add(h)}};const p={tracing:{enabled:!1,root:Ve,current:Ve},route:new Proxy(a,{get:(f,u)=>(o&&(l.route=!0),f[u])}),params:new Proxy(r,{get:(f,u)=>(o&&l.params.add(u),f[u])}),data:i?.data??null,url:vt(n,()=>{o&&(l.url=!0)},f=>{o&&l.search_params.add(f)},w.hash),async fetch(f,u){f instanceof Request&&(u={body:f.method==="GET"||f.method==="HEAD"?void 0:await f.blob(),cache:f.cache,credentials:f.credentials,headers:[...f.headers].length>0?f?.headers:void 0,integrity:f.integrity,keepalive:f.keepalive,method:f.method,mode:f.mode,redirect:f.redirect,referrer:f.referrer,referrerPolicy:f.referrerPolicy,signal:f.signal,...u});const{resolved:h,promise:v}=lt(f,u,n);return o&&d(h.href),v},setHeaders:()=>{},depends:d,parent(){return o&&(l.parent=!0),t()},untrack(f){o=!1;try{return f()}finally{o=!0}}};s=await c.universal.load.call(null,p)??null}return{node:c,loader:e,server:i,universal:c.universal?.load?{type:"data",data:s,uses:l}:null,data:s??i?.data??null,slash:c.universal?.trailingSlash??i?.slash}}function lt(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const i=oe?Et(r,a.href,t):kt(r,t);return{resolved:a,promise:i}}function Ht(e,t,n,r,a,i){if(Te)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const s of a.search_params)if(r.has(s))return!0;for(const s of a.params)if(i[s]!==_.params[s])return!0;for(const s of a.dependencies)if(re.some(o=>o(new URL(s))))return!0;return!1}function Ie(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Wt(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),i=t.searchParams.getAll(r);a.every(s=>i.includes(s))&&i.every(s=>a.includes(s))&&n.delete(r)}return n}function Jt({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Ce(k),constructors:[]}}}async function ct({id:e,invalidating:t,url:n,params:r,route:a,preload:i}){if(L?.id===e)return se.delete(L.token),L.promise;const{errors:s,layouts:o,leaf:l}=a,c=[...o,l];s.forEach(m=>m?.().catch(()=>{})),c.forEach(m=>m?.[1]().catch(()=>{}));const d=_.url?e!==le(_.url):!1,p=_.route?a.id!==_.route.id:!1,f=Wt(_.url,n);let u=!1;const h=c.map(async(m,g)=>{if(!m)return;const E=_.branch[g];return m[1]===E?.loader&&!Ht(u,p,d,f,E.universal?.uses,r)?E:(u=!0,Pe({loader:m[1],url:n,params:r,route:a,parent:async()=>{const I={};for(let O=0;O<g;O+=1)Object.assign(I,(await h[O])?.data);return I},server_data_node:Ie(m[0]?{type:"skip"}:null,m[0]?E?.server:void 0)}))});for(const m of h)m.catch(()=>{});const v=[];for(let m=0;m<c.length;m+=1)if(c[m])try{v.push(await h[m])}catch(g){if(g instanceof Ee)return{type:"redirect",location:g.location};if(se.has(i))return Jt({error:await X(g,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let E=Le(g),S;if(g instanceof ke)S=g.body;else{if(await $.updated.check())return await et(),await Y(n);S=await X(g,{params:r,url:n,route:{id:a.id}})}const I=await Yt(m,v,s);return I?ie({url:n,params:r,branch:v.slice(0,I.idx).concat(I.node),status:E,error:S,route:a}):await ft(n,{id:a.id},S,E)}else v.push(void 0);return ie({url:n,params:r,branch:v,status:200,error:null,route:a,form:t?void 0:null})}async function Yt(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Oe({status:e,error:t,url:n,route:r}){const a={};let i=null;try{const s=await Pe({loader:_e,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Ie(i)}),o={node:await ne(),loader:ne,universal:null,server:null,data:null};return ie({url:n,params:a,branch:[s,o],status:e,error:t,route:null})}catch(s){if(s instanceof Ee)return Gt(new URL(s.location,location.href),{},0);throw s}}async function zt(e){const t=e.href;if(Z.has(t))return Z.get(t);let n;try{const r=(async()=>{let a=await w.hooks.reroute({url:new URL(e),fetch:async(i,s)=>lt(i,s,e).promise})??e;if(typeof a=="string"){const i=new URL(e);w.hash?i.hash=a:i.pathname=a,a=i}return a})();Z.set(t,r),n=await r}catch{Z.delete(t);return}return n}async function ue(e,t){if(e&&!ce(e,x,w.hash)){const n=await zt(e);if(!n)return;const r=Xt(n);for(const a of Ue){const i=a.exec(r);if(i)return{id:le(e),invalidating:t,route:a,params:_t(i),url:e}}}}function Xt(e){return mt(w.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(x.length))||"/"}function le(e){return(w.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ut({url:e,type:t,intent:n,delta:r,event:a,scroll:i}){let s=!1;const o=$e(_,n,e,t,i??null);r!==void 0&&(o.navigation.delta=r),a!==void 0&&(o.navigation.event=a);const l={...o.navigation,cancel:()=>{s=!0,o.reject(new Error("navigation cancelled"))}};return z||tt.forEach(c=>c(l)),s?null:o}async function B({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:i,state:s={},redirect_count:o=0,nav_token:l={},accept:c=Ke,block:d=Ke,event:p}){const f=j;j=l;const u=await ue(t,!1),h=e==="enter"?$e(_,u,t,e):ut({url:t,type:e,delta:n?.delta,intent:u,scroll:n?.scroll,event:p});if(!h){d(),j===l&&(j=f);return}const v=y,m=R;c(),z=!0,oe&&h.navigation.type!=="enter"&&$.navigating.set(W.current=h.navigation);let g=u&&await ct(u);if(!g){if(ce(t,x,w.hash))return await Y(t,i);g=await ft(t,{id:null},await X(new Se(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=u?.url||t,j!==l)return h.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(o<20){await B({type:e,url:new URL(g.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:i,state:s,redirect_count:o+1,nav_token:l}),h.fulfil(void 0);return}g=await Oe({status:500,error:await X(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else g.props.page.status>=400&&await $.updated.check()&&(await et(),await Y(t,i));if(Ft(),Ae(v),ot(m),g.props.page.url.pathname!==t.pathname&&(t.pathname=g.props.page.url.pathname),s=n?n.state:s,!n){const b=i?0:1,Q={[K]:y+=b,[H]:R+=b,[Je]:s};(i?history.replaceState:history.pushState).call(history,Q,"",t),i||Kt(y,R)}const E=u&&L?.id===u.id?L.fork:null;L=null,g.props.page.state=s;let S;if(oe){const b=(await Promise.all(Array.from(Bt,q=>q(h.navigation)))).filter(q=>typeof q=="function");if(b.length>0){let q=function(){b.forEach(fe=>{M.delete(fe)})};b.push(q),b.forEach(fe=>{M.add(fe)})}_=g.state,g.props.page&&(g.props.page.url=t);const Q=E&&await E;Q?S=Q.commit():(at.$set(g.props),Dt(g.props.page),S=pt?.()),rt=!0}else await it(g,ve,!1);const{activeElement:I}=document;await S,await ee(),await ee();let O=null;if(Be){const b=n?n.scroll:a?D():null;b?scrollTo(b.x,b.y):(O=t.hash&&document.getElementById(dt(t)))?O.scrollIntoView():scrollTo(0,0)}const ht=document.activeElement!==I&&document.activeElement!==document.body;!r&&!ht&&rn(t,!O),Be=!0,g.props.page&&Object.assign(k,g.props.page),z=!1,e==="popstate"&&st(R),h.fulfil(void 0),h.navigation.to&&(h.navigation.to.scroll=D()),M.forEach(b=>b(h.navigation)),$.navigating.set(W.current=null)}async function ft(e,t,n,r,a){return e.origin===xe&&e.pathname===location.pathname&&!nt?await Oe({status:r,error:n,url:e,route:t}):await Y(e,a)}function Qt(){let e,t={element:void 0,href:void 0},n;P.addEventListener("mousemove",o=>{const l=o.target;clearTimeout(e),e=setTimeout(()=>{i(l,N.hover)},20)});function r(o){o.defaultPrevented||i(o.composedPath()[0],N.tap)}P.addEventListener("mousedown",r),P.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const l of o)l.isIntersecting&&(ge(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function i(o,l){const c=Xe(o,P),d=c===t.element&&c?.href===t.href&&l>=n;if(!c||d)return;const{url:p,external:f,download:u}=me(c,x,w.hash);if(f||u)return;const h=te(c),v=p&&le(_.url)===le(p);if(!(h.reload||v))if(l<=h.preload_data){t={element:c,href:c.href},n=N.tap;const m=await ue(p,!1);if(!m)return;Mt(m)}else l<=h.preload_code&&(t={element:c,href:c.href},n=l,ge(p))}function s(){a.disconnect();for(const o of P.querySelectorAll("a")){const{url:l,external:c,download:d}=me(o,x,w.hash);if(c||d)continue;const p=te(o);p.reload||(p.preload_code===N.viewport&&a.observe(o),p.preload_code===N.eager&&ge(l))}}M.add(s),s()}function X(e,t){if(e instanceof ke)return e.body;const n=Le(e),r=Nt(e);return w.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Zt(e){if(typeof e=="function")re.push(e);else{const{href:t}=new URL(e,location.href);re.push(n=>n.href===t)}}function en(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(Ge(),!z){const r=$e(_,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};tt.forEach(i=>i(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Ge()}),navigator.connection?.saveData||Qt(),P.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=Xe(t.composedPath()[0],P);if(!n)return;const{url:r,external:a,target:i,download:s}=me(n,x,w.hash);if(!r)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const o=te(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||s)return;const[c,d]=(w.hash?r.hash.replace(/^#/,""):r.href).split("#"),p=c===de(location);if(a||o.reload&&(!p||!d)){ut({url:r,type:"link",event:t})?z=!0:t.preventDefault();return}if(d!==void 0&&p){const[,f]=_.url.href.split("#");if(f===d){if(t.preventDefault(),d===""||d==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const u=n.ownerDocument.getElementById(decodeURIComponent(d));u&&(u.scrollIntoView(),u.focus())}return}if(F=!0,Ae(y),e(r),!o.replace_state)return;F=!1}t.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await B({type:"link",url:r,keepfocus:o.keepfocus,noscroll:o.noscroll,replace_state:o.replace_state??r.href===location.href,event:t})}),P.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const s=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(ce(s,x,!1))return;const o=t.target,l=te(o);if(l.reload)return;t.preventDefault(),t.stopPropagation();const c=new FormData(o,r);s.search=new URLSearchParams(c).toString(),B({type:"form",url:s,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??s.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!ye){if(t.state?.[K]){const n=t.state[K];if(j={},n===y)return;const r=C[n],a=t.state[Je]??{},i=new URL(t.state[It]??location.href),s=t.state[H],o=_.url?de(location)===de(_.url):!1;if(s===R&&(rt||o)){a!==k.state&&(k.state=a),e(i),C[y]=D(),r&&scrollTo(r.x,r.y),y=n;return}const c=n-y;await B({type:"popstate",url:i,popped:{state:a,scroll:r,delta:c},accept:()=>{y=n,R=s},block:()=>{history.go(-c)},nav_token:j,event:t})}else if(!F){const n=new URL(location.href);e(n),w.hash&&location.reload()}}}),addEventListener("hashchange",()=>{F&&(F=!1,history.replaceState({...history.state,[K]:++y,[H]:R},"",location.href))});for(const t of document.querySelectorAll("link"))Vt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&$.navigating.set(W.current=null)});function e(t){_.url=k.url=t,$.page.set(Ce(k)),$.page.notify()}}async function tn(e,{status:t=200,error:n,node_ids:r,params:a,route:i,server_route:s,data:o,form:l}){nt=!0;const c=new URL(location.href);let d;({params:a={},route:i={id:null}}=await ue(c,!1)||{}),d=Ue.find(({id:u})=>u===i.id);let p,f=!0;try{const u=r.map(async(v,m)=>{const g=o[m];return g?.uses&&(g.uses=nn(g.uses)),Pe({loader:w.nodes[v],url:c,params:a,route:i,parent:async()=>{const E={};for(let S=0;S<m;S+=1)Object.assign(E,(await u[S]).data);return E},server_data_node:Ie(g)})}),h=await Promise.all(u);if(d){const v=d.layouts;for(let m=0;m<v.length;m++)v[m]||h.splice(m,0,void 0)}p=ie({url:c,params:a,branch:h,status:t,error:n,form:l,route:d??null})}catch(u){if(u instanceof Ee){await Y(new URL(u.location,location.href));return}p=await Oe({status:Le(u),error:await X(u,{url:c,params:a,route:i}),url:c,route:i}),e.textContent="",f=!1}p.props.page&&(p.props.page.state={}),await it(p,e,f)}function nn(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let ye=!1;function rn(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=dt(e);if(r&&document.getElementById(r)){const{x:i,y:s}=D();setTimeout(()=>{const o=history.state;ye=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(o,"",e),t&&scrollTo(i,s),ye=!1})}else{const i=document.body,s=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),s!==null?i.setAttribute("tabindex",s):i.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const i=[];for(let s=0;s<a.rangeCount;s+=1)i.push(a.getRangeAt(s));setTimeout(()=>{if(a.rangeCount===i.length){for(let s=0;s<a.rangeCount;s+=1){const o=i[s],l=a.getRangeAt(s);if(o.commonAncestorContainer!==l.commonAncestorContainer||o.startContainer!==l.startContainer||o.endContainer!==l.endContainer||o.startOffset!==l.startOffset||o.endOffset!==l.endOffset)return}a.removeAllRanges()}})}}}function $e(e,t,n,r,a=null){let i,s;const o=new Promise((c,d)=>{i=c,s=d});return o.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:D()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:a},willUnload:!t,type:r,complete:o},fulfil:i,reject:s}}function Ce(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function an(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function dt(e){let t;if(w.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{fn as a,sn as l,k as p,$ as s};
|
|
1
|
+
import{ba as be,o as Ne,s as A,g as U,b as T,$ as ee,bb as pt}from"./cZT7cFE6.js";class ke{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Ee{constructor(t,n){this.status=t,this.location=n}}class Se extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function gt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function mt(e){return e.split("%25").map(decodeURI).join("%25")}function _t(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function de({href:e}){return e.split("#")[0]}function vt(e,t,n,r=!1){const a=new URL(e);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(s,o){if(o==="get"||o==="getAll"||o==="has")return(c,...d)=>(n(c),s[o](c,...d));t();const l=Reflect.get(s,o);return typeof l=="function"?l.bind(s):l}}),enumerable:!0,configurable:!0});const i=["href","pathname","search","toString","toJSON"];r&&i.push("hash");for(const s of i)Object.defineProperty(a,s,{get(){return t(),e[s]},enumerable:!0,configurable:!0});return a}function wt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function yt(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const bt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&F.delete(Re(e)),bt(e,t));const F=new Map;function kt(e,t){const n=Re(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...i}=JSON.parse(r.textContent);const s=r.getAttribute("data-ttl");return s&&F.set(n,{body:a,init:i,ttl:1e3*Number(s)}),r.getAttribute("data-b64")!==null&&(a=yt(a)),Promise.resolve(new Response(a,i))}return window.fetch(e,t)}function Et(e,t,n){if(F.size>0){const r=Re(e,n),a=F.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);F.delete(r)}}return window.fetch(t,n)}function Re(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${wt(...a)}"]`}return r}const St=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Rt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Lt(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return he(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return he(String.fromCharCode(...l.slice(2).split("-").map(v=>parseInt(v,16))));const d=St.exec(l),[,p,f,u,h]=d;return t.push({name:u,matcher:h,optional:!!p,rest:!!f,chained:f?c===1&&s[0]==="":!1}),f?"([^]*?)":p?"([^/]*)?":"([^/]+?)"}return he(l)}).join("")}).join("")}/?$`),params:t}}function xt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Lt(e){return e.slice(1).split("/").filter(xt)}function At(e,t,n){const r={},a=e.slice(1),i=a.filter(o=>o!==void 0);let s=0;for(let o=0;o<t.length;o+=1){const l=t[o];let c=a[o-s];if(l.chained&&l.rest&&s&&(c=a.slice(o-s,o+1).filter(d=>d).join("/"),s=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){r[l.name]=c;const d=t[o+1],p=a[o+1];d&&!d.rest&&d.optional&&p&&l.chained&&(s=0),!d&&!p&&Object.keys(r).length===i.length&&(s=0);continue}if(l.optional&&l.chained){s++;continue}return}if(!s)return r}function he(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Ut({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([o,[l,c,d]])=>{const{pattern:p,params:f}=Rt(o),u={id:o,exec:h=>{const v=p.exec(h);if(v)return At(v,f,r)},errors:[1,...d||[]].map(h=>e[h]),layouts:[0,...c||[]].map(s),leaf:i(l)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function i(o){const l=o<0;return l&&(o=~o),[l,e[o]]}function s(o){return o===void 0?o:[a.has(o),e[o]]}}function Ge(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function je(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const x=globalThis.__sveltekit_16e8z0f?.base??"",Tt=globalThis.__sveltekit_16e8z0f?.assets??x??"",Pt="1772540039057",Me="sveltekit:snapshot",He="sveltekit:scroll",We="sveltekit:states",It="sveltekit:pageurl",z="sveltekit:history",M="sveltekit:navigation",N={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},xe=location.origin;function Je(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function D(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const De={...N,"":N.hover};function Ye(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Xe(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=Ye(e)}}function me(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,i=!r||!!a||ce(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),s=r?.origin===xe&&e.hasAttribute("download");return{url:r,external:i,target:a,download:s}}function te(e){let t=null,n=null,r=null,a=null,i=null,s=null,o=e;for(;o&&o!==document.documentElement;)r===null&&(r=V(o,"preload-code")),a===null&&(a=V(o,"preload-data")),t===null&&(t=V(o,"keepfocus")),n===null&&(n=V(o,"noscroll")),i===null&&(i=V(o,"reload")),s===null&&(s=V(o,"replacestate")),o=Ye(o);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:De[r??"off"],preload_data:De[a??"off"],keepfocus:l(t),noscroll:l(n),reload:l(i),replace_state:l(s)}}function qe(e){const t=be(e);let n=!0;function r(){n=!0,t.update(s=>s)}function a(s){n=!1,t.set(s)}function i(s){let o;return t.subscribe(l=>{(o===void 0||n&&l!==o)&&s(o=l)})}return{notify:r,set:a,subscribe:i}}const Qe={v:()=>{}};function Ot(){const{set:e,subscribe:t}=be(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Tt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const s=(await a.json()).version!==Pt;return s&&(e(!0),Qe.v(),clearTimeout(n)),s}catch{return!1}}return{subscribe:t,check:r}}function ce(e,t,n){return e.origin!==xe||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function sn(e){}const Ze=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...Ze];const $t=new Set([...Ze]);[...$t];function Ct(e){return e.filter(t=>t!=null)}function Le(e){return e instanceof ke||e instanceof Se?e.status:500}function Nt(e){return e instanceof Se?e.text:"Internal Error"}let k,H,pe;const jt=Ne.toString().includes("$$")||/function \w+\(\) \{\}/.test(Ne.toString());jt?(k={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},H={current:null},pe={current:!1}):(k=new class{#e=A({});get data(){return U(this.#e)}set data(t){T(this.#e,t)}#t=A(null);get form(){return U(this.#t)}set form(t){T(this.#t,t)}#n=A(null);get error(){return U(this.#n)}set error(t){T(this.#n,t)}#r=A({});get params(){return U(this.#r)}set params(t){T(this.#r,t)}#a=A({id:null});get route(){return U(this.#a)}set route(t){T(this.#a,t)}#o=A({});get state(){return U(this.#o)}set state(t){T(this.#o,t)}#s=A(-1);get status(){return U(this.#s)}set status(t){T(this.#s,t)}#i=A(new URL("https://example.com"));get url(){return U(this.#i)}set url(t){T(this.#i,t)}},H=new class{#e=A(null);get current(){return U(this.#e)}set current(t){T(this.#e,t)}},pe=new class{#e=A(!1);get current(){return U(this.#e)}set current(t){T(this.#e,t)}},Qe.v=()=>pe.current=!0);function Dt(e){Object.assign(k,e)}const Ve={spanContext(){return qt},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},qt={traceId:"",spanId:"",traceFlags:0},Vt=new Set(["icon","shortcut icon","apple-touch-icon"]),C=Ge(He)??{},W=Ge(Me)??{},$={url:qe({}),page:qe({}),navigating:be(null),updated:Ot()};function Ae(e){C[e]=D()}function zt(e,t){let n=e+1;for(;C[n];)delete C[n],n+=1;for(n=t+1;W[n];)delete W[n],n+=1}function J(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function et(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(x||"/");e&&await e.update()}}function ze(){}let Ue,_e,ne,P,ve,w;const re=[],ae=[];let L=null;function we(){L?.fork?.then(e=>e?.discard()),L=null}const Z=new Map,tt=new Set,Kt=new Set,G=new Set;let _={branch:[],error:null,url:null},nt=!1,oe=!1,Ke=!0,Y=!1,B=!1,rt=!1,Te=!1,at,y,R,j;const se=new Set,Be=new Map;async function fn(e,t,n){globalThis.__sveltekit_16e8z0f?.data&&globalThis.__sveltekit_16e8z0f.data,document.URL!==location.href&&(location.href=location.href),w=e,await e.hooks.init?.(),Ue=Ut(e),P=document.documentElement,ve=t,_e=e.nodes[0],ne=e.nodes[1],_e(),ne(),y=history.state?.[z],R=history.state?.[M],y||(y=R=Date.now(),history.replaceState({...history.state,[z]:y,[M]:R},""));const r=C[y];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await tn(ve,n)):(await K({type:"enter",url:Je(w.hash?an(new URL(location.href)):location.href),replace_state:!0}),a()),en()}function Bt(){re.length=0,Te=!1}function ot(e){ae.some(t=>t?.snapshot)&&(W[e]=ae.map(t=>t?.snapshot?.capture()))}function st(e){W[e]?.forEach((t,n)=>{ae[n]?.snapshot?.restore(t)})}function Fe(){Ae(y),je(He,C),ot(R),je(Me,W)}async function Ft(e,t,n,r){let a;t.invalidateAll&&we(),await K({type:"goto",url:Je(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(Te=!0,a=[...Be.keys()]),t.invalidate&&t.invalidate.forEach(Zt)}}),t.invalidateAll&&ee().then(ee).then(()=>{Be.forEach(({resource:i},s)=>{a?.includes(s)&&i.refresh?.()})})}async function Gt(e){if(e.id!==L?.id){we();const t={};se.add(t),L={id:e.id,token:t,promise:ct({...e,preload:t}).then(n=>(se.delete(t),n.type==="loaded"&&n.state.error&&we(),n)),fork:null}}return L.promise}async function ge(e){const t=(await ue(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].map(n=>n?.[1]()))}async function it(e,t,n){_=e.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(k,e.props.page),at=new w.root({target:t,props:{...e.props,stores:$,components:ae},hydrate:n,sync:!1}),await Promise.resolve(),st(R),n){const a={from:null,to:{params:_.params,route:{id:_.route?.id??null},url:new URL(location.href),scroll:C[y]??D()},willUnload:!1,type:"enter",complete:Promise.resolve()};G.forEach(i=>i(a))}oe=!0}function ie({url:e,params:t,branch:n,status:r,error:a,route:i,form:s}){let o="never";if(x&&(e.pathname===x||e.pathname===x+"/"))o="always";else for(const u of n)u?.slash!==void 0&&(o=u.slash);e.pathname=gt(e.pathname,o),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:n,error:a,route:i},props:{constructors:Ct(n).map(u=>u.node.component),page:Ce(k)}};s!==void 0&&(l.props.form=s);let c={},d=!k,p=0;for(let u=0;u<Math.max(n.length,_.branch.length);u+=1){const h=n[u],v=_.branch[u];h?.data!==v?.data&&(d=!0),h&&(c={...c,...h.data},d&&(l.props[`data_${p}`]=c),p+=1)}return(!_.url||e.href!==_.url.href||_.error!==a||s!==void 0&&s!==k.form||d)&&(l.props.page={error:a,params:t,route:{id:i?.id??null},state:{},status:r,url:new URL(e),form:s??null,data:d?c:k.data}),l}async function Pe({loader:e,parent:t,url:n,params:r,route:a,server_data_node:i}){let s=null,o=!0;const l={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},c=await e();if(c.universal?.load){let d=function(...f){for(const u of f){const{href:h}=new URL(u,n);l.dependencies.add(h)}};const p={tracing:{enabled:!1,root:Ve,current:Ve},route:new Proxy(a,{get:(f,u)=>(o&&(l.route=!0),f[u])}),params:new Proxy(r,{get:(f,u)=>(o&&l.params.add(u),f[u])}),data:i?.data??null,url:vt(n,()=>{o&&(l.url=!0)},f=>{o&&l.search_params.add(f)},w.hash),async fetch(f,u){f instanceof Request&&(u={body:f.method==="GET"||f.method==="HEAD"?void 0:await f.blob(),cache:f.cache,credentials:f.credentials,headers:[...f.headers].length>0?f?.headers:void 0,integrity:f.integrity,keepalive:f.keepalive,method:f.method,mode:f.mode,redirect:f.redirect,referrer:f.referrer,referrerPolicy:f.referrerPolicy,signal:f.signal,...u});const{resolved:h,promise:v}=lt(f,u,n);return o&&d(h.href),v},setHeaders:()=>{},depends:d,parent(){return o&&(l.parent=!0),t()},untrack(f){o=!1;try{return f()}finally{o=!0}}};s=await c.universal.load.call(null,p)??null}return{node:c,loader:e,server:i,universal:c.universal?.load?{type:"data",data:s,uses:l}:null,data:s??i?.data??null,slash:c.universal?.trailingSlash??i?.slash}}function lt(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const i=oe?Et(r,a.href,t):kt(r,t);return{resolved:a,promise:i}}function Mt(e,t,n,r,a,i){if(Te)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const s of a.search_params)if(r.has(s))return!0;for(const s of a.params)if(i[s]!==_.params[s])return!0;for(const s of a.dependencies)if(re.some(o=>o(new URL(s))))return!0;return!1}function Ie(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Ht(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),i=t.searchParams.getAll(r);a.every(s=>i.includes(s))&&i.every(s=>a.includes(s))&&n.delete(r)}return n}function Wt({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Ce(k),constructors:[]}}}async function ct({id:e,invalidating:t,url:n,params:r,route:a,preload:i}){if(L?.id===e)return se.delete(L.token),L.promise;const{errors:s,layouts:o,leaf:l}=a,c=[...o,l];s.forEach(m=>m?.().catch(()=>{})),c.forEach(m=>m?.[1]().catch(()=>{}));const d=_.url?e!==le(_.url):!1,p=_.route?a.id!==_.route.id:!1,f=Ht(_.url,n);let u=!1;const h=c.map(async(m,g)=>{if(!m)return;const E=_.branch[g];return m[1]===E?.loader&&!Mt(u,p,d,f,E.universal?.uses,r)?E:(u=!0,Pe({loader:m[1],url:n,params:r,route:a,parent:async()=>{const I={};for(let O=0;O<g;O+=1)Object.assign(I,(await h[O])?.data);return I},server_data_node:Ie(m[0]?{type:"skip"}:null,m[0]?E?.server:void 0)}))});for(const m of h)m.catch(()=>{});const v=[];for(let m=0;m<c.length;m+=1)if(c[m])try{v.push(await h[m])}catch(g){if(g instanceof Ee)return{type:"redirect",location:g.location};if(se.has(i))return Wt({error:await X(g,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let E=Le(g),S;if(g instanceof ke)S=g.body;else{if(await $.updated.check())return await et(),await J(n);S=await X(g,{params:r,url:n,route:{id:a.id}})}const I=await Jt(m,v,s);return I?ie({url:n,params:r,branch:v.slice(0,I.idx).concat(I.node),status:E,error:S,route:a}):await ft(n,{id:a.id},S,E)}else v.push(void 0);return ie({url:n,params:r,branch:v,status:200,error:null,route:a,form:t?void 0:null})}async function Jt(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Oe({status:e,error:t,url:n,route:r}){const a={};let i=null;try{const s=await Pe({loader:_e,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Ie(i)}),o={node:await ne(),loader:ne,universal:null,server:null,data:null};return ie({url:n,params:a,branch:[s,o],status:e,error:t,route:null})}catch(s){if(s instanceof Ee)return Ft(new URL(s.location,location.href),{},0);throw s}}async function Yt(e){const t=e.href;if(Z.has(t))return Z.get(t);let n;try{const r=(async()=>{let a=await w.hooks.reroute({url:new URL(e),fetch:async(i,s)=>lt(i,s,e).promise})??e;if(typeof a=="string"){const i=new URL(e);w.hash?i.hash=a:i.pathname=a,a=i}return a})();Z.set(t,r),n=await r}catch{Z.delete(t);return}return n}async function ue(e,t){if(e&&!ce(e,x,w.hash)){const n=await Yt(e);if(!n)return;const r=Xt(n);for(const a of Ue){const i=a.exec(r);if(i)return{id:le(e),invalidating:t,route:a,params:_t(i),url:e}}}}function Xt(e){return mt(w.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(x.length))||"/"}function le(e){return(w.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ut({url:e,type:t,intent:n,delta:r,event:a,scroll:i}){let s=!1;const o=$e(_,n,e,t,i??null);r!==void 0&&(o.navigation.delta=r),a!==void 0&&(o.navigation.event=a);const l={...o.navigation,cancel:()=>{s=!0,o.reject(new Error("navigation cancelled"))}};return Y||tt.forEach(c=>c(l)),s?null:o}async function K({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:i,state:s={},redirect_count:o=0,nav_token:l={},accept:c=ze,block:d=ze,event:p}){const f=j;j=l;const u=await ue(t,!1),h=e==="enter"?$e(_,u,t,e):ut({url:t,type:e,delta:n?.delta,intent:u,scroll:n?.scroll,event:p});if(!h){d(),j===l&&(j=f);return}const v=y,m=R;c(),Y=!0,oe&&h.navigation.type!=="enter"&&$.navigating.set(H.current=h.navigation);let g=u&&await ct(u);if(!g){if(ce(t,x,w.hash))return await J(t,i);g=await ft(t,{id:null},await X(new Se(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=u?.url||t,j!==l)return h.reject(new Error("navigation aborted")),!1;if(g.type==="redirect"){if(o<20){await K({type:e,url:new URL(g.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:i,state:s,redirect_count:o+1,nav_token:l}),h.fulfil(void 0);return}g=await Oe({status:500,error:await X(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else g.props.page.status>=400&&await $.updated.check()&&(await et(),await J(t,i));if(Bt(),Ae(v),ot(m),g.props.page.url.pathname!==t.pathname&&(t.pathname=g.props.page.url.pathname),s=n?n.state:s,!n){const b=i?0:1,Q={[z]:y+=b,[M]:R+=b,[We]:s};(i?history.replaceState:history.pushState).call(history,Q,"",t),i||zt(y,R)}const E=u&&L?.id===u.id?L.fork:null;L=null,g.props.page.state=s;let S;if(oe){const b=(await Promise.all(Array.from(Kt,q=>q(h.navigation)))).filter(q=>typeof q=="function");if(b.length>0){let q=function(){b.forEach(fe=>{G.delete(fe)})};b.push(q),b.forEach(fe=>{G.add(fe)})}_=g.state,g.props.page&&(g.props.page.url=t);const Q=E&&await E;Q?S=Q.commit():(at.$set(g.props),Dt(g.props.page),S=pt?.()),rt=!0}else await it(g,ve,!1);const{activeElement:I}=document;await S,await ee(),await ee();let O=null;if(Ke){const b=n?n.scroll:a?D():null;b?scrollTo(b.x,b.y):(O=t.hash&&document.getElementById(dt(t)))?O.scrollIntoView():scrollTo(0,0)}const ht=document.activeElement!==I&&document.activeElement!==document.body;!r&&!ht&&rn(t,!O),Ke=!0,g.props.page&&Object.assign(k,g.props.page),Y=!1,e==="popstate"&&st(R),h.fulfil(void 0),h.navigation.to&&(h.navigation.to.scroll=D()),G.forEach(b=>b(h.navigation)),$.navigating.set(H.current=null)}async function ft(e,t,n,r,a){return e.origin===xe&&e.pathname===location.pathname&&!nt?await Oe({status:r,error:n,url:e,route:t}):await J(e,a)}function Qt(){let e,t={element:void 0,href:void 0},n;P.addEventListener("mousemove",o=>{const l=o.target;clearTimeout(e),e=setTimeout(()=>{i(l,N.hover)},20)});function r(o){o.defaultPrevented||i(o.composedPath()[0],N.tap)}P.addEventListener("mousedown",r),P.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const l of o)l.isIntersecting&&(ge(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function i(o,l){const c=Xe(o,P),d=c===t.element&&c?.href===t.href&&l>=n;if(!c||d)return;const{url:p,external:f,download:u}=me(c,x,w.hash);if(f||u)return;const h=te(c),v=p&&le(_.url)===le(p);if(!(h.reload||v))if(l<=h.preload_data){t={element:c,href:c.href},n=N.tap;const m=await ue(p,!1);if(!m)return;Gt(m)}else l<=h.preload_code&&(t={element:c,href:c.href},n=l,ge(p))}function s(){a.disconnect();for(const o of P.querySelectorAll("a")){const{url:l,external:c,download:d}=me(o,x,w.hash);if(c||d)continue;const p=te(o);p.reload||(p.preload_code===N.viewport&&a.observe(o),p.preload_code===N.eager&&ge(l))}}G.add(s),s()}function X(e,t){if(e instanceof ke)return e.body;const n=Le(e),r=Nt(e);return w.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Zt(e){if(typeof e=="function")re.push(e);else{const{href:t}=new URL(e,location.href);re.push(n=>n.href===t)}}function en(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(Fe(),!Y){const r=$e(_,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};tt.forEach(i=>i(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Fe()}),navigator.connection?.saveData||Qt(),P.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=Xe(t.composedPath()[0],P);if(!n)return;const{url:r,external:a,target:i,download:s}=me(n,x,w.hash);if(!r)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const o=te(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||s)return;const[c,d]=(w.hash?r.hash.replace(/^#/,""):r.href).split("#"),p=c===de(location);if(a||o.reload&&(!p||!d)){ut({url:r,type:"link",event:t})?Y=!0:t.preventDefault();return}if(d!==void 0&&p){const[,f]=_.url.href.split("#");if(f===d){if(t.preventDefault(),d===""||d==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const u=n.ownerDocument.getElementById(decodeURIComponent(d));u&&(u.scrollIntoView(),u.focus())}return}if(B=!0,Ae(y),e(r),!o.replace_state)return;B=!1}t.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await K({type:"link",url:r,keepfocus:o.keepfocus,noscroll:o.noscroll,replace_state:o.replace_state??r.href===location.href,event:t})}),P.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const s=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(ce(s,x,!1))return;const o=t.target,l=te(o);if(l.reload)return;t.preventDefault(),t.stopPropagation();const c=new FormData(o,r);s.search=new URLSearchParams(c).toString(),K({type:"form",url:s,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??s.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!ye){if(t.state?.[z]){const n=t.state[z];if(j={},n===y)return;const r=C[n],a=t.state[We]??{},i=new URL(t.state[It]??location.href),s=t.state[M],o=_.url?de(location)===de(_.url):!1;if(s===R&&(rt||o)){a!==k.state&&(k.state=a),e(i),C[y]=D(),r&&scrollTo(r.x,r.y),y=n;return}const c=n-y;await K({type:"popstate",url:i,popped:{state:a,scroll:r,delta:c},accept:()=>{y=n,R=s},block:()=>{history.go(-c)},nav_token:j,event:t})}else if(!B){const n=new URL(location.href);e(n),w.hash&&location.reload()}}}),addEventListener("hashchange",()=>{B&&(B=!1,history.replaceState({...history.state,[z]:++y,[M]:R},"",location.href))});for(const t of document.querySelectorAll("link"))Vt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&$.navigating.set(H.current=null)});function e(t){_.url=k.url=t,$.page.set(Ce(k)),$.page.notify()}}async function tn(e,{status:t=200,error:n,node_ids:r,params:a,route:i,server_route:s,data:o,form:l}){nt=!0;const c=new URL(location.href);let d;({params:a={},route:i={id:null}}=await ue(c,!1)||{}),d=Ue.find(({id:u})=>u===i.id);let p,f=!0;try{const u=r.map(async(v,m)=>{const g=o[m];return g?.uses&&(g.uses=nn(g.uses)),Pe({loader:w.nodes[v],url:c,params:a,route:i,parent:async()=>{const E={};for(let S=0;S<m;S+=1)Object.assign(E,(await u[S]).data);return E},server_data_node:Ie(g)})}),h=await Promise.all(u);if(d){const v=d.layouts;for(let m=0;m<v.length;m++)v[m]||h.splice(m,0,void 0)}p=ie({url:c,params:a,branch:h,status:t,error:n,form:l,route:d??null})}catch(u){if(u instanceof Ee){await J(new URL(u.location,location.href));return}p=await Oe({status:Le(u),error:await X(u,{url:c,params:a,route:i}),url:c,route:i}),e.textContent="",f=!1}p.props.page&&(p.props.page.state={}),await it(p,e,f)}function nn(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let ye=!1;function rn(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=dt(e);if(r&&document.getElementById(r)){const{x:i,y:s}=D();setTimeout(()=>{const o=history.state;ye=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(o,"",e),t&&scrollTo(i,s),ye=!1})}else{const i=document.body,s=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),s!==null?i.setAttribute("tabindex",s):i.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const i=[];for(let s=0;s<a.rangeCount;s+=1)i.push(a.getRangeAt(s));setTimeout(()=>{if(a.rangeCount===i.length){for(let s=0;s<a.rangeCount;s+=1){const o=i[s],l=a.getRangeAt(s);if(o.commonAncestorContainer!==l.commonAncestorContainer||o.startContainer!==l.startContainer||o.endContainer!==l.endContainer||o.startOffset!==l.startOffset||o.endOffset!==l.endOffset)return}a.removeAllRanges()}})}}}function $e(e,t,n,r,a=null){let i,s;const o=new Promise((c,d)=>{i=c,s=d});return o.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:D()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:a},willUnload:!t,type:r,complete:o},fulfil:i,reject:s}}function Ce(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function an(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function dt(e){let t;if(w.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{fn as a,sn as l,k as p,$ as s};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as ot,s as he,p as Vt,P as va,g as e,b as o,m as He,q as W,G as D,c as a,d as r,i as k,r as t,n as O,t as j,e as _,f as i,h as l,u as y,l as vt,N as Lt,v as We,ap as da,aq as ca,y as Ee,w as Tt,z as c,A as $t,F as De,o as pa,j as Wt,ac as Xt,M as St,a5 as Va,ab as Ua,ar as Oa,B as Yt,E as Jt,as as Da,at as Ha,a6 as Ka,a7 as Ga}from"./cZT7cFE6.js";import{Y as Za,g as Qa,S as _a,B as Ye,G as ha,Z as Wa,_ as Xa,$ as Ya,a0 as Ja,a1 as ua,a2 as N,a3 as ya,a4 as er,a5 as tr,a6 as ar,a7 as rr,a8 as n,a9 as xa,t as lr,aa as ba,ab as ka,e as ea,ac as sr,ad as Bt,ae as Ut,af as nr,ag as fa,ah as ir,ai as or,aj as wa,ak as vr}from"./
|
|
1
|
+
import{a as ot,s as he,p as Vt,P as va,g as e,b as o,m as He,q as W,G as D,c as a,d as r,i as k,r as t,n as O,t as j,e as _,f as i,h as l,u as y,l as vt,N as Lt,v as We,ap as da,aq as ca,y as Ee,w as Tt,z as c,A as $t,F as De,o as pa,j as Wt,ac as Xt,M as St,a5 as Va,ab as Ua,ar as Oa,B as Yt,E as Jt,as as Da,at as Ha,a6 as Ka,a7 as Ga}from"./cZT7cFE6.js";import{Y as Za,g as Qa,S as _a,B as Ye,G as ha,Z as Wa,_ as Xa,$ as Ya,a0 as Ja,a1 as ua,a2 as N,a3 as ya,a4 as er,a5 as tr,a6 as ar,a7 as rr,a8 as n,a9 as xa,t as lr,aa as ba,ab as ka,e as ea,ac as sr,ad as Bt,ae as Ut,af as nr,ag as fa,ah as ir,ai as or,aj as wa,ak as vr}from"./DV5sVIyK.js";import{I as _t}from"./_lxxQgjj.js";import{L as ht,T as dr}from"./Cnx2RroT.js";import{c as Rt,S as Et,a as qt,b as ut}from"./Cu4vu2mh.js";import{S as cr}from"./Bvq5nor8.js";import{g as ur}from"./Bdj9FDJv.js";import{B as At}from"./CRNKcIYA.js";var fr=c('<p class="sheet-subtitle svelte-1n2gzyy"> </p>'),gr=c('<p class="muted svelte-1n2gzyy">Select a server to configure.</p>'),mr=c('<p class="muted svelte-1n2gzyy">Loading recommended configuration...</p>'),pr=c('<a class="source-link svelte-1n2gzyy" target="_blank" rel="noopener">View source README</a>'),_r=c('<div class="inline-alert svelte-1n2gzyy"> </div>'),hr=c("<!> <!>",1),yr=c("<!> <!>",1),xr=c("<option> </option>"),br=c('<div class="row-item svelte-1n2gzyy"><!> <!> <select class="field-select row-secret"><option>Plain value</option><!></select> <!></div>'),kr=c('<div class="inline-hint svelte-1n2gzyy">No secrets found. Add secrets in the Secrets tab to map sensitive values.</div>'),wr=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),Sr=c("<option> </option>"),$r=c('<div class="row-item svelte-1n2gzyy"><!> <!> <select class="field-select row-secret"><option>Plain value</option><!></select> <!></div>'),Pr=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),Cr=c('<div class="inline-alert svelte-1n2gzyy"> </div>'),Mr=c('<div class="test-tools svelte-1n2gzyy"> </div>'),Lr=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),Tr=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 Nr(w,s){ot(s,!0);const S="secret://";let R=he(!1),E=he(null),Z=he(""),A=he(""),z=he(""),H=he(!1),ne=he(""),B=he("stdio"),ue=he("20000"),oe=he(""),L=he(""),$=he(""),X=he(Vt([])),q=he(""),Y=he(Vt([])),pe=he(Vt([])),ye=he(!1),te=he("idle"),F=he(""),ae=he(Vt([])),fe=he(!1),ge=he(null);const se=y(()=>e(B)==="http"?"http":"stdio"),x=y(()=>s.entry?s.entry.source==="modelcontextprotocol/servers"?"MCP GitHub":"MCP Registry":"");va(()=>{!s.open||!s.entry||e(Z)!==s.entry.id&&(o(Z,s.entry.id,!0),Te(s.entry))}),va(()=>{s.open||(o(Z,""),o(R,!1),o(E,null),o(te,"idle"),o(F,""),o(ae,[],!0),o(ge,null))});function C(p){return p.startsWith(S)?p.slice(S.length).trim():""}function me(p,T){const m=C(T);return m?{key:p,value:"",secretName:m}:{key:p,value:T,secretName:""}}function _e(p){return p.secretName.trim().length>0?`${S}${p.secretName.trim()}`:p.value}function xe(p){const T=Object.entries(p).map(([m,re])=>me(m,re));return T.length>0?T:[{key:"",value:"",secretName:""}]}function Le(p){if(o(B,p.transport,!0),o(ue,String(p.timeoutMs),!0),p.transport==="stdio"){o(oe,p.command,!0),o(L,p.args.join(`
|
|
2
2
|
`),!0),o($,p.cwd??"",!0),o(X,xe(p.env),!0),o(q,""),o(Y,[{key:"",value:"",secretName:""}],!0);return}o(q,p.url,!0),o(Y,xe(p.headers),!0),o(oe,""),o(L,""),o($,""),o(X,[{key:"",value:"",secretName:""}],!0)}async function Te(p){o(R,!0),o(E,null),o(ge,null),o(te,"idle"),o(F,""),o(ae,[],!0),o(ne,p.name,!0),o(A,p.description,!0),o(z,""),o(H,!1),o(B,"stdio"),o(ue,"20000"),o(oe,""),o(L,""),o($,""),o(X,[{key:"",value:"",secretName:""}],!0),o(q,""),o(Y,[{key:"",value:"",secretName:""}],!0),o(ye,!0);const[T,m]=await Promise.all([Za(p.catalogId,p.source),Qa()]);if(o(pe,m,!0),o(ye,!1),!T){o(E,"Failed to load recommended config for this server."),o(R,!1);return}o(A,T.description||p.description,!0),o(z,T.githubUrl??"",!0),T.defaultConfig?(o(H,!0),Le(T.defaultConfig)):o(E,"No standard config was found. You can still set one manually below."),o(R,!1)}function qe(p){const T={};for(const m of p){const re=m.key.trim();if(re.length===0)continue;const ce=_e(m).trim();ce.length!==0&&(T[re]=ce)}return T}function Ke(){const p=Number(e(ue));if(!Number.isFinite(p)||p<=0)return{config:null,error:"Timeout must be a positive number."};if(e(B)==="stdio"){const m=e(oe).trim();if(m.length===0)return{config:null,error:"Command is required for stdio transport."};const re=e(L).split(`
|
|
3
3
|
`).map(ce=>ce.trim()).filter(ce=>ce.length>0);return{config:{transport:"stdio",command:m,args:re,env:qe(e(X)),cwd:e($).trim()||void 0,timeoutMs:p}}}const T=e(q).trim();if(T.length===0)return{config:null,error:"URL is required for HTTP transport."};try{new URL(T)}catch{return{config:null,error:"URL must be a valid absolute URL."}}return{config:{transport:"http",url:T,headers:qe(e(Y)),timeoutMs:p}}}function Je(p){return p==="http"?"http":"stdio"}function je(p,T,m){const re=p[T];re&&(re.value=m,m.trim().length>0&&(re.secretName=""))}function Ne(){o(X,[...e(X),{key:"",value:"",secretName:""}],!0)}function Me(p){o(X,e(X).filter((T,m)=>m!==p),!0),e(X).length===0&&o(X,[{key:"",value:"",secretName:""}],!0)}function Ue(){o(Y,[...e(Y),{key:"",value:"",secretName:""}],!0)}function Ae(p){o(Y,e(Y).filter((T,m)=>m!==p),!0),e(Y).length===0&&o(Y,[{key:"",value:"",secretName:""}],!0)}async function Fe(){o(ge,null),o(te,"running"),o(F,"Testing MCP server connection..."),o(ae,[],!0);const p=Ke();if(!p.config){o(te,"error"),o(F,p.error??"Invalid config.",!0),o(ge,p.error??"Invalid config.",!0);return}const T=await Wa({config:p.config});if(T.success){o(te,"success"),o(ae,T.tools??[],!0),o(F,`Connection succeeded${typeof T.toolCount=="number"?` (${T.toolCount} tools)`:""}.`);return}o(te,"error"),o(F,T.error??"Connection test failed.",!0)}async function Oe(){if(!s.entry)return;o(ge,null);const p=Ke();if(!p.config){o(ge,p.error??"Invalid config.",!0);return}o(fe,!0);const T=await Xa(s.entry,{alias:e(ne).trim()||void 0,config:p.config});o(fe,!1),T&&s.onclose()}var ze=He(),Re=W(ze);D(Re,()=>ha,(p,T)=>{T(p,{get open(){return s.open},onOpenChange:m=>{m||s.onclose()},children:(m,re)=>{var ce=He(),Ve=W(ce);D(Ve,()=>_a,($e,Be)=>{Be($e,{side:"right",class:`!w-[560px] !max-w-[96vw] !bg-[var(--sig-surface)]
|
|
4
4
|
!border-l !border-l-[var(--sig-border)] !p-0 flex flex-col`,children:(Ge,u)=>{var b=Tr(),I=W(b),K=a(I),v=r(a(K),2);{var g=U=>{var de=fr(),at=a(de);t(de),_(()=>i(at,`${s.entry.name??""} · ${e(x)??""}`)),l(U,de)};k(v,U=>{s.entry&&U(g)})}t(K),t(I);var d=r(I,2),f=a(d);{var h=U=>{var de=gr();l(U,de)},M=U=>{var de=He(),at=W(de);{var Pe=rt=>{var ke=mr();l(rt,ke)},tt=rt=>{var ke=Lr(),lt=W(ke),Pt=a(lt,!0);t(lt);var Ct=r(lt,2);{var Ft=le=>{var be=pr();_(()=>Lt(be,"href",e(z))),l(le,be)};k(Ct,le=>{e(z)&&le(Ft)})}var ta=r(Ct,2);{var Ca=le=>{var be=_r(),we=a(be,!0);t(be),_(()=>i(we,e(E))),l(le,be)};k(ta,le=>{e(E)&&le(Ca)})}var Dt=r(ta,2),Ht=a(Dt),aa=a(Ht);ht(aa,{class:"field-label",children:(le,be)=>{O();var we=j("Install alias");l(le,we)},$$slots:{default:!0}});var Ma=r(aa,2);_t(Ma,{get value(){return e(ne)},oninput:le=>{o(ne,le.currentTarget.value,!0)},placeholder:"Server name",class:"field-input"}),t(Ht);var Kt=r(Ht,2),Gt=a(Kt),ra=a(Gt);ht(ra,{class:"field-label",children:(le,be)=>{O();var we=j("Transport");l(le,we)},$$slots:{default:!0}});var La=r(ra,2);D(La,()=>Rt,(le,be)=>{be(le,{type:"single",get value(){return e(B)},onValueChange:we=>{o(B,Je(we??"stdio"),!0)},children:(we,yt)=>{var Nt=yr(),ft=W(Nt);D(ft,()=>Et,(bt,gt)=>{gt(bt,{class:"field-select",children:(mt,et)=>{O();var Ce=j();_(()=>i(Ce,e(se))),l(mt,Ce)},$$slots:{default:!0}})});var xt=r(ft,2);D(xt,()=>qt,(bt,gt)=>{gt(bt,{class:"field-select-content",children:(mt,et)=>{var Ce=hr(),Ze=W(Ce);D(Ze,()=>ut,(wt,dt)=>{dt(wt,{value:"stdio",label:"stdio",class:"field-select-item"})});var kt=r(Ze,2);D(kt,()=>ut,(wt,dt)=>{dt(wt,{value:"http",label:"http",class:"field-select-item"})}),l(mt,Ce)},$$slots:{default:!0}})}),l(we,Nt)},$$slots:{default:!0}})}),t(Gt);var la=r(Gt,2),sa=a(la);ht(sa,{class:"field-label",children:(le,be)=>{O();var we=j("Timeout (ms)");l(le,we)},$$slots:{default:!0}});var Ta=r(sa,2);_t(Ta,{type:"number",get value(){return e(ue)},oninput:le=>{o(ue,le.currentTarget.value,!0)},class:"field-input font-[family-name:var(--font-mono)]"}),t(la),t(Kt);var Na=r(Kt,2);{var za=le=>{var be=wr(),we=W(be),yt=a(we);ht(yt,{class:"field-label",children:(Se,Ie)=>{O();var Xe=j("Command");l(Se,Xe)},$$slots:{default:!0}});var Nt=r(yt,2);_t(Nt,{get value(){return e(oe)},oninput:Se=>{o(oe,Se.currentTarget.value,!0)},placeholder:"uvx",class:"field-input font-[family-name:var(--font-mono)]"}),t(we);var ft=r(we,2),xt=a(ft);ht(xt,{class:"field-label",children:(Se,Ie)=>{O();var Xe=j("Args (one per line)");l(Se,Xe)},$$slots:{default:!0}});var bt=r(xt,2);dr(bt,{get value(){return e(L)},oninput:Se=>{o(L,Se.currentTarget.value,!0)},rows:3,class:"field-textarea font-[family-name:var(--font-mono)]"}),t(ft);var gt=r(ft,2),mt=a(gt);ht(mt,{class:"field-label",children:(Se,Ie)=>{O();var Xe=j("Working directory (optional)");l(Se,Xe)},$$slots:{default:!0}});var et=r(mt,2);_t(et,{get value(){return e($)},oninput:Se=>{o($,Se.currentTarget.value,!0)},placeholder:"/path/to/project",class:"field-input font-[family-name:var(--font-mono)]"}),t(gt);var Ce=r(gt,2),Ze=a(Ce),kt=a(Ze);ht(kt,{class:"field-label",children:(Se,Ie)=>{O();var Xe=j("Environment variables");l(Se,Xe)},$$slots:{default:!0}});var wt=r(kt,2);Ye(wt,{variant:"outline",size:"sm",class:"h-6 text-[9px]",onclick:Ne,children:(Se,Ie)=>{O();var Xe=j("Add");l(Se,Xe)},$$slots:{default:!0}}),t(Ze);var dt=r(Ze,2);We(dt,21,()=>e(X),Tt,(Se,Ie,Xe)=>{var Qe=br(),pt=a(Qe);_t(pt,{get value(){return e(Ie).key},oninput:it=>{e(Ie).key=it.currentTarget.value},placeholder:"ENV_NAME",class:"field-input row-key font-[family-name:var(--font-mono)]"});var ct=r(pt,2);{let it=y(()=>e(Ie).secretName.length>0);_t(ct,{get value(){return e(Ie).value},oninput:It=>{je(e(X),Xe,It.currentTarget.value)},placeholder:"value",class:"field-input row-value font-[family-name:var(--font-mono)]",get disabled(){return e(it)}})}var nt=r(ct,2),zt=a(nt);zt.value=zt.__value="";var Ba=r(zt);We(Ba,16,()=>e(pe),it=>it,(it,It)=>{var Mt=xr(),Fa=a(Mt);t(Mt);var oa={};_(()=>{i(Fa,`secret:${It??""}`),oa!==(oa=It)&&(Mt.value=(Mt.__value=It)??"")}),l(it,Mt)}),t(nt);var ia;da(nt);var Aa=r(nt,2);Ye(Aa,{variant:"outline",size:"sm",class:"h-8 px-2",onclick:()=>Me(Xe),children:(it,It)=>{O();var Mt=j("×");l(it,Mt)},$$slots:{default:!0}}),t(Qe),_(()=>{nt.disabled=e(ye)||e(pe).length===0,ia!==(ia=e(Ie).secretName)&&(nt.value=(nt.__value=e(Ie).secretName)??"",ca(nt,e(Ie).secretName))}),Ee("change",nt,it=>{e(Ie).secretName=it.currentTarget.value,e(Ie).secretName.length>0&&(e(Ie).value="")}),l(Se,Qe)}),t(dt);var st=r(dt,2);{var jt=Se=>{var Ie=kr();l(Se,Ie)};k(st,Se=>{e(pe).length===0&&Se(jt)})}t(Ce),l(le,be)},Ia=le=>{var be=Pr(),we=W(be),yt=a(we);ht(yt,{class:"field-label",children:(et,Ce)=>{O();var Ze=j("Server URL");l(et,Ze)},$$slots:{default:!0}});var Nt=r(yt,2);_t(Nt,{get value(){return e(q)},oninput:et=>{o(q,et.currentTarget.value,!0)},placeholder:"https://example.com/mcp",class:"field-input font-[family-name:var(--font-mono)]"}),t(we);var ft=r(we,2),xt=a(ft),bt=a(xt);ht(bt,{class:"field-label",children:(et,Ce)=>{O();var Ze=j("HTTP headers");l(et,Ze)},$$slots:{default:!0}});var gt=r(bt,2);Ye(gt,{variant:"outline",size:"sm",class:"h-6 text-[9px]",onclick:Ue,children:(et,Ce)=>{O();var Ze=j("Add");l(et,Ze)},$$slots:{default:!0}}),t(xt);var mt=r(xt,2);We(mt,21,()=>e(Y),Tt,(et,Ce,Ze)=>{var kt=$r(),wt=a(kt);_t(wt,{get value(){return e(Ce).key},oninput:Qe=>{e(Ce).key=Qe.currentTarget.value},placeholder:"Authorization",class:"field-input row-key font-[family-name:var(--font-mono)]"});var dt=r(wt,2);{let Qe=y(()=>e(Ce).secretName.length>0);_t(dt,{get value(){return e(Ce).value},oninput:pt=>{je(e(Y),Ze,pt.currentTarget.value)},placeholder:"Bearer ...",class:"field-input row-value font-[family-name:var(--font-mono)]",get disabled(){return e(Qe)}})}var st=r(dt,2),jt=a(st);jt.value=jt.__value="";var Se=r(jt);We(Se,16,()=>e(pe),Qe=>Qe,(Qe,pt)=>{var ct=Sr(),nt=a(ct);t(ct);var zt={};_(()=>{i(nt,`secret:${pt??""}`),zt!==(zt=pt)&&(ct.value=(ct.__value=pt)??"")}),l(Qe,ct)}),t(st);var Ie;da(st);var Xe=r(st,2);Ye(Xe,{variant:"outline",size:"sm",class:"h-8 px-2",onclick:()=>Ae(Ze),children:(Qe,pt)=>{O();var ct=j("×");l(Qe,ct)},$$slots:{default:!0}}),t(kt),_(()=>{st.disabled=e(ye)||e(pe).length===0,Ie!==(Ie=e(Ce).secretName)&&(st.value=(st.__value=e(Ce).secretName)??"",ca(st,e(Ce).secretName))}),Ee("change",st,Qe=>{e(Ce).secretName=Qe.currentTarget.value,e(Ce).secretName.length>0&&(e(Ce).value="")}),l(et,kt)}),t(mt),t(ft),l(le,be)};k(Na,le=>{e(B)==="stdio"?le(za):le(Ia,!1)})}t(Dt);var na=r(Dt,2);{var Ra=le=>{var be=Cr(),we=a(be,!0);t(be),_(()=>i(we,e(ge))),l(le,be)};k(na,le=>{e(ge)&&le(Ra)})}var Zt=r(na,2),Qt=r(a(Zt),2),Ea=a(Qt,!0);t(Qt);var qa=r(Qt,2);{var ja=le=>{var be=Mr(),we=a(be,!0);t(be),_(yt=>i(we,yt),[()=>e(ae).join(", ")]),l(le,be)};k(qa,le=>{e(ae).length>0&&le(ja)})}t(Zt),_(()=>{i(Pt,e(A)),Lt(Zt,"data-state",e(te)),i(Ea,e(F)||"Run a test before installing to confirm this config works.")}),l(rt,ke)};k(at,rt=>{e(R)?rt(Pe):rt(tt,!1)})}l(U,de)};k(f,U=>{s.entry?U(M,!1):U(h)})}t(d);var P=r(d,2),V=a(P),G=a(V);{var ve=U=>{var de=j("Using recommended config as a starting point.");l(U,de)},J=U=>{var de=j("No recommended config found; set command/URL manually.");l(U,de)};k(G,U=>{e(H)?U(ve):U(J,!1)})}t(V);var ie=r(V,2),Q=a(ie);{let U=y(()=>e(R)||e(te)==="running"||e(fe)||!s.entry);Ye(Q,{variant:"outline",size:"sm",class:"h-8 text-[10px]",onclick:()=>{Fe()},get disabled(){return e(U)},children:(de,at)=>{O();var Pe=j();_(()=>i(Pe,e(te)==="running"?"Testing...":"Test connection")),l(de,Pe)},$$slots:{default:!0}})}var ee=r(Q,2);{let U=y(()=>e(R)||e(fe)||!s.entry);Ye(ee,{variant:"default",size:"sm",class:"h-8 text-[10px]",onclick:()=>{Oe()},get disabled(){return e(U)},children:(de,at)=>{O();var Pe=j();_(()=>i(Pe,e(fe)?"Installing...":"Install server")),l(de,Pe)},$$slots:{default:!0}})}t(ie),t(P),l(Ge,b)},$$slots:{default:!0}})}),l(m,ce)},$$slots:{default:!0}})}),l(w,ze),vt()}$t(["change"]);var zr=c('<input type="text" class="search-input svelte-164uy1v" placeholder="Search tool servers..."/>'),Ir=c("<!> <!>",1),Rr=c("<!> <!>",1),Er=c("<!> <!> <!>",1),qr=c("<!> <!>",1),jr=c('<div class="panel-alert svelte-164uy1v"> </div>'),Br=c('<span class="panel-empty-hint svelte-164uy1v">Install one from the catalog below to route tools.</span>'),Ar=c('<div class="panel-empty svelte-164uy1v"> <!></div>'),Fr=c('<span class="text-[var(--sig-danger)]">offline</span>'),Vr=c('<div class="installed-row svelte-164uy1v"><div class="installed-main svelte-164uy1v"><div class="installed-name svelte-164uy1v"> </div> <div class="installed-meta svelte-164uy1v"><span> </span> <span>·</span> <span> </span> <span>·</span> <span> </span> <!></div></div> <div class="installed-actions svelte-164uy1v"><!> <!></div></div>'),Ur=c('<div class="installed-list svelte-164uy1v"></div>'),Or=c('<div class="panel-alert svelte-164uy1v"> </div>'),Dr=c('<div class="panel-empty svelte-164uy1v">Loading catalog...</div>'),Hr=c('<div class="panel-empty svelte-164uy1v">No matching Tool Servers. <button type="button" class="panel-reset svelte-164uy1v">Clear filters</button></div>'),Kr=c('<span class="text-[var(--sig-success)]">official</span>'),Gr=c('<div class="catalog-card svelte-164uy1v"><div class="catalog-name svelte-164uy1v"> </div> <div class="catalog-desc svelte-164uy1v"> </div> <div class="catalog-meta svelte-164uy1v"><span> </span> <span> </span> <!> <span> </span></div> <div class="catalog-actions svelte-164uy1v"><a target="_blank" rel="noopener" class="catalog-link svelte-164uy1v">View</a> <!></div></div>'),Zr=c('<div class="catalog-grid svelte-164uy1v"></div>'),Qr=c(`<div class="h-full flex flex-col overflow-hidden"><div class="shrink-0 px-[var(--space-md)] py-[var(--space-sm)]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as $,F as c,m as d,q as o,G as i,S as y,B as P,H as q,g as l,h as u,u as h,l as z,E as B}from"./cZT7cFE6.js";import{e as g}from"./
|
|
1
|
+
import{a as $,F as c,m as d,q as o,G as i,S as y,B as P,H as q,g as l,h as u,u as h,l as z,E as B}from"./cZT7cFE6.js";import{e as g}from"./DV5sVIyK.js";function H(f,e){$(e,!0);let a=c(e,"ref",15,null),r=c(e,"checked",15,!1),p=B(e,["$$slots","$$events","$$legacy","ref","class","checked"]);var s=d(),b=o(s);{let k=h(()=>g("data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 peer inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e.class));i(b,()=>y,(m,v)=>{v(m,P({"data-slot":"switch",get class(){return l(k)}},()=>p,{get ref(){return a()},set ref(t){a(t)},get checked(){return r()},set checked(t){r(t)},children:(t,E)=>{var n=d(),w=o(n);{let x=h(()=>g("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"));i(w,()=>q,(_,S)=>{S(_,{"data-slot":"switch-thumb",get class(){return l(x)}})})}u(t,n)},$$slots:{default:!0}}))})}u(f,s),z()}export{H as S};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as St,s as H,p as ot,o as Pt,c as s,i as O,g as t,r as a,h as o,l as Ct,b as m,q as it,d as f,v as lt,e as N,M as vt,f as p,t as j,z as u,n as Ft,G as Y,y as dt,I as Mt,u as ft,N as Nt,A as jt}from"./cZT7cFE6.js";import{B as It}from"./
|
|
1
|
+
import{a as St,s as H,p as ot,o as Pt,c as s,i as O,g as t,r as a,h as o,l as Ct,b as m,q as it,d as f,v as lt,e as N,M as vt,f as p,t as j,z as u,n as Ft,G as Y,y as dt,I as Mt,u as ft,N as Nt,A as jt}from"./cZT7cFE6.js";import{B as It}from"./CRNKcIYA.js";import{P as Tt,a as Dt,b as Bt}from"./DqdbNUYA.js";import{f as Et,h as Ht,s as Ot,t as I,j as qt}from"./DV5sVIyK.js";var zt=u(`<div class="flex flex-1 items-center justify-center text-[12px]
|
|
2
2
|
text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)]">Loading connectors...</div>`),At=u(`<div class="flex items-center gap-3 px-3 py-2.5
|
|
3
3
|
border border-[var(--sig-border)]
|
|
4
4
|
bg-[var(--sig-surface-raised)]"><span></span> <div class="flex flex-col gap-0.5 min-w-0 flex-1"><span class="text-[12px] font-medium text-[var(--sig-text-bright)]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Ne,F as Tt,I as Mt,c as n,C as ft,D as gt,r,J as Nt,h as a,l as Ee,E as xt,z as l,B as Et,m as pe,q as k,G as h,d as s,n as P,t as M,e as $,f as c,g as t,i as A,y as Ue,u as ae,A as $t,v as He,ab as jt,s as be,p as Xt,P as Qt,b as i,M as Zt,a6 as zt,o as Yt,Z as ea,a7 as ta}from"./cZT7cFE6.js";import{e as Lt,I as Ot,B as Ge,J as aa,S as Kt,E as At,F as Ft,H as Vt,X as ra,T as sa,G as Bt,K as Ht,L as na,M as Ct,N as yt,O as la,P as J,Q as St,R as wt,U as Dt,V as Rt}from"./
|
|
1
|
+
import{a as Ne,F as Tt,I as Mt,c as n,C as ft,D as gt,r,J as Nt,h as a,l as Ee,E as xt,z as l,B as Et,m as pe,q as k,G as h,d as s,n as P,t as M,e as $,f as c,g as t,i as A,y as Ue,u as ae,A as $t,v as He,ab as jt,s as be,p as Xt,P as Qt,b as i,M as Zt,a6 as zt,o as Yt,Z as ea,a7 as ta}from"./cZT7cFE6.js";import{e as Lt,I as Ot,B as Ge,J as aa,S as Kt,E as At,F as Ft,H as Vt,X as ra,T as sa,G as Bt,K as Ht,L as na,M as Ct,N as yt,O as la,P as J,Q as St,R as wt,U as Dt,V as Rt}from"./DV5sVIyK.js";import{B as at}from"./CRNKcIYA.js";import{S as oa}from"./Bvq5nor8.js";import{I as Pt}from"./_lxxQgjj.js";import{L as Be,T as ia}from"./Cnx2RroT.js";import{c as vt,S as ct,a as ut,b as Oe}from"./Cu4vu2mh.js";import{S as da,a as va}from"./CkhlVB35.js";import{P as ca}from"./DdvRwCbh.js";var ua=l("<div><!></div>");function qt(re,e){Ne(e,!0);let C=Tt(e,"ref",15,null),x=xt(e,["$$slots","$$events","$$legacy","ref","class","children"]);var m=ua();Mt(m,d=>({"data-slot":"card",class:d,...x}),[()=>Lt("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e.class)]);var _=n(m);ft(_,()=>e.children??gt),r(m),Nt(m,d=>C(d),()=>C()),a(re,m),Ee()}var fa=l("<div><!></div>");function Wt(re,e){Ne(e,!0);let C=Tt(e,"ref",15,null),x=xt(e,["$$slots","$$events","$$legacy","ref","class","children"]);var m=fa();Mt(m,d=>({"data-slot":"card-content",class:d,...x}),[()=>Lt("px-6",e.class)]);var _=n(m);ft(_,()=>e.children??gt),r(m),Nt(m,d=>C(d),()=>C()),a(re,m),Ee()}function Gt(re,e){Ne(e,!0);let C=xt(e,["$$slots","$$events","$$legacy"]);const x=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"}]];Ot(re,Et({name:"play"},()=>C,{get iconNode(){return x},children:(m,_)=>{var d=pe(),X=k(d);ft(X,()=>e.children??gt),a(m,d)},$$slots:{default:!0}})),Ee()}var ga=l("<span> </span>"),xa=l('<span class="text-[var(--sig-warning, #f59e0b)]">running...</span>'),ma=l("<span> </span>"),_a=l('<span class="text-[var(--sig-error, #ef4444)]"> </span>'),pa=l(`<div class="flex items-start justify-between gap-2"><span class="text-[12px] font-medium text-[var(--sig-text-bright)]
|
|
2
2
|
leading-tight line-clamp-2"> </span> <!></div> <div class="text-[10px] text-[var(--sig-text-muted)]
|
|
3
3
|
font-[family-name:var(--font-mono)]
|
|
4
4
|
flex items-center gap-3"><span> </span> <!></div> <div class="flex items-center justify-between pt-1"><div><!></div> <div><!></div></div>`,1),ba=l('<button class="w-full text-left cursor-pointer bg-transparent border-none p-0"><!></button>');function It(re,e){Ne(e,!0);function C(w){if(!w)return"—";const E=new Date(w).getTime()-Date.now(),p=Math.abs(E);if(p<6e4)return E>0?"< 1m":"just now";if(p<36e5){const W=Math.round(p/6e4);return E>0?`${W}m`:`${W}m ago`}if(p<864e5){const W=Math.round(p/36e5);return E>0?`${W}h`:`${W}h ago`}const Q=Math.round(p/864e5);return E>0?`${Q}d`:`${Q}d ago`}let x=ae(()=>e.task.harness==="claude-code"?"claude":"opencode"),m=ae(()=>C(e.task.next_run_at)),_=ae(()=>C(e.task.last_run_at));var d=ba(),X=n(d);{let w=ae(()=>e.task.enabled?"":"opacity-50");h(X,()=>qt,(E,p)=>{p(E,{get class(){return`bg-[var(--sig-surface-raised)] border-[var(--sig-border)]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as h,F as s,m as o,q as d,O as p,J as m,I as x,C as y,D as w,h as v,l as _,E as k}from"./cZT7cFE6.js";import{e as B,k as V}from"./
|
|
1
|
+
import{a as h,F as s,m as o,q as d,O as p,J as m,I as x,C as y,D as w,h as v,l as _,E as k}from"./cZT7cFE6.js";import{e as B,k as V}from"./DV5sVIyK.js";const j=V({base:"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3",variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90 border-transparent",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 border-transparent",destructive:"bg-destructive [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/70 border-transparent text-white",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function C(c,e){h(e,!0);let a=s(e,"ref",15,null),f=s(e,"variant",3,"default"),l=k(e,["$$slots","$$events","$$legacy","ref","href","class","variant","children"]);var t=o(),u=d(t);p(u,()=>e.href?"a":"span",!1,(i,g)=>{m(i,r=>a(r),()=>a()),x(i,r=>({"data-slot":"badge",href:e.href,class:r,...l}),[()=>B(j({variant:f()}),e.class)]);var n=o(),b=d(n);y(b,()=>e.children??w),v(g,n)}),v(c,t),_()}export{C as B};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Ct,s as P,p as Tt,o as At,P as zt,c as a,G as O,q as V,n as Pe,t as Ce,e as C,f as d,g as e,h as l,d as o,v as me,m as fe,w as xe,b as i,r as s,i as J,M as ie,y as _e,u as Te,N as Et,l as Nt,z as u,A as Rt}from"./cZT7cFE6.js";import{S as Ue,a as Xe,b as be,c as Ge}from"./
|
|
1
|
+
import{a as Ct,s as P,p as Tt,o as At,P as zt,c as a,G as O,q as V,n as Pe,t as Ce,e as C,f as d,g as e,h as l,d as o,v as me,m as fe,w as xe,b as i,r as s,i as J,M as ie,y as _e,u as Te,N as Et,l as Nt,z as u,A as Rt}from"./cZT7cFE6.js";import{S as Ue,a as Xe,b as be,c as Ge}from"./Cu4vu2mh.js";import{C as jt}from"./DnPQ8YoS.js";import{S as Mt}from"./CkhlVB35.js";import{A as Ie}from"./DV5sVIyK.js";var Ft=u("<!> <!>",1),qt=u("<!> <!>",1),Ot=u("<!> <!>",1),Vt=u("<!> <!>",1),Bt=u('<span class="text-[var(--sig-success)] text-[length:var(--font-size-sm)] font-medium [animation:pulse_2s_infinite]">● Live</span>'),Jt=u('<span class="text-[var(--sig-text-muted)] text-[length:var(--font-size-sm)] [animation:pulse_2s_infinite]">↺</span>'),Dt=u('<span class="text-[10px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)] truncate max-w-[220px]"> </span>'),Kt=u('<div class="py-[var(--space-xl)] text-center text-[var(--sig-text-muted)] font-[family-name:var(--font-display)] text-[length:var(--font-size-base)]">Loading logs...</div>'),Ut=u('<div class="py-[var(--space-xl)] text-center text-[var(--sig-danger)] font-[family-name:var(--font-display)] text-[length:var(--font-size-base)]"> </div>'),Xt=u('<div class="py-[var(--space-xl)] text-center text-[var(--sig-text-muted)] font-[family-name:var(--font-display)] text-[length:var(--font-size-base)]">No logs found</div>'),Gt=u('<span class="text-[var(--sig-text-muted)]"> </span>'),It=u('<div class="mt-1 text-[11px] text-[var(--sig-text-muted)] whitespace-pre-wrap break-words"> </div>'),Ht=u('<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 class="text-[var(--sig-text)] shrink-0"> </span> <span class="text-[var(--sig-text-bright)] break-all"> </span> <!></div> <!></button>'),Qt=u('<div class="font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)] leading-relaxed"><!></div>'),Wt=u('<div class="text-[var(--sig-text-muted)]">Duration</div> <div class="text-[var(--sig-text-bright)]"> </div>',1),Yt=u('<details class="mb-1 border border-[var(--sig-border)] bg-[var(--sig-surface)]"><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>'),Zt=u('<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)] bg-[var(--sig-surface)] text-[var(--sig-text)]"> </pre></div>'),er=u('<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>'),tr=u('<div class="flex items-center justify-between gap-2 mb-[var(--space-sm)]"><div class="text-[var(--sig-text-muted)] text-[length:var(--font-size-xs)] uppercase tracking-[0.08em]">Log details</div> <button type="button" class="text-[10px] px-2 py-1 border border-[var(--sig-border)] text-[var(--sig-text)] hover:border-[var(--sig-border-strong)] hover:text-[var(--sig-text-bright)]"> </button></div> <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 class="text-[var(--sig-text-bright)]"> </div> <div class="text-[var(--sig-text-muted)]">Message</div> <div class="text-[var(--sig-text-bright)] break-all"> </div> <!></div> <!> <pre class="m-0 p-2 text-[10px] leading-relaxed whitespace-pre-wrap break-all border border-[var(--sig-border)] bg-[var(--sig-surface-raised)] text-[var(--sig-text-muted)]"> </pre>',1),rr=u('<div class="text-[var(--sig-text-muted)]">Select a log entry to inspect details.</div>'),ar=u('<div class="flex flex-col flex-1 min-h-0"><div class="flex 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 text-[length:var(--font-size-sm)] text-[var(--sig-text)] cursor-pointer"><!> Auto-scroll</label> <span> </span> <button class="text-[11px] px-2 py-1 border border-[var(--sig-border)] text-[var(--sig-text)] hover:border-[var(--sig-border-strong)] hover:text-[var(--sig-text-bright)]" title="Reload logs"> </button> <button><!></button> <!></div> <div class="flex-1 min-h-0 grid grid-cols-1 lg:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)]"><!> <div class="min-h-0 overflow-auto p-[var(--space-md)] font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)]"><!></div></div></div>');function cr(He,Qe){Ct(Qe,!0);const We=2e3,Ye=3e4,Ae=5;let p=P(Tt([])),he=P(!1),le=P(""),H=P(!1),D=P(!1),Q=P(""),T=null,K=0,A=null,W=P(""),Y=P(""),Z=P(!0),ze=null,U=P(null),ve=P(!1),ee=P(!0);const Ze=["daemon","api","memory","sync","git","watcher","embedding","harness","system","hooks","pipeline","skills","secrets","auth","session-tracker","summary-worker","document-worker","maintenance","retention","llm"],et=["debug","info","warn","error"];function ye(t){switch(t){case"error":return"log-level--error";case"warn":return"log-level--warn";case"debug":return"log-level--debug";default:return"log-level--info"}}function re(t,r){return`${t.timestamp}-${t.level}-${t.category}-${r}`}function tt(){return e(p).length===0||!e(U)?!0:e(U)===re(e(p)[e(p).length-1],e(p).length-1)}function Ee(){if(e(p).length===0){i(U,null);return}i(U,re(e(p)[e(p).length-1],e(p).length-1),!0)}function rt(){if(!e(U))return e(p).at(-1)??null;for(let t=0;t<e(p).length;t+=1)if(re(e(p)[t],t)===e(U))return e(p)[t];return e(p).at(-1)??null}const S=Te(rt);function sr(t="smooth"){}function at(t){return!0}async function ce(){i(he,!0),i(le,"");try{const t=new URLSearchParams({limit:"200"});e(W)&&t.set("level",e(W)),e(Y)&&t.set("category",e(Y));const n=await(await fetch(`/api/logs?${t}`)).json();i(p,n.logs||[],!0),Ee(),setTimeout(()=>{i(ee,!0)},0)}catch{i(le,"Failed to fetch logs")}finally{i(he,!1)}}function Ne(){A!==null&&(clearTimeout(A),A=null),T&&T.close(),i(H,!0),T=new EventSource("/api/logs/stream"),T.onmessage=t=>{try{const r=JSON.parse(t.data);if(r.type==="connected"){K=0,i(D,!1),i(Q,"");return}if(e(W)&&r.level!==e(W)||e(Y)&&r.category!==e(Y))return;const n=at(ze),y=e(Z)&&(e(ee)||n),f=tt();i(p,[...e(p).slice(-499),r],!0),f&&Ee(),y&&setTimeout(()=>{i(ee,!0)},0)}catch{}},T.onerror=()=>{if(i(H,!1),T?.close(),T=null,A===null)if(K<Ae){const t=Math.min(We*2**K,Ye);K++,i(D,!0),i(Q,`Stream lost — reconnecting in ${t/1e3}s (${K}/${Ae})`),A=setTimeout(()=>{A=null,Ne()},t)}else i(D,!1),i(Q,"Stream disconnected. Click ▶ to reconnect."),K=0}}function st(){K=0,i(D,!1),i(Q,""),Ne()}function nt(){i(H,!1),i(D,!1),i(Q,""),K=0,A!==null&&(clearTimeout(A),A=null),T?.close(),T=null}function ot(){e(H)||e(D)?nt():st()}function it(t){return t.split("T")[1]?.slice(0,8)||""}function lt(t){try{return new Date(t).toLocaleString()}catch{return t}}function Re(t){return JSON.stringify(t,null,2)}function M(t){return typeof t=="string"&&t.length>0?t:null}function vt(t){return Array.isArray(t)?t.filter(r=>typeof r=="string"&&r.length>0):[]}function je(t){const r=t.data;if(!r)return[];const n=[],y=M(r.inject)??M(r.injectPreview);y&&n.push({label:"Inject",content:y});const f=M(r.prompt)??M(r.promptPreview);f&&n.push({label:"Prompt",content:f});const $=M(r.summaryPrompt)??M(r.summaryPromptPreview);$&&n.push({label:"Summary Prompt",content:$});const L=M(r.summary)??M(r.summaryPreview);L&&n.push({label:"Summary",content:L});const x=M(r.transcript)??M(r.transcriptPreview);x&&n.push({label:"Transcript",content:x});const v=vt(r.factsPreview);if(v.length>0){const c=v.map(z=>`- ${z}`).join(`
|
|
2
2
|
`);n.push({label:"Facts",content:c})}return n}function Me(t){const r=je(t);if(r.length===0)return"";const n=r.map(y=>y.content).join(`
|
|
3
3
|
|
|
4
4
|
`).trim();return n.length<=220?n:`${n.slice(0,220)}...`}async function ct(){if(e(S))try{await navigator.clipboard.writeText(Re(e(S))),i(ve,!0),setTimeout(()=>{i(ve,!1)},1200)}catch{i(ve,!1)}}At(()=>(ce(),()=>{A!==null&&clearTimeout(A),T&&T.close()})),zt(()=>{});var we=ar(),Se=a(we),Fe=a(Se);O(Fe,()=>Ge,(t,r)=>{r(t,{type:"single",get value(){return e(W)},onValueChange:n=>{i(W,n??"",!0),ce()},children:(n,y)=>{var f=qt(),$=V(f);O($,()=>Ue,(x,v)=>{v(x,{class:"font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)] bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] text-[var(--sig-text-bright)] rounded-none h-auto py-1 px-2 min-w-[100px]",children:(c,z)=>{Pe();var m=Ce();C(()=>d(m,e(W)||"All levels")),l(c,m)},$$slots:{default:!0}})});var L=o($,2);O(L,()=>Xe,(x,v)=>{v(x,{class:"bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] rounded-none",children:(c,z)=>{var m=Ft(),g=V(m);O(g,()=>be,(b,h)=>{h(b,{value:"",label:"All levels"})});var F=o(g,2);me(F,17,()=>et,xe,(b,h)=>{var E=fe(),X=V(E);O(X,()=>be,(q,G)=>{G(q,{get value(){return e(h)},get label(){return e(h)}})}),l(b,E)}),l(c,m)},$$slots:{default:!0}})}),l(n,f)},$$slots:{default:!0}})});var qe=o(Fe,2);O(qe,()=>Ge,(t,r)=>{r(t,{type:"single",get value(){return e(Y)},onValueChange:n=>{i(Y,n??"",!0),ce()},children:(n,y)=>{var f=Vt(),$=V(f);O($,()=>Ue,(x,v)=>{v(x,{class:"font-[family-name:var(--font-mono)] text-[length:var(--font-size-sm)] bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] text-[var(--sig-text-bright)] rounded-none h-auto py-1 px-2 min-w-[100px]",children:(c,z)=>{Pe();var m=Ce();C(()=>d(m,e(Y)||"All categories")),l(c,m)},$$slots:{default:!0}})});var L=o($,2);O(L,()=>Xe,(x,v)=>{v(x,{class:"bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)] rounded-none",children:(c,z)=>{var m=Ot(),g=V(m);O(g,()=>be,(b,h)=>{h(b,{value:"",label:"All categories"})});var F=o(g,2);me(F,17,()=>Ze,xe,(b,h)=>{var E=fe(),X=V(E);O(X,()=>be,(q,G)=>{G(q,{get value(){return e(h)},get label(){return e(h)}})}),l(b,E)}),l(c,m)},$$slots:{default:!0}})}),l(n,f)},$$slots:{default:!0}})});var $e=o(qe,2),dt=a($e);jt(dt,{get checked(){return e(Z)},onCheckedChange:t=>{i(Z,t===!0)},class:"rounded-none"}),Pe(),s($e);var de=o($e,2);let Oe;var ut=a(de,!0);s(de);var ue=o(de,2),gt=a(ue,!0);s(ue);var te=o(ue,2),pt=a(te);{var mt=t=>{var r=Bt();l(t,r)},ft=t=>{var r=Jt();l(t,r)},xt=t=>{var r=Ce("▶");l(t,r)};J(pt,t=>{e(H)?t(mt):e(D)?t(ft,1):t(xt,!1)})}s(te);var _t=o(te,2);{var bt=t=>{var r=Dt(),n=a(r,!0);s(r),C(()=>d(n,e(Q))),l(t,r)};J(_t,t=>{e(Q)&&t(bt)})}s(Se);var Ve=o(Se,2),Be=a(Ve);Mt(Be,{class:"min-h-0 border-r border-[var(--sig-border)]",viewportRef:ze,children:(t,r)=>{var n=Qt(),y=a(n);{var f=v=>{var c=Kt();l(v,c)},$=v=>{var c=Ut(),z=a(c,!0);s(c),C(()=>d(z,e(le))),l(v,c)},L=v=>{var c=Xt();l(v,c)},x=v=>{var c=fe(),z=V(c);me(z,17,()=>e(p),xe,(m,g,F)=>{var b=Ht(),h=a(b),E=a(h),X=a(E,!0);s(E);var q=o(E,2),G=a(q,!0);s(q);var ae=o(q,2),N=a(ae);s(ae);var k=o(ae,2),I=a(k,!0);s(k);var se=o(k,2);{var B=R=>{var _=Gt(),w=a(_);s(_),C(()=>d(w,`(${e(g).duration??""}ms)`)),l(R,_)};J(se,R=>{e(g).duration!==void 0&&R(B)})}s(h);var ge=o(h,2);{var Le=R=>{var _=It(),w=a(_,!0);s(_),C(j=>d(w,j),[()=>Me(e(g))]),l(R,_)},ke=Te(()=>Me(e(g)));J(ge,R=>{e(ke)&&R(Le)})}s(b),C((R,_,w,j)=>{ie(b,1,R,"svelte-q4aevr"),d(X,_),ie(q,1,w,"svelte-q4aevr"),d(G,j),d(N,`[${e(g).category??""}]`),d(I,e(g).message)},[()=>`log-row ${ye(e(g).level)} w-full text-left px-[var(--space-md)] py-1.5 border-b border-[var(--sig-border)] hover:bg-[var(--sig-surface-raised)] cursor-pointer ${e(U)===re(e(g),F)?"bg-[var(--sig-surface-raised)] border-[var(--sig-border-strong)]":""}`,()=>it(e(g).timestamp),()=>`font-semibold shrink-0 min-w-[40px] ${ye(e(g).level)}`,()=>e(g).level.toUpperCase()]),_e("click",b,()=>{i(U,re(e(g),F),!0)}),l(m,b)}),l(v,c)};J(y,v=>{e(he)?v(f):e(le)?v($,1):e(p).length===0?v(L,2):v(x,!1)})}s(n),l(t,n)},$$slots:{default:!0}});var Je=o(Be,2),ht=a(Je);{var yt=t=>{const r=Te(()=>je(e(S)));var n=tr(),y=V(n),f=o(a(y),2),$=a(f,!0);s(f),s(y);var L=o(y,2),x=o(a(L),2),v=a(x,!0);s(x);var c=o(x,4),z=a(c,!0);s(c);var m=o(c,4),g=a(m,!0);s(m);var F=o(m,4),b=a(F,!0);s(F);var h=o(F,2);{var E=N=>{var k=Wt(),I=o(V(k),2),se=a(I);s(I),C(()=>d(se,`${e(S).duration??""}ms`)),l(N,k)};J(h,N=>{e(S).duration!==void 0&&N(E)})}s(L);var X=o(L,2);{var q=N=>{var k=er(),I=o(a(k),2);me(I,17,()=>e(r),xe,(se,B)=>{var ge=fe(),Le=V(ge);{var ke=_=>{var w=Yt(),j=a(w),ne=a(j),pe=a(ne,!0);s(ne);var oe=o(ne,2),St=a(oe);s(oe);var De=o(oe,2),$t=a(De);s(De),s(j);var Ke=o(j,2),Lt=a(Ke,!0);s(Ke),s(w),C((kt,Pt)=>{d(pe,e(B).label),d(St,`(${kt??""} chars)`),d($t,`${Pt??""}...`),d(Lt,e(B).content)},[()=>e(B).content.length.toLocaleString(),()=>e(B).content.slice(0,100).replace(/\n/g," ")]),l(_,w)},R=_=>{var w=Zt(),j=a(w),ne=a(j,!0);s(j);var pe=o(j,2),oe=a(pe,!0);s(pe),s(w),C(()=>{d(ne,e(B).label),d(oe,e(B).content)}),l(_,w)};J(Le,_=>{e(B).content.length>500?_(ke):_(R,!1)})}l(se,ge)}),s(k),l(N,k)};J(X,N=>{e(r).length>0&&N(q)})}var G=o(X,2),ae=a(G,!0);s(G),C((N,k,I)=>{d($,e(ve)?"Copied":Ie.CopyJson),d(v,N),ie(c,1,k,"svelte-q4aevr"),d(z,e(S).level),d(g,e(S).category),d(b,e(S).message),d(ae,I)},[()=>lt(e(S).timestamp),()=>`uppercase ${ye(e(S).level)}`,()=>Re(e(S))]),_e("click",f,ct),l(t,n)},wt=t=>{var r=rr();l(t,r)};J(ht,t=>{e(S)?t(yt):t(wt,!1)})}s(Je),s(Ve),s(we),C(()=>{Oe=ie(de,1,"text-[10px] font-[family-name:var(--font-mono)]",null,Oe,{"text-[#4ade80]":e(Z)&&e(ee),"text-[var(--sig-text-muted)]":!e(Z)||!e(ee)}),d(ut,e(Z)&&e(ee)?"following":"paused"),d(gt,Ie.Refresh),ie(te,1,`flex items-center justify-center w-7 h-7 bg-transparent border border-transparent cursor-pointer hover:text-[var(--sig-text)] hover:border-[var(--sig-border)] ${e(H)?"text-[var(--sig-success)]":"text-[var(--sig-text-muted)]"}`,"svelte-q4aevr"),Et(te,"title",e(H)?"Stop stream":e(D)?"Cancel reconnect":"Start stream")}),_e("click",ue,ce),_e("click",te,ot),l(He,we),Nt()}Rt(["click"]);export{cr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as y,F as a,m as x,q as i,G as c,R as I,B as q,g as B,C as D,D as E,d as b,T as J,h as d,l as F,E as G,u as T,z as U,U as K,i as Y,V as L,W as M}from"./cZT7cFE6.js";import{e as V}from"./
|
|
1
|
+
import{a as y,F as a,m as x,q as i,G as c,R as I,B as q,g as B,C as D,D as E,d as b,T as J,h as d,l as F,E as G,u as T,z as U,U as K,i as Y,V as L,W as M}from"./cZT7cFE6.js";import{e as V}from"./DV5sVIyK.js";var N=U("<!> <!>",1);function $(h,r){y(r,!0);let o=a(r,"ref",15,null),l=a(r,"orientation",3,"vertical"),t=G(r,["$$slots","$$events","$$legacy","ref","class","orientation","children"]);var f=x(),m=i(f);{let S=T(()=>V("flex touch-none p-px transition-colors select-none",l()==="vertical"&&"h-full w-2.5 border-s border-s-transparent",l()==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent",r.class));c(m,()=>I,(u,p)=>{p(u,q({"data-slot":"scroll-area-scrollbar",get orientation(){return l()},get class(){return B(S)}},()=>t,{get ref(){return o()},set ref(n){o(n)},children:(n,z)=>{var v=N(),s=i(v);D(s,()=>r.children??E);var P=b(s,2);c(P,()=>J,(_,g)=>{g(_,{"data-slot":"scroll-area-thumb",class:"bg-border relative flex-1 rounded-full"})}),d(n,v)},$$slots:{default:!0}}))})}d(h,f),F()}var O=U("<!> <!> <!> <!>",1);function er(h,r){y(r,!0);let o=a(r,"ref",15,null),l=a(r,"viewportRef",15,null),t=a(r,"orientation",3,"vertical"),f=a(r,"scrollbarXClasses",3,""),m=a(r,"scrollbarYClasses",3,""),S=G(r,["$$slots","$$events","$$legacy","ref","viewportRef","class","orientation","scrollbarXClasses","scrollbarYClasses","children"]);var u=x(),p=i(u);{let n=T(()=>V("relative",r.class));c(p,()=>M,(z,v)=>{v(z,q({"data-slot":"scroll-area",get class(){return B(n)}},()=>S,{get ref(){return o()},set ref(s){o(s)},children:(s,P)=>{var _=O(),g=i(_);c(g,()=>K,(e,w)=>{w(e,{"data-slot":"scroll-area-viewport",class:"ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1",get ref(){return l()},set ref(C){l(C)},children:(C,Q)=>{var X=x(),H=i(X);D(H,()=>r.children??E),d(C,X)},$$slots:{default:!0}})});var R=b(g,2);{var W=e=>{$(e,{orientation:"vertical",get class(){return m()}})};Y(R,e=>{(t()==="vertical"||t()==="both")&&e(W)})}var k=b(R,2);{var j=e=>{$(e,{orientation:"horizontal",get class(){return f()}})};Y(k,e=>{(t()==="horizontal"||t()==="both")&&e(j)})}var A=b(k,2);c(A,()=>L,(e,w)=>{w(e,{})}),d(s,_)},$$slots:{default:!0}}))})}d(h,u),F()}export{er as S,$ as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as d,F as l,m,q as p,G as x,X as h,B as _,g as y,h as u,l as c,E as f,u as w,Y as L,I as k,J as z,L as P,z as T}from"./cZT7cFE6.js";import{e as b}from"./
|
|
1
|
+
import{a as d,F as l,m,q as p,G as x,X as h,B as _,g as y,h as u,l as c,E as f,u as w,Y as L,I as k,J as z,L as P,z as T}from"./cZT7cFE6.js";import{e as b}from"./DV5sVIyK.js";function F(i,e){d(e,!0);let t=l(e,"ref",15,null),n=f(e,["$$slots","$$events","$$legacy","ref","class"]);var s=m(),o=p(s);{let a=w(()=>b("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e.class));x(o,()=>h,(r,v)=>{v(r,_({"data-slot":"label",get class(){return y(a)}},()=>n,{get ref(){return t()},set ref(g){t(g)}}))})}u(i,s),c()}var q=T("<textarea></textarea>");function G(i,e){d(e,!0);let t=l(e,"ref",15,null),n=l(e,"value",15),s=l(e,"data-slot",3,"textarea"),o=f(e,["$$slots","$$events","$$legacy","ref","value","class","data-slot"]);var a=q();L(a),k(a,r=>({"data-slot":s(),class:r,...o}),[()=>b("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e.class)]),z(a,r=>t(r),()=>t()),P(a,n),u(i,a),c()}export{F as L,G as T};
|