chapterhouse 0.11.0 → 0.11.1

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.
@@ -7,4 +7,4 @@ pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5p
7
7
 
8
8
  Outdated base version: https://github.com/primer/github-syntax-dark
9
9
  Current colors taken from GitHub's CSS
10
- */.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--spice-50: #FBF5E8;--spice-100: #F4E8CC;--spice-200: #E8D2A0;--spice-300: #D4B26E;--spice-400: #BE8A3F;--spice-500: #CD7F32;--spice-600: #A0522D;--spice-700: #7A3D1F;--spice-800: #4E2611;--spice-900: #2A1408;--stone-50: #EFEAE0;--stone-100: #C9C0AE;--stone-200: #8E8472;--stone-300: #5F574A;--stone-400: #3A3327;--stone-500: #211A11;--stone-600: #15100A;--stone-700: #0B0805;--ibad-300: #6FA4C7;--ibad-500: #2C5F8D;--ibad-700: #163A5C;--ibad-900: #0A1E33;--gold-300: #E8C76B;--gold-500: #D4AF37;--gold-700: #9E7E1F;--signal-success: #6B7A3A;--signal-warning: #C28B2A;--signal-danger: #8C2A1F;--bg: var(--spice-50);--bg-raised: #F7EFD9;--bg-sunk: #EEE2C2;--bg-inverse: var(--stone-600);--fg-1: var(--stone-600);--fg-2: var(--stone-400);--fg-3: var(--stone-300);--fg-4: var(--stone-200);--fg-on-dark: var(--spice-50);--fg-on-spice: var(--stone-600);--accent: var(--spice-500);--accent-hover: var(--spice-600);--accent-pressed: var(--spice-700);--accent-soft: rgba(205,127,50,.12);--emphasis: var(--gold-500);--sacred: var(--ibad-500);--rule-1: rgba(33,26,17,.16);--rule-2: rgba(33,26,17,.08);--rule-strong: var(--stone-400);--rule-bronze: rgba(205,127,50,.45);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--spice-500);--selection-bg: rgba(205,127,50,.25);--font-display: "Cinzel", "Trajan Pro", "Cormorant Garamond", Georgia, serif;--font-serif: "Cormorant Garamond", "EB Garamond", Georgia, "Times New Roman", serif;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--t-display-1: 72px;--t-display-2: 56px;--t-display-3: 40px;--t-h1: 32px;--t-h2: 24px;--t-h3: 19px;--t-body: 16px;--t-body-sm: 14px;--t-meta: 12px;--t-micro: 10.5px;--lh-tight: 1.05;--lh-snug: 1.2;--lh-normal: 1.5;--lh-loose: 1.7;--tr-display: .14em;--tr-label: .18em;--tr-meta: .08em;--tr-body: .005em;--w-regular: 400;--w-medium: 500;--w-semibold: 600;--w-bold: 700;--s-0: 0;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--s-10: 128px;--r-0: 0;--r-1: 2px;--r-2: 4px;--r-3: 8px;--r-pill: 999px;--shadow-1: 0 1px 0 rgba(33,26,17,.04), 0 1px 2px rgba(33,26,17,.06);--shadow-2: 0 2px 4px rgba(33,26,17,.06), 0 8px 24px rgba(33,26,17,.08);--shadow-3: 0 4px 12px rgba(33,26,17,.1), 0 24px 56px rgba(33,26,17,.14);--shadow-inset: inset 0 1px 0 rgba(255,248,232,.6), inset 0 -1px 0 rgba(33,26,17,.08);--shadow-bronze-glow: 0 0 0 1px rgba(205,127,50,.35), 0 0 24px rgba(205,127,50,.18);--ease-prima: cubic-bezier(.22, .61, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--dur-fast: .14s;--dur-base: .24s;--dur-slow: .42s;--dur-veil: .68s}[data-theme=night]{--bg: var(--stone-600);--bg-raised: var(--stone-500);--bg-sunk: var(--stone-700);--bg-inverse: var(--spice-50);--fg-1: #EFE7D2;--fg-2: #C9BFA6;--fg-3: #8E8472;--fg-4: #5F574A;--rule-1: rgba(244,232,204,.14);--rule-2: rgba(244,232,204,.06);--rule-strong: var(--spice-300);--accent: var(--spice-400);--accent-hover: var(--spice-300);--accent-pressed: var(--spice-500);--accent-soft: rgba(212,178,110,.16)}html,body{background:var(--bg);color:var(--fg-1);font-family:var(--font-serif);font-size:var(--t-body);line-height:var(--lh-normal);letter-spacing:var(--tr-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--selection-bg);color:var(--fg-1)}h1,h2,h3{font-family:var(--font-display);font-weight:var(--w-semibold);color:var(--fg-1);text-transform:uppercase;letter-spacing:var(--tr-display);line-height:var(--lh-tight);margin:0 0 var(--s-4) 0}h1{font-size:var(--t-h1)}h2{font-size:var(--t-h2)}h3{font-size:var(--t-h3);letter-spacing:var(--tr-label);font-weight:var(--w-medium)}h4,h5,h6{font-family:var(--font-sans);font-weight:var(--w-semibold);letter-spacing:var(--tr-meta);text-transform:uppercase;font-size:var(--t-meta);color:var(--fg-2);margin:0 0 var(--s-2) 0}p{font-family:var(--font-serif);font-size:var(--t-body);line-height:var(--lh-normal);color:var(--fg-1);margin:0 0 var(--s-4) 0;text-wrap:pretty}.meta{font-family:var(--font-sans);font-size:var(--t-meta);text-transform:uppercase;letter-spacing:var(--tr-meta);color:var(--fg-3)}code,pre,kbd,samp{font-family:var(--font-mono);font-size:.92em;color:var(--fg-1)}code{background:var(--bg-sunk);padding:.08em .4em;border-radius:var(--r-1);border:1px solid var(--rule-2)}blockquote{font-family:var(--font-serif);font-style:italic;font-size:var(--t-h3);line-height:var(--lh-snug);color:var(--fg-1);border-left:2px solid var(--accent);padding:var(--s-2) var(--s-5);margin:var(--s-5) 0}blockquote cite{display:block;margin-top:var(--s-3);font-style:normal;font-family:var(--font-sans);font-size:var(--t-meta);text-transform:uppercase;letter-spacing:var(--tr-label);color:var(--fg-3)}a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--rule-bronze);transition:color var(--dur-fast) var(--ease-prima),border-color var(--dur-fast) var(--ease-prima)}a:hover{color:var(--accent-hover);border-color:var(--accent-hover)}hr{border:0;height:1px;background:var(--rule-1);margin:var(--s-6) 0}.label{font-family:var(--font-sans);font-size:var(--t-micro);text-transform:uppercase;letter-spacing:var(--tr-label);font-weight:var(--w-semibold);color:var(--fg-2)}.display{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tr-display);line-height:var(--lh-tight)}.codex{font-family:var(--font-serif);font-style:italic;color:var(--fg-2)}.sigil--lit{filter:drop-shadow(0 0 6px rgba(232,199,107,.55)) drop-shadow(0 0 14px rgba(205,127,50,.35));animation:sigil-breathe 3.4s ease-in-out infinite}@keyframes sigil-breathe{0%,to{filter:drop-shadow(0 0 6px rgba(232,199,107,.5)) drop-shadow(0 0 14px rgba(205,127,50,.3))}50%{filter:drop-shadow(0 0 8px rgba(232,199,107,.7)) drop-shadow(0 0 22px rgba(205,127,50,.45))}}.sigil--lit-still{filter:drop-shadow(0 0 4px rgba(232,199,107,.5)) drop-shadow(0 0 10px rgba(205,127,50,.3))}.rule-ornate{display:flex;align-items:center;gap:var(--s-3);color:var(--accent);margin:var(--s-6) 0}.rule-ornate:before,.rule-ornate:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--rule-bronze),transparent)}.rule-ornate:before{background:linear-gradient(90deg,transparent,var(--rule-bronze))}.rule-ornate:after{background:linear-gradient(90deg,var(--rule-bronze),transparent)}:root{--bg-elev: var(--bg-raised);--bg-elev-2: var(--bg-sunk);--fg: var(--fg-1);--fg-dim: var(--fg-3);--border: var(--rule-1);--danger: var(--signal-danger);--user-bubble: var(--bg-sunk);--accent-fg: var(--fg-on-spice);--text-muted: var(--fg-3);--panel: var(--bg-raised)}@media (prefers-color-scheme: dark){:root:not([data-theme=day]){--bg: var(--stone-600);--bg-raised: var(--stone-500);--bg-sunk: var(--stone-700);--bg-inverse: var(--spice-50);--fg-1: #EFE7D2;--fg-2: #C9BFA6;--fg-3: #8E8472;--fg-4: #5F574A;--rule-1: rgba(244,232,204,.14);--rule-2: rgba(244,232,204,.06);--rule-strong: var(--spice-300);--accent: var(--spice-400);--accent-hover: var(--spice-300);--accent-pressed: var(--spice-500);--accent-soft: rgba(212,178,110,.16);color-scheme:dark}}[data-theme=night]{--bg: var(--stone-600);--bg-raised: var(--stone-500);--bg-sunk: var(--stone-700);--bg-inverse: var(--spice-50);--fg-1: #EFE7D2;--fg-2: #C9BFA6;--fg-3: #8E8472;--fg-4: #5F574A;--rule-1: rgba(244,232,204,.14);--rule-2: rgba(244,232,204,.06);--rule-strong: var(--spice-300);--accent: var(--spice-400);--accent-hover: var(--spice-300);--accent-pressed: var(--spice-500);--accent-soft: rgba(212,178,110,.16);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg-1);font-family:var(--font-sans);font-size:var(--t-body-sm);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a,.link{color:var(--accent);text-decoration:none}a:hover,.link:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;box-shadow:var(--focus-ring)}code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-sunk);padding:1px 5px;border-radius:var(--r-2);border:1px solid var(--rule-2)}.dim{color:var(--fg-dim)}.small{font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:16px;top:-48px;z-index:10;padding:10px 14px;border-radius:var(--r-2);background:var(--accent);color:var(--fg-on-spice)}.skip-link:focus{top:16px}.layout{display:grid;grid-template-columns:240px 1fr;height:100%}.sidebar{background:var(--bg-raised);border-right:1px solid var(--rule-1);padding:var(--s-4) 0;display:flex;flex-direction:column;overflow:hidden}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 18px 18px;font-family:var(--font-display);font-weight:var(--w-semibold);font-size:14px;letter-spacing:var(--tr-display);text-transform:uppercase;border-bottom:1px solid var(--rule-1);margin-bottom:12px}.sidebar nav{display:flex;flex-direction:column}.channel-rail{flex:1;overflow-y:auto;padding:0 0 var(--s-3)}.sidebar-section-label{padding:var(--s-1) var(--s-5) var(--s-2);color:var(--fg-3);font-family:var(--font-sans);font-size:var(--t-micro);font-weight:var(--w-semibold);letter-spacing:var(--tr-label);text-transform:uppercase}.channel-link{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);width:100%;background:transparent;border:0;border-left:3px solid transparent;color:var(--fg-2);cursor:pointer;padding:var(--s-2) var(--s-4) var(--s-2) calc(var(--s-4) - 3px);text-align:left;font-family:var(--font-sans);font-size:var(--t-body-sm);transition:background var(--dur-fast) var(--ease-prima),border-color var(--dur-fast) var(--ease-prima)}.channel-link:hover{background:var(--accent-soft);color:var(--fg-1)}.channel-link.active{background:var(--accent-soft);border-left-color:var(--accent);color:var(--fg-1)}.channel-link-inner{display:flex;align-items:center;gap:var(--s-2);min-width:0}.channel-link-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-avatar-wrap{width:18px;height:18px;flex-shrink:0;background-color:var(--agent-color, var(--accent));mask-image:var(--avatar-mask, url(/assets/icon-acolyte.svg));-webkit-mask-image:var(--avatar-mask, url(/assets/icon-acolyte.svg));mask-size:contain;-webkit-mask-size:contain;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center}.channel-scope{color:var(--fg-dim);font-size:11px}.sidebar-error{color:var(--danger);padding:4px 18px 0}.btn-open-record{display:flex;align-items:center;gap:var(--s-2);width:calc(100% - var(--s-4) * 2);margin:0 var(--s-4) var(--s-4);padding:var(--s-2) var(--s-4);background:var(--accent-soft);border:1px solid var(--rule-bronze, var(--rule-1));border-radius:var(--r-2);color:var(--accent);font-family:var(--font-sans);font-size:var(--t-meta);font-weight:var(--w-semibold);letter-spacing:var(--tr-meta);cursor:pointer;text-transform:uppercase;transition:background var(--dur-fast) var(--ease-prima),border-color var(--dur-fast) var(--ease-prima)}.btn-open-record:hover{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent)}.sidebar-bottom{margin-top:auto;padding:var(--s-3) var(--s-4);border-top:1px solid var(--rule-1);display:flex;align-items:center;justify-content:space-between}.btn-ways{background:none;border:none;cursor:pointer;color:var(--fg-3);font-size:16px;padding:var(--s-2);border-radius:var(--r-2);display:flex;align-items:center;gap:var(--s-2);transition:color var(--dur-fast) var(--ease-prima);position:relative}.btn-ways:hover{color:var(--fg-1)}.workers-section{padding:0 0 var(--s-3);border-bottom:1px solid var(--rule-1);margin-bottom:var(--s-3)}.workers-toggle{display:flex;align-items:center;gap:var(--s-2);width:100%;background:none;border:none;cursor:pointer;padding:var(--s-1) var(--s-5) var(--s-2);color:var(--fg-3);font-family:var(--font-sans);font-size:var(--t-micro);font-weight:var(--w-semibold);letter-spacing:var(--tr-label);text-transform:uppercase;text-align:left}.workers-toggle:hover{color:var(--fg-2)}.workers-toggle-chevron{display:inline-block;transition:transform var(--dur-fast) var(--ease-prima);font-style:normal}.workers-toggle-chevron--open{transform:rotate(90deg)}.worker-link{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;border-left:3px solid transparent;padding:var(--s-1) var(--s-4) var(--s-1) calc(var(--s-4) - 3px);cursor:pointer;color:var(--fg-2);font-family:var(--font-sans);font-size:var(--t-body-sm);text-align:left}.worker-link:hover{background:var(--accent-soft);color:var(--fg-1)}.worker-status-dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--fg-4);flex-shrink:0}.worker-status-dot--running{background:var(--signal-success)}.worker-status-dot--pending{background:var(--signal-warning)}.nav-link{padding:9px 18px;color:var(--fg);border-left:2px solid transparent}.nav-link:hover{background:var(--bg-elev-2);text-decoration:none}.nav-link.active{background:var(--bg-elev-2);border-left-color:var(--accent);color:var(--fg)}.nav-group{display:flex;flex-direction:column}.nav-group-row{display:flex;align-items:stretch}.nav-group-label{flex:1}.nav-group-toggle{background:none;border:none;cursor:pointer;padding:0 14px 0 4px;color:var(--fg-muted, var(--fg));display:flex;align-items:center;justify-content:center;border-left:2px solid transparent}.nav-group-toggle:hover{background:var(--bg-elev-2)}.nav-chevron{display:inline-block;font-size:18px;line-height:1;transition:transform .18s ease;transform:rotate(0)}.nav-chevron-open{transform:rotate(90deg)}.nav-recents{list-style:none;margin:0;padding:0}.nav-recent-link{display:flex;align-items:baseline;justify-content:space-between;gap:6px;width:100%;background:none;border:none;border-left:2px solid transparent;padding:6px 18px 6px 28px;cursor:pointer;color:var(--fg);text-align:left;font-size:13px}.nav-recent-link:hover{background:var(--bg-elev-2);text-decoration:none;border-left-color:var(--accent)}.nav-recent-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.nav-recent-hint{font-size:11px;flex-shrink:0;opacity:.6}.nav-recents-empty{padding:4px 28px 6px;font-size:12px;margin:0}.main{overflow:hidden;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.app-header-title{font-family:var(--font-display);font-size:var(--t-h3);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--fg-1);margin:0}.app-header-title-row{display:inline-flex;align-items:center;gap:10px}.app-header-user{color:var(--fg-dim);font-size:13px}.mode-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;line-height:1;border:1px solid transparent}.mode-standalone{background:var(--bg-elev-2);border-color:var(--border);color:var(--fg-dim)}.mode-team{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--accent)}.sse-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;line-height:1;border:1px solid transparent}.sse-badge__dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.sse-badge--connected{background:color-mix(in srgb,var(--signal-success) 12%,transparent);border-color:color-mix(in srgb,var(--signal-success) 35%,var(--border));color:var(--signal-success)}.sse-badge--connected .sse-badge__dot{background:var(--signal-success)}.sse-badge--idle{background:color-mix(in srgb,var(--panel) 65%,transparent);border-color:var(--border);color:var(--text-muted)}.sse-badge--idle .sse-badge__dot{background:var(--text-muted)}.sse-badge--reconnecting{background:color-mix(in srgb,var(--signal-warning) 12%,transparent);border-color:color-mix(in srgb,var(--signal-warning) 35%,var(--border));color:var(--signal-warning)}.sse-badge--reconnecting .sse-badge__dot{background:var(--signal-warning);animation:sse-pulse 1.2s ease-in-out infinite}.sse-badge--disconnected{background:color-mix(in srgb,#ef4444 12%,transparent);border-color:color-mix(in srgb,#ef4444 35%,var(--border));color:#b91c1c}.sse-badge--disconnected .sse-badge__dot{background:#ef4444}.sse-badge__reconnect-btn{background:none;border:none;padding:0;margin-left:4px;font-size:12px;font-weight:600;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.sse-badge__reconnect-btn:hover{opacity:.8}@keyframes sse-pulse{0%,to{opacity:1}50%{opacity:.35}}.connection-banner{border:1px solid transparent;border-radius:10px;font-size:13px;font-weight:600;margin-bottom:16px;padding:10px 14px}.connection-banner--reconnecting{background:color-mix(in srgb,#f59e0b 14%,var(--bg-elev));border-color:color-mix(in srgb,#f59e0b 35%,var(--border));color:#fbbf24}.connection-banner--disconnected{background:color-mix(in srgb,#ef4444 14%,var(--bg-elev));border-color:color-mix(in srgb,#ef4444 35%,var(--border));color:#fca5a5}.page-shell{max-width:760px;margin:0 auto;padding:32px}.loading,.empty-state{padding:32px;color:var(--fg-dim)}.empty-state h2{color:var(--fg);margin-top:0;margin-bottom:8px}.empty-state p{margin:0 0 12px}.empty-state-icon{font-size:28px;margin-bottom:8px;line-height:1}.empty-state-action{margin-top:4px}.auth-screen{min-height:100%;display:grid;place-items:center;padding:32px}.auth-card{width:min(420px,100%);background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:24px}.auth-card h1{margin-top:0;margin-bottom:8px}.auth-card p{margin-top:0;margin-bottom:20px;color:var(--fg-dim)}.page{padding:24px 32px;overflow:auto;flex:1;min-width:0}.page-header{margin-bottom:16px}.page-header h1{margin:0 0 4px;font-size:22px}.projects-table-wrap{overflow-x:auto}.projects-table{width:100%;border-collapse:collapse;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;overflow:hidden}.projects-table th,.projects-table td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.projects-table thead th{background:var(--bg-elev-2);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-dim)}.projects-table tbody tr:last-child th,.projects-table tbody tr:last-child td{border-bottom:0}.agents-sort-button{width:100%;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.agents-sort-indicator,.tag-builtin{color:var(--fg-dim)}.tag-custom{color:var(--accent)}.project-detail-backlink{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;font-size:13px}.project-detail-summary{margin:0;color:var(--fg-dim)}.agent-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.agent-detail-summary{margin:0;color:var(--fg-dim)}.agent-detail-banner{margin-bottom:16px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elev);color:var(--fg-dim)}.project-detail-layout{display:grid;gap:16px}.project-detail-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:18px}.project-detail-card h2{margin:0 0 14px;font-size:16px}.project-detail-meta{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:10px 16px;margin:0}.project-detail-meta dt{color:var(--fg-dim);font-weight:600}.project-detail-meta dd{margin:0}.project-detail-actions{display:flex;justify-content:flex-end;margin-top:16px}.project-hard-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0}.project-hard-rule{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.project-hard-rule dt{color:var(--fg-dim);font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.project-hard-rule dd{margin:6px 0 0;font-size:14px}.project-hard-rules-form{display:grid;gap:14px}.project-hard-rule-input{display:grid;gap:10px;align-content:start}.project-hard-rule-label{color:var(--fg-dim);font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.project-hard-rule input[type=checkbox]{width:16px;height:16px}.project-hard-rule-text-input{background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-size:13px;padding:6px 10px;width:100%}.project-hard-rule-text-input:focus{outline:none;border-color:var(--accent)}.project-soft-rules-form{display:grid;gap:12px}.project-soft-rules-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}.project-soft-rules-editor,.project-soft-rules-preview-card{min-width:0}.project-soft-rules-label{color:var(--fg-dim);font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.project-soft-rules-input{background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-size:13px;line-height:1.5;min-height:140px;padding:10px 12px;resize:vertical;width:100%}.project-soft-rules-input:focus{outline:none;border-color:var(--accent)}.project-soft-rules-hint{color:var(--fg-dim);font-size:12px;margin:0}.project-soft-rules-preview-card{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.project-soft-rules-preview-title{margin:0 0 10px;color:var(--fg-dim);font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.project-soft-rules-preview{min-height:140px}.project-soft-rules-preview .md>:first-child{margin-top:0}.project-soft-rules-preview .md>:last-child{margin-bottom:0}.agent-detail-markdown .md>:first-child{margin-top:0}.agent-detail-markdown .md>:last-child{margin-bottom:0}.project-save-feedback{margin:0;font-size:12px}.project-save-feedback-success{color:#4ade80}.project-save-feedback-error{color:var(--danger)}.project-detail-empty{padding:0}.projects-count{width:120px}.error-notice{background:#f871711a;border:1px solid var(--danger);color:var(--danger);padding:12px 14px;border-radius:8px;margin-bottom:16px}.error-notice.inline{margin-bottom:12px}.error-notice-title{margin:0 0 4px;font-size:16px}.error-notice-message{margin:0}.error-notice-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.error-details{background:var(--bg-elev-2);padding:12px;border-radius:8px;overflow:auto}.loading-state{display:flex;align-items:flex-start;gap:12px;padding:16px 0;color:var(--fg-dim)}.loading-state.inline{padding:10px 0}.loading-state.centered{justify-content:center;padding:48px 32px}.loading-spinner{width:18px;height:18px;border:2px solid rgba(59,130,246,.25);border-top-color:var(--accent);border-radius:999px;flex:none;margin-top:2px;animation:spin .9s linear infinite}.loading-state-label{color:var(--fg);font-weight:500}.loading-state-detail{margin-top:2px}.skeleton-state{display:flex;flex-direction:column;gap:14px;padding:12px 0}.skeleton-chat-row{display:flex}.skeleton-chat-row--user{justify-content:flex-end}.skeleton-chat-row--assistant{justify-content:flex-start}.skeleton-chat-bubble,.skeleton-wiki-sheet{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:14px}.skeleton-chat-bubble{display:flex;flex-direction:column;gap:10px;max-width:min(100%,42rem);width:min(100%,42rem)}.skeleton-chat-bubble--user{background:color-mix(in srgb,var(--user-bubble) 80%,var(--bg-elev))}.skeleton-chat-bubble--assistant{background:color-mix(in srgb,var(--bg-elev) 70%,var(--bg-elev-2))}.skeleton-chat-bubble--narrow{width:min(100%,30rem)}.skeleton-wiki-sheet{display:flex;flex-direction:column;gap:12px;max-width:76ch;margin:24px 22px 32px}.skeleton-line{display:block;height:12px;width:100%;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--bg-elev-2) 88%,transparent) 25%,color-mix(in srgb,var(--fg-dim) 20%,var(--bg-elev-2)),color-mix(in srgb,var(--bg-elev-2) 88%,transparent) 75%);background-size:220% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-line--title{height:18px}.skeleton-line--25{width:25%}.skeleton-line--30{width:30%}.skeleton-line--35{width:35%}.skeleton-line--45{width:45%}.skeleton-line--55{width:55%}.skeleton-line--60{width:60%}.skeleton-line--70{width:70%}.skeleton-line--80{width:80%}.skeleton-line--85{width:85%}.skeleton-line--90{width:90%}.skeleton-line--95{width:95%}.skeleton-line--100{width:100%}.btn{background:var(--bg-elev-2);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:6px 14px;font-size:13px;cursor:pointer}.btn:hover{background:var(--bg-elev)}.btn.primary{background:var(--accent);color:var(--fg-on-spice);border:none;padding:var(--s-2) var(--s-5);border-radius:var(--r-2);font-family:var(--font-sans);font-size:var(--t-meta);font-weight:var(--w-semibold);letter-spacing:var(--tr-label);text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast) var(--ease-prima)}.btn.primary:hover{background:var(--accent-hover)}.btn.primary:active{background:var(--accent-pressed)}.btn.primary:disabled{opacity:.4;cursor:not-allowed}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.cancel{background:var(--danger);border-color:var(--danger);color:var(--accent-fg)}.chat{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.channel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--rule-1);background:var(--bg-raised);padding:var(--s-3) var(--s-5)}.channel-header-title{font-family:var(--font-display);font-size:var(--t-h3);font-weight:var(--w-semibold);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--fg-1)}.channel-header-description{font-family:var(--font-sans);font-size:var(--t-meta);color:var(--fg-3);margin-top:2px}.channel-header-scope{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:999px;color:var(--fg-dim);font-size:12px;padding:3px 9px;white-space:nowrap}.chat-scroll{flex:1;min-height:0;overflow:auto;padding:24px 32px 0}.chat-log{display:flex;flex-direction:column}.turn-wrapper{margin-bottom:18px}.turn-wrapper+.turn-wrapper:not(.has-separator) .bubble{border-top:1px solid var(--border);padding-top:14px}.turn-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding-bottom:var(--s-2);margin-bottom:var(--s-2)}.turn-header--user{justify-content:flex-end}.turn-actor-badge{display:flex;align-items:center;gap:var(--s-2)}.turn-actor-icon{font-size:11px;line-height:1}.turn-actor-avatar{width:20px;height:20px;flex-shrink:0}.turn-actor-name{font-family:var(--font-sans);font-size:var(--t-meta);font-weight:var(--w-semibold);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--fg-2)}.turn-agent-slug{font-family:var(--font-mono);font-size:var(--t-micro);color:var(--fg-3);padding:1px var(--s-1);background:var(--bg-sunk);border-radius:var(--r-1)}.turn-ts{font-family:var(--font-mono);font-size:var(--t-micro);color:var(--fg-4);letter-spacing:var(--tr-meta);cursor:default;-webkit-user-select:none;user-select:none}.time-separator{display:flex;align-items:center;gap:10px;margin:16px 0 10px;color:var(--fg-dim);font-size:11px;font-style:italic;-webkit-user-select:none;user-select:none}.time-separator-line{flex:1;height:1px;background:var(--border);opacity:.5}.time-separator-label{white-space:nowrap;opacity:.7;letter-spacing:.02em}.bubble{max-width:800px;padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--rule-2)}.bubble.user{margin-left:auto;text-align:right;background:var(--bg-raised)}.bubble--agent-activity{opacity:.88;border-left:2px solid var(--accent, #6366f1);padding-left:10px}.bubble.user .user-text{display:inline-block;background:var(--bg-raised);border:1px solid var(--rule-1);padding:var(--s-2) var(--s-4);border-radius:14px;white-space:pre-wrap;text-align:left;margin:0;font-family:var(--font-sans);font-size:var(--t-body-sm);color:var(--fg-1)}.route-tag{font-size:11px;color:var(--fg-dim);margin-top:4px}.assistant-turn-status{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) 0 var(--s-3);color:var(--fg-3);font-family:var(--font-serif);font-style:italic;font-size:var(--t-body-sm)}.sigil-considers{width:20px;height:20px;animation:sigil-pulse 2.4s ease-in-out infinite;opacity:.7}@keyframes sigil-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}.assistant-turn-status-text{font-style:italic;color:var(--fg-3)}.assistant-turn-status-dots{display:none}.copy-btn-wrap{position:relative}.copy-btn{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;padding:4px;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;color:var(--fg-dim);cursor:pointer;z-index:1;line-height:0;transition:color .15s,background .15s}.copy-btn:hover{background:var(--bg-elev-2);color:var(--fg)}.copy-btn--copied{color:#4ade80;border-color:#4ade80}@media (hover: hover){.copy-btn{opacity:0;pointer-events:none;transition:opacity .15s,color .15s,background .15s}.copy-btn-wrap:hover .copy-btn,.copy-btn-wrap:focus-within .copy-btn{opacity:1;pointer-events:auto}}.copy-btn--code{top:8px;right:8px}.activity-heartbeat{display:flex;align-items:center;gap:6px;padding:4px 8px;margin:0 0 6px;border-radius:6px;border:1px solid rgba(59,130,246,.35);background:var(--bg-elev-2);font-size:12px;color:var(--fg);transition:opacity .3s}.activity-heartbeat.stale{opacity:.5;border-color:var(--border);color:var(--fg-dim)}.heartbeat-spinner{font-family:ui-monospace,monospace;font-size:11px;color:var(--accent);display:inline-block;animation:spin 1.4s linear infinite}.activity-heartbeat.stale .heartbeat-spinner{animation:none;color:var(--fg-dim)}.heartbeat-agent{font-weight:600}.heartbeat-sep{color:var(--fg-dim)}.heartbeat-action{color:var(--fg-dim);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heartbeat-elapsed{font-family:ui-monospace,monospace;font-size:11px;color:var(--fg-dim);white-space:nowrap}.activity-strip{margin:0 0 8px;font-size:12px}.activity-summary{display:flex;flex-wrap:wrap;gap:6px}.activity-pill{display:inline-flex;align-items:center;gap:6px;background:var(--bg-elev);border:1px solid var(--border);color:var(--fg-dim);padding:3px 10px;border-radius:999px;cursor:pointer;font-size:12px}.activity-pill:hover{background:var(--bg-elev-2)}.activity-pill.running{color:var(--accent);border-color:#3b82f673}.activity-pill .glyph{font-family:ui-monospace,monospace;font-size:11px}.activity-pill.running .glyph{display:inline-block;animation:spin 1s linear infinite}.activity-pill .caret{color:var(--fg-dim);font-size:10px}.activity-headlines{display:flex;flex-direction:column;gap:2px;margin-top:6px}.activity-headline{display:inline-flex;align-items:center;gap:6px;padding:2px 4px;color:var(--fg-dim)}.activity-headline.status-running{color:var(--accent)}.activity-headline.status-failed{color:var(--danger)}.activity-headline .glyph{font-family:ui-monospace,monospace;font-size:11px;width:12px;text-align:center}.activity-headline.status-running .glyph{animation:spin 1s linear infinite}.agent-tag{font-size:10px;text-transform:lowercase;background:#3b82f629;color:#93c5fd;border:1px solid rgba(59,130,246,.35);padding:1px 6px;border-radius:4px;letter-spacing:.02em}.activity-thinking,.activity-details{margin-top:8px;padding:10px 12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px}.activity-details{display:flex;flex-direction:column;gap:6px}.thinking-block{margin:0;padding:8px;background:var(--bg-elev-2);border-radius:4px;white-space:pre-wrap;font-size:12px;line-height:1.5;max-height:280px;overflow:auto}.activity-row{border:1px solid var(--border);border-radius:6px;background:var(--bg-elev-2)}.activity-row.status-running{border-color:#3b82f673}.activity-row.status-failed{border-color:var(--danger)}.activity-row-head{width:100%;display:flex;align-items:center;gap:8px;background:transparent;border:0;color:var(--fg);text-align:left;padding:6px 10px;cursor:pointer;font-size:12px}.activity-row.status-running .activity-row-head .glyph{animation:spin 1s linear infinite;color:var(--accent)}.activity-row.status-failed .activity-row-head .glyph{color:var(--danger)}.activity-row .glyph{font-family:ui-monospace,monospace;width:12px;text-align:center}.activity-row .caret{margin-left:auto;color:var(--fg-dim)}.activity-row-body{padding:0 10px 10px;display:flex;flex-direction:column;gap:6px}.row-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-dim)}.composer{border-top:1px solid var(--border);background:var(--bg-elev);padding:14px 32px;display:flex;flex-direction:column;gap:8px}.composer textarea{width:100%;font-family:var(--font-sans);font-size:var(--t-body-sm);background:var(--bg-raised);border:1px solid var(--rule-1);border-radius:var(--r-3);color:var(--fg-1);padding:var(--s-3) var(--s-4);resize:none;transition:border-color var(--dur-fast) var(--ease-prima),box-shadow var(--dur-fast) var(--ease-prima)}.composer textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-bronze-glow)}.composer-textarea--disabled,.composer textarea:disabled{background:color-mix(in srgb,var(--bg-elev-2) 88%,black);border-color:color-mix(in srgb,var(--border) 80%,black);cursor:not-allowed;opacity:.5}.composer-help{margin-top:-2px}.composer-status{border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:600;padding:8px 10px}.composer-status--reconnecting{background:color-mix(in srgb,#f59e0b 14%,transparent);border-color:color-mix(in srgb,#f59e0b 35%,var(--border));color:#fbbf24}.composer-status--disconnected{background:color-mix(in srgb,#ef4444 12%,transparent);border-color:color-mix(in srgb,#ef4444 35%,var(--border));color:#fca5a5}.composer-queued{align-items:center;border:1px solid transparent;border-radius:10px;color:var(--fg-dim);display:flex;font-size:12px;gap:10px;justify-content:space-between;padding:8px 10px;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.composer-queued--highlight{background:color-mix(in srgb,#f59e0b 14%,transparent);border-color:color-mix(in srgb,#f59e0b 35%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,#f59e0b 22%,transparent)}.composer-queued-link{flex:0 0 auto;text-underline-offset:2px}.dreaming-indicator{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) 0;font-family:var(--font-serif);font-style:italic;font-size:var(--t-body-sm);color:var(--fg-3)}.dreaming-sigil{width:16px;height:16px;animation:sigil-pulse 2.4s ease-in-out infinite}.composer-actions{display:flex;justify-content:flex-end;gap:6px}.composer-actions .btn:disabled{cursor:not-allowed;opacity:.55}.message--sister .md p{font-family:var(--font-serif);font-size:var(--t-body);line-height:var(--lh-loose)}.message--sister .md p:first-of-type:first-letter{font-family:var(--font-serif);font-weight:var(--w-semibold);font-size:2.4em;font-style:normal;color:var(--sister-color, var(--ibad-500));float:left;line-height:.82;margin:.06em .1em 0 0;padding-top:.04em}.empty-state--ritual{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s-9) var(--s-6);gap:var(--s-3)}.empty-state-sigil{width:56px;height:56px;opacity:.35;margin-bottom:var(--s-2)}.empty-state-heading{font-family:var(--font-display);font-size:var(--t-h2);letter-spacing:var(--tr-display);text-transform:uppercase;color:var(--fg-1);margin:0}.empty-state-sub{font-family:var(--font-serif);font-style:italic;font-size:var(--t-body);color:var(--fg-2);margin:0}.empty-state-prompts{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2);margin-top:var(--s-3);max-width:480px}.empty-state-prompt-btn{background:var(--bg-raised);border:1px solid var(--rule-1);border-radius:var(--r-2);padding:var(--s-2) var(--s-3);font-family:var(--font-serif);font-style:italic;font-size:var(--t-body-sm);color:var(--fg-2);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-prima),color var(--dur-fast) var(--ease-prima)}.empty-state-prompt-btn:hover{border-color:var(--accent);color:var(--fg-1)}.empty-state-hint{font-family:var(--font-sans);font-size:var(--t-meta);color:var(--fg-4);margin-top:var(--s-2)}.md{line-height:1.55}.md p:first-child{margin-top:0}.md p:last-child{margin-bottom:0}.md pre{background:var(--bg-elev-2);border-radius:6px;padding:12px;overflow:auto}.md pre code{background:transparent;padding:0}.md table{border-collapse:collapse;margin:1em 0}.md th,.md td{border:1px solid var(--border);padding:6px 10px}.workers-layout{display:grid;grid-template-columns:320px 1fr;gap:18px;align-items:start}.workers-list{display:flex;flex-direction:column;gap:6px}.worker-row{text-align:left;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;color:var(--fg)}.worker-row.selected,.worker-row:hover{background:var(--bg-elev-2)}.worker-row-head{display:flex;justify-content:space-between;align-items:center}.worker-status{font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}.worker-status--running{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.worker-status--completed{background:color-mix(in srgb,#4caf50 15%,transparent);color:#4caf50}.worker-status--error{background:color-mix(in srgb,#f44336 15%,transparent);color:#f44336}.worker-row-desc{margin-top:4px;font-size:13px;color:var(--fg)}.workers-detail{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:18px}.worker-detail-description{margin:4px 0 8px;font-size:15px}.worker-detail-slug,.worker-detail-taskid{font-size:.75em;font-family:var(--font-mono, monospace)}.worker-detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px}.worker-events{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto;background:var(--bg-elev-2);border-radius:6px;padding:10px 12px;margin-bottom:12px;font-size:12px;font-family:var(--font-mono, monospace)}.worker-event{display:flex;gap:8px;align-items:baseline;line-height:1.5}.worker-event-ts{color:var(--text-dim, #888);flex-shrink:0;font-size:11px}.worker-event-body{display:flex;gap:4px;align-items:baseline;flex-wrap:wrap;overflow:hidden}.worker-event-icon{flex-shrink:0}.worker-event--tool_complete .worker-event-icon{opacity:.7}.msg-queued-indicator{font-size:.8em;opacity:.6;vertical-align:middle;-webkit-user-select:none;user-select:none}.msg-queued-backend-indicator{display:inline-block;font-size:.78em;opacity:.75;margin-top:4px;color:var(--fg-dim);-webkit-user-select:none;user-select:none}.output{background:var(--bg-elev-2);padding:12px;border-radius:6px;overflow:auto;white-space:pre-wrap;font-size:13px}.projects-toolbar{margin-bottom:16px}.projects-register-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.projects-path-input{background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-size:13px;padding:6px 10px;width:380px;max-width:100%}.projects-path-input:focus{outline:none;border-color:var(--accent)}.projects-register-error{font-size:12px}.projects-disabled{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:18px}.projects-empty{padding:24px 0}.projects-list{display:flex;flex-direction:column;gap:8px}.project-row{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.project-row-info{display:flex;flex-direction:column;gap:4px;min-width:0}.project-root{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-meta{display:flex;gap:12px;font-size:12px;flex-wrap:wrap}.project-badge{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:10px;padding:1px 8px;font-size:11px;color:var(--fg)}.project-row-actions{display:flex;gap:6px;flex-shrink:0}.project-chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;background:color-mix(in srgb,var(--accent) 8%,var(--bg-elev));border-bottom:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));flex-shrink:0}.project-chat-header-identity{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.project-chat-icon{font-size:16px;flex-shrink:0}.project-chat-title{font-size:14px;white-space:nowrap;flex-shrink:0}.project-chat-path{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.wiki{display:flex;flex-direction:column;min-height:100%}.wiki-layout{display:grid;grid-template-columns:minmax(320px,360px) minmax(0,1fr);gap:20px;flex:1;min-height:0}.wiki-mobile-nav-bar{display:none}.wiki-sidebar,.wiki-main{min-height:0}.wiki-sidebar{display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;overflow:hidden}.wiki-sidebar-header{position:sticky;top:0;z-index:1;display:flex;flex-direction:column;gap:14px;padding:16px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--bg-elev) 0%,rgba(22,27,34,.98) 100%)}.wiki-sidebar-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.wiki-sidebar-header-row h2{margin:0 0 4px;font-size:16px}.wiki-sidebar-header-row p{margin:0}.wiki-search{display:flex;flex-direction:column;gap:12px}.wiki-search-field input,.wiki-filter select{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--fg);padding:9px 10px;border-radius:8px}.wiki-filter{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--fg-dim)}.wiki-search-meta,.wiki-shortcuts,.wiki-scope-legend{color:var(--fg-dim)}.wiki-scope-header-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.wiki-scope-header-row h1{margin:0}.wiki-shortcuts{border-top:1px solid var(--border);padding-top:12px}.wiki-scope-legend{display:flex;flex-wrap:wrap;gap:8px}.wiki-scope-legend>span{display:inline-flex;align-items:center;gap:4px}.wiki-sidebar-body{flex:1;min-height:0;overflow:auto;padding:12px}.wiki-tree,.wiki-tree-children{list-style:none;margin:0;padding:0}.wiki-tree-children{margin-top:4px}.wiki-node{margin:2px 0}.wiki-node-button{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--fg);text-align:left;cursor:pointer}.wiki-node-folder-button{color:var(--fg-dim)}.wiki-node-folder-button:hover,.wiki-node-folder-button.expanded,.wiki-node-page-button:hover{background:var(--bg-elev-2);border-color:var(--border);color:var(--fg)}.wiki-node-page-button{align-items:flex-start}.wiki-node-page-button.selected{background:#3b82f61f;border-color:#3b82f659;box-shadow:inset 2px 0 0 var(--accent)}.wiki-node-icon{width:14px;flex:none;text-align:center;color:var(--fg-dim)}.wiki-node-page-button.selected .wiki-node-icon{color:#93c5fd}.wiki-node-page-button.selected .wiki-node-scope-icon-personal{color:#ddd6fe}.wiki-node-page-button.selected .wiki-node-scope-icon-team{color:#a7f3d0}.wiki-node-content{min-width:0;display:flex;flex:1;flex-direction:column;gap:4px}.wiki-node-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wiki-node-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:11px}.wiki-node-count{margin-left:auto;border:1px solid var(--border);border-radius:999px;padding:0 6px;font-size:11px;color:var(--fg-dim)}.wiki-main{min-width:0;display:flex;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;overflow:hidden}.wiki-main>.wiki-empty-state{width:100%}.wiki-document{width:100%;min-height:0;display:flex;flex-direction:column}.wiki-page-header{position:sticky;top:0;z-index:1;padding:18px 22px 16px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--bg-elev) 0%,rgba(22,27,34,.98) 100%)}.wiki-page-header-main{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.wiki-page-title-block{min-width:0}.wiki-page-title-block h2{margin:0;font-size:28px;line-height:1.2}.wiki-page-summary{margin:8px 0 0;max-width:72ch;color:var(--fg-dim)}.wiki-page-actions{display:flex;gap:8px;flex:none}.wiki-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 12px;padding:0}.wiki-breadcrumbs li{display:flex;align-items:center;min-width:0}.wiki-breadcrumbs li+li:before{content:"/";margin-right:8px;color:var(--fg-dim)}.wiki-breadcrumb-button{display:inline-block;max-width:100%;overflow:hidden;padding:0;border:0;background:transparent;color:var(--fg-dim);text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.wiki-breadcrumbs [aria-current=page]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wiki-breadcrumb-button:hover{color:var(--fg);text-decoration:underline}.wiki-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;font-size:12px;color:var(--fg-dim)}.wiki-meta>*{max-width:100%}.wiki-badge,.wiki-tag,.wiki-meta-item{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:3px 8px;background:var(--bg-elev-2)}.wiki-badge{color:#93c5fd;border-color:#3b82f659}.wiki-scope-badge{display:inline-flex;align-items:center;gap:4px}.wiki-scope-badge-personal{color:#c4b5fd;border-color:#c4b5fd59;background:#c4b5fd14}.wiki-scope-badge-team{color:#6ee7b7;border-color:#6ee7b759;background:#6ee7b714}.wiki-node-scope-icon-personal{color:#c4b5fd}.wiki-node-scope-icon-team{color:#6ee7b7}.wiki-tag{color:var(--fg)}.wiki-meta-path{max-width:100%;overflow:auto;white-space:nowrap}.wiki-document-body{flex:1;min-height:0;overflow:auto}.wiki-article{box-sizing:border-box;width:100%;max-width:min(76ch,100%);padding:24px 22px 32px}.wiki-article .md{overflow-wrap:anywhere}.wiki-article .md img{max-width:100%;height:auto}.wiki-article .md table{display:block;width:max-content;max-width:100%;overflow-x:auto}.wiki-empty-state{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;margin:auto;max-width:56ch;padding:32px}.wiki-empty-state.compact{margin:0;max-width:none;padding:20px 12px}.wiki-empty-state h2{margin:0;font-size:20px}.wiki-empty-state p{margin:0;color:var(--fg-dim)}.wiki-empty-state-actions{display:flex;flex-wrap:wrap;gap:8px}.wiki-mobile-sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;justify-content:flex-start}.wiki-mobile-sidebar-backdrop{flex:1;border:0;background:#0a0f19b8}.wiki-mobile-sidebar-panel{position:relative;z-index:1;display:flex;flex-direction:column;gap:12px;width:min(100%,24rem);min-width:0;padding:16px 12px 12px;background:#0a0f19fa;border-right:1px solid var(--border);box-shadow:0 20px 48px #00000059}.wiki-mobile-sidebar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.wiki-mobile-sidebar-title{font-size:14px;font-weight:600}.wiki-mobile-sidebar-panel .wiki-sidebar{flex:1;min-height:0}@media (max-width: 960px){.wiki-layout{grid-template-columns:1fr}.wiki-sidebar{max-height:50vh}.wiki-page-header-main,.wiki-sidebar-header-row,.wiki-scope-legend{flex-direction:column}.wiki-page-actions{width:100%}.wiki-page-actions .btn{flex:1}}@media (max-width: 767px){.wiki{gap:16px}.wiki-mobile-nav-bar{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px}.wiki-mobile-nav-bar .btn{flex:none}.wiki-mobile-nav-label{min-width:0;margin-left:auto;overflow:hidden;color:var(--fg-dim);text-align:right;text-overflow:ellipsis;white-space:nowrap}.wiki-main{min-height:0}.wiki-page-header{padding:16px}.wiki-page-title-block h2{font-size:24px}.wiki-meta{align-items:flex-start}.wiki-article{padding:18px 16px 24px}.wiki-mobile-sidebar-toolbar,.wiki-page-actions{flex-wrap:wrap}.wiki-page-actions .btn,.wiki-mobile-sidebar-toolbar .btn{flex:1 1 160px}}.wiki-edit .row{display:flex;gap:12px;margin-bottom:12px}.wiki-edit input[type=text]{flex:1;background:var(--bg);border:1px solid var(--border);color:var(--fg);padding:8px;border-radius:6px}.wiki-edit label{display:block;width:100%;font-size:12px;color:var(--fg-dim)}.wiki-editor{margin-bottom:16px}.agent-editor-form{display:flex;flex-direction:column;gap:16px}.agent-editor-card{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--bg-elev)}.agent-editor-grid{display:grid;gap:16px}.agent-editor-meta-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0}.agent-editor-meta-list div{display:flex;flex-direction:column;gap:4px}.agent-editor-meta-list dt{font-size:12px;color:var(--fg-dim)}.agent-editor-meta-list dd{margin:0}.agent-editor-skills{display:flex;flex-direction:column;gap:10px}.agent-editor-skill-option{display:flex;align-items:center;gap:8px}.agent-editor-prompt{min-height:240px;font-family:var(--font-mono, "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace)}.agent-editor-toast{margin-bottom:12px}.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.skill-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:14px}.skill-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.tag{font-size:10px;text-transform:uppercase;padding:2px 6px;border-radius:4px;letter-spacing:.05em;background:var(--bg-elev-2);color:var(--fg-dim)}.tag-bundled{color:#93c5fd}.tag-local{color:#86efac}.tag-global{color:#fcd34d}.settings section{margin-bottom:28px}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-field-label{font-size:12px;color:var(--fg-dim)}.settings select{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:6px 10px}.row{display:flex;align-items:center;gap:8px}.settings-row{align-items:flex-end}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.ralph{max-width:760px}.ralph-section{margin-top:24px}.ralph-section h2{font-size:15px;font-weight:600;margin-bottom:10px;color:var(--fg)}.ralph-status-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.ralph-status-row{display:flex;align-items:center;gap:10px;font-size:14px}.ralph-status-label{min-width:90px;color:var(--text-dim, #888);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.ralph-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}.ralph-badge--running{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.ralph-badge--stopped{background:color-mix(in srgb,#888 15%,transparent);color:#888}.ralph-mono{font-family:var(--font-mono, monospace);font-size:13px}.ralph-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:400px}.ralph-controls{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.ralph-form-row{display:flex;align-items:center;gap:10px;font-size:14px}.ralph-form-row label{min-width:140px;color:var(--text-dim, #888);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.ralph-select,.ralph-input{background:var(--bg-elev-2, var(--bg-elev));border:1px solid var(--border);border-radius:5px;color:var(--fg);font-size:13px;padding:5px 8px;min-width:240px}.ralph-input--narrow{min-width:80px;width:80px}.ralph-select:focus,.ralph-input:focus{outline:2px solid var(--accent);outline-offset:1px}.btn{border:none;border-radius:6px;font-size:13px;font-weight:600;padding:6px 14px;cursor:pointer;transition:opacity .1s;align-self:flex-start}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){opacity:.85}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover:not(:disabled){opacity:.85}.ralph-queue-count{font-weight:400;color:var(--text-dim, #888);font-size:13px}.ralph-queue-source{margin-bottom:8px}.ralph-queue{display:flex;flex-direction:column;gap:6px}.ralph-issue{display:block;text-decoration:none;color:inherit;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:10px 12px;transition:background .1s}.ralph-issue:hover{background:var(--bg-elev-2)}.ralph-issue-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.ralph-issue-number{font-family:var(--font-mono, monospace);font-size:12px;color:var(--text-dim, #888);flex-shrink:0}.ralph-issue-title{font-size:14px;font-weight:500}.ralph-issue-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ralph-labels{display:flex;flex-wrap:wrap;gap:4px}.ralph-label{font-size:11px;padding:1px 6px;border-radius:8px;background:color-mix(in srgb,#888 12%,transparent);color:var(--fg)}.ralph-label--agent{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.ralph-label--triage{background:color-mix(in srgb,#9c27b0 12%,transparent);color:#9c27b0}.ralph-label--urgent{background:color-mix(in srgb,#f44336 12%,transparent);color:#f44336}.link-btn{background:none;border:none;color:var(--accent);font-size:inherit;cursor:pointer;padding:0;text-decoration:underline}.memory-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start;flex:1;min-height:0}.memory-scope-list{display:flex;flex-direction:column;gap:6px;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;overflow:hidden}.memory-scope-list-header{padding:14px 16px 10px;border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em}.memory-scope-item{text-align:left;background:none;border:none;border-bottom:1px solid var(--border);padding:12px 16px;cursor:pointer;color:var(--fg);width:100%}.memory-scope-item:last-child{border-bottom:none}.memory-scope-item:hover,.memory-scope-item.selected{background:var(--bg-elev-2)}.memory-scope-item-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.memory-scope-name{font-size:14px;font-weight:500;flex:1}.memory-active-badge{font-size:10px;font-weight:700;background:var(--accent);color:#fff;border-radius:4px;padding:1px 5px;text-transform:uppercase;letter-spacing:.04em}.memory-scope-counts{display:flex;gap:6px;flex-wrap:wrap}.memory-count-pill{font-size:11px;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:1px 7px;color:var(--fg-muted)}.memory-scope-set-active{margin-top:6px;font-size:11px;background:none;border:1px solid var(--border);border-radius:4px;padding:2px 8px;color:var(--fg-muted);cursor:pointer}.memory-scope-set-active:hover{color:var(--accent);border-color:var(--accent)}.memory-detail-panel{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:400px}.memory-detail-header{padding:14px 16px 0;border-bottom:1px solid var(--border)}.memory-detail-title{font-size:16px;font-weight:600;margin:0 0 12px}.memory-store-tabs{display:flex;gap:2px}.memory-store-tab{font-size:13px;background:none;border:none;border-bottom:2px solid transparent;padding:8px 12px;cursor:pointer;color:var(--fg-muted)}.memory-store-tab.active{color:var(--fg);border-bottom-color:var(--accent)}.memory-tier-filters{display:flex;gap:6px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.memory-tier-btn{font-size:12px;background:none;border:1px solid var(--border);border-radius:999px;padding:3px 10px;cursor:pointer;color:var(--fg-muted)}.memory-tier-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.memory-entries-list{flex:1;overflow-y:auto;padding:8px 0}.memory-entry{padding:10px 16px;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);font-size:13px;line-height:1.5}.memory-entry:last-child{border-bottom:none}.memory-entry-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.memory-tier-badge{font-size:10px;font-weight:700;border-radius:3px;padding:1px 5px;text-transform:uppercase}.memory-tier-badge.hot{background:#c85f00;color:#fff}.memory-tier-badge.warm{background:var(--bg-elev-2);color:var(--fg-muted);border:1px solid var(--border)}.memory-tier-badge.cold{background:#1a4a6e;color:#7ab8e8}.memory-entry-date{font-size:11px;color:var(--fg-muted);margin-left:auto}.memory-entry-content{color:var(--fg)}.memory-entry-entity{font-size:11px;color:var(--fg-muted);margin-top:3px}.memory-inbox-item{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px}.memory-inbox-item:last-child{border-bottom:none}.memory-inbox-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.memory-inbox-kind-badge{font-size:10px;font-weight:700;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:2px 6px;color:var(--fg-muted);text-transform:uppercase}.memory-inbox-source{font-size:11px;color:var(--fg-muted);margin-left:auto}.memory-inbox-payload-preview{color:var(--fg);margin-bottom:8px;word-break:break-word}.memory-inbox-actions{display:flex;gap:8px}.memory-inbox-accept-btn{font-size:12px;background:#1a4a1a;border:1px solid #2d7a2d;color:#7adf7a;border-radius:4px;padding:4px 12px;cursor:pointer}.memory-inbox-accept-btn:hover{background:#2d7a2d}.memory-inbox-reject-btn{font-size:12px;background:none;border:1px solid var(--border);color:var(--fg-muted);border-radius:4px;padding:4px 12px;cursor:pointer}.memory-inbox-reject-btn:hover{border-color:#c00;color:#f55}.memory-inbox-count-badge{display:inline-block;min-width:18px;height:18px;line-height:18px;text-align:center;background:var(--accent);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:0 5px;margin-left:4px;vertical-align:middle}.active-scope-indicator{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--fg-muted);padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:none;cursor:pointer;text-decoration:none;line-height:1.2}.active-scope-indicator:hover{border-color:var(--accent);color:var(--fg)}.active-scope-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}.active-scope-dot.none{background:var(--fg-muted)}.memory-nav-link-wrap{display:flex;align-items:center}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;background:var(--accent);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:0 4px;margin-left:5px}.research-sessions-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.research-sessions-badge{border:0;cursor:pointer}.research-sessions-list{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.research-session-link{font-size:12px}.wiki-browser-page{display:flex;flex-direction:column;gap:16px}.wiki-browser-layout{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:16px}.wiki-browser-results-panel,.wiki-browser-detail-panel,.wiki-graph-shell,.wiki-research-card{border:1px solid var(--border);border-radius:12px;background:var(--bg-elev)}.wiki-browser-results-panel,.wiki-browser-detail-panel{padding:16px}.wiki-browser-toolbar{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.wiki-browser-tabs{display:flex;flex-wrap:wrap;gap:8px}.wiki-browser-search,.wiki-browser-editor textarea{width:100%;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--fg);padding:10px 12px}.wiki-browser-results{display:flex;flex-direction:column;gap:10px}.wiki-browser-result{width:100%;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--fg);padding:12px;cursor:pointer}.wiki-browser-result:hover,.wiki-browser-result.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg))}.wiki-browser-result-head,.wiki-browser-editor-actions,.wiki-research-metrics{display:flex;align-items:center;justify-content:space-between;gap:8px}.wiki-browser-result-slug,.wiki-browser-result-meta{color:var(--fg-dim);font-size:12px}.wiki-browser-result p{margin:8px 0;color:var(--fg-dim)}.wiki-browser-editor{display:flex;flex-direction:column;gap:12px}.wiki-browser-truth{white-space:pre-wrap;line-height:1.6}.wiki-research-list{display:grid;gap:12px}.wiki-research-card{padding:16px}.wiki-research-card h2{margin:0 0 8px}.wiki-graph-shell{padding:8px;overflow:hidden}.wiki-graph-canvas{width:100%;min-height:560px;display:block}@media (max-width: 1100px){.wiki-browser-layout{grid-template-columns:1fr}}.ways-sheet{border:none;padding:0;margin:0;width:100%;height:100%;max-width:100%;max-height:100%;background:transparent;overflow:visible;position:fixed;top:0;right:0;bottom:0;left:0}.ways-sheet::backdrop{background:#15100a8c;animation:veil-in var(--dur-slow) var(--ease-out) forwards}@keyframes veil-in{0%{opacity:0}to{opacity:1}}.ways-sheet-inner{position:absolute;left:0;top:0;bottom:0;width:280px;background:var(--bg-raised);border-right:1px solid var(--rule-1);display:flex;flex-direction:column;animation:slide-in-left var(--dur-slow) var(--ease-out) forwards;box-shadow:var(--shadow-3)}@keyframes slide-in-left{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.ways-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:var(--s-5) var(--s-5) var(--s-4);border-bottom:1px solid var(--rule-1)}.ways-sheet-title{display:flex;align-items:baseline;gap:var(--s-2)}.ways-sheet-label{font-family:var(--font-display);font-size:var(--t-h3);letter-spacing:var(--tr-display);text-transform:uppercase;color:var(--fg-1)}.ways-sheet-subtitle{font-family:var(--font-serif);font-style:italic;font-size:var(--t-body-sm);color:var(--fg-3)}.ways-close-btn{background:none;border:none;cursor:pointer;color:var(--fg-3);font-size:20px;line-height:1;padding:var(--s-1) var(--s-2);border-radius:var(--r-1);transition:color var(--dur-fast) var(--ease-prima)}.ways-close-btn:hover{color:var(--fg-1)}.ways-nav{flex:1;overflow-y:auto;padding:var(--s-3) 0;display:flex;flex-direction:column;gap:var(--s-1)}.ways-section{padding:0}.ways-section+.ways-section{margin-top:var(--s-3);border-top:1px solid var(--rule-2);padding-top:var(--s-3)}.ways-section-label{padding:0 var(--s-5) var(--s-1);font-family:var(--font-sans);font-size:var(--t-micro);font-weight:var(--w-semibold);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--fg-4)}.ways-nav-item{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;border-left:3px solid transparent;padding:var(--s-2) var(--s-5) var(--s-2) calc(var(--s-5) - 3px);cursor:pointer;color:var(--fg-2);font-family:var(--font-sans);font-size:var(--t-body-sm);text-align:left;transition:background var(--dur-fast) var(--ease-prima),border-color var(--dur-fast) var(--ease-prima),color var(--dur-fast) var(--ease-prima)}.ways-nav-item:hover{background:var(--accent-soft);border-left-color:var(--accent);color:var(--fg-1)}.ways-sheet-footer{padding:var(--s-4) var(--s-5);border-top:1px solid var(--rule-2)}.ways-footer-text{font-family:var(--font-mono);font-size:var(--t-micro);color:var(--fg-4);letter-spacing:var(--tr-meta);margin:0}
10
+ */.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--spice-50: #FBF5E8;--spice-100: #F4E8CC;--spice-200: #E8D2A0;--spice-300: #D4B26E;--spice-400: #BE8A3F;--spice-500: #CD7F32;--spice-600: #A0522D;--spice-700: #7A3D1F;--spice-800: #4E2611;--spice-900: #2A1408;--stone-50: #EFEAE0;--stone-100: #C9C0AE;--stone-200: #8E8472;--stone-300: #5F574A;--stone-400: #3A3327;--stone-500: #211A11;--stone-600: #15100A;--stone-700: #0B0805;--ibad-300: #6FA4C7;--ibad-500: #2C5F8D;--ibad-700: #163A5C;--ibad-900: #0A1E33;--gold-300: #E8C76B;--gold-500: #D4AF37;--gold-700: #9E7E1F;--signal-success: #6B7A3A;--signal-warning: #C28B2A;--signal-danger: #8C2A1F;--bg: var(--spice-50);--bg-raised: #F7EFD9;--bg-sunk: #EEE2C2;--bg-inverse: var(--stone-600);--fg-1: var(--stone-600);--fg-2: var(--stone-400);--fg-3: var(--stone-300);--fg-4: var(--stone-200);--fg-on-dark: var(--spice-50);--fg-on-spice: var(--stone-600);--accent: var(--spice-500);--accent-hover: var(--spice-600);--accent-pressed: var(--spice-700);--accent-soft: rgba(205,127,50,.12);--emphasis: var(--gold-500);--sacred: var(--ibad-500);--rule-1: rgba(33,26,17,.16);--rule-2: rgba(33,26,17,.08);--rule-strong: var(--stone-400);--rule-bronze: rgba(205,127,50,.45);--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--spice-500);--selection-bg: rgba(205,127,50,.25);--font-display: "Cinzel", "Trajan Pro", "Cormorant Garamond", Georgia, serif;--font-serif: "Cormorant Garamond", "EB Garamond", Georgia, "Times New Roman", serif;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--t-display-1: 72px;--t-display-2: 56px;--t-display-3: 40px;--t-h1: 32px;--t-h2: 24px;--t-h3: 19px;--t-body: 16px;--t-body-sm: 14px;--t-meta: 12px;--t-micro: 10.5px;--lh-tight: 1.05;--lh-snug: 1.2;--lh-normal: 1.5;--lh-loose: 1.7;--tr-display: .14em;--tr-label: .18em;--tr-meta: .08em;--tr-body: .005em;--w-regular: 400;--w-medium: 500;--w-semibold: 600;--w-bold: 700;--s-0: 0;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--s-10: 128px;--r-0: 0;--r-1: 2px;--r-2: 4px;--r-3: 8px;--r-pill: 999px;--shadow-1: 0 1px 0 rgba(33,26,17,.04), 0 1px 2px rgba(33,26,17,.06);--shadow-2: 0 2px 4px rgba(33,26,17,.06), 0 8px 24px rgba(33,26,17,.08);--shadow-3: 0 4px 12px rgba(33,26,17,.1), 0 24px 56px rgba(33,26,17,.14);--shadow-inset: inset 0 1px 0 rgba(255,248,232,.6), inset 0 -1px 0 rgba(33,26,17,.08);--shadow-bronze-glow: 0 0 0 1px rgba(205,127,50,.35), 0 0 24px rgba(205,127,50,.18);--ease-prima: cubic-bezier(.22, .61, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--dur-fast: .14s;--dur-base: .24s;--dur-slow: .42s;--dur-veil: .68s}[data-theme=night]{--bg: var(--stone-600);--bg-raised: var(--stone-500);--bg-sunk: var(--stone-700);--bg-inverse: var(--spice-50);--fg-1: #EFE7D2;--fg-2: #C9BFA6;--fg-3: #8E8472;--fg-4: #5F574A;--rule-1: rgba(244,232,204,.14);--rule-2: rgba(244,232,204,.06);--rule-strong: var(--spice-300);--accent: var(--spice-400);--accent-hover: var(--spice-300);--accent-pressed: var(--spice-500);--accent-soft: rgba(212,178,110,.16)}html,body{background:var(--bg);color:var(--fg-1);font-family:var(--font-serif);font-size:var(--t-body);line-height:var(--lh-normal);letter-spacing:var(--tr-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--selection-bg);color:var(--fg-1)}h1,h2,h3{font-family:var(--font-display);font-weight:var(--w-semibold);color:var(--fg-1);text-transform:uppercase;letter-spacing:var(--tr-display);line-height:var(--lh-tight);margin:0 0 var(--s-4) 0}h1{font-size:var(--t-h1)}h2{font-size:var(--t-h2)}h3{font-size:var(--t-h3);letter-spacing:var(--tr-label);font-weight:var(--w-medium)}h4,h5,h6{font-family:var(--font-sans);font-weight:var(--w-semibold);letter-spacing:var(--tr-meta);text-transform:uppercase;font-size:var(--t-meta);color:var(--fg-2);margin:0 0 var(--s-2) 0}p{font-family:var(--font-serif);font-size:var(--t-body);line-height:var(--lh-normal);color:var(--fg-1);margin:0 0 var(--s-4) 0;text-wrap:pretty}.meta{font-family:var(--font-sans);font-size:var(--t-meta);text-transform:uppercase;letter-spacing:var(--tr-meta);color:var(--fg-3)}code,pre,kbd,samp{font-family:var(--font-mono);font-size:.92em;color:var(--fg-1)}code{background:var(--bg-sunk);padding:.08em .4em;border-radius:var(--r-1);border:1px solid var(--rule-2)}blockquote{font-family:var(--font-serif);font-style:italic;font-size:var(--t-h3);line-height:var(--lh-snug);color:var(--fg-1);border-left:2px solid var(--accent);padding:var(--s-2) var(--s-5);margin:var(--s-5) 0}blockquote cite{display:block;margin-top:var(--s-3);font-style:normal;font-family:var(--font-sans);font-size:var(--t-meta);text-transform:uppercase;letter-spacing:var(--tr-label);color:var(--fg-3)}a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--rule-bronze);transition:color var(--dur-fast) var(--ease-prima),border-color var(--dur-fast) var(--ease-prima)}a:hover{color:var(--accent-hover);border-color:var(--accent-hover)}hr{border:0;height:1px;background:var(--rule-1);margin:var(--s-6) 0}.label{font-family:var(--font-sans);font-size:var(--t-micro);text-transform:uppercase;letter-spacing:var(--tr-label);font-weight:var(--w-semibold);color:var(--fg-2)}.display{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tr-display);line-height:var(--lh-tight)}.codex{font-family:var(--font-serif);font-style:italic;color:var(--fg-2)}.sigil--lit{filter:drop-shadow(0 0 6px rgba(232,199,107,.55)) drop-shadow(0 0 14px rgba(205,127,50,.35));animation:sigil-breathe 3.4s ease-in-out infinite}@keyframes sigil-breathe{0%,to{filter:drop-shadow(0 0 6px rgba(232,199,107,.5)) drop-shadow(0 0 14px rgba(205,127,50,.3))}50%{filter:drop-shadow(0 0 8px rgba(232,199,107,.7)) drop-shadow(0 0 22px rgba(205,127,50,.45))}}.sigil--lit-still{filter:drop-shadow(0 0 4px rgba(232,199,107,.5)) drop-shadow(0 0 10px rgba(205,127,50,.3))}.rule-ornate{display:flex;align-items:center;gap:var(--s-3);color:var(--accent);margin:var(--s-6) 0}.rule-ornate:before,.rule-ornate:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--rule-bronze),transparent)}.rule-ornate:before{background:linear-gradient(90deg,transparent,var(--rule-bronze))}.rule-ornate:after{background:linear-gradient(90deg,var(--rule-bronze),transparent)}:root{--bg-elev: var(--bg-raised);--bg-elev-2: var(--bg-sunk);--fg: var(--fg-1);--fg-dim: var(--fg-3);--border: var(--rule-1);--danger: var(--signal-danger);--user-bubble: var(--bg-sunk);--accent-fg: var(--fg-on-spice);--text-muted: var(--fg-3);--panel: var(--bg-raised)}@media (prefers-color-scheme: dark){:root:not([data-theme=day]){--bg: var(--stone-600);--bg-raised: var(--stone-500);--bg-sunk: var(--stone-700);--bg-inverse: var(--spice-50);--fg-1: #EFE7D2;--fg-2: #C9BFA6;--fg-3: #8E8472;--fg-4: #5F574A;--rule-1: rgba(244,232,204,.14);--rule-2: rgba(244,232,204,.06);--rule-strong: var(--spice-300);--accent: var(--spice-400);--accent-hover: var(--spice-300);--accent-pressed: var(--spice-500);--accent-soft: rgba(212,178,110,.16);color-scheme:dark}}[data-theme=night]{--bg: var(--stone-600);--bg-raised: var(--stone-500);--bg-sunk: var(--stone-700);--bg-inverse: var(--spice-50);--fg-1: #EFE7D2;--fg-2: #C9BFA6;--fg-3: #8E8472;--fg-4: #5F574A;--rule-1: rgba(244,232,204,.14);--rule-2: rgba(244,232,204,.06);--rule-strong: var(--spice-300);--accent: var(--spice-400);--accent-hover: var(--spice-300);--accent-pressed: var(--spice-500);--accent-soft: rgba(212,178,110,.16);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg-1);font-family:var(--font-sans);font-size:var(--t-body-sm);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a,.link{color:var(--accent);text-decoration:none}a:hover,.link:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;box-shadow:var(--focus-ring)}code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-sunk);padding:1px 5px;border-radius:var(--r-2);border:1px solid var(--rule-2)}.dim{color:var(--fg-dim)}.small{font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:16px;top:-48px;z-index:10;padding:10px 14px;border-radius:var(--r-2);background:var(--accent);color:var(--fg-on-spice)}.skip-link:focus{top:16px}.layout{display:grid;grid-template-columns:240px 1fr;height:100%}.sidebar{background:var(--bg-raised);border-right:1px solid var(--rule-1);padding:var(--s-4) 0;display:flex;flex-direction:column;overflow:hidden}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 18px 18px;font-family:var(--font-display);font-weight:var(--w-semibold);font-size:14px;letter-spacing:var(--tr-display);text-transform:uppercase;border-bottom:1px solid var(--rule-1);margin-bottom:12px}.sidebar nav{display:flex;flex-direction:column}.channel-rail{flex:1;overflow-y:auto;padding:0 0 var(--s-3)}.sidebar-section-label{padding:var(--s-1) var(--s-5) var(--s-2);color:var(--fg-3);font-family:var(--font-sans);font-size:var(--t-micro);font-weight:var(--w-semibold);letter-spacing:var(--tr-label);text-transform:uppercase}.channel-link{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);width:100%;background:transparent;border:0;border-left:3px solid transparent;color:var(--fg-2);cursor:pointer;padding:var(--s-2) var(--s-4) var(--s-2) calc(var(--s-4) - 3px);text-align:left;font-family:var(--font-sans);font-size:var(--t-body-sm);transition:background var(--dur-fast) var(--ease-prima),border-color var(--dur-fast) var(--ease-prima)}.channel-link:hover{background:var(--accent-soft);color:var(--fg-1)}.channel-link.active{background:var(--accent-soft);border-left-color:var(--accent);color:var(--fg-1)}.channel-link-inner{display:flex;align-items:center;gap:var(--s-2);min-width:0}.channel-link-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-avatar-wrap{width:18px;height:18px;flex-shrink:0;background-color:var(--agent-color, var(--accent));mask-image:var(--avatar-mask, url(/assets/icon-acolyte.svg));-webkit-mask-image:var(--avatar-mask, url(/assets/icon-acolyte.svg));mask-size:contain;-webkit-mask-size:contain;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center}.channel-scope{color:var(--fg-dim);font-size:11px}.sidebar-error{color:var(--danger);padding:4px 18px 0}.btn-open-record{display:flex;align-items:center;gap:var(--s-2);width:calc(100% - var(--s-4) * 2);margin:0 var(--s-4) var(--s-4);padding:var(--s-2) var(--s-4);background:var(--accent-soft);border:1px solid var(--rule-bronze, var(--rule-1));border-radius:var(--r-2);color:var(--accent);font-family:var(--font-sans);font-size:var(--t-meta);font-weight:var(--w-semibold);letter-spacing:var(--tr-meta);cursor:pointer;text-transform:uppercase;transition:background var(--dur-fast) var(--ease-prima),border-color var(--dur-fast) var(--ease-prima)}.btn-open-record:hover{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent)}.sidebar-bottom{margin-top:auto;padding:var(--s-3) var(--s-4);border-top:1px solid var(--rule-1);display:flex;align-items:center;justify-content:space-between}.btn-ways{background:none;border:none;cursor:pointer;color:var(--fg-3);font-size:16px;padding:var(--s-2);border-radius:var(--r-2);display:flex;align-items:center;gap:var(--s-2);transition:color var(--dur-fast) var(--ease-prima);position:relative}.btn-ways:hover{color:var(--fg-1)}.workers-section{padding:0 0 var(--s-3);border-bottom:1px solid var(--rule-1);margin-bottom:var(--s-3)}.workers-toggle{display:flex;align-items:center;gap:var(--s-2);width:100%;background:none;border:none;cursor:pointer;padding:var(--s-1) var(--s-5) var(--s-2);color:var(--fg-3);font-family:var(--font-sans);font-size:var(--t-micro);font-weight:var(--w-semibold);letter-spacing:var(--tr-label);text-transform:uppercase;text-align:left}.workers-toggle:hover{color:var(--fg-2)}.workers-toggle-chevron{display:inline-block;transition:transform var(--dur-fast) var(--ease-prima);font-style:normal}.workers-toggle-chevron--open{transform:rotate(90deg)}.worker-link{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;border-left:3px solid transparent;padding:var(--s-1) var(--s-4) var(--s-1) calc(var(--s-4) - 3px);cursor:pointer;color:var(--fg-2);font-family:var(--font-sans);font-size:var(--t-body-sm);text-align:left}.worker-link:hover{background:var(--accent-soft);color:var(--fg-1)}.worker-status-dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--fg-4);flex-shrink:0}.worker-status-dot--running{background:var(--signal-success)}.worker-status-dot--pending{background:var(--signal-warning)}.nav-link{padding:9px 18px;color:var(--fg);border-left:2px solid transparent}.nav-link:hover{background:var(--bg-elev-2);text-decoration:none}.nav-link.active{background:var(--bg-elev-2);border-left-color:var(--accent);color:var(--fg)}.nav-group{display:flex;flex-direction:column}.nav-group-row{display:flex;align-items:stretch}.nav-group-label{flex:1}.nav-group-toggle{background:none;border:none;cursor:pointer;padding:0 14px 0 4px;color:var(--fg-muted, var(--fg));display:flex;align-items:center;justify-content:center;border-left:2px solid transparent}.nav-group-toggle:hover{background:var(--bg-elev-2)}.nav-chevron{display:inline-block;font-size:18px;line-height:1;transition:transform .18s ease;transform:rotate(0)}.nav-chevron-open{transform:rotate(90deg)}.nav-recents{list-style:none;margin:0;padding:0}.nav-recent-link{display:flex;align-items:baseline;justify-content:space-between;gap:6px;width:100%;background:none;border:none;border-left:2px solid transparent;padding:6px 18px 6px 28px;cursor:pointer;color:var(--fg);text-align:left;font-size:13px}.nav-recent-link:hover{background:var(--bg-elev-2);text-decoration:none;border-left-color:var(--accent)}.nav-recent-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.nav-recent-hint{font-size:11px;flex-shrink:0;opacity:.6}.nav-recents-empty{padding:4px 28px 6px;font-size:12px;margin:0}.main{overflow:hidden;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.app-header-title{font-family:var(--font-display);font-size:var(--t-h3);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--fg-1);margin:0}.app-header-title-row{display:inline-flex;align-items:center;gap:10px}.app-header-user{color:var(--fg-dim);font-size:13px}.mode-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;line-height:1;border:1px solid transparent}.mode-standalone{background:var(--bg-elev-2);border-color:var(--border);color:var(--fg-dim)}.mode-team{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--accent)}.sse-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;line-height:1;border:1px solid transparent}.sse-badge__dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.sse-badge--connected{background:color-mix(in srgb,var(--signal-success) 12%,transparent);border-color:color-mix(in srgb,var(--signal-success) 35%,var(--border));color:var(--signal-success)}.sse-badge--connected .sse-badge__dot{background:var(--signal-success)}.sse-badge--idle{background:color-mix(in srgb,var(--panel) 65%,transparent);border-color:var(--border);color:var(--text-muted)}.sse-badge--idle .sse-badge__dot{background:var(--text-muted)}.sse-badge--reconnecting{background:color-mix(in srgb,var(--signal-warning) 12%,transparent);border-color:color-mix(in srgb,var(--signal-warning) 35%,var(--border));color:var(--signal-warning)}.sse-badge--reconnecting .sse-badge__dot{background:var(--signal-warning);animation:sse-pulse 1.2s ease-in-out infinite}.sse-badge--disconnected{background:color-mix(in srgb,#ef4444 12%,transparent);border-color:color-mix(in srgb,#ef4444 35%,var(--border));color:#b91c1c}.sse-badge--disconnected .sse-badge__dot{background:#ef4444}.sse-badge__reconnect-btn{background:none;border:none;padding:0;margin-left:4px;font-size:12px;font-weight:600;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.sse-badge__reconnect-btn:hover{opacity:.8}@keyframes sse-pulse{0%,to{opacity:1}50%{opacity:.35}}.connection-banner{border:1px solid transparent;border-radius:10px;font-size:13px;font-weight:600;margin-bottom:16px;padding:10px 14px}.connection-banner--reconnecting{background:color-mix(in srgb,#f59e0b 14%,var(--bg-elev));border-color:color-mix(in srgb,#f59e0b 35%,var(--border));color:#fbbf24}.connection-banner--disconnected{background:color-mix(in srgb,#ef4444 14%,var(--bg-elev));border-color:color-mix(in srgb,#ef4444 35%,var(--border));color:#fca5a5}.page-shell{max-width:760px;margin:0 auto;padding:32px}.loading,.empty-state{padding:32px;color:var(--fg-dim)}.empty-state h2{color:var(--fg);margin-top:0;margin-bottom:8px}.empty-state p{margin:0 0 12px}.empty-state-icon{font-size:28px;margin-bottom:8px;line-height:1}.empty-state-action{margin-top:4px}.auth-screen{min-height:100%;display:grid;place-items:center;padding:32px}.auth-card{width:min(420px,100%);background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:24px}.auth-card h1{margin-top:0;margin-bottom:8px}.auth-card p{margin-top:0;margin-bottom:20px;color:var(--fg-dim)}.page{padding:24px 32px;overflow:auto;flex:1;min-width:0}.page-header{margin-bottom:16px}.page-header h1{margin:0 0 4px;font-size:22px}.projects-table-wrap{overflow-x:auto}.projects-table{width:100%;border-collapse:collapse;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;overflow:hidden}.projects-table th,.projects-table td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.projects-table thead th{background:var(--bg-elev-2);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-dim)}.projects-table tbody tr:last-child th,.projects-table tbody tr:last-child td{border-bottom:0}.agents-sort-button{width:100%;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.agents-sort-indicator,.tag-builtin{color:var(--fg-dim)}.tag-custom{color:var(--accent)}.project-detail-backlink{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;font-size:13px}.project-detail-summary{margin:0;color:var(--fg-dim)}.agent-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.agent-detail-summary{margin:0;color:var(--fg-dim)}.agent-detail-banner{margin-bottom:16px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elev);color:var(--fg-dim)}.project-detail-layout{display:grid;gap:16px}.project-detail-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:18px}.project-detail-card h2{margin:0 0 14px;font-size:16px}.project-detail-meta{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:10px 16px;margin:0}.project-detail-meta dt{color:var(--fg-dim);font-weight:600}.project-detail-meta dd{margin:0}.project-detail-actions{display:flex;justify-content:flex-end;margin-top:16px}.project-hard-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0}.project-hard-rule{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.project-hard-rule dt{color:var(--fg-dim);font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.project-hard-rule dd{margin:6px 0 0;font-size:14px}.project-hard-rules-form{display:grid;gap:14px}.project-hard-rule-input{display:grid;gap:10px;align-content:start}.project-hard-rule-label{color:var(--fg-dim);font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.project-hard-rule input[type=checkbox]{width:16px;height:16px}.project-hard-rule-text-input{background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-size:13px;padding:6px 10px;width:100%}.project-hard-rule-text-input:focus{outline:none;border-color:var(--accent)}.project-soft-rules-form{display:grid;gap:12px}.project-soft-rules-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}.project-soft-rules-editor,.project-soft-rules-preview-card{min-width:0}.project-soft-rules-label{color:var(--fg-dim);font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.project-soft-rules-input{background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-size:13px;line-height:1.5;min-height:140px;padding:10px 12px;resize:vertical;width:100%}.project-soft-rules-input:focus{outline:none;border-color:var(--accent)}.project-soft-rules-hint{color:var(--fg-dim);font-size:12px;margin:0}.project-soft-rules-preview-card{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.project-soft-rules-preview-title{margin:0 0 10px;color:var(--fg-dim);font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.project-soft-rules-preview{min-height:140px}.project-soft-rules-preview .md>:first-child{margin-top:0}.project-soft-rules-preview .md>:last-child{margin-bottom:0}.agent-detail-markdown .md>:first-child{margin-top:0}.agent-detail-markdown .md>:last-child{margin-bottom:0}.project-save-feedback{margin:0;font-size:12px}.project-save-feedback-success{color:#4ade80}.project-save-feedback-error{color:var(--danger)}.project-detail-empty{padding:0}.projects-count{width:120px}.error-notice{background:#f871711a;border:1px solid var(--danger);color:var(--danger);padding:12px 14px;border-radius:8px;margin-bottom:16px}.error-notice.inline{margin-bottom:12px}.error-notice-title{margin:0 0 4px;font-size:16px}.error-notice-message{margin:0}.error-notice-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.error-details{background:var(--bg-elev-2);padding:12px;border-radius:8px;overflow:auto}.loading-state{display:flex;align-items:flex-start;gap:12px;padding:16px 0;color:var(--fg-dim)}.loading-state.inline{padding:10px 0}.loading-state.centered{justify-content:center;padding:48px 32px}.loading-spinner{width:18px;height:18px;border:2px solid rgba(59,130,246,.25);border-top-color:var(--accent);border-radius:999px;flex:none;margin-top:2px;animation:spin .9s linear infinite}.loading-state-label{color:var(--fg);font-weight:500}.loading-state-detail{margin-top:2px}.skeleton-state{display:flex;flex-direction:column;gap:14px;padding:12px 0}.skeleton-chat-row{display:flex}.skeleton-chat-row--user{justify-content:flex-end}.skeleton-chat-row--assistant{justify-content:flex-start}.skeleton-chat-bubble,.skeleton-wiki-sheet{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:14px}.skeleton-chat-bubble{display:flex;flex-direction:column;gap:10px;max-width:min(100%,42rem);width:min(100%,42rem)}.skeleton-chat-bubble--user{background:color-mix(in srgb,var(--user-bubble) 80%,var(--bg-elev))}.skeleton-chat-bubble--assistant{background:color-mix(in srgb,var(--bg-elev) 70%,var(--bg-elev-2))}.skeleton-chat-bubble--narrow{width:min(100%,30rem)}.skeleton-wiki-sheet{display:flex;flex-direction:column;gap:12px;max-width:76ch;margin:24px 22px 32px}.skeleton-line{display:block;height:12px;width:100%;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--bg-elev-2) 88%,transparent) 25%,color-mix(in srgb,var(--fg-dim) 20%,var(--bg-elev-2)),color-mix(in srgb,var(--bg-elev-2) 88%,transparent) 75%);background-size:220% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-line--title{height:18px}.skeleton-line--25{width:25%}.skeleton-line--30{width:30%}.skeleton-line--35{width:35%}.skeleton-line--45{width:45%}.skeleton-line--55{width:55%}.skeleton-line--60{width:60%}.skeleton-line--70{width:70%}.skeleton-line--80{width:80%}.skeleton-line--85{width:85%}.skeleton-line--90{width:90%}.skeleton-line--95{width:95%}.skeleton-line--100{width:100%}.btn{background:var(--bg-elev-2);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:6px 14px;font-size:13px;cursor:pointer}.btn:hover{background:var(--bg-elev)}.btn.primary{background:var(--accent);color:var(--fg-on-spice);border:none;padding:var(--s-2) var(--s-5);border-radius:var(--r-2);font-family:var(--font-sans);font-size:var(--t-meta);font-weight:var(--w-semibold);letter-spacing:var(--tr-label);text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast) var(--ease-prima)}.btn.primary:hover{background:var(--accent-hover)}.btn.primary:active{background:var(--accent-pressed)}.btn.primary:disabled{opacity:.4;cursor:not-allowed}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.cancel{background:var(--danger);border-color:var(--danger);color:var(--accent-fg)}.chat{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.channel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--rule-1);background:var(--bg-raised);padding:var(--s-3) var(--s-5)}.channel-header-title{font-family:var(--font-display);font-size:var(--t-h3);font-weight:var(--w-semibold);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--fg-1)}.channel-header-description{font-family:var(--font-sans);font-size:var(--t-meta);color:var(--fg-3);margin-top:2px}.channel-header-scope{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:999px;color:var(--fg-dim);font-size:12px;padding:3px 9px;white-space:nowrap}.chat-scroll{flex:1;min-height:0;overflow:auto;padding:24px 32px 0}.chat-log{display:flex;flex-direction:column}.turn-wrapper{margin-bottom:18px}.turn-wrapper+.turn-wrapper:not(.has-separator) .bubble{border-top:1px solid var(--border);padding-top:14px}.turn-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding-bottom:var(--s-2);margin-bottom:var(--s-2)}.turn-header--user{justify-content:flex-end}.turn-actor-badge{display:flex;align-items:center;gap:var(--s-2)}.turn-actor-icon{font-size:11px;line-height:1}.turn-actor-avatar{width:20px;height:20px;flex-shrink:0}.turn-actor-name{font-family:var(--font-sans);font-size:var(--t-meta);font-weight:var(--w-semibold);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--fg-2)}.turn-agent-slug{font-family:var(--font-mono);font-size:var(--t-micro);color:var(--fg-3);padding:1px var(--s-1);background:var(--bg-sunk);border-radius:var(--r-1)}.turn-ts{font-family:var(--font-mono);font-size:var(--t-micro);color:var(--fg-4);letter-spacing:var(--tr-meta);cursor:default;-webkit-user-select:none;user-select:none}.time-separator{display:flex;align-items:center;gap:10px;margin:16px 0 10px;color:var(--fg-dim);font-size:11px;font-style:italic;-webkit-user-select:none;user-select:none}.time-separator-line{flex:1;height:1px;background:var(--border);opacity:.5}.time-separator-label{white-space:nowrap;opacity:.7;letter-spacing:.02em}.bubble{max-width:800px;padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--rule-2)}.bubble.user{margin-left:auto;text-align:right;background:var(--bg-raised)}.bubble--agent-activity{opacity:.88;border-left:2px solid var(--accent, #6366f1);padding-left:10px}.bubble.user .user-text{display:inline-block;background:var(--bg-raised);border:1px solid var(--rule-1);padding:var(--s-2) var(--s-4);border-radius:14px;white-space:pre-wrap;text-align:left;margin:0;font-family:var(--font-sans);font-size:var(--t-body-sm);color:var(--fg-1)}.route-tag{font-size:11px;color:var(--fg-dim);margin-top:4px}.assistant-turn-status{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) 0 var(--s-3);color:var(--fg-3);font-family:var(--font-serif);font-style:italic;font-size:var(--t-body-sm)}.sigil-considers{width:20px;height:20px;animation:sigil-pulse 2.4s ease-in-out infinite;opacity:.7}@keyframes sigil-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}.assistant-turn-status-text{font-style:italic;color:var(--fg-3)}.assistant-turn-status-dots{display:none}.copy-btn-wrap{position:relative}.copy-btn{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;padding:4px;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;color:var(--fg-dim);cursor:pointer;z-index:1;line-height:0;transition:color .15s,background .15s}.copy-btn:hover{background:var(--bg-elev-2);color:var(--fg)}.copy-btn--copied{color:#4ade80;border-color:#4ade80}@media (hover: hover){.copy-btn{opacity:0;pointer-events:none;transition:opacity .15s,color .15s,background .15s}.copy-btn-wrap:hover .copy-btn,.copy-btn-wrap:focus-within .copy-btn{opacity:1;pointer-events:auto}}.copy-btn--code{top:8px;right:8px}.activity-heartbeat{display:flex;align-items:center;gap:6px;padding:4px 8px;margin:0 0 6px;border-radius:6px;border:1px solid rgba(59,130,246,.35);background:var(--bg-elev-2);font-size:12px;color:var(--fg);transition:opacity .3s}.activity-heartbeat.stale{opacity:.5;border-color:var(--border);color:var(--fg-dim)}.heartbeat-spinner{font-family:ui-monospace,monospace;font-size:11px;color:var(--accent);display:inline-block;animation:spin 1.4s linear infinite}.activity-heartbeat.stale .heartbeat-spinner{animation:none;color:var(--fg-dim)}.heartbeat-agent{font-weight:600}.heartbeat-sep{color:var(--fg-dim)}.heartbeat-action{color:var(--fg-dim);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heartbeat-elapsed{font-family:ui-monospace,monospace;font-size:11px;color:var(--fg-dim);white-space:nowrap}.activity-strip{margin:0 0 8px;font-size:12px}.activity-summary{display:flex;flex-wrap:wrap;gap:6px}.activity-pill{display:inline-flex;align-items:center;gap:6px;background:var(--bg-elev);border:1px solid var(--border);color:var(--fg-dim);padding:3px 10px;border-radius:999px;cursor:pointer;font-size:12px}.activity-pill:hover{background:var(--bg-elev-2)}.activity-pill.running{color:var(--accent);border-color:#3b82f673}.activity-pill .glyph{font-family:ui-monospace,monospace;font-size:11px}.activity-pill.running .glyph{display:inline-block;animation:spin 1s linear infinite}.activity-pill .caret{color:var(--fg-dim);font-size:10px}.activity-headlines{display:flex;flex-direction:column;gap:2px;margin-top:6px}.activity-headline{display:inline-flex;align-items:center;gap:6px;padding:2px 4px;color:var(--fg-dim)}.activity-headline.status-running{color:var(--accent)}.activity-headline.status-failed{color:var(--danger)}.activity-headline .glyph{font-family:ui-monospace,monospace;font-size:11px;width:12px;text-align:center}.activity-headline.status-running .glyph{animation:spin 1s linear infinite}.agent-tag{font-size:10px;text-transform:lowercase;background:#3b82f629;color:#93c5fd;border:1px solid rgba(59,130,246,.35);padding:1px 6px;border-radius:4px;letter-spacing:.02em}.activity-thinking,.activity-details{margin-top:8px;padding:10px 12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px}.activity-details{display:flex;flex-direction:column;gap:6px}.thinking-block{margin:0;padding:8px;background:var(--bg-elev-2);border-radius:4px;white-space:pre-wrap;font-size:12px;line-height:1.5;max-height:280px;overflow:auto}.activity-row{border:1px solid var(--border);border-radius:6px;background:var(--bg-elev-2)}.activity-row.status-running{border-color:#3b82f673}.activity-row.status-failed{border-color:var(--danger)}.activity-row-head{width:100%;display:flex;align-items:center;gap:8px;background:transparent;border:0;color:var(--fg);text-align:left;padding:6px 10px;cursor:pointer;font-size:12px}.activity-row.status-running .activity-row-head .glyph{animation:spin 1s linear infinite;color:var(--accent)}.activity-row.status-failed .activity-row-head .glyph{color:var(--danger)}.activity-row .glyph{font-family:ui-monospace,monospace;width:12px;text-align:center}.activity-row .caret{margin-left:auto;color:var(--fg-dim)}.activity-row-body{padding:0 10px 10px;display:flex;flex-direction:column;gap:6px}.row-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-dim)}.composer{border-top:1px solid var(--border);background:var(--bg-elev);padding:14px 32px;display:flex;flex-direction:column;gap:8px}.composer textarea{width:100%;font-family:var(--font-sans);font-size:var(--t-body-sm);background:var(--bg-raised);border:1px solid var(--rule-1);border-radius:var(--r-3);color:var(--fg-1);padding:var(--s-3) var(--s-4);resize:none;transition:border-color var(--dur-fast) var(--ease-prima),box-shadow var(--dur-fast) var(--ease-prima)}.composer textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-bronze-glow)}.composer-textarea--disabled,.composer textarea:disabled{background:color-mix(in srgb,var(--bg-elev-2) 88%,black);border-color:color-mix(in srgb,var(--border) 80%,black);cursor:not-allowed;opacity:.5}.composer-help{margin-top:-2px}.composer-status{border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:600;padding:8px 10px}.composer-status--reconnecting{background:color-mix(in srgb,#f59e0b 14%,transparent);border-color:color-mix(in srgb,#f59e0b 35%,var(--border));color:#fbbf24}.composer-status--disconnected{background:color-mix(in srgb,#ef4444 12%,transparent);border-color:color-mix(in srgb,#ef4444 35%,var(--border));color:#fca5a5}.composer-queued{align-items:center;border:1px solid transparent;border-radius:10px;color:var(--fg-dim);display:flex;font-size:12px;gap:10px;justify-content:space-between;padding:8px 10px;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.composer-queued--highlight{background:color-mix(in srgb,#f59e0b 14%,transparent);border-color:color-mix(in srgb,#f59e0b 35%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,#f59e0b 22%,transparent)}.composer-queued-link{flex:0 0 auto;text-underline-offset:2px}.dreaming-indicator{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) 0;font-family:var(--font-serif);font-style:italic;font-size:var(--t-body-sm);color:var(--fg-3)}.dreaming-sigil{width:16px;height:16px;animation:sigil-pulse 2.4s ease-in-out infinite}.composer-actions{display:flex;justify-content:flex-end;gap:6px}.composer-actions .btn:disabled{cursor:not-allowed;opacity:.55}.message--sister .md p{font-family:var(--font-sans);font-size:var(--t-body-sm);line-height:var(--lh-loose)}.message--sister .md p:first-of-type:first-letter{font-family:var(--font-serif);font-weight:var(--w-semibold);font-size:2.4em;font-style:normal;color:var(--sister-color, var(--ibad-500));float:left;line-height:.82;margin:.06em .1em 0 0;padding-top:.04em}.empty-state--ritual{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s-9) var(--s-6);gap:var(--s-3)}.empty-state-sigil{width:56px;height:56px;opacity:.35;margin-bottom:var(--s-2)}.empty-state-heading{font-family:var(--font-display);font-size:var(--t-h2);letter-spacing:var(--tr-display);text-transform:uppercase;color:var(--fg-1);margin:0}.empty-state-sub{font-family:var(--font-serif);font-style:italic;font-size:var(--t-body);color:var(--fg-2);margin:0}.empty-state-prompts{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2);margin-top:var(--s-3);max-width:480px}.empty-state-prompt-btn{background:var(--bg-raised);border:1px solid var(--rule-1);border-radius:var(--r-2);padding:var(--s-2) var(--s-3);font-family:var(--font-sans);font-size:var(--t-body-sm);color:var(--fg-2);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-prima),color var(--dur-fast) var(--ease-prima)}.empty-state-prompt-btn:hover{border-color:var(--accent);color:var(--fg-1)}.empty-state-hint{font-family:var(--font-sans);font-size:var(--t-meta);color:var(--fg-4);margin-top:var(--s-2)}.md{line-height:1.55}.md p:first-child{margin-top:0}.md p:last-child{margin-bottom:0}.md pre{background:var(--bg-elev-2);border-radius:6px;padding:12px;overflow:auto}.md pre code{background:transparent;padding:0}.md table{border-collapse:collapse;margin:1em 0}.md th,.md td{border:1px solid var(--border);padding:6px 10px}.workers-layout{display:grid;grid-template-columns:320px 1fr;gap:18px;align-items:start}.workers-list{display:flex;flex-direction:column;gap:6px}.worker-row{text-align:left;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;color:var(--fg)}.worker-row.selected,.worker-row:hover{background:var(--bg-elev-2)}.worker-row-head{display:flex;justify-content:space-between;align-items:center}.worker-status{font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}.worker-status--running{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.worker-status--completed{background:color-mix(in srgb,#4caf50 15%,transparent);color:#4caf50}.worker-status--error{background:color-mix(in srgb,#f44336 15%,transparent);color:#f44336}.worker-row-desc{margin-top:4px;font-size:13px;color:var(--fg)}.workers-detail{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:18px}.worker-detail-description{margin:4px 0 8px;font-size:15px}.worker-detail-slug,.worker-detail-taskid{font-size:.75em;font-family:var(--font-mono, monospace)}.worker-detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px}.worker-events{display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto;background:var(--bg-elev-2);border-radius:6px;padding:10px 12px;margin-bottom:12px;font-size:12px;font-family:var(--font-mono, monospace)}.worker-event{display:flex;gap:8px;align-items:baseline;line-height:1.5}.worker-event-ts{color:var(--text-dim, #888);flex-shrink:0;font-size:11px}.worker-event-body{display:flex;gap:4px;align-items:baseline;flex-wrap:wrap;overflow:hidden}.worker-event-icon{flex-shrink:0}.worker-event--tool_complete .worker-event-icon{opacity:.7}.msg-queued-indicator{font-size:.8em;opacity:.6;vertical-align:middle;-webkit-user-select:none;user-select:none}.msg-queued-backend-indicator{display:inline-block;font-size:.78em;opacity:.75;margin-top:4px;color:var(--fg-dim);-webkit-user-select:none;user-select:none}.output{background:var(--bg-elev-2);padding:12px;border-radius:6px;overflow:auto;white-space:pre-wrap;font-size:13px}.projects-toolbar{margin-bottom:16px}.projects-register-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.projects-path-input{background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;color:var(--fg);font-size:13px;padding:6px 10px;width:380px;max-width:100%}.projects-path-input:focus{outline:none;border-color:var(--accent)}.projects-register-error{font-size:12px}.projects-disabled{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:18px}.projects-empty{padding:24px 0}.projects-list{display:flex;flex-direction:column;gap:8px}.project-row{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.project-row-info{display:flex;flex-direction:column;gap:4px;min-width:0}.project-root{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-meta{display:flex;gap:12px;font-size:12px;flex-wrap:wrap}.project-badge{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:10px;padding:1px 8px;font-size:11px;color:var(--fg)}.project-row-actions{display:flex;gap:6px;flex-shrink:0}.project-chat-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;background:color-mix(in srgb,var(--accent) 8%,var(--bg-elev));border-bottom:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));flex-shrink:0}.project-chat-header-identity{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.project-chat-icon{font-size:16px;flex-shrink:0}.project-chat-title{font-size:14px;white-space:nowrap;flex-shrink:0}.project-chat-path{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.wiki{display:flex;flex-direction:column;min-height:100%}.wiki-layout{display:grid;grid-template-columns:minmax(320px,360px) minmax(0,1fr);gap:20px;flex:1;min-height:0}.wiki-mobile-nav-bar{display:none}.wiki-sidebar,.wiki-main{min-height:0}.wiki-sidebar{display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;overflow:hidden}.wiki-sidebar-header{position:sticky;top:0;z-index:1;display:flex;flex-direction:column;gap:14px;padding:16px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--bg-elev) 0%,rgba(22,27,34,.98) 100%)}.wiki-sidebar-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.wiki-sidebar-header-row h2{margin:0 0 4px;font-size:16px}.wiki-sidebar-header-row p{margin:0}.wiki-search{display:flex;flex-direction:column;gap:12px}.wiki-search-field input,.wiki-filter select{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--fg);padding:9px 10px;border-radius:8px}.wiki-filter{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--fg-dim)}.wiki-search-meta,.wiki-shortcuts,.wiki-scope-legend{color:var(--fg-dim)}.wiki-scope-header-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.wiki-scope-header-row h1{margin:0}.wiki-shortcuts{border-top:1px solid var(--border);padding-top:12px}.wiki-scope-legend{display:flex;flex-wrap:wrap;gap:8px}.wiki-scope-legend>span{display:inline-flex;align-items:center;gap:4px}.wiki-sidebar-body{flex:1;min-height:0;overflow:auto;padding:12px}.wiki-tree,.wiki-tree-children{list-style:none;margin:0;padding:0}.wiki-tree-children{margin-top:4px}.wiki-node{margin:2px 0}.wiki-node-button{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--fg);text-align:left;cursor:pointer}.wiki-node-folder-button{color:var(--fg-dim)}.wiki-node-folder-button:hover,.wiki-node-folder-button.expanded,.wiki-node-page-button:hover{background:var(--bg-elev-2);border-color:var(--border);color:var(--fg)}.wiki-node-page-button{align-items:flex-start}.wiki-node-page-button.selected{background:#3b82f61f;border-color:#3b82f659;box-shadow:inset 2px 0 0 var(--accent)}.wiki-node-icon{width:14px;flex:none;text-align:center;color:var(--fg-dim)}.wiki-node-page-button.selected .wiki-node-icon{color:#93c5fd}.wiki-node-page-button.selected .wiki-node-scope-icon-personal{color:#ddd6fe}.wiki-node-page-button.selected .wiki-node-scope-icon-team{color:#a7f3d0}.wiki-node-content{min-width:0;display:flex;flex:1;flex-direction:column;gap:4px}.wiki-node-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wiki-node-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:11px}.wiki-node-count{margin-left:auto;border:1px solid var(--border);border-radius:999px;padding:0 6px;font-size:11px;color:var(--fg-dim)}.wiki-main{min-width:0;display:flex;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;overflow:hidden}.wiki-main>.wiki-empty-state{width:100%}.wiki-document{width:100%;min-height:0;display:flex;flex-direction:column}.wiki-page-header{position:sticky;top:0;z-index:1;padding:18px 22px 16px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--bg-elev) 0%,rgba(22,27,34,.98) 100%)}.wiki-page-header-main{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.wiki-page-title-block{min-width:0}.wiki-page-title-block h2{margin:0;font-size:28px;line-height:1.2}.wiki-page-summary{margin:8px 0 0;max-width:72ch;color:var(--fg-dim)}.wiki-page-actions{display:flex;gap:8px;flex:none}.wiki-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 12px;padding:0}.wiki-breadcrumbs li{display:flex;align-items:center;min-width:0}.wiki-breadcrumbs li+li:before{content:"/";margin-right:8px;color:var(--fg-dim)}.wiki-breadcrumb-button{display:inline-block;max-width:100%;overflow:hidden;padding:0;border:0;background:transparent;color:var(--fg-dim);text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.wiki-breadcrumbs [aria-current=page]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wiki-breadcrumb-button:hover{color:var(--fg);text-decoration:underline}.wiki-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;font-size:12px;color:var(--fg-dim)}.wiki-meta>*{max-width:100%}.wiki-badge,.wiki-tag,.wiki-meta-item{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:3px 8px;background:var(--bg-elev-2)}.wiki-badge{color:#93c5fd;border-color:#3b82f659}.wiki-scope-badge{display:inline-flex;align-items:center;gap:4px}.wiki-scope-badge-personal{color:#c4b5fd;border-color:#c4b5fd59;background:#c4b5fd14}.wiki-scope-badge-team{color:#6ee7b7;border-color:#6ee7b759;background:#6ee7b714}.wiki-node-scope-icon-personal{color:#c4b5fd}.wiki-node-scope-icon-team{color:#6ee7b7}.wiki-tag{color:var(--fg)}.wiki-meta-path{max-width:100%;overflow:auto;white-space:nowrap}.wiki-document-body{flex:1;min-height:0;overflow:auto}.wiki-article{box-sizing:border-box;width:100%;max-width:min(76ch,100%);padding:24px 22px 32px}.wiki-article .md{overflow-wrap:anywhere}.wiki-article .md img{max-width:100%;height:auto}.wiki-article .md table{display:block;width:max-content;max-width:100%;overflow-x:auto}.wiki-empty-state{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;margin:auto;max-width:56ch;padding:32px}.wiki-empty-state.compact{margin:0;max-width:none;padding:20px 12px}.wiki-empty-state h2{margin:0;font-size:20px}.wiki-empty-state p{margin:0;color:var(--fg-dim)}.wiki-empty-state-actions{display:flex;flex-wrap:wrap;gap:8px}.wiki-mobile-sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;justify-content:flex-start}.wiki-mobile-sidebar-backdrop{flex:1;border:0;background:#0a0f19b8}.wiki-mobile-sidebar-panel{position:relative;z-index:1;display:flex;flex-direction:column;gap:12px;width:min(100%,24rem);min-width:0;padding:16px 12px 12px;background:#0a0f19fa;border-right:1px solid var(--border);box-shadow:0 20px 48px #00000059}.wiki-mobile-sidebar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.wiki-mobile-sidebar-title{font-size:14px;font-weight:600}.wiki-mobile-sidebar-panel .wiki-sidebar{flex:1;min-height:0}@media (max-width: 960px){.wiki-layout{grid-template-columns:1fr}.wiki-sidebar{max-height:50vh}.wiki-page-header-main,.wiki-sidebar-header-row,.wiki-scope-legend{flex-direction:column}.wiki-page-actions{width:100%}.wiki-page-actions .btn{flex:1}}@media (max-width: 767px){.wiki{gap:16px}.wiki-mobile-nav-bar{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px}.wiki-mobile-nav-bar .btn{flex:none}.wiki-mobile-nav-label{min-width:0;margin-left:auto;overflow:hidden;color:var(--fg-dim);text-align:right;text-overflow:ellipsis;white-space:nowrap}.wiki-main{min-height:0}.wiki-page-header{padding:16px}.wiki-page-title-block h2{font-size:24px}.wiki-meta{align-items:flex-start}.wiki-article{padding:18px 16px 24px}.wiki-mobile-sidebar-toolbar,.wiki-page-actions{flex-wrap:wrap}.wiki-page-actions .btn,.wiki-mobile-sidebar-toolbar .btn{flex:1 1 160px}}.wiki-edit .row{display:flex;gap:12px;margin-bottom:12px}.wiki-edit input[type=text]{flex:1;background:var(--bg);border:1px solid var(--border);color:var(--fg);padding:8px;border-radius:6px}.wiki-edit label{display:block;width:100%;font-size:12px;color:var(--fg-dim)}.wiki-editor{margin-bottom:16px}.agent-editor-form{display:flex;flex-direction:column;gap:16px}.agent-editor-card{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--bg-elev)}.agent-editor-grid{display:grid;gap:16px}.agent-editor-meta-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0}.agent-editor-meta-list div{display:flex;flex-direction:column;gap:4px}.agent-editor-meta-list dt{font-size:12px;color:var(--fg-dim)}.agent-editor-meta-list dd{margin:0}.agent-editor-skills{display:flex;flex-direction:column;gap:10px}.agent-editor-skill-option{display:flex;align-items:center;gap:8px}.agent-editor-prompt{min-height:240px;font-family:var(--font-mono, "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace)}.agent-editor-toast{margin-bottom:12px}.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.skill-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:14px}.skill-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.tag{font-size:10px;text-transform:uppercase;padding:2px 6px;border-radius:4px;letter-spacing:.05em;background:var(--bg-elev-2);color:var(--fg-dim)}.tag-bundled{color:#93c5fd}.tag-local{color:#86efac}.tag-global{color:#fcd34d}.settings section{margin-bottom:28px}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-field-label{font-size:12px;color:var(--fg-dim)}.settings select{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:6px 10px}.row{display:flex;align-items:center;gap:8px}.settings-row{align-items:flex-end}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.ralph{max-width:760px}.ralph-section{margin-top:24px}.ralph-section h2{font-size:15px;font-weight:600;margin-bottom:10px;color:var(--fg)}.ralph-status-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.ralph-status-row{display:flex;align-items:center;gap:10px;font-size:14px}.ralph-status-label{min-width:90px;color:var(--text-dim, #888);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.ralph-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}.ralph-badge--running{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.ralph-badge--stopped{background:color-mix(in srgb,#888 15%,transparent);color:#888}.ralph-mono{font-family:var(--font-mono, monospace);font-size:13px}.ralph-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:400px}.ralph-controls{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.ralph-form-row{display:flex;align-items:center;gap:10px;font-size:14px}.ralph-form-row label{min-width:140px;color:var(--text-dim, #888);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.ralph-select,.ralph-input{background:var(--bg-elev-2, var(--bg-elev));border:1px solid var(--border);border-radius:5px;color:var(--fg);font-size:13px;padding:5px 8px;min-width:240px}.ralph-input--narrow{min-width:80px;width:80px}.ralph-select:focus,.ralph-input:focus{outline:2px solid var(--accent);outline-offset:1px}.btn{border:none;border-radius:6px;font-size:13px;font-weight:600;padding:6px 14px;cursor:pointer;transition:opacity .1s;align-self:flex-start}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){opacity:.85}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover:not(:disabled){opacity:.85}.ralph-queue-count{font-weight:400;color:var(--text-dim, #888);font-size:13px}.ralph-queue-source{margin-bottom:8px}.ralph-queue{display:flex;flex-direction:column;gap:6px}.ralph-issue{display:block;text-decoration:none;color:inherit;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:10px 12px;transition:background .1s}.ralph-issue:hover{background:var(--bg-elev-2)}.ralph-issue-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.ralph-issue-number{font-family:var(--font-mono, monospace);font-size:12px;color:var(--text-dim, #888);flex-shrink:0}.ralph-issue-title{font-size:14px;font-weight:500}.ralph-issue-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ralph-labels{display:flex;flex-wrap:wrap;gap:4px}.ralph-label{font-size:11px;padding:1px 6px;border-radius:8px;background:color-mix(in srgb,#888 12%,transparent);color:var(--fg)}.ralph-label--agent{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.ralph-label--triage{background:color-mix(in srgb,#9c27b0 12%,transparent);color:#9c27b0}.ralph-label--urgent{background:color-mix(in srgb,#f44336 12%,transparent);color:#f44336}.link-btn{background:none;border:none;color:var(--accent);font-size:inherit;cursor:pointer;padding:0;text-decoration:underline}.memory-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start;flex:1;min-height:0}.memory-scope-list{display:flex;flex-direction:column;gap:6px;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;overflow:hidden}.memory-scope-list-header{padding:14px 16px 10px;border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em}.memory-scope-item{text-align:left;background:none;border:none;border-bottom:1px solid var(--border);padding:12px 16px;cursor:pointer;color:var(--fg);width:100%}.memory-scope-item:last-child{border-bottom:none}.memory-scope-item:hover,.memory-scope-item.selected{background:var(--bg-elev-2)}.memory-scope-item-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.memory-scope-name{font-size:14px;font-weight:500;flex:1}.memory-active-badge{font-size:10px;font-weight:700;background:var(--accent);color:#fff;border-radius:4px;padding:1px 5px;text-transform:uppercase;letter-spacing:.04em}.memory-scope-counts{display:flex;gap:6px;flex-wrap:wrap}.memory-count-pill{font-size:11px;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:1px 7px;color:var(--fg-muted)}.memory-scope-set-active{margin-top:6px;font-size:11px;background:none;border:1px solid var(--border);border-radius:4px;padding:2px 8px;color:var(--fg-muted);cursor:pointer}.memory-scope-set-active:hover{color:var(--accent);border-color:var(--accent)}.memory-detail-panel{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:400px}.memory-detail-header{padding:14px 16px 0;border-bottom:1px solid var(--border)}.memory-detail-title{font-size:16px;font-weight:600;margin:0 0 12px}.memory-store-tabs{display:flex;gap:2px}.memory-store-tab{font-size:13px;background:none;border:none;border-bottom:2px solid transparent;padding:8px 12px;cursor:pointer;color:var(--fg-muted)}.memory-store-tab.active{color:var(--fg);border-bottom-color:var(--accent)}.memory-tier-filters{display:flex;gap:6px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.memory-tier-btn{font-size:12px;background:none;border:1px solid var(--border);border-radius:999px;padding:3px 10px;cursor:pointer;color:var(--fg-muted)}.memory-tier-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.memory-entries-list{flex:1;overflow-y:auto;padding:8px 0}.memory-entry{padding:10px 16px;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent);font-size:13px;line-height:1.5}.memory-entry:last-child{border-bottom:none}.memory-entry-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.memory-tier-badge{font-size:10px;font-weight:700;border-radius:3px;padding:1px 5px;text-transform:uppercase}.memory-tier-badge.hot{background:#c85f00;color:#fff}.memory-tier-badge.warm{background:var(--bg-elev-2);color:var(--fg-muted);border:1px solid var(--border)}.memory-tier-badge.cold{background:#1a4a6e;color:#7ab8e8}.memory-entry-date{font-size:11px;color:var(--fg-muted);margin-left:auto}.memory-entry-content{color:var(--fg)}.memory-entry-entity{font-size:11px;color:var(--fg-muted);margin-top:3px}.memory-inbox-item{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px}.memory-inbox-item:last-child{border-bottom:none}.memory-inbox-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.memory-inbox-kind-badge{font-size:10px;font-weight:700;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:2px 6px;color:var(--fg-muted);text-transform:uppercase}.memory-inbox-source{font-size:11px;color:var(--fg-muted);margin-left:auto}.memory-inbox-payload-preview{color:var(--fg);margin-bottom:8px;word-break:break-word}.memory-inbox-actions{display:flex;gap:8px}.memory-inbox-accept-btn{font-size:12px;background:#1a4a1a;border:1px solid #2d7a2d;color:#7adf7a;border-radius:4px;padding:4px 12px;cursor:pointer}.memory-inbox-accept-btn:hover{background:#2d7a2d}.memory-inbox-reject-btn{font-size:12px;background:none;border:1px solid var(--border);color:var(--fg-muted);border-radius:4px;padding:4px 12px;cursor:pointer}.memory-inbox-reject-btn:hover{border-color:#c00;color:#f55}.memory-inbox-count-badge{display:inline-block;min-width:18px;height:18px;line-height:18px;text-align:center;background:var(--accent);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:0 5px;margin-left:4px;vertical-align:middle}.active-scope-indicator{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--fg-muted);padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:none;cursor:pointer;text-decoration:none;line-height:1.2}.active-scope-indicator:hover{border-color:var(--accent);color:var(--fg)}.active-scope-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}.active-scope-dot.none{background:var(--fg-muted)}.memory-nav-link-wrap{display:flex;align-items:center}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;background:var(--accent);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:0 4px;margin-left:5px}.research-sessions-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.research-sessions-badge{border:0;cursor:pointer}.research-sessions-list{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.research-session-link{font-size:12px}.wiki-browser-page{display:flex;flex-direction:column;gap:16px}.wiki-browser-layout{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:16px}.wiki-browser-results-panel,.wiki-browser-detail-panel,.wiki-graph-shell,.wiki-research-card{border:1px solid var(--border);border-radius:12px;background:var(--bg-elev)}.wiki-browser-results-panel,.wiki-browser-detail-panel{padding:16px}.wiki-browser-toolbar{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.wiki-browser-tabs{display:flex;flex-wrap:wrap;gap:8px}.wiki-browser-search,.wiki-browser-editor textarea{width:100%;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--fg);padding:10px 12px}.wiki-browser-results{display:flex;flex-direction:column;gap:10px}.wiki-browser-result{width:100%;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--fg);padding:12px;cursor:pointer}.wiki-browser-result:hover,.wiki-browser-result.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg))}.wiki-browser-result-head,.wiki-browser-editor-actions,.wiki-research-metrics{display:flex;align-items:center;justify-content:space-between;gap:8px}.wiki-browser-result-slug,.wiki-browser-result-meta{color:var(--fg-dim);font-size:12px}.wiki-browser-result p{margin:8px 0;color:var(--fg-dim)}.wiki-browser-editor{display:flex;flex-direction:column;gap:12px}.wiki-browser-truth{white-space:pre-wrap;line-height:1.6}.wiki-research-list{display:grid;gap:12px}.wiki-research-card{padding:16px}.wiki-research-card h2{margin:0 0 8px}.wiki-graph-shell{padding:8px;overflow:hidden}.wiki-graph-canvas{width:100%;min-height:560px;display:block}@media (max-width: 1100px){.wiki-browser-layout{grid-template-columns:1fr}}.ways-sheet{border:none;padding:0;margin:0;width:100%;height:100%;max-width:100%;max-height:100%;background:transparent;overflow:visible;position:fixed;top:0;right:0;bottom:0;left:0}.ways-sheet::backdrop{background:#15100a8c;animation:veil-in var(--dur-slow) var(--ease-out) forwards}@keyframes veil-in{0%{opacity:0}to{opacity:1}}.ways-sheet-inner{position:absolute;left:0;top:0;bottom:0;width:280px;background:var(--bg-raised);border-right:1px solid var(--rule-1);display:flex;flex-direction:column;animation:slide-in-left var(--dur-slow) var(--ease-out) forwards;box-shadow:var(--shadow-3)}@keyframes slide-in-left{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.ways-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:var(--s-5) var(--s-5) var(--s-4);border-bottom:1px solid var(--rule-1)}.ways-sheet-title{display:flex;align-items:baseline;gap:var(--s-2)}.ways-sheet-label{font-family:var(--font-display);font-size:var(--t-h3);letter-spacing:var(--tr-display);text-transform:uppercase;color:var(--fg-1)}.ways-sheet-subtitle{font-family:var(--font-serif);font-style:italic;font-size:var(--t-body-sm);color:var(--fg-3)}.ways-close-btn{background:none;border:none;cursor:pointer;color:var(--fg-3);font-size:20px;line-height:1;padding:var(--s-1) var(--s-2);border-radius:var(--r-1);transition:color var(--dur-fast) var(--ease-prima)}.ways-close-btn:hover{color:var(--fg-1)}.ways-nav{flex:1;overflow-y:auto;padding:var(--s-3) 0;display:flex;flex-direction:column;gap:var(--s-1)}.ways-section{padding:0}.ways-section+.ways-section{margin-top:var(--s-3);border-top:1px solid var(--rule-2);padding-top:var(--s-3)}.ways-section-label{padding:0 var(--s-5) var(--s-1);font-family:var(--font-sans);font-size:var(--t-micro);font-weight:var(--w-semibold);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--fg-4)}.ways-nav-item{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;border-left:3px solid transparent;padding:var(--s-2) var(--s-5) var(--s-2) calc(var(--s-5) - 3px);cursor:pointer;color:var(--fg-2);font-family:var(--font-sans);font-size:var(--t-body-sm);text-align:left;transition:background var(--dur-fast) var(--ease-prima),border-color var(--dur-fast) var(--ease-prima),color var(--dur-fast) var(--ease-prima)}.ways-nav-item:hover{background:var(--accent-soft);border-left-color:var(--accent);color:var(--fg-1)}.ways-sheet-footer{padding:var(--s-4) var(--s-5);border-top:1px solid var(--rule-2)}.ways-footer-text{font-family:var(--font-mono);font-size:var(--t-micro);color:var(--fg-4);letter-spacing:var(--tr-meta);margin:0}
@@ -246,5 +246,5 @@ Try sending your message again.`,ye)}finally{Qe||v(ye,!1),oe(!1)}}he.current=D;a
246
246
  `);for(const l of a.frames)this.handleFrame(l)}finally{i.releaseLock()}}handleFrame(t){if(t.id!==void 0&&(this.lastEventId=t.id),!t.data)return;const n=sY(this.taskId,t);if(n)try{this.onEvent(n)}catch{}}close(){var t,n;this.closedByUser=!0,(t=this.controller)==null||t.abort(),(n=this.reconnectController)==null||n.abort(),this.controller=null}reconnect(){var t,n;this.reconnectAttempt=0,(t=this.controller)==null||t.abort(),(n=this.reconnectController)==null||n.abort(),!this.streamTask&&!this.closedByUser&&(this.streamTask=this.run().finally(()=>{this.streamTask=null}))}getLastEventId(){return this.lastEventId}}function lY(e,t){return e.some(n=>n.seq===t.seq)?e:[...e,t].sort((n,r)=>n.seq-r.seq)}function cY(e){return"kind"in e?e.kind:e.type}function vk(){const e=Er(),{taskId:t}=ad(),[n,r]=S.useState(null),[i,o]=S.useState(null),[s,a]=S.useState([]),[l,c]=S.useState(null),[u,d]=S.useState(!0),h=S.useRef(null),f=S.useRef(null),g=S.useRef(null);function b(){var w;(w=f.current)==null||w.close(),f.current=null}async function _({silent:w=!1}={}){w||d(!0);try{const C=await de.listWorkers();if(r(C),c(null),t){const k=await de.getWorker(t).catch(()=>null);k&&o(k)}}catch(C){c(C instanceof Error?C.message:String(C))}finally{w||d(!1)}}async function m(){var C;(C=h.current)==null||C.abort();const w=new AbortController;h.current=w;try{const k=await Qi({Accept:"text/event-stream"}),A=await fetch("/api/agents/stream",{method:"GET",headers:k,cache:"no-store",signal:w.signal});if(!A.ok||!A.body)return;const M=A.body.getReader(),L=new TextDecoder;let x="";for(;;){const{value:j,done:V}=await M.read();if(V||w.signal.aborted)break;x+=L.decode(j,{stream:!0});const oe=x.split(`
247
247
 
248
248
  `);x=oe.pop()??"";for(const re of oe){const P=re.split(`
249
- `).find(R=>R.startsWith("data: "));if(P)try{const R=JSON.parse(P.slice(6));if(R.type==="agent_event"){const F=R.agentEvent,O=(F==null?void 0:F.type)??"";(O==="session:created"||O==="session:destroyed"||O==="session:error")&&_({silent:!0})}}catch{}}}}catch(k){if(k instanceof Error&&k.name==="AbortError")return}}S.useEffect(()=>{_(),m();const C=setInterval(()=>{document.visibilityState!=="hidden"&&_({silent:!0})},1e4),k=()=>{document.visibilityState==="visible"&&_({silent:!0})};return document.addEventListener("visibilitychange",k),()=>{var A;clearInterval(C),document.removeEventListener("visibilitychange",k),(A=h.current)==null||A.abort()}},[t]),S.useEffect(()=>{const w=g.current;if(!w)return;w.scrollHeight-w.scrollTop-w.clientHeight<80&&(w.scrollTop=w.scrollHeight)},[s.length]),S.useEffect(()=>{if(b(),a([]),!t){o(null);return}const w=t;let C=!1;async function k(){try{const A=await de.getWorker(w);if(C)return;o(A),c(null);const M=new aY(w,{onEvent:L=>{C||a(x=>lY(x,L))},onError:L=>{C||c(L.message)}});f.current=M}catch(A){if(C)return;o(null),a([]),c(A instanceof Error?A.message:String(A))}}return k(),()=>{C=!0,b()}},[t]);function y(w){e(`/workers/${encodeURIComponent(w.taskId)}`)}function v(w){return new Date(w).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}return p.jsxs("div",{className:"page workers",children:[p.jsxs("header",{className:"page-header",children:[p.jsx("h1",{children:"Workers"}),p.jsx("p",{className:"dim",children:"Active and recent agent tasks (last 24 h). Updates in real time (10s fallback poll)."})]}),l?p.jsx(kt,{inline:!0,message:l,onRetry:()=>void _()}):null,p.jsxs("div",{className:"workers-layout",children:[p.jsxs("div",{className:"workers-list","aria-busy":u,children:[u&&n===null?p.jsx(Tt,{inline:!0,label:"Loading workers"}):null,n&&n.length===0?p.jsx(Lt,{icon:"🤖",title:"No active tasks",description:"Start a conversation to see agent activity here."}):null,n==null?void 0:n.map(w=>p.jsxs("button",{type:"button",className:"worker-row"+(t===w.taskId?" selected":""),onClick:()=>y(w),"aria-pressed":t===w.taskId,children:[p.jsxs("div",{className:"worker-row-head",children:[p.jsx("strong",{children:w.name||`@${w.slug}`}),p.jsx("span",{className:`worker-status worker-status--${w.status}`,children:w.status})]}),p.jsx("div",{className:"worker-row-desc",children:w.description}),p.jsxs("div",{className:"dim small",children:["@",w.slug," · ",w.model]})]},w.taskId))]}),p.jsx("div",{className:"workers-detail","aria-live":"polite",children:t?i?p.jsxs(p.Fragment,{children:[p.jsxs("h2",{children:[i.name||i.agentSlug," ",p.jsxs("span",{className:"dim worker-detail-slug",children:["@",i.agentSlug]})]}),p.jsx("p",{className:"worker-detail-description",children:i.description}),p.jsxs("p",{className:"dim small worker-detail-meta",children:[p.jsx("span",{className:`worker-status worker-status--${i.status}`,children:i.status})," · ","started ",i.startedAt,i.completedAt?` · completed ${i.completedAt}`:""," · ",p.jsx("span",{className:"worker-detail-taskid",children:i.taskId})]}),i.prompt?p.jsxs(p.Fragment,{children:[p.jsx("h3",{children:"Prompt"}),p.jsx("pre",{className:"output",children:i.prompt})]}):null,p.jsx("h3",{children:"Activity"}),s.length===0&&i.status==="running"?p.jsx("p",{className:"dim small",children:"Waiting for tool-call activity…"}):s.length===0?p.jsx("p",{className:"dim small",children:"(no tool-call activity recorded)"}):p.jsx("div",{className:"worker-events",ref:g,children:s.map(w=>{const C=cY(w);return p.jsxs("div",{className:`worker-event worker-event--${C}`,children:[p.jsx("span",{className:"worker-event-ts",children:v(w.ts)}),C==="tool_start"?p.jsxs("span",{className:"worker-event-body",children:[p.jsx("span",{className:"worker-event-icon",children:"⚙️"}),p.jsx("strong",{children:"toolName"in w?w.toolName??"tool":"tool"}),"summary"in w&&w.summary?p.jsxs("span",{className:"dim",children:[" — ",w.summary]}):null]}):C==="output_delta"?p.jsxs("span",{className:"worker-event-body",children:[p.jsx("span",{className:"worker-event-icon",children:"✎"}),p.jsx("span",{className:"dim",children:"text"in w?w.text:""})]}):C==="task_status"?p.jsxs("span",{className:"worker-event-body",children:[p.jsx("span",{className:"worker-event-icon",children:"●"}),p.jsx("strong",{children:"status"in w?w.status:"status"}),"summary"in w&&w.summary?p.jsxs("span",{className:"dim",children:[" — ",w.summary]}):null]}):p.jsxs("span",{className:"worker-event-body",children:[p.jsx("span",{className:"worker-event-icon",children:"✅"}),"summary"in w&&w.summary?p.jsx("span",{className:"dim",children:w.summary}):p.jsx("span",{className:"dim",children:"done"})]})]},w.id)})}),p.jsx("h3",{children:"Result"}),p.jsx("pre",{className:"output",children:i.result??"(no output yet — task still running)"})]}):p.jsx(Tt,{inline:!0,label:"Loading worker detail"}):p.jsx(Lt,{icon:"👈",title:"Pick a worker",description:"Select a task from the list to inspect its details."})})]})]})}const uY=[{key:"people",label:"People"},{key:"projects",label:"Projects"},{key:"topics",label:"Topics"},{key:"orgs",label:"Orgs"},{key:"ideas",label:"Ideas"},{key:"research",label:"Research"}];function _k(e){if(!e)return"Unknown";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function dY(){const[e,t]=ZS(),[n,r]=S.useState(e.get("type")||"people"),[i,o]=S.useState(e.get("q")??""),[s,a]=S.useState(e.get("q")??""),[l,c]=S.useState([]),[u,d]=S.useState(null),[h,f]=S.useState(!0),[g,b]=S.useState(!1),[_,m]=S.useState(null),[y,v]=S.useState(null),[w,C]=S.useState(!1),[k,A]=S.useState(""),[M,L]=S.useState(!1),x=e.get("selected");S.useEffect(()=>{const P=window.setTimeout(()=>a(i.trim()),300);return()=>window.clearTimeout(P)},[i]),S.useEffect(()=>{t(P=>{const R=new URLSearchParams(P);return R.set("type",n),i.trim()?R.set("q",i.trim()):R.delete("q"),R},{replace:!0})},[n,i,t]),S.useEffect(()=>{let P=!1;async function R(){f(!0);try{const F=s.length>=2?await de.searchWikiPages({q:s,type:n}):await de.listWikiBrowserPages({type:n});if(P)return;const O=F.pages??[];c(O),m(null),!x&&O[0]&&t(H=>{const E=new URLSearchParams(H);return E.set("selected",O[0].slug),E},{replace:!0})}catch(F){P||(m(F instanceof Error?F.message:String(F)),c([]))}finally{P||f(!1)}}return R(),()=>{P=!0}},[s,n,x,t]),S.useEffect(()=>{if(!x){d(null),C(!1),A("");return}let P=!1;return b(!0),de.getWikiPageBySlug(x).then(R=>{P||(d(R.page),A(R.page.compiled_truth??""),C(!1),v(null))}).catch(R=>{P||(v(R instanceof Error?R.message:String(R)),d(null))}).finally(()=>{P||b(!1)}),()=>{P=!0}},[x]);const j=S.useMemo(()=>u??l.find(P=>P.slug===x)??null,[l,u,x]);function V(P){t(R=>{const F=new URLSearchParams(R);return F.set("selected",P),F})}async function oe(){if(!j)return;const P=!j.pinned;if(!window.confirm(P?"Pin this page? Automated rewrite will pause until you unpin it.":"Automated rewrite will resume when unpinned."))return;const R=await de.toggleWikiPagePin({slug:j.slug,pinned:P});d(F=>F&&{...F,pinned:R.pinned??P})}async function re(){if(j){L(!0);try{const R=(await de.updateWikiPage({slug:j.slug,compiled_truth:k,frontmatter:{pinned:!0}})).page??{...j,compiled_truth:k,pinned:!0};d(R),A(R.compiled_truth??k),C(!1),v(null)}catch(P){v(P instanceof Error?P.message:String(P))}finally{L(!1)}}}return p.jsxs("div",{className:"page wiki-browser-page",children:[p.jsxs("header",{className:"page-header",children:[p.jsx("h1",{children:"Wiki"}),p.jsx("p",{className:"dim",children:"Browse PKB entities, inspect compiled truth, and manage pinned pages."})]}),p.jsxs("div",{className:"wiki-browser-layout",children:[p.jsxs("section",{className:"wiki-browser-results-panel",children:[p.jsxs("div",{className:"wiki-browser-toolbar",children:[p.jsx("div",{className:"wiki-browser-tabs",role:"tablist","aria-label":"Entity types",children:uY.map(P=>p.jsx("button",{type:"button",role:"tab","aria-selected":n===P.key,className:`memory-store-tab${n===P.key?" active":""}`,onClick:()=>r(P.key),children:P.label},P.key))}),p.jsx("input",{type:"search",role:"searchbox","aria-label":"Search wiki",className:"wiki-browser-search",placeholder:"Search wiki pages…",value:i,onChange:P=>o(P.target.value)})]}),_?p.jsx(kt,{inline:!0,message:_}):null,h?p.jsx(Tt,{label:"Loading wiki pages"}):null,!h&&l.length===0?p.jsx(Lt,{icon:"📚",title:"No matching pages",description:s.length>=2?"Try a broader search term or switch entity types.":"No pages exist for this entity type yet."}):null,!h&&l.length>0?p.jsx("div",{className:"wiki-browser-results",role:"list",children:l.map(P=>p.jsxs("button",{type:"button",className:`wiki-browser-result${P.slug===x?" selected":""}`,onClick:()=>V(P.slug),children:[p.jsxs("div",{className:"wiki-browser-result-head",children:[p.jsx("strong",{children:P.title}),p.jsx("span",{className:"wiki-badge",children:P.type})]}),p.jsx("div",{className:"wiki-browser-result-slug",children:P.slug}),p.jsx("p",{children:P.summary}),p.jsxs("div",{className:"wiki-browser-result-meta",children:["Updated ",_k(P.last_updated)]})]},P.slug))}):null]}),p.jsxs("section",{className:"wiki-browser-detail-panel","aria-live":"polite",children:[y?p.jsx(kt,{inline:!0,message:y}):null,g?p.jsx(Tt,{label:"Loading compiled truth"}):null,!g&&!j?p.jsx(Lt,{icon:"🧭",title:"Choose a wiki page",description:"Select a result to inspect its compiled truth."}):null,!g&&j?p.jsxs("article",{className:"wiki-document",children:[p.jsxs("div",{className:"wiki-page-header",children:[p.jsxs("div",{className:"wiki-page-header-main",children:[p.jsxs("div",{className:"wiki-page-title-block",children:[p.jsx("h2",{children:j.title}),p.jsx("p",{className:"wiki-page-summary",children:j.summary})]}),p.jsxs("div",{className:"wiki-page-actions",children:[p.jsx("button",{type:"button",className:"btn",onClick:()=>void oe(),children:j.pinned?"Unpin page":"Pin page"}),w?null:p.jsx("button",{type:"button",className:"btn primary",onClick:()=>C(!0),children:"Edit"})]})]}),p.jsxs("div",{className:"wiki-meta",children:[p.jsx("span",{className:"wiki-meta-item",children:j.slug}),p.jsxs("span",{className:"wiki-meta-item",children:["Updated ",_k(j.last_updated)]}),j.pinned?p.jsx("span",{className:"wiki-badge",children:"Pinned"}):null]})]}),p.jsx("div",{className:"wiki-document-body",children:w?p.jsxs("div",{className:"wiki-browser-editor",children:[p.jsx("label",{className:"sr-only",htmlFor:"compiled-truth-editor",children:"Compiled truth editor"}),p.jsx("textarea",{id:"compiled-truth-editor","aria-label":"Compiled truth editor",value:k,onChange:P=>A(P.target.value),rows:14}),p.jsxs("div",{className:"wiki-browser-editor-actions",children:[p.jsx("button",{type:"button",className:"btn",onClick:()=>{C(!1),A(j.compiled_truth??"")},children:"Cancel"}),p.jsx("button",{type:"button",className:"btn primary",disabled:M,onClick:()=>void re(),children:M?"Saving…":"Save truth"})]})]}):p.jsx("div",{className:"wiki-browser-truth",children:j.compiled_truth||"No compiled truth yet."})})]}):null]})]})]})}function hY(e){if(!e)return"Unknown";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function fY(){const[e,t]=S.useState(null),[n,r]=S.useState(null);async function i(){try{const o=await de.getKorgResearchSessions();t(o.sessions??[]),r(null)}catch(o){r(o instanceof Error?o.message:String(o))}}return S.useEffect(()=>{i()},[]),p.jsxs("div",{className:"page",children:[p.jsxs("header",{className:"page-header",children:[p.jsx("h1",{children:"Wiki Research"}),p.jsx("p",{className:"dim",children:"Track active Korg research sessions, source coverage, and unanswered questions."})]}),n?p.jsx(kt,{inline:!0,message:n,onRetry:()=>void i()}):null,e===null?p.jsx(Tt,{centered:!0,label:"Loading research sessions"}):null,e!==null&&e.length===0?p.jsx(Lt,{icon:"🔬",title:"No active research sessions. Start one with @korg in the chat."}):null,e&&e.length>0?p.jsx("div",{className:"wiki-research-list",children:e.map(o=>p.jsxs("article",{className:"wiki-research-card",children:[p.jsx("h2",{children:o.name}),p.jsxs("div",{className:"wiki-research-metrics",children:[p.jsxs("span",{children:[o.source_count," sources"]}),p.jsxs("span",{children:[o.open_questions_count," open questions"]})]}),p.jsxs("div",{className:"dim small",children:["Last activity ",hY(o.last_activity_at)]})]},o.id??o.name))}):null]})}function pY(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function gY(){const[e,t]=S.useState(null),[n,r]=S.useState(null),[i,o]=S.useState(null);async function s(){try{const l=await de.getWikiSources();t(l.sources??[]),r(null)}catch(l){r(l instanceof Error?l.message:String(l))}}S.useEffect(()=>{s()},[]);async function a(l){const c=l.source_url??l.path??l.session_id??l.kind;o(c);try{await de.reingestWikiSource(l),await s()}catch(u){r(u instanceof Error?u.message:String(u))}finally{o(null)}}return p.jsxs("div",{className:"page",children:[p.jsxs("header",{className:"page-header",children:[p.jsx("h1",{children:"Wiki Sources"}),p.jsx("p",{className:"dim",children:"Review ingested PKB sources and trigger re-ingestion when needed."})]}),n?p.jsx(kt,{inline:!0,message:n,onRetry:()=>void s()}):null,e===null?p.jsx(Tt,{centered:!0,label:"Loading wiki sources"}):null,e!==null&&e.length===0?p.jsx(Lt,{icon:"🧾",title:"No sources yet",description:"Ingested URLs, PDFs, repos, and text snippets will appear here."}):null,e&&e.length>0?p.jsx("div",{className:"projects-table-wrap",children:p.jsxs("table",{className:"projects-table","aria-label":"Wiki sources",children:[p.jsx("thead",{children:p.jsxs("tr",{children:[p.jsx("th",{children:"Source"}),p.jsx("th",{children:"Kind"}),p.jsx("th",{children:"Status"}),p.jsx("th",{children:"Session"}),p.jsx("th",{children:"Ingested"}),p.jsx("th",{})]})}),p.jsx("tbody",{children:e.map(l=>{const c=l.source_url??l.path??l.session_id??l.kind;return p.jsxs("tr",{children:[p.jsx("td",{children:l.source_url??l.path??"—"}),p.jsx("td",{children:l.kind}),p.jsx("td",{children:l.status}),p.jsx("td",{children:l.session_id??"—"}),p.jsx("td",{children:pY(l.ingested_at)}),p.jsx("td",{children:p.jsx("button",{type:"button",className:"btn",disabled:i===c,onClick:()=>void a(l),children:"Re-ingest"})})]},c)})})]})}):null]})}function mY(){const[e,t]=S.useState(null),[n,r]=S.useState(null),[i,o]=S.useState(!0);async function s(){o(!0);try{const l=await de.listSkills();t(l),r(null)}catch(l){r(l instanceof Error?l.message:String(l))}finally{o(!1)}}S.useEffect(()=>{s()},[]);async function a(l){if(confirm(`Uninstall ${l}?`))try{const c=await de.removeSkill(l);if(!c.ok){r(c.message);return}await s()}catch(c){r(c instanceof Error?c.message:String(c))}}return p.jsxs("div",{className:"page skills",children:[p.jsxs("header",{className:"page-header",children:[p.jsx("h1",{children:"Skills"}),p.jsx("p",{className:"dim",children:"Bundled skills ship with Chapterhouse. Local skills live in ~/.chapterhouse/skills/ and can be uninstalled here."})]}),n?p.jsx(kt,{inline:!0,message:n,onRetry:()=>void s()}):null,i&&e===null?p.jsx(Tt,{inline:!0,label:"Loading skills"}):null,e!==null&&e.length===0?p.jsx(Lt,{icon:"🧰",title:"No skills installed",description:"Skills extend what your agents can do."}):null,p.jsx("div",{className:"skill-grid",children:e==null?void 0:e.map(l=>p.jsxs("div",{className:"skill-card",children:[p.jsxs("div",{className:"skill-head",children:[p.jsx("strong",{children:l.name}),p.jsx("span",{className:`tag tag-${l.source}`,children:l.source})]}),p.jsx("div",{className:"dim small",children:l.slug}),p.jsx("p",{children:l.description}),l.source==="local"?p.jsx("button",{type:"button",className:"btn danger",onClick:()=>void a(l.slug),children:"Uninstall"}):null]},l.directory))})]})}function yY(){const[e,t]=S.useState(null),[n,r]=S.useState(null),[i,o]=S.useState(null),[s,a]=S.useState(null),[l,c]=S.useState(!0),[u,d]=S.useState(!1),h=De(m=>m.setCurrentModel);async function f(){a(null),c(!0);try{const[m,y]=await Promise.all([de.listModels(),de.getAuto()]);t(m.models),r(m.current),h(m.current),o(y)}catch(m){a(m instanceof Error?m.message:String(m))}finally{c(!1)}}S.useEffect(()=>{f()},[]);async function g(m){if(!(!m||m===n)){d(!0),a(null);try{await de.setModel(m),r(m),h(m)}catch(y){a(y instanceof Error?y.message:String(y))}finally{d(!1)}}}async function b(){if(i){d(!0),a(null);try{await de.setAuto({enabled:!i.enabled}),await f()}catch(m){a(m instanceof Error?m.message:String(m))}finally{d(!1)}}}async function _(){if(confirm("Restart the daemon? In-flight workers will be stopped.")){a(null),d(!0);try{await de.restart()}catch(m){a(m instanceof Error?m.message:String(m))}finally{d(!1)}}}return p.jsxs("div",{className:"page settings",children:[p.jsx("header",{className:"page-header",children:p.jsx("h1",{children:"Settings"})}),s?p.jsx(kt,{inline:!0,message:s,onRetry:()=>void f()}):null,p.jsxs("section",{"aria-busy":l||u,children:[p.jsx("h2",{children:"Model"}),l&&e===null?p.jsx(Tt,{inline:!0,label:"Loading available models"}):p.jsxs("div",{className:"row settings-row",children:[p.jsxs("label",{className:"settings-field",htmlFor:"model-select",children:[p.jsx("span",{className:"settings-field-label",children:"Available models"}),p.jsx("select",{id:"model-select",value:n??"",onChange:m=>void g(m.target.value),disabled:u,children:e==null?void 0:e.map(m=>p.jsx("option",{value:m,children:m},m))})]}),p.jsxs("span",{className:"dim small",children:["Current: ",n??"(unknown)"]})]})]}),p.jsxs("section",{"aria-busy":l||u,children:[p.jsx("h2",{children:"Auto-routing"}),l&&i===null?p.jsx(Tt,{inline:!0,label:"Loading routing preferences"}):i?p.jsxs(p.Fragment,{children:[p.jsx("p",{className:"dim",children:"Auto-routing chooses the best model tier for each message, so quick prompts stay fast and harder work can scale up automatically."}),p.jsxs("p",{children:["Auto-routing is currently ",p.jsx("strong",{children:i.enabled?"enabled":"disabled"}),". When on, Chapterhouse picks the model tier per message."]}),p.jsx("button",{type:"button",className:"btn",onClick:()=>void b(),disabled:u,children:i.enabled?"Disable":"Enable"})]}):null]}),p.jsxs("section",{children:[p.jsx("h2",{children:"Daemon"}),p.jsx("button",{type:"button",className:"btn danger",onClick:()=>void _(),disabled:u,children:"Restart daemon"})]})]})}const bY=Ar.lazy(()=>kk(()=>import("./WikiEdit-EBVoY1Pk.js"),[]).then(e=>({default:e.WikiEdit}))),vY=Ar.lazy(()=>kk(()=>import("./WikiGraph-BUbbABq-.js"),[]).then(e=>({default:e.WikiGraph})));function wk(e){return p.jsx(S.Suspense,{fallback:p.jsx("div",{className:"page",children:p.jsx("p",{className:"dim",children:"Loading…"})}),children:e})}Vh.createRoot(document.getElementById("root")).render(p.jsx(Ar.StrictMode,{children:p.jsx(P9,{children:p.jsx(dO,{children:p.jsx(rO,{children:p.jsxs(Et,{path:"/",element:p.jsx(R9,{}),children:[p.jsx(Et,{index:!0,element:p.jsx(eO,{to:"/chat",replace:!0})}),p.jsx(Et,{path:"chat",element:p.jsx(zQ,{})}),p.jsx(Et,{path:"projects",element:p.jsx(iY,{})}),p.jsx(Et,{path:"projects/:slug",element:p.jsx(rY,{})}),p.jsx(Et,{path:"agents",element:p.jsx(BQ,{})}),p.jsx(Et,{path:"agents/:slug",element:p.jsx(ZQ,{})}),p.jsx(Et,{path:"agents/:slug/edit",element:p.jsx(WQ,{})}),p.jsx(Et,{path:"workers",element:p.jsx(vk,{})}),p.jsx(Et,{path:"workers/:taskId",element:p.jsx(vk,{})}),p.jsx(Et,{path:"memory",element:p.jsx(XQ,{})}),p.jsx(Et,{path:"wiki",element:p.jsx(dY,{})}),p.jsx(Et,{path:"wiki/sources",element:p.jsx(gY,{})}),p.jsx(Et,{path:"wiki/graph",element:wk(p.jsx(vY,{}))}),p.jsx(Et,{path:"wiki/research",element:p.jsx(fY,{})}),p.jsx(Et,{path:"wiki/edit",element:wk(p.jsx(bY,{}))}),p.jsx(Et,{path:"skills",element:p.jsx(mY,{})}),p.jsx(Et,{path:"settings",element:p.jsx(yY,{})})]})})})})}));export{kt as E,Tt as L,Er as a,de as b,Lt as c,p as j,S as r,ZS as u};
250
- //# sourceMappingURL=index-KFX8UmOb.js.map
249
+ `).find(R=>R.startsWith("data: "));if(P)try{const R=JSON.parse(P.slice(6));if(R.type==="agent_event"){const F=R.agentEvent,O=(F==null?void 0:F.type)??"";(O==="session:created"||O==="session:destroyed"||O==="session:error")&&_({silent:!0})}}catch{}}}}catch(k){if(k instanceof Error&&k.name==="AbortError")return}}S.useEffect(()=>{_(),m();const C=setInterval(()=>{document.visibilityState!=="hidden"&&_({silent:!0})},1e4),k=()=>{document.visibilityState==="visible"&&_({silent:!0})};return document.addEventListener("visibilitychange",k),()=>{var A;clearInterval(C),document.removeEventListener("visibilitychange",k),(A=h.current)==null||A.abort()}},[t]),S.useEffect(()=>{const w=g.current;if(!w)return;w.scrollHeight-w.scrollTop-w.clientHeight<80&&(w.scrollTop=w.scrollHeight)},[s.length]),S.useEffect(()=>{if(b(),a([]),!t){o(null);return}const w=t;let C=!1;async function k(){try{const A=await de.getWorker(w);if(C)return;o(A),c(null);const M=new aY(w,{onEvent:L=>{C||a(x=>lY(x,L))},onError:L=>{C||c(L.message)}});f.current=M}catch(A){if(C)return;o(null),a([]),c(A instanceof Error?A.message:String(A))}}return k(),()=>{C=!0,b()}},[t]);function y(w){e(`/workers/${encodeURIComponent(w.taskId)}`)}function v(w){return new Date(w).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}return p.jsxs("div",{className:"page workers",children:[p.jsxs("header",{className:"page-header",children:[p.jsx("h1",{children:"Workers"}),p.jsx("p",{className:"dim",children:"Active and recent agent tasks (last 24 h). Updates in real time (10s fallback poll)."})]}),l?p.jsx(kt,{inline:!0,message:l,onRetry:()=>void _()}):null,p.jsxs("div",{className:"workers-layout",children:[p.jsxs("div",{className:"workers-list","aria-busy":u,children:[u&&n===null?p.jsx(Tt,{inline:!0,label:"Loading workers"}):null,n&&n.length===0?p.jsx(Lt,{icon:"🤖",title:"No active tasks",description:"Start a conversation to see agent activity here."}):null,n==null?void 0:n.map(w=>p.jsxs("button",{type:"button",className:"worker-row"+(t===w.taskId?" selected":""),onClick:()=>y(w),"aria-pressed":t===w.taskId,children:[p.jsxs("div",{className:"worker-row-head",children:[p.jsx("strong",{children:w.name||`@${w.slug}`}),p.jsx("span",{className:`worker-status worker-status--${w.status}`,children:w.status})]}),p.jsx("div",{className:"worker-row-desc",children:w.description}),p.jsxs("div",{className:"dim small",children:["@",w.slug," · ",w.model]})]},w.taskId))]}),p.jsx("div",{className:"workers-detail","aria-live":"polite",children:t?i?p.jsxs(p.Fragment,{children:[p.jsxs("h2",{children:[i.name||i.agentSlug," ",p.jsxs("span",{className:"dim worker-detail-slug",children:["@",i.agentSlug]})]}),p.jsx("p",{className:"worker-detail-description",children:i.description}),p.jsxs("p",{className:"dim small worker-detail-meta",children:[p.jsx("span",{className:`worker-status worker-status--${i.status}`,children:i.status})," · ","started ",i.startedAt,i.completedAt?` · completed ${i.completedAt}`:""," · ",p.jsx("span",{className:"worker-detail-taskid",children:i.taskId})]}),i.prompt?p.jsxs(p.Fragment,{children:[p.jsx("h3",{children:"Prompt"}),p.jsx("pre",{className:"output",children:i.prompt})]}):null,p.jsx("h3",{children:"Activity"}),s.length===0&&i.status==="running"?p.jsx("p",{className:"dim small",children:"Waiting for tool-call activity…"}):s.length===0?p.jsx("p",{className:"dim small",children:"(no tool-call activity recorded)"}):p.jsx("div",{className:"worker-events",ref:g,children:s.map(w=>{const C=cY(w);return p.jsxs("div",{className:`worker-event worker-event--${C}`,children:[p.jsx("span",{className:"worker-event-ts",children:v(w.ts)}),C==="tool_start"?p.jsxs("span",{className:"worker-event-body",children:[p.jsx("span",{className:"worker-event-icon",children:"⚙️"}),p.jsx("strong",{children:"toolName"in w?w.toolName??"tool":"tool"}),"summary"in w&&w.summary?p.jsxs("span",{className:"dim",children:[" — ",w.summary]}):null]}):C==="output_delta"?p.jsxs("span",{className:"worker-event-body",children:[p.jsx("span",{className:"worker-event-icon",children:"✎"}),p.jsx("span",{className:"dim",children:"text"in w?w.text:""})]}):C==="task_status"?p.jsxs("span",{className:"worker-event-body",children:[p.jsx("span",{className:"worker-event-icon",children:"●"}),p.jsx("strong",{children:"status"in w?w.status:"status"}),"summary"in w&&w.summary?p.jsxs("span",{className:"dim",children:[" — ",w.summary]}):null]}):p.jsxs("span",{className:"worker-event-body",children:[p.jsx("span",{className:"worker-event-icon",children:"✅"}),"summary"in w&&w.summary?p.jsx("span",{className:"dim",children:w.summary}):p.jsx("span",{className:"dim",children:"done"})]})]},w.id)})}),p.jsx("h3",{children:"Result"}),p.jsx("pre",{className:"output",children:i.result??"(no output yet — task still running)"})]}):p.jsx(Tt,{inline:!0,label:"Loading worker detail"}):p.jsx(Lt,{icon:"👈",title:"Pick a worker",description:"Select a task from the list to inspect its details."})})]})]})}const uY=[{key:"people",label:"People"},{key:"projects",label:"Projects"},{key:"topics",label:"Topics"},{key:"orgs",label:"Orgs"},{key:"ideas",label:"Ideas"},{key:"research",label:"Research"}];function _k(e){if(!e)return"Unknown";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function dY(){const[e,t]=ZS(),[n,r]=S.useState(e.get("type")||"people"),[i,o]=S.useState(e.get("q")??""),[s,a]=S.useState(e.get("q")??""),[l,c]=S.useState([]),[u,d]=S.useState(null),[h,f]=S.useState(!0),[g,b]=S.useState(!1),[_,m]=S.useState(null),[y,v]=S.useState(null),[w,C]=S.useState(!1),[k,A]=S.useState(""),[M,L]=S.useState(!1),x=e.get("selected");S.useEffect(()=>{const P=window.setTimeout(()=>a(i.trim()),300);return()=>window.clearTimeout(P)},[i]),S.useEffect(()=>{t(P=>{const R=new URLSearchParams(P);return R.set("type",n),i.trim()?R.set("q",i.trim()):R.delete("q"),R},{replace:!0})},[n,i,t]),S.useEffect(()=>{let P=!1;async function R(){f(!0);try{const F=s.length>=2?await de.searchWikiPages({q:s,type:n}):await de.listWikiBrowserPages({type:n});if(P)return;const O=F.pages??[];c(O),m(null),!x&&O[0]&&t(H=>{const E=new URLSearchParams(H);return E.set("selected",O[0].slug),E},{replace:!0})}catch(F){P||(m(F instanceof Error?F.message:String(F)),c([]))}finally{P||f(!1)}}return R(),()=>{P=!0}},[s,n,x,t]),S.useEffect(()=>{if(!x){d(null),C(!1),A("");return}let P=!1;return b(!0),de.getWikiPageBySlug(x).then(R=>{P||(d(R.page),A(R.page.compiled_truth??""),C(!1),v(null))}).catch(R=>{P||(v(R instanceof Error?R.message:String(R)),d(null))}).finally(()=>{P||b(!1)}),()=>{P=!0}},[x]);const j=S.useMemo(()=>u??l.find(P=>P.slug===x)??null,[l,u,x]);function V(P){t(R=>{const F=new URLSearchParams(R);return F.set("selected",P),F})}async function oe(){if(!j)return;const P=!j.pinned;if(!window.confirm(P?"Pin this page? Automated rewrite will pause until you unpin it.":"Automated rewrite will resume when unpinned."))return;const R=await de.toggleWikiPagePin({slug:j.slug,pinned:P});d(F=>F&&{...F,pinned:R.pinned??P})}async function re(){if(j){L(!0);try{const R=(await de.updateWikiPage({slug:j.slug,compiled_truth:k,frontmatter:{pinned:!0}})).page??{...j,compiled_truth:k,pinned:!0};d(R),A(R.compiled_truth??k),C(!1),v(null)}catch(P){v(P instanceof Error?P.message:String(P))}finally{L(!1)}}}return p.jsxs("div",{className:"page wiki-browser-page",children:[p.jsxs("header",{className:"page-header",children:[p.jsx("h1",{children:"Wiki"}),p.jsx("p",{className:"dim",children:"Browse PKB entities, inspect compiled truth, and manage pinned pages."})]}),p.jsxs("div",{className:"wiki-browser-layout",children:[p.jsxs("section",{className:"wiki-browser-results-panel",children:[p.jsxs("div",{className:"wiki-browser-toolbar",children:[p.jsx("div",{className:"wiki-browser-tabs",role:"tablist","aria-label":"Entity types",children:uY.map(P=>p.jsx("button",{type:"button",role:"tab","aria-selected":n===P.key,className:`memory-store-tab${n===P.key?" active":""}`,onClick:()=>r(P.key),children:P.label},P.key))}),p.jsx("input",{type:"search",role:"searchbox","aria-label":"Search wiki",className:"wiki-browser-search",placeholder:"Search wiki pages…",value:i,onChange:P=>o(P.target.value)})]}),_?p.jsx(kt,{inline:!0,message:_}):null,h?p.jsx(Tt,{label:"Loading wiki pages"}):null,!h&&l.length===0?p.jsx(Lt,{icon:"📚",title:"No matching pages",description:s.length>=2?"Try a broader search term or switch entity types.":"No pages exist for this entity type yet."}):null,!h&&l.length>0?p.jsx("div",{className:"wiki-browser-results",role:"list",children:l.map(P=>p.jsxs("button",{type:"button",className:`wiki-browser-result${P.slug===x?" selected":""}`,onClick:()=>V(P.slug),children:[p.jsxs("div",{className:"wiki-browser-result-head",children:[p.jsx("strong",{children:P.title}),p.jsx("span",{className:"wiki-badge",children:P.type})]}),p.jsx("div",{className:"wiki-browser-result-slug",children:P.slug}),p.jsx("p",{children:P.summary}),p.jsxs("div",{className:"wiki-browser-result-meta",children:["Updated ",_k(P.last_updated)]})]},P.slug))}):null]}),p.jsxs("section",{className:"wiki-browser-detail-panel","aria-live":"polite",children:[y?p.jsx(kt,{inline:!0,message:y}):null,g?p.jsx(Tt,{label:"Loading compiled truth"}):null,!g&&!j?p.jsx(Lt,{icon:"🧭",title:"Choose a wiki page",description:"Select a result to inspect its compiled truth."}):null,!g&&j?p.jsxs("article",{className:"wiki-document",children:[p.jsxs("div",{className:"wiki-page-header",children:[p.jsxs("div",{className:"wiki-page-header-main",children:[p.jsxs("div",{className:"wiki-page-title-block",children:[p.jsx("h2",{children:j.title}),p.jsx("p",{className:"wiki-page-summary",children:j.summary})]}),p.jsxs("div",{className:"wiki-page-actions",children:[p.jsx("button",{type:"button",className:"btn",onClick:()=>void oe(),children:j.pinned?"Unpin page":"Pin page"}),w?null:p.jsx("button",{type:"button",className:"btn primary",onClick:()=>C(!0),children:"Edit"})]})]}),p.jsxs("div",{className:"wiki-meta",children:[p.jsx("span",{className:"wiki-meta-item",children:j.slug}),p.jsxs("span",{className:"wiki-meta-item",children:["Updated ",_k(j.last_updated)]}),j.pinned?p.jsx("span",{className:"wiki-badge",children:"Pinned"}):null]})]}),p.jsx("div",{className:"wiki-document-body",children:w?p.jsxs("div",{className:"wiki-browser-editor",children:[p.jsx("label",{className:"sr-only",htmlFor:"compiled-truth-editor",children:"Compiled truth editor"}),p.jsx("textarea",{id:"compiled-truth-editor","aria-label":"Compiled truth editor",value:k,onChange:P=>A(P.target.value),rows:14}),p.jsxs("div",{className:"wiki-browser-editor-actions",children:[p.jsx("button",{type:"button",className:"btn",onClick:()=>{C(!1),A(j.compiled_truth??"")},children:"Cancel"}),p.jsx("button",{type:"button",className:"btn primary",disabled:M,onClick:()=>void re(),children:M?"Saving…":"Save truth"})]})]}):p.jsx("div",{className:"wiki-browser-truth",children:j.compiled_truth||"No compiled truth yet."})})]}):null]})]})]})}function hY(e){if(!e)return"Unknown";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function fY(){const[e,t]=S.useState(null),[n,r]=S.useState(null);async function i(){try{const o=await de.getKorgResearchSessions();t(o.sessions??[]),r(null)}catch(o){r(o instanceof Error?o.message:String(o))}}return S.useEffect(()=>{i()},[]),p.jsxs("div",{className:"page",children:[p.jsxs("header",{className:"page-header",children:[p.jsx("h1",{children:"Wiki Research"}),p.jsx("p",{className:"dim",children:"Track active Korg research sessions, source coverage, and unanswered questions."})]}),n?p.jsx(kt,{inline:!0,message:n,onRetry:()=>void i()}):null,e===null?p.jsx(Tt,{centered:!0,label:"Loading research sessions"}):null,e!==null&&e.length===0?p.jsx(Lt,{icon:"🔬",title:"No active research sessions. Start one with @korg in the chat."}):null,e&&e.length>0?p.jsx("div",{className:"wiki-research-list",children:e.map(o=>p.jsxs("article",{className:"wiki-research-card",children:[p.jsx("h2",{children:o.name}),p.jsxs("div",{className:"wiki-research-metrics",children:[p.jsxs("span",{children:[o.source_count," sources"]}),p.jsxs("span",{children:[o.open_questions_count," open questions"]})]}),p.jsxs("div",{className:"dim small",children:["Last activity ",hY(o.last_activity_at)]})]},o.id??o.name))}):null]})}function pY(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function gY(){const[e,t]=S.useState(null),[n,r]=S.useState(null),[i,o]=S.useState(null);async function s(){try{const l=await de.getWikiSources();t(l.sources??[]),r(null)}catch(l){r(l instanceof Error?l.message:String(l))}}S.useEffect(()=>{s()},[]);async function a(l){const c=l.source_url??l.path??l.session_id??l.kind;o(c);try{await de.reingestWikiSource(l),await s()}catch(u){r(u instanceof Error?u.message:String(u))}finally{o(null)}}return p.jsxs("div",{className:"page",children:[p.jsxs("header",{className:"page-header",children:[p.jsx("h1",{children:"Wiki Sources"}),p.jsx("p",{className:"dim",children:"Review ingested PKB sources and trigger re-ingestion when needed."})]}),n?p.jsx(kt,{inline:!0,message:n,onRetry:()=>void s()}):null,e===null?p.jsx(Tt,{centered:!0,label:"Loading wiki sources"}):null,e!==null&&e.length===0?p.jsx(Lt,{icon:"🧾",title:"No sources yet",description:"Ingested URLs, PDFs, repos, and text snippets will appear here."}):null,e&&e.length>0?p.jsx("div",{className:"projects-table-wrap",children:p.jsxs("table",{className:"projects-table","aria-label":"Wiki sources",children:[p.jsx("thead",{children:p.jsxs("tr",{children:[p.jsx("th",{children:"Source"}),p.jsx("th",{children:"Kind"}),p.jsx("th",{children:"Status"}),p.jsx("th",{children:"Session"}),p.jsx("th",{children:"Ingested"}),p.jsx("th",{})]})}),p.jsx("tbody",{children:e.map(l=>{const c=l.source_url??l.path??l.session_id??l.kind;return p.jsxs("tr",{children:[p.jsx("td",{children:l.source_url??l.path??"—"}),p.jsx("td",{children:l.kind}),p.jsx("td",{children:l.status}),p.jsx("td",{children:l.session_id??"—"}),p.jsx("td",{children:pY(l.ingested_at)}),p.jsx("td",{children:p.jsx("button",{type:"button",className:"btn",disabled:i===c,onClick:()=>void a(l),children:"Re-ingest"})})]},c)})})]})}):null]})}function mY(){const[e,t]=S.useState(null),[n,r]=S.useState(null),[i,o]=S.useState(!0);async function s(){o(!0);try{const l=await de.listSkills();t(l),r(null)}catch(l){r(l instanceof Error?l.message:String(l))}finally{o(!1)}}S.useEffect(()=>{s()},[]);async function a(l){if(confirm(`Uninstall ${l}?`))try{const c=await de.removeSkill(l);if(!c.ok){r(c.message);return}await s()}catch(c){r(c instanceof Error?c.message:String(c))}}return p.jsxs("div",{className:"page skills",children:[p.jsxs("header",{className:"page-header",children:[p.jsx("h1",{children:"Skills"}),p.jsx("p",{className:"dim",children:"Bundled skills ship with Chapterhouse. Local skills live in ~/.chapterhouse/skills/ and can be uninstalled here."})]}),n?p.jsx(kt,{inline:!0,message:n,onRetry:()=>void s()}):null,i&&e===null?p.jsx(Tt,{inline:!0,label:"Loading skills"}):null,e!==null&&e.length===0?p.jsx(Lt,{icon:"🧰",title:"No skills installed",description:"Skills extend what your agents can do."}):null,p.jsx("div",{className:"skill-grid",children:e==null?void 0:e.map(l=>p.jsxs("div",{className:"skill-card",children:[p.jsxs("div",{className:"skill-head",children:[p.jsx("strong",{children:l.name}),p.jsx("span",{className:`tag tag-${l.source}`,children:l.source})]}),p.jsx("div",{className:"dim small",children:l.slug}),p.jsx("p",{children:l.description}),l.source==="local"?p.jsx("button",{type:"button",className:"btn danger",onClick:()=>void a(l.slug),children:"Uninstall"}):null]},l.directory))})]})}function yY(){const[e,t]=S.useState(null),[n,r]=S.useState(null),[i,o]=S.useState(null),[s,a]=S.useState(null),[l,c]=S.useState(!0),[u,d]=S.useState(!1),h=De(m=>m.setCurrentModel);async function f(){a(null),c(!0);try{const[m,y]=await Promise.all([de.listModels(),de.getAuto()]);t(m.models),r(m.current),h(m.current),o(y)}catch(m){a(m instanceof Error?m.message:String(m))}finally{c(!1)}}S.useEffect(()=>{f()},[]);async function g(m){if(!(!m||m===n)){d(!0),a(null);try{await de.setModel(m),r(m),h(m)}catch(y){a(y instanceof Error?y.message:String(y))}finally{d(!1)}}}async function b(){if(i){d(!0),a(null);try{await de.setAuto({enabled:!i.enabled}),await f()}catch(m){a(m instanceof Error?m.message:String(m))}finally{d(!1)}}}async function _(){if(confirm("Restart the daemon? In-flight workers will be stopped.")){a(null),d(!0);try{await de.restart()}catch(m){a(m instanceof Error?m.message:String(m))}finally{d(!1)}}}return p.jsxs("div",{className:"page settings",children:[p.jsx("header",{className:"page-header",children:p.jsx("h1",{children:"Settings"})}),s?p.jsx(kt,{inline:!0,message:s,onRetry:()=>void f()}):null,p.jsxs("section",{"aria-busy":l||u,children:[p.jsx("h2",{children:"Model"}),l&&e===null?p.jsx(Tt,{inline:!0,label:"Loading available models"}):p.jsxs("div",{className:"row settings-row",children:[p.jsxs("label",{className:"settings-field",htmlFor:"model-select",children:[p.jsx("span",{className:"settings-field-label",children:"Available models"}),p.jsx("select",{id:"model-select",value:n??"",onChange:m=>void g(m.target.value),disabled:u,children:e==null?void 0:e.map(m=>p.jsx("option",{value:m,children:m},m))})]}),p.jsxs("span",{className:"dim small",children:["Current: ",n??"(unknown)"]})]})]}),p.jsxs("section",{"aria-busy":l||u,children:[p.jsx("h2",{children:"Auto-routing"}),l&&i===null?p.jsx(Tt,{inline:!0,label:"Loading routing preferences"}):i?p.jsxs(p.Fragment,{children:[p.jsx("p",{className:"dim",children:"Auto-routing chooses the best model tier for each message, so quick prompts stay fast and harder work can scale up automatically."}),p.jsxs("p",{children:["Auto-routing is currently ",p.jsx("strong",{children:i.enabled?"enabled":"disabled"}),". When on, Chapterhouse picks the model tier per message."]}),p.jsx("button",{type:"button",className:"btn",onClick:()=>void b(),disabled:u,children:i.enabled?"Disable":"Enable"})]}):null]}),p.jsxs("section",{children:[p.jsx("h2",{children:"Daemon"}),p.jsx("button",{type:"button",className:"btn danger",onClick:()=>void _(),disabled:u,children:"Restart daemon"})]})]})}const bY=Ar.lazy(()=>kk(()=>import("./WikiEdit-DFlLEsI9.js"),[]).then(e=>({default:e.WikiEdit}))),vY=Ar.lazy(()=>kk(()=>import("./WikiGraph-CkfFmXih.js"),[]).then(e=>({default:e.WikiGraph})));function wk(e){return p.jsx(S.Suspense,{fallback:p.jsx("div",{className:"page",children:p.jsx("p",{className:"dim",children:"Loading…"})}),children:e})}Vh.createRoot(document.getElementById("root")).render(p.jsx(Ar.StrictMode,{children:p.jsx(P9,{children:p.jsx(dO,{children:p.jsx(rO,{children:p.jsxs(Et,{path:"/",element:p.jsx(R9,{}),children:[p.jsx(Et,{index:!0,element:p.jsx(eO,{to:"/chat",replace:!0})}),p.jsx(Et,{path:"chat",element:p.jsx(zQ,{})}),p.jsx(Et,{path:"projects",element:p.jsx(iY,{})}),p.jsx(Et,{path:"projects/:slug",element:p.jsx(rY,{})}),p.jsx(Et,{path:"agents",element:p.jsx(BQ,{})}),p.jsx(Et,{path:"agents/:slug",element:p.jsx(ZQ,{})}),p.jsx(Et,{path:"agents/:slug/edit",element:p.jsx(WQ,{})}),p.jsx(Et,{path:"workers",element:p.jsx(vk,{})}),p.jsx(Et,{path:"workers/:taskId",element:p.jsx(vk,{})}),p.jsx(Et,{path:"memory",element:p.jsx(XQ,{})}),p.jsx(Et,{path:"wiki",element:p.jsx(dY,{})}),p.jsx(Et,{path:"wiki/sources",element:p.jsx(gY,{})}),p.jsx(Et,{path:"wiki/graph",element:wk(p.jsx(vY,{}))}),p.jsx(Et,{path:"wiki/research",element:p.jsx(fY,{})}),p.jsx(Et,{path:"wiki/edit",element:wk(p.jsx(bY,{}))}),p.jsx(Et,{path:"skills",element:p.jsx(mY,{})}),p.jsx(Et,{path:"settings",element:p.jsx(yY,{})})]})})})})}));export{kt as E,Tt as L,Er as a,de as b,Lt as c,p as j,S as r,ZS as u};
250
+ //# sourceMappingURL=index-DxcT-ERi.js.map