@shahmilsaari/memory-core 1.0.32 → 1.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +8 -6
  2. package/dist/{approval-queue-YBYRGBHP.js → approval-queue-4RK46FNE.js} +2 -1
  3. package/dist/{ast-analyzer-JM4CIOFY.js → ast-analyzer-WGTJKGAP.js} +1 -0
  4. package/dist/{check-cache-6NWRTZJD.js → check-cache-ZVFHTA2C.js} +1 -0
  5. package/dist/{check-logger-5HYSWA3S.js → check-logger-F4DW4LBY.js} +1 -0
  6. package/dist/chunk-2LNDQGDD.js +37 -0
  7. package/dist/{chunk-23GUWJ6F.js → chunk-4QWIYO2G.js} +3071 -3271
  8. package/dist/{chunk-GIPKVQSA.js → chunk-5T2QBBYT.js} +3 -29
  9. package/dist/chunk-FPRSYCOZ.js +77 -0
  10. package/dist/chunk-HJCPBM7B.js +238 -0
  11. package/dist/chunk-K3NQKI34.js +10 -0
  12. package/dist/chunk-SKR44CRD.js +35 -0
  13. package/dist/{chunk-W6WEAV3S.js → chunk-UMYJQWIE.js} +13 -11
  14. package/dist/{chunk-PQBWHAZN.js → chunk-XAE3RY5D.js} +5 -2
  15. package/dist/{classifier-MZ65R7FK.js → classifier-D5K3X7FQ.js} +1 -0
  16. package/dist/cli.js +244 -80
  17. package/dist/{confidence-gate-ZQDAOS6P.js → confidence-gate-AT2MW4NK.js} +8 -6
  18. package/dist/dashboard/assets/index-BcDOsQwz.css +1 -0
  19. package/dist/dashboard/assets/index-DGx4sRHq.js +2 -0
  20. package/dist/dashboard/index.html +2 -2
  21. package/dist/{dashboard-server-MD6NVL2F.js → dashboard-server-UBZHOPRC.js} +274 -21
  22. package/dist/{db-FLFZZXG3.js → db-RE23O4DV.js} +3 -1
  23. package/dist/{deterministic-validator-PP56B46I.js → deterministic-validator-3LB234OG.js} +1 -0
  24. package/dist/draft-rule-NUXOSRRS.js +11 -0
  25. package/dist/embedding-VIMV6O2P.js +9 -0
  26. package/dist/{evidence-HVMSONTT.js → evidence-WFMGWSOP.js} +1 -0
  27. package/dist/{graph-TFNTB5OK.js → graph-UJJAKNHD.js} +1 -0
  28. package/dist/{incident-capture-RVPZULS7.js → incident-capture-5YUVJJM3.js} +11 -0
  29. package/dist/mcp-server-3N7R46BS.js +14958 -0
  30. package/dist/memory-selection-A5CQ6ZT5.js +29 -0
  31. package/dist/{deepseek-critique-MALVIYGF.js → model-critique-E2GNZ42U.js} +18 -32
  32. package/dist/{ollama-judge-D2LFK5PB.js → ollama-judge-6ZEZN4JV.js} +29 -41
  33. package/dist/{rate-limiter-SLIPCXRF.js → rate-limiter-KIMXTAAU.js} +1 -0
  34. package/dist/{rules-V3QMN3AR.js → rules-UUVIKEDM.js} +1 -0
  35. package/dist/{watch-errors-B3FA26N4.js → watch-errors-DZMW3CFN.js} +28 -33
  36. package/package.json +2 -1
  37. package/templates/AGENTS.md.hbs +11 -27
  38. package/templates/AI_RULES.md.hbs +9 -23
  39. package/templates/ARCHITECTURE.md.hbs +9 -30
  40. package/templates/CLAUDE.md.hbs +10 -35
  41. package/templates/DEVIN.md.hbs +7 -16
  42. package/templates/PROJECT_MEMORY.md.hbs +5 -21
  43. package/templates/amazonq-guidelines.md.hbs +7 -16
  44. package/templates/clinerules.hbs +8 -17
  45. package/templates/copilot-instructions.md.hbs +7 -16
  46. package/templates/cursor-rule.mdc.hbs +4 -9
  47. package/templates/cursorrules.hbs +8 -14
  48. package/templates/gemini-styleguide.md.hbs +7 -16
  49. package/templates/jetbrains-ai.md.hbs +6 -15
  50. package/templates/roo-rule.md.hbs +6 -15
  51. package/templates/windsurfrules.hbs +9 -18
  52. package/dist/dashboard/assets/index-BFwqVRYO.js +0 -2
  53. package/dist/dashboard/assets/index-y7eHWJtq.css +0 -1
