vibeostheog 0.26.0 → 0.26.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/dist/assets/dashboard/assets/index-CspnmA46.js +3 -0
- package/dist/assets/dashboard/index.html +1 -1
- package/dist/assets/dashboard/vibeos-dashboard-config.js +1 -2
- package/dist/vibeOS.js +3439 -3519
- package/package.json +1 -1
- package/dist/assets/dashboard/assets/index-BAFoSUYT.css +0 -1
- package/dist/assets/dashboard/assets/index-BC32ZQ0q.css +0 -1
- package/dist/assets/dashboard/assets/index-BFPdi_Ph.css +0 -1
- package/dist/assets/dashboard/assets/index-BHjsjrCc.js +0 -5
- package/dist/assets/dashboard/assets/index-BUDvTrCq.css +0 -1
- package/dist/assets/dashboard/assets/index-BY7bffmm.js +0 -3
- package/dist/assets/dashboard/assets/index-BZu3dyXH.css +0 -1
- package/dist/assets/dashboard/assets/index-Brj9Ui6Z.js +0 -3
- package/dist/assets/dashboard/assets/index-C-ScsrcN.js +0 -3
- package/dist/assets/dashboard/assets/index-C5VfzSA8.js +0 -3
- package/dist/assets/dashboard/assets/index-C5tPTUjx.js +0 -3
- package/dist/assets/dashboard/assets/index-Cb3hwMDH.css +0 -1
- package/dist/assets/dashboard/assets/index-CjHF2vTf.css +0 -1
- package/dist/assets/dashboard/assets/index-CkX-loOf.js +0 -3
- package/dist/assets/dashboard/assets/index-D3bLrmaq.css +0 -1
- package/dist/assets/dashboard/assets/index-DGIMdqp_.css +0 -1
- package/dist/assets/dashboard/assets/index-DK4e4oaB.js +0 -3
- package/dist/assets/dashboard/assets/index-DhtwzMRd.js +0 -3
- package/dist/assets/dashboard/assets/index-DnK3sBqN.js +0 -3
- package/dist/assets/dashboard/assets/index-Dwg0W0mM.js +0 -3
- package/dist/assets/dashboard/assets/index-H09FCi_1.js +0 -5
- package/dist/assets/dashboard/assets/index-IZRaK1J1.js +0 -3
- package/dist/assets/dashboard/assets/index-VITT_Lum.js +0 -3
- package/dist/assets/dashboard/assets/index-Xf82CCxe.css +0 -1
- package/dist/assets/dashboard/assets/index-ZWfKo4FL.js +0 -3
- package/dist/assets/dashboard/assets/index-fhy-rD-W.css +0 -1
- package/dist/assets/dashboard/assets/index-mizr4ifp.js +0 -5
- package/dist/assets/dashboard/assets/index-rDxjSA11.css +0 -1
- package/dist/assets/dashboard/assets/index-xMN9Z-Zy.js +0 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibeostheog",
|
|
3
|
-
"version": "0.26.
|
|
3
|
+
"version": "0.26.2",
|
|
4
4
|
"description": "Cost-aware delegation enforcer for OpenCode. Tracks model usage, routes Task subagents to cheaper tiers, surfaces cumulative savings in chat. Includes research audit, reporting framework, project memory, progressive scratchpad decadence, and trinity CLI for brain/medium/cheap slot switching.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"release": "node scripts/release.mjs",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#050507;--bg-glow:rgba(88,166,255,.12);--bg-warm:rgba(255,157,61,.08);--surface:#0d1016;--surface-2:#111622;--panel:rgba(15,19,27,.88);--panel-strong:rgba(18,23,34,.96);--border:#1e2530;--border-hover:#354153;--text:#d4d4d4;--text-dim:#6a6a6a;--text-bright:#f0f0f0;--green:#3fb950;--red:#f85149;--yellow:#d29922;--accent:#58a6ff;--accent-dim:rgba(88,166,255,.08);--accent-strong:rgba(88,166,255,.18);--glow:0 24px 80px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.02) inset;--glow-soft:0 16px 44px rgba(0,0,0,.32),0 0 32px rgba(88,166,255,.06);--radius-lg:18px;--radius-md:12px;--radius-sm:9px;--mono:"JetBrains Mono","Fira Code","Cascadia Code","SF Mono",Menlo,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Helvetica,Arial,sans-serif}html{font-size:13px;background:radial-gradient(circle at 18% 8%,rgba(88,166,255,.14),transparent 28%),radial-gradient(circle at 82% 6%,rgba(255,157,61,.11),transparent 26%),radial-gradient(circle at 50% 108%,rgba(63,185,80,.08),transparent 28%),var(--bg)}body{font-family:var(--sans);background:radial-gradient(circle at 20% 0%,rgba(88,166,255,.08),transparent 24%),radial-gradient(circle at 90% 10%,rgba(255,157,61,.06),transparent 24%),linear-gradient(180deg,#ffffff05,#0000),var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;line-height:1.45}.app{max-width:1600px;margin:0 auto;padding:1.15rem 1.35rem}.header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;margin-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.06)}.header-title{display:flex;align-items:baseline;gap:.5rem}.header-title h1{font-family:var(--sans);font-size:1.08rem;font-weight:700;color:var(--text-bright);letter-spacing:-.2px}.header-title h1:before{content:"";color:var(--red)}.header-subtitle{font-size:.72rem;color:var(--text-dim);font-family:var(--mono);margin-top:.15rem}.version{font-size:.7rem;color:var(--text-dim);font-family:var(--mono)}.header-indicators{display:flex;gap:.5rem;align-items:center}.indicator{font-family:var(--mono);font-size:.65rem;padding:1px 6px;text-transform:uppercase;font-weight:600;letter-spacing:.5px;border:1px solid rgba(255,255,255,.06);border-radius:999px;background:#ffffff05}.indicator.connected{color:var(--green)}.indicator.disconnected{color:var(--yellow)}.indicator.disabled{color:var(--red)}.indicator:before{content:"● ";font-size:.5rem}.indicator.flash:before{content:"⚡ ";font-size:.7rem}.nav-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid var(--border)}.tab{font-family:var(--mono);background:transparent;border:none;color:var(--text-dim);padding:.4rem .75rem;cursor:pointer;font-size:.78rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;text-transform:uppercase;letter-spacing:.5px}.tab:hover{color:var(--text);border-bottom-color:var(--border-hover)}.tab.active{color:var(--text-bright);border-bottom-color:var(--green);font-weight:600}.content{display:flex;flex-direction:column;gap:.75rem}.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.card,.card-full{background:linear-gradient(180deg,#ffffff0a,#ffffff04),var(--panel);border:1px solid rgba(255,255,255,.06);padding:.8rem .9rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.card-full{grid-column:1/-1}.card h3,.card-full h3{font-family:var(--sans);font-size:.78rem;font-weight:700;margin-bottom:.65rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px}.card h3:before,.card-full h3:before{content:"── ";color:var(--border-hover)}.kv-table{width:100%;border-collapse:collapse;font-family:var(--mono)}.kv-table td{padding:.25rem 0;font-size:.78rem}.kv-table td:first-child{color:var(--text-dim);width:38%;white-space:nowrap}.kv-table td:last-child{color:var(--text);overflow-wrap:anywhere}.badge{display:inline-block;font-family:var(--mono);font-size:.65rem;padding:1px 5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;line-height:1.4}.badge.slot{color:var(--green)}.badge.slot:before{content:"["}.badge.slot:after{content:"]"}.badge.on{color:var(--green)}.badge.on:before{content:"["}.badge.on:after{content:"]"}.badge.off{color:var(--red)}.badge.off:before{content:"["}.badge.off:after{content:"]"}code{font-family:var(--mono);font-size:.75rem;color:var(--text-bright)}pre{font-family:var(--mono);font-size:.72rem}.credit-bar{display:inline-block;width:55px;height:6px;background:var(--border);overflow:hidden;vertical-align:middle;border:1px solid var(--border-hover)}.credit-fill{height:100%;background:var(--green);transition:width .4s ease}.credit-label{margin-left:.4rem;font-size:.7rem;font-family:var(--mono);color:var(--text-dim)}.trend{font-size:.85rem;font-family:var(--mono)}.trend-up{color:var(--green)}.trend-down{color:var(--red)}.trend-flat{color:var(--text-dim)}.bar-chart{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem}.bar-row{display:flex;align-items:center;gap:.5rem}.bar-label{width:75px;font-size:.7rem;color:var(--text-dim);text-align:right;font-family:var(--mono)}.bar-track{flex:1;height:5px;background:var(--border);overflow:hidden}.bar-fill{height:100%;background:var(--accent);transition:width .4s ease}.bar-value{width:55px;font-size:.7rem;text-align:right;font-family:var(--mono);color:var(--text-dim)}.data-table{width:100%;border-collapse:collapse;font-size:.72rem;font-family:var(--mono)}.data-table th,.data-table td{padding:.3rem .4rem;text-align:left}.data-table th{color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;border-bottom:1px solid var(--border)}.data-table td{border-bottom:1px solid var(--border);color:var(--text)}.data-table tr:hover td{background:var(--accent-dim)}.data-table td:first-child{color:var(--text-bright)}.stress-bars{display:flex;gap:2px;align-items:flex-end;min-height:28px;padding:.3rem 0}.stress-bar{font-size:1.4rem;line-height:1;font-family:var(--mono)}.muted{color:var(--text-dim);font-size:.78rem;font-family:var(--mono)}.error{color:var(--red);font-size:.75rem;font-family:var(--mono)}.sep{color:var(--text-dim);margin:.5rem 0;font-family:var(--mono);font-size:.65rem;letter-spacing:2px}.control-group{margin-bottom:.65rem}.control-group h4{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);padding-bottom:.15rem}.bracket-row{display:flex;gap:.6rem;flex-wrap:wrap}.bracket-btn{font-family:var(--mono);font-size:.75rem;background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:.15rem 0;transition:color .15s;letter-spacing:.3px}.bracket-btn:before{content:"["}.bracket-btn:after{content:"]"}.bracket-btn:hover{color:var(--text)}.bracket-btn.on{color:var(--green);font-weight:600}.bracket-btn.off{color:var(--red)}.bracket-btn:disabled{opacity:.3;cursor:default}.result-box{margin-top:.6rem;padding:.5rem .6rem;border:1px solid rgba(255,255,255,.08);border-left:2px solid var(--accent);font-family:var(--mono);font-size:.7rem;color:var(--text-dim);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,#58a6ff0f,#ffffff05);border-radius:var(--radius-sm)}.result-box code{font-size:.7rem;color:var(--text-dim);max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dismiss-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;padding:0 .2rem;font-family:var(--mono)}.dismiss-btn:hover{color:var(--text)}.reports-layout{display:grid;grid-template-columns:1fr 2fr;gap:.75rem;min-height:280px}.report-list{display:flex;flex-direction:column;gap:0}.report-item{padding:.4rem .5rem;cursor:pointer;border-left:2px solid transparent;transition:border-color .15s,background .15s}.report-item:hover{border-color:var(--border-hover)}.report-item.active{border-color:var(--green);background:var(--accent-dim)}.report-summary{font-family:var(--mono);font-size:.78rem;color:var(--text);margin-bottom:.2rem}.report-meta{display:flex;gap:.5rem;font-size:.65rem;color:var(--text-dim);font-family:var(--mono)}.report-type{text-transform:uppercase;letter-spacing:.5px}.report-viewer{background:var(--bg);border:1px solid var(--border);padding:.6rem .7rem;overflow:auto;min-height:200px}.report-content{font-family:var(--mono);font-size:.72rem;color:var(--text);white-space:pre-wrap;word-break:break-all}.search-hero{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#58a6ff1c,#ff9d3d0d 48%,#ffffff05);padding:.8rem .9rem;margin-bottom:.75rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.search-hero-kicker{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px;margin-bottom:.2rem}.search-hero-title{font-family:var(--mono);font-size:.92rem;font-weight:700;color:var(--text-bright);margin-bottom:.25rem}.search-hero-copy{font-family:var(--mono);font-size:.72rem;line-height:1.45;color:var(--text-dim);max-width:62ch}.search-hero-meta{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.search-stats{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.45rem}.search-answer-text{font-family:var(--mono);font-size:.72rem;line-height:1.5;color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0}.search-output{display:grid;grid-template-columns:1.1fr 1.2fr;gap:.75rem;margin-top:.75rem}.search-answer,.search-results,.search-citations{background:var(--bg);border:1px solid var(--border);padding:.55rem .6rem}.search-answer h4,.search-results h4,.search-citations h4{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:1px}.search-list{display:flex;flex-direction:column;gap:.4rem}.search-item{display:block;color:inherit;text-decoration:none;border:1px solid var(--border);padding:.45rem .5rem;background:#ffffff03}.search-item:hover{border-color:var(--accent);background:var(--accent-dim)}.search-item-title{font-family:var(--mono);font-size:.74rem;color:var(--text-bright);margin-bottom:.1rem;display:flex;gap:.35rem;align-items:flex-start}.search-rank{color:var(--accent);font-weight:700}.search-item-meta,.search-item-snippet{font-family:var(--mono);font-size:.68rem;color:var(--text-dim)}.search-item-snippet{margin-top:.2rem;line-height:1.4}.citation-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.35rem}.citation-pill{display:inline-block;text-decoration:none;padding:.2rem .4rem;border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.65rem}.citation-pill:hover{border-color:var(--accent);color:var(--text-bright)}.blackbox-status{font-family:var(--mono);margin-top:.8rem}.blackbox-status td{font-size:.75rem}.field-label{display:block;margin:.35rem 0 .2rem;color:var(--text-dim);font-size:.65rem;text-transform:uppercase;letter-spacing:1px;font-family:var(--mono)}.text-input,.text-area{width:100%;background:var(--bg);color:var(--text-bright);border:1px solid var(--border);font-family:var(--mono);font-size:.75rem;padding:.45rem .5rem;margin-bottom:.35rem;outline:none}.text-input:focus,.text-area:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim)}.text-area{resize:vertical;min-height:72px}@media(max-width:900px){.grid-2col,.reports-layout,.search-output{grid-template-columns:1fr}.header{flex-direction:column;align-items:flex-start;gap:.5rem}.search-hero{flex-direction:column}.search-hero-meta{justify-content:flex-start}}.section-divider{border:none;border-top:1px solid var(--border);margin:.4rem 0;opacity:.6}.status-dot{color:var(--green);font-family:var(--mono)}.status-dot.off{color:var(--red)}.shell{display:flex;min-height:100vh;max-width:1400px;margin:0 auto}.shell .main{flex:1;min-width:0;padding:1rem 1.25rem;display:flex;flex-direction:column}.shell .main .header{margin-bottom:.5rem}.sidebar{width:230px;flex-shrink:0;border-right:1px solid var(--border);background:linear-gradient(180deg,#ffffff08,#00000014),var(--surface);padding:.75rem .5rem;display:flex;flex-direction:column;gap:2px;font-size:.78rem}.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:.25rem .4rem .8rem;border-bottom:1px solid var(--border);margin-bottom:.4rem}.sidebar-brand-mark{color:var(--red);font-size:1.05rem;font-weight:700}.sidebar-home-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#ff9d3d47,#ff9d3d14);border:1px solid rgba(255,157,61,.36);border-radius:11px;color:#ffb36b;box-shadow:0 12px 24px #ff9d3d14,inset 0 0 0 1px #ffffff08}.sidebar-brand-title{font-size:.84rem;color:var(--text-bright);text-transform:lowercase}.sidebar-brand-subtitle{font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.8px}.sidebar-column-label{display:flex;align-items:flex-start;gap:.55rem;border:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,#ffffff0a,#58a6ff12);padding:.6rem .65rem;margin:.45rem 0 .65rem;border-radius:var(--radius-md)}.sidebar-column-num,.column-badge{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-hover);border-radius:999px;background:var(--surface);color:var(--text-bright);font-size:.72rem;font-weight:700;flex-shrink:0}.sidebar-column-title{font-size:.86rem;color:var(--text-bright);font-weight:700}.sidebar-column-copy{font-size:.67rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.55px;margin-top:.15rem}.sidebar-section-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:.6rem;padding:.35rem .4rem .2rem}.sidebar-section-head{display:flex;align-items:center;justify-content:space-between;margin-top:.4rem}.sidebar-item{display:block;width:100%;text-align:left;background:transparent;border:none;cursor:pointer;color:var(--text);font-family:var(--sans);font-size:.78rem;padding:.34rem .45rem;border-radius:4px}.sidebar-item:hover{background:var(--bg)}.sidebar-item.active{background:var(--accent-dim);color:var(--text-bright);border-left:2px solid var(--green)}.sidebar-item.pinned{font-weight:600}.sidebar-home-button{display:flex;align-items:center;gap:.55rem;width:100%;margin:.1rem 0 .3rem;padding:.55rem;background:linear-gradient(180deg,#ff9d3d29,#ffffff05);border:1px solid rgba(255,157,61,.28);border-radius:12px;box-shadow:var(--glow-soft)}.sidebar-home-button:hover{background:linear-gradient(180deg,#ff9d3d24,#ffffff08)}.sidebar-home-button.active{background:linear-gradient(180deg,#ff9d3d2e,#58a6ff0a);border-color:#ff9d3d61;border-left:2px solid rgba(255,157,61,.8)}.sidebar-home-button-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:linear-gradient(180deg,#ffffff14,#ff9d3d14);color:#ffb36b;font-size:.9rem;flex-shrink:0}.sidebar-home-button-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}.sidebar-home-button-title{color:var(--text-bright);font-size:.8rem}.sidebar-home-button-subtitle{color:var(--text-dim);font-size:.62rem;text-transform:uppercase;letter-spacing:.6px;margin-top:.1rem}.sidebar-item.session{font-size:.74rem;color:var(--text-dim)}.sidebar-item.session.active{color:var(--text-bright)}.sidebar-icon{color:var(--green);margin-right:2px}.sidebar-caret{color:var(--text-dim);display:inline-block;width:.8rem}.sidebar-project-row{display:flex;align-items:center}.sidebar-project-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.07);border-radius:7px;color:var(--text-bright);font-size:.7rem;background:linear-gradient(180deg,#ffffff0d,#ffffff05);margin-right:.3rem;flex-shrink:0}.sidebar-sessions{margin-left:.85rem;border-left:1px solid var(--border);padding-left:.2rem}.sidebar-add{background:transparent;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:3px;width:18px;height:18px;line-height:1;font-size:.85rem;flex-shrink:0}.sidebar-add:hover{color:var(--green);border-color:var(--border-hover)}.sidebar-empty{color:var(--text-dim);font-size:.68rem;padding:.2rem .5rem;font-style:italic}.sidebar-empty.sub{padding-left:.6rem}.sidebar-context-card{border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,#ffffff05,#00000014);padding:.45rem .5rem;margin:.5rem 0 .35rem;display:flex;flex-direction:column;gap:.2rem;border-radius:var(--radius-sm)}.sidebar-context-main{font-size:.74rem;color:var(--text-bright);line-height:1.4;word-break:break-word}.sidebar-inline-link{background:transparent;border:none;color:var(--accent);cursor:pointer;text-align:left;font-family:var(--mono);font-size:.69rem;padding:0}.sidebar-inline-link:hover{text-decoration:underline}.session-pane,.project-view{display:flex;flex-direction:column;gap:.6rem;height:100%}.session-head,.project-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--border);padding-bottom:.5rem}.session-title{font-size:1rem;color:var(--text-bright);font-family:var(--mono)}.session-flow{display:flex;flex-direction:column;gap:2px;align-items:flex-end}.session-flow select,.flow-mini,.project-head select{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.72rem;padding:2px 4px;border-radius:3px}.session-body{display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:0}.thread{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;flex:1;padding-right:.25rem}.msg{border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:.55rem .6rem;background:#ffffff05}.msg.user{border-left:2px solid var(--accent)}.msg.assistant{border-left:2px solid var(--green)}.msg.live{border-left-color:var(--yellow)}.msg-role{font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:.25rem}.msg-content{color:var(--text);white-space:pre-wrap;font-size:.8rem;line-height:1.55}.msg-content.mono{font-family:var(--mono);color:var(--text-dim);font-size:.72rem}.run-trace{display:flex;flex-direction:column;gap:2px;margin-top:.4rem}.run-step{display:flex;gap:.4rem;align-items:baseline;font-size:.72rem;padding:2px 4px;border-radius:3px;background:var(--bg)}.run-step.skipped{opacity:.5}.run-step-tool{color:var(--green);font-weight:600}.run-step.skipped .run-step-tool{color:var(--yellow)}.run-step-label{color:var(--text)}.run-step-skip{color:var(--yellow);font-style:italic}.run-step-result{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-spinner{color:var(--yellow);font-size:.72rem;margin-top:.3rem}.composer{border-top:1px solid var(--border);padding-top:.5rem;display:flex;flex-direction:column;gap:.4rem}.composer .text-area{min-height:64px}.composer-extra{font-size:.7rem;color:var(--text-dim)}.composer-extra summary{cursor:pointer;padding:.2rem 0}.composer-extra .text-area{min-height:48px;margin-top:.3rem}.composer-actions{display:flex;justify-content:space-between;align-items:center}.flow-save{background:var(--green);color:var(--bg);border:none;border-radius:3px;cursor:pointer;font-family:var(--mono);font-size:.74rem;font-weight:600;padding:.35rem .9rem}.flow-save:disabled{opacity:.4;cursor:not-allowed}.session-workspace{display:flex;flex-direction:column;gap:.85rem}.session-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#58a6ff1f,#ff9d3d0a 42%,#ffffff05);padding:.95rem 1rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.session-hero-meta{display:flex;gap:.55rem;flex-wrap:wrap;font-size:.68rem;color:var(--text-dim);margin-top:.35rem}.session-hero-kpis{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:.55rem;min-width:420px}.session-kpi,.session-mini-kpi,.home-op-tile{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.55rem .6rem;display:flex;flex-direction:column;gap:.25rem;border-radius:var(--radius-md)}.session-kpi strong,.session-mini-kpi strong,.home-op-value{font-size:.82rem;color:var(--text-bright)}.session-grid-4{display:grid;grid-template-columns:.9fr 1.3fr 1fr 1fr;gap:.75rem;align-items:start}.session-column{display:flex;flex-direction:column;gap:.7rem;min-height:640px}.session-thread-column{min-width:0}.session-thread{display:flex;flex-direction:column;gap:.75rem;min-height:360px;max-height:640px;overflow-y:auto}.session-state-stack,.session-timeline,.session-notes-list,.session-plan-list{display:flex;flex-direction:column;gap:.45rem}.session-state-row,.policy-row,.session-plan-item{display:flex;justify-content:space-between;gap:.75rem;padding:.5rem .55rem;background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:10px}.session-state-row span,.policy-row span{color:var(--text-dim);text-transform:uppercase;font-size:.64rem;letter-spacing:.8px}.session-state-row strong,.policy-row strong{font-size:.76rem;color:var(--text-bright);text-align:right}.session-chip-row{display:flex;gap:.35rem;flex-wrap:wrap}.session-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-dim);padding:.18rem .4rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.6px}.session-state-block{display:flex;flex-direction:column;gap:.35rem}.session-copy{font-size:.76rem;line-height:1.55;color:var(--text)}.session-note-item{background:#ffffff05;border:1px solid rgba(255,255,255,.08);padding:.45rem .5rem;font-size:.74rem;line-height:1.45;color:var(--text)}.session-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.session-plan-box,.policy-box,.session-search-box{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff06,#0000000f);padding:.55rem .6rem;border-radius:var(--radius-md)}.session-search-results{display:flex;flex-direction:column;gap:.4rem;margin-top:.45rem}.session-plan-head{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;font-size:.74rem;color:var(--text-bright)}.mode-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.mode-card-btn{display:flex;flex-direction:column;gap:.2rem;align-items:flex-start;text-align:left;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);color:var(--text);padding:.55rem .6rem;cursor:pointer;font-family:var(--mono);font-size:.72rem;border-radius:12px;box-shadow:var(--glow-soft)}.mode-card-btn strong{color:var(--text-bright);font-size:.75rem}.mode-card-btn span{color:var(--text-dim);font-size:.66rem}.mode-card-btn:hover{border-color:var(--border-hover)}.mode-card-btn.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.mode-card-btn:disabled{opacity:.45;cursor:not-allowed}.session-action-grid{display:flex;gap:.45rem;flex-wrap:wrap}.session-plan-item{justify-content:flex-start;align-items:flex-start}.session-plan-item>span{min-width:22px;height:22px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--green);font-size:.7rem;background:var(--surface)}.home-ops-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}.home-mode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.home-mode-card{display:flex;flex-direction:column;gap:.45rem;min-height:150px}.home-mode-card.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.home-mode-head{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}.home-mode-name{font-size:.8rem;color:var(--text-bright)}.home-mode-pipeline{font-size:.66rem;color:var(--text-dim)}.home-mode-copy{font-size:.72rem;color:var(--text);line-height:1.5;flex:1}.home-mode-meta{display:flex;gap:.45rem;flex-wrap:wrap;font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.flow-editor{display:flex;flex-direction:column;gap:.5rem}.flow-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.flow-palette{display:flex;gap:3px;flex-wrap:wrap;flex:1}.flow-chip,.flow-pill-name{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:.68rem;padding:2px 6px;border-radius:3px}.flow-chip:hover{border-color:var(--green);color:var(--green)}.flow-hint{font-size:.72rem;color:var(--yellow)}.linkish,.flow-mini.link{background:transparent;border:none;color:var(--accent);cursor:pointer;font-family:var(--mono);font-size:.68rem;padding:0;text-decoration:underline}.flow-canvas{position:relative;min-height:340px;border:1px solid var(--border);border-radius:4px;background:var(--bg) repeating-linear-gradient(0deg,transparent,transparent 23px,var(--border) 24px),var(--bg) repeating-linear-gradient(90deg,transparent,transparent 23px,var(--border) 24px);background-blend-mode:normal;overflow:hidden;touch-action:none}.flow-edges{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.flow-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-dim);font-size:.75rem}.flow-node{position:absolute;background:var(--surface);border:1px solid var(--border-hover);border-radius:4px;font-size:.7rem;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #0006}.flow-node.linking{border-color:var(--accent)}.flow-node-head{display:flex;justify-content:space-between;align-items:center;padding:3px 6px;border-bottom:1px solid var(--border);cursor:grab;background:var(--bg)}.flow-node-tool{color:var(--green);font-weight:600}.flow-node.tool-condition .flow-node-tool{color:var(--accent)}.flow-node.tool-direct .flow-node-tool{color:var(--text-dim)}.flow-node-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.8rem;line-height:1}.flow-node-x:hover{color:var(--red)}.flow-node-body{display:flex;flex-direction:column;gap:3px;padding:4px 6px}.flow-mini{width:100%}.flow-preview{display:flex;gap:.5rem;align-items:baseline;font-size:.75rem}.flow-preview code{color:var(--green)}.flow-list-bar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.flow-pill{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:3px;overflow:hidden}.flow-pill.active{border-color:var(--green)}.flow-pill-name{border:none;border-radius:0}.flow-pill-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:2px 5px}.flow-pill-x:hover{color:var(--red)}.mono{font-family:var(--mono)}.home-view{display:flex;flex-direction:column;gap:.9rem}.home-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#58a6ff24,#ff9d3d0d 42%,#ffffff05);padding:.95rem 1rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.home-kicker{font-size:.64rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:.25rem}.home-hero h2{font-size:1.2rem;color:var(--text-bright);margin-bottom:.2rem}.home-hero p{font-size:.76rem;color:var(--text-dim);max-width:64ch;line-height:1.5}.home-hero-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.shell-link{background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:.72rem;padding:.35rem .7rem;border-radius:3px}.shell-link:hover{border-color:var(--green);color:var(--green)}.home-overview-grid,.home-detail-grid{display:grid;gap:.75rem}.home-overview-grid{grid-template-columns:1.1fr 1fr}.home-detail-grid{grid-template-columns:1.15fr .9fr;align-items:start}.home-summary-table{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .9rem}.home-summary-row{display:flex;justify-content:space-between;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--border)}.home-summary-label{color:var(--text-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.7px}.home-summary-value{color:var(--text-bright);font-size:.78rem}.home-recommendation{font-size:.84rem;line-height:1.55;color:var(--text-bright);margin-bottom:.85rem}.home-inline-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.home-inline-value{font-size:.75rem;color:var(--text);line-height:1.4}.home-current-session,.home-sessions-card{grid-column:1}.home-todos-card,.home-savings-card{grid-column:2}.home-session-head{display:flex;justify-content:space-between;gap:.5rem;align-items:center;margin-bottom:.45rem}.home-session-title{font-size:.9rem;color:var(--text-bright)}.home-metric-strip{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.68rem;color:var(--text-dim);margin:.4rem 0 .55rem}.home-tag-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.55rem}.home-tag{border:1px solid var(--border);padding:.15rem .35rem;font-size:.66rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.home-todo-list,.home-session-list{display:flex;flex-direction:column;gap:.45rem}.home-todo-item,.home-session-item{display:flex;justify-content:space-between;gap:.55rem;padding:.5rem .55rem;background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:11px}.home-todo-status{color:var(--yellow);font-size:.65rem;min-width:54px}.home-totals{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-dim);margin-top:.55rem}.home-money{font-size:1.45rem;color:var(--text-bright);font-weight:700}.home-money-sub{font-size:.72rem;color:var(--text-dim);margin-top:.2rem}.home-session-item.current{border-left:2px solid var(--green)}.home-session-item-title{font-size:.78rem;color:var(--text-bright);margin-bottom:.15rem}.home-session-item-meta{display:flex;flex-direction:column;gap:.2rem;font-size:.66rem;color:var(--text-dim);text-align:right}@media(max-width:760px){.shell{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border)}.home-overview-grid,.home-detail-grid,.home-inline-grid,.home-summary-table{grid-template-columns:1fr}.home-current-session,.home-sessions-card,.home-todos-card,.home-savings-card{grid-column:auto}.home-hero{flex-direction:column;align-items:flex-start}}@media(max-width:1280px){.session-grid-4{grid-template-columns:1fr 1fr}.session-column{min-height:auto}.home-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-ops-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:920px){.session-hero{flex-direction:column;align-items:flex-start}.session-hero-kpis{min-width:0;width:100%;grid-template-columns:1fr}.session-grid-4,.home-mode-grid,.home-ops-strip,.mode-control-grid,.session-kpi-grid{grid-template-columns:1fr}}.home-controls-strip{display:flex;gap:1.5rem;align-items:center;padding:.6rem .85rem;background:var(--surface);border:1px solid var(--border);margin-bottom:.75rem;flex-wrap:wrap}.home-controls-strip{background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.qc-group{display:flex;align-items:center;gap:.4rem}.qc-slot{font-family:var(--mono);font-size:.72rem;padding:2px 8px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer}.qc-slot.active{color:var(--green);border-color:var(--green)}.qc-slot:hover{border-color:var(--border-hover);color:var(--text)}.qc-model{font-family:var(--mono);font-size:.72rem;color:var(--text)}.qc-pill{font-family:var(--mono);font-size:.68rem;padding:1px 6px;font-weight:600;text-transform:uppercase}.qc-pill.on{color:var(--green)}.qc-pill.off{color:var(--text-dim)}.create-form{display:flex;gap:4px;align-items:center;padding:4px 8px}.create-input{flex:1;font-family:var(--mono);font-size:.72rem;background:var(--bg);border:1px solid var(--accent);color:var(--text);padding:2px 4px;outline:none}.create-ok{font-family:var(--mono);font-size:.68rem;color:var(--green);background:transparent;border:1px solid var(--green);padding:1px 5px;cursor:pointer}.create-ok:disabled{opacity:.4;cursor:default}.create-cancel{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;line-height:1}.sidebar-delete{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.7rem;padding:0 3px;line-height:1;opacity:.4}.sidebar-delete:hover{color:var(--red);opacity:1}.sidebar-session-row{display:flex;align-items:center}.sidebar-session-row .sidebar-item{flex:1}.thread{display:flex;flex-direction:column;gap:.75rem}.msg.user{align-self:flex-end;background:var(--accent-dim);border:1px solid rgba(88,166,255,.15);margin-left:20%}.msg.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border);margin-right:20%}.run-trace-details{margin-top:.4rem}.run-trace-details summary{font-size:.68rem;color:var(--text-dim);cursor:pointer;padding:.2rem 0;list-style:none;-webkit-user-select:none;user-select:none}.run-trace-details summary::-webkit-details-marker{display:none}.run-trace-details summary:before{content:"+ "}.run-trace-details[open] summary:before{content:"- "}@keyframes vibe-pulse{0%,to{opacity:1}50%{opacity:.3}}.run-spinner{font-size:.75rem;color:var(--accent);font-family:var(--mono);animation:vibe-pulse 1.2s infinite}.shell.shell-4col{display:flex;min-height:100vh;max-width:1600px;margin:0 auto}.workspace{flex:1;min-width:0;padding:1rem 1.1rem 1rem .9rem;display:flex;flex-direction:column;gap:.75rem}.workspace-header{margin-bottom:0}.workspace-grid{display:grid;grid-template-columns:1.05fr 1fr 1.35fr 1.1fr;gap:1rem;align-items:start}.workspace-column{min-width:0;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,#ffffff09,#ffffff03);padding:.2rem;border-radius:16px;box-shadow:var(--glow-soft)}.panel{padding:.8rem .85rem}.panel-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.65rem}.panel-head h3{margin-bottom:.05rem;font-family:var(--sans);font-size:.98rem;font-weight:700}.panel-head-copy{color:var(--text-dim);font-size:.7rem;line-height:1.45}.panel-action{white-space:nowrap;padding:.25rem .55rem}.sidebar-home-card{border:1px solid rgba(88,166,255,.16);background:linear-gradient(180deg,#ffffff0d,#58a6ff17);padding:.6rem .65rem;margin:.45rem 0 .55rem;border-radius:var(--radius-md)}.sidebar-home-title{color:var(--text-bright);font-family:var(--sans);font-size:.92rem;line-height:1.35;margin-bottom:.2rem}.sidebar-home-copy{color:var(--text-dim);font-size:.72rem;line-height:1.45;margin-bottom:.45rem}.sidebar-home-metrics{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem;font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.55px}.sidebar-home-metrics span{border:1px solid var(--border);padding:.14rem .35rem;background:#ffffff03}.sidebar-project-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.07);border-radius:7px;color:var(--project-icon-fg,var(--text-bright));background:linear-gradient(180deg,#ffffff0d,#ffffff05);margin-right:.35rem;flex-shrink:0;font-size:.72rem;font-weight:700}.sidebar-project-row{display:flex;align-items:center;gap:.15rem}.sidebar-project-row .sidebar-item{flex:1}.project-sessions-panel{min-height:100%}.project-sessions-panel,.control-rail,.session-workspace{background:transparent;border:none;padding:.7rem .75rem}.project-session-list{display:flex;flex-direction:column;gap:.4rem}.project-session-link{display:flex;justify-content:space-between;align-items:center;gap:.85rem;width:100%;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff08,#ffffff03);color:var(--text);padding:.65rem .7rem;cursor:pointer;font-family:var(--sans);font-size:.78rem;text-align:left;border-radius:12px}.project-session-link:hover{border-color:var(--border-hover)}.project-session-link.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.project-session-link.current{background:#3fb9500a}.project-session-link-title{color:var(--text-bright);line-height:1.35}.project-session-link-meta{color:var(--text-dim);font-size:.64rem;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.control-rail{min-height:100%}.control-mode-summary{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.55rem}.control-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.75rem}.control-status{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.5rem .55rem;border-radius:12px}.control-status strong{display:block;color:var(--text-bright);font-size:.8rem;line-height:1.35}.control-flow-header,.control-kpi-strip{display:grid;grid-template-columns:1fr auto;gap:.4rem .6rem;align-items:center;margin-bottom:.45rem}.control-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.control-kpi-strip>div{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.48rem .5rem;border-radius:12px}.control-kpi-strip strong{display:block;color:var(--text-bright);font-size:.76rem}.control-flow-list{display:flex;flex-direction:column;gap:.35rem}.control-flow-step{display:flex;gap:.5rem;align-items:flex-start;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.48rem .5rem;border-radius:12px}.control-flow-step>span{min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);color:var(--green);font-size:.68rem;background:var(--surface)}.control-flow-step strong{color:var(--text-bright);font-size:.74rem}.control-flow-step .muted{font-size:.66rem;margin-top:.05rem}.session-hero-compact{padding:.65rem .75rem}.session-title{font-family:var(--sans);font-size:1.05rem;font-weight:700;color:var(--text-bright)}.session-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.session-actions-row{display:flex;gap:.45rem;flex-wrap:wrap}.session-actions-row .shell-link{padding:.3rem .55rem}.column-badge-row{display:flex;align-items:center;gap:.45rem}@media(max-width:1280px){.workspace-grid{grid-template-columns:1fr 1fr}}@media(max-width:920px){.workspace-grid,.session-mini-grid,.control-status-grid,.control-kpi-strip{grid-template-columns:1fr}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#050505;--surface:#0c0c0c;--border:#1a1a1a;--border-hover:#2a2a2a;--text:#d4d4d4;--text-dim:#6a6a6a;--text-bright:#f0f0f0;--green:#3fb950;--red:#f85149;--yellow:#d29922;--accent:#58a6ff;--accent-dim:rgba(88,166,255,.08);--mono:"JetBrains Mono","Fira Code","Cascadia Code","SF Mono",Menlo,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}html{font-size:13px;background:var(--bg)}body{font-family:var(--mono);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.app{max-width:1100px;margin:0 auto;padding:1.25rem 1.5rem}.header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;margin-bottom:.75rem;border-bottom:1px solid var(--border)}.header-title{display:flex;align-items:baseline;gap:.5rem}.header-title h1{font-family:var(--mono);font-size:1.1rem;font-weight:600;color:var(--text-bright);text-transform:lowercase;letter-spacing:-.5px}.header-title h1:before{content:"~ ";color:var(--red)}.header-subtitle{font-size:.72rem;color:var(--text-dim);font-family:var(--mono);margin-top:.15rem}.version{font-size:.7rem;color:var(--text-dim);font-family:var(--mono)}.header-indicators{display:flex;gap:.5rem;align-items:center}.indicator{font-family:var(--mono);font-size:.65rem;padding:1px 6px;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.indicator.connected{color:var(--green)}.indicator.disconnected{color:var(--yellow)}.indicator.disabled{color:var(--red)}.indicator:before{content:"● ";font-size:.5rem}.indicator.flash:before{content:"⚡ ";font-size:.7rem}.nav-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid var(--border)}.tab{font-family:var(--mono);background:transparent;border:none;color:var(--text-dim);padding:.4rem .75rem;cursor:pointer;font-size:.78rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;text-transform:uppercase;letter-spacing:.5px}.tab:hover{color:var(--text);border-bottom-color:var(--border-hover)}.tab.active{color:var(--text-bright);border-bottom-color:var(--green);font-weight:600}.content{display:flex;flex-direction:column;gap:.75rem}.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.card,.card-full{background:var(--surface);border:1px solid var(--border);padding:.75rem .85rem}.card-full{grid-column:1/-1}.card h3,.card-full h3{font-family:var(--mono);font-size:.7rem;font-weight:600;margin-bottom:.65rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px}.card h3:before,.card-full h3:before{content:"── ";color:var(--border-hover)}.kv-table{width:100%;border-collapse:collapse;font-family:var(--mono)}.kv-table td{padding:.25rem 0;font-size:.78rem}.kv-table td:first-child{color:var(--text-dim);width:38%;white-space:nowrap}.kv-table td:last-child{color:var(--text);overflow-wrap:anywhere}.badge{display:inline-block;font-family:var(--mono);font-size:.65rem;padding:1px 5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;line-height:1.4}.badge.slot{color:var(--green)}.badge.slot:before{content:"["}.badge.slot:after{content:"]"}.badge.on{color:var(--green)}.badge.on:before{content:"["}.badge.on:after{content:"]"}.badge.off{color:var(--red)}.badge.off:before{content:"["}.badge.off:after{content:"]"}code{font-family:var(--mono);font-size:.75rem;color:var(--text-bright)}pre{font-family:var(--mono);font-size:.72rem}.credit-bar{display:inline-block;width:55px;height:6px;background:var(--border);overflow:hidden;vertical-align:middle;border:1px solid var(--border-hover)}.credit-fill{height:100%;background:var(--green);transition:width .4s ease}.credit-label{margin-left:.4rem;font-size:.7rem;font-family:var(--mono);color:var(--text-dim)}.trend{font-size:.85rem;font-family:var(--mono)}.trend-up{color:var(--green)}.trend-down{color:var(--red)}.trend-flat{color:var(--text-dim)}.bar-chart{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem}.bar-row{display:flex;align-items:center;gap:.5rem}.bar-label{width:75px;font-size:.7rem;color:var(--text-dim);text-align:right;font-family:var(--mono)}.bar-track{flex:1;height:5px;background:var(--border);overflow:hidden}.bar-fill{height:100%;background:var(--accent);transition:width .4s ease}.bar-value{width:55px;font-size:.7rem;text-align:right;font-family:var(--mono);color:var(--text-dim)}.data-table{width:100%;border-collapse:collapse;font-size:.72rem;font-family:var(--mono)}.data-table th,.data-table td{padding:.3rem .4rem;text-align:left}.data-table th{color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;border-bottom:1px solid var(--border)}.data-table td{border-bottom:1px solid var(--border);color:var(--text)}.data-table tr:hover td{background:var(--accent-dim)}.data-table td:first-child{color:var(--text-bright)}.stress-bars{display:flex;gap:2px;align-items:flex-end;min-height:28px;padding:.3rem 0}.stress-bar{font-size:1.4rem;line-height:1;font-family:var(--mono)}.muted{color:var(--text-dim);font-size:.78rem;font-family:var(--mono)}.error{color:var(--red);font-size:.75rem;font-family:var(--mono)}.sep{color:var(--text-dim);margin:.5rem 0;font-family:var(--mono);font-size:.65rem;letter-spacing:2px}.control-group{margin-bottom:.65rem}.control-group h4{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);padding-bottom:.15rem}.bracket-row{display:flex;gap:.6rem;flex-wrap:wrap}.bracket-btn{font-family:var(--mono);font-size:.75rem;background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:.15rem 0;transition:color .15s;letter-spacing:.3px}.bracket-btn:before{content:"["}.bracket-btn:after{content:"]"}.bracket-btn:hover{color:var(--text)}.bracket-btn.on{color:var(--green);font-weight:600}.bracket-btn.off{color:var(--red)}.bracket-btn:disabled{opacity:.3;cursor:default}.result-box{margin-top:.6rem;padding:.5rem .6rem;border:1px solid var(--border);border-left:2px solid var(--accent);font-family:var(--mono);font-size:.7rem;color:var(--text-dim);display:flex;justify-content:space-between;align-items:center}.result-box code{font-size:.7rem;color:var(--text-dim);max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dismiss-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;padding:0 .2rem;font-family:var(--mono)}.dismiss-btn:hover{color:var(--text)}.reports-layout{display:grid;grid-template-columns:1fr 2fr;gap:.75rem;min-height:280px}.report-list{display:flex;flex-direction:column;gap:0}.report-item{padding:.4rem .5rem;cursor:pointer;border-left:2px solid transparent;transition:border-color .15s,background .15s}.report-item:hover{border-color:var(--border-hover)}.report-item.active{border-color:var(--green);background:var(--accent-dim)}.report-summary{font-family:var(--mono);font-size:.78rem;color:var(--text);margin-bottom:.2rem}.report-meta{display:flex;gap:.5rem;font-size:.65rem;color:var(--text-dim);font-family:var(--mono)}.report-type{text-transform:uppercase;letter-spacing:.5px}.report-viewer{background:var(--bg);border:1px solid var(--border);padding:.6rem .7rem;overflow:auto;min-height:200px}.report-content{font-family:var(--mono);font-size:.72rem;color:var(--text);white-space:pre-wrap;word-break:break-all}.search-hero{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;border:1px solid var(--border);background:linear-gradient(180deg,#58a6ff14,#ffffff03);padding:.7rem .8rem;margin-bottom:.75rem}.search-hero-kicker{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px;margin-bottom:.2rem}.search-hero-title{font-family:var(--mono);font-size:.92rem;font-weight:700;color:var(--text-bright);margin-bottom:.25rem}.search-hero-copy{font-family:var(--mono);font-size:.72rem;line-height:1.45;color:var(--text-dim);max-width:62ch}.search-hero-meta{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.search-stats{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.45rem}.search-answer-text{font-family:var(--mono);font-size:.72rem;line-height:1.5;color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0}.search-output{display:grid;grid-template-columns:1.1fr 1.2fr;gap:.75rem;margin-top:.75rem}.search-answer,.search-results,.search-citations{background:var(--bg);border:1px solid var(--border);padding:.55rem .6rem}.search-answer h4,.search-results h4,.search-citations h4{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:1px}.search-list{display:flex;flex-direction:column;gap:.4rem}.search-item{display:block;color:inherit;text-decoration:none;border:1px solid var(--border);padding:.45rem .5rem;background:#ffffff03}.search-item:hover{border-color:var(--accent);background:var(--accent-dim)}.search-item-title{font-family:var(--mono);font-size:.74rem;color:var(--text-bright);margin-bottom:.1rem;display:flex;gap:.35rem;align-items:flex-start}.search-rank{color:var(--accent);font-weight:700}.search-item-meta,.search-item-snippet{font-family:var(--mono);font-size:.68rem;color:var(--text-dim)}.search-item-snippet{margin-top:.2rem;line-height:1.4}.citation-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.35rem}.citation-pill{display:inline-block;text-decoration:none;padding:.2rem .4rem;border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.65rem}.citation-pill:hover{border-color:var(--accent);color:var(--text-bright)}.blackbox-status{font-family:var(--mono);margin-top:.8rem}.blackbox-status td{font-size:.75rem}.field-label{display:block;margin:.35rem 0 .2rem;color:var(--text-dim);font-size:.65rem;text-transform:uppercase;letter-spacing:1px;font-family:var(--mono)}.text-input,.text-area{width:100%;background:var(--bg);color:var(--text-bright);border:1px solid var(--border);font-family:var(--mono);font-size:.75rem;padding:.45rem .5rem;margin-bottom:.35rem;outline:none}.text-input:focus,.text-area:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim)}.text-area{resize:vertical;min-height:72px}@media(max-width:900px){.grid-2col,.reports-layout,.search-output{grid-template-columns:1fr}.header{flex-direction:column;align-items:flex-start;gap:.5rem}.search-hero{flex-direction:column}.search-hero-meta{justify-content:flex-start}}.section-divider{border:none;border-top:1px solid var(--border);margin:.4rem 0;opacity:.6}.status-dot{color:var(--green);font-family:var(--mono)}.status-dot.off{color:var(--red)}.shell{display:flex;min-height:100vh;max-width:1400px;margin:0 auto}.shell .main{flex:1;min-width:0;padding:1rem 1.25rem;display:flex;flex-direction:column}.shell .main .header{margin-bottom:.5rem}.sidebar{width:230px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface);padding:.75rem .5rem;display:flex;flex-direction:column;gap:2px;font-size:.78rem}.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:.25rem .4rem .8rem;border-bottom:1px solid var(--border);margin-bottom:.4rem}.sidebar-brand-mark{color:var(--red);font-size:1.05rem;font-weight:700}.sidebar-brand-title{font-size:.84rem;color:var(--text-bright);text-transform:lowercase}.sidebar-brand-subtitle{font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.8px}.sidebar-section-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:.6rem;padding:.35rem .4rem .2rem}.sidebar-section-head{display:flex;align-items:center;justify-content:space-between;margin-top:.4rem}.sidebar-item{display:block;width:100%;text-align:left;background:transparent;border:none;cursor:pointer;color:var(--text);font-family:var(--mono);font-size:.78rem;padding:.3rem .45rem;border-radius:3px}.sidebar-item:hover{background:var(--bg)}.sidebar-item.active{background:var(--accent-dim);color:var(--text-bright);border-left:2px solid var(--green)}.sidebar-item.pinned{font-weight:600}.sidebar-item.session{font-size:.74rem;color:var(--text-dim)}.sidebar-item.session.active{color:var(--text-bright)}.sidebar-icon{color:var(--green);margin-right:2px}.sidebar-caret{color:var(--text-dim);display:inline-block;width:.8rem}.sidebar-project-row{display:flex;align-items:center}.sidebar-project-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;color:var(--text-bright);font-size:.7rem;background:var(--bg);margin-right:.3rem;flex-shrink:0}.sidebar-sessions{margin-left:.85rem;border-left:1px solid var(--border);padding-left:.2rem}.sidebar-add{background:transparent;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:3px;width:18px;height:18px;line-height:1;font-size:.85rem;flex-shrink:0}.sidebar-add:hover{color:var(--green);border-color:var(--border-hover)}.sidebar-empty{color:var(--text-dim);font-size:.68rem;padding:.2rem .5rem;font-style:italic}.sidebar-empty.sub{padding-left:.6rem}.sidebar-context-card{border:1px solid var(--border);background:var(--bg);padding:.45rem .5rem;margin:.5rem 0 .35rem;display:flex;flex-direction:column;gap:.2rem}.sidebar-context-main{font-size:.74rem;color:var(--text-bright);line-height:1.4;word-break:break-word}.sidebar-inline-link{background:transparent;border:none;color:var(--accent);cursor:pointer;text-align:left;font-family:var(--mono);font-size:.69rem;padding:0}.sidebar-inline-link:hover{text-decoration:underline}.session-pane,.project-view{display:flex;flex-direction:column;gap:.6rem;height:100%}.session-head,.project-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--border);padding-bottom:.5rem}.session-title{font-size:1rem;color:var(--text-bright);font-family:var(--mono)}.session-flow{display:flex;flex-direction:column;gap:2px;align-items:flex-end}.session-flow select,.flow-mini,.project-head select{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.72rem;padding:2px 4px;border-radius:3px}.session-body{display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:0}.thread{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;flex:1;padding-right:.25rem}.msg{border:1px solid var(--border);border-radius:4px;padding:.5rem .6rem;background:var(--surface)}.msg.user{border-left:2px solid var(--accent)}.msg.assistant{border-left:2px solid var(--green)}.msg.live{border-left-color:var(--yellow)}.msg-role{font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:.25rem}.msg-content{color:var(--text);white-space:pre-wrap;font-size:.8rem}.msg-content.mono{font-family:var(--mono);color:var(--text-dim);font-size:.72rem}.run-trace{display:flex;flex-direction:column;gap:2px;margin-top:.4rem}.run-step{display:flex;gap:.4rem;align-items:baseline;font-size:.72rem;padding:2px 4px;border-radius:3px;background:var(--bg)}.run-step.skipped{opacity:.5}.run-step-tool{color:var(--green);font-weight:600}.run-step.skipped .run-step-tool{color:var(--yellow)}.run-step-label{color:var(--text)}.run-step-skip{color:var(--yellow);font-style:italic}.run-step-result{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-spinner{color:var(--yellow);font-size:.72rem;margin-top:.3rem}.composer{border-top:1px solid var(--border);padding-top:.5rem;display:flex;flex-direction:column;gap:.4rem}.composer .text-area{min-height:64px}.composer-extra{font-size:.7rem;color:var(--text-dim)}.composer-extra summary{cursor:pointer;padding:.2rem 0}.composer-extra .text-area{min-height:48px;margin-top:.3rem}.composer-actions{display:flex;justify-content:space-between;align-items:center}.flow-save{background:var(--green);color:var(--bg);border:none;border-radius:3px;cursor:pointer;font-family:var(--mono);font-size:.74rem;font-weight:600;padding:.35rem .9rem}.flow-save:disabled{opacity:.4;cursor:not-allowed}.session-workspace{display:flex;flex-direction:column;gap:.85rem}.session-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border:1px solid var(--border);background:linear-gradient(180deg,#ffffff05,#58a6ff14);padding:.95rem 1rem}.session-hero-meta{display:flex;gap:.55rem;flex-wrap:wrap;font-size:.68rem;color:var(--text-dim);margin-top:.35rem}.session-hero-kpis{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:.55rem;min-width:420px}.session-kpi,.session-mini-kpi,.home-op-tile{border:1px solid var(--border);background:var(--bg);padding:.55rem .6rem;display:flex;flex-direction:column;gap:.25rem}.session-kpi strong,.session-mini-kpi strong,.home-op-value{font-size:.82rem;color:var(--text-bright)}.session-grid-4{display:grid;grid-template-columns:.9fr 1.3fr 1fr 1fr;gap:.75rem;align-items:start}.session-column{display:flex;flex-direction:column;gap:.7rem;min-height:640px}.session-thread-column{min-width:0}.session-thread{display:flex;flex-direction:column;gap:.75rem;min-height:360px;max-height:640px;overflow-y:auto}.session-state-stack,.session-timeline,.session-notes-list,.session-plan-list{display:flex;flex-direction:column;gap:.45rem}.session-state-row,.policy-row,.session-plan-item{display:flex;justify-content:space-between;gap:.75rem;padding:.45rem .5rem;background:var(--bg);border:1px solid var(--border)}.session-state-row span,.policy-row span{color:var(--text-dim);text-transform:uppercase;font-size:.64rem;letter-spacing:.8px}.session-state-row strong,.policy-row strong{font-size:.76rem;color:var(--text-bright);text-align:right}.session-chip-row{display:flex;gap:.35rem;flex-wrap:wrap}.session-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-dim);padding:.18rem .4rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.6px}.session-state-block{display:flex;flex-direction:column;gap:.35rem}.session-copy{font-size:.76rem;line-height:1.55;color:var(--text)}.session-note-item{background:var(--bg);border:1px solid var(--border);padding:.45rem .5rem;font-size:.74rem;line-height:1.45;color:var(--text)}.session-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.session-plan-box,.policy-box,.session-search-box{border:1px solid var(--border);background:var(--bg);padding:.55rem .6rem}.session-search-results{display:flex;flex-direction:column;gap:.4rem;margin-top:.45rem}.session-plan-head{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;font-size:.74rem;color:var(--text-bright)}.mode-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.mode-card-btn{display:flex;flex-direction:column;gap:.2rem;align-items:flex-start;text-align:left;border:1px solid var(--border);background:var(--bg);color:var(--text);padding:.55rem .6rem;cursor:pointer;font-family:var(--mono);font-size:.72rem}.mode-card-btn strong{color:var(--text-bright);font-size:.75rem}.mode-card-btn span{color:var(--text-dim);font-size:.66rem}.mode-card-btn:hover{border-color:var(--border-hover)}.mode-card-btn.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.mode-card-btn:disabled{opacity:.45;cursor:not-allowed}.session-action-grid{display:flex;gap:.45rem;flex-wrap:wrap}.session-plan-item{justify-content:flex-start;align-items:flex-start}.session-plan-item>span{min-width:22px;height:22px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--green);font-size:.7rem;background:var(--surface)}.home-ops-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}.home-mode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.home-mode-card{display:flex;flex-direction:column;gap:.45rem;min-height:150px}.home-mode-card.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.home-mode-head{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}.home-mode-name{font-size:.8rem;color:var(--text-bright)}.home-mode-pipeline{font-size:.66rem;color:var(--text-dim)}.home-mode-copy{font-size:.72rem;color:var(--text);line-height:1.5;flex:1}.home-mode-meta{display:flex;gap:.45rem;flex-wrap:wrap;font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.flow-editor{display:flex;flex-direction:column;gap:.5rem}.flow-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.flow-palette{display:flex;gap:3px;flex-wrap:wrap;flex:1}.flow-chip,.flow-pill-name{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:.68rem;padding:2px 6px;border-radius:3px}.flow-chip:hover{border-color:var(--green);color:var(--green)}.flow-hint{font-size:.72rem;color:var(--yellow)}.linkish,.flow-mini.link{background:transparent;border:none;color:var(--accent);cursor:pointer;font-family:var(--mono);font-size:.68rem;padding:0;text-decoration:underline}.flow-canvas{position:relative;min-height:340px;border:1px solid var(--border);border-radius:4px;background:var(--bg) repeating-linear-gradient(0deg,transparent,transparent 23px,var(--border) 24px),var(--bg) repeating-linear-gradient(90deg,transparent,transparent 23px,var(--border) 24px);background-blend-mode:normal;overflow:hidden;touch-action:none}.flow-edges{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.flow-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-dim);font-size:.75rem}.flow-node{position:absolute;background:var(--surface);border:1px solid var(--border-hover);border-radius:4px;font-size:.7rem;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #0006}.flow-node.linking{border-color:var(--accent)}.flow-node-head{display:flex;justify-content:space-between;align-items:center;padding:3px 6px;border-bottom:1px solid var(--border);cursor:grab;background:var(--bg)}.flow-node-tool{color:var(--green);font-weight:600}.flow-node.tool-condition .flow-node-tool{color:var(--accent)}.flow-node.tool-direct .flow-node-tool{color:var(--text-dim)}.flow-node-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.8rem;line-height:1}.flow-node-x:hover{color:var(--red)}.flow-node-body{display:flex;flex-direction:column;gap:3px;padding:4px 6px}.flow-mini{width:100%}.flow-preview{display:flex;gap:.5rem;align-items:baseline;font-size:.75rem}.flow-preview code{color:var(--green)}.flow-list-bar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.flow-pill{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:3px;overflow:hidden}.flow-pill.active{border-color:var(--green)}.flow-pill-name{border:none;border-radius:0}.flow-pill-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:2px 5px}.flow-pill-x:hover{color:var(--red)}.mono{font-family:var(--mono)}.home-view{display:flex;flex-direction:column;gap:.9rem}.home-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border:1px solid var(--border);background:linear-gradient(180deg,#ffffff05,#58a6ff14);padding:.95rem 1rem}.home-kicker{font-size:.64rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:.25rem}.home-hero h2{font-size:1.2rem;color:var(--text-bright);margin-bottom:.2rem}.home-hero p{font-size:.76rem;color:var(--text-dim);max-width:64ch;line-height:1.5}.home-hero-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.shell-link{background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:.72rem;padding:.35rem .7rem;border-radius:3px}.shell-link:hover{border-color:var(--green);color:var(--green)}.home-overview-grid,.home-detail-grid{display:grid;gap:.75rem}.home-overview-grid{grid-template-columns:1.1fr 1fr}.home-detail-grid{grid-template-columns:1.15fr .9fr;align-items:start}.home-summary-table{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .9rem}.home-summary-row{display:flex;justify-content:space-between;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--border)}.home-summary-label{color:var(--text-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.7px}.home-summary-value{color:var(--text-bright);font-size:.78rem}.home-recommendation{font-size:.84rem;line-height:1.55;color:var(--text-bright);margin-bottom:.85rem}.home-inline-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.home-inline-value{font-size:.75rem;color:var(--text);line-height:1.4}.home-current-session,.home-sessions-card{grid-column:1}.home-todos-card,.home-savings-card{grid-column:2}.home-session-head{display:flex;justify-content:space-between;gap:.5rem;align-items:center;margin-bottom:.45rem}.home-session-title{font-size:.9rem;color:var(--text-bright)}.home-metric-strip{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.68rem;color:var(--text-dim);margin:.4rem 0 .55rem}.home-tag-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.55rem}.home-tag{border:1px solid var(--border);padding:.15rem .35rem;font-size:.66rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.home-todo-list,.home-session-list{display:flex;flex-direction:column;gap:.45rem}.home-todo-item,.home-session-item{display:flex;justify-content:space-between;gap:.55rem;padding:.45rem .5rem;background:var(--bg);border:1px solid var(--border)}.home-todo-status{color:var(--yellow);font-size:.65rem;min-width:54px}.home-totals{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-dim);margin-top:.55rem}.home-money{font-size:1.45rem;color:var(--text-bright);font-weight:700}.home-money-sub{font-size:.72rem;color:var(--text-dim);margin-top:.2rem}.home-session-item.current{border-left:2px solid var(--green)}.home-session-item-title{font-size:.78rem;color:var(--text-bright);margin-bottom:.15rem}.home-session-item-meta{display:flex;flex-direction:column;gap:.2rem;font-size:.66rem;color:var(--text-dim);text-align:right}@media(max-width:760px){.shell{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border)}.home-overview-grid,.home-detail-grid,.home-inline-grid,.home-summary-table{grid-template-columns:1fr}.home-current-session,.home-sessions-card,.home-todos-card,.home-savings-card{grid-column:auto}.home-hero{flex-direction:column;align-items:flex-start}}@media(max-width:1280px){.session-grid-4{grid-template-columns:1fr 1fr}.session-column{min-height:auto}.home-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-ops-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:920px){.session-hero{flex-direction:column;align-items:flex-start}.session-hero-kpis{min-width:0;width:100%;grid-template-columns:1fr}.session-grid-4,.home-mode-grid,.home-ops-strip,.mode-control-grid,.session-kpi-grid{grid-template-columns:1fr}}.home-controls-strip{display:flex;gap:1.5rem;align-items:center;padding:.6rem .85rem;background:var(--surface);border:1px solid var(--border);margin-bottom:.75rem;flex-wrap:wrap}.qc-group{display:flex;align-items:center;gap:.4rem}.qc-slot{font-family:var(--mono);font-size:.72rem;padding:2px 8px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer}.qc-slot.active{color:var(--green);border-color:var(--green)}.qc-slot:hover{border-color:var(--border-hover);color:var(--text)}.qc-model{font-family:var(--mono);font-size:.72rem;color:var(--text)}.qc-pill{font-family:var(--mono);font-size:.68rem;padding:1px 6px;font-weight:600;text-transform:uppercase}.qc-pill.on{color:var(--green)}.qc-pill.off{color:var(--text-dim)}.create-form{display:flex;gap:4px;align-items:center;padding:4px 8px}.create-input{flex:1;font-family:var(--mono);font-size:.72rem;background:var(--bg);border:1px solid var(--accent);color:var(--text);padding:2px 4px;outline:none}.create-ok{font-family:var(--mono);font-size:.68rem;color:var(--green);background:transparent;border:1px solid var(--green);padding:1px 5px;cursor:pointer}.create-ok:disabled{opacity:.4;cursor:default}.create-cancel{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;line-height:1}.sidebar-delete{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.7rem;padding:0 3px;line-height:1;opacity:.4}.sidebar-delete:hover{color:var(--red);opacity:1}.sidebar-session-row{display:flex;align-items:center}.sidebar-session-row .sidebar-item{flex:1}.thread{display:flex;flex-direction:column;gap:.75rem}.msg.user{align-self:flex-end;background:var(--accent-dim);border:1px solid rgba(88,166,255,.15);margin-left:20%}.msg.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border);margin-right:20%}.run-trace-details{margin-top:.4rem}.run-trace-details summary{font-size:.68rem;color:var(--text-dim);cursor:pointer;padding:.2rem 0;list-style:none;-webkit-user-select:none;user-select:none}.run-trace-details summary::-webkit-details-marker{display:none}.run-trace-details summary:before{content:"+ "}.run-trace-details[open] summary:before{content:"- "}@keyframes vibe-pulse{0%,to{opacity:1}50%{opacity:.3}}.run-spinner{font-size:.75rem;color:var(--accent);font-family:var(--mono);animation:vibe-pulse 1.2s infinite}.shell.shell-4col{display:flex;min-height:100vh;max-width:1600px;margin:0 auto}.workspace{flex:1;min-width:0;padding:1rem 1.1rem 1rem .9rem;display:flex;flex-direction:column;gap:.75rem}.workspace-header{margin-bottom:0}.workspace-grid{display:grid;grid-template-columns:.92fr 1.24fr 1fr;gap:.75rem;align-items:start}.workspace-column{min-width:0}.panel{padding:.7rem .75rem}.panel-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.65rem}.panel-head h3{margin-bottom:.15rem}.panel-head-copy{color:var(--text-dim);font-size:.7rem;line-height:1.45}.panel-action{white-space:nowrap;padding:.25rem .55rem}.sidebar-home-card{border:1px solid var(--border);background:linear-gradient(180deg,#ffffff05,#58a6ff0f);padding:.55rem .6rem;margin:.45rem 0 .55rem}.sidebar-home-title{color:var(--text-bright);font-size:.86rem;line-height:1.35;margin-bottom:.2rem}.sidebar-home-copy{color:var(--text-dim);font-size:.72rem;line-height:1.45;margin-bottom:.45rem}.sidebar-home-metrics{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem;font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.55px}.sidebar-home-metrics span{border:1px solid var(--border);padding:.14rem .35rem;background:#ffffff03}.sidebar-project-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;color:var(--project-icon-fg,var(--text-bright));background:var(--project-icon-bg,var(--bg));margin-right:.35rem;flex-shrink:0;font-size:.72rem;font-weight:700}.sidebar-project-row{display:flex;align-items:center;gap:.15rem}.sidebar-project-row .sidebar-item{flex:1}.project-sessions-panel{min-height:100%}.project-session-list{display:flex;flex-direction:column;gap:.4rem}.project-session-link{display:flex;justify-content:space-between;align-items:center;gap:.75rem;width:100%;border:1px solid var(--border);background:var(--bg);color:var(--text);padding:.55rem .6rem;cursor:pointer;font-family:var(--mono);font-size:.74rem;text-align:left}.project-session-link:hover{border-color:var(--border-hover)}.project-session-link.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.project-session-link.current{background:#3fb9500a}.project-session-link-title{color:var(--text-bright)}.project-session-link-meta{color:var(--text-dim);font-size:.64rem;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.control-rail{min-height:100%}.control-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin-bottom:.65rem}.control-status{border:1px solid var(--border);background:var(--bg);padding:.45rem .5rem}.control-status strong{display:block;color:var(--text-bright);font-size:.78rem}.control-flow-header,.control-kpi-strip{display:grid;grid-template-columns:1fr auto;gap:.4rem .6rem;align-items:center;margin-bottom:.45rem}.control-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.control-kpi-strip>div{border:1px solid var(--border);background:var(--bg);padding:.42rem .48rem}.control-kpi-strip strong{display:block;color:var(--text-bright);font-size:.76rem}.control-flow-list{display:flex;flex-direction:column;gap:.35rem}.control-flow-step{display:flex;gap:.5rem;align-items:flex-start;border:1px solid var(--border);background:var(--bg);padding:.4rem .45rem}.control-flow-step>span{min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);color:var(--green);font-size:.68rem;background:var(--surface)}.control-flow-step strong{color:var(--text-bright);font-size:.74rem}.control-flow-step .muted{font-size:.66rem;margin-top:.05rem}.session-hero-compact{padding:.65rem .75rem}.session-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.session-actions-row{display:flex;gap:.45rem;flex-wrap:wrap}.session-actions-row .shell-link{padding:.3rem .55rem}@media(max-width:1280px){.workspace-grid{grid-template-columns:1fr 1fr}}@media(max-width:920px){.workspace-grid,.session-mini-grid,.control-status-grid,.control-kpi-strip{grid-template-columns:1fr}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#050507;--bg-glow:rgba(88,166,255,.12);--bg-warm:rgba(255,157,61,.08);--surface:#0d1016;--surface-2:#111622;--panel:rgba(15,19,27,.88);--panel-strong:rgba(18,23,34,.96);--border:#1e2530;--border-hover:#354153;--text:#d4d4d4;--text-dim:#6a6a6a;--text-bright:#f0f0f0;--green:#3fb950;--red:#f85149;--yellow:#d29922;--accent:#58a6ff;--accent-dim:rgba(88,166,255,.08);--accent-strong:rgba(88,166,255,.18);--glow:0 24px 80px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.02) inset;--glow-soft:0 16px 44px rgba(0,0,0,.32),0 0 32px rgba(88,166,255,.06);--radius-lg:18px;--radius-md:12px;--radius-sm:9px;--mono:"JetBrains Mono","Fira Code","Cascadia Code","SF Mono",Menlo,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Helvetica,Arial,sans-serif}html{font-size:13px;background:radial-gradient(circle at 18% 8%,rgba(88,166,255,.14),transparent 28%),radial-gradient(circle at 82% 6%,rgba(255,157,61,.11),transparent 26%),radial-gradient(circle at 50% 108%,rgba(63,185,80,.08),transparent 28%),var(--bg)}body{font-family:var(--sans);background:radial-gradient(circle at 20% 0%,rgba(88,166,255,.08),transparent 24%),radial-gradient(circle at 90% 10%,rgba(255,157,61,.06),transparent 24%),linear-gradient(180deg,#ffffff05,#0000),var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;line-height:1.45}.app{width:100%;max-width:none;margin:0;padding:1.15rem 1.35rem}.header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;margin-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.06)}.header-title{display:flex;align-items:baseline;gap:.5rem}.header-title h1{font-family:var(--sans);font-size:1.08rem;font-weight:700;color:var(--text-bright);letter-spacing:-.2px}.header-title h1:before{content:"";color:var(--red)}.header-subtitle{font-size:.72rem;color:var(--text-dim);font-family:var(--mono);margin-top:.15rem}.version{font-size:.7rem;color:var(--text-dim);font-family:var(--mono)}.header-indicators{display:flex;gap:.5rem;align-items:center}.indicator{font-family:var(--mono);font-size:.65rem;padding:1px 6px;text-transform:uppercase;font-weight:600;letter-spacing:.5px;border:1px solid rgba(255,255,255,.06);border-radius:999px;background:#ffffff05}.indicator.connected{color:var(--green)}.indicator.disconnected{color:var(--yellow)}.indicator.disabled{color:var(--red)}.indicator:before{content:"● ";font-size:.5rem}.indicator.flash:before{content:"⚡ ";font-size:.7rem}.nav-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid var(--border)}.tab{font-family:var(--mono);background:transparent;border:none;color:var(--text-dim);padding:.4rem .75rem;cursor:pointer;font-size:.78rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;text-transform:uppercase;letter-spacing:.5px}.tab:hover{color:var(--text);border-bottom-color:var(--border-hover)}.tab.active{color:var(--text-bright);border-bottom-color:var(--green);font-weight:600}.content{display:flex;flex-direction:column;gap:.75rem}.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.card,.card-full{background:linear-gradient(180deg,#ffffff0a,#ffffff04),var(--panel);border:1px solid rgba(255,255,255,.06);padding:.8rem .9rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.card-full{grid-column:1/-1}.card h3,.card-full h3{font-family:var(--sans);font-size:.78rem;font-weight:700;margin-bottom:.65rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px}.card h3:before,.card-full h3:before{content:"── ";color:var(--border-hover)}.kv-table{width:100%;border-collapse:collapse;font-family:var(--mono)}.kv-table td{padding:.25rem 0;font-size:.78rem}.kv-table td:first-child{color:var(--text-dim);width:38%;white-space:nowrap}.kv-table td:last-child{color:var(--text);overflow-wrap:anywhere}.badge{display:inline-block;font-family:var(--mono);font-size:.65rem;padding:1px 5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;line-height:1.4}.badge.slot{color:var(--green)}.badge.slot:before{content:"["}.badge.slot:after{content:"]"}.badge.on{color:var(--green)}.badge.on:before{content:"["}.badge.on:after{content:"]"}.badge.off{color:var(--red)}.badge.off:before{content:"["}.badge.off:after{content:"]"}code{font-family:var(--mono);font-size:.75rem;color:var(--text-bright)}pre{font-family:var(--mono);font-size:.72rem}.credit-bar{display:inline-block;width:55px;height:6px;background:var(--border);overflow:hidden;vertical-align:middle;border:1px solid var(--border-hover)}.credit-fill{height:100%;background:var(--green);transition:width .4s ease}.credit-label{margin-left:.4rem;font-size:.7rem;font-family:var(--mono);color:var(--text-dim)}.trend{font-size:.85rem;font-family:var(--mono)}.trend-up{color:var(--green)}.trend-down{color:var(--red)}.trend-flat{color:var(--text-dim)}.bar-chart{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem}.bar-row{display:flex;align-items:center;gap:.5rem}.bar-label{width:75px;font-size:.7rem;color:var(--text-dim);text-align:right;font-family:var(--mono)}.bar-track{flex:1;height:5px;background:var(--border);overflow:hidden}.bar-fill{height:100%;background:var(--accent);transition:width .4s ease}.bar-value{width:55px;font-size:.7rem;text-align:right;font-family:var(--mono);color:var(--text-dim)}.data-table{width:100%;border-collapse:collapse;font-size:.72rem;font-family:var(--mono)}.data-table th,.data-table td{padding:.3rem .4rem;text-align:left}.data-table th{color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;border-bottom:1px solid var(--border)}.data-table td{border-bottom:1px solid var(--border);color:var(--text)}.data-table tr:hover td{background:var(--accent-dim)}.data-table td:first-child{color:var(--text-bright)}.stress-bars{display:flex;gap:2px;align-items:flex-end;min-height:28px;padding:.3rem 0}.stress-bar{font-size:1.4rem;line-height:1;font-family:var(--mono)}.muted{color:var(--text-dim);font-size:.78rem;font-family:var(--mono)}.error{color:var(--red);font-size:.75rem;font-family:var(--mono)}.sep{color:var(--text-dim);margin:.5rem 0;font-family:var(--mono);font-size:.65rem;letter-spacing:2px}.control-group{margin-bottom:.65rem}.control-group h4{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);padding-bottom:.15rem}.bracket-row{display:flex;gap:.6rem;flex-wrap:wrap}.bracket-btn{font-family:var(--mono);font-size:.75rem;background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:.15rem 0;transition:color .15s;letter-spacing:.3px}.bracket-btn:before{content:"["}.bracket-btn:after{content:"]"}.bracket-btn:hover{color:var(--text)}.bracket-btn.on{color:var(--green);font-weight:600}.bracket-btn.off{color:var(--red)}.bracket-btn:disabled{opacity:.3;cursor:default}.result-box{margin-top:.6rem;padding:.5rem .6rem;border:1px solid rgba(255,255,255,.08);border-left:2px solid var(--accent);font-family:var(--mono);font-size:.7rem;color:var(--text-dim);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,#58a6ff0f,#ffffff05);border-radius:var(--radius-sm)}.result-box code{font-size:.7rem;color:var(--text-dim);max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dismiss-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;padding:0 .2rem;font-family:var(--mono)}.dismiss-btn:hover{color:var(--text)}.reports-layout{display:grid;grid-template-columns:1fr 2fr;gap:.75rem;min-height:280px}.report-list{display:flex;flex-direction:column;gap:0}.report-item{padding:.4rem .5rem;cursor:pointer;border-left:2px solid transparent;transition:border-color .15s,background .15s}.report-item:hover{border-color:var(--border-hover)}.report-item.active{border-color:var(--green);background:var(--accent-dim)}.report-summary{font-family:var(--mono);font-size:.78rem;color:var(--text);margin-bottom:.2rem}.report-meta{display:flex;gap:.5rem;font-size:.65rem;color:var(--text-dim);font-family:var(--mono)}.report-type{text-transform:uppercase;letter-spacing:.5px}.report-viewer{background:var(--bg);border:1px solid var(--border);padding:.6rem .7rem;overflow:auto;min-height:200px}.report-content{font-family:var(--mono);font-size:.72rem;color:var(--text);white-space:pre-wrap;word-break:break-all}.search-hero{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#58a6ff1c,#ff9d3d0d 48%,#ffffff05);padding:.8rem .9rem;margin-bottom:.75rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.search-hero-kicker{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:1px;margin-bottom:.2rem}.search-hero-title{font-family:var(--mono);font-size:.92rem;font-weight:700;color:var(--text-bright);margin-bottom:.25rem}.search-hero-copy{font-family:var(--mono);font-size:.72rem;line-height:1.45;color:var(--text-dim);max-width:62ch}.search-hero-meta{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.search-stats{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.45rem}.search-answer-text{font-family:var(--mono);font-size:.72rem;line-height:1.5;color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0}.search-output{display:grid;grid-template-columns:1.1fr 1.2fr;gap:.75rem;margin-top:.75rem}.search-answer,.search-results,.search-citations{background:var(--bg);border:1px solid var(--border);padding:.55rem .6rem}.search-answer h4,.search-results h4,.search-citations h4{font-family:var(--mono);font-size:.65rem;color:var(--text-dim);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:1px}.search-list{display:flex;flex-direction:column;gap:.4rem}.search-item{display:block;color:inherit;text-decoration:none;border:1px solid var(--border);padding:.45rem .5rem;background:#ffffff03}.search-item:hover{border-color:var(--accent);background:var(--accent-dim)}.search-item-title{font-family:var(--mono);font-size:.74rem;color:var(--text-bright);margin-bottom:.1rem;display:flex;gap:.35rem;align-items:flex-start}.search-rank{color:var(--accent);font-weight:700}.search-item-meta,.search-item-snippet{font-family:var(--mono);font-size:.68rem;color:var(--text-dim)}.search-item-snippet{margin-top:.2rem;line-height:1.4}.citation-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.35rem}.citation-pill{display:inline-block;text-decoration:none;padding:.2rem .4rem;border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.65rem}.citation-pill:hover{border-color:var(--accent);color:var(--text-bright)}.blackbox-status{font-family:var(--mono);margin-top:.8rem}.blackbox-status td{font-size:.75rem}.field-label{display:block;margin:.35rem 0 .2rem;color:var(--text-dim);font-size:.65rem;text-transform:uppercase;letter-spacing:1px;font-family:var(--mono)}.text-input,.text-area{width:100%;background:var(--bg);color:var(--text-bright);border:1px solid var(--border);font-family:var(--mono);font-size:.75rem;padding:.45rem .5rem;margin-bottom:.35rem;outline:none}.text-input:focus,.text-area:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim)}.text-area{resize:vertical;min-height:72px}@media(max-width:900px){.grid-2col,.reports-layout,.search-output{grid-template-columns:1fr}.header{flex-direction:column;align-items:flex-start;gap:.5rem}.search-hero{flex-direction:column}.search-hero-meta{justify-content:flex-start}}.section-divider{border:none;border-top:1px solid var(--border);margin:.4rem 0;opacity:.6}.status-dot{color:var(--green);font-family:var(--mono)}.status-dot.off{color:var(--red)}.shell{display:flex;min-height:100vh;width:100%}.shell .main{flex:1;min-width:0;padding:1rem 1.25rem;display:flex;flex-direction:column}.shell .main .header{margin-bottom:.5rem}.sidebar{width:76px;flex-shrink:0;border-right:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,#ffffff08,#00000014),var(--surface);padding:.7rem .45rem;display:flex;flex-direction:column;align-items:center;gap:.45rem}.sidebar-icon-button{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.07);border-radius:14px;background:linear-gradient(180deg,#ffffff0a,#ffffff03);color:var(--text-bright);cursor:pointer;box-shadow:var(--glow-soft)}.sidebar-icon-button:hover{border-color:#ffffff29;transform:translateY(-1px)}.sidebar-icon-button.active{border-color:#ff9d3d80;box-shadow:0 16px 28px #00000047,0 0 0 1px #ff9d3d24 inset}.sidebar-home-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#ff9d3d47,#ff9d3d14);border:1px solid rgba(255,157,61,.36);border-radius:11px;color:#ffb36b;box-shadow:0 12px 24px #ff9d3d14,inset 0 0 0 1px #ffffff08}.column-badge{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-hover);border-radius:999px;background:var(--surface);color:var(--text-bright);font-size:.72rem;font-weight:700;flex-shrink:0}.sidebar-project-icon{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.07);border-radius:9px;color:var(--text-bright);font-size:.72rem;background:linear-gradient(180deg,#ffffff0d,#ffffff05);flex-shrink:0}.sidebar-add-button{color:var(--green);font-size:1rem}.sidebar-empty{display:none}.session-pane,.project-view{display:flex;flex-direction:column;gap:.6rem;height:100%}.session-head,.project-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--border);padding-bottom:.5rem}.session-title{font-size:1rem;color:var(--text-bright);font-family:var(--mono)}.session-flow{display:flex;flex-direction:column;gap:2px;align-items:flex-end}.session-flow select,.flow-mini,.project-head select{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.72rem;padding:2px 4px;border-radius:3px}.session-body{display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:0}.session-thread{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;flex:1;padding-right:.25rem}.session-thread .msg{border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:.55rem .6rem;background:#ffffff05}.session-thread .msg.user{border-left:2px solid var(--accent)}.session-thread .msg.assistant{border-left:2px solid var(--green)}.session-thread .msg.live{border-left-color:var(--yellow)}.session-thread .msg-role{font-size:.6rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:.25rem}.session-thread .msg-content{color:var(--text);white-space:pre-wrap;font-size:.8rem;line-height:1.55}.session-thread .msg-content.mono{font-family:var(--mono);color:var(--text-dim);font-size:.72rem}.session-thread .run-trace{display:flex;flex-direction:column;gap:2px;margin-top:.4rem}.session-thread .run-step{display:flex;gap:.4rem;align-items:baseline;font-size:.72rem;padding:2px 4px;border-radius:3px;background:var(--bg)}.session-thread .run-step.skipped{opacity:.5}.session-thread .run-step-tool{color:var(--green);font-weight:600}.session-thread .run-step.skipped .run-step-tool{color:var(--yellow)}.run-step-label{color:var(--text)}.run-step-skip{color:var(--yellow);font-style:italic}.run-step-result{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-spinner{color:var(--yellow);font-size:.72rem;margin-top:.3rem}.composer{border-top:1px solid var(--border);padding-top:.5rem;display:flex;flex-direction:column;gap:.4rem}.composer .text-area{min-height:64px}.composer-extra{font-size:.7rem;color:var(--text-dim)}.composer-extra summary{cursor:pointer;padding:.2rem 0}.composer-extra .text-area{min-height:48px;margin-top:.3rem}.composer-actions{display:flex;justify-content:space-between;align-items:center}.flow-save{background:var(--green);color:var(--bg);border:none;border-radius:3px;cursor:pointer;font-family:var(--mono);font-size:.74rem;font-weight:600;padding:.35rem .9rem}.flow-save:disabled{opacity:.4;cursor:not-allowed}.session-workspace{display:flex;flex-direction:column;gap:.85rem}.session-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#58a6ff1f,#ff9d3d0a 42%,#ffffff05);padding:.95rem 1rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.session-hero-meta{display:flex;gap:.55rem;flex-wrap:wrap;font-size:.68rem;color:var(--text-dim);margin-top:.35rem}.session-hero-kpis{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:.55rem;min-width:420px}.session-kpi,.session-mini-kpi,.home-op-tile{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.55rem .6rem;display:flex;flex-direction:column;gap:.25rem;border-radius:var(--radius-md)}.session-kpi strong,.session-mini-kpi strong,.home-op-value{font-size:.82rem;color:var(--text-bright)}.session-grid-4{display:grid;grid-template-columns:.9fr 1.3fr 1fr 1fr;gap:.75rem;align-items:start}.session-column{display:flex;flex-direction:column;gap:.7rem;min-height:640px}.session-thread-column{min-width:0}.session-thread{display:flex;flex-direction:column;gap:.75rem;min-height:360px;max-height:640px;overflow-y:auto}.session-state-stack,.session-timeline,.session-notes-list,.session-plan-list{display:flex;flex-direction:column;gap:.45rem}.session-state-row,.policy-row,.session-plan-item{display:flex;justify-content:space-between;gap:.75rem;padding:.5rem .55rem;background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:10px}.session-state-row span,.policy-row span{color:var(--text-dim);text-transform:uppercase;font-size:.64rem;letter-spacing:.8px}.session-state-row strong,.policy-row strong{font-size:.76rem;color:var(--text-bright);text-align:right}.session-chip-row{display:flex;gap:.35rem;flex-wrap:wrap}.session-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-dim);padding:.18rem .4rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.6px}.session-state-block{display:flex;flex-direction:column;gap:.35rem}.session-copy{font-size:.76rem;line-height:1.55;color:var(--text)}.session-note-item{background:#ffffff05;border:1px solid rgba(255,255,255,.08);padding:.45rem .5rem;font-size:.74rem;line-height:1.45;color:var(--text)}.session-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.session-plan-box,.policy-box,.session-search-box{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff06,#0000000f);padding:.55rem .6rem;border-radius:var(--radius-md)}.session-search-results{display:flex;flex-direction:column;gap:.4rem;margin-top:.45rem}.session-plan-head{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;font-size:.74rem;color:var(--text-bright)}.mode-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.mode-card-btn{display:flex;flex-direction:column;gap:.2rem;align-items:flex-start;text-align:left;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);color:var(--text);padding:.55rem .6rem;cursor:pointer;font-family:var(--mono);font-size:.72rem;border-radius:12px;box-shadow:var(--glow-soft)}.mode-card-btn strong{color:var(--text-bright);font-size:.75rem}.mode-card-btn span{color:var(--text-dim);font-size:.66rem}.mode-card-btn:hover{border-color:var(--border-hover)}.mode-card-btn.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.mode-card-btn:disabled{opacity:.45;cursor:not-allowed}.session-action-grid{display:flex;gap:.45rem;flex-wrap:wrap}.session-plan-item{justify-content:flex-start;align-items:flex-start}.session-plan-item>span{min-width:22px;height:22px;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--green);font-size:.7rem;background:var(--surface)}.home-ops-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}.home-mode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.home-mode-card{display:flex;flex-direction:column;gap:.45rem;min-height:150px}.home-mode-card.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.home-mode-head{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}.home-mode-name{font-size:.8rem;color:var(--text-bright)}.home-mode-pipeline{font-size:.66rem;color:var(--text-dim)}.home-mode-copy{font-size:.72rem;color:var(--text);line-height:1.5;flex:1}.home-mode-meta{display:flex;gap:.45rem;flex-wrap:wrap;font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.flow-editor{display:flex;flex-direction:column;gap:.5rem}.flow-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.flow-palette{display:flex;gap:3px;flex-wrap:wrap;flex:1}.flow-chip,.flow-pill-name{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:.68rem;padding:2px 6px;border-radius:3px}.flow-chip:hover{border-color:var(--green);color:var(--green)}.flow-hint{font-size:.72rem;color:var(--yellow)}.linkish,.flow-mini.link{background:transparent;border:none;color:var(--accent);cursor:pointer;font-family:var(--mono);font-size:.68rem;padding:0;text-decoration:underline}.flow-canvas{position:relative;min-height:340px;border:1px solid var(--border);border-radius:4px;background:var(--bg) repeating-linear-gradient(0deg,transparent,transparent 23px,var(--border) 24px),var(--bg) repeating-linear-gradient(90deg,transparent,transparent 23px,var(--border) 24px);background-blend-mode:normal;overflow:hidden;touch-action:none}.flow-edges{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.flow-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-dim);font-size:.75rem}.flow-node{position:absolute;background:var(--surface);border:1px solid var(--border-hover);border-radius:4px;font-size:.7rem;-webkit-user-select:none;user-select:none;box-shadow:0 1px 4px #0006}.flow-node.linking{border-color:var(--accent)}.flow-node-head{display:flex;justify-content:space-between;align-items:center;padding:3px 6px;border-bottom:1px solid var(--border);cursor:grab;background:var(--bg)}.flow-node-tool{color:var(--green);font-weight:600}.flow-node.tool-condition .flow-node-tool{color:var(--accent)}.flow-node.tool-direct .flow-node-tool{color:var(--text-dim)}.flow-node-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.8rem;line-height:1}.flow-node-x:hover{color:var(--red)}.flow-node-body{display:flex;flex-direction:column;gap:3px;padding:4px 6px}.flow-mini{width:100%}.flow-preview{display:flex;gap:.5rem;align-items:baseline;font-size:.75rem}.flow-preview code{color:var(--green)}.flow-list-bar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.flow-pill{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:3px;overflow:hidden}.flow-pill.active{border-color:var(--green)}.flow-pill-name{border:none;border-radius:0}.flow-pill-x{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:2px 5px}.flow-pill-x:hover{color:var(--red)}.mono{font-family:var(--mono)}.home-view{display:flex;flex-direction:column;gap:.9rem}.home-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,#58a6ff24,#ff9d3d0d 42%,#ffffff05);padding:.95rem 1rem;border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.home-kicker{font-size:.64rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:.25rem}.home-hero h2{font-size:1.2rem;color:var(--text-bright);margin-bottom:.2rem}.home-hero p{font-size:.76rem;color:var(--text-dim);max-width:64ch;line-height:1.5}.home-hero-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.shell-link{background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:.72rem;padding:.35rem .7rem;border-radius:3px}.shell-link:hover{border-color:var(--green);color:var(--green)}.home-overview-grid,.home-detail-grid{display:grid;gap:.75rem}.home-overview-grid{grid-template-columns:1.1fr 1fr}.home-detail-grid{grid-template-columns:1.15fr .9fr;align-items:start}.home-summary-table{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .9rem}.home-summary-row{display:flex;justify-content:space-between;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--border)}.home-summary-label{color:var(--text-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.7px}.home-summary-value{color:var(--text-bright);font-size:.78rem}.home-recommendation{font-size:.84rem;line-height:1.55;color:var(--text-bright);margin-bottom:.85rem}.home-inline-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.home-inline-value{font-size:.75rem;color:var(--text);line-height:1.4}.home-current-session,.home-sessions-card{grid-column:1}.home-todos-card,.home-savings-card{grid-column:2}.home-session-head{display:flex;justify-content:space-between;gap:.5rem;align-items:center;margin-bottom:.45rem}.home-session-title{font-size:.9rem;color:var(--text-bright)}.home-metric-strip{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.68rem;color:var(--text-dim);margin:.4rem 0 .55rem}.home-tag-row{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.55rem}.home-tag{border:1px solid var(--border);padding:.15rem .35rem;font-size:.66rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.home-todo-list,.home-session-list{display:flex;flex-direction:column;gap:.45rem}.home-todo-item,.home-session-item{display:flex;justify-content:space-between;gap:.55rem;padding:.5rem .55rem;background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:11px}.home-todo-status{color:var(--yellow);font-size:.65rem;min-width:54px}.home-totals{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-dim);margin-top:.55rem}.home-money{font-size:1.45rem;color:var(--text-bright);font-weight:700}.home-money-sub{font-size:.72rem;color:var(--text-dim);margin-top:.2rem}.home-session-item.current{border-left:2px solid var(--green)}.home-session-item-title{font-size:.78rem;color:var(--text-bright);margin-bottom:.15rem}.home-session-item-meta{display:flex;flex-direction:column;gap:.2rem;font-size:.66rem;color:var(--text-dim);text-align:right}@media(max-width:760px){.shell{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border)}.home-overview-grid,.home-detail-grid,.home-inline-grid,.home-summary-table{grid-template-columns:1fr}.home-current-session,.home-sessions-card,.home-todos-card,.home-savings-card{grid-column:auto}.home-hero{flex-direction:column;align-items:flex-start}}@media(max-width:1280px){.session-grid-4{grid-template-columns:1fr 1fr}.session-column{min-height:auto}.home-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-ops-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:920px){.session-hero{flex-direction:column;align-items:flex-start}.session-hero-kpis{min-width:0;width:100%;grid-template-columns:1fr}.session-grid-4,.home-mode-grid,.home-ops-strip,.mode-control-grid,.session-kpi-grid{grid-template-columns:1fr}}.home-controls-strip{display:flex;gap:1.5rem;align-items:center;padding:.6rem .85rem;background:var(--surface);border:1px solid var(--border);margin-bottom:.75rem;flex-wrap:wrap}.home-controls-strip{background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);box-shadow:var(--glow-soft)}.qc-group{display:flex;align-items:center;gap:.4rem}.qc-slot{font-family:var(--mono);font-size:.72rem;padding:2px 8px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer}.qc-slot.active{color:var(--green);border-color:var(--green)}.qc-slot:hover{border-color:var(--border-hover);color:var(--text)}.qc-model{font-family:var(--mono);font-size:.72rem;color:var(--text)}.qc-pill{font-family:var(--mono);font-size:.68rem;padding:1px 6px;font-weight:600;text-transform:uppercase}.qc-pill.on{color:var(--green)}.qc-pill.off{color:var(--text-dim)}.create-form{display:flex;gap:4px;align-items:center;padding:4px 8px}.create-input{flex:1;font-family:var(--mono);font-size:.72rem;background:var(--bg);border:1px solid var(--accent);color:var(--text);padding:2px 4px;outline:none}.create-ok{font-family:var(--mono);font-size:.68rem;color:var(--green);background:transparent;border:1px solid var(--green);padding:1px 5px;cursor:pointer}.create-ok:disabled{opacity:.4;cursor:default}.create-cancel{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;line-height:1}.session-thread{display:flex;flex-direction:column;gap:.75rem}.session-thread .msg.user{align-self:flex-end;background:var(--accent-dim);border:1px solid rgba(88,166,255,.15);margin-left:20%}.session-thread .msg.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border);margin-right:20%}.run-trace-details{margin-top:.4rem}.run-trace-details summary{font-size:.68rem;color:var(--text-dim);cursor:pointer;padding:.2rem 0;list-style:none;-webkit-user-select:none;user-select:none}.run-trace-details summary::-webkit-details-marker{display:none}.run-trace-details summary:before{content:"+ "}.run-trace-details[open] summary:before{content:"- "}@keyframes vibe-pulse{0%,to{opacity:1}50%{opacity:.3}}.run-spinner{font-size:.75rem;color:var(--accent);font-family:var(--mono);animation:vibe-pulse 1.2s infinite}.shell.shell-4col{display:flex;min-height:100vh;width:100%}.workspace{flex:1;min-width:0;padding:1rem 1.1rem 1rem .9rem;display:flex;flex-direction:column;gap:.75rem}.workspace-header{margin-bottom:0}.workspace-grid{display:grid;grid-template-columns:.62fr .72fr 2.85fr .81fr;gap:1rem;align-items:start}.workspace-column-sessions{min-width:180px}.workspace-column-chat,.workspace-column-controls{min-width:0}.workspace-column{min-width:0;border:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,#ffffff09,#ffffff03);padding:.2rem;border-radius:16px;box-shadow:var(--glow-soft)}.panel{padding:.8rem .85rem}.panel-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.65rem}.panel-head h3{margin-bottom:.05rem;font-family:var(--sans);font-size:.98rem;font-weight:700}.panel-head-copy{color:var(--text-dim);font-size:.7rem;line-height:1.45}.panel-action{white-space:nowrap;padding:.25rem .55rem}.project-sessions-panel{min-height:100%}.project-sessions-panel,.control-rail,.session-workspace{background:transparent;border:none;padding:.7rem .75rem}.project-session-list{display:flex;flex-direction:column;gap:.4rem}.project-session-link{display:flex;justify-content:space-between;align-items:center;gap:.85rem;width:100%;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff08,#ffffff03);color:var(--text);padding:.65rem .7rem;cursor:pointer;font-family:var(--sans);font-size:.78rem;text-align:left;border-radius:12px}.project-session-link:hover{border-color:var(--border-hover)}.project-session-link.active{border-color:var(--green);box-shadow:inset 0 0 0 1px #3fb95026}.project-session-link.current{background:#3fb9500a}.project-session-link-title{color:var(--text-bright);line-height:1.35}.project-session-link-meta{color:var(--text-dim);font-size:.64rem;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}.control-rail{min-height:100%}.control-mode-summary{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.55rem}.control-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.75rem}.control-status{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.5rem .55rem;border-radius:12px}.control-status strong{display:block;color:var(--text-bright);font-size:.8rem;line-height:1.35}.control-flow-header,.control-kpi-strip{display:grid;grid-template-columns:1fr auto;gap:.4rem .6rem;align-items:center;margin-bottom:.45rem}.control-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.control-kpi-strip>div{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.48rem .5rem;border-radius:12px}.control-kpi-strip strong{display:block;color:var(--text-bright);font-size:.76rem}.control-flow-list{display:flex;flex-direction:column;gap:.35rem}.control-flow-step{display:flex;gap:.5rem;align-items:flex-start;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04);padding:.48rem .5rem;border-radius:12px}.control-flow-step>span{min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);color:var(--green);font-size:.68rem;background:var(--surface)}.control-flow-step strong{color:var(--text-bright);font-size:.74rem}.control-flow-step .muted{font-size:.66rem;margin-top:.05rem}.session-hero-compact{padding:.65rem .75rem}.session-title{font-family:var(--sans);font-size:1.05rem;font-weight:700;color:var(--text-bright)}.session-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.session-actions-row{display:flex;gap:.45rem;flex-wrap:wrap}.session-actions-row .shell-link{padding:.3rem .55rem}.column-badge-row{display:flex;align-items:center;gap:.45rem}@media(max-width:1280px){.workspace-grid{grid-template-columns:1fr 1fr}}@media(max-width:920px){.workspace-grid,.session-mini-grid,.control-status-grid,.control-kpi-strip{grid-template-columns:1fr}}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))l(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&l(r)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function l(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();const pi=!1,xi=(e,t)=>e===t,Si=Symbol("solid-track"),It={equals:xi};let On=In;const Ke=1,Ft=2,An={owned:null,cleanups:null,context:null,owner:null},tn={};var Se=null;let nn=null,ki=null,$e=null,qe=null,Je=null,Ht=0;function qt(e,t){const n=$e,l=Se,o=e.length===0,s=t===void 0?l:t,r=o?An:{owned:null,cleanups:null,context:s?s.context:null,owner:s},a=o?e:()=>e(()=>Ue(()=>_t(r)));Se=r,$e=null;try{return Ge(a,!0)}finally{$e=n,Se=l}}function F(e,t){t=t?Object.assign({},It,t):It;const n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},l=o=>(typeof o=="function"&&(o=o(n.value)),Bn(n,o));return[qn.bind(n),l]}function wi(e,t,n){const l=Kt(e,t,!0,Ke);ot(l)}function W(e,t,n){const l=Kt(e,t,!1,Ke);ot(l)}function Nn(e,t,n){On=Ti;const l=Kt(e,t,!1,Ke);l.user=!0,Je?Je.push(l):ot(l)}function Ve(e,t,n){n=n?Object.assign({},It,n):It;const l=Kt(e,t,!0,0);return l.observers=null,l.observerSlots=null,l.comparator=n.equals||void 0,ot(l),qn.bind(l)}function Ci(e){return e&&typeof e=="object"&&"then"in e}function Dt(e,t,n){let l,o,s;typeof t=="function"?(l=e,o=t,s={}):(l=!0,o=e,s=t||{});let r=null,a=tn,c=!1,b="initialValue"in s,x=typeof l=="function"&&Ve(l);const d=new Set,[S,O]=(s.storage||F)(s.initialValue),[E,M]=F(void 0),[Y,m]=F(void 0,{equals:!1}),[u,h]=F(b?"ready":"unresolved");function C(I,D,A,R){return r===I&&(r=null,R!==void 0&&(b=!0),(I===a||D===a)&&s.onHydrated&&queueMicrotask(()=>s.onHydrated(R,{value:D})),a=tn,k(D,A)),D}function k(I,D){Ge(()=>{D===void 0&&O(()=>I),h(D!==void 0?"errored":b?"ready":"unresolved"),M(D);for(const A of d.keys())A.decrement();d.clear()},!1)}function G(){const I=ji,D=S(),A=E();if(A!==void 0&&!r)throw A;return $e&&$e.user,D}function j(I=!0){if(I!==!1&&c)return;c=!1;const D=x?x():l;if(D==null||D===!1){C(r,Ue(S));return}let A;const R=a!==tn?a:Ue(()=>{try{return o(D,{value:S(),refetching:I})}catch(J){A=J}});if(A!==void 0){C(r,void 0,Bt(A),D);return}else if(!Ci(R))return C(r,R,void 0,D),R;return r=R,"v"in R?(R.s===1?C(r,R.v,void 0,D):C(r,void 0,Bt(R.v),D),R):(c=!0,queueMicrotask(()=>c=!1),Ge(()=>{h(b?"refreshing":"pending"),m()},!1),R.then(J=>C(R,J,void 0,D),J=>C(R,void 0,Bt(J),D)))}Object.defineProperties(G,{state:{get:()=>u()},error:{get:()=>E()},loading:{get(){const I=u();return I==="pending"||I==="refreshing"}},latest:{get(){if(!b)return G();const I=E();if(I&&!r)throw I;return S()}}});let z=Se;return x?wi(()=>(z=Se,j(!1))):j(!1),[G,{refetch:I=>yi(z,()=>j(I)),mutate:O}]}function Ue(e){if($e===null)return e();const t=$e;$e=null;try{return e()}finally{$e=t}}function Wt(e){Nn(()=>Ue(e))}function Jt(e){return Se===null||(Se.cleanups===null?Se.cleanups=[e]:Se.cleanups.push(e)),e}function yi(e,t){const n=Se,l=$e;Se=e,$e=null;try{return Ge(t,!0)}catch(o){cn(o)}finally{Se=n,$e=l}}const[so,ro]=F(!1);let ji;function qn(){if(this.sources&&this.state)if(this.state===Ke)ot(this);else{const e=qe;qe=null,Ge(()=>Mt(this),!1),qe=e}if($e){const e=this.observers;if(!e||e[e.length-1]!==$e){const t=e?e.length:0;$e.sources?($e.sources.push(this),$e.sourceSlots.push(t)):($e.sources=[this],$e.sourceSlots=[t]),e?(e.push($e),this.observerSlots.push($e.sources.length-1)):(this.observers=[$e],this.observerSlots=[$e.sources.length-1])}}return this.value}function Bn(e,t,n){let l=e.value;return(!e.comparator||!e.comparator(l,t))&&(e.value=t,e.observers&&e.observers.length&&Ge(()=>{for(let o=0;o<e.observers.length;o+=1){const s=e.observers[o],r=nn&&nn.running;r&&nn.disposed.has(s),(r?!s.tState:!s.state)&&(s.pure?qe.push(s):Je.push(s),s.observers&&Fn(s)),r||(s.state=Ke)}if(qe.length>1e6)throw qe=[],new Error},!1)),t}function ot(e){if(!e.fn)return;_t(e);const t=Ht;Pi(e,e.value,t)}function Pi(e,t,n){let l;const o=Se,s=$e;$e=Se=e;try{l=e.fn(t)}catch(r){return e.pure&&(e.state=Ke,e.owned&&e.owned.forEach(_t),e.owned=null),e.updatedAt=n+1,cn(r)}finally{$e=s,Se=o}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&"observers"in e?Bn(e,l):e.value=l,e.updatedAt=n)}function Kt(e,t,n,l=Ke,o){const s={fn:e,state:l,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:Se,context:Se?Se.context:null,pure:n};return Se===null||Se!==An&&(Se.owned?Se.owned.push(s):Se.owned=[s]),s}function Lt(e){if(e.state===0)return;if(e.state===Ft)return Mt(e);if(e.suspense&&Ue(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<Ht);)e.state&&t.push(e);for(let n=t.length-1;n>=0;n--)if(e=t[n],e.state===Ke)ot(e);else if(e.state===Ft){const l=qe;qe=null,Ge(()=>Mt(e,t[0]),!1),qe=l}}function Ge(e,t){if(qe)return e();let n=!1;t||(qe=[]),Je?n=!0:Je=[],Ht++;try{const l=e();return Ei(n),l}catch(l){n||(Je=null),qe=null,cn(l)}}function Ei(e){if(qe&&(In(qe),qe=null),e)return;const t=Je;Je=null,t.length&&Ge(()=>On(t),!1)}function In(e){for(let t=0;t<e.length;t++)Lt(e[t])}function Ti(e){let t,n=0;for(t=0;t<e.length;t++){const l=e[t];l.user?e[n++]=l:Lt(l)}for(t=0;t<n;t++)Lt(e[t])}function Mt(e,t){e.state=0;for(let n=0;n<e.sources.length;n+=1){const l=e.sources[n];if(l.sources){const o=l.state;o===Ke?l!==t&&(!l.updatedAt||l.updatedAt<Ht)&&Lt(l):o===Ft&&Mt(l,t)}}}function Fn(e){for(let t=0;t<e.observers.length;t+=1){const n=e.observers[t];n.state||(n.state=Ft,n.pure?qe.push(n):Je.push(n),n.observers&&Fn(n))}}function _t(e){let t;if(e.sources)for(;e.sources.length;){const n=e.sources.pop(),l=e.sourceSlots.pop(),o=n.observers;if(o&&o.length){const s=o.pop(),r=n.observerSlots.pop();l<o.length&&(s.sourceSlots[r]=l,o[l]=s,n.observerSlots[l]=r)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)_t(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)_t(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function Bt(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function cn(e,t=Se){throw Bt(e)}const Oi=Symbol("fallback");function wn(e){for(let t=0;t<e.length;t++)e[t]()}function Ai(e,t,n={}){let l=[],o=[],s=[],r=0,a=t.length>1?[]:null;return Jt(()=>wn(s)),()=>{let c=e()||[],b=c.length,x,d;return c[Si],Ue(()=>{let O,E,M,Y,m,u,h,C,k;if(b===0)r!==0&&(wn(s),s=[],l=[],o=[],r=0,a&&(a=[])),n.fallback&&(l=[Oi],o[0]=qt(G=>(s[0]=G,n.fallback())),r=1);else if(r===0){for(o=new Array(b),d=0;d<b;d++)l[d]=c[d],o[d]=qt(S);r=b}else{for(M=new Array(b),Y=new Array(b),a&&(m=new Array(b)),u=0,h=Math.min(r,b);u<h&&l[u]===c[u];u++);for(h=r-1,C=b-1;h>=u&&C>=u&&l[h]===c[C];h--,C--)M[C]=o[h],Y[C]=s[h],a&&(m[C]=a[h]);for(O=new Map,E=new Array(C+1),d=C;d>=u;d--)k=c[d],x=O.get(k),E[d]=x===void 0?-1:x,O.set(k,d);for(x=u;x<=h;x++)k=l[x],d=O.get(k),d!==void 0&&d!==-1?(M[d]=o[x],Y[d]=s[x],a&&(m[d]=a[x]),d=E[d],O.set(k,d)):s[x]();for(d=u;d<b;d++)d in M?(o[d]=M[d],s[d]=Y[d],a&&(a[d]=m[d],a[d](d))):o[d]=qt(S);o=o.slice(0,r=b),l=c.slice(0)}return o});function S(O){if(s[d]=O,a){const[E,M]=F(d);return a[d]=M,t(c[d],E)}return t(c[d])}}}function y(e,t){return Ue(()=>e(t||{}))}const Ni=e=>`Stale read from <${e}>.`;function ue(e){const t="fallback"in e&&{fallback:()=>e.fallback};return Ve(Ai(()=>e.each,e.children,t||void 0))}function fe(e){const t=e.keyed,n=Ve(()=>e.when,void 0,void 0),l=t?n:Ve(n,void 0,{equals:(o,s)=>!o==!s});return Ve(()=>{const o=l();if(o){const s=e.children;return typeof s=="function"&&s.length>0?Ue(()=>s(t?o:()=>{if(!Ue(l))throw Ni("Show");return n()})):s}return e.fallback},void 0,void 0)}const ne=e=>Ve(()=>e());function qi(e,t,n){let l=n.length,o=t.length,s=l,r=0,a=0,c=t[o-1].nextSibling,b=null;for(;r<o||a<s;){if(t[r]===n[a]){r++,a++;continue}for(;t[o-1]===n[s-1];)o--,s--;if(o===r){const x=s<l?a?n[a-1].nextSibling:n[s-a]:c;for(;a<s;)e.insertBefore(n[a++],x)}else if(s===a)for(;r<o;)(!b||!b.has(t[r]))&&t[r].remove(),r++;else if(t[r]===n[s-1]&&n[a]===t[o-1]){const x=t[--o].nextSibling;e.insertBefore(n[a++],t[r++].nextSibling),e.insertBefore(n[--s],x),t[o]=n[s]}else{if(!b){b=new Map;let d=a;for(;d<s;)b.set(n[d],d++)}const x=b.get(t[r]);if(x!=null)if(a<x&&x<s){let d=r,S=1,O;for(;++d<o&&d<s&&!((O=b.get(t[d]))==null||O!==x+S);)S++;if(S>x-a){const E=t[r];for(;a<x;)e.insertBefore(n[a++],E)}else e.replaceChild(n[a++],t[r++])}else r++;else t[r++].remove()}}}const Cn="_$DX_DELEGATE";function Bi(e,t,n,l={}){let o;return qt(s=>{o=s,t===document?e():i(t,e(),t.firstChild?null:void 0,n)},l.owner),()=>{o(),t.textContent=""}}function _(e,t,n,l){let o;const s=()=>{const a=l?document.createElementNS("http://www.w3.org/1998/Math/MathML","template"):document.createElement("template");return a.innerHTML=e,n?a.content.firstChild.firstChild:l?a.firstChild:a.content.firstChild},r=t?()=>Ue(()=>document.importNode(o||(o=s()),!0)):()=>(o||(o=s())).cloneNode(!0);return r.cloneNode=r,r}function Me(e,t=window.document){const n=t[Cn]||(t[Cn]=new Set);for(let l=0,o=e.length;l<o;l++){const s=e[l];n.has(s)||(n.add(s),t.addEventListener(s,Fi))}}function Le(e,t,n){n==null?e.removeAttribute(t):e.setAttribute(t,n)}function U(e,t){t==null?e.removeAttribute("class"):e.className=t}function $t(e,t,n,l){Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n}function Dn(e,t,n){if(!t)return n?Le(e,"style"):t;const l=e.style;if(typeof t=="string")return l.cssText=t;typeof n=="string"&&(l.cssText=n=void 0),n||(n={}),t||(t={});let o,s;for(s in n)t[s]==null&&l.removeProperty(s),delete n[s];for(s in t)o=t[s],o!==n[s]&&(l.setProperty(s,o),n[s]=o);return n}function yn(e,t,n){n!=null?e.style.setProperty(t,n):e.style.removeProperty(t)}function Ii(e,t,n){return Ue(()=>e(t,n))}function i(e,t,n,l){if(n!==void 0&&!l&&(l=[]),typeof t!="function")return Rt(e,t,l,n);W(o=>Rt(e,t(),o,n),l)}function Fi(e){let t=e.target;const n=`$$${e.type}`,l=e.target,o=e.currentTarget,s=c=>Object.defineProperty(e,"target",{configurable:!0,value:c}),r=()=>{const c=t[n];if(c&&!t.disabled){const b=t[`${n}Data`];if(b!==void 0?c.call(t,b,e):c.call(t,e),e.cancelBubble)return}return t.host&&typeof t.host!="string"&&!t.host._$host&&t.contains(e.target)&&s(t.host),!0},a=()=>{for(;r()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),e.composedPath){const c=e.composedPath();s(c[0]);for(let b=0;b<c.length-2&&(t=c[b],!!r());b++){if(t._$host){t=t._$host,a();break}if(t.parentNode===o)break}}else a();s(l)}function Rt(e,t,n,l,o){for(;typeof n=="function";)n=n();if(t===n)return n;const s=typeof t,r=l!==void 0;if(e=r&&n[0]&&n[0].parentNode||e,s==="string"||s==="number"){if(s==="number"&&(t=t.toString(),t===n))return n;if(r){let a=n[0];a&&a.nodeType===3?a.data!==t&&(a.data=t):a=document.createTextNode(t),n=st(e,n,l,a)}else n!==""&&typeof n=="string"?n=e.firstChild.data=t:n=e.textContent=t}else if(t==null||s==="boolean")n=st(e,n,l);else{if(s==="function")return W(()=>{let a=t();for(;typeof a=="function";)a=a();n=Rt(e,a,n,l)}),()=>n;if(Array.isArray(t)){const a=[],c=n&&Array.isArray(n);if(rn(a,t,n,o))return W(()=>n=Rt(e,a,n,l,!0)),()=>n;if(a.length===0){if(n=st(e,n,l),r)return n}else c?n.length===0?jn(e,a,l):qi(e,n,a):(n&&st(e),jn(e,a));n=a}else if(t.nodeType){if(Array.isArray(n)){if(r)return n=st(e,n,l,t);st(e,n,null,t)}else n==null||n===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}}return n}function rn(e,t,n,l){let o=!1;for(let s=0,r=t.length;s<r;s++){let a=t[s],c=n&&n[e.length],b;if(!(a==null||a===!0||a===!1))if((b=typeof a)=="object"&&a.nodeType)e.push(a);else if(Array.isArray(a))o=rn(e,a,c)||o;else if(b==="function")if(l){for(;typeof a=="function";)a=a();o=rn(e,Array.isArray(a)?a:[a],Array.isArray(c)?c:[c])||o}else e.push(a),o=!0;else{const x=String(a);c&&c.nodeType===3&&c.data===x?e.push(c):e.push(document.createTextNode(x))}}return o}function jn(e,t,n=null){for(let l=0,o=t.length;l<o;l++)e.insertBefore(t[l],n)}function st(e,t,n,l){if(n===void 0)return e.textContent="";const o=l||document.createTextNode("");if(t.length){let s=!1;for(let r=t.length-1;r>=0;r--){const a=t[r];if(o!==a){const c=a.parentNode===e;!s&&!r?c?e.replaceChild(o,a):e.insertBefore(o,n):c&&a.remove()}else s=!0}}else e.insertBefore(o,n);return[o]}const dn=typeof window<"u"?window:{},vt=dn.__VIBEOS_DASHBOARD_BASE__??"",on=dn.__VIBEOS_DASHBOARD_TOKEN__??"";let Et=null;function un(){const e={"Content-Type":"application/json"};return on&&(e.Authorization="Bearer "+on),e}async function Ie(e,t){const n=await fetch(vt+e,{headers:un(),...t});if(!n.ok)throw new Error(`API ${n.status}: ${n.statusText}`);return n.json()}function Vt(e){return String(e||"").trim().replace(/\/$/,"")}function Ut(e){return Vt(e).replace(/\/api\/v1$/,"")}function Di(e){const t=Vt(e);if(!t)return"";try{const n=new URL(t,typeof window<"u"?window.location.origin:"http://127.0.0.1");return n.pathname.endsWith("/health")&&(n.pathname=n.pathname.slice(0,-7)||"/"),Ut(n.href)}catch{return Ut(t.replace(/\/health$/,""))}}async function Ln(){const e=Ut(dn.__VIBEOS_BACKEND_API_BASE__);if(e)return e;if(vt){const t=Vt(vt).replace(/\/api\/v1\/dashboard$/,"");if(t!==Vt(vt))return t}return Et||(Et=(async()=>{try{const t=await Ie("/status"),n=Ut(t.backend_api_url);if(n)return n;const l=Di(t.backend_health_url);if(l)return l}catch{}return"https://api.vibetheog.com"})(),Et)}async function Mn(e,t){const n=await Ln(),l=await fetch(n+e,{headers:un(),...t});if(!l.ok)throw new Error(`API ${l.status}: ${l.statusText}`);return l.json()}function Rn(){return Ie("/status")}function Li(){return Ie("/savings")}function Mi(){return Ie("/sessions")}function Ri(){return Ie("/reports")}function fn(){return Ie("/capabilities")}function Vi(){return Ie("/dashboard/home")}function Ui(e){return Ie(`/sessions/${encodeURIComponent(e)}`)}function Xt(e,t,n){const l={action:e};return t&&(l.slot=t),Ie("/trinity",{method:"POST",body:JSON.stringify(l)})}function zi(e,t){return Ie(`/sessions/${encodeURIComponent(e)}/action`,{method:"POST",body:JSON.stringify(t)})}function Hi(e="global",t){const n=new URLSearchParams;return n.set("scope",e),t&&n.set("project_id",t),Ie(`/reality-check?${n.toString()}`)}function Wi(e){return Ie("/reality-check",{method:"POST",body:JSON.stringify(e)})}function Ji(e){return Ie("/web-search",{method:"POST",body:JSON.stringify(e)})}function Ki(e){let t=!1;if(on){let o=null;const s=async()=>{try{const[r,a]=await Promise.all([Ie("/status"),Ie("/savings")]);t||e({status:r,savings:a})}catch{}};return s(),o=setInterval(s,3e3),()=>{t=!0,o&&clearInterval(o)}}let n=null;function l(){if(t)return;const o=new EventSource(vt+"/events");o.onmessage=s=>{try{const r=JSON.parse(s.data);t||e(r)}catch{}},o.onerror=()=>{o.close(),t||(n=setTimeout(l,3e3))}}return l(),()=>{t=!0,n&&clearTimeout(n)}}function Xi(e,t){return Mn("/api/v1/blackbox/analyze",{method:"POST",body:JSON.stringify({session_id:e,project_id:t.project_id||null,user_text:t.userText||"",features:t.features||{},action:t.action||"explore",entropy:t.entropy??1,uncertainty:t.uncertainty??50,embedding:t.embedding||null,optimization_mode:t.optimizationMode||"auto"})})}async function De(e,t){return Mn(`/api/v1/orchestrator${e}`,t)}function Gi(){return De("/projects")}function Qi(e,t){return De("/projects",{method:"POST",body:JSON.stringify({name:e,fingerprint:t})})}function Yi(e,t){return De(`/projects/${e}`,{method:"PUT",body:JSON.stringify(t)})}function Zi(e){return De(`/projects/${e}`,{method:"DELETE"})}function el(e){return De("/sessions")}function tl(e,t,n){return De("/sessions",{method:"POST",body:JSON.stringify({project_id:e,title:t,flow_id:null})})}function nl(e,t){return De(`/sessions/${e}`,{method:"PUT",body:JSON.stringify(t)})}function il(e){return De(`/sessions/${e}`,{method:"DELETE"})}function ll(e){return De(`/sessions/${e}/messages`)}function sl(e){return De("/flows")}function rl(e,t,n="global",l){return De("/flows",{method:"POST",body:JSON.stringify({name:e,graph:t,scope:n,project_id:l})})}function ol(e,t){return De(`/flows/${e}`,{method:"PUT",body:JSON.stringify(t)})}function al(e){return De(`/flows/${e}`,{method:"DELETE"})}function cl(e,t,n){const l=new AbortController;return(async()=>{var b,x,d;const o=await Ln(),s=await fetch(o+`/api/v1/orchestrator/sessions/${e}/run`,{method:"POST",headers:un(),body:JSON.stringify(t),signal:l.signal});if(!s.ok||!s.body){(b=n.onError)==null||b.call(n,new Error(`run failed: ${s.status}`));return}const r=s.body.getReader(),a=new TextDecoder;let c="";for(;;){const{done:S,value:O}=await r.read();if(S)break;c+=a.decode(O,{stream:!0});let E;for(;(E=c.indexOf(`
|
|
2
|
-
|
|
3
|
-
`))>=0;){const M=c.slice(0,E);c=c.slice(E+2);const Y=(x=M.match(/event: (.*)/))==null?void 0:x[1],m=M.slice(M.indexOf("data: ")+6);if(!(!Y||M.indexOf("data: ")<0))try{n.onEvent(Y,JSON.parse(m))}catch{}}}(d=n.onDone)==null||d.call(n)})().catch(o=>{var s;(o==null?void 0:o.name)!=="AbortError"&&((s=n.onError)==null||s.call(n,o))}),()=>l.abort()}const dl="home";function ul(e){const t=String((e==null?void 0:e.name)||"").trim(),n=String((e==null?void 0:e.fingerprint)||"").trim(),l=`${t} ${n}`.toLowerCase();if(/\b(cli|terminal|shell|console)\b/.test(l))return{glyph:"⌘",label:"CLI"};if(/\b(api|backend|server)\b/.test(l))return{glyph:"◫",label:"API"};if(/\b(web|site|frontend|dashboard|ui|home)\b/.test(l))return{glyph:"◩",label:"UI"};if(/\b(app|desktop|mobile)\b/.test(l))return{glyph:"▣",label:"App"};const o=t.split(/[^A-Za-z0-9]+/).filter(Boolean).slice(0,2).map(c=>{var b;return((b=c[0])==null?void 0:b.toUpperCase())||""}).join("");if(o)return{glyph:o,label:t||o};const s=n||t||"project",r=["◆","◈","◉","▣","⬢","◬"];let a=0;for(const c of s)a=a*31+c.charCodeAt(0)>>>0;return{glyph:r[a%r.length],label:t||"Project"}}function fl(e){var s,r;const t=Array.isArray(e.flows)?e.flows:[],n=(s=e.session)!=null&&s.flow_id&&t.find(a=>{var c;return a.id===((c=e.session)==null?void 0:c.flow_id)})||null;if(n)return`${n.name}${n.scope==="project"?" (session override)":" (global)"}`.trim();const l=(r=e.project)!=null&&r.default_flow_id&&t.find(a=>{var c;return a.id===((c=e.project)==null?void 0:c.default_flow_id)})||null;if(l)return`${l.name}${l.scope==="project"?" (project default)":" (global default)"}`.trim();const o=t.find(a=>a.scope==="global");return o?`${o.name} (global default)`:"No default flow"}function hl(e){const t=String(e.currentProjectName||"").trim()||"unknown project",n=String(e.currentSessionId||"").trim();return n?`${t} · ${n}`:t}var bl=_("<div class=create-form><input class=create-input><button class=create-ok>ok</button><button class=create-cancel>x");function Pn(e){const[t,n]=F("");let l;return Wt(()=>l==null?void 0:l.focus()),(()=>{var o=bl(),s=o.firstChild,r=s.nextSibling,a=r.nextSibling;s.$$keydown=b=>{b.key==="Enter"&&t().trim()&&e.onSubmit(t().trim()),b.key==="Escape"&&e.onCancel()},s.$$input=b=>n(b.currentTarget.value);var c=l;return typeof c=="function"?Ii(c,s):l=s,r.$$click=()=>{t().trim()&&e.onSubmit(t().trim())},$t(a,"click",e.onCancel),W(b=>{var x=e.placeholder,d=!t().trim();return x!==b.e&&Le(s,"placeholder",b.e=x),d!==b.t&&(r.disabled=b.t=d),b},{e:void 0,t:void 0}),W(()=>s.value=t()),o})()}Me(["input","keydown","click"]);var $l=_("<button class=sidebar-inline-link>open project"),vl=_("<button class=sidebar-inline-link>open session"),_l=_('<aside class=sidebar><div class=sidebar-brand><div class=sidebar-brand-mark>~</div><div><div class=sidebar-brand-title>opencode</div><div class=sidebar-brand-subtitle>dashboard home</div></div></div><button><span class=sidebar-icon>⌂</span> Home</button><button><span class=sidebar-icon>≡</span> Overview</button><div class=sidebar-context-card><div class=sidebar-section-label>active context</div><div class=sidebar-context-main></div></div><div class=sidebar-section-head><span class=sidebar-section-label>projects</span><button class=sidebar-add title="New project">+'),gl=_("<div class=sidebar-empty>no projects — click + to create one"),ml=_("<div class=sidebar-sessions>"),pl=_('<div class=sidebar-project><div class=sidebar-project-row><button><span class=sidebar-caret></span> </button><button class=sidebar-add title="New session">+</button><button class=sidebar-delete title="Delete project">x'),xl=_("<span class=sidebar-project-icon>"),Sl=_('<div class="sidebar-empty sub">no sessions'),kl=_('<div class=sidebar-session-row><button><span class=sidebar-icon>›</span> </button><button class=sidebar-delete title="Delete session">x');function Tt(e,t){return e.kind!==t.kind?!1:e.kind==="home"||e.kind==="status"?!0:e.kind==="project"&&t.kind==="project"?e.projectId===t.projectId:e.kind==="session"&&t.kind==="session"?e.sessionId===t.sessionId:!1}function wl(e){return(()=>{var t=_l(),n=t.firstChild,l=n.nextSibling,o=l.nextSibling,s=o.nextSibling,r=s.firstChild,a=r.nextSibling,c=s.nextSibling,b=c.firstChild,x=b.nextSibling;return l.$$click=()=>e.onSelect({kind:"home"}),o.$$click=()=>e.onSelect({kind:"status"}),i(a,()=>hl({currentProjectName:e.currentProjectName,currentSessionId:e.currentSessionId})),i(s,y(fe,{get when(){return e.currentProjectId},get children(){var d=$l();return d.$$click=()=>e.onSelect({kind:"project",projectId:e.currentProjectId}),d}}),null),i(s,y(fe,{get when(){return ne(()=>!!e.currentProjectId)()&&e.currentSessionId},get children(){var d=vl();return d.$$click=()=>e.onSelect({kind:"session",projectId:e.currentProjectId,sessionId:e.currentSessionId}),d}}),null),$t(x,"click",e.onNewProject),i(t,y(fe,{get when(){return e.creatingProject},get children(){return y(Pn,{placeholder:"project name",get onSubmit(){return e.onCreateProjectName},get onCancel(){return e.onCancelCreate}})}}),null),i(t,y(ue,{get each(){return e.projects},get fallback(){return gl()},children:d=>(()=>{var S=pl(),O=S.firstChild,E=O.firstChild,M=E.firstChild;M.nextSibling;var Y=E.nextSibling,m=Y.nextSibling;return i(O,()=>{const u=ul(d);return(()=>{var h=xl();return i(h,()=>u.glyph),W(()=>Le(h,"title",u.label)),h})()},E),E.$$click=()=>{e.onToggle(d.id),e.onSelect({kind:"project",projectId:d.id})},i(M,()=>e.expanded[d.id]?"▾":"▸"),i(E,()=>d.name,null),Y.$$click=()=>e.onNewSession(d.id),m.$$click=()=>e.onDeleteProject(d.id),i(S,y(fe,{get when(){return e.expanded[d.id]},get children(){var u=ml();return i(u,y(fe,{get when(){return e.creatingSessionFor===d.id},get children(){return y(Pn,{placeholder:"session title",onSubmit:h=>e.onCreateSessionName(d.id,h),get onCancel(){return e.onCancelCreate}})}}),null),i(u,y(ue,{get each(){return e.sessionsByProject[d.id]||[]},get fallback(){return Sl()},children:h=>(()=>{var C=kl(),k=C.firstChild,G=k.firstChild;G.nextSibling;var j=k.nextSibling;return k.$$click=()=>e.onSelect({kind:"session",projectId:d.id,sessionId:h.id}),i(k,()=>h.title,null),j.$$click=()=>e.onDeleteSession(h.id),W(()=>U(k,`sidebar-item session ${Tt(e.selection,{kind:"session",projectId:d.id,sessionId:h.id})?"active":""}`)),C})()}),null),u}}),null),W(()=>U(E,`sidebar-item ${Tt(e.selection,{kind:"project",projectId:d.id})?"active":""}`)),S})()}),null),W(d=>{var S=`sidebar-item pinned ${Tt(e.selection,{kind:"home"})?"active":""}`,O=`sidebar-item pinned ${Tt(e.selection,{kind:"status"})?"active":""}`;return S!==d.e&&U(l,d.e=S),O!==d.t&&U(o,d.t=O),d},{e:void 0,t:void 0}),t})()}Me(["click"]);const Cl=["vibemax","vibeqmax","vibeultrax","vibelitex","raw"];function yl(e){return Cl.includes(String(e||"").toLowerCase())}const Ot={vibeultrax:{id:"vibeultrax",index:1,name:"VibeUltraX",icon:"🏆",pipeline:["cheap","medium","brain"],thinking:"full",tdd:"quality",enforcement:"strict",flow:"strict",qualityVsBrain:107,costVsBrain:58,default:!0,desc:"Default mode. 3-model debate: cheap proposes, medium reviews, brain refines."},vibeqmax:{id:"vibeqmax",index:2,name:"VibeQMaX",icon:"⭐",pipeline:["brain"],thinking:"full",tdd:"quality",enforcement:"strict",flow:"strict",qualityVsBrain:100,costVsBrain:50,desc:"Brain tier only. Same quality as Raw Brain at half cost."},vibemax:{id:"vibemax",index:3,name:"VibeMaX",icon:"⚡",pipeline:["medium"],thinking:"off",tdd:"lazy",enforcement:"relaxed",flow:"audit",qualityVsBrain:75,costVsBrain:18,desc:"Medium tier auto-escalate. Speed-first."},vibelitex:{id:"vibelitex",index:4,name:"VibeLiteX",icon:"💡",pipeline:["medium"],thinking:"brief",tdd:"lazy",enforcement:"normal",flow:"audit",qualityVsBrain:65,costVsBrain:20,desc:"Local fallback. Medium tier with enforcement. No API required."}};function jl(e){const t=String(e||"").toLowerCase().trim();if(yl(t))return t;switch(t){case"litex":return"vibelitex";case"quality":return"vibeqmax";case"audit":case"forensic":return"vibeqmax";case"longrun":return"vibeqmax";case"speed":case"balanced":return"vibemax";case"budget":return"vibelitex";default:return"vibeultrax"}}const Pl=[Ot.vibeultrax,Ot.vibeqmax,Ot.vibemax,Ot.vibelitex],El=[{id:"balanced",index:4,name:"Balanced",icon:"⚖️",pipeline:["medium"],thinking:"brief",tdd:"lazy",enforcement:"relaxed",flow:"audit",qualityVsBrain:70,costVsBrain:30,defaultRuntime:!0,desc:"Default runtime. Auto-selects behavior per query."},{id:"speed",index:5,name:"Speed",icon:"🚀",pipeline:["medium"],thinking:"off",tdd:"off",enforcement:"relaxed",flow:"off",qualityVsBrain:55,costVsBrain:32,desc:"Medium tier. Fast responses, no overhead."},{id:"budget",index:6,name:"Budget",icon:"💸",pipeline:["cheap"],thinking:"off",tdd:"off",enforcement:"off",flow:"off",qualityVsBrain:40,costVsBrain:100,desc:"Cheap tier only. Zero cost."},{id:"quality",index:7,name:"Quality",icon:"💯",pipeline:["brain"],thinking:"full",tdd:"quality",enforcement:"strict",flow:"strict",qualityVsBrain:100,costVsBrain:60,desc:"Brain tier with full thinking and enforcement."},{id:"audit",index:8,name:"Audit",icon:"🔍",pipeline:["brain"],thinking:"full",tdd:"quality",enforcement:"strict",flow:"strict",qualityVsBrain:100,costVsBrain:55,desc:"Brain tier security audit. OWASP validation."},{id:"longrun",index:6,name:"Longrun",icon:"📈",pipeline:["cheap"],thinking:"off",tdd:"off",enforcement:"off",flow:"off",qualityVsBrain:15,costVsBrain:100,desc:"Extended sessions. Cheap tier only."},{id:"forensic",index:7,name:"Forensic",icon:"🔬",pipeline:["brain"],thinking:"full",tdd:"quality",enforcement:"strict",flow:"strict",qualityVsBrain:100,costVsBrain:65,desc:"Deep analysis and web research. Full audit trail."}];function gt(){return Pl}function zt(){return El}var Tl=_("<div class=home-view><div class=card><h3>Home</h3><p class=muted>loading executive summary..."),Ol=_("<section class=home-controls-strip><div class=qc-group><span class=field-label>slot</span></div><div class=qc-group><span class=field-label>vibe mode</span><span class=qc-model></span></div><div class=qc-group><span class=field-label>thinking</span><span class=qc-model></span></div><div class=qc-group><span class=field-label>enforce</span><span>"),Al=_("<div class=home-tag-row>"),Nl=_("<div class=home-todo-list>"),ql=_('<div class=home-view><section class=home-hero><div class=home-hero-copy><div class=home-kicker>opencode mirror</div><h2></h2><p></p></div><div class=home-hero-actions><button class=flow-save>Open session</button><button class=shell-link>Project</button><button class=shell-link>Status</button></div></section><section class=home-ops-strip></section><section class=home-mode-grid></section><section class=home-overview-grid><div class="card home-summary-card"><h3>Main KPIs</h3><div class=home-summary-table></div></div><div class="card home-recommendation-card"><h3>Command Center</h3><p class=home-recommendation></p><div class=home-inline-grid><div><span class=field-label>active session</span><div class=home-inline-value></div></div><div><span class=field-label>flow</span><div class=home-inline-value></div></div></div></div></section><section class=home-detail-grid><div class="card home-current-session"><h3>Current Session</h3><div class=home-session-head><div class=home-session-title></div><span></span></div><div class=home-metric-strip><span>session </span><span>mode </span><span>cost </span><span>saved </span></div><p class=muted></p></div><div class="card home-todos-card"><h3>Open TODOs</h3><div class=home-totals><span> pending</span><span> sessions</span></div></div><div class="card home-savings-card"><h3>Savings</h3><div class=home-money></div><div class=home-money-sub>current session </div><div class=home-metric-strip><span>delegation </span><span>cache </span></div></div><div class="card home-sessions-card"><h3>Recent Sessions</h3><div class=home-session-list>'),Bl=_("<div class=home-op-tile><span class=field-label></span><span class=home-op-value>"),Il=_("<button>"),Fl=_("<div><div class=home-mode-head><span class=home-mode-name></span><span class=home-mode-pipeline></span></div><p class=home-mode-copy></p><div class=home-mode-meta><span>thinking </span><span>flow </span><span>tdd "),Dl=_("<div class=home-summary-row><span class=home-summary-label></span><span class=home-summary-value>"),Ll=_("<span class=home-tag>"),Ml=_("<p class=muted>No pending TODOs."),Rl=_("<div class=home-todo-item><span class=home-todo-status></span><span>"),Vl=_("<div><div><div class=home-session-item-title></div><div class=muted></div></div><div class=home-session-item-meta><span></span><span>");function Ze(e){return`$${Number(e||0).toFixed(2)}`}function Ul(e){return e!=null&&e.id?`${e.title} · ${e.id.slice(0,8)}`:"No active session"}function zl(e){var n,l;const t=String(e).trim().toLowerCase();if(!t)return"auto";try{return((n=[...gt(),...zt()].find(o=>o.id===t))==null?void 0:n.name)||((l=[...gt(),...zt()].find(o=>o.id===jl(t)))==null?void 0:l.name)||t}catch{return t}}function Hl(e){if(!e.data)return Tl();const t=()=>fl({session:e.session,project:e.project,flows:e.flows}),n=()=>{var a;return(((a=e.data)==null?void 0:a.todos)||[]).filter(c=>(c==null?void 0:c.status)!=="done").slice(0,4)},l=()=>{var a;return((a=e.data)==null?void 0:a.status)||e.status},o=()=>{var a,c,b;return zl(((a=l())==null?void 0:a.optimization_mode)||((b=(c=e.data)==null?void 0:c.home.cards.find(x=>x.label.toLowerCase()==="mode"))==null?void 0:b.value)||"auto")},s=()=>gt().map(a=>{var c;return{...a,active:String(((c=l())==null?void 0:c.optimization_mode)||"").toLowerCase()===a.id}}),r=()=>{var a,c,b,x,d,S;return[{label:"mode",value:o()},{label:"slot",value:((a=l())==null?void 0:a.active_slot)||"brain"},{label:"model",value:((b=(c=l())==null?void 0:c.current_model)==null?void 0:b.split("/").pop())||"unknown"},{label:"lock",value:(x=l())!=null&&x.model_locked?"locked":"live"},{label:"backend",value:(d=l())!=null&&d.backend_connected?"online":"degraded"},{label:"todos",value:String(((S=e.data)==null?void 0:S.totals.pending_todos)||0)}]};return(()=>{var a=ql(),c=a.firstChild,b=c.firstChild,x=b.firstChild,d=x.nextSibling,S=d.nextSibling,O=b.nextSibling,E=O.firstChild,M=E.nextSibling,Y=M.nextSibling,m=c.nextSibling,u=m.nextSibling,h=u.nextSibling,C=h.firstChild,k=C.firstChild,G=k.nextSibling,j=C.nextSibling,z=j.firstChild,I=z.nextSibling,D=I.nextSibling,A=D.firstChild,R=A.firstChild,J=R.nextSibling,ce=A.nextSibling,ge=ce.firstChild,te=ge.nextSibling,T=h.nextSibling,H=T.firstChild,w=H.firstChild,N=w.nextSibling,K=N.firstChild,de=K.nextSibling,L=N.nextSibling,oe=L.firstChild;oe.firstChild;var ve=oe.nextSibling;ve.firstChild;var he=ve.nextSibling;he.firstChild;var re=he.nextSibling;re.firstChild;var se=L.nextSibling,ae=H.nextSibling,_e=ae.firstChild,we=_e.nextSibling,Pe=we.firstChild,Ce=Pe.firstChild,Ee=Pe.nextSibling,Ne=Ee.firstChild,Fe=ae.nextSibling,X=Fe.firstChild,be=X.nextSibling,Te=be.nextSibling;Te.firstChild;var ye=Te.nextSibling,v=ye.firstChild;v.firstChild;var P=v.nextSibling;P.firstChild;var Q=Fe.nextSibling,$=Q.firstChild,ie=$.nextSibling;return i(d,()=>e.data.home.title),i(S,()=>e.data.home.recommendation||e.data.home.subtitle),$t(E,"click",e.onOpenSession),$t(M,"click",e.onOpenProject),$t(Y,"click",e.onOpenStatus),i(m,y(ue,{get each(){return r()},children:g=>(()=>{var q=Bl(),Z=q.firstChild,ee=Z.nextSibling;return i(Z,()=>g.label),i(ee,()=>g.value),q})()})),i(a,y(fe,{get when(){return l()},get children(){var g=Ol(),q=g.firstChild;q.firstChild;var Z=q.nextSibling,ee=Z.firstChild,ke=ee.nextSibling,me=Z.nextSibling,B=me.firstChild,V=B.nextSibling,le=me.nextSibling,Be=le.firstChild,ze=Be.nextSibling;return i(q,y(ue,{each:["brain","medium","cheap"],children:Oe=>(()=>{var He=Il();return He.$$click=()=>Xt("set",Oe).then(e.onTrinityAction).catch(()=>{}),i(He,Oe),W(()=>{var Qe;return U(He,`qc-slot ${((Qe=l())==null?void 0:Qe.active_slot)===Oe?"active":""}`)}),He})()}),null),i(ke,o),i(V,()=>{var Oe;return((Oe=l())==null?void 0:Oe.thinking)??"brief"}),i(ze,()=>{var Oe;return(Oe=l())!=null&&Oe.enforce?"on":"off"}),W(()=>{var Oe;return U(ze,`qc-pill ${(Oe=l())!=null&&Oe.enforce?"on":"off"}`)}),g}}),u),i(u,y(ue,{get each(){return s()},children:g=>(()=>{var q=Fl(),Z=q.firstChild,ee=Z.firstChild,ke=ee.nextSibling,me=Z.nextSibling,B=me.nextSibling,V=B.firstChild;V.firstChild;var le=V.nextSibling;le.firstChild;var Be=le.nextSibling;return Be.firstChild,i(ee,()=>g.name),i(ke,()=>g.pipeline.join(" → ")),i(me,()=>g.desc),i(V,()=>g.thinking,null),i(le,()=>g.flow,null),i(Be,()=>g.tdd,null),W(()=>U(q,`card home-mode-card ${g.active?"active":""}`)),q})()})),i(G,y(ue,{get each(){return e.data.home.cards},children:g=>(()=>{var q=Dl(),Z=q.firstChild,ee=Z.nextSibling;return i(Z,()=>g.label),i(ee,()=>g.value),q})()})),i(I,()=>e.data.home.recommendation||"Continue with the active session."),i(J,()=>Ul(e.session)),i(te,t),i(K,()=>e.data.current_session.project_name),i(de,()=>e.data.current_session.status),i(oe,()=>e.data.current_session.session_id||"none",null),i(ve,o,null),i(he,()=>Ze(e.data.current_session.cost_usd),null),i(re,()=>Ze((e.data.current_session.delegation_savings_usd||0)+(e.data.current_session.cache_savings_usd||0)),null),i(se,()=>e.data.current_session.recommendation),i(H,y(fe,{get when(){var g;return(g=e.data.current_session.tags)==null?void 0:g.length},get children(){var g=Al();return i(g,y(ue,{get each(){return e.data.current_session.tags},children:q=>(()=>{var Z=Ll();return i(Z,q),Z})()})),g}}),null),i(ae,y(fe,{get when(){return n().length},get fallback(){return Ml()},get children(){var g=Nl();return i(g,y(ue,{get each(){return n()},children:q=>(()=>{var Z=Rl(),ee=Z.firstChild,ke=ee.nextSibling;return i(ee,()=>String(q.status||"pending").toUpperCase()),i(ke,()=>q.title||q.text||q.content||"Untitled task"),Z})()})),g}}),we),i(Pe,()=>e.data.totals.pending_todos,Ce),i(Ee,()=>e.data.totals.total_sessions,Ne),i(be,()=>Ze(e.data.totals.total_savings_usd)),i(Te,()=>Ze(e.data.totals.current_session_savings_usd),null),i(v,()=>{var g,q;return Ze((q=(g=e.data.savings)==null?void 0:g.lifetime)==null?void 0:q.delegation_usd)},null),i(P,()=>{var g,q;return Ze((q=(g=e.data.savings)==null?void 0:g.lifetime)==null?void 0:q.cache_usd)},null),i(ie,y(ue,{get each(){return e.data.sessions.slice(0,5)},children:g=>(()=>{var q=Vl(),Z=q.firstChild,ee=Z.firstChild,ke=ee.nextSibling,me=Z.nextSibling,B=me.firstChild,V=B.nextSibling;return i(ee,()=>g.template_label||g.session_id.slice(0,14)),i(ke,()=>g.recommendation),i(B,()=>g.template_label),i(V,()=>Ze(g.delegation_savings_usd+g.cache_savings_usd)),W(()=>U(q,`home-session-item ${g.is_current?"current":""}`)),q})()})),W(()=>U(de,`badge ${e.data.current_session.locked?"off":"on"}`)),a})()}Me(["click"]);var Wl=_("<div class=card><h3>Status</h3><p class=muted>loading..."),Jl=_('<div class=card><h3>Status</h3><table class=kv-table><tbody><tr><td>slot</td><td><span class="badge slot"></span></td></tr><tr><td>model</td><td><code></code></td></tr><tr><td>thinking</td><td><span class=badge></span></td></tr><tr><td>enforce</td><td><span></span></td></tr><tr><td>flow</td><td><span></span></td></tr><tr><td>tdd</td><td><span></span></td></tr><tr><td>tdd strict</td><td><span></span></td></tr><tr><td>reality-check</td><td><span></span></td></tr><tr><td>backend</td><td><span></span></td></tr><tr><td>backend url</td><td><code></code></td></tr><tr><td>last check</td><td></td></tr><tr><td>health</td><td></td></tr><tr><td>lock</td><td><span></span></td></tr><tr><td>credit</td><td><div class=credit-bar><div class=credit-fill></div></div><span class=credit-label>%'),Kl=_('<span class="badge off">'),Xl=_('<span class="badge on">');function Gl({status:e}){return e?(()=>{var t=Jl(),n=t.firstChild,l=n.nextSibling,o=l.firstChild,s=o.firstChild,r=s.firstChild,a=r.nextSibling,c=a.firstChild,b=s.nextSibling,x=b.firstChild,d=x.nextSibling,S=d.firstChild,O=b.nextSibling,E=O.firstChild,M=E.nextSibling,Y=M.firstChild,m=O.nextSibling,u=m.firstChild,h=u.nextSibling,C=h.firstChild,k=m.nextSibling,G=k.firstChild,j=G.nextSibling,z=j.firstChild,I=k.nextSibling,D=I.firstChild,A=D.nextSibling,R=A.firstChild,J=I.nextSibling,ce=J.firstChild,ge=ce.nextSibling,te=ge.firstChild,T=J.nextSibling,H=T.firstChild,w=H.nextSibling,N=w.firstChild,K=T.nextSibling,de=K.firstChild,L=de.nextSibling,oe=L.firstChild,ve=K.nextSibling,he=ve.firstChild,re=he.nextSibling,se=re.firstChild,ae=ve.nextSibling,_e=ae.firstChild,we=_e.nextSibling,Pe=ae.nextSibling,Ce=Pe.firstChild,Ee=Ce.nextSibling,Ne=Pe.nextSibling,Fe=Ne.firstChild,X=Fe.nextSibling,be=X.firstChild,Te=Ne.nextSibling,ye=Te.firstChild,v=ye.nextSibling,P=v.firstChild,Q=P.firstChild,$=P.nextSibling,ie=$.firstChild;return i(c,()=>e.active_slot),i(S,()=>e.current_model),i(Y,()=>e.thinking),i(C,()=>e.enforce?"ON":"OFF"),i(z,()=>e.flow_enforcer?"ON":"OFF"),i(R,()=>e.tdd_enforcer?"ON":"OFF"),i(te,()=>e.tdd_strict?"ON":"OFF"),i(N,(()=>{var g=ne(()=>!!e.reality_check_enabled);return()=>g()?`ON${e.reality_check_scope?` (${e.reality_check_scope})`:""}`:"OFF"})()),i(oe,()=>e.backend_connected?"⚡ ON":"OFF"),i(se,()=>e.backend_api_url||e.backend_health_url||"unknown"),i(we,(()=>{var g=ne(()=>!!e.backend_health_checked_at);return()=>g()?`${e.backend_health_checked_at}${typeof e.backend_health_age_ms=="number"?` (${Math.round(e.backend_health_age_ms/1e3)}s ago)`:""}`:"never"})()),i(Ee,(()=>{var g=ne(()=>!!e.backend_health_error);return()=>g()?(()=>{var q=Kl();return i(q,()=>e.backend_health_error),q})():(()=>{var q=Xl();return i(q,(()=>{var Z=ne(()=>typeof e.backend_health_latency_ms=="number");return()=>Z()?`${e.backend_health_latency_ms}ms`:"ok"})()),q})()})()),i(be,(()=>{var g=ne(()=>!!e.model_locked);return()=>g()?`ON${e.locked_slot?` (${e.locked_slot})`:""}`:"OFF"})()),i($,()=>e.credit_percent.toFixed(1),ie),W(g=>{var q=`badge ${e.enforce?"on":"off"}`,Z=`badge ${e.flow_enforcer?"on":"off"}`,ee=`badge ${e.tdd_enforcer?"on":"off"}`,ke=`badge ${e.tdd_strict?"on":"off"}`,me=`badge ${e.reality_check_enabled?"on":"off"}`,B=`badge ${e.backend_connected?"on":"off"}`,V=`badge ${e.model_locked?"on":"off"}`,le=`width: ${e.credit_percent}%`;return q!==g.e&&U(C,g.e=q),Z!==g.t&&U(z,g.t=Z),ee!==g.a&&U(R,g.a=ee),ke!==g.o&&U(te,g.o=ke),me!==g.i&&U(N,g.i=me),B!==g.n&&U(oe,g.n=B),V!==g.s&&U(be,g.s=V),g.h=Dn(Q,le,g.h),g},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),t})():Wl()}var Ql=_("<div class=card><h3>Savings</h3><p class=muted>loading..."),Yl=_("<div class=card><h3>Savings <span></span></h3><table class=kv-table><tbody><tr><td>lifetime</td><td><strong>$</strong></td></tr><tr><td>session</td><td><strong>$</strong></td></tr><tr><td>rate / hr</td><td>$</td></tr><tr><td>cache hits</td><td></td></tr><tr><td>total warns</td><td>"),Zl=_("<div class=bar-chart>"),es=_("<div class=bar-row><span class=bar-label></span><div class=bar-track><div class=bar-fill></div></div><span class=bar-value>$");function ts({savings:e}){if(!e)return Ql();const t=e.lifetime.delegation_usd+e.lifetime.cache_usd,n=e.current_session.delegation_usd+e.current_session.cache_usd,l=e.trend==="up"?"^":e.trend==="down"?"v":"-",o=e.trend==="up"?"trend-up":e.trend==="down"?"trend-down":"trend-flat";return(()=>{var s=Yl(),r=s.firstChild,a=r.firstChild,c=a.nextSibling,b=r.nextSibling,x=b.firstChild,d=x.firstChild,S=d.firstChild,O=S.nextSibling,E=O.firstChild;E.firstChild;var M=d.nextSibling,Y=M.firstChild,m=Y.nextSibling,u=m.firstChild;u.firstChild;var h=M.nextSibling,C=h.firstChild,k=C.nextSibling;k.firstChild;var G=h.nextSibling,j=G.firstChild,z=j.nextSibling,I=G.nextSibling,D=I.firstChild,A=D.nextSibling;return U(c,`trend ${o}`),i(c,l),i(E,()=>t.toFixed(4),null),i(u,()=>n.toFixed(4),null),i(k,()=>e.savings_rate_per_hour.toFixed(4),null),i(z,()=>e.cache_hits_this_session),i(A,()=>e.lifetime.total_warns),i(s,(()=>{var R=ne(()=>!!(e.current_session.tool_breakdown&&Object.keys(e.current_session.tool_breakdown).length>0));return()=>R()&&(()=>{var J=Zl();return i(J,()=>Object.entries(e.current_session.tool_breakdown).map(([ce,ge])=>{const te=Math.max(...Object.values(e.current_session.tool_breakdown))||1;return(()=>{var T=es(),H=T.firstChild,w=H.nextSibling,N=w.firstChild,K=w.nextSibling;return K.firstChild,i(H,ce),i(K,()=>ge.toFixed(4),null),W(de=>Dn(N,`width: ${Math.min(ge/te*100,100)}%`,de)),T})()})),J})()})(),null),s})()}var ns=_("<div class=card-full><h3>Sessions"),is=_("<p class=muted>loading..."),ls=_("<p class=error>Failed to load sessions"),ss=_("<table class=data-table><thead><tr><th>Session</th><th>Started</th><th>Cost</th><th>Del Saved</th><th>Cache</th><th>Warns</th></tr></thead><tbody>"),rs=_("<tr><td><code></code></td><td></td><td>$</td><td>$</td><td>$</td><td>");function os(){const[e]=Dt(Mi);return(()=>{var t=ns();return t.firstChild,i(t,(()=>{var n=ne(()=>!!e.loading);return()=>n()&&is()})(),null),i(t,(()=>{var n=ne(()=>!!e.error);return()=>n()&&ls()})(),null),i(t,(()=>{var n=ne(()=>!!e());return()=>n()&&(()=>{var l=ss(),o=l.firstChild,s=o.nextSibling;return i(s,()=>e().sessions.map(r=>(()=>{var a=rs(),c=a.firstChild,b=c.firstChild,x=c.nextSibling,d=x.nextSibling;d.firstChild;var S=d.nextSibling;S.firstChild;var O=S.nextSibling;O.firstChild;var E=O.nextSibling;return i(b,()=>r.id.slice(0,8)),i(x,(()=>{var M=ne(()=>!!r.started);return()=>M()?new Date(r.started).toLocaleDateString():"-"})()),i(d,()=>r.cost_usd.toFixed(2),null),i(S,()=>r.delegation_savings_usd.toFixed(4),null),i(O,()=>r.cache_savings_usd.toFixed(4),null),i(E,()=>r.warns_count),a})())),l})()})(),null),t})()}var as=_("<div class=card><h3>Stress</h3><div class=stress-bars>"),cs=_("<span class=muted>awaiting data..."),ds=_("<span class=stress-bar>");const En=["▁","▂","▃","▅","▆","█"];function us({status:e}){const[t,n]=F([]),l=setInterval(()=>{e&&n(o=>[...o,En[Math.floor(Math.random()*En.length)]].slice(-24))},2e3);return Jt(()=>clearInterval(l)),(()=>{var o=as(),s=o.firstChild,r=s.nextSibling;return i(r,(()=>{var a=ne(()=>t().length===0);return()=>a()?cs():t().map(c=>(()=>{var b=ds();return i(b,c),b})())})()),o})()}var fs=_('<div class=card-full><h3>Reality Check</h3><div class=control-group><h4>Scope</h4><div class=bracket-row><button>global</button><button>project</button></div></div><div class=control-group><h4>Active</h4><div class=bracket-row><button></button></div></div><div class=control-group><h4>Rules</h4><label class=field-label for=reality-rules>editable JSON array</label><textarea id=reality-rules class=text-area></textarea></div><div class=bracket-row><button class="bracket-btn on">reload</button><button class="bracket-btn on">save</button><button class="bracket-btn on">reality-check</button></div><div class=result-box style=margin-top:0.65rem><code>'),hs=_("<div class=control-group><h4>Project</h4><label class=field-label for=reality-project>project fingerprint</label><select id=reality-project class=text-input><option value>select a project"),bs=_("<option>");function $s({status:e}){const[t,n]=F("global"),[l,o]=F(""),[s,r]=F(!0),[a,c]=F("[]"),[b,x]=F(null),[d,S]=F(!1),[O,E]=F("");async function M(u=t(),h=l()){var C;S(!0),E("");try{const k=await Hi(u,u==="project"?h:void 0);x(k),n(k.scope),o(k.project_id||((C=k.current_project)==null?void 0:C.id)||h||""),r(k.enabled!==!1),c(JSON.stringify(k.rules||[],null,2))}catch(k){E((k==null?void 0:k.message)||"Failed to load reality-check state")}finally{S(!1)}}async function Y(){let u=[];try{const h=JSON.parse(a());u=Array.isArray(h)?h:[]}catch{E("Rules must be valid JSON array");return}S(!0),E("");try{const h=await Wi({scope:t(),project_id:t()==="project"?l():void 0,enabled:s(),rules:u});h.ok?(E("Saved reality-check settings"),await M(t(),l())):E(h.error||"Save failed")}catch(h){E((h==null?void 0:h.message)||"Save failed")}finally{S(!1)}}async function m(){S(!0),E("");try{const u=await Xt("reality-check");E(String(u.result||"Reality check complete"))}catch(u){E((u==null?void 0:u.message)||"Reality check failed")}finally{S(!1)}}return Wt(()=>{M()}),(()=>{var u=fs(),h=u.firstChild,C=h.nextSibling,k=C.firstChild,G=k.nextSibling,j=G.firstChild,z=j.nextSibling,I=C.nextSibling,D=I.firstChild,A=D.nextSibling,R=A.firstChild,J=I.nextSibling,ce=J.firstChild,ge=ce.nextSibling,te=ge.nextSibling,T=J.nextSibling,H=T.firstChild,w=H.nextSibling,N=w.nextSibling,K=T.nextSibling,de=K.firstChild;return j.$$click=()=>{n("global"),M("global")},z.$$click=()=>{var L,oe;n("project"),M("project",l()||(e==null?void 0:e.current_project_fingerprint)||((oe=(L=b())==null?void 0:L.current_project)==null?void 0:oe.id)||"")},i(u,(()=>{var L=ne(()=>t()==="project");return()=>L()&&(()=>{var oe=hs(),ve=oe.firstChild,he=ve.nextSibling,re=he.nextSibling;return re.firstChild,re.addEventListener("change",se=>{o(se.currentTarget.value),M("project",se.currentTarget.value)}),i(re,()=>{var se;return(((se=b())==null?void 0:se.known_projects)||[]).map(ae=>(()=>{var _e=bs();return i(_e,(()=>{var we=ne(()=>!!ae.name);return()=>we()?`${ae.name} (${ae.id})`:ae.id})()),W(()=>_e.value=ae.id),_e})())},null),W(()=>re.disabled=d()),W(()=>{var se,ae;return re.value=l()||((ae=(se=b())==null?void 0:se.current_project)==null?void 0:ae.id)||""}),oe})()})(),I),R.$$click=()=>r(!s()),i(R,()=>s()?"enabled":"disabled"),te.$$input=L=>c(L.currentTarget.value),H.$$click=()=>void M(),w.$$click=()=>void Y(),N.$$click=()=>void m(),i(de,()=>{var L,oe;return O()||`scope=${t()}${t()==="project"&&l()?` project=${l()}`:""} rules=${((oe=(L=b())==null?void 0:L.rules)==null?void 0:oe.length)??0}`}),W(L=>{var oe=`bracket-btn ${t()==="global"?"on":""}`,ve=d(),he=`bracket-btn ${t()==="project"?"on":""}`,re=d(),se=`bracket-btn ${s()?"on":"off"}`,ae=d(),_e=d(),we=d(),Pe=d(),Ce=d();return oe!==L.e&&U(j,L.e=oe),ve!==L.t&&(j.disabled=L.t=ve),he!==L.a&&U(z,L.a=he),re!==L.o&&(z.disabled=L.o=re),se!==L.i&&U(R,L.i=se),ae!==L.n&&(R.disabled=L.n=ae),_e!==L.s&&(te.disabled=L.s=_e),we!==L.h&&(H.disabled=L.h=we),Pe!==L.r&&(w.disabled=L.r=Pe),Ce!==L.d&&(N.disabled=L.d=Ce),L},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),W(()=>te.value=a()),u})()}Me(["click","input"]);var vs=_("<div class=card-full><h3>Controls</h3><div class=control-group><h4>Vibe Mode</h4><div class=bracket-row></div></div><hr class=section-divider><div class=control-group><h4>Slot</h4><div class=bracket-row><button></button><button></button><button></button></div></div><hr class=section-divider><div class=control-group><h4>Enforcement</h4><div class=bracket-row><button></button><button></button></div></div><hr class=section-divider><div class=control-group><h4>Lock</h4><div class=bracket-row><button></button><button></button></div></div><hr class=section-divider><div class=control-group><h4>Flow</h4><div class=bracket-row><button></button><button></button><button></button></div></div><hr class=section-divider><div class=control-group><h4>TDD</h4><div class=bracket-row><button></button><button></button><button></button></div></div><hr class=section-divider><div class=control-group><h4>Thinking</h4><div class=bracket-row><button></button><button></button><button></button></div></div><hr class=section-divider><hr class=section-divider><div class=control-group><h4>Actions</h4><div class=bracket-row><button class=bracket-btn></button><button class=bracket-btn></button><button class=bracket-btn>"),_s=_("<button>"),gs=_("<div class=result-box><code></code><button class=dismiss-btn>x");const ms=[...gt(),...zt().filter(e=>e.id!=="balanced")];function ps({status:e,onAction:t}){const[n,l]=F(null),[o,s]=F(null);async function r(a,c){l(a+(c||"")),s(null);try{const b=await Xt(a,c);s({text:b.ok?String(b.result):String(b.error),ok:b.ok}),t()}catch(b){s({text:b.message,ok:!1})}finally{l(null)}}return(()=>{var a=vs(),c=a.firstChild,b=c.nextSibling,x=b.firstChild,d=x.nextSibling,S=b.nextSibling,O=S.nextSibling,E=O.firstChild,M=E.nextSibling,Y=M.firstChild,m=Y.nextSibling,u=m.nextSibling,h=O.nextSibling,C=h.nextSibling,k=C.firstChild,G=k.nextSibling,j=G.firstChild,z=j.nextSibling,I=C.nextSibling,D=I.nextSibling,A=D.firstChild,R=A.nextSibling,J=R.firstChild,ce=J.nextSibling,ge=D.nextSibling,te=ge.nextSibling,T=te.firstChild,H=T.nextSibling,w=H.firstChild,N=w.nextSibling,K=N.nextSibling,de=te.nextSibling,L=de.nextSibling,oe=L.firstChild,ve=oe.nextSibling,he=ve.firstChild,re=he.nextSibling,se=re.nextSibling,ae=L.nextSibling,_e=ae.nextSibling,we=_e.firstChild,Pe=we.nextSibling,Ce=Pe.firstChild,Ee=Ce.nextSibling,Ne=Ee.nextSibling,Fe=_e.nextSibling,X=Fe.nextSibling,be=X.nextSibling,Te=be.firstChild,ye=Te.nextSibling,v=ye.firstChild,P=v.nextSibling,Q=P.nextSibling;return i(d,()=>ms.map($=>(()=>{var ie=_s();return ie.$$click=()=>r("mode",$.id),i(ie,(()=>{var g=ne(()=>n()===`mode${$.id}`);return()=>g()?"...":$.name})()),W(g=>{var q=`bracket-btn ${(e==null?void 0:e.optimization_mode)===$.id?"on":""}`,Z=n()===`mode${$.id}`,ee=$.desc;return q!==g.e&&U(ie,g.e=q),Z!==g.t&&(ie.disabled=g.t=Z),ee!==g.a&&Le(ie,"title",g.a=ee),g},{e:void 0,t:void 0,a:void 0}),ie})())),Y.$$click=()=>r("set","brain"),i(Y,()=>n()==="setbrain"?"...":"brain"),m.$$click=()=>r("set","medium"),i(m,()=>n()==="setmedium"?"...":"medium"),u.$$click=()=>r("set","cheap"),i(u,()=>n()==="setcheap"?"...":"cheap"),j.$$click=()=>r("enforce","on"),i(j,()=>n()==="enforceon"?"...":"enf on"),z.$$click=()=>r("enforce","off"),i(z,()=>n()==="enforceoff"?"...":"enf off"),J.$$click=()=>r("lock","on"),i(J,()=>n()==="lockon"?"...":"lock on"),ce.$$click=()=>r("lock","off"),i(ce,()=>n()==="lockoff"?"...":"lock off"),w.$$click=()=>r("flow","on"),i(w,()=>n()==="flowon"?"...":"flow on"),N.$$click=()=>r("flow","off"),i(N,()=>n()==="flowoff"?"...":"flow off"),K.$$click=()=>r("flow","enforce"),i(K,()=>n()==="flowenforce"?"...":"flow enf"),he.$$click=()=>r("tdd","on"),i(he,()=>n()==="tddon"?"...":"tdd on"),re.$$click=()=>r("tdd","off"),i(re,()=>n()==="tddoff"?"...":"tdd off"),se.$$click=()=>r("tdd","strict"),i(se,()=>n()==="tddstrict"?"...":"tdd strict"),Ce.$$click=()=>r("thinking","full"),i(Ce,()=>n()==="thinkingfull"?"...":"full"),Ee.$$click=()=>r("thinking","brief"),i(Ee,()=>n()==="thinkingbrief"?"...":"brief"),Ne.$$click=()=>r("thinking","off"),i(Ne,()=>n()==="thinkingoff"?"...":"off"),i(a,y($s,{status:e}),X),v.$$click=()=>r("status"),i(v,()=>n()==="status"?"...":"status"),P.$$click=()=>r("disable"),i(P,()=>n()==="disable"?"...":"disable"),Q.$$click=()=>r("help"),i(Q,()=>n()==="help"?"...":"help"),i(a,(()=>{var $=ne(()=>!!o());return()=>$()&&(()=>{var ie=gs(),g=ie.firstChild,q=g.nextSibling;return i(g,()=>o().text),q.$$click=()=>s(null),ie})()})(),null),W($=>{var ie=`bracket-btn ${(e==null?void 0:e.active_slot)==="brain"?"on":""}`,g=n()==="setbrain",q=`bracket-btn ${(e==null?void 0:e.active_slot)==="medium"?"on":""}`,Z=n()==="setmedium",ee=`bracket-btn ${(e==null?void 0:e.active_slot)==="cheap"?"on":""}`,ke=n()==="setcheap",me=`bracket-btn ${e!=null&&e.enforce?"on":"off"}`,B=n()==="enforceon",V=`bracket-btn ${e!=null&&e.enforce?"off":"on"}`,le=n()==="enforceoff",Be=`bracket-btn ${e!=null&&e.model_locked?"on":"off"}`,ze=n()==="lockon",Oe=`bracket-btn ${e!=null&&e.model_locked?"off":"on"}`,He=n()==="lockoff",Qe=`bracket-btn ${e!=null&&e.flow_enforcer?"on":"off"}`,mt=n()==="flowon",et=`bracket-btn ${e!=null&&e.flow_enforcer?"off":"on"}`,pt=n()==="flowoff",xt=`bracket-btn ${e!=null&&e.flow_extract_todos?"on":"off"}`,at=n()==="flowenforce",St=`bracket-btn ${e!=null&&e.tdd_enforcer?"on":"off"}`,kt=n()==="tddon",tt=`bracket-btn ${e!=null&&e.tdd_enforcer?"off":"on"}`,nt=n()==="tddoff",it=`bracket-btn ${e!=null&&e.tdd_strict?"on":"off"}`,ct=n()==="tddstrict",dt=`bracket-btn ${(e==null?void 0:e.thinking)==="full"?"on":""}`,ut=n()==="thinkingfull",wt=`bracket-btn ${(e==null?void 0:e.thinking)==="brief"?"on":""}`,lt=n()==="thinkingbrief",Ct=`bracket-btn ${(e==null?void 0:e.thinking)==="off"?"on":""}`,Ye=n()==="thinkingoff",ft=n()==="status",yt=n()==="disable",ht=n()==="help";return ie!==$.e&&U(Y,$.e=ie),g!==$.t&&(Y.disabled=$.t=g),q!==$.a&&U(m,$.a=q),Z!==$.o&&(m.disabled=$.o=Z),ee!==$.i&&U(u,$.i=ee),ke!==$.n&&(u.disabled=$.n=ke),me!==$.s&&U(j,$.s=me),B!==$.h&&(j.disabled=$.h=B),V!==$.r&&U(z,$.r=V),le!==$.d&&(z.disabled=$.d=le),Be!==$.l&&U(J,$.l=Be),ze!==$.u&&(J.disabled=$.u=ze),Oe!==$.c&&U(ce,$.c=Oe),He!==$.w&&(ce.disabled=$.w=He),Qe!==$.m&&U(w,$.m=Qe),mt!==$.f&&(w.disabled=$.f=mt),et!==$.y&&U(N,$.y=et),pt!==$.g&&(N.disabled=$.g=pt),xt!==$.p&&U(K,$.p=xt),at!==$.b&&(K.disabled=$.b=at),St!==$.T&&U(he,$.T=St),kt!==$.A&&(he.disabled=$.A=kt),tt!==$.O&&U(re,$.O=tt),nt!==$.I&&(re.disabled=$.I=nt),it!==$.S&&U(se,$.S=it),ct!==$.W&&(se.disabled=$.W=ct),dt!==$.C&&U(Ce,$.C=dt),ut!==$.B&&(Ce.disabled=$.B=ut),wt!==$.v&&U(Ee,$.v=wt),lt!==$.k&&(Ee.disabled=$.k=lt),Ct!==$.x&&U(Ne,$.x=Ct),Ye!==$.j&&(Ne.disabled=$.j=Ye),ft!==$.q&&(v.disabled=$.q=ft),yt!==$.z&&(P.disabled=$.z=yt),ht!==$.P&&(Q.disabled=$.P=ht),$},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0,p:void 0,b:void 0,T:void 0,A:void 0,O:void 0,I:void 0,S:void 0,W:void 0,C:void 0,B:void 0,v:void 0,k:void 0,x:void 0,j:void 0,q:void 0,z:void 0,P:void 0}),a})()}Me(["click"]);var xs=_("<div class=card-full><h3>Reports"),Ss=_("<p class=muted>loading..."),ks=_("<p class=error>Failed to load reports"),ws=_("<div class=reports-layout><div class=report-list></div><div class=report-viewer>"),Cs=_("<div><div class=report-summary></div><div class=report-meta><span class=report-type></span><span class=report-date>"),ys=_("<pre class=report-content>"),js=_("<p class=muted>Select a report");function Ps(){const[e]=Dt(Ri),[t,n]=F(null),[l,o]=F(null);async function s(r){n(r);try{const a=await fetch(`/reports/${encodeURIComponent(r)}`);o(await a.text())}catch{o("Failed to load report")}}return(()=>{var r=xs();return r.firstChild,i(r,(()=>{var a=ne(()=>!!e.loading);return()=>a()&&Ss()})(),null),i(r,(()=>{var a=ne(()=>!!e.error);return()=>a()&&ks()})(),null),i(r,(()=>{var a=ne(()=>!!e());return()=>a()&&(()=>{var c=ws(),b=c.firstChild,x=b.nextSibling;return i(b,()=>e().map(d=>(()=>{var S=Cs(),O=S.firstChild,E=O.nextSibling,M=E.firstChild,Y=M.nextSibling;return S.$$click=()=>s(d.id),i(O,()=>d.summary||d.id),i(M,()=>d.type),i(Y,(()=>{var m=ne(()=>!!d.created);return()=>m()?new Date(d.created).toLocaleDateString():""})()),W(()=>U(S,`report-item ${t()===d.id?"active":""}`)),S})())),i(x,(()=>{var d=ne(()=>!!l());return()=>d()?(()=>{var S=ys();return i(S,l),S})():js()})()),c})()})(),null),r})()}Me(["click"]);function At(e){return String(e||"").trim()}function Es(e){const t=e.toLowerCase(),n=e.split(/\s+/).filter(Boolean).length,l=/\b(debug|bug|fix|error|issue|problem|null|undefined|crash|fault|wrong|broken)\b/i.test(t),o=/\b(refactor|optimize|migrate|architecture|design|implement|integrate|pattern|pipeline|deploy|orchestrate|analyze|analysis|proposal|explain|evaluate|review|compare|strategy|plan|recommend|roadmap|security|vulnerability|risk|assessment|\bai\b|complex|distributed|scale|performance|capacity)\b/i.test(t),s=/\b(function|class|const|let|var|import|export|return|async|await|interface|type|enum)\b/i.test(t),r=/\b(urgent|critical|crash|broken|fail|blocker|down|outage|incident)\b/i.test(t);let a=.05;return n<=3&&!o&&!s&&!l?a=.05:n<=10&&!o&&!l&&!s&&!r?a=.25:n<=20&&!o&&!l&&!r&&!s?a=.4:l||r?a=.65:o||/```/.test(e)||/\b(implement|add|create|write|build|make|change|update|remove|delete|configure|set|run|test|audit|review|check)\b/gi.test(t)?a=.8:a=.55,{score:a,signals:{hasDebug:l?1:0,hasComplexity:o?1:0,hasCode:s?1:0,hasUrgency:r?1:0,wordCount:n}}}function Ts(e={}){const t=(n,l)=>({enabled:(n==null?void 0:n.enabled)!==!1,provider:(n==null?void 0:n.provider)||l,fixture_mode:!!(n!=null&&n.fixture_mode),benchmark_path:(n==null?void 0:n.benchmark_path)||null,backend_status:(n==null?void 0:n.backend_status)||null});return{compression:t(e.compression,"local"),web_search:t(e.web_search,"duckduckgo"),tdd:t(e.tdd,"local"),blackbox:t(e.blackbox,"local"),vibemax:t(e.vibemax,"local"),vibeqmax:t(e.vibeqmax,"local"),vibeultrax:t(e.vibeultrax,"local")}}function Os(e={}){var k;const t=At(e.prompt||e.text),n=At(e.contextText||e.sourceContent),l=At(e.fileName||e.file_name),o=At(e.ext||e.extension),s=[t,n,l,o].filter(Boolean).join(`
|
|
4
|
-
`),r=s.toLowerCase(),a=Es(s),c=s?s.split(`
|
|
5
|
-
`).length:0,b=Math.max(t.length,n.length)>=2400||c>=40,x=c>=25&&(((k=s.match(/```/g))==null?void 0:k.length)||0)>1,d=/\b(function|class|const|let|var|import|export|interface|type|enum|schema|api|route|endpoint|module|service|component|hook|test|spec|params?|skeleton|mock|fixture)\b/i.test(r)||s.includes("```"),S=/\b(latest|current|recent|today|this week|this month|now|up to date|up-to-date|release notes|docs|documentation|sources|citations|web search|search the web|look up|compare)\b/i.test(r),O=/\b(who|what|when|where|why|how many|is there|does|do we|can we|should we|could we)\b/i.test(r),E=Number(e.loopCount||e.loop_count||e.loopConsecutive||e.loop_consecutive||0)>=2||/\b(loop|stuck|again|repeating|same answer|not helping|circling|over and over|still not|you keep)\b/i.test(r),Y=Number(e.stressScore||e.stress_score||e.latest_stress_multiplier||0)>=.7||/\b(urgent|critical|blocked|blocking|broken|failing|error|crash|outage|incident|hotfix|p0|p1)\b/i.test(r)||a.signals.hasUrgency===1,m=d||!!e.sourceContent||!!l||!!o||/\b(tdd|test first|tests first|skeleton|exports?|params?|infer type)\b/i.test(r),u=S||O,h=b||x,C=E||Y||/\b(ambiguous|unclear|uncertain|confusing|many moving parts|multi step|orchestrate|plan)\b/i.test(r);return{prompt:t,contextText:n,fileName:l,ext:o,lineCount:c,lexical:a,hasLongContext:b,hasNoisyContext:x,hasCodeShape:d,hasResearchSignal:S,hasUnknownFactSignal:O,hasLoopSignal:E,hasStressSignal:Y,needsTdd:m,needsWebSearch:u,needsCompression:h,needsEscalation:C}}function rt(e,t,n,l,o={}){e.push({tool:t,label:n,reason:l,autoExecute:o.autoExecute!==!1,requires:o.requires||[]})}function As(e={}){const t=Ts(e.capabilities||{}),n=Os(e),l=[],o=n.needsTdd&&n.needsWebSearch;!e.skipCompression&&n.needsCompression&&t.compression.enabled&&rt(l,"compress","Compress context","The prompt or context is long/noisy enough to compact before routing.",{requires:["contextText"]}),o&&t.vibeultrax.enabled&&rt(l,"vibeultrax","Plan with VibeUltraX","The request mixes code and research, so the learned router should break the ordering tie before helper calls.",{requires:[]});const s=[];if(n.needsWebSearch&&t.web_search.enabled&&s.push({tool:"web-search",label:"Search the web",reason:"The request asks for current, cited, or externally verifiable information.",autoExecute:!0,requires:["query"]}),n.needsTdd&&t.tdd.enabled&&s.push({tool:"tdd",label:"Use TDD helpers",reason:"The request looks code-heavy, API-shaped, or test-driven.",autoExecute:!0,requires:["sourceContent"]}),s.length===2&&o&&t.vibeultrax.enabled){const b=n.hasCodeShape?[s[1],s[0]]:[s[0],s[1]];for(const x of b)rt(l,x.tool,x.label,x.reason,{requires:x.requires})}else for(const c of s)rt(l,c.tool,c.label,c.reason,{requires:c.requires});if(n.needsEscalation&&(t.blackbox.enabled||t.vibeqmax.enabled||t.vibemax.enabled||t.vibeultrax.enabled)){const c=n.hasLoopSignal?t.vibeqmax.enabled?"vibeqmax":t.vibemax.enabled?"vibemax":"blackbox":t.vibeultrax.enabled?"vibeultrax":t.vibeqmax.enabled?"vibeqmax":t.vibemax.enabled?"vibemax":"blackbox";rt(l,c,c==="vibeultrax"?"Escalate with VibeUltraX":c==="vibeqmax"?"Escalate with VibeQMax":c==="vibemax"?"Escalate with VibeMaX":"Escalate through blackbox","Use the blackbox stack to decide whether to stay cheap, escalate, or switch to research mode.",{requires:["sessionId"]})}l.length||rt(l,"direct","Handle directly","The request is simple enough to answer without helper calls.",{autoExecute:!1});const r=l[0],a=Math.max(.1,Math.min(.99,n.hasLongContext||n.hasNoisyContext?.93:n.needsWebSearch?.9:n.needsTdd?.84:n.needsEscalation?.82:.72));return{recommended_next_action:r.tool,recommended_label:r.label,reason:r.reason,confidence:a,steps:l,signals:n,capabilities:t}}function Ns(e){var t;return(t=e==null?void 0:e.steps)!=null&&t.length?`${e.recommended_label}${e.steps.length>1?` -> ${e.steps.slice(1).map(n=>n.label).join(" -> ")}`:""}`:"Direct path"}var qs=_('<div class=card-full><h3>Blackbox Engine</h3><div class=control-group><h4>Mode</h4><div class=bracket-row><button>audit</button><button>budget</button><button>auto</button><button>quality</button><button>vibeqmax</button></div></div><div class=control-group><h4>Request</h4><label class=field-label>Session</label><input class=text-input placeholder=default><label class=field-label>Prompt</label><textarea class=text-area rows=4></textarea><div class=bracket-row><button class=bracket-btn></button><button class="bracket-btn on"></button></div></div><div class=control-group><h4>Recommended Next Action</h4><div class=search-hero><div><div class=search-hero-kicker>client-side orchestration</div><div class=search-hero-title></div><p class=search-hero-copy></p></div><div class=search-hero-meta><span class="badge on"></span><span class=badge>% confidence</span><span class=badge> step</span></div></div><div class=bracket-row></div><p class=muted>Plan: '),Bs=_("<span class=badge>"),Is=_('<table class="kv-table blackbox-status"><tbody><tr><td>sub-regime</td><td><span class=badge></span></td></tr><tr><td>momentum</td><td>%</td></tr><tr><td>resolution</td><td></td></tr><tr><td>loops</td><td></td></tr><tr><td>intervention</td><td>L'),Fs=_('<table class="kv-table blackbox-status"><tbody><tr><td>mode</td><td><span class="badge on"></span></td></tr><tr><td>source</td><td></td></tr><tr><td>confidence</td><td></td></tr><tr><td>context</td><td>'),Ds=_("<p class=muted>Press refresh to load state"),Ls=_("<p class=error>");function Ms(){const[e,t]=F(null),[n,l]=F(null),[o,s]=F(null),[r,a]=F(!1),[c,b]=F("default"),[x,d]=F("show current status"),[S,O]=F("audit"),[E,M]=F(null);Wt(async()=>{try{const h=await fn();l(h)}catch{}});async function Y(){a(!0),s(null);try{const h=await Rn();t({sub_regime:h.active_slot||"active",momentum:(h.credit_percent||0)/100,resolution_state:h.enabled?"in_progress":"disabled",loop_count:0,intervention_level:h.enforce?1:0})}catch(h){s(h.message)}finally{a(!1)}}async function m(){a(!0),s(null);try{const h=await Xi(c(),{userText:x(),action:"explore",optimizationMode:S()});M(h)}catch(h){s(h.message)}finally{a(!1)}}const u=()=>{var h,C,k;return As({prompt:x(),contextText:x(),sessionId:c(),capabilities:n()||void 0,loopCount:((h=e())==null?void 0:h.loop_count)??0,loopConsecutive:((C=e())==null?void 0:C.loop_count)??0,stressScore:(k=e())!=null&&k.intervention_level?.8:.1})};return(()=>{var h=qs(),C=h.firstChild,k=C.nextSibling,G=k.firstChild,j=G.nextSibling,z=j.firstChild,I=z.nextSibling,D=I.nextSibling,A=D.nextSibling,R=A.nextSibling,J=k.nextSibling,ce=J.firstChild,ge=ce.nextSibling,te=ge.nextSibling,T=te.nextSibling,H=T.nextSibling,w=H.nextSibling,N=w.firstChild,K=N.nextSibling,de=J.nextSibling,L=de.firstChild,oe=L.nextSibling,ve=oe.firstChild,he=ve.firstChild,re=he.nextSibling,se=re.nextSibling,ae=ve.nextSibling,_e=ae.firstChild,we=_e.nextSibling,Pe=we.firstChild,Ce=we.nextSibling,Ee=Ce.firstChild,Ne=oe.nextSibling,Fe=Ne.nextSibling;return Fe.firstChild,z.$$click=()=>O("audit"),I.$$click=()=>O("budget"),D.$$click=()=>O("auto"),A.$$click=()=>O("quality"),R.$$click=()=>O("vibeqmax"),te.$$input=X=>b(X.currentTarget.value),H.$$input=X=>d(X.currentTarget.value),N.$$click=Y,i(N,()=>r()?"...":"refresh"),K.$$click=m,i(K,()=>r()?"...":"run"),i(re,()=>u().recommended_label),i(se,()=>u().reason),i(_e,()=>u().recommended_next_action),i(we,()=>Math.round(u().confidence*100),Pe),i(Ce,()=>u().steps.length,Ee),i(Ce,()=>u().steps.length===1?"":"s",null),i(Ne,()=>u().steps.map(X=>(()=>{var be=Bs();return i(be,()=>X.label),be})())),i(Fe,()=>Ns(u()),null),i(h,(()=>{var X=ne(()=>!!e());return()=>X()&&(()=>{var be=Is(),Te=be.firstChild,ye=Te.firstChild,v=ye.firstChild,P=v.nextSibling,Q=P.firstChild,$=ye.nextSibling,ie=$.firstChild,g=ie.nextSibling,q=g.firstChild,Z=$.nextSibling,ee=Z.firstChild,ke=ee.nextSibling,me=Z.nextSibling,B=me.firstChild,V=B.nextSibling,le=me.nextSibling,Be=le.firstChild,ze=Be.nextSibling;return ze.firstChild,i(Q,()=>e().sub_regime),i(g,()=>(e().momentum*100).toFixed(0),q),i(ke,()=>e().resolution_state),i(V,()=>e().loop_count),i(ze,()=>e().intervention_level,null),be})()})(),null),i(h,(()=>{var X=ne(()=>!!E());return()=>X()&&(()=>{var be=Fs(),Te=be.firstChild,ye=Te.firstChild,v=ye.firstChild,P=v.nextSibling,Q=P.firstChild,$=ye.nextSibling,ie=$.firstChild,g=ie.nextSibling,q=$.nextSibling,Z=q.firstChild,ee=Z.nextSibling,ke=q.nextSibling,me=ke.firstChild,B=me.nextSibling;return i(Q,()=>E().optimization_mode||S()),i(g,()=>{var V;return E().optimization_source||((V=E().selection)==null?void 0:V.source)||"manual"}),i(ee,()=>{var V;return Number(E().optimization_confidence??((V=E().selection)==null?void 0:V.confidence)??0).toFixed(2)}),i(B,()=>{var V,le;return((V=E().context_packet)==null?void 0:V.title)||((le=E().context_packet)==null?void 0:le.kind)||"n/a"}),be})()})(),null),i(h,(()=>{var X=ne(()=>!e()&&!r()&&!o());return()=>X()&&Ds()})(),null),i(h,(()=>{var X=ne(()=>!!o());return()=>X()&&(()=>{var be=Ls();return i(be,o),be})()})(),null),W(X=>{var be=`bracket-btn ${S()==="audit"?"on":""}`,Te=r(),ye=`bracket-btn ${S()==="budget"?"on":""}`,v=r(),P=`bracket-btn ${S()==="auto"?"on":""}`,Q=r(),$=`bracket-btn ${S()==="quality"?"on":""}`,ie=r(),g=`bracket-btn ${S()==="vibeqmax"?"on":""}`,q=r(),Z=r(),ee=r();return be!==X.e&&U(z,X.e=be),Te!==X.t&&(z.disabled=X.t=Te),ye!==X.a&&U(I,X.a=ye),v!==X.o&&(I.disabled=X.o=v),P!==X.i&&U(D,X.i=P),Q!==X.n&&(D.disabled=X.n=Q),$!==X.s&&U(A,X.s=$),ie!==X.h&&(A.disabled=X.h=ie),g!==X.r&&U(R,X.r=g),q!==X.d&&(R.disabled=X.d=q),Z!==X.l&&(N.disabled=X.l=Z),ee!==X.u&&(K.disabled=X.u=ee),X},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0}),W(()=>te.value=c()),W(()=>H.value=x()),h})()}Me(["click","input"]);var Rs=_('<div class=search-hero><div><div class=search-hero-kicker>backend-driven mode</div><div class=search-hero-title>Live web retrieval with citations</div><p class=search-hero-copy>The backend controls routing, policy, and citations. The dashboard only sends the query and renders grounded results.</p></div><div class=search-hero-meta><span class="badge on"></span><span class=badge></span><span class=badge> max'),Vs=_("<div class=control-group><h4>Mode</h4><div class=bracket-row><button>fixture</button><button>duckduckgo"),Us=_('<div class=control-group><h4>Query</h4><label class=field-label>Prompt</label><textarea class=text-area rows=3 placeholder="Ask for current docs, facts, or citations"></textarea><label class=field-label>Results</label><input class=text-input type=number min=1 max=10><div class=bracket-row><button class="bracket-btn on">'),zs=_("<div class=card-full><h3>Web Search"),Hs=_("<p class=muted>Web search is hidden until the backend advertises support."),Ws=_("<div class=search-output><div class=search-answer><h4>Answer</h4><pre class=search-answer-text></pre><div class=search-stats><span class=badge>results </span><span class=badge>domains </span><span class=badge>provider </span></div></div><div class=search-results><h4>Results</h4><div class=search-list></div></div><div class=search-citations><h4>Citations</h4><div class=citation-row></div><p class=muted>provider: <!> | unique domains: "),Js=_("<a class=search-item target=_blank rel=noreferrer><div class=search-item-title><span class=search-rank>[<!>]</span> </div><div class=search-item-meta>"),Ks=_("<div class=search-item-snippet>"),Xs=_("<a class=citation-pill target=_blank rel=noreferrer>[<!>] "),Gs=_("<p class=error>");function Qs(){const[e,t]=F(null),[n,l]=F("fetch api"),[o,s]=F("fixture"),[r,a]=F(5),[c,b]=F(!1),[x,d]=F(null),[S,O]=F(null);Wt(async()=>{var m;try{const u=await fn();t(u),(m=u.web_search)!=null&&m.provider&&s(u.web_search.provider)}catch(u){d(u.message)}});async function E(){b(!0),d(null);try{const m=await Ji({query:n(),provider:o(),max_results:r(),compose_answer:!0});O(m)}catch(m){d(m.message)}finally{b(!1)}}const M=()=>{var m,u;return!!((u=(m=e())==null?void 0:m.web_search)!=null&&u.enabled)},Y=()=>{var m,u,h,C;return(u=(m=e())==null?void 0:m.web_search)!=null&&u.fixture_mode?"fixture":((C=(h=e())==null?void 0:h.web_search)==null?void 0:C.provider)||o()};return(()=>{var m=zs();return m.firstChild,i(m,y(fe,{get when(){return M()},get fallback(){return Hs()},get children(){return[(()=>{var u=Rs(),h=u.firstChild,C=h.nextSibling,k=C.firstChild,G=k.nextSibling,j=G.nextSibling,z=j.firstChild;return i(k,Y),i(G,()=>{var I,D;return(D=(I=e())==null?void 0:I.web_search)!=null&&D.benchmark_path?"gold set":"live"}),i(j,r,z),u})(),(()=>{var u=Vs(),h=u.firstChild,C=h.nextSibling,k=C.firstChild,G=k.nextSibling;return k.$$click=()=>s("fixture"),G.$$click=()=>s("duckduckgo"),W(j=>{var z=`bracket-btn ${o()==="fixture"?"on":""}`,I=c(),D=`bracket-btn ${o()==="duckduckgo"?"on":""}`,A=c();return z!==j.e&&U(k,j.e=z),I!==j.t&&(k.disabled=j.t=I),D!==j.a&&U(G,j.a=D),A!==j.o&&(G.disabled=j.o=A),j},{e:void 0,t:void 0,a:void 0,o:void 0}),u})(),(()=>{var u=Us(),h=u.firstChild,C=h.nextSibling,k=C.nextSibling,G=k.nextSibling,j=G.nextSibling,z=j.nextSibling,I=z.firstChild;return k.$$input=D=>l(D.currentTarget.value),j.$$input=D=>a(Math.max(1,Math.min(10,Number(D.currentTarget.value)||5))),I.$$click=E,i(I,()=>c()?"...":"search"),W(()=>I.disabled=c()),W(()=>k.value=n()),W(()=>j.value=String(r())),u})(),y(fe,{get when(){return S()},children:u=>(()=>{var h=Ws(),C=h.firstChild,k=C.firstChild,G=k.nextSibling,j=G.nextSibling,z=j.firstChild;z.firstChild;var I=z.nextSibling;I.firstChild;var D=I.nextSibling;D.firstChild;var A=C.nextSibling,R=A.firstChild,J=R.nextSibling,ce=A.nextSibling,ge=ce.firstChild,te=ge.nextSibling,T=te.nextSibling,H=T.firstChild,w=H.nextSibling;return w.nextSibling,i(G,()=>u().answer||"No generated answer"),i(z,()=>u().meta.resultCount,null),i(I,()=>u().meta.uniqueDomains,null),i(D,()=>u().provider,null),i(J,()=>u().results.map(N=>(()=>{var K=Js(),de=K.firstChild,L=de.firstChild,oe=L.firstChild,ve=oe.nextSibling;ve.nextSibling,L.nextSibling;var he=de.nextSibling;return i(L,()=>N.rank,ve),i(de,()=>N.title,null),i(he,()=>N.domain),i(K,(()=>{var re=ne(()=>!!N.snippet);return()=>re()&&(()=>{var se=Ks();return i(se,()=>N.snippet),se})()})(),null),W(()=>Le(K,"href",N.url)),K})())),i(te,()=>u().citations.map(N=>(()=>{var K=Xs(),de=K.firstChild,L=de.nextSibling;return L.nextSibling,i(K,()=>N.id,L),i(K,()=>N.domain,null),W(()=>Le(K,"href",N.url)),K})())),i(T,()=>u().provider,w),i(T,()=>u().meta.uniqueDomains,null),h})()})]}}),null),i(m,(()=>{var u=ne(()=>!!x());return()=>u()&&(()=>{var h=Gs();return i(h,x),h})()})(),null),m})()}Me(["click","input"]);var Ys=_("<span class=run-step-skip>blocked — "),Zs=_("<code class=run-step-result>"),er=_("<div><span class=run-step-tool></span><span class=run-step-label>"),tr=_("<div class=session-chip-row>"),nr=_("<div class=session-notes-list>"),ir=_('<div class="msg-content mono">strict-deterministic plan: '),lr=_('<div class="msg assistant live"><div class=msg-role>running </div><div class=run-trace></div><span class=run-spinner>executing allowed structured steps only'),sr=_("<div class=session-plan-box><div class=session-plan-head><strong></strong><span>%</span></div><p class=session-copy></p><div class=run-trace>"),rr=_("<div class=run-trace>"),or=_("<div class=error>"),ar=_("<div class=session-plan-list>"),cr=_('<div class=session-workspace><section class=session-hero><div><div class=home-kicker>session workspace</div><h2 class=session-title></h2><div class=session-hero-meta><span>…</span><span>mode </span><span>slot </span><span>model </span><span></span></div></div><div class=session-hero-kpis><div class=session-kpi><span class=field-label>session savings</span><strong></strong></div><div class=session-kpi><span class=field-label>session cost</span><strong></strong></div><div class=session-kpi><span class=field-label>state</span><strong></strong></div></div></section><section class=session-grid-4><div class="card session-column"><h3>Session State</h3><div class=session-state-stack><div class=session-state-row><span>project</span><strong></strong></div><div class=session-state-row><span>status</span><strong></strong></div><div class=session-state-row><span>mode</span><strong></strong></div><div class=session-state-row><span>started</span><strong></strong></div><div class=session-state-row><span>lock</span><strong></strong></div><div class=session-state-row><span>flow</span><strong></strong></div></div><div class=session-state-block><span class=field-label>recommendation</span><p class=session-copy></p></div><div class=session-state-block><span class=field-label>lifecycle</span><div class=session-timeline><span>created </span><span>paused </span><span>resumed </span><span>archived </span></div></div><div class=session-state-block><span class=field-label>notes</span></div></div><div class="card session-column session-thread-column"><h3>Thread</h3><div class="thread session-thread"></div><div class=composer><textarea class=text-area placeholder="Describe the next structured session task…"></textarea><details class=composer-extra><summary>source content for TDD / review steps</summary><textarea class=text-area placeholder="Paste source or diff context here"></textarea></details><div class=composer-actions><span class=muted>policy: strict deterministic · ⌘/Ctrl+Enter to run</span><button class=flow-save></button></div></div></div><div class="card session-column"><h3>Review & KPIs</h3><div class=session-kpi-grid><div class=session-mini-kpi><span class=field-label>provider</span><strong></strong></div><div class=session-mini-kpi><span class=field-label>quality tier</span><strong></strong></div><div class=session-mini-kpi><span class=field-label>pending todos</span><strong></strong></div><div class=session-mini-kpi><span class=field-label>savings / hr</span><strong></strong></div></div><div class=session-state-block><span class=field-label>resolved plan</span></div><div class=session-state-block><span class=field-label>latest run trace</span></div><div class=session-state-block><span class=field-label>backend signal</span><p class=session-copy></p></div></div><div class="card session-column"><h3>Deterministic Control</h3><div class=session-state-block><span class=field-label>vibe modes</span><div class=mode-control-grid></div></div><div class=session-state-block><span class=field-label>flow binding</span><select><option value>inherit (project / global default)</option></select></div><div class=session-state-block><span class=field-label>strict policy</span><div class=policy-box><div class=policy-row><span>run model</span><strong>strict deterministic</strong></div><div class=policy-row><span>links / commands</span><strong>blocked unless structured</strong></div><div class=policy-row><span>TDD plan</span><strong></strong></div><div class=policy-row><span>thinking</span><strong></strong></div></div></div><div class=session-state-block><span class=field-label>session actions</span><div class=session-action-grid></div></div><div class=session-state-block><span class=field-label>TDD Flow Plan'),dr=_("<span class=session-chip>"),ur=_("<p class=muted>No session notes yet."),fr=_("<div class=session-note-item>"),hr=_("<p class=muted>No messages yet. Run a deterministic prompt below."),br=_("<details class=run-trace-details><summary>structured steps (<!>)</summary><div class=run-trace>"),$r=_("<div><div class=msg-role></div><div class=msg-content>"),vr=_("<p class=muted>No orchestration plan yet. Run the session to materialize one."),_r=_("<div class=run-step><span class=run-step-tool></span><span class=run-step-label> · "),gr=_("<p class=muted>No live execution trace yet."),mr=_("<button><strong></strong><span>"),pr=_("<option>"),xr=_("<button class=shell-link>"),Sr=_("<p class=muted>No structured plan yet. Run a session task to generate one."),kr=_("<div class=session-plan-item><span></span><div><strong></strong><div class=muted> · ");const wr=[...gt(),...zt().filter(e=>e.id!=="balanced")];function ln(e){const t=e.r;return(()=>{var n=er(),l=n.firstChild,o=l.nextSibling;return i(l,()=>{var s;return(s=t.step)==null?void 0:s.tool}),i(o,()=>{var s;return(s=t.step)==null?void 0:s.label}),i(n,y(fe,{get when(){return t.skipped},get children(){var s=Ys();return s.firstChild,i(s,()=>t.reason,null),s}}),null),i(n,y(fe,{get when(){return ne(()=>!t.skipped)()&&t.result},get children(){var s=Zs();return i(s,()=>JSON.stringify(t.result).slice(0,160)),s}}),null),W(()=>U(n,`run-step ${t.skipped?"skipped":"done"}`)),n})()}function sn(e){return`$${Number(e||0).toFixed(2)}`}function bt(e){if(!e)return"—";try{return new Date(e).toLocaleString()}catch{return e}}function Cr(e){const t=e==null?void 0:e.session,n=["start","pause","resume",t!=null&&t.locked?"unlock":"lock","archive","undo"];return[...new Set(n)]}function yr(e){const[t,{mutate:n,refetch:l}]=Dt(()=>e.session.id,Ui),[o,{refetch:s}]=Dt(()=>e.session.id,ll),[r,a]=F(""),[c,b]=F(""),[x,d]=F(!1),[S,O]=F(null),[E,M]=F(null),[Y,m]=F(null),[u,h]=F([]),[C,k]=F(null);let G=null;Jt(()=>G==null?void 0:G());const j=Ve(()=>{var T;return(T=t())==null?void 0:T.session}),z=Ve(()=>{var T,H;return Y()||((T=j())==null?void 0:T.orchestration_plan)||((H=e.status)==null?void 0:H.orchestration_plan)||null}),I=Ve(()=>{var T;return String(((T=e.status)==null?void 0:T.optimization_mode)||"auto").toLowerCase()}),D=Ve(()=>wr.map(T=>{var H,w,N,K,de,L;return{...T,active:I()===T.id,available:T.id==="vibeultrax"?((w=(H=e.capabilities)==null?void 0:H.vibeultrax)==null?void 0:w.enabled)!==!1:T.id==="vibeqmax"?((K=(N=e.capabilities)==null?void 0:N.vibeqmax)==null?void 0:K.enabled)!==!1:T.id==="vibemax"?((L=(de=e.capabilities)==null?void 0:de.vibemax)==null?void 0:L.enabled)!==!1:!0}})),A=Ve(()=>{var T;return((T=D().find(H=>H.active))==null?void 0:T.name)||I()}),R=()=>{var H;const T=e.session.flow_id;return T?((H=e.flows.find(w=>w.id===T))==null?void 0:H.name)||"custom":"inherit (project / global default)"},J=()=>{var H;const T=r().trim();if(!(!T||x())){if((H=j())!=null&&H.locked){k("Session is locked. Unlock it before running a deterministic flow.");return}d(!0),k(null),m(null),h([]),M(null),G=cl(e.session.id,{prompt:T,sourceContent:c()||void 0,query:T,execution_policy:"strict-deterministic"},{onEvent:(w,N)=>{w==="flow"?M(N):w==="plan"?m(N.plan):w==="step"?h(K=>[...K,N]):w==="done"?(d(!1),a(""),b(""),m(null),h([]),M(null),s(),l(),e.onRefresh()):w==="error"&&(k(N.message||"run failed"),d(!1))},onError:w=>{k(w.message),d(!1)},onDone:()=>d(!1)})}},ce=async T=>{const H=await nl(e.session.id,{flow_id:T||null});e.onSessionChange(H.session),l()},ge=async T=>{O(`mode:${T}`),k(null);try{await Xt("mode",T),e.onRefresh()}catch(H){k(H.message)}finally{O(null)}},te=async T=>{O(T),k(null);try{const H=await zi(e.session.id,{action:T});n(w=>w&&{...w,session:H.session}),l(),e.onRefresh()}catch(H){k(H.message)}finally{O(null)}};return(()=>{var T=cr(),H=T.firstChild,w=H.firstChild,N=w.firstChild,K=N.nextSibling,de=K.nextSibling,L=de.firstChild,oe=L.firstChild,ve=L.nextSibling;ve.firstChild;var he=ve.nextSibling;he.firstChild;var re=he.nextSibling;re.firstChild;var se=re.nextSibling,ae=w.nextSibling,_e=ae.firstChild,we=_e.firstChild,Pe=we.nextSibling,Ce=_e.nextSibling,Ee=Ce.firstChild,Ne=Ee.nextSibling,Fe=Ce.nextSibling,X=Fe.firstChild,be=X.nextSibling,Te=H.nextSibling,ye=Te.firstChild,v=ye.firstChild,P=v.nextSibling,Q=P.firstChild,$=Q.firstChild,ie=$.nextSibling,g=Q.nextSibling,q=g.firstChild,Z=q.nextSibling,ee=g.nextSibling,ke=ee.firstChild,me=ke.nextSibling,B=ee.nextSibling,V=B.firstChild,le=V.nextSibling,Be=B.nextSibling,ze=Be.firstChild,Oe=ze.nextSibling,He=Be.nextSibling,Qe=He.firstChild,mt=Qe.nextSibling,et=P.nextSibling,pt=et.firstChild,xt=pt.nextSibling,at=et.nextSibling,St=at.firstChild,kt=St.nextSibling,tt=kt.firstChild;tt.firstChild;var nt=tt.nextSibling;nt.firstChild;var it=nt.nextSibling;it.firstChild;var ct=it.nextSibling;ct.firstChild;var dt=at.nextSibling;dt.firstChild;var ut=ye.nextSibling,wt=ut.firstChild,lt=wt.nextSibling,Ct=lt.nextSibling,Ye=Ct.firstChild,ft=Ye.nextSibling,yt=ft.firstChild,ht=yt.nextSibling,Vn=ft.nextSibling,Un=Vn.firstChild,Gt=Un.nextSibling,Qt=ut.nextSibling,zn=Qt.firstChild,hn=zn.nextSibling,bn=hn.firstChild,Hn=bn.firstChild,Wn=Hn.nextSibling,$n=bn.nextSibling,Jn=$n.firstChild,Kn=Jn.nextSibling,vn=$n.nextSibling,Xn=vn.firstChild,Gn=Xn.nextSibling,Qn=vn.nextSibling,Yn=Qn.firstChild,Zn=Yn.nextSibling,Yt=hn.nextSibling;Yt.firstChild;var Zt=Yt.nextSibling;Zt.firstChild;var ei=Zt.nextSibling,ti=ei.firstChild,ni=ti.nextSibling,ii=Qt.nextSibling,li=ii.firstChild,_n=li.nextSibling,si=_n.firstChild,ri=si.nextSibling,gn=_n.nextSibling,oi=gn.firstChild,jt=oi.nextSibling;jt.firstChild;var mn=gn.nextSibling,ai=mn.firstChild,ci=ai.nextSibling,di=ci.firstChild,ui=di.nextSibling,pn=ui.nextSibling,fi=pn.firstChild,hi=fi.nextSibling,bi=pn.nextSibling,$i=bi.firstChild,vi=$i.nextSibling,xn=mn.nextSibling,_i=xn.firstChild,gi=_i.nextSibling,Sn=xn.nextSibling;return Sn.firstChild,i(K,()=>e.session.title),i(L,()=>e.session.id.slice(0,18),oe),i(ve,()=>A()||"auto",null),i(he,()=>{var f;return((f=e.status)==null?void 0:f.active_slot)||"brain"},null),i(re,()=>{var f;return(((f=e.status)==null?void 0:f.current_model)||"unknown").split("/").pop()},null),i(se,()=>{var f;return(f=e.status)!=null&&f.backend_connected?"backend online":"backend degraded"}),i(Pe,()=>{var f,p;return sn((((f=j())==null?void 0:f.delegation_savings_usd)||0)+(((p=j())==null?void 0:p.cache_savings_usd)||0))}),i(Ne,()=>{var f;return sn((f=j())==null?void 0:f.cost_usd)}),i(be,(()=>{var f=ne(()=>{var p;return!!((p=j())!=null&&p.locked)});return()=>{var p;return f()?"locked":((p=j())==null?void 0:p.status)||"active"}})()),i(ie,()=>{var f;return((f=j())==null?void 0:f.project_name)||"Current project"}),i(Z,()=>{var f;return((f=j())==null?void 0:f.status)||"active"}),i(me,()=>A()||"auto"),i(le,()=>{var f;return bt((f=j())==null?void 0:f.started_at)}),i(Oe,()=>{var f;return(f=j())!=null&&f.locked?"locked":"mutable"}),i(mt,R),i(ye,y(fe,{get when(){var f,p;return(p=(f=j())==null?void 0:f.tags)==null?void 0:p.length},get children(){var f=tr();return i(f,y(ue,{get each(){var p;return((p=j())==null?void 0:p.tags)||[]},children:p=>(()=>{var pe=dr();return i(pe,p),pe})()})),f}}),et),i(xt,()=>{var f,p;return((f=j())==null?void 0:f.recommendation)||((p=e.status)==null?void 0:p.recommended_next_action)||"Continue with the next structured step."}),i(tt,()=>{var f,p;return bt((p=(f=j())==null?void 0:f.lifecycle)==null?void 0:p.created_at)},null),i(nt,()=>{var f,p;return bt((p=(f=j())==null?void 0:f.lifecycle)==null?void 0:p.paused_at)},null),i(it,()=>{var f,p;return bt((p=(f=j())==null?void 0:f.lifecycle)==null?void 0:p.resumed_at)},null),i(ct,()=>{var f,p;return bt((p=(f=j())==null?void 0:f.lifecycle)==null?void 0:p.archived_at)},null),i(dt,y(fe,{get when(){var f,p;return(p=(f=j())==null?void 0:f.notes)==null?void 0:p.length},get fallback(){return ur()},get children(){var f=nr();return i(f,y(ue,{get each(){var p;return((p=j())==null?void 0:p.notes)||[]},children:p=>(()=>{var pe=fr();return i(pe,()=>p.text||"Untitled note"),pe})()})),f}}),null),i(lt,y(ue,{get each(){var f;return((f=o())==null?void 0:f.messages)||[]},get fallback(){return hr()},children:f=>(()=>{var p=$r(),pe=p.firstChild,Ae=pe.nextSibling;return i(pe,()=>f.role),i(Ae,()=>f.content||"(no summary)"),i(p,y(fe,{get when(){return ne(()=>!!(f.role==="assistant"&&f.results))()&&f.results.length},get children(){var je=br(),Re=je.firstChild,We=Re.firstChild,xe=We.nextSibling;xe.nextSibling;var Xe=Re.nextSibling;return i(Re,()=>f.results.length,xe),i(Xe,y(ue,{get each(){return f.results},children:Pt=>y(ln,{r:Pt})})),je}}),null),W(()=>U(p,`msg ${f.role}`)),p})()}),null),i(lt,y(fe,{get when(){return x()},get children(){var f=lr(),p=f.firstChild;p.firstChild;var pe=p.nextSibling;return i(p,(()=>{var Ae=ne(()=>{var je;return!!((je=E())!=null&&je.flow_name)});return()=>Ae()?`· ${E().flow_name}`:""})(),null),i(f,y(fe,{get when(){return Y()},get children(){var Ae=ir();return Ae.firstChild,i(Ae,()=>Y().steps.map(je=>je.tool).join(" → "),null),Ae}}),pe),i(pe,y(ue,{get each(){return u()},children:Ae=>y(ln,{r:Ae})})),f}}),null),Ye.$$keydown=f=>{f.key==="Enter"&&(f.metaKey||f.ctrlKey)&&J()},Ye.$$input=f=>a(f.currentTarget.value),ht.$$input=f=>b(f.currentTarget.value),Gt.$$click=J,i(Gt,()=>x()?"running…":"run structured flow"),i(Wn,()=>{var f;return((f=e.status)==null?void 0:f.current_provider)||"unknown"}),i(Kn,()=>{var f,p;return((f=e.status)==null?void 0:f.current_quality_tier)||((p=e.status)==null?void 0:p.active_slot)||"brain"}),i(Gn,()=>{var f,p,pe;return((p=(f=e.status)==null?void 0:f.todos)==null?void 0:p.pending)??((pe=e.home)==null?void 0:pe.totals.pending_todos)??0}),i(Zn,()=>{var f;return sn((f=e.savings)==null?void 0:f.savings_rate_per_hour)}),i(Yt,y(fe,{get when(){return z()},get fallback(){return vr()},get children(){var f=sr(),p=f.firstChild,pe=p.firstChild,Ae=pe.nextSibling,je=Ae.firstChild,Re=p.nextSibling,We=Re.nextSibling;return i(pe,()=>{var xe;return((xe=z())==null?void 0:xe.recommended_label)||"Structured plan"}),i(Ae,()=>{var xe;return Math.round(Number(((xe=z())==null?void 0:xe.confidence)||0)*100)},je),i(Re,()=>{var xe,Xe;return((xe=z())==null?void 0:xe.recommended_next_action)||((Xe=z())==null?void 0:Xe.reason)}),i(We,y(ue,{get each(){var xe;return((xe=z())==null?void 0:xe.steps)||[]},children:(xe,Xe)=>(()=>{var Pt=_r(),kn=Pt.firstChild,en=kn.nextSibling,mi=en.firstChild;return i(kn,()=>Xe()+1),i(en,()=>xe.tool,mi),i(en,()=>xe.label,null),Pt})()})),f}}),null),i(Zt,y(fe,{get when(){return u().length},get fallback(){return gr()},get children(){var f=rr();return i(f,y(ue,{get each(){return u()},children:p=>y(ln,{r:p})})),f}}),null),i(ni,()=>{var f;return(f=e.status)!=null&&f.backend_connected?"Backend reachable. Structured execution is live.":"Backend degraded. UI remains operational, but execution fidelity may be reduced."}),i(Qt,y(fe,{get when(){return C()},get children(){var f=or();return i(f,C),f}}),null),i(ri,y(ue,{get each(){return D()},children:f=>(()=>{var p=mr(),pe=p.firstChild,Ae=pe.nextSibling;return p.$$click=()=>ge(f.id),i(pe,()=>f.name),i(Ae,()=>f.pipeline.join(" → ")),W(je=>{var Re=`mode-card-btn ${f.active?"active":""}`,We=S()===`mode:${f.id}`||!f.available,xe=f.desc;return Re!==je.e&&U(p,je.e=Re),We!==je.t&&(p.disabled=je.t=We),xe!==je.a&&Le(p,"title",je.a=xe),je},{e:void 0,t:void 0,a:void 0}),p})()})),jt.addEventListener("change",f=>ce(f.currentTarget.value)),i(jt,y(ue,{get each(){return e.flows},children:f=>(()=>{var p=pr();return i(p,()=>f.name,null),i(p,()=>f.scope==="project"?" (project)":"",null),W(()=>p.value=f.id),p})()}),null),i(hi,()=>{var f,p;return(p=(f=z())==null?void 0:f.steps)!=null&&p.some(pe=>pe.tool==="tdd")?"active in plan":"inject when required"}),i(vi,()=>{var f;return((f=e.status)==null?void 0:f.thinking)||"brief"}),i(gi,y(ue,{get each(){return Cr(t())},children:f=>(()=>{var p=xr();return p.$$click=()=>te(f),i(p,()=>S()===f?"…":f),W(()=>p.disabled=S()===f),p})()})),i(Sn,y(fe,{get when(){var f,p;return(p=(f=z())==null?void 0:f.steps)==null?void 0:p.length},get fallback(){return Sr()},get children(){var f=ar();return i(f,y(ue,{get each(){var p;return((p=z())==null?void 0:p.steps)||[]},children:(p,pe)=>(()=>{var Ae=kr(),je=Ae.firstChild,Re=je.nextSibling,We=Re.firstChild,xe=We.nextSibling,Xe=xe.firstChild;return i(je,()=>pe()+1),i(We,()=>p.label),i(xe,()=>p.tool,Xe),i(xe,()=>p.reason,null),Ae})()})),f}}),null),W(()=>{var f;return Gt.disabled=x()||!r().trim()||((f=j())==null?void 0:f.locked)}),W(()=>Ye.value=r()),W(()=>ht.value=c()),W(()=>jt.value=e.session.flow_id||""),T})()}Me(["input","keydown","click"]);var jr=_("<div class=flow-hint>connecting from a node — click a target node to link, or <button class=linkish>cancel"),Pr=_('<div class=flow-editor><div class=flow-toolbar><span class=field-label></span><div class=flow-palette></div><button class=flow-save>save flow</button></div><div class=flow-canvas><svg class=flow-edges width=100% height=100%><defs><marker id=arrow markerWidth=8 markerHeight=8 refX=7 refY=3 orient=auto><path d="M0,0 L7,3 L0,6 Z"fill=var(--text-dim)></path></marker></defs></svg></div><div class=flow-preview><span class=field-label>compiled path</span><code>'),Er=_("<button class=flow-chip>+ "),Tr=_("<svg><line stroke=var(--text-dim) stroke-width=1.5 marker-end=url(#arrow)></svg>",!1,!0,!1),Or=_("<div class=flow-empty>empty graph — add nodes from the palette above"),Ar=_("<select class=flow-mini>"),Nr=_('<div style=width:156px><div class=flow-node-head><span class=flow-node-tool></span><button class=flow-node-x title=delete>×</button></div><div class=flow-node-body><select class=flow-mini><option value>always</option></select><button class="flow-mini link">⊙ connect →'),qr=_("<option>"),Br=_("<option>if ");const Ir=["compress","web-search","tdd","vibeultrax","vibeqmax","vibemax","blackbox","direct","condition"],Fr=["","cheap","medium","brain"],Dr=["needsCompression","needsWebSearch","needsTdd","needsEscalation","hasResearchSignal","hasLoopSignal","hasStressSignal","hasLongContext"],Lr=156,Mr=70;let Rr=0;function Vr(){return`n_${Date.now().toString(36)}_${(Rr++).toString(36)}`}function an(e){return{nodes:e.nodes.map(t=>({...t})),edges:e.edges.map(t=>({...t}))}}function Ur(e){const t=an(e&&e.nodes?e:{nodes:[],edges:[]});return t.nodes=t.nodes.map((n,l)=>({...n,x:n.x??30+l%4*180,y:n.y??30+Math.floor(l/4)*120})),t}function zr(e){const t=new Map(e.nodes.map(r=>[r.id,0])),n=new Map(e.nodes.map(r=>[r.id,[]]));for(const r of e.edges)n.has(r.from)&&t.has(r.to)&&(n.get(r.from).push(r.to),t.set(r.to,t.get(r.to)+1));const l=e.nodes.filter(r=>t.get(r.id)===0).map(r=>r.id),o=[];for(;l.length;){const r=l.shift();o.push(r);for(const a of n.get(r)||[])t.set(a,t.get(a)-1),t.get(a)===0&&l.push(a)}const s=new Map(e.nodes.map(r=>[r.id,r]));return o.map(r=>s.get(r)).filter(r=>r&&r.tool!=="condition").map(r=>r.tool)}function Hr(e){const[t,n]=F(Ur(e.graph)),[l,o]=F(null),[s,r]=F(null),[a,c]=F(!1),b=m=>{n(u=>m(an(u))),c(!0)},x=m=>{const u=t().nodes.length;b(h=>(h.nodes.push({id:Vr(),tool:m,x:30+u%4*180,y:30+Math.floor(u/4)*110}),h))},d=m=>b(u=>(u.nodes=u.nodes.filter(h=>h.id!==m),u.edges=u.edges.filter(h=>h.from!==m&&h.to!==m),u)),S=(m,u)=>b(h=>{const C=h.nodes.find(k=>k.id===m);return C&&(C.condition=u?{signal:u}:null),h}),O=(m,u)=>b(h=>{const C=h.nodes.find(k=>k.id===m);return C&&(C.tier=u||void 0),h}),E=m=>{const u=l();u&&u!==m&&(b(h=>(h.edges.some(C=>C.from===u&&C.to===m)||h.edges.push({from:u,to:m}),h)),o(null))},M=m=>({x:(m.x??0)+Lr/2,y:(m.y??0)+Mr/2}),Y=m=>{const u=s();if(!u)return;const h=m.currentTarget.getBoundingClientRect(),C=m.clientX-h.left-u.dx,k=m.clientY-h.top-u.dy;n(G=>{const j=an(G),z=j.nodes.find(I=>I.id===u.id);return z&&(z.x=Math.max(0,C),z.y=Math.max(0,k)),j})};return(()=>{var m=Pr(),u=m.firstChild,h=u.firstChild,C=h.nextSibling,k=C.nextSibling,G=u.nextSibling,j=G.firstChild;j.firstChild;var z=G.nextSibling,I=z.firstChild,D=I.nextSibling;return i(h,()=>e.title||"Flow graph"),i(C,y(ue,{each:Ir,children:A=>(()=>{var R=Er();return R.firstChild,R.$$click=()=>x(A),i(R,A,null),R})()})),k.$$click=()=>{e.onSave(t()),c(!1)},i(m,y(fe,{get when(){return l()},get children(){var A=jr(),R=A.firstChild,J=R.nextSibling;return J.$$click=()=>o(null),A}}),G),G.addEventListener("pointerleave",()=>r(null)),G.$$pointerup=()=>r(null),G.$$pointermove=Y,i(j,y(ue,{get each(){return t().edges},children:A=>{const R=t().nodes.find(te=>te.id===A.from),J=t().nodes.find(te=>te.id===A.to);if(!R||!J)return null;const ce=M(R),ge=M(J);return(()=>{var te=Tr();return W(T=>{var H=ce.x,w=ce.y,N=ge.x,K=ge.y;return H!==T.e&&Le(te,"x1",T.e=H),w!==T.t&&Le(te,"y1",T.t=w),N!==T.a&&Le(te,"x2",T.a=N),K!==T.o&&Le(te,"y2",T.o=K),T},{e:void 0,t:void 0,a:void 0,o:void 0}),te})()}}),null),i(G,y(ue,{get each(){return t().nodes},get fallback(){return Or()},children:A=>(()=>{var R=Nr(),J=R.firstChild,ce=J.firstChild,ge=ce.nextSibling,te=J.nextSibling,T=te.firstChild;T.firstChild;var H=T.nextSibling;return R.$$click=()=>E(A.id),J.$$pointerdown=w=>{const N=w.currentTarget.closest(".flow-canvas").getBoundingClientRect();r({id:A.id,dx:w.clientX-N.left-(A.x??0),dy:w.clientY-N.top-(A.y??0)})},i(ce,()=>A.tool),ge.$$click=w=>{w.stopPropagation(),d(A.id)},i(te,y(fe,{get when(){return A.tool==="vibeultrax"},get children(){var w=Ar();return w.$$click=N=>N.stopPropagation(),w.addEventListener("change",N=>O(A.id,N.currentTarget.value)),i(w,y(ue,{each:Fr,children:N=>(()=>{var K=qr();return K.value=N,i(K,N?`tier:${N}`:"tier:auto"),K})()})),W(()=>w.value=A.tier||""),w}}),T),T.$$click=w=>w.stopPropagation(),T.addEventListener("change",w=>S(A.id,w.currentTarget.value)),i(T,y(ue,{each:Dr,children:w=>(()=>{var N=Br();return N.firstChild,N.value=w,i(N,w,null),N})()}),null),H.$$click=w=>{w.stopPropagation(),o(A.id)},W(w=>{var N=`flow-node tool-${A.tool} ${l()===A.id?"linking":""}`,K=`${A.x??0}px`,de=`${A.y??0}px`;return N!==w.e&&U(R,w.e=N),K!==w.t&&yn(R,"left",w.t=K),de!==w.a&&yn(R,"top",w.a=de),w},{e:void 0,t:void 0,a:void 0}),W(()=>{var w;return T.value=((w=A.condition)==null?void 0:w.signal)||""}),R})()}),null),i(D,()=>zr(t()).join(" → ")||"direct"),W(()=>k.disabled=!a()),m})()}Me(["click","pointermove","pointerup","pointerdown"]);var Wr=_("<div class=project-view><div class=project-head><h2 class=session-title></h2><label class=session-flow><span class=field-label>default flow</span><select><option value>none (global default)</option></select></label></div><div class=flow-list-bar><span class=field-label>flows</span><button class=flow-chip>+ new flow"),Jr=_("<option>"),Kr=_('<span><button class=flow-pill-name></button><button class=flow-pill-x title="delete flow">×'),Xr=_("<p class=muted>Select a flow to edit its node graph, or create a new one.");const Gr={nodes:[],edges:[]};function Qr(e){const[t,n]=F(null),l=()=>e.flows.find(c=>c.id===t())||null,o=async c=>{const b=await Yi(e.project.id,{default_flow_id:c||null});e.onProjectChange(b.project)},s=async()=>{const c=await rl(`Flow ${e.flows.length+1}`,Gr,"project",e.project.id);e.onFlowsChange(),n(c.flow.id)},r=async c=>{const b=t();b&&(await ol(b,{graph:c}),e.onFlowsChange())},a=async c=>{await al(c),t()===c&&n(null),e.onFlowsChange()};return(()=>{var c=Wr(),b=c.firstChild,x=b.firstChild,d=x.nextSibling,S=d.firstChild,O=S.nextSibling;O.firstChild;var E=b.nextSibling,M=E.firstChild,Y=M.nextSibling;return i(x,()=>e.project.name),O.addEventListener("change",m=>o(m.currentTarget.value)),i(O,y(ue,{get each(){return e.flows},children:m=>(()=>{var u=Jr();return i(u,()=>m.name,null),i(u,()=>m.scope==="project"?" (project)":"",null),W(()=>u.value=m.id),u})()}),null),i(E,y(ue,{get each(){return e.flows},children:m=>(()=>{var u=Kr(),h=u.firstChild,C=h.nextSibling;return h.$$click=()=>n(m.id),i(h,()=>m.name),C.$$click=()=>a(m.id),W(()=>U(u,`flow-pill ${t()===m.id?"active":""}`)),u})()}),Y),Y.$$click=s,i(c,y(fe,{get when(){return l()},get fallback(){return Xr()},get children(){return y(Hr,{get graph(){return l().graph},get title(){return`editing: ${l().name}`},onSave:r})}}),null),W(()=>O.value=e.project.default_flow_id||""),c})()}Me(["click"]);var Nt=_("<main class=content>"),Yr=_("<nav class=nav-tabs>"),Zr=_("<div class=shell><div class=main><header class=header><div class=header-title><div><h1></h1><div class=header-subtitle></div></div><span class=version></span></div><div class=header-indicators><span></span><span>"),eo=_('<span class="indicator connected">WEB SEARCH'),to=_('<span class="indicator disabled">OFF'),no=_("<button>"),io=_("<div class=grid-2col>");function lo(){const[e,t]=F(null),[n,l]=F(null),[o,s]=F(null),[r,a]=F(null),[c,b]=F("status"),[x,d]=F(!1),[S,O]=F({kind:dl}),[E,M]=F([]),[Y,m]=F({}),[u,h]=F([]),[C,k]=F({}),[G,j]=F(!1),[z,I]=F(null),D=()=>Rn().then(t).catch(()=>{}),A=()=>Li().then(l).catch(()=>{}),R=()=>fn().then(s).catch(()=>{}),J=()=>Vi().then(a).catch(()=>{}),ce=()=>Gi().then(v=>M(v.projects)).catch(()=>{}),ge=()=>sl().then(v=>h(v.flows)).catch(()=>{}),te=()=>el().then(v=>{var Q;const P={};for(const $ of v.sessions)(P[Q=$.project_id]||(P[Q]=[])).push($);m(P)}).catch(()=>{}),T=Ki(v=>{t(v.status),l(v.savings),d(!0)});D(),A(),R(),ce(),ge(),te(),J(),Jt(T),Nn(()=>{var v,P;c()==="websearch"&&!((P=(v=o())==null?void 0:v.web_search)!=null&&P.enabled)&&b("status")});const H=()=>j(!0),w=v=>I(v),N=async v=>{j(!1);const P=await Qi(v);await ce(),await J(),k(Q=>({...Q,[P.project.id]:!0})),O({kind:"project",projectId:P.project.id})},K=async(v,P)=>{I(null);const Q=await tl(v,P||"New session");await te(),await J(),k($=>({...$,[v]:!0})),O({kind:"session",projectId:v,sessionId:Q.session.id})},de=()=>{j(!1),I(null)},L=async v=>{confirm("Delete this project and all its sessions?")&&(await Zi(v),await ce(),await te(),await J(),S().projectId===v&&O({kind:"home"}))},oe=async v=>{await il(v),await te(),await J(),S().sessionId===v&&O({kind:"home"})},ve=v=>k(P=>({...P,[v]:!P[v]})),he=v=>{m(P=>{const Q=(P[v.project_id]||[]).map($=>$.id===v.id?v:$);return{...P,[v.project_id]:Q}}),J()},re=v=>{M(P=>P.map(Q=>Q.id===v.id?v:Q)),J()},se=()=>{const v=S();return v.kind!=="session"?null:(Y()[v.projectId]||[]).find(P=>P.id===v.sessionId)||null},ae=()=>{const v=S(),P=v.kind==="project"||v.kind==="session"?v.projectId:null;return P&&E().find(Q=>Q.id===P)||null},_e=()=>{var Q,$,ie,g,q,Z;const v=(($=(Q=r())==null?void 0:Q.current_session)==null?void 0:$.project_fingerprint)||((ie=e())==null?void 0:ie.current_project_fingerprint)||"",P=((q=(g=r())==null?void 0:g.current_session)==null?void 0:q.project_name)||((Z=e())==null?void 0:Z.current_project_name)||"";return E().find(ee=>ee.fingerprint&&ee.fingerprint===v)||E().find(ee=>ee.name===P)||null},we=()=>{var P,Q;const v=((Q=(P=r())==null?void 0:P.current_session)==null?void 0:Q.session_id)||"";if(!v)return null;for(const $ of Object.values(Y())){const ie=$.find(g=>g.id===v);if(ie)return ie}return null},Pe=v=>u().filter(P=>P.scope==="global"||P.project_id===v),Ce=()=>{var v,P;return Pe(((v=_e())==null?void 0:v.id)||((P=we())==null?void 0:P.project_id)||"")},Ee=()=>{const v=e();if(!v)return{label:"API OFF",tone:"disconnected",title:"backend status unavailable"};const P=v.backend_connected??v.backendConnected,Q=v.backend_api_url||v.backend_health_url||"unknown target",$=v.backend_health_checked_at?new Date(v.backend_health_checked_at).toLocaleTimeString():null;if(P){const g=typeof v.backend_health_age_ms=="number"?` ${Math.max(0,Math.round(v.backend_health_age_ms/1e3))}s`:"",q=typeof v.backend_health_latency_ms=="number"?` ${v.backend_health_latency_ms}ms`:"";return{label:`⚡ BACKEND${g}`,tone:"connected",title:`${Q}${q}${$?` · checked ${$}`:""}`}}const ie=v.backend_health_error||(typeof v.backend_health_status=="number"?`HTTP ${v.backend_health_status}`:"unreachable");return{label:"API OFF",tone:"disconnected",title:`${Q} · ${ie}${$?` · checked ${$}`:""}`}},Ne=()=>{var v,P;return[{key:"status",label:"Status"},{key:"controls",label:"Controls"},{key:"reports",label:"Reports"},{key:"blackbox",label:"Blackbox"},{key:"websearch",label:"Web Search",visible:!!((P=(v=o())==null?void 0:v.web_search)!=null&&P.enabled)}]},Fe=()=>Ne().filter(v=>v.visible!==!1),X=()=>{var P,Q;const v=S();return v.kind==="project"?((P=ae())==null?void 0:P.name)||"Project":v.kind==="session"?((Q=se())==null?void 0:Q.title)||"Session":v.kind==="status"?"Dashboard Overview":"Home"},be=()=>{var Q,$,ie;const v=_e(),P=we();return v&&P?`${v.name} · ${P.title}`:v?v.name:(($=(Q=r())==null?void 0:Q.current_session)==null?void 0:$.project_name)||((ie=e())==null?void 0:ie.current_project_name)||"OpenCode shell"},Te=()=>{const v=_e();v&&O({kind:"project",projectId:v.id})},ye=()=>{const v=we();v&&O({kind:"session",projectId:v.project_id,sessionId:v.id})};return(()=>{var v=Zr(),P=v.firstChild,Q=P.firstChild,$=Q.firstChild,ie=$.firstChild,g=ie.firstChild,q=g.nextSibling,Z=ie.nextSibling,ee=$.nextSibling,ke=ee.firstChild,me=ke.nextSibling;return i(v,y(wl,{get projects(){return E()},get sessionsByProject(){return Y()},get expanded(){return C()},get selection(){return S()},get currentProjectId(){var B;return((B=_e())==null?void 0:B.id)||null},get currentProjectName(){var B,V,le;return((V=(B=r())==null?void 0:B.current_session)==null?void 0:V.project_name)||((le=e())==null?void 0:le.current_project_name)||null},get currentSessionId(){var B,V;return((V=(B=r())==null?void 0:B.current_session)==null?void 0:V.session_id)||null},get creatingProject(){return G()},get creatingSessionFor(){return z()},onSelect:O,onToggle:ve,onNewProject:H,onNewSession:w,onCreateProjectName:N,onCreateSessionName:K,onCancelCreate:de,onDeleteProject:L,onDeleteSession:oe}),P),i(g,X),i(q,be),i(Z,()=>{var B;return((B=e())==null?void 0:B.version)??"..."}),i(ke,()=>x()?"LIVE":"connecting"),i(me,()=>Ee().label),i(ee,(()=>{var B=ne(()=>{var V,le;return!!((le=(V=o())==null?void 0:V.web_search)!=null&&le.enabled)});return()=>B()&&eo()})(),null),i(ee,(()=>{var B=ne(()=>{var V;return((V=e())==null?void 0:V.enabled)===!1});return()=>B()&&to()})(),null),i(P,y(fe,{get when(){return S().kind==="home"},get children(){var B=Nt();return i(B,y(Hl,{get data(){return r()},get status(){return e()},get project(){return _e()},get session(){return we()},get flows(){return Ce()},onOpenStatus:()=>O({kind:"status"}),onOpenProject:Te,onOpenSession:ye,onTrinityAction:()=>{D(),A(),J()}})),B}}),null),i(P,y(fe,{get when(){return S().kind==="status"},get children(){return[(()=>{var B=Yr();return i(B,y(ue,{get each(){return Fe()},children:V=>(()=>{var le=no();return le.$$click=()=>b(V.key),i(le,()=>V.label),W(()=>U(le,`tab ${c()===V.key?"active":""}`)),le})()})),B})(),(()=>{var B=Nt();return i(B,(()=>{var V=ne(()=>c()==="status");return()=>V()&&(()=>{var le=io();return i(le,y(Gl,{get status(){return e()}}),null),i(le,y(ts,{get savings(){return n()}}),null),i(le,y(us,{get status(){return e()}}),null),i(le,y(os,{}),null),le})()})(),null),i(B,(()=>{var V=ne(()=>c()==="controls");return()=>V()&&y(ps,{get status(){return e()},onAction:()=>{D(),A(),J()}})})(),null),i(B,(()=>{var V=ne(()=>c()==="reports");return()=>V()&&y(Ps,{})})(),null),i(B,(()=>{var V=ne(()=>c()==="blackbox");return()=>V()&&y(Ms,{})})(),null),i(B,(()=>{var V=ne(()=>c()==="websearch");return()=>V()&&y(Qs,{})})(),null),B})()]}}),null),i(P,y(fe,{get when(){return ne(()=>S().kind==="project")()&&ae()},get children(){var B=Nt();return i(B,y(Qr,{get project(){return ae()},get flows(){return Pe(ae().id)},onProjectChange:re,onFlowsChange:()=>{ge(),J()}})),B}}),null),i(P,y(fe,{get when(){return ne(()=>S().kind==="session")()&&se()},get children(){var B=Nt();return i(B,y(yr,{get session(){return se()},get flows(){return Pe(se().project_id)},get status(){return e()},get capabilities(){return o()},get home(){return r()},get savings(){return n()},onSessionChange:he,onRefresh:()=>{D(),A(),J(),te()}})),B}}),null),W(B=>{var V=`indicator ${x()?"connected":"disconnected"}`,le=`indicator flash ${Ee().tone}`,Be=Ee().title;return V!==B.e&&U(ke,B.e=V),le!==B.t&&U(me,B.t=le),Be!==B.a&&Le(me,"title",B.a=Be),B},{e:void 0,t:void 0,a:void 0}),v})()}Me(["click"]);const Tn=document.getElementById("app");Tn&&Bi(()=>y(lo,{}),Tn);
|