@vheins/local-memory-mcp 0.9.12 → 0.9.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-L7ECMPY4.js → chunk-ZFOKKXC6.js} +2 -2
- package/dist/dashboard/public/assets/{index-C8xmlafT.css → index-IqveMUDr.css} +1 -1
- package/dist/dashboard/public/assets/{index-BtBlOcde.js → index-t_40uQBp.js} +2 -4
- package/dist/dashboard/public/index.html +2 -2
- package/dist/dashboard/server.js +1 -1
- package/dist/mcp/server.js +1 -1
- package/package.json +1 -1
|
@@ -3,8 +3,8 @@ import { fileURLToPath } from "url";
|
|
|
3
3
|
import path from "path";
|
|
4
4
|
var __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
5
5
|
var pkgVersion = "0.1.0";
|
|
6
|
-
if ("0.9.
|
|
7
|
-
pkgVersion = "0.9.
|
|
6
|
+
if ("0.9.14") {
|
|
7
|
+
pkgVersion = "0.9.14";
|
|
8
8
|
} else {
|
|
9
9
|
let searchDir = __dirname;
|
|
10
10
|
for (let i = 0; i < 5; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--glass-bg:#ffffff85;--glass-bg-strong:#ffffffb8;--glass-bg-ultra:#ffffffe0;--glass-border:#fff6;--glass-border-inner:#ffffffb3;--glass-shadow:0 20px 70px #0f172a1a, 0 4px 16px #0f172a0f;--glass-shadow-elevated:0 32px 96px #0f172a29, 0 8px 32px #0f172a14;--glass-blur:blur(28px) saturate(1.2);--panel-dark:#060c1cb3;--panel-dark-strong:#040916e0;--panel-dark-ultra:#020610f5;--panel-dark-border:#94a3b81a;--panel-dark-border-glow:#38bdf833;--panel-dark-shadow:0 28px 90px #02061799, inset 0 1px 0 #94a3b80f;--glow-primary:#0ea5e959;--glow-accent:#6366f159;--glow-success:#10b98159;--glow-danger:#ef444459;--glow-purple:#a855f759;--glow-cyan:#06b6d459;--sidebar-width:280px;--sidebar-collapsed-width:72px;--header-height:60px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--color-bg:#f0f8ff;--color-surface:#fff;--color-border:#e1ecf7;--color-text:#0a1628;--color-text-muted:#556f8a;--color-text-faint:#8faec4;--color-primary:#0ea5e9;--color-primary-dark:#0284c7;--color-primary-light:#38bdf8;--color-accent:#6366f1;--color-accent-dark:#4f46e5;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--color-purple:#a855f7;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);--duration-fast:.15s;--duration-base:.25s;--duration-slow:.4s}.dark{--color-bg:#010c1e;--color-surface:#070f1f;--color-border:#94a3b81a;--color-text:#e9f1fa;--color-text-muted:#7fa3be;--color-text-faint:#4a6782;--color-primary:#38bdf8;--color-primary-dark:#0ea5e9;--color-primary-light:#7dd3fc}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(at 8% 10%,#38bdf847 0%,#0000 38%),radial-gradient(at 92% 8%,#6366f12e 0%,#0000 32%),radial-gradient(at 75% 88%,#a855f71f 0%,#0000 28%),radial-gradient(at 20% 75%,#0ea5e91a 0%,#0000 26%),linear-gradient(160deg,#eef8ff 0%,#f0f4ff 45%,#f5f0ff 100%) fixed;min-height:100vh;font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.5;transition:background .5s}html.dark{background:radial-gradient(at 8% 10%,#0ea5e924 0%,#0000 38%),radial-gradient(at 92% 8%,#4338ca1f 0%,#0000 32%),radial-gradient(at 75% 88%,#581c871a 0%,#0000 28%),radial-gradient(at 20% 75%,#0ea5e90f 0%,#0000 26%),linear-gradient(160deg,#010c1e 0%,#040d1e 45%,#050c1a 100%) fixed}body{min-height:100vh;color:var(--color-text);transition:color var(--duration-base) ease;background:0 0;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3}code,pre{font-family:JetBrains Mono,Fira Code,monospace}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-dark)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b840;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b873}.dark ::-webkit-scrollbar-thumb{background:#3341558c}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);position:relative}.glass:before{content:"";border-radius:inherit;border:1px solid var(--glass-border-inner);opacity:.6;pointer-events:none;z-index:0;border-bottom-color:#0000;border-right-color:#0000;position:absolute;inset:0}.dark .glass{background:var(--panel-dark);border-color:var(--panel-dark-border);box-shadow:var(--panel-dark-shadow)}.dark .glass:before{opacity:.8;border-color:#94a3b812 #0000 #0000 #94a3b812}.glass-strong{background:var(--glass-bg-strong)!important}.dark .glass-strong{background:var(--panel-dark-strong)!important}.glass-card{border-radius:var(--radius-lg);padding:20px;position:relative;overflow:hidden}.glass-card:after{content:"";border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(135deg,#ffffff14 0%,#0000 60%);position:absolute;inset:0}.dark .glass-card:after{background:linear-gradient(135deg,#94a3b80a 0%,#0000 60%)}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);height:100dvh;transition:width .3s var(--ease-smooth);z-index:40;position:fixed;top:0;left:0;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.main-content{min-width:0;margin-left:var(--sidebar-width);transition:margin-left .3s var(--ease-smooth);flex:1}.dashboard-shell{min-width:0;min-height:100vh;padding:20px}.sidebar.collapsed~.main-content,.main-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width)}@media (width<=1024px){.app-layout>.sidebar{display:none!important}.main-content{margin-left:0!important}}.mobile-sidebar-shell{z-index:39;flex-direction:column;width:min(320px,86vw);height:100dvh;display:flex;position:fixed;inset:0 auto 0 0}.mobile-sidebar-shell .sidebar{width:100%!important;height:100dvh!important;display:flex!important;position:relative!important}.top-bar{z-index:30;position:sticky;top:0}.tab-nav{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f1f5f9b3;border:1px solid #e2e8f0cc;gap:3px;padding:4px;display:flex}.tabs-wrap{scrollbar-width:none;max-width:100%;margin-bottom:20px;overflow:auto hidden}.tabs-wrap::-webkit-scrollbar{display:none}.dark .tab-nav{background:#0f172a99;border-color:#94a3b81a}.tab-btn{color:var(--color-text-muted);transition:all var(--duration-base) var(--ease-smooth);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9px;align-items:center;gap:6px;padding:7px 14px;font-size:.8rem;font-weight:600;display:flex;position:relative;overflow:hidden}.tab-btn:after{content:"";opacity:0;transition:opacity var(--duration-base) ease;pointer-events:none;background:radial-gradient(circle,#0ea5e91f,#0000 70%);position:absolute;inset:0}.tab-btn:hover{color:var(--color-text)}.tab-btn:hover:after{opacity:1}.dark .tab-btn:hover{color:var(--color-text)}.tab-btn.active{color:var(--color-primary);background:#fff;box-shadow:0 2px 10px #00000012,0 1px 3px #0000000d}.tab-btn.active:after{opacity:0}.dark .tab-btn.active{color:#7dd3fc;background:#0a1226f2;box-shadow:0 0 0 1px #38bdf833,0 4px 12px #00000059}.btn{border-radius:var(--radius-md);transition:all var(--duration-base) var(--ease-smooth);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:.8rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;transition:opacity var(--duration-fast) ease;pointer-events:none;background:linear-gradient(135deg,#ffffff26 0%,#0000 100%);position:absolute;inset:0}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;box-shadow:0 4px 14px var(--glow-primary), inset 0 1px 0 #fff3;border-color:#0284c780}.btn-primary:hover{box-shadow:0 6px 20px var(--glow-primary), inset 0 1px 0 #fff3;transform:translateY(-1px)}.dark .btn-primary{color:#7dd3fc;background:linear-gradient(135deg,#0ea5e933 0%,#0284c71f 100%);border-color:#0ea5e966;box-shadow:inset 0 0 0 1px #0ea5e926,0 4px 14px #0ea5e92e}.dark .btn-primary:hover{color:#bae6fd;background:linear-gradient(135deg,#0ea5e94d 0%,#0284c733 100%);box-shadow:inset 0 0 0 1px #38bdf840,0 6px 20px #0ea5e947}.btn-accent{background:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);color:#fff;box-shadow:0 4px 14px var(--glow-accent), inset 0 1px 0 #fff3;border-color:#4f46e580}.btn-accent:hover{box-shadow:0 6px 20px var(--glow-accent), inset 0 1px 0 #fff3;transform:translateY(-1px)}.dark .btn-accent{color:#a5b4fc;background:linear-gradient(135deg,#6366f138 0%,#4f46e524 100%);border-color:#6366f16b;box-shadow:inset 0 0 0 1px #6366f126}.dark .btn-accent:hover{color:#c7d2fe;background:linear-gradient(135deg,#6366f152 0%,#4f46e538 100%);box-shadow:inset 0 0 0 1px #818cf84d,0 6px 20px #6366f147}.btn-ghost{color:var(--color-text-muted);border-color:var(--color-border);background:0 0}.btn-ghost:hover{color:var(--color-text);background:#f1f5f9cc;border-color:#0ea5e933}.dark .btn-ghost:hover{background:#1e293bb3;border-color:#94a3b833}.btn-sm{padding:5px 10px;font-size:.72rem}.btn-icon{border-radius:var(--radius-sm);padding:7px}.btn-icon-lg{border-radius:var(--radius-md);padding:9px}.form-input,.form-select,.form-textarea{border-radius:var(--radius-md);border:1px solid var(--color-border);width:100%;color:var(--color-text);transition:all var(--duration-base) var(--ease-smooth);background:#ffffffa6;outline:none;padding:8px 12px;font-family:inherit;font-size:.85rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);background:#ffffffd9;box-shadow:0 0 0 3px #0ea5e924,0 2px 8px #0ea5e914}.dark .form-input,.dark .form-select,.dark .form-textarea{color:var(--color-text);background:#0a1226a6;border-color:#94a3b82e}.dark .form-input:focus,.dark .form-select:focus,.dark .form-textarea:focus{background:#0a1226d9;border-color:#38bdf880;box-shadow:0 0 0 3px #38bdf81f,0 0 16px #38bdf814}.card{border-radius:var(--radius-lg);padding:20px}.stat-card{border-radius:var(--radius-md);transition:transform var(--duration-base) var(--ease-spring), box-shadow var(--duration-base) ease;padding:12px 14px}.stat-card:hover{box-shadow:var(--glass-shadow-elevated);transform:translateY(-3px)}.dark .stat-card:hover{box-shadow:0 32px 96px #020617b3,0 0 24px #38bdf80f}.type-chip{text-transform:uppercase;letter-spacing:.07em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--duration-base) ease;border:1px solid #0000;border-radius:9999px;align-items:center;gap:4px;padding:.2rem .6rem;font-size:.62rem;font-weight:700;display:inline-flex}.type-decision{color:#1565c0;background:linear-gradient(135deg,#2196f324,#1976d214);border-color:#2196f34d}.type-mistake{color:#c62828;background:linear-gradient(135deg,#f4433624,#d32f2f14);border-color:#f443364d}.type-code_fact{color:#6a1b9a;background:linear-gradient(135deg,#9c27b024,#7b1fa214);border-color:#9c27b04d}.type-pattern{color:#1b5e20;background:linear-gradient(135deg,#388e3c24,#1b5e2014);border-color:#388e3c4d}.type-file_claim{color:#006064;background:linear-gradient(135deg,#00bcd424,#0097a714);border-color:#00bcd44d}.type-task_archive{color:#3e2723;background:linear-gradient(135deg,#79554824,#5d403714);border-color:#7955484d}.dark .type-decision{color:#7dd3fc;background:linear-gradient(135deg,#38bdf833,#0ea5e914);border-color:#38bdf852}.dark .type-mistake{color:#fda4af;background:linear-gradient(135deg,#fb718533,#f43f5e14);border-color:#fb718552}.dark .type-code_fact{color:#d8b4fe;background:linear-gradient(135deg,#c084fc33,#a78bfa14);border-color:#c084fc52}.dark .type-pattern{color:#6ee7b7;background:linear-gradient(135deg,#34d39933,#10b98114);border-color:#34d39952}.dark .type-file_claim{color:#67e8f9;background:linear-gradient(135deg,#22d3ee33,#06b6d414);border-color:#22d3ee52}.dark .type-task_archive{color:#d4a08a;background:linear-gradient(135deg,#b4786433,#965a4614);border-color:#b4786452}.status-chip{text-transform:uppercase;letter-spacing:.05em;transition:all var(--duration-base) ease;border-radius:9999px;align-items:center;gap:4px;padding:2px 10px;font-size:.62rem;font-weight:700;display:inline-flex}.status-chip:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.status-backlog{color:#64748b;background:#64748b1f;border:1px solid #64748b47}.status-pending{color:#475569;background:#94a3b81f;border:1px solid #94a3b847}.status-inprogress{color:#0284c7;background:#38bdf81f;border:1px solid #38bdf847}.status-completed{color:#059669;background:#10b9811f;border:1px solid #10b98147}.status-blocked{color:#dc2626;background:#ef44441f;border:1px solid #ef444447}.status-canceled{color:#9ca3af;background:#9ca3af14;border:1px solid #9ca3af2e}.status-default{color:#94a3b8;background:#cbd5e11f;border:1px solid #cbd5e147}.dark .status-backlog{color:#94a3b8;background:#64748b2e}.dark .status-pending{color:#cbd5e1;background:#94a3b82e}.dark .status-inprogress{color:#7dd3fc;background:#38bdf82e}.dark .status-completed{color:#6ee7b7;background:#10b9812e}.dark .status-blocked{color:#fca5a5;background:#ef44442e}.dark .status-canceled{color:#6b7280;background:#9ca3af1f}.repo-item{border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);border:1px solid #0000;align-items:center;gap:10px;padding:9px 11px;display:flex;position:relative;overflow:hidden}.repo-item:before{content:"";opacity:0;transition:opacity var(--duration-base) ease;pointer-events:none;background:linear-gradient(90deg,#0ea5e90f 0%,#0000 100%);position:absolute;inset:0}.repo-item:hover:before{opacity:1}.repo-item:hover{border-color:#0ea5e91f}.dark .repo-item:hover{background:#0ea5e90a;border-color:#38bdf824}.repo-item.active{background:#ffffffe6;border-color:#0ea5e938;box-shadow:0 4px 14px #0f172a0f,inset 0 1px #fffc}.dark .repo-item.active{background:#0ea5e912;border-color:#38bdf847;box-shadow:inset 0 0 0 1px #38bdf81a,0 4px 16px #0ea5e914}.repo-avatar{border-radius:var(--radius-sm);color:#fff;width:34px;height:34px;transition:box-shadow var(--duration-base) ease, transform var(--duration-base) var(--ease-spring);background:linear-gradient(135deg,#0ea5e9 0%,#6366f1 100%);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex;position:relative;box-shadow:0 4px 12px #0ea5e947}.repo-item:hover .repo-avatar{transform:scale(1.06);box-shadow:0 4px 16px #0ea5e966}.repo-active-indicator{background:linear-gradient(180deg, var(--color-primary-light) 0%, var(--color-primary) 100%);width:3px;height:22px;box-shadow:2px 0 8px var(--glow-primary);border-radius:0 4px 4px 0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.repo-item.collapsed{justify-content:center;padding:8px}.stat-number{letter-spacing:-.03em;font-size:1.75rem;font-weight:900;line-height:1}.stat-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);font-size:.68rem;font-weight:700}.kanban-board{grid-auto-columns:minmax(280px,1fr);grid-auto-flow:column;gap:16px;padding-bottom:8px;display:grid;overflow-x:auto}@media (width<=900px){.kanban-board{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;grid-auto-columns:280px;grid-auto-flow:column}}.kanban-col{border-radius:var(--radius-lg);flex-direction:column;min-height:200px;display:flex}@media (width<=900px){.kanban-col{scroll-snap-align:center}}.task-card{border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);background:#ffffff9e;flex-shrink:0;padding:14px;position:relative;overflow:hidden}.task-card:before{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-accent));opacity:0;height:2px;transition:opacity var(--duration-base) ease;position:absolute;top:0;left:0;right:0}.task-card:hover:before{opacity:1}.dark .task-card{background:#0a122a8c;border-color:#94a3b81a}.task-card:hover{border-color:#0ea5e938;transform:translateY(-3px);box-shadow:0 10px 28px #0000001a,0 0 0 1px #0ea5e92e}.dark .task-card:hover{border-color:#38bdf83d;transform:translateY(-3px);box-shadow:0 10px 28px #00000059,0 0 0 1px #38bdf838}.markdown-body{color:#374151;word-break:break-word;font-size:.875rem;line-height:1.75}.dark .markdown-body{color:#d1d5db}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:#111827;margin:1.2em 0 .5em;font-weight:700;line-height:1.3}.dark .markdown-body h1,.dark .markdown-body h2,.dark .markdown-body h3,.dark .markdown-body h4{color:#f9fafb}.markdown-body h1{border-bottom:2px solid #e5e7eb;padding-bottom:.4rem;font-size:1.25rem}.markdown-body h2{border-bottom:1px solid #e5e7eb;padding-bottom:.3rem;font-size:1.1rem}.markdown-body h3{font-size:.95rem}.markdown-body p{margin:.6em 0}.markdown-body ul,.markdown-body ol{margin:.5em 0;padding-left:1.5rem}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body li{margin:.25em 0}.markdown-body code{color:#6d28d9;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:5px;padding:.15em .4em;font-family:JetBrains Mono,monospace;font-size:.8rem}.dark .markdown-body code{color:#c4b5fd;background:#8b5cf624;border-color:#8b5cf638}.markdown-body pre{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;margin:.75em 0;padding:1rem;overflow-x:auto}.dark .markdown-body pre{background:#0a121e;border-color:#1e2d40}.markdown-body pre code{color:inherit;background:0 0;border:none;padding:0;font-size:.82rem}.markdown-body blockquote{color:#4b5563;background:#0ea5e90d;border-left:3px solid #0ea5e9;border-radius:0 8px 8px 0;margin:.75em 0;padding:.5rem 1rem;font-style:italic}.dark .markdown-body blockquote{color:#9ca3af;background:#0ea5e914}.markdown-body a{color:#0ea5e9;text-underline-offset:2px;text-decoration:underline}.markdown-body strong{color:#111827;font-weight:700}.dark .markdown-body strong{color:#f9fafb}.markdown-body table{border-collapse:collapse;width:100%;margin:.75em 0;font-size:.8rem}.markdown-body th{text-align:left;background:#f1f5f9;border:1px solid #e5e7eb;padding:.5rem .75rem;font-weight:700}.dark .markdown-body th{background:#1e293b;border-color:#334155}.markdown-body td{border:1px solid #e5e7eb;padding:.4rem .75rem}.dark .markdown-body td{border-color:#334155}.markdown-body tr:nth-child(2n){background:#f8fafc}.dark .markdown-body tr:nth-child(2n){background:#1e293b66}.chat-bubble{border-radius:1.25rem;max-width:85%;padding:.75rem 1rem;font-size:.875rem;line-height:1.5;box-shadow:0 2px 8px #0000000f}.chat-bubble-agent{color:#fff;border-bottom-right-radius:.25rem;align-self:flex-end}.chat-bubble-mcp{color:#1e293b;background:#f1f5f9e6;border:1px solid #e2e8f0;border-bottom-left-radius:.25rem;align-self:flex-start}.dark .chat-bubble-mcp{color:#f1f5f9;background:#1e293bd9;border-color:#334155b3}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e8ecf0 50%,#f1f5f9 75%) 0 0/200% 100%;border-radius:8px;animation:1.8s ease-in-out infinite skeleton-pulse}.dark .skeleton{background:linear-gradient(90deg,#12213a 25%,#1a2f4a 50%,#12213a 75%) 0 0/200% 100%}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 6px #0ea5e94d}50%{box-shadow:0 0 18px #0ea5e999,0 0 30px #0ea5e933}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes status-blink{0%,to{opacity:1}50%{opacity:.4}}@keyframes orbit-glow{0%{transform:translate(-50%,-50%)rotate(0)translate(12px)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)translate(12px)rotate(-360deg)}}.animate-fade-in{animation:fade-in-up var(--duration-slow) var(--ease-expo)}.animate-fade-in-scale{animation:fade-in-scale var(--duration-slow) var(--ease-expo)}.animate-slide-in{animation:slide-in-right var(--duration-slow) var(--ease-expo)}.animate-spin{animation:.8s linear infinite spin}.animate-float{animation:3s ease-in-out infinite float}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}.animate-status-blink{animation:1.8s ease-in-out infinite status-blink}.stagger-item:first-child{animation-delay:0s}.stagger-item:nth-child(2){animation-delay:50ms}.stagger-item:nth-child(3){animation-delay:.1s}.stagger-item:nth-child(4){animation-delay:.15s}.stagger-item:nth-child(5){animation-delay:.2s}.stagger-item:nth-child(n+6){animation-delay:.25s}.drawer-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);background:#010c1e8c;position:fixed;inset:0}.drawer-panel{-webkit-backdrop-filter:blur(20px);z-index:51;background:#fffffff5;border-left:1px solid #e2e8f0cc;flex-direction:column;width:min(620px,95vw);height:100dvh;display:flex;position:fixed;top:0;right:0;overflow:hidden;box-shadow:-20px 0 60px #00000024,-1px 0 #0ea5e914}.dark .drawer-panel{background:#060c1cf5;border-color:#94a3b81a;box-shadow:-20px 0 60px #00000080,-1px 0 #38bdf81f}.dark table thead tr{background:#0a1226e6!important}.dark table th{color:var(--color-text-muted);border-bottom-color:#94a3b81f!important}.dark table td{color:var(--color-text);border-bottom-color:#94a3b812!important}.dark table tbody tr:hover td{background:#0ea5e90a}.dark table tbody tr:nth-child(2n) td{background:#080f2059}.dark table tbody tr:nth-child(2n):hover td{background:#0ea5e90f}.dark table input[type=checkbox]{accent-color:#0ea5e9}.badge{letter-spacing:.03em;border-radius:9999px;align-items:center;padding:1px 8px;font-size:.62rem;font-weight:700;display:inline-flex}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-size:.68rem;font-weight:700}.status-dot{border-radius:9999px;flex-shrink:0;width:8px;height:8px}.status-dot-online{background:#10b981;animation:2.4s ease-in-out infinite pulse-glow;box-shadow:0 0 0 3px #10b9812e}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--color-text);background:#f1f5f9e6;transform:scale(1.1)}.dark .icon-btn:hover{background:#1e293bcc}.icon-btn svg{transition:transform var(--duration-base) var(--ease-spring)}.icon-btn:hover svg{transform:scale(1.05)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.min-w-0{min-width:0}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:12px;padding-bottom:12px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:12px}.rounded-xl{border-radius:16px}.relative{position:relative}.absolute{position:absolute}.inset-0{inset:0}.z-10{z-index:10}.z-50{z-index:50}.hidden{display:none}.grid{display:grid}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.pointer-events-none{pointer-events:none}.shrink-0{flex-shrink:0}.text-center{text-align:center}.priority-dot{border-radius:9999px;flex-shrink:0;width:8px;height:8px}.priority-1{background:#94a3b8}.priority-2{background:#3b82f6;box-shadow:0 0 6px #3b82f680}.priority-3{background:#f59e0b;box-shadow:0 0 6px #f59e0b80}.priority-4{background:#f97316;box-shadow:0 0 6px #f9731680}.priority-5{background:#ef4444;animation:2s ease-in-out infinite pulse-glow;box-shadow:0 0 8px #ef444499}.divider{background:var(--color-border);height:1px;margin:12px 0}.dark .divider{background:#94a3b81a}.hover-glow{transition:box-shadow var(--duration-base) ease}.hover-glow:hover{box-shadow:var(--glass-shadow-elevated), 0 0 24px #0ea5e914}.dark .hover-glow:hover{box-shadow:var(--panel-dark-shadow), 0 0 24px #38bdf814}.text-success{color:var(--color-success)!important}.text-danger{color:var(--color-danger)!important}.text-primary{color:var(--color-primary)!important}.text-accent{color:var(--color-accent)!important}.btn-icon:hover{background:#0ea5e914;transform:scale(1.1)}@media (width<=760px){html,body,#app,.app-layout,.main-content{max-width:100vw;overflow-x:hidden}.dashboard-shell{padding:12px}.tabs-wrap{margin:0 -12px 12px;padding:0 12px}.tab-nav{max-width:max-content}.tab-btn{padding:7px 10px;font-size:.74rem}.card{border-radius:var(--radius-lg);padding:14px}}.sidebar-header.svelte-vbr9x3{justify-content:space-between;align-items:center;min-height:60px;padding:14px 16px;display:flex}.brand-icon.svelte-vbr9x3{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:box-shadow .2s,transform .2s;display:flex;box-shadow:0 4px 12px #0ea5e94d}.brand-icon.svelte-vbr9x3:hover{transform:scale(1.05);box-shadow:0 4px 18px #0ea5e980}.collapse-btn.svelte-vbr9x3{flex-shrink:0}.search-wrapper.svelte-vbr9x3{position:relative}.search-icon.svelte-vbr9x3{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input.svelte-vbr9x3{background:#ffffff80;padding-left:32px;font-size:.8rem}html.dark .search-input.svelte-vbr9x3{background:#0a122680}.group-label.svelte-vbr9x3{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);opacity:.75;align-items:center;gap:5px;padding:6px 10px 4px;font-size:.6rem;font-weight:700;display:flex}.repo-count-chip.svelte-vbr9x3{color:#0ea5e9;background:#0ea5e91f;border:1px solid #0ea5e938;border-radius:9999px;padding:1px 7px;font-size:.62rem;font-weight:700}.pin-star.svelte-vbr9x3{color:#fff;background:#0ea5e9;border-radius:9999px;justify-content:center;align-items:center;width:14px;height:14px;font-size:8px;line-height:1;display:flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #0ea5e966}.task-badges.svelte-vbr9x3{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.task-badge.svelte-vbr9x3{white-space:nowrap;border:1px solid #0000;border-radius:9999px;align-items:center;gap:2px;padding:1px 5px;font-size:.6rem;font-weight:700;transition:all .15s;display:inline-flex}.task-badge.active.svelte-vbr9x3{color:#a855f7;background:#a855f71f;border-color:#a855f740}.task-badge.todo.svelte-vbr9x3{color:#0ea5e9;background:#0ea5e91f;border-color:#0ea5e940}.task-badge.blocked.svelte-vbr9x3{color:#ef4444;background:#ef44441f;border-color:#ef444440}.task-badge.backlog.svelte-vbr9x3{color:#64748b;background:#64748b1f;border-color:#64748b40}html.dark .task-badge.active.svelte-vbr9x3{color:#c084fc;background:#a855f72e}html.dark .task-badge.todo.svelte-vbr9x3{color:#7dd3fc;background:#38bdf82e}html.dark .task-badge.blocked.svelte-vbr9x3{color:#fca5a5;background:#fca5a52e}html.dark .task-badge.backlog.svelte-vbr9x3{color:#94a3b8;background:#94a3b82e}.pin-btn.svelte-vbr9x3{opacity:0;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:5px;transition:opacity .15s,transform .15s,color .15s;display:flex}.repo-item.svelte-vbr9x3:hover .pin-btn:where(.svelte-vbr9x3){opacity:1}@media (hover:none),(width<=1024px){.pin-btn.svelte-vbr9x3{opacity:1}}.pin-btn.svelte-vbr9x3:hover{color:#0ea5e9;background:#0ea5e91a;transform:scale(1.15)}.top-bar-inner.svelte-2va9hf{justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:10px 20px;display:flex}.current-repo.svelte-2va9hf{align-items:center;gap:8px;min-width:0;display:flex}.current-repo-name.svelte-2va9hf{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:.82rem;overflow:hidden}.top-actions.svelte-2va9hf,.refresh-group.svelte-2va9hf,.top-status.svelte-2va9hf{align-items:center;gap:8px;display:flex}.top-actions.svelte-2va9hf{min-width:0}.top-separator.svelte-2va9hf{background:var(--color-border);opacity:.6;width:1px;height:20px}@media (width<=1024px){#mobileMenuBtn.svelte-2va9hf{display:flex!important}}@media (width<=760px){.top-bar-inner.svelte-2va9hf{padding:8px 12px}.current-repo-name.svelte-2va9hf{max-width:112px}.ext-links-group.svelte-2va9hf,.top-separator.svelte-2va9hf,.db-path-label.svelte-2va9hf,.top-status.svelte-2va9hf span:where(.svelte-2va9hf){display:none!important}.top-actions.svelte-2va9hf{flex-shrink:0;gap:6px}}@media (width<=420px){.current-repo-name.svelte-2va9hf{max-width:82px}}.ext-links-group.svelte-2va9hf{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f1f5f9bf;border-radius:10px;align-items:center;gap:0;display:flex;overflow:hidden}html.dark .ext-links-group.svelte-2va9hf{background:#0f172abf;border-color:#94a3b81f}.ext-link-btn.svelte-2va9hf{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:5px;padding:5px 10px;font-size:.72rem;font-weight:600;line-height:1;text-decoration:none;transition:background .15s,color .15s;display:flex}.ext-link-btn.svelte-2va9hf:hover{color:var(--color-text);background:#0ea5e914}html.dark .ext-link-btn.svelte-2va9hf:hover{background:#0ea5e91f}.ext-link-star.svelte-2va9hf:hover{color:#ca8a04!important;background:#eab3081a!important}html.dark .ext-link-star.svelte-2va9hf:hover{color:#fbbf24!important;background:#eab3081f!important}.ext-link-npm.svelte-2va9hf:hover{color:#cb2431!important;background:#cb243114!important}html.dark .ext-link-npm.svelte-2va9hf:hover{color:#f87171!important;background:#cb24311f!important}.ext-link-divider.svelte-2va9hf{background:var(--color-border);opacity:.6;flex-shrink:0;width:1px;height:20px}.ext-link-label.svelte-2va9hf{font-size:.7rem}.npm-dl-badge.svelte-2va9hf{color:inherit;align-items:center;gap:3px;display:flex}.npm-dl-skeleton.svelte-2va9hf{background:#94a3b82e;border-radius:4px;width:36px;height:10px;animation:1.4s ease-in-out infinite svelte-2va9hf-skeleton-pulse;display:inline-block}@keyframes svelte-2va9hf-skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.countdown-bar.svelte-2va9hf{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f1f5f9bf;border-radius:10px;align-items:center;gap:6px;padding:5px 10px;display:flex}html.dark .countdown-bar.svelte-2va9hf{background:#0f172abf;border-color:#94a3b81f}.countdown-track.svelte-2va9hf{background:#94a3b82e;border-radius:9999px;width:52px;height:3px;overflow:hidden}.countdown-fill.svelte-2va9hf{border-radius:9999px;height:100%;transition:width 1s linear,background .3s}.countdown-label.svelte-2va9hf{width:26px;font-size:.65rem;font-weight:600;transition:color .3s}.btn.refreshing.svelte-2va9hf{color:var(--color-primary)}@media (width<=640px){.ext-links-group.svelte-2va9hf{display:none}}@media (width<=760px){.countdown-bar.svelte-2va9hf{padding:5px 8px}.countdown-track.svelte-2va9hf{width:32px}}@media (width<=420px){.countdown-label.svelte-2va9hf{display:none}}.priority-bar.svelte-1797zcc{opacity:0;border-radius:12px 12px 0 0;height:2px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.task-card.svelte-1797zcc:hover .priority-bar:where(.svelte-1797zcc){opacity:1}.card-header.svelte-1797zcc{justify-content:space-between;align-items:center;gap:6px;margin-bottom:7px;display:flex}.code-row.svelte-1797zcc{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.status-icon-dot.svelte-1797zcc{opacity:.85;flex-shrink:0;display:inline-flex}.task-code-text.svelte-1797zcc{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:110px;font-family:JetBrains Mono,monospace;font-size:.64rem;font-weight:700;overflow:hidden}.task-title.svelte-1797zcc{color:var(--color-text);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:.82rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.task-desc.svelte-1797zcc{color:var(--color-text-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:12px;font-size:.72rem;line-height:1.4;display:-webkit-box;overflow:hidden}.phase-chip.svelte-1797zcc{color:#6366f1;letter-spacing:.02em;white-space:nowrap;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;flex-shrink:0;padding:2px 6px;font-size:.58rem;font-weight:700}html.dark .phase-chip.svelte-1797zcc{color:#a5b4fc;background:#818cf826;border-color:#818cf840}.hierarchy-row.svelte-1797zcc,.coordination-row.svelte-1797zcc{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.h-badge.svelte-1797zcc{border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:.58rem;font-weight:700;display:inline-flex}.h-badge.parent.svelte-1797zcc{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.h-badge.depends.svelte-1797zcc{color:#f59e0b;background:#f59e0b1a;border:1px solid #f59e0b33}.coord-badge.svelte-1797zcc{border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:.58rem;font-weight:700;display:inline-flex}.coord-badge.claim.svelte-1797zcc{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.coord-badge.handoff.svelte-1797zcc{color:#6366f1;background:#6366f11a;border:1px solid #6366f133}.card-footer.svelte-1797zcc{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.agent-row.svelte-1797zcc{align-items:center;gap:4px;display:flex}.agent-avatar.svelte-1797zcc{color:#fff;background:linear-gradient(135deg,#6366f1,#0ea5e9);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.agent-name.svelte-1797zcc{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-size:.64rem;overflow:hidden}.time-row.svelte-1797zcc{color:var(--color-text-faint);align-items:center;gap:3px;font-size:.62rem;display:flex}.token-row.svelte-1797zcc{margin-top:6px}.token-badge.svelte-1797zcc{color:#0ea5e9;background:#38bdf81a;border:1px solid #38bdf833;border-radius:9999px;align-items:center;gap:3px;padding:2px 7px;font-size:.6rem;font-weight:600;display:inline-flex}html.dark .token-badge.svelte-1797zcc{color:#7dd3fc;background:#38bdf81f;border-color:#38bdf838}.search-wrap.svelte-173w724{position:relative}.search-icon-inner.svelte-173w724{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.col-count.svelte-173w724{border-radius:9999px;padding:1px 8px;font-size:.65rem;font-weight:700}.empty-col.svelte-173w724{text-align:center;flex-direction:column;align-items:center;padding:28px 8px;display:flex}.drag-over.svelte-173w724{border-color:var(--color-accent)!important;background:#6366f11a!important}.glassy-badge.svelte-1imzu92{-webkit-backdrop-filter:blur(12px);border:1px solid var(--badge-color);cursor:default;background:#ffffff0a;border-radius:9999px;padding:4px 12px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0000000d,inset 0 0 0 1px #ffffff0d}html.dark .glassy-badge.svelte-1imzu92{box-shadow:0 8px 16px #0003, inset 0 0 0 1px var(--badge-color);background:#0003;border-color:#ffffff1a}.glassy-badge.svelte-1imzu92:hover{box-shadow:0 6px 16px #00000014, inset 0 0 0 1px var(--badge-color);background:#ffffff14;transform:translateY(-1px)}.indicator-dot.svelte-1imzu92{background:var(--badge-color);width:6px;height:6px;box-shadow:0 0 10px var(--badge-color);border-radius:9999px;position:relative}.indicator-dot.svelte-1imzu92:after{content:"";border:1px solid var(--badge-color);opacity:0;border-radius:9999px;animation:2s infinite svelte-1imzu92-pulse;position:absolute;inset:-2px}@keyframes svelte-1imzu92-pulse{0%{opacity:.5;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(3)}}.count.svelte-1imzu92{color:var(--badge-color);letter-spacing:-.01em;font-size:.75rem;font-weight:900}.label.svelte-1imzu92{color:var(--color-text);text-transform:uppercase;letter-spacing:.06em;opacity:.7;font-size:.62rem;font-weight:700}.metrics-grid.svelte-9j0inj{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;display:grid}.compact-empty.svelte-9j0inj{min-height:56px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.75rem;display:flex}@media (width<=640px){.metrics-grid.svelte-9j0inj{grid-template-columns:1fr}}.mem-table-wrap.svelte-83aj9g{border:1px solid var(--color-border);border-radius:14px;overflow-x:auto}.mem-table.svelte-83aj9g{border-collapse:collapse;width:100%;min-width:600px}.mem-thead-row.svelte-83aj9g{border-bottom:1px solid var(--color-border);background:#f8fafce6}html.dark .mem-thead-row.svelte-83aj9g{background:#0a1226d9}.mem-th.svelte-83aj9g{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:.7rem;font-weight:700}.mem-th.sortable.svelte-83aj9g{cursor:pointer}.mem-th.sortable.svelte-83aj9g:hover{color:var(--color-text)}.mem-td.svelte-83aj9g{border-bottom:1px solid var(--color-border);padding:10px 12px}html.dark .mem-td.svelte-83aj9g{border-color:#94a3b814}.mem-row.svelte-83aj9g{cursor:pointer;transition:background .15s}.mem-row.svelte-83aj9g:hover{background:#f1f5f9b3}html.dark .mem-row.svelte-83aj9g:hover,.mem-row.selected.svelte-83aj9g{background:#0ea5e90d}html.dark .mem-row.selected.svelte-83aj9g{background:#0ea5e914}.mem-row.svelte-83aj9g:last-child .mem-td:where(.svelte-83aj9g){border-bottom:none}.row-actions.svelte-83aj9g{opacity:0;white-space:nowrap;align-items:center;gap:4px;transition:opacity .15s;display:flex}.mem-row.svelte-83aj9g:hover .row-actions:where(.svelte-83aj9g){opacity:1}.row-action-btn.svelte-83aj9g{cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.edit-btn.svelte-83aj9g:hover{color:#0ea5e9;background:#0ea5e91a}html.dark .edit-btn.svelte-83aj9g:hover{color:#38bdf8;background:#0ea5e926}.delete-btn.svelte-83aj9g:hover{color:#ef4444;background:#ef44441a}html.dark .delete-btn.svelte-83aj9g:hover{color:#fca5a5;background:#ef444426}.bulk-actions-bar.svelte-83aj9g{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;color:#fff;background:#1e293bf2;border:1px solid #ffffff1a;border-radius:9999px;align-items:center;gap:8px;padding:10px 16px;font-size:.85rem;animation:.3s cubic-bezier(.16,1,.3,1) forwards svelte-83aj9g-slideUp;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000004d}html:not(.dark) .bulk-actions-bar.svelte-83aj9g{color:var(--color-text);border-color:var(--color-border);background:#fffffff2;box-shadow:0 10px 30px #0000001a}@keyframes svelte-83aj9g-slideUp{0%{opacity:0;transform:translate(-50%,20px)scale(.95)}to{opacity:1;transform:translate(-50%)scale(1)}}.markdown-body.svelte-d5v60e{line-height:1.6}.markdown-body.svelte-d5v60e p:where(.svelte-d5v60e){margin-bottom:1em}.markdown-body.svelte-d5v60e code:where(.svelte-d5v60e){background-color:#0000000d;border-radius:3px;padding:.2em .4em;font-family:monospace}.markdown-body.svelte-d5v60e pre:where(.svelte-d5v60e){background-color:#0000000d;border-radius:5px;padding:1em;overflow:auto}.markdown-body.svelte-d5v60e table:where(.svelte-d5v60e){border-collapse:collapse;width:100%;margin-bottom:1em}.markdown-body.svelte-d5v60e th:where(.svelte-d5v60e),.markdown-body.svelte-d5v60e td:where(.svelte-d5v60e){text-align:left;border:1px solid #ddd;padding:8px}.markdown-body.svelte-d5v60e blockquote:where(.svelte-d5v60e){color:#666;border-left:4px solid #ddd;margin:1em 0;padding-left:1em}.chat-container-viewport.svelte-h6z84x{scroll-behavior:smooth;background:#00000005;flex-direction:column;flex:1;padding:24px 32px;display:flex;overflow-y:auto}html.dark .chat-container-viewport.svelte-h6z84x{background-color:#0b141a;background-image:radial-gradient(#ffffff08 1px,#0000 1px);background-size:20px 20px}.chat-container.svelte-h6z84x{flex-direction:column;gap:12px;min-height:min-content;padding-bottom:20px;display:flex}.date-header.svelte-h6z84x{z-index:10;justify-content:center;margin:24px 0 12px;display:flex;position:sticky;top:-12px}.date-header.svelte-h6z84x span:where(.svelte-h6z84x){-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#54656f;text-transform:uppercase;letter-spacing:.06em;background:#fffffff2;border:1px solid #0000000d;border-radius:10px;padding:6px 14px;font-size:.7rem;font-weight:700;box-shadow:0 1px 3px #00000014}html.dark .date-header.svelte-h6z84x span:where(.svelte-h6z84x){color:#8696a0;background:#182229}.bubble-row.svelte-h6z84x{align-items:flex-end;gap:8px;width:100%;margin-bottom:4px;display:flex}.bubble-row-right.svelte-h6z84x{justify-content:flex-end}.bubble-row-left.svelte-h6z84x{justify-content:flex-start}.bubble-wrap.svelte-h6z84x{max-width:80%;position:relative}.chat-bubble.svelte-h6z84x{border-radius:12px;padding:8px 10px 18px;font-size:.875rem;line-height:1.4;transition:transform .2s;position:relative;box-shadow:0 1px .5px #00000021}.chat-bubble-action.svelte-h6z84x{background:var(--bubble-bg-light);color:#111b21;border-top-right-radius:0}.chat-bubble-mcp.svelte-h6z84x{background:var(--bubble-bg-light);color:#111b21;border-top-left-radius:0}html.dark .chat-bubble-action.svelte-h6z84x,html.dark .chat-bubble-mcp.svelte-h6z84x{background:var(--bubble-bg-dark);color:#e9edef}.tail.svelte-h6z84x{width:12px;height:12px;position:absolute;top:0}.tail-right.svelte-h6z84x{background:radial-gradient(circle at 100% 0,#0000 8px,#dcf8c6 8px);right:-8px}.tail-left.svelte-h6z84x{background:radial-gradient(circle at 0 0,#0000 8px,#fff 8px);left:-8px}html.dark .chat-bubble-action.svelte-h6z84x{--bubble-bg-dark:#056162}html.dark .tail-right.svelte-h6z84x{background:radial-gradient(circle at 100% 0,#0000 8px,#056162 8px)}html.dark .tail-left.svelte-h6z84x{background:radial-gradient(circle at 0 0,#0000 8px,#202c33 8px)}.chat-avatar.svelte-h6z84x{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;box-shadow:0 2px 8px #0000001a}.agent-avatar.svelte-h6z84x{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1)}.mcp-avatar.svelte-h6z84x{color:#54656f;background:#f0f2f5}html.dark .mcp-avatar.svelte-h6z84x{color:#8696a0;background:#182229}.action-badge.svelte-h6z84x{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;align-items:center;gap:4px;margin-bottom:4px;padding:2px 6px;font-size:.62rem;font-weight:800;display:inline-flex}.action-main.svelte-h6z84x{color:inherit;word-break:break-word;font-weight:600}.action-sub.svelte-h6z84x{opacity:.7;margin-top:2px;font-size:.75rem}.mcp-sender.svelte-h6z84x{color:#34b7f1;text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;margin-bottom:6px;font-size:.72rem;font-weight:800;display:flex}.read-more-btn.svelte-h6z84x{color:#34b7f1;cursor:pointer;text-align:left;background:0 0;border:none;width:100%;margin-top:4px;padding:4px 0;font-size:.75rem;font-weight:700;display:block}.read-more-btn.svelte-h6z84x:hover{text-decoration:underline}.bubble-meta.svelte-h6z84x{pointer-events:none;align-items:center;gap:3px;display:flex;position:absolute;bottom:4px;right:7px}.bubble-time.svelte-h6z84x{color:#667781;font-size:.65rem}html.dark .bubble-time.svelte-h6z84x{color:#ffffff80}.bubble-status.svelte-h6z84x{color:#53bdeb;display:flex}.load-more-spinner.svelte-h6z84x{color:var(--color-text-muted);opacity:.8;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.75rem;font-weight:600;display:flex}@keyframes svelte-h6z84x-slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes svelte-h6z84x-slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.animate-slide-in-right.svelte-h6z84x{animation:.3s ease-out forwards svelte-h6z84x-slideInRight}.animate-slide-in-left.svelte-h6z84x{animation:.3s ease-out forwards svelte-h6z84x-slideInLeft}.drawer-header.svelte-9n99wb{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.drawer-title.svelte-9n99wb{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.3}.editable-title.svelte-9n99wb{cursor:pointer;border-radius:6px;align-items:center;gap:6px;margin:-2px -4px;padding:2px 4px;transition:background .15s;display:flex}.editable-title.svelte-9n99wb:hover{background:#6366f112}.edit-hint.svelte-9n99wb{opacity:0;font-size:.7rem;transition:opacity .15s}.editable-title.svelte-9n99wb:hover .edit-hint:where(.svelte-9n99wb){opacity:1}.drawer-body.svelte-9n99wb{flex:1;padding:20px;overflow-y:auto}.meta-grid.svelte-9n99wb{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-9n99wb{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px}.dark .meta-cell.svelte-9n99wb{background:#1e293bcc}.meta-label.svelte-9n99wb{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:700}.meta-value.svelte-9n99wb{color:var(--color-text);font-size:.85rem;font-weight:600}.meta-subvalue.svelte-9n99wb{color:var(--color-text-muted);margin-top:4px;font-size:.7rem;line-height:1.35}.section-label.svelte-9n99wb{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px;font-size:.65rem;font-weight:700}.tag-chip.svelte-9n99wb{color:#6366f1;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;padding:2px 10px;font-size:.72rem}.md-card.svelte-9n99wb{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-9n99wb{background:#0f172acc}.json-pre.svelte-9n99wb{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}.dark .json-pre.svelte-9n99wb{background:#0f172acc}.comment-card.svelte-9n99wb{border:1px solid var(--color-border);background:#f1f5f980;border-radius:10px;padding:10px 14px}.dark .comment-card.svelte-9n99wb{background:#1e293b80}.comment-avatar.svelte-9n99wb{color:#fff;background:linear-gradient(135deg,#6366f1,#0ea5e9);border-radius:9999px;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;display:flex}.comment-compose.svelte-9n99wb{border:1px solid var(--color-border);background:#f1f5f980;border-radius:10px;padding:12px}.dark .comment-compose.svelte-9n99wb{background:#1e293b66}.drawer-header.svelte-17ad9lv{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.drawer-title.svelte-17ad9lv{color:var(--color-text);word-break:break-all;font-size:1rem;font-weight:700;line-height:1.3}.type-chip.svelte-17ad9lv{text-transform:uppercase;letter-spacing:.05em;color:#0ea5e9;background:#0ea5e91a;border-radius:20px;padding:3px 8px;font-size:.7rem;font-weight:700}.drawer-body.svelte-17ad9lv{flex-direction:column;gap:20px;padding:20px 24px;display:flex;overflow-y:auto}.drawer-section.svelte-17ad9lv{flex-direction:column;gap:8px;display:flex}.section-label.svelte-17ad9lv{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:4px;font-size:.75rem;font-weight:700}.md-card.svelte-17ad9lv{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-17ad9lv{background:#0f172acc}.modal-backdrop.svelte-intd6h{z-index:58;-webkit-backdrop-filter:blur(4px);background:#010c1e73;position:fixed;inset:0}.modal-panel.svelte-intd6h{z-index:59;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:600px;max-width:96vw;max-height:92vh;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 32px 96px #010c1e33,0 8px 32px #010c1e1f,inset 0 1px #ffffffb3}html.dark .modal-panel.svelte-intd6h{background:#070f1f;border-color:#94a3b81f;box-shadow:0 32px 96px #0009,0 8px 32px #0006,inset 0 1px #ffffff0a}.modal-header.svelte-intd6h{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px 16px;display:flex}.modal-header-icon.svelte-intd6h{color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #6366f159}.modal-mode-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:4px;font-size:.62rem;font-weight:700}.modal-title-input.svelte-intd6h{width:100%;padding:5px 10px;font-size:.92rem;font-weight:700}.modal-title-text.svelte-intd6h{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;line-height:1.3;overflow:hidden}.modal-header-actions.svelte-intd6h{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.danger-btn.svelte-intd6h{color:#ef4444!important}.modal-close-btn.svelte-intd6h{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.modal-close-btn.svelte-intd6h:hover{color:#ef4444;background:#ef44441a}.modal-body.svelte-intd6h{flex-direction:column;flex:1;gap:14px;padding:18px 20px;display:flex;overflow-y:auto}.field-grid-2.svelte-intd6h{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-group.svelte-intd6h{flex-direction:column;gap:5px;display:flex}.field-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:flex}.required.svelte-intd6h{color:#ef4444;font-size:.7rem}.field-hint.svelte-intd6h{text-transform:none;letter-spacing:0;color:var(--color-text-faint);margin-left:2px;font-size:.62rem;font-style:italic;font-weight:400}.importance-badge.svelte-intd6h{border-radius:9999px;margin-left:4px;padding:1px 7px;font-size:.72rem;font-weight:800}.importance-slider.svelte-intd6h{cursor:pointer;background:0 0;border:none;border-radius:9999px;outline:none;width:100%;height:4px;margin-top:4px;padding:0}.importance-ticks.svelte-intd6h{color:var(--color-text-muted);justify-content:space-between;margin-top:2px;padding:0 2px;font-size:.6rem;display:flex}.importance-ticks.svelte-intd6h span:where(.svelte-intd6h){font-weight:600;transition:color .2s}.importance-ticks.svelte-intd6h span.active:where(.svelte-intd6h){color:var(--color-text)}.content-label-row.svelte-intd6h{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.preview-btn.svelte-intd6h{padding:3px 8px;font-size:.65rem}.content-textarea.svelte-intd6h{resize:vertical;min-height:140px;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.6}.meta-grid.svelte-intd6h{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-intd6h{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px 12px}html.dark .meta-cell.svelte-intd6h{background:#1e293bcc}.meta-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.62rem;font-weight:700}.meta-value.svelte-intd6h{color:var(--color-text);font-size:.85rem;font-weight:600}.section-block.svelte-intd6h{flex-direction:column;gap:6px;display:flex}.tags-row.svelte-intd6h{flex-wrap:wrap;gap:6px;display:flex}.tag-chip.svelte-intd6h{color:#6366f1;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;padding:2px 10px;font-size:.72rem}html.dark .tag-chip.svelte-intd6h{color:#a5b4fc;background:#6366f12e;border-color:#6366f14d}.md-card.svelte-intd6h{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}html.dark .md-card.svelte-intd6h{background:#0f172acc}.json-pre.svelte-intd6h{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}html.dark .json-pre.svelte-intd6h{background:#0f172acc}.mem-error.svelte-intd6h{color:#ef4444;background:#ef444414;border:1px solid #ef444438;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:.8rem;display:flex}.modal-footer.svelte-intd6h{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.modal-save-btn.svelte-intd6h:disabled{opacity:.45;pointer-events:none}.modal-backdrop.svelte-lenod{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content.svelte-lenod{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:700px;max-width:95vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 30px 60px #00000080}.modal-header.svelte-lenod{border-bottom:1px solid var(--color-border);background:linear-gradient(90deg,#0ea5e914,#0000);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.header-icon.svelte-lenod{background:#0ea5e91a;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.modal-header.svelte-lenod h3:where(.svelte-lenod){color:var(--color-text);margin:0;font-size:1.15rem;font-weight:700}.close-btn.svelte-lenod{opacity:.6;transition:opacity .2s}.close-btn.svelte-lenod:hover{opacity:1}.drop-zone.svelte-lenod{border:2px dashed var(--color-border);background:#f1f5f908;border-radius:16px;justify-content:center;align-items:center;width:100%;height:240px;transition:all .3s;display:flex}.drop-zone.svelte-lenod:hover{background:#0ea5e908;border-color:#0ea5e9}.drop-zone-content.svelte-lenod{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.drop-zone-content.svelte-lenod p:where(.svelte-lenod){color:var(--color-text);margin:0;font-size:.95rem}.preview-container.svelte-lenod{border:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:12px;overflow:hidden}.preview-header.svelte-lenod{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);background:#0000000d;padding:8px 12px;font-size:.75rem;font-weight:700}.table-wrapper.svelte-lenod{max-height:200px;overflow-y:auto}table.svelte-lenod{border-collapse:collapse;width:100%;font-size:.75rem}th.svelte-lenod{text-align:left;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);z-index:1;background:#00000005;padding:8px 12px;font-weight:600;position:sticky;top:0}td.svelte-lenod{border-bottom:1px solid var(--color-border);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:200px;padding:8px 12px;overflow:hidden}tr.svelte-lenod:last-child td:where(.svelte-lenod){border-bottom:none}.modal-footer.svelte-lenod{border-top:1px solid var(--color-border);background:#00000005;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.error-msg.svelte-lenod{color:#f87171;background:#ef444414;border:1px solid #ef444433;border-radius:8px;margin-top:16px;padding:10px 14px;font-size:.8rem;font-weight:500}.spinner.svelte-lenod{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite svelte-lenod-spin}@keyframes svelte-lenod-spin{to{transform:rotate(360deg)}}.hidden.svelte-lenod{display:none}.modal-backdrop.svelte-l0ytfo{z-index:58;-webkit-backdrop-filter:blur(4px);background:#010c1e73;position:fixed;inset:0}.modal-panel.svelte-l0ytfo{z-index:59;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:520px;max-width:95vw;max-height:92vh;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 32px 96px #010c1e33,0 8px 32px #010c1e1f,inset 0 1px #ffffffb3}html.dark .modal-panel.svelte-l0ytfo{background:#070f1f;border-color:#94a3b81f;box-shadow:0 32px 96px #0009,0 8px 32px #0006,inset 0 1px #ffffff0a}.modal-header.svelte-l0ytfo{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px 16px;display:flex}.modal-header-icon.svelte-l0ytfo{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #0ea5e94d}.modal-title.svelte-l0ytfo{color:var(--color-text);letter-spacing:-.01em;font-size:.9rem;font-weight:800}.modal-subtitle.svelte-l0ytfo{color:var(--color-text-muted);margin-top:1px;font-size:.68rem}.modal-close-btn.svelte-l0ytfo{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:background .15s,color .15s;display:flex}.modal-close-btn.svelte-l0ytfo:hover{color:#ef4444;background:#ef44441a}.modal-body.svelte-l0ytfo{flex-direction:column;flex:1;gap:14px;padding:18px 20px;display:flex}.field-grid-2.svelte-l0ytfo{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-group.svelte-l0ytfo{flex-direction:column;gap:5px;display:flex}.field-label.svelte-l0ytfo{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:flex}.required.svelte-l0ytfo{color:#ef4444;font-size:.7rem}.field-hint.svelte-l0ytfo{color:var(--color-text-faint);text-transform:none;letter-spacing:0;margin-left:auto;font-size:.62rem;font-weight:500}.modal-textarea.svelte-l0ytfo{resize:vertical;min-height:96px;font-size:.82rem;line-height:1.55}.modal-footer.svelte-l0ytfo{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.modal-save-btn.svelte-l0ytfo:disabled{opacity:.45;pointer-events:none}.ref-header.svelte-w0wd5z{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ref-total-badge.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933;border-radius:9999px;padding:2px 8px;font-size:.62rem;font-weight:700}.ref-search-wrap.svelte-w0wd5z{flex:1;max-width:300px;position:relative}.ref-search-icon.svelte-w0wd5z{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.ref-search-input.svelte-w0wd5z{width:100%;padding-left:32px;padding-right:28px;font-size:.8rem}.ref-clear-btn.svelte-w0wd5z{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:4px;padding:2px;transition:color .15s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.ref-clear-btn.svelte-w0wd5z:hover{color:var(--color-text)}.ref-body.svelte-w0wd5z{grid-template-columns:160px 1fr;align-items:start;gap:16px;display:grid}@media (width<=700px){.ref-body.svelte-w0wd5z{grid-template-columns:1fr}}.ref-sidebar.svelte-w0wd5z{border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:3px;padding:12px;display:flex;position:sticky;top:80px}.ref-sidebar-label.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);padding:4px 8px 8px;font-size:.6rem;font-weight:700}.ref-cat-btn.svelte-w0wd5z{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:7px;width:100%;padding:7px 10px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.ref-cat-btn.svelte-w0wd5z:hover{color:var(--color-text);background:#0ea5e90f}.ref-cat-btn.active.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}html.dark .ref-cat-btn.active.svelte-w0wd5z{color:#38bdf8;background:#0ea5e926;border-color:#38bdf840}.ref-cat-count.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1f;border-radius:9999px;margin-left:auto;padding:1px 6px;font-size:.62rem;font-weight:700}.ref-main.svelte-w0wd5z{flex-direction:column;display:flex}.ref-section-header.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);align-items:center;gap:6px;margin-bottom:10px;font-size:.72rem;font-weight:700;display:flex}.ref-section-count.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1a;border-radius:9999px;padding:1px 6px;font-size:.6rem;font-weight:700}.ref-grid.svelte-w0wd5z{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.ref-card.svelte-w0wd5z{cursor:pointer;background:#fff;border:1px solid #0000000f;border-radius:16px;flex-direction:column;gap:8px;padding:18px 20px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #00000008}.ref-card.svelte-w0wd5z:before{content:"";background:0 0;height:3px;transition:all .2s;position:absolute;top:0;left:0;right:0}.ref-card.svelte-w0wd5z:hover{border-color:#00000014;transform:translateY(-2px);box-shadow:0 12px 24px -4px #00000014,0 8px 12px -6px #0000000a}html.dark .ref-card.svelte-w0wd5z{background:#0a1226cc;border:1px solid #ffffff14;box-shadow:0 4px 12px #0003}html.dark .ref-card.svelte-w0wd5z:hover{border-color:#ffffff26;box-shadow:0 10px 30px #0006}.ref-card-tool.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#6366f1,#a855f7)}.ref-card-prompt.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#a855f7,#ec4899)}.ref-card-resource.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#10b981,#3b82f6)}.ref-card-top.svelte-w0wd5z{align-items:center;gap:6px;display:flex}.ref-type-badge.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.06em;border:1px solid #0000;border-radius:9999px;align-items:center;gap:4px;padding:2px 7px;font-size:.6rem;font-weight:700;display:inline-flex}.ref-type-tool.svelte-w0wd5z{color:#6366f1;background:#6366f11a;border-color:#6366f133}.ref-type-prompt.svelte-w0wd5z{color:#a855f7;background:#a855f71a;border-color:#a855f733}html.dark .ref-type-tool.svelte-w0wd5z{color:#818cf8}html.dark .ref-type-prompt.svelte-w0wd5z{color:#c084fc}.ref-card-name.svelte-w0wd5z{color:var(--color-text);word-break:break-word;font-size:.82rem;font-weight:700}.ref-card-desc.svelte-w0wd5z{color:var(--color-text-muted);font-size:.72rem;line-height:1.55}.ref-params.svelte-w0wd5z{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.ref-param-tag.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e914;border:1px solid #0ea5e92e;border-radius:5px;padding:1px 6px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.65rem}.ref-param-more.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1a;border-color:#64748b33}html.dark .ref-param-tag.svelte-w0wd5z{color:#38bdf8;background:#0ea5e91f;border-color:#38bdf833}.fab-backdrop.svelte-10ega5z{z-index:49;cursor:default;background:0 0;position:fixed;inset:0}.fab-container.svelte-10ega5z{z-index:50;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:28px;right:28px}.fab-actions.svelte-10ega5z{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.fab-action-item.svelte-10ega5z{opacity:0;pointer-events:none;align-items:center;gap:10px;transition:opacity .2s,transform .2s;display:flex;transform:translateY(12px)scale(.92)}.fab-container.open.svelte-10ega5z .fab-action-item:where(.svelte-10ega5z){opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.fab-action-label.svelte-10ega5z{color:var(--color-text);background:var(--color-surface,#fff);border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;letter-spacing:.01em;border-radius:8px;padding:4px 10px;font-size:.72rem;font-weight:700;box-shadow:0 2px 8px #0000001a}html.dark .fab-action-label.svelte-10ega5z{color:#e2e8f0;background:#0f172aeb}.fab-action-btn.svelte-10ega5z{cursor:pointer;color:#fff;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:transform .2s,box-shadow .2s;display:flex}.fab-action-btn.memory.svelte-10ega5z{background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 4px 14px #6366f166}.fab-action-btn.task.svelte-10ega5z{background:linear-gradient(135deg,#0ea5e9,#06b6d4);box-shadow:0 4px 14px #0ea5e966}.fab-action-btn.svelte-10ega5z:hover{transform:scale(1.1)}.fab-action-btn.memory.svelte-10ega5z:hover{box-shadow:0 6px 20px #6366f18c}.fab-action-btn.task.svelte-10ega5z:hover{box-shadow:0 6px 20px #0ea5e98c}.fab-main.svelte-10ega5z{cursor:pointer;color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 4px 20px #0ea5e973,0 0 #0ea5e900}.fab-main.svelte-10ega5z:hover{transform:scale(1.08);box-shadow:0 6px 28px #0ea5e999,0 0 #0ea5e900}.fab-main.svelte-10ega5z:active{transform:scale(.96)}.fab-icon.svelte-10ega5z{justify-content:center;align-items:center;transition:transform .25s cubic-bezier(.4,0,.2,1);display:flex}.fab-icon.rotated.svelte-10ega5z{transform:rotate(45deg)}.fab-container.svelte-10ega5z:not(.open) .fab-main:where(.svelte-10ega5z):after{content:"";pointer-events:none;border:2px solid #0ea5e966;border-radius:50%;animation:2.4s ease-out infinite svelte-10ega5z-fab-pulse;position:absolute;inset:-4px}@keyframes svelte-10ega5z-fab-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.45)}}@media (width<=640px){.fab-container.svelte-10ega5z{bottom:max(18px, env(safe-area-inset-bottom));right:14px}.fab-main.svelte-10ega5z{width:48px;height:48px}.fab-container.svelte-10ega5z:not(.open) .fab-main:where(.svelte-10ega5z):after{display:none}}.feature-shell.svelte-owkwhr{flex-direction:column;gap:14px;display:flex}.feature-toolbar.svelte-owkwhr{grid-template-columns:1fr auto;align-items:start;gap:14px;padding:16px;display:grid}.toolbar-title.svelte-owkwhr{align-items:center;gap:10px;display:flex}.toolbar-action.svelte-owkwhr{justify-self:end}.toolbar-subtitle.svelte-owkwhr{color:var(--color-text-muted);margin-top:2px;font-size:.72rem;font-weight:600}.toolbar-controls.svelte-owkwhr{grid-column:1/-1;grid-template-columns:minmax(220px,1.2fr) minmax(130px,.6fr) minmax(180px,1fr) minmax(140px,.6fr);gap:10px;display:grid}.feature-grid.svelte-owkwhr{grid-template-columns:minmax(320px,.9fr) minmax(0,1.25fr);align-items:start;gap:14px;display:grid}.panel-card.svelte-owkwhr{min-width:0;padding:16px}.panel-heading.svelte-owkwhr{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.form-grid.svelte-owkwhr{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 10px;display:grid}.standard-group.svelte-owkwhr{flex-direction:column;gap:8px;display:flex}.standard-children.svelte-owkwhr{border-left:1px solid var(--color-border,#94a3b847);flex-direction:column;gap:8px;margin-left:14px;padding-left:12px;display:flex}.standard-row-root.svelte-owkwhr{width:100%}.standard-row-child.svelte-owkwhr{background:#94a3b80f;width:100%}.row-title.svelte-owkwhr svg{flex:none}.detail-actions.svelte-owkwhr{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.editor-actions.svelte-owkwhr{gap:10px;margin-top:12px;display:flex}.danger-text.svelte-owkwhr{color:var(--color-danger,#d04b4b)}label.svelte-owkwhr span:where(.svelte-owkwhr){color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.68rem;font-weight:800;display:block}.content-input.svelte-owkwhr{resize:vertical;min-height:150px;margin-bottom:10px}.content-label.svelte-owkwhr{display:block}.list-panel.svelte-owkwhr,.detail-panel.svelte-owkwhr{min-height:460px}.standard-list.svelte-owkwhr{flex-direction:column;gap:8px;max-height:650px;margin-top:12px;display:flex;overflow:auto}.standard-row.svelte-owkwhr{text-align:left;border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);background:#ffffff7a;border-radius:8px;padding:12px}.standard-row.svelte-owkwhr:hover,.standard-row.selected.svelte-owkwhr{background:#0ea5e914;border-color:#0ea5e973}.row-title.svelte-owkwhr{margin-bottom:6px;font-size:.9rem;font-weight:800}.row-meta.svelte-owkwhr{color:var(--color-text-muted);flex-wrap:wrap;gap:8px;font-size:.72rem;font-weight:600;display:flex}.tag-row.svelte-owkwhr{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.mini-chip.svelte-owkwhr,.scope-pill.svelte-owkwhr{border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:2px 7px;font-size:.68rem;font-weight:700}.detail-heading.svelte-owkwhr{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.detail-title.svelte-owkwhr{color:var(--color-text);margin-bottom:6px;font-size:1rem;font-weight:850}.muted-state.svelte-owkwhr{color:var(--color-text-muted);text-align:center;padding:24px 4px;font-size:.85rem}.empty-state.svelte-owkwhr{min-height:260px;color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.empty-title.svelte-owkwhr{color:var(--color-text);font-size:.92rem;font-weight:850}.empty-copy.svelte-owkwhr{max-width:260px;font-size:.78rem;line-height:1.45}.detail-empty.svelte-owkwhr{min-height:360px}.error-banner.svelte-owkwhr{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:700}html.dark .standard-row.svelte-owkwhr{background:#0f172a73}html.dark .standard-row.svelte-owkwhr:hover,html.dark .standard-row.selected.svelte-owkwhr{background:#0ea5e91f}@media (width<=1100px){.toolbar-controls.svelte-owkwhr,.feature-grid.svelte-owkwhr,.form-grid.svelte-owkwhr,.feature-toolbar.svelte-owkwhr{grid-template-columns:1fr}.toolbar-action.svelte-owkwhr{justify-content:center;justify-self:stretch}.list-panel.svelte-owkwhr,.detail-panel.svelte-owkwhr{min-height:auto}}.feature-shell.svelte-1ik2acm{flex-direction:column;gap:14px;display:flex}.feature-toolbar.svelte-1ik2acm{grid-template-columns:1fr auto;align-items:start;gap:14px;padding:16px;display:grid}.toolbar-title.svelte-1ik2acm{align-items:center;gap:10px;display:flex}.toolbar-subtitle.svelte-1ik2acm{color:var(--color-text-muted);margin-top:2px;font-size:.72rem;font-weight:600}.toolbar-actions.svelte-1ik2acm{justify-content:flex-end;align-items:center;gap:8px;display:flex}.toolbar-controls.svelte-1ik2acm{grid-column:1/-1;grid-template-columns:160px minmax(180px,1fr) auto;align-items:center;gap:10px;display:grid}.action-grid.svelte-1ik2acm{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.feature-grid.svelte-1ik2acm{grid-template-columns:minmax(360px,.95fr) minmax(0,1.05fr);align-items:start;gap:14px;display:grid}.detail-stack.svelte-1ik2acm{flex-direction:column;gap:14px;min-width:0;display:flex}.panel-card.svelte-1ik2acm{min-width:0;padding:16px}.action-panel.svelte-1ik2acm{min-height:0}.panel-heading.svelte-1ik2acm{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.form-stack.svelte-1ik2acm{flex-direction:column;gap:8px;margin-top:12px;display:flex}label.svelte-1ik2acm span:where(.svelte-1ik2acm){color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.68rem;font-weight:800;display:block}.summary-input.svelte-1ik2acm{resize:vertical;min-height:92px}.json-input.svelte-1ik2acm{resize:vertical;min-height:86px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}.handoff-list.svelte-1ik2acm{flex-direction:column;gap:8px;max-height:650px;margin-top:12px;display:flex;overflow:auto}.handoff-row.svelte-1ik2acm{text-align:left;border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);background:#ffffff7a;border-radius:8px;padding:12px}.handoff-row.svelte-1ik2acm:hover,.handoff-row.selected.svelte-1ik2acm{background:#0ea5e914;border-color:#0ea5e973}.handoff-top.svelte-1ik2acm{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.status-pill.svelte-1ik2acm{text-transform:uppercase;border:1px solid var(--color-border);border-radius:999px;padding:2px 8px;font-size:.67rem;font-weight:850}.status-pending.svelte-1ik2acm{color:#0369a1;background:#0ea5e91f}.status-accepted.svelte-1ik2acm{color:#047857;background:#10b9811f}.status-rejected.svelte-1ik2acm{color:#b91c1c;background:#ef44441f}.status-expired.svelte-1ik2acm{color:#64748b;background:#64748b1f}.row-title.svelte-1ik2acm{margin-bottom:6px;font-size:.9rem;font-weight:800;line-height:1.35}.row-meta.svelte-1ik2acm{color:var(--color-text-muted);flex-wrap:wrap;gap:8px;font-size:.72rem;font-weight:600;display:flex}.row-date.svelte-1ik2acm{color:var(--color-text-muted);font-size:.7rem;font-weight:700}.claim-result.svelte-1ik2acm,.linked-task.svelte-1ik2acm{background:#10b98114;border:1px solid #10b98140;border-radius:8px;margin-top:14px;padding:12px}.context-card.svelte-1ik2acm{margin-top:14px}.claim-list.svelte-1ik2acm{flex-direction:column;gap:8px;display:flex}.claim-row.svelte-1ik2acm{border:1px solid var(--color-border);background:#ffffff0a;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.claims-empty.svelte-1ik2acm{min-height:160px}.json-pre.svelte-1ik2acm{color:#e2e8f0;background:#0f172ac7;border-radius:10px;margin:0;padding:12px;font-size:.72rem;overflow:auto}.muted-inline.svelte-1ik2acm{color:var(--color-text-muted);word-break:break-all;margin-top:4px;font-size:.68rem}.detail-title.svelte-1ik2acm{color:var(--color-text);margin-bottom:14px;font-size:1rem;font-weight:850;line-height:1.35}.detail-grid.svelte-1ik2acm{grid-template-columns:1fr 1fr;gap:10px;display:grid}.detail-grid.svelte-1ik2acm div:where(.svelte-1ik2acm){border:1px solid var(--color-border);border-radius:8px;padding:10px}.detail-grid.svelte-1ik2acm span:where(.svelte-1ik2acm){color:var(--color-text-muted);text-transform:uppercase;margin-bottom:4px;font-size:.68rem;font-weight:750;display:block}.detail-grid.svelte-1ik2acm strong:where(.svelte-1ik2acm){color:var(--color-text);word-break:break-word;font-size:.82rem}.status-actions.svelte-1ik2acm{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.muted-state.svelte-1ik2acm{color:var(--color-text-muted);text-align:center;padding:24px 4px;font-size:.85rem}.empty-state.svelte-1ik2acm{min-height:260px;color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.empty-title.svelte-1ik2acm{color:var(--color-text);font-size:.92rem;font-weight:850}.empty-copy.svelte-1ik2acm{max-width:260px;font-size:.78rem;line-height:1.45}.detail-empty.svelte-1ik2acm{min-height:260px}.error-banner.svelte-1ik2acm{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:700}html.dark .handoff-row.svelte-1ik2acm{background:#0f172a73}html.dark .handoff-row.svelte-1ik2acm:hover,html.dark .handoff-row.selected.svelte-1ik2acm{background:#0ea5e91f}@media (width<=1280px){.feature-toolbar.svelte-1ik2acm{grid-template-columns:1fr}.toolbar-actions.svelte-1ik2acm{justify-content:stretch}.toolbar-actions.svelte-1ik2acm .btn:where(.svelte-1ik2acm){flex:1;justify-content:center}}@media (width<=760px){.toolbar-controls.svelte-1ik2acm,.feature-grid.svelte-1ik2acm,.detail-grid.svelte-1ik2acm,.action-grid.svelte-1ik2acm{grid-template-columns:1fr}.toolbar-actions.svelte-1ik2acm{flex-direction:column}.toolbar-actions.svelte-1ik2acm .btn:where(.svelte-1ik2acm){width:100%}}.arena-root.svelte-1pykpun{border-radius:24px;padding:0;overflow:hidden}.arena-hdr.svelte-1pykpun{border-bottom:1px solid var(--color-border);background:#ffffff08;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.arena-hdr-left.svelte-1pykpun{align-items:center;gap:10px;display:flex}.arena-icon.svelte-1pykpun{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#fff;width:36px;height:36px;box-shadow:0 4px 12px var(--glow-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.arena-sub.svelte-1pykpun{color:var(--color-text-muted);margin-top:1px;font-size:.67rem;font-weight:600}.arena-hdr-right.svelte-1pykpun{align-items:center;display:flex}.badge.svelte-1pykpun{border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.7rem;font-weight:700;display:flex}.badge.loading.svelte-1pykpun{color:var(--color-text-muted);background:#64748b1a}.badge.error.svelte-1pykpun{color:#ef4444;background:#ef44441a}.badge.live.svelte-1pykpun{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.pulse-dot.svelte-1pykpun{background:#10b981;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1.8s ease-in-out infinite status-blink}.arena-wrap.svelte-1pykpun{background:var(--color-bg);width:100%;position:relative}.arena-canvas.svelte-1pykpun{width:100%;height:auto;display:block}.arena-empty.svelte-1pykpun{color:var(--color-text-muted);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.agent-tip.svelte-1pykpun{z-index:20;pointer-events:none;border:1px solid var(--color-border);background:var(--color-surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;min-width:164px;padding:10px 12px;font-size:.77rem;position:absolute;box-shadow:0 8px 28px #0000002e}.tip-name.svelte-1pykpun{color:var(--color-text);align-items:center;gap:6px;margin-bottom:7px;font-size:.82rem;font-weight:800;display:flex}.tip-dot.svelte-1pykpun{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tip-row.svelte-1pykpun{color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:8px;padding:1px 0;font-size:.73rem;display:flex}.tip-key.svelte-1pykpun{text-transform:uppercase;letter-spacing:.05em;opacity:.65;font-size:.67rem;font-weight:700}.tip-state.svelte-1pykpun{font-weight:700}.tip-state.processing.svelte-1pykpun{color:#a855f7}.tip-state.idle.svelte-1pykpun{color:#64748b}.tip-state.claiming.svelte-1pykpun{color:#0ea5e9}.tip-state.handoff_out.svelte-1pykpun{color:#f59e0b}.tip-state.handoff_in.svelte-1pykpun{color:#10b981}.tip-repos.svelte-1pykpun{text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:.68rem;overflow:hidden}.arena-legend.svelte-1pykpun{border-top:1px solid var(--color-border);background:#ffffff05;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:9px 20px;display:flex}.legend-section.svelte-1pykpun{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.legend-item.svelte-1pykpun{color:var(--color-text-muted);align-items:center;gap:5px;font-size:.68rem;font-weight:600;display:flex}.lg-dot.svelte-1pykpun{border-radius:50%;flex-shrink:0;width:8px;height:8px}.lg-dash.svelte-1pykpun{border-top:2px dashed #6366f18c;flex-shrink:0;width:18px;height:0;display:inline-block}.lg-dash[style].svelte-1pykpun{border-top-style:dashed}.global-shell.svelte-1eglegg{flex-direction:column;gap:14px;display:flex}.panel-card.svelte-1eglegg{padding:16px}.panel-header.svelte-1eglegg{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.panel-copy.svelte-1eglegg{color:var(--color-text-muted);max-width:620px;font-size:.76rem;line-height:1.45}.repo-focus.svelte-1eglegg{color:#6366f1;background:#6366f114;border:1px solid #6366f129;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.68rem;font-weight:800;display:inline-flex}.summary-grid.svelte-1eglegg{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.summary-card.svelte-1eglegg{border:1px solid var(--color-border);text-align:center;border-radius:14px;padding:12px 10px}.summary-icon.svelte-1eglegg{opacity:.85;justify-content:center;margin-bottom:4px;display:flex}.summary-value.svelte-1eglegg{letter-spacing:-.04em;font-size:1.45rem;font-weight:900;line-height:1}.summary-label.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:.62rem;font-weight:800}.grid-two.svelte-1eglegg{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.subheading.svelte-1eglegg{color:var(--color-text);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.72rem;font-weight:800}.mini-grid.svelte-1eglegg{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mini-card.svelte-1eglegg{border:1px solid var(--color-border);background:#ffffff08;border-radius:12px;padding:12px}.mini-icon.svelte-1eglegg{opacity:.8;margin-bottom:6px}.mini-value.svelte-1eglegg{letter-spacing:-.03em;font-size:1.2rem;font-weight:900;line-height:1}.mini-label.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:.64rem;font-weight:800}.repo-table.svelte-1eglegg{flex-direction:column;gap:8px;display:flex}.repo-table-head.svelte-1eglegg,.repo-table-row.svelte-1eglegg{grid-template-columns:minmax(180px,1.4fr) 90px minmax(190px,1.2fr) minmax(180px,1.2fr) 110px;align-items:center;gap:12px;display:grid}.repo-table-head.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;padding:0 10px 6px;font-size:.62rem;font-weight:800}.repo-table-row.svelte-1eglegg{border:1px solid var(--color-border);background:#ffffff0a;border-radius:12px;padding:12px 10px}.repo-table-row.selected.svelte-1eglegg{background:#6366f10f;border-color:#6366f147}.repo-name.svelte-1eglegg{color:var(--color-text);font-size:.84rem;font-weight:800}.repo-meta.svelte-1eglegg,.last-activity.svelte-1eglegg{color:var(--color-text-muted);font-size:.68rem;font-weight:600}.pressure-pill.svelte-1eglegg{color:#ef4444;background:#ef444414;border:1px solid #ef444429;border-radius:999px;justify-content:center;align-items:center;min-width:56px;padding:6px 10px;font-size:.78rem;font-weight:900;display:inline-flex}.repo-stats.svelte-1eglegg{flex-wrap:wrap;gap:6px;display:flex}.stat-chip.svelte-1eglegg{border:1px solid #0000;border-radius:999px;align-items:center;padding:3px 7px;font-size:.62rem;font-weight:800;display:inline-flex}.stat-chip.active.svelte-1eglegg{color:#8b5cf6;background:#8b5cf61a;border-color:#8b5cf629}.stat-chip.pending.svelte-1eglegg{color:#0ea5e9;background:#0ea5e91a;border-color:#0ea5e929}.stat-chip.blocked.svelte-1eglegg{color:#ef4444;background:#ef44441a;border-color:#ef444429}.stat-chip.backlog.svelte-1eglegg{color:#64748b;background:#64748b1a;border-color:#64748b29}.stat-chip.claim.svelte-1eglegg{color:#10b981;background:#10b9811a;border-color:#10b98129}.stat-chip.handoff.svelte-1eglegg{color:#6366f1;background:#6366f11a;border-color:#6366f129}.stat-chip.stale.svelte-1eglegg{color:#f97316;background:#f973161a;border-color:#f9731629}.empty-state.svelte-1eglegg{min-height:120px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.82rem;display:flex}@media (width<=1080px){.grid-two.svelte-1eglegg,.mini-grid.svelte-1eglegg{grid-template-columns:1fr}.repo-table-head.svelte-1eglegg{display:none}.repo-table-row.svelte-1eglegg{grid-template-columns:1fr;align-items:flex-start}}@media (width<=900px){.dashboard-grid.svelte-1m88iwd,.repo-pulse-grid.svelte-1m88iwd{grid-template-columns:1fr!important}}
|
|
1
|
+
@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--glass-bg:#ffffff85;--glass-bg-strong:#ffffffb8;--glass-bg-ultra:#ffffffe0;--glass-border:#fff6;--glass-border-inner:#ffffffb3;--glass-shadow:0 20px 70px #0f172a1a, 0 4px 16px #0f172a0f;--glass-shadow-elevated:0 32px 96px #0f172a29, 0 8px 32px #0f172a14;--glass-blur:blur(28px) saturate(1.2);--panel-dark:#060c1cb3;--panel-dark-strong:#040916e0;--panel-dark-ultra:#020610f5;--panel-dark-border:#94a3b81a;--panel-dark-border-glow:#38bdf833;--panel-dark-shadow:0 28px 90px #02061799, inset 0 1px 0 #94a3b80f;--glow-primary:#0ea5e959;--glow-accent:#6366f159;--glow-success:#10b98159;--glow-danger:#ef444459;--glow-purple:#a855f759;--glow-cyan:#06b6d459;--sidebar-width:280px;--sidebar-collapsed-width:72px;--header-height:60px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--color-bg:#f0f8ff;--color-surface:#fff;--color-border:#e1ecf7;--color-text:#0a1628;--color-text-muted:#556f8a;--color-text-faint:#8faec4;--color-primary:#0ea5e9;--color-primary-dark:#0284c7;--color-primary-light:#38bdf8;--color-accent:#6366f1;--color-accent-dark:#4f46e5;--color-success:#10b981;--color-warning:#f59e0b;--color-danger:#ef4444;--color-purple:#a855f7;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);--duration-fast:.15s;--duration-base:.25s;--duration-slow:.4s}.dark{--color-bg:#010c1e;--color-surface:#070f1f;--color-border:#94a3b81a;--color-text:#e9f1fa;--color-text-muted:#7fa3be;--color-text-faint:#4a6782;--color-primary:#38bdf8;--color-primary-dark:#0ea5e9;--color-primary-light:#7dd3fc}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(at 8% 10%,#38bdf847 0%,#0000 38%),radial-gradient(at 92% 8%,#6366f12e 0%,#0000 32%),radial-gradient(at 75% 88%,#a855f71f 0%,#0000 28%),radial-gradient(at 20% 75%,#0ea5e91a 0%,#0000 26%),linear-gradient(160deg,#eef8ff 0%,#f0f4ff 45%,#f5f0ff 100%) fixed;min-height:100vh;font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.5;transition:background .5s}html.dark{background:radial-gradient(at 8% 10%,#0ea5e924 0%,#0000 38%),radial-gradient(at 92% 8%,#4338ca1f 0%,#0000 32%),radial-gradient(at 75% 88%,#581c871a 0%,#0000 28%),radial-gradient(at 20% 75%,#0ea5e90f 0%,#0000 26%),linear-gradient(160deg,#010c1e 0%,#040d1e 45%,#050c1a 100%) fixed}body{min-height:100vh;color:var(--color-text);transition:color var(--duration-base) ease;background:0 0;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3}code,pre{font-family:JetBrains Mono,Fira Code,monospace}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-dark)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b840;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b873}.dark ::-webkit-scrollbar-thumb{background:#3341558c}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);position:relative}.glass:before{content:"";border-radius:inherit;border:1px solid var(--glass-border-inner);opacity:.6;pointer-events:none;z-index:0;border-bottom-color:#0000;border-right-color:#0000;position:absolute;inset:0}.dark .glass{background:var(--panel-dark);border-color:var(--panel-dark-border);box-shadow:var(--panel-dark-shadow)}.dark .glass:before{opacity:.8;border-color:#94a3b812 #0000 #0000 #94a3b812}.glass-strong{background:var(--glass-bg-strong)!important}.dark .glass-strong{background:var(--panel-dark-strong)!important}.glass-card{border-radius:var(--radius-lg);padding:20px;position:relative;overflow:hidden}.glass-card:after{content:"";border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(135deg,#ffffff14 0%,#0000 60%);position:absolute;inset:0}.dark .glass-card:after{background:linear-gradient(135deg,#94a3b80a 0%,#0000 60%)}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);height:100dvh;transition:width .3s var(--ease-smooth);z-index:40;position:fixed;top:0;left:0;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.main-content{min-width:0;margin-left:var(--sidebar-width);transition:margin-left .3s var(--ease-smooth);flex:1}.dashboard-shell{min-width:0;min-height:100vh;padding:20px}.sidebar.collapsed~.main-content,.main-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width)}@media (width<=1024px){.app-layout>.sidebar{display:none!important}.main-content{margin-left:0!important}}.mobile-sidebar-shell{z-index:39;flex-direction:column;width:min(320px,86vw);height:100dvh;display:flex;position:fixed;inset:0 auto 0 0}.mobile-sidebar-shell .sidebar{width:100%!important;height:100dvh!important;display:flex!important;position:relative!important}.top-bar{z-index:30;position:sticky;top:0}.tab-nav{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f1f5f9b3;border:1px solid #e2e8f0cc;gap:3px;padding:4px;display:flex}.tabs-wrap{scrollbar-width:none;max-width:100%;margin-bottom:20px;overflow:auto hidden}.tabs-wrap::-webkit-scrollbar{display:none}.dark .tab-nav{background:#0f172a99;border-color:#94a3b81a}.tab-btn{color:var(--color-text-muted);transition:all var(--duration-base) var(--ease-smooth);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9px;align-items:center;gap:6px;padding:7px 14px;font-size:.8rem;font-weight:600;display:flex;position:relative;overflow:hidden}.tab-btn:after{content:"";opacity:0;transition:opacity var(--duration-base) ease;pointer-events:none;background:radial-gradient(circle,#0ea5e91f,#0000 70%);position:absolute;inset:0}.tab-btn:hover{color:var(--color-text)}.tab-btn:hover:after{opacity:1}.dark .tab-btn:hover{color:var(--color-text)}.tab-btn.active{color:var(--color-primary);background:#fff;box-shadow:0 2px 10px #00000012,0 1px 3px #0000000d}.tab-btn.active:after{opacity:0}.dark .tab-btn.active{color:#7dd3fc;background:#0a1226f2;box-shadow:0 0 0 1px #38bdf833,0 4px 12px #00000059}.btn{border-radius:var(--radius-md);transition:all var(--duration-base) var(--ease-smooth);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:.8rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;transition:opacity var(--duration-fast) ease;pointer-events:none;background:linear-gradient(135deg,#ffffff26 0%,#0000 100%);position:absolute;inset:0}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;box-shadow:0 4px 14px var(--glow-primary), inset 0 1px 0 #fff3;border-color:#0284c780}.btn-primary:hover{box-shadow:0 6px 20px var(--glow-primary), inset 0 1px 0 #fff3;transform:translateY(-1px)}.dark .btn-primary{color:#7dd3fc;background:linear-gradient(135deg,#0ea5e933 0%,#0284c71f 100%);border-color:#0ea5e966;box-shadow:inset 0 0 0 1px #0ea5e926,0 4px 14px #0ea5e92e}.dark .btn-primary:hover{color:#bae6fd;background:linear-gradient(135deg,#0ea5e94d 0%,#0284c733 100%);box-shadow:inset 0 0 0 1px #38bdf840,0 6px 20px #0ea5e947}.btn-accent{background:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);color:#fff;box-shadow:0 4px 14px var(--glow-accent), inset 0 1px 0 #fff3;border-color:#4f46e580}.btn-accent:hover{box-shadow:0 6px 20px var(--glow-accent), inset 0 1px 0 #fff3;transform:translateY(-1px)}.dark .btn-accent{color:#a5b4fc;background:linear-gradient(135deg,#6366f138 0%,#4f46e524 100%);border-color:#6366f16b;box-shadow:inset 0 0 0 1px #6366f126}.dark .btn-accent:hover{color:#c7d2fe;background:linear-gradient(135deg,#6366f152 0%,#4f46e538 100%);box-shadow:inset 0 0 0 1px #818cf84d,0 6px 20px #6366f147}.btn-ghost{color:var(--color-text-muted);border-color:var(--color-border);background:0 0}.btn-ghost:hover{color:var(--color-text);background:#f1f5f9cc;border-color:#0ea5e933}.dark .btn-ghost:hover{background:#1e293bb3;border-color:#94a3b833}.btn-sm{padding:5px 10px;font-size:.72rem}.btn-icon{border-radius:var(--radius-sm);padding:7px}.btn-icon-lg{border-radius:var(--radius-md);padding:9px}.form-input,.form-select,.form-textarea{border-radius:var(--radius-md);border:1px solid var(--color-border);width:100%;color:var(--color-text);transition:all var(--duration-base) var(--ease-smooth);background:#ffffffa6;outline:none;padding:8px 12px;font-family:inherit;font-size:.85rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);background:#ffffffd9;box-shadow:0 0 0 3px #0ea5e924,0 2px 8px #0ea5e914}.dark .form-input,.dark .form-select,.dark .form-textarea{color:var(--color-text);background:#0a1226a6;border-color:#94a3b82e}.dark .form-input:focus,.dark .form-select:focus,.dark .form-textarea:focus{background:#0a1226d9;border-color:#38bdf880;box-shadow:0 0 0 3px #38bdf81f,0 0 16px #38bdf814}.card{border-radius:var(--radius-lg);padding:20px}.stat-card{border-radius:var(--radius-md);transition:transform var(--duration-base) var(--ease-spring), box-shadow var(--duration-base) ease;padding:12px 14px}.stat-card:hover{box-shadow:var(--glass-shadow-elevated);transform:translateY(-3px)}.dark .stat-card:hover{box-shadow:0 32px 96px #020617b3,0 0 24px #38bdf80f}.type-chip{text-transform:uppercase;letter-spacing:.07em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--duration-base) ease;border:1px solid #0000;border-radius:9999px;align-items:center;gap:4px;padding:.2rem .6rem;font-size:.62rem;font-weight:700;display:inline-flex}.type-decision{color:#1565c0;background:linear-gradient(135deg,#2196f324,#1976d214);border-color:#2196f34d}.type-mistake{color:#c62828;background:linear-gradient(135deg,#f4433624,#d32f2f14);border-color:#f443364d}.type-code_fact{color:#6a1b9a;background:linear-gradient(135deg,#9c27b024,#7b1fa214);border-color:#9c27b04d}.type-pattern{color:#1b5e20;background:linear-gradient(135deg,#388e3c24,#1b5e2014);border-color:#388e3c4d}.type-file_claim{color:#006064;background:linear-gradient(135deg,#00bcd424,#0097a714);border-color:#00bcd44d}.type-task_archive{color:#3e2723;background:linear-gradient(135deg,#79554824,#5d403714);border-color:#7955484d}.dark .type-decision{color:#7dd3fc;background:linear-gradient(135deg,#38bdf833,#0ea5e914);border-color:#38bdf852}.dark .type-mistake{color:#fda4af;background:linear-gradient(135deg,#fb718533,#f43f5e14);border-color:#fb718552}.dark .type-code_fact{color:#d8b4fe;background:linear-gradient(135deg,#c084fc33,#a78bfa14);border-color:#c084fc52}.dark .type-pattern{color:#6ee7b7;background:linear-gradient(135deg,#34d39933,#10b98114);border-color:#34d39952}.dark .type-file_claim{color:#67e8f9;background:linear-gradient(135deg,#22d3ee33,#06b6d414);border-color:#22d3ee52}.dark .type-task_archive{color:#d4a08a;background:linear-gradient(135deg,#b4786433,#965a4614);border-color:#b4786452}.status-chip{text-transform:uppercase;letter-spacing:.05em;transition:all var(--duration-base) ease;border-radius:9999px;align-items:center;gap:4px;padding:2px 10px;font-size:.62rem;font-weight:700;display:inline-flex}.status-chip:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.status-backlog{color:#64748b;background:#64748b1f;border:1px solid #64748b47}.status-pending{color:#475569;background:#94a3b81f;border:1px solid #94a3b847}.status-inprogress{color:#0284c7;background:#38bdf81f;border:1px solid #38bdf847}.status-completed{color:#059669;background:#10b9811f;border:1px solid #10b98147}.status-blocked{color:#dc2626;background:#ef44441f;border:1px solid #ef444447}.status-canceled{color:#9ca3af;background:#9ca3af14;border:1px solid #9ca3af2e}.status-default{color:#94a3b8;background:#cbd5e11f;border:1px solid #cbd5e147}.dark .status-backlog{color:#94a3b8;background:#64748b2e}.dark .status-pending{color:#cbd5e1;background:#94a3b82e}.dark .status-inprogress{color:#7dd3fc;background:#38bdf82e}.dark .status-completed{color:#6ee7b7;background:#10b9812e}.dark .status-blocked{color:#fca5a5;background:#ef44442e}.dark .status-canceled{color:#6b7280;background:#9ca3af1f}.repo-item{border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);border:1px solid #0000;align-items:center;gap:10px;padding:9px 11px;display:flex;position:relative;overflow:hidden}.repo-item:before{content:"";opacity:0;transition:opacity var(--duration-base) ease;pointer-events:none;background:linear-gradient(90deg,#0ea5e90f 0%,#0000 100%);position:absolute;inset:0}.repo-item:hover:before{opacity:1}.repo-item:hover{border-color:#0ea5e91f}.dark .repo-item:hover{background:#0ea5e90a;border-color:#38bdf824}.repo-item.active{background:#ffffffe6;border-color:#0ea5e938;box-shadow:0 4px 14px #0f172a0f,inset 0 1px #fffc}.dark .repo-item.active{background:#0ea5e912;border-color:#38bdf847;box-shadow:inset 0 0 0 1px #38bdf81a,0 4px 16px #0ea5e914}.repo-avatar{border-radius:var(--radius-sm);color:#fff;width:34px;height:34px;transition:box-shadow var(--duration-base) ease, transform var(--duration-base) var(--ease-spring);background:linear-gradient(135deg,#0ea5e9 0%,#6366f1 100%);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex;position:relative;box-shadow:0 4px 12px #0ea5e947}.repo-item:hover .repo-avatar{transform:scale(1.06);box-shadow:0 4px 16px #0ea5e966}.repo-active-indicator{background:linear-gradient(180deg, var(--color-primary-light) 0%, var(--color-primary) 100%);width:3px;height:22px;box-shadow:2px 0 8px var(--glow-primary);border-radius:0 4px 4px 0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.repo-item.collapsed{justify-content:center;padding:8px}.stat-number{letter-spacing:-.03em;font-size:1.75rem;font-weight:900;line-height:1}.stat-label{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);font-size:.68rem;font-weight:700}.kanban-board{grid-auto-columns:minmax(280px,1fr);grid-auto-flow:column;gap:16px;padding-bottom:8px;display:grid;overflow-x:auto}@media (width<=900px){.kanban-board{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;grid-auto-columns:280px;grid-auto-flow:column}}.kanban-col{border-radius:var(--radius-lg);flex-direction:column;min-height:200px;display:flex}@media (width<=900px){.kanban-col{scroll-snap-align:center}}.task-card{border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);background:#ffffff9e;flex-shrink:0;padding:14px;position:relative;overflow:hidden}.task-card:before{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-accent));opacity:0;height:2px;transition:opacity var(--duration-base) ease;position:absolute;top:0;left:0;right:0}.task-card:hover:before{opacity:1}.dark .task-card{background:#0a122a8c;border-color:#94a3b81a}.task-card:hover{border-color:#0ea5e938;transform:translateY(-3px);box-shadow:0 10px 28px #0000001a,0 0 0 1px #0ea5e92e}.dark .task-card:hover{border-color:#38bdf83d;transform:translateY(-3px);box-shadow:0 10px 28px #00000059,0 0 0 1px #38bdf838}.markdown-body{color:#374151;word-break:break-word;font-size:.875rem;line-height:1.75}.dark .markdown-body{color:#d1d5db}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:#111827;margin:1.2em 0 .5em;font-weight:700;line-height:1.3}.dark .markdown-body h1,.dark .markdown-body h2,.dark .markdown-body h3,.dark .markdown-body h4{color:#f9fafb}.markdown-body h1{border-bottom:2px solid #e5e7eb;padding-bottom:.4rem;font-size:1.25rem}.markdown-body h2{border-bottom:1px solid #e5e7eb;padding-bottom:.3rem;font-size:1.1rem}.markdown-body h3{font-size:.95rem}.markdown-body p{margin:.6em 0}.markdown-body ul,.markdown-body ol{margin:.5em 0;padding-left:1.5rem}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body li{margin:.25em 0}.markdown-body code{color:#6d28d9;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:5px;padding:.15em .4em;font-family:JetBrains Mono,monospace;font-size:.8rem}.dark .markdown-body code{color:#c4b5fd;background:#8b5cf624;border-color:#8b5cf638}.markdown-body pre{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;margin:.75em 0;padding:1rem;overflow-x:auto}.dark .markdown-body pre{background:#0a121e;border-color:#1e2d40}.markdown-body pre code{color:inherit;background:0 0;border:none;padding:0;font-size:.82rem}.markdown-body blockquote{color:#4b5563;background:#0ea5e90d;border-left:3px solid #0ea5e9;border-radius:0 8px 8px 0;margin:.75em 0;padding:.5rem 1rem;font-style:italic}.dark .markdown-body blockquote{color:#9ca3af;background:#0ea5e914}.markdown-body a{color:#0ea5e9;text-underline-offset:2px;text-decoration:underline}.markdown-body strong{color:#111827;font-weight:700}.dark .markdown-body strong{color:#f9fafb}.markdown-body table{border-collapse:collapse;width:100%;margin:.75em 0;font-size:.8rem}.markdown-body th{text-align:left;background:#f1f5f9;border:1px solid #e5e7eb;padding:.5rem .75rem;font-weight:700}.dark .markdown-body th{background:#1e293b;border-color:#334155}.markdown-body td{border:1px solid #e5e7eb;padding:.4rem .75rem}.dark .markdown-body td{border-color:#334155}.markdown-body tr:nth-child(2n){background:#f8fafc}.dark .markdown-body tr:nth-child(2n){background:#1e293b66}.chat-bubble{border-radius:1.25rem;max-width:85%;padding:.75rem 1rem;font-size:.875rem;line-height:1.5;box-shadow:0 2px 8px #0000000f}.chat-bubble-agent{color:#fff;border-bottom-right-radius:.25rem;align-self:flex-end}.chat-bubble-mcp{color:#1e293b;background:#f1f5f9e6;border:1px solid #e2e8f0;border-bottom-left-radius:.25rem;align-self:flex-start}.dark .chat-bubble-mcp{color:#f1f5f9;background:#1e293bd9;border-color:#334155b3}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e8ecf0 50%,#f1f5f9 75%) 0 0/200% 100%;border-radius:8px;animation:1.8s ease-in-out infinite skeleton-pulse}.dark .skeleton{background:linear-gradient(90deg,#12213a 25%,#1a2f4a 50%,#12213a 75%) 0 0/200% 100%}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 6px #0ea5e94d}50%{box-shadow:0 0 18px #0ea5e999,0 0 30px #0ea5e933}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes status-blink{0%,to{opacity:1}50%{opacity:.4}}@keyframes orbit-glow{0%{transform:translate(-50%,-50%)rotate(0)translate(12px)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)translate(12px)rotate(-360deg)}}.animate-fade-in{animation:fade-in-up var(--duration-slow) var(--ease-expo)}.animate-fade-in-scale{animation:fade-in-scale var(--duration-slow) var(--ease-expo)}.animate-slide-in{animation:slide-in-right var(--duration-slow) var(--ease-expo)}.animate-spin{animation:.8s linear infinite spin}.animate-float{animation:3s ease-in-out infinite float}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}.animate-status-blink{animation:1.8s ease-in-out infinite status-blink}.stagger-item:first-child{animation-delay:0s}.stagger-item:nth-child(2){animation-delay:50ms}.stagger-item:nth-child(3){animation-delay:.1s}.stagger-item:nth-child(4){animation-delay:.15s}.stagger-item:nth-child(5){animation-delay:.2s}.stagger-item:nth-child(n+6){animation-delay:.25s}.drawer-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);background:#010c1e8c;position:fixed;inset:0}.drawer-panel{-webkit-backdrop-filter:blur(20px);z-index:51;background:#fffffff5;border-left:1px solid #e2e8f0cc;flex-direction:column;width:min(620px,95vw);height:100dvh;display:flex;position:fixed;top:0;right:0;overflow:hidden;box-shadow:-20px 0 60px #00000024,-1px 0 #0ea5e914}.dark .drawer-panel{background:#060c1cf5;border-color:#94a3b81a;box-shadow:-20px 0 60px #00000080,-1px 0 #38bdf81f}.dark table thead tr{background:#0a1226e6!important}.dark table th{color:var(--color-text-muted);border-bottom-color:#94a3b81f!important}.dark table td{color:var(--color-text);border-bottom-color:#94a3b812!important}.dark table tbody tr:hover td{background:#0ea5e90a}.dark table tbody tr:nth-child(2n) td{background:#080f2059}.dark table tbody tr:nth-child(2n):hover td{background:#0ea5e90f}.dark table input[type=checkbox]{accent-color:#0ea5e9}.badge{letter-spacing:.03em;border-radius:9999px;align-items:center;padding:1px 8px;font-size:.62rem;font-weight:700;display:inline-flex}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-size:.68rem;font-weight:700}.status-dot{border-radius:9999px;flex-shrink:0;width:8px;height:8px}.status-dot-online{background:#10b981;animation:2.4s ease-in-out infinite pulse-glow;box-shadow:0 0 0 3px #10b9812e}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-base) var(--ease-smooth);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--color-text);background:#f1f5f9e6;transform:scale(1.1)}.dark .icon-btn:hover{background:#1e293bcc}.icon-btn svg{transition:transform var(--duration-base) var(--ease-spring)}.icon-btn:hover svg{transform:scale(1.05)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.min-w-0{min-width:0}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.py-2{padding-top:8px;padding-bottom:8px}.py-3{padding-top:12px;padding-bottom:12px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:12px}.rounded-xl{border-radius:16px}.relative{position:relative}.absolute{position:absolute}.inset-0{inset:0}.z-10{z-index:10}.z-50{z-index:50}.hidden{display:none}.grid{display:grid}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.pointer-events-none{pointer-events:none}.shrink-0{flex-shrink:0}.text-center{text-align:center}.priority-dot{border-radius:9999px;flex-shrink:0;width:8px;height:8px}.priority-1{background:#94a3b8}.priority-2{background:#3b82f6;box-shadow:0 0 6px #3b82f680}.priority-3{background:#f59e0b;box-shadow:0 0 6px #f59e0b80}.priority-4{background:#f97316;box-shadow:0 0 6px #f9731680}.priority-5{background:#ef4444;animation:2s ease-in-out infinite pulse-glow;box-shadow:0 0 8px #ef444499}.divider{background:var(--color-border);height:1px;margin:12px 0}.dark .divider{background:#94a3b81a}.hover-glow{transition:box-shadow var(--duration-base) ease}.hover-glow:hover{box-shadow:var(--glass-shadow-elevated), 0 0 24px #0ea5e914}.dark .hover-glow:hover{box-shadow:var(--panel-dark-shadow), 0 0 24px #38bdf814}.text-success{color:var(--color-success)!important}.text-danger{color:var(--color-danger)!important}.text-primary{color:var(--color-primary)!important}.text-accent{color:var(--color-accent)!important}.btn-icon:hover{background:#0ea5e914;transform:scale(1.1)}@media (width<=760px){html,body,#app,.app-layout,.main-content{max-width:100vw;overflow-x:hidden}.dashboard-shell{padding:12px}.tabs-wrap{margin:0 -12px 12px;padding:0 12px}.tab-nav{max-width:max-content}.tab-btn{padding:7px 10px;font-size:.74rem}.card{border-radius:var(--radius-lg);padding:14px}}.sidebar-header.svelte-vbr9x3{justify-content:space-between;align-items:center;min-height:60px;padding:14px 16px;display:flex}.brand-icon.svelte-vbr9x3{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:box-shadow .2s,transform .2s;display:flex;box-shadow:0 4px 12px #0ea5e94d}.brand-icon.svelte-vbr9x3:hover{transform:scale(1.05);box-shadow:0 4px 18px #0ea5e980}.collapse-btn.svelte-vbr9x3{flex-shrink:0}.search-wrapper.svelte-vbr9x3{position:relative}.search-icon.svelte-vbr9x3{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input.svelte-vbr9x3{background:#ffffff80;padding-left:32px;font-size:.8rem}html.dark .search-input.svelte-vbr9x3{background:#0a122680}.group-label.svelte-vbr9x3{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);opacity:.75;align-items:center;gap:5px;padding:6px 10px 4px;font-size:.6rem;font-weight:700;display:flex}.repo-count-chip.svelte-vbr9x3{color:#0ea5e9;background:#0ea5e91f;border:1px solid #0ea5e938;border-radius:9999px;padding:1px 7px;font-size:.62rem;font-weight:700}.pin-star.svelte-vbr9x3{color:#fff;background:#0ea5e9;border-radius:9999px;justify-content:center;align-items:center;width:14px;height:14px;font-size:8px;line-height:1;display:flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #0ea5e966}.task-badges.svelte-vbr9x3{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.task-badge.svelte-vbr9x3{white-space:nowrap;border:1px solid #0000;border-radius:9999px;align-items:center;gap:2px;padding:1px 5px;font-size:.6rem;font-weight:700;transition:all .15s;display:inline-flex}.task-badge.active.svelte-vbr9x3{color:#a855f7;background:#a855f71f;border-color:#a855f740}.task-badge.todo.svelte-vbr9x3{color:#0ea5e9;background:#0ea5e91f;border-color:#0ea5e940}.task-badge.blocked.svelte-vbr9x3{color:#ef4444;background:#ef44441f;border-color:#ef444440}.task-badge.backlog.svelte-vbr9x3{color:#64748b;background:#64748b1f;border-color:#64748b40}html.dark .task-badge.active.svelte-vbr9x3{color:#c084fc;background:#a855f72e}html.dark .task-badge.todo.svelte-vbr9x3{color:#7dd3fc;background:#38bdf82e}html.dark .task-badge.blocked.svelte-vbr9x3{color:#fca5a5;background:#fca5a52e}html.dark .task-badge.backlog.svelte-vbr9x3{color:#94a3b8;background:#94a3b82e}.pin-btn.svelte-vbr9x3{opacity:0;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:5px;transition:opacity .15s,transform .15s,color .15s;display:flex}.repo-item.svelte-vbr9x3:hover .pin-btn:where(.svelte-vbr9x3){opacity:1}@media (hover:none),(width<=1024px){.pin-btn.svelte-vbr9x3{opacity:1}}.pin-btn.svelte-vbr9x3:hover{color:#0ea5e9;background:#0ea5e91a;transform:scale(1.15)}.top-bar-inner.svelte-2va9hf{justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:10px 20px;display:flex}.current-repo.svelte-2va9hf{align-items:center;gap:8px;min-width:0;display:flex}.current-repo-name.svelte-2va9hf{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:.82rem;overflow:hidden}.top-actions.svelte-2va9hf,.refresh-group.svelte-2va9hf,.top-status.svelte-2va9hf{align-items:center;gap:8px;display:flex}.top-actions.svelte-2va9hf{min-width:0}.top-separator.svelte-2va9hf{background:var(--color-border);opacity:.6;width:1px;height:20px}@media (width<=1024px){#mobileMenuBtn.svelte-2va9hf{display:flex!important}}@media (width<=760px){.top-bar-inner.svelte-2va9hf{padding:8px 12px}.current-repo-name.svelte-2va9hf{max-width:112px}.ext-links-group.svelte-2va9hf,.top-separator.svelte-2va9hf,.db-path-label.svelte-2va9hf,.top-status.svelte-2va9hf span:where(.svelte-2va9hf){display:none!important}.top-actions.svelte-2va9hf{flex-shrink:0;gap:6px}}@media (width<=420px){.current-repo-name.svelte-2va9hf{max-width:82px}}.ext-links-group.svelte-2va9hf{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f1f5f9bf;border-radius:10px;align-items:center;gap:0;display:flex;overflow:hidden}html.dark .ext-links-group.svelte-2va9hf{background:#0f172abf;border-color:#94a3b81f}.ext-link-btn.svelte-2va9hf{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:5px;padding:5px 10px;font-size:.72rem;font-weight:600;line-height:1;text-decoration:none;transition:background .15s,color .15s;display:flex}.ext-link-btn.svelte-2va9hf:hover{color:var(--color-text);background:#0ea5e914}html.dark .ext-link-btn.svelte-2va9hf:hover{background:#0ea5e91f}.ext-link-star.svelte-2va9hf:hover{color:#ca8a04!important;background:#eab3081a!important}html.dark .ext-link-star.svelte-2va9hf:hover{color:#fbbf24!important;background:#eab3081f!important}.ext-link-npm.svelte-2va9hf:hover{color:#cb2431!important;background:#cb243114!important}html.dark .ext-link-npm.svelte-2va9hf:hover{color:#f87171!important;background:#cb24311f!important}.ext-link-divider.svelte-2va9hf{background:var(--color-border);opacity:.6;flex-shrink:0;width:1px;height:20px}.ext-link-label.svelte-2va9hf{font-size:.7rem}.npm-dl-badge.svelte-2va9hf{color:inherit;align-items:center;gap:3px;display:flex}.npm-dl-skeleton.svelte-2va9hf{background:#94a3b82e;border-radius:4px;width:36px;height:10px;animation:1.4s ease-in-out infinite svelte-2va9hf-skeleton-pulse;display:inline-block}@keyframes svelte-2va9hf-skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.countdown-bar.svelte-2va9hf{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f1f5f9bf;border-radius:10px;align-items:center;gap:6px;padding:5px 10px;display:flex}html.dark .countdown-bar.svelte-2va9hf{background:#0f172abf;border-color:#94a3b81f}.countdown-track.svelte-2va9hf{background:#94a3b82e;border-radius:9999px;width:52px;height:3px;overflow:hidden}.countdown-fill.svelte-2va9hf{border-radius:9999px;height:100%;transition:width 1s linear,background .3s}.countdown-label.svelte-2va9hf{width:26px;font-size:.65rem;font-weight:600;transition:color .3s}.btn.refreshing.svelte-2va9hf{color:var(--color-primary)}@media (width<=640px){.ext-links-group.svelte-2va9hf{display:none}}@media (width<=760px){.countdown-bar.svelte-2va9hf{padding:5px 8px}.countdown-track.svelte-2va9hf{width:32px}}@media (width<=420px){.countdown-label.svelte-2va9hf{display:none}}.priority-bar.svelte-1797zcc{opacity:0;border-radius:12px 12px 0 0;height:2px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.task-card.svelte-1797zcc:hover .priority-bar:where(.svelte-1797zcc){opacity:1}.card-header.svelte-1797zcc{justify-content:space-between;align-items:center;gap:6px;margin-bottom:7px;display:flex}.code-row.svelte-1797zcc{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.status-icon-dot.svelte-1797zcc{opacity:.85;flex-shrink:0;display:inline-flex}.task-code-text.svelte-1797zcc{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:110px;font-family:JetBrains Mono,monospace;font-size:.64rem;font-weight:700;overflow:hidden}.task-title.svelte-1797zcc{color:var(--color-text);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:.82rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.task-desc.svelte-1797zcc{color:var(--color-text-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:12px;font-size:.72rem;line-height:1.4;display:-webkit-box;overflow:hidden}.phase-chip.svelte-1797zcc{color:#6366f1;letter-spacing:.02em;white-space:nowrap;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;flex-shrink:0;padding:2px 6px;font-size:.58rem;font-weight:700}html.dark .phase-chip.svelte-1797zcc{color:#a5b4fc;background:#818cf826;border-color:#818cf840}.hierarchy-row.svelte-1797zcc,.coordination-row.svelte-1797zcc{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.h-badge.svelte-1797zcc{border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:.58rem;font-weight:700;display:inline-flex}.h-badge.parent.svelte-1797zcc{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.h-badge.depends.svelte-1797zcc{color:#f59e0b;background:#f59e0b1a;border:1px solid #f59e0b33}.coord-badge.svelte-1797zcc{border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:.58rem;font-weight:700;display:inline-flex}.coord-badge.claim.svelte-1797zcc{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.coord-badge.handoff.svelte-1797zcc{color:#6366f1;background:#6366f11a;border:1px solid #6366f133}.card-footer.svelte-1797zcc{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.agent-row.svelte-1797zcc{align-items:center;gap:4px;display:flex}.agent-avatar.svelte-1797zcc{color:#fff;background:linear-gradient(135deg,#6366f1,#0ea5e9);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.agent-name.svelte-1797zcc{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-size:.64rem;overflow:hidden}.time-row.svelte-1797zcc{color:var(--color-text-faint);align-items:center;gap:3px;font-size:.62rem;display:flex}.token-row.svelte-1797zcc{margin-top:6px}.token-badge.svelte-1797zcc{color:#0ea5e9;background:#38bdf81a;border:1px solid #38bdf833;border-radius:9999px;align-items:center;gap:3px;padding:2px 7px;font-size:.6rem;font-weight:600;display:inline-flex}html.dark .token-badge.svelte-1797zcc{color:#7dd3fc;background:#38bdf81f;border-color:#38bdf838}.search-wrap.svelte-173w724{position:relative}.search-icon-inner.svelte-173w724{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.col-count.svelte-173w724{border-radius:9999px;padding:1px 8px;font-size:.65rem;font-weight:700}.empty-col.svelte-173w724{text-align:center;flex-direction:column;align-items:center;padding:28px 8px;display:flex}.drag-over.svelte-173w724{border-color:var(--color-accent)!important;background:#6366f11a!important}.glassy-badge.svelte-1imzu92{-webkit-backdrop-filter:blur(12px);border:1px solid var(--badge-color);cursor:default;background:#ffffff0a;border-radius:9999px;padding:4px 12px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0000000d,inset 0 0 0 1px #ffffff0d}html.dark .glassy-badge.svelte-1imzu92{box-shadow:0 8px 16px #0003, inset 0 0 0 1px var(--badge-color);background:#0003;border-color:#ffffff1a}.glassy-badge.svelte-1imzu92:hover{box-shadow:0 6px 16px #00000014, inset 0 0 0 1px var(--badge-color);background:#ffffff14;transform:translateY(-1px)}.indicator-dot.svelte-1imzu92{background:var(--badge-color);width:6px;height:6px;box-shadow:0 0 10px var(--badge-color);border-radius:9999px;position:relative}.indicator-dot.svelte-1imzu92:after{content:"";border:1px solid var(--badge-color);opacity:0;border-radius:9999px;animation:2s infinite svelte-1imzu92-pulse;position:absolute;inset:-2px}@keyframes svelte-1imzu92-pulse{0%{opacity:.5;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(3)}}.count.svelte-1imzu92{color:var(--badge-color);letter-spacing:-.01em;font-size:.75rem;font-weight:900}.label.svelte-1imzu92{color:var(--color-text);text-transform:uppercase;letter-spacing:.06em;opacity:.7;font-size:.62rem;font-weight:700}.metrics-grid.svelte-9j0inj{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;display:grid}.compact-empty.svelte-9j0inj{min-height:56px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.75rem;display:flex}@media (width<=640px){.metrics-grid.svelte-9j0inj{grid-template-columns:1fr}}.mem-table-wrap.svelte-83aj9g{border:1px solid var(--color-border);border-radius:14px;overflow-x:auto}.mem-table.svelte-83aj9g{border-collapse:collapse;width:100%;min-width:600px}.mem-thead-row.svelte-83aj9g{border-bottom:1px solid var(--color-border);background:#f8fafce6}html.dark .mem-thead-row.svelte-83aj9g{background:#0a1226d9}.mem-th.svelte-83aj9g{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 12px;font-size:.7rem;font-weight:700}.mem-th.sortable.svelte-83aj9g{cursor:pointer}.mem-th.sortable.svelte-83aj9g:hover{color:var(--color-text)}.mem-td.svelte-83aj9g{border-bottom:1px solid var(--color-border);padding:10px 12px}html.dark .mem-td.svelte-83aj9g{border-color:#94a3b814}.mem-row.svelte-83aj9g{cursor:pointer;transition:background .15s}.mem-row.svelte-83aj9g:hover{background:#f1f5f9b3}html.dark .mem-row.svelte-83aj9g:hover,.mem-row.selected.svelte-83aj9g{background:#0ea5e90d}html.dark .mem-row.selected.svelte-83aj9g{background:#0ea5e914}.mem-row.svelte-83aj9g:last-child .mem-td:where(.svelte-83aj9g){border-bottom:none}.row-actions.svelte-83aj9g{opacity:0;white-space:nowrap;align-items:center;gap:4px;transition:opacity .15s;display:flex}.mem-row.svelte-83aj9g:hover .row-actions:where(.svelte-83aj9g){opacity:1}.row-action-btn.svelte-83aj9g{cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.edit-btn.svelte-83aj9g:hover{color:#0ea5e9;background:#0ea5e91a}html.dark .edit-btn.svelte-83aj9g:hover{color:#38bdf8;background:#0ea5e926}.delete-btn.svelte-83aj9g:hover{color:#ef4444;background:#ef44441a}html.dark .delete-btn.svelte-83aj9g:hover{color:#fca5a5;background:#ef444426}.bulk-actions-bar.svelte-83aj9g{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;color:#fff;background:#1e293bf2;border:1px solid #ffffff1a;border-radius:9999px;align-items:center;gap:8px;padding:10px 16px;font-size:.85rem;animation:.3s cubic-bezier(.16,1,.3,1) forwards svelte-83aj9g-slideUp;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000004d}html:not(.dark) .bulk-actions-bar.svelte-83aj9g{color:var(--color-text);border-color:var(--color-border);background:#fffffff2;box-shadow:0 10px 30px #0000001a}@keyframes svelte-83aj9g-slideUp{0%{opacity:0;transform:translate(-50%,20px)scale(.95)}to{opacity:1;transform:translate(-50%)scale(1)}}.markdown-body.svelte-d5v60e{line-height:1.6}.markdown-body.svelte-d5v60e p:where(.svelte-d5v60e){margin-bottom:1em}.markdown-body.svelte-d5v60e code:where(.svelte-d5v60e){background-color:#0000000d;border-radius:3px;padding:.2em .4em;font-family:monospace}.markdown-body.svelte-d5v60e pre:where(.svelte-d5v60e){background-color:#0000000d;border-radius:5px;padding:1em;overflow:auto}.markdown-body.svelte-d5v60e table:where(.svelte-d5v60e){border-collapse:collapse;width:100%;margin-bottom:1em}.markdown-body.svelte-d5v60e th:where(.svelte-d5v60e),.markdown-body.svelte-d5v60e td:where(.svelte-d5v60e){text-align:left;border:1px solid #ddd;padding:8px}.markdown-body.svelte-d5v60e blockquote:where(.svelte-d5v60e){color:#666;border-left:4px solid #ddd;margin:1em 0;padding-left:1em}.chat-container-viewport.svelte-h6z84x{scroll-behavior:smooth;background:#00000005;flex-direction:column;flex:1;padding:24px 32px;display:flex;overflow-y:auto}html.dark .chat-container-viewport.svelte-h6z84x{background-color:#0b141a;background-image:radial-gradient(#ffffff08 1px,#0000 1px);background-size:20px 20px}.chat-container.svelte-h6z84x{flex-direction:column;gap:12px;min-height:min-content;padding-bottom:20px;display:flex}.date-header.svelte-h6z84x{z-index:10;justify-content:center;margin:24px 0 12px;display:flex;position:sticky;top:-12px}.date-header.svelte-h6z84x span:where(.svelte-h6z84x){-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#54656f;text-transform:uppercase;letter-spacing:.06em;background:#fffffff2;border:1px solid #0000000d;border-radius:10px;padding:6px 14px;font-size:.7rem;font-weight:700;box-shadow:0 1px 3px #00000014}html.dark .date-header.svelte-h6z84x span:where(.svelte-h6z84x){color:#8696a0;background:#182229}.bubble-row.svelte-h6z84x{align-items:flex-end;gap:8px;width:100%;margin-bottom:4px;display:flex}.bubble-row-right.svelte-h6z84x{justify-content:flex-end}.bubble-row-left.svelte-h6z84x{justify-content:flex-start}.bubble-wrap.svelte-h6z84x{max-width:80%;position:relative}.chat-bubble.svelte-h6z84x{border-radius:12px;padding:8px 10px 18px;font-size:.875rem;line-height:1.4;transition:transform .2s;position:relative;box-shadow:0 1px .5px #00000021}.chat-bubble-action.svelte-h6z84x{background:var(--bubble-bg-light);color:#111b21;border-top-right-radius:0}.chat-bubble-mcp.svelte-h6z84x{background:var(--bubble-bg-light);color:#111b21;border-top-left-radius:0}html.dark .chat-bubble-action.svelte-h6z84x,html.dark .chat-bubble-mcp.svelte-h6z84x{background:var(--bubble-bg-dark);color:#e9edef}.tail.svelte-h6z84x{width:12px;height:12px;position:absolute;top:0}.tail-right.svelte-h6z84x{background:radial-gradient(circle at 100% 0,#0000 8px,#dcf8c6 8px);right:-8px}.tail-left.svelte-h6z84x{background:radial-gradient(circle at 0 0,#0000 8px,#fff 8px);left:-8px}html.dark .chat-bubble-action.svelte-h6z84x{--bubble-bg-dark:#056162}html.dark .tail-right.svelte-h6z84x{background:radial-gradient(circle at 100% 0,#0000 8px,#056162 8px)}html.dark .tail-left.svelte-h6z84x{background:radial-gradient(circle at 0 0,#0000 8px,#202c33 8px)}.chat-avatar.svelte-h6z84x{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;box-shadow:0 2px 8px #0000001a}.agent-avatar.svelte-h6z84x{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1)}.mcp-avatar.svelte-h6z84x{color:#54656f;background:#f0f2f5}html.dark .mcp-avatar.svelte-h6z84x{color:#8696a0;background:#182229}.action-badge.svelte-h6z84x{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;align-items:center;gap:4px;margin-bottom:4px;padding:2px 6px;font-size:.62rem;font-weight:800;display:inline-flex}.action-main.svelte-h6z84x{color:inherit;word-break:break-word;font-weight:600}.action-sub.svelte-h6z84x{opacity:.7;margin-top:2px;font-size:.75rem}.mcp-sender.svelte-h6z84x{color:#34b7f1;text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;margin-bottom:6px;font-size:.72rem;font-weight:800;display:flex}.read-more-btn.svelte-h6z84x{color:#34b7f1;cursor:pointer;text-align:left;background:0 0;border:none;width:100%;margin-top:4px;padding:4px 0;font-size:.75rem;font-weight:700;display:block}.read-more-btn.svelte-h6z84x:hover{text-decoration:underline}.bubble-meta.svelte-h6z84x{pointer-events:none;align-items:center;gap:3px;display:flex;position:absolute;bottom:4px;right:7px}.bubble-time.svelte-h6z84x{color:#667781;font-size:.65rem}html.dark .bubble-time.svelte-h6z84x{color:#ffffff80}.bubble-status.svelte-h6z84x{color:#53bdeb;display:flex}.load-more-spinner.svelte-h6z84x{color:var(--color-text-muted);opacity:.8;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.75rem;font-weight:600;display:flex}@keyframes svelte-h6z84x-slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes svelte-h6z84x-slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.animate-slide-in-right.svelte-h6z84x{animation:.3s ease-out forwards svelte-h6z84x-slideInRight}.animate-slide-in-left.svelte-h6z84x{animation:.3s ease-out forwards svelte-h6z84x-slideInLeft}.drawer-header.svelte-9n99wb{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.drawer-title.svelte-9n99wb{color:var(--color-text);font-size:1rem;font-weight:700;line-height:1.3}.editable-title.svelte-9n99wb{cursor:pointer;border-radius:6px;align-items:center;gap:6px;margin:-2px -4px;padding:2px 4px;transition:background .15s;display:flex}.editable-title.svelte-9n99wb:hover{background:#6366f112}.edit-hint.svelte-9n99wb{opacity:0;font-size:.7rem;transition:opacity .15s}.editable-title.svelte-9n99wb:hover .edit-hint:where(.svelte-9n99wb){opacity:1}.drawer-body.svelte-9n99wb{flex:1;padding:20px;overflow-y:auto}.meta-grid.svelte-9n99wb{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-9n99wb{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px}.dark .meta-cell.svelte-9n99wb{background:#1e293bcc}.meta-label.svelte-9n99wb{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.65rem;font-weight:700}.meta-value.svelte-9n99wb{color:var(--color-text);font-size:.85rem;font-weight:600}.meta-subvalue.svelte-9n99wb{color:var(--color-text-muted);margin-top:4px;font-size:.7rem;line-height:1.35}.section-label.svelte-9n99wb{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:8px;font-size:.65rem;font-weight:700}.tag-chip.svelte-9n99wb{color:#6366f1;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;padding:2px 10px;font-size:.72rem}.md-card.svelte-9n99wb{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-9n99wb{background:#0f172acc}.json-pre.svelte-9n99wb{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}.dark .json-pre.svelte-9n99wb{background:#0f172acc}.comment-card.svelte-9n99wb{border:1px solid var(--color-border);background:#f1f5f980;border-radius:10px;padding:10px 14px}.dark .comment-card.svelte-9n99wb{background:#1e293b80}.comment-avatar.svelte-9n99wb{color:#fff;background:linear-gradient(135deg,#6366f1,#0ea5e9);border-radius:9999px;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;display:flex}.comment-compose.svelte-9n99wb{border:1px solid var(--color-border);background:#f1f5f980;border-radius:10px;padding:12px}.dark .comment-compose.svelte-9n99wb{background:#1e293b66}.drawer-header.svelte-17ad9lv{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px;display:flex}.drawer-title.svelte-17ad9lv{color:var(--color-text);word-break:break-all;font-size:1rem;font-weight:700;line-height:1.3}.type-chip.svelte-17ad9lv{text-transform:uppercase;letter-spacing:.05em;color:#0ea5e9;background:#0ea5e91a;border-radius:20px;padding:3px 8px;font-size:.7rem;font-weight:700}.drawer-body.svelte-17ad9lv{flex-direction:column;gap:20px;padding:20px 24px;display:flex;overflow-y:auto}.drawer-section.svelte-17ad9lv{flex-direction:column;gap:8px;display:flex}.section-label.svelte-17ad9lv{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:4px;font-size:.75rem;font-weight:700}.md-card.svelte-17ad9lv{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}.dark .md-card.svelte-17ad9lv{background:#0f172acc}.modal-backdrop.svelte-intd6h{z-index:58;-webkit-backdrop-filter:blur(4px);background:#010c1e73;position:fixed;inset:0}.modal-panel.svelte-intd6h{z-index:59;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:600px;max-width:96vw;max-height:92vh;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 32px 96px #010c1e33,0 8px 32px #010c1e1f,inset 0 1px #ffffffb3}html.dark .modal-panel.svelte-intd6h{background:#070f1f;border-color:#94a3b81f;box-shadow:0 32px 96px #0009,0 8px 32px #0006,inset 0 1px #ffffff0a}.modal-header.svelte-intd6h{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px 16px;display:flex}.modal-header-icon.svelte-intd6h{color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #6366f159}.modal-mode-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:4px;font-size:.62rem;font-weight:700}.modal-title-input.svelte-intd6h{width:100%;padding:5px 10px;font-size:.92rem;font-weight:700}.modal-title-text.svelte-intd6h{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;line-height:1.3;overflow:hidden}.modal-header-actions.svelte-intd6h{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.danger-btn.svelte-intd6h{color:#ef4444!important}.modal-close-btn.svelte-intd6h{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.modal-close-btn.svelte-intd6h:hover{color:#ef4444;background:#ef44441a}.modal-body.svelte-intd6h{flex-direction:column;flex:1;gap:14px;padding:18px 20px;display:flex;overflow-y:auto}.field-grid-2.svelte-intd6h{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-group.svelte-intd6h{flex-direction:column;gap:5px;display:flex}.field-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:flex}.required.svelte-intd6h{color:#ef4444;font-size:.7rem}.field-hint.svelte-intd6h{text-transform:none;letter-spacing:0;color:var(--color-text-faint);margin-left:2px;font-size:.62rem;font-style:italic;font-weight:400}.importance-badge.svelte-intd6h{border-radius:9999px;margin-left:4px;padding:1px 7px;font-size:.72rem;font-weight:800}.importance-slider.svelte-intd6h{cursor:pointer;background:0 0;border:none;border-radius:9999px;outline:none;width:100%;height:4px;margin-top:4px;padding:0}.importance-ticks.svelte-intd6h{color:var(--color-text-muted);justify-content:space-between;margin-top:2px;padding:0 2px;font-size:.6rem;display:flex}.importance-ticks.svelte-intd6h span:where(.svelte-intd6h){font-weight:600;transition:color .2s}.importance-ticks.svelte-intd6h span.active:where(.svelte-intd6h){color:var(--color-text)}.content-label-row.svelte-intd6h{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.preview-btn.svelte-intd6h{padding:3px 8px;font-size:.65rem}.content-textarea.svelte-intd6h{resize:vertical;min-height:140px;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.6}.meta-grid.svelte-intd6h{grid-template-columns:1fr 1fr;gap:10px;display:grid}.meta-cell.svelte-intd6h{border:1px solid var(--color-border);background:#f1f5f9cc;border-radius:10px;padding:10px 12px}html.dark .meta-cell.svelte-intd6h{background:#1e293bcc}.meta-label.svelte-intd6h{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:2px;font-size:.62rem;font-weight:700}.meta-value.svelte-intd6h{color:var(--color-text);font-size:.85rem;font-weight:600}.section-block.svelte-intd6h{flex-direction:column;gap:6px;display:flex}.tags-row.svelte-intd6h{flex-wrap:wrap;gap:6px;display:flex}.tag-chip.svelte-intd6h{color:#6366f1;background:#6366f11a;border:1px solid #6366f133;border-radius:9999px;padding:2px 10px;font-size:.72rem}html.dark .tag-chip.svelte-intd6h{color:#a5b4fc;background:#6366f12e;border-color:#6366f14d}.md-card.svelte-intd6h{border:1px solid var(--color-border);background:#f8fafccc;border-radius:12px;padding:16px}html.dark .md-card.svelte-intd6h{background:#0f172acc}.json-pre.svelte-intd6h{border:1px solid var(--color-border);color:var(--color-text);background:#f8fafccc;border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.75rem;overflow-x:auto}html.dark .json-pre.svelte-intd6h{background:#0f172acc}.mem-error.svelte-intd6h{color:#ef4444;background:#ef444414;border:1px solid #ef444438;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:.8rem;display:flex}.modal-footer.svelte-intd6h{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.modal-save-btn.svelte-intd6h:disabled{opacity:.45;pointer-events:none}.modal-backdrop.svelte-lenod{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content.svelte-lenod{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:700px;max-width:95vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 30px 60px #00000080}.modal-header.svelte-lenod{border-bottom:1px solid var(--color-border);background:linear-gradient(90deg,#0ea5e914,#0000);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.header-icon.svelte-lenod{background:#0ea5e91a;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.modal-header.svelte-lenod h3:where(.svelte-lenod){color:var(--color-text);margin:0;font-size:1.15rem;font-weight:700}.close-btn.svelte-lenod{opacity:.6;transition:opacity .2s}.close-btn.svelte-lenod:hover{opacity:1}.drop-zone.svelte-lenod{border:2px dashed var(--color-border);background:#f1f5f908;border-radius:16px;justify-content:center;align-items:center;width:100%;height:240px;transition:all .3s;display:flex}.drop-zone.svelte-lenod:hover{background:#0ea5e908;border-color:#0ea5e9}.drop-zone-content.svelte-lenod{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.drop-zone-content.svelte-lenod p:where(.svelte-lenod){color:var(--color-text);margin:0;font-size:.95rem}.preview-container.svelte-lenod{border:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:12px;overflow:hidden}.preview-header.svelte-lenod{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);background:#0000000d;padding:8px 12px;font-size:.75rem;font-weight:700}.table-wrapper.svelte-lenod{max-height:200px;overflow-y:auto}table.svelte-lenod{border-collapse:collapse;width:100%;font-size:.75rem}th.svelte-lenod{text-align:left;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);z-index:1;background:#00000005;padding:8px 12px;font-weight:600;position:sticky;top:0}td.svelte-lenod{border-bottom:1px solid var(--color-border);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:200px;padding:8px 12px;overflow:hidden}tr.svelte-lenod:last-child td:where(.svelte-lenod){border-bottom:none}.modal-footer.svelte-lenod{border-top:1px solid var(--color-border);background:#00000005;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.error-msg.svelte-lenod{color:#f87171;background:#ef444414;border:1px solid #ef444433;border-radius:8px;margin-top:16px;padding:10px 14px;font-size:.8rem;font-weight:500}.spinner.svelte-lenod{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite svelte-lenod-spin}@keyframes svelte-lenod-spin{to{transform:rotate(360deg)}}.hidden.svelte-lenod{display:none}.modal-backdrop.svelte-l0ytfo{z-index:58;-webkit-backdrop-filter:blur(4px);background:#010c1e73;position:fixed;inset:0}.modal-panel.svelte-l0ytfo{z-index:59;background:var(--color-surface,#fff);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;width:520px;max-width:95vw;max-height:92vh;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 32px 96px #010c1e33,0 8px 32px #010c1e1f,inset 0 1px #ffffffb3}html.dark .modal-panel.svelte-l0ytfo{background:#070f1f;border-color:#94a3b81f;box-shadow:0 32px 96px #0009,0 8px 32px #0006,inset 0 1px #ffffff0a}.modal-header.svelte-l0ytfo{border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px 16px;display:flex}.modal-header-icon.svelte-l0ytfo{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 4px 12px #0ea5e94d}.modal-title.svelte-l0ytfo{color:var(--color-text);letter-spacing:-.01em;font-size:.9rem;font-weight:800}.modal-subtitle.svelte-l0ytfo{color:var(--color-text-muted);margin-top:1px;font-size:.68rem}.modal-close-btn.svelte-l0ytfo{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:background .15s,color .15s;display:flex}.modal-close-btn.svelte-l0ytfo:hover{color:#ef4444;background:#ef44441a}.modal-body.svelte-l0ytfo{flex-direction:column;flex:1;gap:14px;padding:18px 20px;display:flex}.field-grid-2.svelte-l0ytfo{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-group.svelte-l0ytfo{flex-direction:column;gap:5px;display:flex}.field-label.svelte-l0ytfo{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:4px;font-size:.68rem;font-weight:700;display:flex}.required.svelte-l0ytfo{color:#ef4444;font-size:.7rem}.field-hint.svelte-l0ytfo{color:var(--color-text-faint);text-transform:none;letter-spacing:0;margin-left:auto;font-size:.62rem;font-weight:500}.modal-textarea.svelte-l0ytfo{resize:vertical;min-height:96px;font-size:.82rem;line-height:1.55}.modal-footer.svelte-l0ytfo{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.modal-save-btn.svelte-l0ytfo:disabled{opacity:.45;pointer-events:none}.ref-header.svelte-w0wd5z{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ref-total-badge.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933;border-radius:9999px;padding:2px 8px;font-size:.62rem;font-weight:700}.ref-search-wrap.svelte-w0wd5z{flex:1;max-width:300px;position:relative}.ref-search-icon.svelte-w0wd5z{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.ref-search-input.svelte-w0wd5z{width:100%;padding-left:32px;padding-right:28px;font-size:.8rem}.ref-clear-btn.svelte-w0wd5z{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:4px;padding:2px;transition:color .15s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.ref-clear-btn.svelte-w0wd5z:hover{color:var(--color-text)}.ref-body.svelte-w0wd5z{grid-template-columns:160px 1fr;align-items:start;gap:16px;display:grid}@media (width<=700px){.ref-body.svelte-w0wd5z{grid-template-columns:1fr}}.ref-sidebar.svelte-w0wd5z{border:1px solid var(--color-border);border-radius:16px;flex-direction:column;gap:3px;padding:12px;display:flex;position:sticky;top:80px}.ref-sidebar-label.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);padding:4px 8px 8px;font-size:.6rem;font-weight:700}.ref-cat-btn.svelte-w0wd5z{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:7px;width:100%;padding:7px 10px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.ref-cat-btn.svelte-w0wd5z:hover{color:var(--color-text);background:#0ea5e90f}.ref-cat-btn.active.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e91a;border:1px solid #0ea5e933}html.dark .ref-cat-btn.active.svelte-w0wd5z{color:#38bdf8;background:#0ea5e926;border-color:#38bdf840}.ref-cat-count.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1f;border-radius:9999px;margin-left:auto;padding:1px 6px;font-size:.62rem;font-weight:700}.ref-main.svelte-w0wd5z{flex-direction:column;display:flex}.ref-section-header.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);align-items:center;gap:6px;margin-bottom:10px;font-size:.72rem;font-weight:700;display:flex}.ref-section-count.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1a;border-radius:9999px;padding:1px 6px;font-size:.6rem;font-weight:700}.ref-grid.svelte-w0wd5z{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.ref-card.svelte-w0wd5z{cursor:pointer;background:#fff;border:1px solid #0000000f;border-radius:16px;flex-direction:column;gap:8px;padding:18px 20px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #00000008}.ref-card.svelte-w0wd5z:before{content:"";background:0 0;height:3px;transition:all .2s;position:absolute;top:0;left:0;right:0}.ref-card.svelte-w0wd5z:hover{border-color:#00000014;transform:translateY(-2px);box-shadow:0 12px 24px -4px #00000014,0 8px 12px -6px #0000000a}html.dark .ref-card.svelte-w0wd5z{background:#0a1226cc;border:1px solid #ffffff14;box-shadow:0 4px 12px #0003}html.dark .ref-card.svelte-w0wd5z:hover{border-color:#ffffff26;box-shadow:0 10px 30px #0006}.ref-card-tool.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#6366f1,#a855f7)}.ref-card-prompt.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#a855f7,#ec4899)}.ref-card-resource.svelte-w0wd5z:hover:before{background:linear-gradient(90deg,#10b981,#3b82f6)}.ref-card-top.svelte-w0wd5z{align-items:center;gap:6px;display:flex}.ref-type-badge.svelte-w0wd5z{text-transform:uppercase;letter-spacing:.06em;border:1px solid #0000;border-radius:9999px;align-items:center;gap:4px;padding:2px 7px;font-size:.6rem;font-weight:700;display:inline-flex}.ref-type-tool.svelte-w0wd5z{color:#6366f1;background:#6366f11a;border-color:#6366f133}.ref-type-prompt.svelte-w0wd5z{color:#a855f7;background:#a855f71a;border-color:#a855f733}html.dark .ref-type-tool.svelte-w0wd5z{color:#818cf8}html.dark .ref-type-prompt.svelte-w0wd5z{color:#c084fc}.ref-card-name.svelte-w0wd5z{color:var(--color-text);word-break:break-word;font-size:.82rem;font-weight:700}.ref-card-desc.svelte-w0wd5z{color:var(--color-text-muted);font-size:.72rem;line-height:1.55}.ref-params.svelte-w0wd5z{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.ref-param-tag.svelte-w0wd5z{color:#0ea5e9;background:#0ea5e914;border:1px solid #0ea5e92e;border-radius:5px;padding:1px 6px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.65rem}.ref-param-more.svelte-w0wd5z{color:var(--color-text-muted);background:#64748b1a;border-color:#64748b33}html.dark .ref-param-tag.svelte-w0wd5z{color:#38bdf8;background:#0ea5e91f;border-color:#38bdf833}.fab-backdrop.svelte-10ega5z{z-index:49;cursor:default;background:0 0;position:fixed;inset:0}.fab-container.svelte-10ega5z{z-index:50;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:28px;right:28px}.fab-actions.svelte-10ega5z{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.fab-action-item.svelte-10ega5z{opacity:0;pointer-events:none;align-items:center;gap:10px;transition:opacity .2s,transform .2s;display:flex;transform:translateY(12px)scale(.92)}.fab-container.open.svelte-10ega5z .fab-action-item:where(.svelte-10ega5z){opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.fab-action-label.svelte-10ega5z{color:var(--color-text);background:var(--color-surface,#fff);border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;letter-spacing:.01em;border-radius:8px;padding:4px 10px;font-size:.72rem;font-weight:700;box-shadow:0 2px 8px #0000001a}html.dark .fab-action-label.svelte-10ega5z{color:#e2e8f0;background:#0f172aeb}.fab-action-btn.svelte-10ega5z{cursor:pointer;color:#fff;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;transition:transform .2s,box-shadow .2s;display:flex}.fab-action-btn.memory.svelte-10ega5z{background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 4px 14px #6366f166}.fab-action-btn.task.svelte-10ega5z{background:linear-gradient(135deg,#0ea5e9,#06b6d4);box-shadow:0 4px 14px #0ea5e966}.fab-action-btn.svelte-10ega5z:hover{transform:scale(1.1)}.fab-action-btn.memory.svelte-10ega5z:hover{box-shadow:0 6px 20px #6366f18c}.fab-action-btn.task.svelte-10ega5z:hover{box-shadow:0 6px 20px #0ea5e98c}.fab-main.svelte-10ega5z{cursor:pointer;color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 4px 20px #0ea5e973,0 0 #0ea5e900}.fab-main.svelte-10ega5z:hover{transform:scale(1.08);box-shadow:0 6px 28px #0ea5e999,0 0 #0ea5e900}.fab-main.svelte-10ega5z:active{transform:scale(.96)}.fab-icon.svelte-10ega5z{justify-content:center;align-items:center;transition:transform .25s cubic-bezier(.4,0,.2,1);display:flex}.fab-icon.rotated.svelte-10ega5z{transform:rotate(45deg)}.fab-container.svelte-10ega5z:not(.open) .fab-main:where(.svelte-10ega5z):after{content:"";pointer-events:none;border:2px solid #0ea5e966;border-radius:50%;animation:2.4s ease-out infinite svelte-10ega5z-fab-pulse;position:absolute;inset:-4px}@keyframes svelte-10ega5z-fab-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.45)}}@media (width<=640px){.fab-container.svelte-10ega5z{bottom:max(18px, env(safe-area-inset-bottom));right:14px}.fab-main.svelte-10ega5z{width:48px;height:48px}.fab-container.svelte-10ega5z:not(.open) .fab-main:where(.svelte-10ega5z):after{display:none}}.feature-shell.svelte-owkwhr{flex-direction:column;gap:14px;display:flex}.feature-toolbar.svelte-owkwhr{grid-template-columns:1fr auto;align-items:start;gap:14px;padding:16px;display:grid}.toolbar-title.svelte-owkwhr{align-items:center;gap:10px;display:flex}.toolbar-action.svelte-owkwhr{justify-self:end}.toolbar-subtitle.svelte-owkwhr{color:var(--color-text-muted);margin-top:2px;font-size:.72rem;font-weight:600}.toolbar-controls.svelte-owkwhr{grid-column:1/-1;grid-template-columns:minmax(220px,1.2fr) minmax(130px,.6fr) minmax(180px,1fr) minmax(140px,.6fr);gap:10px;display:grid}.feature-grid.svelte-owkwhr{grid-template-columns:minmax(320px,.9fr) minmax(0,1.25fr);align-items:start;gap:14px;display:grid}.panel-card.svelte-owkwhr{min-width:0;padding:16px}.panel-heading.svelte-owkwhr{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.form-grid.svelte-owkwhr{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 10px;display:grid}.standard-group.svelte-owkwhr{flex-direction:column;gap:8px;display:flex}.standard-children.svelte-owkwhr{border-left:1px solid var(--color-border,#94a3b847);flex-direction:column;gap:8px;margin-left:14px;padding-left:12px;display:flex}.standard-row-root.svelte-owkwhr{width:100%}.standard-row-child.svelte-owkwhr{background:#94a3b80f;width:100%}.row-title.svelte-owkwhr svg{flex:none}.detail-actions.svelte-owkwhr{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.editor-actions.svelte-owkwhr{gap:10px;margin-top:12px;display:flex}.danger-text.svelte-owkwhr{color:var(--color-danger,#d04b4b)}label.svelte-owkwhr span:where(.svelte-owkwhr){color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.68rem;font-weight:800;display:block}.content-input.svelte-owkwhr{resize:vertical;min-height:150px;margin-bottom:10px}.content-label.svelte-owkwhr{display:block}.list-panel.svelte-owkwhr,.detail-panel.svelte-owkwhr{min-height:460px}.standard-list.svelte-owkwhr{flex-direction:column;gap:8px;max-height:650px;margin-top:12px;display:flex;overflow:auto}.standard-row.svelte-owkwhr{text-align:left;border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);background:#ffffff7a;border-radius:8px;padding:12px}.standard-row.svelte-owkwhr:hover,.standard-row.selected.svelte-owkwhr{background:#0ea5e914;border-color:#0ea5e973}.row-title.svelte-owkwhr{margin-bottom:6px;font-size:.9rem;font-weight:800}.row-meta.svelte-owkwhr{color:var(--color-text-muted);flex-wrap:wrap;gap:8px;font-size:.72rem;font-weight:600;display:flex}.tag-row.svelte-owkwhr{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.mini-chip.svelte-owkwhr,.scope-pill.svelte-owkwhr{border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:2px 7px;font-size:.68rem;font-weight:700}.detail-heading.svelte-owkwhr{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.detail-title.svelte-owkwhr{color:var(--color-text);margin-bottom:6px;font-size:1rem;font-weight:850}.muted-state.svelte-owkwhr{color:var(--color-text-muted);text-align:center;padding:24px 4px;font-size:.85rem}.empty-state.svelte-owkwhr{min-height:260px;color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.empty-title.svelte-owkwhr{color:var(--color-text);font-size:.92rem;font-weight:850}.empty-copy.svelte-owkwhr{max-width:260px;font-size:.78rem;line-height:1.45}.detail-empty.svelte-owkwhr{min-height:360px}.error-banner.svelte-owkwhr{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:700}html.dark .standard-row.svelte-owkwhr{background:#0f172a73}html.dark .standard-row.svelte-owkwhr:hover,html.dark .standard-row.selected.svelte-owkwhr{background:#0ea5e91f}@media (width<=1100px){.toolbar-controls.svelte-owkwhr,.feature-grid.svelte-owkwhr,.form-grid.svelte-owkwhr,.feature-toolbar.svelte-owkwhr{grid-template-columns:1fr}.toolbar-action.svelte-owkwhr{justify-content:center;justify-self:stretch}.list-panel.svelte-owkwhr,.detail-panel.svelte-owkwhr{min-height:auto}}.feature-shell.svelte-1ik2acm{flex-direction:column;gap:14px;display:flex}.feature-toolbar.svelte-1ik2acm{grid-template-columns:1fr auto;align-items:start;gap:14px;padding:16px;display:grid}.toolbar-title.svelte-1ik2acm{align-items:center;gap:10px;display:flex}.toolbar-subtitle.svelte-1ik2acm{color:var(--color-text-muted);margin-top:2px;font-size:.72rem;font-weight:600}.toolbar-actions.svelte-1ik2acm{justify-content:flex-end;align-items:center;gap:8px;display:flex}.toolbar-controls.svelte-1ik2acm{grid-column:1/-1;grid-template-columns:160px minmax(180px,1fr) auto;align-items:center;gap:10px;display:grid}.action-grid.svelte-1ik2acm{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.feature-grid.svelte-1ik2acm{grid-template-columns:minmax(360px,.95fr) minmax(0,1.05fr);align-items:start;gap:14px;display:grid}.detail-stack.svelte-1ik2acm{flex-direction:column;gap:14px;min-width:0;display:flex}.panel-card.svelte-1ik2acm{min-width:0;padding:16px}.action-panel.svelte-1ik2acm{min-height:0}.panel-heading.svelte-1ik2acm{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.form-stack.svelte-1ik2acm{flex-direction:column;gap:8px;margin-top:12px;display:flex}label.svelte-1ik2acm span:where(.svelte-1ik2acm){color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.68rem;font-weight:800;display:block}.summary-input.svelte-1ik2acm{resize:vertical;min-height:92px}.json-input.svelte-1ik2acm{resize:vertical;min-height:86px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}.handoff-list.svelte-1ik2acm{flex-direction:column;gap:8px;max-height:650px;margin-top:12px;display:flex;overflow:auto}.handoff-row.svelte-1ik2acm{text-align:left;border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);background:#ffffff7a;border-radius:8px;padding:12px}.handoff-row.svelte-1ik2acm:hover,.handoff-row.selected.svelte-1ik2acm{background:#0ea5e914;border-color:#0ea5e973}.handoff-top.svelte-1ik2acm{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.status-pill.svelte-1ik2acm{text-transform:uppercase;border:1px solid var(--color-border);border-radius:999px;padding:2px 8px;font-size:.67rem;font-weight:850}.status-pending.svelte-1ik2acm{color:#0369a1;background:#0ea5e91f}.status-accepted.svelte-1ik2acm{color:#047857;background:#10b9811f}.status-rejected.svelte-1ik2acm{color:#b91c1c;background:#ef44441f}.status-expired.svelte-1ik2acm{color:#64748b;background:#64748b1f}.row-title.svelte-1ik2acm{margin-bottom:6px;font-size:.9rem;font-weight:800;line-height:1.35}.row-meta.svelte-1ik2acm{color:var(--color-text-muted);flex-wrap:wrap;gap:8px;font-size:.72rem;font-weight:600;display:flex}.row-date.svelte-1ik2acm{color:var(--color-text-muted);font-size:.7rem;font-weight:700}.claim-result.svelte-1ik2acm,.linked-task.svelte-1ik2acm{background:#10b98114;border:1px solid #10b98140;border-radius:8px;margin-top:14px;padding:12px}.context-card.svelte-1ik2acm{margin-top:14px}.claim-list.svelte-1ik2acm{flex-direction:column;gap:8px;display:flex}.claim-row.svelte-1ik2acm{border:1px solid var(--color-border);background:#ffffff0a;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.claims-empty.svelte-1ik2acm{min-height:160px}.json-pre.svelte-1ik2acm{color:#e2e8f0;background:#0f172ac7;border-radius:10px;margin:0;padding:12px;font-size:.72rem;overflow:auto}.muted-inline.svelte-1ik2acm{color:var(--color-text-muted);word-break:break-all;margin-top:4px;font-size:.68rem}.detail-title.svelte-1ik2acm{color:var(--color-text);margin-bottom:14px;font-size:1rem;font-weight:850;line-height:1.35}.detail-grid.svelte-1ik2acm{grid-template-columns:1fr 1fr;gap:10px;display:grid}.detail-grid.svelte-1ik2acm div:where(.svelte-1ik2acm){border:1px solid var(--color-border);border-radius:8px;padding:10px}.detail-grid.svelte-1ik2acm span:where(.svelte-1ik2acm){color:var(--color-text-muted);text-transform:uppercase;margin-bottom:4px;font-size:.68rem;font-weight:750;display:block}.detail-grid.svelte-1ik2acm strong:where(.svelte-1ik2acm){color:var(--color-text);word-break:break-word;font-size:.82rem}.status-actions.svelte-1ik2acm{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.muted-state.svelte-1ik2acm{color:var(--color-text-muted);text-align:center;padding:24px 4px;font-size:.85rem}.empty-state.svelte-1ik2acm{min-height:260px;color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.empty-title.svelte-1ik2acm{color:var(--color-text);font-size:.92rem;font-weight:850}.empty-copy.svelte-1ik2acm{max-width:260px;font-size:.78rem;line-height:1.45}.detail-empty.svelte-1ik2acm{min-height:260px}.error-banner.svelte-1ik2acm{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:.82rem;font-weight:700}html.dark .handoff-row.svelte-1ik2acm{background:#0f172a73}html.dark .handoff-row.svelte-1ik2acm:hover,html.dark .handoff-row.selected.svelte-1ik2acm{background:#0ea5e91f}@media (width<=1280px){.feature-toolbar.svelte-1ik2acm{grid-template-columns:1fr}.toolbar-actions.svelte-1ik2acm{justify-content:stretch}.toolbar-actions.svelte-1ik2acm .btn:where(.svelte-1ik2acm){flex:1;justify-content:center}}@media (width<=760px){.toolbar-controls.svelte-1ik2acm,.feature-grid.svelte-1ik2acm,.detail-grid.svelte-1ik2acm,.action-grid.svelte-1ik2acm{grid-template-columns:1fr}.toolbar-actions.svelte-1ik2acm{flex-direction:column}.toolbar-actions.svelte-1ik2acm .btn:where(.svelte-1ik2acm){width:100%}}.arena-root.svelte-1pykpun{border-radius:24px;padding:0;overflow:hidden}.arena-hdr.svelte-1pykpun{border-bottom:1px solid var(--color-border);background:#ffffff08;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.arena-hdr-left.svelte-1pykpun{align-items:center;gap:10px;display:flex}.arena-icon.svelte-1pykpun{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#fff;width:36px;height:36px;box-shadow:0 4px 12px var(--glow-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.arena-sub.svelte-1pykpun{color:var(--color-text-muted);margin-top:1px;font-size:.67rem;font-weight:600}.arena-hdr-right.svelte-1pykpun{align-items:center;display:flex}.badge.svelte-1pykpun{border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.7rem;font-weight:700;display:flex}.badge.loading.svelte-1pykpun{color:var(--color-text-muted);background:#64748b1a}.badge.error.svelte-1pykpun{color:#ef4444;background:#ef44441a}.badge.live.svelte-1pykpun{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.pulse-dot.svelte-1pykpun{background:#10b981;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1.8s ease-in-out infinite status-blink}.arena-wrap.svelte-1pykpun{background:var(--color-bg);width:100%;position:relative}.arena-canvas.svelte-1pykpun{width:100%;height:auto;display:block}.arena-empty.svelte-1pykpun{color:var(--color-text-muted);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.arena-empty-sub.svelte-1pykpun{opacity:.6;text-align:center;max-width:280px;font-size:.73rem}.agent-tip.svelte-1pykpun{z-index:20;pointer-events:none;border:1px solid var(--color-border);background:var(--color-surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;min-width:168px;padding:10px 12px;font-size:.77rem;position:absolute;box-shadow:0 8px 28px #0000002e}.tip-name.svelte-1pykpun{color:var(--color-text);align-items:center;gap:6px;margin-bottom:7px;font-size:.82rem;font-weight:800;display:flex}.tip-dot.svelte-1pykpun{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tip-row.svelte-1pykpun{color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:8px;padding:1px 0;font-size:.73rem;display:flex}.tip-key.svelte-1pykpun{text-transform:uppercase;letter-spacing:.05em;opacity:.65;font-size:.67rem;font-weight:700}.tip-state.svelte-1pykpun{font-weight:700}.tip-state.processing.svelte-1pykpun{color:#a855f7}.tip-state.idle.svelte-1pykpun{color:#64748b}.tip-state.claiming.svelte-1pykpun{color:#0ea5e9}.tip-state.handoff_out.svelte-1pykpun{color:#f59e0b}.tip-state.handoff_in.svelte-1pykpun{color:#10b981}.tip-repos.svelte-1pykpun{text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:.68rem;overflow:hidden}.arena-footer.svelte-1pykpun{border-top:1px solid var(--color-border);background:#ffffff05;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;padding:8px 20px;display:flex}.legend-row.svelte-1pykpun{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.legend-item.svelte-1pykpun{color:var(--color-text-muted);align-items:center;gap:5px;font-size:.68rem;font-weight:600;display:flex}.lg-dot.svelte-1pykpun{border-radius:50%;flex-shrink:0;width:8px;height:8px}.lg-dash.svelte-1pykpun{border-top:2px dashed #6366f18c;flex-shrink:0;width:18px;height:0;display:inline-block}.lg-bubble.svelte-1pykpun{background:#a855f7;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:1.8s ease-in-out infinite status-blink}.global-shell.svelte-1eglegg{flex-direction:column;gap:14px;display:flex}.panel-card.svelte-1eglegg{padding:16px}.panel-header.svelte-1eglegg{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.panel-copy.svelte-1eglegg{color:var(--color-text-muted);max-width:620px;font-size:.76rem;line-height:1.45}.repo-focus.svelte-1eglegg{color:#6366f1;background:#6366f114;border:1px solid #6366f129;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.68rem;font-weight:800;display:inline-flex}.summary-grid.svelte-1eglegg{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.summary-card.svelte-1eglegg{border:1px solid var(--color-border);text-align:center;border-radius:14px;padding:12px 10px}.summary-icon.svelte-1eglegg{opacity:.85;justify-content:center;margin-bottom:4px;display:flex}.summary-value.svelte-1eglegg{letter-spacing:-.04em;font-size:1.45rem;font-weight:900;line-height:1}.summary-label.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:.62rem;font-weight:800}.grid-two.svelte-1eglegg{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.subheading.svelte-1eglegg{color:var(--color-text);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.72rem;font-weight:800}.mini-grid.svelte-1eglegg{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mini-card.svelte-1eglegg{border:1px solid var(--color-border);background:#ffffff08;border-radius:12px;padding:12px}.mini-icon.svelte-1eglegg{opacity:.8;margin-bottom:6px}.mini-value.svelte-1eglegg{letter-spacing:-.03em;font-size:1.2rem;font-weight:900;line-height:1}.mini-label.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:.64rem;font-weight:800}.repo-table.svelte-1eglegg{flex-direction:column;gap:8px;display:flex}.repo-table-head.svelte-1eglegg,.repo-table-row.svelte-1eglegg{grid-template-columns:minmax(180px,1.4fr) 90px minmax(190px,1.2fr) minmax(180px,1.2fr) 110px;align-items:center;gap:12px;display:grid}.repo-table-head.svelte-1eglegg{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;padding:0 10px 6px;font-size:.62rem;font-weight:800}.repo-table-row.svelte-1eglegg{border:1px solid var(--color-border);background:#ffffff0a;border-radius:12px;padding:12px 10px}.repo-table-row.selected.svelte-1eglegg{background:#6366f10f;border-color:#6366f147}.repo-name.svelte-1eglegg{color:var(--color-text);font-size:.84rem;font-weight:800}.repo-meta.svelte-1eglegg,.last-activity.svelte-1eglegg{color:var(--color-text-muted);font-size:.68rem;font-weight:600}.pressure-pill.svelte-1eglegg{color:#ef4444;background:#ef444414;border:1px solid #ef444429;border-radius:999px;justify-content:center;align-items:center;min-width:56px;padding:6px 10px;font-size:.78rem;font-weight:900;display:inline-flex}.repo-stats.svelte-1eglegg{flex-wrap:wrap;gap:6px;display:flex}.stat-chip.svelte-1eglegg{border:1px solid #0000;border-radius:999px;align-items:center;padding:3px 7px;font-size:.62rem;font-weight:800;display:inline-flex}.stat-chip.active.svelte-1eglegg{color:#8b5cf6;background:#8b5cf61a;border-color:#8b5cf629}.stat-chip.pending.svelte-1eglegg{color:#0ea5e9;background:#0ea5e91a;border-color:#0ea5e929}.stat-chip.blocked.svelte-1eglegg{color:#ef4444;background:#ef44441a;border-color:#ef444429}.stat-chip.backlog.svelte-1eglegg{color:#64748b;background:#64748b1a;border-color:#64748b29}.stat-chip.claim.svelte-1eglegg{color:#10b981;background:#10b9811a;border-color:#10b98129}.stat-chip.handoff.svelte-1eglegg{color:#6366f1;background:#6366f11a;border-color:#6366f129}.stat-chip.stale.svelte-1eglegg{color:#f97316;background:#f973161a;border-color:#f9731629}.empty-state.svelte-1eglegg{min-height:120px;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.82rem;display:flex}@media (width<=1080px){.grid-two.svelte-1eglegg,.mini-grid.svelte-1eglegg{grid-template-columns:1fr}.repo-table-head.svelte-1eglegg{display:none}.repo-table-row.svelte-1eglegg{grid-template-columns:1fr;align-items:flex-start}}@media (width<=900px){.dashboard-grid.svelte-1m88iwd,.repo-pulse-grid.svelte-1m88iwd{grid-template-columns:1fr!important}}
|
|
@@ -83,7 +83,5 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
83
83
|
opacity: ${s-u*t}
|
|
84
84
|
`}}var Px={memories:`title,type,content,importance
|
|
85
85
|
Example Memory,fact,This is an example memory content,3`,tasks:`task_code,title,phase,description,status,priority
|
|
86
|
-
TSK-001,Example Task,Phase 1,Example task description,backlog,3`};function Fx(e){let t=M(null),n=M([]),r=M([]),i=M(``),a=M(``),o=M(!1),s=M(!1);function c(){t.set(null),n.set([]),r.set([]),i.set(``),a.set(``),o.set(!1)}function l(){s.set(!1),c(),e.onClose&&e.onClose()}function u(){s.set(!0)}function d(e){let t=e.split(/\r?\n/).filter(e=>e.trim()!==``);if(t.length===0)return{headers:[],rows:[]};let n=e=>{let t=[],n=``,r=!1;for(let i=0;i<e.length;i++){let a=e[i];a===`"`&&e[i+1]===`"`?(n+=`"`,i++):a===`"`?r=!r:a===`,`&&!r?(t.push(n.trim()),n=``):n+=a}return t.push(n.trim()),t},r=n(t[0]).filter(e=>e!==``);return{headers:r,rows:t.slice(1).map(n).map(e=>{let t={};return r.forEach((n,r)=>{let i=n.toLowerCase().replace(/[^a-z0-9_]/g,`_`);t[i]=e[r]}),t})}}function f(e){if(a.set(``),!e.name.endsWith(`.csv`)){a.set(`Please select a valid .csv file.`);return}t.set(e),i.set(e.name);let o=new FileReader;o.onload=e=>{let t=e.target?.result,i=d(t);r.set(i.headers),n.set(i.rows),i.rows.length===0&&a.set(`CSV file appears to be empty or missing headers.`)},o.readAsText(e)}function p(e){let t=e.target.files?.[0];t&&f(t)}function m(e){e.preventDefault();let t=e.dataTransfer?.files?.[0];t&&f(t)}function h(){let t=Px[e.importTarget],n=new Blob([t],{type:`text/csv;charset=utf-8;`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.setAttribute(`href`,r),i.setAttribute(`download`,`example_${e.importTarget}.csv`),i.style.visibility=`hidden`,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function g(){let t=[];if(n.subscribe(e=>t=e)(),a.set(``),t.length===0){a.set(`No data to import.`);return}o.set(!0);try{let n=0;n=e.importTarget===`memories`?(await Q.bulkImportMemories(e.repo,t)).count:(await Q.bulkImportTasks(e.repo,t)).count,alert(`Imported ${n} ${e.importTarget} successfully.`),e.onSuccess&&e.onSuccess(),l()}catch(e){a.set(e instanceof Error?e.message:`Import failed`)}finally{o.set(!1)}}return{file:t,csvData:n,headers:r,fileName:i,errorMsg:a,isSubmitting:o,isOpen:s,open:u,close:l,handleFileSelect:p,handleFileDrop:m,downloadExample:h,handleImport:g,setFile:e=>t.set(e),setCsvData:e=>n.set(e)}}var Ix=K(`<div class="drop-zone svelte-lenod"><div class="drop-zone-content svelte-lenod"><div style="color: var(--color-text-muted)" class="svelte-lenod"><!></div> <p class="svelte-lenod">Drag and drop your <strong class="svelte-lenod">.csv</strong> file here</p> <span class="text-xs text-slate-500 mb-4 svelte-lenod">or click to browse from your computer</span> <label class="btn btn-primary btn-md cursor-pointer svelte-lenod">Select CSV File <input type="file" accept=".csv" class="hidden svelte-lenod"/></label></div></div> <div class="mt-6 flex flex-col items-center svelte-lenod"><p class="text-[0.8rem] text-slate-400 mb-2 svelte-lenod">Need a starting point?</p> <button class="btn btn-ghost btn-sm svelte-lenod"><!> </button></div>`,1),Lx=K(`<th class="svelte-lenod"> </th>`),Rx=K(`<td class="svelte-lenod"> </td>`),zx=K(`<tr class="svelte-lenod"></tr>`),Bx=K(`<div class="file-info flex items-center justify-between p-3 bg-blue-500/5 border border-blue-500/20 rounded-lg mb-4 svelte-lenod"><div class="flex items-center gap-3 svelte-lenod"><div style="color: #0ea5e9; display: flex;" class="svelte-lenod"><!></div> <div class="svelte-lenod"><div class="text-sm font-semibold svelte-lenod"> </div> <div class="text-[0.7rem] text-slate-400 svelte-lenod"> </div></div></div> <button class="btn btn-ghost btn-sm text-red-500 svelte-lenod">Change File</button></div> <div class="preview-container svelte-lenod"><div class="preview-header svelte-lenod"><span class="svelte-lenod">Data Preview (First 5 rows)</span></div> <div class="table-wrapper svelte-lenod"><table class="svelte-lenod"><thead class="svelte-lenod"><tr class="svelte-lenod"></tr></thead><tbody class="svelte-lenod"></tbody></table></div></div>`,1),Vx=K(`<div class="error-msg flex items-center gap-2 svelte-lenod"><!> <span class="svelte-lenod"> </span></div>`),Hx=K(`<div class="spinner svelte-lenod"></div> Importing...`,1),Ux=K(`<!> Start Import`,1),Wx=K(`<div class="modal-backdrop svelte-lenod"><div class="modal-content svelte-lenod"><div class="modal-header svelte-lenod"><div class="flex items-center gap-2 svelte-lenod"><div class="header-icon svelte-lenod" style="color: #0ea5e9"><!></div> <h3 class="svelte-lenod"> </h3></div> <button class="btn btn-ghost btn-sm close-btn svelte-lenod"><!></button></div> <div class="modal-body svelte-lenod"><div class="p-6 svelte-lenod"><!> <!></div></div> <div class="modal-footer svelte-lenod"><button class="btn btn-ghost svelte-lenod">Cancel</button> <button class="btn btn-primary svelte-lenod"><!></button></div></div></div>`);function Gx(e,t){We(t,!1);let n=()=>P(H(d),`$file`,l),r=()=>P(H(f),`$csvData`,l),i=()=>P(H(p),`$headers`,l),a=()=>P(H(m),`$fileName`,l),o=()=>P(H(h),`$errorMsg`,l),s=()=>P(H(g),`$isSubmitting`,l),c=()=>P(H(_),`$composableIsOpen`,l),[l,u]=pt(),d=F(),f=F(),p=F(),m=F(),h=F(),g=F(),_=F(),v=F(),y=F(),b=F(),x=F(),S=F(),C=F(),w=F(),T=F(),E=F(),D=F(),O=F(),k=F(),ee=F(),te=Oa(t,`repo`,8),ne=Oa(t,`importTarget`,8,`memories`),re=Oa(t,`isOpen`,12,!1),ie=Ma(),ae=F();function oe(e){I(ae,Fx({repo:te(),importTarget:e,onSuccess:()=>ie(`success`),onClose:()=>{re(!1),ie(`close`)}}))}oe(ne()),B(()=>W(ne()),()=>{ne()&&oe(ne())}),B(()=>(H(ae),W(re())),()=>{H(ae).isOpen.set(re())}),B(()=>H(ae),()=>{dt(I(d,H(ae).file),`$file`,l)}),B(()=>H(ae),()=>{dt(I(f,H(ae).csvData),`$csvData`,l)}),B(()=>H(ae),()=>{dt(I(p,H(ae).headers),`$headers`,l)}),B(()=>H(ae),()=>{dt(I(m,H(ae).fileName),`$fileName`,l)}),B(()=>H(ae),()=>{dt(I(h,H(ae).errorMsg),`$errorMsg`,l)}),B(()=>H(ae),()=>{dt(I(g,H(ae).isSubmitting),`$isSubmitting`,l)}),B(()=>H(ae),()=>{dt(I(_,H(ae).isOpen),`$composableIsOpen`,l)}),B(()=>H(ae),()=>{I(v,H(ae).close)}),B(()=>H(ae),()=>{I(y,H(ae).handleFileSelect)}),B(()=>H(ae),()=>{I(b,H(ae).handleFileDrop)}),B(()=>H(ae),()=>{I(x,H(ae).downloadExample)}),B(()=>H(ae),()=>{I(S,H(ae).handleImport)}),B(()=>H(ae),()=>{I(C,H(ae).setFile)}),B(()=>H(ae),()=>{I(w,H(ae).setCsvData)}),B(()=>n(),()=>{I(T,n())}),B(()=>r(),()=>{I(E,r())}),B(()=>i(),()=>{I(D,i())}),B(()=>a(),()=>{I(O,a())}),B(()=>o(),()=>{I(k,o())}),B(()=>s(),()=>{I(ee,s())}),Un(),Ta();var se=li(),ce=R(se),le=e=>{var n=Wx(),r=L(n),i=L(r),a=L(i),o=L(a);$(L(o),{name:`upload-cloud`,size:18}),j(o);var s=z(o,2),c=L(s);j(s),j(a);var l=z(a,2);$(L(l),{name:`x`,size:18,strokeWidth:2}),j(l),j(i);var u=z(i,2),d=L(u),f=L(d),p=e=>{var n=Ix(),r=R(n),i=L(r),a=L(i);$(L(a),{name:`file-up`,size:48,strokeWidth:1}),j(a);var o=z(a,6),s=z(L(o));j(o),j(i),j(r);var c=z(r,2),l=z(L(c),2),u=L(l);$(u,{name:`download`,size:14,className:`mr-2`});var d=z(u);j(l),j(c),V(()=>J(d,` Download Example ${ne()===`memories`?`Memories`:`Tasks`} CSV`)),G(`change`,s,function(...e){H(y)?.apply(this,e)}),G(`dragover`,r,wa(function(e){Da.call(this,t,e)})),G(`drop`,r,function(...e){H(b)?.apply(this,e)}),G(`click`,l,function(...e){H(x)?.apply(this,e)}),q(e,n)},m=e=>{var t=Bx(),n=R(t),r=L(n),i=L(r);$(L(i),{name:`file-type-2`,size:24}),j(i);var a=z(i,2),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c);j(c),j(a),j(r);var u=z(r,2);j(n);var d=z(n,2),f=z(L(d),2),p=L(f),m=L(p),h=L(m);X(h,5,()=>H(D),e=>e,(e,t)=>{var n=Lx(),r=L(n,!0);j(n),V(()=>J(r,H(t))),q(e,n)}),j(h),j(m);var g=z(m);X(g,7,()=>(H(E),U(()=>H(E).slice(0,5))),(e,t)=>`${t}-${JSON.stringify(e)}`,(e,t)=>{var n=zx();X(n,5,()=>H(D),e=>e,(e,n)=>{var r=Rx(),i=L(r,!0);j(r),V(e=>J(i,e),[()=>(H(t),H(n),U(()=>H(t)[H(n).toLowerCase().replace(/[^a-z0-9_]/g,`_`)]||``))]),q(e,r)}),j(n),q(e,n)}),j(g),j(p),j(f),j(d),V(()=>{J(s,H(O)),J(l,`${(H(E),U(()=>H(E).length))??``} rows found`)}),G(`click`,u,()=>{H(C)(null),H(w)([])}),q(e,t)};Y(f,e=>{H(T)?e(m,-1):e(p)});var h=z(f,2),g=e=>{var t=Vx(),n=L(t);$(n,{name:`alert-circle`,size:16});var r=z(n,2),i=L(r,!0);j(r),j(t),V(()=>J(i,H(k))),q(e,t)};Y(h,e=>{H(k)&&e(g)}),j(d),j(u);var _=z(u,2),te=L(_),re=z(te,2),ie=L(re),ae=e=>{var t=Hx();Ne(),q(e,t)},oe=e=>{var t=Ux();$(R(t),{name:`check`,size:16,className:`mr-2`}),Ne(),q(e,t)};Y(ie,e=>{H(ee)?e(ae):e(oe,-1)}),j(re),j(_),j(r),j(n),V(()=>{J(c,`Bulk Import ${ne()===`memories`?`Memories`:`Tasks`}`),te.disabled=H(ee),re.disabled=(H(ee),H(E),U(()=>H(ee)||H(E).length===0))}),G(`click`,l,function(...e){H(v)?.apply(this,e)}),G(`click`,te,function(...e){H(v)?.apply(this,e)}),G(`click`,re,function(...e){H(S)?.apply(this,e)}),Pi(3,r,()=>Nx,()=>({duration:200,start:.95})),G(`click`,r,Ca(function(e){Da.call(this,t,e)})),Pi(3,n,()=>Mx,()=>({duration:200})),G(`click`,n,function(...e){H(v)?.apply(this,e)}),q(e,n)};Y(ce,e=>{c()&&e(le)}),q(e,se),Ge(),u()}var Kx=K(`<option> </option>`),qx=K(`<option> </option>`),Jx=K(`<div class="modal-backdrop svelte-l0ytfo" role="button" tabindex="-1" aria-label="Close modal"></div> <div class="modal-panel animate-fade-in svelte-l0ytfo" role="dialog" aria-modal="true" aria-labelledby="modal-title" tabindex="-1"><div class="modal-header svelte-l0ytfo"><div class="modal-header-icon svelte-l0ytfo"><!></div> <div><div id="modal-title" class="modal-title svelte-l0ytfo">New Task</div> <div class="modal-subtitle svelte-l0ytfo">Add a task to the current repository</div></div> <button class="modal-close-btn svelte-l0ytfo" aria-label="Close"><!></button></div> <div class="modal-body svelte-l0ytfo"><div class="field-grid-2 svelte-l0ytfo"><div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_code">Task Code <span class="required svelte-l0ytfo">*</span></label> <input id="new_task_code" class="form-input" placeholder="TASK-001"/></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_phase">Phase</label> <input id="new_task_phase" class="form-input" placeholder="Implementation"/></div></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_title">Title <span class="required svelte-l0ytfo">*</span> <span class="field-hint svelte-l0ytfo"> </span></label> <input id="new_task_title" class="form-input" placeholder="Short, descriptive task title" maxlength="80"/></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_description">Description</label> <textarea id="new_task_description" class="form-textarea modal-textarea svelte-l0ytfo" placeholder="What needs to be done? Include context, acceptance criteria, etc." rows="4"></textarea></div> <div class="field-grid-2 svelte-l0ytfo"><div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_status">Status</label> <select id="new_task_status" class="form-select"></select></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_priority">Priority</label> <select id="new_task_priority" class="form-select"></select></div></div></div> <div class="modal-footer svelte-l0ytfo"><button class="btn btn-ghost">Cancel</button> <button class="btn btn-primary modal-save-btn svelte-l0ytfo"><!> Create Task</button></div></div>`,1);function Yx(e,t){We(t,!1);let n=Oa(t,`open`,8,!1),r=Oa(t,`newTask`,12),i=Oa(t,`onClose`,8,()=>{}),a=Oa(t,`onSave`,8,()=>{});function o(e){e.key===`Escape`&&i()()}Ta();var s=li();G(`keydown`,hn,o);var c=R(s),l=e=>{var t=Jx(),n=R(t),o=z(n,2),s=L(o),c=L(s);$(L(c),{name:`clipboard-list`,size:14,strokeWidth:2.2}),j(c);var l=z(c,4);$(L(l),{name:`x`,size:14,strokeWidth:2.5}),j(l),j(s);var u=z(s,2),d=L(u),f=L(d),p=z(L(f),2);ca(p),j(f);var m=z(f,2),h=z(L(m),2);ca(h),j(m),j(d);var g=z(d,2),_=L(g),v=z(L(_),3),y=L(v);j(v),j(_);var b=z(_,2);ca(b),j(g);var x=z(g,2),S=z(L(x),2);On(S),j(x);var C=z(x,2),w=L(C),T=z(L(w),2);X(T,4,()=>[`backlog`,`pending`,`in_progress`],e=>e,(e,t)=>{var n=Kx(),r=L(n,!0);j(n);var i={};V(e=>{J(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>(W(ul),U(()=>ul(t)))]),q(e,n)}),j(T),j(w);var E=z(w,2),D=z(L(E),2);X(D,4,()=>[1,2,3,4,5],e=>e,(e,t)=>{var n=qx(),r=L(n,!0);j(n);var i={};V(e=>{J(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>(W(dl),U(()=>dl(t)))]),q(e,n)}),j(D),j(E),j(C),j(u);var O=z(u,2),k=L(O),ee=z(k,2);$(L(ee),{name:`plus`,size:13,strokeWidth:2.5}),Ne(),j(ee),j(O),j(o),V(()=>{J(y,`${(W(r()),U(()=>(r().title??``).length))??``}/80`),ee.disabled=(W(r()),U(()=>!r().task_code||!r().title))}),G(`click`,n,function(...e){i()?.apply(this,e)}),G(`keydown`,n,e=>e.key===`Escape`&&i()()),G(`click`,l,function(...e){i()?.apply(this,e)}),Z(p,()=>r().task_code,e=>(r(r().task_code=e,!0),cr(()=>{}))),Z(h,()=>r().phase,e=>(r(r().phase=e,!0),cr(()=>{}))),Z(b,()=>r().title,e=>(r(r().title=e,!0),cr(()=>{}))),Z(S,()=>r().description,e=>(r(r().description=e,!0),cr(()=>{}))),Zi(T,()=>r().status,e=>(r(r().status=e,!0),cr(()=>{}))),Zi(D,()=>r().priority,e=>(r(r().priority=e,!0),cr(()=>{}))),G(`click`,k,function(...e){i()?.apply(this,e)}),G(`click`,ee,function(...e){a()?.apply(this,e)}),q(e,t)};Y(c,e=>{n()&&e(l)}),q(e,s),Ge()}var Xx=K(`<span class="ref-total-badge svelte-w0wd5z"> </span>`),Zx=K(`<button class="ref-clear-btn svelte-w0wd5z"><!></button>`),Qx=K(`<button><!> <span> </span> <span class="ref-cat-count svelte-w0wd5z"> </span></button>`),$x=K(`<div style="padding:40px;text-align:center;"><div class="skeleton" style="height:60px;border-radius:12px;margin-bottom:10px;"></div> <div class="skeleton" style="height:60px;border-radius:12px;margin-bottom:10px;"></div> <div class="skeleton" style="height:60px;border-radius:12px;"></div></div>`),eS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),tS=K(`<code class="ref-param-tag svelte-w0wd5z"> </code>`),nS=K(`<code class="ref-param-tag ref-param-more svelte-w0wd5z"> </code>`),rS=K(`<div class="ref-params svelte-w0wd5z"><!> <!></div>`),iS=K(`<div class="ref-card ref-card-tool animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-tool svelte-w0wd5z"><!> Tool</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!> <!></div>`),aS=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Tools</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),oS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),sS=K(`<div class="ref-card ref-card-prompt animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-prompt svelte-w0wd5z"><!> Prompt</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!></div>`),cS=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Prompts</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),lS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),uS=K(`<div class="ref-params svelte-w0wd5z"><code class="ref-param-tag svelte-w0wd5z" style="background:var(--color-bg);border:1px solid var(--color-border);"> </code></div>`),dS=K(`<div class="ref-card ref-card-resource animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-resource svelte-w0wd5z"><!> Resource</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!> <!></div>`),fS=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Resources</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),pS=K(`<div style="text-align:center;padding:48px 16px;color:var(--color-text-muted);"><!> <div style="font-size:0.82rem;margin-top:10px;"> </div></div>`),mS=K(`<!> <!> <!> <!>`,1),hS=K(`<div class="animate-fade-in"><div class="glass card" style="margin-bottom:16px;padding:14px 18px;"><div class="ref-header svelte-w0wd5z"><div class="flex items-center gap-2"><!> <span style="font-size:0.9rem;font-weight:800;color:var(--color-text);letter-spacing:-0.02em;">MCP Reference</span> <!></div> <div class="ref-search-wrap svelte-w0wd5z"><span class="ref-search-icon svelte-w0wd5z"><!></span> <input class="form-input ref-search-input svelte-w0wd5z" type="text" placeholder="Search tools & prompts…"/> <!></div></div></div> <div class="ref-body svelte-w0wd5z"><div class="glass ref-sidebar svelte-w0wd5z"><div class="ref-sidebar-label svelte-w0wd5z">Category</div> <!></div> <div class="ref-main svelte-w0wd5z"><!></div></div></div>`);function gS(e,t){We(t,!1);let n=()=>P(p(),`$appState`,o),r=()=>P(m(),`$filteredTools`,o),i=()=>P(h(),`$filteredPrompts`,o),a=()=>P(_(),`$filteredResources`,o),[o,s]=pt(),c=F(),l=F(),u=F(),d=F(),f=Oa(t,`handler`,8),p=Oa(t,`appState`,8),m=Oa(t,`filteredTools`,8),h=Oa(t,`filteredPrompts`,8),_=Oa(t,`filteredResources`,8);function v(e){return[{id:`all`,icon:`layers`,label:`All`,count:(e.capabilities?.tools?.length||0)+(e.capabilities?.prompts?.length||0)+(e.capabilities?.resources?.length||0)},{id:`tools`,icon:`tool`,label:`Tools`,count:e.capabilities?.tools?.length||0},{id:`prompts`,icon:`sparkle`,label:`Prompts`,count:e.capabilities?.prompts?.length||0},{id:`resources`,icon:`database`,label:`Resources`,count:e.capabilities?.resources?.length||0}]}function y(e,t,n){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f().openReferenceDrawer(t,n))}B(()=>n(),()=>{I(c,n())}),B(()=>r(),()=>{I(l,r())}),B(()=>i(),()=>{I(u,i())}),B(()=>a(),()=>{I(d,a())}),Un(),Ta();var b=hS(),x=L(b),S=L(x),C=L(S),w=L(C);$(w,{name:`book-open`,size:15,strokeWidth:1.75});var T=z(w,4),E=e=>{var t=Xx(),n=L(t);j(t),V(()=>J(n,`${(H(c),U(()=>(H(c).capabilities.tools?.length||0)+(H(c).capabilities.prompts?.length||0)))??``} items`)),q(e,t)};Y(T,e=>{H(c),U(()=>H(c).capabilities)&&e(E)}),j(C);var D=z(C,2),O=L(D);$(L(O),{name:`search`,size:12,strokeWidth:2}),j(O);var k=z(O,2);ca(k);var ee=z(k,2),te=e=>{var t=Zx();$(L(t),{name:`x`,size:11,strokeWidth:2.5}),j(t),G(`click`,t,()=>f().setReferenceSearch(``)),q(e,t)};Y(ee,e=>{H(c),U(()=>H(c).referenceSearch)&&e(te)}),j(D),j(S),j(x);var ne=z(x,2),re=L(ne);X(z(L(re),2),1,()=>(H(c),U(()=>v(H(c)))),e=>e.id,(e,t)=>{var n=Qx();let r;var i=L(n);$(i,{get name(){return H(t),U(()=>H(t).icon)},size:13,strokeWidth:1.75});var a=z(i,2),o=L(a,!0);j(a);var s=z(a,2),l=L(s,!0);j(s),j(n),V(()=>{r=Ki(n,1,`ref-cat-btn svelte-w0wd5z`,null,r,{active:H(c).referenceFilter===H(t).id}),J(o,(H(t),U(()=>H(t).label))),J(l,(H(t),U(()=>H(t).count)))}),G(`click`,n,()=>f().setReferenceFilter(H(t).id)),q(e,n)}),j(re);var ie=z(re,2),ae=L(ie),oe=e=>{q(e,$x())},se=e=>{var t=mS(),n=R(t),r=e=>{var t=aS(),n=R(t),r=L(n);$(r,{name:`tool`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);j(i),j(n);var o=z(n,2);X(o,5,()=>H(l),e=>e.data.name,(e,t)=>{var n=iS(),r=L(n),i=L(r);$(L(i),{name:`tool`,size:10,strokeWidth:2}),Ne(),j(i),j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),c=e=>{var n=eS(),r=L(n,!0);j(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)});var l=z(s,2),u=e=>{var n=rS(),r=L(n);X(r,1,()=>(H(t),U(()=>Object.entries(H(t).data.inputSchema.properties).slice(0,4))),([e])=>e,(e,t)=>{var n=Jt(()=>g(H(t),1));let r=()=>H(n)[0];var i=tS(),a=L(i,!0);j(i),V(()=>J(a,r())),q(e,i)});var i=z(r,2),a=e=>{var n=nS(),r=L(n);j(n),V(e=>J(r,`+${e??``}`),[()=>(H(t),U(()=>Object.keys(H(t).data.inputSchema.properties).length-4))]),q(e,n)},o=Jt(()=>(H(t),U(()=>Object.keys(H(t).data.inputSchema.properties).length>4)));Y(i,e=>{H(o)&&e(a)}),j(n),q(e,n)};Y(l,e=>{H(t),U(()=>H(t)?.data?.inputSchema?.properties)&&e(u)}),j(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Tool`)))),G(`click`,n,()=>f().openReferenceDrawer(`tool`,H(t).data)),G(`keydown`,n,e=>y(e,`tool`,H(t).data)),q(e,n)}),j(o),V(()=>J(a,(H(l),U(()=>H(l).length)))),q(e,t)};Y(n,e=>{H(l),U(()=>H(l).length>0)&&e(r)});var i=z(n,2),a=e=>{var t=cS(),n=R(t),r=L(n);$(r,{name:`sparkle`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);j(i),j(n);var o=z(n,2);X(o,5,()=>H(u),e=>e.data.name,(e,t)=>{var n=sS(),r=L(n),i=L(r);$(L(i),{name:`sparkle`,size:10,strokeWidth:2}),Ne(),j(i),j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),c=e=>{var n=oS(),r=L(n,!0);j(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)}),j(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Prompt`)))),G(`click`,n,()=>f().openReferenceDrawer(`prompt`,H(t).data)),G(`keydown`,n,e=>y(e,`prompt`,H(t).data)),q(e,n)}),j(o),V(()=>{Ji(n,`margin-top:${(H(l),U(()=>H(l).length>0?`20px`:`0`))??``}`),J(a,(H(u),U(()=>H(u).length)))}),q(e,t)};Y(i,e=>{H(u),U(()=>H(u).length>0)&&e(a)});var o=z(i,2),s=e=>{var t=fS(),n=R(t),r=L(n);$(r,{name:`database`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);j(i),j(n);var o=z(n,2);X(o,5,()=>H(d),e=>e.data.uri||e.data.name,(e,t)=>{var n=dS(),r=L(n),i=L(r);$(L(i),{name:`database`,size:10,strokeWidth:2}),Ne(),j(i),j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),c=e=>{var n=lS(),r=L(n,!0);j(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)});var l=z(s,2),u=e=>{var n=uS(),r=L(n),i=L(r,!0);j(r),j(n),V(()=>J(i,(H(t),U(()=>H(t).data.uri)))),q(e,n)};Y(l,e=>{H(t),U(()=>H(t)?.data?.uri)&&e(u)}),j(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Resource`)))),G(`click`,n,()=>f().openReferenceDrawer(`resource`,H(t).data)),G(`keydown`,n,e=>y(e,`resource`,H(t).data)),q(e,n)}),j(o),V(()=>{Ji(n,`margin-top:${(H(l),H(u),U(()=>H(l).length>0||H(u).length>0?`20px`:`0`))??``}`),J(a,(H(d),U(()=>H(d).length)))}),q(e,t)};Y(o,e=>{H(d),U(()=>H(d).length>0)&&e(s)});var p=z(o,2),m=e=>{var t=pS(),n=L(t);$(n,{name:`search`,size:28,strokeWidth:1.25});var r=z(n,2),i=L(r);j(r),j(t),V(()=>J(i,`No results for "${(H(c),U(()=>H(c).referenceSearch))??``}"`)),q(e,t)};Y(p,e=>{H(l),H(u),H(d),U(()=>H(l).length===0&&H(u).length===0&&H(d).length===0)&&e(m)}),q(e,t)};Y(ae,e=>{H(c),U(()=>!H(c).capabilities)?e(oe):e(se,-1)}),j(ie),j(ne),j(b),Z(k,()=>n().referenceSearch,e=>ht(p(),U(n).referenceSearch=e,U(n))),q(e,b),Ge(),s()}var _S=K(`<div class="fab-backdrop svelte-10ega5z" role="button" tabindex="-1" aria-label="Close menu"></div>`),vS=K(`<!> <div><div class="fab-actions svelte-10ega5z"><div class="fab-action-item svelte-10ega5z"><span class="fab-action-label svelte-10ega5z">New Task</span> <button class="fab-action-btn task svelte-10ega5z" title="Create new task" aria-label="Create new task"><!></button></div> <div class="fab-action-item svelte-10ega5z"><span class="fab-action-label svelte-10ega5z">New Memory</span> <button class="fab-action-btn memory svelte-10ega5z" title="Create new memory" aria-label="Create new memory"><!></button></div></div> <button class="fab-main svelte-10ega5z"><span><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-10ega5z"><line x1="12" y1="5" x2="12" y2="19" class="svelte-10ega5z"></line><line x1="5" y1="12" x2="19" y2="12" class="svelte-10ega5z"></line></svg></span></button></div>`,1);function yS(e,t){We(t,!1);let n=()=>P(Ra,`$currentRepo`,r),[r,i]=pt(),a=Oa(t,`onNewMemory`,8,()=>{}),o=Oa(t,`onNewTask`,8,()=>{}),s=F(!1);function c(){I(s,!H(s))}function l(){I(s,!1),a()()}function u(){I(s,!1),o()()}function d(e){e.key===`Escape`&&I(s,!1)}Ta();var f=li();G(`keydown`,hn,d);var p=R(f),m=e=>{var t=vS(),n=R(t),r=e=>{var t=_S();G(`click`,t,()=>I(s,!1)),G(`keydown`,t,e=>e.key===`Escape`&&I(s,!1)),q(e,t)};Y(n,e=>{H(s)&&e(r)});var i=z(n,2);let a;var o=L(i),d=L(o),f=z(L(d),2);$(L(f),{name:`clipboard-list`,size:16,strokeWidth:2}),j(f),j(d);var p=z(d,2),m=z(L(p),2);$(L(m),{name:`brain`,size:16,strokeWidth:2}),j(m),j(p),j(o);var h=z(o,2),g=L(h);let _;j(h),j(i),V(()=>{a=Ki(i,1,`fab-container svelte-10ega5z`,null,a,{open:H(s)}),Ji(d,`transition-delay: ${H(s)?`0.05s`:`0s`}`),Ji(p,`transition-delay: ${H(s)?`0.1s`:`0s`}`),fa(h,`title`,H(s)?`Close`:`Quick create`),fa(h,`aria-label`,H(s)?`Close quick create menu`:`Open quick create menu`),fa(h,`aria-expanded`,H(s)),_=Ki(g,1,`fab-icon svelte-10ega5z`,null,_,{rotated:H(s)})}),G(`click`,f,u),G(`click`,m,l),G(`click`,h,c),q(e,t)};Y(p,e=>{n()&&e(m)}),q(e,f),Ge(),i()}var bS=K(`<div class="error-banner svelte-owkwhr"> </div>`),xS=K(`<div class="glass card panel-card create-panel svelte-owkwhr"><div class="panel-heading svelte-owkwhr"><div><div class="section-label">New Standard</div> <div class="toolbar-subtitle svelte-owkwhr">Save one atomic coding standard for this repo or globally.</div></div></div> <div class="form-grid svelte-owkwhr"><label class="svelte-owkwhr"><span class="svelte-owkwhr">Name</span> <input class="form-input" placeholder="Error handling standard"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Parent ID</span> <input class="form-input" placeholder="Optional parent standard UUID"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Context</span> <input class="form-input" placeholder="testing, security, routing"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Version</span> <input class="form-input" placeholder="1.0.0"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Language</span> <input class="form-input" placeholder="typescript, python"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Stack</span> <input class="form-input" placeholder="svelte, vite, express"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Tags</span> <input class="form-input" placeholder="frontend, linting"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Metadata JSON</span> <input class="form-input" placeholder="JSON metadata"/></label></div> <label class="content-label svelte-owkwhr"><span class="svelte-owkwhr">Content</span> <textarea class="form-textarea content-input svelte-owkwhr" placeholder="Write the implementation rule in concise Markdown..."></textarea></label> <button class="btn btn-primary"><!> </button></div>`),SS=K(`<button class="btn btn-ghost btn-sm">Add first standard</button>`),CS=K(`<div class="muted-state svelte-owkwhr">Loading standards...</div>`),wS=K(`<div class="empty-state svelte-owkwhr"><!> <div class="empty-title svelte-owkwhr">No standards found</div> <div class="empty-copy svelte-owkwhr">Adjust the filters or create a standard for this repository.</div></div>`),TS=K(`<span class="mini-chip svelte-owkwhr"> </span>`),ES=K(`<div class="tag-row svelte-owkwhr"></div>`),DS=K(`<span class="mini-chip svelte-owkwhr"> </span>`),OS=K(`<div class="tag-row svelte-owkwhr"></div>`),kS=K(`<button><div class="row-title svelte-owkwhr"><!> <span> </span></div> <div class="row-meta svelte-owkwhr"><span> </span> <span> </span> <span> </span> <span>child</span></div> <!></button>`),AS=K(`<div class="standard-children svelte-owkwhr"></div>`),jS=K(`<div class="standard-group svelte-owkwhr"><button><div class="row-title svelte-owkwhr"> </div> <div class="row-meta svelte-owkwhr"><span> </span> <span> </span> <span> </span> <span> </span></div> <!></button> <!></div>`),MS=K(`<div class="standard-list svelte-owkwhr"></div>`),NS=K(`<div class="muted-state svelte-owkwhr">Loading standard detail...</div>`),PS=K(`<div class="form-grid svelte-owkwhr"><label class="svelte-owkwhr"><span class="svelte-owkwhr">Name</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Parent ID</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Context</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Version</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Language</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Stack</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Tags</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Metadata JSON</span> <input class="form-input"/></label></div> <label class="content-label svelte-owkwhr"><span class="svelte-owkwhr">Content</span> <textarea class="form-textarea content-input svelte-owkwhr"></textarea></label> <div class="editor-actions svelte-owkwhr"><button class="btn btn-primary"><!> </button> <button class="btn btn-ghost">Cancel</button></div>`,1),FS=K(`<div class="markdown-body md-card"><!></div>`),IS=K(`<div class="detail-heading svelte-owkwhr"><div><div class="detail-title svelte-owkwhr"> </div> <div class="row-meta svelte-owkwhr"><span> </span> <span> </span> <span> </span> <span> </span></div></div> <div class="detail-actions svelte-owkwhr"><span class="scope-pill svelte-owkwhr"> </span> <button class="btn btn-ghost btn-sm"><!> Edit</button> <button class="btn btn-ghost btn-sm danger-text svelte-owkwhr"><!> </button></div></div> <!>`,1),LS=K(`<div class="empty-state detail-empty svelte-owkwhr"><!> <div class="empty-title svelte-owkwhr">Select a standard</div> <div class="empty-copy svelte-owkwhr">The full Markdown content and scope metadata appear here.</div></div>`),RS=K(`<div class="feature-shell animate-fade-in svelte-owkwhr"><div class="feature-toolbar glass card svelte-owkwhr"><div class="toolbar-title svelte-owkwhr"><!> <div><div class="section-label">Coding Standards</div> <div class="toolbar-subtitle svelte-owkwhr"> </div></div></div> <button class="btn btn-primary toolbar-action svelte-owkwhr"><!> </button> <div class="toolbar-controls svelte-owkwhr"><input class="form-input" placeholder="Search standards..."/> <input class="form-input" placeholder="Language"/> <input class="form-input" placeholder="Stack tags, comma separated"/> <select class="form-select"><option>Repo + global</option><option>Global only</option><option>All standards</option></select></div></div> <!> <!> <div><div class="glass card panel-card list-panel svelte-owkwhr"><div class="panel-heading svelte-owkwhr"><div class="section-label">Standards</div> <!></div> <!></div> <div class="glass card panel-card detail-panel svelte-owkwhr"><!></div></div></div>`);function zS(e,t){We(t,!1);let n=Oa(t,`repo`,8,``),r=F([]),i=F(),a=F(!1),o=F(!1),s=F(!1),c=F(!1),l=F(``),u=F(``),d=F(``),f=F(``),p=F(`repo`),m=F(null),h=F(!1),g=F(!1),_=F({name:``,parent_id:``,context:`general`,version:`1.0.0`,language:``,stack:``,tags:``,metadata:`{"source":"dashboard"}`,content:``}),v=F({name:``,parent_id:``,context:`general`,version:`1.0.0`,language:``,stack:``,tags:``,metadata:`{"source":"dashboard"}`,content:``});function y(e){try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)&&Object.keys(t).length>0?t:null}catch{return null}}function b(e){return e.split(`,`).map(e=>e.trim()).filter(Boolean)}function x(e){return JSON.stringify(e,null,2)}function S(e){let t={},n=new Set(e.map(e=>e.id));for(let r of e){let e=r.parent_id;if(!e||!n.has(e))continue;let i=t[e]||[];i.push(r),t[e]=i}return e.filter(e=>!e.parent_id||!n.has(e.parent_id)).map(e=>({standard:e,children:(t[e.id]||[]).sort((e,t)=>e.title.localeCompare(t.title))}))}async function C(e){I(o,!0),I(g,!1);try{let t=await Q.standardById(e);I(m,t),t&&I(v,{name:t.title,parent_id:t.parent_id||``,context:t.context,version:t.version,language:t.language||``,stack:t.stack.join(`, `),tags:t.tags.join(`, `),metadata:x(t.metadata),content:t.content})}catch(e){I(l,e instanceof Error?e.message:String(e))}finally{I(o,!1)}}function w(){H(m)&&(I(v,{name:H(m).title,parent_id:H(m).parent_id||``,context:H(m).context,version:H(m).version,language:H(m).language||``,stack:H(m).stack.join(`, `),tags:H(m).tags.join(`, `),metadata:x(H(m).metadata),content:H(m).content}),I(g,!0))}function T(){I(g,!1)}async function E(){if(n()){I(a,!0),I(l,``);try{I(r,(await Q.standards({query:H(u)||void 0,language:H(d)||void 0,stack:H(f)||void 0,repo:H(p)===`repo`?n():void 0,is_global:H(p)===`global`?!0:void 0,page:1,pageSize:100})).standards||[]),(!H(m)||!H(r).some(e=>e.id===H(m)?.id))&&I(m,H(r)[0]||null),H(m)?.id&&await C(H(m).id)}catch(e){I(l,e instanceof Error?e.message:String(e))}finally{I(a,!1)}}}async function D(){let e=y(H(_).metadata);if(!(!H(_).name.trim()||!H(_).content.trim()||b(H(_).tags).length===0||!e)){I(s,!0),I(l,``);try{let t=H(p)===`global`,r=await Q.createStandard({title:H(_).name.trim(),content:H(_).content.trim(),parent_id:H(_).parent_id.trim()||void 0,context:H(_).context.trim()||`general`,version:H(_).version.trim()||`1.0.0`,language:H(_).language.trim()||void 0,stack:b(H(_).stack),tags:b(H(_).tags),metadata:e,repo:t?void 0:n(),is_global:t});I(_,{name:``,parent_id:``,context:`general`,version:`1.0.0`,language:``,stack:``,tags:``,metadata:`{"source":"dashboard"}`,content:``}),I(h,!1),await E(),I(m,r||H(m))}catch(e){I(l,e instanceof Error?e.message:String(e))}finally{I(s,!1)}}}async function O(){if(!H(m))return;let e=y(H(v).metadata);if(!(!H(v).name.trim()||!H(v).content.trim()||b(H(v).tags).length===0||!e)){I(s,!0),I(l,``);try{await Q.updateStandard(H(m).id,{title:H(v).name.trim(),content:H(v).content.trim(),parent_id:H(v).parent_id.trim()||null,context:H(v).context.trim()||`general`,version:H(v).version.trim()||`1.0.0`,language:H(v).language.trim()||void 0,stack:b(H(v).stack),tags:b(H(v).tags),metadata:e,repo:H(m).is_global?void 0:H(m).repo||n(),is_global:H(m).is_global}),I(g,!1),await C(H(m).id),await E()}catch(e){I(l,e instanceof Error?e.message:String(e))}finally{I(s,!1)}}}async function k(){if(H(m)&&confirm(`Delete coding standard "${H(m).title}"?`)){I(c,!0),I(l,``);try{await Q.deleteStandard(H(m).id),I(g,!1),I(m,null),await E()}catch(e){I(l,e instanceof Error?e.message:String(e))}finally{I(c,!1)}}}ka(()=>{E()}),B(()=>W(n()),()=>{n()&&E()}),B(()=>H(r),()=>{I(i,S(H(r)))}),Un(),Ta();var ee=RS(),te=L(ee),ne=L(te),re=L(ne);$(re,{name:`check`,size:16,strokeWidth:2});var ie=z(re,2),ae=z(L(ie),2),oe=L(ae);j(ae),j(ie),j(ne);var se=z(ne,2),ce=L(se);{let e=Yt(()=>H(h)?`chevron-left`:`plus`);$(ce,{get name(){return H(e)},size:14,strokeWidth:2})}var le=z(ce);j(se);var ue=z(se,2),de=L(ue);ca(de);var fe=z(de,2);ca(fe);var pe=z(fe,2);ca(pe);var me=z(pe,2),he=L(me);he.value=he.__value=`repo`;var ge=z(he);ge.value=ge.__value=`global`;var _e=z(ge);_e.value=_e.__value=`all`,j(me),j(ue),j(te);var ve=z(te,2),ye=e=>{var t=bS(),n=L(t,!0);j(t),V(()=>J(n,H(l))),q(e,t)};Y(ve,e=>{H(l)&&e(ye)});var be=z(ve,2),xe=e=>{var t=xS(),n=z(L(t),2),r=L(n),i=z(L(r),2);ca(i),j(r);var a=z(r,2),o=z(L(a),2);ca(o),j(a);var c=z(a,2),l=z(L(c),2);ca(l),j(c);var u=z(c,2),d=z(L(u),2);ca(d),j(u);var f=z(u,2),p=z(L(f),2);ca(p),j(f);var m=z(f,2),h=z(L(m),2);ca(h),j(m);var g=z(m,2),v=z(L(g),2);ca(v),j(g);var x=z(g,2),S=z(L(x),2);ca(S),j(x),j(n);var C=z(n,2),w=z(L(C),2);On(w),j(C);var T=z(C,2),E=L(T);$(E,{name:`check`,size:14,strokeWidth:2});var O=z(E);j(T),j(t),V(e=>{T.disabled=e,J(O,` ${H(s)?`Saving...`:`Save Standard`}`)},[()=>(H(s),H(_),U(()=>H(s)||!H(_).name.trim()||!H(_).content.trim()||b(H(_).tags).length===0||!y(H(_).metadata)))]),Z(i,()=>H(_).name,e=>sn(_,H(_).name=e)),Z(o,()=>H(_).parent_id,e=>sn(_,H(_).parent_id=e)),Z(l,()=>H(_).context,e=>sn(_,H(_).context=e)),Z(d,()=>H(_).version,e=>sn(_,H(_).version=e)),Z(p,()=>H(_).language,e=>sn(_,H(_).language=e)),Z(h,()=>H(_).stack,e=>sn(_,H(_).stack=e)),Z(v,()=>H(_).tags,e=>sn(_,H(_).tags=e)),Z(S,()=>H(_).metadata,e=>sn(_,H(_).metadata=e)),Z(w,()=>H(_).content,e=>sn(_,H(_).content=e)),G(`click`,T,D),q(e,t)};Y(be,e=>{H(h)&&e(xe)});var Se=z(be,2);let Ce;var we=L(Se),Te=L(we),Ee=z(L(Te),2),De=e=>{var t=SS();G(`click`,t,()=>I(h,!0)),q(e,t)};Y(Ee,e=>{H(r),U(()=>H(r).length===0)&&e(De)}),j(Te);var Oe=z(Te,2),A=e=>{q(e,CS())},ke=e=>{var t=wS();$(L(t),{name:`check`,size:22,strokeWidth:1.75}),Ne(4),j(t),q(e,t)},Ae=e=>{var t=MS();X(t,5,()=>H(i),e=>e.standard.id,(e,t)=>{var r=jS(),i=L(r);let a;var o=L(i),s=L(o,!0);j(o);var c=z(o,2),l=L(c),u=L(l,!0);j(l);var d=z(l,2),f=L(d,!0);j(d);var p=z(d,2),h=L(p,!0);j(p);var g=z(p,2),_=L(g,!0);j(g),j(c);var v=z(c,2),y=e=>{var n=ES();X(n,5,()=>(H(t),U(()=>[...new Set([...H(t).standard.stack,...H(t).standard.tags])].slice(0,6))),e=>e,(e,t)=>{var n=TS(),r=L(n,!0);j(n),V(()=>J(r,H(t))),q(e,n)}),j(n),q(e,n)};Y(v,e=>{H(t),U(()=>H(t).standard.stack.length||H(t).standard.tags.length)&&e(y)}),j(i);var b=z(i,2),x=e=>{var r=AS();X(r,5,()=>(H(t),U(()=>H(t).children)),e=>e.id,(e,t)=>{var r=kS();let i;var a=L(r),o=L(a);$(o,{name:`corner-down-right`,size:13,strokeWidth:2});var s=z(o,2),c=L(s,!0);j(s),j(a);var l=z(a,2),u=L(l),d=L(u,!0);j(u);var f=z(u,2),p=L(f,!0);j(f);var h=z(f,2),g=L(h,!0);j(h),Ne(2),j(l);var _=z(l,2),v=e=>{var n=OS();X(n,5,()=>(H(t),U(()=>[...new Set([...H(t).stack,...H(t).tags])].slice(0,6))),e=>e,(e,t)=>{var n=DS(),r=L(n,!0);j(n),V(()=>J(r,H(t))),q(e,n)}),j(n),q(e,n)};Y(_,e=>{H(t),U(()=>H(t).stack.length||H(t).tags.length)&&e(v)}),j(r),V(()=>{i=Ki(r,1,`standard-row standard-row-child svelte-owkwhr`,null,i,{selected:H(m)?.id===H(t).id}),J(c,(H(t),U(()=>H(t).title))),J(d,(H(t),U(()=>H(t).context))),J(p,(H(t),U(()=>H(t).language||`any language`))),J(g,(H(t),W(n()),U(()=>H(t).is_global?`global`:H(t).repo||n())))}),G(`click`,r,()=>C(H(t).id)),q(e,r)}),j(r),q(e,r)};Y(b,e=>{H(t),U(()=>H(t).children.length>0)&&e(x)}),j(r),V(()=>{a=Ki(i,1,`standard-row standard-row-root svelte-owkwhr`,null,a,{selected:H(m)?.id===H(t).standard.id}),J(s,(H(t),U(()=>H(t).standard.title))),J(u,(H(t),U(()=>H(t).standard.context))),J(f,(H(t),U(()=>H(t).standard.language||`any language`))),J(h,(H(t),W(n()),U(()=>H(t).standard.is_global?`global`:H(t).standard.repo||n()))),J(_,(H(t),U(()=>H(t).children.length>0?`${H(t).children.length} child`:`root`)))}),G(`click`,i,()=>C(H(t).standard.id)),q(e,r)}),j(t),q(e,t)};Y(Oe,e=>{H(a)?e(A):(H(r),U(()=>H(r).length===0)?e(ke,1):e(Ae,-1))}),j(we);var je=z(we,2),Me=L(je),Pe=e=>{q(e,NS())},Fe=e=>{var t=IS(),n=R(t),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),l=L(o),u=L(l,!0);j(l);var d=z(l,2),f=L(d);j(d);var p=z(d,2),h=L(p,!0);j(p);var _=z(p,2),b=L(_,!0);j(_),j(o),j(r);var x=z(r,2),S=L(x),C=L(S,!0);j(S);var E=z(S,2);$(L(E),{name:`pencil`,size:14,strokeWidth:2}),Ne(),j(E);var D=z(E,2),ee=L(D);$(ee,{name:`trash`,size:14,strokeWidth:2});var te=z(ee);j(D),j(x),j(n);var ne=z(n,2),re=e=>{var t=PS(),n=R(t),r=L(n),i=z(L(r),2);ca(i),j(r);var a=z(r,2),o=z(L(a),2);ca(o),j(a);var c=z(a,2),l=z(L(c),2);ca(l),j(c);var u=z(c,2),d=z(L(u),2);ca(d),j(u);var f=z(u,2),p=z(L(f),2);ca(p),j(f);var m=z(f,2),h=z(L(m),2);ca(h),j(m);var g=z(m,2),_=z(L(g),2);ca(_),j(g);var b=z(g,2),x=z(L(b),2);ca(x),j(b),j(n);var S=z(n,2),C=z(L(S),2);On(C),j(S);var w=z(S,2),E=L(w),D=L(E);$(D,{name:`check`,size:14,strokeWidth:2});var k=z(D);j(E);var ee=z(E,2);j(w),V(e=>{E.disabled=e,J(k,` ${H(s)?`Saving...`:`Save Changes`}`),ee.disabled=H(s)},[()=>(H(s),H(v),U(()=>H(s)||!y(H(v).metadata)))]),Z(i,()=>H(v).name,e=>sn(v,H(v).name=e)),Z(o,()=>H(v).parent_id,e=>sn(v,H(v).parent_id=e)),Z(l,()=>H(v).context,e=>sn(v,H(v).context=e)),Z(d,()=>H(v).version,e=>sn(v,H(v).version=e)),Z(p,()=>H(v).language,e=>sn(v,H(v).language=e)),Z(h,()=>H(v).stack,e=>sn(v,H(v).stack=e)),Z(_,()=>H(v).tags,e=>sn(v,H(v).tags=e)),Z(x,()=>H(v).metadata,e=>sn(v,H(v).metadata=e)),Z(C,()=>H(v).content,e=>sn(v,H(v).content=e)),G(`click`,E,O),G(`click`,ee,T),q(e,t)},ie=e=>{var t=FS();nb(L(t),{get content(){return H(m),U(()=>H(m).content)}}),j(t),q(e,t)};Y(ne,e=>{H(g)?e(re):e(ie,-1)}),V(e=>{J(a,(H(m),U(()=>H(m).title))),J(u,(H(m),U(()=>H(m).context))),J(f,`v${(H(m),U(()=>H(m).version))??``}`),J(h,(H(m),U(()=>H(m).parent_id?`child of ${H(m).parent_id}`:`root`))),J(b,e),J(C,(H(m),U(()=>H(m).is_global?`Global`:`Repo`))),D.disabled=H(c),J(te,` ${H(c)?`Deleting...`:`Delete`}`)},[()=>(W(ol),H(m),U(()=>ol(H(m).updated_at)))]),G(`click`,E,w),G(`click`,D,k),q(e,t)},Ie=e=>{var t=LS();$(L(t),{name:`book-open`,size:22,strokeWidth:1.75}),Ne(4),j(t),q(e,t)};Y(Me,e=>{H(o)?e(Pe):H(m)?e(Fe,1):e(Ie,-1)}),j(je),j(Se),j(ee),V(()=>{J(oe,`${(H(r),U(()=>H(r).length))??``} matching standards`),J(le,` ${H(h)?`Close Form`:`New Standard`}`),Ce=Ki(Se,1,`feature-grid svelte-owkwhr`,null,Ce,{"with-create":H(h)})}),G(`click`,se,()=>I(h,!H(h))),Z(de,()=>H(u),e=>I(u,e)),G(`input`,de,()=>E()),Z(fe,()=>H(d),e=>I(d,e)),G(`input`,fe,()=>E()),Z(pe,()=>H(f),e=>I(f,e)),G(`input`,pe,()=>E()),Zi(me,()=>H(p),e=>I(p,e)),G(`change`,me,()=>E()),q(e,ee),Ge()}var BS=K(`<div class="error-banner svelte-1ik2acm"> </div>`),VS=K(`<div class="glass card panel-card action-panel svelte-1ik2acm"><div class="section-label">Create Handoff</div> <div class="form-stack svelte-1ik2acm"><label class="svelte-1ik2acm"><span class="svelte-1ik2acm">From agent</span><input class="form-input" placeholder="agent-a"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">To agent</span><input class="form-input" placeholder="agent-b (optional)"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Task code</span><input class="form-input" placeholder="TASK-123 (optional)"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Summary</span><textarea class="form-textarea summary-input svelte-1ik2acm" placeholder="What should the next agent know?"></textarea></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Context JSON</span><textarea class="form-textarea json-input svelte-1ik2acm"></textarea></label> <button class="btn btn-primary"><!> </button></div></div>`),HS=K(`<div class="claim-result svelte-1ik2acm"><div class="row-title svelte-1ik2acm"> </div> <div class="row-meta svelte-1ik2acm"><span> </span> <span> </span> <span> </span></div></div>`),US=K(`<div class="glass card panel-card action-panel svelte-1ik2acm"><div class="section-label">Claim Task</div> <div class="form-stack svelte-1ik2acm"><label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Task code</span><input class="form-input" placeholder="TASK-123"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Agent</span><input class="form-input" placeholder="agent-name"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Role</span><input class="form-input" placeholder="worker"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Metadata JSON</span><textarea class="form-textarea json-input svelte-1ik2acm" placeholder="Metadata JSON object"></textarea></label> <button class="btn btn-accent"><!> </button></div> <!></div>`),WS=K(`<div class="action-grid svelte-1ik2acm"><!> <!></div>`),GS=K(`<button class="btn btn-ghost btn-sm">Create handoff</button>`),KS=K(`<div class="muted-state svelte-1ik2acm">Loading handoffs...</div>`),qS=K(`<div class="empty-state svelte-1ik2acm"><!> <div class="empty-title svelte-1ik2acm">No handoffs found</div> <div class="empty-copy svelte-1ik2acm">Create a handoff when work needs context transfer between agents.</div></div>`),JS=K(`<span> </span>`),YS=K(`<button><div class="handoff-top svelte-1ik2acm"><span> </span> <span class="row-date svelte-1ik2acm"> </span></div> <div class="row-title svelte-1ik2acm"> </div> <div class="row-meta svelte-1ik2acm"><span> </span> <!></div></button>`),XS=K(`<div class="handoff-list svelte-1ik2acm"></div>`),ZS=K(`<div class="muted-inline svelte-1ik2acm"> </div>`),QS=K(`<div class="linked-task svelte-1ik2acm"><div> </div> <!></div>`),$S=K(`<div class="context-card svelte-1ik2acm"><div class="section-label" style="margin-bottom:8px;">Transfer Context</div> <pre class="json-pre svelte-1ik2acm"> </pre></div>`),eC=K(`<div class="detail-title svelte-1ik2acm"> </div> <div class="detail-grid svelte-1ik2acm"><div class="svelte-1ik2acm"><span class="svelte-1ik2acm">From</span><strong class="svelte-1ik2acm"> </strong></div> <div class="svelte-1ik2acm"><span class="svelte-1ik2acm">To</span><strong class="svelte-1ik2acm"> </strong></div> <div class="svelte-1ik2acm"><span class="svelte-1ik2acm">Status</span><strong class="svelte-1ik2acm"> </strong></div> <div class="svelte-1ik2acm"><span class="svelte-1ik2acm">Created</span><strong class="svelte-1ik2acm"> </strong></div> <div class="svelte-1ik2acm"><span class="svelte-1ik2acm">Updated</span><strong class="svelte-1ik2acm"> </strong></div> <div class="svelte-1ik2acm"><span class="svelte-1ik2acm">Expires</span><strong class="svelte-1ik2acm"> </strong></div></div> <div class="status-actions svelte-1ik2acm"><button class="btn btn-ghost btn-sm">Accept</button> <button class="btn btn-ghost btn-sm">Expire</button> <button class="btn btn-ghost btn-sm">Reject</button></div> <!> <!>`,1),tC=K(`<div class="empty-state detail-empty svelte-1ik2acm"><!> <div class="empty-title svelte-1ik2acm">Select a handoff</div> <div class="empty-copy svelte-1ik2acm">Details for the selected handoff appear here.</div></div>`),nC=K(`<div class="muted-state svelte-1ik2acm">Loading claims...</div>`),rC=K(`<div class="empty-state claims-empty svelte-1ik2acm"><!> <div class="empty-title svelte-1ik2acm">No active claims</div> <div class="empty-copy svelte-1ik2acm">Claims taken from agents will appear here for release and inspection.</div></div>`),iC=K(`<div class="claim-row svelte-1ik2acm"><div><div class="row-title svelte-1ik2acm"> </div> <div class="row-meta svelte-1ik2acm"><span> </span> <span> </span> <span> </span></div></div> <button class="btn btn-ghost btn-sm"> </button></div>`),aC=K(`<div class="claim-list svelte-1ik2acm"></div>`),oC=K(`<div class="feature-shell animate-fade-in svelte-1ik2acm"><div class="feature-toolbar glass card svelte-1ik2acm"><div class="toolbar-title svelte-1ik2acm"><!> <div><div class="section-label">Handoffs & Claims</div> <div class="toolbar-subtitle svelte-1ik2acm"> </div></div></div> <div class="toolbar-actions svelte-1ik2acm"><button class="btn btn-primary svelte-1ik2acm"><!> </button> <button class="btn btn-accent svelte-1ik2acm"><!> </button></div> <div class="toolbar-controls svelte-1ik2acm"><select class="form-select"><option>All statuses</option><option>Pending</option><option>Accepted</option><option>Rejected</option><option>Expired</option></select> <input class="form-input" placeholder="To agent filter"/> <button class="btn btn-ghost"><!> Refresh</button> <button class="btn btn-ghost"><!> Sync All</button></div></div> <!> <!> <div class="feature-grid svelte-1ik2acm"><div class="glass card panel-card list-panel svelte-1ik2acm"><div class="panel-heading svelte-1ik2acm"><div class="section-label">Handoff Queue</div> <!></div> <!></div> <div class="detail-stack svelte-1ik2acm"><div class="glass card panel-card detail-panel svelte-1ik2acm"><!></div> <div class="glass card panel-card claims-panel svelte-1ik2acm"><div class="panel-heading svelte-1ik2acm"><div class="section-label">Active Claims</div> <div class="toolbar-subtitle svelte-1ik2acm"> </div></div> <!></div></div></div></div>`);function sC(e,t){We(t,!1);let n=Oa(t,`repo`,8,``),r=F([]),i=F(!1),a=F(!1),o=F(!1),s=F(!1),c=F(``),l=F(`pending`),u=F(``),d=F(null),f=F(null),p=F([]),m=F(!1),h=F(null),g=F(!1),_=F(!1),v=F({from_agent:``,to_agent:``,task_code:``,summary:``,context:``}),y=F({task_code:``,agent:``,role:`worker`,metadata:``});function b(e){return e?.structuredContent??null}function x(e){if(!e.trim())return{};let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`JSON must be an object.`);return t}function S(){return!!H(v).from_agent.trim()&&!!H(v).summary.trim()&&(!!H(v).to_agent.trim()||!!H(v).task_code.trim()||!!H(v).context.trim())}function C(e,t){let r=Object.fromEntries(e.map((e,n)=>[e,t[n]]));return{id:String(r.id||``),repo:n(),from_agent:String(r.from_agent||``),to_agent:r.to_agent?String(r.to_agent):null,task_id:r.task_id?String(r.task_id):null,task_code:r.task_code?String(r.task_code):null,summary:String(r.summary||``),context:r.context&&typeof r.context==`object`&&!Array.isArray(r.context)?r.context:{},status:String(r.status||`pending`),created_at:String(r.created_at||``),updated_at:String(r.updated_at||r.created_at||``),expires_at:r.expires_at?String(r.expires_at):null}}async function w(){if(n()){I(m,!0);try{I(p,(await Q.coordinationClaims({repo:n(),active_only:!0,pageSize:20})).claims||[])}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(m,!1)}}}async function T(){if(n()){I(i,!0),I(c,``);try{let e={repo:n(),status:H(l)||void 0,limit:50,structured:!0};H(u).trim()&&(e.to_agent=H(u).trim());let t=b(await Q.callTool(`handoff-list`,e)),i=t?.handoffs?.columns||[];I(r,(t?.handoffs?.rows||[]).map(e=>C(i,e))),H(d)&&!H(r).some(e=>e.id===H(d)?.id)&&I(d,null)}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(i,!1)}}}async function E(){await Promise.all([T(),w()])}async function D(){if(!(!H(v).from_agent.trim()||!H(v).summary.trim())){I(a,!0),I(c,``);try{let e=b(await Q.callTool(`handoff-create`,{repo:n(),from_agent:H(v).from_agent.trim(),to_agent:H(v).to_agent.trim()||void 0,task_code:H(v).task_code.trim()||void 0,summary:H(v).summary.trim(),context:x(H(v).context),structured:!0}));I(v,{from_agent:``,to_agent:``,task_code:``,summary:``,context:``}),I(g,!1),await T(),I(d,e||H(r)[0]||null)}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(a,!1)}}}async function O(){if(!(!H(y).task_code.trim()||!H(y).agent.trim())){I(o,!0),I(c,``);try{I(f,b(await Q.callTool(`task-claim`,{repo:n(),task_code:H(y).task_code.trim(),agent:H(y).agent.trim(),role:H(y).role.trim()||`worker`,metadata:x(H(y).metadata),structured:!0}))),I(y,{task_code:``,agent:H(y).agent,role:H(y).role,metadata:``}),I(_,!1),await w()}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(o,!1)}}}async function k(e){if(H(d)){I(s,!0),I(c,``);try{await Q.callTool(`handoff-update`,{id:H(d).id,status:e,structured:!0}),await E(),I(d,H(r).find(e=>e.id===H(d)?.id)||null)}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(s,!1)}}}async function ee(e){I(h,e.id),I(c,``);try{await Q.releaseClaim({repo:n(),task_id:e.task_id,agent:e.agent}),await w()}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(h,null)}}ka(()=>{E()}),B(()=>W(n()),()=>{n()&&E()}),Un(),Ta();var te=oC(),ne=L(te),re=L(ne),ie=L(re);$(ie,{name:`git-branch`,size:16,strokeWidth:2});var ae=z(ie,2),oe=z(L(ae),2),se=L(oe);j(oe),j(ae),j(re);var ce=z(re,2),le=L(ce),ue=L(le);$(ue,{name:`git-branch`,size:14,strokeWidth:2});var de=z(ue);j(le);var fe=z(le,2),pe=L(fe);$(pe,{name:`check`,size:14,strokeWidth:2});var me=z(pe);j(fe),j(ce);var he=z(ce,2),ge=L(he),_e=L(ge);_e.value=_e.__value=``;var ve=z(_e);ve.value=ve.__value=`pending`;var ye=z(ve);ye.value=ye.__value=`accepted`;var be=z(ye);be.value=be.__value=`rejected`;var xe=z(be);xe.value=xe.__value=`expired`,j(ge);var Se=z(ge,2);ca(Se);var Ce=z(Se,2);$(L(Ce),{name:`refresh-cw`,size:14,strokeWidth:2}),Ne(),j(Ce);var we=z(Ce,2);$(L(we),{name:`refresh-cw`,size:14,strokeWidth:2}),Ne(),j(we),j(he),j(ne);var Te=z(ne,2),Ee=e=>{var t=BS(),n=L(t,!0);j(t),V(()=>J(n,H(c))),q(e,t)};Y(Te,e=>{H(c)&&e(Ee)});var De=z(Te,2),Oe=e=>{var t=WS(),n=L(t),r=e=>{var t=VS(),n=z(L(t),2),r=L(n),i=z(L(r));ca(i),j(r);var o=z(r,2),s=z(L(o));ca(s),j(o);var c=z(o,2),l=z(L(c));ca(l),j(c);var u=z(c,2),d=z(L(u));On(d),j(u);var f=z(u,2),p=z(L(f));On(p),fa(p,`placeholder`,`{"next_steps":["..."],"blockers":[],"remaining_work":"..."}`),j(f);var m=z(f,2),h=L(m);$(h,{name:`git-branch`,size:14,strokeWidth:2});var g=z(h);j(m),j(n),j(t),V(e=>{m.disabled=e,J(g,` ${H(a)?`Creating...`:`Create Handoff`}`)},[()=>(H(a),U(()=>H(a)||!S()))]),Z(i,()=>H(v).from_agent,e=>sn(v,H(v).from_agent=e)),Z(s,()=>H(v).to_agent,e=>sn(v,H(v).to_agent=e)),Z(l,()=>H(v).task_code,e=>sn(v,H(v).task_code=e)),Z(d,()=>H(v).summary,e=>sn(v,H(v).summary=e)),Z(p,()=>H(v).context,e=>sn(v,H(v).context=e)),G(`click`,m,D),q(e,t)};Y(n,e=>{H(g)&&e(r)});var i=z(n,2),s=e=>{var t=US(),n=z(L(t),2),r=L(n),i=z(L(r));ca(i),j(r);var a=z(r,2),s=z(L(a));ca(s),j(a);var c=z(a,2),l=z(L(c));ca(l),j(c);var u=z(c,2),d=z(L(u));On(d),j(u);var p=z(u,2),m=L(p);$(m,{name:`check`,size:14,strokeWidth:2});var h=z(m);j(p),j(n);var g=z(n,2),_=e=>{var t=HS(),n=L(t),r=L(n);j(n);var i=z(n,2),a=L(i),o=L(a,!0);j(a);var s=z(a,2),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(i),j(t),V(e=>{J(r,`Claimed ${(H(f),U(()=>H(f).task_code||H(f).task_id))??``}`),J(o,(H(f),U(()=>H(f).agent))),J(c,(H(f),U(()=>H(f).role))),J(u,e)},[()=>(W(ol),H(f),U(()=>ol(H(f).claimed_at)))]),q(e,t)};Y(g,e=>{H(f)&&e(_)}),j(t),V(e=>{p.disabled=e,J(h,` ${H(o)?`Claiming...`:`Claim Task`}`)},[()=>(H(o),H(y),U(()=>H(o)||!H(y).task_code.trim()||!H(y).agent.trim()))]),Z(i,()=>H(y).task_code,e=>sn(y,H(y).task_code=e)),Z(s,()=>H(y).agent,e=>sn(y,H(y).agent=e)),Z(l,()=>H(y).role,e=>sn(y,H(y).role=e)),Z(d,()=>H(y).metadata,e=>sn(y,H(y).metadata=e)),G(`click`,p,O),q(e,t)};Y(i,e=>{H(_)&&e(s)}),j(t),q(e,t)};Y(De,e=>{(H(g)||H(_))&&e(Oe)});var A=z(De,2),ke=L(A),Ae=L(ke),je=z(L(Ae),2),Me=e=>{var t=GS();G(`click`,t,()=>I(g,!0)),q(e,t)};Y(je,e=>{H(r),U(()=>H(r).length===0)&&e(Me)}),j(Ae);var Pe=z(Ae,2),Fe=e=>{q(e,KS())},Ie=e=>{var t=qS();$(L(t),{name:`git-branch`,size:22,strokeWidth:1.75}),Ne(4),j(t),q(e,t)},Le=e=>{var t=XS();X(t,5,()=>H(r),e=>e.id,(e,t)=>{var n=YS();let r;var i=L(n),a=L(i),o=L(a,!0);j(a);var s=z(a,2),c=L(s,!0);j(s),j(i);var l=z(i,2),u=L(l,!0);j(l);var f=z(l,2),p=L(f),m=L(p);j(p);var h=z(p,2),g=e=>{var n=JS(),r=L(n,!0);j(n),V(e=>J(r,e),[()=>(H(t),U(()=>H(t).task_id.slice(0,8)))]),q(e,n)};Y(h,e=>{H(t),U(()=>H(t).task_id)&&e(g)}),j(f),j(n),V(e=>{r=Ki(n,1,`handoff-row svelte-1ik2acm`,null,r,{selected:H(d)?.id===H(t).id}),Ki(a,1,`status-pill status-${(H(t),U(()=>H(t).status))??``}`,`svelte-1ik2acm`),J(o,(H(t),U(()=>H(t).status))),J(c,e),J(u,(H(t),U(()=>H(t).summary))),J(m,`${(H(t),U(()=>H(t).from_agent))??``} -> ${(H(t),U(()=>H(t).to_agent||`unassigned`))??``}`)},[()=>(W(ol),H(t),U(()=>ol(H(t).created_at)))]),G(`click`,n,()=>I(d,H(t))),q(e,n)}),j(t),q(e,t)};Y(Pe,e=>{H(i)?e(Fe):(H(r),U(()=>H(r).length===0)?e(Ie,1):e(Le,-1))}),j(ke);var Re=z(ke,2),ze=L(Re),Be=L(ze),Ve=e=>{var t=eC(),n=R(t),r=L(n,!0);j(n);var i=z(n,2),a=L(i),o=z(L(a)),c=L(o,!0);j(o),j(a);var l=z(a,2),u=z(L(l)),f=L(u,!0);j(u),j(l);var p=z(l,2),m=z(L(p)),h=L(m,!0);j(m),j(p);var g=z(p,2),_=z(L(g)),v=L(_,!0);j(_),j(g);var y=z(g,2),b=z(L(y)),x=L(b,!0);j(b),j(y);var S=z(y,2),C=z(L(S)),w=L(C,!0);j(C),j(S),j(i);var T=z(i,2),E=L(T),D=z(E,2),O=z(D,2);j(T);var ee=z(T,2),te=e=>{var t=QS(),n=L(t),r=L(n);j(n);var i=z(n,2),a=e=>{var t=ZS(),n=L(t,!0);j(t),V(()=>J(n,(H(d),U(()=>H(d).task_id)))),q(e,t)};Y(i,e=>{H(d),U(()=>H(d).task_id)&&e(a)}),j(t),V(()=>J(r,`Task: ${(H(d),U(()=>H(d).task_code||`—`))??``}`)),q(e,t)};Y(ee,e=>{H(d),U(()=>H(d).task_id||H(d).task_code)&&e(te)});var ne=z(ee,2),re=e=>{var t=$S(),n=z(L(t),2),r=L(n,!0);j(n),j(t),V(e=>J(r,e),[()=>(H(d),U(()=>JSON.stringify(H(d).context,null,2)))]),q(e,t)},ie=Jt(()=>(H(d),U(()=>Object.keys(H(d).context||{}).length>0)));Y(ne,e=>{H(ie)&&e(re)}),V((e,t,n)=>{J(r,(H(d),U(()=>H(d).summary))),J(c,(H(d),U(()=>H(d).from_agent))),J(f,(H(d),U(()=>H(d).to_agent||`unassigned`))),J(h,(H(d),U(()=>H(d).status))),J(v,e),J(x,t),J(w,n),E.disabled=(H(s),H(d),U(()=>H(s)||H(d).status===`accepted`)),D.disabled=(H(s),H(d),U(()=>H(s)||H(d).status===`expired`)),O.disabled=(H(s),H(d),U(()=>H(s)||H(d).status===`rejected`))},[()=>(W(ol),H(d),U(()=>ol(H(d).created_at))),()=>(W(ol),H(d),U(()=>ol(H(d).updated_at))),()=>(H(d),W(ol),U(()=>H(d).expires_at?ol(H(d).expires_at):`—`))]),G(`click`,E,()=>k(`accepted`)),G(`click`,D,()=>k(`expired`)),G(`click`,O,()=>k(`rejected`)),q(e,t)},He=e=>{var t=tC();$(L(t),{name:`book-open`,size:22,strokeWidth:1.75}),Ne(4),j(t),q(e,t)};Y(Be,e=>{H(d)?e(Ve):e(He,-1)}),j(ze);var Ue=z(ze,2),Ke=L(Ue),qe=z(L(Ke),2),Je=L(qe);j(qe),j(Ke);var Ye=z(Ke,2),Xe=e=>{q(e,nC())},Ze=e=>{var t=rC();$(L(t),{name:`check`,size:20,strokeWidth:1.75}),Ne(4),j(t),q(e,t)},Qe=e=>{var t=aC();X(t,5,()=>H(p),e=>e.id,(e,t)=>{var n=iC(),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l);var d=z(l,2),f=L(d,!0);j(d),j(o),j(r);var p=z(r,2),m=L(p,!0);j(p),j(n),V(e=>{J(a,(H(t),U(()=>H(t).task_code||H(t).task_id))),J(c,(H(t),U(()=>H(t).agent))),J(u,(H(t),U(()=>H(t).role))),J(f,e),p.disabled=(H(h),H(t),U(()=>H(h)===H(t).id)),J(m,(H(h),H(t),U(()=>H(h)===H(t).id?`Releasing...`:`Release`)))},[()=>(W(ol),H(t),U(()=>ol(H(t).claimed_at)))]),G(`click`,p,()=>ee(H(t))),q(e,n)}),j(t),q(e,t)};Y(Ye,e=>{H(m)?e(Xe):(H(p),U(()=>H(p).length===0)?e(Ze,1):e(Qe,-1))}),j(Ue),j(Re),j(A),j(te),V(()=>{J(se,`${(H(r),U(()=>H(r).length))??``} handoffs in view`),J(de,` ${H(g)?`Close Handoff`:`New Handoff`}`),J(me,` ${H(_)?`Close Claim`:`Claim Task`}`),J(Je,`${(H(p),U(()=>H(p).length))??``} active`)}),G(`click`,le,()=>I(g,!H(g))),G(`click`,fe,()=>I(_,!H(_))),Zi(ge,()=>H(l),e=>I(l,e)),G(`change`,ge,()=>T()),Z(Se,()=>H(u),e=>I(u,e)),G(`input`,Se,()=>T()),G(`click`,Ce,T),G(`click`,we,E),q(e,te),Ge()}var cC={backlog:`#64748b`,pending:`#0ea5e9`,in_progress:`#a855f7`,blocked:`#ef4444`,completed:`#10b981`,canceled:`#94a3b8`},lC=[`backlog`,`pending`,`in_progress`,`blocked`,`completed`,`canceled`],uC=[`#06b6d4`,`#8b5cf6`,`#f59e0b`,`#ec4899`,`#10b981`,`#3b82f6`,`#f97316`,`#a855f7`,`#14b8a6`,`#e11d48`],dC=7,fC=56,pC=46,mC=52;function hC(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return uC[t%uC.length]}function gC(e,t){let n=lC.length,r=(t-fC*2)/n;return fC+e*r+r/2}function _C(e,t,n,r,i){let{canvasWidth:a,canvasHeight:o}=i,s={agents:new Map,tasks:new Map,handoffs:[]},c={};lC.forEach(e=>c[e]=[]);for(let t of e){let e=t.status in c?t.status:`backlog`;c[e].length<dC&&c[e].push(t)}lC.forEach((e,t)=>{let n=gC(t,a),i=c[e],l=(i.length-1)*mC,u=pC+20+(o-pC-20-l)/2;i.forEach((e,t)=>{let i=n,a=u+t*mC,o=r?.tasks.get(e.id);s.tasks.set(e.id,{id:e.id,taskCode:e.task_code,title:e.title,repo:e.repo,status:e.status,priority:e.priority??3,x:o?.x??i,y:o?.y??a,claimedByAgentId:e.coordination?.active_claim_agent??null,hasPendingHandoff:(e.coordination?.pending_handoff_count??0)>0})})});let l=new Map;for(let e of t){l.has(e.agent)||l.set(e.agent,{tasks:new Set,role:e.role,repos:new Set});let t=l.get(e.agent);t.tasks.add(e.task_id),t.repos.add(e.repo)}for(let t of e){let e=t.coordination?.active_claim_agent;if(!e)continue;l.has(e)||l.set(e,{tasks:new Set,role:t.coordination?.active_claim_role??`agent`,repos:new Set});let n=l.get(e);n.tasks.add(t.id),n.repos.add(t.repo)}let u=Array.from(l.keys()),d=o-40;u.forEach((e,t)=>{let{tasks:n,role:i,repos:o}=l.get(e),c=r?.agents.get(e),f,p,m=Array.from(n).find(e=>s.tasks.has(e)),h=m?s.tasks.get(m):null;h?(f=h.x+22,p=h.y-22):(f=a*(t+1)/(u.length+1),p=d);let g=n.size>0?`processing`:`idle`;s.agents.set(e,{id:e,name:e,role:i,color:hC(e),x:c?.x??f,y:c?.y??p,targetX:f,targetY:p,state:g,claimedTaskIds:Array.from(n),repos:Array.from(o)})});for(let e of n)e.status===`pending`&&s.handoffs.push({id:e.id,fromAgentId:e.from_agent,toAgentId:e.to_agent,taskId:e.task_id,summary:e.summary});return s}function vC(e){return e?.structuredContent??null}function yC(e,t,n){let r=Object.fromEntries(e.map((e,n)=>[e,t[n]]));return{id:String(r.id??``),repo:n,from_agent:String(r.from_agent??``),to_agent:r.to_agent?String(r.to_agent):null,task_id:r.task_id?String(r.task_id):null,task_code:r.task_code?String(r.task_code):null,summary:String(r.summary??``),context:r.context??{},status:String(r.status??`pending`),created_at:String(r.created_at??``),updated_at:String(r.updated_at??r.created_at??``),expires_at:r.expires_at?String(r.expires_at):null}}function bC(){let e=M({scene:null,loading:!1,error:null,lastUpdated:0,repoCount:0}),t=null,n=!1,r=null;async function i(){if(n||!r)return;let t=N(La).map(e=>e.repo);if(t.length===0){e.update(e=>({...e,loading:!1}));return}n=!0;try{let n=await Promise.allSettled(t.map(e=>Promise.allSettled([Q.tasks({repo:e,status:`in_progress`,pageSize:10}),Q.tasks({repo:e,status:`pending`,pageSize:8}),Q.tasks({repo:e,status:`blocked`,pageSize:4}),Q.coordinationClaims({repo:e,active_only:!0,pageSize:50}),Q.callTool(`handoff-list`,{repo:e,status:`pending`,limit:10,structured:!0})]))),i=[],a=[],o=[];t.forEach((e,t)=>{let r=n[t];if(r.status===`rejected`)return;let[s,c,l,u,d]=r.value;if(s.status===`fulfilled`&&i.push(...s.value.tasks??[]),c.status===`fulfilled`&&i.push(...c.value.tasks??[]),l.status===`fulfilled`&&i.push(...l.value.tasks??[]),u.status===`fulfilled`&&a.push(...u.value.claims??[]),d.status===`fulfilled`){let t=vC(d.value),n=t?.handoffs?.columns??[],r=t?.handoffs?.rows??[];o.push(...r.map(t=>yC(n,t,e)))}});let s=Array.from(new Map(i.map(e=>[e.id,e])).values());e.update(e=>({...e,scene:_C(s,a,o,e.scene,r),loading:!1,error:null,lastUpdated:Date.now(),repoCount:t.length}))}catch(t){e.update(e=>({...e,loading:!1,error:t instanceof Error?t.message:`Failed to load arena data`}))}finally{n=!1}}function a(e){r=e}function o(n){r=n,e.update(e=>({...e,loading:!0})),i(),t!==null&&clearInterval(t),t=setInterval(()=>void i(),2500)}function s(){t!==null&&(clearInterval(t),t=null),n=!1}return{subscribe:e.subscribe,start:o,stop:s,setLayout:a,refresh:i}}var xC={backlog:`Backlog`,pending:`Pending`,in_progress:`In Progress`,blocked:`Blocked`,completed:`Completed`,canceled:`Canceled`},SC=.07,CC=108,wC=38,TC=16,EC=56,DC=46;function OC(e,t,n){return e+(t-e)*n}function kC(e,t,n,r,i,a){e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.arcTo(t+r,n,t+r,n+a,a),e.lineTo(t+r,n+i-a),e.arcTo(t+r,n+i,t+r-a,n+i,a),e.lineTo(t+a,n+i),e.arcTo(t,n+i,t,n+i-a,a),e.lineTo(t,n+a),e.arcTo(t,n,t+a,n,a),e.closePath()}function AC(e,t){let n=lC.length,r=(t-EC*2)/n;return EC+e*r+r/2}var jC=class{canvas;ctx;scene=null;layout=null;isDark=!1;hoveredAgentId=null;rafId=0;ts=0;constructor(e){this.canvas=e,this.ctx=e.getContext(`2d`)}update(e,t,n){this.scene=e,this.layout=t,this.isDark=n}setHovered(e){this.hoveredAgentId=e}start(){this.rafId=requestAnimationFrame(this.loop)}stop(){cancelAnimationFrame(this.rafId)}hitTestAgent(e,t){if(!this.scene)return null;let n=TC+4;for(let r of this.scene.agents.values()){let i=e-r.x,a=t-r.y;if(i*i+a*a<=n*n)return r.id}return null}loop=e=>{this.ts=e,this.interpolate(),this.render(),this.rafId=requestAnimationFrame(this.loop)};interpolate(){if(this.scene)for(let e of this.scene.agents.values())e.x=OC(e.x,e.targetX,SC),e.y=OC(e.y,e.targetY,SC)}render(){let{canvas:e,ctx:t,scene:n,layout:r,isDark:i,ts:a}=this;r&&(t.clearRect(0,0,e.width,e.height),t.fillStyle=i?`#0c1120`:`#f1f5f9`,t.fillRect(0,0,e.width,e.height),this.drawGrid(i),this.drawColumns(i),n&&(this.drawClaimLinks(n,i),this.drawHandoffBeams(n,a),this.drawTasks(n,i),this.drawAgents(n,i,a)))}drawGrid(e){let{ctx:t,canvas:n}=this;t.fillStyle=e?`rgba(255,255,255,0.035)`:`rgba(0,0,0,0.04)`;for(let e=0;e<=n.width;e+=22)for(let r=0;r<=n.height;r+=22)t.beginPath(),t.arc(e,r,1,0,Math.PI*2),t.fill()}drawColumns(e){let{ctx:t,canvas:n}=this,r=lC.length,i=(n.width-EC*2)/r,a=e?`rgba(255,255,255,0.05)`:`rgba(0,0,0,0.06)`;lC.forEach((e,r)=>{let o=AC(r,n.width);r>0&&(t.strokeStyle=a,t.lineWidth=1,t.beginPath(),t.moveTo(o-i/2,DC-10),t.lineTo(o-i/2,n.height-10),t.stroke());let s=cC[e]??`#64748b`,c=xC[e]??e,l=Math.min(86,i-12),u=o-l/2;t.fillStyle=s+`28`,kC(t,u,12,l,20,6),t.fill(),t.strokeStyle=s+`55`,t.lineWidth=1,kC(t,u,12,l,20,6),t.stroke(),t.fillStyle=s,t.font=`bold 9px system-ui,sans-serif`,t.textAlign=`center`,t.textBaseline=`middle`,t.fillText(c,o,22)})}drawClaimLinks(e,t){let{ctx:n}=this;for(let t of e.agents.values())for(let r of t.claimedTaskIds){let i=e.tasks.get(r);if(!i)continue;let a=n.createLinearGradient(t.x,t.y,i.x,i.y);a.addColorStop(0,t.color+`aa`),a.addColorStop(1,(cC[i.status]??`#64748b`)+`44`),n.strokeStyle=a,n.lineWidth=1.5,n.setLineDash([5,4]),n.beginPath(),n.moveTo(t.x,t.y),n.lineTo(i.x,i.y),n.stroke()}n.setLineDash([])}drawHandoffBeams(e,t){let{ctx:n}=this;for(let r of e.handoffs){let i=e.agents.get(r.fromAgentId);if(!i)continue;let a,o;if(r.toAgentId){let t=e.agents.get(r.toAgentId);if(!t)continue;a=t.x,o=t.y}else if(r.taskId){let t=e.tasks.get(r.taskId);if(!t)continue;a=t.x,o=t.y}else continue;n.strokeStyle=`#f59e0b88`,n.lineWidth=2,n.setLineDash([6,4]),n.lineDashOffset=-(t*.05)%10,n.beginPath(),n.moveTo(i.x,i.y),n.lineTo(a,o),n.stroke(),n.setLineDash([]),n.lineDashOffset=0;let s=t%1600/1600,c=OC(i.x,a,s),l=OC(i.y,o,s);n.fillStyle=`#f59e0b`,n.beginPath(),n.arc(c,l,3.5,0,Math.PI*2),n.fill()}}drawTasks(e,t){let{ctx:n}=this,r=CC,i=wC;for(let a of e.tasks.values()){let e=cC[a.status]??`#64748b`,o=a.x-r/2,s=a.y-i/2,c=!!a.claimedByAgentId;c&&(n.shadowColor=e+`55`,n.shadowBlur=10),n.fillStyle=t?e+`22`:e+`1a`,n.strokeStyle=e+(c?`cc`:`44`),n.lineWidth=c?1.5:1,kC(n,o,s,r,i,8),n.fill(),n.stroke(),n.shadowBlur=0,a.hasPendingHandoff&&(n.fillStyle=`#f59e0b`,n.beginPath(),n.arc(o+r-6,s+6,4,0,Math.PI*2),n.fill());let l=t?`rgba(226,232,240,0.92)`:`rgba(15,23,42,0.88)`,u=t?`rgba(148,163,184,0.75)`:`rgba(71,85,105,0.75)`,d=`${a.repo.split(`/`).pop()}·${a.taskCode}`;n.fillStyle=l,n.font=`bold 8.5px system-ui,sans-serif`,n.textAlign=`center`,n.textBaseline=`middle`,n.fillText(d.slice(0,18),a.x,a.y-7),n.fillStyle=u,n.font=`8px system-ui,sans-serif`;let f=a.title.length>15?a.title.slice(0,15)+`…`:a.title;n.fillText(f,a.x,a.y+7)}}drawAgents(e,t,n){let{ctx:r,hoveredAgentId:i}=this;for(let a of e.agents.values()){let e=a.id===i;if(a.state===`processing`||a.state===`claiming`){let e=.5+.5*Math.sin(n*.0028),t=Math.round(e*80+30).toString(16).padStart(2,`0`);r.strokeStyle=a.color+t,r.lineWidth=2,r.beginPath(),r.arc(a.x,a.y,TC+5+e*3,0,Math.PI*2),r.stroke()}e&&(r.strokeStyle=a.color,r.lineWidth=2.5,r.beginPath(),r.arc(a.x,a.y,TC+5,0,Math.PI*2),r.stroke());let o=r.createRadialGradient(a.x-4,a.y-4,2,a.x,a.y,TC);o.addColorStop(0,a.color+`ff`),o.addColorStop(1,a.color+`cc`),r.fillStyle=o,r.beginPath(),r.arc(a.x,a.y,TC,0,Math.PI*2),r.fill();let s=a.name.split(/[-_.\s]+/).slice(0,2).map(e=>(e[0]??``).toUpperCase()).join(``);r.fillStyle=`rgba(255,255,255,0.95)`,r.font=`bold ${s.length>1?`8.5`:`11`}px system-ui,sans-serif`,r.textAlign=`center`,r.textBaseline=`middle`,r.fillText(s||`?`,a.x,a.y);let c=a.name.length>14?a.name.slice(0,14)+`…`:a.name;r.fillStyle=t?`rgba(226,232,240,0.8)`:`rgba(15,23,42,0.75)`,r.font=`bold 8px system-ui,sans-serif`,r.textAlign=`center`,r.textBaseline=`top`,r.fillText(c,a.x,a.y+TC+3)}}},MC=K(`<span class="badge loading svelte-1pykpun">Loading…</span>`),NC=K(`<span class="badge error svelte-1pykpun"><!> Error</span>`),PC=K(`<span class="badge live svelte-1pykpun"><span class="pulse-dot svelte-1pykpun"></span> <!></span>`),FC=K(`<div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Repos</span> <span class="tip-repos svelte-1pykpun"> </span></div>`),IC=K(`<div class="agent-tip glass svelte-1pykpun"><div class="tip-name svelte-1pykpun"><span class="tip-dot svelte-1pykpun"></span> </div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Role</span> <span> </span></div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">State</span> <span> </span></div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Tasks</span> <span> </span></div> <!></div>`),LC=K(`<div class="arena-empty svelte-1pykpun"><!> <div style="font-weight:700">No active agents</div> <div style="font-size:0.75rem;opacity:0.6">Agents appear here when they claim tasks</div></div>`),RC=K(`<div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun"></span> <span> </span></div>`),zC=K(`<div class="arena-root glass card animate-fade-in svelte-1pykpun"><div class="arena-hdr svelte-1pykpun"><div class="arena-hdr-left svelte-1pykpun"><div class="arena-icon svelte-1pykpun"><!></div> <div><div class="section-label" style="margin:0">Agent Arena</div> <div class="arena-sub svelte-1pykpun">Real-time agent activity · all repositories</div></div></div> <div class="arena-hdr-right svelte-1pykpun"><!></div></div> <div class="arena-wrap svelte-1pykpun"><canvas class="arena-canvas svelte-1pykpun"></canvas> <!> <!></div> <div class="arena-legend svelte-1pykpun"><div class="legend-section svelte-1pykpun"></div> <div class="legend-section svelte-1pykpun"><div class="legend-item svelte-1pykpun"><span class="lg-dash svelte-1pykpun" style="border-color:#f59e0b"></span> <span>Handoff</span></div> <div class="legend-item svelte-1pykpun"><span class="lg-dash svelte-1pykpun"></span> <span>Claim link</span></div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#f59e0b"></span> <span>Pending handoff</span></div></div></div></div>`);function BC(e,t){We(t,!1);let n=()=>P(p,`$arena`,i),r=()=>P(Fa,`$theme`,i),[i,a]=pt(),o=F(),s=F(),c=F(),l=F(null),u=F(null),d=F(null),f=F(null),p=bC();function m(e){return{canvasWidth:e,canvasHeight:480}}function h(){if(!H(s)||!H(c))return;let e=H(c).clientWidth||900;sn(s,H(s).width=e),sn(s,H(s).height=480),I(u,m(e)),H(l)||(I(l,new jC(H(s))),H(l).start()),p.setLayout(H(u))}function g(e){if(!H(l)||!n().scene){I(d,null),I(f,null);return}let t=H(s).getBoundingClientRect(),r=H(s).width/t.width,i=H(s).height/t.height,a=(e.clientX-t.left)*r,o=(e.clientY-t.top)*i,c=H(l).hitTestAgent(a,o);c!==H(d)&&(I(d,c),H(l).setHovered(H(d))),I(f,H(d)?{x:e.clientX-t.left+16,y:e.clientY-t.top-8}:null)}function _(){I(d,null),I(f,null),H(l)?.setHovered(null)}ka(()=>{let e=setTimeout(()=>{h(),H(u)&&p.start(H(u))},60),t=new ResizeObserver(()=>{h(),H(u)&&p.setLayout(H(u))});return t.observe(H(c)),()=>{clearTimeout(e),t.disconnect()}}),Aa(()=>{p.stop(),H(l)?.stop()}),B(()=>(H(l),n(),H(u),r()),()=>{H(l)&&n().scene&&H(u)&&H(l).update(n().scene,H(u),r()===`dark`)}),B(()=>(H(l),H(u),n(),r()),()=>{H(l)&&H(u)&&n().scene&&H(l).update(n().scene,H(u),r()===`dark`)}),B(()=>(H(d),n()),()=>{I(o,H(d)&&n().scene?n().scene.agents.get(H(d))??null:null)}),Un(),Ta();var v=zC(),y=L(v),b=L(y),x=L(b);$(L(x),{name:`cpu`,size:16,strokeWidth:1.75}),j(x),Ne(2),j(b);var S=z(b,2),C=L(S),w=e=>{q(e,MC())},T=e=>{var t=NC();$(L(t),{name:`alert-circle`,size:11}),Ne(),j(t),q(e,t)},E=e=>{var t=PC(),r=z(L(t)),i=z(r),a=e=>{var t=ci();V(()=>J(t,` across ${(n(),U(()=>n().repoCount))??``} repos`)),q(e,t)};Y(i,e=>{n(),U(()=>n().repoCount>1)&&e(a)}),j(t),V(()=>J(r,` Live · ${(n(),U(()=>n().scene.agents.size))??``}
|
|
87
|
-
${(n(),U(()=>n().scene.agents.size===1?`agent`:`agents`))??``} ·
|
|
88
|
-
${(n(),U(()=>n().scene.tasks.size))??``}
|
|
89
|
-
${(n(),U(()=>n().scene.tasks.size===1?`task`:`tasks`))??``} `)),q(e,t)};Y(C,e=>{n(),U(()=>n().loading&&!n().scene)?e(w):(n(),U(()=>n().error)?e(T,1):(n(),U(()=>n().scene)&&e(E,2)))}),j(S),j(y);var D=z(y,2),O=L(D);Sa(O,e=>I(s,e),()=>H(s));var k=z(O,2),ee=e=>{var t=IC(),n=L(t),r=L(n),i=z(r);j(n);var a=z(n,2),s=z(L(a),2),c=L(s,!0);j(s),j(a);var l=z(a,2),u=z(L(l),2),d=L(u,!0);j(u),j(l);var p=z(l,2),m=z(L(p),2),h=L(m,!0);j(m),j(p);var g=z(p,2),_=e=>{var t=FC(),n=z(L(t),2),r=L(n,!0);j(n),j(t),V(e=>J(r,e),[()=>(H(o),U(()=>H(o).repos.map(e=>e.split(`/`).pop()).join(`, `)))]),q(e,t)};Y(g,e=>{H(o),U(()=>H(o).repos.length>0)&&e(_)}),j(t),V(e=>{Ji(t,`left:${(H(f),U(()=>H(f).x))??``}px;top:${(H(f),U(()=>H(f).y))??``}px`),Ji(r,`background:${(H(o),U(()=>H(o).color))??``}`),J(i,` ${(H(o),U(()=>H(o).name))??``}`),J(c,(H(o),U(()=>H(o).role||`—`))),Ki(u,1,`tip-state ${(H(o),U(()=>H(o).state))??``}`,`svelte-1pykpun`),J(d,e),J(h,(H(o),U(()=>H(o).claimedTaskIds.length)))},[()=>(H(o),U(()=>H(o).state.replace(/_/g,` `)))]),q(e,t)};Y(k,e=>{H(o)&&H(f)&&e(ee)});var te=z(k,2),ne=e=>{var t=LC();$(L(t),{name:`users`,size:28,strokeWidth:1.25}),Ne(4),j(t),q(e,t)};Y(te,e=>{n(),U(()=>n().scene&&n().scene.agents.size===0&&!n().loading)&&e(ne)}),j(D),Sa(D,e=>I(c,e),()=>H(c));var re=z(D,2),ie=L(re);X(ie,5,()=>(W(lC),U(()=>lC.slice(0,5))),_i,(e,t)=>{var n=RC(),r=L(n),i=z(r,2),a=L(i,!0);j(i),j(n),V(e=>{Ji(r,`background:${(W(cC),H(t),U(()=>cC[H(t)]))??``}`),J(a,e)},[()=>(H(t),U(()=>H(t).replace(`_`,` `)))]),q(e,n)}),j(ie),Ne(2),j(re),j(v),V(()=>Ji(O,`cursor:${H(d)?`pointer`:`default`}`)),G(`mousemove`,O,g),G(`mouseleave`,O,_),q(e,v),Ge(),a()}var VC=K(`<div class="repo-focus svelte-1eglegg"><!> <span> </span></div>`),HC=K(`<div class="summary-card svelte-1eglegg"><div class="summary-icon svelte-1eglegg"><!></div> <div class="summary-value svelte-1eglegg"> </div> <div class="summary-label svelte-1eglegg"> </div></div>`),UC=K(`<div class="mini-card svelte-1eglegg"><div class="mini-value svelte-1eglegg"> </div> <div class="mini-label svelte-1eglegg"> </div></div>`),WC=K(`<div class="mini-card svelte-1eglegg"><div class="mini-icon svelte-1eglegg"><!></div> <div class="mini-value svelte-1eglegg"> </div> <div class="mini-label svelte-1eglegg"> </div></div>`),GC=K(`<div class="empty-state svelte-1eglegg">No repository activity yet.</div>`),KC=K(`<span class="stat-chip stale svelte-1eglegg"> </span>`),qC=K(`<span class="stat-chip stale svelte-1eglegg"> </span>`),JC=K(`<div><div class="repo-main"><div class="repo-name svelte-1eglegg"> </div> <div class="repo-meta svelte-1eglegg"> </div></div> <div class="pressure-pill svelte-1eglegg"> </div> <div class="repo-stats svelte-1eglegg"><span class="stat-chip active svelte-1eglegg"> </span> <span class="stat-chip pending svelte-1eglegg"> </span> <span class="stat-chip blocked svelte-1eglegg"> </span> <span class="stat-chip backlog svelte-1eglegg"> </span></div> <div class="repo-stats svelte-1eglegg"><span class="stat-chip claim svelte-1eglegg"> </span> <span class="stat-chip handoff svelte-1eglegg"> </span> <!> <!></div> <div class="last-activity svelte-1eglegg"> </div></div>`),YC=K(`<div class="repo-table svelte-1eglegg"><div class="repo-table-head svelte-1eglegg"><span>Repository</span> <span>Pressure</span> <span>Workload</span> <span>Coordination</span> <span>Last Activity</span></div> <!></div>`),XC=K(`<div class="global-shell animate-fade-in svelte-1eglegg"><div class="glass card panel-card svelte-1eglegg"><div class="panel-header svelte-1eglegg"><div><div class="section-label">Global Command Center</div> <div class="panel-copy svelte-1eglegg">Cross-repository orchestration view for workload, coordination, and pressure.</div></div> <!></div> <div class="summary-grid svelte-1eglegg"></div></div> <div class="grid-two svelte-1eglegg"><div class="glass card panel-card svelte-1eglegg"><div class="subheading svelte-1eglegg">Coordination</div> <div class="mini-grid svelte-1eglegg"></div></div> <div class="glass card panel-card svelte-1eglegg"><div class="subheading svelte-1eglegg">Throughput</div> <div class="mini-grid svelte-1eglegg"></div></div></div> <div class="glass card panel-card svelte-1eglegg"><div class="panel-header svelte-1eglegg"><div><div class="subheading svelte-1eglegg">Attention Board</div> <div class="panel-copy svelte-1eglegg">Repos sorted by operational pressure: blocked work, active execution, pending queue, and coordination load.</div></div></div> <!></div></div>`);function ZC(e,t){We(t,!1);let n=()=>P(Ua,`$globalDashboardStats`,s),r=()=>P(Ra,`$currentRepo`,s),i=()=>P(d,`$summaryCards`,s),a=()=>P(f,`$coordinationCards`,s),o=()=>P(p,`$throughputCards`,s),[s,c]=pt(),l=F(),u=F(),d=st(Ua,e=>[{label:`Repositories`,value:e?.repoCount??0,icon:`database`,color:`#0ea5e9`,tint:`rgba(14,165,233,0.12)`},{label:`Active Repos`,value:e?.activeRepoCount??0,icon:`activity`,color:`#8b5cf6`,tint:`rgba(139,92,246,0.12)`},{label:`Open Tasks`,value:(e?.taskStats?.pending??0)+(e?.taskStats?.in_progress??0)+(e?.taskStats?.blocked??0)+(e?.taskStats?.backlog??0),icon:`clipboard-list`,color:`#f59e0b`,tint:`rgba(245,158,11,0.12)`},{label:`Active Claims`,value:e?.coordination?.activeClaims??0,icon:`check`,color:`#10b981`,tint:`rgba(16,185,129,0.12)`},{label:`Pending Handoffs`,value:e?.coordination?.pendingHandoffs??0,icon:`git-branch`,color:`#6366f1`,tint:`rgba(99,102,241,0.12)`},{label:`Blocked Tasks`,value:e?.taskStats?.blocked??0,icon:`triangle-alert`,color:`#ef4444`,tint:`rgba(239,68,68,0.12)`}]),f=st(Ua,e=>[{label:`Agents Claiming`,value:e?.coordination?.agentsClaiming??0,accent:`#10b981`},{label:`Unassigned Handoffs`,value:e?.coordination?.unassignedHandoffs??0,accent:`#f97316`},{label:`Stale Claims`,value:e?.coordination?.staleClaims??0,accent:`#ef4444`},{label:`Stale Handoffs`,value:e?.coordination?.staleHandoffs??0,accent:`#e11d48`}]),p=st(Ga,e=>[{label:`Today Done`,value:e?.daily?.completed??0,icon:`circle-check`,color:`#10b981`},{label:`Today Added`,value:e?.daily?.added??0,icon:`plus`,color:`#0ea5e9`},{label:`7d Done`,value:e?.weekly?.completed??0,icon:`bar-chart`,color:`#8b5cf6`},{label:`7d Tokens`,value:sl(e?.weekly?.tokens),icon:`cpu`,color:`#f59e0b`}]);function m(e){return e.blockedCount*5+e.inProgressCount*3+e.pendingCount*2+e.pendingHandoffs*2+e.activeClaims}B(()=>n(),()=>{I(l,(n()?.repos??[]).slice(0,8))}),B(()=>(r(),H(l)),()=>{I(u,r()?H(l).find(e=>e.repo===r()):null)}),Un(),Ta();var h=XC(),g=L(h),_=L(g),v=z(L(_),2),y=e=>{var t=VC(),n=L(t);$(n,{name:`pin`,size:12,strokeWidth:2});var i=z(n,2),a=L(i);j(i),j(t),V(()=>J(a,`Focused repo: ${r()??``}`)),q(e,t)};Y(v,e=>{H(u)&&e(y)}),j(_);var b=z(_,2);X(b,5,i,e=>e.label,(e,t)=>{var n=HC(),r=L(n);$(L(r),{get name(){return H(t),U(()=>H(t).icon)},size:14,strokeWidth:1.9}),j(r);var i=z(r,2),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o),j(n),V(()=>{Ji(n,`background:${(H(t),U(()=>H(t).tint))??``};border-color:${(H(t),U(()=>H(t).tint))??``};`),Ji(r,`color:${(H(t),U(()=>H(t).color))??``};`),Ji(i,`color:${(H(t),U(()=>H(t).color))??``};`),J(a,(H(t),U(()=>H(t).value))),J(s,(H(t),U(()=>H(t).label)))}),q(e,n)}),j(b),j(g);var x=z(g,2),S=L(x),C=z(L(S),2);X(C,5,a,e=>e.label,(e,t)=>{var n=UC(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a),j(n),V(()=>{Ji(r,`color:${(H(t),U(()=>H(t).accent))??``};`),J(i,(H(t),U(()=>H(t).value))),J(o,(H(t),U(()=>H(t).label)))}),q(e,n)}),j(C),j(S);var w=z(S,2),T=z(L(w),2);X(T,5,o,e=>e.label,(e,t)=>{var n=WC(),r=L(n);$(L(r),{get name(){return H(t),U(()=>H(t).icon)},size:12,strokeWidth:2}),j(r);var i=z(r,2),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o),j(n),V(()=>{Ji(r,`color:${(H(t),U(()=>H(t).color))??``};`),Ji(i,`color:${(H(t),U(()=>H(t).color))??``};`),J(a,(H(t),U(()=>H(t).value))),J(s,(H(t),U(()=>H(t).label)))}),q(e,n)}),j(T),j(w),j(x);var E=z(x,2),D=z(L(E),2),O=e=>{q(e,GC())},k=e=>{var t=YC();X(z(L(t),2),1,()=>H(l),e=>e.repo,(e,t)=>{var n=JC();let i;var a=L(n),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c);j(c),j(a);var u=z(a,2),d=L(u,!0);j(u);var f=z(u,2),p=L(f),h=L(p);j(p);var g=z(p,2),_=L(g);j(g);var v=z(g,2),y=L(v);j(v);var b=z(v,2),x=L(b);j(b),j(f);var S=z(f,2),C=L(S),w=L(C);j(C);var T=z(C,2),E=L(T);j(T);var D=z(T,2),O=e=>{var n=KC(),r=L(n);j(n),V(()=>J(r,`U ${(H(t),U(()=>H(t).unassignedHandoffs))??``}`)),q(e,n)};Y(D,e=>{H(t),U(()=>H(t).unassignedHandoffs>0)&&e(O)});var k=z(D,2),ee=e=>{var n=qC(),r=L(n);j(n),V(()=>J(r,`S ${(H(t),U(()=>H(t).staleClaims))??``}`)),q(e,n)};Y(k,e=>{H(t),U(()=>H(t).staleClaims>0)&&e(ee)}),j(S);var te=z(S,2),ne=L(te,!0);j(te),j(n),V((e,a)=>{i=Ki(n,1,`repo-table-row svelte-1eglegg`,null,i,{selected:r()===H(t).repo}),J(s,(H(t),U(()=>H(t).repo))),J(l,`${(H(t),U(()=>H(t).memoryCount))??``} memories • ${(H(t),U(()=>H(t).taskCount))??``} tasks`),J(d,e),J(h,`A ${(H(t),U(()=>H(t).inProgressCount))??``}`),J(_,`P ${(H(t),U(()=>H(t).pendingCount))??``}`),J(y,`B ${(H(t),U(()=>H(t).blockedCount))??``}`),J(x,`Q ${(H(t),U(()=>H(t).backlogCount))??``}`),J(w,`C ${(H(t),U(()=>H(t).activeClaims))??``}`),J(E,`H ${(H(t),U(()=>H(t).pendingHandoffs))??``}`),J(ne,a)},[()=>(H(t),U(()=>m(H(t)))),()=>(H(t),W(ol),U(()=>H(t).lastActivity?ol(H(t).lastActivity):`—`))]),q(e,n)}),j(t),q(e,t)};Y(D,e=>{H(l),U(()=>H(l).length===0)?e(O):e(k,-1)}),j(E),j(h),q(e,h),Ge(),c()}var QC=K(`<div class="drawer-overlay" style="z-index:38;" role="button" tabindex="0" aria-label="Close menu"></div> <div class="mobile-sidebar-shell"><!></div>`,1),$C=K(`<div style="text-align:center;padding:80px 20px;" class="animate-fade-in"><div style="display:inline-flex;width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,rgba(14,165,233,0.15),rgba(99,102,241,0.15));border:1px solid rgba(14,165,233,0.2);align-items:center;justify-content:center;margin-bottom:20px;" class="animate-float"><!></div> <div style="font-size:1.25rem;font-weight:800;color:var(--color-text);margin-bottom:8px;letter-spacing:-0.02em;">No Repository Selected</div> <div style="color:var(--color-text-muted);font-size:0.875rem;">Select a repository from the sidebar to get started.</div></div>`),ew=K(`<button><!> <span> </span></button>`),tw=K(`<div class="glass card hover-glow" style="padding:16px;"><div class="flex items-center justify-between" style="margin-bottom:10px;"><div class="section-label">Selected Repo Pulse</div> <div style="font-size:0.68rem;font-weight:800;color:var(--color-primary);background:rgba(99,102,241,0.08);border:1px solid rgba(99,102,241,0.16);padding:4px 8px;border-radius:999px;"> </div></div> <div style="display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px;" class="repo-pulse-grid svelte-1m88iwd"><div class="glass card" style="padding:16px;"><div class="section-label" style="margin-bottom:10px;">Memory Overview</div> <!></div> <div class="glass card" style="padding:16px;"><div class="section-label" style="margin-bottom:10px;">Task Overview</div> <!></div></div></div> <!>`,1),nw=K(`<div class="glass card hover-glow" style="padding:16px;"><div class="section-label" style="margin-bottom:10px;">Per-Repository Pulse</div> <div style="color:var(--color-text-muted);font-size:0.8rem;">Select a repository from the sidebar to inspect repo-specific memory, task, and execution metrics.</div></div>`),rw=K(`<div style="display:grid;grid-template-columns:1fr;gap:12px;align-items:start;" class="dashboard-grid svelte-1m88iwd"><!> <div style="display:flex;flex-direction:column;gap:12px;"><!></div></div>`),iw=K(`<div class="glass card animate-fade-in" style="height:calc(100vh - 180px);display:flex;flex-direction:column;padding:0;overflow:hidden;border-radius:24px;"><div style="padding:16px 20px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,0.05);"><div class="flex items-center gap-3"><div style="width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));display:flex;align-items:center;justify-content:center;color:white;box-shadow:0 4px 12px var(--glow-primary);"><!></div> <div><div style="font-size:0.95rem;font-weight:800;color:var(--color-text);letter-spacing:-0.01em;">Recent Activity</div> <div style="font-size:0.68rem;color:var(--color-text-muted);font-weight:600;"> </div></div></div></div> <div style="flex:1;overflow-y:auto;padding:24px 32px;background:rgba(0,0,0,0.02);"><!></div></div>`),aw=K(`<div class="glass card hover-glow animate-fade-in"><div class="flex items-center gap-2" style="margin-bottom:16px;"><!> <div class="section-label">Memory Explorer</div></div> <!></div>`),ow=K(`<div class="animate-fade-in"><div class="glass card hover-glow" style="margin-bottom:20px;"><div class="flex items-center gap-2" style="margin-bottom:16px;"><!> <div class="stat-label">Task Overview</div></div> <!></div></div>`),sw=K(`<div class="tabs-wrap"><div class="tab-nav" style="display:inline-flex;"></div></div> <!> <!> <!> <!> <!> <!> <!> <!>`,1),cw=K(`<div class="app-layout"><!> <div><!> <!> <div id="dashboardShell" class="dashboard-shell"><!></div></div></div> <!> <!> <!> <!> <!> <!>`,1);function lw(e,t){We(t,!1);let n=()=>P(Ia,`$activeTab`,s),r=()=>P(g,`$sidebarCollapsed`,s),i=()=>P(f,`$appState`,s),a=()=>P(Ra,`$currentRepo`,s),o=()=>P(ao,`$recentActionsTotalItems`,s),[s,c]=pt(),l=F(),u=F(),d=go({get kanbanBoard(){return H(l)},get memoryList(){return H(u)}}),f={subscribe:d.subscribe,set:d.set,update:d.update},{filteredTools:p,filteredPrompts:m,filteredResources:h,sidebarCollapsed:g,TABS:_}=d;ka(async()=>{if(fo(),await d.loadRepos(),await d.loadHealth(),await d.loadData(),n()===`reference`&&!N(d).capabilities)try{let e=await Q.capabilities();d.update(t=>({...t,capabilities:e}))}catch(e){console.error(`Failed to load capabilities:`,e)}}),Ta();var v=cw();G(`keydown`,hn,function(...e){d.onKeyDown?.apply(this,e)});var y=R(v),b=L(y);Gl(b,{get onRepoSelect(){return d.onRepoSelect}});var x=z(b,2);let S;var C=L(x);iu(C,{get onRefresh(){return d.onRefresh},get onToggleMobileMenu(){return d.toggleMobileMenu}});var w=z(C,2),T=e=>{var t=QC(),n=R(t),r=z(n,2);Gl(L(r),{get onRepoSelect(){return d.onRepoSelect}}),j(r),G(`click`,n,()=>d.toggleMobileMenu()),G(`keydown`,n,e=>e.key===`Escape`&&d.toggleMobileMenu()),q(e,t)};Y(w,e=>{i().mobileMenuOpen&&e(T)});var E=z(w,2),D=L(E),O=e=>{var t=$C(),n=L(t);$(L(n),{name:`brain`,size:32,strokeWidth:1.5,className:``}),j(n),Ne(4),j(t),q(e,t)},k=e=>{var t=sw(),r=R(t),i=L(r);X(i,5,()=>_,e=>e.id,(e,t)=>{var r=ew();let i;var a=L(r);$(a,{get name(){return H(t).icon},size:14,strokeWidth:1.75});var o=z(a,2),s=L(o,!0);j(o),j(r),V(()=>{i=Ki(r,1,`tab-btn`,null,i,{active:n()===H(t).id}),fa(r,`id`,`tab-${H(t).id??``}`),J(s,H(t).label)}),G(`click`,r,()=>d.onTabChange(H(t).id)),q(e,r)}),j(i),j(r);var s=z(r,2),c=e=>{var t=rw(),n=L(t);ZC(n,{});var r=z(n,2),i=L(r),o=e=>{var t=tw(),n=R(t),r=L(n),i=z(L(r),2),o=L(i,!0);j(i),j(r);var s=z(r,2),c=L(s);Bu(z(L(c),2),{}),j(c);var l=z(c,2);Ku(z(L(l),2),{}),j(l),j(s),j(n),fy(z(n,2),{}),V(()=>J(o,a())),q(e,t)},s=e=>{q(e,nw())};Y(i,e=>{a()?e(o):e(s,-1)}),j(r),j(t),q(e,t)};Y(s,e=>{n()===`dashboard`&&e(c)});var g=z(s,2),v=e=>{var t=iw(),n=L(t),r=L(n),i=L(r);$(L(i),{name:`activity`,size:18,strokeWidth:2.2}),j(i);var a=z(i,2),s=z(L(a),2),c=L(s);j(s),j(a),j(r),j(n);var l=z(n,2);db(L(l),{get onLoadPage(){return d.loadRecentActions}}),j(l),j(t),V(()=>J(c,`${o()??``} events tracked`)),q(e,t)};Y(g,e=>{n()===`activity`&&e(v)});var y=z(g,2),b=e=>{var t=aw(),n=L(t);$(L(n),{name:`brain`,size:14,strokeWidth:1.75}),Ne(2),j(n),Sa(Ay(z(n,2),{get onMemoryClick(){return d.openMemoryDrawer},get onNewMemory(){return d.openNewMemoryDrawer},onBulkImport:()=>d.openBulkImport(`memories`),$$legacy:!0}),e=>I(u,e),()=>H(u)),j(t),q(e,t)};Y(y,e=>{n()===`memories`&&e(b)});var x=z(y,2),S=e=>{var t=ow(),n=L(t),r=L(n);$(L(r),{name:`columns`,size:14,strokeWidth:1.75}),Ne(2),j(r),Sa(Nu(z(r,2),{get onTaskClick(){return d.openTaskDrawer},onAddTask:()=>d.toggleAddTaskModal(!0),onBulkImport:()=>d.openBulkImport(`tasks`),$$legacy:!0}),e=>I(l,e),()=>H(l)),j(n),j(t),q(e,t)};Y(x,e=>{n()===`tasks`&&e(S)});var C=z(x,2),w=e=>{{let t=Yt(()=>a()||``);zS(e,{get repo(){return H(t)}})}};Y(C,e=>{n()===`standards`&&e(w)});var T=z(C,2),E=e=>{{let t=Yt(()=>a()||``);sC(e,{get repo(){return H(t)}})}};Y(T,e=>{n()===`handoffs`&&e(E)});var D=z(T,2),O=e=>{BC(e,{})};Y(D,e=>{n()===`arena`&&e(O)});var k=z(D,2),ee=e=>{gS(e,{get handler(){return d},get appState(){return f},get filteredTools(){return p},get filteredPrompts(){return m},get filteredResources(){return h}})};Y(k,e=>{n()===`reference`&&e(ee)}),q(e,t)};Y(D,e=>{!a()&&n()!==`dashboard`?e(O):e(k,-1)}),j(E),j(x),j(y);var ee=z(y,2);Hb(ee,{get memory(){return i().selectedMemory},get task(){return i().selectedTask},get open(){return i().drawerOpen},get onClose(){return d.closeDrawer},get onTaskUpdated(){return d.handleTaskUpdated},onTaskDeleted:()=>{a()&&H(l)?.loadTasks(a())}});var te=z(ee,2);ux(te,{get item(){return i().selectedReference},get open(){return i().referenceDrawerOpen},onClose:()=>d.toggleReferenceDrawer(!1)});var ne=z(te,2);kx(ne,{get memory(){return i().memoryDrawerItem},get open(){return i().memoryDrawerOpen},onClose:()=>d.toggleMemoryDrawer(!1),get onSaved(){return d.handleMemorySaved},get onDeleted(){return d.handleMemoryDeleted}});var re=z(ne,2);Yx(re,{get open(){return i().addTaskModalOpen},get newTask(){return i().newTask},onClose:()=>d.toggleAddTaskModal(!1),get onSave(){return d.createTask}});var ie=z(re,2);{let e=Yt(()=>a()||``);Gx(ie,{get repo(){return H(e)},get importTarget(){return i().bulkImportTarget},get isOpen(){return i().bulkImportOpen},$$events:{close:()=>d.toggleBulkImport(!1),success:()=>{i().bulkImportTarget===`memories`&&H(u)?.refresh(),i().bulkImportTarget===`tasks`&&a()&&H(l)?.loadTasks(a())}}})}yS(z(ie,2),{get onNewMemory(){return d.openNewMemoryDrawer},onNewTask:()=>d.toggleAddTaskModal(!0)}),V(()=>S=Ki(x,1,`main-content`,null,S,{"sidebar-collapsed":r()})),q(e,v),Ge(),c()}fi(lw,{target:document.getElementById(`app`)});
|
|
86
|
+
TSK-001,Example Task,Phase 1,Example task description,backlog,3`};function Fx(e){let t=M(null),n=M([]),r=M([]),i=M(``),a=M(``),o=M(!1),s=M(!1);function c(){t.set(null),n.set([]),r.set([]),i.set(``),a.set(``),o.set(!1)}function l(){s.set(!1),c(),e.onClose&&e.onClose()}function u(){s.set(!0)}function d(e){let t=e.split(/\r?\n/).filter(e=>e.trim()!==``);if(t.length===0)return{headers:[],rows:[]};let n=e=>{let t=[],n=``,r=!1;for(let i=0;i<e.length;i++){let a=e[i];a===`"`&&e[i+1]===`"`?(n+=`"`,i++):a===`"`?r=!r:a===`,`&&!r?(t.push(n.trim()),n=``):n+=a}return t.push(n.trim()),t},r=n(t[0]).filter(e=>e!==``);return{headers:r,rows:t.slice(1).map(n).map(e=>{let t={};return r.forEach((n,r)=>{let i=n.toLowerCase().replace(/[^a-z0-9_]/g,`_`);t[i]=e[r]}),t})}}function f(e){if(a.set(``),!e.name.endsWith(`.csv`)){a.set(`Please select a valid .csv file.`);return}t.set(e),i.set(e.name);let o=new FileReader;o.onload=e=>{let t=e.target?.result,i=d(t);r.set(i.headers),n.set(i.rows),i.rows.length===0&&a.set(`CSV file appears to be empty or missing headers.`)},o.readAsText(e)}function p(e){let t=e.target.files?.[0];t&&f(t)}function m(e){e.preventDefault();let t=e.dataTransfer?.files?.[0];t&&f(t)}function h(){let t=Px[e.importTarget],n=new Blob([t],{type:`text/csv;charset=utf-8;`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.setAttribute(`href`,r),i.setAttribute(`download`,`example_${e.importTarget}.csv`),i.style.visibility=`hidden`,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function g(){let t=[];if(n.subscribe(e=>t=e)(),a.set(``),t.length===0){a.set(`No data to import.`);return}o.set(!0);try{let n=0;n=e.importTarget===`memories`?(await Q.bulkImportMemories(e.repo,t)).count:(await Q.bulkImportTasks(e.repo,t)).count,alert(`Imported ${n} ${e.importTarget} successfully.`),e.onSuccess&&e.onSuccess(),l()}catch(e){a.set(e instanceof Error?e.message:`Import failed`)}finally{o.set(!1)}}return{file:t,csvData:n,headers:r,fileName:i,errorMsg:a,isSubmitting:o,isOpen:s,open:u,close:l,handleFileSelect:p,handleFileDrop:m,downloadExample:h,handleImport:g,setFile:e=>t.set(e),setCsvData:e=>n.set(e)}}var Ix=K(`<div class="drop-zone svelte-lenod"><div class="drop-zone-content svelte-lenod"><div style="color: var(--color-text-muted)" class="svelte-lenod"><!></div> <p class="svelte-lenod">Drag and drop your <strong class="svelte-lenod">.csv</strong> file here</p> <span class="text-xs text-slate-500 mb-4 svelte-lenod">or click to browse from your computer</span> <label class="btn btn-primary btn-md cursor-pointer svelte-lenod">Select CSV File <input type="file" accept=".csv" class="hidden svelte-lenod"/></label></div></div> <div class="mt-6 flex flex-col items-center svelte-lenod"><p class="text-[0.8rem] text-slate-400 mb-2 svelte-lenod">Need a starting point?</p> <button class="btn btn-ghost btn-sm svelte-lenod"><!> </button></div>`,1),Lx=K(`<th class="svelte-lenod"> </th>`),Rx=K(`<td class="svelte-lenod"> </td>`),zx=K(`<tr class="svelte-lenod"></tr>`),Bx=K(`<div class="file-info flex items-center justify-between p-3 bg-blue-500/5 border border-blue-500/20 rounded-lg mb-4 svelte-lenod"><div class="flex items-center gap-3 svelte-lenod"><div style="color: #0ea5e9; display: flex;" class="svelte-lenod"><!></div> <div class="svelte-lenod"><div class="text-sm font-semibold svelte-lenod"> </div> <div class="text-[0.7rem] text-slate-400 svelte-lenod"> </div></div></div> <button class="btn btn-ghost btn-sm text-red-500 svelte-lenod">Change File</button></div> <div class="preview-container svelte-lenod"><div class="preview-header svelte-lenod"><span class="svelte-lenod">Data Preview (First 5 rows)</span></div> <div class="table-wrapper svelte-lenod"><table class="svelte-lenod"><thead class="svelte-lenod"><tr class="svelte-lenod"></tr></thead><tbody class="svelte-lenod"></tbody></table></div></div>`,1),Vx=K(`<div class="error-msg flex items-center gap-2 svelte-lenod"><!> <span class="svelte-lenod"> </span></div>`),Hx=K(`<div class="spinner svelte-lenod"></div> Importing...`,1),Ux=K(`<!> Start Import`,1),Wx=K(`<div class="modal-backdrop svelte-lenod"><div class="modal-content svelte-lenod"><div class="modal-header svelte-lenod"><div class="flex items-center gap-2 svelte-lenod"><div class="header-icon svelte-lenod" style="color: #0ea5e9"><!></div> <h3 class="svelte-lenod"> </h3></div> <button class="btn btn-ghost btn-sm close-btn svelte-lenod"><!></button></div> <div class="modal-body svelte-lenod"><div class="p-6 svelte-lenod"><!> <!></div></div> <div class="modal-footer svelte-lenod"><button class="btn btn-ghost svelte-lenod">Cancel</button> <button class="btn btn-primary svelte-lenod"><!></button></div></div></div>`);function Gx(e,t){We(t,!1);let n=()=>P(H(d),`$file`,l),r=()=>P(H(f),`$csvData`,l),i=()=>P(H(p),`$headers`,l),a=()=>P(H(m),`$fileName`,l),o=()=>P(H(h),`$errorMsg`,l),s=()=>P(H(g),`$isSubmitting`,l),c=()=>P(H(_),`$composableIsOpen`,l),[l,u]=pt(),d=F(),f=F(),p=F(),m=F(),h=F(),g=F(),_=F(),v=F(),y=F(),b=F(),x=F(),S=F(),C=F(),w=F(),T=F(),E=F(),D=F(),O=F(),k=F(),ee=F(),te=Oa(t,`repo`,8),ne=Oa(t,`importTarget`,8,`memories`),re=Oa(t,`isOpen`,12,!1),ie=Ma(),ae=F();function oe(e){I(ae,Fx({repo:te(),importTarget:e,onSuccess:()=>ie(`success`),onClose:()=>{re(!1),ie(`close`)}}))}oe(ne()),B(()=>W(ne()),()=>{ne()&&oe(ne())}),B(()=>(H(ae),W(re())),()=>{H(ae).isOpen.set(re())}),B(()=>H(ae),()=>{dt(I(d,H(ae).file),`$file`,l)}),B(()=>H(ae),()=>{dt(I(f,H(ae).csvData),`$csvData`,l)}),B(()=>H(ae),()=>{dt(I(p,H(ae).headers),`$headers`,l)}),B(()=>H(ae),()=>{dt(I(m,H(ae).fileName),`$fileName`,l)}),B(()=>H(ae),()=>{dt(I(h,H(ae).errorMsg),`$errorMsg`,l)}),B(()=>H(ae),()=>{dt(I(g,H(ae).isSubmitting),`$isSubmitting`,l)}),B(()=>H(ae),()=>{dt(I(_,H(ae).isOpen),`$composableIsOpen`,l)}),B(()=>H(ae),()=>{I(v,H(ae).close)}),B(()=>H(ae),()=>{I(y,H(ae).handleFileSelect)}),B(()=>H(ae),()=>{I(b,H(ae).handleFileDrop)}),B(()=>H(ae),()=>{I(x,H(ae).downloadExample)}),B(()=>H(ae),()=>{I(S,H(ae).handleImport)}),B(()=>H(ae),()=>{I(C,H(ae).setFile)}),B(()=>H(ae),()=>{I(w,H(ae).setCsvData)}),B(()=>n(),()=>{I(T,n())}),B(()=>r(),()=>{I(E,r())}),B(()=>i(),()=>{I(D,i())}),B(()=>a(),()=>{I(O,a())}),B(()=>o(),()=>{I(k,o())}),B(()=>s(),()=>{I(ee,s())}),Un(),Ta();var se=li(),ce=R(se),le=e=>{var n=Wx(),r=L(n),i=L(r),a=L(i),o=L(a);$(L(o),{name:`upload-cloud`,size:18}),j(o);var s=z(o,2),c=L(s);j(s),j(a);var l=z(a,2);$(L(l),{name:`x`,size:18,strokeWidth:2}),j(l),j(i);var u=z(i,2),d=L(u),f=L(d),p=e=>{var n=Ix(),r=R(n),i=L(r),a=L(i);$(L(a),{name:`file-up`,size:48,strokeWidth:1}),j(a);var o=z(a,6),s=z(L(o));j(o),j(i),j(r);var c=z(r,2),l=z(L(c),2),u=L(l);$(u,{name:`download`,size:14,className:`mr-2`});var d=z(u);j(l),j(c),V(()=>J(d,` Download Example ${ne()===`memories`?`Memories`:`Tasks`} CSV`)),G(`change`,s,function(...e){H(y)?.apply(this,e)}),G(`dragover`,r,wa(function(e){Da.call(this,t,e)})),G(`drop`,r,function(...e){H(b)?.apply(this,e)}),G(`click`,l,function(...e){H(x)?.apply(this,e)}),q(e,n)},m=e=>{var t=Bx(),n=R(t),r=L(n),i=L(r);$(L(i),{name:`file-type-2`,size:24}),j(i);var a=z(i,2),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c);j(c),j(a),j(r);var u=z(r,2);j(n);var d=z(n,2),f=z(L(d),2),p=L(f),m=L(p),h=L(m);X(h,5,()=>H(D),e=>e,(e,t)=>{var n=Lx(),r=L(n,!0);j(n),V(()=>J(r,H(t))),q(e,n)}),j(h),j(m);var g=z(m);X(g,7,()=>(H(E),U(()=>H(E).slice(0,5))),(e,t)=>`${t}-${JSON.stringify(e)}`,(e,t)=>{var n=zx();X(n,5,()=>H(D),e=>e,(e,n)=>{var r=Rx(),i=L(r,!0);j(r),V(e=>J(i,e),[()=>(H(t),H(n),U(()=>H(t)[H(n).toLowerCase().replace(/[^a-z0-9_]/g,`_`)]||``))]),q(e,r)}),j(n),q(e,n)}),j(g),j(p),j(f),j(d),V(()=>{J(s,H(O)),J(l,`${(H(E),U(()=>H(E).length))??``} rows found`)}),G(`click`,u,()=>{H(C)(null),H(w)([])}),q(e,t)};Y(f,e=>{H(T)?e(m,-1):e(p)});var h=z(f,2),g=e=>{var t=Vx(),n=L(t);$(n,{name:`alert-circle`,size:16});var r=z(n,2),i=L(r,!0);j(r),j(t),V(()=>J(i,H(k))),q(e,t)};Y(h,e=>{H(k)&&e(g)}),j(d),j(u);var _=z(u,2),te=L(_),re=z(te,2),ie=L(re),ae=e=>{var t=Hx();Ne(),q(e,t)},oe=e=>{var t=Ux();$(R(t),{name:`check`,size:16,className:`mr-2`}),Ne(),q(e,t)};Y(ie,e=>{H(ee)?e(ae):e(oe,-1)}),j(re),j(_),j(r),j(n),V(()=>{J(c,`Bulk Import ${ne()===`memories`?`Memories`:`Tasks`}`),te.disabled=H(ee),re.disabled=(H(ee),H(E),U(()=>H(ee)||H(E).length===0))}),G(`click`,l,function(...e){H(v)?.apply(this,e)}),G(`click`,te,function(...e){H(v)?.apply(this,e)}),G(`click`,re,function(...e){H(S)?.apply(this,e)}),Pi(3,r,()=>Nx,()=>({duration:200,start:.95})),G(`click`,r,Ca(function(e){Da.call(this,t,e)})),Pi(3,n,()=>Mx,()=>({duration:200})),G(`click`,n,function(...e){H(v)?.apply(this,e)}),q(e,n)};Y(ce,e=>{c()&&e(le)}),q(e,se),Ge(),u()}var Kx=K(`<option> </option>`),qx=K(`<option> </option>`),Jx=K(`<div class="modal-backdrop svelte-l0ytfo" role="button" tabindex="-1" aria-label="Close modal"></div> <div class="modal-panel animate-fade-in svelte-l0ytfo" role="dialog" aria-modal="true" aria-labelledby="modal-title" tabindex="-1"><div class="modal-header svelte-l0ytfo"><div class="modal-header-icon svelte-l0ytfo"><!></div> <div><div id="modal-title" class="modal-title svelte-l0ytfo">New Task</div> <div class="modal-subtitle svelte-l0ytfo">Add a task to the current repository</div></div> <button class="modal-close-btn svelte-l0ytfo" aria-label="Close"><!></button></div> <div class="modal-body svelte-l0ytfo"><div class="field-grid-2 svelte-l0ytfo"><div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_code">Task Code <span class="required svelte-l0ytfo">*</span></label> <input id="new_task_code" class="form-input" placeholder="TASK-001"/></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_phase">Phase</label> <input id="new_task_phase" class="form-input" placeholder="Implementation"/></div></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_title">Title <span class="required svelte-l0ytfo">*</span> <span class="field-hint svelte-l0ytfo"> </span></label> <input id="new_task_title" class="form-input" placeholder="Short, descriptive task title" maxlength="80"/></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_description">Description</label> <textarea id="new_task_description" class="form-textarea modal-textarea svelte-l0ytfo" placeholder="What needs to be done? Include context, acceptance criteria, etc." rows="4"></textarea></div> <div class="field-grid-2 svelte-l0ytfo"><div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_status">Status</label> <select id="new_task_status" class="form-select"></select></div> <div class="field-group svelte-l0ytfo"><label class="field-label svelte-l0ytfo" for="new_task_priority">Priority</label> <select id="new_task_priority" class="form-select"></select></div></div></div> <div class="modal-footer svelte-l0ytfo"><button class="btn btn-ghost">Cancel</button> <button class="btn btn-primary modal-save-btn svelte-l0ytfo"><!> Create Task</button></div></div>`,1);function Yx(e,t){We(t,!1);let n=Oa(t,`open`,8,!1),r=Oa(t,`newTask`,12),i=Oa(t,`onClose`,8,()=>{}),a=Oa(t,`onSave`,8,()=>{});function o(e){e.key===`Escape`&&i()()}Ta();var s=li();G(`keydown`,hn,o);var c=R(s),l=e=>{var t=Jx(),n=R(t),o=z(n,2),s=L(o),c=L(s);$(L(c),{name:`clipboard-list`,size:14,strokeWidth:2.2}),j(c);var l=z(c,4);$(L(l),{name:`x`,size:14,strokeWidth:2.5}),j(l),j(s);var u=z(s,2),d=L(u),f=L(d),p=z(L(f),2);ca(p),j(f);var m=z(f,2),h=z(L(m),2);ca(h),j(m),j(d);var g=z(d,2),_=L(g),v=z(L(_),3),y=L(v);j(v),j(_);var b=z(_,2);ca(b),j(g);var x=z(g,2),S=z(L(x),2);On(S),j(x);var C=z(x,2),w=L(C),T=z(L(w),2);X(T,4,()=>[`backlog`,`pending`,`in_progress`],e=>e,(e,t)=>{var n=Kx(),r=L(n,!0);j(n);var i={};V(e=>{J(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>(W(ul),U(()=>ul(t)))]),q(e,n)}),j(T),j(w);var E=z(w,2),D=z(L(E),2);X(D,4,()=>[1,2,3,4,5],e=>e,(e,t)=>{var n=qx(),r=L(n,!0);j(n);var i={};V(e=>{J(r,e),i!==(i=t)&&(n.value=(n.__value=t)??``)},[()=>(W(dl),U(()=>dl(t)))]),q(e,n)}),j(D),j(E),j(C),j(u);var O=z(u,2),k=L(O),ee=z(k,2);$(L(ee),{name:`plus`,size:13,strokeWidth:2.5}),Ne(),j(ee),j(O),j(o),V(()=>{J(y,`${(W(r()),U(()=>(r().title??``).length))??``}/80`),ee.disabled=(W(r()),U(()=>!r().task_code||!r().title))}),G(`click`,n,function(...e){i()?.apply(this,e)}),G(`keydown`,n,e=>e.key===`Escape`&&i()()),G(`click`,l,function(...e){i()?.apply(this,e)}),Z(p,()=>r().task_code,e=>(r(r().task_code=e,!0),cr(()=>{}))),Z(h,()=>r().phase,e=>(r(r().phase=e,!0),cr(()=>{}))),Z(b,()=>r().title,e=>(r(r().title=e,!0),cr(()=>{}))),Z(S,()=>r().description,e=>(r(r().description=e,!0),cr(()=>{}))),Zi(T,()=>r().status,e=>(r(r().status=e,!0),cr(()=>{}))),Zi(D,()=>r().priority,e=>(r(r().priority=e,!0),cr(()=>{}))),G(`click`,k,function(...e){i()?.apply(this,e)}),G(`click`,ee,function(...e){a()?.apply(this,e)}),q(e,t)};Y(c,e=>{n()&&e(l)}),q(e,s),Ge()}var Xx=K(`<span class="ref-total-badge svelte-w0wd5z"> </span>`),Zx=K(`<button class="ref-clear-btn svelte-w0wd5z"><!></button>`),Qx=K(`<button><!> <span> </span> <span class="ref-cat-count svelte-w0wd5z"> </span></button>`),$x=K(`<div style="padding:40px;text-align:center;"><div class="skeleton" style="height:60px;border-radius:12px;margin-bottom:10px;"></div> <div class="skeleton" style="height:60px;border-radius:12px;margin-bottom:10px;"></div> <div class="skeleton" style="height:60px;border-radius:12px;"></div></div>`),eS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),tS=K(`<code class="ref-param-tag svelte-w0wd5z"> </code>`),nS=K(`<code class="ref-param-tag ref-param-more svelte-w0wd5z"> </code>`),rS=K(`<div class="ref-params svelte-w0wd5z"><!> <!></div>`),iS=K(`<div class="ref-card ref-card-tool animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-tool svelte-w0wd5z"><!> Tool</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!> <!></div>`),aS=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Tools</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),oS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),sS=K(`<div class="ref-card ref-card-prompt animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-prompt svelte-w0wd5z"><!> Prompt</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!></div>`),cS=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Prompts</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),lS=K(`<div class="ref-card-desc svelte-w0wd5z"> </div>`),uS=K(`<div class="ref-params svelte-w0wd5z"><code class="ref-param-tag svelte-w0wd5z" style="background:var(--color-bg);border:1px solid var(--color-border);"> </code></div>`),dS=K(`<div class="ref-card ref-card-resource animate-fade-in svelte-w0wd5z" role="button" tabindex="0"><div class="ref-card-top svelte-w0wd5z"><span class="ref-type-badge ref-type-resource svelte-w0wd5z"><!> Resource</span></div> <div class="ref-card-name svelte-w0wd5z"> </div> <!> <!></div>`),fS=K(`<div class="ref-section-header svelte-w0wd5z"><!> <span>Resources</span> <span class="ref-section-count svelte-w0wd5z"> </span></div> <div class="ref-grid svelte-w0wd5z"></div>`,1),pS=K(`<div style="text-align:center;padding:48px 16px;color:var(--color-text-muted);"><!> <div style="font-size:0.82rem;margin-top:10px;"> </div></div>`),mS=K(`<!> <!> <!> <!>`,1),hS=K(`<div class="animate-fade-in"><div class="glass card" style="margin-bottom:16px;padding:14px 18px;"><div class="ref-header svelte-w0wd5z"><div class="flex items-center gap-2"><!> <span style="font-size:0.9rem;font-weight:800;color:var(--color-text);letter-spacing:-0.02em;">MCP Reference</span> <!></div> <div class="ref-search-wrap svelte-w0wd5z"><span class="ref-search-icon svelte-w0wd5z"><!></span> <input class="form-input ref-search-input svelte-w0wd5z" type="text" placeholder="Search tools & prompts…"/> <!></div></div></div> <div class="ref-body svelte-w0wd5z"><div class="glass ref-sidebar svelte-w0wd5z"><div class="ref-sidebar-label svelte-w0wd5z">Category</div> <!></div> <div class="ref-main svelte-w0wd5z"><!></div></div></div>`);function gS(e,t){We(t,!1);let n=()=>P(p(),`$appState`,o),r=()=>P(m(),`$filteredTools`,o),i=()=>P(h(),`$filteredPrompts`,o),a=()=>P(_(),`$filteredResources`,o),[o,s]=pt(),c=F(),l=F(),u=F(),d=F(),f=Oa(t,`handler`,8),p=Oa(t,`appState`,8),m=Oa(t,`filteredTools`,8),h=Oa(t,`filteredPrompts`,8),_=Oa(t,`filteredResources`,8);function v(e){return[{id:`all`,icon:`layers`,label:`All`,count:(e.capabilities?.tools?.length||0)+(e.capabilities?.prompts?.length||0)+(e.capabilities?.resources?.length||0)},{id:`tools`,icon:`tool`,label:`Tools`,count:e.capabilities?.tools?.length||0},{id:`prompts`,icon:`sparkle`,label:`Prompts`,count:e.capabilities?.prompts?.length||0},{id:`resources`,icon:`database`,label:`Resources`,count:e.capabilities?.resources?.length||0}]}function y(e,t,n){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f().openReferenceDrawer(t,n))}B(()=>n(),()=>{I(c,n())}),B(()=>r(),()=>{I(l,r())}),B(()=>i(),()=>{I(u,i())}),B(()=>a(),()=>{I(d,a())}),Un(),Ta();var b=hS(),x=L(b),S=L(x),C=L(S),w=L(C);$(w,{name:`book-open`,size:15,strokeWidth:1.75});var T=z(w,4),E=e=>{var t=Xx(),n=L(t);j(t),V(()=>J(n,`${(H(c),U(()=>(H(c).capabilities.tools?.length||0)+(H(c).capabilities.prompts?.length||0)))??``} items`)),q(e,t)};Y(T,e=>{H(c),U(()=>H(c).capabilities)&&e(E)}),j(C);var D=z(C,2),O=L(D);$(L(O),{name:`search`,size:12,strokeWidth:2}),j(O);var k=z(O,2);ca(k);var ee=z(k,2),te=e=>{var t=Zx();$(L(t),{name:`x`,size:11,strokeWidth:2.5}),j(t),G(`click`,t,()=>f().setReferenceSearch(``)),q(e,t)};Y(ee,e=>{H(c),U(()=>H(c).referenceSearch)&&e(te)}),j(D),j(S),j(x);var ne=z(x,2),re=L(ne);X(z(L(re),2),1,()=>(H(c),U(()=>v(H(c)))),e=>e.id,(e,t)=>{var n=Qx();let r;var i=L(n);$(i,{get name(){return H(t),U(()=>H(t).icon)},size:13,strokeWidth:1.75});var a=z(i,2),o=L(a,!0);j(a);var s=z(a,2),l=L(s,!0);j(s),j(n),V(()=>{r=Ki(n,1,`ref-cat-btn svelte-w0wd5z`,null,r,{active:H(c).referenceFilter===H(t).id}),J(o,(H(t),U(()=>H(t).label))),J(l,(H(t),U(()=>H(t).count)))}),G(`click`,n,()=>f().setReferenceFilter(H(t).id)),q(e,n)}),j(re);var ie=z(re,2),ae=L(ie),oe=e=>{q(e,$x())},se=e=>{var t=mS(),n=R(t),r=e=>{var t=aS(),n=R(t),r=L(n);$(r,{name:`tool`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);j(i),j(n);var o=z(n,2);X(o,5,()=>H(l),e=>e.data.name,(e,t)=>{var n=iS(),r=L(n),i=L(r);$(L(i),{name:`tool`,size:10,strokeWidth:2}),Ne(),j(i),j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),c=e=>{var n=eS(),r=L(n,!0);j(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)});var l=z(s,2),u=e=>{var n=rS(),r=L(n);X(r,1,()=>(H(t),U(()=>Object.entries(H(t).data.inputSchema.properties).slice(0,4))),([e])=>e,(e,t)=>{var n=Jt(()=>g(H(t),1));let r=()=>H(n)[0];var i=tS(),a=L(i,!0);j(i),V(()=>J(a,r())),q(e,i)});var i=z(r,2),a=e=>{var n=nS(),r=L(n);j(n),V(e=>J(r,`+${e??``}`),[()=>(H(t),U(()=>Object.keys(H(t).data.inputSchema.properties).length-4))]),q(e,n)},o=Jt(()=>(H(t),U(()=>Object.keys(H(t).data.inputSchema.properties).length>4)));Y(i,e=>{H(o)&&e(a)}),j(n),q(e,n)};Y(l,e=>{H(t),U(()=>H(t)?.data?.inputSchema?.properties)&&e(u)}),j(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Tool`)))),G(`click`,n,()=>f().openReferenceDrawer(`tool`,H(t).data)),G(`keydown`,n,e=>y(e,`tool`,H(t).data)),q(e,n)}),j(o),V(()=>J(a,(H(l),U(()=>H(l).length)))),q(e,t)};Y(n,e=>{H(l),U(()=>H(l).length>0)&&e(r)});var i=z(n,2),a=e=>{var t=cS(),n=R(t),r=L(n);$(r,{name:`sparkle`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);j(i),j(n);var o=z(n,2);X(o,5,()=>H(u),e=>e.data.name,(e,t)=>{var n=sS(),r=L(n),i=L(r);$(L(i),{name:`sparkle`,size:10,strokeWidth:2}),Ne(),j(i),j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),c=e=>{var n=oS(),r=L(n,!0);j(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)}),j(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Prompt`)))),G(`click`,n,()=>f().openReferenceDrawer(`prompt`,H(t).data)),G(`keydown`,n,e=>y(e,`prompt`,H(t).data)),q(e,n)}),j(o),V(()=>{Ji(n,`margin-top:${(H(l),U(()=>H(l).length>0?`20px`:`0`))??``}`),J(a,(H(u),U(()=>H(u).length)))}),q(e,t)};Y(i,e=>{H(u),U(()=>H(u).length>0)&&e(a)});var o=z(i,2),s=e=>{var t=fS(),n=R(t),r=L(n);$(r,{name:`database`,size:13,strokeWidth:1.75});var i=z(r,4),a=L(i,!0);j(i),j(n);var o=z(n,2);X(o,5,()=>H(d),e=>e.data.uri||e.data.name,(e,t)=>{var n=dS(),r=L(n),i=L(r);$(L(i),{name:`database`,size:10,strokeWidth:2}),Ne(),j(i),j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),c=e=>{var n=lS(),r=L(n,!0);j(n),V(()=>J(r,(H(t),U(()=>H(t).data.description)))),q(e,n)};Y(s,e=>{H(t),U(()=>H(t)?.data?.description)&&e(c)});var l=z(s,2),u=e=>{var n=uS(),r=L(n),i=L(r,!0);j(r),j(n),V(()=>J(i,(H(t),U(()=>H(t).data.uri)))),q(e,n)};Y(l,e=>{H(t),U(()=>H(t)?.data?.uri)&&e(u)}),j(n),V(()=>J(o,(H(t),U(()=>H(t)?.data?.name||`Unknown Resource`)))),G(`click`,n,()=>f().openReferenceDrawer(`resource`,H(t).data)),G(`keydown`,n,e=>y(e,`resource`,H(t).data)),q(e,n)}),j(o),V(()=>{Ji(n,`margin-top:${(H(l),H(u),U(()=>H(l).length>0||H(u).length>0?`20px`:`0`))??``}`),J(a,(H(d),U(()=>H(d).length)))}),q(e,t)};Y(o,e=>{H(d),U(()=>H(d).length>0)&&e(s)});var p=z(o,2),m=e=>{var t=pS(),n=L(t);$(n,{name:`search`,size:28,strokeWidth:1.25});var r=z(n,2),i=L(r);j(r),j(t),V(()=>J(i,`No results for "${(H(c),U(()=>H(c).referenceSearch))??``}"`)),q(e,t)};Y(p,e=>{H(l),H(u),H(d),U(()=>H(l).length===0&&H(u).length===0&&H(d).length===0)&&e(m)}),q(e,t)};Y(ae,e=>{H(c),U(()=>!H(c).capabilities)?e(oe):e(se,-1)}),j(ie),j(ne),j(b),Z(k,()=>n().referenceSearch,e=>ht(p(),U(n).referenceSearch=e,U(n))),q(e,b),Ge(),s()}var _S=K(`<div class="fab-backdrop svelte-10ega5z" role="button" tabindex="-1" aria-label="Close menu"></div>`),vS=K(`<!> <div><div class="fab-actions svelte-10ega5z"><div class="fab-action-item svelte-10ega5z"><span class="fab-action-label svelte-10ega5z">New Task</span> <button class="fab-action-btn task svelte-10ega5z" title="Create new task" aria-label="Create new task"><!></button></div> <div class="fab-action-item svelte-10ega5z"><span class="fab-action-label svelte-10ega5z">New Memory</span> <button class="fab-action-btn memory svelte-10ega5z" title="Create new memory" aria-label="Create new memory"><!></button></div></div> <button class="fab-main svelte-10ega5z"><span><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="svelte-10ega5z"><line x1="12" y1="5" x2="12" y2="19" class="svelte-10ega5z"></line><line x1="5" y1="12" x2="19" y2="12" class="svelte-10ega5z"></line></svg></span></button></div>`,1);function yS(e,t){We(t,!1);let n=()=>P(Ra,`$currentRepo`,r),[r,i]=pt(),a=Oa(t,`onNewMemory`,8,()=>{}),o=Oa(t,`onNewTask`,8,()=>{}),s=F(!1);function c(){I(s,!H(s))}function l(){I(s,!1),a()()}function u(){I(s,!1),o()()}function d(e){e.key===`Escape`&&I(s,!1)}Ta();var f=li();G(`keydown`,hn,d);var p=R(f),m=e=>{var t=vS(),n=R(t),r=e=>{var t=_S();G(`click`,t,()=>I(s,!1)),G(`keydown`,t,e=>e.key===`Escape`&&I(s,!1)),q(e,t)};Y(n,e=>{H(s)&&e(r)});var i=z(n,2);let a;var o=L(i),d=L(o),f=z(L(d),2);$(L(f),{name:`clipboard-list`,size:16,strokeWidth:2}),j(f),j(d);var p=z(d,2),m=z(L(p),2);$(L(m),{name:`brain`,size:16,strokeWidth:2}),j(m),j(p),j(o);var h=z(o,2),g=L(h);let _;j(h),j(i),V(()=>{a=Ki(i,1,`fab-container svelte-10ega5z`,null,a,{open:H(s)}),Ji(d,`transition-delay: ${H(s)?`0.05s`:`0s`}`),Ji(p,`transition-delay: ${H(s)?`0.1s`:`0s`}`),fa(h,`title`,H(s)?`Close`:`Quick create`),fa(h,`aria-label`,H(s)?`Close quick create menu`:`Open quick create menu`),fa(h,`aria-expanded`,H(s)),_=Ki(g,1,`fab-icon svelte-10ega5z`,null,_,{rotated:H(s)})}),G(`click`,f,u),G(`click`,m,l),G(`click`,h,c),q(e,t)};Y(p,e=>{n()&&e(m)}),q(e,f),Ge(),i()}var bS=K(`<div class="error-banner svelte-owkwhr"> </div>`),xS=K(`<div class="glass card panel-card create-panel svelte-owkwhr"><div class="panel-heading svelte-owkwhr"><div><div class="section-label">New Standard</div> <div class="toolbar-subtitle svelte-owkwhr">Save one atomic coding standard for this repo or globally.</div></div></div> <div class="form-grid svelte-owkwhr"><label class="svelte-owkwhr"><span class="svelte-owkwhr">Name</span> <input class="form-input" placeholder="Error handling standard"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Parent ID</span> <input class="form-input" placeholder="Optional parent standard UUID"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Context</span> <input class="form-input" placeholder="testing, security, routing"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Version</span> <input class="form-input" placeholder="1.0.0"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Language</span> <input class="form-input" placeholder="typescript, python"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Stack</span> <input class="form-input" placeholder="svelte, vite, express"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Tags</span> <input class="form-input" placeholder="frontend, linting"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Metadata JSON</span> <input class="form-input" placeholder="JSON metadata"/></label></div> <label class="content-label svelte-owkwhr"><span class="svelte-owkwhr">Content</span> <textarea class="form-textarea content-input svelte-owkwhr" placeholder="Write the implementation rule in concise Markdown..."></textarea></label> <button class="btn btn-primary"><!> </button></div>`),SS=K(`<button class="btn btn-ghost btn-sm">Add first standard</button>`),CS=K(`<div class="muted-state svelte-owkwhr">Loading standards...</div>`),wS=K(`<div class="empty-state svelte-owkwhr"><!> <div class="empty-title svelte-owkwhr">No standards found</div> <div class="empty-copy svelte-owkwhr">Adjust the filters or create a standard for this repository.</div></div>`),TS=K(`<span class="mini-chip svelte-owkwhr"> </span>`),ES=K(`<div class="tag-row svelte-owkwhr"></div>`),DS=K(`<span class="mini-chip svelte-owkwhr"> </span>`),OS=K(`<div class="tag-row svelte-owkwhr"></div>`),kS=K(`<button><div class="row-title svelte-owkwhr"><!> <span> </span></div> <div class="row-meta svelte-owkwhr"><span> </span> <span> </span> <span> </span> <span>child</span></div> <!></button>`),AS=K(`<div class="standard-children svelte-owkwhr"></div>`),jS=K(`<div class="standard-group svelte-owkwhr"><button><div class="row-title svelte-owkwhr"> </div> <div class="row-meta svelte-owkwhr"><span> </span> <span> </span> <span> </span> <span> </span></div> <!></button> <!></div>`),MS=K(`<div class="standard-list svelte-owkwhr"></div>`),NS=K(`<div class="muted-state svelte-owkwhr">Loading standard detail...</div>`),PS=K(`<div class="form-grid svelte-owkwhr"><label class="svelte-owkwhr"><span class="svelte-owkwhr">Name</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Parent ID</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Context</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Version</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Language</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Stack</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Tags</span> <input class="form-input"/></label> <label class="svelte-owkwhr"><span class="svelte-owkwhr">Metadata JSON</span> <input class="form-input"/></label></div> <label class="content-label svelte-owkwhr"><span class="svelte-owkwhr">Content</span> <textarea class="form-textarea content-input svelte-owkwhr"></textarea></label> <div class="editor-actions svelte-owkwhr"><button class="btn btn-primary"><!> </button> <button class="btn btn-ghost">Cancel</button></div>`,1),FS=K(`<div class="markdown-body md-card"><!></div>`),IS=K(`<div class="detail-heading svelte-owkwhr"><div><div class="detail-title svelte-owkwhr"> </div> <div class="row-meta svelte-owkwhr"><span> </span> <span> </span> <span> </span> <span> </span></div></div> <div class="detail-actions svelte-owkwhr"><span class="scope-pill svelte-owkwhr"> </span> <button class="btn btn-ghost btn-sm"><!> Edit</button> <button class="btn btn-ghost btn-sm danger-text svelte-owkwhr"><!> </button></div></div> <!>`,1),LS=K(`<div class="empty-state detail-empty svelte-owkwhr"><!> <div class="empty-title svelte-owkwhr">Select a standard</div> <div class="empty-copy svelte-owkwhr">The full Markdown content and scope metadata appear here.</div></div>`),RS=K(`<div class="feature-shell animate-fade-in svelte-owkwhr"><div class="feature-toolbar glass card svelte-owkwhr"><div class="toolbar-title svelte-owkwhr"><!> <div><div class="section-label">Coding Standards</div> <div class="toolbar-subtitle svelte-owkwhr"> </div></div></div> <button class="btn btn-primary toolbar-action svelte-owkwhr"><!> </button> <div class="toolbar-controls svelte-owkwhr"><input class="form-input" placeholder="Search standards..."/> <input class="form-input" placeholder="Language"/> <input class="form-input" placeholder="Stack tags, comma separated"/> <select class="form-select"><option>Repo + global</option><option>Global only</option><option>All standards</option></select></div></div> <!> <!> <div><div class="glass card panel-card list-panel svelte-owkwhr"><div class="panel-heading svelte-owkwhr"><div class="section-label">Standards</div> <!></div> <!></div> <div class="glass card panel-card detail-panel svelte-owkwhr"><!></div></div></div>`);function zS(e,t){We(t,!1);let n=Oa(t,`repo`,8,``),r=F([]),i=F(),a=F(!1),o=F(!1),s=F(!1),c=F(!1),l=F(``),u=F(``),d=F(``),f=F(``),p=F(`repo`),m=F(null),h=F(!1),g=F(!1),_=F({name:``,parent_id:``,context:`general`,version:`1.0.0`,language:``,stack:``,tags:``,metadata:`{"source":"dashboard"}`,content:``}),v=F({name:``,parent_id:``,context:`general`,version:`1.0.0`,language:``,stack:``,tags:``,metadata:`{"source":"dashboard"}`,content:``});function y(e){try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)&&Object.keys(t).length>0?t:null}catch{return null}}function b(e){return e.split(`,`).map(e=>e.trim()).filter(Boolean)}function x(e){return JSON.stringify(e,null,2)}function S(e){let t={},n=new Set(e.map(e=>e.id));for(let r of e){let e=r.parent_id;if(!e||!n.has(e))continue;let i=t[e]||[];i.push(r),t[e]=i}return e.filter(e=>!e.parent_id||!n.has(e.parent_id)).map(e=>({standard:e,children:(t[e.id]||[]).sort((e,t)=>e.title.localeCompare(t.title))}))}async function C(e){I(o,!0),I(g,!1);try{let t=await Q.standardById(e);I(m,t),t&&I(v,{name:t.title,parent_id:t.parent_id||``,context:t.context,version:t.version,language:t.language||``,stack:t.stack.join(`, `),tags:t.tags.join(`, `),metadata:x(t.metadata),content:t.content})}catch(e){I(l,e instanceof Error?e.message:String(e))}finally{I(o,!1)}}function w(){H(m)&&(I(v,{name:H(m).title,parent_id:H(m).parent_id||``,context:H(m).context,version:H(m).version,language:H(m).language||``,stack:H(m).stack.join(`, `),tags:H(m).tags.join(`, `),metadata:x(H(m).metadata),content:H(m).content}),I(g,!0))}function T(){I(g,!1)}async function E(){if(n()){I(a,!0),I(l,``);try{I(r,(await Q.standards({query:H(u)||void 0,language:H(d)||void 0,stack:H(f)||void 0,repo:H(p)===`repo`?n():void 0,is_global:H(p)===`global`?!0:void 0,page:1,pageSize:100})).standards||[]),(!H(m)||!H(r).some(e=>e.id===H(m)?.id))&&I(m,H(r)[0]||null),H(m)?.id&&await C(H(m).id)}catch(e){I(l,e instanceof Error?e.message:String(e))}finally{I(a,!1)}}}async function D(){let e=y(H(_).metadata);if(!(!H(_).name.trim()||!H(_).content.trim()||b(H(_).tags).length===0||!e)){I(s,!0),I(l,``);try{let t=H(p)===`global`,r=await Q.createStandard({title:H(_).name.trim(),content:H(_).content.trim(),parent_id:H(_).parent_id.trim()||void 0,context:H(_).context.trim()||`general`,version:H(_).version.trim()||`1.0.0`,language:H(_).language.trim()||void 0,stack:b(H(_).stack),tags:b(H(_).tags),metadata:e,repo:t?void 0:n(),is_global:t});I(_,{name:``,parent_id:``,context:`general`,version:`1.0.0`,language:``,stack:``,tags:``,metadata:`{"source":"dashboard"}`,content:``}),I(h,!1),await E(),I(m,r||H(m))}catch(e){I(l,e instanceof Error?e.message:String(e))}finally{I(s,!1)}}}async function O(){if(!H(m))return;let e=y(H(v).metadata);if(!(!H(v).name.trim()||!H(v).content.trim()||b(H(v).tags).length===0||!e)){I(s,!0),I(l,``);try{await Q.updateStandard(H(m).id,{title:H(v).name.trim(),content:H(v).content.trim(),parent_id:H(v).parent_id.trim()||null,context:H(v).context.trim()||`general`,version:H(v).version.trim()||`1.0.0`,language:H(v).language.trim()||void 0,stack:b(H(v).stack),tags:b(H(v).tags),metadata:e,repo:H(m).is_global?void 0:H(m).repo||n(),is_global:H(m).is_global}),I(g,!1),await C(H(m).id),await E()}catch(e){I(l,e instanceof Error?e.message:String(e))}finally{I(s,!1)}}}async function k(){if(H(m)&&confirm(`Delete coding standard "${H(m).title}"?`)){I(c,!0),I(l,``);try{await Q.deleteStandard(H(m).id),I(g,!1),I(m,null),await E()}catch(e){I(l,e instanceof Error?e.message:String(e))}finally{I(c,!1)}}}ka(()=>{E()}),B(()=>W(n()),()=>{n()&&E()}),B(()=>H(r),()=>{I(i,S(H(r)))}),Un(),Ta();var ee=RS(),te=L(ee),ne=L(te),re=L(ne);$(re,{name:`check`,size:16,strokeWidth:2});var ie=z(re,2),ae=z(L(ie),2),oe=L(ae);j(ae),j(ie),j(ne);var se=z(ne,2),ce=L(se);{let e=Yt(()=>H(h)?`chevron-left`:`plus`);$(ce,{get name(){return H(e)},size:14,strokeWidth:2})}var le=z(ce);j(se);var ue=z(se,2),de=L(ue);ca(de);var fe=z(de,2);ca(fe);var pe=z(fe,2);ca(pe);var me=z(pe,2),he=L(me);he.value=he.__value=`repo`;var ge=z(he);ge.value=ge.__value=`global`;var _e=z(ge);_e.value=_e.__value=`all`,j(me),j(ue),j(te);var ve=z(te,2),ye=e=>{var t=bS(),n=L(t,!0);j(t),V(()=>J(n,H(l))),q(e,t)};Y(ve,e=>{H(l)&&e(ye)});var be=z(ve,2),xe=e=>{var t=xS(),n=z(L(t),2),r=L(n),i=z(L(r),2);ca(i),j(r);var a=z(r,2),o=z(L(a),2);ca(o),j(a);var c=z(a,2),l=z(L(c),2);ca(l),j(c);var u=z(c,2),d=z(L(u),2);ca(d),j(u);var f=z(u,2),p=z(L(f),2);ca(p),j(f);var m=z(f,2),h=z(L(m),2);ca(h),j(m);var g=z(m,2),v=z(L(g),2);ca(v),j(g);var x=z(g,2),S=z(L(x),2);ca(S),j(x),j(n);var C=z(n,2),w=z(L(C),2);On(w),j(C);var T=z(C,2),E=L(T);$(E,{name:`check`,size:14,strokeWidth:2});var O=z(E);j(T),j(t),V(e=>{T.disabled=e,J(O,` ${H(s)?`Saving...`:`Save Standard`}`)},[()=>(H(s),H(_),U(()=>H(s)||!H(_).name.trim()||!H(_).content.trim()||b(H(_).tags).length===0||!y(H(_).metadata)))]),Z(i,()=>H(_).name,e=>sn(_,H(_).name=e)),Z(o,()=>H(_).parent_id,e=>sn(_,H(_).parent_id=e)),Z(l,()=>H(_).context,e=>sn(_,H(_).context=e)),Z(d,()=>H(_).version,e=>sn(_,H(_).version=e)),Z(p,()=>H(_).language,e=>sn(_,H(_).language=e)),Z(h,()=>H(_).stack,e=>sn(_,H(_).stack=e)),Z(v,()=>H(_).tags,e=>sn(_,H(_).tags=e)),Z(S,()=>H(_).metadata,e=>sn(_,H(_).metadata=e)),Z(w,()=>H(_).content,e=>sn(_,H(_).content=e)),G(`click`,T,D),q(e,t)};Y(be,e=>{H(h)&&e(xe)});var Se=z(be,2);let Ce;var we=L(Se),Te=L(we),Ee=z(L(Te),2),De=e=>{var t=SS();G(`click`,t,()=>I(h,!0)),q(e,t)};Y(Ee,e=>{H(r),U(()=>H(r).length===0)&&e(De)}),j(Te);var Oe=z(Te,2),A=e=>{q(e,CS())},ke=e=>{var t=wS();$(L(t),{name:`check`,size:22,strokeWidth:1.75}),Ne(4),j(t),q(e,t)},Ae=e=>{var t=MS();X(t,5,()=>H(i),e=>e.standard.id,(e,t)=>{var r=jS(),i=L(r);let a;var o=L(i),s=L(o,!0);j(o);var c=z(o,2),l=L(c),u=L(l,!0);j(l);var d=z(l,2),f=L(d,!0);j(d);var p=z(d,2),h=L(p,!0);j(p);var g=z(p,2),_=L(g,!0);j(g),j(c);var v=z(c,2),y=e=>{var n=ES();X(n,5,()=>(H(t),U(()=>[...new Set([...H(t).standard.stack,...H(t).standard.tags])].slice(0,6))),e=>e,(e,t)=>{var n=TS(),r=L(n,!0);j(n),V(()=>J(r,H(t))),q(e,n)}),j(n),q(e,n)};Y(v,e=>{H(t),U(()=>H(t).standard.stack.length||H(t).standard.tags.length)&&e(y)}),j(i);var b=z(i,2),x=e=>{var r=AS();X(r,5,()=>(H(t),U(()=>H(t).children)),e=>e.id,(e,t)=>{var r=kS();let i;var a=L(r),o=L(a);$(o,{name:`corner-down-right`,size:13,strokeWidth:2});var s=z(o,2),c=L(s,!0);j(s),j(a);var l=z(a,2),u=L(l),d=L(u,!0);j(u);var f=z(u,2),p=L(f,!0);j(f);var h=z(f,2),g=L(h,!0);j(h),Ne(2),j(l);var _=z(l,2),v=e=>{var n=OS();X(n,5,()=>(H(t),U(()=>[...new Set([...H(t).stack,...H(t).tags])].slice(0,6))),e=>e,(e,t)=>{var n=DS(),r=L(n,!0);j(n),V(()=>J(r,H(t))),q(e,n)}),j(n),q(e,n)};Y(_,e=>{H(t),U(()=>H(t).stack.length||H(t).tags.length)&&e(v)}),j(r),V(()=>{i=Ki(r,1,`standard-row standard-row-child svelte-owkwhr`,null,i,{selected:H(m)?.id===H(t).id}),J(c,(H(t),U(()=>H(t).title))),J(d,(H(t),U(()=>H(t).context))),J(p,(H(t),U(()=>H(t).language||`any language`))),J(g,(H(t),W(n()),U(()=>H(t).is_global?`global`:H(t).repo||n())))}),G(`click`,r,()=>C(H(t).id)),q(e,r)}),j(r),q(e,r)};Y(b,e=>{H(t),U(()=>H(t).children.length>0)&&e(x)}),j(r),V(()=>{a=Ki(i,1,`standard-row standard-row-root svelte-owkwhr`,null,a,{selected:H(m)?.id===H(t).standard.id}),J(s,(H(t),U(()=>H(t).standard.title))),J(u,(H(t),U(()=>H(t).standard.context))),J(f,(H(t),U(()=>H(t).standard.language||`any language`))),J(h,(H(t),W(n()),U(()=>H(t).standard.is_global?`global`:H(t).standard.repo||n()))),J(_,(H(t),U(()=>H(t).children.length>0?`${H(t).children.length} child`:`root`)))}),G(`click`,i,()=>C(H(t).standard.id)),q(e,r)}),j(t),q(e,t)};Y(Oe,e=>{H(a)?e(A):(H(r),U(()=>H(r).length===0)?e(ke,1):e(Ae,-1))}),j(we);var je=z(we,2),Me=L(je),Pe=e=>{q(e,NS())},Fe=e=>{var t=IS(),n=R(t),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),l=L(o),u=L(l,!0);j(l);var d=z(l,2),f=L(d);j(d);var p=z(d,2),h=L(p,!0);j(p);var _=z(p,2),b=L(_,!0);j(_),j(o),j(r);var x=z(r,2),S=L(x),C=L(S,!0);j(S);var E=z(S,2);$(L(E),{name:`pencil`,size:14,strokeWidth:2}),Ne(),j(E);var D=z(E,2),ee=L(D);$(ee,{name:`trash`,size:14,strokeWidth:2});var te=z(ee);j(D),j(x),j(n);var ne=z(n,2),re=e=>{var t=PS(),n=R(t),r=L(n),i=z(L(r),2);ca(i),j(r);var a=z(r,2),o=z(L(a),2);ca(o),j(a);var c=z(a,2),l=z(L(c),2);ca(l),j(c);var u=z(c,2),d=z(L(u),2);ca(d),j(u);var f=z(u,2),p=z(L(f),2);ca(p),j(f);var m=z(f,2),h=z(L(m),2);ca(h),j(m);var g=z(m,2),_=z(L(g),2);ca(_),j(g);var b=z(g,2),x=z(L(b),2);ca(x),j(b),j(n);var S=z(n,2),C=z(L(S),2);On(C),j(S);var w=z(S,2),E=L(w),D=L(E);$(D,{name:`check`,size:14,strokeWidth:2});var k=z(D);j(E);var ee=z(E,2);j(w),V(e=>{E.disabled=e,J(k,` ${H(s)?`Saving...`:`Save Changes`}`),ee.disabled=H(s)},[()=>(H(s),H(v),U(()=>H(s)||!y(H(v).metadata)))]),Z(i,()=>H(v).name,e=>sn(v,H(v).name=e)),Z(o,()=>H(v).parent_id,e=>sn(v,H(v).parent_id=e)),Z(l,()=>H(v).context,e=>sn(v,H(v).context=e)),Z(d,()=>H(v).version,e=>sn(v,H(v).version=e)),Z(p,()=>H(v).language,e=>sn(v,H(v).language=e)),Z(h,()=>H(v).stack,e=>sn(v,H(v).stack=e)),Z(_,()=>H(v).tags,e=>sn(v,H(v).tags=e)),Z(x,()=>H(v).metadata,e=>sn(v,H(v).metadata=e)),Z(C,()=>H(v).content,e=>sn(v,H(v).content=e)),G(`click`,E,O),G(`click`,ee,T),q(e,t)},ie=e=>{var t=FS();nb(L(t),{get content(){return H(m),U(()=>H(m).content)}}),j(t),q(e,t)};Y(ne,e=>{H(g)?e(re):e(ie,-1)}),V(e=>{J(a,(H(m),U(()=>H(m).title))),J(u,(H(m),U(()=>H(m).context))),J(f,`v${(H(m),U(()=>H(m).version))??``}`),J(h,(H(m),U(()=>H(m).parent_id?`child of ${H(m).parent_id}`:`root`))),J(b,e),J(C,(H(m),U(()=>H(m).is_global?`Global`:`Repo`))),D.disabled=H(c),J(te,` ${H(c)?`Deleting...`:`Delete`}`)},[()=>(W(ol),H(m),U(()=>ol(H(m).updated_at)))]),G(`click`,E,w),G(`click`,D,k),q(e,t)},Ie=e=>{var t=LS();$(L(t),{name:`book-open`,size:22,strokeWidth:1.75}),Ne(4),j(t),q(e,t)};Y(Me,e=>{H(o)?e(Pe):H(m)?e(Fe,1):e(Ie,-1)}),j(je),j(Se),j(ee),V(()=>{J(oe,`${(H(r),U(()=>H(r).length))??``} matching standards`),J(le,` ${H(h)?`Close Form`:`New Standard`}`),Ce=Ki(Se,1,`feature-grid svelte-owkwhr`,null,Ce,{"with-create":H(h)})}),G(`click`,se,()=>I(h,!H(h))),Z(de,()=>H(u),e=>I(u,e)),G(`input`,de,()=>E()),Z(fe,()=>H(d),e=>I(d,e)),G(`input`,fe,()=>E()),Z(pe,()=>H(f),e=>I(f,e)),G(`input`,pe,()=>E()),Zi(me,()=>H(p),e=>I(p,e)),G(`change`,me,()=>E()),q(e,ee),Ge()}var BS=K(`<div class="error-banner svelte-1ik2acm"> </div>`),VS=K(`<div class="glass card panel-card action-panel svelte-1ik2acm"><div class="section-label">Create Handoff</div> <div class="form-stack svelte-1ik2acm"><label class="svelte-1ik2acm"><span class="svelte-1ik2acm">From agent</span><input class="form-input" placeholder="agent-a"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">To agent</span><input class="form-input" placeholder="agent-b (optional)"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Task code</span><input class="form-input" placeholder="TASK-123 (optional)"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Summary</span><textarea class="form-textarea summary-input svelte-1ik2acm" placeholder="What should the next agent know?"></textarea></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Context JSON</span><textarea class="form-textarea json-input svelte-1ik2acm"></textarea></label> <button class="btn btn-primary"><!> </button></div></div>`),HS=K(`<div class="claim-result svelte-1ik2acm"><div class="row-title svelte-1ik2acm"> </div> <div class="row-meta svelte-1ik2acm"><span> </span> <span> </span> <span> </span></div></div>`),US=K(`<div class="glass card panel-card action-panel svelte-1ik2acm"><div class="section-label">Claim Task</div> <div class="form-stack svelte-1ik2acm"><label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Task code</span><input class="form-input" placeholder="TASK-123"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Agent</span><input class="form-input" placeholder="agent-name"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Role</span><input class="form-input" placeholder="worker"/></label> <label class="svelte-1ik2acm"><span class="svelte-1ik2acm">Metadata JSON</span><textarea class="form-textarea json-input svelte-1ik2acm" placeholder="Metadata JSON object"></textarea></label> <button class="btn btn-accent"><!> </button></div> <!></div>`),WS=K(`<div class="action-grid svelte-1ik2acm"><!> <!></div>`),GS=K(`<button class="btn btn-ghost btn-sm">Create handoff</button>`),KS=K(`<div class="muted-state svelte-1ik2acm">Loading handoffs...</div>`),qS=K(`<div class="empty-state svelte-1ik2acm"><!> <div class="empty-title svelte-1ik2acm">No handoffs found</div> <div class="empty-copy svelte-1ik2acm">Create a handoff when work needs context transfer between agents.</div></div>`),JS=K(`<span> </span>`),YS=K(`<button><div class="handoff-top svelte-1ik2acm"><span> </span> <span class="row-date svelte-1ik2acm"> </span></div> <div class="row-title svelte-1ik2acm"> </div> <div class="row-meta svelte-1ik2acm"><span> </span> <!></div></button>`),XS=K(`<div class="handoff-list svelte-1ik2acm"></div>`),ZS=K(`<div class="muted-inline svelte-1ik2acm"> </div>`),QS=K(`<div class="linked-task svelte-1ik2acm"><div> </div> <!></div>`),$S=K(`<div class="context-card svelte-1ik2acm"><div class="section-label" style="margin-bottom:8px;">Transfer Context</div> <pre class="json-pre svelte-1ik2acm"> </pre></div>`),eC=K(`<div class="detail-title svelte-1ik2acm"> </div> <div class="detail-grid svelte-1ik2acm"><div class="svelte-1ik2acm"><span class="svelte-1ik2acm">From</span><strong class="svelte-1ik2acm"> </strong></div> <div class="svelte-1ik2acm"><span class="svelte-1ik2acm">To</span><strong class="svelte-1ik2acm"> </strong></div> <div class="svelte-1ik2acm"><span class="svelte-1ik2acm">Status</span><strong class="svelte-1ik2acm"> </strong></div> <div class="svelte-1ik2acm"><span class="svelte-1ik2acm">Created</span><strong class="svelte-1ik2acm"> </strong></div> <div class="svelte-1ik2acm"><span class="svelte-1ik2acm">Updated</span><strong class="svelte-1ik2acm"> </strong></div> <div class="svelte-1ik2acm"><span class="svelte-1ik2acm">Expires</span><strong class="svelte-1ik2acm"> </strong></div></div> <div class="status-actions svelte-1ik2acm"><button class="btn btn-ghost btn-sm">Accept</button> <button class="btn btn-ghost btn-sm">Expire</button> <button class="btn btn-ghost btn-sm">Reject</button></div> <!> <!>`,1),tC=K(`<div class="empty-state detail-empty svelte-1ik2acm"><!> <div class="empty-title svelte-1ik2acm">Select a handoff</div> <div class="empty-copy svelte-1ik2acm">Details for the selected handoff appear here.</div></div>`),nC=K(`<div class="muted-state svelte-1ik2acm">Loading claims...</div>`),rC=K(`<div class="empty-state claims-empty svelte-1ik2acm"><!> <div class="empty-title svelte-1ik2acm">No active claims</div> <div class="empty-copy svelte-1ik2acm">Claims taken from agents will appear here for release and inspection.</div></div>`),iC=K(`<div class="claim-row svelte-1ik2acm"><div><div class="row-title svelte-1ik2acm"> </div> <div class="row-meta svelte-1ik2acm"><span> </span> <span> </span> <span> </span></div></div> <button class="btn btn-ghost btn-sm"> </button></div>`),aC=K(`<div class="claim-list svelte-1ik2acm"></div>`),oC=K(`<div class="feature-shell animate-fade-in svelte-1ik2acm"><div class="feature-toolbar glass card svelte-1ik2acm"><div class="toolbar-title svelte-1ik2acm"><!> <div><div class="section-label">Handoffs & Claims</div> <div class="toolbar-subtitle svelte-1ik2acm"> </div></div></div> <div class="toolbar-actions svelte-1ik2acm"><button class="btn btn-primary svelte-1ik2acm"><!> </button> <button class="btn btn-accent svelte-1ik2acm"><!> </button></div> <div class="toolbar-controls svelte-1ik2acm"><select class="form-select"><option>All statuses</option><option>Pending</option><option>Accepted</option><option>Rejected</option><option>Expired</option></select> <input class="form-input" placeholder="To agent filter"/> <button class="btn btn-ghost"><!> Refresh</button> <button class="btn btn-ghost"><!> Sync All</button></div></div> <!> <!> <div class="feature-grid svelte-1ik2acm"><div class="glass card panel-card list-panel svelte-1ik2acm"><div class="panel-heading svelte-1ik2acm"><div class="section-label">Handoff Queue</div> <!></div> <!></div> <div class="detail-stack svelte-1ik2acm"><div class="glass card panel-card detail-panel svelte-1ik2acm"><!></div> <div class="glass card panel-card claims-panel svelte-1ik2acm"><div class="panel-heading svelte-1ik2acm"><div class="section-label">Active Claims</div> <div class="toolbar-subtitle svelte-1ik2acm"> </div></div> <!></div></div></div></div>`);function sC(e,t){We(t,!1);let n=Oa(t,`repo`,8,``),r=F([]),i=F(!1),a=F(!1),o=F(!1),s=F(!1),c=F(``),l=F(`pending`),u=F(``),d=F(null),f=F(null),p=F([]),m=F(!1),h=F(null),g=F(!1),_=F(!1),v=F({from_agent:``,to_agent:``,task_code:``,summary:``,context:``}),y=F({task_code:``,agent:``,role:`worker`,metadata:``});function b(e){return e?.structuredContent??null}function x(e){if(!e.trim())return{};let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`JSON must be an object.`);return t}function S(){return!!H(v).from_agent.trim()&&!!H(v).summary.trim()&&(!!H(v).to_agent.trim()||!!H(v).task_code.trim()||!!H(v).context.trim())}function C(e,t){let r=Object.fromEntries(e.map((e,n)=>[e,t[n]]));return{id:String(r.id||``),repo:n(),from_agent:String(r.from_agent||``),to_agent:r.to_agent?String(r.to_agent):null,task_id:r.task_id?String(r.task_id):null,task_code:r.task_code?String(r.task_code):null,summary:String(r.summary||``),context:r.context&&typeof r.context==`object`&&!Array.isArray(r.context)?r.context:{},status:String(r.status||`pending`),created_at:String(r.created_at||``),updated_at:String(r.updated_at||r.created_at||``),expires_at:r.expires_at?String(r.expires_at):null}}async function w(){if(n()){I(m,!0);try{I(p,(await Q.coordinationClaims({repo:n(),active_only:!0,pageSize:20})).claims||[])}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(m,!1)}}}async function T(){if(n()){I(i,!0),I(c,``);try{let e={repo:n(),status:H(l)||void 0,limit:50,structured:!0};H(u).trim()&&(e.to_agent=H(u).trim());let t=b(await Q.callTool(`handoff-list`,e)),i=t?.handoffs?.columns||[];I(r,(t?.handoffs?.rows||[]).map(e=>C(i,e))),H(d)&&!H(r).some(e=>e.id===H(d)?.id)&&I(d,null)}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(i,!1)}}}async function E(){await Promise.all([T(),w()])}async function D(){if(!(!H(v).from_agent.trim()||!H(v).summary.trim())){I(a,!0),I(c,``);try{let e=b(await Q.callTool(`handoff-create`,{repo:n(),from_agent:H(v).from_agent.trim(),to_agent:H(v).to_agent.trim()||void 0,task_code:H(v).task_code.trim()||void 0,summary:H(v).summary.trim(),context:x(H(v).context),structured:!0}));I(v,{from_agent:``,to_agent:``,task_code:``,summary:``,context:``}),I(g,!1),await T(),I(d,e||H(r)[0]||null)}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(a,!1)}}}async function O(){if(!(!H(y).task_code.trim()||!H(y).agent.trim())){I(o,!0),I(c,``);try{I(f,b(await Q.callTool(`task-claim`,{repo:n(),task_code:H(y).task_code.trim(),agent:H(y).agent.trim(),role:H(y).role.trim()||`worker`,metadata:x(H(y).metadata),structured:!0}))),I(y,{task_code:``,agent:H(y).agent,role:H(y).role,metadata:``}),I(_,!1),await w()}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(o,!1)}}}async function k(e){if(H(d)){I(s,!0),I(c,``);try{await Q.callTool(`handoff-update`,{id:H(d).id,status:e,structured:!0}),await E(),I(d,H(r).find(e=>e.id===H(d)?.id)||null)}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(s,!1)}}}async function ee(e){I(h,e.id),I(c,``);try{await Q.releaseClaim({repo:n(),task_id:e.task_id,agent:e.agent}),await w()}catch(e){I(c,e instanceof Error?e.message:String(e))}finally{I(h,null)}}ka(()=>{E()}),B(()=>W(n()),()=>{n()&&E()}),Un(),Ta();var te=oC(),ne=L(te),re=L(ne),ie=L(re);$(ie,{name:`git-branch`,size:16,strokeWidth:2});var ae=z(ie,2),oe=z(L(ae),2),se=L(oe);j(oe),j(ae),j(re);var ce=z(re,2),le=L(ce),ue=L(le);$(ue,{name:`git-branch`,size:14,strokeWidth:2});var de=z(ue);j(le);var fe=z(le,2),pe=L(fe);$(pe,{name:`check`,size:14,strokeWidth:2});var me=z(pe);j(fe),j(ce);var he=z(ce,2),ge=L(he),_e=L(ge);_e.value=_e.__value=``;var ve=z(_e);ve.value=ve.__value=`pending`;var ye=z(ve);ye.value=ye.__value=`accepted`;var be=z(ye);be.value=be.__value=`rejected`;var xe=z(be);xe.value=xe.__value=`expired`,j(ge);var Se=z(ge,2);ca(Se);var Ce=z(Se,2);$(L(Ce),{name:`refresh-cw`,size:14,strokeWidth:2}),Ne(),j(Ce);var we=z(Ce,2);$(L(we),{name:`refresh-cw`,size:14,strokeWidth:2}),Ne(),j(we),j(he),j(ne);var Te=z(ne,2),Ee=e=>{var t=BS(),n=L(t,!0);j(t),V(()=>J(n,H(c))),q(e,t)};Y(Te,e=>{H(c)&&e(Ee)});var De=z(Te,2),Oe=e=>{var t=WS(),n=L(t),r=e=>{var t=VS(),n=z(L(t),2),r=L(n),i=z(L(r));ca(i),j(r);var o=z(r,2),s=z(L(o));ca(s),j(o);var c=z(o,2),l=z(L(c));ca(l),j(c);var u=z(c,2),d=z(L(u));On(d),j(u);var f=z(u,2),p=z(L(f));On(p),fa(p,`placeholder`,`{"next_steps":["..."],"blockers":[],"remaining_work":"..."}`),j(f);var m=z(f,2),h=L(m);$(h,{name:`git-branch`,size:14,strokeWidth:2});var g=z(h);j(m),j(n),j(t),V(e=>{m.disabled=e,J(g,` ${H(a)?`Creating...`:`Create Handoff`}`)},[()=>(H(a),U(()=>H(a)||!S()))]),Z(i,()=>H(v).from_agent,e=>sn(v,H(v).from_agent=e)),Z(s,()=>H(v).to_agent,e=>sn(v,H(v).to_agent=e)),Z(l,()=>H(v).task_code,e=>sn(v,H(v).task_code=e)),Z(d,()=>H(v).summary,e=>sn(v,H(v).summary=e)),Z(p,()=>H(v).context,e=>sn(v,H(v).context=e)),G(`click`,m,D),q(e,t)};Y(n,e=>{H(g)&&e(r)});var i=z(n,2),s=e=>{var t=US(),n=z(L(t),2),r=L(n),i=z(L(r));ca(i),j(r);var a=z(r,2),s=z(L(a));ca(s),j(a);var c=z(a,2),l=z(L(c));ca(l),j(c);var u=z(c,2),d=z(L(u));On(d),j(u);var p=z(u,2),m=L(p);$(m,{name:`check`,size:14,strokeWidth:2});var h=z(m);j(p),j(n);var g=z(n,2),_=e=>{var t=HS(),n=L(t),r=L(n);j(n);var i=z(n,2),a=L(i),o=L(a,!0);j(a);var s=z(a,2),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(i),j(t),V(e=>{J(r,`Claimed ${(H(f),U(()=>H(f).task_code||H(f).task_id))??``}`),J(o,(H(f),U(()=>H(f).agent))),J(c,(H(f),U(()=>H(f).role))),J(u,e)},[()=>(W(ol),H(f),U(()=>ol(H(f).claimed_at)))]),q(e,t)};Y(g,e=>{H(f)&&e(_)}),j(t),V(e=>{p.disabled=e,J(h,` ${H(o)?`Claiming...`:`Claim Task`}`)},[()=>(H(o),H(y),U(()=>H(o)||!H(y).task_code.trim()||!H(y).agent.trim()))]),Z(i,()=>H(y).task_code,e=>sn(y,H(y).task_code=e)),Z(s,()=>H(y).agent,e=>sn(y,H(y).agent=e)),Z(l,()=>H(y).role,e=>sn(y,H(y).role=e)),Z(d,()=>H(y).metadata,e=>sn(y,H(y).metadata=e)),G(`click`,p,O),q(e,t)};Y(i,e=>{H(_)&&e(s)}),j(t),q(e,t)};Y(De,e=>{(H(g)||H(_))&&e(Oe)});var A=z(De,2),ke=L(A),Ae=L(ke),je=z(L(Ae),2),Me=e=>{var t=GS();G(`click`,t,()=>I(g,!0)),q(e,t)};Y(je,e=>{H(r),U(()=>H(r).length===0)&&e(Me)}),j(Ae);var Pe=z(Ae,2),Fe=e=>{q(e,KS())},Ie=e=>{var t=qS();$(L(t),{name:`git-branch`,size:22,strokeWidth:1.75}),Ne(4),j(t),q(e,t)},Le=e=>{var t=XS();X(t,5,()=>H(r),e=>e.id,(e,t)=>{var n=YS();let r;var i=L(n),a=L(i),o=L(a,!0);j(a);var s=z(a,2),c=L(s,!0);j(s),j(i);var l=z(i,2),u=L(l,!0);j(l);var f=z(l,2),p=L(f),m=L(p);j(p);var h=z(p,2),g=e=>{var n=JS(),r=L(n,!0);j(n),V(e=>J(r,e),[()=>(H(t),U(()=>H(t).task_id.slice(0,8)))]),q(e,n)};Y(h,e=>{H(t),U(()=>H(t).task_id)&&e(g)}),j(f),j(n),V(e=>{r=Ki(n,1,`handoff-row svelte-1ik2acm`,null,r,{selected:H(d)?.id===H(t).id}),Ki(a,1,`status-pill status-${(H(t),U(()=>H(t).status))??``}`,`svelte-1ik2acm`),J(o,(H(t),U(()=>H(t).status))),J(c,e),J(u,(H(t),U(()=>H(t).summary))),J(m,`${(H(t),U(()=>H(t).from_agent))??``} -> ${(H(t),U(()=>H(t).to_agent||`unassigned`))??``}`)},[()=>(W(ol),H(t),U(()=>ol(H(t).created_at)))]),G(`click`,n,()=>I(d,H(t))),q(e,n)}),j(t),q(e,t)};Y(Pe,e=>{H(i)?e(Fe):(H(r),U(()=>H(r).length===0)?e(Ie,1):e(Le,-1))}),j(ke);var Re=z(ke,2),ze=L(Re),Be=L(ze),Ve=e=>{var t=eC(),n=R(t),r=L(n,!0);j(n);var i=z(n,2),a=L(i),o=z(L(a)),c=L(o,!0);j(o),j(a);var l=z(a,2),u=z(L(l)),f=L(u,!0);j(u),j(l);var p=z(l,2),m=z(L(p)),h=L(m,!0);j(m),j(p);var g=z(p,2),_=z(L(g)),v=L(_,!0);j(_),j(g);var y=z(g,2),b=z(L(y)),x=L(b,!0);j(b),j(y);var S=z(y,2),C=z(L(S)),w=L(C,!0);j(C),j(S),j(i);var T=z(i,2),E=L(T),D=z(E,2),O=z(D,2);j(T);var ee=z(T,2),te=e=>{var t=QS(),n=L(t),r=L(n);j(n);var i=z(n,2),a=e=>{var t=ZS(),n=L(t,!0);j(t),V(()=>J(n,(H(d),U(()=>H(d).task_id)))),q(e,t)};Y(i,e=>{H(d),U(()=>H(d).task_id)&&e(a)}),j(t),V(()=>J(r,`Task: ${(H(d),U(()=>H(d).task_code||`—`))??``}`)),q(e,t)};Y(ee,e=>{H(d),U(()=>H(d).task_id||H(d).task_code)&&e(te)});var ne=z(ee,2),re=e=>{var t=$S(),n=z(L(t),2),r=L(n,!0);j(n),j(t),V(e=>J(r,e),[()=>(H(d),U(()=>JSON.stringify(H(d).context,null,2)))]),q(e,t)},ie=Jt(()=>(H(d),U(()=>Object.keys(H(d).context||{}).length>0)));Y(ne,e=>{H(ie)&&e(re)}),V((e,t,n)=>{J(r,(H(d),U(()=>H(d).summary))),J(c,(H(d),U(()=>H(d).from_agent))),J(f,(H(d),U(()=>H(d).to_agent||`unassigned`))),J(h,(H(d),U(()=>H(d).status))),J(v,e),J(x,t),J(w,n),E.disabled=(H(s),H(d),U(()=>H(s)||H(d).status===`accepted`)),D.disabled=(H(s),H(d),U(()=>H(s)||H(d).status===`expired`)),O.disabled=(H(s),H(d),U(()=>H(s)||H(d).status===`rejected`))},[()=>(W(ol),H(d),U(()=>ol(H(d).created_at))),()=>(W(ol),H(d),U(()=>ol(H(d).updated_at))),()=>(H(d),W(ol),U(()=>H(d).expires_at?ol(H(d).expires_at):`—`))]),G(`click`,E,()=>k(`accepted`)),G(`click`,D,()=>k(`expired`)),G(`click`,O,()=>k(`rejected`)),q(e,t)},He=e=>{var t=tC();$(L(t),{name:`book-open`,size:22,strokeWidth:1.75}),Ne(4),j(t),q(e,t)};Y(Be,e=>{H(d)?e(Ve):e(He,-1)}),j(ze);var Ue=z(ze,2),Ke=L(Ue),qe=z(L(Ke),2),Je=L(qe);j(qe),j(Ke);var Ye=z(Ke,2),Xe=e=>{q(e,nC())},Ze=e=>{var t=rC();$(L(t),{name:`check`,size:20,strokeWidth:1.75}),Ne(4),j(t),q(e,t)},Qe=e=>{var t=aC();X(t,5,()=>H(p),e=>e.id,(e,t)=>{var n=iC(),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l);var d=z(l,2),f=L(d,!0);j(d),j(o),j(r);var p=z(r,2),m=L(p,!0);j(p),j(n),V(e=>{J(a,(H(t),U(()=>H(t).task_code||H(t).task_id))),J(c,(H(t),U(()=>H(t).agent))),J(u,(H(t),U(()=>H(t).role))),J(f,e),p.disabled=(H(h),H(t),U(()=>H(h)===H(t).id)),J(m,(H(h),H(t),U(()=>H(h)===H(t).id?`Releasing...`:`Release`)))},[()=>(W(ol),H(t),U(()=>ol(H(t).claimed_at)))]),G(`click`,p,()=>ee(H(t))),q(e,n)}),j(t),q(e,t)};Y(Ye,e=>{H(m)?e(Xe):(H(p),U(()=>H(p).length===0)?e(Ze,1):e(Qe,-1))}),j(Ue),j(Re),j(A),j(te),V(()=>{J(se,`${(H(r),U(()=>H(r).length))??``} handoffs in view`),J(de,` ${H(g)?`Close Handoff`:`New Handoff`}`),J(me,` ${H(_)?`Close Claim`:`Claim Task`}`),J(Je,`${(H(p),U(()=>H(p).length))??``} active`)}),G(`click`,le,()=>I(g,!H(g))),G(`click`,fe,()=>I(_,!H(_))),Zi(ge,()=>H(l),e=>I(l,e)),G(`change`,ge,()=>T()),Z(Se,()=>H(u),e=>I(u,e)),G(`input`,Se,()=>T()),G(`click`,Ce,T),G(`click`,we,E),q(e,te),Ge()}var cC={backlog:`#64748b`,pending:`#0ea5e9`,in_progress:`#a855f7`,blocked:`#ef4444`,completed:`#10b981`,canceled:`#94a3b8`},lC={backlog:`pending`,pending:`pending`,in_progress:`in_progress`,blocked:`blocked`,completed:`completed`,canceled:`canceled`},uC=[`#06b6d4`,`#f59e0b`,`#ec4899`,`#10b981`,`#3b82f6`,`#f97316`,`#14b8a6`,`#e11d48`,`#8b5cf6`,`#84cc16`],dC=7,fC=22,pC=28;function mC(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return uC[t%uC.length]}function hC(e,t){let n=Math.min(148,Math.floor(e*.155)),r=10+n+8,i=e-r-10,a=t-20,o=Math.floor((a-8)*.48),s=a-o-8,c=Math.floor(i*.29),l=Math.floor(i*.38),u=i-c-l-16,d=Math.floor(i*.46),f=i-d-8;return[{id:`idle`,label:`Lobby`,x:10,y:10,w:n,h:a,color:`#8b5cf6`},{id:`pending`,label:`Inbox`,x:r,y:10,w:c,h:o,color:`#0ea5e9`},{id:`in_progress`,label:`Workspace`,x:r+c+8,y:10,w:l,h:o,color:`#a855f7`},{id:`blocked`,label:`Issues`,x:r+c+8+l+8,y:10,w:u,h:o,color:`#ef4444`},{id:`completed`,label:`Done`,x:r,y:10+o+8,w:d,h:s,color:`#10b981`},{id:`canceled`,label:`Archive`,x:r+d+8,y:10+o+8,w:f,h:s,color:`#94a3b8`}]}function gC(e,t){let n=new Map(t.map(e=>[e.id,e])),r=new Map;t.forEach(e=>r.set(e.id,[]));for(let t of e){let e=lC[t.status]??`pending`,n=r.get(e);n.length<dC&&n.push(t)}let i=new Map;for(let[e,t]of r){let r=n.get(e);if(!r||t.length===0)continue;let a=r.w-fC*2,o=r.h-fC-pC,s=Math.max(1,Math.floor(a/58)),c=Math.ceil(t.length/s),l=a/s,u=Math.min(70,o/c);t.forEach((e,t)=>{let n=t%s,a=Math.floor(t/s);i.set(e.id,{x:r.x+fC+n*l+l/2,y:r.y+pC+a*u+u/2})})}return i}function _C(e,t,n,r,i){let a=hC(i.canvasWidth,i.canvasHeight),o=gC(e,a),s=a.find(e=>e.id===`idle`),c={agents:new Map,tasks:new Map,handoffs:[]};for(let t of e){let e=o.get(t.id);if(!e)continue;let n=r?.tasks.get(t.id);c.tasks.set(t.id,{id:t.id,taskCode:t.task_code,title:t.title,repo:t.repo,status:t.status,priority:t.priority??3,x:n?.x??e.x,y:n?.y??e.y,claimedByAgentId:t.coordination?.active_claim_agent??null,hasPendingHandoff:(t.coordination?.pending_handoff_count??0)>0})}let l=new Map;for(let e of t){l.has(e.agent)||l.set(e.agent,{tasks:new Set,role:e.role,repos:new Set});let t=l.get(e.agent);t.tasks.add(e.task_id),t.repos.add(e.repo)}for(let t of e){let e=t.coordination?.active_claim_agent;if(!e)continue;l.has(e)||l.set(e,{tasks:new Set,role:t.coordination?.active_claim_role??`agent`,repos:new Set});let n=l.get(e);n.tasks.add(t.id),n.repos.add(t.repo)}Array.from(l.keys()).forEach((e,t)=>{let{tasks:n,role:i,repos:a}=l.get(e),o=r?.agents.get(e),u=s.x+s.w/2+(t%3-1)*30,d=s.y+s.h/2+(Math.floor(t/3)-1)*30,f=Array.from(n).find(e=>c.tasks.has(e)),p=f?c.tasks.get(f):null,m=p?p.x+20:u,h=p?p.y-18:d;c.agents.set(e,{id:e,name:e,role:i,color:mC(e),x:o?.x??u,y:o?.y??d,targetX:m,targetY:h,vx:o?.vx??0,vy:o?.vy??0,walkPhase:o?.walkPhase??0,facing:o?.facing??`down`,state:n.size>0?`processing`:`idle`,claimedTaskIds:Array.from(n),repos:Array.from(a)})});for(let e of n)e.status===`pending`&&c.handoffs.push({id:e.id,fromAgentId:e.from_agent,toAgentId:e.to_agent,taskId:e.task_id,summary:e.summary});return c}function vC(e){return e?.structuredContent??null}function yC(e,t,n){let r=Object.fromEntries(e.map((e,n)=>[e,t[n]]));return{id:String(r.id??``),repo:n,from_agent:String(r.from_agent??``),to_agent:r.to_agent?String(r.to_agent):null,task_id:r.task_id?String(r.task_id):null,task_code:r.task_code?String(r.task_code):null,summary:String(r.summary??``),context:r.context??{},status:String(r.status??`pending`),created_at:String(r.created_at??``),updated_at:String(r.updated_at??r.created_at??``),expires_at:r.expires_at?String(r.expires_at):null}}function bC(){let e=M({scene:null,loading:!1,error:null,lastUpdated:0,repoCount:0}),t=null,n=!1,r=null;async function i(){if(n||!r)return;let t=N(La).map(e=>e.repo);if(t.length===0){e.update(e=>({...e,loading:!1}));return}n=!0;try{let n=await Promise.allSettled(t.map(e=>Promise.allSettled([Q.tasks({repo:e,status:`in_progress`,pageSize:10}),Q.tasks({repo:e,status:`pending`,pageSize:8}),Q.tasks({repo:e,status:`blocked`,pageSize:4}),Q.coordinationClaims({repo:e,active_only:!0,pageSize:50}),Q.callTool(`handoff-list`,{repo:e,status:`pending`,limit:10,structured:!0})]))),i=[],a=[],o=[];t.forEach((e,t)=>{let r=n[t];if(r.status===`rejected`)return;let[s,c,l,u,d]=r.value;if(s.status===`fulfilled`&&i.push(...s.value.tasks??[]),c.status===`fulfilled`&&i.push(...c.value.tasks??[]),l.status===`fulfilled`&&i.push(...l.value.tasks??[]),u.status===`fulfilled`&&a.push(...u.value.claims??[]),d.status===`fulfilled`){let t=vC(d.value),n=t?.handoffs?.columns??[],r=t?.handoffs?.rows??[];o.push(...r.map(t=>yC(n,t,e)))}});let s=Array.from(new Map(i.map(e=>[e.id,e])).values());e.update(e=>({...e,scene:_C(s,a,o,e.scene,r),loading:!1,error:null,lastUpdated:Date.now(),repoCount:t.length}))}catch(t){e.update(e=>({...e,loading:!1,error:t instanceof Error?t.message:`Failed to load arena data`}))}finally{n=!1}}function a(e){r=e}function o(n){r=n,e.update(e=>({...e,loading:!0})),i(),t!==null&&clearInterval(t),t=setInterval(()=>void i(),2500)}function s(){t!==null&&(clearInterval(t),t=null),n=!1}return{subscribe:e.subscribe,start:o,stop:s,setLayout:a,refresh:i}}var xC=85,SC=50,CC=6,wC=[2800,5e3],TC=[600,1600];function EC(e){let t=parseInt(e.replace(`#`,``),16);return[t>>16&255,t>>8&255,t&255]}function DC(e,t){let[n,r,i]=EC(e);return`rgb(${Math.min(255,n+t)},${Math.min(255,r+t)},${Math.min(255,i+t)})`}function OC(e,t){let[n,r,i]=EC(e);return`rgb(${Math.max(0,n-t)},${Math.max(0,r-t)},${Math.max(0,i-t)})`}function kC(e,t){let[n,r,i]=EC(e);return`rgba(${n},${r},${i},${t})`}function AC(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t}function jC(e,t){return Math.abs(Math.sin(e*127.1+t*311.7)*43758.5453)%1}function MC(e,t,n,r,i,a){a=Math.min(a,r/2,i/2),e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.arcTo(t+r,n,t+r,n+a,a),e.lineTo(t+r,n+i-a),e.arcTo(t+r,n+i,t+r-a,n+i,a),e.lineTo(t+a,n+i),e.arcTo(t,n+i,t,n+i-a,a),e.lineTo(t,n+a),e.arcTo(t,n,t+a,n,a),e.closePath()}var NC=[`#1a0a00`,`#2d1a00`,`#0f0f0f`,`#4a2d00`,`#8B4513`,`#d4a800`,`#c0392b`,`#7b2d8b`,`#1a3a5c`,`#2d4a1a`],PC=[`#f5c89a`,`#e8a870`,`#d4875a`,`#c06840`,`#8B5e3c`,`#6b3d28`],FC=[`#1e3a5f`,`#2d4a1a`,`#3d2a1a`,`#2a1a3d`,`#1a3d3d`,`#3d1a2a`,`#2a2a3d`],IC=class{canvas;ctx;scene=null;layout=null;isDark=!1;hoveredId=null;rafId=0;ts=0;prevTs=0;wander=new Map;constructor(e){this.canvas=e,this.ctx=e.getContext(`2d`)}update(e,t,n){this.scene=e,this.layout=t,this.isDark=n}setHovered(e){this.hoveredId=e}start(){this.rafId=requestAnimationFrame(this.loop)}stop(){cancelAnimationFrame(this.rafId)}hitTestAgent(e,t){if(!this.scene)return null;for(let n of this.scene.agents.values()){let r=e-n.x,i=t-n.y;if(r*r+i*i<=196)return n.id}return null}loop=e=>{let t=Math.min((e-this.prevTs)/1e3,.05);if(this.prevTs=e,this.ts=e,this.scene&&this.layout){let n=hC(this.layout.canvasWidth,this.layout.canvasHeight).find(e=>e.id===`idle`);this.updateAgents(t,n,e)}this.render(),this.rafId=requestAnimationFrame(this.loop)};updateAgents(e,t,n){if(this.scene)for(let r of this.scene.agents.values()){if(r.state===`idle`){let e=this.wander.get(r.id);if(e||(e={nextPickAt:n},this.wander.set(r.id,e)),n>=e.nextPickAt){r.targetX=t.x+22+Math.random()*(t.w-44),r.targetY=t.y+26+22+Math.random()*(t.h-26-44);let i=TC[0]+Math.random()*(TC[1]-TC[0]),a=wC[0]+Math.random()*(wC[1]-wC[0]);e.nextPickAt=n+i+a}}else this.wander.delete(r.id);let i=r.targetX-r.x,a=r.targetY-r.y,o=Math.hypot(i,a);if(o<CC)r.vx*=.75,r.vy*=.75,Math.abs(r.vx)<.5&&(r.vx=0),Math.abs(r.vy)<.5&&(r.vy=0);else{let e=r.state===`idle`?SC:xC,t=o<50?o/50*e+8:e;r.vx+=(i/o*t-r.vx)*.1,r.vy+=(a/o*t-r.vy)*.1}r.x+=r.vx*e,r.y+=r.vy*e;let s=Math.hypot(r.vx,r.vy);s>5?(r.walkPhase=(r.walkPhase+e*s*.07)%(Math.PI*2),r.facing=Math.abs(r.vx)>Math.abs(r.vy)?r.vx>0?`right`:`left`:r.vy>0?`down`:`up`):r.walkPhase=r.walkPhase>.05?r.walkPhase*.85:0}}render(){let{canvas:e,ctx:t,scene:n,layout:r,isDark:i,ts:a}=this;if(!r)return;let o=hC(r.canvasWidth,r.canvasHeight);t.clearRect(0,0,e.width,e.height),this.drawGlobalFloor(i);for(let e of o)this.drawRoom(e,i);if(!n)return;let s=Array.from(n.tasks.values()).sort((e,t)=>e.y-t.y);for(let e of s)this.drawWorkstation(e,i,a);this.drawClaimLinks(n,a),this.drawHandoffBeams(n,a);let c=Array.from(n.agents.values()).sort((e,t)=>e.y-t.y||(e.id===this.hoveredId?1:-1));for(let e of c)this.drawCharacter(e,i,a)}drawGlobalFloor(e){let{ctx:t,canvas:n}=this;t.fillStyle=e?`#0a0e1a`:`#dde3ed`,t.fillRect(0,0,n.width,n.height),t.strokeStyle=e?`rgba(255,255,255,0.02)`:`rgba(0,0,0,0.03)`,t.lineWidth=.5;for(let e=0;e<n.width;e+=24)t.beginPath(),t.moveTo(e,0),t.lineTo(e,n.height),t.stroke();for(let e=0;e<n.height;e+=24)t.beginPath(),t.moveTo(0,e),t.lineTo(n.width,e),t.stroke()}drawRoom(e,t){let{ctx:n}=this,{x:r,y:i,w:a,h:o,color:s,id:c}=e;switch(n.save(),MC(n,r,i,a,o,10),n.clip(),c){case`idle`:this.drawCheckerFloor(n,r,i,a,o,t);break;case`in_progress`:this.drawCarpetFloor(n,r,i,a,o,s,t);break;case`blocked`:this.drawCrackedTileFloor(n,r,i,a,o,t);break;case`completed`:this.drawCleanTileFloor(n,r,i,a,o,t);break;case`canceled`:this.drawConcreteFloor(n,r,i,a,o,t);break;default:this.drawWoodPlankFloor(n,r,i,a,o,t);break}let l=r+a/2,u=i+o*.35,d=n.createRadialGradient(l,u,0,l,u,Math.max(a,o)*.85);d.addColorStop(0,kC(s,t?.12:.08)),d.addColorStop(1,`rgba(0,0,0,0)`),n.fillStyle=d,n.fillRect(r,i,a,o),n.restore(),this.drawWall(n,r,i,a,t,s),n.strokeStyle=kC(s,t?.45:.35),n.lineWidth=1.5,MC(n,r,i,a,o,10),n.stroke(),this.drawRoomDecor(n,e,t),this.drawZoneLabel(n,e,t)}drawCheckerFloor(e,t,n,r,i,a){let o=a?`#1a1f2e`:`#e8e4dc`,s=a?`#141824`:`#d4cfc6`;e.fillStyle=o,e.fillRect(t,n,r,i);for(let a=Math.floor(t/20)*20;a<t+r;a+=20)for(let t=Math.floor(n/20)*20;t<n+i;t+=20)Math.round(a/20)+Math.round(t/20)&1||(e.fillStyle=s,e.fillRect(a,t,20,20));e.strokeStyle=a?`rgba(0,0,0,0.3)`:`rgba(0,0,0,0.08)`,e.lineWidth=.75;for(let a=Math.floor(t/20)*20;a<=t+r;a+=20)e.beginPath(),e.moveTo(a,n),e.lineTo(a,n+i),e.stroke();for(let a=Math.floor(n/20)*20;a<=n+i;a+=20)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawWoodPlankFloor(e,t,n,r,i,a){let o=a?30:180,s=a?22:140,c=a?12:80;e.fillStyle=`rgb(${o},${s},${c})`,e.fillRect(t,n,r,i);for(let l=Math.floor(n/9)*9;l<n+i;l+=9){let n=Math.round(l/9),i=(jC(n,0)*30-15)*(a?.8:.6);e.fillStyle=`rgb(${Math.round(Math.min(255,Math.max(0,o+i)))},${Math.round(Math.min(255,Math.max(0,s+i)))},${Math.round(Math.min(255,Math.max(0,c+i)))})`,e.fillRect(t,l,r,9),e.strokeStyle=a?`rgba(0,0,0,0.2)`:`rgba(0,0,0,0.07)`,e.lineWidth=.5,e.beginPath(),e.moveTo(t,l),e.lineTo(t+r,l),e.stroke();let u=n%2*55+jC(n,1)*40;for(let i=t+u;i<t+r;i+=80+jC(n,i)*20)e.beginPath(),e.moveTo(i,l),e.lineTo(i,l+9),e.stroke()}}drawCarpetFloor(e,t,n,r,i,a,o){e.fillStyle=o?`#100d18`:`#1a1535`,e.fillRect(t,n,r,i),e.strokeStyle=kC(a,.06),e.lineWidth=1;for(let a=-i;a<r+i;a+=8)e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+a+i,n+i),e.stroke();e.strokeStyle=o?`rgba(255,255,255,0.025)`:`rgba(255,255,255,0.04)`,e.lineWidth=.5;for(let a=t;a<t+r;a+=12)e.beginPath(),e.moveTo(a,n),e.lineTo(a,n+i),e.stroke();for(let a=n;a<n+i;a+=12)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawCrackedTileFloor(e,t,n,r,i,a){e.fillStyle=a?`#1c1410`:`#c8b89a`,e.fillRect(t,n,r,i);for(let o=Math.floor(t/18)*18;o<t+r;o+=18)for(let t=Math.floor(n/18)*18;t<n+i;t+=18){let n=jC(Math.round(o/18),Math.round(t/18)),r=(n*30-15)*(a?.7:.5);e.fillStyle=a?`rgba(255,${100+r},${50+r},0.04)`:`rgba(180,${140+r},${100+r},0.3)`,e.fillRect(o,t,18,18),n>.85&&(e.strokeStyle=a?`rgba(0,0,0,0.6)`:`rgba(100,80,60,0.5)`,e.lineWidth=.75,e.beginPath(),e.moveTo(o+n*18,t+2),e.lineTo(o+18/2+n*5,t+18/2),e.lineTo(o+18*.8,t+18-2),e.stroke())}e.strokeStyle=a?`rgba(0,0,0,0.5)`:`rgba(0,0,0,0.12)`,e.lineWidth=1;for(let a=Math.floor(t/18)*18;a<=t+r;a+=18)e.beginPath(),e.moveTo(a,n),e.lineTo(a,n+i),e.stroke();for(let a=Math.floor(n/18)*18;a<=n+i;a+=18)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawCleanTileFloor(e,t,n,r,i,a){let o=a?`#1a2530`:`#f0f4f8`,s=a?`#1f2d3a`:`#e8eef4`;e.fillStyle=o,e.fillRect(t,n,r,i);for(let o=Math.floor(t/22)*22;o<t+r;o+=22)for(let t=Math.floor(n/22)*22;t<n+i;t+=22)Math.round(o/22)+Math.round(t/22)&1||(e.fillStyle=s,e.fillRect(o+1,t+1,20,20),e.fillStyle=a?`rgba(255,255,255,0.04)`:`rgba(255,255,255,0.6)`,e.fillRect(o+3,t+3,5,5));e.strokeStyle=a?`rgba(255,255,255,0.04)`:`rgba(0,0,0,0.06)`,e.lineWidth=.75;for(let a=Math.floor(t/22)*22;a<=t+r;a+=22)e.beginPath(),e.moveTo(a,n),e.lineTo(a,n+i),e.stroke();for(let a=Math.floor(n/22)*22;a<=n+i;a+=22)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawConcreteFloor(e,t,n,r,i,a){e.fillStyle=a?`#141418`:`#b8bec8`,e.fillRect(t,n,r,i),e.strokeStyle=a?`rgba(255,255,255,0.03)`:`rgba(255,255,255,0.15)`,e.lineWidth=1;for(let a=n;a<n+i;a+=4)jC(0,Math.round(a))>.5&&(e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke());e.strokeStyle=a?`rgba(0,0,0,0.4)`:`rgba(0,0,0,0.1)`,e.lineWidth=1.5;for(let a=n+(80-(n%80||80));a<n+i;a+=80)e.beginPath(),e.moveTo(t,a),e.lineTo(t+r,a),e.stroke()}drawWall(e,t,n,r,i,a){e.fillStyle=i?`#1c2130`:`#c4cad6`,MC(e,t,n,r,11,0),e.fill(),e.strokeStyle=i?`rgba(255,255,255,0.05)`:`rgba(0,0,0,0.06)`,e.lineWidth=.75;for(let i=t+24;i<t+r;i+=24)e.beginPath(),e.moveTo(i,n),e.lineTo(i,n+11),e.stroke();e.fillStyle=kC(a,.4),e.fillRect(t,n,r,2.5);let o=e.createLinearGradient(t,n+11,t,n+11+8);o.addColorStop(0,`rgba(0,0,0,0.28)`),o.addColorStop(1,`rgba(0,0,0,0)`),e.fillStyle=o,e.fillRect(t,n+11,r,8),e.fillStyle=i?`#253040`:`#b8bfc9`,e.fillRect(t,n,6,11),e.fillRect(t+r-6,n,6,11)}drawZoneLabel(e,t,n){let{x:r,y:i,w:a,color:o,label:s}=t,c=Math.min(a-16,92),l=r+9,u=i+3;e.fillStyle=kC(o,n?.25:.18),MC(e,l,u,c,16,5),e.fill(),e.strokeStyle=kC(o,.6),e.lineWidth=.75,MC(e,l,u,c,16,5),e.stroke(),e.fillStyle=o,e.font=`bold 8px system-ui,sans-serif`,e.textAlign=`left`,e.textBaseline=`middle`,e.fillText(s.toUpperCase(),l+6,u+16/2)}drawRoomDecor(e,t,n){let{x:r,y:i,w:a,h:o,id:s}=t;switch(s){case`idle`:this.decorLobby(e,r,i,a,o,n);break;case`pending`:this.decorInbox(e,r,i,a,o,n);break;case`in_progress`:this.decorWorkspace(e,r,i,a,o,n);break;case`blocked`:this.decorIssues(e,r,i,a,o,n);break;case`completed`:this.decorDone(e,r,i,a,o,n);break;case`canceled`:this.decorArchive(e,r,i,a,o,n);break}}decorLobby(e,t,n,r,i,a){let o=t+r/2-28,s=n+i-55;this.drawSofa(e,o,s,56,a),this.drawCoffeeTable(e,t+r/2-14,n+i-32,a),this.drawPotPlant(e,t+8,n+i-18,a),this.drawPotPlant(e,t+r-18,n+i-18,a),this.drawPotPlant(e,t+8,n+28,a);let c=Math.min(r-20,70);this.drawReceptionDesk(e,t+r/2-c/2,n+24,c,a),this.drawCeilingLamp(e,t+r/2,n+14,a,this.ts)}decorInbox(e,t,n,r,i,a){this.drawLetterSorter(e,t+r-28,n+20,a),this.drawClock(e,t+18,n+20,a,this.ts)}decorWorkspace(e,t,n,r,i,a){this.drawPowerStrip(e,t+12,n+i-16,Math.min(r-24,60),a),this.drawWhiteboard(e,t+r-36,n+18,a)}decorIssues(e,t,n,r,i,a){e.save(),e.globalAlpha=.25,e.strokeStyle=`#f59e0b`,e.lineWidth=4,e.setLineDash([8,8]),e.beginPath(),e.moveTo(t,n+i-8),e.lineTo(t+r,n+i-8),e.stroke(),e.setLineDash([]),e.restore(),this.drawHazardSign(e,t+r/2-10,n+16,a)}decorDone(e,t,n,r,i,a){this.drawTrophyShelf(e,t+10,n+20,a,this.ts),this.drawPotPlant(e,t+r-18,n+i-20,a)}decorArchive(e,t,n,r,i,a){for(let i=t+10;i<t+r-22;i+=26)this.drawFilingCabinet(e,i,n+18,a)}drawSofa(e,t,n,r,i){let a=i?`#2d3a4a`:`#8b9eb5`,o=i?`#3a4d62`:`#a8bdd4`,s=i?`#253040`:`#7b8ea5`;e.fillStyle=a,MC(e,t,n,r,8,3),e.fill(),e.fillStyle=o,MC(e,t,n+7,r,10,3),e.fill(),e.fillStyle=s,MC(e,t-4,n,8,17,3),e.fill(),e.fillStyle=s,MC(e,t+r-4,n,8,17,3),e.fill(),e.strokeStyle=i?`rgba(255,255,255,0.07)`:`rgba(0,0,0,0.08)`,e.lineWidth=1,e.beginPath(),e.moveTo(t+r/3,n+7),e.lineTo(t+r/3,n+17),e.stroke(),e.beginPath(),e.moveTo(t+r*2/3,n+7),e.lineTo(t+r*2/3,n+17),e.stroke(),e.fillStyle=i?`#1a2030`:`#6b7c90`,[[t+2,n+15],[t+r-6,n+15]].forEach(([t,n])=>e.fillRect(t,n,4,4))}drawCoffeeTable(e,t,n,r){e.fillStyle=`rgba(0,0,0,0.15)`,e.beginPath(),e.ellipse(t+14,n+6,16,7,0,0,Math.PI*2),e.fill(),e.fillStyle=r?`#2a3545`:`#93a8be`,e.beginPath(),e.ellipse(t+14,n+4,15,6,0,0,Math.PI*2),e.fill(),e.strokeStyle=r?`#3a4a5a`:`#7a96b0`,e.lineWidth=1,e.beginPath(),e.ellipse(t+14,n+4,15,6,0,0,Math.PI*2),e.stroke(),e.fillStyle=`rgba(255,255,255,0.1)`,e.beginPath(),e.ellipse(t+10,n+2,6,2,0,0,Math.PI*2),e.fill()}drawPotPlant(e,t,n,r){e.fillStyle=r?`#4a2d1a`:`#c4825a`,MC(e,t-5,n-8,10,9,2),e.fill(),e.strokeStyle=r?`#6b4028`:`#a0643c`,e.lineWidth=.5,MC(e,t-5,n-8,10,9,2),e.stroke(),e.fillStyle=r?`#2d1a0a`:`#6b4a28`,e.fillRect(t-4,n-9,8,3);let i=[`#16a34a`,`#15803d`,`#22c55e`,`#166534`];[[-5,-18,4,3,-.3],[-2,-20,4,3,0],[3,-18,4,3,.3],[-7,-14,3.5,2.5,-.5],[5,-14,3.5,2.5,.5]].forEach(([r,a,o,s,c],l)=>{e.save(),e.translate(t+r,n+a),e.rotate(c),e.fillStyle=i[l%i.length],e.beginPath(),e.ellipse(0,0,o,s,0,0,Math.PI*2),e.fill(),e.restore()})}drawReceptionDesk(e,t,n,r,i){e.fillStyle=i?`#1a2535`:`#9aafcc`,MC(e,t,n,r,14,4),e.fill(),e.strokeStyle=i?`#2a3a50`:`#7a94b0`,e.lineWidth=1,MC(e,t,n,r,14,4),e.stroke(),e.fillStyle=i?`rgba(255,255,255,0.05)`:`rgba(255,255,255,0.35)`,MC(e,t+2,n+2,r-4,4,2),e.fill(),e.fillStyle=i?`#0f172a`:`#1e2535`,MC(e,t+r/2-8,n-10,16,10,2),e.fill(),e.fillStyle=i?`#1e40af`:`#3b82f6`,MC(e,t+r/2-7,n-9,14,8,1),e.fill()}drawCeilingLamp(e,t,n,r,i){e.strokeStyle=r?`#3a4555`:`#6b7a8a`,e.lineWidth=1,e.beginPath(),e.moveTo(t,n-8),e.lineTo(t,n+2),e.stroke(),e.fillStyle=r?`#2a3040`:`#e8d870`,e.beginPath(),e.moveTo(t-10,n+2),e.lineTo(t+10,n+2),e.lineTo(t+8,n+10),e.lineTo(t-8,n+10),e.closePath(),e.fill();let a=.5+.5*Math.sin(i*.0015),o=e.createRadialGradient(t,n+10,0,t,n+10,35+a*5);o.addColorStop(0,r?`rgba(255,240,180,${.15+a*.05})`:`rgba(255,240,180,${.2+a*.05})`),o.addColorStop(1,`rgba(0,0,0,0)`),e.fillStyle=o,e.fillRect(t-40,n+10,80,45)}drawLetterSorter(e,t,n,r){e.fillStyle=r?`#2d3a50`:`#8faac0`,MC(e,t,n,22,28,2),e.fill(),e.strokeStyle=r?`#3a4a60`:`#7090a8`,e.lineWidth=.75,[0,7,14,21].forEach(r=>{e.beginPath(),e.moveTo(t+1,n+r),e.lineTo(t+21,n+r),e.stroke()}),[`#ef4444`,`#f59e0b`,`#3b82f6`,`#10b981`].forEach((r,i)=>{e.fillStyle=r+`aa`,MC(e,t+2,n+i*7+1,18,5,1),e.fill()})}drawClock(e,t,n,r,i){e.fillStyle=r?`#1e2840`:`#f0f4fc`,e.beginPath(),e.arc(t,n,9,0,Math.PI*2),e.fill(),e.strokeStyle=r?`#3a4a60`:`#8898b0`,e.lineWidth=1,e.beginPath(),e.arc(t,n,9,0,Math.PI*2),e.stroke(),e.strokeStyle=r?`#5a6a80`:`#8898b0`,e.lineWidth=.75;for(let r=0;r<12;r++){let i=r*Math.PI/6,a=7.5;e.beginPath(),e.moveTo(t+Math.cos(i)*a,n+Math.sin(i)*a),e.lineTo(t+Math.cos(i)*(a-2),n+Math.sin(i)*(a-2)),e.stroke()}let a=new Date,o=a.getMinutes()/60*Math.PI*2-Math.PI/2,s=a.getHours()%12/12*Math.PI*2+a.getMinutes()/60*Math.PI/6-Math.PI/2;e.strokeStyle=r?`#e2e8f0`:`#1e2840`,e.lineWidth=1.5,e.lineCap=`round`,e.beginPath(),e.moveTo(t,n),e.lineTo(t+Math.cos(s)*5,n+Math.sin(s)*5),e.stroke(),e.lineWidth=1,e.beginPath(),e.moveTo(t,n),e.lineTo(t+Math.cos(o)*7,n+Math.sin(o)*7),e.stroke(),e.fillStyle=`#ef4444`,e.beginPath(),e.arc(t,n,1.5,0,Math.PI*2),e.fill()}drawPowerStrip(e,t,n,r,i){e.fillStyle=i?`#1a1a1a`:`#2d2d2d`,MC(e,t,n,r,6,3),e.fill(),e.fillStyle=i?`#3a3a3a`:`#4a4a4a`;for(let i=6;i<r-4;i+=10)MC(e,t+i,n+1,6,4,2),e.fill()}drawWhiteboard(e,t,n,r){e.fillStyle=r?`#1e2840`:`#f8fafc`,MC(e,t,n,28,22,2),e.fill(),e.strokeStyle=r?`#3a4a60`:`#b0bac8`,e.lineWidth=1,MC(e,t,n,28,22,2),e.stroke(),[r?`#4ade80`:`#16a34a`,r?`#60a5fa`:`#2563eb`,r?`#f472b6`:`#db2777`].forEach((r,i)=>{e.strokeStyle=r,e.lineWidth=.75,e.beginPath(),e.moveTo(t+3,n+5+i*5),e.lineTo(t+3+8+i*4,n+5+i*5),e.stroke()})}drawHazardSign(e,t,n,r){e.fillStyle=`#f59e0b`,e.beginPath(),e.moveTo(t+10,n),e.lineTo(t+20,n+16),e.lineTo(t,n+16),e.closePath(),e.fill(),e.strokeStyle=`#1a1a1a`,e.lineWidth=1,e.stroke(),e.fillStyle=`#1a1a1a`,e.font=`bold 9px system-ui`,e.textAlign=`center`,e.textBaseline=`bottom`,e.fillText(`!`,t+10,n+15)}drawTrophyShelf(e,t,n,r,i){e.fillStyle=r?`#2d1a08`:`#c4825a`,MC(e,t,n+20,50,5,2),e.fill(),[[`#f59e0b`,t+5],[`#94a3b8`,t+20],[`#cd7f32`,t+35]].forEach(([t,r])=>{e.fillStyle=t,e.beginPath(),e.arc(r+5,n+13,5,Math.PI,0),e.fill(),e.fillRect(r+3,n+13,4,8),MC(e,r,n+20,10,4,2),e.fill()}),e.fillStyle=`rgba(245,158,11,${.08+(.5+.5*Math.sin(i*.002))*.06})`,e.beginPath(),e.ellipse(t+10,n+18,12,6,0,0,Math.PI*2),e.fill()}drawFilingCabinet(e,t,n,r){e.fillStyle=r?`#1e2535`:`#9aaec0`,MC(e,t,n,20,28,2),e.fill(),e.strokeStyle=r?`#2d3a50`:`#7a98b0`,e.lineWidth=.75,MC(e,t,n,20,28,2),e.stroke(),[0,9,18].forEach(i=>{e.strokeStyle=r?`#3a4a60`:`#5a7898`,e.lineWidth=.5,e.beginPath(),e.moveTo(t+1,n+i+8),e.lineTo(t+19,n+i+8),e.stroke(),e.fillStyle=r?`#4a5a70`:`#4a6888`,MC(e,t+7,n+i+3,6,3,2),e.fill()})}drawWorkstation(e,t,n){let{ctx:r}=this,{x:i,y:a,status:o,taskCode:s,title:c,claimedByAgentId:l,hasPendingHandoff:u,repo:d}=e,f=cC[o]??`#64748b`,p=!!l,m=a+14/2+4;r.fillStyle=t?`#1e2d3a`:`#7a98b5`,r.beginPath(),r.arc(i,m+3,8,0,Math.PI*2),r.fill(),r.fillStyle=t?`#162435`:`#6888a8`,r.fillRect(i-6,m-2,12,8),MC(r,i-5,m-9,10,9,2),r.fill(),r.fillStyle=`rgba(0,0,0,0.18)`,MC(r,i-50/2+3,a-14/2+5,50,16,4),r.fill();let h=r.createLinearGradient(i-50/2,a-14/2,i+50/2,a+14/2);h.addColorStop(0,t?`#1e2840`:`#d4dce8`),h.addColorStop(1,t?`#18202e`:`#c0ccd8`),r.fillStyle=h,MC(r,i-50/2,a-14/2,50,14,4),r.fill(),r.strokeStyle=t?`#2d3a50`:`#a0b0c0`,r.lineWidth=1,MC(r,i-50/2,a-14/2,50,14,4),r.stroke(),r.fillStyle=t?`#0d1520`:`#8090a8`,MC(r,i-10,a-2,20,5,2),r.fill(),r.fillStyle=t?`rgba(255,255,255,0.05)`:`rgba(255,255,255,0.3)`,[[i-9,a-1,18,1.5],[i-8,a+1.5,16,1.5]].forEach(([e,t,n,i])=>{for(let a=0;a<5;a++)MC(r,e+n/5*a+.5,t,n/5-1,i,.5),r.fill()}),r.fillStyle=t?`#0d1520`:`#8090a8`,r.beginPath(),r.ellipse(i+14,a,3,4,0,0,Math.PI*2),r.fill(),r.strokeStyle=t?`rgba(255,255,255,0.08)`:`rgba(0,0,0,0.1)`,r.lineWidth=.5,r.beginPath(),r.moveTo(i+14,a-2),r.lineTo(i+14,a+2),r.stroke(),r.fillStyle=t?`#2d3a50`:`#8090a8`,r.fillRect(i-1.5,a-14/2-7,3,8);let g=a-14/2-20-6;if(r.fillStyle=t?`#111827`:`#1f2937`,MC(r,i-34/2-3,g-3,40,26,5),r.fill(),p){let e=r.createLinearGradient(i-34/2,g,i+34/2,g+20);e.addColorStop(0,DC(f,50)),e.addColorStop(1,f),r.fillStyle=e,p&&(r.shadowColor=f+`99`,r.shadowBlur=10)}else r.fillStyle=t?`#0f1929`:`#1e2d3a`;if(MC(r,i-34/2,g,34,20,3),r.fill(),r.shadowBlur=0,r.fillStyle=`rgba(255,255,255,0.12)`,MC(r,i-34/2,g,34,20/2.5,3),r.fill(),p)for(let e=0;e<3;e++){let t=26*(.4+.6*(Math.sin(n*.001+e)*.5+.5));r.fillStyle=`rgba(255,255,255,${.2+e*.1})`,r.fillRect(i-34/2+4,g+3+e*5,t,2)}r.fillStyle=p?`rgba(255,255,255,0.9)`:t?`#374151`:`#6b7280`,r.font=`bold 5.5px monospace`,r.textAlign=`center`,r.textBaseline=`bottom`,r.fillText(`${d.split(`/`).pop()?.slice(0,5)}·${s}`.slice(0,12),i,g+20-1),r.fillStyle=t?`rgba(148,163,184,0.65)`:`rgba(71,85,105,0.65)`,r.font=`5.5px system-ui,sans-serif`,r.textAlign=`center`,r.textBaseline=`top`,r.fillText(c.slice(0,12),i,a+14/2+2),u&&(r.fillStyle=`#f59e0b`,r.shadowColor=`#f59e0b`,r.shadowBlur=6,r.beginPath(),r.arc(i+34/2,g-1,4,0,Math.PI*2),r.fill(),r.shadowBlur=0,r.fillStyle=`#1a1a1a`,r.font=`bold 5px system-ui`,r.textAlign=`center`,r.textBaseline=`middle`,r.fillText(`!`,i+34/2,g-1))}drawClaimLinks(e,t){let{ctx:n}=this;for(let r of e.agents.values())for(let i of r.claimedTaskIds){let a=e.tasks.get(i);if(!a)continue;let o=n.createLinearGradient(r.x,r.y,a.x,a.y);o.addColorStop(0,r.color+`cc`),o.addColorStop(1,(cC[a.status]??`#64748b`)+`44`),n.strokeStyle=o,n.lineWidth=1.5,n.setLineDash([5,5]),n.lineDashOffset=-(t*.022)%10,n.beginPath(),n.moveTo(r.x,r.y),n.lineTo(a.x,a.y),n.stroke()}n.setLineDash([]),n.lineDashOffset=0}drawHandoffBeams(e,t){let{ctx:n}=this;for(let r of e.handoffs){let i=e.agents.get(r.fromAgentId);if(!i)continue;let a,o;if(r.toAgentId){let t=e.agents.get(r.toAgentId);if(!t)continue;a=t.x,o=t.y}else if(r.taskId){let t=e.tasks.get(r.taskId);if(!t)continue;a=t.x,o=t.y}else continue;n.strokeStyle=`#f59e0b88`,n.lineWidth=2.5,n.setLineDash([8,5]),n.lineDashOffset=-(t*.07)%13,n.beginPath(),n.moveTo(i.x,i.y),n.lineTo(a,o),n.stroke(),n.setLineDash([]),n.lineDashOffset=0;let s=t%1600/1600,c=i.x+(a-i.x)*s,l=i.y+(o-i.y)*s;n.fillStyle=`#f59e0b`,n.shadowColor=`#f59e0b`,n.shadowBlur=8,n.beginPath(),n.arc(c,l,4,0,Math.PI*2),n.fill(),n.shadowBlur=0}}drawCharacter(e,t,n){let{ctx:r}=this,{x:i,y:a,color:o,walkPhase:s,facing:c,state:l,name:u,id:d}=e,f=d===this.hoveredId,p=Math.hypot(e.vx,e.vy)>5,m=AC(u),h=NC[m%NC.length],g=FC[(m>>3)%FC.length],_=PC[(m>>6)%PC.length],v=m%5,y=DC(o,30),b=p?Math.sin(s)*5:0,x=p?Math.sin(s+Math.PI)*4:0,S=p?Math.sin(s*2)*1.2:0;r.fillStyle=`rgba(0,0,0,0.22)`,r.beginPath(),r.ellipse(i,a+3,11,5,0,0,Math.PI*2),r.fill(),f&&(r.strokeStyle=o,r.lineWidth=2,r.setLineDash([4,3]),r.beginPath(),r.arc(i,a-24+S,16,0,Math.PI*2),r.stroke(),r.setLineDash([])),r.save(),r.translate(i,a),c===`left`&&r.scale(-1,1),r.fillStyle=g,r.save(),r.translate(-3.5,0),r.rotate(b*.1),MC(r,-2.5,-4,5,9,2),r.fill(),r.restore(),r.save(),r.translate(3.5,0),r.rotate(-b*.1),MC(r,-2.5,-4,5,9,2),r.fill(),r.restore(),r.fillStyle=OC(g,30),r.save(),r.translate(-3.5,b*.5),MC(r,-3,4,7,4,2),r.fill(),r.restore(),r.save(),r.translate(3.5,-b*.5),MC(r,-3,4,7,4,2),r.fill(),r.restore();let C=r.createLinearGradient(-7,-26,7,-13);C.addColorStop(0,y),C.addColorStop(1,o),r.fillStyle=C,MC(r,-7,-26,14,14,3),r.fill(),r.fillStyle=DC(o,45),MC(r,-3.5,-26,7,5,2),r.fill(),r.strokeStyle=`rgba(0,0,0,0.12)`,r.lineWidth=.75,r.beginPath(),r.moveTo(0,-26),r.lineTo(0,-13),r.stroke(),r.save(),r.translate(-9,-24),r.rotate(x*.12);let w=r.createLinearGradient(-2,0,2,10);w.addColorStop(0,y),w.addColorStop(1,o),r.fillStyle=w,MC(r,-2,0,4,9,2),r.fill(),r.fillStyle=_,r.beginPath(),r.ellipse(0,10,2.5,2,0,0,Math.PI*2),r.fill(),r.restore(),r.save(),r.translate(9,-24),r.rotate(-x*.12),r.fillStyle=w,MC(r,-2,0,4,9,2),r.fill(),r.fillStyle=_,r.beginPath(),r.ellipse(0,10,2.5,2,0,0,Math.PI*2),r.fill(),r.restore(),r.fillStyle=_,r.fillRect(-2.5,-28,5,4);let T=-38+S;r.fillStyle=`rgba(0,0,0,0.15)`,r.beginPath(),r.ellipse(1,T+2,9,5,0,0,Math.PI*2),r.fill();let E=r.createRadialGradient(-3,T-3,2,0,T,10);if(E.addColorStop(0,DC(_,15)),E.addColorStop(1,_),r.fillStyle=E,r.beginPath(),r.ellipse(0,T,9,10,0,0,Math.PI*2),r.fill(),this.drawHair(r,0,T,h,v),c!==`up`&&this.drawFace(r,0,T,_,c,p,s),r.restore(),l!==`idle`){let e=l===`processing`?`#a855f7`:l===`claiming`?`#0ea5e9`:`#f59e0b`;r.fillStyle=e,r.shadowColor=e,r.shadowBlur=6,r.beginPath(),r.arc(i+(c===`left`?-8:8),a-47+S,4,0,Math.PI*2),r.fill(),r.shadowBlur=0,r.strokeStyle=`rgba(255,255,255,0.8)`,r.lineWidth=1,r.beginPath(),r.arc(i+(c===`left`?-8:8),a-47+S,4,0,Math.PI*2),r.stroke()}if(l===`processing`){let e=.4+.6*Math.sin(n*.0028);r.strokeStyle=kC(o,.18+e*.14),r.lineWidth=1.5,r.beginPath(),r.arc(i,a-38+S,17+e*4,0,Math.PI*2),r.stroke();for(let e=0;e<3;e++){let t=.3+.7*Math.sin(n*.004+e*1.1);r.fillStyle=kC(o,.5+t*.5),r.beginPath(),r.arc(i+(-5+e*5),a-54+S,1.5+t,0,Math.PI*2),r.fill()}}r.fillStyle=t?`rgba(226,232,240,0.82)`:`rgba(15,23,42,0.7)`,r.font=`7px system-ui,sans-serif`,r.textAlign=`center`,r.textBaseline=`top`;let D=u.length>12?u.slice(0,12)+`…`:u;r.fillText(D,i,a+12)}drawHair(e,t,n,r,i){switch(e.fillStyle=r,i){case 0:e.beginPath(),e.ellipse(t,n,9,10,0,Math.PI,0),e.fill(),e.fillRect(t-9,n-2,3,5),e.fillRect(t+6,n-2,3,5);break;case 1:for(let r=-2;r<=2;r++)e.beginPath(),e.moveTo(t+r*4-2,n-7),e.lineTo(t+r*4,n-14),e.lineTo(t+r*4+2,n-7),e.closePath(),e.fill();e.beginPath(),e.ellipse(t,n-5,9,4,0,0,Math.PI*2),e.fill();break;case 2:e.save(),e.translate(t,n),e.beginPath(),e.moveTo(-9,-2),e.bezierCurveTo(-11,-12,10,-16,11,-6),e.lineTo(9,0),e.bezierCurveTo(4,-8,-4,-10,-9,-2),e.closePath(),e.fill(),e.restore();break;case 3:e.beginPath(),e.arc(t,n,9.5,Math.PI,0),e.fill(),MC(e,t-10,n,4,12,2),e.fill(),MC(e,t+6,n,4,12,2),e.fill();break;case 4:e.fillStyle=OC(r,20),MC(e,t-12,n-6,24,5,2),e.fill(),e.fillStyle=r,MC(e,t-9,n-16,18,12,3),e.fill(),e.fillStyle=DC(r,40),MC(e,t-3,n-11,6,4,1),e.fill();break}}drawFace(e,t,n,r,i,a,o){if(i===`right`)e.fillStyle=`rgba(0,0,0,0.7)`,e.beginPath(),e.ellipse(t+5,n-2,1.5,1.5,0,0,Math.PI*2),e.fill(),e.strokeStyle=`rgba(0,0,0,0.2)`,e.lineWidth=1,e.beginPath(),e.arc(t+9,n,3,-.5,.5),e.stroke();else{e.fillStyle=`white`,e.beginPath(),e.ellipse(t-3,n-2,2.5,2,0,0,Math.PI*2),e.fill(),e.beginPath(),e.ellipse(t+3,n-2,2.5,2,0,0,Math.PI*2),e.fill(),e.fillStyle=`rgba(20,20,80,0.85)`,e.beginPath(),e.arc(t-3,n-2,1.3,0,Math.PI*2),e.fill(),e.beginPath(),e.arc(t+3,n-2,1.3,0,Math.PI*2),e.fill(),e.fillStyle=`white`,e.beginPath(),e.arc(t-3.5,n-2.5,.5,0,Math.PI*2),e.fill(),e.beginPath(),e.arc(t+2.5,n-2.5,.5,0,Math.PI*2),e.fill();let r=a&&Math.sin(o)>.5;e.strokeStyle=`rgba(0,0,0,0.5)`,e.lineWidth=1,r?(e.beginPath(),e.arc(t,n+2,2,0,Math.PI),e.stroke()):(e.beginPath(),e.moveTo(t-2.5,n+2.5),e.quadraticCurveTo(t,n+4,t+2.5,n+2.5),e.stroke())}}},LC=K(`<span class="badge loading svelte-1pykpun"><span class="animate-spin" style="display:inline-block;width:10px;height:10px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%"></span> Loading…</span>`),RC=K(`<span class="badge error svelte-1pykpun"><!> Error</span>`),zC=K(`<span class="badge live svelte-1pykpun"><span class="pulse-dot svelte-1pykpun"></span> Live · <strong> </strong> <strong> </strong> <!></span>`),BC=K(`<div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Repos</span> <span class="tip-repos svelte-1pykpun"> </span></div>`),VC=K(`<div class="agent-tip glass svelte-1pykpun"><div class="tip-name svelte-1pykpun"><span class="tip-dot svelte-1pykpun"></span> </div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Role</span><span> </span></div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">State</span> <span> </span></div> <div class="tip-row svelte-1pykpun"><span class="tip-key svelte-1pykpun">Tasks</span><span> </span></div> <!></div>`),HC=K(`<div class="arena-empty svelte-1pykpun"><!> <div style="font-weight:700;font-size:0.9rem">No active agents</div> <div class="arena-empty-sub svelte-1pykpun">Agents appear here when they claim tasks across your repositories</div></div>`),UC=K(`<div class="arena-root glass card animate-fade-in svelte-1pykpun"><div class="arena-hdr svelte-1pykpun"><div class="arena-hdr-left svelte-1pykpun"><div class="arena-icon svelte-1pykpun"><!></div> <div><div class="section-label" style="margin:0">Agent Arena</div> <div class="arena-sub svelte-1pykpun">Live 2D view · all repositories</div></div></div> <div class="arena-hdr-right svelte-1pykpun"><!></div></div> <div class="arena-wrap svelte-1pykpun"><canvas class="arena-canvas svelte-1pykpun"></canvas> <!> <!></div> <div class="arena-footer svelte-1pykpun"><div class="legend-row svelte-1pykpun"><div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#8b5cf6"></span>Lobby (idle)</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#0ea5e9"></span>Inbox</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#a855f7"></span>Workspace</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#ef4444"></span>Issues</div> <div class="legend-item svelte-1pykpun"><span class="lg-dot svelte-1pykpun" style="background:#10b981"></span>Done</div></div> <div class="legend-row svelte-1pykpun"><div class="legend-item svelte-1pykpun"><span class="lg-bubble svelte-1pykpun"></span>Working agent</div> <div class="legend-item svelte-1pykpun"><span class="lg-dash svelte-1pykpun" style="border-color:#f59e0b"></span>Handoff beam</div> <div class="legend-item svelte-1pykpun"><span class="lg-dash svelte-1pykpun"></span>Claim link</div></div></div></div>`);function WC(e,t){We(t,!1);let n=()=>P(p,`$arena`,i),r=()=>P(Fa,`$theme`,i),[i,a]=pt(),o=F(),s=F(),c=F(),l=F(null),u=F(null),d=F(null),f=F(null),p=bC();function m(){if(!H(s)||!H(c))return;let e=H(c).clientWidth||960;sn(s,H(s).width=e),sn(s,H(s).height=520),I(u,{canvasWidth:e,canvasHeight:520}),H(l)||(I(l,new IC(H(s))),H(l).start()),p.setLayout(H(u)),n().scene&&H(l).update(n().scene,H(u),r()===`dark`)}function h(e){if(!H(l)||!n().scene){I(d,null),I(f,null);return}let t=H(s).getBoundingClientRect(),r=H(s).width/t.width,i=H(s).height/t.height,a=(e.clientX-t.left)*r,o=(e.clientY-t.top)*i,c=H(l).hitTestAgent(a,o);c!==H(d)&&(I(d,c),H(l).setHovered(H(d))),I(f,H(d)?{x:e.clientX-t.left+14,y:e.clientY-t.top-10}:null)}function g(){I(d,null),I(f,null),H(l)?.setHovered(null)}ka(()=>{let e=setTimeout(()=>{m(),H(u)&&p.start(H(u))},60),t=new ResizeObserver(()=>m());return t.observe(H(c)),()=>{clearTimeout(e),t.disconnect()}}),Aa(()=>{p.stop(),H(l)?.stop()}),B(()=>(H(l),n(),H(u),r()),()=>{H(l)&&n().scene&&H(u)&&H(l).update(n().scene,H(u),r()===`dark`)}),B(()=>(H(d),n()),()=>{I(o,H(d)&&n().scene?n().scene.agents.get(H(d))??null:null)}),Un(),Ta();var _=UC(),v=L(_),y=L(v),b=L(y);$(L(b),{name:`cpu`,size:16,strokeWidth:1.75}),j(b),Ne(2),j(y);var x=z(y,2),S=L(x),C=e=>{q(e,LC())},w=e=>{var t=RC();$(L(t),{name:`alert-circle`,size:11}),Ne(),j(t),q(e,t)},T=e=>{var t=zC(),r=z(L(t),2),i=L(r,!0);j(r);var a=z(r),o=z(a),s=L(o,!0);j(o);var c=z(o),l=z(c),u=e=>{var t=ci();V(()=>J(t,` · ${(n(),U(()=>n().repoCount))??``} repos`)),q(e,t)};Y(l,e=>{n(),U(()=>n().repoCount>1)&&e(u)}),j(t),V(()=>{J(i,(n(),U(()=>n().scene.agents.size))),J(a,` ${(n(),U(()=>n().scene.agents.size===1?`agent`:`agents`))??``}
|
|
87
|
+
· `),J(s,(n(),U(()=>n().scene.tasks.size))),J(c,` ${(n(),U(()=>n().scene.tasks.size===1?`task`:`tasks`))??``} `)}),q(e,t)};Y(S,e=>{n(),U(()=>n().loading&&!n().scene)?e(C):(n(),U(()=>n().error)?e(w,1):(n(),U(()=>n().scene)&&e(T,2)))}),j(x),j(v);var E=z(v,2),D=L(E);Sa(D,e=>I(s,e),()=>H(s));var O=z(D,2),k=e=>{var t=VC(),n=L(t),r=L(n),i=z(r);j(n);var a=z(n,2),s=z(L(a)),c=L(s,!0);j(s),j(a);var l=z(a,2),u=z(L(l),2),d=L(u,!0);j(u),j(l);var p=z(l,2),m=z(L(p)),h=L(m,!0);j(m),j(p);var g=z(p,2),_=e=>{var t=BC(),n=z(L(t),2),r=L(n,!0);j(n),j(t),V(e=>J(r,e),[()=>(H(o),U(()=>H(o).repos.map(e=>e.split(`/`).pop()).join(`, `)))]),q(e,t)};Y(g,e=>{H(o),U(()=>H(o).repos.length>0)&&e(_)}),j(t),V(e=>{Ji(t,`left:${(H(f),U(()=>H(f).x))??``}px;top:${(H(f),U(()=>H(f).y))??``}px`),Ji(r,`background:${(H(o),U(()=>H(o).color))??``}`),J(i,` ${(H(o),U(()=>H(o).name))??``}`),J(c,(H(o),U(()=>H(o).role||`—`))),Ki(u,1,`tip-state ${(H(o),U(()=>H(o).state))??``}`,`svelte-1pykpun`),J(d,e),J(h,(H(o),U(()=>H(o).claimedTaskIds.length)))},[()=>(H(o),U(()=>H(o).state.replace(/_/g,` `)))]),q(e,t)};Y(O,e=>{H(o)&&H(f)&&e(k)});var ee=z(O,2),te=e=>{var t=HC();$(L(t),{name:`users`,size:30,strokeWidth:1.2}),Ne(4),j(t),q(e,t)};Y(ee,e=>{n(),U(()=>n().scene&&n().scene.agents.size===0&&!n().loading)&&e(te)}),j(E),Sa(E,e=>I(c,e),()=>H(c)),Ne(2),j(_),V(()=>Ji(D,`cursor:${H(d)?`pointer`:`default`}`)),G(`mousemove`,D,h),G(`mouseleave`,D,g),q(e,_),Ge(),a()}var GC=K(`<div class="repo-focus svelte-1eglegg"><!> <span> </span></div>`),KC=K(`<div class="summary-card svelte-1eglegg"><div class="summary-icon svelte-1eglegg"><!></div> <div class="summary-value svelte-1eglegg"> </div> <div class="summary-label svelte-1eglegg"> </div></div>`),qC=K(`<div class="mini-card svelte-1eglegg"><div class="mini-value svelte-1eglegg"> </div> <div class="mini-label svelte-1eglegg"> </div></div>`),JC=K(`<div class="mini-card svelte-1eglegg"><div class="mini-icon svelte-1eglegg"><!></div> <div class="mini-value svelte-1eglegg"> </div> <div class="mini-label svelte-1eglegg"> </div></div>`),YC=K(`<div class="empty-state svelte-1eglegg">No repository activity yet.</div>`),XC=K(`<span class="stat-chip stale svelte-1eglegg"> </span>`),ZC=K(`<span class="stat-chip stale svelte-1eglegg"> </span>`),QC=K(`<div><div class="repo-main"><div class="repo-name svelte-1eglegg"> </div> <div class="repo-meta svelte-1eglegg"> </div></div> <div class="pressure-pill svelte-1eglegg"> </div> <div class="repo-stats svelte-1eglegg"><span class="stat-chip active svelte-1eglegg"> </span> <span class="stat-chip pending svelte-1eglegg"> </span> <span class="stat-chip blocked svelte-1eglegg"> </span> <span class="stat-chip backlog svelte-1eglegg"> </span></div> <div class="repo-stats svelte-1eglegg"><span class="stat-chip claim svelte-1eglegg"> </span> <span class="stat-chip handoff svelte-1eglegg"> </span> <!> <!></div> <div class="last-activity svelte-1eglegg"> </div></div>`),$C=K(`<div class="repo-table svelte-1eglegg"><div class="repo-table-head svelte-1eglegg"><span>Repository</span> <span>Pressure</span> <span>Workload</span> <span>Coordination</span> <span>Last Activity</span></div> <!></div>`),ew=K(`<div class="global-shell animate-fade-in svelte-1eglegg"><div class="glass card panel-card svelte-1eglegg"><div class="panel-header svelte-1eglegg"><div><div class="section-label">Global Command Center</div> <div class="panel-copy svelte-1eglegg">Cross-repository orchestration view for workload, coordination, and pressure.</div></div> <!></div> <div class="summary-grid svelte-1eglegg"></div></div> <div class="grid-two svelte-1eglegg"><div class="glass card panel-card svelte-1eglegg"><div class="subheading svelte-1eglegg">Coordination</div> <div class="mini-grid svelte-1eglegg"></div></div> <div class="glass card panel-card svelte-1eglegg"><div class="subheading svelte-1eglegg">Throughput</div> <div class="mini-grid svelte-1eglegg"></div></div></div> <div class="glass card panel-card svelte-1eglegg"><div class="panel-header svelte-1eglegg"><div><div class="subheading svelte-1eglegg">Attention Board</div> <div class="panel-copy svelte-1eglegg">Repos sorted by operational pressure: blocked work, active execution, pending queue, and coordination load.</div></div></div> <!></div></div>`);function tw(e,t){We(t,!1);let n=()=>P(Ua,`$globalDashboardStats`,s),r=()=>P(Ra,`$currentRepo`,s),i=()=>P(d,`$summaryCards`,s),a=()=>P(f,`$coordinationCards`,s),o=()=>P(p,`$throughputCards`,s),[s,c]=pt(),l=F(),u=F(),d=st(Ua,e=>[{label:`Repositories`,value:e?.repoCount??0,icon:`database`,color:`#0ea5e9`,tint:`rgba(14,165,233,0.12)`},{label:`Active Repos`,value:e?.activeRepoCount??0,icon:`activity`,color:`#8b5cf6`,tint:`rgba(139,92,246,0.12)`},{label:`Open Tasks`,value:(e?.taskStats?.pending??0)+(e?.taskStats?.in_progress??0)+(e?.taskStats?.blocked??0)+(e?.taskStats?.backlog??0),icon:`clipboard-list`,color:`#f59e0b`,tint:`rgba(245,158,11,0.12)`},{label:`Active Claims`,value:e?.coordination?.activeClaims??0,icon:`check`,color:`#10b981`,tint:`rgba(16,185,129,0.12)`},{label:`Pending Handoffs`,value:e?.coordination?.pendingHandoffs??0,icon:`git-branch`,color:`#6366f1`,tint:`rgba(99,102,241,0.12)`},{label:`Blocked Tasks`,value:e?.taskStats?.blocked??0,icon:`triangle-alert`,color:`#ef4444`,tint:`rgba(239,68,68,0.12)`}]),f=st(Ua,e=>[{label:`Agents Claiming`,value:e?.coordination?.agentsClaiming??0,accent:`#10b981`},{label:`Unassigned Handoffs`,value:e?.coordination?.unassignedHandoffs??0,accent:`#f97316`},{label:`Stale Claims`,value:e?.coordination?.staleClaims??0,accent:`#ef4444`},{label:`Stale Handoffs`,value:e?.coordination?.staleHandoffs??0,accent:`#e11d48`}]),p=st(Ga,e=>[{label:`Today Done`,value:e?.daily?.completed??0,icon:`circle-check`,color:`#10b981`},{label:`Today Added`,value:e?.daily?.added??0,icon:`plus`,color:`#0ea5e9`},{label:`7d Done`,value:e?.weekly?.completed??0,icon:`bar-chart`,color:`#8b5cf6`},{label:`7d Tokens`,value:sl(e?.weekly?.tokens),icon:`cpu`,color:`#f59e0b`}]);function m(e){return e.blockedCount*5+e.inProgressCount*3+e.pendingCount*2+e.pendingHandoffs*2+e.activeClaims}B(()=>n(),()=>{I(l,(n()?.repos??[]).slice(0,8))}),B(()=>(r(),H(l)),()=>{I(u,r()?H(l).find(e=>e.repo===r()):null)}),Un(),Ta();var h=ew(),g=L(h),_=L(g),v=z(L(_),2),y=e=>{var t=GC(),n=L(t);$(n,{name:`pin`,size:12,strokeWidth:2});var i=z(n,2),a=L(i);j(i),j(t),V(()=>J(a,`Focused repo: ${r()??``}`)),q(e,t)};Y(v,e=>{H(u)&&e(y)}),j(_);var b=z(_,2);X(b,5,i,e=>e.label,(e,t)=>{var n=KC(),r=L(n);$(L(r),{get name(){return H(t),U(()=>H(t).icon)},size:14,strokeWidth:1.9}),j(r);var i=z(r,2),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o),j(n),V(()=>{Ji(n,`background:${(H(t),U(()=>H(t).tint))??``};border-color:${(H(t),U(()=>H(t).tint))??``};`),Ji(r,`color:${(H(t),U(()=>H(t).color))??``};`),Ji(i,`color:${(H(t),U(()=>H(t).color))??``};`),J(a,(H(t),U(()=>H(t).value))),J(s,(H(t),U(()=>H(t).label)))}),q(e,n)}),j(b),j(g);var x=z(g,2),S=L(x),C=z(L(S),2);X(C,5,a,e=>e.label,(e,t)=>{var n=qC(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a),j(n),V(()=>{Ji(r,`color:${(H(t),U(()=>H(t).accent))??``};`),J(i,(H(t),U(()=>H(t).value))),J(o,(H(t),U(()=>H(t).label)))}),q(e,n)}),j(C),j(S);var w=z(S,2),T=z(L(w),2);X(T,5,o,e=>e.label,(e,t)=>{var n=JC(),r=L(n);$(L(r),{get name(){return H(t),U(()=>H(t).icon)},size:12,strokeWidth:2}),j(r);var i=z(r,2),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o),j(n),V(()=>{Ji(r,`color:${(H(t),U(()=>H(t).color))??``};`),Ji(i,`color:${(H(t),U(()=>H(t).color))??``};`),J(a,(H(t),U(()=>H(t).value))),J(s,(H(t),U(()=>H(t).label)))}),q(e,n)}),j(T),j(w),j(x);var E=z(x,2),D=z(L(E),2),O=e=>{q(e,YC())},k=e=>{var t=$C();X(z(L(t),2),1,()=>H(l),e=>e.repo,(e,t)=>{var n=QC();let i;var a=L(n),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c);j(c),j(a);var u=z(a,2),d=L(u,!0);j(u);var f=z(u,2),p=L(f),h=L(p);j(p);var g=z(p,2),_=L(g);j(g);var v=z(g,2),y=L(v);j(v);var b=z(v,2),x=L(b);j(b),j(f);var S=z(f,2),C=L(S),w=L(C);j(C);var T=z(C,2),E=L(T);j(T);var D=z(T,2),O=e=>{var n=XC(),r=L(n);j(n),V(()=>J(r,`U ${(H(t),U(()=>H(t).unassignedHandoffs))??``}`)),q(e,n)};Y(D,e=>{H(t),U(()=>H(t).unassignedHandoffs>0)&&e(O)});var k=z(D,2),ee=e=>{var n=ZC(),r=L(n);j(n),V(()=>J(r,`S ${(H(t),U(()=>H(t).staleClaims))??``}`)),q(e,n)};Y(k,e=>{H(t),U(()=>H(t).staleClaims>0)&&e(ee)}),j(S);var te=z(S,2),ne=L(te,!0);j(te),j(n),V((e,a)=>{i=Ki(n,1,`repo-table-row svelte-1eglegg`,null,i,{selected:r()===H(t).repo}),J(s,(H(t),U(()=>H(t).repo))),J(l,`${(H(t),U(()=>H(t).memoryCount))??``} memories • ${(H(t),U(()=>H(t).taskCount))??``} tasks`),J(d,e),J(h,`A ${(H(t),U(()=>H(t).inProgressCount))??``}`),J(_,`P ${(H(t),U(()=>H(t).pendingCount))??``}`),J(y,`B ${(H(t),U(()=>H(t).blockedCount))??``}`),J(x,`Q ${(H(t),U(()=>H(t).backlogCount))??``}`),J(w,`C ${(H(t),U(()=>H(t).activeClaims))??``}`),J(E,`H ${(H(t),U(()=>H(t).pendingHandoffs))??``}`),J(ne,a)},[()=>(H(t),U(()=>m(H(t)))),()=>(H(t),W(ol),U(()=>H(t).lastActivity?ol(H(t).lastActivity):`—`))]),q(e,n)}),j(t),q(e,t)};Y(D,e=>{H(l),U(()=>H(l).length===0)?e(O):e(k,-1)}),j(E),j(h),q(e,h),Ge(),c()}var nw=K(`<div class="drawer-overlay" style="z-index:38;" role="button" tabindex="0" aria-label="Close menu"></div> <div class="mobile-sidebar-shell"><!></div>`,1),rw=K(`<div style="text-align:center;padding:80px 20px;" class="animate-fade-in"><div style="display:inline-flex;width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,rgba(14,165,233,0.15),rgba(99,102,241,0.15));border:1px solid rgba(14,165,233,0.2);align-items:center;justify-content:center;margin-bottom:20px;" class="animate-float"><!></div> <div style="font-size:1.25rem;font-weight:800;color:var(--color-text);margin-bottom:8px;letter-spacing:-0.02em;">No Repository Selected</div> <div style="color:var(--color-text-muted);font-size:0.875rem;">Select a repository from the sidebar to get started.</div></div>`),iw=K(`<button><!> <span> </span></button>`),aw=K(`<div class="glass card hover-glow" style="padding:16px;"><div class="flex items-center justify-between" style="margin-bottom:10px;"><div class="section-label">Selected Repo Pulse</div> <div style="font-size:0.68rem;font-weight:800;color:var(--color-primary);background:rgba(99,102,241,0.08);border:1px solid rgba(99,102,241,0.16);padding:4px 8px;border-radius:999px;"> </div></div> <div style="display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px;" class="repo-pulse-grid svelte-1m88iwd"><div class="glass card" style="padding:16px;"><div class="section-label" style="margin-bottom:10px;">Memory Overview</div> <!></div> <div class="glass card" style="padding:16px;"><div class="section-label" style="margin-bottom:10px;">Task Overview</div> <!></div></div></div> <!>`,1),ow=K(`<div class="glass card hover-glow" style="padding:16px;"><div class="section-label" style="margin-bottom:10px;">Per-Repository Pulse</div> <div style="color:var(--color-text-muted);font-size:0.8rem;">Select a repository from the sidebar to inspect repo-specific memory, task, and execution metrics.</div></div>`),sw=K(`<div style="display:grid;grid-template-columns:1fr;gap:12px;align-items:start;" class="dashboard-grid svelte-1m88iwd"><!> <div style="display:flex;flex-direction:column;gap:12px;"><!></div></div>`),cw=K(`<div class="glass card animate-fade-in" style="height:calc(100vh - 180px);display:flex;flex-direction:column;padding:0;overflow:hidden;border-radius:24px;"><div style="padding:16px 20px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,0.05);"><div class="flex items-center gap-3"><div style="width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));display:flex;align-items:center;justify-content:center;color:white;box-shadow:0 4px 12px var(--glow-primary);"><!></div> <div><div style="font-size:0.95rem;font-weight:800;color:var(--color-text);letter-spacing:-0.01em;">Recent Activity</div> <div style="font-size:0.68rem;color:var(--color-text-muted);font-weight:600;"> </div></div></div></div> <div style="flex:1;overflow-y:auto;padding:24px 32px;background:rgba(0,0,0,0.02);"><!></div></div>`),lw=K(`<div class="glass card hover-glow animate-fade-in"><div class="flex items-center gap-2" style="margin-bottom:16px;"><!> <div class="section-label">Memory Explorer</div></div> <!></div>`),uw=K(`<div class="animate-fade-in"><div class="glass card hover-glow" style="margin-bottom:20px;"><div class="flex items-center gap-2" style="margin-bottom:16px;"><!> <div class="stat-label">Task Overview</div></div> <!></div></div>`),dw=K(`<div class="tabs-wrap"><div class="tab-nav" style="display:inline-flex;"></div></div> <!> <!> <!> <!> <!> <!> <!> <!>`,1),fw=K(`<div class="app-layout"><!> <div><!> <!> <div id="dashboardShell" class="dashboard-shell"><!></div></div></div> <!> <!> <!> <!> <!> <!>`,1);function pw(e,t){We(t,!1);let n=()=>P(Ia,`$activeTab`,s),r=()=>P(g,`$sidebarCollapsed`,s),i=()=>P(f,`$appState`,s),a=()=>P(Ra,`$currentRepo`,s),o=()=>P(ao,`$recentActionsTotalItems`,s),[s,c]=pt(),l=F(),u=F(),d=go({get kanbanBoard(){return H(l)},get memoryList(){return H(u)}}),f={subscribe:d.subscribe,set:d.set,update:d.update},{filteredTools:p,filteredPrompts:m,filteredResources:h,sidebarCollapsed:g,TABS:_}=d;ka(async()=>{if(fo(),await d.loadRepos(),await d.loadHealth(),await d.loadData(),n()===`reference`&&!N(d).capabilities)try{let e=await Q.capabilities();d.update(t=>({...t,capabilities:e}))}catch(e){console.error(`Failed to load capabilities:`,e)}}),Ta();var v=fw();G(`keydown`,hn,function(...e){d.onKeyDown?.apply(this,e)});var y=R(v),b=L(y);Gl(b,{get onRepoSelect(){return d.onRepoSelect}});var x=z(b,2);let S;var C=L(x);iu(C,{get onRefresh(){return d.onRefresh},get onToggleMobileMenu(){return d.toggleMobileMenu}});var w=z(C,2),T=e=>{var t=nw(),n=R(t),r=z(n,2);Gl(L(r),{get onRepoSelect(){return d.onRepoSelect}}),j(r),G(`click`,n,()=>d.toggleMobileMenu()),G(`keydown`,n,e=>e.key===`Escape`&&d.toggleMobileMenu()),q(e,t)};Y(w,e=>{i().mobileMenuOpen&&e(T)});var E=z(w,2),D=L(E),O=e=>{var t=rw(),n=L(t);$(L(n),{name:`brain`,size:32,strokeWidth:1.5,className:``}),j(n),Ne(4),j(t),q(e,t)},k=e=>{var t=dw(),r=R(t),i=L(r);X(i,5,()=>_,e=>e.id,(e,t)=>{var r=iw();let i;var a=L(r);$(a,{get name(){return H(t).icon},size:14,strokeWidth:1.75});var o=z(a,2),s=L(o,!0);j(o),j(r),V(()=>{i=Ki(r,1,`tab-btn`,null,i,{active:n()===H(t).id}),fa(r,`id`,`tab-${H(t).id??``}`),J(s,H(t).label)}),G(`click`,r,()=>d.onTabChange(H(t).id)),q(e,r)}),j(i),j(r);var s=z(r,2),c=e=>{var t=sw(),n=L(t);tw(n,{});var r=z(n,2),i=L(r),o=e=>{var t=aw(),n=R(t),r=L(n),i=z(L(r),2),o=L(i,!0);j(i),j(r);var s=z(r,2),c=L(s);Bu(z(L(c),2),{}),j(c);var l=z(c,2);Ku(z(L(l),2),{}),j(l),j(s),j(n),fy(z(n,2),{}),V(()=>J(o,a())),q(e,t)},s=e=>{q(e,ow())};Y(i,e=>{a()?e(o):e(s,-1)}),j(r),j(t),q(e,t)};Y(s,e=>{n()===`dashboard`&&e(c)});var g=z(s,2),v=e=>{var t=cw(),n=L(t),r=L(n),i=L(r);$(L(i),{name:`activity`,size:18,strokeWidth:2.2}),j(i);var a=z(i,2),s=z(L(a),2),c=L(s);j(s),j(a),j(r),j(n);var l=z(n,2);db(L(l),{get onLoadPage(){return d.loadRecentActions}}),j(l),j(t),V(()=>J(c,`${o()??``} events tracked`)),q(e,t)};Y(g,e=>{n()===`activity`&&e(v)});var y=z(g,2),b=e=>{var t=lw(),n=L(t);$(L(n),{name:`brain`,size:14,strokeWidth:1.75}),Ne(2),j(n),Sa(Ay(z(n,2),{get onMemoryClick(){return d.openMemoryDrawer},get onNewMemory(){return d.openNewMemoryDrawer},onBulkImport:()=>d.openBulkImport(`memories`),$$legacy:!0}),e=>I(u,e),()=>H(u)),j(t),q(e,t)};Y(y,e=>{n()===`memories`&&e(b)});var x=z(y,2),S=e=>{var t=uw(),n=L(t),r=L(n);$(L(r),{name:`columns`,size:14,strokeWidth:1.75}),Ne(2),j(r),Sa(Nu(z(r,2),{get onTaskClick(){return d.openTaskDrawer},onAddTask:()=>d.toggleAddTaskModal(!0),onBulkImport:()=>d.openBulkImport(`tasks`),$$legacy:!0}),e=>I(l,e),()=>H(l)),j(n),j(t),q(e,t)};Y(x,e=>{n()===`tasks`&&e(S)});var C=z(x,2),w=e=>{{let t=Yt(()=>a()||``);zS(e,{get repo(){return H(t)}})}};Y(C,e=>{n()===`standards`&&e(w)});var T=z(C,2),E=e=>{{let t=Yt(()=>a()||``);sC(e,{get repo(){return H(t)}})}};Y(T,e=>{n()===`handoffs`&&e(E)});var D=z(T,2),O=e=>{WC(e,{})};Y(D,e=>{n()===`arena`&&e(O)});var k=z(D,2),ee=e=>{gS(e,{get handler(){return d},get appState(){return f},get filteredTools(){return p},get filteredPrompts(){return m},get filteredResources(){return h}})};Y(k,e=>{n()===`reference`&&e(ee)}),q(e,t)};Y(D,e=>{!a()&&n()!==`dashboard`?e(O):e(k,-1)}),j(E),j(x),j(y);var ee=z(y,2);Hb(ee,{get memory(){return i().selectedMemory},get task(){return i().selectedTask},get open(){return i().drawerOpen},get onClose(){return d.closeDrawer},get onTaskUpdated(){return d.handleTaskUpdated},onTaskDeleted:()=>{a()&&H(l)?.loadTasks(a())}});var te=z(ee,2);ux(te,{get item(){return i().selectedReference},get open(){return i().referenceDrawerOpen},onClose:()=>d.toggleReferenceDrawer(!1)});var ne=z(te,2);kx(ne,{get memory(){return i().memoryDrawerItem},get open(){return i().memoryDrawerOpen},onClose:()=>d.toggleMemoryDrawer(!1),get onSaved(){return d.handleMemorySaved},get onDeleted(){return d.handleMemoryDeleted}});var re=z(ne,2);Yx(re,{get open(){return i().addTaskModalOpen},get newTask(){return i().newTask},onClose:()=>d.toggleAddTaskModal(!1),get onSave(){return d.createTask}});var ie=z(re,2);{let e=Yt(()=>a()||``);Gx(ie,{get repo(){return H(e)},get importTarget(){return i().bulkImportTarget},get isOpen(){return i().bulkImportOpen},$$events:{close:()=>d.toggleBulkImport(!1),success:()=>{i().bulkImportTarget===`memories`&&H(u)?.refresh(),i().bulkImportTarget===`tasks`&&a()&&H(l)?.loadTasks(a())}}})}yS(z(ie,2),{get onNewMemory(){return d.openNewMemoryDrawer},onNewTask:()=>d.toggleAddTaskModal(!0)}),V(()=>S=Ki(x,1,`main-content`,null,S,{"sidebar-collapsed":r()})),q(e,v),Ge(),c()}fi(pw,{target:document.getElementById(`app`)});
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-t_40uQBp.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-IqveMUDr.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="app"></div>
|
package/dist/dashboard/server.js
CHANGED
package/dist/mcp/server.js
CHANGED