@shahmilsaari/memory-core 0.2.18 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/dist/{chunk-J7SPACA3.js → chunk-PDQXIKL7.js} +1847 -457
- package/dist/cli.js +268 -68
- package/dist/dashboard/assets/index-C612Qqha.js +2 -0
- package/dist/dashboard/index.html +1 -1
- package/dist/{dashboard-server-QMNMSEPJ.js → dashboard-server-AUX4BQP6.js} +141 -37
- package/package.json +4 -1
- package/dist/chunk-HAGRPKR3.js +0 -30
- package/dist/chunk-KSLFLWB4.js +0 -32
- package/dist/chunk-WUL7HLAA.js +0 -264
- package/dist/dashboard/assets/index-BuVM8CHT.js +0 -2
- package/dist/db-MF3VKVKH.js +0 -30
- package/dist/embedding-PAYD2JYW.js +0 -8
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var Ul=Object.defineProperty;var zn=e=>{throw TypeError(e)};var Vl=(e,t,s)=>t in e?Ul(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var Pe=(e,t,s)=>Vl(e,typeof t!="symbol"?t+"":t,s),tr=(e,t,s)=>t.has(e)||zn("Cannot "+s);var o=(e,t,s)=>(tr(e,t,"read from private field"),s?s.call(e):t.get(e)),N=(e,t,s)=>t.has(e)?zn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),D=(e,t,s,r)=>(tr(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s),U=(e,t,s)=>(tr(e,t,"access private method"),s);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const v of i.addedNodes)v.tagName==="LINK"&&v.rel==="modulepreload"&&r(v)}).observe(document,{childList:!0,subtree:!0});function s(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(a){if(a.ep)return;a.ep=!0;const i=s(a);fetch(a.href,i)}})();const zl=!1;var wr=Array.isArray,Hl=Array.prototype.indexOf,Ht=Array.prototype.includes,Ws=Array.from,Bl=Object.defineProperty,os=Object.getOwnPropertyDescriptor,ua=Object.getOwnPropertyDescriptors,Kl=Object.prototype,Yl=Array.prototype,Er=Object.getPrototypeOf,Hn=Object.isExtensible;const Gl=()=>{};function Jl(e){return e()}function lr(e){for(var t=0;t<e.length;t++)e[t]()}function va(){var e,t,s=new Promise((r,a)=>{e=r,t=a});return{promise:s,resolve:e,reject:t}}const le=2,Bt=4,ys=8,da=1<<24,Ke=16,qe=32,vt=64,or=128,Ce=512,Q=1024,ae=2048,Ue=4096,ce=8192,Ne=16384,It=32768,Bn=1<<25,Kt=65536,cr=1<<17,Ql=1<<18,Jt=1<<19,pa=1<<20,Be=1<<25,Ct=65536,Fs=1<<21,vs=1<<22,ft=1<<23,St=Symbol("$state"),Qe=new class extends Error{constructor(){super(...arguments);Pe(this,"name","StaleReactionError");Pe(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function _a(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Xl(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Zl(e,t,s){throw new Error("https://svelte.dev/e/each_key_duplicate")}function eo(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function to(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function so(e){throw new Error("https://svelte.dev/e/effect_orphan")}function ro(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function no(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function ao(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function io(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function lo(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const oo=1,co=2,ha=4,fo=8,uo=16,vo=2,ee=Symbol(),ga="http://www.w3.org/1999/xhtml";function po(){console.warn("https://svelte.dev/e/derived_inert")}function _o(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ho(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function ba(e){return e===this.v}function go(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function ma(e){return!go(e,this.v)}let ws=!1,bo=!1;function mo(){ws=!0}let z=null;function Yt(e){z=e}function ya(e,t=!1,s){z={p:z,i:!1,c:null,e:null,s:e,x:null,r:I,l:ws&&!t?{s:null,u:null,$:[]}:null}}function wa(e){var t=z,s=t.e;if(s!==null){t.e=null;for(var r of s)Ua(r)}return t.i=!0,z=t.p,{}}function Es(){return!ws||z!==null&&z.l===null}let bt=[];function Ea(){var e=bt;bt=[],lr(e)}function ut(e){if(bt.length===0&&!cs){var t=bt;queueMicrotask(()=>{t===bt&&Ea()})}bt.push(e)}function yo(){for(;bt.length>0;)Ea()}function xa(e){var t=I;if(t===null)return O.f|=ft,e;if(!(t.f&It)&&!(t.f&Bt))throw e;ct(e,t)}function ct(e,t){for(;t!==null;){if(t.f&or){if(!(t.f&It))throw e;try{t.b.error(e);return}catch(s){e=s}}t=t.parent}throw e}const wo=-7169;function G(e,t){e.f=e.f&wo|t}function xr(e){e.f&Ce||e.deps===null?G(e,Q):G(e,Ue)}function ka(e){if(e!==null)for(const t of e)!(t.f&le)||!(t.f&Ct)||(t.f^=Ct,ka(t.deps))}function Sa(e,t,s){e.f&ae?t.add(e):e.f&Ue&&s.add(e),ka(e.deps),G(e,Q)}const gt=new Set;let T=null,ne=null,fr=null,cs=!1,sr=!1,$t=null,Rs=null;var Kn=0;let Eo=1;var Wt,qt,yt,Xe,Ve,ps,ye,_s,lt,Ze,ze,Ut,Vt,wt,X,Cs,Ta,Ns,ur,Ms,xo;const Ps=class Ps{constructor(){N(this,X);Pe(this,"id",Eo++);Pe(this,"current",new Map);Pe(this,"previous",new Map);N(this,Wt,new Set);N(this,qt,new Set);N(this,yt,new Set);N(this,Xe,new Map);N(this,Ve,new Map);N(this,ps,null);N(this,ye,[]);N(this,_s,[]);N(this,lt,new Set);N(this,Ze,new Set);N(this,ze,new Map);N(this,Ut,new Set);Pe(this,"is_fork",!1);N(this,Vt,!1);N(this,wt,new Set)}skip_effect(t){o(this,ze).has(t)||o(this,ze).set(t,{d:[],m:[]}),o(this,Ut).delete(t)}unskip_effect(t,s=r=>this.schedule(r)){var r=o(this,ze).get(t);if(r){o(this,ze).delete(t);for(var a of r.d)G(a,ae),s(a);for(a of r.m)G(a,Ue),s(a)}o(this,Ut).add(t)}capture(t,s,r=!1){t.v!==ee&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&ft||(this.current.set(t,[s,r]),ne==null||ne.set(t,s)),this.is_fork||(t.v=s)}activate(){T=this}deactivate(){T=null,ne=null}flush(){try{sr=!0,T=this,U(this,X,Ns).call(this)}finally{Kn=0,fr=null,$t=null,Rs=null,sr=!1,T=null,ne=null,Tt.clear()}}discard(){for(const t of o(this,qt))t(this);o(this,qt).clear(),o(this,yt).clear(),gt.delete(this)}register_created_effect(t){o(this,_s).push(t)}increment(t,s){let r=o(this,Xe).get(s)??0;if(o(this,Xe).set(s,r+1),t){let a=o(this,Ve).get(s)??0;o(this,Ve).set(s,a+1)}}decrement(t,s,r){let a=o(this,Xe).get(s)??0;if(a===1?o(this,Xe).delete(s):o(this,Xe).set(s,a-1),t){let i=o(this,Ve).get(s)??0;i===1?o(this,Ve).delete(s):o(this,Ve).set(s,i-1)}o(this,Vt)||r||(D(this,Vt,!0),ut(()=>{D(this,Vt,!1),this.flush()}))}transfer_effects(t,s){for(const r of t)o(this,lt).add(r);for(const r of s)o(this,Ze).add(r);t.clear(),s.clear()}oncommit(t){o(this,Wt).add(t)}ondiscard(t){o(this,qt).add(t)}on_fork_commit(t){o(this,yt).add(t)}run_fork_commit_callbacks(){for(const t of o(this,yt))t(this);o(this,yt).clear()}settled(){return(o(this,ps)??D(this,ps,va())).promise}static ensure(){if(T===null){const t=T=new Ps;sr||(gt.add(T),cs||ut(()=>{T===t&&t.flush()}))}return T}apply(){{ne=null;return}}schedule(t){var a;if(fr=t,(a=t.b)!=null&&a.is_pending&&t.f&(Bt|ys|da)&&!(t.f&It)){t.b.defer_effect(t);return}for(var s=t;s.parent!==null;){s=s.parent;var r=s.f;if($t!==null&&s===I&&(O===null||!(O.f&le)))return;if(r&(vt|qe)){if(!(r&Q))return;s.f^=Q}}o(this,ye).push(s)}};Wt=new WeakMap,qt=new WeakMap,yt=new WeakMap,Xe=new WeakMap,Ve=new WeakMap,ps=new WeakMap,ye=new WeakMap,_s=new WeakMap,lt=new WeakMap,Ze=new WeakMap,ze=new WeakMap,Ut=new WeakMap,Vt=new WeakMap,wt=new WeakMap,X=new WeakSet,Cs=function(){return this.is_fork||o(this,Ve).size>0},Ta=function(){for(const r of o(this,wt))for(const a of o(r,Ve).keys()){for(var t=!1,s=a;s.parent!==null;){if(o(this,ze).has(s)){t=!0;break}s=s.parent}if(!t)return!0}return!1},Ns=function(){var d,f;if(Kn++>1e3&&(gt.delete(this),So()),!U(this,X,Cs).call(this)){for(const p of o(this,lt))o(this,Ze).delete(p),G(p,ae),this.schedule(p);for(const p of o(this,Ze))G(p,Ue),this.schedule(p)}const t=o(this,ye);D(this,ye,[]),this.apply();var s=$t=[],r=[],a=Rs=[];for(const p of t)try{U(this,X,ur).call(this,p,s,r)}catch(g){throw Ca(p),g}if(T=null,a.length>0){var i=Ps.ensure();for(const p of a)i.schedule(p)}if($t=null,Rs=null,U(this,X,Cs).call(this)||U(this,X,Ta).call(this)){U(this,X,Ms).call(this,r),U(this,X,Ms).call(this,s);for(const[p,g]of o(this,ze))Ra(p,g)}else{o(this,Xe).size===0&>.delete(this),o(this,lt).clear(),o(this,Ze).clear();for(const p of o(this,Wt))p(this);o(this,Wt).clear(),Yn(r),Yn(s),(d=o(this,ps))==null||d.resolve()}var v=T;if(o(this,ye).length>0){const p=v??(v=this);o(p,ye).push(...o(this,ye).filter(g=>!o(p,ye).includes(g)))}v!==null&&(gt.add(v),U(f=v,X,Ns).call(f))},ur=function(t,s,r){t.f^=Q;for(var a=t.first;a!==null;){var i=a.f,v=(i&(qe|vt))!==0,d=v&&(i&Q)!==0,f=d||(i&ce)!==0||o(this,ze).has(a);if(!f&&a.fn!==null){v?a.f^=Q:i&Bt?s.push(a):Qt(a)&&(i&Ke&&o(this,Ze).add(a),Dt(a));var p=a.first;if(p!==null){a=p;continue}}for(;a!==null;){var g=a.next;if(g!==null){a=g;break}a=a.parent}}},Ms=function(t){for(var s=0;s<t.length;s+=1)Sa(t[s],o(this,lt),o(this,Ze))},xo=function(){var g,x,w;for(const E of gt){var t=E.id<this.id,s=[];for(const[m,[u,y]]of this.current){if(E.current.has(m)){var r=E.current.get(m)[0];if(t&&u!==r)E.current.set(m,[u,y]);else continue}s.push(m)}var a=[...E.current.keys()].filter(m=>!this.current.has(m));if(a.length===0)t&&E.discard();else if(s.length>0){if(t)for(const m of o(this,Ut))E.unskip_effect(m,u=>{var y;u.f&(Ke|vs)?E.schedule(u):U(y=E,X,Ms).call(y,[u])});E.activate();var i=new Set,v=new Map;for(var d of s)Aa(d,a,i,v);v=new Map;var f=[...E.current.keys()].filter(m=>this.current.has(m)?this.current.get(m)[0]!==m:!0);for(const m of o(this,_s))!(m.f&(Ne|ce|cr))&&kr(m,f,v)&&(m.f&(vs|Ke)?(G(m,ae),E.schedule(m)):o(E,lt).add(m));if(o(E,ye).length>0){E.apply();for(var p of o(E,ye))U(g=E,X,ur).call(g,p,[],[]);D(E,ye,[])}E.deactivate()}}for(const E of gt)o(E,wt).has(this)&&(o(E,wt).delete(this),o(E,wt).size===0&&!U(x=E,X,Cs).call(x)&&(E.activate(),U(w=E,X,Ns).call(w)))};let Nt=Ps;function ko(e){var t=cs;cs=!0;try{for(var s;;){if(yo(),T===null)return s;T.flush()}}finally{cs=t}}function So(){try{ro()}catch(e){ct(e,fr)}}let je=null;function Yn(e){var t=e.length;if(t!==0){for(var s=0;s<t;){var r=e[s++];if(!(r.f&(Ne|ce))&&Qt(r)&&(je=new Set,Dt(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&za(r),(je==null?void 0:je.size)>0)){Tt.clear();for(const a of je){if(a.f&(Ne|ce))continue;const i=[a];let v=a.parent;for(;v!==null;)je.has(v)&&(je.delete(v),i.push(v)),v=v.parent;for(let d=i.length-1;d>=0;d--){const f=i[d];f.f&(Ne|ce)||Dt(f)}}je.clear()}}je=null}}function Aa(e,t,s,r){if(!s.has(e)&&(s.add(e),e.reactions!==null))for(const a of e.reactions){const i=a.f;i&le?Aa(a,t,s,r):i&(vs|Ke)&&!(i&ae)&&kr(a,t,r)&&(G(a,ae),Sr(a))}}function kr(e,t,s){const r=s.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const a of e.deps){if(Ht.call(t,a))return!0;if(a.f&le&&kr(a,t,s))return s.set(a,!0),!0}return s.set(e,!1),!1}function Sr(e){T.schedule(e)}function Ra(e,t){if(!(e.f&qe&&e.f&Q)){e.f&ae?t.d.push(e):e.f&Ue&&t.m.push(e),G(e,Q);for(var s=e.first;s!==null;)Ra(s,t),s=s.next}}function Ca(e){G(e,Q);for(var t=e.first;t!==null;)Ca(t),t=t.next}function To(e){let t=0,s=Mt(0),r;return()=>{Cr()&&(n(s),Us(()=>(t===0&&(r=b(()=>e(()=>fs(s)))),t+=1,()=>{ut(()=>{t-=1,t===0&&(r==null||r(),r=void 0,fs(s))})})))}}var Ao=Kt|Jt;function Ro(e,t,s,r){new Co(e,t,s,r)}var Se,yr,Te,Et,ve,Ae,oe,we,et,xt,ot,zt,hs,gs,tt,js,J,No,Mo,Do,vr,Ds,Is,dr,pr;class Co{constructor(t,s,r,a){N(this,J);Pe(this,"parent");Pe(this,"is_pending",!1);Pe(this,"transform_error");N(this,Se);N(this,yr,null);N(this,Te);N(this,Et);N(this,ve);N(this,Ae,null);N(this,oe,null);N(this,we,null);N(this,et,null);N(this,xt,0);N(this,ot,0);N(this,zt,!1);N(this,hs,new Set);N(this,gs,new Set);N(this,tt,null);N(this,js,To(()=>(D(this,tt,Mt(o(this,xt))),()=>{D(this,tt,null)})));var i;D(this,Se,t),D(this,Te,s),D(this,Et,v=>{var d=I;d.b=this,d.f|=or,r(v)}),this.parent=I.b,this.transform_error=a??((i=this.parent)==null?void 0:i.transform_error)??(v=>v),D(this,ve,Mr(()=>{U(this,J,vr).call(this)},Ao))}defer_effect(t){Sa(t,o(this,hs),o(this,gs))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!o(this,Te).pending}update_pending_count(t,s){U(this,J,dr).call(this,t,s),D(this,xt,o(this,xt)+t),!(!o(this,tt)||o(this,zt))&&(D(this,zt,!0),ut(()=>{D(this,zt,!1),o(this,tt)&&Gt(o(this,tt),o(this,xt))}))}get_effect_pending(){return o(this,js).call(this),n(o(this,tt))}error(t){if(!o(this,Te).onerror&&!o(this,Te).failed)throw t;T!=null&&T.is_fork?(o(this,Ae)&&T.skip_effect(o(this,Ae)),o(this,oe)&&T.skip_effect(o(this,oe)),o(this,we)&&T.skip_effect(o(this,we)),T.on_fork_commit(()=>{U(this,J,pr).call(this,t)})):U(this,J,pr).call(this,t)}}Se=new WeakMap,yr=new WeakMap,Te=new WeakMap,Et=new WeakMap,ve=new WeakMap,Ae=new WeakMap,oe=new WeakMap,we=new WeakMap,et=new WeakMap,xt=new WeakMap,ot=new WeakMap,zt=new WeakMap,hs=new WeakMap,gs=new WeakMap,tt=new WeakMap,js=new WeakMap,J=new WeakSet,No=function(){try{D(this,Ae,Re(()=>o(this,Et).call(this,o(this,Se))))}catch(t){this.error(t)}},Mo=function(t){const s=o(this,Te).failed;s&&D(this,we,Re(()=>{s(o(this,Se),()=>t,()=>()=>{})}))},Do=function(){const t=o(this,Te).pending;t&&(this.is_pending=!0,D(this,oe,Re(()=>t(o(this,Se)))),ut(()=>{var s=D(this,et,document.createDocumentFragment()),r=st();s.append(r),D(this,Ae,U(this,J,Is).call(this,()=>Re(()=>o(this,Et).call(this,r)))),o(this,ot)===0&&(o(this,Se).before(s),D(this,et,null),At(o(this,oe),()=>{D(this,oe,null)}),U(this,J,Ds).call(this,T))}))},vr=function(){try{if(this.is_pending=this.has_pending_snippet(),D(this,ot,0),D(this,xt,0),D(this,Ae,Re(()=>{o(this,Et).call(this,o(this,Se))})),o(this,ot)>0){var t=D(this,et,document.createDocumentFragment());Or(o(this,Ae),t);const s=o(this,Te).pending;D(this,oe,Re(()=>s(o(this,Se))))}else U(this,J,Ds).call(this,T)}catch(s){this.error(s)}},Ds=function(t){this.is_pending=!1,t.transfer_effects(o(this,hs),o(this,gs))},Is=function(t){var s=I,r=O,a=z;Ie(o(this,ve)),De(o(this,ve)),Yt(o(this,ve).ctx);try{return Nt.ensure(),t()}catch(i){return xa(i),null}finally{Ie(s),De(r),Yt(a)}},dr=function(t,s){var r;if(!this.has_pending_snippet()){this.parent&&U(r=this.parent,J,dr).call(r,t,s);return}D(this,ot,o(this,ot)+t),o(this,ot)===0&&(U(this,J,Ds).call(this,s),o(this,oe)&&At(o(this,oe),()=>{D(this,oe,null)}),o(this,et)&&(o(this,Se).before(o(this,et)),D(this,et,null)))},pr=function(t){o(this,Ae)&&(pe(o(this,Ae)),D(this,Ae,null)),o(this,oe)&&(pe(o(this,oe)),D(this,oe,null)),o(this,we)&&(pe(o(this,we)),D(this,we,null));var s=o(this,Te).onerror;let r=o(this,Te).failed;var a=!1,i=!1;const v=()=>{if(a){ho();return}a=!0,i&&lo(),o(this,we)!==null&&At(o(this,we),()=>{D(this,we,null)}),U(this,J,Is).call(this,()=>{U(this,J,vr).call(this)})},d=f=>{try{i=!0,s==null||s(f,v),i=!1}catch(p){ct(p,o(this,ve)&&o(this,ve).parent)}r&&D(this,we,U(this,J,Is).call(this,()=>{try{return Re(()=>{var p=I;p.b=this,p.f|=or,r(o(this,Se),()=>f,()=>v)})}catch(p){return ct(p,o(this,ve).parent),null}}))};ut(()=>{var f;try{f=this.transform_error(t)}catch(p){ct(p,o(this,ve)&&o(this,ve).parent);return}f!==null&&typeof f=="object"&&typeof f.then=="function"?f.then(d,p=>ct(p,o(this,ve)&&o(this,ve).parent)):d(f)})};function Io(e,t,s,r){const a=Es()?Tr:Ma;var i=e.filter(w=>!w.settled);if(s.length===0&&i.length===0){r(t.map(a));return}var v=I,d=Oo(),f=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(w=>w.promise)):null;function p(w){d();try{r(w)}catch(E){v.f&Ne||ct(E,v)}Ls()}if(s.length===0){f.then(()=>p(t.map(a)));return}var g=Na();function x(){Promise.all(s.map(w=>Fo(w))).then(w=>p([...t.map(a),...w])).catch(w=>ct(w,v)).finally(()=>g())}f?f.then(()=>{d(),x(),Ls()}):x()}function Oo(){var e=I,t=O,s=z,r=T;return function(i=!0){Ie(e),De(t),Yt(s),i&&!(e.f&Ne)&&(r==null||r.activate(),r==null||r.apply())}}function Ls(e=!0){Ie(null),De(null),Yt(null),e&&(T==null||T.deactivate())}function Na(){var e=I,t=e.b,s=T,r=t.is_rendered();return t.update_pending_count(1,s),s.increment(r,e),(a=!1)=>{t.update_pending_count(-1,s),s.decrement(r,e,a)}}function Tr(e){var t=le|ae;return I!==null&&(I.f|=Jt),{ctx:z,deps:null,effects:null,equals:ba,f:t,fn:e,reactions:null,rv:0,v:ee,wv:0,parent:I,ac:null}}function Fo(e,t,s){let r=I;r===null&&Xl();var a=void 0,i=Mt(ee),v=!O,d=new Map;return Jo(()=>{var E;var f=I,p=va();a=p.promise;try{Promise.resolve(e()).then(p.resolve,p.reject).finally(Ls)}catch(m){p.reject(m),Ls()}var g=T;if(v){if(f.f&It)var x=Na();if(r.b.is_rendered())(E=d.get(g))==null||E.reject(Qe),d.delete(g);else{for(const m of d.values())m.reject(Qe);d.clear()}d.set(g,p)}const w=(m,u=void 0)=>{if(x){var y=u===Qe;x(y)}if(!(u===Qe||f.f&Ne)){if(g.activate(),u)i.f|=ft,Gt(i,u);else{i.f&ft&&(i.f^=ft),Gt(i,m);for(const[R,j]of d){if(d.delete(R),R===g)break;j.reject(Qe)}}g.deactivate()}};p.promise.then(w,m=>w(null,m||"unknown"))}),Nr(()=>{for(const f of d.values())f.reject(Qe)}),new Promise(f=>{function p(g){function x(){g===a?f(i):p(a)}g.then(x,x)}p(a)})}function Ma(e){const t=Tr(e);return t.equals=ma,t}function Lo(e){var t=e.effects;if(t!==null){e.effects=null;for(var s=0;s<t.length;s+=1)pe(t[s])}}function Ar(e){var t,s=I,r=e.parent;if(!dt&&r!==null&&r.f&(Ne|ce))return po(),e.v;Ie(r);try{e.f&=~Ct,Lo(e),t=Ja(e)}finally{Ie(s)}return t}function Da(e){var t=Ar(e);if(!e.equals(t)&&(e.wv=Ya(),(!(T!=null&&T.is_fork)||e.deps===null)&&(T!==null?T.capture(e,t,!0):e.v=t,e.deps===null))){G(e,Q);return}dt||(ne!==null?(Cr()||T!=null&&T.is_fork)&&ne.set(e,t):xr(e))}function Po(e){var t,s;if(e.effects!==null)for(const r of e.effects)(r.teardown||r.ac)&&((t=r.teardown)==null||t.call(r),(s=r.ac)==null||s.abort(Qe),r.teardown=Gl,r.ac=null,ds(r,0),Dr(r))}function Ia(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Dt(t)}let _r=new Set;const Tt=new Map;let Oa=!1;function Mt(e,t){var s={f:0,v:e,reactions:null,equals:ba,rv:0,wv:0};return s}function at(e,t){const s=Mt(e);return Zo(s),s}function Y(e,t=!1,s=!0){var a;const r=Mt(e);return t||(r.equals=ma),ws&&s&&z!==null&&z.l!==null&&((a=z.l).s??(a.s=[])).push(r),r}function rs(e,t){return M(e,b(()=>n(e))),t}function M(e,t,s=!1){O!==null&&(!We||O.f&cr)&&Es()&&O.f&(le|Ke|vs|cr)&&(Me===null||!Ht.call(Me,e))&&io();let r=s?is(t):t;return Gt(e,r,Rs)}function Gt(e,t,s=null){if(!e.equals(t)){Tt.set(e,dt?t:e.v);var r=Nt.ensure();if(r.capture(e,t),e.f&le){const a=e;e.f&ae&&Ar(a),ne===null&&xr(a)}e.wv=Ya(),Fa(e,ae,s),Es()&&I!==null&&I.f&Q&&!(I.f&(qe|vt))&&(ke===null?ec([e]):ke.push(e)),!r.is_fork&&_r.size>0&&!Oa&&jo()}return t}function jo(){Oa=!1;for(const e of _r)e.f&Q&&G(e,Ue),Qt(e)&&Dt(e);_r.clear()}function fs(e){M(e,e.v+1)}function Fa(e,t,s){var r=e.reactions;if(r!==null)for(var a=Es(),i=r.length,v=0;v<i;v++){var d=r[v],f=d.f;if(!(!a&&d===I)){var p=(f&ae)===0;if(p&&G(d,t),f&le){var g=d;ne==null||ne.delete(g),f&Ct||(f&Ce&&(I===null||!(I.f&Fs))&&(d.f|=Ct),Fa(g,Ue,s))}else if(p){var x=d;f&Ke&&je!==null&&je.add(x),s!==null?s.push(x):Sr(x)}}}}function is(e){if(typeof e!="object"||e===null||St in e)return e;const t=Er(e);if(t!==Kl&&t!==Yl)return e;var s=new Map,r=wr(e),a=at(0),i=Rt,v=d=>{if(Rt===i)return d();var f=O,p=Rt;De(null),Zn(i);var g=d();return De(f),Zn(p),g};return r&&s.set("length",at(e.length)),new Proxy(e,{defineProperty(d,f,p){(!("value"in p)||p.configurable===!1||p.enumerable===!1||p.writable===!1)&&no();var g=s.get(f);return g===void 0?v(()=>{var x=at(p.value);return s.set(f,x),x}):M(g,p.value,!0),!0},deleteProperty(d,f){var p=s.get(f);if(p===void 0){if(f in d){const g=v(()=>at(ee));s.set(f,g),fs(a)}}else M(p,ee),fs(a);return!0},get(d,f,p){var E;if(f===St)return e;var g=s.get(f),x=f in d;if(g===void 0&&(!x||(E=os(d,f))!=null&&E.writable)&&(g=v(()=>{var m=is(x?d[f]:ee),u=at(m);return u}),s.set(f,g)),g!==void 0){var w=n(g);return w===ee?void 0:w}return Reflect.get(d,f,p)},getOwnPropertyDescriptor(d,f){var p=Reflect.getOwnPropertyDescriptor(d,f);if(p&&"value"in p){var g=s.get(f);g&&(p.value=n(g))}else if(p===void 0){var x=s.get(f),w=x==null?void 0:x.v;if(x!==void 0&&w!==ee)return{enumerable:!0,configurable:!0,value:w,writable:!0}}return p},has(d,f){var w;if(f===St)return!0;var p=s.get(f),g=p!==void 0&&p.v!==ee||Reflect.has(d,f);if(p!==void 0||I!==null&&(!g||(w=os(d,f))!=null&&w.writable)){p===void 0&&(p=v(()=>{var E=g?is(d[f]):ee,m=at(E);return m}),s.set(f,p));var x=n(p);if(x===ee)return!1}return g},set(d,f,p,g){var L;var x=s.get(f),w=f in d;if(r&&f==="length")for(var E=p;E<x.v;E+=1){var m=s.get(E+"");m!==void 0?M(m,ee):E in d&&(m=v(()=>at(ee)),s.set(E+"",m))}if(x===void 0)(!w||(L=os(d,f))!=null&&L.writable)&&(x=v(()=>at(void 0)),M(x,is(p)),s.set(f,x));else{w=x.v!==ee;var u=v(()=>is(p));M(x,u)}var y=Reflect.getOwnPropertyDescriptor(d,f);if(y!=null&&y.set&&y.set.call(g,p),!w){if(r&&typeof f=="string"){var R=s.get("length"),j=Number(f);Number.isInteger(j)&&j>=R.v&&M(R,j+1)}fs(a)}return!0},ownKeys(d){n(a);var f=Reflect.ownKeys(d).filter(x=>{var w=s.get(x);return w===void 0||w.v!==ee});for(var[p,g]of s)g.v!==ee&&!(p in d)&&f.push(p);return f},setPrototypeOf(){ao()}})}function Gn(e){try{if(e!==null&&typeof e=="object"&&St in e)return e[St]}catch{}return e}function $o(e,t){return Object.is(Gn(e),Gn(t))}var Jn,La,Pa,ja;function Wo(){if(Jn===void 0){Jn=window,La=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,s=Text.prototype;Pa=os(t,"firstChild").get,ja=os(t,"nextSibling").get,Hn(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Hn(s)&&(s.__t=void 0)}}function st(e=""){return document.createTextNode(e)}function Rr(e){return Pa.call(e)}function xs(e){return ja.call(e)}function _(e,t){return Rr(e)}function qo(e,t=!1){{var s=Rr(e);return s instanceof Comment&&s.data===""?xs(s):s}}function h(e,t=1,s=!1){let r=e;for(;t--;)r=xs(r);return r}function Uo(e){e.textContent=""}function $a(){return!1}function Vo(e,t,s){return document.createElementNS(ga,e,void 0)}let Qn=!1;function zo(){Qn||(Qn=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const s of e.target.elements)(t=s.__on_r)==null||t.call(s)})},{capture:!0}))}function qs(e){var t=O,s=I;De(null),Ie(null);try{return e()}finally{De(t),Ie(s)}}function Wa(e,t,s,r=s){e.addEventListener(t,()=>qs(s));const a=e.__on_r;a?e.__on_r=()=>{a(),r(!0)}:e.__on_r=()=>r(!0),zo()}function qa(e){I===null&&(O===null&&so(),to()),dt&&eo()}function Ho(e,t){var s=t.last;s===null?t.last=t.first=e:(s.next=e,e.prev=s,t.last=e)}function Ye(e,t){var s=I;s!==null&&s.f&ce&&(e|=ce);var r={ctx:z,deps:null,nodes:null,f:e|ae|Ce,first:null,fn:t,last:null,next:null,parent:s,b:s&&s.b,prev:null,teardown:null,wv:0,ac:null};T==null||T.register_created_effect(r);var a=r;if(e&Bt)$t!==null?$t.push(r):Nt.ensure().schedule(r);else if(t!==null){try{Dt(r)}catch(v){throw pe(r),v}a.deps===null&&a.teardown===null&&a.nodes===null&&a.first===a.last&&!(a.f&Jt)&&(a=a.first,e&Ke&&e&Kt&&a!==null&&(a.f|=Kt))}if(a!==null&&(a.parent=s,s!==null&&Ho(a,s),O!==null&&O.f&le&&!(e&vt))){var i=O;(i.effects??(i.effects=[])).push(a)}return r}function Cr(){return O!==null&&!We}function Nr(e){const t=Ye(ys,null);return G(t,Q),t.teardown=e,t}function hr(e){qa();var t=I.f,s=!O&&(t&qe)!==0&&(t&It)===0;if(s){var r=z;(r.e??(r.e=[])).push(e)}else return Ua(e)}function Ua(e){return Ye(Bt|pa,e)}function Bo(e){return qa(),Ye(ys|pa,e)}function Ko(e){Nt.ensure();const t=Ye(vt|Jt,e);return(s={})=>new Promise(r=>{s.outro?At(t,()=>{pe(t),r(void 0)}):(pe(t),r(void 0))})}function Yo(e){return Ye(Bt,e)}function be(e,t){var s=z,r={effect:null,ran:!1,deps:e};s.l.$.push(r),r.effect=Us(()=>{if(e(),!r.ran){r.ran=!0;var a=I;try{Ie(a.parent),b(t)}finally{Ie(a)}}})}function Go(){var e=z;Us(()=>{for(var t of e.l.$){t.deps();var s=t.effect;s.f&Q&&s.deps!==null&&G(s,Ue),Qt(s)&&Dt(s),t.ran=!1}})}function Jo(e){return Ye(vs|Jt,e)}function Us(e,t=0){return Ye(ys|t,e)}function V(e,t=[],s=[],r=[]){Io(r,t,s,a=>{Ye(ys,()=>e(...a.map(n)))})}function Mr(e,t=0){var s=Ye(Ke|t,e);return s}function Re(e){return Ye(qe|Jt,e)}function Va(e){var t=e.teardown;if(t!==null){const s=dt,r=O;Xn(!0),De(null);try{t.call(null)}finally{Xn(s),De(r)}}}function Dr(e,t=!1){var s=e.first;for(e.first=e.last=null;s!==null;){const a=s.ac;a!==null&&qs(()=>{a.abort(Qe)});var r=s.next;s.f&vt?s.parent=null:pe(s,t),s=r}}function Qo(e){for(var t=e.first;t!==null;){var s=t.next;t.f&qe||pe(t),t=s}}function pe(e,t=!0){var s=!1;(t||e.f&Ql)&&e.nodes!==null&&e.nodes.end!==null&&(Xo(e.nodes.start,e.nodes.end),s=!0),G(e,Bn),Dr(e,t&&!s),ds(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();Va(e),e.f^=Bn,e.f|=Ne;var a=e.parent;a!==null&&a.first!==null&&za(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Xo(e,t){for(;e!==null;){var s=e===t?null:xs(e);e.remove(),e=s}}function za(e){var t=e.parent,s=e.prev,r=e.next;s!==null&&(s.next=r),r!==null&&(r.prev=s),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=s))}function At(e,t,s=!0){var r=[];Ha(e,r,!0);var a=()=>{s&&pe(e),t&&t()},i=r.length;if(i>0){var v=()=>--i||a();for(var d of r)d.out(v)}else a()}function Ha(e,t,s){if(!(e.f&ce)){e.f^=ce;var r=e.nodes&&e.nodes.t;if(r!==null)for(const d of r)(d.is_global||s)&&t.push(d);for(var a=e.first;a!==null;){var i=a.next;if(!(a.f&vt)){var v=(a.f&Kt)!==0||(a.f&qe)!==0&&(e.f&Ke)!==0;Ha(a,t,v?s:!1)}a=i}}}function Ir(e){Ba(e,!0)}function Ba(e,t){if(e.f&ce){e.f^=ce,e.f&Q||(G(e,ae),Nt.ensure().schedule(e));for(var s=e.first;s!==null;){var r=s.next,a=(s.f&Kt)!==0||(s.f&qe)!==0;Ba(s,a?t:!1),s=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const v of i)(v.is_global||t)&&v.in()}}function Or(e,t){if(e.nodes)for(var s=e.nodes.start,r=e.nodes.end;s!==null;){var a=s===r?null:xs(s);t.append(s),s=a}}let Os=!1,dt=!1;function Xn(e){dt=e}let O=null,We=!1;function De(e){O=e}let I=null;function Ie(e){I=e}let Me=null;function Zo(e){O!==null&&(Me===null?Me=[e]:Me.push(e))}let de=null,me=0,ke=null;function ec(e){ke=e}let Ka=1,mt=0,Rt=mt;function Zn(e){Rt=e}function Ya(){return++Ka}function Qt(e){var t=e.f;if(t&ae)return!0;if(t&le&&(e.f&=~Ct),t&Ue){for(var s=e.deps,r=s.length,a=0;a<r;a++){var i=s[a];if(Qt(i)&&Da(i),i.wv>e.wv)return!0}t&Ce&&ne===null&&G(e,Q)}return!1}function Ga(e,t,s=!0){var r=e.reactions;if(r!==null&&!(Me!==null&&Ht.call(Me,e)))for(var a=0;a<r.length;a++){var i=r[a];i.f&le?Ga(i,t,!1):t===i&&(s?G(i,ae):i.f&Q&&G(i,Ue),Sr(i))}}function Ja(e){var u;var t=de,s=me,r=ke,a=O,i=Me,v=z,d=We,f=Rt,p=e.f;de=null,me=0,ke=null,O=p&(qe|vt)?null:e,Me=null,Yt(e.ctx),We=!1,Rt=++mt,e.ac!==null&&(qs(()=>{e.ac.abort(Qe)}),e.ac=null);try{e.f|=Fs;var g=e.fn,x=g();e.f|=It;var w=e.deps,E=T==null?void 0:T.is_fork;if(de!==null){var m;if(E||ds(e,me),w!==null&&me>0)for(w.length=me+de.length,m=0;m<de.length;m++)w[me+m]=de[m];else e.deps=w=de;if(Cr()&&e.f&Ce)for(m=me;m<w.length;m++)((u=w[m]).reactions??(u.reactions=[])).push(e)}else!E&&w!==null&&me<w.length&&(ds(e,me),w.length=me);if(Es()&&ke!==null&&!We&&w!==null&&!(e.f&(le|Ue|ae)))for(m=0;m<ke.length;m++)Ga(ke[m],e);if(a!==null&&a!==e){if(mt++,a.deps!==null)for(let y=0;y<s;y+=1)a.deps[y].rv=mt;if(t!==null)for(const y of t)y.rv=mt;ke!==null&&(r===null?r=ke:r.push(...ke))}return e.f&ft&&(e.f^=ft),x}catch(y){return xa(y)}finally{e.f^=Fs,de=t,me=s,ke=r,O=a,Me=i,Yt(v),We=d,Rt=f}}function tc(e,t){let s=t.reactions;if(s!==null){var r=Hl.call(s,e);if(r!==-1){var a=s.length-1;a===0?s=t.reactions=null:(s[r]=s[a],s.pop())}}if(s===null&&t.f&le&&(de===null||!Ht.call(de,t))){var i=t;i.f&Ce&&(i.f^=Ce,i.f&=~Ct),i.v!==ee&&xr(i),Po(i),ds(i,0)}}function ds(e,t){var s=e.deps;if(s!==null)for(var r=t;r<s.length;r++)tc(e,s[r])}function Dt(e){var t=e.f;if(!(t&Ne)){G(e,Q);var s=I,r=Os;I=e,Os=!0;try{t&(Ke|da)?Qo(e):Dr(e),Va(e);var a=Ja(e);e.teardown=typeof a=="function"?a:null,e.wv=Ka;var i;zl&&bo&&e.f&ae&&e.deps}finally{Os=r,I=s}}}async function sc(){await Promise.resolve(),ko()}function n(e){var t=e.f,s=(t&le)!==0;if(O!==null&&!We){var r=I!==null&&(I.f&Ne)!==0;if(!r&&(Me===null||!Ht.call(Me,e))){var a=O.deps;if(O.f&Fs)e.rv<mt&&(e.rv=mt,de===null&&a!==null&&a[me]===e?me++:de===null?de=[e]:de.push(e));else{(O.deps??(O.deps=[])).push(e);var i=e.reactions;i===null?e.reactions=[O]:Ht.call(i,O)||i.push(O)}}}if(dt&&Tt.has(e))return Tt.get(e);if(s){var v=e;if(dt){var d=v.v;return(!(v.f&Q)&&v.reactions!==null||Xa(v))&&(d=Ar(v)),Tt.set(v,d),d}var f=(v.f&Ce)===0&&!We&&O!==null&&(Os||(O.f&Ce)!==0),p=(v.f&It)===0;Qt(v)&&(f&&(v.f|=Ce),Da(v)),f&&!p&&(Ia(v),Qa(v))}if(ne!=null&&ne.has(e))return ne.get(e);if(e.f&ft)throw e.v;return e.v}function Qa(e){if(e.f|=Ce,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),t.f&le&&!(t.f&Ce)&&(Ia(t),Qa(t))}function Xa(e){if(e.v===ee)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Tt.has(t)||t.f&le&&Xa(t))return!0;return!1}function b(e){var t=We;try{return We=!0,e()}finally{We=t}}function rc(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(St in e)gr(e);else if(!Array.isArray(e))for(let t in e){const s=e[t];typeof s=="object"&&s&&St in s&&gr(s)}}}function gr(e,t=new Set){if(typeof e=="object"&&e!==null&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let r in e)try{gr(e[r],t)}catch{}const s=Er(e);if(s!==Object.prototype&&s!==Array.prototype&&s!==Map.prototype&&s!==Set.prototype&&s!==Date.prototype){const r=ua(s);for(let a in r){const i=r[a].get;if(i)try{i.call(e)}catch{}}}}}const nc=["touchstart","touchmove"];function ac(e){return nc.includes(e)}const Ss=Symbol("events"),ic=new Set,ea=new Set;function lc(e,t,s,r={}){function a(i){if(r.capture||br.call(t,i),!i.cancelBubble)return qs(()=>s==null?void 0:s.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?ut(()=>{t.addEventListener(e,a,r)}):t.addEventListener(e,a,r),a}function ta(e,t,s,r,a){var i={capture:r,passive:a},v=lc(e,t,s,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Nr(()=>{t.removeEventListener(e,v,i)})}let sa=null;function br(e){var y,R;var t=this,s=t.ownerDocument,r=e.type,a=((y=e.composedPath)==null?void 0:y.call(e))||[],i=a[0]||e.target;sa=e;var v=0,d=sa===e&&e[Ss];if(d){var f=a.indexOf(d);if(f!==-1&&(t===document||t===window)){e[Ss]=t;return}var p=a.indexOf(t);if(p===-1)return;f<=p&&(v=f)}if(i=a[v]||e.target,i!==t){Bl(e,"currentTarget",{configurable:!0,get(){return i||s}});var g=O,x=I;De(null),Ie(null);try{for(var w,E=[];i!==null;){var m=i.assignedSlot||i.parentNode||i.host||null;try{var u=(R=i[Ss])==null?void 0:R[r];u!=null&&(!i.disabled||e.target===i)&&u.call(i,e)}catch(j){w?E.push(j):w=j}if(e.cancelBubble||m===t||m===null)break;i=m}if(w){for(let j of E)queueMicrotask(()=>{throw j});throw w}}finally{e[Ss]=t,delete e.currentTarget,De(g),Ie(x)}}}var ca;const rr=((ca=globalThis==null?void 0:globalThis.window)==null?void 0:ca.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function oc(e){return(rr==null?void 0:rr.createHTML(e))??e}function cc(e){var t=Vo("template");return t.innerHTML=oc(e.replaceAll("<!>","<!---->")),t.content}function Fr(e,t){var s=I;s.nodes===null&&(s.nodes={start:e,end:t,a:null,t:null})}function W(e,t){var s=(t&vo)!==0,r,a=!e.startsWith("<!>");return()=>{r===void 0&&(r=cc(a?e:"<!>"+e),r=Rr(r));var i=s||La?document.importNode(r,!0):r.cloneNode(!0);return Fr(i,i),i}}function ra(e=""){{var t=st(e+"");return Fr(t,t),t}}function fc(){var e=document.createDocumentFragment(),t=document.createComment(""),s=st();return e.append(t,s),Fr(t,s),e}function F(e,t){e!==null&&e.before(t)}function k(e,t){var s=t==null?"":typeof t=="object"?`${t}`:t;s!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=s,e.nodeValue=`${s}`)}function uc(e,t){return vc(e,t)}const Ts=new Map;function vc(e,{target:t,anchor:s,props:r={},events:a,context:i,intro:v=!0,transformError:d}){Wo();var f=void 0,p=Ko(()=>{var g=s??t.appendChild(st());Ro(g,{pending:()=>{}},E=>{ya({});var m=z;i&&(m.c=i),a&&(r.$$events=a),f=e(E,r)||{},wa()},d);var x=new Set,w=E=>{for(var m=0;m<E.length;m++){var u=E[m];if(!x.has(u)){x.add(u);var y=ac(u);for(const L of[t,document]){var R=Ts.get(L);R===void 0&&(R=new Map,Ts.set(L,R));var j=R.get(u);j===void 0?(L.addEventListener(u,br,{passive:y}),R.set(u,1)):R.set(u,j+1)}}}};return w(Ws(ic)),ea.add(w),()=>{var y;for(var E of x)for(const R of[t,document]){var m=Ts.get(R),u=m.get(E);--u==0?(R.removeEventListener(E,br),m.delete(E),m.size===0&&Ts.delete(R)):m.set(E,u)}ea.delete(w),g!==s&&((y=g.parentNode)==null||y.removeChild(g))}});return dc.set(f,p),f}let dc=new WeakMap;var $e,He,Ee,kt,bs,ms,$s;class pc{constructor(t,s=!0){Pe(this,"anchor");N(this,$e,new Map);N(this,He,new Map);N(this,Ee,new Map);N(this,kt,new Set);N(this,bs,!0);N(this,ms,t=>{if(o(this,$e).has(t)){var s=o(this,$e).get(t),r=o(this,He).get(s);if(r)Ir(r),o(this,kt).delete(s);else{var a=o(this,Ee).get(s);a&&(o(this,He).set(s,a.effect),o(this,Ee).delete(s),a.fragment.lastChild.remove(),this.anchor.before(a.fragment),r=a.effect)}for(const[i,v]of o(this,$e)){if(o(this,$e).delete(i),i===t)break;const d=o(this,Ee).get(v);d&&(pe(d.effect),o(this,Ee).delete(v))}for(const[i,v]of o(this,He)){if(i===s||o(this,kt).has(i))continue;const d=()=>{if(Array.from(o(this,$e).values()).includes(i)){var p=document.createDocumentFragment();Or(v,p),p.append(st()),o(this,Ee).set(i,{effect:v,fragment:p})}else pe(v);o(this,kt).delete(i),o(this,He).delete(i)};o(this,bs)||!r?(o(this,kt).add(i),At(v,d,!1)):d()}}});N(this,$s,t=>{o(this,$e).delete(t);const s=Array.from(o(this,$e).values());for(const[r,a]of o(this,Ee))s.includes(r)||(pe(a.effect),o(this,Ee).delete(r))});this.anchor=t,D(this,bs,s)}ensure(t,s){var r=T,a=$a();if(s&&!o(this,He).has(t)&&!o(this,Ee).has(t))if(a){var i=document.createDocumentFragment(),v=st();i.append(v),o(this,Ee).set(t,{effect:Re(()=>s(v)),fragment:i})}else o(this,He).set(t,Re(()=>s(this.anchor)));if(o(this,$e).set(r,t),a){for(const[d,f]of o(this,He))d===t?r.unskip_effect(f):r.skip_effect(f);for(const[d,f]of o(this,Ee))d===t?r.unskip_effect(f.effect):r.skip_effect(f.effect);r.oncommit(o(this,ms)),r.ondiscard(o(this,$s))}else o(this,ms).call(this,r)}}$e=new WeakMap,He=new WeakMap,Ee=new WeakMap,kt=new WeakMap,bs=new WeakMap,ms=new WeakMap,$s=new WeakMap;function ue(e,t,s=!1){var r=new pc(e),a=s?Kt:0;function i(v,d){r.ensure(v,d)}Mr(()=>{var v=!1;t((d,f=0)=>{v=!0,i(f,d)}),v||i(-1,null)},a)}function _c(e,t,s){for(var r=[],a=t.length,i,v=t.length,d=0;d<a;d++){let x=t[d];At(x,()=>{if(i){if(i.pending.delete(x),i.done.add(x),i.pending.size===0){var w=e.outrogroups;mr(e,Ws(i.done)),w.delete(i),w.size===0&&(e.outrogroups=null)}}else v-=1},!1)}if(v===0){var f=r.length===0&&s!==null;if(f){var p=s,g=p.parentNode;Uo(g),g.append(p),e.items.clear()}mr(e,t,!f)}else i={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(i)}function mr(e,t,s=!0){var r;if(e.pending.size>0){r=new Set;for(const v of e.pending.values())for(const d of v)r.add(e.items.get(d).e)}for(var a=0;a<t.length;a++){var i=t[a];if(r!=null&&r.has(i)){i.f|=Be;const v=document.createDocumentFragment();Or(i,v)}else pe(t[a],s)}}var na;function jt(e,t,s,r,a,i=null){var v=e,d=new Map,f=(t&ha)!==0;if(f){var p=e;v=p.appendChild(st())}var g=null,x=Ma(()=>{var L=s();return wr(L)?L:L==null?[]:Ws(L)}),w,E=new Map,m=!0;function u(L){j.effect.f&Ne||(j.pending.delete(L),j.fallback=g,hc(j,w,v,t,r),g!==null&&(w.length===0?g.f&Be?(g.f^=Be,ls(g,null,v)):Ir(g):At(g,()=>{g=null})))}function y(L){j.pending.delete(L)}var R=Mr(()=>{w=n(x);for(var L=w.length,Z=new Set,te=T,_e=$a(),se=0;se<L;se+=1){var $=w[se],rt=r($,se),fe=m?null:d.get(rt);fe?(fe.v&&Gt(fe.v,$),fe.i&&Gt(fe.i,se),_e&&te.unskip_effect(fe.e)):(fe=gc(d,m?v:na??(na=st()),$,rt,se,a,t,s),m||(fe.e.f|=Be),d.set(rt,fe)),Z.add(rt)}if(L===0&&i&&!g&&(m?g=Re(()=>i(v)):(g=Re(()=>i(na??(na=st()))),g.f|=Be)),L>Z.size&&Zl(),!m)if(E.set(te,Z),_e){for(const[nt,pt]of d)Z.has(nt)||te.skip_effect(pt.e);te.oncommit(u),te.ondiscard(y)}else u(te);n(x)}),j={effect:R,items:d,pending:E,outrogroups:null,fallback:g};m=!1}function ns(e){for(;e!==null&&!(e.f&qe);)e=e.next;return e}function hc(e,t,s,r,a){var fe,nt,pt,_t,ks,Xt,Zt,es,ts;var i=(r&fo)!==0,v=t.length,d=e.items,f=ns(e.effect.first),p,g=null,x,w=[],E=[],m,u,y,R;if(i)for(R=0;R<v;R+=1)m=t[R],u=a(m,R),y=d.get(u).e,y.f&Be||((nt=(fe=y.nodes)==null?void 0:fe.a)==null||nt.measure(),(x??(x=new Set)).add(y));for(R=0;R<v;R+=1){if(m=t[R],u=a(m,R),y=d.get(u).e,e.outrogroups!==null)for(const Oe of e.outrogroups)Oe.pending.delete(y),Oe.done.delete(y);if(y.f&ce&&(Ir(y),i&&((_t=(pt=y.nodes)==null?void 0:pt.a)==null||_t.unfix(),(x??(x=new Set)).delete(y))),y.f&Be)if(y.f^=Be,y===f)ls(y,null,s);else{var j=g?g.next:f;y===e.effect.last&&(e.effect.last=y.prev),y.prev&&(y.prev.next=y.next),y.next&&(y.next.prev=y.prev),it(e,g,y),it(e,y,j),ls(y,j,s),g=y,w=[],E=[],f=ns(g.next);continue}if(y!==f){if(p!==void 0&&p.has(y)){if(w.length<E.length){var L=E[0],Z;g=L.prev;var te=w[0],_e=w[w.length-1];for(Z=0;Z<w.length;Z+=1)ls(w[Z],L,s);for(Z=0;Z<E.length;Z+=1)p.delete(E[Z]);it(e,te.prev,_e.next),it(e,g,te),it(e,_e,L),f=L,g=_e,R-=1,w=[],E=[]}else p.delete(y),ls(y,f,s),it(e,y.prev,y.next),it(e,y,g===null?e.effect.first:g.next),it(e,g,y),g=y;continue}for(w=[],E=[];f!==null&&f!==y;)(p??(p=new Set)).add(f),E.push(f),f=ns(f.next);if(f===null)continue}y.f&Be||w.push(y),g=y,f=ns(y.next)}if(e.outrogroups!==null){for(const Oe of e.outrogroups)Oe.pending.size===0&&(mr(e,Ws(Oe.done)),(ks=e.outrogroups)==null||ks.delete(Oe));e.outrogroups.size===0&&(e.outrogroups=null)}if(f!==null||p!==void 0){var se=[];if(p!==void 0)for(y of p)y.f&ce||se.push(y);for(;f!==null;)!(f.f&ce)&&f!==e.fallback&&se.push(f),f=ns(f.next);var $=se.length;if($>0){var rt=r&ha&&v===0?s:null;if(i){for(R=0;R<$;R+=1)(Zt=(Xt=se[R].nodes)==null?void 0:Xt.a)==null||Zt.measure();for(R=0;R<$;R+=1)(ts=(es=se[R].nodes)==null?void 0:es.a)==null||ts.fix()}_c(e,se,rt)}}i&&ut(()=>{var Oe,Ot;if(x!==void 0)for(y of x)(Ot=(Oe=y.nodes)==null?void 0:Oe.a)==null||Ot.apply()})}function gc(e,t,s,r,a,i,v,d){var f=v&oo?v&uo?Mt(s):Y(s,!1,!1):null,p=v&co?Mt(a):null;return{v:f,i:p,e:Re(()=>(i(t,f??s,p??a,d),()=>{e.delete(r)}))}}function ls(e,t,s){if(e.nodes)for(var r=e.nodes.start,a=e.nodes.end,i=t&&!(t.f&Be)?t.nodes.start:s;r!==null;){var v=xs(r);if(i.before(r),r===a)return;r=v}}function it(e,t,s){t===null?e.effect.first=s:t.next=s,s===null?e.effect.last=t:s.prev=t}const aa=[...`
|
|
2
|
+
\r\f \v\uFEFF`];function bc(e,t,s){var r=e==null?"":""+e;if(s){for(var a of Object.keys(s))if(s[a])r=r?r+" "+a:a;else if(r.length)for(var i=a.length,v=0;(v=r.indexOf(a,v))>=0;){var d=v+i;(v===0||aa.includes(r[v-1]))&&(d===r.length||aa.includes(r[d]))?r=(v===0?"":r.substring(0,v))+r.substring(d+1):v=d}}return r===""?null:r}function mc(e,t){return e==null?null:String(e)}function as(e,t,s,r,a,i){var v=e.__className;if(v!==s||v===void 0){var d=bc(s,r,i);d==null?e.removeAttribute("class"):e.className=d,e.__className=s}else if(i&&a!==i)for(var f in i){var p=!!i[f];(a==null||p!==!!a[f])&&e.classList.toggle(f,p)}return i}function ia(e,t,s,r){var a=e.__style;if(a!==t){var i=mc(t);i==null?e.removeAttribute("style"):e.style.cssText=i,e.__style=t}return r}function Za(e,t,s=!1){if(e.multiple){if(t==null)return;if(!wr(t))return _o();for(var r of e.options)r.selected=t.includes(us(r));return}for(r of e.options){var a=us(r);if($o(a,t)){r.selected=!0;return}}(!s||t!==void 0)&&(e.selectedIndex=-1)}function yc(e){var t=new MutationObserver(()=>{Za(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Nr(()=>{t.disconnect()})}function nr(e,t,s=t){var r=new WeakSet,a=!0;Wa(e,"change",i=>{var v=i?"[selected]":":checked",d;if(e.multiple)d=[].map.call(e.querySelectorAll(v),us);else{var f=e.querySelector(v)??e.querySelector("option:not([disabled])");d=f&&us(f)}s(d),e.__value=d,T!==null&&r.add(T)}),Yo(()=>{var i=t();if(e===document.activeElement){var v=T;if(r.has(v))return}if(Za(e,i,a),a&&i===void 0){var d=e.querySelector(":checked");d!==null&&(i=us(d),s(i))}e.__value=i,a=!1}),yc(e)}function us(e){return"__value"in e?e.__value:e.value}const wc=Symbol("is custom element"),Ec=Symbol("is html");function xc(e,t,s,r){var a=kc(e);a[t]!==(a[t]=s)&&(s==null?e.removeAttribute(t):typeof s!="string"&&Sc(e).includes(t)?e[t]=s:e.setAttribute(t,s))}function kc(e){return e.__attributes??(e.__attributes={[wc]:e.nodeName.includes("-"),[Ec]:e.namespaceURI===ga})}var la=new Map;function Sc(e){var t=e.getAttribute("is")||e.nodeName,s=la.get(t);if(s)return s;la.set(t,s=[]);for(var r,a=e,i=Element.prototype;i!==a;){r=ua(a);for(var v in r)r[v].set&&s.push(v);a=Er(a)}return s}function As(e,t,s=t){var r=new WeakSet;Wa(e,"input",async a=>{var i=a?e.defaultValue:e.value;if(i=ar(e)?ir(i):i,s(i),T!==null&&r.add(T),await sc(),i!==(i=t())){var v=e.selectionStart,d=e.selectionEnd,f=e.value.length;if(e.value=i??"",d!==null){var p=e.value.length;v===d&&d===f&&p>f?(e.selectionStart=p,e.selectionEnd=p):(e.selectionStart=v,e.selectionEnd=Math.min(d,p))}}}),b(t)==null&&e.value&&(s(ar(e)?ir(e.value):e.value),T!==null&&r.add(T)),Us(()=>{var a=t();if(e===document.activeElement){var i=T;if(r.has(i))return}ar(e)&&a===ir(e.value)||e.type==="date"&&!a&&!e.value||a!==e.value&&(e.value=a??"")})}function ar(e){var t=e.type;return t==="number"||t==="range"}function ir(e){return e===""?null:+e}function Tc(e){return function(...t){var s=t[0];return s.preventDefault(),e==null?void 0:e.apply(this,t)}}function Ac(e=!1){const t=z,s=t.l.u;if(!s)return;let r=()=>rc(t.s);if(e){let a=0,i={};const v=Tr(()=>{let d=!1;const f=t.s;for(const p in f)f[p]!==i[p]&&(i[p]=f[p],d=!0);return d&&a++,a});r=()=>n(v)}s.b.length&&Bo(()=>{oa(t,r),lr(s.b)}),hr(()=>{const a=b(()=>s.m.map(Jl));return()=>{for(const i of a)typeof i=="function"&&i()}}),s.a.length&&hr(()=>{oa(t,r),lr(s.a)})}function oa(e,t){if(e.l.s)for(const s of e.l.s)n(s);t()}function Rc(e){z===null&&_a(),ws&&z.l!==null?Nc(z).m.push(e):hr(()=>{const t=b(e);if(typeof t=="function")return t})}function Cc(e){z===null&&_a(),Rc(()=>()=>b(e))}function Nc(e){var t=e.l;return t.u??(t.u={a:[],b:[],m:[]})}const Mc="5";var fa;typeof window<"u"&&((fa=window.__svelte??(window.__svelte={})).v??(fa.v=new Set)).add(Mc);mo();var Dc=W('<div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Watch issue</span><strong class="status-warn svelte-d3ct2b"> </strong></div>'),Ic=W('<section class="notice svelte-d3ct2b"> </section>'),Oc=W('<section class="notice danger svelte-d3ct2b"> </section>'),Fc=W('<p class="terminal-line svelte-d3ct2b"><time class="svelte-d3ct2b">--:--:--</time><span class="sys svelte-d3ct2b">SYS</span><strong class="svelte-d3ct2b">Waiting for memory-core watch output...</strong></p>'),Lc=W('<strong class="svelte-d3ct2b"> </strong>'),Pc=W('<strong class="svelte-d3ct2b"> </strong>'),jc=W('<strong class="svelte-d3ct2b"> </strong>'),$c=W('<strong class="svelte-d3ct2b"> </strong>'),Wc=W('<strong class="svelte-d3ct2b"> </strong>'),qc=W('<p class="svelte-d3ct2b"><b class="svelte-d3ct2b">Why:</b> </p>'),Uc=W('<p class="svelte-d3ct2b"><b class="svelte-d3ct2b">Issue:</b> </p>'),Vc=W('<p class="svelte-d3ct2b"><b class="svelte-d3ct2b">Fix:</b> </p>'),zc=W('<pre class="svelte-d3ct2b"> </pre>'),Hc=W('<div class="terminal-detail svelte-d3ct2b"><p class="svelte-d3ct2b"> </p> <p class="svelte-d3ct2b"><b class="svelte-d3ct2b">Rule:</b> </p> <!> <!> <!> <!></div>'),Bc=W('<section><p class="terminal-line svelte-d3ct2b"><time class="svelte-d3ct2b"> </time> <span class="svelte-d3ct2b"> </span> <!></p> <!></section>'),Kc=W('<div class="metric-row svelte-d3ct2b"><div class="svelte-d3ct2b"><span class="svelte-d3ct2b"> </span> <strong class="svelte-d3ct2b"> </strong></div> <i class="svelte-d3ct2b"></i></div>'),Yc=W('<p class="empty svelte-d3ct2b">No rule counters yet.</p>'),Gc=W('<div class="metric-row warning svelte-d3ct2b"><div class="svelte-d3ct2b"><span class="svelte-d3ct2b"> </span> <strong class="svelte-d3ct2b"> </strong></div> <i class="svelte-d3ct2b"></i></div>'),Jc=W('<p class="empty svelte-d3ct2b">No file counters yet.</p>'),Qc=W('<small class="svelte-d3ct2b"> </small>'),Xc=W('<small class="svelte-d3ct2b"> </small>'),Zc=W('<section class="commit-item svelte-d3ct2b"><div class="commit-meta svelte-d3ct2b"><span> </span> <time> </time></div> <strong class="svelte-d3ct2b"> </strong> <p class="svelte-d3ct2b"> </p> <!> <!></section>'),ef=W('<p class="empty svelte-d3ct2b">No commit hook violations recorded yet.</p>'),tf=W('<small class="svelte-d3ct2b"> </small>'),sf=W('<div class="rule-item svelte-d3ct2b"><div><div class="rule-meta svelte-d3ct2b"><span class="svelte-d3ct2b"> </span> <code class="svelte-d3ct2b"> </code></div> <p class="svelte-d3ct2b"> </p> <!></div> <button class="svelte-d3ct2b">Delete</button></div>'),rf=W('<p class="empty svelte-d3ct2b">No rules match the current filters.</p>'),nf=W('<div class="command-center svelte-d3ct2b"><aside class="sidebar svelte-d3ct2b"><div class="brand svelte-d3ct2b"><h1 class="svelte-d3ct2b">memory-core</h1> <span class="svelte-d3ct2b">command center</span></div> <nav aria-label="Dashboard navigation" class="svelte-d3ct2b"><a class="nav-item active svelte-d3ct2b" href="/"><span class="nav-icon svelte-d3ct2b">[]</span> <span>Command Center</span></a></nav> <div class="sidebar-footer svelte-d3ct2b"><div><i class="svelte-d3ct2b"></i> </div> <small class="svelte-d3ct2b"> </small></div></aside> <div class="workspace svelte-d3ct2b"><header class="topbar svelte-d3ct2b"><div class="topbar-left svelte-d3ct2b"><button class="icon-button mobile-menu svelte-d3ct2b" aria-label="Menu">=</button> <div><i class="svelte-d3ct2b"></i> <span> </span></div></div> <div class="header-metrics svelte-d3ct2b" aria-label="Global metrics"><div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Violations</span> <strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Files</span> <strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Rules</span> <strong class="svelte-d3ct2b"> </strong></div></div> <div class="top-actions svelte-d3ct2b" aria-label="Status shortcuts"><button class="icon-button svelte-d3ct2b" title="Warnings" aria-label="Warnings">!</button> <button class="icon-button svelte-d3ct2b" title="Rules" aria-label="Rules">R</button> <button class="icon-button svelte-d3ct2b" title="Database" aria-label="Database">DB</button> <button class="icon-button svelte-d3ct2b" title="Network" aria-label="Network">LAN</button></div></header> <main class="canvas svelte-d3ct2b"><section class="status-grid svelte-d3ct2b"><article class="glass-panel status-card svelte-d3ct2b"><div class="card-head svelte-d3ct2b"><h2 class="svelte-d3ct2b">Project</h2> <span class="svelte-d3ct2b"> </span></div> <div class="data-list svelte-d3ct2b"><div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Name</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Type</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Language</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Architecture</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Watcher</span><strong class="svelte-d3ct2b"> </strong></div> <!></div></article> <article class="glass-panel status-card svelte-d3ct2b"><div class="card-head svelte-d3ct2b"><h2 class="svelte-d3ct2b">Runtime</h2> <span class="svelte-d3ct2b"> </span></div> <div class="data-list svelte-d3ct2b"><div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Provider</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Check model</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Check status</span> <strong><!></strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Embedding</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Ollama URL</span><strong class="svelte-d3ct2b"> </strong></div></div></article> <article class="glass-panel status-card svelte-d3ct2b"><div class="card-head svelte-d3ct2b"><h2 class="svelte-d3ct2b">PostgreSQL</h2> <span> </span></div> <div class="data-list svelte-d3ct2b"><div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Database</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">User</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Host</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">URL</span><strong class="svelte-d3ct2b"> </strong></div></div></article></section> <!> <!> <section class="terminal-panel glass-panel svelte-d3ct2b"><div class="terminal-head svelte-d3ct2b"><div class="svelte-d3ct2b"><span class="terminal-icon svelte-d3ct2b">>_</span> <h2 class="svelte-d3ct2b">Live Feed</h2></div> <div class="window-dots svelte-d3ct2b" aria-hidden="true"><i class="svelte-d3ct2b"></i><i class="svelte-d3ct2b"></i><i class="svelte-d3ct2b"></i></div></div> <div class="terminal-body svelte-d3ct2b"><!> <!></div></section> <section class="content-grid svelte-d3ct2b"><article class="glass-panel stats-panel svelte-d3ct2b"><div class="card-head svelte-d3ct2b"><h2 class="svelte-d3ct2b">Stats</h2> <span class="svelte-d3ct2b">Recorded</span></div> <div class="stat-block svelte-d3ct2b"><h3 class="svelte-d3ct2b">Most Violated Rules</h3> <!></div> <div class="stat-block svelte-d3ct2b"><h3 class="svelte-d3ct2b">Problem Files</h3> <!></div> <div class="summary-strip svelte-d3ct2b"><div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Clean</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Issues</span><strong class="svelte-d3ct2b"> </strong></div> <div class="svelte-d3ct2b"><span class="svelte-d3ct2b">Events</span><strong class="svelte-d3ct2b"> </strong></div></div></article> <article class="glass-panel commit-watch svelte-d3ct2b"><div class="card-head svelte-d3ct2b"><h2 class="svelte-d3ct2b">Commit Watch</h2> <span class="svelte-d3ct2b"> </span></div> <div class="commit-list svelte-d3ct2b"></div></article> <article class="glass-panel rule-engine svelte-d3ct2b"><div class="card-head svelte-d3ct2b"><h2 class="svelte-d3ct2b">Rule Engine</h2> <span class="svelte-d3ct2b"> </span></div> <form class="rule-form svelte-d3ct2b"><div class="control-grid svelte-d3ct2b"><select class="svelte-d3ct2b"><option>Rule</option><option>Decision</option><option>Pattern</option><option>Ignore</option></select> <select class="svelte-d3ct2b"><option>Project</option><option>Global</option></select></div> <textarea rows="3" placeholder="Rule or decision" class="svelte-d3ct2b"></textarea> <div class="control-grid svelte-d3ct2b"><input placeholder="Reason" class="svelte-d3ct2b"/> <input placeholder="Tags" class="svelte-d3ct2b"/></div> <button class="svelte-d3ct2b"> </button></form> <div class="control-grid filters svelte-d3ct2b"><select class="svelte-d3ct2b"><option>All types</option><option>Rules</option><option>Decisions</option><option>Patterns</option><option>Ignores</option></select> <input placeholder="Search rules..." class="svelte-d3ct2b"/></div> <div class="rule-list svelte-d3ct2b"></div></article></section></main></div></div>');function af(e,t){ya(t,!1);const s=Y(),r=Y(),a=Y(),i=Y(),v=Y(),d=Y(),f=Y(),p=Y(),g=Y(),x=Y(),w=Y(),E=Y(),m=Y();let u=Y({config:null,stats:{rules:{},files:{},topRules:[],topFiles:[]},files:[],memories:[]}),y=Y([]),R=Y(!1),j=Y("all"),L=Y(""),Z=Y(!1),te=Y(""),_e,se=!1,$=Y({type:"rule",scope:"project",content:"",reason:"",tags:"dashboard"});const rt=()=>{var l;return((l=n(u).runtime)==null?void 0:l.project.name)??"memory-core"},fe=()=>{var A,C;const l=((A=n(u).runtime)==null?void 0:A.project.declaredArchitectures)??[],c=((C=n(u).runtime)==null?void 0:C.project.activeArchitectures)??[];return l.length>0?l.join(", "):c.length>0?c.join(", "):"none"};function nt(l){M(y,[{...l,id:crypto.randomUUID()},...n(y)].slice(0,80))}function pt(l){return l.type==="saved"?{type:"saved",timestamp:l.timestamp,file:l.file}:l.type==="clean"?{type:"clean",timestamp:l.timestamp,file:l.file}:l.type==="skipped"?{type:"skipped",timestamp:l.timestamp,file:l.file,reason:l.reason}:l.type==="violations"?{type:"violations",timestamp:l.timestamp,file:l.file,violations:l.violations}:l.type==="error"?{type:"error",timestamp:l.timestamp,message:l.message}:l.type==="ready"?{type:"system",timestamp:l.timestamp,message:`Watching ${l.path} | ${l.rules} rules | ${l.model}`}:{type:"system",timestamp:l.timestamp,message:"Watch stopped"}}function _t(l){const c=n(u).files??[],A=c.findIndex(H=>H.file===l.file),C=c.slice();return A===-1?C.push(l):C[A]=l,C.sort((H,ie)=>ie.lastSeen.localeCompare(H.lastSeen))}function ks(l){const c=n(u).watcher??{enabled:!0,running:!1,path:void 0,model:void 0,rules:void 0,lastEventAt:void 0,error:void 0};let A=n(u).files,C={...c,lastEventAt:l.timestamp,enabled:!0};l.type==="ready"&&(C={...C,running:!0,error:void 0,path:l.path,model:l.model,rules:l.rules}),l.type==="saved"&&(A=_t({file:l.file,status:"checking",lastSeen:l.timestamp,violations:[]})),l.type==="clean"&&(A=_t({file:l.file,status:"clean",lastSeen:l.timestamp,violations:[]})),l.type==="skipped"&&(A=_t({file:l.file,status:"skipped",lastSeen:l.timestamp,violations:[],message:l.reason})),l.type==="violations"&&(A=_t({file:l.file,status:"violations",lastSeen:l.timestamp,violations:l.violations})),l.type==="error"&&(C={...C,running:!1,error:l.message}),l.type==="stopped"&&(C={...C,running:!1});const H=[l,...n(u).events??[]].slice(0,100);M(u,{...n(u),files:A,events:H,watcher:C})}function Xt(l=[]){M(y,l.map(pt).map(c=>({...c,id:crypto.randomUUID()})).reverse().slice(0,80))}function Zt(l){return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(l))}function es(l){return Math.max(1,...l.map(c=>c.count))}function ts(l,c){const A=l.file||c;return l.line?`${A}:${l.line}`:A}function Oe(l){return l.type==="saved"?"SAVE":l.type==="clean"?"OK":l.type==="skipped"?"SKIP":l.type==="violations"?"FAIL":l.type==="error"?"WARN":"SYS"}async function Ot(){const l=await fetch("/api/snapshot");M(u,await l.json()),Xt(n(u).events)}async function ei(){if(!se&&document.visibilityState!=="hidden"){se=!0;try{const l=await fetch("/api/stats",{cache:"no-store"});if(!l.ok)return;const c=await l.json();if(!c.stats)return;M(u,{...n(u),stats:c.stats})}catch{}finally{se=!1}}}function ti(){_e&&clearInterval(_e),_e=setInterval(()=>{ei()},2e3)}function Lr(){const l=location.protocol==="https:"?"wss:":"ws:",c=new WebSocket(`${l}//${location.host}/ws`);c.addEventListener("open",()=>{M(R,!0),nt({type:"system",timestamp:new Date().toISOString(),message:"Dashboard connected"})}),c.addEventListener("close",()=>{M(R,!1),nt({type:"error",timestamp:new Date().toISOString(),message:"Dashboard disconnected"}),setTimeout(Lr,1500)}),c.addEventListener("message",A=>{const C=JSON.parse(A.data);if(C.type==="snapshot"){M(u,C.snapshot),n(y).length===0&&Xt(n(u).events);return}C.type==="watch"&&(ks(C.event),nt(pt(C.event)))})}async function si(){if(n($).content.trim()){M(Z,!0),M(te,"");try{const l=await fetch("/api/memories",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(n($))});if(!l.ok)throw new Error((await l.json()).error??"Save failed");M($,{type:"rule",scope:"project",content:"",reason:"",tags:"dashboard"}),await Ot()}catch(l){M(te,l.message)}finally{M(Z,!1)}}}async function ri(l){M(te,"");const c=await fetch(`/api/memories/${l}`,{method:"DELETE"});if(!c.ok){M(te,(await c.json()).error??"Delete failed");return}await Ot()}Ot().catch(l=>{M(te,l.message)}),Lr(),ti(),Cc(()=>{_e&&(clearInterval(_e),_e=void 0)}),be(()=>(n(u),n(j),n(L)),()=>{M(s,n(u).memories.filter(l=>{const c=n(j)==="all"||l.type===n(j),A=`${l.type} ${l.scope} ${l.content} ${l.reason??""} ${l.tags.join(" ")}`.toLowerCase();return c&&A.includes(n(L).toLowerCase())}))}),be(()=>n(u),()=>{M(r,n(u).files.reduce((l,c)=>l+c.violations.length,0))}),be(()=>n(u),()=>{M(a,n(u).files.filter(l=>l.status==="clean").length)}),be(()=>n(u),()=>{M(i,n(u).files.filter(l=>l.status==="violations").length)}),be(()=>n(u),()=>{M(v,Object.values(n(u).stats.rules).reduce((l,c)=>l+c,0))}),be(()=>n(u),()=>{M(d,n(u).stats.recentViolations??[])}),be(()=>n(d),()=>{M(f,n(d).filter(l=>l.source==="hook"||l.source==="ci"))}),be(()=>(n(r),n(f)),()=>{M(p,n(r)+n(f).length)}),be(()=>(n(u),n(f)),()=>{M(g,new Set([...n(u).files.map(l=>l.file),...n(f).map(l=>l.file).filter(Boolean)]).size)}),be(()=>n(u),()=>{M(x,n(u).memories.filter(l=>["rule","pattern","decision"].includes(l.type)).length)}),be(()=>n(u),()=>{var l;M(w,((l=n(u).memoryCount)==null?void 0:l.total)??n(u).memories.length)}),be(()=>n(u),()=>{var l;M(E,((l=n(u).memoryCount)==null?void 0:l.relevant)??n(u).memories.length)}),be(()=>(n(R),n(u)),()=>{var l,c;M(m,n(R)?((l=n(u).watcher)==null?void 0:l.enabled)===!1?{live:!1,label:"Watch off"}:(c=n(u).watcher)!=null&&c.running?{live:!0,label:"Watcher live"}:{live:!1,label:"Watcher idle"}:{live:!1,label:"Disconnected"})}),Go(),Ac();var Pr=nf(),jr=_(Pr),ni=h(_(jr),4),Vs=_(ni);let $r;var ai=h(_(Vs)),ii=h(Vs,2),li=_(ii),oi=h(jr,2),Wr=_(oi),qr=_(Wr),Ur=h(_(qr),2);let Vr;var ci=h(_(Ur),2),fi=_(ci),ui=h(qr,2),zr=_(ui),vi=h(_(zr),2),di=_(vi),Hr=h(zr,2),pi=h(_(Hr),2),_i=_(pi),hi=h(Hr,2),gi=h(_(hi),2),bi=_(gi),mi=h(Wr,2),Br=_(mi),Kr=_(Br),Yr=_(Kr),yi=h(_(Yr),2),wi=_(yi),Ei=h(Yr,2),Gr=_(Ei),xi=h(_(Gr)),ki=_(xi),Jr=h(Gr,2),Si=h(_(Jr)),Ti=_(Si),Qr=h(Jr,2),Ai=h(_(Qr)),Ri=_(Ai),Xr=h(Qr,2),Ci=h(_(Xr)),Ni=_(Ci),Zr=h(Xr,2),Mi=h(_(Zr)),Di=_(Mi),Ii=h(Zr,2);{var Oi=l=>{var c=Dc(),A=h(_(c)),C=_(A);V(()=>k(C,(n(u),b(()=>n(u).watcher.error)))),F(l,c)};ue(Ii,l=>{n(u),b(()=>{var c;return(c=n(u).watcher)==null?void 0:c.error})&&l(Oi)})}var en=h(Kr,2),tn=_(en),Fi=h(_(tn),2),Li=_(Fi),Pi=h(tn,2),sn=_(Pi),ji=h(_(sn)),$i=_(ji),rn=h(sn,2),Wi=h(_(rn)),qi=_(Wi),nn=h(rn,2),an=h(_(nn),2);let ln;var Ui=_(an);{var Vi=l=>{var c=ra();V(()=>k(c,(n(u),b(()=>{var A;return(A=n(u).runtime)!=null&&A.model.checkModelInstalled?"installed":"missing"})))),F(l,c)},zi=l=>{var c=ra();V(()=>k(c,(n(u),b(()=>{var A;return(A=n(u).runtime)!=null&&A.model.apiKeyConfigured?"api key set":"api key missing"})))),F(l,c)};ue(Ui,l=>{n(u),b(()=>{var c;return((c=n(u).runtime)==null?void 0:c.model.provider)==="ollama"})?l(Vi):l(zi,-1)})}var on=h(nn,2),Hi=h(_(on)),Bi=_(Hi),Ki=h(on,2),Yi=h(_(Ki)),Gi=_(Yi),Ji=h(en,2),cn=_(Ji),fn=h(_(cn),2);let un;var Qi=_(fn),Xi=h(cn,2),vn=_(Xi),Zi=h(_(vn)),el=_(Zi),dn=h(vn,2),tl=h(_(dn)),sl=_(tl),pn=h(dn,2),rl=h(_(pn)),nl=_(rl),al=h(pn,2),il=h(_(al)),ll=_(il),_n=h(Br,2);{var ol=l=>{var c=Ic(),A=_(c);V(()=>k(A,(n(u),b(()=>n(u).dbError)))),F(l,c)};ue(_n,l=>{n(u),b(()=>n(u).dbError)&&l(ol)})}var hn=h(_n,2);{var cl=l=>{var c=Oc(),A=_(c);V(()=>k(A,n(te))),F(l,c)};ue(hn,l=>{n(te)&&l(cl)})}var gn=h(hn,2),fl=h(_(gn),2),bn=_(fl);{var ul=l=>{var c=Fc();F(l,c)};ue(bn,l=>{n(y),b(()=>n(y).length===0)&&l(ul)})}var vl=h(bn,2);jt(vl,1,()=>(n(y),b(()=>[...n(y)].reverse())),l=>l.id,(l,c)=>{var A=Bc();let C;var H=_(A),ie=_(H),xe=_(ie),he=h(ie,2),S=_(he),q=h(he,2);{var Ge=P=>{var B=Lc(),Fe=_(B);V(()=>k(Fe,(n(c),b(()=>n(c).message)))),F(P,B)},ss=P=>{var B=Pc(),Fe=_(B);V(()=>k(Fe,`saved: ${n(c),b(()=>n(c).file)??""}`)),F(P,B)},Ft=P=>{var B=jc(),Fe=_(B);V(()=>k(Fe,`${n(c),b(()=>n(c).file)??""} - no violations`)),F(P,B)},Lt=P=>{var B=$c(),Fe=_(B);V(()=>k(Fe,`${n(c),b(()=>n(c).file)??""} - skipped: ${n(c),b(()=>n(c).reason)??""}`)),F(P,B)},Je=P=>{var B=Wc(),Fe=_(B);V(()=>k(Fe,`${n(c),b(()=>n(c).violations.length)??""} violation${n(c),b(()=>n(c).violations.length===1?"":"s")??""} in ${n(c),b(()=>n(c).file)??""}`)),F(P,B)};ue(q,P=>{n(c),b(()=>n(c).type==="system"||n(c).type==="error")?P(Ge):(n(c),b(()=>n(c).type==="saved")?P(ss,1):(n(c),b(()=>n(c).type==="clean")?P(Ft,2):(n(c),b(()=>n(c).type==="skipped")?P(Lt,3):P(Je,-1))))})}var Pt=h(H,2);{var ge=P=>{var B=fc(),Fe=qo(B);jt(Fe,3,()=>(n(c),b(()=>n(c).violations)),(Pn,K)=>`${n(c).id}-${K}`,(Pn,K,Ol)=>{var jn=Hc(),$n=_(jn),Fl=_($n),Wn=h($n,2),Ll=h(_(Wn)),qn=h(Wn,2);{var Pl=re=>{var Le=qc(),ht=h(_(Le));V(()=>k(ht,` ${n(K),b(()=>n(K).reason)??""}`)),F(re,Le)};ue(qn,re=>{n(K),b(()=>n(K).reason)&&re(Pl)})}var Un=h(qn,2);{var jl=re=>{var Le=Uc(),ht=h(_(Le));V(()=>k(ht,` ${n(K),b(()=>n(K).issue)??""}`)),F(re,Le)};ue(Un,re=>{n(K),b(()=>n(K).issue)&&re(jl)})}var Vn=h(Un,2);{var $l=re=>{var Le=Vc(),ht=h(_(Le));V(()=>k(ht,` ${n(K),b(()=>n(K).suggestion)??""}`)),F(re,Le)};ue(Vn,re=>{n(K),b(()=>n(K).suggestion)&&re($l)})}var Wl=h(Vn,2);{var ql=re=>{var Le=zc(),ht=_(Le);V(()=>k(ht,(n(K),b(()=>n(K).code)))),F(re,Le)};ue(Wl,re=>{n(K),b(()=>n(K).code)&&re(ql)})}V(re=>{k(Fl,`[${n(Ol)+1}] ${re??""}`),k(Ll,` ${n(K),b(()=>n(K).rule)??""}`)},[()=>(n(K),n(c),b(()=>ts(n(K),n(c).file)))]),F(Pn,jn)}),F(P,B)};ue(Pt,P=>{n(c),b(()=>n(c).type==="violations")&&P(ge)})}V((P,B)=>{C=as(A,1,"svelte-d3ct2b",null,C,{"error-line":n(c).type==="error","ok-line":n(c).type==="clean","violation-line":n(c).type==="violations"}),k(xe,P),k(S,B)},[()=>(n(c),b(()=>Zt(n(c).timestamp))),()=>(n(c),b(()=>Oe(n(c))))]),F(l,A)});var dl=h(gn,2),mn=_(dl),yn=h(_(mn),2),pl=h(_(yn),2);jt(pl,1,()=>(n(u),b(()=>n(u).stats.topRules.slice(0,5))),l=>l.name,(l,c)=>{var A=Kc(),C=_(A),H=_(C),ie=_(H),xe=h(H,2),he=_(xe),S=h(C,2);V(q=>{k(ie,(n(c),b(()=>n(c).name))),k(he,(n(c),b(()=>n(c).count))),ia(S,q)},[()=>(n(c),n(u),b(()=>`width: ${n(c).count/es(n(u).stats.topRules)*100}%`))]),F(l,A)},l=>{var c=Yc();F(l,c)});var wn=h(yn,2),_l=h(_(wn),2);jt(_l,1,()=>(n(u),b(()=>n(u).stats.topFiles.slice(0,5))),l=>l.name,(l,c)=>{var A=Gc(),C=_(A),H=_(C),ie=_(H),xe=h(H,2),he=_(xe),S=h(C,2);V(q=>{k(ie,(n(c),b(()=>n(c).name))),k(he,(n(c),b(()=>n(c).count))),ia(S,q)},[()=>(n(c),n(u),b(()=>`width: ${n(c).count/es(n(u).stats.topFiles)*100}%`))]),F(l,A)},l=>{var c=Jc();F(l,c)});var hl=h(wn,2),En=_(hl),gl=h(_(En)),bl=_(gl),xn=h(En,2),ml=h(_(xn)),yl=_(ml),wl=h(xn,2),El=h(_(wl)),xl=_(El),kn=h(mn,2),Sn=_(kn),kl=h(_(Sn),2),Sl=_(kl),Tl=h(Sn,2);jt(Tl,7,()=>(n(f),b(()=>n(f).slice(0,8))),(l,c)=>`${l.timestamp}-${c}`,(l,c)=>{var A=Zc(),C=_(A),H=_(C),ie=_(H),xe=h(H,2),he=_(xe),S=h(C,2),q=_(S),Ge=h(S,2),ss=_(Ge),Ft=h(Ge,2);{var Lt=ge=>{var P=Qc(),B=_(P);V(()=>k(B,(n(c),b(()=>n(c).issue)))),F(ge,P)};ue(Ft,ge=>{n(c),b(()=>n(c).issue)&&ge(Lt)})}var Je=h(Ft,2);{var Pt=ge=>{var P=Xc(),B=_(P);V(()=>k(B,(n(c),b(()=>n(c).suggestion)))),F(ge,P)};ue(Je,ge=>{n(c),b(()=>n(c).suggestion)&&ge(Pt)})}V((ge,P)=>{k(ie,(n(c),b(()=>n(c).source==="ci"?"CI":"Hook"))),k(he,ge),k(q,(n(c),b(()=>n(c).rule))),k(ss,P)},[()=>(n(c),b(()=>Zt(n(c).timestamp))),()=>(n(c),b(()=>ts(n(c),n(c).file||"staged diff")))]),F(l,A)},l=>{var c=ef();F(l,c)});var Al=h(kn,2),Tn=_(Al),Rl=h(_(Tn),2),Cl=_(Rl),zs=h(Tn,2),An=_(zs),Hs=_(An),Bs=_(Hs);Bs.value=Bs.__value="rule";var Ks=h(Bs);Ks.value=Ks.__value="decision";var Ys=h(Ks);Ys.value=Ys.__value="pattern";var Rn=h(Ys);Rn.value=Rn.__value="ignore";var Cn=h(Hs,2),Gs=_(Cn);Gs.value=Gs.__value="project";var Nn=h(Gs);Nn.value=Nn.__value="global";var Mn=h(An,2),Dn=h(Mn,2),In=_(Dn),Nl=h(In,2),On=h(Dn,2),Ml=_(On),Fn=h(zs,2),Js=_(Fn),Qs=_(Js);Qs.value=Qs.__value="all";var Xs=h(Qs);Xs.value=Xs.__value="rule";var Zs=h(Xs);Zs.value=Zs.__value="decision";var er=h(Zs);er.value=er.__value="pattern";var Ln=h(er);Ln.value=Ln.__value="ignore";var Dl=h(Js,2),Il=h(Fn,2);jt(Il,5,()=>n(s),l=>l.id,(l,c)=>{var A=sf(),C=_(A),H=_(C),ie=_(H),xe=_(ie),he=h(ie,2),S=_(he),q=h(H,2),Ge=_(q),ss=h(q,2);{var Ft=Je=>{var Pt=tf(),ge=_(Pt);V(()=>k(ge,(n(c),b(()=>n(c).reason)))),F(Je,Pt)};ue(ss,Je=>{n(c),b(()=>n(c).reason)&&Je(Ft)})}var Lt=h(C,2);V(Je=>{k(xe,(n(c),b(()=>n(c).scope))),k(S,`Rule-${Je??""}`),k(Ge,(n(c),b(()=>n(c).content))),xc(Lt,"aria-label",(n(c),b(()=>`Delete ${n(c).id}`)))},[()=>(n(c),b(()=>String(n(c).id).padStart(3,"0")))]),ta("click",Lt,()=>ri(n(c).id)),F(l,A)},l=>{var c=rf();F(l,c)}),V((l,c,A)=>{var C,H,ie,xe,he;$r=as(Vs,1,"status-chip svelte-d3ct2b",null,$r,{live:n(m).live}),k(ai,` ${n(m),b(()=>n(m).label)??""}`),k(li,(n(u),b(()=>{var S;return((S=n(u).runtime)==null?void 0:S.model.label)??"runtime pending"}))),Vr=as(Ur,1,"live-label svelte-d3ct2b",null,Vr,{live:n(m).live}),k(fi,(n(m),b(()=>n(m).label))),k(di,n(p)),k(_i,n(g)),k(bi,n(x)),k(wi,(n(u),b(()=>{var S;return(S=n(u).runtime)!=null&&S.project.initialized?"Initialized":"Not initialized"}))),k(ki,l),k(Ti,(n(u),b(()=>{var S;return((S=n(u).runtime)==null?void 0:S.project.type)??"unknown"}))),k(Ri,(n(u),b(()=>{var S;return((S=n(u).runtime)==null?void 0:S.project.language)??"unknown"}))),k(Ni,c),k(Di,(n(u),b(()=>{var S,q;return((S=n(u).watcher)==null?void 0:S.enabled)===!1?"disabled":(q=n(u).watcher)!=null&&q.running?"running":"idle"}))),k(Li,(n(u),b(()=>{var S;return((S=n(u).runtime)==null?void 0:S.model.label)??"pending"}))),k($i,(n(u),b(()=>{var S;return((S=n(u).runtime)==null?void 0:S.model.provider)??"unknown"}))),k(qi,(n(u),b(()=>{var S,q,Ge;return((S=n(u).runtime)==null?void 0:S.model.checkModelResolved)??((q=n(u).runtime)==null?void 0:q.model.checkModel)??((Ge=n(u).runtime)==null?void 0:Ge.model.chatModel)??"unknown"}))),ln=as(an,1,"svelte-d3ct2b",null,ln,{"status-ok":((C=n(u).runtime)==null?void 0:C.model.checkModelInstalled)||((H=n(u).runtime)==null?void 0:H.model.apiKeyConfigured),"status-warn":((ie=n(u).runtime)==null?void 0:ie.model.checkModelInstalled)===!1||((xe=n(u).runtime)==null?void 0:xe.model.error)}),k(Bi,(n(u),b(()=>{var S,q;return((S=n(u).runtime)==null?void 0:S.model.embeddingModelResolved)??((q=n(u).runtime)==null?void 0:q.model.embeddingModel)??"unknown"}))),k(Gi,(n(u),b(()=>{var S;return((S=n(u).runtime)==null?void 0:S.model.ollamaUrl)??"unknown"}))),un=as(fn,1,"svelte-d3ct2b",null,un,{success:(he=n(u).runtime)==null?void 0:he.postgres.connected}),k(Qi,(n(u),b(()=>{var S;return(S=n(u).runtime)!=null&&S.postgres.connected?"Connected":"Not connected"}))),k(el,(n(u),b(()=>{var S,q;return((S=n(u).runtime)==null?void 0:S.postgres.serverDatabase)??((q=n(u).runtime)==null?void 0:q.postgres.database)??"unknown"}))),k(sl,(n(u),b(()=>{var S,q;return((S=n(u).runtime)==null?void 0:S.postgres.serverUser)??((q=n(u).runtime)==null?void 0:q.postgres.user)??"unknown"}))),k(nl,`${n(u),b(()=>{var S;return((S=n(u).runtime)==null?void 0:S.postgres.host)??"unknown"})??""}${n(u),b(()=>{var S;return(S=n(u).runtime)!=null&&S.postgres.port?`:${n(u).runtime.postgres.port}`:""})??""}`),k(ll,(n(u),b(()=>{var S;return((S=n(u).runtime)==null?void 0:S.postgres.url)??"(not set)"}))),k(bl,n(a)),k(yl,n(p)),k(xl,n(v)),k(Sl,`${n(f),b(()=>n(f).length)??""} recent`),k(Cl,`${n(x)??""} rules active`),On.disabled=A,k(Ml,n(Z)?"Saving...":"Add New Architecture Rule")},[()=>b(rt),()=>b(fe),()=>(n(Z),n($),b(()=>n(Z)||!n($).content.trim()))]),nr(Hs,()=>n($).type,l=>rs($,n($).type=l)),nr(Cn,()=>n($).scope,l=>rs($,n($).scope=l)),As(Mn,()=>n($).content,l=>rs($,n($).content=l)),As(In,()=>n($).reason,l=>rs($,n($).reason=l)),As(Nl,()=>n($).tags,l=>rs($,n($).tags=l)),ta("submit",zs,Tc(si)),nr(Js,()=>n(j),l=>M(j,l)),As(Dl,()=>n(L),l=>M(L,l)),F(e,Pr),wa()}uc(af,{target:document.getElementById("app")});
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Memory Core Dashboard</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-C612Qqha.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/assets/index-CJyZEmIe.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -1,24 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
getChatProviderLabel,
|
|
5
|
-
inferProjectArchitectures,
|
|
6
|
-
startWatch
|
|
7
|
-
} from "./chunk-J7SPACA3.js";
|
|
8
|
-
import {
|
|
9
|
-
embed
|
|
10
|
-
} from "./chunk-HAGRPKR3.js";
|
|
11
|
-
import {
|
|
3
|
+
Config,
|
|
12
4
|
closePool,
|
|
13
5
|
deleteMemory,
|
|
6
|
+
detectProject,
|
|
7
|
+
embed,
|
|
8
|
+
getChatProviderLabel,
|
|
14
9
|
getPool,
|
|
10
|
+
inferProjectArchitectures,
|
|
15
11
|
listMemories,
|
|
16
12
|
saveMemory,
|
|
13
|
+
startWatch,
|
|
17
14
|
updateMemory
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import {
|
|
20
|
-
Config
|
|
21
|
-
} from "./chunk-KSLFLWB4.js";
|
|
15
|
+
} from "./chunk-PDQXIKL7.js";
|
|
22
16
|
|
|
23
17
|
// src/dashboard-server.ts
|
|
24
18
|
import { createHash } from "crypto";
|
|
@@ -43,6 +37,15 @@ var RUNTIME_ENV_KEYS = [
|
|
|
43
37
|
"OLLAMA_CHAT_MODEL",
|
|
44
38
|
"CHAT_API_KEY"
|
|
45
39
|
];
|
|
40
|
+
var SNAPSHOT_BASE_TTL_MS = 3e3;
|
|
41
|
+
var MODEL_STATUS_TTL_MS = 1e4;
|
|
42
|
+
var SNAPSHOT_BROADCAST_DEBOUNCE_MS = 120;
|
|
43
|
+
var modelStatusCache;
|
|
44
|
+
var snapshotBaseCache;
|
|
45
|
+
var snapshotBroadcastTimer;
|
|
46
|
+
var snapshotBroadcastInFlight = false;
|
|
47
|
+
var snapshotBroadcastQueued = false;
|
|
48
|
+
var snapshotBroadcastForceRefresh = false;
|
|
46
49
|
function readJsonFile(path, fallback) {
|
|
47
50
|
if (!existsSync(path)) return fallback;
|
|
48
51
|
try {
|
|
@@ -81,6 +84,11 @@ function reloadRuntimeEnv() {
|
|
|
81
84
|
for (const [key, value] of Object.entries(values)) {
|
|
82
85
|
if (value !== "") process.env[key] = value;
|
|
83
86
|
}
|
|
87
|
+
modelStatusCache = void 0;
|
|
88
|
+
invalidateSnapshotBase();
|
|
89
|
+
}
|
|
90
|
+
function invalidateSnapshotBase() {
|
|
91
|
+
snapshotBaseCache = void 0;
|
|
84
92
|
}
|
|
85
93
|
function readStats() {
|
|
86
94
|
return readJsonFile(join(process.cwd(), ".memory-core-stats.json"), { rules: {}, files: {} });
|
|
@@ -88,6 +96,16 @@ function readStats() {
|
|
|
88
96
|
function topEntries(values = {}, limit = 8) {
|
|
89
97
|
return Object.entries(values).sort((a, b) => b[1] - a[1]).slice(0, limit).map(([name, count]) => ({ name, count }));
|
|
90
98
|
}
|
|
99
|
+
function buildStatsPayload() {
|
|
100
|
+
const stats = readStats();
|
|
101
|
+
return {
|
|
102
|
+
rules: stats.rules ?? {},
|
|
103
|
+
files: stats.files ?? {},
|
|
104
|
+
topRules: topEntries(stats.rules),
|
|
105
|
+
topFiles: topEntries(stats.files),
|
|
106
|
+
recentViolations: stats.recentViolations ?? []
|
|
107
|
+
};
|
|
108
|
+
}
|
|
91
109
|
function redactDatabaseUrl(url) {
|
|
92
110
|
if (!url) return "(not set)";
|
|
93
111
|
return url.replace(/:\/\/([^:@/]+)(?::[^@/]+)?@/, "://$1:***@");
|
|
@@ -133,7 +151,21 @@ async function resolveOllamaModel(ollamaUrl, model) {
|
|
|
133
151
|
const prefixed = models.find((entry) => entry.name.startsWith(`${model}:`));
|
|
134
152
|
return (exact ?? prefixed)?.name ?? null;
|
|
135
153
|
}
|
|
136
|
-
|
|
154
|
+
function buildModelStatusCacheKey() {
|
|
155
|
+
return [
|
|
156
|
+
Config.chatProvider,
|
|
157
|
+
Config.chatModel,
|
|
158
|
+
Config.ollamaModel,
|
|
159
|
+
Config.ollamaUrl,
|
|
160
|
+
Config.chatApiKey ? "key:set" : "key:empty"
|
|
161
|
+
].join("|");
|
|
162
|
+
}
|
|
163
|
+
async function getModelStatus(forceRefresh = false) {
|
|
164
|
+
const now = Date.now();
|
|
165
|
+
const key = buildModelStatusCacheKey();
|
|
166
|
+
if (!forceRefresh && modelStatusCache && modelStatusCache.key === key && modelStatusCache.expiresAt > now) {
|
|
167
|
+
return modelStatusCache.value;
|
|
168
|
+
}
|
|
137
169
|
const provider = Config.chatProvider;
|
|
138
170
|
const checkModel = Config.chatModel;
|
|
139
171
|
const embeddingModel = Config.ollamaModel;
|
|
@@ -166,6 +198,11 @@ async function getModelStatus() {
|
|
|
166
198
|
} catch (err) {
|
|
167
199
|
status.error = err.message;
|
|
168
200
|
}
|
|
201
|
+
modelStatusCache = {
|
|
202
|
+
key,
|
|
203
|
+
value: status,
|
|
204
|
+
expiresAt: now + MODEL_STATUS_TTL_MS
|
|
205
|
+
};
|
|
169
206
|
return status;
|
|
170
207
|
}
|
|
171
208
|
async function getRuntimeStatus(config) {
|
|
@@ -181,6 +218,7 @@ async function getRuntimeStatus(config) {
|
|
|
181
218
|
connected: false,
|
|
182
219
|
error: database.configured ? void 0 : "DATABASE_URL is not set"
|
|
183
220
|
};
|
|
221
|
+
const modelPromise = getModelStatus();
|
|
184
222
|
if (database.configured) {
|
|
185
223
|
try {
|
|
186
224
|
const result = await getPool().query(
|
|
@@ -201,7 +239,7 @@ async function getRuntimeStatus(config) {
|
|
|
201
239
|
};
|
|
202
240
|
}
|
|
203
241
|
}
|
|
204
|
-
const model = await
|
|
242
|
+
const model = await modelPromise;
|
|
205
243
|
return {
|
|
206
244
|
project: {
|
|
207
245
|
name: config?.projectName ?? process.cwd().split("/").pop() ?? "project",
|
|
@@ -249,9 +287,13 @@ function isRelevantMemory(memory, config, activeArchitectures) {
|
|
|
249
287
|
function filterMemoriesForProject(memories, config, activeArchitectures) {
|
|
250
288
|
return memories.filter((memory) => isRelevantMemory(memory, config, activeArchitectures));
|
|
251
289
|
}
|
|
252
|
-
async function
|
|
290
|
+
async function getSnapshotBase(forceRefresh = false) {
|
|
291
|
+
const now = Date.now();
|
|
292
|
+
if (!forceRefresh && snapshotBaseCache && snapshotBaseCache.expiresAt > now) {
|
|
293
|
+
return snapshotBaseCache.value;
|
|
294
|
+
}
|
|
253
295
|
const config = readProjectConfig();
|
|
254
|
-
const
|
|
296
|
+
const runtimePromise = getRuntimeStatus(config);
|
|
255
297
|
let memories = [];
|
|
256
298
|
let dbError;
|
|
257
299
|
try {
|
|
@@ -259,21 +301,11 @@ async function getSnapshot() {
|
|
|
259
301
|
} catch (err) {
|
|
260
302
|
dbError = err.message;
|
|
261
303
|
}
|
|
304
|
+
const runtime = await runtimePromise;
|
|
262
305
|
const relevantMemories = filterMemoriesForProject(memories, config, runtime.project.activeArchitectures);
|
|
263
|
-
const
|
|
264
|
-
return {
|
|
306
|
+
const value = {
|
|
265
307
|
config,
|
|
266
308
|
runtime,
|
|
267
|
-
stats: {
|
|
268
|
-
rules: stats.rules ?? {},
|
|
269
|
-
files: stats.files ?? {},
|
|
270
|
-
topRules: topEntries(stats.rules),
|
|
271
|
-
topFiles: topEntries(stats.files),
|
|
272
|
-
recentViolations: stats.recentViolations ?? []
|
|
273
|
-
},
|
|
274
|
-
files: Array.from(fileStatuses.values()).sort((a, b) => b.lastSeen.localeCompare(a.lastSeen)),
|
|
275
|
-
events: recentEvents,
|
|
276
|
-
watcher: watcherStatus,
|
|
277
309
|
memories: relevantMemories,
|
|
278
310
|
memoryCount: {
|
|
279
311
|
total: memories.length,
|
|
@@ -281,6 +313,25 @@ async function getSnapshot() {
|
|
|
281
313
|
},
|
|
282
314
|
dbError
|
|
283
315
|
};
|
|
316
|
+
snapshotBaseCache = {
|
|
317
|
+
value,
|
|
318
|
+
expiresAt: now + SNAPSHOT_BASE_TTL_MS
|
|
319
|
+
};
|
|
320
|
+
return value;
|
|
321
|
+
}
|
|
322
|
+
async function getSnapshot(options = {}) {
|
|
323
|
+
const base = await getSnapshotBase(options.forceBaseRefresh ?? false);
|
|
324
|
+
return {
|
|
325
|
+
config: base.config,
|
|
326
|
+
runtime: base.runtime,
|
|
327
|
+
stats: buildStatsPayload(),
|
|
328
|
+
files: Array.from(fileStatuses.values()).sort((a, b) => b.lastSeen.localeCompare(a.lastSeen)),
|
|
329
|
+
events: recentEvents,
|
|
330
|
+
watcher: watcherStatus,
|
|
331
|
+
memories: base.memories,
|
|
332
|
+
memoryCount: base.memoryCount,
|
|
333
|
+
dbError: base.dbError
|
|
334
|
+
};
|
|
284
335
|
}
|
|
285
336
|
function sendJson(res, status, payload) {
|
|
286
337
|
const body = JSON.stringify(payload);
|
|
@@ -313,6 +364,10 @@ async function handleApi(req, res, url) {
|
|
|
313
364
|
sendJson(res, 200, await getSnapshot());
|
|
314
365
|
return;
|
|
315
366
|
}
|
|
367
|
+
if (req.method === "GET" && url.pathname === "/api/stats") {
|
|
368
|
+
sendJson(res, 200, { stats: buildStatsPayload(), timestamp: (/* @__PURE__ */ new Date()).toISOString() });
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
316
371
|
if (req.method === "POST" && url.pathname === "/api/memories") {
|
|
317
372
|
const body = await readBody(req);
|
|
318
373
|
const content = typeof body.content === "string" ? body.content.trim() : "";
|
|
@@ -334,8 +389,9 @@ async function handleApi(req, res, url) {
|
|
|
334
389
|
tags: parseTags(body.tags),
|
|
335
390
|
embedding: await embed(content)
|
|
336
391
|
});
|
|
337
|
-
await broadcastSnapshot();
|
|
338
392
|
sendJson(res, 201, { ok: true });
|
|
393
|
+
invalidateSnapshotBase();
|
|
394
|
+
scheduleSnapshotBroadcast({ delayMs: 0, forceBaseRefresh: true });
|
|
339
395
|
return;
|
|
340
396
|
}
|
|
341
397
|
const memoryMatch = url.pathname.match(/^\/api\/memories\/(\d+)$/);
|
|
@@ -356,8 +412,9 @@ async function handleApi(req, res, url) {
|
|
|
356
412
|
sendJson(res, 404, { error: `No memory found with ID ${id}` });
|
|
357
413
|
return;
|
|
358
414
|
}
|
|
359
|
-
await broadcastSnapshot();
|
|
360
415
|
sendJson(res, 200, updated);
|
|
416
|
+
invalidateSnapshotBase();
|
|
417
|
+
scheduleSnapshotBroadcast({ delayMs: 0, forceBaseRefresh: true });
|
|
361
418
|
return;
|
|
362
419
|
}
|
|
363
420
|
if (memoryMatch && req.method === "DELETE") {
|
|
@@ -367,8 +424,9 @@ async function handleApi(req, res, url) {
|
|
|
367
424
|
sendJson(res, 404, { error: `No memory found with ID ${id}` });
|
|
368
425
|
return;
|
|
369
426
|
}
|
|
370
|
-
await broadcastSnapshot();
|
|
371
427
|
sendJson(res, 200, { ok: true });
|
|
428
|
+
invalidateSnapshotBase();
|
|
429
|
+
scheduleSnapshotBroadcast({ delayMs: 0, forceBaseRefresh: true });
|
|
372
430
|
return;
|
|
373
431
|
}
|
|
374
432
|
sendJson(res, 404, { error: "Not found" });
|
|
@@ -437,8 +495,50 @@ function sendWs(socket, payload) {
|
|
|
437
495
|
function broadcast(payload) {
|
|
438
496
|
for (const client of clients) sendWs(client, payload);
|
|
439
497
|
}
|
|
440
|
-
async function
|
|
441
|
-
|
|
498
|
+
async function sendSnapshotToSocket(socket, options = {}) {
|
|
499
|
+
try {
|
|
500
|
+
const snapshot = await getSnapshot(options);
|
|
501
|
+
sendWs(socket, { type: "snapshot", timestamp: (/* @__PURE__ */ new Date()).toISOString(), snapshot });
|
|
502
|
+
} catch (err) {
|
|
503
|
+
sendWs(socket, {
|
|
504
|
+
type: "watch",
|
|
505
|
+
event: {
|
|
506
|
+
type: "error",
|
|
507
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
508
|
+
message: `Failed to build dashboard snapshot: ${err.message}`
|
|
509
|
+
}
|
|
510
|
+
});
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
async function flushSnapshotBroadcast() {
|
|
514
|
+
if (snapshotBroadcastInFlight) {
|
|
515
|
+
snapshotBroadcastQueued = true;
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
snapshotBroadcastInFlight = true;
|
|
519
|
+
const forceBaseRefresh = snapshotBroadcastForceRefresh;
|
|
520
|
+
snapshotBroadcastForceRefresh = false;
|
|
521
|
+
try {
|
|
522
|
+
if (clients.size === 0) return;
|
|
523
|
+
const snapshot = await getSnapshot({ forceBaseRefresh });
|
|
524
|
+
broadcast({ type: "snapshot", timestamp: (/* @__PURE__ */ new Date()).toISOString(), snapshot });
|
|
525
|
+
} finally {
|
|
526
|
+
snapshotBroadcastInFlight = false;
|
|
527
|
+
if (snapshotBroadcastQueued) {
|
|
528
|
+
snapshotBroadcastQueued = false;
|
|
529
|
+
scheduleSnapshotBroadcast();
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
function scheduleSnapshotBroadcast(options = {}) {
|
|
534
|
+
const delayMs = options.delayMs ?? SNAPSHOT_BROADCAST_DEBOUNCE_MS;
|
|
535
|
+
if (options.forceBaseRefresh) snapshotBroadcastForceRefresh = true;
|
|
536
|
+
if (clients.size === 0) return;
|
|
537
|
+
if (snapshotBroadcastTimer) clearTimeout(snapshotBroadcastTimer);
|
|
538
|
+
snapshotBroadcastTimer = setTimeout(() => {
|
|
539
|
+
snapshotBroadcastTimer = void 0;
|
|
540
|
+
void flushSnapshotBroadcast();
|
|
541
|
+
}, Math.max(0, delayMs));
|
|
442
542
|
}
|
|
443
543
|
function handleWatchEvent(event) {
|
|
444
544
|
recentEvents.push(event);
|
|
@@ -492,7 +592,6 @@ function handleWatchEvent(event) {
|
|
|
492
592
|
watcherStatus.running = false;
|
|
493
593
|
}
|
|
494
594
|
broadcast({ type: "watch", event });
|
|
495
|
-
void broadcastSnapshot();
|
|
496
595
|
}
|
|
497
596
|
function acceptWebSocket(req, socket) {
|
|
498
597
|
const key = req.headers["sec-websocket-key"];
|
|
@@ -513,7 +612,7 @@ function acceptWebSocket(req, socket) {
|
|
|
513
612
|
socket.on("close", () => clients.delete(socket));
|
|
514
613
|
socket.on("error", () => clients.delete(socket));
|
|
515
614
|
sendWs(socket, { type: "connected", timestamp: (/* @__PURE__ */ new Date()).toISOString() });
|
|
516
|
-
void
|
|
615
|
+
void sendSnapshotToSocket(socket);
|
|
517
616
|
}
|
|
518
617
|
function startConfigWatch() {
|
|
519
618
|
let timer;
|
|
@@ -525,13 +624,14 @@ function startConfigWatch() {
|
|
|
525
624
|
timer = setTimeout(async () => {
|
|
526
625
|
reloadRuntimeEnv();
|
|
527
626
|
await closePool();
|
|
627
|
+
invalidateSnapshotBase();
|
|
528
628
|
recentEvents.push({
|
|
529
629
|
type: "error",
|
|
530
630
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
531
631
|
message: `Configuration reloaded from ${filePath.split("/").pop()}`
|
|
532
632
|
});
|
|
533
633
|
if (recentEvents.length > 100) recentEvents.shift();
|
|
534
|
-
|
|
634
|
+
scheduleSnapshotBroadcast({ forceBaseRefresh: true });
|
|
535
635
|
}, 150);
|
|
536
636
|
};
|
|
537
637
|
for (const file of watchedFiles) {
|
|
@@ -577,6 +677,10 @@ async function startDashboard(options = {}) {
|
|
|
577
677
|
});
|
|
578
678
|
server.on("close", () => {
|
|
579
679
|
stopConfigWatch();
|
|
680
|
+
if (snapshotBroadcastTimer) {
|
|
681
|
+
clearTimeout(snapshotBroadcastTimer);
|
|
682
|
+
snapshotBroadcastTimer = void 0;
|
|
683
|
+
}
|
|
580
684
|
void closePool();
|
|
581
685
|
});
|
|
582
686
|
await new Promise((resolve) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shahmilsaari/memory-core",
|
|
3
|
-
"version": "0.2
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Universal AI memory core — generate AI context files from architecture profiles with RAG support",
|
|
5
5
|
"homepage": "https://memory-core.shahmilsaari.my/",
|
|
6
6
|
"type": "module",
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
],
|
|
15
15
|
"scripts": {
|
|
16
16
|
"build": "tsup && vite build --config dashboard/vite.config.ts",
|
|
17
|
+
"release:patch": "npm version patch --no-git-tag-version && npm run build && npm publish --access public",
|
|
18
|
+
"release:minor": "npm version minor --no-git-tag-version && npm run build && npm publish --access public",
|
|
19
|
+
"release:major": "npm version major --no-git-tag-version && npm run build && npm publish --access public",
|
|
17
20
|
"docs:start": "npm run site:start",
|
|
18
21
|
"docs:build": "node scripts/build-static-docs.mjs",
|
|
19
22
|
"docs:serve": "npm run site:serve",
|
package/dist/chunk-HAGRPKR3.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
Config
|
|
4
|
-
} from "./chunk-KSLFLWB4.js";
|
|
5
|
-
|
|
6
|
-
// src/embedding.ts
|
|
7
|
-
async function embed(text) {
|
|
8
|
-
let response;
|
|
9
|
-
try {
|
|
10
|
-
response = await fetch(`${Config.ollamaUrl}/api/embeddings`, {
|
|
11
|
-
method: "POST",
|
|
12
|
-
headers: { "Content-Type": "application/json" },
|
|
13
|
-
body: JSON.stringify({ model: Config.ollamaModel, prompt: text })
|
|
14
|
-
});
|
|
15
|
-
} catch {
|
|
16
|
-
throw new Error(
|
|
17
|
-
`Cannot reach Ollama at ${Config.ollamaUrl}. Run: ollama serve`
|
|
18
|
-
);
|
|
19
|
-
}
|
|
20
|
-
if (!response.ok) {
|
|
21
|
-
const body = await response.text();
|
|
22
|
-
throw new Error(`Ollama embedding failed (${response.status}): ${body}`);
|
|
23
|
-
}
|
|
24
|
-
const data = await response.json();
|
|
25
|
-
return data.embedding;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export {
|
|
29
|
-
embed
|
|
30
|
-
};
|
package/dist/chunk-KSLFLWB4.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// src/config.ts
|
|
4
|
-
import { config } from "dotenv";
|
|
5
|
-
import { existsSync } from "fs";
|
|
6
|
-
import { join } from "path";
|
|
7
|
-
var localEnv = join(process.cwd(), ".memory-core.env");
|
|
8
|
-
config({ path: existsSync(localEnv) ? localEnv : join(process.cwd(), ".env") });
|
|
9
|
-
var Config = {
|
|
10
|
-
get databaseUrl() {
|
|
11
|
-
return process.env.DATABASE_URL ?? "";
|
|
12
|
-
},
|
|
13
|
-
get ollamaUrl() {
|
|
14
|
-
return process.env.OLLAMA_URL ?? "http://localhost:11434";
|
|
15
|
-
},
|
|
16
|
-
get ollamaModel() {
|
|
17
|
-
return process.env.OLLAMA_MODEL ?? "nomic-embed-text";
|
|
18
|
-
},
|
|
19
|
-
get chatModel() {
|
|
20
|
-
return process.env.CHAT_MODEL ?? process.env.OLLAMA_CHAT_MODEL ?? "llama3.2";
|
|
21
|
-
},
|
|
22
|
-
get chatProvider() {
|
|
23
|
-
return process.env.CHAT_PROVIDER ?? "ollama";
|
|
24
|
-
},
|
|
25
|
-
get chatApiKey() {
|
|
26
|
-
return process.env.CHAT_API_KEY ?? "";
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export {
|
|
31
|
-
Config
|
|
32
|
-
};
|