@shahmilsaari/memory-core 1.0.31 → 1.0.33
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/{chunk-KNZ3JNHE.js → chunk-23GUWJ6F.js} +1 -1
- package/dist/{chunk-4ZSVQMI7.js → chunk-GIPKVQSA.js} +61 -1
- package/dist/cli.js +95 -6
- package/dist/dashboard/assets/index-DqbNcMwV.js +2 -0
- package/dist/dashboard/assets/index-y7eHWJtq.css +1 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/{dashboard-server-FMKL4KZG.js → dashboard-server-LWMXEJHE.js} +179 -2
- package/dist/{db-Y6BXHLRN.js → db-FLFZZXG3.js} +15 -1
- package/package.json +5 -1
- package/dist/dashboard/assets/index-B5TFTqLb.js +0 -2
- package/dist/dashboard/assets/index-Cfkgvz08.css +0 -1
|
@@ -87,6 +87,18 @@ async function runMigrations() {
|
|
|
87
87
|
CREATE UNIQUE INDEX IF NOT EXISTS arch_profiles_name_project_idx
|
|
88
88
|
ON arch_profiles (name, COALESCE(project_name, ''))
|
|
89
89
|
`);
|
|
90
|
+
await client.query(`
|
|
91
|
+
CREATE TABLE IF NOT EXISTS users (
|
|
92
|
+
id SERIAL PRIMARY KEY,
|
|
93
|
+
email TEXT NOT NULL UNIQUE,
|
|
94
|
+
username TEXT NOT NULL UNIQUE,
|
|
95
|
+
password_hash TEXT NOT NULL,
|
|
96
|
+
role TEXT NOT NULL DEFAULT 'viewer',
|
|
97
|
+
team_name TEXT,
|
|
98
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
99
|
+
last_login TIMESTAMPTZ
|
|
100
|
+
)
|
|
101
|
+
`);
|
|
90
102
|
await client.query("COMMIT");
|
|
91
103
|
migrationsRun = true;
|
|
92
104
|
} catch (err) {
|
|
@@ -331,6 +343,47 @@ async function closePool() {
|
|
|
331
343
|
migrationsRun = false;
|
|
332
344
|
}
|
|
333
345
|
}
|
|
346
|
+
async function createUser(input) {
|
|
347
|
+
await runMigrations();
|
|
348
|
+
const result = await getPool().query(
|
|
349
|
+
`INSERT INTO users (email, username, password_hash, role, team_name)
|
|
350
|
+
VALUES ($1, $2, $3, $4, $5)
|
|
351
|
+
RETURNING *`,
|
|
352
|
+
[input.email, input.username, input.passwordHash, input.role ?? "viewer", input.teamName ?? null]
|
|
353
|
+
);
|
|
354
|
+
return result.rows[0];
|
|
355
|
+
}
|
|
356
|
+
async function getUserByEmail(email) {
|
|
357
|
+
await runMigrations();
|
|
358
|
+
const result = await getPool().query(`SELECT * FROM users WHERE email = $1`, [email]);
|
|
359
|
+
return result.rows[0] ?? null;
|
|
360
|
+
}
|
|
361
|
+
async function getUserById(id) {
|
|
362
|
+
await runMigrations();
|
|
363
|
+
const result = await getPool().query(`SELECT * FROM users WHERE id = $1`, [id]);
|
|
364
|
+
return result.rows[0] ?? null;
|
|
365
|
+
}
|
|
366
|
+
async function listUsers() {
|
|
367
|
+
await runMigrations();
|
|
368
|
+
const result = await getPool().query(
|
|
369
|
+
`SELECT id, email, username, role, team_name, created_at, last_login FROM users ORDER BY created_at ASC`
|
|
370
|
+
);
|
|
371
|
+
return result.rows;
|
|
372
|
+
}
|
|
373
|
+
async function updateLastLogin(id) {
|
|
374
|
+
await runMigrations();
|
|
375
|
+
await getPool().query(`UPDATE users SET last_login = NOW() WHERE id = $1`, [id]);
|
|
376
|
+
}
|
|
377
|
+
async function countUsers() {
|
|
378
|
+
await runMigrations();
|
|
379
|
+
const result = await getPool().query(`SELECT COUNT(*) FROM users`);
|
|
380
|
+
return parseInt(result.rows[0].count, 10);
|
|
381
|
+
}
|
|
382
|
+
async function deleteUser(id) {
|
|
383
|
+
await runMigrations();
|
|
384
|
+
const result = await getPool().query(`DELETE FROM users WHERE id = $1`, [id]);
|
|
385
|
+
return (result.rowCount ?? 0) > 0;
|
|
386
|
+
}
|
|
334
387
|
|
|
335
388
|
export {
|
|
336
389
|
Config,
|
|
@@ -349,5 +402,12 @@ export {
|
|
|
349
402
|
deleteMemories,
|
|
350
403
|
updateMemory,
|
|
351
404
|
searchMemories,
|
|
352
|
-
closePool
|
|
405
|
+
closePool,
|
|
406
|
+
createUser,
|
|
407
|
+
getUserByEmail,
|
|
408
|
+
getUserById,
|
|
409
|
+
listUsers,
|
|
410
|
+
updateLastLogin,
|
|
411
|
+
countUsers,
|
|
412
|
+
deleteUser
|
|
353
413
|
};
|
package/dist/cli.js
CHANGED
|
@@ -29,13 +29,13 @@ import {
|
|
|
29
29
|
toPortableMemory,
|
|
30
30
|
uninstallHook,
|
|
31
31
|
writeMemoryFile
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-23GUWJ6F.js";
|
|
33
33
|
import "./chunk-PQBWHAZN.js";
|
|
34
34
|
import {
|
|
35
35
|
closePool,
|
|
36
36
|
getPool,
|
|
37
37
|
runMigrations
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-GIPKVQSA.js";
|
|
39
39
|
import "./chunk-ZZBQEXEO.js";
|
|
40
40
|
|
|
41
41
|
// src/cli.ts
|
|
@@ -1738,7 +1738,7 @@ program.command("tune").description("Review and disable noisy rules with high fa
|
|
|
1738
1738
|
console.log(chalk.dim("\n No changes made.\n"));
|
|
1739
1739
|
}
|
|
1740
1740
|
});
|
|
1741
|
-
program.command("dashboard").description("Start the live Svelte dashboard with WebSocket watch events").option("-p, --port <port>", "Dashboard port", "5178").option("--path <dir>", "Directory to watch (default: current directory)").option("--no-watch", "Serve the dashboard without starting file watch").action(async (opts) => {
|
|
1741
|
+
program.command("dashboard").description("Start the live Svelte dashboard with WebSocket watch events").option("-p, --port <port>", "Dashboard port", "5178").option("--path <dir>", "Directory to watch (default: current directory)").option("--no-watch", "Serve the dashboard without starting file watch").option("--auth", "Enable JWT authentication (requires MC_JWT_SECRET in .memory-core.env)").action(async (opts) => {
|
|
1742
1742
|
const resolveDashboardPath = () => {
|
|
1743
1743
|
if (typeof opts.path === "string" && opts.path.trim().length > 0) return opts.path;
|
|
1744
1744
|
const withEquals = process.argv.find((arg) => arg.startsWith("--path="));
|
|
@@ -1755,11 +1755,12 @@ program.command("dashboard").description("Start the live Svelte dashboard with W
|
|
|
1755
1755
|
}
|
|
1756
1756
|
return void 0;
|
|
1757
1757
|
};
|
|
1758
|
-
const { startDashboard } = await import("./dashboard-server-
|
|
1758
|
+
const { startDashboard } = await import("./dashboard-server-LWMXEJHE.js");
|
|
1759
1759
|
await startDashboard({
|
|
1760
1760
|
port: parseInt(opts.port, 10),
|
|
1761
1761
|
path: resolveDashboardPath(),
|
|
1762
|
-
watch: opts.watch
|
|
1762
|
+
watch: opts.watch,
|
|
1763
|
+
auth: opts.auth ?? false
|
|
1763
1764
|
});
|
|
1764
1765
|
});
|
|
1765
1766
|
program.command("seed").description("Load all predefined memories into the database").option("--arch <architecture>", "Only seed a specific architecture (e.g. clean-architecture)").option("--force", "Re-seed even if memories already exist", false).action(async (opts) => {
|
|
@@ -2388,7 +2389,7 @@ program.command("check").description("Check staged changes against architecture
|
|
|
2388
2389
|
}
|
|
2389
2390
|
let storedMemories = [];
|
|
2390
2391
|
try {
|
|
2391
|
-
const { listMemories } = await import("./db-
|
|
2392
|
+
const { listMemories } = await import("./db-FLFZZXG3.js");
|
|
2392
2393
|
const allMemories = await listMemories({ limit: 1e4 });
|
|
2393
2394
|
const ranked = allMemories.filter((m) => ["rule", "pattern", "decision"].includes(m.type));
|
|
2394
2395
|
const changedLayers = packet.layersAffected;
|
|
@@ -2660,4 +2661,92 @@ arch.command("incident").description("Log a production incident and capture it a
|
|
|
2660
2661
|
console.log(chalk.dim(" Discarded.\n"));
|
|
2661
2662
|
}
|
|
2662
2663
|
});
|
|
2664
|
+
var CREDENTIALS_PATH = join(homedir(), ".memory-core", "credentials.json");
|
|
2665
|
+
function readCredentials() {
|
|
2666
|
+
try {
|
|
2667
|
+
return JSON.parse(readFileSync(CREDENTIALS_PATH, "utf-8"));
|
|
2668
|
+
} catch {
|
|
2669
|
+
return null;
|
|
2670
|
+
}
|
|
2671
|
+
}
|
|
2672
|
+
function writeCredentials(data) {
|
|
2673
|
+
mkdirSync(dirname(CREDENTIALS_PATH), { recursive: true });
|
|
2674
|
+
writeFileSync(CREDENTIALS_PATH, JSON.stringify(data, null, 2) + "\n", "utf-8");
|
|
2675
|
+
}
|
|
2676
|
+
function clearCredentials() {
|
|
2677
|
+
try {
|
|
2678
|
+
writeFileSync(CREDENTIALS_PATH, "{}", "utf-8");
|
|
2679
|
+
} catch {
|
|
2680
|
+
}
|
|
2681
|
+
}
|
|
2682
|
+
var authCmd = program.command("auth").description("Manage dashboard authentication");
|
|
2683
|
+
authCmd.command("setup").description("Create the first admin account (dashboard must be running with --auth)").option("--url <url>", "Dashboard URL", "http://localhost:5178").action(async (opts) => {
|
|
2684
|
+
const email = await input({ message: "Admin email:" });
|
|
2685
|
+
const username = await input({ message: "Admin username:" });
|
|
2686
|
+
const password2 = await password2({ message: "Password (min 8 chars):" });
|
|
2687
|
+
const teamName = await input({ message: "Team name (optional):" });
|
|
2688
|
+
const res = await fetch(`${opts.url}/api/auth/setup`, {
|
|
2689
|
+
method: "POST",
|
|
2690
|
+
headers: { "content-type": "application/json" },
|
|
2691
|
+
body: JSON.stringify({ email, username, password: password2, teamName: teamName || void 0 })
|
|
2692
|
+
});
|
|
2693
|
+
const data = await res.json();
|
|
2694
|
+
if (!res.ok) {
|
|
2695
|
+
console.error(chalk.red(` \u2717 ${data.error ?? "Setup failed"}`));
|
|
2696
|
+
process.exit(1);
|
|
2697
|
+
}
|
|
2698
|
+
writeCredentials({ token: data.token, email, username, dashboardUrl: opts.url });
|
|
2699
|
+
console.log(chalk.green(`
|
|
2700
|
+
\u2713 Admin created and logged in as ${username}
|
|
2701
|
+
`));
|
|
2702
|
+
console.log(chalk.gray(` Credentials saved to ${CREDENTIALS_PATH}
|
|
2703
|
+
`));
|
|
2704
|
+
});
|
|
2705
|
+
authCmd.command("login").description("Log in to a running dashboard (stores JWT locally)").option("--url <url>", "Dashboard URL", "http://localhost:5178").action(async (opts) => {
|
|
2706
|
+
const email = await input({ message: "Email:" });
|
|
2707
|
+
const password2 = await password2({ message: "Password:" });
|
|
2708
|
+
const res = await fetch(`${opts.url}/api/auth/login`, {
|
|
2709
|
+
method: "POST",
|
|
2710
|
+
headers: { "content-type": "application/json" },
|
|
2711
|
+
body: JSON.stringify({ email, password: password2 })
|
|
2712
|
+
});
|
|
2713
|
+
const data = await res.json();
|
|
2714
|
+
if (!res.ok) {
|
|
2715
|
+
console.error(chalk.red(` \u2717 ${data.error ?? "Login failed"}`));
|
|
2716
|
+
process.exit(1);
|
|
2717
|
+
}
|
|
2718
|
+
const user = data.user;
|
|
2719
|
+
writeCredentials({ token: data.token, email, username: user.username, dashboardUrl: opts.url });
|
|
2720
|
+
console.log(chalk.green(`
|
|
2721
|
+
\u2713 Logged in as ${user.username}
|
|
2722
|
+
`));
|
|
2723
|
+
});
|
|
2724
|
+
authCmd.command("logout").description("Clear locally stored credentials").action(() => {
|
|
2725
|
+
clearCredentials();
|
|
2726
|
+
console.log(chalk.green("\n \u2713 Logged out\n"));
|
|
2727
|
+
});
|
|
2728
|
+
authCmd.command("status").description("Show current auth status").action(async () => {
|
|
2729
|
+
const creds = readCredentials();
|
|
2730
|
+
if (!creds?.token) {
|
|
2731
|
+
console.log(chalk.yellow("\n Not logged in\n"));
|
|
2732
|
+
return;
|
|
2733
|
+
}
|
|
2734
|
+
try {
|
|
2735
|
+
const res = await fetch(`${creds.dashboardUrl}/api/auth/me`, {
|
|
2736
|
+
headers: { authorization: `Bearer ${creds.token}` }
|
|
2737
|
+
});
|
|
2738
|
+
const data = await res.json();
|
|
2739
|
+
if (!res.ok) {
|
|
2740
|
+
console.log(chalk.yellow("\n Token invalid or expired \u2014 run `memory-core auth login`\n"));
|
|
2741
|
+
return;
|
|
2742
|
+
}
|
|
2743
|
+
const user = data.user;
|
|
2744
|
+
console.log(chalk.green(`
|
|
2745
|
+
Logged in as ${user.username} (${user.email}) [${user.role}]`));
|
|
2746
|
+
console.log(chalk.gray(` Dashboard: ${creds.dashboardUrl}
|
|
2747
|
+
`));
|
|
2748
|
+
} catch {
|
|
2749
|
+
console.log(chalk.yellow("\n Dashboard not reachable\n"));
|
|
2750
|
+
}
|
|
2751
|
+
});
|
|
2663
2752
|
program.parseAsync(process.argv);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var Rc=Object.defineProperty;var $n=t=>{throw TypeError(t)};var Nc=(t,s,a)=>s in t?Rc(t,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[s]=a;var fs=(t,s,a)=>Nc(t,typeof s!="symbol"?s+"":s,a),ll=(t,s,a)=>s.has(t)||$n("Cannot "+a);var u=(t,s,a)=>(ll(t,s,"read from private field"),a?a.call(t):s.get(t)),ie=(t,s,a)=>s.has(t)?$n("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(t):s.set(t,a),fe=(t,s,a,r)=>(ll(t,s,"write to private field"),r?r.call(t,a):s.set(t,a),a),He=(t,s,a)=>(ll(t,s,"access private method"),a);(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const f of o.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&r(f)}).observe(document,{childList:!0,subtree:!0});function a(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(l){if(l.ep)return;l.ep=!0;const o=a(l);fetch(l.href,o)}})();const Dc=!1;var kl=Array.isArray,Ic=Array.prototype.indexOf,Ia=Array.prototype.includes,qr=Array.from,Pc=Object.defineProperty,sr=Object.getOwnPropertyDescriptor,ni=Object.getOwnPropertyDescriptors,jc=Object.prototype,Fc=Array.prototype,El=Object.getPrototypeOf,Hn=Object.isExtensible;const $c=()=>{};function Hc(t){return t()}function vl(t){for(var s=0;s<t.length;s++)t[s]()}function ii(){var t,s,a=new Promise((r,l)=>{t=r,s=l});return{promise:a,resolve:t,reject:s}}const Rt=2,Pa=4,pr=8,oi=1<<24,Cs=16,bs=32,na=64,dl=128,rs=512,it=1024,At=2048,ms=4096,Pt=8192,ls=16384,Ta=32768,Bn=1<<25,ja=65536,ul=1<<17,Bc=1<<18,Ha=1<<19,ci=1<<20,Ls=1<<25,xa=65536,Hr=1<<21,nr=1<<22,ra=1<<23,ma=Symbol("$state"),Vc=Symbol(""),js=new class extends Error{constructor(){super(...arguments);fs(this,"name","StaleReactionError");fs(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function Wc(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Uc(t,s,a){throw new Error("https://svelte.dev/e/each_key_duplicate")}function qc(t){throw new Error("https://svelte.dev/e/effect_in_teardown")}function zc(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Kc(t){throw new Error("https://svelte.dev/e/effect_orphan")}function Gc(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Yc(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Jc(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Xc(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Qc(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Zc=1,ev=2,vi=4,tv=8,sv=16,di=1,av=2,wt=Symbol(),ui="http://www.w3.org/1999/xhtml";function rv(){console.warn("https://svelte.dev/e/derived_inert")}function lv(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function nv(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function fi(t){return t===this.v}function iv(t,s){return t!=t?s==s:t!==s||t!==null&&typeof t=="object"||typeof t=="function"}function pi(t){return!iv(t,this.v)}let zr=!1,ov=!1;function cv(){zr=!0}let ot=null;function Fa(t){ot=t}function hi(t,s=!1,a){ot={p:ot,i:!1,c:null,e:null,s:t,x:null,r:pe,l:zr&&!s?{s:null,u:null,$:[]}:null}}function _i(t){var s=ot,a=s.e;if(a!==null){s.e=null;for(var r of a)Ii(r)}return s.i=!0,ot=s.p,{}}function hr(){return!zr||ot!==null&&ot.l===null}let da=[];function bi(){var t=da;da=[],vl(t)}function la(t){if(da.length===0&&!ar){var s=da;queueMicrotask(()=>{s===da&&bi()})}da.push(t)}function vv(){for(;da.length>0;)bi()}function mi(t){var s=pe;if(s===null)return ge.f|=ra,t;if(!(s.f&Ta)&&!(s.f&Pa))throw t;aa(t,s)}function aa(t,s){for(;s!==null;){if(s.f&dl){if(!(s.f&Ta))throw t;try{s.b.error(t);return}catch(a){t=a}}s=s.parent}throw t}const dv=-7169;function Xe(t,s){t.f=t.f&dv|s}function Sl(t){t.f&rs||t.deps===null?Xe(t,it):Xe(t,ms)}function gi(t){if(t!==null)for(const s of t)!(s.f&Rt)||!(s.f&xa)||(s.f^=xa,gi(s.deps))}function yi(t,s,a){t.f&At?s.add(t):t.f&ms&&a.add(t),gi(t.deps),Xe(t,it)}const va=new Set;let B=null,St=null,fl=null,ar=!1,nl=!1,Ca=null,Nr=null;var Vn=0;let uv=1;var Ma,Oa,fa,Fs,Ss,or,zt,cr,ta,$s,As,Ra,Na,pa,ct,Dr,wi,Ir,pl,Pr,fv;const Vr=class Vr{constructor(){ie(this,ct);fs(this,"id",uv++);fs(this,"current",new Map);fs(this,"previous",new Map);ie(this,Ma,new Set);ie(this,Oa,new Set);ie(this,fa,new Set);ie(this,Fs,new Map);ie(this,Ss,new Map);ie(this,or,null);ie(this,zt,[]);ie(this,cr,[]);ie(this,ta,new Set);ie(this,$s,new Set);ie(this,As,new Map);ie(this,Ra,new Set);fs(this,"is_fork",!1);ie(this,Na,!1);ie(this,pa,new Set)}skip_effect(s){u(this,As).has(s)||u(this,As).set(s,{d:[],m:[]}),u(this,Ra).delete(s)}unskip_effect(s,a=r=>this.schedule(r)){var r=u(this,As).get(s);if(r){u(this,As).delete(s);for(var l of r.d)Xe(l,At),a(l);for(l of r.m)Xe(l,ms),a(l)}u(this,Ra).add(s)}capture(s,a,r=!1){s.v!==wt&&!this.previous.has(s)&&this.previous.set(s,s.v),s.f&ra||(this.current.set(s,[a,r]),St==null||St.set(s,a)),this.is_fork||(s.v=a)}activate(){B=this}deactivate(){B=null,St=null}flush(){try{nl=!0,B=this,He(this,ct,Ir).call(this)}finally{Vn=0,fl=null,Ca=null,Nr=null,nl=!1,B=null,St=null,ga.clear()}}discard(){for(const s of u(this,Oa))s(this);u(this,Oa).clear(),u(this,fa).clear(),va.delete(this)}register_created_effect(s){u(this,cr).push(s)}increment(s,a){let r=u(this,Fs).get(a)??0;if(u(this,Fs).set(a,r+1),s){let l=u(this,Ss).get(a)??0;u(this,Ss).set(a,l+1)}}decrement(s,a,r){let l=u(this,Fs).get(a)??0;if(l===1?u(this,Fs).delete(a):u(this,Fs).set(a,l-1),s){let o=u(this,Ss).get(a)??0;o===1?u(this,Ss).delete(a):u(this,Ss).set(a,o-1)}u(this,Na)||r||(fe(this,Na,!0),la(()=>{fe(this,Na,!1),this.flush()}))}transfer_effects(s,a){for(const r of s)u(this,ta).add(r);for(const r of a)u(this,$s).add(r);s.clear(),a.clear()}oncommit(s){u(this,Ma).add(s)}ondiscard(s){u(this,Oa).add(s)}on_fork_commit(s){u(this,fa).add(s)}run_fork_commit_callbacks(){for(const s of u(this,fa))s(this);u(this,fa).clear()}settled(){return(u(this,or)??fe(this,or,ii())).promise}static ensure(){if(B===null){const s=B=new Vr;nl||(va.add(B),ar||la(()=>{B===s&&s.flush()}))}return B}apply(){{St=null;return}}schedule(s){var l;if(fl=s,(l=s.b)!=null&&l.is_pending&&s.f&(Pa|pr|oi)&&!(s.f&Ta)){s.b.defer_effect(s);return}for(var a=s;a.parent!==null;){a=a.parent;var r=a.f;if(Ca!==null&&a===pe&&(ge===null||!(ge.f&Rt)))return;if(r&(na|bs)){if(!(r&it))return;a.f^=it}}u(this,zt).push(a)}};Ma=new WeakMap,Oa=new WeakMap,fa=new WeakMap,Fs=new WeakMap,Ss=new WeakMap,or=new WeakMap,zt=new WeakMap,cr=new WeakMap,ta=new WeakMap,$s=new WeakMap,As=new WeakMap,Ra=new WeakMap,Na=new WeakMap,pa=new WeakMap,ct=new WeakSet,Dr=function(){return this.is_fork||u(this,Ss).size>0},wi=function(){for(const r of u(this,pa))for(const l of u(r,Ss).keys()){for(var s=!1,a=l;a.parent!==null;){if(u(this,As).has(a)){s=!0;break}a=a.parent}if(!s)return!0}return!1},Ir=function(){var _,d;if(Vn++>1e3&&(va.delete(this),hv()),!He(this,ct,Dr).call(this)){for(const h of u(this,ta))u(this,$s).delete(h),Xe(h,At),this.schedule(h);for(const h of u(this,$s))Xe(h,ms),this.schedule(h)}const s=u(this,zt);fe(this,zt,[]),this.apply();var a=Ca=[],r=[],l=Nr=[];for(const h of s)try{He(this,ct,pl).call(this,h,a,r)}catch(w){throw Ei(h),w}if(B=null,l.length>0){var o=Vr.ensure();for(const h of l)o.schedule(h)}if(Ca=null,Nr=null,He(this,ct,Dr).call(this)||He(this,ct,wi).call(this)){He(this,ct,Pr).call(this,r),He(this,ct,Pr).call(this,a);for(const[h,w]of u(this,As))ki(h,w)}else{u(this,Fs).size===0&&va.delete(this),u(this,ta).clear(),u(this,$s).clear();for(const h of u(this,Ma))h(this);u(this,Ma).clear(),Wn(r),Wn(a),(_=u(this,or))==null||_.resolve()}var f=B;if(u(this,zt).length>0){const h=f??(f=this);u(h,zt).push(...u(this,zt).filter(w=>!u(h,zt).includes(w)))}f!==null&&(va.add(f),He(d=f,ct,Ir).call(d))},pl=function(s,a,r){s.f^=it;for(var l=s.first;l!==null;){var o=l.f,f=(o&(bs|na))!==0,_=f&&(o&it)!==0,d=_||(o&Pt)!==0||u(this,As).has(l);if(!d&&l.fn!==null){f?l.f^=it:o&Pa?a.push(l):Ba(l)&&(o&Cs&&u(this,$s).add(l),Aa(l));var h=l.first;if(h!==null){l=h;continue}}for(;l!==null;){var w=l.next;if(w!==null){l=w;break}l=l.parent}}},Pr=function(s){for(var a=0;a<s.length;a+=1)yi(s[a],u(this,ta),u(this,$s))},fv=function(){var w,I,T;for(const E of va){var s=E.id<this.id,a=[];for(const[x,[W,S]]of this.current){if(E.current.has(x)){var r=E.current.get(x)[0];if(s&&W!==r)E.current.set(x,[W,S]);else continue}a.push(x)}var l=[...E.current.keys()].filter(x=>!this.current.has(x));if(l.length===0)s&&E.discard();else if(a.length>0){if(s)for(const x of u(this,Ra))E.unskip_effect(x,W=>{var S;W.f&(Cs|nr)?E.schedule(W):He(S=E,ct,Pr).call(S,[W])});E.activate();var o=new Set,f=new Map;for(var _ of a)xi(_,l,o,f);f=new Map;var d=[...E.current.keys()].filter(x=>this.current.has(x)?this.current.get(x)[0]!==x:!0);for(const x of u(this,cr))!(x.f&(ls|Pt|ul))&&Al(x,d,f)&&(x.f&(nr|Cs)?(Xe(x,At),E.schedule(x)):u(E,ta).add(x));if(u(E,zt).length>0){E.apply();for(var h of u(E,zt))He(w=E,ct,pl).call(w,h,[],[]);fe(E,zt,[])}E.deactivate()}}for(const E of va)u(E,pa).has(this)&&(u(E,pa).delete(this),u(E,pa).size===0&&!He(I=E,ct,Dr).call(I)&&(E.activate(),He(T=E,ct,Ir).call(T)))};let ka=Vr;function pv(t){var s=ar;ar=!0;try{for(var a;;){if(vv(),B===null)return a;B.flush()}}finally{ar=s}}function hv(){try{Gc()}catch(t){aa(t,fl)}}let ps=null;function Wn(t){var s=t.length;if(s!==0){for(var a=0;a<s;){var r=t[a++];if(!(r.f&(ls|Pt))&&Ba(r)&&(ps=new Set,Aa(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&ji(r),(ps==null?void 0:ps.size)>0)){ga.clear();for(const l of ps){if(l.f&(ls|Pt))continue;const o=[l];let f=l.parent;for(;f!==null;)ps.has(f)&&(ps.delete(f),o.push(f)),f=f.parent;for(let _=o.length-1;_>=0;_--){const d=o[_];d.f&(ls|Pt)||Aa(d)}}ps.clear()}}ps=null}}function xi(t,s,a,r){if(!a.has(t)&&(a.add(t),t.reactions!==null))for(const l of t.reactions){const o=l.f;o&Rt?xi(l,s,a,r):o&(nr|Cs)&&!(o&At)&&Al(l,s,r)&&(Xe(l,At),Tl(l))}}function Al(t,s,a){const r=a.get(t);if(r!==void 0)return r;if(t.deps!==null)for(const l of t.deps){if(Ia.call(s,l))return!0;if(l.f&Rt&&Al(l,s,a))return a.set(l,!0),!0}return a.set(t,!1),!1}function Tl(t){B.schedule(t)}function ki(t,s){if(!(t.f&bs&&t.f&it)){t.f&At?s.d.push(t):t.f&ms&&s.m.push(t),Xe(t,it);for(var a=t.first;a!==null;)ki(a,s),a=a.next}}function Ei(t){Xe(t,it);for(var s=t.first;s!==null;)Ei(s),s=s.next}function _v(t){let s=0,a=Ea(0),r;return()=>{Ol()&&(e(a),br(()=>(s===0&&(r=c(()=>t(()=>rr(a)))),s+=1,()=>{la(()=>{s-=1,s===0&&(r==null||r(),r=void 0,rr(a))})})))}}var bv=ja|Ha;function mv(t,s,a,r){new gv(t,s,a,r)}var es,xl,ts,ha,$t,ss,It,Kt,Hs,_a,sa,Da,vr,dr,Bs,Wr,Qe,yv,wv,xv,hl,jr,Fr,_l,bl;class gv{constructor(s,a,r,l){ie(this,Qe);fs(this,"parent");fs(this,"is_pending",!1);fs(this,"transform_error");ie(this,es);ie(this,xl,null);ie(this,ts);ie(this,ha);ie(this,$t);ie(this,ss,null);ie(this,It,null);ie(this,Kt,null);ie(this,Hs,null);ie(this,_a,0);ie(this,sa,0);ie(this,Da,!1);ie(this,vr,new Set);ie(this,dr,new Set);ie(this,Bs,null);ie(this,Wr,_v(()=>(fe(this,Bs,Ea(u(this,_a))),()=>{fe(this,Bs,null)})));var o;fe(this,es,s),fe(this,ts,a),fe(this,ha,f=>{var _=pe;_.b=this,_.f|=dl,r(f)}),this.parent=pe.b,this.transform_error=l??((o=this.parent)==null?void 0:o.transform_error)??(f=>f),fe(this,$t,Nl(()=>{He(this,Qe,hl).call(this)},bv))}defer_effect(s){yi(s,u(this,vr),u(this,dr))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!u(this,ts).pending}update_pending_count(s,a){He(this,Qe,_l).call(this,s,a),fe(this,_a,u(this,_a)+s),!(!u(this,Bs)||u(this,Da))&&(fe(this,Da,!0),la(()=>{fe(this,Da,!1),u(this,Bs)&&Sa(u(this,Bs),u(this,_a))}))}get_effect_pending(){return u(this,Wr).call(this),e(u(this,Bs))}error(s){if(!u(this,ts).onerror&&!u(this,ts).failed)throw s;B!=null&&B.is_fork?(u(this,ss)&&B.skip_effect(u(this,ss)),u(this,It)&&B.skip_effect(u(this,It)),u(this,Kt)&&B.skip_effect(u(this,Kt)),B.on_fork_commit(()=>{He(this,Qe,bl).call(this,s)})):He(this,Qe,bl).call(this,s)}}es=new WeakMap,xl=new WeakMap,ts=new WeakMap,ha=new WeakMap,$t=new WeakMap,ss=new WeakMap,It=new WeakMap,Kt=new WeakMap,Hs=new WeakMap,_a=new WeakMap,sa=new WeakMap,Da=new WeakMap,vr=new WeakMap,dr=new WeakMap,Bs=new WeakMap,Wr=new WeakMap,Qe=new WeakSet,yv=function(){try{fe(this,ss,as(()=>u(this,ha).call(this,u(this,es))))}catch(s){this.error(s)}},wv=function(s){const a=u(this,ts).failed;a&&fe(this,Kt,as(()=>{a(u(this,es),()=>s,()=>()=>{})}))},xv=function(){const s=u(this,ts).pending;s&&(this.is_pending=!0,fe(this,It,as(()=>s(u(this,es)))),la(()=>{var a=fe(this,Hs,document.createDocumentFragment()),r=Ws();a.append(r),fe(this,ss,He(this,Qe,Fr).call(this,()=>as(()=>u(this,ha).call(this,r)))),u(this,sa)===0&&(u(this,es).before(a),fe(this,Hs,null),ya(u(this,It),()=>{fe(this,It,null)}),He(this,Qe,jr).call(this,B))}))},hl=function(){try{if(this.is_pending=this.has_pending_snippet(),fe(this,sa,0),fe(this,_a,0),fe(this,ss,as(()=>{u(this,ha).call(this,u(this,es))})),u(this,sa)>0){var s=fe(this,Hs,document.createDocumentFragment());Pl(u(this,ss),s);const a=u(this,ts).pending;fe(this,It,as(()=>a(u(this,es))))}else He(this,Qe,jr).call(this,B)}catch(a){this.error(a)}},jr=function(s){this.is_pending=!1,s.transfer_effects(u(this,vr),u(this,dr))},Fr=function(s){var a=pe,r=ge,l=ot;os(u(this,$t)),is(u(this,$t)),Fa(u(this,$t).ctx);try{return ka.ensure(),s()}catch(o){return mi(o),null}finally{os(a),is(r),Fa(l)}},_l=function(s,a){var r;if(!this.has_pending_snippet()){this.parent&&He(r=this.parent,Qe,_l).call(r,s,a);return}fe(this,sa,u(this,sa)+s),u(this,sa)===0&&(He(this,Qe,jr).call(this,a),u(this,It)&&ya(u(this,It),()=>{fe(this,It,null)}),u(this,Hs)&&(u(this,es).before(u(this,Hs)),fe(this,Hs,null)))},bl=function(s){u(this,ss)&&(Bt(u(this,ss)),fe(this,ss,null)),u(this,It)&&(Bt(u(this,It)),fe(this,It,null)),u(this,Kt)&&(Bt(u(this,Kt)),fe(this,Kt,null));var a=u(this,ts).onerror;let r=u(this,ts).failed;var l=!1,o=!1;const f=()=>{if(l){nv();return}l=!0,o&&Qc(),u(this,Kt)!==null&&ya(u(this,Kt),()=>{fe(this,Kt,null)}),He(this,Qe,Fr).call(this,()=>{He(this,Qe,hl).call(this)})},_=d=>{try{o=!0,a==null||a(d,f),o=!1}catch(h){aa(h,u(this,$t)&&u(this,$t).parent)}r&&fe(this,Kt,He(this,Qe,Fr).call(this,()=>{try{return as(()=>{var h=pe;h.b=this,h.f|=dl,r(u(this,es),()=>d,()=>f)})}catch(h){return aa(h,u(this,$t).parent),null}}))};la(()=>{var d;try{d=this.transform_error(s)}catch(h){aa(h,u(this,$t)&&u(this,$t).parent);return}d!==null&&typeof d=="object"&&typeof d.then=="function"?d.then(_,h=>aa(h,u(this,$t)&&u(this,$t).parent)):_(d)})};function kv(t,s,a,r){const l=hr()?Ll:Dt;var o=t.filter(T=>!T.settled);if(a.length===0&&o.length===0){r(s.map(l));return}var f=pe,_=Ev(),d=o.length===1?o[0].promise:o.length>1?Promise.all(o.map(T=>T.promise)):null;function h(T){_();try{r(T)}catch(E){f.f&ls||aa(E,f)}Br()}if(a.length===0){d.then(()=>h(s.map(l)));return}var w=Si();function I(){Promise.all(a.map(T=>Sv(T))).then(T=>h([...s.map(l),...T])).catch(T=>aa(T,f)).finally(()=>w())}d?d.then(()=>{_(),I(),Br()}):I()}function Ev(){var t=pe,s=ge,a=ot,r=B;return function(o=!0){os(t),is(s),Fa(a),o&&!(t.f&ls)&&(r==null||r.activate(),r==null||r.apply())}}function Br(t=!0){os(null),is(null),Fa(null),t&&(B==null||B.deactivate())}function Si(){var t=pe,s=t.b,a=B,r=s.is_rendered();return s.update_pending_count(1,a),a.increment(r,t),(l=!1)=>{s.update_pending_count(-1,a),a.decrement(r,t,l)}}function Ll(t){var s=Rt|At;return pe!==null&&(pe.f|=Ha),{ctx:ot,deps:null,effects:null,equals:fi,f:s,fn:t,reactions:null,rv:0,v:wt,wv:0,parent:pe,ac:null}}function Sv(t,s,a){let r=pe;r===null&&Wc();var l=void 0,o=Ea(wt),f=!ge,_=new Map;return $v(()=>{var E;var d=pe,h=ii();l=h.promise;try{Promise.resolve(t()).then(h.resolve,h.reject).finally(Br)}catch(x){h.reject(x),Br()}var w=B;if(f){if(d.f&Ta)var I=Si();if(r.b.is_rendered())(E=_.get(w))==null||E.reject(js),_.delete(w);else{for(const x of _.values())x.reject(js);_.clear()}_.set(w,h)}const T=(x,W=void 0)=>{if(I){var S=W===js;I(S)}if(!(W===js||d.f&ls)){if(w.activate(),W)o.f|=ra,Sa(o,W);else{o.f&ra&&(o.f^=ra),Sa(o,x);for(const[Y,Le]of _){if(_.delete(Y),Y===w)break;Le.reject(js)}}w.deactivate()}};h.promise.then(T,x=>T(null,x||"unknown"))}),Rl(()=>{for(const d of _.values())d.reject(js)}),new Promise(d=>{function h(w){function I(){w===l?d(o):h(l)}w.then(I,I)}h(l)})}function Dt(t){const s=Ll(t);return s.equals=pi,s}function Av(t){var s=t.effects;if(s!==null){t.effects=null;for(var a=0;a<s.length;a+=1)Bt(s[a])}}function Cl(t){var s,a=pe,r=t.parent;if(!ia&&r!==null&&r.f&(ls|Pt))return rv(),t.v;os(r);try{t.f&=~xa,Av(t),s=Wi(t)}finally{os(a)}return s}function Ai(t){var s=Cl(t);if(!t.equals(s)&&(t.wv=Bi(),(!(B!=null&&B.is_fork)||t.deps===null)&&(B!==null?B.capture(t,s,!0):t.v=s,t.deps===null))){Xe(t,it);return}ia||(St!==null?(Ol()||B!=null&&B.is_fork)&&St.set(t,s):Sl(t))}function Tv(t){var s,a;if(t.effects!==null)for(const r of t.effects)(r.teardown||r.ac)&&((s=r.teardown)==null||s.call(r),(a=r.ac)==null||a.abort(js),r.teardown=$c,r.ac=null,ir(r,0),Dl(r))}function Ti(t){if(t.effects!==null)for(const s of t.effects)s.teardown&&Aa(s)}let ml=new Set;const ga=new Map;let Li=!1;function Ea(t,s){var a={f:0,v:t,reactions:null,equals:fi,rv:0,wv:0};return a}function Xs(t,s){const a=Ea(t);return Wv(a),a}function j(t,s=!1,a=!0){var l;const r=Ea(t);return s||(r.equals=pi),zr&&a&&ot!==null&&ot.l!==null&&((l=ot.l).s??(l.s=[])).push(r),r}function gt(t,s){return p(t,c(()=>e(t))),s}function p(t,s,a=!1){ge!==null&&(!_s||ge.f&ul)&&hr()&&ge.f&(Rt|Cs|nr|ul)&&(ns===null||!Ia.call(ns,t))&&Xc();let r=a?er(s):s;return Sa(t,r,Nr)}function Sa(t,s,a=null){if(!t.equals(s)){ga.set(t,ia?s:t.v);var r=ka.ensure();if(r.capture(t,s),t.f&Rt){const l=t;t.f&At&&Cl(l),St===null&&Sl(l)}t.wv=Bi(),Ci(t,At,a),hr()&&pe!==null&&pe.f&it&&!(pe.f&(bs|na))&&(Zt===null?Uv([t]):Zt.push(t)),!r.is_fork&&ml.size>0&&!Li&&Lv()}return s}function Lv(){Li=!1;for(const t of ml)t.f&it&&Xe(t,ms),Ba(t)&&Aa(t);ml.clear()}function rr(t){p(t,t.v+1)}function Ci(t,s,a){var r=t.reactions;if(r!==null)for(var l=hr(),o=r.length,f=0;f<o;f++){var _=r[f],d=_.f;if(!(!l&&_===pe)){var h=(d&At)===0;if(h&&Xe(_,s),d&Rt){var w=_;St==null||St.delete(w),d&xa||(d&rs&&(pe===null||!(pe.f&Hr))&&(_.f|=xa),Ci(w,ms,a))}else if(h){var I=_;d&Cs&&ps!==null&&ps.add(I),a!==null?a.push(I):Tl(I)}}}}function er(t){if(typeof t!="object"||t===null||ma in t)return t;const s=El(t);if(s!==jc&&s!==Fc)return t;var a=new Map,r=kl(t),l=Xs(0),o=wa,f=_=>{if(wa===o)return _();var d=ge,h=wa;is(null),Yn(o);var w=_();return is(d),Yn(h),w};return r&&a.set("length",Xs(t.length)),new Proxy(t,{defineProperty(_,d,h){(!("value"in h)||h.configurable===!1||h.enumerable===!1||h.writable===!1)&&Yc();var w=a.get(d);return w===void 0?f(()=>{var I=Xs(h.value);return a.set(d,I),I}):p(w,h.value,!0),!0},deleteProperty(_,d){var h=a.get(d);if(h===void 0){if(d in _){const w=f(()=>Xs(wt));a.set(d,w),rr(l)}}else p(h,wt),rr(l);return!0},get(_,d,h){var E;if(d===ma)return t;var w=a.get(d),I=d in _;if(w===void 0&&(!I||(E=sr(_,d))!=null&&E.writable)&&(w=f(()=>{var x=er(I?_[d]:wt),W=Xs(x);return W}),a.set(d,w)),w!==void 0){var T=e(w);return T===wt?void 0:T}return Reflect.get(_,d,h)},getOwnPropertyDescriptor(_,d){var h=Reflect.getOwnPropertyDescriptor(_,d);if(h&&"value"in h){var w=a.get(d);w&&(h.value=e(w))}else if(h===void 0){var I=a.get(d),T=I==null?void 0:I.v;if(I!==void 0&&T!==wt)return{enumerable:!0,configurable:!0,value:T,writable:!0}}return h},has(_,d){var T;if(d===ma)return!0;var h=a.get(d),w=h!==void 0&&h.v!==wt||Reflect.has(_,d);if(h!==void 0||pe!==null&&(!w||(T=sr(_,d))!=null&&T.writable)){h===void 0&&(h=f(()=>{var E=w?er(_[d]):wt,x=Xs(E);return x}),a.set(d,h));var I=e(h);if(I===wt)return!1}return w},set(_,d,h,w){var Se;var I=a.get(d),T=d in _;if(r&&d==="length")for(var E=h;E<I.v;E+=1){var x=a.get(E+"");x!==void 0?p(x,wt):E in _&&(x=f(()=>Xs(wt)),a.set(E+"",x))}if(I===void 0)(!T||(Se=sr(_,d))!=null&&Se.writable)&&(I=f(()=>Xs(void 0)),p(I,er(h)),a.set(d,I));else{T=I.v!==wt;var W=f(()=>er(h));p(I,W)}var S=Reflect.getOwnPropertyDescriptor(_,d);if(S!=null&&S.set&&S.set.call(w,h),!T){if(r&&typeof d=="string"){var Y=a.get("length"),Le=Number(d);Number.isInteger(Le)&&Le>=Y.v&&p(Y,Le+1)}rr(l)}return!0},ownKeys(_){e(l);var d=Reflect.ownKeys(_).filter(I=>{var T=a.get(I);return T===void 0||T.v!==wt});for(var[h,w]of a)w.v!==wt&&!(h in _)&&d.push(h);return d},setPrototypeOf(){Jc()}})}function Un(t){try{if(t!==null&&typeof t=="object"&&ma in t)return t[ma]}catch{}return t}function Cv(t,s){return Object.is(Un(t),Un(s))}var qn,Mi,Oi,Ri;function Mv(){if(qn===void 0){qn=window,Mi=/Firefox/.test(navigator.userAgent);var t=Element.prototype,s=Node.prototype,a=Text.prototype;Oi=sr(s,"firstChild").get,Ri=sr(s,"nextSibling").get,Hn(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),Hn(a)&&(a.__t=void 0)}}function Ws(t=""){return document.createTextNode(t)}function Vs(t){return Oi.call(t)}function _r(t){return Ri.call(t)}function n(t,s){return Vs(t)}function Be(t,s=!1){{var a=Vs(t);return a instanceof Comment&&a.data===""?_r(a):a}}function i(t,s=1,a=!1){let r=t;for(;s--;)r=_r(r);return r}function Ov(t){t.textContent=""}function Ni(){return!1}function Rv(t,s,a){return document.createElementNS(ui,t,void 0)}let zn=!1;function Nv(){zn||(zn=!0,document.addEventListener("reset",t=>{Promise.resolve().then(()=>{var s;if(!t.defaultPrevented)for(const a of t.target.elements)(s=a.__on_r)==null||s.call(a)})},{capture:!0}))}function Kr(t){var s=ge,a=pe;is(null),os(null);try{return t()}finally{is(s),os(a)}}function Ml(t,s,a,r=a){t.addEventListener(s,()=>Kr(a));const l=t.__on_r;l?t.__on_r=()=>{l(),r(!0)}:t.__on_r=()=>r(!0),Nv()}function Di(t){pe===null&&(ge===null&&Kc(),zc()),ia&&qc()}function Dv(t,s){var a=s.last;a===null?s.last=s.first=t:(a.next=t,t.prev=a,s.last=t)}function Ms(t,s){var a=pe;a!==null&&a.f&Pt&&(t|=Pt);var r={ctx:ot,deps:null,nodes:null,f:t|At|rs,first:null,fn:s,last:null,next:null,parent:a,b:a&&a.b,prev:null,teardown:null,wv:0,ac:null};B==null||B.register_created_effect(r);var l=r;if(t&Pa)Ca!==null?Ca.push(r):ka.ensure().schedule(r);else if(s!==null){try{Aa(r)}catch(f){throw Bt(r),f}l.deps===null&&l.teardown===null&&l.nodes===null&&l.first===l.last&&!(l.f&Ha)&&(l=l.first,t&Cs&&t&ja&&l!==null&&(l.f|=ja))}if(l!==null&&(l.parent=a,a!==null&&Dv(l,a),ge!==null&&ge.f&Rt&&!(t&na))){var o=ge;(o.effects??(o.effects=[])).push(l)}return r}function Ol(){return ge!==null&&!_s}function Rl(t){const s=Ms(pr,null);return Xe(s,it),s.teardown=t,s}function Kn(t){Di();var s=pe.f,a=!ge&&(s&bs)!==0&&(s&Ta)===0;if(a){var r=ot;(r.e??(r.e=[])).push(t)}else return Ii(t)}function Ii(t){return Ms(Pa|ci,t)}function Iv(t){return Di(),Ms(pr|ci,t)}function Pv(t){ka.ensure();const s=Ms(na|Ha,t);return(a={})=>new Promise(r=>{a.outro?ya(s,()=>{Bt(s),r(void 0)}):(Bt(s),r(void 0))})}function jv(t){return Ms(Pa,t)}function Je(t,s){var a=ot,r={effect:null,ran:!1,deps:t};a.l.$.push(r),r.effect=br(()=>{if(t(),!r.ran){r.ran=!0;var l=pe;try{os(l.parent),c(s)}finally{os(l)}}})}function Fv(){var t=ot;br(()=>{for(var s of t.l.$){s.deps();var a=s.effect;a.f&it&&a.deps!==null&&Xe(a,ms),Ba(a)&&Aa(a),s.ran=!1}})}function $v(t){return Ms(nr|Ha,t)}function br(t,s=0){return Ms(pr|s,t)}function P(t,s=[],a=[],r=[]){kv(r,s,a,l=>{Ms(pr,()=>t(...l.map(e)))})}function Nl(t,s=0){var a=Ms(Cs|s,t);return a}function as(t){return Ms(bs|Ha,t)}function Pi(t){var s=t.teardown;if(s!==null){const a=ia,r=ge;Gn(!0),is(null);try{s.call(null)}finally{Gn(a),is(r)}}}function Dl(t,s=!1){var a=t.first;for(t.first=t.last=null;a!==null;){const l=a.ac;l!==null&&Kr(()=>{l.abort(js)});var r=a.next;a.f&na?a.parent=null:Bt(a,s),a=r}}function Hv(t){for(var s=t.first;s!==null;){var a=s.next;s.f&bs||Bt(s),s=a}}function Bt(t,s=!0){var a=!1;(s||t.f&Bc)&&t.nodes!==null&&t.nodes.end!==null&&(Bv(t.nodes.start,t.nodes.end),a=!0),Xe(t,Bn),Dl(t,s&&!a),ir(t,0);var r=t.nodes&&t.nodes.t;if(r!==null)for(const o of r)o.stop();Pi(t),t.f^=Bn,t.f|=ls;var l=t.parent;l!==null&&l.first!==null&&ji(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=t.b=null}function Bv(t,s){for(;t!==null;){var a=t===s?null:_r(t);t.remove(),t=a}}function ji(t){var s=t.parent,a=t.prev,r=t.next;a!==null&&(a.next=r),r!==null&&(r.prev=a),s!==null&&(s.first===t&&(s.first=r),s.last===t&&(s.last=a))}function ya(t,s,a=!0){var r=[];Fi(t,r,!0);var l=()=>{a&&Bt(t),s&&s()},o=r.length;if(o>0){var f=()=>--o||l();for(var _ of r)_.out(f)}else l()}function Fi(t,s,a){if(!(t.f&Pt)){t.f^=Pt;var r=t.nodes&&t.nodes.t;if(r!==null)for(const _ of r)(_.is_global||a)&&s.push(_);for(var l=t.first;l!==null;){var o=l.next;if(!(l.f&na)){var f=(l.f&ja)!==0||(l.f&bs)!==0&&(t.f&Cs)!==0;Fi(l,s,f?a:!1)}l=o}}}function Il(t){$i(t,!0)}function $i(t,s){if(t.f&Pt){t.f^=Pt,t.f&it||(Xe(t,At),ka.ensure().schedule(t));for(var a=t.first;a!==null;){var r=a.next,l=(a.f&ja)!==0||(a.f&bs)!==0;$i(a,l?s:!1),a=r}var o=t.nodes&&t.nodes.t;if(o!==null)for(const f of o)(f.is_global||s)&&f.in()}}function Pl(t,s){if(t.nodes)for(var a=t.nodes.start,r=t.nodes.end;a!==null;){var l=a===r?null:_r(a);s.append(a),a=l}}let ea=null;function Vv(t){var s=ea;try{if(ea=new Set,c(t),s!==null)for(var a of ea)s.add(a);return ea}finally{ea=s}}function Qa(t){for(var s of Vv(t))Sa(s,s.v)}let $r=!1,ia=!1;function Gn(t){ia=t}let ge=null,_s=!1;function is(t){ge=t}let pe=null;function os(t){pe=t}let ns=null;function Wv(t){ge!==null&&(ns===null?ns=[t]:ns.push(t))}let Ht=null,qt=0,Zt=null;function Uv(t){Zt=t}let Hi=1,ua=0,wa=ua;function Yn(t){wa=t}function Bi(){return++Hi}function Ba(t){var s=t.f;if(s&At)return!0;if(s&Rt&&(t.f&=~xa),s&ms){for(var a=t.deps,r=a.length,l=0;l<r;l++){var o=a[l];if(Ba(o)&&Ai(o),o.wv>t.wv)return!0}s&rs&&St===null&&Xe(t,it)}return!1}function Vi(t,s,a=!0){var r=t.reactions;if(r!==null&&!(ns!==null&&Ia.call(ns,t)))for(var l=0;l<r.length;l++){var o=r[l];o.f&Rt?Vi(o,s,!1):s===o&&(a?Xe(o,At):o.f&it&&Xe(o,ms),Tl(o))}}function Wi(t){var W;var s=Ht,a=qt,r=Zt,l=ge,o=ns,f=ot,_=_s,d=wa,h=t.f;Ht=null,qt=0,Zt=null,ge=h&(bs|na)?null:t,ns=null,Fa(t.ctx),_s=!1,wa=++ua,t.ac!==null&&(Kr(()=>{t.ac.abort(js)}),t.ac=null);try{t.f|=Hr;var w=t.fn,I=w();t.f|=Ta;var T=t.deps,E=B==null?void 0:B.is_fork;if(Ht!==null){var x;if(E||ir(t,qt),T!==null&&qt>0)for(T.length=qt+Ht.length,x=0;x<Ht.length;x++)T[qt+x]=Ht[x];else t.deps=T=Ht;if(Ol()&&t.f&rs)for(x=qt;x<T.length;x++)((W=T[x]).reactions??(W.reactions=[])).push(t)}else!E&&T!==null&&qt<T.length&&(ir(t,qt),T.length=qt);if(hr()&&Zt!==null&&!_s&&T!==null&&!(t.f&(Rt|ms|At)))for(x=0;x<Zt.length;x++)Vi(Zt[x],t);if(l!==null&&l!==t){if(ua++,l.deps!==null)for(let S=0;S<a;S+=1)l.deps[S].rv=ua;if(s!==null)for(const S of s)S.rv=ua;Zt!==null&&(r===null?r=Zt:r.push(...Zt))}return t.f&ra&&(t.f^=ra),I}catch(S){return mi(S)}finally{t.f^=Hr,Ht=s,qt=a,Zt=r,ge=l,ns=o,Fa(f),_s=_,wa=d}}function qv(t,s){let a=s.reactions;if(a!==null){var r=Ic.call(a,t);if(r!==-1){var l=a.length-1;l===0?a=s.reactions=null:(a[r]=a[l],a.pop())}}if(a===null&&s.f&Rt&&(Ht===null||!Ia.call(Ht,s))){var o=s;o.f&rs&&(o.f^=rs,o.f&=~xa),o.v!==wt&&Sl(o),Tv(o),ir(o,0)}}function ir(t,s){var a=t.deps;if(a!==null)for(var r=s;r<a.length;r++)qv(t,a[r])}function Aa(t){var s=t.f;if(!(s&ls)){Xe(t,it);var a=pe,r=$r;pe=t,$r=!0;try{s&(Cs|oi)?Hv(t):Dl(t),Pi(t);var l=Wi(t);t.teardown=typeof l=="function"?l:null,t.wv=Hi;var o;Dc&&ov&&t.f&At&&t.deps}finally{$r=r,pe=a}}}async function zv(){await Promise.resolve(),pv()}function e(t){var s=t.f,a=(s&Rt)!==0;if(ea==null||ea.add(t),ge!==null&&!_s){var r=pe!==null&&(pe.f&ls)!==0;if(!r&&(ns===null||!Ia.call(ns,t))){var l=ge.deps;if(ge.f&Hr)t.rv<ua&&(t.rv=ua,Ht===null&&l!==null&&l[qt]===t?qt++:Ht===null?Ht=[t]:Ht.push(t));else{(ge.deps??(ge.deps=[])).push(t);var o=t.reactions;o===null?t.reactions=[ge]:Ia.call(o,ge)||o.push(ge)}}}if(ia&&ga.has(t))return ga.get(t);if(a){var f=t;if(ia){var _=f.v;return(!(f.f&it)&&f.reactions!==null||qi(f))&&(_=Cl(f)),ga.set(f,_),_}var d=(f.f&rs)===0&&!_s&&ge!==null&&($r||(ge.f&rs)!==0),h=(f.f&Ta)===0;Ba(f)&&(d&&(f.f|=rs),Ai(f)),d&&!h&&(Ti(f),Ui(f))}if(St!=null&&St.has(t))return St.get(t);if(t.f&ra)throw t.v;return t.v}function Ui(t){if(t.f|=rs,t.deps!==null)for(const s of t.deps)(s.reactions??(s.reactions=[])).push(t),s.f&Rt&&!(s.f&rs)&&(Ti(s),Ui(s))}function qi(t){if(t.v===wt)return!0;if(t.deps===null)return!1;for(const s of t.deps)if(ga.has(s)||s.f&Rt&&qi(s))return!0;return!1}function c(t){var s=_s;try{return _s=!0,t()}finally{_s=s}}function yt(t){if(!(typeof t!="object"||!t||t instanceof EventTarget)){if(ma in t)gl(t);else if(!Array.isArray(t))for(let s in t){const a=t[s];typeof a=="object"&&a&&ma in a&&gl(a)}}}function gl(t,s=new Set){if(typeof t=="object"&&t!==null&&!(t instanceof EventTarget)&&!s.has(t)){s.add(t),t instanceof Date&&t.getTime();for(let r in t)try{gl(t[r],s)}catch{}const a=El(t);if(a!==Object.prototype&&a!==Array.prototype&&a!==Map.prototype&&a!==Set.prototype&&a!==Date.prototype){const r=ni(a);for(let l in r){const o=r[l].get;if(o)try{o.call(t)}catch{}}}}}const Kv=["touchstart","touchmove"];function Gv(t){return Kv.includes(t)}const Cr=Symbol("events"),Yv=new Set,Jn=new Set;function Jv(t,s,a,r={}){function l(o){if(r.capture||yl.call(s,o),!o.cancelBubble)return Kr(()=>a==null?void 0:a.call(this,o))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?la(()=>{s.addEventListener(t,l,r)}):s.addEventListener(t,l,r),l}function V(t,s,a,r,l){var o={capture:r,passive:l},f=Jv(t,s,a,o);(s===document.body||s===window||s===document||s instanceof HTMLMediaElement)&&Rl(()=>{s.removeEventListener(t,f,o)})}let Xn=null;function yl(t){var S,Y;var s=this,a=s.ownerDocument,r=t.type,l=((S=t.composedPath)==null?void 0:S.call(t))||[],o=l[0]||t.target;Xn=t;var f=0,_=Xn===t&&t[Cr];if(_){var d=l.indexOf(_);if(d!==-1&&(s===document||s===window)){t[Cr]=s;return}var h=l.indexOf(s);if(h===-1)return;d<=h&&(f=d)}if(o=l[f]||t.target,o!==s){Pc(t,"currentTarget",{configurable:!0,get(){return o||a}});var w=ge,I=pe;is(null),os(null);try{for(var T,E=[];o!==null;){var x=o.assignedSlot||o.parentNode||o.host||null;try{var W=(Y=o[Cr])==null?void 0:Y[r];W!=null&&(!o.disabled||t.target===o)&&W.call(o,t)}catch(Le){T?E.push(Le):T=Le}if(t.cancelBubble||x===s||x===null)break;o=x}if(T){for(let Le of E)queueMicrotask(()=>{throw Le});throw T}}finally{t[Cr]=s,delete t.currentTarget,is(w),os(I)}}}var ri;const il=((ri=globalThis==null?void 0:globalThis.window)==null?void 0:ri.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:t=>t});function Xv(t){return(il==null?void 0:il.createHTML(t))??t}function zi(t){var s=Rv("template");return s.innerHTML=Xv(t.replaceAll("<!>","<!---->")),s.content}function $a(t,s){var a=pe;a.nodes===null&&(a.nodes={start:t,end:s,a:null,t:null})}function C(t,s){var a=(s&di)!==0,r=(s&av)!==0,l,o=!t.startsWith("<!>");return()=>{l===void 0&&(l=zi(o?t:"<!>"+t),a||(l=Vs(l)));var f=r||Mi?document.importNode(l,!0):l.cloneNode(!0);if(a){var _=Vs(f),d=f.lastChild;$a(_,d)}else $a(f,f);return f}}function Qv(t,s,a="svg"){var r=!t.startsWith("<!>"),l=(s&di)!==0,o=`<${a}>${r?t:"<!>"+t}</${a}>`,f;return()=>{if(!f){var _=zi(o),d=Vs(_);if(l)for(f=document.createDocumentFragment();Vs(d);)f.appendChild(Vs(d));else f=Vs(d)}var h=f.cloneNode(!0);if(l){var w=Vs(h),I=h.lastChild;$a(w,I)}else $a(h,h);return h}}function Os(t,s){return Qv(t,s,"svg")}function ks(t=""){{var s=Ws(t+"");return $a(s,s),s}}function Es(){var t=document.createDocumentFragment(),s=document.createComment(""),a=Ws();return t.append(s,a),$a(s,a),t}function y(t,s){t!==null&&t.before(s)}function g(t,s){var a=s==null?"":typeof s=="object"?`${s}`:s;a!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=a,t.nodeValue=`${a}`)}function Zv(t,s){return ed(t,s)}const Mr=new Map;function ed(t,{target:s,anchor:a,props:r={},events:l,context:o,intro:f=!0,transformError:_}){Mv();var d=void 0,h=Pv(()=>{var w=a??s.appendChild(Ws());mv(w,{pending:()=>{}},E=>{hi({});var x=ot;o&&(x.c=o),l&&(r.$$events=l),d=t(E,r)||{},_i()},_);var I=new Set,T=E=>{for(var x=0;x<E.length;x++){var W=E[x];if(!I.has(W)){I.add(W);var S=Gv(W);for(const Se of[s,document]){var Y=Mr.get(Se);Y===void 0&&(Y=new Map,Mr.set(Se,Y));var Le=Y.get(W);Le===void 0?(Se.addEventListener(W,yl,{passive:S}),Y.set(W,1)):Y.set(W,Le+1)}}}};return T(qr(Yv)),Jn.add(T),()=>{var S;for(var E of I)for(const Y of[s,document]){var x=Mr.get(Y),W=x.get(E);--W==0?(Y.removeEventListener(E,yl),x.delete(E),x.size===0&&Mr.delete(Y)):x.set(E,W)}Jn.delete(T),w!==a&&((S=w.parentNode)==null||S.removeChild(w))}});return td.set(d,h),d}let td=new WeakMap;var hs,Ts,Gt,ba,ur,fr,Ur;class sd{constructor(s,a=!0){fs(this,"anchor");ie(this,hs,new Map);ie(this,Ts,new Map);ie(this,Gt,new Map);ie(this,ba,new Set);ie(this,ur,!0);ie(this,fr,s=>{if(u(this,hs).has(s)){var a=u(this,hs).get(s),r=u(this,Ts).get(a);if(r)Il(r),u(this,ba).delete(a);else{var l=u(this,Gt).get(a);l&&(u(this,Ts).set(a,l.effect),u(this,Gt).delete(a),l.fragment.lastChild.remove(),this.anchor.before(l.fragment),r=l.effect)}for(const[o,f]of u(this,hs)){if(u(this,hs).delete(o),o===s)break;const _=u(this,Gt).get(f);_&&(Bt(_.effect),u(this,Gt).delete(f))}for(const[o,f]of u(this,Ts)){if(o===a||u(this,ba).has(o))continue;const _=()=>{if(Array.from(u(this,hs).values()).includes(o)){var h=document.createDocumentFragment();Pl(f,h),h.append(Ws()),u(this,Gt).set(o,{effect:f,fragment:h})}else Bt(f);u(this,ba).delete(o),u(this,Ts).delete(o)};u(this,ur)||!r?(u(this,ba).add(o),ya(f,_,!1)):_()}}});ie(this,Ur,s=>{u(this,hs).delete(s);const a=Array.from(u(this,hs).values());for(const[r,l]of u(this,Gt))a.includes(r)||(Bt(l.effect),u(this,Gt).delete(r))});this.anchor=s,fe(this,ur,a)}ensure(s,a){var r=B,l=Ni();if(a&&!u(this,Ts).has(s)&&!u(this,Gt).has(s))if(l){var o=document.createDocumentFragment(),f=Ws();o.append(f),u(this,Gt).set(s,{effect:as(()=>a(f)),fragment:o})}else u(this,Ts).set(s,as(()=>a(this.anchor)));if(u(this,hs).set(r,s),l){for(const[_,d]of u(this,Ts))_===s?r.unskip_effect(d):r.skip_effect(d);for(const[_,d]of u(this,Gt))_===s?r.unskip_effect(d.effect):r.skip_effect(d.effect);r.oncommit(u(this,fr)),r.ondiscard(u(this,Ur))}else u(this,fr).call(this,r)}}hs=new WeakMap,Ts=new WeakMap,Gt=new WeakMap,ba=new WeakMap,ur=new WeakMap,fr=new WeakMap,Ur=new WeakMap;function H(t,s,a=!1){var r=new sd(t),l=a?ja:0;function o(f,_){r.ensure(f,_)}Nl(()=>{var f=!1;s((_,d=0)=>{f=!0,o(d,_)}),f||o(-1,null)},l)}function Et(t,s){return s}function ad(t,s,a){for(var r=[],l=s.length,o,f=s.length,_=0;_<l;_++){let I=s[_];ya(I,()=>{if(o){if(o.pending.delete(I),o.done.add(I),o.pending.size===0){var T=t.outrogroups;wl(t,qr(o.done)),T.delete(o),T.size===0&&(t.outrogroups=null)}}else f-=1},!1)}if(f===0){var d=r.length===0&&a!==null;if(d){var h=a,w=h.parentNode;Ov(w),w.append(h),t.items.clear()}wl(t,s,!d)}else o={pending:new Set(s),done:new Set},(t.outrogroups??(t.outrogroups=new Set)).add(o)}function wl(t,s,a=!0){var r;if(t.pending.size>0){r=new Set;for(const f of t.pending.values())for(const _ of f)r.add(t.items.get(_).e)}for(var l=0;l<s.length;l++){var o=s[l];if(r!=null&&r.has(o)){o.f|=Ls;const f=document.createDocumentFragment();Pl(o,f)}else Bt(s[l],a)}}var Qn;function st(t,s,a,r,l,o=null){var f=t,_=new Map,d=(s&vi)!==0;if(d){var h=t;f=h.appendChild(Ws())}var w=null,I=Dt(()=>{var Se=a();return kl(Se)?Se:Se==null?[]:qr(Se)}),T,E=new Map,x=!0;function W(Se){Le.effect.f&ls||(Le.pending.delete(Se),Le.fallback=w,rd(Le,T,f,s,r),w!==null&&(T.length===0?w.f&Ls?(w.f^=Ls,tr(w,null,f)):Il(w):ya(w,()=>{w=null})))}function S(Se){Le.pending.delete(Se)}var Y=Nl(()=>{T=e(I);for(var Se=T.length,Tt=new Set,dt=B,Vt=Ni(),b=0;b<Se;b+=1){var Lt=T[b],cs=r(Lt,b),ut=x?null:_.get(cs);ut?(ut.v&&Sa(ut.v,Lt),ut.i&&Sa(ut.i,b),Vt&&dt.unskip_effect(ut.e)):(ut=ld(_,x?f:Qn??(Qn=Ws()),Lt,cs,b,l,s,a),x||(ut.e.f|=Ls),_.set(cs,ut)),Tt.add(cs)}if(Se===0&&o&&!w&&(x?w=as(()=>o(f)):(w=as(()=>o(Qn??(Qn=Ws()))),w.f|=Ls)),Se>Tt.size&&Uc(),!x)if(E.set(dt,Tt),Vt){for(const[Rs,gs]of _)Tt.has(Rs)||dt.skip_effect(gs.e);dt.oncommit(W),dt.ondiscard(S)}else W(dt);e(I)}),Le={effect:Y,items:_,pending:E,outrogroups:null,fallback:w};x=!1}function Za(t){for(;t!==null&&!(t.f&bs);)t=t.next;return t}function rd(t,s,a,r,l){var ut,Rs,gs,Yt,qe,Ze,ft,Ns,Va;var o=(r&tv)!==0,f=s.length,_=t.items,d=Za(t.effect.first),h,w=null,I,T=[],E=[],x,W,S,Y;if(o)for(Y=0;Y<f;Y+=1)x=s[Y],W=l(x,Y),S=_.get(W).e,S.f&Ls||((Rs=(ut=S.nodes)==null?void 0:ut.a)==null||Rs.measure(),(I??(I=new Set)).add(S));for(Y=0;Y<f;Y+=1){if(x=s[Y],W=l(x,Y),S=_.get(W).e,t.outrogroups!==null)for(const Ct of t.outrogroups)Ct.pending.delete(S),Ct.done.delete(S);if(S.f&Pt&&(Il(S),o&&((Yt=(gs=S.nodes)==null?void 0:gs.a)==null||Yt.unfix(),(I??(I=new Set)).delete(S))),S.f&Ls)if(S.f^=Ls,S===d)tr(S,null,a);else{var Le=w?w.next:d;S===t.effect.last&&(t.effect.last=S.prev),S.prev&&(S.prev.next=S.next),S.next&&(S.next.prev=S.prev),Qs(t,w,S),Qs(t,S,Le),tr(S,Le,a),w=S,T=[],E=[],d=Za(w.next);continue}if(S!==d){if(h!==void 0&&h.has(S)){if(T.length<E.length){var Se=E[0],Tt;w=Se.prev;var dt=T[0],Vt=T[T.length-1];for(Tt=0;Tt<T.length;Tt+=1)tr(T[Tt],Se,a);for(Tt=0;Tt<E.length;Tt+=1)h.delete(E[Tt]);Qs(t,dt.prev,Vt.next),Qs(t,w,dt),Qs(t,Vt,Se),d=Se,w=Vt,Y-=1,T=[],E=[]}else h.delete(S),tr(S,d,a),Qs(t,S.prev,S.next),Qs(t,S,w===null?t.effect.first:w.next),Qs(t,w,S),w=S;continue}for(T=[],E=[];d!==null&&d!==S;)(h??(h=new Set)).add(d),E.push(d),d=Za(d.next);if(d===null)continue}S.f&Ls||T.push(S),w=S,d=Za(S.next)}if(t.outrogroups!==null){for(const Ct of t.outrogroups)Ct.pending.size===0&&(wl(t,qr(Ct.done)),(qe=t.outrogroups)==null||qe.delete(Ct));t.outrogroups.size===0&&(t.outrogroups=null)}if(d!==null||h!==void 0){var b=[];if(h!==void 0)for(S of h)S.f&Pt||b.push(S);for(;d!==null;)!(d.f&Pt)&&d!==t.fallback&&b.push(d),d=Za(d.next);var Lt=b.length;if(Lt>0){var cs=r&vi&&f===0?a:null;if(o){for(Y=0;Y<Lt;Y+=1)(ft=(Ze=b[Y].nodes)==null?void 0:Ze.a)==null||ft.measure();for(Y=0;Y<Lt;Y+=1)(Va=(Ns=b[Y].nodes)==null?void 0:Ns.a)==null||Va.fix()}ad(t,b,cs)}}o&&la(()=>{var Ct,ze;if(I!==void 0)for(S of I)(ze=(Ct=S.nodes)==null?void 0:Ct.a)==null||ze.apply()})}function ld(t,s,a,r,l,o,f,_){var d=f&Zc?f&sv?Ea(a):j(a,!1,!1):null,h=f&ev?Ea(l):null;return{v:d,i:h,e:as(()=>(o(s,d??a,h??l,_),()=>{t.delete(r)}))}}function tr(t,s,a){if(t.nodes)for(var r=t.nodes.start,l=t.nodes.end,o=s&&!(s.f&Ls)?s.nodes.start:a;r!==null;){var f=_r(r);if(o.before(r),r===l)return;r=f}}function Qs(t,s,a){s===null?t.effect.first=a:s.next=a,a===null?t.effect.last=s:a.prev=s}const Zn=[...`
|
|
2
|
+
\r\f \v\uFEFF`];function nd(t,s,a){var r=t==null?"":""+t;if(s&&(r=r?r+" "+s:s),a){for(var l of Object.keys(a))if(a[l])r=r?r+" "+l:l;else if(r.length)for(var o=l.length,f=0;(f=r.indexOf(l,f))>=0;){var _=f+o;(f===0||Zn.includes(r[f-1]))&&(_===r.length||Zn.includes(r[_]))?r=(f===0?"":r.substring(0,f))+r.substring(_+1):f=_}}return r===""?null:r}function id(t,s){return t==null?null:String(t)}function ye(t,s,a,r,l,o){var f=t.__className;if(f!==a||f===void 0){var _=nd(a,r,o);_==null?t.removeAttribute("class"):s?t.className=_:t.setAttribute("class",_),t.__className=a}else if(o&&l!==o)for(var d in o){var h=!!o[d];(l==null||h!==!!l[d])&&t.classList.toggle(d,h)}return o}function Or(t,s,a,r){var l=t.__style;if(l!==s){var o=id(s);o==null?t.removeAttribute("style"):t.style.cssText=o,t.__style=s}return r}function Ki(t,s,a=!1){if(t.multiple){if(s==null)return;if(!kl(s))return lv();for(var r of t.options)r.selected=s.includes(lr(r));return}for(r of t.options){var l=lr(r);if(Cv(l,s)){r.selected=!0;return}}(!a||s!==void 0)&&(t.selectedIndex=-1)}function od(t){var s=new MutationObserver(()=>{Ki(t,t.__value)});s.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Rl(()=>{s.disconnect()})}function Zs(t,s,a=s){var r=new WeakSet,l=!0;Ml(t,"change",o=>{var f=o?"[selected]":":checked",_;if(t.multiple)_=[].map.call(t.querySelectorAll(f),lr);else{var d=t.querySelector(f)??t.querySelector("option:not([disabled])");_=d&&lr(d)}a(_),t.__value=_,B!==null&&r.add(B)}),jv(()=>{var o=s();if(t===document.activeElement){var f=B;if(r.has(f))return}if(Ki(t,o,l),l&&o===void 0){var _=t.querySelector(":checked");_!==null&&(o=lr(_),a(o))}t.__value=o,l=!1}),od(t)}function lr(t){return"__value"in t?t.__value:t.value}const cd=Symbol("is custom element"),vd=Symbol("is html");function te(t,s,a,r){var l=dd(t);l[s]!==(l[s]=a)&&(s==="loading"&&(t[Vc]=a),a==null?t.removeAttribute(s):typeof a!="string"&&ud(t).includes(s)?t[s]=a:t.setAttribute(s,a))}function dd(t){return t.__attributes??(t.__attributes={[cd]:t.nodeName.includes("-"),[vd]:t.namespaceURI===ui})}var ei=new Map;function ud(t){var s=t.getAttribute("is")||t.nodeName,a=ei.get(s);if(a)return a;ei.set(s,a=[]);for(var r,l=t,o=Element.prototype;o!==l;){r=ni(l);for(var f in r)r[f].set&&a.push(f);l=El(l)}return a}function Ot(t,s,a=s){var r=new WeakSet;Ml(t,"input",async l=>{var o=l?t.defaultValue:t.value;if(o=ol(t)?cl(o):o,a(o),B!==null&&r.add(B),await zv(),o!==(o=s())){var f=t.selectionStart,_=t.selectionEnd,d=t.value.length;if(t.value=o??"",_!==null){var h=t.value.length;f===_&&_===d&&h>d?(t.selectionStart=h,t.selectionEnd=h):(t.selectionStart=f,t.selectionEnd=Math.min(_,h))}}}),c(s)==null&&t.value&&(a(ol(t)?cl(t.value):t.value),B!==null&&r.add(B)),br(()=>{var l=s();if(t===document.activeElement){var o=B;if(r.has(o))return}ol(t)&&l===cl(t.value)||t.type==="date"&&!l&&!t.value||l!==t.value&&(t.value=l??"")})}function ti(t,s,a=s){Ml(t,"change",r=>{var l=r?t.defaultChecked:t.checked;a(l)}),c(s)==null&&a(t.checked),br(()=>{var r=s();t.checked=!!r})}function ol(t){var s=t.type;return s==="number"||s==="range"}function cl(t){return t===""?null:+t}function si(t){return function(...s){var a=s[0];a.target===this&&(t==null||t.apply(this,s))}}function fd(t){return function(...s){var a=s[0];return a.stopPropagation(),t==null?void 0:t.apply(this,s)}}function Rr(t){return function(...s){var a=s[0];return a.preventDefault(),t==null?void 0:t.apply(this,s)}}function pd(t=!1){const s=ot,a=s.l.u;if(!a)return;let r=()=>yt(s.s);if(t){let l=0,o={};const f=Ll(()=>{let _=!1;const d=s.s;for(const h in d)d[h]!==o[h]&&(o[h]=d[h],_=!0);return _&&l++,l});r=()=>e(f)}a.b.length&&Iv(()=>{ai(s,r),vl(a.b)}),Kn(()=>{const l=c(()=>a.m.map(Hc));return()=>{for(const o of l)typeof o=="function"&&o()}}),a.a.length&&Kn(()=>{ai(s,r),vl(a.a)})}function ai(t,s){if(t.l.s)for(const a of t.l.s)e(a);s()}const hd="5";var li;typeof window<"u"&&((li=window.__svelte??(window.__svelte={})).v??(li.v=new Set)).add(hd);cv();var _d=C('<p class="login-error svelte-d3ct2b"> </p>'),bd=C('<div class="login-screen svelte-d3ct2b"><div class="login-card svelte-d3ct2b"><div class="login-logo svelte-d3ct2b"><svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="var(--primary)" stroke-width="1.8" class="svelte-d3ct2b"><path d="M12 2L2 7l10 5 10-5-10-5z" class="svelte-d3ct2b"></path><path d="M2 17l10 5 10-5" class="svelte-d3ct2b"></path><path d="M2 12l10 5 10-5" class="svelte-d3ct2b"></path></svg></div> <h1 class="login-title svelte-d3ct2b">ArchMind</h1> <p class="login-sub svelte-d3ct2b">Sign in to your dashboard</p> <!> <form class="login-form svelte-d3ct2b"><label class="login-label svelte-d3ct2b" for="login-email">Email</label> <input id="login-email" type="email" class="login-input svelte-d3ct2b" placeholder="admin@example.com" autocomplete="email" required=""/> <label class="login-label svelte-d3ct2b" for="login-password">Password</label> <input id="login-password" type="password" class="login-input svelte-d3ct2b" placeholder="••••••••" autocomplete="current-password" required=""/> <button type="submit" class="login-btn svelte-d3ct2b"> </button></form> <p class="login-hint svelte-d3ct2b">First time? Run <code class="svelte-d3ct2b">memory-core auth setup</code> to create an admin account.</p></div></div>'),md=C('<span class="topbar-arch-pill svelte-d3ct2b"> </span>'),gd=Os('<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>'),yd=Os('<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>'),wd=C('<span class="side-badge svelte-d3ct2b"> </span>'),xd=C('<span class="side-badge svelte-d3ct2b"> </span>'),kd=C('<div class="sidebar-user svelte-d3ct2b"><span class="sidebar-avatar svelte-d3ct2b"> </span> <span class="sidebar-username svelte-d3ct2b"> </span> <button class="sidebar-logout svelte-d3ct2b" title="Sign out"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="svelte-d3ct2b"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" class="svelte-d3ct2b"></path><polyline points="16 17 21 12 16 7" class="svelte-d3ct2b"></polyline><line x1="21" y1="12" x2="9" y2="12" class="svelte-d3ct2b"></line></svg></button></div>'),Ed=C('<div class="health-badge health-warn svelte-d3ct2b"><i class="dot dot-warn svelte-d3ct2b"></i> <span class="svelte-d3ct2b"> </span></div>'),Sd=C('<div><i></i> <span class="svelte-d3ct2b"> </span></div>'),Ad=C('<span class="health-error svelte-d3ct2b"> </span>'),Td=C('<span class="health-error svelte-d3ct2b"> </span>'),Ld=Os('<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>'),Cd=Os('<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>'),Md=C('<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),Od=C('<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),Rd=C('<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),Nd=C('· <em class="svelte-d3ct2b"> </em>',1),Dd=C('<br class="svelte-d3ct2b"/><span class="detail-fix svelte-d3ct2b"> </span>',1),Id=C('<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>'),Pd=C('<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),jd=C('<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),Fd=C('<br class="svelte-d3ct2b"/><span class="detail-fix svelte-d3ct2b"> </span>',1),$d=C('<div class="log-detail svelte-d3ct2b"><span class="detail-index svelte-d3ct2b"></span> <span class="detail-body svelte-d3ct2b"><!> <!></span></div>'),Hd=C('<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),Bd=C('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Commit Hook</span> <span class="section-meta svelte-d3ct2b"> </span></div> <!>',1),Vd=C('<span class="rule-reason svelte-d3ct2b"> </span>'),Wd=C('<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>'),Ud=C('Custom architecture — no profile rules loaded. Add rules from the terminal: <code class="svelte-d3ct2b">memory-core remember "..." --type rule</code>',1),qd=C('<div class="log-row svelte-d3ct2b"><span class="log-msg svelte-d3ct2b" style="color: var(--outline)"><!></span></div>'),zd=C('<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),Kd=C('<span class="profile-msg svelte-d3ct2b"> </span>'),Gd=C('<div class="profile-empty svelte-d3ct2b">No saved profiles yet.</div>'),Yd=C('<div class="profile-row svelte-d3ct2b"><span class="profile-name svelte-d3ct2b"> </span> <span class="profile-meta svelte-d3ct2b"> </span> <button class="arch-edit-btn svelte-d3ct2b">Apply</button> <button class="arch-edit-btn arch-reset-btn svelte-d3ct2b">✕</button></div>'),Jd=C('<div class="profile-list svelte-d3ct2b"></div>'),Xd=C('<div class="profile-panel svelte-d3ct2b"><div class="profile-save-row svelte-d3ct2b"><input class="profile-name-input svelte-d3ct2b" placeholder="Profile name…"/> <label class="profile-scope-label svelte-d3ct2b"><input type="checkbox" class="svelte-d3ct2b"/> project-scoped</label> <button class="arch-edit-btn svelte-d3ct2b"> </button> <!></div> <!></div>'),Qd=C('<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>'),Zd=Os('<line stroke-width="1.5" opacity="0.75" class="svelte-d3ct2b"></line>'),eu=Os('<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),tu=Os('<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>'),su=C('<div class="arch-node-panel-path svelte-d3ct2b"> </div>'),au=C('<div class="arch-node-panel-paths svelte-d3ct2b"><div class="arch-node-panel-section svelte-d3ct2b">Glob patterns</div> <!></div>'),ru=C('<div class="arch-node-panel-rule svelte-d3ct2b"><span> </span> <span style="font-size:12px" class="svelte-d3ct2b"> </span></div>'),lu=C('<div class="arch-node-panel-paths svelte-d3ct2b"><div class="arch-node-panel-section svelte-d3ct2b">Rules involving this layer</div> <!></div>'),nu=C('<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>'),iu=C('<button class="arch-rule-del svelte-d3ct2b" title="Delete rule">✕</button>'),ou=C('<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>'),cu=C('<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>'),vu=C('<button class="arch-edit-btn svelte-d3ct2b">+ Add Layer</button>'),du=C('<option class="svelte-d3ct2b"> </option>'),uu=C('<option class="svelte-d3ct2b"> </option>'),fu=C('<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>'),pu=C('<button class="arch-edit-btn svelte-d3ct2b">+ Add Rule</button>'),hu=C("<!> <!>",1),_u=C('<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>'),bu=C('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Layer Graph</span> <span class="section-meta svelte-d3ct2b"> </span> <button> </button> <button class="arch-edit-btn arch-reset-btn svelte-d3ct2b"> </button> <button> </button></div> <!> <!>',1),mu=C('<div class="log-row svelte-d3ct2b"><span class="log-label label-ok svelte-d3ct2b">[OK]</span> <span class="log-msg svelte-d3ct2b"> </span></div>'),gu=C('<span class="history-resolved-badge svelte-d3ct2b"> </span>'),yu=C('<span class="history-issue svelte-d3ct2b"> </span>'),wu=C('<div class="history-violation svelte-d3ct2b"><span class="history-badge svelte-d3ct2b"> </span> <span class="history-rule svelte-d3ct2b"> </span> <!></div>'),xu=C('<div><div class="history-header svelte-d3ct2b"><span class="history-file svelte-d3ct2b"> </span> <span class="history-time svelte-d3ct2b"> </span> <!> <button> </button></div> <!></div>'),ku=C('<div class="history-list svelte-d3ct2b"></div>'),Eu=C('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Violation History</span> <span class="section-meta svelte-d3ct2b"> </span> <label class="history-toggle-label svelte-d3ct2b"><input type="checkbox" class="svelte-d3ct2b"/> Show resolved</label> <button class="arch-edit-btn arch-reset-btn svelte-d3ct2b"> </button></div> <!>',1),Su=C('<span class="section-meta svelte-d3ct2b"> </span>'),Au=C('<div class="log-row svelte-d3ct2b"><span class="log-label label-ok svelte-d3ct2b">[…]</span><span class="log-msg svelte-d3ct2b">Loading analytics…</span></div>'),Tu=C('<div class="log-row svelte-d3ct2b"><span class="log-label label-warn svelte-d3ct2b">[WARN]</span><span class="log-msg svelte-d3ct2b">No analytics data. Need backend build with new endpoints.</span></div>'),Lu=Os('<line stroke="var(--outline-var)" stroke-width="0.5" class="svelte-d3ct2b"></line><text text-anchor="end" font-size="9" fill="var(--outline)" class="svelte-d3ct2b"> </text>',1),Cu=Os('<circle r="3" fill="var(--primary)" class="svelte-d3ct2b"><title class="svelte-d3ct2b"> </title></circle>'),Mu=Os('<text text-anchor="middle" font-size="9" fill="var(--outline)" class="svelte-d3ct2b"> </text>'),Ou=C('<div class="an-chart-wrap svelte-d3ct2b"><svg width="100%" class="an-chart-svg svelte-d3ct2b" preserveAspectRatio="none"><!><defs class="svelte-d3ct2b"><linearGradient id="trend-fill" x1="0" y1="0" x2="0" y2="1" class="svelte-d3ct2b"><stop offset="0%" stop-color="var(--primary)" stop-opacity="0.3" class="svelte-d3ct2b"></stop><stop offset="100%" stop-color="var(--primary)" stop-opacity="0.02" class="svelte-d3ct2b"></stop></linearGradient></defs><polygon fill="url(#trend-fill)" class="svelte-d3ct2b"></polygon><polyline fill="none" stroke="var(--primary)" stroke-width="2" stroke-linejoin="round" class="svelte-d3ct2b"></polyline><!><!></svg> <div class="an-chart-legend svelte-d3ct2b"><span class="an-legend-dot svelte-d3ct2b" style="background:var(--primary)"></span> Violations per day (last 30 days)</div></div>'),Ru=C('<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.</span></div>'),Nu=C('<div class="an-heat-row svelte-d3ct2b"><span class="an-heat-file svelte-d3ct2b"> </span> <span class="an-heat-bar-wrap svelte-d3ct2b"><span class="an-heat-bar svelte-d3ct2b"></span> <span class="an-heat-count svelte-d3ct2b"> </span></span> <span class="an-heat-resolved svelte-d3ct2b"> </span> <span class="an-heat-time svelte-d3ct2b"> </span></div>'),Du=C('<div class="an-heat-table svelte-d3ct2b"><div class="an-heat-header svelte-d3ct2b"><span class="svelte-d3ct2b">File</span><span class="svelte-d3ct2b">Violations</span><span class="svelte-d3ct2b">Resolved</span><span class="svelte-d3ct2b">Last seen</span></div> <!></div>'),Iu=C('<span class="an-heat-bar svelte-d3ct2b"></span>'),Pu=C('<div><span class="an-rule-name svelte-d3ct2b"> </span> <span class="an-rule-layers svelte-d3ct2b"> </span> <span class="an-heat-bar-wrap svelte-d3ct2b"><!> <span> </span></span> <span class="an-heat-time svelte-d3ct2b"> </span></div>'),ju=C('<div class="an-rule-table svelte-d3ct2b"><div class="an-heat-header svelte-d3ct2b"><span class="svelte-d3ct2b">Rule</span><span class="svelte-d3ct2b">Layers</span><span class="svelte-d3ct2b">Hits</span><span class="svelte-d3ct2b">Last fired</span></div> <!></div>'),Fu=C('<div class="log-row svelte-d3ct2b"><span class="log-label label-ok svelte-d3ct2b">[OK]</span><span class="log-msg svelte-d3ct2b">No team data yet. Git author captured on next violation.</span></div>'),$u=C('<div class="an-heat-row svelte-d3ct2b"><span class="an-heat-file svelte-d3ct2b"> </span> <span class="an-heat-bar-wrap svelte-d3ct2b"><span class="an-heat-bar svelte-d3ct2b"></span> <span class="an-heat-count svelte-d3ct2b"> </span></span> <span class="an-heat-resolved svelte-d3ct2b"> </span> <span class="an-heat-time svelte-d3ct2b"> </span></div>'),Hu=C('<div class="an-heat-table svelte-d3ct2b"><div class="an-heat-header svelte-d3ct2b"><span class="svelte-d3ct2b">Author</span><span class="svelte-d3ct2b">Violations</span><span class="svelte-d3ct2b">Files</span><span class="svelte-d3ct2b">Last seen</span></div> <!></div>'),Bu=C('<div class="an-summary svelte-d3ct2b"><div class="an-card svelte-d3ct2b"><span class="an-card-val svelte-d3ct2b"> </span><span class="an-card-label svelte-d3ct2b">Total Violations</span></div> <div class="an-card an-card-warn svelte-d3ct2b"><span class="an-card-val svelte-d3ct2b"> </span><span class="an-card-label svelte-d3ct2b">Open</span></div> <div class="an-card an-card-green svelte-d3ct2b"><span class="an-card-val svelte-d3ct2b"> </span><span class="an-card-label svelte-d3ct2b">Resolved</span></div> <div class="an-card svelte-d3ct2b"><span class="an-card-val svelte-d3ct2b"> </span><span class="an-card-label svelte-d3ct2b">Affected Files</span></div></div> <div class="an-tabs svelte-d3ct2b"><button>Trend</button> <button>File Heatmap</button> <button>Rule Effectiveness</button> <button>Team Activity</button></div> <!>',1),Vu=C('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Analytics</span> <!> <button class="arch-edit-btn svelte-d3ct2b"> </button></div> <!>',1),Wu=C('<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>'),Uu=C("<div> </div>"),qu=C('<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>'),zu=C('<div class="shell svelte-d3ct2b"><header class="topbar svelte-d3ct2b"><div class="topbar-brand svelte-d3ct2b"><span class="topbar-project svelte-d3ct2b"> </span> <!></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> <span class="sidebar-brand-label svelte-d3ct2b">memory-core</span></div> <nav class="sidebar-nav svelte-d3ct2b"><button><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><circle cx="12" cy="12" r="2" class="svelte-d3ct2b"></circle><path d="M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14" class="svelte-d3ct2b"></path></svg> <span class="svelte-d3ct2b">Live Feed</span></button> <button><svg width="16" height="16" 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><line x1="3" y1="12" x2="9" y2="12" class="svelte-d3ct2b"></line><line x1="15" y1="12" x2="21" y2="12" class="svelte-d3ct2b"></line></svg> <span class="svelte-d3ct2b">Commit<!></span></button> <button><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><path d="M9 11l3 3L22 4" class="svelte-d3ct2b"></path><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11" class="svelte-d3ct2b"></path></svg> <span class="svelte-d3ct2b">Rules</span></button> <button><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><rect x="2" y="9" width="6" height="6" rx="1" class="svelte-d3ct2b"></rect><rect x="16" y="9" width="6" height="6" rx="1" class="svelte-d3ct2b"></rect><rect x="9" y="2" width="6" height="6" rx="1" class="svelte-d3ct2b"></rect><rect x="9" y="16" width="6" height="6" rx="1" class="svelte-d3ct2b"></rect><line x1="8" y1="12" x2="16" y2="12" class="svelte-d3ct2b"></line><line x1="12" y1="8" x2="12" y2="9" class="svelte-d3ct2b"></line><line x1="12" y1="15" x2="12" y2="16" class="svelte-d3ct2b"></line></svg> <span class="svelte-d3ct2b">Arch Graph</span></button> <button><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><circle cx="12" cy="12" r="10" class="svelte-d3ct2b"></circle><polyline points="12 6 12 12 16 14" class="svelte-d3ct2b"></polyline></svg> <span class="svelte-d3ct2b">History<!></span></button> <button><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12" class="svelte-d3ct2b"></polyline></svg> <span class="svelte-d3ct2b">Analytics</span></button></nav> <div class="sidebar-footer svelte-d3ct2b"><!> <div></div> <span class="sidebar-conn-label svelte-d3ct2b"> </span></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 Ku(t,s){hi(s,!1);const a=j(),r=j(),l=j(),o=j(),f=j(),_=j(),d=j(),h=j(),w=j(),I=j(),T=j(),E=j(),x=j(),W=j(),S=j(),Y=j(),Le=j(),Se=j(),Tt=j(),dt=j(),Vt=j();let b=j({config:null,stats:{rules:{},files:{},topRules:[],topFiles:[]},files:[],memories:[]}),Lt=j([]),cs=j(!1),ut=j("all"),Rs=j(""),gs=j(!1),Yt=j(""),qe=j({type:"rule",scope:"project",content:"",reason:"",tags:"dashboard"}),Ze=j("live-feed"),ft=j(null),Ns=j(!1),Va=j(""),Ct=j(!1),ze=j({provider:"",model:"",apiKey:"",chatTimeoutMs:"",checkTimeoutMs:""}),mr=j(!1),Us=j(""),qs=j(""),Jt=j(!1),zs=j(!1),Ks=j(!1),Mt=j({name:"",paths:"",description:""}),Ve=j({fromLayer:"",toLayer:"",name:"",allowed:!1,enforcement:"block"}),xt=j(!1),Gs=j([]),gr=j(!1),Wa=j(!1),oa=j(""),Gr=j(!1),La=j("");async function Ua(){try{const k=await(await pt("/api/arch/profiles")).json();p(Gs,k.profiles??[])}catch{p(Gs,[])}}async function jl(){if(e(oa).trim()){p(Wa,!0),p(La,"");try{const v=await pt("/api/arch/profiles",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:e(oa).trim(),projectScoped:e(Gr)})});if(v.ok)p(oa,""),p(La,"Saved"),await Ua();else{const k=await v.json();p(La,k.error??"Error")}}finally{p(Wa,!1)}}}async function Gi(v){p(xt,!0);try{await pt(`/api/arch/profiles/${v}/apply`,{method:"POST"}),p(Jt,!1),p(zs,!1),p(Ks,!1),await jt()}finally{p(xt,!1)}}async function Yi(v){confirm("Delete this profile?")&&(await pt(`/api/arch/profiles/${v}`,{method:"DELETE"}),await Ua())}let ce=j(null),qa=j(!1),Xt=j("trends");async function Fl(){p(qa,!0);try{const v=await pt("/api/analytics");p(ce,await v.json())}catch{p(ce,null)}finally{p(qa,!1)}}let yr=j(!0),za=j(!1);async function Ji(){if(confirm("Clear all violation history? This cannot be undone.")){p(za,!0);try{await pt("/api/history",{method:"DELETE"}),await jt()}finally{p(za,!1)}}}async function Xi(v){await pt("/api/history/resolve",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({timestamp:v})}),await jt()}async function $l(v){await pt(`/api/arch/layers/${encodeURIComponent(v)}`,{method:"DELETE"}),await jt()}async function Qi(v){await pt(`/api/arch/rules/${encodeURIComponent(v)}`,{method:"DELETE"}),await jt()}async function Zi(){if(e(Mt).name.trim()){p(xt,!0);try{await pt("/api/arch/layers",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:e(Mt).name.trim(),paths:e(Mt).paths.split(",").map(v=>v.trim()).filter(Boolean),description:e(Mt).description.trim()})}),p(Mt,{name:"",paths:"",description:""}),p(zs,!1),await jt()}finally{p(xt,!1)}}}async function eo(){if(confirm("Reset graph to architecture defaults? This will overwrite your current layers and rules.")){p(xt,!0);try{await pt("/api/arch/reset",{method:"POST"}),p(Jt,!1),p(zs,!1),p(Ks,!1),await jt()}finally{p(xt,!1)}}}async function to(){if(!(!e(Ve).fromLayer||!e(Ve).toLayer||!e(Ve).name.trim())){p(xt,!0);try{await pt("/api/arch/rules",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e(Ve))}),p(Ve,{fromLayer:"",toLayer:"",name:"",allowed:!1,enforcement:"block"}),p(Ks,!1),await jt()}finally{p(xt,!1)}}}const so=24*60*60*1e3,Hl=640,Bl=380,vs=110,Ds=38,ao={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"]},ro=()=>{var X,ee;const v=(ee=(X=e(b).runtime)==null?void 0:X.project.name)==null?void 0:ee.trim();if(v)return v;const k=lo("projectName");return k||"memory-core"},lo=v=>{var X;const k=(X=e(b).config)==null?void 0:X[v];return typeof k=="string"&&k.trim().length>0?k.trim():void 0};function wr(v){e(Ns)||p(Lt,[{...v,id:crypto.randomUUID()},...e(Lt)].slice(0,80))}function Vl(v){return v.type==="saved"?{type:"saved",timestamp:v.timestamp,file:v.file}:v.type==="clean"?{type:"clean",timestamp:v.timestamp,file:v.file}:v.type==="skipped"?{type:"skipped",timestamp:v.timestamp,file:v.file,reason:v.reason}:v.type==="violations"?{type:"violations",timestamp:v.timestamp,file:v.file,violations:v.violations}:v.type==="log"?{type:"log",timestamp:v.timestamp,file:v.file,message:v.message}:v.type==="error"?{type:"error",timestamp:v.timestamp,message:v.message}:v.type==="ready"?{type:"system",timestamp:v.timestamp,message:`Watching ${v.path} | ${v.rules} rules | ${v.model}`}:{type:"system",timestamp:v.timestamp,message:"Watch stopped"}}function xr(v){const k=e(b).files??[],X=k.findIndex(Ke=>Ke.file===v.file),ee=k.slice();return X===-1?ee.push(v):ee[X]=v,ee.sort((Ke,Qt)=>Qt.lastSeen.localeCompare(Ke.lastSeen))}function no(v){const k=e(b).watcher??{enabled:!0,running:!1,path:void 0,model:void 0,rules:void 0,lastEventAt:void 0,error:void 0};let X=e(b).files,ee={...k,lastEventAt:v.timestamp,enabled:!0};v.type==="ready"&&(ee={...ee,running:!0,error:void 0,path:v.path,model:v.model,rules:v.rules}),v.type==="saved"&&(X=xr({file:v.file,status:"checking",lastSeen:v.timestamp,violations:[]})),v.type==="clean"&&(X=xr({file:v.file,status:"clean",lastSeen:v.timestamp,violations:[]})),v.type==="skipped"&&(X=xr({file:v.file,status:"skipped",lastSeen:v.timestamp,violations:[],message:v.reason})),v.type==="violations"&&(X=xr({file:v.file,status:"violations",lastSeen:v.timestamp,violations:v.violations})),v.type==="error"&&(ee={...ee,running:!1,error:v.message}),v.type==="stopped"&&(ee={...ee,running:!1});const Ke=[v,...e(b).events??[]].slice(0,100);p(b,{...e(b),files:X,events:Ke,watcher:ee})}function Yr(v=[]){p(Lt,v.map(Vl).map(k=>({...k,id:crypto.randomUUID()})).reverse().slice(0,80))}function Wl(v){return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(v))}function Ul(v,k){const X=v.file||k;return v.line?`${X}:${v.line}`:X}function io(v){return v.type==="saved"?"SAVE":v.type==="clean"?"OK":v.type==="skipped"?"SKIP":v.type==="violations"?"FAIL":v.type==="log"?"CHCK":v.type==="error"?"WARN":"SYS"}function oo(v){return v.type==="clean"?"label-ok":v.type==="violations"||v.type==="error"?"label-warn":v.type==="log"?"label-chck":v.type==="system"?"label-sys":"label-info"}async function jt(){const v=await pt(`/api/snapshot?t=${Date.now()}`,{cache:"no-store"});e(Js)||(p(b,await v.json()),Yr(e(b).events))}async function co(){p(Yt,"");try{const v=await pt("/api/refresh",{method:"POST",headers:{"content-type":"application/json"},cache:"no-store"});if(!v.ok)throw new Error((await v.json()).error??"Refresh failed");const k=await v.json();k.snapshot?(p(b,k.snapshot),Yr(e(b).events)):await jt()}catch(v){p(Yt,v.message)}}function vo(){try{localStorage.clear(),sessionStorage.clear()}finally{location.reload()}}async function uo(){p(mr,!0),p(Us,"");try{const v=await pt("/api/config/model",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e(ze))}),k=await v.json().catch(()=>({}));if(!v.ok)throw new Error(k.error??"Save failed");const X=Array.isArray(k.warnings)&&k.warnings.length>0?" — "+k.warnings.join("; "):"";p(Us,`✓ ${k.message??"Settings updated"}${X}`),await jt()}catch(v){p(Us,`✗ ${v.message}`)}finally{p(mr,!1)}}async function Jr(v){p(qs,v);try{await pt(`/api/actions/${v}`,{method:"POST"}),wr({type:"system",timestamp:new Date().toISOString(),message:`Action started: memory-core ${v==="check-all"?"check --all":v}`})}catch{}finally{p(qs,"")}}function ql(){const v=location.protocol==="https:"?"wss:":"ws:",k=new WebSocket(`${v}//${location.host}/ws`);k.addEventListener("open",()=>{p(cs,!0),wr({type:"system",timestamp:new Date().toISOString(),message:"Dashboard connected"})}),k.addEventListener("close",()=>{p(cs,!1),wr({type:"error",timestamp:new Date().toISOString(),message:"Dashboard disconnected"}),setTimeout(ql,1500)}),k.addEventListener("message",X=>{const ee=JSON.parse(X.data);if(ee.type==="snapshot"){p(b,ee.snapshot),e(Lt).length===0&&Yr(e(b).events);return}if(ee.type==="stats"){p(b,{...e(b),stats:ee.stats});return}ee.type==="watch"&&(no(ee.event),wr(Vl(ee.event)))})}async function fo(){if(e(qe).content.trim()){p(gs,!0),p(Yt,"");try{const v=await pt("/api/memories",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e(qe))});if(!v.ok)throw new Error((await v.json()).error??"Save failed");p(qe,{type:"rule",scope:"project",content:"",reason:"",tags:"dashboard"}),await jt()}catch(v){p(Yt,v.message)}finally{p(gs,!1)}}}async function po(v){p(Yt,"");const k=await pt(`/api/memories/${v}`,{method:"DELETE"});if(!k.ok){p(Yt,(await k.json()).error??"Delete failed");return}await jt()}let Ys=j(localStorage.getItem("mc-theme")!=="light");function ho(){p(Ys,!e(Ys)),localStorage.setItem("mc-theme",e(Ys)?"dark":"light")}document.documentElement.setAttribute("data-theme",e(Ys)?"dark":"light");let Is=localStorage.getItem("mc-auth-token"),Ka=j(!1),Ft=j(null),Js=j(!1),Xr=j(""),Qr=j(""),kr=j(""),Er=j(!1);async function pt(v,k={}){const X=new Headers(k.headers);Is&&X.set("authorization",`Bearer ${Is}`);const ee=await fetch(v,{...k,headers:X});return ee.status===401&&e(Ka)&&(Is=null,localStorage.removeItem("mc-auth-token"),p(Ft,null),p(Js,!0)),ee}async function _o(){try{const v=await fetch("/api/auth/me",{headers:Is?{authorization:`Bearer ${Is}`}:{}}),k=await v.json();p(Ka,k.authEnabled??!1),v.ok&&k.user?(p(Ft,k.user),p(Js,!1)):(p(Ft,null),e(Ka)&&p(Js,!0))}catch{}}async function bo(){p(Er,!0),p(kr,"");try{const v=await fetch("/api/auth/login",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({email:e(Xr),password:e(Qr)})}),k=await v.json();if(!v.ok){p(kr,k.error??"Login failed");return}Is=k.token??null,Is&&localStorage.setItem("mc-auth-token",Is),p(Ft,k.user??null),p(Js,!1),await jt(),Ua().catch(()=>{})}finally{p(Er,!1)}}async function mo(){await fetch("/api/auth/logout",{method:"POST"}).catch(()=>{}),Is=null,localStorage.removeItem("mc-auth-token"),p(Ft,null),e(Ka)&&p(Js,!0)}_o().then(()=>{e(Js)||(jt().catch(v=>{p(Yt,v.message)}),Ua().catch(()=>{}))}),ql(),Je(()=>(e(yr),e(b)),()=>{p(a,e(yr)?e(b).violationHistory??[]:(e(b).violationHistory??[]).filter(v=>!v.resolved))}),Je(()=>(e(b),e(ut),e(Rs)),()=>{p(r,e(b).memories.filter(v=>{const k=e(ut)==="all"||v.type===e(ut),X=`${v.type} ${v.scope} ${v.content} ${v.reason??""} ${v.tags.join(" ")}`.toLowerCase();return k&&X.includes(e(Rs).toLowerCase())}))}),Je(()=>e(b),()=>{p(l,e(b).files.reduce((v,k)=>v+k.violations.length,0))}),Je(()=>e(b),()=>{p(o,e(b).files.filter(v=>v.status==="clean").length)}),Je(()=>e(b),()=>{p(f,Object.values(e(b).stats.rules).reduce((v,k)=>v+k,0))}),Je(()=>e(b),()=>{p(_,e(b).stats.recentViolations??[])}),Je(()=>e(_),()=>{p(d,e(_).filter(v=>{if(!(v.source==="hook"||v.source==="ci"))return!1;const k=Date.parse(v.timestamp);return Number.isNaN(k)?!1:Date.now()-k<=so}))}),Je(()=>e(l),()=>{p(h,e(l))}),Je(()=>e(b),()=>{p(w,e(b).files.filter(v=>v.status!=="checking").length)}),Je(()=>e(b),()=>{p(I,e(b).memories.filter(v=>["rule","pattern","decision"].includes(v.type)).length)}),Je(()=>e(b),()=>{var v;p(T,((v=e(b).memoryCount)==null?void 0:v.total)??e(b).memories.length)}),Je(()=>(e(cs),e(b)),()=>{var v,k;p(E,e(cs)?((v=e(b).watcher)==null?void 0:v.enabled)===!1?{live:!1,label:"Watch off"}:(k=e(b).watcher)!=null&&k.running?{live:!0,label:"Watcher live"}:{live:!1,label:"Watcher idle"}:{live:!1,label:"Disconnected"})}),Je(()=>e(b),()=>{var v;p(x,((v=e(b).arch)==null?void 0:v.layers)??[])}),Je(()=>e(b),()=>{var v;p(W,((v=e(b).arch)==null?void 0:v.rules)??[])}),Je(()=>(e(x),e(b)),()=>{p(S,(()=>{var Wt,ds,kt,xs;const v=e(x);if(v.length===0)return[];const k=((Wt=e(b).runtime)==null?void 0:Wt.project.backendArchitecture)??((ds=e(b).runtime)==null?void 0:ds.project.frontendFramework)??((xs=(kt=e(b).runtime)==null?void 0:kt.project.activeArchitectures)==null?void 0:xs[0])??"",X=ao[k]??["api","application","domain","infrastructure","shared"],ee=[...v].sort((Ut,Ps)=>{const ca=X.indexOf(Ut.name)===-1?99:X.indexOf(Ut.name),Ga=X.indexOf(Ps.name)===-1?99:X.indexOf(Ps.name);return ca-Ga}),Ke=Math.min(ee.length,3),Qt=Math.ceil(ee.length/Ke),ys=(Hl-Ke*vs)/(Ke+1),ws=(Bl-Qt*Ds)/(Qt+1);return ee.map((Ut,Ps)=>{const ca=Ps%Ke,Ga=Math.floor(Ps/Ke);return{name:Ut.name,description:Ut.description,x:ys+ca*(vs+ys),y:ws+Ga*(Ds+ws)}})})())}),Je(()=>(e(S),e(W)),()=>{p(Y,(()=>{const v=new Map(e(S).map(k=>[k.name,k]));return e(W).filter(k=>k.fromLayer!=="*"&&k.toLayer!=="*").map(k=>{const X=v.get(k.fromLayer),ee=v.get(k.toLayer);if(!X||!ee)return null;const Ke=X.x+vs/2,Qt=X.y+Ds/2,ys=ee.x+vs/2,ws=ee.y+Ds/2,Wt=ys-Ke,ds=ws-Qt,kt=Math.sqrt(Wt*Wt+ds*ds)||1,xs=Ke+Wt/kt*(vs/2+4),Ut=Qt+ds/kt*(Ds/2+4),Ps=ys-Wt/kt*(vs/2+4),ca=ws-ds/kt*(Ds/2+4);return{r:k,sx:xs,sy:Ut,ex:Ps,ey:ca}}).filter(Boolean)})())}),Je(()=>e(b),()=>{var v;p(Le,((v=e(b).runtime)==null?void 0:v.postgres.connected)??!1)}),Je(()=>e(b),()=>{var v;p(Se,((v=e(b).runtime)==null?void 0:v.model.ollamaReachable)??!1)}),Je(()=>e(b),()=>{var v,k;p(Tt,(((v=e(b).runtime)==null?void 0:v.model.checkModelResolved)??((k=e(b).runtime)==null?void 0:k.model.chatModel)??"unknown").toUpperCase())}),Je(()=>e(b),()=>{var v,k;p(dt,((v=e(b).runtime)==null?void 0:v.project.backendArchitecture)==="custom"||((k=e(b).runtime)==null?void 0:k.project.frontendFramework)==="custom")}),Je(()=>e(b),()=>{p(Vt,(()=>{var ee,Ke;const v=(ee=e(b).runtime)==null?void 0:ee.project.backendArchitecture,k=(Ke=e(b).runtime)==null?void 0:Ke.project.frontendFramework,X=[v?v==="custom"?"Custom":v:null,k?k==="custom"?"Custom":k:null].filter(Boolean);return X.length>0?X.join(" / "):null})())}),Je(()=>e(Ys),()=>{document.documentElement.setAttribute("data-theme",e(Ys)?"dark":"light")}),Fv(),pd();var zl=Es(),go=Be(zl);{var yo=v=>{var k=bd(),X=n(k),ee=i(n(X),6);{var Ke=kt=>{var xs=_d(),Ut=n(xs);P(()=>g(Ut,e(kr))),y(kt,xs)};H(ee,kt=>{e(kr)&&kt(Ke)})}var Qt=i(ee,2),ys=i(n(Qt),2),ws=i(ys,4),Wt=i(ws,2),ds=n(Wt);P(()=>{Wt.disabled=e(Er),g(ds,e(Er)?"Signing in…":"Sign in")}),Ot(ys,()=>e(Xr),kt=>p(Xr,kt)),Ot(ws,()=>e(Qr),kt=>p(Qr,kt)),V("submit",Qt,Rr(bo)),y(v,k)},wo=v=>{var k=zu(),X=n(k),ee=n(X),Ke=n(ee),Qt=n(Ke),ys=i(Ke,2);{var ws=A=>{var M=md(),se=n(M);P(()=>g(se,e(Vt))),y(A,M)};H(ys,A=>{e(Vt)&&A(ws)})}var Wt=i(ee,2),ds=i(n(Wt),2),kt=i(Wt,2),xs=n(kt),Ut=i(xs,2),Ps=n(Ut);{var ca=A=>{var M=gd();y(A,M)},Ga=A=>{var M=yd();y(A,M)};H(Ps,A=>{e(Ys)?A(ca):A(Ga,-1)})}var Kl=i(X,2),Gl=n(Kl),Yl=i(n(Gl),2),Zr=n(Yl);let Jl;var Sr=i(Zr,2);let Xl;var xo=i(n(Sr),2),ko=i(n(xo));{var Eo=A=>{var M=wd(),se=n(M);P(()=>g(se,(e(d),c(()=>e(d).length)))),y(A,M)};H(ko,A=>{e(d),c(()=>e(d).length>0)&&A(Eo)})}var el=i(Sr,2);let Ql;var tl=i(el,2);let Zl;var Ar=i(tl,2);let en;var So=i(n(Ar),2),Ao=i(n(So));{var To=A=>{var M=xd(),se=n(M);P(()=>g(se,(e(b),c(()=>{var xe;return(xe=e(b).violationHistory)==null?void 0:xe.length})))),y(A,M)};H(Ao,A=>{e(b),c(()=>{var M;return(((M=e(b).violationHistory)==null?void 0:M.length)??0)>0})&&A(To)})}var tn=i(Ar,2);let sn;var Lo=i(Yl,2),an=n(Lo);{var Co=A=>{var M=kd(),se=n(M),xe=n(se),Oe=i(se,2),he=n(Oe),Re=i(Oe,2);P(Ne=>{te(M,"title",`${e(Ft),c(()=>e(Ft).email)??""} [${e(Ft),c(()=>e(Ft).role)??""}]`),g(xe,Ne),g(he,(e(Ft),c(()=>e(Ft).username)))},[()=>(e(Ft),c(()=>e(Ft).username.slice(0,1).toUpperCase()))]),V("click",Re,mo),y(A,M)};H(an,A=>{e(Ka)&&e(Ft)&&A(Co)})}var rn=i(an,2);let ln;var Mo=i(rn,2),Oo=n(Mo),Ro=i(Gl,2),nn=n(Ro),on=i(n(nn),2),No=i(n(on),2),Do=n(No),sl=i(on,2);let cn;var vn=n(sl);let dn;var Io=i(vn,2),Po=n(Io),al=i(sl,2);let un;var fn=n(al);let pn;var jo=i(fn,2),Fo=n(jo),hn=i(al,2);{var $o=A=>{var M=Ed(),se=i(n(M),2),xe=n(se);P(()=>g(xe,`${e(b),c(()=>{var Oe;return(Oe=e(b).arch)==null?void 0:Oe.pendingRules})??""} PENDING RULES`)),y(A,M)};H(hn,A=>{e(b),c(()=>{var M;return(((M=e(b).arch)==null?void 0:M.pendingRules)??0)>0})&&A($o)})}var _n=i(hn,2);{var Ho=A=>{var M=Sd();let se;var xe=n(M);let Oe;var he=i(xe,2),Re=n(he);P(Ne=>{se=ye(M,1,"health-badge svelte-d3ct2b",null,se,{"health-warn":e(dt),"health-green":!e(dt)}),Oe=ye(xe,1,"dot svelte-d3ct2b",null,Oe,{"dot-warn":e(dt),"dot-green":!e(dt)}),g(Re,`ARCH: ${Ne??""}${e(dt)?" — ADD RULES":""}`)},[()=>(e(Vt),c(()=>e(Vt).toUpperCase()))]),y(A,M)};H(_n,A=>{e(Vt)&&A(Ho)})}var bn=i(_n,2);{var Bo=A=>{var M=Ad(),se=n(M);P(()=>g(se,(e(b),c(()=>e(b).dbError)))),y(A,M)};H(bn,A=>{e(b),c(()=>e(b).dbError)&&A(Bo)})}var Vo=i(bn,2);{var Wo=A=>{var M=Td(),se=n(M);P(()=>g(se,e(Yt))),y(A,M)};H(Vo,A=>{e(Yt)&&A(Wo)})}var mn=i(nn,2),gn=n(mn),yn=n(gn),Uo=i(n(yn),2),qo=i(yn,4),wn=n(qo),xn=i(n(wn),2);let kn;var zo=n(xn),En=i(wn,2),Ko=i(n(En),2),Go=n(Ko),Yo=i(En,2),Jo=i(n(Yo),2),Xo=n(Jo),Qo=i(gn,2),Sn=n(Qo),An=n(Sn);let Tn;var Zo=i(An,2),ec=n(Zo),Ya=i(Sn,2);let Ln;var tc=n(Ya);{var sc=A=>{var M=Ld();y(A,M)},ac=A=>{var M=Cd();y(A,M)};H(tc,A=>{e(Ns)?A(sc):A(ac,-1)})}var rc=i(Ya,2),Cn=i(mn,2),lc=n(Cn);{var nc=A=>{var M=Es(),se=Be(M);{var xe=he=>{var Re=Rd(),Ne=i(Be(Re),4);{var ke=Ae=>{var le=Md();y(Ae,le)},L=Ae=>{var le=Od();y(Ae,le)};H(Ne,Ae=>{e(dt)?Ae(ke):Ae(L,-1)})}y(he,Re)},Oe=he=>{var Re=Es(),Ne=Be(Re);st(Ne,1,()=>(e(Lt),c(()=>[...e(Lt)].reverse())),ke=>ke.id,(ke,L)=>{var Ae=Pd(),le=Be(Ae);let N;var Ie=n(le),ht=n(Ie),ve=i(Ie,2),at=n(ve),rt=i(ve,2),Pe=n(rt);{var je=F=>{var m=ks();P(()=>g(m,(e(L),c(()=>e(L).message)))),y(F,m)},Ge=F=>{var m=ks();P(()=>g(m,`saved: ${e(L),c(()=>e(L).file)??""}`)),y(F,m)},et=F=>{var m=ks();P(()=>g(m,`${e(L),c(()=>e(L).file)??""} — no violations`)),y(F,m)},_t=F=>{var m=ks();P(()=>g(m,`${e(L),c(()=>e(L).file)??""} — skipped: ${e(L),c(()=>e(L).reason)??""}`)),y(F,m)},bt=F=>{var m=ks();P(()=>g(m,`${e(L),c(()=>e(L).file)??""} — ${e(L),c(()=>e(L).message)??""}`)),y(F,m)},lt=F=>{var m=ks();P(()=>g(m,`${e(L),c(()=>e(L).violations.length)??""} violation${e(L),c(()=>e(L).violations.length===1?"":"s")??""} in ${e(L),c(()=>e(L).file)??""}`)),y(F,m)};H(Pe,F=>{e(L),c(()=>e(L).type==="system"||e(L).type==="error")?F(je):(e(L),c(()=>e(L).type==="saved")?F(Ge,1):(e(L),c(()=>e(L).type==="clean")?F(et,2):(e(L),c(()=>e(L).type==="skipped")?F(_t,3):(e(L),c(()=>e(L).type==="log")?F(bt,4):F(lt,-1)))))})}var nt=i(rt,2),Fe=i(le,2);{var Ye=F=>{var m=Es(),K=Be(m);st(K,3,()=>(e(L),c(()=>e(L).violations)),(O,R)=>`${e(L).id}-${R}`,(O,R,ae)=>{var q=Id(),Te=n(q),re=n(Te),U=i(Te,2),_e=n(U),Ee=n(_e),$=i(_e,2);{var z=Q=>{var Ce=Nd(),Me=i(Be(Ce)),me=n(Me);P(()=>g(me,(e(R),c(()=>e(R).rule)))),y(Q,Ce)};H($,Q=>{e(R),c(()=>e(R).rule)&&Q(z)})}var be=i($,2);{var oe=Q=>{var Ce=ks();P(()=>g(Ce,`— ${e(R),c(()=>e(R).issue)??""}`)),y(Q,Ce)};H(be,Q=>{e(R),c(()=>e(R).issue)&&Q(oe)})}var ne=i(be,2);{var D=Q=>{var Ce=Dd(),Me=i(Be(Ce)),me=n(Me);P(()=>g(me,`→ ${e(R),c(()=>e(R).suggestion)??""}`)),y(Q,Ce)};H(ne,Q=>{e(R),c(()=>e(R).suggestion)&&Q(D)})}P(Q=>{g(re,`[${e(ae)+1}]`),g(Ee,Q)},[()=>(e(R),e(L),c(()=>Ul(e(R),e(L).file)))]),y(O,q)}),y(F,m)};H(Fe,F=>{e(L),c(()=>e(L).type==="violations")&&F(Ye)})}P((F,m,K)=>{N=ye(le,1,"log-row svelte-d3ct2b",null,N,{"log-row-warn":e(L).type==="error","log-row-ok":e(L).type==="clean","log-row-fail":e(L).type==="violations"}),g(ht,F),ye(ve,1,`log-label ${m??""}`,"svelte-d3ct2b"),g(at,`[${K??""}]`)},[()=>(e(L),c(()=>Wl(e(L).timestamp))),()=>(e(L),c(()=>oo(e(L)))),()=>(e(L),c(()=>io(e(L))))]),V("click",nt,()=>{var m;const F=e(L).type==="system"||e(L).type==="error"?e(L).message:e(L).type==="saved"?`saved: ${e(L).file}`:e(L).file;(m=navigator.clipboard)==null||m.writeText(F)}),y(ke,Ae)}),y(he,Re)};H(se,he=>{e(Lt),c(()=>e(Lt).length===0)?he(xe):he(Oe,-1)})}y(A,M)},ic=A=>{var M=Bd(),se=Be(M),xe=i(n(se),2),Oe=n(xe),he=i(se,2);{var Re=ke=>{var L=jd();y(ke,L)},Ne=ke=>{var L=Es(),Ae=Be(L);st(Ae,3,()=>(e(d),c(()=>e(d).slice(0,20))),(le,N)=>`${le.timestamp}-${N}`,(le,N)=>{var Ie=Hd(),ht=Be(Ie),ve=n(ht),at=n(ve),rt=i(ve,2),Pe=n(rt),je=i(rt,2),Ge=n(je),et=n(Ge),_t=i(Ge,2);{var bt=Fe=>{var Ye=ks();P(F=>g(Ye,`— ${F??""}`),[()=>(e(N),c(()=>Ul(e(N),e(N).file)))]),y(Fe,Ye)};H(_t,Fe=>{e(N),c(()=>e(N).file)&&Fe(bt)})}var lt=i(ht,2);{var nt=Fe=>{var Ye=$d(),F=i(n(Ye),2),m=n(F);{var K=ae=>{var q=ks();P(()=>g(q,(e(N),c(()=>e(N).issue)))),y(ae,q)};H(m,ae=>{e(N),c(()=>e(N).issue)&&ae(K)})}var O=i(m,2);{var R=ae=>{var q=Fd(),Te=i(Be(q)),re=n(Te);P(()=>g(re,`→ ${e(N),c(()=>e(N).suggestion)??""}`)),y(ae,q)};H(O,ae=>{e(N),c(()=>e(N).suggestion)&&ae(R)})}y(Fe,Ye)};H(lt,Fe=>{e(N),c(()=>e(N).issue||e(N).suggestion)&&Fe(nt)})}P(Fe=>{g(at,Fe),g(Pe,`[${e(N),c(()=>e(N).source==="ci"?"CI":"HOOK")??""}]`),g(et,(e(N),c(()=>e(N).rule)))},[()=>(e(N),c(()=>Wl(e(N).timestamp)))]),y(le,Ie)}),y(ke,L)};H(he,ke=>{e(d),c(()=>e(d).length===0)?ke(Re):ke(Ne,-1)})}P(()=>g(Oe,`${e(d),c(()=>e(d).length)??""} violation${e(d),c(()=>e(d).length===1?"":"s")??""} in last 24h`)),y(A,M)},oc=A=>{var M=zd(),se=Be(M),xe=i(n(se),2),Oe=n(xe),he=i(se,2),Re=n(he),Ne=n(Re);Ne.value=Ne.__value="all";var ke=i(Ne);ke.value=ke.__value="rule";var L=i(ke);L.value=L.__value="decision";var Ae=i(L);Ae.value=Ae.__value="pattern";var le=i(Ae);le.value=le.__value="ignore";var N=i(Re,2),Ie=i(he,2),ht=n(Ie),ve=n(ht),at=n(ve),rt=n(at);rt.value=rt.__value="rule";var Pe=i(rt);Pe.value=Pe.__value="decision";var je=i(Pe);je.value=je.__value="pattern";var Ge=i(je);Ge.value=Ge.__value="ignore";var et=i(at,2),_t=n(et);_t.value=_t.__value="project";var bt=i(_t);bt.value=bt.__value="global";var lt=i(et,2),nt=i(lt,2),Fe=i(ve,2),Ye=n(Fe),F=i(Ye,2),m=n(F),K=i(Ie,2);st(K,5,()=>e(r),O=>O.id,(O,R)=>{var ae=Wd(),q=n(ae),Te=n(q),re=i(q,2),U=n(re),_e=i(re,2),Ee=n(_e),$=i(_e,2);{var z=oe=>{var ne=Vd(),D=n(ne);P(()=>g(D,(e(R),c(()=>e(R).reason)))),y(oe,ne)};H($,oe=>{e(R),c(()=>e(R).reason)&&oe(z)})}var be=i($,2);P(()=>{g(Te,(e(R),c(()=>e(R).type))),g(U,(e(R),c(()=>e(R).scope))),g(Ee,(e(R),c(()=>e(R).content)))}),V("click",be,()=>po(e(R).id)),y(O,ae)},O=>{var R=qd(),ae=n(R),q=n(ae);{var Te=U=>{var _e=Ud();y(U,_e)},re=U=>{var _e=ks("No rules match the current filters.");y(U,_e)};H(q,U=>{e(dt)&&e(I)===0?U(Te):U(re,-1)})}y(O,R)}),P(O=>{g(Oe,`${e(I)??""} rules active`),F.disabled=O,g(m,e(gs)?"Saving…":"+ Add Rule")},[()=>(e(gs),e(qe),c(()=>e(gs)||!e(qe).content.trim()))]),Zs(Re,()=>e(ut),O=>p(ut,O)),Ot(N,()=>e(Rs),O=>p(Rs,O)),Zs(at,()=>e(qe).type,O=>gt(qe,e(qe).type=O)),Zs(et,()=>e(qe).scope,O=>gt(qe,e(qe).scope=O)),Ot(lt,()=>e(qe).reason,O=>gt(qe,e(qe).reason=O)),Ot(nt,()=>e(qe).tags,O=>gt(qe,e(qe).tags=O)),Ot(Ye,()=>e(qe).content,O=>gt(qe,e(qe).content=O)),V("submit",ht,Rr(fo)),y(A,M)},cc=A=>{var M=bu(),se=Be(M),xe=i(n(se),2),Oe=n(xe),he=i(xe,2);let Re;var Ne=n(he),ke=i(he,2),L=n(ke),Ae=i(ke,2);let le;var N=n(Ae),Ie=i(se,2);{var ht=Pe=>{var je=Xd(),Ge=n(je),et=n(Ge),_t=i(et,2),bt=n(_t),lt=i(_t,2),nt=n(lt),Fe=i(lt,2);{var Ye=O=>{var R=Kd(),ae=n(R);P(()=>g(ae,e(La))),y(O,R)};H(Fe,O=>{e(La)&&O(Ye)})}var F=i(Ge,2);{var m=O=>{var R=Gd();y(O,R)},K=O=>{var R=Jd();st(R,5,()=>e(Gs),Et,(ae,q)=>{var Te=Yd(),re=n(Te),U=n(re),_e=i(re,2),Ee=n(_e),$=i(_e,2),z=i($,2);P(()=>{g(U,(e(q),c(()=>e(q).name))),g(Ee,`${e(q),c(()=>e(q).arch_type)??""}${e(q),c(()=>e(q).project_name?` · ${e(q).project_name}`:" · global")??""} · ${e(q),c(()=>e(q).layers.length)??""} layers · ${e(q),c(()=>e(q).rules.length)??""} rules`),$.disabled=e(xt)}),V("click",$,()=>Gi(e(q).id)),V("click",z,()=>Yi(e(q).id)),y(ae,Te)}),y(O,R)};H(F,O=>{e(Gs),c(()=>e(Gs).length===0)?O(m):O(K,-1)})}P(O=>{lt.disabled=O,g(nt,e(Wa)?"…":"↑ Save current")},[()=>(e(Wa),e(oa),c(()=>e(Wa)||!e(oa).trim()))]),Ot(et,()=>e(oa),O=>p(oa,O)),V("keydown",et,O=>O.key==="Enter"&&jl()),ti(bt,()=>e(Gr),O=>p(Gr,O)),V("click",lt,jl),y(Pe,je)};H(Ie,Pe=>{e(gr)&&Pe(ht)})}var ve=i(Ie,2);{var at=Pe=>{var je=Qd();y(Pe,je)},rt=Pe=>{var je=_u(),Ge=n(je);te(Ge,"width",Hl),te(Ge,"height",Bl);var et=i(n(Ge));st(et,1,()=>e(Y),Et,(F,m)=>{var K=Es(),O=Be(K);{var R=ae=>{const q=Dt(()=>(e(m),c(()=>e(m).r.allowed?"var(--green)":e(m).r.enforcement==="warn"?"#f59e0b":"var(--error)"))),Te=Dt(()=>(e(m),c(()=>e(m).r.allowed?"arrow-allow":e(m).r.enforcement==="warn"?"arrow-warn":"arrow-block"))),re=Dt(()=>(e(m),c(()=>e(m).r.allowed?"6,3":e(m).r.enforcement==="warn"?"4,3":"none")));var U=Zd();P(()=>{te(U,"x1",(e(m),c(()=>e(m).sx))),te(U,"y1",(e(m),c(()=>e(m).sy))),te(U,"x2",(e(m),c(()=>e(m).ex))),te(U,"y2",(e(m),c(()=>e(m).ey))),te(U,"stroke",e(q)),te(U,"stroke-dasharray",e(re)),te(U,"marker-end",`url(#${e(Te)??""})`)}),y(ae,U)};H(O,ae=>{e(m)&&ae(R)})}y(F,K)});var _t=i(et);st(_t,1,()=>e(S),Et,(F,m)=>{var K=tu();let O;var R=n(K);te(R,"width",vs),te(R,"height",Ds);var ae=i(R),q=n(ae),Te=i(ae),re=n(Te),U=i(Te);{var _e=Ee=>{var $=eu(),z=Be($),be=i(z);P(()=>{te(z,"cx",(e(m),c(()=>e(m).x+vs-2))),te(z,"cy",(e(m),c(()=>e(m).y+2))),te(be,"x",(e(m),c(()=>e(m).x+vs-2))),te(be,"y",(e(m),c(()=>e(m).y+6)))}),V("click",z,fd(()=>$l(e(m).name))),V("keydown",z,oe=>{oe.key==="Enter"&&$l(e(m).name)}),y(Ee,$)};H(U,Ee=>{e(Jt)&&Ee(_e)})}P(Ee=>{O=ye(K,0,"arch-node arch-node-clickable svelte-d3ct2b",null,O,{"arch-node-selected":e(ft)===e(m).name}),te(K,"aria-label",`Show files in ${e(m),c(()=>e(m).name)??""} layer`),te(R,"x",(e(m),c(()=>e(m).x))),te(R,"y",(e(m),c(()=>e(m).y))),ye(R,0,`arch-node-rect arch-node-${e(m),c(()=>e(m).name)??""}`,"svelte-d3ct2b"),te(R,"stroke-width",(e(ft),e(m),c(()=>e(ft)===e(m).name?2.5:1.5))),te(ae,"x",(e(m),c(()=>e(m).x+vs/2))),te(ae,"y",(e(m),c(()=>e(m).y+Ds/2-5))),g(q,(e(m),c(()=>e(m).name))),te(Te,"x",(e(m),c(()=>e(m).x+vs/2))),te(Te,"y",(e(m),c(()=>e(m).y+Ds/2+9))),g(re,Ee)},[()=>(e(m),c(()=>e(m).description.length>18?e(m).description.slice(0,16)+"…":e(m).description))]),V("click",K,()=>{e(Jt)||p(ft,e(ft)===e(m).name?null:e(m).name)}),V("keydown",K,Ee=>{!e(Jt)&&(Ee.key==="Enter"||Ee.key===" ")&&p(ft,e(ft)===e(m).name?null:e(m).name)}),y(F,K)});var bt=i(Ge,4);{var lt=F=>{const m=Dt(()=>(e(x),e(ft),c(()=>e(x).find($=>$.name===e(ft)))));var K=nu(),O=n(K),R=n(O),ae=n(R),q=i(R,2),Te=n(q),re=i(q,2),U=i(O,2);{var _e=$=>{var z=au(),be=i(n(z),2);st(be,1,()=>(yt(e(m)),c(()=>e(m).paths)),Et,(oe,ne)=>{var D=su(),Q=n(D);P(()=>g(Q,e(ne))),y(oe,D)}),y($,z)};H(U,$=>{yt(e(m)),c(()=>{var z,be;return(be=(z=e(m))==null?void 0:z.paths)==null?void 0:be.length})&&$(_e)})}var Ee=i(U,2);st(Ee,1,()=>(e(W),e(ft),c(()=>[e(W).filter($=>$.fromLayer===e(ft)||$.toLayer===e(ft))])),Et,($,z)=>{var be=Es(),oe=Be(be);{var ne=D=>{var Q=lu(),Ce=i(n(Q),2);st(Ce,1,()=>e(z),Et,(Me,me)=>{var de=ru(),tt=n(de);let mt;var ue=n(tt),Z=i(tt,2),De=n(Z);P(We=>{mt=ye(tt,1,"arch-rule-badge svelte-d3ct2b",null,mt,{"badge-block":!e(me).allowed&&e(me).enforcement==="block","badge-warn":!e(me).allowed&&e(me).enforcement==="warn","badge-allow":e(me).allowed}),g(ue,We),g(De,`${e(me),c(()=>e(me).fromLayer)??""} → ${e(me),c(()=>e(me).toLayer)??""} — ${e(me),c(()=>e(me).name)??""}`)},[()=>(e(me),c(()=>e(me).enforcement.toUpperCase()))]),y(Me,de)}),y(D,Q)};H(oe,D=>{e(z),c(()=>e(z).length)&&D(ne)})}y($,be)}),P(()=>{g(ae,e(ft)),g(Te,(yt(e(m)),c(()=>{var $;return(($=e(m))==null?void 0:$.description)??""})))}),V("click",re,()=>p(ft,null)),y(F,K)};H(bt,F=>{e(ft)&&F(lt)})}var nt=i(bt,2);st(nt,5,()=>e(W),Et,(F,m)=>{var K=ou(),O=n(K);let R;var ae=n(O),q=i(O,2),Te=n(q),re=i(q,2),U=n(re),_e=i(re,2);{var Ee=$=>{var z=iu();V("click",z,()=>Qi(e(m).id)),y($,z)};H(_e,$=>{e(Jt)&&$(Ee)})}P($=>{R=ye(O,1,"arch-rule-badge svelte-d3ct2b",null,R,{"badge-block":!e(m).allowed&&e(m).enforcement==="block","badge-warn":!e(m).allowed&&e(m).enforcement==="warn","badge-allow":e(m).allowed}),g(ae,$),g(Te,`${e(m),c(()=>e(m).fromLayer)??""} → ${e(m),c(()=>e(m).toLayer)??""}`),g(U,(e(m),c(()=>e(m).name)))},[()=>(e(m),c(()=>e(m).enforcement.toUpperCase()))]),y(F,K)});var Fe=i(nt,2);{var Ye=F=>{var m=hu(),K=Be(m);{var O=re=>{var U=cu(),_e=i(n(U),2),Ee=n(_e),$=i(n(Ee),2),z=i(Ee,2),be=i(n(z),2),oe=i(z,2),ne=i(n(oe),2),D=i(oe,2),Q=n(D),Ce=i(D,2);P(Me=>{D.disabled=Me,g(Q,e(xt)?"…":"Add")},[()=>(e(xt),e(Mt),c(()=>e(xt)||!e(Mt).name.trim()))]),Ot($,()=>e(Mt).name,Me=>gt(Mt,e(Mt).name=Me)),Ot(be,()=>e(Mt).paths,Me=>gt(Mt,e(Mt).paths=Me)),Ot(ne,()=>e(Mt).description,Me=>gt(Mt,e(Mt).description=Me)),V("click",Ce,()=>p(zs,!1)),V("submit",U,Rr(Zi)),y(re,U)},R=re=>{var U=vu();V("click",U,()=>{p(zs,!0),p(Ks,!1)}),y(re,U)};H(K,re=>{e(zs)?re(O):re(R,-1)})}var ae=i(K,2);{var q=re=>{var U=fu(),_e=i(n(U),2),Ee=n(_e),$=i(n(Ee),2),z=n($);z.value=z.__value="";var be=i(z);st(be,1,()=>e(x),Et,(vt,Nt)=>{var us=du(),Ja=n(us),Xa={};P(()=>{g(Ja,(e(Nt),c(()=>e(Nt).name))),Xa!==(Xa=(e(Nt),c(()=>e(Nt).name)))&&(us.value=(us.__value=(e(Nt),c(()=>e(Nt).name)))??"")}),y(vt,us)});var oe=i(be);oe.value=oe.__value="*";var ne=i(Ee,2),D=i(n(ne),2),Q=n(D);Q.value=Q.__value="";var Ce=i(Q);st(Ce,1,()=>e(x),Et,(vt,Nt)=>{var us=uu(),Ja=n(us),Xa={};P(()=>{g(Ja,(e(Nt),c(()=>e(Nt).name))),Xa!==(Xa=(e(Nt),c(()=>e(Nt).name)))&&(us.value=(us.__value=(e(Nt),c(()=>e(Nt).name)))??"")}),y(vt,us)});var Me=i(Ce);Me.value=Me.__value="*";var me=i(ne,2),de=i(n(me),2),tt=i(me,2),mt=i(n(tt),2),ue=n(mt);ue.value=ue.__value="block";var Z=i(ue);Z.value=Z.__value="warn";var De=i(tt,2),We=i(n(De),2),G=n(We);G.value=G.__value=!1;var we=i(G);we.value=we.__value=!0;var $e=i(De,2),J=n($e),Ue=i($e,2);P(vt=>{$e.disabled=vt,g(J,e(xt)?"…":"Add")},[()=>(e(xt),e(Ve),c(()=>e(xt)||!e(Ve).fromLayer||!e(Ve).toLayer||!e(Ve).name.trim()))]),Zs($,()=>e(Ve).fromLayer,vt=>(gt(Ve,e(Ve).fromLayer=vt),Qa(()=>{e(x)}))),Zs(D,()=>e(Ve).toLayer,vt=>(gt(Ve,e(Ve).toLayer=vt),Qa(()=>{e(x)}))),Ot(de,()=>e(Ve).name,vt=>(gt(Ve,e(Ve).name=vt),Qa(()=>{e(x)}))),Zs(mt,()=>e(Ve).enforcement,vt=>(gt(Ve,e(Ve).enforcement=vt),Qa(()=>{e(x)}))),Zs(We,()=>e(Ve).allowed,vt=>(gt(Ve,e(Ve).allowed=vt),Qa(()=>{e(x)}))),V("click",Ue,()=>p(Ks,!1)),V("submit",U,Rr(to)),y(re,U)},Te=re=>{var U=pu();V("click",U,()=>{p(Ks,!0),p(zs,!1)}),y(re,U)};H(ae,re=>{e(Ks)?re(q):re(Te,-1)})}y(F,m)};H(Fe,F=>{e(Jt)&&F(Ye)})}y(Pe,je)};H(ve,Pe=>{e(x),c(()=>e(x).length===0)?Pe(at):Pe(rt,-1)})}P(()=>{g(Oe,`${e(x),c(()=>e(x).length)??""} layers · ${e(W),c(()=>e(W).length)??""} rules`),Re=ye(he,1,"arch-edit-btn svelte-d3ct2b",null,Re,{"arch-edit-btn-active":e(Jt)}),g(Ne,e(Jt)?"Done":"Edit Graph"),ke.disabled=e(xt),g(L,e(xt)?"…":"↺ Reset"),le=ye(Ae,1,"arch-edit-btn svelte-d3ct2b",null,le,{"arch-edit-btn-active":e(gr)}),g(N,`⊞ Profiles${e(Gs),c(()=>e(Gs).length>0?` (${e(Gs).length})`:"")??""}`)}),V("click",he,()=>{p(Jt,!e(Jt)),p(zs,!1),p(Ks,!1)}),V("click",ke,eo),V("click",Ae,()=>{p(gr,!e(gr)),p(La,"")}),y(A,M)},vc=A=>{var M=Eu(),se=Be(M),xe=i(n(se),2),Oe=n(xe),he=i(xe,2),Re=n(he),Ne=i(he,2),ke=n(Ne),L=i(se,2);{var Ae=N=>{var Ie=mu(),ht=i(n(Ie),2),ve=n(ht);P(()=>g(ve,(e(b),c(()=>{var at;return(at=e(b).violationHistory)!=null&&at.length?"All violations resolved.":"No violations recorded yet."})))),y(N,Ie)},le=N=>{var Ie=ku();st(Ie,5,()=>e(a),Et,(ht,ve)=>{var at=xu();let rt;var Pe=n(at),je=n(Pe),Ge=n(je),et=i(je,2),_t=n(et),bt=i(et,2);{var lt=m=>{var K=gu(),O=n(K);P(R=>g(O,`✓ Resolved${R??""}`),[()=>(e(ve),c(()=>e(ve).resolvedAt?" "+new Date(e(ve).resolvedAt).toLocaleTimeString():""))]),y(m,K)};H(bt,m=>{e(ve),c(()=>e(ve).resolved)&&m(lt)})}var nt=i(bt,2);let Fe;var Ye=n(nt),F=i(Pe,2);st(F,1,()=>(e(ve),c(()=>e(ve).violations)),Et,(m,K)=>{var O=wu(),R=n(O),ae=n(R),q=i(R,2),Te=n(q),re=i(q,2);{var U=_e=>{var Ee=yu(),$=n(Ee);P(()=>g($,`— ${e(K),c(()=>e(K).issue)??""}`)),y(_e,Ee)};H(re,_e=>{e(K),c(()=>e(K).issue)&&_e(U)})}P(_e=>{g(ae,_e),g(Te,(e(K),c(()=>e(K).rule)))},[()=>(e(K),c(()=>{var _e;return((_e=e(K).decision)==null?void 0:_e.toUpperCase())??"VIOLATION"}))]),y(m,O)}),P(m=>{rt=ye(at,1,"history-entry svelte-d3ct2b",null,rt,{"history-entry-resolved":e(ve).resolved}),g(Ge,(e(ve),c(()=>e(ve).file))),g(_t,m),Fe=ye(nt,1,"history-resolve-btn svelte-d3ct2b",null,Fe,{"history-resolve-btn-active":e(ve).resolved}),te(nt,"title",(e(ve),c(()=>e(ve).resolved?"Mark unresolved":"Mark as resolved"))),g(Ye,(e(ve),c(()=>e(ve).resolved?"↩ Unresolve":"✓ Resolve")))},[()=>(e(ve),c(()=>new Date(e(ve).timestamp).toLocaleString()))]),V("click",nt,()=>Xi(e(ve).timestamp)),y(ht,at)}),y(N,Ie)};H(L,N=>{e(a),c(()=>!e(a).length)?N(Ae):N(le,-1)})}P(()=>{g(Oe,`${e(b),c(()=>{var N;return((N=e(b).violationHistory)==null?void 0:N.length)??0})??""} entries`),Ne.disabled=(e(za),e(b),c(()=>{var N;return e(za)||!((N=e(b).violationHistory)!=null&&N.length)})),g(ke,e(za)?"…":"✕ Clear all")}),ti(Re,()=>e(yr),N=>p(yr,N)),V("click",Ne,Ji),y(A,M)},dc=A=>{var M=Vu(),se=Be(M),xe=i(n(se),2);{var Oe=le=>{var N=Su(),Ie=n(N);P(()=>g(Ie,`${e(ce),c(()=>e(ce).summary.total)??""} total violations · ${e(ce),c(()=>e(ce).summary.uniqueFiles)??""} files`)),y(le,N)};H(xe,le=>{e(ce)&&le(Oe)})}var he=i(xe,2),Re=n(he),Ne=i(se,2);{var ke=le=>{var N=Au();y(le,N)},L=le=>{var N=Tu();y(le,N)},Ae=le=>{var N=Bu(),Ie=Be(N),ht=n(Ie),ve=n(ht),at=n(ve),rt=i(ht,2),Pe=n(rt),je=n(Pe),Ge=i(rt,2),et=n(Ge),_t=n(et),bt=i(Ge,2),lt=n(bt),nt=n(lt),Fe=i(Ie,2),Ye=n(Fe);let F;var m=i(Ye,2);let K;var O=i(m,2);let R;var ae=i(O,2);let q;var Te=i(Fe,2);{var re=$=>{const z=Dt(()=>(e(ce),c(()=>Math.max(1,...e(ce).trends.map(ue=>ue.violations))))),be=Dt(()=>600),oe=Dt(()=>140),ne=Dt(()=>32),D=Dt(()=>(e(ce),yt(e(ne)),yt(e(be)),yt(e(oe)),yt(e(z)),c(()=>e(ce).trends.map((ue,Z)=>({x:e(ne)+Z/(e(ce).trends.length-1||1)*(e(be)-e(ne)*2),y:e(oe)-e(ne)-ue.violations/e(z)*(e(oe)-e(ne)*2),t:ue})))));var Q=Ou(),Ce=n(Q);te(Ce,"viewBox",`0 0 ${e(be)??""} ${e(oe)??""}`);var Me=n(Ce);st(Me,0,()=>[0,.25,.5,.75,1],Et,(ue,Z)=>{var De=Lu(),We=Be(De);te(We,"x1",e(ne)),te(We,"x2",e(be)-e(ne));var G=i(We);te(G,"x",e(ne)-4);var we=n(G);P($e=>{te(We,"y1",e(oe)-e(ne)-Z*(e(oe)-e(ne)*2)),te(We,"y2",e(oe)-e(ne)-Z*(e(oe)-e(ne)*2)),te(G,"y",e(oe)-e(ne)-Z*(e(oe)-e(ne)*2)+4),g(we,$e)},[()=>(yt(e(z)),c(()=>Math.round(e(z)*Z)))]),y(ue,De)});var me=i(Me,2),de=i(me),tt=i(de);st(tt,1,()=>e(D),Et,(ue,Z)=>{var De=Es(),We=Be(De);{var G=we=>{var $e=Cu(),J=n($e),Ue=n(J);P(()=>{te($e,"cx",(e(Z),c(()=>e(Z).x))),te($e,"cy",(e(Z),c(()=>e(Z).y))),g(Ue,`${e(Z),c(()=>e(Z).t.date)??""}: ${e(Z),c(()=>e(Z).t.violations)??""} violations, ${e(Z),c(()=>e(Z).t.files)??""} files`)}),y(we,$e)};H(We,we=>{e(Z),c(()=>e(Z).t.violations>0)&&we(G)})}y(ue,De)});var mt=i(tt);st(mt,1,()=>(yt(e(D)),c(()=>e(D).filter((ue,Z)=>Z%7===0||Z===e(D).length-1))),Et,(ue,Z)=>{var De=Mu();te(De,"y",e(oe)-4);var We=n(De);P(G=>{te(De,"x",(e(Z),c(()=>e(Z).x))),g(We,G)},[()=>(e(Z),c(()=>e(Z).t.date.slice(5)))]),y(ue,De)}),P((ue,Z)=>{te(me,"points",`${ue??""} ${yt(e(D)),c(()=>e(D)[e(D).length-1].x)??""},${e(oe)-e(ne)} ${yt(e(D)),c(()=>e(D)[0].x)??""},${e(oe)-e(ne)}`),te(de,"points",Z)},[()=>(yt(e(D)),c(()=>e(D).map(ue=>`${ue.x},${ue.y}`).join(" "))),()=>(yt(e(D)),c(()=>e(D).map(ue=>`${ue.x},${ue.y}`).join(" ")))]),y($,Q)},U=$=>{var z=Es(),be=Be(z);{var oe=D=>{var Q=Ru();y(D,Q)},ne=D=>{const Q=Dt(()=>(e(ce),c(()=>Math.max(1,...e(ce).fileHeat.map(me=>me.count)))));var Ce=Du(),Me=i(n(Ce),2);st(Me,1,()=>(e(ce),c(()=>e(ce).fileHeat)),Et,(me,de)=>{const tt=Dt(()=>(e(de),yt(e(Q)),c(()=>e(de).count/e(Q)*100)));var mt=Nu(),ue=n(mt),Z=n(ue),De=i(ue,2),We=n(De),G=i(We,2),we=n(G),$e=i(De,2),J=n($e),Ue=i($e,2),vt=n(Ue);P((Nt,us,Ja)=>{te(ue,"title",(e(de),c(()=>e(de).file))),g(Z,Nt),Or(We,`width:${e(tt)??""}%; background: hsl(${us??""},70%,45%)`),g(we,(e(de),c(()=>e(de).count))),g(J,(e(de),c(()=>e(de).resolved>0?`✓ ${e(de).resolved}`:"—"))),g(vt,Ja)},[()=>(e(de),c(()=>e(de).file.split("/").slice(-2).join("/"))),()=>(yt(e(tt)),c(()=>Math.round(120-e(tt)*1.2))),()=>(e(de),c(()=>new Date(e(de).lastViolation).toLocaleDateString()))]),y(me,mt)}),y(D,Ce)};H(be,D=>{e(ce),c(()=>e(ce).fileHeat.length===0)?D(oe):D(ne,-1)})}y($,z)},_e=$=>{const z=Dt(()=>(e(ce),c(()=>Math.max(1,...e(ce).ruleEffectiveness.map(ne=>ne.hitCount)))));var be=ju(),oe=i(n(be),2);st(oe,1,()=>(e(ce),c(()=>e(ce).ruleEffectiveness)),Et,(ne,D)=>{var Q=Pu();let Ce;var Me=n(Q),me=n(Me),de=i(Me,2),tt=n(de),mt=i(de,2),ue=n(mt);{var Z=J=>{var Ue=Iu();P(()=>Or(Ue,`width:${e(D),yt(e(z)),c(()=>e(D).hitCount/e(z)*100)??""}%; background:var(--error)`)),y(J,Ue)};H(ue,J=>{e(D),c(()=>e(D).hitCount>0)&&J(Z)})}var De=i(ue,2);let We;var G=n(De),we=i(mt,2),$e=n(we);P(J=>{Ce=ye(Q,1,"an-heat-row svelte-d3ct2b",null,Ce,{"an-row-dead":e(D).hitCount===0}),g(me,(e(D),c(()=>e(D).name))),g(tt,`${e(D),c(()=>e(D).fromLayer)??""} → ${e(D),c(()=>e(D).toLayer)??""}`),We=ye(De,1,"an-heat-count svelte-d3ct2b",null,We,{"an-dead-count":e(D).hitCount===0}),g(G,(e(D),c(()=>e(D).hitCount===0?"never fired":e(D).hitCount))),g($e,J)},[()=>(e(D),c(()=>e(D).lastFired?new Date(e(D).lastFired).toLocaleDateString():"—"))]),y(ne,Q)}),y($,be)},Ee=$=>{var z=Es(),be=Be(z);{var oe=D=>{var Q=Fu();y(D,Q)},ne=D=>{const Q=Dt(()=>(e(ce),c(()=>Math.max(1,...e(ce).teamActivity.map(me=>me.violations)))));var Ce=Hu(),Me=i(n(Ce),2);st(Me,1,()=>(e(ce),c(()=>e(ce).teamActivity)),Et,(me,de)=>{var tt=$u(),mt=n(tt),ue=n(mt),Z=i(mt,2),De=n(Z),We=i(De,2),G=n(We),we=i(Z,2),$e=n(we),J=i(we,2),Ue=n(J);P(vt=>{g(ue,(e(de),c(()=>e(de).author))),Or(De,`width:${e(de),yt(e(Q)),c(()=>e(de).violations/e(Q)*100)??""}%; background:var(--tertiary)`),g(G,(e(de),c(()=>e(de).violations))),g($e,(e(de),c(()=>e(de).files))),g(Ue,vt)},[()=>(e(de),c(()=>new Date(e(de).lastSeen).toLocaleDateString()))]),y(me,tt)}),y(D,Ce)};H(be,D=>{e(ce),c(()=>e(ce).teamActivity.length===0)?D(oe):D(ne,-1)})}y($,z)};H(Te,$=>{e(Xt)==="trends"?$(re):e(Xt)==="heatmap"?$(U,1):e(Xt)==="rules"?$(_e,2):e(Xt)==="team"&&$(Ee,3)})}P(()=>{g(at,(e(ce),c(()=>e(ce).summary.total))),g(je,(e(ce),c(()=>e(ce).summary.open))),g(_t,(e(ce),c(()=>e(ce).summary.resolved))),g(nt,(e(ce),c(()=>e(ce).summary.uniqueFiles))),F=ye(Ye,1,"an-tab svelte-d3ct2b",null,F,{"an-tab-active":e(Xt)==="trends"}),K=ye(m,1,"an-tab svelte-d3ct2b",null,K,{"an-tab-active":e(Xt)==="heatmap"}),R=ye(O,1,"an-tab svelte-d3ct2b",null,R,{"an-tab-active":e(Xt)==="rules"}),q=ye(ae,1,"an-tab svelte-d3ct2b",null,q,{"an-tab-active":e(Xt)==="team"})}),V("click",Ye,()=>p(Xt,"trends")),V("click",m,()=>p(Xt,"heatmap")),V("click",O,()=>p(Xt,"rules")),V("click",ae,()=>p(Xt,"team")),y(le,N)};H(Ne,le=>{e(qa)?le(ke):e(ce)?le(Ae,-1):le(L,1)})}P(()=>{he.disabled=e(qa),g(Re,e(qa)?"…":"⟳ Refresh")}),V("click",he,Fl),y(A,M)};H(lc,A=>{e(Ze)==="live-feed"?A(nc):e(Ze)==="commit-hook"?A(ic,1):e(Ze)==="rules"?A(oc,2):e(Ze)==="arch-graph"?A(cc,3):e(Ze)==="history"?A(vc,4):e(Ze)==="analytics"&&A(dc,5)})}var uc=i(Cn,2),Mn=n(uc),On=n(Mn),fc=i(n(On),2),pc=n(fc),Rn=i(On,2),Nn=i(n(Rn),2),hc=n(Nn),_c=i(Nn,2),bc=n(_c),Dn=i(Rn,2),mc=i(n(Dn),2),gc=n(mc),yc=i(Dn,2),In=i(n(yc),2);let Pn;var wc=n(In),xc=i(Mn,2),jn=n(xc),Tr=n(jn),kc=n(Tr),Lr=i(Tr,2),Ec=n(Lr),rl=i(Lr,2),Sc=n(rl),Ac=i(jn,2),Fn=n(Ac),Tc=n(Fn),Lc=i(Fn,2),Cc=n(Lc),Mc=i(Kl,2);{var Oc=A=>{var M=qu(),se=n(M),xe=n(se),Oe=i(n(xe),2),he=i(xe,2),Re=i(n(he),2),Ne=i(n(Re),2),ke=n(Ne);ke.value=ke.__value="ollama";var L=i(ke);L.value=L.__value="openai";var Ae=i(L);Ae.value=Ae.__value="anthropic";var le=i(Ae);le.value=le.__value="minimax";var N=i(le);N.value=N.__value="openai-compatible";var Ie=i(Re,2),ht=i(n(Ie),2),ve=i(Ie,2);{var at=G=>{var we=Wu(),$e=i(n(we),2);P(()=>te($e,"placeholder",(e(b),c(()=>{var J;return(J=e(b).runtime)!=null&&J.model.apiKeyConfigured?"(already set — leave blank to keep)":"sk-..."})))),Ot($e,()=>e(ze).apiKey,J=>gt(ze,e(ze).apiKey=J)),y(G,we)};H(ve,G=>{e(ze),c(()=>e(ze).provider&&e(ze).provider!=="ollama")&&G(at)})}var rt=i(ve,2),Pe=i(n(rt),2),je=n(Pe),Ge=n(je),et=i(je,2),_t=i(rt,2);{var bt=G=>{var we=Uu();let $e;var J=n(we);P(Ue=>{$e=ye(we,1,"modal-msg svelte-d3ct2b",null,$e,Ue),g(J,e(Us))},[()=>({"modal-msg-ok":e(Us).startsWith("✓"),"modal-msg-err":e(Us).startsWith("✗")})]),y(G,we)};H(_t,G=>{e(Us)&&G(bt)})}var lt=i(he,2),nt=i(n(lt),2),Fe=i(n(nt),2),Ye=i(nt,2),F=i(n(Ye),2),m=i(lt,2),K=i(n(m),2),O=i(n(K)),R=n(O),ae=i(K,2),q=i(n(ae)),Te=n(q),re=i(ae,2),U=i(n(re)),_e=n(U),Ee=i(re,2),$=i(n(Ee)),z=n($),be=i(Ee,2),oe=i(n(be)),ne=n(oe),D=i(be,2),Q=i(n(D)),Ce=n(Q),Me=i(D,2),me=i(n(Me)),de=n(me),tt=i(Me,2),mt=i(n(tt)),ue=n(mt),Z=i(tt,2),De=i(n(Z)),We=n(De);P((G,we,$e)=>{je.disabled=e(mr),g(Ge,e(mr)?"Saving…":"Apply"),g(R,(e(b),c(()=>{var J;return((J=e(b).runtime)==null?void 0:J.model.provider)??"—"}))),g(Te,(e(b),c(()=>{var J,Ue;return((J=e(b).runtime)==null?void 0:J.model.checkModelResolved)??((Ue=e(b).runtime)==null?void 0:Ue.model.chatModel)??"—"}))),g(_e,(e(b),c(()=>{var J;return(J=e(b).runtime)!=null&&J.model.apiKeyConfigured?"Configured":"Not set"}))),g(z,(e(b),c(()=>{var J,Ue;return((J=e(b).runtime)==null?void 0:J.model.embeddingModelResolved)??((Ue=e(b).runtime)==null?void 0:Ue.model.embeddingModel)??"—"}))),g(ne,`${e(b),c(()=>{var J,Ue;return((Ue=(J=e(b).runtime)==null?void 0:J.timeouts)==null?void 0:Ue.chatTimeoutMs)??"60000"})??""} ms`),g(Ce,`${e(b),c(()=>{var J,Ue;return((Ue=(J=e(b).runtime)==null?void 0:J.timeouts)==null?void 0:Ue.checkTimeoutMs)??"20000"})??""} ms`),g(de,(e(b),c(()=>{var J;return((J=e(b).stats.tokens)==null?void 0:J.calls)??0}))),g(ue,`${G??""} ${e(b),c(()=>{var J;return((J=e(b).runtime)==null?void 0:J.model.provider)==="ollama"?"(local — free)":""})??""}`),g(We,`${we??""} in / ${$e??""} out`)},[()=>(e(b),c(()=>{var G,we;return((we=(G=e(b).stats.tokens)==null?void 0:G.totalTokens)==null?void 0:we.toLocaleString())??"0"})),()=>(e(b),c(()=>{var G,we;return((we=(G=e(b).stats.tokens)==null?void 0:G.inputTokens)==null?void 0:we.toLocaleString())??"0"})),()=>(e(b),c(()=>{var G,we;return((we=(G=e(b).stats.tokens)==null?void 0:G.outputTokens)==null?void 0:we.toLocaleString())??"0"}))]),V("click",Oe,()=>p(Ct,!1)),Zs(Ne,()=>e(ze).provider,G=>gt(ze,e(ze).provider=G)),Ot(ht,()=>e(ze).model,G=>gt(ze,e(ze).model=G)),V("click",je,uo),V("click",et,co),Ot(Fe,()=>e(ze).chatTimeoutMs,G=>gt(ze,e(ze).chatTimeoutMs=G)),Ot(F,()=>e(ze).checkTimeoutMs,G=>gt(ze,e(ze).checkTimeoutMs=G)),V("click",M,si(()=>p(Ct,!1))),V("keydown",M,si(G=>{G.key==="Escape"&&p(Ct,!1)})),y(A,M)};H(Mc,A=>{e(Ct)&&A(Oc)})}P((A,M,se,xe,Oe,he,Re)=>{var Ne,ke,L,Ae,le;g(Qt,A),te(Ut,"title",e(Ys)?"Switch to light mode":"Switch to dark mode"),Jl=ye(Zr,1,"side-btn svelte-d3ct2b",null,Jl,{"side-btn-active":e(Ze)==="live-feed"}),Xl=ye(Sr,1,"side-btn svelte-d3ct2b",null,Xl,{"side-btn-active":e(Ze)==="commit-hook"}),Ql=ye(el,1,"side-btn svelte-d3ct2b",null,Ql,{"side-btn-active":e(Ze)==="rules"}),Zl=ye(tl,1,"side-btn svelte-d3ct2b",null,Zl,{"side-btn-active":e(Ze)==="arch-graph"}),en=ye(Ar,1,"side-btn svelte-d3ct2b",null,en,{"side-btn-active":e(Ze)==="history"}),sn=ye(tn,1,"side-btn svelte-d3ct2b",null,sn,{"side-btn-active":e(Ze)==="analytics"}),ln=ye(rn,1,"sidebar-conn-dot svelte-d3ct2b",null,ln,{"dot-live":e(E).live}),g(Oo,(e(E),c(()=>e(E).live?"Live":"Offline"))),g(Do,`CORE ${e(E),c(()=>e(E).live?"LIVE":"IDLE")??""}`),cn=ye(sl,1,"health-badge svelte-d3ct2b",null,cn,{"health-green":e(Le),"health-warn":!e(Le)}),dn=ye(vn,1,"dot svelte-d3ct2b",null,dn,{"dot-green":e(Le),"dot-warn":!e(Le)}),g(Po,`DB ${e(Le)?"CONNECTED":"DISCONNECTED"}`),un=ye(al,1,"health-badge svelte-d3ct2b",null,un,{"health-blue":e(Se)||((Ne=e(b).runtime)==null?void 0:Ne.model.provider)!=="ollama","health-warn":!e(Se)&&((ke=e(b).runtime)==null?void 0:ke.model.provider)==="ollama"}),pn=ye(fn,1,"dot svelte-d3ct2b",null,pn,{"dot-blue":e(Se)||((L=e(b).runtime)==null?void 0:L.model.provider)!=="ollama","dot-warn":!e(Se)&&((Ae=e(b).runtime)==null?void 0:Ae.model.provider)==="ollama"}),g(Fo,`MODEL: ${e(Tt)??""}`),kn=ye(xn,1,"metric-value svelte-d3ct2b",null,kn,{"metric-value-warn":e(h)>0}),g(zo,e(h)),g(Go,M),g(Xo,se),Tn=ye(An,1,"dot dot-green svelte-d3ct2b",null,Tn,{"dot-pulse":e(E).live}),g(ec,xe),Ln=ye(Ya,1,"icon-btn svelte-d3ct2b",null,Ln,{"icon-btn-active":e(Ns)}),te(Ya,"title",e(Ns)?"Resume":"Pause"),g(pc,(e(b),c(()=>{var N;return((N=e(b).stats.tokens)==null?void 0:N.calls)??0}))),g(hc,Oe),g(bc,(e(b),c(()=>{var N;return((N=e(b).runtime)==null?void 0:N.model.provider)==="ollama"?"LOCAL (FREE)":"USED"}))),g(gc,he),Pn=ye(In,1,"footer-val svelte-d3ct2b",null,Pn,{"footer-val-error":(((le=e(b).stats.bypasses)==null?void 0:le.withoutReason)??0)>0}),g(wc,`${e(b),c(()=>{var N;return((N=e(b).stats.bypasses)==null?void 0:N.withoutReason)??0})??""} unrecorded`),Tr.disabled=e(qs)==="sync",g(kc,`${e(qs)==="sync"?"…":"⟳"} Sync Agents`),Lr.disabled=e(qs)==="check-all",g(Ec,`${e(qs)==="check-all"?"…":"⊛"} Check All`),rl.disabled=e(qs)==="tune",g(Sc,`${e(qs)==="tune"?"…":"⚙"} Tune Rules`),Or(Tc,`width: ${Re??""}%`),g(Cc,`Storage: ${e(T)??""} memories`)},[()=>c(ro),()=>(e(w),c(()=>e(w).toLocaleString())),()=>(e(I),c(()=>e(I).toLocaleString())),()=>(e(E),c(()=>e(E).live?"LIVE STREAMING":e(E).label.toUpperCase())),()=>(e(b),c(()=>{var A;return(A=e(b).stats.tokens)!=null&&A.totalTokens?(e(b).stats.tokens.totalTokens/1e3).toFixed(1)+"K":"—"})),()=>(e(h),e(w),c(()=>e(h)===0?"0.00%":(e(h)/Math.max(1,e(w))*100).toFixed(2)+"%")),()=>(e(T),c(()=>Math.min(100,e(T)/Math.max(1,e(T)+100)*100+20)))]),Ot(ds,()=>e(Va),A=>p(Va,A)),V("click",xs,()=>{var A,M,se,xe,Oe,he;p(Ct,!e(Ct)),p(ze,{provider:((A=e(b).runtime)==null?void 0:A.model.provider)??"",model:((M=e(b).runtime)==null?void 0:M.model.chatModel)??"",apiKey:"",chatTimeoutMs:((xe=(se=e(b).runtime)==null?void 0:se.timeouts)==null?void 0:xe.chatTimeoutMs)??"",checkTimeoutMs:((he=(Oe=e(b).runtime)==null?void 0:Oe.timeouts)==null?void 0:he.checkTimeoutMs)??""}),p(Us,"")}),V("click",Ut,ho),V("click",Zr,()=>{p(Ze,"live-feed")}),V("click",Sr,()=>{p(Ze,"commit-hook")}),V("click",el,()=>{p(Ze,"rules")}),V("click",tl,()=>{p(Ze,"arch-graph"),p(Jt,!1),Ua().catch(()=>{})}),V("click",Ar,()=>{p(Ze,"history")}),V("click",tn,()=>{p(Ze,"analytics"),Fl()}),V("click",Uo,vo),V("click",Ya,()=>p(Ns,!e(Ns))),V("click",rc,()=>{const A=new Blob([JSON.stringify(e(b),null,2)],{type:"application/json"}),M=document.createElement("a");M.href=URL.createObjectURL(A),M.download="memory-core-snapshot.json",M.click()}),V("click",Tr,()=>Jr("sync")),V("click",Lr,()=>Jr("check-all")),V("click",rl,()=>Jr("tune")),y(v,k)};H(go,v=>{e(Js)?v(yo):v(wo,-1)})}y(t,zl),_i()}Zv(Ku,{target:document.getElementById("app")});
|