signetai 0.78.2 → 0.78.3

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.
Files changed (100) hide show
  1. package/dashboard/_app/immutable/assets/0.CU0K3a5Q.css +1 -0
  2. package/dashboard/_app/immutable/assets/AuditTab.DfUZSCcu.css +1 -0
  3. package/dashboard/_app/immutable/assets/CortexTab.DM0MR2Ew.css +1 -0
  4. package/dashboard/_app/immutable/assets/{TaskDetail.YLB6Rg4e.css → CortexTasksPanel.C4153GOT.css} +1 -1
  5. package/dashboard/_app/immutable/assets/TroubleshooterPanel.Bj27xjMc.css +1 -0
  6. package/dashboard/_app/immutable/chunks/2sVhTPqV.js +5 -0
  7. package/dashboard/_app/immutable/chunks/{BMHg4p9s.js → 8I6zSz1_.js} +1 -1
  8. package/dashboard/_app/immutable/chunks/B1CG30Tk.js +1 -0
  9. package/dashboard/_app/immutable/chunks/B5EqjC58.js +2 -0
  10. package/dashboard/_app/immutable/chunks/B7Trm0Eb.js +1 -0
  11. package/dashboard/_app/immutable/chunks/{BX1Yz7rd.js → BDT3hrUw.js} +1 -1
  12. package/dashboard/_app/immutable/chunks/{BjFLqtWT.js → BFQszhNF.js} +1 -1
  13. package/dashboard/_app/immutable/chunks/BFjTMOJT.js +1 -0
  14. package/dashboard/_app/immutable/chunks/BLxYnJFM.js +1 -0
  15. package/dashboard/_app/immutable/chunks/{ycjTzGx9.js → BU2RpiOd.js} +1 -1
  16. package/dashboard/_app/immutable/chunks/{C6Ut0qMj.js → BUfNSShc.js} +1 -1
  17. package/dashboard/_app/immutable/chunks/{Sbdhs5rk.js → BfyKCXaY.js} +1 -1
  18. package/dashboard/_app/immutable/chunks/BlyEKFy6.js +1 -0
  19. package/dashboard/_app/immutable/chunks/{otBz_bAw.js → C1mzMGVK.js} +1 -1
  20. package/dashboard/_app/immutable/chunks/C3uL_G-6.js +3 -0
  21. package/dashboard/_app/immutable/chunks/CJKt8AUS.js +32 -0
  22. package/dashboard/_app/immutable/chunks/{D4fMMG5j.js → CKyI7_iw.js} +1 -1
  23. package/dashboard/_app/immutable/chunks/{TDeGgAzG.js → CQXEoRQp.js} +1 -1
  24. package/dashboard/_app/immutable/chunks/{CYGmkkOT.js → CQm_y4uV.js} +1 -1
  25. package/dashboard/_app/immutable/chunks/CZ4IBYNe.js +1 -0
  26. package/dashboard/_app/immutable/chunks/{Dg17Auac.js → CeI7UBRO.js} +1 -1
  27. package/dashboard/_app/immutable/chunks/CjQstM_p.js +15 -0
  28. package/dashboard/_app/immutable/chunks/CwRhzb5g.js +1 -0
  29. package/dashboard/_app/immutable/chunks/CwqzNZZy.js +2 -0
  30. package/dashboard/_app/immutable/chunks/CziGSIXa.js +1 -0
  31. package/dashboard/_app/immutable/chunks/D4hiagJ4.js +3 -0
  32. package/dashboard/_app/immutable/chunks/{Bf45f0Vp.js → D5r8Pi79.js} +1 -1
  33. package/dashboard/_app/immutable/chunks/{D7ozeA5b.js → D8vxVi1s.js} +1 -1
  34. package/dashboard/_app/immutable/chunks/DFBQgsWq.js +2 -0
  35. package/dashboard/_app/immutable/chunks/DJ34Ow8B.js +64 -0
  36. package/dashboard/_app/immutable/chunks/{CjrslgAi.js → DOaCXx_K.js} +1 -1
  37. package/dashboard/_app/immutable/chunks/{2MfvoDg1.js → DVXNr7Gr.js} +1 -1
  38. package/dashboard/_app/immutable/chunks/{BHvXyetp.js → DYIWBQCf.js} +1 -1
  39. package/dashboard/_app/immutable/chunks/DYOdoKxT.js +264 -0
  40. package/dashboard/_app/immutable/chunks/{DWi5AdTB.js → DZJZefYk.js} +2 -2
  41. package/dashboard/_app/immutable/chunks/Db1xOFju.js +1 -0
  42. package/dashboard/_app/immutable/chunks/DddEkaw0.js +1 -0
  43. package/dashboard/_app/immutable/chunks/Ddm7yfuh.js +7 -0
  44. package/dashboard/_app/immutable/chunks/{CH07uMzE.js → DlL5xNTX.js} +1 -1
  45. package/dashboard/_app/immutable/chunks/{8qq9odk9.js → Dnh29zl2.js} +1 -1
  46. package/dashboard/_app/immutable/chunks/{CCS36Mqc.js → DyjGoGyT.js} +1 -1
  47. package/dashboard/_app/immutable/chunks/JGLyxup4.js +27 -0
  48. package/dashboard/_app/immutable/chunks/{DP3h6pcQ.js → LDm615q6.js} +1 -1
  49. package/dashboard/_app/immutable/chunks/{gnFq108l.js → NJkCFQbe.js} +1 -1
  50. package/dashboard/_app/immutable/chunks/{BnRD8JUX.js → P0vgGLcV.js} +1 -1
  51. package/dashboard/_app/immutable/chunks/{DP2Cqb23.js → QQITl5fF.js} +1 -1
  52. package/dashboard/_app/immutable/chunks/TyeR9VWg.js +26 -0
  53. package/dashboard/_app/immutable/chunks/{BLrn3yUI.js → altURCqx.js} +1 -1
  54. package/dashboard/_app/immutable/chunks/{Bfse3fCo.js → anLJSqtR.js} +1 -1
  55. package/dashboard/_app/immutable/chunks/{DMYKaFD3.js → rn86Xwnc.js} +1 -1
  56. package/dashboard/_app/immutable/chunks/sCGNJapo.js +36 -0
  57. package/dashboard/_app/immutable/chunks/zWsBWM0e.js +4 -0
  58. package/dashboard/_app/immutable/entry/app.CRVX7NHY.js +2 -0
  59. package/dashboard/_app/immutable/entry/start.D6fHbnXJ.js +1 -0
  60. package/dashboard/_app/immutable/nodes/{0.jIuPfYNn.js → 0.B0A_vgr9.js} +1 -1
  61. package/dashboard/_app/immutable/nodes/1.B4ePHtXd.js +1 -0
  62. package/dashboard/_app/immutable/nodes/2.UCOJaFhi.js +1 -0
  63. package/dashboard/_app/version.json +1 -1
  64. package/dashboard/index.html +7 -7
  65. package/dist/daemon.js +240 -216
  66. package/package.json +1 -1
  67. package/dashboard/_app/immutable/assets/0.CJqciL3X.css +0 -1
  68. package/dashboard/_app/immutable/assets/CortexTab.CbEfH7Fd.css +0 -1
  69. package/dashboard/_app/immutable/assets/CortexTasksPanel.Ds5n7IaC.css +0 -1
  70. package/dashboard/_app/immutable/assets/TasksTab.Bok2ZX0D.css +0 -1
  71. package/dashboard/_app/immutable/assets/TroubleshooterPanel.Dw-L2Im3.css +0 -1
  72. package/dashboard/_app/immutable/chunks/2MRzfVP3.js +0 -1
  73. package/dashboard/_app/immutable/chunks/3MTuhkkM.js +0 -1
  74. package/dashboard/_app/immutable/chunks/7pObTy5Z.js +0 -27
  75. package/dashboard/_app/immutable/chunks/B82MekTh.js +0 -4
  76. package/dashboard/_app/immutable/chunks/BXXcrVDk.js +0 -1
  77. package/dashboard/_app/immutable/chunks/Bh3nIh1p.js +0 -7
  78. package/dashboard/_app/immutable/chunks/Bo0KuYql.js +0 -26
  79. package/dashboard/_app/immutable/chunks/C2EsmaBq.js +0 -32
  80. package/dashboard/_app/immutable/chunks/CAzEUj7-.js +0 -3
  81. package/dashboard/_app/immutable/chunks/CQlsEtmr.js +0 -2
  82. package/dashboard/_app/immutable/chunks/CRs_2u26.js +0 -39
  83. package/dashboard/_app/immutable/chunks/Ca7ofCGO.js +0 -264
  84. package/dashboard/_app/immutable/chunks/CaQOFuOW.js +0 -1
  85. package/dashboard/_app/immutable/chunks/Cfzanl-M.js +0 -1
  86. package/dashboard/_app/immutable/chunks/Cvtb1Uv1.js +0 -5
  87. package/dashboard/_app/immutable/chunks/D2L-5-73.js +0 -61
  88. package/dashboard/_app/immutable/chunks/D4j6_yDm.js +0 -1
  89. package/dashboard/_app/immutable/chunks/D7-Y1GbH.js +0 -1
  90. package/dashboard/_app/immutable/chunks/D7kvLQQv.js +0 -1
  91. package/dashboard/_app/immutable/chunks/D9AMLR_o.js +0 -1
  92. package/dashboard/_app/immutable/chunks/DPqWqYTP.js +0 -15
  93. package/dashboard/_app/immutable/chunks/DW-0HYki.js +0 -3
  94. package/dashboard/_app/immutable/chunks/cLV2Mo98.js +0 -2
  95. package/dashboard/_app/immutable/chunks/pP_VsnEc.js +0 -1
  96. package/dashboard/_app/immutable/chunks/u_Tqmrjo.js +0 -1
  97. package/dashboard/_app/immutable/entry/app.D33Fg_EX.js +0 -2
  98. package/dashboard/_app/immutable/entry/start.CKfFW3OZ.js +0 -1
  99. package/dashboard/_app/immutable/nodes/1.CixhrL0r.js +0 -1
  100. package/dashboard/_app/immutable/nodes/2.BF93CE4w.js +0 -1