@@ -0,0 +1 @@
1
+ :root{color-scheme:light dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{border:0}:root{--primary: #0040e0;--primary-dim: #2e5bff;--primary-container: #efefff;--on-primary: #ffffff;--surface: #f8f9fb;--surface-low: #f3f4f6;--surface-mid: #edeef0;--surface-high: #e7e8ea;--surface-highest: #e1e2e4;--on-surface: #191c1e;--on-surface-var: #434656;--outline: #747688;--outline-var: #c4c5d9;--error: #ba1a1a;--error-bg: #ffdad6;--tertiary: #993100;--green: #10b981;--green-bg: rgba(16,185,129,.1);--green-border: rgba(16,185,129,.3);--mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--sans: "Hanken Grotesk", Inter, ui-sans-serif, system-ui, sans-serif;--sidebar-bg: #f0f1f5;--sidebar-border: #e0e1e9;--sidebar-text: #191c1e;--sidebar-muted: #747688;--sidebar-hover: rgba(0,0,0,.05);--sidebar-active-bg: #e4e8ff}body{margin:0;background:var(--surface);color:var(--on-surface);font-family:var(--sans);font-size:14px;overflow:hidden;height:100vh}*{box-sizing:border-box}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--surface-low)}::-webkit-scrollbar-thumb{background:var(--outline-var);border-radius:4px}.shell.svelte-d3ct2b{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar.svelte-d3ct2b{display:flex;align-items:center;gap:12px;height:48px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--outline-var);flex-shrink:0;z-index:30}.topbar-brand.svelte-d3ct2b{display:flex;align-items:center;gap:10px;flex-shrink:0}.topbar-project.svelte-d3ct2b{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--on-surface);letter-spacing:.02em;text-transform:uppercase}.topbar-arch-pill.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--primary);background:var(--primary-container);border:1px solid var(--primary-dim);border-radius:4px;padding:2px 7px;letter-spacing:.04em;text-transform:uppercase}.topbar-search.svelte-d3ct2b{flex:1;max-width:480px;margin:0 auto;position:relative}.search-icon.svelte-d3ct2b{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--on-surface-var);font-size:18px;pointer-events:none;line-height:1}.search-input.svelte-d3ct2b{width:100%;height:36px;padding:0 12px 0 36px;background:var(--surface-mid);border:1px solid var(--outline-var);border-radius:8px;color:var(--on-surface);font-family:var(--sans);font-size:13px;outline:none;transition:border-color .15s}.search-input.svelte-d3ct2b:focus{border-color:var(--primary-dim)}.topbar-actions.svelte-d3ct2b{display:flex;align-items:center;gap:4px;flex-shrink:0}.icon-btn.svelte-d3ct2b{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:8px;color:var(--on-surface-var);cursor:pointer;transition:background .15s,color .15s}.icon-btn.svelte-d3ct2b:hover{background:var(--surface-low);color:var(--primary)}.icon-btn-active.svelte-d3ct2b{color:var(--primary)!important;background:var(--primary-container)!important}.avatar.svelte-d3ct2b{width:32px;height:32px;border-radius:50%;background:var(--primary-dim);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;margin-left:8px;border:1px solid var(--outline-var);flex-shrink:0;cursor:default}.body.svelte-d3ct2b{display:flex;flex:1;min-height:0;overflow:hidden}.sidebar.svelte-d3ct2b{width:188px;flex-shrink:0;display:flex;flex-direction:column;padding:0;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:20}.sidebar-logo.svelte-d3ct2b{display:flex;align-items:center;gap:10px;padding:0 16px;height:48px;border-bottom:1px solid var(--sidebar-border);color:var(--sidebar-text);flex-shrink:0}.sidebar-brand-label.svelte-d3ct2b{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--sidebar-text, #e2e2e8);text-transform:uppercase}.sidebar-nav.svelte-d3ct2b{display:flex;flex-direction:column;gap:2px;padding:12px 8px;flex:1}.side-btn.svelte-d3ct2b{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-left:2px solid transparent;border-radius:0 6px 6px 0;color:var(--sidebar-muted);font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:color .12s,background .12s,border-color .12s;margin-left:-8px}.side-btn.svelte-d3ct2b:hover{color:var(--sidebar-text);background:var(--sidebar-hover)}.side-btn-active.svelte-d3ct2b{color:var(--sidebar-text)!important;background:var(--sidebar-active-bg)!important;border-left-color:var(--primary)!important}.side-badge.svelte-d3ct2b{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--error);color:#fff;font-size:9px;font-weight:700;margin-left:2px}.sidebar-footer.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--sidebar-border)}.sidebar-conn-dot.svelte-d3ct2b{width:7px;height:7px;border-radius:50%;background:var(--outline);flex-shrink:0}.sidebar-conn-label.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--sidebar-muted);text-transform:uppercase;letter-spacing:.06em}.dot-live.svelte-d3ct2b{background:var(--green)!important;box-shadow:0 0 6px var(--green)}.sidebar-user.svelte-d3ct2b{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:hidden}.sidebar-avatar.svelte-d3ct2b{width:22px;height:22px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-username.svelte-d3ct2b{font-size:12px;color:var(--sidebar-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.sidebar-logout.svelte-d3ct2b{background:none;border:none;cursor:pointer;padding:3px;color:var(--sidebar-muted);display:flex;align-items:center;border-radius:4px;flex-shrink:0}.sidebar-logout.svelte-d3ct2b:hover{color:var(--error)}.login-screen.svelte-d3ct2b{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--surface)}.login-card.svelte-d3ct2b{width:360px;background:var(--surface-low);border:1px solid var(--outline-var);border-radius:12px;padding:40px 36px 32px;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 4px 24px #00000014}.login-logo.svelte-d3ct2b{margin-bottom:4px}.login-title.svelte-d3ct2b{font-family:var(--sans);font-size:22px;font-weight:700;color:var(--on-surface);margin:0}.login-sub.svelte-d3ct2b{font-size:13px;color:var(--on-surface-var);margin:0 0 8px}.login-error.svelte-d3ct2b{width:100%;background:var(--error-bg);color:var(--error);border-radius:6px;padding:8px 12px;font-size:13px;margin:0}.login-form.svelte-d3ct2b{width:100%;display:flex;flex-direction:column;gap:6px}.login-label.svelte-d3ct2b{font-size:12px;font-weight:600;color:var(--on-surface-var);margin-top:4px}.login-input.svelte-d3ct2b{width:100%;padding:9px 12px;border:1px solid var(--outline-var);border-radius:7px;background:var(--surface);color:var(--on-surface);font-size:14px;box-sizing:border-box;transition:border-color .15s}.login-input.svelte-d3ct2b:focus{outline:none;border-color:var(--primary)}.login-btn.svelte-d3ct2b{margin-top:10px;padding:10px;background:var(--primary);color:var(--on-primary);border:none;border-radius:7px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.login-btn.svelte-d3ct2b:disabled{opacity:.6;cursor:not-allowed}.login-btn.svelte-d3ct2b:not(:disabled):hover{opacity:.88}.login-hint.svelte-d3ct2b{font-size:12px;color:var(--on-surface-var);margin:8px 0 0;text-align:center}.login-hint.svelte-d3ct2b code:where(.svelte-d3ct2b){font-family:var(--mono);font-size:11px;background:var(--surface-mid);padding:1px 5px;border-radius:4px}.content.svelte-d3ct2b{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.health-bar.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:6px 24px;border-bottom:1px solid var(--outline-var);background:#fff;flex-shrink:0;flex-wrap:wrap}.health-label.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--outline);text-transform:uppercase;letter-spacing:.06em;margin-right:4px}.health-badge.svelte-d3ct2b{display:flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:700}.health-green.svelte-d3ct2b{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.health-blue.svelte-d3ct2b{background:#0040e014;color:var(--primary);border:1px solid rgba(0,64,224,.2)}.health-warn.svelte-d3ct2b{background:#ba1a1a14;color:var(--error);border:1px solid rgba(186,26,26,.25)}.health-error.svelte-d3ct2b{font-family:var(--mono);font-size:10px;color:var(--error);font-weight:700}.dot.svelte-d3ct2b{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-green.svelte-d3ct2b{background:var(--green)}.dot-blue.svelte-d3ct2b{background:var(--primary)}.dot-warn.svelte-d3ct2b{background:var(--error)}.dot-pulse.svelte-d3ct2b{animation:svelte-d3ct2b-pulse 1.4s ease-in-out infinite}@keyframes svelte-d3ct2b-pulse{0%,to{opacity:1}50%{opacity:.35}}.filter-bar.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 24px;background:var(--surface-low);border-bottom:1px solid var(--outline-var);flex-shrink:0}.filter-left.svelte-d3ct2b,.filter-right.svelte-d3ct2b{display:flex;align-items:center;gap:8px}.chip.svelte-d3ct2b{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;font-family:var(--mono);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;border:none}.chip-primary.svelte-d3ct2b{background:var(--primary-dim);color:#fff}.chip-close.svelte-d3ct2b{background:transparent;border:none;color:#fffc;cursor:pointer;padding:0;font-size:10px;line-height:1}.chip-outline.svelte-d3ct2b{background:var(--surface);color:var(--on-surface-var);border:1px solid var(--outline-var);transition:border-color .15s}.chip-outline.svelte-d3ct2b:hover{border-color:var(--primary-dim)}.chevron.svelte-d3ct2b{transition:transform .2s}.chevron-open.svelte-d3ct2b{transform:rotate(180deg)}.service-dropdown-wrap.svelte-d3ct2b{position:relative}.dropdown.svelte-d3ct2b{position:absolute;top:calc(100% + 4px);left:0;min-width:180px;background:#fff;border:1px solid var(--outline-var);border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:100;overflow:hidden;animation:svelte-d3ct2b-dropIn .12s ease}@keyframes svelte-d3ct2b-dropIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-item.svelte-d3ct2b{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:transparent;border:none;color:var(--on-surface-var);font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s;text-align:left}.dropdown-item.svelte-d3ct2b:hover{background:var(--surface-low)}.dropdown-item-active.svelte-d3ct2b{color:var(--primary);background:var(--primary-container)}.dropdown-item-active.svelte-d3ct2b:hover{background:var(--primary-container)}.dropdown-badge.svelte-d3ct2b{margin-left:auto;background:var(--error);color:#fff;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700}.divider-v.svelte-d3ct2b{width:1px;height:28px;background:var(--outline-var);margin:0 4px}.metrics-strip.svelte-d3ct2b{display:flex;align-items:center;gap:24px}.metric-item.svelte-d3ct2b{display:flex;flex-direction:column;align-items:center}.metric-label.svelte-d3ct2b{font-family:var(--mono);font-size:9px;font-weight:700;color:var(--outline);text-transform:uppercase;letter-spacing:.05em;line-height:1}.metric-value.svelte-d3ct2b{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--on-surface);line-height:1.4}.metric-value-warn.svelte-d3ct2b{color:var(--error)}.live-badge.svelte-d3ct2b{display:flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--outline-var);border-radius:8px;background:#fff;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--on-surface);white-space:nowrap}.feed-area.svelte-d3ct2b{flex:1;min-height:0;overflow-y:auto;padding:12px 24px;background:#fff;font-family:var(--mono);font-size:12px}.log-row.svelte-d3ct2b{display:flex;align-items:baseline;gap:12px;padding:3px 8px;border-radius:4px;transition:background .1s;min-height:22px}.log-row.svelte-d3ct2b:hover{background:var(--surface-low)}.log-row-warn.svelte-d3ct2b{background:#ba1a1a0a}.log-row-fail.svelte-d3ct2b{background:#9931000a}.log-time.svelte-d3ct2b{width:80px;flex-shrink:0;color:var(--outline)}.log-label.svelte-d3ct2b{width:56px;flex-shrink:0;font-weight:700}.label-sys.svelte-d3ct2b{color:var(--primary)}.label-ok.svelte-d3ct2b{color:var(--green)}.label-warn.svelte-d3ct2b{color:var(--tertiary)}.label-info.svelte-d3ct2b{color:var(--on-surface-var)}.label-hook.svelte-d3ct2b{color:var(--error)}.label-chck.svelte-d3ct2b{color:var(--outline)}.log-msg.svelte-d3ct2b{flex:1;min-width:0;color:var(--on-surface-var);word-break:break-all;line-height:1.5}.log-msg.svelte-d3ct2b strong:where(.svelte-d3ct2b){color:var(--on-surface);font-weight:600}.copy-btn.svelte-d3ct2b{opacity:0;background:transparent;border:none;color:var(--outline);cursor:pointer;font-size:14px;padding:0 4px;transition:opacity .15s,color .15s;flex-shrink:0}.log-row.svelte-d3ct2b:hover .copy-btn:where(.svelte-d3ct2b){opacity:1}.copy-btn.svelte-d3ct2b:hover{color:var(--primary)}.log-detail.svelte-d3ct2b{display:flex;gap:8px;padding:3px 8px 3px 148px;font-size:11px;border-left:2px solid rgba(153,49,0,.3);margin-left:8px;margin-bottom:2px}.detail-index.svelte-d3ct2b{color:var(--outline);flex-shrink:0;width:24px}.detail-body.svelte-d3ct2b{color:var(--on-surface-var);flex:1;min-width:0;line-height:1.5}.detail-fix.svelte-d3ct2b{color:var(--primary)}.cursor-blink.svelte-d3ct2b{animation:svelte-d3ct2b-blink 1s step-start infinite}@keyframes svelte-d3ct2b-blink{0%,to{opacity:1}50%{opacity:0}}.section-header.svelte-d3ct2b{display:flex;align-items:baseline;gap:12px;padding:8px 8px 10px;border-bottom:1px solid var(--outline-var);margin-bottom:8px}.section-title.svelte-d3ct2b{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--on-surface)}.section-meta.svelte-d3ct2b{font-size:11px;color:var(--outline);font-family:var(--mono)}.rules-toolbar.svelte-d3ct2b{display:flex;gap:8px;padding:8px;margin-bottom:4px}.rules-select.svelte-d3ct2b,.rules-input.svelte-d3ct2b,.rules-textarea.svelte-d3ct2b{padding:6px 10px;background:var(--surface-low);border:1px solid var(--outline-var);border-radius:6px;color:var(--on-surface);font-family:var(--sans);font-size:13px;outline:none;transition:border-color .15s}.rules-select.svelte-d3ct2b:focus,.rules-input.svelte-d3ct2b:focus,.rules-textarea.svelte-d3ct2b:focus{border-color:var(--primary-dim)}.rules-textarea.svelte-d3ct2b{resize:vertical;flex:1;min-width:0}.rule-form-wrap.svelte-d3ct2b{padding:0 8px 8px;border-bottom:1px solid var(--outline-var);margin-bottom:8px}.rule-form.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px}.rule-form-row.svelte-d3ct2b{display:flex;gap:8px;align-items:flex-start}.add-btn.svelte-d3ct2b{padding:8px 16px;background:var(--primary);color:var(--on-primary);border:none;border-radius:6px;font-family:var(--mono);font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s;align-self:flex-end}.add-btn.svelte-d3ct2b:hover:not(:disabled){background:var(--primary-dim)}.add-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.rule-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px;overflow-y:auto;max-height:400px;padding:0 8px}.rule-row.svelte-d3ct2b{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);font-size:12px;min-width:0;transition:background .1s}.rule-row.svelte-d3ct2b:hover{background:var(--surface-mid)}.rule-badge.svelte-d3ct2b{padding:2px 7px;background:var(--primary-container);color:var(--primary);border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;flex-shrink:0}.rule-scope.svelte-d3ct2b{color:var(--outline);font-family:var(--mono);font-size:10px;font-weight:600;flex-shrink:0}.rule-content.svelte-d3ct2b{flex:1;min-width:0;color:var(--on-surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-reason.svelte-d3ct2b{color:var(--on-surface-var);font-size:11px;flex-shrink:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.del-btn.svelte-d3ct2b{background:transparent;border:none;color:var(--outline);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px;flex-shrink:0;transition:background .1s,color .1s}.del-btn.svelte-d3ct2b:hover{background:var(--error-bg);color:var(--error)}.analyze-btn.svelte-d3ct2b{background:transparent;border:1px solid var(--outline-var);color:var(--outline);cursor:pointer;font-size:11px;padding:2px 6px;border-radius:4px;flex-shrink:0;transition:background .1s,color .1s,border-color .1s}.analyze-btn.svelte-d3ct2b:hover{background:var(--accent-bg);color:var(--accent);border-color:var(--accent)}.analyze-btn.svelte-d3ct2b:disabled{opacity:.4;cursor:not-allowed}.check-all-btn.svelte-d3ct2b{padding:5px 14px;background:var(--accent);color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .1s}.check-all-btn.svelte-d3ct2b:hover{opacity:.85}.check-all-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.check-progress.svelte-d3ct2b{position:relative;height:28px;min-width:180px;background:var(--surface);border:1px solid var(--outline-var);border-radius:4px;overflow:hidden;display:flex;align-items:center}.check-progress-bar.svelte-d3ct2b{position:absolute;left:0;top:0;height:100%;background:var(--accent);opacity:.2;transition:width .3s ease;border-radius:4px}.check-progress-label.svelte-d3ct2b{position:relative;z-index:1;width:100%;text-align:center;font-size:11px;font-weight:600;color:var(--text)}.cancel-check-btn.svelte-d3ct2b{padding:4px 10px;background:transparent;border:1px solid var(--error);color:var(--error);border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .1s}.cancel-check-btn.svelte-d3ct2b:hover{background:var(--error-bg)}.analyze-result.svelte-d3ct2b{margin:0 0 6px;padding:10px 14px;border-radius:6px;border-left:4px solid var(--outline);background:var(--surface-mid);font-size:13px;display:flex;flex-direction:column;gap:6px}.analyze-result.analyze-valid.svelte-d3ct2b{border-left-color:#22c55e}.analyze-result.analyze-stale.svelte-d3ct2b{border-left-color:#eab308}.analyze-result.analyze-duplicate.svelte-d3ct2b{border-left-color:#f97316}.analyze-result.analyze-vague.svelte-d3ct2b{border-left-color:#6b7280}.analyze-badge.svelte-d3ct2b{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;width:fit-content}.analyze-badge-valid.svelte-d3ct2b{background:#22c55e20;color:#22c55e}.analyze-badge-stale.svelte-d3ct2b{background:#eab30820;color:#eab308}.analyze-badge-duplicate.svelte-d3ct2b{background:#f9731620;color:#f97316}.analyze-badge-vague.svelte-d3ct2b{background:#6b728020;color:#9ca3af}.analyze-confidence.svelte-d3ct2b{font-size:11px;color:var(--outline)}.analyze-reasoning.svelte-d3ct2b{color:var(--text);line-height:1.4}.analyze-issues.svelte-d3ct2b{margin:2px 0 0;padding-left:18px;font-size:12px;color:var(--text-dim)}.analyze-issues.svelte-d3ct2b li:where(.svelte-d3ct2b){margin-bottom:2px}.analyze-suggestion.svelte-d3ct2b{background:var(--surface);border:1px solid var(--outline-var);border-radius:6px;padding:10px;margin-top:4px}.analyze-suggestion.svelte-d3ct2b strong:where(.svelte-d3ct2b){font-size:12px;color:var(--outline)}.analyze-suggestion.svelte-d3ct2b pre:where(.svelte-d3ct2b){margin:6px 0;padding:8px;background:var(--surface-mid);border-radius:4px;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:150px;overflow-y:auto;color:var(--text)}.apply-btn.svelte-d3ct2b{margin-top:6px;padding:5px 14px;background:var(--accent);color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .1s}.apply-btn.svelte-d3ct2b:hover{opacity:.85}.apply-btn.svelte-d3ct2b:disabled{opacity:.4;cursor:not-allowed}.check-all-summary.svelte-d3ct2b{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);border:1px solid var(--outline-var);border-radius:6px;margin:0 8px 6px}.summary-title.svelte-d3ct2b{font-weight:600;font-size:13px;color:var(--text)}.summary-count.svelte-d3ct2b{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.summary-valid.svelte-d3ct2b{background:#22c55e20;color:#22c55e}.summary-stale.svelte-d3ct2b{background:#eab30820;color:#eab308}.summary-dupe.svelte-d3ct2b{background:#f9731620;color:#f97316}.summary-vague.svelte-d3ct2b{background:#6b728020;color:#9ca3af}.resolve-all-btn.svelte-d3ct2b{margin-left:auto;padding:5px 14px;background:var(--accent);color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .1s}.resolve-all-btn.svelte-d3ct2b:hover{opacity:.85}.resolve-all-btn.svelte-d3ct2b:disabled{opacity:.4;cursor:not-allowed}.summary-dismiss-btn.svelte-d3ct2b{background:transparent;border:none;color:var(--outline);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px}.summary-dismiss-btn.svelte-d3ct2b:hover{background:var(--surface-mid)}html[data-theme=dark] .check-all-summary.svelte-d3ct2b{background:#1a1c20}html[data-theme=dark] .check-progress.svelte-d3ct2b{background:#111318}.metrics-footer.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 24px;border-top:1px solid var(--outline-var);background:var(--surface);flex-shrink:0}.footer-left.svelte-d3ct2b,.footer-right.svelte-d3ct2b{display:flex;align-items:center;gap:24px}.footer-metric.svelte-d3ct2b{display:flex;align-items:center;gap:6px}.footer-label.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--outline);text-transform:uppercase;letter-spacing:.04em}.footer-val.svelte-d3ct2b{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--on-surface)}.footer-val-error.svelte-d3ct2b{color:var(--error)}.footer-unit.svelte-d3ct2b{font-family:var(--mono);font-size:9px;color:var(--outline);text-transform:uppercase}.storage-bar-wrap.svelte-d3ct2b{display:flex;align-items:center;gap:8px}.storage-bar.svelte-d3ct2b{width:96px;height:6px;background:var(--surface-mid);border-radius:999px;overflow:hidden}.storage-fill.svelte-d3ct2b{height:100%;background:var(--primary-dim);border-radius:999px;transition:width .6s ease}.cli-btn.svelte-d3ct2b{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--surface-high);border:none;border-radius:4px;color:var(--on-surface);font-family:var(--mono);font-size:11px;font-weight:700;cursor:pointer;transition:background .15s}.cli-btn.svelte-d3ct2b:hover{background:var(--outline-var)}:root[data-theme=dark]{--primary: #4f9eff;--primary-dim: #3b82f6;--primary-container: #172036;--on-primary: #001b3e;--surface: #111318;--surface-low: #0c0e12;--surface-mid: #1e2128;--surface-high: #252930;--surface-highest: #2e3138;--on-surface: #e6edf3;--on-surface-var: #8b949e;--outline: #484f58;--outline-var: #30363d;--error: #f85149;--error-bg: rgba(248,81,73,.15);--tertiary: #f0883e;--green: #3fb950;--green-bg: rgba(63,185,80,.12);--green-border: rgba(63,185,80,.3);--sidebar-bg: #0d1117;--sidebar-border: #21262d;--sidebar-text: #e6edf3;--sidebar-muted: #6e7681;--sidebar-hover: rgba(255,255,255,.04);--sidebar-active-bg: rgba(79,158,255,.1)}html[data-theme=dark] .topbar.svelte-d3ct2b{background:#161b22;border-bottom-color:var(--outline-var)}html[data-theme=dark] .health-bar.svelte-d3ct2b{background:#1a1c20;border-bottom-color:var(--outline-var)}html[data-theme=dark] .filter-bar.svelte-d3ct2b{background:#111318;border-bottom-color:var(--outline-var)}html[data-theme=dark] .feed-area.svelte-d3ct2b{background:#0c0e12}html[data-theme=dark] .metrics-footer.svelte-d3ct2b{background:#111318;border-top-color:var(--outline-var)}html[data-theme=dark] .search-input.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface)}html[data-theme=dark] .dropdown.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);box-shadow:0 8px 24px #00000073}html[data-theme=dark] .dropdown-item.svelte-d3ct2b:hover{background:#282a2e}html[data-theme=dark] .dropdown-item-active.svelte-d3ct2b{background:var(--primary-container);color:var(--primary)}html[data-theme=dark] .chip-outline.svelte-d3ct2b,html[data-theme=dark] .live-badge.svelte-d3ct2b{background:#1e2024}html[data-theme=dark] .rule-row.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var)}html[data-theme=dark] .rule-row.svelte-d3ct2b:hover{background:#282a2e}html[data-theme=dark] .analyze-result.svelte-d3ct2b{background:#1a1c20}html[data-theme=dark] .analyze-suggestion.svelte-d3ct2b{background:#111318}html[data-theme=dark] .analyze-suggestion.svelte-d3ct2b pre:where(.svelte-d3ct2b){background:#1a1c20}html[data-theme=dark] .rules-select.svelte-d3ct2b,html[data-theme=dark] .rules-input.svelte-d3ct2b,html[data-theme=dark] .rules-textarea.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface)}html[data-theme=dark] .log-row.svelte-d3ct2b:hover{background:#1e2024}html[data-theme=dark] .log-row-warn.svelte-d3ct2b{background:#ffb4ab0d}html[data-theme=dark] .log-row-fail.svelte-d3ct2b{background:#ffba200a}html[data-theme=dark] .section-header.svelte-d3ct2b{border-bottom-color:var(--outline-var)}html[data-theme=dark] .storage-bar.svelte-d3ct2b{background:#282a2e}html[data-theme=dark] .badge-warn.svelte-d3ct2b{background:#422006;color:#fbbf24}html[data-theme=dark] .log-detail.svelte-d3ct2b{border-left-color:#ffba204d}html[data-theme=dark] .history-entry.svelte-d3ct2b{border-color:var(--outline-var);background:#1a1c20}html[data-theme=dark] .history-header.svelte-d3ct2b{background:#1e2024;border-bottom-color:var(--outline-var)}html[data-theme=dark] .history-violation.svelte-d3ct2b{border-bottom-color:var(--outline-var)}html[data-theme=dark] .arch-node-panel.svelte-d3ct2b{background:#1a1c20;border-color:var(--outline-var)}html[data-theme=dark] .arch-node-panel-path.svelte-d3ct2b{background:#1e2024}html[data-theme=dark] .arch-rule-row.svelte-d3ct2b{background:#1a1c20;border-color:var(--outline-var)}html[data-theme=dark] .arch-svg.svelte-d3ct2b{background:#0c0e12;border-color:var(--outline-var)}html[data-theme=dark] .footer-actions.svelte-d3ct2b .action-btn:where(.svelte-d3ct2b){background:#1e2024}html[data-theme=dark] .cli-btn.svelte-d3ct2b{background:#1e2024}html[data-theme=dark] .modal-status-row.svelte-d3ct2b{border-bottom-color:var(--outline-var)}html[data-theme=dark] .modal-input.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface)}html[data-theme=dark] .modal-btn.svelte-d3ct2b{background:#1e2024;border-color:var(--outline-var);color:var(--on-surface-var)}html[data-theme=dark] .modal-btn.svelte-d3ct2b:hover:not(:disabled){background:#282a2e}html[data-theme=dark] .rule-form-wrap.svelte-d3ct2b{border-bottom-color:var(--outline-var)}@media (max-width: 768px){.sidebar.svelte-d3ct2b{width:48px}.sidebar-brand-label.svelte-d3ct2b{display:none}.side-btn.svelte-d3ct2b span:where(.svelte-d3ct2b){display:none}.sidebar-conn-label.svelte-d3ct2b,.metrics-strip.svelte-d3ct2b{display:none}.filter-bar.svelte-d3ct2b,.feed-area.svelte-d3ct2b{padding:8px 12px}.metrics-footer.svelte-d3ct2b{padding:0 12px;gap:12px}.footer-metric.svelte-d3ct2b:nth-child(n+2){display:none}}.footer-actions.svelte-d3ct2b{display:flex;gap:6px;align-items:center;margin-right:12px}.action-btn.svelte-d3ct2b{font-size:11px;font-family:var(--mono);padding:4px 10px;border-radius:6px;border:1px solid var(--outline-var);background:var(--surface-low);color:var(--on-surface-var);cursor:pointer;transition:background .15s,border-color .15s}.action-btn.svelte-d3ct2b:hover:not(:disabled){background:var(--primary-container);border-color:var(--primary);color:var(--primary)}.action-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.action-btn-warn.svelte-d3ct2b:hover:not(:disabled){background:#fff3e0;border-color:#f59e0b;color:#b45309}.modal-backdrop.svelte-d3ct2b{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.modal.svelte-d3ct2b{background:var(--surface);border:1px solid var(--outline-var);border-radius:12px;width:520px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);box-shadow:0 8px 32px #0000002e;overflow:hidden;display:flex;flex-direction:column}.modal-header.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--outline-var);flex-shrink:0;background:var(--surface)}.modal-body.svelte-d3ct2b{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;min-height:0}@media (max-width: 640px){.modal.svelte-d3ct2b{width:100%;max-width:calc(100vw - 16px);max-height:calc(100vh - 24px);border-radius:8px}.modal-row.svelte-d3ct2b{grid-template-columns:1fr;gap:4px}.modal-toggle-row.svelte-d3ct2b{flex-direction:row;align-items:flex-start}.modal-section.svelte-d3ct2b{padding:12px 14px}.modal-header.svelte-d3ct2b{padding:12px 14px 10px}}.modal-title.svelte-d3ct2b{font-size:14px;font-weight:600;color:var(--on-surface)}.modal-close.svelte-d3ct2b{background:none;border:none;cursor:pointer;color:var(--outline);font-size:16px;line-height:1}.modal-section.svelte-d3ct2b{padding:16px 20px;border-bottom:1px solid var(--outline-var)}.modal-section.svelte-d3ct2b:last-child{border-bottom:none}.modal-section-title.svelte-d3ct2b{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--outline);text-transform:uppercase;margin-bottom:12px}.modal-row.svelte-d3ct2b{display:grid;grid-template-columns:100px 1fr;gap:8px;align-items:center;margin-bottom:10px}.modal-label.svelte-d3ct2b{font-size:12px;color:var(--on-surface-var)}.modal-input.svelte-d3ct2b{font-size:12px;font-family:var(--mono);padding:6px 10px;border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);color:var(--on-surface);outline:none;width:100%}.modal-input.svelte-d3ct2b:focus{border-color:var(--primary)}.modal-row-actions.svelte-d3ct2b{display:flex;gap:8px}.modal-btn.svelte-d3ct2b{font-size:12px;padding:6px 14px;border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);color:var(--on-surface-var);cursor:pointer}.modal-btn.svelte-d3ct2b:hover:not(:disabled){background:var(--surface-mid)}.modal-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.modal-btn-primary.svelte-d3ct2b{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.modal-btn-primary.svelte-d3ct2b:hover:not(:disabled){background:var(--primary-dim)}.modal-msg.svelte-d3ct2b{font-size:12px;margin-top:8px;padding:6px 10px;border-radius:6px}.modal-msg-ok.svelte-d3ct2b{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}.modal-msg-err.svelte-d3ct2b{background:var(--error-bg);color:var(--error);border:1px solid var(--error)}.modal-status-row.svelte-d3ct2b{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--surface-mid)}.modal-status-row.svelte-d3ct2b:last-child{border-bottom:none}.modal-status-label.svelte-d3ct2b{font-size:11px;color:var(--outline)}.modal-status-val.svelte-d3ct2b{font-size:11px;font-family:var(--mono);color:var(--on-surface)}html[data-theme=dark] .modal.svelte-d3ct2b{background:var(--surface);border-color:var(--outline-var)}.arch-graph-wrap.svelte-d3ct2b{display:flex;flex-direction:column;gap:16px;padding:16px}.arch-svg.svelte-d3ct2b{display:block;border:1px solid var(--outline-var);border-radius:8px;background:var(--surface-low);width:100%;max-width:640px}.arch-node-rect.svelte-d3ct2b{fill:var(--surface-mid);stroke:var(--outline-var);stroke-width:1.5}.arch-node-domain.arch-node-rect.svelte-d3ct2b{fill:#eff6ff;stroke:#3b82f6}.arch-node-application.arch-node-rect.svelte-d3ct2b{fill:#f0fdf4;stroke:#22c55e}.arch-node-infrastructure.arch-node-rect.svelte-d3ct2b{fill:#fff7ed;stroke:#f97316}.arch-node-api.arch-node-rect.svelte-d3ct2b{fill:#faf5ff;stroke:#a855f7}.arch-node-shared.arch-node-rect.svelte-d3ct2b{fill:#f8fafc;stroke:#94a3b8}.arch-node-controllers.arch-node-rect.svelte-d3ct2b{fill:#eff6ff;stroke:#3b82f6}.arch-node-handlers.arch-node-rect.svelte-d3ct2b{fill:#faf5ff;stroke:#a855f7}.arch-node-services.arch-node-rect.svelte-d3ct2b{fill:#f0fdf4;stroke:#22c55e}.arch-node-repositories.arch-node-rect.svelte-d3ct2b{fill:#fff7ed;stroke:#f97316}.arch-node-modules.arch-node-rect.svelte-d3ct2b{fill:#eef2ff;stroke:#6366f1}.arch-node-common.arch-node-rect.svelte-d3ct2b{fill:#f8fafc;stroke:#94a3b8}.arch-node-models.arch-node-rect.svelte-d3ct2b{fill:#f0fdfa;stroke:#14b8a6}.arch-node-views.arch-node-rect.svelte-d3ct2b{fill:#fefce8;stroke:#eab308}.arch-node-pages.arch-node-rect.svelte-d3ct2b,.arch-node-screens.arch-node-rect.svelte-d3ct2b,.arch-node-routes.arch-node-rect.svelte-d3ct2b{fill:#eff6ff;stroke:#3b82f6}.arch-node-components.arch-node-rect.svelte-d3ct2b{fill:#fdf2f8;stroke:#ec4899}.arch-node-hooks.arch-node-rect.svelte-d3ct2b{fill:#f5f3ff;stroke:#8b5cf6}.arch-node-composables.arch-node-rect.svelte-d3ct2b{fill:#ecfeff;stroke:#06b6d4}.arch-node-store.arch-node-rect.svelte-d3ct2b,.arch-node-stores.arch-node-rect.svelte-d3ct2b{fill:#fffbeb;stroke:#f59e0b}.arch-node-lib.arch-node-rect.svelte-d3ct2b{fill:#f0fdfa;stroke:#14b8a6}.arch-node-utils.arch-node-rect.svelte-d3ct2b{fill:#f8fafc;stroke:#94a3b8}.arch-node-guards.arch-node-rect.svelte-d3ct2b{fill:#fff1f2;stroke:#f43f5e}.arch-node-server.arch-node-rect.svelte-d3ct2b{fill:#fff7ed;stroke:#f97316}.arch-node-ports.arch-node-rect.svelte-d3ct2b{fill:#ecfeff;stroke:#06b6d4}.arch-node-adapters.arch-node-rect.svelte-d3ct2b{fill:#f0fdfa;stroke:#14b8a6}html[data-theme=dark] .arch-node-domain.arch-node-rect.svelte-d3ct2b{fill:#1e3a5f;stroke:#3b82f6}html[data-theme=dark] .arch-node-application.arch-node-rect.svelte-d3ct2b{fill:#14352a;stroke:#22c55e}html[data-theme=dark] .arch-node-infrastructure.arch-node-rect.svelte-d3ct2b{fill:#3d2006;stroke:#f97316}html[data-theme=dark] .arch-node-api.arch-node-rect.svelte-d3ct2b{fill:#2e1a47;stroke:#a855f7}html[data-theme=dark] .arch-node-shared.arch-node-rect.svelte-d3ct2b{fill:#1e2535;stroke:#94a3b8}html[data-theme=dark] .arch-node-controllers.arch-node-rect.svelte-d3ct2b{fill:#1e3a5f;stroke:#3b82f6}html[data-theme=dark] .arch-node-handlers.arch-node-rect.svelte-d3ct2b{fill:#2e1a47;stroke:#a855f7}html[data-theme=dark] .arch-node-services.arch-node-rect.svelte-d3ct2b{fill:#14352a;stroke:#22c55e}html[data-theme=dark] .arch-node-repositories.arch-node-rect.svelte-d3ct2b{fill:#3d2006;stroke:#f97316}html[data-theme=dark] .arch-node-modules.arch-node-rect.svelte-d3ct2b{fill:#1e1b4b;stroke:#6366f1}html[data-theme=dark] .arch-node-common.arch-node-rect.svelte-d3ct2b{fill:#1e2535;stroke:#94a3b8}html[data-theme=dark] .arch-node-models.arch-node-rect.svelte-d3ct2b{fill:#0f2922;stroke:#14b8a6}html[data-theme=dark] .arch-node-views.arch-node-rect.svelte-d3ct2b{fill:#29240a;stroke:#eab308}html[data-theme=dark] .arch-node-pages.arch-node-rect.svelte-d3ct2b,html[data-theme=dark] .arch-node-screens.arch-node-rect.svelte-d3ct2b,html[data-theme=dark] .arch-node-routes.arch-node-rect.svelte-d3ct2b{fill:#1e3a5f;stroke:#3b82f6}html[data-theme=dark] .arch-node-components.arch-node-rect.svelte-d3ct2b{fill:#3d0e2e;stroke:#ec4899}html[data-theme=dark] .arch-node-hooks.arch-node-rect.svelte-d3ct2b{fill:#1e1547;stroke:#8b5cf6}html[data-theme=dark] .arch-node-composables.arch-node-rect.svelte-d3ct2b{fill:#042934;stroke:#06b6d4}html[data-theme=dark] .arch-node-store.arch-node-rect.svelte-d3ct2b,html[data-theme=dark] .arch-node-stores.arch-node-rect.svelte-d3ct2b{fill:#2d200a;stroke:#f59e0b}html[data-theme=dark] .arch-node-lib.arch-node-rect.svelte-d3ct2b{fill:#0f2922;stroke:#14b8a6}html[data-theme=dark] .arch-node-utils.arch-node-rect.svelte-d3ct2b{fill:#1e2535;stroke:#94a3b8}html[data-theme=dark] .arch-node-guards.arch-node-rect.svelte-d3ct2b{fill:#3d0a14;stroke:#f43f5e}html[data-theme=dark] .arch-node-server.arch-node-rect.svelte-d3ct2b{fill:#3d2006;stroke:#f97316}html[data-theme=dark] .arch-node-ports.arch-node-rect.svelte-d3ct2b{fill:#042934;stroke:#06b6d4}html[data-theme=dark] .arch-node-adapters.arch-node-rect.svelte-d3ct2b{fill:#0f2922;stroke:#14b8a6}.arch-node-label.svelte-d3ct2b{font-family:var(--mono);font-size:11px;font-weight:600;fill:var(--on-surface)}.arch-node-desc.svelte-d3ct2b{font-family:var(--sans);font-size:9px;fill:var(--outline)}.arch-node-clickable.svelte-d3ct2b{cursor:pointer}.arch-node-clickable.svelte-d3ct2b:hover .arch-node-rect:where(.svelte-d3ct2b){filter:brightness(.95)}html[data-theme=dark] .arch-node-clickable.svelte-d3ct2b:hover .arch-node-rect:where(.svelte-d3ct2b){filter:brightness(1.15)}.arch-node-panel.svelte-d3ct2b{border:1px solid var(--outline-var);border-radius:8px;background:var(--surface-low);padding:12px 16px;max-width:640px;display:flex;flex-direction:column;gap:10px}.arch-node-panel-header.svelte-d3ct2b{display:flex;align-items:center;gap:10px}.arch-node-panel-name.svelte-d3ct2b{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--on-surface)}.arch-node-panel-meta.svelte-d3ct2b{font-size:12px;color:var(--outline);flex:1}.arch-node-panel-close.svelte-d3ct2b{background:none;border:none;cursor:pointer;color:var(--outline);font-size:14px;padding:0;line-height:1}.arch-node-panel-close.svelte-d3ct2b:hover{color:var(--on-surface)}.arch-node-panel-paths.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px}.arch-node-panel-section.svelte-d3ct2b{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--outline);margin-bottom:2px}.arch-node-panel-path.svelte-d3ct2b{font-family:var(--mono);font-size:11px;color:var(--cyan, #22d3ee);background:var(--surface-mid);padding:3px 8px;border-radius:4px}.arch-node-panel-rule.svelte-d3ct2b{display:flex;align-items:center;gap:8px;font-size:12px}.arch-legend.svelte-d3ct2b{display:flex;gap:16px;align-items:center;font-size:11px;color:var(--outline)}.legend-item.svelte-d3ct2b{display:flex;align-items:center;gap:6px}.arch-rule-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px;max-width:640px}.arch-rule-row.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-low);border-radius:4px;border:1px solid var(--outline-var)}.tab-badge.svelte-d3ct2b{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;border-radius:8px;background:var(--error);color:#fff;font-size:10px;font-weight:700;margin-left:4px;vertical-align:middle}.history-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px;max-width:760px}.history-entry.svelte-d3ct2b{border:1px solid var(--outline-var);border-radius:6px;background:var(--surface-low);overflow:hidden}.history-header.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--outline-var);background:var(--surface-mid)}.history-file.svelte-d3ct2b{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--cyan, #22d3ee)}.history-time.svelte-d3ct2b{font-size:11px;color:var(--outline)}.history-violation.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--outline-var);flex-wrap:wrap}.history-violation.svelte-d3ct2b:last-child{border-bottom:none}.history-badge.svelte-d3ct2b{flex-shrink:0;font-family:var(--mono);font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;background:var(--error-bg);color:var(--error);white-space:nowrap}.history-rule.svelte-d3ct2b{font-size:12px;font-weight:600;color:var(--on-surface)}.history-issue.svelte-d3ct2b{font-size:12px;color:var(--outline)}.history-entry-resolved.svelte-d3ct2b{opacity:.5}.history-entry-resolved.svelte-d3ct2b .history-file:where(.svelte-d3ct2b){text-decoration:line-through}.history-resolved-badge.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--green);letter-spacing:.04em}.history-resolve-btn.svelte-d3ct2b{margin-left:auto;padding:2px 8px;font-family:var(--mono);font-size:10px;font-weight:700;background:var(--surface-mid);border:1px solid var(--outline-var);border-radius:4px;color:var(--outline);cursor:pointer;transition:color .12s,border-color .12s,background .12s;white-space:nowrap}.history-resolve-btn.svelte-d3ct2b:hover{color:var(--green);border-color:var(--green);background:var(--green-bg)}.history-resolve-btn-active.svelte-d3ct2b{color:var(--green)!important;border-color:var(--green-border)!important;background:var(--green-bg)!important}.history-toggle-label.svelte-d3ct2b{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;color:var(--outline);cursor:pointer;-webkit-user-select:none;user-select:none}.arch-rule-badge.svelte-d3ct2b{font-size:10px;font-family:var(--mono);font-weight:700;padding:2px 6px;border-radius:3px}.badge-block.svelte-d3ct2b{background:var(--error-bg);color:var(--error)}.badge-warn.svelte-d3ct2b{background:#fef3c7;color:#92400e}.badge-allow.svelte-d3ct2b{background:var(--green-bg);color:var(--green)}.arch-rule-layers.svelte-d3ct2b{font-family:var(--mono);font-size:11px;color:var(--on-surface);white-space:nowrap}.arch-rule-name.svelte-d3ct2b{font-size:11px;color:var(--outline);flex:1}.arch-edit-btn.svelte-d3ct2b{padding:4px 10px;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--surface-mid);border:1px solid var(--outline-var);border-radius:4px;color:var(--on-surface-var);cursor:pointer;transition:background .15s,color .15s}.arch-edit-btn.svelte-d3ct2b:hover{background:var(--primary-container);color:var(--primary);border-color:var(--primary-dim)}.arch-edit-btn-active.svelte-d3ct2b{background:var(--primary-container)!important;color:var(--primary)!important;border-color:var(--primary-dim)!important}.arch-reset-btn.svelte-d3ct2b{color:var(--tertiary)!important;border-color:var(--tertiary)!important}.arch-reset-btn.svelte-d3ct2b:hover{background:#fff3eb!important}html[data-theme=dark] .arch-reset-btn.svelte-d3ct2b:hover{background:#3d1a00!important}.arch-rule-del.svelte-d3ct2b{background:none;border:none;color:var(--outline);cursor:pointer;font-size:12px;padding:0 4px;line-height:1;transition:color .15s}.arch-rule-del.svelte-d3ct2b:hover{color:var(--error)}.arch-add-form.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px;background:var(--surface-low);border:1px solid var(--outline-var);border-radius:6px;padding:12px;max-width:640px}.arch-add-form-title.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--outline)}.arch-add-row.svelte-d3ct2b{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.arch-add-input.svelte-d3ct2b{height:30px;padding:0 8px;background:var(--surface);border:1px solid var(--outline-var);border-radius:4px;color:var(--on-surface);font-family:var(--mono);font-size:11px;outline:none;min-width:80px}.arch-add-input.svelte-d3ct2b:focus{border-color:var(--primary-dim)}.arch-add-select.svelte-d3ct2b{height:30px;padding:0 6px;background:var(--surface);border:1px solid var(--outline-var);border-radius:4px;color:var(--on-surface);font-family:var(--mono);font-size:11px;outline:none}.arch-add-submit.svelte-d3ct2b{height:30px;padding:0 12px;background:var(--primary);border:none;border-radius:4px;color:#fff;font-family:var(--mono);font-size:11px;font-weight:700;cursor:pointer;transition:background .15s}.arch-add-submit.svelte-d3ct2b:hover{background:var(--primary-dim)}.arch-add-submit.svelte-d3ct2b:disabled{opacity:.5;cursor:default}.arch-add-label.svelte-d3ct2b{font-size:10px;color:var(--outline);font-family:var(--mono)}.arch-add-field.svelte-d3ct2b{display:flex;flex-direction:column;gap:2px}.an-summary.svelte-d3ct2b{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.an-card.svelte-d3ct2b{display:flex;flex-direction:column;align-items:center;padding:12px 20px;background:var(--surface-low);border:1px solid var(--outline-var);border-radius:8px;min-width:100px}.an-card-val.svelte-d3ct2b{font-family:var(--mono);font-size:24px;font-weight:700;color:var(--on-surface);line-height:1}.an-card-label.svelte-d3ct2b{font-family:var(--mono);font-size:10px;color:var(--outline);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}.an-card-warn.svelte-d3ct2b .an-card-val:where(.svelte-d3ct2b){color:var(--error)}.an-card-green.svelte-d3ct2b .an-card-val:where(.svelte-d3ct2b){color:var(--green)}.an-tabs.svelte-d3ct2b{display:flex;gap:2px;margin-bottom:14px;border-bottom:1px solid var(--outline-var)}.an-tab.svelte-d3ct2b{padding:6px 14px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--outline);font-family:var(--mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:color .12s,border-color .12s;margin-bottom:-1px}.an-tab.svelte-d3ct2b:hover{color:var(--on-surface)}.an-tab-active.svelte-d3ct2b{color:var(--primary)!important;border-bottom-color:var(--primary)!important}.an-chart-wrap.svelte-d3ct2b{background:var(--surface-low);border:1px solid var(--outline-var);border-radius:8px;padding:16px;max-width:760px}.an-chart-svg.svelte-d3ct2b{display:block;width:100%;height:160px}.an-chart-legend.svelte-d3ct2b{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:11px;color:var(--outline)}.an-legend-dot.svelte-d3ct2b{width:10px;height:10px;border-radius:50%;display:inline-block}.an-heat-table.svelte-d3ct2b,.an-rule-table.svelte-d3ct2b{display:flex;flex-direction:column;gap:3px;max-width:760px}.an-heat-header.svelte-d3ct2b{display:grid;grid-template-columns:2fr 2fr 80px 100px;gap:8px;padding:4px 10px;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--outline)}.an-rule-table.svelte-d3ct2b .an-heat-header:where(.svelte-d3ct2b){grid-template-columns:2fr 1.5fr 2fr 100px}.an-heat-row.svelte-d3ct2b{display:grid;grid-template-columns:2fr 2fr 80px 100px;gap:8px;align-items:center;padding:6px 10px;background:var(--surface-low);border-radius:4px;border:1px solid var(--outline-var)}.an-rule-table.svelte-d3ct2b .an-heat-row:where(.svelte-d3ct2b){grid-template-columns:2fr 1.5fr 2fr 100px}.an-heat-file.svelte-d3ct2b{font-family:var(--mono);font-size:11px;color:var(--on-surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.an-heat-bar-wrap.svelte-d3ct2b{display:flex;align-items:center;gap:6px}.an-heat-bar.svelte-d3ct2b{height:8px;border-radius:4px;min-width:2px;flex-shrink:0}.an-heat-count.svelte-d3ct2b{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--on-surface);white-space:nowrap}.an-heat-resolved.svelte-d3ct2b{font-family:var(--mono);font-size:11px;color:var(--green)}.an-heat-time.svelte-d3ct2b{font-size:11px;color:var(--outline);white-space:nowrap}.an-rule-name.svelte-d3ct2b{font-family:var(--mono);font-size:11px;color:var(--on-surface);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.an-rule-layers.svelte-d3ct2b{font-family:var(--mono);font-size:10px;color:var(--outline)}.an-row-dead.svelte-d3ct2b{opacity:.45}.an-dead-count.svelte-d3ct2b{color:var(--outline)!important;font-weight:400!important}.proposal-filter-select.svelte-d3ct2b{height:26px;padding:0 8px;background:var(--surface-low);border:1px solid var(--outline-var);border-radius:4px;color:var(--on-surface);font-size:11px;cursor:pointer}.proposal-filter-select.svelte-d3ct2b:focus{outline:none;border-color:var(--primary)}.proposals-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:8px;max-width:760px}.proposal-card.svelte-d3ct2b{background:var(--surface-low);border:1px solid var(--outline-var);border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.proposal-header.svelte-d3ct2b{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.proposal-source.svelte-d3ct2b{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent);padding:2px 6px;border-radius:3px}.proposal-confidence.svelte-d3ct2b{font-family:var(--mono);font-size:10px;padding:2px 6px;border-radius:3px}.confidence-high.svelte-d3ct2b{color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent)}.confidence-medium.svelte-d3ct2b{color:var(--tertiary);background:color-mix(in srgb,var(--tertiary) 12%,transparent)}.confidence-low.svelte-d3ct2b{color:var(--outline);background:color-mix(in srgb,var(--outline) 12%,transparent)}.proposal-time.svelte-d3ct2b{font-size:10px;color:var(--outline);margin-left:auto}.proposal-name.svelte-d3ct2b{font-family:var(--mono);font-size:12px;color:var(--on-surface);font-weight:600}.proposal-desc.svelte-d3ct2b{font-size:11px;color:var(--outline);line-height:1.5}.proposal-actions.svelte-d3ct2b{display:flex;gap:6px;margin-top:4px}.proposal-btn.svelte-d3ct2b{height:26px;padding:0 12px;border-radius:4px;border:none;font-size:11px;font-weight:600;cursor:pointer;transition:opacity .15s}.proposal-btn.svelte-d3ct2b:disabled{opacity:.5;cursor:not-allowed}.proposal-approve.svelte-d3ct2b{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green);border:1px solid color-mix(in srgb,var(--green) 30%,transparent)}.proposal-approve.svelte-d3ct2b:hover:not(:disabled){background:color-mix(in srgb,var(--green) 28%,transparent)}.proposal-reject.svelte-d3ct2b{background:color-mix(in srgb,var(--tertiary) 12%,transparent);color:var(--tertiary);border:1px solid color-mix(in srgb,var(--tertiary) 25%,transparent)}.proposal-reject.svelte-d3ct2b:hover:not(:disabled){background:color-mix(in srgb,var(--tertiary) 22%,transparent)}.proposal-evidence.svelte-d3ct2b{font-family:var(--mono);font-size:10px;color:var(--outline);background:var(--surface);border-left:2px solid var(--outline-var);padding:4px 8px;border-radius:2px;white-space:pre-wrap;word-break:break-all}.profile-panel.svelte-d3ct2b{background:var(--surface-low);border:1px solid var(--outline-var);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:10px;max-width:760px}.profile-save-row.svelte-d3ct2b{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.profile-name-input.svelte-d3ct2b{height:30px;padding:0 8px;background:var(--surface);border:1px solid var(--outline-var);border-radius:4px;color:var(--on-surface);font-family:var(--mono);font-size:11px;outline:none;min-width:160px;flex:1}.profile-name-input.svelte-d3ct2b:focus{border-color:var(--primary-dim)}.profile-scope-label.svelte-d3ct2b{display:flex;align-items:center;gap:4px;font-family:var(--mono);font-size:10px;color:var(--outline);white-space:nowrap;cursor:pointer}.profile-msg.svelte-d3ct2b{font-family:var(--mono);font-size:10px;color:var(--green)}.profile-empty.svelte-d3ct2b{font-size:12px;color:var(--outline);font-style:italic}.profile-list.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px}.profile-row.svelte-d3ct2b{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-mid);border:1px solid var(--outline-var);border-radius:4px}.profile-name.svelte-d3ct2b{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--on-surface)}.profile-meta.svelte-d3ct2b{font-size:11px;color:var(--outline);flex:1}.modal-toggle-row.svelte-d3ct2b{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--outline-var)}.modal-toggle-row.svelte-d3ct2b:last-child{border-bottom:none}.modal-toggle-label.svelte-d3ct2b{display:flex;flex-direction:column;gap:4px;flex:1;cursor:pointer}.modal-toggle-title.svelte-d3ct2b{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--on-surface)}.modal-toggle-desc.svelte-d3ct2b{font-size:11px;color:var(--outline);line-height:1.4}.modal-toggle.svelte-d3ct2b{width:18px;height:18px;cursor:pointer;accent-color:var(--primary);flex-shrink:0}
@@ -0,0 +1,2 @@
1
+ var pv=Object.defineProperty;var pi=t=>{throw TypeError(t)};var hv=(t,s,a)=>s in t?pv(t,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[s]=a;var As=(t,s,a)=>hv(t,typeof s!="symbol"?s+"":s,a),Cr=(t,s,a)=>s.has(t)||pi("Cannot "+a);var u=(t,s,a)=>(Cr(t,s,"read from private field"),a?a.call(t):s.get(t)),be=(t,s,a)=>s.has(t)?pi("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(t):s.set(t,a),Se=(t,s,a,l)=>(Cr(t,s,"write to private field"),l?l.call(t,a):s.set(t,a),a),Ke=(t,s,a)=>(Cr(t,s,"access private method"),a);(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))l(i);new MutationObserver(i=>{for(const v of i)if(v.type==="childList")for(const f of v.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&l(f)}).observe(document,{childList:!0,subtree:!0});function a(i){const v={};return i.integrity&&(v.integrity=i.integrity),i.referrerPolicy&&(v.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?v.credentials="include":i.crossOrigin==="anonymous"?v.credentials="omit":v.credentials="same-origin",v}function l(i){if(i.ep)return;i.ep=!0;const v=a(i);fetch(i.href,v)}})();const _v=!1;var qr=Array.isArray,bv=Array.prototype.indexOf,Za=Array.prototype.includes,ur=Array.from,mv=Object.defineProperty,wl=Object.getOwnPropertyDescriptor,Pi=Object.getOwnPropertyDescriptors,gv=Object.prototype,yv=Array.prototype,Kr=Object.getPrototypeOf,hi=Object.isExtensible;const wv=()=>{};function xv(t){return t()}function Nr(t){for(var s=0;s<t.length;s++)t[s]()}function ji(){var t,s,a=new Promise((l,i)=>{t=l,s=i});return{promise:a,resolve:t,reject:s}}const Ft=2,el=4,Nl=8,Ii=1<<24,Us=16,Ms=32,ya=64,Dr=128,bs=512,mt=1024,jt=2048,Os=4096,Gt=8192,ms=16384,za=32768,_i=1<<25,tl=65536,Pr=1<<17,kv=1<<18,ll=1<<19,$i=1<<20,zs=1<<25,Ia=65536,ir=1<<21,El=1<<22,ma=1<<23,Na=Symbol("$state"),Sv=Symbol(""),Xs=new class extends Error{constructor(){super(...arguments);As(this,"name","StaleReactionError");As(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function Ev(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Av(t,s,a){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Tv(t){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Cv(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Lv(t){throw new Error("https://svelte.dev/e/effect_orphan")}function Mv(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ov(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Rv(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Nv(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Dv(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const Pv=1,jv=2,Fi=4,Iv=8,$v=16,Hi=1,Fv=2,Ct=Symbol(),Bi="http://www.w3.org/1999/xhtml";function Hv(){console.warn("https://svelte.dev/e/derived_inert")}function Bv(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function zv(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function zi(t){return t===this.v}function Uv(t,s){return t!=t?s==s:t!==s||t!==null&&typeof t=="object"||typeof t=="function"}function Ui(t){return!Uv(t,this.v)}let fr=!1,Vv=!1;function Wv(){fr=!0}let gt=null;function sl(t){gt=t}function Vi(t,s=!1,a){gt={p:gt,i:!1,c:null,e:null,s:t,x:null,r:Ee,l:fr&&!s?{s:null,u:null,$:[]}:null}}function Wi(t){var s=gt,a=s.e;if(a!==null){s.e=null;for(var l of a)vo(l)}return s.i=!0,gt=s.p,{}}function Dl(){return!fr||gt!==null&&gt.l===null}let Aa=[];function qi(){var t=Aa;Aa=[],Nr(t)}function ga(t){if(Aa.length===0&&!xl){var s=Aa;queueMicrotask(()=>{s===Aa&&qi()})}Aa.push(t)}function qv(){for(;Aa.length>0;)qi()}function Ki(t){var s=Ee;if(s===null)return Ce.f|=ma,t;if(!(s.f&za)&&!(s.f&el))throw t;ba(t,s)}function ba(t,s){for(;s!==null;){if(s.f&Dr){if(!(s.f&za))throw t;try{s.b.error(t);return}catch(a){t=a}}s=s.parent}throw t}const Kv=-7169;function nt(t,s){t.f=t.f&Kv|s}function Gr(t){t.f&bs||t.deps===null?nt(t,mt):nt(t,Os)}function Gi(t){if(t!==null)for(const s of t)!(s.f&Ft)||!(s.f&Ia)||(s.f^=Ia,Gi(s.deps))}function Yi(t,s,a){t.f&jt?s.add(t):t.f&Os&&a.add(t),Gi(t.deps),nt(t,mt)}const Ea=new Set;let J=null,Pt=null,jr=null,xl=!1,Lr=!1,Ka=null,er=null;var bi=0;let Gv=1;var Ga,Ya,Ca,Qs,Fs,Tl,ls,Cl,ha,Zs,Hs,Ja,Xa,La,yt,tr,Ji,sr,Ir,ar,Yv;const cr=class cr{constructor(){be(this,yt);As(this,"id",Gv++);As(this,"current",new Map);As(this,"previous",new Map);be(this,Ga,new Set);be(this,Ya,new Set);be(this,Ca,new Set);be(this,Qs,new Map);be(this,Fs,new Map);be(this,Tl,null);be(this,ls,[]);be(this,Cl,[]);be(this,ha,new Set);be(this,Zs,new Set);be(this,Hs,new Map);be(this,Ja,new Set);As(this,"is_fork",!1);be(this,Xa,!1);be(this,La,new Set)}skip_effect(s){u(this,Hs).has(s)||u(this,Hs).set(s,{d:[],m:[]}),u(this,Ja).delete(s)}unskip_effect(s,a=l=>this.schedule(l)){var l=u(this,Hs).get(s);if(l){u(this,Hs).delete(s);for(var i of l.d)nt(i,jt),a(i);for(i of l.m)nt(i,Os),a(i)}u(this,Ja).add(s)}capture(s,a,l=!1){s.v!==Ct&&!this.previous.has(s)&&this.previous.set(s,s.v),s.f&ma||(this.current.set(s,[a,l]),Pt==null||Pt.set(s,a)),this.is_fork||(s.v=a)}activate(){J=this}deactivate(){J=null,Pt=null}flush(){try{Lr=!0,J=this,Ke(this,yt,sr).call(this)}finally{bi=0,jr=null,Ka=null,er=null,Lr=!1,J=null,Pt=null,Da.clear()}}discard(){for(const s of u(this,Ya))s(this);u(this,Ya).clear(),u(this,Ca).clear(),Ea.delete(this)}register_created_effect(s){u(this,Cl).push(s)}increment(s,a){let l=u(this,Qs).get(a)??0;if(u(this,Qs).set(a,l+1),s){let i=u(this,Fs).get(a)??0;u(this,Fs).set(a,i+1)}}decrement(s,a,l){let i=u(this,Qs).get(a)??0;if(i===1?u(this,Qs).delete(a):u(this,Qs).set(a,i-1),s){let v=u(this,Fs).get(a)??0;v===1?u(this,Fs).delete(a):u(this,Fs).set(a,v-1)}u(this,Xa)||l||(Se(this,Xa,!0),ga(()=>{Se(this,Xa,!1),this.flush()}))}transfer_effects(s,a){for(const l of s)u(this,ha).add(l);for(const l of a)u(this,Zs).add(l);s.clear(),a.clear()}oncommit(s){u(this,Ga).add(s)}ondiscard(s){u(this,Ya).add(s)}on_fork_commit(s){u(this,Ca).add(s)}run_fork_commit_callbacks(){for(const s of u(this,Ca))s(this);u(this,Ca).clear()}settled(){return(u(this,Tl)??Se(this,Tl,ji())).promise}static ensure(){if(J===null){const s=J=new cr;Lr||(Ea.add(J),xl||ga(()=>{J===s&&s.flush()}))}return J}apply(){{Pt=null;return}}schedule(s){var i;if(jr=s,(i=s.b)!=null&&i.is_pending&&s.f&(el|Nl|Ii)&&!(s.f&za)){s.b.defer_effect(s);return}for(var a=s;a.parent!==null;){a=a.parent;var l=a.f;if(Ka!==null&&a===Ee&&(Ce===null||!(Ce.f&Ft)))return;if(l&(ya|Ms)){if(!(l&mt))return;a.f^=mt}}u(this,ls).push(a)}};Ga=new WeakMap,Ya=new WeakMap,Ca=new WeakMap,Qs=new WeakMap,Fs=new WeakMap,Tl=new WeakMap,ls=new WeakMap,Cl=new WeakMap,ha=new WeakMap,Zs=new WeakMap,Hs=new WeakMap,Ja=new WeakMap,Xa=new WeakMap,La=new WeakMap,yt=new WeakSet,tr=function(){return this.is_fork||u(this,Fs).size>0},Ji=function(){for(const l of u(this,La))for(const i of u(l,Fs).keys()){for(var s=!1,a=i;a.parent!==null;){if(u(this,Hs).has(a)){s=!0;break}a=a.parent}if(!s)return!0}return!1},sr=function(){var b,p;if(bi++>1e3&&(Ea.delete(this),Xv()),!Ke(this,yt,tr).call(this)){for(const h of u(this,ha))u(this,Zs).delete(h),nt(h,jt),this.schedule(h);for(const h of u(this,Zs))nt(h,Os),this.schedule(h)}const s=u(this,ls);Se(this,ls,[]),this.apply();var a=Ka=[],l=[],i=er=[];for(const h of s)try{Ke(this,yt,Ir).call(this,h,a,l)}catch(x){throw Zi(h),x}if(J=null,i.length>0){var v=cr.ensure();for(const h of i)v.schedule(h)}if(Ka=null,er=null,Ke(this,yt,tr).call(this)||Ke(this,yt,Ji).call(this)){Ke(this,yt,ar).call(this,l),Ke(this,yt,ar).call(this,a);for(const[h,x]of u(this,Hs))Qi(h,x)}else{u(this,Qs).size===0&&Ea.delete(this),u(this,ha).clear(),u(this,Zs).clear();for(const h of u(this,Ga))h(this);u(this,Ga).clear(),mi(l),mi(a),(b=u(this,Tl))==null||b.resolve()}var f=J;if(u(this,ls).length>0){const h=f??(f=this);u(h,ls).push(...u(this,ls).filter(x=>!u(h,ls).includes(x)))}f!==null&&(Ea.add(f),Ke(p=f,yt,sr).call(p))},Ir=function(s,a,l){s.f^=mt;for(var i=s.first;i!==null;){var v=i.f,f=(v&(Ms|ya))!==0,b=f&&(v&mt)!==0,p=b||(v&Gt)!==0||u(this,Hs).has(i);if(!p&&i.fn!==null){f?i.f^=mt:v&el?a.push(i):rl(i)&&(v&Us&&u(this,Zs).add(i),Ba(i));var h=i.first;if(h!==null){i=h;continue}}for(;i!==null;){var x=i.next;if(x!==null){i=x;break}i=i.parent}}},ar=function(s){for(var a=0;a<s.length;a+=1)Yi(s[a],u(this,ha),u(this,Zs))},Yv=function(){var x,H,M;for(const N of Ea){var s=N.id<this.id,a=[];for(const[S,[W,A]]of this.current){if(N.current.has(S)){var l=N.current.get(S)[0];if(s&&W!==l)N.current.set(S,[W,A]);else continue}a.push(S)}var i=[...N.current.keys()].filter(S=>!this.current.has(S));if(i.length===0)s&&N.discard();else if(a.length>0){if(s)for(const S of u(this,Ja))N.unskip_effect(S,W=>{var A;W.f&(Us|El)?N.schedule(W):Ke(A=N,yt,ar).call(A,[W])});N.activate();var v=new Set,f=new Map;for(var b of a)Xi(b,i,v,f);f=new Map;var p=[...N.current.keys()].filter(S=>this.current.has(S)?this.current.get(S)[0]!==S:!0);for(const S of u(this,Cl))!(S.f&(ms|Gt|Pr))&&Yr(S,p,f)&&(S.f&(El|Us)?(nt(S,jt),N.schedule(S)):u(N,ha).add(S));if(u(N,ls).length>0){N.apply();for(var h of u(N,ls))Ke(x=N,yt,Ir).call(x,h,[],[]);Se(N,ls,[])}N.deactivate()}}for(const N of Ea)u(N,La).has(this)&&(u(N,La).delete(this),u(N,La).size===0&&!Ke(H=N,yt,tr).call(H)&&(N.activate(),Ke(M=N,yt,sr).call(M)))};let $a=cr;function Jv(t){var s=xl;xl=!0;try{for(var a;;){if(qv(),J===null)return a;J.flush()}}finally{xl=s}}function Xv(){try{Mv()}catch(t){ba(t,jr)}}let Ts=null;function mi(t){var s=t.length;if(s!==0){for(var a=0;a<s;){var l=t[a++];if(!(l.f&(ms|Gt))&&rl(l)&&(Ts=new Set,Ba(l),l.deps===null&&l.first===null&&l.nodes===null&&l.teardown===null&&l.ac===null&&fo(l),(Ts==null?void 0:Ts.size)>0)){Da.clear();for(const i of Ts){if(i.f&(ms|Gt))continue;const v=[i];let f=i.parent;for(;f!==null;)Ts.has(f)&&(Ts.delete(f),v.push(f)),f=f.parent;for(let b=v.length-1;b>=0;b--){const p=v[b];p.f&(ms|Gt)||Ba(p)}}Ts.clear()}}Ts=null}}function Xi(t,s,a,l){if(!a.has(t)&&(a.add(t),t.reactions!==null))for(const i of t.reactions){const v=i.f;v&Ft?Xi(i,s,a,l):v&(El|Us)&&!(v&jt)&&Yr(i,s,l)&&(nt(i,jt),Jr(i))}}function Yr(t,s,a){const l=a.get(t);if(l!==void 0)return l;if(t.deps!==null)for(const i of t.deps){if(Za.call(s,i))return!0;if(i.f&Ft&&Yr(i,s,a))return a.set(i,!0),!0}return a.set(t,!1),!1}function Jr(t){J.schedule(t)}function Qi(t,s){if(!(t.f&Ms&&t.f&mt)){t.f&jt?s.d.push(t):t.f&Os&&s.m.push(t),nt(t,mt);for(var a=t.first;a!==null;)Qi(a,s),a=a.next}}function Zi(t){nt(t,mt);for(var s=t.first;s!==null;)Zi(s),s=s.next}function Qv(t){let s=0,a=Fa(0),l;return()=>{en()&&(e(a),jl(()=>(s===0&&(l=o(()=>t(()=>kl(a)))),s+=1,()=>{ga(()=>{s-=1,s===0&&(l==null||l(),l=void 0,kl(a))})})))}}var Zv=tl|ll;function ed(t,s,a,l){new td(t,s,a,l)}var fs,Wr,ps,Ma,Xt,hs,Kt,rs,ea,Oa,_a,Qa,Ll,Ml,ta,vr,it,sd,ad,ld,$r,lr,rr,Fr,Hr;class td{constructor(s,a,l,i){be(this,it);As(this,"parent");As(this,"is_pending",!1);As(this,"transform_error");be(this,fs);be(this,Wr,null);be(this,ps);be(this,Ma);be(this,Xt);be(this,hs,null);be(this,Kt,null);be(this,rs,null);be(this,ea,null);be(this,Oa,0);be(this,_a,0);be(this,Qa,!1);be(this,Ll,new Set);be(this,Ml,new Set);be(this,ta,null);be(this,vr,Qv(()=>(Se(this,ta,Fa(u(this,Oa))),()=>{Se(this,ta,null)})));var v;Se(this,fs,s),Se(this,ps,a),Se(this,Ma,f=>{var b=Ee;b.b=this,b.f|=Dr,l(f)}),this.parent=Ee.b,this.transform_error=i??((v=this.parent)==null?void 0:v.transform_error)??(f=>f),Se(this,Xt,sn(()=>{Ke(this,it,$r).call(this)},Zv))}defer_effect(s){Yi(s,u(this,Ll),u(this,Ml))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!u(this,ps).pending}update_pending_count(s,a){Ke(this,it,Fr).call(this,s,a),Se(this,Oa,u(this,Oa)+s),!(!u(this,ta)||u(this,Qa))&&(Se(this,Qa,!0),ga(()=>{Se(this,Qa,!1),u(this,ta)&&Ha(u(this,ta),u(this,Oa))}))}get_effect_pending(){return u(this,vr).call(this),e(u(this,ta))}error(s){if(!u(this,ps).onerror&&!u(this,ps).failed)throw s;J!=null&&J.is_fork?(u(this,hs)&&J.skip_effect(u(this,hs)),u(this,Kt)&&J.skip_effect(u(this,Kt)),u(this,rs)&&J.skip_effect(u(this,rs)),J.on_fork_commit(()=>{Ke(this,it,Hr).call(this,s)})):Ke(this,it,Hr).call(this,s)}}fs=new WeakMap,Wr=new WeakMap,ps=new WeakMap,Ma=new WeakMap,Xt=new WeakMap,hs=new WeakMap,Kt=new WeakMap,rs=new WeakMap,ea=new WeakMap,Oa=new WeakMap,_a=new WeakMap,Qa=new WeakMap,Ll=new WeakMap,Ml=new WeakMap,ta=new WeakMap,vr=new WeakMap,it=new WeakSet,sd=function(){try{Se(this,hs,_s(()=>u(this,Ma).call(this,u(this,fs))))}catch(s){this.error(s)}},ad=function(s){const a=u(this,ps).failed;a&&Se(this,rs,_s(()=>{a(u(this,fs),()=>s,()=>()=>{})}))},ld=function(){const s=u(this,ps).pending;s&&(this.is_pending=!0,Se(this,Kt,_s(()=>s(u(this,fs)))),ga(()=>{var a=Se(this,ea,document.createDocumentFragment()),l=aa();a.append(l),Se(this,hs,Ke(this,it,rr).call(this,()=>_s(()=>u(this,Ma).call(this,l)))),u(this,_a)===0&&(u(this,fs).before(a),Se(this,ea,null),Pa(u(this,Kt),()=>{Se(this,Kt,null)}),Ke(this,it,lr).call(this,J))}))},$r=function(){try{if(this.is_pending=this.has_pending_snippet(),Se(this,_a,0),Se(this,Oa,0),Se(this,hs,_s(()=>{u(this,Ma).call(this,u(this,fs))})),u(this,_a)>0){var s=Se(this,ea,document.createDocumentFragment());rn(u(this,hs),s);const a=u(this,ps).pending;Se(this,Kt,_s(()=>a(u(this,fs))))}else Ke(this,it,lr).call(this,J)}catch(a){this.error(a)}},lr=function(s){this.is_pending=!1,s.transfer_effects(u(this,Ll),u(this,Ml))},rr=function(s){var a=Ee,l=Ce,i=gt;ws(u(this,Xt)),ys(u(this,Xt)),sl(u(this,Xt).ctx);try{return $a.ensure(),s()}catch(v){return Ki(v),null}finally{ws(a),ys(l),sl(i)}},Fr=function(s,a){var l;if(!this.has_pending_snippet()){this.parent&&Ke(l=this.parent,it,Fr).call(l,s,a);return}Se(this,_a,u(this,_a)+s),u(this,_a)===0&&(Ke(this,it,lr).call(this,a),u(this,Kt)&&Pa(u(this,Kt),()=>{Se(this,Kt,null)}),u(this,ea)&&(u(this,fs).before(u(this,ea)),Se(this,ea,null)))},Hr=function(s){u(this,hs)&&(Zt(u(this,hs)),Se(this,hs,null)),u(this,Kt)&&(Zt(u(this,Kt)),Se(this,Kt,null)),u(this,rs)&&(Zt(u(this,rs)),Se(this,rs,null));var a=u(this,ps).onerror;let l=u(this,ps).failed;var i=!1,v=!1;const f=()=>{if(i){zv();return}i=!0,v&&Dv(),u(this,rs)!==null&&Pa(u(this,rs),()=>{Se(this,rs,null)}),Ke(this,it,rr).call(this,()=>{Ke(this,it,$r).call(this)})},b=p=>{try{v=!0,a==null||a(p,f),v=!1}catch(h){ba(h,u(this,Xt)&&u(this,Xt).parent)}l&&Se(this,rs,Ke(this,it,rr).call(this,()=>{try{return _s(()=>{var h=Ee;h.b=this,h.f|=Dr,l(u(this,fs),()=>p,()=>f)})}catch(h){return ba(h,u(this,Xt).parent),null}}))};ga(()=>{var p;try{p=this.transform_error(s)}catch(h){ba(h,u(this,Xt)&&u(this,Xt).parent);return}p!==null&&typeof p=="object"&&typeof p.then=="function"?p.then(b,h=>ba(h,u(this,Xt)&&u(this,Xt).parent)):b(p)})};function rd(t,s,a,l){const i=Dl()?Xr:bt;var v=t.filter(M=>!M.settled);if(a.length===0&&v.length===0){l(s.map(i));return}var f=Ee,b=nd(),p=v.length===1?v[0].promise:v.length>1?Promise.all(v.map(M=>M.promise)):null;function h(M){b();try{l(M)}catch(N){f.f&ms||ba(N,f)}or()}if(a.length===0){p.then(()=>h(s.map(i)));return}var x=eo();function H(){Promise.all(a.map(M=>id(M))).then(M=>h([...s.map(i),...M])).catch(M=>ba(M,f)).finally(()=>x())}p?p.then(()=>{b(),H(),or()}):H()}function nd(){var t=Ee,s=Ce,a=gt,l=J;return function(v=!0){ws(t),ys(s),sl(a),v&&!(t.f&ms)&&(l==null||l.activate(),l==null||l.apply())}}function or(t=!0){ws(null),ys(null),sl(null),t&&(J==null||J.deactivate())}function eo(){var t=Ee,s=t.b,a=J,l=s.is_rendered();return s.update_pending_count(1,a),a.increment(l,t),(i=!1)=>{s.update_pending_count(-1,a),a.decrement(l,t,i)}}function Xr(t){var s=Ft|jt;return Ee!==null&&(Ee.f|=ll),{ctx:gt,deps:null,effects:null,equals:zi,f:s,fn:t,reactions:null,rv:0,v:Ct,wv:0,parent:Ee,ac:null}}function id(t,s,a){let l=Ee;l===null&&Ev();var i=void 0,v=Fa(Ct),f=!Ce,b=new Map;return wd(()=>{var N;var p=Ee,h=ji();i=h.promise;try{Promise.resolve(t()).then(h.resolve,h.reject).finally(or)}catch(S){h.reject(S),or()}var x=J;if(f){if(p.f&za)var H=eo();if(l.b.is_rendered())(N=b.get(x))==null||N.reject(Xs),b.delete(x);else{for(const S of b.values())S.reject(Xs);b.clear()}b.set(x,h)}const M=(S,W=void 0)=>{if(H){var A=W===Xs;H(A)}if(!(W===Xs||p.f&ms)){if(x.activate(),W)v.f|=ma,Ha(v,W);else{v.f&ma&&(v.f^=ma),Ha(v,S);for(const[se,qe]of b){if(b.delete(se),se===x)break;qe.reject(Xs)}}x.deactivate()}};h.promise.then(M,S=>M(null,S||"unknown"))}),tn(()=>{for(const p of b.values())p.reject(Xs)}),new Promise(p=>{function h(x){function H(){x===i?p(v):h(i)}x.then(H,H)}h(i)})}function bt(t){const s=Xr(t);return s.equals=Ui,s}function od(t){var s=t.effects;if(s!==null){t.effects=null;for(var a=0;a<s.length;a+=1)Zt(s[a])}}function Qr(t){var s,a=Ee,l=t.parent;if(!wa&&l!==null&&l.f&(ms|Gt))return Hv(),t.v;ws(l);try{t.f&=~Ia,od(t),s=go(t)}finally{ws(a)}return s}function to(t){var s=Qr(t);if(!t.equals(s)&&(t.wv=bo(),(!(J!=null&&J.is_fork)||t.deps===null)&&(J!==null?J.capture(t,s,!0):t.v=s,t.deps===null))){nt(t,mt);return}wa||(Pt!==null?(en()||J!=null&&J.is_fork)&&Pt.set(t,s):Gr(t))}function cd(t){var s,a;if(t.effects!==null)for(const l of t.effects)(l.teardown||l.ac)&&((s=l.teardown)==null||s.call(l),(a=l.ac)==null||a.abort(Xs),l.teardown=wv,l.ac=null,Al(l,0),an(l))}function so(t){if(t.effects!==null)for(const s of t.effects)s.teardown&&Ba(s)}let Br=new Set;const Da=new Map;let ao=!1;function Fa(t,s){var a={f:0,v:t,reactions:null,equals:zi,rv:0,wv:0};return a}function ua(t,s){const a=Fa(t);return Ed(a),a}function O(t,s=!1,a=!0){var i;const l=Fa(t);return s||(l.equals=Ui),fr&&a&&gt!==null&&gt.l!==null&&((i=gt.l).s??(i.s=[])).push(l),l}function At(t,s){return d(t,o(()=>e(t))),s}function d(t,s,a=!1){Ce!==null&&(!Ls||Ce.f&Pr)&&Dl()&&Ce.f&(Ft|Us|El|Pr)&&(gs===null||!Za.call(gs,t))&&Nv();let l=a?gl(s):s;return Ha(t,l,er)}function Ha(t,s,a=null){if(!t.equals(s)){Da.set(t,wa?s:t.v);var l=$a.ensure();if(l.capture(t,s),t.f&Ft){const i=t;t.f&jt&&Qr(i),Pt===null&&Gr(i)}t.wv=bo(),lo(t,jt,a),Dl()&&Ee!==null&&Ee.f&mt&&!(Ee.f&(Ms|ya))&&(us===null?Ad([t]):us.push(t)),!l.is_fork&&Br.size>0&&!ao&&vd()}return s}function vd(){ao=!1;for(const t of Br)t.f&mt&&nt(t,Os),rl(t)&&Ba(t);Br.clear()}function kl(t){d(t,t.v+1)}function lo(t,s,a){var l=t.reactions;if(l!==null)for(var i=Dl(),v=l.length,f=0;f<v;f++){var b=l[f],p=b.f;if(!(!i&&b===Ee)){var h=(p&jt)===0;if(h&&nt(b,s),p&Ft){var x=b;Pt==null||Pt.delete(x),p&Ia||(p&bs&&(Ee===null||!(Ee.f&ir))&&(b.f|=Ia),lo(x,Os,a))}else if(h){var H=b;p&Us&&Ts!==null&&Ts.add(H),a!==null?a.push(H):Jr(H)}}}}function gl(t){if(typeof t!="object"||t===null||Na in t)return t;const s=Kr(t);if(s!==gv&&s!==yv)return t;var a=new Map,l=qr(t),i=ua(0),v=ja,f=b=>{if(ja===v)return b();var p=Ce,h=ja;ys(null),Si(v);var x=b();return ys(p),Si(h),x};return l&&a.set("length",ua(t.length)),new Proxy(t,{defineProperty(b,p,h){(!("value"in h)||h.configurable===!1||h.enumerable===!1||h.writable===!1)&&Ov();var x=a.get(p);return x===void 0?f(()=>{var H=ua(h.value);return a.set(p,H),H}):d(x,h.value,!0),!0},deleteProperty(b,p){var h=a.get(p);if(h===void 0){if(p in b){const x=f(()=>ua(Ct));a.set(p,x),kl(i)}}else d(h,Ct),kl(i);return!0},get(b,p,h){var N;if(p===Na)return t;var x=a.get(p),H=p in b;if(x===void 0&&(!H||(N=wl(b,p))!=null&&N.writable)&&(x=f(()=>{var S=gl(H?b[p]:Ct),W=ua(S);return W}),a.set(p,x)),x!==void 0){var M=e(x);return M===Ct?void 0:M}return Reflect.get(b,p,h)},getOwnPropertyDescriptor(b,p){var h=Reflect.getOwnPropertyDescriptor(b,p);if(h&&"value"in h){var x=a.get(p);x&&(h.value=e(x))}else if(h===void 0){var H=a.get(p),M=H==null?void 0:H.v;if(H!==void 0&&M!==Ct)return{enumerable:!0,configurable:!0,value:M,writable:!0}}return h},has(b,p){var M;if(p===Na)return!0;var h=a.get(p),x=h!==void 0&&h.v!==Ct||Reflect.has(b,p);if(h!==void 0||Ee!==null&&(!x||(M=wl(b,p))!=null&&M.writable)){h===void 0&&(h=f(()=>{var N=x?gl(b[p]):Ct,S=ua(N);return S}),a.set(p,h));var H=e(h);if(H===Ct)return!1}return x},set(b,p,h,x){var Ne;var H=a.get(p),M=p in b;if(l&&p==="length")for(var N=h;N<H.v;N+=1){var S=a.get(N+"");S!==void 0?d(S,Ct):N in b&&(S=f(()=>ua(Ct)),a.set(N+"",S))}if(H===void 0)(!M||(Ne=wl(b,p))!=null&&Ne.writable)&&(H=f(()=>ua(void 0)),d(H,gl(h)),a.set(p,H));else{M=H.v!==Ct;var W=f(()=>gl(h));d(H,W)}var A=Reflect.getOwnPropertyDescriptor(b,p);if(A!=null&&A.set&&A.set.call(x,h),!M){if(l&&typeof p=="string"){var se=a.get("length"),qe=Number(p);Number.isInteger(qe)&&qe>=se.v&&d(se,qe+1)}kl(i)}return!0},ownKeys(b){e(i);var p=Reflect.ownKeys(b).filter(H=>{var M=a.get(H);return M===void 0||M.v!==Ct});for(var[h,x]of a)x.v!==Ct&&!(h in b)&&p.push(h);return p},setPrototypeOf(){Rv()}})}function gi(t){try{if(t!==null&&typeof t=="object"&&Na in t)return t[Na]}catch{}return t}function dd(t,s){return Object.is(gi(t),gi(s))}var yi,ro,no,io;function ud(){if(yi===void 0){yi=window,ro=/Firefox/.test(navigator.userAgent);var t=Element.prototype,s=Node.prototype,a=Text.prototype;no=wl(s,"firstChild").get,io=wl(s,"nextSibling").get,hi(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),hi(a)&&(a.__t=void 0)}}function aa(t=""){return document.createTextNode(t)}function sa(t){return no.call(t)}function Pl(t){return io.call(t)}function n(t,s){return sa(t)}function Ue(t,s=!1){{var a=sa(t);return a instanceof Comment&&a.data===""?Pl(a):a}}function r(t,s=1,a=!1){let l=t;for(;s--;)l=Pl(l);return l}function fd(t){t.textContent=""}function oo(){return!1}function pd(t,s,a){return document.createElementNS(Bi,t,void 0)}let wi=!1;function hd(){wi||(wi=!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 pr(t){var s=Ce,a=Ee;ys(null),ws(null);try{return t()}finally{ys(s),ws(a)}}function Zr(t,s,a,l=a){t.addEventListener(s,()=>pr(a));const i=t.__on_r;i?t.__on_r=()=>{i(),l(!0)}:t.__on_r=()=>l(!0),hd()}function co(t){Ee===null&&(Ce===null&&Lv(),Cv()),wa&&Tv()}function _d(t,s){var a=s.last;a===null?s.last=s.first=t:(a.next=t,t.prev=a,s.last=t)}function Vs(t,s){var a=Ee;a!==null&&a.f&Gt&&(t|=Gt);var l={ctx:gt,deps:null,nodes:null,f:t|jt|bs,first:null,fn:s,last:null,next:null,parent:a,b:a&&a.b,prev:null,teardown:null,wv:0,ac:null};J==null||J.register_created_effect(l);var i=l;if(t&el)Ka!==null?Ka.push(l):$a.ensure().schedule(l);else if(s!==null){try{Ba(l)}catch(f){throw Zt(l),f}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&ll)&&(i=i.first,t&Us&&t&tl&&i!==null&&(i.f|=tl))}if(i!==null&&(i.parent=a,a!==null&&_d(i,a),Ce!==null&&Ce.f&Ft&&!(t&ya))){var v=Ce;(v.effects??(v.effects=[])).push(i)}return l}function en(){return Ce!==null&&!Ls}function tn(t){const s=Vs(Nl,null);return nt(s,mt),s.teardown=t,s}function xi(t){co();var s=Ee.f,a=!Ce&&(s&Ms)!==0&&(s&za)===0;if(a){var l=gt;(l.e??(l.e=[])).push(t)}else return vo(t)}function vo(t){return Vs(el|$i,t)}function bd(t){return co(),Vs(Nl|$i,t)}function md(t){$a.ensure();const s=Vs(ya|ll,t);return(a={})=>new Promise(l=>{a.outro?Pa(s,()=>{Zt(s),l(void 0)}):(Zt(s),l(void 0))})}function gd(t){return Vs(el,t)}function tt(t,s){var a=gt,l={effect:null,ran:!1,deps:t};a.l.$.push(l),l.effect=jl(()=>{if(t(),!l.ran){l.ran=!0;var i=Ee;try{ws(i.parent),o(s)}finally{ws(i)}}})}function yd(){var t=gt;jl(()=>{for(var s of t.l.$){s.deps();var a=s.effect;a.f&mt&&a.deps!==null&&nt(a,Os),rl(a)&&Ba(a),s.ran=!1}})}function wd(t){return Vs(El|ll,t)}function jl(t,s=0){return Vs(Nl|s,t)}function L(t,s=[],a=[],l=[]){rd(l,s,a,i=>{Vs(Nl,()=>t(...i.map(e)))})}function sn(t,s=0){var a=Vs(Us|s,t);return a}function _s(t){return Vs(Ms|ll,t)}function uo(t){var s=t.teardown;if(s!==null){const a=wa,l=Ce;ki(!0),ys(null);try{s.call(null)}finally{ki(a),ys(l)}}}function an(t,s=!1){var a=t.first;for(t.first=t.last=null;a!==null;){const i=a.ac;i!==null&&pr(()=>{i.abort(Xs)});var l=a.next;a.f&ya?a.parent=null:Zt(a,s),a=l}}function xd(t){for(var s=t.first;s!==null;){var a=s.next;s.f&Ms||Zt(s),s=a}}function Zt(t,s=!0){var a=!1;(s||t.f&kv)&&t.nodes!==null&&t.nodes.end!==null&&(kd(t.nodes.start,t.nodes.end),a=!0),nt(t,_i),an(t,s&&!a),Al(t,0);var l=t.nodes&&t.nodes.t;if(l!==null)for(const v of l)v.stop();uo(t),t.f^=_i,t.f|=ms;var i=t.parent;i!==null&&i.first!==null&&fo(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=t.b=null}function kd(t,s){for(;t!==null;){var a=t===s?null:Pl(t);t.remove(),t=a}}function fo(t){var s=t.parent,a=t.prev,l=t.next;a!==null&&(a.next=l),l!==null&&(l.prev=a),s!==null&&(s.first===t&&(s.first=l),s.last===t&&(s.last=a))}function Pa(t,s,a=!0){var l=[];po(t,l,!0);var i=()=>{a&&Zt(t),s&&s()},v=l.length;if(v>0){var f=()=>--v||i();for(var b of l)b.out(f)}else i()}function po(t,s,a){if(!(t.f&Gt)){t.f^=Gt;var l=t.nodes&&t.nodes.t;if(l!==null)for(const b of l)(b.is_global||a)&&s.push(b);for(var i=t.first;i!==null;){var v=i.next;if(!(i.f&ya)){var f=(i.f&tl)!==0||(i.f&Ms)!==0&&(t.f&Us)!==0;po(i,s,f?a:!1)}i=v}}}function ln(t){ho(t,!0)}function ho(t,s){if(t.f&Gt){t.f^=Gt,t.f&mt||(nt(t,jt),$a.ensure().schedule(t));for(var a=t.first;a!==null;){var l=a.next,i=(a.f&tl)!==0||(a.f&Ms)!==0;ho(a,i?s:!1),a=l}var v=t.nodes&&t.nodes.t;if(v!==null)for(const f of v)(f.is_global||s)&&f.in()}}function rn(t,s){if(t.nodes)for(var a=t.nodes.start,l=t.nodes.end;a!==null;){var i=a===l?null:Pl(a);s.append(a),a=i}}let pa=null;function Sd(t){var s=pa;try{if(pa=new Set,o(t),s!==null)for(var a of pa)s.add(a);return pa}finally{pa=s}}function _l(t){for(var s of Sd(t))Ha(s,s.v)}let nr=!1,wa=!1;function ki(t){wa=t}let Ce=null,Ls=!1;function ys(t){Ce=t}let Ee=null;function ws(t){Ee=t}let gs=null;function Ed(t){Ce!==null&&(gs===null?gs=[t]:gs.push(t))}let Qt=null,as=0,us=null;function Ad(t){us=t}let _o=1,Ta=0,ja=Ta;function Si(t){ja=t}function bo(){return++_o}function rl(t){var s=t.f;if(s&jt)return!0;if(s&Ft&&(t.f&=~Ia),s&Os){for(var a=t.deps,l=a.length,i=0;i<l;i++){var v=a[i];if(rl(v)&&to(v),v.wv>t.wv)return!0}s&bs&&Pt===null&&nt(t,mt)}return!1}function mo(t,s,a=!0){var l=t.reactions;if(l!==null&&!(gs!==null&&Za.call(gs,t)))for(var i=0;i<l.length;i++){var v=l[i];v.f&Ft?mo(v,s,!1):s===v&&(a?nt(v,jt):v.f&mt&&nt(v,Os),Jr(v))}}function go(t){var W;var s=Qt,a=as,l=us,i=Ce,v=gs,f=gt,b=Ls,p=ja,h=t.f;Qt=null,as=0,us=null,Ce=h&(Ms|ya)?null:t,gs=null,sl(t.ctx),Ls=!1,ja=++Ta,t.ac!==null&&(pr(()=>{t.ac.abort(Xs)}),t.ac=null);try{t.f|=ir;var x=t.fn,H=x();t.f|=za;var M=t.deps,N=J==null?void 0:J.is_fork;if(Qt!==null){var S;if(N||Al(t,as),M!==null&&as>0)for(M.length=as+Qt.length,S=0;S<Qt.length;S++)M[as+S]=Qt[S];else t.deps=M=Qt;if(en()&&t.f&bs)for(S=as;S<M.length;S++)((W=M[S]).reactions??(W.reactions=[])).push(t)}else!N&&M!==null&&as<M.length&&(Al(t,as),M.length=as);if(Dl()&&us!==null&&!Ls&&M!==null&&!(t.f&(Ft|Os|jt)))for(S=0;S<us.length;S++)mo(us[S],t);if(i!==null&&i!==t){if(Ta++,i.deps!==null)for(let A=0;A<a;A+=1)i.deps[A].rv=Ta;if(s!==null)for(const A of s)A.rv=Ta;us!==null&&(l===null?l=us:l.push(...us))}return t.f&ma&&(t.f^=ma),H}catch(A){return Ki(A)}finally{t.f^=ir,Qt=s,as=a,us=l,Ce=i,gs=v,sl(f),Ls=b,ja=p}}function Td(t,s){let a=s.reactions;if(a!==null){var l=bv.call(a,t);if(l!==-1){var i=a.length-1;i===0?a=s.reactions=null:(a[l]=a[i],a.pop())}}if(a===null&&s.f&Ft&&(Qt===null||!Za.call(Qt,s))){var v=s;v.f&bs&&(v.f^=bs,v.f&=~Ia),v.v!==Ct&&Gr(v),cd(v),Al(v,0)}}function Al(t,s){var a=t.deps;if(a!==null)for(var l=s;l<a.length;l++)Td(t,a[l])}function Ba(t){var s=t.f;if(!(s&ms)){nt(t,mt);var a=Ee,l=nr;Ee=t,nr=!0;try{s&(Us|Ii)?xd(t):an(t),uo(t);var i=go(t);t.teardown=typeof i=="function"?i:null,t.wv=_o;var v;_v&&Vv&&t.f&jt&&t.deps}finally{nr=l,Ee=a}}}async function Cd(){await Promise.resolve(),Jv()}function e(t){var s=t.f,a=(s&Ft)!==0;if(pa==null||pa.add(t),Ce!==null&&!Ls){var l=Ee!==null&&(Ee.f&ms)!==0;if(!l&&(gs===null||!Za.call(gs,t))){var i=Ce.deps;if(Ce.f&ir)t.rv<Ta&&(t.rv=Ta,Qt===null&&i!==null&&i[as]===t?as++:Qt===null?Qt=[t]:Qt.push(t));else{(Ce.deps??(Ce.deps=[])).push(t);var v=t.reactions;v===null?t.reactions=[Ce]:Za.call(v,Ce)||v.push(Ce)}}}if(wa&&Da.has(t))return Da.get(t);if(a){var f=t;if(wa){var b=f.v;return(!(f.f&mt)&&f.reactions!==null||wo(f))&&(b=Qr(f)),Da.set(f,b),b}var p=(f.f&bs)===0&&!Ls&&Ce!==null&&(nr||(Ce.f&bs)!==0),h=(f.f&za)===0;rl(f)&&(p&&(f.f|=bs),to(f)),p&&!h&&(so(f),yo(f))}if(Pt!=null&&Pt.has(t))return Pt.get(t);if(t.f&ma)throw t.v;return t.v}function yo(t){if(t.f|=bs,t.deps!==null)for(const s of t.deps)(s.reactions??(s.reactions=[])).push(t),s.f&Ft&&!(s.f&bs)&&(so(s),yo(s))}function wo(t){if(t.v===Ct)return!0;if(t.deps===null)return!1;for(const s of t.deps)if(Da.has(s)||s.f&Ft&&wo(s))return!0;return!1}function o(t){var s=Ls;try{return Ls=!0,t()}finally{Ls=s}}function Ie(t){if(!(typeof t!="object"||!t||t instanceof EventTarget)){if(Na in t)zr(t);else if(!Array.isArray(t))for(let s in t){const a=t[s];typeof a=="object"&&a&&Na in a&&zr(a)}}}function zr(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 l in t)try{zr(t[l],s)}catch{}const a=Kr(t);if(a!==Object.prototype&&a!==Array.prototype&&a!==Map.prototype&&a!==Set.prototype&&a!==Date.prototype){const l=Pi(a);for(let i in l){const v=l[i].get;if(v)try{v.call(t)}catch{}}}}}const Ld=["touchstart","touchmove"];function Md(t){return Ld.includes(t)}const Jl=Symbol("events"),Od=new Set,Ei=new Set;function Rd(t,s,a,l={}){function i(v){if(l.capture||Ur.call(s,v),!v.cancelBubble)return pr(()=>a==null?void 0:a.call(this,v))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?ga(()=>{s.addEventListener(t,i,l)}):s.addEventListener(t,i,l),i}function z(t,s,a,l,i){var v={capture:l,passive:i},f=Rd(t,s,a,v);(s===document.body||s===window||s===document||s instanceof HTMLMediaElement)&&tn(()=>{s.removeEventListener(t,f,v)})}let Ai=null;function Ur(t){var A,se;var s=this,a=s.ownerDocument,l=t.type,i=((A=t.composedPath)==null?void 0:A.call(t))||[],v=i[0]||t.target;Ai=t;var f=0,b=Ai===t&&t[Jl];if(b){var p=i.indexOf(b);if(p!==-1&&(s===document||s===window)){t[Jl]=s;return}var h=i.indexOf(s);if(h===-1)return;p<=h&&(f=p)}if(v=i[f]||t.target,v!==s){mv(t,"currentTarget",{configurable:!0,get(){return v||a}});var x=Ce,H=Ee;ys(null),ws(null);try{for(var M,N=[];v!==null;){var S=v.assignedSlot||v.parentNode||v.host||null;try{var W=(se=v[Jl])==null?void 0:se[l];W!=null&&(!v.disabled||t.target===v)&&W.call(v,t)}catch(qe){M?N.push(qe):M=qe}if(t.cancelBubble||S===s||S===null)break;v=S}if(M){for(let qe of N)queueMicrotask(()=>{throw qe});throw M}}finally{t[Jl]=s,delete t.currentTarget,ys(x),ws(H)}}}var Ni;const Mr=((Ni=globalThis==null?void 0:globalThis.window)==null?void 0:Ni.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:t=>t});function Nd(t){return(Mr==null?void 0:Mr.createHTML(t))??t}function xo(t){var s=pd("template");return s.innerHTML=Nd(t.replaceAll("<!>","<!---->")),s.content}function al(t,s){var a=Ee;a.nodes===null&&(a.nodes={start:t,end:s,a:null,t:null})}function k(t,s){var a=(s&Hi)!==0,l=(s&Fv)!==0,i,v=!t.startsWith("<!>");return()=>{i===void 0&&(i=xo(v?t:"<!>"+t),a||(i=sa(i)));var f=l||ro?document.importNode(i,!0):i.cloneNode(!0);if(a){var b=sa(f),p=f.lastChild;al(b,p)}else al(f,f);return f}}function Dd(t,s,a="svg"){var l=!t.startsWith("<!>"),i=(s&Hi)!==0,v=`<${a}>${l?t:"<!>"+t}</${a}>`,f;return()=>{if(!f){var b=xo(v),p=sa(b);if(i)for(f=document.createDocumentFragment();sa(p);)f.appendChild(sa(p));else f=sa(p)}var h=f.cloneNode(!0);if(i){var x=sa(h),H=h.lastChild;al(x,H)}else al(h,h);return h}}function Ws(t,s){return Dd(t,s,"svg")}function js(t=""){{var s=aa(t+"");return al(s,s),s}}function Is(){var t=document.createDocumentFragment(),s=document.createComment(""),a=aa();return t.append(s,a),al(s,a),t}function y(t,s){t!==null&&t.before(s)}function _(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 Pd(t,s){return jd(t,s)}const Xl=new Map;function jd(t,{target:s,anchor:a,props:l={},events:i,context:v,intro:f=!0,transformError:b}){ud();var p=void 0,h=md(()=>{var x=a??s.appendChild(aa());ed(x,{pending:()=>{}},N=>{Vi({});var S=gt;v&&(S.c=v),i&&(l.$$events=i),p=t(N,l)||{},Wi()},b);var H=new Set,M=N=>{for(var S=0;S<N.length;S++){var W=N[S];if(!H.has(W)){H.add(W);var A=Md(W);for(const Ne of[s,document]){var se=Xl.get(Ne);se===void 0&&(se=new Map,Xl.set(Ne,se));var qe=se.get(W);qe===void 0?(Ne.addEventListener(W,Ur,{passive:A}),se.set(W,1)):se.set(W,qe+1)}}}};return M(ur(Od)),Ei.add(M),()=>{var A;for(var N of H)for(const se of[s,document]){var S=Xl.get(se),W=S.get(N);--W==0?(se.removeEventListener(N,Ur),S.delete(N),S.size===0&&Xl.delete(se)):S.set(N,W)}Ei.delete(M),x!==a&&((A=x.parentNode)==null||A.removeChild(x))}});return Id.set(p,h),p}let Id=new WeakMap;var Cs,Bs,ns,Ra,Ol,Rl,dr;class $d{constructor(s,a=!0){As(this,"anchor");be(this,Cs,new Map);be(this,Bs,new Map);be(this,ns,new Map);be(this,Ra,new Set);be(this,Ol,!0);be(this,Rl,s=>{if(u(this,Cs).has(s)){var a=u(this,Cs).get(s),l=u(this,Bs).get(a);if(l)ln(l),u(this,Ra).delete(a);else{var i=u(this,ns).get(a);i&&(u(this,Bs).set(a,i.effect),u(this,ns).delete(a),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),l=i.effect)}for(const[v,f]of u(this,Cs)){if(u(this,Cs).delete(v),v===s)break;const b=u(this,ns).get(f);b&&(Zt(b.effect),u(this,ns).delete(f))}for(const[v,f]of u(this,Bs)){if(v===a||u(this,Ra).has(v))continue;const b=()=>{if(Array.from(u(this,Cs).values()).includes(v)){var h=document.createDocumentFragment();rn(f,h),h.append(aa()),u(this,ns).set(v,{effect:f,fragment:h})}else Zt(f);u(this,Ra).delete(v),u(this,Bs).delete(v)};u(this,Ol)||!l?(u(this,Ra).add(v),Pa(f,b,!1)):b()}}});be(this,dr,s=>{u(this,Cs).delete(s);const a=Array.from(u(this,Cs).values());for(const[l,i]of u(this,ns))a.includes(l)||(Zt(i.effect),u(this,ns).delete(l))});this.anchor=s,Se(this,Ol,a)}ensure(s,a){var l=J,i=oo();if(a&&!u(this,Bs).has(s)&&!u(this,ns).has(s))if(i){var v=document.createDocumentFragment(),f=aa();v.append(f),u(this,ns).set(s,{effect:_s(()=>a(f)),fragment:v})}else u(this,Bs).set(s,_s(()=>a(this.anchor)));if(u(this,Cs).set(l,s),i){for(const[b,p]of u(this,Bs))b===s?l.unskip_effect(p):l.skip_effect(p);for(const[b,p]of u(this,ns))b===s?l.unskip_effect(p.effect):l.skip_effect(p.effect);l.oncommit(u(this,Rl)),l.ondiscard(u(this,dr))}else u(this,Rl).call(this,l)}}Cs=new WeakMap,Bs=new WeakMap,ns=new WeakMap,Ra=new WeakMap,Ol=new WeakMap,Rl=new WeakMap,dr=new WeakMap;function F(t,s,a=!1){var l=new $d(t),i=a?tl:0;function v(f,b){l.ensure(f,b)}sn(()=>{var f=!1;s((b,p=0)=>{f=!0,v(p,b)}),f||v(-1,null)},i)}function Tt(t,s){return s}function Fd(t,s,a){for(var l=[],i=s.length,v,f=s.length,b=0;b<i;b++){let H=s[b];Pa(H,()=>{if(v){if(v.pending.delete(H),v.done.add(H),v.pending.size===0){var M=t.outrogroups;Vr(t,ur(v.done)),M.delete(v),M.size===0&&(t.outrogroups=null)}}else f-=1},!1)}if(f===0){var p=l.length===0&&a!==null;if(p){var h=a,x=h.parentNode;fd(x),x.append(h),t.items.clear()}Vr(t,s,!p)}else v={pending:new Set(s),done:new Set},(t.outrogroups??(t.outrogroups=new Set)).add(v)}function Vr(t,s,a=!0){var l;if(t.pending.size>0){l=new Set;for(const f of t.pending.values())for(const b of f)l.add(t.items.get(b).e)}for(var i=0;i<s.length;i++){var v=s[i];if(l!=null&&l.has(v)){v.f|=zs;const f=document.createDocumentFragment();rn(v,f)}else Zt(s[i],a)}}var Ti;function st(t,s,a,l,i,v=null){var f=t,b=new Map,p=(s&Fi)!==0;if(p){var h=t;f=h.appendChild(aa())}var x=null,H=bt(()=>{var Ne=a();return qr(Ne)?Ne:Ne==null?[]:ur(Ne)}),M,N=new Map,S=!0;function W(Ne){qe.effect.f&ms||(qe.pending.delete(Ne),qe.fallback=x,Hd(qe,M,f,s,l),x!==null&&(M.length===0?x.f&zs?(x.f^=zs,yl(x,null,f)):ln(x):Pa(x,()=>{x=null})))}function A(Ne){qe.pending.delete(Ne)}var se=sn(()=>{M=e(H);for(var Ne=M.length,wt=new Set,is=J,Ht=oo(),ut=0;ut<Ne;ut+=1){var g=M[ut],Bt=l(g,ut),Lt=S?null:b.get(Bt);Lt?(Lt.v&&Ha(Lt.v,g),Lt.i&&Ha(Lt.i,ut),Ht&&is.unskip_effect(Lt.e)):(Lt=Bd(b,S?f:Ti??(Ti=aa()),g,Bt,ut,i,s,a),S||(Lt.e.f|=zs),b.set(Bt,Lt)),wt.add(Bt)}if(Ne===0&&v&&!x&&(S?x=_s(()=>v(f)):(x=_s(()=>v(Ti??(Ti=aa()))),x.f|=zs)),Ne>wt.size&&Av(),!S)if(N.set(is,wt),Ht){for(const[Rs,qs]of b)wt.has(Rs)||is.skip_effect(qs.e);is.oncommit(W),is.ondiscard(A)}else W(is);e(H)}),qe={effect:se,items:b,pending:N,outrogroups:null,fallback:x};S=!1}function bl(t){for(;t!==null&&!(t.f&Ms);)t=t.next;return t}function Hd(t,s,a,l,i){var Lt,Rs,qs,la,St,xs,xt,es,Ve;var v=(l&Iv)!==0,f=s.length,b=t.items,p=bl(t.effect.first),h,x=null,H,M=[],N=[],S,W,A,se;if(v)for(se=0;se<f;se+=1)S=s[se],W=i(S,se),A=b.get(W).e,A.f&zs||((Rs=(Lt=A.nodes)==null?void 0:Lt.a)==null||Rs.measure(),(H??(H=new Set)).add(A));for(se=0;se<f;se+=1){if(S=s[se],W=i(S,se),A=b.get(W).e,t.outrogroups!==null)for(const Mt of t.outrogroups)Mt.pending.delete(A),Mt.done.delete(A);if(A.f&Gt&&(ln(A),v&&((la=(qs=A.nodes)==null?void 0:qs.a)==null||la.unfix(),(H??(H=new Set)).delete(A))),A.f&zs)if(A.f^=zs,A===p)yl(A,null,a);else{var qe=x?x.next:p;A===t.effect.last&&(t.effect.last=A.prev),A.prev&&(A.prev.next=A.next),A.next&&(A.next.prev=A.prev),fa(t,x,A),fa(t,A,qe),yl(A,qe,a),x=A,M=[],N=[],p=bl(x.next);continue}if(A!==p){if(h!==void 0&&h.has(A)){if(M.length<N.length){var Ne=N[0],wt;x=Ne.prev;var is=M[0],Ht=M[M.length-1];for(wt=0;wt<M.length;wt+=1)yl(M[wt],Ne,a);for(wt=0;wt<N.length;wt+=1)h.delete(N[wt]);fa(t,is.prev,Ht.next),fa(t,x,is),fa(t,Ht,Ne),p=Ne,x=Ht,se-=1,M=[],N=[]}else h.delete(A),yl(A,p,a),fa(t,A.prev,A.next),fa(t,A,x===null?t.effect.first:x.next),fa(t,x,A),x=A;continue}for(M=[],N=[];p!==null&&p!==A;)(h??(h=new Set)).add(p),N.push(p),p=bl(p.next);if(p===null)continue}A.f&zs||M.push(A),x=A,p=bl(A.next)}if(t.outrogroups!==null){for(const Mt of t.outrogroups)Mt.pending.size===0&&(Vr(t,ur(Mt.done)),(St=t.outrogroups)==null||St.delete(Mt));t.outrogroups.size===0&&(t.outrogroups=null)}if(p!==null||h!==void 0){var ut=[];if(h!==void 0)for(A of h)A.f&Gt||ut.push(A);for(;p!==null;)!(p.f&Gt)&&p!==t.fallback&&ut.push(p),p=bl(p.next);var g=ut.length;if(g>0){var Bt=l&Fi&&f===0?a:null;if(v){for(se=0;se<g;se+=1)(xt=(xs=ut[se].nodes)==null?void 0:xs.a)==null||xt.measure();for(se=0;se<g;se+=1)(Ve=(es=ut[se].nodes)==null?void 0:es.a)==null||Ve.fix()}Fd(t,ut,Bt)}}v&&ga(()=>{var Mt,Ua;if(H!==void 0)for(A of H)(Ua=(Mt=A.nodes)==null?void 0:Mt.a)==null||Ua.apply()})}function Bd(t,s,a,l,i,v,f,b){var p=f&Pv?f&$v?Fa(a):O(a,!1,!1):null,h=f&jv?Fa(i):null;return{v:p,i:h,e:_s(()=>(v(s,p??a,h??i,b),()=>{t.delete(l)}))}}function yl(t,s,a){if(t.nodes)for(var l=t.nodes.start,i=t.nodes.end,v=s&&!(s.f&zs)?s.nodes.start:a;l!==null;){var f=Pl(l);if(v.before(l),l===i)return;l=f}}function fa(t,s,a){s===null?t.effect.first=a:s.next=a,a===null?t.effect.last=s:a.prev=s}const Ci=[...`
2
+ \r\f \v\uFEFF`];function zd(t,s,a){var l=t==null?"":""+t;if(s&&(l=l?l+" "+s:s),a){for(var i of Object.keys(a))if(a[i])l=l?l+" "+i:i;else if(l.length)for(var v=i.length,f=0;(f=l.indexOf(i,f))>=0;){var b=f+v;(f===0||Ci.includes(l[f-1]))&&(b===l.length||Ci.includes(l[b]))?l=(f===0?"":l.substring(0,f))+l.substring(b+1):f=b}}return l===""?null:l}function Ud(t,s){return t==null?null:String(t)}function ye(t,s,a,l,i,v){var f=t.__className;if(f!==a||f===void 0){var b=zd(a,l,v);b==null?t.removeAttribute("class"):s?t.className=b:t.setAttribute("class",b),t.__className=a}else if(v&&i!==v)for(var p in v){var h=!!v[p];(i==null||h!==!!i[p])&&t.classList.toggle(p,h)}return v}function ml(t,s,a,l){var i=t.__style;if(i!==s){var v=Ud(s);v==null?t.removeAttribute("style"):t.style.cssText=v,t.__style=s}return l}function ko(t,s,a=!1){if(t.multiple){if(s==null)return;if(!qr(s))return Bv();for(var l of t.options)l.selected=s.includes(Sl(l));return}for(l of t.options){var i=Sl(l);if(dd(i,s)){l.selected=!0;return}}(!a||s!==void 0)&&(t.selectedIndex=-1)}function Vd(t){var s=new MutationObserver(()=>{ko(t,t.__value)});s.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),tn(()=>{s.disconnect()})}function $s(t,s,a=s){var l=new WeakSet,i=!0;Zr(t,"change",v=>{var f=v?"[selected]":":checked",b;if(t.multiple)b=[].map.call(t.querySelectorAll(f),Sl);else{var p=t.querySelector(f)??t.querySelector("option:not([disabled])");b=p&&Sl(p)}a(b),t.__value=b,J!==null&&l.add(J)}),gd(()=>{var v=s();if(t===document.activeElement){var f=J;if(l.has(f))return}if(ko(t,v,i),i&&v===void 0){var b=t.querySelector(":checked");b!==null&&(v=Sl(b),a(v))}t.__value=v,i=!1}),Vd(t)}function Sl(t){return"__value"in t?t.__value:t.value}const Wd=Symbol("is custom element"),qd=Symbol("is html");function Ql(t,s){var a=So(t);a.checked!==(a.checked=s??void 0)&&(t.checked=s)}function pe(t,s,a,l){var i=So(t);i[s]!==(i[s]=a)&&(s==="loading"&&(t[Sv]=a),a==null?t.removeAttribute(s):typeof a!="string"&&Kd(t).includes(s)?t[s]=a:t.setAttribute(s,a))}function So(t){return t.__attributes??(t.__attributes={[Wd]:t.nodeName.includes("-"),[qd]:t.namespaceURI===Bi})}var Li=new Map;function Kd(t){var s=t.getAttribute("is")||t.nodeName,a=Li.get(s);if(a)return a;Li.set(s,a=[]);for(var l,i=t,v=Element.prototype;v!==i;){l=Pi(i);for(var f in l)l[f].set&&a.push(f);i=Kr(i)}return a}function $t(t,s,a=s){var l=new WeakSet;Zr(t,"input",async i=>{var v=i?t.defaultValue:t.value;if(v=Or(t)?Rr(v):v,a(v),J!==null&&l.add(J),await Cd(),v!==(v=s())){var f=t.selectionStart,b=t.selectionEnd,p=t.value.length;if(t.value=v??"",b!==null){var h=t.value.length;f===b&&b===p&&h>p?(t.selectionStart=h,t.selectionEnd=h):(t.selectionStart=f,t.selectionEnd=Math.min(b,h))}}}),o(s)==null&&t.value&&(a(Or(t)?Rr(t.value):t.value),J!==null&&l.add(J)),jl(()=>{var i=s();if(t===document.activeElement){var v=J;if(l.has(v))return}Or(t)&&i===Rr(t.value)||t.type==="date"&&!i&&!t.value||i!==t.value&&(t.value=i??"")})}function Mi(t,s,a=s){Zr(t,"change",l=>{var i=l?t.defaultChecked:t.checked;a(i)}),o(s)==null&&a(t.checked),jl(()=>{var l=s();t.checked=!!l})}function Or(t){var s=t.type;return s==="number"||s==="range"}function Rr(t){return t===""?null:+t}function Oi(t){return function(...s){var a=s[0];a.target===this&&(t==null||t.apply(this,s))}}function Gd(t){return function(...s){var a=s[0];return a.stopPropagation(),t==null?void 0:t.apply(this,s)}}function Zl(t){return function(...s){var a=s[0];return a.preventDefault(),t==null?void 0:t.apply(this,s)}}function Yd(t=!1){const s=gt,a=s.l.u;if(!a)return;let l=()=>Ie(s.s);if(t){let i=0,v={};const f=Xr(()=>{let b=!1;const p=s.s;for(const h in p)p[h]!==v[h]&&(v[h]=p[h],b=!0);return b&&i++,i});l=()=>e(f)}a.b.length&&bd(()=>{Ri(s,l),Nr(a.b)}),xi(()=>{const i=o(()=>a.m.map(xv));return()=>{for(const v of i)typeof v=="function"&&v()}}),a.a.length&&xi(()=>{Ri(s,l),Nr(a.a)})}function Ri(t,s){if(t.l.s)for(const a of t.l.s)e(a);s()}const Jd="5";var Di;typeof window<"u"&&((Di=window.__svelte??(window.__svelte={})).v??(Di.v=new Set)).add(Jd);Wv();var Xd=k('<p class="login-error svelte-d3ct2b"> </p>'),Qd=k('<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>'),Zd=k('<span class="topbar-arch-pill svelte-d3ct2b"> </span>'),eu=Ws('<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>'),tu=Ws('<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>'),su=k('<span class="side-badge svelte-d3ct2b"> </span>'),au=k('<span class="side-badge svelte-d3ct2b"> </span>'),lu=k('<span class="side-badge svelte-d3ct2b"> </span>'),ru=k('<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>'),nu=k('<div class="health-badge health-warn svelte-d3ct2b"><i class="dot dot-warn svelte-d3ct2b"></i> <span class="svelte-d3ct2b"> </span></div>'),iu=k('<div><i></i> <span class="svelte-d3ct2b"> </span></div>'),ou=k('<span class="health-error svelte-d3ct2b"> </span>'),cu=k('<span class="health-error svelte-d3ct2b"> </span>'),vu=Ws('<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>'),du=Ws('<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>'),uu=k('<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),fu=k('<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),pu=k('<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),hu=k('· <em class="svelte-d3ct2b"> </em>',1),_u=k('<br class="svelte-d3ct2b"/><span class="detail-fix svelte-d3ct2b"> </span>',1),bu=k('<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>'),mu=k('<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),gu=k('<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),yu=k('<br class="svelte-d3ct2b"/><span class="detail-fix svelte-d3ct2b"> </span>',1),wu=k('<div class="log-detail svelte-d3ct2b"><span class="detail-index svelte-d3ct2b"></span> <span class="detail-body svelte-d3ct2b"><!> <!></span></div>'),xu=k('<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),ku=k('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Commit Hook</span> <span class="section-meta svelte-d3ct2b"> </span></div> <!>',1),Su=k('<div class="check-progress svelte-d3ct2b"><div class="check-progress-bar svelte-d3ct2b"></div> <span class="check-progress-label svelte-d3ct2b"> </span></div> <button class="cancel-check-btn svelte-d3ct2b">Cancel</button>',1),Eu=k('<button class="check-all-btn svelte-d3ct2b">Check All</button>'),Au=k('<span class="summary-count summary-stale svelte-d3ct2b"> </span>'),Tu=k('<span class="summary-count summary-dupe svelte-d3ct2b"> </span>'),Cu=k('<span class="summary-count summary-vague svelte-d3ct2b"> </span>'),Lu=k('<button class="resolve-all-btn svelte-d3ct2b"> </button>'),Mu=k('<div class="check-all-summary svelte-d3ct2b"><span class="summary-title svelte-d3ct2b">Check Complete</span> <span class="summary-count summary-valid svelte-d3ct2b"> </span> <!> <!> <!> <!> <button class="summary-dismiss-btn svelte-d3ct2b">✕</button></div>'),Ou=k('<span class="rule-reason svelte-d3ct2b"> </span>'),Ru=k('<li class="svelte-d3ct2b"> </li>'),Nu=k('<ul class="analyze-issues svelte-d3ct2b"></ul>'),Du=k('<div class="analyze-suggestion svelte-d3ct2b"><strong class="svelte-d3ct2b">Suggestion:</strong> <pre class="svelte-d3ct2b"> </pre> <button class="apply-btn svelte-d3ct2b"> </button></div>'),Pu=k('<div><span> </span> <span class="analyze-confidence svelte-d3ct2b"> </span> <span class="analyze-reasoning svelte-d3ct2b"> </span> <!> <!></div>'),ju=k('<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="analyze-btn svelte-d3ct2b" title="Model check this memory"> </button> <button class="del-btn svelte-d3ct2b">✕</button></div> <!>',1),Iu=k('Custom architecture — no profile rules loaded. Add rules from the terminal: <code class="svelte-d3ct2b">memory-core remember "..." --type rule</code>',1),$u=k('<div class="log-row svelte-d3ct2b"><span class="log-msg svelte-d3ct2b" style="color: var(--outline)"><!></span></div>'),Fu=k('<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),Hu=k('<span class="profile-msg svelte-d3ct2b"> </span>'),Bu=k('<div class="profile-empty svelte-d3ct2b">No saved profiles yet.</div>'),zu=k('<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>'),Uu=k('<div class="profile-list svelte-d3ct2b"></div>'),Vu=k('<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>'),Wu=k('<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>'),qu=Ws('<line stroke-width="1.5" opacity="0.75" class="svelte-d3ct2b"></line>'),Ku=Ws('<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),Gu=Ws('<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>'),Yu=k('<div class="arch-node-panel-path svelte-d3ct2b"> </div>'),Ju=k('<div class="arch-node-panel-paths svelte-d3ct2b"><div class="arch-node-panel-section svelte-d3ct2b">Glob patterns</div> <!></div>'),Xu=k('<div class="arch-node-panel-rule svelte-d3ct2b"><span> </span> <span style="font-size:12px" class="svelte-d3ct2b"> </span></div>'),Qu=k('<div class="arch-node-panel-paths svelte-d3ct2b"><div class="arch-node-panel-section svelte-d3ct2b">Rules involving this layer</div> <!></div>'),Zu=k('<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>'),ef=k('<button class="arch-rule-del svelte-d3ct2b" title="Delete rule">✕</button>'),tf=k('<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>'),sf=k('<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>'),af=k('<button class="arch-edit-btn svelte-d3ct2b">+ Add Layer</button>'),lf=k('<option class="svelte-d3ct2b"> </option>'),rf=k('<option class="svelte-d3ct2b"> </option>'),nf=k('<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>'),of=k('<button class="arch-edit-btn svelte-d3ct2b">+ Add Rule</button>'),cf=k("<!> <!>",1),vf=k('<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>'),df=k('<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),uf=k('<div class="log-row svelte-d3ct2b"><span class="log-label label-ok svelte-d3ct2b">[OK]</span> <span class="log-msg svelte-d3ct2b"> </span></div>'),ff=k('<span class="history-resolved-badge svelte-d3ct2b"> </span>'),pf=k('<span class="history-issue svelte-d3ct2b"> </span>'),hf=k('<div class="history-violation svelte-d3ct2b"><span class="history-badge svelte-d3ct2b"> </span> <span class="history-rule svelte-d3ct2b"> </span> <!></div>'),_f=k('<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>'),bf=k('<div class="history-list svelte-d3ct2b"></div>'),mf=k('<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),gf=k('<span class="section-meta svelte-d3ct2b"> </span>'),yf=k('<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>'),wf=k('<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>'),xf=Ws('<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),kf=Ws('<circle r="3" fill="var(--primary)" class="svelte-d3ct2b"><title class="svelte-d3ct2b"> </title></circle>'),Sf=Ws('<text text-anchor="middle" font-size="9" fill="var(--outline)" class="svelte-d3ct2b"> </text>'),Ef=k('<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>'),Af=k('<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>'),Tf=k('<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>'),Cf=k('<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>'),Lf=k('<span class="an-heat-bar svelte-d3ct2b"></span>'),Mf=k('<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>'),Of=k('<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>'),Rf=k('<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>'),Nf=k('<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>'),Df=k('<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>'),Pf=k('<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),jf=k('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Analytics</span> <!> <button class="arch-edit-btn svelte-d3ct2b"> </button></div> <!>',1),If=k('<span class="section-meta svelte-d3ct2b"> </span>'),$f=k('<div class="log-row svelte-d3ct2b"><span class="log-label label-ok svelte-d3ct2b">[…]</span><span class="log-msg svelte-d3ct2b">Loading proposals…</span></div>'),Ff=k('<div class="log-row svelte-d3ct2b"><span class="log-label label-ok svelte-d3ct2b">[OK]</span><span class="log-msg svelte-d3ct2b">No pending proposals. Use <code class="svelte-d3ct2b">memory-core arch propose</code> or <code class="svelte-d3ct2b">arch watch</code> to generate some.</span></div>'),Hf=k('<div class="log-row svelte-d3ct2b"><span class="log-label label-ok svelte-d3ct2b">[OK]</span><span class="log-msg svelte-d3ct2b">No proposals match the current filters.</span></div>'),Bf=k('<div class="proposal-desc svelte-d3ct2b"> </div>'),zf=k('<div class="proposal-evidence svelte-d3ct2b"> </div>'),Uf=k('<div class="proposal-card svelte-d3ct2b"><div class="proposal-header svelte-d3ct2b"><span class="proposal-source svelte-d3ct2b"> </span> <span> </span> <span class="proposal-time svelte-d3ct2b"> </span></div> <div class="proposal-name svelte-d3ct2b"> </div> <!> <!> <div class="proposal-actions svelte-d3ct2b"><button class="proposal-btn proposal-approve svelte-d3ct2b"> </button> <button class="proposal-btn proposal-reject svelte-d3ct2b"> </button></div></div>'),Vf=k('<div class="proposals-list svelte-d3ct2b"></div>'),Wf=k('<div class="section-header svelte-d3ct2b"><span class="section-title svelte-d3ct2b">Proposals</span> <!> <select class="proposal-filter-select svelte-d3ct2b"><option class="svelte-d3ct2b">All sources</option><option class="svelte-d3ct2b">test</option><option class="svelte-d3ct2b">bugfix</option><option class="svelte-d3ct2b">incident</option><option class="svelte-d3ct2b">pr-review</option><option class="svelte-d3ct2b">watch</option></select> <select class="proposal-filter-select svelte-d3ct2b"><option class="svelte-d3ct2b">All confidence</option><option class="svelte-d3ct2b">high</option><option class="svelte-d3ct2b">medium</option><option class="svelte-d3ct2b">low</option></select> <button class="arch-edit-btn svelte-d3ct2b"> </button></div> <!>',1),qf=k('<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>'),Kf=k("<div> </div>"),Gf=k('<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> <div class="modal-body svelte-d3ct2b"><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">Watch Behavior</div> <div class="modal-toggle-row svelte-d3ct2b"><label class="modal-toggle-label svelte-d3ct2b" for="ws-autofix"><span class="modal-toggle-title svelte-d3ct2b">Auto-fix violations</span> <span class="modal-toggle-desc svelte-d3ct2b">AI rewrites files that violate rules on save. Off by default. Takes effect immediately.</span></label> <input id="ws-autofix" type="checkbox" class="modal-toggle svelte-d3ct2b"/></div> <div class="modal-toggle-row svelte-d3ct2b"><label class="modal-toggle-label svelte-d3ct2b" for="ws-verbose"><span class="modal-toggle-title svelte-d3ct2b">Verbose logging</span> <span class="modal-toggle-desc svelte-d3ct2b">Diff size and model metadata per file. Applies on next watcher restart.</span></label> <input id="ws-verbose" type="checkbox" class="modal-toggle svelte-d3ct2b"/></div> <div class="modal-toggle-row svelte-d3ct2b"><label class="modal-toggle-label svelte-d3ct2b" for="ws-debug"><span class="modal-toggle-title svelte-d3ct2b">Debug mode</span> <span class="modal-toggle-desc svelte-d3ct2b">Print full prompts, diffs, raw model responses. Noisy. Applies on next watcher restart.</span></label> <input id="ws-debug" type="checkbox" class="modal-toggle svelte-d3ct2b"/></div> <div class="modal-toggle-row svelte-d3ct2b"><label class="modal-toggle-label svelte-d3ct2b" for="ws-scan"><span class="modal-toggle-title svelte-d3ct2b">Scan on start</span> <span class="modal-toggle-desc svelte-d3ct2b">Full tracked-file snapshot scan before listening to saves. Applies on next watcher restart.</span></label> <input id="ws-scan" type="checkbox" class="modal-toggle svelte-d3ct2b"/></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></div>'),Yf=k('<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> <button><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-d3ct2b"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" class="svelte-d3ct2b"></path><polyline points="14 2 14 8 20 8" class="svelte-d3ct2b"></polyline><line x1="9" y1="13" x2="15" y2="13" class="svelte-d3ct2b"></line><line x1="9" y1="17" x2="12" y2="17" class="svelte-d3ct2b"></line></svg> <span class="svelte-d3ct2b">Proposals<!></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 Jf(t,s){Vi(s,!1);const a=O(),l=O(),i=O(),v=O(),f=O(),b=O(),p=O(),h=O(),x=O(),H=O(),M=O(),N=O(),S=O(),W=O(),A=O(),se=O(),qe=O(),Ne=O(),wt=O(),is=O(),Ht=O(),ut=O();let g=O({config:null,stats:{rules:{},files:{},topRules:[],topFiles:[]},files:[],memories:[]}),Bt=O([]),Lt=O(!1),Rs=O("all"),qs=O(""),la=O(!1),St=O(""),xs=O({}),xt=O({}),es=O({}),Ve=O({done:!1,total:0,valid:0,stale:0,duplicate:0,vague:0}),Mt=O(!1),Ua=O(!1),ft=O({type:"rule",scope:"project",content:"",reason:"",tags:"dashboard"}),ot=O("live-feed"),zt=O(null),Va=O(!1),nn=O(""),xa=O(!1),pt=O({provider:"",model:"",apiKey:"",chatTimeoutMs:"",checkTimeoutMs:""}),Il=O(!1),ra=O(""),na=O(""),Ut=O([]),nl=O(!1),os=O({}),il=O(""),ol=O("");async function $l(){d(nl,!0);try{const w=await(await Ye("/api/proposals")).json();d(Ut,w.proposals??[])}catch{}finally{d(nl,!1)}}async function on(c,w){d(os,{...e(os),[c]:!0});try{await Ye(`/api/proposals/${c}/${w}`,{method:"POST"}),d(Ut,e(Ut).filter(I=>I.id!==c))}catch{}finally{d(os,{...e(os),[c]:!1})}}let cs=O(!1),ia=O(!1),oa=O(!1),It=O({name:"",paths:"",description:""}),Ge=O({fromLayer:"",toLayer:"",name:"",allowed:!1,enforcement:"block"}),Ot=O(!1),ca=O([]),Fl=O(!1),cl=O(!1),ka=O(""),hr=O(!1),Wa=O("");async function vl(){try{const w=await(await Ye("/api/arch/profiles")).json();d(ca,w.profiles??[])}catch{d(ca,[])}}async function cn(){if(e(ka).trim()){d(cl,!0),d(Wa,"");try{const c=await Ye("/api/arch/profiles",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:e(ka).trim(),projectScoped:e(hr)})});if(c.ok)d(ka,""),d(Wa,"Saved"),await vl();else{const w=await c.json();d(Wa,w.error??"Error")}}finally{d(cl,!1)}}}async function Eo(c){d(Ot,!0);try{await Ye(`/api/arch/profiles/${c}/apply`,{method:"POST"}),d(cs,!1),d(ia,!1),d(oa,!1),await Vt()}finally{d(Ot,!1)}}async function Ao(c){confirm("Delete this profile?")&&(await Ye(`/api/arch/profiles/${c}`,{method:"DELETE"}),await vl())}let we=O(null),dl=O(!1),vs=O("trends");async function vn(){d(dl,!0);try{const c=await Ye("/api/analytics");d(we,await c.json())}catch{d(we,null)}finally{d(dl,!1)}}let Hl=O(!0),ul=O(!1);async function To(){if(confirm("Clear all violation history? This cannot be undone.")){d(ul,!0);try{await Ye("/api/history",{method:"DELETE"}),await Vt()}finally{d(ul,!1)}}}async function Co(c){await Ye("/api/history/resolve",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({timestamp:c})}),await Vt()}let ds=O({autoFix:!1,verbose:!1,debug:!1,scanOnStart:!1}),qa=O(!1),dn=!1;async function un(){try{const c=await Ye("/api/settings");c.ok&&(d(ds,await c.json()),dn=!0)}catch{}}async function Bl(c){d(qa,!0);const w={...e(ds),...c};try{const I=await Ye("/api/settings",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(c)});I.ok?d(ds,await I.json()):d(ds,w)}finally{d(qa,!1)}}async function fn(c){await Ye(`/api/arch/layers/${encodeURIComponent(c)}`,{method:"DELETE"}),await Vt()}async function Lo(c){await Ye(`/api/arch/rules/${encodeURIComponent(c)}`,{method:"DELETE"}),await Vt()}async function Mo(){if(e(It).name.trim()){d(Ot,!0);try{await Ye("/api/arch/layers",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:e(It).name.trim(),paths:e(It).paths.split(",").map(c=>c.trim()).filter(Boolean),description:e(It).description.trim()})}),d(It,{name:"",paths:"",description:""}),d(ia,!1),await Vt()}finally{d(Ot,!1)}}}async function Oo(){if(confirm("Reset graph to architecture defaults? This will overwrite your current layers and rules.")){d(Ot,!0);try{await Ye("/api/arch/reset",{method:"POST"}),d(cs,!1),d(ia,!1),d(oa,!1),await Vt()}finally{d(Ot,!1)}}}async function Ro(){if(!(!e(Ge).fromLayer||!e(Ge).toLayer||!e(Ge).name.trim())){d(Ot,!0);try{await Ye("/api/arch/rules",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e(Ge))}),d(Ge,{fromLayer:"",toLayer:"",name:"",allowed:!1,enforcement:"block"}),d(oa,!1),await Vt()}finally{d(Ot,!1)}}}const No=24*60*60*1e3,pn=640,hn=380,ks=110,Ks=38,Do={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"]},Po=()=>{var I,ae;const c=(ae=(I=e(g).runtime)==null?void 0:I.project.name)==null?void 0:ae.trim();if(c)return c;const w=jo("projectName");return w||"memory-core"},jo=c=>{var I;const w=(I=e(g).config)==null?void 0:I[c];return typeof w=="string"&&w.trim().length>0?w.trim():void 0};function zl(c){e(Va)||d(Bt,[{...c,id:crypto.randomUUID()},...e(Bt)].slice(0,80))}function _n(c){return c.type==="saved"?{type:"saved",timestamp:c.timestamp,file:c.file}:c.type==="clean"?{type:"clean",timestamp:c.timestamp,file:c.file}:c.type==="skipped"?{type:"skipped",timestamp:c.timestamp,file:c.file,reason:c.reason}:c.type==="violations"?{type:"violations",timestamp:c.timestamp,file:c.file,violations:c.violations}:c.type==="log"?{type:"log",timestamp:c.timestamp,file:c.file,message:c.message}:c.type==="error"?{type:"error",timestamp:c.timestamp,message:c.message}:c.type==="ready"?{type:"system",timestamp:c.timestamp,message:`Watching ${c.path} | ${c.rules} rules | ${c.model}`}:{type:"system",timestamp:c.timestamp,message:"Watch stopped"}}function Ul(c){const w=e(g).files??[],I=w.findIndex(Je=>Je.file===c.file),ae=w.slice();return I===-1?ae.push(c):ae[I]=c,ae.sort((Je,Jt)=>Jt.lastSeen.localeCompare(Je.lastSeen))}function Io(c){const w=e(g).watcher??{enabled:!0,running:!1,path:void 0,model:void 0,rules:void 0,lastEventAt:void 0,error:void 0};let I=e(g).files,ae={...w,lastEventAt:c.timestamp,enabled:!0};c.type==="ready"&&(ae={...ae,running:!0,error:void 0,path:c.path,model:c.model,rules:c.rules}),c.type==="saved"&&(I=Ul({file:c.file,status:"checking",lastSeen:c.timestamp,violations:[]})),c.type==="clean"&&(I=Ul({file:c.file,status:"clean",lastSeen:c.timestamp,violations:[]})),c.type==="skipped"&&(I=Ul({file:c.file,status:"skipped",lastSeen:c.timestamp,violations:[],message:c.reason})),c.type==="violations"&&(I=Ul({file:c.file,status:"violations",lastSeen:c.timestamp,violations:c.violations})),c.type==="error"&&(ae={...ae,running:!1,error:c.message}),c.type==="stopped"&&(ae={...ae,running:!1});const Je=[c,...e(g).events??[]].slice(0,100);d(g,{...e(g),files:I,events:Je,watcher:ae})}function _r(c=[]){d(Bt,c.map(_n).map(w=>({...w,id:crypto.randomUUID()})).reverse().slice(0,80))}function bn(c){return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date(c))}function mn(c,w){const I=c.file||w;return c.line?`${I}:${c.line}`:I}function $o(c){return c.type==="saved"?"SAVE":c.type==="clean"?"OK":c.type==="skipped"?"SKIP":c.type==="violations"?"FAIL":c.type==="log"?"CHCK":c.type==="error"?"WARN":"SYS"}function Fo(c){return c.type==="clean"?"label-ok":c.type==="violations"||c.type==="error"?"label-warn":c.type==="log"?"label-chck":c.type==="system"?"label-sys":"label-info"}async function Vt(){const c=await Ye(`/api/snapshot?t=${Date.now()}`,{cache:"no-store"});e(da)||(d(g,await c.json()),_r(e(g).events),dn||un())}async function Ho(){d(St,"");try{const c=await Ye("/api/refresh",{method:"POST",headers:{"content-type":"application/json"},cache:"no-store"});if(!c.ok)throw new Error((await c.json()).error??"Refresh failed");const w=await c.json();w.snapshot?(d(g,w.snapshot),_r(e(g).events)):await Vt()}catch(c){d(St,c.message)}}function Bo(){try{localStorage.clear(),sessionStorage.clear()}finally{location.reload()}}async function zo(){d(Il,!0),d(ra,"");try{const c=await Ye("/api/config/model",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e(pt))}),w=await c.json().catch(()=>({}));if(!c.ok)throw new Error(w.error??"Save failed");const I=Array.isArray(w.warnings)&&w.warnings.length>0?" — "+w.warnings.join("; "):"";d(ra,`✓ ${w.message??"Settings updated"}${I}`),await Vt()}catch(c){d(ra,`✗ ${c.message}`)}finally{d(Il,!1)}}async function br(c){d(na,c);try{await Ye(`/api/actions/${c}`,{method:"POST"}),zl({type:"system",timestamp:new Date().toISOString(),message:`Action started: memory-core ${c==="check-all"?"check --all":c}`})}catch{}finally{d(na,"")}}function gn(){const c=location.protocol==="https:"?"wss:":"ws:",w=new WebSocket(`${c}//${location.host}/ws`);w.addEventListener("open",()=>{d(Lt,!0),zl({type:"system",timestamp:new Date().toISOString(),message:"Dashboard connected"})}),w.addEventListener("close",()=>{d(Lt,!1),zl({type:"error",timestamp:new Date().toISOString(),message:"Dashboard disconnected"}),setTimeout(gn,1500)}),w.addEventListener("message",I=>{const ae=JSON.parse(I.data);if(ae.type==="snapshot"){d(g,ae.snapshot),e(Bt).length===0&&_r(e(g).events);return}if(ae.type==="stats"){d(g,{...e(g),stats:ae.stats});return}if(ae.type==="proposals-updated"){$l().catch(()=>{});return}ae.type==="watch"&&(Io(ae.event),zl(_n(ae.event)))})}async function Uo(){if(e(ft).content.trim()){d(la,!0),d(St,"");try{const c=await Ye("/api/memories",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e(ft))});if(!c.ok)throw new Error((await c.json()).error??"Save failed");d(ft,{type:"rule",scope:"project",content:"",reason:"",tags:"dashboard"}),await Vt()}catch(c){d(St,c.message)}finally{d(la,!1)}}}async function Vo(c){d(St,"");const w=await Ye(`/api/memories/${c}`,{method:"DELETE"});if(!w.ok){d(St,(await w.json()).error??"Delete failed");return}await Vt()}async function yn(c){d(xs,{...e(xs),[c]:!0}),d(St,"");try{const w=await Ye(`/api/memories/${c}/check`,{method:"POST"});if(!w.ok){const ae=await w.json().catch(()=>({error:"Unknown error"}));throw new Error(ae.error??`HTTP ${w.status}`)}const I=await w.json();d(xt,{...e(xt),[c]:I})}catch(w){d(St,w.message)}finally{d(xs,{...e(xs),[c]:!1})}}async function wn(c,w){d(es,{...e(es),[c]:!0}),d(St,"");try{const I=await Ye(`/api/memories/${c}/apply-suggestion`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({content:w})});if(!I.ok){const Jt=await I.json().catch(()=>({error:"Unknown error"}));throw new Error(Jt.error??`HTTP ${I.status}`)}const{[c]:ae,...Je}=e(xt);d(xt,Je),await Vt()}catch(I){d(St,I.message)}finally{d(es,{...e(es),[c]:!1})}}async function Wo(){d(Mt,!0),d(Ua,!1),d(St,"");const c=e(i).filter(I=>!e(xt)[I.id]);for(const I of c){if(e(Ua))break;await yn(I.id)}const w=e(i).map(I=>e(xt)[I.id]).filter(Boolean);d(Ve,{done:!0,total:w.length,valid:w.filter(I=>I.status==="valid").length,stale:w.filter(I=>I.status==="stale").length,duplicate:w.filter(I=>I.status==="duplicate").length,vague:w.filter(I=>I.status==="vague").length}),d(Mt,!1)}async function qo(){d(Mt,!0),d(St,"");const c=e(i).filter(w=>e(xt)[w.id]&&e(xt)[w.id].status!=="valid"&&e(xt)[w.id].suggestion);for(const w of c)await wn(w.id,e(xt)[w.id].suggestion);d(Ve,{done:!1,total:0,valid:0,stale:0,duplicate:0,vague:0}),d(Mt,!1)}let va=O(localStorage.getItem("mc-theme")!=="light");function Ko(){d(va,!e(va)),localStorage.setItem("mc-theme",e(va)?"dark":"light")}document.documentElement.setAttribute("data-theme",e(va)?"dark":"light");let Gs=localStorage.getItem("mc-auth-token"),fl=O(!1),Yt=O(null),da=O(!1),mr=O(""),gr=O(""),Vl=O(""),Wl=O(!1);async function Ye(c,w={}){const I=new Headers(w.headers);Gs&&I.set("authorization",`Bearer ${Gs}`);const ae=await fetch(c,{...w,headers:I});return ae.status===401&&e(fl)&&(Gs=null,localStorage.removeItem("mc-auth-token"),d(Yt,null),d(da,!0)),ae}async function Go(){try{const c=await fetch("/api/auth/me",{headers:Gs?{authorization:`Bearer ${Gs}`}:{}}),w=await c.json();d(fl,w.authEnabled??!1),c.ok&&w.user?(d(Yt,w.user),d(da,!1)):(d(Yt,null),e(fl)&&d(da,!0))}catch{}}async function Yo(){d(Wl,!0),d(Vl,"");try{const c=await fetch("/api/auth/login",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({email:e(mr),password:e(gr)})}),w=await c.json();if(!c.ok){d(Vl,w.error??"Login failed");return}Gs=w.token??null,Gs&&localStorage.setItem("mc-auth-token",Gs),d(Yt,w.user??null),d(da,!1),await Vt(),vl().catch(()=>{})}finally{d(Wl,!1)}}async function Jo(){await fetch("/api/auth/logout",{method:"POST"}).catch(()=>{}),Gs=null,localStorage.removeItem("mc-auth-token"),d(Yt,null),e(fl)&&d(da,!0)}Go().then(()=>{e(da)||(Vt().catch(c=>{d(St,c.message)}),vl().catch(()=>{}),$l().catch(()=>{}))}),gn(),tt(()=>(e(Ut),e(il),e(ol)),()=>{d(a,e(Ut).filter(c=>(!e(il)||c.source===e(il))&&(!e(ol)||c.confidence===e(ol))))}),tt(()=>(e(Hl),e(g)),()=>{d(l,e(Hl)?e(g).violationHistory??[]:(e(g).violationHistory??[]).filter(c=>!c.resolved))}),tt(()=>(e(g),e(Rs),e(qs)),()=>{d(i,e(g).memories.filter(c=>{const w=e(Rs)==="all"||c.type===e(Rs),I=`${c.type} ${c.scope} ${c.content} ${c.reason??""} ${c.tags.join(" ")}`.toLowerCase();return w&&I.includes(e(qs).toLowerCase())}))}),tt(()=>e(g),()=>{d(v,e(g).files.reduce((c,w)=>c+w.violations.length,0))}),tt(()=>e(g),()=>{d(f,e(g).files.filter(c=>c.status==="clean").length)}),tt(()=>e(g),()=>{d(b,Object.values(e(g).stats.rules).reduce((c,w)=>c+w,0))}),tt(()=>e(g),()=>{d(p,e(g).stats.recentViolations??[])}),tt(()=>e(p),()=>{d(h,e(p).filter(c=>{if(!(c.source==="hook"||c.source==="ci"))return!1;const w=Date.parse(c.timestamp);return Number.isNaN(w)?!1:Date.now()-w<=No}))}),tt(()=>e(v),()=>{d(x,e(v))}),tt(()=>e(g),()=>{d(H,e(g).files.filter(c=>c.status!=="checking").length)}),tt(()=>e(g),()=>{d(M,e(g).memories.filter(c=>["rule","pattern","decision"].includes(c.type)).length)}),tt(()=>e(g),()=>{var c;d(N,((c=e(g).memoryCount)==null?void 0:c.total)??e(g).memories.length)}),tt(()=>(e(Lt),e(g)),()=>{var c,w;d(S,e(Lt)?((c=e(g).watcher)==null?void 0:c.enabled)===!1?{live:!1,label:"Watch off"}:(w=e(g).watcher)!=null&&w.running?{live:!0,label:"Watcher live"}:{live:!1,label:"Watcher idle"}:{live:!1,label:"Disconnected"})}),tt(()=>e(g),()=>{var c;d(W,((c=e(g).arch)==null?void 0:c.layers)??[])}),tt(()=>e(g),()=>{var c;d(A,((c=e(g).arch)==null?void 0:c.rules)??[])}),tt(()=>(e(W),e(g)),()=>{d(se,(()=>{var ts,Ss,Rt,Ps;const c=e(W);if(c.length===0)return[];const w=((ts=e(g).runtime)==null?void 0:ts.project.backendArchitecture)??((Ss=e(g).runtime)==null?void 0:Ss.project.frontendFramework)??((Ps=(Rt=e(g).runtime)==null?void 0:Rt.project.activeArchitectures)==null?void 0:Ps[0])??"",I=Do[w]??["api","application","domain","infrastructure","shared"],ae=[...c].sort((ss,Ys)=>{const Sa=I.indexOf(ss.name)===-1?99:I.indexOf(ss.name),pl=I.indexOf(Ys.name)===-1?99:I.indexOf(Ys.name);return Sa-pl}),Je=Math.min(ae.length,3),Jt=Math.ceil(ae.length/Je),Ns=(pn-Je*ks)/(Je+1),Ds=(hn-Jt*Ks)/(Jt+1);return ae.map((ss,Ys)=>{const Sa=Ys%Je,pl=Math.floor(Ys/Je);return{name:ss.name,description:ss.description,x:Ns+Sa*(ks+Ns),y:Ds+pl*(Ks+Ds)}})})())}),tt(()=>(e(se),e(A)),()=>{d(qe,(()=>{const c=new Map(e(se).map(w=>[w.name,w]));return e(A).filter(w=>w.fromLayer!=="*"&&w.toLayer!=="*").map(w=>{const I=c.get(w.fromLayer),ae=c.get(w.toLayer);if(!I||!ae)return null;const Je=I.x+ks/2,Jt=I.y+Ks/2,Ns=ae.x+ks/2,Ds=ae.y+Ks/2,ts=Ns-Je,Ss=Ds-Jt,Rt=Math.sqrt(ts*ts+Ss*Ss)||1,Ps=Je+ts/Rt*(ks/2+4),ss=Jt+Ss/Rt*(Ks/2+4),Ys=Ns-ts/Rt*(ks/2+4),Sa=Ds-Ss/Rt*(Ks/2+4);return{r:w,sx:Ps,sy:ss,ex:Ys,ey:Sa}}).filter(Boolean)})())}),tt(()=>e(g),()=>{var c;d(Ne,((c=e(g).runtime)==null?void 0:c.postgres.connected)??!1)}),tt(()=>e(g),()=>{var c;d(wt,((c=e(g).runtime)==null?void 0:c.model.ollamaReachable)??!1)}),tt(()=>e(g),()=>{var c,w;d(is,(((c=e(g).runtime)==null?void 0:c.model.checkModelResolved)??((w=e(g).runtime)==null?void 0:w.model.chatModel)??"unknown").toUpperCase())}),tt(()=>e(g),()=>{var c,w;d(Ht,((c=e(g).runtime)==null?void 0:c.project.backendArchitecture)==="custom"||((w=e(g).runtime)==null?void 0:w.project.frontendFramework)==="custom")}),tt(()=>e(g),()=>{d(ut,(()=>{var ae,Je;const c=(ae=e(g).runtime)==null?void 0:ae.project.backendArchitecture,w=(Je=e(g).runtime)==null?void 0:Je.project.frontendFramework,I=[c?c==="custom"?"Custom":c:null,w?w==="custom"?"Custom":w:null].filter(Boolean);return I.length>0?I.join(" / "):null})())}),tt(()=>e(va),()=>{document.documentElement.setAttribute("data-theme",e(va)?"dark":"light")}),yd(),Yd();var xn=Is(),Xo=Ue(xn);{var Qo=c=>{var w=Qd(),I=n(w),ae=r(n(I),6);{var Je=Rt=>{var Ps=Xd(),ss=n(Ps);L(()=>_(ss,e(Vl))),y(Rt,Ps)};F(ae,Rt=>{e(Vl)&&Rt(Je)})}var Jt=r(ae,2),Ns=r(n(Jt),2),Ds=r(Ns,4),ts=r(Ds,2),Ss=n(ts);L(()=>{ts.disabled=e(Wl),_(Ss,e(Wl)?"Signing in…":"Sign in")}),$t(Ns,()=>e(mr),Rt=>d(mr,Rt)),$t(Ds,()=>e(gr),Rt=>d(gr,Rt)),z("submit",Jt,Zl(Yo)),y(c,w)},Zo=c=>{var w=Yf(),I=n(w),ae=n(I),Je=n(ae),Jt=n(Je),Ns=r(Je,2);{var Ds=E=>{var R=Zd(),le=n(R);L(()=>_(le,e(ut))),y(E,R)};F(Ns,E=>{e(ut)&&E(Ds)})}var ts=r(ae,2),Ss=r(n(ts),2),Rt=r(ts,2),Ps=n(Rt),ss=r(Ps,2),Ys=n(ss);{var Sa=E=>{var R=eu();y(E,R)},pl=E=>{var R=tu();y(E,R)};F(Ys,E=>{e(va)?E(Sa):E(pl,-1)})}var kn=r(I,2),Sn=n(kn),En=r(n(Sn),2),yr=n(En);let An;var ql=r(yr,2);let Tn;var ec=r(n(ql),2),tc=r(n(ec));{var sc=E=>{var R=su(),le=n(R);L(()=>_(le,(e(h),o(()=>e(h).length)))),y(E,R)};F(tc,E=>{e(h),o(()=>e(h).length>0)&&E(sc)})}var wr=r(ql,2);let Cn;var xr=r(wr,2);let Ln;var Kl=r(xr,2);let Mn;var ac=r(n(Kl),2),lc=r(n(ac));{var rc=E=>{var R=au(),le=n(R);L(()=>_(le,(e(g),o(()=>{var Ae;return(Ae=e(g).violationHistory)==null?void 0:Ae.length})))),y(E,R)};F(lc,E=>{e(g),o(()=>{var R;return(((R=e(g).violationHistory)==null?void 0:R.length)??0)>0})&&E(rc)})}var kr=r(Kl,2);let On;var Sr=r(kr,2);let Rn;var nc=r(n(Sr),2),ic=r(n(nc));{var oc=E=>{var R=lu(),le=n(R);L(()=>_(le,(e(Ut),o(()=>e(Ut).length)))),y(E,R)};F(ic,E=>{e(Ut),o(()=>e(Ut).length>0)&&E(oc)})}var cc=r(En,2),Nn=n(cc);{var vc=E=>{var R=ru(),le=n(R),Ae=n(le),$e=r(le,2),ge=n($e),De=r($e,2);L(Pe=>{pe(R,"title",`${e(Yt),o(()=>e(Yt).email)??""} [${e(Yt),o(()=>e(Yt).role)??""}]`),_(Ae,Pe),_(ge,(e(Yt),o(()=>e(Yt).username)))},[()=>(e(Yt),o(()=>e(Yt).username.slice(0,1).toUpperCase()))]),z("click",De,Jo),y(E,R)};F(Nn,E=>{e(fl)&&e(Yt)&&E(vc)})}var Dn=r(Nn,2);let Pn;var dc=r(Dn,2),uc=n(dc),fc=r(Sn,2),jn=n(fc),In=r(n(jn),2),pc=r(n(In),2),hc=n(pc),Er=r(In,2);let $n;var Fn=n(Er);let Hn;var _c=r(Fn,2),bc=n(_c),Ar=r(Er,2);let Bn;var zn=n(Ar);let Un;var mc=r(zn,2),gc=n(mc),Vn=r(Ar,2);{var yc=E=>{var R=nu(),le=r(n(R),2),Ae=n(le);L(()=>_(Ae,`${e(g),o(()=>{var $e;return($e=e(g).arch)==null?void 0:$e.pendingRules})??""} PENDING RULES`)),y(E,R)};F(Vn,E=>{e(g),o(()=>{var R;return(((R=e(g).arch)==null?void 0:R.pendingRules)??0)>0})&&E(yc)})}var Wn=r(Vn,2);{var wc=E=>{var R=iu();let le;var Ae=n(R);let $e;var ge=r(Ae,2),De=n(ge);L(Pe=>{le=ye(R,1,"health-badge svelte-d3ct2b",null,le,{"health-warn":e(Ht),"health-green":!e(Ht)}),$e=ye(Ae,1,"dot svelte-d3ct2b",null,$e,{"dot-warn":e(Ht),"dot-green":!e(Ht)}),_(De,`ARCH: ${Pe??""}${e(Ht)?" — ADD RULES":""}`)},[()=>(e(ut),o(()=>e(ut).toUpperCase()))]),y(E,R)};F(Wn,E=>{e(ut)&&E(wc)})}var qn=r(Wn,2);{var xc=E=>{var R=ou(),le=n(R);L(()=>_(le,(e(g),o(()=>e(g).dbError)))),y(E,R)};F(qn,E=>{e(g),o(()=>e(g).dbError)&&E(xc)})}var kc=r(qn,2);{var Sc=E=>{var R=cu(),le=n(R);L(()=>_(le,e(St))),y(E,R)};F(kc,E=>{e(St)&&E(Sc)})}var Kn=r(jn,2),Gn=n(Kn),Yn=n(Gn),Ec=r(n(Yn),2),Ac=r(Yn,4),Jn=n(Ac),Xn=r(n(Jn),2);let Qn;var Tc=n(Xn),Zn=r(Jn,2),Cc=r(n(Zn),2),Lc=n(Cc),Mc=r(Zn,2),Oc=r(n(Mc),2),Rc=n(Oc),Nc=r(Gn,2),ei=n(Nc),ti=n(ei);let si;var Dc=r(ti,2),Pc=n(Dc),hl=r(ei,2);let ai;var jc=n(hl);{var Ic=E=>{var R=vu();y(E,R)},$c=E=>{var R=du();y(E,R)};F(jc,E=>{e(Va)?E(Ic):E($c,-1)})}var Fc=r(hl,2),li=r(Kn,2),Hc=n(li);{var Bc=E=>{var R=Is(),le=Ue(R);{var Ae=ge=>{var De=pu(),Pe=r(Ue(De),4);{var Te=Le=>{var ve=uu();y(Le,ve)},C=Le=>{var ve=fu();y(Le,ve)};F(Pe,Le=>{e(Ht)?Le(Te):Le(C,-1)})}y(ge,De)},$e=ge=>{var De=Is(),Pe=Ue(De);st(Pe,1,()=>(e(Bt),o(()=>[...e(Bt)].reverse())),Te=>Te.id,(Te,C)=>{var Le=mu(),ve=Ue(Le);let P;var He=n(ve),at=n(He),me=r(He,2),Ze=n(me),lt=r(me,2),We=n(lt);{var Xe=V=>{var m=js();L(()=>_(m,(e(C),o(()=>e(C).message)))),y(V,m)},Be=V=>{var m=js();L(()=>_(m,`saved: ${e(C),o(()=>e(C).file)??""}`)),y(V,m)},et=V=>{var m=js();L(()=>_(m,`${e(C),o(()=>e(C).file)??""} — no violations`)),y(V,m)},ht=V=>{var m=js();L(()=>_(m,`${e(C),o(()=>e(C).file)??""} — skipped: ${e(C),o(()=>e(C).reason)??""}`)),y(V,m)},_t=V=>{var m=js();L(()=>_(m,`${e(C),o(()=>e(C).file)??""} — ${e(C),o(()=>e(C).message)??""}`)),y(V,m)},he=V=>{var m=js();L(()=>_(m,`${e(C),o(()=>e(C).violations.length)??""} violation${e(C),o(()=>e(C).violations.length===1?"":"s")??""} in ${e(C),o(()=>e(C).file)??""}`)),y(V,m)};F(We,V=>{e(C),o(()=>e(C).type==="system"||e(C).type==="error")?V(Xe):(e(C),o(()=>e(C).type==="saved")?V(Be,1):(e(C),o(()=>e(C).type==="clean")?V(et,2):(e(C),o(()=>e(C).type==="skipped")?V(ht,3):(e(C),o(()=>e(C).type==="log")?V(_t,4):V(he,-1)))))})}var Me=r(lt,2),Oe=r(ve,2);{var X=V=>{var m=Is(),Z=Ue(m);st(Z,3,()=>(e(C),o(()=>e(C).violations)),(G,U)=>`${e(C).id}-${U}`,(G,U,_e)=>{var te=bu(),je=n(te),j=n(je),T=r(je,2),ne=n(T),ue=n(ne),B=r(ne,2);{var q=Y=>{var ie=hu(),de=r(Ue(ie)),oe=n(de);L(()=>_(oe,(e(U),o(()=>e(U).rule)))),y(Y,ie)};F(B,Y=>{e(U),o(()=>e(U).rule)&&Y(q)})}var ee=r(B,2);{var Q=Y=>{var ie=js();L(()=>_(ie,`— ${e(U),o(()=>e(U).issue)??""}`)),y(Y,ie)};F(ee,Y=>{e(U),o(()=>e(U).issue)&&Y(Q)})}var re=r(ee,2);{var D=Y=>{var ie=_u(),de=r(Ue(ie)),oe=n(de);L(()=>_(oe,`→ ${e(U),o(()=>e(U).suggestion)??""}`)),y(Y,ie)};F(re,Y=>{e(U),o(()=>e(U).suggestion)&&Y(D)})}L(Y=>{_(j,`[${e(_e)+1}]`),_(ue,Y)},[()=>(e(U),e(C),o(()=>mn(e(U),e(C).file)))]),y(G,te)}),y(V,m)};F(Oe,V=>{e(C),o(()=>e(C).type==="violations")&&V(X)})}L((V,m,Z)=>{P=ye(ve,1,"log-row svelte-d3ct2b",null,P,{"log-row-warn":e(C).type==="error","log-row-ok":e(C).type==="clean","log-row-fail":e(C).type==="violations"}),_(at,V),ye(me,1,`log-label ${m??""}`,"svelte-d3ct2b"),_(Ze,`[${Z??""}]`)},[()=>(e(C),o(()=>bn(e(C).timestamp))),()=>(e(C),o(()=>Fo(e(C)))),()=>(e(C),o(()=>$o(e(C))))]),z("click",Me,()=>{var m;const V=e(C).type==="system"||e(C).type==="error"?e(C).message:e(C).type==="saved"?`saved: ${e(C).file}`:e(C).file;(m=navigator.clipboard)==null||m.writeText(V)}),y(Te,Le)}),y(ge,De)};F(le,ge=>{e(Bt),o(()=>e(Bt).length===0)?ge(Ae):ge($e,-1)})}y(E,R)},zc=E=>{var R=ku(),le=Ue(R),Ae=r(n(le),2),$e=n(Ae),ge=r(le,2);{var De=Te=>{var C=gu();y(Te,C)},Pe=Te=>{var C=Is(),Le=Ue(C);st(Le,3,()=>(e(h),o(()=>e(h).slice(0,20))),(ve,P)=>`${ve.timestamp}-${P}`,(ve,P)=>{var He=xu(),at=Ue(He),me=n(at),Ze=n(me),lt=r(me,2),We=n(lt),Xe=r(lt,2),Be=n(Xe),et=n(Be),ht=r(Be,2);{var _t=Oe=>{var X=js();L(V=>_(X,`— ${V??""}`),[()=>(e(P),o(()=>mn(e(P),e(P).file)))]),y(Oe,X)};F(ht,Oe=>{e(P),o(()=>e(P).file)&&Oe(_t)})}var he=r(at,2);{var Me=Oe=>{var X=wu(),V=r(n(X),2),m=n(V);{var Z=_e=>{var te=js();L(()=>_(te,(e(P),o(()=>e(P).issue)))),y(_e,te)};F(m,_e=>{e(P),o(()=>e(P).issue)&&_e(Z)})}var G=r(m,2);{var U=_e=>{var te=yu(),je=r(Ue(te)),j=n(je);L(()=>_(j,`→ ${e(P),o(()=>e(P).suggestion)??""}`)),y(_e,te)};F(G,_e=>{e(P),o(()=>e(P).suggestion)&&_e(U)})}y(Oe,X)};F(he,Oe=>{e(P),o(()=>e(P).issue||e(P).suggestion)&&Oe(Me)})}L(Oe=>{_(Ze,Oe),_(We,`[${e(P),o(()=>e(P).source==="ci"?"CI":"HOOK")??""}]`),_(et,(e(P),o(()=>e(P).rule)))},[()=>(e(P),o(()=>bn(e(P).timestamp)))]),y(ve,He)}),y(Te,C)};F(ge,Te=>{e(h),o(()=>e(h).length===0)?Te(De):Te(Pe,-1)})}L(()=>_($e,`${e(h),o(()=>e(h).length)??""} violation${e(h),o(()=>e(h).length===1?"":"s")??""} in last 24h`)),y(E,R)},Uc=E=>{var R=Fu(),le=Ue(R),Ae=r(n(le),2),$e=n(Ae),ge=r(le,2),De=n(ge),Pe=n(De);Pe.value=Pe.__value="all";var Te=r(Pe);Te.value=Te.__value="rule";var C=r(Te);C.value=C.__value="decision";var Le=r(C);Le.value=Le.__value="pattern";var ve=r(Le);ve.value=ve.__value="ignore";var P=r(De,2),He=r(P,2);{var at=j=>{const T=bt(()=>(e(i),o(()=>e(i).length))),ne=bt(()=>(Ie(e(T)),e(i),e(xt),o(()=>e(T)-e(i).filter(Y=>!e(xt)[Y.id]).length))),ue=bt(()=>(Ie(e(T)),Ie(e(ne)),o(()=>e(T)>0?Math.round(e(ne)/e(T)*100):0)));var B=Su(),q=Ue(B),ee=n(q),Q=r(ee,2),re=n(Q),D=r(q,2);L(()=>{ml(ee,`width:${e(ue)??""}%`),_(re,`${e(ne)??""}/${e(T)??""} (${e(ue)??""}%)`)}),z("click",D,()=>d(Ua,!0)),y(j,B)},me=j=>{var T=Eu();z("click",T,Wo),y(j,T)};F(He,j=>{e(Mt)?j(at):j(me,-1)})}var Ze=r(ge,2),lt=n(Ze),We=n(lt),Xe=n(We),Be=n(Xe);Be.value=Be.__value="rule";var et=r(Be);et.value=et.__value="decision";var ht=r(et);ht.value=ht.__value="pattern";var _t=r(ht);_t.value=_t.__value="ignore";var he=r(Xe,2),Me=n(he);Me.value=Me.__value="project";var Oe=r(Me);Oe.value=Oe.__value="global";var X=r(he,2),V=r(X,2),m=r(We,2),Z=n(m),G=r(Z,2),U=n(G),_e=r(Ze,2);{var te=j=>{const T=bt(()=>(e(Ve),o(()=>e(Ve).stale+e(Ve).duplicate+e(Ve).vague)));var ne=Mu(),ue=r(n(ne),2),B=n(ue),q=r(ue,2);{var ee=K=>{var ke=Au(),Fe=n(ke);L(()=>_(Fe,`${e(Ve),o(()=>e(Ve).stale)??""} stale`)),y(K,ke)};F(q,K=>{e(Ve),o(()=>e(Ve).stale>0)&&K(ee)})}var Q=r(q,2);{var re=K=>{var ke=Tu(),Fe=n(ke);L(()=>_(Fe,`${e(Ve),o(()=>e(Ve).duplicate)??""} duplicate`)),y(K,ke)};F(Q,K=>{e(Ve),o(()=>e(Ve).duplicate>0)&&K(re)})}var D=r(Q,2);{var Y=K=>{var ke=Cu(),Fe=n(ke);L(()=>_(Fe,`${e(Ve),o(()=>e(Ve).vague)??""} vague`)),y(K,ke)};F(D,K=>{e(Ve),o(()=>e(Ve).vague>0)&&K(Y)})}var ie=r(D,2);{var de=K=>{var ke=Lu(),Fe=n(ke);L(()=>{ke.disabled=e(Mt),_(Fe,e(Mt)?"Resolving…":`Resolve All (${e(T)})`)}),z("click",ke,qo),y(K,ke)};F(ie,K=>{e(T)>0&&K(de)})}var oe=r(ie,2);L(()=>_(B,`${e(Ve),o(()=>e(Ve).valid)??""} valid`)),z("click",oe,()=>d(Ve,{...e(Ve),done:!1})),y(j,ne)};F(_e,j=>{e(Ve),o(()=>e(Ve).done)&&j(te)})}var je=r(_e,2);st(je,5,()=>e(i),j=>j.id,(j,T)=>{var ne=ju(),ue=Ue(ne),B=n(ue),q=n(B),ee=r(B,2),Q=n(ee),re=r(ee,2),D=n(re),Y=r(re,2);{var ie=ce=>{var $=Ou(),Re=n($);L(()=>_(Re,(e(T),o(()=>e(T).reason)))),y(ce,$)};F(Y,ce=>{e(T),o(()=>e(T).reason)&&ce(ie)})}var de=r(Y,2),oe=n(de),K=r(de,2),ke=r(ue,2);{var Fe=ce=>{const $=bt(()=>(e(xt),e(T),o(()=>e(xt)[e(T).id])));var Re=Pu(),ze=n(Re),ct=n(ze),vt=r(ze,2),dt=n(vt),Et=r(vt,2),Wt=n(Et),Qe=r(Et,2);{var kt=Nt=>{var fe=Nu();st(fe,5,()=>(Ie(e($)),o(()=>e($).issues)),Tt,(rt,Es)=>{var xe=Ru(),Dt=n(xe);L(()=>_(Dt,e(Es))),y(rt,xe)}),y(Nt,fe)};F(Qe,Nt=>{Ie(e($)),o(()=>e($).issues.length>0)&&Nt(kt)})}var qt=r(Qe,2);{var Js=Nt=>{var fe=Du(),rt=r(n(fe),2),Es=n(rt),xe=r(rt,2),Dt=n(xe);L(()=>{_(Es,(Ie(e($)),o(()=>e($).suggestion))),xe.disabled=(e(es),e(T),o(()=>e(es)[e(T).id])),_(Dt,(e(es),e(T),o(()=>e(es)[e(T).id]?"Applying…":"Apply Suggestion")))}),z("click",xe,()=>wn(e(T).id,e($).suggestion)),y(Nt,fe)};F(qt,Nt=>{Ie(e($)),o(()=>e($).suggestion&&e($).status!=="valid")&&Nt(Js)})}L(Nt=>{ye(Re,1,`analyze-result analyze-${Ie(e($)),o(()=>e($).status)??""}`,"svelte-d3ct2b"),ye(ze,1,`analyze-badge analyze-badge-${Ie(e($)),o(()=>e($).status)??""}`,"svelte-d3ct2b"),_(ct,(Ie(e($)),o(()=>e($).status))),_(dt,`${Nt??""}%`),_(Wt,(Ie(e($)),o(()=>e($).reasoning)))},[()=>(Ie(e($)),o(()=>Math.round(e($).confidence*100)))]),y(ce,Re)};F(ke,ce=>{e(xt),e(T),o(()=>e(xt)[e(T).id])&&ce(Fe)})}L(()=>{_(q,(e(T),o(()=>e(T).type))),_(Q,(e(T),o(()=>e(T).scope))),_(D,(e(T),o(()=>e(T).content))),de.disabled=(e(xs),e(T),e(es),o(()=>e(xs)[e(T).id]||e(es)[e(T).id])),_(oe,(e(xs),e(T),o(()=>e(xs)[e(T).id]?"…":"🔍")))}),z("click",de,()=>yn(e(T).id)),z("click",K,()=>Vo(e(T).id)),y(j,ne)},j=>{var T=$u(),ne=n(T),ue=n(ne);{var B=ee=>{var Q=Iu();y(ee,Q)},q=ee=>{var Q=js("No rules match the current filters.");y(ee,Q)};F(ue,ee=>{e(Ht)&&e(M)===0?ee(B):ee(q,-1)})}y(j,T)}),L(j=>{_($e,`${e(M)??""} rules active`),G.disabled=j,_(U,e(la)?"Saving…":"+ Add Rule")},[()=>(e(la),e(ft),o(()=>e(la)||!e(ft).content.trim()))]),$s(De,()=>e(Rs),j=>d(Rs,j)),$t(P,()=>e(qs),j=>d(qs,j)),$s(Xe,()=>e(ft).type,j=>At(ft,e(ft).type=j)),$s(he,()=>e(ft).scope,j=>At(ft,e(ft).scope=j)),$t(X,()=>e(ft).reason,j=>At(ft,e(ft).reason=j)),$t(V,()=>e(ft).tags,j=>At(ft,e(ft).tags=j)),$t(Z,()=>e(ft).content,j=>At(ft,e(ft).content=j)),z("submit",lt,Zl(Uo)),y(E,R)},Vc=E=>{var R=df(),le=Ue(R),Ae=r(n(le),2),$e=n(Ae),ge=r(Ae,2);let De;var Pe=n(ge),Te=r(ge,2),C=n(Te),Le=r(Te,2);let ve;var P=n(Le),He=r(le,2);{var at=We=>{var Xe=Vu(),Be=n(Xe),et=n(Be),ht=r(et,2),_t=n(ht),he=r(ht,2),Me=n(he),Oe=r(he,2);{var X=G=>{var U=Hu(),_e=n(U);L(()=>_(_e,e(Wa))),y(G,U)};F(Oe,G=>{e(Wa)&&G(X)})}var V=r(Be,2);{var m=G=>{var U=Bu();y(G,U)},Z=G=>{var U=Uu();st(U,5,()=>e(ca),Tt,(_e,te)=>{var je=zu(),j=n(je),T=n(j),ne=r(j,2),ue=n(ne),B=r(ne,2),q=r(B,2);L(()=>{_(T,(e(te),o(()=>e(te).name))),_(ue,`${e(te),o(()=>e(te).arch_type)??""}${e(te),o(()=>e(te).project_name?` · ${e(te).project_name}`:" · global")??""} · ${e(te),o(()=>e(te).layers.length)??""} layers · ${e(te),o(()=>e(te).rules.length)??""} rules`),B.disabled=e(Ot)}),z("click",B,()=>Eo(e(te).id)),z("click",q,()=>Ao(e(te).id)),y(_e,je)}),y(G,U)};F(V,G=>{e(ca),o(()=>e(ca).length===0)?G(m):G(Z,-1)})}L(G=>{he.disabled=G,_(Me,e(cl)?"…":"↑ Save current")},[()=>(e(cl),e(ka),o(()=>e(cl)||!e(ka).trim()))]),$t(et,()=>e(ka),G=>d(ka,G)),z("keydown",et,G=>G.key==="Enter"&&cn()),Mi(_t,()=>e(hr),G=>d(hr,G)),z("click",he,cn),y(We,Xe)};F(He,We=>{e(Fl)&&We(at)})}var me=r(He,2);{var Ze=We=>{var Xe=Wu();y(We,Xe)},lt=We=>{var Xe=vf(),Be=n(Xe);pe(Be,"width",pn),pe(Be,"height",hn);var et=r(n(Be));st(et,1,()=>e(qe),Tt,(V,m)=>{var Z=Is(),G=Ue(Z);{var U=_e=>{const te=bt(()=>(e(m),o(()=>e(m).r.allowed?"var(--green)":e(m).r.enforcement==="warn"?"#f59e0b":"var(--error)"))),je=bt(()=>(e(m),o(()=>e(m).r.allowed?"arrow-allow":e(m).r.enforcement==="warn"?"arrow-warn":"arrow-block"))),j=bt(()=>(e(m),o(()=>e(m).r.allowed?"6,3":e(m).r.enforcement==="warn"?"4,3":"none")));var T=qu();L(()=>{pe(T,"x1",(e(m),o(()=>e(m).sx))),pe(T,"y1",(e(m),o(()=>e(m).sy))),pe(T,"x2",(e(m),o(()=>e(m).ex))),pe(T,"y2",(e(m),o(()=>e(m).ey))),pe(T,"stroke",e(te)),pe(T,"stroke-dasharray",e(j)),pe(T,"marker-end",`url(#${e(je)??""})`)}),y(_e,T)};F(G,_e=>{e(m)&&_e(U)})}y(V,Z)});var ht=r(et);st(ht,1,()=>e(se),Tt,(V,m)=>{var Z=Gu();let G;var U=n(Z);pe(U,"width",ks),pe(U,"height",Ks);var _e=r(U),te=n(_e),je=r(_e),j=n(je),T=r(je);{var ne=ue=>{var B=Ku(),q=Ue(B),ee=r(q);L(()=>{pe(q,"cx",(e(m),o(()=>e(m).x+ks-2))),pe(q,"cy",(e(m),o(()=>e(m).y+2))),pe(ee,"x",(e(m),o(()=>e(m).x+ks-2))),pe(ee,"y",(e(m),o(()=>e(m).y+6)))}),z("click",q,Gd(()=>fn(e(m).name))),z("keydown",q,Q=>{Q.key==="Enter"&&fn(e(m).name)}),y(ue,B)};F(T,ue=>{e(cs)&&ue(ne)})}L(ue=>{G=ye(Z,0,"arch-node arch-node-clickable svelte-d3ct2b",null,G,{"arch-node-selected":e(zt)===e(m).name}),pe(Z,"aria-label",`Show files in ${e(m),o(()=>e(m).name)??""} layer`),pe(U,"x",(e(m),o(()=>e(m).x))),pe(U,"y",(e(m),o(()=>e(m).y))),ye(U,0,`arch-node-rect arch-node-${e(m),o(()=>e(m).name)??""}`,"svelte-d3ct2b"),pe(U,"stroke-width",(e(zt),e(m),o(()=>e(zt)===e(m).name?2.5:1.5))),pe(_e,"x",(e(m),o(()=>e(m).x+ks/2))),pe(_e,"y",(e(m),o(()=>e(m).y+Ks/2-5))),_(te,(e(m),o(()=>e(m).name))),pe(je,"x",(e(m),o(()=>e(m).x+ks/2))),pe(je,"y",(e(m),o(()=>e(m).y+Ks/2+9))),_(j,ue)},[()=>(e(m),o(()=>e(m).description.length>18?e(m).description.slice(0,16)+"…":e(m).description))]),z("click",Z,()=>{e(cs)||d(zt,e(zt)===e(m).name?null:e(m).name)}),z("keydown",Z,ue=>{!e(cs)&&(ue.key==="Enter"||ue.key===" ")&&d(zt,e(zt)===e(m).name?null:e(m).name)}),y(V,Z)});var _t=r(Be,4);{var he=V=>{const m=bt(()=>(e(W),e(zt),o(()=>e(W).find(B=>B.name===e(zt)))));var Z=Zu(),G=n(Z),U=n(G),_e=n(U),te=r(U,2),je=n(te),j=r(te,2),T=r(G,2);{var ne=B=>{var q=Ju(),ee=r(n(q),2);st(ee,1,()=>(Ie(e(m)),o(()=>e(m).paths)),Tt,(Q,re)=>{var D=Yu(),Y=n(D);L(()=>_(Y,e(re))),y(Q,D)}),y(B,q)};F(T,B=>{Ie(e(m)),o(()=>{var q,ee;return(ee=(q=e(m))==null?void 0:q.paths)==null?void 0:ee.length})&&B(ne)})}var ue=r(T,2);st(ue,1,()=>(e(A),e(zt),o(()=>[e(A).filter(B=>B.fromLayer===e(zt)||B.toLayer===e(zt))])),Tt,(B,q)=>{var ee=Is(),Q=Ue(ee);{var re=D=>{var Y=Qu(),ie=r(n(Y),2);st(ie,1,()=>e(q),Tt,(de,oe)=>{var K=Xu(),ke=n(K);let Fe;var ce=n(ke),$=r(ke,2),Re=n($);L(ze=>{Fe=ye(ke,1,"arch-rule-badge svelte-d3ct2b",null,Fe,{"badge-block":!e(oe).allowed&&e(oe).enforcement==="block","badge-warn":!e(oe).allowed&&e(oe).enforcement==="warn","badge-allow":e(oe).allowed}),_(ce,ze),_(Re,`${e(oe),o(()=>e(oe).fromLayer)??""} → ${e(oe),o(()=>e(oe).toLayer)??""} — ${e(oe),o(()=>e(oe).name)??""}`)},[()=>(e(oe),o(()=>e(oe).enforcement.toUpperCase()))]),y(de,K)}),y(D,Y)};F(Q,D=>{e(q),o(()=>e(q).length)&&D(re)})}y(B,ee)}),L(()=>{_(_e,e(zt)),_(je,(Ie(e(m)),o(()=>{var B;return((B=e(m))==null?void 0:B.description)??""})))}),z("click",j,()=>d(zt,null)),y(V,Z)};F(_t,V=>{e(zt)&&V(he)})}var Me=r(_t,2);st(Me,5,()=>e(A),Tt,(V,m)=>{var Z=tf(),G=n(Z);let U;var _e=n(G),te=r(G,2),je=n(te),j=r(te,2),T=n(j),ne=r(j,2);{var ue=B=>{var q=ef();z("click",q,()=>Lo(e(m).id)),y(B,q)};F(ne,B=>{e(cs)&&B(ue)})}L(B=>{U=ye(G,1,"arch-rule-badge svelte-d3ct2b",null,U,{"badge-block":!e(m).allowed&&e(m).enforcement==="block","badge-warn":!e(m).allowed&&e(m).enforcement==="warn","badge-allow":e(m).allowed}),_(_e,B),_(je,`${e(m),o(()=>e(m).fromLayer)??""} → ${e(m),o(()=>e(m).toLayer)??""}`),_(T,(e(m),o(()=>e(m).name)))},[()=>(e(m),o(()=>e(m).enforcement.toUpperCase()))]),y(V,Z)});var Oe=r(Me,2);{var X=V=>{var m=cf(),Z=Ue(m);{var G=j=>{var T=sf(),ne=r(n(T),2),ue=n(ne),B=r(n(ue),2),q=r(ue,2),ee=r(n(q),2),Q=r(q,2),re=r(n(Q),2),D=r(Q,2),Y=n(D),ie=r(D,2);L(de=>{D.disabled=de,_(Y,e(Ot)?"…":"Add")},[()=>(e(Ot),e(It),o(()=>e(Ot)||!e(It).name.trim()))]),$t(B,()=>e(It).name,de=>At(It,e(It).name=de)),$t(ee,()=>e(It).paths,de=>At(It,e(It).paths=de)),$t(re,()=>e(It).description,de=>At(It,e(It).description=de)),z("click",ie,()=>d(ia,!1)),z("submit",T,Zl(Mo)),y(j,T)},U=j=>{var T=af();z("click",T,()=>{d(ia,!0),d(oa,!1)}),y(j,T)};F(Z,j=>{e(ia)?j(G):j(U,-1)})}var _e=r(Z,2);{var te=j=>{var T=nf(),ne=r(n(T),2),ue=n(ne),B=r(n(ue),2),q=n(B);q.value=q.__value="";var ee=r(q);st(ee,1,()=>e(W),Tt,(Qe,kt)=>{var qt=lf(),Js=n(qt),Nt={};L(()=>{_(Js,(e(kt),o(()=>e(kt).name))),Nt!==(Nt=(e(kt),o(()=>e(kt).name)))&&(qt.value=(qt.__value=(e(kt),o(()=>e(kt).name)))??"")}),y(Qe,qt)});var Q=r(ee);Q.value=Q.__value="*";var re=r(ue,2),D=r(n(re),2),Y=n(D);Y.value=Y.__value="";var ie=r(Y);st(ie,1,()=>e(W),Tt,(Qe,kt)=>{var qt=rf(),Js=n(qt),Nt={};L(()=>{_(Js,(e(kt),o(()=>e(kt).name))),Nt!==(Nt=(e(kt),o(()=>e(kt).name)))&&(qt.value=(qt.__value=(e(kt),o(()=>e(kt).name)))??"")}),y(Qe,qt)});var de=r(ie);de.value=de.__value="*";var oe=r(re,2),K=r(n(oe),2),ke=r(oe,2),Fe=r(n(ke),2),ce=n(Fe);ce.value=ce.__value="block";var $=r(ce);$.value=$.__value="warn";var Re=r(ke,2),ze=r(n(Re),2),ct=n(ze);ct.value=ct.__value=!1;var vt=r(ct);vt.value=vt.__value=!0;var dt=r(Re,2),Et=n(dt),Wt=r(dt,2);L(Qe=>{dt.disabled=Qe,_(Et,e(Ot)?"…":"Add")},[()=>(e(Ot),e(Ge),o(()=>e(Ot)||!e(Ge).fromLayer||!e(Ge).toLayer||!e(Ge).name.trim()))]),$s(B,()=>e(Ge).fromLayer,Qe=>(At(Ge,e(Ge).fromLayer=Qe),_l(()=>{e(W)}))),$s(D,()=>e(Ge).toLayer,Qe=>(At(Ge,e(Ge).toLayer=Qe),_l(()=>{e(W)}))),$t(K,()=>e(Ge).name,Qe=>(At(Ge,e(Ge).name=Qe),_l(()=>{e(W)}))),$s(Fe,()=>e(Ge).enforcement,Qe=>(At(Ge,e(Ge).enforcement=Qe),_l(()=>{e(W)}))),$s(ze,()=>e(Ge).allowed,Qe=>(At(Ge,e(Ge).allowed=Qe),_l(()=>{e(W)}))),z("click",Wt,()=>d(oa,!1)),z("submit",T,Zl(Ro)),y(j,T)},je=j=>{var T=of();z("click",T,()=>{d(oa,!0),d(ia,!1)}),y(j,T)};F(_e,j=>{e(oa)?j(te):j(je,-1)})}y(V,m)};F(Oe,V=>{e(cs)&&V(X)})}y(We,Xe)};F(me,We=>{e(W),o(()=>e(W).length===0)?We(Ze):We(lt,-1)})}L(()=>{_($e,`${e(W),o(()=>e(W).length)??""} layers · ${e(A),o(()=>e(A).length)??""} rules`),De=ye(ge,1,"arch-edit-btn svelte-d3ct2b",null,De,{"arch-edit-btn-active":e(cs)}),_(Pe,e(cs)?"Done":"Edit Graph"),Te.disabled=e(Ot),_(C,e(Ot)?"…":"↺ Reset"),ve=ye(Le,1,"arch-edit-btn svelte-d3ct2b",null,ve,{"arch-edit-btn-active":e(Fl)}),_(P,`⊞ Profiles${e(ca),o(()=>e(ca).length>0?` (${e(ca).length})`:"")??""}`)}),z("click",ge,()=>{d(cs,!e(cs)),d(ia,!1),d(oa,!1)}),z("click",Te,Oo),z("click",Le,()=>{d(Fl,!e(Fl)),d(Wa,"")}),y(E,R)},Wc=E=>{var R=mf(),le=Ue(R),Ae=r(n(le),2),$e=n(Ae),ge=r(Ae,2),De=n(ge),Pe=r(ge,2),Te=n(Pe),C=r(le,2);{var Le=P=>{var He=uf(),at=r(n(He),2),me=n(at);L(()=>_(me,(e(g),o(()=>{var Ze;return(Ze=e(g).violationHistory)!=null&&Ze.length?"All violations resolved.":"No violations recorded yet."})))),y(P,He)},ve=P=>{var He=bf();st(He,5,()=>e(l),Tt,(at,me)=>{var Ze=_f();let lt;var We=n(Ze),Xe=n(We),Be=n(Xe),et=r(Xe,2),ht=n(et),_t=r(et,2);{var he=m=>{var Z=ff(),G=n(Z);L(U=>_(G,`✓ Resolved${U??""}`),[()=>(e(me),o(()=>e(me).resolvedAt?" "+new Date(e(me).resolvedAt).toLocaleTimeString():""))]),y(m,Z)};F(_t,m=>{e(me),o(()=>e(me).resolved)&&m(he)})}var Me=r(_t,2);let Oe;var X=n(Me),V=r(We,2);st(V,1,()=>(e(me),o(()=>e(me).violations)),Tt,(m,Z)=>{var G=hf(),U=n(G),_e=n(U),te=r(U,2),je=n(te),j=r(te,2);{var T=ne=>{var ue=pf(),B=n(ue);L(()=>_(B,`— ${e(Z),o(()=>e(Z).issue)??""}`)),y(ne,ue)};F(j,ne=>{e(Z),o(()=>e(Z).issue)&&ne(T)})}L(ne=>{_(_e,ne),_(je,(e(Z),o(()=>e(Z).rule)))},[()=>(e(Z),o(()=>{var ne;return((ne=e(Z).decision)==null?void 0:ne.toUpperCase())??"VIOLATION"}))]),y(m,G)}),L(m=>{lt=ye(Ze,1,"history-entry svelte-d3ct2b",null,lt,{"history-entry-resolved":e(me).resolved}),_(Be,(e(me),o(()=>e(me).file))),_(ht,m),Oe=ye(Me,1,"history-resolve-btn svelte-d3ct2b",null,Oe,{"history-resolve-btn-active":e(me).resolved}),pe(Me,"title",(e(me),o(()=>e(me).resolved?"Mark unresolved":"Mark as resolved"))),_(X,(e(me),o(()=>e(me).resolved?"↩ Unresolve":"✓ Resolve")))},[()=>(e(me),o(()=>new Date(e(me).timestamp).toLocaleString()))]),z("click",Me,()=>Co(e(me).timestamp)),y(at,Ze)}),y(P,He)};F(C,P=>{e(l),o(()=>!e(l).length)?P(Le):P(ve,-1)})}L(()=>{_($e,`${e(g),o(()=>{var P;return((P=e(g).violationHistory)==null?void 0:P.length)??0})??""} entries`),Pe.disabled=(e(ul),e(g),o(()=>{var P;return e(ul)||!((P=e(g).violationHistory)!=null&&P.length)})),_(Te,e(ul)?"…":"✕ Clear all")}),Mi(De,()=>e(Hl),P=>d(Hl,P)),z("click",Pe,To),y(E,R)},qc=E=>{var R=jf(),le=Ue(R),Ae=r(n(le),2);{var $e=ve=>{var P=gf(),He=n(P);L(()=>_(He,`${e(we),o(()=>e(we).summary.total)??""} total violations · ${e(we),o(()=>e(we).summary.uniqueFiles)??""} files`)),y(ve,P)};F(Ae,ve=>{e(we)&&ve($e)})}var ge=r(Ae,2),De=n(ge),Pe=r(le,2);{var Te=ve=>{var P=yf();y(ve,P)},C=ve=>{var P=wf();y(ve,P)},Le=ve=>{var P=Pf(),He=Ue(P),at=n(He),me=n(at),Ze=n(me),lt=r(at,2),We=n(lt),Xe=n(We),Be=r(lt,2),et=n(Be),ht=n(et),_t=r(Be,2),he=n(_t),Me=n(he),Oe=r(He,2),X=n(Oe);let V;var m=r(X,2);let Z;var G=r(m,2);let U;var _e=r(G,2);let te;var je=r(Oe,2);{var j=B=>{const q=bt(()=>(e(we),o(()=>Math.max(1,...e(we).trends.map(ce=>ce.violations))))),ee=bt(()=>600),Q=bt(()=>140),re=bt(()=>32),D=bt(()=>(e(we),Ie(e(re)),Ie(e(ee)),Ie(e(Q)),Ie(e(q)),o(()=>e(we).trends.map((ce,$)=>({x:e(re)+$/(e(we).trends.length-1||1)*(e(ee)-e(re)*2),y:e(Q)-e(re)-ce.violations/e(q)*(e(Q)-e(re)*2),t:ce})))));var Y=Ef(),ie=n(Y);pe(ie,"viewBox",`0 0 ${e(ee)??""} ${e(Q)??""}`);var de=n(ie);st(de,0,()=>[0,.25,.5,.75,1],Tt,(ce,$)=>{var Re=xf(),ze=Ue(Re);pe(ze,"x1",e(re)),pe(ze,"x2",e(ee)-e(re));var ct=r(ze);pe(ct,"x",e(re)-4);var vt=n(ct);L(dt=>{pe(ze,"y1",e(Q)-e(re)-$*(e(Q)-e(re)*2)),pe(ze,"y2",e(Q)-e(re)-$*(e(Q)-e(re)*2)),pe(ct,"y",e(Q)-e(re)-$*(e(Q)-e(re)*2)+4),_(vt,dt)},[()=>(Ie(e(q)),o(()=>Math.round(e(q)*$)))]),y(ce,Re)});var oe=r(de,2),K=r(oe),ke=r(K);st(ke,1,()=>e(D),Tt,(ce,$)=>{var Re=Is(),ze=Ue(Re);{var ct=vt=>{var dt=kf(),Et=n(dt),Wt=n(Et);L(()=>{pe(dt,"cx",(e($),o(()=>e($).x))),pe(dt,"cy",(e($),o(()=>e($).y))),_(Wt,`${e($),o(()=>e($).t.date)??""}: ${e($),o(()=>e($).t.violations)??""} violations, ${e($),o(()=>e($).t.files)??""} files`)}),y(vt,dt)};F(ze,vt=>{e($),o(()=>e($).t.violations>0)&&vt(ct)})}y(ce,Re)});var Fe=r(ke);st(Fe,1,()=>(Ie(e(D)),o(()=>e(D).filter((ce,$)=>$%7===0||$===e(D).length-1))),Tt,(ce,$)=>{var Re=Sf();pe(Re,"y",e(Q)-4);var ze=n(Re);L(ct=>{pe(Re,"x",(e($),o(()=>e($).x))),_(ze,ct)},[()=>(e($),o(()=>e($).t.date.slice(5)))]),y(ce,Re)}),L((ce,$)=>{pe(oe,"points",`${ce??""} ${Ie(e(D)),o(()=>e(D)[e(D).length-1].x)??""},${e(Q)-e(re)} ${Ie(e(D)),o(()=>e(D)[0].x)??""},${e(Q)-e(re)}`),pe(K,"points",$)},[()=>(Ie(e(D)),o(()=>e(D).map(ce=>`${ce.x},${ce.y}`).join(" "))),()=>(Ie(e(D)),o(()=>e(D).map(ce=>`${ce.x},${ce.y}`).join(" ")))]),y(B,Y)},T=B=>{var q=Is(),ee=Ue(q);{var Q=D=>{var Y=Af();y(D,Y)},re=D=>{const Y=bt(()=>(e(we),o(()=>Math.max(1,...e(we).fileHeat.map(oe=>oe.count)))));var ie=Cf(),de=r(n(ie),2);st(de,1,()=>(e(we),o(()=>e(we).fileHeat)),Tt,(oe,K)=>{const ke=bt(()=>(e(K),Ie(e(Y)),o(()=>e(K).count/e(Y)*100)));var Fe=Tf(),ce=n(Fe),$=n(ce),Re=r(ce,2),ze=n(Re),ct=r(ze,2),vt=n(ct),dt=r(Re,2),Et=n(dt),Wt=r(dt,2),Qe=n(Wt);L((kt,qt,Js)=>{pe(ce,"title",(e(K),o(()=>e(K).file))),_($,kt),ml(ze,`width:${e(ke)??""}%; background: hsl(${qt??""},70%,45%)`),_(vt,(e(K),o(()=>e(K).count))),_(Et,(e(K),o(()=>e(K).resolved>0?`✓ ${e(K).resolved}`:"—"))),_(Qe,Js)},[()=>(e(K),o(()=>e(K).file.split("/").slice(-2).join("/"))),()=>(Ie(e(ke)),o(()=>Math.round(120-e(ke)*1.2))),()=>(e(K),o(()=>new Date(e(K).lastViolation).toLocaleDateString()))]),y(oe,Fe)}),y(D,ie)};F(ee,D=>{e(we),o(()=>e(we).fileHeat.length===0)?D(Q):D(re,-1)})}y(B,q)},ne=B=>{const q=bt(()=>(e(we),o(()=>Math.max(1,...e(we).ruleEffectiveness.map(re=>re.hitCount)))));var ee=Of(),Q=r(n(ee),2);st(Q,1,()=>(e(we),o(()=>e(we).ruleEffectiveness)),Tt,(re,D)=>{var Y=Mf();let ie;var de=n(Y),oe=n(de),K=r(de,2),ke=n(K),Fe=r(K,2),ce=n(Fe);{var $=Et=>{var Wt=Lf();L(()=>ml(Wt,`width:${e(D),Ie(e(q)),o(()=>e(D).hitCount/e(q)*100)??""}%; background:var(--error)`)),y(Et,Wt)};F(ce,Et=>{e(D),o(()=>e(D).hitCount>0)&&Et($)})}var Re=r(ce,2);let ze;var ct=n(Re),vt=r(Fe,2),dt=n(vt);L(Et=>{ie=ye(Y,1,"an-heat-row svelte-d3ct2b",null,ie,{"an-row-dead":e(D).hitCount===0}),_(oe,(e(D),o(()=>e(D).name))),_(ke,`${e(D),o(()=>e(D).fromLayer)??""} → ${e(D),o(()=>e(D).toLayer)??""}`),ze=ye(Re,1,"an-heat-count svelte-d3ct2b",null,ze,{"an-dead-count":e(D).hitCount===0}),_(ct,(e(D),o(()=>e(D).hitCount===0?"never fired":e(D).hitCount))),_(dt,Et)},[()=>(e(D),o(()=>e(D).lastFired?new Date(e(D).lastFired).toLocaleDateString():"—"))]),y(re,Y)}),y(B,ee)},ue=B=>{var q=Is(),ee=Ue(q);{var Q=D=>{var Y=Rf();y(D,Y)},re=D=>{const Y=bt(()=>(e(we),o(()=>Math.max(1,...e(we).teamActivity.map(oe=>oe.violations)))));var ie=Df(),de=r(n(ie),2);st(de,1,()=>(e(we),o(()=>e(we).teamActivity)),Tt,(oe,K)=>{var ke=Nf(),Fe=n(ke),ce=n(Fe),$=r(Fe,2),Re=n($),ze=r(Re,2),ct=n(ze),vt=r($,2),dt=n(vt),Et=r(vt,2),Wt=n(Et);L(Qe=>{_(ce,(e(K),o(()=>e(K).author))),ml(Re,`width:${e(K),Ie(e(Y)),o(()=>e(K).violations/e(Y)*100)??""}%; background:var(--tertiary)`),_(ct,(e(K),o(()=>e(K).violations))),_(dt,(e(K),o(()=>e(K).files))),_(Wt,Qe)},[()=>(e(K),o(()=>new Date(e(K).lastSeen).toLocaleDateString()))]),y(oe,ke)}),y(D,ie)};F(ee,D=>{e(we),o(()=>e(we).teamActivity.length===0)?D(Q):D(re,-1)})}y(B,q)};F(je,B=>{e(vs)==="trends"?B(j):e(vs)==="heatmap"?B(T,1):e(vs)==="rules"?B(ne,2):e(vs)==="team"&&B(ue,3)})}L(()=>{_(Ze,(e(we),o(()=>e(we).summary.total))),_(Xe,(e(we),o(()=>e(we).summary.open))),_(ht,(e(we),o(()=>e(we).summary.resolved))),_(Me,(e(we),o(()=>e(we).summary.uniqueFiles))),V=ye(X,1,"an-tab svelte-d3ct2b",null,V,{"an-tab-active":e(vs)==="trends"}),Z=ye(m,1,"an-tab svelte-d3ct2b",null,Z,{"an-tab-active":e(vs)==="heatmap"}),U=ye(G,1,"an-tab svelte-d3ct2b",null,U,{"an-tab-active":e(vs)==="rules"}),te=ye(_e,1,"an-tab svelte-d3ct2b",null,te,{"an-tab-active":e(vs)==="team"})}),z("click",X,()=>d(vs,"trends")),z("click",m,()=>d(vs,"heatmap")),z("click",G,()=>d(vs,"rules")),z("click",_e,()=>d(vs,"team")),y(ve,P)};F(Pe,ve=>{e(dl)?ve(Te):e(we)?ve(Le,-1):ve(C,1)})}L(()=>{ge.disabled=e(dl),_(De,e(dl)?"…":"⟳ Refresh")}),z("click",ge,vn),y(E,R)},Kc=E=>{var R=Wf(),le=Ue(R),Ae=r(n(le),2);{var $e=he=>{var Me=If(),Oe=n(Me);L(()=>_(Oe,`${e(a),o(()=>e(a).length)??""}/${e(Ut),o(()=>e(Ut).length)??""} pending`)),y(he,Me)};F(Ae,he=>{e(Ut),o(()=>e(Ut).length>0)&&he($e)})}var ge=r(Ae,2),De=n(ge);De.value=De.__value="";var Pe=r(De);Pe.value=Pe.__value="test";var Te=r(Pe);Te.value=Te.__value="bugfix";var C=r(Te);C.value=C.__value="incident";var Le=r(C);Le.value=Le.__value="pr-review";var ve=r(Le);ve.value=ve.__value="watch";var P=r(ge,2),He=n(P);He.value=He.__value="";var at=r(He);at.value=at.__value="high";var me=r(at);me.value=me.__value="medium";var Ze=r(me);Ze.value=Ze.__value="low";var lt=r(P,2),We=n(lt),Xe=r(le,2);{var Be=he=>{var Me=$f();y(he,Me)},et=he=>{var Me=Ff();y(he,Me)},ht=he=>{var Me=Hf();y(he,Me)},_t=he=>{var Me=Vf();st(Me,5,()=>e(a),Oe=>Oe.id,(Oe,X)=>{var V=Uf(),m=n(V),Z=n(m),G=n(Z),U=r(Z,2),_e=n(U),te=r(U,2),je=n(te),j=r(m,2),T=n(j),ne=r(j,2);{var ue=ie=>{var de=Bf(),oe=n(de);L(()=>_(oe,(e(X),o(()=>e(X).rule.description)))),y(ie,de)};F(ne,ie=>{e(X),o(()=>e(X).rule.description!==e(X).rule.name)&&ie(ue)})}var B=r(ne,2);{var q=ie=>{var de=zf(),oe=n(de);L(()=>_(oe,(e(X),o(()=>e(X).evidence)))),y(ie,de)};F(B,ie=>{e(X),o(()=>e(X).evidence)&&ie(q)})}var ee=r(B,2),Q=n(ee),re=n(Q),D=r(Q,2),Y=n(D);L((ie,de)=>{_(G,ie),ye(U,1,`proposal-confidence confidence-${e(X),o(()=>e(X).confidence)??""}`,"svelte-d3ct2b"),_(_e,(e(X),o(()=>e(X).confidence))),_(je,de),_(T,(e(X),o(()=>e(X).rule.name))),Q.disabled=(e(os),e(X),o(()=>!!e(os)[e(X).id])),_(re,(e(os),e(X),o(()=>e(os)[e(X).id]?"…":"✓ Approve"))),D.disabled=(e(os),e(X),o(()=>!!e(os)[e(X).id])),_(Y,(e(os),e(X),o(()=>e(os)[e(X).id]?"…":"✕ Reject")))},[()=>(e(X),o(()=>e(X).source.toUpperCase())),()=>(e(X),o(()=>new Date(e(X).capturedAt).toLocaleString()))]),z("click",Q,()=>on(e(X).id,"approve")),z("click",D,()=>on(e(X).id,"reject")),y(Oe,V)}),y(he,Me)};F(Xe,he=>{e(nl)?he(Be):(e(Ut),o(()=>e(Ut).length===0)?he(et,1):(e(a),o(()=>e(a).length===0)?he(ht,2):he(_t,-1)))})}L(()=>{lt.disabled=e(nl),_(We,e(nl)?"…":"⟳ Refresh")}),$s(ge,()=>e(il),he=>d(il,he)),$s(P,()=>e(ol),he=>d(ol,he)),z("click",lt,$l),y(E,R)};F(Hc,E=>{e(ot)==="live-feed"?E(Bc):e(ot)==="commit-hook"?E(zc,1):e(ot)==="rules"?E(Uc,2):e(ot)==="arch-graph"?E(Vc,3):e(ot)==="history"?E(Wc,4):e(ot)==="analytics"?E(qc,5):e(ot)==="proposals"&&E(Kc,6)})}var Gc=r(li,2),ri=n(Gc),ni=n(ri),Yc=r(n(ni),2),Jc=n(Yc),ii=r(ni,2),oi=r(n(ii),2),Xc=n(oi),Qc=r(oi,2),Zc=n(Qc),ci=r(ii,2),ev=r(n(ci),2),tv=n(ev),sv=r(ci,2),vi=r(n(sv),2);let di;var av=n(vi),lv=r(ri,2),ui=n(lv),Gl=n(ui),rv=n(Gl),Yl=r(Gl,2),nv=n(Yl),Tr=r(Yl,2),iv=n(Tr),ov=r(ui,2),fi=n(ov),cv=n(fi),vv=r(fi,2),dv=n(vv),uv=r(kn,2);{var fv=E=>{var R=Gf(),le=n(R),Ae=n(le),$e=r(n(Ae),2),ge=r(Ae,2),De=n(ge),Pe=r(n(De),2),Te=r(n(Pe),2),C=n(Te);C.value=C.__value="ollama";var Le=r(C);Le.value=Le.__value="openai";var ve=r(Le);ve.value=ve.__value="anthropic";var P=r(ve);P.value=P.__value="minimax";var He=r(P);He.value=He.__value="openai-compatible";var at=r(Pe,2),me=r(n(at),2),Ze=r(at,2);{var lt=fe=>{var rt=qf(),Es=r(n(rt),2);L(()=>pe(Es,"placeholder",(e(g),o(()=>{var xe;return(xe=e(g).runtime)!=null&&xe.model.apiKeyConfigured?"(already set — leave blank to keep)":"sk-..."})))),$t(Es,()=>e(pt).apiKey,xe=>At(pt,e(pt).apiKey=xe)),y(fe,rt)};F(Ze,fe=>{e(pt),o(()=>e(pt).provider&&e(pt).provider!=="ollama")&&fe(lt)})}var We=r(Ze,2),Xe=r(n(We),2),Be=n(Xe),et=n(Be),ht=r(Be,2),_t=r(We,2);{var he=fe=>{var rt=Kf();let Es;var xe=n(rt);L(Dt=>{Es=ye(rt,1,"modal-msg svelte-d3ct2b",null,Es,Dt),_(xe,e(ra))},[()=>({"modal-msg-ok":e(ra).startsWith("✓"),"modal-msg-err":e(ra).startsWith("✗")})]),y(fe,rt)};F(_t,fe=>{e(ra)&&fe(he)})}var Me=r(De,2),Oe=r(n(Me),2),X=r(n(Oe),2),V=r(Oe,2),m=r(n(V),2),Z=r(Me,2),G=r(n(Z),2),U=r(n(G),2),_e=r(G,2),te=r(n(_e),2),je=r(_e,2),j=r(n(je),2),T=r(je,2),ne=r(n(T),2),ue=r(Z,2),B=r(n(ue),2),q=r(n(B)),ee=n(q),Q=r(B,2),re=r(n(Q)),D=n(re),Y=r(Q,2),ie=r(n(Y)),de=n(ie),oe=r(Y,2),K=r(n(oe)),ke=n(K),Fe=r(oe,2),ce=r(n(Fe)),$=n(ce),Re=r(Fe,2),ze=r(n(Re)),ct=n(ze),vt=r(Re,2),dt=r(n(vt)),Et=n(dt),Wt=r(vt,2),Qe=r(n(Wt)),kt=n(Qe),qt=r(Wt,2),Js=r(n(qt)),Nt=n(Js);L((fe,rt,Es)=>{Be.disabled=e(Il),_(et,e(Il)?"Saving…":"Apply"),Ql(U,(e(ds),o(()=>e(ds).autoFix))),U.disabled=e(qa),Ql(te,(e(ds),o(()=>e(ds).verbose))),te.disabled=e(qa),Ql(j,(e(ds),o(()=>e(ds).debug))),j.disabled=e(qa),Ql(ne,(e(ds),o(()=>e(ds).scanOnStart))),ne.disabled=e(qa),_(ee,(e(g),o(()=>{var xe;return((xe=e(g).runtime)==null?void 0:xe.model.provider)??"—"}))),_(D,(e(g),o(()=>{var xe,Dt;return((xe=e(g).runtime)==null?void 0:xe.model.checkModelResolved)??((Dt=e(g).runtime)==null?void 0:Dt.model.chatModel)??"—"}))),_(de,(e(g),o(()=>{var xe;return(xe=e(g).runtime)!=null&&xe.model.apiKeyConfigured?"Configured":"Not set"}))),_(ke,(e(g),o(()=>{var xe,Dt;return((xe=e(g).runtime)==null?void 0:xe.model.embeddingModelResolved)??((Dt=e(g).runtime)==null?void 0:Dt.model.embeddingModel)??"—"}))),_($,`${e(g),o(()=>{var xe,Dt;return((Dt=(xe=e(g).runtime)==null?void 0:xe.timeouts)==null?void 0:Dt.chatTimeoutMs)??"60000"})??""} ms`),_(ct,`${e(g),o(()=>{var xe,Dt;return((Dt=(xe=e(g).runtime)==null?void 0:xe.timeouts)==null?void 0:Dt.checkTimeoutMs)??"20000"})??""} ms`),_(Et,(e(g),o(()=>{var xe;return((xe=e(g).stats.tokens)==null?void 0:xe.calls)??0}))),_(kt,`${fe??""} ${e(g),o(()=>{var xe;return((xe=e(g).runtime)==null?void 0:xe.model.provider)==="ollama"?"(local — free)":""})??""}`),_(Nt,`${rt??""} in / ${Es??""} out`)},[()=>(e(g),o(()=>{var fe,rt;return((rt=(fe=e(g).stats.tokens)==null?void 0:fe.totalTokens)==null?void 0:rt.toLocaleString())??"0"})),()=>(e(g),o(()=>{var fe,rt;return((rt=(fe=e(g).stats.tokens)==null?void 0:fe.inputTokens)==null?void 0:rt.toLocaleString())??"0"})),()=>(e(g),o(()=>{var fe,rt;return((rt=(fe=e(g).stats.tokens)==null?void 0:fe.outputTokens)==null?void 0:rt.toLocaleString())??"0"}))]),z("click",$e,()=>d(xa,!1)),$s(Te,()=>e(pt).provider,fe=>At(pt,e(pt).provider=fe)),$t(me,()=>e(pt).model,fe=>At(pt,e(pt).model=fe)),z("click",Be,zo),z("click",ht,Ho),$t(X,()=>e(pt).chatTimeoutMs,fe=>At(pt,e(pt).chatTimeoutMs=fe)),$t(m,()=>e(pt).checkTimeoutMs,fe=>At(pt,e(pt).checkTimeoutMs=fe)),z("change",U,fe=>Bl({autoFix:fe.currentTarget.checked})),z("change",te,fe=>Bl({verbose:fe.currentTarget.checked})),z("change",j,fe=>Bl({debug:fe.currentTarget.checked})),z("change",ne,fe=>Bl({scanOnStart:fe.currentTarget.checked})),z("click",R,Oi(()=>d(xa,!1))),z("keydown",R,Oi(fe=>{fe.key==="Escape"&&d(xa,!1)})),y(E,R)};F(uv,E=>{e(xa)&&E(fv)})}L((E,R,le,Ae,$e,ge,De)=>{var Pe,Te,C,Le,ve;_(Jt,E),pe(ss,"title",e(va)?"Switch to light mode":"Switch to dark mode"),An=ye(yr,1,"side-btn svelte-d3ct2b",null,An,{"side-btn-active":e(ot)==="live-feed"}),Tn=ye(ql,1,"side-btn svelte-d3ct2b",null,Tn,{"side-btn-active":e(ot)==="commit-hook"}),Cn=ye(wr,1,"side-btn svelte-d3ct2b",null,Cn,{"side-btn-active":e(ot)==="rules"}),Ln=ye(xr,1,"side-btn svelte-d3ct2b",null,Ln,{"side-btn-active":e(ot)==="arch-graph"}),Mn=ye(Kl,1,"side-btn svelte-d3ct2b",null,Mn,{"side-btn-active":e(ot)==="history"}),On=ye(kr,1,"side-btn svelte-d3ct2b",null,On,{"side-btn-active":e(ot)==="analytics"}),Rn=ye(Sr,1,"side-btn svelte-d3ct2b",null,Rn,{"side-btn-active":e(ot)==="proposals"}),Pn=ye(Dn,1,"sidebar-conn-dot svelte-d3ct2b",null,Pn,{"dot-live":e(S).live}),_(uc,(e(S),o(()=>e(S).live?"Live":"Offline"))),_(hc,`CORE ${e(S),o(()=>e(S).live?"LIVE":"IDLE")??""}`),$n=ye(Er,1,"health-badge svelte-d3ct2b",null,$n,{"health-green":e(Ne),"health-warn":!e(Ne)}),Hn=ye(Fn,1,"dot svelte-d3ct2b",null,Hn,{"dot-green":e(Ne),"dot-warn":!e(Ne)}),_(bc,`DB ${e(Ne)?"CONNECTED":"DISCONNECTED"}`),Bn=ye(Ar,1,"health-badge svelte-d3ct2b",null,Bn,{"health-blue":e(wt)||((Pe=e(g).runtime)==null?void 0:Pe.model.provider)!=="ollama","health-warn":!e(wt)&&((Te=e(g).runtime)==null?void 0:Te.model.provider)==="ollama"}),Un=ye(zn,1,"dot svelte-d3ct2b",null,Un,{"dot-blue":e(wt)||((C=e(g).runtime)==null?void 0:C.model.provider)!=="ollama","dot-warn":!e(wt)&&((Le=e(g).runtime)==null?void 0:Le.model.provider)==="ollama"}),_(gc,`MODEL: ${e(is)??""}`),Qn=ye(Xn,1,"metric-value svelte-d3ct2b",null,Qn,{"metric-value-warn":e(x)>0}),_(Tc,e(x)),_(Lc,R),_(Rc,le),si=ye(ti,1,"dot dot-green svelte-d3ct2b",null,si,{"dot-pulse":e(S).live}),_(Pc,Ae),ai=ye(hl,1,"icon-btn svelte-d3ct2b",null,ai,{"icon-btn-active":e(Va)}),pe(hl,"title",e(Va)?"Resume":"Pause"),_(Jc,(e(g),o(()=>{var P;return((P=e(g).stats.tokens)==null?void 0:P.calls)??0}))),_(Xc,$e),_(Zc,(e(g),o(()=>{var P;return((P=e(g).runtime)==null?void 0:P.model.provider)==="ollama"?"LOCAL (FREE)":"USED"}))),_(tv,ge),di=ye(vi,1,"footer-val svelte-d3ct2b",null,di,{"footer-val-error":(((ve=e(g).stats.bypasses)==null?void 0:ve.withoutReason)??0)>0}),_(av,`${e(g),o(()=>{var P;return((P=e(g).stats.bypasses)==null?void 0:P.withoutReason)??0})??""} unrecorded`),Gl.disabled=e(na)==="sync",_(rv,`${e(na)==="sync"?"…":"⟳"} Sync Agents`),Yl.disabled=e(na)==="check-all",_(nv,`${e(na)==="check-all"?"…":"⊛"} Check All`),Tr.disabled=e(na)==="tune",_(iv,`${e(na)==="tune"?"…":"⚙"} Tune Rules`),ml(cv,`width: ${De??""}%`),_(dv,`Storage: ${e(N)??""} memories`)},[()=>o(Po),()=>(e(H),o(()=>e(H).toLocaleString())),()=>(e(M),o(()=>e(M).toLocaleString())),()=>(e(S),o(()=>e(S).live?"LIVE STREAMING":e(S).label.toUpperCase())),()=>(e(g),o(()=>{var E;return(E=e(g).stats.tokens)!=null&&E.totalTokens?(e(g).stats.tokens.totalTokens/1e3).toFixed(1)+"K":"—"})),()=>(e(x),e(H),o(()=>e(x)===0?"0.00%":(e(x)/Math.max(1,e(H))*100).toFixed(2)+"%")),()=>(e(N),o(()=>Math.min(100,e(N)/Math.max(1,e(N)+100)*100+20)))]),$t(Ss,()=>e(nn),E=>d(nn,E)),z("click",Ps,()=>{var E,R,le,Ae,$e,ge;d(xa,!e(xa)),d(pt,{provider:((E=e(g).runtime)==null?void 0:E.model.provider)??"",model:((R=e(g).runtime)==null?void 0:R.model.chatModel)??"",apiKey:"",chatTimeoutMs:((Ae=(le=e(g).runtime)==null?void 0:le.timeouts)==null?void 0:Ae.chatTimeoutMs)??"",checkTimeoutMs:((ge=($e=e(g).runtime)==null?void 0:$e.timeouts)==null?void 0:ge.checkTimeoutMs)??""}),d(ra,""),e(xa)&&un()}),z("click",ss,Ko),z("click",yr,()=>{d(ot,"live-feed")}),z("click",ql,()=>{d(ot,"commit-hook")}),z("click",wr,()=>{d(ot,"rules")}),z("click",xr,()=>{d(ot,"arch-graph"),d(cs,!1),vl().catch(()=>{})}),z("click",Kl,()=>{d(ot,"history")}),z("click",kr,()=>{d(ot,"analytics"),vn()}),z("click",Sr,()=>{d(ot,"proposals"),$l()}),z("click",Ec,Bo),z("click",hl,()=>d(Va,!e(Va))),z("click",Fc,()=>{const E=new Blob([JSON.stringify(e(g),null,2)],{type:"application/json"}),R=document.createElement("a");R.href=URL.createObjectURL(E),R.download="memory-core-snapshot.json",R.click()}),z("click",Gl,()=>br("sync")),z("click",Yl,()=>br("check-all")),z("click",Tr,()=>br("tune")),y(c,w)};F(Xo,c=>{e(da)?c(Qo):c(Zo,-1)})}y(t,xn),Wi()}Pd(Jf,{target:document.getElementById("app")});
@@ -7,8 +7,8 @@
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
9
  <link href="https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
10
- <script type="module" crossorigin src="/assets/index-BFwqVRYO.js"></script>
11
- <link rel="stylesheet" crossorigin href="/assets/index-y7eHWJtq.css">
10
+ <script type="module" crossorigin src="/assets/index-DGx4sRHq.js"></script>
11
+ <link rel="stylesheet" crossorigin href="/assets/index-BcDOsQwz.css">
12
12
  </head>
13
13
  <body>
14
14
  <div id="app"></div>