🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

ctxfile

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ctxfile - npm Package Compare versions

Comparing version
0.2.0
to
0.3.0
ui-dist/assets/index-BQ0RYDn-.js

Sorry, the diff of this file is too big to display

+1
@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-display:swap;src:url(./archivo-var-latin-BEIDiHaE.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Doto;font-style:normal;font-weight:100 900;font-display:swap;src:url(./doto-var-latin-Y-BORX9o.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(./plex-mono-400-latin-BJoXLJYV.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(./plex-mono-500-latin-C820gu2e.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(./plex-mono-600-latin-DpGnXj3s.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--desk: #0b0b0a;--face: #191916;--face-2: #201f1c;--well: #121210;--line: rgba(255, 255, 255, .09);--line-strong: rgba(255, 255, 255, .2);--text: #ebe9e1;--text-2: #a6a396;--text-3: #767263;--screen: #0c0e0d;--screen-2: #121514;--screen-text: #dbe5d8;--screen-dim: #7d887a;--screen-line: rgba(214, 232, 208, .12);--screen-green: #56df88;--screen-amber: #ffc555;--screen-red: #ff6b5e;--accent: #ff5714;--accent-dim: rgba(255, 87, 20, .14);--ok: #3fd77e;--ok-dim: rgba(63, 215, 126, .13);--warn: #ffb02e;--warn-dim: rgba(255, 176, 46, .13);--err: #ff5c50;--err-dim: rgba(255, 92, 80, .13);--redact: #b892ff;--redact-dim: rgba(184, 146, 255, .15);--pro: #d9a23c;--pro-dim: rgba(217, 162, 60, .14);--lamp-ok: #2ee27b;--lamp-warn: #ffb000;--lamp-err: #ff4b3e;--lamp-accent: #ff5714;--lamp-pro: #ffc043;--lamp-redact: #b892ff;--lamp-off: rgba(128, 128, 118, .45);--key-bg: linear-gradient(180deg, #26251f, #1c1b17);--key-border: rgba(255, 255, 255, .16);--key-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 1px 2px rgba(0, 0, 0, .5);--key-shadow-down: inset 0 2px 3px rgba(0, 0, 0, .45);--radius: 8px;--radius-lg: 12px;--radius-xl: 18px;--font-sans: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-led: "Doto", "IBM Plex Mono", ui-monospace, monospace;--ease: cubic-bezier(.3, .1, .2, 1);--dur-fast: .1s;--dur: .15s;--dur-slow: .22s;--shadow-device: 0 40px 90px rgba(0, 0, 0, .6), 0 4px 14px rgba(0, 0, 0, .45);--shadow-sheet: 0 24px 64px rgba(0, 0, 0, .6);color-scheme:dark}[data-theme=light]{--face: #d5d4cc;--face-2: #e0dfd8;--well: #c6c5bc;--line: rgba(32, 31, 25, .16);--line-strong: rgba(32, 31, 25, .32);--text: #201f1a;--text-2: #55534a;--text-3: #676458;--accent: #e04a00;--accent-dim: rgba(224, 74, 0, .13);--ok: #12813f;--ok-dim: rgba(18, 129, 63, .13);--warn: #94660a;--warn-dim: rgba(148, 102, 10, .15);--err: #bf2f24;--err-dim: rgba(191, 47, 36, .12);--redact: #6a3ecb;--redact-dim: rgba(106, 62, 203, .12);--pro: #8a6210;--pro-dim: rgba(138, 98, 16, .15);--key-bg: linear-gradient(180deg, #f2f1ea, #dddcd4);--key-border: rgba(32, 31, 25, .3);--key-shadow: inset 0 1px 0 rgba(255, 255, 255, .85), 0 1px 2px rgba(32, 31, 25, .25);--key-shadow-down: inset 0 2px 3px rgba(32, 31, 25, .28);--shadow-device: 0 40px 90px rgba(0, 0, 0, .55), 0 4px 14px rgba(0, 0, 0, .4);--shadow-sheet: 0 24px 64px rgba(10, 10, 9, .5);color-scheme:light}@media(prefers-reduced-motion:reduce){:root{--dur-fast: 0ms;--dur: 0ms;--dur-slow: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background-color:var(--desk);color:var(--text);font-family:var(--font-sans);font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(120% 90% at 50% 0%,transparent 55%,rgba(0,0,0,.5))}#root{height:100%;position:relative;z-index:1}code,pre,kbd,.mono{font-family:var(--font-mono)}.num{font-variant-numeric:tabular-nums}::selection{background:var(--accent);color:#160902}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}button{font:inherit;color:inherit}h1{font-size:17px;font-weight:700;letter-spacing:-.01em;margin:0}kbd{font-size:10px;padding:1px 5px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;background:var(--face-2)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:5px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.app{position:relative;display:flex;flex-direction:column;height:calc(100vh - 24px);margin:12px;overflow:hidden;background:var(--face);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-device),inset 0 1px #ffffff12}[data-theme=light] .app{box-shadow:var(--shadow-device),inset 0 1px #ffffffb3}.app-body{display:flex;flex:1;min-height:0}.main{flex:1;overflow-y:auto;min-width:0}.view{max-width:1080px;margin:0 auto;padding:26px 30px 56px;display:flex;flex-direction:column;gap:14px}.view>*{animation:mod-in var(--dur-slow) var(--ease) both}.view>*:nth-child(2){animation-delay:40ms}.view>*:nth-child(3){animation-delay:80ms}.view>*:nth-child(4){animation-delay:.12s}.view>*:nth-child(5){animation-delay:.16s}.view>*:nth-child(n+6){animation-delay:.2s}@keyframes mod-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.view>*{animation:none}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:48px;padding:0 14px 0 16px;border-bottom:1px solid var(--line);flex-shrink:0;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent)}[data-theme=light] .topbar{background:linear-gradient(180deg,rgba(255,255,255,.45),transparent)}.topbar-root{font-size:11.5px;color:var(--text-2);background:var(--well);border:1px solid var(--line);border-radius:6px;box-shadow:inset 0 1.5px 3px #0000004d;padding:4px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:46vw}.topbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.topbar-age{font-family:var(--font-mono)}.topbar-chip-btn{cursor:pointer;background:var(--key-bg);border:1px solid var(--key-border);box-shadow:var(--key-shadow);border-radius:7px;padding:3px 9px;transition:border-color var(--dur-fast) var(--ease)}.topbar-chip-btn:hover{border-color:var(--line-strong)}.topbar-chip-btn:active{transform:translateY(1px);box-shadow:var(--key-shadow-down)}.topbar-chip-btn kbd{font-size:10.5px;border:none;background:none;padding:0}.topbar-switch-btn{display:inline-flex;align-items:center;background:none;border:none;padding:4px 2px;cursor:pointer}.switch{display:inline-flex;align-items:center;width:30px;height:14px;padding:2px;border-radius:999px;background:var(--well);border:1px solid var(--line);box-shadow:inset 0 1.5px 3px #00000059}.switch-knob{width:12px;height:8px;border-radius:3px;background:var(--key-bg);border:1px solid var(--key-border);box-shadow:0 1px 1px #0006;transition:transform var(--dur) var(--ease)}.switch[data-on=true] .switch-knob{transform:translate(12px)}.view-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:36px}.header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rail{width:190px;flex-shrink:0;border-right:1px solid var(--line);padding:16px 10px 14px;display:flex;flex-direction:column;gap:2px;background:linear-gradient(90deg,rgba(255,255,255,.015),transparent)}[data-theme=light] .rail{background:linear-gradient(90deg,rgba(255,255,255,.35),transparent)}.rail-brand{display:flex;align-items:center;gap:9px;padding:2px 8px 16px}.brand-mark{flex-shrink:0;display:block;border-radius:6px;box-shadow:0 1px 3px #0006,inset 0 1px #ffffff59}.brand-word{font-weight:750;font-size:15px;letter-spacing:-.02em;line-height:1.1}.brand-tag{display:block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);margin-top:2px}.rail-item{position:relative;display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:1px solid transparent;background:none;border-radius:var(--radius);color:var(--text-2);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.rail-item:hover{background:var(--face-2);color:var(--text)}.rail-active,.rail-active:hover{background:var(--well);border-color:var(--line);box-shadow:inset 0 1.5px 3px #0000004d;color:var(--text)}.rail-glyph{width:7px;height:7px;flex-shrink:0;font-size:0;border-radius:50%;background:var(--lamp-off);box-shadow:inset 0 1px 1px #00000080;transition:background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.rail-active .rail-glyph{background:var(--lamp-accent);box-shadow:0 0 8px 1px color-mix(in srgb,var(--lamp-accent) 65%,transparent),inset 0 1px 1px #fff6}.rail-label{flex:1;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.rail-pro{color:var(--pro);font-size:10px}.rail-foot{margin-top:auto;padding:12px 10px 2px}.rail-version{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.panel{position:relative;background:var(--face-2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 1px #ffffff0d,0 1px 2px #0003}[data-theme=light] .panel{box-shadow:inset 0 1px #ffffffa6,0 1px 2px #201f191f}.panel:before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background-image:radial-gradient(circle 1.6px,rgba(0,0,0,.55) 98%,transparent),radial-gradient(circle 1.6px,rgba(0,0,0,.55) 98%,transparent),radial-gradient(circle 1.6px,rgba(0,0,0,.55) 98%,transparent),radial-gradient(circle 1.6px,rgba(0,0,0,.55) 98%,transparent);background-repeat:no-repeat;background-size:4px 4px;background-position:7px 7px,calc(100% - 7px) 7px,7px calc(100% - 7px),calc(100% - 7px) calc(100% - 7px);opacity:.5}[data-theme=light] .panel:before{background-image:radial-gradient(circle 1.6px,rgba(32,31,25,.4) 98%,transparent),radial-gradient(circle 1.6px,rgba(32,31,25,.4) 98%,transparent),radial-gradient(circle 1.6px,rgba(32,31,25,.4) 98%,transparent),radial-gradient(circle 1.6px,rgba(32,31,25,.4) 98%,transparent)}.panel-title{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);display:flex;align-items:center;gap:8px}.panel-title:before{content:"";width:10px;height:2px;border-radius:1px;background:var(--accent);opacity:.85}.panel-hairline.is-running{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:inset 0 1px #ffffff0d,0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent),0 0 28px color-mix(in srgb,var(--accent) 14%,transparent)}.panel-flash:after{content:"";position:absolute;inset:-1px;pointer-events:none;border-radius:inherit;border:1px solid var(--lamp-ok);box-shadow:0 0 24px color-mix(in srgb,var(--lamp-ok) 30%,transparent);animation:run-flash .5s var(--ease) forwards}@keyframes run-flash{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.panel-flash:after{animation:none;opacity:0}}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.stat-card{position:relative;background:var(--face-2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:10px;box-shadow:inset 0 1px #ffffff0d,0 1px 2px #0003}[data-theme=light] .stat-card{box-shadow:inset 0 1px #ffffffa6,0 1px 2px #201f191f}.stat-label{font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);padding:2px 2px 8px}.stat-screen{background:var(--screen);border-radius:8px;border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #0000008c;padding:10px 12px 9px;min-height:66px;display:flex;flex-direction:column;justify-content:center}.stat-value{font-family:var(--font-led);font-size:27px;font-weight:700;line-height:1.05;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--screen-text);text-shadow:0 0 14px color-mix(in srgb,currentColor 30%,transparent)}.stat-accent .stat-value{color:var(--lamp-accent)}.stat-warn .stat-value{color:var(--screen-amber)}.stat-redact .stat-value{color:var(--lamp-redact)}.stat-sub{margin-top:5px;font-family:var(--font-mono);font-size:10.5px;color:var(--screen-dim)}.stale-flag{color:var(--screen-amber)}.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);white-space:nowrap}.pill-dot{width:7px;height:7px;border-radius:50%;background:var(--lamp-off);box-shadow:inset 0 1px 1px #00000080}.pill-ok{color:var(--ok)}.pill-ok .pill-dot{background:var(--lamp-ok);box-shadow:0 0 7px 1px color-mix(in srgb,var(--lamp-ok) 60%,transparent),inset 0 1px 1px #fff6}.pill-error{color:var(--err)}.pill-error .pill-dot{background:var(--lamp-err);box-shadow:0 0 7px 1px color-mix(in srgb,var(--lamp-err) 60%,transparent),inset 0 1px 1px #fff6}.pill-skipped,.pill-pending{color:var(--text-3)}.pill-running{color:var(--accent)}.pill-running .pill-dot{background:var(--lamp-accent);box-shadow:0 0 7px 1px color-mix(in srgb,var(--lamp-accent) 60%,transparent),inset 0 1px 1px #fff6;animation:lamp-blink 1s var(--ease) infinite}.pill-locked{color:var(--pro)}.pill-locked .pill-dot{background:var(--lamp-pro);box-shadow:0 0 7px 1px color-mix(in srgb,var(--lamp-pro) 55%,transparent),inset 0 1px 1px #fff6}@keyframes lamp-blink{0%,to{opacity:1}50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.pill-running .pill-dot{animation:none}}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:5px;font-family:var(--font-mono);font-size:10.5px;background:var(--well);border:1px solid var(--line);color:var(--text-2);white-space:nowrap;box-shadow:inset 0 1px 2px #00000038}.chip-warn{color:var(--warn)}.chip-redact{color:var(--redact)}.chip-ok{color:var(--ok)}.pro-pill{display:inline-block;padding:3px 13px;border-radius:5px;font-size:10.5px;font-weight:800;letter-spacing:.22em;color:#362708;background:linear-gradient(180deg,#ecc775,#c3913a);border:1px solid rgba(54,39,8,.55);box-shadow:inset 0 1px #ffffff8c,0 1px 3px #00000073;text-shadow:0 1px 0 rgba(255,255,255,.25)}.connector-list{display:flex;flex-direction:column}.connector-row{display:flex;align-items:center;gap:12px;min-height:36px;padding:7px 6px;border-bottom:1px solid var(--line);transition:background var(--dur) var(--ease)}.connector-row:last-child{border-bottom:none}.connector-running{background:var(--accent-dim);border-radius:var(--radius);box-shadow:inset 2px 0 0 var(--accent);padding-left:12px}.connector-running .pill-dot{animation:lamp-blink .9s var(--ease) infinite}@media(prefers-reduced-motion:reduce){.connector-running .pill-dot{animation:none}}.connector-name{font-family:var(--font-mono);font-size:12.5px;font-weight:500}.connector-error{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--err);font-size:12px;font-family:var(--font-mono)}.connector-right{margin-left:auto;display:flex;align-items:center;gap:12px}.connector-duration{color:var(--text-3);font-family:var(--font-mono);font-size:11px}.token-meter{display:flex;flex-direction:column;gap:7px}.token-meter-track{height:16px;border-radius:5px;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 6px #0000008c;overflow:hidden;padding:3px}.token-meter-fill{position:relative;height:100%;border-radius:2px;background-image:linear-gradient(90deg,var(--lamp-ok) 0%,var(--lamp-ok) 62%,var(--lamp-warn) 78%,var(--lamp-err) 96%);background-size:calc(10000%/max(var(--pct, 100),.5)) 100%;background-repeat:no-repeat;mask-image:repeating-linear-gradient(90deg,#000 0 5px,transparent 5px 8px);-webkit-mask-image:repeating-linear-gradient(90deg,#000 0 5px,transparent 5px 8px);transition:width var(--dur-slow) var(--ease)}.token-meter-over .token-meter-fill{background-image:linear-gradient(90deg,var(--lamp-warn),var(--lamp-err));background-size:100% 100%}.is-running .token-meter-fill:after{content:"";position:absolute;right:0;top:0;bottom:0;width:5px;background:#fff;opacity:.8;animation:lamp-blink .7s var(--ease) infinite}.token-meter-caption{font-family:var(--font-mono);font-size:11px;color:var(--text-2)}.token-meter-budget{color:var(--text-3)}.token-meter-flag{color:var(--err);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.timeline{display:flex;align-items:flex-end;gap:4px;height:84px;background:var(--screen);border-radius:8px;border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #0000008c;padding:10px 12px 8px}.timeline-cell{position:relative;flex:1;max-width:26px;height:100%;display:flex;align-items:flex-end}.timeline-bar{width:100%;background:var(--screen-green);border-radius:1px;opacity:.85;mask-image:repeating-linear-gradient(180deg,#000 0 3px,transparent 3px 5px);-webkit-mask-image:repeating-linear-gradient(180deg,#000 0 3px,transparent 3px 5px);transition:opacity var(--dur-fast) var(--ease)}.timeline-cell:hover .timeline-bar{opacity:1;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--screen-green) 70%,transparent))}.timeline-cell:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);padding:3px 9px;border-radius:6px;border:1px solid var(--line-strong);background:var(--face);color:var(--text-2);font-size:10.5px;font-family:var(--font-mono);white-space:nowrap;opacity:0;pointer-events:none;z-index:20;transition:opacity var(--dur-fast) var(--ease);box-shadow:0 4px 14px #0006}.timeline-cell:hover:after{opacity:1;transition-delay:.15s}.btn{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:var(--radius);border:1px solid var(--key-border);background:var(--key-bg);box-shadow:var(--key-shadow);color:var(--text);font-size:12.5px;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),filter var(--dur-fast) var(--ease)}.btn:hover:not(:disabled){border-color:var(--line-strong);filter:brightness(1.05)}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:var(--key-shadow-down)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:linear-gradient(180deg,#ff6f2e,#ee4d00);border-color:#0006;box-shadow:inset 0 1px #ffffff59,0 1px 3px #0006;color:#1c0b02;font-weight:700}.btn-primary:hover:not(:disabled){border-color:#0006;filter:brightness(1.06)}.btn-primary:active:not(:disabled){box-shadow:inset 0 2px 4px #00000059}.btn-primary kbd{border-color:#00000059;background:#0000001f;color:inherit}.btn-rec:before{content:"";width:7px;height:7px;border-radius:50%;background:#e0180b;box-shadow:0 0 8px 2px #e0180b99;animation:lamp-blink .8s var(--ease) infinite}@media(prefers-reduced-motion:reduce){.btn-rec:before{animation:none}}.btn-danger{background:linear-gradient(180deg,#e6564a,#c93327);border-color:#0006;box-shadow:inset 0 1px #ffffff4d,0 1px 3px #0006;color:#1e0503;font-weight:700}.btn-small{padding:2px 9px;font-size:11px}.btn kbd{font-size:10px;padding:1px 5px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;background:#00000026;opacity:.85}.search-input,.consult-input,.palette-input{background:var(--well);border:1px solid var(--line);border-radius:var(--radius);box-shadow:inset 0 1.5px 3px #0000004d;color:var(--text);padding:6px 11px;font-size:13px;font-family:inherit;caret-color:var(--accent)}.search-input::placeholder,.consult-input::placeholder,.palette-input::placeholder{color:var(--text-3)}.search-input:focus,.consult-input:focus,.palette-input:focus{border-color:var(--accent);outline:none;box-shadow:inset 0 1.5px 3px #0000004d,0 0 0 2px var(--accent-dim)}.banner{padding:9px 14px;border-radius:var(--radius);font-size:12.5px;font-family:var(--font-mono);border:1px solid transparent;border-left-width:3px}.banner-err{background:var(--err-dim);color:var(--err);border-left-color:var(--err)}.banner-warn{background:var(--warn-dim);color:var(--warn);border-left-color:var(--warn)}.banner-ok{background:var(--ok-dim);color:var(--ok);border-left-color:var(--ok)}.loading{color:var(--text-3);font-family:var(--font-mono);font-size:12.5px;padding:36px 0;text-align:center}.loading:after{content:"▮";margin-left:4px;animation:lamp-blink 1s steps(2,start) infinite}@media(prefers-reduced-motion:reduce){.loading:after{animation:none}}.muted{color:var(--text-3);font-size:12.5px}.empty-state{background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 10px #0000008c;border-radius:var(--radius-lg);padding:46px 32px;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}.empty-icon{width:44px;height:44px;border-radius:10px;border:1px dashed var(--screen-line);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--screen-dim);margin-bottom:4px}.empty-title{font-size:14.5px;font-weight:650;color:var(--screen-text)}.empty-body{color:var(--screen-dim);max-width:460px;font-size:12.5px}.empty-action{margin-top:8px}.empty-snippet{margin:14px auto 0;max-width:520px;text-align:left;font-family:var(--font-mono);font-size:11.5px;line-height:1.6;color:var(--screen-text);background:var(--screen-2);border:1px solid var(--screen-line);border-radius:8px;padding:10px 14px;white-space:pre-wrap;-webkit-user-select:all;user-select:all}.trust-strip{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);background:var(--well);border:1px solid var(--line);box-shadow:inset 0 1.5px 3px #00000040;border-radius:var(--radius);padding:7px 14px}.trust-strip-active{border-color:var(--warn)}.network-hero{flex-direction:row;align-items:center;gap:18px;padding:14px 16px}.network-hero-count{font-family:var(--font-led);font-size:42px;font-weight:700;line-height:1;color:var(--screen-green);text-shadow:0 0 16px color-mix(in srgb,var(--screen-green) 45%,transparent);flex-shrink:0;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #0000008c;border-radius:8px;min-width:86px;padding:14px 16px 12px;text-align:center}.network-hero-active .network-hero-count{color:var(--screen-amber);text-shadow:0 0 16px color-mix(in srgb,var(--screen-amber) 45%,transparent)}.network-hero-active{border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}.network-hero-title{font-size:13px;font-weight:700;letter-spacing:.01em}.network-hero-sub{color:var(--text-2);font-size:12.5px;margin-top:2px}.fullscreen-state{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--desk);z-index:60}.fullscreen-state.overlay{background:color-mix(in srgb,var(--desk) 72%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.fullscreen-card{max-width:440px;padding:34px 36px;text-align:center;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--face);box-shadow:var(--shadow-device),inset 0 1px #ffffff12}.fullscreen-card h1{font-size:19px;font-weight:750;letter-spacing:-.02em}.fullscreen-card p{color:var(--text-2);font-size:13px}.fullscreen-card code{font-size:12px;background:var(--well);border:1px solid var(--line);border-radius:5px;padding:1px 6px}.loading-dot{width:9px;height:9px;margin:14px auto 0;border-radius:50%;background:var(--lamp-accent);box-shadow:0 0 10px 2px color-mix(in srgb,var(--lamp-accent) 55%,transparent);animation:lamp-blink 1.2s var(--ease) infinite}.explorer{display:grid;grid-template-columns:290px 1fr;gap:14px;min-height:0}.explorer-tree{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--face-2);box-shadow:inset 0 1px #ffffff0d;padding:10px 8px;overflow-y:auto;max-height:calc(100vh - 210px);display:flex;flex-direction:column;gap:1px}[data-theme=light] .explorer-tree{box-shadow:inset 0 1px #ffffffa6}.tree-group{font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);padding:12px 8px 5px;display:flex;gap:6px;align-items:center}.tree-count{color:var(--text-3)}.tree-item{display:flex;align-items:center;gap:8px;width:100%;border:1px solid transparent;background:none;text-align:left;padding:5px 8px;border-radius:var(--radius);color:var(--text-2);font-size:12px;cursor:pointer;transition:background var(--dur-fast) var(--ease)}.tree-item:hover{background:var(--face);color:var(--text)}.tree-active,.tree-active:hover{background:var(--well);border-color:var(--line);box-shadow:inset 0 1.5px 3px #00000047;color:var(--text)}.tree-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.explorer-detail{border:1px solid rgba(0,0,0,.6);border-radius:var(--radius-lg);background:var(--screen);box-shadow:inset 0 2px 10px #00000080;padding:16px;min-width:0;overflow:auto;max-height:calc(100vh - 210px);display:flex;flex-direction:column;gap:10px;color:var(--screen-text)}.explorer-detail .empty-state{background:none;border:none;box-shadow:none}.explorer-detail .chip{background:var(--screen-2);border-color:var(--screen-line);color:var(--screen-dim);box-shadow:none}.explorer-detail .chip-warn{color:var(--screen-amber)}.explorer-detail .chip-redact{color:var(--lamp-redact)}.detail-meta{display:flex;gap:8px;flex-wrap:wrap}.detail-pre{margin:0;font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--screen-text)}.panel .detail-pre{background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #00000080;border-radius:8px;padding:12px 14px;overflow:auto;max-height:340px}.raw-json{border:1px solid rgba(0,0,0,.6);border-radius:var(--radius-lg);background:var(--screen);box-shadow:inset 0 2px 10px #00000080;padding:16px;overflow:auto;max-height:calc(100vh - 210px)}.explorer-detail::-webkit-scrollbar-thumb,.raw-json::-webkit-scrollbar-thumb,.panel .detail-pre::-webkit-scrollbar-thumb{background:var(--screen-line);background-clip:content-box}.scope-switch{display:inline-flex;gap:2px;background:var(--well);border:1px solid var(--line);box-shadow:inset 0 1.5px 3px #0000004d;border-radius:var(--radius);padding:2px}.scope-btn{border:1px solid transparent;background:none;padding:3px 11px;font-size:11px;color:var(--text-3);cursor:pointer;font-family:var(--font-mono);border-radius:6px;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.scope-btn:hover{color:var(--text)}.scope-active,.scope-btn.scope-active:hover{background:var(--key-bg);border-color:var(--key-border);box-shadow:var(--key-shadow);color:var(--accent);font-weight:600}.git-branch{display:flex;gap:6px;align-items:center}.git-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.git-col-ok .panel-title{color:var(--ok)}.git-col-ok .panel-title:before{background:var(--lamp-ok)}.git-col-warn .panel-title{color:var(--warn)}.git-col-warn .panel-title:before{background:var(--lamp-warn)}.git-col-muted .panel-title:before{background:var(--lamp-off)}.file-list{margin:0;padding:0;list-style:none;font-size:11.5px;display:flex;flex-direction:column;gap:3px;color:var(--text-2);word-break:break-all}.commit-list{margin:0;padding:4px 12px;list-style:none;display:flex;flex-direction:column;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #00000080;border-radius:8px}.commit-row{display:flex;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--screen-line);font-size:12px}.commit-row:last-child{border-bottom:none}.commit-hash{color:var(--screen-green);font-size:11.5px;flex-shrink:0}.commit-message{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--screen-text)}.commit-meta{color:var(--screen-dim);font-family:var(--font-mono);font-size:10.5px;flex-shrink:0}.session-list{display:flex;flex-direction:column;gap:12px}.session-head{display:flex;align-items:center;gap:8px}.session-time{margin-left:auto;color:var(--text-3);font-family:var(--font-mono);font-size:11px}.session-digest{margin:0;color:var(--screen-text);font-size:12.5px;line-height:1.6;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #00000080;border-radius:8px;padding:11px 14px;max-height:260px;overflow-y:auto}.session-digest::-webkit-scrollbar-thumb{background:var(--screen-line);background-clip:content-box}.source-claude-code{color:var(--accent)}.source-cursor{color:var(--redact)}.source-codex{color:var(--ok)}.source-opencode{color:var(--warn)}.source-gemini-cli{color:var(--screen-dim)}.source-aider{color:var(--pro)}.source-openclaw{color:var(--err)}.source-hermes{color:var(--text-2)}.memory-groups{display:flex;flex-direction:column;gap:12px}.memory-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.memory-row{padding:10px 2px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.memory-row:last-child{border-bottom:none}.memory-content{font-size:13px}.memory-meta{display:flex;align-items:center;gap:12px;font-size:11px;font-family:var(--font-mono);color:var(--text-3)}.memory-provenance{font-family:var(--font-mono)}.memory-meta .btn{margin-left:auto}.consult-form{display:flex;gap:10px;align-items:flex-end}.consult-input{flex:1;resize:vertical;min-height:64px}.consult-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;align-items:start}.consult-answer{font-size:12px}.consult-col>p{margin:0;color:var(--screen-text);font-size:12.5px;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #00000080;border-radius:8px;padding:11px 14px}.event-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.event-row{display:flex;gap:10px;align-items:baseline}.event-data{margin:0;font-size:11px;color:var(--text-2);overflow-x:auto}.kv{margin:0;display:flex;flex-direction:column;gap:5px;font-size:12px}.kv-row{display:grid;grid-template-columns:160px 1fr;gap:12px}.kv dt{color:var(--text-3);font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;padding-top:1px}.kv dd{margin:0;word-break:break-all}.license-expiry{color:var(--text-3);font-size:11.5px;margin-bottom:12px}.license-expiry-warn{color:var(--warn)}.license-features{display:flex;gap:6px;flex-wrap:wrap}.license-form{display:flex;gap:10px}.license-form .search-input{flex:1}.pro-lock{position:relative;border-radius:var(--radius-lg);overflow:hidden}.pro-lock-preview{filter:blur(6px) saturate(.6);opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.pro-lock-sheen{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}.pro-lock-sheen:before{content:"";position:absolute;top:-20%;bottom:-20%;left:-45%;width:38%;transform:skew(-14deg);background:linear-gradient(105deg,transparent,color-mix(in srgb,var(--pro) 8%,transparent),transparent);animation:sheen 8s var(--ease) infinite}@keyframes sheen{to{left:145%}}@media(prefers-reduced-motion:reduce){.pro-lock-sheen:before{animation:none}}.pro-lock-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px}.pro-lock-pitch{margin:0;max-width:420px;color:var(--text);font-size:13.5px;font-weight:500;text-shadow:0 1px 8px var(--face)}.pro-lock-bullets{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:12px;font-family:var(--font-mono);color:var(--text-2);text-align:left;text-shadow:0 1px 6px var(--face)}.pro-lock-bullets li:before{content:"✦";color:var(--pro);margin-right:8px;font-size:10px}.sheet-backdrop{position:fixed;inset:0;background:color-mix(in srgb,var(--desk) 55%,transparent);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fade-in var(--dur) var(--ease)}.palette-backdrop{align-items:flex-start;padding-top:22vh}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sheet-panel,.palette{background:var(--face);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow-sheet),inset 0 1px #ffffff12;animation:rise-in var(--dur-slow) var(--ease)}[data-theme=light] .sheet-panel,[data-theme=light] .palette{box-shadow:var(--shadow-sheet),inset 0 1px #ffffffb3}@keyframes rise-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.sheet-panel{width:min(440px,calc(100vw - 48px));padding:20px;display:flex;flex-direction:column;gap:12px}.sheet-title{font-size:14.5px;font-weight:700}.sheet-body{margin:0;color:var(--text-2);font-size:13px}.sheet-quote{margin:0;padding:8px 12px;border-left:2px solid var(--redact);background:var(--redact-dim);border-radius:0 var(--radius) var(--radius) 0;font-size:12.5px}.sheet-actions{display:flex;justify-content:flex-end;gap:8px}.palette{width:min(540px,calc(100vw - 48px));overflow:hidden;padding:10px;display:flex;flex-direction:column;gap:10px}.palette-input{width:100%;font-family:var(--font-mono);font-size:13.5px;padding:10px 14px}.palette-list{margin:0;padding:6px;list-style:none;max-height:320px;overflow-y:auto;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 10px #00000080;border-radius:8px}.palette-list::-webkit-scrollbar-thumb{background:var(--screen-line);background-clip:content-box}.palette-item{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;border:none;background:none;text-align:left;padding:8px 12px;border-radius:6px;font-size:12.5px;font-family:var(--font-mono);color:var(--screen-dim);cursor:pointer}.palette-item:before{content:"▸";flex-shrink:0;opacity:0;color:var(--lamp-accent)}.palette-item .palette-hint{margin-left:auto}.palette-cursor{background:var(--screen-2);color:var(--screen-text)}.palette-cursor:before{opacity:1;text-shadow:0 0 8px color-mix(in srgb,var(--lamp-accent) 70%,transparent)}.palette-hint{font-size:10px;color:var(--screen-dim);font-family:var(--font-mono);border:1px solid var(--screen-line);background:none;border-radius:4px;padding:1px 6px}.palette-empty{padding:16px;text-align:center;color:var(--screen-dim);font-family:var(--font-mono);font-size:12.5px}.palette-footer{display:flex;gap:16px;padding:2px 6px 4px;color:var(--text-3);font-size:10.5px;font-family:var(--font-mono)}.palette-footer kbd{font-size:10px;margin-right:4px}.palette-footer kbd+kbd{margin-left:-2px}@media(max-width:900px){.app{margin:0;height:100vh;border-radius:0;border:none}.rail{width:58px;padding:14px 8px}.rail-brand{justify-content:center;padding:2px 0 16px}.brand-word,.rail-label,.rail-pro,.rail-version{display:none}.rail-item{justify-content:center;padding:12px 0}.rail-item:after{content:attr(data-tip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);padding:3px 9px;border-radius:6px;border:1px solid var(--line-strong);background:var(--face);color:var(--text-2);font-size:11.5px;white-space:nowrap;opacity:0;pointer-events:none;z-index:40;transition:opacity var(--dur-fast) var(--ease);box-shadow:0 4px 14px #0006}.rail-item:hover:after,.rail-item:focus-visible:after{opacity:1;transition-delay:.4s}.explorer{grid-template-columns:1fr}.explorer-tree{max-height:240px}.topbar-root{max-width:38vw}}@media(prefers-reduced-motion:reduce){.loading-dot,.is-running .token-meter-fill:after{animation:none}}.card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.card{border:1px solid var(--line);border-radius:10px;background:var(--face);padding:14px 16px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.card-head h3{margin:0;font-size:14px}.card-actions{display:flex;gap:8px;flex-shrink:0}.btn-quiet{opacity:.6}.btn-quiet:hover{opacity:1}.card-body-pre{margin:10px 0 8px;padding:10px 12px;border-radius:8px;background:var(--screen, rgba(0, 0, 0, .25));color:var(--screen-text, inherit);font-family:var(--mono, ui-monospace, monospace);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.card-meta{font-size:11px;opacity:.6}
+13
-1

@@ -695,2 +695,11 @@ import { z } from 'zod';

}
interface ProPlaybookEntry {
id: string;
title: string;
/** The reusable distilled prompt, decrypted for display. */
prompt: string;
/** Which model distilled it, from which sessions. */
provenance: string;
createdAt: string;
}
interface ProUiApi {

@@ -702,2 +711,5 @@ features(): ProUiFeatures;

forgetMemory(id: string): Promise<boolean>;
/** Playbooks: prompts distilled by an AI from the user's own sessions. */
listPlaybooks?(): Promise<ProPlaybookEntry[]>;
removePlaybook?(id: string): Promise<boolean>;
/** Streams consult progress via onEvent; resolves when complete. */

@@ -949,4 +961,4 @@ consult?(question: string, onEvent: (event: {

declare const VERSION = "0.2.0";
declare const VERSION = "0.3.0";
export { BEHAVIOR_HARNESSES, type BehaviorHarness, type BehaviorState, type BuildEvent, type BuildExportOptions, type Connector, type ConnectorStatus, type ConsultProviderSpec, type ContextMeta, type ContextObject, type ContextScope, type CreateVaultOptions, DEFAULT_VAULT_CONFIG_PATH, EXPORT_PROFILES, EXPORT_SCHEMA_VERSION, EXPORT_SECTIONS, type ExportEnvelope, type ExportProfile, type ExportSection, type ExportedContext, type ExportedKeyFile, type FetchLike, type GitCommit, type GitState, HttpRelayStore, type HttpRelayStoreOptions, INGEST_SCHEMA_VERSION, type IngestArtifact, type IngestDoor, type IngestInput, type IngestResult, IngestStore, type IngestedSession, type JoinVaultOptions, type KdfParams, type KeyFile, type LoadConfigOptions, type LocalBlobSource, MASTER_KEY_BYTES, MIN_PASSPHRASE_LENGTH, type NotionConnectorOptions, type NotionPage, type OllamaSummarizerOptions, type ProLicenseInfo, type ProMemoryEntry, type ProModule, type ProUiApi, type ProUiFeatures, type RecoverVaultOptions, type RelayStore, type RenderedBehavior, type ResolvedConfig, type SaveSessionInput, type ServeTokenSpec, type ServerOptions, type SessionDigest, type SessionSyncPayload, SnapshotCache, type SnapshotInput, type SnapshotService, type Summarizer, type SyncBlobMeta, SyncClient, type SyncEntry, type SyncPayload, type SyncResult, type ThreadResolution, type ThreadSummary, type ThreadSyncPayload, TokenBudget, type UninstallResult, VERSION, type VaultConfig, type VaultMeta, type VaultView, assertPassphraseStrength, autoCaptureBlocked, buildContext, buildExportEnvelope, buildVaultView, clearBehaviorState, createNotionConnector, createOllamaSummarizer, createServer, createSnapshotService, createVault, decryptBlob, deriveBlobId, deriveMasterKey, detectHarnesses, encryptBlob, estimateTokens, fetchVaultMeta, fileConnector, filterScope, formatIngestErrors, fromBase64, generateRecoveryCode, generateSalt, gitConnector, inferHarnessFromClientName, ingestInputSchema, ingestSessionId, ingestSessionSchema, ingestSourceSchema, ingestToSessionDigest, inspectLicenseKey, installBehavior, isDeniedPath, joinVault, loadCanonicalBehaviors, loadConfig, loadProModule, loadVaultConfig, mergeIngestedSessions, normalizeRecoveryCode, openVaultSync, parseSyncPayload, readBehaviorState, recoverVault, redactContent, renderAllBehaviors, renderBehavior, renderExportMarkdown, renderThreadResume, resolveThread, saveSessionSchema, saveVaultConfig, scoreThreadMatch, sessionPayloadToIngestedSession, toBase64, truncateToTokens, uninstallBehavior, unlockVault, unwrapMasterKey, wrapMasterKey, writeBehaviorState, zeroKey };

@@ -695,2 +695,11 @@ import { z } from 'zod';

}
interface ProPlaybookEntry {
id: string;
title: string;
/** The reusable distilled prompt, decrypted for display. */
prompt: string;
/** Which model distilled it, from which sessions. */
provenance: string;
createdAt: string;
}
interface ProUiApi {

@@ -702,2 +711,5 @@ features(): ProUiFeatures;

forgetMemory(id: string): Promise<boolean>;
/** Playbooks: prompts distilled by an AI from the user's own sessions. */
listPlaybooks?(): Promise<ProPlaybookEntry[]>;
removePlaybook?(id: string): Promise<boolean>;
/** Streams consult progress via onEvent; resolves when complete. */

@@ -949,4 +961,4 @@ consult?(question: string, onEvent: (event: {

declare const VERSION = "0.2.0";
declare const VERSION = "0.3.0";
export { BEHAVIOR_HARNESSES, type BehaviorHarness, type BehaviorState, type BuildEvent, type BuildExportOptions, type Connector, type ConnectorStatus, type ConsultProviderSpec, type ContextMeta, type ContextObject, type ContextScope, type CreateVaultOptions, DEFAULT_VAULT_CONFIG_PATH, EXPORT_PROFILES, EXPORT_SCHEMA_VERSION, EXPORT_SECTIONS, type ExportEnvelope, type ExportProfile, type ExportSection, type ExportedContext, type ExportedKeyFile, type FetchLike, type GitCommit, type GitState, HttpRelayStore, type HttpRelayStoreOptions, INGEST_SCHEMA_VERSION, type IngestArtifact, type IngestDoor, type IngestInput, type IngestResult, IngestStore, type IngestedSession, type JoinVaultOptions, type KdfParams, type KeyFile, type LoadConfigOptions, type LocalBlobSource, MASTER_KEY_BYTES, MIN_PASSPHRASE_LENGTH, type NotionConnectorOptions, type NotionPage, type OllamaSummarizerOptions, type ProLicenseInfo, type ProMemoryEntry, type ProModule, type ProUiApi, type ProUiFeatures, type RecoverVaultOptions, type RelayStore, type RenderedBehavior, type ResolvedConfig, type SaveSessionInput, type ServeTokenSpec, type ServerOptions, type SessionDigest, type SessionSyncPayload, SnapshotCache, type SnapshotInput, type SnapshotService, type Summarizer, type SyncBlobMeta, SyncClient, type SyncEntry, type SyncPayload, type SyncResult, type ThreadResolution, type ThreadSummary, type ThreadSyncPayload, TokenBudget, type UninstallResult, VERSION, type VaultConfig, type VaultMeta, type VaultView, assertPassphraseStrength, autoCaptureBlocked, buildContext, buildExportEnvelope, buildVaultView, clearBehaviorState, createNotionConnector, createOllamaSummarizer, createServer, createSnapshotService, createVault, decryptBlob, deriveBlobId, deriveMasterKey, detectHarnesses, encryptBlob, estimateTokens, fetchVaultMeta, fileConnector, filterScope, formatIngestErrors, fromBase64, generateRecoveryCode, generateSalt, gitConnector, inferHarnessFromClientName, ingestInputSchema, ingestSessionId, ingestSessionSchema, ingestSourceSchema, ingestToSessionDigest, inspectLicenseKey, installBehavior, isDeniedPath, joinVault, loadCanonicalBehaviors, loadConfig, loadProModule, loadVaultConfig, mergeIngestedSessions, normalizeRecoveryCode, openVaultSync, parseSyncPayload, readBehaviorState, recoverVault, redactContent, renderAllBehaviors, renderBehavior, renderExportMarkdown, renderThreadResume, resolveThread, saveSessionSchema, saveVaultConfig, scoreThreadMatch, sessionPayloadToIngestedSession, toBase64, truncateToTokens, uninstallBehavior, unlockVault, unwrapMasterKey, wrapMasterKey, writeBehaviorState, zeroKey };
+1
-1
{
"name": "ctxfile",
"version": "0.2.0",
"version": "0.3.0",
"description": "Local-first MCP server that snapshots your project's working state (files, git, Notion, local-LLM summary) into a structured context object for any MCP client.",

@@ -5,0 +5,0 @@ "mcpName": "dev.ctxfile/ctxfile",

@@ -12,4 +12,4 @@ <!doctype html>

/>
<script type="module" crossorigin src="./assets/index-Do7dvee8.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-CAydkgHR.css">
<script type="module" crossorigin src="./assets/index-BQ0RYDn-.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-CZ5Hv1Kf.css">
</head>

@@ -16,0 +16,0 @@ <body>

@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-display:swap;src:url(./archivo-var-latin-BEIDiHaE.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Doto;font-style:normal;font-weight:100 900;font-display:swap;src:url(./doto-var-latin-Y-BORX9o.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(./plex-mono-400-latin-BJoXLJYV.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(./plex-mono-500-latin-C820gu2e.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(./plex-mono-600-latin-DpGnXj3s.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--desk: #0b0b0a;--face: #191916;--face-2: #201f1c;--well: #121210;--line: rgba(255, 255, 255, .09);--line-strong: rgba(255, 255, 255, .2);--text: #ebe9e1;--text-2: #a6a396;--text-3: #767263;--screen: #0c0e0d;--screen-2: #121514;--screen-text: #dbe5d8;--screen-dim: #7d887a;--screen-line: rgba(214, 232, 208, .12);--screen-green: #56df88;--screen-amber: #ffc555;--screen-red: #ff6b5e;--accent: #ff5714;--accent-dim: rgba(255, 87, 20, .14);--ok: #3fd77e;--ok-dim: rgba(63, 215, 126, .13);--warn: #ffb02e;--warn-dim: rgba(255, 176, 46, .13);--err: #ff5c50;--err-dim: rgba(255, 92, 80, .13);--redact: #b892ff;--redact-dim: rgba(184, 146, 255, .15);--pro: #d9a23c;--pro-dim: rgba(217, 162, 60, .14);--lamp-ok: #2ee27b;--lamp-warn: #ffb000;--lamp-err: #ff4b3e;--lamp-accent: #ff5714;--lamp-pro: #ffc043;--lamp-redact: #b892ff;--lamp-off: rgba(128, 128, 118, .45);--key-bg: linear-gradient(180deg, #26251f, #1c1b17);--key-border: rgba(255, 255, 255, .16);--key-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 1px 2px rgba(0, 0, 0, .5);--key-shadow-down: inset 0 2px 3px rgba(0, 0, 0, .45);--radius: 8px;--radius-lg: 12px;--radius-xl: 18px;--font-sans: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-led: "Doto", "IBM Plex Mono", ui-monospace, monospace;--ease: cubic-bezier(.3, .1, .2, 1);--dur-fast: .1s;--dur: .15s;--dur-slow: .22s;--shadow-device: 0 40px 90px rgba(0, 0, 0, .6), 0 4px 14px rgba(0, 0, 0, .45);--shadow-sheet: 0 24px 64px rgba(0, 0, 0, .6);color-scheme:dark}[data-theme=light]{--face: #d5d4cc;--face-2: #e0dfd8;--well: #c6c5bc;--line: rgba(32, 31, 25, .16);--line-strong: rgba(32, 31, 25, .32);--text: #201f1a;--text-2: #55534a;--text-3: #676458;--accent: #e04a00;--accent-dim: rgba(224, 74, 0, .13);--ok: #12813f;--ok-dim: rgba(18, 129, 63, .13);--warn: #94660a;--warn-dim: rgba(148, 102, 10, .15);--err: #bf2f24;--err-dim: rgba(191, 47, 36, .12);--redact: #6a3ecb;--redact-dim: rgba(106, 62, 203, .12);--pro: #8a6210;--pro-dim: rgba(138, 98, 16, .15);--key-bg: linear-gradient(180deg, #f2f1ea, #dddcd4);--key-border: rgba(32, 31, 25, .3);--key-shadow: inset 0 1px 0 rgba(255, 255, 255, .85), 0 1px 2px rgba(32, 31, 25, .25);--key-shadow-down: inset 0 2px 3px rgba(32, 31, 25, .28);--shadow-device: 0 40px 90px rgba(0, 0, 0, .55), 0 4px 14px rgba(0, 0, 0, .4);--shadow-sheet: 0 24px 64px rgba(10, 10, 9, .5);color-scheme:light}@media(prefers-reduced-motion:reduce){:root{--dur-fast: 0ms;--dur: 0ms;--dur-slow: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background-color:var(--desk);color:var(--text);font-family:var(--font-sans);font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(120% 90% at 50% 0%,transparent 55%,rgba(0,0,0,.5))}#root{height:100%;position:relative;z-index:1}code,pre,kbd,.mono{font-family:var(--font-mono)}.num{font-variant-numeric:tabular-nums}::selection{background:var(--accent);color:#160902}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}button{font:inherit;color:inherit}h1{font-size:17px;font-weight:700;letter-spacing:-.01em;margin:0}kbd{font-size:10px;padding:1px 5px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;background:var(--face-2)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:5px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.app{position:relative;display:flex;flex-direction:column;height:calc(100vh - 24px);margin:12px;overflow:hidden;background:var(--face);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-device),inset 0 1px #ffffff12}[data-theme=light] .app{box-shadow:var(--shadow-device),inset 0 1px #ffffffb3}.app-body{display:flex;flex:1;min-height:0}.main{flex:1;overflow-y:auto;min-width:0}.view{max-width:1080px;margin:0 auto;padding:26px 30px 56px;display:flex;flex-direction:column;gap:14px}.view>*{animation:mod-in var(--dur-slow) var(--ease) both}.view>*:nth-child(2){animation-delay:40ms}.view>*:nth-child(3){animation-delay:80ms}.view>*:nth-child(4){animation-delay:.12s}.view>*:nth-child(5){animation-delay:.16s}.view>*:nth-child(n+6){animation-delay:.2s}@keyframes mod-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.view>*{animation:none}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:48px;padding:0 14px 0 16px;border-bottom:1px solid var(--line);flex-shrink:0;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent)}[data-theme=light] .topbar{background:linear-gradient(180deg,rgba(255,255,255,.45),transparent)}.topbar-root{font-size:11.5px;color:var(--text-2);background:var(--well);border:1px solid var(--line);border-radius:6px;box-shadow:inset 0 1.5px 3px #0000004d;padding:4px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:46vw}.topbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.topbar-age{font-family:var(--font-mono)}.topbar-chip-btn{cursor:pointer;background:var(--key-bg);border:1px solid var(--key-border);box-shadow:var(--key-shadow);border-radius:7px;padding:3px 9px;transition:border-color var(--dur-fast) var(--ease)}.topbar-chip-btn:hover{border-color:var(--line-strong)}.topbar-chip-btn:active{transform:translateY(1px);box-shadow:var(--key-shadow-down)}.topbar-chip-btn kbd{font-size:10.5px;border:none;background:none;padding:0}.topbar-switch-btn{display:inline-flex;align-items:center;background:none;border:none;padding:4px 2px;cursor:pointer}.switch{display:inline-flex;align-items:center;width:30px;height:14px;padding:2px;border-radius:999px;background:var(--well);border:1px solid var(--line);box-shadow:inset 0 1.5px 3px #00000059}.switch-knob{width:12px;height:8px;border-radius:3px;background:var(--key-bg);border:1px solid var(--key-border);box-shadow:0 1px 1px #0006;transition:transform var(--dur) var(--ease)}.switch[data-on=true] .switch-knob{transform:translate(12px)}.view-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:36px}.header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rail{width:190px;flex-shrink:0;border-right:1px solid var(--line);padding:16px 10px 14px;display:flex;flex-direction:column;gap:2px;background:linear-gradient(90deg,rgba(255,255,255,.015),transparent)}[data-theme=light] .rail{background:linear-gradient(90deg,rgba(255,255,255,.35),transparent)}.rail-brand{display:flex;align-items:center;gap:9px;padding:2px 8px 16px}.brand-mark{flex-shrink:0;display:block;border-radius:6px;box-shadow:0 1px 3px #0006,inset 0 1px #ffffff59}.brand-word{font-weight:750;font-size:15px;letter-spacing:-.02em;line-height:1.1}.brand-tag{display:block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);margin-top:2px}.rail-item{position:relative;display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:1px solid transparent;background:none;border-radius:var(--radius);color:var(--text-2);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.rail-item:hover{background:var(--face-2);color:var(--text)}.rail-active,.rail-active:hover{background:var(--well);border-color:var(--line);box-shadow:inset 0 1.5px 3px #0000004d;color:var(--text)}.rail-glyph{width:7px;height:7px;flex-shrink:0;font-size:0;border-radius:50%;background:var(--lamp-off);box-shadow:inset 0 1px 1px #00000080;transition:background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.rail-active .rail-glyph{background:var(--lamp-accent);box-shadow:0 0 8px 1px color-mix(in srgb,var(--lamp-accent) 65%,transparent),inset 0 1px 1px #fff6}.rail-label{flex:1;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.rail-pro{color:var(--pro);font-size:10px}.rail-foot{margin-top:auto;padding:12px 10px 2px}.rail-version{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.panel{position:relative;background:var(--face-2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 1px #ffffff0d,0 1px 2px #0003}[data-theme=light] .panel{box-shadow:inset 0 1px #ffffffa6,0 1px 2px #201f191f}.panel:before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background-image:radial-gradient(circle 1.6px,rgba(0,0,0,.55) 98%,transparent),radial-gradient(circle 1.6px,rgba(0,0,0,.55) 98%,transparent),radial-gradient(circle 1.6px,rgba(0,0,0,.55) 98%,transparent),radial-gradient(circle 1.6px,rgba(0,0,0,.55) 98%,transparent);background-repeat:no-repeat;background-size:4px 4px;background-position:7px 7px,calc(100% - 7px) 7px,7px calc(100% - 7px),calc(100% - 7px) calc(100% - 7px);opacity:.5}[data-theme=light] .panel:before{background-image:radial-gradient(circle 1.6px,rgba(32,31,25,.4) 98%,transparent),radial-gradient(circle 1.6px,rgba(32,31,25,.4) 98%,transparent),radial-gradient(circle 1.6px,rgba(32,31,25,.4) 98%,transparent),radial-gradient(circle 1.6px,rgba(32,31,25,.4) 98%,transparent)}.panel-title{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);display:flex;align-items:center;gap:8px}.panel-title:before{content:"";width:10px;height:2px;border-radius:1px;background:var(--accent);opacity:.85}.panel-hairline.is-running{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:inset 0 1px #ffffff0d,0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent),0 0 28px color-mix(in srgb,var(--accent) 14%,transparent)}.panel-flash:after{content:"";position:absolute;inset:-1px;pointer-events:none;border-radius:inherit;border:1px solid var(--lamp-ok);box-shadow:0 0 24px color-mix(in srgb,var(--lamp-ok) 30%,transparent);animation:run-flash .5s var(--ease) forwards}@keyframes run-flash{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.panel-flash:after{animation:none;opacity:0}}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.stat-card{position:relative;background:var(--face-2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:10px;box-shadow:inset 0 1px #ffffff0d,0 1px 2px #0003}[data-theme=light] .stat-card{box-shadow:inset 0 1px #ffffffa6,0 1px 2px #201f191f}.stat-label{font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);padding:2px 2px 8px}.stat-screen{background:var(--screen);border-radius:8px;border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #0000008c;padding:10px 12px 9px;min-height:66px;display:flex;flex-direction:column;justify-content:center}.stat-value{font-family:var(--font-led);font-size:27px;font-weight:700;line-height:1.05;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--screen-text);text-shadow:0 0 14px color-mix(in srgb,currentColor 30%,transparent)}.stat-accent .stat-value{color:var(--lamp-accent)}.stat-warn .stat-value{color:var(--screen-amber)}.stat-redact .stat-value{color:var(--lamp-redact)}.stat-sub{margin-top:5px;font-family:var(--font-mono);font-size:10.5px;color:var(--screen-dim)}.stale-flag{color:var(--screen-amber)}.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);white-space:nowrap}.pill-dot{width:7px;height:7px;border-radius:50%;background:var(--lamp-off);box-shadow:inset 0 1px 1px #00000080}.pill-ok{color:var(--ok)}.pill-ok .pill-dot{background:var(--lamp-ok);box-shadow:0 0 7px 1px color-mix(in srgb,var(--lamp-ok) 60%,transparent),inset 0 1px 1px #fff6}.pill-error{color:var(--err)}.pill-error .pill-dot{background:var(--lamp-err);box-shadow:0 0 7px 1px color-mix(in srgb,var(--lamp-err) 60%,transparent),inset 0 1px 1px #fff6}.pill-skipped,.pill-pending{color:var(--text-3)}.pill-running{color:var(--accent)}.pill-running .pill-dot{background:var(--lamp-accent);box-shadow:0 0 7px 1px color-mix(in srgb,var(--lamp-accent) 60%,transparent),inset 0 1px 1px #fff6;animation:lamp-blink 1s var(--ease) infinite}.pill-locked{color:var(--pro)}.pill-locked .pill-dot{background:var(--lamp-pro);box-shadow:0 0 7px 1px color-mix(in srgb,var(--lamp-pro) 55%,transparent),inset 0 1px 1px #fff6}@keyframes lamp-blink{0%,to{opacity:1}50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.pill-running .pill-dot{animation:none}}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:5px;font-family:var(--font-mono);font-size:10.5px;background:var(--well);border:1px solid var(--line);color:var(--text-2);white-space:nowrap;box-shadow:inset 0 1px 2px #00000038}.chip-warn{color:var(--warn)}.chip-redact{color:var(--redact)}.chip-ok{color:var(--ok)}.pro-pill{display:inline-block;padding:3px 13px;border-radius:5px;font-size:10.5px;font-weight:800;letter-spacing:.22em;color:#362708;background:linear-gradient(180deg,#ecc775,#c3913a);border:1px solid rgba(54,39,8,.55);box-shadow:inset 0 1px #ffffff8c,0 1px 3px #00000073;text-shadow:0 1px 0 rgba(255,255,255,.25)}.connector-list{display:flex;flex-direction:column}.connector-row{display:flex;align-items:center;gap:12px;min-height:36px;padding:7px 6px;border-bottom:1px solid var(--line);transition:background var(--dur) var(--ease)}.connector-row:last-child{border-bottom:none}.connector-running{background:var(--accent-dim);border-radius:var(--radius);box-shadow:inset 2px 0 0 var(--accent);padding-left:12px}.connector-running .pill-dot{animation:lamp-blink .9s var(--ease) infinite}@media(prefers-reduced-motion:reduce){.connector-running .pill-dot{animation:none}}.connector-name{font-family:var(--font-mono);font-size:12.5px;font-weight:500}.connector-error{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--err);font-size:12px;font-family:var(--font-mono)}.connector-right{margin-left:auto;display:flex;align-items:center;gap:12px}.connector-duration{color:var(--text-3);font-family:var(--font-mono);font-size:11px}.token-meter{display:flex;flex-direction:column;gap:7px}.token-meter-track{height:16px;border-radius:5px;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 6px #0000008c;overflow:hidden;padding:3px}.token-meter-fill{position:relative;height:100%;border-radius:2px;background-image:linear-gradient(90deg,var(--lamp-ok) 0%,var(--lamp-ok) 62%,var(--lamp-warn) 78%,var(--lamp-err) 96%);background-size:calc(10000%/max(var(--pct, 100),.5)) 100%;background-repeat:no-repeat;mask-image:repeating-linear-gradient(90deg,#000 0 5px,transparent 5px 8px);-webkit-mask-image:repeating-linear-gradient(90deg,#000 0 5px,transparent 5px 8px);transition:width var(--dur-slow) var(--ease)}.token-meter-over .token-meter-fill{background-image:linear-gradient(90deg,var(--lamp-warn),var(--lamp-err));background-size:100% 100%}.is-running .token-meter-fill:after{content:"";position:absolute;right:0;top:0;bottom:0;width:5px;background:#fff;opacity:.8;animation:lamp-blink .7s var(--ease) infinite}.token-meter-caption{font-family:var(--font-mono);font-size:11px;color:var(--text-2)}.token-meter-budget{color:var(--text-3)}.token-meter-flag{color:var(--err);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.timeline{display:flex;align-items:flex-end;gap:4px;height:84px;background:var(--screen);border-radius:8px;border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #0000008c;padding:10px 12px 8px}.timeline-cell{position:relative;flex:1;max-width:26px;height:100%;display:flex;align-items:flex-end}.timeline-bar{width:100%;background:var(--screen-green);border-radius:1px;opacity:.85;mask-image:repeating-linear-gradient(180deg,#000 0 3px,transparent 3px 5px);-webkit-mask-image:repeating-linear-gradient(180deg,#000 0 3px,transparent 3px 5px);transition:opacity var(--dur-fast) var(--ease)}.timeline-cell:hover .timeline-bar{opacity:1;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--screen-green) 70%,transparent))}.timeline-cell:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);padding:3px 9px;border-radius:6px;border:1px solid var(--line-strong);background:var(--face);color:var(--text-2);font-size:10.5px;font-family:var(--font-mono);white-space:nowrap;opacity:0;pointer-events:none;z-index:20;transition:opacity var(--dur-fast) var(--ease);box-shadow:0 4px 14px #0006}.timeline-cell:hover:after{opacity:1;transition-delay:.15s}.btn{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:var(--radius);border:1px solid var(--key-border);background:var(--key-bg);box-shadow:var(--key-shadow);color:var(--text);font-size:12.5px;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),filter var(--dur-fast) var(--ease)}.btn:hover:not(:disabled){border-color:var(--line-strong);filter:brightness(1.05)}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:var(--key-shadow-down)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:linear-gradient(180deg,#ff6f2e,#ee4d00);border-color:#0006;box-shadow:inset 0 1px #ffffff59,0 1px 3px #0006;color:#1c0b02;font-weight:700}.btn-primary:hover:not(:disabled){border-color:#0006;filter:brightness(1.06)}.btn-primary:active:not(:disabled){box-shadow:inset 0 2px 4px #00000059}.btn-primary kbd{border-color:#00000059;background:#0000001f;color:inherit}.btn-rec:before{content:"";width:7px;height:7px;border-radius:50%;background:#e0180b;box-shadow:0 0 8px 2px #e0180b99;animation:lamp-blink .8s var(--ease) infinite}@media(prefers-reduced-motion:reduce){.btn-rec:before{animation:none}}.btn-danger{background:linear-gradient(180deg,#e6564a,#c93327);border-color:#0006;box-shadow:inset 0 1px #ffffff4d,0 1px 3px #0006;color:#1e0503;font-weight:700}.btn-small{padding:2px 9px;font-size:11px}.btn kbd{font-size:10px;padding:1px 5px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;background:#00000026;opacity:.85}.search-input,.consult-input,.palette-input{background:var(--well);border:1px solid var(--line);border-radius:var(--radius);box-shadow:inset 0 1.5px 3px #0000004d;color:var(--text);padding:6px 11px;font-size:13px;font-family:inherit;caret-color:var(--accent)}.search-input::placeholder,.consult-input::placeholder,.palette-input::placeholder{color:var(--text-3)}.search-input:focus,.consult-input:focus,.palette-input:focus{border-color:var(--accent);outline:none;box-shadow:inset 0 1.5px 3px #0000004d,0 0 0 2px var(--accent-dim)}.banner{padding:9px 14px;border-radius:var(--radius);font-size:12.5px;font-family:var(--font-mono);border:1px solid transparent;border-left-width:3px}.banner-err{background:var(--err-dim);color:var(--err);border-left-color:var(--err)}.banner-warn{background:var(--warn-dim);color:var(--warn);border-left-color:var(--warn)}.banner-ok{background:var(--ok-dim);color:var(--ok);border-left-color:var(--ok)}.loading{color:var(--text-3);font-family:var(--font-mono);font-size:12.5px;padding:36px 0;text-align:center}.loading:after{content:"▮";margin-left:4px;animation:lamp-blink 1s steps(2,start) infinite}@media(prefers-reduced-motion:reduce){.loading:after{animation:none}}.muted{color:var(--text-3);font-size:12.5px}.empty-state{background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 10px #0000008c;border-radius:var(--radius-lg);padding:46px 32px;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}.empty-icon{width:44px;height:44px;border-radius:10px;border:1px dashed var(--screen-line);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--screen-dim);margin-bottom:4px}.empty-title{font-size:14.5px;font-weight:650;color:var(--screen-text)}.empty-body{color:var(--screen-dim);max-width:460px;font-size:12.5px}.empty-action{margin-top:8px}.empty-snippet{margin:14px auto 0;max-width:520px;text-align:left;font-family:var(--font-mono);font-size:11.5px;line-height:1.6;color:var(--screen-text);background:var(--screen-2);border:1px solid var(--screen-line);border-radius:8px;padding:10px 14px;white-space:pre-wrap;-webkit-user-select:all;user-select:all}.trust-strip{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);background:var(--well);border:1px solid var(--line);box-shadow:inset 0 1.5px 3px #00000040;border-radius:var(--radius);padding:7px 14px}.trust-strip-active{border-color:var(--warn)}.network-hero{flex-direction:row;align-items:center;gap:18px;padding:14px 16px}.network-hero-count{font-family:var(--font-led);font-size:42px;font-weight:700;line-height:1;color:var(--screen-green);text-shadow:0 0 16px color-mix(in srgb,var(--screen-green) 45%,transparent);flex-shrink:0;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #0000008c;border-radius:8px;min-width:86px;padding:14px 16px 12px;text-align:center}.network-hero-active .network-hero-count{color:var(--screen-amber);text-shadow:0 0 16px color-mix(in srgb,var(--screen-amber) 45%,transparent)}.network-hero-active{border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}.network-hero-title{font-size:13px;font-weight:700;letter-spacing:.01em}.network-hero-sub{color:var(--text-2);font-size:12.5px;margin-top:2px}.fullscreen-state{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--desk);z-index:60}.fullscreen-state.overlay{background:color-mix(in srgb,var(--desk) 72%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.fullscreen-card{max-width:440px;padding:34px 36px;text-align:center;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--face);box-shadow:var(--shadow-device),inset 0 1px #ffffff12}.fullscreen-card h1{font-size:19px;font-weight:750;letter-spacing:-.02em}.fullscreen-card p{color:var(--text-2);font-size:13px}.fullscreen-card code{font-size:12px;background:var(--well);border:1px solid var(--line);border-radius:5px;padding:1px 6px}.loading-dot{width:9px;height:9px;margin:14px auto 0;border-radius:50%;background:var(--lamp-accent);box-shadow:0 0 10px 2px color-mix(in srgb,var(--lamp-accent) 55%,transparent);animation:lamp-blink 1.2s var(--ease) infinite}.explorer{display:grid;grid-template-columns:290px 1fr;gap:14px;min-height:0}.explorer-tree{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--face-2);box-shadow:inset 0 1px #ffffff0d;padding:10px 8px;overflow-y:auto;max-height:calc(100vh - 210px);display:flex;flex-direction:column;gap:1px}[data-theme=light] .explorer-tree{box-shadow:inset 0 1px #ffffffa6}.tree-group{font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);padding:12px 8px 5px;display:flex;gap:6px;align-items:center}.tree-count{color:var(--text-3)}.tree-item{display:flex;align-items:center;gap:8px;width:100%;border:1px solid transparent;background:none;text-align:left;padding:5px 8px;border-radius:var(--radius);color:var(--text-2);font-size:12px;cursor:pointer;transition:background var(--dur-fast) var(--ease)}.tree-item:hover{background:var(--face);color:var(--text)}.tree-active,.tree-active:hover{background:var(--well);border-color:var(--line);box-shadow:inset 0 1.5px 3px #00000047;color:var(--text)}.tree-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.explorer-detail{border:1px solid rgba(0,0,0,.6);border-radius:var(--radius-lg);background:var(--screen);box-shadow:inset 0 2px 10px #00000080;padding:16px;min-width:0;overflow:auto;max-height:calc(100vh - 210px);display:flex;flex-direction:column;gap:10px;color:var(--screen-text)}.explorer-detail .empty-state{background:none;border:none;box-shadow:none}.explorer-detail .chip{background:var(--screen-2);border-color:var(--screen-line);color:var(--screen-dim);box-shadow:none}.explorer-detail .chip-warn{color:var(--screen-amber)}.explorer-detail .chip-redact{color:var(--lamp-redact)}.detail-meta{display:flex;gap:8px;flex-wrap:wrap}.detail-pre{margin:0;font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--screen-text)}.panel .detail-pre{background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #00000080;border-radius:8px;padding:12px 14px;overflow:auto;max-height:340px}.raw-json{border:1px solid rgba(0,0,0,.6);border-radius:var(--radius-lg);background:var(--screen);box-shadow:inset 0 2px 10px #00000080;padding:16px;overflow:auto;max-height:calc(100vh - 210px)}.explorer-detail::-webkit-scrollbar-thumb,.raw-json::-webkit-scrollbar-thumb,.panel .detail-pre::-webkit-scrollbar-thumb{background:var(--screen-line);background-clip:content-box}.scope-switch{display:inline-flex;gap:2px;background:var(--well);border:1px solid var(--line);box-shadow:inset 0 1.5px 3px #0000004d;border-radius:var(--radius);padding:2px}.scope-btn{border:1px solid transparent;background:none;padding:3px 11px;font-size:11px;color:var(--text-3);cursor:pointer;font-family:var(--font-mono);border-radius:6px;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.scope-btn:hover{color:var(--text)}.scope-active,.scope-btn.scope-active:hover{background:var(--key-bg);border-color:var(--key-border);box-shadow:var(--key-shadow);color:var(--accent);font-weight:600}.git-branch{display:flex;gap:6px;align-items:center}.git-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.git-col-ok .panel-title{color:var(--ok)}.git-col-ok .panel-title:before{background:var(--lamp-ok)}.git-col-warn .panel-title{color:var(--warn)}.git-col-warn .panel-title:before{background:var(--lamp-warn)}.git-col-muted .panel-title:before{background:var(--lamp-off)}.file-list{margin:0;padding:0;list-style:none;font-size:11.5px;display:flex;flex-direction:column;gap:3px;color:var(--text-2);word-break:break-all}.commit-list{margin:0;padding:4px 12px;list-style:none;display:flex;flex-direction:column;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #00000080;border-radius:8px}.commit-row{display:flex;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--screen-line);font-size:12px}.commit-row:last-child{border-bottom:none}.commit-hash{color:var(--screen-green);font-size:11.5px;flex-shrink:0}.commit-message{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--screen-text)}.commit-meta{color:var(--screen-dim);font-family:var(--font-mono);font-size:10.5px;flex-shrink:0}.session-list{display:flex;flex-direction:column;gap:12px}.session-head{display:flex;align-items:center;gap:8px}.session-time{margin-left:auto;color:var(--text-3);font-family:var(--font-mono);font-size:11px}.session-digest{margin:0;color:var(--screen-text);font-size:12.5px;line-height:1.6;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #00000080;border-radius:8px;padding:11px 14px;max-height:260px;overflow-y:auto}.session-digest::-webkit-scrollbar-thumb{background:var(--screen-line);background-clip:content-box}.source-claude-code{color:var(--accent)}.source-cursor{color:var(--redact)}.source-codex{color:var(--ok)}.source-opencode{color:var(--warn)}.source-gemini-cli{color:var(--screen-dim)}.source-aider{color:var(--pro)}.source-openclaw{color:var(--err)}.source-hermes{color:var(--text-2)}.memory-groups{display:flex;flex-direction:column;gap:12px}.memory-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.memory-row{padding:10px 2px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.memory-row:last-child{border-bottom:none}.memory-content{font-size:13px}.memory-meta{display:flex;align-items:center;gap:12px;font-size:11px;font-family:var(--font-mono);color:var(--text-3)}.memory-provenance{font-family:var(--font-mono)}.memory-meta .btn{margin-left:auto}.consult-form{display:flex;gap:10px;align-items:flex-end}.consult-input{flex:1;resize:vertical;min-height:64px}.consult-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;align-items:start}.consult-answer{font-size:12px}.consult-col>p{margin:0;color:var(--screen-text);font-size:12.5px;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 8px #00000080;border-radius:8px;padding:11px 14px}.event-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.event-row{display:flex;gap:10px;align-items:baseline}.event-data{margin:0;font-size:11px;color:var(--text-2);overflow-x:auto}.kv{margin:0;display:flex;flex-direction:column;gap:5px;font-size:12px}.kv-row{display:grid;grid-template-columns:160px 1fr;gap:12px}.kv dt{color:var(--text-3);font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;padding-top:1px}.kv dd{margin:0;word-break:break-all}.license-expiry{color:var(--text-3);font-size:11.5px;margin-bottom:12px}.license-expiry-warn{color:var(--warn)}.license-features{display:flex;gap:6px;flex-wrap:wrap}.license-form{display:flex;gap:10px}.license-form .search-input{flex:1}.pro-lock{position:relative;border-radius:var(--radius-lg);overflow:hidden}.pro-lock-preview{filter:blur(6px) saturate(.6);opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.pro-lock-sheen{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}.pro-lock-sheen:before{content:"";position:absolute;top:-20%;bottom:-20%;left:-45%;width:38%;transform:skew(-14deg);background:linear-gradient(105deg,transparent,color-mix(in srgb,var(--pro) 8%,transparent),transparent);animation:sheen 8s var(--ease) infinite}@keyframes sheen{to{left:145%}}@media(prefers-reduced-motion:reduce){.pro-lock-sheen:before{animation:none}}.pro-lock-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px}.pro-lock-pitch{margin:0;max-width:420px;color:var(--text);font-size:13.5px;font-weight:500;text-shadow:0 1px 8px var(--face)}.pro-lock-bullets{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:12px;font-family:var(--font-mono);color:var(--text-2);text-align:left;text-shadow:0 1px 6px var(--face)}.pro-lock-bullets li:before{content:"✦";color:var(--pro);margin-right:8px;font-size:10px}.sheet-backdrop{position:fixed;inset:0;background:color-mix(in srgb,var(--desk) 55%,transparent);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fade-in var(--dur) var(--ease)}.palette-backdrop{align-items:flex-start;padding-top:22vh}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sheet-panel,.palette{background:var(--face);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow-sheet),inset 0 1px #ffffff12;animation:rise-in var(--dur-slow) var(--ease)}[data-theme=light] .sheet-panel,[data-theme=light] .palette{box-shadow:var(--shadow-sheet),inset 0 1px #ffffffb3}@keyframes rise-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.sheet-panel{width:min(440px,calc(100vw - 48px));padding:20px;display:flex;flex-direction:column;gap:12px}.sheet-title{font-size:14.5px;font-weight:700}.sheet-body{margin:0;color:var(--text-2);font-size:13px}.sheet-quote{margin:0;padding:8px 12px;border-left:2px solid var(--redact);background:var(--redact-dim);border-radius:0 var(--radius) var(--radius) 0;font-size:12.5px}.sheet-actions{display:flex;justify-content:flex-end;gap:8px}.palette{width:min(540px,calc(100vw - 48px));overflow:hidden;padding:10px;display:flex;flex-direction:column;gap:10px}.palette-input{width:100%;font-family:var(--font-mono);font-size:13.5px;padding:10px 14px}.palette-list{margin:0;padding:6px;list-style:none;max-height:320px;overflow-y:auto;background:var(--screen);border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 2px 10px #00000080;border-radius:8px}.palette-list::-webkit-scrollbar-thumb{background:var(--screen-line);background-clip:content-box}.palette-item{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;border:none;background:none;text-align:left;padding:8px 12px;border-radius:6px;font-size:12.5px;font-family:var(--font-mono);color:var(--screen-dim);cursor:pointer}.palette-item:before{content:"▸";flex-shrink:0;opacity:0;color:var(--lamp-accent)}.palette-item .palette-hint{margin-left:auto}.palette-cursor{background:var(--screen-2);color:var(--screen-text)}.palette-cursor:before{opacity:1;text-shadow:0 0 8px color-mix(in srgb,var(--lamp-accent) 70%,transparent)}.palette-hint{font-size:10px;color:var(--screen-dim);font-family:var(--font-mono);border:1px solid var(--screen-line);background:none;border-radius:4px;padding:1px 6px}.palette-empty{padding:16px;text-align:center;color:var(--screen-dim);font-family:var(--font-mono);font-size:12.5px}.palette-footer{display:flex;gap:16px;padding:2px 6px 4px;color:var(--text-3);font-size:10.5px;font-family:var(--font-mono)}.palette-footer kbd{font-size:10px;margin-right:4px}.palette-footer kbd+kbd{margin-left:-2px}@media(max-width:900px){.app{margin:0;height:100vh;border-radius:0;border:none}.rail{width:58px;padding:14px 8px}.rail-brand{justify-content:center;padding:2px 0 16px}.brand-word,.rail-label,.rail-pro,.rail-version{display:none}.rail-item{justify-content:center;padding:12px 0}.rail-item:after{content:attr(data-tip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);padding:3px 9px;border-radius:6px;border:1px solid var(--line-strong);background:var(--face);color:var(--text-2);font-size:11.5px;white-space:nowrap;opacity:0;pointer-events:none;z-index:40;transition:opacity var(--dur-fast) var(--ease);box-shadow:0 4px 14px #0006}.rail-item:hover:after,.rail-item:focus-visible:after{opacity:1;transition-delay:.4s}.explorer{grid-template-columns:1fr}.explorer-tree{max-height:240px}.topbar-root{max-width:38vw}}@media(prefers-reduced-motion:reduce){.loading-dot,.is-running .token-meter-fill:after{animation:none}}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display