@@ -1 +0,0 @@
1
- import{p as wn,o as f,e as Ee,Q as re,v as n,j as l,F as br,i as e,t as d,k as j,l as s,b as u,d as Sn,u as U,D as fn,O as X,N as Ar,m,P as Mn,g as cr,y as F,B as bt,f as me,w as ur,ad as Wt,z as b,A as St,G as Mt,c as gr,q as To,$ as Eo,h as Yt,af as Zt,ag as Br,J as lr,ah as aa,R as un,ai as No}from"./Bh3nIh1p.js";import{P as Fo}from"./Bfse3fCo.js";import{af as Po,h as Co,n as oa,i as Lo,A as gn,ag as Do,ah as ia,ai as Ao,aj as sa,ak as Ro,Q as Oo,al as vn,am as Yo,an as Xo,ao as jo,t as Sr}from"./D2L-5-73.js";import{C as Pr,a as Cr,b as Lr}from"./2MfvoDg1.js";import{T as Ho}from"./CjrslgAi.js";import{w as Mr,s as Go}from"./pP_VsnEc.js";import{f as la,a as da,b as ca,c as ua,e as ga,g as va}from"./qiR1fnXB.js";import{C as Dr}from"./BMHg4p9s.js";const Wr=600,zo=5e3,pa="signet-embeddings-graph-physics",kr={centerForce:.28,repelForce:-260,linkForce:.12,linkDistance:92},mn={"claude-code":"#5eada4",clawdbot:"#a78bfa",daemon:"#22c55e","signet-daemon":"#22c55e",openclaw:"#facc15","openclaw-memory":"#facc15",opencode:"#60a5fa",user:"#ef4444",manual:"#f472b6",unknown:"#737373"},fa=3600*1e3,Bo=24*fa,ma=7*Bo,xa=900*1e3,ba=6*fa;function xn(h){const o=(v,g,w)=>Math.min(w,Math.max(g,v));return{centerForce:o(h.centerForce,0,1),repelForce:o(h.repelForce,-600,-10),linkForce:o(h.linkForce,.01,1),linkDistance:o(h.linkDistance,12,280)}}function kn(h){const o=Number.parseInt(h.slice(1),16);return[o>>16&255,o>>8&255,o&255]}function ha(h,o){const[v,g,w]=kn(mn[h??"unknown"]??mn.unknown);return`rgba(${v}, ${g}, ${w}, ${o})`}function ya(h){if(!h)return null;const o=new Date(h).getTime();return Number.isNaN(o)?null:o}function Wo(h,o){const v=ya(h);if(v===null)return .22;const g=Math.max(0,o-v);return g<=xa?1:g<=ba?.76:g<=ma?.52:.22}function In(h){return h>=.95?"minutes":h>=.7?"hours":h>=.45?"week":"older"}function _a(h,o){const v=In(h);return v==="minutes"?`rgba(255, 176, 74, ${o})`:v==="hours"?`rgba(168, 34, 98, ${o})`:v==="week"?`rgba(76, 34, 122, ${o})`:`rgba(118, 111, 102, ${o})`}function qo(h,o){if(o===null)return!1;const v=ya(h);return v===null?!1:v>o}function hr(h){const o=h.content??h.text??"";return o.length>160?`${o.slice(0,160)}...`:o}function Ko(h){const o=h.sourceType??"memory",v=h.sourceId??h.id;return`${o}:${v}`}function Uo(h,o,v,g,w,y){const J=v!==null&&!v.has(h),P=v!==null&&!v.has(o);if(J||P)return"rgba(120, 120, 120, 0.12)";if(y){const Re=w.has(h),pe=w.has(o);return Re&&pe?"rgba(220, 220, 220, 0.72)":"rgba(90, 90, 90, 0.08)"}return g.get(h)||g.get(o)?"rgba(200, 200, 200, 0.6)":"rgba(180, 180, 180, 0.4)"}const Kr={person:"#eab308",project:"#06b6d4",system:"#a855f7",tool:"#10b981",concept:"#f43f5e",skill:"#f59e0b",task:"#64748b",unknown:"#737373"};function bn(h){return Kr[h.toLowerCase()]??Kr.unknown}function qr(h,o){const v=bn(h),[g,w,y]=kn(v);return`rgba(${g}, ${w}, ${y}, ${o})`}function Vo(h,o){const v=.8+o*1.2;switch(h){case"uses":case"requires":return{color:"rgba(180, 180, 200, 0.35)",width:v,dash:[]};case"owned_by":return{color:"rgba(160, 160, 180, 0.25)",width:v+.4,dash:[]};case"blocks":return{color:"rgba(220, 100, 100, 0.4)",width:v,dash:[4,3]};case"informs":return{color:"rgba(100, 160, 220, 0.35)",width:v,dash:[2,3]};default:return{color:"rgba(150, 150, 160, 0.3)",width:v,dash:[]}}}function Jo(h){return 5+Math.min(h,1)*3}function Qo(h){return 3+Math.min(h,1)}function Zo(h){const o=h.aspects.length+h.aspects.reduce((v,g)=>v+g.attributes.length*.5,0);return 10+Math.min(o,24)*.5}function $o(h){switch(h){case"entity":return-200;case"aspect":return-40;case"attribute":return-15;case"memory":return-5;default:return-5}}function wa(h,o){const[v,g,w]=kn(h);return`rgba(${v}, ${g}, ${w}, ${o})`}const ei=[.85],ti=[.3,.5,.7,.75,.9],hn={};for(const[h,o]of Object.entries(mn)){const v={};for(const g of ei)v[g]=wa(o,g);hn[h]=v}const yn={};for(const[h,o]of Object.entries(Kr)){const v={};for(const g of ti)v[g]=wa(o,g);yn[h]=v}function _n(h,o){const g=hn[h??"unknown"]?.[o]??hn.unknown?.[o];return g||ha(h,o)}function xr(h,o){const v=h.toLowerCase(),g=yn[v]?.[o]??yn.unknown?.[o];return g||qr(h,o)}const ri={minutes:{.9:"rgba(255, 176, 74, 0.9)",1:"rgba(255, 176, 74, 1)"},hours:{.9:"rgba(168, 34, 98, 0.9)",1:"rgba(168, 34, 98, 1)"},week:{.9:"rgba(76, 34, 122, 0.9)",1:"rgba(76, 34, 122, 1)"},older:{.9:"rgba(118, 111, 102, 0.9)",1:"rgba(118, 111, 102, 1)"}};function ni(h,o){const v=In(h),g=ri[v]?.[o];return g||_a(h,o)}function Sa(h){if(!h)return 0;const o=new Date(h).getTime();return Number.isNaN(o)?0:o}function ai(h,o){if(h===0)return .22;const v=Math.max(0,o-h);return v<=xa?1:v<=ba?.76:v<=ma?.52:.22}class oi{fills;constructor(o,v,g,w,y,J,P,Re,pe,he){const ge=new Array(o.length);for(let $e=0;$e<o.length;$e++){const We=o[$e];if(We.nodeType&&We.nodeType!=="memory"){ge[$e]="";continue}ge[$e]=this.compute(We,v,g,w,y,J,P,Re,pe,he)}this.fills=ge}compute(o,v,g,w,y,J,P,Re,pe,he){const ge=o.data.id,$e=w.get(ge)??null,We=g!==null&&!g.has(ge),Ke=y.has(ge),Oe=P&&!J.has(ge);if(v===ge)return"rgba(255, 255, 255, 0.95)";if(Oe)return We?"rgba(80, 80, 80, 0.08)":"rgba(95, 95, 95, 0.15)";if($e==="similar")return Re==="none"?We?"rgba(160, 170, 185, 0.3)":"rgba(198, 210, 228, 0.84)":We?"rgba(129, 180, 255, 0.35)":"rgba(129, 180, 255, 0.9)";if($e==="dissimilar")return Re==="none"?We?"rgba(165, 150, 150, 0.28)":"rgba(208, 190, 190, 0.8)":We?"rgba(255, 146, 146, 0.35)":"rgba(255, 146, 146, 0.9)";if(Ke)return We?"rgba(220, 220, 220, 0.42)":"rgba(235, 235, 235, 0.95)";if(We)return"rgba(120, 120, 120, 0.2)";if(Re==="none")return"rgba(168, 168, 168, 0.82)";if(Re==="newness"){const ut=o.createdMs??Sa(o.data.createdAt),kt=ai(ut,pe);if(In(kt)==="older"){const Ft=o.data.who??"unknown";if(he!==null&&he.has(Ft))return _n(Ft,.85)}return ni(kt,.9)}return _n(o.data.who,.85)}}const ar=50;class ii{minX=-100;maxX=100;minY=-100;maxY=100;cells=new Map;cols=1;offsetX=0;offsetY=0;rebuild(o){if(this.cells.clear(),o.length===0){this.minX=-100,this.maxX=100,this.minY=-100,this.maxY=100,this.cols=1;return}let v=1/0,g=-1/0,w=1/0,y=-1/0;for(const P of o)P.x<v&&(v=P.x),P.x>g&&(g=P.x),P.y<w&&(w=P.y),P.y>y&&(y=P.y);const J=ar;this.minX=v-J,this.maxX=g+J,this.minY=w-J,this.maxY=y+J,this.offsetX=this.minX,this.offsetY=this.minY,this.cols=Math.max(1,Math.ceil((this.maxX-this.minX)/ar));for(const P of o){const Re=Math.floor((P.x-this.offsetX)/ar),he=Math.floor((P.y-this.offsetY)/ar)*this.cols+Re,ge=this.cells.get(he);ge?ge.push(P):this.cells.set(he,[P])}}query(o,v,g){const w=g+ar*.5,y=Math.floor((o-w-this.offsetX)/ar),J=Math.floor((o+w-this.offsetX)/ar),P=Math.floor((v-w-this.offsetY)/ar),Re=Math.floor((v+w-this.offsetY)/ar),pe=Math.ceil((this.maxY-this.minY)/ar),he=[];for(let ge=Math.max(0,P);ge<=Re&&ge<pe;ge++)for(let $e=Math.max(0,y);$e<=Math.min(this.cols-1,J);$e++){const We=this.cells.get(ge*this.cols+$e);if(We)for(const Ke of We)he.push(Ke)}return he}}function pn(h,o,v,g){h.beginPath();for(let w=0;w<6;w++){const y=Math.PI/3*w-Math.PI/6,J=o+g*Math.cos(y),P=v+g*Math.sin(y);w===0?h.moveTo(J,P):h.lineTo(J,P)}h.closePath()}var si=m('<canvas class="minimap svelte-reb91a" aria-label="Graph navigation minimap"></canvas>'),li=m('<div class="canvas-wrapper svelte-reb91a"><canvas class="main-canvas svelte-reb91a"></canvas> <!></div>');function di(h,o){wn(o,!0);let v=f(null),g=0,w=0,y=.15,J=!1,P=!1,Re=!1,pe=null,he=0,ge=0,$e=0,We=0;const Ke=4;let Oe=null,ut=0,kt=null,Ft=!1,Ye=0,Gt=!0,qt=null,gt=!1,rr=new Map;const vt=new ii;let Xt=!0,it=null,zt=[],C=[],ne=[],Ne=0,qe=0,Ue=!1;const ye=160,ze=120,et=50;let st=f(null),Pe=!0,tt=0;const It=4;let Pt=f(Ee({minX:-100,maxX:100,minY:-100,maxY:100})),fe=U(()=>o.nodes.length>et),Ce=!1;function ve(){if(Gt=!0,Pe=!0,!ut){const i=e(v)?.getContext("2d");i&&(ut=requestAnimationFrame(M=>Fe(i,M)))}}const lt=12e3,xe=8e3,_e=5e3;function we(){g=0,w=0,y=.15,gt=!1,Be=!1}let Be=!1;function dt(i){const M=rr.get(i);M&&(g=M.x,w=M.y,y=Math.max(y,1.6),gt=!0)}function ht(i,M,$=o.graphPhysics){Oe?.stop(),Be=!1;const ie=xn($);Oe=la(i).force("link",da(M).distance(ie.linkDistance).strength(ie.linkForce)).force("charge",ca().strength(ie.repelForce)).force("x",ua(0).strength(ie.centerForce)).force("y",ga(0).strength(ie.centerForce)).force("collide",va().radius(H=>H.radius+2)).alphaDecay(.04).on("tick",()=>{Xt=!0,it=null,ve()}).on("end",()=>{gt||ft()})}function Tt(i,M){Oe?.stop(),Be=!1;const $=da(M).distance(H=>{const se=H.source,Le=H.target;return H.edgeType==="dependency"?120:se.nodeType==="entity"&&Le.nodeType==="aspect"?50:se.nodeType==="aspect"&&Le.nodeType==="attribute"?30:se.nodeType==="attribute"&&Le.nodeType==="memory"?20:50}).strength(H=>{if(H.edgeType==="dependency")return .05;const se=H.source,Le=H.target;return se.nodeType==="entity"&&Le.nodeType==="aspect"?.3:se.nodeType==="aspect"&&Le.nodeType==="attribute"?.4:se.nodeType==="attribute"&&Le.nodeType==="memory"?.5:.3}),ie=ca().strength(H=>$o(H.nodeType));Oe=la(i).force("link",$).force("charge",ie).force("x",ua(0).strength(.03)).force("y",ga(0).strength(.03)).force("collide",va().radius(H=>H.radius+2)).alphaDecay(.04).on("tick",()=>{Xt=!0,it=null,ve()}).on("end",()=>{gt||ft()})}function Ct(i){Oe&&(ht(o.nodes,o.edges,i),ve())}function ue(){Oe?.stop(),Oe=null}function Se(i=!1){Ve(),!i&&!gt&&o.nodes.length>0&&ft(),Ft||(window.addEventListener("resize",Ve),Ft=!0),$t(),Gt=!0;const M=e(v)?.getContext("2d");M&&(cancelAnimationFrame(ut),Fe(M,0))}function pt(){Gt=!0;const i=e(v)?.getContext("2d");i&&(cancelAnimationFrame(ut),Fe(i,0))}function Lt(){cancelAnimationFrame(ut)}function Ve(){if(!e(v))return;let i=e(v).parentElement;for(;i&&getComputedStyle(i).display==="contents";)i=i.parentElement;const M=i?.getBoundingClientRect();!M||M.width===0||(e(v).width=M.width,e(v).height=M.height,!gt&&Be&&ft(),ve())}function ft(){if(!e(v))return;if(o.nodes.length===0){g=0,w=0,y=.15;return}const i=Dt(),M=Math.max(i.maxX-i.minX,1),$=Math.max(i.maxY-i.minY,1),ie=Math.max(e(v).width,1),H=Math.max(e(v).height,1),se=Math.min(ie/M,H/$)*.92;g=(i.minX+i.maxX)/2,w=(i.minY+i.maxY)/2,y=Math.max(.08,se),Be=!0}function mt(i,M){if(!e(v))return[0,0];const $=e(v).getBoundingClientRect(),ie=$.width/2,H=$.height/2;return[(i-$.left-ie)/y+g,(M-$.top-H)/y+w]}function yt(i,M){Xt&&(vt.rebuild(o.nodes),Xt=!1);const $=vt.query(i,M,28),ie=["entity","aspect","attribute","memory",void 0];for(const H of ie)for(let se=$.length-1;se>=0;se--){const Le=$[se];if(Le.nodeType!==H)continue;const Q=Le.x-i,q=Le.y-M,le=Le.radius+(H==="entity"?6:H==="aspect"?5:4);if(Q*Q+q*q<=le*le)return Le}return null}function Dt(){return o.nodes.length===0?{minX:-100,maxX:100,minY:-100,maxY:100}:Xt?(vt.rebuild(o.nodes),Xt=!1,{minX:vt.minX,maxX:vt.maxX,minY:vt.minY,maxY:vt.maxY}):{minX:vt.minX,maxX:vt.maxX,minY:vt.minY,maxY:vt.maxY}}re(()=>{o.nodes.length>0&&(rr=new Map(o.nodes.map(i=>[i.data.id,i])),Xt=!0,it=null,n(Pt,Dt(),!0),Pe=!0)});function Bt(){if(!e(st)||!e(v))return;const i=e(st).getContext("2d");if(!i)return;const{minX:M,maxX:$,minY:ie,maxY:H}=e(Pt),se=$-M,Le=H-ie;i.fillStyle="#050505",i.fillRect(0,0,ye,ze);const Q=(ye-8)/se,q=(ze-8)/Le,le=Math.min(Q,q),de=(ye-se*le)/2,_=(ze-Le*le)/2;i.fillStyle="rgba(140, 140, 150, 0.5)";for(const Ir of o.nodes){const Rr=de+(Ir.x-M)*le,Or=_+(Ir.y-ie)*le;i.fillRect(Rr-.5,Or-.5,1,1)}const G=e(v).width/y,E=e(v).height/y,V=g-G/2,Y=w-E/2;let z=de+(V-M)*le,Me=_+(Y-ie)*le,Je=G*le,Et=E*le;const Jt=2;z=Math.max(Jt,Math.min(ye-Jt-1,z)),Me=Math.max(Jt,Math.min(ze-Jt-1,Me)),Je=Math.max(2,Math.min(ye-z-Jt,Je)),Et=Math.max(2,Math.min(ze-Me-Jt,Et)),i.strokeStyle="rgba(255, 255, 255, 0.75)",i.lineWidth=1.5,i.strokeRect(z,Me,Je,Et),i.fillStyle="rgba(255, 255, 255, 0.03)",i.fillRect(z,Me,Je,Et)}function L(i){if(!e(st))return null;const M=e(st).getBoundingClientRect(),$=i.clientX-M.left,ie=i.clientY-M.top,{minX:H,maxX:se,minY:Le,maxY:Q}=e(Pt),q=se-H,le=Q-Le,de=(ye-8)/q,_=(ze-8)/le,G=Math.min(de,_),E=(ye-q*G)/2,V=(ze-le*G)/2,Y=H+($-E)/G,z=Le+(ie-V)/G;return[Y,z]}function W(i){i.preventDefault(),i.stopPropagation(),Ce=!0,Kt(i)}function rt(i){Ce&&Kt(i)}function Kt(i){const M=L(i);if(!M)return;const[$,ie]=M;if(g=$,w=ie,Pe=!0,Gt=!0,!ut){const H=e(v)?.getContext("2d");H&&(ut=requestAnimationFrame(se=>Fe(H,se)))}}function oe(){Ce=!1}function Fe(i,M){if(!e(v))return;const $=Oe?.alpha?.()??0;if(!($>.001)&&!Gt){ut=0;return}Gt=!1;const H=o.edges.length>14e3||o.nodes.length>2200,se=$>0&&$<.05,Le=H||se?33:16;if(M>0&&M-Ye<Le){ut=requestAnimationFrame(_=>Fe(i,_));return}if(Ye=M,Ue){Ue=!1;const[_,G]=mt(Ne,qe),E=yt(_,G),V=E?.data.id??null;V!==qt&&(qt=V,o.onhovernode(E?.data??null)),e(v)&&(e(v).style.cursor=E?"pointer":"grab")}const Q=e(v).width,q=e(v).height;i.fillStyle="#050505",i.fillRect(0,0,Q,q),i.save(),i.translate(Q/2,q/2),i.scale(y,y),i.translate(-g,-w);const le=o.graphSelected?.id??null;it||(it=new oi(o.nodes,le,o.embeddingFilterIds,o.relationLookup,o.pinnedIds,o.lensIds,o.clusterLensMode,o.colorMode,o.nowMs,o.sourceFocusSources));const de=y>=1.4?lt:y>=.8?xe:_e;if(zt.length>0){const _=Math.max(1,Math.ceil(zt.length/de));i.beginPath();for(let G=0;G<zt.length;G+=_){const E=zt[G],V=E.source,Y=E.target;typeof V=="number"||typeof Y=="number"||!V||!Y||(i.moveTo(V.x,V.y),i.lineTo(Y.x,Y.y))}i.strokeStyle="rgba(255, 255, 255, 0.03)",i.lineWidth=.4/y,i.stroke()}if(C.length>0){const _=Math.max(1,Math.ceil(C.length/de)),G=new Map;for(let E=0;E<C.length;E+=_){const V=C[E],Y=V.source,z=V.target;if(typeof Y=="number"||typeof z=="number"||!Y||!z)continue;const Me=Uo(Y.data.id,z.data.id,o.embeddingFilterIds,o.relationLookup,o.lensIds,o.clusterLensMode),Je=G.get(Me);Je?Je.push([Y.x,Y.y,z.x,z.y]):G.set(Me,[[Y.x,Y.y,z.x,z.y]])}i.lineWidth=.8/y;for(const[E,V]of G){i.beginPath();for(const[Y,z,Me,Je]of V)i.moveTo(Y,z),i.lineTo(Me,Je);i.strokeStyle=E,i.stroke()}}if(ne.length>0){const _=Math.max(1,Math.floor(de/4)),G=Math.max(1,Math.ceil(ne.length/_));for(let E=0;E<ne.length;E+=G){const V=ne[E],Y=V.source,z=V.target;if(typeof Y=="number"||typeof z=="number"||!Y||!z)continue;const Me=Vo(V.dependencyType??"",V.strength??.5);i.beginPath(),Me.dash.length>0&&i.setLineDash(Me.dash.map(Je=>Je/y)),i.moveTo(Y.x,Y.y),i.lineTo(z.x,z.y),i.strokeStyle=Me.color,i.lineWidth=Me.width/y,i.stroke(),Me.dash.length>0&&i.setLineDash([])}}{const _=new Map,G=[],E=[];let V=null;for(let Y=0;Y<o.nodes.length;Y++){const z=o.nodes[Y];if(z.nodeType!=="memory"&&z.nodeType!==void 0)continue;const Me=it.fills[Y],Je=_.get(Me);Je?Je.push(z):_.set(Me,[z]),o.colorMode!=="none"&&o.showNewSinceLastSeen&&qo(z.data.createdAt,o.lastSeenMs)&&G.push(z),o.pinnedIds.has(z.data.id)&&E.push(z),le===z.data.id&&(V=z)}for(const[Y,z]of _){i.beginPath();for(const Me of z)i.moveTo(Me.x+Me.radius,Me.y),i.arc(Me.x,Me.y,Me.radius,0,Math.PI*2);i.fillStyle=Y,i.fill()}if(G.length>0){i.beginPath();for(const Y of G)i.moveTo(Y.x+Y.radius+2.2,Y.y),i.arc(Y.x,Y.y,Y.radius+2.2,0,Math.PI*2);i.strokeStyle="rgba(246, 194, 107, 0.85)",i.lineWidth=1.1/y,i.stroke()}if(E.length>0){i.strokeStyle="rgba(240, 240, 240, 0.8)",i.lineWidth=1.2/y;for(const Y of E){const z=(Y.radius+2.5)*2;i.strokeRect(Y.x-z/2,Y.y-z/2,z,z)}}V&&(i.beginPath(),i.arc(V.x,V.y,V.radius+3,0,Math.PI*2),i.strokeStyle="rgba(255, 255, 255, 0.95)",i.lineWidth=1.5/y,i.stroke())}for(const _ of o.nodes){if(_.nodeType!=="attribute")continue;const G=_.data.who??"unknown";i.beginPath(),i.arc(_.x,_.y,_.radius,0,Math.PI*2),i.fillStyle=xr(G,.3),i.fill(),i.strokeStyle=xr(G,.5),i.lineWidth=.6/y,i.stroke(),le===_.data.id&&(i.beginPath(),i.arc(_.x,_.y,_.radius+3,0,Math.PI*2),i.strokeStyle="rgba(255, 255, 255, 0.95)",i.lineWidth=1.5/y,i.stroke())}for(const _ of o.nodes){if(_.nodeType!=="aspect")continue;const G=_.data.who??"unknown";if(i.beginPath(),i.arc(_.x,_.y,_.radius,0,Math.PI*2),i.fillStyle=xr(G,.5),i.fill(),i.strokeStyle=xr(G,.75),i.lineWidth=.8/y,i.stroke(),le===_.data.id&&(i.beginPath(),i.arc(_.x,_.y,_.radius+3,0,Math.PI*2),i.strokeStyle="rgba(255, 255, 255, 0.95)",i.lineWidth=1.5/y,i.stroke()),o.graphHovered&&_.data.id===o.graphHovered.id||le===_.data.id){const E=Math.max(7,9/y);i.font=`${E}px var(--font-mono)`,i.fillStyle="rgba(210, 210, 210, 0.85)",i.textAlign="center",i.fillText(_.aspectData?.name??"",_.x,_.y+_.radius+E+1/y),i.textAlign="start"}}for(const _ of o.nodes){if(_.nodeType!=="entity")continue;const G=_.entityData?.entityType??"unknown";i.save(),i.shadowColor=xr(G,.5),i.shadowBlur=12/y,pn(i,_.x,_.y,_.radius),i.fillStyle=xr(G,.7),i.fill(),i.restore(),pn(i,_.x,_.y,_.radius),i.strokeStyle=xr(G,.9),i.lineWidth=1.2/y,i.stroke(),le===_.data.id&&(pn(i,_.x,_.y,_.radius+4),i.strokeStyle="rgba(255, 255, 255, 0.95)",i.lineWidth=1.5/y,i.stroke());const E=Math.max(8,10/y);i.font=`bold ${E}px var(--font-mono)`,i.fillStyle="rgba(230, 230, 230, 0.9)",i.textAlign="center",i.fillText(_.entityData?.name??"",_.x,_.y+_.radius+E+2/y),i.textAlign="start"}if(o.graphHovered){const _=rr.get(o.graphHovered.id);if(_&&_.nodeType!=="entity"&&_.nodeType!=="aspect"){const G=_.nodeType==="attribute"?_.attributeData?.content??hr(o.graphHovered):hr(o.graphHovered),E=9/y;i.font=`${E}px var(--font-mono)`,i.fillStyle="rgba(220, 220, 220, 0.9)",i.textAlign="left";const V=80;i.fillText(G.length>V?`${G.slice(0,V)}...`:G,_.x+_.radius+5/y,_.y+E*.35),i.textAlign="start"}}i.restore(),e(fe)&&(tt++,(Pe||tt>=It)&&(Bt(),Pe=!1,tt=0)),ut=requestAnimationFrame(_=>Fe(i,_))}function $t(){if(!e(v))return;kt&&(kt(),kt=null);const i=e(v),M=Q=>{const[q,le]=mt(Q.clientX,Q.clientY),de=yt(q,le);Re=!1,de?(P=!0,pe=de,he=Q.clientX,ge=Q.clientY):(J=!0,he=Q.clientX,ge=Q.clientY,$e=g,We=w)},$=Q=>{if(P&&pe){const q=Q.clientX-he,le=Q.clientY-ge;if(!Re&&q*q+le*le<Ke*Ke)return;Re||(Re=!0,gt=!0,pe.fx=pe.x,pe.fy=pe.y,Oe?.alphaTarget(.3).restart());const[de,_]=mt(Q.clientX,Q.clientY);pe.fx=de,pe.fy=_,ve();return}if(J){gt=!0,g=$e-(Q.clientX-he)/y,w=We-(Q.clientY-ge)/y,ve();return}Ne=Q.clientX,qe=Q.clientY,Ue=!0,ve()},ie=()=>{if(P&&pe){Re&&(pe.fx=null,pe.fy=null,Oe?.alphaTarget(0)),pe=null,P=!1,ve();return}J=!1},H=()=>{J=!1,qt!==null&&(qt=null,o.onhovernode(null))},se=Q=>{if(Re)return;const[q,le]=mt(Q.clientX,Q.clientY),de=yt(q,le);o.onselectnode(de?.data??null)},Le=Q=>{Q.preventDefault(),gt=!0;const q=Q.deltaY>0?.9:1.1,le=Math.max(.1,Math.min(5,y*q)),de=i.getBoundingClientRect(),_=de.width/2,G=de.height/2,E=Q.clientX-de.left-_,V=Q.clientY-de.top-G,Y=E/y+g,z=V/y+w;y=le,g=Y-E/y,w=z-V/y,ve()};i.addEventListener("pointerdown",M),i.addEventListener("pointermove",$),i.addEventListener("pointerup",ie),i.addEventListener("pointerleave",H),i.addEventListener("click",se),i.addEventListener("wheel",Le,{passive:!1}),kt=()=>{i.removeEventListener("pointerdown",M),i.removeEventListener("pointermove",$),i.removeEventListener("pointerup",ie),i.removeEventListener("pointerleave",H),i.removeEventListener("click",se),i.removeEventListener("wheel",Le)}}re(()=>{o.graphSelected,o.graphHovered,o.embeddingFilterIds,o.relationLookup,o.pinnedIds,o.lensIds,o.clusterLensMode,it=null,ve()}),re(()=>{const i=o.edges,M=[],$=[],ie=[];for(const H of i)H.edgeType==="hierarchy"?M.push(H):H.edgeType==="dependency"?ie.push(H):$.push(H);zt=M,C=$,ne=ie}),re(()=>()=>{Oe?.stop(),Oe=null,kt&&(kt(),kt=null),Ft&&(window.removeEventListener("resize",Ve),Ft=!1),cancelAnimationFrame(ut)});var nr={resetCamera:we,focusNode:dt,startSimulation:ht,startKnowledgeGraphSimulation:Tt,updatePhysics:Ct,stopSimulation:ue,startRendering:Se,resumeRendering:pt,stopRendering:Lt,requestRedraw:ve},or=li(),Ut=l(or);br(Ut,i=>n(v,i),()=>e(v));var ct=d(Ut,2);{var Vt=i=>{var M=si();fn(M,"width",ye),fn(M,"height",ze),br(M,$=>n(st,$),()=>e(st)),X("mousedown",M,W),X("mousemove",M,rt),X("mouseup",M,oe),Ar("mouseleave",M,oe),u(i,M)};j(ct,i=>{e(fe)&&i(Vt)})}return s(or),u(h,or),Sn(nr)}Mn(["mousedown","mousemove","mouseup"]);var ci=m('<button class="text-[11px] text-[var(--sig-accent)] bg-transparent border-none cursor-pointer p-0 hover:underline">Clear</button>'),ui=m('<span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] border border-[var(--sig-text-bright)] px-[7px] py-[2px] bg-[rgba(255,255,255,0.08)]">pinned</span>'),gi=m('<button class="grid grid-cols-[auto_1fr] gap-2 items-start w-full text-left border border-[var(--sig-border-strong)] bg-[rgba(255,255,255,0.03)] text-[var(--sig-text)] px-2 py-[7px] cursor-pointer hover:border-[var(--sig-text-muted)] hover:bg-[var(--sig-surface-raised)]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-accent)] whitespace-nowrap"> </span> <span class="text-[12px] leading-[1.45] text-[var(--sig-text-bright)] line-clamp-2"> </span></button>'),vi=m('<div class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] tracking-[0.04em] uppercase"> </div> <div class="flex flex-col gap-2"></div>',1),pi=m('<button class="grid grid-cols-[auto_1fr] gap-2 items-start w-full text-left border border-[var(--sig-border-strong)] bg-[rgba(255,255,255,0.03)] text-[var(--sig-text)] px-2 py-[7px] cursor-pointer hover:border-[var(--sig-text-muted)] hover:bg-[var(--sig-surface-raised)]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-accent)] whitespace-nowrap"> </span> <span class="text-[12px] leading-[1.45] text-[var(--sig-text-bright)] line-clamp-2"> </span></button>'),fi=m('<div class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] tracking-[0.04em] uppercase">Dependencies</div> <div class="flex flex-col gap-2"></div>',1),mi=m('<div class="flex flex-wrap gap-[6px]"><span class="font-[family-name:var(--font-mono)] text-[10px] border px-[7px] py-[2px]"> </span> <!></div> <div class="font-[family-name:var(--font-mono)] text-[14px] text-[var(--sig-text-bright)] font-bold"> </div> <div class="grid grid-cols-3 gap-1 text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-text-muted)]"><div class="border border-[var(--sig-border-strong)] px-2 py-1 text-center"><div class="text-[var(--sig-text-bright)]"> </div> <div>aspects</div></div> <div class="border border-[var(--sig-border-strong)] px-2 py-1 text-center"><div class="text-[var(--sig-text-bright)]"> </div> <div>attributes</div></div> <div class="border border-[var(--sig-border-strong)] px-2 py-1 text-center"><div class="text-[var(--sig-text-bright)]"> </div> <div>deps</div></div></div> <div class="flex gap-2"><button class="px-3 py-1 font-[family-name:var(--font-mono)] text-[10px] font-medium tracking-[0.1em] uppercase bg-transparent border border-[var(--sig-text-bright)] text-[var(--sig-text-bright)] cursor-pointer enabled:hover:bg-[var(--sig-text-bright)] enabled:hover:text-[var(--sig-bg)]">Center</button></div> <!> <!>',1),xi=m('<button class="w-full text-left border border-[var(--sig-border-strong)] bg-[rgba(255,255,255,0.03)] text-[var(--sig-text)] px-2 py-[7px] cursor-pointer hover:border-[var(--sig-text-muted)] hover:bg-[var(--sig-surface-raised)]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] uppercase">Parent entity</span> <div class="text-[12px] text-[var(--sig-text-bright)]"> </div></button>'),bi=m('<button class="grid grid-cols-[auto_1fr] gap-2 items-start w-full text-left border border-[var(--sig-border-strong)] bg-[rgba(255,255,255,0.03)] text-[var(--sig-text)] px-2 py-[7px] cursor-pointer hover:border-[var(--sig-text-muted)] hover:bg-[var(--sig-surface-raised)]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-accent)] whitespace-nowrap"> </span> <span class="text-[12px] leading-[1.45] text-[var(--sig-text-bright)] line-clamp-2"> </span></button>'),hi=m('<div class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] tracking-[0.04em] uppercase"> </div> <div class="flex flex-col gap-2"></div>',1),yi=m('<div class="flex flex-wrap gap-[6px]"><span class="font-[family-name:var(--font-mono)] text-[10px] border border-[var(--sig-border-strong)] px-[7px] py-[2px] bg-[rgba(255,255,255,0.04)] text-[var(--sig-text)]">aspect</span> <span class="font-[family-name:var(--font-mono)] text-[10px] border border-[var(--sig-border-strong)] px-[7px] py-[2px] bg-[rgba(255,255,255,0.04)] text-[var(--sig-text)]"> </span></div> <div class="font-[family-name:var(--font-mono)] text-[14px] text-[var(--sig-text-bright)] font-bold"> </div> <!> <div class="flex gap-2"><button class="px-3 py-1 font-[family-name:var(--font-mono)] text-[10px] font-medium tracking-[0.1em] uppercase bg-transparent border border-[var(--sig-text-bright)] text-[var(--sig-text-bright)] cursor-pointer enabled:hover:bg-[var(--sig-text-bright)] enabled:hover:text-[var(--sig-bg)]">Center</button></div> <!>',1),_i=m('<button class="w-full text-left border border-[var(--sig-border-strong)] bg-[rgba(255,255,255,0.03)] text-[var(--sig-text)] px-2 py-[7px] cursor-pointer hover:border-[var(--sig-text-muted)] hover:bg-[var(--sig-surface-raised)]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] uppercase">Parent entity</span> <div class="text-[12px] text-[var(--sig-text-bright)]"> </div></button>'),wi=m('<button class="w-full text-left border border-[var(--sig-border-strong)] bg-[rgba(255,255,255,0.03)] text-[var(--sig-text)] px-2 py-[7px] cursor-pointer hover:border-[var(--sig-text-muted)] hover:bg-[var(--sig-surface-raised)]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] uppercase">Parent aspect</span> <div class="text-[12px] text-[var(--sig-text-bright)]"> </div></button>'),Si=m('<div class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] tracking-[0.04em] uppercase">Linked memory</div> <button class="grid grid-cols-[auto_1fr] gap-2 items-start w-full text-left border border-[var(--sig-border-strong)] bg-[rgba(255,255,255,0.03)] text-[var(--sig-text)] px-2 py-[7px] cursor-pointer hover:border-[var(--sig-text-muted)] hover:bg-[var(--sig-surface-raised)]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-accent)] whitespace-nowrap"> </span> <span class="text-[12px] leading-[1.45] text-[var(--sig-text-bright)] line-clamp-2"> </span></button>',1),Mi=m('<div class="flex flex-wrap gap-[6px]"><span class="font-[family-name:var(--font-mono)] text-[10px] border border-[var(--sig-border-strong)] px-[7px] py-[2px] bg-[rgba(255,255,255,0.04)] text-[var(--sig-text)]"> </span> <span class="font-[family-name:var(--font-mono)] text-[10px] border border-[var(--sig-border-strong)] px-[7px] py-[2px] bg-[rgba(255,255,255,0.04)] text-[var(--sig-text)]"> </span></div> <p class="m-0 text-[13px] leading-[1.55] text-[var(--sig-text-bright)] whitespace-pre-wrap break-words"> </p> <!> <!> <div class="flex gap-2"><button class="px-3 py-1 font-[family-name:var(--font-mono)] text-[10px] font-medium tracking-[0.1em] uppercase bg-transparent border border-[var(--sig-text-bright)] text-[var(--sig-text-bright)] cursor-pointer enabled:hover:bg-[var(--sig-text-bright)] enabled:hover:text-[var(--sig-bg)]">Center</button></div> <!>',1),ki=m('<span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text)] border border-[var(--sig-border-strong)] px-[7px] py-[2px] bg-[rgba(255,255,255,0.04)]"> </span>'),Ii=m('<span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] border border-[var(--sig-text-bright)] px-[7px] py-[2px] bg-[rgba(255,255,255,0.08)]">pinned</span>'),Ti=m('<span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text)] border border-[var(--sig-border-strong)] px-[7px] py-[2px] bg-[rgba(255,255,255,0.04)]"> </span>'),Ei=m('<div class="flex flex-wrap gap-[6px]"></div>'),Ni=m('<div class="border border-dashed border-[var(--sig-danger)] p-2 text-[11px] text-[var(--sig-danger)] leading-[1.5]"> </div>'),Fi=m('<div class="border border-dashed border-[var(--sig-border-strong)] p-3 text-[12px] text-[var(--sig-text-muted)] leading-[1.5]">No related memories in this view.</div>'),Pi=m('<button class="grid grid-cols-[auto_1fr] gap-2 items-start w-full text-left border border-[var(--sig-border-strong)] bg-[rgba(255,255,255,0.03)] text-[var(--sig-text)] px-2 py-[7px] cursor-pointer hover:border-[var(--sig-text-muted)] hover:bg-[var(--sig-surface-raised)]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-accent)] whitespace-nowrap"> </span> <span class="text-[12px] leading-[1.45] text-[var(--sig-text-bright)] line-clamp-2"> </span></button>'),Ci=m('<div class="border border-dashed border-[var(--sig-border-strong)] p-3 text-[12px] text-[var(--sig-text-muted)] leading-[1.5]">Finding similar memories...</div>'),Li=m('<button class="grid grid-cols-[auto_1fr] gap-2 items-start w-full text-left border border-[var(--sig-border-strong)] bg-[rgba(255,255,255,0.03)] text-[var(--sig-text)] px-2 py-[7px] cursor-pointer hover:border-[var(--sig-text-muted)] hover:bg-[var(--sig-surface-raised)]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-accent)] whitespace-nowrap">global</span> <span class="text-[12px] leading-[1.45] text-[var(--sig-text-bright)] line-clamp-2"> </span></button>'),Di=m('<div class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] tracking-[0.04em] uppercase">Global similar</div> <div class="flex flex-col gap-2"></div>',1),Ai=m('<div class="flex flex-wrap gap-[6px]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text)] border border-[var(--sig-border-strong)] px-[7px] py-[2px] bg-[rgba(255,255,255,0.04)]"> </span> <!> <span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text)] border border-[var(--sig-border-strong)] px-[7px] py-[2px] bg-[rgba(255,255,255,0.04)]"> </span> <!></div> <div class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-accent)] border border-[var(--sig-border-strong)] px-[7px] py-[5px] bg-transparent break-all"> </div> <p class="m-0 text-[13px] leading-[1.55] text-[var(--sig-text-bright)] whitespace-pre-wrap break-words"> </p> <!> <div class="flex gap-2"><button class="px-3 py-1 font-[family-name:var(--font-mono)] text-[10px] font-medium tracking-[0.1em] uppercase bg-transparent border border-[var(--sig-text-bright)] text-[var(--sig-text-bright)] cursor-pointer enabled:hover:bg-[var(--sig-text-bright)] enabled:hover:text-[var(--sig-bg)] disabled:opacity-40 disabled:cursor-not-allowed">Center</button> <button class="px-3 py-1 font-[family-name:var(--font-mono)] text-[10px] font-medium tracking-[0.1em] uppercase bg-transparent border border-[var(--sig-text-bright)] text-[var(--sig-text-bright)] cursor-pointer enabled:hover:bg-[var(--sig-text-bright)] enabled:hover:text-[var(--sig-bg)] disabled:opacity-40 disabled:cursor-not-allowed"> </button> <button class="px-3 py-1 font-[family-name:var(--font-mono)] text-[10px] font-medium tracking-[0.1em] uppercase bg-transparent border border-[var(--sig-text-bright)] text-[var(--sig-text-bright)] cursor-pointer enabled:hover:bg-[var(--sig-text-bright)] enabled:hover:text-[var(--sig-bg)] disabled:opacity-40 disabled:cursor-not-allowed"> </button></div> <!> <div class="self-start flex border border-[var(--sig-border-strong)] overflow-hidden"><button>Similar</button> <button>Dissimilar</button></div> <div class="flex flex-col gap-2"><!></div> <!>',1),Ri=m('<button class="grid grid-cols-[auto_1fr] gap-2 items-start w-full text-left border border-[var(--sig-border-strong)] bg-[rgba(255,255,255,0.03)] text-[var(--sig-text)] px-2 py-[7px] cursor-pointer hover:border-[var(--sig-text-muted)] hover:bg-[var(--sig-surface-raised)]"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-accent)] whitespace-nowrap"> </span> <span class="text-[12px] leading-[1.45] text-[var(--sig-text-bright)] line-clamp-2"> </span></button>'),Oi=m('<div class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] tracking-[0.04em] uppercase">Search matches</div> <div class="flex flex-col gap-2"></div>',1),Yi=m('<div class="border border-dashed border-[var(--sig-border-strong)] p-3 text-[12px] text-[var(--sig-text-muted)] leading-[1.5]">Select a node to inspect content, source metadata, and similar or dissimilar neighbors.</div> <!>',1),Xi=m('<aside><div class="flex items-center justify-between gap-2"><span class="font-[family-name:var(--font-mono)] text-[11px] tracking-[0.06em] uppercase text-[var(--sig-text)]">Inspector</span> <!></div> <!></aside>');function ji(h,o){wn(o,!0);let v=cr(o,"containerClass",3,""),g=cr(o,"selectedNodeType",3,void 0),w=cr(o,"selectedEntityData",3,null),y=cr(o,"selectedAspectData",3,null),J=cr(o,"selectedAttributeData",3,null),P=cr(o,"parentEntityId",3,null),Re=cr(o,"parentAspectId",3,null),pe=cr(o,"constellationOverlay",3,null);const he=U(()=>g()==="entity"&&w()!==null),ge=U(()=>g()==="aspect"&&y()!==null),$e=U(()=>g()==="attribute"&&J()!==null),We=U(()=>{if(!w()||!pe())return[];const C=w().id;return pe().dependencies.filter(ne=>ne.sourceEntityId===C||ne.targetEntityId===C)}),Ke=U(()=>!P()||!pe()?null:pe().entities.find(C=>C.id===P())??null),Oe=U(()=>!Re()||!e(Ke)?null:e(Ke).aspects.find(C=>C.id===Re())??null);function ut(C){return pe()?pe().entities.find(Ne=>Ne.id===C)?.name??C:C}function kt(C){return o.embeddingById.get(C)??null}var Ft=Xi(),Ye=l(Ft),Gt=d(l(Ye),2);{var qt=C=>{var ne=ci();X("click",ne,function(...Ne){o.onclearselection?.apply(this,Ne)}),u(C,ne)};j(Gt,C=>{o.graphSelected&&C(qt)})}s(Ye);var gt=d(Ye,2);{var rr=C=>{var ne=mi(),Ne=me(ne),qe=l(Ne),Ue=l(qe,!0);s(qe);var ye=d(qe,2);{var ze=ue=>{var Se=ui();u(ue,Se)};j(ye,ue=>{w().pinned&&ue(ze)})}s(Ne);var et=d(Ne,2),st=l(et,!0);s(et);var Pe=d(et,2),tt=l(Pe),It=l(tt),Pt=l(It,!0);s(It),ur(2),s(tt);var fe=d(tt,2),Ce=l(fe),ve=l(Ce,!0);s(Ce),ur(2),s(fe);var lt=d(fe,2),xe=l(lt),_e=l(xe,!0);s(xe),ur(2),s(lt),s(Pe);var we=d(Pe,2),Be=l(we);s(we);var dt=d(we,2);{var ht=ue=>{var Se=vi(),pt=me(Se),Lt=l(pt);s(pt);var Ve=d(pt,2);St(Ve,21,()=>w().aspects,Mt,(ft,mt)=>{var yt=gi(),Dt=l(yt),Bt=l(Dt);s(Dt);var L=d(Dt,2),W=l(L,!0);s(L),s(yt),F(rt=>{b(Bt,`w${rt??""}%`),b(W,e(mt).name)},[()=>Math.round(e(mt).weight*100)]),X("click",yt,()=>o.onselectembedding(`aspect:${e(mt).id}`)),u(ft,yt)}),s(Ve),F(()=>b(Lt,`Aspects (${w().aspects.length??""})`)),u(ue,Se)};j(dt,ue=>{w().aspects.length>0&&ue(ht)})}var Tt=d(dt,2);{var Ct=ue=>{var Se=fi(),pt=d(me(Se),2);St(pt,21,()=>e(We),Mt,(Lt,Ve)=>{const ft=U(()=>e(Ve).sourceEntityId===w().id),mt=U(()=>e(ft)?e(Ve).targetEntityId:e(Ve).sourceEntityId);var yt=pi(),Dt=l(yt),Bt=l(Dt);s(Dt);var L=d(Dt,2),W=l(L,!0);s(L),s(yt),F(rt=>{b(Bt,`${e(ft)?"->":"<-"} ${e(Ve).dependencyType??""}`),b(W,rt)},[()=>ut(e(mt))]),X("click",yt,()=>o.onselectembedding(`entity:${e(mt)}`)),u(Lt,yt)}),s(pt),u(ue,Se)};j(Tt,ue=>{e(We).length>0&&ue(Ct)})}F((ue,Se)=>{Wt(qe,ue),b(Ue,w().entityType),b(st,w().name),b(Pt,w().aspects.length),b(ve,Se),b(_e,e(We).length)},[()=>`color: ${bn(w().entityType)}; border-color: ${bn(w().entityType)}; background: rgba(255,255,255,0.04);`,()=>w().aspects.reduce((ue,Se)=>ue+Se.attributes.length,0)]),X("click",Be,function(...ue){o.onfocusembedding?.apply(this,ue)}),u(C,ne)},vt=C=>{var ne=yi(),Ne=me(ne),qe=d(l(Ne),2),Ue=l(qe);s(qe),s(Ne);var ye=d(Ne,2),ze=l(ye,!0);s(ye);var et=d(ye,2);{var st=fe=>{var Ce=xi(),ve=d(l(Ce),2),lt=l(ve,!0);s(ve),s(Ce),F(()=>b(lt,e(Ke).name)),X("click",Ce,()=>e(Ke)&&o.onselectembedding(`entity:${e(Ke).id}`)),u(fe,Ce)};j(et,fe=>{e(Ke)&&fe(st)})}var Pe=d(et,2),tt=l(Pe);s(Pe);var It=d(Pe,2);{var Pt=fe=>{var Ce=hi(),ve=me(Ce),lt=l(ve);s(ve);var xe=d(ve,2);St(xe,21,()=>y().attributes,Mt,(_e,we)=>{var Be=bi(),dt=l(Be),ht=l(dt,!0);s(dt);var Tt=d(dt,2),Ct=l(Tt,!0);s(Tt),s(Be),F(()=>{b(ht,e(we).kind),b(Ct,e(we).content)}),X("click",Be,()=>o.onselectembedding(`attr:${e(we).id}`)),u(_e,Be)}),s(xe),F(()=>b(lt,`Attributes (${y().attributes.length??""})`)),u(fe,Ce)};j(It,fe=>{y().attributes.length>0&&fe(Pt)})}F(fe=>{b(Ue,`weight ${fe??""}%`),b(ze,y().name)},[()=>Math.round(y().weight*100)]),X("click",tt,function(...fe){o.onfocusembedding?.apply(this,fe)}),u(C,ne)},Xt=C=>{var ne=Mi(),Ne=me(ne),qe=l(Ne),Ue=l(qe,!0);s(qe);var ye=d(qe,2),ze=l(ye);s(ye),s(Ne);var et=d(Ne,2),st=l(et,!0);s(et);var Pe=d(et,2);{var tt=xe=>{var _e=_i(),we=d(l(_e),2),Be=l(we,!0);s(we),s(_e),F(()=>b(Be,e(Ke).name)),X("click",_e,()=>e(Ke)&&o.onselectembedding(`entity:${e(Ke).id}`)),u(xe,_e)};j(Pe,xe=>{e(Ke)&&xe(tt)})}var It=d(Pe,2);{var Pt=xe=>{var _e=wi(),we=d(l(_e),2),Be=l(we,!0);s(we),s(_e),F(()=>b(Be,e(Oe).name)),X("click",_e,()=>e(Oe)&&o.onselectembedding(`aspect:${e(Oe).id}`)),u(xe,_e)};j(It,xe=>{e(Oe)&&xe(Pt)})}var fe=d(It,2),Ce=l(fe);s(fe);var ve=d(fe,2);{var lt=xe=>{const _e=U(()=>o.embeddingById.get(J().memoryId));var we=gr(),Be=me(we);{var dt=ht=>{var Tt=Si(),Ct=d(me(Tt),2),ue=l(Ct),Se=l(ue,!0);s(ue);var pt=d(ue,2),Lt=l(pt,!0);s(pt),s(Ct),F(Ve=>{b(Se,e(_e).who??"memory"),b(Lt,Ve)},[()=>hr(e(_e))]),X("click",Ct,()=>e(_e)&&o.onselectembedding(e(_e).id)),u(ht,Tt)};j(Be,ht=>{e(_e)&&ht(dt)})}u(xe,we)};j(ve,xe=>{J().memoryId&&xe(lt)})}F(xe=>{b(Ue,J().kind),b(ze,`importance ${xe??""}%`),b(st,J().content)},[()=>Math.round(J().importance*100)]),X("click",Ce,function(...xe){o.onfocusembedding?.apply(this,xe)}),u(C,ne)},it=C=>{var ne=Ai(),Ne=me(ne),qe=l(Ne),Ue=l(qe,!0);s(qe);var ye=d(qe,2);{var ze=L=>{var W=ki(),rt=l(W,!0);s(W),F(()=>b(rt,o.graphSelected.type)),u(L,W)};j(ye,L=>{o.graphSelected.type&&L(ze)})}var et=d(ye,2),st=l(et);s(et);var Pe=d(et,2);{var tt=L=>{var W=Ii();u(L,W)};j(Pe,L=>{o.graphSelected.pinned&&L(tt)})}s(Ne);var It=d(Ne,2),Pt=l(It,!0);s(It);var fe=d(It,2),Ce=l(fe,!0);s(fe);var ve=d(fe,2);{var lt=L=>{var W=Ei();St(W,21,()=>o.graphSelected.tags.slice(0,8),Mt,(rt,Kt)=>{var oe=Ti(),Fe=l(oe);s(oe),F(()=>b(Fe,`#${e(Kt)??""}`)),u(rt,oe)}),s(W),u(L,W)};j(ve,L=>{o.graphSelected.tags?.length&&L(lt)})}var xe=d(ve,2),_e=l(xe),we=d(_e,2),Be=l(we,!0);s(we);var dt=d(we,2),ht=l(dt,!0);s(dt),s(xe);var Tt=d(xe,2);{var Ct=L=>{var W=Ni(),rt=l(W,!0);s(W),F(()=>b(rt,o.pinError)),u(L,W)};j(Tt,L=>{o.pinError&&L(Ct)})}var ue=d(Tt,2),Se=l(ue),pt=d(Se,2);s(ue);var Lt=d(ue,2),Ve=l(Lt);{var ft=L=>{var W=Fi();u(L,W)},mt=L=>{var W=gr(),rt=me(W);St(rt,17,()=>o.activeNeighbors,Mt,(Kt,oe)=>{const Fe=U(()=>kt(e(oe).id));var $t=gr(),nr=me($t);{var or=Ut=>{var ct=Pi(),Vt=l(ct),i=l(Vt,!0);s(Vt);var M=d(Vt,2),$=l(M,!0);s(M),s(ct),F((ie,H)=>{b(i,ie),b($,H)},[()=>Math.round(e(oe).score*1e3)/1e3,()=>hr(e(Fe))]),X("click",ct,()=>o.onselectembedding(e(Fe).id)),u(Ut,ct)};j(nr,Ut=>{e(Fe)&&Ut(or)})}u(Kt,$t)}),u(L,W)};j(Ve,L=>{o.activeNeighbors.length===0?L(ft):L(mt,-1)})}s(Lt);var yt=d(Lt,2);{var Dt=L=>{var W=Ci();u(L,W)},Bt=L=>{var W=Di(),rt=d(me(W),2);St(rt,21,()=>o.globalSimilar,Mt,(Kt,oe)=>{var Fe=Li(),$t=d(l(Fe),2),nr=l($t,!0);s($t),s(Fe),F(()=>b(nr,e(oe).content)),X("click",Fe,()=>o.onopenglobalsimilar(e(oe))),u(Kt,Fe)}),s(rt),u(L,W)};j(yt,L=>{o.loadingGlobalSimilar?L(Dt):o.globalSimilar.length>0&&L(Bt,1)})}F((L,W)=>{b(Ue,o.graphSelected.who??"unknown"),b(st,`importance ${L??""}%`),b(Pt,W),b(Ce,o.graphSelected.content??o.graphSelected.text??"(No content preview available)"),we.disabled=o.pinBusy,b(Be,o.pinBusy?"Saving...":o.graphSelected.pinned?"Unpin":"Pin"),dt.disabled=o.loadingGlobalSimilar,b(ht,o.loadingGlobalSimilar?"Loading...":"Global similar"),bt(Se,1,`px-2 py-0.5 text-[10px] font-medium font-[family-name:var(--font-mono)] bg-transparent border-none cursor-pointer tracking-[0.04em] hover:text-[var(--sig-text)] hover:bg-[var(--sig-surface-raised)] ${o.relationMode==="similar"?"text-[var(--sig-text-bright)] bg-[var(--sig-surface-raised)]":"text-[var(--sig-text-muted)]"}`),bt(pt,1,`px-2 py-0.5 text-[10px] font-medium font-[family-name:var(--font-mono)] bg-transparent border-none cursor-pointer tracking-[0.04em] hover:text-[var(--sig-text)] hover:bg-[var(--sig-surface-raised)] ${o.relationMode==="dissimilar"?"text-[var(--sig-text-bright)] bg-[var(--sig-surface-raised)]":"text-[var(--sig-text-muted)]"}`)},[()=>Math.round((o.graphSelected.importance??0)*100),()=>Ko(o.graphSelected)]),X("click",_e,function(...L){o.onfocusembedding?.apply(this,L)}),X("click",we,function(...L){o.onpintoggle?.apply(this,L)}),X("click",dt,function(...L){o.onloadglobalsimilar?.apply(this,L)}),X("click",Se,()=>o.onsetrelationmode("similar")),X("click",pt,()=>o.onsetrelationmode("dissimilar")),u(C,ne)},zt=C=>{var ne=Yi(),Ne=d(me(ne),2);{var qe=Ue=>{var ye=Oi(),ze=d(me(ye),2);St(ze,21,()=>o.embeddingSearchMatches,Mt,(et,st)=>{var Pe=Ri(),tt=l(Pe),It=l(tt,!0);s(tt);var Pt=d(tt,2),fe=l(Pt,!0);s(Pt),s(Pe),F(Ce=>{b(It,e(st).who),b(fe,Ce)},[()=>hr(e(st))]),X("click",Pe,()=>o.onselectembedding(e(st).id)),u(et,Pe)}),s(ze),u(Ue,ye)};j(Ne,Ue=>{o.embeddingSearch&&o.embeddingSearchMatches.length>0&&Ue(qe)})}u(C,ne)};j(gt,C=>{e(he)&&w()?C(rr):e(ge)&&y()?C(vt,1):e($e)&&J()?C(Xt,2):o.graphSelected?C(it,3):C(zt,-1)})}s(Ft),F(()=>bt(Ft,1,`flex flex-col gap-3 p-3 overflow-y-auto ${v()}`)),u(h,Ft),Sn()}Mn(["click"]);var Hi=m('<div class="absolute right-3 z-[9] pointer-events-none"><button type="button" class="pointer-events-auto px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-text-bright)] text-[var(--sig-text-bright)] bg-[rgba(5,5,5,0.74)] hover:bg-[var(--sig-text-bright)] hover:text-[var(--sig-bg)]"> </button></div>'),Gi=m('<span class="text-[#c4a24a]"> </span>'),zi=m('<div class="mt-0.5 font-[family-name:var(--font-mono)] text-[9px] text-[var(--sig-text-muted)] leading-[1.3]"> </div>'),Bi=m('<div class="mt-1"><div class="flex items-center justify-between font-[family-name:var(--font-mono)] text-[9px] text-[var(--sig-text-muted)]"><span> </span> <span> </span></div> <div class="mt-1 h-[5px] border border-[rgba(255,255,255,0.2)] bg-[rgba(255,255,255,0.05)]"><div class="h-full bg-[#c4a24a]"></div></div> <div class="mt-1 font-[family-name:var(--font-mono)] text-[9px] text-[var(--sig-text-muted)]"> </div></div>'),Wi=m('<div class="mb-2 border border-[rgba(255,255,255,0.14)] bg-[rgba(255,255,255,0.03)] px-1.5 py-1.5"><div class="font-[family-name:var(--font-mono)] text-[9px] text-[var(--sig-text)] leading-[1.3]"> </div> <!> <!></div>'),qi=m('<button type="button" class="mt-1 font-[family-name:var(--font-mono)] text-[9px] text-[#c4a24a] hover:text-[var(--sig-text-bright)] underline underline-offset-2 disabled:opacity-40 disabled:no-underline"> </button>'),Ki=m('<div class="flex items-start gap-1.5 px-1.5 py-1 border border-[rgba(255,255,255,0.1)] bg-[rgba(255,255,255,0.02)]"><span class="inline-block w-[6px] h-[6px] rounded-full shrink-0 mt-[4px]"></span> <div class="flex-1 min-w-0"><div class="flex items-center justify-between gap-2"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text)]"> </span> <span class="font-[family-name:var(--font-mono)] text-[9px] text-[var(--sig-text-muted)] uppercase"> </span></div> <div class="font-[family-name:var(--font-mono)] text-[9px] text-[var(--sig-text-muted)] leading-[1.3] mt-0.5"> </div> <!></div></div>'),Ui=m('<div class="mt-1 border border-[rgba(255,255,255,0.22)] bg-[rgba(5,5,5,0.92)] px-2 py-2 w-[320px]"><div class="flex items-center justify-between mb-2"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] uppercase tracking-[0.06em]">Constellation Health</span> <span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)]"> </span></div> <!> <div class="space-y-1"></div></div>'),Vi=m('<div class="absolute top-2 right-3 z-[8] pointer-events-none"><div class="pointer-events-auto"><button type="button" class="flex items-center gap-1.5 px-2 py-[4px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[rgba(255,255,255,0.22)] bg-[rgba(5,5,5,0.75)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text-bright)]"><span class="inline-block w-[7px] h-[7px] rounded-full shrink-0"></span> <span class="text-[var(--sig-text-muted)]"> </span> <!></button> <!></div></div>'),Ji=m("<span>Legend</span> <!>",1),Qi=m("<span> </span>"),Zi=m('<div class="flex flex-wrap items-center gap-x-3 gap-y-1 text-[10px] text-[var(--sig-text-muted)] mb-1.5"><span class="inline-flex items-center gap-1"><span class="inline-block w-[8px] h-[8px] rounded-full"></span>last few minutes</span> <span class="inline-flex items-center gap-1"><span class="inline-block w-[8px] h-[8px] rounded-full"></span>last few hours</span> <span class="inline-flex items-center gap-1"><span class="inline-block w-[8px] h-[8px] rounded-full"></span>last week</span> <span class="inline-flex items-center gap-1"><span class="inline-block w-[8px] h-[8px] rounded-full"></span>older</span></div> <div class="flex flex-wrap gap-1 mb-1.5"></div>',1),$i=m('<span><span class="inline-block w-[6px] h-[6px] rounded-full"></span> </span>'),es=m('<div class="flex flex-wrap gap-1 mb-1.5"></div>'),ts=m('<div class="text-[10px] text-[var(--sig-text-muted)] leading-[1.35] mb-1.5">No color applied - all nodes are shown in gray.</div>'),rs=m('<div class="text-[10px] text-[var(--sig-text-muted)] leading-[1.35] mb-1"><span class="text-[var(--sig-text)]">Outline</span> = new since last seen</div>'),ns=m('<span class="h-5 inline-flex items-center gap-1 px-1.5 py-0 font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] border border-[rgba(255,255,255,0.14)] bg-transparent"><span class="inline-block w-[8px] h-[8px]"></span> </span>'),as=m('<div class="mt-2 pt-2 border-t border-[rgba(255,255,255,0.1)]"><div class="text-[10px] font-[family-name:var(--font-mono)] uppercase tracking-[0.06em] text-[var(--sig-text-muted)] mb-1">Knowledge Graph</div> <div class="flex flex-wrap gap-1 mb-1.5"></div> <div class="text-[10px] text-[var(--sig-text-muted)] leading-[1.35] space-y-0.5"><div><span class="text-[var(--sig-text)]">Hexagon</span> = entity (large, labeled)</div> <div><span class="text-[var(--sig-text)]">Circle</span> = aspect (medium, orbits entity)</div> <div><span class="text-[var(--sig-text)]">Small dot</span> = attribute (orbits aspect)</div> <div><span class="text-[var(--sig-text)]">Tiny dot</span> = linked memory (leaf node)</div> <div><span class="text-[var(--sig-text)]">Faint lines</span> = parent-child hierarchy</div> <div><span class="text-[var(--sig-text)]">Styled line</span> = entity dependency</div></div></div>'),os=m('<div class="text-[10px] text-[var(--sig-text-muted)] leading-[1.35] mb-1"><span class="text-[var(--sig-text)]">Color</span> </div> <!> <div class="text-[10px] text-[var(--sig-text-muted)] leading-[1.35] mb-1"><span class="text-[var(--sig-text)]">Radius</span> = importance</div> <div class="flex items-center gap-2 text-[10px] text-[var(--sig-text-muted)] mb-1.5"><span class="inline-block w-[6px] h-[6px] rounded-full border border-[rgba(255,255,255,0.24)]"></span> <span class="inline-block w-[9px] h-[9px] rounded-full border border-[rgba(255,255,255,0.28)]"></span> <span class="inline-block w-[12px] h-[12px] rounded-full border border-[rgba(255,255,255,0.32)]"></span> <span>low to high</span></div> <!> <div class="text-[10px] text-[var(--sig-text-muted)] leading-[1.35]"><span class="text-[var(--sig-text)]">Relation highlight</span> = selected node neighborhood emphasis</div> <!>',1),is=m("<!> <!>",1),ss=m('<div class="absolute inset-0 flex items-center justify-center bg-[var(--sig-bg)] z-10"><p> </p></div>'),ls=m('<div class="absolute inset-0 flex items-center justify-center bg-[var(--sig-bg)] z-10"><p class="text-[var(--sig-danger)]"> </p></div>'),ds=m('<div class="absolute inset-0 flex items-center justify-center bg-[var(--sig-bg)] z-10"><p>No memories found</p></div>'),cs=m('<div class="absolute inset-0 flex items-center justify-center bg-[var(--sig-bg)] z-10"><p>Loading...</p></div>'),us=m('<span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text)] border border-[var(--sig-border-strong)] px-1.5 py-[1px] bg-[rgba(255,255,255,0.04)]"> </span>'),gs=m('<span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] border border-[var(--sig-text-bright)] px-1.5 py-[1px] bg-[rgba(255,255,255,0.08)]">pinned</span>'),vs=m('<span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] border border-[var(--sig-text-bright)] px-1.5 py-[1px] bg-[rgba(255,255,255,0.08)]">locked</span>'),ps=m('<div class="grid grid-cols-[1fr_auto] items-start gap-2 border border-[rgba(255,255,255,0.14)] bg-[rgba(255,255,255,0.02)] px-1.5 py-1"><span class="text-[10px] leading-[1.35] text-[var(--sig-text)] line-clamp-1"> </span> <span class="text-[10px] text-[var(--sig-text-muted)]"> </span></div>'),fs=m('<div class="mt-2 pt-2 border-t border-[rgba(255,255,255,0.14)]"><div class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] uppercase tracking-[0.06em] mb-1">Local neighbors</div> <div class="space-y-1"></div></div>'),ms=m('<div class="z-[9] w-[320px] pointer-events-none border border-[rgba(255,255,255,0.26)] bg-[rgba(5,5,5,0.92)] px-2 py-2" style="position:absolute;top:0;left:0;will-change:transform"><div class="flex items-center gap-1.5 flex-wrap mb-1.5"><span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text)] border border-[var(--sig-border-strong)] px-1.5 py-[1px] bg-[rgba(255,255,255,0.04)]"> </span> <!> <!> <!></div> <div class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] mb-1.5"> </div> <p class="m-0 text-[12px] leading-[1.45] text-[var(--sig-text-bright)] line-clamp-3"> </p> <div class="mt-1 text-[10px] text-[var(--sig-text-muted)]"> </div> <!></div>'),xs=m('<div class="absolute inset-0 flex items-center justify-center bg-[#050505]"><span class="text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)] text-[11px]"> </span></div>'),bs=m('<div class="absolute inset-0 flex items-center justify-center bg-[#050505]"><span class="text-[var(--sig-danger)] font-[family-name:var(--font-mono)] text-[11px]"> </span></div>'),hs=m('<div class="absolute inset-0 flex items-center justify-center bg-[#050505]"><span class="text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)] text-[11px]"> </span></div>'),ys=m("<span>View Controls</span> <!>",1),_s=m('<span class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] border border-[var(--sig-border)] px-2 py-1"> </span>'),ws=m('<div class="p-2 space-y-2 border-t border-[var(--sig-border)]"><div class="flex items-center gap-2"><input type="text" class="flex-1 font-[family-name:var(--font-mono)] text-[11px] text-[var(--sig-text-bright)] bg-[var(--sig-surface)] border border-[var(--sig-border-strong)] px-[9px] py-[6px] outline-none" placeholder="Search constellation"/> <!></div> <div class="text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-text-muted)]"> </div> <div class="flex flex-wrap gap-1"><button>Pinned</button> <button>Neighborhood</button> <button>Lens</button> <button class="px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text-bright)]"> </button></div> <div class="border border-[var(--sig-border)] px-2 py-2 space-y-1.5"><div class="font-[family-name:var(--font-mono)] text-[10px] uppercase tracking-[0.08em] text-[var(--sig-text-muted)]">Color Mode</div> <div class="flex flex-wrap gap-1"><button>Newness</button> <button>Source</button> <button>None</button></div></div> <div class="border border-[var(--sig-border)] px-2 py-2 space-y-1.5"><div class="font-[family-name:var(--font-mono)] text-[10px] uppercase tracking-[0.08em] text-[var(--sig-text-muted)]">Overlays</div> <div class="flex flex-wrap gap-1"><button>New since last seen</button> <button> </button></div></div> <div class="border border-[var(--sig-border)] px-2 py-2 space-y-1.5" style="accent-color: var(--sig-highlight);"><div class="font-[family-name:var(--font-mono)] text-[10px] uppercase tracking-[0.08em] text-[var(--sig-text-muted)]">Graph Physics</div> <label class="block"><div class="flex items-center justify-between text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-text-muted)]"><span>center force</span> <span> </span></div> <input type="range" min="0" max="1" step="0.01"/></label> <label class="block"><div class="flex items-center justify-between text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-text-muted)]"><span>repel force</span> <span> </span></div> <input type="range" min="-600" max="-10" step="5"/></label> <label class="block"><div class="flex items-center justify-between text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-text-muted)]"><span>link force</span> <span> </span></div> <input type="range" min="0.01" max="1" step="0.01"/></label> <label class="block"><div class="flex items-center justify-between text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-text-muted)]"><span>link distance</span> <span> </span></div> <input type="range" min="12" max="280" step="1"/></label> <button type="button" class="px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text-bright)]">Physics Reset</button></div></div>'),Ss=m("<!> <!>",1),Ms=m("<span>Presets</span> <!>",1),ks=m("<button> </button>"),Is=m('<div class="inline-flex items-center border border-[var(--sig-border-strong)]"><button> </button> <button class="px-1.5 py-[2px] font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] hover:text-[var(--sig-text-bright)]">×</button></div>'),Ts=m('<div class="p-2 border-t border-[var(--sig-border)] flex flex-wrap gap-1"><!> <!> <button class="px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] text-[var(--sig-text-muted)] hover:text-[var(--sig-text-bright)]"> </button></div>'),Es=m("<!> <!>",1),Ns=m("<span>Sources</span> <!>",1),Fs=m('<span class="text-[10px] text-[var(--sig-text-muted)]">No sources</span>'),Ps=m("<button> </button>"),Cs=m('<div class="p-2 border-t border-[var(--sig-border)] flex flex-wrap gap-1"><!></div>'),Ls=m("<!> <!>",1),Ds=m("<span>Advanced</span> <!>",1),As=m('<div class="flex items-center gap-1 flex-wrap"><input type="date" class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] bg-[var(--sig-bg)] border border-[var(--sig-border-strong)] px-1.5 py-[2px] outline-none"/> <input type="date" class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] bg-[var(--sig-bg)] border border-[var(--sig-border-strong)] px-1.5 py-[2px] outline-none"/></div>'),Rs=m('<span class="text-[10px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)]">none</span>'),Os=m("<button> </button>"),Ys=m("<button> </button>"),Xs=m('<div class="flex items-center gap-1 flex-wrap"><span class="px-1 text-[10px] text-[var(--sig-text-muted)] uppercase font-[family-name:var(--font-mono)]">Type</span> <!></div>'),js=m("<button> </button>"),Hs=m('<div class="flex items-center gap-1 flex-wrap"><span class="px-1 text-[10px] text-[var(--sig-text-muted)] uppercase font-[family-name:var(--font-mono)]">Source type</span> <!></div>'),Gs=m('<div class="p-2 border-t border-[var(--sig-border)] space-y-2"><div class="flex items-center gap-1 flex-wrap"><span class="px-1 text-[10px] text-[var(--sig-text-muted)] uppercase font-[family-name:var(--font-mono)]">Window</span> <input type="number" min="0" max="100000" class="w-[70px] font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] bg-[var(--sig-bg)] border border-[var(--sig-border-strong)] px-1.5 py-[2px] outline-none"/> <span class="text-[10px] text-[var(--sig-text-muted)] font-[family-name:var(--font-mono)]">to</span> <input type="number" min="1" max="100000" class="w-[70px] font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] bg-[var(--sig-bg)] border border-[var(--sig-border-strong)] px-1.5 py-[2px] outline-none"/> <select class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] bg-[var(--sig-bg)] border border-[var(--sig-border-strong)] px-1.5 py-[2px] outline-none"><option>time: all</option><option>time: 24h</option><option>time: 7d</option><option>time: 30d</option><option>time: 90d</option><option>time: custom</option></select></div> <!> <div class="flex items-center gap-1 flex-wrap"><select class="font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] bg-[var(--sig-bg)] border border-[var(--sig-border-strong)] px-1.5 py-[2px] outline-none"><option>pins: all</option><option>pins: pinned</option><option>pins: unpinned</option></select> <input type="text" class="w-[140px] font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] bg-[var(--sig-bg)] border border-[var(--sig-border-strong)] px-1.5 py-[2px] outline-none" placeholder="server query"/> <input type="text" class="w-[110px] font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] bg-[var(--sig-bg)] border border-[var(--sig-border-strong)] px-1.5 py-[2px] outline-none" placeholder="tags csv"/> <input type="text" class="w-[60px] font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] bg-[var(--sig-bg)] border border-[var(--sig-border-strong)] px-1.5 py-[2px] outline-none" placeholder="imp>"/> <input type="text" class="w-[60px] font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-bright)] bg-[var(--sig-bg)] border border-[var(--sig-border-strong)] px-1.5 py-[2px] outline-none" placeholder="imp&lt;"/></div> <div class="flex items-center gap-1 flex-wrap"><span class="px-1 text-[10px] text-[var(--sig-text-muted)] uppercase font-[family-name:var(--font-mono)]">Harness</span> <!></div> <!> <!></div>'),zs=m("<!> <!>",1),Bs=m('<div class="flex flex-col flex-1 min-h-0 overflow-hidden"><!> <div class="flex flex-1 min-h-0 bg-[#050505] max-lg:flex-col"><div class="flex-1 relative overflow-hidden bg-[#050505]" role="presentation"><!> <!> <div class="absolute left-3 top-3 bottom-3 z-[8] pointer-events-none flex flex-col justify-end items-start max-w-[220px]"><!></div> <!> <div class="absolute left-[14px] z-[6] font-[family-name:var(--font-mono)] text-[10px] text-[var(--sig-text-muted)] tracking-[0.08em] uppercase pointer-events-none" aria-hidden="true">:: &#9675; &#9675; 01 10 11 // latent topology</div> <div class="absolute inset-0 pointer-events-none z-[5]" aria-hidden="true"><span class="absolute top-[10px] left-[10px] w-[14px] h-[14px] border-[rgba(255,255,255,0.22)]" style="border-style:solid;border-width:1px 0 0 1px"></span> <span class="absolute top-[10px] right-[10px] w-[14px] h-[14px] border-[rgba(255,255,255,0.22)]" style="border-style:solid;border-width:1px 1px 0 0"></span> <span class="absolute bottom-[10px] left-[10px] w-[14px] h-[14px] border-[rgba(255,255,255,0.22)]" style="border-style:solid;border-width:0 0 1px 1px"></span> <span class="absolute bottom-[10px] right-[10px] w-[14px] h-[14px] border-[rgba(255,255,255,0.22)]" style="border-style:solid;border-width:0 1px 1px 0"></span></div> <!> <div><!></div> <div><!></div></div> <div class="w-[360px] min-w-[320px] border-l border-[var(--sig-border)] bg-[var(--sig-surface)] flex flex-col min-h-0 max-lg:w-full max-lg:min-w-0 max-lg:max-h-[48%] max-lg:border-l-0 max-lg:border-t max-lg:border-t-[var(--sig-border)]"><div class="p-3 border-b border-[var(--sig-border)] space-y-2 overflow-y-auto"><!> <!> <!> <!></div> <!></div></div></div>');function $s(h,o){wn(o,!0);let v=f(!1),g=f(null),w=f(null),y=f(""),J=f(""),P=f(Ee([])),Re=f(0),pe=f(!1),he=f(!1),ge=f(""),$e=f(""),We=0,Ke=f(Ee([])),Oe,ut=f(null),kt=f(null),Ft=f(null),Ye=f(Ee(new Set)),Gt=f(Ee([])),qt=f(!1),gt=f(!0),rr=f(Ee(new Set)),vt=f(!1),Xt=f(""),it=f(!0),zt=f(Ee(new Set)),C=f("focus"),ne=f(Ee([])),Ne=f(!1),qe=f(!1),Ue=f(!0),ye=f(!1),ze=f(!0);const et=["daemon","user","opencode"],st=new Set(et),Pe="signet-constellation-color-mode-session",tt="signet-constellation-new-since-session",It="signet-constellation-color-mode",Pt="signet-constellation-new-since",fe="signet-constellation-last-seen";let Ce=f(0),ve=f(Ee(Wr)),lt=f("all"),xe=f(Ee(Date.now())),_e=f(""),we=f(""),Be=f(""),dt=f(""),ht=f("all"),Tt=f(""),Ct=f(""),ue=f(Ee([])),Se=f(Ee(new Set)),pt=f(Ee([])),Lt=f(Ee([])),Ve=f(Ee(new Set)),ft=f(Ee(new Set)),mt=f(""),yt=0,Dt=f("similar"),Bt=f(Ee([])),L=f(Ee([])),W=f(Ee([])),rt=f(!1),Kt=f(Ee([])),oe=f("source"),Fe=f(!1),$t=f(null),nr=f(null),or=f(!1),Ut=f(Ee(Date.now())),ct=f(Ee([])),Vt=f(Ee([])),i=f(Ee([])),M=f(!1),$=f(null),ie=f(!1);const H="signet-constellation-entity-overlay";let se=f("2d"),Le=f(Ee([])),Q=0,q=f(Ee(kr)),le=f(!1),de=f(Ee(new Map)),_=f(Ee(new Map)),G=f(Ee(new Map)),E=f(null),V=f(null),Y=f(null),z=0,Me=0,Je=null,Et=f(null),Jt=f(null),Ir=f(null),Rr=f(!1),Or=f(!1),dr=f(null),Ur=f(!1),yr=f(!1),Vr,ir=f(null),sr=f(null),At=f(null),Yr;To(()=>{n(Ue,Mr.embeddings.controlsOpen,!0),n(ye,Mr.embeddings.presetsOpen,!0),n(ze,Mr.embeddings.sourcesOpen,!0)});function Ma(t){if(oa.activeTab!=="embeddings"||t.defaultPrevented)return;const r=t.target,a=r instanceof HTMLElement&&(r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.tagName==="SELECT"||r.isContentEditable),c=r instanceof HTMLElement&&r.getAttribute("data-memory-tab")==="embeddings";if(t.key==="ArrowDown"&&c){t.preventDefault(),e(Ue)?Oe?.focus():(n(Ue,!0),un().then(()=>Oe?.focus()));return}if(t.key==="ArrowUp"&&r===Oe){t.preventDefault();const p=document.querySelector('[data-memory-tab="embeddings"]');p?p.focus():Oe?.blur();return}}async function Tr(){n(dr,await Do(),!0)}function ka(t){const r=t.match(/cooldown active,\s*(\d+)ms remaining/i);if(!r?.[1])return null;const a=Number.parseInt(r[1],10);return Number.isFinite(a)&&a>=0?a:null}function Tn(t){const r=Math.ceil(t/1e3);if(r<60)return`${r}s`;const a=Math.floor(r/60),c=r%60;return c>0?`${a}m ${c}s`:`${a}m`}function Ia(t){const r=t.match(/([\d,]+)\s+memories?\s+missing\s+embeddings/i);if(!r?.[1])return null;const a=Number.parseInt(r[1].replaceAll(",",""),10);return Number.isFinite(a)&&a>=0?a:null}function Er(){Yr&&(clearInterval(Yr),Yr=void 0)}function Ta(t){const r=Math.max(1,Math.floor(t/1e3));if(r<60)return`${r}s`;const a=Math.floor(r/60),c=r%60;return c>0?`${a}m ${c}s`:`${a}m`}function En(t){Er();const r=Date.now();let a=t,c=!1,p=0;n(ir,"Re-embedding in progress"),n(sr,t===null?"Collecting progress...":`${t.toLocaleString()} missing at start`,!0),n(At,null);const k=async()=>{if(!c){c=!0;try{const x=await vn(),T=Ta(Date.now()-r);if(n(ir,`Re-embedding in progress (${T})`),x){a===null&&(a=x.unembedded);const S=Math.max(0,a??x.unembedded),D=Math.max(0,S-x.unembedded),ae=S>0?Math.min(100,D/S*100):100;n(At,{baseline:S,completed:D,remaining:x.unembedded,percent:ae,coverage:x.coverage},!0),n(sr,a===null?`${x.unembedded.toLocaleString()} still missing (${x.coverage} coverage)`:`${D.toLocaleString()} completed, ${x.unembedded.toLocaleString()} remaining (${x.coverage} coverage)`,!0)}p%2===0&&await Tr(),p++}finally{c=!1}}};k(),Yr=setInterval(()=>{k()},3e3)}async function Ea(t){if(e(yr))return;n(yr,!0);const r=t.name==="coverage"||t.name==="null-vectors";if(r||(n(ir,`Running ${t.name} repair...`),n(sr,null),n(At,null)),r){const a=Ia(t.message);if(a!==null)En(a);else{const c=await vn();En(c?.unembedded??null)}}try{let a;if(t.name==="orphaned-embeddings")a=await Yo();else if(t.name==="vec-table-sync")a=await Xo();else if(t.name==="coverage"||t.name==="null-vectors")a=await jo();else{Sr(`Repair action not wired for ${t.name}`,"warning");return}if(!a.success){if(Er(),a.status===429){const c=ka(a.message);c!==null?(n(ir,"Repair blocked by cooldown"),n(sr,`Try again in ${Tn(c)}.`),Sr(`Repair on cooldown. Try again in ${Tn(c)}.`,"warning",4500)):(n(ir,"Repair blocked by policy"),n(sr,a.message,!0),Sr(`Repair temporarily blocked: ${a.message}`,"warning",5e3)),await Tr();return}n(ir,"Repair failed"),n(sr,a.message,!0),n(At,null),Sr(`Repair failed: ${a.message}`,"error",5e3);return}if(Er(),n(ir,"Repair completed"),n(sr,a.message,!0),r){const c=await vn();if(c&&e(At)){const p=e(At).baseline,k=Math.max(0,p-c.unembedded);n(At,{baseline:p,completed:k,remaining:c.unembedded,percent:p>0?Math.min(100,k/p*100):100,coverage:c.coverage},!0)}}a.affected>0?Sr(a.message,"success",4500):Sr(a.message,"info",4500),await Tr(),r&&a.affected>0&&await en()}finally{Er(),n(yr,!1)}}function Na(t){return t==="healthy"?"#4a7a5e":t==="degraded"?"#c4a24a":"#8a4a48"}function Fa(t){return t==="ok"?"#4a7a5e":t==="warn"?"#c4a24a":"#8a4a48"}re(()=>(Tr(),Vr=setInterval(Tr,6e4),()=>{Er(),Vr&&clearInterval(Vr)}));let Jr=!1;function Xr(){Jr||(Jr=!0,queueMicrotask(()=>{Jr=!1,e(se)==="3d"&&e(Jt)?.refreshAppearance()}))}function Pa(t){return{id:t.id,content:t.content,who:t.who,importance:t.importance,type:t.type,tags:t.tags,pinned:t.pinned??!1,sourceType:t.sourceType,sourceId:t.sourceId,createdAt:t.createdAt}}function Ca(t){if(!t)return"-";const r=new Date(t);return Number.isNaN(r.getTime())?"-":r.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function jr(t,r){const a=new Date(e(Ut)-t).toISOString();return _a(Wo(a,e(Ut)),r)}function Qr(){const t=Number.isFinite(e(Ce))?Math.max(0,Math.trunc(e(Ce))):0,r=Number.isFinite(e(ve))?Math.max(1,Math.trunc(e(ve))):Wr,a=Math.max(t+1,Math.min(r,t+zo));return{offset:t,limit:a-t}}function Zr(){const{offset:t,limit:r}=Qr();n(Ce,t,!0),n(ve,t+r)}function Nn(t,r){const a=t.trim();if(!a)return;const c=r?"T23:59:59.999":"T00:00:00.000",p=new Date(`${a}${c}`);if(!Number.isNaN(p.getTime()))return p.toISOString()}function Fn(t){const r=t.trim();if(!r)return;const a=Number.parseFloat(r);if(Number.isFinite(a))return Math.min(1,Math.max(0,a))}function Hr(t,r){const a=t.currentTarget;if(!(a instanceof HTMLInputElement))return r;const c=Number.parseFloat(a.value);return Number.isFinite(c)?c:r}function Nr(t){n(q,xn({...e(q),...t}),!0)}function La(t,r){if(t==="all"||t==="custom")return;const a=t==="24h"?1440*60*1e3:t==="7d"?10080*60*1e3:t==="30d"?720*60*60*1e3:2160*60*60*1e3;return new Date(r-a).toISOString()}function Pn(){const{offset:t,limit:r}=Qr(),a={offset:t,limit:r},c=e(Be).trim();c.length>0&&(a.q=c);const p=[...e(Se)];p.length>0&&(a.who=p);const k=[...e(Ve)];k.length>0&&(a.types=k);const x=[...e(ft)];x.length>0&&(a.sourceTypes=x);const T=e(dt).split(",").map(N=>N.trim()).filter(N=>N.length>0);T.length>0&&(a.tags=T),e(ht)==="pinned"&&(a.pinned=!0),e(ht)==="unpinned"&&(a.pinned=!1);let S,D;e(lt)==="custom"?(S=Nn(e(_e),!1),D=Nn(e(we),!0)):S=La(e(lt),e(xe)),S&&(a.since=S),D&&(a.until=D);let ae=Fn(e(Tt)),I=Fn(e(Ct));if(typeof ae=="number"&&typeof I=="number"&&ae>I){const N=ae;ae=I,I=N}return typeof ae=="number"&&(a.importanceMin=ae),typeof I=="number"&&(a.importanceMax=I),a}function Cn(t){return JSON.stringify({offset:t.offset??0,limit:t.limit??Wr,q:t.q??"",who:[...t.who??[]].sort(),types:[...t.types??[]].sort(),sourceTypes:[...t.sourceTypes??[]].sort(),tags:[...t.tags??[]].sort(),pinned:t.pinned??"all",since:t.since??"",until:t.until??"",importanceMin:typeof t.importanceMin=="number"?t.importanceMin:"",importanceMax:typeof t.importanceMax=="number"?t.importanceMax:""})}function Da(t){let r=null;for(const a of t)if(a!==null){if(r===null){r=new Set(a);continue}if(r.size<=a.size)for(const c of r)a.has(c)||r.delete(c);else{const c=new Set;for(const p of a)r.has(p)&&c.add(p);r=c}}return r}function Aa(t,r){const a=e(P).findIndex(k=>k.id===t);if(a<0)return;const c=r(e(P)[a]);e(P)[a]=c,n(P,e(P),!0),e(de).set(t,c),n(de,e(de),!0);const p=e(ct).findIndex(k=>k.data.id===t);p>=0&&(e(ct)[p]={...e(ct)[p],data:c},n(ct,e(ct),!0)),e(g)?.id===t&&n(g,c,!0),e(w)?.id===t&&n(w,c,!0)}function Ra(t){const r=new Set(e(Ye));r.has(t)?r.delete(t):r.add(t),n(Ye,r,!0)}function Oa(t){const r=new Set(e(Se));r.has(t)?r.delete(t):r.add(t),n(Se,r,!0)}function Ya(t){const r=new Set(e(Ve));r.has(t)?r.delete(t):r.add(t),n(Ve,r,!0)}function Xa(t){const r=new Set(e(ft));r.has(t)?r.delete(t):r.add(t),n(ft,r,!0)}function ja(){n(Ce,0),n(ve,Wr,!0),n(lt,"all"),n(_e,""),n(we,""),n(Be,""),n(dt,""),n(ht,"all"),n(Tt,""),n(Ct,""),n(Se,new Set,!0),n(Ve,new Set,!0),n(ft,new Set,!0),Zr()}function Ha(){n(qt,!e(qt)),n(C,"custom-live")}function Ln(){if(e(g))return e(g);if(e(jt))return n(g,e(jt),!0),e(jt);const t=e(P)[0]??null;return t&&n(g,t,!0),t}function Ga(){!e(gt)&&!Ln()||(n(gt,!e(gt)),n(C,"custom-live"))}function za(){!e(it)&&!Ln()||(n(it,!e(it)),n(C,"custom-live"))}function Ba(t){Ra(t),n(C,"custom-live")}function Dn(){if(!e(Y)||!Je)return;const t=Math.max(12,Je.width-334),r=Math.max(12,Je.height-170),a=Math.min(Math.max(12,z+14),t),c=Math.min(Math.max(12,Me+14),r);e(Y).style.transform=`translate3d(${a}px, ${c}px, 0)`}function Wa(t){Je&&(z=t.clientX-Je.left,Me=t.clientY-Je.top,Dn())}function An(t){e(E)||!t&&!e(w)||t&&e(w)&&t.id===e(w).id||n(w,t,!0)}function qa(){e(g)||e(w)&&n(E,e(w).id,!0)}function Rn(){n(E,null)}function On(t){return typeof t=="number"?e(i)[t]??null:t?.data.id??null}const Yn="signet-embeddings-filter-presets",Ka=[{id:"all",name:"All",search:"",sources:[],pinnedOnly:!1,neighborhoodOnly:!1,clusterLensMode:!1},{id:"pinned",name:"Pinned",search:"",sources:[],pinnedOnly:!0,neighborhoodOnly:!1,clusterLensMode:!1},{id:"focus",name:"Focus",search:"",sources:[],pinnedOnly:!1,neighborhoodOnly:!0,clusterLensMode:!0}];function Ua(t,r){return{id:r,name:t,search:e(ge),sources:[...e(Ye)],pinnedOnly:e(qt),neighborhoodOnly:e(gt),clusterLensMode:e(it)}}function Xn(t){n(ge,t.search,!0),n(Ye,new Set(t.sources),!0),n(qt,t.pinnedOnly,!0),n(gt,t.neighborhoodOnly,!0),n(it,t.clusterLensMode,!0),n(C,t.id,!0)}function Va(){if(typeof window>"u")return;const t=e(g)?`Cluster: ${e(g).who??"source"}`:"Custom preset",a=window.prompt("Preset name",t)?.trim();if(!a)return;const c=`custom-${Date.now()}`,p=Ua(a,c);n(ne,[p,...e(ne)].slice(0,8),!0),n(C,c)}function Ja(t){n(ne,e(ne).filter(r=>r.id!==t),!0),e(C)===t&&n(C,"all")}async function jn(){if(e(he))return;n(he,!0),n(J,""),n(y,"Loading projection...");const t=++Q,r=Pn(),a=Cn(r);try{let c=await ia(2,r),p=0;const k=30;for(;c.status==="computing";){if(t!==Q)return;if(p++,p>=k){n(J,"Projection timed out after 60s. Try refreshing."),n(mt,a,!0);return}n(y,"Computing layout..."),await new Promise(R=>setTimeout(R,2e3)),c=await ia(2,r)}if(c.status==="error"){n(J,c.message??"Projection computation failed",!0),n(mt,a,!0);return}if(t!==Q)return;const x=c.nodes??[];if(n(P,x.map(Pa),!0),n(Re,c.total??x.length,!0),n(pe,!!(c.hasMore??(c.count??x.length)<(c.total??x.length)),!0),n(mt,a,!0),n(de,new Map(e(P).map(R=>[R.id,R])),!0),x.length===0){n(y,"");return}let T=Number.POSITIVE_INFINITY,S=Number.NEGATIVE_INFINITY,D=Number.POSITIVE_INFINITY,ae=Number.NEGATIVE_INFINITY;for(const R of x)R.x<T&&(T=R.x),R.x>S&&(S=R.x),R.y<D&&(D=R.y),R.y>ae&&(ae=R.y);const I=S-T||1,N=ae-D||1,A=560;if(n(ct,x.map((R,ee)=>({x:((R.x-T)/I-.5)*A,y:((R.y-D)/N-.5)*A,radius:2.3+(R.importance??.5)*2.8,color:_n(R.who,.85),data:e(P)[ee],createdMs:Sa(R.createdAt)})),!0),n(i,e(P).map(R=>R.id),!0),n(Vt,(c.edges??[]).map(([R,ee])=>({source:R,target:ee,edgeType:"knn"})),!0),e(M)&&await Qa(),n(y,""),await un(),t!==Q)return;e(M)?(e(Et)?.startKnowledgeGraphSimulation(e(ct),e(Vt)),e(Et)?.startRendering(!0)):(e(Et)?.startSimulation(e(ct),e(Vt),e(q)),e(Et)?.startRendering())}catch(c){n(J,c.message||"Failed to load projection",!0),n(y,""),n(mt,a,!0)}}async function Qa(){n(ie,!0);try{const t=await Ao();if(!t){n($,null);return}n($,t,!0);const r=new Map;for(const S of e(ct))r.set(S.data.id,S);const a=[],c=[],p=[],k=new Map,x=new Map,T=400;for(const S of t.entities){const D=`entity:${S.id}`,ae=Zo(S),I=(Math.random()-.5)*T,N=(Math.random()-.5)*T,A={id:D,content:S.name,who:S.entityType,importance:.9,pinned:S.pinned,tags:[],createdAt:void 0},R=a.length;x.set(S.id,R),a.push({x:I,y:N,radius:ae,color:qr(S.entityType,.7),data:A,nodeType:"entity",entityData:S}),p.push(D),k.set(D,A);for(const ee of S.aspects){const Xe=`aspect:${ee.id}`,je=Jo(ee.weight),ke={id:Xe,content:ee.name,who:S.entityType,importance:ee.weight,pinned:!1,tags:[],createdAt:void 0},O=a.length;a.push({x:I+(Math.random()-.5)*80,y:N+(Math.random()-.5)*80,radius:je,color:qr(S.entityType,.5),data:ke,nodeType:"aspect",aspectData:ee,parentEntityId:S.id}),p.push(Xe),k.set(Xe,ke),c.push({source:R,target:O,edgeType:"hierarchy"});for(const B of ee.attributes){const te=`attr:${B.id}`,Z=Qo(B.importance),Ie={id:te,content:B.content,who:S.entityType,importance:B.importance,pinned:!1,tags:[],createdAt:void 0},be=a.length;if(a.push({x:a[O].x+(Math.random()-.5)*40,y:a[O].y+(Math.random()-.5)*40,radius:Z,color:qr(S.entityType,.3),data:Ie,nodeType:"attribute",attributeData:B,parentEntityId:S.id,parentAspectId:ee.id}),p.push(te),k.set(te,Ie),c.push({source:O,target:be,edgeType:"hierarchy"}),B.memoryId){const ce=r.get(B.memoryId);if(ce){const He=a.length;a.push({x:a[be].x+(Math.random()-.5)*25,y:a[be].y+(Math.random()-.5)*25,radius:2,color:ce.color,data:ce.data,nodeType:"memory"}),p.push(ce.data.id),k.set(ce.data.id,ce.data),c.push({source:be,target:He,edgeType:"hierarchy"})}}}}}if(a.length>3e3){const S=new Map;let D=0;for(let I=0;I<a.length;I++)a[I].nodeType!=="memory"&&(S.set(I,D),a[D]=a[I],p[D]=p[I],D++);a.length=D,p.length=D;let ae=0;for(const I of c){const N=S.get(I.source),A=S.get(I.target);N!==void 0&&A!==void 0&&(c[ae]={...I,source:N,target:A},ae++)}c.length=ae,k.clear();for(const I of a)k.set(I.data.id,I.data)}for(const S of t.dependencies){const D=x.get(S.sourceEntityId),ae=x.get(S.targetEntityId);D!==void 0&&ae!==void 0&&c.push({source:D,target:ae,edgeType:"dependency",dependencyType:S.dependencyType,strength:S.strength})}n(ct,a,!0),n(i,p,!0),n(Vt,c,!0),n(de,k,!0)}finally{n(ie,!1)}}async function Za(t){if(!t){n(Bt,[],!0),n(L,[],!0),n(W,[],!0),n(G,new Map,!0);return}const r=await sa(t.id,10);n(Bt,r.map(a=>({id:a.id,score:a.score??0,kind:"similar"})),!0),n(L,[],!0),n(W,e(Bt),!0),n(G,new Map(e(Bt).map(a=>[a.id,a.kind])),!0)}function $a(){n(g,null),n(w,null),n(E,null),n(Kt,[],!0),n(Xt,"")}function $r(t){const r=e(de).get(t)??null;r&&(n(E,null),n(g,r,!0))}function eo(t){if(e(se)==="2d"){e(Et)?.focusNode(t);return}e(Jt)?.focusNode(t)}async function to(){if(!e(g)||e(vt))return;n(vt,!0),n(Xt,"");const t=e(g).id,r=!(e(g).pinned??!1),a=await Ro(t,r);if(!a.success){n(Xt,a.error??"Failed to update pin state",!0),n(vt,!1);return}Aa(t,c=>({...c,pinned:r})),e(se)==="3d"&&e(Jt)?.refreshAppearance(),n(vt,!1)}async function ro(){if(e(g)){n(rt,!0);try{n(Kt,await sa(e(g).id,10,Oo.filterType||void 0),!0)}finally{n(rt,!1)}}}async function en(){n(he,!1),n(y,""),n(J,""),n(Le,[],!0),n(g,null),n(w,null),n(E,null),n(Kt,[],!0),n(rt,!1),n(de,new Map,!0),n(G,new Map,!0),n(Bt,[],!0),n(L,[],!0),n(W,[],!0),n(P,[],!0),n(Re,0),n(pe,!1),n(ct,[],!0),n(Vt,[],!0),n(i,[],!0),n(Xt,""),e(Et)?.stopSimulation(),e(Et)?.stopRendering(),e(Et)?.resetCamera(),e(Jt)?.destroy(),n(se,"2d"),await un(),jn()}re(()=>{const t=e(P),r=new Set,a=new Map,c=new Map,p=new Map,k=new Map;for(const x of t){x.pinned&&r.add(x.id);const T=x.who??"unknown";a.set(T,(a.get(T)??0)+1),typeof x.type=="string"&&x.type.length>0&&c.set(x.type,(c.get(x.type)??0)+1);const S=x.sourceType??"memory";p.set(S,(p.get(S)??0)+1),k.set(x.id,[x.content,x.text??"",x.who??"",x.type??"",x.sourceType??"",x.sourceId??"",...x.tags??[]].join(" ").toLowerCase())}if(n(rr,r,!0),n(_,k,!0),n(Gt,[...a.entries()].sort((x,T)=>T[1]-x[1]||x[0].localeCompare(T[0])).map(([x,T])=>({who:x,count:T})),!0),n(pt,[...c.entries()].sort((x,T)=>T[1]-x[1]||x[0].localeCompare(T[0])).map(([x,T])=>({value:x,count:T})),!0),n(Lt,[...p.entries()].sort((x,T)=>T[1]-x[1]||x[0].localeCompare(T[0])).map(([x,T])=>({value:x,count:T})),!0),e(Ye).size>0){const x=new Set([...e(Ye)].filter(T=>a.has(T)));x.size!==e(Ye).size&&n(Ye,x,!0)}}),re(()=>{let t=!1;return(async()=>{const r=await Po();t||n(ue,r.filter(a=>a.trim().length>0),!0)})(),()=>{t=!0}}),re(()=>{if(e(Se).size===0||e(ue).length===0)return;const t=new Set(e(ue)),r=new Set([...e(Se)].filter(a=>t.has(a)));r.size!==e(Se).size&&n(Se,r,!0)}),re(()=>{const t=e(lt);t==="all"||t==="custom"||n(xe,Date.now(),!0)}),re(()=>{const t=e(ge);if(!t.trim()){clearTimeout(We),n($e,""),n(kt,null),n(Ke,[],!0);return}const r=window.setTimeout(()=>{n($e,t,!0)},180);return We=r,()=>clearTimeout(r)}),re(()=>{const t=e($e).trim().toLowerCase(),r=e(P);if(!t){n(kt,null),n(Ke,[],!0);return}const a=new Set,c=[];for(const p of r){const k=e(_).get(p.id);k&&k.includes(t)&&(a.add(p.id),c.push(p))}if(e(M))for(const[p,k]of e(de)){if(a.has(p))continue;[k.content,k.who??"",...k.tags??[]].join(" ").toLowerCase().includes(t)&&(a.add(p),c.push(k))}n(kt,a,!0),n(Ke,c.slice(0,50),!0)}),re(()=>{const t=e(Ye);if(t.size===0){n(Ft,null);return}n(Ft,new Set(e(P).filter(r=>t.has(r.who??"unknown")).map(r=>r.id)),!0)}),re(()=>{if(!(typeof window>"u"||e(Ne))){try{const t=window.localStorage.getItem(Yn);if(t){const r=JSON.parse(t);if(Array.isArray(r)){const a=r.filter(c=>{if(typeof c!="object"||c===null)return!1;const p=c;return typeof p.id=="string"&&typeof p.name=="string"&&typeof p.search=="string"&&Array.isArray(p.sources)&&typeof p.pinnedOnly=="boolean"&&typeof p.neighborhoodOnly=="boolean"&&typeof p.clusterLensMode=="boolean"});n(ne,a.slice(0,8),!0)}}}catch{n(ne,[],!0)}n(Ne,!0)}}),re(()=>{typeof window>"u"||!e(Ne)||window.localStorage.setItem(Yn,JSON.stringify(e(ne)))}),re(()=>{if(!(typeof window>"u"||e(le)))try{const t=window.localStorage.getItem(pa);if(t){const r=JSON.parse(t);if(typeof r=="object"&&r!==null){const a=r;n(q,xn({centerForce:typeof a.centerForce=="number"?a.centerForce:kr.centerForce,repelForce:typeof a.repelForce=="number"?a.repelForce:kr.repelForce,linkForce:typeof a.linkForce=="number"?a.linkForce:kr.linkForce,linkDistance:typeof a.linkDistance=="number"?a.linkDistance:kr.linkDistance}),!0)}}}finally{n(le,!0)}}),re(()=>{typeof window>"u"||!e(le)||window.localStorage.setItem(pa,JSON.stringify(e(q)))}),re(()=>{if(!(typeof window>"u"||e(or))){try{const t=window.sessionStorage.getItem(Pe);(t==="source"||t==="newness"||t==="none")&&n(oe,t,!0),window.sessionStorage.getItem(tt)==="true"&&n(Fe,!0)}catch{}try{const t=window.localStorage.getItem(fe);if(t){const r=Number.parseInt(t,10);Number.isNaN(r)||n($t,r,!0)}}catch{}try{window.localStorage.removeItem(It),window.localStorage.removeItem(Pt)}catch{}n(or,!0)}}),re(()=>{if(!(typeof window>"u"||!e(or))){try{e(oe)==="source"?window.sessionStorage.removeItem(Pe):window.sessionStorage.setItem(Pe,e(oe))}catch{}try{e(Fe)&&e(oe)!=="none"?window.sessionStorage.setItem(tt,"true"):window.sessionStorage.removeItem(tt)}catch{}try{e(nr)!==null&&window.localStorage.setItem(fe,String(e(nr)))}catch{}}}),re(()=>{if(!(typeof window>"u"))try{window.sessionStorage.getItem(H)==="true"&&n(M,!0)}catch{}}),re(()=>{if(!(typeof window>"u"))try{e(M)?window.sessionStorage.setItem(H,"true"):window.sessionStorage.removeItem(H)}catch{}}),re(()=>{if(typeof window>"u")return;const t=window.setInterval(()=>{n(Ut,Date.now(),!0)},6e4);return()=>window.clearInterval(t)}),re(()=>{const t=new Set;if(e(it)){const r=e(g)??e(jt);if(r){t.add(r.id);const a=e(g)!==null?e(W):e(Gr);for(const c of a)t.add(c.id)}}n(zt,t,!0)}),re(()=>{e(it),e(zt),Xr()}),re(()=>{e(oe),e(Fe),e(Ut),e($t),e(se)==="2d"&&e(Et)?.requestRedraw(),Xr()}),re(()=>{!e(he)||typeof window>"u"||e(nr)===null&&n(nr,Date.now(),!0)}),re(()=>{e(q),e(he)&&e(se)==="2d"&&e(Et)?.updatePhysics(e(q))});const no=U(()=>Cn(Pn()));re(()=>{const t=e(no);if(!e(he)||e(y).length>0||t===e(mt))return;clearTimeout(yt);const r=window.setTimeout(()=>{en()},220);return yt=r,()=>clearTimeout(r)}),re(()=>{const t=e(qt)===!0?new Set(e(rr)):null,r=e(g)??e(jt),a=e(g)?e(W):e(Gr),c=e(gt)===!0&&r?new Set([r.id,...a.map(p=>p.id)]):null;n(ut,Da([e(kt),e(Ft),t,c]),!0),Xr()}),re(()=>{Za(e(g))}),re(()=>{const t=e(Dt),r=e(Bt),a=e(L);n(W,t==="similar"?r:a,!0),n(G,new Map(e(W).map(c=>[c.id,c.kind])),!0),Xr()});const jt=U(()=>e(E)?e(de).get(e(E))??null:e(w)),Hn=U(Qr),ao=U(()=>{e(i);const t=e(Vt),r=new Map;for(const a of t){const c=On(a.source),p=On(a.target);if(!c||!p||c===p)continue;const k=r.get(c)??new Map;k.set(p,(k.get(p)??0)+1),r.set(c,k);const x=r.get(p)??new Map;x.set(c,(x.get(c)??0)+1),r.set(p,x)}return r}),Gr=U(()=>{const t=e(jt);if(!t)return[];const r=e(ao).get(t.id);if(!r||r.size===0)return[];const a=[...r.entries()].sort((p,k)=>k[1]-p[1]).slice(0,6),c=a[0]?.[1]??1;return a.map(([p,k])=>({id:p,score:k/c,kind:"similar"}))}),oo=U(()=>new Map(e(Gr).map(t=>[t.id,"similar"]))),Gn=U(()=>e(g)?e(G):e(oo)),_r=U(()=>{const t=e(g);return t?e(ct).find(r=>r.data.id===t.id)??null:null}),tn=U(()=>e(g)?[]:e(Gr)),zn=U(()=>{const t=new Map(e(Gt).map(c=>[c.who,c])),r=et.map(c=>t.get(c)).filter(c=>!!c),a=e(Gt).filter(c=>!st.has(c.who));return[...r,...a].slice(0,8)});re(()=>{e(g)&&e(E)&&n(E,null)}),re(()=>{const t=e(E);t&&(e(de).has(t)||n(E,null))}),re(()=>{const t=e(V);if(!t)return;Je=t.getBoundingClientRect();const r=new ResizeObserver(()=>{Je=t.getBoundingClientRect()});return r.observe(t),()=>r.disconnect()}),re(()=>{e(Y)&&Dn()}),re(()=>{if(typeof window>"u")return;const t=r=>{if(r.key==="Shift"){qa();return}r.key==="Escape"&&Rn()};return window.addEventListener("keydown",t),()=>{window.removeEventListener("keydown",t)}}),re(()=>{if(!e(V))return;const t=new IntersectionObserver(r=>{r[0].isIntersecting&&!e(he)&&!e(Or)&&(n(Or,!0),jn())},{threshold:.1});return t.observe(e(V)),()=>t.disconnect()}),re(()=>{Mr.embeddings.controlsOpen=e(Ue),Mr.embeddings.presetsOpen=e(ye),Mr.embeddings.sourcesOpen=e(ze),Go()});var rn=Bs();Ar("keydown",Eo,Ma);var Bn=l(rn);Fo(Bn,{title:"Constellation",children:(t,r)=>{Ho(t,{group:"memory",get tabs(){return Lo},get activeTab(){return oa.activeTab},onselect:(a,c)=>Co(c)})}});var Wn=d(Bn,2),wr=l(Wn),qn=l(wr);{var io=t=>{var r=Hi();Wt(r,"",{},{top:"52px"});var a=l(r),c=l(a);s(a),s(r),F(()=>b(c,`${gn.Unlock} preview`)),X("click",a,Rn),u(t,r)};j(qn,t=>{e(E)&&t(io)})}var Kn=d(qn,2);{var so=t=>{var r=Vi(),a=l(r),c=l(a),p=l(c),k=d(p),x=d(k),T=l(x);s(x);var S=d(x,2);{var D=N=>{var A=Gi(),R=l(A);s(A),F(ee=>b(R,`${ee??""}%`),[()=>Math.round(e(At).percent)]),u(N,A)};j(S,N=>{e(yr)&&e(At)&&N(D)})}s(c);var ae=d(c,2);{var I=N=>{var A=Ui(),R=l(A),ee=d(l(R),2),Xe=l(ee);s(ee),s(R);var je=d(R,2);{var ke=B=>{var te=Wi(),Z=l(te),Ie=l(Z,!0);s(Z);var be=d(Z,2);{var ce=De=>{var Te=zi(),Ae=l(Te,!0);s(Te),F(()=>b(Ae,e(sr))),u(De,Te)};j(be,De=>{e(sr)&&De(ce)})}var He=d(be,2);{var Qe=De=>{var Te=Bi(),Ae=l(Te),nt=l(Ae),_t=l(nt);s(nt);var xt=d(nt,2),Ze=l(xt);s(xt),s(Ae);var Ge=d(Ae,2),wt=l(Ge);s(Ge);var er=d(Ge,2),vr=l(er);s(er),s(Te),F((pr,fr,K,at,Qt)=>{b(_t,`${pr??""} / ${fr??""}`),b(Ze,`${K??""}%`),Wt(wt,at),b(vr,`${Qt??""} remaining · ${e(At).coverage??""} coverage`)},[()=>e(At).completed.toLocaleString(),()=>e(At).baseline.toLocaleString(),()=>Math.round(e(At).percent),()=>`width:${Math.max(0,Math.min(100,e(At).percent))}%`,()=>e(At).remaining.toLocaleString()]),u(De,Te)};j(He,De=>{e(At)&&De(Qe)})}s(te),F(()=>b(Ie,e(ir))),u(B,te)};j(je,B=>{e(ir)&&B(ke)})}var O=d(je,2);St(O,21,()=>e(dr).checks,Mt,(B,te)=>{var Z=Ki(),Ie=l(Z),be=d(Ie,2),ce=l(be),He=l(ce),Qe=l(He,!0);s(He);var De=d(He,2),Te=l(De,!0);s(De),s(ce);var Ae=d(ce,2),nt=l(Ae,!0);s(Ae);var _t=d(Ae,2);{var xt=Ze=>{var Ge=qi(),wt=l(Ge,!0);s(Ge),F(()=>{Ge.disabled=e(yr),b(wt,e(yr)?"running...":e(te).fix)}),X("click",Ge,()=>Ea(e(te))),u(Ze,Ge)};j(_t,Ze=>{e(te).fix&&e(te).status!=="ok"&&Ze(xt)})}s(be),s(Z),F(Ze=>{Wt(Ie,`background:${Ze??""}`),b(Qe,e(te).name),b(Te,e(te).status),b(nt,e(te).message)},[()=>Fa(e(te).status)]),u(B,Z)}),s(O),s(A),F(()=>b(Xe,`${e(dr).config.provider??""}/${e(dr).config.model??""}`)),u(N,A)};j(ae,N=>{e(Ur)&&N(I)})}s(a),s(r),F((N,A)=>{Wt(p,`background:${N??""}`),b(k,` ${e(dr).status??""} `),b(T,`${A??""}%`)},[()=>Na(e(dr).status),()=>Math.round(e(dr).score*100)]),X("click",c,()=>n(Ur,!e(Ur))),u(t,r)};j(Kn,t=>{e(dr)&&t(so)})}var nn=d(Kn,2),lo=l(nn);Yt(lo,()=>Lr,(t,r)=>{r(t,{class:"pointer-events-auto flex min-w-[180px] max-h-full flex-col-reverse",get open(){return e(v)},set open(a){n(v,a,!0)},children:(a,c)=>{var p=is(),k=me(p);Yt(k,()=>Pr,(T,S)=>{S(T,{class:"flex w-full items-center gap-2 px-3 py-1.5 min-w-[180px] border border-[var(--sig-border)] text-[10px] font-[family-name:var(--font-mono)] uppercase tracking-[0.06em] text-[var(--sig-text-muted)] bg-transparent",get"aria-expanded"(){return e(v)},children:(D,ae)=>{var I=Ji(),N=d(me(I),2);{let A=U(()=>`size-3 text-[var(--sig-text-muted)] transition-transform ${e(v)?"rotate-180":""}`);Dr(N,{get class(){return e(A)}})}u(D,I)},$$slots:{default:!0}})});var x=d(k,2);Yt(x,()=>Cr,(T,S)=>{S(T,{class:"min-h-0 max-h-[min(40vh,24rem)] overflow-y-auto border border-[var(--sig-border)] bg-[rgba(5,5,5,0.88)] px-3 py-2",children:(D,ae)=>{var I=os(),N=me(I),A=d(l(N));s(N);var R=d(N,2);{var ee=Z=>{var Ie=Zi(),be=me(Ie),ce=l(be),He=l(ce);ur(),s(ce);var Qe=d(ce,2),De=l(Qe);ur(),s(Qe);var Te=d(Qe,2),Ae=l(Te);ur(),s(Te);var nt=d(Te,2),_t=l(nt);ur(),s(nt),s(be);var xt=d(be,2);St(xt,21,()=>e(zn),Mt,(Ze,Ge)=>{var wt=Qi(),er=l(wt);s(wt),F(vr=>{bt(wt,1,`h-5 inline-flex items-center gap-1 px-1.5 py-0 font-[family-name:var(--font-mono)] text-[10px] border border-[rgba(255,255,255,0.14)] ${vr??""}`),b(er,`${e(Ge).who??""} ${e(Ge).count??""}`)},[()=>e(Ye).size===0||e(Ye).has(e(Ge).who)?"bg-[rgba(255,255,255,0.08)] text-[var(--sig-text-bright)]":"bg-transparent text-[var(--sig-text-muted)]"]),u(Ze,wt)}),s(xt),F((Ze,Ge,wt,er)=>{Wt(He,Ze),Wt(De,Ge),Wt(Ae,wt),Wt(_t,er)},[()=>`background:${jr(3e5,.95)}`,()=>`background:${jr(108e5,.9)}`,()=>`background:${jr(2592e5,.85)}`,()=>`background:${jr(2592e6,.85)}`]),u(Z,Ie)},Xe=Z=>{var Ie=es();St(Ie,21,()=>e(zn),Mt,(be,ce)=>{var He=$i(),Qe=l(He),De=d(Qe);s(He),F((Te,Ae)=>{bt(He,1,`h-5 inline-flex items-center gap-1 px-1.5 py-0 font-[family-name:var(--font-mono)] text-[10px] border border-[rgba(255,255,255,0.14)] ${Te??""}`),Wt(Qe,Ae),b(De,` ${e(ce).who??""} ${e(ce).count??""}`)},[()=>e(Ye).size===0||e(Ye).has(e(ce).who)?"bg-[rgba(255,255,255,0.08)] text-[var(--sig-text-bright)]":"bg-transparent text-[var(--sig-text-muted)]",()=>`background:${ha(e(ce).who,1)}`]),u(be,He)}),s(Ie),u(Z,Ie)},je=Z=>{var Ie=ts();u(Z,Ie)};j(R,Z=>{e(oe)==="newness"?Z(ee):e(oe)==="source"?Z(Xe,1):Z(je,-1)})}var ke=d(R,6);{var O=Z=>{var Ie=rs();u(Z,Ie)};j(ke,Z=>{e(Fe)&&e(oe)!=="none"&&Z(O)})}var B=d(ke,4);{var te=Z=>{var Ie=as(),be=d(l(Ie),2);St(be,21,()=>Object.entries(Kr),Mt,(ce,He)=>{var Qe=U(()=>No(e(He),2));let De=()=>e(Qe)[0],Te=()=>e(Qe)[1];var Ae=gr(),nt=me(Ae);{var _t=xt=>{var Ze=ns(),Ge=l(Ze),wt=d(Ge);s(Ze),F(()=>{Wt(Ge,`background:${Te()}; clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);`),b(wt,` ${De()??""}`)}),u(xt,Ze)};j(nt,xt=>{De()!=="unknown"&&xt(_t)})}u(ce,Ae)}),s(be),ur(2),s(Ie),u(Z,Ie)};j(B,Z=>{e(M)&&Z(te)})}F(()=>b(A,` = ${e(oe)==="none"?"off":e(oe)==="newness"?"by recency":"by source"}`)),u(D,I)},$$slots:{default:!0}})}),u(a,p)},$$slots:{default:!0}})}),s(nn);var Un=d(nn,2);{var co=t=>{var r=ss(),a=l(r),c=l(a,!0);s(a),s(r),F(()=>b(c,e(y))),u(t,r)},uo=t=>{var r=ls(),a=l(r),c=l(a,!0);s(a),s(r),F(()=>b(c,e(J))),u(t,r)},go=t=>{var r=ds();u(t,r)},vo=t=>{var r=cs();u(t,r)};j(Un,t=>{e(y)?t(co):e(J)?t(uo,1):e(he)&&e(P).length===0?t(go,2):e(he)||t(vo,3)})}var Vn=d(Un,2);Wt(Vn,"",{},{top:"20px"});var Jn=d(Vn,4);{var po=t=>{var r=ms(),a=l(r),c=l(a),p=l(c,!0);s(c);var k=d(c,2);{var x=O=>{var B=us(),te=l(B,!0);s(B),F(()=>b(te,e(jt).type)),u(O,B)};j(k,O=>{e(jt).type&&O(x)})}var T=d(k,2);{var S=O=>{var B=gs();u(O,B)};j(T,O=>{e(jt).pinned&&O(S)})}var D=d(T,2);{var ae=O=>{var B=vs();u(O,B)};j(D,O=>{e(E)&&O(ae)})}s(a);var I=d(a,2),N=l(I);s(I);var A=d(I,2),R=l(A,!0);s(A);var ee=d(A,2),Xe=l(ee,!0);s(ee);var je=d(ee,2);{var ke=O=>{var B=fs(),te=d(l(B),2);St(te,21,()=>e(tn),Mt,(Z,Ie)=>{const be=U(()=>e(de).get(e(Ie).id));var ce=gr(),He=me(ce);{var Qe=De=>{var Te=ps(),Ae=l(Te),nt=l(Ae,!0);s(Ae);var _t=d(Ae,2),xt=l(_t);s(_t),s(Te),F((Ze,Ge)=>{b(nt,Ze),b(xt,`${Ge??""}%`)},[()=>hr(e(be)),()=>Math.round(e(Ie).score*100)]),u(De,Te)};j(He,De=>{e(be)&&De(Qe)})}u(Z,ce)}),s(te),s(B),u(O,B)};j(je,O=>{e(tn).length>0&&O(ke)})}s(r),br(r,O=>n(Y,O),()=>e(Y)),F((O,B,te)=>{b(p,e(jt).who??"unknown"),b(N,`importance ${O??""}% · ${B??""} · linked ${e(tn).length??""}`),b(R,te),b(Xe,e(E)?"ESC or Unlock Preview button":"Hold Shift to lock preview")},[()=>Math.round((e(jt).importance??0)*100),()=>Ca(e(jt).createdAt),()=>hr(e(jt))]),u(t,r)};j(Jn,t=>{e(jt)&&t(po)})}var zr=d(Jn,2);let Qn;var fo=l(zr);{var mo=t=>{{let r=U(()=>e(it)&&e(zt).size>0),a=U(()=>e(Ye).size>0?e(Ye):null);br(di(t,{get nodes(){return e(ct)},get edges(){return e(Vt)},get graphPhysics(){return e(q)},get graphSelected(){return e(g)},get graphHovered(){return e(jt)},get embeddingFilterIds(){return e(ut)},get relationLookup(){return e(Gn)},get pinnedIds(){return e(rr)},get lensIds(){return e(zt)},get clusterLensMode(){return e(r)},get colorMode(){return e(oe)},get nowMs(){return e(Ut)},get showNewSinceLastSeen(){return e(Fe)},get lastSeenMs(){return e($t)},get sourceFocusSources(){return e(a)},onselectnode:c=>{c?$r(c.id):n(g,null)},onhovernode:An}),c=>n(Et,c,!0),()=>e(Et))}},xo=t=>{var r=xs(),a=l(r),c=l(a,!0);s(a),s(r),F(()=>b(c,e(y))),u(t,r)},bo=t=>{var r=bs(),a=l(r),c=l(a,!0);s(a),s(r),F(()=>b(c,e(J))),u(t,r)};j(fo,t=>{e(he)?t(mo):e(y)?t(xo,1):e(J)&&t(bo,2)})}s(zr);var an=d(zr,2);let Zn;var ho=l(an);{var yo=t=>{var r=gr(),a=me(r);{let c=U(()=>e(it)&&e(zt).size>0),p=U(()=>e(Ye).size>0?e(Ye):null);Yt(a,()=>e(Ir),(k,x)=>{br(x(k,{get embeddings(){return e(P)},get projected3d(){return e(Le)},get graphSelected(){return e(g)},get embeddingFilterIds(){return e(ut)},get relationLookup(){return e(Gn)},get pinnedIds(){return e(rr)},get lensIds(){return e(zt)},get clusterLensMode(){return e(c)},get embeddingById(){return e(de)},get colorMode(){return e(oe)},get nowMs(){return e(Ut)},get showNewSinceLastSeen(){return e(Fe)},get lastSeenMs(){return e($t)},get sourceFocusSources(){return e(p)},onselectnode:T=>{T?$r(T.id):n(g,null)},onhovernode:An}),T=>n(Jt,T,!0),()=>e(Jt))})}u(t,r)},_o=t=>{var r=hs(),a=l(r),c=l(a,!0);s(a),s(r),F(()=>b(c,e(y)||"Loading 3D...")),u(t,r)};j(ho,t=>{e(Ir)&&!e(Rr)?t(yo):e(Rr)&&t(_o,1)})}s(an),s(wr),br(wr,t=>n(V,t),()=>e(V));var $n=d(wr,2),on=l($n),ea=l(on);Yt(ea,()=>Lr,(t,r)=>{r(t,{class:"border border-[var(--sig-border)]",get open(){return e(Ue)},set open(a){n(Ue,a,!0)},children:(a,c)=>{var p=Ss(),k=me(p);Yt(k,()=>Pr,(T,S)=>{S(T,{class:"flex w-full items-center justify-between px-2 py-1.5 border-none text-[10px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] text-[var(--sig-highlight)]",style:"background: color-mix(in srgb, var(--sig-highlight), var(--sig-bg) 94%);",children:(D,ae)=>{var I=ys(),N=d(me(I),2);{let A=U(()=>`size-3 text-[var(--sig-text-muted)] transition-transform ${e(Ue)?"rotate-180":""}`);Dr(N,{get class(){return e(A)}})}u(D,I)},$$slots:{default:!0}})});var x=d(k,2);Yt(x,()=>Cr,(T,S)=>{S(T,{children:(D,ae)=>{var I=ws(),N=l(I),A=l(N);Zt(A),br(A,Nt=>Oe=Nt,()=>Oe);var R=d(A,2);{var ee=Nt=>{var Fr=_s(),cn=l(Fr,!0);s(Fr),F(()=>b(cn,e(Ke).length)),u(Nt,Fr)};j(R,Nt=>{e(ge)&&Nt(ee)})}s(N);var Xe=d(N,2),je=l(Xe);s(Xe);var ke=d(Xe,2),O=l(ke),B=d(O,2),te=d(B,2),Z=d(te,2),Ie=l(Z,!0);s(Z),s(ke);var be=d(ke,2),ce=d(l(be),2),He=l(ce),Qe=d(He,2),De=d(Qe,2);s(ce),s(be);var Te=d(be,2),Ae=d(l(Te),2),nt=l(Ae),_t=d(nt,2),xt=l(_t,!0);s(_t),s(Ae),s(Te);var Ze=d(Te,2),Ge=d(l(Ze),2),wt=l(Ge),er=d(l(wt),2),vr=l(er,!0);s(er),s(wt);var pr=d(wt,2);Zt(pr),s(Ge);var fr=d(Ge,2),K=l(fr),at=d(l(K),2),Qt=l(at,!0);s(at),s(K);var Rt=d(K,2);Zt(Rt),s(fr);var ot=d(fr,2),Ht=l(ot),Ot=d(l(Ht),2),mr=l(Ot,!0);s(Ot),s(Ht);var tr=d(Ht,2);Zt(tr),s(ot);var sn=d(ot,2),ln=l(sn),na=d(l(ln),2),Mo=l(na,!0);s(na),s(ln);var dn=d(ln,2);Zt(dn),s(sn);var ko=d(sn,2);s(Ze),s(I),F((Nt,Fr,cn,Io)=>{b(je,`Window ${e(Hn).offset+1}-${e(Hn).offset+e(P).length} / ${e(Re)??""}`),bt(O,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] ${e(qt)?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"}`),bt(B,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] ${e(gt)?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"}`),bt(te,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] ${e(it)?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"}`),b(Ie,gn.Reset),bt(He,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] ${e(oe)==="newness"?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"}`),bt(Qe,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] ${e(oe)==="source"?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"}`),bt(De,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] ${e(oe)==="none"?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"}`),bt(nt,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] ${e(Fe)&&e(oe)!=="none"?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"} ${e(oe)==="none"?"opacity-60 cursor-not-allowed":""}`),nt.disabled=e(oe)==="none",bt(_t,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] ${e(M)?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"}`),b(xt,e(ie)?"Loading...":"Entities"),b(vr,Nt),Br(pr,e(q).centerForce),b(Qt,Fr),Br(Rt,e(q).repelForce),b(mr,cn),Br(tr,e(q).linkForce),b(Mo,Io),Br(dn,e(q).linkDistance)},[()=>e(q).centerForce.toFixed(2),()=>Math.round(e(q).repelForce),()=>e(q).linkForce.toFixed(2),()=>Math.round(e(q).linkDistance)]),X("input",A,()=>n(C,"custom-live")),lr(A,()=>e(ge),Nt=>n(ge,Nt)),X("click",O,Ha),X("click",B,Ga),X("click",te,za),X("click",Z,ja),X("click",He,()=>n(oe,"newness")),X("click",Qe,()=>n(oe,"source")),X("click",De,()=>{n(oe,"none"),n(Fe,!1)}),X("click",nt,()=>n(Fe,!e(Fe))),X("click",_t,()=>{n(M,!e(M)),e(he)&&en()}),X("input",pr,Nt=>Nr({centerForce:Hr(Nt,e(q).centerForce)})),X("input",Rt,Nt=>Nr({repelForce:Hr(Nt,e(q).repelForce)})),X("input",tr,Nt=>Nr({linkForce:Hr(Nt,e(q).linkForce)})),X("input",dn,Nt=>Nr({linkDistance:Hr(Nt,e(q).linkDistance)})),X("click",ko,()=>Nr(kr)),u(D,I)},$$slots:{default:!0}})}),u(a,p)},$$slots:{default:!0}})});var ta=d(ea,2);Yt(ta,()=>Lr,(t,r)=>{r(t,{class:"border border-[var(--sig-border)]",get open(){return e(ye)},set open(a){n(ye,a,!0)},children:(a,c)=>{var p=Es(),k=me(p);Yt(k,()=>Pr,(T,S)=>{S(T,{class:"flex w-full items-center justify-between px-2 py-1.5 border-none text-[10px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] text-[var(--sig-highlight)]",style:"background: color-mix(in srgb, var(--sig-highlight), var(--sig-bg) 94%);",children:(D,ae)=>{var I=Ms(),N=d(me(I),2);{let A=U(()=>`size-3 text-[var(--sig-text-muted)] transition-transform ${e(ye)?"rotate-180":""}`);Dr(N,{get class(){return e(A)}})}u(D,I)},$$slots:{default:!0}})});var x=d(k,2);Yt(x,()=>Cr,(T,S)=>{S(T,{children:(D,ae)=>{var I=Ts(),N=l(I);St(N,17,()=>Ka,Mt,(Xe,je)=>{var ke=ks(),O=l(ke,!0);s(ke),F(()=>{bt(ke,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] uppercase border border-[var(--sig-border-strong)] ${e(C)===e(je).id?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"}`),b(O,e(je).name)}),X("click",ke,()=>Xn(e(je))),u(Xe,ke)});var A=d(N,2);St(A,17,()=>e(ne),Mt,(Xe,je)=>{var ke=Is(),O=l(ke),B=l(O,!0);s(O);var te=d(O,2);s(ke),F(()=>{bt(O,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] ${e(C)===e(je).id?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"}`),b(B,e(je).name),fn(te,"aria-label",`Delete ${e(je).name} preset`)}),X("click",O,()=>Xn(e(je))),X("click",te,()=>Ja(e(je).id)),u(Xe,ke)});var R=d(A,2),ee=l(R,!0);s(R),s(I),F(()=>b(ee,gn.Save)),X("click",R,Va),u(D,I)},$$slots:{default:!0}})}),u(a,p)},$$slots:{default:!0}})});var ra=d(ta,2);Yt(ra,()=>Lr,(t,r)=>{r(t,{class:"border border-[var(--sig-border)]",get open(){return e(ze)},set open(a){n(ze,a,!0)},children:(a,c)=>{var p=Ls(),k=me(p);Yt(k,()=>Pr,(T,S)=>{S(T,{class:"flex w-full items-center justify-between px-2 py-1.5 border-none text-[10px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] text-[var(--sig-highlight)]",style:"background: color-mix(in srgb, var(--sig-highlight), var(--sig-bg) 94%);",children:(D,ae)=>{var I=Ns(),N=d(me(I),2);{let A=U(()=>`size-3 text-[var(--sig-text-muted)] transition-transform ${e(ze)?"rotate-180":""}`);Dr(N,{get class(){return e(A)}})}u(D,I)},$$slots:{default:!0}})});var x=d(k,2);Yt(x,()=>Cr,(T,S)=>{S(T,{children:(D,ae)=>{var I=Cs(),N=l(I);{var A=ee=>{var Xe=Fs();u(ee,Xe)},R=ee=>{var Xe=gr(),je=me(Xe);St(je,17,()=>e(Gt),Mt,(ke,O)=>{var B=Ps(),te=l(B);s(B),F(Z=>{bt(B,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] border border-[var(--sig-border-strong)] ${Z??""}`),b(te,`${e(O).who??""} ${e(O).count??""}`)},[()=>e(Ye).size===0||e(Ye).has(e(O).who)?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"]),X("click",B,()=>Ba(e(O).who)),u(ke,B)}),u(ee,Xe)};j(N,ee=>{e(Gt).length===0?ee(A):ee(R,-1)})}s(I),u(D,I)},$$slots:{default:!0}})}),u(a,p)},$$slots:{default:!0}})});var wo=d(ra,2);Yt(wo,()=>Lr,(t,r)=>{r(t,{class:"border border-[var(--sig-border)]",get open(){return e(qe)},set open(a){n(qe,a,!0)},children:(a,c)=>{var p=zs(),k=me(p);Yt(k,()=>Pr,(T,S)=>{S(T,{class:"flex w-full items-center justify-between px-2 py-1.5 border-none text-[10px] uppercase tracking-[0.08em] font-[family-name:var(--font-mono)] text-[var(--sig-highlight)]",style:"background: color-mix(in srgb, var(--sig-highlight), var(--sig-bg) 94%);",children:(D,ae)=>{var I=Ds(),N=d(me(I),2);{let A=U(()=>`size-3 text-[var(--sig-text-muted)] transition-transform ${e(qe)?"rotate-180":""}`);Dr(N,{get class(){return e(A)}})}u(D,I)},$$slots:{default:!0}})});var x=d(k,2);Yt(x,()=>Cr,(T,S)=>{S(T,{children:(D,ae)=>{var I=Gs(),N=l(I),A=d(l(N),2);Zt(A);var R=d(A,4);Zt(R);var ee=d(R,2),Xe=l(ee);Xe.value=Xe.__value="all";var je=d(Xe);je.value=je.__value="24h";var ke=d(je);ke.value=ke.__value="7d";var O=d(ke);O.value=O.__value="30d";var B=d(O);B.value=B.__value="90d";var te=d(B);te.value=te.__value="custom",s(ee),s(N);var Z=d(N,2);{var Ie=K=>{var at=As(),Qt=l(at);Zt(Qt);var Rt=d(Qt,2);Zt(Rt),s(at),lr(Qt,()=>e(_e),ot=>n(_e,ot)),lr(Rt,()=>e(we),ot=>n(we,ot)),u(K,at)};j(Z,K=>{e(lt)==="custom"&&K(Ie)})}var be=d(Z,2),ce=l(be),He=l(ce);He.value=He.__value="all";var Qe=d(He);Qe.value=Qe.__value="pinned";var De=d(Qe);De.value=De.__value="unpinned",s(ce);var Te=d(ce,2);Zt(Te);var Ae=d(Te,2);Zt(Ae);var nt=d(Ae,2);Zt(nt);var _t=d(nt,2);Zt(_t),s(be);var xt=d(be,2),Ze=d(l(xt),2);{var Ge=K=>{var at=Rs();u(K,at)},wt=K=>{var at=gr(),Qt=me(at);St(Qt,17,()=>e(ue),Mt,(Rt,ot)=>{var Ht=Os(),Ot=l(Ht,!0);s(Ht),F(mr=>{bt(Ht,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] border border-[var(--sig-border-strong)] ${mr??""}`),b(Ot,e(ot))},[()=>e(Se).has(e(ot))?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"]),X("click",Ht,()=>Oa(e(ot))),u(Rt,Ht)}),u(K,at)};j(Ze,K=>{e(ue).length===0?K(Ge):K(wt,-1)})}s(xt);var er=d(xt,2);{var vr=K=>{var at=Xs(),Qt=d(l(at),2);St(Qt,17,()=>[...new Set([...e(Ve),...e(pt).map(Rt=>Rt.value)])],Mt,(Rt,ot)=>{const Ht=U(()=>e(pt).find(tr=>tr.value===e(ot))?.count??0);var Ot=Ys(),mr=l(Ot);s(Ot),F(tr=>{bt(Ot,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] border border-[var(--sig-border-strong)] ${tr??""}`),b(mr,`${e(ot)??""}${e(Ht)>0?` ${e(Ht)}`:""}`)},[()=>e(Ve).has(e(ot))?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"]),X("click",Ot,()=>Ya(e(ot))),u(Rt,Ot)}),s(at),u(K,at)};j(er,K=>{(e(pt).length>0||e(Ve).size>0)&&K(vr)})}var pr=d(er,2);{var fr=K=>{var at=Hs(),Qt=d(l(at),2);St(Qt,17,()=>[...new Set([...e(ft),...e(Lt).map(Rt=>Rt.value)])],Mt,(Rt,ot)=>{const Ht=U(()=>e(Lt).find(tr=>tr.value===e(ot))?.count??0);var Ot=js(),mr=l(Ot);s(Ot),F(tr=>{bt(Ot,1,`px-2 py-[2px] font-[family-name:var(--font-mono)] text-[10px] border border-[var(--sig-border-strong)] ${tr??""}`),b(mr,`${e(ot)??""}${e(Ht)>0?` ${e(Ht)}`:""}`)},[()=>e(ft).has(e(ot))?"text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)]":"text-[var(--sig-text-muted)] bg-transparent"]),X("click",Ot,()=>Xa(e(ot))),u(Rt,Ot)}),s(at),u(K,at)};j(pr,K=>{(e(Lt).length>0||e(ft).size>0)&&K(fr)})}s(I),Ar("blur",A,Zr),lr(A,()=>e(Ce),K=>n(Ce,K)),Ar("blur",R,Zr),lr(R,()=>e(ve),K=>n(ve,K)),aa(ee,()=>e(lt),K=>n(lt,K)),aa(ce,()=>e(ht),K=>n(ht,K)),lr(Te,()=>e(Be),K=>n(Be,K)),lr(Ae,()=>e(dt),K=>n(dt,K)),lr(nt,()=>e(Tt),K=>n(Tt,K)),lr(_t,()=>e(Ct),K=>n(Ct,K)),u(D,I)},$$slots:{default:!0}})}),u(a,p)},$$slots:{default:!0}})}),s(on);var So=d(on,2);{let t=U(()=>e(_r)?.nodeType??void 0),r=U(()=>e(_r)?.entityData??null),a=U(()=>e(_r)?.aspectData??null),c=U(()=>e(_r)?.attributeData??null),p=U(()=>e(_r)?.parentEntityId??null),k=U(()=>e(_r)?.parentAspectId??null);ji(So,{containerClass:"flex-1 min-h-0 w-full min-w-0 border-l-0 border-t-0 max-lg:max-h-none",get graphSelected(){return e(g)},get embeddings(){return e(P)},get embeddingById(){return e(de)},get activeNeighbors(){return e(W)},get relationMode(){return e(Dt)},get loadingGlobalSimilar(){return e(rt)},get globalSimilar(){return e(Kt)},get embeddingSearchMatches(){return e(Ke)},get embeddingSearch(){return e(ge)},get pinBusy(){return e(vt)},get pinError(){return e(Xt)},get selectedNodeType(){return e(t)},get selectedEntityData(){return e(r)},get selectedAspectData(){return e(a)},get selectedAttributeData(){return e(c)},get parentEntityId(){return e(p)},get parentAspectId(){return e(k)},get constellationOverlay(){return e($)},onselectembedding:$r,onclearselection:$a,onloadglobalsimilar:ro,get onopenglobalsimilar(){return o.onopenglobalsimilar},onsetrelationmode:x=>n(Dt,x,!0),onfocusembedding:()=>e(g)&&eo(e(g).id),onpintoggle:to})}s($n),s(Wn),s(rn),F(()=>{Qn=Wt(zr,"",Qn,{display:e(se)==="2d"?"contents":"none"}),Zn=Wt(an,"",Zn,{display:e(se)==="3d"?"contents":"none"})}),X("mousemove",wr,Wa),Ar("mouseleave",wr,()=>{e(E)||n(w,null)}),u(h,rn),Sn()}Mn(["mousemove","click","input"]);export{$s as default};
@@ -1,15 +0,0 @@
1
- import{p as Ue,g as Mt,q as Sr,i as e,v as w,Q as xt,F as sr,b as s,d as qe,o as ie,m as d,s as Kt,c as Ee,f as S,a as Ct,n as Jt,r as Wt,j as f,t as o,l as p,k as B,w as Ve,y as ee,z as Y,B as It,x as nt,u as c,a6 as kr,e as Gt,N as yr,$ as xr,O as Ke,h as W,af as wr,A as Te,J as Pr,E as Cr,ad as ir,P as Lt,a0 as Ft,D as Er,aQ as Nr,aR as de,aS as Ar,U as Mr}from"./Bh3nIh1p.js";import{i as Tr}from"./BHvXyetp.js";import{I as Yt,B as er,b5 as Ir,b6 as ar,t as At,b7 as Fr,b8 as Or,b9 as Ut,ba as Vr,bb as Dr,bc as Lr,bd as Rr,be as Br,bf as dr,f as zr,n as jr,E as Ur}from"./D2L-5-73.js";import{g as qr,p as cr,s as ur}from"./Cik1Y8bQ.js";import{E as tr,a as vr,C as Hr,y as gr,m as mr,k as pr,l as Gr,h as Kr,b as Jr,c as Wr,f as Yr,d as Zr,e as Qr,g as Xr,s as ea,i as ta,j as ra,n as aa,o as na,p as sa,q as oa}from"./DM4-p3ZJ.js";import{P as la}from"./BX1Yz7rd.js";import{P as ia,a as da,b as ca}from"./DP2Cqb23.js";import{P as ua}from"./Bfse3fCo.js";import{T as va}from"./CjrslgAi.js";import{L as ga}from"./ycjTzGx9.js";import{C as fr}from"./gnFq108l.js";import{I as ye}from"./D7ozeA5b.js";import{T as ma}from"./DMYKaFD3.js";import{R as pa}from"./Bf45f0Vp.js";import{c as mt,S as pt,a as ft,b as _e}from"./DP3h6pcQ.js";import{C as fa}from"./D4fMMG5j.js";import{S as gt}from"./otBz_bAw.js";var ha=d('<div class="code-editor svelte-c4vs74"></div>');function ba(b,t){Ue(t,!0);let r=Mt(t,"readonly",3,!1),i=ie(void 0),l=ie(void 0);const E=new Hr;function u(){return tr.theme({"&":{backgroundColor:"var(--sig-bg)",color:"var(--sig-text-bright)",fontFamily:"var(--font-mono)",fontSize:"13px",height:"100%"},".cm-content":{caretColor:"var(--sig-text-bright)",fontFamily:"var(--font-mono)",lineHeight:"1.8",padding:"var(--space-md) 0"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--sig-text-bright)"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground":{backgroundColor:"rgba(255, 255, 255, 0.08) !important"},".cm-activeLine":{backgroundColor:"rgba(255, 255, 255, 0.03)"},".cm-gutters":{backgroundColor:"var(--sig-surface)",color:"var(--sig-text-muted)",border:"none",borderRight:"1px solid var(--sig-border)",fontFamily:"var(--font-mono)",fontSize:"11px"},".cm-activeLineGutter":{backgroundColor:"rgba(255, 255, 255, 0.04)",color:"var(--sig-text)"},".cm-foldGutter":{color:"var(--sig-text-muted)"},"&.cm-focused":{outline:"none"},".cm-matchingBracket":{backgroundColor:"rgba(255, 255, 255, 0.1)",color:"var(--sig-text-bright)"},".cm-searchMatch":{backgroundColor:"rgba(255, 255, 255, 0.12)"},".cm-selectionMatch":{backgroundColor:"rgba(255, 255, 255, 0.06)"},".cm-line":{padding:"0 var(--space-md)"},".cm-scroller":{overflow:"auto"}},{dark:!0})}function y(){return t.language==="yaml"?gr():t.language==="markdown"?mr():[]}function k(){const x=pr.of([{key:"Mod-s",run:()=>(t.onsave?.(),!0)}]);return[Gr(),Kr(),Jr(),Wr(),Yr(),Zr(),Qr(),Xr(),ea(oa,{fallback:!0}),pr.of([...ta,...ra,...aa,...na,...sa]),u(),E.of(y()),x,tr.updateListener.of(_=>{_.docChanged&&t.onchange?.(_.state.doc.toString())}),...r()?[vr.readOnly.of(!0)]:[]]}Sr(()=>{if(e(i))return w(l,new tr({state:vr.create({doc:t.value,extensions:k()}),parent:e(i)}),!0),()=>{e(l)?.destroy(),w(l,void 0)}}),xt(()=>{if(!e(l))return;const x=e(l).state.doc.toString();t.value!==x&&e(l).dispatch({changes:{from:0,to:x.length,insert:t.value}})}),xt(()=>{const x=t.language;e(l)&&e(l).dispatch({effects:E.reconfigure(x==="yaml"?gr():x==="markdown"?mr():[])})});var h=ha();sr(h,x=>w(i,x),()=>e(i)),s(b,h),qe()}function _a(b,t){Ue(t,!0);let r=Wt(t,["$$slots","$$events","$$legacy"]);const i=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"}],["circle",{cx:"12",cy:"12",r:"3"}]];Yt(b,Kt({name:"eye"},()=>r,{get iconNode(){return i},children:(l,E)=>{var u=Ee(),y=S(u);Ct(y,()=>t.children??Jt),s(l,u)},$$slots:{default:!0}})),qe()}var ya=d('<span> <span class="md-viewer-budget-pct svelte-ebmw30"> </span></span>'),xa=d('<span class="md-viewer-budget svelte-ebmw30"> </span>'),$a=d('<span class="md-viewer-save-meta svelte-ebmw30"> </span>'),Sa=d('<span class="md-viewer-save-meta svelte-ebmw30"> </span>'),ka=d("<!> <span>Preview</span>",1),wa=d("<!> <span>Edit</span>",1),Pa=d('<div class="md-viewer-prose prose svelte-ebmw30"></div>'),Ca=d('<div class="md-viewer svelte-ebmw30"><div class="md-viewer-toolbar svelte-ebmw30"><span class="md-viewer-filename svelte-ebmw30"><span class="md-viewer-path svelte-ebmw30">~/.agents/</span> </span> <!> <div class="md-viewer-actions svelte-ebmw30"><!> <!> <span> </span> <!> <!> <!></div></div> <!></div>');function Ea(b,t){Ue(t,!0);let r=Mt(t,"dirty",3,!1),i=Mt(t,"saving",3,!1),l=Mt(t,"saveDisabled",3,!1);function E(N){const z=N.match(/\sclass=(['"])(.*?)\1/i);if(!z)return`${N} class="md-boxed-heading"`;const re=z[1],q=z[2].split(/\s+/).filter(Boolean);return q.includes("md-boxed-heading")||q.push("md-boxed-heading"),N.replace(/\sclass=(['"])(.*?)\1/i,` class=${re}${q.join(" ")}${re}`)}function u(N){return N.replace(/<h([1-6])(\s[^>]*)?>([\s\S]*?)<\/h\1>/gi,(z,re,q="",ve="")=>{const be=E(q);return`<h${re}${be}>${ve}</h${re}>`})}let y=c(()=>t.content?.length??0),k=c(()=>t.charBudget?Math.round(e(y)/t.charBudget*100):0),h=ie(!1),x=c(()=>{if(!t.content)return"";const N=qr.parse(t.content,{async:!1});return u(N)});var _=Ca(),H=f(_),A=f(H),C=o(f(A),1,!0);p(A);var I=o(A,2);{var V=N=>{var z=ya();let re;var q=f(z),ve=o(q),be=f(ve);p(ve),p(z),ee((we,me)=>{re=It(z,1,"md-viewer-budget svelte-ebmw30",null,re,{"over-budget":e(y)>t.charBudget,"near-budget":e(k)>=80&&e(y)<=t.charBudget}),Y(q,`${we??""} / ${me??""} chars `),Y(be,`(${e(k)??""}%)`)},[()=>e(y).toLocaleString(),()=>t.charBudget.toLocaleString()]),s(N,z)},j=N=>{var z=xa(),re=f(z);p(z),ee(q=>Y(re,`${q??""} chars`),[()=>e(y).toLocaleString()]),s(N,z)};B(I,N=>{t.charBudget?N(V):N(j,-1)})}var U=o(I,2),F=f(U);{var G=N=>{var z=$a(),re=f(z,!0);p(z),ee(()=>Y(re,t.lastSavedText)),s(N,z)};B(F,N=>{t.lastSavedText&&N(G)})}var m=o(F,2);{var v=N=>{var z=Sa(),re=f(z,!0);p(z),ee(()=>Y(re,t.saveFeedback)),s(N,z)};B(m,N=>{t.saveFeedback&&N(v)})}var T=o(m,2);let P;var Z=f(T,!0);p(T);var ne=o(T,2);{var ge=N=>{er(N,{variant:"outline",size:"sm",class:`h-auto rounded-lg gap-1 font-[family-name:var(--font-mono)] text-[10px]
2
- font-medium uppercase tracking-[0.1em] px-2 py-[3px]
3
- text-[var(--sig-text-muted)] border-[var(--sig-border)]
4
- hover:text-[var(--sig-text)] hover:border-[var(--sig-border-strong)]`,get onclick(){return t.ondiscard},children:(z,re)=>{Ve();var q=nt("DISCARD");s(z,q)},$$slots:{default:!0}})};B(ne,N=>{e(h)&&r()&&t.ondiscard&&N(ge)})}var oe=o(ne,2);{var te=N=>{er(N,{variant:"outline",size:"sm",class:`h-auto rounded-lg gap-1 font-[family-name:var(--font-mono)] text-[10px]
5
- font-medium uppercase tracking-[0.1em] px-2 py-[3px]
6
- border-[var(--sig-accent)] text-[var(--sig-text-bright)]
7
- hover:bg-[var(--sig-text-bright)] hover:text-[var(--sig-bg)]
8
- hover:border-[var(--sig-text-bright)]`,get disabled(){return l()},get onclick(){return t.onsave},children:(z,re)=>{Ve();var q=nt();ee(()=>Y(q,i()?"SAVING...":"SAVE")),s(z,q)},$$slots:{default:!0}})};B(oe,N=>{e(h)&&t.onsave&&N(te)})}var $=o(oe,2);{let N=c(()=>e(h)?"Preview":"Edit");er($,{variant:"outline",size:"sm",class:`h-auto rounded-lg gap-1 font-[family-name:var(--font-mono)] text-[10px]
9
- font-medium uppercase tracking-[0.1em] px-2 py-[3px]
10
- text-[var(--sig-text)] border-[var(--sig-border-strong)]
11
- hover:text-[var(--sig-text-bright)] hover:border-[var(--sig-text-muted)]`,onclick:()=>w(h,!e(h)),get title(){return e(N)},children:(z,re)=>{var q=Ee(),ve=S(q);{var be=me=>{var ae=ka(),Pe=S(ae);_a(Pe,{size:13}),Ve(2),s(me,ae)},we=me=>{var ae=wa(),Pe=S(ae);la(Pe,{size:13}),Ve(2),s(me,ae)};B(ve,me=>{e(h)?me(be):me(we,-1)})}s(z,q)},$$slots:{default:!0}})}p(U),p(H);var K=o(H,2);{var se=N=>{ba(N,{get value(){return t.content},language:"markdown",get onchange(){return t.onchange},get onsave(){return t.onsave}})},Oe=N=>{var z=Pa();kr(z,()=>e(x),!0),p(z),s(N,z)};B(K,N=>{e(h)?N(se):N(Oe,-1)})}p(_),ee(()=>{Y(C,t.filename),P=It(T,1,"md-viewer-save-state svelte-ebmw30",null,P,{dirty:r()}),Y(Z,r()?"Unsaved changes":"All changes saved")}),s(b,_),qe()}function Na(b,t){Ue(t,!0);let r=Wt(t,["$$slots","$$events","$$legacy"]);const i=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"}],["path",{d:"M9 3v18"}],["path",{d:"m16 15-3-3 3-3"}]];Yt(b,Kt({name:"panel-left-close"},()=>r,{get iconNode(){return i},children:(l,E)=>{var u=Ee(),y=S(u);Ct(y,()=>t.children??Jt),s(l,u)},$$slots:{default:!0}})),qe()}var Aa=d('<div class="panel-collapsed svelte-1hz264f"><button type="button" class="collapse-toggle svelte-1hz264f" title="Open identity panel"><!></button></div>'),Ma=d('<span class="file-dirty svelte-1hz264f" title="Unsaved changes">&bull;</span>'),Ta=d('<button><span class="file-name svelte-1hz264f"> </span> <!> <span class="dropdown-arrow svelte-1hz264f">&#9662;</span></button>'),Ia=d('<button type="button"><span class="jump-num svelte-1hz264f"> </span> <span class="jump-name svelte-1hz264f"> </span></button>'),Fa=d('<div class="jump-empty svelte-1hz264f">No files found</div>'),Oa=d('<div class="jump-filter svelte-1hz264f"><input type="text" placeholder="Filter files..." class="svelte-1hz264f"/></div> <div class="jump-list svelte-1hz264f"><!> <!></div>',1),Va=d("<!> <!>",1),Da=d('<div class="budget-bar-container svelte-1hz264f"><div class="budget-bar-track svelte-1hz264f"><div class="budget-bar-fill svelte-1hz264f"></div></div> <span class="budget-label svelte-1hz264f"> </span></div>'),La=d('<div class="panel-editor svelte-1hz264f"><!></div>'),Ra=d('<div class="panel-empty svelte-1hz264f">No identity files found</div>'),Ba=d('<div class="identity-panel svelte-1hz264f"><header class="panel-header svelte-1hz264f"><div class="header-left svelte-1hz264f"><!></div> <button type="button" class="collapse-toggle svelte-1hz264f" title="Collapse panel"><!></button></header> <!> <!></div>');function za(b,t){Ue(t,!0);const r={"AGENTS.md":12e3,"MEMORY.md":1e4,"USER.md":6e3,"SOUL.md":4e3,"IDENTITY.md":2e3};let i=c(()=>t.configFiles?.filter($=>$.name.endsWith(".md"))??[]),l=ie(""),E=ie(""),u=ie(""),y=ie(!1),k=ie(Gt({})),h=ie(!1),x=ie(!1),_=ie(""),H=ie(null),A=c(()=>e(i).find($=>$.name===e(l))),C=c(()=>(e(k)[e(l)]??e(A)?.content??"")!==e(u)),I=c(()=>{const $=r[e(l)];return!$||!e(A)?null:Math.round(e(u).length/$*100)}),V=c(()=>e(_)?e(i).filter($=>$.name.toLowerCase().includes(e(_).toLowerCase())):e(i));xt(()=>{e(i).length&&!e(i).some($=>$.name===e(l))&&w(l,e(i)[0].name,!0)}),xt(()=>{for(const $ of e(i))e(k)[$.name]===void 0&&w(k,{...e(k),[$.name]:$.content},!0)}),xt(()=>{e(l)!==e(E)&&(w(E,e(l),!0),w(u,e(A)?.content??"",!0))}),xt(()=>(t.onDirtyChange?.(e(C)),Ir(e(C)),()=>{}));function j($){if(!e(h)){if($.key==="j"&&($.metaKey||$.ctrlKey)){$.preventDefault(),w(x,!0),setTimeout(()=>e(H)?.focus(),0);return}e(x)&&$.key==="Escape"&&($.preventDefault(),w(x,!1),w(_,""))}}function U($){$!==e(l)&&(e(C)&&!Or(`switch files from ${e(l)} to ${$}`)||(w(x,!1),w(_,""),w(l,$,!0)))}function F(){return e(I)===null?"var(--sig-text-muted)":e(I)>100?"var(--sig-danger)":e(I)>=80?"var(--sig-warning, #d4a017)":"var(--sig-success)"}function G($){if(!$)return"";try{return`Last saved ${new Date($).toLocaleTimeString()}`}catch{return""}}let m=ie(null),v=ie("");async function T(){if(!e(C))return;const $=e(u);w(y,!0);try{const K=await ar(e(l),$);K.ok?(w(k,{...e(k),[e(l)]:$},!0),w(m,new Date().toISOString(),!0),w(v,`Saved ${e(l)}`),At(e(v),"success")):(w(v,`Failed to save ${e(l)}`),At(`${e(v)}: ${K.error??"unknown error"}`,"error"))}finally{w(y,!1)}}function P(){e(A)&&(w(u,e(A).content,!0),w(k,{...e(k),[e(l)]:e(A).content},!0))}var Z={save:T,discard:P},ne=Ee();yr("keydown",xr,j);var ge=S(ne);{var oe=$=>{var K=Aa(),se=f(K),Oe=f(se);Fr(Oe,{size:14}),p(se),p(K),Ke("click",se,()=>w(h,!1)),s($,K)},te=$=>{var K=Ba(),se=f(K),Oe=f(se),N=f(Oe);W(N,()=>ca,(ae,Pe)=>{Pe(ae,{get open(){return e(x)},set open(Je){w(x,Je,!0)},children:(Je,Xe)=>{var Le=Va(),st=S(Le);{const lt=(it,We)=>{let n=()=>We?.().props;var g=Ta();Cr(g,()=>({...n(),type:"button",class:"file-selector"}),void 0,void 0,void 0,"svelte-1hz264f");var M=f(g),Q=f(M,!0);p(M);var et=o(M,2);{var Ye=Ie=>{var ct=Ma();s(Ie,ct)};B(et,Ie=>{e(C)&&Ie(Ye)})}Ve(2),p(g),ee(()=>Y(Q,e(l)||"Select file")),s(it,g)};W(st,()=>ia,(it,We)=>{We(it,{child:lt,$$slots:{child:!0}})})}var ot=o(st,2);W(ot,()=>da,(lt,it)=>{it(lt,{align:"start",side:"bottom",class:"jump-menu",children:(We,n)=>{var g=Oa(),M=S(g),Q=f(M);wr(Q),sr(Q,He=>w(H,He),()=>e(H)),p(M);var et=o(M,2),Ye=f(et);Te(Ye,19,()=>e(V),He=>He.name,(He,St,Rt)=>{var kt=Ia();let Vt;var Nt=f(kt),Bt=f(Nt,!0);p(Nt);var zt=o(Nt,2),ce=f(zt,!0);p(zt),p(kt),ee(()=>{Vt=It(kt,1,"jump-item svelte-1hz264f",null,Vt,{active:e(St).name===e(l)}),Y(Bt,e(Rt)+1),Y(ce,e(St).name)}),Ke("click",kt,()=>U(e(St).name)),s(He,kt)});var Ie=o(Ye,2);{var ct=He=>{var St=Fa();s(He,St)};B(Ie,He=>{e(V).length===0&&He(ct)})}p(et),Pr(Q,()=>e(_),He=>w(_,He)),s(We,g)},$$slots:{default:!0}})}),s(Je,Le)},$$slots:{default:!0}})}),p(Oe);var z=o(Oe,2),re=f(z);Na(re,{size:14}),p(z),p(se);var q=o(se,2);{var ve=ae=>{var Pe=Da(),Je=f(Pe),Xe=f(Je);p(Je);var Le=o(Je,2),st=f(Le);p(Le),p(Pe),ee((ot,lt,it,We,n)=>{ir(Xe,`width: ${ot??""}%; background: ${lt??""}`),ir(Le,`color: ${it??""}`),Y(st,`${We??""} / ${n??""} (${e(I)??""}%)`)},[()=>Math.min(e(I),100),F,F,()=>e(u).length.toLocaleString(),()=>r[e(l)]?.toLocaleString()]),s(ae,Pe)};B(q,ae=>{e(I)!==null&&ae(ve)})}var be=o(q,2);{var we=ae=>{var Pe=La(),Je=f(Pe);{let Xe=c(()=>!e(C)||e(y)),Le=c(()=>G(e(m)));Ea(Je,{get content(){return e(u)},get filename(){return e(l)},get charBudget(){return r[e(l)]},onchange:st=>{w(u,st,!0)},onsave:T,ondiscard:P,get dirty(){return e(C)},get saving(){return e(y)},get saveDisabled(){return e(Xe)},get lastSavedText(){return e(Le)},get saveFeedback(){return e(v)}})}p(Pe),s(ae,Pe)},me=ae=>{var Pe=Ra();s(ae,Pe)};B(be,ae=>{e(A)?ae(we):e(i).length===0&&ae(me,1)})}p(K),Ke("click",z,()=>w(h,!0)),s($,K)};B(ge,$=>{e(h)?$(oe):$(te,-1)})}return s(b,ne),qe(Z)}Lt(["click"]);const hr=["claude-code","codex","openclaw","opencode"],vt=[{key:"enabled",desc:"Master switch. Pipeline does nothing when disabled."},{key:"shadowMode",desc:"Run extraction and decisions without writing. Safe for evaluation."},{key:"mutationsFrozen",desc:"Emergency brake. Block all writes even if shadowMode is off."}],br=[{key:"allowUpdateDelete",desc:"Permit UPDATE/DELETE decisions on existing memories."},{key:"graphEnabled",desc:"Build and query a knowledge graph from extracted entity relationships."},{key:"autonomousEnabled",desc:"Allow autonomous pipeline operations like maintenance and repair."},{key:"autonomousFrozen",desc:"Block autonomous writes while still allowing autonomous reads."},{key:"semanticContradictionEnabled",desc:"Use LLM to detect semantic contradictions on update proposals. Adds latency but catches subtle conflicts."}],ja=[{key:"semanticContradictionTimeoutMs",label:"Contradiction timeout (ms)",desc:"Timeout for the semantic contradiction LLM call. Falls back to 'no contradiction' on timeout.",min:5e3,max:3e5,step:1e3}],Ua=[{key:"rerankerEnabled",desc:"Re-score recall candidates using full-content embedding similarity. No LLM call needed."}],qa=[{key:"extractionTimeout",label:"Extraction timeout (ms)",desc:"Timeout for the extraction LLM call.",min:5e3,max:3e5,step:1e3},{key:"minFactConfidenceForWrite",label:"Min fact confidence",desc:"Facts below this threshold are dropped. Lower captures more at the cost of noise.",min:0,max:1,step:.05}],Ha=[{key:"graphBoostWeight",label:"Graph boost weight",desc:"Score boost applied to graph-linked memories during search.",min:0,max:1,step:.05},{key:"rerankerTopN",label:"Reranker top N",desc:"Number of top candidates re-scored by embedding similarity.",min:1,max:100,step:1},{key:"rerankerTimeoutMs",label:"Reranker timeout (ms)",desc:"Timeout for the reranking pass. Original order returned on timeout.",min:100,max:3e4,step:100}],Ga=[{key:"workerPollMs",label:"Worker poll (ms)",desc:"How often the worker polls for pending jobs.",min:100,max:6e4,step:100},{key:"workerMaxRetries",label:"Worker max retries",desc:"Max retry attempts before a job goes to dead-letter.",min:1,max:10,step:1},{key:"leaseTimeoutMs",label:"Lease timeout (ms)",desc:"Time before an uncompleted job lease expires and is retried.",min:1e4,max:6e5,step:1e3},{key:"maintenanceIntervalMs",label:"Maintenance interval (ms)",desc:"How often the maintenance worker runs diagnostics.",min:6e4,max:864e5,step:6e4}],Ka=["agent.yaml","AGENT.yaml","config.yaml"];class Ja{#e=ie(Gt({}));get agent(){return e(this.#e)}set agent(t){w(this.#e,t,!0)}#t=ie(Gt({}));get config(){return e(this.#t)}set config(t){w(this.#t,t,!0)}#r=ie(!1);get saving(){return e(this.#r)}set saving(t){w(this.#r,t,!0)}#a=ie(null);get lastSavedAt(){return e(this.#a)}set lastSavedAt(t){w(this.#a,t,!0)}#n=ie("");get lastSaveFeedback(){return e(this.#n)}set lastSaveFeedback(t){w(this.#n,t,!0)}#s=ie(null);get agentFile(){return e(this.#s)}set agentFile(t){w(this.#s,t,!0)}#o=ie(null);get configFile(){return e(this.#o)}set configFile(t){w(this.#o,t,!0)}#l=ie("{}");get agentSnapshot(){return e(this.#l)}set agentSnapshot(t){w(this.#l,t,!0)}#i=ie("{}");get configSnapshot(){return e(this.#i)}set configSnapshot(t){w(this.#i,t,!0)}#d=c(()=>Ka.find(t=>this.agentFile?.name===t||this.configFile?.name===t)??null);get settingsFileName(){return e(this.#d)}set settingsFileName(t){w(this.#d,t)}#c=c(()=>this.settingsFileName==="agent.yaml"||this.settingsFileName==="AGENT.yaml");get settingsIsSameAsAgent(){return e(this.#c)}set settingsIsSameAsAgent(t){w(this.#c,t)}#u=c(()=>!!this.agentFile||!!this.configFile);get hasFiles(){return e(this.#u)}set hasFiles(t){w(this.#u,t)}#v=c(()=>this.agentSnapshot!==JSON.stringify(this.agent)||!this.settingsIsSameAsAgent&&this.configSnapshot!==JSON.stringify(this.config));get isDirty(){return e(this.#v)}set isDirty(t){w(this.#v,t)}lastInitSource=null;init(t){if(!(this.lastInitSource===t&&this.hasFiles)){if(this.lastInitSource=t,this.agentFile=t.find(r=>r.name==="agent.yaml"||r.name==="AGENT.yaml")??null,this.configFile=t.find(r=>r.name==="config.yaml")??null,this.agentFile?.content)try{this.agent=JSON.parse(JSON.stringify(cr(this.agentFile.content)??{}))}catch{this.agent={}}else this.agent={};if(this.configFile?.content)try{this.config=JSON.parse(JSON.stringify(cr(this.configFile.content)??{}))}catch{this.config={}}else this.config={};this.agentSnapshot=JSON.stringify(this.agent),this.configSnapshot=JSON.stringify(this.config),this.lastSaveFeedback=""}}get(t,...r){let i=t;for(const l of r){if(i==null||typeof i!="object"||Array.isArray(i))return null;i=i[l]??null}return i}set(t,r,i){let l=t;for(let E=0;E<r.length-1;E++){const u=r[E];(l[u]==null||typeof l[u]!="object"||Array.isArray(l[u]))&&(l[u]={}),l=l[u]}l[r[r.length-1]]=i}sObj(){return this.settingsIsSameAsAgent?this.agent:this.config}aStr(t){return String(this.get(this.agent,...t)??"")}aNum(t){const r=this.get(this.agent,...t);return typeof r=="number"?r:r?Number(r):""}toBool(t){if(typeof t=="boolean")return t;if(typeof t=="string"){const r=t.trim().toLowerCase();if(r==="true")return!0;if(r==="false")return!1}return t===1?!0:t===0?!1:null}aBool(t){const r=this.toBool(this.get(this.agent,...t));return r!==null?r:this.pipelineDefault(t)??!1}pipelineDefault(t){const r={enabled:!0,shadowMode:!1,mutationsFrozen:!1,allowUpdateDelete:!0,graphEnabled:!0,autonomousEnabled:!0,autonomousFrozen:!1,semanticContradictionEnabled:!0,rerankerEnabled:!0},i={enabled:!0},l={agentFeedback:!0,trainingTelemetry:!1},E={rehearsal_enabled:!0};if(t[0]==="memory"&&t[1]==="pipelineV2"){if(t.length===3){const u=t[2];if(u in r)return r[u]}if(t.length===4&&t[2]==="predictor"){const u=t[3];if(u in i)return i[u]}if(t.length===4&&t[2]==="predictorPipeline"){const u=t[3];if(u in l)return l[u]}}if(t[0]==="search"){const u=t[t.length-1];if(u in E)return E[u]}return null}aSetStr(t,r){this.set(this.agent,t,r)}aSetNum(t,r){this.set(this.agent,t,r===""?null:Number(r))}aSetBool(t,r){this.set(this.agent,t,r)}sStr(t){return String(this.get(this.sObj(),...t)??"")}sNum(t){const r=this.get(this.sObj(),...t);return typeof r=="number"?r:r?Number(r):""}sBool(t){const r=this.toBool(this.get(this.sObj(),...t));return r!==null?r:this.pipelineDefault(t)??!1}sSetStr(t,r){this.set(this.sObj(),t,r)}sSetNum(t,r){this.set(this.sObj(),t,r===""?null:Number(r))}sSetBool(t,r){this.set(this.sObj(),t,r)}embPath(){const t=this.sObj();return this.get(t,"embedding")!=null?["embedding"]:this.get(t,"memory","embeddings")!=null?["memory","embeddings"]:["embeddings"]}harnessArray(){const t=this.get(this.agent,"harnesses");return Array.isArray(t)?t.map(String):[]}toggleHarness(t,r){const i=this.harnessArray();this.set(this.agent,["harnesses"],r?[...i,t]:i.filter(l=>l!==t))}addCustomHarness(t){if(t=t.trim(),!t)return;const r=this.harnessArray();r.includes(t)||this.set(this.agent,["harnesses"],[...r,t])}removeCustomHarness(t){this.set(this.agent,["harnesses"],this.harnessArray().filter(r=>r!==t))}isPathDirty(t,r){const i=t==="agent"?this.agent:this.config,l=JSON.parse(t==="agent"?this.agentSnapshot:this.configSnapshot),E=JSON.stringify(this.get(i,...r)),u=JSON.stringify(this.get(l,...r));return E!==u}isAnyPathDirty(t,r){return r.some(i=>this.isPathDirty(t,i))}reset(){try{this.agent=JSON.parse(this.agentSnapshot)}catch{this.agent={}}try{this.config=JSON.parse(this.configSnapshot)}catch{this.config={}}this.lastSaveFeedback="Changes discarded"}async save(){if(!this.isDirty){this.lastSaveFeedback="No changes to save";return}this.saving=!0;const t=[],r=[];try{if(this.agentFile){const i=await ar(this.agentFile.name,ur(this.agent));i.ok?(t.push(this.agentFile.name),this.agentSnapshot=JSON.stringify(this.agent)):r.push({file:this.agentFile.name,error:i.error??`HTTP ${i.status}`})}if(!this.settingsIsSameAsAgent&&this.settingsFileName){const i=await ar(this.settingsFileName,ur(this.config));i.ok?(t.push(this.settingsFileName),this.configSnapshot=JSON.stringify(this.config)):r.push({file:this.settingsFileName,error:i.error??`HTTP ${i.status}`})}t.length>0&&(this.lastSavedAt=new Date().toISOString(),this.lastInitSource=null),r.length===0&&t.length>0?(this.lastSaveFeedback=`Saved ${t.join(", ")}`,At(this.lastSaveFeedback,"success")):r.length>0&&t.length>0?(this.lastSaveFeedback=`Saved ${t.join(", ")}; failed ${r.map(i=>i.file).join(", ")}`,At(`${this.lastSaveFeedback}: ${r.map(i=>`${i.file} (${i.error})`).join(", ")}`,"warning",5e3)):r.length>0&&(this.lastSaveFeedback=`Failed to save ${r.map(i=>i.file).join(", ")}`,At(`${this.lastSaveFeedback}: ${r.map(i=>`${i.file} (${i.error})`).join(", ")}`,"error",5e3))}catch(i){this.lastSaveFeedback="Save failed",At(`Error: ${String(i)}`,"error")}finally{this.saving=!1}}}const a=new Ja;var Wa=d(`<span class="block text-[10px] font-normal text-[var(--sig-text-muted)]
12
- normal-case tracking-[0.02em] mt-px"> </span>`),Ya=d(" <!>",1),Za=d('<div class="flex flex-col gap-1"><!> <div class="flex flex-col"><!></div></div>'),Qa=d('<span class="field-desc svelte-q7r181"> </span>'),Xa=d(`<div class="form-field-horizontal svelte-q7r181"><div class="field-label svelte-q7r181"><span class="font-[family-name:var(--font-mono)] text-[11px] font-medium
13
- text-[var(--sig-text-bright)] uppercase tracking-[0.06em]"> </span> <!></div> <div class="field-input svelte-q7r181"><!></div></div>`);function R(b,t){let r=Mt(t,"layout",3,"horizontal");var i=Ee(),l=S(i);{var E=y=>{var k=Za(),h=f(k);ga(h,{class:`font-[family-name:var(--font-mono)] text-[11px] font-medium
14
- text-[var(--sig-text-bright)] uppercase tracking-[0.06em]`,children:(H,A)=>{Ve();var C=Ya(),I=S(C),V=o(I);{var j=U=>{var F=Wa(),G=f(F,!0);p(F),ee(()=>Y(G,t.description)),s(U,F)};B(V,U=>{t.description&&U(j)})}ee(()=>Y(I,`${t.label??""} `)),s(H,C)},$$slots:{default:!0}});var x=o(h,2),_=f(x);Ct(_,()=>t.children),p(x),p(k),s(y,k)},u=y=>{var k=Xa(),h=f(k),x=f(h),_=f(x,!0);p(x);var H=o(x,2);{var A=V=>{var j=Qa(),U=f(j,!0);p(j),ee(()=>Y(U,t.description)),s(V,j)};B(H,V=>{t.description&&V(A)})}p(h);var C=o(h,2),I=f(C);Ct(I,()=>t.children),p(C),p(k),ee(()=>Y(_,t.label)),s(y,k)};B(l,y=>{r()==="vertical"?y(E):y(u,-1)})}s(b,i)}var en=d('<p class="section-description svelte-y82w7w"> </p>'),tn=d('<div class="form-section svelte-y82w7w"><!> <div class="fields-container svelte-y82w7w"><!></div></div>');function $t(b,t){var r=tn(),i=f(r);{var l=y=>{var k=en(),h=f(k,!0);p(k),ee(()=>Y(h,t.description)),s(y,k)};B(i,y=>{t.description&&y(l)})}var E=o(i,2),u=f(E);Ct(u,()=>t.children),p(E),p(r),s(b,r)}var rn=d('<label class="harness-item svelte-173ahh7"><!> <span class="harness-name svelte-173ahh7"> </span></label>'),an=d('<label class="harness-item svelte-173ahh7"><!> <span class="harness-name svelte-173ahh7"> </span> <span class="harness-badge svelte-173ahh7">custom</span></label>'),nn=d('<div class="harness-grid svelte-173ahh7"><!> <!></div>'),sn=d('<div class="add-harness svelte-173ahh7"><!> <button type="button" class="add-btn svelte-173ahh7">Add</button></div>'),on=d("<!> <!> <!> <!> <!> <!>",1);function ln(b,t){Ue(t,!0);let r=ie("");function i(h){if(!h)return"";try{return new Date(String(h)).toLocaleString()}catch{return String(h)}}function l(h){return x=>{a.aSetStr(h,x.currentTarget.value)}}function E(){a.addCustomHarness(e(r)),w(r,"")}var u=Ee(),y=S(u);{var k=h=>{$t(h,{description:"Core identity metadata and harness configuration. Created by signet setup, synced to all active harnesses on change.",children:(x,_)=>{var H=on(),A=S(H);R(A,{label:"Name",description:"Display name shown in harness configs and session context.",children:(F,G)=>{{let m=c(()=>a.aStr(["agent","name"])),v=c(()=>l(["agent","name"]));ye(F,{get value(){return e(m)},get oninput(){return e(v)}})}},$$slots:{default:!0}});var C=o(A,2);R(C,{label:"Description",description:"Short description of the agent's role and purpose.",children:(F,G)=>{{let m=c(()=>a.aStr(["agent","description"])),v=c(()=>l(["agent","description"]));ma(F,{rows:3,get value(){return e(m)},get oninput(){return e(v)}})}},$$slots:{default:!0}});var I=o(C,2);R(I,{label:"Created",description:"ISO 8601 creation timestamp. Read-only.",children:(F,G)=>{{let m=c(()=>i(a.get(a.agent,"agent","created")));ye(F,{class:"text-[var(--sig-text-muted)] cursor-default",readonly:!0,get value(){return e(m)}})}},$$slots:{default:!0}});var V=o(I,2);R(V,{label:"Updated",description:"ISO 8601 last update timestamp. Read-only.",children:(F,G)=>{{let m=c(()=>i(a.get(a.agent,"agent","updated")));ye(F,{class:"text-[var(--sig-text-muted)] cursor-default",readonly:!0,get value(){return e(m)}})}},$$slots:{default:!0}});var j=o(V,2);R(j,{label:"Active harnesses",description:"Supported: claude-code, codex, openclaw, opencode. Cursor, windsurf, chatgpt, and gemini are planned.",children:(F,G)=>{var m=nn(),v=f(m);Te(v,16,()=>hr,P=>P,(P,Z)=>{var ne=rn(),ge=f(ne);{let $=c(()=>a.harnessArray().includes(Z));fr(ge,{get checked(){return e($)},onCheckedChange:K=>a.toggleHarness(Z,!!K)})}var oe=o(ge,2),te=f(oe,!0);p(oe),p(ne),ee(()=>Y(te,Z)),s(P,ne)});var T=o(v,2);Te(T,16,()=>a.harnessArray().filter(P=>!hr.includes(P)),P=>P,(P,Z)=>{var ne=an(),ge=f(ne);fr(ge,{checked:!0,onCheckedChange:()=>a.removeCustomHarness(Z)});var oe=o(ge,2),te=f(oe,!0);p(oe),Ve(2),p(ne),ee(()=>Y(te,Z)),s(P,ne)}),p(m),s(F,m)},$$slots:{default:!0}});var U=o(j,2);R(U,{label:"Add custom harness",description:"Add a custom harness name for third-party integrations.",layout:"vertical",children:(F,G)=>{var m=sn(),v=f(m);ye(v,{placeholder:"harness-name",onkeydown:P=>{P.key==="Enter"&&E()},get value(){return e(r)},set value(P){w(r,P,!0)}});var T=o(v,2);p(m),Ke("click",T,E),s(F,m)},$$slots:{default:!0}}),s(x,H)}})};B(y,h=>{a.agentFile&&h(k)})}s(b,u),qe()}Lt(["click"]);function dn(b,t){Ue(t,!0);let r=Wt(t,["$$slots","$$events","$$legacy"]);const i=[["circle",{cx:"11",cy:"11",r:"8"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11"}]];Yt(b,Kt({name:"zoom-in"},()=>r,{get iconNode(){return i},children:(l,E)=>{var u=Ee(),y=S(u);Ct(y,()=>t.children??Jt),s(l,u)},$$slots:{default:!0}})),qe()}function cn(b,t){Ue(t,!0);let r=Wt(t,["$$slots","$$events","$$legacy"]);const i=[["circle",{cx:"11",cy:"11",r:"8"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11"}]];Yt(b,Kt({name:"zoom-out"},()=>r,{get iconNode(){return i},children:(l,E)=>{var u=Ee(),y=S(u);Ct(y,()=>t.children??Jt),s(l,u)},$$slots:{default:!0}})),qe()}var qt=Nr(()=>Rr),un=d('<button type="button"><div class="mode-icon svelte-1q8urv6"><!></div> <div class="mode-info svelte-1q8urv6"><span class="mode-label svelte-1q8urv6"> </span> <span class="mode-desc svelte-1q8urv6"> </span></div></button>'),vn=d('<div class="mode-grid svelte-1q8urv6"></div>'),gn=d('<span class="not-available svelte-1q8urv6">Run Signet as a desktop app to configure window decorations.</span>'),mn=d('<div class="scale-control svelte-1q8urv6"><button class="scale-btn svelte-1q8urv6" title="Zoom out (Ctrl+-)" aria-label="Zoom out"><!></button> <span class="scale-value svelte-1q8urv6"> </span> <button class="scale-btn svelte-1q8urv6" title="Zoom in (Ctrl+=)" aria-label="Zoom in"><!></button> <button class="scale-btn scale-btn--reset svelte-1q8urv6" title="Reset (Ctrl+0)" aria-label="Reset zoom"><!></button></div>'),pn=d("<!> <!>",1);function fn(b,t){Ue(t,!1);const r=typeof window<"u"&&"__TAURI_INTERNALS__"in window,i=[{id:"macos",label:"macOS",icon:Vr,desc:"Traffic light buttons, centered title"},{id:"windows",label:"Windows",icon:Dr,desc:"Minimize / maximize / close on right"},{id:"none",label:"None",icon:Lr,desc:"No window titlebar"}];Ft(),$t(b,{description:"Local display preferences. These settings are stored in your browser and not synced.",children:(l,E)=>{var u=pn(),y=S(u);{var k=_=>{R(_,{label:"Window decorations",description:"Controls how the window titlebar and controls are rendered.",children:(H,A)=>{var C=vn();Te(C,5,()=>i,I=>I.id,(I,V)=>{var j=un();let U;var F=f(j),G=f(F);e(V).icon(G,{size:18}),p(F);var m=o(F,2),v=f(m),T=f(v,!0);p(v);var P=o(v,2),Z=f(P,!0);p(P),p(m),p(j),ee(()=>{U=It(j,1,"mode-card svelte-1q8urv6",null,U,{"mode-card--active":qt().mode===e(V).id}),Er(j,"aria-pressed",qt().mode===e(V).id),Y(T,e(V).label),Y(Z,e(V).desc)}),Ke("click",j,()=>qt(qt().mode=e(V).id)),s(I,j)}),p(C),s(H,C)},$$slots:{default:!0}})},h=_=>{R(_,{label:"Window decorations",description:"Only available in the desktop app.",children:(H,A)=>{var C=gn();s(H,C)},$$slots:{default:!0}})};B(y,_=>{r?_(k):_(h,-1)})}var x=o(y,2);R(x,{label:"UI scale",description:"Adjust text and spacing size. Icons remain crisp at all levels. Ctrl+/- or Ctrl+0 to reset.",children:(_,H)=>{var A=mn(),C=f(A),I=f(C);cn(I,{size:14}),p(C);var V=o(C,2),j=f(V,!0);p(V);var U=o(V,2),F=f(U);dn(F,{size:14}),p(U);var G=o(U,2),m=f(G);pa(m,{size:12}),p(G),p(A),ee(()=>Y(j,Ut.percent)),Ke("click",C,()=>Ut.zoomOut()),Ke("click",U,()=>Ut.zoomIn()),Ke("click",G,()=>Ut.reset()),s(_,A)},$$slots:{default:!0}}),s(l,u)}}),qe()}Lt(["click"]);var hn=d("<!> <!>",1),bn=d("<!> <!>",1),_n=d("<!> <!>",1),yn=d("<!> <!>",1),xn=d("<!> <!> <!>",1);function $n(b,t){Ue(t,!1);const r="font-[family-name:var(--font-mono)] text-[11px] text-[var(--sig-text)] bg-[var(--sig-bg)] border-[var(--sig-border-strong)] rounded-lg w-full h-auto min-h-[30px] px-2 py-[5px] box-border focus-visible:border-[var(--sig-accent)]",i="font-[family-name:var(--font-mono)] text-[11px] bg-[var(--sig-bg)] text-[var(--sig-text)] border-[var(--sig-border-strong)] rounded-lg",l="font-[family-name:var(--font-mono)] text-[11px] rounded-lg";function E(x){return _=>{a.aSetStr(x,_??"")}}function u(x){return _=>{a.aSetNum(x,_.currentTarget.value)}}Ft();var y=Ee(),k=S(y);{var h=x=>{$t(x,{description:"Authentication for the daemon API. Optional — disabled in local mode. Uses HMAC-SHA256 signed tokens.",children:(_,H)=>{var A=xn(),C=S(A);R(C,{label:"Method",description:"Signing method for auth tokens. erc8128 uses wallet signatures, gpg/did use alternative signing.",children:(j,U)=>{{let F=de(()=>a.aStr(["auth","method"])),G=de(()=>E(["auth","method"]));mt(j,{type:"single",get value(){return e(F)},get onValueChange(){return e(G)},children:(m,v)=>{var T=bn(),P=S(T);pt(P,{class:r,children:(ne,ge)=>{Ve();var oe=nt();ee(te=>Y(oe,te),[()=>a.aStr(["auth","method"])||"— select —"]),s(ne,oe)},$$slots:{default:!0}});var Z=o(P,2);ft(Z,{class:i,children:(ne,ge)=>{var oe=hn(),te=S(oe);_e(te,{class:l,value:"",label:"— select —"});var $=o(te,2);Te($,0,()=>["none","erc8128","gpg","did"],K=>K,(K,se)=>{_e(K,{class:l,get value(){return se},get label(){return se}})}),s(ne,oe)},$$slots:{default:!0}}),s(m,T)},$$slots:{default:!0}})}},$$slots:{default:!0}});var I=o(C,2);R(I,{label:"Mode",description:"local = no auth required (localhost only). team = tokens required for all requests. hybrid = localhost skips auth, remote requires tokens.",children:(j,U)=>{{let F=de(()=>a.aStr(["auth","mode"])),G=de(()=>E(["auth","mode"]));mt(j,{type:"single",get value(){return e(F)},get onValueChange(){return e(G)},children:(m,v)=>{var T=yn(),P=S(T);pt(P,{class:r,children:(ne,ge)=>{Ve();var oe=nt();ee(te=>Y(oe,te),[()=>a.aStr(["auth","mode"])||"— select —"]),s(ne,oe)},$$slots:{default:!0}});var Z=o(P,2);ft(Z,{class:i,children:(ne,ge)=>{var oe=_n(),te=S(oe);_e(te,{class:l,value:"",label:"— select —"});var $=o(te,2);Te($,0,()=>["local","team","hybrid"],K=>K,(K,se)=>{_e(K,{class:l,get value(){return se},get label(){return se}})}),s(ne,oe)},$$slots:{default:!0}}),s(m,T)},$$slots:{default:!0}})}},$$slots:{default:!0}});var V=o(I,2);R(V,{label:"Chain ID",description:"Ethereum chain ID for ERC-8128 signature verification. Default: 1 (mainnet).",children:(j,U)=>{{let F=de(()=>a.aNum(["auth","chainId"])),G=de(()=>u(["auth","chainId"]));ye(j,{type:"number",get value(){return e(F)},get oninput(){return e(G)}})}},$$slots:{default:!0}}),s(_,A)}})};B(k,x=>{a.agentFile&&x(h)})}s(b,y),qe()}var Sn=d("<!> <!>",1),kn=d("<!> <!>",1),wn=d("<!> <!> <!>",1),Pn=d("<!> <!>",1),Cn=d('<div class="flex flex-col gap-2"><!> <!></div>'),En=d('<div class="flex items-center gap-2 px-3 py-2 text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-warning,#d4a017)] bg-[color-mix(in_srgb,var(--sig-warning,#d4a017)_10%,transparent)] border border-[var(--sig-warning,#d4a017)]">(!) Changing provider or model will re-embed your entire memory database</div> <!> <!> <!>',1),Nn=d("<!> <!>",1);function An(b,t){Ue(t,!1);const r="font-[family-name:var(--font-mono)] text-[11px] text-[var(--sig-text)] bg-[var(--sig-bg)] border-[var(--sig-border-strong)] rounded-lg w-full h-auto min-h-[30px] px-2 py-[5px] box-border focus-visible:border-[var(--sig-accent)]",i="font-[family-name:var(--font-mono)] text-[11px] bg-[var(--sig-bg)] text-[var(--sig-text)] border-[var(--sig-border-strong)] rounded-lg",l="font-[family-name:var(--font-mono)] text-[11px] rounded-lg",E="http://localhost:11434",u="https://api.openai.com/v1",y=[{value:"native",label:"native (built-in)"},{value:"ollama",label:"ollama"},{value:"openai",label:"openai"},{value:"none",label:"none (disable vectors)"}],k={native:[{value:"nomic-embed-text-v1.5",label:"nomic-embed-text-v1.5",dimensions:768}],ollama:[{value:"nomic-embed-text",label:"nomic-embed-text (recommended)",dimensions:768},{value:"all-minilm",label:"all-minilm",dimensions:384},{value:"mxbai-embed-large",label:"mxbai-embed-large",dimensions:1024}],openai:[{value:"text-embedding-3-small",label:"text-embedding-3-small (recommended)",dimensions:1536},{value:"text-embedding-3-large",label:"text-embedding-3-large",dimensions:3072}],none:[]};function h(){return a.embPath()}function x(){const m=a.sStr([...h(),"provider"]);return m in k?m:""}function _(){const m=x();return m?k[m]:[]}function H(){const m=a.sStr([...h(),"model"]);return m?_().some(v=>v.value===m)?m:"__custom__":""}function A(m){return Object.values(k).some(v=>v.some(T=>T.value===m))}function C(m){return m==="ollama"?E:m==="openai"?u:""}function I(m){const v=a.sStr([...h(),"model"]),T=a.sStr([...h(),"base_url"]),Z=k[m][0];(!v||A(v))&&Z&&(a.sSetStr([...h(),"model"],Z.value),a.sSetNum([...h(),"dimensions"],Z.dimensions));const ne=C(m);(T===""||T===E||T===u)&&a.sSetStr([...h(),"base_url"],ne)}function V(m){const v=m??"";a.sSetStr([...h(),"provider"],v),v&&v!=="none"&&I(v)}function j(m){if(!m||m==="__custom__")return;const v=_().find(T=>T.value===m);v&&(a.sSetStr([...h(),"model"],v.value),a.sSetNum([...h(),"dimensions"],v.dimensions))}Ft();var U=Ee(),F=S(U);{var G=m=>{$t(m,{description:"Vector embedding configuration for semantic memory search. Provider defaults keep model, dimensions, and base URL aligned so search does not drift into a broken state.",children:(v,T)=>{var P=Nn(),Z=S(P);R(Z,{label:"Provider",description:"Embedding backend. Native runs built-in. Ollama runs locally. OpenAI uses the official embeddings API and requires an API key.",children:(te,$)=>{{let K=de(()=>a.sStr([...h(),"provider"]));mt(te,{type:"single",get value(){return e(K)},onValueChange:V,children:(se,Oe)=>{var N=kn(),z=S(N);pt(z,{class:r,children:(q,ve)=>{Ve();var be=nt();ee(we=>Y(be,we),[()=>a.sStr([...h(),"provider"])||"— select —"]),s(q,be)},$$slots:{default:!0}});var re=o(z,2);ft(re,{class:i,children:(q,ve)=>{var be=Sn(),we=S(be);_e(we,{class:l,value:"",label:"— select —"});var me=o(we,2);Te(me,1,()=>y,ae=>ae.value,(ae,Pe)=>{_e(ae,{class:l,get value(){return e(Pe).value},get label(){return e(Pe).label}})}),s(q,be)},$$slots:{default:!0}}),s(se,N)},$$slots:{default:!0}})}},$$slots:{default:!0}});var ne=o(Z,2);{var ge=te=>{var $=En(),K=o(S($),2);R(K,{label:"Model",description:"Choose a recommended default or switch to custom for a specific embedding model. OpenAI's closest general-purpose replacement for the built-in nomic default is text-embedding-3-small.",children:(ve,be)=>{var we=Cn(),me=f(we);{let Xe=de(H);mt(me,{type:"single",get value(){return e(Xe)},onValueChange:j,children:(Le,st)=>{var ot=Pn(),lt=S(ot);pt(lt,{class:r,children:(We,n)=>{Ve();var g=nt();ee(M=>Y(g,M),[()=>H()==="__custom__"?`custom: ${a.sStr([...h(),"model"])}`:a.sStr([...h(),"model"])||"— select —"]),s(We,g)},$$slots:{default:!0}});var it=o(lt,2);ft(it,{class:i,children:(We,n)=>{var g=wn(),M=S(g);_e(M,{class:l,value:"",label:"— select —"});var Q=o(M,2);Te(Q,1,_,Ye=>Ye.value,(Ye,Ie)=>{_e(Ye,{class:l,get value(){return e(Ie).value},get label(){return e(Ie).label}})});var et=o(Q,2);_e(et,{class:l,value:"__custom__",label:"custom"}),s(We,g)},$$slots:{default:!0}}),s(Le,ot)},$$slots:{default:!0}})}var ae=o(me,2);{var Pe=Xe=>{{let Le=de(()=>a.sStr([...h(),"model"]));ye(Xe,{get value(){return e(Le)},oninput:st=>a.sSetStr([...h(),"model"],st.currentTarget.value),placeholder:"custom model id"})}},Je=c(()=>H()==="__custom__"||_().length===0);B(ae,Xe=>{e(Je)&&Xe(Pe)})}p(we),s(ve,we)},$$slots:{default:!0}});var se=o(K,2);{var Oe=ve=>{R(ve,{label:"Base URL",description:"Ollama defaults to http://localhost:11434. OpenAI defaults to https://api.openai.com/v1. Switching providers keeps the matching default unless you override it.",children:(be,we)=>{{let me=de(()=>a.sStr([...h(),"base_url"]));ye(be,{get value(){return e(me)},oninput:ae=>a.sSetStr([...h(),"base_url"],ae.currentTarget.value)})}},$$slots:{default:!0}})},N=c(()=>x()==="ollama"||x()==="openai");B(se,ve=>{e(N)&&ve(Oe)})}var z=o(se,2);{var re=ve=>{R(ve,{label:"API Key",description:"Required for OpenAI. Use $secret:OPENAI_API_KEY to reference a stored secret instead of plaintext.",children:(be,we)=>{{let me=de(()=>a.sStr([...h(),"api_key"]));ye(be,{type:"password",get value(){return e(me)},oninput:ae=>a.sSetStr([...h(),"api_key"],ae.currentTarget.value),placeholder:"$secret:OPENAI_API_KEY"})}},$$slots:{default:!0}})},q=c(()=>x()==="openai");B(z,ve=>{e(q)&&ve(re)})}s(te,$)},oe=c(()=>x()&&x()!=="none");B(ne,te=>{e(oe)&&te(ge)})}s(v,P)}})};B(F,m=>{a.settingsFileName&&m(G)})}s(b,U),qe()}var Mn=d('<div class="advanced-content svelte-lvje7k"><!></div>'),Tn=d('<div class="advanced-section svelte-lvje7k"><button type="button" class="advanced-toggle svelte-lvje7k"><!> <span> </span></button> <!></div>');function or(b,t){let r=Mt(t,"title",3,"Advanced"),i=ie(!1);var l=Tn(),E=f(l),u=f(E);{let _=c(()=>e(i)?"rotated":"");fa(u,{get class(){return`toggle-icon ${e(_)??""}`},size:12})}var y=o(u,2),k=f(y,!0);p(y),p(E);var h=o(E,2);{var x=_=>{var H=Mn(),A=f(H);Ct(A,()=>t.children),p(H),s(_,H)};B(h,_=>{e(i)&&_(x)})}p(l),ee(()=>Y(k,r())),Ke("click",E,()=>w(i,!e(i))),s(b,l)}Lt(["click"]);var In=d(`<p class="text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-warning,#d4a017)] mb-3">Changing paths can break your setup. Only modify if you know what you're doing.</p> <!> <!>`,1),Fn=d("<!> <!> <!> <!>",1);function On(b,t){Ue(t,!1),Ft();var r=Ee(),i=S(r);{var l=E=>{$t(E,{description:"Memory system settings. Controls how much context is injected into sessions and how memories age over time.",children:(u,y)=>{var k=Fn(),h=S(k);R(h,{label:"Session budget",description:"Character limit for context injected at session start via hooks. Default: 2000.",children:(A,C)=>{{let I=de(()=>a.sNum(["memory","session_budget"]));ye(A,{type:"number",get value(){return e(I)},oninput:V=>a.sSetNum(["memory","session_budget"],V.currentTarget.value)})}},$$slots:{default:!0}});var x=o(h,2);R(x,{label:"MEMORY.md budget",description:"Character limit for the auto-generated MEMORY.md summary. Default: 10000.",children:(A,C)=>{{let I=de(()=>a.sNum(["memory","current_md_budget"]));ye(A,{type:"number",get value(){return e(I)},oninput:V=>a.sSetNum(["memory","current_md_budget"],V.currentTarget.value)})}},$$slots:{default:!0}});var _=o(x,2);R(_,{label:"Decay rate",description:"Daily importance decay factor for non-pinned memories. Formula: importance(t) = base × decay_rate^days. 0.99 = slow, 0.95 = default, 0.90 = fast.",children:(A,C)=>{{let I=de(()=>a.sNum(["memory","decay_rate"]));ye(A,{type:"number",min:"0",max:"1",step:"0.01",get value(){return e(I)},oninput:V=>a.sSetNum(["memory","decay_rate"],V.currentTarget.value)})}},$$slots:{default:!0}});var H=o(_,2);or(H,{children:(A,C)=>{var I=In(),V=o(S(I),2);R(V,{label:"Database path",description:"SQLite database file for structured memory storage.",children:(U,F)=>{{let G=de(()=>a.sStr(["paths","database"]));ye(U,{get value(){return e(G)},oninput:m=>a.sSetStr(["paths","database"],m.currentTarget.value)})}},$$slots:{default:!0}});var j=o(V,2);R(j,{label:"MEMORY.md path",description:"Output path for the auto-generated working memory summary.",children:(U,F)=>{{let G=de(()=>a.sStr(["paths","current_md"]));ye(U,{get value(){return e(G)},oninput:m=>a.sSetStr(["paths","current_md"],m.currentTarget.value)})}},$$slots:{default:!0}}),s(A,I)},$$slots:{default:!0}}),s(u,k)}})};B(i,E=>{a.settingsFileName&&E(l)})}s(b,r),qe()}var Vn=d("<!> <!>",1),Dn=d('<div class="mt-3 px-3 py-2 text-[10px] font-[family-name:var(--font-mono)] text-[var(--sig-warning,#d4a017)] bg-[color-mix(in_srgb,var(--sig-warning,#d4a017)_10%,transparent)] border border-[var(--sig-warning,#d4a017)]">Tailscale mode with local auth exposes the dashboard and API to other devices on your tailnet. Switch auth.mode before saving if you do not want shared access.</div>'),Ln=d("<!> <!>",1);function Rn(b,t){Ue(t,!0);const r=["localhost","tailscale"],i="font-[family-name:var(--font-mono)] text-[11px] text-[var(--sig-text)] bg-[var(--sig-bg)] border-[var(--sig-border-strong)] rounded-lg w-full h-auto min-h-[30px] px-2 py-[5px] box-border focus-visible:border-[var(--sig-accent)]",l="font-[family-name:var(--font-mono)] text-[11px] bg-[var(--sig-bg)] text-[var(--sig-text)] border-[var(--sig-border-strong)] rounded-lg",E="font-[family-name:var(--font-mono)] text-[11px] rounded-lg",u=c(()=>a.aStr(["network","mode"])||"localhost"),y=c(()=>a.sStr(["auth","mode"])||"local"),k=c(()=>e(u)==="tailscale"&&e(y)==="local");function h(C){a.aSetStr(["network","mode"],C??"localhost")}function x(C){return C==="tailscale"?"tailscale":"localhost"}var _=Ee(),H=S(_);{var A=C=>{$t(C,{description:"Daemon bind mode. localhost keeps Signet on 127.0.0.1 only. tailscale keeps localhost working and also binds 0.0.0.0 so other devices on your tailnet can reach it. Restart the daemon after saving.",children:(I,V)=>{R(I,{label:"Hosting mode",description:"If auth.mode is local, anyone on your trusted tailnet can access the dashboard and API when tailscale mode is enabled.",children:(j,U)=>{var F=Ln(),G=S(F);W(G,()=>mt,(T,P)=>{P(T,{type:"single",get value(){return e(u)},onValueChange:h,children:(Z,ne)=>{var ge=Vn(),oe=S(ge);W(oe,()=>pt,($,K)=>{K($,{class:i,children:(se,Oe)=>{Ve();var N=nt();ee(z=>Y(N,z),[()=>x(e(u))]),s(se,N)},$$slots:{default:!0}})});var te=o(oe,2);W(te,()=>ft,($,K)=>{K($,{class:l,children:(se,Oe)=>{var N=Ee(),z=S(N);Te(z,16,()=>r,re=>re,(re,q)=>{var ve=Ee(),be=S(ve);{let we=c(()=>x(q));W(be,()=>_e,(me,ae)=>{ae(me,{class:E,get value(){return q},get label(){return e(we)}})})}s(re,ve)}),s(se,N)},$$slots:{default:!0}})}),s(Z,ge)},$$slots:{default:!0}})});var m=o(G,2);{var v=T=>{var P=Dn();s(T,P)};B(m,T=>{e(k)&&T(v)})}s(j,F)},$$slots:{default:!0}})}})};B(H,C=>{a.agentFile&&C(A)})}s(b,_),qe()}var Bn=["none","ollama","claude-code","codex","opencode","anthropic","openrouter"],zn=9e4,jn={none:"",ollama:"qwen3:4b","claude-code":"haiku",codex:"gpt-5-codex-mini",opencode:"anthropic/claude-haiku-4-5-20251001",anthropic:"haiku",openrouter:"openai/gpt-4o-mini"},Un=new Set(Bn);function Ht(b){return typeof b=="string"&&Un.has(b)}function nr(b){return jn[b]}function Tt(b){return typeof b=="object"&&b!==null&&!Array.isArray(b)?Object.fromEntries(Object.entries(b)):null}function Ot(b){const t=Tt(b),r=Tt(t?.memory);return Tt(r?.pipelineV2)}function dt(b,...t){let r=b;for(const i of t){const l=Tt(r);if(!l)return;r=l[i]}return typeof r=="string"&&r.trim().length>0?r:void 0}function rr(b,...t){let r=b;for(const i of t){const l=Tt(r);if(!l)return;r=l[i]}return typeof r=="number"&&Number.isFinite(r)?r:void 0}function qn(b,...t){let r=b;for(const i of t){const l=Tt(r);if(!l)return;r=l[i]}return typeof r=="boolean"?r:void 0}function Zt(b){const t=Ot(b);return Ht(dt(t,"synthesis","provider"))}function lr(b){const t=Ot(b),r=dt(t,"synthesis","provider");if(Ht(r))return r;const i=dt(t,"extractionProvider");if(Ht(i))return i;const l=dt(t,"extraction","provider");return Ht(l)?l:"ollama"}function Hn(b){const t=Ot(b),r=lr(b),i=dt(t,"synthesis","model");return i||(Zt(b)?nr(r):dt(t,"extractionModel")??dt(t,"extraction","model")??nr(r))}function Gn(b){const t=Ot(b),r=dt(t,"synthesis","endpoint")??dt(t,"synthesis","base_url");return r||(Zt(b)?"":dt(t,"extraction","endpoint")??dt(t,"extraction","base_url")??dt(t,"extractionEndpoint")??dt(t,"extractionBaseUrl")??"")}function Kn(b){const t=Ot(b),r=rr(t,"synthesis","timeout");return r!==void 0?r:Zt(b)?12e4:rr(t,"extraction","timeout")??rr(t,"extractionTimeout")??zn}function _r(b){const t=Ot(b);return lr(b)==="none"?!1:qn(t,"synthesis","enabled")??!0}var Jn=d("<!> <!>",1),Wn=d("<!> <!>",1),Yn=d('<span class="text-[9px] text-[var(--sig-highlight)] tracking-wider uppercase">extraction disabled. no background provider calls will run.</span>'),Zn=d('<span class="text-[9px] text-[var(--sig-danger)] tracking-wider uppercase">this provider usually means billed api usage. costs can snowball fast if you leave extraction on.</span>'),Qn=d('<div class="flex flex-col gap-2"><!> <span class="text-[9px] text-[var(--sig-warning)] tracking-wider uppercase"></span> <!></div>'),Xn=d("<!> <!> <!>",1),es=d("<!> <!>",1),ts=d('<span class="text-[9px] text-[var(--sig-text-muted)] tracking-wider uppercase">auto-discovered from registry</span>'),rs=d('<span class="text-[9px] text-[var(--sig-danger)] tracking-wider uppercase">recommended safety default is haiku for claude-code and gpt mini for codex. larger models will burn more money.</span>'),as=d('<div class="flex flex-col gap-2"><!> <!> <!> <!></div>'),ns=d('<span class="text-[9px] text-[var(--sig-warning)] tracking-wider uppercase">synthesis is currently inheriting the extraction provider and any unset fields until you save an explicit provider override here.</span>'),ss=d("<!> <!>",1),os=d('<span class="text-[9px] text-[var(--sig-highlight)] tracking-wider uppercase">session synthesis disabled. summary-worker will not call a background provider.</span>'),ls=d('<span class="text-[9px] text-[var(--sig-danger)] tracking-wider uppercase">this synthesis provider usually means billed api usage. session summaries can get expensive fast.</span>'),is=d("<!> <!>",1),ds=d("<!> <!>",1),cs=d('<span class="text-[9px] text-[var(--sig-danger)] tracking-wider uppercase">recommended safety default is haiku for claude-code and gpt mini for codex. larger models will burn more money.</span>'),us=d('<div class="flex flex-col gap-2"><div class="flex items-center justify-between gap-3 rounded-lg border border-[var(--sig-border)] px-3 py-2"><div class="flex flex-col gap-0.5"><span class="text-[11px] text-[var(--sig-text-bright)]">enabled</span> <span class="text-[9px] uppercase tracking-wider text-[var(--sig-text-muted)]">summary-worker and widget synthesis</span></div> <!></div> <!> <!> <!> <!> <!> <!> <!> <!></div>'),vs=d("<!> <!> <!> <!>",1),gs=d("<!> <!>",1),ms=d('<span class="text-[9px] text-[var(--sig-text-muted)] tracking-wider uppercase"> </span>'),ps=d('<span class="text-[9px] text-[var(--sig-text-muted)] tracking-wider uppercase">default: 1024 max tokens</span>'),fs=d('<span class="text-[9px] text-[var(--sig-danger)] tracking-wider uppercase">running extraction at high is usually unnecessary and will increase API costs significantly</span>'),hs=d('<div class="flex flex-col gap-2"><!> <!> <!></div>'),bs=d("<!> <!> <!>",1),_s=d("<!> <!>",1),ys=d("<!> <!> <!> <!> <!> <!> <!> <!>",1),xs=d('<!> <!> <!> <!> <!> <!> <!> <div class="font-[family-name:var(--font-mono)] text-[9px] tracking-[0.08em] uppercase text-[var(--sig-text-muted)] pt-3 pb-1 border-b border-[var(--sig-border)] mb-1">Model Registry</div> <!> <div class="font-[family-name:var(--font-mono)] text-[9px] tracking-[0.08em] uppercase text-[var(--sig-text-muted)] pt-3 pb-1 border-b border-[var(--sig-border)] mb-1">Predictor</div> <!> <!> <!> <!>',1);function $s(b,t){Ue(t,!0);const r="font-[family-name:var(--font-mono)] text-[11px] text-[var(--sig-text)] bg-[var(--sig-bg)] border-[var(--sig-border-strong)] rounded-lg w-full h-auto min-h-[30px] px-2 py-[5px] box-border focus-visible:border-[var(--sig-accent)]",i="font-[family-name:var(--font-mono)] text-[11px] bg-[var(--sig-bg)] text-[var(--sig-text)] border-[var(--sig-border-strong)] rounded-lg",l="font-[family-name:var(--font-mono)] text-[11px] rounded-lg",E=[{value:"none",label:"none (disable extraction)"},{value:"ollama",label:"ollama"},{value:"claude-code",label:"claude-code"},{value:"codex",label:"codex"},{value:"opencode",label:"opencode"},{value:"anthropic",label:"anthropic"},{value:"openrouter",label:"openrouter"}],u={ollama:[{value:"qwen3:4b",label:"qwen3:4b"},{value:"glm-4.7-flash",label:"glm-4.7-flash"},{value:"llama3",label:"llama3"}],"claude-code":[{value:"claude-haiku-4-5",label:"Claude Haiku 4.5"},{value:"claude-3-5-haiku-20241022",label:"Claude 3.5 Haiku"},{value:"claude-opus-4-6",label:"Claude Opus 4.6"},{value:"claude-sonnet-4-6",label:"Claude Sonnet 4.6"}],codex:[{value:"gpt-5-codex-mini",label:"GPT Mini"},{value:"gpt-5.4",label:"GPT 5.4"},{value:"gpt-5.3-codex",label:"GPT 5.3 Codex"},{value:"gpt-5.3-codex-spark",label:"GPT 5.3 Codex Spark"},{value:"gpt-5-codex",label:"GPT 5 Codex"}],opencode:[{value:"anthropic/claude-haiku-4-5-20251001",label:"Claude Haiku 4.5"},{value:"google/gemini-2.5-flash",label:"Gemini 2.5 Flash"},{value:"anthropic/claude-sonnet-4-6",label:"Claude Sonnet 4.6"},{value:"anthropic/claude-opus-4-6",label:"Claude Opus 4.6"}],anthropic:[{value:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5"},{value:"claude-3-5-haiku-20241022",label:"Claude 3.5 Haiku"},{value:"claude-opus-4-6",label:"Claude Opus 4.6"},{value:"claude-sonnet-4-6",label:"Claude Sonnet 4.6"}],openrouter:[{value:"openai/gpt-4o-mini",label:"GPT-4o Mini"},{value:"anthropic/claude-haiku-4-5-20251001",label:"Claude Haiku 4.5"},{value:"google/gemini-2.5-flash",label:"Gemini 2.5 Flash"},{value:"anthropic/claude-sonnet-4-6",label:"Claude Sonnet 4.6"},{value:"openai/gpt-4o",label:"GPT-4o"}]};let y=ie(Gt({})),k=ie(!1);xt(()=>{a.aBool(["memory","pipelineV2","modelRegistry","enabled"]);let n=!1;return Br().then(g=>{n||g&&Object.keys(g).length>0&&(w(y,g,!0),w(k,!0))}).catch(()=>{}),()=>{n=!0}});function h(n){return e(k)&&e(y)[n]?e(y)[n].map(g=>({value:g.id,label:g.label})):u[n]??[]}function x(n,g){const M=g.map(Q=>Q.value);return n==="claude-code"||n==="anthropic"?M.find(Q=>Q.toLowerCase().includes("haiku"))??M[0]??"":n==="codex"?M.find(Q=>Q.toLowerCase().includes("mini"))??M[0]??"":n==="ollama"?M.find(Q=>Q==="qwen3:4b")??M[0]??"":n==="opencode"?M.find(Q=>Q.toLowerCase().includes("haiku"))??M.find(Q=>Q.toLowerCase().includes("flash"))??M[0]??"":n==="openrouter"?M.find(Q=>Q.toLowerCase().includes("gpt-4o-mini"))??M.find(Q=>Q.toLowerCase().includes("haiku"))??M.find(Q=>Q.toLowerCase().includes("flash"))??M[0]??"":M[0]??""}function _(){return a.aStr(["memory","pipelineV2","extractionProvider"])}function H(){const n=_();return n?h(n):[]}let A=ie(!1);function C(){if(e(A))return"__custom__";const n=a.aStr(["memory","pipelineV2","extractionModel"]);return n?H().some(g=>g.value===n)?n:"__custom__":""}function I(n){for(const g of Object.values(e(y)))if(g.some(M=>M.id===n))return!0;for(const g of Object.values(u))if(g.some(M=>M.value===n))return!0;return!1}function V(n){return E.some(g=>g.value===n)}function j(n){const g=h(n);return g.length>0?x(n,g):V(n)?nr(n):""}function U(){return a.aStr(["memory","pipelineV2","extractionModel"])}function F(){return _()==="none"}function G(n){return n==="anthropic"||n==="openrouter"||n==="opencode"}function m(){return G(_())}function v(n,g){const M=g.toLowerCase();return M?n==="claude-code"?!M.includes("haiku"):n==="codex"?!M.includes("mini"):!1:!1}function T(){const n=_(),g=U();return v(n,g)}function P(){return lr(a.agent)}function Z(){return Hn(a.agent)}function ne(){return Gn(a.agent)}function ge(){return Kn(a.agent)}function oe(){return!_r(a.agent)}function te(){return Zt(a.agent)}function $(){const n=P();return n?h(n):[]}let K=ie(!1);function se(){if(e(K))return"__custom__";const n=Z();return n?$().some(g=>g.value===n)?n:"__custom__":""}function Oe(){const n=Z();if(!n)return"";const g=$().find(M=>M.value===n);return g?g.label:n}function N(){return G(P())}function z(){return v(P(),Z())}function re(n){return g=>{a.aSetNum(n,g.currentTarget.value)}}function q(n){return g=>{a.aSetBool(n,!!g)}}function ve(n){return g=>{a.aSetStr(n,g.currentTarget.value)}}function be(n){return g=>{a.aSetStr(n,g??"")}}function we(n){const g=n??"",M=a.aStr(["memory","pipelineV2","extractionModel"]);if(w(A,!1),a.aSetStr(["memory","pipelineV2","extractionProvider"],g),!g){a.aSetStr(["memory","pipelineV2","extractionModel"],"");return}(!M||I(M))&&a.aSetStr(["memory","pipelineV2","extractionModel"],j(g))}function me(n){if(!n){w(A,!1),a.aSetStr(["memory","pipelineV2","extractionModel"],"");return}if(n==="__custom__"){w(A,!0);return}w(A,!1),a.aSetStr(["memory","pipelineV2","extractionModel"],n)}function ae(n){const g=n??"";if(w(K,!1),a.aSetStr(["memory","pipelineV2","synthesis","provider"],g),a.aSetBool(["memory","pipelineV2","synthesis","enabled"],g!=="none"),!g){a.aSetStr(["memory","pipelineV2","synthesis","model"],"");return}a.aSetStr(["memory","pipelineV2","synthesis","model"],j(g))}function Pe(n){if(!n){w(K,!1),a.aSetStr(["memory","pipelineV2","synthesis","model"],"");return}if(n==="__custom__"){w(K,!0);return}w(K,!1),a.aSetStr(["memory","pipelineV2","synthesis","model"],n)}function Je(){const n=a.aStr(["memory","pipelineV2","extractionModel"]);if(!n)return"";const g=H().find(M=>M.value===n);return g?g.label:n}const Xe={low:1024,medium:2048,high:4096};function Le(){const n=a.aStr(["memory","pipelineV2","extractionStrength"])||"low";return Xe[n]??1024}const st=["allowUpdateDelete","graphEnabled","autonomousEnabled","semanticContradictionEnabled"],ot=["autonomousFrozen"];var lt=Ee(),it=S(lt);{var We=n=>{$t(n,{description:"V2 memory pipeline. Runs LLM-based fact extraction on incoming memories, then decides whether to write, update, or skip. Lives under memory.pipelineV2 in agent.yaml.",children:(g,M)=>{var Q=xs(),et=S(Q);R(et,{get label(){return vt[0].key},get description(){return vt[0].desc},children:(ce,De)=>{{let le=c(()=>a.aBool(["memory","pipelineV2",vt[0].key])),ue=c(()=>q(["memory","pipelineV2",vt[0].key]));gt(ce,{get checked(){return e(le)},get onCheckedChange(){return e(ue)}})}},$$slots:{default:!0}});var Ye=o(et,2);R(Ye,{label:"Extraction provider",description:"LLM backend for fact extraction. Ollama runs locally; claude-code uses Claude Code CLI; codex uses the local Codex CLI; opencode uses the OpenCode server; anthropic uses direct API; openrouter uses the OpenRouter API.",children:(ce,De)=>{var le=Qn(),ue=f(le);{let Be=c(()=>a.aStr(["memory","pipelineV2","extractionProvider"]));W(ue,()=>mt,($e,ze)=>{ze($e,{type:"single",get value(){return e(Be)},onValueChange:we,children:(D,L)=>{var X=Wn(),pe=S(X);W(pe,()=>pt,(he,Ne)=>{Ne(he,{class:r,children:(Ce,Ae)=>{Ve();var Fe=nt();ee(O=>Y(Fe,O),[()=>a.aStr(["memory","pipelineV2","extractionProvider"])||"None selected"]),s(Ce,Fe)},$$slots:{default:!0}})});var fe=o(pe,2);W(fe,()=>ft,(he,Ne)=>{Ne(he,{class:i,children:(Ce,Ae)=>{var Fe=Jn(),O=S(Fe);W(O,()=>_e,(Se,Me)=>{Me(Se,{class:l,value:"",label:"None selected"})});var J=o(O,2);Te(J,17,()=>E,Se=>Se.value,(Se,Me)=>{var Ge=Ee(),Ze=S(Ge);W(Ze,()=>_e,(ke,xe)=>{xe(ke,{class:l,get value(){return e(Me).value},get label(){return e(Me).label}})}),s(Se,Ge)}),s(Ce,Fe)},$$slots:{default:!0}})}),s(D,X)},$$slots:{default:!0}})})}var Re=o(ue,2);Re.textContent="intended usage: claude code on haiku, codex cli on gpt mini with a pro/max subscription, or local ollama at qwen3:4b or larger. remote api extraction can stack up extreme fees fast. set provider to none on a vps if you do not want background extraction.";var tt=o(Re,2);{var rt=Be=>{var $e=Yn();s(Be,$e)},at=c(()=>F()),ht=Be=>{var $e=Zn();s(Be,$e)},yt=c(()=>m());B(tt,Be=>{e(at)?Be(rt):e(yt)&&Be(ht,1)})}p(le),s(ce,le)},$$slots:{default:!0}});var Ie=o(Ye,2);{let ce=c(()=>e(k)?"Models auto-discovered from provider. Switch to custom for any supported model string.":"Choose a provider default or switch to custom. Models will auto-update when the registry connects.");R(Ie,{label:"Extraction model",get description(){return e(ce)},children:(De,le)=>{var ue=as(),Re=f(ue);{let D=c(C);W(Re,()=>mt,(L,X)=>{X(L,{type:"single",get value(){return e(D)},onValueChange:me,children:(pe,fe)=>{var he=es(),Ne=S(he);W(Ne,()=>pt,(Ae,Fe)=>{Fe(Ae,{class:r,children:(O,J)=>{Ve();var Se=nt();ee(Me=>Y(Se,Me),[()=>C()==="__custom__"?`custom: ${a.aStr(["memory","pipelineV2","extractionModel"])}`:Je()||"None selected"]),s(O,Se)},$$slots:{default:!0}})});var Ce=o(Ne,2);W(Ce,()=>ft,(Ae,Fe)=>{Fe(Ae,{class:i,children:(O,J)=>{var Se=Xn(),Me=S(Se);W(Me,()=>_e,(ke,xe)=>{xe(ke,{class:l,value:"",label:"None selected"})});var Ge=o(Me,2);Te(Ge,17,H,ke=>ke.value,(ke,xe)=>{var Qe=Ee(),ut=S(Qe);W(ut,()=>_e,(bt,_t)=>{_t(bt,{class:l,get value(){return e(xe).value},get label(){return e(xe).label}})}),s(ke,Qe)});var Ze=o(Ge,2);W(Ze,()=>_e,(ke,xe)=>{xe(ke,{class:l,value:"__custom__",label:"custom"})}),s(O,Se)},$$slots:{default:!0}})}),s(pe,he)},$$slots:{default:!0}})})}var tt=o(Re,2);{var rt=D=>{{let L=c(()=>a.aStr(["memory","pipelineV2","extractionModel"])),X=c(()=>ve(["memory","pipelineV2","extractionModel"]));ye(D,{get value(){return e(L)},get oninput(){return e(X)},placeholder:"custom model id"})}},at=c(()=>C()==="__custom__"||H().length===0);B(tt,D=>{e(at)&&D(rt)})}var ht=o(tt,2);{var yt=D=>{var L=ts();s(D,L)};B(ht,D=>{e(k)&&D(yt)})}var Be=o(ht,2);{var $e=D=>{var L=rs();s(D,L)},ze=c(()=>T());B(Be,D=>{e(ze)&&D($e)})}p(ue),s(De,ue)},$$slots:{default:!0}})}var ct=o(Ie,2);R(ct,{label:"Session synthesis",description:"Provider used by the summary-worker for session summaries. This is separate from fact extraction once explicitly configured.",children:(ce,De)=>{var le=us(),ue=f(le),Re=o(f(ue),2);{let O=c(()=>_r(a.agent)),J=c(()=>q(["memory","pipelineV2","synthesis","enabled"]));gt(Re,{get checked(){return e(O)},get onCheckedChange(){return e(J)}})}p(ue);var tt=o(ue,2);{var rt=O=>{var J=ns();s(O,J)},at=c(()=>!te());B(tt,O=>{e(at)&&O(rt)})}var ht=o(tt,2);{let O=c(P);W(ht,()=>mt,(J,Se)=>{Se(J,{type:"single",get value(){return e(O)},onValueChange:ae,children:(Me,Ge)=>{var Ze=ss(),ke=S(Ze);W(ke,()=>pt,(Qe,ut)=>{ut(Qe,{class:r,children:(bt,_t)=>{Ve();var je=nt();ee(wt=>Y(je,wt),[()=>P()||"None selected"]),s(bt,je)},$$slots:{default:!0}})});var xe=o(ke,2);W(xe,()=>ft,(Qe,ut)=>{ut(Qe,{class:i,children:(bt,_t)=>{var je=Ee(),wt=S(je);Te(wt,17,()=>E,Dt=>Dt.value,(Dt,Pt)=>{var Et=Ee(),jt=S(Et);W(jt,()=>_e,(Qt,Xt)=>{Xt(Qt,{class:l,get value(){return e(Pt).value},get label(){return e(Pt).label}})}),s(Dt,Et)}),s(bt,je)},$$slots:{default:!0}})}),s(Me,Ze)},$$slots:{default:!0}})})}var yt=o(ht,2);{var Be=O=>{var J=os();s(O,J)},$e=c(()=>oe()),ze=O=>{var J=ls();s(O,J)},D=c(()=>N());B(yt,O=>{e($e)?O(Be):e(D)&&O(ze,1)})}var L=o(yt,2);{let O=c(se);W(L,()=>mt,(J,Se)=>{Se(J,{type:"single",get value(){return e(O)},onValueChange:Pe,children:(Me,Ge)=>{var Ze=ds(),ke=S(Ze);W(ke,()=>pt,(Qe,ut)=>{ut(Qe,{class:r,children:(bt,_t)=>{Ve();var je=nt();ee(wt=>Y(je,wt),[()=>se()==="__custom__"?`custom: ${Z()}`:Oe()||"None selected"]),s(bt,je)},$$slots:{default:!0}})});var xe=o(ke,2);W(xe,()=>ft,(Qe,ut)=>{ut(Qe,{class:i,children:(bt,_t)=>{var je=is(),wt=S(je);Te(wt,17,$,Pt=>Pt.value,(Pt,Et)=>{var jt=Ee(),Qt=S(jt);W(Qt,()=>_e,(Xt,$r)=>{$r(Xt,{class:l,get value(){return e(Et).value},get label(){return e(Et).label}})}),s(Pt,jt)});var Dt=o(wt,2);W(Dt,()=>_e,(Pt,Et)=>{Et(Pt,{class:l,value:"__custom__",label:"custom"})}),s(bt,je)},$$slots:{default:!0}})}),s(Me,Ze)},$$slots:{default:!0}})})}var X=o(L,2);{var pe=O=>{{let J=c(Z),Se=c(()=>ve(["memory","pipelineV2","synthesis","model"]));ye(O,{get value(){return e(J)},get oninput(){return e(Se)},placeholder:"custom model id"})}},fe=c(()=>se()==="__custom__"||$().length===0);B(X,O=>{e(fe)&&O(pe)})}var he=o(X,2);{var Ne=O=>{var J=cs();s(O,J)},Ce=c(()=>z());B(he,O=>{e(Ce)&&O(Ne)})}var Ae=o(he,2);{let O=c(ne),J=c(()=>ve(["memory","pipelineV2","synthesis","endpoint"]));ye(Ae,{get value(){return e(O)},get oninput(){return e(J)},placeholder:"endpoint override (optional)"})}var Fe=o(Ae,2);{let O=c(()=>String(ge())),J=c(()=>re(["memory","pipelineV2","synthesis","timeout"]));ye(Fe,{get value(){return e(O)},get oninput(){return e(J)},placeholder:"timeout ms"})}p(le),s(ce,le)},$$slots:{default:!0}});var He=o(ct,2);R(He,{label:"Extraction strength",description:"Controls how aggressively the pipeline extracts facts from incoming memories.",children:(ce,De)=>{var le=hs(),ue=f(le);{let $e=c(()=>a.aStr(["memory","pipelineV2","extractionStrength"])),ze=c(()=>be(["memory","pipelineV2","extractionStrength"]));W(ue,()=>mt,(D,L)=>{L(D,{type:"single",get value(){return e($e)},get onValueChange(){return e(ze)},children:(X,pe)=>{var fe=gs(),he=S(fe);W(he,()=>pt,(Ce,Ae)=>{Ae(Ce,{class:r,children:(Fe,O)=>{Ve();var J=nt();ee(Se=>Y(J,Se),[()=>a.aStr(["memory","pipelineV2","extractionStrength"])||"None selected"]),s(Fe,J)},$$slots:{default:!0}})});var Ne=o(he,2);W(Ne,()=>ft,(Ce,Ae)=>{Ae(Ce,{class:i,children:(Fe,O)=>{var J=vs(),Se=S(J);W(Se,()=>_e,(ke,xe)=>{xe(ke,{class:l,value:"",label:"None selected"})});var Me=o(Se,2);W(Me,()=>_e,(ke,xe)=>{xe(ke,{class:l,value:"low",label:"low"})});var Ge=o(Me,2);W(Ge,()=>_e,(ke,xe)=>{xe(ke,{class:l,value:"medium",label:"medium"})});var Ze=o(Ge,2);W(Ze,()=>_e,(ke,xe)=>{xe(ke,{class:l,value:"high",label:"high"})}),s(Fe,J)},$$slots:{default:!0}})}),s(X,fe)},$$slots:{default:!0}})})}var Re=o(ue,2);{var tt=$e=>{var ze=ms(),D=f(ze);p(ze),ee(L=>Y(D,`${L??""} max tokens`),[Le]),s($e,ze)},rt=c(()=>a.aStr(["memory","pipelineV2","extractionStrength"])),at=$e=>{var ze=ps();s($e,ze)};B(Re,$e=>{e(rt)?$e(tt):$e(at,-1)})}var ht=o(Re,2);{var yt=$e=>{var ze=fs();s($e,ze)},Be=c(()=>(a.aStr(["memory","pipelineV2","extractionStrength"])||"low")==="high");B(ht,$e=>{e(Be)&&$e(yt)})}p(le),s(ce,le)},$$slots:{default:!0}});var St=o(He,2);Te(St,17,()=>br.filter(ce=>st.includes(ce.key)),({key:ce,desc:De})=>ce,(ce,De)=>{let le=()=>e(De).key,ue=()=>e(De).desc;R(ce,{get label(){return le()},get description(){return ue()},children:(Re,tt)=>{{let rt=c(()=>a.aBool(["memory","pipelineV2",le()])),at=c(()=>q(["memory","pipelineV2",le()]));gt(Re,{get checked(){return e(rt)},get onCheckedChange(){return e(at)}})}},$$slots:{default:!0}})});var Rt=o(St,2);Te(Rt,17,()=>Ua,({key:ce,desc:De})=>ce,(ce,De)=>{let le=()=>e(De).key,ue=()=>e(De).desc;R(ce,{get label(){return le()},get description(){return ue()},children:(Re,tt)=>{{let rt=c(()=>a.aBool(["memory","pipelineV2",le()])),at=c(()=>q(["memory","pipelineV2",le()]));gt(Re,{get checked(){return e(rt)},get onCheckedChange(){return e(at)}})}},$$slots:{default:!0}})});var kt=o(Rt,4);R(kt,{label:"modelRegistryEnabled",description:"Auto-discover available models from each provider. New models appear without code changes.",children:(ce,De)=>{{let le=c(()=>a.aBool(["memory","pipelineV2","modelRegistry","enabled"])),ue=c(()=>q(["memory","pipelineV2","modelRegistry","enabled"]));gt(ce,{get checked(){return e(le)},get onCheckedChange(){return e(ue)}})}},$$slots:{default:!0}});var Vt=o(kt,4);R(Vt,{label:"enabled",description:"Enable the predictive memory scorer. Learns which memories are most useful based on agent feedback.",children:(ce,De)=>{{let le=c(()=>a.aBool(["memory","pipelineV2","predictor","enabled"])),ue=c(()=>q(["memory","pipelineV2","predictor","enabled"]));gt(ce,{get checked(){return e(le)},get onCheckedChange(){return e(ue)}})}},$$slots:{default:!0}});var Nt=o(Vt,2);R(Nt,{label:"agentFeedback",description:"Allow the agent to provide relevance feedback on recalled memories.",children:(ce,De)=>{{let le=c(()=>a.aBool(["memory","pipelineV2","predictorPipeline","agentFeedback"])),ue=c(()=>q(["memory","pipelineV2","predictorPipeline","agentFeedback"]));gt(ce,{get checked(){return e(le)},get onCheckedChange(){return e(ue)}})}},$$slots:{default:!0}});var Bt=o(Nt,2);R(Bt,{label:"trainingTelemetry",description:"Contribute anonymized training signals to improve the shared base model.",children:(ce,De)=>{{let le=c(()=>a.aBool(["memory","pipelineV2","predictorPipeline","trainingTelemetry"])),ue=c(()=>q(["memory","pipelineV2","predictorPipeline","trainingTelemetry"]));gt(ce,{get checked(){return e(le)},get onCheckedChange(){return e(ue)}})}},$$slots:{default:!0}});var zt=o(Bt,2);or(zt,{children:(ce,De)=>{var le=ys(),ue=S(le);R(ue,{get label(){return vt[1].key},get description(){return vt[1].desc},children:(D,L)=>{{let X=c(()=>a.aBool(["memory","pipelineV2",vt[1].key])),pe=c(()=>q(["memory","pipelineV2",vt[1].key]));gt(D,{get checked(){return e(X)},get onCheckedChange(){return e(pe)}})}},$$slots:{default:!0}});var Re=o(ue,2);R(Re,{get label(){return vt[2].key},get description(){return vt[2].desc},children:(D,L)=>{{let X=c(()=>a.aBool(["memory","pipelineV2",vt[2].key])),pe=c(()=>q(["memory","pipelineV2",vt[2].key]));gt(D,{get checked(){return e(X)},get onCheckedChange(){return e(pe)}})}},$$slots:{default:!0}});var tt=o(Re,2);Te(tt,17,()=>br.filter(D=>ot.includes(D.key)),({key:D,desc:L})=>D,(D,L)=>{let X=()=>e(L).key,pe=()=>e(L).desc;R(D,{get label(){return X()},get description(){return pe()},children:(fe,he)=>{{let Ne=c(()=>a.aBool(["memory","pipelineV2",X()])),Ce=c(()=>q(["memory","pipelineV2",X()]));gt(fe,{get checked(){return e(Ne)},get onCheckedChange(){return e(Ce)}})}},$$slots:{default:!0}})});var rt=o(tt,2);R(rt,{label:"Maintenance mode",description:"'observe' logs diagnostics without changes. 'execute' attempts repairs. Only works when autonomousEnabled is true.",children:(D,L)=>{var X=Ee(),pe=S(X);{let fe=c(()=>a.aStr(["memory","pipelineV2","maintenanceMode"])),he=c(()=>be(["memory","pipelineV2","maintenanceMode"]));W(pe,()=>mt,(Ne,Ce)=>{Ce(Ne,{type:"single",get value(){return e(fe)},get onValueChange(){return e(he)},children:(Ae,Fe)=>{var O=_s(),J=S(O);W(J,()=>pt,(Me,Ge)=>{Ge(Me,{class:r,children:(Ze,ke)=>{Ve();var xe=nt();ee(Qe=>Y(xe,Qe),[()=>a.aStr(["memory","pipelineV2","maintenanceMode"])||"None selected"]),s(Ze,xe)},$$slots:{default:!0}})});var Se=o(J,2);W(Se,()=>ft,(Me,Ge)=>{Ge(Me,{class:i,children:(Ze,ke)=>{var xe=bs(),Qe=S(xe);W(Qe,()=>_e,(_t,je)=>{je(_t,{class:l,value:"",label:"None selected"})});var ut=o(Qe,2);W(ut,()=>_e,(_t,je)=>{je(_t,{class:l,value:"observe",label:"observe"})});var bt=o(ut,2);W(bt,()=>_e,(_t,je)=>{je(_t,{class:l,value:"execute",label:"execute"})}),s(Ze,xe)},$$slots:{default:!0}})}),s(Ae,O)},$$slots:{default:!0}})})}s(D,X)},$$slots:{default:!0}});var at=o(rt,2);{var ht=D=>{var L=Ee(),X=S(L);Te(X,17,()=>ja,({key:pe,label:fe,desc:he,min:Ne,max:Ce,step:Ae})=>pe,(pe,fe)=>{let he=()=>e(fe).key,Ne=()=>e(fe).label,Ce=()=>e(fe).desc,Ae=()=>e(fe).min,Fe=()=>e(fe).max,O=()=>e(fe).step;R(pe,{get label(){return Ne()},get description(){return Ce()},children:(J,Se)=>{{let Me=c(()=>a.aNum(["memory","pipelineV2",he()])),Ge=c(()=>re(["memory","pipelineV2",he()]));ye(J,{type:"number",get min(){return Ae()},get max(){return Fe()},get step(){return O()},get value(){return e(Me)},get oninput(){return e(Ge)}})}},$$slots:{default:!0}})}),s(D,L)},yt=c(()=>a.aBool(["memory","pipelineV2","semanticContradictionEnabled"]));B(at,D=>{e(yt)&&D(ht)})}var Be=o(at,2);Te(Be,17,()=>qa,({key:D,label:L,desc:X,min:pe,max:fe,step:he})=>D,(D,L)=>{let X=()=>e(L).key,pe=()=>e(L).label,fe=()=>e(L).desc,he=()=>e(L).min,Ne=()=>e(L).max,Ce=()=>e(L).step;R(D,{get label(){return pe()},get description(){return fe()},children:(Ae,Fe)=>{{let O=c(()=>a.aNum(["memory","pipelineV2",X()])),J=c(()=>re(["memory","pipelineV2",X()]));ye(Ae,{type:"number",get min(){return he()},get max(){return Ne()},get step(){return Ce()},get value(){return e(O)},get oninput(){return e(J)}})}},$$slots:{default:!0}})});var $e=o(Be,2);Te($e,17,()=>Ha,({key:D,label:L,desc:X,min:pe,max:fe,step:he})=>D,(D,L)=>{let X=()=>e(L).key,pe=()=>e(L).label,fe=()=>e(L).desc,he=()=>e(L).min,Ne=()=>e(L).max,Ce=()=>e(L).step;R(D,{get label(){return pe()},get description(){return fe()},children:(Ae,Fe)=>{{let O=c(()=>a.aNum(["memory","pipelineV2",X()])),J=c(()=>re(["memory","pipelineV2",X()]));ye(Ae,{type:"number",get min(){return he()},get max(){return Ne()},get step(){return Ce()},get value(){return e(O)},get oninput(){return e(J)}})}},$$slots:{default:!0}})});var ze=o($e,2);Te(ze,17,()=>Ga,({key:D,label:L,desc:X,min:pe,max:fe,step:he})=>D,(D,L)=>{let X=()=>e(L).key,pe=()=>e(L).label,fe=()=>e(L).desc,he=()=>e(L).min,Ne=()=>e(L).max,Ce=()=>e(L).step;R(D,{get label(){return pe()},get description(){return fe()},children:(Ae,Fe)=>{{let O=c(()=>a.aNum(["memory","pipelineV2",X()])),J=c(()=>re(["memory","pipelineV2",X()]));ye(Ae,{type:"number",get min(){return he()},get max(){return Ne()},get step(){return Ce()},get value(){return e(O)},get oninput(){return e(J)}})}},$$slots:{default:!0}})}),s(ce,le)},$$slots:{default:!0}}),s(g,Q)}})};B(it,n=>{a.agentFile&&n(We)})}s(b,lt),qe()}var Ss=d("<!> <!> <!> <!> <!>",1),ks=d("<!> <!>",1);function ws(b,t){Ue(t,!1);function r(y){return k=>{a.sSetNum(y,k.currentTarget.value)}}function i(y){return k=>{a.sSetBool(y,!!k)}}Ft();var l=Ee(),E=S(l);{var u=y=>{$t(y,{description:"Hybrid search tuning. Controls the blend between semantic (vector) and keyword (BM25) retrieval.",children:(k,h)=>{var x=ks(),_=S(x);R(_,{label:"Rehearsal enabled",description:"Boost scores for frequently-recalled memories. Uses access_count and last_accessed to reward useful memories.",children:(A,C)=>{{let I=de(()=>a.sBool(["search","rehearsal_enabled"])),V=de(()=>i(["search","rehearsal_enabled"]));gt(A,{get checked(){return e(I)},get onCheckedChange(){return e(V)}})}},$$slots:{default:!0}});var H=o(_,2);or(H,{children:(A,C)=>{var I=Ss(),V=S(I);R(V,{label:"Alpha",description:"Vector weight (0–1). At 0.9 results are heavily semantic; at 0.3 they skew toward keyword matching. Default 0.7 works well generally.",children:(m,v)=>{{let T=de(()=>a.sNum(["search","alpha"])),P=de(()=>r(["search","alpha"]));ye(m,{type:"number",min:"0",max:"1",step:"0.1",get value(){return e(T)},get oninput(){return e(P)}})}},$$slots:{default:!0}});var j=o(V,2);R(j,{label:"Top K",description:"Candidate count fetched from each source (BM25 and vector) before alpha-blending. Default: 20.",children:(m,v)=>{{let T=de(()=>a.sNum(["search","top_k"])),P=de(()=>r(["search","top_k"]));ye(m,{type:"number",get value(){return e(T)},get oninput(){return e(P)}})}},$$slots:{default:!0}});var U=o(j,2);R(U,{label:"Min Score",description:"Minimum combined score to include in results. Results below this threshold are dropped. Default: 0.3.",children:(m,v)=>{{let T=de(()=>a.sNum(["search","min_score"])),P=de(()=>r(["search","min_score"]));ye(m,{type:"number",min:"0",max:"1",step:"0.1",get value(){return e(T)},get oninput(){return e(P)}})}},$$slots:{default:!0}});var F=o(U,2);R(F,{label:"Rehearsal weight",description:"Score multiplier for rehearsal boost. Higher = more impact from recall frequency. Default: 0.1.",children:(m,v)=>{{let T=de(()=>a.sNum(["search","rehearsal_weight"])),P=de(()=>r(["search","rehearsal_weight"]));ye(m,{type:"number",min:"0",max:"1",step:"0.05",get value(){return e(T)},get oninput(){return e(P)}})}},$$slots:{default:!0}});var G=o(F,2);R(G,{label:"Rehearsal half-life (days)",description:"Days until rehearsal boost decays to half. Lower = faster decay of recall-frequency boost. Default: 30.",children:(m,v)=>{{let T=de(()=>a.sNum(["search","rehearsal_half_life_days"])),P=de(()=>r(["search","rehearsal_half_life_days"]));ye(m,{type:"number",min:"1",max:"365",step:"1",get value(){return e(T)},get oninput(){return e(P)}})}},$$slots:{default:!0}}),s(A,I)},$$slots:{default:!0}}),s(k,x)}})};B(E,y=>{a.settingsFileName&&y(u)})}s(b,l),qe()}var Ps=d("<!> <!>",1),Cs=d("<!> <!>",1),Es=d("<!> <!>",1);function Ns(b,t){Ue(t,!1);const r="font-[family-name:var(--font-mono)] text-[11px] text-[var(--sig-text)] bg-[var(--sig-bg)] border-[var(--sig-border-strong)] rounded-lg w-full h-auto min-h-[30px] px-2 py-[5px] box-border focus-visible:border-[var(--sig-accent)]",i="font-[family-name:var(--font-mono)] text-[11px] bg-[var(--sig-bg)] text-[var(--sig-text)] border-[var(--sig-border-strong)] rounded-lg",l="font-[family-name:var(--font-mono)] text-[11px] rounded-lg";function E(x){return _=>{a.aSetStr(x,_??"")}}function u(x){return _=>{a.aSetStr(x,_.currentTarget.value)}}Ft();var y=Ee(),k=S(y);{var h=x=>{$t(x,{description:"Identity verification method. Controls how the agent proves its identity to peers and registries.",children:(_,H)=>{var A=Es(),C=S(A);R(C,{label:"Verification",description:"none = local only. erc8128 = wallet-based (recommended). gpg/did = alternative signing. registry = contract-based lookup.",children:(U,F)=>{{let G=de(()=>a.aStr(["trust","verification"])),m=de(()=>E(["trust","verification"]));mt(U,{type:"single",get value(){return e(G)},get onValueChange(){return e(m)},children:(v,T)=>{var P=Cs(),Z=S(P);pt(Z,{class:r,children:(ge,oe)=>{Ve();var te=nt();ee($=>Y(te,$),[()=>a.aStr(["trust","verification"])||"— select —"]),s(ge,te)},$$slots:{default:!0}});var ne=o(Z,2);ft(ne,{class:i,children:(ge,oe)=>{var te=Ps(),$=S(te);_e($,{class:l,value:"",label:"— select —"});var K=o($,2);Te(K,0,()=>["none","erc8128","gpg","did","registry"],se=>se,(se,Oe)=>{_e(se,{class:l,get value(){return Oe},get label(){return Oe}})}),s(ge,te)},$$slots:{default:!0}}),s(v,P)},$$slots:{default:!0}})}},$$slots:{default:!0}});var I=o(C,2);{var V=U=>{R(U,{label:"Registry URL",description:"Registry contract address or ENS name for identity lookups.",children:(F,G)=>{{let m=de(()=>a.aStr(["trust","registry"])),v=de(()=>u(["trust","registry"]));ye(F,{get value(){return e(m)},get oninput(){return e(v)}})}},$$slots:{default:!0}})},j=c(()=>a.aStr(["trust","verification"])==="registry");B(I,U=>{e(j)&&U(V)})}s(_,A)}})};B(k,x=>{a.agentFile&&x(h)})}s(b,y),qe()}var As=d('<div class="empty-state svelte-1glxw2p">No YAML config files found</div>'),Ms=d('<span class="tab-dirty svelte-1glxw2p">&bull;</span>'),Ts=d("<button> <!></button>"),Is=d("<span> </span>"),Fs=d('<button type="button" class="discard-btn svelte-1glxw2p">Discard</button>'),Os=d(`<div class="dialog-overlay svelte-1glxw2p" role="button" tabindex="0" aria-label="Close discard dialog"><div class="dialog svelte-1glxw2p" role="dialog" aria-modal="true" aria-labelledby="discard-dialog-title"><div class="dialog-title svelte-1glxw2p" id="discard-dialog-title">Discard changes?</div> <div class="dialog-body svelte-1glxw2p">This will revert all unsaved changes to settings and identity files.
15
- This cannot be undone.</div> <div class="dialog-actions svelte-1glxw2p"><button type="button" class="dialog-btn cancel svelte-1glxw2p">Cancel</button> <button type="button" class="dialog-btn danger svelte-1glxw2p">Discard</button></div></div></div>`),Vs=d('<header class="tab-bar svelte-1glxw2p"><div class="tab-group svelte-1glxw2p"></div></header> <div class="main-area svelte-1glxw2p"><div class="section-content svelte-1glxw2p"><!></div> <!></div> <footer class="save-bar svelte-1glxw2p"><div class="save-meta svelte-1glxw2p"><span> </span> <!></div> <!> <button type="button" class="save-btn svelte-1glxw2p" title="Save (Ctrl+S)"> </button></footer> <!>',1),Ds=d('<div class="settings-tab svelte-1glxw2p"><!> <!></div>');function to(b,t){Ue(t,!0);const r=[{id:"agent",title:"Agent",source:"agent",paths:[["agent","name"],["agent","description"],["harnesses"]]},{id:"network",title:"Network",source:"agent",paths:[["network"]]},{id:"embeddings",title:"Embeddings",source:"config",paths:[["embedding"],["memory","embeddings"],["embeddings"]]},{id:"memory",title:"Memory",source:"config",paths:[["memory","session_budget"],["memory","current_md_budget"],["memory","decay_rate"],["paths"]]},{id:"search",title:"Search",source:"config",paths:[["search"]]},{id:"pipeline",title:"Pipeline",source:"agent",paths:[["memory","pipelineV2"]]},{id:"trust",title:"Trust",source:"agent",paths:[["trust"]]},{id:"auth",title:"Auth",source:"config",paths:[["auth"]]},{id:"appearance",title:"Appearance",source:"config",paths:[]}],i="px-2.5 py-1 text-[10px] font-medium uppercase tracking-[0.06em] rounded-md transition-colors duration-150 border-none cursor-pointer whitespace-nowrap",l=`${i} text-[var(--sig-highlight)] bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_90%)] border border-[color-mix(in_srgb,var(--sig-highlight),transparent_85%)]`,E=`${i} bg-transparent text-[var(--sig-text-muted)] hover:text-[var(--sig-highlight)] hover:bg-[color-mix(in_srgb,var(--sig-highlight),var(--sig-bg)_94%)]`;let u=ie("agent"),y=ie(!1),k=ie(null),h=ie(!1);const x=c(()=>r.map(v=>({id:v.id,title:v.title,dirty:a.isAnyPathDirty(v.source,v.paths)}))),_=c(()=>a.isDirty||e(h));xt(()=>{const v=t.configFiles;Ar(()=>a.init(v))}),xt(()=>(dr(e(_)),()=>{dr(!1)}));async function H(){const v=[];a.isDirty&&v.push(a.save()),e(h)&&e(k)&&v.push(e(k).save()),await Promise.all(v),await Tr()}function A(){w(y,!0)}function C(){a.reset(),e(k)?.discard(),w(y,!1)}function I(v){if(v.key==="s"&&(v.metaKey||v.ctrlKey)){v.preventDefault(),e(_)&&!a.saving&&H();return}}function V(v){if(!v)return"";try{return`Last saved ${new Date(v).toLocaleTimeString()}`}catch{return""}}var j=Ds();yr("keydown",xr,I);var U=f(j);ua(U,{title:"Settings",children:(v,T)=>{va(v,{group:"engine",get tabs(){return Ur},get activeTab(){return jr.activeTab},onselect:(P,Z)=>zr(Z)})}});var F=o(U,2);{var G=v=>{var T=As();s(v,T)},m=v=>{var T=Vs(),P=S(T),Z=f(P);Te(Z,21,()=>r,n=>n.id,(n,g)=>{var M=Ts(),Q=f(M),et=o(Q);{var Ye=ct=>{var He=Ms();s(ct,He)},Ie=c(()=>e(x).find(ct=>ct.id===e(g).id)?.dirty);B(et,ct=>{e(Ie)&&ct(Ye)})}p(M),ee(()=>{It(M,1,Mr(e(u)===e(g).id?l:E),"svelte-1glxw2p"),Y(Q,`${e(g).title??""} `)}),Ke("click",M,()=>w(u,e(g).id,!0)),s(n,M)}),p(Z),p(P);var ne=o(P,2),ge=f(ne),oe=f(ge);{var te=n=>{ln(n,{})},$=n=>{Rn(n,{})},K=n=>{An(n,{})},se=n=>{ws(n,{})},Oe=n=>{On(n,{})},N=n=>{$s(n,{})},z=n=>{Ns(n,{})},re=n=>{$n(n,{})},q=n=>{fn(n,{})};B(oe,n=>{e(u)==="agent"?n(te):e(u)==="network"?n($,1):e(u)==="embeddings"?n(K,2):e(u)==="search"?n(se,3):e(u)==="memory"?n(Oe,4):e(u)==="pipeline"?n(N,5):e(u)==="trust"?n(z,6):e(u)==="auth"?n(re,7):e(u)==="appearance"&&n(q,8)})}p(ge);var ve=o(ge,2);sr(za(ve,{get configFiles(){return t.configFiles},onDirtyChange:n=>w(h,n,!0)}),n=>w(k,n,!0),()=>e(k)),p(ne);var be=o(ne,2),we=f(be),me=f(we);let ae;var Pe=f(me,!0);p(me);var Je=o(me,2);{var Xe=n=>{var g=Is(),M=f(g,!0);p(g),ee(Q=>Y(M,Q),[()=>V(a.lastSavedAt)]),s(n,g)};B(Je,n=>{a.lastSavedAt&&n(Xe)})}p(we);var Le=o(we,2);{var st=n=>{var g=Fs();ee(()=>g.disabled=a.saving),Ke("click",g,A),s(n,g)};B(Le,n=>{e(_)&&n(st)})}var ot=o(Le,2),lt=f(ot,!0);p(ot),p(be);var it=o(be,2);{var We=n=>{var g=Os(),M=f(g),Q=o(f(M),4),et=f(Q),Ye=o(et,2);p(Q),p(M),p(g),Ke("click",g,Ie=>{Ie.currentTarget===Ie.target&&w(y,!1)}),Ke("keydown",g,Ie=>{(Ie.key==="Escape"||Ie.key==="Enter"||Ie.key===" ")&&(Ie.preventDefault(),w(y,!1))}),Ke("click",et,()=>w(y,!1)),Ke("click",Ye,C),s(n,g)};B(it,n=>{e(y)&&n(We)})}ee(()=>{ae=It(me,1,"save-state svelte-1glxw2p",null,ae,{dirty:e(_)}),Y(Pe,e(_)?"Unsaved changes":"All saved"),ot.disabled=a.saving||!e(_),Y(lt,a.saving?"Saving...":"Save")}),Ke("click",ot,H),s(v,T)};B(F,v=>{a.hasFiles?v(m,-1):v(G)})}p(j),s(b,j),qe()}Lt(["click","keydown"]);export{to as default};