@dreb/dashboard 2.45.0 → 2.45.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return u(this.context.count)},getNextContextId(){return u(this.context.count++)}};function u(e){let t=String(e),n=t.length-1;return l.context.id+(n?String.fromCharCode(96+n):``)+t}function d(e){l.context=e}var f=(e,t)=>e===t,p=Symbol(`solid-proxy`),m=Symbol(`solid-track`),h={equals:f},g=null,_=de,v=1,y=2,b={owned:null,cleanups:null,context:null,owner:null},x={},S=null,C=null,w=null,T=null,E=null,D=0;function O(e,t){let n=w,r=S,i=e.length===0,a=t===void 0?r:t,o=i?b:{owned:null,cleanups:null,context:a?a.context:null,owner:a},s=i?e:()=>e(()=>L(()=>he(o)));S=o,w=null;try{return le(s,!0)}finally{w=n,S=r}}function k(e,t){t=t?Object.assign({},h,t):h;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0};return[ae.bind(n),e=>(typeof e==`function`&&(e=C&&C.running&&C.sources.has(n)?e(n.tValue):e(n.value)),H(n,e))]}function A(e,t,n){oe(se(e,t,!0,v))}function j(e,t,n){oe(se(e,t,!1,v))}function M(e,t,n){_=fe;let r=se(e,t,!1,v),i=V&&re(V);i&&(r.suspense=i),(!n||!n.render)&&(r.user=!0),E?E.push(r):oe(r)}function N(e,t,n){n=n?Object.assign({},h,n):h;let r=se(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,oe(r),ae.bind(r)}function P(e){return e&&typeof e==`object`&&`then`in e}function F(e,t,n){let r,i,a;typeof t==`function`?(r=e,i=t,a=n||{}):(r=!0,i=e,a=t||{});let o=null,s=x,c=null,u=!1,d=!1,f=`initialValue`in a,p=typeof r==`function`&&N(r),m=new Set,[h,g]=(a.storage||k)(a.initialValue),[_,v]=k(void 0),[y,b]=k(void 0,{equals:!1}),[T,E]=k(f?`ready`:`unresolved`);S&&z(()=>{for(let e of m.keys())e.decrement();m.clear(),C&&o&&C.promises.delete(o),o=null}),l.context&&(c=l.getNextContextId(),a.ssrLoadFrom===`initial`?s=a.initialValue:l.load&&l.has(c)&&(s=l.load(c)));function D(e,t,n,r){return o===e&&(o=null,r!==void 0&&(f=!0),(e===s||t===s)&&a.onHydrated&&queueMicrotask(()=>a.onHydrated(r,{value:t})),s=x,C&&e&&u?(C.promises.delete(e),u=!1,le(()=>{C.running=!0,O(t,n)},!1)):O(t,n)),t}function O(e,t){le(()=>{t===void 0&&g(()=>e),E(t===void 0?f?`ready`:`unresolved`:`errored`),v(t);for(let e of m.keys())e.decrement();m.clear()},!1)}function j(){let e=V&&re(V),t=h(),n=_();if(n!==void 0&&!o)throw n;return w&&!w.user&&e&&A(()=>{y(),o&&(e.resolved&&C&&u?C.promises.add(o):m.has(e)||(e.increment(),m.add(e)))}),t}function M(e=!0){if(e!==!1&&d)return;d=!1;let t=p?p():r;if(u=C&&C.running,t==null||t===!1){D(o,L(h));return}C&&o&&C.promises.delete(o);let n,a=s===x?L(()=>{try{return i(t,{value:h(),refetching:e})}catch(e){n=e}}):s;if(n!==void 0){D(o,void 0,_e(n),t);return}else if(!P(a))return D(o,a,void 0,t),a;return o=a,`v`in a?(a.s===1?D(o,a.v,void 0,t):D(o,void 0,_e(a.v),t),a):(d=!0,queueMicrotask(()=>d=!1),le(()=>{E(f?`refreshing`:`pending`),b()},!1),a.then(e=>D(a,e,void 0,t),e=>D(a,void 0,_e(e),t)))}Object.defineProperties(j,{state:{get:()=>T()},error:{get:()=>_()},loading:{get(){let e=T();return e===`pending`||e===`refreshing`}},latest:{get(){if(!f)return j();let e=_();if(e&&!o)throw e;return h()}}});let F=S;return p?A(()=>(F=S,M(!1))):M(!1),[j,{refetch:e=>ee(F,()=>M(e)),mutate:g}]}function I(e){return le(e,!1)}function L(e){if(w===null)return e();let t=w;w=null;try{return e()}finally{w=t}}function R(e){M(()=>L(e))}function z(e){return S===null||(S.cleanups===null?S.cleanups=[e]:S.cleanups.push(e)),e}function B(){return w}function ee(e,t){let n=S,r=w;S=e,w=null;try{return le(t,!0)}catch(e){ye(e)}finally{S=n,w=r}}var[te,ne]=k(!1);function re(e){let t;return S&&S.context&&(t=S.context[e.id])!==void 0?t:e.defaultValue}function ie(e){let t=N(e),n=N(()=>be(t()));return n.toArray=()=>{let e=n();return Array.isArray(e)?e:e==null?[]:[e]},n}var V;function ae(){let e=C&&C.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===v)oe(this);else{let e=T;T=null,le(()=>pe(this),!1),T=e}if(w){let e=this.observers;if(!e||e[e.length-1]!==w){let t=e?e.length:0;w.sources?(w.sources.push(this),w.sourceSlots.push(t)):(w.sources=[this],w.sourceSlots=[t]),e?(e.push(w),this.observerSlots.push(w.sources.length-1)):(this.observers=[w],this.observerSlots=[w.sources.length-1])}}return e&&C.sources.has(this)?this.tValue:this.value}function H(e,t,n){let r=C&&C.running&&C.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(r,t)){if(C){let r=C.running;(r||!n&&C.sources.has(e))&&(C.sources.add(e),e.tValue=t),r||(e.value=t)}else e.value=t;e.observers&&e.observers.length&&le(()=>{for(let t=0;t<e.observers.length;t+=1){let n=e.observers[t],r=C&&C.running;r&&C.disposed.has(n)||((r?!n.tState:!n.state)&&(n.pure?T.push(n):E.push(n),n.observers&&me(n)),r?n.tState=v:n.state=v)}if(T.length>1e6)throw T=[],Error()},!1)}return t}function oe(e){if(!e.fn)return;he(e);let t=D;U(e,C&&C.running&&C.sources.has(e)?e.tValue:e.value,t),C&&!C.running&&C.sources.has(e)&&queueMicrotask(()=>{le(()=>{C&&(C.running=!0),w=S=e,U(e,e.tValue,t),w=S=null},!1)})}function U(e,t,n){let r,i=S,a=w;w=S=e;try{r=e.fn(t)}catch(t){return e.pure&&(C&&C.running?(e.tState=v,e.tOwned&&e.tOwned.forEach(he),e.tOwned=void 0):(e.state=v,e.owned&&e.owned.forEach(he),e.owned=null)),e.updatedAt=n+1,ye(t)}finally{w=a,S=i}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&`observers`in e?H(e,r,!0):C&&C.running&&e.pure?(C.sources.has(e)||(e.value=r),C.sources.add(e),e.tValue=r):e.value=r,e.updatedAt=n)}function se(e,t,n,r=v,i){let a={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:S,context:S?S.context:null,pure:n};return C&&C.running&&(a.state=0,a.tState=r),S===null||S!==b&&(C&&C.running&&S.pure?S.tOwned?S.tOwned.push(a):S.tOwned=[a]:S.owned?S.owned.push(a):S.owned=[a]),a}function ce(e){let t=C&&C.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===y)return pe(e);if(e.suspense&&L(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<D);){if(t&&C.disposed.has(e))return;(t?e.tState:e.state)&&n.push(e)}for(let r=n.length-1;r>=0;r--){if(e=n[r],t){let t=e,i=n[r+1];for(;(t=t.owner)&&t!==i;)if(C.disposed.has(t))return}if((t?e.tState:e.state)===v)oe(e);else if((t?e.tState:e.state)===y){let t=T;T=null,le(()=>pe(e,n[0]),!1),T=t}}}function le(e,t){if(T)return e();let n=!1;t||(T=[]),E?n=!0:E=[],D++;try{let t=e();return ue(n),t}catch(e){n||(E=null),T=null,ye(e)}}function ue(e){if(T&&=(de(T),null),e)return;let t;if(C){if(!C.promises.size&&!C.queue.size){let e=C.sources,n=C.disposed;E.push.apply(E,C.effects),t=C.resolve;for(let e of E)`tState`in e&&(e.state=e.tState),delete e.tState;C=null,le(()=>{for(let e of n)he(e);for(let t of e){if(t.value=t.tValue,t.owned)for(let e=0,n=t.owned.length;e<n;e++)he(t.owned[e]);t.tOwned&&(t.owned=t.tOwned),delete t.tValue,delete t.tOwned,t.tState=0}ne(!1)},!1)}else if(C.running){C.running=!1,C.effects.push.apply(C.effects,E),E=null,ne(!0);return}}let n=E;E=null,n.length&&le(()=>_(n),!1),t&&t()}function de(e){for(let t=0;t<e.length;t++)ce(e[t])}function fe(e){let t,n=0;for(t=0;t<e.length;t++){let r=e[t];r.user?e[n++]=r:ce(r)}if(l.context){if(l.count){l.effects||=[],l.effects.push(...e.slice(0,n));return}d()}for(l.effects&&(l.done||!l.count)&&(e=[...l.effects,...e],n+=l.effects.length,delete l.effects),t=0;t<n;t++)ce(e[t])}function pe(e,t){let n=C&&C.running;n?e.tState=0:e.state=0;for(let r=0;r<e.sources.length;r+=1){let i=e.sources[r];if(i.sources){let e=n?i.tState:i.state;e===v?i!==t&&(!i.updatedAt||i.updatedAt<D)&&ce(i):e===y&&pe(i,t)}}}function me(e){let t=C&&C.running;for(let n=0;n<e.observers.length;n+=1){let r=e.observers[n];(t?!r.tState:!r.state)&&(t?r.tState=y:r.state=y,r.pure?T.push(r):E.push(r),r.observers&&me(r))}}function he(e){let t;if(e.sources)for(;e.sources.length;){let t=e.sources.pop(),n=e.sourceSlots.pop(),r=t.observers;if(r&&r.length){let e=r.pop(),i=t.observerSlots.pop();n<r.length&&(e.sourceSlots[i]=n,r[n]=e,t.observerSlots[n]=i)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)he(e.tOwned[t]);delete e.tOwned}if(C&&C.running&&e.pure)ge(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)he(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}C&&C.running?e.tState=0:e.state=0}function ge(e,t){if(t||(e.tState=0,C.disposed.add(e)),e.owned)for(let t=0;t<e.owned.length;t++)ge(e.owned[t])}function _e(e){return e instanceof Error?e:Error(typeof e==`string`?e:`Unknown error`,{cause:e})}function ve(e,t,n){try{for(let n of t)n(e)}catch(e){ye(e,n&&n.owner||null)}}function ye(e,t=S){let n=g&&t&&t.context&&t.context[g],r=_e(e);if(!n)throw r;E?E.push({fn(){ve(r,n,t)},state:v}):ve(r,n,t)}function be(e){if(typeof e==`function`&&!e.length)return be(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let r=be(e[n]);if(Array.isArray(r))if(r.length<32768)t.push.apply(t,r);else for(let e=0;e<r.length;e++)t.push(r[e]);else t.push(r)}return t}return e}var xe=Symbol(`fallback`);function Se(e){for(let t=0;t<e.length;t++)e[t]()}function Ce(e,t,n={}){let r=[],i=[],a=[],o=0,s=t.length>1?[]:null;return z(()=>Se(a)),()=>{let c=e()||[],l=c.length,u,d;return c[m],L(()=>{let e,t,p,m,h,g,_,v,y;if(l===0)o!==0&&(Se(a),a=[],r=[],i=[],o=0,s&&=[]),n.fallback&&(r=[xe],i[0]=O(e=>(a[0]=e,n.fallback())),o=1);else if(o===0){for(i=Array(l),d=0;d<l;d++)r[d]=c[d],i[d]=O(f);o=l}else{for(p=Array(l),m=Array(l),s&&(h=Array(l)),g=0,_=Math.min(o,l);g<_&&r[g]===c[g];g++);for(_=o-1,v=l-1;_>=g&&v>=g&&r[_]===c[v];_--,v--)p[v]=i[_],m[v]=a[_],s&&(h[v]=s[_]);for(e=new Map,t=Array(v+1),d=v;d>=g;d--)y=c[d],u=e.get(y),t[d]=u===void 0?-1:u,e.set(y,d);for(u=g;u<=_;u++)y=r[u],d=e.get(y),d!==void 0&&d!==-1?(p[d]=i[u],m[d]=a[u],s&&(h[d]=s[u]),d=t[d],e.set(y,d)):a[u]();for(d=g;d<l;d++)d in p?(i[d]=p[d],a[d]=m[d],s&&(s[d]=h[d],s[d](d))):i[d]=O(f);i=i.slice(0,o=l),r=c.slice(0)}return i});function f(e){if(a[d]=e,s){let[e,n]=k(d);return s[d]=n,t(c[d],e)}return t(c[d])}}}function W(e,t){return L(()=>e(t||{}))}var we=e=>`Stale read from <${e}>.`;function G(e){let t=`fallback`in e&&{fallback:()=>e.fallback};return N(Ce(()=>e.each,e.children,t||void 0))}function K(e){let t=e.keyed,n=N(()=>e.when,void 0,void 0),r=t?n:N(n,void 0,{equals:(e,t)=>!e==!t});return N(()=>{let i=r();if(i){let a=e.children;return typeof a==`function`&&a.length>0?L(()=>a(t?i:()=>{if(!L(r))throw we(`Show`);return n()})):a}return e.fallback},void 0,void 0)}function Te(e){let t=ie(()=>e.children),n=N(()=>{let e=t(),n=Array.isArray(e)?e:[e],r=()=>void 0;for(let e=0;e<n.length;e++){let t=e,i=n[e],a=r,o=N(()=>a()?void 0:i.when,void 0,void 0),s=i.keyed?o:N(o,void 0,{equals:(e,t)=>!e==!t});r=()=>a()||(s()?[t,o,i]:void 0)}return r});return N(()=>{let t=n()();if(!t)return e.fallback;let[r,i,a]=t,o=a.children;return typeof o==`function`&&o.length>0?L(()=>o(a.keyed?i():()=>{if(L(n)()?.[0]!==r)throw we(`Match`);return i()})):o},void 0,void 0)}function Ee(e){return e}var q=e=>N(()=>e());function De(e,t,n){let r=n.length,i=t.length,a=r,o=0,s=0,c=t[i-1].nextSibling,l=null;for(;o<i||s<a;){if(t[o]===n[s]){o++,s++;continue}for(;t[i-1]===n[a-1];)i--,a--;if(i===o){let t=a<r?s?n[s-1].nextSibling:n[a-s]:c;for(;s<a;)e.insertBefore(n[s++],t)}else if(a===s)for(;o<i;)(!l||!l.has(t[o]))&&t[o].remove(),o++;else if(t[o]===n[a-1]&&n[s]===t[i-1]){let r=t[--i].nextSibling;e.insertBefore(n[s++],t[o++].nextSibling),e.insertBefore(n[--a],r),t[i]=n[a]}else{if(!l){l=new Map;let e=s;for(;e<a;)l.set(n[e],e++)}let r=l.get(t[o]);if(r!=null)if(s<r&&r<a){let c=o,u=1,d;for(;++c<i&&c<a&&!((d=l.get(t[c]))==null||d!==r+u);)u++;if(u>r-s){let i=t[o];for(;s<r;)e.insertBefore(n[s++],i)}else e.replaceChild(n[s++],t[o++])}else o++;else t[o++].remove()}}}var Oe=`_$DX_DELEGATE`;function ke(e,t,n,r={}){let i;return O(r=>{i=r,t===document?e():X(t,e(),t.firstChild?null:void 0,n)},r.owner),()=>{i(),t.textContent=``}}function J(e,t,n,r){let i,a=()=>{let t=r?document.createElementNS(`http://www.w3.org/1998/Math/MathML`,`template`):document.createElement(`template`);return t.innerHTML=e,n?t.content.firstChild.firstChild:r?t.firstChild:t.content.firstChild},o=t?()=>L(()=>document.importNode(i||=a(),!0)):()=>(i||=a()).cloneNode(!0);return o.cloneNode=o,o}function Ae(e,t=window.document){let n=t[Oe]||(t[Oe]=new Set);for(let r=0,i=e.length;r<i;r++){let i=e[r];n.has(i)||(n.add(i),t.addEventListener(i,Le))}}function Y(e,t,n){Fe(e)||(n==null?e.removeAttribute(t):e.setAttribute(t,n))}function je(e,t){Fe(e)||(t==null?e.removeAttribute(`class`):e.className=t)}function Me(e,t,n,r){if(r)Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n;else if(Array.isArray(n)){let r=n[0];e.addEventListener(t,n[0]=t=>r.call(e,n[1],t))}else e.addEventListener(t,n,typeof n!=`function`&&n)}function Ne(e,t,n={}){let r=Object.keys(t||{}),i=Object.keys(n),a,o;for(a=0,o=i.length;a<o;a++){let r=i[a];!r||r===`undefined`||t[r]||(Ie(e,r,!1),delete n[r])}for(a=0,o=r.length;a<o;a++){let i=r[a],o=!!t[i];!i||i===`undefined`||n[i]===o||!o||(Ie(e,i,!0),n[i]=o)}return n}function Pe(e,t,n){return L(()=>e(t,n))}function X(e,t,n,r){if(n!==void 0&&!r&&(r=[]),typeof t!=`function`)return Re(e,t,r,n);j(r=>Re(e,t(),r,n),r)}function Fe(e){return!!l.context&&!l.done&&(!e||e.isConnected)}function Ie(e,t,n){let r=t.trim().split(/\s+/);for(let t=0,i=r.length;t<i;t++)e.classList.toggle(r[t],n)}function Le(e){if(l.registry&&l.events&&l.events.find(([t,n])=>n===e))return;let t=e.target,n=`$$${e.type}`,r=e.target,i=e.currentTarget,a=t=>Object.defineProperty(e,"target",{configurable:!0,value:t}),o=()=>{let r=t[n];if(r&&!t.disabled){let i=t[`${n}Data`];if(i===void 0?r.call(t,e):r.call(t,i,e),e.cancelBubble)return}return t.host&&typeof t.host!=`string`&&!t.host._$host&&t.contains(e.target)&&a(t.host),!0},s=()=>{for(;o()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),l.registry&&!l.done&&(l.done=_$HY.done=!0),e.composedPath){let n=e.composedPath();a(n[0]);for(let e=0;e<n.length-2&&(t=n[e],o());e++){if(t._$host){t=t._$host,s();break}if(t.parentNode===i)break}}else s();a(r)}function Re(e,t,n,r,i){let a=Fe(e);if(a){!n&&(n=[...e.childNodes]);let t=[];for(let e=0;e<n.length;e++){let r=n[e];r.nodeType===8&&r.data.slice(0,2)===`!$`?r.remove():t.push(r)}n=t}for(;typeof n==`function`;)n=n();if(t===n)return n;let o=typeof t,s=r!==void 0;if(e=s&&n[0]&&n[0].parentNode||e,o===`string`||o===`number`){if(a||o===`number`&&(t=t.toString(),t===n))return n;if(s){let i=n[0];i&&i.nodeType===3?i.data!==t&&(i.data=t):i=document.createTextNode(t),n=Ve(e,n,r,i)}else n=n!==``&&typeof n==`string`?e.firstChild.data=t:e.textContent=t}else if(t==null||o===`boolean`){if(a)return n;n=Ve(e,n,r)}else if(o===`function`)return j(()=>{let i=t();for(;typeof i==`function`;)i=i();n=Re(e,i,n,r)}),()=>n;else if(Array.isArray(t)){let o=[],c=n&&Array.isArray(n);if(ze(o,t,n,i))return j(()=>n=Re(e,o,n,r,!0)),()=>n;if(a){if(!o.length)return n;if(r===void 0)return n=[...e.childNodes];let t=o[0];if(t.parentNode!==e)return n;let i=[t];for(;(t=t.nextSibling)!==r;)i.push(t);return n=i}if(o.length===0){if(n=Ve(e,n,r),s)return n}else c?n.length===0?Be(e,o,r):De(e,n,o):(n&&Ve(e),Be(e,o));n=o}else if(t.nodeType){if(a&&t.parentNode)return n=s?[t]:t;if(Array.isArray(n)){if(s)return n=Ve(e,n,r,t);Ve(e,n,null,t)}else n==null||n===``||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}return n}function ze(e,t,n,r){let i=!1;for(let a=0,o=t.length;a<o;a++){let o=t[a],s=n&&n[e.length],c;if(!(o==null||o===!0||o===!1))if((c=typeof o)==`object`&&o.nodeType)e.push(o);else if(Array.isArray(o))i=ze(e,o,s)||i;else if(c===`function`)if(r){for(;typeof o==`function`;)o=o();i=ze(e,Array.isArray(o)?o:[o],Array.isArray(s)?s:[s])||i}else e.push(o),i=!0;else{let t=String(o);s&&s.nodeType===3&&s.data===t?e.push(s):e.push(document.createTextNode(t))}}return i}function Be(e,t,n=null){for(let r=0,i=t.length;r<i;r++)e.insertBefore(t[r],n)}function Ve(e,t,n,r){if(n===void 0)return e.textContent=``;let i=r||document.createTextNode(``);if(t.length){let r=!1;for(let a=t.length-1;a>=0;a--){let o=t[a];if(i!==o){let t=o.parentNode===e;!r&&!a?t?e.replaceChild(i,o):e.insertBefore(i,n):t&&o.remove()}else r=!0}}else e.insertBefore(i,n);return[i]}var He=J(`<span><span class=dot></span> `),Ue=J(`<span class="chip chip-plain">…`),We=J(`<span class="chip chip-plain"><span class=dot></span> `),Ge=J(`<header class=topbar><div class=topbar-inner><a class=wordmark href=#/>dreb</a><nav><a href=#/>fleet</a><a href=#/files>files</a><a href=#/settings>settings</a></nav><span class=topbar-spacer>`),Ke=J(`<button type=button class="btn btn-small">recovery failed — retry`),qe=J(`<span><output aria-live=polite><span class=dot></span> `),Je=J(`<div class=modal-actions>`),Ye=J(`<div class=modal-backdrop role=presentation><div role=dialog><div class=modal-title></div><div class=modal-body>`),Xe=J(`<div class=toast-region>`),Ze=J(`<div><span></span><button type=button class="btn btn-small"style=margin-left:auto>✕`);function Qe(e){let t={running:`●`,attention:`◆`,idle:`○`,error:`✕`},n={running:`running`,attention:`needs attention`,idle:`idle`,error:`error`};return(()=>{var r=He(),i=r.firstChild;return i.nextSibling,X(i,()=>t[e.status]),X(r,()=>e.label??n[e.status],null),j(()=>je(r,`chip chip-${e.status}`)),r})()}function $e(e){let t=()=>e.store.auth();return W(K,{get when(){return t()},get fallback(){return Ue()},children:e=>(()=>{var t=We(),n=t.firstChild;return n.nextSibling,X(n,()=>e().mode===`local`?`⌂`:`⇄`),X(t,(()=>{var t=q(()=>e().mode===`local`);return()=>t()?`local · 127.0.0.1`:`remote · ${e().device??e().identity??`device`} via tailscale`})(),null),t})()})}function et(e){let t=()=>Object.values(e.store.sessions).filter(e=>e.needsAttention).length+e.store.fleet().runtimes.filter(e=>e.needsAttention).length;return(()=>{var n=Ge(),r=n.firstChild,i=r.firstChild.nextSibling,a=i.firstChild;a.firstChild;var o=a.nextSibling,s=o.nextSibling;return i.nextSibling,X(a,()=>t()>0?` ◆`:``,null),X(r,W(tt,{get store(){return e.store}}),null),X(r,W($e,{get store(){return e.store}}),null),j(t=>{var n=e.active===`fleet`?`page`:void 0,r=e.active===`files`?`page`:void 0,i=e.active===`settings`?`page`:void 0;return n!==t.e&&Y(a,`aria-current`,t.e=n),r!==t.t&&Y(o,`aria-current`,t.t=r),i!==t.a&&Y(s,`aria-current`,t.a=i),t},{e:void 0,t:void 0,a:void 0}),n})()}function tt(e){let t=()=>e.store.resyncing()?`resyncing`:e.store.connection().state,n=()=>{switch(t()){case`connected`:return{glyph:`●`,text:`live`,tone:`idle`};case`connecting`:return{glyph:`…`,text:`connecting`,tone:`attention`};case`retrying`:{let t=e.store.connection().retryDelayMs;return{glyph:`↻`,text:`retrying${t===void 0?``:` in ${Math.ceil(t/1e3)}s`}`,tone:`attention`}}case`resyncing`:return{glyph:`↻`,text:`recovering live state`,tone:`attention`};case`auth_failed`:return{glyph:`✕`,text:`live connection unauthorized`,tone:`error`};default:return{glyph:`✕`,text:`live connection disconnected`,tone:`error`}}};return(()=>{var t=qe(),r=t.firstChild,i=r.firstChild;return i.nextSibling,X(i,()=>n().glyph),X(r,()=>n().text,null),X(t,W(K,{get when(){return e.store.resyncError()},get children(){var t=Ke();return t.$$click=()=>void e.store.retryResync(),j(()=>Y(t,`title`,e.store.resyncError())),t}}),null),j(i=>{var a=`connection-indicator ${e.class??``}`.trim(),o=`chip chip-${n().tone}`;return a!==i.e&&je(t,i.e=a),o!==i.t&&je(r,i.t=o),i},{e:void 0,t:void 0}),t})()}function nt(e){return(()=>{var t=Ye(),n=t.firstChild,r=n.firstChild,i=r.nextSibling;return t.$$keydown=t=>{t.key===`Escape`&&e.onDismiss()},t.$$click=t=>{t.target===t.currentTarget&&e.onDismiss()},X(r,()=>e.title),X(i,()=>e.children),X(n,W(K,{get when(){return e.actions},get children(){var t=Je();return X(t,()=>e.actions),t}}),null),j(t=>{var r=`modal ${e.class??``}`,i=e.title;return r!==t.e&&je(n,t.e=r),i!==t.t&&Y(n,`aria-label`,t.t=i),t},{e:void 0,t:void 0}),t})()}function rt(e){return(()=>{var t=Xe();return X(t,W(G,{get each(){return e.toasts},children:t=>(()=>{var n=Ze(),r=n.firstChild,i=r.nextSibling;return X(r,()=>t.text),i.$$click=()=>e.onDismiss(t.id),j(()=>je(n,`toast ${t.tone}`)),n})()})),t})()}function it(e){if(!e)return``;let t=typeof e==`number`?e:Date.parse(e);if(Number.isNaN(t))return``;let n=Math.floor((Date.now()-t)/1e3);if(n<60)return`just now`;let r=Math.floor(n/60);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<30?`${a}d ago`:`${Math.floor(a/30)}mo ago`}function at(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}Ae([`click`,`keydown`]);function ot(e,t,n,r){if(typeof r==`object`&&r&&`error`in r)return String(r.error);let i=typeof r==`string`?r:String(r);return/^\s*<(?:!doctype|html)/i.test(i)?`${(t?.method??`GET`).toUpperCase()} ${e} → ${n} ${n===404?`Not Found`:`error`}`:i.trim()||`Request failed (${n})`}async function Z(e,t){let n=await fetch(e,t),r=(n.headers.get(`content-type`)??``).includes(`application/json`)?await n.json():await n.text();if(!n.ok){let i=ot(e,t,n.status,r);throw Object.assign(Error(i),{status:n.status,body:r})}return r}function st(e){return{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}}var Q={auth:e=>Z(`/api/auth`,{signal:e}),connectionDiagnostic:e=>Z(`/api/events/diagnostic`,st(e)),pair:e=>Z(`/api/pair`,st({pin:e})),pairingCode:()=>Z(`/api/pairing-code`),devices:()=>Z(`/api/devices`),unpair:e=>Z(`/api/devices/${encodeURIComponent(e)}`,{method:`DELETE`}),fleet:()=>Z(`/api/fleet`),sessions:()=>Z(`/api/sessions`),resync:(e,t,n)=>{let r=new URLSearchParams;return e&&r.set(`key`,e),t&&r.set(`agentId`,t),Z(`/api/resync${r.size?`?${r}`:``}`,{signal:n})},createRuntime:(e,t={})=>Z(`/api/runtimes`,st({cwd:e,...t})),stopRuntime:e=>Z(`/api/runtimes/${e}`,{method:`DELETE`}),runtime:(e,t)=>Z(`/api/runtimes/${e}`,{signal:t}),hydrate:(e,t)=>Z(`/api/runtimes/${e}/hydrate`,{signal:t}),messages:(e,t)=>Z(`/api/runtimes/${e}/messages`,{signal:t}),pending:e=>Z(`/api/runtimes/${e}/pending`),dequeue:e=>Z(`/api/runtimes/${e}/dequeue`,{method:`POST`}),prompt:(e,t,n,r)=>Z(`/api/runtimes/${e}/prompt`,st({message:t,mode:n,images:r})),abort:e=>Z(`/api/runtimes/${e}/abort`,{method:`POST`}),abortCompaction:e=>Z(`/api/runtimes/${e}/abort-compaction`,{method:`POST`}),abortRetry:e=>Z(`/api/runtimes/${e}/abort-retry`,{method:`POST`}),setModel:(e,t,n)=>Z(`/api/runtimes/${e}/model`,st({provider:t,modelId:n})),models:e=>Z(`/api/runtimes/${e}/models`),setThinking:(e,t)=>Z(`/api/runtimes/${e}/thinking`,st({level:t})),compact:(e,t)=>Z(`/api/runtimes/${e}/compact`,st({instructions:t})),rename:(e,t)=>Z(`/api/runtimes/${e}/name`,st({name:t})),stats:(e,t)=>Z(`/api/runtimes/${e}/stats`,{signal:t}),performance:e=>Z(`/api/runtimes/${e}/performance`),resources:e=>Z(`/api/runtimes/${e}/resources`),commands:e=>Z(`/api/runtimes/${e}/commands`),branch:e=>Z(`/api/runtimes/${e}/branch`),forkMessages:e=>Z(`/api/runtimes/${e}/fork-messages`),fork:(e,t)=>Z(`/api/runtimes/${e}/fork`,st({entryId:t})),backgroundAgents:(e,t)=>Z(`/api/runtimes/${e}/background-agents`,{signal:t}),subagentMessages:(e,t,n)=>Z(`/api/runtimes/${e}/subagents/${encodeURIComponent(t)}/messages`,{signal:n}),extensionUiResponse:(e,t)=>Z(`/api/runtimes/${e}/extension-ui-response`,st(t)),exportHtmlUrl:e=>`/api/runtimes/${e}/export-html`,deleteSession:e=>Z(`/api/sessions`,{method:`DELETE`,headers:{"content-type":`application/json`},body:JSON.stringify({path:e})}),settings:()=>Z(`/api/settings`),saveSettings:e=>Z(`/api/settings`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}),settingsModels:()=>Z(`/api/settings/models`),agentTypes:e=>Z(e?`/api/settings/agent-types?cwd=${encodeURIComponent(e)}`:`/api/settings/agent-types`),version:()=>Z(`/api/version`),serverInfo:()=>Z(`/api/server/info`),restartServer:()=>Z(`/api/server/restart`,{method:`POST`}),dailyCost:()=>Z(`/api/daily-cost`),listFiles:e=>Z(`/api/files?path=${encodeURIComponent(e)}`),trustContextFolder:e=>Z(`/api/files/trust`,st({path:e})),untrustContextFolder:e=>Z(`/api/files/untrust`,st({path:e})),removeTrustedContextFolder:e=>Z(`/api/settings/remove-trusted`,st({path:e})),places:()=>Z(`/api/files/places`),downloadUrl:e=>`/api/files/download?path=${encodeURIComponent(e)}`,upload:async(e,t,n)=>{let r=await fetch(`/api/files/upload?dir=${encodeURIComponent(e)}&name=${encodeURIComponent(t.name)}&overwrite=${n}`,{method:`POST`,body:t}),i=await r.json();if(!r.ok)throw Object.assign(Error(String(i.error??r.statusText)),{status:r.status});return i},mkdir:(e,t)=>Z(`/api/files/mkdir`,st({dir:e,name:t}))},ct=1,lt=6e4,ut=6e4,dt=1e4;function ft(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return Number.isSafeInteger(t.seq)&&t.seq>0&&typeof t.key==`string`&&!!t.event&&typeof t.event==`object`&&!Array.isArray(t.event)}function pt(e,t={}){let n=t.EventSource??EventSource,r=t.now??Date.now,i=t.random??Math.random,a=t.setTimeout??setTimeout,o=t.clearTimeout??clearTimeout,s=t.setInterval??setInterval,c=t.clearInterval??clearInterval,l=t.visibility??document,u=t.status??Q.auth,d=t.diagnostic??(e=>Q.connectionDiagnostic(e)),f=t.baseDelayMs??1e3,p=t.maxDelayMs??3e4,m=t.healthyResetMs??lt,h=t.watchdogMs??ut,g=t.statusTimeoutMs??dt,_,v,y,b,x,S,C=0,w=!1,T=0,E,D=r(),O,k,A,j=0,M=0,N=0,P={state:`connecting`,attempt:0};function F(){return l.visibilityState!==`hidden`}function I(t){let n=P.state;if(P={...t,...E===void 0?{}:{lastAppliedSeq:E}},e.onStatusChange?.(P),!k)return;let i=Math.max((r()-(A??r()))/6e4,1/60);Promise.resolve(d({connectionId:k,state:P.state,...n===P.state?{}:{previousState:n},attempt:T,...P.retryDelayMs===void 0?{}:{delayMs:P.retryDelayMs},visibility:F()?`visible`:`hidden`,...E===void 0?{}:{lastAppliedSeq:E},heartbeatAgeMs:Math.max(0,r()-D),eventCount:j,eventRatePerMinute:j/i,processingLagTotalMs:M,processingLagMaxMs:N})).catch(()=>{})}function L(){b!==void 0&&o(b),b=void 0}function R(){_&&(v&&_.removeEventListener(`heartbeat`,v),y&&_.removeEventListener(`connection`,y),v=void 0,y=void 0,_.onopen=null,_.onmessage=null,_.onerror=null,_.close(),_=void 0,O=void 0,k=void 0,A=void 0,j=0,M=0,N=0)}function z(){let e=Math.min(p,f*2**Math.max(0,T-1));return Math.min(p,Math.max(0,Math.round(e*(.75+i()*.5))))}function B(){if(w||b!==void 0||P.state===`auth_failed`)return;T+=1;let e=z(),t=r()+e;I({state:`retrying`,attempt:T,retryDelayMs:e,retryAt:t}),b=a(()=>{b=void 0,ie()},e)}function ee(t){w||(I({state:`resyncing`,attempt:T}),R(),e.onRecovery?.(t),t===`watchdog`&&!S?re():B())}function te(){S&&=(S.timeout!==void 0&&o(S.timeout),S.controller.abort(),void 0)}function ne(e,t){if(S||w)return;let n={controller:new AbortController,timeout:void 0};S=n;let r=!1,i=e=>{r||(r=!0,n.timeout!==void 0&&o(n.timeout),!w&&S===n&&e(),S===n&&(S=void 0))};n.timeout=a(()=>{n.controller.abort(),i(()=>t(Object.assign(Error(`dashboard authentication validation timed out`),{status:void 0})))},g);try{Promise.resolve(u(n.controller.signal)).then(()=>i(e),e=>i(()=>t(e)))}catch(e){i(()=>t(e))}}function re(){ne(()=>B(),e=>{if(e?.status===401||e?.status===403){L(),I({state:`auth_failed`,attempt:T});return}B()})}function ie(){if(w||_)return;L();let t=++C;I({state:`connecting`,attempt:T});let i=E===void 0?`/api/events`:`/api/events?lastEventId=${E}`,a=new n(i);_=a,D=r(),O=void 0;let o=()=>{w||t!==C||_!==a||(D=r(),T>0&&O!==void 0&&D-O>=m&&(T=0,I({state:`connected`,attempt:T})))};a.onopen=()=>{w||t!==C||_!==a||(O=r(),o(),I({state:`connected`,attempt:T}))},v=()=>o(),a.addEventListener(`heartbeat`,v),y=n=>{if(!(w||t!==C||_!==a))try{let t=JSON.parse(n.data);if(typeof t.connectionId!=`string`)throw Error(`missing connection id`);k=t.connectionId,A=r(),j=0,M=0,N=0,e.onConnectionMetadata?.(k),o(),I(P)}catch{ee(`protocol`)}},a.addEventListener(`connection`,y),a.onmessage=n=>{if(w||t!==C||_!==a)return;D=r();let i;try{if(i=JSON.parse(n.data),!ft(i))throw Error(`invalid dashboard SSE envelope`);let e=i.event.type===`dashboard_resync`;if(!e&&E!==void 0&&i.seq<=E)return;if(!e&&E!==void 0&&i.seq!==E+1)throw Error(`dashboard SSE sequence gap`)}catch{ee(`protocol`);return}let s=r();try{e.onEnvelope(i)}catch{ee(`handler`);return}E=i.seq,j+=1;let c=Math.max(0,r()-s);M+=c,N=Math.max(N,c),o()},a.onerror=()=>{w||t!==C||_!==a||(I({state:`disconnected`,attempt:T}),R(),re())}}let V=()=>{w||!F()||S||ne(()=>{(!_||_.readyState!==ct||r()-D>h)&&ee(`watchdog`)},e=>{if(e?.status===401||e?.status===403){L(),I({state:`auth_failed`,attempt:T}),R();return}ee(`watchdog`)})};return l.addEventListener(`visibilitychange`,V),x=s(()=>{F()&&_&&r()-D>h&&ee(`watchdog`)},Math.min(h,5e3)),ie(),()=>{w=!0,C+=1,te(),L(),x!==void 0&&c(x),x=void 0,l.removeEventListener(`visibilitychange`,V),I({state:`disconnected`,attempt:T}),R()}}var mt=J(`<p class=settings-error>`),ht=J(`<div class=field><label for=mkdir-name>folder name</label><input id=mkdir-name type=text>`),gt=J(`<div class=screen-fill><main class=container><div class=files-head><div><nav class=crumbs aria-label=breadcrumb></nav><p class=scope-note>whole host filesystem — you can browse anywhere the dreb process can read</p></div><div class=head-actions><button type=button class=btn>+ new folder</button><button type=button class=btn>↑ upload here</button><button type=button class="btn btn-primary">▸ new session here</button></div></div><section class=context-trust aria-live=polite></section><div class=places><span class=label>places</span></div><table class="table file-table"><thead><tr><th>name</th><th class="meta cols">size</th><th class="meta cols">modified</th><th></th></tr></thead><tbody></tbody></table><section class=drop-zone aria-label="file upload drop zone">drop a file here to upload to </section><p class=upload-warning>Uploads land on the host machine and become visible to any agent working near this path. Existing files are never overwritten silently — you'll be asked first.</p><input type=file style=display:none>`),_t=J(`<span class=sep>/`),vt=J(`<a>`),yt=J(`<span>nested context trust: checking…`),bt=J(`<div><strong>Nested context is untrusted.</strong><p>This folder's nested instructions are not loaded automatically.</p><button type=button class="btn btn-small btn-primary"></button><p class=context-trust-impact>Trusting this folder trusts it and all descendants.`),xt=J(`<div><strong></strong><p></p><button type=button class="btn btn-small btn-danger"></button><p class=context-trust-impact>This removes trust from <!> and all of its descendants.`),St=J(`<div class=context-trust-warning><strong>Global expert trust is ON.</strong> Nested instructions from any resolvable directory may load, including prompt-injection content. Folder trust cannot override this global setting. <a href=#/settings>Disable global expert trust in Settings.`),Ct=J(`<button type=button class=place-chip>`),wt=J(`<button type=button class=name><span class=icon>▸</span> <!>/`),Tt=J(`<a class="btn btn-small">↓ download`),Et=J(`<tr><td></td><td class="meta cols"></td><td class="meta cols"></td><td class=actions>`),Dt=J(`<span class=name><span class=icon>·</span> `),Ot=J(`<p>“<!>” already exists in <!>. Overwrite it?`),kt=J(`<button type=button class="btn btn-small">cancel`),At=J(`<button type=button class="btn btn-small btn-danger">overwrite`),jt=J(`<button type=button class="btn btn-small btn-primary">create`);function Mt(e){let t=e.split(`/`).filter(Boolean),n=[{label:`/`,path:`/`}],r=``;for(let e of t)r+=`/${e}`,n.push({label:e,path:r});return n}function Nt(e){let[t,n]=k(e.initialPath??``),[r,i]=k(),[a,o]=k(!1),[s,c]=k(),[l,u]=k(!1),[d,f]=k(``),[p,m]=k(!1),[h]=F(async()=>{let{places:e}=await Q.places();return e}),[g,{mutate:_,refetch:v}]=F(()=>t(),async e=>{if(i(void 0),!e){let{places:e}=await Q.places(),t=e.find(e=>e.label===`home`)?.path??`/`;return n(t),Q.listFiles(t)}return Q.listFiles(e)});async function y(e,n){try{await Q.upload(t(),e,n),c(void 0),await v()}catch(t){t?.status===409&&!n?c(e):i(t instanceof Error?t.message:String(t))}}async function b(){try{let n=await Q.createRuntime(t());e.store.upsertRuntime(n),await e.store.refreshDiskSessions(),e.store.navigate({screen:`session`,key:n.key})}catch(e){i(e instanceof Error?e.message:String(e))}}async function x(e){let n=g();if(n){i(void 0),m(!0);try{let r=e===`trust`?await Q.trustContextFolder(n.path):await Q.untrustContextFolder(n.path),i=g();t()===n.path&&i?.path===n.path&&_({...i,contextTrust:r.evaluation})}catch(e){i(e instanceof Error?e.message:String(e))}finally{m(!1)}}}let S;return(()=>{var m=gt(),_=m.firstChild,C=_.firstChild,w=C.firstChild,T=w.firstChild,E=w.nextSibling.firstChild,D=E.nextSibling,O=D.nextSibling,k=C.nextSibling,A=k.nextSibling;A.firstChild;var M=A.nextSibling,N=M.firstChild.nextSibling,P=M.nextSibling;P.firstChild;var F=P.nextSibling.nextSibling;X(m,W(et,{get store(){return e.store},active:`files`}),_),X(T,W(G,{get each(){return Mt(t())},children:(e,t)=>[W(K,{get when(){return t()>1},get children(){return _t()}}),(()=>{var t=vt();return t.$$click=t=>{t.preventDefault(),n(e.path)},X(t,()=>e.label),j(()=>Y(t,`href`,`#/files/${encodeURIComponent(e.path)}`)),t})()]})),E.$$click=()=>u(!0),D.$$click=()=>S?.click(),O.$$click=b,X(k,W(K,{get when(){return g()?.contextTrust},get fallback(){return yt()},children:e=>W(K,{get when(){return e().state===`untrusted`},get fallback(){return W(K,{get when(){return e().state===`trusted-root`},get fallback(){return St()},get children(){var t=xt(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling,a=i.nextSibling,o=a.firstChild.nextSibling;return o.nextSibling,X(n,()=>e().grantingRoot===e().canonicalTarget?`Nested context trusted for this folder`:`Nested context inherited from a trusted root`),X(r,(()=>{var t=q(()=>e().grantingRoot===e().canonicalTarget);return()=>t()?`${e().grantingRoot} and all descendants are trusted.`:`${e().canonicalTarget} is covered by ${e().grantingRoot} and its descendants.`})()),i.$$click=()=>void x(`untrust`),X(i,(()=>{var t=q(()=>!!p());return()=>t()?`removing trust…`:`untrust ${e().grantingRoot}`})()),X(a,()=>e().grantingRoot,o),j(()=>i.disabled=p()),t}})},get children(){var e=bt(),t=e.firstChild.nextSibling.nextSibling;return t.$$click=()=>void x(`trust`),X(t,()=>p()?`trusting…`:`trust this folder and descendants`),j(()=>t.disabled=p()),e}})})),X(A,W(G,{get each(){return h()??[]},children:e=>(()=>{var t=Ct();return t.$$click=()=>n(e.path),X(t,()=>e.label),t})()}),null),X(_,W(K,{get when(){return r()},get children(){var e=mt();return X(e,r),e}}),M),X(N,W(G,{get each(){return g()?.entries??[]},children:e=>(()=>{var t=Et(),r=t.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.nextSibling;return X(r,W(K,{get when(){return e.type===`dir`},get fallback(){return(()=>{var t=Dt();return t.firstChild.nextSibling,X(t,()=>e.name,null),t})()},get children(){var t=wt(),r=t.firstChild.nextSibling.nextSibling;return r.nextSibling,t.$$click=()=>n(`${g().path}/${e.name}`.replace(`//`,`/`)),X(t,()=>e.name,r),t}})),X(i,(()=>{var t=q(()=>e.type===`dir`);return()=>t()?`—`:at(e.size)})()),X(a,()=>it(e.modified)),X(o,W(K,{get when(){return e.type===`file`},get children(){var t=Tt();return j(()=>Y(t,`href`,Q.downloadUrl(`${g().path}/${e.name}`.replace(`//`,`/`)))),t}})),t})()})),P.addEventListener(`drop`,e=>{e.preventDefault(),o(!1);let t=e.dataTransfer?.files[0];t&&y(t,!1)}),P.addEventListener(`dragleave`,()=>o(!1)),P.addEventListener(`dragover`,e=>{e.preventDefault(),o(!0)}),X(P,t,null),F.addEventListener(`change`,e=>{let t=e.currentTarget.files?.[0];t&&y(t,!1),e.currentTarget.value=``});var I=S;return typeof I==`function`?Pe(I,F):S=F,X(m,W(K,{get when(){return s()},children:e=>W(nt,{title:`file exists`,onDismiss:()=>c(void 0),get actions(){return[(()=>{var e=kt();return e.$$click=()=>c(void 0),e})(),(()=>{var t=At();return t.$$click=()=>y(e(),!0),t})()]},get children(){var n=Ot(),r=n.firstChild.nextSibling,i=r.nextSibling.nextSibling;return i.nextSibling,X(n,()=>e().name,r),X(n,t,i),n}})}),null),X(m,W(K,{get when(){return l()},get children(){return W(nt,{title:`new folder`,onDismiss:()=>u(!1),get actions(){return[(()=>{var e=kt();return e.$$click=()=>u(!1),e})(),(()=>{var e=jt();return e.$$click=async()=>{try{await Q.mkdir(t(),d().trim()),u(!1),f(``),await v()}catch(e){i(e instanceof Error?e.message:String(e)),u(!1)}},j(()=>e.disabled=!d().trim()),e})()]},get children(){var e=ht(),t=e.firstChild.nextSibling;return t.$$input=e=>f(e.currentTarget.value),j(()=>t.value=d()),e}})}}),null),j(()=>P.classList.toggle(`active`,!!a())),m})()}Ae([`click`,`input`]);var Pt=J(`<p class=attention-reason>`),Ft=J(`<p class=error-reason>`),It=J(`<p class=activity>`),Lt=J(`<div class=subagents><span>⚡ <!> running · <!> done`),Rt=J(`<span>tasks <!>/`),zt=J(`<span>·`),Bt=J(`<span>`),Vt=J(`<span>ctx <!>%`),Ht=J(`<article class=session-card><div class=session-title><span class=name></span></div><p class=session-project></p><div class=session-meta><span> msgs</span><span>·</span><span></span></div><div class=session-actions><button type=button class="btn btn-small btn-primary">open</button><button type=button class="btn btn-small btn-danger">stop runtime`),Ut=J(`<span class=agent-line><span class=live>●</span> <!> — `),Wt=J(`<div class=field><label for=new-session-cwd>project path</label><input id=new-session-cwd type=text placeholder=/path/to/project>`),Gt=J(`<div class=field><label for=recent-projects-list>recent projects</label><div class=recent-projects id=recent-projects-list>`),Kt=J(`<div class=field><label for=new-session-prompt>first prompt (optional)</label><textarea id=new-session-prompt rows=3>`),qt=J(`<p class=pair-error>`),Jt=J(`<button type=button class="btn btn-small">cancel`),Yt=J(`<button type=button class="btn btn-small btn-primary">`),Xt=J(`<button type=button>`),Zt=J(`<div class=settings-error role=alert>Fleet could not be loaded: `),Qt=J(`<div class=settings-error role=alert>Fleet stats could not be refreshed: `),$t=J(`<section class=live-sessions><div class=session-grid>`),en=J(`<section class=past-sessions><h2 class=past-sessions-head>past sessions`),tn=J(`<div class=screen-fill><main class=container><div class=fleet-head><div><h1>fleet</h1><p class="muted small"> live · <!> needs attention · <!> on disk</p></div><button type=button class="btn btn-primary">+ new session`),nn=J(`<div class=empty-state><p>No sessions yet.</p><p style=margin-top:8px><button type=button class="btn btn-primary">+ create your first session`),rn=J(`<button type=button class=disk-more>`),an=J(`<section class=project-group><div class=group-head><h3></h3><span class="muted small"> on disk</span><button type=button class="btn btn-small">+ new`),on=J(`<div class=disk-row><span class=name></span><span class=meta> msgs · </span><span class=actions><button type=button class="btn btn-small">resume</button><button type=button class="btn btn-small btn-danger">delete`),sn=J(`<p> — <!> messages. The session file is moved to trash where supported.`),cn=J(`<button type=button class="btn btn-small btn-danger">delete`);function ln(e){return e.error?`error`:e.needsAttention?`attention`:e.state.isStreaming||e.state.isCompacting?`running`:`idle`}function un(e){return e===`/tmp`||e.startsWith(`/tmp/`)?`/tmp`:e}function dn(e){return e.replace(/^\/home\/[^/]+/,`~`)}function fn(e){let t=e.state.model;return t?`${t.provider}/${t.id}`:void 0}function pn(e){return e.stats?`$${e.stats.cost.toFixed(2)}`:void 0}var mn=200;function hn(e,t){let n=e.sessions[t.key]?.entries??[];for(let e=n.length-1;e>=0;--e){let t=n[e];if(t.kind!==`assistant`)continue;let r=t.blocks.filter(e=>e.kind===`text`).map(e=>e.text).join(``).trim();if(r)return r.slice(0,mn)}return t.lastAssistantText}function gn(e){let t=()=>ln(e.runtime),n=()=>e.store.sessions[e.runtime.key],r=()=>e.runtime.backgroundAgents.filter(e=>e.status===`running`),i=()=>e.runtime.backgroundAgents.filter(e=>e.status!==`running`),a=()=>n()?.tasks??e.runtime.state.tasks??[],o=()=>a().filter(e=>e.status===`completed`).length,s=()=>e.runtime.state.contextUsage,c=()=>{let t=n();return t?.workingText?`▸ ${t.workingText}`:t?.suggestedCommand?`suggested next: ${t.suggestedCommand}`:hn(e.store,e.runtime)};return(()=>{var l=Ht(),u=l.firstChild,d=u.firstChild,f=u.nextSibling,p=f.nextSibling,m=p.firstChild,h=m.firstChild,g=m.nextSibling.nextSibling,_=p.nextSibling.firstChild,v=_.nextSibling;return X(d,()=>n()?.sessionName??e.runtime.state.sessionName??e.runtime.state.sessionId.slice(0,8)),X(u,W(K,{get when(){return n()?.lastError},get fallback(){return W(Qe,{get status(){return t()}})},get children(){return W(Qe,{status:`error`})}}),null),X(f,()=>dn(e.runtime.cwd)),X(l,W(K,{get when(){return t()===`attention`},get children(){var e=Pt();return X(e,(()=>{var e=q(()=>!!n()?.uiRequests[0]);return()=>e()?`waiting for input — ${n().uiRequests[0].title}`:`needs attention`})()),e}}),p),X(l,W(K,{get when(){return e.runtime.error??n()?.lastError},get children(){var t=Ft();return X(t,()=>e.runtime.error??n().lastError),t}}),p),X(l,W(K,{get when(){return c()},get children(){var e=It();return X(e,c),e}}),p),X(l,W(K,{get when(){return e.runtime.backgroundAgents.length>0},get children(){var e=Lt(),t=e.firstChild,n=t.firstChild.nextSibling,a=n.nextSibling.nextSibling;return a.nextSibling,X(t,()=>r().length,n),X(t,()=>i().length,a),X(e,W(G,{get each(){return r().slice(0,3)},children:e=>(()=>{var t=Ut(),n=t.firstChild.nextSibling.nextSibling;return n.nextSibling,X(t,()=>e.agentType,n),X(t,()=>e.taskSummary,null),t})()}),null),e}}),p),X(p,W(K,{get when(){return a().length>0},get children(){return[(()=>{var e=Rt(),t=e.firstChild.nextSibling;return t.nextSibling,X(e,o,t),X(e,()=>a().length,null),e})(),zt()]}}),m),X(p,W(K,{get when(){return fn(e.runtime)},get children(){return[(()=>{var t=Bt();return X(t,()=>fn(e.runtime)),t})(),zt()]}}),m),X(p,W(K,{get when(){return q(()=>!!s())()&&s().percent!==null},get children(){return[(()=>{var e=Vt(),t=e.firstChild.nextSibling;return t.nextSibling,X(e,()=>s().percent.toFixed(0),t),e})(),zt()]}}),m),X(p,W(K,{get when(){return pn(e.runtime)},get children(){return[(()=>{var t=Bt();return X(t,()=>pn(e.runtime)),t})(),zt()]}}),m),X(m,()=>e.runtime.state.messageCount,h),X(g,()=>it(e.runtime.lastActivity)),_.$$click=()=>e.store.navigate({screen:`session`,key:e.runtime.key}),v.$$click=async()=>{await Q.stopRuntime(e.runtime.key),await e.store.removeRuntime(e.runtime.key)},j(r=>{var i=t()===`attention`,a=!!(t()===`error`||n()?.lastError),o=e.runtime.cwd;return i!==r.e&&l.classList.toggle(`attention`,r.e=i),a!==r.t&&l.classList.toggle(`error`,r.t=a),o!==r.a&&Y(f,`title`,r.a=o),r},{e:void 0,t:void 0,a:void 0}),l})()}function _n(e){let[t,n]=k(e.initialCwd??``),[r,i]=k(``),[a,o]=k(),[s,c]=k(!1);async function l(){c(!0),o(void 0);try{let n=await Q.createRuntime(t(),{firstPrompt:r()||void 0});e.store.upsertRuntime(n),await e.store.refreshDiskSessions(),e.onClose(),e.store.navigate({screen:`session`,key:n.key})}catch(e){o(e instanceof Error?e.message:String(e))}finally{c(!1)}}return W(nt,{title:`new session`,get onDismiss(){return e.onClose},get actions(){return[(()=>{var t=Jt();return Me(t,`click`,e.onClose,!0),t})(),(()=>{var e=Yt();return e.$$click=l,X(e,()=>s()?`starting…`:`start session`),j(()=>e.disabled=s()||!t()),e})()]},get children(){return[(()=>{var e=Wt(),r=e.firstChild.nextSibling;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e})(),W(K,{get when(){return e.recentProjects.length>0},get children(){var t=Gt(),r=t.firstChild.nextSibling;return X(r,W(G,{get each(){return e.recentProjects},children:e=>(()=>{var t=Xt();return t.$$click=()=>n(e),X(t,()=>dn(e)),t})()})),t}}),(()=>{var e=Kt(),t=e.firstChild.nextSibling;return t.$$input=e=>i(e.currentTarget.value),j(()=>t.value=r()),e})(),W(K,{get when(){return a()},get children(){var e=qt();return X(e,a),e}})]}})}function vn(e){let[t,n]=k(),[r,i]=k(!1),[a,o]=k(),[s,c]=k({}),[l,u]=k(),d=N(()=>{let t=[...e.store.fleet().runtimes];return t.sort((e,t)=>{let n=e.cwd.localeCompare(t.cwd);return n===0?new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime():n}),t}),f=N(()=>{let t=e.store.fleet(),n=new Set(t.runtimes.map(e=>e.state.sessionFile).filter(Boolean)),r=new Map;for(let e of t.diskSessions){if(n.has(e.path))continue;let t=un(e.cwd),i=r.get(t)??[];i.push(e),r.set(t,i)}let i=[...r.entries()];return i.sort(([,e],[,t])=>new Date(t[0]?.modified??0).getTime()-new Date(e[0]?.modified??0).getTime()),i}),p=N(()=>{let t=e.store.fleet();return{live:t.runtimes.length,attention:t.runtimes.filter(e=>e.needsAttention).length,disk:t.diskSessions.length}}),m=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].slice(0,8)});R(()=>{let t=setInterval(()=>void e.store.refreshFleetStats(),3e4);z(()=>clearInterval(t))});async function h(t){u(void 0);try{let n=await Q.createRuntime(t.cwd,{sessionPath:t.path});e.store.upsertRuntime(n),await e.store.refreshDiskSessions(),e.store.navigate({screen:`session`,key:n.key})}catch(e){u(`Failed to resume session: ${e instanceof Error?e.message:String(e)}`)}}return(()=>{var u=tn(),g=u.firstChild,_=g.firstChild.firstChild,v=_.firstChild.nextSibling,y=v.firstChild,b=y.nextSibling,x=b.nextSibling.nextSibling;x.nextSibling;var S=_.nextSibling;return X(u,W(et,{get store(){return e.store},active:`fleet`}),g),X(v,()=>p().live,y),X(v,()=>p().attention,b),X(v,()=>p().disk,x),S.$$click=()=>{n(void 0),i(!0)},X(g,W(K,{get when(){return e.store.fleetError()},get children(){var t=Zt();return t.firstChild,X(t,()=>e.store.fleetError(),null),t}}),null),X(g,W(K,{get when(){return e.store.fleetStatsError()},get children(){var t=Qt();return t.firstChild,X(t,()=>e.store.fleetStatsError(),null),t}}),null),X(g,W(K,{get when(){return d().length>0||f().length>0||e.store.fleetError()},get fallback(){return(()=>{var e=nn(),t=e.firstChild.nextSibling.firstChild;return t.$$click=()=>i(!0),e})()},get children(){return[W(K,{get when(){return d().length>0},get children(){var t=$t(),n=t.firstChild;return X(n,W(G,{get each(){return d()},children:t=>W(gn,{get store(){return e.store},runtime:t})})),t}}),W(K,{get when(){return f().length>0},get children(){var e=en();return e.firstChild,X(e,W(K,{get when(){return l()},get children(){var e=qt();return X(e,l),e}}),null),X(e,W(G,{get each(){return f()},children:([e,t])=>{let r=()=>s()[e]??!1,a=()=>r()?t:t.slice(0,3);return(()=>{var s=an(),l=s.firstChild.firstChild,u=l.nextSibling,d=u.firstChild,f=u.nextSibling;return X(l,()=>dn(e)),X(u,()=>t.length,d),f.$$click=()=>{n(e),i(!0)},X(s,W(G,{get each(){return a()},children:e=>(()=>{var t=on(),n=t.firstChild,r=n.nextSibling,i=r.firstChild,a=r.nextSibling.firstChild,s=a.nextSibling;return X(n,()=>e.name??`“${e.firstMessage.slice(0,60)}…”`),X(r,()=>e.messageCount,i),X(r,()=>it(e.modified),null),a.$$click=()=>h(e),s.$$click=()=>o(e),j(()=>n.classList.toggle(`muted`,!e.name)),t})()}),null),X(s,W(K,{get when(){return t.length>3},get children(){var n=rn();return n.$$click=()=>c(t=>({...t,[e]:!r()})),X(n,(()=>{var e=q(()=>!!r());return()=>e()?`show fewer ←`:`all ${t.length} on disk →`})()),n}}),null),s})()}}),null),e}})]}}),null),X(u,W(K,{get when(){return r()},get children(){return W(_n,{get store(){return e.store},get initialCwd(){return t()},get recentProjects(){return m()},onClose:()=>i(!1)})}}),null),X(u,W(K,{get when(){return a()},children:t=>W(nt,{title:`delete session?`,onDismiss:()=>o(void 0),get actions(){return[(()=>{var e=Jt();return e.$$click=()=>o(void 0),e})(),(()=>{var n=cn();return n.$$click=async()=>{await Q.deleteSession(t().path),o(void 0),await e.store.refreshDiskSessions()},n})()]},get children(){var e=sn(),n=e.firstChild,r=n.nextSibling;return r.nextSibling,X(e,()=>t().name??t().firstMessage.slice(0,80),n),X(e,()=>t().messageCount,r),e}})}),null),u})()}Ae([`click`,`input`]);var yn=J(`<p class=pair-error>`),bn=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.`),xn=J(`<div class=pair-wrap>`),Sn=J(`<p class="muted small">rejected identity: `),Cn=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 wn(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 Q.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=xn();return X(e,W(K,{get when(){return!c()},get fallback(){return(()=>{var e=Cn(),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=Sn();return e.firstChild,X(e,()=>s().identity,null),e}}),n),e})()},get children(){var e=bn(),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=yn();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`]);var Tn=19660800-768*1024;function En(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Dn(e){if(Array.isArray(e))return e}function On(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function kn(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return u(this.context.count)},getNextContextId(){return u(this.context.count++)}};function u(e){let t=String(e),n=t.length-1;return l.context.id+(n?String.fromCharCode(96+n):``)+t}function d(e){l.context=e}var f=(e,t)=>e===t,p=Symbol(`solid-proxy`),m=Symbol(`solid-track`),h={equals:f},g=null,_=de,v=1,y=2,b={owned:null,cleanups:null,context:null,owner:null},x={},S=null,C=null,w=null,T=null,E=null,D=0;function O(e,t){let n=w,r=S,i=e.length===0,a=t===void 0?r:t,o=i?b:{owned:null,cleanups:null,context:a?a.context:null,owner:a},s=i?e:()=>e(()=>L(()=>he(o)));S=o,w=null;try{return le(s,!0)}finally{w=n,S=r}}function k(e,t){t=t?Object.assign({},h,t):h;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0};return[ae.bind(n),e=>(typeof e==`function`&&(e=C&&C.running&&C.sources.has(n)?e(n.tValue):e(n.value)),H(n,e))]}function A(e,t,n){oe(se(e,t,!0,v))}function j(e,t,n){oe(se(e,t,!1,v))}function M(e,t,n){_=fe;let r=se(e,t,!1,v),i=V&&re(V);i&&(r.suspense=i),(!n||!n.render)&&(r.user=!0),E?E.push(r):oe(r)}function N(e,t,n){n=n?Object.assign({},h,n):h;let r=se(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,oe(r),ae.bind(r)}function P(e){return e&&typeof e==`object`&&`then`in e}function F(e,t,n){let r,i,a;typeof t==`function`?(r=e,i=t,a=n||{}):(r=!0,i=e,a=t||{});let o=null,s=x,c=null,u=!1,d=!1,f=`initialValue`in a,p=typeof r==`function`&&N(r),m=new Set,[h,g]=(a.storage||k)(a.initialValue),[_,v]=k(void 0),[y,b]=k(void 0,{equals:!1}),[T,E]=k(f?`ready`:`unresolved`);S&&z(()=>{for(let e of m.keys())e.decrement();m.clear(),C&&o&&C.promises.delete(o),o=null}),l.context&&(c=l.getNextContextId(),a.ssrLoadFrom===`initial`?s=a.initialValue:l.load&&l.has(c)&&(s=l.load(c)));function D(e,t,n,r){return o===e&&(o=null,r!==void 0&&(f=!0),(e===s||t===s)&&a.onHydrated&&queueMicrotask(()=>a.onHydrated(r,{value:t})),s=x,C&&e&&u?(C.promises.delete(e),u=!1,le(()=>{C.running=!0,O(t,n)},!1)):O(t,n)),t}function O(e,t){le(()=>{t===void 0&&g(()=>e),E(t===void 0?f?`ready`:`unresolved`:`errored`),v(t);for(let e of m.keys())e.decrement();m.clear()},!1)}function j(){let e=V&&re(V),t=h(),n=_();if(n!==void 0&&!o)throw n;return w&&!w.user&&e&&A(()=>{y(),o&&(e.resolved&&C&&u?C.promises.add(o):m.has(e)||(e.increment(),m.add(e)))}),t}function M(e=!0){if(e!==!1&&d)return;d=!1;let t=p?p():r;if(u=C&&C.running,t==null||t===!1){D(o,L(h));return}C&&o&&C.promises.delete(o);let n,a=s===x?L(()=>{try{return i(t,{value:h(),refetching:e})}catch(e){n=e}}):s;if(n!==void 0){D(o,void 0,_e(n),t);return}else if(!P(a))return D(o,a,void 0,t),a;return o=a,`v`in a?(a.s===1?D(o,a.v,void 0,t):D(o,void 0,_e(a.v),t),a):(d=!0,queueMicrotask(()=>d=!1),le(()=>{E(f?`refreshing`:`pending`),b()},!1),a.then(e=>D(a,e,void 0,t),e=>D(a,void 0,_e(e),t)))}Object.defineProperties(j,{state:{get:()=>T()},error:{get:()=>_()},loading:{get(){let e=T();return e===`pending`||e===`refreshing`}},latest:{get(){if(!f)return j();let e=_();if(e&&!o)throw e;return h()}}});let F=S;return p?A(()=>(F=S,M(!1))):M(!1),[j,{refetch:e=>ee(F,()=>M(e)),mutate:g}]}function I(e){return le(e,!1)}function L(e){if(w===null)return e();let t=w;w=null;try{return e()}finally{w=t}}function R(e){M(()=>L(e))}function z(e){return S===null||(S.cleanups===null?S.cleanups=[e]:S.cleanups.push(e)),e}function B(){return w}function ee(e,t){let n=S,r=w;S=e,w=null;try{return le(t,!0)}catch(e){ye(e)}finally{S=n,w=r}}var[te,ne]=k(!1);function re(e){let t;return S&&S.context&&(t=S.context[e.id])!==void 0?t:e.defaultValue}function ie(e){let t=N(e),n=N(()=>be(t()));return n.toArray=()=>{let e=n();return Array.isArray(e)?e:e==null?[]:[e]},n}var V;function ae(){let e=C&&C.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===v)oe(this);else{let e=T;T=null,le(()=>pe(this),!1),T=e}if(w){let e=this.observers;if(!e||e[e.length-1]!==w){let t=e?e.length:0;w.sources?(w.sources.push(this),w.sourceSlots.push(t)):(w.sources=[this],w.sourceSlots=[t]),e?(e.push(w),this.observerSlots.push(w.sources.length-1)):(this.observers=[w],this.observerSlots=[w.sources.length-1])}}return e&&C.sources.has(this)?this.tValue:this.value}function H(e,t,n){let r=C&&C.running&&C.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(r,t)){if(C){let r=C.running;(r||!n&&C.sources.has(e))&&(C.sources.add(e),e.tValue=t),r||(e.value=t)}else e.value=t;e.observers&&e.observers.length&&le(()=>{for(let t=0;t<e.observers.length;t+=1){let n=e.observers[t],r=C&&C.running;r&&C.disposed.has(n)||((r?!n.tState:!n.state)&&(n.pure?T.push(n):E.push(n),n.observers&&me(n)),r?n.tState=v:n.state=v)}if(T.length>1e6)throw T=[],Error()},!1)}return t}function oe(e){if(!e.fn)return;he(e);let t=D;U(e,C&&C.running&&C.sources.has(e)?e.tValue:e.value,t),C&&!C.running&&C.sources.has(e)&&queueMicrotask(()=>{le(()=>{C&&(C.running=!0),w=S=e,U(e,e.tValue,t),w=S=null},!1)})}function U(e,t,n){let r,i=S,a=w;w=S=e;try{r=e.fn(t)}catch(t){return e.pure&&(C&&C.running?(e.tState=v,e.tOwned&&e.tOwned.forEach(he),e.tOwned=void 0):(e.state=v,e.owned&&e.owned.forEach(he),e.owned=null)),e.updatedAt=n+1,ye(t)}finally{w=a,S=i}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&`observers`in e?H(e,r,!0):C&&C.running&&e.pure?(C.sources.has(e)||(e.value=r),C.sources.add(e),e.tValue=r):e.value=r,e.updatedAt=n)}function se(e,t,n,r=v,i){let a={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:S,context:S?S.context:null,pure:n};return C&&C.running&&(a.state=0,a.tState=r),S===null||S!==b&&(C&&C.running&&S.pure?S.tOwned?S.tOwned.push(a):S.tOwned=[a]:S.owned?S.owned.push(a):S.owned=[a]),a}function ce(e){let t=C&&C.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===y)return pe(e);if(e.suspense&&L(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<D);){if(t&&C.disposed.has(e))return;(t?e.tState:e.state)&&n.push(e)}for(let r=n.length-1;r>=0;r--){if(e=n[r],t){let t=e,i=n[r+1];for(;(t=t.owner)&&t!==i;)if(C.disposed.has(t))return}if((t?e.tState:e.state)===v)oe(e);else if((t?e.tState:e.state)===y){let t=T;T=null,le(()=>pe(e,n[0]),!1),T=t}}}function le(e,t){if(T)return e();let n=!1;t||(T=[]),E?n=!0:E=[],D++;try{let t=e();return ue(n),t}catch(e){n||(E=null),T=null,ye(e)}}function ue(e){if(T&&=(de(T),null),e)return;let t;if(C){if(!C.promises.size&&!C.queue.size){let e=C.sources,n=C.disposed;E.push.apply(E,C.effects),t=C.resolve;for(let e of E)`tState`in e&&(e.state=e.tState),delete e.tState;C=null,le(()=>{for(let e of n)he(e);for(let t of e){if(t.value=t.tValue,t.owned)for(let e=0,n=t.owned.length;e<n;e++)he(t.owned[e]);t.tOwned&&(t.owned=t.tOwned),delete t.tValue,delete t.tOwned,t.tState=0}ne(!1)},!1)}else if(C.running){C.running=!1,C.effects.push.apply(C.effects,E),E=null,ne(!0);return}}let n=E;E=null,n.length&&le(()=>_(n),!1),t&&t()}function de(e){for(let t=0;t<e.length;t++)ce(e[t])}function fe(e){let t,n=0;for(t=0;t<e.length;t++){let r=e[t];r.user?e[n++]=r:ce(r)}if(l.context){if(l.count){l.effects||=[],l.effects.push(...e.slice(0,n));return}d()}for(l.effects&&(l.done||!l.count)&&(e=[...l.effects,...e],n+=l.effects.length,delete l.effects),t=0;t<n;t++)ce(e[t])}function pe(e,t){let n=C&&C.running;n?e.tState=0:e.state=0;for(let r=0;r<e.sources.length;r+=1){let i=e.sources[r];if(i.sources){let e=n?i.tState:i.state;e===v?i!==t&&(!i.updatedAt||i.updatedAt<D)&&ce(i):e===y&&pe(i,t)}}}function me(e){let t=C&&C.running;for(let n=0;n<e.observers.length;n+=1){let r=e.observers[n];(t?!r.tState:!r.state)&&(t?r.tState=y:r.state=y,r.pure?T.push(r):E.push(r),r.observers&&me(r))}}function he(e){let t;if(e.sources)for(;e.sources.length;){let t=e.sources.pop(),n=e.sourceSlots.pop(),r=t.observers;if(r&&r.length){let e=r.pop(),i=t.observerSlots.pop();n<r.length&&(e.sourceSlots[i]=n,r[n]=e,t.observerSlots[n]=i)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)he(e.tOwned[t]);delete e.tOwned}if(C&&C.running&&e.pure)ge(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)he(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}C&&C.running?e.tState=0:e.state=0}function ge(e,t){if(t||(e.tState=0,C.disposed.add(e)),e.owned)for(let t=0;t<e.owned.length;t++)ge(e.owned[t])}function _e(e){return e instanceof Error?e:Error(typeof e==`string`?e:`Unknown error`,{cause:e})}function ve(e,t,n){try{for(let n of t)n(e)}catch(e){ye(e,n&&n.owner||null)}}function ye(e,t=S){let n=g&&t&&t.context&&t.context[g],r=_e(e);if(!n)throw r;E?E.push({fn(){ve(r,n,t)},state:v}):ve(r,n,t)}function be(e){if(typeof e==`function`&&!e.length)return be(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let r=be(e[n]);if(Array.isArray(r))if(r.length<32768)t.push.apply(t,r);else for(let e=0;e<r.length;e++)t.push(r[e]);else t.push(r)}return t}return e}var xe=Symbol(`fallback`);function Se(e){for(let t=0;t<e.length;t++)e[t]()}function Ce(e,t,n={}){let r=[],i=[],a=[],o=0,s=t.length>1?[]:null;return z(()=>Se(a)),()=>{let c=e()||[],l=c.length,u,d;return c[m],L(()=>{let e,t,p,m,h,g,_,v,y;if(l===0)o!==0&&(Se(a),a=[],r=[],i=[],o=0,s&&=[]),n.fallback&&(r=[xe],i[0]=O(e=>(a[0]=e,n.fallback())),o=1);else if(o===0){for(i=Array(l),d=0;d<l;d++)r[d]=c[d],i[d]=O(f);o=l}else{for(p=Array(l),m=Array(l),s&&(h=Array(l)),g=0,_=Math.min(o,l);g<_&&r[g]===c[g];g++);for(_=o-1,v=l-1;_>=g&&v>=g&&r[_]===c[v];_--,v--)p[v]=i[_],m[v]=a[_],s&&(h[v]=s[_]);for(e=new Map,t=Array(v+1),d=v;d>=g;d--)y=c[d],u=e.get(y),t[d]=u===void 0?-1:u,e.set(y,d);for(u=g;u<=_;u++)y=r[u],d=e.get(y),d!==void 0&&d!==-1?(p[d]=i[u],m[d]=a[u],s&&(h[d]=s[u]),d=t[d],e.set(y,d)):a[u]();for(d=g;d<l;d++)d in p?(i[d]=p[d],a[d]=m[d],s&&(s[d]=h[d],s[d](d))):i[d]=O(f);i=i.slice(0,o=l),r=c.slice(0)}return i});function f(e){if(a[d]=e,s){let[e,n]=k(d);return s[d]=n,t(c[d],e)}return t(c[d])}}}function W(e,t){return L(()=>e(t||{}))}var we=e=>`Stale read from <${e}>.`;function G(e){let t=`fallback`in e&&{fallback:()=>e.fallback};return N(Ce(()=>e.each,e.children,t||void 0))}function K(e){let t=e.keyed,n=N(()=>e.when,void 0,void 0),r=t?n:N(n,void 0,{equals:(e,t)=>!e==!t});return N(()=>{let i=r();if(i){let a=e.children;return typeof a==`function`&&a.length>0?L(()=>a(t?i:()=>{if(!L(r))throw we(`Show`);return n()})):a}return e.fallback},void 0,void 0)}function Te(e){let t=ie(()=>e.children),n=N(()=>{let e=t(),n=Array.isArray(e)?e:[e],r=()=>void 0;for(let e=0;e<n.length;e++){let t=e,i=n[e],a=r,o=N(()=>a()?void 0:i.when,void 0,void 0),s=i.keyed?o:N(o,void 0,{equals:(e,t)=>!e==!t});r=()=>a()||(s()?[t,o,i]:void 0)}return r});return N(()=>{let t=n()();if(!t)return e.fallback;let[r,i,a]=t,o=a.children;return typeof o==`function`&&o.length>0?L(()=>o(a.keyed?i():()=>{if(L(n)()?.[0]!==r)throw we(`Match`);return i()})):o},void 0,void 0)}function Ee(e){return e}var q=e=>N(()=>e());function De(e,t,n){let r=n.length,i=t.length,a=r,o=0,s=0,c=t[i-1].nextSibling,l=null;for(;o<i||s<a;){if(t[o]===n[s]){o++,s++;continue}for(;t[i-1]===n[a-1];)i--,a--;if(i===o){let t=a<r?s?n[s-1].nextSibling:n[a-s]:c;for(;s<a;)e.insertBefore(n[s++],t)}else if(a===s)for(;o<i;)(!l||!l.has(t[o]))&&t[o].remove(),o++;else if(t[o]===n[a-1]&&n[s]===t[i-1]){let r=t[--i].nextSibling;e.insertBefore(n[s++],t[o++].nextSibling),e.insertBefore(n[--a],r),t[i]=n[a]}else{if(!l){l=new Map;let e=s;for(;e<a;)l.set(n[e],e++)}let r=l.get(t[o]);if(r!=null)if(s<r&&r<a){let c=o,u=1,d;for(;++c<i&&c<a&&!((d=l.get(t[c]))==null||d!==r+u);)u++;if(u>r-s){let i=t[o];for(;s<r;)e.insertBefore(n[s++],i)}else e.replaceChild(n[s++],t[o++])}else o++;else t[o++].remove()}}}var Oe=`_$DX_DELEGATE`;function ke(e,t,n,r={}){let i;return O(r=>{i=r,t===document?e():X(t,e(),t.firstChild?null:void 0,n)},r.owner),()=>{i(),t.textContent=``}}function J(e,t,n,r){let i,a=()=>{let t=r?document.createElementNS(`http://www.w3.org/1998/Math/MathML`,`template`):document.createElement(`template`);return t.innerHTML=e,n?t.content.firstChild.firstChild:r?t.firstChild:t.content.firstChild},o=t?()=>L(()=>document.importNode(i||=a(),!0)):()=>(i||=a()).cloneNode(!0);return o.cloneNode=o,o}function Ae(e,t=window.document){let n=t[Oe]||(t[Oe]=new Set);for(let r=0,i=e.length;r<i;r++){let i=e[r];n.has(i)||(n.add(i),t.addEventListener(i,Le))}}function Y(e,t,n){Fe(e)||(n==null?e.removeAttribute(t):e.setAttribute(t,n))}function je(e,t){Fe(e)||(t==null?e.removeAttribute(`class`):e.className=t)}function Me(e,t,n,r){if(r)Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n;else if(Array.isArray(n)){let r=n[0];e.addEventListener(t,n[0]=t=>r.call(e,n[1],t))}else e.addEventListener(t,n,typeof n!=`function`&&n)}function Ne(e,t,n={}){let r=Object.keys(t||{}),i=Object.keys(n),a,o;for(a=0,o=i.length;a<o;a++){let r=i[a];!r||r===`undefined`||t[r]||(Ie(e,r,!1),delete n[r])}for(a=0,o=r.length;a<o;a++){let i=r[a],o=!!t[i];!i||i===`undefined`||n[i]===o||!o||(Ie(e,i,!0),n[i]=o)}return n}function Pe(e,t,n){return L(()=>e(t,n))}function X(e,t,n,r){if(n!==void 0&&!r&&(r=[]),typeof t!=`function`)return Re(e,t,r,n);j(r=>Re(e,t(),r,n),r)}function Fe(e){return!!l.context&&!l.done&&(!e||e.isConnected)}function Ie(e,t,n){let r=t.trim().split(/\s+/);for(let t=0,i=r.length;t<i;t++)e.classList.toggle(r[t],n)}function Le(e){if(l.registry&&l.events&&l.events.find(([t,n])=>n===e))return;let t=e.target,n=`$$${e.type}`,r=e.target,i=e.currentTarget,a=t=>Object.defineProperty(e,"target",{configurable:!0,value:t}),o=()=>{let r=t[n];if(r&&!t.disabled){let i=t[`${n}Data`];if(i===void 0?r.call(t,e):r.call(t,i,e),e.cancelBubble)return}return t.host&&typeof t.host!=`string`&&!t.host._$host&&t.contains(e.target)&&a(t.host),!0},s=()=>{for(;o()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),l.registry&&!l.done&&(l.done=_$HY.done=!0),e.composedPath){let n=e.composedPath();a(n[0]);for(let e=0;e<n.length-2&&(t=n[e],o());e++){if(t._$host){t=t._$host,s();break}if(t.parentNode===i)break}}else s();a(r)}function Re(e,t,n,r,i){let a=Fe(e);if(a){!n&&(n=[...e.childNodes]);let t=[];for(let e=0;e<n.length;e++){let r=n[e];r.nodeType===8&&r.data.slice(0,2)===`!$`?r.remove():t.push(r)}n=t}for(;typeof n==`function`;)n=n();if(t===n)return n;let o=typeof t,s=r!==void 0;if(e=s&&n[0]&&n[0].parentNode||e,o===`string`||o===`number`){if(a||o===`number`&&(t=t.toString(),t===n))return n;if(s){let i=n[0];i&&i.nodeType===3?i.data!==t&&(i.data=t):i=document.createTextNode(t),n=Ve(e,n,r,i)}else n=n!==``&&typeof n==`string`?e.firstChild.data=t:e.textContent=t}else if(t==null||o===`boolean`){if(a)return n;n=Ve(e,n,r)}else if(o===`function`)return j(()=>{let i=t();for(;typeof i==`function`;)i=i();n=Re(e,i,n,r)}),()=>n;else if(Array.isArray(t)){let o=[],c=n&&Array.isArray(n);if(ze(o,t,n,i))return j(()=>n=Re(e,o,n,r,!0)),()=>n;if(a){if(!o.length)return n;if(r===void 0)return n=[...e.childNodes];let t=o[0];if(t.parentNode!==e)return n;let i=[t];for(;(t=t.nextSibling)!==r;)i.push(t);return n=i}if(o.length===0){if(n=Ve(e,n,r),s)return n}else c?n.length===0?Be(e,o,r):De(e,n,o):(n&&Ve(e),Be(e,o));n=o}else if(t.nodeType){if(a&&t.parentNode)return n=s?[t]:t;if(Array.isArray(n)){if(s)return n=Ve(e,n,r,t);Ve(e,n,null,t)}else n==null||n===``||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}return n}function ze(e,t,n,r){let i=!1;for(let a=0,o=t.length;a<o;a++){let o=t[a],s=n&&n[e.length],c;if(!(o==null||o===!0||o===!1))if((c=typeof o)==`object`&&o.nodeType)e.push(o);else if(Array.isArray(o))i=ze(e,o,s)||i;else if(c===`function`)if(r){for(;typeof o==`function`;)o=o();i=ze(e,Array.isArray(o)?o:[o],Array.isArray(s)?s:[s])||i}else e.push(o),i=!0;else{let t=String(o);s&&s.nodeType===3&&s.data===t?e.push(s):e.push(document.createTextNode(t))}}return i}function Be(e,t,n=null){for(let r=0,i=t.length;r<i;r++)e.insertBefore(t[r],n)}function Ve(e,t,n,r){if(n===void 0)return e.textContent=``;let i=r||document.createTextNode(``);if(t.length){let r=!1;for(let a=t.length-1;a>=0;a--){let o=t[a];if(i!==o){let t=o.parentNode===e;!r&&!a?t?e.replaceChild(i,o):e.insertBefore(i,n):t&&o.remove()}else r=!0}}else e.insertBefore(i,n);return[i]}var He=J(`<span><span class=dot></span> `),Ue=J(`<span class="chip chip-plain">…`),We=J(`<span class="chip chip-plain"><span class=dot></span> `),Ge=J(`<header class=topbar><div class=topbar-inner><a class=wordmark href=#/>dreb</a><nav><a href=#/>fleet</a><a href=#/files>files</a><a href=#/settings>settings</a></nav><span class=topbar-spacer>`),Ke=J(`<button type=button class="btn btn-small">recovery failed — retry`),qe=J(`<span><output aria-live=polite><span class=dot></span> `),Je=J(`<div class=modal-actions>`),Ye=J(`<div class=modal-backdrop role=presentation><div role=dialog><div class=modal-title></div><div class=modal-body>`),Xe=J(`<div class=toast-region>`),Ze=J(`<div><span></span><button type=button class="btn btn-small"style=margin-left:auto>✕`);function Qe(e){let t={running:`●`,attention:`◆`,idle:`○`,error:`✕`},n={running:`running`,attention:`needs attention`,idle:`idle`,error:`error`};return(()=>{var r=He(),i=r.firstChild;return i.nextSibling,X(i,()=>t[e.status]),X(r,()=>e.label??n[e.status],null),j(()=>je(r,`chip chip-${e.status}`)),r})()}function $e(e){let t=()=>e.store.auth();return W(K,{get when(){return t()},get fallback(){return Ue()},children:e=>(()=>{var t=We(),n=t.firstChild;return n.nextSibling,X(n,()=>e().mode===`local`?`⌂`:`⇄`),X(t,(()=>{var t=q(()=>e().mode===`local`);return()=>t()?`local · 127.0.0.1`:`remote · ${e().device??e().identity??`device`} via tailscale`})(),null),t})()})}function et(e){let t=()=>Object.values(e.store.sessions).filter(e=>e.needsAttention).length+e.store.fleet().runtimes.filter(e=>e.needsAttention).length;return(()=>{var n=Ge(),r=n.firstChild,i=r.firstChild.nextSibling,a=i.firstChild;a.firstChild;var o=a.nextSibling,s=o.nextSibling;return i.nextSibling,X(a,()=>t()>0?` ◆`:``,null),X(r,W(tt,{get store(){return e.store}}),null),X(r,W($e,{get store(){return e.store}}),null),j(t=>{var n=e.active===`fleet`?`page`:void 0,r=e.active===`files`?`page`:void 0,i=e.active===`settings`?`page`:void 0;return n!==t.e&&Y(a,`aria-current`,t.e=n),r!==t.t&&Y(o,`aria-current`,t.t=r),i!==t.a&&Y(s,`aria-current`,t.a=i),t},{e:void 0,t:void 0,a:void 0}),n})()}function tt(e){let t=()=>e.store.resyncing()?`resyncing`:e.store.connection().state,n=()=>{switch(t()){case`connected`:return{glyph:`●`,text:`live`,tone:`idle`};case`connecting`:return{glyph:`…`,text:`connecting`,tone:`attention`};case`retrying`:{let t=e.store.connection().retryDelayMs;return{glyph:`↻`,text:`retrying${t===void 0?``:` in ${Math.ceil(t/1e3)}s`}`,tone:`attention`}}case`resyncing`:return{glyph:`↻`,text:`recovering live state`,tone:`attention`};case`auth_failed`:return{glyph:`✕`,text:`live connection unauthorized`,tone:`error`};default:return{glyph:`✕`,text:`live connection disconnected`,tone:`error`}}};return(()=>{var t=qe(),r=t.firstChild,i=r.firstChild;return i.nextSibling,X(i,()=>n().glyph),X(r,()=>n().text,null),X(t,W(K,{get when(){return e.store.resyncError()},get children(){var t=Ke();return t.$$click=()=>void e.store.retryResync(),j(()=>Y(t,`title`,e.store.resyncError())),t}}),null),j(i=>{var a=`connection-indicator ${e.class??``}`.trim(),o=`chip chip-${n().tone}`;return a!==i.e&&je(t,i.e=a),o!==i.t&&je(r,i.t=o),i},{e:void 0,t:void 0}),t})()}function nt(e){return(()=>{var t=Ye(),n=t.firstChild,r=n.firstChild,i=r.nextSibling;return t.$$keydown=t=>{t.key===`Escape`&&e.onDismiss()},t.$$click=t=>{t.target===t.currentTarget&&e.onDismiss()},X(r,()=>e.title),X(i,()=>e.children),X(n,W(K,{get when(){return e.actions},get children(){var t=Je();return X(t,()=>e.actions),t}}),null),j(t=>{var r=`modal ${e.class??``}`,i=e.title;return r!==t.e&&je(n,t.e=r),i!==t.t&&Y(n,`aria-label`,t.t=i),t},{e:void 0,t:void 0}),t})()}function rt(e){return(()=>{var t=Xe();return X(t,W(G,{get each(){return e.toasts},children:t=>(()=>{var n=Ze(),r=n.firstChild,i=r.nextSibling;return X(r,()=>t.text),i.$$click=()=>e.onDismiss(t.id),j(()=>je(n,`toast ${t.tone}`)),n})()})),t})()}function it(e){if(!e)return``;let t=typeof e==`number`?e:Date.parse(e);if(Number.isNaN(t))return``;let n=Math.floor((Date.now()-t)/1e3);if(n<60)return`just now`;let r=Math.floor(n/60);if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<30?`${a}d ago`:`${Math.floor(a/30)}mo ago`}function at(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}Ae([`click`,`keydown`]);function ot(e,t,n,r){if(typeof r==`object`&&r&&`error`in r)return String(r.error);let i=typeof r==`string`?r:String(r);return/^\s*<(?:!doctype|html)/i.test(i)?`${(t?.method??`GET`).toUpperCase()} ${e} → ${n} ${n===404?`Not Found`:`error`}`:i.trim()||`Request failed (${n})`}async function Z(e,t){let n=await fetch(e,t),r=(n.headers.get(`content-type`)??``).includes(`application/json`)?await n.json():await n.text();if(!n.ok){let i=ot(e,t,n.status,r);throw Object.assign(Error(i),{status:n.status,body:r})}return r}function st(e){return{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}}var Q={auth:e=>Z(`/api/auth`,{signal:e}),connectionDiagnostic:e=>Z(`/api/events/diagnostic`,st(e)),pair:e=>Z(`/api/pair`,st({pin:e})),pairingCode:()=>Z(`/api/pairing-code`),devices:()=>Z(`/api/devices`),unpair:e=>Z(`/api/devices/${encodeURIComponent(e)}`,{method:`DELETE`}),fleet:()=>Z(`/api/fleet`),sessions:()=>Z(`/api/sessions`),resync:(e,t,n)=>{let r=new URLSearchParams;return e&&r.set(`key`,e),t&&r.set(`agentId`,t),Z(`/api/resync${r.size?`?${r}`:``}`,{signal:n})},createRuntime:(e,t={})=>Z(`/api/runtimes`,st({cwd:e,...t})),stopRuntime:e=>Z(`/api/runtimes/${e}`,{method:`DELETE`}),runtime:(e,t)=>Z(`/api/runtimes/${e}`,{signal:t}),hydrate:(e,t)=>Z(`/api/runtimes/${e}/hydrate`,{signal:t}),messages:(e,t)=>Z(`/api/runtimes/${e}/messages`,{signal:t}),pending:e=>Z(`/api/runtimes/${e}/pending`),dequeue:e=>Z(`/api/runtimes/${e}/dequeue`,{method:`POST`}),prompt:(e,t,n,r)=>Z(`/api/runtimes/${e}/prompt`,st({message:t,mode:n,images:r})),abort:e=>Z(`/api/runtimes/${e}/abort`,{method:`POST`}),abortCompaction:e=>Z(`/api/runtimes/${e}/abort-compaction`,{method:`POST`}),abortRetry:e=>Z(`/api/runtimes/${e}/abort-retry`,{method:`POST`}),setModel:(e,t,n)=>Z(`/api/runtimes/${e}/model`,st({provider:t,modelId:n})),models:e=>Z(`/api/runtimes/${e}/models`),setThinking:(e,t)=>Z(`/api/runtimes/${e}/thinking`,st({level:t})),compact:(e,t)=>Z(`/api/runtimes/${e}/compact`,st({instructions:t})),rename:(e,t)=>Z(`/api/runtimes/${e}/name`,st({name:t})),stats:(e,t)=>Z(`/api/runtimes/${e}/stats`,{signal:t}),performance:e=>Z(`/api/runtimes/${e}/performance`),resources:e=>Z(`/api/runtimes/${e}/resources`),commands:e=>Z(`/api/runtimes/${e}/commands`),branch:e=>Z(`/api/runtimes/${e}/branch`),forkMessages:e=>Z(`/api/runtimes/${e}/fork-messages`),fork:(e,t)=>Z(`/api/runtimes/${e}/fork`,st({entryId:t})),backgroundAgents:(e,t)=>Z(`/api/runtimes/${e}/background-agents`,{signal:t}),subagentMessages:(e,t,n)=>Z(`/api/runtimes/${e}/subagents/${encodeURIComponent(t)}/messages`,{signal:n}),extensionUiResponse:(e,t)=>Z(`/api/runtimes/${e}/extension-ui-response`,st(t)),exportHtmlUrl:e=>`/api/runtimes/${e}/export-html`,deleteSession:e=>Z(`/api/sessions`,{method:`DELETE`,headers:{"content-type":`application/json`},body:JSON.stringify({path:e})}),settings:()=>Z(`/api/settings`),saveSettings:e=>Z(`/api/settings`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(e)}),settingsModels:()=>Z(`/api/settings/models`),agentTypes:e=>Z(e?`/api/settings/agent-types?cwd=${encodeURIComponent(e)}`:`/api/settings/agent-types`),version:()=>Z(`/api/version`),serverInfo:()=>Z(`/api/server/info`),restartServer:()=>Z(`/api/server/restart`,{method:`POST`}),dailyCost:()=>Z(`/api/daily-cost`),listFiles:e=>Z(`/api/files?path=${encodeURIComponent(e)}`),trustContextFolder:e=>Z(`/api/files/trust`,st({path:e})),untrustContextFolder:e=>Z(`/api/files/untrust`,st({path:e})),removeTrustedContextFolder:e=>Z(`/api/settings/remove-trusted`,st({path:e})),places:()=>Z(`/api/files/places`),downloadUrl:e=>`/api/files/download?path=${encodeURIComponent(e)}`,upload:async(e,t,n)=>{let r=await fetch(`/api/files/upload?dir=${encodeURIComponent(e)}&name=${encodeURIComponent(t.name)}&overwrite=${n}`,{method:`POST`,body:t}),i=await r.json();if(!r.ok)throw Object.assign(Error(String(i.error??r.statusText)),{status:r.status});return i},mkdir:(e,t)=>Z(`/api/files/mkdir`,st({dir:e,name:t}))},ct=1,lt=6e4,ut=6e4,dt=1e4;function ft(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return Number.isSafeInteger(t.seq)&&t.seq>0&&typeof t.key==`string`&&!!t.event&&typeof t.event==`object`&&!Array.isArray(t.event)}function pt(e,t={}){let n=t.EventSource??EventSource,r=t.now??Date.now,i=t.random??Math.random,a=t.setTimeout??setTimeout,o=t.clearTimeout??clearTimeout,s=t.setInterval??setInterval,c=t.clearInterval??clearInterval,l=t.visibility??document,u=t.status??Q.auth,d=t.diagnostic??(e=>Q.connectionDiagnostic(e)),f=t.baseDelayMs??1e3,p=t.maxDelayMs??3e4,m=t.healthyResetMs??lt,h=t.watchdogMs??ut,g=t.statusTimeoutMs??dt,_,v,y,b,x,S,C=0,w=!1,T=0,E,D=r(),O,k,A,j=0,M=0,N=0,P={state:`connecting`,attempt:0};function F(){return l.visibilityState!==`hidden`}function I(t){let n=P.state;if(P={...t,...E===void 0?{}:{lastAppliedSeq:E}},e.onStatusChange?.(P),!k)return;let i=Math.max((r()-(A??r()))/6e4,1/60);Promise.resolve(d({connectionId:k,state:P.state,...n===P.state?{}:{previousState:n},attempt:T,...P.retryDelayMs===void 0?{}:{delayMs:P.retryDelayMs},visibility:F()?`visible`:`hidden`,...E===void 0?{}:{lastAppliedSeq:E},heartbeatAgeMs:Math.max(0,r()-D),eventCount:j,eventRatePerMinute:j/i,processingLagTotalMs:M,processingLagMaxMs:N})).catch(()=>{})}function L(){b!==void 0&&o(b),b=void 0}function R(){_&&(v&&_.removeEventListener(`heartbeat`,v),y&&_.removeEventListener(`connection`,y),v=void 0,y=void 0,_.onopen=null,_.onmessage=null,_.onerror=null,_.close(),_=void 0,O=void 0,k=void 0,A=void 0,j=0,M=0,N=0)}function z(){let e=Math.min(p,f*2**Math.max(0,T-1));return Math.min(p,Math.max(0,Math.round(e*(.75+i()*.5))))}function B(){if(w||b!==void 0||P.state===`auth_failed`)return;T+=1;let e=z(),t=r()+e;I({state:`retrying`,attempt:T,retryDelayMs:e,retryAt:t}),b=a(()=>{b=void 0,ie()},e)}function ee(t){w||(I({state:`resyncing`,attempt:T}),R(),e.onRecovery?.(t),t===`watchdog`&&!S?re():B())}function te(){S&&=(S.timeout!==void 0&&o(S.timeout),S.controller.abort(),void 0)}function ne(e,t){if(S||w)return;let n={controller:new AbortController,timeout:void 0};S=n;let r=!1,i=e=>{r||(r=!0,n.timeout!==void 0&&o(n.timeout),!w&&S===n&&e(),S===n&&(S=void 0))};n.timeout=a(()=>{n.controller.abort(),i(()=>t(Object.assign(Error(`dashboard authentication validation timed out`),{status:void 0})))},g);try{Promise.resolve(u(n.controller.signal)).then(()=>i(e),e=>i(()=>t(e)))}catch(e){i(()=>t(e))}}function re(){ne(()=>B(),e=>{if(e?.status===401||e?.status===403){L(),I({state:`auth_failed`,attempt:T});return}B()})}function ie(){if(w||_)return;L();let t=++C;I({state:`connecting`,attempt:T});let i=E===void 0?`/api/events`:`/api/events?lastEventId=${E}`,a=new n(i);_=a,D=r(),O=void 0;let o=()=>{w||t!==C||_!==a||(D=r(),T>0&&O!==void 0&&D-O>=m&&(T=0,I({state:`connected`,attempt:T})))};a.onopen=()=>{w||t!==C||_!==a||(O=r(),o(),I({state:`connected`,attempt:T}))},v=()=>o(),a.addEventListener(`heartbeat`,v),y=n=>{if(!(w||t!==C||_!==a))try{let t=JSON.parse(n.data);if(typeof t.connectionId!=`string`)throw Error(`missing connection id`);k=t.connectionId,A=r(),j=0,M=0,N=0,e.onConnectionMetadata?.(k),o(),I(P)}catch{ee(`protocol`)}},a.addEventListener(`connection`,y),a.onmessage=n=>{if(w||t!==C||_!==a)return;D=r();let i;try{if(i=JSON.parse(n.data),!ft(i))throw Error(`invalid dashboard SSE envelope`);let e=i.event.type===`dashboard_resync`;if(!e&&E!==void 0&&i.seq<=E)return;if(!e&&E!==void 0&&i.seq!==E+1)throw Error(`dashboard SSE sequence gap`)}catch{ee(`protocol`);return}let s=r();try{e.onEnvelope(i)}catch{ee(`handler`);return}E=i.seq,j+=1;let c=Math.max(0,r()-s);M+=c,N=Math.max(N,c),o()},a.onerror=()=>{w||t!==C||_!==a||(I({state:`disconnected`,attempt:T}),R(),re())}}let V=()=>{w||!F()||S||ne(()=>{(!_||_.readyState!==ct||r()-D>h)&&ee(`watchdog`)},e=>{if(e?.status===401||e?.status===403){L(),I({state:`auth_failed`,attempt:T}),R();return}ee(`watchdog`)})};return l.addEventListener(`visibilitychange`,V),x=s(()=>{F()&&_&&r()-D>h&&ee(`watchdog`)},Math.min(h,5e3)),ie(),()=>{w=!0,C+=1,te(),L(),x!==void 0&&c(x),x=void 0,l.removeEventListener(`visibilitychange`,V),I({state:`disconnected`,attempt:T}),R()}}var mt=J(`<p class=settings-error>`),ht=J(`<div class=field><label for=mkdir-name>folder name</label><input id=mkdir-name type=text>`),gt=J(`<div class=screen-fill><main class=container><div class=files-head><div><nav class=crumbs aria-label=breadcrumb></nav><p class=scope-note>whole host filesystem — you can browse anywhere the dreb process can read</p></div><div class=head-actions><button type=button class=btn>+ new folder</button><button type=button class=btn>↑ upload here</button><button type=button class="btn btn-primary">▸ new session here</button></div></div><section class=context-trust aria-live=polite></section><div class=places><span class=label>places</span></div><table class="table file-table"><thead><tr><th>name</th><th class="meta cols">size</th><th class="meta cols">modified</th><th></th></tr></thead><tbody></tbody></table><section class=drop-zone aria-label="file upload drop zone">drop a file here to upload to </section><p class=upload-warning>Uploads land on the host machine and become visible to any agent working near this path. Existing files are never overwritten silently — you'll be asked first.</p><input type=file style=display:none>`),_t=J(`<span class=sep>/`),vt=J(`<a>`),yt=J(`<span>nested context trust: checking…`),bt=J(`<div><strong>Nested context is untrusted.</strong><p>This folder's nested instructions are not loaded automatically.</p><button type=button class="btn btn-small btn-primary"></button><p class=context-trust-impact>Trusting this folder trusts it and all descendants.`),xt=J(`<div><strong></strong><p></p><button type=button class="btn btn-small btn-danger"></button><p class=context-trust-impact>This removes trust from <!> and all of its descendants.`),St=J(`<div class=context-trust-warning><strong>Global expert trust is ON.</strong> Nested instructions from any resolvable directory may load, including prompt-injection content. Folder trust cannot override this global setting. <a href=#/settings>Disable global expert trust in Settings.`),Ct=J(`<button type=button class=place-chip>`),wt=J(`<button type=button class=name><span class=icon>▸</span> <!>/`),Tt=J(`<a class="btn btn-small">↓ download`),Et=J(`<tr><td></td><td class="meta cols"></td><td class="meta cols"></td><td class=actions>`),Dt=J(`<span class=name><span class=icon>·</span> `),Ot=J(`<p>“<!>” already exists in <!>. Overwrite it?`),kt=J(`<button type=button class="btn btn-small">cancel`),At=J(`<button type=button class="btn btn-small btn-danger">overwrite`),jt=J(`<button type=button class="btn btn-small btn-primary">create`);function Mt(e){let t=e.split(`/`).filter(Boolean),n=[{label:`/`,path:`/`}],r=``;for(let e of t)r+=`/${e}`,n.push({label:e,path:r});return n}function Nt(e){let[t,n]=k(e.initialPath??``),[r,i]=k(),[a,o]=k(!1),[s,c]=k(),[l,u]=k(!1),[d,f]=k(``),[p,m]=k(!1),[h]=F(async()=>{let{places:e}=await Q.places();return e}),[g,{mutate:_,refetch:v}]=F(()=>t(),async e=>{if(i(void 0),!e){let{places:e}=await Q.places(),t=e.find(e=>e.label===`home`)?.path??`/`;return n(t),Q.listFiles(t)}return Q.listFiles(e)});async function y(e,n){try{await Q.upload(t(),e,n),c(void 0),await v()}catch(t){t?.status===409&&!n?c(e):i(t instanceof Error?t.message:String(t))}}async function b(){try{let n=await Q.createRuntime(t());e.store.upsertRuntime(n),await e.store.refreshDiskSessions(),e.store.navigate({screen:`session`,key:n.key})}catch(e){i(e instanceof Error?e.message:String(e))}}async function x(e){let n=g();if(n){i(void 0),m(!0);try{let r=e===`trust`?await Q.trustContextFolder(n.path):await Q.untrustContextFolder(n.path),i=g();t()===n.path&&i?.path===n.path&&_({...i,contextTrust:r.evaluation})}catch(e){i(e instanceof Error?e.message:String(e))}finally{m(!1)}}}let S;return(()=>{var m=gt(),_=m.firstChild,C=_.firstChild,w=C.firstChild,T=w.firstChild,E=w.nextSibling.firstChild,D=E.nextSibling,O=D.nextSibling,k=C.nextSibling,A=k.nextSibling;A.firstChild;var M=A.nextSibling,N=M.firstChild.nextSibling,P=M.nextSibling;P.firstChild;var F=P.nextSibling.nextSibling;X(m,W(et,{get store(){return e.store},active:`files`}),_),X(T,W(G,{get each(){return Mt(t())},children:(e,t)=>[W(K,{get when(){return t()>1},get children(){return _t()}}),(()=>{var t=vt();return t.$$click=t=>{t.preventDefault(),n(e.path)},X(t,()=>e.label),j(()=>Y(t,`href`,`#/files/${encodeURIComponent(e.path)}`)),t})()]})),E.$$click=()=>u(!0),D.$$click=()=>S?.click(),O.$$click=b,X(k,W(K,{get when(){return g()?.contextTrust},get fallback(){return yt()},children:e=>W(K,{get when(){return e().state===`untrusted`},get fallback(){return W(K,{get when(){return e().state===`trusted-root`},get fallback(){return St()},get children(){var t=xt(),n=t.firstChild,r=n.nextSibling,i=r.nextSibling,a=i.nextSibling,o=a.firstChild.nextSibling;return o.nextSibling,X(n,()=>e().grantingRoot===e().canonicalTarget?`Nested context trusted for this folder`:`Nested context inherited from a trusted root`),X(r,(()=>{var t=q(()=>e().grantingRoot===e().canonicalTarget);return()=>t()?`${e().grantingRoot} and all descendants are trusted.`:`${e().canonicalTarget} is covered by ${e().grantingRoot} and its descendants.`})()),i.$$click=()=>void x(`untrust`),X(i,(()=>{var t=q(()=>!!p());return()=>t()?`removing trust…`:`untrust ${e().grantingRoot}`})()),X(a,()=>e().grantingRoot,o),j(()=>i.disabled=p()),t}})},get children(){var e=bt(),t=e.firstChild.nextSibling.nextSibling;return t.$$click=()=>void x(`trust`),X(t,()=>p()?`trusting…`:`trust this folder and descendants`),j(()=>t.disabled=p()),e}})})),X(A,W(G,{get each(){return h()??[]},children:e=>(()=>{var t=Ct();return t.$$click=()=>n(e.path),X(t,()=>e.label),t})()}),null),X(_,W(K,{get when(){return r()},get children(){var e=mt();return X(e,r),e}}),M),X(N,W(G,{get each(){return g()?.entries??[]},children:e=>(()=>{var t=Et(),r=t.firstChild,i=r.nextSibling,a=i.nextSibling,o=a.nextSibling;return X(r,W(K,{get when(){return e.type===`dir`},get fallback(){return(()=>{var t=Dt();return t.firstChild.nextSibling,X(t,()=>e.name,null),t})()},get children(){var t=wt(),r=t.firstChild.nextSibling.nextSibling;return r.nextSibling,t.$$click=()=>n(`${g().path}/${e.name}`.replace(`//`,`/`)),X(t,()=>e.name,r),t}})),X(i,(()=>{var t=q(()=>e.type===`dir`);return()=>t()?`—`:at(e.size)})()),X(a,()=>it(e.modified)),X(o,W(K,{get when(){return e.type===`file`},get children(){var t=Tt();return j(()=>Y(t,`href`,Q.downloadUrl(`${g().path}/${e.name}`.replace(`//`,`/`)))),t}})),t})()})),P.addEventListener(`drop`,e=>{e.preventDefault(),o(!1);let t=e.dataTransfer?.files[0];t&&y(t,!1)}),P.addEventListener(`dragleave`,()=>o(!1)),P.addEventListener(`dragover`,e=>{e.preventDefault(),o(!0)}),X(P,t,null),F.addEventListener(`change`,e=>{let t=e.currentTarget.files?.[0];t&&y(t,!1),e.currentTarget.value=``});var I=S;return typeof I==`function`?Pe(I,F):S=F,X(m,W(K,{get when(){return s()},children:e=>W(nt,{title:`file exists`,onDismiss:()=>c(void 0),get actions(){return[(()=>{var e=kt();return e.$$click=()=>c(void 0),e})(),(()=>{var t=At();return t.$$click=()=>y(e(),!0),t})()]},get children(){var n=Ot(),r=n.firstChild.nextSibling,i=r.nextSibling.nextSibling;return i.nextSibling,X(n,()=>e().name,r),X(n,t,i),n}})}),null),X(m,W(K,{get when(){return l()},get children(){return W(nt,{title:`new folder`,onDismiss:()=>u(!1),get actions(){return[(()=>{var e=kt();return e.$$click=()=>u(!1),e})(),(()=>{var e=jt();return e.$$click=async()=>{try{await Q.mkdir(t(),d().trim()),u(!1),f(``),await v()}catch(e){i(e instanceof Error?e.message:String(e)),u(!1)}},j(()=>e.disabled=!d().trim()),e})()]},get children(){var e=ht(),t=e.firstChild.nextSibling;return t.$$input=e=>f(e.currentTarget.value),j(()=>t.value=d()),e}})}}),null),j(()=>P.classList.toggle(`active`,!!a())),m})()}Ae([`click`,`input`]);var Pt=J(`<p class=attention-reason>`),Ft=J(`<p class=error-reason>`),It=J(`<p class=activity>`),Lt=J(`<div class=subagents><span>⚡ <!> running · <!> done`),Rt=J(`<span>tasks <!>/`),zt=J(`<span>·`),Bt=J(`<span>`),Vt=J(`<span>ctx <!>%`),Ht=J(`<article class=session-card><div class=session-title><span class=name></span></div><p class=session-project></p><div class=session-meta><span> msgs</span><span>·</span><span></span></div><div class=session-actions><button type=button class="btn btn-small btn-primary">open</button><button type=button class="btn btn-small btn-danger">stop runtime`),Ut=J(`<span class=agent-line><span class=live>●</span> <!> — `),Wt=J(`<div class=field><label for=new-session-cwd>project path</label><input id=new-session-cwd type=text placeholder=/path/to/project>`),Gt=J(`<div class=field><label for=recent-projects-list>recent projects</label><div class=recent-projects id=recent-projects-list>`),Kt=J(`<div class=field><label for=new-session-prompt>first prompt (optional)</label><textarea id=new-session-prompt rows=3>`),qt=J(`<p class=pair-error>`),Jt=J(`<button type=button class="btn btn-small">cancel`),Yt=J(`<button type=button class="btn btn-small btn-primary">`),Xt=J(`<button type=button>`),Zt=J(`<div class=settings-error role=alert>Fleet could not be loaded: `),Qt=J(`<div class=settings-error role=alert>Fleet stats could not be refreshed: `),$t=J(`<section class=live-sessions><div class=session-grid>`),en=J(`<section class=past-sessions><h2 class=past-sessions-head>past sessions`),tn=J(`<div class=screen-fill><main class=container><div class=fleet-head><div><h1>fleet</h1><p class="muted small"> live · <!> needs attention · <!> on disk</p></div><button type=button class="btn btn-primary">+ new session`),nn=J(`<div class=empty-state><p>No sessions yet.</p><p style=margin-top:8px><button type=button class="btn btn-primary">+ create your first session`),rn=J(`<button type=button class=disk-more>`),an=J(`<section class=project-group><div class=group-head><h3></h3><span class="muted small"> on disk</span><button type=button class="btn btn-small">+ new`),on=J(`<div class=disk-row><span class=name></span><span class=meta> msgs · </span><span class=actions><button type=button class="btn btn-small">resume</button><button type=button class="btn btn-small btn-danger">delete`),sn=J(`<p> — <!> messages. The session file is moved to trash where supported.`),cn=J(`<button type=button class="btn btn-small btn-danger">delete`);function ln(e){return e.error?`error`:e.needsAttention?`attention`:e.state.isStreaming||e.state.isRetrying||e.state.isCompacting?`running`:`idle`}function un(e){return e===`/tmp`||e.startsWith(`/tmp/`)?`/tmp`:e}function dn(e){return e.replace(/^\/home\/[^/]+/,`~`)}function fn(e){let t=e.state.model;return t?`${t.provider}/${t.id}`:void 0}function pn(e){return e.stats?`$${e.stats.cost.toFixed(2)}`:void 0}var mn=200;function hn(e,t){let n=e.sessions[t.key]?.entries??[];for(let e=n.length-1;e>=0;--e){let t=n[e];if(t.kind!==`assistant`)continue;let r=t.blocks.filter(e=>e.kind===`text`).map(e=>e.text).join(``).trim();if(r)return r.slice(0,mn)}return t.lastAssistantText}function gn(e){let t=()=>ln(e.runtime),n=()=>e.store.sessions[e.runtime.key],r=()=>e.runtime.backgroundAgents.filter(e=>e.status===`running`),i=()=>e.runtime.backgroundAgents.filter(e=>e.status!==`running`),a=()=>n()?.tasks??e.runtime.state.tasks??[],o=()=>a().filter(e=>e.status===`completed`).length,s=()=>e.runtime.state.contextUsage,c=()=>{let t=n();return t?.workingText?`▸ ${t.workingText}`:t?.suggestedCommand?`suggested next: ${t.suggestedCommand}`:hn(e.store,e.runtime)};return(()=>{var l=Ht(),u=l.firstChild,d=u.firstChild,f=u.nextSibling,p=f.nextSibling,m=p.firstChild,h=m.firstChild,g=m.nextSibling.nextSibling,_=p.nextSibling.firstChild,v=_.nextSibling;return X(d,()=>n()?.sessionName??e.runtime.state.sessionName??e.runtime.state.sessionId.slice(0,8)),X(u,W(K,{get when(){return n()?.lastError},get fallback(){return W(Qe,{get status(){return t()}})},get children(){return W(Qe,{status:`error`})}}),null),X(f,()=>dn(e.runtime.cwd)),X(l,W(K,{get when(){return t()===`attention`},get children(){var e=Pt();return X(e,(()=>{var e=q(()=>!!n()?.uiRequests[0]);return()=>e()?`waiting for input — ${n().uiRequests[0].title}`:`needs attention`})()),e}}),p),X(l,W(K,{get when(){return e.runtime.error??n()?.lastError},get children(){var t=Ft();return X(t,()=>e.runtime.error??n().lastError),t}}),p),X(l,W(K,{get when(){return c()},get children(){var e=It();return X(e,c),e}}),p),X(l,W(K,{get when(){return e.runtime.backgroundAgents.length>0},get children(){var e=Lt(),t=e.firstChild,n=t.firstChild.nextSibling,a=n.nextSibling.nextSibling;return a.nextSibling,X(t,()=>r().length,n),X(t,()=>i().length,a),X(e,W(G,{get each(){return r().slice(0,3)},children:e=>(()=>{var t=Ut(),n=t.firstChild.nextSibling.nextSibling;return n.nextSibling,X(t,()=>e.agentType,n),X(t,()=>e.taskSummary,null),t})()}),null),e}}),p),X(p,W(K,{get when(){return a().length>0},get children(){return[(()=>{var e=Rt(),t=e.firstChild.nextSibling;return t.nextSibling,X(e,o,t),X(e,()=>a().length,null),e})(),zt()]}}),m),X(p,W(K,{get when(){return fn(e.runtime)},get children(){return[(()=>{var t=Bt();return X(t,()=>fn(e.runtime)),t})(),zt()]}}),m),X(p,W(K,{get when(){return q(()=>!!s())()&&s().percent!==null},get children(){return[(()=>{var e=Vt(),t=e.firstChild.nextSibling;return t.nextSibling,X(e,()=>s().percent.toFixed(0),t),e})(),zt()]}}),m),X(p,W(K,{get when(){return pn(e.runtime)},get children(){return[(()=>{var t=Bt();return X(t,()=>pn(e.runtime)),t})(),zt()]}}),m),X(m,()=>e.runtime.state.messageCount,h),X(g,()=>it(e.runtime.lastActivity)),_.$$click=()=>e.store.navigate({screen:`session`,key:e.runtime.key}),v.$$click=async()=>{await Q.stopRuntime(e.runtime.key),await e.store.removeRuntime(e.runtime.key)},j(r=>{var i=t()===`attention`,a=!!(t()===`error`||n()?.lastError),o=e.runtime.cwd;return i!==r.e&&l.classList.toggle(`attention`,r.e=i),a!==r.t&&l.classList.toggle(`error`,r.t=a),o!==r.a&&Y(f,`title`,r.a=o),r},{e:void 0,t:void 0,a:void 0}),l})()}function _n(e){let[t,n]=k(e.initialCwd??``),[r,i]=k(``),[a,o]=k(),[s,c]=k(!1);async function l(){c(!0),o(void 0);try{let n=await Q.createRuntime(t(),{firstPrompt:r()||void 0});e.store.upsertRuntime(n),await e.store.refreshDiskSessions(),e.onClose(),e.store.navigate({screen:`session`,key:n.key})}catch(e){o(e instanceof Error?e.message:String(e))}finally{c(!1)}}return W(nt,{title:`new session`,get onDismiss(){return e.onClose},get actions(){return[(()=>{var t=Jt();return Me(t,`click`,e.onClose,!0),t})(),(()=>{var e=Yt();return e.$$click=l,X(e,()=>s()?`starting…`:`start session`),j(()=>e.disabled=s()||!t()),e})()]},get children(){return[(()=>{var e=Wt(),r=e.firstChild.nextSibling;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e})(),W(K,{get when(){return e.recentProjects.length>0},get children(){var t=Gt(),r=t.firstChild.nextSibling;return X(r,W(G,{get each(){return e.recentProjects},children:e=>(()=>{var t=Xt();return t.$$click=()=>n(e),X(t,()=>dn(e)),t})()})),t}}),(()=>{var e=Kt(),t=e.firstChild.nextSibling;return t.$$input=e=>i(e.currentTarget.value),j(()=>t.value=r()),e})(),W(K,{get when(){return a()},get children(){var e=qt();return X(e,a),e}})]}})}function vn(e){let[t,n]=k(),[r,i]=k(!1),[a,o]=k(),[s,c]=k({}),[l,u]=k(),d=N(()=>{let t=[...e.store.fleet().runtimes];return t.sort((e,t)=>{let n=e.cwd.localeCompare(t.cwd);return n===0?new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime():n}),t}),f=N(()=>{let t=e.store.fleet(),n=new Set(t.runtimes.map(e=>e.state.sessionFile).filter(Boolean)),r=new Map;for(let e of t.diskSessions){if(n.has(e.path))continue;let t=un(e.cwd),i=r.get(t)??[];i.push(e),r.set(t,i)}let i=[...r.entries()];return i.sort(([,e],[,t])=>new Date(t[0]?.modified??0).getTime()-new Date(e[0]?.modified??0).getTime()),i}),p=N(()=>{let t=e.store.fleet();return{live:t.runtimes.length,attention:t.runtimes.filter(e=>e.needsAttention).length,disk:t.diskSessions.length}}),m=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].slice(0,8)});R(()=>{let t=setInterval(()=>void e.store.refreshFleetStats(),3e4);z(()=>clearInterval(t))});async function h(t){u(void 0);try{let n=await Q.createRuntime(t.cwd,{sessionPath:t.path});e.store.upsertRuntime(n),await e.store.refreshDiskSessions(),e.store.navigate({screen:`session`,key:n.key})}catch(e){u(`Failed to resume session: ${e instanceof Error?e.message:String(e)}`)}}return(()=>{var u=tn(),g=u.firstChild,_=g.firstChild.firstChild,v=_.firstChild.nextSibling,y=v.firstChild,b=y.nextSibling,x=b.nextSibling.nextSibling;x.nextSibling;var S=_.nextSibling;return X(u,W(et,{get store(){return e.store},active:`fleet`}),g),X(v,()=>p().live,y),X(v,()=>p().attention,b),X(v,()=>p().disk,x),S.$$click=()=>{n(void 0),i(!0)},X(g,W(K,{get when(){return e.store.fleetError()},get children(){var t=Zt();return t.firstChild,X(t,()=>e.store.fleetError(),null),t}}),null),X(g,W(K,{get when(){return e.store.fleetStatsError()},get children(){var t=Qt();return t.firstChild,X(t,()=>e.store.fleetStatsError(),null),t}}),null),X(g,W(K,{get when(){return d().length>0||f().length>0||e.store.fleetError()},get fallback(){return(()=>{var e=nn(),t=e.firstChild.nextSibling.firstChild;return t.$$click=()=>i(!0),e})()},get children(){return[W(K,{get when(){return d().length>0},get children(){var t=$t(),n=t.firstChild;return X(n,W(G,{get each(){return d()},children:t=>W(gn,{get store(){return e.store},runtime:t})})),t}}),W(K,{get when(){return f().length>0},get children(){var e=en();return e.firstChild,X(e,W(K,{get when(){return l()},get children(){var e=qt();return X(e,l),e}}),null),X(e,W(G,{get each(){return f()},children:([e,t])=>{let r=()=>s()[e]??!1,a=()=>r()?t:t.slice(0,3);return(()=>{var s=an(),l=s.firstChild.firstChild,u=l.nextSibling,d=u.firstChild,f=u.nextSibling;return X(l,()=>dn(e)),X(u,()=>t.length,d),f.$$click=()=>{n(e),i(!0)},X(s,W(G,{get each(){return a()},children:e=>(()=>{var t=on(),n=t.firstChild,r=n.nextSibling,i=r.firstChild,a=r.nextSibling.firstChild,s=a.nextSibling;return X(n,()=>e.name??`“${e.firstMessage.slice(0,60)}…”`),X(r,()=>e.messageCount,i),X(r,()=>it(e.modified),null),a.$$click=()=>h(e),s.$$click=()=>o(e),j(()=>n.classList.toggle(`muted`,!e.name)),t})()}),null),X(s,W(K,{get when(){return t.length>3},get children(){var n=rn();return n.$$click=()=>c(t=>({...t,[e]:!r()})),X(n,(()=>{var e=q(()=>!!r());return()=>e()?`show fewer ←`:`all ${t.length} on disk →`})()),n}}),null),s})()}}),null),e}})]}}),null),X(u,W(K,{get when(){return r()},get children(){return W(_n,{get store(){return e.store},get initialCwd(){return t()},get recentProjects(){return m()},onClose:()=>i(!1)})}}),null),X(u,W(K,{get when(){return a()},children:t=>W(nt,{title:`delete session?`,onDismiss:()=>o(void 0),get actions(){return[(()=>{var e=Jt();return e.$$click=()=>o(void 0),e})(),(()=>{var n=cn();return n.$$click=async()=>{await Q.deleteSession(t().path),o(void 0),await e.store.refreshDiskSessions()},n})()]},get children(){var e=sn(),n=e.firstChild,r=n.nextSibling;return r.nextSibling,X(e,()=>t().name??t().firstMessage.slice(0,80),n),X(e,()=>t().messageCount,r),e}})}),null),u})()}Ae([`click`,`input`]);var yn=J(`<p class=pair-error>`),bn=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.`),xn=J(`<div class=pair-wrap>`),Sn=J(`<p class="muted small">rejected identity: `),Cn=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 wn(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 Q.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=xn();return X(e,W(K,{get when(){return!c()},get fallback(){return(()=>{var e=Cn(),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=Sn();return e.firstChild,X(e,()=>s().identity,null),e}}),n),e})()},get children(){var e=bn(),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=yn();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`]);var Tn=19660800-768*1024;function En(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Dn(e){if(Array.isArray(e))return e}function On(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function kn(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
2
2
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function An(e,t){return Dn(e)||On(e,t)||jn(e,t)||kn()}function jn(e,t){if(e){if(typeof e==`string`)return En(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?En(e,t):void 0}}var Mn=Object.entries,Nn=Object.setPrototypeOf,Pn=Object.isFrozen,Fn=Object.getPrototypeOf,In=Object.getOwnPropertyDescriptor,Ln=Object.freeze,Rn=Object.seal,zn=Object.create,Bn=typeof Reflect<`u`&&Reflect,Vn=Bn.apply,Hn=Bn.construct;Ln||=function(e){return e},Rn||=function(e){return e},Vn||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},Hn||=function(e){return new e(...[...arguments].slice(1))};var Un=lr(Array.prototype.forEach),Wn=lr(Array.prototype.lastIndexOf),Gn=lr(Array.prototype.pop),Kn=lr(Array.prototype.push),qn=lr(Array.prototype.splice),Jn=Array.isArray,Yn=lr(String.prototype.toLowerCase),Xn=lr(String.prototype.toString),Zn=lr(String.prototype.match),Qn=lr(String.prototype.replace),$n=lr(String.prototype.indexOf),er=lr(String.prototype.trim),tr=lr(Number.prototype.toString),nr=lr(Boolean.prototype.toString),rr=typeof BigInt>`u`?null:lr(BigInt.prototype.toString),ir=typeof Symbol>`u`?null:lr(Symbol.prototype.toString),ar=lr(Object.prototype.hasOwnProperty),or=lr(Object.prototype.toString),sr=lr(RegExp.prototype.test),cr=ur(TypeError);function lr(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return Vn(e,t,n)}}function ur(e){return function(){return Hn(e,[...arguments])}}function $(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Yn;if(Nn&&Nn(e,null),!Jn(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(Pn(t)||(t[r]=e),i=e)}e[i]=!0}return e}function dr(e){for(let t=0;t<e.length;t++)ar(e,t)||(e[t]=null);return e}function fr(e){let t=zn(null);for(let r of Mn(e)){var n=An(r,2);let i=n[0],a=n[1];ar(e,i)&&(Jn(a)?t[i]=dr(a):a&&typeof a==`object`&&a.constructor===Object?t[i]=fr(a):t[i]=a)}return t}function pr(e){switch(typeof e){case`string`:return e;case`number`:return tr(e);case`boolean`:return nr(e);case`bigint`:return rr?rr(e):`0`;case`symbol`:return ir?ir(e):`Symbol()`;case`undefined`:return or(e);case`function`:case`object`:{if(e===null)return or(e);let t=e,n=mr(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:or(e)}return or(e)}default:return or(e)}}function mr(e,t){for(;e!==null;){let n=In(e,t);if(n){if(n.get)return lr(n.get);if(typeof n.value==`function`)return lr(n.value)}e=Fn(e)}function n(){return null}return n}function hr(e){try{return sr(e,``),!0}catch{return!1}}var gr=Ln(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),_r=Ln(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),vr=Ln([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),yr=Ln([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),br=Ln(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),xr=Ln([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),Sr=Ln([`#text`]),Cr=Ln(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),wr=Ln(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),Tr=Ln(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),Er=Ln([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Dr=Rn(/{{[\w\W]*|^[\w\W]*}}/g),Or=Rn(/<%[\w\W]*|^[\w\W]*%>/g),kr=Rn(/\${[\w\W]*/g),Ar=Rn(/^data-[\-\w.\u00B7-\uFFFF]+$/),jr=Rn(/^aria-[\-\w]+$/),Mr=Rn(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Nr=Rn(/^(?:\w+script|data):/i),Pr=Rn(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Fr=Rn(/^html$/i),Ir=Rn(/^[a-z][.\w]*(-[.\w]+)+$/i),Lr=Rn(/<[/\w!]/g),Rr=Rn(/<[/\w]/g),zr=Rn(/<\/no(script|embed|frames)/i),Br=Rn(/\/>/i),Vr={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Hr=function(){return typeof window>`u`?null:window},Ur=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},Wr=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Gr=function(e,t,n,r){return ar(e,t)&&Jn(e[t])?$(r.base?fr(r.base):{},e[t],r.transform):n};function Kr(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Hr(),t=e=>Kr(e);if(t.version=`3.4.11`,t.removed=[],!e||!e.document||e.document.nodeType!==Vr.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=mr(d,`cloneNode`),p=mr(d,`remove`),m=mr(d,`nextSibling`),h=mr(d,`childNodes`),g=mr(d,`parentNode`),_=mr(d,`shadowRoot`),v=mr(d,`attributes`),y=o&&o.prototype?mr(o.prototype,`nodeType`):null,b=o&&o.prototype?mr(o.prototype,`nodeName`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let x,S=``,C,w=!1,T=0,E=function(){if(T>0)throw cr(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},D=function(e){E(),T++;try{return x.createHTML(e)}finally{T--}},O=function(e){E(),T++;try{return x.createScriptURL(e)}finally{T--}},k=function(){return w||=(C=Ur(u,i),!0),C},A=n,j=A.implementation,M=A.createNodeIterator,N=A.createDocumentFragment,P=A.getElementsByTagName,F=r.importNode,I=Wr();t.isSupported=typeof Mn==`function`&&typeof g==`function`&&j&&j.createHTMLDocument!==void 0;let L=Dr,R=Or,z=kr,B=Ar,ee=jr,te=Nr,ne=Pr,re=Ir,ie=Mr,V=null,ae=$({},[...gr,..._r,...vr,...br,...Sr]),H=null,oe=$({},[...Cr,...wr,...Tr,...Er]),U=Object.seal(zn(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),se=null,ce=null,le=Object.seal(zn(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),ue=!0,de=!0,fe=!1,pe=!0,me=!1,he=!0,ge=!1,_e=!1,ve=null,ye=null,be=!1,xe=!1,Se=!1,Ce=!1,W=!0,we=!1,G=`user-content-`,K=!0,Te=!1,Ee={},q=null,De=$({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Oe=null,ke=$({},[`audio`,`video`,`img`,`source`,`image`,`track`]),J=null,Ae=$({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Y=`http://www.w3.org/1998/Math/MathML`,je=`http://www.w3.org/2000/svg`,Me=`http://www.w3.org/1999/xhtml`,Ne=Me,Pe=!1,X=null,Fe=$({},[Y,je,Me],Xn),Ie=Ln([`mi`,`mo`,`mn`,`ms`,`mtext`]),Le=$({},Ie),Re=Ln([`annotation-xml`]),ze=$({},Re),Be=$({},[`title`,`style`,`font`,`a`,`script`]),Ve=null,He=[`application/xhtml+xml`,`text/html`],Ue=null,We=null,Ge=n.createElement(`form`),Ke=function(e){return e instanceof RegExp||e instanceof Function},qe=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(We&&We===e)return;(!e||typeof e!=`object`)&&(e={}),e=fr(e),Ve=He.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,Ue=Ve===`application/xhtml+xml`?Xn:Yn,V=Gr(e,`ALLOWED_TAGS`,ae,{transform:Ue}),H=Gr(e,`ALLOWED_ATTR`,oe,{transform:Ue}),X=Gr(e,`ALLOWED_NAMESPACES`,Fe,{transform:Xn}),J=Gr(e,`ADD_URI_SAFE_ATTR`,Ae,{transform:Ue,base:Ae}),Oe=Gr(e,`ADD_DATA_URI_TAGS`,ke,{transform:Ue,base:ke}),q=Gr(e,`FORBID_CONTENTS`,De,{transform:Ue}),se=Gr(e,`FORBID_TAGS`,fr({}),{transform:Ue}),ce=Gr(e,`FORBID_ATTR`,fr({}),{transform:Ue}),Ee=ar(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?fr(e.USE_PROFILES):e.USE_PROFILES:!1,ue=e.ALLOW_ARIA_ATTR!==!1,de=e.ALLOW_DATA_ATTR!==!1,fe=e.ALLOW_UNKNOWN_PROTOCOLS||!1,pe=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,me=e.SAFE_FOR_TEMPLATES||!1,he=e.SAFE_FOR_XML!==!1,ge=e.WHOLE_DOCUMENT||!1,xe=e.RETURN_DOM||!1,Se=e.RETURN_DOM_FRAGMENT||!1,Ce=e.RETURN_TRUSTED_TYPE||!1,be=e.FORCE_BODY||!1,W=e.SANITIZE_DOM!==!1,we=e.SANITIZE_NAMED_PROPS||!1,K=e.KEEP_CONTENT!==!1,Te=e.IN_PLACE||!1,ie=hr(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:Mr,Ne=typeof e.NAMESPACE==`string`?e.NAMESPACE:Me,Le=ar(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?fr(e.MATHML_TEXT_INTEGRATION_POINTS):$({},Ie),ze=ar(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?fr(e.HTML_INTEGRATION_POINTS):$({},Re);let t=ar(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?fr(e.CUSTOM_ELEMENT_HANDLING):zn(null);if(U=zn(null),ar(t,`tagNameCheck`)&&Ke(t.tagNameCheck)&&(U.tagNameCheck=t.tagNameCheck),ar(t,`attributeNameCheck`)&&Ke(t.attributeNameCheck)&&(U.attributeNameCheck=t.attributeNameCheck),ar(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(U.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),Rn(U),me&&(de=!1),Se&&(xe=!0),Ee&&(V=$({},Sr),H=zn(null),Ee.html===!0&&($(V,gr),$(H,Cr)),Ee.svg===!0&&($(V,_r),$(H,wr),$(H,Er)),Ee.svgFilters===!0&&($(V,vr),$(H,wr),$(H,Er)),Ee.mathMl===!0&&($(V,br),$(H,Tr),$(H,Er))),le.tagCheck=null,le.attributeCheck=null,ar(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?le.tagCheck=e.ADD_TAGS:Jn(e.ADD_TAGS)&&(V===ae&&(V=fr(V)),$(V,e.ADD_TAGS,Ue))),ar(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?le.attributeCheck=e.ADD_ATTR:Jn(e.ADD_ATTR)&&(H===oe&&(H=fr(H)),$(H,e.ADD_ATTR,Ue))),ar(e,`ADD_URI_SAFE_ATTR`)&&Jn(e.ADD_URI_SAFE_ATTR)&&$(J,e.ADD_URI_SAFE_ATTR,Ue),ar(e,`FORBID_CONTENTS`)&&Jn(e.FORBID_CONTENTS)&&(q===De&&(q=fr(q)),$(q,e.FORBID_CONTENTS,Ue)),ar(e,`ADD_FORBID_CONTENTS`)&&Jn(e.ADD_FORBID_CONTENTS)&&(q===De&&(q=fr(q)),$(q,e.ADD_FORBID_CONTENTS,Ue)),K&&(V[`#text`]=!0),ge&&$(V,[`html`,`head`,`body`]),V.table&&($(V,[`tbody`]),delete se.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw cr(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw cr(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=x;x=e.TRUSTED_TYPES_POLICY;try{S=D(``)}catch(e){throw x=t,e}}else e.TRUSTED_TYPES_POLICY===null?(x=void 0,S=``):(x===void 0&&(x=k()),x&&typeof S==`string`&&(S=D(``)));Ln&&Ln(e),We=e},Je=$({},[..._r,...vr,...yr]),Ye=$({},[...br,...xr]),Xe=function(e,t,n){return t.namespaceURI===Me?e===`svg`:t.namespaceURI===Y?e===`svg`&&(n===`annotation-xml`||Le[n]):!!Je[e]},Ze=function(e,t,n){return t.namespaceURI===Me?e===`math`:t.namespaceURI===je?e===`math`&&ze[n]:!!Ye[e]},Qe=function(e,t,n){return t.namespaceURI===je&&!ze[n]||t.namespaceURI===Y&&!Le[n]?!1:!Ye[e]&&(Be[e]||!Je[e])},$e=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:Ne,tagName:`template`});let n=Yn(e.tagName),r=Yn(t.tagName);return X[e.namespaceURI]?e.namespaceURI===je?Xe(n,t,r):e.namespaceURI===Y?Ze(n,t,r):e.namespaceURI===Me?Qe(n,t,r):!!(Ve===`application/xhtml+xml`&&X[e.namespaceURI]):!1},et=function(e){Kn(t.removed,{element:e});try{g(e).removeChild(e)}catch{if(p(e),!g(e))throw cr(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},tt=function(e){let t=h(e);if(t){let e=[];Un(t,t=>{Kn(e,t)}),Un(e,e=>{try{p(e)}catch{}})}let n=v(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;if(typeof i==`string`)try{e.removeAttribute(i)}catch{}}},nt=function(e,n){try{Kn(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{Kn(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(xe||Se)try{et(n)}catch{}else try{n.setAttribute(e,``)}catch{}},rt=function(e){let t=v(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;if(!(typeof i!=`string`||H[Ue(i)]))try{e.removeAttribute(i)}catch{}}},it=function(e){let t=[e];for(;t.length>0;){let e=t.pop();(y?y(e):e.nodeType)===Vr.element&&rt(e);let n=h(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},at=function(e){let t=null,r=null;if(be)e=`<remove></remove>`+e;else{let t=Zn(e,/^[\r\n\t ]+/);r=t&&t[0]}Ve===`application/xhtml+xml`&&Ne===Me&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=x?D(e):e;if(Ne===Me)try{t=new l().parseFromString(i,Ve)}catch{}if(!t||!t.documentElement){t=j.createDocument(Ne,`template`,null);try{t.documentElement.innerHTML=Pe?S:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Ne===Me?P.call(t,ge?`html`:`body`)[0]:ge?t.documentElement:a},ot=function(e){return M.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},Z=function(e){return e=Qn(e,L,` `),e=Qn(e,R,` `),e=Qn(e,z,` `),e},st=function(e){e.normalize();let t=M.call(e.ownerDocument||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),n=t.nextNode();for(;n;)n.data=Z(n.data),n=t.nextNode();let r=e.querySelectorAll?.call(e,`template`);r&&Un(r,e=>{ct(e.content)&&st(e.content)})},Q=function(e){let t=b?b(e):null;return typeof t!=`string`||Ue(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},ct=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===Vr.documentFragment}catch{return!1}},lt=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function ut(e,n,r){e.length!==0&&Un(e,e=>{e.call(t,n,r,We)})}let dt=function(e,t){return!!(he&&e.hasChildNodes()&&!lt(e.firstElementChild)&&sr(Lr,e.textContent)&&sr(Lr,e.innerHTML)||he&&e.namespaceURI===Me&&t===`style`&&lt(e.firstElementChild)||e.nodeType===Vr.processingInstruction||he&&e.nodeType===Vr.comment&&sr(Rr,e.data))},ft=function(e,t){if(!se[t]&&gt(t)&&(U.tagNameCheck instanceof RegExp&&sr(U.tagNameCheck,t)||U.tagNameCheck instanceof Function&&U.tagNameCheck(t)))return!1;if(K&&!q[t]){let t=g(e),n=h(e);if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=Te?n[i]:f(n[i],!0);t.insertBefore(r,m(e))}}}return et(e),!0},pt=function(e){if(ut(I.beforeSanitizeElements,e,null),Q(e))return et(e),!0;let n=Ue(b?b(e):e.nodeName);if(ut(I.uponSanitizeElement,e,{tagName:n,allowedTags:V}),dt(e,n))return et(e),!0;if(se[n]||!(le.tagCheck instanceof Function&&le.tagCheck(n))&&!V[n])return ft(e,n);if((y?y(e):e.nodeType)===Vr.element&&!$e(e)||(n===`noscript`||n===`noembed`||n===`noframes`)&&sr(zr,e.innerHTML))return et(e),!0;if(me&&e.nodeType===Vr.text){let n=Z(e.textContent);e.textContent!==n&&(Kn(t.removed,{element:e.cloneNode()}),e.textContent=n)}return ut(I.afterSanitizeElements,e,null),!1},mt=function(e,t,r){if(ce[t]||W&&(t===`id`||t===`name`)&&(r in n||r in Ge))return!1;let i=H[t]||le.attributeCheck instanceof Function&&le.attributeCheck(t,e);if(!(de&&sr(B,t))&&!(ue&&sr(ee,t))){if(!i){if(!(gt(e)&&(U.tagNameCheck instanceof RegExp&&sr(U.tagNameCheck,e)||U.tagNameCheck instanceof Function&&U.tagNameCheck(e))&&(U.attributeNameCheck instanceof RegExp&&sr(U.attributeNameCheck,t)||U.attributeNameCheck instanceof Function&&U.attributeNameCheck(t,e))||t===`is`&&U.allowCustomizedBuiltInElements&&(U.tagNameCheck instanceof RegExp&&sr(U.tagNameCheck,r)||U.tagNameCheck instanceof Function&&U.tagNameCheck(r))))return!1}else if(!J[t]&&!sr(ie,Qn(r,ne,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&$n(r,`data:`)===0&&Oe[e])&&!(fe&&!sr(te,Qn(r,ne,``)))&&r)return!1}return!0},ht=$({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),gt=function(e){return!ht[Yn(e)]&&sr(re,e)},_t=function(e,t,n,r){if(x&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return D(r);case`TrustedScriptURL`:return O(r)}return r},vt=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),Q(e)?et(e):Gn(t.removed)}catch{nt(n,e)}},yt=function(e){ut(I.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||Q(e))return;let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:H,forceKeepAttr:void 0},r=t.length,i=Ue(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=Ue(o),u=c,d=o===`value`?u:er(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,ut(I.uponSanitizeAttribute,e,n),d=n.attrValue,we&&(l===`id`||l===`name`)&&$n(d,G)!==0&&(nt(o,e),d=G+d),he&&sr(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){nt(o,e);continue}if(l===`attributename`&&Zn(d,`href`)){nt(o,e);continue}if(!n.forceKeepAttr){if(!n.keepAttr){nt(o,e);continue}if(!pe&&sr(Br,d)){nt(o,e);continue}if(me&&(d=Z(d)),!mt(i,l,d)){nt(o,e);continue}d=_t(i,l,s,d),d!==u&&vt(e,o,s,d)}}ut(I.afterSanitizeAttributes,e,null)},bt=function(e){let t=null,n=ot(e);for(ut(I.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(ut(I.uponSanitizeShadowNode,t,null),pt(t),yt(t),ct(t.content)&&bt(t.content),(y?y(t):t.nodeType)===Vr.element){let e=_(t);ct(e)&&(xt(e),bt(e))}ut(I.afterSanitizeShadowDOM,e,null)},xt=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){bt(e.shadow);continue}let n=e.node,r=(y?y(n):n.nodeType)===Vr.element,i=h(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=b?b(n):null;if(typeof e==`string`&&Ue(e)===`template`){let e=n.content;ct(e)&&t.push({node:e,shadow:null})}}if(r){let e=_(n);ct(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Pe=!e,Pe&&(e=`<!-->`),typeof e!=`string`&&!lt(e)&&(e=pr(e),typeof e!=`string`))throw cr(`dirty is not a string, aborting`);if(!t.isSupported)return e;_e?(V=ve,H=ye):qe(n),(I.uponSanitizeElement.length>0||I.uponSanitizeAttribute.length>0)&&(V=fr(V)),I.uponSanitizeAttribute.length>0&&(H=fr(H)),t.removed=[];let c=Te&&typeof e!=`string`&&lt(e);if(c){let t=b?b(e):e.nodeName;if(typeof t==`string`){let e=Ue(t);if(!V[e]||se[e])throw cr(`root node is forbidden and cannot be sanitized in-place`)}if(Q(e))throw cr(`root node is clobbered and cannot be sanitized in-place`);try{xt(e)}catch(t){throw tt(e),t}}else if(lt(e))i=at(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===Vr.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),xt(a);else{if(!xe&&!me&&!ge&&e.indexOf(`<`)===-1)return x&&Ce?D(e):e;if(i=at(e),!i)return xe?null:Ce?S:``}i&&be&&et(i.firstChild);let l=ot(c?e:i);try{for(;o=l.nextNode();)pt(o),yt(o),ct(o.content)&&bt(o.content)}catch(t){throw c&&tt(e),t}if(c)return Un(t.removed,e=>{e.element&&it(e.element)}),me&&st(e),e;if(xe){if(me&&st(i),Se)for(s=N.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(H.shadowroot||H.shadowrootmode)&&(s=F.call(r,s,!0)),s}let u=ge?i.outerHTML:i.innerHTML;return ge&&V[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&sr(Fr,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
3
3
  `+u),me&&(u=Z(u)),x&&Ce?D(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};qe(e),_e=!0,ve=V,ye=H},t.clearConfig=function(){We=null,_e=!1,ve=null,ye=null,x=C,S=``},t.isValidAttribute=function(e,t,n){We||qe({});let r=Ue(e),i=Ue(t);return mt(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&ar(I,e)&&Kn(I[e],t)},t.removeHook=function(e,t){if(ar(I,e)){if(t!==void 0){let n=Wn(I[e],t);return n===-1?void 0:qn(I[e],n,1)[0]}return Gn(I[e])}},t.removeHooks=function(e){ar(I,e)&&(I[e]=[])},t.removeAllHooks=function(){I=Wr()},t}var qr=Kr(),Jr=o(((e,t)=>{function n(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw Error(`map is read-only`)}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw Error(`set is read-only`)}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let r=e[t],i=typeof r;(i===`object`||i===`function`)&&!Object.isFrozen(r)&&n(r)}),e}var r=class{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function i(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#x27;`)}function a(e,...t){let n=Object.create(null);for(let t in e)n[t]=e[t];return t.forEach(function(e){for(let t in e)n[t]=e[t]}),n}var o=`</span>`,s=e=>!!e.scope,c=(e,{prefix:t})=>{if(e.startsWith(`language:`))return e.replace(`language:`,`language-`);if(e.includes(`.`)){let n=e.split(`.`);return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${`_`.repeat(t+1)}`)].join(` `)}return`${t}${e}`},l=class{constructor(e,t){this.buffer=``,this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=i(e)}openNode(e){if(!s(e))return;let t=c(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){s(e)&&(this.buffer+=o)}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}},u=(e={})=>{let t={children:[]};return Object.assign(t,e),t},d=class e{constructor(){this.rootNode=u(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let t=u({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t==`string`?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(t){typeof t!=`string`&&t.children&&(t.children.every(e=>typeof e==`string`)?t.children=[t.children.join(``)]:t.children.forEach(t=>{e._collapse(t)}))}},f=class extends d{constructor(e){super(),this.options=e}addText(e){e!==``&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){let n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new l(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function p(e){return e?typeof e==`string`?e:e.source:null}function m(e){return _(`(?=`,e,`)`)}function h(e){return _(`(?:`,e,`)*`)}function g(e){return _(`(?:`,e,`)?`)}function _(...e){return e.map(e=>p(e)).join(``)}function v(e){let t=e[e.length-1];return typeof t==`object`&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function y(...e){return`(`+(v(e).capture?``:`?:`)+e.map(e=>p(e)).join(`|`)+`)`}function b(e){return RegExp(e.toString()+`|`).exec(``).length-1}function x(e,t){let n=e&&e.exec(t);return n&&n.index===0}var S=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function C(e,{joinWith:t}){let n=0;return e.map(e=>{n+=1;let t=n,r=p(e),i=``;for(;r.length>0;){let e=S.exec(r);if(!e){i+=r;break}i+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),e[0][0]===`\\`&&e[1]?i+=`\\`+String(Number(e[1])+t):(i+=e[0],e[0]===`(`&&n++)}return i}).map(e=>`(${e})`).join(t)}var w=/\b\B/,T=`[a-zA-Z]\\w*`,E=`[a-zA-Z_]\\w*`,D=`\\b\\d+(\\.\\d+)?`,O=`(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)`,k=`\\b(0b[01]+)`,A=`!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~`,j=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=_(t,/.*\b/,e.binary,/\b.*/)),a({scope:`meta`,begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{e.index!==0&&t.ignoreMatch()}},e)},M={begin:`\\\\[\\s\\S]`,relevance:0},N={scope:`string`,begin:`'`,end:`'`,illegal:`\\n`,contains:[M]},P={scope:`string`,begin:`"`,end:`"`,illegal:`\\n`,contains:[M]},F={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},I=function(e,t,n={}){let r=a({scope:`comment`,begin:e,end:t,contains:[]},n);r.contains.push({scope:`doctag`,begin:`[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)`,end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let i=y(`I`,`a`,`is`,`so`,`us`,`to`,`at`,`if`,`in`,`it`,`on`,/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:_(/[ ]+/,`(`,i,/[.]?[:]?([.][ ]|[ ])/,`){3}`)}),r},L=I(`//`,`$`),R=I(`/\\*`,`\\*/`),z=I(`#`,`$`),B=Object.freeze({__proto__:null,APOS_STRING_MODE:N,BACKSLASH_ESCAPE:M,BINARY_NUMBER_MODE:{scope:`number`,begin:k,relevance:0},BINARY_NUMBER_RE:k,COMMENT:I,C_BLOCK_COMMENT_MODE:R,C_LINE_COMMENT_MODE:L,C_NUMBER_MODE:{scope:`number`,begin:O,relevance:0},C_NUMBER_RE:O,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},HASH_COMMENT_MODE:z,IDENT_RE:T,MATCH_NOTHING_RE:w,METHOD_GUARD:{begin:`\\.\\s*[a-zA-Z_]\\w*`,relevance:0},NUMBER_MODE:{scope:`number`,begin:D,relevance:0},NUMBER_RE:D,PHRASAL_WORDS_MODE:F,QUOTE_STRING_MODE:P,REGEXP_MODE:{scope:`regexp`,begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[M,{begin:/\[/,end:/\]/,relevance:0,contains:[M]}]},RE_STARTERS_RE:A,SHEBANG:j,TITLE_MODE:{scope:`title`,begin:T,relevance:0},UNDERSCORE_IDENT_RE:E,UNDERSCORE_TITLE_MODE:{scope:`title`,begin:E,relevance:0}});function ee(e,t){e.input[e.index-1]===`.`&&t.ignoreMatch()}function te(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function ne(e,t){t&&e.beginKeywords&&(e.begin=`\\b(`+e.beginKeywords.split(` `).join(`|`)+`)(?!\\.)(?=\\b|\\s)`,e.__beforeBegin=ee,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function re(e,t){Array.isArray(e.illegal)&&(e.illegal=y(...e.illegal))}function ie(e,t){if(e.match){if(e.begin||e.end)throw Error(`begin & end are not supported with match`);e.begin=e.match,delete e.match}}function V(e,t){e.relevance===void 0&&(e.relevance=1)}var ae=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error(`beforeMatch cannot be used with starts`);let n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=_(n.beforeMatch,m(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},H=[`of`,`and`,`for`,`in`,`not`,`or`,`if`,`then`,`parent`,`list`,`value`],oe=`keyword`;function U(e,t,n=oe){let r=Object.create(null);return typeof e==`string`?i(n,e.split(` `)):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(n){Object.assign(r,U(e[n],t,n))}),r;function i(e,n){t&&(n=n.map(e=>e.toLowerCase())),n.forEach(function(t){let n=t.split(`|`);r[n[0]]=[e,se(n[0],n[1])]})}}function se(e,t){return t?Number(t):+!ce(e)}function ce(e){return H.includes(e.toLowerCase())}var le={},ue=e=>{console.error(e)},de=(e,...t)=>{console.log(`WARN: ${e}`,...t)},fe=(e,t)=>{le[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),le[`${e}/${t}`]=!0)},pe=Error();function me(e,t,{key:n}){let r=0,i=e[n],a={},o={};for(let e=1;e<=t.length;e++)o[e+r]=i[e],a[e+r]=!0,r+=b(t[e-1]);e[n]=o,e[n]._emit=a,e[n]._multi=!0}function he(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw ue(`skip, excludeBegin, returnBegin not compatible with beginScope: {}`),pe;if(typeof e.beginScope!=`object`||e.beginScope===null)throw ue(`beginScope must be object`),pe;me(e,e.begin,{key:`beginScope`}),e.begin=C(e.begin,{joinWith:``})}}function ge(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw ue(`skip, excludeEnd, returnEnd not compatible with endScope: {}`),pe;if(typeof e.endScope!=`object`||e.endScope===null)throw ue(`endScope must be object`),pe;me(e,e.end,{key:`endScope`}),e.end=C(e.end,{joinWith:``})}}function _e(e){e.scope&&typeof e.scope==`object`&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function ve(e){_e(e),typeof e.beginScope==`string`&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope==`string`&&(e.endScope={_wrap:e.endScope}),he(e),ge(e)}function ye(e){function t(t,n){return new RegExp(p(t),`m`+(e.case_insensitive?`i`:``)+(e.unicodeRegex?`u`:``)+(n?`g`:``))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=b(e)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let e=this.regexes.map(e=>e[1]);this.matcherRe=t(C(e,{joinWith:`|`}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let t=this.matcherRe.exec(e);if(!t)return null;let n=t.findIndex((e,t)=>t>0&&e!==void 0),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let t=new n;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),t.type===`begin`&&this.count++}exec(e){let t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition()&&!(n&&n.index===this.lastIndex)){let t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}function i(e){let t=new r;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:`begin`})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:`end`}),e.illegal&&t.addRule(e.illegal,{type:`illegal`}),t}function o(n,r){let a=n;if(n.isCompiled)return a;[te,ie,ve,ae].forEach(e=>e(n,r)),e.compilerExtensions.forEach(e=>e(n,r)),n.__beforeBegin=null,[ne,re,V].forEach(e=>e(n,r)),n.isCompiled=!0;let s=null;return typeof n.keywords==`object`&&n.keywords.$pattern&&(n.keywords=Object.assign({},n.keywords),s=n.keywords.$pattern,delete n.keywords.$pattern),s||=/\w+/,n.keywords&&=U(n.keywords,e.case_insensitive),a.keywordPatternRe=t(s,!0),r&&(n.begin||=/\B|\b/,a.beginRe=t(a.begin),!n.end&&!n.endsWithParent&&(n.end=/\B|\b/),n.end&&(a.endRe=t(a.end)),a.terminatorEnd=p(a.end)||``,n.endsWithParent&&r.terminatorEnd&&(a.terminatorEnd+=(n.end?`|`:``)+r.terminatorEnd)),n.illegal&&(a.illegalRe=t(n.illegal)),n.contains||=[],n.contains=[].concat(...n.contains.map(function(e){return xe(e===`self`?n:e)})),n.contains.forEach(function(e){o(e,a)}),n.starts&&o(n.starts,r),a.matcher=i(a),a}if(e.compilerExtensions||=[],e.contains&&e.contains.includes(`self`))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=a(e.classNameAliases||{}),o(e)}function be(e){return e?e.endsWithParent||be(e.starts):!1}function xe(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return a(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:be(e)?a(e,{starts:e.starts?a(e.starts):null}):Object.isFrozen(e)?a(e):e}var Se=`11.11.1`,Ce=class extends Error{constructor(e,t){super(e),this.name=`HTMLInjectionError`,this.html=t}},W=i,we=a,G=Symbol(`nomatch`),K=7,Te=function(e){let t=Object.create(null),i=Object.create(null),a=[],o=!0,s=`Could not find the language '{}', did you forget to load/include a language module?`,c={disableAutodetect:!0,name:`Plain text`,contains:[]},l={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:`hljs-`,cssSelector:`pre code`,languages:null,__emitter:f};function u(e){return l.noHighlightRe.test(e)}function d(e){let t=e.className+` `;t+=e.parentNode?e.parentNode.className:``;let n=l.languageDetectRe.exec(t);if(n){let t=N(n[1]);return t||(de(s.replace(`{}`,n[1])),de(`Falling back to no-highlight mode for this block.`,e)),t?n[1]:`no-highlight`}return t.split(/\s+/).find(e=>u(e)||N(e))}function p(e,t,n){let r=``,i=``;typeof t==`object`?(r=e,n=t.ignoreIllegals,i=t.language):(fe(`10.7.0`,`highlight(lang, code, ...args) has been deprecated.`),fe(`10.7.0`,`Please use highlight(code, options) instead.
4
4
  https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(n=!0);let a={code:r,language:i};z(`before:highlight`,a);let o=a.result?a.result:v(a.language,a.code,n);return o.code=a.code,z(`after:highlight`,o),o}function v(e,n,i,a){let c=Object.create(null);function u(e,t){return e.keywords[t]}function d(){if(!A.keywords){M.addText(P);return}let e=0;A.keywordPatternRe.lastIndex=0;let t=A.keywordPatternRe.exec(P),n=``;for(;t;){n+=P.substring(e,t.index);let r=D.case_insensitive?t[0].toLowerCase():t[0],i=u(A,r);if(i){let[e,a]=i;if(M.addText(n),n=``,c[r]=(c[r]||0)+1,c[r]<=K&&(F+=a),e.startsWith(`_`))n+=t[0];else{let n=D.classNameAliases[e]||e;m(t[0],n)}}else n+=t[0];e=A.keywordPatternRe.lastIndex,t=A.keywordPatternRe.exec(P)}n+=P.substring(e),M.addText(n)}function f(){if(P===``)return;let e=null;if(typeof A.subLanguage==`string`){if(!t[A.subLanguage]){M.addText(P);return}e=v(A.subLanguage,P,!0,j[A.subLanguage]),j[A.subLanguage]=e._top}else e=S(P,A.subLanguage.length?A.subLanguage:null);A.relevance>0&&(F+=e.relevance),M.__addSublanguage(e._emitter,e.language)}function p(){A.subLanguage==null?d():f(),P=``}function m(e,t){e!==``&&(M.startScope(t),M.addText(e),M.endScope())}function h(e,t){let n=1,r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}let r=D.classNameAliases[e[n]]||e[n],i=t[n];r?m(i,r):(P=i,d(),P=``),n++}}function g(e,t){return e.scope&&typeof e.scope==`string`&&M.openNode(D.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(m(P,D.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),P=``):e.beginScope._multi&&(h(e.beginScope,t),P=``)),A=Object.create(e,{parent:{value:A}}),A}function _(e,t,n){let i=x(e.endRe,n);if(i){if(e[`on:end`]){let n=new r(e);e[`on:end`](t,n),n.isMatchIgnored&&(i=!1)}if(i){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return _(e.parent,t,n)}function y(e){return A.matcher.regexIndex===0?(P+=e[0],1):(R=!0,0)}function b(e){let t=e[0],n=e.rule,i=new r(n),a=[n.__beforeBegin,n[`on:begin`]];for(let n of a)if(n&&(n(e,i),i.isMatchIgnored))return y(t);return n.skip?P+=t:(n.excludeBegin&&(P+=t),p(),!n.returnBegin&&!n.excludeBegin&&(P=t)),g(n,e),n.returnBegin?0:t.length}function C(e){let t=e[0],r=n.substring(e.index),i=_(A,e,r);if(!i)return G;let a=A;A.endScope&&A.endScope._wrap?(p(),m(t,A.endScope._wrap)):A.endScope&&A.endScope._multi?(p(),h(A.endScope,e)):a.skip?P+=t:(a.returnEnd||a.excludeEnd||(P+=t),p(),a.excludeEnd&&(P=t));do A.scope&&M.closeNode(),!A.skip&&!A.subLanguage&&(F+=A.relevance),A=A.parent;while(A!==i.parent);return i.starts&&g(i.starts,e),a.returnEnd?0:t.length}function w(){let e=[];for(let t=A;t!==D;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>M.openNode(e))}let T={};function E(t,r){let a=r&&r[0];if(P+=t,a==null)return p(),0;if(T.type===`begin`&&r.type===`end`&&T.index===r.index&&a===``){if(P+=n.slice(r.index,r.index+1),!o){let t=Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=T.rule,t}return 1}if(T=r,r.type===`begin`)return b(r);if(r.type===`illegal`&&!i){let e=Error(`Illegal lexeme "`+a+`" for mode "`+(A.scope||`<unnamed>`)+`"`);throw e.mode=A,e}else if(r.type===`end`){let e=C(r);if(e!==G)return e}if(r.type===`illegal`&&a===``)return P+=`
@@ -59,21 +59,21 @@ ${e}</tr>
59
59
  `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
60
60
  `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${Va(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=Ha(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+Va(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=Ha(e);if(i===null)return Va(n);e=i;let a=`<img src="${e}" alt="${n}"`;return t&&(a+=` title="${Va(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:Va(e.text)}},Za=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}},Qa=class e{options;renderer;textRenderer;constructor(e){this.options=e||Ni,this.options.renderer=this.options.renderer||new Xa,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Za}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e,t=!0){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=i,t=this.options.extensions.renderers[e.type].call({parser:this},e);if(t!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`html`,`paragraph`,`text`].includes(e.type)){n+=t||``;continue}}let a=i;switch(a.type){case`space`:n+=this.renderer.space(a);continue;case`hr`:n+=this.renderer.hr(a);continue;case`heading`:n+=this.renderer.heading(a);continue;case`code`:n+=this.renderer.code(a);continue;case`table`:n+=this.renderer.table(a);continue;case`blockquote`:n+=this.renderer.blockquote(a);continue;case`list`:n+=this.renderer.list(a);continue;case`html`:n+=this.renderer.html(a);continue;case`paragraph`:n+=this.renderer.paragraph(a);continue;case`text`:{let i=a,o=this.renderer.text(i);for(;r+1<e.length&&e[r+1].type===`text`;)i=e[++r],o+=`
61
61
  `+this.renderer.text(i);t?n+=this.renderer.paragraph({type:`paragraph`,raw:o,text:o,tokens:[{type:`text`,raw:o,text:o,escaped:!0}]}):n+=o;continue}default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}parseInline(e,t=this.renderer){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},$a=class{options;block;constructor(e){this.options=e||Ni}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?Ya.lex:Ya.lexInline}provideParser(){return this.block?Qa.parse:Qa.parseInline}},eo=new class{defaults=Mi();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Qa;Renderer=Xa;TextRenderer=Za;Lexer=Ya;Tokenizer=Ja;Hooks=$a;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new Xa(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new Ja(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new $a;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];$a.passThroughHooks.has(n)?t[r]=e=>{if(this.defaults.async)return Promise.resolve(i.call(t,e)).then(e=>a.call(t,e));let n=i.call(t,e);return a.call(t,n)}:t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return Ya.lex(e,t??this.defaults)}parser(e,t){return Qa.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(t==null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));i.hooks&&(i.hooks.options=i,i.hooks.block=e);let o=i.hooks?i.hooks.provideLexer():e?Ya.lex:Ya.lexInline,s=i.hooks?i.hooks.provideParser():e?Qa.parse:Qa.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(t):t).then(e=>o(e,i)).then(e=>i.hooks?i.hooks.processAllTokens(e):e).then(e=>i.walkTokens?Promise.all(this.walkTokens(e,i.walkTokens)).then(()=>e):e).then(e=>s(e,i)).then(e=>i.hooks?i.hooks.postprocess(e):e).catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let e=o(t,i);i.hooks&&(e=i.hooks.processAllTokens(e)),i.walkTokens&&this.walkTokens(e,i.walkTokens);let n=s(e,i);return i.hooks&&(n=i.hooks.postprocess(n)),n}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
62
- Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+Va(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function to(e,t){return eo.parse(e,t)}to.options=to.setOptions=function(e){return eo.setOptions(e),to.defaults=eo.defaults,Pi(to.defaults),to},to.getDefaults=Mi,to.defaults=Ni,to.use=function(...e){return eo.use(...e),to.defaults=eo.defaults,Pi(to.defaults),to},to.walkTokens=function(e,t){return eo.walkTokens(e,t)},to.parseInline=eo.parseInline,to.Parser=Qa,to.parser=Qa.parse,to.Renderer=Xa,to.TextRenderer=Za,to.Lexer=Ya,to.lexer=Ya.lex,to.Tokenizer=Ja,to.Hooks=$a,to.parse=to,to.options,to.setOptions,to.use,to.walkTokens,to.parseInline,Qa.parse,Ya.lex;function no(e){let t=e.requestAnimationFrame??requestAnimationFrame,n=e.cancelAnimationFrame??cancelAnimationFrame,r,i;function a(){r!==void 0&&n(r),i!==void 0&&n(i),r=void 0,i=void 0}function o(){r!==void 0||i!==void 0||(r=t(()=>{r=void 0,i=t(()=>{i=void 0;let t=e.element();t&&e.shouldScroll()&&(t.scrollTop=t.scrollHeight)})}))}return{request:o,cancel:a}}function ro(e,t,n){let r=e instanceof Node?e:null;for(;r&&r!==t;){if(r instanceof HTMLElement&&r.scrollHeight>r.clientHeight+1){let e=n===`up`?r.scrollTop>0:r.scrollTop+r.clientHeight<r.scrollHeight-1,t=typeof getComputedStyle==`function`?getComputedStyle(r).overflowY:``;if(e&&(t===`auto`||t===`scroll`))return!0}r=r.parentNode}return!1}function io(e){let t=e.threshold??40,n=e.now??(()=>Date.now()),r=e.intentWindowMs??400,i=e.ResizeObserverImpl??globalThis.ResizeObserver,a=!0,o=!1,s,c=!1,l=!1,u=!1,d=-1/0,f=-1/0,p=0,m=0,h,g,_=!1,v=no({element:e.scroller,shouldScroll:()=>{if(!(a&&!o))return!1;let t=e.scroller();return t&&(p=Math.max(0,t.scrollHeight-t.clientHeight),m=p),!0},requestAnimationFrame:e.requestAnimationFrame,cancelAnimationFrame:e.cancelAnimationFrame});function y(){if(S(),n()-d>r){let t=e.scroller()?.scrollTop??p;m=Math.max(p,t)}d=n()}function b(){x(),m=p,f=n()}function x(){d=-1/0}function S(){f=-1/0}function C(e){x(),m=e}function w(){return o&&c||u||n()-d<=r}function T(){return o&&l||u||n()-f<=r}function E(){a&&!o&&v.request()}function D(){let n=e.scroller();if(!n)return;let r=n.scrollTop,i=r>p;r+n.clientHeight>=n.scrollHeight-t&&(a||i&&T())?(a=!0,(!w()||i)&&C(r)):a&&r<m-1&&w()?a=!1:i?C(r):w()||(m=r),p=r}function O(){x(),S(),m=p}let k=new Set([`ArrowUp`,`PageUp`,`Home`]);function A(t,n){let r=e.scroller();if(t<0){if(r&&n&&ro(n,r,`up`))return;y()}else if(t>0){if(r&&n&&ro(n,r,`down`))return;b()}}function j(t,n=!1,r){let i=e.scroller();if(k.has(t)||n&&t===` `){if(i&&r&&ro(r,i,`up`))return;y()}else if(t===`ArrowDown`||t===`PageDown`||t===`End`||!n&&t===` `){if(i&&r&&ro(r,i,`down`))return;b()}}function M(e){e&&(u=!0)}function N(){u=!1}function P(e){o=!0,s=Number.isFinite(e)?e:void 0,c=!1,l=!1}function F(t,n){if(!(!o||!Number.isFinite(t))){if(s!==void 0){let r=e.scroller();t>s+1?r&&n&&ro(n,r,`up`)?(c=!1,l=!1,x(),S()):(c=!0,l=!1,y()):t<s-1&&(r&&n&&ro(n,r,`down`)?(c=!1,l=!1,x(),S()):(c=!1,l=!0,b()))}s=t}}function I(){o=!1,s=void 0,c?y():l&&b(),c=!1,l=!1,a&&v.request()}function L(){I()}function R(){I()}function z(e){if(!i){_||(_=!0,console.warn(`[dashboard] ResizeObserver unavailable — stick-to-bottom async re-pin disabled; the transcript may lag behind live output until the next envelope arrives.`));return}let t=new i(()=>E());return t.observe(e),t}function B(e){e&&(h?.disconnect(),h=z(e))}function ee(e){e&&(g?.disconnect(),g=z(e))}function te(){h?.disconnect(),g?.disconnect(),h=void 0,g=void 0,v.cancel()}return{notifyContentChanged:E,handleScroll:D,handleScrollEnd:O,handleWheel:A,handleKeyDown:j,handlePointerDown:M,handlePointerUp:N,handleTouchStart:P,handleTouchMove:F,handleTouchEnd:L,handleTouchCancel:R,observeContent:B,observeViewport:ee,isFollowing:()=>a,dispose:te}}function ao(e){return e instanceof Element&&e.closest(`input, textarea, select, [contenteditable]`)!==null}function oo(e,t,n){let r=n.enabled??(()=>!0),i=[];function a(e,t,n){let a=(e=>{r()&&n(e)});e.addEventListener(t,a,{passive:!0}),i.push(()=>e.removeEventListener(t,a))}return a(t,`scroll`,()=>e.handleScroll()),a(t,`scrollend`,()=>e.handleScrollEnd()),a(t,`wheel`,t=>e.handleWheel(t.deltaY,t.target)),a(t,`touchstart`,t=>e.handleTouchStart(t.touches?.[0]?.clientY)),a(t,`touchmove`,t=>{let n=t.touches?.[0]?.clientY;n!==void 0&&e.handleTouchMove(n,t.target)}),a(t,`touchend`,()=>e.handleTouchEnd()),a(t,`touchcancel`,()=>e.handleTouchCancel()),a(t,`pointerdown`,n=>{e.handlePointerDown(n.pointerType===`mouse`&&n.offsetX>=t.clientWidth)}),a(window,`pointerup`,()=>e.handlePointerUp()),a(window,`pointercancel`,()=>e.handlePointerUp()),n.keyboard===`window`?a(window,`keydown`,t=>{ao(t.target)||e.handleKeyDown(t.key,t.shiftKey,t.target)}):a(t,`keydown`,t=>{ao(t.target)||e.handleKeyDown(t.key,t.shiftKey,t.target)}),()=>{for(let e of i)e()}}var so=`dreb.dashboard.expandThinking`,co=`dreb.dashboard.toolAutoExpand`,lo=[`read`,`edit`,`write`,`suggest_next`,`bash`],uo=!0,fo=new Set(lo),po=Object.fromEntries(lo.map(e=>[e,!0]));function mo(e,t){if(typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);return n===null?t:n===`true`}catch{return t}}function ho(e,t){if(!(typeof window>`u`))try{window.localStorage.setItem(e,t?`true`:`false`)}catch{}}function go(){if(typeof window>`u`)return{...po};try{let e=window.localStorage.getItem(co);if(e===null)return{...po};let t=JSON.parse(e),n={...po};for(let e of lo)typeof t[e]==`boolean`&&(n[e]=t[e]);return n}catch{return{...po}}}function _o(e){if(!(typeof window>`u`))try{window.localStorage.setItem(co,JSON.stringify(e))}catch{}}var[vo,yo]=k(mo(so,uo)),[bo,xo]=k(go()),So=vo;function Co(e){yo(e),ho(so,e)}function wo(e,t){let n={...bo(),[e]:t};xo(n),_o(n)}function To(e){return bo()[e]??fo.has(e)}var Eo=J(`<div>`),Do=J(`<pre tabindex=0>`),Oo=J(`<code class=hljs>`),ko=J(`<pre>`),Ao=J(`<span>`),jo=J(`<div class=tool-output-truncated>output truncated — showing last <!> of <!>. <button type=button class=entry-action>show full (<!>)`),Mo=J(`<div class=tool-command><code>`),No=J(`<details class=tool><summary><span class=tool-name></span><span class=tool-arg></span><span>`),Po=J(`<div class=tool-input><span class=tool-input-label>`),Fo=J(`<div class=tool-result><p class=suggested-command>→ <code>`),Io=J(`<div class=tool-result>`),Lo=J(`<button type=button class=entry-action>`),Ro=J(`<span>·`),zo=J(`<span>streaming`),Bo=J(`<div class="entry assistant"><div class=entry-head><span>`),Vo=J(`<details class=thinking><summary>thinking`),Ho=J(`<div class=entry-body>`),Uo=J(`<div class="entry user"><div class=entry-head><span></span></div><div class=entry-body>`),Wo=J(`<div class="entry summary-card"><details><summary></summary><div class=entry-body style=margin-top:8px>`),Go=J(`<div class="entry custom-card"><div class=entry-head><span></span></div><div class=entry-body>`),Ko=J(`<span class=skill-badge>skill: `),qo=J(`<span class=agent-result-header>`),Jo=J(`<div class="entry agent-result-card"><details><summary><span>background agent result`),Yo=J(`<div class=transcript-window-control><button type=button class="btn btn-small">show earlier <!> (<!> hidden)`),Xo=J(`<div class=assistant-turn data-testid=assistant-turn>`),Zo=150,Qo=200*1024;function $o(e){let t=to.parse(e,{async:!1});return qr.sanitize(t)}function es(e,t,n=Zo){let[r,i]=k(e()),a,o=e(),s=()=>{a&&clearTimeout(a),a=void 0};return M(()=>{let r=e(),c=t();if(o=r,!c){s(),i(r);return}a||=setTimeout(()=>{a=void 0,i(o)},n)}),z(s),r}function ts(e){let t=e/1024;return t<1024?`${Math.round(t)} KB`:`${(t/1024).toFixed(1)} MB`}function ns(e){let t=es(()=>e.text,()=>e.throttle===!0),n=N(()=>$o(t()));return(()=>{var t=Eo();return j(r=>{var i=e.class??`markdown-body`,a=e.classList,o=n();return i!==r.e&&je(t,r.e=i),r.t=Ne(t,a,r.t),o!==r.a&&(t.innerHTML=r.a=o),r},{e:void 0,t:void 0,a:void 0}),t})()}function rs(e){if(typeof e!=`string`||!e)return;let t=e.split(/[\\/]/).pop()?.toLowerCase()??``,n=t.includes(`.`)?t.split(`.`).pop():t;return n?{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,mjs:`javascript`,cjs:`javascript`,py:`python`,rb:`ruby`,rs:`rust`,go:`go`,java:`java`,c:`c`,h:`c`,cpp:`cpp`,cc:`cpp`,cxx:`cpp`,hpp:`cpp`,cs:`csharp`,php:`php`,sh:`bash`,bash:`bash`,zsh:`bash`,sql:`sql`,html:`html`,css:`css`,scss:`scss`,json:`json`,yaml:`yaml`,yml:`yaml`,xml:`xml`,md:`markdown`,dockerfile:`dockerfile`}[n]:void 0}function is(e){return e?.path??e?.file_path}function as(e,t){if(!(!t||!ji.getLanguage(t)))return qr.sanitize(ji.highlight(e,{language:t,ignoreIllegals:!0}).value)}function os(e){let t,n=es(()=>e.text,()=>e.throttle===!0),r=N(()=>as(n(),e.language)),i=io({scroller:()=>t,threshold:24});return M(()=>{n(),e.language,e.autoScroll&&i.notifyContentChanged()}),R(()=>{t&&z(oo(i,t,{enabled:()=>e.autoScroll===!0,keyboard:`element`}))}),z(()=>i.dispose()),(()=>{var e=Do(),i=t;return typeof i==`function`?Pe(i,e):t=e,X(e,W(K,{get when(){return r()},get fallback(){return n()},children:e=>(()=>{var t=Oo();return j(()=>t.innerHTML=e()),t})()})),e})()}function ss(e){let t=e.args;if(!t||typeof t!=`object`)return``;switch(e.toolName){case`read`:{let n=cs(e);return`${String(t.path??``)}${n?` · ${n} lines`:``}`}case`write`:return String(t.path??``);case`edit`:return String(t.path??``);case`bash`:case`bash (user)`:return String(t.command??``);case`grep`:case`search`:return String(t.pattern??t.query??``);case`find`:return String(t.pattern??``);case`ls`:return String(t.path??`.`);case`web_fetch`:return String(t.url??``);case`web_search`:return String(t.query??``);case`subagent`:return typeof t.task==`string`?t.task.slice(0,120):Array.isArray(t.tasks)?`${t.tasks.length} parallel tasks`:Array.isArray(t.chain)?`${t.chain.length}-step chain`:``;case`skill`:return String(t.skill??``);default:{let e=Object.values(t)[0];return typeof e==`string`?e.slice(0,120):``}}}function cs(e){if(!(e.toolName!==`read`||!e.resultText))return e.resultText.split(`
63
- `).length}function ls(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(`
64
- `)}function us(e){return e.match(/^\/skill:([\w-]+)/)?.[1]}function ds(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 fs=new Set([`subagent`,`skill`,`web_fetch`]);function ps(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:rs(is(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 ms(e){return(()=>{var t=ko();return X(t,W(G,{get each(){return e.text.split(`
62
+ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+Va(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function to(e,t){return eo.parse(e,t)}to.options=to.setOptions=function(e){return eo.setOptions(e),to.defaults=eo.defaults,Pi(to.defaults),to},to.getDefaults=Mi,to.defaults=Ni,to.use=function(...e){return eo.use(...e),to.defaults=eo.defaults,Pi(to.defaults),to},to.walkTokens=function(e,t){return eo.walkTokens(e,t)},to.parseInline=eo.parseInline,to.Parser=Qa,to.parser=Qa.parse,to.Renderer=Xa,to.TextRenderer=Za,to.Lexer=Ya,to.lexer=Ya.lex,to.Tokenizer=Ja,to.Hooks=$a,to.parse=to,to.options,to.setOptions,to.use,to.walkTokens,to.parseInline,Qa.parse,Ya.lex;function no(e){let t=e.requestAnimationFrame??requestAnimationFrame,n=e.cancelAnimationFrame??cancelAnimationFrame,r,i;function a(){r!==void 0&&n(r),i!==void 0&&n(i),r=void 0,i=void 0}function o(){r!==void 0||i!==void 0||(r=t(()=>{r=void 0,i=t(()=>{i=void 0;let t=e.element();t&&e.shouldScroll()&&(t.scrollTop=t.scrollHeight)})}))}return{request:o,cancel:a}}function ro(e,t,n){let r=e instanceof Node?e:null;for(;r&&r!==t;){if(r instanceof HTMLElement&&r.scrollHeight>r.clientHeight+1){let e=n===`up`?r.scrollTop>0:r.scrollTop+r.clientHeight<r.scrollHeight-1,t=typeof getComputedStyle==`function`?getComputedStyle(r).overflowY:``;if(e&&(t===`auto`||t===`scroll`))return!0}r=r.parentNode}return!1}function io(e){let t=e.threshold??40,n=e.now??(()=>Date.now()),r=e.intentWindowMs??400,i=e.ResizeObserverImpl??globalThis.ResizeObserver,a=!0,o=!1,s,c=!1,l=!1,u=!1,d=-1/0,f=-1/0,p=0,m=0,h,g,_=!1,v=no({element:e.scroller,shouldScroll:()=>{if(!(a&&!o))return!1;let t=e.scroller();return t&&(p=Math.max(0,t.scrollHeight-t.clientHeight),m=p),!0},requestAnimationFrame:e.requestAnimationFrame,cancelAnimationFrame:e.cancelAnimationFrame});function y(){if(S(),n()-d>r){let t=e.scroller()?.scrollTop??p;m=Math.max(p,t)}d=n()}function b(){x(),m=p,f=n()}function x(){d=-1/0}function S(){f=-1/0}function C(e){x(),m=e}function w(){return o&&c||u||n()-d<=r}function T(){return o&&l||u||n()-f<=r}function E(){a&&!o&&v.request()}function D(){let n=e.scroller();if(!n)return;let r=n.scrollTop,i=r>p;r+n.clientHeight>=n.scrollHeight-t&&(a||i&&T())?(a=!0,(!w()||i)&&C(r)):a&&r<m-1&&w()?a=!1:i?C(r):w()||(m=r),p=r}function O(){x(),S(),m=p}let k=new Set([`ArrowUp`,`PageUp`,`Home`]);function A(t,n){let r=e.scroller();if(t<0){if(r&&n&&ro(n,r,`up`))return;y()}else if(t>0){if(r&&n&&ro(n,r,`down`))return;b()}}function j(t,n=!1,r){let i=e.scroller();if(k.has(t)||n&&t===` `){if(i&&r&&ro(r,i,`up`))return;y()}else if(t===`ArrowDown`||t===`PageDown`||t===`End`||!n&&t===` `){if(i&&r&&ro(r,i,`down`))return;b()}}function M(e){e&&(u=!0)}function N(){u=!1}function P(e){o=!0,s=Number.isFinite(e)?e:void 0,c=!1,l=!1}function F(t,n){if(!(!o||!Number.isFinite(t))){if(s!==void 0){let r=e.scroller();t>s+1?r&&n&&ro(n,r,`up`)?(c=!1,l=!1,x(),S()):(c=!0,l=!1,y()):t<s-1&&(r&&n&&ro(n,r,`down`)?(c=!1,l=!1,x(),S()):(c=!1,l=!0,b()))}s=t}}function I(){o=!1,s=void 0,c?y():l&&b(),c=!1,l=!1,a&&v.request()}function L(){I()}function R(){I()}function z(e){if(!i){_||(_=!0,console.warn(`[dashboard] ResizeObserver unavailable — stick-to-bottom async re-pin disabled; the transcript may lag behind live output until the next envelope arrives.`));return}let t=new i(()=>E());return t.observe(e),t}function B(e){e&&(h?.disconnect(),h=z(e))}function ee(e){e&&(g?.disconnect(),g=z(e))}function te(){h?.disconnect(),g?.disconnect(),h=void 0,g=void 0,v.cancel()}return{notifyContentChanged:E,handleScroll:D,handleScrollEnd:O,handleWheel:A,handleKeyDown:j,handlePointerDown:M,handlePointerUp:N,handleTouchStart:P,handleTouchMove:F,handleTouchEnd:L,handleTouchCancel:R,observeContent:B,observeViewport:ee,isFollowing:()=>a,dispose:te}}function ao(e){return e instanceof Element&&e.closest(`input, textarea, select, [contenteditable]`)!==null}function oo(e,t,n){let r=n.enabled??(()=>!0),i=[];function a(e,t,n){let a=(e=>{r()&&n(e)});e.addEventListener(t,a,{passive:!0}),i.push(()=>e.removeEventListener(t,a))}return a(t,`scroll`,()=>e.handleScroll()),a(t,`scrollend`,()=>e.handleScrollEnd()),a(t,`wheel`,t=>e.handleWheel(t.deltaY,t.target)),a(t,`touchstart`,t=>e.handleTouchStart(t.touches?.[0]?.clientY)),a(t,`touchmove`,t=>{let n=t.touches?.[0]?.clientY;n!==void 0&&e.handleTouchMove(n,t.target)}),a(t,`touchend`,()=>e.handleTouchEnd()),a(t,`touchcancel`,()=>e.handleTouchCancel()),a(t,`pointerdown`,n=>{e.handlePointerDown(n.pointerType===`mouse`&&n.offsetX>=t.clientWidth)}),a(window,`pointerup`,()=>e.handlePointerUp()),a(window,`pointercancel`,()=>e.handlePointerUp()),n.keyboard===`window`?a(window,`keydown`,t=>{ao(t.target)||e.handleKeyDown(t.key,t.shiftKey,t.target)}):a(t,`keydown`,t=>{ao(t.target)||e.handleKeyDown(t.key,t.shiftKey,t.target)}),()=>{for(let e of i)e()}}var so=`dreb.dashboard.expandThinking`,co=`dreb.dashboard.toolAutoExpand`,lo=[`read`,`edit`,`write`,`suggest_next`,`bash`],uo=!0,fo=new Set(lo),po=Object.fromEntries(lo.map(e=>[e,!0]));function mo(e,t){if(typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);return n===null?t:n===`true`}catch{return t}}function ho(e,t){if(!(typeof window>`u`))try{window.localStorage.setItem(e,t?`true`:`false`)}catch{}}function go(){if(typeof window>`u`)return{...po};try{let e=window.localStorage.getItem(co);if(e===null)return{...po};let t=JSON.parse(e),n={...po};for(let e of lo)typeof t[e]==`boolean`&&(n[e]=t[e]);return n}catch{return{...po}}}function _o(e){if(!(typeof window>`u`))try{window.localStorage.setItem(co,JSON.stringify(e))}catch{}}var[vo,yo]=k(mo(so,uo)),[bo,xo]=k(go()),So=vo;function Co(e){yo(e),ho(so,e)}function wo(e,t){let n={...bo(),[e]:t};xo(n),_o(n)}function To(e){return bo()[e]??fo.has(e)}var Eo=J(`<div>`),Do=J(`<pre tabindex=0>`),Oo=J(`<code class=hljs>`),ko=J(`<pre>`),Ao=J(`<span>`),jo=J(`<div class=tool-images>`),Mo=J(`<img class=tool-image alt="Tool result">`),No=J(`<div class=tool-output-truncated>output truncated — showing last <!> of <!>. <button type=button class=entry-action>show full (<!>)`),Po=J(`<div class=tool-command><code>`),Fo=J(`<div class=tool-result>`),Io=J(`<details class=tool><summary><span class=tool-name></span><span class=tool-arg></span><span>`),Lo=J(`<div class=tool-input><span class=tool-input-label>`),Ro=J(`<div class=tool-result><p class=suggested-command>→ <code>`),zo=J(`<button type=button class=entry-action>`),Bo=J(`<span>·`),Vo=J(`<span>streaming`),Ho=J(`<div class="entry assistant"><div class=entry-head><span>`),Uo=J(`<details class=thinking><summary>thinking`),Wo=J(`<div class=entry-body>`),Go=J(`<p class=assistant-error role=alert>Error: `),Ko=J(`<div class="entry user"><div class=entry-head><span></span></div><div class=entry-body>`),qo=J(`<div class="entry summary-card"><details><summary></summary><div class=entry-body style=margin-top:8px>`),Jo=J(`<div class="entry custom-card"><div class=entry-head><span></span></div><div class=entry-body>`),Yo=J(`<span class=skill-badge>skill: `),Xo=J(`<span class=agent-result-header>`),Zo=J(`<div class="entry agent-result-card"><details><summary><span>background agent result`),Qo=J(`<div class=transcript-window-control><button type=button class="btn btn-small">show earlier <!> (<!> hidden)`),$o=J(`<div class=assistant-turn data-testid=assistant-turn>`),es=150,ts=200*1024;function ns(e){let t=to.parse(e,{async:!1});return qr.sanitize(t)}function rs(e,t,n=es){let[r,i]=k(e()),a,o=e(),s=()=>{a&&clearTimeout(a),a=void 0};return M(()=>{let r=e(),c=t();if(o=r,!c){s(),i(r);return}a||=setTimeout(()=>{a=void 0,i(o)},n)}),z(s),r}function is(e){let t=e/1024;return t<1024?`${Math.round(t)} KB`:`${(t/1024).toFixed(1)} MB`}function as(e){let t=rs(()=>e.text,()=>e.throttle===!0),n=N(()=>ns(t()));return(()=>{var t=Eo();return j(r=>{var i=e.class??`markdown-body`,a=e.classList,o=n();return i!==r.e&&je(t,r.e=i),r.t=Ne(t,a,r.t),o!==r.a&&(t.innerHTML=r.a=o),r},{e:void 0,t:void 0,a:void 0}),t})()}function os(e){if(typeof e!=`string`||!e)return;let t=e.split(/[\\/]/).pop()?.toLowerCase()??``,n=t.includes(`.`)?t.split(`.`).pop():t;return n?{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,mjs:`javascript`,cjs:`javascript`,py:`python`,rb:`ruby`,rs:`rust`,go:`go`,java:`java`,c:`c`,h:`c`,cpp:`cpp`,cc:`cpp`,cxx:`cpp`,hpp:`cpp`,cs:`csharp`,php:`php`,sh:`bash`,bash:`bash`,zsh:`bash`,sql:`sql`,html:`html`,css:`css`,scss:`scss`,json:`json`,yaml:`yaml`,yml:`yaml`,xml:`xml`,md:`markdown`,dockerfile:`dockerfile`}[n]:void 0}function ss(e){return e?.path??e?.file_path}function cs(e,t){if(!(!t||!ji.getLanguage(t)))return qr.sanitize(ji.highlight(e,{language:t,ignoreIllegals:!0}).value)}function ls(e){let t,n=rs(()=>e.text,()=>e.throttle===!0),r=N(()=>cs(n(),e.language)),i=io({scroller:()=>t,threshold:24});return M(()=>{n(),e.language,e.autoScroll&&i.notifyContentChanged()}),R(()=>{t&&z(oo(i,t,{enabled:()=>e.autoScroll===!0,keyboard:`element`}))}),z(()=>i.dispose()),(()=>{var e=Do(),i=t;return typeof i==`function`?Pe(i,e):t=e,X(e,W(K,{get when(){return r()},get fallback(){return n()},children:e=>(()=>{var t=Oo();return j(()=>t.innerHTML=e()),t})()})),e})()}function us(e){let t=e.args;if(!t||typeof t!=`object`)return``;switch(e.toolName){case`read`:{let n=ds(e);return`${String(t.path??``)}${n?` · ${n} lines`:``}`}case`write`:return String(t.path??``);case`edit`:return String(t.path??``);case`bash`:case`bash (user)`:return String(t.command??``);case`grep`:case`search`:return String(t.pattern??t.query??``);case`find`:return String(t.pattern??``);case`ls`:return String(t.path??`.`);case`web_fetch`:return String(t.url??``);case`web_search`:return String(t.query??``);case`subagent`:return typeof t.task==`string`?t.task.slice(0,120):Array.isArray(t.tasks)?`${t.tasks.length} parallel tasks`:Array.isArray(t.chain)?`${t.chain.length}-step chain`:``;case`skill`:return String(t.skill??``);default:{let e=Object.values(t)[0];return typeof e==`string`?e.slice(0,120):``}}}function ds(e){if(!(e.toolName!==`read`||!e.resultText))return e.resultText.split(`
63
+ `).length}function fs(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(`
64
+ `)}function ps(e){return e.match(/^\/skill:([\w-]+)/)?.[1]}function ms(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 hs=new Set([`subagent`,`skill`,`web_fetch`]);function gs(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:os(ss(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 _s(e){return(()=>{var t=ko();return X(t,W(G,{get each(){return e.text.split(`
65
65
  `)},children:e=>[(()=>{var t=Ao();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})(),`
66
- `]})),t})()}function hs(e){if(e.toolName!==`edit`)return;let t=e.details?.diff;return typeof t==`string`?t:void 0}function gs(e){let[t,n]=k(!1),r=()=>e.text.length>Qo;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=jo(),r=t.firstChild.nextSibling,i=r.nextSibling.nextSibling,a=i.nextSibling.nextSibling,o=a.firstChild.nextSibling;return o.nextSibling,X(t,()=>ts(Qo),r),X(t,()=>ts(e.text.length),i),a.$$click=()=>n(!0),X(a,()=>ts(e.text.length),o),t}}),W(K,{get when(){return e.markdown},get fallback(){return W(os,{get text(){return i()},get language(){return e.language},get autoScroll(){return e.autoScroll},get throttle(){return e.throttle}})},get children(){return W(ns,{get text(){return i()},get throttle(){return e.throttle}})}})]}function _s(e){let t=()=>ds(e.entry),n=()=>e.entry.args,r=()=>{if(e.entry.toolName===`suggest_next`)return e.entry.details},i=()=>hs(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 rs(is(n()))},s=()=>fs.has(e.entry.toolName)&&e.entry.status!==`error`,c=()=>e.entry.toolName===`bash`||e.entry.toolName===`bash (user)`,l=()=>ps(e.entry),u=()=>To(e.entry.toolName),[d,f]=k(u()||e.entry.status===`running`),p=e.entry.status===`running`,m=!1,h=!1,g,_=e=>{d()!==e&&(h=!0,f(e),g&&clearTimeout(g),g=setTimeout(()=>{h=!1,g=void 0},0))};return M(()=>{let t=e.entry.status===`running`,n=u();t?(m=!1,_(!0)):p?(m=!1,_(n)):m||_(n),p=t}),z(()=>{g&&clearTimeout(g)}),(()=>{var u=No(),p=u.firstChild.firstChild,_=p.nextSibling,v=_.nextSibling;return u.addEventListener(`toggle`,t=>{let n=t.currentTarget.open;if(h){f(n);return}if(e.entry.status===`running`&&!n){h=!0,t.currentTarget.open=!0,f(!0),g&&clearTimeout(g),g=setTimeout(()=>{h=!1,g=void 0},0);return}m=!0,f(n)}),X(p,()=>e.entry.toolName),X(_,()=>ss(e.entry)),X(v,()=>t().text),X(u,W(K,{get when(){return d()},get children(){return[W(K,{get when(){return e.entry.toolName===`bash`||e.entry.toolName===`bash (user)`},get children(){var e=Mo(),t=e.firstChild;return X(t,()=>String(n()?.command??``)),e}}),W(G,{get each(){return l()},children:e=>(()=>{var t=Po(),n=t.firstChild;return X(n,()=>e.label),X(t,W(K,{get when(){return e.markdown},get fallback(){return W(os,{get text(){return e.text},get language(){return e.language}})},get children(){return W(ns,{get text(){return e.text}})}}),null),t})()}),W(Te,{get children(){return[W(Ee,{get when(){return r()},children:e=>(()=>{var t=Fo(),n=t.firstChild,r=n.firstChild.nextSibling;return X(t,W(K,{get when(){return e().summary},get children(){return W(ns,{get text(){return e().summary}})}}),n),X(r,()=>e().suggestion),t})()}),W(Ee,{get when(){return i()},children:e=>(()=>{var t=Io();return X(t,W(ms,{get text(){return e()}})),t})()}),W(Ee,{get when(){return a()},children:t=>(()=>{var n=Io();return X(n,W(gs,{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=d(),r=`tool-status ${t().cls}`;return n!==e.e&&(u.open=e.e=n),r!==e.t&&je(v,e.t=r),e},{e:void 0,t:void 0}),u})()}function vs(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=Lo();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 ys(e){return(()=>{var t=Bo(),n=t.firstChild,r=n.firstChild;return X(r,()=>e.who),X(n,W(K,{get when(){return e.entry.model},get children(){return[Ro(),(()=>{var t=Ao();return X(t,()=>e.entry.model),t})()]}}),null),X(n,W(K,{get when(){return e.entry.streaming},get children(){return[Ro(),zo()]}}),null),X(n,W(vs,{get text(){return ls(e.entry)}}),null),X(t,W(G,{get each(){return e.entry.blocks},children:(t,n)=>W(K,{get when(){return t.kind===`thinking`},get fallback(){return(()=>{var r=Ho();return X(r,W(ns,{get text(){return t.text},get classList(){return{"streaming-cursor":e.entry.streaming&&n()===e.entry.blocks.length-1}},get throttle(){return e.entry.streaming}})),r})()},get children(){var n=Vo();return n.firstChild,X(n,W(ns,{get text(){return t.text},class:`thinking-body markdown-body`,get throttle(){return e.entry.streaming}}),null),j(()=>n.open=So()),n}})}),null),t})()}function bs(e,t){return e?.kind===`entry`&&e.entry===t}function xs(e){let[t,n]=k(e);return{kind:`assistant-turn`,lead:e[0],entries:t,setEntries:n}}function Ss(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(xs(a));continue}if(i){let e=t[n.length];n.push(bs(e,i)?e:{kind:`entry`,entry:i})}r+=1}return n}function Cs(e){return W(Te,{get children(){return[W(Ee,{get when(){return e.entry.kind===`user`},get children(){var t=Uo(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return X(n,W(K,{get when(){return us(e.entry.text)},children:e=>(()=>{var t=Ko();return t.firstChild,X(t,e,null),t})()}),r),X(n,W(vs,{get text(){return ls(e.entry)}}),r),X(r,()=>e.userLabel),X(i,()=>e.entry.text),t}}),W(Ee,{get when(){return e.entry.kind===`agent-result`},get children(){return W(ws,{get entry(){return e.entry}})}}),W(Ee,{get when(){return e.entry.kind===`assistant`},get children(){return W(ys,{get entry(){return e.entry},get who(){return e.who}})}}),W(Ee,{get when(){return e.entry.kind===`tool`},get children(){return W(_s,{get entry(){return e.entry}})}}),W(Ee,{get when(){return e.entry.kind===`summary`},get children(){var t=Wo(),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=Go(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return X(r,()=>e.entry.tag),X(i,()=>e.entry.text),t}})]}})}function ws(e){return(()=>{var t=Jo(),n=t.firstChild,r=n.firstChild;return r.firstChild,X(r,W(K,{get when(){return e.entry.header},get children(){var t=qo();return X(t,()=>e.entry.header),t}}),null),X(n,W(ns,{get text(){return e.entry.text},class:`entry-body markdown-body`}),null),t})()}function Ts(e){let t=()=>e.who??`dreb`,n=()=>e.userLabel??`you`,r=N(t=>Ss(e.entries,t)),[i,a]=k(150),o;M(()=>{let t=e.resetKey??e.entries;t!==o&&(o=t,a(150))});let s=N(()=>{let e=r(),t=i();return e.length>t?e.slice(-t):e}),c=()=>Math.max(0,r().length-s().length);return[W(K,{get when(){return c()>0},get children(){var e=Yo(),t=e.firstChild,n=t.firstChild.nextSibling,o=n.nextSibling.nextSibling;return o.nextSibling,t.$$click=()=>a(Math.min(r().length,i()+150)),X(t,()=>Math.min(150,c()),n),X(t,c,o),e}}),W(G,{get each(){return s()},children:e=>W(Te,{get children(){return[W(Ee,{get when(){return e.kind===`assistant-turn`},get children(){var r=Xo();return X(r,W(G,{get each(){return e.entries()},children:e=>W(Cs,{entry:e,get who(){return t()},get userLabel(){return n()}})})),r}}),W(Ee,{get when(){return e.kind===`entry`},get children(){return W(Cs,{get entry(){return e.entry},get who(){return t()},get userLabel(){return n()}})}})]}})})]}Ae([`click`]);function Es(e){return typeof DOMException<`u`&&e instanceof DOMException&&e.name===`AbortError`?!0:typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`}var Ds=new Map,Os=new Map;function ks(e){return Os.get(e)}function As(e,t){Os.set(e,t)}function js(e){return Ds.get(e)??[]}function Ms(e,t){let n=Ds.get(e)??[];n.push(t),Ds.set(e,n.slice(-100))}function Ns(e){Ds.delete(e),Os.delete(e)}var Ps=J(`<p style=margin-bottom:12px>`),Fs=J(`<div class=recent-projects>`),Is=J(`<div class=field><input type=text>`),Ls=J(`<div class=field><textarea rows=8>`),Rs=J(`<button type=button class="btn btn-small">cancel`),zs=J(`<button type=button class="btn btn-small btn-primary">confirm`),Bs=J(`<button type=button class="btn btn-small btn-primary">submit`),Vs=J(`<button type=button>`),Hs=J(`<ul>`),Us=J(`<section class=context-section><h3>`),Ws=J(`<p class="muted small">none`),Gs=J(`<p class=pair-error>`),Ks=J(`<p class="muted small">loading…`),qs=J(`<p class="muted small">system prompt: custom`),Js=J(`<div class=context-modal-body>`),Ys=J(`<li>`),Xs=J(`<span class=muted> — `),Zs=J(`<li><span>`),Qs=J(`<li><span></span><span class=muted> — `),$s=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`),ec=J(`<div class=field style=margin-bottom:8px><input type=text placeholder="search models…">`),tc=J(`<div class="model-list session-model-list"style=max-height:320px>`),nc=J(`<p class="muted small">No matching models.`),rc=J(`<section class=model-provider-group><div class=model-provider-heading>`),ic=J(`<span class=model-name>`),ac=J(`<span class=model-reasoning>think`),oc=J(`<button type=button class=model-row><span class=model-current></span><span class=model-id></span><span class=model-provider-badge>`),sc=J(`<span class=project>`),cc=J(`<output class=switcher><span class=label>ctx</span> `),lc=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>⋯`),uc=J(`<div class=stats-popover>`),dc=J(`<div class="session-bar-inner session-info-bar"><span class=session-info-left></span><button type=button class="session-info-right stats-trigger">`),fc=J(`<button type=button class="btn btn-small">model: `),pc=J(`<button type=button class="btn btn-small">think: `),mc=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">`),hc=J(`<div class=container style=padding-top:8px><div class=fallback-banner><span>◆ </span><button type=button class="btn btn-small dismiss">dismiss`),gc=J(`<span class=dock-collapsed-hint>`),_c=J(`<details class=tasks><summary>tasks — <!> of <!> done</summary><ul>`),vc=J(`<span class=collapsed-hint>subagent panel hidden`),yc=J(`<div class=subagent-strip><button type=button class=subagent-toggle></button><span class=count>⚡ <!> running · <!> done`),bc=J(`<span class=working>● working`),xc=J(`<span class=error>`),Sc=J(`<button type=button class="btn btn-small btn-danger">`),Cc=J(`<div class=status-line>`),wc=J(`<div class=queued-message-row><button type=button class="btn btn-small">restore to composer`),Tc=J(`<div class=attachment-strip>`),Ec=J(`<div class=command-popover role=listbox id=command-listbox aria-label="slash commands">`),Dc=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`),Oc=J(`<button type=button class=ghost-suggest>suggested: <code></code> <span class=key>tap`),kc=J(`<div class=dock-inner><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 ↵`),Ac=J(`<p>Summarize older context to free window space. The transcript keeps a summary card.`),jc=J(`<div class=fork-message-list>`),Mc=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>`),Nc=J(`<span>`),Pc=J(`<p class="muted small">loading stats…`),Fc=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>$`),Ic=J(`<p class=muted>loading transcript…`),Lc=J(`<div class=widget-block>`),Rc=J(`<li> `),zc=J(`<button type=button class=agent-chip title="view this subagent's session"><span></span><span class=task> — `),Bc=J(`<button type=button class="btn btn-small btn-danger inline-stop">stop`),Vc=J(`<span class=queued-chip><span class=queued-kind>`),Hc=J(`<span class=attachment-file><span>📎 </span><span class=muted></span><button type=button aria-label="remove file attachment">×`),Uc=J(`<span class=attachment-thumb><img><button type=button aria-label="remove image">×`),Wc=J(`<span class=command-description>`),Gc=J(`<button type=button role=option class=command-option><span class=command-name>/</span><span class=command-source>`),Kc=J(`<button type=button class="btn btn-small btn-primary">compact`),qc=J(`<p class="muted small">loading forkable messages…`),Jc=J(`<button type=button class=fork-message><span class=fork-entry-id></span><span>`),Yc=J(`<button type=button class="btn btn-small btn-primary">rename`),Xc=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],Zc=10*1024*1024,Qc=`.dreb-dashboard-uploads`;function $c(e){return e?`${e.provider}/${e.id}`:`—`}function el(e){if(!e)return`—`;let t=`${e.provider}/${e.id}`;return e.name?`${t} — ${e.name}`:t}function tl(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 nl(e){return e.replace(/^\/home\/[^/]+/,`~`)}function rl(e,t){return`${e.replace(/\/+$/,``)}/${t}`}function il(e){let t=e.trim().replace(/[\\/\0]/g,`_`);return t&&t!==`.`&&t!==`..`?t:`upload.bin`}function al(e,t){return`${new Date().toISOString().replace(/[:.]/g,`-`)}-${t+1}-${il(e.name||`upload.bin`)}`}function ol(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 sl(e,t){return`${e.provider}/${e.id} ${e.name??``}`.toLowerCase().includes(t)}function cl(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 ll(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 ul(e){let[t,n]=k(e.request.prefill??``),r=t=>e.onRespond({type:`extension_ui_response`,id:e.request.id,...t});return W(nt,{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=Rs();return e.$$click=()=>r({cancelled:!0}),e})(),W(K,{get when(){return e.request.method===`confirm`},get children(){var e=zs();return e.$$click=()=>r({confirmed:!0}),e}}),W(K,{get when(){return e.request.method===`input`||e.request.method===`editor`},get children(){var e=Bs();return e.$$click=()=>r({value:t()}),e}})]}})},get children(){return[W(K,{get when(){return e.request.message},get children(){var t=Ps();return X(t,()=>e.request.message),t}}),W(K,{get when(){return e.request.method===`select`},get children(){var t=Fs();return X(t,W(G,{get each(){return e.request.options??[]},children:e=>(()=>{var t=Vs();return t.$$click=()=>r({value:e}),X(t,e),t})()})),t}}),W(K,{get when(){return e.request.method===`input`},get children(){var r=Is(),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=Ls(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e}})]}})}function dl(e){let t=(e,t)=>(()=>{var n=Us(),r=n.firstChild;return X(r,e),X(n,W(K,{get when(){return t.length>0},get fallback(){return Ws()},get children(){var e=Hs();return X(e,t),e}}),null),n})();return W(nt,{title:`loaded context`,get onDismiss(){return e.onClose},get children(){return[W(K,{get when(){return e.error},get children(){var t=Gs();return X(t,()=>e.error),t}}),W(K,{get when(){return e.resources},get fallback(){return Ks()},children:e=>(()=>{var n=Js();return X(n,()=>t(`context files`,e().contextFiles.map(e=>(()=>{var t=Ys();return X(t,()=>nl(e.path)),j(()=>Y(t,`title`,e.path)),t})())),null),X(n,()=>t(`skills`,e().skills.map(e=>(()=>{var t=Zs(),n=t.firstChild;return X(n,()=>e.name),X(t,W(K,{get when(){return e.description},get children(){var t=Xs();return t.firstChild,X(t,()=>e.description,null),t}}),null),t})())),null),X(n,()=>t(`extensions`,e().extensions.map(e=>(()=>{var t=Qs(),n=t.firstChild,r=n.nextSibling;return r.firstChild,X(n,()=>e.name??`extension`),X(r,()=>nl(e.path),null),j(()=>Y(t,`title`,e.path)),t})())),null),X(n,()=>t(`prompt templates`,e().promptTemplates.map(e=>(()=>{var t=Ys();return X(t,()=>e.name),t})())),null),X(n,W(K,{get when(){return e().systemPromptPresent},get children(){return qs()}}),null),n})()})]}})}function fl(e){let[t,n]=k([]),[r,i]=k(``),[a,o]=k((e.state?.scopedModels?.length??0)>0?`scoped`:`all`),[s,c]=k();R(async()=>{try{let{models:t}=await Q.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 cl(d().filter(t=>!e||sl(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 Q.setModel(e.sessionKey,t.provider,t.id);e.onSelected(n),e.onClose()}catch(e){c(e instanceof Error?e.message:String(e))}}return W(nt,{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=$s(),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=ec(),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=Gs();return X(e,s),e}}),(()=>{var e=tc();return X(e,W(K,{get when(){return f().length>0},get fallback(){return nc()},get children(){return W(G,{get each(){return f()},children:e=>(()=>{var t=rc(),n=t.firstChild;return X(n,()=>e.provider),X(t,W(G,{get each(){return e.models},children:e=>(()=>{var t=oc(),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=ic();return X(t,()=>e.name),t}}),i),X(i,()=>e.provider),X(t,W(K,{get when(){return e.reasoning},get children(){return ac()}}),null),j(n=>{var r=!!p(e),i=el(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 pl(e){let t=()=>e.store.sessions[e.sessionKey],n=N(()=>e.store.fleet().runtimes.find(t=>t.key===e.sessionKey)),[r,i]=k(ks(e.sessionKey)??``),[a,o]=k(`steer`),[s,c]=k(!1),[l,u]=k(!1),[d,f]=k(!1),[p,m]=k(!1),[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(0),[L,B]=k(),[ee,te]=k(),[ne,re]=k(),[ie,V]=k(),[ae,H]=k([]),[oe,U]=k(!1),[se,ce]=k(0),[le,ue]=k(),[de,fe]=k(),[pe,me]=k({steering:[],followUp:[]}),[he,ge]=k([]),[_e,ve]=k([]),[ye,be]=k(),[xe,Se]=k(!1),[Ce,we]=k([]),[Te,Ee]=k(),[De,Oe]=k(!1),[ke,J]=k(),Ae,Me,Ne,Fe,Ie,Le,Re=!1,ze=()=>t()?.streaming??!1,Be=()=>t()?.compacting??!1,Ve=()=>(t()?.statusEntries??[]).some(e=>e.key===`paused`),He=()=>Object.values(t()?.backgroundAgents??{}).some(e=>e.status===`running`),Ue=()=>ze()||Be()||Ve()||He(),We=io({scroller:()=>Ae});async function Ge(t=!1){let[n,r,i]=await Promise.allSettled([Q.stats(e.sessionKey),Q.performance(e.sessionKey),Q.branch(e.sessionKey)]),a=t?await Promise.allSettled([Q.dailyCost()]):void 0;if(Re)return;n.status===`fulfilled`&&B(n.value),r.status===`fulfilled`&&te(r.value),i.status===`fulfilled`&&re(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 Ke(){try{let{commands:t}=await Q.commands(e.sessionKey);Re||H(t)}catch(e){Re||P(e instanceof Error?e.message:String(e))}}async function qe(){E(!0),fe(void 0);try{ue(await Q.resources(e.sessionKey))}catch(e){fe(e instanceof Error?e.message:String(e))}}async function Je(){try{me(await Q.pending(e.sessionKey))}catch(e){P(e instanceof Error?e.message:String(e))}}function Ye(e){let t=atob(e);return Uint8Array.from(t,e=>e.charCodeAt(0))}function Xe(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 Ze(e){return Xe(new Uint8Array(await e.arrayBuffer()))}function Qe(e){URL.revokeObjectURL(e.previewUrl)}function $e(){for(let e of he())Qe(e);ge([])}function et(e){ge(t=>{let n=t[e];return n&&Qe(n),t.filter((t,n)=>n!==e)})}function rt(e){if(he().reduce((e,t)=>e+t.size,0)+e>Tn)throw Error(`Images too large: total inline images exceed ${ol(Tn)}`)}function it(e,t,n){return{blob:e,mimeType:t,fileName:n,size:e.size,previewUrl:URL.createObjectURL(e)}}function at(e,t,n){let r=Ye(e.data);return it(new Blob([r],{type:e.mimeType}),e.mimeType,`queued-image-${t+1}-${n+1}`)}function ot(e){return[...e.steeringMessages??e.steering.map(e=>({text:e})),...e.followUpMessages??e.followUp.map(e=>({text:e}))]}function Z(e){let t=[];for(let[n,r]of e.entries())for(let[e,i]of(r.images??[]).entries())t.push(at(i,n,e));return t}function st(e){for(let t of e)Qe(t)}function ct(e){let t=e.map(e=>e.text).join(`
66
+ `]})),t})()}function vs(e){if(e.toolName!==`edit`)return;let t=e.details?.diff;return typeof t==`string`?t:void 0}var ys=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`]);function bs(e){let t=()=>e.images.filter(e=>ys.has(e.mimeType));return W(K,{get when(){return t().length>0},get children(){var e=jo();return X(e,W(G,{get each(){return t()},children:e=>(()=>{var t=Mo();return j(()=>Y(t,`src`,`data:${e.mimeType};base64,${e.data}`)),t})()})),e}})}function xs(e){let[t,n]=k(!1),r=()=>e.text.length>ts;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=No(),r=t.firstChild.nextSibling,i=r.nextSibling.nextSibling,a=i.nextSibling.nextSibling,o=a.firstChild.nextSibling;return o.nextSibling,X(t,()=>is(ts),r),X(t,()=>is(e.text.length),i),a.$$click=()=>n(!0),X(a,()=>is(e.text.length),o),t}}),W(K,{get when(){return e.markdown},get fallback(){return W(ls,{get text(){return i()},get language(){return e.language},get autoScroll(){return e.autoScroll},get throttle(){return e.throttle}})},get children(){return W(as,{get text(){return i()},get throttle(){return e.throttle}})}})]}function Ss(e){let t=()=>ms(e.entry),n=()=>e.entry.args,r=()=>{if(e.entry.toolName===`suggest_next`)return e.entry.details},i=()=>vs(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 os(ss(n()))},s=()=>hs.has(e.entry.toolName)&&e.entry.status!==`error`,c=()=>e.entry.toolName===`bash`||e.entry.toolName===`bash (user)`,l=()=>gs(e.entry),u=()=>To(e.entry.toolName),[d,f]=k(u()||e.entry.status===`running`),p=e.entry.status===`running`,m=!1,h=!1,g,_=e=>{d()!==e&&(h=!0,f(e),g&&clearTimeout(g),g=setTimeout(()=>{h=!1,g=void 0},0))};return M(()=>{let t=e.entry.status===`running`,n=u();t?(m=!1,_(!0)):p?(m=!1,_(n)):m||_(n),p=t}),z(()=>{g&&clearTimeout(g)}),(()=>{var u=Io(),p=u.firstChild.firstChild,_=p.nextSibling,v=_.nextSibling;return u.addEventListener(`toggle`,t=>{let n=t.currentTarget.open;if(h){f(n);return}if(e.entry.status===`running`&&!n){h=!0,t.currentTarget.open=!0,f(!0),g&&clearTimeout(g),g=setTimeout(()=>{h=!1,g=void 0},0);return}m=!0,f(n)}),X(p,()=>e.entry.toolName),X(_,()=>us(e.entry)),X(v,()=>t().text),X(u,W(K,{get when(){return d()},get children(){return[W(K,{get when(){return e.entry.toolName===`bash`||e.entry.toolName===`bash (user)`},get children(){var e=Po(),t=e.firstChild;return X(t,()=>String(n()?.command??``)),e}}),W(G,{get each(){return l()},children:e=>(()=>{var t=Lo(),n=t.firstChild;return X(n,()=>e.label),X(t,W(K,{get when(){return e.markdown},get fallback(){return W(ls,{get text(){return e.text},get language(){return e.language}})},get children(){return W(as,{get text(){return e.text}})}}),null),t})()}),W(K,{get when(){return e.entry.images?.length},get children(){var t=Fo();return X(t,W(bs,{get images(){return e.entry.images}})),t}}),W(Te,{get children(){return[W(Ee,{get when(){return r()},children:e=>(()=>{var t=Ro(),n=t.firstChild,r=n.firstChild.nextSibling;return X(t,W(K,{get when(){return e().summary},get children(){return W(as,{get text(){return e().summary}})}}),n),X(r,()=>e().suggestion),t})()}),W(Ee,{get when(){return i()},children:e=>(()=>{var t=Fo();return X(t,W(_s,{get text(){return e()}})),t})()}),W(Ee,{get when(){return a()},children:t=>(()=>{var n=Fo();return X(n,W(xs,{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=d(),r=`tool-status ${t().cls}`;return n!==e.e&&(u.open=e.e=n),r!==e.t&&je(v,e.t=r),e},{e:void 0,t:void 0}),u})()}function Cs(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=zo();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 ws(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=Ho(),r=n.firstChild,i=r.firstChild;return X(i,()=>e.who),X(r,W(K,{get when(){return e.entry.model},get children(){return[Bo(),(()=>{var t=Ao();return X(t,()=>e.entry.model),t})()]}}),null),X(r,W(K,{get when(){return e.entry.streaming},get children(){return[Bo(),Vo()]}}),null),X(r,W(Cs,{get text(){return fs(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=Wo();return X(i,W(as,{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=Uo();return t.firstChild,X(t,W(as,{get text(){return n.text},class:`thinking-body markdown-body`,get throttle(){return e.entry.streaming}}),null),j(()=>t.open=So()),t}})}),null),X(n,W(K,{get when(){return q(()=>e.entry.stopReason===`error`)()&&e.entry.errorMessage},children:e=>(()=>{var t=Go();return t.firstChild,X(t,e,null),t})()}),null),n})()}function Ts(e,t){return e?.kind===`entry`&&e.entry===t}function Es(e){let[t,n]=k(e);return{kind:`assistant-turn`,lead:e[0],entries:t,setEntries:n}}function Ds(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(Es(a));continue}if(i){let e=t[n.length];n.push(Ts(e,i)?e:{kind:`entry`,entry:i})}r+=1}return n}function Os(e){return W(Te,{get children(){return[W(Ee,{get when(){return e.entry.kind===`user`},get children(){var t=Ko(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return X(n,W(K,{get when(){return ps(e.entry.text)},children:e=>(()=>{var t=Yo();return t.firstChild,X(t,e,null),t})()}),r),X(n,W(Cs,{get text(){return fs(e.entry)}}),r),X(r,()=>e.userLabel),X(i,()=>e.entry.text),t}}),W(Ee,{get when(){return e.entry.kind===`agent-result`},get children(){return W(ks,{get entry(){return e.entry}})}}),W(Ee,{get when(){return e.entry.kind===`assistant`},get children(){return W(ws,{get entry(){return e.entry},get who(){return e.who}})}}),W(Ee,{get when(){return e.entry.kind===`tool`},get children(){return W(Ss,{get entry(){return e.entry}})}}),W(Ee,{get when(){return e.entry.kind===`summary`},get children(){var t=qo(),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=Jo(),n=t.firstChild,r=n.firstChild,i=n.nextSibling;return X(r,()=>e.entry.tag),X(i,()=>e.entry.text),t}})]}})}function ks(e){return(()=>{var t=Zo(),n=t.firstChild,r=n.firstChild;return r.firstChild,X(r,W(K,{get when(){return e.entry.header},get children(){var t=Xo();return X(t,()=>e.entry.header),t}}),null),X(n,W(as,{get text(){return e.entry.text},class:`entry-body markdown-body`}),null),t})()}function As(e){let t=()=>e.who??`dreb`,n=()=>e.userLabel??`you`,r=N(t=>Ds(e.entries,t)),[i,a]=k(150),o;M(()=>{let t=e.resetKey??e.entries;t!==o&&(o=t,a(150))});let s=N(()=>{let e=r(),t=i();return e.length>t?e.slice(-t):e}),c=()=>Math.max(0,r().length-s().length);return[W(K,{get when(){return c()>0},get children(){var e=Qo(),t=e.firstChild,n=t.firstChild.nextSibling,o=n.nextSibling.nextSibling;return o.nextSibling,t.$$click=()=>a(Math.min(r().length,i()+150)),X(t,()=>Math.min(150,c()),n),X(t,c,o),e}}),W(G,{get each(){return s()},children:e=>W(Te,{get children(){return[W(Ee,{get when(){return e.kind===`assistant-turn`},get children(){var r=$o();return X(r,W(G,{get each(){return e.entries()},children:e=>W(Os,{entry:e,get who(){return t()},get userLabel(){return n()}})})),r}}),W(Ee,{get when(){return e.kind===`entry`},get children(){return W(Os,{get entry(){return e.entry},get who(){return t()},get userLabel(){return n()}})}})]}})})]}Ae([`click`]);function js(e){return typeof DOMException<`u`&&e instanceof DOMException&&e.name===`AbortError`?!0:typeof e==`object`&&!!e&&`name`in e&&e.name===`AbortError`}var Ms=new Map,Ns=new Map;function Ps(e){return Ns.get(e)}function Fs(e,t){Ns.set(e,t)}function Is(e){return Ms.get(e)??[]}function Ls(e,t){let n=Ms.get(e)??[];n.push(t),Ms.set(e,n.slice(-100))}function Rs(e){Ms.delete(e),Ns.delete(e)}var zs=J(`<p style=margin-bottom:12px>`),Bs=J(`<div class=recent-projects>`),Vs=J(`<div class=field><input type=text>`),Hs=J(`<div class=field><textarea rows=8>`),Us=J(`<button type=button class="btn btn-small">cancel`),Ws=J(`<button type=button class="btn btn-small btn-primary">confirm`),Gs=J(`<button type=button class="btn btn-small btn-primary">submit`),Ks=J(`<button type=button>`),qs=J(`<ul>`),Js=J(`<section class=context-section><h3>`),Ys=J(`<p class="muted small">none`),Xs=J(`<p class=pair-error>`),Zs=J(`<p class="muted small">loading…`),Qs=J(`<p class="muted small">system prompt: custom`),$s=J(`<div class=context-modal-body>`),ec=J(`<li>`),tc=J(`<span class=muted> — `),nc=J(`<li><span>`),rc=J(`<li><span></span><span class=muted> — `),ic=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`),ac=J(`<div class=field style=margin-bottom:8px><input type=text placeholder="search models…">`),oc=J(`<div class="model-list session-model-list"style=max-height:320px>`),sc=J(`<p class="muted small">No matching models.`),cc=J(`<section class=model-provider-group><div class=model-provider-heading>`),lc=J(`<span class=model-name>`),uc=J(`<span class=model-reasoning>think`),dc=J(`<button type=button class=model-row><span class=model-current></span><span class=model-id></span><span class=model-provider-badge>`),fc=J(`<span class=project>`),pc=J(`<output class=switcher><span class=label>ctx</span> `),mc=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>⋯`),hc=J(`<div class=stats-popover>`),gc=J(`<div class="session-bar-inner session-info-bar"><span class=session-info-left></span><button type=button class="session-info-right stats-trigger">`),_c=J(`<button type=button class="btn btn-small">model: `),vc=J(`<button type=button class="btn btn-small">think: `),yc=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">`),bc=J(`<div class=container style=padding-top:8px><div class=fallback-banner><span>◆ </span><button type=button class="btn btn-small dismiss">dismiss`),xc=J(`<span class=dock-collapsed-hint>`),Sc=J(`<details class=tasks><summary>tasks — <!> of <!> done</summary><ul>`),Cc=J(`<span class=collapsed-hint>subagent panel hidden`),wc=J(`<div class=subagent-strip><button type=button class=subagent-toggle></button><span class=count>⚡ <!> running · <!> done`),Tc=J(`<span class=working>● working`),Ec=J(`<span class=error>`),Dc=J(`<button type=button class="btn btn-small btn-danger">`),Oc=J(`<div class=status-line>`),kc=J(`<div class=queued-message-row><button type=button class="btn btn-small">restore to composer`),Ac=J(`<div class=attachment-strip>`),jc=J(`<div class=command-popover role=listbox id=command-listbox aria-label="slash commands">`),Mc=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`),Nc=J(`<button type=button class=ghost-suggest>suggested: <code></code> <span class=key>tap`),Pc=J(`<div class=dock-inner><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 ↵`),Fc=J(`<p>Summarize older context to free window space. The transcript keeps a summary card.`),Ic=J(`<div class=fork-message-list>`),Lc=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>`),Rc=J(`<span>`),zc=J(`<p class="muted small">loading stats…`),Bc=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>$`),Vc=J(`<p class=muted>loading transcript…`),Hc=J(`<div class=widget-block>`),Uc=J(`<li> `),Wc=J(`<button type=button class=agent-chip title="view this subagent's session"><span></span><span class=task> — `),Gc=J(`<button type=button class="btn btn-small btn-danger inline-stop">stop`),Kc=J(`<span class=queued-chip><span class=queued-kind>`),qc=J(`<span class=attachment-file><span>📎 </span><span class=muted></span><button type=button aria-label="remove file attachment">×`),Jc=J(`<span class=attachment-thumb><img><button type=button aria-label="remove image">×`),Yc=J(`<span class=command-description>`),Xc=J(`<button type=button role=option class=command-option><span class=command-name>/</span><span class=command-source>`),Zc=J(`<button type=button class="btn btn-small btn-primary">compact`),Qc=J(`<p class="muted small">loading forkable messages…`),$c=J(`<button type=button class=fork-message><span class=fork-entry-id></span><span>`),el=J(`<button type=button class="btn btn-small btn-primary">rename`),tl=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],nl=10*1024*1024,rl=`.dreb-dashboard-uploads`;function il(e){return e?`${e.provider}/${e.id}`:`—`}function al(e){if(!e)return`—`;let t=`${e.provider}/${e.id}`;return e.name?`${t} — ${e.name}`:t}function ol(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 sl(e){return e.replace(/^\/home\/[^/]+/,`~`)}function cl(e,t){return`${e.replace(/\/+$/,``)}/${t}`}function ll(e){let t=e.trim().replace(/[\\/\0]/g,`_`);return t&&t!==`.`&&t!==`..`?t:`upload.bin`}function ul(e,t){return`${new Date().toISOString().replace(/[:.]/g,`-`)}-${t+1}-${ll(e.name||`upload.bin`)}`}function dl(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 fl(e,t){return`${e.provider}/${e.id} ${e.name??``}`.toLowerCase().includes(t)}function pl(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 ml(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 hl(e){let[t,n]=k(e.request.prefill??``),r=t=>e.onRespond({type:`extension_ui_response`,id:e.request.id,...t});return W(nt,{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=Us();return e.$$click=()=>r({cancelled:!0}),e})(),W(K,{get when(){return e.request.method===`confirm`},get children(){var e=Ws();return e.$$click=()=>r({confirmed:!0}),e}}),W(K,{get when(){return e.request.method===`input`||e.request.method===`editor`},get children(){var e=Gs();return e.$$click=()=>r({value:t()}),e}})]}})},get children(){return[W(K,{get when(){return e.request.message},get children(){var t=zs();return X(t,()=>e.request.message),t}}),W(K,{get when(){return e.request.method===`select`},get children(){var t=Bs();return X(t,W(G,{get each(){return e.request.options??[]},children:e=>(()=>{var t=Ks();return t.$$click=()=>r({value:e}),X(t,e),t})()})),t}}),W(K,{get when(){return e.request.method===`input`},get children(){var r=Vs(),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=Hs(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e}})]}})}function gl(e){let t=(e,t)=>(()=>{var n=Js(),r=n.firstChild;return X(r,e),X(n,W(K,{get when(){return t.length>0},get fallback(){return Ys()},get children(){var e=qs();return X(e,t),e}}),null),n})();return W(nt,{title:`loaded context`,get onDismiss(){return e.onClose},get children(){return[W(K,{get when(){return e.error},get children(){var t=Xs();return X(t,()=>e.error),t}}),W(K,{get when(){return e.resources},get fallback(){return Zs()},children:e=>(()=>{var n=$s();return X(n,()=>t(`context files`,e().contextFiles.map(e=>(()=>{var t=ec();return X(t,()=>sl(e.path)),j(()=>Y(t,`title`,e.path)),t})())),null),X(n,()=>t(`skills`,e().skills.map(e=>(()=>{var t=nc(),n=t.firstChild;return X(n,()=>e.name),X(t,W(K,{get when(){return e.description},get children(){var t=tc();return t.firstChild,X(t,()=>e.description,null),t}}),null),t})())),null),X(n,()=>t(`extensions`,e().extensions.map(e=>(()=>{var t=rc(),n=t.firstChild,r=n.nextSibling;return r.firstChild,X(n,()=>e.name??`extension`),X(r,()=>sl(e.path),null),j(()=>Y(t,`title`,e.path)),t})())),null),X(n,()=>t(`prompt templates`,e().promptTemplates.map(e=>(()=>{var t=ec();return X(t,()=>e.name),t})())),null),X(n,W(K,{get when(){return e().systemPromptPresent},get children(){return Qs()}}),null),n})()})]}})}function _l(e){let[t,n]=k([]),[r,i]=k(``),[a,o]=k((e.state?.scopedModels?.length??0)>0?`scoped`:`all`),[s,c]=k();R(async()=>{try{let{models:t}=await Q.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 pl(d().filter(t=>!e||fl(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 Q.setModel(e.sessionKey,t.provider,t.id);e.onSelected(n),e.onClose()}catch(e){c(e instanceof Error?e.message:String(e))}}return W(nt,{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=ic(),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=ac(),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=Xs();return X(e,s),e}}),(()=>{var e=oc();return X(e,W(K,{get when(){return f().length>0},get fallback(){return sc()},get children(){return W(G,{get each(){return f()},children:e=>(()=>{var t=cc(),n=t.firstChild;return X(n,()=>e.provider),X(t,W(G,{get each(){return e.models},children:e=>(()=>{var t=dc(),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=lc();return X(t,()=>e.name),t}}),i),X(i,()=>e.provider),X(t,W(K,{get when(){return e.reasoning},get children(){return uc()}}),null),j(n=>{var r=!!p(e),i=al(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 vl(e){let t=()=>e.store.sessions[e.sessionKey],n=N(()=>e.store.fleet().runtimes.find(t=>t.key===e.sessionKey)),[r,i]=k(Ps(e.sessionKey)??``),[a,o]=k(`steer`),[s,c]=k(!1),[l,u]=k(!1),[d,f]=k(!1),[p,m]=k(!1),[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(0),[L,B]=k(),[ee,te]=k(),[ne,re]=k(),[ie,V]=k(),[ae,H]=k([]),[oe,U]=k(!1),[se,ce]=k(0),[le,ue]=k(),[de,fe]=k(),[pe,me]=k({steering:[],followUp:[]}),[he,ge]=k([]),[_e,ve]=k([]),[ye,be]=k(),[xe,Se]=k(!1),[Ce,we]=k([]),[Te,Ee]=k(),[De,Oe]=k(!1),[ke,J]=k(),Ae,Me,Ne,Fe,Ie,Le,Re=!1,ze=()=>t()?.streaming??!1,Be=()=>t()?.compacting??!1,Ve=()=>(t()?.statusEntries??[]).some(e=>e.key===`paused`),He=()=>Object.values(t()?.backgroundAgents??{}).some(e=>e.status===`running`),Ue=()=>ze()||Be()||Ve()||He(),We=io({scroller:()=>Ae});async function Ge(t=!1){let[n,r,i]=await Promise.allSettled([Q.stats(e.sessionKey),Q.performance(e.sessionKey),Q.branch(e.sessionKey)]),a=t?await Promise.allSettled([Q.dailyCost()]):void 0;if(Re)return;n.status===`fulfilled`&&B(n.value),r.status===`fulfilled`&&te(r.value),i.status===`fulfilled`&&re(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 Ke(){try{let{commands:t}=await Q.commands(e.sessionKey);Re||H(t)}catch(e){Re||P(e instanceof Error?e.message:String(e))}}async function qe(){E(!0),fe(void 0);try{ue(await Q.resources(e.sessionKey))}catch(e){fe(e instanceof Error?e.message:String(e))}}async function Je(){try{me(await Q.pending(e.sessionKey))}catch(e){P(e instanceof Error?e.message:String(e))}}function Ye(e){let t=atob(e);return Uint8Array.from(t,e=>e.charCodeAt(0))}function Xe(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 Ze(e){return Xe(new Uint8Array(await e.arrayBuffer()))}function Qe(e){URL.revokeObjectURL(e.previewUrl)}function $e(){for(let e of he())Qe(e);ge([])}function et(e){ge(t=>{let n=t[e];return n&&Qe(n),t.filter((t,n)=>n!==e)})}function rt(e){if(he().reduce((e,t)=>e+t.size,0)+e>Tn)throw Error(`Images too large: total inline images exceed ${dl(Tn)}`)}function it(e,t,n){return{blob:e,mimeType:t,fileName:n,size:e.size,previewUrl:URL.createObjectURL(e)}}function at(e,t,n){let r=Ye(e.data);return it(new Blob([r],{type:e.mimeType}),e.mimeType,`queued-image-${t+1}-${n+1}`)}function ot(e){return[...e.steeringMessages??e.steering.map(e=>({text:e})),...e.followUpMessages??e.followUp.map(e=>({text:e}))]}function Z(e){let t=[];for(let[n,r]of e.entries())for(let[e,i]of(r.images??[]).entries())t.push(at(i,n,e));return t}function st(e){for(let t of e)Qe(t)}function ct(e){let t=e.map(e=>e.text).join(`
67
67
 
68
68
  `),n=r();i([t,n].filter(e=>e.trim()).join(`
69
69
 
70
- `))}async function lt(){let t=[];try{let n=await Q.pending(e.sessionKey);t.push(...Z(ot(n))),rt(t.reduce((e,t)=>e+t.size,0))}catch(e){st(t),P(e instanceof Error?e.message:String(e));return}st(t);let n=[],r=!1;try{let t=ot(await Q.dequeue(e.sessionKey));me({steering:[],followUp:[],steeringMessages:[],followUpMessages:[]}),ct(t);try{n.push(...Z(t)),rt(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&&(ge(e=>[...n,...e]),r=!0),queueMicrotask(()=>Ne?.focus())}catch(e){r||st(n),P(e instanceof Error?e.message:String(e))}}function ut(e){if(!e.type.startsWith(`image/`))throw Error(`Not an image: ${e.name||e.type}`);if(e.size>Zc)throw Error(`Image too large: ${e.name||e.type} exceeds 10MB`);return it(e,e.type,e.name||`image`)}async function dt(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>Zc)throw Error(`Image too large: ${e.name||e.type} exceeds 10MB`)}rt(t.reduce((e,t)=>e+t.size,0));for(let e of t)n.push(ut(e));ge(e=>[...e,...n])}catch(e){for(let e of n)Qe(e);P(e instanceof Error?e.message:String(e))}}async function ft(e){let t=rl(e,Qc);try{return await Q.listFiles(t),t}catch{return await Q.mkdir(e,Qc),t}}async function pt(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 ft(r),n=[];for(let[r,i]of t.entries()){let t=al(i,r),a=await Q.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})}ve(e=>[...e,...n])}catch(e){P(e instanceof Error?e.message:String(e))}}async function mt(){Se(!0),Ee(void 0),we([]);try{let{messages:t}=await Q.forkMessages(e.sessionKey);we(t)}catch(e){Ee(e instanceof Error?e.message:String(e))}}async function ht(t){Ee(void 0);try{let n=await Q.fork(e.sessionKey,t);n.cancelled||i(n.text),await e.store.hydrateSession(e.sessionKey),await e.store.refreshDiskSessions(),Se(!1)}catch(e){Ee(e instanceof Error?e.message:String(e))}}async function gt(){Oe(!0),J(void 0);try{B(await Q.stats(e.sessionKey))}catch(e){J(e instanceof Error?e.message:String(e))}}R(()=>{let t=new AbortController;e.store.hydrateSession(e.sessionKey,t.signal).catch(e=>{t.signal.aborted&&Es(e)||P(e instanceof Error?e.message:String(e))}),Ge(!0),Ke(),Je();let n=setInterval(()=>void Ge(!1),5e3);z(()=>{Re=!0,t.abort(),clearInterval(n)})});let _t=e=>{if(!De())return;let t=e.target;t&&Le?.contains(t)||Oe(!1)},vt=e=>{e.key===`Escape`&&Oe(!1)};document.addEventListener(`mousedown`,_t),document.addEventListener(`keydown`,vt),z(()=>{document.removeEventListener(`mousedown`,_t),document.removeEventListener(`keydown`,vt)});let yt=setInterval(()=>{let e=t()?.workingSince;I(e?Math.floor((Date.now()-e)/1e3):0)},1e3);z(()=>{clearInterval(yt),We.dispose(),$e()}),M(()=>{let e=t()?.composerPrefill;e&&i(e)}),M(()=>{r(),Ne&&queueMicrotask(()=>Ne&&ll(Ne))}),M(()=>{e.store.revisions[e.sessionKey],t()?.entries.length,We.notifyContentChanged()}),R(()=>{We.observeContent(Me),We.observeViewport(Ae),Ae&&z(oo(We,Ae,{keyboard:`window`}))});let bt=!1;M(()=>{let e=ze();bt&&!e&&Ge(!0),bt!==e&&Je(),bt=e}),M(()=>{n()?.state.pendingMessageCount,Je()}),M(()=>{As(e.sessionKey,r())});function xt(e){let t=[];return _e().length>0&&t.push([`Attached files uploaded to the host (paths only; inspect deliberately if needed):`,..._e().map(e=>`- ${e.path} (${e.fileName}, ${ol(e.size)}, ${e.mimeType||`unknown type`})`)].join(`
71
- `)),he().length>0&&t.push([`Attached images included inline with this turn:`,...he().map((e,t)=>`- image ${t+1}: ${e.fileName} (${ol(e.size)}, ${e.mimeType})`)].join(`
70
+ `))}async function lt(){let t=[];try{let n=await Q.pending(e.sessionKey);t.push(...Z(ot(n))),rt(t.reduce((e,t)=>e+t.size,0))}catch(e){st(t),P(e instanceof Error?e.message:String(e));return}st(t);let n=[],r=!1;try{let t=ot(await Q.dequeue(e.sessionKey));me({steering:[],followUp:[],steeringMessages:[],followUpMessages:[]}),ct(t);try{n.push(...Z(t)),rt(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&&(ge(e=>[...n,...e]),r=!0),queueMicrotask(()=>Ne?.focus())}catch(e){r||st(n),P(e instanceof Error?e.message:String(e))}}function ut(e){if(!e.type.startsWith(`image/`))throw Error(`Not an image: ${e.name||e.type}`);if(e.size>nl)throw Error(`Image too large: ${e.name||e.type} exceeds 10MB`);return it(e,e.type,e.name||`image`)}async function dt(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>nl)throw Error(`Image too large: ${e.name||e.type} exceeds 10MB`)}rt(t.reduce((e,t)=>e+t.size,0));for(let e of t)n.push(ut(e));ge(e=>[...e,...n])}catch(e){for(let e of n)Qe(e);P(e instanceof Error?e.message:String(e))}}async function ft(e){let t=cl(e,rl);try{return await Q.listFiles(t),t}catch{return await Q.mkdir(e,rl),t}}async function pt(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 ft(r),n=[];for(let[r,i]of t.entries()){let t=ul(i,r),a=await Q.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})}ve(e=>[...e,...n])}catch(e){P(e instanceof Error?e.message:String(e))}}async function mt(){Se(!0),Ee(void 0),we([]);try{let{messages:t}=await Q.forkMessages(e.sessionKey);we(t)}catch(e){Ee(e instanceof Error?e.message:String(e))}}async function ht(t){Ee(void 0);try{let n=await Q.fork(e.sessionKey,t);n.cancelled||i(n.text),await e.store.hydrateSession(e.sessionKey),await e.store.refreshDiskSessions(),Se(!1)}catch(e){Ee(e instanceof Error?e.message:String(e))}}async function gt(){Oe(!0),J(void 0);try{B(await Q.stats(e.sessionKey))}catch(e){J(e instanceof Error?e.message:String(e))}}R(()=>{let t=new AbortController;e.store.hydrateSession(e.sessionKey,t.signal).catch(e=>{t.signal.aborted&&js(e)||P(e instanceof Error?e.message:String(e))}),Ge(!0),Ke(),Je();let n=setInterval(()=>void Ge(!1),5e3);z(()=>{Re=!0,t.abort(),clearInterval(n)})});let _t=e=>{if(!De())return;let t=e.target;t&&Le?.contains(t)||Oe(!1)},vt=e=>{e.key===`Escape`&&Oe(!1)};document.addEventListener(`mousedown`,_t),document.addEventListener(`keydown`,vt),z(()=>{document.removeEventListener(`mousedown`,_t),document.removeEventListener(`keydown`,vt)});let yt=setInterval(()=>{let e=t()?.workingSince;I(e?Math.floor((Date.now()-e)/1e3):0)},1e3);z(()=>{clearInterval(yt),We.dispose(),$e()}),M(()=>{let e=t()?.composerPrefill;e&&i(e)}),M(()=>{r(),Ne&&queueMicrotask(()=>Ne&&ml(Ne))}),M(()=>{e.store.revisions[e.sessionKey],t()?.entries.length,We.notifyContentChanged()}),R(()=>{We.observeContent(Me),We.observeViewport(Ae),Ae&&z(oo(We,Ae,{keyboard:`window`}))});let bt=!1;M(()=>{let e=ze();bt&&!e&&Ge(!0),bt!==e&&Je(),bt=e}),M(()=>{n()?.state.pendingMessageCount,Je()}),M(()=>{Fs(e.sessionKey,r())});function xt(e){let t=[];return _e().length>0&&t.push([`Attached files uploaded to the host (paths only; inspect deliberately if needed):`,..._e().map(e=>`- ${e.path} (${e.fileName}, ${dl(e.size)}, ${e.mimeType||`unknown type`})`)].join(`
71
+ `)),he().length>0&&t.push([`Attached images included inline with this turn:`,...he().map((e,t)=>`- image ${t+1}: ${e.fileName} (${dl(e.size)}, ${e.mimeType})`)].join(`
72
72
  `)),[e,...t].filter(e=>e.trim()).join(`
73
73
 
74
- `)}async function St(){let t=r().trim();if(!t&&_e().length===0&&he().length===0)return;let n=xt(t||`Please review the attached item(s). `);P(void 0);try{let t=he(),r=t.length>0?await Promise.all(t.map(async({blob:e,mimeType:t})=>({data:await Ze(e),mimeType:t}))):void 0;ze()?await Q.prompt(e.sessionKey,n,a(),r):r?await Q.prompt(e.sessionKey,n,void 0,r):await Q.prompt(e.sessionKey,n),Ms(e.sessionKey,n),be(void 0),i(``),$e(),ve([]),Je()}catch(e){P(e instanceof Error?e.message:String(e))}}async function Ct(){c(!0);try{await Q.abort(e.sessionKey),await lt()}catch(e){P(e instanceof Error?e.message:String(e))}finally{c(!1)}}async function wt(){if(!l()){u(!0),P(void 0);try{await Q.stopRuntime(e.sessionKey),await e.store.removeRuntime(e.sessionKey),e.store.navigate({screen:`fleet`})}catch(e){P(e instanceof Error?e.message:String(e))}finally{u(!1)}}}async function Tt(t){try{t===`compaction`?await Q.abortCompaction(e.sessionKey):t===`retry`&&await Q.abortRetry(e.sessionKey)}catch(e){P(e instanceof Error?e.message:String(e))}}function Et(e){Ae?.querySelectorAll(`details.tool`).forEach(t=>{t.open=e})}let Dt=()=>Object.values(t()?.backgroundAgents??{}).filter(e=>e.status===`running`),Ot=()=>Object.values(t()?.backgroundAgents??{}).filter(e=>e.status!==`running`),kt=()=>t()?.tasks??[],At=()=>kt().filter(e=>e.status===`completed`).length,jt=()=>n()?.state.contextUsage??L()?.contextUsage,Mt=()=>typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 700px)`).matches,Nt=()=>t()?.sessionName??n()?.state.sessionName,Pt=()=>Nt()??t()?.title??e.sessionKey,Ft=()=>{let e=n()?.cwd;if(!e)return;let t=ne();return`${nl(e)}${t?` (${t})`:``}`},It=()=>{let e=Ft(),t=Nt();return e&&t?`${e} • ${t}`:e??t??`session`},Lt=()=>{let e=L()?.tokens;if(!e)return;let t=[];return e.input&&t.push(`↑${tl(e.input)}`),e.output&&t.push(`↓${tl(e.output)}`),e.cacheRead&&t.push(`R${tl(e.cacheRead)}`),e.cacheWrite&&t.push(`W${tl(e.cacheWrite)}`),t.length>0?t.join(` `):void 0},Rt=()=>{let e=L()?.cost??0,t=n()?.state.usingSubscription??!1;if(!e&&!t)return;let r=`$${e.toFixed(3)}${t?` (sub)`:``}`,i=ie();return i!==void 0&&i>e&&(r+=`, today: $${i.toFixed(2)}`),r},zt=()=>{let e=jt();if(e)return`ctx ${e.percent===null?`?`:`${e.percent.toFixed(0)}%`}/${tl(e.contextWindow)}`},Bt=()=>{let e=n()?.state.model;if(!e)return;let t=ee()?.models.find(t=>t.provider===e.provider&&t.modelId===e.id);if(!(!t||t.count<3))return`${Math.round(t.median)} tok/s`},Vt=()=>[Lt(),Rt(),zt(),Bt()].filter(Boolean),Ht=()=>[...(pe().steeringMessages??pe().steering.map(e=>({text:e}))).map(e=>({kind:`steer`,text:e.images?.length?`${e.text} (${e.images.length} image(s))`:e.text})),...(pe().followUpMessages??pe().followUp.map(e=>({text:e}))).map(e=>({kind:`follow-up`,text:e.images?.length?`${e.text} (${e.images.length} image(s))`:e.text}))],Ut=()=>{let e=r();if(oe()||!e.startsWith(`/`))return;let t=e.slice(1);if(!/\s/.test(t))return t.toLowerCase()},Wt=N(()=>{let e=Ut();return e===void 0?[]:ae().filter(t=>{let n=t.name.toLowerCase();return!e||n.startsWith(e)||n.includes(e)}).sort((t,n)=>!t.name.toLowerCase().startsWith(e)-+!n.name.toLowerCase().startsWith(e)||t.name.localeCompare(n.name)).slice(0,8)}),Gt=()=>Wt().length>0,Kt=e=>{i(`/${e.name} `),U(!0),queueMicrotask(()=>Ne?.focus())};return M(()=>{let e=Wt().length;se()>=e&&ce(Math.max(0,e-1))}),(()=>{var c=Mc(),u=c.firstChild,k=u.firstChild,M=k.firstChild.nextSibling,N=M.nextSibling,I=u.nextSibling,R=I.firstChild,z=I.nextSibling,B=z.firstChild,ee=B.firstChild;X(M,Pt),X(k,W(K,{get when(){return!h()},get children(){var e=sc();return X(e,(()=>{var e=q(()=>!!n()?.cwd);return()=>e()?nl(n().cwd):void 0})()),e}}),N),X(k,W(tt,{get store(){return e.store},class:`session-connection-indicator`}),N),X(k,W(K,{get when(){return!h()},get children(){var t=lc(),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,()=>$c(n()?.state.model)),a.$$click=async()=>{let t=n()?.state.thinkingLevel??`off`,r=Xc[(Xc.indexOf(t)+1)%Xc.length];try{await Q.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 jt()},get children(){var e=cc();return e.firstChild.nextSibling,X(e,(()=>{var e=q(()=>jt().percent===null);return()=>e()?`?`:`${jt().percent.toFixed(0)}%`})(),null),e}}),o),o.$$click=()=>m(!p()),j(()=>Y(r,`title`,el(n()?.state.model))),t}}),N),N.$$click=()=>g(!h()),X(N,()=>h()?`details ▾`:`details ▴`),X(u,W(K,{get when(){return!h()},get children(){return[(()=>{var e=dc(),t=e.firstChild,n=t.nextSibling;return X(t,It),n.$$click=gt,X(n,W(G,{get each(){return Vt()},children:e=>(()=>{var t=Nc();return X(t,e),t})()})),X(e,W(K,{get when(){return De()},get children(){var e=uc(),t=Le;return typeof t==`function`?Pe(t,e):Le=e,X(e,W(K,{get when(){return ke()},get children(){var e=Gs();return X(e,ke),e}}),null),X(e,W(K,{get when(){return L()},get fallback(){return Pc()},children:e=>(()=>{var t=Fc(),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,()=>tl(e().tokens.input),s),X(o,()=>tl(e().tokens.output),null),X(c,()=>tl(e().tokens.cacheRead),l),X(c,()=>tl(e().tokens.cacheWrite),null),X(u,()=>tl(e().tokens.total)),X(d,()=>e().cost.toFixed(4),null),t})()}),null),e}}),null),e})(),W(K,{get when(){return p()},get children(){var t=mc(),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=()=>Et(!0),o.$$click=()=>Et(!1),s.$$click=()=>w(!0),c.$$click=mt,u.$$click=qe,X(t,W(K,{get when(){return Mt()},get children(){return[(()=>{var e=fc();return e.firstChild,e.$$click=()=>f(!0),X(e,()=>$c(n()?.state.model),null),e})(),(()=>{var t=pc();return t.firstChild,t.$$click=async()=>{let t=n()?.state.thinkingLevel??`off`,r=Xc[(Xc.indexOf(t)+1)%Xc.length];try{await Q.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=wt,X(d,()=>l()?`stopping runtime…`:`stop runtime`),j(t=>{var n=Q.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(K,{get when(){return q(()=>!!(!h()&&n()?.state.modelFallbackMessage))()&&!D()},get children(){var e=hc(),t=e.firstChild.firstChild;t.firstChild;var r=t.nextSibling;return X(t,()=>n().state.modelFallbackMessage,null),r.$$click=()=>O(!0),e}}),I);var te=Ae;typeof te==`function`?Pe(te,I):Ae=I;var ne=Me;return typeof ne==`function`?Pe(ne,R):Me=R,X(R,W(K,{get when(){return t()},get fallback(){return Ic()},get children(){return[W(G,{get each(){return t().widgets.above},children:e=>(()=>{var t=Lc();return X(t,e),t})()}),W(Ts,{get entries(){return t().entries},get resetKey(){return e.sessionKey}}),W(G,{get each(){return t().widgets.below},children:e=>(()=>{var t=Lc();return X(t,e),t})()})]}})),ee.$$click=()=>v(!_()),X(ee,()=>_()?`compose ▴`:`compose ▾`),X(B,W(K,{get when(){return _()},get children(){var e=gc();return X(e,(()=>{var e=q(()=>!!Ue());return()=>e()?`agent working — open controls to stop or steer`:q(()=>Ht().length>0)()?`${Ht().length} queued message(s)`:`composer hidden for transcript reading`})()),e}}),null),X(z,W(K,{get when(){return!_()},get children(){var n=kc(),c=n.firstChild,l=c.firstChild,u=l.nextSibling,d=u.firstChild,f=d.nextSibling,p=f.nextSibling,m=p.nextSibling,h=m.nextSibling;X(n,W(K,{get when(){return kt().length>0},get children(){var e=_c(),t=e.firstChild,n=t.firstChild.nextSibling,r=n.nextSibling.nextSibling;r.nextSibling;var i=t.nextSibling;return X(t,At,n),X(t,()=>kt().length,r),X(i,W(G,{get each(){return kt()},children:e=>(()=>{var t=Rc(),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=!Mt()),e}}),c),X(n,W(K,{get when(){return Dt().length+Ot().length>0},get children(){var t=yc(),n=t.firstChild,r=n.nextSibling,i=r.firstChild.nextSibling,a=i.nextSibling.nextSibling;return a.nextSibling,n.$$click=()=>b(!y()),X(n,()=>y()?`subagents ▴`:`subagents ▾`),X(r,()=>Dt().length,i),X(r,()=>Ot().length,a),X(t,W(K,{get when(){return y()},get children(){return vc()}}),null),X(t,W(K,{get when(){return!y()},get children(){return W(G,{get each(){return[...Dt(),...Ot()].slice(0,4)},children:t=>(()=>{var n=zc(),r=n.firstChild,i=r.nextSibling,a=i.firstChild;return n.$$click=()=>e.store.navigate({screen:`subagent`,key:e.sessionKey,agentId:t.agentId}),X(r,(()=>{var e=q(()=>t.status===`running`);return()=>e()?`●`:t.status===`completed`?`✓`:`✕`})()),X(i,()=>t.agentType,a),X(i,()=>t.taskSummary,null),j(()=>je(r,t.status===`running`?`live`:`done`)),n})()})}}),null),j(e=>{var r=!!y(),i=y()?`show subagents`:`hide subagents`;return r!==e.e&&t.classList.toggle(`collapsed`,e.e=r),i!==e.t&&Y(n,`title`,e.t=i),e},{e:void 0,t:void 0}),t}}),c),X(n,W(K,{get when(){return Ue()||(t()?.statusEntries.length??0)>0||A()},get children(){var e=Cc();return X(e,W(K,{get when(){return ze()},get children(){var e=bc();return e.firstChild,X(e,(()=>{var e=q(()=>!!t()?.workingText);return()=>e()?` — ${t().workingText}`:``})(),null),X(e,(()=>{var e=q(()=>F()>2);return()=>e()?` (${F()}s)`:``})(),null),e}}),null),X(e,W(G,{get each(){return t()?.statusEntries??[]},children:e=>(()=>{var t=Nc();return X(t,()=>e.text,null),X(t,W(K,{get when(){return e.key===`compaction`||e.key===`retry`},get children(){var t=Bc();return t.$$click=()=>Tt(e.key),t}}),null),j(()=>je(t,e.tone===`info`?`queued`:e.tone)),t})()}),null),X(e,W(K,{get when(){return A()},get children(){var e=xc();return X(e,A),e}}),null),X(e,W(K,{get when(){return Ue()},get children(){var e=Sc();return e.$$click=Ct,X(e,()=>s()?`stopping…`:`■ stop`),j(()=>e.disabled=s()),e}}),null),e}}),c),X(c,W(K,{get when(){return Ht().length>0},get children(){var e=wc(),t=e.firstChild;return X(e,W(G,{get each(){return Ht()},children:e=>(()=>{var t=Vc(),n=t.firstChild;return X(n,()=>e.kind),X(t,()=>e.text,null),j(()=>Y(t,`title`,e.text)),t})()}),t),t.$$click=lt,e}}),l),X(c,W(K,{get when(){return _e().length>0||he().length>0},get children(){var e=Tc();return X(e,W(G,{get each(){return _e()},children:(e,t)=>(()=>{var n=Hc(),r=n.firstChild;r.firstChild;var i=r.nextSibling,a=i.nextSibling;return X(r,()=>e.fileName,null),X(i,()=>ol(e.size)),a.$$click=()=>ve(e=>e.filter((e,n)=>n!==t())),j(()=>Y(n,`title`,e.path)),n})()}),null),X(e,W(G,{get each(){return he()},children:(e,t)=>(()=>{var n=Uc(),r=n.firstChild,i=r.nextSibling;return i.$$click=()=>et(t()),j(t=>{var i=`${e.fileName} (${ol(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}}),l),X(c,W(K,{get when(){return Gt()},get children(){var e=Ec();return X(e,W(G,{get each(){return Wt()},children:(e,t)=>(()=>{var n=Gc(),r=n.firstChild;r.firstChild;var i=r.nextSibling;return n.$$click=()=>Kt(e),n.addEventListener(`mouseenter`,()=>ce(t())),X(r,()=>e.name,null),X(n,W(K,{get when(){return e.description},get children(){var t=Wc();return X(t,()=>e.description),t}}),i),X(i,()=>e.source),j(e=>{var r=`command-option-${t()}`,i=se()===t(),a=se()===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}}),l),l.$$keydown=t=>{if(Gt()){if(t.key===`ArrowDown`){t.preventDefault(),ce((se()+1)%Wt().length);return}if(t.key===`ArrowUp`){t.preventDefault(),ce((se()-1+Wt().length)%Wt().length);return}if(t.key===`Tab`||t.key===`Enter`&&!t.shiftKey&&!Mt()){t.preventDefault();let e=Wt()[se()];e&&Kt(e);return}if(t.key===`Escape`){t.preventDefault(),U(!0);return}}if((t.key===`ArrowUp`||t.key===`ArrowDown`)&&(r()===``||ye()!==void 0)){let n=js(e.sessionKey);if(n.length>0){if(t.preventDefault(),t.key===`ArrowUp`){let e=ye()===void 0?n.length-1:Math.max(0,ye()-1);be(e),i(n[e]??``)}else if(ye()!==void 0){let e=ye()+1;e>=n.length?(be(void 0),i(``)):(be(e),i(n[e]??``))}}return}t.key===`Enter`&&!t.shiftKey&&!Mt()&&(t.preventDefault(),St())},l.$$input=e=>{U(!1),ce(0),be(void 0),i(e.currentTarget.value),ll(e.currentTarget)},l.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(),dt(t))});var g=Ne;typeof g==`function`?Pe(g,l):Ne=l,d.addEventListener(`change`,e=>{pt(e.currentTarget.files??[]),e.currentTarget.value=``});var _=Fe;typeof _==`function`?Pe(_,d):Fe=d,f.addEventListener(`change`,e=>{dt(e.currentTarget.files??[]),e.currentTarget.value=``});var v=Ie;return typeof v==`function`?Pe(v,f):Ie=f,p.$$click=()=>Fe?.click(),m.$$click=()=>Ie?.click(),X(u,W(K,{get when(){return ze()},get children(){var e=Dc(),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}}),h),X(u,W(K,{get when(){return t()?.suggestedCommand},get children(){var e=Oc(),n=e.firstChild.nextSibling;return e.$$click=()=>i(t().suggestedCommand),X(n,()=>t().suggestedCommand),e}}),h),h.$$click=St,j(e=>{var t=ze()?`Message dreb — sends as steer while it works…`:`Message dreb…`,n=Gt()?`command-listbox`:void 0,r=Gt()?`command-option-${se()}`:void 0;return t!==e.e&&Y(l,`placeholder`,e.e=t),n!==e.t&&Y(l,`aria-controls`,e.t=n),r!==e.a&&Y(l,`aria-activedescendant`,e.a=r),e},{e:void 0,t:void 0,a:void 0}),j(()=>l.value=r()),n}}),null),X(c,W(K,{get when(){return t()?.uiRequests[0]},children:t=>W(ul,{get request(){return t()},onRespond:async t=>{try{await Q.extensionUiResponse(e.sessionKey,t)}catch(e){P(e instanceof Error?e.message:String(e))}}})}),null),X(c,W(K,{get when(){return d()},get children(){return W(fl,{get sessionKey(){return e.sessionKey},get state(){return n()?.state},onClose:()=>f(!1),onSelected:t=>e.store.setRuntimeModel(e.sessionKey,t)})}}),null),X(c,W(K,{get when(){return x()},get children(){return W(nt,{title:`compact context`,onDismiss:()=>S(!1),get actions(){return[(()=>{var e=Rs();return e.$$click=()=>S(!1),e})(),(()=>{var t=Kc();return t.$$click=async()=>{S(!1);try{await Q.compact(e.sessionKey)}catch(e){P(e instanceof Error?e.message:String(e))}},t})()]},get children(){return Ac()}})}}),null),X(c,W(K,{get when(){return T()},get children(){return W(dl,{get resources(){return le()},get error(){return de()},onClose:()=>E(!1)})}}),null),X(c,W(K,{get when(){return xe()},get children(){return W(nt,{title:`fork from message`,onDismiss:()=>Se(!1),get children(){return[W(K,{get when(){return Te()},get children(){var e=Gs();return X(e,Te),e}}),W(K,{get when(){return Ce().length>0},get fallback(){return qc()},get children(){var e=jc();return X(e,W(G,{get each(){return Ce()},children:e=>(()=>{var t=Jc(),n=t.firstChild,r=n.nextSibling;return t.$$click=()=>ht(e.entryId),X(n,()=>e.entryId),X(r,()=>e.text),t})()})),e}})]}})}}),null),X(c,W(K,{get when(){return C()},get children(){return W(ml,{get current(){return Nt()??``},onClose:()=>w(!1),onRename:async t=>{try{await Q.rename(e.sessionKey,t),w(!1)}catch(e){P(e instanceof Error?e.message:String(e))}}})}}),null),j(e=>{var t=!!h(),n=h()?`show session details`:`hide session details`,r=!!_(),i=_()?`show composer and controls`:`hide composer and controls`;return t!==e.e&&u.classList.toggle(`collapsed`,e.e=t),n!==e.t&&Y(N,`title`,e.t=n),r!==e.a&&z.classList.toggle(`collapsed`,e.a=r),i!==e.o&&Y(ee,`title`,e.o=i),e},{e:void 0,t:void 0,a:void 0,o:void 0}),c})()}function ml(e){let[t,n]=k(e.current);return W(nt,{title:`rename session`,get onDismiss(){return e.onClose},get actions(){return[(()=>{var t=Rs();return Me(t,`click`,e.onClose,!0),t})(),(()=>{var n=Yc();return n.$$click=()=>e.onRename(t().trim()),j(()=>n.disabled=!t().trim()),n})()]},get children(){var e=Is(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e}})}Ae([`input`,`click`,`keydown`]);var hl=[{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)`}],gl=hl.map(e=>e.id),_l=[`system`,`light`,`dark`],vl=`dreb.dashboard.theme`,yl=`dreb.dashboard.colorMode`,bl=`default`,xl=`system`;function Sl(e){return typeof e==`string`&&gl.includes(e)}function Cl(e){return typeof e==`string`&&_l.includes(e)}function wl(){if(typeof window>`u`)return bl;try{let e=window.localStorage.getItem(vl);return Sl(e)?e:bl}catch{return bl}}function Tl(){if(typeof window>`u`)return xl;try{let e=window.localStorage.getItem(yl);return Cl(e)?e:xl}catch{return xl}}function El(e,t,n){if(!(typeof window>`u`))try{t===n?window.localStorage.removeItem(e):window.localStorage.setItem(e,t)}catch{}}var[Dl,Ol]=k(wl()),[kl,Al]=k(Tl()),jl=Dl,Ml=kl;function Nl(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 Pl(e){try{let t=e??(typeof document<`u`?document:void 0);if(!t)return;let n=t.documentElement;if(!n)return;let r=Dl(),i=kl();if(r===bl?n.removeAttribute(`data-theme`):n.setAttribute(`data-theme`,r),i===xl?n.removeAttribute(`data-color-mode`):n.setAttribute(`data-color-mode`,i),!(r!==bl||i!==xl))n.style.removeProperty(`color-scheme`);else{let e=i===`light`?`light`:i===`dark`?`dark`:`light dark`;n.style.setProperty(`color-scheme`,e)}}catch{}}function Fl(e){try{let t=e??(typeof document<`u`?document:void 0);if(!t)return;let n=Nl(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 Il(e){let t=Sl(e)?e:bl;Ol(t),El(vl,t,bl),Pl(),Fl()}function Ll(e){let t=Cl(e)?e:xl;Al(t),El(yl,t,xl),Pl(),Fl()}var Rl=null,zl=!1;function Bl(){kl()===xl&&Fl()}function Vl(e){e.key!==null&&e.key!==`dreb.dashboard.theme`&&e.key!==`dreb.dashboard.colorMode`||Hl()}function Hl(){Ol(wl()),Al(Tl()),Pl(),Fl()}function Ul(){if(!(typeof window>`u`)){try{typeof window.matchMedia==`function`&&(Rl=window.matchMedia(`(prefers-color-scheme: dark)`),typeof Rl.addEventListener==`function`?Rl.addEventListener(`change`,Bl):typeof Rl.addListener==`function`&&Rl.addListener(Bl))}catch{}try{window.addEventListener(`storage`,Vl)}catch{}}}function Wl(){Hl(),!zl&&(zl=!0,Ul())}var Gl=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>`),Kl=J(`<option>`),ql=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>
74
+ `)}async function St(){let t=r().trim();if(!t&&_e().length===0&&he().length===0)return;let n=xt(t||`Please review the attached item(s). `);P(void 0);try{let t=he(),r=t.length>0?await Promise.all(t.map(async({blob:e,mimeType:t})=>({data:await Ze(e),mimeType:t}))):void 0;ze()?await Q.prompt(e.sessionKey,n,a(),r):r?await Q.prompt(e.sessionKey,n,void 0,r):await Q.prompt(e.sessionKey,n),Ls(e.sessionKey,n),be(void 0),i(``),$e(),ve([]),Je()}catch(e){P(e instanceof Error?e.message:String(e))}}async function Ct(){c(!0);try{await Q.abort(e.sessionKey),await lt()}catch(e){P(e instanceof Error?e.message:String(e))}finally{c(!1)}}async function wt(){if(!l()){u(!0),P(void 0);try{await Q.stopRuntime(e.sessionKey),await e.store.removeRuntime(e.sessionKey),e.store.navigate({screen:`fleet`})}catch(e){P(e instanceof Error?e.message:String(e))}finally{u(!1)}}}async function Tt(t){try{t===`compaction`?await Q.abortCompaction(e.sessionKey):t===`retry`&&await Q.abortRetry(e.sessionKey)}catch(e){P(e instanceof Error?e.message:String(e))}}function Et(e){Ae?.querySelectorAll(`details.tool`).forEach(t=>{t.open=e})}let Dt=()=>Object.values(t()?.backgroundAgents??{}).filter(e=>e.status===`running`),Ot=()=>Object.values(t()?.backgroundAgents??{}).filter(e=>e.status!==`running`),kt=()=>t()?.tasks??[],At=()=>kt().filter(e=>e.status===`completed`).length,jt=()=>n()?.state.contextUsage??L()?.contextUsage,Mt=()=>typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 700px)`).matches,Nt=()=>t()?.sessionName??n()?.state.sessionName,Pt=()=>Nt()??t()?.title??e.sessionKey,Ft=()=>{let e=n()?.cwd;if(!e)return;let t=ne();return`${sl(e)}${t?` (${t})`:``}`},It=()=>{let e=Ft(),t=Nt();return e&&t?`${e} • ${t}`:e??t??`session`},Lt=()=>{let e=L()?.tokens;if(!e)return;let t=[];return e.input&&t.push(`↑${ol(e.input)}`),e.output&&t.push(`↓${ol(e.output)}`),e.cacheRead&&t.push(`R${ol(e.cacheRead)}`),e.cacheWrite&&t.push(`W${ol(e.cacheWrite)}`),t.length>0?t.join(` `):void 0},Rt=()=>{let e=L()?.cost??0,t=n()?.state.usingSubscription??!1;if(!e&&!t)return;let r=`$${e.toFixed(3)}${t?` (sub)`:``}`,i=ie();return i!==void 0&&i>e&&(r+=`, today: $${i.toFixed(2)}`),r},zt=()=>{let e=jt();if(e)return`ctx ${e.percent===null?`?`:`${e.percent.toFixed(0)}%`}/${ol(e.contextWindow)}`},Bt=()=>{let e=n()?.state.model;if(!e)return;let t=ee()?.models.find(t=>t.provider===e.provider&&t.modelId===e.id);if(!(!t||t.count<3))return`${Math.round(t.median)} tok/s`},Vt=()=>[Lt(),Rt(),zt(),Bt()].filter(Boolean),Ht=()=>[...(pe().steeringMessages??pe().steering.map(e=>({text:e}))).map(e=>({kind:`steer`,text:e.images?.length?`${e.text} (${e.images.length} image(s))`:e.text})),...(pe().followUpMessages??pe().followUp.map(e=>({text:e}))).map(e=>({kind:`follow-up`,text:e.images?.length?`${e.text} (${e.images.length} image(s))`:e.text}))],Ut=()=>{let e=r();if(oe()||!e.startsWith(`/`))return;let t=e.slice(1);if(!/\s/.test(t))return t.toLowerCase()},Wt=N(()=>{let e=Ut();return e===void 0?[]:ae().filter(t=>{let n=t.name.toLowerCase();return!e||n.startsWith(e)||n.includes(e)}).sort((t,n)=>!t.name.toLowerCase().startsWith(e)-+!n.name.toLowerCase().startsWith(e)||t.name.localeCompare(n.name)).slice(0,8)}),Gt=()=>Wt().length>0,Kt=e=>{i(`/${e.name} `),U(!0),queueMicrotask(()=>Ne?.focus())};return M(()=>{let e=Wt().length;se()>=e&&ce(Math.max(0,e-1))}),(()=>{var c=Lc(),u=c.firstChild,k=u.firstChild,M=k.firstChild.nextSibling,N=M.nextSibling,I=u.nextSibling,R=I.firstChild,z=I.nextSibling,B=z.firstChild,ee=B.firstChild;X(M,Pt),X(k,W(K,{get when(){return!h()},get children(){var e=fc();return X(e,(()=>{var e=q(()=>!!n()?.cwd);return()=>e()?sl(n().cwd):void 0})()),e}}),N),X(k,W(tt,{get store(){return e.store},class:`session-connection-indicator`}),N),X(k,W(K,{get when(){return!h()},get children(){var t=mc(),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,()=>il(n()?.state.model)),a.$$click=async()=>{let t=n()?.state.thinkingLevel??`off`,r=tl[(tl.indexOf(t)+1)%tl.length];try{await Q.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 jt()},get children(){var e=pc();return e.firstChild.nextSibling,X(e,(()=>{var e=q(()=>jt().percent===null);return()=>e()?`?`:`${jt().percent.toFixed(0)}%`})(),null),e}}),o),o.$$click=()=>m(!p()),j(()=>Y(r,`title`,al(n()?.state.model))),t}}),N),N.$$click=()=>g(!h()),X(N,()=>h()?`details ▾`:`details ▴`),X(u,W(K,{get when(){return!h()},get children(){return[(()=>{var e=gc(),t=e.firstChild,n=t.nextSibling;return X(t,It),n.$$click=gt,X(n,W(G,{get each(){return Vt()},children:e=>(()=>{var t=Rc();return X(t,e),t})()})),X(e,W(K,{get when(){return De()},get children(){var e=hc(),t=Le;return typeof t==`function`?Pe(t,e):Le=e,X(e,W(K,{get when(){return ke()},get children(){var e=Xs();return X(e,ke),e}}),null),X(e,W(K,{get when(){return L()},get fallback(){return zc()},children:e=>(()=>{var t=Bc(),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,()=>ol(e().tokens.input),s),X(o,()=>ol(e().tokens.output),null),X(c,()=>ol(e().tokens.cacheRead),l),X(c,()=>ol(e().tokens.cacheWrite),null),X(u,()=>ol(e().tokens.total)),X(d,()=>e().cost.toFixed(4),null),t})()}),null),e}}),null),e})(),W(K,{get when(){return p()},get children(){var t=yc(),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=()=>Et(!0),o.$$click=()=>Et(!1),s.$$click=()=>w(!0),c.$$click=mt,u.$$click=qe,X(t,W(K,{get when(){return Mt()},get children(){return[(()=>{var e=_c();return e.firstChild,e.$$click=()=>f(!0),X(e,()=>il(n()?.state.model),null),e})(),(()=>{var t=vc();return t.firstChild,t.$$click=async()=>{let t=n()?.state.thinkingLevel??`off`,r=tl[(tl.indexOf(t)+1)%tl.length];try{await Q.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=wt,X(d,()=>l()?`stopping runtime…`:`stop runtime`),j(t=>{var n=Q.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(K,{get when(){return q(()=>!!(!h()&&n()?.state.modelFallbackMessage))()&&!D()},get children(){var e=bc(),t=e.firstChild.firstChild;t.firstChild;var r=t.nextSibling;return X(t,()=>n().state.modelFallbackMessage,null),r.$$click=()=>O(!0),e}}),I);var te=Ae;typeof te==`function`?Pe(te,I):Ae=I;var ne=Me;return typeof ne==`function`?Pe(ne,R):Me=R,X(R,W(K,{get when(){return t()},get fallback(){return Vc()},get children(){return[W(G,{get each(){return t().widgets.above},children:e=>(()=>{var t=Hc();return X(t,e),t})()}),W(As,{get entries(){return t().entries},get resetKey(){return e.sessionKey}}),W(G,{get each(){return t().widgets.below},children:e=>(()=>{var t=Hc();return X(t,e),t})()})]}})),ee.$$click=()=>v(!_()),X(ee,()=>_()?`compose ▴`:`compose ▾`),X(B,W(K,{get when(){return _()},get children(){var e=xc();return X(e,(()=>{var e=q(()=>!!Ue());return()=>e()?`agent working — open controls to stop or steer`:q(()=>Ht().length>0)()?`${Ht().length} queued message(s)`:`composer hidden for transcript reading`})()),e}}),null),X(z,W(K,{get when(){return!_()},get children(){var n=Pc(),c=n.firstChild,l=c.firstChild,u=l.nextSibling,d=u.firstChild,f=d.nextSibling,p=f.nextSibling,m=p.nextSibling,h=m.nextSibling;X(n,W(K,{get when(){return kt().length>0},get children(){var e=Sc(),t=e.firstChild,n=t.firstChild.nextSibling,r=n.nextSibling.nextSibling;r.nextSibling;var i=t.nextSibling;return X(t,At,n),X(t,()=>kt().length,r),X(i,W(G,{get each(){return kt()},children:e=>(()=>{var t=Uc(),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=!Mt()),e}}),c),X(n,W(K,{get when(){return Dt().length+Ot().length>0},get children(){var t=wc(),n=t.firstChild,r=n.nextSibling,i=r.firstChild.nextSibling,a=i.nextSibling.nextSibling;return a.nextSibling,n.$$click=()=>b(!y()),X(n,()=>y()?`subagents ▴`:`subagents ▾`),X(r,()=>Dt().length,i),X(r,()=>Ot().length,a),X(t,W(K,{get when(){return y()},get children(){return Cc()}}),null),X(t,W(K,{get when(){return!y()},get children(){return W(G,{get each(){return[...Dt(),...Ot()].slice(0,4)},children:t=>(()=>{var n=Wc(),r=n.firstChild,i=r.nextSibling,a=i.firstChild;return n.$$click=()=>e.store.navigate({screen:`subagent`,key:e.sessionKey,agentId:t.agentId}),X(r,(()=>{var e=q(()=>t.status===`running`);return()=>e()?`●`:t.status===`completed`?`✓`:`✕`})()),X(i,()=>t.agentType,a),X(i,()=>t.taskSummary,null),j(()=>je(r,t.status===`running`?`live`:`done`)),n})()})}}),null),j(e=>{var r=!!y(),i=y()?`show subagents`:`hide subagents`;return r!==e.e&&t.classList.toggle(`collapsed`,e.e=r),i!==e.t&&Y(n,`title`,e.t=i),e},{e:void 0,t:void 0}),t}}),c),X(n,W(K,{get when(){return Ue()||(t()?.statusEntries.length??0)>0||A()},get children(){var e=Oc();return X(e,W(K,{get when(){return ze()},get children(){var e=Tc();return e.firstChild,X(e,(()=>{var e=q(()=>!!t()?.workingText);return()=>e()?` — ${t().workingText}`:``})(),null),X(e,(()=>{var e=q(()=>F()>2);return()=>e()?` (${F()}s)`:``})(),null),e}}),null),X(e,W(G,{get each(){return t()?.statusEntries??[]},children:e=>(()=>{var t=Rc();return X(t,()=>e.text,null),X(t,W(K,{get when(){return e.key===`compaction`||e.key===`retry`},get children(){var t=Gc();return t.$$click=()=>Tt(e.key),t}}),null),j(()=>je(t,e.tone===`info`?`queued`:e.tone)),t})()}),null),X(e,W(K,{get when(){return A()},get children(){var e=Ec();return X(e,A),e}}),null),X(e,W(K,{get when(){return Ue()},get children(){var e=Dc();return e.$$click=Ct,X(e,()=>s()?`stopping…`:`■ stop`),j(()=>e.disabled=s()),e}}),null),e}}),c),X(c,W(K,{get when(){return Ht().length>0},get children(){var e=kc(),t=e.firstChild;return X(e,W(G,{get each(){return Ht()},children:e=>(()=>{var t=Kc(),n=t.firstChild;return X(n,()=>e.kind),X(t,()=>e.text,null),j(()=>Y(t,`title`,e.text)),t})()}),t),t.$$click=lt,e}}),l),X(c,W(K,{get when(){return _e().length>0||he().length>0},get children(){var e=Ac();return X(e,W(G,{get each(){return _e()},children:(e,t)=>(()=>{var n=qc(),r=n.firstChild;r.firstChild;var i=r.nextSibling,a=i.nextSibling;return X(r,()=>e.fileName,null),X(i,()=>dl(e.size)),a.$$click=()=>ve(e=>e.filter((e,n)=>n!==t())),j(()=>Y(n,`title`,e.path)),n})()}),null),X(e,W(G,{get each(){return he()},children:(e,t)=>(()=>{var n=Jc(),r=n.firstChild,i=r.nextSibling;return i.$$click=()=>et(t()),j(t=>{var i=`${e.fileName} (${dl(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}}),l),X(c,W(K,{get when(){return Gt()},get children(){var e=jc();return X(e,W(G,{get each(){return Wt()},children:(e,t)=>(()=>{var n=Xc(),r=n.firstChild;r.firstChild;var i=r.nextSibling;return n.$$click=()=>Kt(e),n.addEventListener(`mouseenter`,()=>ce(t())),X(r,()=>e.name,null),X(n,W(K,{get when(){return e.description},get children(){var t=Yc();return X(t,()=>e.description),t}}),i),X(i,()=>e.source),j(e=>{var r=`command-option-${t()}`,i=se()===t(),a=se()===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}}),l),l.$$keydown=t=>{if(Gt()){if(t.key===`ArrowDown`){t.preventDefault(),ce((se()+1)%Wt().length);return}if(t.key===`ArrowUp`){t.preventDefault(),ce((se()-1+Wt().length)%Wt().length);return}if(t.key===`Tab`||t.key===`Enter`&&!t.shiftKey&&!Mt()){t.preventDefault();let e=Wt()[se()];e&&Kt(e);return}if(t.key===`Escape`){t.preventDefault(),U(!0);return}}if((t.key===`ArrowUp`||t.key===`ArrowDown`)&&(r()===``||ye()!==void 0)){let n=Is(e.sessionKey);if(n.length>0){if(t.preventDefault(),t.key===`ArrowUp`){let e=ye()===void 0?n.length-1:Math.max(0,ye()-1);be(e),i(n[e]??``)}else if(ye()!==void 0){let e=ye()+1;e>=n.length?(be(void 0),i(``)):(be(e),i(n[e]??``))}}return}t.key===`Enter`&&!t.shiftKey&&!Mt()&&(t.preventDefault(),St())},l.$$input=e=>{U(!1),ce(0),be(void 0),i(e.currentTarget.value),ml(e.currentTarget)},l.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(),dt(t))});var g=Ne;typeof g==`function`?Pe(g,l):Ne=l,d.addEventListener(`change`,e=>{pt(e.currentTarget.files??[]),e.currentTarget.value=``});var _=Fe;typeof _==`function`?Pe(_,d):Fe=d,f.addEventListener(`change`,e=>{dt(e.currentTarget.files??[]),e.currentTarget.value=``});var v=Ie;return typeof v==`function`?Pe(v,f):Ie=f,p.$$click=()=>Fe?.click(),m.$$click=()=>Ie?.click(),X(u,W(K,{get when(){return ze()},get children(){var e=Mc(),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}}),h),X(u,W(K,{get when(){return t()?.suggestedCommand},get children(){var e=Nc(),n=e.firstChild.nextSibling;return e.$$click=()=>i(t().suggestedCommand),X(n,()=>t().suggestedCommand),e}}),h),h.$$click=St,j(e=>{var t=ze()?`Message dreb — sends as steer while it works…`:`Message dreb…`,n=Gt()?`command-listbox`:void 0,r=Gt()?`command-option-${se()}`:void 0;return t!==e.e&&Y(l,`placeholder`,e.e=t),n!==e.t&&Y(l,`aria-controls`,e.t=n),r!==e.a&&Y(l,`aria-activedescendant`,e.a=r),e},{e:void 0,t:void 0,a:void 0}),j(()=>l.value=r()),n}}),null),X(c,W(K,{get when(){return t()?.uiRequests[0]},children:t=>W(hl,{get request(){return t()},onRespond:async t=>{try{await Q.extensionUiResponse(e.sessionKey,t)}catch(e){P(e instanceof Error?e.message:String(e))}}})}),null),X(c,W(K,{get when(){return d()},get children(){return W(_l,{get sessionKey(){return e.sessionKey},get state(){return n()?.state},onClose:()=>f(!1),onSelected:t=>e.store.setRuntimeModel(e.sessionKey,t)})}}),null),X(c,W(K,{get when(){return x()},get children(){return W(nt,{title:`compact context`,onDismiss:()=>S(!1),get actions(){return[(()=>{var e=Us();return e.$$click=()=>S(!1),e})(),(()=>{var t=Zc();return t.$$click=async()=>{S(!1);try{await Q.compact(e.sessionKey)}catch(e){P(e instanceof Error?e.message:String(e))}},t})()]},get children(){return Fc()}})}}),null),X(c,W(K,{get when(){return T()},get children(){return W(gl,{get resources(){return le()},get error(){return de()},onClose:()=>E(!1)})}}),null),X(c,W(K,{get when(){return xe()},get children(){return W(nt,{title:`fork from message`,onDismiss:()=>Se(!1),get children(){return[W(K,{get when(){return Te()},get children(){var e=Xs();return X(e,Te),e}}),W(K,{get when(){return Ce().length>0},get fallback(){return Qc()},get children(){var e=Ic();return X(e,W(G,{get each(){return Ce()},children:e=>(()=>{var t=$c(),n=t.firstChild,r=n.nextSibling;return t.$$click=()=>ht(e.entryId),X(n,()=>e.entryId),X(r,()=>e.text),t})()})),e}})]}})}}),null),X(c,W(K,{get when(){return C()},get children(){return W(yl,{get current(){return Nt()??``},onClose:()=>w(!1),onRename:async t=>{try{await Q.rename(e.sessionKey,t),w(!1)}catch(e){P(e instanceof Error?e.message:String(e))}}})}}),null),j(e=>{var t=!!h(),n=h()?`show session details`:`hide session details`,r=!!_(),i=_()?`show composer and controls`:`hide composer and controls`;return t!==e.e&&u.classList.toggle(`collapsed`,e.e=t),n!==e.t&&Y(N,`title`,e.t=n),r!==e.a&&z.classList.toggle(`collapsed`,e.a=r),i!==e.o&&Y(ee,`title`,e.o=i),e},{e:void 0,t:void 0,a:void 0,o:void 0}),c})()}function yl(e){let[t,n]=k(e.current);return W(nt,{title:`rename session`,get onDismiss(){return e.onClose},get actions(){return[(()=>{var t=Us();return Me(t,`click`,e.onClose,!0),t})(),(()=>{var n=el();return n.$$click=()=>e.onRename(t().trim()),j(()=>n.disabled=!t().trim()),n})()]},get children(){var e=Vs(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e}})}Ae([`input`,`click`,`keydown`]);var bl=[{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)`}],xl=bl.map(e=>e.id),Sl=[`system`,`light`,`dark`],Cl=`dreb.dashboard.theme`,wl=`dreb.dashboard.colorMode`,Tl=`default`,El=`system`;function Dl(e){return typeof e==`string`&&xl.includes(e)}function Ol(e){return typeof e==`string`&&Sl.includes(e)}function kl(){if(typeof window>`u`)return Tl;try{let e=window.localStorage.getItem(Cl);return Dl(e)?e:Tl}catch{return Tl}}function Al(){if(typeof window>`u`)return El;try{let e=window.localStorage.getItem(wl);return Ol(e)?e:El}catch{return El}}function jl(e,t,n){if(!(typeof window>`u`))try{t===n?window.localStorage.removeItem(e):window.localStorage.setItem(e,t)}catch{}}var[Ml,Nl]=k(kl()),[Pl,Fl]=k(Al()),Il=Ml,Ll=Pl;function Rl(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 zl(e){try{let t=e??(typeof document<`u`?document:void 0);if(!t)return;let n=t.documentElement;if(!n)return;let r=Ml(),i=Pl();if(r===Tl?n.removeAttribute(`data-theme`):n.setAttribute(`data-theme`,r),i===El?n.removeAttribute(`data-color-mode`):n.setAttribute(`data-color-mode`,i),!(r!==Tl||i!==El))n.style.removeProperty(`color-scheme`);else{let e=i===`light`?`light`:i===`dark`?`dark`:`light dark`;n.style.setProperty(`color-scheme`,e)}}catch{}}function Bl(e){try{let t=e??(typeof document<`u`?document:void 0);if(!t)return;let n=Rl(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 Vl(e){let t=Dl(e)?e:Tl;Nl(t),jl(Cl,t,Tl),zl(),Bl()}function Hl(e){let t=Ol(e)?e:El;Fl(t),jl(wl,t,El),zl(),Bl()}var Ul=null,Wl=!1;function Gl(){Pl()===El&&Bl()}function Kl(e){e.key!==null&&e.key!==`dreb.dashboard.theme`&&e.key!==`dreb.dashboard.colorMode`||ql()}function ql(){Nl(kl()),Fl(Al()),zl(),Bl()}function Jl(){if(!(typeof window>`u`)){try{typeof window.matchMedia==`function`&&(Ul=window.matchMedia(`(prefers-color-scheme: dark)`),typeof Ul.addEventListener==`function`?Ul.addEventListener(`change`,Gl):typeof Ul.addListener==`function`&&Ul.addListener(Gl))}catch{}try{window.addEventListener(`storage`,Kl)}catch{}}}function Yl(){ql(),!Wl&&(Wl=!0,Jl())}var Xl=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>`),Zl=J(`<option>`),Ql=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>
75
75
  <span class=hljs-comment>// preview</span>
76
- <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>`),Jl=[`running`,`attention`,`idle`,`error`];function Yl(){let e=()=>{let e=Ml();return e===`system`?void 0:e};return(()=>{var t=Gl(),n=t.firstChild,r=n.firstChild.nextSibling.firstChild,i=n.nextSibling;return r.addEventListener(`change`,e=>Ll(e.currentTarget.value)),X(r,W(G,{each:_l,children:e=>(()=>{var t=Kl();return t.value=e,X(t,e),t})()})),X(i,W(G,{each:hl,children:t=>{let n=()=>jl()===t.id;return(()=>{var r=ql(),i=r.firstChild,a=i.firstChild,o=a.firstChild,s=a.nextSibling,c=i.nextSibling.firstChild,l=c.nextSibling;return r.$$click=()=>Il(t.id),X(o,()=>t.label),X(s,W(G,{each:Jl,children:e=>W(Qe,{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=Ml()),t})()}Ae([`click`]);var Xl=J(`<select><option value=on>on</option><option value=off>off`),Zl=J(`<div class=field style=margin-bottom:8px><input type=text placeholder="search models…">`),Ql=J(`<div class=model-list style=max-height:320px>`),$l=J(`<p class="muted small">No matching models.`),eu=J(`<section class=model-provider-group><div class=model-provider-heading>`),tu=J(`<span class=model-name>`),nu=J(`<span class=model-reasoning>think`),ru=J(`<button type=button class=model-row><span class=model-current></span><span class=model-id></span><span class=model-provider-badge>`),iu=J(`<div class=settings-error>`),au=J(`<div class=settings-warning>`),ou=J(`<p class="muted small"style=margin-bottom:16px>✓ saved`),su=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>`),cu=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.`),lu=J(`<p>This exits the dashboard server process and terminates <strong>all running sessions</strong>.`),uu=J(`<div class=screen-fill><main class="container settings-wrap"><h1>settings</h1><p class=settings-intro>Ordinary defaults apply only to new sessions. 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><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></section><footer>dreb<!> · dashboard`),du=J(`<div>`),fu=J(`<p class=muted>`),pu=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>`),mu=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`),hu=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.`),gu=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>`),_u=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>`),vu=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=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>`),yu=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>`),bu=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.`),xu=J(`<option>`),Su=J(`<p class="muted small">No agent definitions found.`),Cu=J(`<div class=agent-model-editor><button type=button class="btn btn-small">add model…`),wu=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">`),Tu=J(`<span class="muted small">default`),Eu=J(`<span class=agent-model-chip>. `),Du=J(`<p class="muted small">Using the default model.`),Ou=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">×`),ku=J(`<p class="muted small trusted-context-empty">No trusted folders. Use the Files view to trust a project folder and its descendants.`),Au=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">`),ju=J(`<label class=checkbox-control><input type=checkbox><span>`),Mu=J(`<div class=device-row><span></span><span class=meta> · paired </span><span class=actions><button type=button class="btn btn-small btn-danger">unpair`),Nu=J(`<button type=button class="btn btn-small">cancel`),Pu=J(`<button type=button class="btn btn-small btn-danger">restart`),Fu=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],Iu=[`all`,`one-at-a-time`],Lu=[`sse`,`websocket`,`auto`];function Ru(e){return`${e.provider}/${e.id}`}function zu(e){let t=Ru(e);return e.name?`${t} — ${e.name}`:t}function Bu(e){return e.defaultProvider&&e.defaultModel?`${e.defaultProvider}/${e.defaultModel}`:`choose model…`}function Vu(e,t){return`${e.provider}/${e.id} ${e.name??``}`.toLowerCase().includes(t)}function Hu(){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 Uu(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 Wu(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 Gu(e){return(()=>{var t=Xl();return t.addEventListener(`change`,t=>e.onChange(t.currentTarget.value===`on`)),j(()=>t.value=e.value?`on`:`off`),t})()}function Ku(e){let[t,n]=k(``),r=()=>new Set(e.selected??[]),i=N(()=>{let n=t().toLowerCase();return Uu(e.models.filter(e=>!n||Vu(e,n)).slice(0,100))}),a=e=>r().has(Ru(e));return W(nt,{get title(){return e.title},get onDismiss(){return e.onClose},class:`model-picker-modal`,get children(){return[(()=>{var e=Zl(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e})(),(()=>{var t=Ql();return X(t,W(K,{get when(){return i().length>0},get fallback(){return $l()},get children(){return W(G,{get each(){return i()},children:t=>(()=>{var n=eu(),r=n.firstChild;return X(r,()=>t.provider),X(n,W(G,{get each(){return t.models},children:t=>(()=>{var n=ru(),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=tu();return X(e,()=>t.name),e}}),o),X(o,()=>t.provider),X(n,W(K,{get when(){return t.reasoning},get children(){return nu()}}),null),j(e=>{var r=!!a(t),i=zu(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 qu(e){let[t,n]=k(),[r,i]=k([]),[a,o]=k(!1),[s,c]=k(),[l,u]=k(),[d,f]=k(),[p,m]=k(``),[h,g]=k(!1),[_,v]=k(Hu()),[y,{mutate:b,refetch:x}]=F(async()=>{n(void 0);try{return await Q.settings()}catch(e){n(e instanceof Error?e.message:String(e));return}}),[S]=F(y,async()=>{try{let{models:e}=await Q.settingsModels();return e}catch(e){return n(e instanceof Error?e.message:String(e)),[]}}),C=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))}),[w]=F(()=>({settings:y(),cwd:d()}),async({cwd:e})=>{if(!y())return[];try{let{agentTypes:t}=await Q.agentTypes(e);return t}catch(e){return n(e instanceof Error?e.message:String(e)),[]}}),[T,{refetch:E}]=F(async()=>{let{devices:e}=await Q.devices();return e}),[D,O]=k(),A;function M(){A&&clearTimeout(A),A=void 0}function P(e){M();let t=Math.max(250,e??3e4)+100;A=setTimeout(()=>void I(),t)}async function I(){try{let e=await Q.pairingCode();if(!e.enabled||!e.code){O(void 0),M();return}O(e),P(e.expiresInMs)}catch(e){console.warn(`pairing code unavailable`,e),O(void 0),M()}}let[L]=F(async()=>{try{let{version:e}=await Q.version();return e}catch{return}}),[B]=F(async()=>{try{return await Q.serverInfo()}catch{return}}),[ee,te]=k(!1),[ne,re]=k(!1),[ie,V]=k();async function ae(){V(void 0),re(!0);try{await Q.restartServer()}catch(e){V(e instanceof Error?e.message:String(e)),re(!1)}}async function H(e){n(void 0),i([]),o(!1);try{let t=await Q.saveSettings(e);b(t),i(t.warnings??[]),o(!0),setTimeout(()=>o(!1),2e3)}catch(e){n(e instanceof Error?e.message:String(e)),await x()}}async function oe(e,t){await H({agentModels:{[e]:t}})}async function U(e){n(void 0),g(!0);try{let t=await Q.trustContextFolder(e);b(t.settings),m(``)}catch(e){n(e instanceof Error?e.message:String(e))}finally{g(!1)}}async function se(e){n(void 0),g(!0);try{let t=await Q.removeTrustedContextFolder(e);b(t.settings)}catch(e){n(e instanceof Error?e.message:String(e))}finally{g(!1)}}function ce(e){return y()?.agentModels?.[e]??[]}async function le(){typeof Notification>`u`||v(await Notification.requestPermission())}R(()=>void I()),z(M);let ue=()=>e.store.auth();return(()=>{var n=uu(),i=n.firstChild,o=i.firstChild.nextSibling.nextSibling,g=o.firstChild.nextSibling;g.firstChild;var v=g.nextSibling,b=v.firstChild.nextSibling.firstChild.firstChild,x=v.nextSibling,O=x.firstChild.nextSibling,k=x.nextSibling,A=k.firstChild,M=A.firstChild.nextSibling,N=A.nextSibling.firstChild.firstChild,P=N.nextSibling,F=k.nextSibling.firstChild,I=F.firstChild.nextSibling,R=F.nextSibling.firstChild,z=o.nextSibling,re=z.firstChild.nextSibling.firstChild.firstChild.nextSibling,V=z.nextSibling,de=V.firstChild.nextSibling;return de.nextSibling,X(n,W(et,{get store(){return e.store},active:`settings`}),i),X(i,W(K,{get when(){return t()},get children(){var e=iu();return X(e,t),e}}),o),X(i,W(K,{get when(){return r().length>0},get children(){var e=au();return X(e,W(G,{get each(){return r()},children:e=>(()=>{var t=du();return X(t,e),t})()})),e}}),o),X(i,W(K,{get when(){return a()},get children(){return ou()}}),o),X(i,W(K,{get when(){return y()},get fallback(){return(()=>{var e=fu();return X(e,()=>t()?`Settings could not be loaded — see the error above.`:`Loading settings…`),e})()},children:e=>[(()=>{var t=pu(),n=t.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,()=>Bu(e())),X(o,()=>Fu.join(` · `)),s.addEventListener(`change`,e=>H({defaultThinkingLevel:e.currentTarget.value})),X(s,W(G,{each:Fu,children:e=>(()=>{var t=xu();return t.value=e,X(t,e),t})()})),l.addEventListener(`change`,e=>H({transport:e.currentTarget.value})),X(l,W(G,{get each(){return[...Lu]},children:e=>(()=>{var t=xu();return t.value=e,X(t,e),t})()})),j(()=>s.value=e().defaultThinkingLevel??`off`),j(()=>l.value=e().transport??`sse`),t})(),(()=>{var t=hu();return t.firstChild.nextSibling,X(t,W(K,{get when(){return C().length>0},get children(){var e=mu(),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 C()},children:e=>(()=>{var t=xu();return t.value=e,X(t,e),t})()}),null),j(()=>Y(t,`title`,d()??`global/home only`)),j(()=>t.value=d()??``),e}}),null),X(t,W(K,{get when(){return(w()??[]).length>0},get fallback(){return Su()},get children(){return W(G,{get each(){return w()??[]},children:t=>{let n=()=>e().agentModels?.[t.name]??[];return(()=>{var e=wu(),r=e.firstChild,i=r.firstChild,a=i.nextSibling,o=r.nextSibling,s=o.nextSibling;return X(i,()=>t.name),X(a,()=>t.description),X(o,W(K,{get when(){return n().length>0},get fallback(){return Tu()},get children(){return W(G,{get each(){return n()},children:(e,t)=>(()=>{var n=Eu(),r=n.firstChild;return X(n,()=>t()+1,r),X(n,e,null),n})()})}})),s.$$click=()=>u(l()===t.name?void 0:t.name),X(s,()=>l()===t.name?`done`:`edit`),X(e,W(K,{get when(){return l()===t.name},get children(){var e=Cu(),r=e.firstChild;return X(e,W(K,{get when(){return n().length>0},get fallback(){return Du()},get children(){return W(G,{get each(){return n()},children:(e,r)=>(()=>{var i=Ou(),a=i.firstChild,o=a.nextSibling.firstChild,s=o.nextSibling,c=s.nextSibling;return X(a,e),o.$$click=()=>void oe(t.name,Wu(n(),r(),-1)),s.$$click=()=>void oe(t.name,Wu(n(),r(),1)),c.$$click=()=>void oe(t.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:t.name}),e}}),null),e})()}})}}),null),t})(),(()=>{var t=gu(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling,i=n.nextSibling.firstChild.nextSibling;return X(r,W(Gu,{get value(){return e().imageAutoResize!==!1},onChange:e=>H({imageAutoResize:e})})),X(i,W(Gu,{get value(){return e().blockImages===!0},onChange:e=>H({blockImages:e})})),t})(),(()=>{var t=_u(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling.firstChild,i=n.nextSibling.firstChild.nextSibling.firstChild;return r.addEventListener(`change`,e=>H({steeringMode:e.currentTarget.value})),X(r,W(G,{get each(){return[...Iu]},children:e=>(()=>{var t=xu();return t.value=e,X(t,e),t})()})),i.addEventListener(`change`,e=>H({followUpMode:e.currentTarget.value})),X(i,W(G,{get each(){return[...Iu]},children:e=>(()=>{var t=xu();return t.value=e,X(t,e),t})()})),j(()=>r.value=e().steeringMode??`all`),j(()=>i.value=e().followUpMode??`all`),t})(),(()=>{var t=vu(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling,i=n.nextSibling,a=i.firstChild.nextSibling.nextSibling.nextSibling,o=a.firstChild.nextSibling,s=o.nextSibling,c=i.nextSibling,l=c.firstChild.nextSibling,u=c.nextSibling.nextSibling.firstChild.nextSibling;return X(r,W(Gu,{get value(){return e().enableSkillCommands!==!1},onChange:e=>H({enableSkillCommands:e})})),X(i,W(K,{get when(){return(e().trustedContextFolders??[]).length>0},get fallback(){return ku()},get children(){return W(G,{get each(){return e().trustedContextFolders??[]},children:e=>(()=>{var t=Au(),n=t.firstChild,r=n.nextSibling.nextSibling;return X(n,e),r.$$click=()=>void se(e),X(r,()=>h()?`revoking…`:`revoke trust`),j(()=>r.disabled=h()),t})()})}}),a),a.addEventListener(`submit`,e=>{e.preventDefault();let t=p().trim();t&&U(t)}),o.$$input=e=>m(e.currentTarget.value),X(s,()=>h()?`trusting…`:`trust folder`),X(l,W(Gu,{get value(){return e().autoLoadNestedContext===!0},onChange:e=>H({autoLoadNestedContext:e})})),X(u,W(Gu,{get value(){return e().hideThinkingBlock===!0},onChange:e=>H({hideThinkingBlock:e})})),j(()=>s.disabled=h()||!p().trim()),j(()=>o.value=p()),t})(),(()=>{var t=yu(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling,i=n.nextSibling.firstChild.nextSibling;return X(r,W(Gu,{get value(){return e().compactionEnabled!==!1},onChange:e=>H({compactionEnabled:e})})),X(i,W(Gu,{get value(){return e().retryEnabled!==!1},onChange:e=>H({retryEnabled:e})})),t})(),bu()]}),o),X(g,W(Yl,{}),null),b.addEventListener(`change`,e=>Co(e.currentTarget.checked)),X(O,W(G,{each:lo,children:e=>(()=>{var t=ju(),n=t.firstChild,r=n.nextSibling;return n.addEventListener(`change`,t=>wo(e,t.currentTarget.checked)),Y(n,`id`,`pref-tool-expand-${e}`),X(r,e),j(()=>n.checked=To(e)),t})()})),X(M,(()=>{var e=q(()=>_()===`denied`);return()=>e()?`blocked by browser settings — re-enable notifications in site permissions`:q(()=>_()===`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(()=>_()===`ios-install`)()?`iOS notifications need the installed PWA — tap Share → Add to Home Screen, then open dreb from the home screen icon`:_()===`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)`})()),N.addEventListener(`change`,e=>{e.currentTarget.checked&&le()}),X(P,()=>_()===`granted`?`enabled`:`enable notifications`),X(I,()=>B()?.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`),R.$$click=()=>te(!0),X(R,()=>ne()?`restarting…`:`restart`),X(o,W(K,{get when(){return ie()},get children(){var e=iu();return X(e,ie),e}}),null),X(re,()=>ue()?.mode===`local`?`local`:`host`),X(z,W(K,{get when(){return q(()=>!!D()?.enabled)()&&D()?.code},get children(){var e=su(),t=e.firstChild.nextSibling.firstChild;return X(t,()=>D().code),e}}),null),X(z,W(G,{get each(){return T()??[]},children:e=>(()=>{var t=Mu(),n=t.firstChild,r=n.nextSibling,i=r.firstChild,a=r.nextSibling.firstChild;return X(n,()=>e.device??e.id),X(r,()=>e.identity,i),X(r,()=>it(e.createdAt),null),a.$$click=async()=>{await Q.unpair(e.id),await E()},t})()}),null),X(z,W(K,{get when(){return(T()??[]).length===0},get children(){return cu()}}),null),X(V,(()=>{var e=q(()=>!!B()?.version);return()=>e()?` v${B().version}`:q(()=>!!L())()?` v${L()}`:``})(),de),X(V,W(K,{get when(){return B()?.startedAt},get children(){return[` · server build, up `,q(()=>it(B().startedAt))]}}),null),X(n,W(K,{get when(){return ee()},get children(){return W(nt,{title:`restart dashboard service?`,onDismiss:()=>te(!1),get actions(){return[(()=>{var e=Nu();return e.$$click=()=>te(!1),e})(),(()=>{var e=Pu();return e.$$click=()=>{te(!1),ae()},e})()]},get children(){var e=lu();return e.firstChild.nextSibling.nextSibling,X(e,()=>B()?.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(n,W(K,{get when(){return s()},children:e=>{let t=()=>{let t=e();return t.kind==="default"?`select default model`:`add model for ${t.agentName}`},n=()=>{let t=e();return t.kind==="default"?y()?.defaultProvider&&y()?.defaultModel?[`${y().defaultProvider}/${y().defaultModel}`]:[]:ce(t.agentName)};return W(Ku,{get title(){return t()},get models(){return S()??[]},get selected(){return n()},onClose:()=>c(void 0),onPick:t=>{let n=e();if(c(void 0),n.kind==="default"){H({defaultProvider:t.provider,defaultModel:t.id});return}let r=Ru(t),i=ce(n.agentName);i.includes(r)||oe(n.agentName,[...i,r])}})}}),null),j(e=>{var t=_()===`denied`||_()===`unsupported`||_()===`ios-install`||_()===`insecure`,n=ne();return t!==e.e&&(N.disabled=e.e=t),n!==e.t&&(R.disabled=e.t=n),e},{e:void 0,t:void 0}),j(()=>b.checked=So()),j(()=>N.checked=_()===`granted`),n})()}Ae([`input`,`click`]);var Ju=J(`<p class=pair-error>`),Yu=J(`<div class=status-line><span class=working>● working`),Xu=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><div class=readonly-note>viewing live — subagents can't be steered yet; the parent session controls this agent.`),Zu=J(`<p class=muted>`);function Qu(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,u=io({scroller:()=>c});return R(()=>{let t=new AbortController;e.store.hydrateSubagent(e.sessionKey,e.agentId,t.signal).catch(e=>{t.signal.aborted&&Es(e)||s(e instanceof Error?e.message:String(e))}),z(()=>t.abort())}),M(()=>{e.store.revisions[e.sessionKey],u.notifyContentChanged()}),R(()=>{u.observeContent(l),u.observeViewport(c),c&&z(oo(u,c,{keyboard:`window`}))}),z(()=>u.dispose()),(()=>{var t=Xu(),i=t.firstChild,s=i.firstChild.firstChild;s.firstChild;var u=s.nextSibling;u.firstChild;var d=u.nextSibling,f=d.nextSibling,p=i.nextSibling,m=p.firstChild,h=p.nextSibling.firstChild,g=h.firstChild;X(s,a,null),X(u,()=>n()?.agentType??`unknown`,null),X(d,()=>n()?.taskSummary??e.agentId),X(f,W(K,{get when(){return n()?.status===`running`},get fallback(){return W(Qe,{get status(){return n()?.status===`failed`?`error`:`idle`},get label(){return n()?.status}})},get children(){return W(Qe,{status:`running`})}}));var _=c;typeof _==`function`?Pe(_,p):c=p;var v=l;return typeof v==`function`?Pe(v,m):l=m,X(m,W(K,{get when(){return o()},get children(){var e=Ju();return X(e,o),e}}),null),X(m,W(K,{get when(){return q(()=>!!r())()&&r().entries.length>0},get fallback(){return(()=>{var e=Zu();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(Ts,{get entries(){return r().entries},get who(){return n()?.agentType??`agent`},userLabel:`task from parent`,get resetKey(){return`${e.sessionKey}:${e.agentId}`}})}}),null),X(h,W(K,{get when(){return r()?.streaming},get children(){return Yu()}}),g),j(()=>Y(s,`href`,`#/session/${e.sessionKey}`)),t})()}function $u(e){return{key:e,entries:[],streaming:!1,compacting:!1,statusEntries:[],tasks:[],backgroundAgents:{},uiRequests:[],toasts:[],widgets:{above:[],below:[]},needsAttention:!1,subagents:{}}}function ed(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>typeof e?.text==`string`).map(e=>e.text).join(`
77
- `):``}function td(e,t){let n=e.match(/<background-agent-complete>\n?([\s\S]*?)\n?<\/background-agent-complete>/)?.[1]?.trim();if(!n)return;let r=n.split(`
76
+ <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>`),$l=[`running`,`attention`,`idle`,`error`];function eu(){let e=()=>{let e=Ll();return e===`system`?void 0:e};return(()=>{var t=Xl(),n=t.firstChild,r=n.firstChild.nextSibling.firstChild,i=n.nextSibling;return r.addEventListener(`change`,e=>Hl(e.currentTarget.value)),X(r,W(G,{each:Sl,children:e=>(()=>{var t=Zl();return t.value=e,X(t,e),t})()})),X(i,W(G,{each:bl,children:t=>{let n=()=>Il()===t.id;return(()=>{var r=Ql(),i=r.firstChild,a=i.firstChild,o=a.firstChild,s=a.nextSibling,c=i.nextSibling.firstChild,l=c.nextSibling;return r.$$click=()=>Vl(t.id),X(o,()=>t.label),X(s,W(G,{each:$l,children:e=>W(Qe,{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=Ll()),t})()}Ae([`click`]);var tu=J(`<select><option value=on>on</option><option value=off>off`),nu=J(`<div class=field style=margin-bottom:8px><input type=text placeholder="search models…">`),ru=J(`<div class=model-list style=max-height:320px>`),iu=J(`<p class="muted small">No matching models.`),au=J(`<section class=model-provider-group><div class=model-provider-heading>`),ou=J(`<span class=model-name>`),su=J(`<span class=model-reasoning>think`),cu=J(`<button type=button class=model-row><span class=model-current></span><span class=model-id></span><span class=model-provider-badge>`),lu=J(`<div class=settings-error>`),uu=J(`<div class=settings-warning>`),du=J(`<p class="muted small"style=margin-bottom:16px>✓ saved`),fu=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>`),pu=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.`),mu=J(`<p>This exits the dashboard server process and terminates <strong>all running sessions</strong>.`),hu=J(`<div class=screen-fill><main class="container settings-wrap"><h1>settings</h1><p class=settings-intro>Ordinary defaults apply only to new sessions. 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><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></section><footer>dreb<!> · dashboard`),gu=J(`<div>`),_u=J(`<p class=muted>`),vu=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>`),yu=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`),bu=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.`),xu=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>`),Su=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>`),Cu=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=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>`),wu=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>`),Tu=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.`),Eu=J(`<option>`),Du=J(`<p class="muted small">No agent definitions found.`),Ou=J(`<div class=agent-model-editor><button type=button class="btn btn-small">add model…`),ku=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">`),Au=J(`<span class="muted small">default`),ju=J(`<span class=agent-model-chip>. `),Mu=J(`<p class="muted small">Using the default model.`),Nu=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">×`),Pu=J(`<p class="muted small trusted-context-empty">No trusted folders. Use the Files view to trust a project folder and its descendants.`),Fu=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">`),Iu=J(`<label class=checkbox-control><input type=checkbox><span>`),Lu=J(`<div class=device-row><span></span><span class=meta> · paired </span><span class=actions><button type=button class="btn btn-small btn-danger">unpair`),Ru=J(`<button type=button class="btn btn-small">cancel`),zu=J(`<button type=button class="btn btn-small btn-danger">restart`),Bu=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`],Vu=[`all`,`one-at-a-time`],Hu=[`sse`,`websocket`,`auto`];function Uu(e){return`${e.provider}/${e.id}`}function Wu(e){let t=Uu(e);return e.name?`${t} — ${e.name}`:t}function Gu(e){return e.defaultProvider&&e.defaultModel?`${e.defaultProvider}/${e.defaultModel}`:`choose model…`}function Ku(e,t){return`${e.provider}/${e.id} ${e.name??``}`.toLowerCase().includes(t)}function qu(){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 Ju(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 Yu(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 Xu(e){return(()=>{var t=tu();return t.addEventListener(`change`,t=>e.onChange(t.currentTarget.value===`on`)),j(()=>t.value=e.value?`on`:`off`),t})()}function Zu(e){let[t,n]=k(``),r=()=>new Set(e.selected??[]),i=N(()=>{let n=t().toLowerCase();return Ju(e.models.filter(e=>!n||Ku(e,n)).slice(0,100))}),a=e=>r().has(Uu(e));return W(nt,{get title(){return e.title},get onDismiss(){return e.onClose},class:`model-picker-modal`,get children(){return[(()=>{var e=nu(),r=e.firstChild;return r.$$input=e=>n(e.currentTarget.value),j(()=>r.value=t()),e})(),(()=>{var t=ru();return X(t,W(K,{get when(){return i().length>0},get fallback(){return iu()},get children(){return W(G,{get each(){return i()},children:t=>(()=>{var n=au(),r=n.firstChild;return X(r,()=>t.provider),X(n,W(G,{get each(){return t.models},children:t=>(()=>{var n=cu(),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=ou();return X(e,()=>t.name),e}}),o),X(o,()=>t.provider),X(n,W(K,{get when(){return t.reasoning},get children(){return su()}}),null),j(e=>{var r=!!a(t),i=Wu(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 Qu(e){let[t,n]=k(),[r,i]=k([]),[a,o]=k(!1),[s,c]=k(),[l,u]=k(),[d,f]=k(),[p,m]=k(``),[h,g]=k(!1),[_,v]=k(qu()),[y,{mutate:b,refetch:x}]=F(async()=>{n(void 0);try{return await Q.settings()}catch(e){n(e instanceof Error?e.message:String(e));return}}),[S]=F(y,async()=>{try{let{models:e}=await Q.settingsModels();return e}catch(e){return n(e instanceof Error?e.message:String(e)),[]}}),C=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))}),[w]=F(()=>({settings:y(),cwd:d()}),async({cwd:e})=>{if(!y())return[];try{let{agentTypes:t}=await Q.agentTypes(e);return t}catch(e){return n(e instanceof Error?e.message:String(e)),[]}}),[T,{refetch:E}]=F(async()=>{let{devices:e}=await Q.devices();return e}),[D,O]=k(),A;function M(){A&&clearTimeout(A),A=void 0}function P(e){M();let t=Math.max(250,e??3e4)+100;A=setTimeout(()=>void I(),t)}async function I(){try{let e=await Q.pairingCode();if(!e.enabled||!e.code){O(void 0),M();return}O(e),P(e.expiresInMs)}catch(e){console.warn(`pairing code unavailable`,e),O(void 0),M()}}let[L]=F(async()=>{try{let{version:e}=await Q.version();return e}catch{return}}),[B]=F(async()=>{try{return await Q.serverInfo()}catch{return}}),[ee,te]=k(!1),[ne,re]=k(!1),[ie,V]=k();async function ae(){V(void 0),re(!0);try{await Q.restartServer()}catch(e){V(e instanceof Error?e.message:String(e)),re(!1)}}async function H(e){n(void 0),i([]),o(!1);try{let t=await Q.saveSettings(e);b(t),i(t.warnings??[]),o(!0),setTimeout(()=>o(!1),2e3)}catch(e){n(e instanceof Error?e.message:String(e)),await x()}}async function oe(e,t){await H({agentModels:{[e]:t}})}async function U(e){n(void 0),g(!0);try{let t=await Q.trustContextFolder(e);b(t.settings),m(``)}catch(e){n(e instanceof Error?e.message:String(e))}finally{g(!1)}}async function se(e){n(void 0),g(!0);try{let t=await Q.removeTrustedContextFolder(e);b(t.settings)}catch(e){n(e instanceof Error?e.message:String(e))}finally{g(!1)}}function ce(e){return y()?.agentModels?.[e]??[]}async function le(){typeof Notification>`u`||v(await Notification.requestPermission())}R(()=>void I()),z(M);let ue=()=>e.store.auth();return(()=>{var n=hu(),i=n.firstChild,o=i.firstChild.nextSibling.nextSibling,g=o.firstChild.nextSibling;g.firstChild;var v=g.nextSibling,b=v.firstChild.nextSibling.firstChild.firstChild,x=v.nextSibling,O=x.firstChild.nextSibling,k=x.nextSibling,A=k.firstChild,M=A.firstChild.nextSibling,N=A.nextSibling.firstChild.firstChild,P=N.nextSibling,F=k.nextSibling.firstChild,I=F.firstChild.nextSibling,R=F.nextSibling.firstChild,z=o.nextSibling,re=z.firstChild.nextSibling.firstChild.firstChild.nextSibling,V=z.nextSibling,de=V.firstChild.nextSibling;return de.nextSibling,X(n,W(et,{get store(){return e.store},active:`settings`}),i),X(i,W(K,{get when(){return t()},get children(){var e=lu();return X(e,t),e}}),o),X(i,W(K,{get when(){return r().length>0},get children(){var e=uu();return X(e,W(G,{get each(){return r()},children:e=>(()=>{var t=gu();return X(t,e),t})()})),e}}),o),X(i,W(K,{get when(){return a()},get children(){return du()}}),o),X(i,W(K,{get when(){return y()},get fallback(){return(()=>{var e=_u();return X(e,()=>t()?`Settings could not be loaded — see the error above.`:`Loading settings…`),e})()},children:e=>[(()=>{var t=vu(),n=t.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,()=>Gu(e())),X(o,()=>Bu.join(` · `)),s.addEventListener(`change`,e=>H({defaultThinkingLevel:e.currentTarget.value})),X(s,W(G,{each:Bu,children:e=>(()=>{var t=Eu();return t.value=e,X(t,e),t})()})),l.addEventListener(`change`,e=>H({transport:e.currentTarget.value})),X(l,W(G,{get each(){return[...Hu]},children:e=>(()=>{var t=Eu();return t.value=e,X(t,e),t})()})),j(()=>s.value=e().defaultThinkingLevel??`off`),j(()=>l.value=e().transport??`sse`),t})(),(()=>{var t=bu();return t.firstChild.nextSibling,X(t,W(K,{get when(){return C().length>0},get children(){var e=yu(),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 C()},children:e=>(()=>{var t=Eu();return t.value=e,X(t,e),t})()}),null),j(()=>Y(t,`title`,d()??`global/home only`)),j(()=>t.value=d()??``),e}}),null),X(t,W(K,{get when(){return(w()??[]).length>0},get fallback(){return Du()},get children(){return W(G,{get each(){return w()??[]},children:t=>{let n=()=>e().agentModels?.[t.name]??[];return(()=>{var e=ku(),r=e.firstChild,i=r.firstChild,a=i.nextSibling,o=r.nextSibling,s=o.nextSibling;return X(i,()=>t.name),X(a,()=>t.description),X(o,W(K,{get when(){return n().length>0},get fallback(){return Au()},get children(){return W(G,{get each(){return n()},children:(e,t)=>(()=>{var n=ju(),r=n.firstChild;return X(n,()=>t()+1,r),X(n,e,null),n})()})}})),s.$$click=()=>u(l()===t.name?void 0:t.name),X(s,()=>l()===t.name?`done`:`edit`),X(e,W(K,{get when(){return l()===t.name},get children(){var e=Ou(),r=e.firstChild;return X(e,W(K,{get when(){return n().length>0},get fallback(){return Mu()},get children(){return W(G,{get each(){return n()},children:(e,r)=>(()=>{var i=Nu(),a=i.firstChild,o=a.nextSibling.firstChild,s=o.nextSibling,c=s.nextSibling;return X(a,e),o.$$click=()=>void oe(t.name,Yu(n(),r(),-1)),s.$$click=()=>void oe(t.name,Yu(n(),r(),1)),c.$$click=()=>void oe(t.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:t.name}),e}}),null),e})()}})}}),null),t})(),(()=>{var t=xu(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling,i=n.nextSibling.firstChild.nextSibling;return X(r,W(Xu,{get value(){return e().imageAutoResize!==!1},onChange:e=>H({imageAutoResize:e})})),X(i,W(Xu,{get value(){return e().blockImages===!0},onChange:e=>H({blockImages:e})})),t})(),(()=>{var t=Su(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling.firstChild,i=n.nextSibling.firstChild.nextSibling.firstChild;return r.addEventListener(`change`,e=>H({steeringMode:e.currentTarget.value})),X(r,W(G,{get each(){return[...Vu]},children:e=>(()=>{var t=Eu();return t.value=e,X(t,e),t})()})),i.addEventListener(`change`,e=>H({followUpMode:e.currentTarget.value})),X(i,W(G,{get each(){return[...Vu]},children:e=>(()=>{var t=Eu();return t.value=e,X(t,e),t})()})),j(()=>r.value=e().steeringMode??`all`),j(()=>i.value=e().followUpMode??`all`),t})(),(()=>{var t=Cu(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling,i=n.nextSibling,a=i.firstChild.nextSibling.nextSibling.nextSibling,o=a.firstChild.nextSibling,s=o.nextSibling,c=i.nextSibling,l=c.firstChild.nextSibling,u=c.nextSibling.nextSibling.firstChild.nextSibling;return X(r,W(Xu,{get value(){return e().enableSkillCommands!==!1},onChange:e=>H({enableSkillCommands:e})})),X(i,W(K,{get when(){return(e().trustedContextFolders??[]).length>0},get fallback(){return Pu()},get children(){return W(G,{get each(){return e().trustedContextFolders??[]},children:e=>(()=>{var t=Fu(),n=t.firstChild,r=n.nextSibling.nextSibling;return X(n,e),r.$$click=()=>void se(e),X(r,()=>h()?`revoking…`:`revoke trust`),j(()=>r.disabled=h()),t})()})}}),a),a.addEventListener(`submit`,e=>{e.preventDefault();let t=p().trim();t&&U(t)}),o.$$input=e=>m(e.currentTarget.value),X(s,()=>h()?`trusting…`:`trust folder`),X(l,W(Xu,{get value(){return e().autoLoadNestedContext===!0},onChange:e=>H({autoLoadNestedContext:e})})),X(u,W(Xu,{get value(){return e().hideThinkingBlock===!0},onChange:e=>H({hideThinkingBlock:e})})),j(()=>s.disabled=h()||!p().trim()),j(()=>o.value=p()),t})(),(()=>{var t=wu(),n=t.firstChild.nextSibling,r=n.firstChild.nextSibling,i=n.nextSibling.firstChild.nextSibling;return X(r,W(Xu,{get value(){return e().compactionEnabled!==!1},onChange:e=>H({compactionEnabled:e})})),X(i,W(Xu,{get value(){return e().retryEnabled!==!1},onChange:e=>H({retryEnabled:e})})),t})(),Tu()]}),o),X(g,W(eu,{}),null),b.addEventListener(`change`,e=>Co(e.currentTarget.checked)),X(O,W(G,{each:lo,children:e=>(()=>{var t=Iu(),n=t.firstChild,r=n.nextSibling;return n.addEventListener(`change`,t=>wo(e,t.currentTarget.checked)),Y(n,`id`,`pref-tool-expand-${e}`),X(r,e),j(()=>n.checked=To(e)),t})()})),X(M,(()=>{var e=q(()=>_()===`denied`);return()=>e()?`blocked by browser settings — re-enable notifications in site permissions`:q(()=>_()===`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(()=>_()===`ios-install`)()?`iOS notifications need the installed PWA — tap Share → Add to Home Screen, then open dreb from the home screen icon`:_()===`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)`})()),N.addEventListener(`change`,e=>{e.currentTarget.checked&&le()}),X(P,()=>_()===`granted`?`enabled`:`enable notifications`),X(I,()=>B()?.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`),R.$$click=()=>te(!0),X(R,()=>ne()?`restarting…`:`restart`),X(o,W(K,{get when(){return ie()},get children(){var e=lu();return X(e,ie),e}}),null),X(re,()=>ue()?.mode===`local`?`local`:`host`),X(z,W(K,{get when(){return q(()=>!!D()?.enabled)()&&D()?.code},get children(){var e=fu(),t=e.firstChild.nextSibling.firstChild;return X(t,()=>D().code),e}}),null),X(z,W(G,{get each(){return T()??[]},children:e=>(()=>{var t=Lu(),n=t.firstChild,r=n.nextSibling,i=r.firstChild,a=r.nextSibling.firstChild;return X(n,()=>e.device??e.id),X(r,()=>e.identity,i),X(r,()=>it(e.createdAt),null),a.$$click=async()=>{await Q.unpair(e.id),await E()},t})()}),null),X(z,W(K,{get when(){return(T()??[]).length===0},get children(){return pu()}}),null),X(V,(()=>{var e=q(()=>!!B()?.version);return()=>e()?` v${B().version}`:q(()=>!!L())()?` v${L()}`:``})(),de),X(V,W(K,{get when(){return B()?.startedAt},get children(){return[` · server build, up `,q(()=>it(B().startedAt))]}}),null),X(n,W(K,{get when(){return ee()},get children(){return W(nt,{title:`restart dashboard service?`,onDismiss:()=>te(!1),get actions(){return[(()=>{var e=Ru();return e.$$click=()=>te(!1),e})(),(()=>{var e=zu();return e.$$click=()=>{te(!1),ae()},e})()]},get children(){var e=mu();return e.firstChild.nextSibling.nextSibling,X(e,()=>B()?.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(n,W(K,{get when(){return s()},children:e=>{let t=()=>{let t=e();return t.kind==="default"?`select default model`:`add model for ${t.agentName}`},n=()=>{let t=e();return t.kind==="default"?y()?.defaultProvider&&y()?.defaultModel?[`${y().defaultProvider}/${y().defaultModel}`]:[]:ce(t.agentName)};return W(Zu,{get title(){return t()},get models(){return S()??[]},get selected(){return n()},onClose:()=>c(void 0),onPick:t=>{let n=e();if(c(void 0),n.kind==="default"){H({defaultProvider:t.provider,defaultModel:t.id});return}let r=Uu(t),i=ce(n.agentName);i.includes(r)||oe(n.agentName,[...i,r])}})}}),null),j(e=>{var t=_()===`denied`||_()===`unsupported`||_()===`ios-install`||_()===`insecure`,n=ne();return t!==e.e&&(N.disabled=e.e=t),n!==e.t&&(R.disabled=e.t=n),e},{e:void 0,t:void 0}),j(()=>b.checked=So()),j(()=>N.checked=_()===`granted`),n})()}Ae([`input`,`click`]);var $u=J(`<p class=pair-error>`),ed=J(`<div class=status-line><span class=working>● working`),td=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><div class=readonly-note>viewing live — subagents can't be steered yet; the parent session controls this agent.`),nd=J(`<p class=muted>`);function rd(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,u=io({scroller:()=>c});return R(()=>{let t=new AbortController;e.store.hydrateSubagent(e.sessionKey,e.agentId,t.signal).catch(e=>{t.signal.aborted&&js(e)||s(e instanceof Error?e.message:String(e))}),z(()=>t.abort())}),M(()=>{e.store.revisions[e.sessionKey],u.notifyContentChanged()}),R(()=>{u.observeContent(l),u.observeViewport(c),c&&z(oo(u,c,{keyboard:`window`}))}),z(()=>u.dispose()),(()=>{var t=td(),i=t.firstChild,s=i.firstChild.firstChild;s.firstChild;var u=s.nextSibling;u.firstChild;var d=u.nextSibling,f=d.nextSibling,p=i.nextSibling,m=p.firstChild,h=p.nextSibling.firstChild,g=h.firstChild;X(s,a,null),X(u,()=>n()?.agentType??`unknown`,null),X(d,()=>n()?.taskSummary??e.agentId),X(f,W(K,{get when(){return n()?.status===`running`},get fallback(){return W(Qe,{get status(){return n()?.status===`failed`?`error`:`idle`},get label(){return n()?.status}})},get children(){return W(Qe,{status:`running`})}}));var _=c;typeof _==`function`?Pe(_,p):c=p;var v=l;return typeof v==`function`?Pe(v,m):l=m,X(m,W(K,{get when(){return o()},get children(){var e=$u();return X(e,o),e}}),null),X(m,W(K,{get when(){return q(()=>!!r())()&&r().entries.length>0},get fallback(){return(()=>{var e=nd();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(As,{get entries(){return r().entries},get who(){return n()?.agentType??`agent`},userLabel:`task from parent`,get resetKey(){return`${e.sessionKey}:${e.agentId}`}})}}),null),X(h,W(K,{get when(){return r()?.streaming},get children(){return ed()}}),g),j(()=>Y(s,`href`,`#/session/${e.sessionKey}`)),t})()}function id(e){return{key:e,entries:[],streaming:!1,compacting:!1,statusEntries:[],tasks:[],backgroundAgents:{},uiRequests:[],toasts:[],widgets:{above:[],below:[]},needsAttention:!1,subagents:{}}}var ad=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`]);function od(e){return e.length===0||e.length%4!=0?!1:/^[A-Za-z0-9+/]+={0,2}$/.test(e)}function sd(e){if(typeof e==`string`)return{text:e,images:[]};if(!Array.isArray(e))return{text:``,images:[]};let t=[],n=[];for(let r of e){let e=r;typeof e?.text==`string`?t.push(e.text):e?.type===`image`&&typeof e.data==`string`&&typeof e.mimeType==`string`&&ad.has(e.mimeType)&&od(e.data)&&n.push({mimeType:e.mimeType,data:e.data})}return{text:t.join(`
77
+ `),images:n}}function cd(e){return sd(e).text}function ld(e,t){let n=e.match(/<background-agent-complete>\n?([\s\S]*?)\n?<\/background-agent-complete>/)?.[1]?.trim();if(!n)return;let r=n.split(`
78
78
  `),i=r.findIndex(e=>e.trim().length>0),a,o=n;return i>=0&&/^Background agent .+\.$/.test(r[i]?.trim()??``)&&(a=r[i].trim(),o=r.slice(i+1).join(`
79
- `).trim()||a),{kind:`agent-result`,text:o,header:a,raw:e,timestamp:t}}function nd(e){let t=ed(e.content);return td(t,e.timestamp)??{kind:`user`,text:t,timestamp:e.timestamp}}function rd(e){let t=[],n=new Map;for(let r of e)if(r.role===`user`)t.push(nd(r));else if(r.role===`assistant`){let e=[],i=()=>{e.length!==0&&(t.push({kind:`assistant`,blocks:e,model:r.model,streaming:!1,timestamp:r.timestamp}),e=[])};if(Array.isArray(r.content)){for(let a of r.content)if(a.type===`text`&&typeof a.text==`string`)e.push({kind:`text`,text:a.text});else if(a.type===`thinking`&&typeof a.thinking==`string`)e.push({kind:`thinking`,text:a.thinking});else if(a.type===`toolCall`){i();let e=a,o={kind:`tool`,toolCallId:String(e.id??``),toolName:String(e.name??`tool`),args:e.arguments,status:`running`,resultText:``,startedAt:r.timestamp??Date.now()};n.set(o.toolCallId,o),t.push(o)}}i()}else if(r.role===`toolResult`){let e=n.get(String(r.toolCallId));e&&(e.status=r.isError?`error`:`done`,e.resultText=ed(r.content),e.details=r.details,e.endedAt=r.timestamp)}else if(r.role===`bashExecution`){let e=r;t.push({kind:`tool`,toolCallId:`bash-exec-${t.length}`,toolName:`bash (user)`,args:{command:e.command},status:`done`,resultText:e.output??``,startedAt:r.timestamp??Date.now()})}else if(r.role===`custom`){let e=r;t.push({kind:`custom`,tag:e.customType??`extension`,text:e.displayText??ed(r.content)})}return t}var id=0,ad=20;function od(e){let t=e.toasts.length-ad;t>0&&e.toasts.splice(0,t)}function sd(e){let t=Date.parse(e.startedAt);return Number.isFinite(t)?t:0}function cd(e){let t=Object.values(e.backgroundAgents).filter(e=>e.status!==`running`).sort((e,t)=>sd(e)-sd(t)||e.agentId.localeCompare(t.agentId)),n=t.length-20;if(!(n<=0))for(let r of t.slice(0,n))delete e.backgroundAgents[r.agentId],delete e.subagents[r.agentId]}function ld(e){e.needsAttention=e.uiRequests.length>0||e.statusEntries.some(e=>e.tone===`error`)||!!e.suggestedCommand}function ud(e){for(let t=e.entries.length-1;t>=0;t--){let n=e.entries[t];if(n.kind===`assistant`)return n}}function dd(e,t){for(let n=e.entries.length-1;n>=0;n--){let r=e.entries[n];if(r.kind===`tool`&&r.toolCallId===t)return r}}function fd(e,t){switch(t.type){case`agent_start`:e.streaming=!0;break;case`agent_end`:{e.streaming=!1;let t=ud(e);t&&(t.streaming=!1);break}case`message_start`:{let n=t.message;n?.role===`user`?e.entries.push(nd(n)):n?.role===`assistant`&&e.entries.push({kind:`assistant`,blocks:[],model:n.model,streaming:!0,timestamp:n.timestamp});break}case`message_update`:{let n=t.assistantMessageEvent;if(!n)break;let r=ud(e);if((!r||!r.streaming)&&(r={kind:`assistant`,blocks:[],streaming:!0},e.entries.push(r)),n.type===`text_start`)r.blocks.push({kind:`text`,text:``});else if(n.type===`thinking_start`)r.blocks.push({kind:`thinking`,text:``});else if(n.type===`text_delta`||n.type===`thinking_delta`){let e=r.blocks[r.blocks.length-1];e&&(e.text+=n.delta??``)}else if(n.type===`text_end`||n.type===`thinking_end`){let e=r.blocks[r.blocks.length-1];e&&typeof n.content==`string`&&(e.text=n.content)}break}case`message_end`:{let n=t.message;if(n?.role===`assistant`){let t=ud(e);if(t?.streaming){let e=rd([n]).find(e=>e.kind===`assistant`);e&&(t.blocks=e.blocks,t.model=e.model),t.streaming=!1}else t||e.entries.push(...rd([n]))}else if(n?.role===`user`){let t=e.entries[e.entries.length-1],r=nd(n);r.kind===`agent-result`?t?.kind===`agent-result`&&t.raw===r.raw||e.entries.push(r):t?.kind===`user`&&t.text===r.text||e.entries.push(r)}break}case`tool_execution_start`:e.entries.push({kind:`tool`,toolCallId:String(t.toolCallId),toolName:String(t.toolName),args:t.args,status:`running`,resultText:``,startedAt:Date.now()});break;case`tool_execution_update`:{let n=dd(e,String(t.toolCallId));if(n){let e=t.partialResult;n.resultText=typeof e==`string`?e:e?.content?ed(e.content):n.resultText}break}case`tool_execution_end`:{let n=dd(e,String(t.toolCallId));if(n){n.status=t.isError?`error`:`done`;let e=t.result;n.resultText=typeof e==`string`?e:e?.content?ed(e.content):n.resultText,n.details=t.result?.details,n.endedAt=Date.now()}break}default:break}}function pd(e,t){switch(fd(e,t),t.type){case`agent_start`:e.workingText=`working`,e.workingSince=Date.now(),e.lastError=void 0,e.suggestedCommand=void 0,e.uiRequests=[];break;case`agent_end`:e.workingText=void 0,e.workingSince=void 0,e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`&&e.key!==`paused`);break;case`tool_execution_start`:e.workingText=`${t.toolName}`;break;case`auto_compaction_start`:e.compacting=!0,e.statusEntries.push({key:`compaction`,text:`compacting context…`,tone:`info`});break;case`auto_compaction_end`:{e.compacting=!1,e.statusEntries=e.statusEntries.filter(e=>e.key!==`compaction`);let n=t.result;n&&!t.aborted&&e.entries.push({kind:`summary`,label:`compaction`,text:n.summary??`context compacted`,tokensBefore:n.tokensBefore}),t.errorMessage&&e.statusEntries.push({key:`compaction-error`,text:String(t.errorMessage),tone:`error`});break}case`auto_retry_start`:e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`),e.statusEntries.push({key:`retry`,text:`retrying (${t.attempt}/${t.maxAttempts}) — ${t.errorMessage}`,tone:`warning`});break;case`auto_retry_end`:e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`),!t.success&&t.finalError&&(e.statusEntries.push({key:`error`,text:String(t.finalError),tone:`error`}),e.lastError=String(t.finalError));break;case`stream_retry`:{e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`),e.statusEntries.push({key:`retry`,text:`stream dropped, retrying (${t.attempt}/${t.maxAttempts})`,tone:`warning`});let n=ud(e);n?.streaming&&e.entries.splice(e.entries.indexOf(n),1);break}case`length_retry`:{e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`),e.statusEntries.push({key:`retry`,text:`response truncated, retrying with larger budget (${t.attempt}/${t.maxAttempts})`,tone:`warning`});let n=ud(e);n?.streaming&&e.entries.splice(e.entries.indexOf(n),1);break}case`tasks_update`:e.tasks=t.tasks??[];break;case`suggest_next`:e.suggestedCommand=String(t.command);break;case`session_name_changed`:e.sessionName=String(t.name??``);break;case`background_agent_start`:e.backgroundAgents[String(t.agentId)]={agentId:String(t.agentId),agentType:String(t.agentType),taskSummary:String(t.taskSummary),startedAt:new Date().toISOString(),status:`running`,sessionDir:t.sessionDir};break;case`background_agent_end`:{let n=e.backgroundAgents[String(t.agentId)];n&&(n.status=t.success?`completed`:`failed`,n.sessionFile=t.sessionFile??n.sessionFile);let r=e.subagents[String(t.agentId)];r&&(r.streaming=!1),cd(e);break}case`background_agent_event`:{let n=String(t.agentId),r=e.subagents[n];r||(r={agentId:n,entries:[],streaming:!0},e.subagents[n]=r);let i=t.event;if(i?.type===`session`)break;i?.type===`agent_start`&&i.model&&(r.model=i.model.id),fd(r,i);break}case`parent_paused_for_background_agents`:e.statusEntries=e.statusEntries.filter(e=>e.key!==`paused`),e.statusEntries.push({key:`paused`,text:`paused — waiting on ${t.runningAgentCount} background agent${t.runningAgentCount===1?``:`s`}`,tone:`warning`});break;case`extension_ui_request`:{let n=t.method;if(n===`select`||n===`confirm`||n===`input`||n===`editor`)e.uiRequests.push({id:String(t.id),method:n,title:String(t.title??``),message:t.message,options:t.options,prefill:t.prefill,placeholder:t.placeholder});else if(n===`notify`){id+=1;let n=t.notifyType??`info`;e.toasts.push({id,text:String(t.message??``),tone:n}),od(e)}else if(n===`setStatus`){let n=`ext:${t.statusKey??`default`}`;e.statusEntries=e.statusEntries.filter(e=>e.key!==n),t.statusText&&e.statusEntries.push({key:n,text:String(t.statusText),tone:`info`})}else if(n===`setWidget`){let n=t.widgetPlacement===`belowEditor`?`below`:`above`;e.widgets[n]=Array.isArray(t.widgetLines)?t.widgetLines:[]}else n===`setTitle`?e.title=String(t.title??``):n===`set_editor_text`&&(e.composerPrefill=String(t.text??``));break}case`extension_error`:id+=1,e.toasts.push({id,text:`extension error: ${t.error}`,tone:`error`}),od(e);break;default:break}ld(e)}function md(e,t){e.toasts=e.toasts.filter(e=>e.id!==t)}var hd=Symbol(`store-raw`),gd=Symbol(`store-node`),_d=Symbol(`store-has`),vd=Symbol(`store-self`);function yd(e){let t=e[p];if(!t&&(Object.defineProperty(e,p,{value:t=new Proxy(e,Dd)}),!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 bd(e){let t;return typeof e==`object`&&!!e&&(e[p]||!(t=Object.getPrototypeOf(e))||t===Object.prototype||Array.isArray(e))}function xd(e,t=new Set){let n,r,i,a;if(n=e!=null&&e[hd])return n;if(!bd(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=xd(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=xd(i,t))!==i&&(e[a]=r))}return e}function Sd(e,t){let n=e[t];return n||Object.defineProperty(e,t,{value:n=Object.create(null)}),n}function Cd(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 wd(e,t){let n=Reflect.getOwnPropertyDescriptor(e,t);return!n||n.get||!n.configurable||t===p||t===gd?n:(delete n.value,delete n.writable,n.get=()=>e[p][t],n)}function Td(e){B()&&Cd(Sd(e,gd),vd)()}function Ed(e){return Td(e),Reflect.ownKeys(e)}var Dd={get(e,t,n){if(t===hd)return e;if(t===p)return n;if(t===m)return Td(e),n;let r=Sd(e,gd),i=r[t],a=i?i():e[t];if(t===gd||t===_d||t===`__proto__`)return a;if(!i){let n=Object.getOwnPropertyDescriptor(e,t);B()&&(typeof a!=`function`||Object.prototype.hasOwnProperty.call(e,t))&&!(n&&n.get)&&(a=Cd(r,t,a)())}return bd(a)?yd(a):a},has(e,t){return t===hd||t===p||t===m||t===gd||t===_d||t===`__proto__`?!0:(B()&&Cd(Sd(e,_d),t)(),t in e)},set(){return!0},deleteProperty(){return!0},ownKeys:Ed,getOwnPropertyDescriptor:wd};function Od(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[_d]&&e[_d][t]&&i!==void 0&&e[_d][t].$()):(e[t]=n,e[_d]&&e[_d][t]&&i===void 0&&e[_d][t].$());let o=Sd(e,gd),s;if((s=Cd(o,t,i))&&s.$(()=>n),Array.isArray(e)&&e.length!==a){for(let t=e.length;t<a;t++)(s=o[t])&&s.$();(s=Cd(o,`length`,a))&&s.$(e.length)}(s=o[vd])&&s.$()}function kd(e,t){let n=Object.keys(t);for(let r=0;r<n.length;r+=1){let i=n[r];Ad(i)||Od(e,i,t[i])}}function Ad(e){return e===`__proto__`||e===`constructor`||e===`prototype`}function jd(e,t){if(typeof t==`function`&&(t=t(e)),t=xd(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&&Od(e,n,r)}Od(e,`length`,r)}else kd(e,t)}function Md(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&&Ad(r)))return;if(Array.isArray(r)){for(let i=0;i<r.length;i++)Md(e,[r[i]].concat(t),n);return}else if(o&&a===`function`){for(let i=0;i<e.length;i++)r(e[i],i)&&Md(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)Md(e,[r].concat(t),n);return}else if(t.length>1){Md(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=xd(a),r===void 0||bd(i)&&bd(a)&&!Array.isArray(a)?kd(i,a):Od(e,r,a))}function Nd(...[e,t]){let n=xd(e||{}),r=Array.isArray(n),i=yd(n);function a(...e){I(()=>{r&&e.length===1?jd(n,e[0]):Md(n,e)})}return[i,a]}var Pd=new WeakMap,Fd={get(e,t){if(t===hd)return e;let n=e[t];if(t===p||t===m||t===gd||t===_d||t===`__proto__`)return n;let r;return bd(n)?Pd.get(n)||(Pd.set(n,r=new Proxy(n,Fd)),r):n},set(e,t,n){return Od(e,t,xd(n)),!0},deleteProperty(e,t){return Od(e,t,void 0,!0),!0}};function Id(e){return t=>{if(bd(t)){let n;(n=Pd.get(t))||Pd.set(t,n=new Proxy(t,Fd)),e(n)}return t}}function Ld(){let[e,...t]=window.location.hash.replace(/^#\/?/,``).split(`/`);return e===`session`&&t[0]?t[1]===`subagent`&&t[2]?{screen:`subagent`,key:t[0],agentId:t[2]}:{screen:`session`,key:t[0]}:e===`files`?{screen:`files`,path:t.length?decodeURIComponent(t.join(`/`)):void 0}:e===`settings`?{screen:`settings`}:e===`pairing`?{screen:`pairing`}:{screen:`fleet`}}function Rd(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`settings`:return`#/settings`;case`pairing`:return`#/pairing`}}var zd=2e3,Bd=3*1024*1024,Vd=zd,Hd=Bd,Ud=3e4,Wd=1e4,Gd=1e3,Kd=3e4,qd=new TextEncoder;function Jd(){let[e,t]=Nd({}),[n,r]=Nd({}),[i,a]=k(Ld()),[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,B=new Map,ee=0,te=0,ne,re=new Set,ie=!1;window.addEventListener(`hashchange`,()=>a(Ld()));function V(e){window.location.hash=Rd(e)}function ae(e){return n[e]??0}function H(e){return C.get(e)??0}function oe(e){return w.get(e)??0}function U(e){w.set(e,oe(e)+1)}function se(e){C.set(e,H(e)+1)}function ce(e){return{revision:ae(e),generation:H(e),epoch:E}}function le(e,t){return H(e)===t.generation&&E===t.epoch}function ue(e,t){return ae(e)===t.revision&&le(e,t)}function de(e,t){t&&T.get(e)!==t||(T.delete(e),t&&(t.queued=[],t.queuedBytes=0))}function fe(e){r(e,ae(e)+1)}function pe(n){e[n]||t(n,$u(n))}function me(e,n){pe(e),t(e,Id(n)),fe(e)}function he(e){de(e),se(e),w.delete(e),t(e,void 0),r(e,void 0),Ns(e)}function ge(){let e=Ld();return e.screen===`session`||e.screen===`subagent`?e.key:void 0}function _e(e,t=`info`){--D,S(n=>[...n,{id:D,text:e,tone:t}].slice(-20))}function ve(e){return R.get(e)??0}function ye(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=ve(e)+1;R.set(e,t),n===void 0?z.set(e,t):B.set(e,Math.max(B.get(e)??-1,n))}}function be(e,t){s(n=>{let r=e(n);return L+=1,ye(n.runtimes,r.runtimes,t),r})}function xe(e){re.clear(),be(()=>e)}function Se(e,t){let n=new Set(e.filter(e=>!re.has(e.key)).map(e=>e.key)),r=n.size!==o().runtimes.length||o().runtimes.some(e=>!n.has(e.key));be(t=>{let n=new Map(t.runtimes.map(e=>[e.key,e]));return{...t,runtimes:e.filter(e=>!re.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&&we().catch(()=>{})}function Ce(e){let t=re.has(e);return re.add(e),t?(he(e),Promise.resolve()):(be(t=>({...t,runtimes:t.runtimes.filter(t=>t.key!==e)})),he(e),we())}function W(){let e=++ee,t=L;return Q.fleet().then(n=>{e!==ee||t!==L||(xe(n),l(void 0))},n=>{throw e===ee&&t===L&&l(n instanceof Error?n.message:String(n)),n})}function we(){let e=++te;return Q.sessions().then(t=>{e===te&&(be(e=>({...e,diskSessions:t.sessions})),l(void 0))},t=>{throw e===te&&l(t instanceof Error?t.message:String(t)),t})}function G(e){re.delete(e.key),be(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 K(e,t,n,r){if(o().runtimes.some(t=>t.key===e)){if(n!==void 0&&ve(e)!==n){let t=z.get(e)??0,i=B.get(e);if(t>n||i===void 0||i>r)return}be(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:t}:n)}))}}function Te(e,t){be(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:{...n.state,model:t}}:n)}))}function Ee(e,t){be(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:{...n.state,thinkingLevel:t}}:n)}))}function q(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 De(e){let t=new AbortController,n,r=new Promise((r,i)=>{n=setTimeout(()=>{let n=Error(`Stats request for runtime ${e} timed out after ${Wd} ms`);i(n),t.abort(n)},Wd)});return Promise.race([Q.stats(e,t.signal),r]).finally(()=>{n!==void 0&&clearTimeout(n)})}function Oe(){if(ne)return ne;let e=o().runtimes.map(e=>e.key),t=new Map(e.map(e=>[e,ve(e)])),n=e.map(e=>De(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&&be(e=>({...e,runtimes:e.runtimes.map(e=>{let n=r.get(e.key),i=t.get(e.key),a=i===void 0||ve(e.key)!==i;return n?q(e,n,a):e})})),d(i.length>0?i.join(`; `):void 0)}).finally(()=>{ne===r&&(ne=void 0)});return ne=r,r}function ke(e){return qd.encode(JSON.stringify(e)).byteLength}function J(e){e.queued=[],e.queuedBytes=0}function Ae(){j!==void 0&&clearTimeout(j),j=void 0}function Y(){return Math.min(Kd,Gd*2**Math.max(0,P-1))}function je(){if(ie||j!==void 0)return;P+=1;let e=Y();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,Fe()},e)}function Me(){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 Ne(e){let t=e.event?.type;if(t===`fleet_snapshot`)Se(e.event.runtimes,e.seq);else if(t===`disk_sessions_changed`)we().catch(()=>{});else if(t===`runtime_removed`){if(e.key){let t=ge()===e.key;Ce(e.key).catch(()=>{}),t&&(_e(`session ${e.key} was stopped`,`warning`),V({screen:`fleet`}))}}else e.key&&(me(e.key,t=>pd(t,e.event)),t===`tasks_update`&&U(e.key))}function Pe(e){let t=e.subagent;me(e.key,n=>{if(n.entries=rd(e.messages),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=[],n.statusEntries=[],n.suggestedCommand=void 0,n.lastError=void 0,n.widgets={above:[],below:[]},n.toasts=[],n.title=void 0,n.composerPrefill=void 0,ld(n),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])),cd(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:rd(t.messages),streaming:r.status===`running`}}}),U(e.key)}function X(e,t){if(A!==e||e.state!==`active`||e.barrierSeq===void 0)return;Ae(),P=0,Me();let n=e.barrierSeq;if(I=n,xe(t.fleet),l(void 0),t.active)Pe(t.active);else{let e=ge();e&&(he(e),_e(`session ${e} was stopped`,`warning`),V({screen:`fleet`}))}let r=[...e.queued].sort((e,t)=>e.seq-t.seq),i=t.active?.subagent;if(i&&t.active)for(let e of r)e.seq>i.barrierSeq&&e.seq<=n&&e.key===t.active.key&&e.event.type===`background_agent_event`&&String(e.event.agentId)===i.agentId&&Ne(e);for(let e of r)e.seq>n&&Ne(e);J(e),A=void 0,h(!1),p(void 0)}function Fe(e=!1){if(ie)return Promise.resolve();if(O)return(e||A?.state===`failed`)&&(F=!0),O;Ae();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)de(e,t);h(!0),p(void 0);let o=setTimeout(()=>a.controller.abort(`Dashboard recovery timed out`),Ud),s=Q.resync(n,r,a.controller.signal).then(e=>{a.barrierSeq=e.barrierSeq,X(a,e)}).catch(e=>{if(A!==a)return;a.state=`failed`,J(a);let t=a.controller.signal.reason;p(typeof t==`string`?t:e instanceof Error?e.message:String(e)),je(),j===void 0&&h(!1)}).finally(()=>{clearTimeout(o),O===s&&(O=void 0),!ie&&F&&(F=!1,Fe())});return O=s,s}function Ie(){return Fe(!0)}function Le(e){if(e.event?.type===`dashboard_resync`){Fe(!0);return}if(A){if(A.state===`failed`)throw je(),Error(`Dashboard recovery is failed; refusing to acknowledge live envelope before resync succeeds`);let t=ke(e);if(A.queued.length>=zd||A.queuedBytes+t>Bd){J(A),A.state=`failed`;let e=`Dashboard recovery queue overflowed; waiting for a newer authoritative snapshot`;throw p(e),A.controller.abort(e),je(),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=ke(e);if(t.queued.length>=Vd||t.queuedBytes+n>Hd)throw de(e.key,t),Error(`Dashboard hydration queue overflowed for ${e.key}; refusing an incomplete snapshot replay`);t.queued.push(e),t.queuedBytes+=n}Ne(e)}let Re;async function ze(){ie=!1;try{let e=await Q.auth();_(e)}catch(e){_({mode:`remote`,needsPairing:e?.body?.needsPairing??!1,identity:e?.body?.identity,error:e?.message}),V({screen:`pairing`});return}await W().catch(()=>{}),Re=pt({onEnvelope:Le,onStatusChange:e=>{N=!1,M=e.state===`connected`?e:void 0,y(e)},onRecovery:()=>{Fe()}})}function Be(){ie=!0,Re?.(),Ae(),M=void 0,N=!1,F=!1;let e=A;A=void 0,e&&J(e),e?.controller.abort(`Dashboard stopped`);for(let[e,t]of T)de(e,t)}function Ve(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)){me(n,e=>md(e,t));return}}async function He(e,t){de(e);let n=ve(e),r={guard:ce(e),queued:[],queuedBytes:0};T.set(e,r);let i=()=>de(e,r);t?.addEventListener(`abort`,i,{once:!0}),t?.aborted&&i();try{let i=await Q.hydrate(e,t);if(t?.aborted||T.get(e)!==r||!le(e,r.guard))return;me(e,e=>{e.entries=rd(i.messages),e.backgroundAgents=Object.fromEntries(i.backgroundAgents.map(e=>[e.agentId,e])),cd(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)}),U(e),K(e,i.state,n,i.barrierSeq);for(let e of[...r.queued].sort((e,t)=>e.seq-t.seq))e.seq>i.barrierSeq&&Ne(e)}finally{t?.removeEventListener(`abort`,i),de(e,r)}}async function Ue(e,t,n){let r=ce(e),{agent:i,messages:a}=await Q.subagentMessages(e,t,n);n?.aborted||!ue(e,r)||me(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=rd(a)),n.streaming=i.status===`running`})}return{sessions:e,revisions:n,route:i,navigate:V,fleet:o,fleetError:c,fleetStatsError:u,refreshFleet:W,refreshDiskSessions:we,refreshFleetStats:Oe,removeRuntime:Ce,upsertRuntime:G,setRuntimeModel:Te,setRuntimeThinkingLevel:Ee,resyncing:m,resyncError:f,retryResync:Ie,auth:g,connected:b,connection:v,notices:x,start:ze,stop:Be,dismissToast:Ve,hydrateSession:He,hydrateSubagent:Ue}}var Yd=5e3;function Xd(e){let t;return Promise.race([e,new Promise((e,n)=>{t=setTimeout(()=>n(Error(`service worker not ready`)),Yd)})]).finally(()=>{t&&clearTimeout(t)})}function Zd(){let e=Jd();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:t.uiRequests[0]?.title?`waiting for input — ${t.uiRequests[0].title}`: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),Xd(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=()=>[...Object.values(e.sessions).flatMap(e=>e.toasts.map(t=>({...t,sessionKey:e.key}))),...e.notices()].slice(-5);return[W(Te,{get fallback(){return W(vn,{store:e})},get children(){return[W(Ee,{get when(){return e.route().screen===`session`},get children(){return W(pl,{store:e,get sessionKey(){return e.route().key}})}}),W(Ee,{get when(){return e.route().screen===`subagent`},get children(){return W(Qu,{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(Nt,{store:e,get initialPath(){return e.route().path}})}}),W(Ee,{get when(){return e.route().screen===`settings`},get children(){return W(qu,{store:e})}}),W(Ee,{get when(){return e.route().screen===`pairing`},get children(){return W(wn,{store:e})}})]}}),W(rt,{get toasts(){return i()},onDismiss:t=>e.dismissToast(t)})]}Wl();var Qd=document.getElementById(`root`);if(!Qd)throw Error(`dashboard: #root element missing from index.html`);ke(()=>W(Zd,{}),Qd);
79
+ `).trim()||a),{kind:`agent-result`,text:o,header:a,raw:e,timestamp:t}}function ud(e){let t=cd(e.content);return ld(t,e.timestamp)??{kind:`user`,text:t,timestamp:e.timestamp}}function dd(e){if(!(e?.role!==`assistant`||e.stopReason!==`error`))return typeof e.errorMessage==`string`&&e.errorMessage.trim().length>0?e.errorMessage:`Unknown error`}function fd(e){let t=[],n=new Map;for(let r of e)if(r.role===`user`)t.push(ud(r));else if(r.role===`assistant`){let e=[],i=[],a=()=>{if(e.length===0)return;let n={kind:`assistant`,blocks:e,model:r.model,streaming:!1,timestamp:r.timestamp};i.push(n),t.push(n),e=[]};if(Array.isArray(r.content)){for(let i of r.content)if(i.type===`text`&&typeof i.text==`string`)e.push({kind:`text`,text:i.text});else if(i.type===`thinking`&&typeof i.thinking==`string`)e.push({kind:`thinking`,text:i.thinking});else if(i.type===`toolCall`){a();let e=i,o={kind:`tool`,toolCallId:String(e.id??``),toolName:String(e.name??`tool`),args:e.arguments,status:`running`,resultText:``,startedAt:r.timestamp??Date.now()};n.set(o.toolCallId,o),t.push(o)}}a();let o=dd(r);if(o&&i.length===0){let e={kind:`assistant`,blocks:[],model:r.model,streaming:!1,timestamp:r.timestamp};i.push(e),t.push(e)}let s=i.at(-1);s&&(s.stopReason=r.stopReason,s.errorMessage=o)}else if(r.role===`toolResult`){let e=n.get(String(r.toolCallId));if(e){e.status=r.isError?`error`:`done`;let t=sd(r.content);e.resultText=t.text,t.images.length>0&&(e.images=t.images),e.details=r.details,e.endedAt=r.timestamp}}else if(r.role===`bashExecution`){let e=r;t.push({kind:`tool`,toolCallId:`bash-exec-${t.length}`,toolName:`bash (user)`,args:{command:e.command},status:`done`,resultText:e.output??``,startedAt:r.timestamp??Date.now()})}else if(r.role===`custom`){let e=r;t.push({kind:`custom`,tag:e.customType??`extension`,text:e.displayText??cd(r.content)})}return t}var pd=0,md=20;function hd(e){let t=e.toasts.length-md;t>0&&e.toasts.splice(0,t)}function gd(e){let t=Date.parse(e.startedAt);return Number.isFinite(t)?t:0}function _d(e){let t=Object.values(e.backgroundAgents).filter(e=>e.status!==`running`).sort((e,t)=>gd(e)-gd(t)||e.agentId.localeCompare(t.agentId)),n=t.length-20;if(!(n<=0))for(let r of t.slice(0,n))delete e.backgroundAgents[r.agentId],delete e.subagents[r.agentId]}function vd(e){e.needsAttention=e.uiRequests.length>0||e.statusEntries.some(e=>e.tone===`error`)||!!e.suggestedCommand}var yd=`provider-error`;function bd(e){e.statusEntries=e.statusEntries.filter(e=>e.key!==yd),e.lastError=void 0}function xd(e,t){bd(e),e.statusEntries.push({key:yd,text:t,tone:`error`}),e.lastError=t}function Sd(e,t,n){if(bd(e),!n)for(let n=t.length-1;n>=0;--n){let r=t[n];if(r?.role!==`assistant`)continue;let i=dd(r);i&&xd(e,i);break}vd(e)}function Cd(e){for(let t=e.entries.length-1;t>=0;t--){let n=e.entries[t];if(n.kind===`assistant`)return n}}function wd(e,t){for(let n=e.entries.length-1;n>=0;n--){let r=e.entries[n];if(r.kind===`tool`&&r.toolCallId===t)return r}}function Td(e,t,n){let r=e.entries.indexOf(t);if(r<0)return;let i=new Set,a=n.map(t=>{if(t.kind!==`tool`)return t;let n=wd(e,t.toolCallId);return n?(i.add(n),n):t}),o=new Set([t,...i]),s=e.entries.slice(0,r).filter(e=>!o.has(e)).length,c=e.entries.filter(e=>!o.has(e));c.splice(s,0,...a),e.entries.splice(0,e.entries.length,...c)}function Ed(e,t){switch(t.type){case`agent_start`:e.streaming=!0;break;case`agent_end`:{e.streaming=!1;let t=Cd(e);t&&(t.streaming=!1);break}case`message_start`:{let n=t.message;n?.role===`user`?e.entries.push(ud(n)):n?.role===`assistant`&&e.entries.push({kind:`assistant`,blocks:[],model:n.model,streaming:!0,timestamp:n.timestamp});break}case`message_update`:{let n=t.assistantMessageEvent;if(!n)break;let r=Cd(e);if((!r||!r.streaming)&&(r={kind:`assistant`,blocks:[],streaming:!0},e.entries.push(r)),n.type===`text_start`)r.blocks.push({kind:`text`,text:``});else if(n.type===`thinking_start`)r.blocks.push({kind:`thinking`,text:``});else if(n.type===`text_delta`||n.type===`thinking_delta`){let e=r.blocks[r.blocks.length-1];e&&(e.text+=n.delta??``)}else if(n.type===`text_end`||n.type===`thinking_end`){let e=r.blocks[r.blocks.length-1];e&&typeof n.content==`string`&&(e.text=n.content)}break}case`message_end`:{let n=t.message;if(n?.role===`assistant`){let t=Cd(e),r=fd([n]);t?.streaming?Td(e,t,r):e.entries.push(...r)}else if(n?.role===`user`){let t=e.entries[e.entries.length-1],r=ud(n);r.kind===`agent-result`?t?.kind===`agent-result`&&t.raw===r.raw||e.entries.push(r):t?.kind===`user`&&t.text===r.text||e.entries.push(r)}break}case`tool_execution_start`:{let n=String(t.toolCallId),r=wd(e,n);r?(r.toolName=String(t.toolName),r.args=t.args,r.status=`running`,r.resultText=``,r.images=void 0,r.details=void 0,r.startedAt=Date.now(),r.endedAt=void 0):e.entries.push({kind:`tool`,toolCallId:n,toolName:String(t.toolName),args:t.args,status:`running`,resultText:``,startedAt:Date.now()});break}case`tool_execution_update`:{let n=wd(e,String(t.toolCallId));if(n){let e=t.partialResult;if(typeof e==`string`)n.resultText=e,n.images=void 0;else if(e?.content){let t=sd(e.content);n.resultText=t.text,n.images=t.images.length>0?t.images:void 0}}break}case`tool_execution_end`:{let n=wd(e,String(t.toolCallId));if(n){n.status=t.isError?`error`:`done`;let e=t.result;if(typeof e==`string`)n.resultText=e,n.images=void 0;else if(e?.content){let t=sd(e.content);n.resultText=t.text,n.images=t.images.length>0?t.images:void 0}n.details=t.result?.details,n.endedAt=Date.now()}break}default:break}}function Dd(e,t){switch(Ed(e,t),t.type){case`agent_start`:e.workingText=`working`,e.workingSince=Date.now(),bd(e),e.suggestedCommand=void 0,e.uiRequests=[];break;case`agent_end`:e.workingText=void 0,e.workingSince=void 0,e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`&&e.key!==`paused`);break;case`message_end`:{let n=t.message;if(n?.role===`assistant`){let t=dd(n);t?xd(e,t):bd(e)}break}case`tool_execution_start`:e.workingText=`${t.toolName}`;break;case`auto_compaction_start`:e.compacting=!0,t.reason===`overflow`&&bd(e),e.statusEntries.push({key:`compaction`,text:`compacting context…`,tone:`info`});break;case`auto_compaction_end`:{e.compacting=!1,e.statusEntries=e.statusEntries.filter(e=>e.key!==`compaction`);let n=t.result;n&&!t.aborted&&e.entries.push({kind:`summary`,label:`compaction`,text:n.summary??`context compacted`,tokensBefore:n.tokensBefore}),t.errorMessage&&e.statusEntries.push({key:`compaction-error`,text:String(t.errorMessage),tone:`error`});break}case`auto_retry_start`:bd(e),e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`),e.statusEntries.push({key:`retry`,text:`retrying (${t.attempt}/${t.maxAttempts}) — ${t.errorMessage}`,tone:`warning`});break;case`auto_retry_end`:e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`),!t.success&&t.finalError?xd(e,String(t.finalError)):t.success&&bd(e);break;case`stream_retry`:{e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`),e.statusEntries.push({key:`retry`,text:`stream dropped, retrying (${t.attempt}/${t.maxAttempts})`,tone:`warning`});let n=Cd(e);n?.streaming&&e.entries.splice(e.entries.indexOf(n),1);break}case`length_retry`:{e.statusEntries=e.statusEntries.filter(e=>e.key!==`retry`),e.statusEntries.push({key:`retry`,text:`response truncated, retrying with larger budget (${t.attempt}/${t.maxAttempts})`,tone:`warning`});let n=Cd(e);n?.streaming&&e.entries.splice(e.entries.indexOf(n),1);break}case`tasks_update`:e.tasks=t.tasks??[];break;case`suggest_next`:e.suggestedCommand=String(t.command);break;case`session_name_changed`:e.sessionName=String(t.name??``);break;case`background_agent_start`:e.backgroundAgents[String(t.agentId)]={agentId:String(t.agentId),agentType:String(t.agentType),taskSummary:String(t.taskSummary),startedAt:new Date().toISOString(),status:`running`,sessionDir:t.sessionDir};break;case`background_agent_end`:{let n=e.backgroundAgents[String(t.agentId)];n&&(n.status=t.success?`completed`:`failed`,n.sessionFile=t.sessionFile??n.sessionFile);let r=e.subagents[String(t.agentId)];r&&(r.streaming=!1),_d(e);break}case`background_agent_event`:{let n=String(t.agentId),r=e.subagents[n];r||(r={agentId:n,entries:[],streaming:!0},e.subagents[n]=r);let i=t.event;if(i?.type===`session`)break;i?.type===`agent_start`&&i.model&&(r.model=i.model.id),Ed(r,i);break}case`parent_paused_for_background_agents`:e.statusEntries=e.statusEntries.filter(e=>e.key!==`paused`),e.statusEntries.push({key:`paused`,text:`paused — waiting on ${t.runningAgentCount} background agent${t.runningAgentCount===1?``:`s`}`,tone:`warning`});break;case`extension_ui_request`:{let n=t.method;if(n===`select`||n===`confirm`||n===`input`||n===`editor`)e.uiRequests.push({id:String(t.id),method:n,title:String(t.title??``),message:t.message,options:t.options,prefill:t.prefill,placeholder:t.placeholder});else if(n===`notify`){pd+=1;let n=t.notifyType??`info`;e.toasts.push({id:pd,text:String(t.message??``),tone:n}),hd(e)}else if(n===`setStatus`){let n=`ext:${t.statusKey??`default`}`;e.statusEntries=e.statusEntries.filter(e=>e.key!==n),t.statusText&&e.statusEntries.push({key:n,text:String(t.statusText),tone:`info`})}else if(n===`setWidget`){let n=t.widgetPlacement===`belowEditor`?`below`:`above`;e.widgets[n]=Array.isArray(t.widgetLines)?t.widgetLines:[]}else n===`setTitle`?e.title=String(t.title??``):n===`set_editor_text`&&(e.composerPrefill=String(t.text??``));break}case`extension_error`:pd+=1,e.toasts.push({id:pd,text:`extension error: ${t.error}`,tone:`error`}),hd(e);break;default:break}vd(e)}function Od(e,t){e.toasts=e.toasts.filter(e=>e.id!==t)}var kd=Symbol(`store-raw`),Ad=Symbol(`store-node`),jd=Symbol(`store-has`),Md=Symbol(`store-self`);function Nd(e){let t=e[p];if(!t&&(Object.defineProperty(e,p,{value:t=new Proxy(e,Vd)}),!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 Pd(e){let t;return typeof e==`object`&&!!e&&(e[p]||!(t=Object.getPrototypeOf(e))||t===Object.prototype||Array.isArray(e))}function Fd(e,t=new Set){let n,r,i,a;if(n=e!=null&&e[kd])return n;if(!Pd(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=Fd(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=Fd(i,t))!==i&&(e[a]=r))}return e}function Id(e,t){let n=e[t];return n||Object.defineProperty(e,t,{value:n=Object.create(null)}),n}function Ld(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 Rd(e,t){let n=Reflect.getOwnPropertyDescriptor(e,t);return!n||n.get||!n.configurable||t===p||t===Ad?n:(delete n.value,delete n.writable,n.get=()=>e[p][t],n)}function zd(e){B()&&Ld(Id(e,Ad),Md)()}function Bd(e){return zd(e),Reflect.ownKeys(e)}var Vd={get(e,t,n){if(t===kd)return e;if(t===p)return n;if(t===m)return zd(e),n;let r=Id(e,Ad),i=r[t],a=i?i():e[t];if(t===Ad||t===jd||t===`__proto__`)return a;if(!i){let n=Object.getOwnPropertyDescriptor(e,t);B()&&(typeof a!=`function`||Object.prototype.hasOwnProperty.call(e,t))&&!(n&&n.get)&&(a=Ld(r,t,a)())}return Pd(a)?Nd(a):a},has(e,t){return t===kd||t===p||t===m||t===Ad||t===jd||t===`__proto__`?!0:(B()&&Ld(Id(e,jd),t)(),t in e)},set(){return!0},deleteProperty(){return!0},ownKeys:Bd,getOwnPropertyDescriptor:Rd};function Hd(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[jd]&&e[jd][t]&&i!==void 0&&e[jd][t].$()):(e[t]=n,e[jd]&&e[jd][t]&&i===void 0&&e[jd][t].$());let o=Id(e,Ad),s;if((s=Ld(o,t,i))&&s.$(()=>n),Array.isArray(e)&&e.length!==a){for(let t=e.length;t<a;t++)(s=o[t])&&s.$();(s=Ld(o,`length`,a))&&s.$(e.length)}(s=o[Md])&&s.$()}function Ud(e,t){let n=Object.keys(t);for(let r=0;r<n.length;r+=1){let i=n[r];Wd(i)||Hd(e,i,t[i])}}function Wd(e){return e===`__proto__`||e===`constructor`||e===`prototype`}function Gd(e,t){if(typeof t==`function`&&(t=t(e)),t=Fd(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&&Hd(e,n,r)}Hd(e,`length`,r)}else Ud(e,t)}function Kd(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&&Wd(r)))return;if(Array.isArray(r)){for(let i=0;i<r.length;i++)Kd(e,[r[i]].concat(t),n);return}else if(o&&a===`function`){for(let i=0;i<e.length;i++)r(e[i],i)&&Kd(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)Kd(e,[r].concat(t),n);return}else if(t.length>1){Kd(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=Fd(a),r===void 0||Pd(i)&&Pd(a)&&!Array.isArray(a)?Ud(i,a):Hd(e,r,a))}function qd(...[e,t]){let n=Fd(e||{}),r=Array.isArray(n),i=Nd(n);function a(...e){I(()=>{r&&e.length===1?Gd(n,e[0]):Kd(n,e)})}return[i,a]}var Jd=new WeakMap,Yd={get(e,t){if(t===kd)return e;let n=e[t];if(t===p||t===m||t===Ad||t===jd||t===`__proto__`)return n;let r;return Pd(n)?Jd.get(n)||(Jd.set(n,r=new Proxy(n,Yd)),r):n},set(e,t,n){return Hd(e,t,Fd(n)),!0},deleteProperty(e,t){return Hd(e,t,void 0,!0),!0}};function Xd(e){return t=>{if(Pd(t)){let n;(n=Jd.get(t))||Jd.set(t,n=new Proxy(t,Yd)),e(n)}return t}}function Zd(){let[e,...t]=window.location.hash.replace(/^#\/?/,``).split(`/`);return e===`session`&&t[0]?t[1]===`subagent`&&t[2]?{screen:`subagent`,key:t[0],agentId:t[2]}:{screen:`session`,key:t[0]}:e===`files`?{screen:`files`,path:t.length?decodeURIComponent(t.join(`/`)):void 0}:e===`settings`?{screen:`settings`}:e===`pairing`?{screen:`pairing`}:{screen:`fleet`}}function Qd(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`settings`:return`#/settings`;case`pairing`:return`#/pairing`}}var $d=2e3,ef=3*1024*1024,tf=$d,nf=ef,rf=3e4,af=1e4,of=1e3,sf=3e4,cf=new TextEncoder;function lf(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({key:`retry`,text:`retrying (attempt ${r})${n}`,tone:`warning`})}Sd(e,t,n.isStreaming||n.isRetrying||n.isCompacting)}function uf(){let[e,t]=qd({}),[n,r]=qd({}),[i,a]=k(Zd()),[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,B=new Map,ee=0,te=0,ne,re=new Set,ie=!1;window.addEventListener(`hashchange`,()=>a(Zd()));function V(e){window.location.hash=Qd(e)}function ae(e){return n[e]??0}function H(e){return C.get(e)??0}function oe(e){return w.get(e)??0}function U(e){w.set(e,oe(e)+1)}function se(e){C.set(e,H(e)+1)}function ce(e){return{revision:ae(e),generation:H(e),epoch:E}}function le(e,t){return H(e)===t.generation&&E===t.epoch}function ue(e,t){return ae(e)===t.revision&&le(e,t)}function de(e,t){t&&T.get(e)!==t||(T.delete(e),t&&(t.queued=[],t.queuedBytes=0))}function fe(e){r(e,ae(e)+1)}function pe(n){e[n]||t(n,id(n))}function me(e,n){pe(e),t(e,Xd(n)),fe(e)}function he(e){de(e),se(e),w.delete(e),t(e,void 0),r(e,void 0),Rs(e)}function ge(){let e=Zd();return e.screen===`session`||e.screen===`subagent`?e.key:void 0}function _e(e,t=`info`){--D,S(n=>[...n,{id:D,text:e,tone:t}].slice(-20))}function ve(e){return R.get(e)??0}function ye(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=ve(e)+1;R.set(e,t),n===void 0?z.set(e,t):B.set(e,Math.max(B.get(e)??-1,n))}}function be(e,t){s(n=>{let r=e(n);return L+=1,ye(n.runtimes,r.runtimes,t),r})}function xe(e){re.clear(),be(()=>e)}function Se(e,t){let n=new Set(e.filter(e=>!re.has(e.key)).map(e=>e.key)),r=n.size!==o().runtimes.length||o().runtimes.some(e=>!n.has(e.key));be(t=>{let n=new Map(t.runtimes.map(e=>[e.key,e]));return{...t,runtimes:e.filter(e=>!re.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&&we().catch(()=>{})}function Ce(e){let t=re.has(e);return re.add(e),t?(he(e),Promise.resolve()):(be(t=>({...t,runtimes:t.runtimes.filter(t=>t.key!==e)})),he(e),we())}function W(){let e=++ee,t=L;return Q.fleet().then(n=>{e!==ee||t!==L||(xe(n),l(void 0))},n=>{throw e===ee&&t===L&&l(n instanceof Error?n.message:String(n)),n})}function we(){let e=++te;return Q.sessions().then(t=>{e===te&&(be(e=>({...e,diskSessions:t.sessions})),l(void 0))},t=>{throw e===te&&l(t instanceof Error?t.message:String(t)),t})}function G(e){re.delete(e.key),be(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 K(e,t,n,r){if(o().runtimes.some(t=>t.key===e)){if(n!==void 0&&ve(e)!==n){let t=z.get(e)??0,i=B.get(e);if(t>n||i===void 0||i>r)return}be(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:t}:n)}))}}function Te(e,t){be(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:{...n.state,model:t}}:n)}))}function Ee(e,t){be(n=>({...n,runtimes:n.runtimes.map(n=>n.key===e?{...n,state:{...n.state,thinkingLevel:t}}:n)}))}function q(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 De(e){let t=new AbortController,n,r=new Promise((r,i)=>{n=setTimeout(()=>{let n=Error(`Stats request for runtime ${e} timed out after ${af} ms`);i(n),t.abort(n)},af)});return Promise.race([Q.stats(e,t.signal),r]).finally(()=>{n!==void 0&&clearTimeout(n)})}function Oe(){if(ne)return ne;let e=o().runtimes.map(e=>e.key),t=new Map(e.map(e=>[e,ve(e)])),n=e.map(e=>De(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&&be(e=>({...e,runtimes:e.runtimes.map(e=>{let n=r.get(e.key),i=t.get(e.key),a=i===void 0||ve(e.key)!==i;return n?q(e,n,a):e})})),d(i.length>0?i.join(`; `):void 0)}).finally(()=>{ne===r&&(ne=void 0)});return ne=r,r}function ke(e){return cf.encode(JSON.stringify(e)).byteLength}function J(e){e.queued=[],e.queuedBytes=0}function Ae(){j!==void 0&&clearTimeout(j),j=void 0}function Y(){return Math.min(sf,of*2**Math.max(0,P-1))}function je(){if(ie||j!==void 0)return;P+=1;let e=Y();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,Fe()},e)}function Me(){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 Ne(e){let t=e.event?.type;if(t===`fleet_snapshot`)Se(e.event.runtimes,e.seq);else if(t===`disk_sessions_changed`)we().catch(()=>{});else if(t===`runtime_removed`){if(e.key){let t=ge()===e.key;Ce(e.key).catch(()=>{}),t&&(_e(`session ${e.key} was stopped`,`warning`),V({screen:`fleet`}))}}else e.key&&(me(e.key,t=>Dd(t,e.event)),t===`tasks_update`&&U(e.key))}function Pe(e){let t=e.subagent;me(e.key,n=>{let r=e.messages;if(n.entries=fd(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=[],n.statusEntries=[],n.suggestedCommand=void 0,n.lastError=void 0,n.widgets={above:[],below:[]},n.toasts=[],n.title=void 0,n.composerPrefill=void 0,lf(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])),_d(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:fd(t.messages),streaming:r.status===`running`}}}),U(e.key)}function X(e,t){if(A!==e||e.state!==`active`||e.barrierSeq===void 0)return;Ae(),P=0,Me();let n=e.barrierSeq;if(I=n,xe(t.fleet),l(void 0),t.active)Pe(t.active);else{let e=ge();e&&(he(e),_e(`session ${e} was stopped`,`warning`),V({screen:`fleet`}))}let r=[...e.queued].sort((e,t)=>e.seq-t.seq),i=t.active?.subagent;if(i&&t.active)for(let e of r)e.seq>i.barrierSeq&&e.seq<=n&&e.key===t.active.key&&e.event.type===`background_agent_event`&&String(e.event.agentId)===i.agentId&&Ne(e);for(let e of r)e.seq>n&&Ne(e);J(e),A=void 0,h(!1),p(void 0)}function Fe(e=!1){if(ie)return Promise.resolve();if(O)return(e||A?.state===`failed`)&&(F=!0),O;Ae();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)de(e,t);h(!0),p(void 0);let o=setTimeout(()=>a.controller.abort(`Dashboard recovery timed out`),rf),s=Q.resync(n,r,a.controller.signal).then(e=>{a.barrierSeq=e.barrierSeq,X(a,e)}).catch(e=>{if(A!==a)return;a.state=`failed`,J(a);let t=a.controller.signal.reason;p(typeof t==`string`?t:e instanceof Error?e.message:String(e)),je(),j===void 0&&h(!1)}).finally(()=>{clearTimeout(o),O===s&&(O=void 0),!ie&&F&&(F=!1,Fe())});return O=s,s}function Ie(){return Fe(!0)}function Le(e){if(e.event?.type===`dashboard_resync`){Fe(!0);return}if(A){if(A.state===`failed`)throw je(),Error(`Dashboard recovery is failed; refusing to acknowledge live envelope before resync succeeds`);let t=ke(e);if(A.queued.length>=$d||A.queuedBytes+t>ef){J(A),A.state=`failed`;let e=`Dashboard recovery queue overflowed; waiting for a newer authoritative snapshot`;throw p(e),A.controller.abort(e),je(),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=ke(e);if(t.queued.length>=tf||t.queuedBytes+n>nf)throw de(e.key,t),Error(`Dashboard hydration queue overflowed for ${e.key}; refusing an incomplete snapshot replay`);t.queued.push(e),t.queuedBytes+=n}Ne(e)}let Re;async function ze(){ie=!1;try{let e=await Q.auth();_(e)}catch(e){_({mode:`remote`,needsPairing:e?.body?.needsPairing??!1,identity:e?.body?.identity,error:e?.message}),V({screen:`pairing`});return}await W().catch(()=>{}),Re=pt({onEnvelope:Le,onStatusChange:e=>{N=!1,M=e.state===`connected`?e:void 0,y(e)},onRecovery:()=>{Fe()}})}function Be(){ie=!0,Re?.(),Ae(),M=void 0,N=!1,F=!1;let e=A;A=void 0,e&&J(e),e?.controller.abort(`Dashboard stopped`);for(let[e,t]of T)de(e,t)}function Ve(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)){me(n,e=>Od(e,t));return}}async function He(e,t){de(e);let n=ve(e),r={guard:ce(e),queued:[],queuedBytes:0};T.set(e,r);let i=()=>de(e,r);t?.addEventListener(`abort`,i,{once:!0}),t?.aborted&&i();try{let i=await Q.hydrate(e,t);if(t?.aborted||T.get(e)!==r||!le(e,r.guard))return;me(e,e=>{let t=i.messages;e.entries=fd(t),e.backgroundAgents=Object.fromEntries(i.backgroundAgents.map(e=>[e.agentId,e])),_d(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),lf(e,t,i.state)}),U(e),K(e,i.state,n,i.barrierSeq);for(let e of[...r.queued].sort((e,t)=>e.seq-t.seq))e.seq>i.barrierSeq&&Ne(e)}finally{t?.removeEventListener(`abort`,i),de(e,r)}}async function Ue(e,t,n){let r=ce(e),{agent:i,messages:a}=await Q.subagentMessages(e,t,n);n?.aborted||!ue(e,r)||me(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=fd(a)),n.streaming=i.status===`running`})}return{sessions:e,revisions:n,route:i,navigate:V,fleet:o,fleetError:c,fleetStatsError:u,refreshFleet:W,refreshDiskSessions:we,refreshFleetStats:Oe,removeRuntime:Ce,upsertRuntime:G,setRuntimeModel:Te,setRuntimeThinkingLevel:Ee,resyncing:m,resyncError:f,retryResync:Ie,auth:g,connected:b,connection:v,notices:x,start:ze,stop:Be,dismissToast:Ve,hydrateSession:He,hydrateSubagent:Ue}}var df=5e3;function ff(e){let t;return Promise.race([e,new Promise((e,n)=>{t=setTimeout(()=>n(Error(`service worker not ready`)),df)})]).finally(()=>{t&&clearTimeout(t)})}function pf(){let e=uf();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:t.uiRequests[0]?.title?`waiting for input — ${t.uiRequests[0].title}`: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),ff(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=()=>[...Object.values(e.sessions).flatMap(e=>e.toasts.map(t=>({...t,sessionKey:e.key}))),...e.notices()].slice(-5);return[W(Te,{get fallback(){return W(vn,{store:e})},get children(){return[W(Ee,{get when(){return e.route().screen===`session`},get children(){return W(vl,{store:e,get sessionKey(){return e.route().key}})}}),W(Ee,{get when(){return e.route().screen===`subagent`},get children(){return W(rd,{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(Nt,{store:e,get initialPath(){return e.route().path}})}}),W(Ee,{get when(){return e.route().screen===`settings`},get children(){return W(Qu,{store:e})}}),W(Ee,{get when(){return e.route().screen===`pairing`},get children(){return W(wn,{store:e})}})]}}),W(rt,{get toasts(){return i()},onDismiss:t=>e.dismissToast(t)})]}Yl();var mf=document.getElementById(`root`);if(!mf)throw Error(`dashboard: #root element missing from index.html`);ke(()=>W(pf,{}),mf);