@dreb/dashboard 2.59.0 → 2.59.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ :root{--bg:#fff;--text:#000;--border:#e0e0e0;--muted:#666;--status-running:#00871f;--status-attention:#8a5400;--status-idle:#666;--status-error:#d10041;--mono-font:"IBM Plex Mono", "Courier New", monospace;--fs-small:12px;--fs-secondary:13px;--fs-body:14px;--fs-h3:16px;--fs-h2:18px;--fs-h1:24px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius:3px;--hairline:1px solid var(--border)}@media (prefers-color-scheme:dark){:root{--bg:#000;--text:#fff;--border:#333;--muted:#999;--status-running:#00e436;--status-attention:#ffa300;--status-idle:#999;--status-error:#ff004d}}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius)}::-webkit-scrollbar-thumb:hover{background:var(--muted)}::-webkit-scrollbar-corner{background:0 0}body{background:var(--bg);color:var(--text);font-family:var(--mono-font);font-size:var(--fs-body);overflow-wrap:break-word;line-height:1.6;overflow-x:hidden}h1{font-size:var(--fs-h1);font-weight:500}h2{font-size:var(--fs-h2);font-weight:500}h3{font-size:var(--fs-h3);font-weight:500}a{color:var(--text);cursor:pointer}a:hover{color:var(--muted)}code,pre{font-family:var(--mono-font);font-size:var(--fs-secondary)}pre{border:var(--hairline);border-radius:var(--radius);padding:var(--space-3);white-space:pre-wrap;word-break:break-word;overflow-x:auto}::placeholder{color:var(--muted);opacity:1}:focus-visible{outline:1px solid var(--text);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:var(--fs-small)}.container{width:100%;max-width:1200px;padding:var(--space-4) var(--space-5);margin:0 auto}.topbar{border-bottom:var(--hairline);padding-top:env(safe-area-inset-top,0px)}.topbar-inner{max-width:1200px;padding:var(--space-3) var(--space-5);align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:0 auto;display:flex}.wordmark{font-size:var(--fs-h2);letter-spacing:.04em;font-weight:600;text-decoration:none}.topbar nav{gap:var(--space-4);align-items:center;display:flex}.topbar nav a{padding:var(--space-1) 0;border-bottom:1px solid #0000;text-decoration:none}.topbar nav a:hover{color:var(--text);border-bottom-color:var(--text)}.topbar nav a[aria-current=page]{border-bottom-color:var(--text)}.topbar-spacer{margin-left:auto}.connection-indicator{align-items:center;gap:var(--space-2);display:inline-flex}footer{border-top:var(--hairline);margin-top:var(--space-7);padding:var(--space-4) 0;font-size:var(--fs-secondary);color:var(--muted)}.btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);cursor:pointer;font-size:var(--fs-body);text-decoration:none;transition:border-color .2s;display:inline-flex}.btn:hover{border-color:var(--text);color:var(--text)}.btn-primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn-primary:hover{color:var(--bg)}.btn-danger:hover{border-color:var(--status-error);color:var(--status-error)}.btn-small{padding:2px var(--space-2);font-size:var(--fs-small)}.chip{padding:1px var(--space-2);border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-small);white-space:nowrap;align-items:center;gap:6px;line-height:1.5;display:inline-flex}.chip .dot{font-size:10px}.mode-badge{min-width:0;max-width:min(16rem,100%)}.mode-badge-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chip-running{border-color:var(--status-running);color:var(--status-running)}.chip-attention{background:var(--status-attention);border-color:var(--status-attention);color:var(--bg);font-weight:600}.chip-idle{border-color:var(--border);color:var(--status-idle)}.chip-error{border-color:var(--status-error);color:var(--status-error)}.chip-plain{border-color:var(--border);color:var(--muted)}.card{border:var(--hairline);border-radius:var(--radius);padding:var(--space-4);transition:border-color .2s}a.card{text-decoration:none;display:block}.card:hover{border-color:var(--text);color:var(--text)}.input,.textarea,.select{width:100%;padding:var(--space-2) var(--space-3);border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:var(--fs-body);transition:border-color .2s}.input:hover,.textarea:hover,.select:hover{border-color:var(--text)}.textarea{resize:vertical;min-height:72px;line-height:1.6}.field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field>label{font-size:var(--fs-secondary)}.field>.hint{font-size:var(--fs-small);color:var(--muted)}.toggle{border:var(--hairline);border-radius:var(--radius);display:inline-flex;overflow:hidden}.toggle span{padding:2px var(--space-3);font-size:var(--fs-small);color:var(--muted)}.toggle .on{background:var(--text);color:var(--bg)}.table{border-collapse:collapse;width:100%;font-size:var(--fs-body)}.table th{text-align:left;font-weight:500;font-size:var(--fs-small);color:var(--muted);padding:var(--space-2) var(--space-3);border-bottom:var(--hairline)}.table td{padding:var(--space-2) var(--space-3);border-bottom:var(--hairline)}.modal-backdrop{padding:var(--space-4);background:#80808040;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--text);border-radius:var(--radius);width:100%;max-width:480px;padding:var(--space-5)}.modal h3{margin-bottom:var(--space-3)}.modal-actions{gap:var(--space-2);margin-top:var(--space-5);justify-content:flex-end;display:flex}.row{align-items:center;gap:var(--space-2);display:flex}.stack{gap:var(--space-2);flex-direction:column;display:flex}.hidden{display:none}:root{--syntax-comment:green;--syntax-keyword:#00f;--syntax-string:#a31515;--syntax-number:#098658;--syntax-function:#795e26;--syntax-type:#267f99;--syntax-variable:#001080;--syntax-operator:#000;--syntax-punctuation:#000}@media (prefers-color-scheme:dark){:root{--syntax-comment:#6a9955;--syntax-keyword:#569cd6;--syntax-string:#ce9178;--syntax-number:#b5cea8;--syntax-function:#dcdcaa;--syntax-type:#4ec9b0;--syntax-variable:#9cdcfe;--syntax-operator:#d4d4d4;--syntax-punctuation:#d4d4d4}}html,body,#root{width:100%;min-width:0;max-width:100%}html,body{height:100%}#root{flex-direction:column;height:100%;display:flex}.screen-fill{flex-direction:column;flex:1;min-height:0;display:flex}.fleet-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin:var(--space-5) 0 var(--space-6);flex-wrap:wrap;display:flex}.live-sessions{margin-bottom:var(--space-6)}.past-sessions-head{font-size:var(--fs-h3);color:var(--muted);border-bottom:var(--hairline);padding-bottom:var(--space-2);margin-bottom:var(--space-4)}.project-group{margin-bottom:var(--space-5)}.group-head{align-items:baseline;gap:var(--space-3);padding-bottom:var(--space-1);margin-bottom:var(--space-1);flex-wrap:wrap;display:flex}.group-head h2,.group-head h3{font-size:var(--fs-secondary);font-weight:600}.group-head .btn{margin-left:auto}.session-grid{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.session-card{border:var(--hairline);border-radius:var(--radius);min-width:0;padding:var(--space-4);gap:var(--space-2);flex-direction:column;transition:border-color .2s;display:flex}.session-card:hover{border-color:var(--text)}.session-card.attention{border-color:var(--status-attention)}.session-card.error{border-color:var(--status-error)}.session-title{justify-content:space-between;align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.session-title .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.session-project{font-size:var(--fs-small);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attention-reason{font-weight:600;font-size:var(--fs-secondary)}.error-reason{color:var(--status-error);font-size:var(--fs-secondary)}.activity{font-size:var(--fs-secondary);color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.subagents{border-left:var(--hairline);padding-left:var(--space-3);font-size:var(--fs-small);flex-direction:column;gap:2px;display:flex}.subagents .agent-line{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.subagents .agent-line .live{color:var(--status-running)}.session-meta{font-size:var(--fs-small);color:var(--muted);gap:var(--space-1);flex-wrap:wrap;display:flex}.session-actions{gap:var(--space-2);padding-top:var(--space-2);flex-wrap:wrap;margin-top:auto;display:flex}.disk-row{align-items:center;gap:var(--space-3);border-bottom:var(--hairline);font-size:var(--fs-secondary);padding:2px 0;display:flex}.disk-row .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.disk-row .meta{color:var(--muted);font-size:var(--fs-small);white-space:nowrap;margin-left:auto}.disk-row .actions{gap:var(--space-2);flex-shrink:0;display:flex}.disk-more{margin-top:var(--space-1);font-size:var(--fs-small);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline;display:inline-block}.disk-more:hover{color:var(--text)}.empty-state{border:var(--hairline);border-radius:var(--radius);padding:var(--space-6);text-align:center;color:var(--muted);margin-top:var(--space-6)}.session-screen{flex-direction:column;width:100%;min-width:0;max-width:100%;height:100%;display:flex;overflow:hidden}.session-bar{border-bottom:var(--hairline);padding-top:env(safe-area-inset-top,0px);flex-shrink:0}.session-bar-inner{width:100%;min-width:0;max-width:960px;padding:var(--space-2) var(--space-4);align-items:center;gap:var(--space-3);flex-wrap:wrap;margin:0 auto;display:flex}.session-bar .back{white-space:nowrap;text-decoration:none}.session-bar .title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.session-bar .project,.session-bar .agent-type{color:var(--muted);font-size:var(--fs-small);white-space:nowrap}.session-bar .right{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;margin-left:auto;display:flex}.session-connection-indicator{flex-wrap:wrap;flex:0 auto;min-width:0}.session-connection-indicator .chip,.session-connection-indicator .btn{font-size:var(--fs-small);padding:1px var(--space-2)}.session-info-bar{font-size:var(--fs-small);color:var(--muted);justify-content:space-between;padding-top:0}.session-info-left{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.session-info-right{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;margin-left:auto;display:flex}.stats-trigger{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.stats-popover{right:max(var(--space-4), calc((100vw - 960px) / 2 + var(--space-4)));z-index:10;border:var(--hairline);border-radius:var(--radius);background:var(--bg);padding:var(--space-3);min-width:280px;position:absolute;top:78px;box-shadow:0 12px 32px #0000002e}.stats-grid{gap:var(--space-1) var(--space-3);font-size:var(--fs-small);grid-template-columns:1fr auto;display:grid}.stats-grid span{color:var(--muted)}.session-info-right span+span:before{content:"·";margin-right:var(--space-2);color:var(--muted)}.switcher{min-width:0;padding:1px var(--space-2);border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-small);background:var(--bg);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-family:inherit;transition:border-color .2s;display:inline-flex}.switcher:hover{border-color:var(--text)}.switcher .label{color:var(--muted)}.switcher .value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.model-switcher{max-width:min(340px,45vw)}.session-bar.collapsed{background:var(--bg)}.session-bar-main .chrome-toggle{margin-left:auto}.chrome-toggle{border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--muted);font:inherit;font-size:var(--fs-small);padding:1px var(--space-2);cursor:pointer;white-space:nowrap}.chrome-toggle:hover{border-color:var(--text);color:var(--text)}.chat{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.chat-inner{max-width:960px;padding:var(--space-4);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.assistant-turn{border-left:var(--hairline);padding-left:var(--space-3);gap:var(--space-3);flex-direction:column;display:flex}.entry{min-width:0}.entry-head{font-size:var(--fs-small);color:var(--muted);margin-bottom:var(--space-1);gap:var(--space-2);align-items:baseline;display:flex}.entry-action{color:var(--muted);font:inherit;font-size:var(--fs-small);cursor:pointer;opacity:.65;background:0 0;border:none;padding:0}.entry-action:hover{opacity:1;text-decoration:underline}.skill-badge,.queued-kind{border:var(--hairline);border-radius:var(--radius);padding:0 var(--space-1);font-size:var(--fs-small);color:var(--muted)}.entry.user{align-self:flex-end;max-width:85%}.entry.user .entry-body{border:1px solid var(--text);border-radius:var(--radius);padding:var(--space-2) var(--space-3);white-space:pre-wrap}.entry.user .entry-head{justify-content:flex-end}.entry.user>.tool-images{margin-top:var(--space-2)}.entry.assistant{max-width:100%}.entry.assistant .entry-body{white-space:normal}.assistant-error{color:var(--status-error);font-size:var(--fs-secondary);margin:var(--space-2) 0 0;white-space:pre-wrap;font-weight:500}.markdown-body{color:var(--text)}.markdown-body,.markdown-body *{-webkit-text-fill-color:currentColor}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body pre,.markdown-body blockquote,.markdown-body table{margin:0 0 var(--space-2)}.markdown-body :last-child{margin-bottom:0}.markdown-body ul,.markdown-body ol{padding-left:var(--space-5)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{font-size:var(--fs-h3);margin:var(--space-2) 0 var(--space-1);font-weight:500}.markdown-body code{border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-secondary);padding:0 4px}.markdown-body pre{background:var(--bg);margin-top:var(--space-1)}.markdown-body pre code{border:none;padding:0}.markdown-body a{text-decoration:underline}.markdown-body table{border-collapse:collapse;width:100%;font-size:var(--fs-secondary)}.markdown-body th,.markdown-body td{border:var(--hairline);padding:var(--space-1) var(--space-2);text-align:left}.markdown-body blockquote{border-left:var(--hairline);padding-left:var(--space-3);color:var(--muted)}.entry-body code{border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-secondary);padding:0 4px}details.thinking{border-left:var(--hairline);padding-left:var(--space-3);margin-bottom:var(--space-3)}details.thinking summary{cursor:pointer;font-size:var(--fs-small);color:var(--muted);-webkit-user-select:none;user-select:none;list-style:none}details.thinking summary:before{content:"▸ "}details.thinking[open] summary:before{content:"▾ "}details.thinking .thinking-body{color:var(--muted);font-size:var(--fs-secondary);padding-top:var(--space-1);white-space:pre-wrap}.tool{border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-secondary)}.tool summary{cursor:pointer;-webkit-user-select:none;user-select:none;gap:var(--space-2);padding:var(--space-1) var(--space-3);align-items:baseline;list-style:none;display:flex}.tool summary:before{content:"▸";color:var(--muted)}.tool[open] summary:before{content:"▾"}.tool .tool-name{font-weight:600}.tool .tool-arg{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tool .tool-status{white-space:nowrap;font-size:var(--fs-small);color:var(--muted);margin-left:auto}.tool .tool-status.running{color:var(--status-running)}.tool .tool-status.error{color:var(--status-error)}.tool .tool-command{border-top:var(--hairline);padding:var(--space-2) var(--space-3) 0;overflow-x:auto}.tool .tool-command code{border:var(--hairline);border-radius:var(--radius);padding:var(--space-1) var(--space-2);white-space:pre-wrap;display:block}.tool .tool-input{border-top:var(--hairline);padding:var(--space-2) var(--space-3);overflow-x:auto}.tool .tool-input-label{font-size:var(--fs-small);color:var(--muted);margin-bottom:var(--space-1);display:block}.tool .tool-input pre{font-size:var(--fs-small);white-space:pre-wrap;border:none;padding:0}.tool .suggested-command{margin-top:var(--space-1)}.tool .suggested-command code{border:var(--hairline);border-radius:var(--radius);padding:1px var(--space-2)}.tool .tool-result{border-top:var(--hairline);padding:var(--space-2) var(--space-3);overflow-x:auto}.tool-output-truncated,.transcript-window-control{color:var(--muted);font-size:var(--fs-small);margin-bottom:var(--space-2)}.transcript-window-control{text-align:center}.tool .tool-command+.tool-result,.tool .tool-input+.tool-result{border-top:none}.tool-images{gap:var(--space-3);flex-wrap:wrap;display:flex}.tool-image-item{gap:var(--space-2);max-width:100%;display:grid}.tool-image-button{appearance:none;color:inherit;cursor:zoom-in;text-align:left;background:0 0;border:0;padding:0}.tool-image-button:disabled{cursor:default;opacity:1}.tool-image{object-fit:contain;border:var(--hairline);border-radius:var(--radius);width:auto;max-width:100%;height:auto;max-height:480px;display:block}.tool-image-placeholder{place-items:center;gap:var(--space-2);min-width:min(320px,75vw);min-height:140px;padding:var(--space-3);border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface-raised);color:var(--muted);font-size:var(--fs-small);display:grid}.tool-image-actions{justify-content:space-between;align-items:center;gap:var(--space-2);color:var(--muted);font-size:var(--fs-small);flex-wrap:wrap;display:flex}.tool-image-error{color:var(--status-error);font-size:var(--fs-small);margin:0}.image-lightbox{z-index:1000;padding:var(--space-4);place-items:center;display:grid;position:fixed;inset:0}.image-lightbox-backdrop{background:#000000c7;border:0;width:100%;height:100%;position:absolute;inset:0}.image-lightbox-content{justify-items:end;gap:var(--space-2);max-width:100%;max-height:100%;display:grid;position:relative}.image-lightbox-content img{max-width:calc(100vw - 2 * var(--space-4));object-fit:contain;border-radius:var(--radius);max-height:calc(100vh - 5rem)}.tool .tool-result pre{font-size:var(--fs-small);border:none;padding:0}.tool .tool-result pre,.tool .tool-input pre{max-height:340px;overflow-y:auto}.hljs{color:var(--text);background:0 0}.hljs-comment,.hljs-quote{color:var(--syntax-comment)}.hljs-keyword,.hljs-selector-tag{color:var(--syntax-keyword)}.hljs-number,.hljs-literal{color:var(--syntax-number)}.hljs-string,.hljs-doctag{color:var(--syntax-string)}.hljs-function,.hljs-title,.hljs-title.function_,.hljs-section,.hljs-name{color:var(--syntax-function)}.hljs-type,.hljs-class,.hljs-title.class_,.hljs-built_in{color:var(--syntax-type)}.hljs-attr,.hljs-variable,.hljs-variable.language_,.hljs-params,.hljs-property{color:var(--syntax-variable)}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:var(--syntax-keyword)}.hljs-operator{color:var(--syntax-operator)}.hljs-punctuation{color:var(--syntax-punctuation)}.hljs-subst{color:var(--text)}.diff-add{color:var(--status-running)}.diff-del{color:var(--status-error)}.entry.summary-card .entry-body{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);color:var(--muted);font-size:var(--fs-secondary)}.entry.summary-card summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted);font-size:var(--fs-secondary);list-style:none}.entry.summary-card summary:before{content:"▸ "}.entry.summary-card details[open] summary:before{content:"▾ "}.entry.custom-card .entry-body,.entry.agent-result-card details{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary)}.entry.agent-result-card summary{cursor:pointer;-webkit-user-select:none;user-select:none;gap:var(--space-2);color:var(--muted);align-items:baseline;list-style:none;display:flex}.entry.agent-result-card summary:before{content:"▸ "}.entry.agent-result-card details[open] summary:before{content:"▾ "}.agent-result-header{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.entry.agent-result-card .entry-body{margin-top:var(--space-2)}.streaming-cursor:after{content:"▌";color:var(--status-running)}.dock{border-top:var(--hairline);flex-shrink:0}.dock.collapsed{background:var(--bg)}.dock-collapse-row{max-width:960px;padding:var(--space-1) calc(var(--space-4) + env(safe-area-inset-right,0px)) calc(var(--space-1) + env(safe-area-inset-bottom,0px)) calc(var(--space-4) + env(safe-area-inset-left,0px));align-items:center;gap:var(--space-3);font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;margin:0 auto;display:flex}.dock-collapsed-hint{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.dock-inner{max-width:960px;padding:var(--space-3) calc(var(--space-4) + env(safe-area-inset-right,0px)) calc(var(--space-3) + env(safe-area-inset-bottom,0px)) calc(var(--space-4) + env(safe-area-inset-left,0px));gap:var(--space-2);flex-direction:column;margin:0 auto;display:flex}.tasks{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary)}.tasks summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted);font-size:var(--fs-small);list-style:none}.tasks summary:before{content:"▸ "}.tasks[open] summary:before{content:"▾ "}.tasks ul{padding-top:var(--space-1);list-style:none}.tasks .done{color:var(--muted)}.tasks .active{font-weight:600}.subagents .subagent-list{padding-top:var(--space-1);gap:var(--space-1);flex-direction:column;max-height:10rem;list-style:none;display:flex;overflow-y:auto}.subagents .agent-chip{border:var(--hairline);border-radius:var(--radius);padding:1px var(--space-2);font-size:var(--fs-small);background:var(--bg);color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:6px;width:100%;font-family:inherit;transition:border-color .2s;display:flex}.subagents .agent-chip:hover{border-color:var(--text)}.subagents .agent-chip .live{color:var(--status-running)}.subagents .agent-chip .done{color:var(--muted)}.subagents .agent-chip .task{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.status-line{align-items:center;gap:var(--space-3);font-size:var(--fs-secondary);flex-wrap:wrap;display:flex}.status-line .working{color:var(--status-running)}.status-line .warning{color:var(--status-attention)}.status-line .error{color:var(--status-error)}.status-line .queued{color:var(--muted);font-size:var(--fs-small)}.status-line .btn{margin-left:auto}.status-line .inline-stop{margin-left:var(--space-2)}.composer{gap:var(--space-2);flex-direction:column;display:flex;position:relative}.queued-message-row{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2);align-items:center;gap:var(--space-2);font-size:var(--fs-small);flex-wrap:wrap;display:flex}.queued-chip{align-items:baseline;gap:var(--space-1);text-overflow:ellipsis;white-space:nowrap;max-width:240px;color:var(--muted);display:inline-flex;overflow:hidden}.attachment-strip{gap:var(--space-2);flex-wrap:wrap;display:flex}.attachment-thumb,.attachment-file{border:var(--hairline);border-radius:var(--radius);padding:2px;position:relative}.attachment-file{align-items:baseline;gap:var(--space-2);padding:2px var(--space-2);font-size:var(--fs-small);overflow-wrap:anywhere;max-width:100%;display:inline-flex}.attachment-thumb img{object-fit:cover;width:72px;height:54px;display:block}.attachment-thumb button,.attachment-file button{border:var(--hairline);background:var(--bg);color:var(--text);cursor:pointer;border-radius:999px;position:absolute;top:-8px;right:-8px}.command-popover{left:0;right:0;bottom:calc(100% + var(--space-2));border:var(--hairline);border-radius:var(--radius);background:var(--bg);padding:var(--space-1);z-index:5;max-height:260px;position:absolute;overflow-y:auto}.command-option{background:var(--bg);width:100%;color:var(--text);font:inherit;text-align:left;padding:var(--space-2);border-radius:var(--radius);gap:var(--space-2);cursor:pointer;border:none;grid-template-columns:minmax(120px,max-content) 1fr max-content;align-items:baseline;display:grid}.command-option:hover,.command-option.selected{background:var(--text);color:var(--bg)}.command-name{font-weight:500}.command-description{color:var(--muted);font-size:var(--fs-small);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.command-source{border:var(--hairline);border-radius:var(--radius);color:var(--muted);font-size:var(--fs-small);padding:0 var(--space-1)}.command-option.selected .command-description,.command-option:hover .command-description,.command-option.selected .command-source,.command-option:hover .command-source{color:var(--bg)}.composer textarea{border:var(--hairline);border-radius:var(--radius);background:var(--bg);width:100%;color:var(--text);padding:var(--space-2) var(--space-3);font-size:var(--fs-body);resize:vertical;min-height:60px;max-height:40vh;font-family:inherit;line-height:1.6;transition:border-color .2s;overflow-y:hidden}.composer textarea:hover,.composer textarea:focus{border-color:var(--text);outline:none}.hidden-file-input{display:none}.composer-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.mode-toggle{border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-small);display:inline-flex;overflow:hidden}.mode-toggle button{background:var(--bg);color:var(--muted);padding:2px var(--space-3);cursor:pointer;border:none;font-family:inherit}.mode-toggle button.selected{background:var(--text);color:var(--bg)}.composer-row .send{margin-left:auto}.ghost-suggest{font-size:var(--fs-small);color:var(--muted);cursor:pointer;background:0 0;border:none;font-family:inherit}.ghost-suggest .key{border:var(--hairline);border-radius:var(--radius);padding:0 4px}.readonly-note{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary);color:var(--muted)}.banner-region{padding-top:var(--space-2);gap:var(--space-2);overscroll-behavior:contain;flex-direction:column;display:flex}.banner{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary);gap:var(--space-2);background:var(--bg);align-items:flex-start;display:flex}.banner.warning{border-color:var(--status-attention)}.banner.error{border-color:var(--status-error)}.banner-glyph{flex:none}.banner-text{overflow-wrap:anywhere;white-space:pre-wrap;flex:auto;min-width:0;max-height:40vh;overflow-y:auto}.banner-actions{gap:var(--space-2);flex-wrap:wrap;flex:none;display:flex}.banner-dismiss{flex:none}.widget-block{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-small);color:var(--muted);white-space:pre-wrap}.toast-region{top:var(--space-2);gap:var(--space-2);z-index:50;flex-direction:column;width:max-content;max-width:min(560px,100vw - 2rem);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{border:var(--hairline);border-radius:var(--radius);background:var(--bg);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary);gap:var(--space-2);align-items:baseline;display:flex}.toast.warning{border-color:var(--status-attention)}.toast.error{border-color:var(--status-error)}.files-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin:var(--space-5) 0 var(--space-4);flex-wrap:wrap;display:flex}.crumbs{font-size:var(--fs-secondary);flex-wrap:wrap;align-items:baseline;gap:2px;display:flex}.crumbs .sep{color:var(--muted);margin:0 2px}.scope-note{color:var(--muted);font-size:var(--fs-small);margin-top:var(--space-1)}.context-trust{border:var(--hairline);border-radius:var(--radius);padding:var(--space-3);margin-bottom:var(--space-4);font-size:var(--fs-secondary)}.context-trust p{color:var(--muted);font-size:var(--fs-small);margin:var(--space-1) 0 var(--space-2);overflow-wrap:anywhere}.context-trust-impact{margin-bottom:0!important}.context-trust-warning{color:var(--status-attention)}.context-trust-warning a{color:inherit}.head-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.places{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:baseline;display:flex}.places .label{color:var(--muted);font-size:var(--fs-small)}.place-chip{border:var(--hairline);border-radius:var(--radius);padding:1px var(--space-2);font-size:var(--fs-small);background:var(--bg);color:var(--text);cursor:pointer;font-family:inherit;text-decoration:none;transition:border-color .2s}.place-chip:hover{border-color:var(--text)}.file-table{border-collapse:collapse;width:100%;font-size:var(--fs-secondary)}.file-table th{text-align:left;font-size:var(--fs-small);color:var(--muted);border-bottom:var(--hairline);padding:var(--space-1) var(--space-2);font-weight:400}.file-table td{border-bottom:var(--hairline);padding:var(--space-2)}.file-table .name{color:var(--text);cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:none}.file-table .name .icon{color:var(--muted);margin-right:var(--space-1)}.file-table .meta{color:var(--muted);font-size:var(--fs-small);white-space:nowrap}.file-table .actions{text-align:right}.drop-zone{border:1px dashed var(--border);border-radius:var(--radius);padding:var(--space-4);text-align:center;color:var(--muted);font-size:var(--fs-small);margin-top:var(--space-4);transition:border-color .2s}.drop-zone.active{border-color:var(--text);color:var(--text)}.upload-warning{font-size:var(--fs-small);color:var(--muted);margin-top:var(--space-2)}.settings-wrap{max-width:960px}.settings-intro{color:var(--muted);font-size:var(--fs-secondary);margin:var(--space-2) 0 var(--space-5)}.settings-section{margin-bottom:var(--space-6)}.settings-section h2{font-size:var(--fs-h3);border-bottom:var(--hairline);padding-bottom:var(--space-2);margin-bottom:var(--space-3)}.setting-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2) 0;display:flex}.setting-label{flex-direction:column;gap:2px;min-width:0;display:flex}.setting-label .name{font-size:var(--fs-secondary)}.setting-label .hint{font-size:var(--fs-small);color:var(--muted)}.setting-control{min-width:0;max-width:100%}.agent-context-row .setting-label{flex-shrink:0}.setting-control select,.setting-control input{border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);font-family:inherit;font-size:var(--fs-secondary);padding:2px var(--space-2);max-width:100%}.checkbox-control{align-items:center;gap:var(--space-2);font-size:var(--fs-secondary);display:inline-flex}.checkbox-control input{width:auto}.settings-error{border:1px solid var(--status-error);border-radius:var(--radius);color:var(--status-error);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary);margin-bottom:var(--space-4);white-space:pre-wrap}.settings-warning{border:1px solid var(--status-attention);border-radius:var(--radius);color:var(--status-attention);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary);margin-bottom:var(--space-4);white-space:pre-wrap}.scoped-models-editor:focus{outline:none}.scoped-models-context{gap:var(--space-1);margin:var(--space-3) 0;font-size:var(--fs-secondary);display:grid}.scoped-models-context select,.scoped-models-toolbar input{border:var(--hairline);border-radius:var(--radius);background:var(--bg);min-width:0;max-width:100%;color:var(--text);font:inherit;padding:var(--space-2)}.scoped-models-toolbar,.scoped-models-actions{align-items:center;gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.scoped-models-toolbar input{flex:260px}.scoped-models-grid{gap:var(--space-4);min-width:0;display:grid}.scoped-models-grid h3{font-size:var(--fs-secondary);margin-bottom:var(--space-2)}.scoped-models-order,.scoped-models-available{min-width:0}.scoped-model-order-row,.scoped-model-choice,.scoped-model-provider-heading{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--fs-secondary);display:flex}.scoped-model-order-row{border-bottom:var(--hairline);padding:var(--space-1) 0;justify-content:space-between}.scoped-model-order-row>span,.scoped-model-choice .model-id,.scoped-model-choice .model-name,.scoped-model-provider-heading span{overflow-wrap:anywhere;min-width:0}.scoped-model-choice .model-name{color:var(--muted);font-size:var(--fs-small)}.scoped-model-move-controls{gap:var(--space-1);flex-shrink:0;display:flex}.scoped-model-move-controls button{border:var(--hairline);border-radius:var(--radius);background:var(--bg-elevated);min-width:36px;min-height:36px;color:var(--text)}.scoped-model-provider{border-bottom:var(--hairline);padding:var(--space-2) 0}.scoped-model-provider-heading{margin-bottom:var(--space-1);font-weight:600}.scoped-model-choice{padding:var(--space-1) 0 var(--space-1) var(--space-4)}.scoped-model-choice input,.scoped-model-provider-heading input{flex:none}@media (width>=701px){.scoped-models-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (width<=700px){.scoped-model-move-controls button{min-width:44px;min-height:44px}.scoped-model-choice{min-height:44px}}.model-picker-button{white-space:normal;overflow-wrap:anywhere;text-align:left;min-width:0;max-width:min(100%,520px)}.agent-model-row{gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--hairline);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:start;display:grid}.agent-model-summary{flex-direction:column;gap:2px;min-width:0;display:flex}.agent-model-name{font-size:var(--fs-secondary);font-weight:600}.agent-model-description{color:var(--muted);font-size:var(--fs-small)}.agent-model-fallbacks{gap:var(--space-1);flex-wrap:wrap;min-width:0;display:flex}.agent-model-chip{border:var(--hairline);border-radius:var(--radius);color:var(--muted);font-size:var(--fs-small);padding:0 var(--space-1);overflow-wrap:anywhere;white-space:normal;min-width:0;max-width:100%}.agent-model-editor{gap:var(--space-2);border:var(--hairline);border-radius:var(--radius);padding:var(--space-2);flex-direction:column;grid-column:1/-1;display:flex}.agent-model-entry{justify-content:space-between;gap:var(--space-2);font-size:var(--fs-secondary);align-items:center;min-width:0;display:flex}.agent-model-entry>span:first-child{overflow-wrap:anywhere;min-width:0}.agent-model-entry-actions{gap:var(--space-1);flex-shrink:0;display:flex}.context-trust-subsection{margin:var(--space-4) 0}.context-trust-subsection h3{font-size:var(--fs-secondary);margin-bottom:var(--space-1)}.context-trust-global-warning,.trusted-context-empty{margin:var(--space-3) 0}.trusted-context-folder-row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--hairline);font-size:var(--fs-secondary);display:flex}.trusted-context-folder-row code{overflow-wrap:anywhere;min-width:0}.trusted-context-folder-row .meta{color:var(--muted);font-size:var(--fs-small);margin-left:auto}.trusted-context-folder-row .btn{flex-shrink:0}.trusted-context-folder-add{align-items:center;gap:var(--space-2);margin-top:var(--space-3);display:flex}.trusted-context-folder-add label{font-size:var(--fs-small);white-space:nowrap}.trusted-context-folder-add input{border:var(--hairline);border-radius:var(--radius);background:var(--bg);min-width:0;color:var(--text);font-family:inherit;font-size:var(--fs-secondary);padding:2px var(--space-2);flex:1}.settings-footnote{margin-top:calc(-1 * var(--space-3));margin-bottom:var(--space-5)}.appearance-block{margin-bottom:var(--space-4)}.appearance-heading-row .name{font-weight:600}.theme-gallery{gap:var(--space-3);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.theme-card{gap:var(--space-2);border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:var(--space-2);text-align:left;cursor:pointer;flex-direction:column;font-family:inherit;transition:border-color .2s;display:flex}.theme-card:hover{border-color:var(--muted)}.theme-card.active{border-color:var(--text)}.theme-card-preview{gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2);flex-direction:column;display:flex;overflow:hidden}.theme-card-swatch{flex-direction:column;gap:2px;min-width:0;display:flex}.theme-card-name{font-size:var(--fs-secondary);color:var(--text);font-weight:600}.theme-card-muted{font-size:var(--fs-small);color:var(--muted)}.theme-card-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.theme-card-code{font-size:var(--fs-small);white-space:pre;margin:0;font-family:IBM Plex Mono,Courier New,monospace;line-height:1.4;overflow:hidden}.theme-card-code .hljs{background:0 0;padding:0}.theme-card-footer{justify-content:space-between;align-items:baseline;gap:var(--space-2);font-size:var(--fs-small);display:flex}.theme-card-title{font-size:var(--fs-secondary);color:var(--text)}.theme-card-state{color:var(--muted)}.theme-card.active .theme-card-state{color:var(--text)}@media (width<=700px){.theme-gallery{grid-template-columns:1fr}}.device-row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--hairline);font-size:var(--fs-secondary);display:flex}.device-row .meta{color:var(--muted);font-size:var(--fs-small);margin-left:auto}.this-device{border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-small);color:var(--muted);padding:0 var(--space-1);margin-left:var(--space-1)}.pair-wrap{min-height:100%;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.pair-card{border:var(--hairline);border-radius:var(--radius);width:100%;max-width:460px;padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.pair-card h1{font-size:var(--fs-h2)}.pair-card .sub{color:var(--muted);font-size:var(--fs-secondary)}.identity{gap:var(--space-2);border:var(--hairline);border-radius:var(--radius);padding:var(--space-3);font-size:var(--fs-secondary);flex-direction:column;display:flex}.identity .row-line{justify-content:space-between;gap:var(--space-3);display:flex}.identity .k{color:var(--muted);font-size:var(--fs-small)}.pin-input{text-align:center;width:100%;font-size:var(--fs-h1);letter-spacing:.5em;border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:var(--space-2);font-family:inherit}.pin-input:focus{border-color:var(--text);outline:none}.pin-hint{font-size:var(--fs-small);color:var(--muted)}.security-note{border-top:var(--hairline);padding-top:var(--space-3);gap:var(--space-2);font-size:var(--fs-small);color:var(--muted);flex-direction:column;display:flex}.pair-error{color:var(--status-error);font-size:var(--fs-secondary)}.denied-card{border:1px solid var(--status-error);border-radius:var(--radius);width:100%;max-width:460px;padding:var(--space-6);gap:var(--space-3);flex-direction:column;display:flex}.field{gap:var(--space-1);flex-direction:column;display:flex}.field label{font-size:var(--fs-small);color:var(--muted)}.field input,.field textarea,.field select{border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);font-family:inherit;font-size:var(--fs-secondary);padding:var(--space-2)}.field input:focus,.field textarea:focus{border-color:var(--text);outline:none}.ask-wizard{gap:var(--space-2);margin:var(--space-3) 0;padding:var(--space-3);border:var(--hairline);border-left:3px solid var(--status-attention);border-radius:var(--radius);background:color-mix(in srgb, var(--status-attention) 6%, var(--surface,transparent));flex-direction:column;display:flex}.ask-wizard-header{align-items:baseline;gap:var(--space-2);display:flex}.ask-wizard-title{color:var(--text);font-weight:600}.ask-wizard-countdown{color:var(--muted);font-weight:400}.ask-tab-strip{gap:var(--space-1);flex-wrap:wrap;display:flex}.ask-tab{border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--muted);padding:2px var(--space-2);cursor:pointer;font-family:inherit;font-size:var(--fs-small);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;max-width:22ch;display:inline-flex;overflow:hidden}.ask-tab.selected{border-left:3px solid var(--status-attention);background:color-mix(in srgb, var(--status-attention) 12%, var(--surface,transparent));color:var(--text);text-overflow:clip;max-width:none;overflow:visible}.ask-tab.answered{color:var(--text)}.ask-tab-check{color:var(--status-attention);font-size:var(--fs-small)}.ask-tab-submit{font-weight:600}.ask-tab-panel.hidden{display:none}.ask-question{gap:var(--space-2);flex-direction:column;display:flex}.ask-question-title{font-size:var(--fs-base);color:var(--text);margin:0;font-weight:600}.ask-question-body{color:var(--text);margin:0}.ask-options{gap:var(--space-2);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex;position:relative}.ask-options-legend{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ask-option{align-items:center;gap:var(--space-2);border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);cursor:pointer;color:var(--text);display:flex}.ask-option:hover{border-color:var(--text)}.ask-option.selected{border-color:var(--status-attention);background:color-mix(in srgb, var(--status-attention) 10%, transparent)}.ask-option input{width:auto;accent-color:var(--status-attention);cursor:pointer;margin:0}.ask-option-input--hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ask-option-index{text-align:center;min-width:1.4em;color:var(--muted);font-size:var(--fs-small);font-variant-numeric:tabular-nums;flex:none}.ask-option-label{flex:auto;min-width:0}.ask-option-check{color:var(--status-attention);flex:none}.ask-custom-field{margin:0}.ask-custom-label{font-size:var(--fs-small);color:var(--muted)}.ask-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-1);display:flex}.ask-review{gap:var(--space-2);flex-direction:column;display:flex}.ask-review-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ask-review-item{padding:var(--space-2) 0;border-bottom:var(--hairline);flex-direction:column;gap:2px;display:flex}.ask-review-question{color:var(--text);font-weight:600}.ask-review-answer{color:var(--text)}.ask-review-answer.muted{color:var(--muted)}.recent-projects{flex-direction:column;gap:2px;max-height:160px;display:flex;overflow-y:auto}.recent-projects button{text-align:left;color:var(--text);font-family:inherit;font-size:var(--fs-secondary);padding:var(--space-1) var(--space-2);cursor:pointer;border-radius:var(--radius);background:0 0;border:none}.recent-projects button:hover{background:var(--border)}.model-scope-tabs{border:var(--hairline);border-radius:var(--radius);margin-bottom:var(--space-3);font-size:var(--fs-small);display:inline-flex;overflow:hidden}.model-scope-tabs button{background:var(--bg);color:var(--muted);padding:2px var(--space-3);cursor:pointer;border:none;font-family:inherit}.model-scope-tabs button.selected{background:var(--text);color:var(--bg)}.model-picker-modal{min-width:min(360px,100vw - 32px);max-width:min(900px,100vw - 32px);overflow:auto}@media (width>=701px){.model-picker-modal{resize:horizontal}}.model-list{gap:var(--space-2);flex-direction:column;min-width:0;display:flex;overflow:hidden auto}.model-provider-group{flex-direction:column;gap:2px;display:flex}.model-provider-heading{background:var(--bg);color:var(--muted);font-size:var(--fs-small);border-bottom:var(--hairline);padding:var(--space-1) var(--space-2);z-index:1;position:sticky;top:0}.model-row{align-items:start;gap:2px var(--space-2);text-align:left;border:var(--hairline);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:var(--fs-secondary);padding:var(--space-1) var(--space-2);cursor:pointer;background:0 0;grid-template-columns:18px minmax(0,1fr) auto auto;min-width:0;display:grid}.model-row:hover,.model-row.current{border-color:var(--text)}.model-current{color:var(--status-running);grid-area:1/1}.model-id{overflow-wrap:anywhere;white-space:normal;grid-area:1/2;min-width:0;font-weight:600}.model-name{color:var(--muted);font-size:var(--fs-small);overflow-wrap:anywhere;white-space:normal;grid-area:2/2/auto/-1;min-width:0}.model-provider-badge,.model-reasoning{color:var(--muted);font-size:var(--fs-small);white-space:nowrap;border:var(--hairline);border-radius:var(--radius);padding:0 var(--space-1);grid-row:1}.model-provider-badge{grid-column:3}.model-reasoning{grid-column:4}.context-modal-body{gap:var(--space-4);flex-direction:column;display:flex}.context-section h3{font-size:var(--fs-secondary);margin-bottom:var(--space-1)}.context-section ul{gap:var(--space-1);font-size:var(--fs-small);flex-direction:column;list-style:none;display:flex}.context-section li{overflow-wrap:anywhere}.fork-message-list{gap:var(--space-2);flex-direction:column;max-height:360px;display:flex;overflow-y:auto}.fork-message{border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);font:inherit;text-align:left;padding:var(--space-2);cursor:pointer;gap:var(--space-2);display:flex}.fork-message:hover{border-color:var(--text)}.fork-entry-id{color:var(--muted);font-size:var(--fs-small);flex:none}@media (width<=700px){.container,.topbar-inner,.session-bar-inner,.dock-inner,.dock-collapse-row,.chat-inner{width:100%;min-width:0;max-width:100%;padding-left:var(--space-3);padding-right:var(--space-3)}.session-grid{grid-template-columns:minmax(0,1fr)}.session-card,.disk-row,.session-meta,.session-actions,.disk-row .actions{min-width:0;max-width:100%}.disk-row,.session-meta,.session-actions,.disk-row .actions{flex-wrap:wrap}.session-title{flex-wrap:wrap;justify-content:flex-start;min-width:0;max-width:100%}.session-title .name{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;flex:12rem;min-width:0;max-width:100%;overflow:visible}.session-title .chip{flex:none;max-width:100%}.session-project,.attention-reason,.error-reason,.activity,.subagents,.session-meta,.group-head h3{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.session-project{text-overflow:clip;overflow:visible}.activity{text-overflow:clip}.subagents .agent-line{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%;overflow:visible}.session-meta>span{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.group-head h3{flex:1 1 0}.disk-row .name,.disk-row .meta{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.disk-row .name{text-overflow:clip;flex:1 1 0;overflow:visible}.disk-row .meta{order:3;width:100%;margin-left:0}.session-bar .project{display:none}.session-bar .right{align-items:stretch;width:100%;margin-left:0}.session-bar .right .switcher{justify-content:center}.session-bar .right .model-switcher{flex:100%;max-width:100%}.session-bar{flex-shrink:1;min-height:0;overflow:hidden}.dock{flex-direction:column;flex-shrink:1;min-height:0;display:flex;overflow:hidden}.dock-collapse-row{flex:none}.dock-inner{flex:auto;min-height:0;overflow:hidden}.dock-panels{gap:var(--space-2);overscroll-behavior:contain;flex-direction:column;flex:0 auto;min-height:0;max-height:30vh;display:flex;overflow-y:auto}.command-popover{position:static}.composer{overscroll-behavior:contain;flex:none;min-height:0;max-height:100%;overflow-y:auto}.composer-row{z-index:1;background:var(--bg);position:sticky;bottom:0}.entry.user{max-width:100%}.file-table .cols{display:none}.setting-row{flex-direction:column;align-items:stretch}.setting-control{align-self:flex-end}.agent-model-row{grid-template-columns:1fr}.agent-model-edit{justify-self:start}.agent-model-entry{flex-direction:column;align-items:flex-start}.trusted-context-folder-row{flex-wrap:wrap;align-items:flex-start}.trusted-context-folder-row code{flex-basis:100%}.trusted-context-folder-row .meta{margin-left:0}.trusted-context-folder-add{flex-direction:column;align-items:stretch}.trusted-context-folder-add label{white-space:normal}.trusted-context-folder-add .btn{align-self:flex-start}.head-actions .btn{flex:1}.banner-region,.toast-region{width:100%;max-width:100%}.banner-region{overscroll-behavior:contain;flex:0 auto;min-height:0;max-height:20vh;overflow-y:auto}.banner-text{max-height:18vh}.queued-message-row{max-height:8vh;overflow-y:auto}.attachment-strip{max-height:10vh;overflow-y:auto}.pending-chips{max-height:8vh;display:block;overflow-y:auto}.composer textarea{max-height:26vh}.toast-region{padding-left:var(--space-3);padding-right:var(--space-3)}.banner-actions{flex-direction:column}.composer textarea{font-size:16px}}.memories-screen{padding-bottom:var(--space-6)}.memories-head,.memory-doc-head,.memory-edit-actions{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.memories-head{margin:var(--space-5) 0 var(--space-4)}.memories-layout{gap:var(--space-4);grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;display:grid}.memories-sidebar{gap:var(--space-4);flex-direction:column;display:flex}.memory-panel,.memory-editor{border:var(--hairline);border-radius:var(--radius);padding:var(--space-4);min-width:0}.memory-panel h2{font-size:var(--fs-secondary);color:var(--muted);margin-bottom:var(--space-2)}.memory-nav-item{text-align:left;border:var(--hairline);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);padding:var(--space-2);margin-bottom:var(--space-2);cursor:pointer;flex-direction:column;gap:2px;display:flex}.memory-nav-item:hover,.memory-nav-item.active{border-color:var(--text)}.memory-nav-item.error{border-color:var(--status-error)}.memory-nav-item small{color:var(--muted);overflow-wrap:anywhere}.memory-doc-head{margin-bottom:var(--space-3)}.memory-metadata{gap:var(--space-2);border:var(--hairline);border-radius:var(--radius-sm);padding:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.memory-metadata span{color:var(--muted)}.memory-edit-actions{margin-bottom:var(--space-3);justify-content:flex-start;align-items:center}.memory-textarea{width:100%;min-height:360px;font-family:var(--font-mono);font-size:var(--fs-secondary);background:var(--surface);color:var(--text);border:var(--hairline);border-radius:var(--radius);padding:var(--space-3);resize:vertical}.memory-preview{margin-top:var(--space-4);border:var(--hairline);border-radius:var(--radius);padding:var(--space-3)}.memory-preview summary{cursor:pointer;color:var(--muted);margin-bottom:var(--space-2)}@media (width<=800px){.memories-layout{grid-template-columns:1fr}}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(./jetbrains-mono-BCtJif-v.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:100 800;font-display:swap;src:url(./jetbrains-mono-italic-WKDR0M8A.woff2)format("woff2")}[data-color-mode=light]:not([data-theme]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--text:#000;--border:#e0e0e0;--muted:#666;--status-running:#00871f;--status-attention:#8a5400;--status-idle:#666;--status-error:#d10041;--syntax-comment:green;--syntax-keyword:#00f;--syntax-string:#a31515;--syntax-number:#098658;--syntax-function:#795e26;--syntax-type:#267f99;--syntax-variable:#001080;--syntax-operator:#000;--syntax-punctuation:#000}[data-color-mode=dark]:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--text:#fff;--border:#333;--muted:#999;--status-running:#00e436;--status-attention:#ffa300;--status-idle:#999;--status-error:#ff004d;--syntax-comment:#6a9955;--syntax-keyword:#569cd6;--syntax-string:#ce9178;--syntax-number:#b5cea8;--syntax-function:#dcdcaa;--syntax-type:#4ec9b0;--syntax-variable:#9cdcfe;--syntax-operator:#d4d4d4;--syntax-punctuation:#d4d4d4}[data-theme=default]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:#fff;--text:#000;--border:#e0e0e0;--muted:#666;--status-running:#00871f;--status-attention:#8a5400;--status-idle:#666;--status-error:#d10041;--syntax-comment:green;--syntax-keyword:#00f;--syntax-string:#a31515;--syntax-number:#098658;--syntax-function:#795e26;--syntax-type:#267f99;--syntax-variable:#001080;--syntax-operator:#000;--syntax-punctuation:#000}[data-theme=default][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--text:#fff;--border:#333;--muted:#999;--status-running:#00e436;--status-attention:#ffa300;--status-idle:#999;--status-error:#ff004d;--syntax-comment:#6a9955;--syntax-keyword:#569cd6;--syntax-string:#ce9178;--syntax-number:#b5cea8;--syntax-function:#dcdcaa;--syntax-type:#4ec9b0;--syntax-variable:#9cdcfe;--syntax-operator:#d4d4d4;--syntax-punctuation:#d4d4d4}@media (prefers-color-scheme:dark){[data-theme=default]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--text:#fff;--border:#333;--muted:#999;--status-running:#00e436;--status-attention:#ffa300;--status-idle:#999;--status-error:#ff004d;--syntax-comment:#6a9955;--syntax-keyword:#569cd6;--syntax-string:#ce9178;--syntax-number:#b5cea8;--syntax-function:#dcdcaa;--syntax-type:#4ec9b0;--syntax-variable:#9cdcfe;--syntax-operator:#d4d4d4;--syntax-punctuation:#d4d4d4}}[data-theme=dim]{--dim-d-bg:#1e1f22;--dim-d-text:#d7d8da;--dim-d-border:#3a3c40;--dim-d-muted:#9a9ea6;--dim-d-running:#5ec27a;--dim-d-attention:#d8a341;--dim-d-idle:#9a9ea6;--dim-d-error:#f0637f;--dim-d-comment:#8b9199;--dim-d-keyword:#8ab4f8;--dim-d-string:#c3956a;--dim-d-number:#9fce8a;--dim-d-function:#d9c46e;--dim-d-type:#5cc2b0;--dim-d-variable:#9cc7e8;--dim-d-operator:#c3c6cb;--dim-d-punctuation:#c3c6cb;--dim-l-bg:#f0f0ee;--dim-l-text:#33353a;--dim-l-border:#d3d4d1;--dim-l-muted:#5c5f66;--dim-l-running:#1c7a37;--dim-l-attention:#8a5400;--dim-l-idle:#5c5f66;--dim-l-error:#c01743;--dim-l-comment:#4f6e42;--dim-l-keyword:#1a4fc0;--dim-l-string:#9a3a20;--dim-l-number:#1f7a4a;--dim-l-function:#6f5a12;--dim-l-type:#136b7a;--dim-l-variable:#123a9c;--dim-l-operator:#33353a;--dim-l-punctuation:#33353a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--dim-l-bg);--text:var(--dim-l-text);--border:var(--dim-l-border);--muted:var(--dim-l-muted);--status-running:var(--dim-l-running);--status-attention:var(--dim-l-attention);--status-idle:var(--dim-l-idle);--status-error:var(--dim-l-error);--syntax-comment:var(--dim-l-comment);--syntax-keyword:var(--dim-l-keyword);--syntax-string:var(--dim-l-string);--syntax-number:var(--dim-l-number);--syntax-function:var(--dim-l-function);--syntax-type:var(--dim-l-type);--syntax-variable:var(--dim-l-variable);--syntax-operator:var(--dim-l-operator);--syntax-punctuation:var(--dim-l-punctuation)}[data-theme=dim][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--dim-d-bg);--text:var(--dim-d-text);--border:var(--dim-d-border);--muted:var(--dim-d-muted);--status-running:var(--dim-d-running);--status-attention:var(--dim-d-attention);--status-idle:var(--dim-d-idle);--status-error:var(--dim-d-error);--syntax-comment:var(--dim-d-comment);--syntax-keyword:var(--dim-d-keyword);--syntax-string:var(--dim-d-string);--syntax-number:var(--dim-d-number);--syntax-function:var(--dim-d-function);--syntax-type:var(--dim-d-type);--syntax-variable:var(--dim-d-variable);--syntax-operator:var(--dim-d-operator);--syntax-punctuation:var(--dim-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=dim]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--dim-d-bg);--text:var(--dim-d-text);--border:var(--dim-d-border);--muted:var(--dim-d-muted);--status-running:var(--dim-d-running);--status-attention:var(--dim-d-attention);--status-idle:var(--dim-d-idle);--status-error:var(--dim-d-error);--syntax-comment:var(--dim-d-comment);--syntax-keyword:var(--dim-d-keyword);--syntax-string:var(--dim-d-string);--syntax-number:var(--dim-d-number);--syntax-function:var(--dim-d-function);--syntax-type:var(--dim-d-type);--syntax-variable:var(--dim-d-variable);--syntax-operator:var(--dim-d-operator);--syntax-punctuation:var(--dim-d-punctuation)}}[data-theme=solarized]{--sol-d-bg:#002b36;--sol-d-text:#93a1a1;--sol-d-border:#0a4b5a;--sol-d-muted:#839496;--sol-d-running:#859900;--sol-d-attention:#cb8b18;--sol-d-idle:#839496;--sol-d-error:#fa6459;--sol-d-comment:#7e9295;--sol-d-keyword:#6c8fd6;--sol-d-string:#2aa198;--sol-d-number:#b58900;--sol-d-function:#4a9fdb;--sol-d-type:#b58900;--sol-d-variable:#93a1a1;--sol-d-operator:#93a1a1;--sol-d-punctuation:#93a1a1;--sol-l-bg:#fdf6e3;--sol-l-text:#586e75;--sol-l-border:#e7e0cb;--sol-l-muted:#5b6f76;--sol-l-running:#567500;--sol-l-attention:#a35700;--sol-l-idle:#5b6f76;--sol-l-error:#c9412f;--sol-l-comment:#5e7272;--sol-l-keyword:#5d62bd;--sol-l-string:#147878;--sol-l-number:#8a6d00;--sol-l-function:#1f6fa8;--sol-l-type:#a35700;--sol-l-variable:#586e75;--sol-l-operator:#586e75;--sol-l-punctuation:#586e75;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--sol-l-bg);--text:var(--sol-l-text);--border:var(--sol-l-border);--muted:var(--sol-l-muted);--status-running:var(--sol-l-running);--status-attention:var(--sol-l-attention);--status-idle:var(--sol-l-idle);--status-error:var(--sol-l-error);--syntax-comment:var(--sol-l-comment);--syntax-keyword:var(--sol-l-keyword);--syntax-string:var(--sol-l-string);--syntax-number:var(--sol-l-number);--syntax-function:var(--sol-l-function);--syntax-type:var(--sol-l-type);--syntax-variable:var(--sol-l-variable);--syntax-operator:var(--sol-l-operator);--syntax-punctuation:var(--sol-l-punctuation)}[data-theme=solarized][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--sol-d-bg);--text:var(--sol-d-text);--border:var(--sol-d-border);--muted:var(--sol-d-muted);--status-running:var(--sol-d-running);--status-attention:var(--sol-d-attention);--status-idle:var(--sol-d-idle);--status-error:var(--sol-d-error);--syntax-comment:var(--sol-d-comment);--syntax-keyword:var(--sol-d-keyword);--syntax-string:var(--sol-d-string);--syntax-number:var(--sol-d-number);--syntax-function:var(--sol-d-function);--syntax-type:var(--sol-d-type);--syntax-variable:var(--sol-d-variable);--syntax-operator:var(--sol-d-operator);--syntax-punctuation:var(--sol-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=solarized]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--sol-d-bg);--text:var(--sol-d-text);--border:var(--sol-d-border);--muted:var(--sol-d-muted);--status-running:var(--sol-d-running);--status-attention:var(--sol-d-attention);--status-idle:var(--sol-d-idle);--status-error:var(--sol-d-error);--syntax-comment:var(--sol-d-comment);--syntax-keyword:var(--sol-d-keyword);--syntax-string:var(--sol-d-string);--syntax-number:var(--sol-d-number);--syntax-function:var(--sol-d-function);--syntax-type:var(--sol-d-type);--syntax-variable:var(--sol-d-variable);--syntax-operator:var(--sol-d-operator);--syntax-punctuation:var(--sol-d-punctuation)}}[data-theme=gruvbox]{--gruv-d-bg:#282828;--gruv-d-text:#ebdbb2;--gruv-d-border:#504945;--gruv-d-muted:#a89984;--gruv-d-running:#b8bb26;--gruv-d-attention:#fabd2f;--gruv-d-idle:#a89984;--gruv-d-error:#fc6a58;--gruv-d-comment:#a08f7d;--gruv-d-keyword:#fc6a58;--gruv-d-string:#b8bb26;--gruv-d-number:#d3869b;--gruv-d-function:#b8bb26;--gruv-d-type:#fabd2f;--gruv-d-variable:#83a598;--gruv-d-operator:#ebdbb2;--gruv-d-punctuation:#ebdbb2;--gruv-l-bg:#fbf1c7;--gruv-l-text:#3c3836;--gruv-l-border:#e6dcae;--gruv-l-muted:#665c54;--gruv-l-running:#557000;--gruv-l-attention:#a35a00;--gruv-l-idle:#665c54;--gruv-l-error:#9d0006;--gruv-l-comment:#6f6358;--gruv-l-keyword:#9d0006;--gruv-l-string:#557000;--gruv-l-number:#8f3f71;--gruv-l-function:#6d680c;--gruv-l-type:#97600f;--gruv-l-variable:#076678;--gruv-l-operator:#3c3836;--gruv-l-punctuation:#3c3836;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"JetBrains Mono", "IBM Plex Mono", "Courier New", monospace;--bg:var(--gruv-l-bg);--text:var(--gruv-l-text);--border:var(--gruv-l-border);--muted:var(--gruv-l-muted);--status-running:var(--gruv-l-running);--status-attention:var(--gruv-l-attention);--status-idle:var(--gruv-l-idle);--status-error:var(--gruv-l-error);--syntax-comment:var(--gruv-l-comment);--syntax-keyword:var(--gruv-l-keyword);--syntax-string:var(--gruv-l-string);--syntax-number:var(--gruv-l-number);--syntax-function:var(--gruv-l-function);--syntax-type:var(--gruv-l-type);--syntax-variable:var(--gruv-l-variable);--syntax-operator:var(--gruv-l-operator);--syntax-punctuation:var(--gruv-l-punctuation)}[data-theme=gruvbox][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--gruv-d-bg);--text:var(--gruv-d-text);--border:var(--gruv-d-border);--muted:var(--gruv-d-muted);--status-running:var(--gruv-d-running);--status-attention:var(--gruv-d-attention);--status-idle:var(--gruv-d-idle);--status-error:var(--gruv-d-error);--syntax-comment:var(--gruv-d-comment);--syntax-keyword:var(--gruv-d-keyword);--syntax-string:var(--gruv-d-string);--syntax-number:var(--gruv-d-number);--syntax-function:var(--gruv-d-function);--syntax-type:var(--gruv-d-type);--syntax-variable:var(--gruv-d-variable);--syntax-operator:var(--gruv-d-operator);--syntax-punctuation:var(--gruv-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=gruvbox]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--gruv-d-bg);--text:var(--gruv-d-text);--border:var(--gruv-d-border);--muted:var(--gruv-d-muted);--status-running:var(--gruv-d-running);--status-attention:var(--gruv-d-attention);--status-idle:var(--gruv-d-idle);--status-error:var(--gruv-d-error);--syntax-comment:var(--gruv-d-comment);--syntax-keyword:var(--gruv-d-keyword);--syntax-string:var(--gruv-d-string);--syntax-number:var(--gruv-d-number);--syntax-function:var(--gruv-d-function);--syntax-type:var(--gruv-d-type);--syntax-variable:var(--gruv-d-variable);--syntax-operator:var(--gruv-d-operator);--syntax-punctuation:var(--gruv-d-punctuation)}}[data-theme=qud]{--qud-d-bg:#0f3b3a;--qud-d-text:#d7e4de;--qud-d-border:#1f5b57;--qud-d-muted:#8fb3aa;--qud-d-running:#00c420;--qud-d-attention:#e99f10;--qud-d-idle:#8fb3aa;--qud-d-error:#ff8a70;--qud-d-comment:#8ab0a1;--qud-d-keyword:#3aa6ff;--qud-d-string:#cfc041;--qud-d-number:#e894e2;--qud-d-function:#3fd45f;--qud-d-type:#77bfcf;--qud-d-variable:#8fd0dd;--qud-d-operator:#b1c9c3;--qud-d-punctuation:#b1c9c3;--qud-l-bg:#e8efe9;--qud-l-text:#123b38;--qud-l-border:#cdddd6;--qud-l-muted:#3c655d;--qud-l-running:#0a6b1f;--qud-l-attention:#8a5400;--qud-l-idle:#3c655d;--qud-l-error:#b3341a;--qud-l-comment:#3f6a5e;--qud-l-keyword:#12489c;--qud-l-string:#7a6a00;--qud-l-number:#8f3a86;--qud-l-function:#0a6b1f;--qud-l-type:#0f6070;--qud-l-variable:#155352;--qud-l-operator:#123b38;--qud-l-punctuation:#123b38;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--qud-l-bg);--text:var(--qud-l-text);--border:var(--qud-l-border);--muted:var(--qud-l-muted);--status-running:var(--qud-l-running);--status-attention:var(--qud-l-attention);--status-idle:var(--qud-l-idle);--status-error:var(--qud-l-error);--syntax-comment:var(--qud-l-comment);--syntax-keyword:var(--qud-l-keyword);--syntax-string:var(--qud-l-string);--syntax-number:var(--qud-l-number);--syntax-function:var(--qud-l-function);--syntax-type:var(--qud-l-type);--syntax-variable:var(--qud-l-variable);--syntax-operator:var(--qud-l-operator);--syntax-punctuation:var(--qud-l-punctuation)}[data-theme=qud][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--qud-d-bg);--text:var(--qud-d-text);--border:var(--qud-d-border);--muted:var(--qud-d-muted);--status-running:var(--qud-d-running);--status-attention:var(--qud-d-attention);--status-idle:var(--qud-d-idle);--status-error:var(--qud-d-error);--syntax-comment:var(--qud-d-comment);--syntax-keyword:var(--qud-d-keyword);--syntax-string:var(--qud-d-string);--syntax-number:var(--qud-d-number);--syntax-function:var(--qud-d-function);--syntax-type:var(--qud-d-type);--syntax-variable:var(--qud-d-variable);--syntax-operator:var(--qud-d-operator);--syntax-punctuation:var(--qud-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=qud]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--qud-d-bg);--text:var(--qud-d-text);--border:var(--qud-d-border);--muted:var(--qud-d-muted);--status-running:var(--qud-d-running);--status-attention:var(--qud-d-attention);--status-idle:var(--qud-d-idle);--status-error:var(--qud-d-error);--syntax-comment:var(--qud-d-comment);--syntax-keyword:var(--qud-d-keyword);--syntax-string:var(--qud-d-string);--syntax-number:var(--qud-d-number);--syntax-function:var(--qud-d-function);--syntax-type:var(--qud-d-type);--syntax-variable:var(--qud-d-variable);--syntax-operator:var(--qud-d-operator);--syntax-punctuation:var(--qud-d-punctuation)}}[data-theme=vangogh]{--vg-d-bg:#0d1b3d;--vg-d-text:#f0e6c8;--vg-d-border:#2a3e6a;--vg-d-muted:#aab4d2;--vg-d-running:#8fbf6a;--vg-d-attention:#f5db37;--vg-d-idle:#aab4d2;--vg-d-error:#f07a52;--vg-d-comment:#8c96b8;--vg-d-keyword:#f5db37;--vg-d-string:#7fc5dc;--vg-d-number:#e0a95a;--vg-d-function:#5fb0e0;--vg-d-type:#c9b26a;--vg-d-variable:#a9c7ea;--vg-d-operator:#dad69f;--vg-d-punctuation:#dad69f;--vg-l-bg:#f4ecd2;--vg-l-text:#1a2a52;--vg-l-border:#e0d4ad;--vg-l-muted:#4a557d;--vg-l-running:#4a6b1f;--vg-l-attention:#855000;--vg-l-idle:#4a557d;--vg-l-error:#b03a1a;--vg-l-comment:#5a6488;--vg-l-keyword:#1a3a8c;--vg-l-string:#1f6f8c;--vg-l-number:#8a5a12;--vg-l-function:#2a4e93;--vg-l-type:#6a5a12;--vg-l-variable:#2a3e83;--vg-l-operator:#1a2a52;--vg-l-punctuation:#1a2a52;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--vg-l-bg);--text:var(--vg-l-text);--border:var(--vg-l-border);--muted:var(--vg-l-muted);--status-running:var(--vg-l-running);--status-attention:var(--vg-l-attention);--status-idle:var(--vg-l-idle);--status-error:var(--vg-l-error);--syntax-comment:var(--vg-l-comment);--syntax-keyword:var(--vg-l-keyword);--syntax-string:var(--vg-l-string);--syntax-number:var(--vg-l-number);--syntax-function:var(--vg-l-function);--syntax-type:var(--vg-l-type);--syntax-variable:var(--vg-l-variable);--syntax-operator:var(--vg-l-operator);--syntax-punctuation:var(--vg-l-punctuation)}[data-theme=vangogh][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--vg-d-bg);--text:var(--vg-d-text);--border:var(--vg-d-border);--muted:var(--vg-d-muted);--status-running:var(--vg-d-running);--status-attention:var(--vg-d-attention);--status-idle:var(--vg-d-idle);--status-error:var(--vg-d-error);--syntax-comment:var(--vg-d-comment);--syntax-keyword:var(--vg-d-keyword);--syntax-string:var(--vg-d-string);--syntax-number:var(--vg-d-number);--syntax-function:var(--vg-d-function);--syntax-type:var(--vg-d-type);--syntax-variable:var(--vg-d-variable);--syntax-operator:var(--vg-d-operator);--syntax-punctuation:var(--vg-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=vangogh]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--vg-d-bg);--text:var(--vg-d-text);--border:var(--vg-d-border);--muted:var(--vg-d-muted);--status-running:var(--vg-d-running);--status-attention:var(--vg-d-attention);--status-idle:var(--vg-d-idle);--status-error:var(--vg-d-error);--syntax-comment:var(--vg-d-comment);--syntax-keyword:var(--vg-d-keyword);--syntax-string:var(--vg-d-string);--syntax-number:var(--vg-d-number);--syntax-function:var(--vg-d-function);--syntax-type:var(--vg-d-type);--syntax-variable:var(--vg-d-variable);--syntax-operator:var(--vg-d-operator);--syntax-punctuation:var(--vg-d-punctuation)}}[data-theme=okabe]{--okabe-d-bg:#16181d;--okabe-d-text:#eceef2;--okabe-d-border:#363a42;--okabe-d-muted:#9ba1ab;--okabe-d-running:#56b4e9;--okabe-d-attention:#f0e442;--okabe-d-idle:#9ba1ab;--okabe-d-error:#f57a48;--okabe-d-comment:#8b95a3;--okabe-d-keyword:#56b4e9;--okabe-d-string:#4fc6a0;--okabe-d-number:#e08cc6;--okabe-d-function:#f0c04a;--okabe-d-type:#8fd4f0;--okabe-d-variable:#d7dbe1;--okabe-d-operator:#cdd2d9;--okabe-d-punctuation:#cdd2d9;--okabe-l-bg:#f6f6f3;--okabe-l-text:#1a1a1a;--okabe-l-border:#dcdcd6;--okabe-l-muted:#565b62;--okabe-l-running:#0067a3;--okabe-l-attention:#8a5a00;--okabe-l-idle:#565b62;--okabe-l-error:#b8430a;--okabe-l-comment:#4a5560;--okabe-l-keyword:#0067a3;--okabe-l-string:#077a5a;--okabe-l-number:#9a4a86;--okabe-l-function:#7a5500;--okabe-l-type:#0f6a86;--okabe-l-variable:#333;--okabe-l-operator:#1a1a1a;--okabe-l-punctuation:#1a1a1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--okabe-l-bg);--text:var(--okabe-l-text);--border:var(--okabe-l-border);--muted:var(--okabe-l-muted);--status-running:var(--okabe-l-running);--status-attention:var(--okabe-l-attention);--status-idle:var(--okabe-l-idle);--status-error:var(--okabe-l-error);--syntax-comment:var(--okabe-l-comment);--syntax-keyword:var(--okabe-l-keyword);--syntax-string:var(--okabe-l-string);--syntax-number:var(--okabe-l-number);--syntax-function:var(--okabe-l-function);--syntax-type:var(--okabe-l-type);--syntax-variable:var(--okabe-l-variable);--syntax-operator:var(--okabe-l-operator);--syntax-punctuation:var(--okabe-l-punctuation)}[data-theme=okabe][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--okabe-d-bg);--text:var(--okabe-d-text);--border:var(--okabe-d-border);--muted:var(--okabe-d-muted);--status-running:var(--okabe-d-running);--status-attention:var(--okabe-d-attention);--status-idle:var(--okabe-d-idle);--status-error:var(--okabe-d-error);--syntax-comment:var(--okabe-d-comment);--syntax-keyword:var(--okabe-d-keyword);--syntax-string:var(--okabe-d-string);--syntax-number:var(--okabe-d-number);--syntax-function:var(--okabe-d-function);--syntax-type:var(--okabe-d-type);--syntax-variable:var(--okabe-d-variable);--syntax-operator:var(--okabe-d-operator);--syntax-punctuation:var(--okabe-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=okabe]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--okabe-d-bg);--text:var(--okabe-d-text);--border:var(--okabe-d-border);--muted:var(--okabe-d-muted);--status-running:var(--okabe-d-running);--status-attention:var(--okabe-d-attention);--status-idle:var(--okabe-d-idle);--status-error:var(--okabe-d-error);--syntax-comment:var(--okabe-d-comment);--syntax-keyword:var(--okabe-d-keyword);--syntax-string:var(--okabe-d-string);--syntax-number:var(--okabe-d-number);--syntax-function:var(--okabe-d-function);--syntax-type:var(--okabe-d-type);--syntax-variable:var(--okabe-d-variable);--syntax-operator:var(--okabe-d-operator);--syntax-punctuation:var(--okabe-d-punctuation)}}[data-theme=tol]{--tol-d-bg:#1b1d21;--tol-d-text:#e9eaec;--tol-d-border:#363a43;--tol-d-muted:#9a9ea6;--tol-d-running:#3fc0a8;--tol-d-attention:#d9c94a;--tol-d-idle:#9a9ea6;--tol-d-error:#f0687a;--tol-d-comment:#8a929c;--tol-d-keyword:#6ce;--tol-d-string:#4fc08a;--tol-d-number:#c9d;--tol-d-function:#eb5;--tol-d-type:#7fd0f0;--tol-d-variable:#d6d9de;--tol-d-operator:#cbcfd5;--tol-d-punctuation:#cbcfd5;--tol-l-bg:#f4f4f6;--tol-l-text:#1a1c22;--tol-l-border:#dadae0;--tol-l-muted:#565a62;--tol-l-running:#007a68;--tol-l-attention:#8a6a00;--tol-l-idle:#565a62;--tol-l-error:#c23346;--tol-l-comment:#565a62;--tol-l-keyword:#1a5a8c;--tol-l-string:#0a6a52;--tol-l-number:#8a3a77;--tol-l-function:#8a5a12;--tol-l-type:#0f6a86;--tol-l-variable:#2a2e83;--tol-l-operator:#1a1c22;--tol-l-punctuation:#1a1c22;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--tol-l-bg);--text:var(--tol-l-text);--border:var(--tol-l-border);--muted:var(--tol-l-muted);--status-running:var(--tol-l-running);--status-attention:var(--tol-l-attention);--status-idle:var(--tol-l-idle);--status-error:var(--tol-l-error);--syntax-comment:var(--tol-l-comment);--syntax-keyword:var(--tol-l-keyword);--syntax-string:var(--tol-l-string);--syntax-number:var(--tol-l-number);--syntax-function:var(--tol-l-function);--syntax-type:var(--tol-l-type);--syntax-variable:var(--tol-l-variable);--syntax-operator:var(--tol-l-operator);--syntax-punctuation:var(--tol-l-punctuation)}[data-theme=tol][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--tol-d-bg);--text:var(--tol-d-text);--border:var(--tol-d-border);--muted:var(--tol-d-muted);--status-running:var(--tol-d-running);--status-attention:var(--tol-d-attention);--status-idle:var(--tol-d-idle);--status-error:var(--tol-d-error);--syntax-comment:var(--tol-d-comment);--syntax-keyword:var(--tol-d-keyword);--syntax-string:var(--tol-d-string);--syntax-number:var(--tol-d-number);--syntax-function:var(--tol-d-function);--syntax-type:var(--tol-d-type);--syntax-variable:var(--tol-d-variable);--syntax-operator:var(--tol-d-operator);--syntax-punctuation:var(--tol-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=tol]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--tol-d-bg);--text:var(--tol-d-text);--border:var(--tol-d-border);--muted:var(--tol-d-muted);--status-running:var(--tol-d-running);--status-attention:var(--tol-d-attention);--status-idle:var(--tol-d-idle);--status-error:var(--tol-d-error);--syntax-comment:var(--tol-d-comment);--syntax-keyword:var(--tol-d-keyword);--syntax-string:var(--tol-d-string);--syntax-number:var(--tol-d-number);--syntax-function:var(--tol-d-function);--syntax-type:var(--tol-d-type);--syntax-variable:var(--tol-d-variable);--syntax-operator:var(--tol-d-operator);--syntax-punctuation:var(--tol-d-punctuation)}}
@@ -66,14 +66,14 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
66
66
  `).length}function ic(e){if(e.kind===`user`)return e.text;if(e.kind===`assistant`)return e.blocks.filter(e=>e.kind===`text`).map(e=>e.text).join(`
67
67
  `)}function ac(e){return e.match(/^\/skill:([\w-]+)/)?.[1]}function oc(e){if(e.status===`running`){let t=Math.floor((Date.now()-e.startedAt)/1e3);return{text:`● running${t>2?` ${t}s`:``}`,cls:`running`}}return e.status===`error`?{text:`✕ error`,cls:`error`}:{text:`done`,cls:``}}var sc=new Set([`subagent`,`skill`,`web_fetch`]);function cc(e){let t=e.args;if(!t||typeof t!=`object`)return[];switch(e.toolName){case`bash`:case`bash (user)`:return[];case`read`:case`ls`:case`edit`:return[];case`suggest_next`:return[];case`write`:return e.resultText&&typeof t.content==`string`?[{label:`content`,text:String(t.content),language:Qs($s(t))}]:[];case`subagent`:{let e=[];return typeof t.task==`string`&&e.push({label:`task`,text:t.task,markdown:!0}),Array.isArray(t.tasks)&&t.tasks.forEach((t,n)=>{typeof t?.task==`string`&&e.push({label:`task ${n+1}${t.agent?` (${t.agent})`:``}`,text:t.task,markdown:!0})}),Array.isArray(t.chain)&&t.chain.forEach((t,n)=>{typeof t?.task==`string`&&e.push({label:`step ${n+1}${t.agent?` (${t.agent})`:``}`,text:t.task,markdown:!0})}),e}default:{let e=[];for(let[n,r]of Object.entries(t)){let t=typeof r==`string`?r:JSON.stringify(r,null,2);t&&t.length>80&&e.push({label:n,text:t})}return e}}}function lc(e){return(()=>{var t=gs();return X(t,W(G,{get each(){return e.text.split(`
68
68
  `)},children:e=>[(()=>{var t=_s();return X(t,e),j(n=>{var r=!!e.startsWith(`+`),i=!!e.startsWith(`-`);return r!==n.e&&t.classList.toggle(`diff-add`,n.e=r),i!==n.t&&t.classList.toggle(`diff-del`,n.t=i),n},{e:void 0,t:void 0}),t})(),`
69
- `]})),t})()}function uc(e){if(e.toolName!==`edit`)return;let t=e.details?.diff;return typeof t==`string`?t:void 0}var dc=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`]),fc=/^[0-9a-f]{64}$/,pc=1024*1024;function mc(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:e>=1024?`${Math.ceil(e/1024)} KB`:`${e} B`}var hc={alt:`Tool result`,originalAriaLabel:`Original tool-result image`,enlargedAlt:`Enlarged tool-result preview`},gc={alt:`Uploaded image`,originalAriaLabel:`Original uploaded image`,enlargedAlt:`Enlarged uploaded-image preview`};function _c(e){let[t,n]=k(),[r,i]=k(),[a,o]=k(),[s,c]=k(!1),l=t=>gt(e.scope.runtimeKey,e.image.id,t,e.scope.agentId),u=e=>{let t=l(e);if(!t){o(`Invalid image reference`);return}o(void 0),i(e),n(t)};M(()=>{let e=cs();c(!1),o(void 0),e===`previews`?u(`preview`):e===`originals`?u(`original`):(n(void 0),i(void 0))});let d=()=>{e.image.size>pc&&!window.confirm(`Load the ${mc(e.image.size)} original image? This may use significant data.`)||u(`original`)},f=e=>{e.key===`Escape`&&c(!1)};return R(()=>window.addEventListener(`keydown`,f)),z(()=>window.removeEventListener(`keydown`,f)),(()=>{var l=bs(),f=l.firstChild,p=f.firstChild,m=p.firstChild;return X(l,W(K,{get when(){return t()},get fallback(){return(()=>{var t=xs(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return X(n,()=>e.image.mimeType.replace(`image/`,``).toUpperCase(),r),X(n,()=>mc(e.image.size),null),i.$$click=()=>u(`preview`),X(i,()=>a()?`retry preview`:`load preview`),t})()},children:t=>(()=>{var a=Ss(),s=a.firstChild;return a.$$click=()=>r()===`preview`&&c(!0),s.addEventListener(`error`,()=>{o(`Could not load ${r()??`image`}`),n(void 0),i(void 0)}),j(n=>{var i=r()!==`preview`,o=r()===`preview`?`Enlarge image preview`:e.labels.originalAriaLabel,c=e.labels.alt,l=t();return i!==n.e&&(a.disabled=n.e=i),o!==n.t&&Y(a,`aria-label`,n.t=o),c!==n.a&&Y(s,`alt`,n.a=c),l!==n.o&&Y(s,`src`,n.o=l),n},{e:void 0,t:void 0,a:void 0,o:void 0}),a})()}),f),X(p,()=>e.image.mimeType.replace(`image/`,``).toUpperCase(),m),X(p,()=>mc(e.image.size),null),X(f,W(K,{get when(){return r()!==`original`},get children(){var t=vs();return t.firstChild,t.$$click=d,X(t,()=>mc(e.image.size),null),t}}),null),X(l,W(K,{get when(){return a()},children:e=>(()=>{var t=Cs();return X(t,e),t})()}),null),X(l,W(K,{get when(){return q(()=>!!(s()&&r()===`preview`))()&&t()},get children(){var n=ys(),r=n.firstChild,i=r.nextSibling.firstChild,a=i.nextSibling;return r.$$click=()=>c(!1),a.$$click=()=>c(!1),j(n=>{var r=t(),a=e.labels.enlargedAlt;return r!==n.e&&Y(i,`src`,n.e=r),a!==n.t&&Y(i,`alt`,n.t=a),n},{e:void 0,t:void 0}),n}}),null),l})()}function vc(e){let t=()=>e.images.filter(e=>dc.has(e.mimeType)&&fc.test(e.id)&&Number.isSafeInteger(e.size)&&e.size>0);return W(K,{get when(){return t().length>0},get children(){var n=ws();return X(n,W(G,{get each(){return t()},children:t=>W(_c,{image:t,get scope(){return e.scope},get labels(){return e.labels}})})),n}})}function yc(e){let[t,n]=k(!1),r=()=>e.text.length>qs;M(()=>{r()||n(!1)});let i=()=>r()&&!t()?e.text.slice(-204800):e.text;return[W(K,{get when(){return q(()=>!!r())()&&!t()},get children(){var t=Ts(),r=t.firstChild.nextSibling,i=r.nextSibling.nextSibling,a=i.nextSibling.nextSibling,o=a.firstChild.nextSibling;return o.nextSibling,X(t,()=>Xs(qs),r),X(t,()=>Xs(e.text.length),i),a.$$click=()=>n(!0),X(a,()=>Xs(e.text.length),o),t}}),W(K,{get when(){return e.markdown},get fallback(){return W(tc,{get text(){return i()},get language(){return e.language},get autoScroll(){return e.autoScroll},get throttle(){return e.throttle}})},get children(){return W(Zs,{get text(){return i()},get throttle(){return e.throttle}})}})]}function bc(e){let t=()=>oc(e.entry),n=()=>e.entry.args,r=()=>{if(e.entry.toolName===`suggest_next`)return e.entry.details},i=()=>uc(e.entry),a=()=>e.entry.toolName===`write`&&!e.entry.resultText&&typeof n()?.content==`string`?String(n()?.content):e.entry.resultText,o=()=>{if(e.entry.toolName===`read`||e.entry.toolName===`write`&&!e.entry.resultText)return Qs($s(n()))},s=()=>sc.has(e.entry.toolName)&&e.entry.status!==`error`,c=()=>e.entry.toolName===`bash`||e.entry.toolName===`bash (user)`,l=()=>cc(e.entry),u=()=>fs(e.entry.toolName),d=e.entry.toolName!==`ask_user`,[f,p]=k(u()||e.entry.status===`running`&&d),m=e.entry.status===`running`,h=!1,g=!1,_,v=e=>{f()!==e&&(g=!0,p(e),_&&clearTimeout(_),_=setTimeout(()=>{g=!1,_=void 0},0))};return M(()=>{let t=e.entry.status===`running`,n=u();t&&d?(h=!1,v(!0)):m?(h=!1,v(n)):h||v(n),m=t}),z(()=>{_&&clearTimeout(_)}),(()=>{var u=Os(),m=u.firstChild.firstChild,v=m.nextSibling,y=v.nextSibling;return u.addEventListener(`toggle`,t=>{let n=t.currentTarget.open;if(g){p(n);return}if(e.entry.status===`running`&&d&&!n){g=!0,t.currentTarget.open=!0,p(!0),_&&clearTimeout(_),_=setTimeout(()=>{g=!1,_=void 0},0);return}h=!0,p(n)}),X(m,()=>e.entry.toolName),X(v,()=>nc(e.entry)),X(y,()=>t().text),X(u,W(K,{get when(){return f()},get children(){return[W(K,{get when(){return e.entry.toolName===`bash`||e.entry.toolName===`bash (user)`},get children(){var e=Es(),t=e.firstChild;return X(t,()=>String(n()?.command??``)),e}}),W(G,{get each(){return l()},children:e=>(()=>{var t=ks(),n=t.firstChild;return X(n,()=>e.label),X(t,W(K,{get when(){return e.markdown},get fallback(){return W(tc,{get text(){return e.text},get language(){return e.language}})},get children(){return W(Zs,{get text(){return e.text}})}}),null),t})()}),W(K,{get when(){return e.entry.images?.length},get children(){var t=Ds();return X(t,W(vc,{get images(){return e.entry.images},get scope(){return e.imageScope},labels:hc})),t}}),W(Te,{get children(){return[W(Ee,{get when(){return r()},children:e=>(()=>{var t=As(),n=t.firstChild,r=n.firstChild.nextSibling;return X(t,W(K,{get when(){return e().summary},get children(){return W(Zs,{get text(){return e().summary}})}}),n),X(r,()=>e().suggestion),t})()}),W(Ee,{get when(){return i()},children:e=>(()=>{var t=Ds();return X(t,W(lc,{get text(){return e()}})),t})()}),W(Ee,{get when(){return a()},children:t=>(()=>{var n=Ds();return X(n,W(yc,{get text(){return t()},get language(){return o()},get markdown(){return s()},get autoScroll(){return c()},get throttle(){return e.entry.status===`running`}})),n})()})]}})]}}),null),j(e=>{var n=f(),r=`tool-status ${t().cls}`;return n!==e.e&&(u.open=e.e=n),r!==e.t&&je(y,e.t=r),e},{e:void 0,t:void 0}),u})()}function xc(e){let[t,n]=k(`idle`);async function r(){if(e.text){try{await navigator.clipboard.writeText(e.text),n(`copied`)}catch{n(`failed`)}setTimeout(()=>n(`idle`),1200)}}return(()=>{var n=js();return n.$$click=r,X(n,(()=>{var e=q(()=>t()===`copied`);return()=>e()?`copied`:t()===`failed`?`copy failed`:`copy`})()),j(()=>n.disabled=!e.text),n})()}function Sc(e){let t=()=>e.entry.blocks.filter(t=>e.entry.streaming||e.entry.stopReason!==`error`||t.kind!==`thinking`||t.text.trim().length>0);return(()=>{var n=Ps(),r=n.firstChild,i=r.firstChild;return X(i,()=>e.who),X(r,W(K,{get when(){return e.entry.model},get children(){return[Ms(),(()=>{var t=_s();return X(t,()=>e.entry.model),t})()]}}),null),X(r,W(K,{get when(){return e.entry.streaming},get children(){return[Ms(),Ns()]}}),null),X(r,W(xc,{get text(){return ic(e.entry)}}),null),X(n,W(G,{get each(){return t()},children:(n,r)=>W(K,{get when(){return n.kind===`thinking`},get fallback(){return(()=>{var i=Is();return X(i,W(Zs,{get text(){return n.text},get classList(){return{"streaming-cursor":e.entry.streaming&&r()===t().length-1}},get throttle(){return e.entry.streaming}})),i})()},get children(){var t=Fs();return t.firstChild,X(t,W(Zs,{get text(){return n.text},class:`thinking-body markdown-body`,get throttle(){return e.entry.streaming}}),null),j(()=>t.open=ss()),t}})}),null),X(n,W(K,{get when(){return q(()=>e.entry.stopReason===`error`)()&&e.entry.errorMessage},children:e=>(()=>{var t=Ls();return t.firstChild,X(t,e,null),t})()}),null),n})()}function Cc(e,t){return e?.kind===`entry`&&e.entry===t}function wc(e){let[t,n]=k(e);return{kind:`assistant-turn`,lead:e[0],entries:t,setEntries:n}}function Tc(e,t=[]){let n=[],r=0;for(;r<e.length;){let i=e[r];if(i?.kind===`assistant`){let a=[i];for(r+=1;e[r]?.kind===`tool`;)a.push(e[r]),r+=1;let o=t[n.length];if(o?.kind===`assistant-turn`&&o.lead===i){let e=L(o.entries);(e.length!==a.length||a.some((t,n)=>t!==e[n]))&&o.setEntries(a),n.push(o)}else n.push(wc(a));continue}if(i){let e=t[n.length];n.push(Cc(e,i)?e:{kind:`entry`,entry:i})}r+=1}return n}function Ec(e){return W(Te,{get children(){return[W(Ee,{get when(){return e.entry.kind===`user`},get children(){var t=Rs(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return X(n,W(K,{get when(){return ac(e.entry.text)},children:e=>(()=>{var t=Vs();return t.firstChild,X(t,e,null),t})()}),r),X(n,W(xc,{get text(){return ic(e.entry)}}),r),X(r,()=>e.userLabel),X(i,()=>e.entry.text),X(t,W(K,{get when(){return e.entry.images?.length},get children(){return W(vc,{get images(){return e.entry.images},get scope(){return e.imageScope},labels:gc})}}),null),t}}),W(Ee,{get when(){return e.entry.kind===`agent-result`},get children(){return W(Dc,{get entry(){return e.entry}})}}),W(Ee,{get when(){return e.entry.kind===`assistant`},get children(){return W(Sc,{get entry(){return e.entry},get who(){return e.who}})}}),W(Ee,{get when(){return e.entry.kind===`tool`},get children(){return W(bc,{get entry(){return e.entry},get imageScope(){return e.imageScope}})}}),W(Ee,{get when(){return e.entry.kind===`summary`},get children(){var t=zs(),n=t.firstChild.firstChild,r=n.nextSibling;return X(n,()=>e.entry.label===`compaction`?`context compacted`:`branch summary`,null),X(n,W(K,{get when(){return e.entry.tokensBefore},get children(){return[` `,`— `,q(()=>e.entry.tokensBefore.toLocaleString()),` tokens summarized`]}}),null),X(r,()=>e.entry.text),t}}),W(Ee,{get when(){return e.entry.kind===`custom`},get children(){var t=Bs(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return X(r,()=>e.entry.tag),X(i,()=>e.entry.text),t}})]}})}function Dc(e){return(()=>{var t=Us(),n=t.firstChild,r=n.firstChild;return r.firstChild,X(r,W(K,{get when(){return e.entry.header},get children(){var t=Hs();return X(t,()=>e.entry.header),t}}),null),X(n,W(Zs,{get text(){return e.entry.text},class:`entry-body markdown-body`}),null),t})()}function Oc(e){let t=()=>e.who??`dreb`,n=()=>e.userLabel??`you`,r=()=>e.imageScope??{runtimeKey:``},i=N(t=>Tc(e.entries,t)),[a,o]=k(150),s;M(()=>{let t=e.resetKey??e.entries;t!==s&&(s=t,o(150))});let c=N(()=>{let e=i(),t=a();return e.length>t?e.slice(-t):e}),l=()=>Math.max(0,i().length-c().length);return[W(K,{get when(){return l()>0},get children(){var e=Ws(),t=e.firstChild,n=t.firstChild.nextSibling,r=n.nextSibling.nextSibling;return r.nextSibling,t.$$click=()=>o(Math.min(i().length,a()+150)),X(t,()=>Math.min(150,l()),n),X(t,l,r),e}}),W(G,{get each(){return c()},children:e=>W(Te,{get children(){return[W(Ee,{get when(){return e.kind===`assistant-turn`},get children(){var i=Gs();return X(i,W(G,{get each(){return e.entries()},children:e=>W(Ec,{entry:e,get who(){return t()},get userLabel(){return n()},get imageScope(){return r()}})})),i}}),W(Ee,{get when(){return e.kind===`entry`},get children(){return W(Ec,{get entry(){return e.entry},get who(){return t()},get userLabel(){return n()},get imageScope(){return r()}})}})]}})})]}Ae([`click`]);var kc=J(`<p class=settings-error>`),Ac=J(`<p class=settings-success>`),jc=J(`<button type=button class=memory-nav-item><span>MEMORY.md</span><small>complete editable index`),Mc=J(`<div class=context-trust-warning><strong>Complete index warning:</strong> MEMORY.md is over 200 lines. The dashboard shows the full file for repair, while the agent prompt may only load the indexed prefix.`),Nc=J(`<div class=screen-fill><main class="container memories-screen"><div class=memories-head><div><h1>Memories</h1><p class=scope-note>Edit dreb memory only: global ~/.dreb/memory plus known project .dreb/memory scopes. Claude memory paths are never included.</p></div><button type=button class=btn>refresh</button></div><div class=memories-layout><aside class=memories-sidebar><section class=memory-panel><h2>Scopes</h2></section><section class=memory-panel><h2>Documents</h2></section></aside><section class=memory-editor>`),Pc=J(`<p class=muted>loading scopes…`),Fc=J(`<p class=muted>No active dreb memory scopes.`),Ic=J(`<button type=button class=memory-nav-item><span></span><small>`),Lc=J(`<p class=muted>loading documents…`),Rc=J(`<p class=muted>Memory directory is missing; nothing to edit.`),zc=J(`<p class=muted>MEMORY.md index missing.`),Bc=J(`<p class=muted>No memory entries.`),Vc=J(`<output class=memory-loading>loading selected memory…`),Hc=J(`<p class=muted>Select an existing memory document.`),Uc=J(`<button type=button class="btn btn-danger">delete entry`),Wc=J(`<div class=memory-doc-head><div><h2></h2><p class=scope-note> · revision </p></div><div class=head-actions><button type=button class=btn>reload`),Gc=J(`<p class=settings-error>Metadata error: `),Kc=J(`<div class=memory-edit-actions><button type=button class="btn btn-primary"></button><button type=button class=btn>revert draft</button><span class=muted>`),qc=J(`<textarea class=memory-textarea>`),Jc=J(`<details class=memory-preview open><summary>preview`),Yc=J(`<div class=memory-metadata><strong></strong><span></span><span>`),Xc=J(`<p>This deletes the entry file and first removes matching <code>[…](<!>)</code> or <code>[…](./<!>)</code> lines from MEMORY.md. If the index changed, deletion will fail with a conflict instead of leaving a dangling link.`),Zc=J(`<button type=button class=btn>cancel`),Qc=J(`<button type=button class="btn btn-danger">`),$c=`MEMORY.md`;function el(e){return e.metadata?`${e.metadata.name} · ${e.metadata.type}`:e.metadataError?`metadata error: ${e.metadataError}`:`metadata unavailable`}function tl(e,t){return e?e.kind===`index`?`MEMORY.md index`:e.metadata?.name??e.file:t??`memory`}function nl(e){if(e)return e.indexContent===null?e.entries[0]?.file:$c}function rl(e,t){if(!e||!t)return;let n;try{n=decodeURIComponent(e)}catch{return}if(n.startsWith(`./`)&&(n=n.slice(2)),!(!n||n.includes(`/`)||n.includes(`\\`)||n.includes(`?`)||n.includes(`#`)))return t.entries.some(e=>e.file===n)?n:void 0}function il(e){let[t,n]=k(),[r,i]=k(),[a,o]=k(),[s,c]=k(),[l,u]=k(``),[d,f]=k(!1),[p,m]=k(!1),[h,g]=k(),[_,{refetch:v}]=F(async()=>{try{return(await $.memoryScopes()).scopes}catch(e){return o(e instanceof Error?e.message:String(e)),[]}});M(()=>{let e=_();if(!e?.length)return;let r=t();(!r||!e.some(e=>e.id===r))&&n(e[0].id)});let[y,{mutate:b,refetch:x}]=F(()=>t(),async e=>{o(void 0),c(void 0);try{return await $.memoryListing(e)}catch(e){o(e instanceof Error?e.message:String(e));return}});M(()=>{let e=y();if(!e)return;let t=r(),n=new Set([...e.indexContent===null?[]:[$c],...e.entries.map(e=>e.file)]);(!t||!n.has(t))&&i(nl(e))});let[S,{mutate:C,refetch:w}]=F(()=>{let e=t(),n=r();return e&&n?{scopeId:e,file:n}:void 0},async e=>{o(void 0),c(void 0);try{return await $.memoryDocument(e.scopeId,e.file)}catch(e){o(e instanceof Error?e.message:String(e));return}});M(()=>{let e=S();!e||d()||u(e.content)});function T(e){t()!==e.id&&I(()=>{i(void 0),n(e.id),C(void 0),f(!1),u(``)})}function E(e){r()!==e&&(i(e),C(void 0),f(!1),u(``))}function D(e){let t=e.target?.closest(`a`);if(!(t instanceof HTMLAnchorElement))return;let n=rl(t.getAttribute(`href`),y());n&&(e.preventDefault(),E(n))}async function O(){await v(),await x(),r()&&await w()}async function A(){let e=t(),n=S();if(!(!e||!n)){m(!0),o(void 0),c(void 0);try{let t=await $.saveMemoryDocument(e,n.file,l(),n.revision);b(t.listing),t.document&&C(t.document),u(t.document?.content??l()),f(!1),c(`saved`)}catch(e){o(e?.status===409?`${e.message} Your draft is still here.`:e instanceof Error?e.message:String(e))}finally{m(!1)}}}async function N(){let e=t(),n=h(),r=y();if(!(!e||!n||n.kind!==`entry`||!r)){m(!0),o(void 0),c(void 0);try{let t=await $.deleteMemoryEntry(e,n.file,n.revision,r.indexRevision);b(t.listing),C(void 0),g(void 0),i(nl(t.listing)),f(!1),u(``),c(`deleted ${n.file}; index links cleaned up`)}catch(e){o(e instanceof Error?e.message:String(e))}finally{m(!1)}}}return(()=>{var n=Nc(),i=n.firstChild,o=i.firstChild,c=o.firstChild.nextSibling,m=o.nextSibling,v=m.firstChild,b=v.firstChild;b.firstChild;var x=b.nextSibling;x.firstChild;var C=v.nextSibling;return X(n,W(at,{get store(){return e.store},active:`memories`}),i),c.$$click=()=>void O(),X(i,W(K,{get when(){return a()},get children(){var e=kc();return X(e,a),e}}),m),X(i,W(K,{get when(){return s()},get children(){var e=Ac();return X(e,s),e}}),m),X(b,W(K,{get when(){return!_.loading},get fallback(){return Pc()},get children(){return W(K,{get when(){return(_()??[]).length>0},get fallback(){return Fc()},get children(){return W(G,{get each(){return _()??[]},children:e=>(()=>{var n=Ic(),r=n.firstChild,i=r.nextSibling;return n.$$click=()=>T(e),X(r,(()=>{var t=q(()=>e.kind===`global`);return()=>t()?`global`:e.label})()),X(i,(()=>{var t=q(()=>!!e.exists);return()=>t()?e.memoryDir:`${e.memoryDir} (missing)`})()),j(()=>n.classList.toggle(`active`,t()===e.id)),n})()})}})}}),null),X(x,W(K,{get when(){return!y.loading},get fallback(){return Lc()},get children(){return W(K,{get when(){return y()?.scope.exists},get fallback(){return Rc()},get children(){return[W(K,{get when(){return y()?.indexContent!==null},get fallback(){return zc()},get children(){var e=jc();return e.$$click=()=>E($c),j(()=>e.classList.toggle(`active`,r()===$c)),e}}),W(K,{get when(){return(y()?.entries.length??0)>0},get fallback(){return Bc()},get children(){return W(G,{get each(){return y()?.entries??[]},children:e=>(()=>{var t=Ic(),n=t.firstChild,i=n.nextSibling;return t.$$click=()=>E(e.file),X(n,()=>e.file),X(i,()=>el(e)),j(n=>{var i=r()===e.file,a=!!e.metadataError;return i!==n.e&&t.classList.toggle(`active`,n.e=i),a!==n.t&&t.classList.toggle(`error`,n.t=a),n},{e:void 0,t:void 0}),t})()})}})]}})}}),null),X(C,W(K,{get when(){return q(()=>!y.loading)()&&!S.loading},get fallback(){return Vc()},get children(){return[W(K,{get when(){return y()?.indexOverLimit},get children(){return Mc()}}),W(K,{get when(){return S()},get fallback(){return Hc()},children:e=>[(()=>{var t=Wc(),n=t.firstChild,i=n.firstChild,a=i.nextSibling,o=a.firstChild,s=n.nextSibling,c=s.firstChild;return X(i,()=>tl(e(),r())),X(a,()=>e().file,o),X(a,()=>e().revision.slice(0,12),null),c.$$click=()=>void w(),X(s,W(K,{get when(){return e().kind===`entry`},get children(){var t=Uc();return t.$$click=()=>g(e()),t}}),null),j(()=>c.disabled=S.loading),t})(),W(K,{get when(){return e().metadata},children:e=>(()=>{var t=Yc(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return X(n,()=>e().name),X(r,()=>e().type),X(i,()=>e().description),t})()}),W(K,{get when(){return e().metadataError},get children(){var t=Gc();return t.firstChild,X(t,()=>e().metadataError,null),t}}),(()=>{var t=Kc(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return n.$$click=()=>void A(),X(n,()=>p()?`saving…`:`save`),r.$$click=()=>{u(e().content),f(!1)},X(i,()=>d()?`unsaved draft`:`saved revision loaded`),j(e=>{var t=!d()||p(),i=!d()||p();return t!==e.e&&(n.disabled=e.e=t),i!==e.t&&(r.disabled=e.t=i),e},{e:void 0,t:void 0}),t})(),(()=>{var t=qc();return t.$$input=t=>{u(t.currentTarget.value),f(t.currentTarget.value!==e().content)},j(()=>t.value=l()),t})(),(()=>{var e=Jc();return e.firstChild,e.$$keydown=e=>{e.key===`Enter`&&D(e)},e.$$click=D,X(e,W(Zs,{get text(){return l()},throttle:!0}),null),e})()]})]}})),X(i,W(K,{get when(){return h()},children:e=>W(st,{get title(){return`Delete ${e().file}?`},onDismiss:()=>g(void 0),get actions(){return[(()=>{var e=Zc();return e.$$click=()=>g(void 0),e})(),(()=>{var e=Qc();return e.$$click=()=>void N(),X(e,()=>p()?`deleting…`:`delete entry`),j(()=>e.disabled=p()),e})()]},get children(){var t=Xc(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling;r.nextSibling;var i=n.nextSibling.nextSibling,a=i.firstChild.nextSibling;return a.nextSibling,X(n,()=>e().file,r),X(i,()=>e().file,a),t}})}),null),j(e=>{var t=_.loading||y.loading,n=y.loading||S.loading;return t!==e.e&&(c.disabled=e.e=t),n!==e.t&&Y(C,`aria-busy`,e.t=n),e},{e:void 0,t:void 0}),n})()}Ae([`click`,`input`,`keydown`]);var al=J(`<p class=pair-error>`),ol=J(`<main class=pair-card><span class=wordmark>dreb</span><h1>pair this device</h1><p class=sub>First login from a new device needs the current pairing code.</p><div class=identity><span class=row-line><span class=k>tailscale identity</span><span></span></span><span class=row-line><span class=k>allowlist</span><span class="chip chip-running"style=align-self:flex-end><span class=dot>●</span> allowed</span></span></div><div class=field><label for=pairing-pin>6-digit code</label><input id=pairing-pin class=pin-input type=text inputmode=numeric maxlength=6 autocomplete=one-time-code></div><p class=pin-hint>The code is shown in the dashboard <strong>Settings tab on the host machine</strong>. It rotates every 30 seconds.</p><div class=pair-actions><button type=button class="btn btn-primary"></button></div><div class=security-note><p><strong>Why a PIN?</strong> Your network identity got you here, but identity alone doesn't grant control. The code proves you can see the host machine's local dashboard — so a stolen or shared allowlist entry can't quietly gain access.</p><p><strong>What pairing grants.</strong> This browser gets a signed cookie for this host. It can chat with agents, run commands through them, browse the host's files, and upload/download — the same power as sitting at the terminal. Unpair anytime from settings → devices.`),sl=J(`<div class=pair-wrap>`),cl=J(`<p class="muted small">rejected identity: `),ll=J(`<main class=denied-card><span class=wordmark>dreb</span><h1>access denied</h1><p></p><p class="muted small">If this device should have access, add its Tailscale identity to the dashboard allowlist on the host and reload.`);function ul(e){let[t,n]=k(``),[r,i]=k(),[a,o]=k(!1),s=()=>e.store.auth(),c=()=>s()?.error&&!s()?.needsPairing,l=()=>typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 700px)`).matches;async function u(){o(!0),i(void 0);try{await $.pair(t()),await e.store.start(),e.store.navigate({screen:`fleet`})}catch(e){i(e instanceof Error?e.message:String(e))}finally{o(!1)}}return(()=>{var e=sl();return X(e,W(K,{get when(){return!c()},get fallback(){return(()=>{var e=ll(),t=e.firstChild.nextSibling.nextSibling,n=t.nextSibling;return X(t,()=>s()?.error),X(e,W(K,{get when(){return s()?.identity},get children(){var e=cl();return e.firstChild,X(e,()=>s().identity,null),e}}),n),e})()},get children(){var e=ol(),i=e.firstChild.nextSibling.nextSibling.nextSibling,o=i.firstChild,c=o.firstChild.nextSibling;o.nextSibling.firstChild.nextSibling;var d=i.nextSibling,f=d.firstChild.nextSibling,p=d.nextSibling.nextSibling,m=p.firstChild;return X(c,()=>s()?.identity??`unknown`),f.$$keydown=e=>{e.key===`Enter`&&t().length===6&&!l()&&u()},f.$$input=e=>n(e.currentTarget.value.replace(/\D/g,``).slice(0,6)),X(e,W(K,{get when(){return r()},get children(){var e=al();return X(e,r),e}}),p),m.$$click=u,X(m,()=>a()?`pairing…`:`pair device`),j(()=>m.disabled=t().length!==6||a()),j(()=>f.value=t()),e}})),e})()}Ae([`input`,`keydown`,`click`]);function dl(e,t){let n=e.trim(),r=/^\/([^\s]+)(?:\s+([\s\S]*))?$/.exec(n);if(!r)return;let i=t.find(e=>e.source===`builtin`&&e.name===r[1]);if(i)return{command:i,args:(r[2]??``).trim()}}async function fl(e,t,n){let r=t[e.command.name];if(r){await r(e.args);return}if(e.command.dashboard===!1){n(`/${e.command.name} is available only in the terminal UI.`);return}n(`/${e.command.name} isn't implemented in the dashboard yet — use the terminal UI.`)}function pl(e,t,n=8){let r=new Map;for(let t of e)(!r.get(t.name)||t.source===`builtin`)&&r.set(t.name,t);return[...r.values()].filter(e=>e.source!==`builtin`||e.dashboard!==!1).filter(e=>{let n=e.name.toLowerCase();return!t||n.startsWith(t)||n.includes(t)}).sort((e,n)=>{let r=e.name.toLowerCase(),i=n.name.toLowerCase();return(t?+!r.startsWith(t):+(e.source===`builtin`))-(t?+!i.startsWith(t):+(n.source===`builtin`))||e.name.localeCompare(n.name)}).slice(0,n)}function ml(e){return typeof DOMException<`u`&&e instanceof DOMException&&e.name===`AbortError`?!0:typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`}var hl=new Map,gl=new Map;function _l(e){return gl.get(e)}function vl(e,t){gl.set(e,t)}function yl(e){return hl.get(e)??[]}function bl(e,t){let n=hl.get(e)??[];n.push(t),hl.set(e,n.slice(-100))}function xl(e){hl.delete(e),gl.delete(e)}var Sl=J(`<p style=margin-bottom:12px>`),Cl=J(`<div class=recent-projects>`),wl=J(`<div class=field><input type=text>`),Tl=J(`<div class=field><textarea rows=8>`),El=J(`<button type=button class="btn btn-small">cancel`),Dl=J(`<button type=button class="btn btn-small btn-primary">confirm`),Ol=J(`<button type=button class="btn btn-small btn-primary">submit`),kl=J(`<button type=button>`),Al=J(`<h4 class=ask-question-title>`),jl=J(`<fieldset class=ask-options><legend class=ask-options-legend>Answer options`),Ml=J(`<textarea rows=5>`),Nl=J(`<div class="field ask-custom-field"><label class=ask-custom-label>`),Pl=J(`<div class=ask-actions><button type=button class="btn btn-small btn-danger"></button><button type=button class="btn btn-small btn-primary">submit`),Fl=J(`<div class=ask-question role=tabpanel>`),Il=J(`<span class=ask-option-check>✔`),Ll=J(`<label class=ask-option><span class=ask-option-index></span><input><span class=ask-option-label>`),Rl=J(`<input type=text placeholder="Type a different answer…">`),zl=J(`<span class=ask-wizard-countdown> (auto-stops in <!>s)`),Bl=J(`<div class=ask-tab-strip role=tablist aria-label=questions><button type=button role=tab class="ask-tab ask-tab-submit">Submit`),Vl=J(`<div class=ask-tab-panel><div class=ask-review role=tabpanel><ul class=ask-review-list></ul><div class=ask-actions><button type=button class="btn btn-small btn-danger"></button><button type=button class="btn btn-small btn-primary">Submit all`),Hl=J(`<section class=ask-wizard><header class=ask-wizard-header><span class=ask-wizard-title>`),Ul=J(`<span class=ask-tab-check role=img aria-label=answered>✓`),Wl=J(`<button type=button role=tab class=ask-tab>. `),Gl=J(`<div class=ask-tab-panel>`),Kl=J(`<li class=ask-review-item><span class=ask-review-question>`),ql=J(`<span class="ask-review-answer muted">(unanswered)`),Jl=J(`<span class=ask-review-answer>`),Yl=J(`<ul>`),Xl=J(`<section class=context-section><h3>`),Zl=J(`<p class="muted small">none`),Ql=J(`<p class=pair-error>`),$l=J(`<p class="muted small">loading…`),eu=J(`<p class="muted small">system prompt: custom`),tu=J(`<div class=context-modal-body>`),nu=J(`<li>`),ru=J(`<span class=muted> — `),iu=J(`<li><span>`),au=J(`<li><span></span><span class=muted> — `),ou=J(`<div class=model-scope-tabs role=tablist aria-label="model scope"><button type=button role=tab>scoped</button><button type=button role=tab>all`),su=J(`<div class=field style=margin-bottom:8px><input type=text placeholder="search models…">`),cu=J(`<div class="model-list session-model-list"style=max-height:320px>`),lu=J(`<p class="muted small">No matching models.`),uu=J(`<section class=model-provider-group><div class=model-provider-heading>`),du=J(`<span class=model-name>`),fu=J(`<span class=model-reasoning>think`),pu=J(`<button type=button class=model-row><span class=model-current></span><span class=model-id></span><span class=model-provider-badge>`),mu=J(`<div class=fork-message-list>`),hu=J(`<p class="muted small">`),gu=J(`<span class="muted small">current`),_u=J(`<button type=button class=fork-message><span class=fork-entry-id></span><span>`),vu=J(`<button type=button class=fork-message><span></span><span class="muted small"> messages`),yu=J(`<p class="muted small">Replace the current session with a JSONL session file.`),bu=J(`<div class=field><input type=text placeholder=/path/to/session.jsonl>`),xu=J(`<button type=button class="btn btn-small btn-primary">import and replace`),Su=J(`<span class=project>`),Cu=J(`<output class=switcher><span class=label>ctx</span> `),wu=J(`<span class=right><button type=button class="switcher optional model-switcher"><span class=label>model</span> <span class=value></span></button><button type=button class="switcher optional"><span class=label>think</span> </button><button type=button class=switcher>⋯`),Tu=J(`<div class=stats-popover>`),Eu=J(`<div class="session-bar-inner session-info-bar"><span class=session-info-left></span><button type=button class="session-info-right stats-trigger">`),Du=J(`<button type=button class="btn btn-small">model: `),Ou=J(`<button type=button class="btn btn-small">think: `),ku=J(`<div class=session-bar-inner style=justify-content:flex-end;gap:8px><a class="btn btn-small">export HTML</a><button type=button class="btn btn-small">compact now</button><button type=button class="btn btn-small">expand tools</button><button type=button class="btn btn-small">collapse tools</button><button type=button class="btn btn-small">rename</button><button type=button class="btn btn-small">fork</button><button type=button class="btn btn-small">loaded context</button><button type=button class="btn btn-small btn-danger">`),Au=J(`<span class=dock-collapsed-hint>`),ju=J(`<details class=tasks><summary>tasks — <!> of <!> done</summary><ul>`),Mu=J(`<details class="tasks subagents"><summary>subagents — <!> running · <!> done</summary><ul class=subagent-list>`),Nu=J(`<span class=working>● working`),Pu=J(`<button type=button class="btn btn-small btn-danger">`),Fu=J(`<div class=status-line>`),Iu=J(`<div class=queued-message-row><button type=button class="btn btn-small">restore to composer`),Lu=J(`<div class=attachment-strip>`),Ru=J(`<div class=command-popover role=listbox id=command-listbox aria-label="slash commands">`),zu=J(`<span class=mode-toggle role=radiogroup aria-label="send mode"><button type=button title="Deliver now — injected into the running turn">steer</button><button type=button title="Queue — delivered after the agent finishes">follow-up`),Bu=J(`<button type=button class=ghost-suggest>suggested: <code></code> <span class=key>tap`),Vu=J(`<div class=composer><textarea></textarea><div class=composer-row><input type=file multiple class=hidden-file-input><input type=file accept=image/* multiple class=hidden-file-input><button type=button class="btn btn-small"title="attach file (uploads to workspace and sends path)">📎 file</button><button type=button class="btn btn-small"title="attach image inline">🖼 photo</button><button type=button class="btn btn-primary btn-small send">send ↵`),Hu=J(`<div class=dock-inner>`),Uu=J(`<p>Summarize older context to free window space. The transcript keeps a summary card.`),Wu=J(`<div class=session-screen><header class=session-bar><div class="session-bar-inner session-bar-main"><a class=back href=#/>← fleet</a><span class=title></span><button type=button class=chrome-toggle></button></div></header><main class=chat><div class=chat-inner></div></main><footer class=dock><div class=dock-collapse-row><button type=button class=chrome-toggle>`),Gu=J(`<span>`),Ku=J(`<p class="muted small">loading stats…`),qu=J(`<div class=stats-grid><span>user messages</span><strong></strong><span>assistant messages</span><strong></strong><span>tool calls/results</span><strong>/</strong><span>input/output</span><strong> / </strong><span>cache read/write</span><strong> / </strong><span>total tokens</span><strong></strong><span>cost</span><strong>$`),Ju=J(`<p class=muted>loading transcript…`),Yu=J(`<div class=widget-block>`),Xu=J(`<li> `),Zu=J(`<li><button type=button class=agent-chip title="view this subagent's session"><span></span><span class=task> — `),Qu=J(`<button type=button class="btn btn-small btn-danger inline-stop">stop `),$u=J(`<div class=readonly-note>This session is closed; its transcript is read-only.`),ed=J(`<span class=queued-chip><span class=queued-kind>`),td=J(`<span class=attachment-file><span>📎 </span><span class=muted></span><button type=button aria-label="remove file attachment">×`),nd=J(`<span class=attachment-thumb><img><button type=button aria-label="remove image">×`),rd=J(`<span class=command-description>`),id=J(`<button type=button role=option class=command-option><span class=command-name>/</span><span class=command-source>`),ad=J(`<button type=button class="btn btn-small btn-primary">compact`),od=J(`<p class="muted small">loading forkable messages…`),sd=J(`<button type=button class="btn btn-small btn-primary">rename`),cd=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],ld=10*1024*1024,ud=`.dreb-dashboard-uploads`;function dd(e){return e?`${e.provider}/${e.id}`:`—`}function fd(e){if(!e)return`—`;let t=`${e.provider}/${e.id}`;return e.name?`${t} — ${e.name}`:t}function pd(e){return e<1e3?e.toString():e<1e4?`${(e/1e3).toFixed(1)}k`:e<1e6?`${Math.round(e/1e3)}k`:e<1e7?`${(e/1e6).toFixed(1)}M`:`${Math.round(e/1e6)}M`}function md(e){if(!e||e.rolling.count<3)return;let t={above:`↑`,below:`↓`,stable:`→`},n=e.delta.direction===`stable`?0:Math.round(Math.abs(e.delta.percentDelta)),r=e.delta.recentCount>=3&&e.delta.baselineCount>=3?` · ${n}% ${t[e.delta.direction]} median [${e.delta.baselineCount}]`:``;return`~${Math.round(e.rolling.median)} tok/s [${e.rolling.count}]${r}`}function hd(e,t){if(!t)return;let n=e?.models.find(e=>e.provider===t.provider&&e.modelId===t.id);return md(n)}function gd(e){return e.replace(/^\/home\/[^/]+/,`~`)}function _d(e,t){return`${e.replace(/\/+$/,``)}/${t}`}function vd(e){let t=e.trim().replace(/[\\/\0]/g,`_`);return t&&t!==`.`&&t!==`..`?t:`upload.bin`}function yd(e,t){return`${new Date().toISOString().replace(/[:.]/g,`-`)}-${t+1}-${vd(e.name||`upload.bin`)}`}function bd(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(1)} GB`}function xd(e,t){return`${e.provider}/${e.id} ${e.name??``}`.toLowerCase().includes(t)}function Sd(e){let t=new Map;for(let n of e){let e=t.get(n.provider)??[];e.push(n),t.set(n.provider,e)}return[...t.entries()].map(([e,t])=>({provider:e,models:t}))}function Cd(e){e.style.height=`auto`;let t=Math.max(120,Math.floor((window.innerHeight||800)*.4)),n=Math.min(e.scrollHeight,t);n>0&&(e.style.height=`${n}px`),e.style.overflowY=e.scrollHeight>t?`auto`:`hidden`}function wd(e){let[t,n]=k(e.request.prefill??``),r=t=>e.onRespond({type:`extension_ui_response`,id:e.request.id,...t});return W(st,{get title(){return e.request.title},onDismiss:()=>r({cancelled:!0}),get actions(){return W(K,{get when(){return e.request.method!==`select`},get children(){return[(()=>{var e=El();return e.$$click=()=>r({cancelled:!0}),e})(),W(K,{get when(){return e.request.method===`confirm`},get children(){var e=Dl();return e.$$click=()=>r({confirmed:!0}),e}}),W(K,{get when(){return e.request.method===`input`||e.request.method===`editor`},get children(){var e=Ol();return e.$$click=()=>r({value:t()}),e}})]}})},get children(){return[W(K,{get when(){return e.request.message},get children(){var t=Sl();return X(t,()=>e.request.message),t}}),W(K,{get when(){return e.request.method===`select`},get children(){var t=Cl();return X(t,W(G,{get each(){return e.request.options??[]},children:e=>(()=>{var t=kl();return t.$$click=()=>r({value:e}),X(t,e),t})()})),t}}),W(K,{get when(){return e.request.method===`input`},get children(){var r=wl(),i=r.firstChild;return i.$$input=e=>n(e.currentTarget.value),j(()=>Y(i,`placeholder`,e.request.placeholder)),j(()=>i.value=t()),r}}),W(K,{get when(){return e.request.method===`editor`},get children(){var e=Tl(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e}})]}})}function Td(e){let t=e.target,n=t?.tagName;return n===`INPUT`||n===`TEXTAREA`||t?.isContentEditable===!0}function Ed(e){let t=()=>e.request.questions??[],n=()=>t().length,r=()=>n()>=2,i,[a,o]=k(t().map(()=>({selected:[],customText:``})));M(()=>{let e=n();o(n=>n.length===e?n:t().map((e,t)=>n[t]??{selected:[],customText:``}))});let[s,c]=k(0),l=()=>r()&&s()===n(),u=t=>e.onRespond({type:`extension_ui_response`,id:e.request.id,...t}),d=e=>t()[e]?.options??[],f=e=>t()[e]?.allowFreeText!==!1,p=e=>t()[e]?.multiSelect===!0&&d(e).length>0,m=(e,t)=>o(n=>n.map((n,r)=>r===e?t(n):n)),h=(e,t)=>{m(e,n=>{if(p(e)){let e=n.selected.includes(t)?n.selected.filter(e=>e!==t):[...n.selected,t];return{...n,selected:e}}return{...n,selected:[t]}})},g=(e,t)=>m(e,e=>({...e,customText:t})),_=e=>{let t=a()[e];return t?t.selected.length>0||t.customText.trim().length>0:!1},v=e=>{let t=a()[e];if(!t)return;let n=[...t.selected],r=t.customText.trim();return r&&n.push(r),n.length>0?n.join(`, `):void 0},y=()=>{e.stopping||e.onStop()},b=()=>{let e=a().map(e=>{let t=e.selected,n=e.customText.trim()||void 0;return t.length>0||n?{selected:t,customText:n}:{selected:[],skipped:!0}});u({answers:e})},x=e=>{if(e.key===`Escape`){e.preventDefault(),y();return}if(e.key===`Enter`&&n()===1&&!l()){let t=e.target;t&&i?.contains(t)&&t.tagName!==`TEXTAREA`&&t.tagName!==`BUTTON`&&(e.preventDefault(),b());return}if(r()&&(e.key===`ArrowLeft`||e.key===`ArrowRight`||e.key===`Tab`)){if(Td(e))return;let t=n(),r=e.key===`ArrowLeft`?-1:1;e.preventDefault(),c(e=>{let n=e+r;return n<0?t:n>t?0:n});return}if(!l()&&/^[1-9]$/.test(e.key)&&!Td(e)){let t=s(),n=d(t),r=Number(e.key)-1;r<n.length&&(e.preventDefault(),h(t,n[r]))}};R(()=>window.addEventListener(`keydown`,x)),z(()=>window.removeEventListener(`keydown`,x));let S=typeof e.request.expiresAt==`number`?e.request.expiresAt:e.request.timeout&&e.request.timeout>0?Date.now()+e.request.timeout:void 0,C=()=>S===void 0?0:Math.max(0,Math.ceil((S-Date.now())/1e3)),[w,T]=k(C());if(S!==void 0){let e,t=()=>{let t=C();T(t),t<=0&&(e!==void 0&&clearInterval(e),e=void 0,y())};R(()=>{t(),S>Date.now()&&(e=setInterval(t,1e3))}),z(()=>{e!==void 0&&clearInterval(e)})}let E=(t,r)=>(()=>{var i=Fl();return X(i,W(K,{get when(){return t.title},get children(){var e=Al();return X(e,()=>t.title),e}}),null),X(i,W(Zs,{get text(){return t.question??``},class:`ask-question-body markdown-body`}),null),X(i,W(K,{get when(){return d(r).length>0},get children(){var t=jl();return t.firstChild,X(t,W(G,{get each(){return d(r)},children:(t,n)=>(()=>{var i=Ll(),o=i.firstChild,s=o.nextSibling,c=s.nextSibling;return X(o,()=>n()+1),s.addEventListener(`change`,()=>h(r,t)),X(c,t),X(i,W(K,{get when(){return a()[r]?.selected.includes(t)},get children(){return Il()}}),null),j(n=>{var o=!!a()[r]?.selected.includes(t),c=p(r)?`checkbox`:`radio`,l=p(r)?void 0:`ask-option-input--hidden`,u=`ask-${e.request.id}-${r}`;return o!==n.e&&i.classList.toggle(`selected`,n.e=o),c!==n.t&&Y(s,`type`,n.t=c),l!==n.a&&je(s,n.a=l),u!==n.o&&Y(s,`name`,n.o=u),n},{e:void 0,t:void 0,a:void 0,o:void 0}),j(()=>s.checked=a()[r]?.selected.includes(t)),i})()}),null),t}}),null),X(i,W(K,{get when(){return f(r)},get children(){var n=Nl(),i=n.firstChild;return X(i,()=>d(r).length>0?`Or type your own answer`:`Your answer`),X(n,W(K,{get when(){return t.multiline},get fallback(){return(()=>{var t=Rl();return t.$$input=e=>g(r,e.currentTarget.value),j(()=>Y(t,`id`,`ask-custom-${e.request.id}-${r}`)),j(()=>t.value=a()[r]?.customText??``),t})()},get children(){var t=Ml();return t.$$input=e=>g(r,e.currentTarget.value),j(()=>Y(t,`id`,`ask-custom-${e.request.id}-${r}`)),j(()=>t.value=a()[r]?.customText??``),t}}),null),j(()=>Y(i,`for`,`ask-custom-${e.request.id}-${r}`)),n}}),null),X(i,W(K,{get when(){return n()===1},get children(){var t=Pl(),n=t.firstChild,r=n.nextSibling;return n.$$click=y,X(n,()=>e.stopping?`stopping…`:`■ stop agent`),r.$$click=b,j(()=>n.disabled=e.stopping),t}}),null),i})();return(()=>{var a=Hl(),o=a.firstChild,u=o.firstChild,d=i;return typeof d==`function`?Fe(d,a):i=a,X(u,()=>e.request.title),X(o,W(K,{when:S!==void 0,get children(){var e=zl(),t=e.firstChild.nextSibling;return t.nextSibling,X(e,w,t),e}}),null),X(a,W(K,{get when(){return r()},get children(){var e=Bl(),r=e.firstChild;return X(e,W(G,{get each(){return t()},children:(e,t)=>(()=>{var n=Wl(),r=n.firstChild;return n.$$click=()=>c(t()),X(n,()=>t()+1,r),X(n,()=>e.title??e.question,null),X(n,W(K,{get when(){return _(t())},get children(){return Ul()}}),null),j(e=>{var r=s()===t(),i=s()===t(),a=!!_(t());return r!==e.e&&Y(n,`aria-selected`,e.e=r),i!==e.t&&n.classList.toggle(`selected`,e.t=i),a!==e.a&&n.classList.toggle(`answered`,e.a=a),e},{e:void 0,t:void 0,a:void 0}),n})()}),r),r.$$click=()=>c(n()),j(e=>{var t=l(),n=!!l();return t!==e.e&&Y(r,`aria-selected`,e.e=t),n!==e.t&&r.classList.toggle(`selected`,e.t=n),e},{e:void 0,t:void 0}),e}}),null),X(a,W(G,{get each(){return t()},children:(e,t)=>(()=>{var n=Gl();return X(n,()=>E(e,t())),j(()=>n.classList.toggle(`hidden`,s()!==t())),n})()}),null),X(a,W(K,{get when(){return r()},get children(){var n=Vl(),r=n.firstChild.firstChild,i=r.nextSibling.firstChild,a=i.nextSibling;return X(r,W(G,{get each(){return t()},children:(e,t)=>(()=>{var n=Kl(),r=n.firstChild;return X(r,()=>e.title??e.question),X(n,W(K,{get when(){return v(t())},get fallback(){return ql()},children:e=>(()=>{var t=Jl();return X(t,e),t})()}),null),n})()})),i.$$click=y,X(i,()=>e.stopping?`stopping…`:`cancel`),a.$$click=b,j(t=>{var r=!l(),a=e.stopping;return r!==t.e&&n.classList.toggle(`hidden`,t.e=r),a!==t.t&&(i.disabled=t.t=a),t},{e:void 0,t:void 0}),n}}),null),j(()=>Y(a,`aria-label`,e.request.title)),a})()}function Dd(e){let t=(e,t)=>(()=>{var n=Xl(),r=n.firstChild;return X(r,e),X(n,W(K,{get when(){return t.length>0},get fallback(){return Zl()},get children(){var e=Yl();return X(e,t),e}}),null),n})();return W(st,{title:`loaded context`,get onDismiss(){return e.onClose},get children(){return[W(K,{get when(){return e.error},get children(){var t=Ql();return X(t,()=>e.error),t}}),W(K,{get when(){return e.resources},get fallback(){return $l()},children:e=>(()=>{var n=tu();return X(n,()=>t(`context files`,e().contextFiles.map(e=>(()=>{var t=nu();return X(t,()=>gd(e.path)),j(()=>Y(t,`title`,e.path)),t})())),null),X(n,()=>t(`skills`,e().skills.map(e=>(()=>{var t=iu(),n=t.firstChild;return X(n,()=>e.name),X(t,W(K,{get when(){return e.description},get children(){var t=ru();return t.firstChild,X(t,()=>e.description,null),t}}),null),t})())),null),X(n,()=>t(`extensions`,e().extensions.map(e=>(()=>{var t=au(),n=t.firstChild,r=n.nextSibling;return r.firstChild,X(n,()=>e.name??`extension`),X(r,()=>gd(e.path),null),j(()=>Y(t,`title`,e.path)),t})())),null),X(n,()=>t(`prompt templates`,e().promptTemplates.map(e=>(()=>{var t=nu();return X(t,()=>e.name),t})())),null),X(n,W(K,{get when(){return e().systemPromptPresent},get children(){return eu()}}),null),n})()})]}})}function Od(e){let[t,n]=k([]),[r,i]=k(e.initialFilter??``),[a,o]=k((e.state?.scopedModels?.length??0)>0?`scoped`:`all`),[s,c]=k();R(async()=>{try{let{models:t}=await $.models(e.sessionKey);n(t)}catch(e){c(e instanceof Error?e.message:String(e))}});let l=N(()=>(e.state?.scopedModels??[]).map(e=>({provider:e.provider,id:e.id,name:e.name,reasoning:e.reasoning}))),u=()=>l().length>0,d=()=>a()===`scoped`&&u()?l():t(),f=N(()=>{let e=r().toLowerCase();return Sd(d().filter(t=>!e||xd(t,e)).slice(0,100))}),p=t=>e.state?.model?.provider===t.provider&&e.state?.model?.id===t.id;async function m(t){try{let n=await $.setModel(e.sessionKey,t.provider,t.id);e.onSelected(n),e.onClose()}catch(e){c(e instanceof Error?e.message:String(e))}}return W(st,{title:`select model`,get onDismiss(){return e.onClose},class:`model-picker-modal`,get children(){return[W(K,{get when(){return u()},get children(){var e=ou(),t=e.firstChild,n=t.nextSibling;return t.$$click=()=>o(`scoped`),n.$$click=()=>o(`all`),j(e=>{var r=a()===`scoped`,i=a()===`scoped`,o=a()===`all`,s=a()===`all`;return r!==e.e&&Y(t,`aria-selected`,e.e=r),i!==e.t&&t.classList.toggle(`selected`,e.t=i),o!==e.a&&Y(n,`aria-selected`,e.a=o),s!==e.o&&n.classList.toggle(`selected`,e.o=s),e},{e:void 0,t:void 0,a:void 0,o:void 0}),e}}),(()=>{var e=su(),t=e.firstChild;return t.$$input=e=>i(e.currentTarget.value),j(()=>t.value=r()),e})(),W(K,{get when(){return s()},get children(){var e=Ql();return X(e,s),e}}),(()=>{var e=cu();return X(e,W(K,{get when(){return f().length>0},get fallback(){return lu()},get children(){return W(G,{get each(){return f()},children:e=>(()=>{var t=uu(),n=t.firstChild;return X(n,()=>e.provider),X(t,W(G,{get each(){return e.models},children:e=>(()=>{var t=pu(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return t.$$click=()=>m(e),X(n,()=>p(e)?`✓`:``),X(r,()=>e.id),X(t,W(K,{get when(){return e.name},get children(){var t=du();return X(t,()=>e.name),t}}),i),X(i,()=>e.provider),X(t,W(K,{get when(){return e.reasoning},get children(){return fu()}}),null),j(n=>{var r=!!p(e),i=fd(e);return r!==n.e&&t.classList.toggle(`current`,n.e=r),i!==n.t&&Y(t,`title`,n.t=i),n},{e:void 0,t:void 0}),t})()}),null),t})()})}})),e})()]}})}function kd(e){let t=[],n=[...e].reverse().map(e=>({node:e,depth:0}));for(;n.length>0;){let e=n.pop();if(!e)break;t.push(e);for(let t=e.node.children.length-1;t>=0;--t)n.push({node:e.node.children[t],depth:e.depth+1})}return t}function Ad(e){return W(st,{title:`session tree`,get onDismiss(){return e.onClose},get children(){return[W(K,{get when(){return e.error},get children(){var t=Ql();return X(t,()=>e.error),t}}),W(K,{get when(){return e.roots.length>0},get fallback(){return(()=>{var t=hu();return X(t,()=>e.loading?`loading tree…`:`No session entries yet.`),t})()},get children(){var t=mu();return X(t,W(G,{get each(){return kd(e.roots)},children:({node:t,depth:n})=>(()=>{var r=_u(),i=r.firstChild,a=i.nextSibling;return r.$$click=()=>e.onNavigate(t.id),Pe(r,`padding-left`,`${12+n*18}px`),X(i,()=>t.id.slice(0,8)),X(a,()=>t.label??(t.preview||t.type)),X(r,W(K,{get when(){return t.id===e.leafId},get children(){return gu()}}),null),j(()=>r.disabled=t.id===e.leafId),r})()})),t}})]}})}function jd(e){return W(st,{title:`resume session`,get onDismiss(){return e.onClose},get children(){return[W(K,{get when(){return e.error},get children(){var t=Ql();return X(t,()=>e.error),t}}),W(K,{get when(){return e.sessions.length>0},get fallback(){return(()=>{var t=hu();return X(t,()=>e.loading?`loading sessions…`:`No other sessions found.`),t})()},get children(){var t=mu();return X(t,W(G,{get each(){return e.sessions},children:t=>(()=>{var n=vu(),r=n.firstChild,i=r.nextSibling,a=i.firstChild;return n.$$click=()=>e.onResume(t.path),X(r,()=>t.name??(t.firstMessage||t.path)),X(i,()=>t.messageCount,a),n})()})),t}})]}})}function Md(e){let[t,n]=k(e.initialPath);return W(st,{title:`import session`,get onDismiss(){return e.onClose},get actions(){return[(()=>{var t=El();return Me(t,`click`,e.onClose,!0),t})(),(()=>{var n=xu();return n.$$click=()=>e.onImport(t().trim()),j(()=>n.disabled=!t().trim()),n})()]},get children(){return[yu(),(()=>{var e=bu(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e})(),W(K,{get when(){return e.error},get children(){var t=Ql();return X(t,()=>e.error),t}})]}})}function Nd(e){let t=()=>e.store.sessions[e.sessionKey],n=N(()=>e.store.fleet().runtimes.find(t=>t.key===e.sessionKey)),[r,i]=k(_l(e.sessionKey)??``),[a,o]=k(`steer`),[s,c]=k(!1),[l,u]=k(!1),[d,f]=k(!1),[p,m]=k(``),[h,g]=k(!1),[_,v]=k(!1),[y,b]=k(!1),[x,S]=k(!1),[C,w]=k(!1),[T,E]=k(!1),[D,O]=k(!1),[A,P]=k(),[F,I]=k(),[L,ee]=k(0),[te,ne]=k(),[re,ie]=k(),[ae,B]=k(),[oe,V]=k(),[se,H]=k([]),[ce,le]=k(!1),[U,ue]=k(0),[de,fe]=k(),[pe,me]=k(),[he,ge]=k({steering:[],followUp:[]}),[_e,ve]=k([]),[ye,be]=k([]),[xe,Se]=k(),[Ce,we]=k(!1),[Te,Ee]=k([]),[De,Oe]=k(),[ke,J]=k(!1),[Ae,Me]=k([]),[Ne,Pe]=k(null),[Ie,Le]=k(!1),[Re,ze]=k(),[Be,Ve]=k(!1),[He,Ue]=k([]),[We,Ge]=k(!1),[Ke,qe]=k(),[Je,Ye]=k(!1),[Xe,Ze]=k(``),[Qe,$e]=k(),[et,tt]=k(!1),[nt,rt]=k(),it,at,lt,ut,dt,ft,Z=!1,Q=()=>t()?.closed,pt=()=>!Q()&&(t()?.streaming??!1),mt=()=>!Q()&&(t()?.compacting??!1),ht=()=>(t()?.statusEntries??[]).some(e=>e.key===`paused`),gt=()=>Object.values(t()?.backgroundAgents??{}).some(e=>e.status===`running`),_t=()=>!Q()&&(pt()||mt()||ht()||gt()),vt=()=>Q()?[]:(t()?.statusEntries??[]).filter(e=>e.key===`compaction`||e.key===`retry`),yt=zo({scroller:()=>it});async function bt(t=!1){if(Q())return;let[n,r,i]=await Promise.allSettled([$.stats(e.sessionKey),$.performance(e.sessionKey),$.branch(e.sessionKey)]),a=t?await Promise.allSettled([$.dailyCost()]):void 0;if(Z||Q())return;n.status===`fulfilled`&&ne(n.value),r.status===`fulfilled`&&ie(r.value),i.status===`fulfilled`&&B(i.value.branch),a?.[0]?.status===`fulfilled`&&V(a[0].value.cost);let o=[n,r,i,...a??[]].find(e=>e.status===`rejected`);o?.status===`rejected`&&P(o.reason instanceof Error?o.reason.message:String(o.reason))}async function xt(){if(!Q())try{let{commands:t}=await $.commands(e.sessionKey);Z||H(t)}catch(e){!Z&&!Q()&&P(e instanceof Error?e.message:String(e))}}async function St(){E(!0),me(void 0);try{fe(await $.resources(e.sessionKey))}catch(e){me(e instanceof Error?e.message:String(e))}}async function Ct(){if(!Q())try{ge(await $.pending(e.sessionKey))}catch(e){Q()||P(e instanceof Error?e.message:String(e))}}let wt=new Set,Tt=async t=>{let n=typeof t.id==`string`?t.id:void 0;if(!(n&&wt.has(n))){n&&wt.add(n);try{await $.extensionUiResponse(e.sessionKey,t),n&&e.store.resolveUiRequest(e.sessionKey,n)}catch(e){P(e instanceof Error?e.message:String(e))}finally{n&&wt.delete(n)}}};function Et(e){let t=atob(e);return Uint8Array.from(t,e=>e.charCodeAt(0))}function Dt(e){let t=``,n=32768;for(let r=0;r<e.length;r+=n)t+=String.fromCharCode(...e.subarray(r,r+n));return btoa(t)}async function Ot(e){return Dt(new Uint8Array(await e.arrayBuffer()))}function kt(e){URL.revokeObjectURL(e.previewUrl)}function At(){for(let e of _e())kt(e);ve([])}function jt(e){ve(t=>{let n=t[e];return n&&kt(n),t.filter((t,n)=>n!==e)})}function Mt(e){if(_e().reduce((e,t)=>e+t.size,0)+e>Ut)throw Error(`Images too large: total inline images exceed ${bd(Ut)}`)}function Nt(e,t,n){return{blob:e,mimeType:t,fileName:n,size:e.size,previewUrl:URL.createObjectURL(e)}}function Pt(e,t,n){let r=Et(e.data);return Nt(new Blob([r],{type:e.mimeType}),e.mimeType,`queued-image-${t+1}-${n+1}`)}function Ft(e){return[...e.steeringMessages??e.steering.map(e=>({text:e})),...e.followUpMessages??e.followUp.map(e=>({text:e}))]}function It(e){let t=[];for(let[n,r]of e.entries())for(let[e,i]of(r.images??[]).entries())t.push(Pt(i,n,e));return t}function Lt(e){for(let t of e)kt(t)}function Rt(e){let t=e.map(e=>e.text).join(`
69
+ `]})),t})()}function uc(e){if(e.toolName!==`edit`)return;let t=e.details?.diff;return typeof t==`string`?t:void 0}var dc=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`]),fc=/^[0-9a-f]{64}$/,pc=1024*1024;function mc(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:e>=1024?`${Math.ceil(e/1024)} KB`:`${e} B`}var hc={alt:`Tool result`,originalAriaLabel:`Original tool-result image`,enlargedAlt:`Enlarged tool-result preview`},gc={alt:`Uploaded image`,originalAriaLabel:`Original uploaded image`,enlargedAlt:`Enlarged uploaded-image preview`};function _c(e){let[t,n]=k(),[r,i]=k(),[a,o]=k(),[s,c]=k(!1),l=t=>gt(e.scope.runtimeKey,e.image.id,t,e.scope.agentId),u=e=>{let t=l(e);if(!t){o(`Invalid image reference`);return}o(void 0),i(e),n(t)};M(()=>{let e=cs();c(!1),o(void 0),e===`previews`?u(`preview`):e===`originals`?u(`original`):(n(void 0),i(void 0))});let d=()=>{e.image.size>pc&&!window.confirm(`Load the ${mc(e.image.size)} original image? This may use significant data.`)||u(`original`)},f=e=>{e.key===`Escape`&&c(!1)};return R(()=>window.addEventListener(`keydown`,f)),z(()=>window.removeEventListener(`keydown`,f)),(()=>{var l=bs(),f=l.firstChild,p=f.firstChild,m=p.firstChild;return X(l,W(K,{get when(){return t()},get fallback(){return(()=>{var t=xs(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return X(n,()=>e.image.mimeType.replace(`image/`,``).toUpperCase(),r),X(n,()=>mc(e.image.size),null),i.$$click=()=>u(`preview`),X(i,()=>a()?`retry preview`:`load preview`),t})()},children:t=>(()=>{var a=Ss(),s=a.firstChild;return a.$$click=()=>r()===`preview`&&c(!0),s.addEventListener(`error`,()=>{o(`Could not load ${r()??`image`}`),n(void 0),i(void 0)}),j(n=>{var i=r()!==`preview`,o=r()===`preview`?`Enlarge image preview`:e.labels.originalAriaLabel,c=e.labels.alt,l=t();return i!==n.e&&(a.disabled=n.e=i),o!==n.t&&Y(a,`aria-label`,n.t=o),c!==n.a&&Y(s,`alt`,n.a=c),l!==n.o&&Y(s,`src`,n.o=l),n},{e:void 0,t:void 0,a:void 0,o:void 0}),a})()}),f),X(p,()=>e.image.mimeType.replace(`image/`,``).toUpperCase(),m),X(p,()=>mc(e.image.size),null),X(f,W(K,{get when(){return r()!==`original`},get children(){var t=vs();return t.firstChild,t.$$click=d,X(t,()=>mc(e.image.size),null),t}}),null),X(l,W(K,{get when(){return a()},children:e=>(()=>{var t=Cs();return X(t,e),t})()}),null),X(l,W(K,{get when(){return q(()=>!!(s()&&r()===`preview`))()&&t()},get children(){var n=ys(),r=n.firstChild,i=r.nextSibling.firstChild,a=i.nextSibling;return r.$$click=()=>c(!1),a.$$click=()=>c(!1),j(n=>{var r=t(),a=e.labels.enlargedAlt;return r!==n.e&&Y(i,`src`,n.e=r),a!==n.t&&Y(i,`alt`,n.t=a),n},{e:void 0,t:void 0}),n}}),null),l})()}function vc(e){let t=()=>e.images.filter(e=>dc.has(e.mimeType)&&fc.test(e.id)&&Number.isSafeInteger(e.size)&&e.size>0);return W(K,{get when(){return t().length>0},get children(){var n=ws();return X(n,W(G,{get each(){return t()},children:t=>W(_c,{image:t,get scope(){return e.scope},get labels(){return e.labels}})})),n}})}function yc(e){let[t,n]=k(!1),r=()=>e.text.length>qs;M(()=>{r()||n(!1)});let i=()=>r()&&!t()?e.text.slice(-204800):e.text;return[W(K,{get when(){return q(()=>!!r())()&&!t()},get children(){var t=Ts(),r=t.firstChild.nextSibling,i=r.nextSibling.nextSibling,a=i.nextSibling.nextSibling,o=a.firstChild.nextSibling;return o.nextSibling,X(t,()=>Xs(qs),r),X(t,()=>Xs(e.text.length),i),a.$$click=()=>n(!0),X(a,()=>Xs(e.text.length),o),t}}),W(K,{get when(){return e.markdown},get fallback(){return W(tc,{get text(){return i()},get language(){return e.language},get autoScroll(){return e.autoScroll},get throttle(){return e.throttle}})},get children(){return W(Zs,{get text(){return i()},get throttle(){return e.throttle}})}})]}function bc(e){let t=()=>oc(e.entry),n=()=>e.entry.args,r=()=>{if(e.entry.toolName===`suggest_next`)return e.entry.details},i=()=>uc(e.entry),a=()=>e.entry.toolName===`write`&&!e.entry.resultText&&typeof n()?.content==`string`?String(n()?.content):e.entry.resultText,o=()=>{if(e.entry.toolName===`read`||e.entry.toolName===`write`&&!e.entry.resultText)return Qs($s(n()))},s=()=>sc.has(e.entry.toolName)&&e.entry.status!==`error`,c=()=>e.entry.toolName===`bash`||e.entry.toolName===`bash (user)`,l=()=>cc(e.entry),u=()=>fs(e.entry.toolName),d=e.entry.toolName!==`ask_user`,[f,p]=k(u()||e.entry.status===`running`&&d),m=e.entry.status===`running`,h=!1,g=!1,_,v=e=>{f()!==e&&(g=!0,p(e),_&&clearTimeout(_),_=setTimeout(()=>{g=!1,_=void 0},0))};return M(()=>{let t=e.entry.status===`running`,n=u();t&&d?(h=!1,v(!0)):m?(h=!1,v(n)):h||v(n),m=t}),z(()=>{_&&clearTimeout(_)}),(()=>{var u=Os(),m=u.firstChild.firstChild,v=m.nextSibling,y=v.nextSibling;return u.addEventListener(`toggle`,t=>{let n=t.currentTarget.open;if(g){p(n);return}if(e.entry.status===`running`&&d&&!n){g=!0,t.currentTarget.open=!0,p(!0),_&&clearTimeout(_),_=setTimeout(()=>{g=!1,_=void 0},0);return}h=!0,p(n)}),X(m,()=>e.entry.toolName),X(v,()=>nc(e.entry)),X(y,()=>t().text),X(u,W(K,{get when(){return f()},get children(){return[W(K,{get when(){return e.entry.toolName===`bash`||e.entry.toolName===`bash (user)`},get children(){var e=Es(),t=e.firstChild;return X(t,()=>String(n()?.command??``)),e}}),W(G,{get each(){return l()},children:e=>(()=>{var t=ks(),n=t.firstChild;return X(n,()=>e.label),X(t,W(K,{get when(){return e.markdown},get fallback(){return W(tc,{get text(){return e.text},get language(){return e.language}})},get children(){return W(Zs,{get text(){return e.text}})}}),null),t})()}),W(K,{get when(){return e.entry.images?.length},get children(){var t=Ds();return X(t,W(vc,{get images(){return e.entry.images},get scope(){return e.imageScope},labels:hc})),t}}),W(Te,{get children(){return[W(Ee,{get when(){return r()},children:e=>(()=>{var t=As(),n=t.firstChild,r=n.firstChild.nextSibling;return X(t,W(K,{get when(){return e().summary},get children(){return W(Zs,{get text(){return e().summary}})}}),n),X(r,()=>e().suggestion),t})()}),W(Ee,{get when(){return i()},children:e=>(()=>{var t=Ds();return X(t,W(lc,{get text(){return e()}})),t})()}),W(Ee,{get when(){return a()},children:t=>(()=>{var n=Ds();return X(n,W(yc,{get text(){return t()},get language(){return o()},get markdown(){return s()},get autoScroll(){return c()},get throttle(){return e.entry.status===`running`}})),n})()})]}})]}}),null),j(e=>{var n=f(),r=`tool-status ${t().cls}`;return n!==e.e&&(u.open=e.e=n),r!==e.t&&je(y,e.t=r),e},{e:void 0,t:void 0}),u})()}function xc(e){let[t,n]=k(`idle`);async function r(){if(e.text){try{await navigator.clipboard.writeText(e.text),n(`copied`)}catch{n(`failed`)}setTimeout(()=>n(`idle`),1200)}}return(()=>{var n=js();return n.$$click=r,X(n,(()=>{var e=q(()=>t()===`copied`);return()=>e()?`copied`:t()===`failed`?`copy failed`:`copy`})()),j(()=>n.disabled=!e.text),n})()}function Sc(e){let t=()=>e.entry.blocks.filter(t=>e.entry.streaming||e.entry.stopReason!==`error`||t.kind!==`thinking`||t.text.trim().length>0);return(()=>{var n=Ps(),r=n.firstChild,i=r.firstChild;return X(i,()=>e.who),X(r,W(K,{get when(){return e.entry.model},get children(){return[Ms(),(()=>{var t=_s();return X(t,()=>e.entry.model),t})()]}}),null),X(r,W(K,{get when(){return e.entry.streaming},get children(){return[Ms(),Ns()]}}),null),X(r,W(xc,{get text(){return ic(e.entry)}}),null),X(n,W(G,{get each(){return t()},children:(n,r)=>W(K,{get when(){return n.kind===`thinking`},get fallback(){return(()=>{var i=Is();return X(i,W(Zs,{get text(){return n.text},get classList(){return{"streaming-cursor":e.entry.streaming&&r()===t().length-1}},get throttle(){return e.entry.streaming}})),i})()},get children(){var t=Fs();return t.firstChild,X(t,W(Zs,{get text(){return n.text},class:`thinking-body markdown-body`,get throttle(){return e.entry.streaming}}),null),j(()=>t.open=ss()),t}})}),null),X(n,W(K,{get when(){return q(()=>e.entry.stopReason===`error`)()&&e.entry.errorMessage},children:e=>(()=>{var t=Ls();return t.firstChild,X(t,e,null),t})()}),null),n})()}function Cc(e,t){return e?.kind===`entry`&&e.entry===t}function wc(e){let[t,n]=k(e);return{kind:`assistant-turn`,lead:e[0],entries:t,setEntries:n}}function Tc(e,t=[]){let n=[],r=0;for(;r<e.length;){let i=e[r];if(i?.kind===`assistant`){let a=[i];for(r+=1;e[r]?.kind===`tool`;)a.push(e[r]),r+=1;let o=t[n.length];if(o?.kind===`assistant-turn`&&o.lead===i){let e=L(o.entries);(e.length!==a.length||a.some((t,n)=>t!==e[n]))&&o.setEntries(a),n.push(o)}else n.push(wc(a));continue}if(i){let e=t[n.length];n.push(Cc(e,i)?e:{kind:`entry`,entry:i})}r+=1}return n}function Ec(e){return W(Te,{get children(){return[W(Ee,{get when(){return e.entry.kind===`user`},get children(){var t=Rs(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return X(n,W(K,{get when(){return ac(e.entry.text)},children:e=>(()=>{var t=Vs();return t.firstChild,X(t,e,null),t})()}),r),X(n,W(xc,{get text(){return ic(e.entry)}}),r),X(r,()=>e.userLabel),X(i,()=>e.entry.text),X(t,W(K,{get when(){return e.entry.images?.length},get children(){return W(vc,{get images(){return e.entry.images},get scope(){return e.imageScope},labels:gc})}}),null),t}}),W(Ee,{get when(){return e.entry.kind===`agent-result`},get children(){return W(Dc,{get entry(){return e.entry}})}}),W(Ee,{get when(){return e.entry.kind===`assistant`},get children(){return W(Sc,{get entry(){return e.entry},get who(){return e.who}})}}),W(Ee,{get when(){return e.entry.kind===`tool`},get children(){return W(bc,{get entry(){return e.entry},get imageScope(){return e.imageScope}})}}),W(Ee,{get when(){return e.entry.kind===`summary`},get children(){var t=zs(),n=t.firstChild.firstChild,r=n.nextSibling;return X(n,()=>e.entry.label===`compaction`?`context compacted`:`branch summary`,null),X(n,W(K,{get when(){return e.entry.tokensBefore},get children(){return[` `,`— `,q(()=>e.entry.tokensBefore.toLocaleString()),` tokens summarized`]}}),null),X(r,()=>e.entry.text),t}}),W(Ee,{get when(){return e.entry.kind===`custom`},get children(){var t=Bs(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return X(r,()=>e.entry.tag),X(i,()=>e.entry.text),t}})]}})}function Dc(e){return(()=>{var t=Us(),n=t.firstChild,r=n.firstChild;return r.firstChild,X(r,W(K,{get when(){return e.entry.header},get children(){var t=Hs();return X(t,()=>e.entry.header),t}}),null),X(n,W(Zs,{get text(){return e.entry.text},class:`entry-body markdown-body`}),null),t})()}function Oc(e){let t=()=>e.who??`dreb`,n=()=>e.userLabel??`you`,r=()=>e.imageScope??{runtimeKey:``},i=N(t=>Tc(e.entries,t)),[a,o]=k(150),s;M(()=>{let t=e.resetKey??e.entries;t!==s&&(s=t,o(150))});let c=N(()=>{let e=i(),t=a();return e.length>t?e.slice(-t):e}),l=()=>Math.max(0,i().length-c().length);return[W(K,{get when(){return l()>0},get children(){var e=Ws(),t=e.firstChild,n=t.firstChild.nextSibling,r=n.nextSibling.nextSibling;return r.nextSibling,t.$$click=()=>o(Math.min(i().length,a()+150)),X(t,()=>Math.min(150,l()),n),X(t,l,r),e}}),W(G,{get each(){return c()},children:e=>W(Te,{get children(){return[W(Ee,{get when(){return e.kind===`assistant-turn`},get children(){var i=Gs();return X(i,W(G,{get each(){return e.entries()},children:e=>W(Ec,{entry:e,get who(){return t()},get userLabel(){return n()},get imageScope(){return r()}})})),i}}),W(Ee,{get when(){return e.kind===`entry`},get children(){return W(Ec,{get entry(){return e.entry},get who(){return t()},get userLabel(){return n()},get imageScope(){return r()}})}})]}})})]}Ae([`click`]);var kc=J(`<p class=settings-error>`),Ac=J(`<p class=settings-success>`),jc=J(`<button type=button class=memory-nav-item><span>MEMORY.md</span><small>complete editable index`),Mc=J(`<div class=context-trust-warning><strong>Complete index warning:</strong> MEMORY.md is over 200 lines. The dashboard shows the full file for repair, while the agent prompt may only load the indexed prefix.`),Nc=J(`<div class=screen-fill><main class="container memories-screen"><div class=memories-head><div><h1>Memories</h1><p class=scope-note>Edit dreb memory only: global ~/.dreb/memory plus known project .dreb/memory scopes. Claude memory paths are never included.</p></div><button type=button class=btn>refresh</button></div><div class=memories-layout><aside class=memories-sidebar><section class=memory-panel><h2>Scopes</h2></section><section class=memory-panel><h2>Documents</h2></section></aside><section class=memory-editor>`),Pc=J(`<p class=muted>loading scopes…`),Fc=J(`<p class=muted>No active dreb memory scopes.`),Ic=J(`<button type=button class=memory-nav-item><span></span><small>`),Lc=J(`<p class=muted>loading documents…`),Rc=J(`<p class=muted>Memory directory is missing; nothing to edit.`),zc=J(`<p class=muted>MEMORY.md index missing.`),Bc=J(`<p class=muted>No memory entries.`),Vc=J(`<output class=memory-loading>loading selected memory…`),Hc=J(`<p class=muted>Select an existing memory document.`),Uc=J(`<button type=button class="btn btn-danger">delete entry`),Wc=J(`<div class=memory-doc-head><div><h2></h2><p class=scope-note> · revision </p></div><div class=head-actions><button type=button class=btn>reload`),Gc=J(`<p class=settings-error>Metadata error: `),Kc=J(`<div class=memory-edit-actions><button type=button class="btn btn-primary"></button><button type=button class=btn>revert draft</button><span class=muted>`),qc=J(`<textarea class=memory-textarea>`),Jc=J(`<details class=memory-preview open><summary>preview`),Yc=J(`<div class=memory-metadata><strong></strong><span></span><span>`),Xc=J(`<p>This deletes the entry file and first removes matching <code>[…](<!>)</code> or <code>[…](./<!>)</code> lines from MEMORY.md. If the index changed, deletion will fail with a conflict instead of leaving a dangling link.`),Zc=J(`<button type=button class=btn>cancel`),Qc=J(`<button type=button class="btn btn-danger">`),$c=`MEMORY.md`;function el(e){return e.metadata?`${e.metadata.name} · ${e.metadata.type}`:e.metadataError?`metadata error: ${e.metadataError}`:`metadata unavailable`}function tl(e,t){return e?e.kind===`index`?`MEMORY.md index`:e.metadata?.name??e.file:t??`memory`}function nl(e){if(e)return e.indexContent===null?e.entries[0]?.file:$c}function rl(e,t){if(!e||!t)return;let n;try{n=decodeURIComponent(e)}catch{return}if(n.startsWith(`./`)&&(n=n.slice(2)),!(!n||n.includes(`/`)||n.includes(`\\`)||n.includes(`?`)||n.includes(`#`)))return t.entries.some(e=>e.file===n)?n:void 0}function il(e){let[t,n]=k(),[r,i]=k(),[a,o]=k(),[s,c]=k(),[l,u]=k(``),[d,f]=k(!1),[p,m]=k(!1),[h,g]=k(),[_,{refetch:v}]=F(async()=>{try{return(await $.memoryScopes()).scopes}catch(e){return o(e instanceof Error?e.message:String(e)),[]}});M(()=>{let e=_();if(!e?.length)return;let r=t();(!r||!e.some(e=>e.id===r))&&n(e[0].id)});let[y,{mutate:b,refetch:x}]=F(()=>t(),async e=>{o(void 0),c(void 0);try{return await $.memoryListing(e)}catch(e){o(e instanceof Error?e.message:String(e));return}});M(()=>{let e=y();if(!e)return;let t=r(),n=new Set([...e.indexContent===null?[]:[$c],...e.entries.map(e=>e.file)]);(!t||!n.has(t))&&i(nl(e))});let[S,{mutate:C,refetch:w}]=F(()=>{let e=t(),n=r();return e&&n?{scopeId:e,file:n}:void 0},async e=>{o(void 0),c(void 0);try{return await $.memoryDocument(e.scopeId,e.file)}catch(e){o(e instanceof Error?e.message:String(e));return}});M(()=>{let e=S();!e||d()||u(e.content)});function T(e){t()!==e.id&&I(()=>{i(void 0),n(e.id),C(void 0),f(!1),u(``)})}function E(e){r()!==e&&(i(e),C(void 0),f(!1),u(``))}function D(e){let t=e.target?.closest(`a`);if(!(t instanceof HTMLAnchorElement))return;let n=rl(t.getAttribute(`href`),y());n&&(e.preventDefault(),E(n))}async function O(){await v(),await x(),r()&&await w()}async function A(){let e=t(),n=S();if(!(!e||!n)){m(!0),o(void 0),c(void 0);try{let t=await $.saveMemoryDocument(e,n.file,l(),n.revision);b(t.listing),t.document&&C(t.document),u(t.document?.content??l()),f(!1),c(`saved`)}catch(e){o(e?.status===409?`${e.message} Your draft is still here.`:e instanceof Error?e.message:String(e))}finally{m(!1)}}}async function N(){let e=t(),n=h(),r=y();if(!(!e||!n||n.kind!==`entry`||!r)){m(!0),o(void 0),c(void 0);try{let t=await $.deleteMemoryEntry(e,n.file,n.revision,r.indexRevision);b(t.listing),C(void 0),g(void 0),i(nl(t.listing)),f(!1),u(``),c(`deleted ${n.file}; index links cleaned up`)}catch(e){o(e instanceof Error?e.message:String(e))}finally{m(!1)}}}return(()=>{var n=Nc(),i=n.firstChild,o=i.firstChild,c=o.firstChild.nextSibling,m=o.nextSibling,v=m.firstChild,b=v.firstChild;b.firstChild;var x=b.nextSibling;x.firstChild;var C=v.nextSibling;return X(n,W(at,{get store(){return e.store},active:`memories`}),i),c.$$click=()=>void O(),X(i,W(K,{get when(){return a()},get children(){var e=kc();return X(e,a),e}}),m),X(i,W(K,{get when(){return s()},get children(){var e=Ac();return X(e,s),e}}),m),X(b,W(K,{get when(){return!_.loading},get fallback(){return Pc()},get children(){return W(K,{get when(){return(_()??[]).length>0},get fallback(){return Fc()},get children(){return W(G,{get each(){return _()??[]},children:e=>(()=>{var n=Ic(),r=n.firstChild,i=r.nextSibling;return n.$$click=()=>T(e),X(r,(()=>{var t=q(()=>e.kind===`global`);return()=>t()?`global`:e.label})()),X(i,(()=>{var t=q(()=>!!e.exists);return()=>t()?e.memoryDir:`${e.memoryDir} (missing)`})()),j(()=>n.classList.toggle(`active`,t()===e.id)),n})()})}})}}),null),X(x,W(K,{get when(){return!y.loading},get fallback(){return Lc()},get children(){return W(K,{get when(){return y()?.scope.exists},get fallback(){return Rc()},get children(){return[W(K,{get when(){return y()?.indexContent!==null},get fallback(){return zc()},get children(){var e=jc();return e.$$click=()=>E($c),j(()=>e.classList.toggle(`active`,r()===$c)),e}}),W(K,{get when(){return(y()?.entries.length??0)>0},get fallback(){return Bc()},get children(){return W(G,{get each(){return y()?.entries??[]},children:e=>(()=>{var t=Ic(),n=t.firstChild,i=n.nextSibling;return t.$$click=()=>E(e.file),X(n,()=>e.file),X(i,()=>el(e)),j(n=>{var i=r()===e.file,a=!!e.metadataError;return i!==n.e&&t.classList.toggle(`active`,n.e=i),a!==n.t&&t.classList.toggle(`error`,n.t=a),n},{e:void 0,t:void 0}),t})()})}})]}})}}),null),X(C,W(K,{get when(){return q(()=>!y.loading)()&&!S.loading},get fallback(){return Vc()},get children(){return[W(K,{get when(){return y()?.indexOverLimit},get children(){return Mc()}}),W(K,{get when(){return S()},get fallback(){return Hc()},children:e=>[(()=>{var t=Wc(),n=t.firstChild,i=n.firstChild,a=i.nextSibling,o=a.firstChild,s=n.nextSibling,c=s.firstChild;return X(i,()=>tl(e(),r())),X(a,()=>e().file,o),X(a,()=>e().revision.slice(0,12),null),c.$$click=()=>void w(),X(s,W(K,{get when(){return e().kind===`entry`},get children(){var t=Uc();return t.$$click=()=>g(e()),t}}),null),j(()=>c.disabled=S.loading),t})(),W(K,{get when(){return e().metadata},children:e=>(()=>{var t=Yc(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return X(n,()=>e().name),X(r,()=>e().type),X(i,()=>e().description),t})()}),W(K,{get when(){return e().metadataError},get children(){var t=Gc();return t.firstChild,X(t,()=>e().metadataError,null),t}}),(()=>{var t=Kc(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return n.$$click=()=>void A(),X(n,()=>p()?`saving…`:`save`),r.$$click=()=>{u(e().content),f(!1)},X(i,()=>d()?`unsaved draft`:`saved revision loaded`),j(e=>{var t=!d()||p(),i=!d()||p();return t!==e.e&&(n.disabled=e.e=t),i!==e.t&&(r.disabled=e.t=i),e},{e:void 0,t:void 0}),t})(),(()=>{var t=qc();return t.$$input=t=>{u(t.currentTarget.value),f(t.currentTarget.value!==e().content)},j(()=>t.value=l()),t})(),(()=>{var e=Jc();return e.firstChild,e.$$keydown=e=>{e.key===`Enter`&&D(e)},e.$$click=D,X(e,W(Zs,{get text(){return l()},throttle:!0}),null),e})()]})]}})),X(i,W(K,{get when(){return h()},children:e=>W(st,{get title(){return`Delete ${e().file}?`},onDismiss:()=>g(void 0),get actions(){return[(()=>{var e=Zc();return e.$$click=()=>g(void 0),e})(),(()=>{var e=Qc();return e.$$click=()=>void N(),X(e,()=>p()?`deleting…`:`delete entry`),j(()=>e.disabled=p()),e})()]},get children(){var t=Xc(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling;r.nextSibling;var i=n.nextSibling.nextSibling,a=i.firstChild.nextSibling;return a.nextSibling,X(n,()=>e().file,r),X(i,()=>e().file,a),t}})}),null),j(e=>{var t=_.loading||y.loading,n=y.loading||S.loading;return t!==e.e&&(c.disabled=e.e=t),n!==e.t&&Y(C,`aria-busy`,e.t=n),e},{e:void 0,t:void 0}),n})()}Ae([`click`,`input`,`keydown`]);var al=J(`<p class=pair-error>`),ol=J(`<main class=pair-card><span class=wordmark>dreb</span><h1>pair this device</h1><p class=sub>First login from a new device needs the current pairing code.</p><div class=identity><span class=row-line><span class=k>tailscale identity</span><span></span></span><span class=row-line><span class=k>allowlist</span><span class="chip chip-running"style=align-self:flex-end><span class=dot>●</span> allowed</span></span></div><div class=field><label for=pairing-pin>6-digit code</label><input id=pairing-pin class=pin-input type=text inputmode=numeric maxlength=6 autocomplete=one-time-code></div><p class=pin-hint>The code is shown in the dashboard <strong>Settings tab on the host machine</strong>. It rotates every 30 seconds.</p><div class=pair-actions><button type=button class="btn btn-primary"></button></div><div class=security-note><p><strong>Why a PIN?</strong> Your network identity got you here, but identity alone doesn't grant control. The code proves you can see the host machine's local dashboard — so a stolen or shared allowlist entry can't quietly gain access.</p><p><strong>What pairing grants.</strong> This browser gets a signed cookie for this host. It can chat with agents, run commands through them, browse the host's files, and upload/download — the same power as sitting at the terminal. Unpair anytime from settings → devices.`),sl=J(`<div class=pair-wrap>`),cl=J(`<p class="muted small">rejected identity: `),ll=J(`<main class=denied-card><span class=wordmark>dreb</span><h1>access denied</h1><p></p><p class="muted small">If this device should have access, add its Tailscale identity to the dashboard allowlist on the host and reload.`);function ul(e){let[t,n]=k(``),[r,i]=k(),[a,o]=k(!1),s=()=>e.store.auth(),c=()=>s()?.error&&!s()?.needsPairing,l=()=>typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 700px)`).matches;async function u(){o(!0),i(void 0);try{await $.pair(t()),await e.store.start(),e.store.navigate({screen:`fleet`})}catch(e){i(e instanceof Error?e.message:String(e))}finally{o(!1)}}return(()=>{var e=sl();return X(e,W(K,{get when(){return!c()},get fallback(){return(()=>{var e=ll(),t=e.firstChild.nextSibling.nextSibling,n=t.nextSibling;return X(t,()=>s()?.error),X(e,W(K,{get when(){return s()?.identity},get children(){var e=cl();return e.firstChild,X(e,()=>s().identity,null),e}}),n),e})()},get children(){var e=ol(),i=e.firstChild.nextSibling.nextSibling.nextSibling,o=i.firstChild,c=o.firstChild.nextSibling;o.nextSibling.firstChild.nextSibling;var d=i.nextSibling,f=d.firstChild.nextSibling,p=d.nextSibling.nextSibling,m=p.firstChild;return X(c,()=>s()?.identity??`unknown`),f.$$keydown=e=>{e.key===`Enter`&&t().length===6&&!l()&&u()},f.$$input=e=>n(e.currentTarget.value.replace(/\D/g,``).slice(0,6)),X(e,W(K,{get when(){return r()},get children(){var e=al();return X(e,r),e}}),p),m.$$click=u,X(m,()=>a()?`pairing…`:`pair device`),j(()=>m.disabled=t().length!==6||a()),j(()=>f.value=t()),e}})),e})()}Ae([`input`,`keydown`,`click`]);function dl(e,t){let n=e.trim(),r=/^\/([^\s]+)(?:\s+([\s\S]*))?$/.exec(n);if(!r)return;let i=t.find(e=>e.source===`builtin`&&e.name===r[1]);if(i)return{command:i,args:(r[2]??``).trim()}}async function fl(e,t,n){let r=t[e.command.name];if(r){await r(e.args);return}if(e.command.dashboard===!1){n(`/${e.command.name} is available only in the terminal UI.`);return}n(`/${e.command.name} isn't implemented in the dashboard yet — use the terminal UI.`)}function pl(e,t,n=8){let r=new Map;for(let t of e)(!r.get(t.name)||t.source===`builtin`)&&r.set(t.name,t);return[...r.values()].filter(e=>e.source!==`builtin`||e.dashboard!==!1).filter(e=>{let n=e.name.toLowerCase();return!t||n.startsWith(t)||n.includes(t)}).sort((e,n)=>{let r=e.name.toLowerCase(),i=n.name.toLowerCase();return(t?+!r.startsWith(t):+(e.source===`builtin`))-(t?+!i.startsWith(t):+(n.source===`builtin`))||e.name.localeCompare(n.name)}).slice(0,n)}function ml(e,t){return Math.max(120,Math.floor((e||800)*(t?.26:.4)))}function hl(e){return typeof DOMException<`u`&&e instanceof DOMException&&e.name===`AbortError`?!0:typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`}var gl=new Map,_l=new Map;function vl(e){return _l.get(e)}function yl(e,t){_l.set(e,t)}function bl(e){return gl.get(e)??[]}function xl(e,t){let n=gl.get(e)??[];n.push(t),gl.set(e,n.slice(-100))}function Sl(e){gl.delete(e),_l.delete(e)}var Cl=J(`<p style=margin-bottom:12px>`),wl=J(`<div class=recent-projects>`),Tl=J(`<div class=field><input type=text>`),El=J(`<div class=field><textarea rows=8>`),Dl=J(`<button type=button class="btn btn-small">cancel`),Ol=J(`<button type=button class="btn btn-small btn-primary">confirm`),kl=J(`<button type=button class="btn btn-small btn-primary">submit`),Al=J(`<button type=button>`),jl=J(`<h4 class=ask-question-title>`),Ml=J(`<fieldset class=ask-options><legend class=ask-options-legend>Answer options`),Nl=J(`<textarea rows=5>`),Pl=J(`<div class="field ask-custom-field"><label class=ask-custom-label>`),Fl=J(`<div class=ask-actions><button type=button class="btn btn-small btn-danger"></button><button type=button class="btn btn-small btn-primary">submit`),Il=J(`<div class=ask-question role=tabpanel>`),Ll=J(`<span class=ask-option-check>✔`),Rl=J(`<label class=ask-option><span class=ask-option-index></span><input><span class=ask-option-label>`),zl=J(`<input type=text placeholder="Type a different answer…">`),Bl=J(`<span class=ask-wizard-countdown> (auto-stops in <!>s)`),Vl=J(`<div class=ask-tab-strip role=tablist aria-label=questions><button type=button role=tab class="ask-tab ask-tab-submit">Submit`),Hl=J(`<div class=ask-tab-panel><div class=ask-review role=tabpanel><ul class=ask-review-list></ul><div class=ask-actions><button type=button class="btn btn-small btn-danger"></button><button type=button class="btn btn-small btn-primary">Submit all`),Ul=J(`<section class=ask-wizard><header class=ask-wizard-header><span class=ask-wizard-title>`),Wl=J(`<span class=ask-tab-check role=img aria-label=answered>✓`),Gl=J(`<button type=button role=tab class=ask-tab>. `),Kl=J(`<div class=ask-tab-panel>`),ql=J(`<li class=ask-review-item><span class=ask-review-question>`),Jl=J(`<span class="ask-review-answer muted">(unanswered)`),Yl=J(`<span class=ask-review-answer>`),Xl=J(`<ul>`),Zl=J(`<section class=context-section><h3>`),Ql=J(`<p class="muted small">none`),$l=J(`<p class=pair-error>`),eu=J(`<p class="muted small">loading…`),tu=J(`<p class="muted small">system prompt: custom`),nu=J(`<div class=context-modal-body>`),ru=J(`<li>`),iu=J(`<span class=muted> — `),au=J(`<li><span>`),ou=J(`<li><span></span><span class=muted> — `),su=J(`<div class=model-scope-tabs role=tablist aria-label="model scope"><button type=button role=tab>scoped</button><button type=button role=tab>all`),cu=J(`<div class=field style=margin-bottom:8px><input type=text placeholder="search models…">`),lu=J(`<div class="model-list session-model-list"style=max-height:320px>`),uu=J(`<p class="muted small">No matching models.`),du=J(`<section class=model-provider-group><div class=model-provider-heading>`),fu=J(`<span class=model-name>`),pu=J(`<span class=model-reasoning>think`),mu=J(`<button type=button class=model-row><span class=model-current></span><span class=model-id></span><span class=model-provider-badge>`),hu=J(`<div class=fork-message-list>`),gu=J(`<p class="muted small">`),_u=J(`<span class="muted small">current`),vu=J(`<button type=button class=fork-message><span class=fork-entry-id></span><span>`),yu=J(`<button type=button class=fork-message><span></span><span class="muted small"> messages`),bu=J(`<p class="muted small">Replace the current session with a JSONL session file.`),xu=J(`<div class=field><input type=text placeholder=/path/to/session.jsonl>`),Su=J(`<button type=button class="btn btn-small btn-primary">import and replace`),Cu=J(`<span class=project>`),wu=J(`<output class=switcher><span class=label>ctx</span> `),Tu=J(`<span class=right><button type=button class="switcher optional model-switcher"><span class=label>model</span> <span class=value></span></button><button type=button class="switcher optional"><span class=label>think</span> </button><button type=button class=switcher>⋯`),Eu=J(`<div class=stats-popover>`),Du=J(`<div class="session-bar-inner session-info-bar"><span class=session-info-left></span><button type=button class="session-info-right stats-trigger">`),Ou=J(`<button type=button class="btn btn-small">model: `),ku=J(`<button type=button class="btn btn-small">think: `),Au=J(`<div class=session-bar-inner style=justify-content:flex-end;gap:8px><a class="btn btn-small">export HTML</a><button type=button class="btn btn-small">compact now</button><button type=button class="btn btn-small">expand tools</button><button type=button class="btn btn-small">collapse tools</button><button type=button class="btn btn-small">rename</button><button type=button class="btn btn-small">fork</button><button type=button class="btn btn-small">loaded context</button><button type=button class="btn btn-small btn-danger">`),ju=J(`<span class=dock-collapsed-hint>`),Mu=J(`<details class=tasks><summary>tasks — <!> of <!> done</summary><ul>`),Nu=J(`<details class="tasks subagents"><summary>subagents — <!> running · <!> done</summary><ul class=subagent-list>`),Pu=J(`<span class=working>● working`),Fu=J(`<button type=button class="btn btn-small btn-danger">`),Iu=J(`<div class=status-line>`),Lu=J(`<div class=dock-panels>`),Ru=J(`<div class=queued-message-row><button type=button class="btn btn-small">restore to composer`),zu=J(`<div class=attachment-strip>`),Bu=J(`<div class=command-popover role=listbox id=command-listbox aria-label="slash commands">`),Vu=J(`<span class=mode-toggle role=radiogroup aria-label="send mode"><button type=button title="Deliver now — injected into the running turn">steer</button><button type=button title="Queue — delivered after the agent finishes">follow-up`),Hu=J(`<button type=button class=ghost-suggest>suggested: <code></code> <span class=key>tap`),Uu=J(`<div class=composer><textarea></textarea><div class=composer-row><input type=file multiple class=hidden-file-input><input type=file accept=image/* multiple class=hidden-file-input><button type=button class="btn btn-small"title="attach file (uploads to workspace and sends path)">📎 file</button><button type=button class="btn btn-small"title="attach image inline">🖼 photo</button><button type=button class="btn btn-primary btn-small send">send ↵`),Wu=J(`<div class=dock-inner>`),Gu=J(`<p>Summarize older context to free window space. The transcript keeps a summary card.`),Ku=J(`<div class=session-screen><header class=session-bar><div class="session-bar-inner session-bar-main"><a class=back href=#/>← fleet</a><span class=title></span><button type=button class=chrome-toggle></button></div></header><main class=chat><div class=chat-inner></div></main><footer class=dock><div class=dock-collapse-row><button type=button class=chrome-toggle>`),qu=J(`<span>`),Ju=J(`<p class="muted small">loading stats…`),Yu=J(`<div class=stats-grid><span>user messages</span><strong></strong><span>assistant messages</span><strong></strong><span>tool calls/results</span><strong>/</strong><span>input/output</span><strong> / </strong><span>cache read/write</span><strong> / </strong><span>total tokens</span><strong></strong><span>cost</span><strong>$`),Xu=J(`<p class=muted>loading transcript…`),Zu=J(`<div class=widget-block>`),Qu=J(`<li> `),$u=J(`<li><button type=button class=agent-chip title="view this subagent's session"><span></span><span class=task> — `),ed=J(`<button type=button class="btn btn-small btn-danger inline-stop">stop `),td=J(`<div class=readonly-note>This session is closed; its transcript is read-only.`),nd=J(`<span class=queued-chip><span class=queued-kind>`),rd=J(`<span class=attachment-file><span>📎 </span><span class=muted></span><button type=button aria-label="remove file attachment">×`),id=J(`<span class=attachment-thumb><img><button type=button aria-label="remove image">×`),ad=J(`<span class=command-description>`),od=J(`<button type=button role=option class=command-option><span class=command-name>/</span><span class=command-source>`),sd=J(`<button type=button class="btn btn-small btn-primary">compact`),cd=J(`<p class="muted small">loading forkable messages…`),ld=J(`<button type=button class="btn btn-small btn-primary">rename`),ud=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],dd=10*1024*1024,fd=`.dreb-dashboard-uploads`;function pd(e){return e?`${e.provider}/${e.id}`:`—`}function md(e){if(!e)return`—`;let t=`${e.provider}/${e.id}`;return e.name?`${t} — ${e.name}`:t}function hd(e){return e<1e3?e.toString():e<1e4?`${(e/1e3).toFixed(1)}k`:e<1e6?`${Math.round(e/1e3)}k`:e<1e7?`${(e/1e6).toFixed(1)}M`:`${Math.round(e/1e6)}M`}function gd(e){if(!e||e.rolling.count<3)return;let t={above:`↑`,below:`↓`,stable:`→`},n=e.delta.direction===`stable`?0:Math.round(Math.abs(e.delta.percentDelta)),r=e.delta.recentCount>=3&&e.delta.baselineCount>=3?` · ${n}% ${t[e.delta.direction]} median [${e.delta.baselineCount}]`:``;return`~${Math.round(e.rolling.median)} tok/s [${e.rolling.count}]${r}`}function _d(e,t){if(!t)return;let n=e?.models.find(e=>e.provider===t.provider&&e.modelId===t.id);return gd(n)}function vd(e){return e.replace(/^\/home\/[^/]+/,`~`)}function yd(e,t){return`${e.replace(/\/+$/,``)}/${t}`}function bd(e){let t=e.trim().replace(/[\\/\0]/g,`_`);return t&&t!==`.`&&t!==`..`?t:`upload.bin`}function xd(e,t){return`${new Date().toISOString().replace(/[:.]/g,`-`)}-${t+1}-${bd(e.name||`upload.bin`)}`}function Sd(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(1)} GB`}function Cd(e,t){return`${e.provider}/${e.id} ${e.name??``}`.toLowerCase().includes(t)}function wd(e){let t=new Map;for(let n of e){let e=t.get(n.provider)??[];e.push(n),t.set(n.provider,e)}return[...t.entries()].map(([e,t])=>({provider:e,models:t}))}function Td(e){e.style.height=`auto`;let t=window.matchMedia?.(`(max-width: 700px)`)?.matches??!1,n=ml(window.innerHeight,t),r=Math.min(e.scrollHeight,n);r>0&&(e.style.height=`${r}px`),e.style.overflowY=e.scrollHeight>n?`auto`:`hidden`}function Ed(e){let[t,n]=k(e.request.prefill??``),r=t=>e.onRespond({type:`extension_ui_response`,id:e.request.id,...t});return W(st,{get title(){return e.request.title},onDismiss:()=>r({cancelled:!0}),get actions(){return W(K,{get when(){return e.request.method!==`select`},get children(){return[(()=>{var e=Dl();return e.$$click=()=>r({cancelled:!0}),e})(),W(K,{get when(){return e.request.method===`confirm`},get children(){var e=Ol();return e.$$click=()=>r({confirmed:!0}),e}}),W(K,{get when(){return e.request.method===`input`||e.request.method===`editor`},get children(){var e=kl();return e.$$click=()=>r({value:t()}),e}})]}})},get children(){return[W(K,{get when(){return e.request.message},get children(){var t=Cl();return X(t,()=>e.request.message),t}}),W(K,{get when(){return e.request.method===`select`},get children(){var t=wl();return X(t,W(G,{get each(){return e.request.options??[]},children:e=>(()=>{var t=Al();return t.$$click=()=>r({value:e}),X(t,e),t})()})),t}}),W(K,{get when(){return e.request.method===`input`},get children(){var r=Tl(),i=r.firstChild;return i.$$input=e=>n(e.currentTarget.value),j(()=>Y(i,`placeholder`,e.request.placeholder)),j(()=>i.value=t()),r}}),W(K,{get when(){return e.request.method===`editor`},get children(){var e=El(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e}})]}})}function Dd(e){let t=e.target,n=t?.tagName;return n===`INPUT`||n===`TEXTAREA`||t?.isContentEditable===!0}function Od(e){let t=()=>e.request.questions??[],n=()=>t().length,r=()=>n()>=2,i,[a,o]=k(t().map(()=>({selected:[],customText:``})));M(()=>{let e=n();o(n=>n.length===e?n:t().map((e,t)=>n[t]??{selected:[],customText:``}))});let[s,c]=k(0),l=()=>r()&&s()===n(),u=t=>e.onRespond({type:`extension_ui_response`,id:e.request.id,...t}),d=e=>t()[e]?.options??[],f=e=>t()[e]?.allowFreeText!==!1,p=e=>t()[e]?.multiSelect===!0&&d(e).length>0,m=(e,t)=>o(n=>n.map((n,r)=>r===e?t(n):n)),h=(e,t)=>{m(e,n=>{if(p(e)){let e=n.selected.includes(t)?n.selected.filter(e=>e!==t):[...n.selected,t];return{...n,selected:e}}return{...n,selected:[t]}})},g=(e,t)=>m(e,e=>({...e,customText:t})),_=e=>{let t=a()[e];return t?t.selected.length>0||t.customText.trim().length>0:!1},v=e=>{let t=a()[e];if(!t)return;let n=[...t.selected],r=t.customText.trim();return r&&n.push(r),n.length>0?n.join(`, `):void 0},y=()=>{e.stopping||e.onStop()},b=()=>{let e=a().map(e=>{let t=e.selected,n=e.customText.trim()||void 0;return t.length>0||n?{selected:t,customText:n}:{selected:[],skipped:!0}});u({answers:e})},x=e=>{if(e.key===`Escape`){e.preventDefault(),y();return}if(e.key===`Enter`&&n()===1&&!l()){let t=e.target;t&&i?.contains(t)&&t.tagName!==`TEXTAREA`&&t.tagName!==`BUTTON`&&(e.preventDefault(),b());return}if(r()&&(e.key===`ArrowLeft`||e.key===`ArrowRight`||e.key===`Tab`)){if(Dd(e))return;let t=n(),r=e.key===`ArrowLeft`?-1:1;e.preventDefault(),c(e=>{let n=e+r;return n<0?t:n>t?0:n});return}if(!l()&&/^[1-9]$/.test(e.key)&&!Dd(e)){let t=s(),n=d(t),r=Number(e.key)-1;r<n.length&&(e.preventDefault(),h(t,n[r]))}};R(()=>window.addEventListener(`keydown`,x)),z(()=>window.removeEventListener(`keydown`,x));let S=typeof e.request.expiresAt==`number`?e.request.expiresAt:e.request.timeout&&e.request.timeout>0?Date.now()+e.request.timeout:void 0,C=()=>S===void 0?0:Math.max(0,Math.ceil((S-Date.now())/1e3)),[w,T]=k(C());if(S!==void 0){let e,t=()=>{let t=C();T(t),t<=0&&(e!==void 0&&clearInterval(e),e=void 0,y())};R(()=>{t(),S>Date.now()&&(e=setInterval(t,1e3))}),z(()=>{e!==void 0&&clearInterval(e)})}let E=(t,r)=>(()=>{var i=Il();return X(i,W(K,{get when(){return t.title},get children(){var e=jl();return X(e,()=>t.title),e}}),null),X(i,W(Zs,{get text(){return t.question??``},class:`ask-question-body markdown-body`}),null),X(i,W(K,{get when(){return d(r).length>0},get children(){var t=Ml();return t.firstChild,X(t,W(G,{get each(){return d(r)},children:(t,n)=>(()=>{var i=Rl(),o=i.firstChild,s=o.nextSibling,c=s.nextSibling;return X(o,()=>n()+1),s.addEventListener(`change`,()=>h(r,t)),X(c,t),X(i,W(K,{get when(){return a()[r]?.selected.includes(t)},get children(){return Ll()}}),null),j(n=>{var o=!!a()[r]?.selected.includes(t),c=p(r)?`checkbox`:`radio`,l=p(r)?void 0:`ask-option-input--hidden`,u=`ask-${e.request.id}-${r}`;return o!==n.e&&i.classList.toggle(`selected`,n.e=o),c!==n.t&&Y(s,`type`,n.t=c),l!==n.a&&je(s,n.a=l),u!==n.o&&Y(s,`name`,n.o=u),n},{e:void 0,t:void 0,a:void 0,o:void 0}),j(()=>s.checked=a()[r]?.selected.includes(t)),i})()}),null),t}}),null),X(i,W(K,{get when(){return f(r)},get children(){var n=Pl(),i=n.firstChild;return X(i,()=>d(r).length>0?`Or type your own answer`:`Your answer`),X(n,W(K,{get when(){return t.multiline},get fallback(){return(()=>{var t=zl();return t.$$input=e=>g(r,e.currentTarget.value),j(()=>Y(t,`id`,`ask-custom-${e.request.id}-${r}`)),j(()=>t.value=a()[r]?.customText??``),t})()},get children(){var t=Nl();return t.$$input=e=>g(r,e.currentTarget.value),j(()=>Y(t,`id`,`ask-custom-${e.request.id}-${r}`)),j(()=>t.value=a()[r]?.customText??``),t}}),null),j(()=>Y(i,`for`,`ask-custom-${e.request.id}-${r}`)),n}}),null),X(i,W(K,{get when(){return n()===1},get children(){var t=Fl(),n=t.firstChild,r=n.nextSibling;return n.$$click=y,X(n,()=>e.stopping?`stopping…`:`■ stop agent`),r.$$click=b,j(()=>n.disabled=e.stopping),t}}),null),i})();return(()=>{var a=Ul(),o=a.firstChild,u=o.firstChild,d=i;return typeof d==`function`?Fe(d,a):i=a,X(u,()=>e.request.title),X(o,W(K,{when:S!==void 0,get children(){var e=Bl(),t=e.firstChild.nextSibling;return t.nextSibling,X(e,w,t),e}}),null),X(a,W(K,{get when(){return r()},get children(){var e=Vl(),r=e.firstChild;return X(e,W(G,{get each(){return t()},children:(e,t)=>(()=>{var n=Gl(),r=n.firstChild;return n.$$click=()=>c(t()),X(n,()=>t()+1,r),X(n,()=>e.title??e.question,null),X(n,W(K,{get when(){return _(t())},get children(){return Wl()}}),null),j(e=>{var r=s()===t(),i=s()===t(),a=!!_(t());return r!==e.e&&Y(n,`aria-selected`,e.e=r),i!==e.t&&n.classList.toggle(`selected`,e.t=i),a!==e.a&&n.classList.toggle(`answered`,e.a=a),e},{e:void 0,t:void 0,a:void 0}),n})()}),r),r.$$click=()=>c(n()),j(e=>{var t=l(),n=!!l();return t!==e.e&&Y(r,`aria-selected`,e.e=t),n!==e.t&&r.classList.toggle(`selected`,e.t=n),e},{e:void 0,t:void 0}),e}}),null),X(a,W(G,{get each(){return t()},children:(e,t)=>(()=>{var n=Kl();return X(n,()=>E(e,t())),j(()=>n.classList.toggle(`hidden`,s()!==t())),n})()}),null),X(a,W(K,{get when(){return r()},get children(){var n=Hl(),r=n.firstChild.firstChild,i=r.nextSibling.firstChild,a=i.nextSibling;return X(r,W(G,{get each(){return t()},children:(e,t)=>(()=>{var n=ql(),r=n.firstChild;return X(r,()=>e.title??e.question),X(n,W(K,{get when(){return v(t())},get fallback(){return Jl()},children:e=>(()=>{var t=Yl();return X(t,e),t})()}),null),n})()})),i.$$click=y,X(i,()=>e.stopping?`stopping…`:`cancel`),a.$$click=b,j(t=>{var r=!l(),a=e.stopping;return r!==t.e&&n.classList.toggle(`hidden`,t.e=r),a!==t.t&&(i.disabled=t.t=a),t},{e:void 0,t:void 0}),n}}),null),j(()=>Y(a,`aria-label`,e.request.title)),a})()}function kd(e){let t=(e,t)=>(()=>{var n=Zl(),r=n.firstChild;return X(r,e),X(n,W(K,{get when(){return t.length>0},get fallback(){return Ql()},get children(){var e=Xl();return X(e,t),e}}),null),n})();return W(st,{title:`loaded context`,get onDismiss(){return e.onClose},get children(){return[W(K,{get when(){return e.error},get children(){var t=$l();return X(t,()=>e.error),t}}),W(K,{get when(){return e.resources},get fallback(){return eu()},children:e=>(()=>{var n=nu();return X(n,()=>t(`context files`,e().contextFiles.map(e=>(()=>{var t=ru();return X(t,()=>vd(e.path)),j(()=>Y(t,`title`,e.path)),t})())),null),X(n,()=>t(`skills`,e().skills.map(e=>(()=>{var t=au(),n=t.firstChild;return X(n,()=>e.name),X(t,W(K,{get when(){return e.description},get children(){var t=iu();return t.firstChild,X(t,()=>e.description,null),t}}),null),t})())),null),X(n,()=>t(`extensions`,e().extensions.map(e=>(()=>{var t=ou(),n=t.firstChild,r=n.nextSibling;return r.firstChild,X(n,()=>e.name??`extension`),X(r,()=>vd(e.path),null),j(()=>Y(t,`title`,e.path)),t})())),null),X(n,()=>t(`prompt templates`,e().promptTemplates.map(e=>(()=>{var t=ru();return X(t,()=>e.name),t})())),null),X(n,W(K,{get when(){return e().systemPromptPresent},get children(){return tu()}}),null),n})()})]}})}function Ad(e){let[t,n]=k([]),[r,i]=k(e.initialFilter??``),[a,o]=k((e.state?.scopedModels?.length??0)>0?`scoped`:`all`),[s,c]=k();R(async()=>{try{let{models:t}=await $.models(e.sessionKey);n(t)}catch(e){c(e instanceof Error?e.message:String(e))}});let l=N(()=>(e.state?.scopedModels??[]).map(e=>({provider:e.provider,id:e.id,name:e.name,reasoning:e.reasoning}))),u=()=>l().length>0,d=()=>a()===`scoped`&&u()?l():t(),f=N(()=>{let e=r().toLowerCase();return wd(d().filter(t=>!e||Cd(t,e)).slice(0,100))}),p=t=>e.state?.model?.provider===t.provider&&e.state?.model?.id===t.id;async function m(t){try{let n=await $.setModel(e.sessionKey,t.provider,t.id);e.onSelected(n),e.onClose()}catch(e){c(e instanceof Error?e.message:String(e))}}return W(st,{title:`select model`,get onDismiss(){return e.onClose},class:`model-picker-modal`,get children(){return[W(K,{get when(){return u()},get children(){var e=su(),t=e.firstChild,n=t.nextSibling;return t.$$click=()=>o(`scoped`),n.$$click=()=>o(`all`),j(e=>{var r=a()===`scoped`,i=a()===`scoped`,o=a()===`all`,s=a()===`all`;return r!==e.e&&Y(t,`aria-selected`,e.e=r),i!==e.t&&t.classList.toggle(`selected`,e.t=i),o!==e.a&&Y(n,`aria-selected`,e.a=o),s!==e.o&&n.classList.toggle(`selected`,e.o=s),e},{e:void 0,t:void 0,a:void 0,o:void 0}),e}}),(()=>{var e=cu(),t=e.firstChild;return t.$$input=e=>i(e.currentTarget.value),j(()=>t.value=r()),e})(),W(K,{get when(){return s()},get children(){var e=$l();return X(e,s),e}}),(()=>{var e=lu();return X(e,W(K,{get when(){return f().length>0},get fallback(){return uu()},get children(){return W(G,{get each(){return f()},children:e=>(()=>{var t=du(),n=t.firstChild;return X(n,()=>e.provider),X(t,W(G,{get each(){return e.models},children:e=>(()=>{var t=mu(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling;return t.$$click=()=>m(e),X(n,()=>p(e)?`✓`:``),X(r,()=>e.id),X(t,W(K,{get when(){return e.name},get children(){var t=fu();return X(t,()=>e.name),t}}),i),X(i,()=>e.provider),X(t,W(K,{get when(){return e.reasoning},get children(){return pu()}}),null),j(n=>{var r=!!p(e),i=md(e);return r!==n.e&&t.classList.toggle(`current`,n.e=r),i!==n.t&&Y(t,`title`,n.t=i),n},{e:void 0,t:void 0}),t})()}),null),t})()})}})),e})()]}})}function jd(e){let t=[],n=[...e].reverse().map(e=>({node:e,depth:0}));for(;n.length>0;){let e=n.pop();if(!e)break;t.push(e);for(let t=e.node.children.length-1;t>=0;--t)n.push({node:e.node.children[t],depth:e.depth+1})}return t}function Md(e){return W(st,{title:`session tree`,get onDismiss(){return e.onClose},get children(){return[W(K,{get when(){return e.error},get children(){var t=$l();return X(t,()=>e.error),t}}),W(K,{get when(){return e.roots.length>0},get fallback(){return(()=>{var t=gu();return X(t,()=>e.loading?`loading tree…`:`No session entries yet.`),t})()},get children(){var t=hu();return X(t,W(G,{get each(){return jd(e.roots)},children:({node:t,depth:n})=>(()=>{var r=vu(),i=r.firstChild,a=i.nextSibling;return r.$$click=()=>e.onNavigate(t.id),Pe(r,`padding-left`,`${12+n*18}px`),X(i,()=>t.id.slice(0,8)),X(a,()=>t.label??(t.preview||t.type)),X(r,W(K,{get when(){return t.id===e.leafId},get children(){return _u()}}),null),j(()=>r.disabled=t.id===e.leafId),r})()})),t}})]}})}function Nd(e){return W(st,{title:`resume session`,get onDismiss(){return e.onClose},get children(){return[W(K,{get when(){return e.error},get children(){var t=$l();return X(t,()=>e.error),t}}),W(K,{get when(){return e.sessions.length>0},get fallback(){return(()=>{var t=gu();return X(t,()=>e.loading?`loading sessions…`:`No other sessions found.`),t})()},get children(){var t=hu();return X(t,W(G,{get each(){return e.sessions},children:t=>(()=>{var n=yu(),r=n.firstChild,i=r.nextSibling,a=i.firstChild;return n.$$click=()=>e.onResume(t.path),X(r,()=>t.name??(t.firstMessage||t.path)),X(i,()=>t.messageCount,a),n})()})),t}})]}})}function Pd(e){let[t,n]=k(e.initialPath);return W(st,{title:`import session`,get onDismiss(){return e.onClose},get actions(){return[(()=>{var t=Dl();return Me(t,`click`,e.onClose,!0),t})(),(()=>{var n=Su();return n.$$click=()=>e.onImport(t().trim()),j(()=>n.disabled=!t().trim()),n})()]},get children(){return[bu(),(()=>{var e=xu(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e})(),W(K,{get when(){return e.error},get children(){var t=$l();return X(t,()=>e.error),t}})]}})}function Fd(e){let t=()=>e.store.sessions[e.sessionKey],n=N(()=>e.store.fleet().runtimes.find(t=>t.key===e.sessionKey)),[r,i]=k(vl(e.sessionKey)??``),[a,o]=k(`steer`),[s,c]=k(!1),[l,u]=k(!1),[d,f]=k(!1),[p,m]=k(``),[h,g]=k(!1),[_,v]=k(!1),[y,b]=k(!1),[x,S]=k(!1),[C,w]=k(!1),[T,E]=k(!1),[D,O]=k(!1),[A,P]=k(),[F,I]=k(),[L,ee]=k(0),[te,ne]=k(),[re,ie]=k(),[ae,B]=k(),[oe,V]=k(),[se,H]=k([]),[ce,le]=k(!1),[U,ue]=k(0),[de,fe]=k(),[pe,me]=k(),[he,ge]=k({steering:[],followUp:[]}),[_e,ve]=k([]),[ye,be]=k([]),[xe,Se]=k(),[Ce,we]=k(!1),[Te,Ee]=k([]),[De,Oe]=k(),[ke,J]=k(!1),[Ae,Me]=k([]),[Ne,Pe]=k(null),[Ie,Le]=k(!1),[Re,ze]=k(),[Be,Ve]=k(!1),[He,Ue]=k([]),[We,Ge]=k(!1),[Ke,qe]=k(),[Je,Ye]=k(!1),[Xe,Ze]=k(``),[Qe,$e]=k(),[et,tt]=k(!1),[nt,rt]=k(),it,at,lt,ut,dt,ft,Z=!1,Q=()=>t()?.closed,pt=()=>!Q()&&(t()?.streaming??!1),mt=()=>!Q()&&(t()?.compacting??!1),ht=()=>(t()?.statusEntries??[]).some(e=>e.key===`paused`),gt=()=>Object.values(t()?.backgroundAgents??{}).some(e=>e.status===`running`),_t=()=>!Q()&&(pt()||mt()||ht()||gt()),vt=()=>Q()?[]:(t()?.statusEntries??[]).filter(e=>e.key===`compaction`||e.key===`retry`),yt=zo({scroller:()=>it});async function bt(t=!1){if(Q())return;let[n,r,i]=await Promise.allSettled([$.stats(e.sessionKey),$.performance(e.sessionKey),$.branch(e.sessionKey)]),a=t?await Promise.allSettled([$.dailyCost()]):void 0;if(Z||Q())return;n.status===`fulfilled`&&ne(n.value),r.status===`fulfilled`&&ie(r.value),i.status===`fulfilled`&&B(i.value.branch),a?.[0]?.status===`fulfilled`&&V(a[0].value.cost);let o=[n,r,i,...a??[]].find(e=>e.status===`rejected`);o?.status===`rejected`&&P(o.reason instanceof Error?o.reason.message:String(o.reason))}async function xt(){if(!Q())try{let{commands:t}=await $.commands(e.sessionKey);Z||H(t)}catch(e){!Z&&!Q()&&P(e instanceof Error?e.message:String(e))}}async function St(){E(!0),me(void 0);try{fe(await $.resources(e.sessionKey))}catch(e){me(e instanceof Error?e.message:String(e))}}async function Ct(){if(!Q())try{ge(await $.pending(e.sessionKey))}catch(e){Q()||P(e instanceof Error?e.message:String(e))}}let wt=new Set,Tt=async t=>{let n=typeof t.id==`string`?t.id:void 0;if(!(n&&wt.has(n))){n&&wt.add(n);try{await $.extensionUiResponse(e.sessionKey,t),n&&e.store.resolveUiRequest(e.sessionKey,n)}catch(e){P(e instanceof Error?e.message:String(e))}finally{n&&wt.delete(n)}}};function Et(e){let t=atob(e);return Uint8Array.from(t,e=>e.charCodeAt(0))}function Dt(e){let t=``,n=32768;for(let r=0;r<e.length;r+=n)t+=String.fromCharCode(...e.subarray(r,r+n));return btoa(t)}async function Ot(e){return Dt(new Uint8Array(await e.arrayBuffer()))}function kt(e){URL.revokeObjectURL(e.previewUrl)}function At(){for(let e of _e())kt(e);ve([])}function jt(e){ve(t=>{let n=t[e];return n&&kt(n),t.filter((t,n)=>n!==e)})}function Mt(e){if(_e().reduce((e,t)=>e+t.size,0)+e>Ut)throw Error(`Images too large: total inline images exceed ${Sd(Ut)}`)}function Nt(e,t,n){return{blob:e,mimeType:t,fileName:n,size:e.size,previewUrl:URL.createObjectURL(e)}}function Pt(e,t,n){let r=Et(e.data);return Nt(new Blob([r],{type:e.mimeType}),e.mimeType,`queued-image-${t+1}-${n+1}`)}function Ft(e){return[...e.steeringMessages??e.steering.map(e=>({text:e})),...e.followUpMessages??e.followUp.map(e=>({text:e}))]}function It(e){let t=[];for(let[n,r]of e.entries())for(let[e,i]of(r.images??[]).entries())t.push(Pt(i,n,e));return t}function Lt(e){for(let t of e)kt(t)}function Rt(e){let t=e.map(e=>e.text).join(`
70
70
 
71
71
  `),n=r();i([t,n].filter(e=>e.trim()).join(`
72
72
 
73
- `))}async function zt(){let t=[];try{let n=await $.pending(e.sessionKey);t.push(...It(Ft(n))),Mt(t.reduce((e,t)=>e+t.size,0))}catch(e){Lt(t),P(e instanceof Error?e.message:String(e));return}Lt(t);let n=[],r=!1;try{let t=Ft(await $.dequeue(e.sessionKey));ge({steering:[],followUp:[],steeringMessages:[],followUpMessages:[]}),Rt(t);try{n.push(...It(t)),Mt(n.reduce((e,t)=>e+t.size,0))}catch(e){throw Error(`Queued image restore failed after restoring text: ${e instanceof Error?e.message:String(e)}`)}n.length>0&&(ve(e=>[...n,...e]),r=!0),queueMicrotask(()=>lt?.focus())}catch(e){r||Lt(n),P(e instanceof Error?e.message:String(e))}}function Bt(e){if(!e.type.startsWith(`image/`))throw Error(`Not an image: ${e.name||e.type}`);if(e.size>ld)throw Error(`Image too large: ${e.name||e.type} exceeds 10MB`);return Nt(e,e.type,e.name||`image`)}async function Vt(e){let t=[...e];if(t.length===0)return;let n=[];try{for(let e of t){if(!e.type.startsWith(`image/`))throw Error(`Not an image: ${e.name||e.type}`);if(e.size>ld)throw Error(`Image too large: ${e.name||e.type} exceeds 10MB`)}Mt(t.reduce((e,t)=>e+t.size,0));for(let e of t)n.push(Bt(e));ve(e=>[...e,...n])}catch(e){for(let e of n)kt(e);P(e instanceof Error?e.message:String(e))}}async function Ht(e){let t=_d(e,ud);try{return await $.listFiles(t),t}catch{return await $.mkdir(e,ud),t}}async function Wt(e){let t=[...e];if(t.length===0)return;let r=n()?.cwd;if(!r){P(`Cannot attach files until the runtime is loaded.`);return}P(void 0);try{let e=await Ht(r),n=[];for(let[r,i]of t.entries()){let t=yd(i,r),a=await $.upload(e,new File([i],t,{type:i.type}),!1);n.push({fileName:i.name||t,size:i.size,mimeType:i.type||`application/octet-stream`,path:a.path})}be(e=>[...e,...n])}catch(e){P(e instanceof Error?e.message:String(e))}}async function Gt(){J(!0),ze(void 0),Me([]),Le(!0);try{let t=await $.tree(e.sessionKey);Me(t.roots),Pe(t.leafId)}catch(e){ze(e instanceof Error?e.message:String(e))}finally{Le(!1)}}async function Kt(t){ze(void 0);try{let n=await $.navigateTree(e.sessionKey,t);if(n.cancelled)return;n.editorText&&i(n.editorText),await e.store.hydrateSession(e.sessionKey),J(!1)}catch(e){ze(e instanceof Error?e.message:String(e))}}async function qt(){Ve(!0),qe(void 0),Ue([]),Ge(!0);try{Ue((await $.runtimeSessions(e.sessionKey)).sessions)}catch(e){qe(e instanceof Error?e.message:String(e))}finally{Ge(!1)}}async function Jt(t){qe(void 0);try{if((await $.resume(e.sessionKey,t)).cancelled)return;await e.store.hydrateSession(e.sessionKey),await e.store.refreshDiskSessions(),Ve(!1)}catch(e){qe(e instanceof Error?e.message:String(e))}}async function Yt(t){$e(void 0);try{if((await $.importJsonl(e.sessionKey,t)).cancelled)return;await e.store.hydrateSession(e.sessionKey),await e.store.refreshDiskSessions(),Ye(!1)}catch(e){$e(e instanceof Error?e.message:String(e))}}async function Xt(){we(!0),Oe(void 0),Ee([]);try{let{messages:t}=await $.forkMessages(e.sessionKey);Ee(t)}catch(e){Oe(e instanceof Error?e.message:String(e))}}async function Zt(t){Oe(void 0);try{let n=await $.fork(e.sessionKey,t);n.cancelled||i(n.text),await e.store.hydrateSession(e.sessionKey),await e.store.refreshDiskSessions(),we(!1)}catch(e){Oe(e instanceof Error?e.message:String(e))}}async function Qt(){if(!Q()){tt(!0),rt(void 0);try{ne(await $.stats(e.sessionKey))}catch(e){rt(e instanceof Error?e.message:String(e))}}}R(()=>{let t=new AbortController;Q()||e.store.hydrateSession(e.sessionKey,t.signal).catch(e=>{t.signal.aborted&&ml(e)||Q()||P(e instanceof Error?e.message:String(e))}),bt(!0),xt(),Ct();let n=setInterval(()=>void bt(!1),5e3);z(()=>{Z=!0,t.abort(),clearInterval(n)})});let $t=e=>{if(!et())return;let t=e.target;t&&ft?.contains(t)||tt(!1)},en=e=>{e.key===`Escape`&&tt(!1)};document.addEventListener(`mousedown`,$t),document.addEventListener(`keydown`,en),z(()=>{document.removeEventListener(`mousedown`,$t),document.removeEventListener(`keydown`,en)});let tn=setInterval(()=>{let e=t()?.workingSince;ee(e?Math.floor((Date.now()-e)/1e3):0)},1e3);z(()=>{clearInterval(tn),yt.dispose(),At()}),M(()=>{Q()&&(f(!1),S(!1),w(!1),E(!1),we(!1),J(!1),Ve(!1),Ye(!1),g(!1),b(!1))}),M(()=>{let e=t()?.composerPrefill;e&&i(e)}),M(()=>{r(),lt&&queueMicrotask(()=>lt&&Cd(lt))}),M(()=>{e.store.revisions[e.sessionKey],t()?.entries.length,yt.notifyContentChanged()}),R(()=>{yt.observeContent(at),yt.observeViewport(it),it&&z(Vo(yt,it,{keyboard:`window`}))});let nn=!1;M(()=>{let e=pt();nn&&!e&&bt(!0),nn!==e&&Ct(),nn=e}),M(()=>{n()?.state.pendingMessageCount,Ct()}),M(()=>{vl(e.sessionKey,r())});function rn(e){let t=[];return ye().length>0&&t.push([`Attached files uploaded to the host (paths only; inspect deliberately if needed):`,...ye().map(e=>`- ${e.path} (${e.fileName}, ${bd(e.size)}, ${e.mimeType||`unknown type`})`)].join(`
74
- `)),_e().length>0&&t.push([`Attached images included inline with this turn:`,..._e().map((e,t)=>`- image ${t+1}: ${e.fileName} (${bd(e.size)}, ${e.mimeType})`)].join(`
73
+ `))}async function zt(){let t=[];try{let n=await $.pending(e.sessionKey);t.push(...It(Ft(n))),Mt(t.reduce((e,t)=>e+t.size,0))}catch(e){Lt(t),P(e instanceof Error?e.message:String(e));return}Lt(t);let n=[],r=!1;try{let t=Ft(await $.dequeue(e.sessionKey));ge({steering:[],followUp:[],steeringMessages:[],followUpMessages:[]}),Rt(t);try{n.push(...It(t)),Mt(n.reduce((e,t)=>e+t.size,0))}catch(e){throw Error(`Queued image restore failed after restoring text: ${e instanceof Error?e.message:String(e)}`)}n.length>0&&(ve(e=>[...n,...e]),r=!0),queueMicrotask(()=>lt?.focus())}catch(e){r||Lt(n),P(e instanceof Error?e.message:String(e))}}function Bt(e){if(!e.type.startsWith(`image/`))throw Error(`Not an image: ${e.name||e.type}`);if(e.size>dd)throw Error(`Image too large: ${e.name||e.type} exceeds 10MB`);return Nt(e,e.type,e.name||`image`)}async function Vt(e){let t=[...e];if(t.length===0)return;let n=[];try{for(let e of t){if(!e.type.startsWith(`image/`))throw Error(`Not an image: ${e.name||e.type}`);if(e.size>dd)throw Error(`Image too large: ${e.name||e.type} exceeds 10MB`)}Mt(t.reduce((e,t)=>e+t.size,0));for(let e of t)n.push(Bt(e));ve(e=>[...e,...n])}catch(e){for(let e of n)kt(e);P(e instanceof Error?e.message:String(e))}}async function Ht(e){let t=yd(e,fd);try{return await $.listFiles(t),t}catch{return await $.mkdir(e,fd),t}}async function Wt(e){let t=[...e];if(t.length===0)return;let r=n()?.cwd;if(!r){P(`Cannot attach files until the runtime is loaded.`);return}P(void 0);try{let e=await Ht(r),n=[];for(let[r,i]of t.entries()){let t=xd(i,r),a=await $.upload(e,new File([i],t,{type:i.type}),!1);n.push({fileName:i.name||t,size:i.size,mimeType:i.type||`application/octet-stream`,path:a.path})}be(e=>[...e,...n])}catch(e){P(e instanceof Error?e.message:String(e))}}async function Gt(){J(!0),ze(void 0),Me([]),Le(!0);try{let t=await $.tree(e.sessionKey);Me(t.roots),Pe(t.leafId)}catch(e){ze(e instanceof Error?e.message:String(e))}finally{Le(!1)}}async function Kt(t){ze(void 0);try{let n=await $.navigateTree(e.sessionKey,t);if(n.cancelled)return;n.editorText&&i(n.editorText),await e.store.hydrateSession(e.sessionKey),J(!1)}catch(e){ze(e instanceof Error?e.message:String(e))}}async function qt(){Ve(!0),qe(void 0),Ue([]),Ge(!0);try{Ue((await $.runtimeSessions(e.sessionKey)).sessions)}catch(e){qe(e instanceof Error?e.message:String(e))}finally{Ge(!1)}}async function Jt(t){qe(void 0);try{if((await $.resume(e.sessionKey,t)).cancelled)return;await e.store.hydrateSession(e.sessionKey),await e.store.refreshDiskSessions(),Ve(!1)}catch(e){qe(e instanceof Error?e.message:String(e))}}async function Yt(t){$e(void 0);try{if((await $.importJsonl(e.sessionKey,t)).cancelled)return;await e.store.hydrateSession(e.sessionKey),await e.store.refreshDiskSessions(),Ye(!1)}catch(e){$e(e instanceof Error?e.message:String(e))}}async function Xt(){we(!0),Oe(void 0),Ee([]);try{let{messages:t}=await $.forkMessages(e.sessionKey);Ee(t)}catch(e){Oe(e instanceof Error?e.message:String(e))}}async function Zt(t){Oe(void 0);try{let n=await $.fork(e.sessionKey,t);n.cancelled||i(n.text),await e.store.hydrateSession(e.sessionKey),await e.store.refreshDiskSessions(),we(!1)}catch(e){Oe(e instanceof Error?e.message:String(e))}}async function Qt(){if(!Q()){tt(!0),rt(void 0);try{ne(await $.stats(e.sessionKey))}catch(e){rt(e instanceof Error?e.message:String(e))}}}R(()=>{let t=new AbortController;Q()||e.store.hydrateSession(e.sessionKey,t.signal).catch(e=>{t.signal.aborted&&hl(e)||Q()||P(e instanceof Error?e.message:String(e))}),bt(!0),xt(),Ct();let n=setInterval(()=>void bt(!1),5e3);z(()=>{Z=!0,t.abort(),clearInterval(n)})});let $t=e=>{if(!et())return;let t=e.target;t&&ft?.contains(t)||tt(!1)},en=e=>{e.key===`Escape`&&tt(!1)};document.addEventListener(`mousedown`,$t),document.addEventListener(`keydown`,en),z(()=>{document.removeEventListener(`mousedown`,$t),document.removeEventListener(`keydown`,en)});let tn=setInterval(()=>{let e=t()?.workingSince;ee(e?Math.floor((Date.now()-e)/1e3):0)},1e3);z(()=>{clearInterval(tn),yt.dispose(),At()}),M(()=>{Q()&&(f(!1),S(!1),w(!1),E(!1),we(!1),J(!1),Ve(!1),Ye(!1),g(!1),b(!1))}),M(()=>{let e=t()?.composerPrefill;e&&i(e)}),M(()=>{r(),lt&&queueMicrotask(()=>lt&&Td(lt))}),M(()=>{e.store.revisions[e.sessionKey],t()?.entries.length,yt.notifyContentChanged()}),R(()=>{yt.observeContent(at),yt.observeViewport(it),it&&z(Vo(yt,it,{keyboard:`window`}))});let nn=!1;M(()=>{let e=pt();nn&&!e&&bt(!0),nn!==e&&Ct(),nn=e}),M(()=>{n()?.state.pendingMessageCount,Ct()}),M(()=>{yl(e.sessionKey,r())});function rn(e){let t=[];return ye().length>0&&t.push([`Attached files uploaded to the host (paths only; inspect deliberately if needed):`,...ye().map(e=>`- ${e.path} (${e.fileName}, ${Sd(e.size)}, ${e.mimeType||`unknown type`})`)].join(`
74
+ `)),_e().length>0&&t.push([`Attached images included inline with this turn:`,..._e().map((e,t)=>`- image ${t+1}: ${e.fileName} (${Sd(e.size)}, ${e.mimeType})`)].join(`
75
75
  `)),[e,...t].filter(e=>e.trim()).join(`
76
76
 
77
- `)}function an(e,t,n=`/${e}`){return t?(I(`Usage: ${n}`),!0):!1}function on(){let t=document.createElement(`a`);t.href=$.exportHtmlUrl(e.sessionKey),t.download=``,document.body.append(t),t.click(),t.remove()}let sn={settings:async t=>{an(`settings`,t)||e.store.navigate({screen:`settings`})},"scoped-models":async t=>{if(an(`scoped-models`,t))return;let r=n()?.cwd;if(!r)throw Error(`Cannot open scoped models: the runtime project directory is unavailable`);e.store.navigate({screen:`settings`,target:`scoped-models`,cwd:r})},model:async e=>{m(e),f(!0)},export:async e=>{an(`export`,e)||on()},import:async e=>{Ze(e),$e(void 0),Ye(!0)},name:async t=>{t?await $.rename(e.sessionKey,t):w(!0)},session:async e=>{an(`session`,e)||(v(!1),await Qt())},fork:async e=>{an(`fork`,e)||await Xt()},tree:async e=>{an(`tree`,e)||await Gt()},new:async t=>{if(!an(`new`,t)){if(pt()||mt()){I(`Wait for the current operation to finish before starting a new session.`);return}(await $.newSession(e.sessionKey)).cancelled?I(`New session cancelled.`):(await e.store.hydrateSession(e.sessionKey),await e.store.refreshDiskSessions())}},compact:async t=>{t?(await $.compact(e.sessionKey,t),I(`Compaction started.`)):S(!0)},dream:async t=>{let n=await $.dream(e.sessionKey,t||void 0);I(n.message)},resume:async e=>{an(`resume`,e)||await qt()},reload:async t=>{if(an(`reload`,t))return;if(pt()||mt()){I(`Wait for the current operation to finish before reloading.`);return}await $.reload(e.sessionKey);let[{commands:n}]=await Promise.all([$.commands(e.sessionKey),e.store.hydrateSession(e.sessionKey)]);H(n),I(`Reloaded extensions, skills, prompts, themes, and settings.`)},quit:async e=>{an(`quit`,e)||await un()}};async function cn(){let t=r().trim();if(!t&&ye().length===0&&_e().length===0)return;P(void 0),I(void 0);let n=dl(t,se());if(n){if(ye().length>0||_e().length>0){I(`Remove attachments before running a built-in command; nothing was sent or discarded.`);return}try{await fl(n,sn,I),i(``),Se(void 0)}catch(e){P(e instanceof Error?e.message:String(e))}return}let o=rn(t||`Please review the attached item(s). `);try{let t=_e(),n=t.length>0?await Promise.all(t.map(async({blob:e,mimeType:t})=>({data:await Ot(e),mimeType:t}))):void 0;pt()?await $.prompt(e.sessionKey,o,a(),n):n?await $.prompt(e.sessionKey,o,void 0,n):await $.prompt(e.sessionKey,o),bl(e.sessionKey,o),Se(void 0),i(``),At(),be([]),Ct()}catch(e){P(e instanceof Error?e.message:String(e))}}async function ln(){c(!0);try{await $.abort(e.sessionKey),await zt()}catch(e){P(e instanceof Error?e.message:String(e))}finally{c(!1)}}async function un(){if(!l()){u(!0),P(void 0);try{await e.store.stopRuntime(e.sessionKey)}catch(e){P(e instanceof Error?e.message:String(e))}finally{u(!1)}}}async function dn(t){try{t===`compaction`?await $.abortCompaction(e.sessionKey):t===`retry`&&await $.abortRetry(e.sessionKey)}catch(e){P(e instanceof Error?e.message:String(e))}}function fn(e){it?.querySelectorAll(`details.tool`).forEach(t=>{t.open=e})}let pn=()=>Q()?[]:Object.values(t()?.backgroundAgents??{}).filter(e=>e.status===`running`),mn=()=>Object.values(t()?.backgroundAgents??{}).filter(e=>Q()||e.status!==`running`),hn=()=>Object.values(t()?.backgroundAgents??{}).sort((e,t)=>Date.parse(t.startedAt)-Date.parse(e.startedAt)),gn=()=>t()?.tasks??[],_n=()=>gn().filter(e=>e.status===`completed`).length,vn=()=>n()?.state.contextUsage??te()?.contextUsage,yn=()=>typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 700px)`).matches,bn=()=>t()?.sessionName??n()?.state.sessionName,xn=()=>bn()??t()?.title??e.sessionKey,Sn=()=>n()?.cwd??Q()?.cwd,Cn=()=>{let e=Sn();if(!e)return;let t=ae();return`${gd(e)}${t?` (${t})`:``}`},wn=()=>{let e=Cn(),t=bn();return e&&t?`${e} • ${t}`:e??t??`session`},Tn=()=>{let e=te()?.tokens;if(!e)return;let t=[];return e.input&&t.push(`↑${pd(e.input)}`),e.output&&t.push(`↓${pd(e.output)}`),e.cacheRead&&t.push(`R${pd(e.cacheRead)}`),e.cacheWrite&&t.push(`W${pd(e.cacheWrite)}`),t.length>0?t.join(` `):void 0},En=()=>{let e=te()?.cost??0,t=n()?.state.usingSubscription??!1;if(!e&&!t)return;let r=`$${e.toFixed(3)}${t?` (sub)`:``}`,i=oe();return i!==void 0&&i>e&&(r+=`, today: $${i.toFixed(2)}`),r},Dn=()=>{let e=vn();if(e)return`ctx ${e.percent===null?`?`:`${e.percent.toFixed(0)}%`}/${pd(e.contextWindow)}`},On=()=>hd(re(),n()?.state.model),kn=()=>[Tn(),En(),Dn(),On()].filter(Boolean),An=()=>[...(he().steeringMessages??he().steering.map(e=>({text:e}))).map(e=>({kind:`steer`,text:e.images?.length?`${e.text} (${e.images.length} image(s))`:e.text})),...(he().followUpMessages??he().followUp.map(e=>({text:e}))).map(e=>({kind:`follow-up`,text:e.images?.length?`${e.text} (${e.images.length} image(s))`:e.text}))],jn=()=>{let e=r();if(ce()||!e.startsWith(`/`))return;let t=e.slice(1);if(!/\s/.test(t))return t.toLowerCase()},Mn=N(()=>{let e=jn();return e===void 0?[]:pl(se(),e)}),Nn=()=>Mn().length>0,Pn=e=>{i(`/${e.name} `),le(!0),queueMicrotask(()=>lt?.focus())};M(()=>{let e=Mn().length;U()>=e&&ue(Math.max(0,e-1))});let Fn=N(()=>{let r=[],i=Q();if(i&&!i.bannerDismissed){let t=i.resumeError?`\nResume failed: ${i.resumeError}`:``,n=[];i.cwd&&i.sessionFile&&n.push({label:i.resuming?`resuming…`:`Resume session`,run:()=>e.store.resumeClosedSession(e.sessionKey),disabled:i.resuming}),n.push({label:`Return to fleet`,run:()=>e.store.navigate({screen:`fleet`}),disabled:i.resuming}),r.push({key:`closed`,text:`session ${e.sessionKey} was closed${t}`,tone:i.resumeError?`error`:`warning`,onDismiss:()=>e.store.dismissClosedBanner(e.sessionKey),actions:n})}let a=n()?.state.modelFallbackMessage;a&&!D()&&r.push({key:`fallback`,text:a,tone:`warning`,onDismiss:()=>O(!0)});for(let n of t()?.statusEntries??[])n.dismissed||r.push({key:`status:${n.id}`,text:n.text,tone:n.tone,onDismiss:()=>e.store.dismissStatusBanner(e.sessionKey,n.id)});for(let n of t()?.toasts??[])r.push({key:`toast:${n.id}`,text:n.text,tone:n.tone,onDismiss:()=>e.store.dismissToast(n.id)});return A()&&r.push({key:`action-error`,text:A(),tone:`error`,onDismiss:()=>P(void 0)}),F()&&r.push({key:`action-notice`,text:F(),tone:`info`,onDismiss:()=>I(void 0)}),r});return(()=>{var c=Wu(),u=c.firstChild,D=u.firstChild,O=D.firstChild.nextSibling,k=O.nextSibling,A=u.nextSibling,M=A.firstChild,N=A.nextSibling,F=N.firstChild,I=F.firstChild;X(O,xn),X(D,W(K,{get when(){return!_()},get children(){var e=Su();return X(e,(()=>{var e=q(()=>!!Sn());return()=>e()?gd(Sn()):void 0})()),e}}),k),X(D,W(ot,{get store(){return e.store},class:`session-connection-indicator`}),k),X(D,W(K,{get when(){return q(()=>!_())()&&!Q()},get children(){var t=wu(),r=t.firstChild,i=r.firstChild.nextSibling.nextSibling,a=r.nextSibling;a.firstChild.nextSibling;var o=a.nextSibling;return r.$$click=()=>f(!0),X(i,()=>dd(n()?.state.model)),a.$$click=async()=>{let t=n()?.state.thinkingLevel??`off`,r=cd[(cd.indexOf(t)+1)%cd.length];try{await $.setThinking(e.sessionKey,r),e.store.setRuntimeThinkingLevel(e.sessionKey,r)}catch(e){P(e instanceof Error?e.message:String(e))}},X(a,()=>n()?.state.thinkingLevel??`—`,null),X(t,W(K,{get when(){return vn()},get children(){var e=Cu();return e.firstChild.nextSibling,X(e,(()=>{var e=q(()=>vn().percent===null);return()=>e()?`?`:`${vn().percent.toFixed(0)}%`})(),null),e}}),o),o.$$click=()=>g(!h()),j(()=>Y(r,`title`,fd(n()?.state.model))),t}}),k),k.$$click=()=>v(!_()),X(k,()=>_()?`details ▾`:`details ▴`),X(u,W(K,{get when(){return!_()},get children(){return[(()=>{var e=Eu(),t=e.firstChild,n=t.nextSibling;return X(t,wn),n.$$click=Qt,X(n,W(G,{get each(){return kn()},children:e=>(()=>{var t=Gu();return X(t,e),t})()})),X(e,W(K,{get when(){return et()},get children(){var e=Tu(),t=ft;return typeof t==`function`?Fe(t,e):ft=e,X(e,W(K,{get when(){return nt()},get children(){var e=Ql();return X(e,nt),e}}),null),X(e,W(K,{get when(){return te()},get fallback(){return Ku()},children:e=>(()=>{var t=qu(),n=t.firstChild.nextSibling,r=n.nextSibling.nextSibling,i=r.nextSibling.nextSibling,a=i.firstChild,o=i.nextSibling.nextSibling,s=o.firstChild,c=o.nextSibling.nextSibling,l=c.firstChild,u=c.nextSibling.nextSibling,d=u.nextSibling.nextSibling;return d.firstChild,X(n,()=>e().userMessages),X(r,()=>e().assistantMessages),X(i,()=>e().toolCalls,a),X(i,()=>e().toolResults,null),X(o,()=>pd(e().tokens.input),s),X(o,()=>pd(e().tokens.output),null),X(c,()=>pd(e().tokens.cacheRead),l),X(c,()=>pd(e().tokens.cacheWrite),null),X(u,()=>pd(e().tokens.total)),X(d,()=>e().cost.toFixed(4),null),t})()}),null),e}}),null),j(()=>n.disabled=!!Q()),e})(),W(K,{get when(){return h()},get children(){var t=ku(),r=t.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling,c=s.nextSibling,u=c.nextSibling,d=u.nextSibling;return i.$$click=()=>S(!0),a.$$click=()=>fn(!0),o.$$click=()=>fn(!1),s.$$click=()=>w(!0),c.$$click=Xt,u.$$click=St,X(t,W(K,{get when(){return yn()},get children(){return[(()=>{var e=Du();return e.firstChild,e.$$click=()=>f(!0),X(e,()=>dd(n()?.state.model),null),e})(),(()=>{var t=Ou();return t.firstChild,t.$$click=async()=>{let t=n()?.state.thinkingLevel??`off`,r=cd[(cd.indexOf(t)+1)%cd.length];try{await $.setThinking(e.sessionKey,r),e.store.setRuntimeThinkingLevel(e.sessionKey,r)}catch(e){P(e instanceof Error?e.message:String(e))}},X(t,()=>n()?.state.thinkingLevel??`—`,null),t})()]}}),d),d.$$click=un,X(d,()=>l()?`stopping runtime…`:`stop runtime`),j(t=>{var n=$.exportHtmlUrl(e.sessionKey),i=l();return n!==t.e&&Y(r,`href`,t.e=n),i!==t.t&&(d.disabled=t.t=i),t},{e:void 0,t:void 0}),t}})]}}),null),X(c,W(ct,{get banners(){return Fn()}}),A);var R=it;typeof R==`function`?Fe(R,A):it=A;var z=at;return typeof z==`function`?Fe(z,M):at=M,X(M,W(K,{get when(){return t()},get fallback(){return Ju()},get children(){return[W(G,{get each(){return t().widgets.above},children:e=>(()=>{var t=Yu();return X(t,e),t})()}),W(Oc,{get entries(){return t().entries},get resetKey(){return e.sessionKey},get imageScope(){return{runtimeKey:e.sessionKey}}}),W(K,{get when(){return t().uiRequests.find(e=>e.method===`ask`)},children:e=>W(Ed,{get request(){return e()},onRespond:Tt,onStop:()=>void ln(),get stopping(){return s()}})}),W(G,{get each(){return t().widgets.below},children:e=>(()=>{var t=Yu();return X(t,e),t})()})]}})),I.$$click=()=>b(!y()),X(I,(()=>{var e=q(()=>!!Q());return()=>e()?`closed`:y()?`compose ▴`:`compose ▾`})()),X(F,W(K,{get when(){return y()},get children(){var e=Au();return X(e,(()=>{var e=q(()=>!!_t());return()=>e()?`agent working — open controls to stop or steer`:q(()=>An().length>0)()?`${An().length} queued message(s)`:`composer hidden for transcript reading`})()),e}}),null),X(N,W(K,{get when(){return!y()},get children(){var n=Hu();return X(n,W(K,{get when(){return gn().length>0},get children(){var e=ju(),t=e.firstChild,n=t.firstChild.nextSibling,r=n.nextSibling.nextSibling;r.nextSibling;var i=t.nextSibling;return X(t,_n,n),X(t,()=>gn().length,r),X(i,W(G,{get each(){return gn()},children:e=>(()=>{var t=Xu(),n=t.firstChild;return X(t,(()=>{var t=q(()=>e.status===`completed`);return()=>t()?`☑`:e.status===`in_progress`?`⧖`:`☐`})(),n),X(t,()=>e.title,null),j(n=>{var r=e.status===`completed`,i=e.status===`in_progress`;return r!==n.e&&t.classList.toggle(`done`,n.e=r),i!==n.t&&t.classList.toggle(`active`,n.t=i),n},{e:void 0,t:void 0}),t})()})),j(()=>e.open=!yn()),e}}),null),X(n,W(K,{get when(){return pn().length+mn().length>0},get children(){var t=Mu(),n=t.firstChild,r=n.firstChild.nextSibling,i=r.nextSibling.nextSibling;i.nextSibling;var a=n.nextSibling;return X(n,()=>pn().length,r),X(n,()=>mn().length,i),X(a,W(G,{get each(){return hn()},children:t=>(()=>{var n=Zu(),r=n.firstChild,i=r.firstChild,a=i.nextSibling,o=a.firstChild;return r.$$click=()=>e.store.navigate({screen:`subagent`,key:e.sessionKey,agentId:t.agentId}),X(i,(()=>{var e=q(()=>t.status===`running`);return()=>e()?Q()?`○`:`●`:t.status===`completed`?`✓`:`✕`})()),X(a,()=>t.agentType,o),X(a,()=>t.taskSummary,null),X(a,W(K,{get when(){return t.arbitrations?.at(-1)},children:e=>e().status===`failure`?` · arbitration failed`:` · ${e().final?.model??e().proposed.model} @ ${e().final?.thinking??e().proposed.thinking}`}),null),j(()=>je(i,t.status===`running`&&!Q()?`live`:`done`)),n})()})),j(()=>t.open=!yn()),t}}),null),X(n,W(K,{get when(){return _t()||vt().length>0},get children(){var e=Fu();return X(e,W(K,{get when(){return pt()},get children(){var e=Nu();return e.firstChild,X(e,(()=>{var e=q(()=>!!t()?.workingText);return()=>e()?` — ${t().workingText}`:``})(),null),X(e,(()=>{var e=q(()=>L()>2);return()=>e()?` (${L()}s)`:``})(),null),e}}),null),X(e,W(G,{get each(){return vt()},children:e=>(()=>{var t=Qu();return t.firstChild,t.$$click=()=>dn(e.key),X(t,()=>e.key,null),t})()}),null),X(e,W(K,{get when(){return _t()},get children(){var e=Pu();return e.$$click=ln,X(e,()=>s()?`stopping…`:`■ stop`),j(()=>e.disabled=s()),e}}),null),e}}),null),X(n,W(K,{get when(){return!Q()},get fallback(){return $u()},get children(){var n=Vu(),s=n.firstChild,c=s.nextSibling,l=c.firstChild,u=l.nextSibling,d=u.nextSibling,f=d.nextSibling,p=f.nextSibling;X(n,W(K,{get when(){return An().length>0},get children(){var e=Iu(),t=e.firstChild;return X(e,W(G,{get each(){return An()},children:e=>(()=>{var t=ed(),n=t.firstChild;return X(n,()=>e.kind),X(t,()=>e.text,null),j(()=>Y(t,`title`,e.text)),t})()}),t),t.$$click=zt,e}}),s),X(n,W(K,{get when(){return ye().length>0||_e().length>0},get children(){var e=Lu();return X(e,W(G,{get each(){return ye()},children:(e,t)=>(()=>{var n=td(),r=n.firstChild;r.firstChild;var i=r.nextSibling,a=i.nextSibling;return X(r,()=>e.fileName,null),X(i,()=>bd(e.size)),a.$$click=()=>be(e=>e.filter((e,n)=>n!==t())),j(()=>Y(n,`title`,e.path)),n})()}),null),X(e,W(G,{get each(){return _e()},children:(e,t)=>(()=>{var n=nd(),r=n.firstChild,i=r.nextSibling;return i.$$click=()=>jt(t()),j(t=>{var i=`${e.fileName} (${bd(e.size)})`,a=e.previewUrl,o=e.fileName;return i!==t.e&&Y(n,`title`,t.e=i),a!==t.t&&Y(r,`src`,t.t=a),o!==t.a&&Y(r,`alt`,t.a=o),t},{e:void 0,t:void 0,a:void 0}),n})()}),null),e}}),s),X(n,W(K,{get when(){return Nn()},get children(){var e=Ru();return X(e,W(G,{get each(){return Mn()},children:(e,t)=>(()=>{var n=id(),r=n.firstChild;r.firstChild;var i=r.nextSibling;return n.$$click=()=>Pn(e),n.addEventListener(`mouseenter`,()=>ue(t())),X(r,()=>e.name,null),X(n,W(K,{get when(){return e.description},get children(){var t=rd();return X(t,()=>e.description),t}}),i),X(i,()=>e.source),j(e=>{var r=`command-option-${t()}`,i=U()===t(),a=U()===t();return r!==e.e&&Y(n,`id`,e.e=r),i!==e.t&&Y(n,`aria-selected`,e.t=i),a!==e.a&&n.classList.toggle(`selected`,e.a=a),e},{e:void 0,t:void 0,a:void 0}),n})()})),e}}),s),s.$$keydown=t=>{if(Nn()){if(t.key===`ArrowDown`){t.preventDefault(),ue((U()+1)%Mn().length);return}if(t.key===`ArrowUp`){t.preventDefault(),ue((U()-1+Mn().length)%Mn().length);return}if(t.key===`Tab`||t.key===`Enter`&&!t.shiftKey&&!yn()){t.preventDefault();let e=Mn()[U()];e&&t.key===`Enter`&&r()===`/${e.name}`?(le(!0),cn()):e&&Pn(e);return}if(t.key===`Escape`){t.preventDefault(),le(!0);return}}if((t.key===`ArrowUp`||t.key===`ArrowDown`)&&(r()===``||xe()!==void 0)){let n=yl(e.sessionKey);if(n.length>0){if(t.preventDefault(),t.key===`ArrowUp`){let e=xe()===void 0?n.length-1:Math.max(0,xe()-1);Se(e),i(n[e]??``)}else if(xe()!==void 0){let e=xe()+1;e>=n.length?(Se(void 0),i(``)):(Se(e),i(n[e]??``))}}return}t.key===`Enter`&&!t.shiftKey&&!yn()&&(t.preventDefault(),cn())},s.$$input=e=>{le(!1),ue(0),Se(void 0),i(e.currentTarget.value),Cd(e.currentTarget)},s.addEventListener(`paste`,e=>{let t=[...e.clipboardData?.items??[]].filter(e=>e.type.startsWith(`image/`)).map(e=>e.getAsFile()).filter(e=>!!e);t.length>0&&(e.preventDefault(),Vt(t))});var m=lt;typeof m==`function`?Fe(m,s):lt=s,l.addEventListener(`change`,e=>{Wt(e.currentTarget.files??[]),e.currentTarget.value=``});var h=ut;typeof h==`function`?Fe(h,l):ut=l,u.addEventListener(`change`,e=>{Vt(e.currentTarget.files??[]),e.currentTarget.value=``});var g=dt;return typeof g==`function`?Fe(g,u):dt=u,d.$$click=()=>ut?.click(),f.$$click=()=>dt?.click(),X(c,W(K,{get when(){return pt()},get children(){var e=zu(),t=e.firstChild,n=t.nextSibling;return t.$$click=()=>o(`steer`),n.$$click=()=>o(`follow_up`),j(e=>{var r=a()===`steer`,i=a()===`follow_up`;return r!==e.e&&t.classList.toggle(`selected`,e.e=r),i!==e.t&&n.classList.toggle(`selected`,e.t=i),e},{e:void 0,t:void 0}),e}}),p),X(c,W(K,{get when(){return t()?.suggestedCommand},get children(){var e=Bu(),n=e.firstChild.nextSibling;return e.$$click=()=>i(t().suggestedCommand),X(n,()=>t().suggestedCommand),e}}),p),p.$$click=cn,j(e=>{var t=pt()?`Message dreb — sends as steer while it works…`:`Message dreb…`,n=Nn()?`command-listbox`:void 0,r=Nn()?`command-option-${U()}`:void 0;return t!==e.e&&Y(s,`placeholder`,e.e=t),n!==e.t&&Y(s,`aria-controls`,e.t=n),r!==e.a&&Y(s,`aria-activedescendant`,e.a=r),e},{e:void 0,t:void 0,a:void 0}),j(()=>s.value=r()),n}}),null),n}}),null),X(c,W(K,{get when(){return t()?.uiRequests.find(e=>e.method!==`ask`)},keyed:!0,children:e=>W(wd,{request:e,onRespond:Tt})}),null),X(c,W(K,{get when(){return d()},get children(){return W(Od,{get sessionKey(){return e.sessionKey},get state(){return n()?.state},get initialFilter(){return p()},onClose:()=>{f(!1),m(``)},onSelected:t=>e.store.setRuntimeModel(e.sessionKey,t)})}}),null),X(c,W(K,{get when(){return x()},get children(){return W(st,{title:`compact context`,onDismiss:()=>S(!1),get actions(){return[(()=>{var e=El();return e.$$click=()=>S(!1),e})(),(()=>{var t=ad();return t.$$click=async()=>{S(!1);try{await $.compact(e.sessionKey)}catch(e){P(e instanceof Error?e.message:String(e))}},t})()]},get children(){return Uu()}})}}),null),X(c,W(K,{get when(){return T()},get children(){return W(Dd,{get resources(){return de()},get error(){return pe()},onClose:()=>E(!1)})}}),null),X(c,W(K,{get when(){return Ce()},get children(){return W(st,{title:`fork from message`,onDismiss:()=>we(!1),get children(){return[W(K,{get when(){return De()},get children(){var e=Ql();return X(e,De),e}}),W(K,{get when(){return Te().length>0},get fallback(){return od()},get children(){var e=mu();return X(e,W(G,{get each(){return Te()},children:e=>(()=>{var t=_u(),n=t.firstChild,r=n.nextSibling;return t.$$click=()=>Zt(e.entryId),X(n,()=>e.entryId),X(r,()=>e.text),t})()})),e}})]}})}}),null),X(c,W(K,{get when(){return ke()},get children(){return W(Ad,{get roots(){return Ae()},get leafId(){return Ne()},get loading(){return Ie()},get error(){return Re()},onClose:()=>J(!1),onNavigate:Kt})}}),null),X(c,W(K,{get when(){return Be()},get children(){return W(jd,{get sessions(){return He()},get loading(){return We()},get error(){return Ke()},onClose:()=>Ve(!1),onResume:Jt})}}),null),X(c,W(K,{get when(){return Je()},get children(){return W(Md,{get initialPath(){return Xe()},get error(){return Qe()},onClose:()=>Ye(!1),onImport:Yt})}}),null),X(c,W(K,{get when(){return C()},get children(){return W(Pd,{get current(){return bn()??``},onClose:()=>w(!1),onRename:async t=>{try{await $.rename(e.sessionKey,t),w(!1)}catch(e){P(e instanceof Error?e.message:String(e))}}})}}),null),j(e=>{var t=!!_(),n=_()?`show session details`:`hide session details`,r=!!y(),i=Q()?`closed session transcript`:y()?`show composer and controls`:`hide composer and controls`,a=!!Q();return t!==e.e&&u.classList.toggle(`collapsed`,e.e=t),n!==e.t&&Y(k,`title`,e.t=n),r!==e.a&&N.classList.toggle(`collapsed`,e.a=r),i!==e.o&&Y(I,`title`,e.o=i),a!==e.i&&(I.disabled=e.i=a),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),c})()}function Pd(e){let[t,n]=k(e.current);return W(st,{title:`rename session`,get onDismiss(){return e.onClose},get actions(){return[(()=>{var t=El();return Me(t,`click`,e.onClose,!0),t})(),(()=>{var n=sd();return n.$$click=()=>e.onRename(t().trim()),j(()=>n.disabled=!t().trim()),n})()]},get children(){var e=wl(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e}})}Ae([`input`,`click`,`keydown`]);var Fd=J(`<div class=settings-error>`),Id=J(`<p class=muted>Loading scoped models…`),Ld=J(`<section class="settings-section scoped-models-editor"tabindex=-1 aria-labelledby=scoped-models-heading><h2 id=scoped-models-heading>scoped models</h2><p class="muted small">Controls model cycling for new sessions only; running sessions are never changed. Writes always update global settings, while the selected context shows effective global-plus-project settings.</p><label class=scoped-models-context><span>project context</span><select><option value>global / home`),Rd=J(`<option>`),zd=J(`<div class=settings-warning>This project defines enabledModels in .dreb/settings.json and shadows global writes.`),Bd=J(`<div class=scoped-models-toolbar><input type=search aria-label="Search available models"placeholder="search provider, model, or name…"><button type=button class="btn btn-small">enable all`),Vd=J(`<div class=scoped-models-grid><div class=scoped-models-order><h3>cycling order</h3><p class="muted small"></p></div><div class=scoped-models-available><h3>available models`),Hd=J(`<span class="muted small">unsaved changes`),Ud=J(`<span class="muted small">✓ saved`),Wd=J(`<div class=scoped-models-actions><button type=button class="btn btn-small">reset</button><button type=button class="btn btn-primary btn-small">`),Gd=J(`<div class=settings-warning>`),Kd=J(`<div class=scoped-model-order-row><span></span><div class=scoped-model-move-controls><button type=button>↑</button><button type=button>↓`),qd=J(`<p class="muted small">No matching models.`),Jd=J(`<section class=scoped-model-provider><label class=scoped-model-provider-heading><input type=checkbox><span>`),Yd=J(`<span class=model-name>`),Xd=J(`<label class=scoped-model-choice><input type=checkbox><span class=model-id>`);function Zd(e){return`${e.provider}/${e.id}`}function Qd(e){let t=new Map;for(let n of e){let e=t.get(n.provider)??[];e.push(n),t.set(n.provider,e)}return[...t].map(([e,t])=>({provider:e,models:t}))}function $d(e){let[t,n]=k(``),[r,i]=k(!0),[a,o]=k([]),[s,c]=k(!1),[l,u]=k(!1),[d,f]=k(!1),[p,m]=k(),[h,g]=k([]),_,v,y,b=()=>e.cwd??``,[x,{mutate:S}]=F(b,async e=>{let t=e||void 0,[n,r]=await Promise.all([$.settings(t),$.settingsModels(t)]);return{cwd:e,settings:n,models:r.models}}),C=N(()=>{if(x.error)return;let e=x();return e?.cwd===b()?e:void 0});function w(e,t){let n=e.enabledModels===void 0;i(n),o(n?t.map(Zd):e.resolvedScopedModels.map(e=>`${e.provider}/${e.id}`)),c(!1),f(!1),m(void 0),g([])}let T=b();M(()=>{let e=b();e!==T&&(T=e,v=void 0,y=void 0,c(!1),f(!1),m(void 0),g([]))}),M(()=>{let e=C();!e||e.cwd===v&&e.settings===y||(v=e.cwd,y=e.settings,w(e.settings,e.models))}),M(()=>{!e.focused||!_||(_.scrollIntoView({block:`start`}),_.focus({preventScroll:!0}))});let E=N(()=>new Set(a())),D=N(()=>{let t=new Set(e.projectRoots);return e.cwd&&t.add(e.cwd),[...t].sort((e,t)=>e.localeCompare(t))}),O=N(()=>{let e=t().trim().toLowerCase();return Qd((C()?.models??[]).filter(t=>!e||`${t.provider}/${t.id} ${t.name??``}`.toLowerCase().includes(e)))}),A=N(()=>{if((C()?.models.length??0)===0)return`No available models were reported for this context.`;if(!r()&&a().length===0)return`At least one model must remain enabled.`}),P=N(()=>{let e=C()?.settings;if(!e?.enabledModels)return;let t=e.resolvedScopedModels.map(e=>`${e.provider}/${e.id}`);return e.enabledModels.length===t.length&&e.enabledModels.every((e,n)=>e===t[n])&&e.scopeWarnings.length===0?void 0:`Saving an edited legacy scope replaces patterns and per-pattern thinking suffixes with exact provider/model references.`});function I(e){let t=C()?.models.map(Zd)??[],n=t.length>0&&t.every(t=>e.includes(t));i(n),o(n?t:e),c(!0),f(!1),m(void 0)}function L(e){let t=r()?C()?.models.map(Zd)??[]:a();I(t.includes(e)?t.filter(t=>t!==e):[...t,e])}function R(e){let t=(C()?.models??[]).filter(t=>t.provider===e).map(Zd),n=r()?C()?.models.map(Zd)??[]:a();I(t.every(e=>n.includes(e))?n.filter(e=>!t.includes(e)):[...n,...t.filter(e=>!n.includes(e))])}function z(e,t){if(r())return;let n=e+t;if(n<0||n>=a().length)return;let i=[...a()];[i[e],i[n]]=[i[n],i[e]],o(i),c(!0),f(!1)}function ee(){let e=C();e&&w(e.settings,e.models)}async function te(){let e=C();if(!e||!s()||A())return;u(!0),m(void 0),g([]),f(!1);let t=e.cwd||void 0;try{let n=await $.saveSettings({enabledModels:r()?null:a()},t);if(b()!==e.cwd)return;v=e.cwd,y=n,S({cwd:e.cwd,settings:n,models:e.models}),w(n,e.models),g(n.warnings??[]),f(!0)}catch(t){b()===e.cwd&&m(t instanceof Error?t.message:String(t))}finally{u(!1)}}return(()=>{var i=Ld(),o=i.firstChild.nextSibling.nextSibling.firstChild.nextSibling;o.firstChild;var c=_;return typeof c==`function`?Fe(c,i):_=i,o.addEventListener(`change`,t=>e.onCwdChange(t.currentTarget.value||void 0)),X(o,W(G,{get each(){return D()},children:e=>(()=>{var t=Rd();return t.value=e,X(t,e),t})()}),null),X(i,W(K,{get when(){return x.error},get children(){var e=Fd();return X(e,(()=>{var e=q(()=>x.error instanceof Error);return()=>e()?x.error.message:String(x.error)})()),e}}),null),X(i,W(K,{get when(){return x.loading},get children(){return Id()}}),null),X(i,W(K,{get when(){return C()},children:e=>[W(K,{get when(){return e().settings.hasProjectEnabledModelsOverride},get children(){return zd()}}),W(K,{get when(){return P()},children:e=>(()=>{var t=Gd();return X(t,e),t})()}),W(G,{get each(){return e().settings.scopeWarnings},children:e=>(()=>{var t=Gd();return X(t,()=>e.message),t})()}),W(G,{get each(){return h()},children:e=>(()=>{var t=Gd();return X(t,e),t})()}),W(K,{get when(){return p()},children:e=>(()=>{var t=Fd();return X(t,e),t})()}),W(K,{get when(){return A()},children:e=>(()=>{var t=Fd();return X(t,e),t})()}),(()=>{var i=Bd(),a=i.firstChild,o=a.nextSibling;return a.$$input=e=>n(e.currentTarget.value),o.$$click=()=>I(e().models.map(Zd)),j(()=>o.disabled=r()),j(()=>a.value=t()),i})(),(()=>{var t=Vd(),n=t.firstChild,i=n.firstChild.nextSibling,o=n.nextSibling;return o.firstChild,X(i,(()=>{var e=q(()=>!!r());return()=>e()?`All available models, in registry order (future models included).`:`${a().length} enabled model${a().length===1?``:`s`}.`})()),X(n,W(G,{get each(){return a()},children:(e,t)=>(()=>{var n=Kd(),i=n.firstChild,o=i.nextSibling.firstChild,s=o.nextSibling;return Y(i,`title`,e),X(i,e),o.$$click=()=>z(t(),-1),Y(o,`aria-label`,`Move ${e} up`),s.$$click=()=>z(t(),1),Y(s,`aria-label`,`Move ${e} down`),j(e=>{var n=r()||t()===0,i=r()||t()===a().length-1;return n!==e.e&&(o.disabled=e.e=n),i!==e.t&&(s.disabled=e.t=i),e},{e:void 0,t:void 0}),n})()}),null),X(o,W(K,{get when(){return O().length>0},get fallback(){return qd()},get children(){return W(G,{get each(){return O()},children:t=>(()=>{var n=Jd(),r=n.firstChild.firstChild,i=r.nextSibling;return r.addEventListener(`change`,()=>R(t.provider)),X(i,()=>t.provider),X(n,W(G,{get each(){return t.models},children:e=>{let t=Zd(e);return(()=>{var n=Xd(),r=n.firstChild,i=r.nextSibling;return Y(n,`title`,t),r.addEventListener(`change`,()=>L(t)),X(i,()=>e.id),X(n,W(K,{get when(){return e.name},get children(){var t=Yd();return X(t,()=>e.name),t}}),null),j(()=>r.checked=E().has(t)),n})()}}),null),j(()=>r.checked=e().models.filter(e=>e.provider===t.provider).every(e=>E().has(Zd(e)))),n})()})}}),null),t})(),(()=>{var e=Wd(),t=e.firstChild,n=t.nextSibling;return t.$$click=ee,n.$$click=()=>void te(),X(n,()=>l()?`saving…`:`save`),X(e,W(K,{get when(){return s()},get children(){return Hd()}}),null),X(e,W(K,{get when(){return d()},get children(){return Ud()}}),null),j(e=>{var r=!s()||l(),i=!s()||l()||!!A();return r!==e.e&&(t.disabled=e.e=r),i!==e.t&&(n.disabled=e.t=i),e},{e:void 0,t:void 0}),e})()]}),null),j(()=>o.value=e.cwd??``),i})()}Ae([`input`,`click`]);var ef=[{id:`default`,label:`entropist.ca`},{id:`dim`,label:`Dim`},{id:`solarized`,label:`Solarized`},{id:`gruvbox`,label:`Gruvbox`},{id:`qud`,label:`Caves of Qud`},{id:`vangogh`,label:`Van Gogh`},{id:`okabe`,label:`Colorblind-safe (Okabe-Ito)`},{id:`tol`,label:`Colorblind-safe (Paul Tol)`}],tf=ef.map(e=>e.id),nf=[`system`,`light`,`dark`],rf=`dreb.dashboard.theme`,af=`dreb.dashboard.colorMode`,of=`default`,sf=`system`;function cf(e){return typeof e==`string`&&tf.includes(e)}function lf(e){return typeof e==`string`&&nf.includes(e)}function uf(){if(typeof window>`u`)return of;try{let e=window.localStorage.getItem(rf);return cf(e)?e:of}catch{return of}}function df(){if(typeof window>`u`)return sf;try{let e=window.localStorage.getItem(af);return lf(e)?e:sf}catch{return sf}}function ff(e,t,n){if(!(typeof window>`u`))try{t===n?window.localStorage.removeItem(e):window.localStorage.setItem(e,t)}catch{}}var[pf,mf]=k(uf()),[hf,gf]=k(df()),_f=pf,vf=hf;function yf(e){let t=e.defaultView??(typeof window<`u`?window:void 0);return!t||typeof t.getComputedStyle!=`function`?``:t.getComputedStyle(e.documentElement).getPropertyValue(`--bg`).trim()}function bf(e){try{let t=e??(typeof document<`u`?document:void 0);if(!t)return;let n=t.documentElement;if(!n)return;let r=pf(),i=hf();if(r===of?n.removeAttribute(`data-theme`):n.setAttribute(`data-theme`,r),i===sf?n.removeAttribute(`data-color-mode`):n.setAttribute(`data-color-mode`,i),!(r!==of||i!==sf))n.style.removeProperty(`color-scheme`);else{let e=i===`light`?`light`:i===`dark`?`dark`:`light dark`;n.style.setProperty(`color-scheme`,e)}}catch{}}function xf(e){try{let t=e??(typeof document<`u`?document:void 0);if(!t)return;let n=yf(t);if(!n)return;let r=t.querySelector(`meta[name="theme-color"]:not([media])`);if(!r){r=t.createElement(`meta`),r.setAttribute(`name`,`theme-color`);let e=t.head??t.getElementsByTagName(`head`)[0];e&&e.insertBefore(r,e.firstChild)}r.setAttribute(`content`,n)}catch{}}function Sf(e){let t=cf(e)?e:of;mf(t),ff(rf,t,of),bf(),xf()}function Cf(e){let t=lf(e)?e:sf;gf(t),ff(af,t,sf),bf(),xf()}var wf=null,Tf=!1;function Ef(){hf()===sf&&xf()}function Df(e){e.key!==null&&e.key!==`dreb.dashboard.theme`&&e.key!==`dreb.dashboard.colorMode`||Of()}function Of(){mf(uf()),gf(df()),bf(),xf()}function kf(){if(!(typeof window>`u`)){try{typeof window.matchMedia==`function`&&(wf=window.matchMedia(`(prefers-color-scheme: dark)`),typeof wf.addEventListener==`function`?wf.addEventListener(`change`,Ef):typeof wf.addListener==`function`&&wf.addListener(Ef))}catch{}try{window.addEventListener(`storage`,Df)}catch{}}}function Af(){Of(),!Tf&&(Tf=!0,kf())}var jf=J(`<div class=appearance-controls><div class=setting-row><span class=setting-label><span class=name>color mode</span><span class=hint>this browser only — “system” follows your OS light/dark preference</span></span><span class=setting-control><select id=pref-color-mode></select></span></div><div class=theme-gallery>`),Mf=J(`<option>`),Nf=J(`<button type=button class=theme-card><div class=theme-card-preview><div class=theme-card-swatch><span class=theme-card-name></span><span class=theme-card-muted>The quick brown fox.</span></div><div class=theme-card-chips></div><pre class=theme-card-code><code class=hljs><span class=hljs-keyword>const</span> <span class=hljs-variable>count</span><span class=hljs-operator> = </span><span class=hljs-number>42</span><span class=hljs-punctuation>;</span>
77
+ `)}function an(e,t,n=`/${e}`){return t?(I(`Usage: ${n}`),!0):!1}function on(){let t=document.createElement(`a`);t.href=$.exportHtmlUrl(e.sessionKey),t.download=``,document.body.append(t),t.click(),t.remove()}let sn={settings:async t=>{an(`settings`,t)||e.store.navigate({screen:`settings`})},"scoped-models":async t=>{if(an(`scoped-models`,t))return;let r=n()?.cwd;if(!r)throw Error(`Cannot open scoped models: the runtime project directory is unavailable`);e.store.navigate({screen:`settings`,target:`scoped-models`,cwd:r})},model:async e=>{m(e),f(!0)},export:async e=>{an(`export`,e)||on()},import:async e=>{Ze(e),$e(void 0),Ye(!0)},name:async t=>{t?await $.rename(e.sessionKey,t):w(!0)},session:async e=>{an(`session`,e)||(v(!1),await Qt())},fork:async e=>{an(`fork`,e)||await Xt()},tree:async e=>{an(`tree`,e)||await Gt()},new:async t=>{if(!an(`new`,t)){if(pt()||mt()){I(`Wait for the current operation to finish before starting a new session.`);return}(await $.newSession(e.sessionKey)).cancelled?I(`New session cancelled.`):(await e.store.hydrateSession(e.sessionKey),await e.store.refreshDiskSessions())}},compact:async t=>{t?(await $.compact(e.sessionKey,t),I(`Compaction started.`)):S(!0)},dream:async t=>{let n=await $.dream(e.sessionKey,t||void 0);I(n.message)},resume:async e=>{an(`resume`,e)||await qt()},reload:async t=>{if(an(`reload`,t))return;if(pt()||mt()){I(`Wait for the current operation to finish before reloading.`);return}await $.reload(e.sessionKey);let[{commands:n}]=await Promise.all([$.commands(e.sessionKey),e.store.hydrateSession(e.sessionKey)]);H(n),I(`Reloaded extensions, skills, prompts, themes, and settings.`)},quit:async e=>{an(`quit`,e)||await un()}};async function cn(){let t=r().trim();if(!t&&ye().length===0&&_e().length===0)return;P(void 0),I(void 0);let n=dl(t,se());if(n){if(ye().length>0||_e().length>0){I(`Remove attachments before running a built-in command; nothing was sent or discarded.`);return}try{await fl(n,sn,I),i(``),Se(void 0)}catch(e){P(e instanceof Error?e.message:String(e))}return}let o=rn(t||`Please review the attached item(s). `);try{let t=_e(),n=t.length>0?await Promise.all(t.map(async({blob:e,mimeType:t})=>({data:await Ot(e),mimeType:t}))):void 0;pt()?await $.prompt(e.sessionKey,o,a(),n):n?await $.prompt(e.sessionKey,o,void 0,n):await $.prompt(e.sessionKey,o),xl(e.sessionKey,o),Se(void 0),i(``),At(),be([]),Ct()}catch(e){P(e instanceof Error?e.message:String(e))}}async function ln(){c(!0);try{await $.abort(e.sessionKey),await zt()}catch(e){P(e instanceof Error?e.message:String(e))}finally{c(!1)}}async function un(){if(!l()){u(!0),P(void 0);try{await e.store.stopRuntime(e.sessionKey)}catch(e){P(e instanceof Error?e.message:String(e))}finally{u(!1)}}}async function dn(t){try{t===`compaction`?await $.abortCompaction(e.sessionKey):t===`retry`&&await $.abortRetry(e.sessionKey)}catch(e){P(e instanceof Error?e.message:String(e))}}function fn(e){it?.querySelectorAll(`details.tool`).forEach(t=>{t.open=e})}let pn=()=>Q()?[]:Object.values(t()?.backgroundAgents??{}).filter(e=>e.status===`running`),mn=()=>Object.values(t()?.backgroundAgents??{}).filter(e=>Q()||e.status!==`running`),hn=()=>Object.values(t()?.backgroundAgents??{}).sort((e,t)=>Date.parse(t.startedAt)-Date.parse(e.startedAt)),gn=()=>t()?.tasks??[],_n=()=>gn().filter(e=>e.status===`completed`).length,vn=()=>n()?.state.contextUsage??te()?.contextUsage,yn=()=>typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 700px)`).matches,bn=()=>t()?.sessionName??n()?.state.sessionName,xn=()=>bn()??t()?.title??e.sessionKey,Sn=()=>n()?.cwd??Q()?.cwd,Cn=()=>{let e=Sn();if(!e)return;let t=ae();return`${vd(e)}${t?` (${t})`:``}`},wn=()=>{let e=Cn(),t=bn();return e&&t?`${e} • ${t}`:e??t??`session`},Tn=()=>{let e=te()?.tokens;if(!e)return;let t=[];return e.input&&t.push(`↑${hd(e.input)}`),e.output&&t.push(`↓${hd(e.output)}`),e.cacheRead&&t.push(`R${hd(e.cacheRead)}`),e.cacheWrite&&t.push(`W${hd(e.cacheWrite)}`),t.length>0?t.join(` `):void 0},En=()=>{let e=te()?.cost??0,t=n()?.state.usingSubscription??!1;if(!e&&!t)return;let r=`$${e.toFixed(3)}${t?` (sub)`:``}`,i=oe();return i!==void 0&&i>e&&(r+=`, today: $${i.toFixed(2)}`),r},Dn=()=>{let e=vn();if(e)return`ctx ${e.percent===null?`?`:`${e.percent.toFixed(0)}%`}/${hd(e.contextWindow)}`},On=()=>_d(re(),n()?.state.model),kn=()=>[Tn(),En(),Dn(),On()].filter(Boolean),An=()=>[...(he().steeringMessages??he().steering.map(e=>({text:e}))).map(e=>({kind:`steer`,text:e.images?.length?`${e.text} (${e.images.length} image(s))`:e.text})),...(he().followUpMessages??he().followUp.map(e=>({text:e}))).map(e=>({kind:`follow-up`,text:e.images?.length?`${e.text} (${e.images.length} image(s))`:e.text}))],jn=()=>{let e=r();if(ce()||!e.startsWith(`/`))return;let t=e.slice(1);if(!/\s/.test(t))return t.toLowerCase()},Mn=N(()=>{let e=jn();return e===void 0?[]:pl(se(),e)}),Nn=()=>Mn().length>0,Pn=e=>{i(`/${e.name} `),le(!0),queueMicrotask(()=>lt?.focus())};M(()=>{let e=Mn().length;U()>=e&&ue(Math.max(0,e-1))});let Fn=N(()=>{let r=[],i=Q();if(i&&!i.bannerDismissed){let t=i.resumeError?`\nResume failed: ${i.resumeError}`:``,n=[];i.cwd&&i.sessionFile&&n.push({label:i.resuming?`resuming…`:`Resume session`,run:()=>e.store.resumeClosedSession(e.sessionKey),disabled:i.resuming}),n.push({label:`Return to fleet`,run:()=>e.store.navigate({screen:`fleet`}),disabled:i.resuming}),r.push({key:`closed`,text:`session ${e.sessionKey} was closed${t}`,tone:i.resumeError?`error`:`warning`,onDismiss:()=>e.store.dismissClosedBanner(e.sessionKey),actions:n})}let a=n()?.state.modelFallbackMessage;a&&!D()&&r.push({key:`fallback`,text:a,tone:`warning`,onDismiss:()=>O(!0)});for(let n of t()?.statusEntries??[])n.dismissed||r.push({key:`status:${n.id}`,text:n.text,tone:n.tone,onDismiss:()=>e.store.dismissStatusBanner(e.sessionKey,n.id)});for(let n of t()?.toasts??[])r.push({key:`toast:${n.id}`,text:n.text,tone:n.tone,onDismiss:()=>e.store.dismissToast(n.id)});return A()&&r.push({key:`action-error`,text:A(),tone:`error`,onDismiss:()=>P(void 0)}),F()&&r.push({key:`action-notice`,text:F(),tone:`info`,onDismiss:()=>I(void 0)}),r});return(()=>{var c=Ku(),u=c.firstChild,D=u.firstChild,O=D.firstChild.nextSibling,k=O.nextSibling,A=u.nextSibling,M=A.firstChild,N=A.nextSibling,F=N.firstChild,I=F.firstChild;X(O,xn),X(D,W(K,{get when(){return!_()},get children(){var e=Cu();return X(e,(()=>{var e=q(()=>!!Sn());return()=>e()?vd(Sn()):void 0})()),e}}),k),X(D,W(ot,{get store(){return e.store},class:`session-connection-indicator`}),k),X(D,W(K,{get when(){return q(()=>!_())()&&!Q()},get children(){var t=Tu(),r=t.firstChild,i=r.firstChild.nextSibling.nextSibling,a=r.nextSibling;a.firstChild.nextSibling;var o=a.nextSibling;return r.$$click=()=>f(!0),X(i,()=>pd(n()?.state.model)),a.$$click=async()=>{let t=n()?.state.thinkingLevel??`off`,r=ud[(ud.indexOf(t)+1)%ud.length];try{await $.setThinking(e.sessionKey,r),e.store.setRuntimeThinkingLevel(e.sessionKey,r)}catch(e){P(e instanceof Error?e.message:String(e))}},X(a,()=>n()?.state.thinkingLevel??`—`,null),X(t,W(K,{get when(){return vn()},get children(){var e=wu();return e.firstChild.nextSibling,X(e,(()=>{var e=q(()=>vn().percent===null);return()=>e()?`?`:`${vn().percent.toFixed(0)}%`})(),null),e}}),o),o.$$click=()=>g(!h()),j(()=>Y(r,`title`,md(n()?.state.model))),t}}),k),k.$$click=()=>v(!_()),X(k,()=>_()?`details ▾`:`details ▴`),X(u,W(K,{get when(){return!_()},get children(){return[(()=>{var e=Du(),t=e.firstChild,n=t.nextSibling;return X(t,wn),n.$$click=Qt,X(n,W(G,{get each(){return kn()},children:e=>(()=>{var t=qu();return X(t,e),t})()})),X(e,W(K,{get when(){return et()},get children(){var e=Eu(),t=ft;return typeof t==`function`?Fe(t,e):ft=e,X(e,W(K,{get when(){return nt()},get children(){var e=$l();return X(e,nt),e}}),null),X(e,W(K,{get when(){return te()},get fallback(){return Ju()},children:e=>(()=>{var t=Yu(),n=t.firstChild.nextSibling,r=n.nextSibling.nextSibling,i=r.nextSibling.nextSibling,a=i.firstChild,o=i.nextSibling.nextSibling,s=o.firstChild,c=o.nextSibling.nextSibling,l=c.firstChild,u=c.nextSibling.nextSibling,d=u.nextSibling.nextSibling;return d.firstChild,X(n,()=>e().userMessages),X(r,()=>e().assistantMessages),X(i,()=>e().toolCalls,a),X(i,()=>e().toolResults,null),X(o,()=>hd(e().tokens.input),s),X(o,()=>hd(e().tokens.output),null),X(c,()=>hd(e().tokens.cacheRead),l),X(c,()=>hd(e().tokens.cacheWrite),null),X(u,()=>hd(e().tokens.total)),X(d,()=>e().cost.toFixed(4),null),t})()}),null),e}}),null),j(()=>n.disabled=!!Q()),e})(),W(K,{get when(){return h()},get children(){var t=Au(),r=t.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.nextSibling,s=o.nextSibling,c=s.nextSibling,u=c.nextSibling,d=u.nextSibling;return i.$$click=()=>S(!0),a.$$click=()=>fn(!0),o.$$click=()=>fn(!1),s.$$click=()=>w(!0),c.$$click=Xt,u.$$click=St,X(t,W(K,{get when(){return yn()},get children(){return[(()=>{var e=Ou();return e.firstChild,e.$$click=()=>f(!0),X(e,()=>pd(n()?.state.model),null),e})(),(()=>{var t=ku();return t.firstChild,t.$$click=async()=>{let t=n()?.state.thinkingLevel??`off`,r=ud[(ud.indexOf(t)+1)%ud.length];try{await $.setThinking(e.sessionKey,r),e.store.setRuntimeThinkingLevel(e.sessionKey,r)}catch(e){P(e instanceof Error?e.message:String(e))}},X(t,()=>n()?.state.thinkingLevel??`—`,null),t})()]}}),d),d.$$click=un,X(d,()=>l()?`stopping runtime…`:`stop runtime`),j(t=>{var n=$.exportHtmlUrl(e.sessionKey),i=l();return n!==t.e&&Y(r,`href`,t.e=n),i!==t.t&&(d.disabled=t.t=i),t},{e:void 0,t:void 0}),t}})]}}),null),X(c,W(ct,{get banners(){return Fn()}}),A);var R=it;typeof R==`function`?Fe(R,A):it=A;var z=at;return typeof z==`function`?Fe(z,M):at=M,X(M,W(K,{get when(){return t()},get fallback(){return Xu()},get children(){return[W(G,{get each(){return t().widgets.above},children:e=>(()=>{var t=Zu();return X(t,e),t})()}),W(Oc,{get entries(){return t().entries},get resetKey(){return e.sessionKey},get imageScope(){return{runtimeKey:e.sessionKey}}}),W(K,{get when(){return t().uiRequests.find(e=>e.method===`ask`)},children:e=>W(Od,{get request(){return e()},onRespond:Tt,onStop:()=>void ln(),get stopping(){return s()}})}),W(G,{get each(){return t().widgets.below},children:e=>(()=>{var t=Zu();return X(t,e),t})()})]}})),I.$$click=()=>b(!y()),X(I,(()=>{var e=q(()=>!!Q());return()=>e()?`closed`:y()?`compose ▴`:`compose ▾`})()),X(F,W(K,{get when(){return y()},get children(){var e=ju();return X(e,(()=>{var e=q(()=>!!_t());return()=>e()?`agent working — open controls to stop or steer`:q(()=>An().length>0)()?`${An().length} queued message(s)`:`composer hidden for transcript reading`})()),e}}),null),X(N,W(K,{get when(){return!y()},get children(){var n=Wu();return X(n,W(K,{get when(){return gn().length>0||pn().length+mn().length>0||_t()||vt().length>0},get children(){var n=Lu();return X(n,W(K,{get when(){return gn().length>0},get children(){var e=Mu(),t=e.firstChild,n=t.firstChild.nextSibling,r=n.nextSibling.nextSibling;r.nextSibling;var i=t.nextSibling;return X(t,_n,n),X(t,()=>gn().length,r),X(i,W(G,{get each(){return gn()},children:e=>(()=>{var t=Qu(),n=t.firstChild;return X(t,(()=>{var t=q(()=>e.status===`completed`);return()=>t()?`☑`:e.status===`in_progress`?`⧖`:`☐`})(),n),X(t,()=>e.title,null),j(n=>{var r=e.status===`completed`,i=e.status===`in_progress`;return r!==n.e&&t.classList.toggle(`done`,n.e=r),i!==n.t&&t.classList.toggle(`active`,n.t=i),n},{e:void 0,t:void 0}),t})()})),j(()=>e.open=!yn()),e}}),null),X(n,W(K,{get when(){return pn().length+mn().length>0},get children(){var t=Nu(),n=t.firstChild,r=n.firstChild.nextSibling,i=r.nextSibling.nextSibling;i.nextSibling;var a=n.nextSibling;return X(n,()=>pn().length,r),X(n,()=>mn().length,i),X(a,W(G,{get each(){return hn()},children:t=>(()=>{var n=$u(),r=n.firstChild,i=r.firstChild,a=i.nextSibling,o=a.firstChild;return r.$$click=()=>e.store.navigate({screen:`subagent`,key:e.sessionKey,agentId:t.agentId}),X(i,(()=>{var e=q(()=>t.status===`running`);return()=>e()?Q()?`○`:`●`:t.status===`completed`?`✓`:`✕`})()),X(a,()=>t.agentType,o),X(a,()=>t.taskSummary,null),X(a,W(K,{get when(){return t.arbitrations?.at(-1)},children:e=>e().status===`failure`?` · arbitration failed`:` · ${e().final?.model??e().proposed.model} @ ${e().final?.thinking??e().proposed.thinking}`}),null),j(()=>je(i,t.status===`running`&&!Q()?`live`:`done`)),n})()})),j(()=>t.open=!yn()),t}}),null),X(n,W(K,{get when(){return _t()||vt().length>0},get children(){var e=Iu();return X(e,W(K,{get when(){return pt()},get children(){var e=Pu();return e.firstChild,X(e,(()=>{var e=q(()=>!!t()?.workingText);return()=>e()?` — ${t().workingText}`:``})(),null),X(e,(()=>{var e=q(()=>L()>2);return()=>e()?` (${L()}s)`:``})(),null),e}}),null),X(e,W(G,{get each(){return vt()},children:e=>(()=>{var t=ed();return t.firstChild,t.$$click=()=>dn(e.key),X(t,()=>e.key,null),t})()}),null),X(e,W(K,{get when(){return _t()},get children(){var e=Fu();return e.$$click=ln,X(e,()=>s()?`stopping…`:`■ stop`),j(()=>e.disabled=s()),e}}),null),e}}),null),n}}),null),X(n,W(K,{get when(){return!Q()},get fallback(){return td()},get children(){var n=Uu(),s=n.firstChild,c=s.nextSibling,l=c.firstChild,u=l.nextSibling,d=u.nextSibling,f=d.nextSibling,p=f.nextSibling;X(n,W(K,{get when(){return An().length>0},get children(){var e=Ru(),t=e.firstChild;return X(e,W(G,{get each(){return An()},children:e=>(()=>{var t=nd(),n=t.firstChild;return X(n,()=>e.kind),X(t,()=>e.text,null),j(()=>Y(t,`title`,e.text)),t})()}),t),t.$$click=zt,e}}),s),X(n,W(K,{get when(){return ye().length>0||_e().length>0},get children(){var e=zu();return X(e,W(G,{get each(){return ye()},children:(e,t)=>(()=>{var n=rd(),r=n.firstChild;r.firstChild;var i=r.nextSibling,a=i.nextSibling;return X(r,()=>e.fileName,null),X(i,()=>Sd(e.size)),a.$$click=()=>be(e=>e.filter((e,n)=>n!==t())),j(()=>Y(n,`title`,e.path)),n})()}),null),X(e,W(G,{get each(){return _e()},children:(e,t)=>(()=>{var n=id(),r=n.firstChild,i=r.nextSibling;return i.$$click=()=>jt(t()),j(t=>{var i=`${e.fileName} (${Sd(e.size)})`,a=e.previewUrl,o=e.fileName;return i!==t.e&&Y(n,`title`,t.e=i),a!==t.t&&Y(r,`src`,t.t=a),o!==t.a&&Y(r,`alt`,t.a=o),t},{e:void 0,t:void 0,a:void 0}),n})()}),null),e}}),s),X(n,W(K,{get when(){return Nn()},get children(){var e=Bu();return X(e,W(G,{get each(){return Mn()},children:(e,t)=>(()=>{var n=od(),r=n.firstChild;r.firstChild;var i=r.nextSibling;return n.$$click=()=>Pn(e),n.addEventListener(`mouseenter`,()=>ue(t())),X(r,()=>e.name,null),X(n,W(K,{get when(){return e.description},get children(){var t=ad();return X(t,()=>e.description),t}}),i),X(i,()=>e.source),j(e=>{var r=`command-option-${t()}`,i=U()===t(),a=U()===t();return r!==e.e&&Y(n,`id`,e.e=r),i!==e.t&&Y(n,`aria-selected`,e.t=i),a!==e.a&&n.classList.toggle(`selected`,e.a=a),e},{e:void 0,t:void 0,a:void 0}),n})()})),e}}),s),s.$$keydown=t=>{if(Nn()){if(t.key===`ArrowDown`){t.preventDefault(),ue((U()+1)%Mn().length);return}if(t.key===`ArrowUp`){t.preventDefault(),ue((U()-1+Mn().length)%Mn().length);return}if(t.key===`Tab`||t.key===`Enter`&&!t.shiftKey&&!yn()){t.preventDefault();let e=Mn()[U()];e&&t.key===`Enter`&&r()===`/${e.name}`?(le(!0),cn()):e&&Pn(e);return}if(t.key===`Escape`){t.preventDefault(),le(!0);return}}if((t.key===`ArrowUp`||t.key===`ArrowDown`)&&(r()===``||xe()!==void 0)){let n=bl(e.sessionKey);if(n.length>0){if(t.preventDefault(),t.key===`ArrowUp`){let e=xe()===void 0?n.length-1:Math.max(0,xe()-1);Se(e),i(n[e]??``)}else if(xe()!==void 0){let e=xe()+1;e>=n.length?(Se(void 0),i(``)):(Se(e),i(n[e]??``))}}return}t.key===`Enter`&&!t.shiftKey&&!yn()&&(t.preventDefault(),cn())},s.$$input=e=>{le(!1),ue(0),Se(void 0),i(e.currentTarget.value),Td(e.currentTarget)},s.addEventListener(`paste`,e=>{let t=[...e.clipboardData?.items??[]].filter(e=>e.type.startsWith(`image/`)).map(e=>e.getAsFile()).filter(e=>!!e);t.length>0&&(e.preventDefault(),Vt(t))});var m=lt;typeof m==`function`?Fe(m,s):lt=s,l.addEventListener(`change`,e=>{Wt(e.currentTarget.files??[]),e.currentTarget.value=``});var h=ut;typeof h==`function`?Fe(h,l):ut=l,u.addEventListener(`change`,e=>{Vt(e.currentTarget.files??[]),e.currentTarget.value=``});var g=dt;return typeof g==`function`?Fe(g,u):dt=u,d.$$click=()=>ut?.click(),f.$$click=()=>dt?.click(),X(c,W(K,{get when(){return pt()},get children(){var e=Vu(),t=e.firstChild,n=t.nextSibling;return t.$$click=()=>o(`steer`),n.$$click=()=>o(`follow_up`),j(e=>{var r=a()===`steer`,i=a()===`follow_up`;return r!==e.e&&t.classList.toggle(`selected`,e.e=r),i!==e.t&&n.classList.toggle(`selected`,e.t=i),e},{e:void 0,t:void 0}),e}}),p),X(c,W(K,{get when(){return t()?.suggestedCommand},get children(){var e=Hu(),n=e.firstChild.nextSibling;return e.$$click=()=>i(t().suggestedCommand),X(n,()=>t().suggestedCommand),e}}),p),p.$$click=cn,j(e=>{var t=pt()?`Message dreb — sends as steer while it works…`:`Message dreb…`,n=Nn()?`command-listbox`:void 0,r=Nn()?`command-option-${U()}`:void 0;return t!==e.e&&Y(s,`placeholder`,e.e=t),n!==e.t&&Y(s,`aria-controls`,e.t=n),r!==e.a&&Y(s,`aria-activedescendant`,e.a=r),e},{e:void 0,t:void 0,a:void 0}),j(()=>s.value=r()),n}}),null),n}}),null),X(c,W(K,{get when(){return t()?.uiRequests.find(e=>e.method!==`ask`)},keyed:!0,children:e=>W(Ed,{request:e,onRespond:Tt})}),null),X(c,W(K,{get when(){return d()},get children(){return W(Ad,{get sessionKey(){return e.sessionKey},get state(){return n()?.state},get initialFilter(){return p()},onClose:()=>{f(!1),m(``)},onSelected:t=>e.store.setRuntimeModel(e.sessionKey,t)})}}),null),X(c,W(K,{get when(){return x()},get children(){return W(st,{title:`compact context`,onDismiss:()=>S(!1),get actions(){return[(()=>{var e=Dl();return e.$$click=()=>S(!1),e})(),(()=>{var t=sd();return t.$$click=async()=>{S(!1);try{await $.compact(e.sessionKey)}catch(e){P(e instanceof Error?e.message:String(e))}},t})()]},get children(){return Gu()}})}}),null),X(c,W(K,{get when(){return T()},get children(){return W(kd,{get resources(){return de()},get error(){return pe()},onClose:()=>E(!1)})}}),null),X(c,W(K,{get when(){return Ce()},get children(){return W(st,{title:`fork from message`,onDismiss:()=>we(!1),get children(){return[W(K,{get when(){return De()},get children(){var e=$l();return X(e,De),e}}),W(K,{get when(){return Te().length>0},get fallback(){return cd()},get children(){var e=hu();return X(e,W(G,{get each(){return Te()},children:e=>(()=>{var t=vu(),n=t.firstChild,r=n.nextSibling;return t.$$click=()=>Zt(e.entryId),X(n,()=>e.entryId),X(r,()=>e.text),t})()})),e}})]}})}}),null),X(c,W(K,{get when(){return ke()},get children(){return W(Md,{get roots(){return Ae()},get leafId(){return Ne()},get loading(){return Ie()},get error(){return Re()},onClose:()=>J(!1),onNavigate:Kt})}}),null),X(c,W(K,{get when(){return Be()},get children(){return W(Nd,{get sessions(){return He()},get loading(){return We()},get error(){return Ke()},onClose:()=>Ve(!1),onResume:Jt})}}),null),X(c,W(K,{get when(){return Je()},get children(){return W(Pd,{get initialPath(){return Xe()},get error(){return Qe()},onClose:()=>Ye(!1),onImport:Yt})}}),null),X(c,W(K,{get when(){return C()},get children(){return W(Id,{get current(){return bn()??``},onClose:()=>w(!1),onRename:async t=>{try{await $.rename(e.sessionKey,t),w(!1)}catch(e){P(e instanceof Error?e.message:String(e))}}})}}),null),j(e=>{var t=!!_(),n=_()?`show session details`:`hide session details`,r=!!y(),i=Q()?`closed session transcript`:y()?`show composer and controls`:`hide composer and controls`,a=!!Q();return t!==e.e&&u.classList.toggle(`collapsed`,e.e=t),n!==e.t&&Y(k,`title`,e.t=n),r!==e.a&&N.classList.toggle(`collapsed`,e.a=r),i!==e.o&&Y(I,`title`,e.o=i),a!==e.i&&(I.disabled=e.i=a),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),c})()}function Id(e){let[t,n]=k(e.current);return W(st,{title:`rename session`,get onDismiss(){return e.onClose},get actions(){return[(()=>{var t=Dl();return Me(t,`click`,e.onClose,!0),t})(),(()=>{var n=ld();return n.$$click=()=>e.onRename(t().trim()),j(()=>n.disabled=!t().trim()),n})()]},get children(){var e=Tl(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e}})}Ae([`input`,`click`,`keydown`]);var Ld=J(`<div class=settings-error>`),Rd=J(`<p class=muted>Loading scoped models…`),zd=J(`<section class="settings-section scoped-models-editor"tabindex=-1 aria-labelledby=scoped-models-heading><h2 id=scoped-models-heading>scoped models</h2><p class="muted small">Controls model cycling for new sessions only; running sessions are never changed. Writes always update global settings, while the selected context shows effective global-plus-project settings.</p><label class=scoped-models-context><span>project context</span><select><option value>global / home`),Bd=J(`<option>`),Vd=J(`<div class=settings-warning>This project defines enabledModels in .dreb/settings.json and shadows global writes.`),Hd=J(`<div class=scoped-models-toolbar><input type=search aria-label="Search available models"placeholder="search provider, model, or name…"><button type=button class="btn btn-small">enable all`),Ud=J(`<div class=scoped-models-grid><div class=scoped-models-order><h3>cycling order</h3><p class="muted small"></p></div><div class=scoped-models-available><h3>available models`),Wd=J(`<span class="muted small">unsaved changes`),Gd=J(`<span class="muted small">✓ saved`),Kd=J(`<div class=scoped-models-actions><button type=button class="btn btn-small">reset</button><button type=button class="btn btn-primary btn-small">`),qd=J(`<div class=settings-warning>`),Jd=J(`<div class=scoped-model-order-row><span></span><div class=scoped-model-move-controls><button type=button>↑</button><button type=button>↓`),Yd=J(`<p class="muted small">No matching models.`),Xd=J(`<section class=scoped-model-provider><label class=scoped-model-provider-heading><input type=checkbox><span>`),Zd=J(`<span class=model-name>`),Qd=J(`<label class=scoped-model-choice><input type=checkbox><span class=model-id>`);function $d(e){return`${e.provider}/${e.id}`}function ef(e){let t=new Map;for(let n of e){let e=t.get(n.provider)??[];e.push(n),t.set(n.provider,e)}return[...t].map(([e,t])=>({provider:e,models:t}))}function tf(e){let[t,n]=k(``),[r,i]=k(!0),[a,o]=k([]),[s,c]=k(!1),[l,u]=k(!1),[d,f]=k(!1),[p,m]=k(),[h,g]=k([]),_,v,y,b=()=>e.cwd??``,[x,{mutate:S}]=F(b,async e=>{let t=e||void 0,[n,r]=await Promise.all([$.settings(t),$.settingsModels(t)]);return{cwd:e,settings:n,models:r.models}}),C=N(()=>{if(x.error)return;let e=x();return e?.cwd===b()?e:void 0});function w(e,t){let n=e.enabledModels===void 0;i(n),o(n?t.map($d):e.resolvedScopedModels.map(e=>`${e.provider}/${e.id}`)),c(!1),f(!1),m(void 0),g([])}let T=b();M(()=>{let e=b();e!==T&&(T=e,v=void 0,y=void 0,c(!1),f(!1),m(void 0),g([]))}),M(()=>{let e=C();!e||e.cwd===v&&e.settings===y||(v=e.cwd,y=e.settings,w(e.settings,e.models))}),M(()=>{!e.focused||!_||(_.scrollIntoView({block:`start`}),_.focus({preventScroll:!0}))});let E=N(()=>new Set(a())),D=N(()=>{let t=new Set(e.projectRoots);return e.cwd&&t.add(e.cwd),[...t].sort((e,t)=>e.localeCompare(t))}),O=N(()=>{let e=t().trim().toLowerCase();return ef((C()?.models??[]).filter(t=>!e||`${t.provider}/${t.id} ${t.name??``}`.toLowerCase().includes(e)))}),A=N(()=>{if((C()?.models.length??0)===0)return`No available models were reported for this context.`;if(!r()&&a().length===0)return`At least one model must remain enabled.`}),P=N(()=>{let e=C()?.settings;if(!e?.enabledModels)return;let t=e.resolvedScopedModels.map(e=>`${e.provider}/${e.id}`);return e.enabledModels.length===t.length&&e.enabledModels.every((e,n)=>e===t[n])&&e.scopeWarnings.length===0?void 0:`Saving an edited legacy scope replaces patterns and per-pattern thinking suffixes with exact provider/model references.`});function I(e){let t=C()?.models.map($d)??[],n=t.length>0&&t.every(t=>e.includes(t));i(n),o(n?t:e),c(!0),f(!1),m(void 0)}function L(e){let t=r()?C()?.models.map($d)??[]:a();I(t.includes(e)?t.filter(t=>t!==e):[...t,e])}function R(e){let t=(C()?.models??[]).filter(t=>t.provider===e).map($d),n=r()?C()?.models.map($d)??[]:a();I(t.every(e=>n.includes(e))?n.filter(e=>!t.includes(e)):[...n,...t.filter(e=>!n.includes(e))])}function z(e,t){if(r())return;let n=e+t;if(n<0||n>=a().length)return;let i=[...a()];[i[e],i[n]]=[i[n],i[e]],o(i),c(!0),f(!1)}function ee(){let e=C();e&&w(e.settings,e.models)}async function te(){let e=C();if(!e||!s()||A())return;u(!0),m(void 0),g([]),f(!1);let t=e.cwd||void 0;try{let n=await $.saveSettings({enabledModels:r()?null:a()},t);if(b()!==e.cwd)return;v=e.cwd,y=n,S({cwd:e.cwd,settings:n,models:e.models}),w(n,e.models),g(n.warnings??[]),f(!0)}catch(t){b()===e.cwd&&m(t instanceof Error?t.message:String(t))}finally{u(!1)}}return(()=>{var i=zd(),o=i.firstChild.nextSibling.nextSibling.firstChild.nextSibling;o.firstChild;var c=_;return typeof c==`function`?Fe(c,i):_=i,o.addEventListener(`change`,t=>e.onCwdChange(t.currentTarget.value||void 0)),X(o,W(G,{get each(){return D()},children:e=>(()=>{var t=Bd();return t.value=e,X(t,e),t})()}),null),X(i,W(K,{get when(){return x.error},get children(){var e=Ld();return X(e,(()=>{var e=q(()=>x.error instanceof Error);return()=>e()?x.error.message:String(x.error)})()),e}}),null),X(i,W(K,{get when(){return x.loading},get children(){return Rd()}}),null),X(i,W(K,{get when(){return C()},children:e=>[W(K,{get when(){return e().settings.hasProjectEnabledModelsOverride},get children(){return Vd()}}),W(K,{get when(){return P()},children:e=>(()=>{var t=qd();return X(t,e),t})()}),W(G,{get each(){return e().settings.scopeWarnings},children:e=>(()=>{var t=qd();return X(t,()=>e.message),t})()}),W(G,{get each(){return h()},children:e=>(()=>{var t=qd();return X(t,e),t})()}),W(K,{get when(){return p()},children:e=>(()=>{var t=Ld();return X(t,e),t})()}),W(K,{get when(){return A()},children:e=>(()=>{var t=Ld();return X(t,e),t})()}),(()=>{var i=Hd(),a=i.firstChild,o=a.nextSibling;return a.$$input=e=>n(e.currentTarget.value),o.$$click=()=>I(e().models.map($d)),j(()=>o.disabled=r()),j(()=>a.value=t()),i})(),(()=>{var t=Ud(),n=t.firstChild,i=n.firstChild.nextSibling,o=n.nextSibling;return o.firstChild,X(i,(()=>{var e=q(()=>!!r());return()=>e()?`All available models, in registry order (future models included).`:`${a().length} enabled model${a().length===1?``:`s`}.`})()),X(n,W(G,{get each(){return a()},children:(e,t)=>(()=>{var n=Jd(),i=n.firstChild,o=i.nextSibling.firstChild,s=o.nextSibling;return Y(i,`title`,e),X(i,e),o.$$click=()=>z(t(),-1),Y(o,`aria-label`,`Move ${e} up`),s.$$click=()=>z(t(),1),Y(s,`aria-label`,`Move ${e} down`),j(e=>{var n=r()||t()===0,i=r()||t()===a().length-1;return n!==e.e&&(o.disabled=e.e=n),i!==e.t&&(s.disabled=e.t=i),e},{e:void 0,t:void 0}),n})()}),null),X(o,W(K,{get when(){return O().length>0},get fallback(){return Yd()},get children(){return W(G,{get each(){return O()},children:t=>(()=>{var n=Xd(),r=n.firstChild.firstChild,i=r.nextSibling;return r.addEventListener(`change`,()=>R(t.provider)),X(i,()=>t.provider),X(n,W(G,{get each(){return t.models},children:e=>{let t=$d(e);return(()=>{var n=Qd(),r=n.firstChild,i=r.nextSibling;return Y(n,`title`,t),r.addEventListener(`change`,()=>L(t)),X(i,()=>e.id),X(n,W(K,{get when(){return e.name},get children(){var t=Zd();return X(t,()=>e.name),t}}),null),j(()=>r.checked=E().has(t)),n})()}}),null),j(()=>r.checked=e().models.filter(e=>e.provider===t.provider).every(e=>E().has($d(e)))),n})()})}}),null),t})(),(()=>{var e=Kd(),t=e.firstChild,n=t.nextSibling;return t.$$click=ee,n.$$click=()=>void te(),X(n,()=>l()?`saving…`:`save`),X(e,W(K,{get when(){return s()},get children(){return Wd()}}),null),X(e,W(K,{get when(){return d()},get children(){return Gd()}}),null),j(e=>{var r=!s()||l(),i=!s()||l()||!!A();return r!==e.e&&(t.disabled=e.e=r),i!==e.t&&(n.disabled=e.t=i),e},{e:void 0,t:void 0}),e})()]}),null),j(()=>o.value=e.cwd??``),i})()}Ae([`input`,`click`]);var nf=[{id:`default`,label:`entropist.ca`},{id:`dim`,label:`Dim`},{id:`solarized`,label:`Solarized`},{id:`gruvbox`,label:`Gruvbox`},{id:`qud`,label:`Caves of Qud`},{id:`vangogh`,label:`Van Gogh`},{id:`okabe`,label:`Colorblind-safe (Okabe-Ito)`},{id:`tol`,label:`Colorblind-safe (Paul Tol)`}],rf=nf.map(e=>e.id),af=[`system`,`light`,`dark`],of=`dreb.dashboard.theme`,sf=`dreb.dashboard.colorMode`,cf=`default`,lf=`system`;function uf(e){return typeof e==`string`&&rf.includes(e)}function df(e){return typeof e==`string`&&af.includes(e)}function ff(){if(typeof window>`u`)return cf;try{let e=window.localStorage.getItem(of);return uf(e)?e:cf}catch{return cf}}function pf(){if(typeof window>`u`)return lf;try{let e=window.localStorage.getItem(sf);return df(e)?e:lf}catch{return lf}}function mf(e,t,n){if(!(typeof window>`u`))try{t===n?window.localStorage.removeItem(e):window.localStorage.setItem(e,t)}catch{}}var[hf,gf]=k(ff()),[_f,vf]=k(pf()),yf=hf,bf=_f;function xf(e){let t=e.defaultView??(typeof window<`u`?window:void 0);return!t||typeof t.getComputedStyle!=`function`?``:t.getComputedStyle(e.documentElement).getPropertyValue(`--bg`).trim()}function Sf(e){try{let t=e??(typeof document<`u`?document:void 0);if(!t)return;let n=t.documentElement;if(!n)return;let r=hf(),i=_f();if(r===cf?n.removeAttribute(`data-theme`):n.setAttribute(`data-theme`,r),i===lf?n.removeAttribute(`data-color-mode`):n.setAttribute(`data-color-mode`,i),!(r!==cf||i!==lf))n.style.removeProperty(`color-scheme`);else{let e=i===`light`?`light`:i===`dark`?`dark`:`light dark`;n.style.setProperty(`color-scheme`,e)}}catch{}}function Cf(e){try{let t=e??(typeof document<`u`?document:void 0);if(!t)return;let n=xf(t);if(!n)return;let r=t.querySelector(`meta[name="theme-color"]:not([media])`);if(!r){r=t.createElement(`meta`),r.setAttribute(`name`,`theme-color`);let e=t.head??t.getElementsByTagName(`head`)[0];e&&e.insertBefore(r,e.firstChild)}r.setAttribute(`content`,n)}catch{}}function wf(e){let t=uf(e)?e:cf;gf(t),mf(of,t,cf),Sf(),Cf()}function Tf(e){let t=df(e)?e:lf;vf(t),mf(sf,t,lf),Sf(),Cf()}var Ef=null,Df=!1;function Of(){_f()===lf&&Cf()}function kf(e){e.key!==null&&e.key!==`dreb.dashboard.theme`&&e.key!==`dreb.dashboard.colorMode`||Af()}function Af(){gf(ff()),vf(pf()),Sf(),Cf()}function jf(){if(!(typeof window>`u`)){try{typeof window.matchMedia==`function`&&(Ef=window.matchMedia(`(prefers-color-scheme: dark)`),typeof Ef.addEventListener==`function`?Ef.addEventListener(`change`,Of):typeof Ef.addListener==`function`&&Ef.addListener(Of))}catch{}try{window.addEventListener(`storage`,kf)}catch{}}}function Mf(){Af(),!Df&&(Df=!0,jf())}var Nf=J(`<div class=appearance-controls><div class=setting-row><span class=setting-label><span class=name>color mode</span><span class=hint>this browser only — “system” follows your OS light/dark preference</span></span><span class=setting-control><select id=pref-color-mode></select></span></div><div class=theme-gallery>`),Pf=J(`<option>`),Ff=J(`<button type=button class=theme-card><div class=theme-card-preview><div class=theme-card-swatch><span class=theme-card-name></span><span class=theme-card-muted>The quick brown fox.</span></div><div class=theme-card-chips></div><pre class=theme-card-code><code class=hljs><span class=hljs-keyword>const</span> <span class=hljs-variable>count</span><span class=hljs-operator> = </span><span class=hljs-number>42</span><span class=hljs-punctuation>;</span>
78
78
  <span class=hljs-comment>// preview</span>
79
- <span class=hljs-function>render</span><span class=hljs-punctuation>(</span><span class=hljs-string>"ok"</span><span class=hljs-punctuation>)</span><span class=hljs-punctuation>;</span></code></pre></div><span class=theme-card-footer><span class=theme-card-title></span><span class=theme-card-state>`),Pf=[`running`,`attention`,`idle`,`error`];function Ff(){let e=()=>{let e=vf();return e===`system`?void 0:e};return(()=>{var t=jf(),n=t.firstChild,r=n.firstChild.nextSibling.firstChild,i=n.nextSibling;return r.addEventListener(`change`,e=>Cf(e.currentTarget.value)),X(r,W(G,{each:nf,children:e=>(()=>{var t=Mf();return t.value=e,X(t,e),t})()})),X(i,W(G,{each:ef,children:t=>{let n=()=>_f()===t.id;return(()=>{var r=Nf(),i=r.firstChild,a=i.firstChild,o=a.firstChild,s=a.nextSibling,c=i.nextSibling.firstChild,l=c.nextSibling;return r.$$click=()=>Sf(t.id),X(o,()=>t.label),X(s,W(G,{each:Pf,children:e=>W(rt,{status:e,label:``})})),X(c,()=>t.label),X(l,()=>n()?`✓ active`:`select`),j(i=>{var a=!!n(),o=t.id,s=t.id,c=e(),l=n(),u=n()?`true`:void 0,d=`use the ${t.label} theme`;return a!==i.e&&r.classList.toggle(`active`,i.e=a),o!==i.t&&Y(r,`data-theme-card`,i.t=o),s!==i.a&&Y(r,`data-theme`,i.a=s),c!==i.o&&Y(r,`data-color-mode`,i.o=c),l!==i.i&&Y(r,`aria-pressed`,i.i=l),u!==i.n&&Y(r,`aria-current`,i.n=u),d!==i.s&&Y(r,`title`,i.s=d),i},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),r})()}})),j(()=>r.value=vf()),t})()}Ae([`click`]);var If=J(`<select><option value=on>on</option><option value=off>off`),Lf=J(`<div class=field style=margin-bottom:8px><input type=text placeholder="search models…">`),Rf=J(`<div class=model-list style=max-height:320px>`),zf=J(`<p class="muted small">No matching models.`),Bf=J(`<section class=model-provider-group><div class=model-provider-heading>`),Vf=J(`<span class=model-name>`),Hf=J(`<span class=model-reasoning>think`),Uf=J(`<button type=button class=model-row><span class=model-current></span><span class=model-id></span><span class=model-provider-badge>`),Wf=J(`<div class=settings-error>`),Gf=J(`<div class=settings-warning>`),Kf=J(`<p class="muted small"style=margin-bottom:16px>✓ saved`),qf=J(`<div class=settings-success>new pairing lifetime saved`),Jf=J(`<div class=setting-row><span class=setting-label><span class=name>pairing code</span><span class=hint>new devices enter this in the pairing screen; it rotates every 30s</span></span><span class=setting-control><code style=font-size:var(--fs-h2);letter-spacing:0.08em>`),Yf=J(`<p class="muted small"style=padding-top:8px>No remote devices paired. Launch with <code>--remote --allow &lt;identity&gt;</code> to enable Tailscale access.`),Xf=J(`<p>This exits the dashboard server process and terminates <strong>all running sessions</strong>.`),Zf=J(`<div class=screen-fill><main class="container settings-wrap"><h1>settings</h1><p class=settings-intro>Ordinary defaults apply only to new sessions. Dispatch Arbiter changes apply to subsequent child spawns. Context trust changes apply to subsequent lazy loads in live sessions; already injected content cannot be retracted. Writes go to the global settings file on the host.</p><section class=settings-section><h2>dashboard</h2><div class=appearance-block><div class="setting-row appearance-heading-row"><span class=setting-label><span class=name>appearance</span><span class=hint>this browser only — theme and light/dark mode are stored in localStorage and are independent of the TUI theme. Okabe-Ito and Paul Tol are colorblind-safe palettes.</span></span></div></div><div class=setting-row><label class=setting-label for=pref-image-display-mode><span class=name>tool-result images</span><span class=hint>this browser only — placeholders make no automatic request, previews are bounded to 1024 px and 256 KiB, and originals automatically transfer full files. Choosing originals is the informed network-data opt-in.</span></label><span class=setting-control><select id=pref-image-display-mode><option value=placeholders>placeholders</option><option value=previews>bounded previews</option><option value=originals>automatic originals</option></select></span></div><div class=setting-row><span class=setting-label><span class=name>always expand thinking</span><span class=hint>this browser only — stored in localStorage, not the host settings file</span></span><span class=setting-control><label class=checkbox-control><input id=pref-expand-thinking type=checkbox><span>open by default</span></label></span></div><div class=setting-row><span class=setting-label><span class=name>auto-expand tool cards</span><span class=hint>this browser only — stored in localStorage, not the host settings file</span></span><span class=setting-control style=display:grid;gap:6px></span></div><div class=setting-row><span class=setting-label><span class=name>needs-attention notifications</span><span class=hint></span></span><span class=setting-control><label class=checkbox-control><input id=pref-notifications type=checkbox><span></span></label></span></div><div class=setting-row><span class=setting-label><span class=name>restart dashboard service</span><span class=hint></span></span><span class=setting-control><button type=button class="btn btn-small btn-danger"></button></span></div></section><section class=settings-section><h2>devices</h2><div class=device-row><span>this machine <span class=this-device></span></span><span class=meta>local · always allowed</span></div><div class=setting-row><label class=setting-label for=pairing-ttl-days><span class=name>new pairing lifetime</span><span class=hint>applies only to devices paired after saving; existing expiry dates do not change</span></label><span class=setting-control><input id=pairing-ttl-days type=number min=1 max=3650 step=1><span>days</span><button type=button class="btn btn-small"></button></span></div></section><footer>dreb<!> · dashboard`),Qf=J(`<div>`),$f=J(`<p class=muted>`),ep=J(`<section class=settings-section><h2>model</h2><div class=setting-row><span class=setting-label><span class=name>default model</span><span class=hint>used by new sessions; validated against configured providers</span></span><span class=setting-control><button type=button class="btn btn-small model-picker-button"></button></span></div><div class=setting-row><span class=setting-label><span class=name>default thinking level</span><span class=hint></span></span><span class=setting-control><select></select></span></div><div class=setting-row><span class=setting-label><span class=name>transport</span><span class=hint>preferred model transport for new sessions</span></span><span class=setting-control><select>`),tp=J(`<section class="settings-section dispatch-arbiter-settings"><h2>dispatch arbiter</h2><p class="muted small"style=margin-bottom:8px>Global-only, fully headless pre-spawn routing. Project settings cannot change it. When enabled, invalid model, scope, guide, inference, or output prevents the affected child from spawning.</p><div class=setting-row><span class=setting-label><span class=name>enabled</span><span class=hint>disabled by default; fail closed when enabled</span></span><span class=setting-control></span></div><div class=setting-row><span class=setting-label><span class=name>arbiter model</span><span class=hint>exact authenticated provider/model; no fallback</span></span><span class=setting-control><button type=button class="btn btn-small model-picker-button"></button></span></div><div class=setting-row><span class=setting-label><span class=name>arbiter thinking</span><span class=hint>validated against the selected arbiter model</span></span><span class=setting-control><select></select></span></div><div class=setting-row><label class=setting-label for=dispatch-arbiter-guide-path><span class=name>routing guide path</span><span class=hint>blank uses ~/.dreb/agent/model-routing-guide.md</span></label><span class=setting-control><input id=dispatch-arbiter-guide-path type=text placeholder=~/.dreb/agent/model-routing-guide.md></span></div><div data-testid=dispatch-arbiter-readiness><strong>status:</strong> `),np=J(`<div class="setting-row agent-context-row"><span class=setting-label><span class=name>agent definition context</span><span class=hint>choose a project to include its .dreb/agents definitions</span></span><span class=setting-control><select><option value>global/home only`),rp=J(`<section class=settings-section><h2>agent models</h2><p class="muted small"style=margin-bottom:8px>Per-agent fallback lists. First available model wins; empty lists revert to the default model. Agent definitions are loaded from an explicit project context so project-local agents do not depend on which runtime opened first.`),ip=J(`<section class=settings-section><h2>images</h2><div class=setting-row><span class=setting-label><span class=name>auto-resize images</span><span class=hint>resize image inputs before sending them to providers</span></span><span class=setting-control></span></div><div class=setting-row><span class=setting-label><span class=name>block images</span><span class=hint>prevent image inputs from being sent to providers</span></span><span class=setting-control>`),ap=J(`<section class=settings-section><h2>queueing</h2><div class=setting-row><span class=setting-label><span class=name>steering delivery</span><span class=hint>deliver queued steers all at once, or one per turn</span></span><span class=setting-control><select></select></span></div><div class=setting-row><span class=setting-label><span class=name>follow-up delivery</span><span class=hint>deliver queued follow-ups all at once, or one per turn</span></span><span class=setting-control><select>`),op=J(`<section class=settings-section><h2>behavior</h2><div class=setting-row><span class=setting-label><span class=name>skill slash commands</span><span class=hint>register skills as slash commands in new sessions</span></span><span class=setting-control></span></div><div class=setting-row><label class=setting-label for=max-concurrent-subagents><span class=name>max concurrent subagents</span><span class=hint>new parent sessions only; 0 removes the subagent tool (default 4)</span></label><span class=setting-control><input id=max-concurrent-subagents type=number min=0 step=1></span></div><div class=context-trust-subsection><h3>trusted context folders</h3><p class="muted small">Specific global roots that may lazy-load nested AGENTS.md/CLAUDE.md and all descendants.</p><div class="settings-warning context-trust-global-warning"><strong>Global-only policy.</strong> Project <code>.dreb/settings.json</code> cannot enable, disable, or extend nested-context trust. Only these global settings and the Files view can; a cloned repository cannot grant itself trust.</div><form class=trusted-context-folder-add><label for=trusted-context-folder-path>add folder by path</label><input id=trusted-context-folder-path type=text placeholder=/path/to/project><button type=submit class="btn btn-small"></button></form></div><div class=setting-row><span class=setting-label><span class=name>global expert nested-context trust</span><span class=hint>allow nested AGENTS.md/CLAUDE.md from any resolvable directory</span></span><span class=setting-control></span></div><div class="settings-warning context-expert-warning"><strong>Expert global override.</strong> Project <code>.dreb/settings.json</code> cannot enable, disable, or extend nested-context trust; a cloned repository cannot grant itself trust. When ON, nested instructions from any resolvable directory may load, including untrusted prompt-injection content. Leave this OFF and use trusted folders for projects you control.</div><div class=setting-row><span class=setting-label><span class=name>hide thinking blocks</span><span class=hint>hide raw thinking blocks in rendered transcripts</span></span><span class=setting-control>`),sp=J(`<section class=settings-section><h2>reliability</h2><div class=setting-row><span class=setting-label><span class=name>auto-compaction</span><span class=hint>summarize old context when the window fills</span></span><span class=setting-control></span></div><div class=setting-row><span class=setting-label><span class=name>auto-retry</span><span class=hint>retry transient stream errors (rate limits, 5xx)</span></span><span class=setting-control>`),cp=J(`<p class="muted small settings-footnote">TUI-only settings (cursor, editor) are managed in the terminal /settings menu. The dashboard appearance (theme + light/dark mode) is set here, per-browser, and is independent of the TUI theme.`),lp=J(`<option>`),up=J(`<p class="muted small">No agent definitions found.`),dp=J(`<div class=agent-model-editor><button type=button class="btn btn-small">add model…`),fp=J(`<div class=agent-model-row><div class=agent-model-summary><span class=agent-model-name></span><span class=agent-model-description></span></div><div class=agent-model-fallbacks></div><button type=button class="btn btn-small agent-model-edit">`),pp=J(`<span class="muted small">default`),mp=J(`<span class=agent-model-chip>. `),hp=J(`<p class="muted small">Using the default model.`),gp=J(`<div class=agent-model-entry><span></span><div class=agent-model-entry-actions><button type=button class="btn btn-small">↑</button><button type=button class="btn btn-small">↓</button><button type=button class="btn btn-small">×`),_p=J(`<p class="muted small trusted-context-empty">No trusted folders. Use the Files view to trust a project folder and its descendants.`),vp=J(`<div class=trusted-context-folder-row><code></code><span class=meta>and all descendants</span><button type=button class="btn btn-small btn-danger">`),yp=J(`<label class=checkbox-control><input type=checkbox><span>`),bp=J(`<div class=device-row><span></span><span class=meta> · paired <!> · expires </span><span class=actions><button type=button class="btn btn-small btn-danger">unpair`),xp=J(`<button type=button class="btn btn-small">cancel`),Sp=J(`<button type=button class="btn btn-small btn-danger">restart`),Cp=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],wp=[`all`,`one-at-a-time`],Tp=[`sse`,`websocket`,`auto`];function Ep(e){return`${e.provider}/${e.id}`}function Dp(e){let t=Ep(e);return e.name?`${t} — ${e.name}`:t}function Op(e){return e.defaultProvider&&e.defaultModel?`${e.defaultProvider}/${e.defaultModel}`:`choose model…`}function kp(e,t){return`${e.provider}/${e.id} ${e.name??``}`.toLowerCase().includes(t)}function Ap(){if(typeof Notification>`u`){if(window.isSecureContext===!1)return`insecure`;let e=/iPad|iPhone|iPod/.test(navigator.userAgent),t=navigator.standalone===!0||window.matchMedia?.(`(display-mode: standalone)`)?.matches===!0;return e&&!t?`ios-install`:`unsupported`}return Notification.permission}function jp(e){let t=new Map;for(let n of e){let e=t.get(n.provider)??[];e.push(n),t.set(n.provider,e)}return[...t.entries()].map(([e,t])=>({provider:e,models:t}))}function Mp(e,t,n){let r=t+n;if(r<0||r>=e.length)return e;let i=[...e];return[i[t],i[r]]=[i[r],i[t]],i}function Np(e){return(()=>{var t=If();return t.addEventListener(`change`,t=>{e.onChange(t.currentTarget.value===`on`)===!1&&(t.currentTarget.value=e.value?`on`:`off`)}),j(()=>t.value=e.value?`on`:`off`),t})()}function Pp(e){let[t,n]=k(``),r=()=>new Set(e.selected??[]),i=N(()=>{let n=t().toLowerCase();return jp(e.models.filter(e=>!n||kp(e,n)).slice(0,100))}),a=e=>r().has(Ep(e));return W(st,{get title(){return e.title},get onDismiss(){return e.onClose},class:`model-picker-modal`,get children(){return[(()=>{var e=Lf(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e})(),(()=>{var t=Rf();return X(t,W(K,{get when(){return i().length>0},get fallback(){return zf()},get children(){return W(G,{get each(){return i()},children:t=>(()=>{var n=Bf(),r=n.firstChild;return X(r,()=>t.provider),X(n,W(G,{get each(){return t.models},children:t=>(()=>{var n=Uf(),r=n.firstChild,i=r.nextSibling,o=i.nextSibling;return n.$$click=()=>e.onPick(t),X(r,()=>a(t)?`✓`:``),X(i,()=>t.id),X(n,W(K,{get when(){return t.name},get children(){var e=Vf();return X(e,()=>t.name),e}}),o),X(o,()=>t.provider),X(n,W(K,{get when(){return t.reasoning},get children(){return Hf()}}),null),j(e=>{var r=!!a(t),i=Dp(t);return r!==e.e&&n.classList.toggle(`current`,e.e=r),i!==e.t&&Y(n,`title`,e.t=i),e},{e:void 0,t:void 0}),n})()}),null),n})()})}})),t})()]}})}function Fp(e){let[t,n]=k(),[r,i]=k([]),[a,o]=k(!1),[s,c]=k(),[l,u]=k(),[d,f]=k(),[p,m]=k(e.target===`scoped-models`?e.routeScopedModelsCwd:void 0);M(()=>{m(e.target===`scoped-models`?e.routeScopedModelsCwd:void 0)});let[h,g]=k(``),[_,v]=k(!1),[y,b]=k(Ap()),[x,{mutate:S,refetch:C}]=F(async()=>{n(void 0);try{return await $.settings()}catch(e){n(e instanceof Error?e.message:String(e));return}}),[w]=F(x,async()=>{try{let{models:e}=await $.settingsModels();return e}catch(e){return n(e instanceof Error?e.message:String(e)),[]}}),T=N(()=>{let t=new Set;for(let n of e.store.fleet().runtimes)t.add(n.cwd);for(let n of e.store.fleet().diskSessions)t.add(n.cwd);return[...t].sort((e,t)=>e.localeCompare(t))}),[E]=F(()=>({settings:x(),cwd:d()}),async({cwd:e})=>{if(!x())return[];try{let{agentTypes:t}=await $.agentTypes(e);return t}catch(e){return n(e instanceof Error?e.message:String(e)),[]}}),[D,{refetch:O}]=F(async()=>{let{devices:e}=await $.devices();return e}),[A,P]=k(),[I,L]=k(!1),[ee,te]=k(!1),[ne,re]=k(``),[ie,{mutate:ae}]=F(async()=>{try{return await $.pairingSettings()}catch(e){P(e instanceof Error?e.message:String(e));return}});M(()=>{let e=ie();e&&re(String(e.pairingTtlDays))});async function B(){P(void 0),L(!1);let e=Number(ne());if(!Number.isSafeInteger(e)||e<1||e>3650){P(`pairing lifetime must be a whole number from 1 through 3650 days`);return}te(!0);try{let t=await $.savePairingSettings(e);ae(t),L(!0)}catch(e){P(e instanceof Error?e.message:String(e))}finally{te(!1)}}let[oe,V]=k(),se;function H(){se&&clearTimeout(se),se=void 0}function ce(e){H();let t=Math.max(250,e??3e4)+100;se=setTimeout(()=>void le(),t)}async function le(){try{let e=await $.pairingCode();if(!e.enabled||!e.code){V(void 0),H();return}V(e),ce(e.expiresInMs)}catch(e){console.warn(`pairing code unavailable`,e),V(void 0),H()}}let[U]=F(async()=>{try{let{version:e}=await $.version();return e}catch{return}}),[ue]=F(async()=>{try{return await $.serverInfo()}catch{return}}),[de,fe]=k(!1),[pe,me]=k(!1),[he,ge]=k();async function _e(){ge(void 0),me(!0);try{await $.restartServer()}catch(e){ge(e instanceof Error?e.message:String(e)),me(!1)}}async function ve(e){n(void 0),i([]),o(!1);try{let t=await $.saveSettings(e);S(t),i(t.warnings??[]),o(!0),setTimeout(()=>o(!1),2e3)}catch(e){n(e instanceof Error?e.message:String(e)),await C()}}let ye=Promise.resolve(),be;function xe(){return be??x()?.subagentArbiter??{}}function Se(e){let t={...xe(),...e};be=t;let r=x();r&&S({...r,subagentArbiter:t}),ye=ye.then(async()=>{n(void 0),i([]),o(!1);try{let e=await $.saveSettings({subagentArbiter:t});i(e.warnings??[]),o(!0),setTimeout(()=>o(!1),2e3),be===t?(be=e.subagentArbiter??void 0,S(e)):S({...e,subagentArbiter:be})}catch(e){let r=e instanceof Error?e.message:String(e),i=await C();n(r),be===t?be=i?.subagentArbiter??void 0:i&&S({...i,subagentArbiter:be})}})}async function Ce(e,t){await ve({agentModels:{[e]:t}})}async function we(e){n(void 0),v(!0);try{let t=await $.trustContextFolder(e);S(t.settings),g(``)}catch(e){n(e instanceof Error?e.message:String(e))}finally{v(!1)}}async function Te(e){n(void 0),v(!0);try{let t=await $.removeTrustedContextFolder(e);S(t.settings)}catch(e){n(e instanceof Error?e.message:String(e))}finally{v(!1)}}function Ee(e){return x()?.agentModels?.[e]??[]}function De(e){let t=e.subagentArbiter;return t?.enabled===!0?typeof t.model!=`string`||!t.model.trim()?{ready:!1,message:`not ready — choose an arbiter model`}:t.thinking!==void 0&&!Cp.some(e=>e===t.thinking)?{ready:!1,message:`not ready — arbiter thinking setting is invalid`}:t.guidePath!==void 0&&typeof t.guidePath!=`string`?{ready:!1,message:`not ready — routing guide path is invalid`}:t.guidePath?.trim()?{ready:!0,message:`enabled — live scope and guide are validated before every child spawn`}:{ready:!0,message:`enabled — using ~/.dreb/agent/model-routing-guide.md; live scope/guide checked at dispatch`}:{ready:!1,message:`disabled`}}async function Oe(){typeof Notification>`u`||b(await Notification.requestPermission())}R(()=>void le()),z(H);let ke=()=>e.store.auth();return(()=>{var i=Zf(),o=i.firstChild,v=o.firstChild.nextSibling.nextSibling,b=v.firstChild.nextSibling;b.firstChild;var S=b.nextSibling,C=S.firstChild.nextSibling.firstChild,k=S.nextSibling,M=k.firstChild.nextSibling.firstChild.firstChild,N=k.nextSibling,P=N.firstChild.nextSibling,F=N.nextSibling,R=F.firstChild,z=R.firstChild.nextSibling,te=R.nextSibling.firstChild.firstChild,ae=te.nextSibling,V=F.nextSibling.firstChild,se=V.firstChild.nextSibling,H=V.nextSibling.firstChild,ce=v.nextSibling,le=ce.firstChild.nextSibling,me=le.firstChild.firstChild.nextSibling,ge=le.nextSibling.firstChild.nextSibling.firstChild,ye=ge.nextSibling.nextSibling,be=ce.nextSibling,J=be.firstChild.nextSibling;return J.nextSibling,X(i,W(at,{get store(){return e.store},active:`settings`}),o),X(o,W(K,{get when(){return t()},get children(){var e=Wf();return X(e,t),e}}),v),X(o,W(K,{get when(){return r().length>0},get children(){var e=Gf();return X(e,W(G,{get each(){return r()},children:e=>(()=>{var t=Qf();return X(t,e),t})()})),e}}),v),X(o,W(K,{get when(){return a()},get children(){return Kf()}}),v),X(o,W(K,{get when(){return x()},get fallback(){return(()=>{var e=$f();return X(e,()=>t()?`Settings could not be loaded — see the error above.`:`Loading settings…`),e})()},children:t=>[(()=>{var e=ep(),n=e.firstChild.nextSibling,r=n.firstChild.nextSibling.firstChild,i=n.nextSibling,a=i.firstChild,o=a.firstChild.nextSibling,s=a.nextSibling.firstChild,l=i.nextSibling.firstChild.nextSibling.firstChild;return r.$$click=()=>c({kind:`default`}),X(r,()=>Op(t())),X(o,()=>Cp.join(` · `)),s.addEventListener(`change`,e=>ve({defaultThinkingLevel:e.currentTarget.value})),X(s,W(G,{each:Cp,children:e=>(()=>{var t=lp();return t.value=e,X(t,e),t})()})),l.addEventListener(`change`,e=>ve({transport:e.currentTarget.value})),X(l,W(G,{get each(){return[...Tp]},children:e=>(()=>{var t=lp();return t.value=e,X(t,e),t})()})),j(()=>s.value=t().defaultThinkingLevel??`off`),j(()=>l.value=t().transport??`sse`),e})(),W($d,{get cwd(){return p()},get projectRoots(){return T()},get focused(){return e.target===`scoped-models`},onCwdChange:t=>{m(t),e.store.navigate({screen:`settings`,target:`scoped-models`,...t?{cwd:t}:{}})}}),(()=>{var e=tp(),r=e.firstChild.nextSibling.nextSibling,i=r.firstChild.nextSibling,a=r.nextSibling,o=a.firstChild.nextSibling.firstChild,s=a.nextSibling,l=s.firstChild.nextSibling.firstChild,u=s.nextSibling,d=u.firstChild.nextSibling.firstChild,f=u.nextSibling;return f.firstChild.nextSibling,X(i,W(Np,{get value(){return t().subagentArbiter?.enabled===!0},onChange:e=>{let t=xe();return e&&(typeof t.model!=`string`||!t.model.trim())?(n(`Choose an exact Dispatch Arbiter model before enabling it.`),c({kind:`arbiter`}),!1):(Se({enabled:e}),!0)}})),o.$$click=()=>c({kind:`arbiter`}),X(o,(()=>{var e=q(()=>typeof t().subagentArbiter?.model==`string`);return()=>e()?t().subagentArbiter?.model:`choose model…`})()),l.addEventListener(`change`,e=>Se({thinking:e.currentTarget.value})),X(l,W(G,{each:Cp,children:e=>(()=>{var t=lp();return t.value=e,X(t,e),t})()})),d.addEventListener(`change`,e=>{Se({guidePath:e.currentTarget.value.trim()||void 0})}),X(f,()=>De(t()).message,null),j(()=>je(f,De(t()).ready?`settings-warning`:`muted small`)),j(()=>l.value=typeof t().subagentArbiter?.thinking==`string`&&Cp.some(e=>e===t().subagentArbiter?.thinking)?t().subagentArbiter?.thinking:`off`),j(()=>d.value=typeof t().subagentArbiter?.guidePath==`string`?t().subagentArbiter?.guidePath:``),e})(),(()=>{var e=rp();return e.firstChild.nextSibling,X(e,W(K,{get when(){return T().length>0},get children(){var e=np(),t=e.firstChild.nextSibling.firstChild;return t.firstChild,t.addEventListener(`change`,e=>f(e.currentTarget.value||void 0)),X(t,W(G,{get each(){return T()},children:e=>(()=>{var t=lp();return t.value=e,X(t,e),t})()}),null),j(()=>Y(t,`title`,d()??`global/home only`)),j(()=>t.value=d()??``),e}}),null),X(e,W(K,{get when(){return(E()??[]).length>0},get fallback(){return up()},get children(){return W(G,{get each(){return E()??[]},children:e=>{let n=()=>t().agentModels?.[e.name]??[];return(()=>{var t=fp(),r=t.firstChild,i=r.firstChild,a=i.nextSibling,o=r.nextSibling,s=o.nextSibling;return X(i,()=>e.name),X(a,()=>e.description),X(o,W(K,{get when(){return n().length>0},get fallback(){return pp()},get children(){return W(G,{get each(){return n()},children:(e,t)=>(()=>{var n=mp(),r=n.firstChild;return X(n,()=>t()+1,r),X(n,e,null),n})()})}})),s.$$click=()=>u(l()===e.name?void 0:e.name),X(s,()=>l()===e.name?`done`:`edit`),X(t,W(K,{get when(){return l()===e.name},get children(){var t=dp(),r=t.firstChild;return X(t,W(K,{get when(){return n().length>0},get fallback(){return hp()},get children(){return W(G,{get each(){return n()},children:(t,r)=>(()=>{var i=gp(),a=i.firstChild,o=a.nextSibling.firstChild,s=o.nextSibling,c=s.nextSibling;return X(a,t),o.$$click=()=>void Ce(e.name,Mp(n(),r(),-1)),s.$$click=()=>void Ce(e.name,Mp(n(),r(),1)),c.$$click=()=>void Ce(e.name,n().filter((e,t)=>t!==r())),j(e=>{var t=r()===0,i=r()===n().length-1;return t!==e.e&&(o.disabled=e.e=t),i!==e.t&&(s.disabled=e.t=i),e},{e:void 0,t:void 0}),i})()})}}),r),r.$$click=()=>c({kind:`agent`,agentName:e.name}),t}}),null),t})()}})}}),null),e})(),(()=>{var e=ip(),n=e.firstChild.nextSibling,r=n.firstChild.nextSibling,i=n.nextSibling.firstChild.nextSibling;return X(r,W(Np,{get value(){return t().imageAutoResize!==!1},onChange:e=>ve({imageAutoResize:e})})),X(i,W(Np,{get value(){return t().blockImages===!0},onChange:e=>ve({blockImages:e})})),e})(),(()=>{var e=ap(),n=e.firstChild.nextSibling,r=n.firstChild.nextSibling.firstChild,i=n.nextSibling.firstChild.nextSibling.firstChild;return r.addEventListener(`change`,e=>ve({steeringMode:e.currentTarget.value})),X(r,W(G,{get each(){return[...wp]},children:e=>(()=>{var t=lp();return t.value=e,X(t,e),t})()})),i.addEventListener(`change`,e=>ve({followUpMode:e.currentTarget.value})),X(i,W(G,{get each(){return[...wp]},children:e=>(()=>{var t=lp();return t.value=e,X(t,e),t})()})),j(()=>r.value=t().steeringMode??`all`),j(()=>i.value=t().followUpMode??`all`),e})(),(()=>{var e=op(),r=e.firstChild.nextSibling,i=r.firstChild.nextSibling,a=r.nextSibling,o=a.firstChild.nextSibling.firstChild,s=a.nextSibling,c=s.firstChild.nextSibling.nextSibling.nextSibling,l=c.firstChild.nextSibling,u=l.nextSibling,d=s.nextSibling,f=d.firstChild.nextSibling,p=d.nextSibling.nextSibling.firstChild.nextSibling;return X(i,W(Np,{get value(){return t().enableSkillCommands!==!1},onChange:e=>ve({enableSkillCommands:e})})),o.addEventListener(`change`,e=>{let r=e.currentTarget.value.trim(),i=r.length>0?Number(r):NaN;if(!Number.isSafeInteger(i)||i<0){n(`Max concurrent subagents must be a non-negative whole number`),e.currentTarget.value=String(t().maxConcurrentSubagents??4);return}ve({maxConcurrentSubagents:i})}),X(s,W(K,{get when(){return(t().trustedContextFolders??[]).length>0},get fallback(){return _p()},get children(){return W(G,{get each(){return t().trustedContextFolders??[]},children:e=>(()=>{var t=vp(),n=t.firstChild,r=n.nextSibling.nextSibling;return X(n,e),r.$$click=()=>void Te(e),X(r,()=>_()?`revoking…`:`revoke trust`),j(()=>r.disabled=_()),t})()})}}),c),c.addEventListener(`submit`,e=>{e.preventDefault();let t=h().trim();t&&we(t)}),l.$$input=e=>g(e.currentTarget.value),X(u,()=>_()?`trusting…`:`trust folder`),X(f,W(Np,{get value(){return t().autoLoadNestedContext===!0},onChange:e=>ve({autoLoadNestedContext:e})})),X(p,W(Np,{get value(){return t().hideThinkingBlock===!0},onChange:e=>ve({hideThinkingBlock:e})})),j(()=>u.disabled=_()||!h().trim()),j(()=>o.value=t().maxConcurrentSubagents??4),j(()=>l.value=h()),e})(),(()=>{var e=sp(),n=e.firstChild.nextSibling,r=n.firstChild.nextSibling,i=n.nextSibling.firstChild.nextSibling;return X(r,W(Np,{get value(){return t().compactionEnabled!==!1},onChange:e=>ve({compactionEnabled:e})})),X(i,W(Np,{get value(){return t().retryEnabled!==!1},onChange:e=>ve({retryEnabled:e})})),e})(),cp()]}),v),X(b,W(Ff,{}),null),C.addEventListener(`change`,e=>us(e.currentTarget.value)),M.addEventListener(`change`,e=>ls(e.currentTarget.checked)),X(P,W(G,{each:Go,children:e=>(()=>{var t=yp(),n=t.firstChild,r=n.nextSibling;return n.addEventListener(`change`,t=>ds(e,t.currentTarget.checked)),Y(n,`id`,`pref-tool-expand-${e}`),X(r,e),j(()=>n.checked=fs(e)),t})()})),X(z,(()=>{var e=q(()=>y()===`denied`);return()=>e()?`blocked by browser settings — re-enable notifications in site permissions`:q(()=>y()===`insecure`)()?`this page is not a secure context — notifications need HTTPS. Run the server with --https (tailscale cert <host>.<tailnet>.ts.net) and open it via the https:// hostname`:q(()=>y()===`ios-install`)()?`iOS notifications need the installed PWA — tap Share → Add to Home Screen, then open dreb from the home screen icon`:y()===`unsupported`?`browser notifications are unavailable in this environment`:`show a notification when the tab needs input (Android/desktop need the app installed on mobile; works over HTTPS or localhost)`})()),te.addEventListener(`change`,e=>{e.currentTarget.checked&&Oe()}),X(ae,()=>y()===`granted`?`enabled`:`enable notifications`),X(se,()=>ue()?.supervised?`restarts the server process (a supervisor respawns it with the latest build) — kills all running sessions`:`exits the server process — only auto-restarts if run under a supervisor (systemd, pm2, …); otherwise the dashboard goes down. kills all running sessions`),H.$$click=()=>fe(!0),X(H,()=>pe()?`restarting…`:`restart`),X(v,W(K,{get when(){return he()},get children(){var e=Wf();return X(e,he),e}}),null),X(me,()=>ke()?.mode===`local`?`local`:`host`),ge.$$input=e=>{re(e.currentTarget.value),L(!1)},ye.$$click=()=>void B(),X(ye,()=>ee()?`saving…`:`save`),X(ce,W(K,{get when(){return I()},get children(){return qf()}}),null),X(ce,W(K,{get when(){return A()},get children(){var e=Wf();return X(e,A),e}}),null),X(ce,W(K,{get when(){return q(()=>!!oe()?.enabled)()&&oe()?.code},get children(){var e=Jf(),t=e.firstChild.nextSibling.firstChild;return X(t,()=>oe().code),e}}),null),X(ce,W(G,{get each(){return D()??[]},children:e=>(()=>{var t=bp(),n=t.firstChild,r=n.nextSibling,i=r.firstChild,a=i.nextSibling;a.nextSibling;var o=r.nextSibling.firstChild;return X(n,()=>e.device??e.id),X(r,()=>e.identity,i),X(r,()=>ut(e.createdAt),a),X(r,()=>e.expiresAt.slice(0,10),null),o.$$click=async()=>{await $.unpair(e.id),await O()},t})()}),null),X(ce,W(K,{get when(){return(D()??[]).length===0},get children(){return Yf()}}),null),X(be,(()=>{var e=q(()=>!!ue()?.version);return()=>e()?` v${ue().version}`:q(()=>!!U())()?` v${U()}`:``})(),J),X(be,W(K,{get when(){return ue()?.startedAt},get children(){return[` · server build, up `,q(()=>ut(ue().startedAt))]}}),null),X(i,W(K,{get when(){return de()},get children(){return W(st,{title:`restart dashboard service?`,onDismiss:()=>fe(!1),get actions(){return[(()=>{var e=xp();return e.$$click=()=>fe(!1),e})(),(()=>{var e=Sp();return e.$$click=()=>{fe(!1),_e()},e})()]},get children(){var e=Xf();return e.firstChild.nextSibling.nextSibling,X(e,()=>ue()?.supervised?` A supervisor is detected — the server should respawn automatically with the latest build.`:` No supervisor was detected — the dashboard will NOT come back on its own; you'll need to relaunch it manually.`,null),e}})}}),null),X(i,W(K,{get when(){return s()},children:e=>{let t=()=>{let t=e();return t.kind==="default"?`select default model`:t.kind===`arbiter`?`select Dispatch Arbiter model`:`add model for ${t.agentName}`},n=()=>{let t=e();return t.kind==="default"?x()?.defaultProvider&&x()?.defaultModel?[`${x().defaultProvider}/${x().defaultModel}`]:[]:t.kind===`arbiter`?x()?.subagentArbiter?.model?[x().subagentArbiter.model]:[]:Ee(t.agentName)};return W(Pp,{get title(){return t()},get models(){return w()??[]},get selected(){return n()},onClose:()=>c(void 0),onPick:t=>{let n=e();if(c(void 0),n.kind==="default"){ve({defaultProvider:t.provider,defaultModel:t.id});return}if(n.kind===`arbiter`){Se({model:Ep(t)});return}let r=Ep(t),i=Ee(n.agentName);i.includes(r)||Ce(n.agentName,[...i,r])}})}}),null),j(e=>{var t=y()===`denied`||y()===`unsupported`||y()===`ios-install`||y()===`insecure`,n=pe(),r=ee()||ie.loading;return t!==e.e&&(te.disabled=e.e=t),n!==e.t&&(H.disabled=e.t=n),r!==e.a&&(ye.disabled=e.a=r),e},{e:void 0,t:void 0,a:void 0}),j(()=>C.value=cs()),j(()=>M.checked=ss()),j(()=>te.checked=y()===`granted`),j(()=>ge.value=ne()),i})()}Ae([`input`,`click`]);var Ip=J(`<div class="status-line arbitration-history">`),Lp=J(`<p class=pair-error>`),Rp=J(`<div class=status-line><span class=working>● working`),zp=J(`<output class=pending-chips aria-label="pending subagent steering messages">`),Bp=J(`<div class=composer><textarea placeholder="Steer this subagent…"></textarea><div class=composer-row><span class=muted>steering delivery: </span><button type=button class="btn btn-primary btn-small send">`),Vp=J(`<div class=session-screen><header class=session-bar><div class=session-bar-inner><a class=back>← </a><span class=agent-type>subagent · </span><span class=title></span><span class=right></span></div></header><main class=chat><div class=chat-inner></div></main><footer class=dock><div class=dock-inner>`),Hp=J(`<span>arbiter: `),Up=J(`<p class=muted>`),Wp=J(`<div class=readonly-note>`),Gp=J(`<span class=pending-chip>steer: `);function Kp(e){let t=e.step===void 0?``:`step ${e.step}: `;return e.status===`failure`?`${t}failed — ${e.errorMessage??e.errorCode??`unknown error`}`:!e.final||e.changed.length===0?`${t}kept ${e.proposed.agent} · ${e.proposed.model} · ${e.proposed.thinking}`:`${t}${e.changed.join(`, `)} changed → ${e.final.agent} · ${e.final.model} · ${e.final.thinking}`}function qp(e){let t=()=>e.store.sessions[e.sessionKey],n=N(()=>t()?.backgroundAgents[e.agentId]),r=()=>t()?.subagents[e.agentId],i=N(()=>e.store.fleet().runtimes.find(t=>t.key===e.sessionKey)),a=()=>i()?.state.sessionName??e.sessionKey,[o,s]=k(),[c,l]=k(``),[u,d]=k(!1),[f,p]=k(),[m,h]=k(),[g,_]=k({steering:[],followUp:[]}),v=()=>t()?.closed,y=()=>!v()&&n()?.status===`running`,b=()=>typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 700px)`).matches,x,S,C,w=zo({scroller:()=>x});R(()=>{let t=new AbortController;v()||e.store.hydrateSubagent(e.sessionKey,e.agentId,t.signal).catch(e=>{t.signal.aborted&&ml(e)||v()||s(e instanceof Error?e.message:String(e))}),z(()=>t.abort())}),M(()=>{e.store.revisions[e.sessionKey],w.notifyContentChanged()}),R(()=>{w.observeContent(C),w.observeViewport(x),x&&z(Vo(w,x,{keyboard:`window`}))}),z(()=>w.dispose());async function T(){if(y())try{let t=await $.subagentPending(e.sessionKey,e.agentId);h(t.steeringMode),_(t.pending),p(void 0)}catch(e){v()||p(e instanceof Error?e.message:String(e))}}R(()=>{T();let e=window.setInterval(()=>{y()&&T()},1e3);z(()=>window.clearInterval(e))}),M(()=>{c(),S&&queueMicrotask(()=>S&&Cd(S))});async function E(){let t=c();if(!(!t.trim()||u()||!y())){d(!0),p(void 0);try{await $.steerSubagent(e.sessionKey,e.agentId,t),l(``),await T()}catch(e){v()||p(e instanceof Error?e.message:String(e))}finally{d(!1)}}}let D=N(()=>{let n=[],r=v();if(r&&!r.bannerDismissed){let t=[];r.cwd&&r.sessionFile&&t.push({label:r.resuming?`resuming…`:`Resume session`,run:()=>e.store.resumeClosedSession(e.sessionKey),disabled:r.resuming}),t.push({label:`Return to fleet`,run:()=>e.store.navigate({screen:`fleet`}),disabled:r.resuming}),n.push({key:`closed`,text:`session ${e.sessionKey} was closed${r.resumeError?`\nResume failed: ${r.resumeError}`:``}`,tone:r.resumeError?`error`:`warning`,onDismiss:()=>e.store.dismissClosedBanner(e.sessionKey),actions:t})}for(let r of t()?.statusEntries??[])r.dismissed||n.push({key:`status:${r.id}`,text:r.text,tone:r.tone,onDismiss:()=>e.store.dismissStatusBanner(e.sessionKey,r.id)});for(let r of t()?.toasts??[])n.push({key:`toast:${r.id}`,text:r.text,tone:r.tone,onDismiss:()=>e.store.dismissToast(r.id)});return n});return(()=>{var t=Vp(),i=t.firstChild,s=i.firstChild.firstChild;s.firstChild;var d=s.nextSibling;d.firstChild;var p=d.nextSibling,h=p.nextSibling,_=i.nextSibling,w=_.firstChild,T=_.nextSibling.firstChild;X(s,a,null),X(d,()=>n()?.agentType??`unknown`,null),X(p,()=>n()?.taskSummary??e.agentId),X(h,W(K,{get when(){return y()},get fallback(){return W(rt,{get status(){return!v()&&n()?.status===`failed`?`error`:`idle`},get label(){return q(()=>!!v())()?`closed`:n()?.status}})},get children(){return W(rt,{status:`running`})}})),X(t,W(ct,{get banners(){return D()}}),_);var O=x;typeof O==`function`?Fe(O,_):x=_;var k=C;return typeof k==`function`?Fe(k,w):C=w,X(w,W(K,{get when(){return(n()?.arbitrations?.length??0)>0},get children(){var e=Ip();return X(e,W(G,{get each(){return n()?.arbitrations??[]},children:e=>(()=>{var t=Hp();return t.firstChild,X(t,()=>Kp(e),null),j(()=>je(t,e.status===`failure`?`error-reason`:`muted`)),t})()})),e}}),null),X(w,W(K,{get when(){return o()},get children(){var e=Lp();return X(e,o),e}}),null),X(w,W(K,{get when(){return q(()=>!!r())()&&r().entries.length>0},get fallback(){return(()=>{var e=Up();return X(e,()=>n()?`waiting for output from this agent…`:`no data for this agent — it may not have started writing its session log yet.`),e})()},get children(){return W(Oc,{get entries(){return r().entries},get who(){return n()?.agentType??`agent`},userLabel:`task from parent`,get resetKey(){return`${e.sessionKey}:${e.agentId}`},get imageScope(){return{runtimeKey:e.sessionKey,agentId:e.agentId}}})}}),null),X(T,W(K,{get when(){return r()?.streaming},get children(){return Rp()}}),null),X(T,W(K,{get when(){return y()},get fallback(){return(()=>{var e=Wp();return X(e,()=>v()?`This session is closed; the subagent transcript is read-only.`:`This subagent is no longer running; its transcript is read-only.`),e})()},get children(){return[W(K,{get when(){return f()},get children(){var e=Lp();return X(e,f),e}}),W(K,{get when(){return g().steering.length>0},get children(){var e=zp();return X(e,W(G,{get each(){return g().steering},children:e=>(()=>{var t=Gp();return t.firstChild,X(t,e,null),t})()})),e}}),(()=>{var e=Bp(),t=e.firstChild,n=t.nextSibling.firstChild;n.firstChild;var r=n.nextSibling;t.$$keydown=e=>{e.key===`Enter`&&!e.shiftKey&&!b()&&(e.preventDefault(),E())},t.$$input=e=>{l(e.currentTarget.value),Cd(e.currentTarget)};var i=S;return typeof i==`function`?Fe(i,t):S=t,X(n,()=>m()??`loading…`,null),r.$$click=()=>void E(),X(r,()=>u()?`sending…`:`steer ↵`),j(e=>{var n=u(),i=u()||c().trim().length===0;return n!==e.e&&(t.disabled=e.e=n),i!==e.t&&(r.disabled=e.t=i),e},{e:void 0,t:void 0}),j(()=>t.value=c()),e})()]}}),null),j(()=>Y(s,`href`,`#/session/${e.sessionKey}`)),t})()}Ae([`input`,`keydown`,`click`]);var Jp=Symbol(`store-raw`),Yp=Symbol(`store-node`),Xp=Symbol(`store-has`),Zp=Symbol(`store-self`);function Qp(e){let t=e[p];if(!t&&(Object.defineProperty(e,p,{value:t=new Proxy(e,om)}),!Array.isArray(e))){let n=Object.keys(e),r=Object.getOwnPropertyDescriptors(e),i=Object.getPrototypeOf(e),a=i!==null&&typeof e==`object`&&!!e&&!Array.isArray(e)&&i!==Object.prototype;if(a){let e=Object.getOwnPropertyDescriptors(i);n.push(...Object.keys(e)),Object.assign(r,e)}for(let i=0,o=n.length;i<o;i++){let o=n[i];a&&o===`constructor`||r[o].get&&Object.defineProperty(e,o,{configurable:!0,enumerable:r[o].enumerable,get:r[o].get.bind(t)})}}return t}function $p(e){let t;return typeof e==`object`&&!!e&&(e[p]||!(t=Object.getPrototypeOf(e))||t===Object.prototype||Array.isArray(e))}function em(e,t=new Set){let n,r,i,a;if(n=e!=null&&e[Jp])return n;if(!$p(e)||t.has(e))return e;if(Array.isArray(e)){Object.isFrozen(e)?e=e.slice(0):t.add(e);for(let n=0,a=e.length;n<a;n++)i=e[n],(r=em(i,t))!==i&&(e[n]=r)}else{Object.isFrozen(e)?e=Object.assign({},e):t.add(e);let n=Object.keys(e),o=Object.getOwnPropertyDescriptors(e);for(let s=0,c=n.length;s<c;s++)a=n[s],!o[a].get&&(i=e[a],(r=em(i,t))!==i&&(e[a]=r))}return e}function tm(e,t){let n=e[t];return n||Object.defineProperty(e,t,{value:n=Object.create(null)}),n}function nm(e,t,n){if(e[t])return e[t];let[r,i]=k(n,{equals:!1,internal:!0});return r.$=i,e[t]=r}function rm(e,t){let n=Reflect.getOwnPropertyDescriptor(e,t);return!n||n.get||!n.configurable||t===p||t===Yp?n:(delete n.value,delete n.writable,n.get=()=>e[p][t],n)}function im(e){ee()&&nm(tm(e,Yp),Zp)()}function am(e){return im(e),Reflect.ownKeys(e)}var om={get(e,t,n){if(t===Jp)return e;if(t===p)return n;if(t===m)return im(e),n;let r=tm(e,Yp),i=r[t],a=i?i():e[t];if(t===Yp||t===Xp||t===`__proto__`)return a;if(!i){let n=Object.getOwnPropertyDescriptor(e,t);ee()&&(typeof a!=`function`||Object.prototype.hasOwnProperty.call(e,t))&&!(n&&n.get)&&(a=nm(r,t,a)())}return $p(a)?Qp(a):a},has(e,t){return t===Jp||t===p||t===m||t===Yp||t===Xp||t===`__proto__`?!0:(ee()&&nm(tm(e,Xp),t)(),t in e)},set(){return!0},deleteProperty(){return!0},ownKeys:am,getOwnPropertyDescriptor:rm};function sm(e,t,n,r=!1){if(t===`__proto__`||!r&&e[t]===n)return;let i=e[t],a=e.length;n===void 0?(delete e[t],e[Xp]&&e[Xp][t]&&i!==void 0&&e[Xp][t].$()):(e[t]=n,e[Xp]&&e[Xp][t]&&i===void 0&&e[Xp][t].$());let o=tm(e,Yp),s;if((s=nm(o,t,i))&&s.$(()=>n),Array.isArray(e)&&e.length!==a){for(let t=e.length;t<a;t++)(s=o[t])&&s.$();(s=nm(o,`length`,a))&&s.$(e.length)}(s=o[Zp])&&s.$()}function cm(e,t){let n=Object.keys(t);for(let r=0;r<n.length;r+=1){let i=n[r];lm(i)||sm(e,i,t[i])}}function lm(e){return e===`__proto__`||e===`constructor`||e===`prototype`}function um(e,t){if(typeof t==`function`&&(t=t(e)),t=em(t),Array.isArray(t)){if(e===t)return;let n=0,r=t.length;for(;n<r;n++){let r=t[n];e[n]!==r&&sm(e,n,r)}sm(e,`length`,r)}else cm(e,t)}function dm(e,t,n=[]){let r,i=e;if(t.length>1){r=t.shift();let a=typeof r,o=Array.isArray(e);if(a===`string`&&(r===`__proto__`||t.length>1&&lm(r)))return;if(Array.isArray(r)){for(let i=0;i<r.length;i++)dm(e,[r[i]].concat(t),n);return}else if(o&&a===`function`){for(let i=0;i<e.length;i++)r(e[i],i)&&dm(e,[i].concat(t),n);return}else if(o&&a===`object`){let{from:i=0,to:a=e.length-1,by:o=1}=r;for(let r=i;r<=a;r+=o)dm(e,[r].concat(t),n);return}else if(t.length>1){dm(e[r],t,[r].concat(n));return}i=e[r],n=[r].concat(n)}let a=t[0];typeof a==`function`&&(a=a(i,n),a===i)||r===void 0&&a==null||(a=em(a),r===void 0||$p(i)&&$p(a)&&!Array.isArray(a)?cm(i,a):sm(e,r,a))}function fm(...[e,t]){let n=em(e||{}),r=Array.isArray(n),i=Qp(n);function a(...e){I(()=>{r&&e.length===1?um(n,e[0]):dm(n,e)})}return[i,a]}var pm=new WeakMap,mm={get(e,t){if(t===Jp)return e;let n=e[t];if(t===p||t===m||t===Yp||t===Xp||t===`__proto__`)return n;let r;return $p(n)?pm.get(n)||(pm.set(n,r=new Proxy(n,mm)),r):n},set(e,t,n){return sm(e,t,em(n)),!0},deleteProperty(e,t){return sm(e,t,void 0,!0),!0}};function hm(e){return t=>{if($p(t)){let n;(n=pm.get(t))||pm.set(t,n=new Proxy(t,mm)),e(n)}return t}}function gm(){let[e,t=``]=window.location.hash.replace(/^#\/?/,``).split(`?`,2),[n,...r]=e.split(`/`);if(n===`session`&&r[0])return r[1]===`subagent`&&r[2]?{screen:`subagent`,key:r[0],agentId:r[2]}:{screen:`session`,key:r[0]};if(n===`files`)return{screen:`files`,path:r.length?decodeURIComponent(r.join(`/`)):void 0};if(n===`memories`)return{screen:`memories`};if(n===`settings`){if(r[0]===`scoped-models`){let e=new URLSearchParams(t).get(`cwd`)||void 0;return{screen:`settings`,target:`scoped-models`,...e?{cwd:e}:{}}}return{screen:`settings`}}return n===`pairing`?{screen:`pairing`}:{screen:`fleet`}}function _m(e){return e.screen===`session`||e.screen===`subagent`?e.key:void 0}function vm(e){switch(e.screen){case`fleet`:return`#/`;case`session`:return`#/session/${e.key}`;case`subagent`:return`#/session/${e.key}/subagent/${e.agentId}`;case`files`:return e.path?`#/files/${encodeURIComponent(e.path)}`:`#/files`;case`memories`:return`#/memories`;case`settings`:return e.target===`scoped-models`?`#/settings/scoped-models${e.cwd?`?cwd=${encodeURIComponent(e.cwd)}`:``}`:`#/settings`;case`pairing`:return`#/pairing`}}var ym=2e3,bm=3*1024*1024,xm=ym,Sm=bm,Cm=3e4,wm=1e4,Tm=1e3,Em=3e4,Dm=5e3,Om=5*6e4,km=2147e6,Am=new TextEncoder;function jm(e,t,n){e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`);let r=n.retryAttempt??0;if(n.isRetrying&&r>0){let t=e.entries.findLast(e=>e.kind===`assistant`&&e.stopReason===`error`),n=t?.errorMessage?` — ${t.errorMessage}`:``;e.statusEntries.push(nn({key:`retry`,text:`retrying (attempt ${r})${n}`,tone:`warning`}))}pn(e,t,n.isStreaming||n.isRetrying||n.isCompacting)}function Mm(){let[e,t]=fm({}),[n,r]=fm({}),[i,a]=k(gm()),[o,s]=k({runtimes:[],diskSessions:[]}),[c,l]=k(),[u,d]=k(),[f,p]=k(),[m,h]=k(!1),[g,_]=k(),[v,y]=k({state:`disconnected`,attempt:0}),b=()=>v().state===`connected`,[x,S]=k([]),C=new Map,w=new Map,T=new Map,E=0,D=0,O,A,j,M,N=!1,P=0,F=!1,I,L=0,R=new Map,z=new Map,ee=new Map,te=0,ne=0,re,ie,ae,B=0,oe=new Set,V=!1;function se(t,n){let r=_m(t);!r||r===_m(n)||!e[r]?.closed||be(r)}function H(){let e=gm();se(i(),e),a(e)}window.addEventListener(`hashchange`,H);function ce(e){se(i(),e),window.location.hash=vm(e)}function le(e){return n[e]??0}function U(e){return C.get(e)??0}function ue(e){return w.get(e)??0}function de(e){w.set(e,ue(e)+1)}function fe(e){C.set(e,U(e)+1)}function pe(e){return{revision:le(e),generation:U(e),epoch:E}}function me(e,t){return U(e)===t.generation&&E===t.epoch}function he(e,t){return le(e)===t.revision&&me(e,t)}function ge(e,t){t&&T.get(e)!==t||(T.delete(e),t&&(t.queued=[],t.queuedBytes=0))}function _e(e){r(e,le(e)+1)}function ve(n){e[n]||t(n,Gt(n))}function ye(e,n){ve(e),t(e,hm(n)),_e(e)}function be(e){ge(e),fe(e),w.delete(e),t(e,void 0),r(e,void 0),xl(e)}function xe(){return _m(gm())}function Se(e,t=`info`){--D,S(n=>[...n,{id:D,text:e,tone:t}].slice(-20))}function Ce(){ie!==void 0&&clearTimeout(ie),ie=void 0,ae=void 0,B=0}function W(e){if(V||ae!==e)return;let t=e-Date.now();if(t<=0){ie=void 0,Ee(e);return}ie=setTimeout(()=>W(e),Math.min(t,km))}function we(e){if(Ce(),!e)return;let t=Date.parse(e);if(!Number.isFinite(t)){Se(`Dashboard returned an invalid pairing-expiry check time`,`error`);return}ae=t,W(t)}function G(e){if(V||ae!==e)return;B+=1;let t=Math.min(10,B-1),n=Math.min(Om,Dm*2**t);ie=setTimeout(()=>{ie=void 0,!V&&ae===e&&Ee(e)},n)}function K(e){e.pairingExpiryWarning&&Se(`This device pairing expires on ${e.pairingExpiryWarning.expiresAt.slice(0,10)}. Re-pair before then to avoid losing remote access.`,`warning`)}function Te(e){_(e),K(e),we(e.pairingExpiryCheckAt)}async function Ee(e){try{let t=await $.auth();if(V)return;if(ae!==e){K(t);return}if((t.pairingExpiryCheckAt?Date.parse(t.pairingExpiryCheckAt):void 0)===e&&e<=Date.now()){_(t),K(t),G(e);return}Te(t)}catch(t){if(V||ae!==e)return;if(t?.status===401||t?.status===403){Ce(),_({mode:`remote`,needsPairing:t?.body?.needsPairing??!1,identity:t?.body?.identity,error:t?.message}),ce({screen:`pairing`});return}B===0&&Se(`Could not check pairing expiry: ${t instanceof Error?t.message:String(t)}`,`error`),G(e)}}function q(e){return R.get(e)??0}function De(e,t,n){let r=new Map(e.map(e=>[e.key,JSON.stringify(e.state)])),i=new Map(t.map(e=>[e.key,JSON.stringify(e.state)]));for(let e of new Set([...r.keys(),...i.keys()])){if(r.get(e)===i.get(e))continue;let t=q(e)+1;R.set(e,t),n===void 0?z.set(e,t):ee.set(e,Math.max(ee.get(e)??-1,n))}}function Oe(e,t){s(n=>{let r=e(n);return L+=1,De(n.runtimes,r.runtimes,t),r})}function ke(e){oe.clear(),Oe(()=>e)}function J(e,t){let n=new Set(e.filter(e=>!oe.has(e.key)).map(e=>e.key)),r=n.size!==o().runtimes.length||o().runtimes.some(e=>!n.has(e.key));Oe(t=>{let n=new Map(t.runtimes.map(e=>[e.key,e]));return{...t,runtimes:e.filter(e=>!oe.has(e.key)).map(e=>{let t=n.get(e.key);return{...e,state:{...e.state,contextUsage:t?.state.contextUsage??e.state.contextUsage},...t?.stats===void 0?{}:{stats:t.stats},...t?.lastAssistantText===void 0?{}:{lastAssistantText:t.lastAssistantText}}})}},t),r&&X().catch(()=>{})}function Ae(e,t){ge(e),fe(e),ye(e,e=>{let n=e.closed;e.closed={...t?.cwd||n?.cwd?{cwd:n?.cwd??t?.cwd}:{},...t?.state.sessionFile||n?.sessionFile?{sessionFile:n?.sessionFile??t?.state.sessionFile}:{},...n?.bannerDismissed?{bannerDismissed:!0}:{},...n?.resuming?{resuming:!0}:{},...n?.resumeError?{resumeError:n.resumeError}:{}},e.streaming=!1,e.compacting=!1,e.workingSince=void 0,e.workingText=void 0,e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`&&e.key!==`paused`&&e.key!==`compaction`),e.suggestedCommand=void 0,e.uiRequests=[];for(let t of Object.values(e.subagents))t.streaming=!1;cn(e)})}function Y(e,t,n=!0){let r=t??o().runtimes.find(t=>t.key===e),i=oe.has(e);return oe.add(e),i||Oe(t=>({...t,runtimes:t.runtimes.filter(t=>t.key!==e)})),xe()===e?Ae(e,r):be(e),i||!n?Promise.resolve():X()}async function je(e){let t=o().runtimes.find(t=>t.key===e);try{await $.stopRuntime(e)}catch(t){if(oe.has(e))return;throw t}await Y(e,t)}function Me(t,n){e[t]?.statusEntries.some(e=>e.id===n)&&ye(t,e=>{let t=e.statusEntries.find(e=>e.id===n);t&&(t.dismissed=!0)})}function Ne(t){e[t]?.closed&&ye(t,e=>{e.closed&&(e.closed.bannerDismissed=!0)})}async function Pe(t){let n=e[t]?.closed;if(!n||n.resuming)return;if(!n.cwd||!n.sessionFile){ye(t,e=>{e.closed&&(e.closed.resumeError=`This closed session has no captured resume path.`)});return}let r=n.cwd,i=n.sessionFile;ye(t,e=>{e.closed&&(e.closed.resuming=!0,e.closed.resumeError=void 0)});let a;try{a=await $.createRuntime(r,{sessionPath:i})}catch(n){let r=n instanceof Error?n.message:String(n);if(!e[t]?.closed)return;ye(t,e=>{e.closed&&(e.closed.resuming=!1,e.closed.resumeError=r,e.closed.bannerDismissed=!1)});return}Ie(a),X().catch(()=>{}),ce({screen:`session`,key:a.key})}function Fe(){let e=++te,t=L;return $.fleet().then(n=>{e!==te||t!==L||(ke(n),l(void 0))},n=>{throw e===te&&t===L&&l(n instanceof Error?n.message:String(n)),n})}function X(){let e=++ne;return $.sessions().then(t=>{e===ne&&(Oe(e=>({...e,diskSessions:t.sessions})),l(void 0))},t=>{throw e===ne&&l(t instanceof Error?t.message:String(t)),t})}function Ie(e){oe.delete(e.key),Oe(t=>{let n=t.runtimes.findIndex(t=>t.key===e.key);if(n===-1)return{...t,runtimes:[...t.runtimes,e]};let r=[...t.runtimes];return r[n]=e,{...t,runtimes:r}})}function Le(e,t,n,r){if(o().runtimes.some(t=>t.key===e)){if(n!==void 0&&q(e)!==n){let t=z.get(e)??0,i=ee.get(e);if(t>n||i===void 0||i>r)return}Oe(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:t}:n)}))}}function Re(e,t){Oe(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:{...n.state,model:t}}:n)}))}function ze(e,t){Oe(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:{...n.state,thinkingLevel:t}}:n)}))}function Be(e,t,n){return{...e,state:{...e.state,...t.contextUsage===void 0?{}:{contextUsage:t.contextUsage},messageCount:n?e.state.messageCount:t.totalMessages},stats:{tokensTotal:t.tokens.total,cost:t.cost}}}function Ve(e){let t=new AbortController,n,r=new Promise((r,i)=>{n=setTimeout(()=>{let n=Error(`Stats request for runtime ${e} timed out after ${wm} ms`);i(n),t.abort(n)},wm)});return Promise.race([$.stats(e,t.signal),r]).finally(()=>{n!==void 0&&clearTimeout(n)})}function He(){if(re)return re;let e=o().runtimes.map(e=>e.key),t=new Map(e.map(e=>[e,q(e)])),n=e.map(e=>Ve(e)),r=Promise.allSettled(n).then(n=>{let r=new Map,i=[];for(let[t,a]of n.entries())a.status===`fulfilled`?r.set(e[t],a.value):i.push(a.reason instanceof Error?a.reason.message:String(a.reason));r.size>0&&Oe(e=>({...e,runtimes:e.runtimes.map(e=>{let n=r.get(e.key),i=t.get(e.key),a=i===void 0||q(e.key)!==i;return n?Be(e,n,a):e})})),d(i.length>0?i.join(`; `):void 0)}).finally(()=>{re===r&&(re=void 0)});return re=r,r}function Ue(e){return Am.encode(JSON.stringify(e)).byteLength}function We(e){e.queued=[],e.queuedBytes=0}function Ge(){j!==void 0&&clearTimeout(j),j=void 0}function Ke(){return Math.min(Em,Tm*2**Math.max(0,P-1))}function qe(){if(V||j!==void 0)return;P+=1;let e=Ke();h(!1),M||=v(),y(t=>t.state===`auth_failed`?t:(N=!0,{...t,state:`retrying`,attempt:Math.max(t.attempt,P),retryDelayMs:e,retryAt:Date.now()+e})),j=setTimeout(()=>{j=void 0,Qe()},e)}function Je(){let e=M,t=N;M=void 0,N=!1,!(!t||e?.state!==`connected`||v().state!==`retrying`)&&y({state:`connected`,attempt:e.attempt,lastAppliedSeq:e.lastAppliedSeq})}function Ye(e){let t=e.event?.type;t===`fleet_snapshot`?J(e.event.runtimes,e.seq):t===`disk_sessions_changed`?X().catch(()=>{}):t===`runtime_removed`?e.key&&Y(e.key).catch(()=>{}):e.key&&(ye(e.key,t=>vn(t,e.event)),t===`tasks_update`&&de(e.key))}function Xe(e){let t=e.subagent;ye(e.key,n=>{let r=e.messages;if(n.closed=void 0,n.entries=$t(r),n.tasks=(e.state.tasks??[]).map(e=>({...e})),n.streaming=e.state.isStreaming,n.compacting=e.state.isCompacting,n.sessionName=e.state.sessionName,n.model=e.state.model?.id,n.contextUsage=e.state.contextUsage,n.uiRequests=(e.pendingExtensionUiRequests??[]).map(e=>Wt(e)).filter(e=>e!==void 0),n.statusEntries=[],n.suggestedCommand=void 0,n.lastError=void 0,n.widgets={above:[],below:[]},n.toasts=[],n.title=void 0,n.composerPrefill=void 0,jm(n,r,e.state),n.streaming?(n.workingSince=Date.now(),n.workingText=`working`):(n.workingSince=void 0,n.workingText=void 0),n.backgroundAgents=Object.fromEntries(e.backgroundAgents.map(e=>[e.agentId,e])),sn(n),t){let r=e.backgroundAgents.find(e=>e.agentId===t.agentId)??t.agent;n.backgroundAgents[t.agentId]=r,n.subagents[t.agentId]={agentId:t.agentId,entries:$t(t.messages),streaming:r.status===`running`}}cn(n)}),de(e.key)}function Ze(e,t){if(A!==e||e.state!==`active`||e.barrierSeq===void 0)return;Ge(),P=0,Je();let n=e.barrierSeq;I=n;let r=xe(),i=r?o().runtimes.find(e=>e.key===r):void 0;ke(t.fleet),l(void 0),t.active?Xe(t.active):r&&Y(r,i,!1).catch(()=>{});let a=[...e.queued].sort((e,t)=>e.seq-t.seq),s=t.active?.subagent;if(s&&t.active)for(let e of a)e.seq>s.barrierSeq&&e.seq<=n&&e.key===t.active.key&&e.event.type===`background_agent_event`&&String(e.event.agentId)===s.agentId&&Ye(e);for(let e of a)e.seq>n&&Ye(e);We(e),A=void 0,h(!1),p(void 0)}function Qe(e=!1){if(V)return Promise.resolve();if(O)return(e||A?.state===`failed`)&&(F=!0),O;Ge();let t=i(),n=t.screen===`session`||t.screen===`subagent`?t.key:void 0,r=t.screen===`subagent`?t.agentId:void 0,a={queued:[],queuedBytes:0,state:`active`,controller:new AbortController};A=a,E+=1;for(let[e,t]of T)ge(e,t);h(!0),p(void 0);let o=setTimeout(()=>a.controller.abort(`Dashboard recovery timed out`),Cm),s=$.resync(n,r,a.controller.signal).then(e=>{a.barrierSeq=e.barrierSeq,Ze(a,e)}).catch(e=>{if(A!==a)return;a.state=`failed`,We(a);let t=a.controller.signal.reason;p(typeof t==`string`?t:e instanceof Error?e.message:String(e)),qe(),j===void 0&&h(!1)}).finally(()=>{clearTimeout(o),O===s&&(O=void 0),!V&&F&&(F=!1,Qe())});return O=s,s}function $e(){return Qe(!0)}function et(e){if(e.event?.type===`dashboard_resync`){Qe(!0);return}if(A){if(A.state===`failed`)throw qe(),Error(`Dashboard recovery is failed; refusing to acknowledge live envelope before resync succeeds`);let t=Ue(e);if(A.queued.length>=ym||A.queuedBytes+t>bm){We(A),A.state=`failed`;let e=`Dashboard recovery queue overflowed; waiting for a newer authoritative snapshot`;throw p(e),A.controller.abort(e),qe(),j===void 0&&h(!1),Error(e)}A.queued.push(e),A.queuedBytes+=t;return}if(I!==void 0&&e.seq<=I)return;let t=e.key?T.get(e.key):void 0;if(t){let n=Ue(e);if(t.queued.length>=xm||t.queuedBytes+n>Sm)throw ge(e.key,t),Error(`Dashboard hydration queue overflowed for ${e.key}; refusing an incomplete snapshot replay`);t.queued.push(e),t.queuedBytes+=n}Ye(e)}let tt;async function nt(){V=!1;try{Te(await $.auth())}catch(e){_({mode:`remote`,needsPairing:e?.body?.needsPairing??!1,identity:e?.body?.identity,error:e?.message}),ce({screen:`pairing`});return}await Fe().catch(()=>{}),tt=St({onEnvelope:et,onAuthStatus:Te,onStatusChange:e=>{N=!1,M=e.state===`connected`?e:void 0,y(e)},onRecovery:()=>{Qe()}})}function rt(){V=!0,tt?.(),Ce(),Ge(),M=void 0,N=!1,F=!1;let e=A;A=void 0,e&&We(e),e?.controller.abort(`Dashboard stopped`);for(let[e,t]of T)ge(e,t)}function it(t){if(x().some(e=>e.id===t)){S(e=>e.filter(e=>e.id!==t));return}for(let[n,r]of Object.entries(e))if(r.toasts.some(e=>e.id===t)){ye(n,e=>yn(e,t));return}}async function at(e,t){ge(e);let n=q(e),r={guard:pe(e),queued:[],queuedBytes:0};T.set(e,r);let i=()=>ge(e,r);t?.addEventListener(`abort`,i,{once:!0}),t?.aborted&&i();try{let i=await $.hydrate(e,t);if(t?.aborted||T.get(e)!==r||!me(e,r.guard))return;ye(e,e=>{let t=i.messages;e.closed=void 0,e.entries=$t(t),e.backgroundAgents=Object.fromEntries(i.backgroundAgents.map(e=>[e.agentId,e])),sn(e),e.streaming=i.state.isStreaming,e.compacting=i.state.isCompacting,e.tasks=(i.state.tasks??[]).map(e=>({...e})),i.state.isStreaming?(e.workingSince=Date.now(),e.workingText=`working`):(e.workingSince=void 0,e.workingText=void 0),e.uiRequests=(i.pendingExtensionUiRequests??[]).map(e=>Wt(e)).filter(e=>e!==void 0),jm(e,t,i.state),cn(e)}),de(e),Le(e,i.state,n,i.barrierSeq);for(let e of[...r.queued].sort((e,t)=>e.seq-t.seq))e.seq>i.barrierSeq&&Ye(e)}finally{t?.removeEventListener(`abort`,i),ge(e,r)}}async function ot(e,t,n){let r=pe(e),{agent:i,messages:a}=await $.subagentMessages(e,t,n);n?.aborted||!he(e,r)||ye(e,e=>{e.backgroundAgents[t]=i;let n=e.subagents[t];n||(n={agentId:t,entries:[],streaming:i.status===`running`},e.subagents[t]=n),a.length>0&&(n.entries=$t(a)),n.streaming=i.status===`running`})}return{sessions:e,revisions:n,route:i,navigate:ce,fleet:o,fleetError:c,fleetStatsError:u,refreshFleet:Fe,refreshDiskSessions:X,refreshFleetStats:He,removeRuntime:Y,stopRuntime:je,resumeClosedSession:Pe,dismissClosedBanner:Ne,dismissStatusBanner:Me,upsertRuntime:Ie,setRuntimeModel:Re,setRuntimeThinkingLevel:ze,resyncing:m,resyncError:f,retryResync:$e,auth:g,connected:b,connection:v,notices:x,start:nt,stop:rt,dismissToast:it,resolveUiRequest(e,t){ye(e,e=>bn(e,t))},hydrateSession:at,hydrateSubagent:ot}}var Nm=5e3;function Pm(e){let t;return Promise.race([e,new Promise((e,n)=>{t=setTimeout(()=>n(Error(`service worker not ready`)),Nm)})]).finally(()=>{t&&clearTimeout(t)})}function Fm(){let e=Mm();R(()=>{e.start(),`serviceWorker`in navigator&&(navigator.serviceWorker.addEventListener(`message`,t=>{if(t.data?.type===`navigate-session`&&typeof t.data.sessionKey==`string`){let n=t.data.sessionKey,r=!!e.sessions[n]||e.fleet().runtimes.some(e=>e.key===n);e.navigate(r?{screen:`session`,key:n}:{screen:`fleet`})}}),navigator.serviceWorker.register(`./sw.js`).catch(e=>{console.warn(`dashboard: service worker registration failed`,e)}))}),z(()=>e.stop());let t=new Set,n=new Set,r=t=>!!(e.fleet().runtimes.find(e=>e.key===t)?.needsAttention||e.sessions[t]?.needsAttention);M(()=>{let i=new Map;for(let t of e.fleet().runtimes)t.needsAttention&&i.set(t.key,{name:t.state.sessionName??t.state.sessionId.slice(0,8),reason:`needs attention`});for(let t of Object.values(e.sessions))t.needsAttention&&i.set(t.key,{name:t.sessionName??t.title??t.key,reason:ln(t.uiRequests)??t.statusEntries.find(e=>e.tone===`error`)?.text??`needs attention`});let a=i.size>0,o=e.route(),s=o.screen===`session`||o.screen===`subagent`?o.key:void 0,c=s?e.sessions[s]:void 0,l=s?e.fleet().runtimes.find(e=>e.key===s):void 0,u=c?.title??c?.sessionName??l?.state.sessionName,d=u?`${u} — dreb`:`dreb`;document.title=a?`◆ ${d}`:d;for(let[e,a]of i)n.has(e)||t.has(e)||typeof Notification<`u`&&Notification.permission===`granted`&&document.visibilityState!==`visible`&&`serviceWorker`in navigator&&(t.add(e),Pm(navigator.serviceWorker.ready).then(t=>t.showNotification(`dreb — ${a.name}`,{body:a.reason,tag:e,data:{sessionKey:e}})).then(()=>{t.delete(e),r(e)?n.add(e):n.delete(e)}).catch(n=>{t.delete(e),console.warn(`dashboard: showNotification failed`,n)}));for(let e of[...n])i.has(e)||n.delete(e);for(let e of[...t])i.has(e)||t.delete(e)});let i=()=>{let t=e.route(),n=t.screen===`session`||t.screen===`subagent`?t.key:void 0;return[...Object.values(e.sessions).flatMap(e=>e.key===n?[]:e.toasts.map(t=>({...t,sessionKey:e.key}))),...e.notices()].slice(-5)};return[W(Te,{get fallback(){return W(ir,{store:e})},get children(){return[W(Ee,{get when(){return e.route().screen===`session`},get children(){return W(Nd,{store:e,get sessionKey(){return e.route().key}})}}),W(Ee,{get when(){return e.route().screen===`subagent`},get children(){return W(qp,{store:e,get sessionKey(){return e.route().key},get agentId(){return e.route().agentId}})}}),W(Ee,{get when(){return e.route().screen===`files`},get children(){return W(Ht,{store:e,get initialPath(){return e.route().path}})}}),W(Ee,{get when(){return e.route().screen===`memories`},get children(){return W(il,{store:e})}}),W(Ee,{get when(){return e.route().screen===`settings`},get children(){return W(Fp,{store:e,get target(){return e.route().target},get routeScopedModelsCwd(){return e.route().cwd}})}}),W(Ee,{get when(){return e.route().screen===`pairing`},get children(){return W(ul,{store:e})}})]}}),W(lt,{get toasts(){return i()},onDismiss:t=>e.dismissToast(t)})]}Af();var Im=document.getElementById(`root`);if(!Im)throw Error(`dashboard: #root element missing from index.html`);ke(()=>W(Fm,{}),Im);
79
+ <span class=hljs-function>render</span><span class=hljs-punctuation>(</span><span class=hljs-string>"ok"</span><span class=hljs-punctuation>)</span><span class=hljs-punctuation>;</span></code></pre></div><span class=theme-card-footer><span class=theme-card-title></span><span class=theme-card-state>`),If=[`running`,`attention`,`idle`,`error`];function Lf(){let e=()=>{let e=bf();return e===`system`?void 0:e};return(()=>{var t=Nf(),n=t.firstChild,r=n.firstChild.nextSibling.firstChild,i=n.nextSibling;return r.addEventListener(`change`,e=>Tf(e.currentTarget.value)),X(r,W(G,{each:af,children:e=>(()=>{var t=Pf();return t.value=e,X(t,e),t})()})),X(i,W(G,{each:nf,children:t=>{let n=()=>yf()===t.id;return(()=>{var r=Ff(),i=r.firstChild,a=i.firstChild,o=a.firstChild,s=a.nextSibling,c=i.nextSibling.firstChild,l=c.nextSibling;return r.$$click=()=>wf(t.id),X(o,()=>t.label),X(s,W(G,{each:If,children:e=>W(rt,{status:e,label:``})})),X(c,()=>t.label),X(l,()=>n()?`✓ active`:`select`),j(i=>{var a=!!n(),o=t.id,s=t.id,c=e(),l=n(),u=n()?`true`:void 0,d=`use the ${t.label} theme`;return a!==i.e&&r.classList.toggle(`active`,i.e=a),o!==i.t&&Y(r,`data-theme-card`,i.t=o),s!==i.a&&Y(r,`data-theme`,i.a=s),c!==i.o&&Y(r,`data-color-mode`,i.o=c),l!==i.i&&Y(r,`aria-pressed`,i.i=l),u!==i.n&&Y(r,`aria-current`,i.n=u),d!==i.s&&Y(r,`title`,i.s=d),i},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0}),r})()}})),j(()=>r.value=bf()),t})()}Ae([`click`]);var Rf=J(`<select><option value=on>on</option><option value=off>off`),zf=J(`<div class=field style=margin-bottom:8px><input type=text placeholder="search models…">`),Bf=J(`<div class=model-list style=max-height:320px>`),Vf=J(`<p class="muted small">No matching models.`),Hf=J(`<section class=model-provider-group><div class=model-provider-heading>`),Uf=J(`<span class=model-name>`),Wf=J(`<span class=model-reasoning>think`),Gf=J(`<button type=button class=model-row><span class=model-current></span><span class=model-id></span><span class=model-provider-badge>`),Kf=J(`<div class=settings-error>`),qf=J(`<div class=settings-warning>`),Jf=J(`<p class="muted small"style=margin-bottom:16px>✓ saved`),Yf=J(`<div class=settings-success>new pairing lifetime saved`),Xf=J(`<div class=setting-row><span class=setting-label><span class=name>pairing code</span><span class=hint>new devices enter this in the pairing screen; it rotates every 30s</span></span><span class=setting-control><code style=font-size:var(--fs-h2);letter-spacing:0.08em>`),Zf=J(`<p class="muted small"style=padding-top:8px>No remote devices paired. Launch with <code>--remote --allow &lt;identity&gt;</code> to enable Tailscale access.`),Qf=J(`<p>This exits the dashboard server process and terminates <strong>all running sessions</strong>.`),$f=J(`<div class=screen-fill><main class="container settings-wrap"><h1>settings</h1><p class=settings-intro>Ordinary defaults apply only to new sessions. Dispatch Arbiter changes apply to subsequent child spawns. Context trust changes apply to subsequent lazy loads in live sessions; already injected content cannot be retracted. Writes go to the global settings file on the host.</p><section class=settings-section><h2>dashboard</h2><div class=appearance-block><div class="setting-row appearance-heading-row"><span class=setting-label><span class=name>appearance</span><span class=hint>this browser only — theme and light/dark mode are stored in localStorage and are independent of the TUI theme. Okabe-Ito and Paul Tol are colorblind-safe palettes.</span></span></div></div><div class=setting-row><label class=setting-label for=pref-image-display-mode><span class=name>tool-result images</span><span class=hint>this browser only — placeholders make no automatic request, previews are bounded to 1024 px and 256 KiB, and originals automatically transfer full files. Choosing originals is the informed network-data opt-in.</span></label><span class=setting-control><select id=pref-image-display-mode><option value=placeholders>placeholders</option><option value=previews>bounded previews</option><option value=originals>automatic originals</option></select></span></div><div class=setting-row><span class=setting-label><span class=name>always expand thinking</span><span class=hint>this browser only — stored in localStorage, not the host settings file</span></span><span class=setting-control><label class=checkbox-control><input id=pref-expand-thinking type=checkbox><span>open by default</span></label></span></div><div class=setting-row><span class=setting-label><span class=name>auto-expand tool cards</span><span class=hint>this browser only — stored in localStorage, not the host settings file</span></span><span class=setting-control style=display:grid;gap:6px></span></div><div class=setting-row><span class=setting-label><span class=name>needs-attention notifications</span><span class=hint></span></span><span class=setting-control><label class=checkbox-control><input id=pref-notifications type=checkbox><span></span></label></span></div><div class=setting-row><span class=setting-label><span class=name>restart dashboard service</span><span class=hint></span></span><span class=setting-control><button type=button class="btn btn-small btn-danger"></button></span></div></section><section class=settings-section><h2>devices</h2><div class=device-row><span>this machine <span class=this-device></span></span><span class=meta>local · always allowed</span></div><div class=setting-row><label class=setting-label for=pairing-ttl-days><span class=name>new pairing lifetime</span><span class=hint>applies only to devices paired after saving; existing expiry dates do not change</span></label><span class=setting-control><input id=pairing-ttl-days type=number min=1 max=3650 step=1><span>days</span><button type=button class="btn btn-small"></button></span></div></section><footer>dreb<!> · dashboard`),ep=J(`<div>`),tp=J(`<p class=muted>`),np=J(`<section class=settings-section><h2>model</h2><div class=setting-row><span class=setting-label><span class=name>default model</span><span class=hint>used by new sessions; validated against configured providers</span></span><span class=setting-control><button type=button class="btn btn-small model-picker-button"></button></span></div><div class=setting-row><span class=setting-label><span class=name>default thinking level</span><span class=hint></span></span><span class=setting-control><select></select></span></div><div class=setting-row><span class=setting-label><span class=name>transport</span><span class=hint>preferred model transport for new sessions</span></span><span class=setting-control><select>`),rp=J(`<section class="settings-section dispatch-arbiter-settings"><h2>dispatch arbiter</h2><p class="muted small"style=margin-bottom:8px>Global-only, fully headless pre-spawn routing. Project settings cannot change it. When enabled, invalid model, scope, guide, inference, or output prevents the affected child from spawning.</p><div class=setting-row><span class=setting-label><span class=name>enabled</span><span class=hint>disabled by default; fail closed when enabled</span></span><span class=setting-control></span></div><div class=setting-row><span class=setting-label><span class=name>arbiter model</span><span class=hint>exact authenticated provider/model; no fallback</span></span><span class=setting-control><button type=button class="btn btn-small model-picker-button"></button></span></div><div class=setting-row><span class=setting-label><span class=name>arbiter thinking</span><span class=hint>validated against the selected arbiter model</span></span><span class=setting-control><select></select></span></div><div class=setting-row><label class=setting-label for=dispatch-arbiter-guide-path><span class=name>routing guide path</span><span class=hint>blank uses ~/.dreb/agent/model-routing-guide.md</span></label><span class=setting-control><input id=dispatch-arbiter-guide-path type=text placeholder=~/.dreb/agent/model-routing-guide.md></span></div><div data-testid=dispatch-arbiter-readiness><strong>status:</strong> `),ip=J(`<div class="setting-row agent-context-row"><span class=setting-label><span class=name>agent definition context</span><span class=hint>choose a project to include its .dreb/agents definitions</span></span><span class=setting-control><select><option value>global/home only`),ap=J(`<section class=settings-section><h2>agent models</h2><p class="muted small"style=margin-bottom:8px>Per-agent fallback lists. First available model wins; empty lists revert to the default model. Agent definitions are loaded from an explicit project context so project-local agents do not depend on which runtime opened first.`),op=J(`<section class=settings-section><h2>images</h2><div class=setting-row><span class=setting-label><span class=name>auto-resize images</span><span class=hint>resize image inputs before sending them to providers</span></span><span class=setting-control></span></div><div class=setting-row><span class=setting-label><span class=name>block images</span><span class=hint>prevent image inputs from being sent to providers</span></span><span class=setting-control>`),sp=J(`<section class=settings-section><h2>queueing</h2><div class=setting-row><span class=setting-label><span class=name>steering delivery</span><span class=hint>deliver queued steers all at once, or one per turn</span></span><span class=setting-control><select></select></span></div><div class=setting-row><span class=setting-label><span class=name>follow-up delivery</span><span class=hint>deliver queued follow-ups all at once, or one per turn</span></span><span class=setting-control><select>`),cp=J(`<section class=settings-section><h2>behavior</h2><div class=setting-row><span class=setting-label><span class=name>skill slash commands</span><span class=hint>register skills as slash commands in new sessions</span></span><span class=setting-control></span></div><div class=setting-row><label class=setting-label for=max-concurrent-subagents><span class=name>max concurrent subagents</span><span class=hint>new parent sessions only; 0 removes the subagent tool (default 4)</span></label><span class=setting-control><input id=max-concurrent-subagents type=number min=0 step=1></span></div><div class=context-trust-subsection><h3>trusted context folders</h3><p class="muted small">Specific global roots that may lazy-load nested AGENTS.md/CLAUDE.md and all descendants.</p><div class="settings-warning context-trust-global-warning"><strong>Global-only policy.</strong> Project <code>.dreb/settings.json</code> cannot enable, disable, or extend nested-context trust. Only these global settings and the Files view can; a cloned repository cannot grant itself trust.</div><form class=trusted-context-folder-add><label for=trusted-context-folder-path>add folder by path</label><input id=trusted-context-folder-path type=text placeholder=/path/to/project><button type=submit class="btn btn-small"></button></form></div><div class=setting-row><span class=setting-label><span class=name>global expert nested-context trust</span><span class=hint>allow nested AGENTS.md/CLAUDE.md from any resolvable directory</span></span><span class=setting-control></span></div><div class="settings-warning context-expert-warning"><strong>Expert global override.</strong> Project <code>.dreb/settings.json</code> cannot enable, disable, or extend nested-context trust; a cloned repository cannot grant itself trust. When ON, nested instructions from any resolvable directory may load, including untrusted prompt-injection content. Leave this OFF and use trusted folders for projects you control.</div><div class=setting-row><span class=setting-label><span class=name>hide thinking blocks</span><span class=hint>hide raw thinking blocks in rendered transcripts</span></span><span class=setting-control>`),lp=J(`<section class=settings-section><h2>reliability</h2><div class=setting-row><span class=setting-label><span class=name>auto-compaction</span><span class=hint>summarize old context when the window fills</span></span><span class=setting-control></span></div><div class=setting-row><span class=setting-label><span class=name>auto-retry</span><span class=hint>retry transient stream errors (rate limits, 5xx)</span></span><span class=setting-control>`),up=J(`<p class="muted small settings-footnote">TUI-only settings (cursor, editor) are managed in the terminal /settings menu. The dashboard appearance (theme + light/dark mode) is set here, per-browser, and is independent of the TUI theme.`),dp=J(`<option>`),fp=J(`<p class="muted small">No agent definitions found.`),pp=J(`<div class=agent-model-editor><button type=button class="btn btn-small">add model…`),mp=J(`<div class=agent-model-row><div class=agent-model-summary><span class=agent-model-name></span><span class=agent-model-description></span></div><div class=agent-model-fallbacks></div><button type=button class="btn btn-small agent-model-edit">`),hp=J(`<span class="muted small">default`),gp=J(`<span class=agent-model-chip>. `),_p=J(`<p class="muted small">Using the default model.`),vp=J(`<div class=agent-model-entry><span></span><div class=agent-model-entry-actions><button type=button class="btn btn-small">↑</button><button type=button class="btn btn-small">↓</button><button type=button class="btn btn-small">×`),yp=J(`<p class="muted small trusted-context-empty">No trusted folders. Use the Files view to trust a project folder and its descendants.`),bp=J(`<div class=trusted-context-folder-row><code></code><span class=meta>and all descendants</span><button type=button class="btn btn-small btn-danger">`),xp=J(`<label class=checkbox-control><input type=checkbox><span>`),Sp=J(`<div class=device-row><span></span><span class=meta> · paired <!> · expires </span><span class=actions><button type=button class="btn btn-small btn-danger">unpair`),Cp=J(`<button type=button class="btn btn-small">cancel`),wp=J(`<button type=button class="btn btn-small btn-danger">restart`),Tp=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],Ep=[`all`,`one-at-a-time`],Dp=[`sse`,`websocket`,`auto`];function Op(e){return`${e.provider}/${e.id}`}function kp(e){let t=Op(e);return e.name?`${t} — ${e.name}`:t}function Ap(e){return e.defaultProvider&&e.defaultModel?`${e.defaultProvider}/${e.defaultModel}`:`choose model…`}function jp(e,t){return`${e.provider}/${e.id} ${e.name??``}`.toLowerCase().includes(t)}function Mp(){if(typeof Notification>`u`){if(window.isSecureContext===!1)return`insecure`;let e=/iPad|iPhone|iPod/.test(navigator.userAgent),t=navigator.standalone===!0||window.matchMedia?.(`(display-mode: standalone)`)?.matches===!0;return e&&!t?`ios-install`:`unsupported`}return Notification.permission}function Np(e){let t=new Map;for(let n of e){let e=t.get(n.provider)??[];e.push(n),t.set(n.provider,e)}return[...t.entries()].map(([e,t])=>({provider:e,models:t}))}function Pp(e,t,n){let r=t+n;if(r<0||r>=e.length)return e;let i=[...e];return[i[t],i[r]]=[i[r],i[t]],i}function Fp(e){return(()=>{var t=Rf();return t.addEventListener(`change`,t=>{e.onChange(t.currentTarget.value===`on`)===!1&&(t.currentTarget.value=e.value?`on`:`off`)}),j(()=>t.value=e.value?`on`:`off`),t})()}function Ip(e){let[t,n]=k(``),r=()=>new Set(e.selected??[]),i=N(()=>{let n=t().toLowerCase();return Np(e.models.filter(e=>!n||jp(e,n)).slice(0,100))}),a=e=>r().has(Op(e));return W(st,{get title(){return e.title},get onDismiss(){return e.onClose},class:`model-picker-modal`,get children(){return[(()=>{var e=zf(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e})(),(()=>{var t=Bf();return X(t,W(K,{get when(){return i().length>0},get fallback(){return Vf()},get children(){return W(G,{get each(){return i()},children:t=>(()=>{var n=Hf(),r=n.firstChild;return X(r,()=>t.provider),X(n,W(G,{get each(){return t.models},children:t=>(()=>{var n=Gf(),r=n.firstChild,i=r.nextSibling,o=i.nextSibling;return n.$$click=()=>e.onPick(t),X(r,()=>a(t)?`✓`:``),X(i,()=>t.id),X(n,W(K,{get when(){return t.name},get children(){var e=Uf();return X(e,()=>t.name),e}}),o),X(o,()=>t.provider),X(n,W(K,{get when(){return t.reasoning},get children(){return Wf()}}),null),j(e=>{var r=!!a(t),i=kp(t);return r!==e.e&&n.classList.toggle(`current`,e.e=r),i!==e.t&&Y(n,`title`,e.t=i),e},{e:void 0,t:void 0}),n})()}),null),n})()})}})),t})()]}})}function Lp(e){let[t,n]=k(),[r,i]=k([]),[a,o]=k(!1),[s,c]=k(),[l,u]=k(),[d,f]=k(),[p,m]=k(e.target===`scoped-models`?e.routeScopedModelsCwd:void 0);M(()=>{m(e.target===`scoped-models`?e.routeScopedModelsCwd:void 0)});let[h,g]=k(``),[_,v]=k(!1),[y,b]=k(Mp()),[x,{mutate:S,refetch:C}]=F(async()=>{n(void 0);try{return await $.settings()}catch(e){n(e instanceof Error?e.message:String(e));return}}),[w]=F(x,async()=>{try{let{models:e}=await $.settingsModels();return e}catch(e){return n(e instanceof Error?e.message:String(e)),[]}}),T=N(()=>{let t=new Set;for(let n of e.store.fleet().runtimes)t.add(n.cwd);for(let n of e.store.fleet().diskSessions)t.add(n.cwd);return[...t].sort((e,t)=>e.localeCompare(t))}),[E]=F(()=>({settings:x(),cwd:d()}),async({cwd:e})=>{if(!x())return[];try{let{agentTypes:t}=await $.agentTypes(e);return t}catch(e){return n(e instanceof Error?e.message:String(e)),[]}}),[D,{refetch:O}]=F(async()=>{let{devices:e}=await $.devices();return e}),[A,P]=k(),[I,L]=k(!1),[ee,te]=k(!1),[ne,re]=k(``),[ie,{mutate:ae}]=F(async()=>{try{return await $.pairingSettings()}catch(e){P(e instanceof Error?e.message:String(e));return}});M(()=>{let e=ie();e&&re(String(e.pairingTtlDays))});async function B(){P(void 0),L(!1);let e=Number(ne());if(!Number.isSafeInteger(e)||e<1||e>3650){P(`pairing lifetime must be a whole number from 1 through 3650 days`);return}te(!0);try{let t=await $.savePairingSettings(e);ae(t),L(!0)}catch(e){P(e instanceof Error?e.message:String(e))}finally{te(!1)}}let[oe,V]=k(),se;function H(){se&&clearTimeout(se),se=void 0}function ce(e){H();let t=Math.max(250,e??3e4)+100;se=setTimeout(()=>void le(),t)}async function le(){try{let e=await $.pairingCode();if(!e.enabled||!e.code){V(void 0),H();return}V(e),ce(e.expiresInMs)}catch(e){console.warn(`pairing code unavailable`,e),V(void 0),H()}}let[U]=F(async()=>{try{let{version:e}=await $.version();return e}catch{return}}),[ue]=F(async()=>{try{return await $.serverInfo()}catch{return}}),[de,fe]=k(!1),[pe,me]=k(!1),[he,ge]=k();async function _e(){ge(void 0),me(!0);try{await $.restartServer()}catch(e){ge(e instanceof Error?e.message:String(e)),me(!1)}}async function ve(e){n(void 0),i([]),o(!1);try{let t=await $.saveSettings(e);S(t),i(t.warnings??[]),o(!0),setTimeout(()=>o(!1),2e3)}catch(e){n(e instanceof Error?e.message:String(e)),await C()}}let ye=Promise.resolve(),be;function xe(){return be??x()?.subagentArbiter??{}}function Se(e){let t={...xe(),...e};be=t;let r=x();r&&S({...r,subagentArbiter:t}),ye=ye.then(async()=>{n(void 0),i([]),o(!1);try{let e=await $.saveSettings({subagentArbiter:t});i(e.warnings??[]),o(!0),setTimeout(()=>o(!1),2e3),be===t?(be=e.subagentArbiter??void 0,S(e)):S({...e,subagentArbiter:be})}catch(e){let r=e instanceof Error?e.message:String(e),i=await C();n(r),be===t?be=i?.subagentArbiter??void 0:i&&S({...i,subagentArbiter:be})}})}async function Ce(e,t){await ve({agentModels:{[e]:t}})}async function we(e){n(void 0),v(!0);try{let t=await $.trustContextFolder(e);S(t.settings),g(``)}catch(e){n(e instanceof Error?e.message:String(e))}finally{v(!1)}}async function Te(e){n(void 0),v(!0);try{let t=await $.removeTrustedContextFolder(e);S(t.settings)}catch(e){n(e instanceof Error?e.message:String(e))}finally{v(!1)}}function Ee(e){return x()?.agentModels?.[e]??[]}function De(e){let t=e.subagentArbiter;return t?.enabled===!0?typeof t.model!=`string`||!t.model.trim()?{ready:!1,message:`not ready — choose an arbiter model`}:t.thinking!==void 0&&!Tp.some(e=>e===t.thinking)?{ready:!1,message:`not ready — arbiter thinking setting is invalid`}:t.guidePath!==void 0&&typeof t.guidePath!=`string`?{ready:!1,message:`not ready — routing guide path is invalid`}:t.guidePath?.trim()?{ready:!0,message:`enabled — live scope and guide are validated before every child spawn`}:{ready:!0,message:`enabled — using ~/.dreb/agent/model-routing-guide.md; live scope/guide checked at dispatch`}:{ready:!1,message:`disabled`}}async function Oe(){typeof Notification>`u`||b(await Notification.requestPermission())}R(()=>void le()),z(H);let ke=()=>e.store.auth();return(()=>{var i=$f(),o=i.firstChild,v=o.firstChild.nextSibling.nextSibling,b=v.firstChild.nextSibling;b.firstChild;var S=b.nextSibling,C=S.firstChild.nextSibling.firstChild,k=S.nextSibling,M=k.firstChild.nextSibling.firstChild.firstChild,N=k.nextSibling,P=N.firstChild.nextSibling,F=N.nextSibling,R=F.firstChild,z=R.firstChild.nextSibling,te=R.nextSibling.firstChild.firstChild,ae=te.nextSibling,V=F.nextSibling.firstChild,se=V.firstChild.nextSibling,H=V.nextSibling.firstChild,ce=v.nextSibling,le=ce.firstChild.nextSibling,me=le.firstChild.firstChild.nextSibling,ge=le.nextSibling.firstChild.nextSibling.firstChild,ye=ge.nextSibling.nextSibling,be=ce.nextSibling,J=be.firstChild.nextSibling;return J.nextSibling,X(i,W(at,{get store(){return e.store},active:`settings`}),o),X(o,W(K,{get when(){return t()},get children(){var e=Kf();return X(e,t),e}}),v),X(o,W(K,{get when(){return r().length>0},get children(){var e=qf();return X(e,W(G,{get each(){return r()},children:e=>(()=>{var t=ep();return X(t,e),t})()})),e}}),v),X(o,W(K,{get when(){return a()},get children(){return Jf()}}),v),X(o,W(K,{get when(){return x()},get fallback(){return(()=>{var e=tp();return X(e,()=>t()?`Settings could not be loaded — see the error above.`:`Loading settings…`),e})()},children:t=>[(()=>{var e=np(),n=e.firstChild.nextSibling,r=n.firstChild.nextSibling.firstChild,i=n.nextSibling,a=i.firstChild,o=a.firstChild.nextSibling,s=a.nextSibling.firstChild,l=i.nextSibling.firstChild.nextSibling.firstChild;return r.$$click=()=>c({kind:`default`}),X(r,()=>Ap(t())),X(o,()=>Tp.join(` · `)),s.addEventListener(`change`,e=>ve({defaultThinkingLevel:e.currentTarget.value})),X(s,W(G,{each:Tp,children:e=>(()=>{var t=dp();return t.value=e,X(t,e),t})()})),l.addEventListener(`change`,e=>ve({transport:e.currentTarget.value})),X(l,W(G,{get each(){return[...Dp]},children:e=>(()=>{var t=dp();return t.value=e,X(t,e),t})()})),j(()=>s.value=t().defaultThinkingLevel??`off`),j(()=>l.value=t().transport??`sse`),e})(),W(tf,{get cwd(){return p()},get projectRoots(){return T()},get focused(){return e.target===`scoped-models`},onCwdChange:t=>{m(t),e.store.navigate({screen:`settings`,target:`scoped-models`,...t?{cwd:t}:{}})}}),(()=>{var e=rp(),r=e.firstChild.nextSibling.nextSibling,i=r.firstChild.nextSibling,a=r.nextSibling,o=a.firstChild.nextSibling.firstChild,s=a.nextSibling,l=s.firstChild.nextSibling.firstChild,u=s.nextSibling,d=u.firstChild.nextSibling.firstChild,f=u.nextSibling;return f.firstChild.nextSibling,X(i,W(Fp,{get value(){return t().subagentArbiter?.enabled===!0},onChange:e=>{let t=xe();return e&&(typeof t.model!=`string`||!t.model.trim())?(n(`Choose an exact Dispatch Arbiter model before enabling it.`),c({kind:`arbiter`}),!1):(Se({enabled:e}),!0)}})),o.$$click=()=>c({kind:`arbiter`}),X(o,(()=>{var e=q(()=>typeof t().subagentArbiter?.model==`string`);return()=>e()?t().subagentArbiter?.model:`choose model…`})()),l.addEventListener(`change`,e=>Se({thinking:e.currentTarget.value})),X(l,W(G,{each:Tp,children:e=>(()=>{var t=dp();return t.value=e,X(t,e),t})()})),d.addEventListener(`change`,e=>{Se({guidePath:e.currentTarget.value.trim()||void 0})}),X(f,()=>De(t()).message,null),j(()=>je(f,De(t()).ready?`settings-warning`:`muted small`)),j(()=>l.value=typeof t().subagentArbiter?.thinking==`string`&&Tp.some(e=>e===t().subagentArbiter?.thinking)?t().subagentArbiter?.thinking:`off`),j(()=>d.value=typeof t().subagentArbiter?.guidePath==`string`?t().subagentArbiter?.guidePath:``),e})(),(()=>{var e=ap();return e.firstChild.nextSibling,X(e,W(K,{get when(){return T().length>0},get children(){var e=ip(),t=e.firstChild.nextSibling.firstChild;return t.firstChild,t.addEventListener(`change`,e=>f(e.currentTarget.value||void 0)),X(t,W(G,{get each(){return T()},children:e=>(()=>{var t=dp();return t.value=e,X(t,e),t})()}),null),j(()=>Y(t,`title`,d()??`global/home only`)),j(()=>t.value=d()??``),e}}),null),X(e,W(K,{get when(){return(E()??[]).length>0},get fallback(){return fp()},get children(){return W(G,{get each(){return E()??[]},children:e=>{let n=()=>t().agentModels?.[e.name]??[];return(()=>{var t=mp(),r=t.firstChild,i=r.firstChild,a=i.nextSibling,o=r.nextSibling,s=o.nextSibling;return X(i,()=>e.name),X(a,()=>e.description),X(o,W(K,{get when(){return n().length>0},get fallback(){return hp()},get children(){return W(G,{get each(){return n()},children:(e,t)=>(()=>{var n=gp(),r=n.firstChild;return X(n,()=>t()+1,r),X(n,e,null),n})()})}})),s.$$click=()=>u(l()===e.name?void 0:e.name),X(s,()=>l()===e.name?`done`:`edit`),X(t,W(K,{get when(){return l()===e.name},get children(){var t=pp(),r=t.firstChild;return X(t,W(K,{get when(){return n().length>0},get fallback(){return _p()},get children(){return W(G,{get each(){return n()},children:(t,r)=>(()=>{var i=vp(),a=i.firstChild,o=a.nextSibling.firstChild,s=o.nextSibling,c=s.nextSibling;return X(a,t),o.$$click=()=>void Ce(e.name,Pp(n(),r(),-1)),s.$$click=()=>void Ce(e.name,Pp(n(),r(),1)),c.$$click=()=>void Ce(e.name,n().filter((e,t)=>t!==r())),j(e=>{var t=r()===0,i=r()===n().length-1;return t!==e.e&&(o.disabled=e.e=t),i!==e.t&&(s.disabled=e.t=i),e},{e:void 0,t:void 0}),i})()})}}),r),r.$$click=()=>c({kind:`agent`,agentName:e.name}),t}}),null),t})()}})}}),null),e})(),(()=>{var e=op(),n=e.firstChild.nextSibling,r=n.firstChild.nextSibling,i=n.nextSibling.firstChild.nextSibling;return X(r,W(Fp,{get value(){return t().imageAutoResize!==!1},onChange:e=>ve({imageAutoResize:e})})),X(i,W(Fp,{get value(){return t().blockImages===!0},onChange:e=>ve({blockImages:e})})),e})(),(()=>{var e=sp(),n=e.firstChild.nextSibling,r=n.firstChild.nextSibling.firstChild,i=n.nextSibling.firstChild.nextSibling.firstChild;return r.addEventListener(`change`,e=>ve({steeringMode:e.currentTarget.value})),X(r,W(G,{get each(){return[...Ep]},children:e=>(()=>{var t=dp();return t.value=e,X(t,e),t})()})),i.addEventListener(`change`,e=>ve({followUpMode:e.currentTarget.value})),X(i,W(G,{get each(){return[...Ep]},children:e=>(()=>{var t=dp();return t.value=e,X(t,e),t})()})),j(()=>r.value=t().steeringMode??`all`),j(()=>i.value=t().followUpMode??`all`),e})(),(()=>{var e=cp(),r=e.firstChild.nextSibling,i=r.firstChild.nextSibling,a=r.nextSibling,o=a.firstChild.nextSibling.firstChild,s=a.nextSibling,c=s.firstChild.nextSibling.nextSibling.nextSibling,l=c.firstChild.nextSibling,u=l.nextSibling,d=s.nextSibling,f=d.firstChild.nextSibling,p=d.nextSibling.nextSibling.firstChild.nextSibling;return X(i,W(Fp,{get value(){return t().enableSkillCommands!==!1},onChange:e=>ve({enableSkillCommands:e})})),o.addEventListener(`change`,e=>{let r=e.currentTarget.value.trim(),i=r.length>0?Number(r):NaN;if(!Number.isSafeInteger(i)||i<0){n(`Max concurrent subagents must be a non-negative whole number`),e.currentTarget.value=String(t().maxConcurrentSubagents??4);return}ve({maxConcurrentSubagents:i})}),X(s,W(K,{get when(){return(t().trustedContextFolders??[]).length>0},get fallback(){return yp()},get children(){return W(G,{get each(){return t().trustedContextFolders??[]},children:e=>(()=>{var t=bp(),n=t.firstChild,r=n.nextSibling.nextSibling;return X(n,e),r.$$click=()=>void Te(e),X(r,()=>_()?`revoking…`:`revoke trust`),j(()=>r.disabled=_()),t})()})}}),c),c.addEventListener(`submit`,e=>{e.preventDefault();let t=h().trim();t&&we(t)}),l.$$input=e=>g(e.currentTarget.value),X(u,()=>_()?`trusting…`:`trust folder`),X(f,W(Fp,{get value(){return t().autoLoadNestedContext===!0},onChange:e=>ve({autoLoadNestedContext:e})})),X(p,W(Fp,{get value(){return t().hideThinkingBlock===!0},onChange:e=>ve({hideThinkingBlock:e})})),j(()=>u.disabled=_()||!h().trim()),j(()=>o.value=t().maxConcurrentSubagents??4),j(()=>l.value=h()),e})(),(()=>{var e=lp(),n=e.firstChild.nextSibling,r=n.firstChild.nextSibling,i=n.nextSibling.firstChild.nextSibling;return X(r,W(Fp,{get value(){return t().compactionEnabled!==!1},onChange:e=>ve({compactionEnabled:e})})),X(i,W(Fp,{get value(){return t().retryEnabled!==!1},onChange:e=>ve({retryEnabled:e})})),e})(),up()]}),v),X(b,W(Lf,{}),null),C.addEventListener(`change`,e=>us(e.currentTarget.value)),M.addEventListener(`change`,e=>ls(e.currentTarget.checked)),X(P,W(G,{each:Go,children:e=>(()=>{var t=xp(),n=t.firstChild,r=n.nextSibling;return n.addEventListener(`change`,t=>ds(e,t.currentTarget.checked)),Y(n,`id`,`pref-tool-expand-${e}`),X(r,e),j(()=>n.checked=fs(e)),t})()})),X(z,(()=>{var e=q(()=>y()===`denied`);return()=>e()?`blocked by browser settings — re-enable notifications in site permissions`:q(()=>y()===`insecure`)()?`this page is not a secure context — notifications need HTTPS. Run the server with --https (tailscale cert <host>.<tailnet>.ts.net) and open it via the https:// hostname`:q(()=>y()===`ios-install`)()?`iOS notifications need the installed PWA — tap Share → Add to Home Screen, then open dreb from the home screen icon`:y()===`unsupported`?`browser notifications are unavailable in this environment`:`show a notification when the tab needs input (Android/desktop need the app installed on mobile; works over HTTPS or localhost)`})()),te.addEventListener(`change`,e=>{e.currentTarget.checked&&Oe()}),X(ae,()=>y()===`granted`?`enabled`:`enable notifications`),X(se,()=>ue()?.supervised?`restarts the server process (a supervisor respawns it with the latest build) — kills all running sessions`:`exits the server process — only auto-restarts if run under a supervisor (systemd, pm2, …); otherwise the dashboard goes down. kills all running sessions`),H.$$click=()=>fe(!0),X(H,()=>pe()?`restarting…`:`restart`),X(v,W(K,{get when(){return he()},get children(){var e=Kf();return X(e,he),e}}),null),X(me,()=>ke()?.mode===`local`?`local`:`host`),ge.$$input=e=>{re(e.currentTarget.value),L(!1)},ye.$$click=()=>void B(),X(ye,()=>ee()?`saving…`:`save`),X(ce,W(K,{get when(){return I()},get children(){return Yf()}}),null),X(ce,W(K,{get when(){return A()},get children(){var e=Kf();return X(e,A),e}}),null),X(ce,W(K,{get when(){return q(()=>!!oe()?.enabled)()&&oe()?.code},get children(){var e=Xf(),t=e.firstChild.nextSibling.firstChild;return X(t,()=>oe().code),e}}),null),X(ce,W(G,{get each(){return D()??[]},children:e=>(()=>{var t=Sp(),n=t.firstChild,r=n.nextSibling,i=r.firstChild,a=i.nextSibling;a.nextSibling;var o=r.nextSibling.firstChild;return X(n,()=>e.device??e.id),X(r,()=>e.identity,i),X(r,()=>ut(e.createdAt),a),X(r,()=>e.expiresAt.slice(0,10),null),o.$$click=async()=>{await $.unpair(e.id),await O()},t})()}),null),X(ce,W(K,{get when(){return(D()??[]).length===0},get children(){return Zf()}}),null),X(be,(()=>{var e=q(()=>!!ue()?.version);return()=>e()?` v${ue().version}`:q(()=>!!U())()?` v${U()}`:``})(),J),X(be,W(K,{get when(){return ue()?.startedAt},get children(){return[` · server build, up `,q(()=>ut(ue().startedAt))]}}),null),X(i,W(K,{get when(){return de()},get children(){return W(st,{title:`restart dashboard service?`,onDismiss:()=>fe(!1),get actions(){return[(()=>{var e=Cp();return e.$$click=()=>fe(!1),e})(),(()=>{var e=wp();return e.$$click=()=>{fe(!1),_e()},e})()]},get children(){var e=Qf();return e.firstChild.nextSibling.nextSibling,X(e,()=>ue()?.supervised?` A supervisor is detected — the server should respawn automatically with the latest build.`:` No supervisor was detected — the dashboard will NOT come back on its own; you'll need to relaunch it manually.`,null),e}})}}),null),X(i,W(K,{get when(){return s()},children:e=>{let t=()=>{let t=e();return t.kind==="default"?`select default model`:t.kind===`arbiter`?`select Dispatch Arbiter model`:`add model for ${t.agentName}`},n=()=>{let t=e();return t.kind==="default"?x()?.defaultProvider&&x()?.defaultModel?[`${x().defaultProvider}/${x().defaultModel}`]:[]:t.kind===`arbiter`?x()?.subagentArbiter?.model?[x().subagentArbiter.model]:[]:Ee(t.agentName)};return W(Ip,{get title(){return t()},get models(){return w()??[]},get selected(){return n()},onClose:()=>c(void 0),onPick:t=>{let n=e();if(c(void 0),n.kind==="default"){ve({defaultProvider:t.provider,defaultModel:t.id});return}if(n.kind===`arbiter`){Se({model:Op(t)});return}let r=Op(t),i=Ee(n.agentName);i.includes(r)||Ce(n.agentName,[...i,r])}})}}),null),j(e=>{var t=y()===`denied`||y()===`unsupported`||y()===`ios-install`||y()===`insecure`,n=pe(),r=ee()||ie.loading;return t!==e.e&&(te.disabled=e.e=t),n!==e.t&&(H.disabled=e.t=n),r!==e.a&&(ye.disabled=e.a=r),e},{e:void 0,t:void 0,a:void 0}),j(()=>C.value=cs()),j(()=>M.checked=ss()),j(()=>te.checked=y()===`granted`),j(()=>ge.value=ne()),i})()}Ae([`input`,`click`]);var Rp=J(`<div class="status-line arbitration-history">`),zp=J(`<p class=pair-error>`),Bp=J(`<div class=status-line><span class=working>● working`),Vp=J(`<output class=pending-chips aria-label="pending subagent steering messages">`),Hp=J(`<div class=composer><textarea placeholder="Steer this subagent…"></textarea><div class=composer-row><span class=muted>steering delivery: </span><button type=button class="btn btn-primary btn-small send">`),Up=J(`<div class=session-screen><header class=session-bar><div class=session-bar-inner><a class=back>← </a><span class=agent-type>subagent · </span><span class=title></span><span class=right></span></div></header><main class=chat><div class=chat-inner></div></main><footer class=dock><div class=dock-inner>`),Wp=J(`<span>arbiter: `),Gp=J(`<p class=muted>`),Kp=J(`<div class=readonly-note>`),qp=J(`<span class=pending-chip>steer: `);function Jp(e){let t=e.step===void 0?``:`step ${e.step}: `;return e.status===`failure`?`${t}failed — ${e.errorMessage??e.errorCode??`unknown error`}`:!e.final||e.changed.length===0?`${t}kept ${e.proposed.agent} · ${e.proposed.model} · ${e.proposed.thinking}`:`${t}${e.changed.join(`, `)} changed → ${e.final.agent} · ${e.final.model} · ${e.final.thinking}`}function Yp(e){let t=()=>e.store.sessions[e.sessionKey],n=N(()=>t()?.backgroundAgents[e.agentId]),r=()=>t()?.subagents[e.agentId],i=N(()=>e.store.fleet().runtimes.find(t=>t.key===e.sessionKey)),a=()=>i()?.state.sessionName??e.sessionKey,[o,s]=k(),[c,l]=k(``),[u,d]=k(!1),[f,p]=k(),[m,h]=k(),[g,_]=k({steering:[],followUp:[]}),v=()=>t()?.closed,y=()=>!v()&&n()?.status===`running`,b=()=>typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 700px)`).matches,x,S,C,w=zo({scroller:()=>x});R(()=>{let t=new AbortController;v()||e.store.hydrateSubagent(e.sessionKey,e.agentId,t.signal).catch(e=>{t.signal.aborted&&hl(e)||v()||s(e instanceof Error?e.message:String(e))}),z(()=>t.abort())}),M(()=>{e.store.revisions[e.sessionKey],w.notifyContentChanged()}),R(()=>{w.observeContent(C),w.observeViewport(x),x&&z(Vo(w,x,{keyboard:`window`}))}),z(()=>w.dispose());async function T(){if(y())try{let t=await $.subagentPending(e.sessionKey,e.agentId);h(t.steeringMode),_(t.pending),p(void 0)}catch(e){v()||p(e instanceof Error?e.message:String(e))}}R(()=>{T();let e=window.setInterval(()=>{y()&&T()},1e3);z(()=>window.clearInterval(e))}),M(()=>{c(),S&&queueMicrotask(()=>S&&Td(S))});async function E(){let t=c();if(!(!t.trim()||u()||!y())){d(!0),p(void 0);try{await $.steerSubagent(e.sessionKey,e.agentId,t),l(``),await T()}catch(e){v()||p(e instanceof Error?e.message:String(e))}finally{d(!1)}}}let D=N(()=>{let n=[],r=v();if(r&&!r.bannerDismissed){let t=[];r.cwd&&r.sessionFile&&t.push({label:r.resuming?`resuming…`:`Resume session`,run:()=>e.store.resumeClosedSession(e.sessionKey),disabled:r.resuming}),t.push({label:`Return to fleet`,run:()=>e.store.navigate({screen:`fleet`}),disabled:r.resuming}),n.push({key:`closed`,text:`session ${e.sessionKey} was closed${r.resumeError?`\nResume failed: ${r.resumeError}`:``}`,tone:r.resumeError?`error`:`warning`,onDismiss:()=>e.store.dismissClosedBanner(e.sessionKey),actions:t})}for(let r of t()?.statusEntries??[])r.dismissed||n.push({key:`status:${r.id}`,text:r.text,tone:r.tone,onDismiss:()=>e.store.dismissStatusBanner(e.sessionKey,r.id)});for(let r of t()?.toasts??[])n.push({key:`toast:${r.id}`,text:r.text,tone:r.tone,onDismiss:()=>e.store.dismissToast(r.id)});return n});return(()=>{var t=Up(),i=t.firstChild,s=i.firstChild.firstChild;s.firstChild;var d=s.nextSibling;d.firstChild;var p=d.nextSibling,h=p.nextSibling,_=i.nextSibling,w=_.firstChild,T=_.nextSibling.firstChild;X(s,a,null),X(d,()=>n()?.agentType??`unknown`,null),X(p,()=>n()?.taskSummary??e.agentId),X(h,W(K,{get when(){return y()},get fallback(){return W(rt,{get status(){return!v()&&n()?.status===`failed`?`error`:`idle`},get label(){return q(()=>!!v())()?`closed`:n()?.status}})},get children(){return W(rt,{status:`running`})}})),X(t,W(ct,{get banners(){return D()}}),_);var O=x;typeof O==`function`?Fe(O,_):x=_;var k=C;return typeof k==`function`?Fe(k,w):C=w,X(w,W(K,{get when(){return(n()?.arbitrations?.length??0)>0},get children(){var e=Rp();return X(e,W(G,{get each(){return n()?.arbitrations??[]},children:e=>(()=>{var t=Wp();return t.firstChild,X(t,()=>Jp(e),null),j(()=>je(t,e.status===`failure`?`error-reason`:`muted`)),t})()})),e}}),null),X(w,W(K,{get when(){return o()},get children(){var e=zp();return X(e,o),e}}),null),X(w,W(K,{get when(){return q(()=>!!r())()&&r().entries.length>0},get fallback(){return(()=>{var e=Gp();return X(e,()=>n()?`waiting for output from this agent…`:`no data for this agent — it may not have started writing its session log yet.`),e})()},get children(){return W(Oc,{get entries(){return r().entries},get who(){return n()?.agentType??`agent`},userLabel:`task from parent`,get resetKey(){return`${e.sessionKey}:${e.agentId}`},get imageScope(){return{runtimeKey:e.sessionKey,agentId:e.agentId}}})}}),null),X(T,W(K,{get when(){return r()?.streaming},get children(){return Bp()}}),null),X(T,W(K,{get when(){return y()},get fallback(){return(()=>{var e=Kp();return X(e,()=>v()?`This session is closed; the subagent transcript is read-only.`:`This subagent is no longer running; its transcript is read-only.`),e})()},get children(){return[W(K,{get when(){return f()},get children(){var e=zp();return X(e,f),e}}),W(K,{get when(){return g().steering.length>0},get children(){var e=Vp();return X(e,W(G,{get each(){return g().steering},children:e=>(()=>{var t=qp();return t.firstChild,X(t,e,null),t})()})),e}}),(()=>{var e=Hp(),t=e.firstChild,n=t.nextSibling.firstChild;n.firstChild;var r=n.nextSibling;t.$$keydown=e=>{e.key===`Enter`&&!e.shiftKey&&!b()&&(e.preventDefault(),E())},t.$$input=e=>{l(e.currentTarget.value),Td(e.currentTarget)};var i=S;return typeof i==`function`?Fe(i,t):S=t,X(n,()=>m()??`loading…`,null),r.$$click=()=>void E(),X(r,()=>u()?`sending…`:`steer ↵`),j(e=>{var n=u(),i=u()||c().trim().length===0;return n!==e.e&&(t.disabled=e.e=n),i!==e.t&&(r.disabled=e.t=i),e},{e:void 0,t:void 0}),j(()=>t.value=c()),e})()]}}),null),j(()=>Y(s,`href`,`#/session/${e.sessionKey}`)),t})()}Ae([`input`,`keydown`,`click`]);var Xp=Symbol(`store-raw`),Zp=Symbol(`store-node`),Qp=Symbol(`store-has`),$p=Symbol(`store-self`);function em(e){let t=e[p];if(!t&&(Object.defineProperty(e,p,{value:t=new Proxy(e,cm)}),!Array.isArray(e))){let n=Object.keys(e),r=Object.getOwnPropertyDescriptors(e),i=Object.getPrototypeOf(e),a=i!==null&&typeof e==`object`&&!!e&&!Array.isArray(e)&&i!==Object.prototype;if(a){let e=Object.getOwnPropertyDescriptors(i);n.push(...Object.keys(e)),Object.assign(r,e)}for(let i=0,o=n.length;i<o;i++){let o=n[i];a&&o===`constructor`||r[o].get&&Object.defineProperty(e,o,{configurable:!0,enumerable:r[o].enumerable,get:r[o].get.bind(t)})}}return t}function tm(e){let t;return typeof e==`object`&&!!e&&(e[p]||!(t=Object.getPrototypeOf(e))||t===Object.prototype||Array.isArray(e))}function nm(e,t=new Set){let n,r,i,a;if(n=e!=null&&e[Xp])return n;if(!tm(e)||t.has(e))return e;if(Array.isArray(e)){Object.isFrozen(e)?e=e.slice(0):t.add(e);for(let n=0,a=e.length;n<a;n++)i=e[n],(r=nm(i,t))!==i&&(e[n]=r)}else{Object.isFrozen(e)?e=Object.assign({},e):t.add(e);let n=Object.keys(e),o=Object.getOwnPropertyDescriptors(e);for(let s=0,c=n.length;s<c;s++)a=n[s],!o[a].get&&(i=e[a],(r=nm(i,t))!==i&&(e[a]=r))}return e}function rm(e,t){let n=e[t];return n||Object.defineProperty(e,t,{value:n=Object.create(null)}),n}function im(e,t,n){if(e[t])return e[t];let[r,i]=k(n,{equals:!1,internal:!0});return r.$=i,e[t]=r}function am(e,t){let n=Reflect.getOwnPropertyDescriptor(e,t);return!n||n.get||!n.configurable||t===p||t===Zp?n:(delete n.value,delete n.writable,n.get=()=>e[p][t],n)}function om(e){ee()&&im(rm(e,Zp),$p)()}function sm(e){return om(e),Reflect.ownKeys(e)}var cm={get(e,t,n){if(t===Xp)return e;if(t===p)return n;if(t===m)return om(e),n;let r=rm(e,Zp),i=r[t],a=i?i():e[t];if(t===Zp||t===Qp||t===`__proto__`)return a;if(!i){let n=Object.getOwnPropertyDescriptor(e,t);ee()&&(typeof a!=`function`||Object.prototype.hasOwnProperty.call(e,t))&&!(n&&n.get)&&(a=im(r,t,a)())}return tm(a)?em(a):a},has(e,t){return t===Xp||t===p||t===m||t===Zp||t===Qp||t===`__proto__`?!0:(ee()&&im(rm(e,Qp),t)(),t in e)},set(){return!0},deleteProperty(){return!0},ownKeys:sm,getOwnPropertyDescriptor:am};function lm(e,t,n,r=!1){if(t===`__proto__`||!r&&e[t]===n)return;let i=e[t],a=e.length;n===void 0?(delete e[t],e[Qp]&&e[Qp][t]&&i!==void 0&&e[Qp][t].$()):(e[t]=n,e[Qp]&&e[Qp][t]&&i===void 0&&e[Qp][t].$());let o=rm(e,Zp),s;if((s=im(o,t,i))&&s.$(()=>n),Array.isArray(e)&&e.length!==a){for(let t=e.length;t<a;t++)(s=o[t])&&s.$();(s=im(o,`length`,a))&&s.$(e.length)}(s=o[$p])&&s.$()}function um(e,t){let n=Object.keys(t);for(let r=0;r<n.length;r+=1){let i=n[r];dm(i)||lm(e,i,t[i])}}function dm(e){return e===`__proto__`||e===`constructor`||e===`prototype`}function fm(e,t){if(typeof t==`function`&&(t=t(e)),t=nm(t),Array.isArray(t)){if(e===t)return;let n=0,r=t.length;for(;n<r;n++){let r=t[n];e[n]!==r&&lm(e,n,r)}lm(e,`length`,r)}else um(e,t)}function pm(e,t,n=[]){let r,i=e;if(t.length>1){r=t.shift();let a=typeof r,o=Array.isArray(e);if(a===`string`&&(r===`__proto__`||t.length>1&&dm(r)))return;if(Array.isArray(r)){for(let i=0;i<r.length;i++)pm(e,[r[i]].concat(t),n);return}else if(o&&a===`function`){for(let i=0;i<e.length;i++)r(e[i],i)&&pm(e,[i].concat(t),n);return}else if(o&&a===`object`){let{from:i=0,to:a=e.length-1,by:o=1}=r;for(let r=i;r<=a;r+=o)pm(e,[r].concat(t),n);return}else if(t.length>1){pm(e[r],t,[r].concat(n));return}i=e[r],n=[r].concat(n)}let a=t[0];typeof a==`function`&&(a=a(i,n),a===i)||r===void 0&&a==null||(a=nm(a),r===void 0||tm(i)&&tm(a)&&!Array.isArray(a)?um(i,a):lm(e,r,a))}function mm(...[e,t]){let n=nm(e||{}),r=Array.isArray(n),i=em(n);function a(...e){I(()=>{r&&e.length===1?fm(n,e[0]):pm(n,e)})}return[i,a]}var hm=new WeakMap,gm={get(e,t){if(t===Xp)return e;let n=e[t];if(t===p||t===m||t===Zp||t===Qp||t===`__proto__`)return n;let r;return tm(n)?hm.get(n)||(hm.set(n,r=new Proxy(n,gm)),r):n},set(e,t,n){return lm(e,t,nm(n)),!0},deleteProperty(e,t){return lm(e,t,void 0,!0),!0}};function _m(e){return t=>{if(tm(t)){let n;(n=hm.get(t))||hm.set(t,n=new Proxy(t,gm)),e(n)}return t}}function vm(){let[e,t=``]=window.location.hash.replace(/^#\/?/,``).split(`?`,2),[n,...r]=e.split(`/`);if(n===`session`&&r[0])return r[1]===`subagent`&&r[2]?{screen:`subagent`,key:r[0],agentId:r[2]}:{screen:`session`,key:r[0]};if(n===`files`)return{screen:`files`,path:r.length?decodeURIComponent(r.join(`/`)):void 0};if(n===`memories`)return{screen:`memories`};if(n===`settings`){if(r[0]===`scoped-models`){let e=new URLSearchParams(t).get(`cwd`)||void 0;return{screen:`settings`,target:`scoped-models`,...e?{cwd:e}:{}}}return{screen:`settings`}}return n===`pairing`?{screen:`pairing`}:{screen:`fleet`}}function ym(e){return e.screen===`session`||e.screen===`subagent`?e.key:void 0}function bm(e){switch(e.screen){case`fleet`:return`#/`;case`session`:return`#/session/${e.key}`;case`subagent`:return`#/session/${e.key}/subagent/${e.agentId}`;case`files`:return e.path?`#/files/${encodeURIComponent(e.path)}`:`#/files`;case`memories`:return`#/memories`;case`settings`:return e.target===`scoped-models`?`#/settings/scoped-models${e.cwd?`?cwd=${encodeURIComponent(e.cwd)}`:``}`:`#/settings`;case`pairing`:return`#/pairing`}}var xm=2e3,Sm=3*1024*1024,Cm=xm,wm=Sm,Tm=3e4,Em=1e4,Dm=1e3,Om=3e4,km=5e3,Am=5*6e4,jm=2147e6,Mm=new TextEncoder;function Nm(e,t,n){e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`);let r=n.retryAttempt??0;if(n.isRetrying&&r>0){let t=e.entries.findLast(e=>e.kind===`assistant`&&e.stopReason===`error`),n=t?.errorMessage?` — ${t.errorMessage}`:``;e.statusEntries.push(nn({key:`retry`,text:`retrying (attempt ${r})${n}`,tone:`warning`}))}pn(e,t,n.isStreaming||n.isRetrying||n.isCompacting)}function Pm(){let[e,t]=mm({}),[n,r]=mm({}),[i,a]=k(vm()),[o,s]=k({runtimes:[],diskSessions:[]}),[c,l]=k(),[u,d]=k(),[f,p]=k(),[m,h]=k(!1),[g,_]=k(),[v,y]=k({state:`disconnected`,attempt:0}),b=()=>v().state===`connected`,[x,S]=k([]),C=new Map,w=new Map,T=new Map,E=0,D=0,O,A,j,M,N=!1,P=0,F=!1,I,L=0,R=new Map,z=new Map,ee=new Map,te=0,ne=0,re,ie,ae,B=0,oe=new Set,V=!1;function se(t,n){let r=ym(t);!r||r===ym(n)||!e[r]?.closed||be(r)}function H(){let e=vm();se(i(),e),a(e)}window.addEventListener(`hashchange`,H);function ce(e){se(i(),e),window.location.hash=bm(e)}function le(e){return n[e]??0}function U(e){return C.get(e)??0}function ue(e){return w.get(e)??0}function de(e){w.set(e,ue(e)+1)}function fe(e){C.set(e,U(e)+1)}function pe(e){return{revision:le(e),generation:U(e),epoch:E}}function me(e,t){return U(e)===t.generation&&E===t.epoch}function he(e,t){return le(e)===t.revision&&me(e,t)}function ge(e,t){t&&T.get(e)!==t||(T.delete(e),t&&(t.queued=[],t.queuedBytes=0))}function _e(e){r(e,le(e)+1)}function ve(n){e[n]||t(n,Gt(n))}function ye(e,n){ve(e),t(e,_m(n)),_e(e)}function be(e){ge(e),fe(e),w.delete(e),t(e,void 0),r(e,void 0),Sl(e)}function xe(){return ym(vm())}function Se(e,t=`info`){--D,S(n=>[...n,{id:D,text:e,tone:t}].slice(-20))}function Ce(){ie!==void 0&&clearTimeout(ie),ie=void 0,ae=void 0,B=0}function W(e){if(V||ae!==e)return;let t=e-Date.now();if(t<=0){ie=void 0,Ee(e);return}ie=setTimeout(()=>W(e),Math.min(t,jm))}function we(e){if(Ce(),!e)return;let t=Date.parse(e);if(!Number.isFinite(t)){Se(`Dashboard returned an invalid pairing-expiry check time`,`error`);return}ae=t,W(t)}function G(e){if(V||ae!==e)return;B+=1;let t=Math.min(10,B-1),n=Math.min(Am,km*2**t);ie=setTimeout(()=>{ie=void 0,!V&&ae===e&&Ee(e)},n)}function K(e){e.pairingExpiryWarning&&Se(`This device pairing expires on ${e.pairingExpiryWarning.expiresAt.slice(0,10)}. Re-pair before then to avoid losing remote access.`,`warning`)}function Te(e){_(e),K(e),we(e.pairingExpiryCheckAt)}async function Ee(e){try{let t=await $.auth();if(V)return;if(ae!==e){K(t);return}if((t.pairingExpiryCheckAt?Date.parse(t.pairingExpiryCheckAt):void 0)===e&&e<=Date.now()){_(t),K(t),G(e);return}Te(t)}catch(t){if(V||ae!==e)return;if(t?.status===401||t?.status===403){Ce(),_({mode:`remote`,needsPairing:t?.body?.needsPairing??!1,identity:t?.body?.identity,error:t?.message}),ce({screen:`pairing`});return}B===0&&Se(`Could not check pairing expiry: ${t instanceof Error?t.message:String(t)}`,`error`),G(e)}}function q(e){return R.get(e)??0}function De(e,t,n){let r=new Map(e.map(e=>[e.key,JSON.stringify(e.state)])),i=new Map(t.map(e=>[e.key,JSON.stringify(e.state)]));for(let e of new Set([...r.keys(),...i.keys()])){if(r.get(e)===i.get(e))continue;let t=q(e)+1;R.set(e,t),n===void 0?z.set(e,t):ee.set(e,Math.max(ee.get(e)??-1,n))}}function Oe(e,t){s(n=>{let r=e(n);return L+=1,De(n.runtimes,r.runtimes,t),r})}function ke(e){oe.clear(),Oe(()=>e)}function J(e,t){let n=new Set(e.filter(e=>!oe.has(e.key)).map(e=>e.key)),r=n.size!==o().runtimes.length||o().runtimes.some(e=>!n.has(e.key));Oe(t=>{let n=new Map(t.runtimes.map(e=>[e.key,e]));return{...t,runtimes:e.filter(e=>!oe.has(e.key)).map(e=>{let t=n.get(e.key);return{...e,state:{...e.state,contextUsage:t?.state.contextUsage??e.state.contextUsage},...t?.stats===void 0?{}:{stats:t.stats},...t?.lastAssistantText===void 0?{}:{lastAssistantText:t.lastAssistantText}}})}},t),r&&X().catch(()=>{})}function Ae(e,t){ge(e),fe(e),ye(e,e=>{let n=e.closed;e.closed={...t?.cwd||n?.cwd?{cwd:n?.cwd??t?.cwd}:{},...t?.state.sessionFile||n?.sessionFile?{sessionFile:n?.sessionFile??t?.state.sessionFile}:{},...n?.bannerDismissed?{bannerDismissed:!0}:{},...n?.resuming?{resuming:!0}:{},...n?.resumeError?{resumeError:n.resumeError}:{}},e.streaming=!1,e.compacting=!1,e.workingSince=void 0,e.workingText=void 0,e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`&&e.key!==`paused`&&e.key!==`compaction`),e.suggestedCommand=void 0,e.uiRequests=[];for(let t of Object.values(e.subagents))t.streaming=!1;cn(e)})}function Y(e,t,n=!0){let r=t??o().runtimes.find(t=>t.key===e),i=oe.has(e);return oe.add(e),i||Oe(t=>({...t,runtimes:t.runtimes.filter(t=>t.key!==e)})),xe()===e?Ae(e,r):be(e),i||!n?Promise.resolve():X()}async function je(e){let t=o().runtimes.find(t=>t.key===e);try{await $.stopRuntime(e)}catch(t){if(oe.has(e))return;throw t}await Y(e,t)}function Me(t,n){e[t]?.statusEntries.some(e=>e.id===n)&&ye(t,e=>{let t=e.statusEntries.find(e=>e.id===n);t&&(t.dismissed=!0)})}function Ne(t){e[t]?.closed&&ye(t,e=>{e.closed&&(e.closed.bannerDismissed=!0)})}async function Pe(t){let n=e[t]?.closed;if(!n||n.resuming)return;if(!n.cwd||!n.sessionFile){ye(t,e=>{e.closed&&(e.closed.resumeError=`This closed session has no captured resume path.`)});return}let r=n.cwd,i=n.sessionFile;ye(t,e=>{e.closed&&(e.closed.resuming=!0,e.closed.resumeError=void 0)});let a;try{a=await $.createRuntime(r,{sessionPath:i})}catch(n){let r=n instanceof Error?n.message:String(n);if(!e[t]?.closed)return;ye(t,e=>{e.closed&&(e.closed.resuming=!1,e.closed.resumeError=r,e.closed.bannerDismissed=!1)});return}Ie(a),X().catch(()=>{}),ce({screen:`session`,key:a.key})}function Fe(){let e=++te,t=L;return $.fleet().then(n=>{e!==te||t!==L||(ke(n),l(void 0))},n=>{throw e===te&&t===L&&l(n instanceof Error?n.message:String(n)),n})}function X(){let e=++ne;return $.sessions().then(t=>{e===ne&&(Oe(e=>({...e,diskSessions:t.sessions})),l(void 0))},t=>{throw e===ne&&l(t instanceof Error?t.message:String(t)),t})}function Ie(e){oe.delete(e.key),Oe(t=>{let n=t.runtimes.findIndex(t=>t.key===e.key);if(n===-1)return{...t,runtimes:[...t.runtimes,e]};let r=[...t.runtimes];return r[n]=e,{...t,runtimes:r}})}function Le(e,t,n,r){if(o().runtimes.some(t=>t.key===e)){if(n!==void 0&&q(e)!==n){let t=z.get(e)??0,i=ee.get(e);if(t>n||i===void 0||i>r)return}Oe(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:t}:n)}))}}function Re(e,t){Oe(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:{...n.state,model:t}}:n)}))}function ze(e,t){Oe(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:{...n.state,thinkingLevel:t}}:n)}))}function Be(e,t,n){return{...e,state:{...e.state,...t.contextUsage===void 0?{}:{contextUsage:t.contextUsage},messageCount:n?e.state.messageCount:t.totalMessages},stats:{tokensTotal:t.tokens.total,cost:t.cost}}}function Ve(e){let t=new AbortController,n,r=new Promise((r,i)=>{n=setTimeout(()=>{let n=Error(`Stats request for runtime ${e} timed out after ${Em} ms`);i(n),t.abort(n)},Em)});return Promise.race([$.stats(e,t.signal),r]).finally(()=>{n!==void 0&&clearTimeout(n)})}function He(){if(re)return re;let e=o().runtimes.map(e=>e.key),t=new Map(e.map(e=>[e,q(e)])),n=e.map(e=>Ve(e)),r=Promise.allSettled(n).then(n=>{let r=new Map,i=[];for(let[t,a]of n.entries())a.status===`fulfilled`?r.set(e[t],a.value):i.push(a.reason instanceof Error?a.reason.message:String(a.reason));r.size>0&&Oe(e=>({...e,runtimes:e.runtimes.map(e=>{let n=r.get(e.key),i=t.get(e.key),a=i===void 0||q(e.key)!==i;return n?Be(e,n,a):e})})),d(i.length>0?i.join(`; `):void 0)}).finally(()=>{re===r&&(re=void 0)});return re=r,r}function Ue(e){return Mm.encode(JSON.stringify(e)).byteLength}function We(e){e.queued=[],e.queuedBytes=0}function Ge(){j!==void 0&&clearTimeout(j),j=void 0}function Ke(){return Math.min(Om,Dm*2**Math.max(0,P-1))}function qe(){if(V||j!==void 0)return;P+=1;let e=Ke();h(!1),M||=v(),y(t=>t.state===`auth_failed`?t:(N=!0,{...t,state:`retrying`,attempt:Math.max(t.attempt,P),retryDelayMs:e,retryAt:Date.now()+e})),j=setTimeout(()=>{j=void 0,Qe()},e)}function Je(){let e=M,t=N;M=void 0,N=!1,!(!t||e?.state!==`connected`||v().state!==`retrying`)&&y({state:`connected`,attempt:e.attempt,lastAppliedSeq:e.lastAppliedSeq})}function Ye(e){let t=e.event?.type;t===`fleet_snapshot`?J(e.event.runtimes,e.seq):t===`disk_sessions_changed`?X().catch(()=>{}):t===`runtime_removed`?e.key&&Y(e.key).catch(()=>{}):e.key&&(ye(e.key,t=>vn(t,e.event)),t===`tasks_update`&&de(e.key))}function Xe(e){let t=e.subagent;ye(e.key,n=>{let r=e.messages;if(n.closed=void 0,n.entries=$t(r),n.tasks=(e.state.tasks??[]).map(e=>({...e})),n.streaming=e.state.isStreaming,n.compacting=e.state.isCompacting,n.sessionName=e.state.sessionName,n.model=e.state.model?.id,n.contextUsage=e.state.contextUsage,n.uiRequests=(e.pendingExtensionUiRequests??[]).map(e=>Wt(e)).filter(e=>e!==void 0),n.statusEntries=[],n.suggestedCommand=void 0,n.lastError=void 0,n.widgets={above:[],below:[]},n.toasts=[],n.title=void 0,n.composerPrefill=void 0,Nm(n,r,e.state),n.streaming?(n.workingSince=Date.now(),n.workingText=`working`):(n.workingSince=void 0,n.workingText=void 0),n.backgroundAgents=Object.fromEntries(e.backgroundAgents.map(e=>[e.agentId,e])),sn(n),t){let r=e.backgroundAgents.find(e=>e.agentId===t.agentId)??t.agent;n.backgroundAgents[t.agentId]=r,n.subagents[t.agentId]={agentId:t.agentId,entries:$t(t.messages),streaming:r.status===`running`}}cn(n)}),de(e.key)}function Ze(e,t){if(A!==e||e.state!==`active`||e.barrierSeq===void 0)return;Ge(),P=0,Je();let n=e.barrierSeq;I=n;let r=xe(),i=r?o().runtimes.find(e=>e.key===r):void 0;ke(t.fleet),l(void 0),t.active?Xe(t.active):r&&Y(r,i,!1).catch(()=>{});let a=[...e.queued].sort((e,t)=>e.seq-t.seq),s=t.active?.subagent;if(s&&t.active)for(let e of a)e.seq>s.barrierSeq&&e.seq<=n&&e.key===t.active.key&&e.event.type===`background_agent_event`&&String(e.event.agentId)===s.agentId&&Ye(e);for(let e of a)e.seq>n&&Ye(e);We(e),A=void 0,h(!1),p(void 0)}function Qe(e=!1){if(V)return Promise.resolve();if(O)return(e||A?.state===`failed`)&&(F=!0),O;Ge();let t=i(),n=t.screen===`session`||t.screen===`subagent`?t.key:void 0,r=t.screen===`subagent`?t.agentId:void 0,a={queued:[],queuedBytes:0,state:`active`,controller:new AbortController};A=a,E+=1;for(let[e,t]of T)ge(e,t);h(!0),p(void 0);let o=setTimeout(()=>a.controller.abort(`Dashboard recovery timed out`),Tm),s=$.resync(n,r,a.controller.signal).then(e=>{a.barrierSeq=e.barrierSeq,Ze(a,e)}).catch(e=>{if(A!==a)return;a.state=`failed`,We(a);let t=a.controller.signal.reason;p(typeof t==`string`?t:e instanceof Error?e.message:String(e)),qe(),j===void 0&&h(!1)}).finally(()=>{clearTimeout(o),O===s&&(O=void 0),!V&&F&&(F=!1,Qe())});return O=s,s}function $e(){return Qe(!0)}function et(e){if(e.event?.type===`dashboard_resync`){Qe(!0);return}if(A){if(A.state===`failed`)throw qe(),Error(`Dashboard recovery is failed; refusing to acknowledge live envelope before resync succeeds`);let t=Ue(e);if(A.queued.length>=xm||A.queuedBytes+t>Sm){We(A),A.state=`failed`;let e=`Dashboard recovery queue overflowed; waiting for a newer authoritative snapshot`;throw p(e),A.controller.abort(e),qe(),j===void 0&&h(!1),Error(e)}A.queued.push(e),A.queuedBytes+=t;return}if(I!==void 0&&e.seq<=I)return;let t=e.key?T.get(e.key):void 0;if(t){let n=Ue(e);if(t.queued.length>=Cm||t.queuedBytes+n>wm)throw ge(e.key,t),Error(`Dashboard hydration queue overflowed for ${e.key}; refusing an incomplete snapshot replay`);t.queued.push(e),t.queuedBytes+=n}Ye(e)}let tt;async function nt(){V=!1;try{Te(await $.auth())}catch(e){_({mode:`remote`,needsPairing:e?.body?.needsPairing??!1,identity:e?.body?.identity,error:e?.message}),ce({screen:`pairing`});return}await Fe().catch(()=>{}),tt=St({onEnvelope:et,onAuthStatus:Te,onStatusChange:e=>{N=!1,M=e.state===`connected`?e:void 0,y(e)},onRecovery:()=>{Qe()}})}function rt(){V=!0,tt?.(),Ce(),Ge(),M=void 0,N=!1,F=!1;let e=A;A=void 0,e&&We(e),e?.controller.abort(`Dashboard stopped`);for(let[e,t]of T)ge(e,t)}function it(t){if(x().some(e=>e.id===t)){S(e=>e.filter(e=>e.id!==t));return}for(let[n,r]of Object.entries(e))if(r.toasts.some(e=>e.id===t)){ye(n,e=>yn(e,t));return}}async function at(e,t){ge(e);let n=q(e),r={guard:pe(e),queued:[],queuedBytes:0};T.set(e,r);let i=()=>ge(e,r);t?.addEventListener(`abort`,i,{once:!0}),t?.aborted&&i();try{let i=await $.hydrate(e,t);if(t?.aborted||T.get(e)!==r||!me(e,r.guard))return;ye(e,e=>{let t=i.messages;e.closed=void 0,e.entries=$t(t),e.backgroundAgents=Object.fromEntries(i.backgroundAgents.map(e=>[e.agentId,e])),sn(e),e.streaming=i.state.isStreaming,e.compacting=i.state.isCompacting,e.tasks=(i.state.tasks??[]).map(e=>({...e})),i.state.isStreaming?(e.workingSince=Date.now(),e.workingText=`working`):(e.workingSince=void 0,e.workingText=void 0),e.uiRequests=(i.pendingExtensionUiRequests??[]).map(e=>Wt(e)).filter(e=>e!==void 0),Nm(e,t,i.state),cn(e)}),de(e),Le(e,i.state,n,i.barrierSeq);for(let e of[...r.queued].sort((e,t)=>e.seq-t.seq))e.seq>i.barrierSeq&&Ye(e)}finally{t?.removeEventListener(`abort`,i),ge(e,r)}}async function ot(e,t,n){let r=pe(e),{agent:i,messages:a}=await $.subagentMessages(e,t,n);n?.aborted||!he(e,r)||ye(e,e=>{e.backgroundAgents[t]=i;let n=e.subagents[t];n||(n={agentId:t,entries:[],streaming:i.status===`running`},e.subagents[t]=n),a.length>0&&(n.entries=$t(a)),n.streaming=i.status===`running`})}return{sessions:e,revisions:n,route:i,navigate:ce,fleet:o,fleetError:c,fleetStatsError:u,refreshFleet:Fe,refreshDiskSessions:X,refreshFleetStats:He,removeRuntime:Y,stopRuntime:je,resumeClosedSession:Pe,dismissClosedBanner:Ne,dismissStatusBanner:Me,upsertRuntime:Ie,setRuntimeModel:Re,setRuntimeThinkingLevel:ze,resyncing:m,resyncError:f,retryResync:$e,auth:g,connected:b,connection:v,notices:x,start:nt,stop:rt,dismissToast:it,resolveUiRequest(e,t){ye(e,e=>bn(e,t))},hydrateSession:at,hydrateSubagent:ot}}var Fm=5e3;function Im(e){let t;return Promise.race([e,new Promise((e,n)=>{t=setTimeout(()=>n(Error(`service worker not ready`)),Fm)})]).finally(()=>{t&&clearTimeout(t)})}function Lm(){let e=Pm();R(()=>{e.start(),`serviceWorker`in navigator&&(navigator.serviceWorker.addEventListener(`message`,t=>{if(t.data?.type===`navigate-session`&&typeof t.data.sessionKey==`string`){let n=t.data.sessionKey,r=!!e.sessions[n]||e.fleet().runtimes.some(e=>e.key===n);e.navigate(r?{screen:`session`,key:n}:{screen:`fleet`})}}),navigator.serviceWorker.register(`./sw.js`).catch(e=>{console.warn(`dashboard: service worker registration failed`,e)}))}),z(()=>e.stop());let t=new Set,n=new Set,r=t=>!!(e.fleet().runtimes.find(e=>e.key===t)?.needsAttention||e.sessions[t]?.needsAttention);M(()=>{let i=new Map;for(let t of e.fleet().runtimes)t.needsAttention&&i.set(t.key,{name:t.state.sessionName??t.state.sessionId.slice(0,8),reason:`needs attention`});for(let t of Object.values(e.sessions))t.needsAttention&&i.set(t.key,{name:t.sessionName??t.title??t.key,reason:ln(t.uiRequests)??t.statusEntries.find(e=>e.tone===`error`)?.text??`needs attention`});let a=i.size>0,o=e.route(),s=o.screen===`session`||o.screen===`subagent`?o.key:void 0,c=s?e.sessions[s]:void 0,l=s?e.fleet().runtimes.find(e=>e.key===s):void 0,u=c?.title??c?.sessionName??l?.state.sessionName,d=u?`${u} — dreb`:`dreb`;document.title=a?`◆ ${d}`:d;for(let[e,a]of i)n.has(e)||t.has(e)||typeof Notification<`u`&&Notification.permission===`granted`&&document.visibilityState!==`visible`&&`serviceWorker`in navigator&&(t.add(e),Im(navigator.serviceWorker.ready).then(t=>t.showNotification(`dreb — ${a.name}`,{body:a.reason,tag:e,data:{sessionKey:e}})).then(()=>{t.delete(e),r(e)?n.add(e):n.delete(e)}).catch(n=>{t.delete(e),console.warn(`dashboard: showNotification failed`,n)}));for(let e of[...n])i.has(e)||n.delete(e);for(let e of[...t])i.has(e)||t.delete(e)});let i=()=>{let t=e.route(),n=t.screen===`session`||t.screen===`subagent`?t.key:void 0;return[...Object.values(e.sessions).flatMap(e=>e.key===n?[]:e.toasts.map(t=>({...t,sessionKey:e.key}))),...e.notices()].slice(-5)};return[W(Te,{get fallback(){return W(ir,{store:e})},get children(){return[W(Ee,{get when(){return e.route().screen===`session`},get children(){return W(Fd,{store:e,get sessionKey(){return e.route().key}})}}),W(Ee,{get when(){return e.route().screen===`subagent`},get children(){return W(Yp,{store:e,get sessionKey(){return e.route().key},get agentId(){return e.route().agentId}})}}),W(Ee,{get when(){return e.route().screen===`files`},get children(){return W(Ht,{store:e,get initialPath(){return e.route().path}})}}),W(Ee,{get when(){return e.route().screen===`memories`},get children(){return W(il,{store:e})}}),W(Ee,{get when(){return e.route().screen===`settings`},get children(){return W(Lp,{store:e,get target(){return e.route().target},get routeScopedModelsCwd(){return e.route().cwd}})}}),W(Ee,{get when(){return e.route().screen===`pairing`},get children(){return W(ul,{store:e})}})]}}),W(lt,{get toasts(){return i()},onDismiss:t=>e.dismissToast(t)})]}Mf();var Rm=document.getElementById(`root`);if(!Rm)throw Error(`dashboard: #root element missing from index.html`);ke(()=>W(Lm,{}),Rm);
@@ -55,8 +55,8 @@
55
55
  } catch (e) {}
56
56
  })();
57
57
  </script>
58
- <script type="module" crossorigin src="./assets/index-Bm82Kixv.js"></script>
59
- <link rel="stylesheet" crossorigin href="./assets/index-I141jIAM.css">
58
+ <script type="module" crossorigin src="./assets/index-v-qkz6Ni.js"></script>
59
+ <link rel="stylesheet" crossorigin href="./assets/index-CJ1HcdsU.css">
60
60
  </head>
61
61
  <body>
62
62
  <div id="root"></div>
package/dist/static/sw.js CHANGED
@@ -14,7 +14,7 @@
14
14
  */
15
15
 
16
16
  // Replaced at build time; see vite.config.ts generateBundle hook.
17
- const SW_CACHE_VERSION = "2.59.0";
17
+ const SW_CACHE_VERSION = "2.59.1";
18
18
  const SHELL_CACHE = `dreb-dashboard-shell-v${SW_CACHE_VERSION}`;
19
19
 
20
20
  // Shell assets (HTML, JS, CSS) get a network-first strategy. The dashboard
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dreb/dashboard",
3
- "version": "2.59.0",
3
+ "version": "2.59.1",
4
4
  "description": "Web dashboard for dreb — fleet overview, chat parity, subagent observability",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- :root{--bg:#fff;--text:#000;--border:#e0e0e0;--muted:#666;--status-running:#00871f;--status-attention:#8a5400;--status-idle:#666;--status-error:#d10041;--mono-font:"IBM Plex Mono", "Courier New", monospace;--fs-small:12px;--fs-secondary:13px;--fs-body:14px;--fs-h3:16px;--fs-h2:18px;--fs-h1:24px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius:3px;--hairline:1px solid var(--border)}@media (prefers-color-scheme:dark){:root{--bg:#000;--text:#fff;--border:#333;--muted:#999;--status-running:#00e436;--status-attention:#ffa300;--status-idle:#999;--status-error:#ff004d}}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius)}::-webkit-scrollbar-thumb:hover{background:var(--muted)}::-webkit-scrollbar-corner{background:0 0}body{background:var(--bg);color:var(--text);font-family:var(--mono-font);font-size:var(--fs-body);overflow-wrap:break-word;line-height:1.6;overflow-x:hidden}h1{font-size:var(--fs-h1);font-weight:500}h2{font-size:var(--fs-h2);font-weight:500}h3{font-size:var(--fs-h3);font-weight:500}a{color:var(--text);cursor:pointer}a:hover{color:var(--muted)}code,pre{font-family:var(--mono-font);font-size:var(--fs-secondary)}pre{border:var(--hairline);border-radius:var(--radius);padding:var(--space-3);white-space:pre-wrap;word-break:break-word;overflow-x:auto}::placeholder{color:var(--muted);opacity:1}:focus-visible{outline:1px solid var(--text);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:var(--fs-small)}.container{width:100%;max-width:1200px;padding:var(--space-4) var(--space-5);margin:0 auto}.topbar{border-bottom:var(--hairline);padding-top:env(safe-area-inset-top,0px)}.topbar-inner{max-width:1200px;padding:var(--space-3) var(--space-5);align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:0 auto;display:flex}.wordmark{font-size:var(--fs-h2);letter-spacing:.04em;font-weight:600;text-decoration:none}.topbar nav{gap:var(--space-4);align-items:center;display:flex}.topbar nav a{padding:var(--space-1) 0;border-bottom:1px solid #0000;text-decoration:none}.topbar nav a:hover{color:var(--text);border-bottom-color:var(--text)}.topbar nav a[aria-current=page]{border-bottom-color:var(--text)}.topbar-spacer{margin-left:auto}.connection-indicator{align-items:center;gap:var(--space-2);display:inline-flex}footer{border-top:var(--hairline);margin-top:var(--space-7);padding:var(--space-4) 0;font-size:var(--fs-secondary);color:var(--muted)}.btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);cursor:pointer;font-size:var(--fs-body);text-decoration:none;transition:border-color .2s;display:inline-flex}.btn:hover{border-color:var(--text);color:var(--text)}.btn-primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn-primary:hover{color:var(--bg)}.btn-danger:hover{border-color:var(--status-error);color:var(--status-error)}.btn-small{padding:2px var(--space-2);font-size:var(--fs-small)}.chip{padding:1px var(--space-2);border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-small);white-space:nowrap;align-items:center;gap:6px;line-height:1.5;display:inline-flex}.chip .dot{font-size:10px}.mode-badge{min-width:0;max-width:min(16rem,100%)}.mode-badge-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chip-running{border-color:var(--status-running);color:var(--status-running)}.chip-attention{background:var(--status-attention);border-color:var(--status-attention);color:var(--bg);font-weight:600}.chip-idle{border-color:var(--border);color:var(--status-idle)}.chip-error{border-color:var(--status-error);color:var(--status-error)}.chip-plain{border-color:var(--border);color:var(--muted)}.card{border:var(--hairline);border-radius:var(--radius);padding:var(--space-4);transition:border-color .2s}a.card{text-decoration:none;display:block}.card:hover{border-color:var(--text);color:var(--text)}.input,.textarea,.select{width:100%;padding:var(--space-2) var(--space-3);border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:var(--fs-body);transition:border-color .2s}.input:hover,.textarea:hover,.select:hover{border-color:var(--text)}.textarea{resize:vertical;min-height:72px;line-height:1.6}.field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field>label{font-size:var(--fs-secondary)}.field>.hint{font-size:var(--fs-small);color:var(--muted)}.toggle{border:var(--hairline);border-radius:var(--radius);display:inline-flex;overflow:hidden}.toggle span{padding:2px var(--space-3);font-size:var(--fs-small);color:var(--muted)}.toggle .on{background:var(--text);color:var(--bg)}.table{border-collapse:collapse;width:100%;font-size:var(--fs-body)}.table th{text-align:left;font-weight:500;font-size:var(--fs-small);color:var(--muted);padding:var(--space-2) var(--space-3);border-bottom:var(--hairline)}.table td{padding:var(--space-2) var(--space-3);border-bottom:var(--hairline)}.modal-backdrop{padding:var(--space-4);background:#80808040;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--text);border-radius:var(--radius);width:100%;max-width:480px;padding:var(--space-5)}.modal h3{margin-bottom:var(--space-3)}.modal-actions{gap:var(--space-2);margin-top:var(--space-5);justify-content:flex-end;display:flex}.row{align-items:center;gap:var(--space-2);display:flex}.stack{gap:var(--space-2);flex-direction:column;display:flex}.hidden{display:none}:root{--syntax-comment:green;--syntax-keyword:#00f;--syntax-string:#a31515;--syntax-number:#098658;--syntax-function:#795e26;--syntax-type:#267f99;--syntax-variable:#001080;--syntax-operator:#000;--syntax-punctuation:#000}@media (prefers-color-scheme:dark){:root{--syntax-comment:#6a9955;--syntax-keyword:#569cd6;--syntax-string:#ce9178;--syntax-number:#b5cea8;--syntax-function:#dcdcaa;--syntax-type:#4ec9b0;--syntax-variable:#9cdcfe;--syntax-operator:#d4d4d4;--syntax-punctuation:#d4d4d4}}html,body,#root{width:100%;min-width:0;max-width:100%}#root{flex-direction:column;min-height:100vh;display:flex}.screen-fill{flex-direction:column;flex:1;min-height:0;display:flex}.fleet-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin:var(--space-5) 0 var(--space-6);flex-wrap:wrap;display:flex}.live-sessions{margin-bottom:var(--space-6)}.past-sessions-head{font-size:var(--fs-h3);color:var(--muted);border-bottom:var(--hairline);padding-bottom:var(--space-2);margin-bottom:var(--space-4)}.project-group{margin-bottom:var(--space-5)}.group-head{align-items:baseline;gap:var(--space-3);padding-bottom:var(--space-1);margin-bottom:var(--space-1);flex-wrap:wrap;display:flex}.group-head h2,.group-head h3{font-size:var(--fs-secondary);font-weight:600}.group-head .btn{margin-left:auto}.session-grid{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.session-card{border:var(--hairline);border-radius:var(--radius);min-width:0;padding:var(--space-4);gap:var(--space-2);flex-direction:column;transition:border-color .2s;display:flex}.session-card:hover{border-color:var(--text)}.session-card.attention{border-color:var(--status-attention)}.session-card.error{border-color:var(--status-error)}.session-title{justify-content:space-between;align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.session-title .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.session-project{font-size:var(--fs-small);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attention-reason{font-weight:600;font-size:var(--fs-secondary)}.error-reason{color:var(--status-error);font-size:var(--fs-secondary)}.activity{font-size:var(--fs-secondary);color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.subagents{border-left:var(--hairline);padding-left:var(--space-3);font-size:var(--fs-small);flex-direction:column;gap:2px;display:flex}.subagents .agent-line{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.subagents .agent-line .live{color:var(--status-running)}.session-meta{font-size:var(--fs-small);color:var(--muted);gap:var(--space-1);flex-wrap:wrap;display:flex}.session-actions{gap:var(--space-2);padding-top:var(--space-2);flex-wrap:wrap;margin-top:auto;display:flex}.disk-row{align-items:center;gap:var(--space-3);border-bottom:var(--hairline);font-size:var(--fs-secondary);padding:2px 0;display:flex}.disk-row .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.disk-row .meta{color:var(--muted);font-size:var(--fs-small);white-space:nowrap;margin-left:auto}.disk-row .actions{gap:var(--space-2);flex-shrink:0;display:flex}.disk-more{margin-top:var(--space-1);font-size:var(--fs-small);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline;display:inline-block}.disk-more:hover{color:var(--text)}.empty-state{border:var(--hairline);border-radius:var(--radius);padding:var(--space-6);text-align:center;color:var(--muted);margin-top:var(--space-6)}.session-screen{flex-direction:column;width:100%;min-width:0;max-width:100%;height:100dvh;display:flex;overflow:hidden}.session-bar{border-bottom:var(--hairline);padding-top:env(safe-area-inset-top,0px);flex-shrink:0}.session-bar-inner{width:100%;min-width:0;max-width:960px;padding:var(--space-2) var(--space-4);align-items:center;gap:var(--space-3);flex-wrap:wrap;margin:0 auto;display:flex}.session-bar .back{white-space:nowrap;text-decoration:none}.session-bar .title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.session-bar .project,.session-bar .agent-type{color:var(--muted);font-size:var(--fs-small);white-space:nowrap}.session-bar .right{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;margin-left:auto;display:flex}.session-connection-indicator{flex-wrap:wrap;flex:0 auto;min-width:0}.session-connection-indicator .chip,.session-connection-indicator .btn{font-size:var(--fs-small);padding:1px var(--space-2)}.session-info-bar{font-size:var(--fs-small);color:var(--muted);justify-content:space-between;padding-top:0}.session-info-left{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.session-info-right{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;margin-left:auto;display:flex}.stats-trigger{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.stats-popover{right:max(var(--space-4), calc((100vw - 960px) / 2 + var(--space-4)));z-index:10;border:var(--hairline);border-radius:var(--radius);background:var(--bg);padding:var(--space-3);min-width:280px;position:absolute;top:78px;box-shadow:0 12px 32px #0000002e}.stats-grid{gap:var(--space-1) var(--space-3);font-size:var(--fs-small);grid-template-columns:1fr auto;display:grid}.stats-grid span{color:var(--muted)}.session-info-right span+span:before{content:"·";margin-right:var(--space-2);color:var(--muted)}.switcher{min-width:0;padding:1px var(--space-2);border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-small);background:var(--bg);color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-family:inherit;transition:border-color .2s;display:inline-flex}.switcher:hover{border-color:var(--text)}.switcher .label{color:var(--muted)}.switcher .value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.model-switcher{max-width:min(340px,45vw)}.session-bar.collapsed{background:var(--bg)}.session-bar-main .chrome-toggle{margin-left:auto}.chrome-toggle{border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--muted);font:inherit;font-size:var(--fs-small);padding:1px var(--space-2);cursor:pointer;white-space:nowrap}.chrome-toggle:hover{border-color:var(--text);color:var(--text)}.chat{flex:1;min-height:0;overflow-y:auto}.chat-inner{max-width:960px;padding:var(--space-4);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.assistant-turn{border-left:var(--hairline);padding-left:var(--space-3);gap:var(--space-3);flex-direction:column;display:flex}.entry{min-width:0}.entry-head{font-size:var(--fs-small);color:var(--muted);margin-bottom:var(--space-1);gap:var(--space-2);align-items:baseline;display:flex}.entry-action{color:var(--muted);font:inherit;font-size:var(--fs-small);cursor:pointer;opacity:.65;background:0 0;border:none;padding:0}.entry-action:hover{opacity:1;text-decoration:underline}.skill-badge,.queued-kind{border:var(--hairline);border-radius:var(--radius);padding:0 var(--space-1);font-size:var(--fs-small);color:var(--muted)}.entry.user{align-self:flex-end;max-width:85%}.entry.user .entry-body{border:1px solid var(--text);border-radius:var(--radius);padding:var(--space-2) var(--space-3);white-space:pre-wrap}.entry.user .entry-head{justify-content:flex-end}.entry.user>.tool-images{margin-top:var(--space-2)}.entry.assistant{max-width:100%}.entry.assistant .entry-body{white-space:normal}.assistant-error{color:var(--status-error);font-size:var(--fs-secondary);margin:var(--space-2) 0 0;white-space:pre-wrap;font-weight:500}.markdown-body{color:var(--text)}.markdown-body,.markdown-body *{-webkit-text-fill-color:currentColor}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body pre,.markdown-body blockquote,.markdown-body table{margin:0 0 var(--space-2)}.markdown-body :last-child{margin-bottom:0}.markdown-body ul,.markdown-body ol{padding-left:var(--space-5)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{font-size:var(--fs-h3);margin:var(--space-2) 0 var(--space-1);font-weight:500}.markdown-body code{border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-secondary);padding:0 4px}.markdown-body pre{background:var(--bg);margin-top:var(--space-1)}.markdown-body pre code{border:none;padding:0}.markdown-body a{text-decoration:underline}.markdown-body table{border-collapse:collapse;width:100%;font-size:var(--fs-secondary)}.markdown-body th,.markdown-body td{border:var(--hairline);padding:var(--space-1) var(--space-2);text-align:left}.markdown-body blockquote{border-left:var(--hairline);padding-left:var(--space-3);color:var(--muted)}.entry-body code{border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-secondary);padding:0 4px}details.thinking{border-left:var(--hairline);padding-left:var(--space-3);margin-bottom:var(--space-3)}details.thinking summary{cursor:pointer;font-size:var(--fs-small);color:var(--muted);-webkit-user-select:none;user-select:none;list-style:none}details.thinking summary:before{content:"▸ "}details.thinking[open] summary:before{content:"▾ "}details.thinking .thinking-body{color:var(--muted);font-size:var(--fs-secondary);padding-top:var(--space-1);white-space:pre-wrap}.tool{border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-secondary)}.tool summary{cursor:pointer;-webkit-user-select:none;user-select:none;gap:var(--space-2);padding:var(--space-1) var(--space-3);align-items:baseline;list-style:none;display:flex}.tool summary:before{content:"▸";color:var(--muted)}.tool[open] summary:before{content:"▾"}.tool .tool-name{font-weight:600}.tool .tool-arg{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tool .tool-status{white-space:nowrap;font-size:var(--fs-small);color:var(--muted);margin-left:auto}.tool .tool-status.running{color:var(--status-running)}.tool .tool-status.error{color:var(--status-error)}.tool .tool-command{border-top:var(--hairline);padding:var(--space-2) var(--space-3) 0;overflow-x:auto}.tool .tool-command code{border:var(--hairline);border-radius:var(--radius);padding:var(--space-1) var(--space-2);white-space:pre-wrap;display:block}.tool .tool-input{border-top:var(--hairline);padding:var(--space-2) var(--space-3);overflow-x:auto}.tool .tool-input-label{font-size:var(--fs-small);color:var(--muted);margin-bottom:var(--space-1);display:block}.tool .tool-input pre{font-size:var(--fs-small);white-space:pre-wrap;border:none;padding:0}.tool .suggested-command{margin-top:var(--space-1)}.tool .suggested-command code{border:var(--hairline);border-radius:var(--radius);padding:1px var(--space-2)}.tool .tool-result{border-top:var(--hairline);padding:var(--space-2) var(--space-3);overflow-x:auto}.tool-output-truncated,.transcript-window-control{color:var(--muted);font-size:var(--fs-small);margin-bottom:var(--space-2)}.transcript-window-control{text-align:center}.tool .tool-command+.tool-result,.tool .tool-input+.tool-result{border-top:none}.tool-images{gap:var(--space-3);flex-wrap:wrap;display:flex}.tool-image-item{gap:var(--space-2);max-width:100%;display:grid}.tool-image-button{appearance:none;color:inherit;cursor:zoom-in;text-align:left;background:0 0;border:0;padding:0}.tool-image-button:disabled{cursor:default;opacity:1}.tool-image{object-fit:contain;border:var(--hairline);border-radius:var(--radius);width:auto;max-width:100%;height:auto;max-height:480px;display:block}.tool-image-placeholder{place-items:center;gap:var(--space-2);min-width:min(320px,75vw);min-height:140px;padding:var(--space-3);border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface-raised);color:var(--muted);font-size:var(--fs-small);display:grid}.tool-image-actions{justify-content:space-between;align-items:center;gap:var(--space-2);color:var(--muted);font-size:var(--fs-small);flex-wrap:wrap;display:flex}.tool-image-error{color:var(--status-error);font-size:var(--fs-small);margin:0}.image-lightbox{z-index:1000;padding:var(--space-4);place-items:center;display:grid;position:fixed;inset:0}.image-lightbox-backdrop{background:#000000c7;border:0;width:100%;height:100%;position:absolute;inset:0}.image-lightbox-content{justify-items:end;gap:var(--space-2);max-width:100%;max-height:100%;display:grid;position:relative}.image-lightbox-content img{max-width:calc(100vw - 2 * var(--space-4));object-fit:contain;border-radius:var(--radius);max-height:calc(100vh - 5rem)}.tool .tool-result pre{font-size:var(--fs-small);border:none;padding:0}.tool .tool-result pre,.tool .tool-input pre{max-height:340px;overflow-y:auto}.hljs{color:var(--text);background:0 0}.hljs-comment,.hljs-quote{color:var(--syntax-comment)}.hljs-keyword,.hljs-selector-tag{color:var(--syntax-keyword)}.hljs-number,.hljs-literal{color:var(--syntax-number)}.hljs-string,.hljs-doctag{color:var(--syntax-string)}.hljs-function,.hljs-title,.hljs-title.function_,.hljs-section,.hljs-name{color:var(--syntax-function)}.hljs-type,.hljs-class,.hljs-title.class_,.hljs-built_in{color:var(--syntax-type)}.hljs-attr,.hljs-variable,.hljs-variable.language_,.hljs-params,.hljs-property{color:var(--syntax-variable)}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:var(--syntax-keyword)}.hljs-operator{color:var(--syntax-operator)}.hljs-punctuation{color:var(--syntax-punctuation)}.hljs-subst{color:var(--text)}.diff-add{color:var(--status-running)}.diff-del{color:var(--status-error)}.entry.summary-card .entry-body{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);color:var(--muted);font-size:var(--fs-secondary)}.entry.summary-card summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted);font-size:var(--fs-secondary);list-style:none}.entry.summary-card summary:before{content:"▸ "}.entry.summary-card details[open] summary:before{content:"▾ "}.entry.custom-card .entry-body,.entry.agent-result-card details{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary)}.entry.agent-result-card summary{cursor:pointer;-webkit-user-select:none;user-select:none;gap:var(--space-2);color:var(--muted);align-items:baseline;list-style:none;display:flex}.entry.agent-result-card summary:before{content:"▸ "}.entry.agent-result-card details[open] summary:before{content:"▾ "}.agent-result-header{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.entry.agent-result-card .entry-body{margin-top:var(--space-2)}.streaming-cursor:after{content:"▌";color:var(--status-running)}.dock{border-top:var(--hairline);flex-shrink:0}.dock.collapsed{background:var(--bg)}.dock-collapse-row{max-width:960px;padding:var(--space-1) calc(var(--space-4) + env(safe-area-inset-right,0px)) calc(var(--space-1) + env(safe-area-inset-bottom,0px)) calc(var(--space-4) + env(safe-area-inset-left,0px));align-items:center;gap:var(--space-3);font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;margin:0 auto;display:flex}.dock-collapsed-hint{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.dock-inner{max-width:960px;padding:var(--space-3) calc(var(--space-4) + env(safe-area-inset-right,0px)) calc(var(--space-3) + env(safe-area-inset-bottom,0px)) calc(var(--space-4) + env(safe-area-inset-left,0px));gap:var(--space-2);flex-direction:column;margin:0 auto;display:flex}.tasks{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary)}.tasks summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted);font-size:var(--fs-small);list-style:none}.tasks summary:before{content:"▸ "}.tasks[open] summary:before{content:"▾ "}.tasks ul{padding-top:var(--space-1);list-style:none}.tasks .done{color:var(--muted)}.tasks .active{font-weight:600}.subagents .subagent-list{padding-top:var(--space-1);gap:var(--space-1);flex-direction:column;max-height:10rem;list-style:none;display:flex;overflow-y:auto}.subagents .agent-chip{border:var(--hairline);border-radius:var(--radius);padding:1px var(--space-2);font-size:var(--fs-small);background:var(--bg);color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:6px;width:100%;font-family:inherit;transition:border-color .2s;display:flex}.subagents .agent-chip:hover{border-color:var(--text)}.subagents .agent-chip .live{color:var(--status-running)}.subagents .agent-chip .done{color:var(--muted)}.subagents .agent-chip .task{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.status-line{align-items:center;gap:var(--space-3);font-size:var(--fs-secondary);flex-wrap:wrap;display:flex}.status-line .working{color:var(--status-running)}.status-line .warning{color:var(--status-attention)}.status-line .error{color:var(--status-error)}.status-line .queued{color:var(--muted);font-size:var(--fs-small)}.status-line .btn{margin-left:auto}.status-line .inline-stop{margin-left:var(--space-2)}.composer{gap:var(--space-2);flex-direction:column;display:flex;position:relative}.queued-message-row{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2);align-items:center;gap:var(--space-2);font-size:var(--fs-small);flex-wrap:wrap;display:flex}.queued-chip{align-items:baseline;gap:var(--space-1);text-overflow:ellipsis;white-space:nowrap;max-width:240px;color:var(--muted);display:inline-flex;overflow:hidden}.attachment-strip{gap:var(--space-2);flex-wrap:wrap;display:flex}.attachment-thumb,.attachment-file{border:var(--hairline);border-radius:var(--radius);padding:2px;position:relative}.attachment-file{align-items:baseline;gap:var(--space-2);padding:2px var(--space-2);font-size:var(--fs-small);overflow-wrap:anywhere;max-width:100%;display:inline-flex}.attachment-thumb img{object-fit:cover;width:72px;height:54px;display:block}.attachment-thumb button,.attachment-file button{border:var(--hairline);background:var(--bg);color:var(--text);cursor:pointer;border-radius:999px;position:absolute;top:-8px;right:-8px}.command-popover{left:0;right:0;bottom:calc(100% + var(--space-2));border:var(--hairline);border-radius:var(--radius);background:var(--bg);padding:var(--space-1);z-index:5;max-height:260px;position:absolute;overflow-y:auto}.command-option{background:var(--bg);width:100%;color:var(--text);font:inherit;text-align:left;padding:var(--space-2);border-radius:var(--radius);gap:var(--space-2);cursor:pointer;border:none;grid-template-columns:minmax(120px,max-content) 1fr max-content;align-items:baseline;display:grid}.command-option:hover,.command-option.selected{background:var(--text);color:var(--bg)}.command-name{font-weight:500}.command-description{color:var(--muted);font-size:var(--fs-small);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.command-source{border:var(--hairline);border-radius:var(--radius);color:var(--muted);font-size:var(--fs-small);padding:0 var(--space-1)}.command-option.selected .command-description,.command-option:hover .command-description,.command-option.selected .command-source,.command-option:hover .command-source{color:var(--bg)}.composer textarea{border:var(--hairline);border-radius:var(--radius);background:var(--bg);width:100%;color:var(--text);padding:var(--space-2) var(--space-3);font-size:var(--fs-body);resize:vertical;min-height:60px;max-height:40vh;font-family:inherit;line-height:1.6;transition:border-color .2s;overflow-y:hidden}.composer textarea:hover,.composer textarea:focus{border-color:var(--text);outline:none}.hidden-file-input{display:none}.composer-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.mode-toggle{border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-small);display:inline-flex;overflow:hidden}.mode-toggle button{background:var(--bg);color:var(--muted);padding:2px var(--space-3);cursor:pointer;border:none;font-family:inherit}.mode-toggle button.selected{background:var(--text);color:var(--bg)}.composer-row .send{margin-left:auto}.ghost-suggest{font-size:var(--fs-small);color:var(--muted);cursor:pointer;background:0 0;border:none;font-family:inherit}.ghost-suggest .key{border:var(--hairline);border-radius:var(--radius);padding:0 4px}.readonly-note{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary);color:var(--muted)}.banner-region{padding-top:var(--space-2);gap:var(--space-2);flex-direction:column;display:flex}.banner{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary);gap:var(--space-2);background:var(--bg);align-items:flex-start;display:flex}.banner.warning{border-color:var(--status-attention)}.banner.error{border-color:var(--status-error)}.banner-glyph{flex:none}.banner-text{overflow-wrap:anywhere;white-space:pre-wrap;flex:auto;min-width:0;max-height:40vh;overflow-y:auto}.banner-actions{gap:var(--space-2);flex-wrap:wrap;flex:none;display:flex}.banner-dismiss{flex:none}.widget-block{border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--fs-small);color:var(--muted);white-space:pre-wrap}.toast-region{top:var(--space-2);gap:var(--space-2);z-index:50;flex-direction:column;width:max-content;max-width:min(560px,100vw - 2rem);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{border:var(--hairline);border-radius:var(--radius);background:var(--bg);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary);gap:var(--space-2);align-items:baseline;display:flex}.toast.warning{border-color:var(--status-attention)}.toast.error{border-color:var(--status-error)}.files-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin:var(--space-5) 0 var(--space-4);flex-wrap:wrap;display:flex}.crumbs{font-size:var(--fs-secondary);flex-wrap:wrap;align-items:baseline;gap:2px;display:flex}.crumbs .sep{color:var(--muted);margin:0 2px}.scope-note{color:var(--muted);font-size:var(--fs-small);margin-top:var(--space-1)}.context-trust{border:var(--hairline);border-radius:var(--radius);padding:var(--space-3);margin-bottom:var(--space-4);font-size:var(--fs-secondary)}.context-trust p{color:var(--muted);font-size:var(--fs-small);margin:var(--space-1) 0 var(--space-2);overflow-wrap:anywhere}.context-trust-impact{margin-bottom:0!important}.context-trust-warning{color:var(--status-attention)}.context-trust-warning a{color:inherit}.head-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.places{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:baseline;display:flex}.places .label{color:var(--muted);font-size:var(--fs-small)}.place-chip{border:var(--hairline);border-radius:var(--radius);padding:1px var(--space-2);font-size:var(--fs-small);background:var(--bg);color:var(--text);cursor:pointer;font-family:inherit;text-decoration:none;transition:border-color .2s}.place-chip:hover{border-color:var(--text)}.file-table{border-collapse:collapse;width:100%;font-size:var(--fs-secondary)}.file-table th{text-align:left;font-size:var(--fs-small);color:var(--muted);border-bottom:var(--hairline);padding:var(--space-1) var(--space-2);font-weight:400}.file-table td{border-bottom:var(--hairline);padding:var(--space-2)}.file-table .name{color:var(--text);cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:none}.file-table .name .icon{color:var(--muted);margin-right:var(--space-1)}.file-table .meta{color:var(--muted);font-size:var(--fs-small);white-space:nowrap}.file-table .actions{text-align:right}.drop-zone{border:1px dashed var(--border);border-radius:var(--radius);padding:var(--space-4);text-align:center;color:var(--muted);font-size:var(--fs-small);margin-top:var(--space-4);transition:border-color .2s}.drop-zone.active{border-color:var(--text);color:var(--text)}.upload-warning{font-size:var(--fs-small);color:var(--muted);margin-top:var(--space-2)}.settings-wrap{max-width:960px}.settings-intro{color:var(--muted);font-size:var(--fs-secondary);margin:var(--space-2) 0 var(--space-5)}.settings-section{margin-bottom:var(--space-6)}.settings-section h2{font-size:var(--fs-h3);border-bottom:var(--hairline);padding-bottom:var(--space-2);margin-bottom:var(--space-3)}.setting-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2) 0;display:flex}.setting-label{flex-direction:column;gap:2px;min-width:0;display:flex}.setting-label .name{font-size:var(--fs-secondary)}.setting-label .hint{font-size:var(--fs-small);color:var(--muted)}.setting-control{min-width:0;max-width:100%}.agent-context-row .setting-label{flex-shrink:0}.setting-control select,.setting-control input{border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);font-family:inherit;font-size:var(--fs-secondary);padding:2px var(--space-2);max-width:100%}.checkbox-control{align-items:center;gap:var(--space-2);font-size:var(--fs-secondary);display:inline-flex}.checkbox-control input{width:auto}.settings-error{border:1px solid var(--status-error);border-radius:var(--radius);color:var(--status-error);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary);margin-bottom:var(--space-4);white-space:pre-wrap}.settings-warning{border:1px solid var(--status-attention);border-radius:var(--radius);color:var(--status-attention);padding:var(--space-2) var(--space-3);font-size:var(--fs-secondary);margin-bottom:var(--space-4);white-space:pre-wrap}.scoped-models-editor:focus{outline:none}.scoped-models-context{gap:var(--space-1);margin:var(--space-3) 0;font-size:var(--fs-secondary);display:grid}.scoped-models-context select,.scoped-models-toolbar input{border:var(--hairline);border-radius:var(--radius);background:var(--bg);min-width:0;max-width:100%;color:var(--text);font:inherit;padding:var(--space-2)}.scoped-models-toolbar,.scoped-models-actions{align-items:center;gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.scoped-models-toolbar input{flex:260px}.scoped-models-grid{gap:var(--space-4);min-width:0;display:grid}.scoped-models-grid h3{font-size:var(--fs-secondary);margin-bottom:var(--space-2)}.scoped-models-order,.scoped-models-available{min-width:0}.scoped-model-order-row,.scoped-model-choice,.scoped-model-provider-heading{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--fs-secondary);display:flex}.scoped-model-order-row{border-bottom:var(--hairline);padding:var(--space-1) 0;justify-content:space-between}.scoped-model-order-row>span,.scoped-model-choice .model-id,.scoped-model-choice .model-name,.scoped-model-provider-heading span{overflow-wrap:anywhere;min-width:0}.scoped-model-choice .model-name{color:var(--muted);font-size:var(--fs-small)}.scoped-model-move-controls{gap:var(--space-1);flex-shrink:0;display:flex}.scoped-model-move-controls button{border:var(--hairline);border-radius:var(--radius);background:var(--bg-elevated);min-width:36px;min-height:36px;color:var(--text)}.scoped-model-provider{border-bottom:var(--hairline);padding:var(--space-2) 0}.scoped-model-provider-heading{margin-bottom:var(--space-1);font-weight:600}.scoped-model-choice{padding:var(--space-1) 0 var(--space-1) var(--space-4)}.scoped-model-choice input,.scoped-model-provider-heading input{flex:none}@media (width>=701px){.scoped-models-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (width<=700px){.scoped-model-move-controls button{min-width:44px;min-height:44px}.scoped-model-choice{min-height:44px}}.model-picker-button{white-space:normal;overflow-wrap:anywhere;text-align:left;min-width:0;max-width:min(100%,520px)}.agent-model-row{gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--hairline);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:start;display:grid}.agent-model-summary{flex-direction:column;gap:2px;min-width:0;display:flex}.agent-model-name{font-size:var(--fs-secondary);font-weight:600}.agent-model-description{color:var(--muted);font-size:var(--fs-small)}.agent-model-fallbacks{gap:var(--space-1);flex-wrap:wrap;min-width:0;display:flex}.agent-model-chip{border:var(--hairline);border-radius:var(--radius);color:var(--muted);font-size:var(--fs-small);padding:0 var(--space-1);overflow-wrap:anywhere;white-space:normal;min-width:0;max-width:100%}.agent-model-editor{gap:var(--space-2);border:var(--hairline);border-radius:var(--radius);padding:var(--space-2);flex-direction:column;grid-column:1/-1;display:flex}.agent-model-entry{justify-content:space-between;gap:var(--space-2);font-size:var(--fs-secondary);align-items:center;min-width:0;display:flex}.agent-model-entry>span:first-child{overflow-wrap:anywhere;min-width:0}.agent-model-entry-actions{gap:var(--space-1);flex-shrink:0;display:flex}.context-trust-subsection{margin:var(--space-4) 0}.context-trust-subsection h3{font-size:var(--fs-secondary);margin-bottom:var(--space-1)}.context-trust-global-warning,.trusted-context-empty{margin:var(--space-3) 0}.trusted-context-folder-row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--hairline);font-size:var(--fs-secondary);display:flex}.trusted-context-folder-row code{overflow-wrap:anywhere;min-width:0}.trusted-context-folder-row .meta{color:var(--muted);font-size:var(--fs-small);margin-left:auto}.trusted-context-folder-row .btn{flex-shrink:0}.trusted-context-folder-add{align-items:center;gap:var(--space-2);margin-top:var(--space-3);display:flex}.trusted-context-folder-add label{font-size:var(--fs-small);white-space:nowrap}.trusted-context-folder-add input{border:var(--hairline);border-radius:var(--radius);background:var(--bg);min-width:0;color:var(--text);font-family:inherit;font-size:var(--fs-secondary);padding:2px var(--space-2);flex:1}.settings-footnote{margin-top:calc(-1 * var(--space-3));margin-bottom:var(--space-5)}.appearance-block{margin-bottom:var(--space-4)}.appearance-heading-row .name{font-weight:600}.theme-gallery{gap:var(--space-3);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.theme-card{gap:var(--space-2);border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:var(--space-2);text-align:left;cursor:pointer;flex-direction:column;font-family:inherit;transition:border-color .2s;display:flex}.theme-card:hover{border-color:var(--muted)}.theme-card.active{border-color:var(--text)}.theme-card-preview{gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2);flex-direction:column;display:flex;overflow:hidden}.theme-card-swatch{flex-direction:column;gap:2px;min-width:0;display:flex}.theme-card-name{font-size:var(--fs-secondary);color:var(--text);font-weight:600}.theme-card-muted{font-size:var(--fs-small);color:var(--muted)}.theme-card-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.theme-card-code{font-size:var(--fs-small);white-space:pre;margin:0;font-family:IBM Plex Mono,Courier New,monospace;line-height:1.4;overflow:hidden}.theme-card-code .hljs{background:0 0;padding:0}.theme-card-footer{justify-content:space-between;align-items:baseline;gap:var(--space-2);font-size:var(--fs-small);display:flex}.theme-card-title{font-size:var(--fs-secondary);color:var(--text)}.theme-card-state{color:var(--muted)}.theme-card.active .theme-card-state{color:var(--text)}@media (width<=700px){.theme-gallery{grid-template-columns:1fr}}.device-row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--hairline);font-size:var(--fs-secondary);display:flex}.device-row .meta{color:var(--muted);font-size:var(--fs-small);margin-left:auto}.this-device{border:var(--hairline);border-radius:var(--radius);font-size:var(--fs-small);color:var(--muted);padding:0 var(--space-1);margin-left:var(--space-1)}.pair-wrap{min-height:100vh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.pair-card{border:var(--hairline);border-radius:var(--radius);width:100%;max-width:460px;padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.pair-card h1{font-size:var(--fs-h2)}.pair-card .sub{color:var(--muted);font-size:var(--fs-secondary)}.identity{gap:var(--space-2);border:var(--hairline);border-radius:var(--radius);padding:var(--space-3);font-size:var(--fs-secondary);flex-direction:column;display:flex}.identity .row-line{justify-content:space-between;gap:var(--space-3);display:flex}.identity .k{color:var(--muted);font-size:var(--fs-small)}.pin-input{text-align:center;width:100%;font-size:var(--fs-h1);letter-spacing:.5em;border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:var(--space-2);font-family:inherit}.pin-input:focus{border-color:var(--text);outline:none}.pin-hint{font-size:var(--fs-small);color:var(--muted)}.security-note{border-top:var(--hairline);padding-top:var(--space-3);gap:var(--space-2);font-size:var(--fs-small);color:var(--muted);flex-direction:column;display:flex}.pair-error{color:var(--status-error);font-size:var(--fs-secondary)}.denied-card{border:1px solid var(--status-error);border-radius:var(--radius);width:100%;max-width:460px;padding:var(--space-6);gap:var(--space-3);flex-direction:column;display:flex}.field{gap:var(--space-1);flex-direction:column;display:flex}.field label{font-size:var(--fs-small);color:var(--muted)}.field input,.field textarea,.field select{border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);font-family:inherit;font-size:var(--fs-secondary);padding:var(--space-2)}.field input:focus,.field textarea:focus{border-color:var(--text);outline:none}.ask-wizard{gap:var(--space-2);margin:var(--space-3) 0;padding:var(--space-3);border:var(--hairline);border-left:3px solid var(--status-attention);border-radius:var(--radius);background:color-mix(in srgb, var(--status-attention) 6%, var(--surface,transparent));flex-direction:column;display:flex}.ask-wizard-header{align-items:baseline;gap:var(--space-2);display:flex}.ask-wizard-title{color:var(--text);font-weight:600}.ask-wizard-countdown{color:var(--muted);font-weight:400}.ask-tab-strip{gap:var(--space-1);flex-wrap:wrap;display:flex}.ask-tab{border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--muted);padding:2px var(--space-2);cursor:pointer;font-family:inherit;font-size:var(--fs-small);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;max-width:22ch;display:inline-flex;overflow:hidden}.ask-tab.selected{border-left:3px solid var(--status-attention);background:color-mix(in srgb, var(--status-attention) 12%, var(--surface,transparent));color:var(--text);text-overflow:clip;max-width:none;overflow:visible}.ask-tab.answered{color:var(--text)}.ask-tab-check{color:var(--status-attention);font-size:var(--fs-small)}.ask-tab-submit{font-weight:600}.ask-tab-panel.hidden{display:none}.ask-question{gap:var(--space-2);flex-direction:column;display:flex}.ask-question-title{font-size:var(--fs-base);color:var(--text);margin:0;font-weight:600}.ask-question-body{color:var(--text);margin:0}.ask-options{gap:var(--space-2);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex;position:relative}.ask-options-legend{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ask-option{align-items:center;gap:var(--space-2);border:var(--hairline);border-radius:var(--radius);padding:var(--space-2) var(--space-3);cursor:pointer;color:var(--text);display:flex}.ask-option:hover{border-color:var(--text)}.ask-option.selected{border-color:var(--status-attention);background:color-mix(in srgb, var(--status-attention) 10%, transparent)}.ask-option input{width:auto;accent-color:var(--status-attention);cursor:pointer;margin:0}.ask-option-input--hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ask-option-index{text-align:center;min-width:1.4em;color:var(--muted);font-size:var(--fs-small);font-variant-numeric:tabular-nums;flex:none}.ask-option-label{flex:auto;min-width:0}.ask-option-check{color:var(--status-attention);flex:none}.ask-custom-field{margin:0}.ask-custom-label{font-size:var(--fs-small);color:var(--muted)}.ask-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-1);display:flex}.ask-review{gap:var(--space-2);flex-direction:column;display:flex}.ask-review-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ask-review-item{padding:var(--space-2) 0;border-bottom:var(--hairline);flex-direction:column;gap:2px;display:flex}.ask-review-question{color:var(--text);font-weight:600}.ask-review-answer{color:var(--text)}.ask-review-answer.muted{color:var(--muted)}.recent-projects{flex-direction:column;gap:2px;max-height:160px;display:flex;overflow-y:auto}.recent-projects button{text-align:left;color:var(--text);font-family:inherit;font-size:var(--fs-secondary);padding:var(--space-1) var(--space-2);cursor:pointer;border-radius:var(--radius);background:0 0;border:none}.recent-projects button:hover{background:var(--border)}.model-scope-tabs{border:var(--hairline);border-radius:var(--radius);margin-bottom:var(--space-3);font-size:var(--fs-small);display:inline-flex;overflow:hidden}.model-scope-tabs button{background:var(--bg);color:var(--muted);padding:2px var(--space-3);cursor:pointer;border:none;font-family:inherit}.model-scope-tabs button.selected{background:var(--text);color:var(--bg)}.model-picker-modal{min-width:min(360px,100vw - 32px);max-width:min(900px,100vw - 32px);overflow:auto}@media (width>=701px){.model-picker-modal{resize:horizontal}}.model-list{gap:var(--space-2);flex-direction:column;min-width:0;display:flex;overflow:hidden auto}.model-provider-group{flex-direction:column;gap:2px;display:flex}.model-provider-heading{background:var(--bg);color:var(--muted);font-size:var(--fs-small);border-bottom:var(--hairline);padding:var(--space-1) var(--space-2);z-index:1;position:sticky;top:0}.model-row{align-items:start;gap:2px var(--space-2);text-align:left;border:var(--hairline);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:var(--fs-secondary);padding:var(--space-1) var(--space-2);cursor:pointer;background:0 0;grid-template-columns:18px minmax(0,1fr) auto auto;min-width:0;display:grid}.model-row:hover,.model-row.current{border-color:var(--text)}.model-current{color:var(--status-running);grid-area:1/1}.model-id{overflow-wrap:anywhere;white-space:normal;grid-area:1/2;min-width:0;font-weight:600}.model-name{color:var(--muted);font-size:var(--fs-small);overflow-wrap:anywhere;white-space:normal;grid-area:2/2/auto/-1;min-width:0}.model-provider-badge,.model-reasoning{color:var(--muted);font-size:var(--fs-small);white-space:nowrap;border:var(--hairline);border-radius:var(--radius);padding:0 var(--space-1);grid-row:1}.model-provider-badge{grid-column:3}.model-reasoning{grid-column:4}.context-modal-body{gap:var(--space-4);flex-direction:column;display:flex}.context-section h3{font-size:var(--fs-secondary);margin-bottom:var(--space-1)}.context-section ul{gap:var(--space-1);font-size:var(--fs-small);flex-direction:column;list-style:none;display:flex}.context-section li{overflow-wrap:anywhere}.fork-message-list{gap:var(--space-2);flex-direction:column;max-height:360px;display:flex;overflow-y:auto}.fork-message{border:var(--hairline);border-radius:var(--radius);background:var(--bg);color:var(--text);font:inherit;text-align:left;padding:var(--space-2);cursor:pointer;gap:var(--space-2);display:flex}.fork-message:hover{border-color:var(--text)}.fork-entry-id{color:var(--muted);font-size:var(--fs-small);flex:none}@media (width<=700px){.container,.topbar-inner,.session-bar-inner,.dock-inner,.dock-collapse-row,.chat-inner{width:100%;min-width:0;max-width:100%;padding-left:var(--space-3);padding-right:var(--space-3)}.session-grid{grid-template-columns:minmax(0,1fr)}.session-card,.disk-row,.session-meta,.session-actions,.disk-row .actions{min-width:0;max-width:100%}.disk-row,.session-meta,.session-actions,.disk-row .actions{flex-wrap:wrap}.session-title{flex-wrap:wrap;justify-content:flex-start;min-width:0;max-width:100%}.session-title .name{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;flex:12rem;min-width:0;max-width:100%;overflow:visible}.session-title .chip{flex:none;max-width:100%}.session-project,.attention-reason,.error-reason,.activity,.subagents,.session-meta,.group-head h3{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.session-project{text-overflow:clip;overflow:visible}.activity{text-overflow:clip}.subagents .agent-line{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%;overflow:visible}.session-meta>span{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.group-head h3{flex:1 1 0}.disk-row .name,.disk-row .meta{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.disk-row .name{text-overflow:clip;flex:1 1 0;overflow:visible}.disk-row .meta{order:3;width:100%;margin-left:0}.session-bar .project{display:none}.session-bar .right{align-items:stretch;width:100%;margin-left:0}.session-bar .right .switcher{justify-content:center}.session-bar .right .model-switcher{flex:100%;max-width:100%}.entry.user{max-width:100%}.file-table .cols{display:none}.setting-row{flex-direction:column;align-items:stretch}.setting-control{align-self:flex-end}.agent-model-row{grid-template-columns:1fr}.agent-model-edit{justify-self:start}.agent-model-entry{flex-direction:column;align-items:flex-start}.trusted-context-folder-row{flex-wrap:wrap;align-items:flex-start}.trusted-context-folder-row code{flex-basis:100%}.trusted-context-folder-row .meta{margin-left:0}.trusted-context-folder-add{flex-direction:column;align-items:stretch}.trusted-context-folder-add label{white-space:normal}.trusted-context-folder-add .btn{align-self:flex-start}.head-actions .btn{flex:1}.banner-region,.toast-region{width:100%;max-width:100%}.toast-region{padding-left:var(--space-3);padding-right:var(--space-3)}.banner-actions{flex-direction:column}.composer textarea{font-size:16px}}.memories-screen{padding-bottom:var(--space-6)}.memories-head,.memory-doc-head,.memory-edit-actions{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.memories-head{margin:var(--space-5) 0 var(--space-4)}.memories-layout{gap:var(--space-4);grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;display:grid}.memories-sidebar{gap:var(--space-4);flex-direction:column;display:flex}.memory-panel,.memory-editor{border:var(--hairline);border-radius:var(--radius);padding:var(--space-4);min-width:0}.memory-panel h2{font-size:var(--fs-secondary);color:var(--muted);margin-bottom:var(--space-2)}.memory-nav-item{text-align:left;border:var(--hairline);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);padding:var(--space-2);margin-bottom:var(--space-2);cursor:pointer;flex-direction:column;gap:2px;display:flex}.memory-nav-item:hover,.memory-nav-item.active{border-color:var(--text)}.memory-nav-item.error{border-color:var(--status-error)}.memory-nav-item small{color:var(--muted);overflow-wrap:anywhere}.memory-doc-head{margin-bottom:var(--space-3)}.memory-metadata{gap:var(--space-2);border:var(--hairline);border-radius:var(--radius-sm);padding:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.memory-metadata span{color:var(--muted)}.memory-edit-actions{margin-bottom:var(--space-3);justify-content:flex-start;align-items:center}.memory-textarea{width:100%;min-height:360px;font-family:var(--font-mono);font-size:var(--fs-secondary);background:var(--surface);color:var(--text);border:var(--hairline);border-radius:var(--radius);padding:var(--space-3);resize:vertical}.memory-preview{margin-top:var(--space-4);border:var(--hairline);border-radius:var(--radius);padding:var(--space-3)}.memory-preview summary{cursor:pointer;color:var(--muted);margin-bottom:var(--space-2)}@media (width<=800px){.memories-layout{grid-template-columns:1fr}}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(./jetbrains-mono-BCtJif-v.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:100 800;font-display:swap;src:url(./jetbrains-mono-italic-WKDR0M8A.woff2)format("woff2")}[data-color-mode=light]:not([data-theme]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--text:#000;--border:#e0e0e0;--muted:#666;--status-running:#00871f;--status-attention:#8a5400;--status-idle:#666;--status-error:#d10041;--syntax-comment:green;--syntax-keyword:#00f;--syntax-string:#a31515;--syntax-number:#098658;--syntax-function:#795e26;--syntax-type:#267f99;--syntax-variable:#001080;--syntax-operator:#000;--syntax-punctuation:#000}[data-color-mode=dark]:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--text:#fff;--border:#333;--muted:#999;--status-running:#00e436;--status-attention:#ffa300;--status-idle:#999;--status-error:#ff004d;--syntax-comment:#6a9955;--syntax-keyword:#569cd6;--syntax-string:#ce9178;--syntax-number:#b5cea8;--syntax-function:#dcdcaa;--syntax-type:#4ec9b0;--syntax-variable:#9cdcfe;--syntax-operator:#d4d4d4;--syntax-punctuation:#d4d4d4}[data-theme=default]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:#fff;--text:#000;--border:#e0e0e0;--muted:#666;--status-running:#00871f;--status-attention:#8a5400;--status-idle:#666;--status-error:#d10041;--syntax-comment:green;--syntax-keyword:#00f;--syntax-string:#a31515;--syntax-number:#098658;--syntax-function:#795e26;--syntax-type:#267f99;--syntax-variable:#001080;--syntax-operator:#000;--syntax-punctuation:#000}[data-theme=default][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--text:#fff;--border:#333;--muted:#999;--status-running:#00e436;--status-attention:#ffa300;--status-idle:#999;--status-error:#ff004d;--syntax-comment:#6a9955;--syntax-keyword:#569cd6;--syntax-string:#ce9178;--syntax-number:#b5cea8;--syntax-function:#dcdcaa;--syntax-type:#4ec9b0;--syntax-variable:#9cdcfe;--syntax-operator:#d4d4d4;--syntax-punctuation:#d4d4d4}@media (prefers-color-scheme:dark){[data-theme=default]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--text:#fff;--border:#333;--muted:#999;--status-running:#00e436;--status-attention:#ffa300;--status-idle:#999;--status-error:#ff004d;--syntax-comment:#6a9955;--syntax-keyword:#569cd6;--syntax-string:#ce9178;--syntax-number:#b5cea8;--syntax-function:#dcdcaa;--syntax-type:#4ec9b0;--syntax-variable:#9cdcfe;--syntax-operator:#d4d4d4;--syntax-punctuation:#d4d4d4}}[data-theme=dim]{--dim-d-bg:#1e1f22;--dim-d-text:#d7d8da;--dim-d-border:#3a3c40;--dim-d-muted:#9a9ea6;--dim-d-running:#5ec27a;--dim-d-attention:#d8a341;--dim-d-idle:#9a9ea6;--dim-d-error:#f0637f;--dim-d-comment:#8b9199;--dim-d-keyword:#8ab4f8;--dim-d-string:#c3956a;--dim-d-number:#9fce8a;--dim-d-function:#d9c46e;--dim-d-type:#5cc2b0;--dim-d-variable:#9cc7e8;--dim-d-operator:#c3c6cb;--dim-d-punctuation:#c3c6cb;--dim-l-bg:#f0f0ee;--dim-l-text:#33353a;--dim-l-border:#d3d4d1;--dim-l-muted:#5c5f66;--dim-l-running:#1c7a37;--dim-l-attention:#8a5400;--dim-l-idle:#5c5f66;--dim-l-error:#c01743;--dim-l-comment:#4f6e42;--dim-l-keyword:#1a4fc0;--dim-l-string:#9a3a20;--dim-l-number:#1f7a4a;--dim-l-function:#6f5a12;--dim-l-type:#136b7a;--dim-l-variable:#123a9c;--dim-l-operator:#33353a;--dim-l-punctuation:#33353a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--dim-l-bg);--text:var(--dim-l-text);--border:var(--dim-l-border);--muted:var(--dim-l-muted);--status-running:var(--dim-l-running);--status-attention:var(--dim-l-attention);--status-idle:var(--dim-l-idle);--status-error:var(--dim-l-error);--syntax-comment:var(--dim-l-comment);--syntax-keyword:var(--dim-l-keyword);--syntax-string:var(--dim-l-string);--syntax-number:var(--dim-l-number);--syntax-function:var(--dim-l-function);--syntax-type:var(--dim-l-type);--syntax-variable:var(--dim-l-variable);--syntax-operator:var(--dim-l-operator);--syntax-punctuation:var(--dim-l-punctuation)}[data-theme=dim][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--dim-d-bg);--text:var(--dim-d-text);--border:var(--dim-d-border);--muted:var(--dim-d-muted);--status-running:var(--dim-d-running);--status-attention:var(--dim-d-attention);--status-idle:var(--dim-d-idle);--status-error:var(--dim-d-error);--syntax-comment:var(--dim-d-comment);--syntax-keyword:var(--dim-d-keyword);--syntax-string:var(--dim-d-string);--syntax-number:var(--dim-d-number);--syntax-function:var(--dim-d-function);--syntax-type:var(--dim-d-type);--syntax-variable:var(--dim-d-variable);--syntax-operator:var(--dim-d-operator);--syntax-punctuation:var(--dim-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=dim]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--dim-d-bg);--text:var(--dim-d-text);--border:var(--dim-d-border);--muted:var(--dim-d-muted);--status-running:var(--dim-d-running);--status-attention:var(--dim-d-attention);--status-idle:var(--dim-d-idle);--status-error:var(--dim-d-error);--syntax-comment:var(--dim-d-comment);--syntax-keyword:var(--dim-d-keyword);--syntax-string:var(--dim-d-string);--syntax-number:var(--dim-d-number);--syntax-function:var(--dim-d-function);--syntax-type:var(--dim-d-type);--syntax-variable:var(--dim-d-variable);--syntax-operator:var(--dim-d-operator);--syntax-punctuation:var(--dim-d-punctuation)}}[data-theme=solarized]{--sol-d-bg:#002b36;--sol-d-text:#93a1a1;--sol-d-border:#0a4b5a;--sol-d-muted:#839496;--sol-d-running:#859900;--sol-d-attention:#cb8b18;--sol-d-idle:#839496;--sol-d-error:#fa6459;--sol-d-comment:#7e9295;--sol-d-keyword:#6c8fd6;--sol-d-string:#2aa198;--sol-d-number:#b58900;--sol-d-function:#4a9fdb;--sol-d-type:#b58900;--sol-d-variable:#93a1a1;--sol-d-operator:#93a1a1;--sol-d-punctuation:#93a1a1;--sol-l-bg:#fdf6e3;--sol-l-text:#586e75;--sol-l-border:#e7e0cb;--sol-l-muted:#5b6f76;--sol-l-running:#567500;--sol-l-attention:#a35700;--sol-l-idle:#5b6f76;--sol-l-error:#c9412f;--sol-l-comment:#5e7272;--sol-l-keyword:#5d62bd;--sol-l-string:#147878;--sol-l-number:#8a6d00;--sol-l-function:#1f6fa8;--sol-l-type:#a35700;--sol-l-variable:#586e75;--sol-l-operator:#586e75;--sol-l-punctuation:#586e75;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--sol-l-bg);--text:var(--sol-l-text);--border:var(--sol-l-border);--muted:var(--sol-l-muted);--status-running:var(--sol-l-running);--status-attention:var(--sol-l-attention);--status-idle:var(--sol-l-idle);--status-error:var(--sol-l-error);--syntax-comment:var(--sol-l-comment);--syntax-keyword:var(--sol-l-keyword);--syntax-string:var(--sol-l-string);--syntax-number:var(--sol-l-number);--syntax-function:var(--sol-l-function);--syntax-type:var(--sol-l-type);--syntax-variable:var(--sol-l-variable);--syntax-operator:var(--sol-l-operator);--syntax-punctuation:var(--sol-l-punctuation)}[data-theme=solarized][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--sol-d-bg);--text:var(--sol-d-text);--border:var(--sol-d-border);--muted:var(--sol-d-muted);--status-running:var(--sol-d-running);--status-attention:var(--sol-d-attention);--status-idle:var(--sol-d-idle);--status-error:var(--sol-d-error);--syntax-comment:var(--sol-d-comment);--syntax-keyword:var(--sol-d-keyword);--syntax-string:var(--sol-d-string);--syntax-number:var(--sol-d-number);--syntax-function:var(--sol-d-function);--syntax-type:var(--sol-d-type);--syntax-variable:var(--sol-d-variable);--syntax-operator:var(--sol-d-operator);--syntax-punctuation:var(--sol-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=solarized]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--sol-d-bg);--text:var(--sol-d-text);--border:var(--sol-d-border);--muted:var(--sol-d-muted);--status-running:var(--sol-d-running);--status-attention:var(--sol-d-attention);--status-idle:var(--sol-d-idle);--status-error:var(--sol-d-error);--syntax-comment:var(--sol-d-comment);--syntax-keyword:var(--sol-d-keyword);--syntax-string:var(--sol-d-string);--syntax-number:var(--sol-d-number);--syntax-function:var(--sol-d-function);--syntax-type:var(--sol-d-type);--syntax-variable:var(--sol-d-variable);--syntax-operator:var(--sol-d-operator);--syntax-punctuation:var(--sol-d-punctuation)}}[data-theme=gruvbox]{--gruv-d-bg:#282828;--gruv-d-text:#ebdbb2;--gruv-d-border:#504945;--gruv-d-muted:#a89984;--gruv-d-running:#b8bb26;--gruv-d-attention:#fabd2f;--gruv-d-idle:#a89984;--gruv-d-error:#fc6a58;--gruv-d-comment:#a08f7d;--gruv-d-keyword:#fc6a58;--gruv-d-string:#b8bb26;--gruv-d-number:#d3869b;--gruv-d-function:#b8bb26;--gruv-d-type:#fabd2f;--gruv-d-variable:#83a598;--gruv-d-operator:#ebdbb2;--gruv-d-punctuation:#ebdbb2;--gruv-l-bg:#fbf1c7;--gruv-l-text:#3c3836;--gruv-l-border:#e6dcae;--gruv-l-muted:#665c54;--gruv-l-running:#557000;--gruv-l-attention:#a35a00;--gruv-l-idle:#665c54;--gruv-l-error:#9d0006;--gruv-l-comment:#6f6358;--gruv-l-keyword:#9d0006;--gruv-l-string:#557000;--gruv-l-number:#8f3f71;--gruv-l-function:#6d680c;--gruv-l-type:#97600f;--gruv-l-variable:#076678;--gruv-l-operator:#3c3836;--gruv-l-punctuation:#3c3836;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"JetBrains Mono", "IBM Plex Mono", "Courier New", monospace;--bg:var(--gruv-l-bg);--text:var(--gruv-l-text);--border:var(--gruv-l-border);--muted:var(--gruv-l-muted);--status-running:var(--gruv-l-running);--status-attention:var(--gruv-l-attention);--status-idle:var(--gruv-l-idle);--status-error:var(--gruv-l-error);--syntax-comment:var(--gruv-l-comment);--syntax-keyword:var(--gruv-l-keyword);--syntax-string:var(--gruv-l-string);--syntax-number:var(--gruv-l-number);--syntax-function:var(--gruv-l-function);--syntax-type:var(--gruv-l-type);--syntax-variable:var(--gruv-l-variable);--syntax-operator:var(--gruv-l-operator);--syntax-punctuation:var(--gruv-l-punctuation)}[data-theme=gruvbox][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--gruv-d-bg);--text:var(--gruv-d-text);--border:var(--gruv-d-border);--muted:var(--gruv-d-muted);--status-running:var(--gruv-d-running);--status-attention:var(--gruv-d-attention);--status-idle:var(--gruv-d-idle);--status-error:var(--gruv-d-error);--syntax-comment:var(--gruv-d-comment);--syntax-keyword:var(--gruv-d-keyword);--syntax-string:var(--gruv-d-string);--syntax-number:var(--gruv-d-number);--syntax-function:var(--gruv-d-function);--syntax-type:var(--gruv-d-type);--syntax-variable:var(--gruv-d-variable);--syntax-operator:var(--gruv-d-operator);--syntax-punctuation:var(--gruv-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=gruvbox]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--gruv-d-bg);--text:var(--gruv-d-text);--border:var(--gruv-d-border);--muted:var(--gruv-d-muted);--status-running:var(--gruv-d-running);--status-attention:var(--gruv-d-attention);--status-idle:var(--gruv-d-idle);--status-error:var(--gruv-d-error);--syntax-comment:var(--gruv-d-comment);--syntax-keyword:var(--gruv-d-keyword);--syntax-string:var(--gruv-d-string);--syntax-number:var(--gruv-d-number);--syntax-function:var(--gruv-d-function);--syntax-type:var(--gruv-d-type);--syntax-variable:var(--gruv-d-variable);--syntax-operator:var(--gruv-d-operator);--syntax-punctuation:var(--gruv-d-punctuation)}}[data-theme=qud]{--qud-d-bg:#0f3b3a;--qud-d-text:#d7e4de;--qud-d-border:#1f5b57;--qud-d-muted:#8fb3aa;--qud-d-running:#00c420;--qud-d-attention:#e99f10;--qud-d-idle:#8fb3aa;--qud-d-error:#ff8a70;--qud-d-comment:#8ab0a1;--qud-d-keyword:#3aa6ff;--qud-d-string:#cfc041;--qud-d-number:#e894e2;--qud-d-function:#3fd45f;--qud-d-type:#77bfcf;--qud-d-variable:#8fd0dd;--qud-d-operator:#b1c9c3;--qud-d-punctuation:#b1c9c3;--qud-l-bg:#e8efe9;--qud-l-text:#123b38;--qud-l-border:#cdddd6;--qud-l-muted:#3c655d;--qud-l-running:#0a6b1f;--qud-l-attention:#8a5400;--qud-l-idle:#3c655d;--qud-l-error:#b3341a;--qud-l-comment:#3f6a5e;--qud-l-keyword:#12489c;--qud-l-string:#7a6a00;--qud-l-number:#8f3a86;--qud-l-function:#0a6b1f;--qud-l-type:#0f6070;--qud-l-variable:#155352;--qud-l-operator:#123b38;--qud-l-punctuation:#123b38;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--qud-l-bg);--text:var(--qud-l-text);--border:var(--qud-l-border);--muted:var(--qud-l-muted);--status-running:var(--qud-l-running);--status-attention:var(--qud-l-attention);--status-idle:var(--qud-l-idle);--status-error:var(--qud-l-error);--syntax-comment:var(--qud-l-comment);--syntax-keyword:var(--qud-l-keyword);--syntax-string:var(--qud-l-string);--syntax-number:var(--qud-l-number);--syntax-function:var(--qud-l-function);--syntax-type:var(--qud-l-type);--syntax-variable:var(--qud-l-variable);--syntax-operator:var(--qud-l-operator);--syntax-punctuation:var(--qud-l-punctuation)}[data-theme=qud][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--qud-d-bg);--text:var(--qud-d-text);--border:var(--qud-d-border);--muted:var(--qud-d-muted);--status-running:var(--qud-d-running);--status-attention:var(--qud-d-attention);--status-idle:var(--qud-d-idle);--status-error:var(--qud-d-error);--syntax-comment:var(--qud-d-comment);--syntax-keyword:var(--qud-d-keyword);--syntax-string:var(--qud-d-string);--syntax-number:var(--qud-d-number);--syntax-function:var(--qud-d-function);--syntax-type:var(--qud-d-type);--syntax-variable:var(--qud-d-variable);--syntax-operator:var(--qud-d-operator);--syntax-punctuation:var(--qud-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=qud]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--qud-d-bg);--text:var(--qud-d-text);--border:var(--qud-d-border);--muted:var(--qud-d-muted);--status-running:var(--qud-d-running);--status-attention:var(--qud-d-attention);--status-idle:var(--qud-d-idle);--status-error:var(--qud-d-error);--syntax-comment:var(--qud-d-comment);--syntax-keyword:var(--qud-d-keyword);--syntax-string:var(--qud-d-string);--syntax-number:var(--qud-d-number);--syntax-function:var(--qud-d-function);--syntax-type:var(--qud-d-type);--syntax-variable:var(--qud-d-variable);--syntax-operator:var(--qud-d-operator);--syntax-punctuation:var(--qud-d-punctuation)}}[data-theme=vangogh]{--vg-d-bg:#0d1b3d;--vg-d-text:#f0e6c8;--vg-d-border:#2a3e6a;--vg-d-muted:#aab4d2;--vg-d-running:#8fbf6a;--vg-d-attention:#f5db37;--vg-d-idle:#aab4d2;--vg-d-error:#f07a52;--vg-d-comment:#8c96b8;--vg-d-keyword:#f5db37;--vg-d-string:#7fc5dc;--vg-d-number:#e0a95a;--vg-d-function:#5fb0e0;--vg-d-type:#c9b26a;--vg-d-variable:#a9c7ea;--vg-d-operator:#dad69f;--vg-d-punctuation:#dad69f;--vg-l-bg:#f4ecd2;--vg-l-text:#1a2a52;--vg-l-border:#e0d4ad;--vg-l-muted:#4a557d;--vg-l-running:#4a6b1f;--vg-l-attention:#855000;--vg-l-idle:#4a557d;--vg-l-error:#b03a1a;--vg-l-comment:#5a6488;--vg-l-keyword:#1a3a8c;--vg-l-string:#1f6f8c;--vg-l-number:#8a5a12;--vg-l-function:#2a4e93;--vg-l-type:#6a5a12;--vg-l-variable:#2a3e83;--vg-l-operator:#1a2a52;--vg-l-punctuation:#1a2a52;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--vg-l-bg);--text:var(--vg-l-text);--border:var(--vg-l-border);--muted:var(--vg-l-muted);--status-running:var(--vg-l-running);--status-attention:var(--vg-l-attention);--status-idle:var(--vg-l-idle);--status-error:var(--vg-l-error);--syntax-comment:var(--vg-l-comment);--syntax-keyword:var(--vg-l-keyword);--syntax-string:var(--vg-l-string);--syntax-number:var(--vg-l-number);--syntax-function:var(--vg-l-function);--syntax-type:var(--vg-l-type);--syntax-variable:var(--vg-l-variable);--syntax-operator:var(--vg-l-operator);--syntax-punctuation:var(--vg-l-punctuation)}[data-theme=vangogh][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--vg-d-bg);--text:var(--vg-d-text);--border:var(--vg-d-border);--muted:var(--vg-d-muted);--status-running:var(--vg-d-running);--status-attention:var(--vg-d-attention);--status-idle:var(--vg-d-idle);--status-error:var(--vg-d-error);--syntax-comment:var(--vg-d-comment);--syntax-keyword:var(--vg-d-keyword);--syntax-string:var(--vg-d-string);--syntax-number:var(--vg-d-number);--syntax-function:var(--vg-d-function);--syntax-type:var(--vg-d-type);--syntax-variable:var(--vg-d-variable);--syntax-operator:var(--vg-d-operator);--syntax-punctuation:var(--vg-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=vangogh]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--vg-d-bg);--text:var(--vg-d-text);--border:var(--vg-d-border);--muted:var(--vg-d-muted);--status-running:var(--vg-d-running);--status-attention:var(--vg-d-attention);--status-idle:var(--vg-d-idle);--status-error:var(--vg-d-error);--syntax-comment:var(--vg-d-comment);--syntax-keyword:var(--vg-d-keyword);--syntax-string:var(--vg-d-string);--syntax-number:var(--vg-d-number);--syntax-function:var(--vg-d-function);--syntax-type:var(--vg-d-type);--syntax-variable:var(--vg-d-variable);--syntax-operator:var(--vg-d-operator);--syntax-punctuation:var(--vg-d-punctuation)}}[data-theme=okabe]{--okabe-d-bg:#16181d;--okabe-d-text:#eceef2;--okabe-d-border:#363a42;--okabe-d-muted:#9ba1ab;--okabe-d-running:#56b4e9;--okabe-d-attention:#f0e442;--okabe-d-idle:#9ba1ab;--okabe-d-error:#f57a48;--okabe-d-comment:#8b95a3;--okabe-d-keyword:#56b4e9;--okabe-d-string:#4fc6a0;--okabe-d-number:#e08cc6;--okabe-d-function:#f0c04a;--okabe-d-type:#8fd4f0;--okabe-d-variable:#d7dbe1;--okabe-d-operator:#cdd2d9;--okabe-d-punctuation:#cdd2d9;--okabe-l-bg:#f6f6f3;--okabe-l-text:#1a1a1a;--okabe-l-border:#dcdcd6;--okabe-l-muted:#565b62;--okabe-l-running:#0067a3;--okabe-l-attention:#8a5a00;--okabe-l-idle:#565b62;--okabe-l-error:#b8430a;--okabe-l-comment:#4a5560;--okabe-l-keyword:#0067a3;--okabe-l-string:#077a5a;--okabe-l-number:#9a4a86;--okabe-l-function:#7a5500;--okabe-l-type:#0f6a86;--okabe-l-variable:#333;--okabe-l-operator:#1a1a1a;--okabe-l-punctuation:#1a1a1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--okabe-l-bg);--text:var(--okabe-l-text);--border:var(--okabe-l-border);--muted:var(--okabe-l-muted);--status-running:var(--okabe-l-running);--status-attention:var(--okabe-l-attention);--status-idle:var(--okabe-l-idle);--status-error:var(--okabe-l-error);--syntax-comment:var(--okabe-l-comment);--syntax-keyword:var(--okabe-l-keyword);--syntax-string:var(--okabe-l-string);--syntax-number:var(--okabe-l-number);--syntax-function:var(--okabe-l-function);--syntax-type:var(--okabe-l-type);--syntax-variable:var(--okabe-l-variable);--syntax-operator:var(--okabe-l-operator);--syntax-punctuation:var(--okabe-l-punctuation)}[data-theme=okabe][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--okabe-d-bg);--text:var(--okabe-d-text);--border:var(--okabe-d-border);--muted:var(--okabe-d-muted);--status-running:var(--okabe-d-running);--status-attention:var(--okabe-d-attention);--status-idle:var(--okabe-d-idle);--status-error:var(--okabe-d-error);--syntax-comment:var(--okabe-d-comment);--syntax-keyword:var(--okabe-d-keyword);--syntax-string:var(--okabe-d-string);--syntax-number:var(--okabe-d-number);--syntax-function:var(--okabe-d-function);--syntax-type:var(--okabe-d-type);--syntax-variable:var(--okabe-d-variable);--syntax-operator:var(--okabe-d-operator);--syntax-punctuation:var(--okabe-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=okabe]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--okabe-d-bg);--text:var(--okabe-d-text);--border:var(--okabe-d-border);--muted:var(--okabe-d-muted);--status-running:var(--okabe-d-running);--status-attention:var(--okabe-d-attention);--status-idle:var(--okabe-d-idle);--status-error:var(--okabe-d-error);--syntax-comment:var(--okabe-d-comment);--syntax-keyword:var(--okabe-d-keyword);--syntax-string:var(--okabe-d-string);--syntax-number:var(--okabe-d-number);--syntax-function:var(--okabe-d-function);--syntax-type:var(--okabe-d-type);--syntax-variable:var(--okabe-d-variable);--syntax-operator:var(--okabe-d-operator);--syntax-punctuation:var(--okabe-d-punctuation)}}[data-theme=tol]{--tol-d-bg:#1b1d21;--tol-d-text:#e9eaec;--tol-d-border:#363a43;--tol-d-muted:#9a9ea6;--tol-d-running:#3fc0a8;--tol-d-attention:#d9c94a;--tol-d-idle:#9a9ea6;--tol-d-error:#f0687a;--tol-d-comment:#8a929c;--tol-d-keyword:#6ce;--tol-d-string:#4fc08a;--tol-d-number:#c9d;--tol-d-function:#eb5;--tol-d-type:#7fd0f0;--tol-d-variable:#d6d9de;--tol-d-operator:#cbcfd5;--tol-d-punctuation:#cbcfd5;--tol-l-bg:#f4f4f6;--tol-l-text:#1a1c22;--tol-l-border:#dadae0;--tol-l-muted:#565a62;--tol-l-running:#007a68;--tol-l-attention:#8a6a00;--tol-l-idle:#565a62;--tol-l-error:#c23346;--tol-l-comment:#565a62;--tol-l-keyword:#1a5a8c;--tol-l-string:#0a6a52;--tol-l-number:#8a3a77;--tol-l-function:#8a5a12;--tol-l-type:#0f6a86;--tol-l-variable:#2a2e83;--tol-l-operator:#1a1c22;--tol-l-punctuation:#1a1c22;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--mono-font:"IBM Plex Mono", "Courier New", monospace;--bg:var(--tol-l-bg);--text:var(--tol-l-text);--border:var(--tol-l-border);--muted:var(--tol-l-muted);--status-running:var(--tol-l-running);--status-attention:var(--tol-l-attention);--status-idle:var(--tol-l-idle);--status-error:var(--tol-l-error);--syntax-comment:var(--tol-l-comment);--syntax-keyword:var(--tol-l-keyword);--syntax-string:var(--tol-l-string);--syntax-number:var(--tol-l-number);--syntax-function:var(--tol-l-function);--syntax-type:var(--tol-l-type);--syntax-variable:var(--tol-l-variable);--syntax-operator:var(--tol-l-operator);--syntax-punctuation:var(--tol-l-punctuation)}[data-theme=tol][data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--tol-d-bg);--text:var(--tol-d-text);--border:var(--tol-d-border);--muted:var(--tol-d-muted);--status-running:var(--tol-d-running);--status-attention:var(--tol-d-attention);--status-idle:var(--tol-d-idle);--status-error:var(--tol-d-error);--syntax-comment:var(--tol-d-comment);--syntax-keyword:var(--tol-d-keyword);--syntax-string:var(--tol-d-string);--syntax-number:var(--tol-d-number);--syntax-function:var(--tol-d-function);--syntax-type:var(--tol-d-type);--syntax-variable:var(--tol-d-variable);--syntax-operator:var(--tol-d-operator);--syntax-punctuation:var(--tol-d-punctuation)}@media (prefers-color-scheme:dark){[data-theme=tol]:not([data-color-mode=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--tol-d-bg);--text:var(--tol-d-text);--border:var(--tol-d-border);--muted:var(--tol-d-muted);--status-running:var(--tol-d-running);--status-attention:var(--tol-d-attention);--status-idle:var(--tol-d-idle);--status-error:var(--tol-d-error);--syntax-comment:var(--tol-d-comment);--syntax-keyword:var(--tol-d-keyword);--syntax-string:var(--tol-d-string);--syntax-number:var(--tol-d-number);--syntax-function:var(--tol-d-function);--syntax-type:var(--tol-d-type);--syntax-variable:var(--tol-d-variable);--syntax-operator:var(--tol-d-operator);--syntax-punctuation:var(--tol-d-punctuation)}}