@shahmilsaari/memory-core 1.0.28 → 1.0.29
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/dist/cli.js +1 -1
- package/dist/dashboard/assets/index-Dfy_F0p7.js +2 -0
- package/dist/dashboard/assets/{index-DAEzcad9.css → index-Dj1JZCh6.css} +1 -1
- package/dist/dashboard/index.html +2 -2
- package/dist/{dashboard-server-S6T2XPRI.js → dashboard-server-DHSVWCCD.js} +82 -0
- package/package.json +1 -1
- package/dist/dashboard/assets/index-9hcL4kCI.js +0 -2
package/dist/cli.js
CHANGED
|
@@ -1753,7 +1753,7 @@ program.command("dashboard").description("Start the live Svelte dashboard with W
|
|
|
1753
1753
|
}
|
|
1754
1754
|
return void 0;
|
|
1755
1755
|
};
|
|
1756
|
-
const { startDashboard } = await import("./dashboard-server-
|
|
1756
|
+
const { startDashboard } = await import("./dashboard-server-DHSVWCCD.js");
|
|
1757
1757
|
await startDashboard({
|
|
1758
1758
|
port: parseInt(opts.port, 10),
|
|
1759
1759
|
path: resolveDashboardPath(),
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var Ao=Object.defineProperty;var zn=e=>{throw TypeError(e)};var To=(e,s,a)=>s in e?Ao(e,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[s]=a;var Pt=(e,s,a)=>To(e,typeof s!="symbol"?s+"":s,a),hr=(e,s,a)=>s.has(e)||zn("Cannot "+a);var d=(e,s,a)=>(hr(e,s,"read from private field"),a?a.call(e):s.get(e)),z=(e,s,a)=>s.has(e)?zn("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(e):s.set(e,a),X=(e,s,a,r)=>(hr(e,s,"write to private field"),r?r.call(e,a):s.set(e,a),a),ge=(e,s,a)=>(hr(e,s,"access private method"),a);(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const i of n)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 a(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(n){if(n.ep)return;n.ep=!0;const i=a(n);fetch(n.href,i)}})();const Mo=!1;var Dr=Array.isArray,Lo=Array.prototype.indexOf,sa=Array.prototype.includes,Za=Array.from,Co=Object.defineProperty,ma=Object.getOwnPropertyDescriptor,ul=Object.getOwnPropertyDescriptors,Oo=Object.prototype,Ro=Array.prototype,Ir=Object.getPrototypeOf,Yn=Object.isExtensible;const No=()=>{};function Do(e){return e()}function wr(e){for(var s=0;s<e.length;s++)e[s]()}function pl(){var e,s,a=new Promise((r,n)=>{e=r,s=n});return{promise:a,resolve:e,reject:s}}const Ze=2,aa=4,Ca=8,hl=1<<24,Zt=16,Wt=32,Es=64,kr=128,Ct=512,Ie=1024,Je=2048,Bt=4096,at=8192,Ot=16384,Vs=32768,Gn=1<<25,ra=65536,xr=1<<17,Io=1<<18,ia=1<<19,_l=1<<20,Qt=1<<25,$s=65536,Ya=1<<21,ka=1<<22,ks=1<<23,Is=Symbol("$state"),Fo=Symbol(""),ns=new class extends Error{constructor(){super(...arguments);Pt(this,"name","StaleReactionError");Pt(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function Po(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function jo(e,s,a){throw new Error("https://svelte.dev/e/each_key_duplicate")}function $o(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Ho(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Wo(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Bo(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Uo(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Vo(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Ko(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function qo(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const zo=1,Yo=2,bl=4,Go=8,Jo=16,ml=1,Xo=2,Ke=Symbol(),gl="http://www.w3.org/1999/xhtml";function Qo(){console.warn("https://svelte.dev/e/derived_inert")}function Zo(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ec(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function yl(e){return e===this.v}function tc(e,s){return e!=e?s==s:e!==s||e!==null&&typeof e=="object"||typeof e=="function"}function wl(e){return!tc(e,this.v)}let er=!1,sc=!1;function ac(){er=!0}let Fe=null;function na(e){Fe=e}function kl(e,s=!1,a){Fe={p:Fe,i:!1,c:null,e:null,s:e,x:null,r:Q,l:er&&!s?{s:null,u:null,$:[]}:null}}function xl(e){var s=Fe,a=s.e;if(a!==null){s.e=null;for(var r of a)Ul(r)}return s.i=!0,Fe=s.p,{}}function Oa(){return!er||Fe!==null&&Fe.l===null}let Ms=[];function El(){var e=Ms;Ms=[],wr(e)}function xs(e){if(Ms.length===0&&!ga){var s=Ms;queueMicrotask(()=>{s===Ms&&El()})}Ms.push(e)}function rc(){for(;Ms.length>0;)El()}function Sl(e){var s=Q;if(s===null)return ee.f|=ks,e;if(!(s.f&Vs)&&!(s.f&aa))throw e;ws(e,s)}function ws(e,s){for(;s!==null;){if(s.f&kr){if(!(s.f&Vs))throw e;try{s.b.error(e);return}catch(a){e=a}}s=s.parent}throw e}const nc=-7169;function Te(e,s){e.f=e.f&nc|s}function Fr(e){e.f&Ct||e.deps===null?Te(e,Ie):Te(e,Bt)}function Al(e){if(e!==null)for(const s of e)!(s.f&Ze)||!(s.f&$s)||(s.f^=$s,Al(s.deps))}function Tl(e,s,a){e.f&Je?s.add(e):e.f&Bt&&a.add(e),Al(e.deps),Te(e,Ie)}const Ts=new Set;let N=null,Ge=null,Er=null,ga=!1,_r=!1,Gs=null,Ha=null;var Jn=0;let lc=1;var Xs,Qs,Cs,ls,Gt,Ea,mt,Sa,gs,is,Jt,Zs,ea,Os,Pe,Wa,Ml,Ba,Sr,Ua,ic;const Ja=class Ja{constructor(){z(this,Pe);Pt(this,"id",lc++);Pt(this,"current",new Map);Pt(this,"previous",new Map);z(this,Xs,new Set);z(this,Qs,new Set);z(this,Cs,new Set);z(this,ls,new Map);z(this,Gt,new Map);z(this,Ea,null);z(this,mt,[]);z(this,Sa,[]);z(this,gs,new Set);z(this,is,new Set);z(this,Jt,new Map);z(this,Zs,new Set);Pt(this,"is_fork",!1);z(this,ea,!1);z(this,Os,new Set)}skip_effect(s){d(this,Jt).has(s)||d(this,Jt).set(s,{d:[],m:[]}),d(this,Zs).delete(s)}unskip_effect(s,a=r=>this.schedule(r)){var r=d(this,Jt).get(s);if(r){d(this,Jt).delete(s);for(var n of r.d)Te(n,Je),a(n);for(n of r.m)Te(n,Bt),a(n)}d(this,Zs).add(s)}capture(s,a,r=!1){s.v!==Ke&&!this.previous.has(s)&&this.previous.set(s,s.v),s.f&ks||(this.current.set(s,[a,r]),Ge==null||Ge.set(s,a)),this.is_fork||(s.v=a)}activate(){N=this}deactivate(){N=null,Ge=null}flush(){try{_r=!0,N=this,ge(this,Pe,Ba).call(this)}finally{Jn=0,Er=null,Gs=null,Ha=null,_r=!1,N=null,Ge=null,Fs.clear()}}discard(){for(const s of d(this,Qs))s(this);d(this,Qs).clear(),d(this,Cs).clear(),Ts.delete(this)}register_created_effect(s){d(this,Sa).push(s)}increment(s,a){let r=d(this,ls).get(a)??0;if(d(this,ls).set(a,r+1),s){let n=d(this,Gt).get(a)??0;d(this,Gt).set(a,n+1)}}decrement(s,a,r){let n=d(this,ls).get(a)??0;if(n===1?d(this,ls).delete(a):d(this,ls).set(a,n-1),s){let i=d(this,Gt).get(a)??0;i===1?d(this,Gt).delete(a):d(this,Gt).set(a,i-1)}d(this,ea)||r||(X(this,ea,!0),xs(()=>{X(this,ea,!1),this.flush()}))}transfer_effects(s,a){for(const r of s)d(this,gs).add(r);for(const r of a)d(this,is).add(r);s.clear(),a.clear()}oncommit(s){d(this,Xs).add(s)}ondiscard(s){d(this,Qs).add(s)}on_fork_commit(s){d(this,Cs).add(s)}run_fork_commit_callbacks(){for(const s of d(this,Cs))s(this);d(this,Cs).clear()}settled(){return(d(this,Ea)??X(this,Ea,pl())).promise}static ensure(){if(N===null){const s=N=new Ja;_r||(Ts.add(N),ga||xs(()=>{N===s&&s.flush()}))}return N}apply(){{Ge=null;return}}schedule(s){var n;if(Er=s,(n=s.b)!=null&&n.is_pending&&s.f&(aa|Ca|hl)&&!(s.f&Vs)){s.b.defer_effect(s);return}for(var a=s;a.parent!==null;){a=a.parent;var r=a.f;if(Gs!==null&&a===Q&&(ee===null||!(ee.f&Ze)))return;if(r&(Es|Wt)){if(!(r&Ie))return;a.f^=Ie}}d(this,mt).push(a)}};Xs=new WeakMap,Qs=new WeakMap,Cs=new WeakMap,ls=new WeakMap,Gt=new WeakMap,Ea=new WeakMap,mt=new WeakMap,Sa=new WeakMap,gs=new WeakMap,is=new WeakMap,Jt=new WeakMap,Zs=new WeakMap,ea=new WeakMap,Os=new WeakMap,Pe=new WeakSet,Wa=function(){return this.is_fork||d(this,Gt).size>0},Ml=function(){for(const r of d(this,Os))for(const n of d(r,Gt).keys()){for(var s=!1,a=n;a.parent!==null;){if(d(this,Jt).has(a)){s=!0;break}a=a.parent}if(!s)return!0}return!1},Ba=function(){var u,f;if(Jn++>1e3&&(Ts.delete(this),cc()),!ge(this,Pe,Wa).call(this)){for(const h of d(this,gs))d(this,is).delete(h),Te(h,Je),this.schedule(h);for(const h of d(this,is))Te(h,Bt),this.schedule(h)}const s=d(this,mt);X(this,mt,[]),this.apply();var a=Gs=[],r=[],n=Ha=[];for(const h of s)try{ge(this,Pe,Sr).call(this,h,a,r)}catch(m){throw Ol(h),m}if(N=null,n.length>0){var i=Ja.ensure();for(const h of n)i.schedule(h)}if(Gs=null,Ha=null,ge(this,Pe,Wa).call(this)||ge(this,Pe,Ml).call(this)){ge(this,Pe,Ua).call(this,r),ge(this,Pe,Ua).call(this,a);for(const[h,m]of d(this,Jt))Cl(h,m)}else{d(this,ls).size===0&&Ts.delete(this),d(this,gs).clear(),d(this,is).clear();for(const h of d(this,Xs))h(this);d(this,Xs).clear(),Xn(r),Xn(a),(u=d(this,Ea))==null||u.resolve()}var v=N;if(d(this,mt).length>0){const h=v??(v=this);d(h,mt).push(...d(this,mt).filter(m=>!d(h,mt).includes(m)))}v!==null&&(Ts.add(v),ge(f=v,Pe,Ba).call(f))},Sr=function(s,a,r){s.f^=Ie;for(var n=s.first;n!==null;){var i=n.f,v=(i&(Wt|Es))!==0,u=v&&(i&Ie)!==0,f=u||(i&at)!==0||d(this,Jt).has(n);if(!f&&n.fn!==null){v?n.f^=Ie:i&aa?a.push(n):oa(n)&&(i&Zt&&d(this,is).add(n),Us(n));var h=n.first;if(h!==null){n=h;continue}}for(;n!==null;){var m=n.next;if(m!==null){n=m;break}n=n.parent}}},Ua=function(s){for(var a=0;a<s.length;a+=1)Tl(s[a],d(this,gs),d(this,is))},ic=function(){var m,M,E;for(const k of Ts){var s=k.id<this.id,a=[];for(const[x,[$,A]]of this.current){if(k.current.has(x)){var r=k.current.get(x)[0];if(s&&$!==r)k.current.set(x,[$,A]);else continue}a.push(x)}var n=[...k.current.keys()].filter(x=>!this.current.has(x));if(n.length===0)s&&k.discard();else if(a.length>0){if(s)for(const x of d(this,Zs))k.unskip_effect(x,$=>{var A;$.f&(Zt|ka)?k.schedule($):ge(A=k,Pe,Ua).call(A,[$])});k.activate();var i=new Set,v=new Map;for(var u of a)Ll(u,n,i,v);v=new Map;var f=[...k.current.keys()].filter(x=>this.current.has(x)?this.current.get(x)[0]!==x:!0);for(const x of d(this,Sa))!(x.f&(Ot|at|xr))&&Pr(x,f,v)&&(x.f&(ka|Zt)?(Te(x,Je),k.schedule(x)):d(k,gs).add(x));if(d(k,mt).length>0){k.apply();for(var h of d(k,mt))ge(m=k,Pe,Sr).call(m,h,[],[]);X(k,mt,[])}k.deactivate()}}for(const k of Ts)d(k,Os).has(this)&&(d(k,Os).delete(this),d(k,Os).size===0&&!ge(M=k,Pe,Wa).call(M)&&(k.activate(),ge(E=k,Pe,Ba).call(E)))};let Hs=Ja;function oc(e){var s=ga;ga=!0;try{for(var a;;){if(rc(),N===null)return a;N.flush()}}finally{ga=s}}function cc(){try{Bo()}catch(e){ws(e,Er)}}let jt=null;function Xn(e){var s=e.length;if(s!==0){for(var a=0;a<s;){var r=e[a++];if(!(r.f&(Ot|at))&&oa(r)&&(jt=new Set,Us(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Kl(r),(jt==null?void 0:jt.size)>0)){Fs.clear();for(const n of jt){if(n.f&(Ot|at))continue;const i=[n];let v=n.parent;for(;v!==null;)jt.has(v)&&(jt.delete(v),i.push(v)),v=v.parent;for(let u=i.length-1;u>=0;u--){const f=i[u];f.f&(Ot|at)||Us(f)}}jt.clear()}}jt=null}}function Ll(e,s,a,r){if(!a.has(e)&&(a.add(e),e.reactions!==null))for(const n of e.reactions){const i=n.f;i&Ze?Ll(n,s,a,r):i&(ka|Zt)&&!(i&Je)&&Pr(n,s,r)&&(Te(n,Je),jr(n))}}function Pr(e,s,a){const r=a.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const n of e.deps){if(sa.call(s,n))return!0;if(n.f&Ze&&Pr(n,s,a))return a.set(n,!0),!0}return a.set(e,!1),!1}function jr(e){N.schedule(e)}function Cl(e,s){if(!(e.f&Wt&&e.f&Ie)){e.f&Je?s.d.push(e):e.f&Bt&&s.m.push(e),Te(e,Ie);for(var a=e.first;a!==null;)Cl(a,s),a=a.next}}function Ol(e){Te(e,Ie);for(var s=e.first;s!==null;)Ol(s),s=s.next}function dc(e){let s=0,a=Ws(0),r;return()=>{Wr()&&(t(a),sr(()=>(s===0&&(r=p(()=>e(()=>ya(a)))),s+=1,()=>{xs(()=>{s-=1,s===0&&(r==null||r(),r=void 0,ya(a))})})))}}var vc=ra|ia;function fc(e,s,a,r){new uc(e,s,a,r)}var At,Nr,Tt,Rs,dt,Mt,st,gt,os,Ns,ys,ta,Aa,Ta,cs,Xa,Me,pc,hc,_c,Ar,Va,Ka,Tr,Mr;class uc{constructor(s,a,r,n){z(this,Me);Pt(this,"parent");Pt(this,"is_pending",!1);Pt(this,"transform_error");z(this,At);z(this,Nr,null);z(this,Tt);z(this,Rs);z(this,dt);z(this,Mt,null);z(this,st,null);z(this,gt,null);z(this,os,null);z(this,Ns,0);z(this,ys,0);z(this,ta,!1);z(this,Aa,new Set);z(this,Ta,new Set);z(this,cs,null);z(this,Xa,dc(()=>(X(this,cs,Ws(d(this,Ns))),()=>{X(this,cs,null)})));var i;X(this,At,s),X(this,Tt,a),X(this,Rs,v=>{var u=Q;u.b=this,u.f|=kr,r(v)}),this.parent=Q.b,this.transform_error=n??((i=this.parent)==null?void 0:i.transform_error)??(v=>v),X(this,dt,Ur(()=>{ge(this,Me,Ar).call(this)},vc))}defer_effect(s){Tl(s,d(this,Aa),d(this,Ta))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!d(this,Tt).pending}update_pending_count(s,a){ge(this,Me,Tr).call(this,s,a),X(this,Ns,d(this,Ns)+s),!(!d(this,cs)||d(this,ta))&&(X(this,ta,!0),xs(()=>{X(this,ta,!1),d(this,cs)&&Bs(d(this,cs),d(this,Ns))}))}get_effect_pending(){return d(this,Xa).call(this),t(d(this,cs))}error(s){if(!d(this,Tt).onerror&&!d(this,Tt).failed)throw s;N!=null&&N.is_fork?(d(this,Mt)&&N.skip_effect(d(this,Mt)),d(this,st)&&N.skip_effect(d(this,st)),d(this,gt)&&N.skip_effect(d(this,gt)),N.on_fork_commit(()=>{ge(this,Me,Mr).call(this,s)})):ge(this,Me,Mr).call(this,s)}}At=new WeakMap,Nr=new WeakMap,Tt=new WeakMap,Rs=new WeakMap,dt=new WeakMap,Mt=new WeakMap,st=new WeakMap,gt=new WeakMap,os=new WeakMap,Ns=new WeakMap,ys=new WeakMap,ta=new WeakMap,Aa=new WeakMap,Ta=new WeakMap,cs=new WeakMap,Xa=new WeakMap,Me=new WeakSet,pc=function(){try{X(this,Mt,Lt(()=>d(this,Rs).call(this,d(this,At))))}catch(s){this.error(s)}},hc=function(s){const a=d(this,Tt).failed;a&&X(this,gt,Lt(()=>{a(d(this,At),()=>s,()=>()=>{})}))},_c=function(){const s=d(this,Tt).pending;s&&(this.is_pending=!0,X(this,st,Lt(()=>s(d(this,At)))),xs(()=>{var a=X(this,os,document.createDocumentFragment()),r=vs();a.append(r),X(this,Mt,ge(this,Me,Ka).call(this,()=>Lt(()=>d(this,Rs).call(this,r)))),d(this,ys)===0&&(d(this,At).before(a),X(this,os,null),Ps(d(this,st),()=>{X(this,st,null)}),ge(this,Me,Va).call(this,N))}))},Ar=function(){try{if(this.is_pending=this.has_pending_snippet(),X(this,ys,0),X(this,Ns,0),X(this,Mt,Lt(()=>{d(this,Rs).call(this,d(this,At))})),d(this,ys)>0){var s=X(this,os,document.createDocumentFragment());qr(d(this,Mt),s);const a=d(this,Tt).pending;X(this,st,Lt(()=>a(d(this,At))))}else ge(this,Me,Va).call(this,N)}catch(a){this.error(a)}},Va=function(s){this.is_pending=!1,s.transfer_effects(d(this,Aa),d(this,Ta))},Ka=function(s){var a=Q,r=ee,n=Fe;Dt(d(this,dt)),Nt(d(this,dt)),na(d(this,dt).ctx);try{return Hs.ensure(),s()}catch(i){return Sl(i),null}finally{Dt(a),Nt(r),na(n)}},Tr=function(s,a){var r;if(!this.has_pending_snippet()){this.parent&&ge(r=this.parent,Me,Tr).call(r,s,a);return}X(this,ys,d(this,ys)+s),d(this,ys)===0&&(ge(this,Me,Va).call(this,a),d(this,st)&&Ps(d(this,st),()=>{X(this,st,null)}),d(this,os)&&(d(this,At).before(d(this,os)),X(this,os,null)))},Mr=function(s){d(this,Mt)&&(ft(d(this,Mt)),X(this,Mt,null)),d(this,st)&&(ft(d(this,st)),X(this,st,null)),d(this,gt)&&(ft(d(this,gt)),X(this,gt,null));var a=d(this,Tt).onerror;let r=d(this,Tt).failed;var n=!1,i=!1;const v=()=>{if(n){ec();return}n=!0,i&&qo(),d(this,gt)!==null&&Ps(d(this,gt),()=>{X(this,gt,null)}),ge(this,Me,Ka).call(this,()=>{ge(this,Me,Ar).call(this)})},u=f=>{try{i=!0,a==null||a(f,v),i=!1}catch(h){ws(h,d(this,dt)&&d(this,dt).parent)}r&&X(this,gt,ge(this,Me,Ka).call(this,()=>{try{return Lt(()=>{var h=Q;h.b=this,h.f|=kr,r(d(this,At),()=>f,()=>v)})}catch(h){return ws(h,d(this,dt).parent),null}}))};xs(()=>{var f;try{f=this.transform_error(s)}catch(h){ws(h,d(this,dt)&&d(this,dt).parent);return}f!==null&&typeof f=="object"&&typeof f.then=="function"?f.then(u,h=>ws(h,d(this,dt)&&d(this,dt).parent)):u(f)})};function bc(e,s,a,r){const n=Oa()?$r:Js;var i=e.filter(E=>!E.settled);if(a.length===0&&i.length===0){r(s.map(n));return}var v=Q,u=mc(),f=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(E=>E.promise)):null;function h(E){u();try{r(E)}catch(k){v.f&Ot||ws(k,v)}Ga()}if(a.length===0){f.then(()=>h(s.map(n)));return}var m=Rl();function M(){Promise.all(a.map(E=>gc(E))).then(E=>h([...s.map(n),...E])).catch(E=>ws(E,v)).finally(()=>m())}f?f.then(()=>{u(),M(),Ga()}):M()}function mc(){var e=Q,s=ee,a=Fe,r=N;return function(i=!0){Dt(e),Nt(s),na(a),i&&!(e.f&Ot)&&(r==null||r.activate(),r==null||r.apply())}}function Ga(e=!0){Dt(null),Nt(null),na(null),e&&(N==null||N.deactivate())}function Rl(){var e=Q,s=e.b,a=N,r=s.is_rendered();return s.update_pending_count(1,a),a.increment(r,e),(n=!1)=>{s.update_pending_count(-1,a),a.decrement(r,e,n)}}function $r(e){var s=Ze|Je;return Q!==null&&(Q.f|=ia),{ctx:Fe,deps:null,effects:null,equals:yl,f:s,fn:e,reactions:null,rv:0,v:Ke,wv:0,parent:Q,ac:null}}function gc(e,s,a){let r=Q;r===null&&Po();var n=void 0,i=Ws(Ke),v=!ee,u=new Map;return Nc(()=>{var k;var f=Q,h=pl();n=h.promise;try{Promise.resolve(e()).then(h.resolve,h.reject).finally(Ga)}catch(x){h.reject(x),Ga()}var m=N;if(v){if(f.f&Vs)var M=Rl();if(r.b.is_rendered())(k=u.get(m))==null||k.reject(ns),u.delete(m);else{for(const x of u.values())x.reject(ns);u.clear()}u.set(m,h)}const E=(x,$=void 0)=>{if(M){var A=$===ns;M(A)}if(!($===ns||f.f&Ot)){if(m.activate(),$)i.f|=ks,Bs(i,$);else{i.f&ks&&(i.f^=ks),Bs(i,x);for(const[F,oe]of u){if(u.delete(F),F===m)break;oe.reject(ns)}}m.deactivate()}};h.promise.then(E,x=>E(null,x||"unknown"))}),Br(()=>{for(const f of u.values())f.reject(ns)}),new Promise(f=>{function h(m){function M(){m===n?f(i):h(n)}m.then(M,M)}h(n)})}function Js(e){const s=$r(e);return s.equals=wl,s}function yc(e){var s=e.effects;if(s!==null){e.effects=null;for(var a=0;a<s.length;a+=1)ft(s[a])}}function Hr(e){var s,a=Q,r=e.parent;if(!Ss&&r!==null&&r.f&(Ot|at))return Qo(),e.v;Dt(r);try{e.f&=~$s,yc(e),s=Xl(e)}finally{Dt(a)}return s}function Nl(e){var s=Hr(e);if(!e.equals(s)&&(e.wv=Gl(),(!(N!=null&&N.is_fork)||e.deps===null)&&(N!==null?N.capture(e,s,!0):e.v=s,e.deps===null))){Te(e,Ie);return}Ss||(Ge!==null?(Wr()||N!=null&&N.is_fork)&&Ge.set(e,s):Fr(e))}function wc(e){var s,a;if(e.effects!==null)for(const r of e.effects)(r.teardown||r.ac)&&((s=r.teardown)==null||s.call(r),(a=r.ac)==null||a.abort(ns),r.teardown=No,r.ac=null,xa(r,0),Vr(r))}function Dl(e){if(e.effects!==null)for(const s of e.effects)s.teardown&&Us(s)}let Lr=new Set;const Fs=new Map;let Il=!1;function Ws(e,s){var a={f:0,v:e,reactions:null,equals:yl,rv:0,wv:0};return a}function hs(e,s){const a=Ws(e);return Pc(a),a}function B(e,s=!1,a=!0){var n;const r=Ws(e);return s||(r.equals=wl),er&&a&&Fe!==null&&Fe.l!==null&&((n=Fe.l).s??(n.s=[])).push(r),r}function Ue(e,s){return y(e,p(()=>t(e))),s}function y(e,s,a=!1){ee!==null&&(!Ht||ee.f&xr)&&Oa()&&ee.f&(Ze|Zt|ka|xr)&&(Rt===null||!sa.call(Rt,e))&&Ko();let r=a?_a(s):s;return Bs(e,r,Ha)}function Bs(e,s,a=null){if(!e.equals(s)){Fs.set(e,Ss?s:e.v);var r=Hs.ensure();if(r.capture(e,s),e.f&Ze){const n=e;e.f&Je&&Hr(n),Ge===null&&Fr(n)}e.wv=Gl(),Fl(e,Je,a),Oa()&&Q!==null&&Q.f&Ie&&!(Q.f&(Wt|Es))&&(St===null?jc([e]):St.push(e)),!r.is_fork&&Lr.size>0&&!Il&&kc()}return s}function kc(){Il=!1;for(const e of Lr)e.f&Ie&&Te(e,Bt),oa(e)&&Us(e);Lr.clear()}function ya(e){y(e,e.v+1)}function Fl(e,s,a){var r=e.reactions;if(r!==null)for(var n=Oa(),i=r.length,v=0;v<i;v++){var u=r[v],f=u.f;if(!(!n&&u===Q)){var h=(f&Je)===0;if(h&&Te(u,s),f&Ze){var m=u;Ge==null||Ge.delete(m),f&$s||(f&Ct&&(Q===null||!(Q.f&Ya))&&(u.f|=$s),Fl(m,Bt,a))}else if(h){var M=u;f&Zt&&jt!==null&&jt.add(M),a!==null?a.push(M):jr(M)}}}}function _a(e){if(typeof e!="object"||e===null||Is in e)return e;const s=Ir(e);if(s!==Oo&&s!==Ro)return e;var a=new Map,r=Dr(e),n=hs(0),i=js,v=u=>{if(js===i)return u();var f=ee,h=js;Nt(null),al(i);var m=u();return Nt(f),al(h),m};return r&&a.set("length",hs(e.length)),new Proxy(e,{defineProperty(u,f,h){(!("value"in h)||h.configurable===!1||h.enumerable===!1||h.writable===!1)&&Uo();var m=a.get(f);return m===void 0?v(()=>{var M=hs(h.value);return a.set(f,M),M}):y(m,h.value,!0),!0},deleteProperty(u,f){var h=a.get(f);if(h===void 0){if(f in u){const m=v(()=>hs(Ke));a.set(f,m),ya(n)}}else y(h,Ke),ya(n);return!0},get(u,f,h){var k;if(f===Is)return e;var m=a.get(f),M=f in u;if(m===void 0&&(!M||(k=ma(u,f))!=null&&k.writable)&&(m=v(()=>{var x=_a(M?u[f]:Ke),$=hs(x);return $}),a.set(f,m)),m!==void 0){var E=t(m);return E===Ke?void 0:E}return Reflect.get(u,f,h)},getOwnPropertyDescriptor(u,f){var h=Reflect.getOwnPropertyDescriptor(u,f);if(h&&"value"in h){var m=a.get(f);m&&(h.value=t(m))}else if(h===void 0){var M=a.get(f),E=M==null?void 0:M.v;if(M!==void 0&&E!==Ke)return{enumerable:!0,configurable:!0,value:E,writable:!0}}return h},has(u,f){var E;if(f===Is)return!0;var h=a.get(f),m=h!==void 0&&h.v!==Ke||Reflect.has(u,f);if(h!==void 0||Q!==null&&(!m||(E=ma(u,f))!=null&&E.writable)){h===void 0&&(h=v(()=>{var k=m?_a(u[f]):Ke,x=hs(k);return x}),a.set(f,h));var M=t(h);if(M===Ke)return!1}return m},set(u,f,h,m){var de;var M=a.get(f),E=f in u;if(r&&f==="length")for(var k=h;k<M.v;k+=1){var x=a.get(k+"");x!==void 0?y(x,Ke):k in u&&(x=v(()=>hs(Ke)),a.set(k+"",x))}if(M===void 0)(!E||(de=ma(u,f))!=null&&de.writable)&&(M=v(()=>hs(void 0)),y(M,_a(h)),a.set(f,M));else{E=M.v!==Ke;var $=v(()=>_a(h));y(M,$)}var A=Reflect.getOwnPropertyDescriptor(u,f);if(A!=null&&A.set&&A.set.call(m,h),!E){if(r&&typeof f=="string"){var F=a.get("length"),oe=Number(f);Number.isInteger(oe)&&oe>=F.v&&y(F,oe+1)}ya(n)}return!0},ownKeys(u){t(n);var f=Reflect.ownKeys(u).filter(M=>{var E=a.get(M);return E===void 0||E.v!==Ke});for(var[h,m]of a)m.v!==Ke&&!(h in u)&&f.push(h);return f},setPrototypeOf(){Vo()}})}function Qn(e){try{if(e!==null&&typeof e=="object"&&Is in e)return e[Is]}catch{}return e}function xc(e,s){return Object.is(Qn(e),Qn(s))}var Zn,Pl,jl,$l;function Ec(){if(Zn===void 0){Zn=window,Pl=/Firefox/.test(navigator.userAgent);var e=Element.prototype,s=Node.prototype,a=Text.prototype;jl=ma(s,"firstChild").get,$l=ma(s,"nextSibling").get,Yn(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Yn(a)&&(a.__t=void 0)}}function vs(e=""){return document.createTextNode(e)}function ds(e){return jl.call(e)}function Ra(e){return $l.call(e)}function c(e,s){return ds(e)}function Ve(e,s=!1){{var a=ds(e);return a instanceof Comment&&a.data===""?Ra(a):a}}function o(e,s=1,a=!1){let r=e;for(;s--;)r=Ra(r);return r}function Sc(e){e.textContent=""}function Hl(){return!1}function Ac(e,s,a){return document.createElementNS(gl,e,void 0)}let el=!1;function Tc(){el||(el=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var s;if(!e.defaultPrevented)for(const a of e.target.elements)(s=a.__on_r)==null||s.call(a)})},{capture:!0}))}function tr(e){var s=ee,a=Q;Nt(null),Dt(null);try{return e()}finally{Nt(s),Dt(a)}}function Wl(e,s,a,r=a){e.addEventListener(s,()=>tr(a));const n=e.__on_r;n?e.__on_r=()=>{n(),r(!0)}:e.__on_r=()=>r(!0),Tc()}function Bl(e){Q===null&&(ee===null&&Wo(),Ho()),Ss&&$o()}function Mc(e,s){var a=s.last;a===null?s.last=s.first=e:(a.next=e,e.prev=a,s.last=e)}function es(e,s){var a=Q;a!==null&&a.f&at&&(e|=at);var r={ctx:Fe,deps:null,nodes:null,f:e|Je|Ct,first:null,fn:s,last:null,next:null,parent:a,b:a&&a.b,prev:null,teardown:null,wv:0,ac:null};N==null||N.register_created_effect(r);var n=r;if(e&aa)Gs!==null?Gs.push(r):Hs.ensure().schedule(r);else if(s!==null){try{Us(r)}catch(v){throw ft(r),v}n.deps===null&&n.teardown===null&&n.nodes===null&&n.first===n.last&&!(n.f&ia)&&(n=n.first,e&Zt&&e&ra&&n!==null&&(n.f|=ra))}if(n!==null&&(n.parent=a,a!==null&&Mc(n,a),ee!==null&&ee.f&Ze&&!(e&Es))){var i=ee;(i.effects??(i.effects=[])).push(n)}return r}function Wr(){return ee!==null&&!Ht}function Br(e){const s=es(Ca,null);return Te(s,Ie),s.teardown=e,s}function tl(e){Bl();var s=Q.f,a=!ee&&(s&Wt)!==0&&(s&Vs)===0;if(a){var r=Fe;(r.e??(r.e=[])).push(e)}else return Ul(e)}function Ul(e){return es(aa|_l,e)}function Lc(e){return Bl(),es(Ca|_l,e)}function Cc(e){Hs.ensure();const s=es(Es|ia,e);return(a={})=>new Promise(r=>{a.outro?Ps(s,()=>{ft(s),r(void 0)}):(ft(s),r(void 0))})}function Oc(e){return es(aa,e)}function Ne(e,s){var a=Fe,r={effect:null,ran:!1,deps:e};a.l.$.push(r),r.effect=sr(()=>{if(e(),!r.ran){r.ran=!0;var n=Q;try{Dt(n.parent),p(s)}finally{Dt(n)}}})}function Rc(){var e=Fe;sr(()=>{for(var s of e.l.$){s.deps();var a=s.effect;a.f&Ie&&a.deps!==null&&Te(a,Bt),oa(a)&&Us(a),s.ran=!1}})}function Nc(e){return es(ka|ia,e)}function sr(e,s=0){return es(Ca|s,e)}function W(e,s=[],a=[],r=[]){bc(r,s,a,n=>{es(Ca,()=>e(...n.map(t)))})}function Ur(e,s=0){var a=es(Zt|s,e);return a}function Lt(e){return es(Wt|ia,e)}function Vl(e){var s=e.teardown;if(s!==null){const a=Ss,r=ee;sl(!0),Nt(null);try{s.call(null)}finally{sl(a),Nt(r)}}}function Vr(e,s=!1){var a=e.first;for(e.first=e.last=null;a!==null;){const n=a.ac;n!==null&&tr(()=>{n.abort(ns)});var r=a.next;a.f&Es?a.parent=null:ft(a,s),a=r}}function Dc(e){for(var s=e.first;s!==null;){var a=s.next;s.f&Wt||ft(s),s=a}}function ft(e,s=!0){var a=!1;(s||e.f&Io)&&e.nodes!==null&&e.nodes.end!==null&&(Ic(e.nodes.start,e.nodes.end),a=!0),Te(e,Gn),Vr(e,s&&!a),xa(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();Vl(e),e.f^=Gn,e.f|=Ot;var n=e.parent;n!==null&&n.first!==null&&Kl(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Ic(e,s){for(;e!==null;){var a=e===s?null:Ra(e);e.remove(),e=a}}function Kl(e){var s=e.parent,a=e.prev,r=e.next;a!==null&&(a.next=r),r!==null&&(r.prev=a),s!==null&&(s.first===e&&(s.first=r),s.last===e&&(s.last=a))}function Ps(e,s,a=!0){var r=[];ql(e,r,!0);var n=()=>{a&&ft(e),s&&s()},i=r.length;if(i>0){var v=()=>--i||n();for(var u of r)u.out(v)}else n()}function ql(e,s,a){if(!(e.f&at)){e.f^=at;var r=e.nodes&&e.nodes.t;if(r!==null)for(const u of r)(u.is_global||a)&&s.push(u);for(var n=e.first;n!==null;){var i=n.next;if(!(n.f&Es)){var v=(n.f&ra)!==0||(n.f&Wt)!==0&&(e.f&Zt)!==0;ql(n,s,v?a:!1)}n=i}}}function Kr(e){zl(e,!0)}function zl(e,s){if(e.f&at){e.f^=at,e.f&Ie||(Te(e,Je),Hs.ensure().schedule(e));for(var a=e.first;a!==null;){var r=a.next,n=(a.f&ra)!==0||(a.f&Wt)!==0;zl(a,n?s:!1),a=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const v of i)(v.is_global||s)&&v.in()}}function qr(e,s){if(e.nodes)for(var a=e.nodes.start,r=e.nodes.end;a!==null;){var n=a===r?null:Ra(a);s.append(a),a=n}}let ms=null;function Fc(e){var s=ms;try{if(ms=new Set,p(e),s!==null)for(var a of ms)s.add(a);return ms}finally{ms=s}}function pa(e){for(var s of Fc(e))Bs(s,s.v)}let qa=!1,Ss=!1;function sl(e){Ss=e}let ee=null,Ht=!1;function Nt(e){ee=e}let Q=null;function Dt(e){Q=e}let Rt=null;function Pc(e){ee!==null&&(Rt===null?Rt=[e]:Rt.push(e))}let vt=null,bt=0,St=null;function jc(e){St=e}let Yl=1,Ls=0,js=Ls;function al(e){js=e}function Gl(){return++Yl}function oa(e){var s=e.f;if(s&Je)return!0;if(s&Ze&&(e.f&=~$s),s&Bt){for(var a=e.deps,r=a.length,n=0;n<r;n++){var i=a[n];if(oa(i)&&Nl(i),i.wv>e.wv)return!0}s&Ct&&Ge===null&&Te(e,Ie)}return!1}function Jl(e,s,a=!0){var r=e.reactions;if(r!==null&&!(Rt!==null&&sa.call(Rt,e)))for(var n=0;n<r.length;n++){var i=r[n];i.f&Ze?Jl(i,s,!1):s===i&&(a?Te(i,Je):i.f&Ie&&Te(i,Bt),jr(i))}}function Xl(e){var $;var s=vt,a=bt,r=St,n=ee,i=Rt,v=Fe,u=Ht,f=js,h=e.f;vt=null,bt=0,St=null,ee=h&(Wt|Es)?null:e,Rt=null,na(e.ctx),Ht=!1,js=++Ls,e.ac!==null&&(tr(()=>{e.ac.abort(ns)}),e.ac=null);try{e.f|=Ya;var m=e.fn,M=m();e.f|=Vs;var E=e.deps,k=N==null?void 0:N.is_fork;if(vt!==null){var x;if(k||xa(e,bt),E!==null&&bt>0)for(E.length=bt+vt.length,x=0;x<vt.length;x++)E[bt+x]=vt[x];else e.deps=E=vt;if(Wr()&&e.f&Ct)for(x=bt;x<E.length;x++)(($=E[x]).reactions??($.reactions=[])).push(e)}else!k&&E!==null&&bt<E.length&&(xa(e,bt),E.length=bt);if(Oa()&&St!==null&&!Ht&&E!==null&&!(e.f&(Ze|Bt|Je)))for(x=0;x<St.length;x++)Jl(St[x],e);if(n!==null&&n!==e){if(Ls++,n.deps!==null)for(let A=0;A<a;A+=1)n.deps[A].rv=Ls;if(s!==null)for(const A of s)A.rv=Ls;St!==null&&(r===null?r=St:r.push(...St))}return e.f&ks&&(e.f^=ks),M}catch(A){return Sl(A)}finally{e.f^=Ya,vt=s,bt=a,St=r,ee=n,Rt=i,na(v),Ht=u,js=f}}function $c(e,s){let a=s.reactions;if(a!==null){var r=Lo.call(a,e);if(r!==-1){var n=a.length-1;n===0?a=s.reactions=null:(a[r]=a[n],a.pop())}}if(a===null&&s.f&Ze&&(vt===null||!sa.call(vt,s))){var i=s;i.f&Ct&&(i.f^=Ct,i.f&=~$s),i.v!==Ke&&Fr(i),wc(i),xa(i,0)}}function xa(e,s){var a=e.deps;if(a!==null)for(var r=s;r<a.length;r++)$c(e,a[r])}function Us(e){var s=e.f;if(!(s&Ot)){Te(e,Ie);var a=Q,r=qa;Q=e,qa=!0;try{s&(Zt|hl)?Dc(e):Vr(e),Vl(e);var n=Xl(e);e.teardown=typeof n=="function"?n:null,e.wv=Yl;var i;Mo&&sc&&e.f&Je&&e.deps}finally{qa=r,Q=a}}}async function Hc(){await Promise.resolve(),oc()}function t(e){var s=e.f,a=(s&Ze)!==0;if(ms==null||ms.add(e),ee!==null&&!Ht){var r=Q!==null&&(Q.f&Ot)!==0;if(!r&&(Rt===null||!sa.call(Rt,e))){var n=ee.deps;if(ee.f&Ya)e.rv<Ls&&(e.rv=Ls,vt===null&&n!==null&&n[bt]===e?bt++:vt===null?vt=[e]:vt.push(e));else{(ee.deps??(ee.deps=[])).push(e);var i=e.reactions;i===null?e.reactions=[ee]:sa.call(i,ee)||i.push(ee)}}}if(Ss&&Fs.has(e))return Fs.get(e);if(a){var v=e;if(Ss){var u=v.v;return(!(v.f&Ie)&&v.reactions!==null||Zl(v))&&(u=Hr(v)),Fs.set(v,u),u}var f=(v.f&Ct)===0&&!Ht&&ee!==null&&(qa||(ee.f&Ct)!==0),h=(v.f&Vs)===0;oa(v)&&(f&&(v.f|=Ct),Nl(v)),f&&!h&&(Dl(v),Ql(v))}if(Ge!=null&&Ge.has(e))return Ge.get(e);if(e.f&ks)throw e.v;return e.v}function Ql(e){if(e.f|=Ct,e.deps!==null)for(const s of e.deps)(s.reactions??(s.reactions=[])).push(e),s.f&Ze&&!(s.f&Ct)&&(Dl(s),Ql(s))}function Zl(e){if(e.v===Ke)return!0;if(e.deps===null)return!1;for(const s of e.deps)if(Fs.has(s)||s.f&Ze&&Zl(s))return!0;return!1}function p(e){var s=Ht;try{return Ht=!0,e()}finally{Ht=s}}function za(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Is in e)Cr(e);else if(!Array.isArray(e))for(let s in e){const a=e[s];typeof a=="object"&&a&&Is in a&&Cr(a)}}}function Cr(e,s=new Set){if(typeof e=="object"&&e!==null&&!(e instanceof EventTarget)&&!s.has(e)){s.add(e),e instanceof Date&&e.getTime();for(let r in e)try{Cr(e[r],s)}catch{}const a=Ir(e);if(a!==Object.prototype&&a!==Array.prototype&&a!==Map.prototype&&a!==Set.prototype&&a!==Date.prototype){const r=ul(a);for(let n in r){const i=r[n].get;if(i)try{i.call(e)}catch{}}}}}const Wc=["touchstart","touchmove"];function Bc(e){return Wc.includes(e)}const ja=Symbol("events"),Uc=new Set,rl=new Set;function Vc(e,s,a,r={}){function n(i){if(r.capture||Or.call(s,i),!i.cancelBubble)return tr(()=>a==null?void 0:a.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?xs(()=>{s.addEventListener(e,n,r)}):s.addEventListener(e,n,r),n}function ae(e,s,a,r,n){var i={capture:r,passive:n},v=Vc(e,s,a,i);(s===document.body||s===window||s===document||s instanceof HTMLMediaElement)&&Br(()=>{s.removeEventListener(e,v,i)})}let nl=null;function Or(e){var A,F;var s=this,a=s.ownerDocument,r=e.type,n=((A=e.composedPath)==null?void 0:A.call(e))||[],i=n[0]||e.target;nl=e;var v=0,u=nl===e&&e[ja];if(u){var f=n.indexOf(u);if(f!==-1&&(s===document||s===window)){e[ja]=s;return}var h=n.indexOf(s);if(h===-1)return;f<=h&&(v=f)}if(i=n[v]||e.target,i!==s){Co(e,"currentTarget",{configurable:!0,get(){return i||a}});var m=ee,M=Q;Nt(null),Dt(null);try{for(var E,k=[];i!==null;){var x=i.assignedSlot||i.parentNode||i.host||null;try{var $=(F=i[ja])==null?void 0:F[r];$!=null&&(!i.disabled||e.target===i)&&$.call(i,e)}catch(oe){E?k.push(oe):E=oe}if(e.cancelBubble||x===s||x===null)break;i=x}if(E){for(let oe of k)queueMicrotask(()=>{throw oe});throw E}}finally{e[ja]=s,delete e.currentTarget,Nt(m),Dt(M)}}}var vl;const br=((vl=globalThis==null?void 0:globalThis.window)==null?void 0:vl.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Kc(e){return(br==null?void 0:br.createHTML(e))??e}function ei(e){var s=Ac("template");return s.innerHTML=Kc(e.replaceAll("<!>","<!---->")),s.content}function la(e,s){var a=Q;a.nodes===null&&(a.nodes={start:e,end:s,a:null,t:null})}function I(e,s){var a=(s&ml)!==0,r=(s&Xo)!==0,n,i=!e.startsWith("<!>");return()=>{n===void 0&&(n=ei(i?e:"<!>"+e),a||(n=ds(n)));var v=r||Pl?document.importNode(n,!0):n.cloneNode(!0);if(a){var u=ds(v),f=v.lastChild;la(u,f)}else la(v,v);return v}}function qc(e,s,a="svg"){var r=!e.startsWith("<!>"),n=(s&ml)!==0,i=`<${a}>${r?e:"<!>"+e}</${a}>`,v;return()=>{if(!v){var u=ei(i),f=ds(u);if(n)for(v=document.createDocumentFragment();ds(f);)v.appendChild(ds(f));else v=ds(f)}var h=v.cloneNode(!0);if(n){var m=ds(h),M=h.lastChild;la(m,M)}else la(h,h);return h}}function Ks(e,s){return qc(e,s,"svg")}function zt(e=""){{var s=vs(e+"");return la(s,s),s}}function Ys(){var e=document.createDocumentFragment(),s=document.createComment(""),a=vs();return e.append(s,a),la(s,a),e}function T(e,s){e!==null&&e.before(s)}function S(e,s){var a=s==null?"":typeof s=="object"?`${s}`:s;a!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=a,e.nodeValue=`${a}`)}function zc(e,s){return Yc(e,s)}const $a=new Map;function Yc(e,{target:s,anchor:a,props:r={},events:n,context:i,intro:v=!0,transformError:u}){Ec();var f=void 0,h=Cc(()=>{var m=a??s.appendChild(vs());fc(m,{pending:()=>{}},k=>{kl({});var x=Fe;i&&(x.c=i),n&&(r.$$events=n),f=e(k,r)||{},xl()},u);var M=new Set,E=k=>{for(var x=0;x<k.length;x++){var $=k[x];if(!M.has($)){M.add($);var A=Bc($);for(const de of[s,document]){var F=$a.get(de);F===void 0&&(F=new Map,$a.set(de,F));var oe=F.get($);oe===void 0?(de.addEventListener($,Or,{passive:A}),F.set($,1)):F.set($,oe+1)}}}};return E(Za(Uc)),rl.add(E),()=>{var A;for(var k of M)for(const F of[s,document]){var x=$a.get(F),$=x.get(k);--$==0?(F.removeEventListener(k,Or),x.delete(k),x.size===0&&$a.delete(F)):x.set(k,$)}rl.delete(E),m!==a&&((A=m.parentNode)==null||A.removeChild(m))}});return Gc.set(f,h),f}let Gc=new WeakMap;var $t,Xt,yt,Ds,Ma,La,Qa;class Jc{constructor(s,a=!0){Pt(this,"anchor");z(this,$t,new Map);z(this,Xt,new Map);z(this,yt,new Map);z(this,Ds,new Set);z(this,Ma,!0);z(this,La,s=>{if(d(this,$t).has(s)){var a=d(this,$t).get(s),r=d(this,Xt).get(a);if(r)Kr(r),d(this,Ds).delete(a);else{var n=d(this,yt).get(a);n&&(d(this,Xt).set(a,n.effect),d(this,yt).delete(a),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),r=n.effect)}for(const[i,v]of d(this,$t)){if(d(this,$t).delete(i),i===s)break;const u=d(this,yt).get(v);u&&(ft(u.effect),d(this,yt).delete(v))}for(const[i,v]of d(this,Xt)){if(i===a||d(this,Ds).has(i))continue;const u=()=>{if(Array.from(d(this,$t).values()).includes(i)){var h=document.createDocumentFragment();qr(v,h),h.append(vs()),d(this,yt).set(i,{effect:v,fragment:h})}else ft(v);d(this,Ds).delete(i),d(this,Xt).delete(i)};d(this,Ma)||!r?(d(this,Ds).add(i),Ps(v,u,!1)):u()}}});z(this,Qa,s=>{d(this,$t).delete(s);const a=Array.from(d(this,$t).values());for(const[r,n]of d(this,yt))a.includes(r)||(ft(n.effect),d(this,yt).delete(r))});this.anchor=s,X(this,Ma,a)}ensure(s,a){var r=N,n=Hl();if(a&&!d(this,Xt).has(s)&&!d(this,yt).has(s))if(n){var i=document.createDocumentFragment(),v=vs();i.append(v),d(this,yt).set(s,{effect:Lt(()=>a(v)),fragment:i})}else d(this,Xt).set(s,Lt(()=>a(this.anchor)));if(d(this,$t).set(r,s),n){for(const[u,f]of d(this,Xt))u===s?r.unskip_effect(f):r.skip_effect(f);for(const[u,f]of d(this,yt))u===s?r.unskip_effect(f.effect):r.skip_effect(f.effect);r.oncommit(d(this,La)),r.ondiscard(d(this,Qa))}else d(this,La).call(this,r)}}$t=new WeakMap,Xt=new WeakMap,yt=new WeakMap,Ds=new WeakMap,Ma=new WeakMap,La=new WeakMap,Qa=new WeakMap;function J(e,s,a=!1){var r=new Jc(e),n=a?ra:0;function i(v,u){r.ensure(v,u)}Ur(()=>{var v=!1;s((u,f=0)=>{v=!0,i(f,u)}),v||i(-1,null)},n)}function Yt(e,s){return s}function Xc(e,s,a){for(var r=[],n=s.length,i,v=s.length,u=0;u<n;u++){let M=s[u];Ps(M,()=>{if(i){if(i.pending.delete(M),i.done.add(M),i.pending.size===0){var E=e.outrogroups;Rr(e,Za(i.done)),E.delete(i),E.size===0&&(e.outrogroups=null)}}else v-=1},!1)}if(v===0){var f=r.length===0&&a!==null;if(f){var h=a,m=h.parentNode;Sc(m),m.append(h),e.items.clear()}Rr(e,s,!f)}else i={pending:new Set(s),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(i)}function Rr(e,s,a=!0){var r;if(e.pending.size>0){r=new Set;for(const v of e.pending.values())for(const u of v)r.add(e.items.get(u).e)}for(var n=0;n<s.length;n++){var i=s[n];if(r!=null&&r.has(i)){i.f|=Qt;const v=document.createDocumentFragment();qr(i,v)}else ft(s[n],a)}}var ll;function ct(e,s,a,r,n,i=null){var v=e,u=new Map,f=(s&bl)!==0;if(f){var h=e;v=h.appendChild(vs())}var m=null,M=Js(()=>{var de=a();return Dr(de)?de:de==null?[]:Za(de)}),E,k=new Map,x=!0;function $(de){oe.effect.f&Ot||(oe.pending.delete(de),oe.fallback=m,Qc(oe,E,v,s,r),m!==null&&(E.length===0?m.f&Qt?(m.f^=Qt,ba(m,null,v)):Kr(m):Ps(m,()=>{m=null})))}function A(de){oe.pending.delete(de)}var F=Ur(()=>{E=t(M);for(var de=E.length,Se=new Set,rt=N,_=Hl(),Ae=0;Ae<de;Ae+=1){var wt=E[Ae],kt=r(wt,Ae),qe=x?null:u.get(kt);qe?(qe.v&&Bs(qe.v,wt),qe.i&&Bs(qe.i,Ae),_&&rt.unskip_effect(qe.e)):(qe=Zc(u,x?v:ll??(ll=vs()),wt,kt,Ae,n,s,a),x||(qe.e.f|=Qt),u.set(kt,qe)),Se.add(kt)}if(de===0&&i&&!m&&(x?m=Lt(()=>i(v)):(m=Lt(()=>i(ll??(ll=vs()))),m.f|=Qt)),de>Se.size&&jo(),!x)if(k.set(rt,Se),_){for(const[Ut,nt]of u)Se.has(Ut)||rt.skip_effect(nt.e);rt.oncommit($),rt.ondiscard(A)}else $(rt);t(M)}),oe={effect:F,items:u,pending:k,outrogroups:null,fallback:m};x=!1}function ha(e){for(;e!==null&&!(e.f&Wt);)e=e.next;return e}function Qc(e,s,a,r,n){var qe,Ut,nt,xe,je,$e,ts,ca,ss;var i=(r&Go)!==0,v=s.length,u=e.items,f=ha(e.effect.first),h,m=null,M,E=[],k=[],x,$,A,F;if(i)for(F=0;F<v;F+=1)x=s[F],$=n(x,F),A=u.get($).e,A.f&Qt||((Ut=(qe=A.nodes)==null?void 0:qe.a)==null||Ut.measure(),(M??(M=new Set)).add(A));for(F=0;F<v;F+=1){if(x=s[F],$=n(x,F),A=u.get($).e,e.outrogroups!==null)for(const re of e.outrogroups)re.pending.delete(A),re.done.delete(A);if(A.f&at&&(Kr(A),i&&((xe=(nt=A.nodes)==null?void 0:nt.a)==null||xe.unfix(),(M??(M=new Set)).delete(A))),A.f&Qt)if(A.f^=Qt,A===f)ba(A,null,a);else{var oe=m?m.next:f;A===e.effect.last&&(e.effect.last=A.prev),A.prev&&(A.prev.next=A.next),A.next&&(A.next.prev=A.prev),_s(e,m,A),_s(e,A,oe),ba(A,oe,a),m=A,E=[],k=[],f=ha(m.next);continue}if(A!==f){if(h!==void 0&&h.has(A)){if(E.length<k.length){var de=k[0],Se;m=de.prev;var rt=E[0],_=E[E.length-1];for(Se=0;Se<E.length;Se+=1)ba(E[Se],de,a);for(Se=0;Se<k.length;Se+=1)h.delete(k[Se]);_s(e,rt.prev,_.next),_s(e,m,rt),_s(e,_,de),f=de,m=_,F-=1,E=[],k=[]}else h.delete(A),ba(A,f,a),_s(e,A.prev,A.next),_s(e,A,m===null?e.effect.first:m.next),_s(e,m,A),m=A;continue}for(E=[],k=[];f!==null&&f!==A;)(h??(h=new Set)).add(f),k.push(f),f=ha(f.next);if(f===null)continue}A.f&Qt||E.push(A),m=A,f=ha(A.next)}if(e.outrogroups!==null){for(const re of e.outrogroups)re.pending.size===0&&(Rr(e,Za(re.done)),(je=e.outrogroups)==null||je.delete(re));e.outrogroups.size===0&&(e.outrogroups=null)}if(f!==null||h!==void 0){var Ae=[];if(h!==void 0)for(A of h)A.f&at||Ae.push(A);for(;f!==null;)!(f.f&at)&&f!==e.fallback&&Ae.push(f),f=ha(f.next);var wt=Ae.length;if(wt>0){var kt=r&bl&&v===0?a:null;if(i){for(F=0;F<wt;F+=1)(ts=($e=Ae[F].nodes)==null?void 0:$e.a)==null||ts.measure();for(F=0;F<wt;F+=1)(ss=(ca=Ae[F].nodes)==null?void 0:ca.a)==null||ss.fix()}Xc(e,Ae,kt)}}i&&xs(()=>{var re,As;if(M!==void 0)for(A of M)(As=(re=A.nodes)==null?void 0:re.a)==null||As.apply()})}function Zc(e,s,a,r,n,i,v,u){var f=v&zo?v&Jo?Ws(a):B(a,!1,!1):null,h=v&Yo?Ws(n):null;return{v:f,i:h,e:Lt(()=>(i(s,f??a,h??n,u),()=>{e.delete(r)}))}}function ba(e,s,a){if(e.nodes)for(var r=e.nodes.start,n=e.nodes.end,i=s&&!(s.f&Qt)?s.nodes.start:a;r!==null;){var v=Ra(r);if(i.before(r),r===n)return;r=v}}function _s(e,s,a){s===null?e.effect.first=a:s.next=a,a===null?e.effect.last=s:a.prev=s}const il=[...`
|
|
2
|
+
\r\f \v\uFEFF`];function ed(e,s,a){var r=e==null?"":""+e;if(s&&(r=r?r+" "+s:s),a){for(var n of Object.keys(a))if(a[n])r=r?r+" "+n:n;else if(r.length)for(var i=n.length,v=0;(v=r.indexOf(n,v))>=0;){var u=v+i;(v===0||il.includes(r[v-1]))&&(u===r.length||il.includes(r[u]))?r=(v===0?"":r.substring(0,v))+r.substring(u+1):v=u}}return r===""?null:r}function td(e,s){return e==null?null:String(e)}function ke(e,s,a,r,n,i){var v=e.__className;if(v!==a||v===void 0){var u=ed(a,r,i);u==null?e.removeAttribute("class"):s?e.className=u:e.setAttribute("class",u),e.__className=a}else if(i&&n!==i)for(var f in i){var h=!!i[f];(n==null||h!==!!n[f])&&e.classList.toggle(f,h)}return i}function sd(e,s,a,r){var n=e.__style;if(n!==s){var i=td(s);i==null?e.removeAttribute("style"):e.style.cssText=i,e.__style=s}return r}function ti(e,s,a=!1){if(e.multiple){if(s==null)return;if(!Dr(s))return Zo();for(var r of e.options)r.selected=s.includes(wa(r));return}for(r of e.options){var n=wa(r);if(xc(n,s)){r.selected=!0;return}}(!a||s!==void 0)&&(e.selectedIndex=-1)}function ad(e){var s=new MutationObserver(()=>{ti(e,e.__value)});s.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Br(()=>{s.disconnect()})}function bs(e,s,a=s){var r=new WeakSet,n=!0;Wl(e,"change",i=>{var v=i?"[selected]":":checked",u;if(e.multiple)u=[].map.call(e.querySelectorAll(v),wa);else{var f=e.querySelector(v)??e.querySelector("option:not([disabled])");u=f&&wa(f)}a(u),e.__value=u,N!==null&&r.add(N)}),Oc(()=>{var i=s();if(e===document.activeElement){var v=N;if(r.has(v))return}if(ti(e,i,n),n&&i===void 0){var u=e.querySelector(":checked");u!==null&&(i=wa(u),a(i))}e.__value=i,n=!1}),ad(e)}function wa(e){return"__value"in e?e.__value:e.value}const rd=Symbol("is custom element"),nd=Symbol("is html");function pe(e,s,a,r){var n=ld(e);n[s]!==(n[s]=a)&&(s==="loading"&&(e[Fo]=a),a==null?e.removeAttribute(s):typeof a!="string"&&id(e).includes(s)?e[s]=a:e.setAttribute(s,a))}function ld(e){return e.__attributes??(e.__attributes={[rd]:e.nodeName.includes("-"),[nd]:e.namespaceURI===gl})}var ol=new Map;function id(e){var s=e.getAttribute("is")||e.nodeName,a=ol.get(s);if(a)return a;ol.set(s,a=[]);for(var r,n=e,i=Element.prototype;i!==n;){r=ul(n);for(var v in r)r[v].set&&a.push(v);n=Ir(n)}return a}function _t(e,s,a=s){var r=new WeakSet;Wl(e,"input",async n=>{var i=n?e.defaultValue:e.value;if(i=mr(e)?gr(i):i,a(i),N!==null&&r.add(N),await Hc(),i!==(i=s())){var v=e.selectionStart,u=e.selectionEnd,f=e.value.length;if(e.value=i??"",u!==null){var h=e.value.length;v===u&&u===f&&h>f?(e.selectionStart=h,e.selectionEnd=h):(e.selectionStart=v,e.selectionEnd=Math.min(u,h))}}}),p(s)==null&&e.value&&(a(mr(e)?gr(e.value):e.value),N!==null&&r.add(N)),sr(()=>{var n=s();if(e===document.activeElement){var i=N;if(r.has(i))return}mr(e)&&n===gr(e.value)||e.type==="date"&&!n&&!e.value||n!==e.value&&(e.value=n??"")})}function mr(e){var s=e.type;return s==="number"||s==="range"}function gr(e){return e===""?null:+e}function cl(e){return function(...s){var a=s[0];a.target===this&&(e==null||e.apply(this,s))}}function od(e){return function(...s){var a=s[0];return a.stopPropagation(),e==null?void 0:e.apply(this,s)}}function yr(e){return function(...s){var a=s[0];return a.preventDefault(),e==null?void 0:e.apply(this,s)}}function cd(e=!1){const s=Fe,a=s.l.u;if(!a)return;let r=()=>za(s.s);if(e){let n=0,i={};const v=$r(()=>{let u=!1;const f=s.s;for(const h in f)f[h]!==i[h]&&(i[h]=f[h],u=!0);return u&&n++,n});r=()=>t(v)}a.b.length&&Lc(()=>{dl(s,r),wr(a.b)}),tl(()=>{const n=p(()=>a.m.map(Do));return()=>{for(const i of n)typeof i=="function"&&i()}}),a.a.length&&tl(()=>{dl(s,r),wr(a.a)})}function dl(e,s){if(e.l.s)for(const a of e.l.s)t(a);s()}const dd="5";var fl;typeof window<"u"&&((fl=window.__svelte??(window.__svelte={})).v??(fl.v=new Set)).add(dd);ac();var vd=I('<span class="tab-badge svelte-d3ct2b"> </span>'),fd=I('<span class="tab-badge svelte-d3ct2b"> </span>'),ud=Ks('<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><circle cx="12" cy="12" r="5" class="svelte-d3ct2b"></circle><line x1="12" y1="1" x2="12" y2="3" class="svelte-d3ct2b"></line><line x1="12" y1="21" x2="12" y2="23" class="svelte-d3ct2b"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" class="svelte-d3ct2b"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" class="svelte-d3ct2b"></line><line x1="1" y1="12" x2="3" y2="12" class="svelte-d3ct2b"></line><line x1="21" y1="12" x2="23" y2="12" class="svelte-d3ct2b"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" class="svelte-d3ct2b"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" class="svelte-d3ct2b"></line></svg>'),pd=Ks('<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" class="svelte-d3ct2b"></path></svg>'),hd=I('<div class="health-badge health-warn svelte-d3ct2b"><i class="dot dot-warn svelte-d3ct2b"></i> <span class="svelte-d3ct2b"> </span></div>'),_d=I('<div><i></i> <span class="svelte-d3ct2b"> </span></div>'),bd=I('<span class="health-error svelte-d3ct2b"> </span>'),md=I('<span class="health-error svelte-d3ct2b"> </span>'),gd=Ks('<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" class="svelte-d3ct2b"><polygon points="5 3 19 12 5 21 5 3" class="svelte-d3ct2b"></polygon></svg>'),yd=Ks('<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" class="svelte-d3ct2b"><rect x="6" y="4" width="4" height="16" class="svelte-d3ct2b"></rect><rect x="14" y="4" width="4" height="16" class="svelte-d3ct2b"></rect></svg>'),wd=I('<div class="log-row log-row-warn svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-warn svelte-d3ct2b">ARCH</span> <span class="log-msg svelte-d3ct2b">Custom architecture — no profile rules loaded. Add rules: memory-core remember "..." --type rule</span></div> <div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-sys svelte-d3ct2b">SYS</span> <span class="log-msg svelte-d3ct2b">Or load a profile when ready: memory-core seed --arch clean-architecture</span></div>',1),kd=I('<div class="log-row log-row-warn svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-warn svelte-d3ct2b">WARN</span> <span class="log-msg svelte-d3ct2b">No architecture rules configured in .memory-core.json — nothing to watch.</span></div> <div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-sys svelte-d3ct2b">SYS</span> <span class="log-msg svelte-d3ct2b">Awaiting manual rule configuration...</span></div>',1),xd=I('<div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-sys svelte-d3ct2b">SYS</span> <span class="log-msg svelte-d3ct2b">Initialization sequence started for memory-core...</span></div> <div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-ok svelte-d3ct2b">DB</span> <span class="log-msg svelte-d3ct2b">Waiting for PostgreSQL connection...</span></div> <!> <div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b"></span> <span class="log-label svelte-d3ct2b"></span> <span class="log-msg cursor-blink svelte-d3ct2b">_</span></div>',1),Ed=I('· <em class="svelte-d3ct2b"> </em>',1),Sd=I('<br class="svelte-d3ct2b"/><span class="detail-fix svelte-d3ct2b"> </span>',1),Ad=I('<div class="log-detail svelte-d3ct2b"><span class="detail-index svelte-d3ct2b"> </span> <span class="detail-body svelte-d3ct2b"><strong class="svelte-d3ct2b"> </strong> <!> <!> <!></span></div>'),Td=I('<div><span class="log-time svelte-d3ct2b"> </span> <span> </span> <span class="log-msg svelte-d3ct2b"><!></span> <button class="copy-btn svelte-d3ct2b" title="Copy">⎘</button></div> <!>',1),Md=I('<div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-ok svelte-d3ct2b">[OK]</span> <span class="log-msg svelte-d3ct2b">No commit hook violations in the last 24 hours.</span></div> <div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b"></span> <span class="log-label svelte-d3ct2b"></span> <span class="log-msg cursor-blink svelte-d3ct2b">_</span></div>',1),Ld=I('<br class="svelte-d3ct2b"/><span class="detail-fix svelte-d3ct2b"> </span>',1),Cd=I('<div class="log-detail svelte-d3ct2b"><span class="detail-index svelte-d3ct2b"></span> <span class="detail-body svelte-d3ct2b"><!> <!></span></div>'),Od=I('<div class="log-row log-row-fail svelte-d3ct2b"><span class="log-time svelte-d3ct2b"> </span> <span class="log-label label-hook svelte-d3ct2b"> </span> <span class="log-msg svelte-d3ct2b"><strong class="svelte-d3ct2b"> </strong> <!></span></div> <!>',1),Rd=I('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Commit Hook</span> <span class="section-meta svelte-d3ct2b"> </span></div> <!>',1),Nd=I('<span class="rule-reason svelte-d3ct2b"> </span>'),Dd=I('<div class="rule-row svelte-d3ct2b"><span class="rule-badge svelte-d3ct2b"> </span> <span class="rule-scope svelte-d3ct2b"> </span> <span class="rule-content svelte-d3ct2b"> </span> <!> <button class="del-btn svelte-d3ct2b">✕</button></div>'),Id=I('Custom architecture — no profile rules loaded. Add rules from the terminal: <code class="svelte-d3ct2b">memory-core remember "..." --type rule</code>',1),Fd=I('<div class="log-row svelte-d3ct2b"><span class="log-msg svelte-d3ct2b" style="color: var(--outline)"><!></span></div>'),Pd=I('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Rule Engine</span> <span class="section-meta svelte-d3ct2b"> </span></div> <div class="rules-toolbar svelte-d3ct2b"><select class="rules-select svelte-d3ct2b"><option class="svelte-d3ct2b">All types</option><option class="svelte-d3ct2b">Rules</option><option class="svelte-d3ct2b">Decisions</option><option class="svelte-d3ct2b">Patterns</option><option class="svelte-d3ct2b">Ignores</option></select> <input class="rules-search svelte-d3ct2b" placeholder="Search rules..."/></div> <div class="rule-form-wrap svelte-d3ct2b"><form class="rule-form svelte-d3ct2b"><div class="rule-form-row svelte-d3ct2b"><select class="rules-select svelte-d3ct2b"><option class="svelte-d3ct2b">Rule</option><option class="svelte-d3ct2b">Decision</option><option class="svelte-d3ct2b">Pattern</option><option class="svelte-d3ct2b">Ignore</option></select> <select class="rules-select svelte-d3ct2b"><option class="svelte-d3ct2b">Project</option><option class="svelte-d3ct2b">Global</option></select> <input class="rules-input svelte-d3ct2b" placeholder="Reason"/> <input class="rules-input svelte-d3ct2b" placeholder="Tags"/></div> <div class="rule-form-row svelte-d3ct2b"><textarea rows="2" class="rules-textarea svelte-d3ct2b" placeholder="Rule or decision content..."></textarea> <button class="add-btn svelte-d3ct2b"> </button></div></form></div> <div class="rule-list svelte-d3ct2b"></div>',1),jd=I('<div class="log-row svelte-d3ct2b"><span class="log-label label-warn svelte-d3ct2b">[WARN]</span> <span class="log-msg svelte-d3ct2b">No .archmind/layers.json found. Run <code class="svelte-d3ct2b">memory-core init</code> or create the file manually.</span></div>'),$d=Ks('<line stroke-width="1.5" opacity="0.75" class="svelte-d3ct2b"></line>'),Hd=Ks('<circle r="8" fill="#ba1a1a" style="cursor:pointer" role="button" tabindex="0" class="svelte-d3ct2b"></circle><text text-anchor="middle" fill="#fff" font-size="10" font-weight="700" style="cursor:pointer;pointer-events:none" class="svelte-d3ct2b">✕</text>',1),Wd=Ks('<g role="button" tabindex="0"><rect rx="6"></rect><text text-anchor="middle" class="arch-node-label svelte-d3ct2b"> </text><text text-anchor="middle" class="arch-node-desc svelte-d3ct2b"> </text><!></g>'),Bd=I('<div class="arch-node-panel-path svelte-d3ct2b"> </div>'),Ud=I('<div class="arch-node-panel-paths svelte-d3ct2b"><div class="arch-node-panel-section svelte-d3ct2b">Glob patterns</div> <!></div>'),Vd=I('<div class="arch-node-panel-rule svelte-d3ct2b"><span> </span> <span style="font-size:12px" class="svelte-d3ct2b"> </span></div>'),Kd=I('<div class="arch-node-panel-paths svelte-d3ct2b"><div class="arch-node-panel-section svelte-d3ct2b">Rules involving this layer</div> <!></div>'),qd=I('<div class="arch-node-panel svelte-d3ct2b"><div class="arch-node-panel-header svelte-d3ct2b"><span class="arch-node-panel-name svelte-d3ct2b"> </span> <span class="arch-node-panel-meta svelte-d3ct2b"> </span> <button class="arch-node-panel-close svelte-d3ct2b" aria-label="Close">✕</button></div> <!> <!></div>'),zd=I('<button class="arch-rule-del svelte-d3ct2b" title="Delete rule">✕</button>'),Yd=I('<div class="arch-rule-row svelte-d3ct2b"><span> </span> <span class="arch-rule-layers svelte-d3ct2b"> </span> <span class="arch-rule-name svelte-d3ct2b"> </span> <!></div>'),Gd=I('<form class="arch-add-form svelte-d3ct2b"><div class="arch-add-form-title svelte-d3ct2b">Add Layer</div> <div class="arch-add-row svelte-d3ct2b"><div class="arch-add-field svelte-d3ct2b"><span class="arch-add-label svelte-d3ct2b">Name</span> <input class="arch-add-input svelte-d3ct2b" placeholder="e.g. services" style="width:120px"/></div> <div class="arch-add-field svelte-d3ct2b"><span class="arch-add-label svelte-d3ct2b">Paths (comma-separated globs)</span> <input class="arch-add-input svelte-d3ct2b" placeholder="src/services/**" style="width:240px"/></div> <div class="arch-add-field svelte-d3ct2b"><span class="arch-add-label svelte-d3ct2b">Description</span> <input class="arch-add-input svelte-d3ct2b" placeholder="Service layer" style="width:160px"/></div> <button class="arch-add-submit svelte-d3ct2b" type="submit"> </button> <button class="arch-edit-btn svelte-d3ct2b" type="button">Cancel</button></div></form>'),Jd=I('<button class="arch-edit-btn svelte-d3ct2b">+ Add Layer</button>'),Xd=I('<option class="svelte-d3ct2b"> </option>'),Qd=I('<option class="svelte-d3ct2b"> </option>'),Zd=I('<form class="arch-add-form svelte-d3ct2b"><div class="arch-add-form-title svelte-d3ct2b">Add Rule</div> <div class="arch-add-row svelte-d3ct2b"><div class="arch-add-field svelte-d3ct2b"><span class="arch-add-label svelte-d3ct2b">From</span> <select class="arch-add-select svelte-d3ct2b"><option class="svelte-d3ct2b">select…</option><!><option class="svelte-d3ct2b">* (any)</option></select></div> <div class="arch-add-field svelte-d3ct2b"><span class="arch-add-label svelte-d3ct2b">To</span> <select class="arch-add-select svelte-d3ct2b"><option class="svelte-d3ct2b">select…</option><!><option class="svelte-d3ct2b">* (any)</option></select></div> <div class="arch-add-field svelte-d3ct2b"><span class="arch-add-label svelte-d3ct2b">Name</span> <input class="arch-add-input svelte-d3ct2b" placeholder="No direct DB access" style="width:180px"/></div> <div class="arch-add-field svelte-d3ct2b"><span class="arch-add-label svelte-d3ct2b">Enforcement</span> <select class="arch-add-select svelte-d3ct2b"><option class="svelte-d3ct2b">block</option><option class="svelte-d3ct2b">warn</option></select></div> <div class="arch-add-field svelte-d3ct2b"><span class="arch-add-label svelte-d3ct2b">Allowed?</span> <select class="arch-add-select svelte-d3ct2b"><option class="svelte-d3ct2b">Deny</option><option class="svelte-d3ct2b">Allow</option></select></div> <button class="arch-add-submit svelte-d3ct2b" type="submit"> </button> <button class="arch-edit-btn svelte-d3ct2b" type="button">Cancel</button></div></form>'),ev=I('<button class="arch-edit-btn svelte-d3ct2b">+ Add Rule</button>'),tv=I("<!> <!>",1),sv=I('<div class="arch-graph-wrap svelte-d3ct2b"><svg class="arch-svg svelte-d3ct2b"><defs class="svelte-d3ct2b"><marker id="arrow-block" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto" class="svelte-d3ct2b"><path d="M0,0 L0,6 L8,3 z" fill="var(--error)" class="svelte-d3ct2b"></path></marker><marker id="arrow-warn" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto" class="svelte-d3ct2b"><path d="M0,0 L0,6 L8,3 z" fill="#f59e0b" class="svelte-d3ct2b"></path></marker><marker id="arrow-allow" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto" class="svelte-d3ct2b"><path d="M0,0 L0,6 L8,3 z" fill="var(--green)" class="svelte-d3ct2b"></path></marker></defs><!><!></svg> <div class="arch-legend svelte-d3ct2b"><div class="legend-item svelte-d3ct2b"><svg width="24" height="8" class="svelte-d3ct2b"><line x1="0" y1="4" x2="20" y2="4" stroke="var(--error)" stroke-width="1.5" marker-end="url(#arrow-block)" class="svelte-d3ct2b"></line></svg> Block</div> <div class="legend-item svelte-d3ct2b"><svg width="24" height="8" class="svelte-d3ct2b"><line x1="0" y1="4" x2="20" y2="4" stroke="#f59e0b" stroke-width="1.5" stroke-dasharray="4,3" class="svelte-d3ct2b"></line></svg> Warn</div> <div class="legend-item svelte-d3ct2b"><svg width="24" height="8" class="svelte-d3ct2b"><line x1="0" y1="4" x2="20" y2="4" stroke="var(--green)" stroke-width="1.5" stroke-dasharray="6,3" class="svelte-d3ct2b"></line></svg> Allow</div></div> <!> <div class="arch-rule-list svelte-d3ct2b"></div> <!></div>'),av=I('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Layer Graph</span> <span class="section-meta svelte-d3ct2b"> </span> <button> </button></div> <!>',1),rv=I('<div class="log-row svelte-d3ct2b"><span class="log-label label-ok svelte-d3ct2b">[OK]</span> <span class="log-msg svelte-d3ct2b">No violations recorded yet. Violations from watch mode are logged here.</span></div>'),nv=I('<span class="history-issue svelte-d3ct2b"> </span>'),lv=I('<div class="history-violation svelte-d3ct2b"><span class="history-badge svelte-d3ct2b">VIOLATION</span> <span class="history-rule svelte-d3ct2b"> </span> <!></div>'),iv=I('<div class="history-entry svelte-d3ct2b"><div class="history-header svelte-d3ct2b"><span class="history-file svelte-d3ct2b"> </span> <span class="history-time svelte-d3ct2b"> </span></div> <!></div>'),ov=I('<div class="history-list svelte-d3ct2b"></div>'),cv=I('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Violation History</span> <span class="section-meta svelte-d3ct2b"> </span></div> <!>',1),dv=I('<div class="modal-row svelte-d3ct2b"><label class="modal-label svelte-d3ct2b" for="model-apikey">API Key</label> <input id="model-apikey" class="modal-input svelte-d3ct2b" type="password"/></div>'),vv=I("<div> </div>"),fv=I('<div class="modal-backdrop svelte-d3ct2b" role="presentation"><div class="modal svelte-d3ct2b"><div class="modal-header svelte-d3ct2b"><span class="modal-title svelte-d3ct2b">Settings</span> <button class="modal-close svelte-d3ct2b">✕</button></div> <section class="modal-section svelte-d3ct2b"><div class="modal-section-title svelte-d3ct2b">AI Model</div> <div class="modal-row svelte-d3ct2b"><label class="modal-label svelte-d3ct2b" for="model-provider">Provider</label> <select id="model-provider" class="modal-input svelte-d3ct2b"><option class="svelte-d3ct2b">Ollama (local)</option><option class="svelte-d3ct2b">OpenAI</option><option class="svelte-d3ct2b">Anthropic</option><option class="svelte-d3ct2b">MiniMax</option><option class="svelte-d3ct2b">OpenAI-compatible</option></select></div> <div class="modal-row svelte-d3ct2b"><label class="modal-label svelte-d3ct2b" for="model-name">Model</label> <input id="model-name" class="modal-input svelte-d3ct2b" placeholder="e.g. llama3.2, gpt-4o, claude-sonnet-4-6"/></div> <!> <div class="modal-row svelte-d3ct2b"><div class="svelte-d3ct2b"></div> <div class="modal-row-actions svelte-d3ct2b"><button class="modal-btn modal-btn-primary svelte-d3ct2b"> </button> <button class="modal-btn svelte-d3ct2b">Refresh Config</button></div></div> <!></section> <section class="modal-section svelte-d3ct2b"><div class="modal-section-title svelte-d3ct2b">Timeouts</div> <div class="modal-row svelte-d3ct2b"><label class="modal-label svelte-d3ct2b" for="chat-timeout">CHAT_TIMEOUT_MS</label> <input id="chat-timeout" class="modal-input svelte-d3ct2b" placeholder="60000" type="text" inputmode="numeric"/></div> <div class="modal-row svelte-d3ct2b"><label class="modal-label svelte-d3ct2b" for="check-timeout">CHECK_TIMEOUT_MS</label> <input id="check-timeout" class="modal-input svelte-d3ct2b" placeholder="20000" type="text" inputmode="numeric"/></div></section> <section class="modal-section svelte-d3ct2b"><div class="modal-section-title svelte-d3ct2b">Current Status</div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Provider</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Model</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">API Key</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Embedding</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Chat timeout</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Check timeout</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">AI calls this session</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Total tokens</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Input / Output</span><span class="modal-status-val svelte-d3ct2b"> </span></div></section></div></div>'),uv=I('<div class="shell svelte-d3ct2b"><header class="topbar svelte-d3ct2b"><div class="topbar-brand svelte-d3ct2b"><span class="brand-name svelte-d3ct2b">memory-core</span> <nav class="topbar-nav svelte-d3ct2b"><button>Live Feed</button> <button>Commit Hook <!></button> <button>Rules</button> <button>Arch Graph</button> <button>History <!></button></nav></div> <div class="topbar-search svelte-d3ct2b"><span class="search-icon svelte-d3ct2b">⌕</span> <input class="search-input svelte-d3ct2b" placeholder="Search system logs, traces, and metrics..." type="text"/></div> <div class="topbar-actions svelte-d3ct2b"><button class="icon-btn svelte-d3ct2b" title="Settings"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><circle cx="12" cy="12" r="3" class="svelte-d3ct2b"></circle><path d="M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14" class="svelte-d3ct2b"></path><path d="M12 2v2M12 20v2M2 12h2M20 12h2" class="svelte-d3ct2b"></path></svg></button> <button class="icon-btn svelte-d3ct2b"><!></button> <div class="avatar svelte-d3ct2b" title="System Administrator">S</div></div></header> <div class="body svelte-d3ct2b"><aside class="sidebar svelte-d3ct2b"><div class="sidebar-logo svelte-d3ct2b"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="svelte-d3ct2b"><circle cx="12" cy="12" r="3" class="svelte-d3ct2b"></circle><path d="M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83" class="svelte-d3ct2b"></path></svg></div> <nav class="sidebar-nav svelte-d3ct2b"><button class="side-btn side-btn-active svelte-d3ct2b" title="Live Feed"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-d3ct2b"></rect><path d="m7 21 5-5 5 5" class="svelte-d3ct2b"></path><path d="m7 8 3 3-3 3" class="svelte-d3ct2b"></path><path d="M13 14h4" class="svelte-d3ct2b"></path></svg></button></nav> <div></div></aside> <main class="content svelte-d3ct2b"><div class="health-bar svelte-d3ct2b"><span class="health-label svelte-d3ct2b">System Health:</span> <div class="health-badge health-green svelte-d3ct2b"><i class="dot dot-green svelte-d3ct2b"></i> <span class="svelte-d3ct2b"> </span></div> <div><i></i> <span class="svelte-d3ct2b"> </span></div> <div><i></i> <span class="svelte-d3ct2b"> </span></div> <!> <!> <!> <!></div> <div class="filter-bar svelte-d3ct2b"><div class="filter-left svelte-d3ct2b"><div class="chip chip-primary svelte-d3ct2b"><span class="svelte-d3ct2b">LEVEL: ALL</span> <button class="chip-close svelte-d3ct2b" title="Clear cache">✕</button></div> <div class="divider-v svelte-d3ct2b"></div> <div class="metrics-strip svelte-d3ct2b"><div class="metric-item svelte-d3ct2b"><span class="metric-label svelte-d3ct2b">VIOLATIONS</span> <span> </span></div> <div class="metric-item svelte-d3ct2b"><span class="metric-label svelte-d3ct2b">FILES</span> <span class="metric-value svelte-d3ct2b"> </span></div> <div class="metric-item svelte-d3ct2b"><span class="metric-label svelte-d3ct2b">RULES</span> <span class="metric-value svelte-d3ct2b"> </span></div></div></div> <div class="filter-right svelte-d3ct2b"><div class="live-badge svelte-d3ct2b"><i></i> <span class="svelte-d3ct2b"> </span></div> <button><!></button> <button class="icon-btn svelte-d3ct2b" title="Download snapshot"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="svelte-d3ct2b"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" class="svelte-d3ct2b"></path><polyline points="7 10 12 15 17 10" class="svelte-d3ct2b"></polyline><line x1="12" y1="15" x2="12" y2="3" class="svelte-d3ct2b"></line></svg></button></div></div> <div class="feed-area svelte-d3ct2b"><!></div> <footer class="metrics-footer svelte-d3ct2b"><div class="footer-left svelte-d3ct2b"><div class="footer-metric svelte-d3ct2b"><span class="footer-label svelte-d3ct2b">Checks</span> <span class="footer-val svelte-d3ct2b"> </span> <span class="footer-unit svelte-d3ct2b">AI CALLS</span></div> <div class="footer-metric svelte-d3ct2b"><span class="footer-label svelte-d3ct2b">Tokens</span> <span class="footer-val svelte-d3ct2b"> </span> <span class="footer-unit svelte-d3ct2b"> </span></div> <div class="footer-metric svelte-d3ct2b"><span class="footer-label svelte-d3ct2b">Error Rate</span> <span class="footer-val footer-val-error svelte-d3ct2b"> </span></div> <div class="footer-metric svelte-d3ct2b"><span class="footer-label svelte-d3ct2b">Bypasses</span> <span> </span></div></div> <div class="footer-right svelte-d3ct2b"><div class="footer-actions svelte-d3ct2b"><button class="action-btn svelte-d3ct2b" title="Sync rules to all AI agent files"> </button> <button class="action-btn svelte-d3ct2b" title="Run full scan on all tracked files"> </button> <button class="action-btn action-btn-warn svelte-d3ct2b" title="Tune noisy rules"> </button></div> <div class="storage-bar-wrap svelte-d3ct2b"><div class="storage-bar svelte-d3ct2b"><div class="storage-fill svelte-d3ct2b"></div></div> <span class="footer-label svelte-d3ct2b"> </span></div></div></footer></main></div> <!></div>');function pv(e,s){kl(s,!1);const a=B(),r=B(),n=B(),i=B(),v=B(),u=B(),f=B(),h=B(),m=B(),M=B(),E=B(),k=B(),x=B(),$=B(),A=B(),F=B(),oe=B(),de=B(),Se=B(),rt=B();let _=B({config:null,stats:{rules:{},files:{},topRules:[],topFiles:[]},files:[],memories:[]}),Ae=B([]),wt=B(!1),kt=B("all"),qe=B(""),Ut=B(!1),nt=B(""),xe=B({type:"rule",scope:"project",content:"",reason:"",tags:"dashboard"}),je=B("live-feed"),$e=B(null),ts=B(!1),ca=B(""),ss=B(!1),re=B({provider:"",model:"",apiKey:"",chatTimeoutMs:"",checkTimeoutMs:""}),As=B(!1),fs=B(""),us=B(""),Vt=B(!1),qs=B(!1),zs=B(!1),Xe=B({name:"",paths:"",description:""}),ye=B({fromLayer:"",toLayer:"",name:"",allowed:!1,enforcement:"block"}),Kt=B(!1);async function zr(l){await fetch(`/api/arch/layers/${encodeURIComponent(l)}`,{method:"DELETE"}),await rs()}async function si(l){await fetch(`/api/arch/rules/${encodeURIComponent(l)}`,{method:"DELETE"}),await rs()}async function ai(){if(t(Xe).name.trim()){y(Kt,!0);try{await fetch("/api/arch/layers",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:t(Xe).name.trim(),paths:t(Xe).paths.split(",").map(l=>l.trim()).filter(Boolean),description:t(Xe).description.trim()})}),y(Xe,{name:"",paths:"",description:""}),y(qs,!1),await rs()}finally{y(Kt,!1)}}}async function ri(){if(!(!t(ye).fromLayer||!t(ye).toLayer||!t(ye).name.trim())){y(Kt,!0);try{await fetch("/api/arch/rules",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t(ye))}),y(ye,{fromLayer:"",toLayer:"",name:"",allowed:!1,enforcement:"block"}),y(zs,!1),await rs()}finally{y(Kt,!1)}}}const ni=24*60*60*1e3,Yr=640,Gr=380,It=110,as=38,li={nestjs:["controllers","services","repositories","modules","common"],mvc:["controllers","services","models","views","shared"],"laravel-service-repository":["controllers","services","repositories","models","shared"],"go-api":["handlers","services","repositories","models","shared"],react:["pages","components","hooks","store","services"],"react-native":["screens","components","hooks","store","services"],vue:["pages","components","composables","store","services"],svelte:["routes","components","stores","lib","utils"],nuxt:["pages","components","composables","server","utils"],angular:["modules","components","services","guards","shared"],hexagonal:["domain","ports","adapters","infrastructure","shared"],"modular-monolith":["modules","api","shared","infrastructure"],"clean-architecture":["api","application","domain","infrastructure","shared"]};function Na(l){t(ts)||y(Ae,[{...l,id:crypto.randomUUID()},...t(Ae)].slice(0,80))}function Jr(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==="log"?{type:"log",timestamp:l.timestamp,file:l.file,message:l.message}: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 Da(l){const b=t(_).files??[],L=b.findIndex(K=>K.file===l.file),C=b.slice();return L===-1?C.push(l):C[L]=l,C.sort((K,Z)=>Z.lastSeen.localeCompare(K.lastSeen))}function ii(l){const b=t(_).watcher??{enabled:!0,running:!1,path:void 0,model:void 0,rules:void 0,lastEventAt:void 0,error:void 0};let L=t(_).files,C={...b,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"&&(L=Da({file:l.file,status:"checking",lastSeen:l.timestamp,violations:[]})),l.type==="clean"&&(L=Da({file:l.file,status:"clean",lastSeen:l.timestamp,violations:[]})),l.type==="skipped"&&(L=Da({file:l.file,status:"skipped",lastSeen:l.timestamp,violations:[],message:l.reason})),l.type==="violations"&&(L=Da({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 K=[l,...t(_).events??[]].slice(0,100);y(_,{...t(_),files:L,events:K,watcher:C})}function ar(l=[]){y(Ae,l.map(Jr).map(b=>({...b,id:crypto.randomUUID()})).reverse().slice(0,80))}function Xr(l){return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(l))}function Qr(l,b){const L=l.file||b;return l.line?`${L}:${l.line}`:L}function oi(l){return l.type==="saved"?"SAVE":l.type==="clean"?"OK":l.type==="skipped"?"SKIP":l.type==="violations"?"FAIL":l.type==="log"?"CHCK":l.type==="error"?"WARN":"SYS"}function ci(l){return l.type==="clean"?"label-ok":l.type==="violations"||l.type==="error"?"label-warn":l.type==="log"?"label-chck":l.type==="system"?"label-sys":"label-info"}async function rs(){const l=await fetch(`/api/snapshot?t=${Date.now()}`,{cache:"no-store"});y(_,await l.json()),ar(t(_).events)}async function di(){y(nt,"");try{const l=await fetch("/api/refresh",{method:"POST",headers:{"content-type":"application/json"},cache:"no-store"});if(!l.ok)throw new Error((await l.json()).error??"Refresh failed");const b=await l.json();b.snapshot?(y(_,b.snapshot),ar(t(_).events)):await rs()}catch(l){y(nt,l.message)}}function vi(){try{localStorage.clear(),sessionStorage.clear()}finally{location.reload()}}async function fi(){y(As,!0),y(fs,"");try{const l=await fetch("/api/config/model",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t(re))}),b=await l.json().catch(()=>({}));if(!l.ok)throw new Error(b.error??"Save failed");const L=Array.isArray(b.warnings)&&b.warnings.length>0?" — "+b.warnings.join("; "):"";y(fs,`✓ ${b.message??"Settings updated"}${L}`),await rs()}catch(l){y(fs,`✗ ${l.message}`)}finally{y(As,!1)}}async function rr(l){y(us,l);try{await fetch(`/api/actions/${l}`,{method:"POST"}),Na({type:"system",timestamp:new Date().toISOString(),message:`Action started: memory-core ${l==="check-all"?"check --all":l}`})}catch{}finally{y(us,"")}}function Zr(){const l=location.protocol==="https:"?"wss:":"ws:",b=new WebSocket(`${l}//${location.host}/ws`);b.addEventListener("open",()=>{y(wt,!0),Na({type:"system",timestamp:new Date().toISOString(),message:"Dashboard connected"})}),b.addEventListener("close",()=>{y(wt,!1),Na({type:"error",timestamp:new Date().toISOString(),message:"Dashboard disconnected"}),setTimeout(Zr,1500)}),b.addEventListener("message",L=>{const C=JSON.parse(L.data);if(C.type==="snapshot"){y(_,C.snapshot),t(Ae).length===0&&ar(t(_).events);return}if(C.type==="stats"){y(_,{...t(_),stats:C.stats});return}C.type==="watch"&&(ii(C.event),Na(Jr(C.event)))})}async function ui(){if(t(xe).content.trim()){y(Ut,!0),y(nt,"");try{const l=await fetch("/api/memories",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t(xe))});if(!l.ok)throw new Error((await l.json()).error??"Save failed");y(xe,{type:"rule",scope:"project",content:"",reason:"",tags:"dashboard"}),await rs()}catch(l){y(nt,l.message)}finally{y(Ut,!1)}}}async function pi(l){y(nt,"");const b=await fetch(`/api/memories/${l}`,{method:"DELETE"});if(!b.ok){y(nt,(await b.json()).error??"Delete failed");return}await rs()}let ps=B(localStorage.getItem("mc-theme")==="dark"||!localStorage.getItem("mc-theme")&&window.matchMedia("(prefers-color-scheme: dark)").matches);function hi(){y(ps,!t(ps)),localStorage.setItem("mc-theme",t(ps)?"dark":"light")}document.documentElement.setAttribute("data-theme",t(ps)?"dark":"light"),rs().catch(l=>{y(nt,l.message)}),Zr(),Ne(()=>(t(_),t(kt),t(qe)),()=>{y(a,t(_).memories.filter(l=>{const b=t(kt)==="all"||l.type===t(kt),L=`${l.type} ${l.scope} ${l.content} ${l.reason??""} ${l.tags.join(" ")}`.toLowerCase();return b&&L.includes(t(qe).toLowerCase())}))}),Ne(()=>t(_),()=>{y(r,t(_).files.reduce((l,b)=>l+b.violations.length,0))}),Ne(()=>t(_),()=>{y(n,t(_).files.filter(l=>l.status==="clean").length)}),Ne(()=>t(_),()=>{y(i,Object.values(t(_).stats.rules).reduce((l,b)=>l+b,0))}),Ne(()=>t(_),()=>{y(v,t(_).stats.recentViolations??[])}),Ne(()=>t(v),()=>{y(u,t(v).filter(l=>{if(!(l.source==="hook"||l.source==="ci"))return!1;const b=Date.parse(l.timestamp);return Number.isNaN(b)?!1:Date.now()-b<=ni}))}),Ne(()=>t(r),()=>{y(f,t(r))}),Ne(()=>t(_),()=>{y(h,t(_).files.filter(l=>l.status!=="checking").length)}),Ne(()=>t(_),()=>{y(m,t(_).memories.filter(l=>["rule","pattern","decision"].includes(l.type)).length)}),Ne(()=>t(_),()=>{var l;y(M,((l=t(_).memoryCount)==null?void 0:l.total)??t(_).memories.length)}),Ne(()=>(t(wt),t(_)),()=>{var l,b;y(E,t(wt)?((l=t(_).watcher)==null?void 0:l.enabled)===!1?{live:!1,label:"Watch off"}:(b=t(_).watcher)!=null&&b.running?{live:!0,label:"Watcher live"}:{live:!1,label:"Watcher idle"}:{live:!1,label:"Disconnected"})}),Ne(()=>t(_),()=>{var l;y(k,((l=t(_).arch)==null?void 0:l.layers)??[])}),Ne(()=>t(_),()=>{var l;y(x,((l=t(_).arch)==null?void 0:l.rules)??[])}),Ne(()=>(t(k),t(_)),()=>{y($,(()=>{var U,w,te,j;const l=t(k);if(l.length===0)return[];const b=((U=t(_).runtime)==null?void 0:U.project.backendArchitecture)??((w=t(_).runtime)==null?void 0:w.project.frontendFramework)??((j=(te=t(_).runtime)==null?void 0:te.project.activeArchitectures)==null?void 0:j[0])??"",L=li[b]??["api","application","domain","infrastructure","shared"],C=[...l].sort((P,fe)=>{const Le=L.indexOf(P.name)===-1?99:L.indexOf(P.name),De=L.indexOf(fe.name)===-1?99:L.indexOf(fe.name);return Le-De}),K=Math.min(C.length,3),Z=Math.ceil(C.length/K),ne=(Yr-K*It)/(K+1),ve=(Gr-Z*as)/(Z+1);return C.map((P,fe)=>{const Le=fe%K,De=Math.floor(fe/K);return{name:P.name,description:P.description,x:ne+Le*(It+ne),y:ve+De*(as+ve)}})})())}),Ne(()=>(t($),t(x)),()=>{y(A,(()=>{const l=new Map(t($).map(b=>[b.name,b]));return t(x).filter(b=>b.fromLayer!=="*"&&b.toLayer!=="*").map(b=>{const L=l.get(b.fromLayer),C=l.get(b.toLayer);if(!L||!C)return null;const K=L.x+It/2,Z=L.y+as/2,ne=C.x+It/2,ve=C.y+as/2,U=ne-K,w=ve-Z,te=Math.sqrt(U*U+w*w)||1,j=K+U/te*(It/2+4),P=Z+w/te*(as/2+4),fe=ne-U/te*(It/2+4),Le=ve-w/te*(as/2+4);return{r:b,sx:j,sy:P,ex:fe,ey:Le}}).filter(Boolean)})())}),Ne(()=>t(_),()=>{var l;y(F,((l=t(_).runtime)==null?void 0:l.postgres.connected)??!1)}),Ne(()=>t(_),()=>{var l;y(oe,((l=t(_).runtime)==null?void 0:l.model.ollamaReachable)??!1)}),Ne(()=>t(_),()=>{var l,b;y(de,(((l=t(_).runtime)==null?void 0:l.model.checkModelResolved)??((b=t(_).runtime)==null?void 0:b.model.chatModel)??"unknown").toUpperCase())}),Ne(()=>t(_),()=>{var l,b;y(Se,((l=t(_).runtime)==null?void 0:l.project.backendArchitecture)==="custom"||((b=t(_).runtime)==null?void 0:b.project.frontendFramework)==="custom")}),Ne(()=>t(_),()=>{y(rt,(()=>{var C,K;const l=(C=t(_).runtime)==null?void 0:C.project.backendArchitecture,b=(K=t(_).runtime)==null?void 0:K.project.frontendFramework,L=[l?l==="custom"?"Custom":l:null,b?b==="custom"?"Custom":b:null].filter(Boolean);return L.length>0?L.join(" / "):null})())}),Ne(()=>t(ps),()=>{document.documentElement.setAttribute("data-theme",t(ps)?"dark":"light")}),Rc(),cd();var en=uv(),tn=c(en),sn=c(tn),_i=o(c(sn),2),nr=c(_i);let an;var Ia=o(nr,2);let rn;var bi=o(c(Ia));{var mi=l=>{var b=vd(),L=c(b);W(()=>S(L,(t(u),p(()=>t(u).length)))),T(l,b)};J(bi,l=>{t(u),p(()=>t(u).length>0)&&l(mi)})}var lr=o(Ia,2);let nn;var ir=o(lr,2);let ln;var or=o(ir,2);let on;var gi=o(c(or));{var yi=l=>{var b=fd(),L=c(b);W(()=>S(L,(t(_),p(()=>{var C;return(C=t(_).violationHistory)==null?void 0:C.length})))),T(l,b)};J(gi,l=>{t(_),p(()=>{var b;return(((b=t(_).violationHistory)==null?void 0:b.length)??0)>0})&&l(yi)})}var cn=o(sn,2),wi=o(c(cn),2),ki=o(cn,2),dn=c(ki),cr=o(dn,2),xi=c(cr);{var Ei=l=>{var b=ud();T(l,b)},Si=l=>{var b=pd();T(l,b)};J(xi,l=>{t(ps)?l(Ei):l(Si,-1)})}var vn=o(tn,2),fn=c(vn),un=o(c(fn),4);let pn;var Ai=o(fn,2),hn=c(Ai),_n=o(c(hn),2),Ti=o(c(_n),2),Mi=c(Ti),dr=o(_n,2);let bn;var mn=c(dr);let gn;var Li=o(mn,2),Ci=c(Li),vr=o(dr,2);let yn;var wn=c(vr);let kn;var Oi=o(wn,2),Ri=c(Oi),xn=o(vr,2);{var Ni=l=>{var b=hd(),L=o(c(b),2),C=c(L);W(()=>S(C,`${t(_),p(()=>{var K;return(K=t(_).arch)==null?void 0:K.pendingRules})??""} PENDING RULES`)),T(l,b)};J(xn,l=>{t(_),p(()=>{var b;return(((b=t(_).arch)==null?void 0:b.pendingRules)??0)>0})&&l(Ni)})}var En=o(xn,2);{var Di=l=>{var b=_d();let L;var C=c(b);let K;var Z=o(C,2),ne=c(Z);W(ve=>{L=ke(b,1,"health-badge svelte-d3ct2b",null,L,{"health-warn":t(Se),"health-green":!t(Se)}),K=ke(C,1,"dot svelte-d3ct2b",null,K,{"dot-warn":t(Se),"dot-green":!t(Se)}),S(ne,`ARCH: ${ve??""}${t(Se)?" — ADD RULES":""}`)},[()=>(t(rt),p(()=>t(rt).toUpperCase()))]),T(l,b)};J(En,l=>{t(rt)&&l(Di)})}var Sn=o(En,2);{var Ii=l=>{var b=bd(),L=c(b);W(()=>S(L,(t(_),p(()=>t(_).dbError)))),T(l,b)};J(Sn,l=>{t(_),p(()=>t(_).dbError)&&l(Ii)})}var Fi=o(Sn,2);{var Pi=l=>{var b=md(),L=c(b);W(()=>S(L,t(nt))),T(l,b)};J(Fi,l=>{t(nt)&&l(Pi)})}var An=o(hn,2),Tn=c(An),Mn=c(Tn),ji=o(c(Mn),2),$i=o(Mn,4),Ln=c($i),Cn=o(c(Ln),2);let On;var Hi=c(Cn),Rn=o(Ln,2),Wi=o(c(Rn),2),Bi=c(Wi),Ui=o(Rn,2),Vi=o(c(Ui),2),Ki=c(Vi),qi=o(Tn,2),Nn=c(qi),Dn=c(Nn);let In;var zi=o(Dn,2),Yi=c(zi),da=o(Nn,2);let Fn;var Gi=c(da);{var Ji=l=>{var b=gd();T(l,b)},Xi=l=>{var b=yd();T(l,b)};J(Gi,l=>{t(ts)?l(Ji):l(Xi,-1)})}var Qi=o(da,2),Pn=o(An,2),Zi=c(Pn);{var eo=l=>{var b=Ys(),L=Ve(b);{var C=Z=>{var ne=xd(),ve=o(Ve(ne),4);{var U=te=>{var j=wd();T(te,j)},w=te=>{var j=kd();T(te,j)};J(ve,te=>{t(Se)?te(U):te(w,-1)})}T(Z,ne)},K=Z=>{var ne=Ys(),ve=Ve(ne);ct(ve,1,()=>(t(Ae),p(()=>[...t(Ae)].reverse())),U=>U.id,(U,w)=>{var te=Td(),j=Ve(te);let P;var fe=c(j),Le=c(fe),De=o(fe,2),lt=c(De),Qe=o(De,2),it=c(Qe);{var He=D=>{var O=zt();W(()=>S(O,(t(w),p(()=>t(w).message)))),T(D,O)},We=D=>{var O=zt();W(()=>S(O,`saved: ${t(w),p(()=>t(w).file)??""}`)),T(D,O)},he=D=>{var O=zt();W(()=>S(O,`${t(w),p(()=>t(w).file)??""} — no violations`)),T(D,O)},g=D=>{var O=zt();W(()=>S(O,`${t(w),p(()=>t(w).file)??""} — skipped: ${t(w),p(()=>t(w).reason)??""}`)),T(D,O)},ie=D=>{var O=zt();W(()=>S(O,`${t(w),p(()=>t(w).file)??""} — ${t(w),p(()=>t(w).message)??""}`)),T(D,O)},be=D=>{var O=zt();W(()=>S(O,`${t(w),p(()=>t(w).violations.length)??""} violation${t(w),p(()=>t(w).violations.length===1?"":"s")??""} in ${t(w),p(()=>t(w).file)??""}`)),T(D,O)};J(it,D=>{t(w),p(()=>t(w).type==="system"||t(w).type==="error")?D(He):(t(w),p(()=>t(w).type==="saved")?D(We,1):(t(w),p(()=>t(w).type==="clean")?D(he,2):(t(w),p(()=>t(w).type==="skipped")?D(g,3):(t(w),p(()=>t(w).type==="log")?D(ie,4):D(be,-1)))))})}var ce=o(Qe,2),se=o(j,2);{var ue=D=>{var O=Ys(),q=Ve(O);ct(q,3,()=>(t(w),p(()=>t(w).violations)),(Y,R)=>`${t(w).id}-${R}`,(Y,R,H)=>{var V=Ad(),_e=c(V),Ee=c(_e),Ce=o(_e,2),me=c(Ce),ze=c(me),ot=o(me,2);{var Be=Oe=>{var et=Ed(),Ft=o(Ve(et)),qt=c(Ft);W(()=>S(qt,(t(R),p(()=>t(R).rule)))),T(Oe,et)};J(ot,Oe=>{t(R),p(()=>t(R).rule)&&Oe(Be)})}var we=o(ot,2);{var xt=Oe=>{var et=zt();W(()=>S(et,`— ${t(R),p(()=>t(R).issue)??""}`)),T(Oe,et)};J(we,Oe=>{t(R),p(()=>t(R).issue)&&Oe(xt)})}var ut=o(we,2);{var Et=Oe=>{var et=Sd(),Ft=o(Ve(et)),qt=c(Ft);W(()=>S(qt,`→ ${t(R),p(()=>t(R).suggestion)??""}`)),T(Oe,et)};J(ut,Oe=>{t(R),p(()=>t(R).suggestion)&&Oe(Et)})}W(Oe=>{S(Ee,`[${t(H)+1}]`),S(ze,Oe)},[()=>(t(R),t(w),p(()=>Qr(t(R),t(w).file)))]),T(Y,V)}),T(D,O)};J(se,D=>{t(w),p(()=>t(w).type==="violations")&&D(ue)})}W((D,O,q)=>{P=ke(j,1,"log-row svelte-d3ct2b",null,P,{"log-row-warn":t(w).type==="error","log-row-ok":t(w).type==="clean","log-row-fail":t(w).type==="violations"}),S(Le,D),ke(De,1,`log-label ${O??""}`,"svelte-d3ct2b"),S(lt,`[${q??""}]`)},[()=>(t(w),p(()=>Xr(t(w).timestamp))),()=>(t(w),p(()=>ci(t(w)))),()=>(t(w),p(()=>oi(t(w))))]),ae("click",ce,()=>{var O;const D=t(w).type==="system"||t(w).type==="error"?t(w).message:t(w).type==="saved"?`saved: ${t(w).file}`:t(w).file;(O=navigator.clipboard)==null||O.writeText(D)}),T(U,te)}),T(Z,ne)};J(L,Z=>{t(Ae),p(()=>t(Ae).length===0)?Z(C):Z(K,-1)})}T(l,b)},to=l=>{var b=Rd(),L=Ve(b),C=o(c(L),2),K=c(C),Z=o(L,2);{var ne=U=>{var w=Md();T(U,w)},ve=U=>{var w=Ys(),te=Ve(w);ct(te,3,()=>(t(u),p(()=>t(u).slice(0,20))),(j,P)=>`${j.timestamp}-${P}`,(j,P)=>{var fe=Od(),Le=Ve(fe),De=c(Le),lt=c(De),Qe=o(De,2),it=c(Qe),He=o(Qe,2),We=c(He),he=c(We),g=o(We,2);{var ie=se=>{var ue=zt();W(D=>S(ue,`— ${D??""}`),[()=>(t(P),p(()=>Qr(t(P),t(P).file)))]),T(se,ue)};J(g,se=>{t(P),p(()=>t(P).file)&&se(ie)})}var be=o(Le,2);{var ce=se=>{var ue=Cd(),D=o(c(ue),2),O=c(D);{var q=H=>{var V=zt();W(()=>S(V,(t(P),p(()=>t(P).issue)))),T(H,V)};J(O,H=>{t(P),p(()=>t(P).issue)&&H(q)})}var Y=o(O,2);{var R=H=>{var V=Ld(),_e=o(Ve(V)),Ee=c(_e);W(()=>S(Ee,`→ ${t(P),p(()=>t(P).suggestion)??""}`)),T(H,V)};J(Y,H=>{t(P),p(()=>t(P).suggestion)&&H(R)})}T(se,ue)};J(be,se=>{t(P),p(()=>t(P).issue||t(P).suggestion)&&se(ce)})}W(se=>{S(lt,se),S(it,`[${t(P),p(()=>t(P).source==="ci"?"CI":"HOOK")??""}]`),S(he,(t(P),p(()=>t(P).rule)))},[()=>(t(P),p(()=>Xr(t(P).timestamp)))]),T(j,fe)}),T(U,w)};J(Z,U=>{t(u),p(()=>t(u).length===0)?U(ne):U(ve,-1)})}W(()=>S(K,`${t(u),p(()=>t(u).length)??""} violation${t(u),p(()=>t(u).length===1?"":"s")??""} in last 24h`)),T(l,b)},so=l=>{var b=Pd(),L=Ve(b),C=o(c(L),2),K=c(C),Z=o(L,2),ne=c(Z),ve=c(ne);ve.value=ve.__value="all";var U=o(ve);U.value=U.__value="rule";var w=o(U);w.value=w.__value="decision";var te=o(w);te.value=te.__value="pattern";var j=o(te);j.value=j.__value="ignore";var P=o(ne,2),fe=o(Z,2),Le=c(fe),De=c(Le),lt=c(De),Qe=c(lt);Qe.value=Qe.__value="rule";var it=o(Qe);it.value=it.__value="decision";var He=o(it);He.value=He.__value="pattern";var We=o(He);We.value=We.__value="ignore";var he=o(lt,2),g=c(he);g.value=g.__value="project";var ie=o(g);ie.value=ie.__value="global";var be=o(he,2),ce=o(be,2),se=o(De,2),ue=c(se),D=o(ue,2),O=c(D),q=o(fe,2);ct(q,5,()=>t(a),Y=>Y.id,(Y,R)=>{var H=Dd(),V=c(H),_e=c(V),Ee=o(V,2),Ce=c(Ee),me=o(Ee,2),ze=c(me),ot=o(me,2);{var Be=xt=>{var ut=Nd(),Et=c(ut);W(()=>S(Et,(t(R),p(()=>t(R).reason)))),T(xt,ut)};J(ot,xt=>{t(R),p(()=>t(R).reason)&&xt(Be)})}var we=o(ot,2);W(()=>{S(_e,(t(R),p(()=>t(R).type))),S(Ce,(t(R),p(()=>t(R).scope))),S(ze,(t(R),p(()=>t(R).content)))}),ae("click",we,()=>pi(t(R).id)),T(Y,H)},Y=>{var R=Fd(),H=c(R),V=c(H);{var _e=Ce=>{var me=Id();T(Ce,me)},Ee=Ce=>{var me=zt("No rules match the current filters.");T(Ce,me)};J(V,Ce=>{t(Se)&&t(m)===0?Ce(_e):Ce(Ee,-1)})}T(Y,R)}),W(Y=>{S(K,`${t(m)??""} rules active`),D.disabled=Y,S(O,t(Ut)?"Saving…":"+ Add Rule")},[()=>(t(Ut),t(xe),p(()=>t(Ut)||!t(xe).content.trim()))]),bs(ne,()=>t(kt),Y=>y(kt,Y)),_t(P,()=>t(qe),Y=>y(qe,Y)),bs(lt,()=>t(xe).type,Y=>Ue(xe,t(xe).type=Y)),bs(he,()=>t(xe).scope,Y=>Ue(xe,t(xe).scope=Y)),_t(be,()=>t(xe).reason,Y=>Ue(xe,t(xe).reason=Y)),_t(ce,()=>t(xe).tags,Y=>Ue(xe,t(xe).tags=Y)),_t(ue,()=>t(xe).content,Y=>Ue(xe,t(xe).content=Y)),ae("submit",Le,yr(ui)),T(l,b)},ao=l=>{var b=av(),L=Ve(b),C=o(c(L),2),K=c(C),Z=o(C,2);let ne;var ve=c(Z),U=o(L,2);{var w=j=>{var P=jd();T(j,P)},te=j=>{var P=sv(),fe=c(P);pe(fe,"width",Yr),pe(fe,"height",Gr);var Le=o(c(fe));ct(Le,1,()=>t(A),Yt,(he,g)=>{var ie=Ys(),be=Ve(ie);{var ce=se=>{const ue=Js(()=>(t(g),p(()=>t(g).r.allowed?"var(--green)":t(g).r.enforcement==="warn"?"#f59e0b":"var(--error)"))),D=Js(()=>(t(g),p(()=>t(g).r.allowed?"arrow-allow":t(g).r.enforcement==="warn"?"arrow-warn":"arrow-block"))),O=Js(()=>(t(g),p(()=>t(g).r.allowed?"6,3":t(g).r.enforcement==="warn"?"4,3":"none")));var q=$d();W(()=>{pe(q,"x1",(t(g),p(()=>t(g).sx))),pe(q,"y1",(t(g),p(()=>t(g).sy))),pe(q,"x2",(t(g),p(()=>t(g).ex))),pe(q,"y2",(t(g),p(()=>t(g).ey))),pe(q,"stroke",t(ue)),pe(q,"stroke-dasharray",t(O)),pe(q,"marker-end",`url(#${t(D)??""})`)}),T(se,q)};J(be,se=>{t(g)&&se(ce)})}T(he,ie)});var De=o(Le);ct(De,1,()=>t($),Yt,(he,g)=>{var ie=Wd();let be;var ce=c(ie);pe(ce,"width",It),pe(ce,"height",as);var se=o(ce),ue=c(se),D=o(se),O=c(D),q=o(D);{var Y=R=>{var H=Hd(),V=Ve(H),_e=o(V);W(()=>{pe(V,"cx",(t(g),p(()=>t(g).x+It-2))),pe(V,"cy",(t(g),p(()=>t(g).y+2))),pe(_e,"x",(t(g),p(()=>t(g).x+It-2))),pe(_e,"y",(t(g),p(()=>t(g).y+6)))}),ae("click",V,od(()=>zr(t(g).name))),ae("keydown",V,Ee=>{Ee.key==="Enter"&&zr(t(g).name)}),T(R,H)};J(q,R=>{t(Vt)&&R(Y)})}W(R=>{be=ke(ie,0,"arch-node arch-node-clickable svelte-d3ct2b",null,be,{"arch-node-selected":t($e)===t(g).name}),pe(ie,"aria-label",`Show files in ${t(g),p(()=>t(g).name)??""} layer`),pe(ce,"x",(t(g),p(()=>t(g).x))),pe(ce,"y",(t(g),p(()=>t(g).y))),ke(ce,0,`arch-node-rect arch-node-${t(g),p(()=>t(g).name)??""}`,"svelte-d3ct2b"),pe(ce,"stroke-width",(t($e),t(g),p(()=>t($e)===t(g).name?2.5:1.5))),pe(se,"x",(t(g),p(()=>t(g).x+It/2))),pe(se,"y",(t(g),p(()=>t(g).y+as/2-5))),S(ue,(t(g),p(()=>t(g).name))),pe(D,"x",(t(g),p(()=>t(g).x+It/2))),pe(D,"y",(t(g),p(()=>t(g).y+as/2+9))),S(O,R)},[()=>(t(g),p(()=>t(g).description.length>18?t(g).description.slice(0,16)+"…":t(g).description))]),ae("click",ie,()=>{t(Vt)||y($e,t($e)===t(g).name?null:t(g).name)}),ae("keydown",ie,R=>{!t(Vt)&&(R.key==="Enter"||R.key===" ")&&y($e,t($e)===t(g).name?null:t(g).name)}),T(he,ie)});var lt=o(fe,4);{var Qe=he=>{const g=Js(()=>(t(k),t($e),p(()=>t(k).find(H=>H.name===t($e)))));var ie=qd(),be=c(ie),ce=c(be),se=c(ce),ue=o(ce,2),D=c(ue),O=o(ue,2),q=o(be,2);{var Y=H=>{var V=Ud(),_e=o(c(V),2);ct(_e,1,()=>(za(t(g)),p(()=>t(g).paths)),Yt,(Ee,Ce)=>{var me=Bd(),ze=c(me);W(()=>S(ze,t(Ce))),T(Ee,me)}),T(H,V)};J(q,H=>{za(t(g)),p(()=>{var V,_e;return(_e=(V=t(g))==null?void 0:V.paths)==null?void 0:_e.length})&&H(Y)})}var R=o(q,2);ct(R,1,()=>(t(x),t($e),p(()=>[t(x).filter(H=>H.fromLayer===t($e)||H.toLayer===t($e))])),Yt,(H,V)=>{var _e=Ys(),Ee=Ve(_e);{var Ce=me=>{var ze=Kd(),ot=o(c(ze),2);ct(ot,1,()=>t(V),Yt,(Be,we)=>{var xt=Vd(),ut=c(xt);let Et;var Oe=c(ut),et=o(ut,2),Ft=c(et);W(qt=>{Et=ke(ut,1,"arch-rule-badge svelte-d3ct2b",null,Et,{"badge-block":!t(we).allowed&&t(we).enforcement==="block","badge-warn":!t(we).allowed&&t(we).enforcement==="warn","badge-allow":t(we).allowed}),S(Oe,qt),S(Ft,`${t(we),p(()=>t(we).fromLayer)??""} → ${t(we),p(()=>t(we).toLayer)??""} — ${t(we),p(()=>t(we).name)??""}`)},[()=>(t(we),p(()=>t(we).enforcement.toUpperCase()))]),T(Be,xt)}),T(me,ze)};J(Ee,me=>{t(V),p(()=>t(V).length)&&me(Ce)})}T(H,_e)}),W(()=>{S(se,t($e)),S(D,(za(t(g)),p(()=>{var H;return((H=t(g))==null?void 0:H.description)??""})))}),ae("click",O,()=>y($e,null)),T(he,ie)};J(lt,he=>{t($e)&&he(Qe)})}var it=o(lt,2);ct(it,5,()=>t(x),Yt,(he,g)=>{var ie=Yd(),be=c(ie);let ce;var se=c(be),ue=o(be,2),D=c(ue),O=o(ue,2),q=c(O),Y=o(O,2);{var R=H=>{var V=zd();ae("click",V,()=>si(t(g).id)),T(H,V)};J(Y,H=>{t(Vt)&&H(R)})}W(H=>{ce=ke(be,1,"arch-rule-badge svelte-d3ct2b",null,ce,{"badge-block":!t(g).allowed&&t(g).enforcement==="block","badge-warn":!t(g).allowed&&t(g).enforcement==="warn","badge-allow":t(g).allowed}),S(se,H),S(D,`${t(g),p(()=>t(g).fromLayer)??""} → ${t(g),p(()=>t(g).toLayer)??""}`),S(q,(t(g),p(()=>t(g).name)))},[()=>(t(g),p(()=>t(g).enforcement.toUpperCase()))]),T(he,ie)});var He=o(it,2);{var We=he=>{var g=tv(),ie=Ve(g);{var be=O=>{var q=Gd(),Y=o(c(q),2),R=c(Y),H=o(c(R),2),V=o(R,2),_e=o(c(V),2),Ee=o(V,2),Ce=o(c(Ee),2),me=o(Ee,2),ze=c(me),ot=o(me,2);W(Be=>{me.disabled=Be,S(ze,t(Kt)?"…":"Add")},[()=>(t(Kt),t(Xe),p(()=>t(Kt)||!t(Xe).name.trim()))]),_t(H,()=>t(Xe).name,Be=>Ue(Xe,t(Xe).name=Be)),_t(_e,()=>t(Xe).paths,Be=>Ue(Xe,t(Xe).paths=Be)),_t(Ce,()=>t(Xe).description,Be=>Ue(Xe,t(Xe).description=Be)),ae("click",ot,()=>y(qs,!1)),ae("submit",q,yr(ai)),T(O,q)},ce=O=>{var q=Jd();ae("click",q,()=>{y(qs,!0),y(zs,!1)}),T(O,q)};J(ie,O=>{t(qs)?O(be):O(ce,-1)})}var se=o(ie,2);{var ue=O=>{var q=Zd(),Y=o(c(q),2),R=c(Y),H=o(c(R),2),V=c(H);V.value=V.__value="";var _e=o(V);ct(_e,1,()=>t(k),Yt,(Ye,tt)=>{var G=Xd(),Re=c(G),pt={};W(()=>{S(Re,(t(tt),p(()=>t(tt).name))),pt!==(pt=(t(tt),p(()=>t(tt).name)))&&(G.value=(G.__value=(t(tt),p(()=>t(tt).name)))??"")}),T(Ye,G)});var Ee=o(_e);Ee.value=Ee.__value="*";var Ce=o(R,2),me=o(c(Ce),2),ze=c(me);ze.value=ze.__value="";var ot=o(ze);ct(ot,1,()=>t(k),Yt,(Ye,tt)=>{var G=Qd(),Re=c(G),pt={};W(()=>{S(Re,(t(tt),p(()=>t(tt).name))),pt!==(pt=(t(tt),p(()=>t(tt).name)))&&(G.value=(G.__value=(t(tt),p(()=>t(tt).name)))??"")}),T(Ye,G)});var Be=o(ot);Be.value=Be.__value="*";var we=o(Ce,2),xt=o(c(we),2),ut=o(we,2),Et=o(c(ut),2),Oe=c(Et);Oe.value=Oe.__value="block";var et=o(Oe);et.value=et.__value="warn";var Ft=o(ut,2),qt=o(c(Ft),2),va=c(qt);va.value=va.__value=!1;var fa=o(va);fa.value=fa.__value=!0;var ua=o(Ft,2),ur=c(ua),pr=o(ua,2);W(Ye=>{ua.disabled=Ye,S(ur,t(Kt)?"…":"Add")},[()=>(t(Kt),t(ye),p(()=>t(Kt)||!t(ye).fromLayer||!t(ye).toLayer||!t(ye).name.trim()))]),bs(H,()=>t(ye).fromLayer,Ye=>(Ue(ye,t(ye).fromLayer=Ye),pa(()=>{t(k)}))),bs(me,()=>t(ye).toLayer,Ye=>(Ue(ye,t(ye).toLayer=Ye),pa(()=>{t(k)}))),_t(xt,()=>t(ye).name,Ye=>(Ue(ye,t(ye).name=Ye),pa(()=>{t(k)}))),bs(Et,()=>t(ye).enforcement,Ye=>(Ue(ye,t(ye).enforcement=Ye),pa(()=>{t(k)}))),bs(qt,()=>t(ye).allowed,Ye=>(Ue(ye,t(ye).allowed=Ye),pa(()=>{t(k)}))),ae("click",pr,()=>y(zs,!1)),ae("submit",q,yr(ri)),T(O,q)},D=O=>{var q=ev();ae("click",q,()=>{y(zs,!0),y(qs,!1)}),T(O,q)};J(se,O=>{t(zs)?O(ue):O(D,-1)})}T(he,g)};J(He,he=>{t(Vt)&&he(We)})}T(j,P)};J(U,j=>{t(k),p(()=>t(k).length===0)?j(w):j(te,-1)})}W(()=>{S(K,`${t(k),p(()=>t(k).length)??""} layers · ${t(x),p(()=>t(x).length)??""} rules`),ne=ke(Z,1,"arch-edit-btn svelte-d3ct2b",null,ne,{"arch-edit-btn-active":t(Vt)}),S(ve,t(Vt)?"Done":"Edit Graph")}),ae("click",Z,()=>{y(Vt,!t(Vt)),y(qs,!1),y(zs,!1)}),T(l,b)},ro=l=>{var b=cv(),L=Ve(b),C=o(c(L),2),K=c(C),Z=o(L,2);{var ne=U=>{var w=rv();T(U,w)},ve=U=>{var w=ov();ct(w,5,()=>(t(_),p(()=>t(_).violationHistory??[])),Yt,(te,j)=>{var P=iv(),fe=c(P),Le=c(fe),De=c(Le),lt=o(Le,2),Qe=c(lt),it=o(fe,2);ct(it,1,()=>(t(j),p(()=>t(j).violations)),Yt,(He,We)=>{var he=lv(),g=o(c(he),2),ie=c(g),be=o(g,2);{var ce=se=>{var ue=nv(),D=c(ue);W(()=>S(D,`— ${t(We),p(()=>t(We).issue)??""}`)),T(se,ue)};J(be,se=>{t(We),p(()=>t(We).issue)&&se(ce)})}W(()=>S(ie,(t(We),p(()=>t(We).rule)))),T(He,he)}),W(He=>{S(De,(t(j),p(()=>t(j).file))),S(Qe,He)},[()=>(t(j),p(()=>new Date(t(j).timestamp).toLocaleString()))]),T(te,P)}),T(U,w)};J(Z,U=>{t(_),p(()=>{var w;return!((w=t(_).violationHistory)!=null&&w.length)})?U(ne):U(ve,-1)})}W(()=>S(K,`${t(_),p(()=>{var U;return((U=t(_).violationHistory)==null?void 0:U.length)??0})??""} entries (last 200)`)),T(l,b)};J(Zi,l=>{t(je)==="live-feed"?l(eo):t(je)==="commit-hook"?l(to,1):t(je)==="rules"?l(so,2):t(je)==="arch-graph"?l(ao,3):t(je)==="history"&&l(ro,4)})}var no=o(Pn,2),jn=c(no),$n=c(jn),lo=o(c($n),2),io=c(lo),Hn=o($n,2),Wn=o(c(Hn),2),oo=c(Wn),co=o(Wn,2),vo=c(co),Bn=o(Hn,2),fo=o(c(Bn),2),uo=c(fo),po=o(Bn,2),Un=o(c(po),2);let Vn;var ho=c(Un),_o=o(jn,2),Kn=c(_o),Fa=c(Kn),bo=c(Fa),Pa=o(Fa,2),mo=c(Pa),fr=o(Pa,2),go=c(fr),yo=o(Kn,2),qn=c(yo),wo=c(qn),ko=o(qn,2),xo=c(ko),Eo=o(vn,2);{var So=l=>{var b=fv(),L=c(b),C=c(L),K=o(c(C),2),Z=o(C,2),ne=o(c(Z),2),ve=o(c(ne),2),U=c(ve);U.value=U.__value="ollama";var w=o(U);w.value=w.__value="openai";var te=o(w);te.value=te.__value="anthropic";var j=o(te);j.value=j.__value="minimax";var P=o(j);P.value=P.__value="openai-compatible";var fe=o(ne,2),Le=o(c(fe),2),De=o(fe,2);{var lt=G=>{var Re=dv(),pt=o(c(Re),2);W(()=>pe(pt,"placeholder",(t(_),p(()=>{var le;return(le=t(_).runtime)!=null&&le.model.apiKeyConfigured?"(already set — leave blank to keep)":"sk-..."})))),_t(pt,()=>t(re).apiKey,le=>Ue(re,t(re).apiKey=le)),T(G,Re)};J(De,G=>{t(re),p(()=>t(re).provider&&t(re).provider!=="ollama")&&G(lt)})}var Qe=o(De,2),it=o(c(Qe),2),He=c(it),We=c(He),he=o(He,2),g=o(Qe,2);{var ie=G=>{var Re=vv();let pt;var le=c(Re);W(ht=>{pt=ke(Re,1,"modal-msg svelte-d3ct2b",null,pt,ht),S(le,t(fs))},[()=>({"modal-msg-ok":t(fs).startsWith("✓"),"modal-msg-err":t(fs).startsWith("✗")})]),T(G,Re)};J(g,G=>{t(fs)&&G(ie)})}var be=o(Z,2),ce=o(c(be),2),se=o(c(ce),2),ue=o(ce,2),D=o(c(ue),2),O=o(be,2),q=o(c(O),2),Y=o(c(q)),R=c(Y),H=o(q,2),V=o(c(H)),_e=c(V),Ee=o(H,2),Ce=o(c(Ee)),me=c(Ce),ze=o(Ee,2),ot=o(c(ze)),Be=c(ot),we=o(ze,2),xt=o(c(we)),ut=c(xt),Et=o(we,2),Oe=o(c(Et)),et=c(Oe),Ft=o(Et,2),qt=o(c(Ft)),va=c(qt),fa=o(Ft,2),ua=o(c(fa)),ur=c(ua),pr=o(fa,2),Ye=o(c(pr)),tt=c(Ye);W((G,Re,pt)=>{He.disabled=t(As),S(We,t(As)?"Saving…":"Apply"),S(R,(t(_),p(()=>{var le;return((le=t(_).runtime)==null?void 0:le.model.provider)??"—"}))),S(_e,(t(_),p(()=>{var le,ht;return((le=t(_).runtime)==null?void 0:le.model.checkModelResolved)??((ht=t(_).runtime)==null?void 0:ht.model.chatModel)??"—"}))),S(me,(t(_),p(()=>{var le;return(le=t(_).runtime)!=null&&le.model.apiKeyConfigured?"Configured":"Not set"}))),S(Be,(t(_),p(()=>{var le,ht;return((le=t(_).runtime)==null?void 0:le.model.embeddingModelResolved)??((ht=t(_).runtime)==null?void 0:ht.model.embeddingModel)??"—"}))),S(ut,`${t(_),p(()=>{var le,ht;return((ht=(le=t(_).runtime)==null?void 0:le.timeouts)==null?void 0:ht.chatTimeoutMs)??"60000"})??""} ms`),S(et,`${t(_),p(()=>{var le,ht;return((ht=(le=t(_).runtime)==null?void 0:le.timeouts)==null?void 0:ht.checkTimeoutMs)??"20000"})??""} ms`),S(va,(t(_),p(()=>{var le;return((le=t(_).stats.tokens)==null?void 0:le.calls)??0}))),S(ur,`${G??""} ${t(_),p(()=>{var le;return((le=t(_).runtime)==null?void 0:le.model.provider)==="ollama"?"(local — free)":""})??""}`),S(tt,`${Re??""} in / ${pt??""} out`)},[()=>(t(_),p(()=>{var G,Re;return((Re=(G=t(_).stats.tokens)==null?void 0:G.totalTokens)==null?void 0:Re.toLocaleString())??"0"})),()=>(t(_),p(()=>{var G,Re;return((Re=(G=t(_).stats.tokens)==null?void 0:G.inputTokens)==null?void 0:Re.toLocaleString())??"0"})),()=>(t(_),p(()=>{var G,Re;return((Re=(G=t(_).stats.tokens)==null?void 0:G.outputTokens)==null?void 0:Re.toLocaleString())??"0"}))]),ae("click",K,()=>y(ss,!1)),bs(ve,()=>t(re).provider,G=>Ue(re,t(re).provider=G)),_t(Le,()=>t(re).model,G=>Ue(re,t(re).model=G)),ae("click",He,fi),ae("click",he,di),_t(se,()=>t(re).chatTimeoutMs,G=>Ue(re,t(re).chatTimeoutMs=G)),_t(D,()=>t(re).checkTimeoutMs,G=>Ue(re,t(re).checkTimeoutMs=G)),ae("click",b,cl(()=>y(ss,!1))),ae("keydown",b,cl(G=>{G.key==="Escape"&&y(ss,!1)})),T(l,b)};J(Eo,l=>{t(ss)&&l(So)})}W((l,b,L,C,K,Z)=>{var ne,ve,U,w,te;an=ke(nr,1,"tab-btn svelte-d3ct2b",null,an,{"tab-active":t(je)==="live-feed"}),rn=ke(Ia,1,"tab-btn svelte-d3ct2b",null,rn,{"tab-active":t(je)==="commit-hook"}),nn=ke(lr,1,"tab-btn svelte-d3ct2b",null,nn,{"tab-active":t(je)==="rules"}),ln=ke(ir,1,"tab-btn svelte-d3ct2b",null,ln,{"tab-active":t(je)==="arch-graph"}),on=ke(or,1,"tab-btn svelte-d3ct2b",null,on,{"tab-active":t(je)==="history"}),pe(cr,"title",t(ps)?"Switch to light mode":"Switch to dark mode"),pn=ke(un,1,"sidebar-footer-dot svelte-d3ct2b",null,pn,{"dot-live":t(E).live}),pe(un,"title",(t(E),p(()=>t(E).label))),S(Mi,`CORE ${t(E),p(()=>t(E).live?"LIVE":"IDLE")??""}`),bn=ke(dr,1,"health-badge svelte-d3ct2b",null,bn,{"health-green":t(F),"health-warn":!t(F)}),gn=ke(mn,1,"dot svelte-d3ct2b",null,gn,{"dot-green":t(F),"dot-warn":!t(F)}),S(Ci,`DB ${t(F)?"CONNECTED":"DISCONNECTED"}`),yn=ke(vr,1,"health-badge svelte-d3ct2b",null,yn,{"health-blue":t(oe)||((ne=t(_).runtime)==null?void 0:ne.model.provider)!=="ollama","health-warn":!t(oe)&&((ve=t(_).runtime)==null?void 0:ve.model.provider)==="ollama"}),kn=ke(wn,1,"dot svelte-d3ct2b",null,kn,{"dot-blue":t(oe)||((U=t(_).runtime)==null?void 0:U.model.provider)!=="ollama","dot-warn":!t(oe)&&((w=t(_).runtime)==null?void 0:w.model.provider)==="ollama"}),S(Ri,`MODEL: ${t(de)??""}`),On=ke(Cn,1,"metric-value svelte-d3ct2b",null,On,{"metric-value-warn":t(f)>0}),S(Hi,t(f)),S(Bi,l),S(Ki,b),In=ke(Dn,1,"dot dot-green svelte-d3ct2b",null,In,{"dot-pulse":t(E).live}),S(Yi,L),Fn=ke(da,1,"icon-btn svelte-d3ct2b",null,Fn,{"icon-btn-active":t(ts)}),pe(da,"title",t(ts)?"Resume":"Pause"),S(io,(t(_),p(()=>{var j;return((j=t(_).stats.tokens)==null?void 0:j.calls)??0}))),S(oo,C),S(vo,(t(_),p(()=>{var j;return((j=t(_).runtime)==null?void 0:j.model.provider)==="ollama"?"LOCAL (FREE)":"USED"}))),S(uo,K),Vn=ke(Un,1,"footer-val svelte-d3ct2b",null,Vn,{"footer-val-error":(((te=t(_).stats.bypasses)==null?void 0:te.withoutReason)??0)>0}),S(ho,`${t(_),p(()=>{var j;return((j=t(_).stats.bypasses)==null?void 0:j.withoutReason)??0})??""} unrecorded`),Fa.disabled=t(us)==="sync",S(bo,`${t(us)==="sync"?"…":"⟳"} Sync Agents`),Pa.disabled=t(us)==="check-all",S(mo,`${t(us)==="check-all"?"…":"⊛"} Check All`),fr.disabled=t(us)==="tune",S(go,`${t(us)==="tune"?"…":"⚙"} Tune Rules`),sd(wo,`width: ${Z??""}%`),S(xo,`Storage: ${t(M)??""} memories`)},[()=>(t(h),p(()=>t(h).toLocaleString())),()=>(t(m),p(()=>t(m).toLocaleString())),()=>(t(E),p(()=>t(E).live?"LIVE STREAMING":t(E).label.toUpperCase())),()=>(t(_),p(()=>{var l;return(l=t(_).stats.tokens)!=null&&l.totalTokens?(t(_).stats.tokens.totalTokens/1e3).toFixed(1)+"K":"—"})),()=>(t(f),t(h),p(()=>t(f)===0?"0.00%":(t(f)/Math.max(1,t(h))*100).toFixed(2)+"%")),()=>(t(M),p(()=>Math.min(100,t(M)/Math.max(1,t(M)+100)*100+20)))]),ae("click",nr,()=>{y(je,"live-feed")}),ae("click",Ia,()=>{y(je,"commit-hook")}),ae("click",lr,()=>{y(je,"rules")}),ae("click",ir,()=>{y(je,"arch-graph"),y(Vt,!1)}),ae("click",or,()=>{y(je,"history")}),_t(wi,()=>t(ca),l=>y(ca,l)),ae("click",dn,()=>{var l,b,L,C,K,Z;y(ss,!t(ss)),y(re,{provider:((l=t(_).runtime)==null?void 0:l.model.provider)??"",model:((b=t(_).runtime)==null?void 0:b.model.chatModel)??"",apiKey:"",chatTimeoutMs:((C=(L=t(_).runtime)==null?void 0:L.timeouts)==null?void 0:C.chatTimeoutMs)??"",checkTimeoutMs:((Z=(K=t(_).runtime)==null?void 0:K.timeouts)==null?void 0:Z.checkTimeoutMs)??""}),y(fs,"")}),ae("click",cr,hi),ae("click",ji,vi),ae("click",da,()=>y(ts,!t(ts))),ae("click",Qi,()=>{const l=new Blob([JSON.stringify(t(_),null,2)],{type:"application/json"}),b=document.createElement("a");b.href=URL.createObjectURL(l),b.download="memory-core-snapshot.json",b.click()}),ae("click",Fa,()=>rr("sync")),ae("click",Pa,()=>rr("check-all")),ae("click",fr,()=>rr("tune")),T(e,en),xl()}zc(pv,{target:document.getElementById("app")});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{color-scheme:light dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{border:0}:root{--primary: #0040e0;--primary-dim: #2e5bff;--primary-container: #efefff;--on-primary: #ffffff;--surface: #f8f9fb;--surface-low: #f3f4f6;--surface-mid: #edeef0;--surface-high: #e7e8ea;--surface-highest: #e1e2e4;--on-surface: #191c1e;--on-surface-var: #434656;--outline: #747688;--outline-var: #c4c5d9;--error: #ba1a1a;--error-bg: #ffdad6;--tertiary: #993100;--green: #10b981;--green-bg: rgba(16,185,129,.1);--green-border: rgba(16,185,129,.3);--mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--sans: "Hanken Grotesk", Inter, ui-sans-serif, system-ui, sans-serif}body{margin:0;background:var(--surface);color:var(--on-surface);font-family:var(--sans);font-size:14px;overflow:hidden;height:100vh}*{box-sizing:border-box}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--surface-low)}::-webkit-scrollbar-thumb{background:var(--outline-var);border-radius:4px}.shell.svelte-d3ct2b{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar.svelte-d3ct2b{display:flex;align-items:center;gap:16px;height:64px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--outline-var);flex-shrink:0;z-index:30}.topbar-brand.svelte-d3ct2b{display:flex;align-items:center;gap:24px;flex-shrink:0}.brand-name.svelte-d3ct2b{font-size:18px;font-weight:700;color:var(--on-surface);font-family:var(--sans);letter-spacing:-.02em}.topbar-nav.svelte-d3ct2b{display:flex;gap:2px}.tab-btn.svelte-d3ct2b{padding:6px 12px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--on-surface-var);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;cursor:pointer;text-transform:uppercase;transition:color .15s,border-color .15s}.tab-btn.svelte-d3ct2b:hover{color:var(--primary)}.tab-active.svelte-d3ct2b{color:var(--primary)!important;border-bottom-color:var(--primary);font-weight:700}.topbar-search.svelte-d3ct2b{flex:1;max-width:480px;margin:0 auto;position:relative}.search-icon.svelte-d3ct2b{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--on-surface-var);font-size:18px;pointer-events:none;line-height:1}.search-input.svelte-d3ct2b{width:100%;height:36px;padding:0 12px 0 36px;background:var(--surface-mid);border:1px solid var(--outline-var);border-radius:8px;color:var(--on-surface);font-family:var(--sans);font-size:13px;outline:none;transition:border-color .15s}.search-input.svelte-d3ct2b:focus{border-color:var(--primary-dim)}.topbar-actions.svelte-d3ct2b{display:flex;align-items:center;gap:4px;flex-shrink:0}.icon-btn.svelte-d3ct2b{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;color:var(--on-surface-var);cursor:pointer;transition:background .15s,color .15s}.icon-btn.svelte-d3ct2b:hover{background:var(--surface-low);color:var(--primary)}.icon-btn-active.svelte-d3ct2b{color:var(--primary)!important;background:var(--primary-container)!important}.avatar.svelte-d3ct2b{width:32px;height:32px;border-radius:50%;background:var(--primary-dim);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;margin-left:8px;border:1px solid var(--outline-var);flex-shrink:0;cursor:default}.body.svelte-d3ct2b{display:flex;flex:1;min-height:0;overflow:hidden}.sidebar.svelte-d3ct2b{width:64px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:16px 0;background:#fff;border-right:1px solid var(--outline-var);z-index:20}.sidebar-logo.svelte-d3ct2b{width:40px;height:40px;background:var(--primary-dim);border-radius:4px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:24px}.sidebar-nav.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px}.side-btn.svelte-d3ct2b{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-right:2px solid transparent;color:var(--on-surface-var);cursor:pointer;transition:color .15s;margin-right:-1px}.side-btn.svelte-d3ct2b:hover{color:var(--primary)}.side-btn-active.svelte-d3ct2b{color:var(--primary)!important;background:#0040e014;border-right-color:var(--primary)}.sidebar-footer-dot.svelte-d3ct2b{margin-top:auto;width:8px;height:8px;border-radius:50%;background:var(--outline)}.dot-live.svelte-d3ct2b{background:var(--green)!important;box-shadow:0 0 6px var(--green)}.content.svelte-d3ct2b{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.health-bar.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:6px 24px;border-bottom:1px solid var(--outline-var);background:#fff;flex-shrink:0;flex-wrap:wrap}.health-label.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--outline);text-transform:uppercase;letter-spacing:.06em;margin-right:4px}.health-badge.svelte-d3ct2b{display:flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:700}.health-green.svelte-d3ct2b{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.health-blue.svelte-d3ct2b{background:#0040e014;color:var(--primary);border:1px solid rgba(0,64,224,.2)}.health-warn.svelte-d3ct2b{background:#ba1a1a14;color:var(--error);border:1px solid rgba(186,26,26,.25)}.health-error.svelte-d3ct2b{font-family:var(--mono);font-size:10px;color:var(--error);font-weight:700}.dot.svelte-d3ct2b{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-green.svelte-d3ct2b{background:var(--green)}.dot-blue.svelte-d3ct2b{background:var(--primary)}.dot-warn.svelte-d3ct2b{background:var(--error)}.dot-pulse.svelte-d3ct2b{animation:svelte-d3ct2b-pulse 1.4s ease-in-out infinite}@keyframes svelte-d3ct2b-pulse{0%,to{opacity:1}50%{opacity:.35}}.filter-bar.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 24px;background:var(--surface-low);border-bottom:1px solid var(--outline-var);flex-shrink:0}.filter-left.svelte-d3ct2b,.filter-right.svelte-d3ct2b{display:flex;align-items:center;gap:8px}.chip.svelte-d3ct2b{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;font-family:var(--mono);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;border:none}.chip-primary.svelte-d3ct2b{background:var(--primary-dim);color:#fff}.chip-close.svelte-d3ct2b{background:transparent;border:none;color:#fffc;cursor:pointer;padding:0;font-size:10px;line-height:1}.chip-outline.svelte-d3ct2b{background:var(--surface);color:var(--on-surface-var);border:1px solid var(--outline-var);transition:border-color .15s}.chip-outline.svelte-d3ct2b:hover{border-color:var(--primary-dim)}.chevron.svelte-d3ct2b{transition:transform .2s}.chevron-open.svelte-d3ct2b{transform:rotate(180deg)}.service-dropdown-wrap.svelte-d3ct2b{position:relative}.dropdown.svelte-d3ct2b{position:absolute;top:calc(100% + 4px);left:0;min-width:180px;background:#fff;border:1px solid var(--outline-var);border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:100;overflow:hidden;animation:svelte-d3ct2b-dropIn .12s ease}@keyframes svelte-d3ct2b-dropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-item.svelte-d3ct2b{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:transparent;border:none;color:var(--on-surface-var);font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s;text-align:left}.dropdown-item.svelte-d3ct2b:hover{background:var(--surface-low)}.dropdown-item-active.svelte-d3ct2b{color:var(--primary);background:var(--primary-container)}.dropdown-item-active.svelte-d3ct2b:hover{background:var(--primary-container)}.dropdown-badge.svelte-d3ct2b{margin-left:auto;background:var(--error);color:#fff;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700}.divider-v.svelte-d3ct2b{width:1px;height:28px;background:var(--outline-var);margin:0 4px}.metrics-strip.svelte-d3ct2b{display:flex;align-items:center;gap:24px}.metric-item.svelte-d3ct2b{display:flex;flex-direction:column;align-items:center}.metric-label.svelte-d3ct2b{font-family:var(--mono);font-size:9px;font-weight:700;color:var(--outline);text-transform:uppercase;letter-spacing:.05em;line-height:1}.metric-value.svelte-d3ct2b{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--on-surface);line-height:1.4}.metric-value-warn.svelte-d3ct2b{color:var(--error)}.live-badge.svelte-d3ct2b{display:flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--outline-var);border-radius:8px;background:#fff;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--on-surface);white-space:nowrap}.feed-area.svelte-d3ct2b{flex:1;min-height:0;overflow-y:auto;padding:12px 24px;background:#fff;font-family:var(--mono);font-size:12px}.log-row.svelte-d3ct2b{display:flex;align-items:baseline;gap:12px;padding:3px 8px;border-radius:4px;transition:background .1s;min-height:22px}.log-row.svelte-d3ct2b:hover{background:var(--surface-low)}.log-row-warn.svelte-d3ct2b{background:#ba1a1a0a}.log-row-fail.svelte-d3ct2b{background:#9931000a}.log-time.svelte-d3ct2b{width:80px;flex-shrink:0;color:var(--outline)}.log-label.svelte-d3ct2b{width:56px;flex-shrink:0;font-weight:700}.label-sys.svelte-d3ct2b{color:var(--primary)}.label-ok.svelte-d3ct2b{color:var(--green)}.label-warn.svelte-d3ct2b{color:var(--tertiary)}.label-info.svelte-d3ct2b{color:var(--on-surface-var)}.label-hook.svelte-d3ct2b{color:var(--error)}.label-chck.svelte-d3ct2b{color:var(--outline)}.log-msg.svelte-d3ct2b{flex:1;min-width:0;color:var(--on-surface-var);word-break:break-all;line-height:1.5}.log-msg.svelte-d3ct2b strong:where(.svelte-d3ct2b){color:var(--on-surface);font-weight:600}.copy-btn.svelte-d3ct2b{opacity:0;background:transparent;border:none;color:var(--outline);cursor:pointer;font-size:14px;padding:0 4px;transition:opacity .15s,color .15s;flex-shrink:0}.log-row.svelte-d3ct2b:hover .copy-btn:where(.svelte-d3ct2b){opacity:1}.copy-btn.svelte-d3ct2b:hover{color:var(--primary)}.log-detail.svelte-d3ct2b{display:flex;gap:8px;padding:3px 8px 3px 148px;font-size:11px;border-left:2px solid rgba(153,49,0,.3);margin-left:8px;margin-bottom:2px}.detail-index.svelte-d3ct2b{color:var(--outline);flex-shrink:0;width:24px}.detail-body.svelte-d3ct2b{color:var(--on-surface-var);flex:1;min-width:0;line-height:1.5}.detail-fix.svelte-d3ct2b{color:var(--primary)}.cursor-blink.svelte-d3ct2b{animation:svelte-d3ct2b-blink 1s step-start infinite}@keyframes svelte-d3ct2b-blink{0%,to{opacity:1}50%{opacity:0}}.section-header.svelte-d3ct2b{display:flex;align-items:baseline;gap:12px;padding:8px 8px 10px;border-bottom:1px solid var(--outline-var);margin-bottom:8px}.section-title.svelte-d3ct2b{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--on-surface)}.section-meta.svelte-d3ct2b{font-size:11px;color:var(--outline);font-family:var(--mono)}.rules-toolbar.svelte-d3ct2b{display:flex;gap:8px;padding:8px;margin-bottom:4px}.rules-select.svelte-d3ct2b,.rules-input.svelte-d3ct2b,.rules-textarea.svelte-d3ct2b{padding:6px 10px;background:var(--surface-low);border:1px solid var(--outline-var);border-radius:6px;color:var(--on-surface);font-family:var(--sans);font-size:13px;outline:none;transition:border-color .15s}.rules-select.svelte-d3ct2b:focus,.rules-input.svelte-d3ct2b:focus,.rules-textarea.svelte-d3ct2b:focus{border-color:var(--primary-dim)}.rules-textarea.svelte-d3ct2b{resize:vertical;flex:1;min-width:0}.rule-form-wrap.svelte-d3ct2b{padding:0 8px 8px;border-bottom:1px solid var(--outline-var);margin-bottom:8px}.rule-form.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px}.rule-form-row.svelte-d3ct2b{display:flex;gap:8px;align-items:flex-start}.add-btn.svelte-d3ct2b{padding:8px 16px;background:var(--primary);color:var(--on-primary);border:none;border-radius:6px;font-family:var(--mono);font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s;align-self:flex-end}.add-btn.svelte-d3ct2b:hover:not(:disabled){background:var(--primary-dim)}.add-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.rule-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px;overflow-y:auto;max-height:400px;padding:0 8px}.rule-row.svelte-d3ct2b{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);font-size:12px;min-width:0;transition:background .1s}.rule-row.svelte-d3ct2b:hover{background:var(--surface-mid)}.rule-badge.svelte-d3ct2b{padding:2px 7px;background:var(--primary-container);color:var(--primary);border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;flex-shrink:0}.rule-scope.svelte-d3ct2b{color:var(--outline);font-family:var(--mono);font-size:10px;font-weight:600;flex-shrink:0}.rule-content.svelte-d3ct2b{flex:1;min-width:0;color:var(--on-surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-reason.svelte-d3ct2b{color:var(--on-surface-var);font-size:11px;flex-shrink:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.del-btn.svelte-d3ct2b{background:transparent;border:none;color:var(--outline);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px;flex-shrink:0;transition:background .1s,color .1s}.del-btn.svelte-d3ct2b:hover{background:var(--error-bg);color:var(--error)}.metrics-footer.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 24px;border-top:1px solid var(--outline-var);background:var(--surface);flex-shrink:0}.footer-left.svelte-d3ct2b,.footer-right.svelte-d3ct2b{display:flex;align-items:center;gap:24px}.footer-metric.svelte-d3ct2b{display:flex;align-items:center;gap:6px}.footer-label.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--outline);text-transform:uppercase;letter-spacing:.04em}.footer-val.svelte-d3ct2b{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--on-surface)}.footer-val-error.svelte-d3ct2b{color:var(--error)}.footer-unit.svelte-d3ct2b{font-family:var(--mono);font-size:9px;color:var(--outline);text-transform:uppercase}.storage-bar-wrap.svelte-d3ct2b{display:flex;align-items:center;gap:8px}.storage-bar.svelte-d3ct2b{width:96px;height:6px;background:var(--surface-mid);border-radius:999px;overflow:hidden}.storage-fill.svelte-d3ct2b{height:100%;background:var(--primary-dim);border-radius:999px;transition:width .6s ease}.cli-btn.svelte-d3ct2b{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--surface-high);border:none;border-radius:4px;color:var(--on-surface);font-family:var(--mono);font-size:11px;font-weight:700;cursor:pointer;transition:background .15s}.cli-btn.svelte-d3ct2b:hover{background:var(--outline-var)}:root[data-theme=dark]{--primary: #b8c3ff;--primary-dim: #4d6dff;--primary-container: #1a2340;--on-primary: #001b3e;--surface: #111318;--surface-low: #0c0e12;--surface-mid: #1e2024;--surface-high: #282a2e;--surface-highest: #37393e;--on-surface: #e2e2e8;--on-surface-var: #c4c5d9;--outline: #747688;--outline-var: #3a3c4a;--error: #ffb4ab;--error-bg: rgba(147,0,10,.22);--tertiary: #ffb59b;--green: #03f59b;--green-bg: rgba(3,245,155,.1);--green-border: rgba(3,245,155,.28)}html[data-theme=dark] .topbar.svelte-d3ct2b{background:#1a1c20;border-bottom-color:var(--outline-var)}html[data-theme=dark] .sidebar.svelte-d3ct2b{background:#0c0e12;border-right-color:var(--outline-var)}html[data-theme=dark] .health-bar.svelte-d3ct2b{background:#1a1c20;border-bottom-color:var(--outline-var)}html[data-theme=dark] .filter-bar.svelte-d3ct2b{background:#111318;border-bottom-color:var(--outline-var)}html[data-theme=dark] .feed-area.svelte-d3ct2b{background:#0c0e12}html[data-theme=dark] .metrics-footer.svelte-d3ct2b{background:#111318;border-top-color:var(--outline-var)}html[data-theme=dark] .search-input.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface)}html[data-theme=dark] .dropdown.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);box-shadow:0 8px 24px #00000073}html[data-theme=dark] .dropdown-item.svelte-d3ct2b:hover{background:#282a2e}html[data-theme=dark] .dropdown-item-active.svelte-d3ct2b{background:var(--primary-container);color:var(--primary)}html[data-theme=dark] .chip-outline.svelte-d3ct2b,html[data-theme=dark] .live-badge.svelte-d3ct2b{background:#1e2024}html[data-theme=dark] .rule-row.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var)}html[data-theme=dark] .rule-row.svelte-d3ct2b:hover{background:#282a2e}html[data-theme=dark] .rules-select.svelte-d3ct2b,html[data-theme=dark] .rules-input.svelte-d3ct2b,html[data-theme=dark] .rules-textarea.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface)}html[data-theme=dark] .log-row.svelte-d3ct2b:hover{background:#1e2024}html[data-theme=dark] .log-row-warn.svelte-d3ct2b{background:#ffb4ab0d}html[data-theme=dark] .log-row-fail.svelte-d3ct2b{background:#ffba200a}html[data-theme=dark] .section-header.svelte-d3ct2b{border-bottom-color:var(--outline-var)}html[data-theme=dark] .storage-bar.svelte-d3ct2b{background:#282a2e}html[data-theme=dark] .badge-warn.svelte-d3ct2b{background:#422006;color:#fbbf24}html[data-theme=dark] .log-detail.svelte-d3ct2b{border-left-color:#ffba204d}html[data-theme=dark] .history-entry.svelte-d3ct2b{border-color:var(--outline-var);background:#1a1c20}html[data-theme=dark] .history-header.svelte-d3ct2b{background:#1e2024;border-bottom-color:var(--outline-var)}html[data-theme=dark] .history-violation.svelte-d3ct2b{border-bottom-color:var(--outline-var)}html[data-theme=dark] .arch-node-panel.svelte-d3ct2b{background:#1a1c20;border-color:var(--outline-var)}html[data-theme=dark] .arch-node-panel-path.svelte-d3ct2b{background:#1e2024}html[data-theme=dark] .arch-rule-row.svelte-d3ct2b{background:#1a1c20;border-color:var(--outline-var)}html[data-theme=dark] .arch-svg.svelte-d3ct2b{background:#0c0e12;border-color:var(--outline-var)}html[data-theme=dark] .footer-actions.svelte-d3ct2b .action-btn:where(.svelte-d3ct2b){background:#1e2024}html[data-theme=dark] .cli-btn.svelte-d3ct2b{background:#1e2024}html[data-theme=dark] .modal-status-row.svelte-d3ct2b{border-bottom-color:var(--outline-var)}html[data-theme=dark] .modal-input.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface)}html[data-theme=dark] .modal-btn.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface-var)}html[data-theme=dark] .modal-btn.svelte-d3ct2b:hover:not(:disabled){background:#282a2e}html[data-theme=dark] .rule-form-wrap.svelte-d3ct2b{border-bottom-color:var(--outline-var)}@media (max-width: 768px){.sidebar.svelte-d3ct2b,.topbar-nav.svelte-d3ct2b,.metrics-strip.svelte-d3ct2b{display:none}.filter-bar.svelte-d3ct2b,.feed-area.svelte-d3ct2b{padding:8px 12px}.metrics-footer.svelte-d3ct2b{padding:0 12px;gap:12px}.footer-metric.svelte-d3ct2b:nth-child(n+2){display:none}}.footer-actions.svelte-d3ct2b{display:flex;gap:6px;align-items:center;margin-right:12px}.action-btn.svelte-d3ct2b{font-size:11px;font-family:var(--mono);padding:4px 10px;border-radius:6px;border:1px solid var(--outline-var);background:var(--surface-low);color:var(--on-surface-var);cursor:pointer;transition:background .15s,border-color .15s}.action-btn.svelte-d3ct2b:hover:not(:disabled){background:var(--primary-container);border-color:var(--primary);color:var(--primary)}.action-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.action-btn-warn.svelte-d3ct2b:hover:not(:disabled){background:#fff3e0;border-color:#f59e0b;color:#b45309}.modal-backdrop.svelte-d3ct2b{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.modal.svelte-d3ct2b{background:var(--surface);border:1px solid var(--outline-var);border-radius:12px;width:480px;max-width:calc(100vw - 32px);box-shadow:0 8px 32px #0000002e;overflow:hidden}.modal-header.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--outline-var)}.modal-title.svelte-d3ct2b{font-size:14px;font-weight:600;color:var(--on-surface)}.modal-close.svelte-d3ct2b{background:none;border:none;cursor:pointer;color:var(--outline);font-size:16px;line-height:1}.modal-section.svelte-d3ct2b{padding:16px 20px;border-bottom:1px solid var(--outline-var)}.modal-section.svelte-d3ct2b:last-child{border-bottom:none}.modal-section-title.svelte-d3ct2b{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--outline);text-transform:uppercase;margin-bottom:12px}.modal-row.svelte-d3ct2b{display:grid;grid-template-columns:100px 1fr;gap:8px;align-items:center;margin-bottom:10px}.modal-label.svelte-d3ct2b{font-size:12px;color:var(--on-surface-var)}.modal-input.svelte-d3ct2b{font-size:12px;font-family:var(--mono);padding:6px 10px;border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);color:var(--on-surface);outline:none;width:100%}.modal-input.svelte-d3ct2b:focus{border-color:var(--primary)}.modal-row-actions.svelte-d3ct2b{display:flex;gap:8px}.modal-btn.svelte-d3ct2b{font-size:12px;padding:6px 14px;border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);color:var(--on-surface-var);cursor:pointer}.modal-btn.svelte-d3ct2b:hover:not(:disabled){background:var(--surface-mid)}.modal-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.modal-btn-primary.svelte-d3ct2b{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.modal-btn-primary.svelte-d3ct2b:hover:not(:disabled){background:var(--primary-dim)}.modal-msg.svelte-d3ct2b{font-size:12px;margin-top:8px;padding:6px 10px;border-radius:6px}.modal-msg-ok.svelte-d3ct2b{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.modal-msg-err.svelte-d3ct2b{background:var(--error-bg);color:var(--error);border:1px solid var(--error)}.modal-status-row.svelte-d3ct2b{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--surface-mid)}.modal-status-row.svelte-d3ct2b:last-child{border-bottom:none}.modal-status-label.svelte-d3ct2b{font-size:11px;color:var(--outline)}.modal-status-val.svelte-d3ct2b{font-size:11px;font-family:var(--mono);color:var(--on-surface)}html[data-theme=dark] .modal.svelte-d3ct2b{background:var(--surface);border-color:var(--outline-var)}.arch-graph-wrap.svelte-d3ct2b{display:flex;flex-direction:column;gap:16px;padding:16px}.arch-svg.svelte-d3ct2b{display:block;border:1px solid var(--outline-var);border-radius:8px;background:var(--surface-low);width:100%;max-width:640px}.arch-node-rect.svelte-d3ct2b{fill:var(--surface-mid);stroke:var(--outline-var);stroke-width:1.5}.arch-node-domain.arch-node-rect.svelte-d3ct2b{fill:#eff6ff;stroke:#3b82f6}.arch-node-application.arch-node-rect.svelte-d3ct2b{fill:#f0fdf4;stroke:#22c55e}.arch-node-infrastructure.arch-node-rect.svelte-d3ct2b{fill:#fff7ed;stroke:#f97316}.arch-node-api.arch-node-rect.svelte-d3ct2b{fill:#faf5ff;stroke:#a855f7}.arch-node-shared.arch-node-rect.svelte-d3ct2b{fill:#f8fafc;stroke:#94a3b8}html[data-theme=dark] .arch-node-domain.arch-node-rect.svelte-d3ct2b{fill:#1e3a5f;stroke:#3b82f6}html[data-theme=dark] .arch-node-application.arch-node-rect.svelte-d3ct2b{fill:#14352a;stroke:#22c55e}html[data-theme=dark] .arch-node-infrastructure.arch-node-rect.svelte-d3ct2b{fill:#3d2006;stroke:#f97316}html[data-theme=dark] .arch-node-api.arch-node-rect.svelte-d3ct2b{fill:#2e1a47;stroke:#a855f7}html[data-theme=dark] .arch-node-shared.arch-node-rect.svelte-d3ct2b{fill:#1e2535;stroke:#94a3b8}.arch-node-label.svelte-d3ct2b{font-family:var(--mono);font-size:11px;font-weight:600;fill:var(--on-surface)}.arch-node-desc.svelte-d3ct2b{font-family:var(--sans);font-size:9px;fill:var(--outline)}.arch-node-clickable.svelte-d3ct2b{cursor:pointer}.arch-node-clickable.svelte-d3ct2b:hover .arch-node-rect:where(.svelte-d3ct2b){filter:brightness(.95)}html[data-theme=dark] .arch-node-clickable.svelte-d3ct2b:hover .arch-node-rect:where(.svelte-d3ct2b){filter:brightness(1.15)}.arch-node-panel.svelte-d3ct2b{border:1px solid var(--outline-var);border-radius:8px;background:var(--surface-low);padding:12px 16px;max-width:640px;display:flex;flex-direction:column;gap:10px}.arch-node-panel-header.svelte-d3ct2b{display:flex;align-items:center;gap:10px}.arch-node-panel-name.svelte-d3ct2b{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--on-surface)}.arch-node-panel-meta.svelte-d3ct2b{font-size:12px;color:var(--outline);flex:1}.arch-node-panel-close.svelte-d3ct2b{background:none;border:none;cursor:pointer;color:var(--outline);font-size:14px;padding:0;line-height:1}.arch-node-panel-close.svelte-d3ct2b:hover{color:var(--on-surface)}.arch-node-panel-paths.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px}.arch-node-panel-section.svelte-d3ct2b{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--outline);margin-bottom:2px}.arch-node-panel-path.svelte-d3ct2b{font-family:var(--mono);font-size:11px;color:var(--cyan, #22d3ee);background:var(--surface-mid);padding:3px 8px;border-radius:4px}.arch-node-panel-rule.svelte-d3ct2b{display:flex;align-items:center;gap:8px;font-size:12px}.arch-legend.svelte-d3ct2b{display:flex;gap:16px;align-items:center;font-size:11px;color:var(--outline)}.legend-item.svelte-d3ct2b{display:flex;align-items:center;gap:6px}.arch-rule-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px;max-width:640px}.arch-rule-row.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-low);border-radius:4px;border:1px solid var(--outline-var)}.tab-badge.svelte-d3ct2b{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;border-radius:8px;background:var(--error);color:#fff;font-size:10px;font-weight:700;margin-left:4px;vertical-align:middle}.history-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px;max-width:760px}.history-entry.svelte-d3ct2b{border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);overflow:hidden}.history-header.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--outline-var);background:var(--surface-mid)}.history-file.svelte-d3ct2b{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--cyan, #22d3ee)}.history-time.svelte-d3ct2b{font-size:11px;color:var(--outline)}.history-violation.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--outline-var)}.history-violation.svelte-d3ct2b:last-child{border-bottom:none}.history-rule.svelte-d3ct2b{font-size:12px;font-weight:600;color:var(--on-surface)}.history-issue.svelte-d3ct2b{font-size:12px;color:var(--outline)}.arch-rule-badge.svelte-d3ct2b{font-size:10px;font-family:var(--mono);font-weight:700;padding:2px 6px;border-radius:3px}.badge-block.svelte-d3ct2b{background:var(--error-bg);color:var(--error)}.badge-warn.svelte-d3ct2b{background:#fef3c7;color:#92400e}.badge-allow.svelte-d3ct2b{background:var(--green-bg);color:var(--green)}.arch-rule-layers.svelte-d3ct2b{font-family:var(--mono);font-size:11px;color:var(--on-surface);white-space:nowrap}.arch-rule-name.svelte-d3ct2b{font-size:11px;color:var(--outline);flex:1}
|
|
1
|
+
:root{color-scheme:light dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{border:0}:root{--primary: #0040e0;--primary-dim: #2e5bff;--primary-container: #efefff;--on-primary: #ffffff;--surface: #f8f9fb;--surface-low: #f3f4f6;--surface-mid: #edeef0;--surface-high: #e7e8ea;--surface-highest: #e1e2e4;--on-surface: #191c1e;--on-surface-var: #434656;--outline: #747688;--outline-var: #c4c5d9;--error: #ba1a1a;--error-bg: #ffdad6;--tertiary: #993100;--green: #10b981;--green-bg: rgba(16,185,129,.1);--green-border: rgba(16,185,129,.3);--mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--sans: "Hanken Grotesk", Inter, ui-sans-serif, system-ui, sans-serif}body{margin:0;background:var(--surface);color:var(--on-surface);font-family:var(--sans);font-size:14px;overflow:hidden;height:100vh}*{box-sizing:border-box}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--surface-low)}::-webkit-scrollbar-thumb{background:var(--outline-var);border-radius:4px}.shell.svelte-d3ct2b{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar.svelte-d3ct2b{display:flex;align-items:center;gap:16px;height:64px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--outline-var);flex-shrink:0;z-index:30}.topbar-brand.svelte-d3ct2b{display:flex;align-items:center;gap:24px;flex-shrink:0}.brand-name.svelte-d3ct2b{font-size:18px;font-weight:700;color:var(--on-surface);font-family:var(--sans);letter-spacing:-.02em}.topbar-nav.svelte-d3ct2b{display:flex;gap:2px}.tab-btn.svelte-d3ct2b{padding:6px 12px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--on-surface-var);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;cursor:pointer;text-transform:uppercase;transition:color .15s,border-color .15s}.tab-btn.svelte-d3ct2b:hover{color:var(--primary)}.tab-active.svelte-d3ct2b{color:var(--primary)!important;border-bottom-color:var(--primary);font-weight:700}.topbar-search.svelte-d3ct2b{flex:1;max-width:480px;margin:0 auto;position:relative}.search-icon.svelte-d3ct2b{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--on-surface-var);font-size:18px;pointer-events:none;line-height:1}.search-input.svelte-d3ct2b{width:100%;height:36px;padding:0 12px 0 36px;background:var(--surface-mid);border:1px solid var(--outline-var);border-radius:8px;color:var(--on-surface);font-family:var(--sans);font-size:13px;outline:none;transition:border-color .15s}.search-input.svelte-d3ct2b:focus{border-color:var(--primary-dim)}.topbar-actions.svelte-d3ct2b{display:flex;align-items:center;gap:4px;flex-shrink:0}.icon-btn.svelte-d3ct2b{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;color:var(--on-surface-var);cursor:pointer;transition:background .15s,color .15s}.icon-btn.svelte-d3ct2b:hover{background:var(--surface-low);color:var(--primary)}.icon-btn-active.svelte-d3ct2b{color:var(--primary)!important;background:var(--primary-container)!important}.avatar.svelte-d3ct2b{width:32px;height:32px;border-radius:50%;background:var(--primary-dim);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;margin-left:8px;border:1px solid var(--outline-var);flex-shrink:0;cursor:default}.body.svelte-d3ct2b{display:flex;flex:1;min-height:0;overflow:hidden}.sidebar.svelte-d3ct2b{width:64px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:16px 0;background:#fff;border-right:1px solid var(--outline-var);z-index:20}.sidebar-logo.svelte-d3ct2b{width:40px;height:40px;background:var(--primary-dim);border-radius:4px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:24px}.sidebar-nav.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px}.side-btn.svelte-d3ct2b{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-right:2px solid transparent;color:var(--on-surface-var);cursor:pointer;transition:color .15s;margin-right:-1px}.side-btn.svelte-d3ct2b:hover{color:var(--primary)}.side-btn-active.svelte-d3ct2b{color:var(--primary)!important;background:#0040e014;border-right-color:var(--primary)}.sidebar-footer-dot.svelte-d3ct2b{margin-top:auto;width:8px;height:8px;border-radius:50%;background:var(--outline)}.dot-live.svelte-d3ct2b{background:var(--green)!important;box-shadow:0 0 6px var(--green)}.content.svelte-d3ct2b{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.health-bar.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:6px 24px;border-bottom:1px solid var(--outline-var);background:#fff;flex-shrink:0;flex-wrap:wrap}.health-label.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--outline);text-transform:uppercase;letter-spacing:.06em;margin-right:4px}.health-badge.svelte-d3ct2b{display:flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:700}.health-green.svelte-d3ct2b{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.health-blue.svelte-d3ct2b{background:#0040e014;color:var(--primary);border:1px solid rgba(0,64,224,.2)}.health-warn.svelte-d3ct2b{background:#ba1a1a14;color:var(--error);border:1px solid rgba(186,26,26,.25)}.health-error.svelte-d3ct2b{font-family:var(--mono);font-size:10px;color:var(--error);font-weight:700}.dot.svelte-d3ct2b{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-green.svelte-d3ct2b{background:var(--green)}.dot-blue.svelte-d3ct2b{background:var(--primary)}.dot-warn.svelte-d3ct2b{background:var(--error)}.dot-pulse.svelte-d3ct2b{animation:svelte-d3ct2b-pulse 1.4s ease-in-out infinite}@keyframes svelte-d3ct2b-pulse{0%,to{opacity:1}50%{opacity:.35}}.filter-bar.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 24px;background:var(--surface-low);border-bottom:1px solid var(--outline-var);flex-shrink:0}.filter-left.svelte-d3ct2b,.filter-right.svelte-d3ct2b{display:flex;align-items:center;gap:8px}.chip.svelte-d3ct2b{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;font-family:var(--mono);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;border:none}.chip-primary.svelte-d3ct2b{background:var(--primary-dim);color:#fff}.chip-close.svelte-d3ct2b{background:transparent;border:none;color:#fffc;cursor:pointer;padding:0;font-size:10px;line-height:1}.chip-outline.svelte-d3ct2b{background:var(--surface);color:var(--on-surface-var);border:1px solid var(--outline-var);transition:border-color .15s}.chip-outline.svelte-d3ct2b:hover{border-color:var(--primary-dim)}.chevron.svelte-d3ct2b{transition:transform .2s}.chevron-open.svelte-d3ct2b{transform:rotate(180deg)}.service-dropdown-wrap.svelte-d3ct2b{position:relative}.dropdown.svelte-d3ct2b{position:absolute;top:calc(100% + 4px);left:0;min-width:180px;background:#fff;border:1px solid var(--outline-var);border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:100;overflow:hidden;animation:svelte-d3ct2b-dropIn .12s ease}@keyframes svelte-d3ct2b-dropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-item.svelte-d3ct2b{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:transparent;border:none;color:var(--on-surface-var);font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s;text-align:left}.dropdown-item.svelte-d3ct2b:hover{background:var(--surface-low)}.dropdown-item-active.svelte-d3ct2b{color:var(--primary);background:var(--primary-container)}.dropdown-item-active.svelte-d3ct2b:hover{background:var(--primary-container)}.dropdown-badge.svelte-d3ct2b{margin-left:auto;background:var(--error);color:#fff;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700}.divider-v.svelte-d3ct2b{width:1px;height:28px;background:var(--outline-var);margin:0 4px}.metrics-strip.svelte-d3ct2b{display:flex;align-items:center;gap:24px}.metric-item.svelte-d3ct2b{display:flex;flex-direction:column;align-items:center}.metric-label.svelte-d3ct2b{font-family:var(--mono);font-size:9px;font-weight:700;color:var(--outline);text-transform:uppercase;letter-spacing:.05em;line-height:1}.metric-value.svelte-d3ct2b{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--on-surface);line-height:1.4}.metric-value-warn.svelte-d3ct2b{color:var(--error)}.live-badge.svelte-d3ct2b{display:flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--outline-var);border-radius:8px;background:#fff;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--on-surface);white-space:nowrap}.feed-area.svelte-d3ct2b{flex:1;min-height:0;overflow-y:auto;padding:12px 24px;background:#fff;font-family:var(--mono);font-size:12px}.log-row.svelte-d3ct2b{display:flex;align-items:baseline;gap:12px;padding:3px 8px;border-radius:4px;transition:background .1s;min-height:22px}.log-row.svelte-d3ct2b:hover{background:var(--surface-low)}.log-row-warn.svelte-d3ct2b{background:#ba1a1a0a}.log-row-fail.svelte-d3ct2b{background:#9931000a}.log-time.svelte-d3ct2b{width:80px;flex-shrink:0;color:var(--outline)}.log-label.svelte-d3ct2b{width:56px;flex-shrink:0;font-weight:700}.label-sys.svelte-d3ct2b{color:var(--primary)}.label-ok.svelte-d3ct2b{color:var(--green)}.label-warn.svelte-d3ct2b{color:var(--tertiary)}.label-info.svelte-d3ct2b{color:var(--on-surface-var)}.label-hook.svelte-d3ct2b{color:var(--error)}.label-chck.svelte-d3ct2b{color:var(--outline)}.log-msg.svelte-d3ct2b{flex:1;min-width:0;color:var(--on-surface-var);word-break:break-all;line-height:1.5}.log-msg.svelte-d3ct2b strong:where(.svelte-d3ct2b){color:var(--on-surface);font-weight:600}.copy-btn.svelte-d3ct2b{opacity:0;background:transparent;border:none;color:var(--outline);cursor:pointer;font-size:14px;padding:0 4px;transition:opacity .15s,color .15s;flex-shrink:0}.log-row.svelte-d3ct2b:hover .copy-btn:where(.svelte-d3ct2b){opacity:1}.copy-btn.svelte-d3ct2b:hover{color:var(--primary)}.log-detail.svelte-d3ct2b{display:flex;gap:8px;padding:3px 8px 3px 148px;font-size:11px;border-left:2px solid rgba(153,49,0,.3);margin-left:8px;margin-bottom:2px}.detail-index.svelte-d3ct2b{color:var(--outline);flex-shrink:0;width:24px}.detail-body.svelte-d3ct2b{color:var(--on-surface-var);flex:1;min-width:0;line-height:1.5}.detail-fix.svelte-d3ct2b{color:var(--primary)}.cursor-blink.svelte-d3ct2b{animation:svelte-d3ct2b-blink 1s step-start infinite}@keyframes svelte-d3ct2b-blink{0%,to{opacity:1}50%{opacity:0}}.section-header.svelte-d3ct2b{display:flex;align-items:baseline;gap:12px;padding:8px 8px 10px;border-bottom:1px solid var(--outline-var);margin-bottom:8px}.section-title.svelte-d3ct2b{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--on-surface)}.section-meta.svelte-d3ct2b{font-size:11px;color:var(--outline);font-family:var(--mono)}.rules-toolbar.svelte-d3ct2b{display:flex;gap:8px;padding:8px;margin-bottom:4px}.rules-select.svelte-d3ct2b,.rules-input.svelte-d3ct2b,.rules-textarea.svelte-d3ct2b{padding:6px 10px;background:var(--surface-low);border:1px solid var(--outline-var);border-radius:6px;color:var(--on-surface);font-family:var(--sans);font-size:13px;outline:none;transition:border-color .15s}.rules-select.svelte-d3ct2b:focus,.rules-input.svelte-d3ct2b:focus,.rules-textarea.svelte-d3ct2b:focus{border-color:var(--primary-dim)}.rules-textarea.svelte-d3ct2b{resize:vertical;flex:1;min-width:0}.rule-form-wrap.svelte-d3ct2b{padding:0 8px 8px;border-bottom:1px solid var(--outline-var);margin-bottom:8px}.rule-form.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px}.rule-form-row.svelte-d3ct2b{display:flex;gap:8px;align-items:flex-start}.add-btn.svelte-d3ct2b{padding:8px 16px;background:var(--primary);color:var(--on-primary);border:none;border-radius:6px;font-family:var(--mono);font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s;align-self:flex-end}.add-btn.svelte-d3ct2b:hover:not(:disabled){background:var(--primary-dim)}.add-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.rule-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px;overflow-y:auto;max-height:400px;padding:0 8px}.rule-row.svelte-d3ct2b{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);font-size:12px;min-width:0;transition:background .1s}.rule-row.svelte-d3ct2b:hover{background:var(--surface-mid)}.rule-badge.svelte-d3ct2b{padding:2px 7px;background:var(--primary-container);color:var(--primary);border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;flex-shrink:0}.rule-scope.svelte-d3ct2b{color:var(--outline);font-family:var(--mono);font-size:10px;font-weight:600;flex-shrink:0}.rule-content.svelte-d3ct2b{flex:1;min-width:0;color:var(--on-surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-reason.svelte-d3ct2b{color:var(--on-surface-var);font-size:11px;flex-shrink:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.del-btn.svelte-d3ct2b{background:transparent;border:none;color:var(--outline);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px;flex-shrink:0;transition:background .1s,color .1s}.del-btn.svelte-d3ct2b:hover{background:var(--error-bg);color:var(--error)}.metrics-footer.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 24px;border-top:1px solid var(--outline-var);background:var(--surface);flex-shrink:0}.footer-left.svelte-d3ct2b,.footer-right.svelte-d3ct2b{display:flex;align-items:center;gap:24px}.footer-metric.svelte-d3ct2b{display:flex;align-items:center;gap:6px}.footer-label.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--outline);text-transform:uppercase;letter-spacing:.04em}.footer-val.svelte-d3ct2b{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--on-surface)}.footer-val-error.svelte-d3ct2b{color:var(--error)}.footer-unit.svelte-d3ct2b{font-family:var(--mono);font-size:9px;color:var(--outline);text-transform:uppercase}.storage-bar-wrap.svelte-d3ct2b{display:flex;align-items:center;gap:8px}.storage-bar.svelte-d3ct2b{width:96px;height:6px;background:var(--surface-mid);border-radius:999px;overflow:hidden}.storage-fill.svelte-d3ct2b{height:100%;background:var(--primary-dim);border-radius:999px;transition:width .6s ease}.cli-btn.svelte-d3ct2b{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--surface-high);border:none;border-radius:4px;color:var(--on-surface);font-family:var(--mono);font-size:11px;font-weight:700;cursor:pointer;transition:background .15s}.cli-btn.svelte-d3ct2b:hover{background:var(--outline-var)}:root[data-theme=dark]{--primary: #b8c3ff;--primary-dim: #4d6dff;--primary-container: #1a2340;--on-primary: #001b3e;--surface: #111318;--surface-low: #0c0e12;--surface-mid: #1e2024;--surface-high: #282a2e;--surface-highest: #37393e;--on-surface: #e2e2e8;--on-surface-var: #c4c5d9;--outline: #747688;--outline-var: #3a3c4a;--error: #ffb4ab;--error-bg: rgba(147,0,10,.22);--tertiary: #ffb59b;--green: #03f59b;--green-bg: rgba(3,245,155,.1);--green-border: rgba(3,245,155,.28)}html[data-theme=dark] .topbar.svelte-d3ct2b{background:#1a1c20;border-bottom-color:var(--outline-var)}html[data-theme=dark] .sidebar.svelte-d3ct2b{background:#0c0e12;border-right-color:var(--outline-var)}html[data-theme=dark] .health-bar.svelte-d3ct2b{background:#1a1c20;border-bottom-color:var(--outline-var)}html[data-theme=dark] .filter-bar.svelte-d3ct2b{background:#111318;border-bottom-color:var(--outline-var)}html[data-theme=dark] .feed-area.svelte-d3ct2b{background:#0c0e12}html[data-theme=dark] .metrics-footer.svelte-d3ct2b{background:#111318;border-top-color:var(--outline-var)}html[data-theme=dark] .search-input.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface)}html[data-theme=dark] .dropdown.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);box-shadow:0 8px 24px #00000073}html[data-theme=dark] .dropdown-item.svelte-d3ct2b:hover{background:#282a2e}html[data-theme=dark] .dropdown-item-active.svelte-d3ct2b{background:var(--primary-container);color:var(--primary)}html[data-theme=dark] .chip-outline.svelte-d3ct2b,html[data-theme=dark] .live-badge.svelte-d3ct2b{background:#1e2024}html[data-theme=dark] .rule-row.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var)}html[data-theme=dark] .rule-row.svelte-d3ct2b:hover{background:#282a2e}html[data-theme=dark] .rules-select.svelte-d3ct2b,html[data-theme=dark] .rules-input.svelte-d3ct2b,html[data-theme=dark] .rules-textarea.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface)}html[data-theme=dark] .log-row.svelte-d3ct2b:hover{background:#1e2024}html[data-theme=dark] .log-row-warn.svelte-d3ct2b{background:#ffb4ab0d}html[data-theme=dark] .log-row-fail.svelte-d3ct2b{background:#ffba200a}html[data-theme=dark] .section-header.svelte-d3ct2b{border-bottom-color:var(--outline-var)}html[data-theme=dark] .storage-bar.svelte-d3ct2b{background:#282a2e}html[data-theme=dark] .badge-warn.svelte-d3ct2b{background:#422006;color:#fbbf24}html[data-theme=dark] .log-detail.svelte-d3ct2b{border-left-color:#ffba204d}html[data-theme=dark] .history-entry.svelte-d3ct2b{border-color:var(--outline-var);background:#1a1c20}html[data-theme=dark] .history-header.svelte-d3ct2b{background:#1e2024;border-bottom-color:var(--outline-var)}html[data-theme=dark] .history-violation.svelte-d3ct2b{border-bottom-color:var(--outline-var)}html[data-theme=dark] .arch-node-panel.svelte-d3ct2b{background:#1a1c20;border-color:var(--outline-var)}html[data-theme=dark] .arch-node-panel-path.svelte-d3ct2b{background:#1e2024}html[data-theme=dark] .arch-rule-row.svelte-d3ct2b{background:#1a1c20;border-color:var(--outline-var)}html[data-theme=dark] .arch-svg.svelte-d3ct2b{background:#0c0e12;border-color:var(--outline-var)}html[data-theme=dark] .footer-actions.svelte-d3ct2b .action-btn:where(.svelte-d3ct2b){background:#1e2024}html[data-theme=dark] .cli-btn.svelte-d3ct2b{background:#1e2024}html[data-theme=dark] .modal-status-row.svelte-d3ct2b{border-bottom-color:var(--outline-var)}html[data-theme=dark] .modal-input.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface)}html[data-theme=dark] .modal-btn.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface-var)}html[data-theme=dark] .modal-btn.svelte-d3ct2b:hover:not(:disabled){background:#282a2e}html[data-theme=dark] .rule-form-wrap.svelte-d3ct2b{border-bottom-color:var(--outline-var)}@media (max-width: 768px){.sidebar.svelte-d3ct2b,.topbar-nav.svelte-d3ct2b,.metrics-strip.svelte-d3ct2b{display:none}.filter-bar.svelte-d3ct2b,.feed-area.svelte-d3ct2b{padding:8px 12px}.metrics-footer.svelte-d3ct2b{padding:0 12px;gap:12px}.footer-metric.svelte-d3ct2b:nth-child(n+2){display:none}}.footer-actions.svelte-d3ct2b{display:flex;gap:6px;align-items:center;margin-right:12px}.action-btn.svelte-d3ct2b{font-size:11px;font-family:var(--mono);padding:4px 10px;border-radius:6px;border:1px solid var(--outline-var);background:var(--surface-low);color:var(--on-surface-var);cursor:pointer;transition:background .15s,border-color .15s}.action-btn.svelte-d3ct2b:hover:not(:disabled){background:var(--primary-container);border-color:var(--primary);color:var(--primary)}.action-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.action-btn-warn.svelte-d3ct2b:hover:not(:disabled){background:#fff3e0;border-color:#f59e0b;color:#b45309}.modal-backdrop.svelte-d3ct2b{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.modal.svelte-d3ct2b{background:var(--surface);border:1px solid var(--outline-var);border-radius:12px;width:480px;max-width:calc(100vw - 32px);box-shadow:0 8px 32px #0000002e;overflow:hidden}.modal-header.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--outline-var)}.modal-title.svelte-d3ct2b{font-size:14px;font-weight:600;color:var(--on-surface)}.modal-close.svelte-d3ct2b{background:none;border:none;cursor:pointer;color:var(--outline);font-size:16px;line-height:1}.modal-section.svelte-d3ct2b{padding:16px 20px;border-bottom:1px solid var(--outline-var)}.modal-section.svelte-d3ct2b:last-child{border-bottom:none}.modal-section-title.svelte-d3ct2b{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--outline);text-transform:uppercase;margin-bottom:12px}.modal-row.svelte-d3ct2b{display:grid;grid-template-columns:100px 1fr;gap:8px;align-items:center;margin-bottom:10px}.modal-label.svelte-d3ct2b{font-size:12px;color:var(--on-surface-var)}.modal-input.svelte-d3ct2b{font-size:12px;font-family:var(--mono);padding:6px 10px;border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);color:var(--on-surface);outline:none;width:100%}.modal-input.svelte-d3ct2b:focus{border-color:var(--primary)}.modal-row-actions.svelte-d3ct2b{display:flex;gap:8px}.modal-btn.svelte-d3ct2b{font-size:12px;padding:6px 14px;border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);color:var(--on-surface-var);cursor:pointer}.modal-btn.svelte-d3ct2b:hover:not(:disabled){background:var(--surface-mid)}.modal-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.modal-btn-primary.svelte-d3ct2b{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.modal-btn-primary.svelte-d3ct2b:hover:not(:disabled){background:var(--primary-dim)}.modal-msg.svelte-d3ct2b{font-size:12px;margin-top:8px;padding:6px 10px;border-radius:6px}.modal-msg-ok.svelte-d3ct2b{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.modal-msg-err.svelte-d3ct2b{background:var(--error-bg);color:var(--error);border:1px solid var(--error)}.modal-status-row.svelte-d3ct2b{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--surface-mid)}.modal-status-row.svelte-d3ct2b:last-child{border-bottom:none}.modal-status-label.svelte-d3ct2b{font-size:11px;color:var(--outline)}.modal-status-val.svelte-d3ct2b{font-size:11px;font-family:var(--mono);color:var(--on-surface)}html[data-theme=dark] .modal.svelte-d3ct2b{background:var(--surface);border-color:var(--outline-var)}.arch-graph-wrap.svelte-d3ct2b{display:flex;flex-direction:column;gap:16px;padding:16px}.arch-svg.svelte-d3ct2b{display:block;border:1px solid var(--outline-var);border-radius:8px;background:var(--surface-low);width:100%;max-width:640px}.arch-node-rect.svelte-d3ct2b{fill:var(--surface-mid);stroke:var(--outline-var);stroke-width:1.5}.arch-node-domain.arch-node-rect.svelte-d3ct2b{fill:#eff6ff;stroke:#3b82f6}.arch-node-application.arch-node-rect.svelte-d3ct2b{fill:#f0fdf4;stroke:#22c55e}.arch-node-infrastructure.arch-node-rect.svelte-d3ct2b{fill:#fff7ed;stroke:#f97316}.arch-node-api.arch-node-rect.svelte-d3ct2b{fill:#faf5ff;stroke:#a855f7}.arch-node-shared.arch-node-rect.svelte-d3ct2b{fill:#f8fafc;stroke:#94a3b8}.arch-node-controllers.arch-node-rect.svelte-d3ct2b{fill:#eff6ff;stroke:#3b82f6}.arch-node-handlers.arch-node-rect.svelte-d3ct2b{fill:#faf5ff;stroke:#a855f7}.arch-node-services.arch-node-rect.svelte-d3ct2b{fill:#f0fdf4;stroke:#22c55e}.arch-node-repositories.arch-node-rect.svelte-d3ct2b{fill:#fff7ed;stroke:#f97316}.arch-node-modules.arch-node-rect.svelte-d3ct2b{fill:#eef2ff;stroke:#6366f1}.arch-node-common.arch-node-rect.svelte-d3ct2b{fill:#f8fafc;stroke:#94a3b8}.arch-node-models.arch-node-rect.svelte-d3ct2b{fill:#f0fdfa;stroke:#14b8a6}.arch-node-views.arch-node-rect.svelte-d3ct2b{fill:#fefce8;stroke:#eab308}.arch-node-pages.arch-node-rect.svelte-d3ct2b,.arch-node-screens.arch-node-rect.svelte-d3ct2b,.arch-node-routes.arch-node-rect.svelte-d3ct2b{fill:#eff6ff;stroke:#3b82f6}.arch-node-components.arch-node-rect.svelte-d3ct2b{fill:#fdf2f8;stroke:#ec4899}.arch-node-hooks.arch-node-rect.svelte-d3ct2b{fill:#f5f3ff;stroke:#8b5cf6}.arch-node-composables.arch-node-rect.svelte-d3ct2b{fill:#ecfeff;stroke:#06b6d4}.arch-node-store.arch-node-rect.svelte-d3ct2b,.arch-node-stores.arch-node-rect.svelte-d3ct2b{fill:#fffbeb;stroke:#f59e0b}.arch-node-lib.arch-node-rect.svelte-d3ct2b{fill:#f0fdfa;stroke:#14b8a6}.arch-node-utils.arch-node-rect.svelte-d3ct2b{fill:#f8fafc;stroke:#94a3b8}.arch-node-guards.arch-node-rect.svelte-d3ct2b{fill:#fff1f2;stroke:#f43f5e}.arch-node-server.arch-node-rect.svelte-d3ct2b{fill:#fff7ed;stroke:#f97316}.arch-node-ports.arch-node-rect.svelte-d3ct2b{fill:#ecfeff;stroke:#06b6d4}.arch-node-adapters.arch-node-rect.svelte-d3ct2b{fill:#f0fdfa;stroke:#14b8a6}html[data-theme=dark] .arch-node-domain.arch-node-rect.svelte-d3ct2b{fill:#1e3a5f;stroke:#3b82f6}html[data-theme=dark] .arch-node-application.arch-node-rect.svelte-d3ct2b{fill:#14352a;stroke:#22c55e}html[data-theme=dark] .arch-node-infrastructure.arch-node-rect.svelte-d3ct2b{fill:#3d2006;stroke:#f97316}html[data-theme=dark] .arch-node-api.arch-node-rect.svelte-d3ct2b{fill:#2e1a47;stroke:#a855f7}html[data-theme=dark] .arch-node-shared.arch-node-rect.svelte-d3ct2b{fill:#1e2535;stroke:#94a3b8}html[data-theme=dark] .arch-node-controllers.arch-node-rect.svelte-d3ct2b{fill:#1e3a5f;stroke:#3b82f6}html[data-theme=dark] .arch-node-handlers.arch-node-rect.svelte-d3ct2b{fill:#2e1a47;stroke:#a855f7}html[data-theme=dark] .arch-node-services.arch-node-rect.svelte-d3ct2b{fill:#14352a;stroke:#22c55e}html[data-theme=dark] .arch-node-repositories.arch-node-rect.svelte-d3ct2b{fill:#3d2006;stroke:#f97316}html[data-theme=dark] .arch-node-modules.arch-node-rect.svelte-d3ct2b{fill:#1e1b4b;stroke:#6366f1}html[data-theme=dark] .arch-node-common.arch-node-rect.svelte-d3ct2b{fill:#1e2535;stroke:#94a3b8}html[data-theme=dark] .arch-node-models.arch-node-rect.svelte-d3ct2b{fill:#0f2922;stroke:#14b8a6}html[data-theme=dark] .arch-node-views.arch-node-rect.svelte-d3ct2b{fill:#29240a;stroke:#eab308}html[data-theme=dark] .arch-node-pages.arch-node-rect.svelte-d3ct2b,html[data-theme=dark] .arch-node-screens.arch-node-rect.svelte-d3ct2b,html[data-theme=dark] .arch-node-routes.arch-node-rect.svelte-d3ct2b{fill:#1e3a5f;stroke:#3b82f6}html[data-theme=dark] .arch-node-components.arch-node-rect.svelte-d3ct2b{fill:#3d0e2e;stroke:#ec4899}html[data-theme=dark] .arch-node-hooks.arch-node-rect.svelte-d3ct2b{fill:#1e1547;stroke:#8b5cf6}html[data-theme=dark] .arch-node-composables.arch-node-rect.svelte-d3ct2b{fill:#042934;stroke:#06b6d4}html[data-theme=dark] .arch-node-store.arch-node-rect.svelte-d3ct2b,html[data-theme=dark] .arch-node-stores.arch-node-rect.svelte-d3ct2b{fill:#2d200a;stroke:#f59e0b}html[data-theme=dark] .arch-node-lib.arch-node-rect.svelte-d3ct2b{fill:#0f2922;stroke:#14b8a6}html[data-theme=dark] .arch-node-utils.arch-node-rect.svelte-d3ct2b{fill:#1e2535;stroke:#94a3b8}html[data-theme=dark] .arch-node-guards.arch-node-rect.svelte-d3ct2b{fill:#3d0a14;stroke:#f43f5e}html[data-theme=dark] .arch-node-server.arch-node-rect.svelte-d3ct2b{fill:#3d2006;stroke:#f97316}html[data-theme=dark] .arch-node-ports.arch-node-rect.svelte-d3ct2b{fill:#042934;stroke:#06b6d4}html[data-theme=dark] .arch-node-adapters.arch-node-rect.svelte-d3ct2b{fill:#0f2922;stroke:#14b8a6}.arch-node-label.svelte-d3ct2b{font-family:var(--mono);font-size:11px;font-weight:600;fill:var(--on-surface)}.arch-node-desc.svelte-d3ct2b{font-family:var(--sans);font-size:9px;fill:var(--outline)}.arch-node-clickable.svelte-d3ct2b{cursor:pointer}.arch-node-clickable.svelte-d3ct2b:hover .arch-node-rect:where(.svelte-d3ct2b){filter:brightness(.95)}html[data-theme=dark] .arch-node-clickable.svelte-d3ct2b:hover .arch-node-rect:where(.svelte-d3ct2b){filter:brightness(1.15)}.arch-node-panel.svelte-d3ct2b{border:1px solid var(--outline-var);border-radius:8px;background:var(--surface-low);padding:12px 16px;max-width:640px;display:flex;flex-direction:column;gap:10px}.arch-node-panel-header.svelte-d3ct2b{display:flex;align-items:center;gap:10px}.arch-node-panel-name.svelte-d3ct2b{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--on-surface)}.arch-node-panel-meta.svelte-d3ct2b{font-size:12px;color:var(--outline);flex:1}.arch-node-panel-close.svelte-d3ct2b{background:none;border:none;cursor:pointer;color:var(--outline);font-size:14px;padding:0;line-height:1}.arch-node-panel-close.svelte-d3ct2b:hover{color:var(--on-surface)}.arch-node-panel-paths.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px}.arch-node-panel-section.svelte-d3ct2b{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--outline);margin-bottom:2px}.arch-node-panel-path.svelte-d3ct2b{font-family:var(--mono);font-size:11px;color:var(--cyan, #22d3ee);background:var(--surface-mid);padding:3px 8px;border-radius:4px}.arch-node-panel-rule.svelte-d3ct2b{display:flex;align-items:center;gap:8px;font-size:12px}.arch-legend.svelte-d3ct2b{display:flex;gap:16px;align-items:center;font-size:11px;color:var(--outline)}.legend-item.svelte-d3ct2b{display:flex;align-items:center;gap:6px}.arch-rule-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px;max-width:640px}.arch-rule-row.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-low);border-radius:4px;border:1px solid var(--outline-var)}.tab-badge.svelte-d3ct2b{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;border-radius:8px;background:var(--error);color:#fff;font-size:10px;font-weight:700;margin-left:4px;vertical-align:middle}.history-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px;max-width:760px}.history-entry.svelte-d3ct2b{border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);overflow:hidden}.history-header.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--outline-var);background:var(--surface-mid)}.history-file.svelte-d3ct2b{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--cyan, #22d3ee)}.history-time.svelte-d3ct2b{font-size:11px;color:var(--outline)}.history-violation.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--outline-var);flex-wrap:wrap}.history-violation.svelte-d3ct2b:last-child{border-bottom:none}.history-badge.svelte-d3ct2b{flex-shrink:0;font-family:var(--mono);font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;background:var(--error-bg);color:var(--error);white-space:nowrap}.history-rule.svelte-d3ct2b{font-size:12px;font-weight:600;color:var(--on-surface)}.history-issue.svelte-d3ct2b{font-size:12px;color:var(--outline)}.arch-rule-badge.svelte-d3ct2b{font-size:10px;font-family:var(--mono);font-weight:700;padding:2px 6px;border-radius:3px}.badge-block.svelte-d3ct2b{background:var(--error-bg);color:var(--error)}.badge-warn.svelte-d3ct2b{background:#fef3c7;color:#92400e}.badge-allow.svelte-d3ct2b{background:var(--green-bg);color:var(--green)}.arch-rule-layers.svelte-d3ct2b{font-family:var(--mono);font-size:11px;color:var(--on-surface);white-space:nowrap}.arch-rule-name.svelte-d3ct2b{font-size:11px;color:var(--outline);flex:1}.arch-edit-btn.svelte-d3ct2b{padding:4px 10px;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--surface-mid);border:1px solid var(--outline-var);border-radius:4px;color:var(--on-surface-var);cursor:pointer;transition:background .15s,color .15s}.arch-edit-btn.svelte-d3ct2b:hover{background:var(--primary-container);color:var(--primary);border-color:var(--primary-dim)}.arch-edit-btn-active.svelte-d3ct2b{background:var(--primary-container)!important;color:var(--primary)!important;border-color:var(--primary-dim)!important}.arch-rule-del.svelte-d3ct2b{background:none;border:none;color:var(--outline);cursor:pointer;font-size:12px;padding:0 4px;line-height:1;transition:color .15s}.arch-rule-del.svelte-d3ct2b:hover{color:var(--error)}.arch-add-form.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px;background:var(--surface-low);border:1px solid var(--outline-var);border-radius:6px;padding:12px;max-width:640px}.arch-add-form-title.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--outline)}.arch-add-row.svelte-d3ct2b{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.arch-add-input.svelte-d3ct2b{height:30px;padding:0 8px;background:var(--surface);border:1px solid var(--outline-var);border-radius:4px;color:var(--on-surface);font-family:var(--mono);font-size:11px;outline:none;min-width:80px}.arch-add-input.svelte-d3ct2b:focus{border-color:var(--primary-dim)}.arch-add-select.svelte-d3ct2b{height:30px;padding:0 6px;background:var(--surface);border:1px solid var(--outline-var);border-radius:4px;color:var(--on-surface);font-family:var(--mono);font-size:11px;outline:none}.arch-add-submit.svelte-d3ct2b{height:30px;padding:0 12px;background:var(--primary);border:none;border-radius:4px;color:#fff;font-family:var(--mono);font-size:11px;font-weight:700;cursor:pointer;transition:background .15s}.arch-add-submit.svelte-d3ct2b:hover{background:var(--primary-dim)}.arch-add-submit.svelte-d3ct2b:disabled{opacity:.5;cursor:default}.arch-add-label.svelte-d3ct2b{font-size:10px;color:var(--outline);font-family:var(--mono)}.arch-add-field.svelte-d3ct2b{display:flex;flex-direction:column;gap:2px}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
8
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
9
|
<link href="https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
|
|
10
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
10
|
+
<script type="module" crossorigin src="/assets/index-Dfy_F0p7.js"></script>
|
|
11
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Dj1JZCh6.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body>
|
|
14
14
|
<div id="app"></div>
|
|
@@ -678,6 +678,88 @@ async function handleApi(req, res, url) {
|
|
|
678
678
|
sendJson(res, 200, { ok: true, message: "Tune started" });
|
|
679
679
|
return;
|
|
680
680
|
}
|
|
681
|
+
if (req.method === "POST" && url.pathname === "/api/arch/layers") {
|
|
682
|
+
const body = await readBody(req);
|
|
683
|
+
const name = typeof body.name === "string" ? body.name.trim() : "";
|
|
684
|
+
const description = typeof body.description === "string" ? body.description.trim() : "";
|
|
685
|
+
const paths = Array.isArray(body.paths) ? body.paths.map(String).filter(Boolean) : typeof body.paths === "string" ? body.paths.split(",").map((p) => p.trim()).filter(Boolean) : [];
|
|
686
|
+
if (!name) {
|
|
687
|
+
sendJson(res, 400, { error: "name is required" });
|
|
688
|
+
return;
|
|
689
|
+
}
|
|
690
|
+
const layersPath = join(projectRoot, ".archmind", "layers.json");
|
|
691
|
+
const config = readJsonFile(layersPath, { layers: [] });
|
|
692
|
+
const layers = Array.isArray(config.layers) ? config.layers : [];
|
|
693
|
+
if (layers.find((l) => l.name === name)) {
|
|
694
|
+
sendJson(res, 409, { error: `Layer "${name}" already exists` });
|
|
695
|
+
return;
|
|
696
|
+
}
|
|
697
|
+
layers.push({ name, paths, description });
|
|
698
|
+
mkdirSync(join(projectRoot, ".archmind"), { recursive: true });
|
|
699
|
+
writeFileSync(layersPath, JSON.stringify({ layers }, null, 2) + "\n", "utf-8");
|
|
700
|
+
readArchState();
|
|
701
|
+
scheduleSnapshotBroadcast();
|
|
702
|
+
sendJson(res, 201, { ok: true });
|
|
703
|
+
return;
|
|
704
|
+
}
|
|
705
|
+
const layerMatch = url.pathname.match(/^\/api\/arch\/layers\/([^/]+)$/);
|
|
706
|
+
if (layerMatch && req.method === "DELETE") {
|
|
707
|
+
const layerName = decodeURIComponent(layerMatch[1]);
|
|
708
|
+
const layersPath = join(projectRoot, ".archmind", "layers.json");
|
|
709
|
+
const config = readJsonFile(layersPath, { layers: [] });
|
|
710
|
+
const layers = Array.isArray(config.layers) ? config.layers : [];
|
|
711
|
+
const next = layers.filter((l) => l.name !== layerName);
|
|
712
|
+
if (next.length === layers.length) {
|
|
713
|
+
sendJson(res, 404, { error: `Layer "${layerName}" not found` });
|
|
714
|
+
return;
|
|
715
|
+
}
|
|
716
|
+
writeFileSync(layersPath, JSON.stringify({ layers: next }, null, 2) + "\n", "utf-8");
|
|
717
|
+
readArchState();
|
|
718
|
+
scheduleSnapshotBroadcast();
|
|
719
|
+
sendJson(res, 200, { ok: true });
|
|
720
|
+
return;
|
|
721
|
+
}
|
|
722
|
+
if (req.method === "POST" && url.pathname === "/api/arch/rules") {
|
|
723
|
+
const body = await readBody(req);
|
|
724
|
+
const id = typeof body.id === "string" ? body.id.trim() : `rule-${Date.now()}`;
|
|
725
|
+
const name = typeof body.name === "string" ? body.name.trim() : "";
|
|
726
|
+
const fromLayer = typeof body.fromLayer === "string" ? body.fromLayer.trim() : "";
|
|
727
|
+
const toLayer = typeof body.toLayer === "string" ? body.toLayer.trim() : "";
|
|
728
|
+
const allowed = body.allowed === true || body.allowed === "true";
|
|
729
|
+
const severity = typeof body.severity === "string" && body.severity.trim() ? body.severity.trim() : "error";
|
|
730
|
+
const enforcement = typeof body.enforcement === "string" && body.enforcement.trim() ? body.enforcement.trim() : "block";
|
|
731
|
+
if (!name || !fromLayer || !toLayer) {
|
|
732
|
+
sendJson(res, 400, { error: "name, fromLayer, toLayer are required" });
|
|
733
|
+
return;
|
|
734
|
+
}
|
|
735
|
+
const rulesPath = join(projectRoot, ".archmind", "rules.json");
|
|
736
|
+
const config = readJsonFile(rulesPath, { rules: [] });
|
|
737
|
+
const rules = Array.isArray(config.rules) ? config.rules : [];
|
|
738
|
+
rules.push({ id, name, fromLayer, toLayer, allowed, severity, enforcement });
|
|
739
|
+
mkdirSync(join(projectRoot, ".archmind"), { recursive: true });
|
|
740
|
+
writeFileSync(rulesPath, JSON.stringify({ rules }, null, 2) + "\n", "utf-8");
|
|
741
|
+
readArchState();
|
|
742
|
+
scheduleSnapshotBroadcast();
|
|
743
|
+
sendJson(res, 201, { ok: true });
|
|
744
|
+
return;
|
|
745
|
+
}
|
|
746
|
+
const ruleMatch = url.pathname.match(/^\/api\/arch\/rules\/([^/]+)$/);
|
|
747
|
+
if (ruleMatch && req.method === "DELETE") {
|
|
748
|
+
const ruleId = decodeURIComponent(ruleMatch[1]);
|
|
749
|
+
const rulesPath = join(projectRoot, ".archmind", "rules.json");
|
|
750
|
+
const config = readJsonFile(rulesPath, { rules: [] });
|
|
751
|
+
const rules = Array.isArray(config.rules) ? config.rules : [];
|
|
752
|
+
const next = rules.filter((r) => r.id !== ruleId);
|
|
753
|
+
if (next.length === rules.length) {
|
|
754
|
+
sendJson(res, 404, { error: `Rule "${ruleId}" not found` });
|
|
755
|
+
return;
|
|
756
|
+
}
|
|
757
|
+
writeFileSync(rulesPath, JSON.stringify({ rules: next }, null, 2) + "\n", "utf-8");
|
|
758
|
+
readArchState();
|
|
759
|
+
scheduleSnapshotBroadcast();
|
|
760
|
+
sendJson(res, 200, { ok: true });
|
|
761
|
+
return;
|
|
762
|
+
}
|
|
681
763
|
sendJson(res, 404, { error: "Not found" });
|
|
682
764
|
} catch (err) {
|
|
683
765
|
sendJson(res, 500, { error: err.message });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shahmilsaari/memory-core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.29",
|
|
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",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var To=Object.defineProperty;var Un=e=>{throw TypeError(e)};var Co=(e,t,r)=>t in e?To(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var kt=(e,t,r)=>Co(e,typeof t!="symbol"?t+"":t,r),na=(e,t,r)=>t.has(e)||Un("Cannot "+r);var v=(e,t,r)=>(na(e,t,"read from private field"),r?r.call(e):t.get(e)),V=(e,t,r)=>t.has(e)?Un("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),z=(e,t,r,a)=>(na(e,t,"write to private field"),a?a.call(e,r):t.set(e,r),r),ue=(e,t,r)=>(na(e,t,"access private method"),r);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))a(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const d of i.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&a(d)}).observe(document,{childList:!0,subtree:!0});function r(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function a(n){if(n.ep)return;n.ep=!0;const i=r(n);fetch(n.href,i)}})();const Oo=!1;var Ea=Array.isArray,Lo=Array.prototype.indexOf,Vs=Array.prototype.includes,Vr=Array.from,Ro=Object.defineProperty,nr=Object.getOwnPropertyDescriptor,cl=Object.getOwnPropertyDescriptors,No=Object.prototype,Io=Array.prototype,Sa=Object.getPrototypeOf,Kn=Object.isExtensible;const Do=()=>{};function Fo(e){return e()}function va(e){for(var t=0;t<e.length;t++)e[t]()}function vl(){var e,t,r=new Promise((a,n)=>{e=a,t=n});return{promise:r,resolve:e,reject:t}}const Ke=2,Us=4,mr=8,dl=1<<24,jt=16,Mt=32,ds=64,da=128,bt=512,Oe=1024,We=2048,At=4096,Ge=8192,mt=16384,Ls=32768,qn=1<<25,Ks=65536,fa=1<<17,$o=1<<18,Gs=1<<19,fl=1<<20,Pt=1<<25,As=65536,Pr=1<<21,cr=1<<22,cs=1<<23,xs=Symbol("$state"),Po=Symbol(""),qt=new class extends Error{constructor(){super(...arguments);kt(this,"name","StaleReactionError");kt(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function jo(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ho(e,t,r){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Bo(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Wo(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Vo(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Uo(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ko(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function qo(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function zo(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Yo(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Go=1,Xo=2,ul=4,Jo=8,Qo=16,Zo=1,ec=2,Fe=Symbol(),pl="http://www.w3.org/1999/xhtml";function tc(){console.warn("https://svelte.dev/e/derived_inert")}function sc(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function rc(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function hl(e){return e===this.v}function ac(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function _l(e){return!ac(e,this.v)}let Ur=!1,nc=!1;function lc(){Ur=!0}let Le=null;function qs(e){Le=e}function bl(e,t=!1,r){Le={p:Le,i:!1,c:null,e:null,s:e,x:null,r:G,l:Ur&&!t?{s:null,u:null,$:[]}:null}}function ml(e){var t=Le,r=t.e;if(r!==null){t.e=null;for(var a of r)Pl(a)}return t.i=!0,Le=t.p,{}}function gr(){return!Ur||Le!==null&&Le.l===null}let _s=[];function gl(){var e=_s;_s=[],va(e)}function vs(e){if(_s.length===0&&!lr){var t=_s;queueMicrotask(()=>{t===_s&&gl()})}_s.push(e)}function ic(){for(;_s.length>0;)gl()}function yl(e){var t=G;if(t===null)return X.f|=cs,e;if(!(t.f&Ls)&&!(t.f&Us))throw e;os(e,t)}function os(e,t){for(;t!==null;){if(t.f&da){if(!(t.f&Ls))throw e;try{t.b.error(e);return}catch(r){e=r}}t=t.parent}throw e}const oc=-7169;function we(e,t){e.f=e.f&oc|t}function Ma(e){e.f&bt||e.deps===null?we(e,Oe):we(e,At)}function wl(e){if(e!==null)for(const t of e)!(t.f&Ke)||!(t.f&As)||(t.f^=As,wl(t.deps))}function kl(e,t,r){e.f&We?t.add(e):e.f&At&&r.add(e),wl(e.deps),we(e,Oe)}const hs=new Set;let L=null,Be=null,ua=null,lr=!1,la=!1,Fs=null,Or=null;var zn=0;let cc=1;var Ps,js,ms,zt,Dt,fr,nt,ur,ls,Yt,Ft,Hs,Bs,gs,Re,Lr,xl,Rr,pa,Nr,vc;const Hr=class Hr{constructor(){V(this,Re);kt(this,"id",cc++);kt(this,"current",new Map);kt(this,"previous",new Map);V(this,Ps,new Set);V(this,js,new Set);V(this,ms,new Set);V(this,zt,new Map);V(this,Dt,new Map);V(this,fr,null);V(this,nt,[]);V(this,ur,[]);V(this,ls,new Set);V(this,Yt,new Set);V(this,Ft,new Map);V(this,Hs,new Set);kt(this,"is_fork",!1);V(this,Bs,!1);V(this,gs,new Set)}skip_effect(t){v(this,Ft).has(t)||v(this,Ft).set(t,{d:[],m:[]}),v(this,Hs).delete(t)}unskip_effect(t,r=a=>this.schedule(a)){var a=v(this,Ft).get(t);if(a){v(this,Ft).delete(t);for(var n of a.d)we(n,We),r(n);for(n of a.m)we(n,At),r(n)}v(this,Hs).add(t)}capture(t,r,a=!1){t.v!==Fe&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&cs||(this.current.set(t,[r,a]),Be==null||Be.set(t,r)),this.is_fork||(t.v=r)}activate(){L=this}deactivate(){L=null,Be=null}flush(){try{la=!0,L=this,ue(this,Re,Rr).call(this)}finally{zn=0,ua=null,Fs=null,Or=null,la=!1,L=null,Be=null,Es.clear()}}discard(){for(const t of v(this,js))t(this);v(this,js).clear(),v(this,ms).clear(),hs.delete(this)}register_created_effect(t){v(this,ur).push(t)}increment(t,r){let a=v(this,zt).get(r)??0;if(v(this,zt).set(r,a+1),t){let n=v(this,Dt).get(r)??0;v(this,Dt).set(r,n+1)}}decrement(t,r,a){let n=v(this,zt).get(r)??0;if(n===1?v(this,zt).delete(r):v(this,zt).set(r,n-1),t){let i=v(this,Dt).get(r)??0;i===1?v(this,Dt).delete(r):v(this,Dt).set(r,i-1)}v(this,Bs)||a||(z(this,Bs,!0),vs(()=>{z(this,Bs,!1),this.flush()}))}transfer_effects(t,r){for(const a of t)v(this,ls).add(a);for(const a of r)v(this,Yt).add(a);t.clear(),r.clear()}oncommit(t){v(this,Ps).add(t)}ondiscard(t){v(this,js).add(t)}on_fork_commit(t){v(this,ms).add(t)}run_fork_commit_callbacks(){for(const t of v(this,ms))t(this);v(this,ms).clear()}settled(){return(v(this,fr)??z(this,fr,vl())).promise}static ensure(){if(L===null){const t=L=new Hr;la||(hs.add(L),lr||vs(()=>{L===t&&t.flush()}))}return L}apply(){{Be=null;return}}schedule(t){var n;if(ua=t,(n=t.b)!=null&&n.is_pending&&t.f&(Us|mr|dl)&&!(t.f&Ls)){t.b.defer_effect(t);return}for(var r=t;r.parent!==null;){r=r.parent;var a=r.f;if(Fs!==null&&r===G&&(X===null||!(X.f&Ke)))return;if(a&(ds|Mt)){if(!(a&Oe))return;r.f^=Oe}}v(this,nt).push(r)}};Ps=new WeakMap,js=new WeakMap,ms=new WeakMap,zt=new WeakMap,Dt=new WeakMap,fr=new WeakMap,nt=new WeakMap,ur=new WeakMap,ls=new WeakMap,Yt=new WeakMap,Ft=new WeakMap,Hs=new WeakMap,Bs=new WeakMap,gs=new WeakMap,Re=new WeakSet,Lr=function(){return this.is_fork||v(this,Dt).size>0},xl=function(){for(const a of v(this,gs))for(const n of v(a,Dt).keys()){for(var t=!1,r=n;r.parent!==null;){if(v(this,Ft).has(r)){t=!0;break}r=r.parent}if(!t)return!0}return!1},Rr=function(){var u,f;if(zn++>1e3&&(hs.delete(this),fc()),!ue(this,Re,Lr).call(this)){for(const p of v(this,ls))v(this,Yt).delete(p),we(p,We),this.schedule(p);for(const p of v(this,Yt))we(p,At),this.schedule(p)}const t=v(this,nt);z(this,nt,[]),this.apply();var r=Fs=[],a=[],n=Or=[];for(const p of t)try{ue(this,Re,pa).call(this,p,r,a)}catch(m){throw Ml(p),m}if(L=null,n.length>0){var i=Hr.ensure();for(const p of n)i.schedule(p)}if(Fs=null,Or=null,ue(this,Re,Lr).call(this)||ue(this,Re,xl).call(this)){ue(this,Re,Nr).call(this,a),ue(this,Re,Nr).call(this,r);for(const[p,m]of v(this,Ft))Sl(p,m)}else{v(this,zt).size===0&&hs.delete(this),v(this,ls).clear(),v(this,Yt).clear();for(const p of v(this,Ps))p(this);v(this,Ps).clear(),Yn(a),Yn(r),(u=v(this,fr))==null||u.resolve()}var d=L;if(v(this,nt).length>0){const p=d??(d=this);v(p,nt).push(...v(this,nt).filter(m=>!v(p,nt).includes(m)))}d!==null&&(hs.add(d),ue(f=d,Re,Rr).call(f))},pa=function(t,r,a){t.f^=Oe;for(var n=t.first;n!==null;){var i=n.f,d=(i&(Mt|ds))!==0,u=d&&(i&Oe)!==0,f=u||(i&Ge)!==0||v(this,Ft).has(n);if(!f&&n.fn!==null){d?n.f^=Oe:i&Us?r.push(n):Xs(n)&&(i&jt&&v(this,Yt).add(n),Os(n));var p=n.first;if(p!==null){n=p;continue}}for(;n!==null;){var m=n.next;if(m!==null){n=m;break}n=n.parent}}},Nr=function(t){for(var r=0;r<t.length;r+=1)kl(t[r],v(this,ls),v(this,Yt))},vc=function(){var m,C,k;for(const E of hs){var t=E.id<this.id,r=[];for(const[y,[D,S]]of this.current){if(E.current.has(y)){var a=E.current.get(y)[0];if(t&&D!==a)E.current.set(y,[D,S]);else continue}r.push(y)}var n=[...E.current.keys()].filter(y=>!this.current.has(y));if(n.length===0)t&&E.discard();else if(r.length>0){if(t)for(const y of v(this,Hs))E.unskip_effect(y,D=>{var S;D.f&(jt|cr)?E.schedule(D):ue(S=E,Re,Nr).call(S,[D])});E.activate();var i=new Set,d=new Map;for(var u of r)El(u,n,i,d);d=new Map;var f=[...E.current.keys()].filter(y=>this.current.has(y)?this.current.get(y)[0]!==y:!0);for(const y of v(this,ur))!(y.f&(mt|Ge|fa))&&Aa(y,f,d)&&(y.f&(cr|jt)?(we(y,We),E.schedule(y)):v(E,ls).add(y));if(v(E,nt).length>0){E.apply();for(var p of v(E,nt))ue(m=E,Re,pa).call(m,p,[],[]);z(E,nt,[])}E.deactivate()}}for(const E of hs)v(E,gs).has(this)&&(v(E,gs).delete(this),v(E,gs).size===0&&!ue(C=E,Re,Lr).call(C)&&(E.activate(),ue(k=E,Re,Rr).call(k)))};let Ts=Hr;function dc(e){var t=lr;lr=!0;try{for(var r;;){if(ic(),L===null)return r;L.flush()}}finally{lr=t}}function fc(){try{Uo()}catch(e){os(e,ua)}}let xt=null;function Yn(e){var t=e.length;if(t!==0){for(var r=0;r<t;){var a=e[r++];if(!(a.f&(mt|Ge))&&Xs(a)&&(xt=new Set,Os(a),a.deps===null&&a.first===null&&a.nodes===null&&a.teardown===null&&a.ac===null&&Hl(a),(xt==null?void 0:xt.size)>0)){Es.clear();for(const n of xt){if(n.f&(mt|Ge))continue;const i=[n];let d=n.parent;for(;d!==null;)xt.has(d)&&(xt.delete(d),i.push(d)),d=d.parent;for(let u=i.length-1;u>=0;u--){const f=i[u];f.f&(mt|Ge)||Os(f)}}xt.clear()}}xt=null}}function El(e,t,r,a){if(!r.has(e)&&(r.add(e),e.reactions!==null))for(const n of e.reactions){const i=n.f;i&Ke?El(n,t,r,a):i&(cr|jt)&&!(i&We)&&Aa(n,t,a)&&(we(n,We),Ta(n))}}function Aa(e,t,r){const a=r.get(e);if(a!==void 0)return a;if(e.deps!==null)for(const n of e.deps){if(Vs.call(t,n))return!0;if(n.f&Ke&&Aa(n,t,r))return r.set(n,!0),!0}return r.set(e,!1),!1}function Ta(e){L.schedule(e)}function Sl(e,t){if(!(e.f&Mt&&e.f&Oe)){e.f&We?t.d.push(e):e.f&At&&t.m.push(e),we(e,Oe);for(var r=e.first;r!==null;)Sl(r,t),r=r.next}}function Ml(e){we(e,Oe);for(var t=e.first;t!==null;)Ml(t),t=t.next}function uc(e){let t=0,r=Cs(0),a;return()=>{La()&&(s(r),qr(()=>(t===0&&(a=h(()=>e(()=>ir(r)))),t+=1,()=>{vs(()=>{t-=1,t===0&&(a==null||a(),a=void 0,ir(r))})})))}}var pc=Ks|Gs;function hc(e,t,r,a){new _c(e,t,r,a)}var ut,xa,pt,ys,Ze,ht,Ye,lt,Gt,ws,is,Ws,pr,hr,Xt,Br,ke,bc,mc,gc,ha,Ir,Dr,_a,ba;class _c{constructor(t,r,a,n){V(this,ke);kt(this,"parent");kt(this,"is_pending",!1);kt(this,"transform_error");V(this,ut);V(this,xa,null);V(this,pt);V(this,ys);V(this,Ze);V(this,ht,null);V(this,Ye,null);V(this,lt,null);V(this,Gt,null);V(this,ws,0);V(this,is,0);V(this,Ws,!1);V(this,pr,new Set);V(this,hr,new Set);V(this,Xt,null);V(this,Br,uc(()=>(z(this,Xt,Cs(v(this,ws))),()=>{z(this,Xt,null)})));var i;z(this,ut,t),z(this,pt,r),z(this,ys,d=>{var u=G;u.b=this,u.f|=da,a(d)}),this.parent=G.b,this.transform_error=n??((i=this.parent)==null?void 0:i.transform_error)??(d=>d),z(this,Ze,Na(()=>{ue(this,ke,ha).call(this)},pc))}defer_effect(t){kl(t,v(this,pr),v(this,hr))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!v(this,pt).pending}update_pending_count(t,r){ue(this,ke,_a).call(this,t,r),z(this,ws,v(this,ws)+t),!(!v(this,Xt)||v(this,Ws))&&(z(this,Ws,!0),vs(()=>{z(this,Ws,!1),v(this,Xt)&&zs(v(this,Xt),v(this,ws))}))}get_effect_pending(){return v(this,Br).call(this),s(v(this,Xt))}error(t){if(!v(this,pt).onerror&&!v(this,pt).failed)throw t;L!=null&&L.is_fork?(v(this,ht)&&L.skip_effect(v(this,ht)),v(this,Ye)&&L.skip_effect(v(this,Ye)),v(this,lt)&&L.skip_effect(v(this,lt)),L.on_fork_commit(()=>{ue(this,ke,ba).call(this,t)})):ue(this,ke,ba).call(this,t)}}ut=new WeakMap,xa=new WeakMap,pt=new WeakMap,ys=new WeakMap,Ze=new WeakMap,ht=new WeakMap,Ye=new WeakMap,lt=new WeakMap,Gt=new WeakMap,ws=new WeakMap,is=new WeakMap,Ws=new WeakMap,pr=new WeakMap,hr=new WeakMap,Xt=new WeakMap,Br=new WeakMap,ke=new WeakSet,bc=function(){try{z(this,ht,_t(()=>v(this,ys).call(this,v(this,ut))))}catch(t){this.error(t)}},mc=function(t){const r=v(this,pt).failed;r&&z(this,lt,_t(()=>{r(v(this,ut),()=>t,()=>()=>{})}))},gc=function(){const t=v(this,pt).pending;t&&(this.is_pending=!0,z(this,Ye,_t(()=>t(v(this,ut)))),vs(()=>{var r=z(this,Gt,document.createDocumentFragment()),a=Jt();r.append(a),z(this,ht,ue(this,ke,Dr).call(this,()=>_t(()=>v(this,ys).call(this,a)))),v(this,is)===0&&(v(this,ut).before(r),z(this,Gt,null),Ss(v(this,Ye),()=>{z(this,Ye,null)}),ue(this,ke,Ir).call(this,L))}))},ha=function(){try{if(this.is_pending=this.has_pending_snippet(),z(this,is,0),z(this,ws,0),z(this,ht,_t(()=>{v(this,ys).call(this,v(this,ut))})),v(this,is)>0){var t=z(this,Gt,document.createDocumentFragment());Fa(v(this,ht),t);const r=v(this,pt).pending;z(this,Ye,_t(()=>r(v(this,ut))))}else ue(this,ke,Ir).call(this,L)}catch(r){this.error(r)}},Ir=function(t){this.is_pending=!1,t.transfer_effects(v(this,pr),v(this,hr))},Dr=function(t){var r=G,a=X,n=Le;wt(v(this,Ze)),yt(v(this,Ze)),qs(v(this,Ze).ctx);try{return Ts.ensure(),t()}catch(i){return yl(i),null}finally{wt(r),yt(a),qs(n)}},_a=function(t,r){var a;if(!this.has_pending_snippet()){this.parent&&ue(a=this.parent,ke,_a).call(a,t,r);return}z(this,is,v(this,is)+t),v(this,is)===0&&(ue(this,ke,Ir).call(this,r),v(this,Ye)&&Ss(v(this,Ye),()=>{z(this,Ye,null)}),v(this,Gt)&&(v(this,ut).before(v(this,Gt)),z(this,Gt,null)))},ba=function(t){v(this,ht)&&(tt(v(this,ht)),z(this,ht,null)),v(this,Ye)&&(tt(v(this,Ye)),z(this,Ye,null)),v(this,lt)&&(tt(v(this,lt)),z(this,lt,null));var r=v(this,pt).onerror;let a=v(this,pt).failed;var n=!1,i=!1;const d=()=>{if(n){rc();return}n=!0,i&&Yo(),v(this,lt)!==null&&Ss(v(this,lt),()=>{z(this,lt,null)}),ue(this,ke,Dr).call(this,()=>{ue(this,ke,ha).call(this)})},u=f=>{try{i=!0,r==null||r(f,d),i=!1}catch(p){os(p,v(this,Ze)&&v(this,Ze).parent)}a&&z(this,lt,ue(this,ke,Dr).call(this,()=>{try{return _t(()=>{var p=G;p.b=this,p.f|=da,a(v(this,ut),()=>f,()=>d)})}catch(p){return os(p,v(this,Ze).parent),null}}))};vs(()=>{var f;try{f=this.transform_error(t)}catch(p){os(p,v(this,Ze)&&v(this,Ze).parent);return}f!==null&&typeof f=="object"&&typeof f.then=="function"?f.then(u,p=>os(p,v(this,Ze)&&v(this,Ze).parent)):u(f)})};function yc(e,t,r,a){const n=gr()?Ca:$s;var i=e.filter(k=>!k.settled);if(r.length===0&&i.length===0){a(t.map(n));return}var d=G,u=wc(),f=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(k=>k.promise)):null;function p(k){u();try{a(k)}catch(E){d.f&mt||os(E,d)}jr()}if(r.length===0){f.then(()=>p(t.map(n)));return}var m=Al();function C(){Promise.all(r.map(k=>kc(k))).then(k=>p([...t.map(n),...k])).catch(k=>os(k,d)).finally(()=>m())}f?f.then(()=>{u(),C(),jr()}):C()}function wc(){var e=G,t=X,r=Le,a=L;return function(i=!0){wt(e),yt(t),qs(r),i&&!(e.f&mt)&&(a==null||a.activate(),a==null||a.apply())}}function jr(e=!0){wt(null),yt(null),qs(null),e&&(L==null||L.deactivate())}function Al(){var e=G,t=e.b,r=L,a=t.is_rendered();return t.update_pending_count(1,r),r.increment(a,e),(n=!1)=>{t.update_pending_count(-1,r),r.decrement(a,e,n)}}function Ca(e){var t=Ke|We;return G!==null&&(G.f|=Gs),{ctx:Le,deps:null,effects:null,equals:hl,f:t,fn:e,reactions:null,rv:0,v:Fe,wv:0,parent:G,ac:null}}function kc(e,t,r){let a=G;a===null&&jo();var n=void 0,i=Cs(Fe),d=!X,u=new Map;return Fc(()=>{var E;var f=G,p=vl();n=p.promise;try{Promise.resolve(e()).then(p.resolve,p.reject).finally(jr)}catch(y){p.reject(y),jr()}var m=L;if(d){if(f.f&Ls)var C=Al();if(a.b.is_rendered())(E=u.get(m))==null||E.reject(qt),u.delete(m);else{for(const y of u.values())y.reject(qt);u.clear()}u.set(m,p)}const k=(y,D=void 0)=>{if(C){var S=D===qt;C(S)}if(!(D===qt||f.f&mt)){if(m.activate(),D)i.f|=cs,zs(i,D);else{i.f&cs&&(i.f^=cs),zs(i,y);for(const[I,ae]of u){if(u.delete(I),I===m)break;ae.reject(qt)}}m.deactivate()}};p.promise.then(k,y=>k(null,y||"unknown"))}),Ra(()=>{for(const f of u.values())f.reject(qt)}),new Promise(f=>{function p(m){function C(){m===n?f(i):p(n)}m.then(C,C)}p(n)})}function $s(e){const t=Ca(e);return t.equals=_l,t}function xc(e){var t=e.effects;if(t!==null){e.effects=null;for(var r=0;r<t.length;r+=1)tt(t[r])}}function Oa(e){var t,r=G,a=e.parent;if(!fs&&a!==null&&a.f&(mt|Ge))return tc(),e.v;wt(a);try{e.f&=~As,xc(e),t=ql(e)}finally{wt(r)}return t}function Tl(e){var t=Oa(e);if(!e.equals(t)&&(e.wv=Ul(),(!(L!=null&&L.is_fork)||e.deps===null)&&(L!==null?L.capture(e,t,!0):e.v=t,e.deps===null))){we(e,Oe);return}fs||(Be!==null?(La()||L!=null&&L.is_fork)&&Be.set(e,t):Ma(e))}function Ec(e){var t,r;if(e.effects!==null)for(const a of e.effects)(a.teardown||a.ac)&&((t=a.teardown)==null||t.call(a),(r=a.ac)==null||r.abort(qt),a.teardown=Do,a.ac=null,vr(a,0),Ia(a))}function Cl(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Os(t)}let ma=new Set;const Es=new Map;let Ol=!1;function Cs(e,t){var r={f:0,v:e,reactions:null,equals:hl,rv:0,wv:0};return r}function rs(e,t){const r=Cs(e);return jc(r),r}function B(e,t=!1,r=!0){var n;const a=Cs(e);return t||(a.equals=_l),Ur&&r&&Le!==null&&Le.l!==null&&((n=Le.l).s??(n.s=[])).push(a),a}function Nt(e,t){return w(e,h(()=>s(e))),t}function w(e,t,r=!1){X!==null&&(!St||X.f&fa)&&gr()&&X.f&(Ke|jt|cr|fa)&&(gt===null||!Vs.call(gt,e))&&zo();let a=r?rr(t):t;return zs(e,a,Or)}function zs(e,t,r=null){if(!e.equals(t)){Es.set(e,fs?t:e.v);var a=Ts.ensure();if(a.capture(e,t),e.f&Ke){const n=e;e.f&We&&Oa(n),Be===null&&Ma(n)}e.wv=Ul(),Ll(e,We,r),gr()&&G!==null&&G.f&Oe&&!(G.f&(Mt|ds))&&(ft===null?Hc([e]):ft.push(e)),!a.is_fork&&ma.size>0&&!Ol&&Sc()}return t}function Sc(){Ol=!1;for(const e of ma)e.f&Oe&&we(e,At),Xs(e)&&Os(e);ma.clear()}function ir(e){w(e,e.v+1)}function Ll(e,t,r){var a=e.reactions;if(a!==null)for(var n=gr(),i=a.length,d=0;d<i;d++){var u=a[d],f=u.f;if(!(!n&&u===G)){var p=(f&We)===0;if(p&&we(u,t),f&Ke){var m=u;Be==null||Be.delete(m),f&As||(f&bt&&(G===null||!(G.f&Pr))&&(u.f|=As),Ll(m,At,r))}else if(p){var C=u;f&jt&&xt!==null&&xt.add(C),r!==null?r.push(C):Ta(C)}}}}function rr(e){if(typeof e!="object"||e===null||xs in e)return e;const t=Sa(e);if(t!==No&&t!==Io)return e;var r=new Map,a=Ea(e),n=rs(0),i=Ms,d=u=>{if(Ms===i)return u();var f=X,p=Ms;yt(null),Zn(i);var m=u();return yt(f),Zn(p),m};return a&&r.set("length",rs(e.length)),new Proxy(e,{defineProperty(u,f,p){(!("value"in p)||p.configurable===!1||p.enumerable===!1||p.writable===!1)&&Ko();var m=r.get(f);return m===void 0?d(()=>{var C=rs(p.value);return r.set(f,C),C}):w(m,p.value,!0),!0},deleteProperty(u,f){var p=r.get(f);if(p===void 0){if(f in u){const m=d(()=>rs(Fe));r.set(f,m),ir(n)}}else w(p,Fe),ir(n);return!0},get(u,f,p){var E;if(f===xs)return e;var m=r.get(f),C=f in u;if(m===void 0&&(!C||(E=nr(u,f))!=null&&E.writable)&&(m=d(()=>{var y=rr(C?u[f]:Fe),D=rs(y);return D}),r.set(f,m)),m!==void 0){var k=s(m);return k===Fe?void 0:k}return Reflect.get(u,f,p)},getOwnPropertyDescriptor(u,f){var p=Reflect.getOwnPropertyDescriptor(u,f);if(p&&"value"in p){var m=r.get(f);m&&(p.value=s(m))}else if(p===void 0){var C=r.get(f),k=C==null?void 0:C.v;if(C!==void 0&&k!==Fe)return{enumerable:!0,configurable:!0,value:k,writable:!0}}return p},has(u,f){var k;if(f===xs)return!0;var p=r.get(f),m=p!==void 0&&p.v!==Fe||Reflect.has(u,f);if(p!==void 0||G!==null&&(!m||(k=nr(u,f))!=null&&k.writable)){p===void 0&&(p=d(()=>{var E=m?rr(u[f]):Fe,y=rs(E);return y}),r.set(f,p));var C=s(p);if(C===Fe)return!1}return m},set(u,f,p,m){var ie;var C=r.get(f),k=f in u;if(a&&f==="length")for(var E=p;E<C.v;E+=1){var y=r.get(E+"");y!==void 0?w(y,Fe):E in u&&(y=d(()=>rs(Fe)),r.set(E+"",y))}if(C===void 0)(!k||(ie=nr(u,f))!=null&&ie.writable)&&(C=d(()=>rs(void 0)),w(C,rr(p)),r.set(f,C));else{k=C.v!==Fe;var D=d(()=>rr(p));w(C,D)}var S=Reflect.getOwnPropertyDescriptor(u,f);if(S!=null&&S.set&&S.set.call(m,p),!k){if(a&&typeof f=="string"){var I=r.get("length"),ae=Number(f);Number.isInteger(ae)&&ae>=I.v&&w(I,ae+1)}ir(n)}return!0},ownKeys(u){s(n);var f=Reflect.ownKeys(u).filter(C=>{var k=r.get(C);return k===void 0||k.v!==Fe});for(var[p,m]of r)m.v!==Fe&&!(p in u)&&f.push(p);return f},setPrototypeOf(){qo()}})}function Gn(e){try{if(e!==null&&typeof e=="object"&&xs in e)return e[xs]}catch{}return e}function Mc(e,t){return Object.is(Gn(e),Gn(t))}var ga,Rl,Nl,Il;function Ac(){if(ga===void 0){ga=window,Rl=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,r=Text.prototype;Nl=nr(t,"firstChild").get,Il=nr(t,"nextSibling").get,Kn(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Kn(r)&&(r.__t=void 0)}}function Jt(e=""){return document.createTextNode(e)}function Ys(e){return Nl.call(e)}function yr(e){return Il.call(e)}function o(e,t){return Ys(e)}function Ue(e,t=!1){{var r=Ys(e);return r instanceof Comment&&r.data===""?yr(r):r}}function c(e,t=1,r=!1){let a=e;for(;t--;)a=yr(a);return a}function Tc(e){e.textContent=""}function Dl(){return!1}function Cc(e,t,r){return document.createElementNS(pl,e,void 0)}let Xn=!1;function Oc(){Xn||(Xn=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var t;if(!e.defaultPrevented)for(const r of e.target.elements)(t=r.__on_r)==null||t.call(r)})},{capture:!0}))}function Kr(e){var t=X,r=G;yt(null),wt(null);try{return e()}finally{yt(t),wt(r)}}function Fl(e,t,r,a=r){e.addEventListener(t,()=>Kr(r));const n=e.__on_r;n?e.__on_r=()=>{n(),a(!0)}:e.__on_r=()=>a(!0),Oc()}function $l(e){G===null&&(X===null&&Vo(),Wo()),fs&&Bo()}function Lc(e,t){var r=t.last;r===null?t.last=t.first=e:(r.next=e,e.prev=r,t.last=e)}function Ht(e,t){var r=G;r!==null&&r.f&Ge&&(e|=Ge);var a={ctx:Le,deps:null,nodes:null,f:e|We|bt,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};L==null||L.register_created_effect(a);var n=a;if(e&Us)Fs!==null?Fs.push(a):Ts.ensure().schedule(a);else if(t!==null){try{Os(a)}catch(d){throw tt(a),d}n.deps===null&&n.teardown===null&&n.nodes===null&&n.first===n.last&&!(n.f&Gs)&&(n=n.first,e&jt&&e&Ks&&n!==null&&(n.f|=Ks))}if(n!==null&&(n.parent=r,r!==null&&Lc(n,r),X!==null&&X.f&Ke&&!(e&ds))){var i=X;(i.effects??(i.effects=[])).push(n)}return a}function La(){return X!==null&&!St}function Ra(e){const t=Ht(mr,null);return we(t,Oe),t.teardown=e,t}function Jn(e){$l();var t=G.f,r=!X&&(t&Mt)!==0&&(t&Ls)===0;if(r){var a=Le;(a.e??(a.e=[])).push(e)}else return Pl(e)}function Pl(e){return Ht(Us|fl,e)}function Rc(e){return $l(),Ht(mr|fl,e)}function Nc(e){Ts.ensure();const t=Ht(ds|Gs,e);return(r={})=>new Promise(a=>{r.outro?Ss(t,()=>{tt(t),a(void 0)}):(tt(t),a(void 0))})}function Ic(e){return Ht(Us,e)}function Ee(e,t){var r=Le,a={effect:null,ran:!1,deps:e};r.l.$.push(a),a.effect=qr(()=>{if(e(),!a.ran){a.ran=!0;var n=G;try{wt(n.parent),h(t)}finally{wt(n)}}})}function Dc(){var e=Le;qr(()=>{for(var t of e.l.$){t.deps();var r=t.effect;r.f&Oe&&r.deps!==null&&we(r,At),Xs(r)&&Os(r),t.ran=!1}})}function Fc(e){return Ht(cr|Gs,e)}function qr(e,t=0){return Ht(mr|t,e)}function W(e,t=[],r=[],a=[]){yc(a,t,r,n=>{Ht(mr,()=>e(...n.map(s)))})}function Na(e,t=0){var r=Ht(jt|t,e);return r}function _t(e){return Ht(Mt|Gs,e)}function jl(e){var t=e.teardown;if(t!==null){const r=fs,a=X;Qn(!0),yt(null);try{t.call(null)}finally{Qn(r),yt(a)}}}function Ia(e,t=!1){var r=e.first;for(e.first=e.last=null;r!==null;){const n=r.ac;n!==null&&Kr(()=>{n.abort(qt)});var a=r.next;r.f&ds?r.parent=null:tt(r,t),r=a}}function $c(e){for(var t=e.first;t!==null;){var r=t.next;t.f&Mt||tt(t),t=r}}function tt(e,t=!0){var r=!1;(t||e.f&$o)&&e.nodes!==null&&e.nodes.end!==null&&(Pc(e.nodes.start,e.nodes.end),r=!0),we(e,qn),Ia(e,t&&!r),vr(e,0);var a=e.nodes&&e.nodes.t;if(a!==null)for(const i of a)i.stop();jl(e),e.f^=qn,e.f|=mt;var n=e.parent;n!==null&&n.first!==null&&Hl(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Pc(e,t){for(;e!==null;){var r=e===t?null:yr(e);e.remove(),e=r}}function Hl(e){var t=e.parent,r=e.prev,a=e.next;r!==null&&(r.next=a),a!==null&&(a.prev=r),t!==null&&(t.first===e&&(t.first=a),t.last===e&&(t.last=r))}function Ss(e,t,r=!0){var a=[];Bl(e,a,!0);var n=()=>{r&&tt(e),t&&t()},i=a.length;if(i>0){var d=()=>--i||n();for(var u of a)u.out(d)}else n()}function Bl(e,t,r){if(!(e.f&Ge)){e.f^=Ge;var a=e.nodes&&e.nodes.t;if(a!==null)for(const u of a)(u.is_global||r)&&t.push(u);for(var n=e.first;n!==null;){var i=n.next;if(!(n.f&ds)){var d=(n.f&Ks)!==0||(n.f&Mt)!==0&&(e.f&jt)!==0;Bl(n,t,d?r:!1)}n=i}}}function Da(e){Wl(e,!0)}function Wl(e,t){if(e.f&Ge){e.f^=Ge,e.f&Oe||(we(e,We),Ts.ensure().schedule(e));for(var r=e.first;r!==null;){var a=r.next,n=(r.f&Ks)!==0||(r.f&Mt)!==0;Wl(r,n?t:!1),r=a}var i=e.nodes&&e.nodes.t;if(i!==null)for(const d of i)(d.is_global||t)&&d.in()}}function Fa(e,t){if(e.nodes)for(var r=e.nodes.start,a=e.nodes.end;r!==null;){var n=r===a?null:yr(r);t.append(r),r=n}}let Fr=!1,fs=!1;function Qn(e){fs=e}let X=null,St=!1;function yt(e){X=e}let G=null;function wt(e){G=e}let gt=null;function jc(e){X!==null&&(gt===null?gt=[e]:gt.push(e))}let et=null,at=0,ft=null;function Hc(e){ft=e}let Vl=1,bs=0,Ms=bs;function Zn(e){Ms=e}function Ul(){return++Vl}function Xs(e){var t=e.f;if(t&We)return!0;if(t&Ke&&(e.f&=~As),t&At){for(var r=e.deps,a=r.length,n=0;n<a;n++){var i=r[n];if(Xs(i)&&Tl(i),i.wv>e.wv)return!0}t&bt&&Be===null&&we(e,Oe)}return!1}function Kl(e,t,r=!0){var a=e.reactions;if(a!==null&&!(gt!==null&&Vs.call(gt,e)))for(var n=0;n<a.length;n++){var i=a[n];i.f&Ke?Kl(i,t,!1):t===i&&(r?we(i,We):i.f&Oe&&we(i,At),Ta(i))}}function ql(e){var D;var t=et,r=at,a=ft,n=X,i=gt,d=Le,u=St,f=Ms,p=e.f;et=null,at=0,ft=null,X=p&(Mt|ds)?null:e,gt=null,qs(e.ctx),St=!1,Ms=++bs,e.ac!==null&&(Kr(()=>{e.ac.abort(qt)}),e.ac=null);try{e.f|=Pr;var m=e.fn,C=m();e.f|=Ls;var k=e.deps,E=L==null?void 0:L.is_fork;if(et!==null){var y;if(E||vr(e,at),k!==null&&at>0)for(k.length=at+et.length,y=0;y<et.length;y++)k[at+y]=et[y];else e.deps=k=et;if(La()&&e.f&bt)for(y=at;y<k.length;y++)((D=k[y]).reactions??(D.reactions=[])).push(e)}else!E&&k!==null&&at<k.length&&(vr(e,at),k.length=at);if(gr()&&ft!==null&&!St&&k!==null&&!(e.f&(Ke|At|We)))for(y=0;y<ft.length;y++)Kl(ft[y],e);if(n!==null&&n!==e){if(bs++,n.deps!==null)for(let S=0;S<r;S+=1)n.deps[S].rv=bs;if(t!==null)for(const S of t)S.rv=bs;ft!==null&&(a===null?a=ft:a.push(...ft))}return e.f&cs&&(e.f^=cs),C}catch(S){return yl(S)}finally{e.f^=Pr,et=t,at=r,ft=a,X=n,gt=i,qs(d),St=u,Ms=f}}function Bc(e,t){let r=t.reactions;if(r!==null){var a=Lo.call(r,e);if(a!==-1){var n=r.length-1;n===0?r=t.reactions=null:(r[a]=r[n],r.pop())}}if(r===null&&t.f&Ke&&(et===null||!Vs.call(et,t))){var i=t;i.f&bt&&(i.f^=bt,i.f&=~As),i.v!==Fe&&Ma(i),Ec(i),vr(i,0)}}function vr(e,t){var r=e.deps;if(r!==null)for(var a=t;a<r.length;a++)Bc(e,r[a])}function Os(e){var t=e.f;if(!(t&mt)){we(e,Oe);var r=G,a=Fr;G=e,Fr=!0;try{t&(jt|dl)?$c(e):Ia(e),jl(e);var n=ql(e);e.teardown=typeof n=="function"?n:null,e.wv=Vl;var i;Oo&&nc&&e.f&We&&e.deps}finally{Fr=a,G=r}}}async function Wc(){await Promise.resolve(),dc()}function s(e){var t=e.f,r=(t&Ke)!==0;if(X!==null&&!St){var a=G!==null&&(G.f&mt)!==0;if(!a&&(gt===null||!Vs.call(gt,e))){var n=X.deps;if(X.f&Pr)e.rv<bs&&(e.rv=bs,et===null&&n!==null&&n[at]===e?at++:et===null?et=[e]:et.push(e));else{(X.deps??(X.deps=[])).push(e);var i=e.reactions;i===null?e.reactions=[X]:Vs.call(i,X)||i.push(X)}}}if(fs&&Es.has(e))return Es.get(e);if(r){var d=e;if(fs){var u=d.v;return(!(d.f&Oe)&&d.reactions!==null||Yl(d))&&(u=Oa(d)),Es.set(d,u),u}var f=(d.f&bt)===0&&!St&&X!==null&&(Fr||(X.f&bt)!==0),p=(d.f&Ls)===0;Xs(d)&&(f&&(d.f|=bt),Tl(d)),f&&!p&&(Cl(d),zl(d))}if(Be!=null&&Be.has(e))return Be.get(e);if(e.f&cs)throw e.v;return e.v}function zl(e){if(e.f|=bt,e.deps!==null)for(const t of e.deps)(t.reactions??(t.reactions=[])).push(e),t.f&Ke&&!(t.f&bt)&&(Cl(t),zl(t))}function Yl(e){if(e.v===Fe)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Es.has(t)||t.f&Ke&&Yl(t))return!0;return!1}function h(e){var t=St;try{return St=!0,e()}finally{St=t}}function $r(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(xs in e)ya(e);else if(!Array.isArray(e))for(let t in e){const r=e[t];typeof r=="object"&&r&&xs in r&&ya(r)}}}function ya(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 a in e)try{ya(e[a],t)}catch{}const r=Sa(e);if(r!==Object.prototype&&r!==Array.prototype&&r!==Map.prototype&&r!==Set.prototype&&r!==Date.prototype){const a=cl(r);for(let n in a){const i=a[n].get;if(i)try{i.call(e)}catch{}}}}}const Vc=["touchstart","touchmove"];function Uc(e){return Vc.includes(e)}const Ar=Symbol("events"),Kc=new Set,el=new Set;function qc(e,t,r,a={}){function n(i){if(a.capture||wa.call(t,i),!i.cancelBubble)return Kr(()=>r==null?void 0:r.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?vs(()=>{t.addEventListener(e,n,a)}):t.addEventListener(e,n,a),n}function re(e,t,r,a,n){var i={capture:a,passive:n},d=qc(e,t,r,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Ra(()=>{t.removeEventListener(e,d,i)})}let tl=null;function wa(e){var S,I;var t=this,r=t.ownerDocument,a=e.type,n=((S=e.composedPath)==null?void 0:S.call(e))||[],i=n[0]||e.target;tl=e;var d=0,u=tl===e&&e[Ar];if(u){var f=n.indexOf(u);if(f!==-1&&(t===document||t===window)){e[Ar]=t;return}var p=n.indexOf(t);if(p===-1)return;f<=p&&(d=f)}if(i=n[d]||e.target,i!==t){Ro(e,"currentTarget",{configurable:!0,get(){return i||r}});var m=X,C=G;yt(null),wt(null);try{for(var k,E=[];i!==null;){var y=i.assignedSlot||i.parentNode||i.host||null;try{var D=(I=i[Ar])==null?void 0:I[a];D!=null&&(!i.disabled||e.target===i)&&D.call(i,e)}catch(ae){k?E.push(ae):k=ae}if(e.cancelBubble||y===t||y===null)break;i=y}if(k){for(let ae of E)queueMicrotask(()=>{throw ae});throw k}}finally{e[Ar]=t,delete e.currentTarget,yt(m),wt(C)}}}var il;const ia=((il=globalThis==null?void 0:globalThis.window)==null?void 0:il.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function zc(e){return(ia==null?void 0:ia.createHTML(e))??e}function Gl(e){var t=Cc("template");return t.innerHTML=zc(e.replaceAll("<!>","<!---->")),t.content}function dr(e,t){var r=G;r.nodes===null&&(r.nodes={start:e,end:t,a:null,t:null})}function P(e,t){var r=(t&Zo)!==0,a=(t&ec)!==0,n,i=!e.startsWith("<!>");return()=>{n===void 0&&(n=Gl(i?e:"<!>"+e),r||(n=Ys(n)));var d=a||Rl?document.importNode(n,!0):n.cloneNode(!0);if(r){var u=Ys(d),f=d.lastChild;dr(u,f)}else dr(d,d);return d}}function Yc(e,t,r="svg"){var a=!e.startsWith("<!>"),n=`<${r}>${a?e:"<!>"+e}</${r}>`,i;return()=>{if(!i){var d=Gl(n),u=Ys(d);i=Ys(u)}var f=i.cloneNode(!0);return dr(f,f),f}}function Js(e,t){return Yc(e,t,"svg")}function It(e=""){{var t=Jt(e+"");return dr(t,t),t}}function Ds(){var e=document.createDocumentFragment(),t=document.createComment(""),r=Jt();return e.append(t,r),dr(t,r),e}function T(e,t){e!==null&&e.before(t)}function M(e,t){var r=t==null?"":typeof t=="object"?`${t}`:t;r!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=r,e.nodeValue=`${r}`)}function Gc(e,t){return Xc(e,t)}const Tr=new Map;function Xc(e,{target:t,anchor:r,props:a={},events:n,context:i,intro:d=!0,transformError:u}){Ac();var f=void 0,p=Nc(()=>{var m=r??t.appendChild(Jt());hc(m,{pending:()=>{}},E=>{bl({});var y=Le;i&&(y.c=i),n&&(a.$$events=n),f=e(E,a)||{},ml()},u);var C=new Set,k=E=>{for(var y=0;y<E.length;y++){var D=E[y];if(!C.has(D)){C.add(D);var S=Uc(D);for(const ie of[t,document]){var I=Tr.get(ie);I===void 0&&(I=new Map,Tr.set(ie,I));var ae=I.get(D);ae===void 0?(ie.addEventListener(D,wa,{passive:S}),I.set(D,1)):I.set(D,ae+1)}}}};return k(Vr(Kc)),el.add(k),()=>{var S;for(var E of C)for(const I of[t,document]){var y=Tr.get(I),D=y.get(E);--D==0?(I.removeEventListener(E,wa),y.delete(E),y.size===0&&Tr.delete(I)):y.set(E,D)}el.delete(k),m!==r&&((S=m.parentNode)==null||S.removeChild(m))}});return Jc.set(f,p),f}let Jc=new WeakMap;var Et,$t,it,ks,_r,br,Wr;class Qc{constructor(t,r=!0){kt(this,"anchor");V(this,Et,new Map);V(this,$t,new Map);V(this,it,new Map);V(this,ks,new Set);V(this,_r,!0);V(this,br,t=>{if(v(this,Et).has(t)){var r=v(this,Et).get(t),a=v(this,$t).get(r);if(a)Da(a),v(this,ks).delete(r);else{var n=v(this,it).get(r);n&&(v(this,$t).set(r,n.effect),v(this,it).delete(r),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),a=n.effect)}for(const[i,d]of v(this,Et)){if(v(this,Et).delete(i),i===t)break;const u=v(this,it).get(d);u&&(tt(u.effect),v(this,it).delete(d))}for(const[i,d]of v(this,$t)){if(i===r||v(this,ks).has(i))continue;const u=()=>{if(Array.from(v(this,Et).values()).includes(i)){var p=document.createDocumentFragment();Fa(d,p),p.append(Jt()),v(this,it).set(i,{effect:d,fragment:p})}else tt(d);v(this,ks).delete(i),v(this,$t).delete(i)};v(this,_r)||!a?(v(this,ks).add(i),Ss(d,u,!1)):u()}}});V(this,Wr,t=>{v(this,Et).delete(t);const r=Array.from(v(this,Et).values());for(const[a,n]of v(this,it))r.includes(a)||(tt(n.effect),v(this,it).delete(a))});this.anchor=t,z(this,_r,r)}ensure(t,r){var a=L,n=Dl();if(r&&!v(this,$t).has(t)&&!v(this,it).has(t))if(n){var i=document.createDocumentFragment(),d=Jt();i.append(d),v(this,it).set(t,{effect:_t(()=>r(d)),fragment:i})}else v(this,$t).set(t,_t(()=>r(this.anchor)));if(v(this,Et).set(a,t),n){for(const[u,f]of v(this,$t))u===t?a.unskip_effect(f):a.skip_effect(f);for(const[u,f]of v(this,it))u===t?a.unskip_effect(f.effect):a.skip_effect(f.effect);a.oncommit(v(this,br)),a.ondiscard(v(this,Wr))}else v(this,br).call(this,a)}}Et=new WeakMap,$t=new WeakMap,it=new WeakMap,ks=new WeakMap,_r=new WeakMap,br=new WeakMap,Wr=new WeakMap;function Y(e,t,r=!1){var a=new Qc(e),n=r?Ks:0;function i(d,u){a.ensure(d,u)}Na(()=>{var d=!1;t((u,f=0)=>{d=!0,i(f,u)}),d||i(-1,null)},n)}function as(e,t){return t}function Zc(e,t,r){for(var a=[],n=t.length,i,d=t.length,u=0;u<n;u++){let C=t[u];Ss(C,()=>{if(i){if(i.pending.delete(C),i.done.add(C),i.pending.size===0){var k=e.outrogroups;ka(e,Vr(i.done)),k.delete(i),k.size===0&&(e.outrogroups=null)}}else d-=1},!1)}if(d===0){var f=a.length===0&&r!==null;if(f){var p=r,m=p.parentNode;Tc(m),m.append(p),e.items.clear()}ka(e,t,!f)}else i={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(i)}function ka(e,t,r=!0){var a;if(e.pending.size>0){a=new Set;for(const d of e.pending.values())for(const u of d)a.add(e.items.get(u).e)}for(var n=0;n<t.length;n++){var i=t[n];if(a!=null&&a.has(i)){i.f|=Pt;const d=document.createDocumentFragment();Fa(i,d)}else tt(t[n],r)}}var sl;function dt(e,t,r,a,n,i=null){var d=e,u=new Map,f=(t&ul)!==0;if(f){var p=e;d=p.appendChild(Jt())}var m=null,C=$s(()=>{var ie=r();return Ea(ie)?ie:ie==null?[]:Vr(ie)}),k,E=new Map,y=!0;function D(ie){ae.effect.f&mt||(ae.pending.delete(ie),ae.fallback=m,ev(ae,k,d,t,a),m!==null&&(k.length===0?m.f&Pt?(m.f^=Pt,ar(m,null,d)):Da(m):Ss(m,()=>{m=null})))}function S(ie){ae.pending.delete(ie)}var I=Na(()=>{k=s(C);for(var ie=k.length,me=new Set,Xe=L,_=Dl(),ge=0;ge<ie;ge+=1){var ot=k[ge],ct=a(ot,ge),$e=y?null:u.get(ct);$e?($e.v&&zs($e.v,ot),$e.i&&zs($e.i,ge),_&&Xe.unskip_effect($e.e)):($e=tv(u,y?d:sl??(sl=Jt()),ot,ct,ge,n,t,r),y||($e.e.f|=Pt),u.set(ct,$e)),me.add(ct)}if(ie===0&&i&&!m&&(y?m=_t(()=>i(d)):(m=_t(()=>i(sl??(sl=Jt()))),m.f|=Pt)),ie>me.size&&Ho(),!y)if(E.set(Xe,me),_){for(const[Tt,Je]of u)me.has(Tt)||Xe.skip_effect(Je.e);Xe.oncommit(D),Xe.ondiscard(S)}else D(Xe);s(C)}),ae={effect:I,items:u,pending:E,outrogroups:null,fallback:m};y=!1}function sr(e){for(;e!==null&&!(e.f&Mt);)e=e.next;return e}function ev(e,t,r,a,n){var $e,Tt,Je,_e,Pe,qe,Ie,Ct,Qt;var i=(a&Jo)!==0,d=t.length,u=e.items,f=sr(e.effect.first),p,m=null,C,k=[],E=[],y,D,S,I;if(i)for(I=0;I<d;I+=1)y=t[I],D=n(y,I),S=u.get(D).e,S.f&Pt||((Tt=($e=S.nodes)==null?void 0:$e.a)==null||Tt.measure(),(C??(C=new Set)).add(S));for(I=0;I<d;I+=1){if(y=t[I],D=n(y,I),S=u.get(D).e,e.outrogroups!==null)for(const Ve of e.outrogroups)Ve.pending.delete(S),Ve.done.delete(S);if(S.f&Ge&&(Da(S),i&&((_e=(Je=S.nodes)==null?void 0:Je.a)==null||_e.unfix(),(C??(C=new Set)).delete(S))),S.f&Pt)if(S.f^=Pt,S===f)ar(S,null,r);else{var ae=m?m.next:f;S===e.effect.last&&(e.effect.last=S.prev),S.prev&&(S.prev.next=S.next),S.next&&(S.next.prev=S.prev),ns(e,m,S),ns(e,S,ae),ar(S,ae,r),m=S,k=[],E=[],f=sr(m.next);continue}if(S!==f){if(p!==void 0&&p.has(S)){if(k.length<E.length){var ie=E[0],me;m=ie.prev;var Xe=k[0],_=k[k.length-1];for(me=0;me<k.length;me+=1)ar(k[me],ie,r);for(me=0;me<E.length;me+=1)p.delete(E[me]);ns(e,Xe.prev,_.next),ns(e,m,Xe),ns(e,_,ie),f=ie,m=_,I-=1,k=[],E=[]}else p.delete(S),ar(S,f,r),ns(e,S.prev,S.next),ns(e,S,m===null?e.effect.first:m.next),ns(e,m,S),m=S;continue}for(k=[],E=[];f!==null&&f!==S;)(p??(p=new Set)).add(f),E.push(f),f=sr(f.next);if(f===null)continue}S.f&Pt||k.push(S),m=S,f=sr(S.next)}if(e.outrogroups!==null){for(const Ve of e.outrogroups)Ve.pending.size===0&&(ka(e,Vr(Ve.done)),(Pe=e.outrogroups)==null||Pe.delete(Ve));e.outrogroups.size===0&&(e.outrogroups=null)}if(f!==null||p!==void 0){var ge=[];if(p!==void 0)for(S of p)S.f&Ge||ge.push(S);for(;f!==null;)!(f.f&Ge)&&f!==e.fallback&&ge.push(f),f=sr(f.next);var ot=ge.length;if(ot>0){var ct=a&ul&&d===0?r:null;if(i){for(I=0;I<ot;I+=1)(Ie=(qe=ge[I].nodes)==null?void 0:qe.a)==null||Ie.measure();for(I=0;I<ot;I+=1)(Qt=(Ct=ge[I].nodes)==null?void 0:Ct.a)==null||Qt.fix()}Zc(e,ge,ct)}}i&&vs(()=>{var Ve,Qs;if(C!==void 0)for(S of C)(Qs=(Ve=S.nodes)==null?void 0:Ve.a)==null||Qs.apply()})}function tv(e,t,r,a,n,i,d,u){var f=d&Go?d&Qo?Cs(r):B(r,!1,!1):null,p=d&Xo?Cs(n):null;return{v:f,i:p,e:_t(()=>(i(t,f??r,p??n,u),()=>{e.delete(a)}))}}function ar(e,t,r){if(e.nodes)for(var a=e.nodes.start,n=e.nodes.end,i=t&&!(t.f&Pt)?t.nodes.start:r;a!==null;){var d=yr(a);if(i.before(a),a===n)return;a=d}}function ns(e,t,r){t===null?e.effect.first=r:t.next=r,r===null?e.effect.last=t:r.prev=t}const rl=[...`
|
|
2
|
-
\r\f \v\uFEFF`];function sv(e,t,r){var a=e==null?"":""+e;if(t&&(a=a?a+" "+t:t),r){for(var n of Object.keys(r))if(r[n])a=a?a+" "+n:n;else if(a.length)for(var i=n.length,d=0;(d=a.indexOf(n,d))>=0;){var u=d+i;(d===0||rl.includes(a[d-1]))&&(u===a.length||rl.includes(a[u]))?a=(d===0?"":a.substring(0,d))+a.substring(u+1):d=u}}return a===""?null:a}function rv(e,t){return e==null?null:String(e)}function ce(e,t,r,a,n,i){var d=e.__className;if(d!==r||d===void 0){var u=sv(r,a,i);u==null?e.removeAttribute("class"):t?e.className=u:e.setAttribute("class",u),e.__className=r}else if(i&&n!==i)for(var f in i){var p=!!i[f];(n==null||p!==!!n[f])&&e.classList.toggle(f,p)}return i}function av(e,t,r,a){var n=e.__style;if(n!==t){var i=rv(t);i==null?e.removeAttribute("style"):e.style.cssText=i,e.__style=t}return a}function Xl(e,t,r=!1){if(e.multiple){if(t==null)return;if(!Ea(t))return sc();for(var a of e.options)a.selected=t.includes(or(a));return}for(a of e.options){var n=or(a);if(Mc(n,t)){a.selected=!0;return}}(!r||t!==void 0)&&(e.selectedIndex=-1)}function nv(e){var t=new MutationObserver(()=>{Xl(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Ra(()=>{t.disconnect()})}function Cr(e,t,r=t){var a=new WeakSet,n=!0;Fl(e,"change",i=>{var d=i?"[selected]":":checked",u;if(e.multiple)u=[].map.call(e.querySelectorAll(d),or);else{var f=e.querySelector(d)??e.querySelector("option:not([disabled])");u=f&&or(f)}r(u),e.__value=u,L!==null&&a.add(L)}),Ic(()=>{var i=t();if(e===document.activeElement){var d=L;if(a.has(d))return}if(Xl(e,i,n),n&&i===void 0){var u=e.querySelector(":checked");u!==null&&(i=or(u),r(i))}e.__value=i,n=!1}),nv(e)}function or(e){return"__value"in e?e.__value:e.value}const lv=Symbol("is custom element"),iv=Symbol("is html");function he(e,t,r,a){var n=ov(e);n[t]!==(n[t]=r)&&(t==="loading"&&(e[Po]=r),r==null?e.removeAttribute(t):typeof r!="string"&&cv(e).includes(t)?e[t]=r:e.setAttribute(t,r))}function ov(e){return e.__attributes??(e.__attributes={[lv]:e.nodeName.includes("-"),[iv]:e.namespaceURI===pl})}var al=new Map;function cv(e){var t=e.getAttribute("is")||e.nodeName,r=al.get(t);if(r)return r;al.set(t,r=[]);for(var a,n=e,i=Element.prototype;i!==n;){a=cl(n);for(var d in a)a[d].set&&r.push(d);n=Sa(n)}return r}function Kt(e,t,r=t){var a=new WeakSet;Fl(e,"input",async n=>{var i=n?e.defaultValue:e.value;if(i=oa(e)?ca(i):i,r(i),L!==null&&a.add(L),await Wc(),i!==(i=t())){var d=e.selectionStart,u=e.selectionEnd,f=e.value.length;if(e.value=i??"",u!==null){var p=e.value.length;d===u&&u===f&&p>f?(e.selectionStart=p,e.selectionEnd=p):(e.selectionStart=d,e.selectionEnd=Math.min(u,p))}}}),h(t)==null&&e.value&&(r(oa(e)?ca(e.value):e.value),L!==null&&a.add(L)),qr(()=>{var n=t();if(e===document.activeElement){var i=L;if(a.has(i))return}oa(e)&&n===ca(e.value)||e.type==="date"&&!n&&!e.value||n!==e.value&&(e.value=n??"")})}function oa(e){var t=e.type;return t==="number"||t==="range"}function ca(e){return e===""?null:+e}function nl(e){return function(...t){var r=t[0];r.target===this&&(e==null||e.apply(this,t))}}function vv(e){return function(...t){var r=t[0];return r.stopPropagation(),e==null?void 0:e.apply(this,t)}}function dv(e){return function(...t){var r=t[0];return r.preventDefault(),e==null?void 0:e.apply(this,t)}}function fv(e=!1){const t=Le,r=t.l.u;if(!r)return;let a=()=>$r(t.s);if(e){let n=0,i={};const d=Ca(()=>{let u=!1;const f=t.s;for(const p in f)f[p]!==i[p]&&(i[p]=f[p],u=!0);return u&&n++,n});a=()=>s(d)}r.b.length&&Rc(()=>{ll(t,a),va(r.b)}),Jn(()=>{const n=h(()=>r.m.map(Fo));return()=>{for(const i of n)typeof i=="function"&&i()}}),r.a.length&&Jn(()=>{ll(t,a),va(r.a)})}function ll(e,t){if(e.l.s)for(const r of e.l.s)s(r);t()}const uv="5";var ol;typeof window<"u"&&((ol=window.__svelte??(window.__svelte={})).v??(ol.v=new Set)).add(uv);lc();var pv=P('<span class="tab-badge svelte-d3ct2b"> </span>'),hv=Js('<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><circle cx="12" cy="12" r="5" class="svelte-d3ct2b"></circle><line x1="12" y1="1" x2="12" y2="3" class="svelte-d3ct2b"></line><line x1="12" y1="21" x2="12" y2="23" class="svelte-d3ct2b"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" class="svelte-d3ct2b"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" class="svelte-d3ct2b"></line><line x1="1" y1="12" x2="3" y2="12" class="svelte-d3ct2b"></line><line x1="21" y1="12" x2="23" y2="12" class="svelte-d3ct2b"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" class="svelte-d3ct2b"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" class="svelte-d3ct2b"></line></svg>'),_v=Js('<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" class="svelte-d3ct2b"></path></svg>'),bv=P('<div class="health-badge health-warn svelte-d3ct2b"><i class="dot dot-warn svelte-d3ct2b"></i> <span class="svelte-d3ct2b"> </span></div>'),mv=P('<div><i></i> <span class="svelte-d3ct2b"> </span></div>'),gv=P('<span class="health-error svelte-d3ct2b"> </span>'),yv=P('<span class="health-error svelte-d3ct2b"> </span>'),wv=P('<span class="dropdown-badge svelte-d3ct2b"> </span>'),kv=P('<div class="dropdown svelte-d3ct2b"><button><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="svelte-d3ct2b"><circle cx="12" cy="12" r="3" class="svelte-d3ct2b"></circle><path d="M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4" class="svelte-d3ct2b"></path></svg> Core Engine</button> <button><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="svelte-d3ct2b"><circle cx="12" cy="12" r="4" class="svelte-d3ct2b"></circle><path d="M4 12H2M22 12h-2M12 4V2M12 22v-2" class="svelte-d3ct2b"></path><path d="m6.34 6.34-1.41-1.42M19.07 19.07l-1.41-1.41" class="svelte-d3ct2b"></path></svg> Commit Hook <!></button></div>'),xv=Js('<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" class="svelte-d3ct2b"><polygon points="5 3 19 12 5 21 5 3" class="svelte-d3ct2b"></polygon></svg>'),Ev=Js('<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" class="svelte-d3ct2b"><rect x="6" y="4" width="4" height="16" class="svelte-d3ct2b"></rect><rect x="14" y="4" width="4" height="16" class="svelte-d3ct2b"></rect></svg>'),Sv=P('<div class="log-row log-row-warn svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-warn svelte-d3ct2b">ARCH</span> <span class="log-msg svelte-d3ct2b">Custom architecture — no profile rules loaded. Add rules: memory-core remember "..." --type rule</span></div> <div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-sys svelte-d3ct2b">SYS</span> <span class="log-msg svelte-d3ct2b">Or load a profile when ready: memory-core seed --arch clean-architecture</span></div>',1),Mv=P('<div class="log-row log-row-warn svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-warn svelte-d3ct2b">WARN</span> <span class="log-msg svelte-d3ct2b">No architecture rules configured in .memory-core.json — nothing to watch.</span></div> <div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-sys svelte-d3ct2b">SYS</span> <span class="log-msg svelte-d3ct2b">Awaiting manual rule configuration...</span></div>',1),Av=P('<div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-sys svelte-d3ct2b">SYS</span> <span class="log-msg svelte-d3ct2b">Initialization sequence started for memory-core...</span></div> <div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-ok svelte-d3ct2b">DB</span> <span class="log-msg svelte-d3ct2b">Waiting for PostgreSQL connection...</span></div> <!> <div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b"></span> <span class="log-label svelte-d3ct2b"></span> <span class="log-msg cursor-blink svelte-d3ct2b">_</span></div>',1),Tv=P('· <em class="svelte-d3ct2b"> </em>',1),Cv=P('<br class="svelte-d3ct2b"/><span class="detail-fix svelte-d3ct2b"> </span>',1),Ov=P('<div class="log-detail svelte-d3ct2b"><span class="detail-index svelte-d3ct2b"> </span> <span class="detail-body svelte-d3ct2b"><strong class="svelte-d3ct2b"> </strong> <!> <!> <!></span></div>'),Lv=P('<div><span class="log-time svelte-d3ct2b"> </span> <span> </span> <span class="log-msg svelte-d3ct2b"><!></span> <button class="copy-btn svelte-d3ct2b" title="Copy">⎘</button></div> <!>',1),Rv=P('<div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b">--:--:--</span> <span class="log-label label-ok svelte-d3ct2b">[OK]</span> <span class="log-msg svelte-d3ct2b">No commit hook violations in the last 24 hours.</span></div> <div class="log-row svelte-d3ct2b"><span class="log-time svelte-d3ct2b"></span> <span class="log-label svelte-d3ct2b"></span> <span class="log-msg cursor-blink svelte-d3ct2b">_</span></div>',1),Nv=P('<br class="svelte-d3ct2b"/><span class="detail-fix svelte-d3ct2b"> </span>',1),Iv=P('<div class="log-detail svelte-d3ct2b"><span class="detail-index svelte-d3ct2b"></span> <span class="detail-body svelte-d3ct2b"><!> <!></span></div>'),Dv=P('<div class="log-row log-row-fail svelte-d3ct2b"><span class="log-time svelte-d3ct2b"> </span> <span class="log-label label-hook svelte-d3ct2b"> </span> <span class="log-msg svelte-d3ct2b"><strong class="svelte-d3ct2b"> </strong> <!></span></div> <!>',1),Fv=P('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Commit Hook</span> <span class="section-meta svelte-d3ct2b"> </span></div> <!>',1),$v=P('<span class="rule-reason svelte-d3ct2b"> </span>'),Pv=P('<div class="rule-row svelte-d3ct2b"><span class="rule-badge svelte-d3ct2b"> </span> <span class="rule-scope svelte-d3ct2b"> </span> <span class="rule-content svelte-d3ct2b"> </span> <!> <button class="del-btn svelte-d3ct2b">✕</button></div>'),jv=P('Custom architecture — no profile rules loaded. Add rules from the terminal: <code class="svelte-d3ct2b">memory-core remember "..." --type rule</code>',1),Hv=P('<div class="log-row svelte-d3ct2b"><span class="log-msg svelte-d3ct2b" style="color: var(--outline)"><!></span></div>'),Bv=P('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Rule Engine</span> <span class="section-meta svelte-d3ct2b"> </span></div> <div class="rules-toolbar svelte-d3ct2b"><select class="rules-select svelte-d3ct2b"><option class="svelte-d3ct2b">All types</option><option class="svelte-d3ct2b">Rules</option><option class="svelte-d3ct2b">Decisions</option><option class="svelte-d3ct2b">Patterns</option><option class="svelte-d3ct2b">Ignores</option></select> <input class="rules-search svelte-d3ct2b" placeholder="Search rules..."/></div> <div class="rule-form-wrap svelte-d3ct2b"><form class="rule-form svelte-d3ct2b"><div class="rule-form-row svelte-d3ct2b"><select class="rules-select svelte-d3ct2b"><option class="svelte-d3ct2b">Rule</option><option class="svelte-d3ct2b">Decision</option><option class="svelte-d3ct2b">Pattern</option><option class="svelte-d3ct2b">Ignore</option></select> <select class="rules-select svelte-d3ct2b"><option class="svelte-d3ct2b">Project</option><option class="svelte-d3ct2b">Global</option></select> <input class="rules-input svelte-d3ct2b" placeholder="Reason"/> <input class="rules-input svelte-d3ct2b" placeholder="Tags"/></div> <div class="rule-form-row svelte-d3ct2b"><textarea rows="2" class="rules-textarea svelte-d3ct2b" placeholder="Rule or decision content..."></textarea> <button class="add-btn svelte-d3ct2b"> </button></div></form></div> <div class="rule-list svelte-d3ct2b"></div>',1),Wv=P('<div class="log-row svelte-d3ct2b"><span class="log-label label-warn svelte-d3ct2b">[WARN]</span> <span class="log-msg svelte-d3ct2b">No .archmind/layers.json found. Run <code class="svelte-d3ct2b">memory-core init</code> or create the file manually.</span></div>'),Vv=Js('<line stroke-width="1.5" opacity="0.75" class="svelte-d3ct2b"></line>'),Uv=Js('<g role="button" tabindex="0"><rect rx="6"></rect><text text-anchor="middle" class="arch-node-label svelte-d3ct2b"> </text><text text-anchor="middle" class="arch-node-desc svelte-d3ct2b"> </text></g>'),Kv=P('<div class="arch-node-panel-path svelte-d3ct2b"> </div>'),qv=P('<div class="arch-node-panel-paths svelte-d3ct2b"><div class="arch-node-panel-section svelte-d3ct2b">Glob patterns</div> <!></div>'),zv=P('<div class="arch-node-panel-rule svelte-d3ct2b"><span> </span> <span style="font-size:12px" class="svelte-d3ct2b"> </span></div>'),Yv=P('<div class="arch-node-panel-paths svelte-d3ct2b"><div class="arch-node-panel-section svelte-d3ct2b">Rules involving this layer</div> <!></div>'),Gv=P('<div class="arch-node-panel svelte-d3ct2b"><div class="arch-node-panel-header svelte-d3ct2b"><span class="arch-node-panel-name svelte-d3ct2b"> </span> <span class="arch-node-panel-meta svelte-d3ct2b"> </span> <button class="arch-node-panel-close svelte-d3ct2b" aria-label="Close">✕</button></div> <!> <!></div>'),Xv=P('<div class="arch-rule-row svelte-d3ct2b"><span> </span> <span class="arch-rule-layers svelte-d3ct2b"> </span> <span class="arch-rule-name svelte-d3ct2b"> </span></div>'),Jv=P('<div class="arch-graph-wrap svelte-d3ct2b"><svg class="arch-svg svelte-d3ct2b"><defs class="svelte-d3ct2b"><marker id="arrow-block" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto" class="svelte-d3ct2b"><path d="M0,0 L0,6 L8,3 z" fill="var(--error)" class="svelte-d3ct2b"></path></marker><marker id="arrow-warn" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto" class="svelte-d3ct2b"><path d="M0,0 L0,6 L8,3 z" fill="#f59e0b" class="svelte-d3ct2b"></path></marker><marker id="arrow-allow" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto" class="svelte-d3ct2b"><path d="M0,0 L0,6 L8,3 z" fill="var(--green)" class="svelte-d3ct2b"></path></marker></defs><!><!></svg> <div class="arch-legend svelte-d3ct2b"><div class="legend-item svelte-d3ct2b"><svg width="24" height="8" class="svelte-d3ct2b"><line x1="0" y1="4" x2="20" y2="4" stroke="var(--error)" stroke-width="1.5" marker-end="url(#arrow-block)" class="svelte-d3ct2b"></line></svg> Block</div> <div class="legend-item svelte-d3ct2b"><svg width="24" height="8" class="svelte-d3ct2b"><line x1="0" y1="4" x2="20" y2="4" stroke="#f59e0b" stroke-width="1.5" stroke-dasharray="4,3" class="svelte-d3ct2b"></line></svg> Warn</div> <div class="legend-item svelte-d3ct2b"><svg width="24" height="8" class="svelte-d3ct2b"><line x1="0" y1="4" x2="20" y2="4" stroke="var(--green)" stroke-width="1.5" stroke-dasharray="6,3" class="svelte-d3ct2b"></line></svg> Allow</div></div> <!> <div class="arch-rule-list svelte-d3ct2b"></div></div>'),Qv=P('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Layer Graph</span> <span class="section-meta svelte-d3ct2b"> </span></div> <!>',1),Zv=P('<div class="log-row svelte-d3ct2b"><span class="log-label label-ok svelte-d3ct2b">[OK]</span> <span class="log-msg svelte-d3ct2b">No violations recorded yet. Violations from watch mode are logged here.</span></div>'),ed=P('<span class="history-issue svelte-d3ct2b"> </span>'),td=P('<div class="history-violation svelte-d3ct2b"><span class="log-label label-error svelte-d3ct2b">[VIOLATION]</span> <span class="history-rule svelte-d3ct2b"> </span> <!></div>'),sd=P('<div class="history-entry svelte-d3ct2b"><div class="history-header svelte-d3ct2b"><span class="history-file svelte-d3ct2b"> </span> <span class="history-time svelte-d3ct2b"> </span></div> <!></div>'),rd=P('<div class="history-list svelte-d3ct2b"></div>'),ad=P('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Violation History</span> <span class="section-meta svelte-d3ct2b"> </span></div> <!>',1),nd=P('<div class="modal-row svelte-d3ct2b"><label class="modal-label svelte-d3ct2b" for="model-apikey">API Key</label> <input id="model-apikey" class="modal-input svelte-d3ct2b" type="password"/></div>'),ld=P("<div> </div>"),id=P('<div class="modal-backdrop svelte-d3ct2b" role="presentation"><div class="modal svelte-d3ct2b"><div class="modal-header svelte-d3ct2b"><span class="modal-title svelte-d3ct2b">Settings</span> <button class="modal-close svelte-d3ct2b">✕</button></div> <section class="modal-section svelte-d3ct2b"><div class="modal-section-title svelte-d3ct2b">AI Model</div> <div class="modal-row svelte-d3ct2b"><label class="modal-label svelte-d3ct2b" for="model-provider">Provider</label> <select id="model-provider" class="modal-input svelte-d3ct2b"><option class="svelte-d3ct2b">Ollama (local)</option><option class="svelte-d3ct2b">OpenAI</option><option class="svelte-d3ct2b">Anthropic</option><option class="svelte-d3ct2b">MiniMax</option><option class="svelte-d3ct2b">OpenAI-compatible</option></select></div> <div class="modal-row svelte-d3ct2b"><label class="modal-label svelte-d3ct2b" for="model-name">Model</label> <input id="model-name" class="modal-input svelte-d3ct2b" placeholder="e.g. llama3.2, gpt-4o, claude-sonnet-4-6"/></div> <!> <div class="modal-row svelte-d3ct2b"><div class="svelte-d3ct2b"></div> <div class="modal-row-actions svelte-d3ct2b"><button class="modal-btn modal-btn-primary svelte-d3ct2b"> </button> <button class="modal-btn svelte-d3ct2b">Refresh Config</button></div></div> <!></section> <section class="modal-section svelte-d3ct2b"><div class="modal-section-title svelte-d3ct2b">Timeouts</div> <div class="modal-row svelte-d3ct2b"><label class="modal-label svelte-d3ct2b" for="chat-timeout">CHAT_TIMEOUT_MS</label> <input id="chat-timeout" class="modal-input svelte-d3ct2b" placeholder="60000" type="text" inputmode="numeric"/></div> <div class="modal-row svelte-d3ct2b"><label class="modal-label svelte-d3ct2b" for="check-timeout">CHECK_TIMEOUT_MS</label> <input id="check-timeout" class="modal-input svelte-d3ct2b" placeholder="20000" type="text" inputmode="numeric"/></div></section> <section class="modal-section svelte-d3ct2b"><div class="modal-section-title svelte-d3ct2b">Current Status</div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Provider</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Model</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">API Key</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Embedding</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Chat timeout</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Check timeout</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">AI calls this session</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Total tokens</span><span class="modal-status-val svelte-d3ct2b"> </span></div> <div class="modal-status-row svelte-d3ct2b"><span class="modal-status-label svelte-d3ct2b">Input / Output</span><span class="modal-status-val svelte-d3ct2b"> </span></div></section></div></div>'),od=P('<div class="shell svelte-d3ct2b"><header class="topbar svelte-d3ct2b"><div class="topbar-brand svelte-d3ct2b"><span class="brand-name svelte-d3ct2b">memory-core</span> <nav class="topbar-nav svelte-d3ct2b"><button>Dashboard</button> <button>Live Feed</button> <button>Metrics</button> <button>Arch Graph</button> <button>History <!></button></nav></div> <div class="topbar-search svelte-d3ct2b"><span class="search-icon svelte-d3ct2b">⌕</span> <input class="search-input svelte-d3ct2b" placeholder="Search system logs, traces, and metrics..." type="text"/></div> <div class="topbar-actions svelte-d3ct2b"><button class="icon-btn svelte-d3ct2b" title="Notifications"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" class="svelte-d3ct2b"></path><path d="M13.73 21a2 2 0 0 1-3.46 0" class="svelte-d3ct2b"></path></svg></button> <button><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-d3ct2b"></rect><path d="m7 21 5-5 5 5" class="svelte-d3ct2b"></path><path d="m7 8 3 3-3 3" class="svelte-d3ct2b"></path><path d="M13 14h4" class="svelte-d3ct2b"></path></svg></button> <button class="icon-btn svelte-d3ct2b" title="Settings"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><circle cx="12" cy="12" r="3" class="svelte-d3ct2b"></circle><path d="M19.07 4.93a10 10 0 0 1 0 14.14M4.93 4.93a10 10 0 0 0 0 14.14" class="svelte-d3ct2b"></path><path d="M12 2v2M12 20v2M2 12h2M20 12h2" class="svelte-d3ct2b"></path></svg></button> <button class="icon-btn svelte-d3ct2b"><!></button> <div class="avatar svelte-d3ct2b" title="System Administrator">S</div></div></header> <div class="body svelte-d3ct2b"><aside class="sidebar svelte-d3ct2b"><div class="sidebar-logo svelte-d3ct2b"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="svelte-d3ct2b"><circle cx="12" cy="12" r="3" class="svelte-d3ct2b"></circle><path d="M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83" class="svelte-d3ct2b"></path></svg></div> <nav class="sidebar-nav svelte-d3ct2b"><button class="side-btn side-btn-active svelte-d3ct2b" title="Live Feed"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-d3ct2b"></rect><path d="m7 21 5-5 5 5" class="svelte-d3ct2b"></path><path d="m7 8 3 3-3 3" class="svelte-d3ct2b"></path><path d="M13 14h4" class="svelte-d3ct2b"></path></svg></button></nav> <div></div></aside> <main class="content svelte-d3ct2b"><div class="health-bar svelte-d3ct2b"><span class="health-label svelte-d3ct2b">System Health:</span> <div class="health-badge health-green svelte-d3ct2b"><i class="dot dot-green svelte-d3ct2b"></i> <span class="svelte-d3ct2b"> </span></div> <div><i></i> <span class="svelte-d3ct2b"> </span></div> <div><i></i> <span class="svelte-d3ct2b"> </span></div> <!> <!> <!> <!></div> <div class="filter-bar svelte-d3ct2b"><div class="filter-left svelte-d3ct2b"><div class="chip chip-primary svelte-d3ct2b"><span class="svelte-d3ct2b">LEVEL: ALL</span> <button class="chip-close svelte-d3ct2b" title="Clear cache">✕</button></div> <div class="service-dropdown-wrap svelte-d3ct2b"><button class="chip chip-outline svelte-d3ct2b"><span class="svelte-d3ct2b"> </span> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9" class="svelte-d3ct2b"></polyline></svg></button> <!></div> <div class="divider-v svelte-d3ct2b"></div> <div class="metrics-strip svelte-d3ct2b"><div class="metric-item svelte-d3ct2b"><span class="metric-label svelte-d3ct2b">VIOLATIONS</span> <span> </span></div> <div class="metric-item svelte-d3ct2b"><span class="metric-label svelte-d3ct2b">FILES</span> <span class="metric-value svelte-d3ct2b"> </span></div> <div class="metric-item svelte-d3ct2b"><span class="metric-label svelte-d3ct2b">RULES</span> <span class="metric-value svelte-d3ct2b"> </span></div></div></div> <div class="filter-right svelte-d3ct2b"><div class="live-badge svelte-d3ct2b"><i></i> <span class="svelte-d3ct2b"> </span></div> <button><!></button> <button class="icon-btn svelte-d3ct2b" title="Download snapshot"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="svelte-d3ct2b"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" class="svelte-d3ct2b"></path><polyline points="7 10 12 15 17 10" class="svelte-d3ct2b"></polyline><line x1="12" y1="15" x2="12" y2="3" class="svelte-d3ct2b"></line></svg></button></div></div> <div class="feed-area svelte-d3ct2b"><!> <!> <!></div> <footer class="metrics-footer svelte-d3ct2b"><div class="footer-left svelte-d3ct2b"><div class="footer-metric svelte-d3ct2b"><span class="footer-label svelte-d3ct2b">Checks</span> <span class="footer-val svelte-d3ct2b"> </span> <span class="footer-unit svelte-d3ct2b">AI CALLS</span></div> <div class="footer-metric svelte-d3ct2b"><span class="footer-label svelte-d3ct2b">Tokens</span> <span class="footer-val svelte-d3ct2b"> </span> <span class="footer-unit svelte-d3ct2b"> </span></div> <div class="footer-metric svelte-d3ct2b"><span class="footer-label svelte-d3ct2b">Error Rate</span> <span class="footer-val footer-val-error svelte-d3ct2b"> </span></div> <div class="footer-metric svelte-d3ct2b"><span class="footer-label svelte-d3ct2b">Bypasses</span> <span> </span></div></div> <div class="footer-right svelte-d3ct2b"><div class="footer-actions svelte-d3ct2b"><button class="action-btn svelte-d3ct2b" title="Sync rules to all AI agent files"> </button> <button class="action-btn svelte-d3ct2b" title="Run full scan on all tracked files"> </button> <button class="action-btn action-btn-warn svelte-d3ct2b" title="Tune noisy rules"> </button></div> <div class="storage-bar-wrap svelte-d3ct2b"><div class="storage-bar svelte-d3ct2b"><div class="storage-fill svelte-d3ct2b"></div></div> <span class="footer-label svelte-d3ct2b"> </span></div></div></footer></main></div> <!></div>');function cd(e,t){bl(t,!1);const r=B(),a=B(),n=B(),i=B(),d=B(),u=B(),f=B(),p=B(),m=B(),C=B(),k=B(),E=B(),y=B(),D=B(),S=B(),I=B(),ae=B(),ie=B(),me=B(),Xe=B();let _=B({config:null,stats:{rules:{},files:{},topRules:[],topFiles:[]},files:[],memories:[]}),ge=B([]),ot=B(!1),ct=B("all"),$e=B(""),Tt=B(!1),Je=B(""),_e=B({type:"rule",scope:"project",content:"",reason:"",tags:"dashboard"}),Pe=B("live-feed"),qe=B("live-feed"),Ie=B(null),Ct=B(!1),Qt=B("core-engine"),Ve=B(!1),Qs=B(""),Rs=B(!1),Se=B({provider:"",model:"",apiKey:"",chatTimeoutMs:"",checkTimeoutMs:""}),wr=B(!1),Zt=B(""),es=B("");const Jl=24*60*60*1e3,$a=640,Pa=380,Bt=110,Wt=38,Ql={nestjs:["controllers","services","repositories","modules","common"],mvc:["controllers","services","models","views","shared"],"laravel-service-repository":["controllers","services","repositories","models","shared"],"go-api":["handlers","services","repositories","models","shared"],react:["pages","components","hooks","store","services"],"react-native":["screens","components","hooks","store","services"],vue:["pages","components","composables","store","services"],svelte:["routes","components","stores","lib","utils"],nuxt:["pages","components","composables","server","utils"],angular:["modules","components","services","guards","shared"],hexagonal:["domain","ports","adapters","infrastructure","shared"],"modular-monolith":["modules","api","shared","infrastructure"],"clean-architecture":["api","application","domain","infrastructure","shared"]};function kr(l){s(Ve)||w(ge,[{...l,id:crypto.randomUUID()},...s(ge)].slice(0,80))}function ja(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==="log"?{type:"log",timestamp:l.timestamp,file:l.file,message:l.message}: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 xr(l){const b=s(_).files??[],A=b.findIndex($=>$.file===l.file),O=b.slice();return A===-1?O.push(l):O[A]=l,O.sort(($,q)=>q.lastSeen.localeCompare($.lastSeen))}function Zl(l){const b=s(_).watcher??{enabled:!0,running:!1,path:void 0,model:void 0,rules:void 0,lastEventAt:void 0,error:void 0};let A=s(_).files,O={...b,lastEventAt:l.timestamp,enabled:!0};l.type==="ready"&&(O={...O,running:!0,error:void 0,path:l.path,model:l.model,rules:l.rules}),l.type==="saved"&&(A=xr({file:l.file,status:"checking",lastSeen:l.timestamp,violations:[]})),l.type==="clean"&&(A=xr({file:l.file,status:"clean",lastSeen:l.timestamp,violations:[]})),l.type==="skipped"&&(A=xr({file:l.file,status:"skipped",lastSeen:l.timestamp,violations:[],message:l.reason})),l.type==="violations"&&(A=xr({file:l.file,status:"violations",lastSeen:l.timestamp,violations:l.violations})),l.type==="error"&&(O={...O,running:!1,error:l.message}),l.type==="stopped"&&(O={...O,running:!1});const $=[l,...s(_).events??[]].slice(0,100);w(_,{...s(_),files:A,events:$,watcher:O})}function zr(l=[]){w(ge,l.map(ja).map(b=>({...b,id:crypto.randomUUID()})).reverse().slice(0,80))}function Ha(l){return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(l))}function Ba(l,b){const A=l.file||b;return l.line?`${A}:${l.line}`:A}function ei(l){return l.type==="saved"?"SAVE":l.type==="clean"?"OK":l.type==="skipped"?"SKIP":l.type==="violations"?"FAIL":l.type==="log"?"CHCK":l.type==="error"?"WARN":"SYS"}function ti(l){return l.type==="clean"?"label-ok":l.type==="violations"||l.type==="error"?"label-warn":l.type==="log"?"label-chck":l.type==="system"?"label-sys":"label-info"}async function Zs(){const l=await fetch(`/api/snapshot?t=${Date.now()}`,{cache:"no-store"});w(_,await l.json()),zr(s(_).events)}async function si(){w(Je,"");try{const l=await fetch("/api/refresh",{method:"POST",headers:{"content-type":"application/json"},cache:"no-store"});if(!l.ok)throw new Error((await l.json()).error??"Refresh failed");const b=await l.json();b.snapshot?(w(_,b.snapshot),zr(s(_).events)):await Zs()}catch(l){w(Je,l.message)}}function ri(){try{localStorage.clear(),sessionStorage.clear()}finally{location.reload()}}async function ai(){w(wr,!0),w(Zt,"");try{const l=await fetch("/api/config/model",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(s(Se))}),b=await l.json().catch(()=>({}));if(!l.ok)throw new Error(b.error??"Save failed");const A=Array.isArray(b.warnings)&&b.warnings.length>0?" — "+b.warnings.join("; "):"";w(Zt,`✓ ${b.message??"Settings updated"}${A}`),await Zs()}catch(l){w(Zt,`✗ ${l.message}`)}finally{w(wr,!1)}}async function Yr(l){w(es,l);try{await fetch(`/api/actions/${l}`,{method:"POST"}),kr({type:"system",timestamp:new Date().toISOString(),message:`Action started: memory-core ${l==="check-all"?"check --all":l}`})}catch{}finally{w(es,"")}}function Wa(){const l=location.protocol==="https:"?"wss:":"ws:",b=new WebSocket(`${l}//${location.host}/ws`);b.addEventListener("open",()=>{w(ot,!0),kr({type:"system",timestamp:new Date().toISOString(),message:"Dashboard connected"})}),b.addEventListener("close",()=>{w(ot,!1),kr({type:"error",timestamp:new Date().toISOString(),message:"Dashboard disconnected"}),setTimeout(Wa,1500)}),b.addEventListener("message",A=>{const O=JSON.parse(A.data);if(O.type==="snapshot"){w(_,O.snapshot),s(ge).length===0&&zr(s(_).events);return}if(O.type==="stats"){w(_,{...s(_),stats:O.stats});return}O.type==="watch"&&(Zl(O.event),kr(ja(O.event)))})}async function ni(){if(s(_e).content.trim()){w(Tt,!0),w(Je,"");try{const l=await fetch("/api/memories",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(s(_e))});if(!l.ok)throw new Error((await l.json()).error??"Save failed");w(_e,{type:"rule",scope:"project",content:"",reason:"",tags:"dashboard"}),await Zs()}catch(l){w(Je,l.message)}finally{w(Tt,!1)}}}async function li(l){w(Je,"");const b=await fetch(`/api/memories/${l}`,{method:"DELETE"});if(!b.ok){w(Je,(await b.json()).error??"Delete failed");return}await Zs()}function Va(l){w(Qt,l),w(Ct,!1),l==="commit-hook"?w(Pe,"commit-hook"):w(Pe,"live-feed")}function ii(){w(Pe,s(Pe)==="commit-hook"?"live-feed":"commit-hook"),w(Qt,s(Pe)==="commit-hook"?"commit-hook":"core-engine")}function oi(l){s(Ct)&&(l.target.closest(".service-dropdown-wrap")||w(Ct,!1))}let ts=B(localStorage.getItem("mc-theme")==="dark"||!localStorage.getItem("mc-theme")&&window.matchMedia("(prefers-color-scheme: dark)").matches);function ci(){w(ts,!s(ts)),localStorage.setItem("mc-theme",s(ts)?"dark":"light")}document.documentElement.setAttribute("data-theme",s(ts)?"dark":"light"),Zs().catch(l=>{w(Je,l.message)}),Wa(),Ee(()=>(s(_),s(ct),s($e)),()=>{w(r,s(_).memories.filter(l=>{const b=s(ct)==="all"||l.type===s(ct),A=`${l.type} ${l.scope} ${l.content} ${l.reason??""} ${l.tags.join(" ")}`.toLowerCase();return b&&A.includes(s($e).toLowerCase())}))}),Ee(()=>s(_),()=>{w(a,s(_).files.reduce((l,b)=>l+b.violations.length,0))}),Ee(()=>s(_),()=>{w(n,s(_).files.filter(l=>l.status==="clean").length)}),Ee(()=>s(_),()=>{w(i,Object.values(s(_).stats.rules).reduce((l,b)=>l+b,0))}),Ee(()=>s(_),()=>{w(d,s(_).stats.recentViolations??[])}),Ee(()=>s(d),()=>{w(u,s(d).filter(l=>{if(!(l.source==="hook"||l.source==="ci"))return!1;const b=Date.parse(l.timestamp);return Number.isNaN(b)?!1:Date.now()-b<=Jl}))}),Ee(()=>s(a),()=>{w(f,s(a))}),Ee(()=>s(_),()=>{w(p,s(_).files.filter(l=>l.status!=="checking").length)}),Ee(()=>s(_),()=>{w(m,s(_).memories.filter(l=>["rule","pattern","decision"].includes(l.type)).length)}),Ee(()=>s(_),()=>{var l;w(C,((l=s(_).memoryCount)==null?void 0:l.total)??s(_).memories.length)}),Ee(()=>(s(ot),s(_)),()=>{var l,b;w(k,s(ot)?((l=s(_).watcher)==null?void 0:l.enabled)===!1?{live:!1,label:"Watch off"}:(b=s(_).watcher)!=null&&b.running?{live:!0,label:"Watcher live"}:{live:!1,label:"Watcher idle"}:{live:!1,label:"Disconnected"})}),Ee(()=>s(_),()=>{var l;w(E,((l=s(_).arch)==null?void 0:l.layers)??[])}),Ee(()=>s(_),()=>{var l;w(y,((l=s(_).arch)==null?void 0:l.rules)??[])}),Ee(()=>(s(E),s(_)),()=>{w(D,(()=>{var R,g,U,j;const l=s(E);if(l.length===0)return[];const b=((R=s(_).runtime)==null?void 0:R.project.backendArchitecture)??((g=s(_).runtime)==null?void 0:g.project.frontendFramework)??((j=(U=s(_).runtime)==null?void 0:U.project.activeArchitectures)==null?void 0:j[0])??"",A=Ql[b]??["api","application","domain","infrastructure","shared"],O=[...l].sort((F,de)=>{const Me=A.indexOf(F.name)===-1?99:A.indexOf(F.name),Ae=A.indexOf(de.name)===-1?99:A.indexOf(de.name);return Me-Ae}),$=Math.min(O.length,3),q=Math.ceil(O.length/$),Z=($a-$*Bt)/($+1),te=(Pa-q*Wt)/(q+1);return O.map((F,de)=>{const Me=de%$,Ae=Math.floor(de/$);return{name:F.name,description:F.description,x:Z+Me*(Bt+Z),y:te+Ae*(Wt+te)}})})())}),Ee(()=>(s(D),s(y)),()=>{w(S,(()=>{const l=new Map(s(D).map(b=>[b.name,b]));return s(y).filter(b=>b.fromLayer!=="*"&&b.toLayer!=="*").map(b=>{const A=l.get(b.fromLayer),O=l.get(b.toLayer);if(!A||!O)return null;const $=A.x+Bt/2,q=A.y+Wt/2,Z=O.x+Bt/2,te=O.y+Wt/2,R=Z-$,g=te-q,U=Math.sqrt(R*R+g*g)||1,j=$+R/U*(Bt/2+4),F=q+g/U*(Wt/2+4),de=Z-R/U*(Bt/2+4),Me=te-g/U*(Wt/2+4);return{r:b,sx:j,sy:F,ex:de,ey:Me}}).filter(Boolean)})())}),Ee(()=>s(_),()=>{var l;w(I,((l=s(_).runtime)==null?void 0:l.postgres.connected)??!1)}),Ee(()=>s(_),()=>{var l;w(ae,((l=s(_).runtime)==null?void 0:l.model.ollamaReachable)??!1)}),Ee(()=>s(_),()=>{var l,b;w(ie,(((l=s(_).runtime)==null?void 0:l.model.checkModelResolved)??((b=s(_).runtime)==null?void 0:b.model.chatModel)??"unknown").toUpperCase())}),Ee(()=>s(_),()=>{var l,b;w(me,((l=s(_).runtime)==null?void 0:l.project.backendArchitecture)==="custom"||((b=s(_).runtime)==null?void 0:b.project.frontendFramework)==="custom")}),Ee(()=>s(_),()=>{w(Xe,(()=>{var O,$;const l=(O=s(_).runtime)==null?void 0:O.project.backendArchitecture,b=($=s(_).runtime)==null?void 0:$.project.frontendFramework,A=[l?l==="custom"?"Custom":l:null,b?b==="custom"?"Custom":b:null].filter(Boolean);return A.length>0?A.join(" / "):null})())}),Ee(()=>s(ts),()=>{document.documentElement.setAttribute("data-theme",s(ts)?"dark":"light")}),Dc(),fv();var Ua=od();re("click",ga,oi);var Ka=o(Ua),qa=o(Ka),vi=c(o(qa),2),Gr=o(vi);let za;var Xr=c(Gr,2);let Ya;var Jr=c(Xr,2);let Ga;var Qr=c(Jr,2);let Xa;var Zr=c(Qr,2);let Ja;var di=c(o(Zr));{var fi=l=>{var b=pv(),A=o(b);W(()=>M(A,(s(_),h(()=>{var O;return(O=s(_).violationHistory)==null?void 0:O.length})))),T(l,b)};Y(di,l=>{s(_),h(()=>{var b;return(((b=s(_).violationHistory)==null?void 0:b.length)??0)>0})&&l(fi)})}var Qa=c(qa,2),ui=c(o(Qa),2),pi=c(Qa,2),Er=c(o(pi),2);let Za;var en=c(Er,2),ea=c(en,2),hi=o(ea);{var _i=l=>{var b=hv();T(l,b)},bi=l=>{var b=_v();T(l,b)};Y(hi,l=>{s(ts)?l(_i):l(bi,-1)})}var tn=c(Ka,2),sn=o(tn),rn=c(o(sn),4);let an;var mi=c(sn,2),nn=o(mi),ln=c(o(nn),2),gi=c(o(ln),2),yi=o(gi),ta=c(ln,2);let on;var cn=o(ta);let vn;var wi=c(cn,2),ki=o(wi),sa=c(ta,2);let dn;var fn=o(sa);let un;var xi=c(fn,2),Ei=o(xi),pn=c(sa,2);{var Si=l=>{var b=bv(),A=c(o(b),2),O=o(A);W(()=>M(O,`${s(_),h(()=>{var $;return($=s(_).arch)==null?void 0:$.pendingRules})??""} PENDING RULES`)),T(l,b)};Y(pn,l=>{s(_),h(()=>{var b;return(((b=s(_).arch)==null?void 0:b.pendingRules)??0)>0})&&l(Si)})}var hn=c(pn,2);{var Mi=l=>{var b=mv();let A;var O=o(b);let $;var q=c(O,2),Z=o(q);W(te=>{A=ce(b,1,"health-badge svelte-d3ct2b",null,A,{"health-warn":s(me),"health-green":!s(me)}),$=ce(O,1,"dot svelte-d3ct2b",null,$,{"dot-warn":s(me),"dot-green":!s(me)}),M(Z,`ARCH: ${te??""}${s(me)?" — ADD RULES":""}`)},[()=>(s(Xe),h(()=>s(Xe).toUpperCase()))]),T(l,b)};Y(hn,l=>{s(Xe)&&l(Mi)})}var _n=c(hn,2);{var Ai=l=>{var b=gv(),A=o(b);W(()=>M(A,(s(_),h(()=>s(_).dbError)))),T(l,b)};Y(_n,l=>{s(_),h(()=>s(_).dbError)&&l(Ai)})}var Ti=c(_n,2);{var Ci=l=>{var b=yv(),A=o(b);W(()=>M(A,s(Je))),T(l,b)};Y(Ti,l=>{s(Je)&&l(Ci)})}var bn=c(nn,2),mn=o(bn),gn=o(mn),Oi=c(o(gn),2),yn=c(gn,2),ra=o(yn),wn=o(ra),Li=o(wn),Ri=c(wn,2);let kn;var Ni=c(ra,2);{var Ii=l=>{var b=kv(),A=o(b);let O;var $=c(A,2);let q;var Z=c(o($),2);{var te=R=>{var g=wv(),U=o(g);W(()=>M(U,(s(u),h(()=>s(u).length)))),T(R,g)};Y(Z,R=>{s(u),h(()=>s(u).length>0)&&R(te)})}W(()=>{O=ce(A,1,"dropdown-item svelte-d3ct2b",null,O,{"dropdown-item-active":s(Qt)==="core-engine"}),q=ce($,1,"dropdown-item svelte-d3ct2b",null,q,{"dropdown-item-active":s(Qt)==="commit-hook"})}),re("click",A,()=>Va("core-engine")),re("click",$,()=>Va("commit-hook")),T(l,b)};Y(Ni,l=>{s(Ct)&&l(Ii)})}var Di=c(yn,4),xn=o(Di),En=c(o(xn),2);let Sn;var Fi=o(En),Mn=c(xn,2),$i=c(o(Mn),2),Pi=o($i),ji=c(Mn,2),Hi=c(o(ji),2),Bi=o(Hi),Wi=c(mn,2),An=o(Wi),Tn=o(An);let Cn;var Vi=c(Tn,2),Ui=o(Vi),er=c(An,2);let On;var Ki=o(er);{var qi=l=>{var b=xv();T(l,b)},zi=l=>{var b=Ev();T(l,b)};Y(Ki,l=>{s(Ve)?l(qi):l(zi,-1)})}var Yi=c(er,2),Ln=c(bn,2),Rn=o(Ln);{var Gi=l=>{var b=Ds(),A=Ue(b);{var O=q=>{var Z=Av(),te=c(Ue(Z),4);{var R=U=>{var j=Sv();T(U,j)},g=U=>{var j=Mv();T(U,j)};Y(te,U=>{s(me)?U(R):U(g,-1)})}T(q,Z)},$=q=>{var Z=Ds(),te=Ue(Z);dt(te,1,()=>(s(ge),h(()=>[...s(ge)].reverse())),R=>R.id,(R,g)=>{var U=Lv(),j=Ue(U);let F;var de=o(j),Me=o(de),Ae=c(de,2),xe=o(Ae),x=c(Ae,2),oe=o(x);{var ne=N=>{var H=It();W(()=>M(H,(s(g),h(()=>s(g).message)))),T(N,H)},J=N=>{var H=It();W(()=>M(H,`saved: ${s(g),h(()=>s(g).file)??""}`)),T(N,H)},fe=N=>{var H=It();W(()=>M(H,`${s(g),h(()=>s(g).file)??""} — no violations`)),T(N,H)},ye=N=>{var H=It();W(()=>M(H,`${s(g),h(()=>s(g).file)??""} — skipped: ${s(g),h(()=>s(g).reason)??""}`)),T(N,H)},Te=N=>{var H=It();W(()=>M(H,`${s(g),h(()=>s(g).file)??""} — ${s(g),h(()=>s(g).message)??""}`)),T(N,H)},Ne=N=>{var H=It();W(()=>M(H,`${s(g),h(()=>s(g).violations.length)??""} violation${s(g),h(()=>s(g).violations.length===1?"":"s")??""} in ${s(g),h(()=>s(g).file)??""}`)),T(N,H)};Y(oe,N=>{s(g),h(()=>s(g).type==="system"||s(g).type==="error")?N(ne):(s(g),h(()=>s(g).type==="saved")?N(J,1):(s(g),h(()=>s(g).type==="clean")?N(fe,2):(s(g),h(()=>s(g).type==="skipped")?N(ye,3):(s(g),h(()=>s(g).type==="log")?N(Te,4):N(Ne,-1)))))})}var se=c(x,2),be=c(j,2);{var je=N=>{var H=Ds(),De=Ue(H);dt(De,3,()=>(s(g),h(()=>s(g).violations)),(Q,K)=>`${s(g).id}-${K}`,(Q,K,pe)=>{var Ce=Ov(),vt=o(Ce),st=o(vt),ve=c(vt,2),Qe=o(ve),Ot=o(Qe),Lt=c(Qe,2);{var us=ze=>{var Rt=Tv(),Is=c(Ue(Rt)),tr=o(Is);W(()=>M(tr,(s(K),h(()=>s(K).rule)))),T(ze,Rt)};Y(Lt,ze=>{s(K),h(()=>s(K).rule)&&ze(us)})}var Vt=c(Lt,2);{var Ut=ze=>{var Rt=It();W(()=>M(Rt,`— ${s(K),h(()=>s(K).issue)??""}`)),T(ze,Rt)};Y(Vt,ze=>{s(K),h(()=>s(K).issue)&&ze(Ut)})}var ss=c(Vt,2);{var Ns=ze=>{var Rt=Cv(),Is=c(Ue(Rt)),tr=o(Is);W(()=>M(tr,`→ ${s(K),h(()=>s(K).suggestion)??""}`)),T(ze,Rt)};Y(ss,ze=>{s(K),h(()=>s(K).suggestion)&&ze(Ns)})}W(ze=>{M(st,`[${s(pe)+1}]`),M(Ot,ze)},[()=>(s(K),s(g),h(()=>Ba(s(K),s(g).file)))]),T(Q,Ce)}),T(N,H)};Y(be,N=>{s(g),h(()=>s(g).type==="violations")&&N(je)})}W((N,H,De)=>{F=ce(j,1,"log-row svelte-d3ct2b",null,F,{"log-row-warn":s(g).type==="error","log-row-ok":s(g).type==="clean","log-row-fail":s(g).type==="violations"}),M(Me,N),ce(Ae,1,`log-label ${H??""}`,"svelte-d3ct2b"),M(xe,`[${De??""}]`)},[()=>(s(g),h(()=>Ha(s(g).timestamp))),()=>(s(g),h(()=>ti(s(g)))),()=>(s(g),h(()=>ei(s(g))))]),re("click",se,()=>{var H;const N=s(g).type==="system"||s(g).type==="error"?s(g).message:s(g).type==="saved"?`saved: ${s(g).file}`:s(g).file;(H=navigator.clipboard)==null||H.writeText(N)}),T(R,U)}),T(q,Z)};Y(A,q=>{s(ge),h(()=>s(ge).length===0)?q(O):q($,-1)})}T(l,b)},Xi=l=>{var b=Fv(),A=Ue(b),O=c(o(A),2),$=o(O),q=c(A,2);{var Z=R=>{var g=Rv();T(R,g)},te=R=>{var g=Ds(),U=Ue(g);dt(U,3,()=>(s(u),h(()=>s(u).slice(0,20))),(j,F)=>`${j.timestamp}-${F}`,(j,F)=>{var de=Dv(),Me=Ue(de),Ae=o(Me),xe=o(Ae),x=c(Ae,2),oe=o(x),ne=c(x,2),J=o(ne),fe=o(J),ye=c(J,2);{var Te=be=>{var je=It();W(N=>M(je,`— ${N??""}`),[()=>(s(F),h(()=>Ba(s(F),s(F).file)))]),T(be,je)};Y(ye,be=>{s(F),h(()=>s(F).file)&&be(Te)})}var Ne=c(Me,2);{var se=be=>{var je=Iv(),N=c(o(je),2),H=o(N);{var De=pe=>{var Ce=It();W(()=>M(Ce,(s(F),h(()=>s(F).issue)))),T(pe,Ce)};Y(H,pe=>{s(F),h(()=>s(F).issue)&&pe(De)})}var Q=c(H,2);{var K=pe=>{var Ce=Nv(),vt=c(Ue(Ce)),st=o(vt);W(()=>M(st,`→ ${s(F),h(()=>s(F).suggestion)??""}`)),T(pe,Ce)};Y(Q,pe=>{s(F),h(()=>s(F).suggestion)&&pe(K)})}T(be,je)};Y(Ne,be=>{s(F),h(()=>s(F).issue||s(F).suggestion)&&be(se)})}W(be=>{M(xe,be),M(oe,`[${s(F),h(()=>s(F).source==="ci"?"CI":"HOOK")??""}]`),M(fe,(s(F),h(()=>s(F).rule)))},[()=>(s(F),h(()=>Ha(s(F).timestamp)))]),T(j,de)}),T(R,g)};Y(q,R=>{s(u),h(()=>s(u).length===0)?R(Z):R(te,-1)})}W(()=>M($,`${s(u),h(()=>s(u).length)??""} violation${s(u),h(()=>s(u).length===1?"":"s")??""} in last 24h`)),T(l,b)},Ji=l=>{var b=Bv(),A=Ue(b),O=c(o(A),2),$=o(O),q=c(A,2),Z=o(q),te=o(Z);te.value=te.__value="all";var R=c(te);R.value=R.__value="rule";var g=c(R);g.value=g.__value="decision";var U=c(g);U.value=U.__value="pattern";var j=c(U);j.value=j.__value="ignore";var F=c(Z,2),de=c(q,2),Me=o(de),Ae=o(Me),xe=o(Ae),x=o(xe);x.value=x.__value="rule";var oe=c(x);oe.value=oe.__value="decision";var ne=c(oe);ne.value=ne.__value="pattern";var J=c(ne);J.value=J.__value="ignore";var fe=c(xe,2),ye=o(fe);ye.value=ye.__value="project";var Te=c(ye);Te.value=Te.__value="global";var Ne=c(fe,2),se=c(Ne,2),be=c(Ae,2),je=o(be),N=c(je,2),H=o(N),De=c(de,2);dt(De,5,()=>s(r),Q=>Q.id,(Q,K)=>{var pe=Pv(),Ce=o(pe),vt=o(Ce),st=c(Ce,2),ve=o(st),Qe=c(st,2),Ot=o(Qe),Lt=c(Qe,2);{var us=Ut=>{var ss=$v(),Ns=o(ss);W(()=>M(Ns,(s(K),h(()=>s(K).reason)))),T(Ut,ss)};Y(Lt,Ut=>{s(K),h(()=>s(K).reason)&&Ut(us)})}var Vt=c(Lt,2);W(()=>{M(vt,(s(K),h(()=>s(K).type))),M(ve,(s(K),h(()=>s(K).scope))),M(Ot,(s(K),h(()=>s(K).content)))}),re("click",Vt,()=>li(s(K).id)),T(Q,pe)},Q=>{var K=Hv(),pe=o(K),Ce=o(pe);{var vt=ve=>{var Qe=jv();T(ve,Qe)},st=ve=>{var Qe=It("No rules match the current filters.");T(ve,Qe)};Y(Ce,ve=>{s(me)&&s(m)===0?ve(vt):ve(st,-1)})}T(Q,K)}),W(Q=>{M($,`${s(m)??""} rules active`),N.disabled=Q,M(H,s(Tt)?"Saving…":"+ Add Rule")},[()=>(s(Tt),s(_e),h(()=>s(Tt)||!s(_e).content.trim()))]),Cr(Z,()=>s(ct),Q=>w(ct,Q)),Kt(F,()=>s($e),Q=>w($e,Q)),Cr(xe,()=>s(_e).type,Q=>Nt(_e,s(_e).type=Q)),Cr(fe,()=>s(_e).scope,Q=>Nt(_e,s(_e).scope=Q)),Kt(Ne,()=>s(_e).reason,Q=>Nt(_e,s(_e).reason=Q)),Kt(se,()=>s(_e).tags,Q=>Nt(_e,s(_e).tags=Q)),Kt(je,()=>s(_e).content,Q=>Nt(_e,s(_e).content=Q)),re("submit",Me,dv(ni)),T(l,b)};Y(Rn,l=>{s(Pe)==="live-feed"?l(Gi):s(Pe)==="commit-hook"?l(Xi,1):s(Pe)==="rules"&&l(Ji,2)})}var Nn=c(Rn,2);{var Qi=l=>{var b=Qv(),A=Ue(b),O=c(o(A),2),$=o(O),q=c(A,2);{var Z=R=>{var g=Wv();T(R,g)},te=R=>{var g=Jv(),U=o(g);he(U,"width",$a),he(U,"height",Pa);var j=c(o(U));dt(j,1,()=>s(S),as,(xe,x)=>{var oe=Ds(),ne=Ue(oe);{var J=fe=>{const ye=$s(()=>(s(x),h(()=>s(x).r.allowed?"var(--green)":s(x).r.enforcement==="warn"?"#f59e0b":"var(--error)"))),Te=$s(()=>(s(x),h(()=>s(x).r.allowed?"arrow-allow":s(x).r.enforcement==="warn"?"arrow-warn":"arrow-block"))),Ne=$s(()=>(s(x),h(()=>s(x).r.allowed?"6,3":s(x).r.enforcement==="warn"?"4,3":"none")));var se=Vv();W(()=>{he(se,"x1",(s(x),h(()=>s(x).sx))),he(se,"y1",(s(x),h(()=>s(x).sy))),he(se,"x2",(s(x),h(()=>s(x).ex))),he(se,"y2",(s(x),h(()=>s(x).ey))),he(se,"stroke",s(ye)),he(se,"stroke-dasharray",s(Ne)),he(se,"marker-end",`url(#${s(Te)??""})`)}),T(fe,se)};Y(ne,fe=>{s(x)&&fe(J)})}T(xe,oe)});var F=c(j);dt(F,1,()=>s(D),as,(xe,x)=>{var oe=Uv();let ne;var J=o(oe);he(J,"width",Bt),he(J,"height",Wt);var fe=c(J),ye=o(fe),Te=c(fe),Ne=o(Te);W(se=>{ne=ce(oe,0,"arch-node arch-node-clickable svelte-d3ct2b",null,ne,{"arch-node-selected":s(Ie)===s(x).name}),he(oe,"aria-label",`Show files in ${s(x),h(()=>s(x).name)??""} layer`),he(J,"x",(s(x),h(()=>s(x).x))),he(J,"y",(s(x),h(()=>s(x).y))),ce(J,0,`arch-node-rect arch-node-${s(x),h(()=>s(x).name)??""}`,"svelte-d3ct2b"),he(J,"stroke-width",(s(Ie),s(x),h(()=>s(Ie)===s(x).name?2.5:1.5))),he(fe,"x",(s(x),h(()=>s(x).x+Bt/2))),he(fe,"y",(s(x),h(()=>s(x).y+Wt/2-5))),M(ye,(s(x),h(()=>s(x).name))),he(Te,"x",(s(x),h(()=>s(x).x+Bt/2))),he(Te,"y",(s(x),h(()=>s(x).y+Wt/2+9))),M(Ne,se)},[()=>(s(x),h(()=>s(x).description.length>18?s(x).description.slice(0,16)+"…":s(x).description))]),re("click",oe,()=>{w(Ie,s(Ie)===s(x).name?null:s(x).name)}),re("keydown",oe,se=>{(se.key==="Enter"||se.key===" ")&&w(Ie,s(Ie)===s(x).name?null:s(x).name)}),T(xe,oe)});var de=c(U,4);{var Me=xe=>{const x=$s(()=>(s(E),s(Ie),h(()=>s(E).find(N=>N.name===s(Ie)))));var oe=Gv(),ne=o(oe),J=o(ne),fe=o(J),ye=c(J,2),Te=o(ye),Ne=c(ye,2),se=c(ne,2);{var be=N=>{var H=qv(),De=c(o(H),2);dt(De,1,()=>($r(s(x)),h(()=>s(x).paths)),as,(Q,K)=>{var pe=Kv(),Ce=o(pe);W(()=>M(Ce,s(K))),T(Q,pe)}),T(N,H)};Y(se,N=>{$r(s(x)),h(()=>{var H,De;return(De=(H=s(x))==null?void 0:H.paths)==null?void 0:De.length})&&N(be)})}var je=c(se,2);dt(je,1,()=>(s(y),s(Ie),h(()=>[s(y).filter(N=>N.fromLayer===s(Ie)||N.toLayer===s(Ie))])),as,(N,H)=>{var De=Ds(),Q=Ue(De);{var K=pe=>{var Ce=Yv(),vt=c(o(Ce),2);dt(vt,1,()=>s(H),as,(st,ve)=>{var Qe=zv(),Ot=o(Qe);let Lt;var us=o(Ot),Vt=c(Ot,2),Ut=o(Vt);W(ss=>{Lt=ce(Ot,1,"arch-rule-badge svelte-d3ct2b",null,Lt,{"badge-block":!s(ve).allowed&&s(ve).enforcement==="block","badge-warn":!s(ve).allowed&&s(ve).enforcement==="warn","badge-allow":s(ve).allowed}),M(us,ss),M(Ut,`${s(ve),h(()=>s(ve).fromLayer)??""} → ${s(ve),h(()=>s(ve).toLayer)??""} — ${s(ve),h(()=>s(ve).name)??""}`)},[()=>(s(ve),h(()=>s(ve).enforcement.toUpperCase()))]),T(st,Qe)}),T(pe,Ce)};Y(Q,pe=>{s(H),h(()=>s(H).length)&&pe(K)})}T(N,De)}),W(()=>{M(fe,s(Ie)),M(Te,($r(s(x)),h(()=>{var N;return((N=s(x))==null?void 0:N.description)??""})))}),re("click",Ne,()=>w(Ie,null)),T(xe,oe)};Y(de,xe=>{s(Ie)&&xe(Me)})}var Ae=c(de,2);dt(Ae,5,()=>s(y),as,(xe,x)=>{var oe=Xv(),ne=o(oe);let J;var fe=o(ne),ye=c(ne,2),Te=o(ye),Ne=c(ye,2),se=o(Ne);W(be=>{J=ce(ne,1,"arch-rule-badge svelte-d3ct2b",null,J,{"badge-block":!s(x).allowed&&s(x).enforcement==="block","badge-warn":!s(x).allowed&&s(x).enforcement==="warn","badge-allow":s(x).allowed}),M(fe,be),M(Te,`${s(x),h(()=>s(x).fromLayer)??""} → ${s(x),h(()=>s(x).toLayer)??""}`),M(se,(s(x),h(()=>s(x).name)))},[()=>(s(x),h(()=>s(x).enforcement.toUpperCase()))]),T(xe,oe)}),T(R,g)};Y(q,R=>{s(E),h(()=>s(E).length===0)?R(Z):R(te,-1)})}W(()=>M($,`${s(E),h(()=>s(E).length)??""} layers · ${s(y),h(()=>s(y).length)??""} rules`)),T(l,b)};Y(Nn,l=>{s(qe)==="arch-graph"&&l(Qi)})}var Zi=c(Nn,2);{var eo=l=>{var b=ad(),A=Ue(b),O=c(o(A),2),$=o(O),q=c(A,2);{var Z=R=>{var g=Zv();T(R,g)},te=R=>{var g=rd();dt(g,5,()=>(s(_),h(()=>s(_).violationHistory??[])),as,(U,j)=>{var F=sd(),de=o(F),Me=o(de),Ae=o(Me),xe=c(Me,2),x=o(xe),oe=c(de,2);dt(oe,1,()=>(s(j),h(()=>s(j).violations)),as,(ne,J)=>{var fe=td(),ye=c(o(fe),2),Te=o(ye),Ne=c(ye,2);{var se=be=>{var je=ed(),N=o(je);W(()=>M(N,`— ${s(J),h(()=>s(J).issue)??""}`)),T(be,je)};Y(Ne,be=>{s(J),h(()=>s(J).issue)&&be(se)})}W(()=>M(Te,(s(J),h(()=>s(J).rule)))),T(ne,fe)}),W(ne=>{M(Ae,(s(j),h(()=>s(j).file))),M(x,ne)},[()=>(s(j),h(()=>new Date(s(j).timestamp).toLocaleString()))]),T(U,F)}),T(R,g)};Y(q,R=>{s(_),h(()=>{var g;return!((g=s(_).violationHistory)!=null&&g.length)})?R(Z):R(te,-1)})}W(()=>M($,`${s(_),h(()=>{var R;return((R=s(_).violationHistory)==null?void 0:R.length)??0})??""} entries (last 200)`)),T(l,b)};Y(Zi,l=>{s(qe)==="history"&&l(eo)})}var to=c(Ln,2),In=o(to),Dn=o(In),so=c(o(Dn),2),ro=o(so),Fn=c(Dn,2),$n=c(o(Fn),2),ao=o($n),no=c($n,2),lo=o(no),Pn=c(Fn,2),io=c(o(Pn),2),oo=o(io),co=c(Pn,2),jn=c(o(co),2);let Hn;var vo=o(jn),fo=c(In,2),Bn=o(fo),Sr=o(Bn),uo=o(Sr),Mr=c(Sr,2),po=o(Mr),aa=c(Mr,2),ho=o(aa),_o=c(Bn,2),Wn=o(_o),bo=o(Wn),mo=c(Wn,2),go=o(mo),yo=c(tn,2);{var wo=l=>{var b=id(),A=o(b),O=o(A),$=c(o(O),2),q=c(O,2),Z=c(o(q),2),te=c(o(Z),2),R=o(te);R.value=R.__value="ollama";var g=c(R);g.value=g.__value="openai";var U=c(g);U.value=U.__value="anthropic";var j=c(U);j.value=j.__value="minimax";var F=c(j);F.value=F.__value="openai-compatible";var de=c(Z,2),Me=c(o(de),2),Ae=c(de,2);{var xe=le=>{var He=nd(),ps=c(o(He),2);W(()=>he(ps,"placeholder",(s(_),h(()=>{var ee;return(ee=s(_).runtime)!=null&&ee.model.apiKeyConfigured?"(already set — leave blank to keep)":"sk-..."})))),Kt(ps,()=>s(Se).apiKey,ee=>Nt(Se,s(Se).apiKey=ee)),T(le,He)};Y(Ae,le=>{s(Se),h(()=>s(Se).provider&&s(Se).provider!=="ollama")&&le(xe)})}var x=c(Ae,2),oe=c(o(x),2),ne=o(oe),J=o(ne),fe=c(ne,2),ye=c(x,2);{var Te=le=>{var He=ld();let ps;var ee=o(He);W(rt=>{ps=ce(He,1,"modal-msg svelte-d3ct2b",null,ps,rt),M(ee,s(Zt))},[()=>({"modal-msg-ok":s(Zt).startsWith("✓"),"modal-msg-err":s(Zt).startsWith("✗")})]),T(le,He)};Y(ye,le=>{s(Zt)&&le(Te)})}var Ne=c(q,2),se=c(o(Ne),2),be=c(o(se),2),je=c(se,2),N=c(o(je),2),H=c(Ne,2),De=c(o(H),2),Q=c(o(De)),K=o(Q),pe=c(De,2),Ce=c(o(pe)),vt=o(Ce),st=c(pe,2),ve=c(o(st)),Qe=o(ve),Ot=c(st,2),Lt=c(o(Ot)),us=o(Lt),Vt=c(Ot,2),Ut=c(o(Vt)),ss=o(Ut),Ns=c(Vt,2),ze=c(o(Ns)),Rt=o(ze),Is=c(Ns,2),tr=c(o(Is)),ko=o(tr),Vn=c(Is,2),xo=c(o(Vn)),Eo=o(xo),So=c(Vn,2),Mo=c(o(So)),Ao=o(Mo);W((le,He,ps)=>{ne.disabled=s(wr),M(J,s(wr)?"Saving…":"Apply"),M(K,(s(_),h(()=>{var ee;return((ee=s(_).runtime)==null?void 0:ee.model.provider)??"—"}))),M(vt,(s(_),h(()=>{var ee,rt;return((ee=s(_).runtime)==null?void 0:ee.model.checkModelResolved)??((rt=s(_).runtime)==null?void 0:rt.model.chatModel)??"—"}))),M(Qe,(s(_),h(()=>{var ee;return(ee=s(_).runtime)!=null&&ee.model.apiKeyConfigured?"Configured":"Not set"}))),M(us,(s(_),h(()=>{var ee,rt;return((ee=s(_).runtime)==null?void 0:ee.model.embeddingModelResolved)??((rt=s(_).runtime)==null?void 0:rt.model.embeddingModel)??"—"}))),M(ss,`${s(_),h(()=>{var ee,rt;return((rt=(ee=s(_).runtime)==null?void 0:ee.timeouts)==null?void 0:rt.chatTimeoutMs)??"60000"})??""} ms`),M(Rt,`${s(_),h(()=>{var ee,rt;return((rt=(ee=s(_).runtime)==null?void 0:ee.timeouts)==null?void 0:rt.checkTimeoutMs)??"20000"})??""} ms`),M(ko,(s(_),h(()=>{var ee;return((ee=s(_).stats.tokens)==null?void 0:ee.calls)??0}))),M(Eo,`${le??""} ${s(_),h(()=>{var ee;return((ee=s(_).runtime)==null?void 0:ee.model.provider)==="ollama"?"(local — free)":""})??""}`),M(Ao,`${He??""} in / ${ps??""} out`)},[()=>(s(_),h(()=>{var le,He;return((He=(le=s(_).stats.tokens)==null?void 0:le.totalTokens)==null?void 0:He.toLocaleString())??"0"})),()=>(s(_),h(()=>{var le,He;return((He=(le=s(_).stats.tokens)==null?void 0:le.inputTokens)==null?void 0:He.toLocaleString())??"0"})),()=>(s(_),h(()=>{var le,He;return((He=(le=s(_).stats.tokens)==null?void 0:le.outputTokens)==null?void 0:He.toLocaleString())??"0"}))]),re("click",$,()=>w(Rs,!1)),Cr(te,()=>s(Se).provider,le=>Nt(Se,s(Se).provider=le)),Kt(Me,()=>s(Se).model,le=>Nt(Se,s(Se).model=le)),re("click",ne,ai),re("click",fe,si),Kt(be,()=>s(Se).chatTimeoutMs,le=>Nt(Se,s(Se).chatTimeoutMs=le)),Kt(N,()=>s(Se).checkTimeoutMs,le=>Nt(Se,s(Se).checkTimeoutMs=le)),re("click",b,nl(()=>w(Rs,!1))),re("keydown",b,nl(le=>{le.key==="Escape"&&w(Rs,!1)})),T(l,b)};Y(yo,l=>{s(Rs)&&l(wo)})}W((l,b,A,O,$,q)=>{var Z,te,R,g,U;za=ce(Gr,1,"tab-btn svelte-d3ct2b",null,za,{"tab-active":s(qe)==="dashboard"}),Ya=ce(Xr,1,"tab-btn svelte-d3ct2b",null,Ya,{"tab-active":s(qe)==="live-feed"}),Ga=ce(Jr,1,"tab-btn svelte-d3ct2b",null,Ga,{"tab-active":s(qe)==="metrics"}),Xa=ce(Qr,1,"tab-btn svelte-d3ct2b",null,Xa,{"tab-active":s(qe)==="arch-graph"}),Ja=ce(Zr,1,"tab-btn svelte-d3ct2b",null,Ja,{"tab-active":s(qe)==="history"}),Za=ce(Er,1,"icon-btn svelte-d3ct2b",null,Za,{"icon-btn-active":s(Pe)==="commit-hook"}),he(Er,"title",s(Pe)==="commit-hook"?"Switch to Live Feed":"Switch to Commit Hook"),he(ea,"title",s(ts)?"Switch to light mode":"Switch to dark mode"),an=ce(rn,1,"sidebar-footer-dot svelte-d3ct2b",null,an,{"dot-live":s(k).live}),he(rn,"title",(s(k),h(()=>s(k).label))),M(yi,`CORE ${s(k),h(()=>s(k).live?"LIVE":"IDLE")??""}`),on=ce(ta,1,"health-badge svelte-d3ct2b",null,on,{"health-green":s(I),"health-warn":!s(I)}),vn=ce(cn,1,"dot svelte-d3ct2b",null,vn,{"dot-green":s(I),"dot-warn":!s(I)}),M(ki,`DB ${s(I)?"CONNECTED":"DISCONNECTED"}`),dn=ce(sa,1,"health-badge svelte-d3ct2b",null,dn,{"health-blue":s(ae)||((Z=s(_).runtime)==null?void 0:Z.model.provider)!=="ollama","health-warn":!s(ae)&&((te=s(_).runtime)==null?void 0:te.model.provider)==="ollama"}),un=ce(fn,1,"dot svelte-d3ct2b",null,un,{"dot-blue":s(ae)||((R=s(_).runtime)==null?void 0:R.model.provider)!=="ollama","dot-warn":!s(ae)&&((g=s(_).runtime)==null?void 0:g.model.provider)==="ollama"}),M(Ei,`MODEL: ${s(ie)??""}`),M(Li,`SERVICE: ${s(Qt)==="commit-hook"?"COMMIT HOOK":"CORE-ENGINE"}`),kn=ce(Ri,0,"chevron svelte-d3ct2b",null,kn,{"chevron-open":s(Ct)}),Sn=ce(En,1,"metric-value svelte-d3ct2b",null,Sn,{"metric-value-warn":s(f)>0}),M(Fi,s(f)),M(Pi,l),M(Bi,b),Cn=ce(Tn,1,"dot dot-green svelte-d3ct2b",null,Cn,{"dot-pulse":s(k).live}),M(Ui,A),On=ce(er,1,"icon-btn svelte-d3ct2b",null,On,{"icon-btn-active":s(Ve)}),he(er,"title",s(Ve)?"Resume":"Pause"),M(ro,(s(_),h(()=>{var j;return((j=s(_).stats.tokens)==null?void 0:j.calls)??0}))),M(ao,O),M(lo,(s(_),h(()=>{var j;return((j=s(_).runtime)==null?void 0:j.model.provider)==="ollama"?"LOCAL (FREE)":"USED"}))),M(oo,$),Hn=ce(jn,1,"footer-val svelte-d3ct2b",null,Hn,{"footer-val-error":(((U=s(_).stats.bypasses)==null?void 0:U.withoutReason)??0)>0}),M(vo,`${s(_),h(()=>{var j;return((j=s(_).stats.bypasses)==null?void 0:j.withoutReason)??0})??""} unrecorded`),Sr.disabled=s(es)==="sync",M(uo,`${s(es)==="sync"?"…":"⟳"} Sync Agents`),Mr.disabled=s(es)==="check-all",M(po,`${s(es)==="check-all"?"…":"⊛"} Check All`),aa.disabled=s(es)==="tune",M(ho,`${s(es)==="tune"?"…":"⚙"} Tune Rules`),av(bo,`width: ${q??""}%`),M(go,`Storage: ${s(C)??""} memories`)},[()=>(s(p),h(()=>s(p).toLocaleString())),()=>(s(m),h(()=>s(m).toLocaleString())),()=>(s(k),h(()=>s(k).live?"LIVE STREAMING":s(k).label.toUpperCase())),()=>(s(_),h(()=>{var l;return(l=s(_).stats.tokens)!=null&&l.totalTokens?(s(_).stats.tokens.totalTokens/1e3).toFixed(1)+"K":"—"})),()=>(s(f),s(p),h(()=>s(f)===0?"0.00%":(s(f)/Math.max(1,s(p))*100).toFixed(2)+"%")),()=>(s(C),h(()=>Math.min(100,s(C)/Math.max(1,s(C)+100)*100+20)))]),re("click",Gr,()=>{w(qe,"dashboard"),w(Pe,"live-feed")}),re("click",Xr,()=>{w(qe,"live-feed"),w(Pe,"live-feed")}),re("click",Jr,()=>{w(qe,"metrics"),w(Pe,"rules")}),re("click",Qr,()=>{w(qe,"arch-graph"),w(Pe,"live-feed")}),re("click",Zr,()=>{w(qe,"history")}),Kt(ui,()=>s(Qs),l=>w(Qs,l)),re("click",Er,ii),re("click",en,()=>{var l,b,A,O,$,q;w(Rs,!s(Rs)),w(Se,{provider:((l=s(_).runtime)==null?void 0:l.model.provider)??"",model:((b=s(_).runtime)==null?void 0:b.model.chatModel)??"",apiKey:"",chatTimeoutMs:((O=(A=s(_).runtime)==null?void 0:A.timeouts)==null?void 0:O.chatTimeoutMs)??"",checkTimeoutMs:((q=($=s(_).runtime)==null?void 0:$.timeouts)==null?void 0:q.checkTimeoutMs)??""}),w(Zt,"")}),re("click",ea,ci),re("click",Oi,ri),re("click",ra,vv(()=>w(Ct,!s(Ct)))),re("click",er,()=>w(Ve,!s(Ve))),re("click",Yi,()=>{const l=new Blob([JSON.stringify(s(_),null,2)],{type:"application/json"}),b=document.createElement("a");b.href=URL.createObjectURL(l),b.download="memory-core-snapshot.json",b.click()}),re("click",Sr,()=>Yr("sync")),re("click",Mr,()=>Yr("check-all")),re("click",aa,()=>Yr("tune")),T(e,Ua),ml()}Gc(cd,{target:document.getElementById("app")});
|